diff --git a/.circleci/config.yml b/.circleci/config.yml index 463372d5..b417adc2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,11 +11,11 @@ jobs: command: | LATEST_TAG="${CIRCLE_TAG:1}" DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-amd64" - DOCKERHUB_DOCKERFILE="docker/Dockerfile" + DOCKERHUB_DOCKERFILE="dockerfiles/Dockerfile" sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS sudo docker build --pull -t "$DOCKERHUB_DESTINATION" -f "$DOCKERHUB_DOCKERFILE" . sudo docker push "$DOCKERHUB_DESTINATION" - no_output_timeout: 20m + no_output_timeout: 25m publish_docker_linuxarm32v7: machine: @@ -27,11 +27,11 @@ jobs: sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset LATEST_TAG="${CIRCLE_TAG:1}" DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-arm32v7" - DOCKERHUB_DOCKERFILE="docker/Dockerfile.arm32v7" + DOCKERHUB_DOCKERFILE="dockerfiles/Dockerfile.arm32v7" sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS sudo docker build --pull -t "$DOCKERHUB_DESTINATION" -f "$DOCKERHUB_DOCKERFILE" . sudo docker push "$DOCKERHUB_DESTINATION" - no_output_timeout: 20m + no_output_timeout: 25m publish_docker_linuxarm64v8: machine: @@ -43,11 +43,11 @@ jobs: sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset LATEST_TAG="${CIRCLE_TAG:1}" DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-arm64v8" - DOCKERHUB_DOCKERFILE="docker/Dockerfile.arm64v8" + DOCKERHUB_DOCKERFILE="dockerfiles/Dockerfile.arm64v8" sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS sudo docker build --pull -t "$DOCKERHUB_DESTINATION" -f "$DOCKERHUB_DOCKERFILE" . sudo docker push "$DOCKERHUB_DESTINATION" - no_output_timeout: 20m + no_output_timeout: 25m publish_docker_multiarch: machine: @@ -68,7 +68,7 @@ jobs: sudo docker manifest annotate "$DOCKERHUB_REPO:$LATEST_TAG" "$DOCKERHUB_REPO:$LATEST_TAG-arm32v7" --os linux --arch arm --variant v7 sudo docker manifest annotate "$DOCKERHUB_REPO:$LATEST_TAG" "$DOCKERHUB_REPO:$LATEST_TAG-arm64v8" --os linux --arch arm64 --variant v8 sudo docker manifest push "$DOCKERHUB_REPO:$LATEST_TAG" -p - no_output_timeout: 20m + no_output_timeout: 25m workflows: version: 2 diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..608a4aae --- /dev/null +++ b/.dockerignore @@ -0,0 +1,50 @@ +.angular/ +.circleci/ +.git/ +.github/ +.settings/ +.vscode/ +frontend/ +backend/ +backup/ +cookies/ +coverage/ +dist/ +docker/ +dockerfiles/ +logs/ +node_modules/ +node_modules_old/ +node_modules_prod/ +node_modules_dev/ +out-tsc/ +tmp/ +typings/ +.browserlistrc +_config.yml +.classpath +.DS_Store +.eslintrc.json +.gitattributes +.gitignore +.idea +*.launch +.project +.sass-cache +*.sublime-workspace +.vscode/* +connect.lock +ECLDummyData.log +libpeerconnection.log +npm-debug.log +RTL-Config.json +RTL-Config-Old.json +RTL-Config-1.json +RTL-Multi-Node-Conf.json +RTL.conf +RTL-1.conf +RTL-Multi-Node-Conf-1.json +RTL-Config-for-BTC-Testing.json +testem.log +Thumbs.db +yarn-error.log diff --git a/.eslintrc.json b/.eslintrc.json index e9e0092c..1e4dc1b0 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,8 +3,7 @@ "ignorePatterns": [ "projects/**/*", "rtl.js", - "/routes/**/*.js", - "/controllers/**/*.js", + "/backend/**/*.js", "/src/prebuild.js" ], "overrides": [ @@ -48,8 +47,7 @@ "curly": "error", "no-unused-expressions": "error", "strict": "error", - "max-len": ["error", { "code": 430 }], - "new-parens": "error", + "max-len": ["error", { "code": 450 }], "no-multiple-empty-lines": "error", "no-trailing-spaces": "error", "quote-props": ["error", "as-needed"], @@ -128,14 +126,13 @@ "func-names": "error", "id-match": "error", "implicit-arrow-linebreak": "error", - "indent": ["error", 2, { "SwitchCase": 1, "MemberExpression": 1 }], + "indent": ["error", 2, { "SwitchCase": 1, "MemberExpression": 1, "ArrayExpression": "off" }], "keyword-spacing": ["error", { "before": true, "after": true, "overrides": { "this": { "before": false }}}], "lines-around-comment": "error", - "max-depth": "error", + "max-depth": ["error", { "max": 6 }], "max-nested-callbacks": "error", - "max-statements-per-line": ["error", { "max": 2 }], + "max-statements-per-line": ["error", { "max": 3 }], "no-array-constructor": "error", - "no-bitwise": "error", "no-continue": "error", "no-mixed-operators": "error", "no-multi-assign": "error", diff --git a/docs/README.md b/.github/README.md similarity index 86% rename from docs/README.md rename to .github/README.md index 3a147924..3de063f4 100644 --- a/docs/README.md +++ b/.github/README.md @@ -1,10 +1,10 @@ ## Ride The Lightning (RTL) -![](../screenshots/RTL-LND-Dashboard.png) +![](./screenshots/RTL-LND-Dashboard.png) Known Vulnerabilities [![license](https://img.shields.io/github/license/DAVFoundation/captain-n3m0.svg?style=flat-square)](https://github.com/DAVFoundation/captain-n3m0/blob/master/LICENSE) -**Intro** -- [Application Features](Application_features.md) -- [Road Map](Roadmap.md) -- [Application Configurations](Application_configurations) -- [C-Lightning](C-Lightning-setup.md) -- [Eclair](Eclair-setup.md) -- [Contribution](Contributing.md) +**Intro** -- [Application Features](./docs/Application_features.md) -- [Road Map](./docs/Roadmap.md) -- [Application Configurations](./docs/Application_configurations.md) -- [C-Lightning](./docs/C-Lightning-setup.md) -- [Eclair](./docs/Eclair-setup.md) -- [Contribution](./docs/Contributing.md) * [Introduction](#intro) * [Architecture](#arch) @@ -19,8 +19,8 @@ RTL is a full function, device agnostic, web user interface to help manage lightning node operations. RTL is available on [LND](https://github.com/lightningnetwork/lnd), [C-Lightning](https://github.com/ElementsProject/lightning) and [Eclair](https://github.com/ACINQ/eclair) implementations. -* C-Lightning users, refer to [this](C-Lightning-setup.md) page for install instructions. -* Eclair users, refer to [this](Eclair-setup.md) page for install instructions. +* C-Lightning users, refer to [this](./docs/C-Lightning-setup.md) page for install instructions. +* Eclair users, refer to [this](./docs/Eclair-setup.md) page for install instructions. * LND users, follow the instructions below Lightning Network Daemon(LND) is an implementation of Lightning Network BOLT protocol by [Lightning Labs](https://lightning.engineering/). @@ -41,7 +41,7 @@ RTL is available on the below platforms/services: Docker Image: https://hub.docker.com/r/shahanafarooqui/rtl ### Architecture -![](../screenshots/RTL-LND-Arch-2.png) +![](./screenshots/RTL-LND-Arch-2.png) ### Prerequisites * Functioning and synced LND lightning node. @@ -56,7 +56,10 @@ To download from master (*not recommended*): ``` $ git clone https://github.com/Ride-The-Lightning/RTL.git $ cd RTL -$ npm install --only=prod +$ npm install +$ npm run buildfrontend +$ npm run buildbackend +$ npm prune --production ``` #### Or: Update existing dependencies ``` @@ -64,12 +67,15 @@ $ cd RTL $ git reset --hard HEAD $ git clean -f -d $ git pull -$ npm install --only=prod +$ npm install +$ npm run buildfrontend +$ npm run buildbackend +$ npm prune --production ``` ### Prep for Execution RTL requires its own config file `RTL-Config.json`, to start the server and provide user authentication on the app. -*Advanced users can refer to [this page](Multi-Node-setup.md), for config settings required to manage multiple nodes* +*Advanced users can refer to [this page](./docs/Multi-Node-setup.md), for config settings required to manage multiple nodes* * Copy the file `Sample-RTL-Config.json` from `./RTL/docs` to `./RTL` and rename it to `RTL-Config.json`. * Locate the complete path of the readable macroon file (admin.macroon) on your node and the lnd.conf file. @@ -114,7 +120,7 @@ Example RTL-Config.json: ] } ``` -For details on all the configuration options refer to [this page](./Application_configurations). +For details on all the configuration options refer to [this page](./docs/Application_configurations.md). #### User Authentication on RTL RTL requires the user to be authenticated by the application first, before allowing access to LND functions. @@ -172,11 +178,11 @@ Open your browser at the following address: http://localhost:3000 to access the * Determine the IP address of your node to access the application. E.g. if the IP address of your node is 192.168.0.15 then open your browser at the following address: http://192.168.0.15:3000 to access RTL. -3. Config tweaks for running RTL server and LND on separate devices on the same network can be found [here](RTL_setups.md). +3. Config tweaks for running RTL server and LND on separate devices on the same network can be found [here](./docs/RTL_setups.md). 4. Any Other setup: **Please be advised, if you are accessing your node remotely via RTL, its critical to encrypt the communication via use of https. You can use solutions like nginx and letsencrypt or TOR to setup secure access for RTL.** -- Sample SSL setup guide can be found [here](RTL_SSL_setup.md) -- (For advanced users) A sample SSL guide to serve remote access over an encrypted Tor connection can be found [here](RTL_TOR_setup.md) +- Sample SSL setup guide can be found [here](./docs/RTL_SSL_setup.md) +- (For advanced users) A sample SSL guide to serve remote access over an encrypted Tor connection can be found [here](./docs/RTL_TOR_setup.md) ### Troubleshooting In case you are running into issues with the application or if you have feedback, feel free to open issues on our github repo. diff --git a/docs/Application_configurations b/.github/docs/Application_configurations.md similarity index 78% rename from docs/Application_configurations rename to .github/docs/Application_configurations.md index 34f94eba..c2693ffa 100644 --- a/docs/Application_configurations +++ b/.github/docs/Application_configurations.md @@ -1,8 +1,9 @@ -RTL allows the user to configure and control specific application parameters for app customization and integration. -The parameters can be configured via RTL-Config.json file or through environment variables defined at the OS level. Required -parameters have `default` values for initial setup and can be updated after RTL server initial start. - -#### RTL-Config.json +RTL allows the user to configure and control specific application parameters for app customization and integration.
+The parameters can be configured via RTL-Config.json file or through environment variables defined at the OS level. Required
+parameters have `default` values for initial setup and can be updated after RTL server initial start.
+
+### RTL-Config.json
+``` { "multiPass": "", "port": "", @@ -41,24 +42,28 @@ parameters have `default` values for initial setup and can be updated after RTL } ] } - -#### Environment variables -;The environment variable can also be used for all of the above configurations except the UI settings. -;If the environment variables are set, it will take precedence over the parameters in the RTL-Config.json file. -PORT (port number for the rtl node server, default 3000, Required) -HOST (host for the rtl node server, default localhost, Optional) -LN_IMPLEMENTATION (LND/CLT/ECL. Default 'LND', Required) -LN_SERVER_URL (LN server URL for LNP REST APIs, default https://localhost:8080) (Required) -SWAP_SERVER_URL (Swap server URL for REST APIs, default http://localhost:8081) (Optional) -BOLTZ_SERVER_URL (Boltz server URL for REST APIs, default http://localhost:9003) (Optional) -CONFIG_PATH (Full path of the LNP .conf file including the file name) (Optional for LND & CLT, Mandatory for ECL if LN_API_PASSWORD is undefined) -MACAROON_PATH (Path for the folder containing 'admin.macaroon' (LND)/'access.macaroon' (CLT) file, Required for LND & CLT) -SWAP_MACAROON_PATH (Path for the folder containing Loop's 'loop.macaroon', optional) -BOLTZ_MACAROON_PATH (Path for the folder containing Boltz's 'admin.macaroon', optional) -RTL_SSO (1 - single sign on via an external cookie, 0 - stand alone RTL authentication, Optional) -RTL_COOKIE_PATH (Full path of the cookie file including the file name, Required if RTL_SSO=1 else Optional) -LOGOUT_REDIRECT_LINK (URL to re-direct to after logout/timeout from RTL, Required if RTL_SSO=1 else Optional) -RTL_CONFIG_PATH (Path for the folder containing 'RTL-Config.json' file, Required) -BITCOIND_CONFIG_PATH (Full path of the bitcoind.conf file including the file name, Optional) -CHANNEL_BACKUP_PATH (Folder location for saving the channel backup files, valid for LND implementation only, Required if ln implementation=LND else Optional) -LN_API_PASSWORD (Password for Eclair implementation if the eclair.conf path is not available, Required if ln implementation=ECL && config path is undefined) +``` +
+### Environment variables
+The environment variable can also be used for all of the above configurations except the UI settings.
+If the environment variables are set, it will take precedence over the parameters in the RTL-Config.json file.
+
+PORT (port number for the rtl node server, default 3000, Required)
+HOST (host for the rtl node server, default localhost, Optional)
+APP_PASSWORD (Plaintext password to be provided by the parent container, NOT suggested for standalone RTL applications, to be used by Umbrel) (Optional)
+LN_IMPLEMENTATION (LND/CLT/ECL. Default 'LND', Required)
+LN_SERVER_URL (LN server URL for LNP REST APIs, default https://localhost:8080) (Required)
+SWAP_SERVER_URL (Swap server URL for REST APIs, default http://localhost:8081) (Optional)
+BOLTZ_SERVER_URL (Boltz server URL for REST APIs, default http://localhost:9003) (Optional)
+CONFIG_PATH (Full path of the LNP .conf file including the file name) (Optional for LND & CLT, Mandatory for ECL if LN_API_PASSWORD is undefined)
+MACAROON_PATH (Path for the folder containing 'admin.macaroon' (LND)/'access.macaroon' (CLT) file, Required for LND & CLT)
+SWAP_MACAROON_PATH (Path for the folder containing Loop's 'loop.macaroon', optional)
+BOLTZ_MACAROON_PATH (Path for the folder containing Boltz's 'admin.macaroon', optional)
+RTL_SSO (1 - single sign on via an external cookie, 0 - stand alone RTL authentication, Optional)
+RTL_COOKIE_PATH (Full path of the cookie file including the file name, Required if RTL_SSO=1 else Optional)
+LOGOUT_REDIRECT_LINK (URL to re-direct to after logout/timeout from RTL, Required if RTL_SSO=1 else Optional)
+RTL_CONFIG_PATH (Path for the folder containing 'RTL-Config.json' file, Required)
+BITCOIND_CONFIG_PATH (Full path of the bitcoind.conf file including the file name, Optional)
+CHANNEL_BACKUP_PATH (Folder location for saving the channel backup files, valid for LND implementation only, Required if ln implementation=LND else Optional)
+ENABLE_OFFERS (Boolean flag to enable the offers feature on Clighning, default false, optional)
+LN_API_PASSWORD (Password for Eclair implementation if the eclair.conf path is not available, Required if ln implementation=ECL && config path is undefined)
diff --git a/docs/Application_features.md b/.github/docs/Application_features.md similarity index 97% rename from docs/Application_features.md rename to .github/docs/Application_features.md index fd7137a7..a6ab134e 100644 --- a/docs/Application_features.md +++ b/.github/docs/Application_features.md @@ -1,4 +1,4 @@ -[Intro](../README.md) -- **Application Features** -- [Road Map](Roadmap.md) -- [Application Configurations](Application_configurations) +[Intro](../README.md) -- **Application Features** -- [Road Map](Roadmap.md) -- [Application Configurations](Application_configurations.md) ## RTL - Feature List diff --git a/docs/C-Lightning-setup.md b/.github/docs/C-Lightning-setup.md similarity index 93% rename from docs/C-Lightning-setup.md rename to .github/docs/C-Lightning-setup.md index 6b3bafcc..5108b90e 100644 --- a/docs/C-Lightning-setup.md +++ b/.github/docs/C-Lightning-setup.md @@ -1,4 +1,4 @@ -![](../screenshots/RTL-CLT-Dashboard.png) +![](./screenshots/RTL-CLT-Dashboard.png) ## RTL C-lightning setup @@ -21,7 +21,7 @@ Follow the below steps to install and setup RTL to run on C-Lightning. 4. Copy the `access.macaroon` file from `cl-rest` to the device, on which RTL will be installed ### Architecture -![](../screenshots/RTL-CLT-Arch-2.png) +![](./screenshots/RTL-CLT-Arch-2.png) ### Installation: To download a specific RTL version follow the instructions on the [release page](https://github.com/Ride-The-Lightning/RTL/releases) @@ -32,7 +32,10 @@ To download from master (*not recommended*): ``` $ git clone https://github.com/Ride-The-Lightning/RTL.git $ cd RTL -$ npm install --only=prod +$ npm install +$ npm run buildfrontend +$ npm run buildbackend +$ npm prune --production ``` #### Or: Update existing build @@ -41,7 +44,10 @@ $ cd RTL $ git reset --hard HEAD $ git clean -f -d $ git pull -$ npm install --only=prod +$ npm install +$ npm run buildfrontend +$ npm run buildbackend +$ npm prune --production ``` ### Prep for Execution RTL requires its own config file `RTL-Config.json`, to start the server and provide user authentication on the app. diff --git a/docs/CLTCommandCoverage.md b/.github/docs/CLTCommandCoverage.md similarity index 100% rename from docs/CLTCommandCoverage.md rename to .github/docs/CLTCommandCoverage.md diff --git a/docs/Channel_backups.md b/.github/docs/Channel_backups.md similarity index 100% rename from docs/Channel_backups.md rename to .github/docs/Channel_backups.md diff --git a/docs/Contributing.md b/.github/docs/Contributing.md similarity index 81% rename from docs/Contributing.md rename to .github/docs/Contributing.md index 3d3d91b0..3957b6f3 100644 --- a/docs/Contributing.md +++ b/.github/docs/Contributing.md @@ -46,23 +46,26 @@ Contributions via code is the most sought after contribution and something we en * Assuming that nodejs (v12 & above) and npm are already installed on your local machine. Go into your RTL root folder and run `npm install`. * Sometimes after installation, user receives a message from npm to fix dependency vulnerability by running `npm audit fix`. Please do not follow this step as it can break some of the working RTL code on your machine. We audit and fix these vulnerabilities as soon as possible at our end. -##### Node Server for Development -* To run RTL node server in development mode, go to workspace/RTL and excute `npm run server` in the command window. This will run the script named `server` defined in package.json. This script sets the node environment as development and starts the server from rtl.js. Nodemon restarts the node application when file changes in the directory are detected. +##### Node Backend Server for Development +* The RTL server code has been written in typescript and `npm run watchbackend` script can be used to compile and generate their javascript equivalents. Keep the script running to watch for realtime changes and compilation. `watchbackend` and `buildbackend` scripts get the configuration options from tsconfig, read .ts files from the `./server` folder and save the compiled .js and .map files in `./backend` folder. +* To run RTL node server in development mode, open another command window, go to workspace/RTL and excute `npm run server`. This will run the script named `server` defined in package.json. This script sets the node environment as development and starts the server from rtl.js. Nodemon restarts the node application when file changes in the directory are detected. * This `server` script has been written for windows machine. Please update the script to set the `NODE_ENV=development` according to your machine's OS. * To check all available scripts for the project, explore the `scripts` section of package.json. -![](../screenshots/node-server-dev.jpg) +![](./screenshots/node-server-dev.jpg) -##### Angular Server for Development +##### Angular Frontend Server for Development * The last step starts the node server but it cannot detect and update the code written in Angular. We run the angular development server separately while working on the frontend of the project and package the final build once the development is finished. * To run the angular development server, go to workspace/RTL and run `npm run start`. It will start the angular server at default '4200' port and serve the application on localhost:4200. -![](../screenshots/angular-server-dev.jpg) -![](../screenshots/localhost-ui-dev.jpg) +![](./screenshots/angular-server-dev.jpg) +![](./screenshots/localhost-ui-dev.jpg) ##### Package Angular Build -* If the change/update were only made for the backend, you can directly move to the next step. -* In case the code was updated for the frontend (in the src folder), the Angular application code needs to be compiled into the output directory named `angular` at workspace/RTL. It can be done by running `npm run build` command in the RTL root. +* Run `npm run test` script to verify and fix, if needed, automated test cases. +* Execute `npm run lint` to lint the code before final compilation. +* To compile the backend code, `npm run buildbackend` script should be used. It will compile the code written in typescript in `server` folder and create a folder named `backend` with final compiled javascript code. +* The Angular application code needs to be compiled into the output directory named `frontend` at workspace/RTL. It can be done by running `npm run buildfrontend` command in the RTL root. * Please make sure to remove all linting and other errors thrown by the build command before moving to the next step. -![](../screenshots/angular-build.jpg) +![](./screenshots/angular-build.jpg) ##### Create a Pull Request * Create a new branch on the github to push your updated code. diff --git a/docs/Eclair-setup.md b/.github/docs/Eclair-setup.md similarity index 94% rename from docs/Eclair-setup.md rename to .github/docs/Eclair-setup.md index ecff5503..c0d62782 100644 --- a/docs/Eclair-setup.md +++ b/.github/docs/Eclair-setup.md @@ -1,4 +1,4 @@ -![](../screenshots/RTL-ECL-Dashboard.png) +![](./screenshots/RTL-ECL-Dashboard.png) ## RTL Eclair setup @@ -28,7 +28,10 @@ To download from master (*not recommended*) follow the below instructions: ``` $ git clone https://github.com/Ride-The-Lightning/RTL.git $ cd RTL -$ npm install --only=prod +$ npm install +$ npm run buildfrontend +$ npm run buildbackend +$ npm prune --production ``` #### Or: Update existing build ``` @@ -36,7 +39,10 @@ $ cd RTL $ git reset --hard HEAD $ git clean -f -d $ git pull -$ npm install --only=prod +$ npm install +$ npm run buildfrontend +$ npm run buildbackend +$ npm prune --production ``` ### Prep for Execution RTL requires its own config file `RTL-Config.json`, to start the server and provide user authentication on the app. diff --git a/docs/LNDAPICoverage.md b/.github/docs/LNDAPICoverage.md similarity index 95% rename from docs/LNDAPICoverage.md rename to .github/docs/LNDAPICoverage.md index 2d70b118..69648f04 100644 --- a/docs/LNDAPICoverage.md +++ b/.github/docs/LNDAPICoverage.md @@ -1,4 +1,4 @@ -[Intro](../README.md) -- [Application Features](Application_features.md) -- [Road Map](Roadmap.md) -- **LND API Coverage** -- [Application Configurations](Application_configurations) +[Intro](../README.md) -- [Application Features](Application_features.md) -- [Road Map](Roadmap.md) -- **LND API Coverage** -- [Application Configurations](Application_configurations.md) - [x] GenSeed - [x] InitWallet diff --git a/docs/Multi-Node-setup.md b/.github/docs/Multi-Node-setup.md similarity index 100% rename from docs/Multi-Node-setup.md rename to .github/docs/Multi-Node-setup.md diff --git a/docs/RTL_SSL_setup.md b/.github/docs/RTL_SSL_setup.md similarity index 100% rename from docs/RTL_SSL_setup.md rename to .github/docs/RTL_SSL_setup.md diff --git a/docs/RTL_TOR_setup.md b/.github/docs/RTL_TOR_setup.md similarity index 100% rename from docs/RTL_TOR_setup.md rename to .github/docs/RTL_TOR_setup.md diff --git a/docs/RTL_setups.md b/.github/docs/RTL_setups.md similarity index 100% rename from docs/RTL_setups.md rename to .github/docs/RTL_setups.md diff --git a/docs/Roadmap.md b/.github/docs/Roadmap.md similarity index 98% rename from docs/Roadmap.md rename to .github/docs/Roadmap.md index cf65e055..a939e137 100644 --- a/docs/Roadmap.md +++ b/.github/docs/Roadmap.md @@ -1,4 +1,4 @@ -[Intro](../README.md) -- [Application Features](Application_features.md) -- **Road Map** -- [Application Configurations](Application_configurations) +[Intro](../README.md) -- [Application Features](Application_features.md) -- **Road Map** -- [Application Configurations](Application_configurations.md) # Product Roadmap for RTL Application diff --git a/docs/Sample-RTL-Config.json b/.github/docs/Sample-RTL-Config.json similarity index 100% rename from docs/Sample-RTL-Config.json rename to .github/docs/Sample-RTL-Config.json diff --git a/product management/Channels Details.png b/.github/product management/Channels Details.png similarity index 100% rename from product management/Channels Details.png rename to .github/product management/Channels Details.png diff --git a/product management/Channels Lookup.png b/.github/product management/Channels Lookup.png similarity index 100% rename from product management/Channels Lookup.png rename to .github/product management/Channels Lookup.png diff --git a/product management/Channels.png b/.github/product management/Channels.png similarity index 100% rename from product management/Channels.png rename to .github/product management/Channels.png diff --git a/product management/Home Page.png b/.github/product management/Home Page.png similarity index 100% rename from product management/Home Page.png rename to .github/product management/Home Page.png diff --git a/product management/Node Lookup.png b/.github/product management/Node Lookup.png similarity index 100% rename from product management/Node Lookup.png rename to .github/product management/Node Lookup.png diff --git a/product management/Peers.png b/.github/product management/Peers.png similarity index 100% rename from product management/Peers.png rename to .github/product management/Peers.png diff --git a/product management/Start.png b/.github/product management/Start.png similarity index 100% rename from product management/Start.png rename to .github/product management/Start.png diff --git a/product management/Unlock Wallet.png b/.github/product management/Unlock Wallet.png similarity index 100% rename from product management/Unlock Wallet.png rename to .github/product management/Unlock Wallet.png diff --git a/product management/roadmap.md b/.github/product management/roadmap.md similarity index 100% rename from product management/roadmap.md rename to .github/product management/roadmap.md diff --git a/screenshots/Directions b/.github/screenshots/Directions similarity index 100% rename from screenshots/Directions rename to .github/screenshots/Directions diff --git a/screenshots/LND-Channel-Management.png b/.github/screenshots/LND-Channel-Management.png similarity index 100% rename from screenshots/LND-Channel-Management.png rename to .github/screenshots/LND-Channel-Management.png diff --git a/screenshots/LND-Circular-Rebalancing.png b/.github/screenshots/LND-Circular-Rebalancing.png similarity index 100% rename from screenshots/LND-Circular-Rebalancing.png rename to .github/screenshots/LND-Circular-Rebalancing.png diff --git a/screenshots/LND-Dashboard-Merchant.png b/.github/screenshots/LND-Dashboard-Merchant.png similarity index 100% rename from screenshots/LND-Dashboard-Merchant.png rename to .github/screenshots/LND-Dashboard-Merchant.png diff --git a/screenshots/LND-Loop-In.png b/.github/screenshots/LND-Loop-In.png similarity index 100% rename from screenshots/LND-Loop-In.png rename to .github/screenshots/LND-Loop-In.png diff --git a/screenshots/LND-Loop-Out.png b/.github/screenshots/LND-Loop-Out.png similarity index 100% rename from screenshots/LND-Loop-Out.png rename to .github/screenshots/LND-Loop-Out.png diff --git a/screenshots/Loop-In-info.png b/.github/screenshots/Loop-In-info.png similarity index 100% rename from screenshots/Loop-In-info.png rename to .github/screenshots/Loop-In-info.png diff --git a/screenshots/Loop-Out-info.png b/.github/screenshots/Loop-Out-info.png similarity index 100% rename from screenshots/Loop-Out-info.png rename to .github/screenshots/Loop-Out-info.png diff --git a/screenshots/RTL-C-lightning-Arch.png b/.github/screenshots/RTL-C-lightning-Arch.png similarity index 100% rename from screenshots/RTL-C-lightning-Arch.png rename to .github/screenshots/RTL-C-lightning-Arch.png diff --git a/screenshots/RTL-CLT-Arch-2.png b/.github/screenshots/RTL-CLT-Arch-2.png similarity index 100% rename from screenshots/RTL-CLT-Arch-2.png rename to .github/screenshots/RTL-CLT-Arch-2.png diff --git a/screenshots/RTL-CLT-Dashboard.png b/.github/screenshots/RTL-CLT-Dashboard.png similarity index 100% rename from screenshots/RTL-CLT-Dashboard.png rename to .github/screenshots/RTL-CLT-Dashboard.png diff --git a/screenshots/RTL-CLT-Home.png b/.github/screenshots/RTL-CLT-Home.png similarity index 100% rename from screenshots/RTL-CLT-Home.png rename to .github/screenshots/RTL-CLT-Home.png diff --git a/screenshots/RTL-ECL-Dashboard.png b/.github/screenshots/RTL-ECL-Dashboard.png similarity index 100% rename from screenshots/RTL-ECL-Dashboard.png rename to .github/screenshots/RTL-ECL-Dashboard.png diff --git a/screenshots/RTL-LND-Arch-2.png b/.github/screenshots/RTL-LND-Arch-2.png similarity index 100% rename from screenshots/RTL-LND-Arch-2.png rename to .github/screenshots/RTL-LND-Arch-2.png diff --git a/screenshots/RTL-LND-Arch.png b/.github/screenshots/RTL-LND-Arch.png similarity index 100% rename from screenshots/RTL-LND-Arch.png rename to .github/screenshots/RTL-LND-Arch.png diff --git a/screenshots/RTL-LND-Dashboard.png b/.github/screenshots/RTL-LND-Dashboard.png similarity index 100% rename from screenshots/RTL-LND-Dashboard.png rename to .github/screenshots/RTL-LND-Dashboard.png diff --git a/screenshots/RTL_Arch.png b/.github/screenshots/RTL_Arch.png similarity index 100% rename from screenshots/RTL_Arch.png rename to .github/screenshots/RTL_Arch.png diff --git a/screenshots/RTL_Home.png b/.github/screenshots/RTL_Home.png similarity index 100% rename from screenshots/RTL_Home.png rename to .github/screenshots/RTL_Home.png diff --git a/screenshots/Settings.png b/.github/screenshots/Settings.png similarity index 100% rename from screenshots/Settings.png rename to .github/screenshots/Settings.png diff --git a/screenshots/angular-build.jpg b/.github/screenshots/angular-build.jpg similarity index 100% rename from screenshots/angular-build.jpg rename to .github/screenshots/angular-build.jpg diff --git a/screenshots/angular-server-dev.jpg b/.github/screenshots/angular-server-dev.jpg similarity index 100% rename from screenshots/angular-server-dev.jpg rename to .github/screenshots/angular-server-dev.jpg diff --git a/screenshots/localhost-ui-dev.jpg b/.github/screenshots/localhost-ui-dev.jpg similarity index 100% rename from screenshots/localhost-ui-dev.jpg rename to .github/screenshots/localhost-ui-dev.jpg diff --git a/screenshots/node-server-dev.jpg b/.github/screenshots/node-server-dev.jpg similarity index 100% rename from screenshots/node-server-dev.jpg rename to .github/screenshots/node-server-dev.jpg diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 00000000..293cdc1d --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,86 @@ +name: Lint & Test + +on: + push: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + prepare: + runs-on: ubuntu-latest + steps: + - name: Checkout source code + uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: 16.x + + - name: Cache node_modules + uses: actions/cache@v2 + id: cache-npm-packages + with: + path: node_modules + key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }} + + - name: Install NPM dependencies + if: steps.cache-npm-packages.outputs.cache-hit != 'true' + run: npm ci + + lint: + name: Lint + runs-on: ubuntu-latest + needs: prepare + steps: + - name: Checkout source code + uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: 16.x + + - name: Cache node_modules + uses: actions/cache@v2 + id: cache-npm-packages + with: + path: node_modules + key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }} + + - name: Install NPM dependencies + if: steps.cache-npm-packages.outputs.cache-hit != 'true' + run: npm ci + + - name: Lint Scripts + run: npm run lint + + + test: + name: Test + runs-on: ubuntu-latest + needs: prepare + env: + CI: true + steps: + - name: Checkout source code + uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: 16.x + + - name: Cache node_modules + uses: actions/cache@v2 + id: cache-npm-packages + with: + path: node_modules + key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }} + + - name: Install NPM dependencies + if: steps.cache-npm-packages.outputs.cache-hit != 'true' + run: npm ci + + - name: Run tests + run: npm run test diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..4eb1de8e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,86 @@ +name: Artifact + +on: + push: + branches: [ master, 'Release-*' ] + tags: [ 'v*' ] + release: + types: [released] + # Triggers the workflow only when merging pull request to the branches. + pull_request: + types: [closed] + branches: [ master, 'Release-*' ] + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout source code + uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: 16.x + + - name: Cache node_modules + uses: actions/cache@v2 + id: cache-npm-packages + with: + path: node_modules + key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }} + + - name: Install NPM dependencies + if: steps.cache-npm-packages.outputs.cache-hit != 'true' + run: npm ci + + - name: Cache build frontend + uses: actions/cache@v2 + id: cache-build-frontend + with: + path: frontend + key: ${{ runner.os }}-frontend-${{ github.sha }} + + - name: Run build production application + run: npm run buildfrontend + + - name: Cache build backend + uses: actions/cache@v2 + id: cache-build-backend + with: + path: backend + key: ${{ runner.os }}-backend-${{ github.sha }} + + - name: Run build backend server + run: npm run buildbackend + + deploy: + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout source code + uses: actions/checkout@v2 + + - name: Cache build frontend + uses: actions/cache@v2 + id: cache-build-frontend + with: + path: frontend + key: ${{ runner.os }}-frontend-${{ github.sha }} + + - name: Cache build backend + uses: actions/cache@v2 + id: cache-build-backend + with: + path: backend + key: ${{ runner.os }}-backend-${{ github.sha }} + + - name: Compress files + run: tar -czf /tmp/rtlbuild.tar.gz frontend backend rtl.js package.json package-lock.json + + - uses: actions/upload-artifact@v2 + with: + name: rtl-build-${{ github.event.release.tag_name }} + path: /tmp/rtlbuild.tar.gz diff --git a/.gitignore b/.gitignore index 4860242e..c8b44e20 100644 --- a/.gitignore +++ b/.gitignore @@ -27,19 +27,24 @@ !.vscode/extensions.json # misc +/.angular/cache /.sass-cache /connect.lock /coverage +/db /libpeerconnection.log npm-debug.log yarn-error.log testem.log /typings +channels-backup +logs +cookies # System Files .DS_Store Thumbs.db - +/database/* /logs/* /cookies/* /backup/* @@ -53,3 +58,8 @@ RTL-1.conf RTL-Multi-Node-Conf-1.json RTL-Config-for-BTC-Testing.json ECLDummyData.log +_config.yml +.vscode/launch.json +RTL-Config-Docker.json +dockerfiles/RTL-Config.json +dockerfiles/.env diff --git a/_config.yml b/_config.yml deleted file mode 100644 index fc24e7a6..00000000 --- a/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-hacker \ No newline at end of file diff --git a/angular.json b/angular.json index 75db289f..5321f22f 100644 --- a/angular.json +++ b/angular.json @@ -21,7 +21,7 @@ "builder": "@angular-devkit/build-angular:browser", "options": { "baseHref": "/rtl/", - "outputPath": "angular", + "outputPath": "frontend", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", @@ -29,7 +29,10 @@ "allowedCommonJsDependencies": [ "sha256", "qrcode", - "otplib" + "otplib", + "pdfmake/build/pdfmake", + "pdfmake/build/vfs_fonts", + "clone-deep" ], "assets": [ "src/assets" @@ -68,8 +71,8 @@ }, { "type": "anyComponentStyle", - "maximumWarning": "5mb", - "maximumError": "10mb" + "maximumWarning": "20mb", + "maximumError": "50mb" } ] } @@ -98,7 +101,7 @@ "main": "src/test.ts", "polyfills": "src/polyfills.ts", "tsConfig": "src/tsconfig.spec.json", - "karmaConfig": "src/karma.conf.js", + "karmaConfig": "src/karma.conf.cjs", "assets": [ "src/assets" ], diff --git a/angular/145.b1263bd6d4d9c808b95c.js b/angular/145.b1263bd6d4d9c808b95c.js deleted file mode 100644 index e1bd689f..00000000 --- a/angular/145.b1263bd6d4d9c808b95c.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkrtl=self.webpackChunkrtl||[]).push([[145],{2462:(t,e,n)=>{"use strict";n.r(e),n.d(e,{CLModule:()=>Id});var a=n(1511),s=n(6853),i=n(2865),o=n(1572),l=n(3722),r=n(5994);function c(t,e){1&t&&o._UZ(0,"mat-progress-bar",3)}let u=(()=>{class t{constructor(t){this.router=t,this.loading=!1,this.router.events.subscribe(t=>{switch(!0){case t instanceof s.OD:this.loading=!0;break;case t instanceof s.m2:case t instanceof s.gk:case t instanceof s.Q3:this.loading=!1}})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-root"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"inner-sidenav-content"],["color","primary","mode","indeterminate",4,"ngIf"],["outlet","outlet"],["color","primary","mode","indeterminate"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,c,1,0,"mat-progress-bar",1),o._UZ(2,"router-outlet",null,2),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf",e.loading))},directives:[l.xw,l.yH,l.Wh,a.O5,s.lC,r.pW],styles:[""],data:{animation:[i.g]}}),t})();var d=n(9666),p=n(9568),h=n(8868),m=n(7810),g=n(5291),f=n(9421),x=n(9939),Z=n(3869),y=n(964),A=n(5573),T=n(1084),C=n(7592),w=n(7271),v=n(7439),S=n(8055),b=n(377),q=n(5980),_=n(3691);const F=function(t){return{backgroundColor:t}};function L(t,e){if(1&t&&o._UZ(0,"span",6),2&t){const t=o.oxw();o.Q6J("ngStyle",o.VKq(1,F,"#"+(null==t.information?null:t.information.color)))}}function U(t,e){if(1&t&&(o.TgZ(0,"div"),o.TgZ(1,"h4",1),o._uU(2,"Color"),o.qZA(),o.TgZ(3,"div",2),o._UZ(4,"span",7),o._uU(5),o.ALo(6,"uppercase"),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(4),o.Q6J("ngStyle",o.VKq(4,F,"#"+(null==t.information?null:t.information.color))),o.xp6(1),o.hij(" ",o.lcZ(6,2,null==t.information?null:t.information.color)," ")}}function R(t,e){if(1&t&&(o.TgZ(0,"span",2),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(t)}}let k=(()=>{class t{constructor(t){this.commonService=t,this.chains=[""]}ngOnChanges(){this.information&&this.information.chains&&this.information.chains.length>0&&(this.chains=[""],this.information.chains.forEach(t=>{this.chains.push(this.commonService.titleCase(t.chain)+" "+this.commonService.titleCase(t.network))}))}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(T.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-node-info"]],inputs:{information:"information",showColorFieldSeparately:"showColorFieldSeparately"},features:[o.TTD],decls:17,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["class","dashboard-node-dot dot",3,"ngStyle",4,"ngIf"],[4,"ngIf"],["class","overflow-wrap dashboard-info-value",4,"ngFor","ngForOf"],[1,"dashboard-node-dot","dot",3,"ngStyle"],[1,"dashboard-node-square",3,"ngStyle"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div"),o.TgZ(2,"h4",1),o._uU(3,"Alias"),o.qZA(),o.TgZ(4,"div",2),o._uU(5),o.YNc(6,L,1,3,"span",3),o.qZA(),o.qZA(),o.YNc(7,U,7,6,"div",4),o.TgZ(8,"div"),o.TgZ(9,"h4",1),o._uU(10,"Implementation"),o.qZA(),o.TgZ(11,"div",2),o._uU(12),o.qZA(),o.qZA(),o.TgZ(13,"div"),o.TgZ(14,"h4",1),o._uU(15,"Chain"),o.qZA(),o.YNc(16,R,2,1,"span",5),o.qZA(),o.qZA()),2&t&&(o.xp6(5),o.hij(" ",null==e.information?null:e.information.alias," "),o.xp6(1),o.Q6J("ngIf",!e.showColorFieldSeparately),o.xp6(1),o.Q6J("ngIf",e.showColorFieldSeparately),o.xp6(5),o.Oqu(null!=e.information&&e.information.lnImplementation||null!=e.information&&e.information.version?(null==e.information?null:e.information.lnImplementation)+" "+(null==e.information?null:e.information.version):""),o.xp6(4),o.Q6J("ngForOf",e.chains))},directives:[l.xw,l.yH,l.Wh,a.O5,a.sg,a.PC,b.Zl],pipes:[a.gd],styles:[""]}),t})();function N(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div"),o.TgZ(2,"h4",3),o._uU(3,"Lightning"),o.qZA(),o.TgZ(4,"div",4),o._uU(5),o.ALo(6,"number"),o.qZA(),o._UZ(7,"mat-progress-bar",5),o.qZA(),o.TgZ(8,"div"),o.TgZ(9,"h4",3),o._uU(10,"On-chain"),o.qZA(),o.TgZ(11,"div",4),o._uU(12),o.ALo(13,"number"),o.qZA(),o._UZ(14,"mat-progress-bar",5),o.qZA(),o.TgZ(15,"div"),o.TgZ(16,"h4",3),o._uU(17,"Total"),o.qZA(),o.TgZ(18,"div",4),o._uU(19),o.ALo(20,"number"),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(5),o.hij("",o.lcZ(6,5,t.balances.lightning)," Sats"),o.xp6(2),o.s9C("value",t.balances.lightning/t.balances.total*100),o.xp6(5),o.hij("",o.lcZ(13,7,t.balances.onchain)," Sats"),o.xp6(2),o.s9C("value",t.balances.onchain/t.balances.total*100),o.xp6(5),o.hij("",o.lcZ(20,9,t.balances.total)," Sats")}}function I(t,e){if(1&t&&(o.TgZ(0,"div",6),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let O=(()=>{class t{constructor(){this.balances={onchain:0,lightning:0,total:0}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-balances-info"]],inputs:{balances:"balances",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,N,21,11,"div",0),o.YNc(1,I,3,1,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.yH,l.Wh,r.pW],pipes:[a.JJ],styles:[""]}),t})();var E=n(6283),M=n(6828),J=n(7679),D=n(7038);function Y(t,e){if(1&t&&(o.TgZ(0,"div",19),o.TgZ(1,"span",20),o._uU(2),o.ALo(3,"slice"),o.qZA(),o.TgZ(4,"div",6),o.TgZ(5,"mat-hint",21),o.TgZ(6,"strong",8),o._uU(7,"Local:"),o.qZA(),o._uU(8),o.ALo(9,"number"),o.qZA(),o.TgZ(10,"mat-hint",22),o._UZ(11,"fa-icon",23),o._uU(12),o.ALo(13,"number"),o.qZA(),o.TgZ(14,"mat-hint",24),o.TgZ(15,"strong",8),o._uU(16,"Remote:"),o.qZA(),o._uU(17),o.ALo(18,"number"),o.qZA(),o.qZA(),o._UZ(19,"mat-progress-bar",25),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(3);o.xp6(1),o.s9C("matTooltip",t.alias||t.id),o.s9C("matTooltipDisabled",(t.alias||t.id).length<26),o.xp6(1),o.AsE("",o.Dn7(3,9,t.alias||t.id,0,24),"",(t.alias||t.id).length>25?"...":"",""),o.xp6(6),o.hij("",o.xi3(9,13,t.msatoshi_to_us/1e3||0,"1.0-0")," Sats"),o.xp6(3),o.Q6J("icon",n.faBalanceScale),o.xp6(1),o.hij(" (",o.lcZ(13,16,t.balancedness||0),") "),o.xp6(5),o.hij("",o.xi3(18,18,t.msatoshi_to_them/1e3||0,"1.0-0")," Sats"),o.xp6(2),o.s9C("value",t.msatoshi_to_us&&t.msatoshi_to_us>0?+t.msatoshi_to_us/(+t.msatoshi_to_us+ +t.msatoshi_to_them)*100:0)}}function Q(t,e){if(1&t&&(o.TgZ(0,"div",17),o.YNc(1,Y,20,21,"div",18),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngForOf",t.allChannels)}}function P(t,e){if(1&t&&(o.TgZ(0,"div",3),o.TgZ(1,"div",4),o.TgZ(2,"span",5),o._uU(3,"Total Capacity"),o.qZA(),o.TgZ(4,"div",6),o.TgZ(5,"mat-hint",7),o.TgZ(6,"strong",8),o._uU(7,"Local:"),o.qZA(),o._uU(8),o.ALo(9,"number"),o.qZA(),o.TgZ(10,"mat-hint",9),o._UZ(11,"fa-icon",10),o._uU(12),o.ALo(13,"number"),o.qZA(),o.TgZ(14,"mat-hint",11),o.TgZ(15,"strong",8),o._uU(16,"Remote:"),o.qZA(),o._uU(17),o.ALo(18,"number"),o.qZA(),o.qZA(),o._UZ(19,"mat-progress-bar",12),o.qZA(),o.TgZ(20,"div",13),o._UZ(21,"mat-divider",14),o.qZA(),o.TgZ(22,"div",15),o.YNc(23,Q,2,1,"div",16),o.qZA(),o.qZA()),2&t){const t=o.oxw(),e=o.MAs(2);o.xp6(8),o.hij("",o.xi3(9,7,(null==t.channelBalances?null:t.channelBalances.localBalance)||0,"1.0-0")," Sats"),o.xp6(3),o.Q6J("icon",t.faBalanceScale),o.xp6(1),o.hij(" (",o.lcZ(13,10,(null==t.channelBalances?null:t.channelBalances.balancedness)||0),") "),o.xp6(5),o.hij("",o.xi3(18,12,(null==t.channelBalances?null:t.channelBalances.remoteBalance)||0,"1.0-0")," Sats"),o.xp6(2),o.s9C("value",null!=t.channelBalances&&t.channelBalances.localBalance&&(null==t.channelBalances?null:t.channelBalances.localBalance)>0?+(null==t.channelBalances?null:t.channelBalances.localBalance)/(+(null==t.channelBalances?null:t.channelBalances.localBalance)+ +(null==t.channelBalances?null:t.channelBalances.remoteBalance))*100:0),o.xp6(4),o.Q6J("ngIf",t.allChannels&&t.allChannels.length>0)("ngIfElse",e)}}function B(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",26),o._uU(1," No channels available. "),o.TgZ(2,"button",27),o.NdJ("click",function(){return o.CHM(t),o.oxw().goToChannels()}),o._uU(3,"Open Channel"),o.qZA(),o.qZA()}}function H(t,e){if(1&t&&(o.TgZ(0,"div",28),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let z=(()=>{class t{constructor(t){this.router=t,this.faBalanceScale=g.DL8,this.faDumbbell=g.FlN,this.sortBy="Balance Score"}goToChannels(){this.router.navigateByUrl("/cl/connections")}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-channel-capacity-info"]],inputs:{channelBalances:"channelBalances",allChannels:"allChannels",sortBy:"sortBy",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90"],[1,"font-weight-900","mr-5px"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90"],["matTooltip","Balance Score",1,"mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90"],["mode","determinate","color","accent",1,"dashboard-progress-bar","this-channel-bar",3,"value"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],[1,"channels-capacity-scroll",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90","color-primary"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90","color-primary"],["matTooltip","Balance Score",1,"color-primary","mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90","color-primary"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start",1,"mt-1","w-100"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,P,24,15,"div",0),o.YNc(1,B,4,0,"ng-template",null,1,o.W1O),o.YNc(3,H,3,1,"ng-template",null,2,o.W1O)),2&t){const t=o.MAs(4);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.Wh,l.yH,E.bx,C.BN,M.gM,r.pW,J.d,D.$V,a.sg,q.lW],pipes:[a.JJ,a.OU],styles:[".channels-capacity-scroll[_ngcontent-%COMP%]{width:100%;height:100%;overflow-y:hidden}"]}),t})();function G(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o.TgZ(2,"div"),o.TgZ(3,"h4",4),o._uU(4,"Total"),o.qZA(),o.TgZ(5,"div",5),o._uU(6),o.ALo(7,"number"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",3),o.TgZ(9,"div"),o.TgZ(10,"h4",4),o._uU(11,"Transactions"),o.qZA(),o.TgZ(12,"div",5),o._uU(13),o.ALo(14,"number"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(6),o.hij("",o.lcZ(7,2,(null==t.fees?null:t.fees.feeCollected)/1e3)," Sats"),o.xp6(7),o.Oqu(o.lcZ(14,4,null==t.fees?null:t.fees.totalTxCount))}}function V(t,e){if(1&t&&(o.TgZ(0,"div",6),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let X=(()=>{class t{constructor(){this.totalFees=[{name:"Total",value:0}]}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-fee-info"]],inputs:{fees:"fees",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,G,15,6,"div",0),o.YNc(1,V,3,1,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.yH,l.Wh],pipes:[a.JJ],styles:[""]}),t})();function W(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o.TgZ(2,"div"),o.TgZ(3,"h4",4),o._uU(4,"Active"),o.qZA(),o.TgZ(5,"div",5),o._UZ(6,"span",6),o._uU(7),o.ALo(8,"number"),o.qZA(),o.qZA(),o.TgZ(9,"div"),o.TgZ(10,"h4",4),o._uU(11,"Pending"),o.qZA(),o.TgZ(12,"div",5),o._UZ(13,"span",7),o._uU(14),o.ALo(15,"number"),o.qZA(),o.qZA(),o.TgZ(16,"div"),o.TgZ(17,"h4",4),o._uU(18,"Inactive"),o.qZA(),o.TgZ(19,"div",5),o._UZ(20,"span",8),o._uU(21),o.ALo(22,"number"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(23,"div",3),o.TgZ(24,"div"),o.TgZ(25,"h4",4),o._uU(26,"Capacity"),o.qZA(),o.TgZ(27,"div",5),o._uU(28),o.ALo(29,"number"),o.qZA(),o.qZA(),o.TgZ(30,"div"),o.TgZ(31,"h4",4),o._uU(32,"Capacity"),o.qZA(),o.TgZ(33,"div",5),o._uU(34),o.ALo(35,"number"),o.qZA(),o.qZA(),o.TgZ(36,"div"),o.TgZ(37,"h4",4),o._uU(38,"Capacity"),o.qZA(),o.TgZ(39,"div",5),o._uU(40),o.ALo(41,"number"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(7),o.Oqu(o.lcZ(8,6,(null==t.channelsStatus||null==t.channelsStatus.active?null:t.channelsStatus.active.channels)||0)),o.xp6(7),o.Oqu(o.lcZ(15,8,(null==t.channelsStatus||null==t.channelsStatus.pending?null:t.channelsStatus.pending.channels)||0)),o.xp6(7),o.Oqu(o.lcZ(22,10,(null==t.channelsStatus||null==t.channelsStatus.inactive?null:t.channelsStatus.inactive.channels)||0)),o.xp6(7),o.hij("",o.lcZ(29,12,(null==t.channelsStatus||null==t.channelsStatus.active?null:t.channelsStatus.active.capacity)||0)," Sats"),o.xp6(6),o.hij("",o.lcZ(35,14,(null==t.channelsStatus||null==t.channelsStatus.pending?null:t.channelsStatus.pending.capacity)||0)," Sats"),o.xp6(6),o.hij("",o.lcZ(41,16,(null==t.channelsStatus||null==t.channelsStatus.inactive?null:t.channelsStatus.inactive.capacity)||0)," Sats")}}function $(t,e){if(1&t&&(o.TgZ(0,"div",9),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let K=(()=>{class t{constructor(){this.channelsStatus={}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-channel-status-info"]],inputs:{channelsStatus:"channelsStatus",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],[1,"dot","tiny-dot","green"],[1,"dot","tiny-dot","yellow"],[1,"dot","tiny-dot","grey"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,W,42,18,"div",0),o.YNc(1,$,3,1,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.yH,l.Wh],pipes:[a.JJ],styles:[""]}),t})();function j(t,e){if(1&t&&(o.TgZ(0,"mat-hint",19),o.TgZ(1,"strong",20),o._uU(2,"Capacity: "),o.qZA(),o._uU(3),o.ALo(4,"number"),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(3),o.hij("",o.xi3(4,1,t.msatoshi_to_them/1e3||0,"1.0-0")," Sats")}}function tt(t,e){if(1&t&&(o.TgZ(0,"mat-hint",19),o.TgZ(1,"strong",20),o._uU(2,"Capacity: "),o.qZA(),o._uU(3),o.ALo(4,"number"),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(3),o.hij("",o.xi3(4,1,t.msatoshi_to_us/1e3||0,"1.0-0")," Sats")}}function et(t,e){if(1&t&&o._UZ(0,"mat-progress-bar",21),2&t){const t=o.oxw().$implicit,e=o.oxw(3);o.s9C("value",e.totalLiquidity>0?(+t.msatoshi_to_them/1e3||0)/e.totalLiquidity*100:0)}}function nt(t,e){if(1&t&&o._UZ(0,"mat-progress-bar",21),2&t){const t=o.oxw().$implicit,e=o.oxw(3);o.s9C("value",e.totalLiquidity>0?(+t.msatoshi_to_us/1e3||0)/e.totalLiquidity*100:0)}}function at(t,e){if(1&t&&(o.TgZ(0,"div",14),o.TgZ(1,"span",15),o._uU(2),o.ALo(3,"slice"),o.qZA(),o.TgZ(4,"div",16),o.YNc(5,j,5,4,"mat-hint",17),o.YNc(6,tt,5,4,"mat-hint",17),o.qZA(),o.YNc(7,et,1,1,"mat-progress-bar",18),o.YNc(8,nt,1,1,"mat-progress-bar",18),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(3);o.xp6(1),o.s9C("matTooltip",t.alias||t.id),o.s9C("matTooltipDisabled",(t.alias||t.id).length<26),o.xp6(1),o.AsE("",o.Dn7(3,8,t.alias||t.id,0,24),"",(t.alias||t.id).length>25?"...":"",""),o.xp6(3),o.Q6J("ngIf","In"===n.direction),o.xp6(1),o.Q6J("ngIf","Out"===n.direction),o.xp6(1),o.Q6J("ngIf","In"===n.direction),o.xp6(1),o.Q6J("ngIf","Out"===n.direction)}}function st(t,e){if(1&t&&(o.TgZ(0,"div",12),o.YNc(1,at,9,12,"div",13),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngForOf",t.allChannels)}}const it=function(t,e,n){return{"mb-4":t,"mb-2":e,"mb-1":n}};function ot(t,e){if(1&t&&(o.TgZ(0,"div",3),o.TgZ(1,"div",4),o.TgZ(2,"span",5),o._uU(3,"Total Capacity"),o.qZA(),o.TgZ(4,"mat-hint",6),o._uU(5),o.ALo(6,"number"),o.qZA(),o._UZ(7,"mat-progress-bar",7),o.qZA(),o.TgZ(8,"div",8),o._UZ(9,"mat-divider",9),o.qZA(),o.TgZ(10,"div",10),o.YNc(11,st,2,1,"div",11),o.qZA(),o.qZA()),2&t){const t=o.oxw(),e=o.MAs(2);o.Q6J("ngClass",o.kEZ(7,it,t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM,t.screenSize===t.screenSizeEnum.MD,t.screenSize===t.screenSizeEnum.LG||t.screenSize===t.screenSizeEnum.XL)),o.xp6(5),o.hij("",o.xi3(6,4,t.totalLiquidity,"1.0-0")," Sats"),o.xp6(6),o.Q6J("ngIf",t.allChannels&&t.allChannels.length>0)("ngIfElse",e)}}function lt(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",24),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).goToChannels()}),o._uU(1,"Open Channel"),o.qZA()}}function rt(t,e){if(1&t&&(o.TgZ(0,"div",22),o._uU(1," No channels available. "),o.YNc(2,lt,2,0,"button",23),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Q6J("ngIf","Out"===t.direction)}}function ct(t,e){if(1&t&&(o.TgZ(0,"div",25),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let ut=(()=>{class t{constructor(t,e){this.router=t,this.commonService=e,this.screenSize="",this.screenSizeEnum=f.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}goToChannels(){this.router.navigateByUrl("/cl/connections")}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(s.F0),o.Y36(T.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-channel-liquidity-info"]],inputs:{direction:"direction",totalLiquidity:"totalLiquidity",allChannels:"allChannels",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",3,"ngClass",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",3,"ngClass"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],[1,"font-size-90"],["mode","determinate","color","accent","value","100",1,"dashboard-progress-bar","this-channel-bar"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],["fxLayout","column","fxFlex.gt-sm","88","fxFlex","84","fxLayoutAlign","start start",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100","class","w-100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100",1,"w-100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","100","fxLayoutAlign","start center","class","font-size-90 color-primary",4,"ngIf"],["class","dashboard-progress-bar","mode","determinate",3,"value",4,"ngIf"],["fxFlex","100","fxLayoutAlign","start center",1,"font-size-90","color-primary"],[1,"font-weight-900","mr-5px"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","1",3,"click",4,"ngIf"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,ot,12,11,"div",0),o.YNc(1,rt,3,1,"ng-template",null,1,o.W1O),o.YNc(3,ct,3,1,"ng-template",null,2,o.W1O)),2&t){const t=o.MAs(4);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.Wh,l.yH,a.mk,b.oO,E.bx,r.pW,J.d,D.$V,a.sg,M.gM,q.lW],pipes:[a.JJ,a.OU],styles:[""]}),t})();var dt=n(5109),pt=n(3005),ht=n(2464),mt=n(7033),gt=n(4608),ft=n(6073),xt=n(6756),Zt=n(6880),yt=n(5095),At=n(4786),Tt=n(7521),Ct=n(1522);function wt(t,e){if(1&t&&(o.TgZ(0,"mat-option",26),o._uU(1),o.ALo(2,"titlecase"),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t),o.xp6(1),o.Oqu(o.lcZ(2,2,t))}}function vt(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.invoiceError)}}function St(t,e){if(1&t&&(o.TgZ(0,"div",27),o._UZ(1,"fa-icon",28),o.YNc(2,vt,2,1,"span",29),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==t.invoiceError)}}let bt=(()=>{class t{constructor(t,e,n,a,s,i){this.dialogRef=t,this.data=e,this.store=n,this.decimalPipe=a,this.commonService=s,this.actions=i,this.faExclamationTriangle=g.eHv,this.selNode={},this.description="",this.invoiceValueHint="",this.invoicePaymentReq="",this.information={},this.private=!1,this.expiryStep=100,this.pageSize=f.IV,this.timeUnitEnum=f.Qk,this.timeUnits=f.LO,this.selTimeUnit=f.Qk.SECS,this.invoiceError="",this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.pageSize=this.data.pageSize,this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t.nodeSettings,this.information=t.information}),this.actions.pipe((0,p.R)(this.unSubs[1]),(0,h.h)(t=>t.type===x.qe||t.type===x.G0)).subscribe(t=>{t.type===x.G0&&this.dialogRef.close(),t.type===x.qe&&t.payload.status===f.Bn.ERROR&&"SaveNewInvoice"===t.payload.action&&(this.invoiceError=t.payload.message)})}onAddInvoice(t){this.invoiceError="",this.invoiceValue||(this.invoiceValue=0);let e=this.expiry?this.expiry:3600;this.selTimeUnit!==f.Qk.SECS&&(e=this.commonService.convertTime(this.expiry,this.selTimeUnit,f.Qk.SECS)),this.store.dispatch(new x.H1({label:"ulbl"+Math.random().toString(36).slice(2)+Date.now(),amount:1e3*this.invoiceValue,description:this.description,expiry:e,private:this.private}))}resetData(){this.description="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint="",this.selTimeUnit=f.Qk.SECS,this.invoiceError=""}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,f.NT.SATS,f.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,p.R)(this.unSubs[2])).subscribe({next:t=>{this.invoiceValueHint="= "+t.symbol+this.decimalPipe.transform(t.OTHER,f.Xz.OTHER)+" "+t.unit},error:t=>{this.invoiceValueHint="Conversion Error: "+t}}))}onTimeUnitChange(t){this.expiry&&this.selTimeUnit!==t.value&&(this.expiry=this.commonService.convertTime(this.expiry,this.selTimeUnit,t.value)),this.selTimeUnit=t.value}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(gt.so),o.Y36(gt.WI),o.Y36(y.yh),o.Y36(a.JJ),o.Y36(T.v),o.Y36(A.eX))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-create-invoices"]],decls:37,vars:17,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","start space-between","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","autoFocus","","placeholder","Description","tabindex","2","name","description",3,"ngModel","ngModelChange"],["fxLayout","row","fxLayoutAlign","space-between start","fxFlex","100"],["fxFlex","40"],["matInput","","placeholder","Amount","type","number","tabindex","3","name","invoiceValue",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxFlex","30"],["matInput","","name","expiry","placeholder","Expiry","type","number","tabindex","4",3,"ngModel","step","min","ngModelChange"],["fxFlex","26"],["tabindex","5","name","timeUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","50","fxLayoutAlign","start center",1,"mt-2"],["tabindex","6","color","primary","matTooltip","Include routing hints for private channels","name","private",3,"ngModel","matTooltipPosition","ngModelChange"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","7","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","8",3,"click"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[4,"ngIf"]],template:function(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Create Invoice"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"input",10),o.NdJ("ngModelChange",function(t){return e.description=t}),o.qZA(),o.qZA(),o.TgZ(13,"div",11),o.TgZ(14,"mat-form-field",12),o.TgZ(15,"input",13),o.NdJ("ngModelChange",function(t){return e.invoiceValue=t})("keyup",function(){return e.onInvoiceValueChange()}),o.qZA(),o.TgZ(16,"span",14),o._uU(17," Sats "),o.qZA(),o.TgZ(18,"mat-hint"),o._uU(19),o.qZA(),o.qZA(),o.TgZ(20,"mat-form-field",15),o.TgZ(21,"input",16),o.NdJ("ngModelChange",function(t){return e.expiry=t}),o.qZA(),o.TgZ(22,"span",14),o._uU(23),o.ALo(24,"titlecase"),o.qZA(),o.qZA(),o.TgZ(25,"mat-form-field",17),o.TgZ(26,"mat-select",18),o.NdJ("selectionChange",function(t){return e.onTimeUnitChange(t)}),o.YNc(27,wt,3,4,"mat-option",19),o.qZA(),o.qZA(),o.qZA(),o.TgZ(28,"div",20),o.TgZ(29,"mat-slide-toggle",21),o.NdJ("ngModelChange",function(t){return e.private=t}),o._uU(30,"Private Routing Hints"),o.qZA(),o.qZA(),o.YNc(31,St,3,2,"div",22),o.TgZ(32,"div",23),o.TgZ(33,"button",24),o.NdJ("click",function(){return e.resetData()}),o._uU(34,"Clear Field"),o.qZA(),o.TgZ(35,"button",25),o.NdJ("click",function(){o.CHM(t);const n=o.MAs(10);return e.onAddInvoice(n)}),o._uU(36,"Create Invoice"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()}2&t&&(o.xp6(6),o.Q6J("mat-dialog-close",!1),o.xp6(6),o.Q6J("ngModel",e.description),o.xp6(3),o.Q6J("ngModel",e.invoiceValue)("step",100)("min",1),o.xp6(4),o.Oqu(e.invoiceValueHint),o.xp6(2),o.Q6J("ngModel",e.expiry)("step",e.selTimeUnit===e.timeUnitEnum.SECS?300:e.selTimeUnit===e.timeUnitEnum.MINS?10:e.selTimeUnit===e.timeUnitEnum.HOURS?2:1)("min",1),o.xp6(2),o.hij(" ",o.lcZ(24,15,e.selTimeUnit)," "),o.xp6(3),o.Q6J("value",e.selTimeUnit),o.xp6(1),o.Q6J("ngForOf",e.timeUnits),o.xp6(2),o.Q6J("ngModel",e.private)("matTooltipPosition","above"),o.xp6(2),o.Q6J("ngIf",""!==e.invoiceError))},directives:[l.xw,l.yH,v.dk,l.Wh,q.lW,gt.ZT,v.dn,ft._Y,ft.JL,ft.F,E.KE,xt.Nt,ft.Fj,Zt.h,ft.JJ,ft.On,ft.wV,ft.qQ,yt.q,E.R9,E.bx,At.gD,a.sg,Tt.Rr,M.gM,a.O5,Ct.ey,C.BN],pipes:[a.rS],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();var qt=n(3793),_t=n(4636),Ft=n(3929),Lt=n(8914);function Ut(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"form",4,5),o.TgZ(2,"mat-form-field",6),o.TgZ(3,"input",7),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().description=e}),o.qZA(),o.qZA(),o.TgZ(4,"mat-form-field",8),o.TgZ(5,"input",9),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().invoiceValue=e})("keyup",function(){return o.CHM(t),o.oxw().onInvoiceValueChange()}),o.qZA(),o.TgZ(6,"span",10),o._uU(7," Sats "),o.qZA(),o.TgZ(8,"mat-hint"),o._uU(9),o.qZA(),o.qZA(),o.TgZ(10,"div",11),o.TgZ(11,"button",12),o.NdJ("click",function(){return o.CHM(t),o.oxw().resetData()}),o._uU(12,"Clear Field"),o.qZA(),o.TgZ(13,"button",13),o.NdJ("click",function(){o.CHM(t);const e=o.MAs(1);return o.oxw().onAddInvoice(e)}),o._uU(14,"Create Invoice"),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("ngModel",t.description),o.xp6(2),o.Q6J("ngModel",t.invoiceValue)("step",100)("min",1),o.xp6(4),o.Oqu(t.invoiceValueHint)}}function Rt(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",14),o.TgZ(1,"button",15),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDeleteExpiredInvoices()}),o._uU(2,"Delete Expired"),o.qZA(),o.TgZ(3,"button",16),o.NdJ("click",function(){return o.CHM(t),o.oxw().openCreateInvoiceModal()}),o._uU(4,"Create Invoice"),o.qZA(),o.qZA()}}function kt(t,e){1&t&&o._UZ(0,"mat-progress-bar",45)}function Nt(t,e){1&t&&(o.TgZ(0,"th",46),o._uU(1," Expiry Date "),o.qZA())}const It=function(t){return{"mr-0":t}};function Ot(t,e){if(1&t&&o._UZ(0,"span",50),2&t){const t=o.oxw(3);o.Q6J("ngClass",o.VKq(1,It,t.screenSize===t.screenSizeEnum.XS))}}function Et(t,e){if(1&t&&o._UZ(0,"span",51),2&t){const t=o.oxw(3);o.Q6J("ngClass",o.VKq(1,It,t.screenSize===t.screenSizeEnum.XS))}}function Mt(t,e){if(1&t&&(o.TgZ(0,"td",47),o.YNc(1,Ot,1,3,"span",48),o.YNc(2,Et,1,3,"span",49),o._uU(3),o.ALo(4,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Q6J("ngIf","paid"===t.status),o.xp6(1),o.Q6J("ngIf","paid"!==t.status),o.xp6(1),o.hij(" ",o.xi3(4,3,1e3*t.expires_at,"dd/MMM/YYYY HH:mm")," ")}}function Jt(t,e){1&t&&(o.TgZ(0,"th",46),o._uU(1," Date Settled "),o.qZA())}function Dt(t,e){if(1&t&&(o.TgZ(0,"td",47),o._uU(1),o.ALo(2,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(o.xi3(2,1,1e3*t.paid_at,"dd/MMM/YYYY HH:mm")||"-")}}function Yt(t,e){1&t&&(o.TgZ(0,"th",46),o._uU(1," Description "),o.qZA())}const Qt=function(t){return{"max-width":t}};function Pt(t,e){if(1&t&&(o.TgZ(0,"td",47),o.TgZ(1,"div",52),o.TgZ(2,"span",53),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.xp6(1),o.Q6J("ngStyle",o.VKq(2,Qt,n.screenSize===n.screenSizeEnum.XS?"10rem":"32rem")),o.xp6(2),o.Oqu(t.description)}}function Bt(t,e){1&t&&(o.TgZ(0,"th",54),o._uU(1," Amount (Sats) "),o.qZA())}function Ht(t,e){if(1&t&&(o.TgZ(0,"td",47),o.TgZ(1,"span",55),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,t.msatoshi/1e3,t.msatoshi<1e3?"1.0-4":"1.0-0"),"")}}function zt(t,e){1&t&&(o.TgZ(0,"th",54),o._uU(1," Amount Settled (Sats) "),o.qZA())}function Gt(t,e){if(1&t&&(o.TgZ(0,"td",47),o.TgZ(1,"span",55),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,t.msatoshi_received/1e3,t.msatoshi_received<1e3?"1.0-4":"1.0-0"),"")}}function Vt(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",56),o.TgZ(1,"div",57),o.TgZ(2,"mat-select",58),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",59),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}const Xt=function(t){return{"px-3":t}};function Wt(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",60),o.TgZ(1,"div",61),o.TgZ(2,"mat-select",62),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",59),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(2).onInvoiceClick(e)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",59),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(2).onRefreshInvoice(e)}),o._uU(7,"Refresh"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,Xt,t.screenSize!==t.screenSizeEnum.XS))}}function $t(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No invoice available."),o.qZA())}function Kt(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting invoices..."),o.qZA())}function jt(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function te(t,e){if(1&t&&(o.TgZ(0,"td",63),o.YNc(1,$t,2,0,"p",64),o.YNc(2,Kt,2,0,"p",64),o.YNc(3,jt,2,1,"p",64),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchInvoices.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchInvoices.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchInvoices.status)===t.apiCallStatusEnum.ERROR)}}const ee=function(t){return{"display-none":t}};function ne(t,e){if(1&t&&o._UZ(0,"tr",65),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,ee,(null==t.invoices?null:t.invoices.data)&&(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)>0))}}function ae(t,e){1&t&&o._UZ(0,"tr",66)}function se(t,e){if(1&t&&o._UZ(0,"tr",67),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("@newlyAddedRowAnimation",t.label===n.newlyAddedInvoiceMemo&&t.value===n.newlyAddedInvoiceValue&&n.flgAnimate?"added":"notAdded")}}const ie=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},oe=function(){return["no_invoice"]};function le(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",17),o.TgZ(1,"div",18),o.TgZ(2,"div",19),o._UZ(3,"fa-icon",20),o.TgZ(4,"span",21),o._uU(5,"Invoices History"),o.qZA(),o.qZA(),o.TgZ(6,"mat-form-field",22),o.TgZ(7,"input",23),o.NdJ("keyup",function(e){return o.CHM(t),o.oxw().applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",24),o.YNc(9,kt,1,0,"mat-progress-bar",25),o.TgZ(10,"table",26,27),o.ynx(12,28),o.YNc(13,Nt,2,0,"th",29),o.YNc(14,Mt,5,6,"td",30),o.BQk(),o.ynx(15,31),o.YNc(16,Jt,2,0,"th",29),o.YNc(17,Dt,3,4,"td",30),o.BQk(),o.ynx(18,32),o.YNc(19,Yt,2,0,"th",29),o.YNc(20,Pt,4,4,"td",30),o.BQk(),o.ynx(21,33),o.YNc(22,Bt,2,0,"th",34),o.YNc(23,Ht,4,4,"td",30),o.BQk(),o.ynx(24,35),o.YNc(25,zt,2,0,"th",34),o.YNc(26,Gt,4,4,"td",30),o.BQk(),o.ynx(27,36),o.YNc(28,Vt,6,0,"th",37),o.YNc(29,Wt,8,3,"td",38),o.BQk(),o.ynx(30,39),o.YNc(31,te,4,3,"td",40),o.BQk(),o.YNc(32,ne,1,3,"tr",41),o.YNc(33,ae,1,0,"tr",42),o.YNc(34,se,1,1,"tr",43),o.qZA(),o.qZA(),o._UZ(35,"mat-paginator",44),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("icon",t.faHistory),o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchInvoices.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.invoices)("ngClass",o.VKq(11,ie,""!==t.errorMessage)),o.xp6(22),o.Q6J("matFooterRowDef",o.DdM(13,oe)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let re=(()=>{class t{constructor(t,e,n,a,s,i,o){this.logger=t,this.store=e,this.decimalPipe=n,this.commonService=a,this.rtlEffects=s,this.datePipe=i,this.actions=o,this.calledFrom="transactions",this.faHistory=g.qO$,this.selNode={},this.newlyAddedInvoiceMemo="",this.newlyAddedInvoiceValue=0,this.flgAnimate=!0,this.description="",this.invoiceValue=null,this.invoiceValueHint="",this.displayedColumns=[],this.invoicePaymentReq="",this.invoiceJSONArr=[],this.information={},this.flgSticky=!1,this.private=!1,this.expiryStep=100,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["expires_at","msatoshi","actions"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["expires_at","description","msatoshi","actions"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["expires_at","description","msatoshi","msatoshi_received","actions"]):(this.flgSticky=!0,this.displayedColumns=["expires_at","paid_at","description","msatoshi","msatoshi_received","actions"])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchInvoices.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchInvoices.message?JSON.stringify(this.apisCallStatus.FetchInvoices.message):this.apisCallStatus.FetchInvoices.message),this.selNode=t.nodeSettings,this.information=t.information,this.invoiceJSONArr=t.invoices.invoices&&t.invoices.invoices.length>0?t.invoices.invoices:[],this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoiceJSONArr),setTimeout(()=>{this.flgAnimate=!1},5e3),this.logger.info(t)}),this.actions.pipe((0,p.R)(this.unSubs[1]),(0,h.h)(t=>t.type===x.CR||t.type===x.qe)).subscribe(t=>{t.type===x.CR&&this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&t.payload&&(this.updateInvoicesData(JSON.parse(JSON.stringify(t.payload))),this.loadInvoicesTable(this.invoiceJSONArr))})}ngAfterViewInit(){this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoiceJSONArr)}openCreateInvoiceModal(){this.store.dispatch(new Ft.wu({data:{pageSize:this.pageSize,component:bt}}))}onAddInvoice(t){this.invoiceValue||(this.invoiceValue=0);const e=this.expiry?this.expiry:3600;this.flgAnimate=!0,this.newlyAddedInvoiceMemo="ulbl"+Math.random().toString(36).slice(2)+Date.now(),this.newlyAddedInvoiceValue=this.invoiceValue,this.store.dispatch(new x.H1({label:this.newlyAddedInvoiceMemo,amount:1e3*this.invoiceValue,description:this.description,expiry:e,private:this.private})),this.resetData()}onDeleteExpiredInvoices(){this.store.dispatch(new Ft.b_({data:{type:"CONFIRM",titleMessage:"Delete Expired Invoices",noBtnText:"Cancel",yesBtnText:"Delete Invoices"}})),this.rtlEffects.closeConfirm.pipe((0,p.R)(this.unSubs[2])).subscribe(t=>{t&&this.store.dispatch(new x.nB)})}onInvoiceClick(t){this.store.dispatch(new Ft.wu({data:{invoice:{msatoshi:t.msatoshi,label:t.label,expires_at:t.expires_at,paid_at:t.paid_at,bolt11:t.bolt11,payment_hash:t.payment_hash,description:t.description,status:t.status,msatoshi_received:t.msatoshi_received},newlyAdded:!1,component:qt.$}}))}resetData(){this.description="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint=""}applyFilter(t){this.invoices.filter=t.value.trim().toLowerCase()}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,f.NT.SATS,f.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,p.R)(this.unSubs[3])).subscribe({next:t=>{this.invoiceValueHint="= "+t.symbol+this.decimalPipe.transform(t.OTHER,f.Xz.OTHER)+" "+t.unit},error:t=>{this.invoiceValueHint="Conversion Error: "+t}}))}onRefreshInvoice(t){this.store.dispatch(new x.oP(t.label))}updateInvoicesData(t){this.invoiceJSONArr=this.invoiceJSONArr.map(e=>e.label===t.label?t:e)}loadInvoicesTable(t){this.invoices=new mt.by(t?[...t]:[]),this.invoices.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.invoices.sort=this.sort,this.invoices.filterPredicate=(t,e)=>((t.paid_at?this.datePipe.transform(new Date(1e3*t.paid_at),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(t.expires_at?this.datePipe.transform(new Date(1e3*t.expires_at),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(t).toLowerCase()).includes(e),this.invoices.paginator=this.paginator}onDownloadCSV(){this.invoices.data&&this.invoices.data.length>0&&this.commonService.downloadFile(this.invoices.data,"Invoices")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(a.JJ),o.Y36(T.v),o.Y36(Lt.V),o.Y36(a.uU),o.Y36(A.eX))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-lightning-invoices"]],viewQuery:function(t,e){if(1&t&&(o.Gf(ht.YE,5),o.Gf(pt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},inputs:{calledFrom:"calledFrom"},features:[o._Bn([{provide:pt.ye,useValue:(0,f.pt)("Invoices")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","space-between stretch"],["matInput","","placeholder","Description","tabindex","2","name","description",3,"ngModel","ngModelChange"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","name","invoiceValue","type","number","tabindex","3",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","9","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","10",3,"click"],["fxLayout","row"],["mat-stroked-button","","color","warn","tabindex","7","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","8",3,"click"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","expires_at"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","paid_at"],["matColumnDef","description"],["matColumnDef","msatoshi"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi_received"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass",4,"matCellDef"],["matColumnDef","no_invoice"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot green","matTooltip","Settled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Unsettled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Settled","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Unsettled","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","4",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,Ut,15,5,"form",1),o.YNc(2,Rt,5,0,"div",2),o.YNc(3,le,36,14,"div",3),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf","home"===e.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===e.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===e.calledFrom))},directives:[l.xw,l.yH,l.Wh,a.O5,ft._Y,ft.JL,ft.F,E.KE,xt.Nt,ft.Fj,ft.JJ,ft.On,ft.wV,ft.qQ,yt.q,E.R9,E.bx,q.lW,C.BN,D.$V,mt.BZ,ht.YE,a.mk,b.oO,mt.w1,mt.fO,mt.Dz,mt.mD,mt.Ke,mt.as,mt.nj,pt.NW,r.pW,mt.ge,ht.nU,mt.ev,M.gM,a.PC,b.Zl,At.gD,At.$L,Ct.ey,mt.yh,mt.Q2,mt.XQ,mt.Gk],pipes:[a.uU,a.JJ],styles:[".mat-column-description[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-description[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"],data:{animation:[_t.Q]}}),t})();var ce=n(9056),ue=n(8640),de=n(4810);const pe=["paymentReq"];function he(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-radio-group",17),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().paymentType=e})("change",function(){return o.CHM(t),o.oxw().onPaymentTypeChange()}),o.TgZ(1,"mat-radio-button",18),o._uU(2,"Invoice Payment"),o.qZA(),o.TgZ(3,"mat-radio-button",19),o._uU(4,"Keysend Payment"),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("ngModel",t.paymentType)}}function me(t,e){1&t&&o.GkF(0)}function ge(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.paymentError)}}function fe(t,e){if(1&t&&(o.TgZ(0,"div",20),o._UZ(1,"fa-icon",21),o.YNc(2,ge,2,1,"span",22),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==t.paymentError)}}function xe(t,e){if(1&t&&(o.TgZ(0,"mat-hint"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.paymentDecodedHint)}}function Ze(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Payment request is required."),o.qZA())}function ye(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.paymentDecodedHint)}}function Ae(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Payment amount is required."),o.qZA())}function Te(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-form-field",1),o.TgZ(1,"input",26,27),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw(2).paymentAmount=e})("change",function(e){return o.CHM(t),o.oxw(2).onAmountChange(e)}),o.qZA(),o.TgZ(3,"mat-hint"),o._uU(4,"It is a zero amount invoice, enter amount to be paid."),o.qZA(),o.YNc(5,Ae,2,0,"mat-error",22),o.qZA()}if(2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngModel",t.paymentAmount),o.xp6(4),o.Q6J("ngIf",!t.paymentAmount)}}function Ce(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-form-field",1),o.TgZ(1,"textarea",23,24),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().onPaymentRequestEntry(e)})("matTextareaAutosize",function(){return!0}),o.qZA(),o.YNc(3,xe,2,1,"mat-hint",22),o.YNc(4,Ze,2,0,"mat-error",22),o.YNc(5,ye,2,1,"mat-error",22),o.qZA(),o.YNc(6,Te,6,2,"mat-form-field",25)}if(2&t){const t=o.MAs(2),e=o.oxw();o.xp6(1),o.Q6J("ngModel",e.paymentRequest),o.xp6(2),o.Q6J("ngIf",e.paymentRequest&&""!==e.paymentDecodedHint),o.xp6(1),o.Q6J("ngIf",!e.paymentRequest),o.xp6(1),o.Q6J("ngIf",null==t.errors?null:t.errors.decodeError),o.xp6(1),o.Q6J("ngIf",e.zeroAmtInvoice)}}function we(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Pubkey is required."),o.qZA())}function ve(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Keysend amount is required."),o.qZA())}function Se(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-form-field",1),o.TgZ(1,"input",28),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().pubkey=e}),o.qZA(),o.YNc(2,we,2,0,"mat-error",22),o.qZA(),o.TgZ(3,"mat-form-field",1),o.TgZ(4,"input",29,30),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().keysendAmount=e}),o.qZA(),o.YNc(6,ve,2,0,"mat-error",22),o.qZA()}if(2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngModel",t.pubkey),o.xp6(1),o.Q6J("ngIf",!t.pubkey),o.xp6(2),o.Q6J("ngModel",t.keysendAmount),o.xp6(2),o.Q6J("ngIf",!t.keysendAmount)}}let be=(()=>{class t{constructor(t,e,n,a,s,i,o){this.dialogRef=t,this.store=e,this.clEffects=n,this.logger=a,this.commonService=s,this.decimalPipe=i,this.actions=o,this.faExclamationTriangle=g.eHv,this.selNode={},this.paymentDecoded={},this.zeroAmtInvoice=!1,this.paymentAmount=null,this.paymentType="invoice",this.pubkey="",this.keysendAmount=null,this.paymentRequest="",this.paymentDecodedHint="",this.selActiveChannel={},this.activeChannels={},this.feeLimit=null,this.selFeeLimitType=f.Vc[0],this.feeLimitTypes=f.Vc,this.paymentError="",this.isCompatibleVersion=!1,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}set payReq(t){t&&(this.paymentReq=t)}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t.nodeSettings,this.activeChannels=t.allChannels.filter(t=>"CHANNELD_NORMAL"===t.state&&t.connected),this.isCompatibleVersion=this.commonService.isVersionCompatible(t.information.version,"0.9.0")&&this.commonService.isVersionCompatible(t.information.api_version,"0.4.0"),this.logger.info(t)}),this.actions.pipe((0,p.R)(this.unSubs[1]),(0,h.h)(t=>t.type===x.qe||t.type===x.zm)).subscribe(t=>{t.type===x.zm&&this.dialogRef.close(),t.type===x.qe&&t.payload.status===f.Bn.ERROR&&("SendPayment"===t.payload.action&&(delete this.paymentDecoded.msatoshi,this.paymentError=t.payload.message),"DecodePayment"===t.payload.action&&(this.paymentDecodedHint="ERROR: "+t.payload.message,this.paymentReq.control.setErrors({decodeError:!0})))})}onSendPayment(){if("invoice"===this.paymentType&&!this.paymentRequest||"keysend"===this.paymentType&&(!this.pubkey||""===this.pubkey.trim()||!this.keysendAmount||this.keysendAmount<=0))return!0;"keysend"===this.paymentType?this.keysendPayment():this.paymentDecoded.created_at?this.sendPayment():(this.paymentAmount=null,this.paymentError="",this.paymentDecodedHint="",this.paymentReq.control.setErrors(null),this.store.dispatch(new x.pu({routeParam:this.paymentRequest,fromDialog:!0})),this.clEffects.setDecodedPaymentCL.pipe((0,ce.q)(1)).subscribe(t=>{this.paymentDecoded=t,this.paymentDecoded.created_at&&!this.paymentDecoded.msatoshi?(this.paymentDecoded.msatoshi=0,this.zeroAmtInvoice=!0,this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description):(this.zeroAmtInvoice=!1,this.selNode.fiatConversion?this.commonService.convertCurrency(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0,f.NT.SATS,f.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,p.R)(this.unSubs[2])).subscribe({next:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats ("+t.symbol+this.decimalPipe.transform(t.OTHER?t.OTHER:0,f.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description)}))}keysendPayment(){this.store.dispatch(new x.Ar({uiMessage:f.m6.SEND_KEYSEND,pubkey:this.pubkey,amount:1e3*this.keysendAmount,fromDialog:!0}))}sendPayment(){this.store.dispatch(new x.Ar(this.zeroAmtInvoice?{uiMessage:f.m6.SEND_PAYMENT,invoice:this.paymentRequest,amount:1e3*this.paymentAmount,fromDialog:!0}:{uiMessage:f.m6.SEND_PAYMENT,invoice:this.paymentRequest,fromDialog:!0}))}onPaymentRequestEntry(t){this.paymentRequest=t,this.paymentError="",this.paymentDecodedHint="",this.zeroAmtInvoice=!1,this.paymentRequest&&this.paymentRequest.length>100&&(this.paymentReq.control.setErrors(null),this.zeroAmtInvoice=!1,this.store.dispatch(new x.pu({routeParam:this.paymentRequest,fromDialog:!0})),this.clEffects.setDecodedPaymentCL.subscribe(t=>{this.paymentDecoded=t,this.paymentDecoded.created_at&&!this.paymentDecoded.msatoshi?(this.paymentDecoded.msatoshi=0,this.zeroAmtInvoice=!0,this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description):(this.zeroAmtInvoice=!1,this.selNode.fiatConversion?this.commonService.convertCurrency(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0,f.NT.SATS,f.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,p.R)(this.unSubs[3])).subscribe({next:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats ("+t.symbol+this.decimalPipe.transform(t.OTHER?t.OTHER:0,f.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description)}))}onAmountChange(t){delete this.paymentDecoded.msatoshi,this.paymentDecoded.msatoshi=t}onPaymentTypeChange(){this.paymentError=""}resetData(){"keysend"===this.paymentType?(this.pubkey="",this.keysendAmount=null):(this.paymentDecoded={},this.paymentRequest="",this.selActiveChannel=null,this.feeLimit=null,this.selFeeLimitType=f.Vc[0],this.paymentReq.control.setErrors(null),this.paymentDecodedHint="",this.zeroAmtInvoice=!1,this.paymentAmount=null),this.paymentError=""}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(gt.so),o.Y36(y.yh),o.Y36(ue.s),o.Y36(Z.mQ),o.Y36(T.v),o.Y36(a.JJ),o.Y36(A.eX))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-lightning-send-payments"]],viewQuery:function(t,e){if(1&t&&o.Gf(pe,5),2&t){let t;o.iGM(t=o.CRH())&&(e.payReq=t.first)}},decls:23,vars:4,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","12","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["class","my-1","color","primary","name","paymentType","fxFlex","100","fxLayoutAlign","start stretch",3,"ngModel","ngModelChange","change",4,"ngIf"],["fxLayoutAlign","space-between stretch","fxLayout","column"],["sendPaymentForm","ngForm"],[4,"ngTemplateOutlet"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","8","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","7",3,"click"],["invoiceBlock",""],["keysendBlock",""],["color","primary","name","paymentType","fxFlex","100","fxLayoutAlign","start stretch",1,"my-1",3,"ngModel","ngModelChange","change"],["fxFlex","25","tabindex","1","value","invoice",1,"mr-2"],["fxFlex","25","tabindex","2","value","keysend"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[4,"ngIf"],["autoFocus","","matInput","","placeholder","Payment Request","name","paymentRequest","tabindex","3","required","",3,"ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],["fxFlex","100",4,"ngIf"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","4","required","",3,"ngModel","ngModelChange","change"],["paymentAmt","ngModel"],["autoFocus","","matInput","","placeholder","Pubkey","name","pubkey","tabindex","5","required","",3,"ngModel","ngModelChange"],["matInput","","placeholder","Amount (Sats)","name","keysendAmount","tabindex","6","required","",3,"ngModel","ngModelChange"],["keysendAmt","ngModel"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Send Payment"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.YNc(9,he,5,1,"mat-radio-group",7),o.TgZ(10,"form",8,9),o.YNc(12,me,1,0,"ng-container",10),o.YNc(13,fe,3,2,"div",11),o.TgZ(14,"div",12),o.TgZ(15,"button",13),o.NdJ("click",function(){return e.resetData()}),o._uU(16,"Clear Fields"),o.qZA(),o.TgZ(17,"button",14),o.NdJ("click",function(){return e.onSendPayment()}),o._uU(18,"Send Payment"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(19,Ce,7,5,"ng-template",null,15,o.W1O),o.YNc(21,Se,7,4,"ng-template",null,16,o.W1O)),2&t){const t=o.MAs(20),n=o.MAs(22);o.xp6(6),o.Q6J("mat-dialog-close",!1),o.xp6(3),o.Q6J("ngIf",e.isCompatibleVersion),o.xp6(3),o.Q6J("ngTemplateOutlet","keysend"===e.paymentType?n:t),o.xp6(1),o.Q6J("ngIf",""!==e.paymentError)}},directives:[l.xw,l.yH,v.dk,l.Wh,q.lW,gt.ZT,v.dn,a.O5,ft._Y,ft.JL,ft.F,a.tP,de.VQ,ft.JJ,ft.On,de.U0,C.BN,E.KE,xt.Nt,ft.Fj,xt.D7,Zt.h,ft.Q7,E.bx,E.TO],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-payment_hash[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),t})();const qe=["sendPaymentForm"];function _e(t,e){if(1&t&&(o.TgZ(0,"mat-hint"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.paymentDecodedHint)}}function Fe(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Payment request is required."),o.qZA())}function Le(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"form",4,5),o.TgZ(2,"mat-form-field",6),o.TgZ(3,"textarea",7,8),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().onPaymentRequestEntry(e)})("matTextareaAutosize",function(){return!0}),o.qZA(),o.YNc(5,_e,2,1,"mat-hint",9),o.YNc(6,Fe,2,0,"mat-error",9),o.qZA(),o.TgZ(7,"div",10),o.TgZ(8,"button",11),o.NdJ("click",function(){return o.CHM(t),o.oxw().resetData()}),o._uU(9,"Clear Field"),o.qZA(),o.TgZ(10,"button",12),o.NdJ("click",function(){return o.CHM(t),o.oxw().onSendPayment()}),o._uU(11,"Send Payment"),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("ngModel",t.paymentRequest),o.xp6(2),o.Q6J("ngIf",t.paymentRequest&&""!==t.paymentDecodedHint),o.xp6(1),o.Q6J("ngIf",!t.paymentRequest)}}function Ue(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",13),o.TgZ(1,"button",12),o.NdJ("click",function(){return o.CHM(t),o.oxw().openSendPaymentModal()}),o._uU(2,"Send Payment"),o.qZA(),o.qZA()}}function Re(t,e){1&t&&o._UZ(0,"mat-progress-bar",47)}function ke(t,e){1&t&&(o.TgZ(0,"th",48),o._uU(1,"Created At"),o.qZA())}const Ne=function(t){return{"mr-0":t}};function Ie(t,e){if(1&t&&o._UZ(0,"span",52),2&t){const t=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Ne,t.screenSize===t.screenSizeEnum.XS))}}function Oe(t,e){if(1&t&&o._UZ(0,"span",53),2&t){const t=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Ne,t.screenSize===t.screenSizeEnum.XS))}}function Ee(t,e){if(1&t&&(o.TgZ(0,"td",49),o.YNc(1,Ie,1,3,"span",50),o.YNc(2,Oe,1,3,"span",51),o._uU(3),o.ALo(4,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Q6J("ngIf","complete"===t.status),o.xp6(1),o.Q6J("ngIf","complete"!==t.status),o.xp6(1),o.hij(" ",o.xi3(4,3,1e3*(null==t?null:t.created_at),"dd/MMM/YYYY HH:mm")," ")}}function Me(t,e){1&t&&(o.TgZ(0,"th",48),o._uU(1,"Payment Hash"),o.qZA())}function Je(t,e){if(1&t&&(o.TgZ(0,"td",49),o.TgZ(1,"div"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(null==t?null:t.payment_hash)}}function De(t,e){1&t&&(o.TgZ(0,"th",54),o._uU(1,"Sats Sent"),o.qZA())}function Ye(t,e){if(1&t&&(o.TgZ(0,"td",49),o.TgZ(1,"span",55),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.xi3(3,1,(null==t?null:t.msatoshi_sent)/1e3,(null==t?null:t.msatoshi_sent)<1e3?"1.0-4":"1.0-0"))}}function Qe(t,e){1&t&&(o.TgZ(0,"th",54),o._uU(1,"Sats Received"),o.qZA())}function Pe(t,e){if(1&t&&(o.TgZ(0,"td",49),o.TgZ(1,"span",55),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.xi3(3,1,(null==t?null:t.msatoshi)/1e3,(null==t?null:t.msatoshi)<1e3?"1.0-4":"1.0-0"))}}function Be(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",56),o.TgZ(1,"div",57),o.TgZ(2,"mat-select",58),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",59),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function He(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",60),o.TgZ(1,"button",61),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(2).onPaymentClick(e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function ze(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No payment available."),o.qZA())}function Ge(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting payments..."),o.qZA())}function Ve(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function Xe(t,e){if(1&t&&(o.TgZ(0,"td",62),o.YNc(1,ze,2,0,"p",9),o.YNc(2,Ge,2,0,"p",9),o.YNc(3,Ve,2,1,"p",9),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.ERROR)}}function We(t,e){if(1&t&&o._UZ(0,"span",66),2&t){const t=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Ne,t.screenSize===t.screenSizeEnum.XS))}}function $e(t,e){if(1&t&&o._UZ(0,"span",67),2&t){const t=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Ne,t.screenSize===t.screenSizeEnum.XS))}}function Ke(t,e){if(1&t&&o._UZ(0,"span",66),2&t){const t=o.oxw(5);o.Q6J("ngClass",o.VKq(1,Ne,t.screenSize===t.screenSizeEnum.XS))}}function je(t,e){if(1&t&&o._UZ(0,"span",67),2&t){const t=o.oxw(5);o.Q6J("ngClass",o.VKq(1,Ne,t.screenSize===t.screenSizeEnum.XS))}}function tn(t,e){if(1&t&&(o.TgZ(0,"span",69),o.YNc(1,Ke,1,3,"span",64),o.YNc(2,je,1,3,"span",65),o._uU(3),o.ALo(4,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Q6J("ngIf","complete"===t.status),o.xp6(1),o.Q6J("ngIf","complete"!==t.status),o.xp6(1),o.hij(" ",o.xi3(4,3,1e3*t.created_at,"dd/MMM/YYYY HH:mm")," ")}}function en(t,e){if(1&t&&(o.ynx(0),o.YNc(1,tn,5,6,"span",68),o.BQk()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.mpps)}}function nn(t,e){if(1&t&&(o.TgZ(0,"td",49),o.TgZ(1,"span",63),o.YNc(2,We,1,3,"span",64),o.YNc(3,$e,1,3,"span",65),o._uU(4),o.qZA(),o.YNc(5,en,2,1,"ng-container",9),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Q6J("ngIf","complete"===t.status),o.xp6(1),o.Q6J("ngIf","complete"!==t.status),o.xp6(1),o.hij(" Total Attempts: ",null==t?null:t.total_parts," "),o.xp6(1),o.Q6J("ngIf",t.is_expanded)}}function an(t,e){if(1&t&&(o.TgZ(0,"span",63),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" Part ID ",t.partid?t.partid:0," ")}}function sn(t,e){if(1&t&&(o.TgZ(0,"span"),o.YNc(1,an,2,1,"span",70),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.mpps)}}function on(t,e){if(1&t&&(o.TgZ(0,"td",49),o.TgZ(1,"span",63),o._uU(2),o.qZA(),o.YNc(3,sn,2,1,"span",9),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(null==t?null:t.payment_hash),o.xp6(1),o.Q6J("ngIf",t.is_expanded)}}function ln(t,e){if(1&t&&(o.TgZ(0,"span",71),o._uU(1),o.ALo(2,"number"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",o.xi3(2,1,t.msatoshi_sent/1e3,t.msatoshi_sent<1e3?"1.0-4":"1.0-0")," ")}}function rn(t,e){if(1&t&&(o.TgZ(0,"span"),o.YNc(1,ln,3,4,"span",72),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.mpps)}}function cn(t,e){if(1&t&&(o.TgZ(0,"td",49),o.TgZ(1,"span",71),o._uU(2),o.ALo(3,"number"),o.qZA(),o.YNc(4,rn,2,1,"span",9),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.xi3(3,2,(null==t?null:t.msatoshi_sent)/1e3,(null==t?null:t.msatoshi_sent)<1e3?"1.0-4":"1.0-0")),o.xp6(2),o.Q6J("ngIf",t.is_expanded)}}function un(t,e){if(1&t&&(o.TgZ(0,"span",71),o._uU(1),o.ALo(2,"number"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",o.xi3(2,1,t.msatoshi/1e3,t.msatoshi<1e3?"1.0-4":"1.0-0")," ")}}function dn(t,e){if(1&t&&(o.TgZ(0,"span"),o.YNc(1,un,3,4,"span",72),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.mpps)}}function pn(t,e){if(1&t&&(o.TgZ(0,"td",49),o.TgZ(1,"span",71),o._uU(2),o.ALo(3,"number"),o.qZA(),o.YNc(4,dn,2,1,"span",9),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.xi3(3,2,(null==t?null:t.msatoshi)/1e3,(null==t?null:t.msatoshi)<1e3?"1.0-4":"1.0-0")),o.xp6(2),o.Q6J("ngIf",t.is_expanded)}}function hn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",55),o.TgZ(1,"button",76),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(4).onPaymentClick(e)}),o._uU(2),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit;o.xp6(2),o.hij("View ",t.partid?t.partid:0,"")}}function mn(t,e){if(1&t&&(o.TgZ(0,"div"),o.YNc(1,hn,3,1,"div",75),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.mpps)}}function gn(t,e){if(1&t&&(o.TgZ(0,"td",73),o.TgZ(1,"span",55),o.TgZ(2,"button",74),o.NdJ("click",function(){const t=e.$implicit;return t.is_expanded=!t.is_expanded}),o._uU(3),o.qZA(),o.qZA(),o.YNc(4,mn,2,1,"div",9),o.qZA()),2&t){const t=e.$implicit;o.xp6(3),o.Oqu(t.is_expanded?"Hide":"Show"),o.xp6(1),o.Q6J("ngIf",t.is_expanded)}}function fn(t,e){if(1&t&&o._UZ(0,"tr",77),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("@newlyAddedRowAnimation",t.payment_hash===n.newlyAddedPayment&&n.flgAnimate?"added":"notAdded")}}const xn=function(t){return{"display-none":t}};function Zn(t,e){if(1&t&&o._UZ(0,"tr",78),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,xn,(null==t.payments?null:t.payments.data)&&(null==t.payments||null==t.payments.data?null:t.payments.data.length)>0))}}function yn(t,e){1&t&&o._UZ(0,"tr",79)}function An(t,e){if(1&t&&o._UZ(0,"tr",77),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("@newlyAddedRowAnimation",t.payment_hash===n.newlyAddedPayment&&n.flgAnimate?"added":"notAdded")}}const Tn=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},Cn=function(){return["no_payment"]};function wn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",14),o.TgZ(1,"div",15),o.TgZ(2,"div",16),o._UZ(3,"fa-icon",17),o.TgZ(4,"span",18),o._uU(5,"Payments History"),o.qZA(),o.qZA(),o.TgZ(6,"mat-form-field",19),o.TgZ(7,"input",20),o.NdJ("keyup",function(e){return o.CHM(t),o.oxw().applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",21),o.YNc(9,Re,1,0,"mat-progress-bar",22),o.TgZ(10,"table",23,24),o.ynx(12,25),o.YNc(13,ke,2,0,"th",26),o.YNc(14,Ee,5,6,"td",27),o.BQk(),o.ynx(15,28),o.YNc(16,Me,2,0,"th",26),o.YNc(17,Je,3,1,"td",27),o.BQk(),o.ynx(18,29),o.YNc(19,De,2,0,"th",30),o.YNc(20,Ye,4,4,"td",27),o.BQk(),o.ynx(21,31),o.YNc(22,Qe,2,0,"th",30),o.YNc(23,Pe,4,4,"td",27),o.BQk(),o.ynx(24,32),o.YNc(25,Be,6,0,"th",33),o.YNc(26,He,3,0,"td",34),o.BQk(),o.ynx(27,35),o.YNc(28,Xe,4,3,"td",36),o.BQk(),o.ynx(29,37),o.YNc(30,nn,6,4,"td",27),o.BQk(),o.ynx(31,38),o.YNc(32,on,4,2,"td",27),o.BQk(),o.ynx(33,39),o.YNc(34,cn,5,5,"td",27),o.BQk(),o.ynx(35,40),o.YNc(36,pn,5,5,"td",27),o.BQk(),o.ynx(37,41),o.YNc(38,gn,5,2,"td",42),o.BQk(),o.YNc(39,fn,1,1,"tr",43),o.YNc(40,Zn,1,3,"tr",44),o.YNc(41,yn,1,0,"tr",45),o.YNc(42,An,1,1,"tr",43),o.qZA(),o.qZA(),o._UZ(43,"mat-paginator",46),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("icon",t.faHistory),o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.payments)("ngClass",o.VKq(14,Tn,""!==t.errorMessage)),o.xp6(29),o.Q6J("matRowDefColumns",t.mppColumns)("matRowDefWhen",t.is_group),o.xp6(1),o.Q6J("matFooterRowDef",o.DdM(16,Cn)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns)("matRowDefWhen",!t.is_group),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let vn=(()=>{class t{constructor(t,e,n,a,s,i,o,l){this.logger=t,this.commonService=e,this.store=n,this.rtlEffects=a,this.clEffects=s,this.decimalPipe=i,this.titleCasePipe=o,this.datePipe=l,this.calledFrom="transactions",this.faHistory=g.qO$,this.newlyAddedPayment="",this.flgAnimate=!0,this.selNode={},this.information={},this.paymentJSONArr=[],this.displayedColumns=[],this.mppColumns=[],this.paymentDecoded={},this.paymentRequest="",this.paymentDecodedHint="",this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["created_at","actions"],this.mppColumns=["groupTotal","groupAction"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["created_at","msatoshi","actions"],this.mppColumns=["groupTotal","groupAmtRecv","groupAction"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["created_at","msatoshi_sent","msatoshi","actions"],this.mppColumns=["groupTotal","groupAmtSent","groupAmtRecv","groupAction"]):(this.flgSticky=!0,this.displayedColumns=["created_at","payment_hash","msatoshi_sent","msatoshi","actions"],this.mppColumns=["groupTotal","groupHash","groupAmtSent","groupAmtRecv","groupAction"])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchPayments.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPayments.message?JSON.stringify(this.apisCallStatus.FetchPayments.message):this.apisCallStatus.FetchPayments.message),this.information=t.information,this.selNode=t.nodeSettings,this.paymentJSONArr=t.payments&&t.payments.length>0?t.payments:[],this.paymentJSONArr.length>0&&this.loadPaymentsTable(this.paymentJSONArr),setTimeout(()=>{this.flgAnimate=!1},3e3),this.logger.info(t)})}ngAfterViewInit(){this.paymentJSONArr.length>0&&this.loadPaymentsTable(this.paymentJSONArr)}is_group(t,e){return e.is_group}onSendPayment(){if(!this.paymentRequest)return!0;this.paymentDecoded.created_at?this.sendPayment():(this.store.dispatch(new x.pu({routeParam:this.paymentRequest,fromDialog:!1})),this.clEffects.setDecodedPaymentCL.pipe((0,ce.q)(1)).subscribe(t=>{this.paymentDecoded=t,this.paymentDecoded.created_at?(this.paymentDecoded.msatoshi||(this.paymentDecoded.msatoshi=0),this.sendPayment()):this.resetData()}))}sendPayment(){this.flgAnimate=!0,this.newlyAddedPayment=this.paymentDecoded.payment_hash,this.paymentDecoded.msatoshi&&0!==this.paymentDecoded.msatoshi?(this.store.dispatch(new Ft.b_({data:{type:f.n_.CONFIRM,alertTitle:"Confirm Send Payment",noBtnText:"Cancel",yesBtnText:"Send Payment",message:[[{key:"payment_hash",value:this.paymentDecoded.payment_hash,title:"Payment Hash",width:100}],[{key:"payee",value:this.paymentDecoded.payee,title:"Payee",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"created_at",value:this.paymentDecoded.created_at,title:"Creation Date",width:50,type:f.Gi.DATE_TIME},{key:"num_satoshis",value:this.paymentDecoded.msatoshi/1e3,title:"Amount (Sats)",width:50,type:f.Gi.NUMBER}],[{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:50,type:f.Gi.NUMBER},{key:"min_finaltv_expiry",value:this.paymentDecoded.min_final_cltv_expiry,title:"CLTV Expiry",width:50}]]}})),this.rtlEffects.closeConfirm.pipe((0,ce.q)(1)).subscribe(t=>{t&&(this.store.dispatch(new x.Ar({uiMessage:f.m6.SEND_PAYMENT,invoice:this.paymentRequest,fromDialog:!1})),this.resetData())})):(this.store.dispatch(new Ft.b_({data:{type:f.n_.CONFIRM,alertTitle:"Enter Amount and Confirm Send Payment",message:[[{key:"payment_hash",value:this.paymentDecoded.payment_hash,title:"Payment Hash",width:100}],[{key:"payee",value:this.paymentDecoded.payee,title:"Payee",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"created_at",value:this.paymentDecoded.created_at,title:"Creation Date",width:40,type:f.Gi.DATE_TIME},{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:30,type:f.Gi.NUMBER},{key:"min_finaltv_expiry",value:this.paymentDecoded.min_final_cltv_expiry,title:"CLTV Expiry",width:30}]],noBtnText:"Cancel",yesBtnText:"Send Payment",flgShowInput:!0,titleMessage:"It is a zero amount invoice. Enter the amount (Sats) to pay.",getInputs:[{placeholder:"Amount (Sats)",inputType:f.Gi.NUMBER.toLowerCase(),inputValue:"",width:30}]}})),this.rtlEffects.closeConfirm.pipe((0,ce.q)(1)).subscribe(t=>{t&&(this.paymentDecoded.msatoshi=t[0].inputValue,this.store.dispatch(new x.Ar({uiMessage:f.m6.SEND_PAYMENT,invoice:this.paymentRequest,amount:1e3*t[0].inputValue,fromDialog:!1})),this.resetData())}))}onPaymentRequestEntry(t){this.paymentRequest=t,this.paymentDecodedHint="",this.paymentRequest&&this.paymentRequest.length>100&&(this.store.dispatch(new x.pu({routeParam:this.paymentRequest,fromDialog:!1})),this.clEffects.setDecodedPaymentCL.subscribe(t=>{this.paymentDecoded=t,this.paymentDecoded.msatoshi?this.selNode.fiatConversion?this.commonService.convertCurrency(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0,f.NT.SATS,f.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,p.R)(this.unSubs[1])).subscribe({next:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats ("+t.symbol+this.decimalPipe.transform(t.OTHER?t.OTHER:0,f.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description:this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description}))}openSendPaymentModal(){this.store.dispatch(new Ft.wu({data:{component:be}}))}resetData(){this.paymentDecoded={},this.paymentRequest="",this.form.resetForm()}onPaymentClick(t){const e=[[{key:"bolt11",value:t.bolt11,title:"Bolt 11",width:100,type:f.Gi.STRING}],[{key:"payment_preimage",value:t.payment_preimage,title:"Payment Preimage",width:100,type:f.Gi.STRING}],[{key:"id",value:t.id,title:"ID",width:20,type:f.Gi.STRING},{key:"destination",value:t.destination,title:"Destination",width:80,type:f.Gi.STRING}],[{key:"created_at",value:t.created_at,title:"Creation Date",width:50,type:f.Gi.DATE_TIME},{key:"status",value:this.titleCasePipe.transform(t.status),title:"Status",width:50,type:f.Gi.STRING}],[{key:"msatoshi",value:t.msatoshi,title:"Amount (mSats)",width:50,type:f.Gi.NUMBER},{key:"msatoshi_sent",value:t.msatoshi_sent,title:"Amount Sent (mSats)",width:50,type:f.Gi.NUMBER}]];t.memo&&""!==t.memo&&e.splice(2,0,[{key:"memo",value:t.memo,title:"Memo",width:100,type:f.Gi.STRING}]),t.hasOwnProperty("partid")?e.unshift([{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:80,type:f.Gi.STRING},{key:"partid",value:t.partid,title:"Part ID",width:20,type:f.Gi.STRING}]):e.unshift([{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:100,type:f.Gi.STRING}]),this.store.dispatch(new Ft.wu({data:{type:f.n_.INFORMATION,alertTitle:"Payment Information",message:e}}))}applyFilter(t){this.payments.filter=t.value.trim().toLowerCase()}loadPaymentsTable(t){this.payments=new mt.by(t?[...t]:[]),this.payments.data=this.paymentJSONArr,this.payments.sort=this.sort,this.payments.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.payments.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.payments.filterPredicate=(t,e)=>((t.created_at?this.datePipe.transform(new Date(1e3*t.created_at),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(t).toLowerCase()).includes(e),this.payments.paginator=this.paginator}onDownloadCSV(){if(this.payments.data&&this.payments.data.length>0){const t=JSON.parse(JSON.stringify(this.payments.data)).reduce((t,e)=>e.mpps?t.concat(e.mpps):(delete e.is_group,delete e.is_expanded,delete e.total_parts,t.concat(e)),[]);this.commonService.downloadFile(t,"Payments")}}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(T.v),o.Y36(y.yh),o.Y36(Lt.V),o.Y36(ue.s),o.Y36(a.JJ),o.Y36(a.rS),o.Y36(a.uU))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-lightning-payments"]],viewQuery:function(t,e){if(1&t&&(o.Gf(qe,5),o.Gf(ht.YE,5),o.Gf(pt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first),o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},inputs:{calledFrom:"calledFrom"},features:[o._Bn([{provide:pt.ye,useValue:(0,f.pt)("Payments")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["sendPaymentForm","ngForm"],["fxFlex","100"],["matInput","","placeholder","Payment Request","name","paymentRequest","tabindex","1","required","",3,"perfectScrollbar","ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["fxLayout","row"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","created_at"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","payment_hash"],["matColumnDef","msatoshi_sent"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_payment"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["matColumnDef","groupTotal"],["matColumnDef","groupHash"],["matColumnDef","groupAmtSent"],["matColumnDef","groupAmtRecv"],["matColumnDef","groupAction"],["mat-cell","","class","px-3",4,"matCellDef"],["mat-row","",4,"matRowDef","matRowDefColumns","matRowDefWhen"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot green","matTooltip","Completed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Failed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Completed","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Failed","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],["fxLayoutAlign","start center",1,"mpp-row-span"],["class","dot green mt-0","matTooltip","Completed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow mt-0","matTooltip","Incomplete/Failed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Completed","matTooltipPosition","right",1,"dot","green","mt-0",3,"ngClass"],["matTooltip","Incomplete/Failed","matTooltipPosition","right",1,"dot","yellow","mt-0",3,"ngClass"],["fxLayoutAlign","start center","class","mpp-row-span pl-3",4,"ngFor","ngForOf"],["fxLayoutAlign","start center",1,"mpp-row-span","pl-3"],["fxLayoutAlign","start center","class","mpp-row-span",4,"ngFor","ngForOf"],["fxLayoutAlign","end center",1,"mpp-row-span"],["fxLayoutAlign","end center","class","mpp-row-span",4,"ngFor","ngForOf"],["mat-cell","",1,"px-3"],["mat-flat-button","","color","primary","type","button","tabindex","5",1,"btn-mpp-expand",3,"click"],["fxLayoutAlign","end center",4,"ngFor","ngForOf"],["mat-stroked-button","","color","primary","type","button","tabindex","6",1,"btn-mpp-info",3,"click"],["mat-row",""],["mat-footer-row","",3,"ngClass"],["mat-header-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,Le,12,3,"form",1),o.YNc(2,Ue,3,0,"div",2),o.YNc(3,wn,44,17,"div",3),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf","home"===e.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===e.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===e.calledFrom))},directives:[l.xw,l.yH,l.Wh,a.O5,ft._Y,ft.JL,ft.F,E.KE,xt.Nt,ft.Fj,xt.D7,ft.Q7,D.$V,ft.JJ,ft.On,q.lW,E.bx,E.TO,C.BN,mt.BZ,ht.YE,a.mk,b.oO,mt.w1,mt.fO,mt.Dz,mt.mD,mt.nj,mt.Ke,mt.as,pt.NW,r.pW,mt.ge,ht.nU,mt.ev,M.gM,At.gD,At.$L,Ct.ey,mt.yh,a.sg,mt.Gk,mt.Q2,mt.XQ],pipes:[a.uU,a.JJ],styles:[".mat-column-bolt11[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-actions[_ngcontent-%COMP%], .mat-column-groupAction[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-mpp-expand[_ngcontent-%COMP%]{width:9rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-mpp-info[_ngcontent-%COMP%]{margin-top:.5rem;width:9rem}.mpp-row-span[_ngcontent-%COMP%]{min-height:4.2rem}.mat-column-groupTotal[_ngcontent-%COMP%]{min-width:17rem}"],data:{animation:[_t.Q]}}),t})();function Sn(t,e){if(1&t&&(o.TgZ(0,"button",26),o.TgZ(1,"mat-icon"),o._uU(2,"more_vert"),o.qZA(),o.qZA()),2&t){o.oxw();const t=o.MAs(11);o.Q6J("matMenuTriggerFor",t)}}function bn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",15),o.NdJ("click",function(){return o.CHM(t),o.oxw(3).onNavigateTo("/cl/reports")}),o._uU(1,"Fees Summary"),o.qZA()}}function qn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",15),o.NdJ("click",function(){return o.CHM(t),o.oxw(3).onsortChannelsBy()}),o._uU(1),o.qZA()}if(2&t){const t=o.oxw(3);o.xp6(1),o.hij("Sort By ","Balance Score"===t.sortField?"Capacity":"Balance Score","")}}function _n(t,e){1&t&&o._UZ(0,"mat-progress-bar",27)}function Fn(t,e){if(1&t&&o._UZ(0,"rtl-cl-node-info",28),2&t){const t=o.oxw(3);o.Q6J("information",t.information)("showColorFieldSeparately",!1)}}function Ln(t,e){if(1&t&&o._UZ(0,"rtl-cl-balances-info",29),2&t){const t=o.oxw(3);o.Q6J("balances",t.balances)("errorMessage",t.errorMessages[2]+" "+t.errorMessages[3])}}function Un(t,e){if(1&t&&o._UZ(0,"rtl-cl-channel-capacity-info",30),2&t){const t=o.oxw(3);o.Q6J("sortBy",t.sortField)("channelBalances",t.channelBalances)("allChannels",t.allChannelsCapacity)("errorMessage",t.errorMessages[4]+" "+t.errorMessages[3])}}function Rn(t,e){if(1&t&&o._UZ(0,"rtl-cl-fee-info",31),2&t){const t=o.oxw(3);o.Q6J("fees",t.fees)("errorMessage",t.errorMessages[1]+" "+t.errorMessages[4]+" "+t.errorMessages[5])}}function kn(t,e){if(1&t&&o._UZ(0,"rtl-cl-channel-status-info",32),2&t){const t=o.oxw(3);o.Q6J("channelsStatus",t.channelsStatus)("errorMessage",t.errorMessages[0]+" "+t.errorMessages[3])}}function Nn(t,e){1&t&&(o.TgZ(0,"h3"),o._uU(1,"Error! Unable to find information!"),o.qZA())}const In=function(t){return{"dashboard-card-content":!0,"error-border":t}};function On(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-grid-tile",8),o.TgZ(1,"mat-card",9),o.TgZ(2,"mat-card-header"),o.TgZ(3,"mat-card-title",10),o.TgZ(4,"div"),o._UZ(5,"fa-icon",11),o.TgZ(6,"span"),o._uU(7),o.qZA(),o.qZA(),o.TgZ(8,"div"),o.YNc(9,Sn,3,1,"button",12),o.TgZ(10,"mat-menu",13,14),o.TgZ(12,"button",15),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(2).onNavigateTo(e.link)}),o._uU(13),o.qZA(),o.YNc(14,bn,2,0,"button",16),o.YNc(15,qn,2,1,"button",16),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(16,"mat-card-content",17),o.YNc(17,_n,1,0,"mat-progress-bar",18),o.TgZ(18,"div",19),o.YNc(19,Fn,1,2,"rtl-cl-node-info",20),o.YNc(20,Ln,1,2,"rtl-cl-balances-info",21),o.YNc(21,Un,1,4,"rtl-cl-channel-capacity-info",22),o.YNc(22,Rn,1,2,"rtl-cl-fee-info",23),o.YNc(23,kn,1,2,"rtl-cl-channel-status-info",24),o.YNc(24,Nn,2,0,"h3",25),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("colspan",t.cols)("rowspan",t.rows),o.xp6(5),o.Q6J("icon",t.icon),o.xp6(2),o.Oqu(t.title),o.xp6(2),o.Q6J("ngIf",t.link),o.xp6(4),o.hij("Go To ",t.goTo,""),o.xp6(1),o.Q6J("ngIf","fee"===t.id),o.xp6(1),o.Q6J("ngIf","capacity"===t.id),o.xp6(1),o.s9C("fxFlex","capacity"===t.id?90:70),o.Q6J("ngClass",o.VKq(17,In,"node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||"balance"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchBalance.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.ERROR)||"capacity"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.ERROR)||"fee"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.GetForwardingHistory.status)===n.apiCallStatusEnum.ERROR)||"status"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.ERROR))),o.xp6(1),o.Q6J("ngIf","node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||"balance"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchBalance.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.INITIATED)||"capacity"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.INITIATED)||"fee"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.GetForwardingHistory.status)===n.apiCallStatusEnum.INITIATED)||"status"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.INITIATED)),o.xp6(1),o.Q6J("ngSwitch",t.id),o.xp6(1),o.Q6J("ngSwitchCase","node"),o.xp6(1),o.Q6J("ngSwitchCase","balance"),o.xp6(1),o.Q6J("ngSwitchCase","capacity"),o.xp6(1),o.Q6J("ngSwitchCase","fee"),o.xp6(1),o.Q6J("ngSwitchCase","status")}}function En(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o._UZ(2,"fa-icon",4),o.TgZ(3,"span",5),o._uU(4),o.qZA(),o.qZA(),o.TgZ(5,"mat-grid-list",6),o.YNc(6,On,25,19,"mat-grid-tile",7),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Q6J("icon",(null==t.apisCallStatus?null:t.apisCallStatus.FetchInfo.status)===t.apiCallStatusEnum.ERROR?t.faFrown:t.faSmile),o.xp6(2),o.Oqu((null==t.apisCallStatus?null:t.apisCallStatus.FetchInfo.status)===t.apiCallStatusEnum.COMPLETED?"Welcome "+t.information.alias+"! Your node is up and running.":(null==t.apisCallStatus?null:t.apisCallStatus.FetchInfo.status)===t.apiCallStatusEnum.INITIATED?"Wait! Getting your node information...":"Error! Please check the server connection."),o.xp6(1),o.Q6J("rowHeight",t.operatorCardHeight),o.xp6(1),o.Q6J("ngForOf",t.operatorCards)}}function Mn(t,e){if(1&t&&(o.TgZ(0,"button",26),o.TgZ(1,"mat-icon"),o._uU(2,"more_vert"),o.qZA(),o.qZA()),2&t){o.oxw();const t=o.MAs(9);o.Q6J("matMenuTriggerFor",t)}}function Jn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-card-header"),o.TgZ(1,"mat-card-title",10),o.TgZ(2,"div"),o._UZ(3,"fa-icon",11),o.TgZ(4,"span"),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"div"),o.YNc(7,Mn,3,1,"button",12),o.TgZ(8,"mat-menu",13,41),o.TgZ(10,"button",15),o.NdJ("click",function(){o.CHM(t);const e=o.oxw().$implicit;return o.oxw(2).onNavigateTo(e.link)}),o._uU(11),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw().$implicit;o.xp6(3),o.Q6J("icon",t.icon),o.xp6(2),o.Oqu(t.title),o.xp6(2),o.Q6J("ngIf",t.link),o.xp6(4),o.hij("Go To ",t.goTo,"")}}function Dn(t,e){1&t&&o._UZ(0,"mat-progress-bar",27)}function Yn(t,e){if(1&t&&o._UZ(0,"rtl-cl-node-info",42),2&t){const t=o.oxw(3);o.Q6J("information",t.information)}}function Qn(t,e){if(1&t&&o._UZ(0,"rtl-cl-balances-info",29),2&t){const t=o.oxw(3);o.Q6J("balances",t.balances)("errorMessage",t.errorMessages[2]+" "+t.errorMessages[3])}}function Pn(t,e){if(1&t&&o._UZ(0,"rtl-cl-channel-liquidity-info",43),2&t){const t=o.oxw(3);o.Q6J("direction","In")("totalLiquidity",t.totalInboundLiquidity)("allChannels",t.allInboundChannels)("errorMessage",t.errorMessages[4])}}function Bn(t,e){if(1&t&&o._UZ(0,"rtl-cl-channel-liquidity-info",43),2&t){const t=o.oxw(3);o.Q6J("direction","Out")("totalLiquidity",t.totalOutboundLiquidity)("allChannels",t.allOutboundChannels)("errorMessage",t.errorMessages[4])}}function Hn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",52),o.TgZ(1,"mat-icon"),o._uU(2,"more_vert"),o.qZA(),o.qZA(),o.TgZ(3,"mat-menu",13,53),o.TgZ(5,"button",15),o.NdJ("click",function(){o.CHM(t);const e=o.oxw(2).$implicit;return o.oxw(2).onNavigateTo(e.link)}),o._uU(6),o.qZA(),o.TgZ(7,"button",15),o.NdJ("click",function(){return o.CHM(t),o.oxw(4).onNavigateTo("/cl/reports/transactions")}),o._uU(8,"Transactions Summary"),o.qZA(),o.qZA()}if(2&t){const t=o.MAs(4),e=o.oxw(2).$implicit;o.Q6J("matMenuTriggerFor",t),o.xp6(6),o.hij("Go To ",e.goTo,"")}}function zn(t,e){1&t&&(o.TgZ(0,"span",44),o.TgZ(1,"mat-tab-group",45),o.TgZ(2,"mat-tab",46),o._UZ(3,"rtl-cl-lightning-invoices",47),o.qZA(),o.TgZ(4,"mat-tab",48),o._UZ(5,"rtl-cl-lightning-payments",49),o.qZA(),o.TgZ(6,"mat-tab",50),o.YNc(7,Hn,9,2,"ng-template",51),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Q6J("calledFrom","home"),o.xp6(2),o.Q6J("calledFrom","home"),o.xp6(1),o.Q6J("disabled",!0))}function Gn(t,e){1&t&&(o.TgZ(0,"h3"),o._uU(1,"Error! Unable to find information!"),o.qZA())}const Vn=function(t){return{"p-0":t}};function Xn(t,e){if(1&t&&(o.TgZ(0,"mat-grid-tile",8),o.TgZ(1,"mat-card",35),o.YNc(2,Jn,12,4,"mat-card-header",36),o.TgZ(3,"mat-card-content",37),o.YNc(4,Dn,1,0,"mat-progress-bar",18),o.TgZ(5,"div",19),o.YNc(6,Yn,1,1,"rtl-cl-node-info",38),o.YNc(7,Qn,1,2,"rtl-cl-balances-info",21),o.YNc(8,Pn,1,4,"rtl-cl-channel-liquidity-info",39),o.YNc(9,Bn,1,4,"rtl-cl-channel-liquidity-info",39),o.YNc(10,zn,8,3,"span",40),o.YNc(11,Gn,2,0,"h3",25),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("colspan",t.cols)("rowspan",t.rows),o.xp6(1),o.Q6J("ngClass",o.VKq(13,Vn,"transactions"===t.id)),o.xp6(1),o.Q6J("ngIf","transactions"!==t.id),o.xp6(1),o.s9C("fxFlex","transactions"===t.id?100:"balance"===t.id?70:90),o.Q6J("ngClass",o.VKq(15,In,"node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||"balance"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchBalance.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.ERROR)||("inboundLiq"===t.id||"outboundLiq"===t.id)&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.ERROR)),o.xp6(1),o.Q6J("ngIf","node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||"balance"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchBalance.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.INITIATED)||("inboundLiq"===t.id||"outboundLiq"===t.id)&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngSwitch",t.id),o.xp6(1),o.Q6J("ngSwitchCase","node"),o.xp6(1),o.Q6J("ngSwitchCase","balance"),o.xp6(1),o.Q6J("ngSwitchCase","inboundLiq"),o.xp6(1),o.Q6J("ngSwitchCase","outboundLiq"),o.xp6(1),o.Q6J("ngSwitchCase","transactions")}}function Wn(t,e){if(1&t&&(o.TgZ(0,"div",33),o._UZ(1,"fa-icon",4),o.TgZ(2,"span",5),o._uU(3),o.qZA(),o.qZA(),o.TgZ(4,"mat-grid-list",34),o.YNc(5,Xn,12,17,"mat-grid-tile",7),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faSmile),o.xp6(2),o.hij("Welcome ",t.information.alias,"! Your node is up and running."),o.xp6(1),o.Q6J("rowHeight",t.merchantCardHeight),o.xp6(1),o.Q6J("ngForOf",t.merchantCards)}}let $n=(()=>{class t{constructor(t,e,n,a,s){this.logger=t,this.store=e,this.actions=n,this.commonService=a,this.router=s,this.faSmile=m.I3,this.faFrown=m.Kf,this.faAngleDoubleDown=g.Sbq,this.faAngleDoubleUp=g.Vfw,this.faChartPie=g.OS1,this.faBolt=g.BDt,this.faServer=g.xf3,this.faNetworkWired=g.kXW,this.flgChildInfoUpdated=!1,this.userPersonaEnum=f.ol,this.channelBalances={localBalance:0,remoteBalance:0,balancedness:0},this.selNode={},this.information={},this.totalBalance={},this.balances={onchain:-1,lightning:-1,total:0},this.allChannels=[],this.channelsStatus={},this.allChannelsCapacity=[],this.allInboundChannels=[],this.allOutboundChannels=[],this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.operatorCards=[],this.merchantCards=[],this.screenSize="",this.operatorCardHeight="330px",this.merchantCardHeight="65px",this.sortField="Balance Score",this.errorMessages=["","","","","",""],this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:10,rows:1},{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:10,rows:1},{id:"fee",goTo:"Routing",link:"/cl/routing",icon:this.faBolt,title:"Routing Fee",cols:10,rows:1},{id:"status",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels",cols:10,rows:1},{id:"capacity",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:6,rows:4},{id:"transactions",goTo:"Transactions",link:"/cl/transactions",title:"",cols:6,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:6,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:6,rows:8}]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:5,rows:1},{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:5,rows:1},{id:"fee",goTo:"Routing",link:"/cl/routing",icon:this.faBolt,title:"Routing Fee",cols:5,rows:1},{id:"status",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels",cols:5,rows:1},{id:"capacity",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:4},{id:"transactions",goTo:"Transactions",link:"/cl/transactions",title:"",cols:3,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:3,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:3,rows:8}]):(this.operatorCardHeight=.77*window.screen.height/2+"px",this.merchantCardHeight=.76*window.screen.height/10+"px",this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:3,rows:1},{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:1},{id:"capacity",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:4,rows:2},{id:"fee",goTo:"Routing",link:"/cl/routing",icon:this.faBolt,title:"Routing Fee",cols:3,rows:1},{id:"status",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels",cols:3,rows:1}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:2,rows:5},{id:"inboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:2,rows:10},{id:"outboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:2,rows:10},{id:"transactions",goTo:"Transactions",link:"/cl/transactions",title:"",cols:2,rows:5}])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[1])).subscribe(t=>{this.errorMessages=["","","","","",""],this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchInfo.status===f.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apisCallStatus.FetchInfo.message?JSON.stringify(this.apisCallStatus.FetchInfo.message):this.apisCallStatus.FetchInfo.message),t.apisCallStatus.FetchFees.status===f.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apisCallStatus.FetchFees.message?JSON.stringify(this.apisCallStatus.FetchFees.message):this.apisCallStatus.FetchFees.message),t.apisCallStatus.FetchBalance.status===f.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apisCallStatus.FetchBalance.message?JSON.stringify(this.apisCallStatus.FetchBalance.message):this.apisCallStatus.FetchBalance.message),t.apisCallStatus.FetchLocalRemoteBalance.status===f.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apisCallStatus.FetchLocalRemoteBalance.message?JSON.stringify(this.apisCallStatus.FetchLocalRemoteBalance.message):this.apisCallStatus.FetchLocalRemoteBalance.message),t.apisCallStatus.FetchChannels.status===f.Bn.ERROR&&(this.errorMessages[4]="object"==typeof this.apisCallStatus.FetchChannels.message?JSON.stringify(this.apisCallStatus.FetchChannels.message):this.apisCallStatus.FetchChannels.message),t.apisCallStatus.GetForwardingHistory.status===f.Bn.ERROR&&(this.errorMessages[5]="object"==typeof this.apisCallStatus.GetForwardingHistory.message?JSON.stringify(this.apisCallStatus.GetForwardingHistory.message):this.apisCallStatus.GetForwardingHistory.message),this.selNode=t.nodeSettings,this.information=t.information,this.fees=t.fees,this.totalBalance=t.balance,this.balances.onchain=t.balance.totalBalance,this.balances.lightning=t.localRemoteBalance.localBalance,this.balances.total=this.balances.lightning+this.balances.onchain,this.balances=Object.assign({},this.balances);const e=t.localRemoteBalance.localBalance?+t.localRemoteBalance.localBalance:0,n=t.localRemoteBalance.remoteBalance?+t.localRemoteBalance.remoteBalance:0;this.channelBalances={localBalance:e,remoteBalance:n,balancedness:+(1-Math.abs((e-n)/(e+n))).toFixed(3)},this.channelsStatus={active:{channels:t.information.num_active_channels,capacity:t.localRemoteBalance.localBalance},pending:{channels:t.information.num_pending_channels,capacity:t.localRemoteBalance.pendingBalance||0},inactive:{channels:t.information.num_inactive_channels,capacity:t.localRemoteBalance.inactiveBalance||0}},this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.allChannels=t.allChannels.filter(t=>"CHANNELD_NORMAL"===t.state&&t.connected),this.allChannelsCapacity=this.allChannels.length>0?JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels,"balancedness"))):[],this.allInboundChannels=this.allChannels.length>0?JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter(t=>t.msatoshi_to_them>0),"msatoshi_to_them"))):[],this.allOutboundChannels=this.allChannels.length>0?JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter(t=>t.msatoshi_to_us>0),"msatoshi_to_us"))):[],this.allChannels.forEach(t=>{this.totalInboundLiquidity=this.totalInboundLiquidity+Math.ceil(t.msatoshi_to_them/1e3),this.totalOutboundLiquidity=this.totalOutboundLiquidity+Math.floor(t.msatoshi_to_us/1e3)}),this.flgChildInfoUpdated=this.balances.lightning>=0&&this.balances.onchain>=0&&this.fees.feeCollected>=0,this.logger.info(t)}),this.actions.pipe((0,p.R)(this.unSubs[2]),(0,h.h)(t=>t.type===x.yA||t.type===x.iK)).subscribe(t=>{t.type===x.yA&&(this.flgChildInfoUpdated=!1),t.type===x.iK&&(this.flgChildInfoUpdated=!0)})}onNavigateTo(t){this.router.navigateByUrl(t)}onsortChannelsBy(){"Balance Score"===this.sortField?(this.sortField="Capacity",this.allChannelsCapacity=this.allChannels.sort((t,e)=>{const n=+t.msatoshi_to_us+ +t.msatoshi_to_them,a=+e.msatoshi_to_them+ +e.msatoshi_to_them;return n>a?-1:n0?JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels,"balancedness"))):[])}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(A.eX),o.Y36(T.v),o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-home"]],decls:3,vars:2,consts:[["fxLayout","column",4,"ngIf","ngIfElse"],["merchantDashboard",""],["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","mb-0"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["cols","10",3,"rowHeight"],[3,"colspan","rowspan",4,"ngFor","ngForOf"],[3,"colspan","rowspan"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4"],["fxLayoutAlign","space-between center"],[1,"mr-1",3,"icon"],["mat-icon-button","","class","more-button","aria-label","Toggle menu",3,"matMenuTriggerFor",4,"ngIf"],["xPosition","before",1,"dashboard-vert-menu"],["menuOperator","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngIf"],["fxLayout","column",3,"fxFlex","ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"balances","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],[4,"ngSwitchDefault"],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",3,"matMenuTriggerFor"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"balances","errorMessage"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container","mb-0"],["cols","6",3,"rowHeight"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4",3,"ngClass"],[4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",3,"fxFlex","ngClass"],["fxFlex","100",3,"information",4,"ngSwitchCase"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage",4,"ngSwitchCase"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start",4,"ngSwitchCase"],["menuMerchant","matMenu"],["fxFlex","100",3,"information"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start"],["fxLayout","column",1,"w-100","dashboard-tabs-group"],["label","Receive"],[1,"h-100",3,"calledFrom"],["label","Pay"],[3,"calledFrom"],[3,"disabled"],["mat-tab-label",""],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",2,"max-width","20px",3,"matMenuTriggerFor"],["menuTransactions","matMenu"]],template:function(t,e){if(1&t&&(o.YNc(0,En,7,4,"div",0),o.YNc(1,Wn,6,4,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",e.selNode.userPersona===e.userPersonaEnum.OPERATOR)("ngIfElse",t)}},directives:[a.O5,l.xw,l.Wh,C.BN,w.Il,a.sg,w.DX,v.a8,l.yH,v.dk,v.n5,S.VK,S.OP,v.dn,a.mk,b.oO,a.RF,a.n9,a.ED,q.lW,S.p6,_.Hw,r.pW,k,O,z,X,K,ut,dt.SP,dt.uX,re,vn,dt.uD],styles:[""]}),t})();var Kn=n(5868),jn=n(1339),ta=n(1403),ea=n(9236),na=n(5001),aa=n(7753);const sa=["form"],ia=["formSweepAll"],oa=["stepper"];function la(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Bitcoin address is required."),o.qZA())}function ra(t,e){1&t&&(o.TgZ(0,"mat-hint"),o._uU(1,"Amount replaced by UTXO balance"),o.qZA())}function ca(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.amountError)}}function ua(t,e){if(1&t&&(o.TgZ(0,"mat-option",36),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t),o.xp6(1),o.Oqu(t)}}function da(t,e){if(1&t&&(o.TgZ(0,"mat-option",36),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t.feeRateId),o.xp6(1),o.hij(" ",t.feeRateType," ")}}function pa(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Min Confirmation Blocks is required."),o.qZA())}function ha(t,e){if(1&t&&(o.TgZ(0,"mat-option",36),o._uU(1),o.ALo(2,"number"),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t),o.xp6(1),o.hij("",o.lcZ(2,2,t.value)," Sats")}}function ma(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",37),o.TgZ(1,"mat-expansion-panel",38),o.NdJ("closed",function(){return o.CHM(t),o.oxw(2).onAdvancedPanelToggle(!0)})("opened",function(){return o.CHM(t),o.oxw(2).onAdvancedPanelToggle(!1)}),o.TgZ(2,"mat-expansion-panel-header"),o.TgZ(3,"mat-panel-title"),o.TgZ(4,"span"),o._uU(5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(6,"div",31),o.TgZ(7,"div",39),o.TgZ(8,"mat-form-field",40),o.TgZ(9,"mat-select",41),o.NdJ("selectionChange",function(e){return o.CHM(t),o.oxw(2).onUTXOSelectionChange(e)})("valueChange",function(e){return o.CHM(t),o.oxw(2).selUTXOs=e}),o.TgZ(10,"mat-select-trigger"),o._uU(11),o.ALo(12,"number"),o.qZA(),o.YNc(13,ha,3,4,"mat-option",21),o.qZA(),o.qZA(),o.TgZ(14,"mat-slide-toggle",42),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw(2).flgUseAllBalance=e})("change",function(){return o.CHM(t),o.oxw(2).onUTXOAllBalanceChange()}),o._uU(15," Use selected UTXOs balance "),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw(2);o.xp6(5),o.Oqu(t.advancedTitle),o.xp6(4),o.Q6J("value",t.selUTXOs),o.xp6(2),o.AsE("",o.lcZ(12,7,t.totalSelectedUTXOAmount)," Sats (",t.selUTXOs.length>1?t.selUTXOs.length+" UTXOs":"1 UTXO",")"),o.xp6(2),o.Q6J("ngForOf",t.utxos),o.xp6(1),o.Q6J("ngModel",t.flgUseAllBalance)("disabled",t.selUTXOs.length<1)}}function ga(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.sendFundError)}}function fa(t,e){if(1&t&&(o.TgZ(0,"div",43),o._UZ(1,"fa-icon",44),o.YNc(2,ga,2,1,"span",14),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==t.sendFundError)}}function xa(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"form",9,10),o.NdJ("submit",function(){return o.CHM(t),o.oxw().onSendFunds()})("reset",function(){return o.CHM(t),o.oxw().resetData()}),o.TgZ(2,"mat-form-field",11),o.TgZ(3,"input",12,13),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().transaction.address=e}),o.qZA(),o.YNc(5,la,2,0,"mat-error",14),o.qZA(),o.TgZ(6,"mat-form-field",15),o.TgZ(7,"input",16,17),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().transaction.satoshis=e}),o.qZA(),o.YNc(9,ra,2,0,"mat-hint",14),o.TgZ(10,"span",18),o._uU(11),o.qZA(),o.YNc(12,ca,2,1,"mat-error",14),o.qZA(),o.TgZ(13,"mat-form-field",19),o.TgZ(14,"mat-select",20),o.NdJ("selectionChange",function(e){return o.CHM(t),o.oxw().onAmountUnitChange(e)}),o.YNc(15,ua,2,2,"mat-option",21),o.qZA(),o.qZA(),o.TgZ(16,"div",22),o.TgZ(17,"mat-form-field",23),o.TgZ(18,"mat-select",24),o.NdJ("valueChange",function(e){return o.CHM(t),o.oxw().transaction.feeRate=e}),o.YNc(19,da,2,2,"mat-option",21),o.qZA(),o.qZA(),o.TgZ(20,"div",25),o.TgZ(21,"mat-checkbox",26),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().flgMinConf=e})("change",function(){o.CHM(t);const e=o.oxw();return e.flgMinConf?e.transaction.feeRate=null:e.transaction.minconf=null}),o.qZA(),o.TgZ(22,"mat-form-field",27),o.TgZ(23,"input",28,29),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().transaction.minconf=e}),o.qZA(),o.YNc(25,pa,2,0,"mat-error",14),o.qZA(),o.qZA(),o.qZA(),o.YNc(26,ma,16,9,"div",30),o._UZ(27,"div",31),o.YNc(28,fa,3,2,"div",32),o.TgZ(29,"div",33),o.TgZ(30,"button",34),o._uU(31,"Clear Fields"),o.qZA(),o.TgZ(32,"button",35),o._uU(33,"Send Funds"),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("ngModel",t.transaction.address),o.xp6(2),o.Q6J("ngIf",!t.transaction.address),o.xp6(2),o.Q6J("ngModel",t.transaction.satoshis)("type",t.flgUseAllBalance?"text":"number")("step",100)("min",0)("disabled",t.flgUseAllBalance),o.xp6(2),o.Q6J("ngIf",t.flgUseAllBalance),o.xp6(2),o.hij(" ",t.selAmountUnit," "),o.xp6(1),o.Q6J("ngIf",!t.transaction.satoshis),o.xp6(2),o.Q6J("value",t.selAmountUnit)("disabled",t.flgUseAllBalance),o.xp6(1),o.Q6J("ngForOf",t.amountUnits),o.xp6(3),o.Q6J("value",t.transaction.feeRate)("disabled",t.flgMinConf),o.xp6(1),o.Q6J("ngForOf",t.feeRateTypes),o.xp6(2),o.Q6J("ngModel",t.flgMinConf),o.xp6(2),o.Q6J("ngModel",t.transaction.minconf)("step",1)("min",0)("required",t.flgMinConf)("disabled",!t.flgMinConf),o.xp6(2),o.Q6J("ngIf",t.flgMinConf&&!t.transaction.minconf),o.xp6(1),o.Q6J("ngIf",t.isCompatibleVersion),o.xp6(2),o.Q6J("ngIf",""!==t.sendFundError)}}function Za(t,e){if(1&t&&o._uU(0),2&t){const t=o.oxw(3);o.Oqu(t.passwordFormLabel)}}function ya(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Password is required."),o.qZA())}function Aa(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-step",49),o.TgZ(1,"form",69),o.YNc(2,Za,1,1,"ng-template",63),o.TgZ(3,"div",0),o.TgZ(4,"mat-form-field",1),o._UZ(5,"input",70),o.YNc(6,ya,2,0,"mat-error",14),o.qZA(),o.qZA(),o.TgZ(7,"div",71),o.TgZ(8,"button",72),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).onAuthenticate()}),o._uU(9,"Confirm"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw(2);o.Q6J("stepControl",t.passwordFormGroup)("editable",t.flgEditable),o.xp6(1),o.Q6J("formGroup",t.passwordFormGroup),o.xp6(5),o.Q6J("ngIf",null==t.passwordFormGroup.controls.password.errors?null:t.passwordFormGroup.controls.password.errors.required)}}function Ta(t,e){if(1&t&&o._uU(0),2&t){const t=o.oxw(2);o.Oqu(t.sendFundFormLabel)}}function Ca(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Bitcoin address is required."),o.qZA())}function wa(t,e){if(1&t&&(o.TgZ(0,"mat-option",36),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t.feeRateId),o.xp6(1),o.hij(" ",t.feeRateType," ")}}function va(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Fees Rate is required."),o.qZA())}function Sa(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Min confirmation blocks is required."),o.qZA())}function ba(t,e){if(1&t&&o._uU(0),2&t){const t=o.oxw(2);o.Oqu(t.confirmFormLabel)}}function qa(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.sendFundError)}}function _a(t,e){if(1&t&&(o.TgZ(0,"div",43),o._UZ(1,"fa-icon",44),o.YNc(2,qa,2,1,"span",14),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==t.sendFundError)}}function Fa(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",45),o.TgZ(1,"mat-vertical-stepper",46,47),o.NdJ("selectionChange",function(e){return o.CHM(t),o.oxw().stepSelectionChanged(e)}),o.YNc(3,Aa,10,4,"mat-step",48),o.TgZ(4,"mat-step",49),o.TgZ(5,"form",50),o.YNc(6,Ta,1,1,"ng-template",51),o.TgZ(7,"div",31),o.TgZ(8,"mat-form-field",1),o._UZ(9,"input",52),o.YNc(10,Ca,2,0,"mat-error",14),o.qZA(),o.TgZ(11,"div",53),o.TgZ(12,"mat-form-field",54),o.TgZ(13,"mat-select",55),o.YNc(14,wa,2,2,"mat-option",21),o.qZA(),o.YNc(15,va,2,0,"mat-error",14),o.qZA(),o.TgZ(16,"div",56),o._UZ(17,"mat-checkbox",57),o.TgZ(18,"mat-form-field",27),o._UZ(19,"input",58),o.YNc(20,Sa,2,0,"mat-error",14),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(21,"div",59),o.TgZ(22,"button",60),o._uU(23,"Next"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(24,"mat-step",61),o.TgZ(25,"form",62),o.YNc(26,ba,1,1,"ng-template",63),o.TgZ(27,"div",45),o.TgZ(28,"div",64),o._UZ(29,"fa-icon",65),o.TgZ(30,"span"),o._uU(31,"You are about to sweep all funds from RTL. Are you sure?"),o.qZA(),o.qZA(),o.YNc(32,_a,3,2,"div",32),o.TgZ(33,"div",59),o.TgZ(34,"button",66),o.NdJ("click",function(){return o.CHM(t),o.oxw().onSendFunds()}),o._uU(35,"Sweep All Funds"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(36,"div",67),o.TgZ(37,"button",68),o._uU(38),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(1),o.Q6J("linear",!0),o.xp6(2),o.Q6J("ngIf",!t.appConfig.sso.rtlSSO),o.xp6(1),o.Q6J("stepControl",t.sendFundFormGroup)("editable",t.flgEditable),o.xp6(1),o.Q6J("formGroup",t.sendFundFormGroup),o.xp6(5),o.Q6J("ngIf",null==t.sendFundFormGroup.controls.transactionAddress.errors?null:t.sendFundFormGroup.controls.transactionAddress.errors.required),o.xp6(4),o.Q6J("ngForOf",t.feeRateTypes),o.xp6(1),o.Q6J("ngIf",null==t.sendFundFormGroup.controls.transactionFeeRate.errors?null:t.sendFundFormGroup.controls.transactionFeeRate.errors.required),o.xp6(4),o.Q6J("step",1)("min",0),o.xp6(1),o.Q6J("ngIf",null==t.sendFundFormGroup.controls.transactionBlocks.errors?null:t.sendFundFormGroup.controls.transactionBlocks.errors.required),o.xp6(4),o.Q6J("stepControl",t.confirmFormGroup),o.xp6(1),o.Q6J("formGroup",t.confirmFormGroup),o.xp6(4),o.Q6J("icon",t.faExclamationTriangle),o.xp6(3),o.Q6J("ngIf",""!==t.sendFundError),o.xp6(5),o.Q6J("mat-dialog-close",!1),o.xp6(1),o.Oqu(t.flgValidated?"Close":"Cancel")}}let La=(()=>{class t{constructor(t,e,n,a,s,i,o,l,r,c){this.dialogRef=t,this.data=e,this.logger=n,this.store=a,this.commonService=s,this.decimalPipe=i,this.actions=o,this.formBuilder=l,this.rtlEffects=r,this.snackBar=c,this.faExclamationTriangle=g.eHv,this.sweepAll=!1,this.selNode={},this.addressTypes=[],this.utxos=[],this.selUTXOs=[],this.flgUseAllBalance=!1,this.totalSelectedUTXOAmount=null,this.selectedAddress=f._t[1],this.blockchainBalance={},this.information={},this.isCompatibleVersion=!1,this.newAddress="",this.transaction={},this.feeRateTypes=f.vn,this.flgMinConf=!1,this.sendFundError="",this.fiatConversion=!1,this.amountUnits=f.uA,this.selAmountUnit=f.uA[0],this.currConvertorRate={},this.unitConversionValue=0,this.currencyUnitFormats=f.Xz,this.advancedTitle="Advanced Options",this.flgValidated=!1,this.flgEditable=!0,this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds",this.confirmFormLabel="Confirm sweep",this.amountError="Amount is Required.",this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.sweepAll=this.data.sweepAll,this.passwordFormGroup=this.formBuilder.group({hiddenPassword:["",[ft.kI.required]],password:["",[ft.kI.required]]}),this.sendFundFormGroup=this.formBuilder.group({transactionAddress:["",ft.kI.required],transactionFeeRate:[null],flgMinConf:[!1],transactionBlocks:[{value:null,disabled:!0}]}),this.confirmFormGroup=this.formBuilder.group({}),this.sendFundFormGroup.controls.flgMinConf.valueChanges.pipe((0,p.R)(this.unSubs[4])).subscribe(t=>{t?(this.sendFundFormGroup.controls.transactionBlocks.enable(),this.sendFundFormGroup.controls.transactionBlocks.setValidators([ft.kI.required]),this.sendFundFormGroup.controls.transactionBlocks.setValue(null),this.sendFundFormGroup.controls.transactionFeeRate.disable(),this.sendFundFormGroup.controls.transactionFeeRate.setValue(null)):(this.sendFundFormGroup.controls.transactionBlocks.disable(),this.sendFundFormGroup.controls.transactionBlocks.setValidators(null),this.sendFundFormGroup.controls.transactionBlocks.setValue(null),this.sendFundFormGroup.controls.transactionBlocks.setErrors(null),this.sendFundFormGroup.controls.transactionFeeRate.enable(),this.sendFundFormGroup.controls.transactionFeeRate.setValue(null))}),(0,Kn.a)([this.store.select("root"),this.store.select("cl")]).pipe((0,p.R)(this.unSubs[0])).subscribe(([t,e])=>{this.fiatConversion=t.selNode.settings.fiatConversion,this.amountUnits=t.selNode.settings.currencyUnits,this.appConfig=t.appConfig,this.nodeData=t.nodeData,this.information=e.information,this.isCompatibleVersion=this.commonService.isVersionCompatible(this.information.version,"0.9.0")&&this.commonService.isVersionCompatible(this.information.api_version,"0.4.0"),this.utxos=this.commonService.sortAscByKey(e.utxos.filter(t=>"confirmed"===t.status),"value"),this.logger.info(t),this.logger.info(e)}),this.actions.pipe((0,p.R)(this.unSubs[1]),(0,h.h)(t=>t.type===x.qe||t.type===x.ob)).subscribe(t=>{t.type===x.ob&&(this.store.dispatch(new Ft.Lw("Fund Sent Successfully!")),this.dialogRef.close()),t.type===x.qe&&t.payload.status===f.Bn.ERROR&&"SetChannelTransaction"===t.payload.action&&(this.sendFundError=t.payload.message)})}onAuthenticate(){if(!this.passwordFormGroup.controls.password.value)return!0;this.flgValidated=!1,this.store.dispatch(new Ft.ZF(jn(this.passwordFormGroup.controls.password.value))),this.rtlEffects.isAuthorizedRes.pipe((0,ce.q)(1)).subscribe(t=>{"ERROR"!==t?(this.passwordFormGroup.controls.hiddenPassword.setValue(this.passwordFormGroup.controls.password.value),this.stepper.next()):(this.dialogRef.close(),this.snackBar.open("Unauthorized User. Logging out from RTL."))})}onSendFunds(){if(this.invalidValues)return!0;this.sendFundError="",this.flgUseAllBalance&&(this.transaction.satoshis="all"),this.selUTXOs.length&&this.selUTXOs.length>0&&(this.transaction.utxos=[],this.selUTXOs.forEach(t=>this.transaction.utxos.push(t.txid+":"+t.output))),this.sweepAll?(this.transaction.satoshis="all",this.transaction.address=this.sendFundFormGroup.controls.transactionAddress.value,this.sendFundFormGroup.controls.flgMinConf.value?(delete this.transaction.feeRate,this.transaction.minconf=this.sendFundFormGroup.controls.transactionBlocks.value):(delete this.transaction.minconf,this.sendFundFormGroup.controls.transactionFeeRate.value?this.transaction.feeRate=this.sendFundFormGroup.controls.transactionFeeRate.value:delete this.transaction.feeRate),delete this.transaction.utxos,this.store.dispatch(new x.uj(this.transaction))):this.transaction.satoshis&&"all"!==this.transaction.satoshis&&this.selAmountUnit!==f.NT.SATS?this.commonService.convertCurrency(+this.transaction.satoshis,this.selAmountUnit===this.amountUnits[2]?f.NT.OTHER:this.selAmountUnit,f.NT.SATS,this.amountUnits[2],this.fiatConversion).pipe((0,p.R)(this.unSubs[2])).subscribe({next:t=>{this.transaction.satoshis=t[f.NT.SATS],this.selAmountUnit=f.NT.SATS,this.store.dispatch(new x.uj(this.transaction))},error:t=>{this.transaction.satoshis=null,this.selAmountUnit=f.NT.SATS,this.amountError="Conversion Error: "+t}}):this.store.dispatch(new x.uj(this.transaction))}get invalidValues(){return this.sweepAll?!this.sendFundFormGroup.controls.transactionAddress.value||""===this.sendFundFormGroup.controls.transactionAddress.value||this.sendFundFormGroup.controls.flgMinConf.value&&(!this.sendFundFormGroup.controls.transactionBlocks.value||this.sendFundFormGroup.controls.transactionBlocks.value<=0):!this.transaction.address||""===this.transaction.address||!this.transaction.satoshis||+this.transaction.satoshis<=0||this.flgMinConf&&(!this.transaction.minconf||this.transaction.minconf<=0)}resetData(){this.sendFundError="",this.transaction={},this.flgMinConf=!1,this.totalSelectedUTXOAmount=null,this.selUTXOs=[],this.flgUseAllBalance=!1,this.selAmountUnit=f.uA[0]}stepSelectionChanged(t){switch(this.sendFundError="",t.selectedIndex){case 0:this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds";break;case 1:this.passwordFormLabel="User authenticated successfully",this.sendFundFormLabel="Sweep funds";break;case 2:this.passwordFormLabel="User authenticated successfully",this.sendFundFormLabel="Sweep funds | Address: "+this.sendFundFormGroup.controls.transactionAddress.value+(this.sendFundFormGroup.controls.flgMinConf.value?" | Min Confirmation Blocks: "+this.sendFundFormGroup.controls.transactionBlocks.value:this.sendFundFormGroup.controls.transactionFeeRate.value?" | Fee Rate: "+this.feeRateTypes.find(t=>t.feeRateId===this.sendFundFormGroup.controls.transactionFeeRate.value).feeRateType:"");break;default:this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds"}t.selectedIndex0?(this.totalSelectedUTXOAmount=this.selUTXOs.reduce((t,n)=>(e.value=t.value+n.value,e)).value,this.flgUseAllBalance&&this.onUTXOAllBalanceChange()):(this.totalSelectedUTXOAmount=null,this.transaction.satoshis=null,this.flgUseAllBalance=!1)}onUTXOAllBalanceChange(){this.flgUseAllBalance?(this.transaction.satoshis=this.totalSelectedUTXOAmount,this.selAmountUnit=f.uA[0]):this.transaction.satoshis=null}onAmountUnitChange(t){const e=this,n=this.selAmountUnit===this.amountUnits[2]?f.NT.OTHER:this.selAmountUnit;let a=t.value===this.amountUnits[2]?f.NT.OTHER:t.value;this.transaction.satoshis&&this.selAmountUnit!==t.value&&this.commonService.convertCurrency(+this.transaction.satoshis,n,a,this.amountUnits[2],this.fiatConversion).pipe((0,p.R)(this.unSubs[3])).subscribe({next:n=>{this.selAmountUnit=t.value,e.transaction.satoshis=e.decimalPipe.transform(n[a],e.currencyUnitFormats[a]).replace(/,/g,"")},error:t=>{e.transaction.satoshis=null,this.amountError="Conversion Error: "+t,this.selAmountUnit=n,a=n}})}onAdvancedPanelToggle(t){this.advancedTitle=t&&this.selUTXOs.length&&this.selUTXOs.length>0?"Advanced Options | Selected UTXOs: "+this.selUTXOs.length+" | Selected UTXO Amount: "+this.decimalPipe.transform(this.totalSelectedUTXOAmount)+" Sats":"Advanced Options"}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(gt.so),o.Y36(gt.WI),o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(T.v),o.Y36(a.JJ),o.Y36(A.eX),o.Y36(ft.qu),o.Y36(Lt.V),o.Y36(ta.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-on-chain-send-modal"]],viewQuery:function(t,e){if(1&t&&(o.Gf(sa,7),o.Gf(ia,5),o.Gf(oa,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first),o.iGM(t=o.CRH())&&(e.formSweepAll=t.first),o.iGM(t=o.CRH())&&(e.stepper=t.first)}},decls:12,vars:4,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100","class","overflow-x-hidden",3,"submit","reset",4,"ngIf","ngIfElse"],["sweepAllBlock",""],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100",1,"overflow-x-hidden",3,"submit","reset"],["form","ngForm"],["fxFlex","55"],["matInput","","autoFocus","","placeholder","Bitcoin Address","tabindex","1","name","address","required","",3,"ngModel","ngModelChange"],["address","ngModel"],[4,"ngIf"],["fxFlex","30"],["matInput","","placeholder","Amount","name","amount","tabindex","2","required","",3,"ngModel","type","step","min","disabled","ngModelChange"],["amount","ngModel"],["matSuffix",""],["fxFlex","10","fxLayoutAlign","start end"],["tabindex","3","required","","name","amountUnit",3,"value","disabled","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","60","fxLayoutAlign","space-between stretch","fxLayout","row wrap"],["fxFlex","48","fxLayoutAlign","start end"],["tabindex","6","placeholder","Fee Rate",3,"value","disabled","valueChange"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["fxFlex","2","tabindex","7","color","primary","name","flgMinConf","fxLayoutAlign","stretch start",1,"mr-2",3,"ngModel","ngModelChange","change"],["fxFlex","98"],["matInput","","placeholder","Min Confirmation Blocks","type","number","name","blocks","tabindex","8",3,"ngModel","step","min","required","disabled","ngModelChange"],["blocks","ngModel"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between stretch",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["mat-flat-button","","color","primary","type","submit","tabindex","8"],[3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxFlex","100","expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","35","fxLayoutAlign","start end"],["tabindex","8","placeholder","Coin Selection","multiple","",3,"value","selectionChange","valueChange"],["fxFlex","60","tabindex","9","color","primary","name","flgUseAllBalance","matTooltip","Use selected UTXOs balance as the amount to be sent. Final amount sent will be less the mining fee.","matTooltipPosition","above",3,"ngModel","disabled","ngModelChange","change"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl","editable"],["fxLayout","column",1,"my-1","pr-1",3,"formGroup"],["matStepLabel","","disabled","true"],["matInput","","formControlName","transactionAddress","placeholder","Bitcoin Address","tabindex","4","name","address","required",""],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex.gt-sm","48","fxLayoutAlign","start end"],["tabindex","5","placeholder","Fee Rate","formControlName","transactionFeeRate"],["fxFlex.gt-sm","48","fxLayout","row","fxLayoutAlign","start center"],["fxFlex","2","tabindex","6","color","primary","formControlName","flgMinConf","name","flgMinCon",1,"mr-2"],["matInput","","formControlName","transactionBlocks","placeholder","Min Confirmation Blocks","type","number","name","blocks","tabindex","7","required","",3,"step","min"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","8","type","default","matStepperNext",""],[3,"stepControl"],["fxLayout","column","fxLayoutAlign","start",1,"my-1","pr-1",3,"formGroup"],["matStepLabel",""],["fxFlex","100",1,"w-100","alert","alert-warn"],[1,"mt-1","mr-1","alert-icon",3,"icon"],["mat-stroked-button","","color","primary","tabindex","9","type","button",3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxLayout","column","fxLayoutAlign","space-between",1,"my-1","pr-1",3,"formGroup"],["autoFocus","","matInput","","placeholder","Password","type","password","tabindex","1","formControlName","password","required",""],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","default",3,"click"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.YNc(9,xa,34,25,"form",7),o.qZA(),o.qZA(),o.qZA(),o.YNc(10,Fa,39,17,"ng-template",null,8,o.W1O)),2&t){const t=o.MAs(11);o.xp6(5),o.Oqu(e.sweepAll?"Sweep All Funds":"Send Funds"),o.xp6(1),o.Q6J("mat-dialog-close",!1),o.xp6(3),o.Q6J("ngIf",!e.sweepAll)("ngIfElse",t)}},directives:[l.xw,l.yH,v.dk,l.Wh,q.lW,gt.ZT,v.dn,a.O5,ft._Y,ft.JL,ft.F,E.KE,xt.Nt,ft.Fj,Zt.h,ft.Q7,ft.JJ,ft.On,yt.q,E.R9,At.gD,a.sg,ea.oG,ft.wV,ft.qQ,E.TO,E.bx,Ct.ey,na.ib,na.yz,na.yK,At.$L,Tt.Rr,M.gM,C.BN,aa.Vq,aa.C0,ft.sg,aa.VY,ft.u,aa.Ic],pipes:[a.JJ],styles:[""]}),t})();var Ua=n(882);function Ra(t,e){1&t&&o._UZ(0,"mat-progress-bar",27)}function ka(t,e){1&t&&(o.TgZ(0,"th",28),o._uU(1," Transaction ID "),o.qZA())}function Na(t,e){1&t&&(o.TgZ(0,"span",36),o.TgZ(1,"mat-icon",37),o._uU(2,"warning"),o.qZA(),o.qZA())}function Ia(t,e){if(1&t&&(o.TgZ(0,"span"),o.YNc(1,Na,3,0,"span",35),o.qZA()),2&t){const t=o.oxw().$implicit;o.oxw();const e=o.MAs(32);o.xp6(1),o.Q6J("ngIf",t.value<1e3)("ngIfElse",e)}}function Oa(t,e){1&t&&o._UZ(0,"span",38)}function Ea(t,e){if(1&t&&(o._UZ(0,"span",39),o.ALo(1,"titlecase")),2&t){const t=o.oxw().$implicit;o.s9C("matTooltip",o.lcZ(1,1,t.status))}}const Ma=function(t){return{"max-width":t}};function Ja(t,e){if(1&t&&(o.TgZ(0,"td",29),o.TgZ(1,"span",30),o.YNc(2,Ia,2,2,"span",31),o.YNc(3,Oa,1,0,"span",32),o.YNc(4,Ea,2,3,"span",33),o.TgZ(5,"span",34),o._uU(6),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.xp6(1),o.Q6J("ngStyle",o.VKq(5,Ma,n.screenSize===n.screenSizeEnum.XS?"10rem":"50rem")),o.xp6(1),o.Q6J("ngIf",n.numDustUTXOs>0&&!n.isDustUTXO),o.xp6(1),o.Q6J("ngIf","confirmed"===t.status),o.xp6(1),o.Q6J("ngIf","confirmed"!==t.status),o.xp6(2),o.Oqu(t.txid)}}function Da(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1," Output "),o.qZA())}function Ya(t,e){if(1&t&&(o.TgZ(0,"td",29),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==t?null:t.output)," ")}}function Qa(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1," Value (Sats) "),o.qZA())}function Pa(t,e){if(1&t&&(o.TgZ(0,"span",41),o._uU(1),o.ALo(2,"number"),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,t.value))}}function Ba(t,e){if(1&t&&(o.TgZ(0,"span",44),o._uU(1),o.ALo(2,"number"),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.hij("(",o.lcZ(2,1,-1*t.value),")")}}function Ha(t,e){if(1&t&&(o.TgZ(0,"td",29),o.YNc(1,Pa,3,3,"span",42),o.YNc(2,Ba,3,3,"span",43),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Q6J("ngIf",t.value>0||0===t.value),o.xp6(1),o.Q6J("ngIf",t.value<0)}}function za(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1," Blockheight "),o.qZA())}function Ga(t,e){if(1&t&&(o.TgZ(0,"td",29),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==t?null:t.blockheight)," ")}}function Va(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",45),o.TgZ(1,"div",46),o.TgZ(2,"mat-select",47),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",48),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Xa(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",49),o.TgZ(1,"button",50),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onUTXOClick(n,e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function Wa(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No utxos available."),o.qZA())}function $a(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting utxos..."),o.qZA())}function Ka(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.errorMessage)}}function ja(t,e){if(1&t&&(o.TgZ(0,"td",51),o.YNc(1,Wa,2,0,"p",31),o.YNc(2,$a,2,0,"p",31),o.YNc(3,Ka,2,1,"p",31),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=t.listUTXOs&&t.listUTXOs.data)||(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchUTXOs.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.listUTXOs&&t.listUTXOs.data)||(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchUTXOs.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.listUTXOs&&t.listUTXOs.data)||(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchUTXOs.status)===t.apiCallStatusEnum.ERROR)}}const ts=function(t){return{"display-none":t}};function es(t,e){if(1&t&&o._UZ(0,"tr",52),2&t){const t=o.oxw();o.Q6J("ngClass",o.VKq(1,ts,(null==t.listUTXOs?null:t.listUTXOs.data)&&(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)>0))}}function ns(t,e){1&t&&o._UZ(0,"tr",53)}function as(t,e){1&t&&o._UZ(0,"tr",54)}function ss(t,e){1&t&&o._UZ(0,"mat-icon",37)}const is=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},os=function(){return["no_utxo"]};let ls=(()=>{class t{constructor(t,e,n){this.logger=t,this.commonService=e,this.store=n,this.numDustUTXOs=0,this.isDustUTXO=!1,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["txid","value","actions"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["txid","output","value","blockheight","actions"]):(this.flgSticky=!0,this.displayedColumns=["txid","output","value","blockheight","actions"])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchUTXOs.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchUTXOs.message?JSON.stringify(this.apisCallStatus.FetchUTXOs.message):this.apisCallStatus.FetchUTXOs.message),this.logger.info(t)})}ngAfterViewInit(){this.utxos&&this.utxos.length>0&&this.sort&&this.paginator&&this.loadUTXOsTable(this.utxos)}ngOnChanges(){this.utxos&&this.utxos.length>0&&this.loadUTXOsTable(this.utxos)}applyFilter(t){this.listUTXOs.filter=t.value.trim().toLowerCase()}onUTXOClick(t,e){const n=[[{key:"txid",value:t.txid,title:"Transaction ID",width:100}],[{key:"output",value:t.output,title:"Output",width:50,type:f.Gi.NUMBER},{key:"value",value:t.value,title:"Value (Sats)",width:50,type:f.Gi.NUMBER}],[{key:"status",value:this.commonService.titleCase(t.status),title:"Status",width:50,type:f.Gi.STRING},{key:"blockheight",value:t.blockheight,title:"Blockheight",width:50,type:f.Gi.NUMBER}],[{key:"address",value:t.address,title:"Address",width:100}]];this.store.dispatch(new Ft.wu({data:{type:f.n_.INFORMATION,alertTitle:"UTXO Information",message:n}}))}loadUTXOsTable(t){this.listUTXOs=new mt.by([...t]),this.listUTXOs.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.listUTXOs.sort=this.sort,this.listUTXOs.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.listUTXOs.paginator=this.paginator,this.logger.info(this.listUTXOs)}onDownloadCSV(){this.listUTXOs.data&&this.listUTXOs.data.length>0&&this.commonService.downloadFile(this.listUTXOs.data,"UTXOs")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(T.v),o.Y36(y.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-on-chain-utxos"]],viewQuery:function(t,e){if(1&t&&(o.Gf(ht.YE,5),o.Gf(pt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},inputs:{numDustUTXOs:"numDustUTXOs",isDustUTXO:"isDustUTXO",utxos:"utxos"},features:[o._Bn([{provide:pt.ye,useValue:(0,f.pt)("UTXOs")}]),o.TTD],decls:33,vars:13,consts:[["fxLayout","row wrap","fxLayoutAlign","start start","fxLayout.gt-sm","column","fxFlex","100","fxLayoutAlign.gt-sm","start stretch",1,"padding-gap-x-large"],["fxLayout","column","fxLayout.gt-xs","row wrap","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","row","fxLayoutAlign","start start"],["fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","txid"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","output"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","value"],["matColumnDef","blockheight"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_utxo"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["emptySpace",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["fxLayout","row",1,"ellipsis-parent",3,"ngStyle"],[4,"ngIf"],["class","dot green","matTooltip","Confirmed","matTooltipPosition","right",4,"ngIf"],["class","dot yellow","matTooltipPosition","right",3,"matTooltip",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Risk of dust attack","matTooltipPosition","right",4,"ngIf","ngIfElse"],["matTooltip","Risk of dust attack","matTooltipPosition","right"],["fxLayoutAlign","start center","color","warn",1,"mr-1"],["matTooltip","Confirmed","matTooltipPosition","right",1,"dot","green"],["matTooltipPosition","right",1,"dot","yellow",3,"matTooltip"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["fxLayoutAlign","end center",4,"ngIf"],["fxLayoutAlign","end center","class","red",4,"ngIf"],["fxLayoutAlign","end center",1,"red"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"div",2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"input",4),o.NdJ("keyup",function(t){return e.applyFilter(t.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(5,"div",5),o.TgZ(6,"div",6),o.YNc(7,Ra,1,0,"mat-progress-bar",7),o.TgZ(8,"table",8,9),o.ynx(10,10),o.YNc(11,ka,2,0,"th",11),o.YNc(12,Ja,7,7,"td",12),o.BQk(),o.ynx(13,13),o.YNc(14,Da,2,0,"th",14),o.YNc(15,Ya,4,3,"td",12),o.BQk(),o.ynx(16,15),o.YNc(17,Qa,2,0,"th",14),o.YNc(18,Ha,3,2,"td",12),o.BQk(),o.ynx(19,16),o.YNc(20,za,2,0,"th",14),o.YNc(21,Ga,4,3,"td",12),o.BQk(),o.ynx(22,17),o.YNc(23,Va,6,0,"th",18),o.YNc(24,Xa,3,0,"td",19),o.BQk(),o.ynx(25,20),o.YNc(26,ja,4,3,"td",21),o.BQk(),o.YNc(27,es,1,3,"tr",22),o.YNc(28,ns,1,0,"tr",23),o.YNc(29,as,1,0,"tr",24),o.qZA(),o._UZ(30,"mat-paginator",25),o.qZA(),o.qZA(),o.qZA(),o.YNc(31,ss,1,0,"ng-template",null,26,o.W1O)),2&t&&(o.xp6(7),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchUTXOs.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.listUTXOs)("ngClass",o.VKq(10,is,""!==e.errorMessage)),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(12,os)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,E.KE,xt.Nt,D.$V,a.O5,mt.BZ,ht.YE,a.mk,b.oO,mt.w1,mt.fO,mt.Dz,mt.mD,mt.Ke,mt.as,mt.nj,pt.NW,r.pW,mt.ge,ht.nU,mt.ev,a.PC,b.Zl,M.gM,_.Hw,At.gD,At.$L,Ct.ey,q.lW,mt.yh,mt.Q2,mt.XQ,mt.Gk],pipes:[a.rS,a.JJ],styles:[".mat-column-txid[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-txid[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();var rs=n(1050);function cs(t,e){if(1&t&&(o.TgZ(0,"span",5),o._uU(1,"UTXOs"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.numUtxos)}}function us(t,e){if(1&t&&(o.TgZ(0,"span",5),o._uU(1,"Dust UTXOs"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.numDustUtxos)}}let ds=(()=>{class t{constructor(t,e){this.logger=t,this.store=e,this.selectedTableIndex=0,this.selectedTableIndexChange=new o.vpe,this.utxos=[],this.numUtxos=0,this.dustUtxos=[],this.numDustUtxos=0,this.unSubs=[new d.x]}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{t.utxos&&t.utxos.length>0&&(this.utxos=t.utxos,this.numUtxos=this.utxos.length,this.dustUtxos=t.utxos.filter(t=>+t.value<1e3),this.numDustUtxos=this.dustUtxos.length),t.utxos&&t.utxos.length>0&&(this.utxos=t.utxos,this.numUtxos=this.utxos.length),this.logger.info(t)})}onSelectedIndexChanged(t){this.selectedTableIndexChange.emit(t)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(y.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-utxo-tables"]],inputs:{selectedTableIndex:"selectedTableIndex"},outputs:{selectedTableIndexChange:"selectedTableIndexChange"},decls:8,vars:7,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"bordered-box"],[3,"selectedIndex","selectedIndexChange"],["mat-tab-label",""],["xLayout","row","fxFlex","100",3,"utxos","numDustUTXOs","isDustUTXO"],["fxLayout","row","fxFlex","100",3,"utxos","numDustUTXOs","isDustUTXO"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"mat-tab-group",1),o.NdJ("selectedIndexChange",function(t){return e.onSelectedIndexChanged(t)}),o.TgZ(2,"mat-tab"),o.YNc(3,cs,2,1,"ng-template",2),o._UZ(4,"rtl-cl-on-chain-utxos",3),o.qZA(),o.TgZ(5,"mat-tab"),o.YNc(6,us,2,1,"ng-template",2),o._UZ(7,"rtl-cl-on-chain-utxos",4),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("selectedIndex",e.selectedTableIndex),o.xp6(3),o.Q6J("utxos",e.utxos)("numDustUTXOs",e.numDustUtxos)("isDustUTXO",!1),o.xp6(3),o.Q6J("utxos",e.dustUtxos)("numDustUTXOs",e.numDustUtxos)("isDustUTXO",!0))},directives:[l.xw,l.yH,l.Wh,dt.SP,dt.uX,dt.uD,ls,rs.k],styles:[""]}),t})();const ps=function(t,e){return[t,e]};function hs(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",12),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().activeLink=null==e?null:e.link}),o._uU(1),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.Q6J("active",n.activeLink===(null==t?null:t.link))("routerLink",o.WLB(3,ps,null==t?null:t.link,null==n.selectedTable?null:n.selectedTable.name)),o.xp6(1),o.Oqu(null==t?null:t.name)}}let ms=(()=>{class t{constructor(t,e,n){this.store=t,this.router=e,this.activatedRoute=n,this.selNode={},this.faExchangeAlt=g.Ssp,this.faChartPie=g.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"receive",name:"Receive"},{link:"send",name:"Send"},{link:"sweep",name:"Sweep All"}],this.activeLink=this.links[0].link,this.tables=[{id:0,name:"utxos"},{id:1,name:"dustUtxos"}],this.selectedTable=this.tables[0],this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.selectedTable=this.tables.find(t=>t.name===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,p.R)(this.unSubs[0]),(0,h.h)(t=>t instanceof s.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link,this.selectedTable=this.tables.find(e=>e.name===t.urlAfterRedirects.substring(t.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select("cl").pipe((0,p.R)(this.unSubs[1])).subscribe(t=>{this.selNode=t.nodeSettings,this.balances=[{title:"Total Balance",dataValue:t.balance.totalBalance||0},{title:"Confirmed",dataValue:t.balance.confBalance},{title:"Unconfirmed",dataValue:t.balance.unconfBalance}]})}openSendFundsModal(t){this.store.dispatch(new Ft.wu({data:{sweepAll:t,component:La}}))}onSelectedTableIndexChanged(t){this.selectedTable=this.tables.find(e=>e.id===t),this.router.navigate(["./",this.activeLink,this.selectedTable.name],{relativeTo:this.activatedRoute})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(y.yh),o.Y36(s.F0),o.Y36(s.gz))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-on-chain"]],decls:21,vars:5,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["fxLayout","row","fxFlex","100",3,"selectedTableIndex","selectedTableIndexChange"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"On-chain Balance"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o._UZ(7,"rtl-currency-unit-converter",5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",0),o._UZ(9,"fa-icon",1),o.TgZ(10,"span",2),o._uU(11,"On-chain Transactions"),o.qZA(),o.qZA(),o.TgZ(12,"div",6),o.TgZ(13,"mat-card"),o.TgZ(14,"mat-card-content",4),o.TgZ(15,"nav",7),o.YNc(16,hs,2,6,"div",8),o.qZA(),o.TgZ(17,"div",9),o._UZ(18,"router-outlet"),o.qZA(),o.TgZ(19,"div",10),o.TgZ(20,"rtl-cl-utxo-tables",11),o.NdJ("selectedTableIndexChange",function(t){return e.onSelectedTableIndexChanged(t)}),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("icon",e.faChartPie),o.xp6(6),o.Q6J("values",e.balances),o.xp6(2),o.Q6J("icon",e.faExchangeAlt),o.xp6(7),o.Q6J("ngForOf",e.links),o.xp6(4),o.Q6J("selectedTableIndex",null==e.selectedTable?null:e.selectedTable.id))},directives:[l.xw,l.Wh,C.BN,v.a8,v.dn,Ua.D,dt.BU,a.sg,l.yH,s.lC,ds,dt.Nj,s.rH],styles:[""]}),t})();function gs(t,e){if(1&t&&(o.TgZ(0,"span",10),o._uU(1,"Channels"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.activeChannels)}}function fs(t,e){if(1&t&&(o.TgZ(0,"span",10),o._uU(1,"Peers"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.activePeers)}}let xs=(()=>{class t{constructor(t,e,n){this.store=t,this.logger=e,this.router=n,this.activePeers=0,this.activeChannels=0,this.faUsers=g.FVb,this.faChartPie=g.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"channels",name:"Channels"},{link:"peers",name:"Peers"}],this.activeLink=0,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.activeLink=this.links.findIndex(t=>t.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,p.R)(this.unSubs[0]),(0,h.h)(t=>t instanceof s.Av)).subscribe(t=>{this.activeLink=this.links.findIndex(e=>e.link===t.urlAfterRedirects.substring(t.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select("cl").pipe((0,p.R)(this.unSubs[1])).subscribe(t=>{this.activePeers=t.peers&&t.peers.length?t.peers.length:0,this.activeChannels=t.information.num_active_channels,this.balances=[{title:"Total Balance",dataValue:t.balance.totalBalance||0},{title:"Confirmed",dataValue:t.balance.confBalance},{title:"Unconfirmed",dataValue:t.balance.unconfBalance}],this.logger.info(t)})}onSelectedTabChange(t){this.router.navigateByUrl("/cl/connections/"+this.links[t.index].link)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(y.yh),o.Y36(Z.mQ),o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-connections"]],decls:22,vars:4,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"On-chain Balance"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o._UZ(7,"rtl-currency-unit-converter",5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",0),o._UZ(9,"fa-icon",1),o.TgZ(10,"span",2),o._uU(11,"Connections"),o.qZA(),o.qZA(),o.TgZ(12,"div",6),o.TgZ(13,"mat-card"),o.TgZ(14,"mat-card-content",4),o.TgZ(15,"mat-tab-group",7),o.NdJ("selectedIndexChange",function(t){return e.activeLink=t})("selectedTabChange",function(t){return e.onSelectedTabChange(t)}),o.TgZ(16,"mat-tab"),o.YNc(17,gs,2,1,"ng-template",8),o.qZA(),o.TgZ(18,"mat-tab"),o.YNc(19,fs,2,1,"ng-template",8),o.qZA(),o.qZA(),o.TgZ(20,"div",9),o._UZ(21,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("icon",e.faChartPie),o.xp6(6),o.Q6J("values",e.balances),o.xp6(2),o.Q6J("icon",e.faUsers),o.xp6(6),o.Q6J("selectedIndex",e.activeLink))},directives:[l.xw,l.Wh,C.BN,v.a8,v.dn,Ua.D,dt.SP,dt.uX,dt.uD,l.yH,s.lC,rs.k],styles:[""]}),t})();function Zs(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",11),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().activeLink=e.link}),o._uU(1),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.s9C("routerLink",t.link),o.Q6J("active",n.activeLink===t.link),o.xp6(1),o.Oqu(t.name)}}let ys=(()=>{class t{constructor(t,e,n){this.logger=t,this.store=e,this.router=n,this.faExchangeAlt=g.Ssp,this.faChartPie=g.OS1,this.currencyUnits=[],this.balances=[{title:"Local Capacity",dataValue:0,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:0,tooltip:"Amount you can receive"}],this.links=[{link:"payments",name:"Payments"},{link:"invoices",name:"Invoices"},{link:"queryroutes",name:"Query Routes"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,p.R)(this.unSubs[0]),(0,h.h)(t=>t instanceof s.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link}),this.store.select("cl").pipe((0,p.R)(this.unSubs[1])).subscribe(t=>{this.currencyUnits=t.nodeSettings.currencyUnits,this.balances=t.nodeSettings.userPersona===f.ol.OPERATOR?[{title:"Local Capacity",dataValue:t.localRemoteBalance.localBalance,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:t.localRemoteBalance.remoteBalance,tooltip:"Amount you can receive"}]:[{title:"Outbound Capacity",dataValue:t.localRemoteBalance.localBalance,tooltip:"Amount you can send"},{title:"Inbound Capacity",dataValue:t.localRemoteBalance.remoteBalance,tooltip:"Amount you can receive"}],this.logger.info(t)})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-transactions"]],decls:19,vars:4,consts:[["fxLayout","row wrap","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Lightning Balance"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o._UZ(7,"rtl-currency-unit-converter",5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",6),o._UZ(9,"fa-icon",1),o.TgZ(10,"span",2),o._uU(11,"Lightning Transactions"),o.qZA(),o.qZA(),o.TgZ(12,"div",7),o.TgZ(13,"mat-card"),o.TgZ(14,"mat-card-content",4),o.TgZ(15,"nav",8),o.YNc(16,Zs,2,3,"div",9),o.qZA(),o.TgZ(17,"div",10),o._UZ(18,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("icon",e.faChartPie),o.xp6(6),o.Q6J("values",e.balances),o.xp6(2),o.Q6J("icon",e.faExchangeAlt),o.xp6(7),o.Q6J("ngForOf",e.links))},directives:[l.xw,l.Wh,C.BN,v.a8,v.dn,Ua.D,dt.BU,a.sg,l.yH,s.lC,dt.Nj,s.rH],styles:[""]}),t})();function As(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",11),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().activeLink=e.link}),o._uU(1),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.s9C("routerLink",t.link),o.Q6J("active",n.activeLink===t.link),o.xp6(1),o.Oqu(t.name)}}let Ts=(()=>{class t{constructor(t){this.router=t,this.faMapSigns=g.SuH,this.links=[{link:"forwardinghistory",name:"Forwarding History"},{link:"routingpeers",name:"Routing Peers"},{link:"failedtransactions",name:"Failed Transactions"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,p.R)(this.unSubs[0]),(0,h.h)(t=>t instanceof s.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-routing"]],decls:13,vars:2,consts:[["fxLayout","column",1,"mb-2"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap-x"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","row","fxFlex","100"],["mat-tab-nav-bar","","fxFlex","100"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"fa-icon",2),o.TgZ(3,"span",3),o._uU(4,"Routing"),o.qZA(),o.qZA(),o.TgZ(5,"div",4),o.TgZ(6,"mat-card",5),o.TgZ(7,"mat-card-content",6),o.TgZ(8,"div",7),o.TgZ(9,"nav",8),o.YNc(10,As,2,3,"div",9),o.qZA(),o.qZA(),o.TgZ(11,"div",10),o._UZ(12,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(2),o.Q6J("icon",e.faMapSigns),o.xp6(8),o.Q6J("ngForOf",e.links))},directives:[l.xw,l.Wh,C.BN,l.yH,v.a8,v.dn,dt.BU,a.sg,s.lC,dt.Nj,s.rH],styles:[""]}),t})();var Cs=n(2609);function ws(t,e){1&t&&(o.TgZ(0,"th",26),o._uU(1,"Type"),o.qZA())}function vs(t,e){if(1&t&&(o.TgZ(0,"td",27),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.type," ")}}function Ss(t,e){1&t&&(o.TgZ(0,"th",26),o._uU(1,"Address"),o.qZA())}function bs(t,e){if(1&t&&(o.TgZ(0,"td",27),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.address," ")}}function qs(t,e){1&t&&(o.TgZ(0,"th",26),o._uU(1,"Port"),o.qZA())}function _s(t,e){if(1&t&&(o.TgZ(0,"td",27),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.port," ")}}function Fs(t,e){1&t&&(o.TgZ(0,"th",28),o.TgZ(1,"span",29),o._uU(2,"Actions"),o.qZA(),o.qZA())}function Ls(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",30),o.TgZ(1,"span",29),o.TgZ(2,"button",31),o.NdJ("copied",function(e){return o.CHM(t),o.oxw(2).onCopyNodeURI(e)}),o._uU(3,"Copy Node URI"),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw(2);o.xp6(2),o.Q6J("payload",(null==n.lookupResult?null:n.lookupResult.nodeid)+"@"+t.address+":"+t.port)}}function Us(t,e){1&t&&o._UZ(0,"tr",32)}function Rs(t,e){1&t&&o._UZ(0,"tr",33)}const ks=function(t){return{"background-color":t}};function Ns(t,e){if(1&t&&(o.TgZ(0,"div",1),o._UZ(1,"mat-divider",2),o.TgZ(2,"div",3),o.TgZ(3,"h4",4),o._uU(4,"Pub Key"),o.qZA(),o.TgZ(5,"span",5),o._uU(6),o.qZA(),o.qZA(),o._UZ(7,"mat-divider",6),o.TgZ(8,"div",7),o.TgZ(9,"div",3),o.TgZ(10,"h4",4),o._uU(11,"Alias"),o.qZA(),o.TgZ(12,"span",8),o._uU(13),o.TgZ(14,"span",9),o._uU(15),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o._UZ(16,"mat-divider",6),o.TgZ(17,"div",7),o.TgZ(18,"div",10),o.TgZ(19,"h4",4),o._uU(20,"Last Update"),o.qZA(),o.TgZ(21,"span",8),o._uU(22),o.ALo(23,"date"),o.qZA(),o.qZA(),o.TgZ(24,"div",10),o.TgZ(25,"h4",4),o._uU(26,"Features"),o.qZA(),o.TgZ(27,"span",8),o._uU(28),o.qZA(),o.qZA(),o.qZA(),o._UZ(29,"mat-divider",6),o.TgZ(30,"div",11),o.TgZ(31,"h4",12),o._uU(32,"Addresses"),o.qZA(),o.TgZ(33,"div",13),o.TgZ(34,"table",14,15),o.ynx(36,16),o.YNc(37,ws,2,0,"th",17),o.YNc(38,vs,2,1,"td",18),o.BQk(),o.ynx(39,19),o.YNc(40,Ss,2,0,"th",17),o.YNc(41,bs,2,1,"td",18),o.BQk(),o.ynx(42,20),o.YNc(43,qs,2,0,"th",17),o.YNc(44,_s,2,1,"td",18),o.BQk(),o.ynx(45,21),o.YNc(46,Fs,3,0,"th",22),o.YNc(47,Ls,4,1,"td",23),o.BQk(),o.YNc(48,Us,1,0,"tr",24),o.YNc(49,Rs,1,0,"tr",25),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult?null:t.lookupResult.nodeid),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(null==t.lookupResult?null:t.lookupResult.alias),o.xp6(1),o.Q6J("ngStyle",o.VKq(16,ks,"#"+(null==t.lookupResult?null:t.lookupResult.color))),o.xp6(1),o.Oqu(null!=t.lookupResult&&t.lookupResult.color?"#"+(null==t.lookupResult?null:t.lookupResult.color):""),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.xi3(23,13,1e3*(null==t.lookupResult?null:t.lookupResult.last_timestamp),"dd/MMM/YYYY HH:mm")),o.xp6(6),o.Oqu(null==t.lookupResult?null:t.lookupResult.features),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Q6J("dataSource",t.addresses),o.xp6(14),o.Q6J("matHeaderRowDef",t.displayedColumns),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns)}}let Is=(()=>{class t{constructor(t,e){this.logger=t,this.snackBar=e,this.displayedColumns=["type","address","port","actions"]}ngOnInit(){this.addresses=new mt.by(this.lookupResult&&this.lookupResult.addresses?[...this.lookupResult.addresses]:[]),this.addresses.data=this.lookupResult&&this.lookupResult.addresses?this.lookupResult.addresses:[],this.addresses.sort=this.sort,this.addresses.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null}onCopyNodeURI(t){this.snackBar.open("Node URI copied."),this.logger.info("Copied Text: "+t)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(ta.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-node-lookup"]],viewQuery:function(t,e){if(1&t&&o.Gf(ht.YE,5),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first)}},inputs:{lookupResult:"lookupResult"},decls:1,vars:1,consts:[["fxLayout","column","class","mt-1",4,"ngIf"],["fxLayout","column",1,"mt-1"],[1,"mb-1",3,"inset"],["fxLayout","column","fxFlex","100","fxLayoutAlign","end start",1,"my-1"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text","w-100"],[1,"my-1",3,"inset"],["fxLayout","row"],[1,"foreground-secondary-text"],[1,"ml-2",3,"ngStyle"],["fxLayout","column","fxFlex","50","fxLayoutAlign","end start",1,"my-1"],["fxLayout","column",1,"mt-2"],["fxFlex","100","fxLayoutAlign","start",1,"font-bold-500","mb-1"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","type"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","address"],["matColumnDef","port"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","",1,"pl-1"],["fxLayoutAlign","end center"],["mat-cell","",1,"pl-1"],["mat-stroked-button","","color","primary","type","button","tabindex","1","rtlClipboard","",3,"payload","copied"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&o.YNc(0,Ns,50,18,"div",0),2&t&&o.Q6J("ngIf",e.lookupResult)},directives:[a.O5,l.xw,J.d,l.yH,l.Wh,a.PC,b.Zl,D.$V,mt.BZ,ht.YE,mt.w1,mt.fO,mt.Dz,mt.as,mt.nj,mt.ge,ht.nU,mt.ev,q.lW,Cs.y,mt.XQ,mt.Gk],pipes:[a.uU],styles:[""]}),t})();function Os(t,e){1&t&&(o.TgZ(0,"h3",11),o._uU(1,"Node 1"),o.qZA())}function Es(t,e){1&t&&(o.TgZ(0,"h3",11),o._uU(1,"Node 1 (Your Node)"),o.qZA())}function Ms(t,e){1&t&&(o.TgZ(0,"h3",11),o._uU(1,"Node 2"),o.qZA())}function Js(t,e){1&t&&(o.TgZ(0,"h3",11),o._uU(1,"Node 2 (Your Node)"),o.qZA())}function Ds(t,e){if(1&t&&(o.TgZ(0,"div",1),o._UZ(1,"mat-divider"),o.TgZ(2,"div",2),o.TgZ(3,"div",3),o.TgZ(4,"div",4),o.YNc(5,Os,2,0,"h3",5),o.YNc(6,Es,2,0,"h3",5),o.qZA(),o._UZ(7,"mat-divider",6),o.TgZ(8,"div",7),o.TgZ(9,"h4",8),o._uU(10,"Short Channel Id"),o.qZA(),o.TgZ(11,"span",9),o._uU(12),o.qZA(),o.qZA(),o._UZ(13,"mat-divider",6),o.TgZ(14,"div",10),o.TgZ(15,"h4",8),o._uU(16,"Active"),o.qZA(),o.TgZ(17,"span",9),o._uU(18),o.qZA(),o.qZA(),o._UZ(19,"mat-divider",6),o.TgZ(20,"div",10),o.TgZ(21,"h4",8),o._uU(22,"Last Update"),o.qZA(),o.TgZ(23,"span",9),o._uU(24),o.qZA(),o.qZA(),o._UZ(25,"mat-divider",6),o.TgZ(26,"div",10),o.TgZ(27,"h4",8),o._uU(28,"Amount (mSats)"),o.qZA(),o.TgZ(29,"span",9),o._uU(30),o.qZA(),o.qZA(),o._UZ(31,"mat-divider",6),o.TgZ(32,"div",10),o.TgZ(33,"h4",8),o._uU(34,"Base Fee (mSats)"),o.qZA(),o.TgZ(35,"span",9),o._uU(36),o.ALo(37,"number"),o.qZA(),o.qZA(),o._UZ(38,"mat-divider",6),o.TgZ(39,"div",10),o.TgZ(40,"h4",8),o._uU(41,"Channel Flags"),o.qZA(),o.TgZ(42,"span",9),o._uU(43),o.ALo(44,"number"),o.qZA(),o.qZA(),o._UZ(45,"mat-divider",6),o.TgZ(46,"div",10),o.TgZ(47,"h4",8),o._uU(48,"Delay"),o.qZA(),o.TgZ(49,"span",9),o._uU(50),o.ALo(51,"number"),o.qZA(),o.qZA(),o._UZ(52,"mat-divider",6),o.TgZ(53,"div",10),o.TgZ(54,"h4",8),o._uU(55,"Destination"),o.qZA(),o.TgZ(56,"span",9),o._uU(57),o.qZA(),o.qZA(),o._UZ(58,"mat-divider",6),o.TgZ(59,"div",10),o.TgZ(60,"h4",8),o._uU(61,"Fee/Millionth"),o.qZA(),o.TgZ(62,"span",9),o._uU(63),o.ALo(64,"number"),o.qZA(),o.qZA(),o._UZ(65,"mat-divider",6),o.TgZ(66,"div",10),o.TgZ(67,"h4",8),o._uU(68,"Max Htlc (mSat)"),o.qZA(),o.TgZ(69,"span",9),o._uU(70),o.qZA(),o.qZA(),o._UZ(71,"mat-divider",6),o.TgZ(72,"div",10),o.TgZ(73,"h4",8),o._uU(74,"Min Htlc (mSat)"),o.qZA(),o.TgZ(75,"span",9),o._uU(76),o.qZA(),o.qZA(),o._UZ(77,"mat-divider",6),o.TgZ(78,"div",10),o.TgZ(79,"h4",8),o._uU(80,"Message Flags"),o.qZA(),o.TgZ(81,"span",9),o._uU(82),o.ALo(83,"number"),o.qZA(),o.qZA(),o._UZ(84,"mat-divider",6),o.TgZ(85,"div",10),o.TgZ(86,"h4",8),o._uU(87,"Public"),o.qZA(),o.TgZ(88,"span",9),o._uU(89),o.qZA(),o.qZA(),o._UZ(90,"mat-divider",6),o.TgZ(91,"div",10),o.TgZ(92,"h4",8),o._uU(93,"Satoshis"),o.qZA(),o.TgZ(94,"span",9),o._uU(95),o.ALo(96,"number"),o.qZA(),o.qZA(),o._UZ(97,"mat-divider",6),o.TgZ(98,"div",10),o.TgZ(99,"h4",8),o._uU(100,"Source"),o.qZA(),o.TgZ(101,"span",9),o._uU(102),o.qZA(),o.qZA(),o.qZA(),o.TgZ(103,"div",3),o.TgZ(104,"div"),o.YNc(105,Ms,2,0,"h3",5),o.YNc(106,Js,2,0,"h3",5),o.qZA(),o._UZ(107,"mat-divider",6),o.TgZ(108,"div",7),o.TgZ(109,"h4",8),o._uU(110,"Short Channel Id"),o.qZA(),o.TgZ(111,"span",9),o._uU(112),o.qZA(),o.qZA(),o._UZ(113,"mat-divider",6),o.TgZ(114,"div",10),o.TgZ(115,"h4",8),o._uU(116,"Active"),o.qZA(),o.TgZ(117,"span",9),o._uU(118),o.qZA(),o.qZA(),o._UZ(119,"mat-divider",6),o.TgZ(120,"div",10),o.TgZ(121,"h4",8),o._uU(122,"Last Update"),o.qZA(),o.TgZ(123,"span",9),o._uU(124),o.ALo(125,"date"),o.qZA(),o.qZA(),o._UZ(126,"mat-divider",6),o.TgZ(127,"div",10),o.TgZ(128,"h4",8),o._uU(129,"Amount (mSats)"),o.qZA(),o.TgZ(130,"span",9),o._uU(131),o.qZA(),o.qZA(),o._UZ(132,"mat-divider",6),o.TgZ(133,"div",10),o.TgZ(134,"h4",8),o._uU(135,"Base Fee (mSats)"),o.qZA(),o.TgZ(136,"span",9),o._uU(137),o.ALo(138,"number"),o.qZA(),o.qZA(),o._UZ(139,"mat-divider",6),o.TgZ(140,"div",10),o.TgZ(141,"h4",8),o._uU(142,"Channel Flags"),o.qZA(),o.TgZ(143,"span",9),o._uU(144),o.ALo(145,"number"),o.qZA(),o.qZA(),o._UZ(146,"mat-divider",6),o.TgZ(147,"div",10),o.TgZ(148,"h4",8),o._uU(149,"Delay"),o.qZA(),o.TgZ(150,"span",9),o._uU(151),o.ALo(152,"number"),o.qZA(),o.qZA(),o._UZ(153,"mat-divider",6),o.TgZ(154,"div",10),o.TgZ(155,"h4",8),o._uU(156,"Destination"),o.qZA(),o.TgZ(157,"span",9),o._uU(158),o.qZA(),o.qZA(),o._UZ(159,"mat-divider",6),o.TgZ(160,"div",10),o.TgZ(161,"h4",8),o._uU(162,"Fee/Millionth"),o.qZA(),o.TgZ(163,"span",9),o._uU(164),o.ALo(165,"number"),o.qZA(),o.qZA(),o._UZ(166,"mat-divider",6),o.TgZ(167,"div",10),o.TgZ(168,"h4",8),o._uU(169,"Max Htlc (mSat)"),o.qZA(),o.TgZ(170,"span",9),o._uU(171),o.qZA(),o.qZA(),o._UZ(172,"mat-divider",6),o.TgZ(173,"div",10),o.TgZ(174,"h4",8),o._uU(175,"Min Htlc (mSat)"),o.qZA(),o.TgZ(176,"span",9),o._uU(177),o.qZA(),o.qZA(),o._UZ(178,"mat-divider",6),o.TgZ(179,"div",10),o.TgZ(180,"h4",8),o._uU(181,"Message Flags"),o.qZA(),o.TgZ(182,"span",9),o._uU(183),o.ALo(184,"number"),o.qZA(),o.qZA(),o._UZ(185,"mat-divider",6),o.TgZ(186,"div",10),o.TgZ(187,"h4",8),o._uU(188,"Public"),o.qZA(),o.TgZ(189,"span",9),o._uU(190),o.qZA(),o.qZA(),o._UZ(191,"mat-divider",6),o.TgZ(192,"div",10),o.TgZ(193,"h4",8),o._uU(194,"Satoshis"),o.qZA(),o.TgZ(195,"span",9),o._uU(196),o.ALo(197,"number"),o.qZA(),o.qZA(),o._UZ(198,"mat-divider",6),o.TgZ(199,"div",10),o.TgZ(200,"h4",8),o._uU(201,"Source"),o.qZA(),o.TgZ(202,"span",9),o._uU(203),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(5),o.Q6J("ngIf",!t.node1_match),o.xp6(1),o.Q6J("ngIf",t.node1_match),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[0]?null:t.lookupResult[0].short_channel_id),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null!=t.lookupResult[0]&&t.lookupResult[0].active?"True":"False"),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[0]?null:t.lookupResult[0].last_update),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[0]?null:t.lookupResult[0].amount_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(37,64,null==t.lookupResult[0]?null:t.lookupResult[0].base_fee_millisatoshi)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(44,66,null==t.lookupResult[0]?null:t.lookupResult[0].channel_flags)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(51,68,null==t.lookupResult[0]?null:t.lookupResult[0].delay)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[0]?null:t.lookupResult[0].destination),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(64,70,null==t.lookupResult[0]?null:t.lookupResult[0].fee_per_millionth)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[0]?null:t.lookupResult[0].htlc_maximum_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[0]?null:t.lookupResult[0].htlc_minimum_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(83,72,null==t.lookupResult[0]?null:t.lookupResult[0].message_flags)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null!=t.lookupResult[0]&&t.lookupResult[0].public?"Yes":"No"),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(96,74,null==t.lookupResult[0]?null:t.lookupResult[0].satoshis)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[0]?null:t.lookupResult[0].source),o.xp6(3),o.Q6J("ngIf",!t.node2_match),o.xp6(1),o.Q6J("ngIf",t.node2_match),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[1]?null:t.lookupResult[1].short_channel_id),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null!=t.lookupResult[1]&&t.lookupResult[1].active?"True":"False"),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.xi3(125,76,1e3*(null==t.lookupResult[1]?null:t.lookupResult[1].last_update),"dd/MMM/YYYY HH:mm")),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[1]?null:t.lookupResult[1].amount_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(138,79,null==t.lookupResult[1]?null:t.lookupResult[1].base_fee_millisatoshi)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(145,81,null==t.lookupResult[1]?null:t.lookupResult[1].channel_flags)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(152,83,null==t.lookupResult[1]?null:t.lookupResult[1].delay)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[1]?null:t.lookupResult[1].destination),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(165,85,null==t.lookupResult[1]?null:t.lookupResult[1].fee_per_millionth)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[1]?null:t.lookupResult[1].htlc_maximum_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[1]?null:t.lookupResult[1].htlc_minimum_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(184,87,null==t.lookupResult[1]?null:t.lookupResult[1].message_flags)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null!=t.lookupResult[1]&&t.lookupResult[1].public?"Yes":"No"),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(o.lcZ(197,89,null==t.lookupResult[1]?null:t.lookupResult[1].satoshis)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==t.lookupResult[1]?null:t.lookupResult[1].source)}}let Ys=(()=>{class t{constructor(t){this.store=t,this.lookupResult=[],this.node1_match=!1,this.node2_match=!1,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.lookupResult.length>0&&this.lookupResult[0].source===t.information.id&&(this.node1_match=!0),this.lookupResult.length>1&&this.lookupResult[1].source===t.information.id&&(this.node2_match=!0)})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(y.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-channel-lookup"]],inputs:{lookupResult:"lookupResult"},decls:1,vars:1,consts:[["fxLayout","column","class","mt-1",4,"ngIf"],["fxLayout","column",1,"mt-1"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start start",1,"mt-1","bordered-box","padding-gap-large"],["fxLayout","column"],["class","page-title font-bold-500",4,"ngIf"],[3,"inset"],["fxLayout","column","fxFlex","20",1,"my-1"],[1,"font-bold-500"],[1,"foreground-secondary-text"],["fxLayout","column","fxFlex","10",1,"my-1"],[1,"page-title","font-bold-500"]],template:function(t,e){1&t&&o.YNc(0,Ds,204,91,"div",0),2&t&&o.Q6J("ngIf",e.lookupResult)},directives:[a.O5,l.xw,J.d,l.Wh,l.yH],pipes:[a.JJ,a.uU],styles:[".mat-list-base[_ngcontent-%COMP%] .mat-list-item[_ngcontent-%COMP%], .mat-list-base[_ngcontent-%COMP%] .mat-list-option[_ngcontent-%COMP%]{height:38px!important}"]}),t})();const Qs=["form"];function Ps(t,e){if(1&t&&(o.TgZ(0,"mat-radio-button",21),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.Q6J("value",t.id)("checked",n.selectedFieldId===t.id),o.xp6(1),o.hij(" ",t.name," ")}}function Bs(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.hij("",null==t.lookupFields[t.selectedFieldId]?null:t.lookupFields[t.selectedFieldId].placeholder," is required.")}}function Hs(t,e){if(1&t&&(o.TgZ(0,"div"),o._UZ(1,"rtl-cl-node-lookup",30),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Q6J("lookupResult",t.nodeLookupValue)}}function zs(t,e){if(1&t&&(o.TgZ(0,"span",28),o.YNc(1,Hs,2,1,"div",29),o.qZA()),2&t){const t=o.oxw(2),e=o.MAs(24);o.xp6(1),o.Q6J("ngIf",""!==t.nodeLookupValue.nodeid)("ngIfElse",e)}}function Gs(t,e){if(1&t&&(o.TgZ(0,"div"),o._UZ(1,"rtl-cl-channel-lookup",30),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Q6J("lookupResult",t.channelLookupValue)}}function Vs(t,e){if(1&t&&(o.TgZ(0,"span",28),o.YNc(1,Gs,2,1,"div",29),o.qZA()),2&t){const t=o.oxw(2),e=o.MAs(24);o.xp6(1),o.Q6J("ngIf",t.channelLookupValue.length>0)("ngIfElse",e)}}function Xs(t,e){1&t&&(o.TgZ(0,"span",28),o.TgZ(1,"h3"),o._uU(2,"Error! Unable to find details!"),o.qZA(),o.qZA())}function Ws(t,e){if(1&t&&(o.TgZ(0,"div",22),o.TgZ(1,"div",23),o.TgZ(2,"span",24),o._uU(3),o.qZA(),o.qZA(),o.TgZ(4,"div",25),o.YNc(5,zs,2,2,"span",26),o.YNc(6,Vs,2,2,"span",26),o.YNc(7,Xs,3,0,"span",27),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(3),o.hij("",t.lookupFields[t.selectedFieldId].name," Details"),o.xp6(1),o.Q6J("ngSwitch",t.selectedFieldId),o.xp6(1),o.Q6J("ngSwitchCase",0),o.xp6(1),o.Q6J("ngSwitchCase",1)}}function $s(t,e){1&t&&(o.TgZ(0,"h3"),o._uU(1,"Error! Unable to find details!"),o.qZA())}const Ks=function(t){return{"mt-2":t}};let js=(()=>{class t{constructor(t,e,n,a){this.logger=t,this.commonService=e,this.store=n,this.actions=a,this.lookupKey="",this.nodeLookupValue={nodeid:""},this.channelLookupValue=[],this.flgSetLookupValue=!1,this.messageObj=[],this.selectedFieldId=0,this.lookupFields=[{id:0,name:"Node",placeholder:"Pubkey"},{id:1,name:"Channel",placeholder:"Short Channel ID"}],this.flgLoading=[!0],this.faSearch=g.wn1,this.screenSize="",this.screenSizeEnum=f.cu,this.unSubs=[new d.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.actions.pipe((0,p.R)(this.unSubs[0]),(0,h.h)(t=>t.type===x.CR||t.type===x.qe)).subscribe(t=>{if(t.type===x.CR){switch(this.flgLoading[0]=!0,this.selectedFieldId){case 0:this.nodeLookupValue=t.payload[0]?JSON.parse(JSON.stringify(t.payload[0])):{nodeid:""};break;case 1:this.channelLookupValue=t.payload?JSON.parse(JSON.stringify(t.payload)):[]}this.flgSetLookupValue=!0,this.logger.info(this.nodeLookupValue),this.logger.info(this.channelLookupValue)}t.type===x.qe&&t.payload.status===f.Bn.ERROR&&"Lookup"===t.payload.action&&(this.flgLoading[0]="error")})}onLookup(){if(!this.lookupKey)return!0;switch(this.flgSetLookupValue=!1,this.nodeLookupValue={nodeid:""},this.channelLookupValue=[],this.selectedFieldId){case 0:this.store.dispatch(new x.x$(this.lookupKey.trim()));break;case 1:this.store.dispatch(new x.IG({uiMessage:f.m6.SEARCHING_CHANNEL,shortChannelID:this.lookupKey.trim(),showError:!1}))}}onSelectChange(t){this.resetData(),this.selectedFieldId=t.value}resetData(){this.flgSetLookupValue=!1,this.selectedFieldId=0,this.nodeLookupValue={nodeid:""},this.channelLookupValue=[],this.form.resetForm()}clearLookupValue(){this.nodeLookupValue={nodeid:""},this.channelLookupValue=[],this.flgSetLookupValue=!1}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(T.v),o.Y36(y.yh),o.Y36(A.eX))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-lookups"]],viewQuery:function(t,e){if(1&t&&o.Gf(Qs,7),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first)}},decls:25,vars:10,consts:[["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"card-content-gap","mt-1"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start space-between",1,"w-100"],["form","ngForm"],["fxFlex","35","fxFlex.gt-md","25","fxLayoutAlign","start end"],["color","primary","tabindex","1","name","lookupField",3,"ngModel","ngModelChange","change"],["class","mr-4",3,"value","checked",4,"ngFor","ngForOf"],["fxFlex","65","fxFlex.gt-md","75","fxLayoutAlign","start end",3,"ngClass"],["matInput","","name","lookupKey","tabindex","2","required","",3,"placeholder","ngModel","change","ngModelChange"],["key",""],[4,"ngIf"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch","class","w-100 mt-2",4,"ngIf"],["errorBlock",""],[1,"mr-4",3,"value","checked"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"w-100","mt-2"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],[1,"page-title","font-bold-500"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",3,"ngSwitch"],["fxFlex","100",4,"ngSwitchCase"],["fxFlex","100",4,"ngSwitchDefault"],["fxFlex","100"],[4,"ngIf","ngIfElse"],[3,"lookupResult"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"fa-icon",2),o.TgZ(3,"span",3),o._uU(4,"Graph Lookups"),o.qZA(),o.qZA(),o.TgZ(5,"div",4),o.TgZ(6,"mat-card",5),o.TgZ(7,"mat-card-content",6),o.TgZ(8,"form",7,8),o.TgZ(10,"div",9),o.TgZ(11,"mat-radio-group",10),o.NdJ("ngModelChange",function(t){return e.selectedFieldId=t})("change",function(t){return e.onSelectChange(t)}),o.YNc(12,Ps,2,3,"mat-radio-button",11),o.qZA(),o.qZA(),o.TgZ(13,"mat-form-field",12),o.TgZ(14,"input",13,14),o.NdJ("change",function(){return e.clearLookupValue()})("ngModelChange",function(t){return e.lookupKey=t}),o.qZA(),o.YNc(16,Bs,2,1,"mat-error",15),o.qZA(),o.TgZ(17,"div",16),o.TgZ(18,"button",17),o.NdJ("click",function(){return e.resetData()}),o._uU(19,"Clear"),o.qZA(),o.TgZ(20,"button",18),o.NdJ("click",function(){return e.onLookup()}),o._uU(21,"Lookup"),o.qZA(),o.qZA(),o.qZA(),o.YNc(22,Ws,8,4,"div",19),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(23,$s,2,0,"ng-template",null,20,o.W1O)),2&t&&(o.xp6(2),o.Q6J("icon",e.faSearch),o.xp6(9),o.Q6J("ngModel",e.selectedFieldId),o.xp6(1),o.Q6J("ngForOf",e.lookupFields),o.xp6(1),o.Q6J("ngClass",o.VKq(8,Ks,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("placeholder",(null==e.lookupFields[e.selectedFieldId]?null:e.lookupFields[e.selectedFieldId].placeholder)||"Lookup Key")("ngModel",e.lookupKey),o.xp6(2),o.Q6J("ngIf",!e.lookupKey),o.xp6(6),o.Q6J("ngIf",e.flgSetLookupValue))},directives:[l.xw,l.Wh,C.BN,l.yH,v.a8,v.dn,ft._Y,ft.JL,ft.F,de.VQ,ft.JJ,ft.On,a.sg,E.KE,a.mk,b.oO,xt.Nt,ft.Fj,ft.Q7,a.O5,q.lW,de.U0,E.TO,a.RF,a.n9,a.ED,Is,Ys],styles:[".tree-invisible[_ngcontent-%COMP%]{display:none}.lookup-tree[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .lookup-tree[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0;list-style-type:none}.pl-3[_ngcontent-%COMP%]{padding-left:3rem}"]}),t})();var ti=function(t){return t.KB="KB",t.KW="KW",t}({});function ei(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o.TgZ(2,"div",4),o.TgZ(3,"h4",5),o._uU(4,"Opening"),o.qZA(),o.TgZ(5,"div",6),o._uU(6),o.ALo(7,"number"),o.qZA(),o.qZA(),o.TgZ(8,"div",7),o.TgZ(9,"h4",5),o._uU(10,"Mutual Close"),o.qZA(),o.TgZ(11,"div",6),o._uU(12),o.ALo(13,"number"),o.qZA(),o.qZA(),o.TgZ(14,"div",8),o.TgZ(15,"h4",5),o._uU(16,"Unilateral Close"),o.qZA(),o.TgZ(17,"div",6),o._uU(18),o.ALo(19,"number"),o.qZA(),o.qZA(),o.TgZ(20,"div",9),o.TgZ(21,"h4",5),o._uU(22,"Delayed To Us"),o.qZA(),o.TgZ(23,"div",6),o._uU(24),o.ALo(25,"number"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(26,"div",3),o.TgZ(27,"div",10),o.TgZ(28,"h4",5),o._uU(29,"Minimum Acceptable"),o.qZA(),o.TgZ(30,"div",6),o._uU(31),o.ALo(32,"number"),o.qZA(),o.qZA(),o.TgZ(33,"div",11),o.TgZ(34,"h4",5),o._uU(35,"Maximum Acceptable"),o.qZA(),o.TgZ(36,"div",6),o._uU(37),o.ALo(38,"number"),o.qZA(),o.qZA(),o.TgZ(39,"div",12),o.TgZ(40,"h4",5),o._uU(41,"HTLC Resolution"),o.qZA(),o.TgZ(42,"div",6),o._uU(43),o.ALo(44,"number"),o.qZA(),o.qZA(),o.TgZ(45,"div",13),o.TgZ(46,"h4",5),o._uU(47,"Penalty"),o.qZA(),o.TgZ(48,"div",6),o._uU(49),o.ALo(50,"number"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(6),o.Oqu(o.lcZ(7,8,null==t.perkbw?null:t.perkbw.opening)),o.xp6(6),o.Oqu(o.lcZ(13,10,null==t.perkbw?null:t.perkbw.mutual_close)),o.xp6(6),o.Oqu(o.lcZ(19,12,null==t.perkbw?null:t.perkbw.unilateral_close)),o.xp6(6),o.Oqu(o.lcZ(25,14,null==t.perkbw?null:t.perkbw.delayed_to_us)),o.xp6(7),o.Oqu(o.lcZ(32,16,null==t.perkbw?null:t.perkbw.min_acceptable)),o.xp6(6),o.Oqu(o.lcZ(38,18,null==t.perkbw?null:t.perkbw.max_acceptable)),o.xp6(6),o.Oqu(o.lcZ(44,20,null==t.perkbw?null:t.perkbw.htlc_resolution)),o.xp6(6),o.Oqu(o.lcZ(50,22,null==t.perkbw?null:t.perkbw.penalty))}}function ni(t,e){if(1&t&&(o.TgZ(0,"div",14),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let ai=(()=>{class t{constructor(){this.perkbw={}}ngAfterContentChecked(){this.feeRateStyle===ti.KB?this.perkbw=this.feeRates.perkb:this.feeRateStyle===ti.KW&&(this.perkbw=this.feeRates.perkw)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-fee-rates"]],inputs:{feeRateStyle:"feeRateStyle",feeRates:"feeRates",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","stretch","class","h-100",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","stretch",1,"h-100"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["matTooltip","Default feerate for fundchannel and withdraw","matTooltipPosition","below"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["matTooltip","Feerate to aim for in cooperative shutdown. Note that since mutual close is a negotiation, the actual feerate used in mutual close will be somewhere between this and the corresponding mutual close feerate of the peer","matTooltipPosition","below"],["matTooltip","Feerate for commitment_transaction in a live channel which we originally funded","matTooltipPosition","below"],["matTooltip","Feerate for returning unilateral close funds to our wallet","matTooltipPosition","below"],["matTooltip","The smallest feerate that you can use, usually the minimum relayed feerate of the backend","matTooltipPosition","below"],["matTooltip","The largest feerate we will accept from remote negotiations. If a peer attempts to set the feerate higher than this we will unilaterally close the channel (or simply forget it if it's not open yet)","matTooltipPosition","below"],["matTooltip","Feerate for returning unilateral close HTLC outputs to our wallet","matTooltipPosition","below"],["matTooltip","Feerate to start at when penalizing a cheat attempt","matTooltipPosition","below"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,ei,51,24,"div",0),o.YNc(1,ni,3,1,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.yH,l.Wh,M.gM],pipes:[a.JJ],styles:[".fee-rate-list[_ngcontent-%COMP%] .mat-list-item[_ngcontent-%COMP%]{height:44px}"]}),t})();function si(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o.TgZ(2,"div",4),o.TgZ(3,"h4",5),o._uU(4,"Opening Channel"),o.qZA(),o.TgZ(5,"div",6),o._uU(6),o.ALo(7,"number"),o.qZA(),o.qZA(),o.TgZ(8,"div",7),o.TgZ(9,"h4",5),o._uU(10,"Mutual Close"),o.qZA(),o.TgZ(11,"div",6),o._uU(12),o.ALo(13,"number"),o.qZA(),o.qZA(),o.TgZ(14,"div",8),o.TgZ(15,"h4",5),o._uU(16,"Unilateral Close"),o.qZA(),o.TgZ(17,"div",6),o._uU(18),o.ALo(19,"number"),o.qZA(),o.qZA(),o.TgZ(20,"div",9),o._UZ(21,"h4",5),o._UZ(22,"div",6),o.qZA(),o.qZA(),o.TgZ(23,"div",3),o.TgZ(24,"div",10),o.TgZ(25,"h4",5),o._uU(26,"HTLC Timeout"),o.qZA(),o.TgZ(27,"div",6),o._uU(28),o.ALo(29,"number"),o.qZA(),o.qZA(),o.TgZ(30,"div",11),o.TgZ(31,"h4",5),o._uU(32,"HTLC Success"),o.qZA(),o.TgZ(33,"div",6),o._uU(34),o.ALo(35,"number"),o.qZA(),o.qZA(),o.TgZ(36,"div",9),o._UZ(37,"h4",5),o._UZ(38,"div",6),o.qZA(),o.TgZ(39,"div",9),o._UZ(40,"h4",5),o._UZ(41,"div",6),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(6),o.Oqu(o.lcZ(7,5,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.opening_channel_satoshis)),o.xp6(6),o.Oqu(o.lcZ(13,7,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.mutual_close_satoshis)),o.xp6(6),o.Oqu(o.lcZ(19,9,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.unilateral_close_satoshis)),o.xp6(10),o.Oqu(o.lcZ(29,11,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.htlc_timeout_satoshis)),o.xp6(6),o.Oqu(o.lcZ(35,13,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.htlc_success_satoshis))}}function ii(t,e){if(1&t&&(o.TgZ(0,"div",12),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let oi=(()=>{class t{constructor(){}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-onchain-fee-estimates"]],inputs:{feeRates:"feeRates",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","stretch","class","h-100",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","stretch",1,"h-100"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["matTooltip","Estimated cost of typical channel open","matTooltipPosition","below"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["matTooltip","Estimated cost of typical channel close","matTooltipPosition","below"],["matTooltip","Estimated cost of typical unilateral close (without HTLCs)","matTooltipPosition","below"],["fxFlex","12"],["matTooltip","Estimated cost of typical HTLC timeout transaction","matTooltipPosition","below"],["matTooltip","Estimated cost of typical HTLC fulfillment transaction","matTooltipPosition","below"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,si,42,15,"div",0),o.YNc(1,ii,3,1,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.yH,l.Wh,M.gM],pipes:[a.JJ],styles:[".fee-rate-list[_ngcontent-%COMP%] .mat-list-item[_ngcontent-%COMP%]{height:44px}"]}),t})();function li(t,e){1&t&&o._UZ(0,"mat-progress-bar",19)}function ri(t,e){if(1&t&&o._UZ(0,"rtl-cl-node-info",20),2&t){const t=o.oxw(3);o.Q6J("information",t.information)("showColorFieldSeparately",!1)}}function ci(t,e){if(1&t&&o._UZ(0,"rtl-cl-channel-status-info",21),2&t){const t=o.oxw(3);o.Q6J("channelsStatus",t.channelsStatus)("errorMessage",t.errorMessages[0]+" "+t.errorMessages[2])}}function ui(t,e){if(1&t&&o._UZ(0,"rtl-cl-fee-info",22),2&t){const t=o.oxw(3);o.Q6J("fees",t.fees)("errorMessage",t.errorMessages[1]+" "+t.errorMessages[3]+" "+t.errorMessages[4])}}function di(t,e){if(1&t&&o._UZ(0,"rtl-cl-fee-rates",23),2&t){const t=o.oxw(3);o.Q6J("feeRates",t.feeRatesPerKB)("feeRateStyle","KB")("errorMessage",t.errorMessages[5])}}function pi(t,e){if(1&t&&o._UZ(0,"rtl-cl-fee-rates",23),2&t){const t=o.oxw(3);o.Q6J("feeRates",t.feeRatesPerKW)("feeRateStyle","KW")("errorMessage",t.errorMessages[6])}}function hi(t,e){if(1&t&&o._UZ(0,"rtl-cl-onchain-fee-estimates",24),2&t){const t=o.oxw(3);o.Q6J("feeRates",t.feeRatesPerKW)("errorMessage",t.errorMessages[5])}}const mi=function(t){return{"dashboard-card-content":!0,"error-border":t}};function gi(t,e){if(1&t&&(o.TgZ(0,"mat-grid-tile",4),o.TgZ(1,"div",5),o.TgZ(2,"div",6),o.TgZ(3,"div",7),o._UZ(4,"fa-icon",8),o.TgZ(5,"span"),o._uU(6),o.qZA(),o.qZA(),o.qZA(),o.TgZ(7,"div",9),o.TgZ(8,"mat-card",10),o.TgZ(9,"mat-card-content",11),o.YNc(10,li,1,0,"mat-progress-bar",12),o.TgZ(11,"div",13),o.YNc(12,ri,1,2,"rtl-cl-node-info",14),o.YNc(13,ci,1,2,"rtl-cl-channel-status-info",15),o.YNc(14,ui,1,2,"rtl-cl-fee-info",16),o.YNc(15,di,1,3,"rtl-cl-fee-rates",17),o.YNc(16,pi,1,3,"rtl-cl-fee-rates",17),o.YNc(17,hi,1,2,"rtl-cl-onchain-fee-estimates",18),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("colspan",t.cols)("rowspan",t.rows),o.xp6(4),o.Q6J("icon",t.icon),o.xp6(2),o.Oqu(t.title),o.xp6(3),o.Q6J("ngClass",o.VKq(13,mi,"node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||"status"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.ERROR)||"fee"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.GetForwardingHistory.status)===n.apiCallStatusEnum.ERROR)||"feeRatesKB"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkb.status)===n.apiCallStatusEnum.ERROR||"feeRatesKW"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkw.status)===n.apiCallStatusEnum.ERROR||"onChainFeeEstimates"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkw.status)===n.apiCallStatusEnum.ERROR)),o.xp6(1),o.Q6J("ngIf","node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||"status"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.INITIATED)||"fee"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.GetForwardingHistory.status)===n.apiCallStatusEnum.INITIATED)||"feeRatesKB"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkb.status)===n.apiCallStatusEnum.INITIATED||"feeRatesKW"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkw.status)===n.apiCallStatusEnum.INITIATED||"onChainFeeEstimates"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkw.status)===n.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngSwitch",t.id),o.xp6(1),o.Q6J("ngSwitchCase","node"),o.xp6(1),o.Q6J("ngSwitchCase","status"),o.xp6(1),o.Q6J("ngSwitchCase","fee"),o.xp6(1),o.Q6J("ngSwitchCase","feeRatesKB"),o.xp6(1),o.Q6J("ngSwitchCase","feeRatesKW"),o.xp6(1),o.Q6J("ngSwitchCase","onChainFeeEstimates")}}function fi(t,e){if(1&t&&(o.TgZ(0,"mat-grid-list",2),o.YNc(1,gi,18,15,"mat-grid-tile",3),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngForOf",t.nodeCardsOperator)}}function xi(t,e){1&t&&o._UZ(0,"mat-progress-bar",19)}function Zi(t,e){if(1&t&&o._UZ(0,"rtl-cl-node-info",20),2&t){const t=o.oxw(3);o.Q6J("information",t.information)("showColorFieldSeparately",!1)}}function yi(t,e){if(1&t&&o._UZ(0,"rtl-cl-channel-status-info",21),2&t){const t=o.oxw(3);o.Q6J("channelsStatus",t.channelsStatus)("errorMessage",t.errorMessages[0]+" "+t.errorMessages[2])}}function Ai(t,e){if(1&t&&o._UZ(0,"rtl-cl-fee-info",22),2&t){const t=o.oxw(3);o.Q6J("fees",t.fees)("errorMessage",t.errorMessages[1]+" "+t.errorMessages[3]+" "+t.errorMessages[4])}}function Ti(t,e){if(1&t&&o._UZ(0,"rtl-cl-fee-rates",23),2&t){const t=o.oxw(3);o.Q6J("feeRates",t.feeRatesPerKB)("feeRateStyle","KB")("errorMessage",t.errorMessages[5])}}function Ci(t,e){if(1&t&&o._UZ(0,"rtl-cl-fee-rates",23),2&t){const t=o.oxw(3);o.Q6J("feeRates",t.feeRatesPerKW)("feeRateStyle","KW")("errorMessage",t.errorMessages[5])}}function wi(t,e){if(1&t&&o._UZ(0,"rtl-cl-onchain-fee-estimates",24),2&t){const t=o.oxw(3);o.Q6J("feeRates",t.feeRatesPerKW)("errorMessage",t.errorMessages[5])}}function vi(t,e){if(1&t&&(o.TgZ(0,"mat-grid-tile",4),o.TgZ(1,"div",5),o.TgZ(2,"div",6),o.TgZ(3,"div",25),o._UZ(4,"fa-icon",8),o.TgZ(5,"span"),o._uU(6),o.qZA(),o.qZA(),o.qZA(),o.TgZ(7,"div",9),o.TgZ(8,"mat-card",10),o.TgZ(9,"mat-card-content",11),o.YNc(10,xi,1,0,"mat-progress-bar",12),o.TgZ(11,"div",13),o.YNc(12,Zi,1,2,"rtl-cl-node-info",14),o.YNc(13,yi,1,2,"rtl-cl-channel-status-info",15),o.YNc(14,Ai,1,2,"rtl-cl-fee-info",16),o.YNc(15,Ti,1,3,"rtl-cl-fee-rates",17),o.YNc(16,Ci,1,3,"rtl-cl-fee-rates",17),o.YNc(17,wi,1,2,"rtl-cl-onchain-fee-estimates",18),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("colspan",t.cols)("rowspan",t.rows),o.xp6(4),o.Q6J("icon",t.icon),o.xp6(2),o.Oqu(t.title),o.xp6(3),o.Q6J("ngClass",o.VKq(13,mi,"node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||"status"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.ERROR)||"fee"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.GetForwardingHistory.status)===n.apiCallStatusEnum.ERROR)||"feeRatesKB"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkb.status)===n.apiCallStatusEnum.ERROR||"feeRatesKW"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkw.status)===n.apiCallStatusEnum.ERROR||"onChainFeeEstimates"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkw.status)===n.apiCallStatusEnum.ERROR)),o.xp6(1),o.Q6J("ngIf","node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||"status"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchLocalRemoteBalance.status)===n.apiCallStatusEnum.INITIATED)||"fee"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.GetForwardingHistory.status)===n.apiCallStatusEnum.INITIATED)||"feeRatesKB"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkb.status)===n.apiCallStatusEnum.INITIATED||"feeRatesKW"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkw.status)===n.apiCallStatusEnum.INITIATED||"onChainFeeEstimates"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFeeRatesperkw.status)===n.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngSwitch",t.id),o.xp6(1),o.Q6J("ngSwitchCase","node"),o.xp6(1),o.Q6J("ngSwitchCase","status"),o.xp6(1),o.Q6J("ngSwitchCase","fee"),o.xp6(1),o.Q6J("ngSwitchCase","feeRatesKB"),o.xp6(1),o.Q6J("ngSwitchCase","feeRatesKW"),o.xp6(1),o.Q6J("ngSwitchCase","onChainFeeEstimates")}}function Si(t,e){if(1&t&&(o.TgZ(0,"mat-grid-list",2),o.YNc(1,vi,18,15,"mat-grid-tile",3),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngForOf",t.nodeCardsMerchant)}}let bi=(()=>{class t{constructor(t,e,n){this.logger=t,this.commonService=e,this.store=n,this.faBolt=g.BDt,this.faServer=g.xf3,this.faNetworkWired=g.kXW,this.faLink=g.nNP,this.selNode={},this.information={},this.channelsStatus={},this.feeRatesPerKB={},this.feeRatesPerKW={},this.nodeCardsOperator=[],this.nodeCardsMerchant=[],this.screenSize="",this.screenSizeEnum=f.cu,this.userPersonaEnum=f.ol,this.errorMessages=["","","","","","",""],this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.nodeCardsMerchant=[{id:"node",icon:this.faServer,title:"Node Information",cols:6,rows:3},{id:"status",icon:this.faNetworkWired,title:"Channels",cols:6,rows:3},{id:"fee",icon:this.faBolt,title:"Routing Fee",cols:6,rows:1},{id:"feeRatesKB",icon:this.faServer,title:"Fee Rate Per KB",cols:4,rows:4},{id:"feeRatesKW",icon:this.faNetworkWired,title:"Fee Rate Per KW",cols:4,rows:4},{id:"onChainFeeEstimates",icon:this.faLink,title:"Onchain Fee Estimates (Sats)",cols:4,rows:4}],this.nodeCardsOperator=[{id:"feeRatesKB",icon:this.faServer,title:"Fee Rate Per KB",cols:4,rows:4},{id:"feeRatesKW",icon:this.faNetworkWired,title:"Fee Rate Per KW",cols:4,rows:4},{id:"onChainFeeEstimates",icon:this.faLink,title:"Onchain Fee Estimates (Sats)",cols:4,rows:4}]):(this.nodeCardsMerchant=[{id:"node",icon:this.faServer,title:"Node Information",cols:2,rows:3},{id:"status",icon:this.faNetworkWired,title:"Channels",cols:2,rows:3},{id:"fee",icon:this.faBolt,title:"Routing Fee",cols:2,rows:3},{id:"feeRatesKB",icon:this.faServer,title:"Fee Rate Per KB",cols:2,rows:4},{id:"feeRatesKW",icon:this.faNetworkWired,title:"Fee Rate Per KW",cols:2,rows:4},{id:"onChainFeeEstimates",icon:this.faLink,title:"Onchain Fee Estimates (Sats)",cols:2,rows:4}],this.nodeCardsOperator=[{id:"feeRatesKB",icon:this.faServer,title:"Fee Rate Per KB",cols:2,rows:4},{id:"feeRatesKW",icon:this.faNetworkWired,title:"Fee Rate Per KW",cols:2,rows:4},{id:"onChainFeeEstimates",icon:this.faLink,title:"Onchain Fee Estimates (Sats)",cols:2,rows:4}])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.errorMessages=["","","","","","",""],this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchInfo.status===f.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apisCallStatus.FetchInfo.message?JSON.stringify(this.apisCallStatus.FetchInfo.message):this.apisCallStatus.FetchInfo.message),t.apisCallStatus.FetchFees.status===f.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apisCallStatus.FetchFees.message?JSON.stringify(this.apisCallStatus.FetchFees.message):this.apisCallStatus.FetchFees.message),t.apisCallStatus.FetchLocalRemoteBalance.status===f.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apisCallStatus.FetchLocalRemoteBalance.message?JSON.stringify(this.apisCallStatus.FetchLocalRemoteBalance.message):this.apisCallStatus.FetchLocalRemoteBalance.message),t.apisCallStatus.FetchChannels.status===f.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apisCallStatus.FetchChannels.message?JSON.stringify(this.apisCallStatus.FetchChannels.message):this.apisCallStatus.FetchChannels.message),t.apisCallStatus.GetForwardingHistory.status===f.Bn.ERROR&&(this.errorMessages[4]="object"==typeof this.apisCallStatus.GetForwardingHistory.message?JSON.stringify(this.apisCallStatus.GetForwardingHistory.message):this.apisCallStatus.GetForwardingHistory.message),t.apisCallStatus.FetchFeeRatesperkb.status===f.Bn.ERROR&&(this.errorMessages[5]="object"==typeof this.apisCallStatus.FetchFeeRatesperkb.message?JSON.stringify(this.apisCallStatus.FetchFeeRatesperkb.message):this.apisCallStatus.FetchFeeRatesperkb.message),t.apisCallStatus.FetchFeeRatesperkw.status===f.Bn.ERROR&&(this.errorMessages[6]="object"==typeof this.apisCallStatus.FetchFeeRatesperkw.message?JSON.stringify(this.apisCallStatus.FetchFeeRatesperkw.message):this.apisCallStatus.FetchFeeRatesperkw.message),this.selNode=t.nodeSettings,this.information=t.information,this.fees=t.fees,this.fees.totalTxCount=0,t.forwardingHistory&&t.forwardingHistory.length&&(this.fees.totalTxCount=t.forwardingHistory.length),this.channelsStatus={active:{channels:t.information.num_active_channels,capacity:0},inactive:{channels:t.information.num_inactive_channels,capacity:0},pending:{channels:t.information.num_pending_channels,capacity:0}},this.feeRatesPerKB=t.feeRatesPerKB,this.feeRatesPerKW=t.feeRatesPerKW,this.logger.info(t)})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(T.v),o.Y36(y.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-network-info"]],decls:3,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch",1,"mb-4"],["cols","6","rowHeight","100px",4,"ngIf"],["cols","6","rowHeight","100px"],["class","node-grid-tile",3,"colspan","rowspan",4,"ngFor","ngForOf"],[1,"node-grid-tile",3,"colspan","rowspan"],["fxLayout","column","fxLayoutAlign","stretch start","fxFlex","100",1,"h-100"],["fxLayout","row","fxLayoutAlign","start start",1,"w-100"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","pl-2"],[1,"mr-1",3,"icon"],["fxLayout","column","fxLayoutAlign","stretch center","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","center stretch",1,"w-100","h-93"],["fxLayout","row","fxFlex","95","fxLayoutAlign","start stretch",1,"dashboard-card","w-96","h-93"],["fxLayout","column","fxFlex","100",3,"ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["class","h-100",3,"feeRates","feeRateStyle","errorMessage",4,"ngSwitchCase"],["class","h-100",3,"feeRates","errorMessage",4,"ngSwitchCase"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],[1,"h-100",3,"feeRates","feeRateStyle","errorMessage"],[1,"h-100",3,"feeRates","errorMessage"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","pl-15px"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,fi,2,1,"mat-grid-list",1),o.YNc(2,Si,2,1,"mat-grid-list",1),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf",e.selNode.userPersona===e.userPersonaEnum.OPERATOR),o.xp6(1),o.Q6J("ngIf",e.selNode.userPersona===e.userPersonaEnum.MERCHANT))},directives:[l.xw,l.Wh,a.O5,w.Il,a.sg,w.DX,l.yH,C.BN,v.a8,v.dn,a.mk,b.oO,a.RF,a.n9,r.pW,k,K,X,ai,oi],styles:[""]}),t})();function qi(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",8),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().activeLink=e.link}),o._uU(1),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.s9C("routerLink",t.link),o.Q6J("active",n.activeLink===t.link),o.xp6(1),o.Oqu(t.name)}}let _i=(()=>{class t{constructor(t){this.router=t,this.faUserCheck=g.hkK,this.links=[{link:"sign",name:"Sign"},{link:"verify",name:"Verify"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,p.R)(this.unSubs[0]),(0,h.h)(t=>t instanceof s.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-sign-verify-message"]],decls:11,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Sign/Verify Message"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o.TgZ(7,"nav",5),o.YNc(8,qi,2,3,"div",6),o.qZA(),o.TgZ(9,"div",7),o._UZ(10,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("icon",e.faUserCheck),o.xp6(7),o.Q6J("ngForOf",e.links))},directives:[l.xw,l.Wh,C.BN,v.a8,v.dn,dt.BU,a.sg,l.yH,s.lC,dt.Nj,s.rH],styles:[""]}),t})();var Fi=n(7969);function Li(t,e){if(1&t&&(o.TgZ(0,"mat-option",7),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t),o.xp6(1),o.hij(" ",t.addressTp," ")}}let Ui=(()=>{class t{constructor(t,e){this.store=t,this.clEffects=e,this.addressTypes=f._t,this.selectedAddressType=f._t[0],this.newAddress=""}onGenerateAddress(){this.store.dispatch(new x.ER(this.selectedAddressType)),this.clEffects.setNewAddressCL.pipe((0,ce.q)(1)).subscribe(t=>{this.newAddress=t,this.store.dispatch(new Ft.wu({width:"58%",data:{address:this.newAddress,addressType:this.selectedAddressType.addressTp,component:Fi.n}}))})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(y.yh),o.Y36(ue.s))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-on-chain-receive"]],decls:8,vars:2,consts:[["fxLayout","column",1,"padding-gap-x"],["fxLayout","row","fxLayoutAlign","space-between end","fxLayoutAlign.gt-sm","start end"],["fxFlex","48","fxFlex.gt-md","25","fxLayoutAlign","start end",1,"mr-2"],["placeholder","Address Type","name","address_type","tabindex","1",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],[1,"mt-2"],["mat-flat-button","","color","primary","tabindex","2",1,"top-minus-15px",3,"click"],[3,"value"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-form-field",2),o.TgZ(3,"mat-select",3),o.NdJ("ngModelChange",function(t){return e.selectedAddressType=t}),o.YNc(4,Li,2,2,"mat-option",4),o.qZA(),o.qZA(),o.TgZ(5,"div",5),o.TgZ(6,"button",6),o.NdJ("click",function(){return e.onGenerateAddress()}),o._uU(7,"Generate Address"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Q6J("ngModel",e.selectedAddressType),o.xp6(1),o.Q6J("ngForOf",e.addressTypes))},directives:[l.xw,l.Wh,E.KE,l.yH,At.gD,ft.JJ,ft.On,a.sg,q.lW,Ct.ey],styles:[""]}),t})(),Ri=(()=>{class t{constructor(t,e){this.store=t,this.activatedRoute=e,this.sweepAll=!1,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.activatedRoute.data.pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.sweepAll=t.sweepAll})}openSendFundsModal(){this.store.dispatch(new Ft.wu({data:{sweepAll:this.sweepAll,component:La}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(y.yh),o.Y36(s.gz))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-on-chain-send"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayout","row"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"button",2),o.NdJ("click",function(){return e.openSendFundsModal()}),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Oqu(e.sweepAll?"Sweep All":"Send Funds"))},directives:[l.xw,l.yH,l.Wh,q.lW],styles:[""]}),t})();var ki=n(1258),Ni=n(1681),Ii=n(3474),Oi=n(84);const Ei=["form"];function Mi(t,e){if(1&t&&(o.TgZ(0,"mat-option",42),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t),o.xp6(1),o.Oqu(t.alias?t.alias:t.id?t.id:"")}}function Ji(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Peer alias is required."),o.qZA())}function Di(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Peer not found in the list."),o.qZA())}function Yi(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-form-field",1),o.TgZ(1,"input",39),o.NdJ("change",function(){return o.CHM(t),o.oxw().onSelectedPeerChanged()}),o.qZA(),o.TgZ(2,"mat-autocomplete",40,41),o.NdJ("optionSelected",function(){return o.CHM(t),o.oxw().onSelectedPeerChanged()}),o.YNc(4,Mi,2,2,"mat-option",26),o.ALo(5,"async"),o.qZA(),o.YNc(6,Ji,2,0,"mat-error",17),o.YNc(7,Di,2,0,"mat-error",17),o.qZA()}if(2&t){const t=o.MAs(3),e=o.oxw();o.xp6(1),o.Q6J("formControl",e.selectedPeer)("matAutocomplete",t),o.xp6(1),o.Q6J("displayWith",e.displayFn),o.xp6(2),o.Q6J("ngForOf",o.lcZ(5,6,e.filteredPeers)),o.xp6(2),o.Q6J("ngIf",null==e.selectedPeer.errors?null:e.selectedPeer.errors.required),o.xp6(1),o.Q6J("ngIf",null==e.selectedPeer.errors?null:e.selectedPeer.errors.notfound)}}function Qi(t,e){1&t&&o.GkF(0)}function Pi(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function Bi(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.hij("Amount must be less than or equal to ",t.totalBalance,".")}}function Hi(t,e){if(1&t&&(o.TgZ(0,"mat-option",42),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t.feeRateId),o.xp6(1),o.hij(" ",t.feeRateType," ")}}function zi(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Fee Rate is required."),o.qZA())}function Gi(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-form-field",43),o.TgZ(1,"input",44,45),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().customFeeRate=e}),o.qZA(),o.YNc(3,zi,2,0,"mat-error",17),o.qZA()}if(2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngModel",t.customFeeRate)("step",.1)("min",0)("required","customperkb"===t.selFeeRate&&!t.flgMinConf),o.xp6(2),o.Q6J("ngIf","customperkb"===t.selFeeRate&&!t.flgMinConf&&!t.customFeeRate)}}function Vi(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Min Confirmation Blocks is required."),o.qZA())}function Xi(t,e){if(1&t&&(o.TgZ(0,"mat-option",42),o._uU(1),o.ALo(2,"number"),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t),o.xp6(1),o.hij("",o.lcZ(2,2,t.value)," Sats")}}function Wi(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",22),o.TgZ(1,"mat-form-field",46),o.TgZ(2,"mat-select",47),o.NdJ("selectionChange",function(e){return o.CHM(t),o.oxw().onUTXOSelectionChange(e)})("valueChange",function(e){return o.CHM(t),o.oxw().selUTXOs=e}),o.TgZ(3,"mat-select-trigger"),o._uU(4),o.ALo(5,"number"),o.qZA(),o.YNc(6,Xi,3,4,"mat-option",26),o.qZA(),o.qZA(),o.TgZ(7,"mat-slide-toggle",48),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().flgUseAllBalance=e})("change",function(){return o.CHM(t),o.oxw().onUTXOAllBalanceChange()}),o._uU(8," Use selected UTXOs balance "),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(2),o.Q6J("value",t.selUTXOs),o.xp6(2),o.AsE("",o.lcZ(5,6,t.totalSelectedUTXOAmount)," Sats (",t.selUTXOs.length>1?t.selUTXOs.length+" UTXOs":"1 UTXO",")"),o.xp6(2),o.Q6J("ngForOf",t.utxos),o.xp6(1),o.Q6J("ngModel",t.flgUseAllBalance)("disabled",t.selUTXOs.length<1)}}function $i(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.channelConnectionError)}}function Ki(t,e){if(1&t&&(o.TgZ(0,"div",49),o._UZ(1,"fa-icon",50),o.YNc(2,$i,2,1,"span",17),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==t.channelConnectionError)}}function ji(t,e){if(1&t&&(o.TgZ(0,"mat-expansion-panel",52),o.TgZ(1,"mat-expansion-panel-header"),o.TgZ(2,"mat-panel-title"),o.TgZ(3,"span"),o._uU(4,"Peer: \xa0"),o.qZA(),o.TgZ(5,"strong",53),o._uU(6),o.qZA(),o.qZA(),o.qZA(),o.TgZ(7,"div",9),o.TgZ(8,"div",0),o.TgZ(9,"div",1),o.TgZ(10,"h4",54),o._uU(11,"Pubkey"),o.qZA(),o.TgZ(12,"span",55),o._uU(13),o.qZA(),o.qZA(),o.qZA(),o._UZ(14,"mat-divider",56),o.TgZ(15,"div",0),o.TgZ(16,"div",57),o.TgZ(17,"h4",54),o._uU(18,"Address"),o.qZA(),o.TgZ(19,"span",58),o._uU(20),o.qZA(),o.qZA(),o.TgZ(21,"div",57),o.TgZ(22,"h4",54),o._uU(23,"Connected"),o.qZA(),o.TgZ(24,"span",58),o._uU(25),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw(2);o.xp6(6),o.Oqu((null==t.peer?null:t.peer.alias)||(null==t.peer?null:t.peer.id)),o.xp6(7),o.Oqu(t.peer.id),o.xp6(7),o.Oqu(null==t.peer?null:t.peer.netaddr),o.xp6(5),o.Oqu(t.peer.connected?"True":"False")}}function to(t,e){if(1&t&&o.YNc(0,ji,26,4,"mat-expansion-panel",51),2&t){const t=o.oxw();o.Q6J("ngIf",t.peer)}}const eo=function(t,e){return{"mr-6":t,"mr-2":e}};let no=(()=>{class t{constructor(t,e,n,a,s,i){this.dialogRef=t,this.data=e,this.store=n,this.actions=a,this.decimalPipe=s,this.commonService=i,this.selectedPeer=new ft.NI,this.faExclamationTriangle=g.eHv,this.isCompatibleVersion=!1,this.utxos=[],this.selUTXOs=[],this.flgUseAllBalance=!1,this.totalSelectedUTXOAmount=0,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.totalBalance=0,this.fundingAmount=null,this.selectedPubkey="",this.isPrivate=!1,this.feeRateTypes=f.vn,this.selFeeRate="",this.customFeeRate=null,this.flgMinConf=!1,this.minConfValue=null,this.screenSize="",this.screenSizeEnum=f.cu,this.unSubs=[new d.x,new d.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.isCompatibleVersion=this.data.message.isCompatibleVersion,this.information=this.data.message.information,this.totalBalance=this.data.message.balance,this.utxos=this.data.message.utxos,this.alertTitle=this.data.alertTitle,this.peer=this.data.message.peer?this.data.message.peer:null,this.peers=this.data.message.peers&&this.data.message.peers.length?this.data.message.peers:[],this.actions.pipe((0,p.R)(this.unSubs[0]),(0,h.h)(t=>t.type===x.qe||t.type===x.GL)).subscribe(t=>{t.type===x.qe&&t.payload.status===f.Bn.ERROR&&"SaveNewChannel"===t.payload.action&&(this.channelConnectionError=t.payload.message),t.type===x.GL&&this.dialogRef.close()});let t="",e="";this.sortedPeers=this.peers.sort((n,a)=>(t=n.alias?n.alias.toLowerCase():n.id?n.id.toLowerCase():"",e=a.alias?a.alias.toLowerCase():n.id.toLowerCase(),te?1:0)),this.filteredPeers=this.selectedPeer.valueChanges.pipe((0,p.R)(this.unSubs[1]),(0,ki.O)(""),(0,Ni.U)(t=>"string"==typeof t?t:t.alias?t.alias:t.id),(0,Ni.U)(t=>t?this.filterPeers(t):this.sortedPeers.slice()))}filterPeers(t){return this.sortedPeers.filter(e=>0===e.alias.toLowerCase().indexOf(t?t.toLowerCase():""))}displayFn(t){return t&&t.alias?t.alias:t&&t.id?t.id:""}onSelectedPeerChanged(){if(this.channelConnectionError="",this.selectedPubkey=this.selectedPeer.value&&this.selectedPeer.value.id?this.selectedPeer.value.id:null,"string"==typeof this.selectedPeer.value){const t=this.peers.filter(t=>t.alias.length===this.selectedPeer.value.length&&0===t.alias.toLowerCase().indexOf(this.selectedPeer.value?this.selectedPeer.value.toLowerCase():""));1===t.length&&t[0].id&&(this.selectedPubkey=t[0].id)}this.selectedPeer.setErrors(this.selectedPeer.value&&!this.selectedPubkey?{notfound:!0}:null)}onClose(){this.dialogRef.close(!1)}resetData(){this.flgMinConf=!1,this.selFeeRate="",this.minConfValue=null,this.selectedPeer.setValue(""),this.fundingAmount=null,this.isPrivate=!1,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.form.resetForm()}onAdvancedPanelToggle(t){t&&(this.flgMinConf||this.selFeeRate||this.selUTXOs.length&&0!==this.selUTXOs.length)?(this.advancedTitle="Advanced Options",this.flgMinConf&&(this.advancedTitle=this.advancedTitle+" | Min Confirmation Blocks: "+this.minConfValue),this.selFeeRate&&(this.advancedTitle=this.advancedTitle+" | Fee Rate: "+(this.customFeeRate?this.customFeeRate+" (Sats/vB)":this.feeRateTypes.find(t=>t.feeRateId===this.selFeeRate).feeRateType)),this.selUTXOs.length&&this.selUTXOs.length>0&&(this.advancedTitle=this.advancedTitle+" | Total Selected: "+this.selUTXOs.length+" | Selected UTXOs: "+this.decimalPipe.transform(this.totalSelectedUTXOAmount)+" Sats")):this.advancedTitle="Advanced Options"}onUTXOSelectionChange(t){const e={value:0};this.selUTXOs.length&&this.selUTXOs.length>0?(this.totalSelectedUTXOAmount=this.selUTXOs.reduce((t,n)=>(e.value=t.value+n.value,e)).value,this.flgUseAllBalance&&this.onUTXOAllBalanceChange()):(this.totalSelectedUTXOAmount=0,this.fundingAmount=null,this.flgUseAllBalance=!1)}onUTXOAllBalanceChange(){this.fundingAmount=this.flgUseAllBalance?this.totalSelectedUTXOAmount:null}onOpenChannel(){if(!this.peer&&!this.selectedPubkey||!this.fundingAmount||this.totalBalance-this.fundingAmount<0||this.flgMinConf&&!this.minConfValue||"customperkb"===this.selFeeRate&&!this.flgMinConf&&!this.customFeeRate)return!0;const t={peerId:this.peer&&this.peer.id?this.peer.id:this.selectedPubkey,satoshis:this.flgUseAllBalance?"all":this.fundingAmount.toString(),announce:!this.isPrivate,minconf:this.flgMinConf?this.minConfValue:null};t.feeRate="customperkb"===this.selFeeRate&&!this.flgMinConf&&this.customFeeRate?1e3*this.customFeeRate+"perkb":this.selFeeRate,this.selUTXOs.length&&this.selUTXOs.length>0&&(t.utxos=[],this.selUTXOs.forEach(e=>t.utxos.push(e.txid+":"+e.output))),this.store.dispatch(new x.nb(t))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(gt.so),o.Y36(gt.WI),o.Y36(y.yh),o.Y36(A.eX),o.Y36(a.JJ),o.Y36(T.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-open-channel"]],viewQuery:function(t,e){if(1&t&&o.Gf(Ei,7),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first)}},decls:56,vars:34,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column",3,"submit","reset"],["form","ngForm"],["fxLayout","column"],["fxFlex","100",4,"ngIf"],[4,"ngTemplateOutlet"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","70","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","1","required","","name","amount",3,"ngModel","step","min","max","disabled","ngModelChange"],["amount","ngModel"],["matSuffix",""],[4,"ngIf"],["fxFlex","25","fxLayoutAlign","start center"],["tabindex","2","color","primary","name","isPrivate",3,"ngModel","ngModelChange"],["expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayoutAlign.gt-sm","space-between center","fxLayout.gt-sm","row wrap"],["fxFlex","48","fxLayoutAlign","space-between end"],["fxLayoutAlign","start center",3,"fxFlex"],["tabindex","4","placeholder","Fee Rate",3,"value","disabled","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","48","fxLayoutAlign","end center",4,"ngIf"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["fxFlex","2","tabindex","5","color","primary","name","flgMinConf","fxLayoutAlign","stretch start",3,"ngModel","ngClass","ngModelChange","change"],["fxFlex","98"],["matInput","","placeholder","Min Confirmation Blocks","type","number","name","blocks","tabindex","8",3,"ngModel","step","min","required","disabled","ngModelChange"],["blocks","ngModel"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayoutAlign.gt-sm","space-between center","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["autoFocus","","mat-flat-button","","color","primary","type","submit","tabindex","9"],["peerDetailsExpansionBlock",""],["type","text","placeholder","Peer Alias","aria-label","Peers","matInput","","tabindex","1","required","",3,"formControl","matAutocomplete","change"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],[3,"value"],["fxFlex","48","fxLayoutAlign","end center"],["matInput","","placeholder","Fee Rate (Sats/vB)","type","number","name","custFeeRate","tabindex","4",3,"ngModel","step","min","required","ngModelChange"],["custFeeRate","ngModel"],["fxFlex","48","fxLayoutAlign","start end"],["tabindex","6","placeholder","Coin Selection","multiple","",3,"value","selectionChange","valueChange"],["fxFlex","48","tabindex","7","color","primary","name","flgUseAllBalance","matTooltip","Use selected UTXOs balance as the amount to be sent. Final amount sent will be less the mining fee.","matTooltipPosition","above",3,"ngModel","disabled","ngModelChange","change"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["class","flat-expansion-panel my-1","expanded","false",4,"ngIf"],["expanded","false",1,"flat-expansion-panel","my-1"],[1,"font-weight-900"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"],["fxFlex","50"],[1,"overflow-wrap","foreground-secondary-text"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return e.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.NdJ("submit",function(){return e.onOpenChannel()})("reset",function(){return e.resetData()}),o.TgZ(11,"div",9),o.YNc(12,Yi,8,8,"mat-form-field",10),o.qZA(),o.YNc(13,Qi,1,0,"ng-container",11),o.TgZ(14,"div",9),o.TgZ(15,"div",12),o.TgZ(16,"mat-form-field",13),o.TgZ(17,"input",14,15),o.NdJ("ngModelChange",function(t){return e.fundingAmount=t}),o.qZA(),o.TgZ(19,"mat-hint"),o._uU(20),o.ALo(21,"number"),o.qZA(),o.TgZ(22,"span",16),o._uU(23," Sats "),o.qZA(),o.YNc(24,Pi,2,0,"mat-error",17),o.YNc(25,Bi,2,1,"mat-error",17),o.qZA(),o.TgZ(26,"div",18),o.TgZ(27,"mat-slide-toggle",19),o.NdJ("ngModelChange",function(t){return e.isPrivate=t}),o._uU(28,"Private Channel"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(29,"mat-expansion-panel",20),o.NdJ("closed",function(){return e.onAdvancedPanelToggle(!0)})("opened",function(){return e.onAdvancedPanelToggle(!1)}),o.TgZ(30,"mat-expansion-panel-header"),o.TgZ(31,"mat-panel-title"),o.TgZ(32,"span"),o._uU(33),o.qZA(),o.qZA(),o.qZA(),o.TgZ(34,"div",21),o.TgZ(35,"div",22),o.TgZ(36,"div",23),o.TgZ(37,"mat-form-field",24),o.TgZ(38,"mat-select",25),o.NdJ("valueChange",function(t){return e.selFeeRate=t})("selectionChange",function(){return e.customFeeRate=null}),o.YNc(39,Hi,2,2,"mat-option",26),o.qZA(),o.qZA(),o.YNc(40,Gi,4,5,"mat-form-field",27),o.qZA(),o.TgZ(41,"div",28),o.TgZ(42,"mat-checkbox",29),o.NdJ("ngModelChange",function(t){return e.flgMinConf=t})("change",function(){return e.flgMinConf?e.selFeeRate=null:e.minConfValue=null}),o.qZA(),o.TgZ(43,"mat-form-field",30),o.TgZ(44,"input",31,32),o.NdJ("ngModelChange",function(t){return e.minConfValue=t}),o.qZA(),o.YNc(46,Vi,2,0,"mat-error",17),o.qZA(),o.qZA(),o.qZA(),o.YNc(47,Wi,9,8,"div",33),o.qZA(),o.qZA(),o.qZA(),o.YNc(48,Ki,3,2,"div",34),o.TgZ(49,"div",35),o.TgZ(50,"button",36),o._uU(51,"Clear Fields"),o.qZA(),o.TgZ(52,"button",37),o._uU(53,"Open Channel"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(54,to,1,1,"ng-template",null,38,o.W1O)),2&t){const t=o.MAs(18),n=o.MAs(55);o.xp6(5),o.Oqu(e.alertTitle),o.xp6(7),o.Q6J("ngIf",!e.peer&&e.peers&&e.peers.length>0),o.xp6(1),o.Q6J("ngTemplateOutlet",n),o.xp6(4),o.Q6J("ngModel",e.fundingAmount)("step",1e3)("min",1)("max",e.totalBalance)("disabled",e.flgUseAllBalance),o.xp6(3),o.AsE("Remaining Bal: ",o.lcZ(21,29,e.totalBalance-(e.fundingAmount?e.fundingAmount:0)),"",e.flgUseAllBalance?". Amount replaced by UTXO balance":"",""),o.xp6(4),o.Q6J("ngIf",(null==t.errors?null:t.errors.required)||!e.fundingAmount),o.xp6(1),o.Q6J("ngIf",null==t.errors?null:t.errors.max),o.xp6(2),o.Q6J("ngModel",e.isPrivate),o.xp6(6),o.Oqu(e.advancedTitle),o.xp6(4),o.Q6J("fxFlex","customperkb"!==e.selFeeRate||e.flgMinConf?"100":"48"),o.xp6(1),o.Q6J("value",e.selFeeRate)("disabled",e.flgMinConf),o.xp6(1),o.Q6J("ngForOf",e.feeRateTypes),o.xp6(1),o.Q6J("ngIf","customperkb"===e.selFeeRate&&!e.flgMinConf),o.xp6(2),o.Q6J("ngModel",e.flgMinConf)("ngClass",o.WLB(31,eo,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM,e.screenSize===e.screenSizeEnum.MD||e.screenSize===e.screenSizeEnum.LG||e.screenSize===e.screenSizeEnum.XL)),o.xp6(2),o.Q6J("ngModel",e.minConfValue)("step",1)("min",0)("required",e.flgMinConf)("disabled",!e.flgMinConf),o.xp6(2),o.Q6J("ngIf",e.flgMinConf&&!e.minConfValue),o.xp6(1),o.Q6J("ngIf",e.isCompatibleVersion),o.xp6(1),o.Q6J("ngIf",""!==e.channelConnectionError)}},directives:[l.xw,l.yH,v.dk,l.Wh,q.lW,v.dn,ft._Y,ft.JL,ft.F,a.O5,a.tP,E.KE,xt.Nt,ft.wV,ft.qQ,ft.Fd,ft.Fj,yt.q,Ii.F,ft.Q7,ft.JJ,ft.On,E.bx,E.R9,Tt.Rr,na.ib,na.yz,na.yK,At.gD,a.sg,ea.oG,a.mk,b.oO,Zt.h,Oi.ZL,ft.oH,Oi.XC,Ct.ey,E.TO,At.$L,M.gM,C.BN,J.d],pipes:[a.JJ,a.Ov],styles:[".open-inputs-box[_ngcontent-%COMP%]{padding:1.2rem 2.4rem .8rem!important}"]}),t})();function ao(t,e){if(1&t&&(o.TgZ(0,"span",7),o._uU(1,"Open"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.openChannels)}}function so(t,e){if(1&t&&(o.TgZ(0,"span",7),o._uU(1,"Pending/Inactive"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.pendingChannels)}}let io=(()=>{class t{constructor(t,e,n,a){this.logger=t,this.store=e,this.commonService=n,this.router=a,this.openChannels=0,this.pendingChannels=0,this.selNode={},this.information={},this.peers=[],this.utxos=[],this.totalBalance=0,this.links=[{link:"open",name:"Open"},{link:"pending",name:"Pending/Inactive"}],this.activeLink=0,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.activeLink=this.links.findIndex(t=>t.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,p.R)(this.unSubs[0]),(0,h.h)(t=>t instanceof s.Av)).subscribe(t=>{this.activeLink=this.links.findIndex(e=>e.link===t.urlAfterRedirects.substring(t.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select("cl").pipe((0,p.R)(this.unSubs[1])).subscribe(t=>{t.allChannels&&t.allChannels.length?(this.openChannels=0,this.pendingChannels=0,t.allChannels.forEach(t=>{"CHANNELD_NORMAL"===t.state&&t.connected?this.openChannels++:this.pendingChannels++})):(this.openChannels=0,this.pendingChannels=0),this.selNode=t.nodeSettings,this.information=t.information,this.peers=t.peers,this.utxos=this.commonService.sortAscByKey(t.utxos.filter(t=>"confirmed"===t.status),"value"),this.totalBalance=t.balance.totalBalance,this.logger.info(t)})}onOpenChannel(){const t={peers:this.peers,information:this.information,balance:this.totalBalance,utxos:this.utxos,isCompatibleVersion:this.commonService.isVersionCompatible(this.information.version,"0.9.0")&&this.commonService.isVersionCompatible(this.information.api_version,"0.4.0")};this.store.dispatch(new Ft.wu({data:{alertTitle:"Open Channel",message:t,component:no}}))}onSelectedTabChange(t){this.router.navigateByUrl("/cl/connections/channels/"+this.links[t.index].link)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(T.v),o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-channels-tables"]],decls:12,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100",1,"my-2","bordered-box"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"button",2),o.NdJ("click",function(){return e.onOpenChannel()}),o._uU(3,"Open Channel"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-tab-group",4),o.NdJ("selectedIndexChange",function(t){return e.activeLink=t})("selectedTabChange",function(t){return e.onSelectedTabChange(t)}),o.TgZ(6,"mat-tab"),o.YNc(7,ao,2,1,"ng-template",5),o.qZA(),o.TgZ(8,"mat-tab"),o.YNc(9,so,2,1,"ng-template",5),o.qZA(),o.qZA(),o.TgZ(10,"div",6),o._UZ(11,"router-outlet"),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(5),o.Q6J("selectedIndex",e.activeLink))},directives:[l.xw,l.yH,l.Wh,q.lW,dt.SP,dt.uX,dt.uD,s.lC,rs.k],styles:[""]}),t})();function oo(t,e){if(1&t&&(o.TgZ(0,"div"),o.TgZ(1,"div",9),o.TgZ(2,"div",1),o.TgZ(3,"h4",11),o._uU(4,"Funding Transaction Id"),o.qZA(),o.TgZ(5,"span",12),o._uU(6),o.qZA(),o.qZA(),o.qZA(),o._UZ(7,"mat-divider",13),o.qZA()),2&t){const t=o.oxw();o.xp6(6),o.Oqu(t.channel.funding_txid),o.xp6(1),o.Q6J("inset",!0)}}function lo(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Show Advanced"),o.qZA())}function ro(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Hide Advanced"),o.qZA())}function co(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",23),o.NdJ("copied",function(e){return o.CHM(t),o.oxw().onCopyChanID(e)}),o._uU(1,"Copy Short Channel ID"),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("payload",t.channel.short_channel_id)}}function uo(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",24),o.NdJ("click",function(){return o.CHM(t),o.oxw().onClose()}),o._uU(1,"OK"),o.qZA()}}const po=function(t){return{"xs-scroll-y":t}},ho=function(t,e){return{"mt-2":t,"mt-1":e}};let mo=(()=>{class t{constructor(t,e,n,a,s){this.dialogRef=t,this.data=e,this.logger=n,this.commonService=a,this.snackBar=s,this.faReceipt=g.dLy,this.showAdvanced=!1,this.showCopy=!0,this.showCopyField=null,this.screenSize="",this.screenSizeEnum=f.cu}ngOnInit(){this.channel=this.data.channel,this.showCopy=this.data.showCopy,this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyChanID(t){this.snackBar.open("Short channel ID "+t+" copied."),this.logger.info("Copied Text: "+t)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(gt.so),o.Y36(gt.WI),o.Y36(Z.mQ),o.Y36(T.v),o.Y36(ta.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-channel-information"]],decls:94,vars:40,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"my-1",3,"inset"],["fxFlex","25"],[1,"overflow-wrap","foreground-secondary-text"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","100",3,"ngClass"],["mat-stroked-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o._UZ(4,"fa-icon",4),o.TgZ(5,"span",5),o._uU(6,"Channel Information"),o.qZA(),o.qZA(),o.TgZ(7,"button",6),o.NdJ("click",function(){return e.onClose()}),o._uU(8,"X"),o.qZA(),o.qZA(),o.TgZ(9,"mat-card-content",7),o.TgZ(10,"div",8),o.TgZ(11,"div",9),o.TgZ(12,"div",10),o.TgZ(13,"h4",11),o._uU(14,"Short Channel ID"),o.qZA(),o.TgZ(15,"span",12),o._uU(16),o.qZA(),o.qZA(),o.TgZ(17,"div",10),o.TgZ(18,"h4",11),o._uU(19,"Peer Alias"),o.qZA(),o.TgZ(20,"span",12),o._uU(21),o.qZA(),o.qZA(),o.qZA(),o._UZ(22,"mat-divider",13),o.TgZ(23,"div",9),o.TgZ(24,"div",1),o.TgZ(25,"h4",11),o._uU(26,"Channel ID"),o.qZA(),o.TgZ(27,"span",12),o._uU(28),o.qZA(),o.qZA(),o.qZA(),o._UZ(29,"mat-divider",13),o.TgZ(30,"div",9),o.TgZ(31,"div",1),o.TgZ(32,"h4",11),o._uU(33,"Peer Public Key"),o.qZA(),o.TgZ(34,"span",12),o._uU(35),o.qZA(),o.qZA(),o.qZA(),o._UZ(36,"mat-divider",13),o.TgZ(37,"div",9),o.TgZ(38,"div",14),o.TgZ(39,"h4",11),o._uU(40,"mSatoshi to Us"),o.qZA(),o.TgZ(41,"span",15),o._uU(42),o.ALo(43,"number"),o.qZA(),o.qZA(),o.TgZ(44,"div",14),o.TgZ(45,"h4",11),o._uU(46,"Spendable (mSats)"),o.qZA(),o.TgZ(47,"span",15),o._uU(48),o.ALo(49,"number"),o.qZA(),o.qZA(),o.TgZ(50,"div",14),o.TgZ(51,"h4",11),o._uU(52,"Total (mSats)"),o.qZA(),o.TgZ(53,"span",15),o._uU(54),o.ALo(55,"number"),o.qZA(),o.qZA(),o.TgZ(56,"div",14),o.TgZ(57,"h4",11),o._uU(58,"State"),o.qZA(),o.TgZ(59,"span",15),o._uU(60),o.qZA(),o.qZA(),o.qZA(),o._UZ(61,"mat-divider",13),o.TgZ(62,"div",9),o.TgZ(63,"div",14),o.TgZ(64,"h4",11),o._uU(65,"Our Reserve (Sats)"),o.qZA(),o.TgZ(66,"span",15),o._uU(67),o.ALo(68,"number"),o.qZA(),o.qZA(),o.TgZ(69,"div",14),o.TgZ(70,"h4",11),o._uU(71,"Their Reserve (Sats)"),o.qZA(),o.TgZ(72,"span",15),o._uU(73),o.ALo(74,"number"),o.qZA(),o.qZA(),o.TgZ(75,"div",14),o.TgZ(76,"h4",11),o._uU(77,"Connected"),o.qZA(),o.TgZ(78,"span",15),o._uU(79),o.qZA(),o.qZA(),o.TgZ(80,"div",14),o.TgZ(81,"h4",11),o._uU(82,"Private"),o.qZA(),o.TgZ(83,"span",15),o._uU(84),o.qZA(),o.qZA(),o.qZA(),o._UZ(85,"mat-divider",13),o.YNc(86,oo,8,2,"div",16),o.TgZ(87,"div",17),o.TgZ(88,"button",18),o.NdJ("click",function(){return e.onShowAdvanced()}),o.YNc(89,lo,2,0,"p",19),o.YNc(90,ro,2,0,"ng-template",null,20,o.W1O),o.qZA(),o.YNc(92,co,2,1,"button",21),o.YNc(93,uo,2,0,"button",22),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.MAs(91);o.xp6(4),o.Q6J("icon",e.faReceipt),o.xp6(5),o.Q6J("ngClass",o.VKq(35,po,e.screenSize===e.screenSizeEnum.XS)),o.xp6(7),o.Oqu(e.channel.short_channel_id),o.xp6(5),o.Oqu(e.channel.alias),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(e.channel.channel_id),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(e.channel.id),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.lcZ(43,25,e.channel.msatoshi_to_us)),o.xp6(6),o.Oqu(o.lcZ(49,27,e.channel.spendable_msatoshi)),o.xp6(6),o.Oqu(o.lcZ(55,29,e.channel.msatoshi_total)),o.xp6(6),o.Oqu(e.channel.state),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.lcZ(68,31,e.channel.our_channel_reserve_satoshis)),o.xp6(6),o.Oqu(o.lcZ(74,33,e.channel.their_channel_reserve_satoshis)),o.xp6(6),o.Oqu(e.channel.connected?"Yes":"No"),o.xp6(5),o.Oqu(e.channel.private?"Yes":"No"),o.xp6(1),o.Q6J("inset",!0),o.xp6(1),o.Q6J("ngIf",e.showAdvanced),o.xp6(1),o.Q6J("ngClass",o.WLB(37,ho,!e.showAdvanced,e.showAdvanced)),o.xp6(2),o.Q6J("ngIf",!e.showAdvanced)("ngIfElse",t),o.xp6(3),o.Q6J("ngIf",e.showCopy),o.xp6(1),o.Q6J("ngIf",!e.showCopy)}},directives:[l.xw,l.Wh,l.yH,v.dk,C.BN,q.lW,v.dn,a.mk,b.oO,J.d,a.O5,Zt.h,Cs.y],pipes:[a.JJ],styles:[""]}),t})();function go(t,e){1&t&&o._UZ(0,"mat-progress-bar",33)}function fo(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," Short Channel ID "),o.qZA())}function xo(t,e){if(1&t&&(o.TgZ(0,"span",40),o._UZ(1,"fa-icon",41),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("icon",t.faEyeSlash)}}function Zo(t,e){if(1&t&&(o.TgZ(0,"span",42),o._UZ(1,"fa-icon",41),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("icon",t.faEye)}}const yo=function(t){return{"max-width":t}};function Ao(t,e){if(1&t&&(o.TgZ(0,"td",35),o.TgZ(1,"div",36),o.YNc(2,xo,2,1,"span",37),o.YNc(3,Zo,2,1,"span",38),o.TgZ(4,"span",39),o._uU(5),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.xp6(1),o.Q6J("ngStyle",o.VKq(4,yo,n.screenSize===n.screenSizeEnum.XS?"12rem":"22rem")),o.xp6(1),o.Q6J("ngIf",t.private),o.xp6(1),o.Q6J("ngIf",!t.private),o.xp6(2),o.Oqu(null==t?null:t.short_channel_id)}}function To(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," Alias "),o.qZA())}function Co(t,e){if(1&t&&(o.TgZ(0,"td",35),o.TgZ(1,"div",36),o.TgZ(2,"span",39),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.xp6(1),o.Q6J("ngStyle",o.VKq(2,yo,n.screenSize===n.screenSizeEnum.XS?"12rem":"22rem")),o.xp6(2),o.Oqu(null==t?null:t.alias)}}function wo(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," Connected "),o.qZA())}function vo(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null!=t&&t.connected?"Connected":"Disconnected"," ")}}function So(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," Private "),o.qZA())}function bo(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null!=t&&t.private?"Private":"Public"," ")}}function qo(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," State "),o.qZA())}function _o(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.state,"")}}function Fo(t,e){1&t&&(o.TgZ(0,"th",43),o._uU(1," Local Balance (Sats) "),o.qZA())}function Lo(t,e){if(1&t&&(o.TgZ(0,"td",35),o.TgZ(1,"span",44),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,(null==t?null:t.msatoshi_to_us)/1e3,(null==t?null:t.msatoshi_to_us)<1e3?"1.0-4":"1.0-0")," ")}}function Uo(t,e){1&t&&(o.TgZ(0,"th",43),o._uU(1," Remote Balance (Sats) "),o.qZA())}function Ro(t,e){if(1&t&&(o.TgZ(0,"td",35),o.TgZ(1,"span",44),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,(null==t?null:t.msatoshi_to_them)/1e3,(null==t?null:t.msatoshi_to_them)<1e3?"1.0-4":"1.0-0")," ")}}function ko(t,e){1&t&&(o.TgZ(0,"th",43),o._uU(1," Total mSatoshis "),o.qZA())}function No(t,e){if(1&t&&(o.TgZ(0,"td",35),o.TgZ(1,"span",44),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==t?null:t.msatoshi_total)," ")}}function Io(t,e){1&t&&(o.TgZ(0,"th",43),o._uU(1," Spendable Satoshi "),o.qZA())}function Oo(t,e){if(1&t&&(o.TgZ(0,"td",35),o.TgZ(1,"span",44),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==t?null:t.spendable_msatoshi)," ")}}function Eo(t,e){1&t&&(o.TgZ(0,"th",45),o._uU(1,"Balance Score "),o.qZA())}function Mo(t,e){if(1&t&&(o.TgZ(0,"td",46),o.TgZ(1,"div",47),o.TgZ(2,"mat-hint",48),o._uU(3),o.ALo(4,"number"),o.qZA(),o.qZA(),o._UZ(5,"mat-progress-bar",49),o.qZA()),2&t){const t=e.$implicit;o.xp6(3),o.Oqu(o.lcZ(4,2,t.balancedness||0)),o.xp6(2),o.s9C("value",t.msatoshi_to_us&&t.msatoshi_to_us>0?+t.msatoshi_to_us/(+t.msatoshi_to_us+ +t.msatoshi_to_them)*100:0)}}function Jo(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",50),o.TgZ(1,"div",51),o.TgZ(2,"mat-select",52),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",53),o.NdJ("click",function(){return o.CHM(t),o.oxw().onChannelUpdate("all")}),o._uU(5,"Update Fee Policy"),o.qZA(),o.TgZ(6,"mat-option",53),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDownloadCSV()}),o._uU(7,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Do(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",54),o.TgZ(1,"div",55),o.TgZ(2,"mat-select",56),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",53),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onChannelClick(n,e)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",53),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().onViewRemotePolicy(e)}),o._uU(7,"View Remote Fee"),o.qZA(),o.TgZ(8,"mat-option",53),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().onChannelUpdate(e)}),o._uU(9,"Update Fee Policy"),o.qZA(),o.TgZ(10,"mat-option",53),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().onChannelClose(e)}),o._uU(11,"Close Channel"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Yo(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No peers connected. Add a peer in order to open a channel."),o.qZA())}function Qo(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No channel available."),o.qZA())}function Po(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting channels..."),o.qZA())}function Bo(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.errorMessage)}}function Ho(t,e){if(1&t&&(o.TgZ(0,"td",57),o.YNc(1,Yo,2,0,"p",58),o.YNc(2,Qo,2,0,"p",58),o.YNc(3,Po,2,0,"p",58),o.YNc(4,Bo,2,1,"p",58),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",t.numPeers<1&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",t.numPeers>0&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.ERROR)}}const zo=function(t){return{"display-none":t}};function Go(t,e){if(1&t&&o._UZ(0,"tr",59),2&t){const t=o.oxw();o.Q6J("ngClass",o.VKq(1,zo,t.numPeers>0&&(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function Vo(t,e){1&t&&o._UZ(0,"tr",60)}function Xo(t,e){1&t&&o._UZ(0,"tr",61)}const Wo=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},$o=function(){return["no_peer"]};let Ko=(()=>{class t{constructor(t,e,n,a,s){this.logger=t,this.store=e,this.rtlEffects=n,this.clEffects=a,this.commonService=s,this.faEye=g.Mdf,this.faEyeSlash=g.Aq,this.totalBalance=0,this.displayedColumns=[],this.channelsData=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=f.vn,this.selFilter="",this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","msatoshi_to_us","msatoshi_to_them","actions"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["short_channel_id","alias","msatoshi_to_us","msatoshi_to_them","actions"]):(this.flgSticky=!0,this.displayedColumns=["short_channel_id","alias","msatoshi_to_us","msatoshi_to_them","balancedness","actions"])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchChannels.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchChannels.message?JSON.stringify(this.apisCallStatus.FetchChannels.message):this.apisCallStatus.FetchChannels.message),this.information=t.information,this.numPeers=t.peers&&t.peers.length?t.peers.length:0,this.totalBalance=t.balance.totalBalance,this.channelsData=t.allChannels.filter(t=>"CHANNELD_NORMAL"===t.state&&t.connected),this.channelsData.length>0&&this.loadChannelsTable(this.channelsData),this.logger.info(t)})}ngAfterViewInit(){this.channelsData.length>0&&this.loadChannelsTable(this.channelsData)}onViewRemotePolicy(t){this.store.dispatch(new x.IG({uiMessage:f.m6.GET_REMOTE_POLICY,shortChannelID:t.short_channel_id,showError:!0})),this.clEffects.setLookupCL.pipe((0,ce.q)(1)).subscribe(t=>{if(0===t.length)return!1;let e={};e=t[0].source!==this.information.id?t[0]:t[1],this.store.dispatch(new Ft.wu({data:{type:f.n_.INFORMATION,alertTitle:"Remote Channel Policy",message:[[{key:"base_fee_millisatoshi",value:e.base_fee_millisatoshi,title:"Base Fees (mSats)",width:34,type:f.Gi.NUMBER},{key:"fee_per_millionth",value:e.fee_per_millionth,title:"Fee/Millionth",width:33,type:f.Gi.NUMBER},{key:"delay",value:e.delay,title:"Delay",width:33,type:f.Gi.NUMBER}]]}}))})}onChannelUpdate(t){"all"!==t&&"ONCHAIN"===t.state||("all"===t?(this.store.dispatch(new Ft.b_({data:{type:f.n_.CONFIRM,alertTitle:"Update Fee Policy",noBtnText:"Cancel",yesBtnText:"Update All",message:[],titleMessage:"Update fee policy for all channels",flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSats)",inputType:"number",inputValue:1e3,width:48},{placeholder:"Fee Rate (mili mSats)",inputType:"number",inputValue:1,min:1,width:48,hintFunction:this.percentHintFunction}]}})),this.rtlEffects.closeConfirm.pipe((0,p.R)(this.unSubs[1])).subscribe(t=>{t&&this.store.dispatch(new x.k({baseFeeMsat:t[0].inputValue,feeRate:t[1].inputValue,channelId:"all"}))})):(this.myChanPolicy={fee_base_msat:0,fee_rate_milli_msat:0},this.store.dispatch(new x.IG({uiMessage:f.m6.GET_CHAN_POLICY,shortChannelID:t.short_channel_id,showError:!1})),this.clEffects.setLookupCL.pipe((0,ce.q)(1)).subscribe(e=>{this.myChanPolicy=e.length>0&&e[0].source===this.information.id?{fee_base_msat:e[0].base_fee_millisatoshi,fee_rate_milli_msat:e[0].fee_per_millionth}:e.length>1&&e[1].source===this.information.id?{fee_base_msat:e[1].base_fee_millisatoshi,fee_rate_milli_msat:e[1].fee_per_millionth}:{fee_base_msat:0,fee_rate_milli_msat:0},this.logger.info(this.myChanPolicy),this.store.dispatch(new Ft.b_({data:{type:f.n_.CONFIRM,alertTitle:"Update Fee Policy",noBtnText:"Cancel",yesBtnText:"Update",message:[],titleMessage:"Update fee policy for Channel: "+t.channel_id,flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSats)",inputType:"number",inputValue:""===this.myChanPolicy.fee_base_msat?0:this.myChanPolicy.fee_base_msat,width:48},{placeholder:"Fee Rate (mili mSats)",inputType:"number",inputValue:this.myChanPolicy.fee_rate_milli_msat,min:1,width:48,hintFunction:this.percentHintFunction}]}}))}),this.rtlEffects.closeConfirm.pipe((0,p.R)(this.unSubs[2])).subscribe(e=>{e&&this.store.dispatch(new x.k({baseFeeMsat:e[0].inputValue,feeRate:e[1].inputValue,channelId:t.channel_id}))})),this.applyFilter())}percentHintFunction(t){return(t/1e4).toString()+"%"}onChannelClose(t){this.store.dispatch(new Ft.b_({data:{type:f.n_.CONFIRM,alertTitle:"Close Channel",titleMessage:"Closing channel: "+t.channel_id,noBtnText:"Cancel",yesBtnText:"Close Channel"}})),this.rtlEffects.closeConfirm.pipe((0,p.R)(this.unSubs[3])).subscribe(e=>{e&&this.store.dispatch(new x.e8({channelId:t.channel_id,force:!1}))})}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onChannelClick(t,e){this.store.dispatch(new Ft.wu({data:{channel:t,showCopy:!0,component:mo}}))}loadChannelsTable(t){t.sort((t,e)=>t.active===e.active?0:e.active?1:-1),this.channels=new mt.by([...t]),this.channels.filterPredicate=(t,e)=>((t.connected?"connected":"disconnected")+(t.channel_id?t.channel_id.toLowerCase():"")+(t.short_channel_id?t.short_channel_id.toLowerCase():"")+(t.id?t.id.toLowerCase():"")+(t.alias?t.alias.toLowerCase():"")+(t.private?"private":"public")+(t.state?t.state.toLowerCase():"")+(t.funding_txid?t.funding_txid.toLowerCase():"")+(t.msatoshi_to_us?t.msatoshi_to_us:"")+(t.msatoshi_total?t.msatoshi_total:"")+(t.their_channel_reserve_satoshis?t.their_channel_reserve_satoshis:"")+(t.our_channel_reserve_satoshis?t.our_channel_reserve_satoshis:"")+(t.spendable_msatoshi?t.spendable_msatoshi:"")).includes(e),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.channels.paginator=this.paginator,this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"Open-channels")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(Lt.V),o.Y36(ue.s),o.Y36(T.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-channel-open-table"]],viewQuery:function(t,e){if(1&t&&(o.Gf(ht.YE,5),o.Gf(pt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},features:[o._Bn([{provide:pt.ye,useValue:(0,f.pt)("Channels")}])],decls:48,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["mode","indeterminate",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container","w-100",3,"perfectScrollbar"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","short_channel_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","connected"],["matColumnDef","private"],["matColumnDef","state"],["matColumnDef","msatoshi_to_us"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi_to_them"],["matColumnDef","msatoshi_total"],["matColumnDef","spendable_msatoshi"],["matColumnDef","balancedness"],["mat-header-cell","","mat-sort-header","","class","pl-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pl-1",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],["class","mr-1","matTooltip","Private","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Public","matTooltipPosition","right",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Private","matTooltipPosition","right",1,"mr-1"],[3,"icon"],["matTooltip","Public","matTooltipPosition","right",1,"mr-1"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-3"],["mat-cell","",1,"pl-3"],["fxLayout","row"],["fxFlex","100","fxLayoutAlign","center center",1,"font-size-80"],["mode","determinate",3,"value"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","2",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"div",2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"input",4),o.NdJ("keyup",function(){return e.applyFilter()})("ngModelChange",function(t){return e.selFilter=t}),o.qZA(),o.qZA(),o.qZA(),o.YNc(5,go,1,0,"mat-progress-bar",5),o.TgZ(6,"div",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,fo,2,0,"th",10),o.YNc(11,Ao,6,6,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,To,2,0,"th",10),o.YNc(14,Co,4,4,"td",11),o.BQk(),o.ynx(15,13),o.YNc(16,wo,2,0,"th",10),o.YNc(17,vo,2,1,"td",11),o.BQk(),o.ynx(18,14),o.YNc(19,So,2,0,"th",10),o.YNc(20,bo,2,1,"td",11),o.BQk(),o.ynx(21,15),o.YNc(22,qo,2,0,"th",10),o.YNc(23,_o,2,1,"td",11),o.BQk(),o.ynx(24,16),o.YNc(25,Fo,2,0,"th",17),o.YNc(26,Lo,4,4,"td",11),o.BQk(),o.ynx(27,18),o.YNc(28,Uo,2,0,"th",17),o.YNc(29,Ro,4,4,"td",11),o.BQk(),o.ynx(30,19),o.YNc(31,ko,2,0,"th",17),o.YNc(32,No,4,3,"td",11),o.BQk(),o.ynx(33,20),o.YNc(34,Io,2,0,"th",17),o.YNc(35,Oo,4,3,"td",11),o.BQk(),o.ynx(36,21),o.YNc(37,Eo,2,0,"th",22),o.YNc(38,Mo,6,4,"td",23),o.BQk(),o.ynx(39,24),o.YNc(40,Jo,8,0,"th",25),o.YNc(41,Do,12,0,"td",26),o.BQk(),o.ynx(42,27),o.YNc(43,Ho,5,4,"td",28),o.BQk(),o.YNc(44,Go,1,3,"tr",29),o.YNc(45,Vo,1,0,"tr",30),o.YNc(46,Xo,1,0,"tr",31),o.qZA(),o.qZA(),o._UZ(47,"mat-paginator",32),o.qZA()),2&t&&(o.xp6(4),o.Q6J("ngModel",e.selFilter),o.xp6(1),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(2),o.Q6J("dataSource",e.channels)("ngClass",o.VKq(11,Wo,""!==e.errorMessage)),o.xp6(37),o.Q6J("matFooterRowDef",o.DdM(13,$o)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,E.KE,xt.Nt,ft.Fj,ft.JJ,ft.On,a.O5,D.$V,mt.BZ,ht.YE,a.mk,b.oO,mt.w1,mt.fO,mt.Dz,mt.mD,mt.Ke,mt.as,mt.nj,pt.NW,r.pW,mt.ge,ht.nU,mt.ev,a.PC,b.Zl,M.gM,C.BN,E.bx,At.gD,At.$L,Ct.ey,mt.yh,mt.Q2,mt.XQ,mt.Gk],pipes:[a.JJ],styles:[".mat-column-short_channel_id[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-short_channel_id[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-alias[_ngcontent-%COMP%]{flex:0 0 20%;width:20%}.mat-column-alias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-balancedness[_ngcontent-%COMP%]{padding-left:3rem;flex:0 0 22%;width:22%}.mat-column-msatoshi_to_them[_ngcontent-%COMP%], .mat-column-msatoshi_to_us[_ngcontent-%COMP%], .mat-column-state[_ngcontent-%COMP%]{flex:1 1 15%;width:15%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width:37.5em){.mat-column-msatoshi_to_them[_ngcontent-%COMP%], .mat-column-msatoshi_to_us[_ngcontent-%COMP%], .mat-column-state[_ngcontent-%COMP%]{white-space:unset}}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 100%}@media only screen and (max-width:37.5em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 80%}}"]}),t})();const jo=["outputIdx"];function tl(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Output Index required."),o.qZA())}function el(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Invalid index value."),o.qZA())}function nl(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Fees is required."),o.qZA())}function al(t,e){if(1&t&&(o.TgZ(0,"div",27),o._UZ(1,"fa-icon",13),o.TgZ(2,"span"),o._uU(3),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(2),o.Oqu(t.bumpFeeError)}}let sl=(()=>{class t{constructor(t,e,n,a,s,i){this.actions=t,this.dialogRef=e,this.data=n,this.store=a,this.logger=s,this.snackBar=i,this.newAddress="",this.fees=null,this.outputIndex=null,this.faCopy=g.kZ_,this.faInfoCircle=g.sqG,this.faExclamationTriangle=g.eHv,this.bumpFeeError="",this.unSubs=[new d.x,new d.x]}set payReq(t){t&&(this.outputIdx=t)}ngOnInit(){this.bumpFeeChannel=this.data.channel}onBumpFee(){if(!this.outputIndex&&0!==this.outputIndex||!this.fees)return!0;this.bumpFeeError="",this.store.dispatch(new x.ER(f._t[0])),this.actions.pipe((0,h.h)(t=>t.type===x.Un),(0,ce.q)(1)).subscribe(t=>{this.store.dispatch(new x.uj({address:t.payload,satoshis:"all",feeRate:this.fees,utxos:[this.bumpFeeChannel.funding_txid+":"+this.outputIndex.toString()]}))}),this.actions.pipe((0,h.h)(t=>t.type===x.ob),(0,ce.q)(1)).subscribe(t=>{this.store.dispatch(new Ft.Lw("Successfully bumped the fee. Use the block explorer to verify transaction.")),this.dialogRef.close()}),this.actions.pipe((0,h.h)(t=>t.type===x.qe),(0,p.R)(this.unSubs[0])).subscribe(t=>{t.payload.status!==f.Bn.ERROR||"SetChannelTransaction"!==t.payload.action&&"GenerateNewAddress"!==t.payload.action||(this.logger.error(t.payload.message),this.bumpFeeError=t.payload.message)})}onCopyID(t){this.snackBar.open("Transaction ID copied.")}resetData(){this.bumpFeeError="",this.fees=null,this.outputIndex=null,this.outputIdx.control.setErrors(null)}onClose(){this.dialogRef.close(!1)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(A.eX),o.Y36(gt.so),o.Y36(gt.WI),o.Y36(y.yh),o.Y36(Z.mQ),o.Y36(ta.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-bump-fee"]],viewQuery:function(t,e){if(1&t&&o.Gf(jo,5),2&t){let t;o.iGM(t=o.CRH())&&(e.payReq=t.first)}},decls:47,vars:15,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxLayout","column",1,"bordered-box","mb-1","p-2"],["fxLayoutAlign","start center",1,"pb-1","word-break"],["matSuffix","","rtlClipboard","","matTooltip","Copy transaction ID",1,"ml-1",3,"icon","payload","copied"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column","fxFlex","100"],[1,"pl-1"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","49"],["autoFocus","","matInput","","placeholder","Output Index","type","number","tabindex","1","required","","name","outputIdx",3,"ngModel","step","min","ngModelChange"],["outputIdx","ngModel"],[4,"ngIf"],["matInput","","placeholder","Fees (Sats/vByte)","type","number","name","fees","required","","tabindex","4",3,"ngModel","step","min","ngModelChange"],["fee","ngModel"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","type","reset","tabindex","5","default","",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","6",3,"click"],["fxFlex","100",1,"alert","alert-danger","mt-1"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Bump Fee"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return e.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7),o.TgZ(10,"div",8),o.TgZ(11,"p",9),o._uU(12),o.TgZ(13,"fa-icon",10),o.NdJ("copied",function(t){return e.onCopyID(t)}),o.qZA(),o.qZA(),o.TgZ(14,"div",11),o.TgZ(15,"div",12),o._UZ(16,"fa-icon",13),o.TgZ(17,"span",14),o._uU(18,"Bumping fee on pending open channels is an advanced feature, attempt it only if you are familiar with the functionality of Bitcoin transactions. "),o.TgZ(19,"div"),o._uU(20,"Before attempting fee bump ensure the following:"),o.qZA(),o.TgZ(21,"div",15),o._uU(22,"1: Use a Bitcoin block explorer to ensure that channel opening transaction is not confirmed."),o.qZA(),o.TgZ(23,"div",15),o._uU(24,"2: The channel opening transaction must have a sizable change output, which can be spent further. The fee cannot be bumped without the change output."),o.qZA(),o.TgZ(25,"div",15),o._uU(26,"3: Find the index value of the change output via a block explorer."),o.qZA(),o.TgZ(27,"div",15),o._uU(28,"4: Enter the index value of the change output in the form below and the desired fee rate."),o.qZA(),o.TgZ(29,"div",15),o._uU(30,"5: Upon successful fee bump, use your block explorer to track the child transaction in the mempool, which should be linked with the change output transaction."),o.qZA(),o.qZA(),o.qZA(),o.TgZ(31,"div",16),o.TgZ(32,"mat-form-field",17),o.TgZ(33,"input",18,19),o.NdJ("ngModelChange",function(t){return e.outputIndex=t}),o.qZA(),o.YNc(35,tl,2,0,"mat-error",20),o.YNc(36,el,2,0,"mat-error",20),o.qZA(),o.TgZ(37,"mat-form-field",17),o.TgZ(38,"input",21,22),o.NdJ("ngModelChange",function(t){return e.fees=t}),o.qZA(),o.YNc(40,nl,2,0,"mat-error",20),o.qZA(),o.qZA(),o.YNc(41,al,4,2,"div",23),o.qZA(),o.qZA(),o.TgZ(42,"div",24),o.TgZ(43,"button",25),o.NdJ("click",function(){return e.resetData()}),o._uU(44,"Clear"),o.qZA(),o.TgZ(45,"button",26),o.NdJ("click",function(){return e.onBumpFee()}),o._uU(46),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.MAs(34);o.xp6(12),o.hij("Bump fee for transaction id: ",null==e.bumpFeeChannel?null:e.bumpFeeChannel.funding_txid," "),o.xp6(1),o.Q6J("icon",e.faCopy)("payload",null==e.bumpFeeChannel?null:e.bumpFeeChannel.funding_txid),o.xp6(3),o.Q6J("icon",e.faInfoCircle),o.xp6(17),o.Q6J("ngModel",e.outputIndex)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",null==t.errors?null:t.errors.required),o.xp6(1),o.Q6J("ngIf",null==t.errors?null:t.errors.pendingChannelOutputIndex),o.xp6(2),o.Q6J("ngModel",e.fees)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",!e.fees),o.xp6(1),o.Q6J("ngIf",""!==e.bumpFeeError),o.xp6(5),o.Oqu(""!==e.bumpFeeError?"Retry Bump Fee":"Bump Fee")}},directives:[l.xw,l.yH,v.dk,l.Wh,q.lW,v.dn,ft._Y,ft.JL,ft.F,C.BN,E.R9,Cs.y,M.gM,E.KE,xt.Nt,ft.wV,ft.qQ,ft.Fj,yt.q,Zt.h,ft.Q7,ft.JJ,ft.On,a.O5,E.TO],styles:[""]}),t})();function il(t,e){1&t&&o._UZ(0,"mat-progress-bar",30)}function ol(t,e){1&t&&(o.TgZ(0,"th",31),o._uU(1," Short Channel ID "),o.qZA())}function ll(t,e){if(1&t&&(o.TgZ(0,"td",32),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.short_channel_id,"")}}function rl(t,e){1&t&&(o.TgZ(0,"th",31),o._uU(1," Alias "),o.qZA())}function cl(t,e){if(1&t&&(o.TgZ(0,"td",32),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(null==t?null:t.alias)}}function ul(t,e){1&t&&(o.TgZ(0,"th",31),o._uU(1," Connected "),o.qZA())}function dl(t,e){if(1&t&&(o.TgZ(0,"td",32),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null!=t&&t.connected?"Connected":"Disconnected"," ")}}function pl(t,e){1&t&&(o.TgZ(0,"th",31),o._uU(1," Private "),o.qZA())}function hl(t,e){if(1&t&&(o.TgZ(0,"td",32),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null!=t&&t.private?"Private":"Public"," ")}}function ml(t,e){1&t&&(o.TgZ(0,"th",31),o._uU(1," State "),o.qZA())}const gl=function(t){return{"max-width":t}};function fl(t,e){if(1&t&&(o.TgZ(0,"td",33),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,gl,n.screenSize===n.screenSizeEnum.XS?"10rem":"")),o.xp6(1),o.hij(" ",n.CLChannelPendingState[null==t?null:t.state]," ")}}function xl(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," mSatoshi To Us "),o.qZA())}function Zl(t,e){if(1&t&&(o.TgZ(0,"td",32),o.TgZ(1,"span",35),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==t?null:t.msatoshi_to_us)," ")}}function yl(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," Total (Sats) "),o.qZA())}function Al(t,e){if(1&t&&(o.TgZ(0,"td",32),o.TgZ(1,"span",35),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,(null==t?null:t.msatoshi_total)/1e3)," ")}}function Tl(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," Spendable Satoshi "),o.qZA())}function Cl(t,e){if(1&t&&(o.TgZ(0,"td",32),o.TgZ(1,"span",35),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==t?null:t.spendable_msatoshi)," ")}}function wl(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",36),o.TgZ(1,"div",37),o.TgZ(2,"mat-select",38),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",39),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function vl(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-option",39),o.NdJ("click",function(){o.CHM(t);const e=o.oxw().$implicit;return o.oxw().onChannelClose(e)}),o._uU(1,"Close Channel"),o.qZA()}}function Sl(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-option",39),o.NdJ("click",function(){o.CHM(t);const e=o.oxw().$implicit;return o.oxw().onBumpFee(e)}),o._uU(1,"Bump Fee"),o.qZA()}}function bl(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",40),o.TgZ(1,"div",37),o.TgZ(2,"mat-select",41),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",39),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onChannelClick(n,e)}),o._uU(5,"View Info"),o.qZA(),o.YNc(6,vl,2,0,"mat-option",42),o.YNc(7,Sl,2,0,"mat-option",42),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.xp6(6),o.Q6J("ngIf",n.isCompatibleVersion&&("CHANNELD_SHUTTING_DOWN"===t.state||"CLOSINGD_SIGEXCHANGE"===t.state||!t.connected&&"CHANNELD_NORMAL"===t.state)),o.xp6(1),o.Q6J("ngIf","CHANNELD_AWAITING_LOCKIN"===t.state)}}function ql(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No peers connected. Add a peer in order to open a channel."),o.qZA())}function _l(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No pending/inactive channel available."),o.qZA())}function Fl(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting pending/inactive channels..."),o.qZA())}function Ll(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.errorMessage)}}function Ul(t,e){if(1&t&&(o.TgZ(0,"td",43),o.YNc(1,ql,2,0,"p",44),o.YNc(2,_l,2,0,"p",44),o.YNc(3,Fl,2,0,"p",44),o.YNc(4,Ll,2,1,"p",44),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",t.numPeers<1&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",t.numPeers>0&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.ERROR)}}const Rl=function(t){return{"display-none":t}};function kl(t,e){if(1&t&&o._UZ(0,"tr",45),2&t){const t=o.oxw();o.Q6J("ngClass",o.VKq(1,Rl,t.numPeers>0&&(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function Nl(t,e){1&t&&o._UZ(0,"tr",46)}function Il(t,e){1&t&&o._UZ(0,"tr",47)}const Ol=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},El=function(){return["no_peer"]};let Ml=(()=>{class t{constructor(t,e,n,a){this.logger=t,this.store=e,this.rtlEffects=n,this.commonService=a,this.isCompatibleVersion=!1,this.totalBalance=0,this.displayedColumns=[],this.channelsData=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=f.vn,this.selFilter="",this.flgSticky=!1,this.CLChannelPendingState=f.uX,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","state","actions"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","connected","state","actions"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","connected","state","msatoshi_total","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","connected","state","msatoshi_total","actions"])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchChannels.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchChannels.message?JSON.stringify(this.apisCallStatus.FetchChannels.message):this.apisCallStatus.FetchChannels.message),this.information=t.information,this.information.api_version&&(this.isCompatibleVersion=this.commonService.isVersionCompatible(this.information.api_version,"0.4.2")),this.numPeers=t.peers&&t.peers.length?t.peers.length:0,this.totalBalance=t.balance.totalBalance,this.channelsData=t.allChannels.filter(t=>!("CHANNELD_NORMAL"===t.state&&t.connected)),this.channelsData=this.channelsData.sort((t,e)=>this.CLChannelPendingState[t.state]>=this.CLChannelPendingState[e.state]?1:-1),this.channelsData&&this.channelsData.length>0&&this.loadChannelsTable(this.channelsData),this.logger.info(t)})}ngAfterViewInit(){this.channelsData&&this.channelsData.length>0&&this.loadChannelsTable(this.channelsData)}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onBumpFee(t){this.store.dispatch(new Ft.wu({data:{channel:t,component:sl}}))}onChannelClick(t,e){this.store.dispatch(new Ft.wu({data:{channel:t,showCopy:!0,component:mo}}))}onChannelClose(t){this.store.dispatch(new Ft.b_({data:{type:f.n_.CONFIRM,alertTitle:"Force Close Channel",titleMessage:"Force closing channel: "+t.channel_id,noBtnText:"Cancel",yesBtnText:"Force Close"}})),this.rtlEffects.closeConfirm.pipe((0,p.R)(this.unSubs[3])).subscribe(e=>{e&&this.store.dispatch(new x.e8({channelId:t.channel_id,force:!0}))})}loadChannelsTable(t){t.sort((t,e)=>t.active===e.active?0:e.active?1:-1),this.channels=new mt.by([...t]),this.channels.filterPredicate=(t,e)=>((t.connected?"connected":"disconnected")+(t.channel_id?t.channel_id.toLowerCase():"")+(t.short_channel_id?t.short_channel_id.toLowerCase():"")+(t.id?t.id.toLowerCase():"")+(t.alias?t.alias.toLowerCase():"")+(t.private?"private":"public")+(t.state&&this.CLChannelPendingState[t.state]?this.CLChannelPendingState[t.state].toLowerCase():"")+(t.funding_txid?t.funding_txid.toLowerCase():"")+(t.msatoshi_to_us?t.msatoshi_to_us:"")+(t.msatoshi_total?t.msatoshi_total:"")+(t.their_channel_reserve_satoshis?t.their_channel_reserve_satoshis:"")+(t.our_channel_reserve_satoshis?t.our_channel_reserve_satoshis:"")+(t.spendable_msatoshi?t.spendable_msatoshi:"")).includes(e),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(t,e)=>{switch(e){case"state":return this.CLChannelPendingState[t.state];default:return t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null}},this.channels.paginator=this.paginator,this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"Pending-inactive-channels")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(Lt.V),o.Y36(T.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-channel-pending-table"]],viewQuery:function(t,e){if(1&t&&(o.Gf(ht.YE,5),o.Gf(pt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},features:[o._Bn([{provide:pt.ye,useValue:(0,f.pt)("Channels")}])],decls:42,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["mode","indeterminate",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container","w-100",3,"perfectScrollbar"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","short_channel_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","connected"],["matColumnDef","private"],["matColumnDef","state"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","msatoshi_to_us"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi_total"],["matColumnDef","spendable_msatoshi"],["matColumnDef","actions"],["mat-header-cell","","class","pr-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pr-3",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pr-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pr-3"],["placeholder","Actions","tabindex","4",1,"mr-0"],[3,"click",4,"ngIf"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"div",2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"input",4),o.NdJ("keyup",function(){return e.applyFilter()})("ngModelChange",function(t){return e.selFilter=t}),o.qZA(),o.qZA(),o.qZA(),o.YNc(5,il,1,0,"mat-progress-bar",5),o.TgZ(6,"div",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,ol,2,0,"th",10),o.YNc(11,ll,2,1,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,rl,2,0,"th",10),o.YNc(14,cl,2,1,"td",11),o.BQk(),o.ynx(15,13),o.YNc(16,ul,2,0,"th",10),o.YNc(17,dl,2,1,"td",11),o.BQk(),o.ynx(18,14),o.YNc(19,pl,2,0,"th",10),o.YNc(20,hl,2,1,"td",11),o.BQk(),o.ynx(21,15),o.YNc(22,ml,2,0,"th",10),o.YNc(23,fl,2,4,"td",16),o.BQk(),o.ynx(24,17),o.YNc(25,xl,2,0,"th",18),o.YNc(26,Zl,4,3,"td",11),o.BQk(),o.ynx(27,19),o.YNc(28,yl,2,0,"th",18),o.YNc(29,Al,4,3,"td",11),o.BQk(),o.ynx(30,20),o.YNc(31,Tl,2,0,"th",18),o.YNc(32,Cl,4,3,"td",11),o.BQk(),o.ynx(33,21),o.YNc(34,wl,6,0,"th",22),o.YNc(35,bl,8,2,"td",23),o.BQk(),o.ynx(36,24),o.YNc(37,Ul,5,4,"td",25),o.BQk(),o.YNc(38,kl,1,3,"tr",26),o.YNc(39,Nl,1,0,"tr",27),o.YNc(40,Il,1,0,"tr",28),o.qZA(),o.qZA(),o._UZ(41,"mat-paginator",29),o.qZA()),2&t&&(o.xp6(4),o.Q6J("ngModel",e.selFilter),o.xp6(1),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(2),o.Q6J("dataSource",e.channels)("ngClass",o.VKq(11,Ol,""!==e.errorMessage)),o.xp6(31),o.Q6J("matFooterRowDef",o.DdM(13,El)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,E.KE,xt.Nt,ft.Fj,ft.JJ,ft.On,a.O5,D.$V,mt.BZ,ht.YE,a.mk,b.oO,mt.w1,mt.fO,mt.Dz,mt.mD,mt.Ke,mt.as,mt.nj,pt.NW,r.pW,mt.ge,ht.nU,mt.ev,a.PC,b.Zl,At.gD,At.$L,Ct.ey,mt.yh,mt.Q2,mt.XQ,mt.Gk],pipes:[a.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-state[_ngcontent-%COMP%]{flex:1 1 15%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),t})();const Jl=["peersForm"],Dl=["stepper"];function Yl(t,e){if(1&t&&o._uU(0),2&t){const t=o.oxw();o.Oqu(t.peerFormLabel)}}function Ql(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Address is required."),o.qZA())}function Pl(t,e){if(1&t&&(o.TgZ(0,"div",40),o._UZ(1,"fa-icon",41),o.TgZ(2,"span"),o._uU(3),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(2),o.Oqu(t.peerConnectionError)}}function Bl(t,e){if(1&t&&o._uU(0),2&t){const t=o.oxw();o.Oqu(t.channelFormLabel)}}function Hl(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function zl(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount must be a positive number."),o.qZA())}function Gl(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.hij("Amount must be less than or equal to ",t.totalBalance,".")}}function Vl(t,e){if(1&t&&(o.TgZ(0,"mat-option",42),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t.feeRateId),o.xp6(1),o.hij(" ",t.feeRateType," ")}}function Xl(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Fee Rate is required."),o.qZA())}function Wl(t,e){if(1&t&&(o.TgZ(0,"mat-form-field",43),o._UZ(1,"input",44),o.YNc(2,Xl,2,0,"mat-error",14),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("step",.1)("min",0),o.xp6(1),o.Q6J("ngIf","customperkb"===t.channelFormGroup.controls.selFeeRate.value&&!t.channelFormGroup.controls.flgMinConf.value&&!t.channelFormGroup.controls.customFeeRate.value)}}function $l(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Min Confirmation Blocks is required."),o.qZA())}function Kl(t,e){if(1&t&&(o.TgZ(0,"div",40),o._UZ(1,"fa-icon",41),o.TgZ(2,"span"),o._uU(3),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(2),o.Oqu(t.channelConnectionError)}}const jl=function(t,e){return{"mr-6":t,"mr-2":e}};let tr=(()=>{class t{constructor(t,e,n,a,s,i,o){this.dialogRef=t,this.data=e,this.store=n,this.formBuilder=a,this.actions=s,this.logger=i,this.commonService=o,this.faExclamationTriangle=g.eHv,this.peerAddress="",this.totalBalance=0,this.feeRateTypes=f.vn,this.flgChannelOpened=!1,this.channelOpenStatus=null,this.newlyAddedPeer=null,this.flgEditable=!0,this.peerConnectionError="",this.channelConnectionError="",this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)",this.screenSize="",this.screenSizeEnum=f.cu,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.totalBalance=this.data.message.balance,this.peerAddress=this.data.message.peer&&this.data.message.peer.id&&this.data.message.peer.netaddr?this.data.message.peer.id+"@"+this.data.message.peer.netaddr:this.data.message.peer&&this.data.message.peer.id&&!this.data.message.peer.netaddr?this.data.message.peer.id:"",this.peerFormGroup=this.formBuilder.group({hiddenAddress:["",[ft.kI.required]],peerAddress:[this.peerAddress,[ft.kI.required]]}),this.channelFormGroup=this.formBuilder.group({fundingAmount:["",[ft.kI.required,ft.kI.min(1),ft.kI.max(this.totalBalance)]],isPrivate:[!1],selFeeRate:[null],customFeeRate:[null],flgMinConf:[!1],minConfValue:[{value:null,disabled:!0}],hiddenAmount:["",[ft.kI.required]]}),this.statusFormGroup=this.formBuilder.group({}),this.channelFormGroup.controls.flgMinConf.valueChanges.pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{t?(this.channelFormGroup.controls.selFeeRate.setValue(null),this.channelFormGroup.controls.selFeeRate.disable(),this.channelFormGroup.controls.customFeeRate.setValue(null),this.channelFormGroup.controls.minConfValue.reset(),this.channelFormGroup.controls.minConfValue.enable(),this.channelFormGroup.controls.minConfValue.setValidators([ft.kI.required])):(this.channelFormGroup.controls.selFeeRate.enable(),this.channelFormGroup.controls.minConfValue.setValue(null),this.channelFormGroup.controls.minConfValue.disable(),this.channelFormGroup.controls.minConfValue.setValidators(null))}),this.channelFormGroup.controls.selFeeRate.valueChanges.pipe((0,p.R)(this.unSubs[1])).subscribe(t=>{this.channelFormGroup.controls.customFeeRate.setValue(null),this.channelFormGroup.controls.customFeeRate.reset(),this.channelFormGroup.controls.customFeeRate.setValidators("customperkb"!==t||this.channelFormGroup.controls.flgMinConf.value?null:[ft.kI.required])}),this.actions.pipe((0,p.R)(this.unSubs[2]),(0,h.h)(t=>t.type===x.ab||t.type===x.GL||t.type===x.qe)).subscribe(t=>{t.type===x.ab&&(this.logger.info(t.payload),this.flgEditable=!1,this.newlyAddedPeer=t.payload.peer,this.peerFormGroup.controls.hiddenAddress.setValue(this.peerFormGroup.controls.peerAddress.value),this.stepper.next()),t.type===x.GL&&this.dialogRef.close(),t.type===x.qe&&t.payload.status===f.Bn.ERROR&&("SaveNewPeer"===t.payload.action?this.peerConnectionError=t.payload.message:"SaveNewChannel"===t.payload.action&&(this.channelConnectionError=t.payload.message))})}onConnectPeer(){if(!this.peerFormGroup.controls.peerAddress.value)return!0;this.peerConnectionError="",this.store.dispatch(new x.rF({id:this.peerFormGroup.controls.peerAddress.value}))}onOpenChannel(){if(!this.channelFormGroup.controls.fundingAmount.value||this.totalBalance-this.channelFormGroup.controls.fundingAmount.value<0||this.channelFormGroup.controls.flgMinConf.value&&!this.channelFormGroup.controls.minConfValue.value)return!0;this.channelConnectionError="",this.store.dispatch(new x.nb({peerId:this.newlyAddedPeer.id,satoshis:this.channelFormGroup.controls.fundingAmount.value,announce:!this.channelFormGroup.controls.isPrivate.value,feeRate:"customperkb"===this.channelFormGroup.controls.selFeeRate.value&&!this.channelFormGroup.controls.flgMinConf.value&&this.channelFormGroup.controls.customFeeRate.value?1e3*this.channelFormGroup.controls.customFeeRate.value+"perkb":this.channelFormGroup.controls.selFeeRate.value,minconf:this.channelFormGroup.controls.flgMinConf.value?this.channelFormGroup.controls.minConfValue.value:null}))}onClose(){this.dialogRef.close(!1)}stepSelectionChanged(t){switch(t.selectedIndex){case 0:this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 1:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+(this.newlyAddedPeer.alias?this.newlyAddedPeer.alias:this.newlyAddedPeer.id):"Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 2:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+(this.newlyAddedPeer.alias?this.newlyAddedPeer.alias:this.newlyAddedPeer.id):"Peer Details",this.channelFormLabel=this.channelFormGroup.controls.fundingAmount.value?"Opening Channel for "+this.channelFormGroup.controls.fundingAmount.value+" Sats":"Open Channel (Optional)";break;default:this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)"}t.selectedIndex{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(gt.so),o.Y36(gt.WI),o.Y36(y.yh),o.Y36(ft.qu),o.Y36(A.eX),o.Y36(Z.mQ),o.Y36(T.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-connect-peer"]],viewQuery:function(t,e){if(1&t&&(o.Gf(Jl,5),o.Gf(Dl,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first),o.iGM(t=o.CRH())&&(e.stepper=t.first)}},decls:57,vars:30,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["autoFocus","","matInput","","placeholder","Lightning Address (pubkey OR pubkey@ip:port)","formControlName","peerAddress","tabindex","1","required",""],[4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","button",3,"click"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mb-1",3,"formGroup","ngSubmit"],["matStepLabel","","disabled","true"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row","fxFlex","100","fxLayoutAlign.gt-sm","space-between center"],["fxFlex","60","fxLayoutAlign","start end"],["matInput","","autoFocus","","formControlName","fundingAmount","placeholder","Amount","type","number","tabindex","1","required","",3,"step"],["matSuffix",""],["fxFlex","35","fxLayoutAlign","start center"],["tabindex","2","color","primary","formControlName","isPrivate","name","isPrivate"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap","fxFlex","100","fxLayoutAlign.gt-sm","space-between center"],["fxFlex","48","fxLayoutAlign","space-between end"],["fxLayoutAlign","start center",3,"fxFlex"],["tabindex","4","placeholder","Fee Rate","formControlName","selFeeRate"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","48","fxLayoutAlign","end center",4,"ngIf"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["fxFlex","2","tabindex","5","color","primary","formControlName","flgMinConf","fxLayoutAlign","stretch start",3,"ngClass"],["fxFlex","98"],["matInput","","formControlName","minConfValue","placeholder","Min Confirmation Blocks","type","number","name","blocks","tabindex","8",3,"step","min","required"],["mat-stroked-button","","color","primary","tabindex","8","type","submit"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[3,"value"],["fxFlex","48","fxLayoutAlign","end center"],["matInput","","formControlName","customFeeRate","placeholder","Fee Rate (Sats/vB)","type","number","name","custFeeRate","tabindex","4",3,"step","min"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Connect to a new peer"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return e.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"div",7),o.TgZ(10,"mat-vertical-stepper",8,9),o.NdJ("selectionChange",function(t){return e.stepSelectionChanged(t)}),o.TgZ(12,"mat-step",10),o.TgZ(13,"form",11),o.YNc(14,Yl,1,1,"ng-template",12),o.TgZ(15,"mat-form-field",1),o._UZ(16,"input",13),o.YNc(17,Ql,2,0,"mat-error",14),o.qZA(),o.YNc(18,Pl,4,2,"div",15),o.TgZ(19,"div",16),o.TgZ(20,"button",17),o.NdJ("click",function(){return e.onConnectPeer()}),o._uU(21),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(22,"mat-step",10),o.TgZ(23,"form",18),o.NdJ("ngSubmit",function(){return e.onOpenChannel()}),o.YNc(24,Bl,1,1,"ng-template",19),o.TgZ(25,"div",20),o.TgZ(26,"div",21),o.TgZ(27,"mat-form-field",22),o._UZ(28,"input",23),o.TgZ(29,"mat-hint"),o._uU(30),o.qZA(),o.TgZ(31,"span",24),o._uU(32," Sats "),o.qZA(),o.YNc(33,Hl,2,0,"mat-error",14),o.YNc(34,zl,2,0,"mat-error",14),o.YNc(35,Gl,2,1,"mat-error",14),o.qZA(),o.TgZ(36,"div",25),o.TgZ(37,"mat-slide-toggle",26),o._uU(38,"Private Channel"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(39,"div",27),o.TgZ(40,"div",28),o.TgZ(41,"mat-form-field",29),o.TgZ(42,"mat-select",30),o.YNc(43,Vl,2,2,"mat-option",31),o.qZA(),o.qZA(),o.YNc(44,Wl,3,3,"mat-form-field",32),o.qZA(),o.TgZ(45,"div",33),o._UZ(46,"mat-checkbox",34),o.TgZ(47,"mat-form-field",35),o._UZ(48,"input",36),o.YNc(49,$l,2,0,"mat-error",14),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(50,Kl,4,2,"div",15),o.TgZ(51,"div",16),o.TgZ(52,"button",37),o._uU(53),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(54,"div",38),o.TgZ(55,"button",39),o._uU(56),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(10),o.Q6J("linear",!0),o.xp6(2),o.Q6J("stepControl",e.peerFormGroup)("editable",e.flgEditable),o.xp6(1),o.Q6J("formGroup",e.peerFormGroup),o.xp6(4),o.Q6J("ngIf",null==e.peerFormGroup.controls.peerAddress.errors?null:e.peerFormGroup.controls.peerAddress.errors.required),o.xp6(1),o.Q6J("ngIf",""!==e.peerConnectionError),o.xp6(3),o.Oqu(""!==e.peerConnectionError?"Retry":"Add Peer"),o.xp6(1),o.Q6J("stepControl",e.channelFormGroup)("editable",e.flgEditable),o.xp6(1),o.Q6J("formGroup",e.channelFormGroup),o.xp6(5),o.Q6J("step",1e3),o.xp6(2),o.hij("Remaining Bal: ",e.totalBalance-(e.channelFormGroup.controls.fundingAmount.value?e.channelFormGroup.controls.fundingAmount.value:0),""),o.xp6(3),o.Q6J("ngIf",null==e.channelFormGroup.controls.fundingAmount.errors?null:e.channelFormGroup.controls.fundingAmount.errors.required),o.xp6(1),o.Q6J("ngIf",null==e.channelFormGroup.controls.fundingAmount.errors?null:e.channelFormGroup.controls.fundingAmount.errors.min),o.xp6(1),o.Q6J("ngIf",null==e.channelFormGroup.controls.fundingAmount.errors?null:e.channelFormGroup.controls.fundingAmount.errors.max),o.xp6(6),o.Q6J("fxFlex","customperkb"!==e.channelFormGroup.controls.selFeeRate.value||e.channelFormGroup.controls.flgMinConf.value?"100":"48"),o.xp6(2),o.Q6J("ngForOf",e.feeRateTypes),o.xp6(1),o.Q6J("ngIf","customperkb"===e.channelFormGroup.controls.selFeeRate.value&&!e.channelFormGroup.controls.flgMinConf.value),o.xp6(2),o.Q6J("ngClass",o.WLB(27,jl,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM,e.screenSize===e.screenSizeEnum.MD||e.screenSize===e.screenSizeEnum.LG||e.screenSize===e.screenSizeEnum.XL)),o.xp6(2),o.Q6J("step",1)("min",0)("required",e.channelFormGroup.controls.flgMinConf.value),o.xp6(1),o.Q6J("ngIf",e.channelFormGroup.controls.flgMinConf.value&&!e.channelFormGroup.controls.minConfValue.value),o.xp6(1),o.Q6J("ngIf",""!==e.channelConnectionError),o.xp6(3),o.Oqu(""!==e.channelConnectionError?"Retry":"Open Channel"),o.xp6(2),o.Q6J("mat-dialog-close",!1),o.xp6(1),o.Oqu(null!=e.newlyAddedPeer&&e.newlyAddedPeer.id?"Do It Later":"Close"))},directives:[l.xw,l.yH,v.dk,l.Wh,q.lW,v.dn,aa.Vq,aa.C0,ft._Y,ft.JL,ft.sg,aa.VY,E.KE,xt.Nt,ft.Fj,Zt.h,ft.JJ,ft.u,ft.Q7,a.O5,ft.wV,E.bx,E.R9,Tt.Rr,At.gD,a.sg,ea.oG,a.mk,b.oO,ft.qQ,yt.q,gt.ZT,E.TO,C.BN,Ct.ey],styles:[""]}),t})();function er(t,e){1&t&&o._UZ(0,"mat-progress-bar",32)}function nr(t,e){1&t&&(o.TgZ(0,"th",33),o._uU(1," Alias "),o.qZA())}const ar=function(t){return{"mr-0":t}};function sr(t,e){if(1&t&&o._UZ(0,"span",37),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,ar,t.screenSize===t.screenSizeEnum.XS))}}function ir(t,e){if(1&t&&o._UZ(0,"span",38),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,ar,t.screenSize===t.screenSizeEnum.XS))}}const or=function(t){return{"max-width":t}};function lr(t,e){if(1&t&&(o.TgZ(0,"td",34),o.YNc(1,sr,1,3,"span",35),o.YNc(2,ir,1,3,"span",36),o._uU(3),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(4,or,n.screenSize===n.screenSizeEnum.XS?"10rem":"40rem")),o.xp6(1),o.Q6J("ngIf",null==t?null:t.connected),o.xp6(1),o.Q6J("ngIf",!(null!=t&&t.connected)),o.xp6(1),o.hij(" ",null==t?null:t.alias," ")}}function rr(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1," ID "),o.qZA())}function cr(t,e){if(1&t&&(o.TgZ(0,"td",40),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,or,n.screenSize===n.screenSizeEnum.XS?"10rem":"40rem")),o.xp6(1),o.hij(" ",null==t?null:t.id," ")}}function ur(t,e){1&t&&(o.TgZ(0,"th",33),o._uU(1," Network Address "),o.qZA())}function dr(t,e){1&t&&(o.TgZ(0,"span"),o._uU(1,","),o._UZ(2,"br"),o.qZA())}function pr(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.YNc(2,dr,3,0,"span",42),o.qZA()),2&t){const t=e.$implicit,n=e.last;o.xp6(1),o.Oqu(t),o.xp6(1),o.Q6J("ngIf",!n)}}function hr(t,e){if(1&t&&(o.TgZ(0,"td",34),o.YNc(1,pr,3,2,"span",41),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,or,n.screenSize===n.screenSizeEnum.XS?"10rem":"20rem")),o.xp6(1),o.Q6J("ngForOf",null==t?null:t.netaddr)}}function mr(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",43),o.TgZ(1,"div",44),o.TgZ(2,"mat-select",45),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",46),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function gr(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-option",46),o.NdJ("click",function(){o.CHM(t);const e=o.oxw().$implicit;return o.oxw().onPeerDetach(e)}),o._uU(1,"Disconnect"),o.qZA()}}function fr(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-option",46),o.NdJ("click",function(){o.CHM(t);const e=o.oxw().$implicit;return o.oxw().onConnectPeer(e)}),o._uU(1,"Reconnect"),o.qZA()}}function xr(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",47),o.TgZ(1,"div",48),o.TgZ(2,"mat-select",45),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",46),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onPeerClick(n,e)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",46),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().onOpenChannel(e)}),o._uU(7,"Open Channel"),o.qZA(),o.YNc(8,gr,2,0,"mat-option",49),o.YNc(9,fr,2,0,"mat-option",49),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit;o.xp6(8),o.Q6J("ngIf",t.connected),o.xp6(1),o.Q6J("ngIf",!t.connected)}}function Zr(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No connected peer."),o.qZA())}function yr(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting peers..."),o.qZA())}function Ar(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.errorMessage)}}function Tr(t,e){if(1&t&&(o.TgZ(0,"td",50),o.YNc(1,Zr,2,0,"p",42),o.YNc(2,yr,2,0,"p",42),o.YNc(3,Ar,2,1,"p",42),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers||null==t.peers.data?null:t.peers.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPeers.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers||null==t.peers.data?null:t.peers.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPeers.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers||null==t.peers.data?null:t.peers.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPeers.status)===t.apiCallStatusEnum.ERROR)}}const Cr=function(t){return{"display-none":t}};function wr(t,e){if(1&t&&o._UZ(0,"tr",51),2&t){const t=o.oxw();o.Q6J("ngClass",o.VKq(1,Cr,(null==t.peers?null:t.peers.data)&&(null==t.peers||null==t.peers.data?null:t.peers.data.length)>0))}}function vr(t,e){1&t&&o._UZ(0,"tr",52)}function Sr(t,e){if(1&t&&o._UZ(0,"tr",53),2&t){const t=e.$implicit,n=o.oxw();o.Q6J("@newlyAddedRowAnimation",t.pub_key===n.newlyAddedPeer&&n.flgAnimate?"added":"notAdded")}}const br=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},qr=function(){return["no_peer"]};let _r=(()=>{class t{constructor(t,e,n,a,s){this.logger=t,this.store=e,this.rtlEffects=n,this.actions=a,this.commonService=s,this.faUsers=g.FVb,this.newlyAddedPeer="",this.flgAnimate=!0,this.displayedColumns=[],this.peerAddress="",this.peersData=[],this.information={},this.availableBalance=0,this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","actions"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","id","netaddr","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","id","netaddr","actions"])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchPeers.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPeers.message?JSON.stringify(this.apisCallStatus.FetchPeers.message):this.apisCallStatus.FetchPeers.message),this.information=t.information,this.availableBalance=t.balance.totalBalance||0,this.peersData=t.peers?t.peers:[],this.peersData.length>0&&this.loadPeersTable(this.peersData),this.logger.info(t)}),this.actions.pipe((0,p.R)(this.unSubs[1]),(0,h.h)(t=>t.type===x.sX)).subscribe(t=>{this.peerAddress=null,this.flgAnimate=!0})}ngAfterViewInit(){this.peersData.length>0&&this.loadPeersTable(this.peersData)}onPeerClick(t,e){this.store.dispatch(new Ft.wu({data:{type:f.n_.INFORMATION,alertTitle:"Peer Information",showQRName:"Public Key",showQRField:t.id,message:[[{key:"id",value:t.id,title:"Public Key",width:100}],[{key:"netaddr",value:t.netaddr,title:"Address",width:100}],[{key:"alias",value:t.alias,title:"Alias",width:50},{key:"connected",value:t.connected?"True":"False",title:"Connected",width:50}]]}}))}onConnectPeer(t){this.store.dispatch(new Ft.wu({data:{message:{peer:t.id?t:null,information:this.information,balance:this.availableBalance},component:tr}}))}onOpenChannel(t){this.store.dispatch(new Ft.wu({data:{alertTitle:"Open Channel",message:{peer:t,information:this.information,balance:this.availableBalance},newlyAdded:!1,component:no}}))}onPeerDetach(t){this.store.dispatch(new Ft.b_({data:{type:f.n_.CONFIRM,alertTitle:"Disconnect Peer",titleMessage:"Disconnect peer: "+(t.alias?t.alias:t.id),noBtnText:"Cancel",yesBtnText:"Disconnect"}})),this.rtlEffects.closeConfirm.pipe((0,p.R)(this.unSubs[3])).subscribe(e=>{e&&this.store.dispatch(new x.yw({id:t.id,force:!1}))})}applyFilter(t){this.peers.filter=t.value.trim().toLowerCase()}loadPeersTable(t){this.peers=new mt.by([...t]),this.peers.sortingDataAccessor=(t,e)=>{switch(e){case"netaddr":if(t.netaddr&&t.netaddr[0]){const e=t.netaddr[0].toString().split(".");return e[0]?+e[0]:t.netaddr[0]}return"";default:return t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null}},this.peers.sort=this.sort,this.peers.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.peers.paginator=this.paginator}onDownloadCSV(){this.peers.data&&this.peers.data.length>0&&this.commonService.downloadFile(this.peers.data,"Peers")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(Lt.V),o.Y36(A.eX),o.Y36(T.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-peers"]],viewQuery:function(t,e){if(1&t&&(o.Gf(ht.YE,5),o.Gf(pt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},features:[o._Bn([{provide:pt.ye,useValue:(0,f.pt)("Peers")}])],decls:36,vars:14,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["peersForm","ngForm"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","30","fxFlex.gt-xs","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["fxLayout","row","fxLayoutAlign","start start"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","alias"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","id"],["mat-header-cell","","class","px-3","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","","class","px-3",3,"ngStyle",4,"matCellDef"],["matColumnDef","netaddr"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","px-3",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["class","dot green","matTooltip","Connected","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Disconnected","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Connected","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Disconnected","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["mat-header-cell","","mat-sort-header","",1,"px-3"],["mat-cell","",1,"px-3",3,"ngStyle"],[4,"ngFor","ngForOf"],[4,"ngIf"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["fxFlex","100","fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],[3,"click",4,"ngIf"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"form",1,2),o.TgZ(3,"button",3),o.NdJ("click",function(){return e.onConnectPeer({})}),o._uU(4,"Add Peer"),o.qZA(),o.qZA(),o.TgZ(5,"div",4),o.TgZ(6,"div",5),o.TgZ(7,"div",6),o._UZ(8,"fa-icon",7),o.TgZ(9,"span",8),o._uU(10,"Connected Peers"),o.qZA(),o.qZA(),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"div",10),o.TgZ(13,"input",11),o.NdJ("keyup",function(t){return e.applyFilter(t.target)}),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(14,"div",12),o.YNc(15,er,1,0,"mat-progress-bar",13),o.TgZ(16,"table",14,15),o.ynx(18,16),o.YNc(19,nr,2,0,"th",17),o.YNc(20,lr,4,6,"td",18),o.BQk(),o.ynx(21,19),o.YNc(22,rr,2,0,"th",20),o.YNc(23,cr,2,4,"td",21),o.BQk(),o.ynx(24,22),o.YNc(25,ur,2,0,"th",17),o.YNc(26,hr,2,4,"td",18),o.BQk(),o.ynx(27,23),o.YNc(28,mr,6,0,"th",24),o.YNc(29,xr,10,2,"td",25),o.BQk(),o.ynx(30,26),o.YNc(31,Tr,4,3,"td",27),o.BQk(),o.YNc(32,wr,1,3,"tr",28),o.YNc(33,vr,1,0,"tr",29),o.YNc(34,Sr,1,1,"tr",30),o.qZA(),o.qZA(),o._UZ(35,"mat-paginator",31),o.qZA(),o.qZA()),2&t&&(o.xp6(8),o.Q6J("icon",e.faUsers),o.xp6(7),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchPeers.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.peers)("ngClass",o.VKq(11,br,""!==e.errorMessage)),o.xp6(16),o.Q6J("matFooterRowDef",o.DdM(13,qr)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[l.xw,l.yH,l.Wh,ft._Y,ft.JL,ft.F,q.lW,C.BN,E.KE,xt.Nt,D.$V,a.O5,mt.BZ,ht.YE,a.mk,b.oO,mt.w1,mt.fO,mt.Dz,mt.mD,mt.Ke,mt.as,mt.nj,pt.NW,r.pW,mt.ge,ht.nU,mt.ev,a.PC,b.Zl,M.gM,a.sg,At.gD,At.$L,Ct.ey,mt.yh,mt.Q2,mt.XQ,mt.Gk],styles:[".mat-column-alias[_ngcontent-%COMP%], .mat-column-id[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-id[_ngcontent-%COMP%]{padding-left:2rem}.mat-column-netaddr[_ngcontent-%COMP%]{flex:1 1 25%;width:25%}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"],data:{animation:[_t.Q]}}),t})();const Fr=["queryRoutesForm"];function Lr(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Destination pubkey is required."),o.qZA())}function Ur(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function Rr(t,e){1&t&&o._UZ(0,"mat-progress-bar",38)}function kr(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1," ID "),o.qZA())}function Nr(t,e){if(1&t&&(o.TgZ(0,"td",40),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.id," ")}}function Ir(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1," Alias "),o.qZA())}function Or(t,e){if(1&t&&(o.TgZ(0,"td",40),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.alias," ")}}function Er(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1," Channel "),o.qZA())}function Mr(t,e){if(1&t&&(o.TgZ(0,"td",40),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.channel," ")}}function Jr(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1," Direction "),o.qZA())}function Dr(t,e){if(1&t&&(o.TgZ(0,"td",40),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.direction," ")}}function Yr(t,e){1&t&&(o.TgZ(0,"th",41),o._uU(1," Delay "),o.qZA())}function Qr(t,e){if(1&t&&(o.TgZ(0,"td",40),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==t?null:t.delay)," ")}}function Pr(t,e){1&t&&(o.TgZ(0,"th",41),o._uU(1," Amount (Sats) "),o.qZA())}function Br(t,e){if(1&t&&(o.TgZ(0,"td",40),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,(null==t?null:t.msatoshi)/1e3)," ")}}function Hr(t,e){1&t&&(o.TgZ(0,"th",43),o._uU(1," Amount mSat "),o.qZA())}function zr(t,e){if(1&t&&(o.TgZ(0,"td",44),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.amount_msat," ")}}function Gr(t,e){1&t&&(o.TgZ(0,"th",45),o.TgZ(1,"span",42),o._uU(2,"Actions"),o.qZA(),o.qZA())}function Vr(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",44),o.TgZ(1,"button",46),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onHopClick(n,e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function Xr(t,e){1&t&&o._UZ(0,"tr",47)}function Wr(t,e){1&t&&o._UZ(0,"tr",48)}const $r=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}};let Kr=(()=>{class t{constructor(t,e,n){this.store=t,this.clEffects=e,this.commonService=n,this.destinationPubkey="",this.amount=null,this.flgSticky=!1,this.displayedColumns=[],this.flgLoading=[!1],this.faRoute=g.FpQ,this.faExclamationTriangle=g.eHv,this.screenSize="",this.screenSizeEnum=f.cu,this.unSubs=[new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","msatoshi","actions"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","direction","msatoshi","actions"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","direction","delay","msatoshi","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","channel","direction","delay","msatoshi","actions"])}ngOnInit(){this.clEffects.setQueryRoutesCL.pipe((0,p.R)(this.unSubs[1])).subscribe(t=>{this.qrHops=new mt.by([]),this.qrHops.data=[],t.routes?(this.flgLoading[0]=!1,this.qrHops=new mt.by([...t.routes]),this.qrHops.data=t.routes):this.flgLoading[0]="error",this.qrHops.sort=this.sort,this.qrHops.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null})}onQueryRoutes(){if(!this.destinationPubkey||!this.amount)return!0;this.flgLoading[0]=!0,this.store.dispatch(new x.bm({destPubkey:this.destinationPubkey,amount:1e3*this.amount}))}resetData(){this.destinationPubkey="",this.amount=null,this.flgLoading[0]=!1,this.qrHops.data=[],this.form.resetForm()}onHopClick(t,e){this.store.dispatch(new Ft.wu({data:{type:f.n_.INFORMATION,alertTitle:"Route Information",message:[[{key:"id",value:t.id,title:"ID",width:100,type:f.Gi.STRING}],[{key:"channel",value:t.channel,title:"Channel",width:50,type:f.Gi.STRING},{key:"alias",value:t.alias,title:"Peer Alias",width:50,type:f.Gi.STRING}],[{key:"msatoshi",value:t.msatoshi,title:"mSatoshi",width:50,type:f.Gi.NUMBER},{key:"amount_msat",value:t.amount_msat,title:"Amount mSat",width:50,type:f.Gi.STRING}],[{key:"direction",value:t.direction,title:"Direction",width:50,type:f.Gi.STRING},{key:"delay",value:t.delay,title:"Delay",width:50,type:f.Gi.NUMBER}]]}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(y.yh),o.Y36(ue.s),o.Y36(T.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-query-routes"]],viewQuery:function(t,e){if(1&t&&(o.Gf(ht.YE,5),o.Gf(Fr,7)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.form=t.first)}},decls:54,vars:16,consts:[["fxLayout","column","fxFlex","100",1,"padding-gap"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",3,"ngSubmit"],["queryRoutesForm","ngForm"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","69","fxLayoutAlign","start end"],["matInput","","placeholder","Destination Pubkey","name","destinationPubkey","tabindex","1","required","",3,"ngModel","ngModelChange"],["destPubkey","ngModel"],[4,"ngIf"],["fxFlex","29","fxLayoutAlign","start end"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","type","number","required","",3,"ngModel","step","min","ngModelChange"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","4"],["fxLayout","row","fxLayoutAlign","start center",1,"page-sub-title-container","mt-2","mb-1"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],[1,"table-container","mb-6",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","channel"],["matColumnDef","direction"],["matColumnDef","delay"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi"],["matColumnDef","amount_msat"],["mat-header-cell","","class","pl-4","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","","class","pl-4",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-4 pr-3",4,"matHeaderCellDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-4"],["mat-cell","",1,"pl-4"],["mat-header-cell","",1,"pl-4","pr-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-header-row",""],["mat-row",""]],template:function(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",0),o.TgZ(1,"form",1,2),o.NdJ("ngSubmit",function(){return o.CHM(t),o.MAs(2).form.valid&&e.onQueryRoutes()}),o.TgZ(3,"div",3),o._UZ(4,"fa-icon",4),o.TgZ(5,"span"),o._uU(6,"The actual routing fee on a payment can be different from the fee shown on query routes."),o.qZA(),o.qZA(),o.TgZ(7,"mat-form-field",5),o.TgZ(8,"input",6,7),o.NdJ("ngModelChange",function(t){return e.destinationPubkey=t}),o.qZA(),o.YNc(10,Lr,2,0,"mat-error",8),o.qZA(),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"input",10),o.NdJ("ngModelChange",function(t){return e.amount=t}),o.qZA(),o.YNc(13,Ur,2,0,"mat-error",8),o.qZA(),o.TgZ(14,"div",11),o.TgZ(15,"button",12),o.NdJ("click",function(){return e.resetData()}),o._uU(16,"Clear"),o.qZA(),o.TgZ(17,"button",13),o._uU(18,"Query Route"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(19,"div",14),o.TgZ(20,"div",15),o._UZ(21,"fa-icon",16),o.TgZ(22,"span",17),o._uU(23,"Transaction Route"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(24,"div",18),o.YNc(25,Rr,1,0,"mat-progress-bar",19),o.TgZ(26,"table",20,21),o.ynx(28,22),o.YNc(29,kr,2,0,"th",23),o.YNc(30,Nr,2,1,"td",24),o.BQk(),o.ynx(31,25),o.YNc(32,Ir,2,0,"th",23),o.YNc(33,Or,2,1,"td",24),o.BQk(),o.ynx(34,26),o.YNc(35,Er,2,0,"th",23),o.YNc(36,Mr,2,1,"td",24),o.BQk(),o.ynx(37,27),o.YNc(38,Jr,2,0,"th",23),o.YNc(39,Dr,2,1,"td",24),o.BQk(),o.ynx(40,28),o.YNc(41,Yr,2,0,"th",29),o.YNc(42,Qr,4,3,"td",24),o.BQk(),o.ynx(43,30),o.YNc(44,Pr,2,0,"th",29),o.YNc(45,Br,4,3,"td",24),o.BQk(),o.ynx(46,31),o.YNc(47,Hr,2,0,"th",32),o.YNc(48,zr,2,1,"td",33),o.BQk(),o.ynx(49,34),o.YNc(50,Gr,3,0,"th",35),o.YNc(51,Vr,3,0,"td",33),o.BQk(),o.YNc(52,Xr,1,0,"tr",36),o.YNc(53,Wr,1,0,"tr",37),o.qZA(),o.qZA(),o.qZA()}2&t&&(o.xp6(4),o.Q6J("icon",e.faExclamationTriangle),o.xp6(4),o.Q6J("ngModel",e.destinationPubkey),o.xp6(2),o.Q6J("ngIf",!e.destinationPubkey),o.xp6(2),o.Q6J("ngModel",e.amount)("step",1e3)("min",0),o.xp6(1),o.Q6J("ngIf",!e.amount),o.xp6(8),o.Q6J("icon",e.faRoute),o.xp6(4),o.Q6J("ngIf",!0===e.flgLoading[0]),o.xp6(1),o.Q6J("dataSource",e.qrHops)("ngClass",o.VKq(14,$r,"error"===e.flgLoading[0])),o.xp6(26),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns))},directives:[l.xw,l.yH,ft._Y,ft.JL,ft.F,l.Wh,C.BN,E.KE,xt.Nt,ft.Fj,ft.Q7,ft.JJ,ft.On,a.O5,ft.wV,ft.qQ,yt.q,q.lW,D.$V,mt.BZ,ht.YE,a.mk,b.oO,mt.w1,mt.fO,mt.Dz,mt.as,mt.nj,E.TO,r.pW,mt.ge,ht.nU,mt.ev,mt.XQ,mt.Gk],pipes:[a.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{flex:0 0 5%;width:5%}.mat-column-pubkey_alias[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),t})();var jr=n(3556);function tc(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Message is required."),o.qZA())}let ec=(()=>{class t{constructor(t,e,n){this.dataService=t,this.snackBar=e,this.logger=n,this.message="",this.signedMessage="",this.signature="",this.unSubs=[new d.x,new d.x]}onSign(){if(!this.message||""===this.message)return!0;this.dataService.signMessage(this.message).pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.signedMessage=this.message,this.signature=t.zbase})}onMessageChange(){this.signedMessage!==this.message&&(this.signature="")}onCopyField(t){this.snackBar.open("Signature copied."),this.logger.info("Copied Text: "+t)}resetData(){this.message="",this.signature="",this.signedMessage=""}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(jr.D),o.Y36(ta.ux),o.Y36(Z.mQ))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-sign"]],decls:20,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["form","ngForm"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start end"],["autoFocus","","matInput","","rows","1","placeholder","Message to sign","required","","tabindex","1","name","message",3,"ngModel","ngModelChange","keyup"],[4,"ngIf"],["fxLayout","row",1,"my-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3","type","submit",3,"click"],[1,"my-2",3,"inset"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",1,"bordered-box","read-only","h-4","padding-gap"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","4","rtlClipboard","","type","button",3,"payload","copied"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"form",1,2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"textarea",4),o.NdJ("ngModelChange",function(t){return e.message=t})("keyup",function(){return e.onMessageChange()}),o.qZA(),o.YNc(5,tc,2,0,"mat-error",5),o.qZA(),o.TgZ(6,"div",6),o.TgZ(7,"button",7),o.NdJ("click",function(){return e.resetData()}),o._uU(8,"Clear Field"),o.qZA(),o.TgZ(9,"button",8),o.NdJ("click",function(){return e.onSign()}),o._uU(10,"Sign"),o.qZA(),o.qZA(),o._UZ(11,"mat-divider",9),o.TgZ(12,"div",10),o.TgZ(13,"p"),o._uU(14,"Generated Signature"),o.qZA(),o.qZA(),o.TgZ(15,"div",11),o._uU(16),o.qZA(),o.TgZ(17,"div",12),o.TgZ(18,"button",13),o.NdJ("copied",function(t){return e.onCopyField(t)}),o._uU(19,"Copy Signature"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(4),o.Q6J("ngModel",e.message),o.xp6(1),o.Q6J("ngIf",!e.message),o.xp6(6),o.Q6J("inset",!0),o.xp6(5),o.Oqu(e.signature),o.xp6(2),o.Q6J("payload",e.signature))},directives:[l.xw,l.yH,l.Wh,ft._Y,ft.JL,ft.F,E.KE,xt.Nt,ft.Fj,Zt.h,ft.Q7,ft.JJ,ft.On,a.O5,q.lW,J.d,Cs.y,E.TO],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),t})();function nc(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Message is required."),o.qZA())}function ac(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Signature is required."),o.qZA())}function sc(t,e){1&t&&(o.TgZ(0,"p",13),o.TgZ(1,"mat-icon",14),o._uU(2,"close"),o.qZA(),o._uU(3,"Verification failed, please double check message and signature"),o.qZA())}function ic(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Pubkey Used"),o.qZA())}function oc(t,e){if(1&t&&(o.TgZ(0,"div",20),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw(2);o.xp6(2),o.Oqu(null==t.verifyRes?null:t.verifyRes.pubkey)}}function lc(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",21),o.TgZ(1,"button",22),o.NdJ("copied",function(e){return o.CHM(t),o.oxw(2).onCopyField(e)}),o._uU(2,"Copy Pubkey"),o.qZA(),o.qZA()}if(2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("payload",null==t.verifyRes?null:t.verifyRes.pubkey)}}function rc(t,e){if(1&t&&(o.TgZ(0,"div",15),o._UZ(1,"mat-divider",16),o.TgZ(2,"div",17),o.YNc(3,ic,2,0,"p",5),o.qZA(),o.YNc(4,oc,3,1,"div",18),o.YNc(5,lc,3,1,"div",19),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("inset",!0),o.xp6(2),o.Q6J("ngIf",t.verifyRes.verified),o.xp6(1),o.Q6J("ngIf",t.verifyRes.verified),o.xp6(1),o.Q6J("ngIf",t.verifyRes.verified)}}let cc=(()=>{class t{constructor(t,e,n){this.dataService=t,this.snackBar=e,this.logger=n,this.message="",this.verifiedMessage="",this.signature="",this.verifiedSignature="",this.showVerifyStatus=!1,this.verifyRes={pubkey:"",verified:null},this.unSubs=[new d.x,new d.x]}onVerify(){if(!this.message||""===this.message||!this.signature||""===this.signature)return!0;this.dataService.verifyMessage(this.message,this.signature).pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.verifyRes=t,this.showVerifyStatus=!0,this.verifiedMessage=this.message,this.verifiedSignature=this.signature})}onChange(){this.verifiedMessage===this.message&&this.verifiedSignature===this.signature||(this.showVerifyStatus=!1,this.verifyRes={pubkey:"",verified:null})}resetData(){this.message="",this.signature="",this.verifyRes=null,this.showVerifyStatus=!1}onCopyField(t){this.snackBar.open("Pubkey copied."),this.logger.info("Copied Text: "+t)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(jr.D),o.Y36(ta.ux),o.Y36(Z.mQ))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-verify"]],decls:17,vars:6,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["form","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["autoFocus","","matInput","","rows","1","placeholder","Message to verify","required","","tabindex","1","name","message",3,"ngModel","ngModelChange","keyup"],[4,"ngIf"],["matInput","","placeholder","Signature provided","name","signature","tabindex","2","required","",3,"ngModel","ngModelChange","keyup"],["sign","ngModel"],["fxFlex","100","class","color-warn","fxLayoutAlign","start center",4,"ngIf"],["fxLayout","row",1,"my-1"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxFlex","100","fxLayoutAlign","start center",1,"color-warn"],[1,"mr-1","icon-small"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],[1,"my-2",3,"inset"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start","class","bordered-box read-only h-4 padding-gap",4,"ngIf"],["fxLayout","row","class","mt-2",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",1,"bordered-box","read-only","h-4","padding-gap"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","5","rtlClipboard","","type","button",3,"payload","copied"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"form",1,2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"textarea",4),o.NdJ("ngModelChange",function(t){return e.message=t})("keyup",function(){return e.onChange()}),o.qZA(),o.YNc(5,nc,2,0,"mat-error",5),o.qZA(),o.TgZ(6,"mat-form-field",3),o.TgZ(7,"input",6,7),o.NdJ("ngModelChange",function(t){return e.signature=t})("keyup",function(){return e.onChange()}),o.qZA(),o.YNc(9,ac,2,0,"mat-error",5),o.qZA(),o.YNc(10,sc,4,0,"p",8),o.TgZ(11,"div",9),o.TgZ(12,"button",10),o.NdJ("click",function(){return e.resetData()}),o._uU(13,"Clear Fields"),o.qZA(),o.TgZ(14,"button",11),o.NdJ("click",function(){return e.onVerify()}),o._uU(15,"Verify"),o.qZA(),o.qZA(),o.YNc(16,rc,6,4,"div",12),o.qZA(),o.qZA()),2&t&&(o.xp6(4),o.Q6J("ngModel",e.message),o.xp6(1),o.Q6J("ngIf",!e.message),o.xp6(2),o.Q6J("ngModel",e.signature),o.xp6(2),o.Q6J("ngIf",!e.signature),o.xp6(1),o.Q6J("ngIf",e.showVerifyStatus&&!e.verifyRes.verified),o.xp6(6),o.Q6J("ngIf",e.showVerifyStatus&&e.verifyRes.verified))},directives:[l.xw,l.yH,l.Wh,ft._Y,ft.JL,ft.F,E.KE,xt.Nt,ft.Fj,Zt.h,ft.Q7,ft.JJ,ft.On,a.O5,q.lW,E.TO,_.Hw,J.d,Cs.y],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),t})();function uc(t,e){if(1&t&&(o.TgZ(0,"div",5),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.errorMessage)}}function dc(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",6),o._UZ(1,"div",7),o.TgZ(2,"mat-form-field",8),o.TgZ(3,"input",9),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().filterValue=e})("input",function(){return o.CHM(t),o.oxw().applyFilter()})("keyup",function(){return o.CHM(t),o.oxw().applyFilter()}),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("ngModel",t.filterValue)}}function pc(t,e){1&t&&o._UZ(0,"mat-progress-bar",33)}function hc(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1,"Status"),o.qZA())}function mc(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(null==t?null:t.status)}}function gc(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1,"Received Time"),o.qZA())}function fc(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.ALo(2,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(o.xi3(2,1,1e3*(null==t?null:t.received_time),"dd/MMM/YYYY HH:mm"))}}function xc(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1,"Resolved Time"),o.qZA())}function Zc(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.ALo(2,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(o.xi3(2,1,1e3*(null==t?null:t.resolved_time),"dd/MMM/YYYY HH:mm"))}}function yc(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1,"In Channel"),o.qZA())}function Ac(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(null==t?null:t.in_channel_alias)}}function Tc(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1,"Out Channel"),o.qZA())}function Cc(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(null==t?null:t.out_channel_alias)}}function wc(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1,"Amount In (Sats)"),o.qZA())}function vc(t,e){if(1&t&&(o.TgZ(0,"td",35),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.xi3(3,1,(null==t?null:t.in_msatoshi)/1e3,(null==t?null:t.in_msatoshi)<1e3?"1.0-4":"1.0-0"))}}function Sc(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1,"Amount Out (Sats)"),o.qZA())}function bc(t,e){if(1&t&&(o.TgZ(0,"td",35),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.xi3(3,1,(null==t?null:t.out_msatoshi)/1e3,(null==t?null:t.out_msatoshi)<1e3?"1.0-4":"1.0-0"))}}function qc(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1,"Fee (mSat)"),o.qZA())}function _c(t,e){if(1&t&&(o.TgZ(0,"td",35),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,null==t?null:t.fee))}}function Fc(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",38),o.TgZ(1,"div",39),o.TgZ(2,"mat-select",40),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",41),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Lc(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",42),o.TgZ(1,"button",43),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw(2).onForwardingEventClick(n,e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function Uc(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No forwarding history available."),o.qZA())}function Rc(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting forwarding history..."),o.qZA())}function kc(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function Nc(t,e){if(1&t&&(o.TgZ(0,"td",44),o.YNc(1,Uc,2,0,"p",45),o.YNc(2,Rc,2,0,"p",45),o.YNc(3,kc,2,1,"p",45),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.ERROR)}}const Ic=function(t){return{"display-none":t}};function Oc(t,e){if(1&t&&o._UZ(0,"tr",46),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,Ic,(null==t.forwardingHistoryEvents?null:t.forwardingHistoryEvents.data)&&(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)>0))}}function Ec(t,e){1&t&&o._UZ(0,"tr",47)}function Mc(t,e){1&t&&o._UZ(0,"tr",48)}const Jc=function(){return["no_event"]};function Dc(t,e){if(1&t&&(o.TgZ(0,"div",10),o.YNc(1,pc,1,0,"mat-progress-bar",11),o.TgZ(2,"table",12,13),o.ynx(4,14),o.YNc(5,hc,2,0,"th",15),o.YNc(6,mc,2,1,"td",16),o.BQk(),o.ynx(7,17),o.YNc(8,gc,2,0,"th",15),o.YNc(9,fc,3,4,"td",16),o.BQk(),o.ynx(10,18),o.YNc(11,xc,2,0,"th",15),o.YNc(12,Zc,3,4,"td",16),o.BQk(),o.ynx(13,19),o.YNc(14,yc,2,0,"th",15),o.YNc(15,Ac,2,1,"td",16),o.BQk(),o.ynx(16,20),o.YNc(17,Tc,2,0,"th",15),o.YNc(18,Cc,2,1,"td",16),o.BQk(),o.ynx(19,21),o.YNc(20,wc,2,0,"th",22),o.YNc(21,vc,4,4,"td",16),o.BQk(),o.ynx(22,23),o.YNc(23,Sc,2,0,"th",22),o.YNc(24,bc,4,4,"td",16),o.BQk(),o.ynx(25,24),o.YNc(26,qc,2,0,"th",22),o.YNc(27,_c,4,3,"td",16),o.BQk(),o.ynx(28,25),o.YNc(29,Fc,6,0,"th",26),o.YNc(30,Lc,3,0,"td",27),o.BQk(),o.ynx(31,28),o.YNc(32,Nc,4,3,"td",29),o.BQk(),o.YNc(33,Oc,1,3,"tr",30),o.YNc(34,Ec,1,0,"tr",31),o.YNc(35,Mc,1,0,"tr",32),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.forwardingHistoryEvents),o.xp6(31),o.Q6J("matFooterRowDef",o.DdM(6,Jc)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns)}}function Yc(t,e){if(1&t&&o._UZ(0,"mat-paginator",49),2&t){const t=o.oxw();o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let Qc=(()=>{class t{constructor(t,e,n,a){this.logger=t,this.commonService=e,this.store=n,this.datePipe=a,this.eventsData=[],this.filterValue="",this.successfulEvents=[],this.displayedColumns=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["in_msatoshi","out_msatoshi","actions"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["received_time","in_msatoshi","out_msatoshi","fee","actions"]):(this.flgSticky=!0,this.displayedColumns=["received_time","resolved_time","in_channel","out_channel","in_msatoshi","out_msatoshi","fee","actions"])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.eventsData.length<=0&&(this.errorMessage="",this.apisCallStatus=t.apisCallStatus,this.apisCallStatus.GetForwardingHistory.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.GetForwardingHistory.message?JSON.stringify(this.apisCallStatus.GetForwardingHistory.message):this.apisCallStatus.GetForwardingHistory.message),this.successfulEvents=t.forwardingHistory?t.forwardingHistory:[],this.successfulEvents.length>0&&this.sort&&this.paginator&&this.loadForwardingEventsTable(this.successfulEvents),this.logger.info(t))})}ngAfterViewInit(){this.successfulEvents.length>0&&this.loadForwardingEventsTable(this.successfulEvents)}ngOnChanges(t){t.eventsData&&(this.eventsData=t.eventsData.currentValue,this.successfulEvents=this.eventsData,t.eventsData.firstChange||this.loadForwardingEventsTable(this.successfulEvents)),t.filterValue&&!t.filterValue.firstChange&&this.applyFilter()}onForwardingEventClick(t,e){this.store.dispatch(new Ft.wu({data:{type:f.n_.INFORMATION,alertTitle:"Event Information",message:[[{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:100,type:f.Gi.STRING}],[{key:"status",value:"Settled",title:"Status",width:50,type:f.Gi.STRING},{key:"fee",value:t.fee,title:"Fee (mSats)",width:50,type:f.Gi.NUMBER}],[{key:"received_time",value:t.received_time,title:"Received Time",width:50,type:f.Gi.DATE_TIME},{key:"resolved_time",value:t.resolved_time,title:"Resolved Time",width:50,type:f.Gi.DATE_TIME}],[{key:"in_channel",value:t.in_channel_alias,title:"Inbound Channel",width:50,type:f.Gi.STRING},{key:"out_channel",value:t.out_channel_alias,title:"Outbound Channel",width:50,type:f.Gi.STRING}],[{key:"in_msatoshi",value:t.in_msatoshi,title:"In (mSats)",width:50,type:f.Gi.NUMBER},{key:"out_msatoshi",value:t.out_msatoshi,title:"Out (mSats)",width:50,type:f.Gi.NUMBER}]]}}))}loadForwardingEventsTable(t){this.forwardingHistoryEvents=new mt.by([...t]),this.forwardingHistoryEvents.sort=this.sort,this.forwardingHistoryEvents.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.forwardingHistoryEvents.paginator=this.paginator,this.forwardingHistoryEvents.filterPredicate=(t,e)=>((t.received_time?this.datePipe.transform(new Date(1e3*t.received_time),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(t.resolved_time?this.datePipe.transform(new Date(1e3*t.resolved_time),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(t.in_channel?t.in_channel.toLowerCase():"")+(t.out_channel?t.out_channel.toLowerCase():"")+(t.in_msatoshi?t.in_msatoshi/1e3:"")+(t.out_msatoshi?t.out_msatoshi/1e3:"")+(t.fee?t.fee:"")).includes(e),this.logger.info(this.forwardingHistoryEvents)}onDownloadCSV(){this.forwardingHistoryEvents&&this.forwardingHistoryEvents.data&&this.forwardingHistoryEvents.data.length>0&&this.commonService.downloadFile(this.forwardingHistoryEvents.data,"Forwarding-history")}applyFilter(){this.forwardingHistoryEvents&&(this.forwardingHistoryEvents.filter=this.filterValue.trim().toLowerCase())}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(T.v),o.Y36(y.yh),o.Y36(a.uU))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-forwarding-history"]],viewQuery:function(t,e){if(1&t&&(o.Gf(ht.YE,5),o.Gf(pt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},inputs:{eventsData:"eventsData",filterValue:"filterValue"},features:[o._Bn([{provide:pt.ye,useValue:(0,f.pt)("Events")}]),o.TTD],decls:5,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","class","page-sub-title-container",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100","class","table-container",3,"perfectScrollbar",4,"ngIf"],["class","mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","ngModelChange","input","keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","status"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","received_time"],["matColumnDef","resolved_time"],["matColumnDef","in_channel"],["matColumnDef","out_channel"],["matColumnDef","in_msatoshi"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","out_msatoshi"],["matColumnDef","fee"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,uc,2,1,"div",1),o.YNc(2,dc,4,1,"div",2),o.YNc(3,Dc,36,7,"div",3),o.YNc(4,Yc,1,3,"mat-paginator",4),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf",""!==e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage))},directives:[l.xw,l.Wh,a.O5,l.yH,E.KE,xt.Nt,ft.Fj,ft.JJ,ft.On,D.$V,mt.BZ,ht.YE,mt.w1,mt.fO,mt.Dz,mt.mD,mt.Ke,mt.as,mt.nj,r.pW,mt.ge,ht.nU,mt.ev,At.gD,At.$L,Ct.ey,q.lW,mt.yh,mt.Q2,a.mk,b.oO,mt.XQ,mt.Gk,pt.NW],pipes:[a.uU,a.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();function Pc(t,e){if(1&t&&(o.TgZ(0,"div",5),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.errorMessage)}}function Bc(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",6),o._UZ(1,"div",7),o.TgZ(2,"mat-form-field",8),o.TgZ(3,"input",9),o.NdJ("keyup",function(e){return o.CHM(t),o.oxw().applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA()}}function Hc(t,e){1&t&&o._UZ(0,"mat-progress-bar",29)}function zc(t,e){1&t&&(o.TgZ(0,"th",30),o._uU(1,"Status"),o.qZA())}function Gc(t,e){if(1&t&&(o.TgZ(0,"td",31),o._uU(1),o.ALo(2,"titlecase"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,"local_failed"===(null==t?null:t.status)?"local failed":null==t?null:t.status))}}function Vc(t,e){1&t&&(o.TgZ(0,"th",30),o._uU(1,"Received Time"),o.qZA())}function Xc(t,e){if(1&t&&(o.TgZ(0,"td",31),o._uU(1),o.ALo(2,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(o.xi3(2,1,1e3*(null==t?null:t.received_time),"dd/MMM/YYYY HH:mm"))}}function Wc(t,e){1&t&&(o.TgZ(0,"th",30),o._uU(1,"In Channel"),o.qZA())}function $c(t,e){if(1&t&&(o.TgZ(0,"td",31),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(null==t?null:t.in_channel_alias)}}function Kc(t,e){1&t&&(o.TgZ(0,"th",32),o._uU(1,"Amount In (Sats)"),o.qZA())}function jc(t,e){if(1&t&&(o.TgZ(0,"td",31),o.TgZ(1,"span",33),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.xi3(3,1,(null==t?null:t.in_msatoshi)/1e3,(null==t?null:t.in_msatoshi)<1e3?"1.0-4":"1.0-0"))}}function tu(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",34),o.TgZ(1,"div",35),o.TgZ(2,"mat-select",36),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",37),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function eu(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",38),o.TgZ(1,"button",39),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(2).onFailedEventClick(e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function nu(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No failed transaction available."),o.qZA())}function au(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting failed transactions..."),o.qZA())}function su(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function iu(t,e){if(1&t&&(o.TgZ(0,"td",40),o.YNc(1,nu,2,0,"p",41),o.YNc(2,au,2,0,"p",41),o.YNc(3,su,2,1,"p",41),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.failedForwardingEvents&&t.failedForwardingEvents.data)||(null==t.failedForwardingEvents||null==t.failedForwardingEvents.data?null:t.failedForwardingEvents.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetFailedForwardingHistory.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.failedForwardingEvents&&t.failedForwardingEvents.data)||(null==t.failedForwardingEvents||null==t.failedForwardingEvents.data?null:t.failedForwardingEvents.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetFailedForwardingHistory.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.failedForwardingEvents&&t.failedForwardingEvents.data)||(null==t.failedForwardingEvents||null==t.failedForwardingEvents.data?null:t.failedForwardingEvents.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetFailedForwardingHistory.status)===t.apiCallStatusEnum.ERROR)}}const ou=function(t){return{"display-none":t}};function lu(t,e){if(1&t&&o._UZ(0,"tr",42),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,ou,(null==t.failedForwardingEvents?null:t.failedForwardingEvents.data)&&(null==t.failedForwardingEvents||null==t.failedForwardingEvents.data?null:t.failedForwardingEvents.data.length)>0))}}function ru(t,e){1&t&&o._UZ(0,"tr",43)}function cu(t,e){1&t&&o._UZ(0,"tr",44)}const uu=function(){return["no_event"]};function du(t,e){if(1&t&&(o.TgZ(0,"div",10),o.YNc(1,Hc,1,0,"mat-progress-bar",11),o.TgZ(2,"table",12,13),o.ynx(4,14),o.YNc(5,zc,2,0,"th",15),o.YNc(6,Gc,3,3,"td",16),o.BQk(),o.ynx(7,17),o.YNc(8,Vc,2,0,"th",15),o.YNc(9,Xc,3,4,"td",16),o.BQk(),o.ynx(10,18),o.YNc(11,Wc,2,0,"th",15),o.YNc(12,$c,2,1,"td",16),o.BQk(),o.ynx(13,19),o.YNc(14,Kc,2,0,"th",20),o.YNc(15,jc,4,4,"td",16),o.BQk(),o.ynx(16,21),o.YNc(17,tu,6,0,"th",22),o.YNc(18,eu,3,0,"td",23),o.BQk(),o.ynx(19,24),o.YNc(20,iu,4,3,"td",25),o.BQk(),o.YNc(21,lu,1,3,"tr",26),o.YNc(22,ru,1,0,"tr",27),o.YNc(23,cu,1,0,"tr",28),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.GetFailedForwardingHistory.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.failedForwardingEvents),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(6,uu)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns)}}function pu(t,e){if(1&t&&o._UZ(0,"mat-paginator",45),2&t){const t=o.oxw();o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let hu=(()=>{class t{constructor(t,e,n,a,s){this.logger=t,this.commonService=e,this.store=n,this.datePipe=a,this.router=s,this.errorMessage="",this.displayedColumns=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS||this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["status","received_time","in_msatoshi","actions"]):(this.flgSticky=!0,this.displayedColumns=["status","received_time","in_channel","in_msatoshi","actions"])}ngOnInit(){this.router.routeReuseStrategy.shouldReuseRoute=()=>!1,this.router.onSameUrlNavigation="reload",this.store.dispatch(new x.Is),this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,this.apisCallStatus.GetFailedForwardingHistory.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.GetFailedForwardingHistory.message?JSON.stringify(this.apisCallStatus.GetFailedForwardingHistory.message):this.apisCallStatus.GetFailedForwardingHistory.message),this.failedEvents=t.failedForwardingHistory?t.failedForwardingHistory:[],this.failedEvents.length>0&&this.sort&&this.paginator&&this.loadFailedEventsTable(this.failedEvents),this.logger.info(t)})}ngAfterViewInit(){this.failedEvents.length>0&&this.loadFailedEventsTable(this.failedEvents)}onFailedEventClick(t){const e=[[{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:100,type:f.Gi.STRING}],[{key:"status",value:"local_failed"===t.status?"Local Failed":this.commonService.titleCase(t.status),title:"Status",width:50,type:f.Gi.STRING},{key:"received_time",value:t.received_time,title:"Received Time",width:50,type:f.Gi.DATE_TIME}],[{key:"in_channel",value:t.in_channel_alias,title:"Inbound Channel",width:50,type:f.Gi.STRING},{key:"in_msatoshi",value:t.in_msatoshi,title:"In (mSats)",width:50,type:f.Gi.NUMBER}]];this.store.dispatch(new Ft.wu({data:{type:f.n_.INFORMATION,alertTitle:"Event Information",message:e}}))}loadFailedEventsTable(t){this.failedForwardingEvents=new mt.by([...t]),this.failedForwardingEvents.sort=this.sort,this.failedForwardingEvents.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.failedForwardingEvents.paginator=this.paginator,this.failedForwardingEvents.filterPredicate=(t,e)=>((t.status?"local_failed"===t.status?"local failed":t.status.toLowerCase():"")+(t.received_time?this.datePipe.transform(new Date(1e3*t.received_time),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(t.resolved_time?this.datePipe.transform(new Date(1e3*t.resolved_time),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(t.in_channel?t.in_channel.toLowerCase():"")+(t.out_channel?t.out_channel.toLowerCase():"")+(t.in_msatoshi?t.in_msatoshi/1e3:"")+(t.out_msatoshi?t.out_msatoshi/1e3:"")+(t.fee?t.fee:"")).includes(e),this.logger.info(this.failedForwardingEvents)}onDownloadCSV(){this.failedForwardingEvents&&this.failedForwardingEvents.data&&this.failedForwardingEvents.data.length>0&&this.commonService.downloadFile(this.failedForwardingEvents.data,"Failed-transactions")}applyFilter(t){this.failedForwardingEvents.filter=t.value.trim().toLowerCase()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(T.v),o.Y36(y.yh),o.Y36(a.uU),o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-failed-history"]],viewQuery:function(t,e){if(1&t&&(o.Gf(ht.YE,5),o.Gf(pt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},features:[o._Bn([{provide:pt.ye,useValue:(0,f.pt)("Events")}])],decls:5,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","class","page-sub-title-container",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100","class","table-container",3,"perfectScrollbar",4,"ngIf"],["class","mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","status"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","received_time"],["matColumnDef","in_channel"],["matColumnDef","in_msatoshi"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,Pc,2,1,"div",1),o.YNc(2,Bc,4,0,"div",2),o.YNc(3,du,24,7,"div",3),o.YNc(4,pu,1,3,"mat-paginator",4),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf",""!==e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage))},directives:[l.xw,l.Wh,a.O5,l.yH,E.KE,xt.Nt,D.$V,mt.BZ,ht.YE,mt.w1,mt.fO,mt.Dz,mt.mD,mt.Ke,mt.as,mt.nj,r.pW,mt.ge,ht.nU,mt.ev,At.gD,At.$L,Ct.ey,q.lW,mt.yh,mt.Q2,a.mk,b.oO,mt.XQ,mt.Gk,pt.NW],pipes:[a.rS,a.uU,a.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();const mu=["tableIn"],gu=["tableOut"],fu=["paginatorIn"],xu=["paginatorOut"];function Zu(t,e){if(1&t&&(o.TgZ(0,"div",3),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.errorMessage)}}function yu(t,e){1&t&&o._UZ(0,"mat-progress-bar",37)}function Au(t,e){1&t&&(o.TgZ(0,"th",38),o._uU(1,"Channel ID"),o.qZA())}const Tu=function(t){return{"max-width":t}};function Cu(t,e){if(1&t&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,Tu,n.screenSize===n.screenSizeEnum.XS?"5rem":"10rem")),o.xp6(1),o.Oqu(t.channel_id)}}function wu(t,e){1&t&&(o.TgZ(0,"th",38),o._uU(1,"Peer Alias"),o.qZA())}function vu(t,e){if(1&t&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,Tu,n.screenSize===n.screenSizeEnum.XS?"5rem":"10rem")),o.xp6(1),o.Oqu(t.alias)}}function Su(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1,"Events"),o.qZA())}function bu(t,e){if(1&t&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.events))}}function qu(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1,"Amount (Sats)"),o.qZA())}function _u(t,e){if(1&t&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.total_amount))}}function Fu(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1,"Fee (Sats)"),o.qZA())}function Lu(t,e){if(1&t&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.total_fee))}}function Uu(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No incoming routing peer available."),o.qZA())}function Ru(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting incoming routing peers..."),o.qZA())}function ku(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function Nu(t,e){if(1&t&&(o.TgZ(0,"td",43),o.YNc(1,Uu,2,0,"p",44),o.YNc(2,Ru,2,0,"p",44),o.YNc(3,ku,2,1,"p",44),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.ERROR)}}const Iu=function(t){return{"display-none":t}};function Ou(t,e){if(1&t&&o._UZ(0,"tr",45),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,Iu,(null==t.RoutingPeersIncoming?null:t.RoutingPeersIncoming.data)&&(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)>0))}}function Eu(t,e){1&t&&o._UZ(0,"tr",46)}function Mu(t,e){1&t&&o._UZ(0,"tr",47)}function Ju(t,e){1&t&&o._UZ(0,"mat-progress-bar",37)}function Du(t,e){1&t&&(o.TgZ(0,"th",38),o._uU(1,"Channel ID"),o.qZA())}function Yu(t,e){if(1&t&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,Tu,n.screenSize===n.screenSizeEnum.XS?"5rem":"10rem")),o.xp6(1),o.Oqu(t.channel_id)}}function Qu(t,e){1&t&&(o.TgZ(0,"th",38),o._uU(1,"Peer Alias"),o.qZA())}function Pu(t,e){if(1&t&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,Tu,n.screenSize===n.screenSizeEnum.XS?"5rem":"10rem")),o.xp6(1),o.Oqu(t.alias)}}function Bu(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1,"Events"),o.qZA())}function Hu(t,e){if(1&t&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.events))}}function zu(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1,"Amount (Sats)"),o.qZA())}function Gu(t,e){if(1&t&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.total_amount))}}function Vu(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1,"Fee (Sats)"),o.qZA())}function Xu(t,e){if(1&t&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.total_fee))}}function Wu(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No outgoing routing peer available."),o.qZA())}function $u(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting outgoing routing peers..."),o.qZA())}function Ku(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function ju(t,e){if(1&t&&(o.TgZ(0,"td",43),o.YNc(1,Wu,2,0,"p",44),o.YNc(2,$u,2,0,"p",44),o.YNc(3,Ku,2,1,"p",44),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.ERROR)}}function td(t,e){if(1&t&&o._UZ(0,"tr",45),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,Iu,(null==t.RoutingPeersOutgoing?null:t.RoutingPeersOutgoing.data)&&(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)>0))}}function ed(t,e){1&t&&o._UZ(0,"tr",46)}function nd(t,e){1&t&&o._UZ(0,"tr",47)}const ad=function(t,e){return{"mt-2":t,"mt-1":e}},sd=function(){return["no_incoming_event"]},id=function(t){return{"mt-2":t}},od=function(){return["no_outgoing_event"]};function ld(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",4),o.TgZ(1,"div",5),o.TgZ(2,"div",6),o.TgZ(3,"div",7),o._uU(4,"Incoming"),o.qZA(),o.TgZ(5,"mat-form-field",8),o.TgZ(6,"input",9),o.NdJ("keyup",function(e){return o.CHM(t),o.oxw().applyIncomingFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(7,"div",10),o.YNc(8,yu,1,0,"mat-progress-bar",11),o.TgZ(9,"table",12,13),o.ynx(11,14),o.YNc(12,Au,2,0,"th",15),o.YNc(13,Cu,2,4,"td",16),o.BQk(),o.ynx(14,17),o.YNc(15,wu,2,0,"th",15),o.YNc(16,vu,2,4,"td",16),o.BQk(),o.ynx(17,18),o.YNc(18,Su,2,0,"th",19),o.YNc(19,bu,4,3,"td",20),o.BQk(),o.ynx(20,21),o.YNc(21,qu,2,0,"th",19),o.YNc(22,_u,4,3,"td",20),o.BQk(),o.ynx(23,22),o.YNc(24,Fu,2,0,"th",19),o.YNc(25,Lu,4,3,"td",20),o.BQk(),o.ynx(26,23),o.YNc(27,Nu,4,3,"td",24),o.BQk(),o.YNc(28,Ou,1,3,"tr",25),o.YNc(29,Eu,1,0,"tr",26),o.YNc(30,Mu,1,0,"tr",27),o.qZA(),o.qZA(),o._UZ(31,"mat-paginator",28,29),o.qZA(),o.TgZ(33,"div",30),o.TgZ(34,"div",6),o.TgZ(35,"div",7),o._uU(36,"Outgoing"),o.qZA(),o.TgZ(37,"mat-form-field",8),o.TgZ(38,"input",9,31),o.NdJ("keyup",function(e){return o.CHM(t),o.oxw().applyOutgoingFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(40,"div",32),o.YNc(41,Ju,1,0,"mat-progress-bar",11),o.TgZ(42,"table",33,34),o.ynx(44,14),o.YNc(45,Du,2,0,"th",15),o.YNc(46,Yu,2,4,"td",16),o.BQk(),o.ynx(47,17),o.YNc(48,Qu,2,0,"th",15),o.YNc(49,Pu,2,4,"td",16),o.BQk(),o.ynx(50,18),o.YNc(51,Bu,2,0,"th",19),o.YNc(52,Hu,4,3,"td",20),o.BQk(),o.ynx(53,21),o.YNc(54,zu,2,0,"th",19),o.YNc(55,Gu,4,3,"td",20),o.BQk(),o.ynx(56,22),o.YNc(57,Vu,2,0,"th",19),o.YNc(58,Xu,4,3,"td",20),o.BQk(),o.ynx(59,35),o.YNc(60,ju,4,3,"td",24),o.BQk(),o.YNc(61,td,1,3,"tr",25),o.YNc(62,ed,1,0,"tr",26),o.YNc(63,nd,1,0,"tr",27),o.qZA(),o._UZ(64,"mat-paginator",28,36),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(2),o.Q6J("ngClass",o.WLB(20,ad,t.screenSize===t.screenSizeEnum.XS,t.screenSize===t.screenSizeEnum.SM)),o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.RoutingPeersIncoming),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(23,sd)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS),o.xp6(3),o.Q6J("ngClass",o.VKq(24,id,t.screenSize!==t.screenSizeEnum.LG)),o.xp6(7),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.GetForwardingHistory.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.RoutingPeersOutgoing),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(26,od)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let rd=(()=>{class t{constructor(t,e,n){this.logger=t,this.commonService=e,this.store=n,this.eventsData=[],this.filterValue="",this.successfulEvents=[],this.displayedColumns=[],this.RoutingPeersIncoming=[],this.RoutingPeersOutgoing=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","total_fee"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","events","total_fee"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","events","total_amount","total_fee"]):(this.flgSticky=!0,this.displayedColumns=["channel_id","alias","events","total_amount","total_fee"])}ngOnInit(){this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.eventsData.length<=0&&(this.errorMessage="",this.apisCallStatus=t.apisCallStatus,this.apisCallStatus.GetForwardingHistory.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.GetForwardingHistory.message?JSON.stringify(this.apisCallStatus.GetForwardingHistory.message):this.apisCallStatus.GetForwardingHistory.message),this.successfulEvents=t.forwardingHistory?t.forwardingHistory:[],this.successfulEvents.length>0&&this.sortIn&&this.paginatorIn&&this.sortOut&&this.paginatorOut&&this.loadRoutingPeersTable(this.successfulEvents),this.logger.info(t))})}ngAfterViewInit(){this.successfulEvents.length>0&&this.loadRoutingPeersTable(this.successfulEvents)}ngOnChanges(t){t.eventsData&&(this.eventsData=t.eventsData.currentValue,this.successfulEvents=this.eventsData,t.eventsData.firstChange||this.loadRoutingPeersTable(this.successfulEvents))}loadRoutingPeersTable(t){if(t.length>0){const e=this.groupRoutingPeers(t);this.RoutingPeersIncoming=new mt.by(e[0]),this.RoutingPeersIncoming.sort=this.sortIn,this.RoutingPeersIncoming.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.RoutingPeersIncoming.paginator=this.paginatorIn,this.logger.info(this.RoutingPeersIncoming),this.RoutingPeersOutgoing=new mt.by(e[1]),this.RoutingPeersOutgoing.sort=this.sortOut,this.RoutingPeersOutgoing.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.RoutingPeersOutgoing.paginator=this.paginatorOut,this.logger.info(this.RoutingPeersOutgoing)}else this.RoutingPeersIncoming=new mt.by([]),this.RoutingPeersOutgoing=new mt.by([]);this.logger.info(this.RoutingPeersIncoming),this.logger.info(this.RoutingPeersOutgoing)}groupRoutingPeers(t){const e=[],n=[];return t.forEach(t=>{const a=e.find(e=>e.channel_id===t.in_channel),s=n.find(e=>e.channel_id===t.out_channel);a?(a.events++,a.total_amount=+a.total_amount+ +t.in_msatoshi,a.total_fee=t.in_msatoshi-t.out_msatoshi+ +a.total_fee):e.push({channel_id:t.in_channel,alias:t.in_channel_alias,events:1,total_amount:t.in_msatoshi,total_fee:t.in_msatoshi-t.out_msatoshi}),s?(s.events++,s.total_amount=+s.total_amount+ +t.out_msatoshi,s.total_fee=t.in_msatoshi-t.out_msatoshi+ +s.total_fee):n.push({channel_id:t.out_channel,alias:t.out_channel_alias,events:1,total_amount:t.out_msatoshi,total_fee:t.in_msatoshi-t.out_msatoshi})}),[this.commonService.sortDescByKey(e,"total_fee"),this.commonService.sortDescByKey(n,"total_fee")]}applyIncomingFilter(t){this.RoutingPeersIncoming.filter=t.value.trim().toLowerCase()}applyOutgoingFilter(t){this.RoutingPeersOutgoing.filter=t.value.trim().toLowerCase()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(T.v),o.Y36(y.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-routing-peers"]],viewQuery:function(t,e){if(1&t&&(o.Gf(mu,5,ht.YE),o.Gf(gu,5,ht.YE),o.Gf(fu,5),o.Gf(xu,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sortIn=t.first),o.iGM(t=o.CRH())&&(e.sortOut=t.first),o.iGM(t=o.CRH())&&(e.paginatorIn=t.first),o.iGM(t=o.CRH())&&(e.paginatorOut=t.first)}},inputs:{eventsData:"eventsData",filterValue:"filterValue"},features:[o._Bn([{provide:pt.ye,useValue:(0,f.pt)("Peers")}]),o.TTD],decls:3,vars:2,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between stretch","class","page-sub-title-container",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between stretch",1,"page-sub-title-container"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"page-sub-title-container","w-100",3,"ngClass"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",1,"overflow-auto","incoming-table",3,"dataSource"],["tableIn",""],["matColumnDef","channel_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","events"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","total_amount"],["matColumnDef","total_fee"],["matColumnDef","no_incoming_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["paginatorIn",""],["fxLayout","column","fxFlex","49","fxLayoutAlign","end stretch"],["filterOut",""],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","matSort","",1,"overflow-auto","outgoing-table",3,"dataSource"],["tableOut",""],["matColumnDef","no_outgoing_event"],["paginatorOut",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,Zu,2,1,"div",1),o.YNc(2,ld,66,27,"div",2),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf",""!==e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage))},directives:[l.xw,l.Wh,a.O5,l.yH,a.mk,b.oO,E.KE,xt.Nt,D.$V,mt.BZ,ht.YE,mt.w1,mt.fO,mt.Dz,mt.mD,mt.Ke,mt.as,mt.nj,pt.NW,r.pW,mt.ge,ht.nU,mt.ev,a.PC,b.Zl,mt.yh,mt.Q2,mt.XQ,mt.Gk],pipes:[a.JJ],styles:[".mat-column-alias[_ngcontent-%COMP%], .mat-column-channelId[_ngcontent-%COMP%]{flex:1 1 10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),t})();function cd(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",7),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().activeLink=e.link}),o._uU(1),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.s9C("routerLink",t.link),o.Q6J("active",n.activeLink===t.link),o.xp6(1),o.Oqu(t.name)}}let ud=(()=>{class t{constructor(t){this.router=t,this.faChartBar=g.koM,this.links=[{link:"routingfees",name:"Routing Fees"},{link:"transactions",name:"Transactions"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,p.R)(this.unSubs[0]),(0,h.h)(t=>t instanceof s.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(s.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-reports"]],decls:10,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Reports"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o.TgZ(7,"nav",5),o.YNc(8,cd,2,3,"div",6),o.qZA(),o._UZ(9,"router-outlet"),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("icon",e.faChartBar),o.xp6(7),o.Q6J("ngForOf",e.links))},directives:[l.xw,l.Wh,C.BN,v.a8,v.dn,dt.BU,a.sg,s.lC,dt.Nj,s.rH],styles:[""]}),t})();var dd=n(4833),pd=n(4018),hd=n(1905);function md(t,e){1&t&&(o.TgZ(0,"div",9),o._UZ(1,"mat-progress-bar",10),o.TgZ(2,"p"),o._uU(3,"Getting fee report..."),o.qZA(),o.qZA())}function gd(t,e){if(1&t&&(o.TgZ(0,"div",11),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.errorMessage)}}function fd(t,e){if(1&t&&(o.TgZ(0,"div",12),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&t){const t=o.oxw();o.Q6J("@fadeIn",t.totalFeeMsat),o.xp6(1),o.AsE("",o.xi3(2,3,t.totalFeeMsat/1e3||0,"1.0-2")," Sats/",o.lcZ(3,6,t.filteredEventsBySelectedPeriod.length||0)," Events")}}function xd(t,e){1&t&&(o.TgZ(0,"div",9),o._uU(1,"No fee report for the selected period"),o.qZA())}function Zd(t,e){if(1&t&&(o.TgZ(0,"span"),o.TgZ(1,"span",15),o._uU(2),o.ALo(3,"number"),o.qZA(),o.TgZ(4,"span",15),o._uU(5),o.ALo(6,"number"),o.qZA(),o.qZA()),2&t){const t=e.model;o.xp6(2),o.hij("Events: ",o.lcZ(3,2,t.extra.totalEvents||0),""),o.xp6(3),o.hij("Fee: ",o.xi3(6,4,t.value||0,"1.0-2"),"")}}function yd(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"ngx-charts-bar-vertical",13),o.NdJ("select",function(e){return o.CHM(t),o.oxw().onChartBarSelected(e)})("mouseup",function(e){return o.CHM(t),o.oxw().onChartMouseUp(e)}),o.YNc(1,Zd,7,7,"ng-template",null,14,o.W1O),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("view",t.view)("results",t.feeReportData)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",t.showYAxisLabel)("xAxisLabel",t.xAxisLabel)("yAxisLabel",t.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)}}function Ad(t,e){if(1&t&&o._UZ(0,"rtl-cl-forwarding-history",16),2&t){const t=o.oxw();o.Q6J("eventsData",t.filteredEventsBySelectedPeriod)("filterValue",t.eventFilterValue)}}let Td=(()=>{class t{constructor(t,e,n){this.logger=t,this.commonService=e,this.store=n,this.reportPeriod=f.op[0],this.secondsInADay=86400,this.events=[],this.filteredEventsBySelectedPeriod=[],this.eventFilterValue="",this.totalFeeMsat=null,this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.feeReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Fee (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===f.cu.XS||this.screenSize===f.cu.SM),this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.GetForwardingHistory.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof t.apisCallStatus.GetForwardingHistory.message?JSON.stringify(t.apisCallStatus.GetForwardingHistory.message):t.apisCallStatus.GetForwardingHistory.message),this.events=t.forwardingHistory?t.forwardingHistory:[],this.filterForwardingEvents(this.startDate,this.endDate),this.logger.info(t)})}ngAfterContentInit(){const t=this.commonService.getContainerSize();switch(this.screenSize){case f.cu.MD:this.screenPaddingX=t.width/10;break;case f.cu.LG:this.screenPaddingX=t.width/16;break;default:this.screenPaddingX=t.width/20}this.view=[t.width-this.screenPaddingX,t.height/2.2]}filterForwardingEvents(t,e){const n=Math.round(t.getTime()/1e3),a=Math.round(e.getTime()/1e3);this.filteredEventsBySelectedPeriod=[],this.feeReportData=[],this.totalFeeMsat=null,this.events&&this.events.length>0&&(this.events.forEach(t=>{t.received_time>=n&&t.received_time0&&"ngx-charts"===t.srcElement.classList[0]&&(this.eventFilterValue="")}onChartBarSelected(t){this.eventFilterValue=this.reportPeriod===f.op[1]?t.name+"/"+this.startDate.getFullYear():t.name.toString().padStart(2,"0")+"/"+f.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}prepareFeeReport(t){const e=Math.round(t.getTime()/1e3),n=[];if(this.reportPeriod===f.op[1]){for(let t=0;t<12;t++)n.push({name:f.gg[t].name,value:1e-9,extra:{totalEvents:0}});this.filteredEventsBySelectedPeriod.map(t=>{const e=new Date(1e3*+t.received_time).getMonth();return n[e].value=n[e].value+ +t.fee/1e3,n[e].extra.totalEvents=n[e].extra.totalEvents+1,this.totalFeeMsat=(this.totalFeeMsat?this.totalFeeMsat:0)+ +t.fee,this.filteredEventsBySelectedPeriod})}else{for(let e=0;e{const a=Math.floor((+t.received_time-e)/this.secondsInADay);return n[a].value=n[a].value+ +t.fee/1e3,n[a].extra.totalEvents=n[a].extra.totalEvents+1,this.totalFeeMsat=(this.totalFeeMsat?this.totalFeeMsat:0)+ +t.fee,this.filteredEventsBySelectedPeriod})}return n}onSelectionChange(t){const e=t.selDate.getMonth(),n=t.selDate.getFullYear();this.reportPeriod=t.selScrollRange,this.reportPeriod===f.op[1]?(this.startDate=new Date(n,0,1,0,0,0),this.endDate=new Date(n,11,31,23,59,59)):(this.startDate=new Date(n,e,1,0,0,0),this.endDate=new Date(n,e,this.getMonthDays(e,n),23,59,59)),this.filterForwardingEvents(this.startDate,this.endDate),this.eventFilterValue=""}getMonthDays(t,e){return 1===t&&e%4==0?f.gg[t].days+1:f.gg[t].days}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(Z.mQ),o.Y36(T.v),o.Y36(y.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-fee-report"]],hostBindings:function(t,e){1&t&&o.NdJ("mouseup",function(t){return e.onChartMouseUp(t)})},decls:11,vars:6,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1 error-border",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],[1,"mt-1"],["class","one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup",4,"ngIf"],[3,"eventsData","filterValue",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],["mode","indeterminate"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1","error-border"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],[1,"one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"eventsData","filterValue"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"rtl-horizontal-scroller",1),o.NdJ("stepChanged",function(t){return e.onSelectionChange(t)}),o.qZA(),o.TgZ(2,"div",2),o.YNc(3,md,4,0,"div",3),o.YNc(4,gd,2,1,"div",4),o.YNc(5,fd,4,8,"div",5),o.YNc(6,xd,2,0,"div",3),o.TgZ(7,"div",6),o.YNc(8,yd,3,11,"ngx-charts-bar-vertical",7),o.qZA(),o.TgZ(9,"div",6),o.YNc(10,Ad,1,2,"rtl-cl-forwarding-history",8),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.ERROR),o.xp6(1),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.COMPLETED&&e.feeReportData.length>0&&e.filteredEventsBySelectedPeriod.length>0),o.xp6(1),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.COMPLETED&&(e.feeReportData.length<=0||e.filteredEventsBySelectedPeriod.length<=0)),o.xp6(2),o.Q6J("ngIf",e.feeReportData.length>0&&e.filteredEventsBySelectedPeriod.length>0),o.xp6(2),o.Q6J("ngIf",e.filteredEventsBySelectedPeriod&&e.filteredEventsBySelectedPeriod.length>0))},directives:[l.xw,l.Wh,l.yH,pd.D,a.O5,r.pW,hd.K$,Qc],pipes:[a.JJ],styles:[""],data:{animation:[dd.J]}}),t})();var Cd=n(6590);function wd(t,e){if(1&t&&(o.TgZ(0,"div",10),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.AsE(" Paid ",o.xi3(2,2,t.transactionsReportSummary.amountPaidSelectedPeriod/1e3||0,"1.0-2")," Sats/",o.lcZ(3,5,t.transactionsReportSummary.paymentsSelectedPeriod)," Payments ")}}function vd(t,e){if(1&t&&(o.TgZ(0,"div",10),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.AsE(" Received ",o.xi3(2,2,t.transactionsReportSummary.amountReceivedSelectedPeriod/1e3||0,"1.0-2")," Sats/",o.lcZ(3,5,t.transactionsReportSummary.invoicesSelectedPeriod)," Invoices ")}}function Sd(t,e){if(1&t&&(o.TgZ(0,"div",8),o.YNc(1,wd,4,7,"div",9),o.YNc(2,vd,4,7,"div",9),o.qZA()),2&t){const t=o.oxw();o.Q6J("@fadeIn",t.transactionsReportSummary),o.xp6(1),o.Q6J("ngIf",t.transactionsReportSummary.paymentsSelectedPeriod),o.xp6(1),o.Q6J("ngIf",t.transactionsReportSummary.invoicesSelectedPeriod)}}function bd(t,e){1&t&&(o.TgZ(0,"div",11),o._uU(1,"No transactions report for the selected period"),o.qZA())}function qd(t,e){if(1&t&&(o.TgZ(0,"span",14),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&t){const t=e.model;o.xp6(1),o.HOy("",t.name,": ",o.xi3(2,4,t.value||0,"1.0-2"),"/# ","Paid"===t.name?"Payments":"Invoices",": ",o.lcZ(3,7,(null==t.extra?null:t.extra.total)||0),"")}}function _d(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"ngx-charts-bar-vertical-2d",12),o.NdJ("select",function(e){return o.CHM(t),o.oxw().onChartBarSelected(e)})("mouseup",function(e){return o.CHM(t),o.oxw().onChartMouseUp(e)}),o.YNc(1,qd,4,9,"ng-template",null,13,o.W1O),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("view",t.view)("results",t.transactionsReportData)("noBarWhenZero",!1)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",t.showYAxisLabel)("xAxisLabel",t.xAxisLabel)("yAxisLabel",t.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)("groupPadding",t.reportPeriod===t.scrollRanges[0]?2:4)}}function Fd(t,e){if(1&t&&o._UZ(0,"rtl-transactions-report-table",15),2&t){const t=o.oxw();o.Q6J("dataList",t.transactionsNonZeroReportData)("dataRange",t.reportPeriod)("filterValue",t.transactionFilterValue)}}let Ld=(()=>{class t{constructor(t,e){this.commonService=t,this.store=e,this.scrollRanges=f.op,this.reportPeriod=f.op[0],this.secondsInADay=86400,this.payments=[],this.invoices=[],this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0},this.transactionFilterValue="",this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.transactionsReportData=[],this.transactionsNonZeroReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Amount (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=f.cu,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===f.cu.XS||this.screenSize===f.cu.SM),this.store.select("cl").pipe((0,p.R)(this.unSubs[0])).subscribe(t=>{this.payments=t.payments,this.invoices=t.invoices.invoices,this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData()})}ngAfterContentInit(){const t=this.commonService.getContainerSize();switch(this.screenSize){case f.cu.MD:this.screenPaddingX=t.width/10;break;case f.cu.LG:this.screenPaddingX=t.width/16;break;default:this.screenPaddingX=t.width/20}this.view=[t.width-this.screenPaddingX,t.height/2.2]}onChartMouseUp(t){"svg"===t.srcElement.tagName&&t.srcElement.classList.length>0&&"ngx-charts"===t.srcElement.classList[0]&&(this.transactionFilterValue="")}onChartBarSelected(t){this.transactionFilterValue=this.reportPeriod===f.op[1]?t.series+"/"+this.startDate.getFullYear():t.series.toString().padStart(2,"0")+"/"+f.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}filterTransactionsForSelectedPeriod(t,e){const n=Math.round(t.getTime()/1e3),a=Math.round(e.getTime()/1e3),s=[];this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0};const i=this.payments.filter(t=>"complete"===t.status&&t.created_at>=n&&t.created_at"paid"===t.status&&t.paid_at>=n&&t.paid_at{const e=new Date(1e3*t.created_at).getMonth();return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+t.msatoshi_sent,s[e].series[0].value=s[e].series[0].value+t.msatoshi_sent/1e3,s[e].series[0].extra.total=s[e].series[0].extra.total+1,this.transactionsReportSummary}),o.map(t=>{const e=new Date(1e3*+t.paid_at).getMonth();return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+t.msatoshi_received,s[e].series[1].value=s[e].series[1].value+t.msatoshi_received/1e3,s[e].series[1].extra.total=s[e].series[1].extra.total+1,this.transactionsReportSummary})}else{for(let e=0;e{const e=Math.floor((+t.created_at-n)/this.secondsInADay);return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+t.msatoshi_sent,s[e].series[0].value=s[e].series[0].value+t.msatoshi_sent/1e3,s[e].series[0].extra.total=s[e].series[0].extra.total+1,this.transactionsReportSummary}),o.map(t=>{const e=Math.floor((+t.paid_at-n)/this.secondsInADay);return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+t.msatoshi_received,s[e].series[1].value=s[e].series[1].value+t.msatoshi_received/1e3,s[e].series[1].extra.total=s[e].series[1].extra.total+1,this.transactionsReportSummary})}return s}prepareTableData(){return this.transactionsReportData.reduce((t,e)=>e.series[0].extra.total>0||e.series[1].extra.total>0?t.concat({date:e.date,amount_paid:e.series[0].value,num_payments:e.series[0].extra.total,amount_received:e.series[1].value,num_invoices:e.series[1].extra.total}):t,[])}onSelectionChange(t){const e=t.selDate.getMonth(),n=t.selDate.getFullYear();this.reportPeriod=t.selScrollRange,this.reportPeriod===f.op[1]?(this.startDate=new Date(n,0,1,0,0,0),this.endDate=new Date(n,11,31,23,59,59)):(this.startDate=new Date(n,e,1,0,0,0),this.endDate=new Date(n,e,this.getMonthDays(e,n),23,59,59)),this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData(),this.transactionFilterValue=""}getMonthDays(t,e){return 1===t&&e%4==0?f.gg[t].days+1:f.gg[t].days}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(T.v),o.Y36(y.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-transactions-report"]],hostBindings:function(t,e){1&t&&o.NdJ("mouseup",function(t){return e.onChartMouseUp(t)})},decls:9,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],[1,"mt-1"],["class","two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup",4,"ngIf"],[3,"dataList","dataRange","filterValue",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],[1,"two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"dataList","dataRange","filterValue"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"rtl-horizontal-scroller",1),o.NdJ("stepChanged",function(t){return e.onSelectionChange(t)}),o.qZA(),o.TgZ(2,"div",2),o.YNc(3,Sd,3,3,"div",3),o.YNc(4,bd,2,0,"div",4),o.TgZ(5,"div",5),o.YNc(6,_d,3,13,"ngx-charts-bar-vertical-2d",6),o.qZA(),o.TgZ(7,"div",5),o.YNc(8,Fd,1,3,"rtl-transactions-report-table",7),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Q6J("ngIf",e.transactionsNonZeroReportData.length>0),o.xp6(1),o.Q6J("ngIf",e.transactionsNonZeroReportData.length<=0),o.xp6(2),o.Q6J("ngIf",e.transactionsNonZeroReportData.length>0),o.xp6(2),o.Q6J("ngIf",e.transactionsNonZeroReportData.length>0))},directives:[l.xw,l.Wh,l.yH,pd.D,a.O5,hd.H5,Cd.g],pipes:[a.JJ],styles:[""],data:{animation:[dd.J]}}),t})();var Ud=n(6013),Rd=n(8016);const kd=s.Bz.forChild([{path:"",component:u,children:[{path:"",pathMatch:"full",redirectTo:"home"},{path:"home",component:$n,canActivate:[Ud.lB]},{path:"onchain",component:ms,canActivate:[Ud.lB],children:[{path:"",pathMatch:"full",redirectTo:"receive/utxos"},{path:"receive/:selTab",component:Ui,canActivate:[Ud.lB]},{path:"send/:selTab",component:Ri,data:{sweepAll:!1},canActivate:[Ud.lB]},{path:"sweep/:selTab",component:Ri,data:{sweepAll:!0},canActivate:[Ud.lB]}]},{path:"connections",component:xs,canActivate:[Ud.lB],children:[{path:"",pathMatch:"full",redirectTo:"channels"},{path:"channels",component:io,canActivate:[Ud.lB],children:[{path:"",pathMatch:"full",redirectTo:"open"},{path:"open",component:Ko,canActivate:[Ud.lB]},{path:"pending",component:Ml,canActivate:[Ud.lB]}]},{path:"peers",component:_r,data:{sweepAll:!1},canActivate:[Ud.lB]}]},{path:"transactions",component:ys,canActivate:[Ud.lB],children:[{path:"",pathMatch:"full",redirectTo:"payments"},{path:"payments",component:vn,canActivate:[Ud.lB]},{path:"invoices",component:re,canActivate:[Ud.lB]},{path:"queryroutes",component:Kr,canActivate:[Ud.lB]}]},{path:"messages",component:_i,canActivate:[Ud.lB],children:[{path:"",pathMatch:"full",redirectTo:"sign"},{path:"sign",component:ec,canActivate:[Ud.lB]},{path:"verify",component:cc,canActivate:[Ud.lB]}]},{path:"routing",component:Ts,canActivate:[Ud.lB],children:[{path:"",pathMatch:"full",redirectTo:"forwardinghistory"},{path:"forwardinghistory",component:Qc,canActivate:[Ud.lB]},{path:"failedtransactions",component:hu,canActivate:[Ud.lB]},{path:"routingpeers",component:rd,canActivate:[Ud.lB]}]},{path:"reports",component:ud,canActivate:[Ud.lB],children:[{path:"",pathMatch:"full",redirectTo:"routingfees"},{path:"routingfees",component:Td,canActivate:[Ud.lB]},{path:"transactions",component:Ld,canActivate:[Ud.lB]}]},{path:"lookups",component:js,canActivate:[Ud.lB]},{path:"rates",component:bi,canActivate:[Ud.lB]},{path:"**",component:Rd.w},{path:"network",redirectTo:"rates"},{path:"wallet",redirectTo:"home"},{path:"backup",redirectTo:"home"}]}]);var Nd=n(253);let Id=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=o.oAB({type:t,bootstrap:[u]}),t.\u0275inj=o.cJS({providers:[Ud.lB],imports:[[a.ez,Nd.m,kd]]}),t})()}}]); \ No newline at end of file diff --git a/angular/432.95e7cd048ce3f51df4b4.js b/angular/432.95e7cd048ce3f51df4b4.js deleted file mode 100644 index 20a4e475..00000000 --- a/angular/432.95e7cd048ce3f51df4b4.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkrtl=self.webpackChunkrtl||[]).push([[432],{1432:(t,e,n)=>{"use strict";n.r(e),n.d(e,{ECLModule:()=>fc});var a=n(1511),i=n(6853),s=n(2865),o=n(1572),l=n(3722),r=n(5994);function c(t,e){1&t&&o._UZ(0,"mat-progress-bar",3)}let u=(()=>{class t{constructor(t){this.router=t,this.loading=!1,this.router.events.subscribe(t=>{switch(!0){case t instanceof i.OD:this.loading=!0;break;case t instanceof i.m2:case t instanceof i.gk:case t instanceof i.Q3:this.loading=!1}})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(i.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-root"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"inner-sidenav-content"],["color","primary","mode","indeterminate",4,"ngIf"],["outlet","outlet"],["color","primary","mode","indeterminate"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,c,1,0,"mat-progress-bar",1),o._UZ(2,"router-outlet",null,2),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf",e.loading))},directives:[l.xw,l.yH,l.Wh,a.O5,i.lC,r.pW],styles:[""],data:{animation:[s.g]}}),t})();var d=n(9666),m=n(9568),p=n(7810),h=n(5291),g=n(9421),f=n(3869),x=n(964),Z=n(5573),y=n(1084),A=n(7592),C=n(7271),T=n(7439),w=n(8055),S=n(377),v=n(5980),q=n(3691);const b=function(t){return{backgroundColor:t}};function L(t,e){if(1&t&&o._UZ(0,"span",6),2&t){const t=o.oxw();o.Q6J("ngStyle",o.VKq(1,b,null==t.information?null:t.information.color))}}function F(t,e){if(1&t&&(o.TgZ(0,"div"),o.TgZ(1,"h4",1),o._uU(2,"Color"),o.qZA(),o.TgZ(3,"div",2),o._UZ(4,"span",7),o._uU(5),o.ALo(6,"uppercase"),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(4),o.Q6J("ngStyle",o.VKq(4,b,null==t.information?null:t.information.color)),o.xp6(1),o.hij(" ",o.lcZ(6,2,null==t.information?null:t.information.color)," ")}}function I(t,e){if(1&t&&(o.TgZ(0,"span",2),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(t)}}let N=(()=>{class t{constructor(t){this.commonService=t,this.chains=[""]}ngOnChanges(){this.chains=[],this.chains.push("Bitcoin "+(this.information.network?this.commonService.titleCase(this.information.network):"Testnet"))}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(y.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-node-info"]],inputs:{information:"information",showColorFieldSeparately:"showColorFieldSeparately"},features:[o.TTD],decls:17,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["class","dashboard-node-dot dot",3,"ngStyle",4,"ngIf"],[4,"ngIf"],["class","overflow-wrap dashboard-info-value",4,"ngFor","ngForOf"],[1,"dashboard-node-dot","dot",3,"ngStyle"],[1,"dashboard-node-square",3,"ngStyle"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div"),o.TgZ(2,"h4",1),o._uU(3,"Alias"),o.qZA(),o.TgZ(4,"div",2),o._uU(5),o.YNc(6,L,1,3,"span",3),o.qZA(),o.qZA(),o.YNc(7,F,7,6,"div",4),o.TgZ(8,"div"),o.TgZ(9,"h4",1),o._uU(10,"Implementation"),o.qZA(),o.TgZ(11,"div",2),o._uU(12),o.qZA(),o.qZA(),o.TgZ(13,"div"),o.TgZ(14,"h4",1),o._uU(15,"Chain"),o.qZA(),o.YNc(16,I,2,1,"span",5),o.qZA(),o.qZA()),2&t&&(o.xp6(5),o.hij(" ",null==e.information?null:e.information.alias," "),o.xp6(1),o.Q6J("ngIf",!e.showColorFieldSeparately),o.xp6(1),o.Q6J("ngIf",e.showColorFieldSeparately),o.xp6(5),o.Oqu(null!=e.information&&e.information.lnImplementation||null!=e.information&&e.information.version?(null==e.information?null:e.information.lnImplementation)+" "+(null==e.information?null:e.information.version):""),o.xp6(4),o.Q6J("ngForOf",e.chains))},directives:[l.xw,l.yH,l.Wh,a.O5,a.sg,a.PC,S.Zl],pipes:[a.gd],styles:[""]}),t})();function _(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div"),o.TgZ(2,"h4",3),o._uU(3,"Lightning"),o.qZA(),o.TgZ(4,"div",4),o._uU(5),o.ALo(6,"number"),o.qZA(),o._UZ(7,"mat-progress-bar",5),o.qZA(),o.TgZ(8,"div"),o.TgZ(9,"h4",3),o._uU(10,"On-chain"),o.qZA(),o.TgZ(11,"div",4),o._uU(12),o.ALo(13,"number"),o.qZA(),o._UZ(14,"mat-progress-bar",5),o.qZA(),o.TgZ(15,"div"),o.TgZ(16,"h4",3),o._uU(17,"Total"),o.qZA(),o.TgZ(18,"div",4),o._uU(19),o.ALo(20,"number"),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(5),o.hij("",o.lcZ(6,5,t.balances.lightning)," Sats"),o.xp6(2),o.s9C("value",t.balances.lightning/t.balances.total*100),o.xp6(5),o.hij("",o.lcZ(13,7,t.balances.onchain)," Sats"),o.xp6(2),o.s9C("value",t.balances.onchain/t.balances.total*100),o.xp6(5),o.hij("",o.lcZ(20,9,t.balances.total)," Sats")}}function D(t,e){if(1&t&&(o.TgZ(0,"div",6),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let k=(()=>{class t{constructor(){this.balances={onchain:0,lightning:0,total:0}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-balances-info"]],inputs:{balances:"balances",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,_,21,11,"div",0),o.YNc(1,D,3,1,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.yH,l.Wh,r.pW],pipes:[a.JJ],styles:[""]}),t})();var O=n(6283),U=n(6828),R=n(7679),M=n(7038);function J(t,e){if(1&t&&(o.TgZ(0,"div",19),o.TgZ(1,"span",20),o._uU(2),o.ALo(3,"slice"),o.qZA(),o.TgZ(4,"div",6),o.TgZ(5,"mat-hint",21),o.TgZ(6,"strong",8),o._uU(7,"Local:"),o.qZA(),o._uU(8),o.ALo(9,"number"),o.qZA(),o.TgZ(10,"mat-hint",22),o._UZ(11,"fa-icon",23),o._uU(12),o.ALo(13,"number"),o.qZA(),o.TgZ(14,"mat-hint",24),o.TgZ(15,"strong",8),o._uU(16,"Remote:"),o.qZA(),o._uU(17),o.ALo(18,"number"),o.qZA(),o.qZA(),o._UZ(19,"mat-progress-bar",25),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(3);o.xp6(1),o.s9C("matTooltip",t.alias||t.shortChannelId),o.s9C("matTooltipDisabled",(t.alias||t.shortChannelId).length<26),o.xp6(1),o.AsE("",o.Dn7(3,9,(null==t?null:t.alias)||(null==t?null:t.shortChannelId),0,24),"",((null==t?null:t.alias)||(null==t?null:t.shortChannelId)).length>25?"...":"",""),o.xp6(6),o.hij("",o.xi3(9,13,(null==t?null:t.toLocal)||0,"1.0-0")," Sats"),o.xp6(3),o.Q6J("icon",n.faBalanceScale),o.xp6(1),o.hij(" (",o.lcZ(13,16,(null==t?null:t.balancedness)||0),") "),o.xp6(5),o.hij("",o.xi3(18,18,(null==t?null:t.toRemote)||0,"1.0-0")," Sats"),o.xp6(2),o.s9C("value",t.toLocal&&t.toLocal>0?+t.toLocal/(+t.toLocal+ +t.toRemote)*100:0)}}function P(t,e){if(1&t&&(o.TgZ(0,"div",17),o.YNc(1,J,20,21,"div",18),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngForOf",t.allChannels)}}function E(t,e){if(1&t&&(o.TgZ(0,"div",3),o.TgZ(1,"div",4),o.TgZ(2,"span",5),o._uU(3,"Total Capacity"),o.qZA(),o.TgZ(4,"div",6),o.TgZ(5,"mat-hint",7),o.TgZ(6,"strong",8),o._uU(7,"Local:"),o.qZA(),o._uU(8),o.ALo(9,"number"),o.qZA(),o.TgZ(10,"mat-hint",9),o._UZ(11,"fa-icon",10),o._uU(12),o.ALo(13,"number"),o.qZA(),o.TgZ(14,"mat-hint",11),o.TgZ(15,"strong",8),o._uU(16,"Remote:"),o.qZA(),o._uU(17),o.ALo(18,"number"),o.qZA(),o.qZA(),o._UZ(19,"mat-progress-bar",12),o.qZA(),o.TgZ(20,"div",13),o._UZ(21,"mat-divider",14),o.qZA(),o.TgZ(22,"div",15),o.YNc(23,P,2,1,"div",16),o.qZA(),o.qZA()),2&t){const t=o.oxw(),e=o.MAs(2);o.xp6(8),o.hij("",o.xi3(9,7,(null==t.channelBalances?null:t.channelBalances.localBalance)||0,"1.0-0")," Sats"),o.xp6(3),o.Q6J("icon",t.faBalanceScale),o.xp6(1),o.hij(" (",o.lcZ(13,10,(null==t.channelBalances?null:t.channelBalances.balancedness)||0),") "),o.xp6(5),o.hij("",o.xi3(18,12,(null==t.channelBalances?null:t.channelBalances.remoteBalance)||0,"1.0-0")," Sats"),o.xp6(2),o.s9C("value",null!=t.channelBalances&&t.channelBalances.localBalance&&(null==t.channelBalances?null:t.channelBalances.localBalance)>0?+(null==t.channelBalances?null:t.channelBalances.localBalance)/(+(null==t.channelBalances?null:t.channelBalances.localBalance)+ +(null==t.channelBalances?null:t.channelBalances.remoteBalance))*100:0),o.xp6(4),o.Q6J("ngIf",t.allChannels&&(null==t.allChannels?null:t.allChannels.length)>0)("ngIfElse",e)}}function Y(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",26),o._uU(1," No channels available. "),o.TgZ(2,"button",27),o.NdJ("click",function(){return o.CHM(t),o.oxw().goToChannels()}),o._uU(3,"Open Channel"),o.qZA(),o.qZA()}}function Q(t,e){if(1&t&&(o.TgZ(0,"div",28),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let B=(()=>{class t{constructor(t){this.router=t,this.faBalanceScale=h.DL8,this.faDumbbell=h.FlN,this.sortBy="Balance Score"}goToChannels(){this.router.navigateByUrl("/ecl/connections")}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(i.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-channel-capacity-info"]],inputs:{channelBalances:"channelBalances",allChannels:"allChannels",sortBy:"sortBy",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90"],[1,"font-weight-900","mr-5px"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90"],["matTooltip","Balance Score",1,"mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90"],["mode","determinate","color","accent",1,"dashboard-progress-bar","this-channel-bar",3,"value"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],[1,"channels-capacity-scroll",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90","color-primary"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90","color-primary"],["matTooltip","Balance Score",1,"color-primary","mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90","color-primary"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start",1,"mt-1","w-100"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,E,24,15,"div",0),o.YNc(1,Y,4,0,"ng-template",null,1,o.W1O),o.YNc(3,Q,3,1,"ng-template",null,2,o.W1O)),2&t){const t=o.MAs(4);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.Wh,l.yH,O.bx,A.BN,U.gM,r.pW,R.d,M.$V,a.sg,v.lW],pipes:[a.JJ,a.OU],styles:[".channels-capacity-scroll[_ngcontent-%COMP%]{width:100%;height:100%;overflow-y:hidden}"]}),t})();function H(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o.TgZ(2,"div"),o.TgZ(3,"h4",4),o._uU(4,"Daily"),o.qZA(),o.TgZ(5,"div",5),o._uU(6),o.ALo(7,"number"),o.qZA(),o.qZA(),o.TgZ(8,"div"),o.TgZ(9,"h4",4),o._uU(10,"Weekly"),o.qZA(),o.TgZ(11,"div",5),o._uU(12),o.ALo(13,"number"),o.qZA(),o.qZA(),o.TgZ(14,"div"),o.TgZ(15,"h4",4),o._uU(16,"Monthly"),o.qZA(),o.TgZ(17,"div",5),o._uU(18),o.ALo(19,"number"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(20,"div",3),o.TgZ(21,"div"),o.TgZ(22,"h4",4),o._uU(23,"Transactions"),o.qZA(),o.TgZ(24,"div",5),o._uU(25),o.ALo(26,"number"),o.qZA(),o.qZA(),o.TgZ(27,"div"),o.TgZ(28,"h4",4),o._uU(29,"Transactions"),o.qZA(),o.TgZ(30,"div",5),o._uU(31),o.ALo(32,"number"),o.qZA(),o.qZA(),o.TgZ(33,"div"),o.TgZ(34,"h4",4),o._uU(35,"Transactions"),o.qZA(),o.TgZ(36,"div",5),o._uU(37),o.ALo(38,"number"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(6),o.hij("",o.lcZ(7,6,null==t.fees?null:t.fees.daily_fee)," Sats"),o.xp6(6),o.hij("",o.lcZ(13,8,null==t.fees?null:t.fees.weekly_fee)," Sats"),o.xp6(6),o.hij("",o.lcZ(19,10,null==t.fees?null:t.fees.monthly_fee)," Sats"),o.xp6(7),o.Oqu(o.lcZ(26,12,null==t.fees?null:t.fees.daily_txs)),o.xp6(6),o.Oqu(o.lcZ(32,14,null==t.fees?null:t.fees.weekly_txs)),o.xp6(6),o.Oqu(o.lcZ(38,16,null==t.fees?null:t.fees.monthly_txs))}}function z(t,e){if(1&t&&(o.TgZ(0,"div",6),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let V=(()=>{class t{constructor(){this.totalFees=[{name:"Monthly",value:0},{name:"Weekly",value:0},{name:"Daily",value:0}],this.maxFeeValue=100}ngOnChanges(){var t;if(null===(t=this.fees)||void 0===t?void 0:t.monthly_fee){this.totalFees=[{name:"Monthly",value:this.fees.monthly_fee},{name:"Weekly",value:this.fees.weekly_fee},{name:"Daily ",value:this.fees.daily_fee}];const t=Math.ceil(Math.log(this.fees.monthly_fee+1)/Math.LN10),e=Math.pow(10,t-1);this.maxFeeValue=Math.ceil(this.fees.monthly_fee/e)*e/5||100,Object.assign(this,this.totalFees)}else this.totalFees=[{name:"Monthly",value:0},{name:"Weekly",value:0},{name:"Daily",value:0}],this.maxFeeValue=100,Object.assign(this,this.totalFees)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-fee-info"]],inputs:{fees:"fees",errorMessage:"errorMessage"},features:[o.TTD],decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,H,39,18,"div",0),o.YNc(1,z,3,1,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.yH,l.Wh],pipes:[a.JJ],styles:[""]}),t})();function G(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o.TgZ(2,"div"),o.TgZ(3,"h4",4),o._uU(4,"Active"),o.qZA(),o.TgZ(5,"div",5),o._UZ(6,"span",6),o._uU(7),o.ALo(8,"number"),o.qZA(),o.qZA(),o.TgZ(9,"div"),o.TgZ(10,"h4",4),o._uU(11,"Pending"),o.qZA(),o.TgZ(12,"div",5),o._UZ(13,"span",7),o._uU(14),o.ALo(15,"number"),o.qZA(),o.qZA(),o.TgZ(16,"div"),o.TgZ(17,"h4",4),o._uU(18,"Inactive"),o.qZA(),o.TgZ(19,"div",5),o._UZ(20,"span",8),o._uU(21),o.ALo(22,"number"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(23,"div",3),o.TgZ(24,"div"),o.TgZ(25,"h4",4),o._uU(26,"Capacity"),o.qZA(),o.TgZ(27,"div",5),o._uU(28),o.ALo(29,"number"),o.qZA(),o.qZA(),o.TgZ(30,"div"),o.TgZ(31,"h4",4),o._uU(32,"Capacity"),o.qZA(),o.TgZ(33,"div",5),o._uU(34),o.ALo(35,"number"),o.qZA(),o.qZA(),o.TgZ(36,"div"),o.TgZ(37,"h4",4),o._uU(38,"Capacity"),o.qZA(),o.TgZ(39,"div",5),o._uU(40),o.ALo(41,"number"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(7),o.Oqu(o.lcZ(8,6,(null==t.channelsStatus.active?null:t.channelsStatus.active.channels)||0)),o.xp6(7),o.Oqu(o.lcZ(15,8,(null==t.channelsStatus.pending?null:t.channelsStatus.pending.channels)||0)),o.xp6(7),o.Oqu(o.lcZ(22,10,(null==t.channelsStatus.inactive?null:t.channelsStatus.inactive.channels)||0)),o.xp6(7),o.hij("",o.lcZ(29,12,(null==t.channelsStatus.active?null:t.channelsStatus.active.capacity)||0)," Sats"),o.xp6(6),o.hij("",o.lcZ(35,14,(null==t.channelsStatus.pending?null:t.channelsStatus.pending.capacity)||0)," Sats"),o.xp6(6),o.hij("",o.lcZ(41,16,(null==t.channelsStatus.inactive?null:t.channelsStatus.inactive.capacity)||0)," Sats")}}function $(t,e){if(1&t&&(o.TgZ(0,"div",9),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let X=(()=>{class t{constructor(){this.channelsStatus={}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-channel-status-info"]],inputs:{channelsStatus:"channelsStatus",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],[1,"dot","tiny-dot","green"],[1,"dot","tiny-dot","yellow"],[1,"dot","tiny-dot","grey"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,G,42,18,"div",0),o.YNc(1,$,3,1,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.yH,l.Wh],pipes:[a.JJ],styles:[""]}),t})();function W(t,e){if(1&t&&(o.TgZ(0,"mat-hint",19),o.TgZ(1,"strong",20),o._uU(2,"Capacity: "),o.qZA(),o._uU(3),o.ALo(4,"number"),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(3),o.hij("",o.xi3(4,1,t.toRemote||0,"1.0-0")," Sats")}}function K(t,e){if(1&t&&(o.TgZ(0,"mat-hint",19),o.TgZ(1,"strong",20),o._uU(2,"Capacity: "),o.qZA(),o._uU(3),o.ALo(4,"number"),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(3),o.hij("",o.xi3(4,1,t.toLocal||0,"1.0-0")," Sats")}}function j(t,e){if(1&t&&o._UZ(0,"mat-progress-bar",21),2&t){const t=o.oxw().$implicit,e=o.oxw(3);o.s9C("value",e.totalLiquidity>0?(+t.toRemote||0)/e.totalLiquidity*100:0)}}function tt(t,e){if(1&t&&o._UZ(0,"mat-progress-bar",21),2&t){const t=o.oxw().$implicit,e=o.oxw(3);o.s9C("value",e.totalLiquidity>0?(+t.toLocal||0)/e.totalLiquidity*100:0)}}function et(t,e){if(1&t&&(o.TgZ(0,"div",14),o.TgZ(1,"span",15),o._uU(2),o.ALo(3,"slice"),o.qZA(),o.TgZ(4,"div",16),o.YNc(5,W,5,4,"mat-hint",17),o.YNc(6,K,5,4,"mat-hint",17),o.qZA(),o.YNc(7,j,1,1,"mat-progress-bar",18),o.YNc(8,tt,1,1,"mat-progress-bar",18),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(3);o.xp6(1),o.s9C("matTooltip",t.alias||t.shortChannelId),o.s9C("matTooltipDisabled",(t.alias||t.shortChannelId).length<26),o.xp6(1),o.AsE("",o.Dn7(3,8,t.alias||t.shortChannelId,0,24),"",(t.alias||t.shortChannelId).length>25?"...":"",""),o.xp6(3),o.Q6J("ngIf","In"===n.direction),o.xp6(1),o.Q6J("ngIf","Out"===n.direction),o.xp6(1),o.Q6J("ngIf","In"===n.direction),o.xp6(1),o.Q6J("ngIf","Out"===n.direction)}}function nt(t,e){if(1&t&&(o.TgZ(0,"div",12),o.YNc(1,et,9,12,"div",13),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngForOf",t.allChannels)}}const at=function(t,e,n){return{"mb-4":t,"mb-2":e,"mb-1":n}};function it(t,e){if(1&t&&(o.TgZ(0,"div",3),o.TgZ(1,"div",4),o.TgZ(2,"span",5),o._uU(3,"Total Capacity"),o.qZA(),o.TgZ(4,"mat-hint",6),o._uU(5),o.ALo(6,"number"),o.qZA(),o._UZ(7,"mat-progress-bar",7),o.qZA(),o.TgZ(8,"div",8),o._UZ(9,"mat-divider",9),o.qZA(),o.TgZ(10,"div",10),o.YNc(11,nt,2,1,"div",11),o.qZA(),o.qZA()),2&t){const t=o.oxw(),e=o.MAs(2);o.Q6J("ngClass",o.kEZ(7,at,t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM,t.screenSize===t.screenSizeEnum.MD,t.screenSize===t.screenSizeEnum.LG||t.screenSize===t.screenSizeEnum.XL)),o.xp6(5),o.hij("",o.xi3(6,4,t.totalLiquidity,"1.0-0")," Sats"),o.xp6(6),o.Q6J("ngIf",t.allChannels&&t.allChannels.length>0)("ngIfElse",e)}}function st(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",24),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).goToChannels()}),o._uU(1,"Open Channel"),o.qZA()}}function ot(t,e){if(1&t&&(o.TgZ(0,"div",22),o._uU(1," No channels available. "),o.YNc(2,st,2,0,"button",23),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Q6J("ngIf","Out"===t.direction)}}function lt(t,e){if(1&t&&(o.TgZ(0,"div",25),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.errorMessage)}}let rt=(()=>{class t{constructor(t,e){this.router=t,this.commonService=e,this.screenSize="",this.screenSizeEnum=g.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}goToChannels(){this.router.navigateByUrl("/ecl/connections")}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(i.F0),o.Y36(y.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-channel-liquidity-info"]],inputs:{direction:"direction",totalLiquidity:"totalLiquidity",allChannels:"allChannels",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",3,"ngClass",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",3,"ngClass"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],[1,"font-size-90"],["mode","determinate","color","accent","value","100",1,"dashboard-progress-bar","this-channel-bar"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],["fxLayout","column","fxFlex.gt-sm","88","fxFlex","84","fxLayoutAlign","start start",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100","class","w-100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100",1,"w-100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","100","fxLayoutAlign","start center","class","font-size-90 color-primary",4,"ngIf"],["class","dashboard-progress-bar","mode","determinate",3,"value",4,"ngIf"],["fxFlex","100","fxLayoutAlign","start center",1,"font-size-90","color-primary"],[1,"font-weight-900","mr-5px"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","1",3,"click",4,"ngIf"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,e){if(1&t&&(o.YNc(0,it,12,11,"div",0),o.YNc(1,ot,3,1,"ng-template",null,1,o.W1O),o.YNc(3,lt,3,1,"ng-template",null,2,o.W1O)),2&t){const t=o.MAs(4);o.Q6J("ngIf",""===(null==e.errorMessage?null:e.errorMessage.trim()))("ngIfElse",t)}},directives:[a.O5,l.xw,l.Wh,l.yH,a.mk,S.oO,O.bx,r.pW,R.d,M.$V,a.sg,U.gM,v.lW],pipes:[a.JJ,a.OU],styles:[""]}),t})();var ct=n(5109),ut=n(8868),dt=n(3005),mt=n(2464),pt=n(7033),ht=n(4608),gt=n(6124),ft=n(6073),xt=n(6756),Zt=n(6880),yt=n(5095),At=n(4786),Ct=n(1522);function Tt(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Description is required."),o.qZA())}function wt(t,e){if(1&t&&(o.TgZ(0,"mat-option",25),o._uU(1),o.ALo(2,"titlecase"),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t),o.xp6(1),o.Oqu(o.lcZ(2,2,t))}}function St(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.invoiceError)}}function vt(t,e){if(1&t&&(o.TgZ(0,"div",26),o._UZ(1,"fa-icon",27),o.YNc(2,St,2,1,"span",11),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==t.invoiceError)}}let qt=(()=>{class t{constructor(t,e,n,a,i,s){this.dialogRef=t,this.data=e,this.store=n,this.decimalPipe=a,this.commonService=i,this.actions=s,this.faExclamationTriangle=h.eHv,this.selNode={},this.description="",this.invoiceValue=null,this.invoiceValueHint="",this.invoicePaymentReq="",this.information={},this.private=!1,this.expiryStep=100,this.pageSize=g.IV,this.timeUnitEnum=g.Qk,this.timeUnits=g.LO,this.selTimeUnit=g.Qk.SECS,this.invoiceError="",this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.pageSize=this.data.pageSize,this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t.nodeSettings,this.information=t.information}),this.actions.pipe((0,m.R)(this.unSubs[1]),(0,ut.h)(t=>t.type===gt.f||t.type===gt.Wk)).subscribe(t=>{t.type===gt.Wk&&this.dialogRef.close(),t.type===gt.f&&t.payload.status===g.Bn.ERROR&&"CreateInvoice"===t.payload.action&&(this.invoiceError=t.payload.message)})}onAddInvoice(t){if(this.invoiceError="",!this.description)return!0;let e=this.expiry?this.expiry:3600;this.selTimeUnit!==g.Qk.SECS&&(e=this.commonService.convertTime(this.expiry,this.selTimeUnit,g.Qk.SECS));let n=null;n=this.invoiceValue?{description:this.description,expireIn:e,amountMsat:1e3*this.invoiceValue}:{description:this.description,expireIn:e},this.store.dispatch(new gt.Ks(n))}resetData(){this.description="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint="",this.selTimeUnit=g.Qk.SECS,this.invoiceError=""}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,g.NT.SATS,g.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,m.R)(this.unSubs[2])).subscribe({next:t=>{this.invoiceValueHint="= "+t.symbol+this.decimalPipe.transform(t.OTHER,g.Xz.OTHER)+" "+t.unit},error:t=>{this.invoiceValueHint="Conversion Error: "+t}}))}onTimeUnitChange(t){this.expiry&&this.selTimeUnit!==t.value&&(this.expiry=this.commonService.convertTime(this.expiry,this.selTimeUnit,t.value)),this.selTimeUnit=t.value}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(ht.so),o.Y36(ht.WI),o.Y36(x.yh),o.Y36(a.JJ),o.Y36(y.v),o.Y36(Z.eX))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-create-invoices"]],decls:35,vars:16,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","start space-between","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","autoFocus","","placeholder","Description","tabindex","2","name","description","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","space-between start","fxFlex","100"],["fxFlex","40"],["matInput","","placeholder","Amount","type","number","tabindex","3","name","invValue",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxFlex","30"],["matInput","","placeholder","Expiry","type","number","name","exp","tabindex","4",3,"ngModel","step","min","ngModelChange"],["fxFlex","26"],["tabindex","5","name","timeUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","7","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","8",3,"click"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Create Invoice"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"input",10),o.NdJ("ngModelChange",function(t){return e.description=t}),o.qZA(),o.YNc(13,Tt,2,0,"mat-error",11),o.qZA(),o.TgZ(14,"div",12),o.TgZ(15,"mat-form-field",13),o.TgZ(16,"input",14),o.NdJ("ngModelChange",function(t){return e.invoiceValue=t})("keyup",function(){return e.onInvoiceValueChange()}),o.qZA(),o.TgZ(17,"span",15),o._uU(18," Sats "),o.qZA(),o.TgZ(19,"mat-hint"),o._uU(20),o.qZA(),o.qZA(),o.TgZ(21,"mat-form-field",16),o.TgZ(22,"input",17),o.NdJ("ngModelChange",function(t){return e.expiry=t}),o.qZA(),o.TgZ(23,"span",15),o._uU(24),o.ALo(25,"titlecase"),o.qZA(),o.qZA(),o.TgZ(26,"mat-form-field",18),o.TgZ(27,"mat-select",19),o.NdJ("selectionChange",function(t){return e.onTimeUnitChange(t)}),o.YNc(28,wt,3,4,"mat-option",20),o.qZA(),o.qZA(),o.qZA(),o.YNc(29,vt,3,2,"div",21),o.TgZ(30,"div",22),o.TgZ(31,"button",23),o.NdJ("click",function(){return e.resetData()}),o._uU(32,"Clear Field"),o.qZA(),o.TgZ(33,"button",24),o.NdJ("click",function(){o.CHM(t);const n=o.MAs(10);return e.onAddInvoice(n)}),o._uU(34,"Create Invoice"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()}2&t&&(o.xp6(6),o.Q6J("mat-dialog-close",!1),o.xp6(6),o.Q6J("ngModel",e.description),o.xp6(1),o.Q6J("ngIf",!e.description),o.xp6(3),o.Q6J("ngModel",e.invoiceValue)("step",100)("min",1),o.xp6(4),o.Oqu(e.invoiceValueHint),o.xp6(2),o.Q6J("ngModel",e.expiry)("step",e.selTimeUnit===e.timeUnitEnum.SECS?300:e.selTimeUnit===e.timeUnitEnum.MINS?10:e.selTimeUnit===e.timeUnitEnum.HOURS?2:1)("min",1),o.xp6(2),o.hij(" ",o.lcZ(25,14,e.selTimeUnit)," "),o.xp6(3),o.Q6J("value",e.selTimeUnit),o.xp6(1),o.Q6J("ngForOf",e.timeUnits),o.xp6(1),o.Q6J("ngIf",""!==e.invoiceError))},directives:[l.xw,l.yH,T.dk,l.Wh,v.lW,ht.ZT,T.dn,ft._Y,ft.JL,ft.F,O.KE,xt.Nt,ft.Fj,Zt.h,ft.Q7,ft.JJ,ft.On,a.O5,ft.wV,ft.qQ,yt.q,O.R9,O.bx,At.gD,a.sg,O.TO,Ct.ey,A.BN],pipes:[a.rS],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();var bt=n(3921),Lt=n(4636),Ft=n(3929);function It(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Description is required."),o.qZA())}function Nt(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"form",4,5),o.TgZ(2,"mat-form-field",6),o.TgZ(3,"input",7),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().description=e}),o.qZA(),o.YNc(4,It,2,0,"mat-error",8),o.qZA(),o.TgZ(5,"mat-form-field",9),o.TgZ(6,"input",10,11),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().invoiceValue=e})("keyup",function(){return o.CHM(t),o.oxw().onInvoiceValueChange()}),o.qZA(),o.TgZ(8,"span",12),o._uU(9," Sats "),o.qZA(),o.TgZ(10,"mat-hint"),o._uU(11),o.qZA(),o.qZA(),o.TgZ(12,"div",13),o.TgZ(13,"button",14),o.NdJ("click",function(){return o.CHM(t),o.oxw().resetData()}),o._uU(14,"Clear Field"),o.qZA(),o.TgZ(15,"button",15),o.NdJ("click",function(){o.CHM(t);const e=o.MAs(1);return o.oxw().onAddInvoice(e)}),o._uU(16,"Create Invoice"),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("ngModel",t.description),o.xp6(1),o.Q6J("ngIf",!t.description),o.xp6(2),o.Q6J("ngModel",t.invoiceValue)("step",100)("min",1),o.xp6(5),o.Oqu(t.invoiceValueHint)}}function _t(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",16),o.TgZ(1,"button",17),o.NdJ("click",function(){return o.CHM(t),o.oxw().openCreateInvoiceModal()}),o._uU(2,"Create Invoice"),o.qZA(),o.qZA()}}function Dt(t,e){1&t&&o._UZ(0,"mat-progress-bar",47)}function kt(t,e){1&t&&(o.TgZ(0,"th",48),o._uU(1," Date Created "),o.qZA())}const Ot=function(t){return{"mr-0":t}};function Ut(t,e){if(1&t&&o._UZ(0,"span",53),2&t){const t=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Ot,t.screenSize===t.screenSizeEnum.XS))}}function Rt(t,e){if(1&t&&o._UZ(0,"span",54),2&t){const t=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Ot,t.screenSize===t.screenSizeEnum.XS))}}function Mt(t,e){if(1&t&&o._UZ(0,"span",55),2&t){const t=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Ot,t.screenSize===t.screenSizeEnum.XS))}}function Jt(t,e){if(1&t&&(o.TgZ(0,"td",49),o.YNc(1,Ut,1,3,"span",50),o.YNc(2,Rt,1,3,"span",51),o.YNc(3,Mt,1,3,"span",52),o._uU(4),o.ALo(5,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Q6J("ngIf","received"===t.status),o.xp6(1),o.Q6J("ngIf","unpaid"===t.status),o.xp6(1),o.Q6J("ngIf",!t.status||"expired"===t.status||"unknown"===t.status),o.xp6(1),o.hij(" ",o.xi3(5,4,1e3*t.timestamp,"dd/MMM/YYYY HH:mm")," ")}}function Pt(t,e){1&t&&(o.TgZ(0,"th",48),o._uU(1," Date Settled "),o.qZA())}function Et(t,e){if(1&t&&(o.TgZ(0,"td",49),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(t.receivedAtStr||"-")}}function Yt(t,e){1&t&&(o.TgZ(0,"th",48),o._uU(1," Description "),o.qZA())}const Qt=function(t){return{"max-width":t}};function Bt(t,e){if(1&t&&(o.TgZ(0,"td",49),o.TgZ(1,"div",56),o.TgZ(2,"span",57),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.xp6(1),o.Q6J("ngStyle",o.VKq(2,Qt,n.screenSize===n.screenSizeEnum.XS?"10rem":"32rem")),o.xp6(2),o.Oqu(t.description)}}function Ht(t,e){1&t&&(o.TgZ(0,"th",58),o._uU(1," Amount (Sats) "),o.qZA())}function zt(t,e){if(1&t&&(o.TgZ(0,"td",59),o.TgZ(1,"span",60),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",t.amount?o.xi3(3,1,t.amount,"1.0-0"):"-","")}}function Vt(t,e){1&t&&(o.TgZ(0,"th",58),o._uU(1," Amount Settled (Sats) "),o.qZA())}function Gt(t,e){if(1&t&&(o.TgZ(0,"td",59),o.TgZ(1,"span",60),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",t.amountSettled?o.xi3(3,1,t.amountSettled,"1.0-0"):"-","")}}function $t(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",61),o.TgZ(1,"div",62),o.TgZ(2,"mat-select",63),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",64),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}const Xt=function(t){return{"px-3":t}};function Wt(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",65),o.TgZ(1,"div",66),o.TgZ(2,"mat-select",67),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",64),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(2).onInvoiceClick(e)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",64),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(2).onRefreshInvoice(e)}),o._uU(7,"Refresh"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,Xt,t.screenSize!==t.screenSizeEnum.XS))}}function Kt(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No invoice available."),o.qZA())}function jt(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting invoices..."),o.qZA())}function te(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function ee(t,e){if(1&t&&(o.TgZ(0,"td",68),o.YNc(1,Kt,2,0,"p",8),o.YNc(2,jt,2,0,"p",8),o.YNc(3,te,2,1,"p",8),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchInvoices.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchInvoices.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchInvoices.status)===t.apiCallStatusEnum.ERROR)}}const ne=function(t){return{"display-none":t}};function ae(t,e){if(1&t&&o._UZ(0,"tr",69),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,ne,(null==t.invoices?null:t.invoices.data)&&(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)>0))}}function ie(t,e){1&t&&o._UZ(0,"tr",70)}function se(t,e){if(1&t&&o._UZ(0,"tr",71),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("@newlyAddedRowAnimation",t.label===n.newlyAddedInvoiceMemo&&t.value===n.newlyAddedInvoiceValue&&n.flgAnimate?"added":"notAdded")}}const oe=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},le=function(){return["no_invoice"]};function re(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",18),o.TgZ(1,"div",19),o.TgZ(2,"div",20),o._UZ(3,"fa-icon",21),o.TgZ(4,"span",22),o._uU(5,"Invoices History"),o.qZA(),o.qZA(),o.TgZ(6,"mat-form-field",23),o.TgZ(7,"input",24),o.NdJ("keyup",function(e){return o.CHM(t),o.oxw().applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",25),o.YNc(9,Dt,1,0,"mat-progress-bar",26),o.TgZ(10,"table",27,28),o.ynx(12,29),o.YNc(13,kt,2,0,"th",30),o.YNc(14,Jt,6,7,"td",31),o.BQk(),o.ynx(15,32),o.YNc(16,Pt,2,0,"th",30),o.YNc(17,Et,2,1,"td",31),o.BQk(),o.ynx(18,33),o.YNc(19,Yt,2,0,"th",30),o.YNc(20,Bt,4,4,"td",31),o.BQk(),o.ynx(21,34),o.YNc(22,Ht,2,0,"th",35),o.YNc(23,zt,4,4,"td",36),o.BQk(),o.ynx(24,37),o.YNc(25,Vt,2,0,"th",35),o.YNc(26,Gt,4,4,"td",36),o.BQk(),o.ynx(27,38),o.YNc(28,$t,6,0,"th",39),o.YNc(29,Wt,8,3,"td",40),o.BQk(),o.ynx(30,41),o.YNc(31,ee,4,3,"td",42),o.BQk(),o.YNc(32,ae,1,3,"tr",43),o.YNc(33,ie,1,0,"tr",44),o.YNc(34,se,1,1,"tr",45),o.qZA(),o.qZA(),o._UZ(35,"mat-paginator",46),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("icon",t.faHistory),o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchInvoices.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.invoices)("ngClass",o.VKq(11,oe,""!==t.errorMessage)),o.xp6(22),o.Q6J("matFooterRowDef",o.DdM(13,le)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let ce=(()=>{class t{constructor(t,e,n,a,i,s){this.logger=t,this.store=e,this.decimalPipe=n,this.commonService=a,this.datePipe=i,this.actions=s,this.calledFrom="transactions",this.faHistory=h.qO$,this.selNode={},this.newlyAddedInvoiceMemo="",this.newlyAddedInvoiceValue=0,this.flgAnimate=!0,this.description="",this.invoiceValue=null,this.invoiceValueHint="",this.displayedColumns=[],this.invoicePaymentReq="",this.invoiceJSONArr=[],this.information={},this.flgSticky=!1,this.pageSize=g.IV,this.pageSizeOptions=g.TJ,this.screenSize="",this.screenSizeEnum=g.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","actions"]):this.screenSize===g.cu.SM||this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","amountSettled","actions"]):(this.flgSticky=!0,this.displayedColumns=["timestamp","receivedAt","description","amount","amountSettled","actions"])}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchInvoices.status===g.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchInvoices.message?JSON.stringify(this.apisCallStatus.FetchInvoices.message):this.apisCallStatus.FetchInvoices.message),this.selNode=t.nodeSettings,this.information=t.information,this.invoiceJSONArr=t.invoices&&t.invoices.length>0?t.invoices:[],this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoiceJSONArr),setTimeout(()=>{this.flgAnimate=!1},5e3),this.logger.info(t)}),this.actions.pipe((0,m.R)(this.unSubs[1]),(0,ut.h)(t=>t.type===gt.ht||t.type===gt.f)).subscribe(t=>{t.type===gt.ht&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&t.payload&&(this.updateInvoicesData(JSON.parse(JSON.stringify(t.payload))),this.loadInvoicesTable(this.invoiceJSONArr))})}ngAfterViewInit(){this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoiceJSONArr)}openCreateInvoiceModal(){this.store.dispatch(new Ft.wu({data:{pageSize:this.pageSize,component:qt}}))}onAddInvoice(t){if(!this.description)return!0;const e=this.expiry?this.expiry:3600;this.flgAnimate=!0,this.newlyAddedInvoiceMemo="ulbl"+Math.random().toString(36).slice(2)+Date.now(),this.newlyAddedInvoiceValue=this.invoiceValue;let n=null;n=this.invoiceValue?{description:this.description,expireIn:e,amountMsat:1e3*this.invoiceValue}:{description:this.description,expireIn:e},this.store.dispatch(new gt.Ks(n)),this.resetData()}onInvoiceClick(t){this.store.dispatch(new Ft.wu({data:{invoice:t,newlyAdded:!1,component:bt.R}}))}onRefreshInvoice(t){this.store.dispatch(new gt.oP(t.paymentHash))}updateInvoicesData(t){this.invoiceJSONArr=this.invoiceJSONArr.map(e=>e.paymentHash===t.paymentHash?t:e)}loadInvoicesTable(t){this.invoices=new pt.by(t?[...t]:[]),this.invoices.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.invoices.sort=this.sort,this.invoices.filterPredicate=(t,e)=>((t.timestamp?this.datePipe.transform(new Date(1e3*t.timestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(t).toLowerCase()).includes(e),this.invoices.paginator=this.paginator}resetData(){this.description="",this.invoiceValue=null,this.expiry=null,this.invoiceValueHint=""}applyFilter(t){this.invoices.filter=t.value.trim().toLowerCase()}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,g.NT.SATS,g.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,m.R)(this.unSubs[2])).subscribe({next:t=>{this.invoiceValueHint="= "+t.symbol+this.decimalPipe.transform(t.OTHER,g.Xz.OTHER)+" "+t.unit},error:t=>{this.invoiceValueHint="Conversion Error: "+t}}))}onDownloadCSV(){this.invoices.data&&this.invoices.data.length>0&&this.commonService.downloadFile(this.invoices.data,"Invoices")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(x.yh),o.Y36(a.JJ),o.Y36(y.v),o.Y36(a.uU),o.Y36(Z.eX))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-lightning-invoices"]],viewQuery:function(t,e){if(1&t&&(o.Gf(mt.YE,5),o.Gf(dt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},inputs:{calledFrom:"calledFrom"},features:[o._Bn([{provide:dt.ye,useValue:(0,g.pt)("Invoices")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","space-between stretch"],["matInput","","placeholder","Description","tabindex","2","name","description","required","true",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","3","name","invValue",3,"ngModel","step","min","ngModelChange","keyup"],["invcVal","ngModel"],["matSuffix",""],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","9","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","10",3,"click"],["fxLayout","row"],["mat-flat-button","","color","primary","tabindex","8",3,"click"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","timestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","receivedAt"],["matColumnDef","description"],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before","class","pr-3",4,"matHeaderCellDef"],["mat-cell","","class","pr-3",4,"matCellDef"],["matColumnDef","amountSettled"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass",4,"matCellDef"],["matColumnDef","no_invoice"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot green","matTooltip","Received","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Unpaid","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Expired/Unknown","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Received","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Unpaid","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],["matTooltip","Expired/Unknown","matTooltipPosition","right",1,"dot","red",3,"ngClass"],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",1,"pr-3"],["mat-cell","",1,"pr-3"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","4",1,"mr-0"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,Nt,17,6,"form",1),o.YNc(2,_t,3,0,"div",2),o.YNc(3,re,36,14,"div",3),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf","home"===e.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===e.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===e.calledFrom))},directives:[l.xw,l.yH,l.Wh,a.O5,ft._Y,ft.JL,ft.F,O.KE,xt.Nt,ft.Fj,ft.Q7,ft.JJ,ft.On,ft.wV,ft.qQ,yt.q,O.R9,O.bx,v.lW,O.TO,A.BN,M.$V,pt.BZ,mt.YE,a.mk,S.oO,pt.w1,pt.fO,pt.Dz,pt.mD,pt.Ke,pt.as,pt.nj,dt.NW,r.pW,pt.ge,mt.nU,pt.ev,U.gM,a.PC,S.Zl,At.gD,At.$L,Ct.ey,pt.yh,pt.Q2,pt.XQ,pt.Gk],pipes:[a.uU,a.JJ],styles:[".mat-column-description[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-description[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"],data:{animation:[Lt.Q]}}),t})();var ue=n(9056),de=n(4147),me=n(3556);const pe=["paymentReq"];function he(t,e){if(1&t&&(o.TgZ(0,"mat-hint"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.paymentDecodedHint)}}function ge(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Payment request is required."),o.qZA())}function fe(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.paymentDecodedHint)}}function xe(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Payment amount is required."),o.qZA())}function Ze(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-form-field",1),o.TgZ(1,"input",17,18),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().paymentAmount=e})("change",function(e){return o.CHM(t),o.oxw().onAmountChange(e)}),o.qZA(),o.TgZ(3,"mat-hint"),o._uU(4,"It is a zero amount invoice, enter amount to be paid."),o.qZA(),o.YNc(5,xe,2,0,"mat-error",11),o.qZA()}if(2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngModel",t.paymentAmount),o.xp6(4),o.Q6J("ngIf",!t.paymentAmount)}}function ye(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.paymentError)}}function Ae(t,e){if(1&t&&(o.TgZ(0,"div",19),o._UZ(1,"fa-icon",20),o.YNc(2,ye,2,1,"span",11),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==t.paymentError)}}let Ce=(()=>{class t{constructor(t,e,n,a,i,s,o,l){this.dialogRef=t,this.store=e,this.eclEffects=n,this.logger=a,this.commonService=i,this.decimalPipe=s,this.actions=o,this.dataService=l,this.faExclamationTriangle=h.eHv,this.selNode={},this.paymentDecoded={},this.zeroAmtInvoice=!1,this.paymentAmount=null,this.paymentRequest="",this.paymentDecodedHint="",this.selActiveChannel={},this.activeChannels={},this.feeLimit=null,this.selFeeLimitType=g.Vc[0],this.feeLimitTypes=g.Vc,this.paymentError="",this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t.nodeSettings,this.activeChannels=t.activeChannels,this.logger.info(t)}),this.actions.pipe((0,m.R)(this.unSubs[1]),(0,ut.h)(t=>t.type===gt.f||t.type===gt.qC)).subscribe(t=>{t.type===gt.qC&&this.dialogRef.close(),t.type===gt.f&&t.payload.status===g.Bn.ERROR&&"SendPayment"===t.payload.action&&(delete this.paymentDecoded.amount,this.paymentError=t.payload.message)})}onSendPayment(){if(!this.paymentRequest)return!0;this.paymentDecoded.timestamp?this.sendPayment():(this.paymentAmount=null,this.paymentError="",this.paymentDecodedHint="",this.paymentReq.control.setErrors(null),this.dataService.decodePayment(this.paymentRequest,!0).pipe((0,ue.q)(1)).subscribe({next:t=>{this.paymentDecoded=t,this.paymentDecoded.timestamp&&!this.paymentDecoded.amount?(this.paymentDecoded.amount=0,this.zeroAmtInvoice=!0,this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description):(this.zeroAmtInvoice=!1,this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.amount,g.NT.SATS,g.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,m.R)(this.unSubs[2])).subscribe({next:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats ("+t.symbol+this.decimalPipe.transform(t.OTHER?t.OTHER:0,g.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description)},error:t=>{this.logger.error(t),this.paymentDecodedHint="ERROR: "+(t.message?t.message:"string"==typeof t?t:JSON.stringify(t)),this.paymentReq.control.setErrors({decodeError:!0})}}))}sendPayment(){this.store.dispatch(new gt.Ar(this.zeroAmtInvoice?{invoice:this.paymentRequest,amountMsat:1e3*this.paymentAmount,fromDialog:!0}:{invoice:this.paymentRequest,fromDialog:!0}))}onPaymentRequestEntry(t){this.paymentRequest=t,this.paymentError="",this.paymentDecodedHint="",this.zeroAmtInvoice=!1,this.paymentRequest&&this.paymentRequest.length>100&&(this.paymentReq.control.setErrors(null),this.zeroAmtInvoice=!1,this.dataService.decodePayment(this.paymentRequest,!0).pipe((0,ue.q)(1)).subscribe({next:t=>{this.paymentDecoded=t,this.paymentDecoded.timestamp&&!this.paymentDecoded.amount?(this.paymentDecoded.amount=0,this.zeroAmtInvoice=!0,this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description):(this.zeroAmtInvoice=!1,this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.amount,g.NT.SATS,g.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,m.R)(this.unSubs[3])).subscribe({next:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats ("+t.symbol+this.decimalPipe.transform(t.OTHER?t.OTHER:0,g.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description)},error:t=>{this.logger.error(t),this.paymentDecodedHint="ERROR: "+(t.message?t.message:"string"==typeof t?t:JSON.stringify(t)),this.paymentReq.control.setErrors({decodeError:!0})}}))}onAmountChange(t){delete this.paymentDecoded.amount,this.paymentDecoded.amount=t}resetData(){this.paymentDecoded={},this.paymentRequest="",this.selActiveChannel=null,this.feeLimit=null,this.selFeeLimitType=g.Vc[0],this.paymentReq.control.setErrors(null),this.paymentError="",this.paymentDecodedHint="",this.zeroAmtInvoice=!1}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(ht.so),o.Y36(x.yh),o.Y36(de.o),o.Y36(f.mQ),o.Y36(y.v),o.Y36(a.JJ),o.Y36(Z.eX),o.Y36(me.D))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-lightning-send-payments"]],viewQuery:function(t,e){if(1&t&&o.Gf(pe,5),2&t){let t;o.iGM(t=o.CRH())&&(e.paymentReq=t.first)}},decls:24,vars:7,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayoutAlign","space-between stretch","fxLayout","column"],["sendPaymentForm","ngForm"],["autoFocus","","matInput","","placeholder","Payment Request","name","paymentRequest","tabindex","1","required","",3,"ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","required","",3,"ngModel","ngModelChange","change"],["paymentAmt","ngModel"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Send Payment"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.TgZ(11,"mat-form-field",1),o.TgZ(12,"textarea",9,10),o.NdJ("ngModelChange",function(t){return e.onPaymentRequestEntry(t)})("matTextareaAutosize",function(){return!0}),o.qZA(),o.YNc(14,he,2,1,"mat-hint",11),o.YNc(15,ge,2,0,"mat-error",11),o.YNc(16,fe,2,1,"mat-error",11),o.qZA(),o.YNc(17,Ze,6,2,"mat-form-field",12),o.YNc(18,Ae,3,2,"div",13),o.TgZ(19,"div",14),o.TgZ(20,"button",15),o.NdJ("click",function(){return e.resetData()}),o._uU(21,"Clear Fields"),o.qZA(),o.TgZ(22,"button",16),o.NdJ("click",function(){return e.onSendPayment()}),o._uU(23,"Send Payment"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.MAs(13);o.xp6(6),o.Q6J("mat-dialog-close",!1),o.xp6(6),o.Q6J("ngModel",e.paymentRequest),o.xp6(2),o.Q6J("ngIf",e.paymentRequest&&""!==e.paymentDecodedHint),o.xp6(1),o.Q6J("ngIf",!e.paymentRequest),o.xp6(1),o.Q6J("ngIf",null==t.errors?null:t.errors.decodeError),o.xp6(1),o.Q6J("ngIf",e.zeroAmtInvoice),o.xp6(1),o.Q6J("ngIf",""!==e.paymentError)}},directives:[l.xw,l.yH,T.dk,l.Wh,v.lW,ht.ZT,T.dn,ft._Y,ft.JL,ft.F,O.KE,xt.Nt,ft.Fj,xt.D7,Zt.h,ft.Q7,ft.JJ,ft.On,a.O5,O.bx,O.TO,A.BN],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-payment_hash[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),t})();var Te=n(5001);const we=["scrollContainer"];function Se(t,e){if(1&t&&(o.TgZ(0,"div",9),o.TgZ(1,"div",1),o.TgZ(2,"h4",11),o._uU(3,"Description"),o.qZA(),o.TgZ(4,"span",12),o._uU(5),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(5),o.Oqu(t.description)}}function ve(t,e){1&t&&o._UZ(0,"mat-divider",14)}function qe(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-expansion-panel",23),o.NdJ("opened",function(){return o.CHM(t),o.oxw().onExpansionOpen(!0)})("closed",function(){return o.CHM(t),o.oxw().onExpansionOpen(!1)}),o.TgZ(1,"mat-expansion-panel-header"),o.TgZ(2,"mat-panel-title"),o.TgZ(3,"h4",24),o._uU(4),o.qZA(),o.TgZ(5,"h4",25),o._uU(6),o.ALo(7,"number"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",8),o.TgZ(9,"div",9),o.TgZ(10,"div",26),o.TgZ(11,"h4",11),o._uU(12,"Fees (mSats)"),o.qZA(),o.TgZ(13,"span",12),o._uU(14),o.ALo(15,"number"),o.qZA(),o.qZA(),o.TgZ(16,"div",26),o.TgZ(17,"h4",11),o._uU(18,"Date/Time"),o.qZA(),o.TgZ(19,"span",12),o._uU(20),o.ALo(21,"date"),o.qZA(),o.qZA(),o.qZA(),o._UZ(22,"mat-divider",14),o.TgZ(23,"div",9),o.TgZ(24,"div",1),o.TgZ(25,"h4",11),o._uU(26,"ID"),o.qZA(),o.TgZ(27,"span",27),o._uU(28),o.qZA(),o.qZA(),o.qZA(),o._UZ(29,"mat-divider",14),o.TgZ(30,"div",9),o.TgZ(31,"div",1),o.TgZ(32,"h4",11),o._uU(33,"To Channel"),o.qZA(),o.TgZ(34,"span",27),o._uU(35),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit,n=e.index,a=o.oxw();o.Q6J("expanded",a.expansionOpen),o.xp6(4),o.hij("Part ",n+1,""),o.xp6(2),o.hij("",o.lcZ(7,7,t.amount)," (Sats)"),o.xp6(8),o.Oqu(o.lcZ(15,9,t.feesPaid)),o.xp6(6),o.Oqu(o.xi3(21,11,t.timestamp,"dd/MMM/YYYY HH:mm")),o.xp6(8),o.Oqu(t.id),o.xp6(7),o.Oqu(t.toChannelAlias)}}let be=(()=>{class t{constructor(t,e){this.dialogRef=t,this.data=e,this.description=null,this.shouldScroll=!0,this.expansionOpen=!0}ngOnInit(){this.payment=this.data.payment,this.data.sentPaymentInfo.length>0&&this.data.sentPaymentInfo[0].paymentRequest&&this.data.sentPaymentInfo[0].paymentRequest.description&&""!==this.data.sentPaymentInfo[0].paymentRequest.description&&(this.description=this.data.sentPaymentInfo[0].paymentRequest.description)}ngAfterViewChecked(){this.shouldScroll=this.scrollContainer.nativeElement.classList.value.includes("ps--active-y")}onScrollDown(){this.scrollContainer.nativeElement.scrollTop=this.scrollContainer.nativeElement.scrollTop+62.6}onExpansionOpen(t){this.expansionOpen=t}onClose(){this.dialogRef.close(!1)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(ht.so),o.Y36(ht.WI))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-payment-information"]],viewQuery:function(t,e){if(1&t&&o.Gf(we,5),2&t){let t;o.iGM(t=o.CRH())&&(e.scrollContainer=t.first)}},decls:66,vars:15,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"h-40","padding-gap-x-large",3,"perfectScrollbar"],["scrollContainer",""],["fxLayout","column"],["fxLayout","row"],["fxFlex","30"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],["fxFlex","70"],[1,"w-100","my-1"],["fxLayout","row",4,"ngIf"],["class","w-100 my-1",4,"ngIf"],["class","flat-expansion-panel my-1",3,"expanded","opened","closed",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start end",1,"btn-sticky-container","padding-gap-x-large"],["mat-mini-fab","","aria-label","Scroll Down","fxLayoutAlign","center center",3,"click"],["fxLayoutAlign","center center"],["fxLayout","row","fxLayoutAlign","end center",1,"padding-gap-x-large","padding-gap-bottom-large"],["fxLayoutAlign","center center","tabindex","1","mat-stroked-button","","color","primary","type","button","default","",1,"mr-1",3,"mat-dialog-close"],[1,"flat-expansion-panel","my-1",3,"expanded","opened","closed"],["fxFlex","30","fxLayoutAlign","start",1,"font-bold-500"],["fxFlex","70","fxLayoutAlign","start",1,"font-bold-500"],["fxFlex","50"],[1,"overflow-wrap","foreground-secondary-text"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Payment Information"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return e.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6,7),o.TgZ(10,"div",8),o.TgZ(11,"div",9),o.TgZ(12,"div",10),o.TgZ(13,"h4",11),o._uU(14,"Amount (Sats)"),o.qZA(),o.TgZ(15,"span",12),o._uU(16),o.ALo(17,"number"),o.qZA(),o.qZA(),o.TgZ(18,"div",13),o.TgZ(19,"h4",11),o._uU(20,"Date/Time"),o.qZA(),o.TgZ(21,"span",12),o._uU(22),o.ALo(23,"date"),o.qZA(),o.qZA(),o.qZA(),o._UZ(24,"mat-divider",14),o.TgZ(25,"div",9),o.TgZ(26,"div",1),o.TgZ(27,"h4",11),o._uU(28,"ID"),o.qZA(),o.TgZ(29,"span",12),o._uU(30),o.qZA(),o.qZA(),o.qZA(),o._UZ(31,"mat-divider",14),o.TgZ(32,"div",9),o.TgZ(33,"div",1),o.TgZ(34,"h4",11),o._uU(35,"Payment Hash"),o.qZA(),o.TgZ(36,"span",12),o._uU(37),o.qZA(),o.qZA(),o.qZA(),o._UZ(38,"mat-divider",14),o.TgZ(39,"div",9),o.TgZ(40,"div",1),o.TgZ(41,"h4",11),o._uU(42,"Payment Preimage"),o.qZA(),o.TgZ(43,"span",12),o._uU(44),o.qZA(),o.qZA(),o.qZA(),o._UZ(45,"mat-divider",14),o.TgZ(46,"div",9),o.TgZ(47,"div",1),o.TgZ(48,"h4",11),o._uU(49,"Recipient Node"),o.qZA(),o.TgZ(50,"span",12),o._uU(51),o.qZA(),o.qZA(),o.qZA(),o._UZ(52,"mat-divider",14),o.YNc(53,Se,6,1,"div",15),o.YNc(54,ve,1,0,"mat-divider",16),o.TgZ(55,"div",9),o.TgZ(56,"div",1),o.TgZ(57,"mat-accordion"),o.YNc(58,qe,36,14,"mat-expansion-panel",17),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(59,"div",18),o.TgZ(60,"button",19),o.NdJ("click",function(){return e.onScrollDown()}),o.TgZ(61,"mat-icon",20),o._uU(62,"arrow_downward"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(63,"div",21),o.TgZ(64,"button",22),o._uU(65,"OK"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(16),o.Oqu(o.lcZ(17,10,e.payment.recipientAmount)),o.xp6(6),o.Oqu(o.xi3(23,12,e.payment.firstPartTimestamp,"dd/MMM/YYYY HH:mm")),o.xp6(8),o.Oqu(e.payment.id),o.xp6(7),o.Oqu(e.payment.paymentHash),o.xp6(7),o.Oqu(e.payment.paymentPreimage),o.xp6(7),o.Oqu(e.payment.recipientNodeAlias),o.xp6(2),o.Q6J("ngIf",e.description),o.xp6(1),o.Q6J("ngIf",e.description),o.xp6(4),o.Q6J("ngForOf",e.payment.parts),o.xp6(6),o.Q6J("mat-dialog-close",!1))},directives:[l.xw,l.Wh,l.yH,T.dk,v.lW,T.dn,M.$V,R.d,a.O5,Te.pp,a.sg,q.Hw,ht.ZT,Te.ib,Te.yz,Te.yK],pipes:[a.JJ,a.uU],styles:[""]}),t})();var Le=n(8914);const Fe=["sendPaymentForm"];function Ie(t,e){if(1&t&&(o.TgZ(0,"mat-hint"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.paymentDecodedHint)}}function Ne(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Payment request is required."),o.qZA())}function _e(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"form",4,5),o.TgZ(2,"mat-form-field",6),o.TgZ(3,"textarea",7,8),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().onPaymentRequestEntry(e)})("matTextareaAutosize",function(){return!0}),o.qZA(),o.YNc(5,Ie,2,1,"mat-hint",9),o.YNc(6,Ne,2,0,"mat-error",9),o.qZA(),o.TgZ(7,"div",10),o.TgZ(8,"button",11),o.NdJ("click",function(){return o.CHM(t),o.oxw().resetData()}),o._uU(9,"Clear Field"),o.qZA(),o.TgZ(10,"button",12),o.NdJ("click",function(){return o.CHM(t),o.oxw().onSendPayment()}),o._uU(11,"Send Payment"),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("ngModel",t.paymentRequest),o.xp6(2),o.Q6J("ngIf",t.paymentRequest&&""!==t.paymentDecodedHint),o.xp6(1),o.Q6J("ngIf",!t.paymentRequest)}}function De(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",13),o.TgZ(1,"button",12),o.NdJ("click",function(){return o.CHM(t),o.oxw().openSendPaymentModal()}),o._uU(2,"Send Payment"),o.qZA(),o.qZA()}}function ke(t,e){1&t&&o._UZ(0,"mat-progress-bar",48)}function Oe(t,e){1&t&&(o.TgZ(0,"th",49),o._uU(1,"Date/Time"),o.qZA())}function Ue(t,e){if(1&t&&(o.TgZ(0,"td",50),o._uU(1),o.ALo(2,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(o.xi3(2,1,null==t?null:t.firstPartTimestamp,"dd/MMM/YYYY HH:mm"))}}function Re(t,e){1&t&&(o.TgZ(0,"th",49),o._uU(1,"ID"),o.qZA())}const Me=function(t){return{"max-width":t}};function Je(t,e){if(1&t&&(o.TgZ(0,"td",50),o.TgZ(1,"div",51),o.TgZ(2,"span",52),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.xp6(1),o.Q6J("ngStyle",o.VKq(2,Me,n.screenSize===n.screenSizeEnum.XS?"10rem":"22rem")),o.xp6(2),o.Oqu(t.id)}}function Pe(t,e){1&t&&(o.TgZ(0,"th",49),o._uU(1,"Destination"),o.qZA())}function Ee(t,e){if(1&t&&(o.TgZ(0,"td",50),o.TgZ(1,"div",51),o.TgZ(2,"span",52),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.xp6(1),o.Q6J("ngStyle",o.VKq(2,Me,n.screenSize===n.screenSizeEnum.XS?"10rem":"22rem")),o.xp6(2),o.Oqu(t.recipientNodeAlias)}}function Ye(t,e){1&t&&(o.TgZ(0,"th",53),o._uU(1,"Amount (Sats)"),o.qZA())}function Qe(t,e){if(1&t&&(o.TgZ(0,"td",50),o.TgZ(1,"span",54),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,null==t?null:t.recipientAmount))}}function Be(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",55),o.TgZ(1,"div",56),o.TgZ(2,"mat-select",57),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",58),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function He(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",59),o.TgZ(1,"button",60),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(2).onPaymentClick(e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function ze(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No payment available."),o.qZA())}function Ve(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting payments..."),o.qZA())}function Ge(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function $e(t,e){if(1&t&&(o.TgZ(0,"td",61),o.YNc(1,ze,2,0,"p",9),o.YNc(2,Ve,2,0,"p",9),o.YNc(3,Ge,2,1,"p",9),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.ERROR)}}function Xe(t,e){if(1&t&&(o.TgZ(0,"span",64),o._uU(1),o.ALo(2,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",o.xi3(2,1,t.timestamp,"dd/MMM/YYYY HH:mm")," ")}}function We(t,e){if(1&t&&(o.ynx(0),o.YNc(1,Xe,3,4,"span",63),o.BQk()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.parts)}}function Ke(t,e){if(1&t&&(o.TgZ(0,"td",50),o.TgZ(1,"span",62),o._uU(2),o.qZA(),o.YNc(3,We,2,1,"ng-container",9),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" Total Attempts: ",null==t||null==t.parts?null:t.parts.length," "),o.xp6(1),o.Q6J("ngIf",t.is_expanded)}}function je(t,e){if(1&t&&(o.TgZ(0,"span",62),o.TgZ(1,"span",65),o.TgZ(2,"span",52),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(4);o.xp6(1),o.Q6J("ngStyle",o.VKq(2,Me,n.screenSize===n.screenSizeEnum.XS?"10rem":"22rem")),o.xp6(2),o.Oqu(t.id)}}function tn(t,e){if(1&t&&(o.TgZ(0,"span"),o.YNc(1,je,4,4,"span",66),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.parts)}}function en(t,e){if(1&t&&(o.TgZ(0,"td",50),o.TgZ(1,"div",65),o.TgZ(2,"span",52),o._uU(3),o.qZA(),o.qZA(),o.YNc(4,tn,2,1,"span",9),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.xp6(1),o.Q6J("ngStyle",o.VKq(3,Me,n.screenSize===n.screenSizeEnum.XS?"10rem":"22rem")),o.xp6(2),o.Oqu(t.id),o.xp6(1),o.Q6J("ngIf",t.is_expanded)}}function nn(t,e){if(1&t&&(o.TgZ(0,"span",62),o.TgZ(1,"span",65),o.TgZ(2,"span",52),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(4);o.xp6(1),o.Q6J("ngStyle",o.VKq(2,Me,n.screenSize===n.screenSizeEnum.XS?"10rem":"22rem")),o.xp6(2),o.Oqu(t.toChannelAlias)}}function an(t,e){if(1&t&&(o.TgZ(0,"span"),o.YNc(1,nn,4,4,"span",66),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.parts)}}function sn(t,e){if(1&t&&(o.TgZ(0,"td",50),o.TgZ(1,"div",65),o.TgZ(2,"span",52),o._uU(3),o.qZA(),o.qZA(),o.YNc(4,an,2,1,"span",9),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.xp6(1),o.Q6J("ngStyle",o.VKq(3,Me,n.screenSize===n.screenSizeEnum.XS?"10rem":"22rem")),o.xp6(2),o.Oqu(null==t?null:t.recipientNodeAlias),o.xp6(1),o.Q6J("ngIf",t.is_expanded)}}function on(t,e){if(1&t&&(o.TgZ(0,"span",67),o._uU(1),o.ALo(2,"number"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",o.xi3(2,1,t.amount,"1.0-0")," ")}}function ln(t,e){if(1&t&&(o.TgZ(0,"span"),o.YNc(1,on,3,4,"span",68),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.parts)}}function rn(t,e){if(1&t&&(o.TgZ(0,"td",50),o.TgZ(1,"span",67),o._uU(2),o.ALo(3,"number"),o.qZA(),o.YNc(4,ln,2,1,"span",9),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.xi3(3,2,null==t?null:t.recipientAmount,"1.0-0")),o.xp6(2),o.Q6J("ngIf",t.is_expanded)}}function cn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",70),o.TgZ(1,"button",73),o.NdJ("click",function(){const e=o.CHM(t).$implicit,n=o.oxw(2).$implicit;return o.oxw(2).onPartClick(e,n)}),o._uU(2),o.qZA(),o.qZA()}if(2&t){const t=e.index;o.xp6(2),o.hij("View ",t+1,"")}}function un(t,e){if(1&t&&(o.TgZ(0,"div"),o.YNc(1,cn,3,1,"div",72),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==t?null:t.parts)}}function dn(t,e){if(1&t&&(o.TgZ(0,"td",69),o.TgZ(1,"span",70),o.TgZ(2,"button",71),o.NdJ("click",function(){const t=e.$implicit;return t.is_expanded=!t.is_expanded}),o._uU(3),o.qZA(),o.qZA(),o.YNc(4,un,2,1,"div",9),o.qZA()),2&t){const t=e.$implicit;o.xp6(3),o.Oqu(t.is_expanded?"Hide":"Show"),o.xp6(1),o.Q6J("ngIf",t.is_expanded)}}function mn(t,e){if(1&t&&o._UZ(0,"tr",74),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("@newlyAddedRowAnimation",t.payment_hash===n.newlyAddedPayment&&n.flgAnimate?"added":"notAdded")}}const pn=function(t){return{"display-none":t}};function hn(t,e){if(1&t&&o._UZ(0,"tr",75),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,pn,(null==t.payments?null:t.payments.data)&&(null==t.payments||null==t.payments.data?null:t.payments.data.length)>0))}}function gn(t,e){1&t&&o._UZ(0,"tr",76)}function fn(t,e){if(1&t&&o._UZ(0,"tr",74),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("@newlyAddedRowAnimation",t.payment_hash===n.newlyAddedPayment&&n.flgAnimate?"added":"notAdded")}}const xn=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},Zn=function(){return["no_payment"]};function yn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",14),o.TgZ(1,"div",15),o.TgZ(2,"div",16),o._UZ(3,"fa-icon",17),o.TgZ(4,"span",18),o._uU(5,"Payments History"),o.qZA(),o.qZA(),o.TgZ(6,"mat-form-field",19),o.TgZ(7,"input",20),o.NdJ("keyup",function(e){return o.CHM(t),o.oxw().applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",21),o.YNc(9,ke,1,0,"mat-progress-bar",22),o.TgZ(10,"table",23,24),o.ynx(12,25),o.YNc(13,Oe,2,0,"th",26),o.YNc(14,Ue,3,4,"td",27),o.BQk(),o.ynx(15,28),o.YNc(16,Re,2,0,"th",26),o.YNc(17,Je,4,4,"td",27),o.BQk(),o.ynx(18,29),o.YNc(19,Pe,2,0,"th",26),o.YNc(20,Ee,4,4,"td",27),o.BQk(),o.ynx(21,30),o.YNc(22,Ye,2,0,"th",31),o.YNc(23,Qe,4,3,"td",27),o.BQk(),o.ynx(24,32),o.YNc(25,Be,6,0,"th",33),o.YNc(26,He,3,0,"td",34),o.BQk(),o.ynx(27,35),o.YNc(28,$e,4,3,"td",36),o.BQk(),o.ynx(29,37),o.YNc(30,Ke,4,2,"td",27),o.BQk(),o.ynx(31,38),o.YNc(32,en,5,5,"td",27),o.BQk(),o.ynx(33,39),o.YNc(34,sn,5,5,"td",27),o.BQk(),o.ynx(35,40),o.YNc(36,rn,5,5,"td",27),o.BQk(),o.ynx(37,41),o.YNc(38,dn,5,2,"td",42),o.BQk(),o.YNc(39,mn,1,1,"tr",43),o.YNc(40,hn,1,3,"tr",44),o.YNc(41,gn,1,0,"tr",45),o.YNc(42,fn,1,1,"tr",46),o.qZA(),o.qZA(),o._UZ(43,"mat-paginator",47),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("icon",t.faHistory),o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.payments)("ngClass",o.VKq(13,xn,""!==t.errorMessage)),o.xp6(29),o.Q6J("matRowDefColumns",t.partColumns)("matRowDefWhen",t.is_group),o.xp6(1),o.Q6J("matFooterRowDef",o.DdM(15,Zn)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let An=(()=>{class t{constructor(t,e,n,a,i,s,o){this.logger=t,this.commonService=e,this.store=n,this.rtlEffects=a,this.decimalPipe=i,this.dataService=s,this.datePipe=o,this.calledFrom="transactions",this.faHistory=h.qO$,this.newlyAddedPayment="",this.flgAnimate=!0,this.selNode={},this.information={},this.paymentJSONArr=[],this.paymentDecoded={},this.displayedColumns=[],this.partColumns=[],this.paymentRequest="",this.paymentDecodedHint="",this.flgSticky=!1,this.pageSize=g.IV,this.pageSizeOptions=g.TJ,this.screenSize="",this.screenSizeEnum=g.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.flgSticky=!1,this.displayedColumns=["firstPartTimestamp","actions"],this.partColumns=["groupTotal","groupAction"]):this.screenSize===g.cu.SM?(this.flgSticky=!1,this.displayedColumns=["firstPartTimestamp","recipientAmount","actions"],this.partColumns=["groupTotal","groupAmount","groupAction"]):this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["firstPartTimestamp","id","recipientAmount","actions"],this.partColumns=["groupTotal","groupId","groupAmount","groupAction"]):(this.flgSticky=!0,this.displayedColumns=["firstPartTimestamp","id","recipientNodeAlias","recipientAmount","actions"],this.partColumns=["groupTotal","groupId","groupChannelAlias","groupAmount","groupAction"])}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchPayments.status===g.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPayments.message?JSON.stringify(this.apisCallStatus.FetchPayments.message):this.apisCallStatus.FetchPayments.message),this.information=t.information,this.selNode=t.nodeSettings,t.payments.sent&&t.payments.sent.map(e=>{const n=t.peers.find(t=>t.nodeId===e.recipientNodeId);return e.recipientNodeAlias=n?n.alias:e.recipientNodeId,e.parts&&e.parts.map(n=>{const a=t.activeChannels.find(t=>t.channelId===n.toChannelId);return n.toChannelAlias=a?a.alias:n.toChannelId,e.parts}),t.payments.sent}),this.paymentJSONArr=t.payments&&t.payments.sent&&t.payments.sent.length>0?t.payments.sent:[],this.loadPaymentsTable(this.paymentJSONArr),setTimeout(()=>{this.flgAnimate=!1},3e3),this.logger.info(t)})}ngAfterViewInit(){this.loadPaymentsTable(this.paymentJSONArr)}loadPaymentsTable(t){this.payments=new pt.by(t?[...t]:[]),this.payments.sort=this.sort,this.payments.sortingDataAccessor=(t,e)=>{switch(e){case"firstPartTimestamp":return this.commonService.sortByKey(t.parts,"timestamp","number",this.sort.direction),t.firstPartTimestamp;case"id":return this.commonService.sortByKey(t.parts,"id","string",this.sort.direction),t.id;case"recipientNodeAlias":return this.commonService.sortByKey(t.parts,"toChannelAlias","string",this.sort.direction),t.recipientNodeAlias;case"recipientAmount":return this.commonService.sortByKey(t.parts,"amount","number",this.sort.direction),t.recipientAmount;default:return t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null}},this.payments.filterPredicate=(t,e)=>((t.firstPartTimestamp?this.datePipe.transform(new Date(t.firstPartTimestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(t).toLowerCase()).includes(e),this.payments.paginator=this.paginator}onSendPayment(){if(!this.paymentRequest)return!0;this.paymentDecoded.timestamp?this.sendPayment():this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,ue.q)(1)).subscribe(t=>{this.paymentDecoded=t,this.paymentDecoded.timestamp?(this.paymentDecoded.amount||(this.paymentDecoded.amount=0),this.sendPayment()):this.resetData()})}sendPayment(){this.flgAnimate=!0,this.newlyAddedPayment=this.paymentDecoded.paymentHash,this.paymentDecoded.amount&&0!==this.paymentDecoded.amount?(this.store.dispatch(new Ft.b_({data:{type:g.n_.CONFIRM,alertTitle:"Confirm Send Payment",noBtnText:"Cancel",yesBtnText:"Send Payment",message:[[{key:"paymentHash",value:this.paymentDecoded.paymentHash,title:"Payment Hash",width:100}],[{key:"nodeId",value:this.paymentDecoded.nodeId,title:"Payee",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"timestamp",value:this.paymentDecoded.timestamp,title:"Creation Date",width:50,type:g.Gi.DATE_TIME},{key:"amount",value:this.paymentDecoded.amount,title:"Amount (Sats)",width:50,type:g.Gi.NUMBER}],[{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:50,type:g.Gi.NUMBER},{key:"minFinalCltvExpiry",value:this.paymentDecoded.minFinalCltvExpiry,title:"CLTV Expiry",width:50}]]}})),this.rtlEffects.closeConfirm.pipe((0,ue.q)(1)).subscribe(t=>{t&&(this.store.dispatch(new gt.Ar({invoice:this.paymentRequest,fromDialog:!1})),this.resetData())})):(this.store.dispatch(new Ft.b_({data:{type:g.n_.CONFIRM,alertTitle:"Enter Amount and Confirm Send Payment",message:[[{key:"paymentHash",value:this.paymentDecoded.paymentHash,title:"Payment Hash",width:100}],[{key:"nodeId",value:this.paymentDecoded.nodeId,title:"Payee",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"timestamp",value:this.paymentDecoded.timestamp,title:"Creation Date",width:40,type:g.Gi.DATE_TIME},{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:30,type:g.Gi.NUMBER},{key:"minFinalCltvExpiry",value:this.paymentDecoded.minFinalCltvExpiry,title:"CLTV Expiry",width:30}]],noBtnText:"Cancel",yesBtnText:"Send Payment",flgShowInput:!0,titleMessage:"It is a zero amount invoice. Enter the amount (Sats) to pay.",getInputs:[{placeholder:"Amount (Sats)",inputType:g.Gi.NUMBER.toLowerCase(),inputValue:"",width:30}]}})),this.rtlEffects.closeConfirm.pipe((0,ue.q)(1)).subscribe(t=>{t&&(this.paymentDecoded.amount=t[0].inputValue,this.store.dispatch(new gt.Ar({invoice:this.paymentRequest,amountMsat:1e3*t[0].inputValue,fromDialog:!1})),this.resetData())}))}onPaymentRequestEntry(t){this.paymentRequest=t,this.paymentDecodedHint="",this.paymentRequest&&this.paymentRequest.length>100&&this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,ue.q)(1)).subscribe(t=>{this.paymentDecoded=t,this.paymentDecoded.amount?this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.amount,g.NT.SATS,g.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,m.R)(this.unSubs[1])).subscribe({next:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats ("+t.symbol+this.decimalPipe.transform(t.OTHER?t.OTHER:0,g.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description:this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description})}openSendPaymentModal(){this.store.dispatch(new Ft.wu({data:{component:Ce}}))}resetData(){this.paymentDecoded={},this.paymentRequest="",this.form.resetForm()}is_group(t,e){return e.parts&&e.parts.length>1}onPaymentClick(t){t.paymentHash&&""!==t.paymentHash.trim()?this.dataService.decodePayments(t.paymentHash).pipe((0,ue.q)(1)).subscribe({next:e=>{this.showPaymentView(t,e.length&&e.length>0?e[0]:[])},error:e=>{this.showPaymentView(t,[])}}):this.showPaymentView(t,[])}showPaymentView(t,e){this.store.dispatch(new Ft.wu({data:{sentPaymentInfo:e,payment:t,component:be}}))}onPartClick(t,e){e.paymentHash&&""!==e.paymentHash.trim()?this.dataService.decodePayments(e.paymentHash).pipe((0,ue.q)(1)).subscribe({next:n=>{this.showPartView(t,e,n)},error:n=>{this.showPartView(t,e,[])}}):this.showPartView(t,e,[])}showPartView(t,e,n){const a=[[{key:"paymentHash",value:e.paymentHash,title:"Payment Hash",width:100,type:g.Gi.STRING}],[{key:"paymentPreimage",value:e.paymentPreimage,title:"Payment Preimage",width:100,type:g.Gi.STRING}],[{key:"toChannelId",value:t.toChannelId,title:"Channel",width:100,type:g.Gi.STRING}],[{key:"id",value:t.id,title:"Part ID",width:50,type:g.Gi.STRING},{key:"timestamp",value:t.timestamp,title:"Time",width:50,type:g.Gi.DATE_TIME}],[{key:"amount",value:t.amount,title:"Amount (Sats)",width:50,type:g.Gi.NUMBER},{key:"feesPaid",value:t.feesPaid,title:"Fee (Sats)",width:50,type:g.Gi.NUMBER}]];n.length>0&&n[0].paymentRequest&&n[0].paymentRequest.description&&""!==n[0].paymentRequest.description&&a.splice(3,0,[{key:"description",value:n[0].paymentRequest.description,title:"Description",width:100,type:g.Gi.STRING}]),this.store.dispatch(new Ft.wu({data:{type:g.n_.INFORMATION,alertTitle:"Payment Part Information",message:a}}))}applyFilter(t){this.payments.filter=t.value.trim().toLowerCase()}onDownloadCSV(){if(this.payments.data&&this.payments.data.length>0){const t=JSON.parse(JSON.stringify(this.payments.data)),e=t.reduce((t,e)=>(e.paymentHash&&""!==e.paymentHash.trim()&&(t=""===t?e.paymentHash:t+","+e.paymentHash),t),"");this.dataService.decodePayments(e).pipe((0,m.R)(this.unSubs[2])).subscribe(e=>{e.forEach((e,n)=>{e.length>0&&e[0].paymentRequest&&e[0].paymentRequest.description&&""!==e[0].paymentRequest.description&&(t[n].description=e[0].paymentRequest.description)});const n=t.reduce((t,e)=>t.concat(e),[]);this.commonService.downloadFile(n,"Payments")})}}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(y.v),o.Y36(x.yh),o.Y36(Le.V),o.Y36(a.JJ),o.Y36(me.D),o.Y36(a.uU))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-lightning-payments"]],viewQuery:function(t,e){if(1&t&&(o.Gf(Fe,5),o.Gf(mt.YE,5),o.Gf(dt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first),o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},inputs:{calledFrom:"calledFrom"},features:[o._Bn([{provide:dt.ye,useValue:(0,g.pt)("Payments")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["sendPaymentForm","ngForm"],["fxFlex","100"],["matInput","","placeholder","Payment Request","name","paymentRequest","tabindex","1","required","",3,"perfectScrollbar","ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["fxLayout","row"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","firstPartTimestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","id"],["matColumnDef","recipientNodeAlias"],["matColumnDef","recipientAmount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_payment"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["matColumnDef","groupTotal"],["matColumnDef","groupId"],["matColumnDef","groupChannelAlias"],["matColumnDef","groupAmount"],["matColumnDef","groupAction"],["mat-cell","","class","px-3",4,"matCellDef"],["mat-row","",4,"matRowDef","matRowDefColumns","matRowDefWhen"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],["fxLayoutAlign","start center",1,"part-row-span"],["fxLayoutAlign","start center","class","part-row-span pl-3",4,"ngFor","ngForOf"],["fxLayoutAlign","start center",1,"part-row-span","pl-3"],["fxLayoutAlign","start center",1,"ellipsis-parent","part-row-span",3,"ngStyle"],["fxLayoutAlign","start center","class","part-row-span",4,"ngFor","ngForOf"],["fxLayoutAlign","end center",1,"part-row-span"],["fxLayoutAlign","end center","class","part-row-span",4,"ngFor","ngForOf"],["mat-cell","",1,"px-3"],["fxLayoutAlign","end start"],["mat-flat-button","","color","primary","type","button","tabindex","5",1,"btn-part-expand",3,"click"],["fxLayoutAlign","end start",4,"ngFor","ngForOf"],["mat-stroked-button","","color","primary","type","button","tabindex","6",1,"btn-part-info",3,"click"],["mat-row",""],["mat-footer-row","",3,"ngClass"],["mat-header-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,_e,12,3,"form",1),o.YNc(2,De,3,0,"div",2),o.YNc(3,yn,44,16,"div",3),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf","home"===e.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===e.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===e.calledFrom))},directives:[l.xw,l.yH,l.Wh,a.O5,ft._Y,ft.JL,ft.F,O.KE,xt.Nt,ft.Fj,xt.D7,ft.Q7,M.$V,ft.JJ,ft.On,v.lW,O.bx,O.TO,A.BN,pt.BZ,mt.YE,a.mk,S.oO,pt.w1,pt.fO,pt.Dz,pt.mD,pt.nj,pt.Ke,pt.as,dt.NW,r.pW,pt.ge,mt.nU,pt.ev,a.PC,S.Zl,At.gD,At.$L,Ct.ey,pt.yh,a.sg,pt.Gk,pt.Q2,pt.XQ],pipes:[a.uU,a.JJ],styles:[".mat-column-groupChannelAlias[_ngcontent-%COMP%], .mat-column-groupId[_ngcontent-%COMP%], .mat-column-id[_ngcontent-%COMP%], .mat-column-recipientNodeAlias[_ngcontent-%COMP%]{padding:0 1rem;flex:0 0 25%;width:25%}.mat-column-groupChannelAlias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%], .mat-column-groupId[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%], .mat-column-id[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%], .mat-column-recipientNodeAlias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%], .mat-column-groupAction[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-part-expand[_ngcontent-%COMP%]{width:9rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-part-info[_ngcontent-%COMP%]{margin-top:.5rem;width:9rem}.part-row-span[_ngcontent-%COMP%]{min-height:4.2rem;place-content:center flex-start;align-items:center}.mat-column-groupTotal[_ngcontent-%COMP%]{min-width:15rem}"],data:{animation:[Lt.Q]}}),t})();function Cn(t,e){if(1&t&&(o.TgZ(0,"button",26),o.TgZ(1,"mat-icon"),o._uU(2,"more_vert"),o.qZA(),o.qZA()),2&t){o.oxw();const t=o.MAs(11);o.Q6J("matMenuTriggerFor",t)}}function Tn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",15),o.NdJ("click",function(){return o.CHM(t),o.oxw(3).onNavigateTo("/ecl/reports")}),o._uU(1,"Fees Summary"),o.qZA()}}function wn(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",15),o.NdJ("click",function(){return o.CHM(t),o.oxw(3).onsortChannelsBy()}),o._uU(1),o.qZA()}if(2&t){const t=o.oxw(3);o.xp6(1),o.hij("Sort By ","Balance Score"===t.sortField?"Capacity":"Balance Score","")}}function Sn(t,e){1&t&&o._UZ(0,"mat-progress-bar",27)}function vn(t,e){if(1&t&&o._UZ(0,"rtl-ecl-node-info",28),2&t){const t=o.oxw(3);o.Q6J("information",t.information)("showColorFieldSeparately",!1)}}function qn(t,e){if(1&t&&o._UZ(0,"rtl-ecl-balances-info",29),2&t){const t=o.oxw(3);o.Q6J("balances",t.balances)("errorMessage",t.errorMessages[2]+" "+t.errorMessages[3])}}function bn(t,e){if(1&t&&o._UZ(0,"rtl-ecl-channel-capacity-info",30),2&t){const t=o.oxw(3);o.Q6J("sortBy",t.sortField)("channelBalances",t.channelBalances)("allChannels",t.allChannelsCapacity)("errorMessage",t.errorMessages[2])}}function Ln(t,e){if(1&t&&o._UZ(0,"rtl-ecl-fee-info",31),2&t){const t=o.oxw(3);o.Q6J("fees",t.fees)("errorMessage",t.errorMessages[1])}}function Fn(t,e){if(1&t&&o._UZ(0,"rtl-ecl-channel-status-info",32),2&t){const t=o.oxw(3);o.Q6J("channelsStatus",t.channelsStatus)("errorMessage",t.errorMessages[2])}}function In(t,e){1&t&&(o.TgZ(0,"h3"),o._uU(1,"Error! Unable to find information!"),o.qZA())}const Nn=function(t){return{"dashboard-card-content":!0,"error-border":t}};function _n(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-grid-tile",8),o.TgZ(1,"mat-card",9),o.TgZ(2,"mat-card-header"),o.TgZ(3,"mat-card-title",10),o.TgZ(4,"div"),o._UZ(5,"fa-icon",11),o.TgZ(6,"span"),o._uU(7),o.qZA(),o.qZA(),o.TgZ(8,"div"),o.YNc(9,Cn,3,1,"button",12),o.TgZ(10,"mat-menu",13,14),o.TgZ(12,"button",15),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw(2).onNavigateTo(e.link)}),o._uU(13),o.qZA(),o.YNc(14,Tn,2,0,"button",16),o.YNc(15,wn,2,1,"button",16),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(16,"mat-card-content",17),o.YNc(17,Sn,1,0,"mat-progress-bar",18),o.TgZ(18,"div",19),o.YNc(19,vn,1,2,"rtl-ecl-node-info",20),o.YNc(20,qn,1,2,"rtl-ecl-balances-info",21),o.YNc(21,bn,1,4,"rtl-ecl-channel-capacity-info",22),o.YNc(22,Ln,1,2,"rtl-ecl-fee-info",23),o.YNc(23,Fn,1,2,"rtl-ecl-channel-status-info",24),o.YNc(24,In,2,0,"h3",25),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("colspan",t.cols)("rowspan",t.rows),o.xp6(5),o.Q6J("icon",t.icon),o.xp6(2),o.Oqu(t.title),o.xp6(2),o.Q6J("ngIf",t.link),o.xp6(4),o.hij("Go To ",t.goTo,""),o.xp6(1),o.Q6J("ngIf","fee"===t.id),o.xp6(1),o.Q6J("ngIf","capacity"===t.id),o.xp6(1),o.s9C("fxFlex","capacity"===t.id?90:70),o.Q6J("ngClass",o.VKq(17,Nn,"node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||"balance"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchOnchainBalance.status)===n.apiCallStatusEnum.ERROR)||("capacity"===t.id||"status"===t.id)&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.ERROR||"fee"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.ERROR)),o.xp6(1),o.Q6J("ngIf","node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||"balance"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchOnchainBalance.status)===n.apiCallStatusEnum.INITIATED)||("capacity"===t.id||"status"===t.id)&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.INITIATED||"fee"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngSwitch",t.id),o.xp6(1),o.Q6J("ngSwitchCase","node"),o.xp6(1),o.Q6J("ngSwitchCase","balance"),o.xp6(1),o.Q6J("ngSwitchCase","capacity"),o.xp6(1),o.Q6J("ngSwitchCase","fee"),o.xp6(1),o.Q6J("ngSwitchCase","status")}}function Dn(t,e){if(1&t&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o._UZ(2,"fa-icon",4),o.TgZ(3,"span",5),o._uU(4),o.qZA(),o.qZA(),o.TgZ(5,"mat-grid-list",6),o.YNc(6,_n,25,19,"mat-grid-tile",7),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Q6J("icon",(null==t.apisCallStatus?null:t.apisCallStatus.FetchInfo.status)===t.apiCallStatusEnum.ERROR?t.faFrown:t.faSmile),o.xp6(2),o.Oqu((null==t.apisCallStatus?null:t.apisCallStatus.FetchInfo.status)===t.apiCallStatusEnum.COMPLETED?"Welcome "+t.information.alias+"! Your node is up and running.":(null==t.apisCallStatus?null:t.apisCallStatus.FetchInfo.status)===t.apiCallStatusEnum.INITIATED?"Wait! Getting your node information...":"Error! Please check the server connection."),o.xp6(1),o.Q6J("rowHeight",t.operatorCardHeight),o.xp6(1),o.Q6J("ngForOf",t.operatorCards)}}function kn(t,e){if(1&t&&(o.TgZ(0,"button",26),o.TgZ(1,"mat-icon"),o._uU(2,"more_vert"),o.qZA(),o.qZA()),2&t){o.oxw();const t=o.MAs(9);o.Q6J("matMenuTriggerFor",t)}}function On(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-card-header"),o.TgZ(1,"mat-card-title",10),o.TgZ(2,"div"),o._UZ(3,"fa-icon",11),o.TgZ(4,"span"),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"div"),o.YNc(7,kn,3,1,"button",12),o.TgZ(8,"mat-menu",13,41),o.TgZ(10,"button",15),o.NdJ("click",function(){o.CHM(t);const e=o.oxw().$implicit;return o.oxw(2).onNavigateTo(e.link)}),o._uU(11),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw().$implicit;o.xp6(3),o.Q6J("icon",t.icon),o.xp6(2),o.Oqu(t.title),o.xp6(2),o.Q6J("ngIf",t.link),o.xp6(4),o.hij("Go To ",t.goTo,"")}}function Un(t,e){1&t&&o._UZ(0,"mat-progress-bar",27)}function Rn(t,e){if(1&t&&o._UZ(0,"rtl-ecl-node-info",42),2&t){const t=o.oxw(3);o.Q6J("information",t.information)}}function Mn(t,e){if(1&t&&o._UZ(0,"rtl-ecl-balances-info",29),2&t){const t=o.oxw(3);o.Q6J("balances",t.balances)("errorMessage",t.errorMessages[2]+" "+t.errorMessages[3])}}function Jn(t,e){if(1&t&&o._UZ(0,"rtl-ecl-channel-liquidity-info",43),2&t){const t=o.oxw(3);o.Q6J("direction","In")("totalLiquidity",t.totalInboundLiquidity)("allChannels",t.allInboundChannels)("errorMessage",t.errorMessages[2])}}function Pn(t,e){if(1&t&&o._UZ(0,"rtl-ecl-channel-liquidity-info",43),2&t){const t=o.oxw(3);o.Q6J("direction","Out")("totalLiquidity",t.totalOutboundLiquidity)("allChannels",t.allOutboundChannels)("errorMessage",t.errorMessages[2])}}function En(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",52),o.TgZ(1,"mat-icon"),o._uU(2,"more_vert"),o.qZA(),o.qZA(),o.TgZ(3,"mat-menu",13,53),o.TgZ(5,"button",15),o.NdJ("click",function(){o.CHM(t);const e=o.oxw(2).$implicit;return o.oxw(2).onNavigateTo(e.link)}),o._uU(6),o.qZA(),o.TgZ(7,"button",15),o.NdJ("click",function(){return o.CHM(t),o.oxw(4).onNavigateTo("/ecl/reports/transactions")}),o._uU(8,"Transactions Summary"),o.qZA(),o.qZA()}if(2&t){const t=o.MAs(4),e=o.oxw(2).$implicit;o.Q6J("matMenuTriggerFor",t),o.xp6(6),o.hij("Go To ",e.goTo,"")}}function Yn(t,e){1&t&&(o.TgZ(0,"span",44),o.TgZ(1,"mat-tab-group",45),o.TgZ(2,"mat-tab",46),o._UZ(3,"rtl-ecl-lightning-invoices",47),o.qZA(),o.TgZ(4,"mat-tab",48),o._UZ(5,"rtl-ecl-lightning-payments",49),o.qZA(),o.TgZ(6,"mat-tab",50),o.YNc(7,En,9,2,"ng-template",51),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Q6J("calledFrom","home"),o.xp6(2),o.Q6J("calledFrom","home"),o.xp6(1),o.Q6J("disabled",!0))}function Qn(t,e){1&t&&(o.TgZ(0,"h3"),o._uU(1,"Error! Unable to find information!"),o.qZA())}const Bn=function(t){return{"p-0":t}};function Hn(t,e){if(1&t&&(o.TgZ(0,"mat-grid-tile",8),o.TgZ(1,"mat-card",35),o.YNc(2,On,12,4,"mat-card-header",36),o.TgZ(3,"mat-card-content",37),o.YNc(4,Un,1,0,"mat-progress-bar",18),o.TgZ(5,"div",19),o.YNc(6,Rn,1,1,"rtl-ecl-node-info",38),o.YNc(7,Mn,1,2,"rtl-ecl-balances-info",21),o.YNc(8,Jn,1,4,"rtl-ecl-channel-liquidity-info",39),o.YNc(9,Pn,1,4,"rtl-ecl-channel-liquidity-info",39),o.YNc(10,Yn,8,3,"span",40),o.YNc(11,Qn,2,0,"h3",25),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("colspan",t.cols)("rowspan",t.rows),o.xp6(1),o.Q6J("ngClass",o.VKq(13,Bn,"transactions"===t.id)),o.xp6(1),o.Q6J("ngIf","transactions"!==t.id),o.xp6(1),o.s9C("fxFlex","transactions"===t.id?100:"balance"===t.id?70:90),o.Q6J("ngClass",o.VKq(15,Nn,"node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||"balance"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchOnchainBalance.status)===n.apiCallStatusEnum.ERROR)||("inboundLiq"===t.id||"outboundLiq"===t.id)&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.ERROR)),o.xp6(1),o.Q6J("ngIf","node"===t.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||"balance"===t.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchOnchainBalance.status)===n.apiCallStatusEnum.INITIATED)||("inboundLiq"===t.id||"outboundLiq"===t.id)&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchChannels.status)===n.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngSwitch",t.id),o.xp6(1),o.Q6J("ngSwitchCase","node"),o.xp6(1),o.Q6J("ngSwitchCase","balance"),o.xp6(1),o.Q6J("ngSwitchCase","inboundLiq"),o.xp6(1),o.Q6J("ngSwitchCase","outboundLiq"),o.xp6(1),o.Q6J("ngSwitchCase","transactions")}}function zn(t,e){if(1&t&&(o.TgZ(0,"div",33),o._UZ(1,"fa-icon",4),o.TgZ(2,"span",5),o._uU(3),o.qZA(),o.qZA(),o.TgZ(4,"mat-grid-list",34),o.YNc(5,Hn,12,17,"mat-grid-tile",7),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faSmile),o.xp6(2),o.hij("Welcome ",t.information.alias,"! Your node is up and running."),o.xp6(1),o.Q6J("rowHeight",t.merchantCardHeight),o.xp6(1),o.Q6J("ngForOf",t.merchantCards)}}let Vn=(()=>{class t{constructor(t,e,n,a,i){this.logger=t,this.store=e,this.actions=n,this.commonService=a,this.router=i,this.faSmile=p.I3,this.faFrown=p.Kf,this.faAngleDoubleDown=h.Sbq,this.faAngleDoubleUp=h.Vfw,this.faChartPie=h.OS1,this.faBolt=h.BDt,this.faServer=h.xf3,this.faNetworkWired=h.kXW,this.userPersonaEnum=g.ol,this.channelBalances={localBalance:0,remoteBalance:0,balancedness:0},this.selNode={},this.information={},this.channels=[],this.onchainBalance={},this.balances={onchain:-1,lightning:-1,total:0},this.channelsStatus={},this.allChannelsCapacity=[],this.allInboundChannels=[],this.allOutboundChannels=[],this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.operatorCards=[],this.merchantCards=[],this.screenSize="",this.operatorCardHeight="330px",this.merchantCardHeight="65px",this.sortField="Balance Score",this.errorMessages=["","","",""],this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:10,rows:1},{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:10,rows:1},{id:"fee",goTo:"Routing",link:"/ecl/routing",icon:this.faBolt,title:"Routing Fee",cols:10,rows:1},{id:"status",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels",cols:10,rows:1},{id:"capacity",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:6,rows:4},{id:"transactions",goTo:"Transactions",link:"/ecl/transactions",title:"",cols:6,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:6,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:6,rows:8}]):this.screenSize===g.cu.SM||this.screenSize===g.cu.MD?(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:5,rows:1},{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:5,rows:1},{id:"fee",goTo:"Routing",link:"/ecl/routing",icon:this.faBolt,title:"Routing Fee",cols:5,rows:1},{id:"status",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels",cols:5,rows:1},{id:"capacity",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:4},{id:"transactions",goTo:"Transactions",link:"/ecl/transactions",title:"",cols:3,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:3,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:3,rows:8}]):(this.operatorCardHeight=(window.screen.height-200)/2+"px",this.merchantCardHeight=(window.screen.height-210)/10+"px",this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:3,rows:1},{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:1},{id:"capacity",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:4,rows:2},{id:"fee",goTo:"Routing",link:"/ecl/routing",icon:this.faBolt,title:"Routing Fee",cols:3,rows:1},{id:"status",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels",cols:3,rows:1}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:2,rows:5},{id:"inboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:2,rows:10},{id:"outboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:2,rows:10},{id:"transactions",goTo:"Transactions",link:"/ecl/transactions",title:"",cols:2,rows:5}])}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[1])).subscribe(t=>{this.errorMessages=["","","",""],this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchInfo.status===g.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apisCallStatus.FetchInfo.message?JSON.stringify(this.apisCallStatus.FetchInfo.message):this.apisCallStatus.FetchInfo.message),t.apisCallStatus.FetchFees.status===g.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apisCallStatus.FetchFees.message?JSON.stringify(this.apisCallStatus.FetchFees.message):this.apisCallStatus.FetchFees.message),t.apisCallStatus.FetchChannels.status===g.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apisCallStatus.FetchChannels.message?JSON.stringify(this.apisCallStatus.FetchChannels.message):this.apisCallStatus.FetchChannels.message),t.apisCallStatus.FetchOnchainBalance.status===g.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apisCallStatus.FetchOnchainBalance.message?JSON.stringify(this.apisCallStatus.FetchOnchainBalance.message):this.apisCallStatus.FetchOnchainBalance.message),this.selNode=t.nodeSettings,this.information=t.information,this.fees=t.fees,this.channels=t.activeChannels,this.onchainBalance=t.onchainBalance,this.balances.onchain=this.onchainBalance.total,this.balances.lightning=t.lightningBalance.localBalance,this.balances.total=this.balances.lightning+this.balances.onchain,this.balances=Object.assign({},this.balances);const e=t.lightningBalance.localBalance?+t.lightningBalance.localBalance:0,n=t.lightningBalance.remoteBalance?+t.lightningBalance.remoteBalance:0;this.channelBalances={localBalance:e,remoteBalance:n,balancedness:+(1-Math.abs((e-n)/(e+n))).toFixed(3)},this.channelsStatus=t.channelsStatus,this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.allChannelsCapacity=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.channels,"balancedness"))),this.allInboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.channels.filter(t=>t.toRemote>0),"toRemote"))),this.allOutboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.channels.filter(t=>t.toLocal>0),"toLocal"))),this.channels.forEach(t=>{this.totalInboundLiquidity=this.totalInboundLiquidity+Math.ceil(t.toRemote),this.totalOutboundLiquidity=this.totalOutboundLiquidity+Math.floor(t.toLocal)}),this.logger.info(t)})}onNavigateTo(t){this.router.navigateByUrl(t)}onsortChannelsBy(){"Balance Score"===this.sortField?(this.sortField="Capacity",this.allChannelsCapacity=this.channels.sort((t,e)=>{const n=+t.toLocal+ +t.toRemote,a=+e.toLocal+ +e.toRemote;return n>a?-1:n{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(x.yh),o.Y36(Z.eX),o.Y36(y.v),o.Y36(i.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-home"]],decls:3,vars:2,consts:[["fxLayout","column",4,"ngIf","ngIfElse"],["merchantDashboard",""],["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","mb-0"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["cols","10",3,"rowHeight"],[3,"colspan","rowspan",4,"ngFor","ngForOf"],[3,"colspan","rowspan"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4"],["fxLayoutAlign","space-between center"],[1,"mr-1",3,"icon"],["mat-icon-button","","class","more-button","aria-label","Toggle menu",3,"matMenuTriggerFor",4,"ngIf"],["xPosition","before",1,"dashboard-vert-menu"],["menuOperator","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngIf"],["fxLayout","column",3,"fxFlex","ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"balances","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],[4,"ngSwitchDefault"],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",3,"matMenuTriggerFor"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"balances","errorMessage"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container","mb-0"],["cols","6",3,"rowHeight"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4",3,"ngClass"],[4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",3,"fxFlex","ngClass"],["fxFlex","100",3,"information",4,"ngSwitchCase"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage",4,"ngSwitchCase"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start",4,"ngSwitchCase"],["menuMerchant","matMenu"],["fxFlex","100",3,"information"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start"],["fxLayout","column",1,"w-100","dashboard-tabs-group"],["label","Receive"],[1,"h-100",3,"calledFrom"],["label","Pay"],[3,"calledFrom"],[3,"disabled"],["mat-tab-label",""],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",2,"max-width","20px",3,"matMenuTriggerFor"],["menuTransactions","matMenu"]],template:function(t,e){if(1&t&&(o.YNc(0,Dn,7,4,"div",0),o.YNc(1,zn,6,4,"ng-template",null,1,o.W1O)),2&t){const t=o.MAs(2);o.Q6J("ngIf",e.selNode.userPersona===e.userPersonaEnum.OPERATOR)("ngIfElse",t)}},directives:[a.O5,l.xw,l.Wh,A.BN,C.Il,a.sg,C.DX,T.a8,l.yH,T.dk,T.n5,w.VK,w.OP,T.dn,a.mk,S.oO,a.RF,a.n9,a.ED,v.lW,w.p6,q.Hw,r.pW,N,k,B,V,X,rt,ct.SP,ct.uX,ce,An,ct.uD],styles:[""]}),t})();const Gn=["form"];function $n(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Bitcoin address is required."),o.qZA())}function Xn(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.amountError)}}function Wn(t,e){if(1&t&&(o.TgZ(0,"mat-option",29),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t),o.xp6(1),o.Oqu(t)}}function Kn(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Target Confirmation Blocks is required."),o.qZA())}function jn(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.sendFundError)}}function ta(t,e){if(1&t&&(o.TgZ(0,"div",30),o._UZ(1,"fa-icon",31),o.YNc(2,jn,2,1,"span",12),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==t.sendFundError)}}let ea=(()=>{class t{constructor(t,e,n,a,i,s){this.dialogRef=t,this.logger=e,this.store=n,this.commonService=a,this.decimalPipe=i,this.actions=s,this.faExclamationTriangle=h.eHv,this.selNode={},this.addressTypes=[],this.selectedAddress=g._t[1],this.blockchainBalance={},this.information={},this.newAddress="",this.transaction={},this.sendFundError="",this.fiatConversion=!1,this.amountUnits=g.uA,this.selAmountUnit=g.uA[0],this.currConvertorRate={},this.unitConversionValue=0,this.currencyUnitFormats=g.Xz,this.amountError="Amount is Required.",this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.store.select("root").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.fiatConversion=t.selNode.settings.fiatConversion,this.amountUnits=t.selNode.settings.currencyUnits,this.appConfig=t.appConfig,this.nodeData=t.nodeData,this.logger.info(t)}),this.actions.pipe((0,m.R)(this.unSubs[1]),(0,ut.h)(t=>t.type===gt.f||t.type===gt.wL)).subscribe(t=>{t.type===gt.wL&&(this.store.dispatch(new Ft.Lw("Fund Sent Successfully!")),this.dialogRef.close()),t.type===gt.f&&t.payload.status===g.Bn.ERROR&&"SendOnchainFunds"===t.payload.action&&(this.sendFundError=t.payload.message)})}onSendFunds(){if(this.invalidValues)return!0;this.sendFundError="",this.transaction.amount&&this.selAmountUnit!==g.NT.SATS?this.commonService.convertCurrency(this.transaction.amount,this.selAmountUnit===this.amountUnits[2]?g.NT.OTHER:this.selAmountUnit,g.NT.SATS,this.amountUnits[2],this.fiatConversion).pipe((0,m.R)(this.unSubs[2])).subscribe({next:t=>{this.transaction.amount=parseInt(t[g.NT.SATS]),this.selAmountUnit=g.NT.SATS,this.store.dispatch(new gt.J6(this.transaction))},error:t=>{this.transaction.amount=null,this.selAmountUnit=g.NT.SATS,this.amountError="Conversion Error: "+t}}):this.store.dispatch(new gt.J6(this.transaction))}get invalidValues(){return!this.transaction.address||""===this.transaction.address||!this.transaction.amount||this.transaction.amount<=0||!this.transaction.blocks||this.transaction.blocks<=0}resetData(){this.sendFundError="",this.transaction={}}onAmountUnitChange(t){const e=this,n=this.selAmountUnit===this.amountUnits[2]?g.NT.OTHER:this.selAmountUnit;let a=t.value===this.amountUnits[2]?g.NT.OTHER:t.value;this.transaction.amount&&this.selAmountUnit!==t.value&&this.commonService.convertCurrency(this.transaction.amount,n,a,this.amountUnits[2],this.fiatConversion).pipe((0,m.R)(this.unSubs[3])).subscribe({next:n=>{this.selAmountUnit=t.value,e.transaction.amount=+e.decimalPipe.transform(n[a],e.currencyUnitFormats[a]).replace(/,/g,"")},error:t=>{e.transaction.amount=null,this.amountError="Conversion Error: "+t,this.selAmountUnit=n,a=n}})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(ht.so),o.Y36(f.mQ),o.Y36(x.yh),o.Y36(y.v),o.Y36(a.JJ),o.Y36(Z.eX))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-on-chain-send-modal"]],viewQuery:function(t,e){if(1&t&&o.Gf(Gn,7),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first)}},decls:36,vars:15,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between start",1,"overflow-x-hidden",3,"submit","reset"],["form","ngForm"],["fxFlex","55"],["matInput","","autoFocus","","placeholder","Bitcoin Address","tabindex","1","name","addr","required","",3,"ngModel","ngModelChange"],["addrs","ngModel"],[4,"ngIf"],["fxFlex","30"],["matInput","","placeholder","Amount","name","amt","type","number","tabindex","2","required","",3,"ngModel","step","min","ngModelChange"],["amnt","ngModel"],["matSuffix",""],["fxFlex","10","fxLayoutAlign","start end"],["tabindex","3","required","","name","amountUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","60","fxLayoutAlign","space-between stretch","fxLayout","row wrap"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["matInput","","placeholder","Target Confirmation Blocks","type","number","name","blocks","tabindex","8","required","true",3,"ngModel","step","min","ngModelChange"],["blocks","ngModel"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["mat-flat-button","","color","primary","type","submit","tabindex","8"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Send Payment"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.NdJ("submit",function(){return e.onSendFunds()})("reset",function(){return e.resetData()}),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"input",10,11),o.NdJ("ngModelChange",function(t){return e.transaction.address=t}),o.qZA(),o.YNc(14,$n,2,0,"mat-error",12),o.qZA(),o.TgZ(15,"mat-form-field",13),o.TgZ(16,"input",14,15),o.NdJ("ngModelChange",function(t){return e.transaction.amount=t}),o.qZA(),o.TgZ(18,"span",16),o._uU(19),o.qZA(),o.YNc(20,Xn,2,1,"mat-error",12),o.qZA(),o.TgZ(21,"mat-form-field",17),o.TgZ(22,"mat-select",18),o.NdJ("selectionChange",function(t){return e.onAmountUnitChange(t)}),o.YNc(23,Wn,2,2,"mat-option",19),o.qZA(),o.qZA(),o.TgZ(24,"div",20),o.TgZ(25,"mat-form-field",21),o.TgZ(26,"input",22,23),o.NdJ("ngModelChange",function(t){return e.transaction.blocks=t}),o.qZA(),o.YNc(28,Kn,2,0,"mat-error",12),o.qZA(),o.qZA(),o._UZ(29,"div",24),o.YNc(30,ta,3,2,"div",25),o.TgZ(31,"div",26),o.TgZ(32,"button",27),o._uU(33,"Clear Fields"),o.qZA(),o.TgZ(34,"button",28),o._uU(35,"Send Funds"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(6),o.Q6J("mat-dialog-close",!1),o.xp6(6),o.Q6J("ngModel",e.transaction.address),o.xp6(2),o.Q6J("ngIf",!e.transaction.address),o.xp6(2),o.Q6J("ngModel",e.transaction.amount)("step",100)("min",0),o.xp6(3),o.hij(" ",e.selAmountUnit," "),o.xp6(1),o.Q6J("ngIf",!e.transaction.amount),o.xp6(2),o.Q6J("value",e.selAmountUnit),o.xp6(1),o.Q6J("ngForOf",e.amountUnits),o.xp6(3),o.Q6J("ngModel",e.transaction.blocks)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",!e.transaction.blocks),o.xp6(2),o.Q6J("ngIf",""!==e.sendFundError))},directives:[l.xw,l.yH,T.dk,l.Wh,v.lW,ht.ZT,T.dn,ft._Y,ft.JL,ft.F,O.KE,xt.Nt,ft.Fj,Zt.h,ft.Q7,ft.JJ,ft.On,a.O5,ft.wV,ft.qQ,yt.q,O.R9,At.gD,a.sg,O.TO,Ct.ey,A.BN],styles:[""]}),t})();var na=n(882);function aa(t,e){1&t&&o._UZ(0,"mat-progress-bar",31)}function ia(t,e){1&t&&(o.TgZ(0,"th",32),o._uU(1," Date/Time "),o.qZA())}function sa(t,e){if(1&t&&(o.TgZ(0,"td",33),o._uU(1),o.ALo(2,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(o.xi3(2,1,1e3*t.timestamp,"dd/MMM/YYYY HH:mm"))}}function oa(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," Amount (Sats) "),o.qZA())}function la(t,e){if(1&t&&(o.TgZ(0,"span",37),o._uU(1),o.ALo(2,"number"),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,t.amount))}}function ra(t,e){if(1&t&&(o.TgZ(0,"span",38),o._uU(1),o.ALo(2,"number"),o.qZA()),2&t){const t=o.oxw().$implicit;o.xp6(1),o.hij("(",o.lcZ(2,1,-1*t.amount),")")}}function ca(t,e){if(1&t&&(o.TgZ(0,"td",33),o.YNc(1,la,3,3,"span",35),o.YNc(2,ra,3,3,"span",36),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Q6J("ngIf",t.amount>0||0===t.amount),o.xp6(1),o.Q6J("ngIf",t.amount<0)}}function ua(t,e){1&t&&(o.TgZ(0,"th",34),o._uU(1," Fees (Sats) "),o.qZA())}function da(t,e){if(1&t&&(o.TgZ(0,"td",33),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.fees))}}function ma(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1," Confirmations "),o.qZA())}function pa(t,e){if(1&t&&(o.TgZ(0,"td",40),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==t?null:t.confirmations)," ")}}function ha(t,e){1&t&&(o.TgZ(0,"th",32),o._uU(1," Address "),o.qZA())}function ga(t,e){if(1&t&&(o.TgZ(0,"td",33),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(t.address)}}function fa(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",41),o.TgZ(1,"div",42),o.TgZ(2,"mat-select",43),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",44),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function xa(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",45),o.TgZ(1,"button",46),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onTransactionClick(n,e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function Za(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No transaction available."),o.qZA())}function ya(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting transactions..."),o.qZA())}function Aa(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.errorMessage)}}function Ca(t,e){if(1&t&&(o.TgZ(0,"td",47),o.YNc(1,Za,2,0,"p",48),o.YNc(2,ya,2,0,"p",48),o.YNc(3,Aa,2,1,"p",48),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=t.listTransactions&&t.listTransactions.data)||(null==t.listTransactions||null==t.listTransactions.data?null:t.listTransactions.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchTransactions.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.listTransactions&&t.listTransactions.data)||(null==t.listTransactions||null==t.listTransactions.data?null:t.listTransactions.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchTransactions.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.listTransactions&&t.listTransactions.data)||(null==t.listTransactions||null==t.listTransactions.data?null:t.listTransactions.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchTransactions.status)===t.apiCallStatusEnum.ERROR)}}const Ta=function(t){return{"display-none":t}};function wa(t,e){if(1&t&&o._UZ(0,"tr",49),2&t){const t=o.oxw();o.Q6J("ngClass",o.VKq(1,Ta,(null==t.listTransactions?null:t.listTransactions.data)&&(null==t.listTransactions||null==t.listTransactions.data?null:t.listTransactions.data.length)>0))}}function Sa(t,e){1&t&&o._UZ(0,"tr",50)}function va(t,e){1&t&&o._UZ(0,"tr",51)}const qa=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},ba=function(){return["no_transaction"]};let La=(()=>{class t{constructor(t,e,n,a){this.logger=t,this.commonService=e,this.store=n,this.datePipe=a,this.faHistory=h.qO$,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=g.IV,this.pageSizeOptions=g.TJ,this.screenSize="",this.screenSizeEnum=g.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unsub=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","actions"]):this.screenSize===g.cu.SM?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","confirmations","fees","actions"]):this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","fees","confirmations","address","actions"]):(this.flgSticky=!0,this.displayedColumns=["timestamp","amount","fees","confirmations","address","actions"])}ngOnInit(){this.store.dispatch(new gt.eL),this.store.select("ecl").pipe((0,m.R)(this.unsub[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchTransactions.status===g.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPayments.message?JSON.stringify(this.apisCallStatus.FetchPayments.message):this.apisCallStatus.FetchPayments.message),t.transactions&&this.loadTransactionsTable(t.transactions),this.logger.info(t)})}applyFilter(t){this.listTransactions.filter=t.value.trim().toLowerCase()}onTransactionClick(t,e){this.store.dispatch(new Ft.wu({data:{type:g.n_.INFORMATION,alertTitle:"Transaction Information",message:[[{key:"blockHash",value:t.blockHash,title:"Block Hash",width:100}],[{key:"txid",value:t.txid,title:"Transaction ID",width:100}],[{key:"timestamp",value:t.timestamp,title:"Date/Time",width:50,type:g.Gi.DATE_TIME},{key:"confirmations",value:t.confirmations,title:"Number of Confirmations",width:50,type:g.Gi.NUMBER}],[{key:"fees",value:t.fees,title:"Fees (Sats)",width:50,type:g.Gi.NUMBER},{key:"amount",value:t.amount,title:"Amount (Sats)",width:50,type:g.Gi.NUMBER}],[{key:"address",value:t.address,title:"Address",width:100,type:g.Gi.STRING}]]}}))}loadTransactionsTable(t){this.listTransactions=new pt.by([...t]),this.listTransactions.sort=this.sort,this.listTransactions.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.listTransactions.filterPredicate=(t,e)=>((t.timestamp?this.datePipe.transform(new Date(1e3*t.timestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(t).toLowerCase()).includes(e),this.listTransactions.paginator=this.paginator,this.logger.info(this.listTransactions)}onDownloadCSV(){this.listTransactions.data&&this.listTransactions.data.length>0&&this.commonService.downloadFile(this.listTransactions.data,"Transactions")}ngOnDestroy(){this.unsub.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(y.v),o.Y36(x.yh),o.Y36(a.uU))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-on-chain-transaction-history"]],viewQuery:function(t,e){if(1&t&&(o.Gf(mt.YE,5),o.Gf(dt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},features:[o._Bn([{provide:dt.ye,useValue:(0,g.pt)("Transactions")}])],decls:37,vars:14,consts:[["fxLayout","row wrap","fxLayoutAlign","start start","fxLayout.gt-sm","column","fxFlex","100","fxLayoutAlign.gt-sm","start stretch"],["fxLayout","column","fxLayout.gt-xs","row wrap","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","timestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","fees"],["matColumnDef","confirmations"],["mat-header-cell","","mat-sort-header","","arrowPosition","before","class","pr-2",4,"matHeaderCellDef"],["mat-cell","","class","pr-2",4,"matCellDef"],["matColumnDef","address"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_transaction"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center",4,"ngIf"],["fxLayoutAlign","end center","class","red",4,"ngIf"],["fxLayoutAlign","end center"],["fxLayoutAlign","end center",1,"red"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",1,"pr-2"],["mat-cell","",1,"pr-2"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"div",2),o._UZ(3,"fa-icon",3),o.TgZ(4,"span",4),o._uU(5,"Transaction History"),o.qZA(),o.qZA(),o.TgZ(6,"mat-form-field",5),o.TgZ(7,"input",6),o.NdJ("keyup",function(t){return e.applyFilter(t.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",7),o.TgZ(9,"div",8),o.YNc(10,aa,1,0,"mat-progress-bar",9),o.TgZ(11,"table",10,11),o.ynx(13,12),o.YNc(14,ia,2,0,"th",13),o.YNc(15,sa,3,4,"td",14),o.BQk(),o.ynx(16,15),o.YNc(17,oa,2,0,"th",16),o.YNc(18,ca,3,2,"td",14),o.BQk(),o.ynx(19,17),o.YNc(20,ua,2,0,"th",16),o.YNc(21,da,4,3,"td",14),o.BQk(),o.ynx(22,18),o.YNc(23,ma,2,0,"th",19),o.YNc(24,pa,4,3,"td",20),o.BQk(),o.ynx(25,21),o.YNc(26,ha,2,0,"th",13),o.YNc(27,ga,2,1,"td",14),o.BQk(),o.ynx(28,22),o.YNc(29,fa,6,0,"th",23),o.YNc(30,xa,3,0,"td",24),o.BQk(),o.ynx(31,25),o.YNc(32,Ca,4,3,"td",26),o.BQk(),o.YNc(33,wa,1,3,"tr",27),o.YNc(34,Sa,1,0,"tr",28),o.YNc(35,va,1,0,"tr",29),o.qZA(),o._UZ(36,"mat-paginator",30),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Q6J("icon",e.faHistory),o.xp6(7),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchTransactions.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.listTransactions)("ngClass",o.VKq(11,qa,""!==e.errorMessage)),o.xp6(22),o.Q6J("matFooterRowDef",o.DdM(13,ba)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,A.BN,O.KE,xt.Nt,M.$V,a.O5,pt.BZ,mt.YE,a.mk,S.oO,pt.w1,pt.fO,pt.Dz,pt.mD,pt.Ke,pt.as,pt.nj,dt.NW,r.pW,pt.ge,mt.nU,pt.ev,At.gD,At.$L,Ct.ey,v.lW,pt.yh,pt.Q2,pt.XQ,pt.Gk],pipes:[a.uU,a.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();function Fa(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",12),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().activeLink=e.link}),o._uU(1),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.s9C("routerLink",t.link),o.Q6J("active",n.activeLink===t.link),o.xp6(1),o.Oqu(t.name)}}let Ia=(()=>{class t{constructor(t,e){this.store=t,this.router=e,this.selNode={},this.faExchangeAlt=h.Ssp,this.faChartPie=h.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"receive",name:"Receive"},{link:"send",name:"Send"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,m.R)(this.unSubs[0]),(0,ut.h)(t=>t instanceof i.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link}),this.store.select("ecl").pipe((0,m.R)(this.unSubs[1])).subscribe(t=>{this.selNode=t.nodeSettings,this.balances=[{title:"Total Balance",dataValue:t.onchainBalance.total||0},{title:"Confirmed",dataValue:t.onchainBalance.confirmed},{title:"Unconfirmed",dataValue:t.onchainBalance.unconfirmed}]})}openSendFundsModal(){this.store.dispatch(new Ft.wu({data:{component:ea}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(x.yh),o.Y36(i.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-on-chain"]],decls:21,vars:4,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large","mt-2"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["fxLayout","row","fxFlex","100"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"On-chain Balance"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o._UZ(7,"rtl-currency-unit-converter",5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",0),o._UZ(9,"fa-icon",1),o.TgZ(10,"span",2),o._uU(11,"On-chain Transactions"),o.qZA(),o.qZA(),o.TgZ(12,"div",6),o.TgZ(13,"mat-card"),o.TgZ(14,"mat-card-content",4),o.TgZ(15,"nav",7),o.YNc(16,Fa,2,3,"div",8),o.qZA(),o.TgZ(17,"div",9),o._UZ(18,"router-outlet"),o.qZA(),o.TgZ(19,"div",10),o._UZ(20,"rtl-ecl-on-chain-transaction-history",11),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("icon",e.faChartPie),o.xp6(6),o.Q6J("values",e.balances),o.xp6(2),o.Q6J("icon",e.faExchangeAlt),o.xp6(7),o.Q6J("ngForOf",e.links))},directives:[l.xw,l.Wh,A.BN,T.a8,T.dn,na.D,ct.BU,a.sg,l.yH,i.lC,La,ct.Nj,i.rH],styles:[""]}),t})();var Na=n(1050);function _a(t,e){if(1&t&&(o.TgZ(0,"span",10),o._uU(1,"Channels"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.activeChannels)}}function Da(t,e){if(1&t&&(o.TgZ(0,"span",10),o._uU(1,"Peers"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.activePeers)}}let ka=(()=>{class t{constructor(t,e){this.store=t,this.router=e,this.activePeers=0,this.activeChannels=0,this.faUsers=h.FVb,this.faChartPie=h.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"channels",name:"Channels"},{link:"peers",name:"Peers"}],this.activeLink=0,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.activeLink=this.links.findIndex(t=>t.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,m.R)(this.unSubs[0]),(0,ut.h)(t=>t instanceof i.Av)).subscribe(t=>{this.activeLink=this.links.findIndex(e=>e.link===t.urlAfterRedirects.substring(t.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select("ecl").pipe((0,m.R)(this.unSubs[1])).subscribe(t=>{this.activePeers=t.peers&&t.peers.length?t.peers.length:0,this.activeChannels=t.channelsStatus&&t.channelsStatus.active&&t.channelsStatus.active.channels?t.channelsStatus.active.channels:0,this.balances=[{title:"Total Balance",dataValue:t.onchainBalance.total||0},{title:"Confirmed",dataValue:t.onchainBalance.confirmed},{title:"Unconfirmed",dataValue:t.onchainBalance.unconfirmed}]})}onSelectedTabChange(t){this.router.navigateByUrl("/ecl/connections/"+this.links[t.index].link)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(x.yh),o.Y36(i.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-connections"]],decls:22,vars:4,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"On-chain Balance"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o._UZ(7,"rtl-currency-unit-converter",5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",0),o._UZ(9,"fa-icon",1),o.TgZ(10,"span",2),o._uU(11,"Connections"),o.qZA(),o.qZA(),o.TgZ(12,"div",6),o.TgZ(13,"mat-card"),o.TgZ(14,"mat-card-content",4),o.TgZ(15,"mat-tab-group",7),o.NdJ("selectedIndexChange",function(t){return e.activeLink=t})("selectedTabChange",function(t){return e.onSelectedTabChange(t)}),o.TgZ(16,"mat-tab"),o.YNc(17,_a,2,1,"ng-template",8),o.qZA(),o.TgZ(18,"mat-tab"),o.YNc(19,Da,2,1,"ng-template",8),o.qZA(),o.qZA(),o.TgZ(20,"div",9),o._UZ(21,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("icon",e.faChartPie),o.xp6(6),o.Q6J("values",e.balances),o.xp6(2),o.Q6J("icon",e.faUsers),o.xp6(6),o.Q6J("selectedIndex",e.activeLink))},directives:[l.xw,l.Wh,A.BN,T.a8,T.dn,na.D,ct.SP,ct.uX,ct.uD,l.yH,i.lC,Na.k],styles:[""]}),t})();function Oa(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",11),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().activeLink=e.link}),o._uU(1),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.s9C("routerLink",t.link),o.Q6J("active",n.activeLink===t.link),o.xp6(1),o.Oqu(t.name)}}let Ua=(()=>{class t{constructor(t,e,n){this.logger=t,this.store=e,this.router=n,this.faExchangeAlt=h.Ssp,this.faChartPie=h.OS1,this.currencyUnits=[],this.balances=[{title:"Local Capacity",dataValue:0,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:0,tooltip:"Amount you can receive"}],this.links=[{link:"payments",name:"Payments"},{link:"invoices",name:"Invoices"},{link:"queryroutes",name:"Query Routes"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,m.R)(this.unSubs[0]),(0,ut.h)(t=>t instanceof i.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link}),this.store.select("ecl").pipe((0,m.R)(this.unSubs[1])).subscribe(t=>{this.currencyUnits=t.nodeSettings.currencyUnits,this.balances=t.nodeSettings.userPersona===g.ol.OPERATOR?[{title:"Local Capacity",dataValue:t.lightningBalance.localBalance,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:t.lightningBalance.remoteBalance,tooltip:"Amount you can receive"}]:[{title:"Outbound Capacity",dataValue:t.lightningBalance.localBalance,tooltip:"Amount you can send"},{title:"Inbound Capacity",dataValue:t.lightningBalance.remoteBalance,tooltip:"Amount you can receive"}],this.logger.info(t)})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(x.yh),o.Y36(i.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-transactions"]],decls:19,vars:4,consts:[["fxLayout","row wrap","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Lightning Balance"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o._UZ(7,"rtl-currency-unit-converter",5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",6),o._UZ(9,"fa-icon",1),o.TgZ(10,"span",2),o._uU(11,"Lightning Transactions"),o.qZA(),o.qZA(),o.TgZ(12,"div",7),o.TgZ(13,"mat-card"),o.TgZ(14,"mat-card-content",4),o.TgZ(15,"nav",8),o.YNc(16,Oa,2,3,"div",9),o.qZA(),o.TgZ(17,"div",10),o._UZ(18,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("icon",e.faChartPie),o.xp6(6),o.Q6J("values",e.balances),o.xp6(2),o.Q6J("icon",e.faExchangeAlt),o.xp6(7),o.Q6J("ngForOf",e.links))},directives:[l.xw,l.Wh,A.BN,T.a8,T.dn,na.D,ct.BU,a.sg,l.yH,i.lC,ct.Nj,i.rH],styles:[""]}),t})();function Ra(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",11),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().activeLink=e.link}),o._uU(1),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.s9C("routerLink",t.link),o.Q6J("active",n.activeLink===t.link),o.xp6(1),o.Oqu(t.name)}}let Ma=(()=>{class t{constructor(t){this.router=t,this.faMapSigns=h.SuH,this.events=[],this.flgLoading=[!0],this.errorMessage="",this.links=[{link:"forwardinghistory",name:"Forwarding History"},{link:"peers",name:"Routing Peers"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,m.R)(this.unSubs[0]),(0,ut.h)(t=>t instanceof i.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(i.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-routing"]],decls:13,vars:2,consts:[["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap-x"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","row","fxFlex","100"],["mat-tab-nav-bar","","fxFlex","100"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"fa-icon",2),o.TgZ(3,"span",3),o._uU(4,"Routing"),o.qZA(),o.qZA(),o.TgZ(5,"div",4),o.TgZ(6,"mat-card",5),o.TgZ(7,"mat-card-content",6),o.TgZ(8,"div",7),o.TgZ(9,"nav",8),o.YNc(10,Ra,2,3,"div",9),o.qZA(),o.qZA(),o.TgZ(11,"div",10),o._UZ(12,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(2),o.Q6J("icon",e.faMapSigns),o.xp6(8),o.Q6J("ngForOf",e.links))},directives:[l.xw,l.Wh,A.BN,l.yH,T.a8,T.dn,ct.BU,a.sg,i.lC,ct.Nj,i.rH],styles:[""]}),t})();var Ja=n(4810),Pa=n(1403),Ea=n(2609);function Ya(t,e){1&t&&(o.TgZ(0,"th",24),o._uU(1,"Address"),o.qZA())}function Qa(t,e){if(1&t&&(o.TgZ(0,"td",25),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",t," ")}}function Ba(t,e){1&t&&(o.TgZ(0,"th",26),o.TgZ(1,"span",27),o._uU(2,"Actions"),o.qZA(),o.qZA())}function Ha(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",28),o.TgZ(1,"span",27),o.TgZ(2,"button",29),o.NdJ("copied",function(e){return o.CHM(t),o.oxw(2).onCopyNodeURI(e)}),o._uU(3,"Copy Node URI"),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw(2);o.xp6(2),o.Q6J("payload",(null==n.lookupResult?null:n.lookupResult.nodeId)+"@"+t)}}function za(t,e){1&t&&o._UZ(0,"tr",30)}function Va(t,e){1&t&&o._UZ(0,"tr",31)}const Ga=function(t){return{"background-color":t}};function $a(t,e){if(1&t&&(o.TgZ(0,"div",1),o._UZ(1,"mat-divider",2),o.TgZ(2,"div",3),o.TgZ(3,"div",4),o.TgZ(4,"h4",5),o._uU(5,"Pub Key"),o.qZA(),o.TgZ(6,"span",6),o._uU(7),o.qZA(),o.qZA(),o.qZA(),o._UZ(8,"mat-divider",7),o.TgZ(9,"div",3),o.TgZ(10,"div",4),o.TgZ(11,"h4",5),o._uU(12,"Signature"),o.qZA(),o.TgZ(13,"span",8),o._uU(14),o.qZA(),o.qZA(),o.qZA(),o._UZ(15,"mat-divider",7),o.TgZ(16,"div",3),o.TgZ(17,"div",9),o.TgZ(18,"h4",5),o._uU(19,"Alias"),o.qZA(),o.TgZ(20,"span",8),o._uU(21),o.TgZ(22,"span",10),o._uU(23),o.qZA(),o.qZA(),o.qZA(),o.TgZ(24,"div",9),o.TgZ(25,"h4",5),o._uU(26,"Date/Time"),o.qZA(),o.TgZ(27,"span",8),o._uU(28),o.ALo(29,"date"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(30,"div",11),o.TgZ(31,"h4",12),o._uU(32,"Addresses"),o.qZA(),o.TgZ(33,"div",13),o.TgZ(34,"table",14,15),o.ynx(36,16),o.YNc(37,Ya,2,0,"th",17),o.YNc(38,Qa,2,1,"td",18),o.BQk(),o.ynx(39,19),o.YNc(40,Ba,3,0,"th",20),o.YNc(41,Ha,4,1,"td",21),o.BQk(),o.YNc(42,za,1,0,"tr",22),o.YNc(43,Va,1,0,"tr",23),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(null==t.lookupResult?null:t.lookupResult.nodeId),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(null==t.lookupResult?null:t.lookupResult.signature),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(null==t.lookupResult?null:t.lookupResult.alias),o.xp6(1),o.Q6J("ngStyle",o.VKq(15,Ga,null==t.lookupResult?null:t.lookupResult.rgbColor)),o.xp6(1),o.Oqu(null!=t.lookupResult&&t.lookupResult.rgbColor?null==t.lookupResult?null:t.lookupResult.rgbColor:""),o.xp6(5),o.Oqu(o.xi3(29,12,1e3*(null==t.lookupResult?null:t.lookupResult.timestamp),"dd/MMM/YYYY HH:mm")),o.xp6(6),o.Q6J("dataSource",t.addresses),o.xp6(8),o.Q6J("matHeaderRowDef",t.displayedColumns),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns)}}let Xa=(()=>{class t{constructor(t,e){this.logger=t,this.snackBar=e,this.lookupResult={},this.displayedColumns=["address","actions"]}ngOnInit(){this.addresses=new pt.by(this.lookupResult.addresses?[...this.lookupResult.addresses]:[]),this.addresses.data=this.lookupResult.addresses?this.lookupResult.addresses:[],this.addresses.sort=this.sort,this.addresses.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null}onCopyNodeURI(t){this.snackBar.open("Node URI copied."),this.logger.info("Copied Text: "+t)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(Pa.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-node-lookup"]],viewQuery:function(t,e){if(1&t&&o.Gf(mt.YE,5),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first)}},inputs:{lookupResult:"lookupResult"},decls:1,vars:1,consts:[["fxLayout","column","class","mt-1",4,"ngIf"],["fxLayout","column",1,"mt-1"],[1,"mb-1",3,"inset"],["fxLayout","row"],["fxFlex","100"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text","w-100"],[1,"my-1",3,"inset"],[1,"foreground-secondary-text"],["fxFlex","50"],[1,"ml-2",3,"ngStyle"],["fxLayout","column",1,"mt-2"],["fxFlex","100","fxLayoutAlign","start",1,"font-bold-500","mb-1"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","address"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","",1,"pl-1"],["fxLayoutAlign","end center"],["mat-cell","",1,"pl-1"],["mat-stroked-button","","color","primary","type","button","tabindex","1","rtlClipboard","",3,"payload","copied"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&o.YNc(0,$a,44,17,"div",0),2&t&&o.Q6J("ngIf",e.lookupResult)},directives:[a.O5,l.xw,R.d,l.yH,l.Wh,a.PC,S.Zl,M.$V,pt.BZ,mt.YE,pt.w1,pt.fO,pt.Dz,pt.as,pt.nj,pt.ge,mt.nU,pt.ev,v.lW,Ea.y,pt.XQ,pt.Gk],pipes:[a.uU],styles:[""]}),t})();const Wa=["form"];function Ka(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.hij("",null==t.lookupFields[t.selectedFieldId]?null:t.lookupFields[t.selectedFieldId].placeholder," is required.")}}function ja(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.hij("Invalid ",null==t.lookupFields[t.selectedFieldId]?null:t.lookupFields[t.selectedFieldId].placeholder,".")}}function ti(t,e){if(1&t&&(o.TgZ(0,"div"),o._UZ(1,"rtl-ecl-node-lookup",29),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Q6J("lookupResult",t.nodeLookupValue)}}function ei(t,e){if(1&t&&(o.TgZ(0,"span",27),o.YNc(1,ti,2,1,"div",28),o.qZA()),2&t){const t=o.oxw(2),e=o.MAs(26);o.xp6(1),o.Q6J("ngIf",t.nodeLookupValue.nodeId)("ngIfElse",e)}}function ni(t,e){1&t&&(o.TgZ(0,"span",27),o.TgZ(1,"h3"),o._uU(2,"Error! Unable to find details!"),o.qZA(),o.qZA())}function ai(t,e){if(1&t&&(o.TgZ(0,"div",21),o.TgZ(1,"div",22),o.TgZ(2,"span",23),o._uU(3),o.qZA(),o.qZA(),o.TgZ(4,"div",24),o.YNc(5,ei,2,2,"span",25),o.YNc(6,ni,3,0,"span",26),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(3),o.hij("",t.lookupFields[t.selectedFieldId].name," Details"),o.xp6(1),o.Q6J("ngSwitch",t.selectedFieldId),o.xp6(1),o.Q6J("ngSwitchCase",0)}}function ii(t,e){1&t&&(o.TgZ(0,"h3"),o._uU(1,"Error! Unable to find details!"),o.qZA())}const si=function(t){return{"mt-2":t}};let oi=(()=>{class t{constructor(t,e,n,a){this.logger=t,this.commonService=e,this.store=n,this.actions=a,this.lookupKeyCtrl=new ft.NI,this.nodeLookupValue={},this.channelLookupValue=[],this.flgSetLookupValue=!1,this.messageObj=[],this.selectedFieldId=0,this.lookupFields=[{id:0,name:"Node",placeholder:"Node ID"},{id:1,name:"Channel",placeholder:"Short Channel ID"}],this.flgLoading=[!0],this.faSearch=h.wn1,this.screenSize="",this.screenSizeEnum=g.cu,this.unSubs=[new d.x,new d.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.actions.pipe((0,m.R)(this.unSubs[0]),(0,ut.h)(t=>t.type===gt.ht||t.type===gt.f)).subscribe(t=>{if(t.type===gt.ht){switch(this.flgLoading[0]=!0,this.selectedFieldId){case 0:this.nodeLookupValue=t.payload[0]?JSON.parse(JSON.stringify(t.payload[0])):{nodeid:""};break;case 1:this.channelLookupValue=t.payload?JSON.parse(JSON.stringify(t.payload)):[]}this.flgSetLookupValue=!0,this.logger.info(this.nodeLookupValue),this.logger.info(this.channelLookupValue)}t.type===gt.f&&t.payload.status===g.Bn.ERROR&&"Lookup"===t.payload.action&&(this.flgLoading[0]="error")}),this.lookupKeyCtrl.valueChanges.pipe((0,m.R)(this.unSubs[1])).subscribe(t=>{this.nodeLookupValue={},this.channelLookupValue=[],this.flgSetLookupValue=!1})}onLookup(){if(!this.lookupKeyCtrl.value)return this.lookupKeyCtrl.setErrors({required:!0}),!0;if(this.lookupKeyCtrl.value&&(this.lookupKeyCtrl.value.includes("@")||this.lookupKeyCtrl.value.includes(",")))return this.lookupKeyCtrl.setErrors({invalid:!0}),!0;switch(this.selectedFieldId||(this.selectedFieldId=0),this.flgSetLookupValue=!1,this.nodeLookupValue={},this.channelLookupValue=[],this.selectedFieldId){case 0:this.store.dispatch(new gt.x$(this.lookupKeyCtrl.value.trim()))}}onSelectChange(t){this.resetData(),this.selectedFieldId=t.value}resetData(){this.flgSetLookupValue=!1,this.nodeLookupValue={},this.channelLookupValue=[],this.lookupKeyCtrl.setValue(""),this.lookupKeyCtrl.setErrors(null),this.form.resetForm()}clearLookupValue(){this.nodeLookupValue={},this.channelLookupValue=[],this.flgSetLookupValue=!1}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(y.v),o.Y36(x.yh),o.Y36(Z.eX))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-lookups"]],viewQuery:function(t,e){if(1&t&&o.Gf(Wa,7),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first)}},decls:27,vars:10,consts:[["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"card-content-gap","mt-1"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start space-between",1,"w-100"],["form","ngForm"],["fxFlex","20","fxFlex.gt-md","15","fxLayoutAlign","start end"],["color","primary","tabindex","1","name","lookupField"],["checked","",1,"mr-4",3,"value"],["fxFlex","80","fxFlex.gt-md","85","fxLayoutAlign","start end",3,"ngClass"],["matInput","","name","lookupKey","tabindex","2","required","",3,"formControl","placeholder"],["key",""],[4,"ngIf"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch","class","w-100 mt-2",4,"ngIf"],["errorBlock",""],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"w-100","mt-2"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],[1,"page-title","font-bold-500"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",3,"ngSwitch"],["fxFlex","100",4,"ngSwitchCase"],["fxFlex","100",4,"ngSwitchDefault"],["fxFlex","100"],[4,"ngIf","ngIfElse"],[3,"lookupResult"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"fa-icon",2),o.TgZ(3,"span",3),o._uU(4,"Graph Lookups"),o.qZA(),o.qZA(),o.TgZ(5,"div",4),o.TgZ(6,"mat-card",5),o.TgZ(7,"mat-card-content",6),o.TgZ(8,"form",7,8),o.TgZ(10,"div",9),o.TgZ(11,"mat-radio-group",10),o.TgZ(12,"mat-radio-button",11),o._uU(13,"Node"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(14,"mat-form-field",12),o._UZ(15,"input",13,14),o.YNc(17,Ka,2,1,"mat-error",15),o.YNc(18,ja,2,1,"mat-error",15),o.qZA(),o.TgZ(19,"div",16),o.TgZ(20,"button",17),o.NdJ("click",function(){return e.resetData()}),o._uU(21,"Clear"),o.qZA(),o.TgZ(22,"button",18),o.NdJ("click",function(){return e.onLookup()}),o._uU(23,"Lookup"),o.qZA(),o.qZA(),o.qZA(),o.YNc(24,ai,7,3,"div",19),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(25,ii,2,0,"ng-template",null,20,o.W1O)),2&t&&(o.xp6(2),o.Q6J("icon",e.faSearch),o.xp6(10),o.Q6J("value",0),o.xp6(2),o.Q6J("ngClass",o.VKq(8,si,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("formControl",e.lookupKeyCtrl)("placeholder",(null==e.lookupFields[e.selectedFieldId]?null:e.lookupFields[e.selectedFieldId].placeholder)||"Lookup Key"),o.xp6(2),o.Q6J("ngIf",null==e.lookupKeyCtrl.errors?null:e.lookupKeyCtrl.errors.required),o.xp6(1),o.Q6J("ngIf",null==e.lookupKeyCtrl.errors?null:e.lookupKeyCtrl.errors.invalid),o.xp6(6),o.Q6J("ngIf",e.flgSetLookupValue))},directives:[l.xw,l.Wh,A.BN,l.yH,T.a8,T.dn,ft._Y,ft.JL,ft.F,Ja.VQ,Ja.U0,O.KE,a.mk,S.oO,xt.Nt,ft.Fj,ft.Q7,ft.JJ,ft.oH,a.O5,v.lW,O.TO,a.RF,a.n9,a.ED,Xa],styles:[".tree-invisible[_ngcontent-%COMP%]{display:none}.lookup-tree[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .lookup-tree[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0;list-style-type:none}.pl-3[_ngcontent-%COMP%]{padding-left:3rem}"]}),t})();var li=n(7969);let ri=(()=>{class t{constructor(t,e){this.store=t,this.eclEffects=e,this.newAddress=""}onGenerateAddress(){this.store.dispatch(new gt.ER),this.eclEffects.setNewAddress.pipe((0,ue.q)(1)).subscribe(t=>{this.newAddress=t,this.store.dispatch(new Ft.wu({width:"58%",data:{address:this.newAddress,addressType:"",component:li.n}}))})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(x.yh),o.Y36(de.o))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-on-chain-receive"]],decls:4,vars:0,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","tabindex","1",3,"click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"button",2),o.NdJ("click",function(){return e.onGenerateAddress()}),o._uU(3,"Generate Address"),o.qZA(),o.qZA(),o.qZA())},directives:[l.xw,l.yH,l.Wh,v.lW],styles:[""]}),t})(),ci=(()=>{class t{constructor(t,e){this.store=t,this.activatedRoute=e,this.sweepAll=!1,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.activatedRoute.data.pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.sweepAll=t.sweepAll})}openSendFundsModal(){this.store.dispatch(new Ft.wu({data:{sweepAll:this.sweepAll,component:ea}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(x.yh),o.Y36(i.gz))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-on-chain-send"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"button",2),o.NdJ("click",function(){return e.openSendFundsModal()}),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Oqu(e.sweepAll?"Sweep All":"Send Funds"))},directives:[l.xw,l.yH,l.Wh,v.lW],styles:[""]}),t})();var ui=n(1258),di=n(1681),mi=n(3474),pi=n(7521),hi=n(84);const gi=["form"];function fi(t,e){if(1&t&&(o.TgZ(0,"mat-option",34),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.Q6J("value",t),o.xp6(1),o.Oqu(t.alias?t.alias:t.nodeId?t.nodeId:"")}}function xi(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Peer alias is required."),o.qZA())}function Zi(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Peer not found in the list."),o.qZA())}function yi(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-form-field",1),o.TgZ(1,"input",30),o.NdJ("change",function(){return o.CHM(t),o.oxw().onSelectedPeerChanged()}),o.qZA(),o.TgZ(2,"mat-autocomplete",31,32),o.NdJ("optionSelected",function(){return o.CHM(t),o.oxw().onSelectedPeerChanged()}),o.YNc(4,fi,2,2,"mat-option",33),o.ALo(5,"async"),o.qZA(),o.YNc(6,xi,2,0,"mat-error",17),o.YNc(7,Zi,2,0,"mat-error",17),o.qZA()}if(2&t){const t=o.MAs(3),e=o.oxw();o.xp6(1),o.Q6J("formControl",e.selectedPeer)("matAutocomplete",t),o.xp6(1),o.Q6J("displayWith",e.displayFn),o.xp6(2),o.Q6J("ngForOf",o.lcZ(5,6,e.filteredPeers)),o.xp6(2),o.Q6J("ngIf",null==e.selectedPeer.errors?null:e.selectedPeer.errors.required),o.xp6(1),o.Q6J("ngIf",null==e.selectedPeer.errors?null:e.selectedPeer.errors.notfound)}}function Ai(t,e){1&t&&o.GkF(0)}function Ci(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function Ti(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.hij("Amount must be less than or equal to ",t.totalBalance,".")}}function wi(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.channelConnectionError)}}function Si(t,e){if(1&t&&(o.TgZ(0,"div",35),o._UZ(1,"fa-icon",36),o.YNc(2,wi,2,1,"span",17),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==t.channelConnectionError)}}function vi(t,e){if(1&t&&(o.TgZ(0,"mat-expansion-panel",38),o.TgZ(1,"mat-expansion-panel-header"),o.TgZ(2,"mat-panel-title"),o.TgZ(3,"span"),o._uU(4,"Peer: \xa0"),o.qZA(),o.TgZ(5,"strong",39),o._uU(6),o.qZA(),o.qZA(),o.qZA(),o.TgZ(7,"div",9),o.TgZ(8,"div",0),o.TgZ(9,"div",1),o.TgZ(10,"h4",40),o._uU(11,"Pubkey"),o.qZA(),o.TgZ(12,"span",41),o._uU(13),o.qZA(),o.qZA(),o.qZA(),o._UZ(14,"mat-divider",42),o.TgZ(15,"div",0),o.TgZ(16,"div",43),o.TgZ(17,"h4",40),o._uU(18,"Address"),o.qZA(),o.TgZ(19,"span",44),o._uU(20),o.qZA(),o.qZA(),o.TgZ(21,"div",43),o.TgZ(22,"h4",40),o._uU(23,"State"),o.qZA(),o.TgZ(24,"span",44),o._uU(25),o.ALo(26,"titlecase"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw(2);o.xp6(6),o.Oqu((null==t.peer?null:t.peer.alias)||(null==t.peer?null:t.peer.nodeId)),o.xp6(7),o.Oqu(t.peer.nodeId),o.xp6(7),o.Oqu(null==t.peer?null:t.peer.address),o.xp6(5),o.Oqu(o.lcZ(26,4,null==t.peer?null:t.peer.state))}}function qi(t,e){if(1&t&&o.YNc(0,vi,27,6,"mat-expansion-panel",37),2&t){const t=o.oxw();o.Q6J("ngIf",t.peer)}}let bi=(()=>{class t{constructor(t,e,n,a){this.dialogRef=t,this.data=e,this.store=n,this.actions=a,this.selectedPeer=new ft.NI,this.faExclamationTriangle=h.eHv,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.totalBalance=0,this.selectedPubkey="",this.isPrivate=!1,this.feeRate=null,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.information=this.data.message.information,this.totalBalance=this.data.message.balance,this.alertTitle=this.data.alertTitle,this.peer=this.data.message.peer?this.data.message.peer:null,this.peers=this.data.message.peers&&this.data.message.peers.length?this.data.message.peers:[],this.actions.pipe((0,m.R)(this.unSubs[0]),(0,ut.h)(t=>t.type===gt.f||t.type===gt.M8)).subscribe(t=>{t.type===gt.f&&t.payload.status===g.Bn.ERROR&&"SaveNewChannel"===t.payload.action&&(this.channelConnectionError=t.payload.message),t.type===gt.M8&&this.dialogRef.close()});let t="",e="";this.sortedPeers=this.peers.sort((n,a)=>(t=n.alias?n.alias.toLowerCase():n.nodeId?n.nodeId.toLowerCase():"",e=a.alias?a.alias.toLowerCase():n.nodeId.toLowerCase(),te?1:0)),this.filteredPeers=this.selectedPeer.valueChanges.pipe((0,m.R)(this.unSubs[1]),(0,ui.O)(""),(0,di.U)(t=>"string"==typeof t?t:t.alias?t.alias:t.nodeId),(0,di.U)(t=>t?this.filterPeers(t):this.sortedPeers.slice()))}filterPeers(t){return this.sortedPeers.filter(e=>0===e.alias.toLowerCase().indexOf(t?t.toLowerCase():""))}displayFn(t){return t&&t.alias?t.alias:t&&t.nodeId?t.nodeId:""}onSelectedPeerChanged(){if(this.channelConnectionError="",this.selectedPubkey=this.selectedPeer.value&&this.selectedPeer.value.nodeId?this.selectedPeer.value.nodeId:null,"string"==typeof this.selectedPeer.value){const t=this.peers.filter(t=>t.alias.length===this.selectedPeer.value.length&&0===t.alias.toLowerCase().indexOf(this.selectedPeer.value?this.selectedPeer.value.toLowerCase():""));1===t.length&&t[0].nodeId&&(this.selectedPubkey=t[0].nodeId)}this.selectedPeer.setErrors(this.selectedPeer.value&&!this.selectedPubkey?{notfound:!0}:null)}onClose(){this.dialogRef.close(!1)}resetData(){this.feeRate=null,this.selectedPeer.setValue(""),this.fundingAmount=null,this.isPrivate=!1,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.form.resetForm()}onAdvancedPanelToggle(t){this.advancedTitle=t&&this.feeRate&&this.feeRate>0?"Advanced Options | Fee (Sats/vByte): "+this.feeRate:"Advanced Options"}onOpenChannel(){if(!this.peer&&!this.selectedPubkey||!this.fundingAmount||this.totalBalance-this.fundingAmount<0)return!0;this.store.dispatch(new gt.nb({nodeId:this.peer&&this.peer.nodeId?this.peer.nodeId:this.selectedPubkey,amount:this.fundingAmount,private:this.isPrivate,feeRate:this.feeRate}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(ht.so),o.Y36(ht.WI),o.Y36(x.yh),o.Y36(Z.eX))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-open-channel"]],viewQuery:function(t,e){if(1&t&&o.Gf(gi,7),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first)}},decls:48,vars:18,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column",3,"submit","reset"],["form","ngForm"],["fxLayout","column"],["fxFlex","100",4,"ngIf"],[4,"ngTemplateOutlet"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","70","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","1","required","","name","amount",3,"ngModel","step","min","max","ngModelChange"],["amount","ngModel"],["matSuffix",""],[4,"ngIf"],["fxFlex","25","fxLayoutAlign","start center"],["tabindex","2","color","primary","name","isPrivate",3,"ngModel","ngModelChange"],["expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["matInput","","placeholder","Fee (Sats/vByte)","type","number","name","fee","tabindex","7",3,"ngModel","step","min","ngModelChange"],["fee","ngModel"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["autoFocus","","mat-flat-button","","color","primary","type","submit","tabindex","9"],["peerDetailsExpansionBlock",""],["type","text","placeholder","Peer Alias","aria-label","Peers","matInput","","tabindex","1","required","",3,"formControl","matAutocomplete","change"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["class","flat-expansion-panel my-1","expanded","false",4,"ngIf"],["expanded","false",1,"flat-expansion-panel","my-1"],[1,"font-weight-900"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"],["fxFlex","50"],[1,"overflow-wrap","foreground-secondary-text"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return e.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.NdJ("submit",function(){return e.onOpenChannel()})("reset",function(){return e.resetData()}),o.TgZ(11,"div",9),o.YNc(12,yi,8,8,"mat-form-field",10),o.qZA(),o.YNc(13,Ai,1,0,"ng-container",11),o.TgZ(14,"div",9),o.TgZ(15,"div",12),o.TgZ(16,"mat-form-field",13),o.TgZ(17,"input",14,15),o.NdJ("ngModelChange",function(t){return e.fundingAmount=t}),o.qZA(),o.TgZ(19,"mat-hint"),o._uU(20),o.ALo(21,"number"),o.qZA(),o.TgZ(22,"span",16),o._uU(23," Sats "),o.qZA(),o.YNc(24,Ci,2,0,"mat-error",17),o.YNc(25,Ti,2,1,"mat-error",17),o.qZA(),o.TgZ(26,"div",18),o.TgZ(27,"mat-slide-toggle",19),o.NdJ("ngModelChange",function(t){return e.isPrivate=t}),o._uU(28,"Private Channel"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(29,"mat-expansion-panel",20),o.NdJ("closed",function(){return e.onAdvancedPanelToggle(!0)})("opened",function(){return e.onAdvancedPanelToggle(!1)}),o.TgZ(30,"mat-expansion-panel-header"),o.TgZ(31,"mat-panel-title"),o.TgZ(32,"span"),o._uU(33),o.qZA(),o.qZA(),o.qZA(),o.TgZ(34,"div",21),o.TgZ(35,"div",12),o.TgZ(36,"div",22),o.TgZ(37,"mat-form-field",1),o.TgZ(38,"input",23,24),o.NdJ("ngModelChange",function(t){return e.feeRate=t}),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(40,Si,3,2,"div",25),o.TgZ(41,"div",26),o.TgZ(42,"button",27),o._uU(43,"Clear Fields"),o.qZA(),o.TgZ(44,"button",28),o._uU(45,"Open Channel"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(46,qi,1,1,"ng-template",null,29,o.W1O)),2&t){const t=o.MAs(18),n=o.MAs(47);o.xp6(5),o.Oqu(e.alertTitle),o.xp6(7),o.Q6J("ngIf",!e.peer&&e.peers&&e.peers.length>0),o.xp6(1),o.Q6J("ngTemplateOutlet",n),o.xp6(4),o.Q6J("ngModel",e.fundingAmount)("step",1e3)("min",1)("max",e.totalBalance),o.xp6(3),o.hij("Remaining Bal: ",o.lcZ(21,16,e.totalBalance-(e.fundingAmount?e.fundingAmount:0)),""),o.xp6(4),o.Q6J("ngIf",null==t.errors?null:t.errors.required),o.xp6(1),o.Q6J("ngIf",null==t.errors?null:t.errors.max),o.xp6(2),o.Q6J("ngModel",e.isPrivate),o.xp6(6),o.Oqu(e.advancedTitle),o.xp6(5),o.Q6J("ngModel",e.feeRate)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",""!==e.channelConnectionError)}},directives:[l.xw,l.yH,T.dk,l.Wh,v.lW,T.dn,ft._Y,ft.JL,ft.F,a.O5,a.tP,O.KE,xt.Nt,ft.wV,ft.qQ,ft.Fd,ft.Fj,yt.q,mi.F,ft.Q7,ft.JJ,ft.On,O.bx,O.R9,pi.Rr,Te.ib,Te.yz,Te.yK,Zt.h,hi.ZL,ft.oH,hi.XC,a.sg,Ct.ey,O.TO,A.BN,R.d],pipes:[a.JJ,a.Ov,a.rS],styles:[".open-inputs-box[_ngcontent-%COMP%]{padding:1.2rem 2.4rem .8rem!important}"]}),t})();function Li(t,e){if(1&t&&(o.TgZ(0,"span",7),o._uU(1,"Open"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.numOfOpenChannels)}}function Fi(t,e){if(1&t&&(o.TgZ(0,"span",7),o._uU(1,"Pending"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.numOfPendingChannels)}}function Ii(t,e){if(1&t&&(o.TgZ(0,"span",7),o._uU(1,"Inactive"),o.qZA()),2&t){const t=o.oxw();o.s9C("matBadge",t.numOfInactiveChannels)}}let Ni=(()=>{class t{constructor(t,e,n){this.logger=t,this.store=e,this.router=n,this.numOfOpenChannels=0,this.numOfPendingChannels=0,this.numOfInactiveChannels=0,this.selNode={},this.information={},this.peers=[],this.totalBalance=0,this.links=[{link:"open",name:"Open"},{link:"pending",name:"Pending"},{link:"inactive",name:"Inactive"}],this.activeLink=0,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.activeLink=this.links.findIndex(t=>t.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,m.R)(this.unSubs[0]),(0,ut.h)(t=>t instanceof i.Av)).subscribe(t=>{this.activeLink=this.links.findIndex(e=>e.link===t.urlAfterRedirects.substring(t.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select("ecl").pipe((0,m.R)(this.unSubs[1])).subscribe(t=>{this.numOfOpenChannels=t.channelsStatus&&t.channelsStatus.active&&t.channelsStatus.active.channels?t.channelsStatus.active.channels:0,this.numOfPendingChannels=t.channelsStatus&&t.channelsStatus.pending&&t.channelsStatus.pending.channels?t.channelsStatus.pending.channels:0,this.numOfInactiveChannels=t.channelsStatus&&t.channelsStatus.inactive&&t.channelsStatus.inactive.channels?t.channelsStatus.inactive.channels:0,this.selNode=t.nodeSettings,this.information=t.information,this.peers=t.peers,this.totalBalance=t.onchainBalance.total,this.logger.info(t)})}onOpenChannel(){this.store.dispatch(new Ft.wu({data:{alertTitle:"Open Channel",message:{peers:this.peers,information:this.information,balance:this.totalBalance},component:bi}}))}onSelectedTabChange(t){this.router.navigateByUrl("/ecl/connections/channels/"+this.links[t.index].link)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(x.yh),o.Y36(i.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-channels-tables"]],decls:14,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100",1,"my-2","bordered-box"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"button",2),o.NdJ("click",function(){return e.onOpenChannel()}),o._uU(3,"Open Channel"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-tab-group",4),o.NdJ("selectedIndexChange",function(t){return e.activeLink=t})("selectedTabChange",function(t){return e.onSelectedTabChange(t)}),o.TgZ(6,"mat-tab"),o.YNc(7,Li,2,1,"ng-template",5),o.qZA(),o.TgZ(8,"mat-tab"),o.YNc(9,Fi,2,1,"ng-template",5),o.qZA(),o.TgZ(10,"mat-tab"),o.YNc(11,Ii,2,1,"ng-template",5),o.qZA(),o.qZA(),o.TgZ(12,"div",6),o._UZ(13,"router-outlet"),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(5),o.Q6J("selectedIndex",e.activeLink))},directives:[l.xw,l.yH,l.Wh,v.lW,ct.SP,ct.uX,ct.uD,i.lC,Na.k],styles:[""]}),t})();function _i(t,e){if(1&t&&(o.TgZ(0,"div",11),o.TgZ(1,"h4",12),o._uU(2,"Short Channel ID"),o.qZA(),o.TgZ(3,"span",13),o._uU(4),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(4),o.Oqu(t.channel.shortChannelId)}}function Di(t,e){if(1&t&&(o.TgZ(0,"div",11),o.TgZ(1,"h4",12),o._uU(2,"State"),o.qZA(),o.TgZ(3,"span",15),o._uU(4),o.ALo(5,"titlecase"),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(4),o.Oqu(o.lcZ(5,1,t.channel.state))}}function ki(t,e){if(1&t&&(o.TgZ(0,"div"),o.TgZ(1,"div",9),o.TgZ(2,"div",11),o.TgZ(3,"h4",12),o._uU(4,"Local Balance (Sats)"),o.qZA(),o.TgZ(5,"span",15),o._uU(6),o.ALo(7,"number"),o.qZA(),o.qZA(),o.TgZ(8,"div",11),o.TgZ(9,"h4",12),o._uU(10,"Remote Balance (Sats)"),o.qZA(),o.TgZ(11,"span",15),o._uU(12),o.ALo(13,"number"),o.qZA(),o.qZA(),o.qZA(),o._UZ(14,"mat-divider",14),o.TgZ(15,"div",9),o.TgZ(16,"div",11),o.TgZ(17,"h4",12),o._uU(18,"Base Fee (mSats)"),o.qZA(),o.TgZ(19,"span",15),o._uU(20),o.ALo(21,"number"),o.qZA(),o.qZA(),o.TgZ(22,"div",11),o.TgZ(23,"h4",12),o._uU(24,"Fee Rate (mili mSats)"),o.qZA(),o.TgZ(25,"span",15),o._uU(26),o.ALo(27,"number"),o.qZA(),o.qZA(),o.qZA(),o._UZ(28,"mat-divider",14),o.qZA()),2&t){const t=o.oxw();o.xp6(6),o.Oqu(o.lcZ(7,6,t.channel.toLocal)),o.xp6(6),o.Oqu(o.lcZ(13,8,t.channel.toRemote)),o.xp6(2),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.lcZ(21,10,t.channel.feeBaseMsat)),o.xp6(6),o.Oqu(o.lcZ(27,12,t.channel.feeProportionalMillionths)),o.xp6(2),o.Q6J("inset",!0)}}function Oi(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Show Advanced"),o.qZA())}function Ui(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Hide Advanced"),o.qZA())}function Ri(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",21),o.NdJ("click",function(){return o.CHM(t),o.oxw().onShowAdvanced()}),o.YNc(1,Oi,2,0,"p",22),o.YNc(2,Ui,2,0,"ng-template",null,23,o.W1O),o.qZA()}if(2&t){const t=o.MAs(3),e=o.oxw();o.xp6(1),o.Q6J("ngIf",!e.showAdvanced)("ngIfElse",t)}}function Mi(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",24),o.NdJ("copied",function(e){return o.CHM(t),o.oxw().onCopyChanID(e)}),o._uU(1,"Copy Short Channel ID"),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("payload",t.channel.shortChannelId)}}function Ji(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",25),o.NdJ("copied",function(e){return o.CHM(t),o.oxw().onCopyChanID(e)}),o._uU(1,"Copy Channel ID"),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("payload",t.channel.channelId)}}const Pi=function(t){return{"xs-scroll-y":t}},Ei=function(t,e){return{"mt-2":t,"mt-1":e}};let Yi=(()=>{class t{constructor(t,e,n,a,i){this.dialogRef=t,this.data=e,this.logger=n,this.commonService=a,this.snackBar=i,this.faReceipt=h.dLy,this.showAdvanced=!1,this.channelsType="open",this.screenSize="",this.screenSizeEnum=g.cu}ngOnInit(){this.channel=this.data.channel,this.channelsType=this.data.channelsType,this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyChanID(t){this.snackBar.open("open"===this.channelsType?"Short channel ID "+t+" copied.":"Channel ID copied."),this.logger.info("Copied Text: "+t)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(ht.so),o.Y36(ht.WI),o.Y36(f.mQ),o.Y36(y.v),o.Y36(Pa.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-channel-information"]],decls:64,vars:28,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxLayout","row"],["fxFlex","50",4,"ngIf"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"my-1",3,"inset"],[1,"overflow-wrap","foreground-secondary-text"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","100",3,"ngClass"],["mat-stroked-button","","color","primary","type","reset","tabindex","1","class","mr-1",3,"click",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","3","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["mat-stroked-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-flat-button","","color","primary","tabindex","3","type","submit","rtlClipboard","",3,"payload","copied"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o._UZ(4,"fa-icon",4),o.TgZ(5,"span",5),o._uU(6,"Channel Information"),o.qZA(),o.qZA(),o.TgZ(7,"button",6),o.NdJ("click",function(){return e.onClose()}),o._uU(8,"X"),o.qZA(),o.qZA(),o.TgZ(9,"mat-card-content",7),o.TgZ(10,"div",8),o.TgZ(11,"div",9),o.YNc(12,_i,5,1,"div",10),o.TgZ(13,"div",11),o.TgZ(14,"h4",12),o._uU(15,"Peer Alias"),o.qZA(),o.TgZ(16,"span",13),o._uU(17),o.qZA(),o.qZA(),o.YNc(18,Di,6,3,"div",10),o.qZA(),o._UZ(19,"mat-divider",14),o.TgZ(20,"div",9),o.TgZ(21,"div",1),o.TgZ(22,"h4",12),o._uU(23,"Channel ID"),o.qZA(),o.TgZ(24,"span",13),o._uU(25),o.qZA(),o.qZA(),o.qZA(),o._UZ(26,"mat-divider",14),o.TgZ(27,"div",9),o.TgZ(28,"div",1),o.TgZ(29,"h4",12),o._uU(30,"Peer Public Key"),o.qZA(),o.TgZ(31,"span",13),o._uU(32),o.qZA(),o.qZA(),o.qZA(),o._UZ(33,"mat-divider",14),o.TgZ(34,"div",9),o.TgZ(35,"div",11),o.TgZ(36,"h4",12),o._uU(37,"Private"),o.qZA(),o.TgZ(38,"span",15),o._uU(39),o.qZA(),o.qZA(),o.TgZ(40,"div",11),o.TgZ(41,"h4",12),o._uU(42,"Funder"),o.qZA(),o.TgZ(43,"span",15),o._uU(44),o.qZA(),o.qZA(),o.qZA(),o._UZ(45,"mat-divider",14),o.TgZ(46,"div",9),o.TgZ(47,"div",11),o.TgZ(48,"h4",12),o._uU(49,"State"),o.qZA(),o.TgZ(50,"span",15),o._uU(51),o.ALo(52,"titlecase"),o.qZA(),o.qZA(),o.TgZ(53,"div",11),o.TgZ(54,"h4",12),o._uU(55,"Buried"),o.qZA(),o.TgZ(56,"span",15),o._uU(57),o.qZA(),o.qZA(),o.qZA(),o._UZ(58,"mat-divider",14),o.YNc(59,ki,29,14,"div",16),o.TgZ(60,"div",17),o.YNc(61,Ri,4,2,"button",18),o.YNc(62,Mi,2,1,"button",19),o.YNc(63,Ji,2,1,"button",20),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(4),o.Q6J("icon",e.faReceipt),o.xp6(5),o.Q6J("ngClass",o.VKq(23,Pi,e.screenSize===e.screenSizeEnum.XS)),o.xp6(3),o.Q6J("ngIf","open"===e.channelsType),o.xp6(5),o.Oqu(e.channel.alias),o.xp6(1),o.Q6J("ngIf","open"!==e.channelsType),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(e.channel.channelId),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(e.channel.nodeId),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(0===e.channel.channelFlags?"Yes":"No"),o.xp6(5),o.Oqu(e.channel.isFunder?"Yes":"No"),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.lcZ(52,21,e.channel.state)),o.xp6(6),o.Oqu(e.channel.buried?"Yes":"No"),o.xp6(1),o.Q6J("inset",!0),o.xp6(1),o.Q6J("ngIf",e.showAdvanced&&"open"===e.channelsType),o.xp6(1),o.Q6J("ngClass",o.WLB(25,Ei,!e.showAdvanced,e.showAdvanced)),o.xp6(1),o.Q6J("ngIf","open"===e.channelsType),o.xp6(1),o.Q6J("ngIf","open"===e.channelsType),o.xp6(1),o.Q6J("ngIf","open"!==e.channelsType))},directives:[l.xw,l.Wh,l.yH,T.dk,A.BN,v.lW,T.dn,a.mk,S.oO,a.O5,R.d,Zt.h,Ea.y],pipes:[a.rS,a.JJ],styles:[""]}),t})();function Qi(t,e){1&t&&o._UZ(0,"mat-progress-bar",30)}function Bi(t,e){1&t&&(o.TgZ(0,"th",31),o._uU(1," Short Channel ID "),o.qZA())}function Hi(t,e){if(1&t&&(o.TgZ(0,"span",37),o._UZ(1,"fa-icon",38),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("icon",t.faEyeSlash)}}function zi(t,e){if(1&t&&(o.TgZ(0,"span",39),o._UZ(1,"fa-icon",38),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("icon",t.faEye)}}const Vi=function(t){return{"max-width":t}};function Gi(t,e){if(1&t&&(o.TgZ(0,"td",32),o.TgZ(1,"div",33),o.YNc(2,Hi,2,1,"span",34),o.YNc(3,zi,2,1,"span",35),o.TgZ(4,"span",36),o._uU(5),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.xp6(1),o.Q6J("ngStyle",o.VKq(4,Vi,n.screenSize===n.screenSizeEnum.XS?"12rem":"22rem")),o.xp6(1),o.Q6J("ngIf",0===t.channelFlags),o.xp6(1),o.Q6J("ngIf",0!==t.channelFlags),o.xp6(2),o.Oqu(null==t?null:t.shortChannelId)}}function $i(t,e){1&t&&(o.TgZ(0,"th",31),o._uU(1," Alias "),o.qZA())}function Xi(t,e){if(1&t&&(o.TgZ(0,"td",32),o.TgZ(1,"div",33),o.TgZ(2,"span",36),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.xp6(1),o.Q6J("ngStyle",o.VKq(2,Vi,n.screenSize===n.screenSizeEnum.XS?"12rem":"22rem")),o.xp6(2),o.Oqu(t.alias)}}function Wi(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1," Base Fee (mSats) "),o.qZA())}function Ki(t,e){if(1&t&&(o.TgZ(0,"td",32),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,null==t?null:t.feeBaseMsat,"1.0-0")," ")}}function ji(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1," Fee Rate (mili mSats) "),o.qZA())}function ts(t,e){if(1&t&&(o.TgZ(0,"td",32),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,null==t?null:t.feeProportionalMillionths,"1.0-0")," ")}}function es(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1," Local Balance (Sats) "),o.qZA())}function ns(t,e){if(1&t&&(o.TgZ(0,"td",32),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,null==t?null:t.toLocal,"1.0-0")," ")}}function as(t,e){1&t&&(o.TgZ(0,"th",40),o._uU(1," Remote Balance (Sats) "),o.qZA())}function is(t,e){if(1&t&&(o.TgZ(0,"td",32),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,null==t?null:t.toRemote,"1.0-0")," ")}}function ss(t,e){1&t&&(o.TgZ(0,"th",42),o._uU(1,"Balance Score "),o.qZA())}function os(t,e){if(1&t&&(o.TgZ(0,"td",43),o.TgZ(1,"div",44),o.TgZ(2,"mat-hint",45),o._uU(3),o.ALo(4,"number"),o.qZA(),o.qZA(),o._UZ(5,"mat-progress-bar",46),o.qZA()),2&t){const t=e.$implicit;o.xp6(3),o.Oqu(o.lcZ(4,2,(null==t?null:t.balancedness)||0)),o.xp6(2),o.s9C("value",t.toLocal&&t.toLocal>0?+t.toLocal/(+t.toLocal+ +t.toRemote)*100:0)}}function ls(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",47),o.TgZ(1,"div",48),o.TgZ(2,"mat-select",49),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",50),o.NdJ("click",function(){return o.CHM(t),o.oxw().onChannelUpdate("all")}),o._uU(5,"Update Fee Policy"),o.qZA(),o.TgZ(6,"mat-option",50),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDownloadCSV()}),o._uU(7,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function rs(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",51),o.TgZ(1,"div",52),o.TgZ(2,"mat-select",53),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",50),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onChannelClick(n,e)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",50),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().onChannelUpdate(e)}),o._uU(7,"Update Fee Policy"),o.qZA(),o.TgZ(8,"mat-option",50),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().onChannelClose(e,!1)}),o._uU(9,"Close Channel"),o.qZA(),o.TgZ(10,"mat-option",50),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().onChannelClose(e,!0)}),o._uU(11,"Force Close"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function cs(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No peers connected. Add a peer in order to open a channel."),o.qZA())}function us(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No channel available."),o.qZA())}function ds(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting channels..."),o.qZA())}function ms(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.errorMessage)}}function ps(t,e){if(1&t&&(o.TgZ(0,"td",54),o.YNc(1,cs,2,0,"p",55),o.YNc(2,us,2,0,"p",55),o.YNc(3,ds,2,0,"p",55),o.YNc(4,ms,2,1,"p",55),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",t.numPeers<1&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",t.numPeers>0&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.ERROR)}}const hs=function(t){return{"display-none":t}};function gs(t,e){if(1&t&&o._UZ(0,"tr",56),2&t){const t=o.oxw();o.Q6J("ngClass",o.VKq(1,hs,t.numPeers>0&&(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function fs(t,e){1&t&&o._UZ(0,"tr",57)}function xs(t,e){1&t&&o._UZ(0,"tr",58)}const Zs=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},ys=function(){return["no_peer"]};let As=(()=>{class t{constructor(t,e,n,a){this.logger=t,this.store=e,this.rtlEffects=n,this.commonService=a,this.faEye=h.Mdf,this.faEyeSlash=h.Aq,this.totalBalance=0,this.displayedColumns=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=g.vn,this.selFilter="",this.flgSticky=!1,this.pageSize=g.IV,this.pageSizeOptions=g.TJ,this.screenSize="",this.screenSizeEnum=g.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","toLocal","toRemote","actions"]):this.screenSize===g.cu.SM?(this.flgSticky=!1,this.displayedColumns=["shortChannelId","alias","toLocal","toRemote","actions"]):this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["shortChannelId","alias","feeBaseMsat","feeProportionalMillionths","toLocal","toRemote","actions"]):(this.flgSticky=!0,this.displayedColumns=["shortChannelId","alias","feeBaseMsat","feeProportionalMillionths","toLocal","toRemote","balancedness","actions"])}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchChannels.status===g.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchChannels.message?JSON.stringify(this.apisCallStatus.FetchChannels.message):this.apisCallStatus.FetchChannels.message),this.information=t.information,this.numPeers=t.peers&&t.peers.length?t.peers.length:0,this.totalBalance=t.onchainBalance.total,this.activeChannels=t.activeChannels,this.activeChannels.length>0&&this.sort&&this.paginator&&this.loadChannelsTable(),this.logger.info(t)})}ngAfterViewInit(){this.activeChannels.length>0&&this.sort&&this.paginator&&this.loadChannelsTable()}onChannelUpdate(t){"all"!==t&&"NORMAL"!==t.state||(this.store.dispatch(new Ft.b_({data:{type:g.n_.CONFIRM,alertTitle:"Update Fee Policy",noBtnText:"Cancel",yesBtnText:"Update",message:[],titleMessage:"all"===t?"Update fee policy for selected/all channels":"Update fee policy for Channel: "+t.channelId,flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSats)",inputType:"number",inputValue:t&&t.feeBaseMsat?t.feeBaseMsat:1e3,width:48},{placeholder:"Fee Rate (mili mSats)",inputType:"number",inputValue:t&&t.feeProportionalMillionths?t.feeProportionalMillionths:100,min:1,width:48,hintFunction:this.percentHintFunction}]}})),this.rtlEffects.closeConfirm.pipe((0,m.R)(this.unSubs[1])).subscribe(e=>{if(e){const n=e[0].inputValue,a=e[1].inputValue;let i=null,s="";"all"===t?(this.activeChannels.forEach(t=>{s=s+","+t.channelId}),s=s.substring(1),i={baseFeeMsat:n,feeRate:a,channelIds:s}):i={baseFeeMsat:n,feeRate:a,channelId:t.channelId},this.store.dispatch(new gt.k(i))}}),this.applyFilter())}percentHintFunction(t){return(t/1e4).toString()+"%"}onChannelClose(t,e){this.store.dispatch(new Ft.b_({data:{type:g.n_.CONFIRM,alertTitle:e?"Force Close Channel":"Close Channel",titleMessage:e?"Force closing channel: "+t.channelId:"Closing channel: "+t.channelId,noBtnText:"Cancel",yesBtnText:e?"Force Close":"Close Channel"}})),this.rtlEffects.closeConfirm.pipe((0,m.R)(this.unSubs[3])).subscribe(n=>{n&&this.store.dispatch(new gt.e8({channelId:t.channelId,force:e}))})}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onChannelClick(t,e){this.store.dispatch(new Ft.wu({data:{channel:t,channelsType:"open",component:Yi}}))}loadChannelsTable(){this.activeChannels.sort((t,e)=>t.alias===e.alias?0:e.alias?1:-1),this.channels=new pt.by([...this.activeChannels]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.channels.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.channels.paginator=this.paginator,this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"ActiveChannels")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(x.yh),o.Y36(Le.V),o.Y36(y.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-channel-open-table"]],viewQuery:function(t,e){if(1&t&&(o.Gf(mt.YE,5),o.Gf(dt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},features:[o._Bn([{provide:dt.ye,useValue:(0,g.pt)("Channels")}])],decls:39,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","shortChannelId"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","feeBaseMsat"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","feeProportionalMillionths"],["matColumnDef","toLocal"],["matColumnDef","toRemote"],["matColumnDef","balancedness"],["mat-header-cell","","mat-sort-header","","class","pl-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pl-1",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],["class","mr-1","matTooltip","Private","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Public","matTooltipPosition","right",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Private","matTooltipPosition","right",1,"mr-1"],[3,"icon"],["matTooltip","Public","matTooltipPosition","right",1,"mr-1"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-3"],["mat-cell","",1,"pl-3"],["fxLayout","row"],["fxFlex","100","fxLayoutAlign","center center",1,"font-size-80"],["mode","determinate",3,"value"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","2",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"div",2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"input",4),o.NdJ("keyup",function(){return e.applyFilter()})("ngModelChange",function(t){return e.selFilter=t}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(5,"div",5),o.YNc(6,Qi,1,0,"mat-progress-bar",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,Bi,2,0,"th",10),o.YNc(11,Gi,6,6,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,$i,2,0,"th",10),o.YNc(14,Xi,4,4,"td",11),o.BQk(),o.ynx(15,13),o.YNc(16,Wi,2,0,"th",14),o.YNc(17,Ki,4,4,"td",11),o.BQk(),o.ynx(18,15),o.YNc(19,ji,2,0,"th",14),o.YNc(20,ts,4,4,"td",11),o.BQk(),o.ynx(21,16),o.YNc(22,es,2,0,"th",14),o.YNc(23,ns,4,4,"td",11),o.BQk(),o.ynx(24,17),o.YNc(25,as,2,0,"th",14),o.YNc(26,is,4,4,"td",11),o.BQk(),o.ynx(27,18),o.YNc(28,ss,2,0,"th",19),o.YNc(29,os,6,4,"td",20),o.BQk(),o.ynx(30,21),o.YNc(31,ls,8,0,"th",22),o.YNc(32,rs,12,0,"td",23),o.BQk(),o.ynx(33,24),o.YNc(34,ps,5,4,"td",25),o.BQk(),o.YNc(35,gs,1,3,"tr",26),o.YNc(36,fs,1,0,"tr",27),o.YNc(37,xs,1,0,"tr",28),o.qZA(),o.qZA(),o._UZ(38,"mat-paginator",29),o.qZA()),2&t&&(o.xp6(4),o.Q6J("ngModel",e.selFilter),o.xp6(2),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.channels)("ngClass",o.VKq(11,Zs,""!==e.errorMessage)),o.xp6(28),o.Q6J("matFooterRowDef",o.DdM(13,ys)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,O.KE,xt.Nt,ft.Fj,ft.JJ,ft.On,M.$V,a.O5,pt.BZ,mt.YE,a.mk,S.oO,pt.w1,pt.fO,pt.Dz,pt.mD,pt.Ke,pt.as,pt.nj,dt.NW,r.pW,pt.ge,mt.nU,pt.ev,a.PC,S.Zl,U.gM,A.BN,O.bx,At.gD,At.$L,Ct.ey,pt.yh,pt.Q2,pt.XQ,pt.Gk],pipes:[a.JJ],styles:[".mat-column-shortChannelId[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-shortChannelId[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-alias[_ngcontent-%COMP%]{padding-left:1rem;flex:0 0 15%;width:15%}.mat-column-alias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-balancedness[_ngcontent-%COMP%]{padding-left:2rem;flex:0 0 17%;width:17%}.mat-column-feeBaseMsat[_ngcontent-%COMP%], .mat-column-feeProportionalMillionths[_ngcontent-%COMP%], .mat-column-state[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{flex:1 1 10%;width:10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width:56.25em){.mat-column-feeBaseMsat[_ngcontent-%COMP%], .mat-column-feeProportionalMillionths[_ngcontent-%COMP%], .mat-column-state[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{white-space:unset;flex:1 1 20%;width:20%}}@media only screen and (max-width:37.5em){.mat-column-feeBaseMsat[_ngcontent-%COMP%], .mat-column-feeProportionalMillionths[_ngcontent-%COMP%], .mat-column-state[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{white-space:unset}}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 100%}@media only screen and (max-width:56.25em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 90%}}@media only screen and (max-width:37.5em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 80%}}"]}),t})();function Cs(t,e){1&t&&o._UZ(0,"mat-progress-bar",25)}function Ts(t,e){1&t&&(o.TgZ(0,"th",26),o._uU(1," State "),o.qZA())}function ws(t,e){if(1&t&&(o.TgZ(0,"td",27),o._uU(1),o.ALo(2,"titlecase"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",o.lcZ(2,1,null==t?null:t.state),"")}}function Ss(t,e){1&t&&(o.TgZ(0,"th",26),o._uU(1," Alias "),o.qZA())}function vs(t,e){if(1&t&&(o.TgZ(0,"td",27),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(null==t?null:t.alias)}}function qs(t,e){1&t&&(o.TgZ(0,"th",28),o._uU(1," Local Balance (Sats) "),o.qZA())}function bs(t,e){if(1&t&&(o.TgZ(0,"td",27),o.TgZ(1,"span",29),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,null==t?null:t.toLocal,"1.0-0")," ")}}function Ls(t,e){1&t&&(o.TgZ(0,"th",28),o._uU(1," Remote Balance (Sats) "),o.qZA())}function Fs(t,e){if(1&t&&(o.TgZ(0,"td",27),o.TgZ(1,"span",29),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,null==t?null:t.toRemote,"1.0-0")," ")}}function Is(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",30),o.TgZ(1,"div",31),o.TgZ(2,"mat-select",32),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",33),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Ns(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",34),o.TgZ(1,"button",35),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onChannelClick(n,e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function _s(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No pending channel available."),o.qZA())}function Ds(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting pending channels..."),o.qZA())}function ks(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.errorMessage)}}function Os(t,e){if(1&t&&(o.TgZ(0,"td",36),o.YNc(1,_s,2,0,"p",37),o.YNc(2,Ds,2,0,"p",37),o.YNc(3,ks,2,1,"p",37),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.ERROR)}}const Us=function(t){return{"display-none":t}};function Rs(t,e){if(1&t&&o._UZ(0,"tr",38),2&t){const t=o.oxw();o.Q6J("ngClass",o.VKq(1,Us,(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function Ms(t,e){1&t&&o._UZ(0,"tr",39)}function Js(t,e){1&t&&o._UZ(0,"tr",40)}const Ps=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},Es=function(){return["no_channel"]};let Ys=(()=>{class t{constructor(t,e,n){this.logger=t,this.store=e,this.commonService=n,this.totalBalance=0,this.displayedColumns=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=g.vn,this.selFilter="",this.flgSticky=!1,this.pageSize=g.IV,this.pageSizeOptions=g.TJ,this.screenSize="",this.screenSizeEnum=g.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.flgSticky=!1,this.displayedColumns=["state","alias","actions"]):this.screenSize===g.cu.SM||this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["state","alias","toLocal","toRemote","actions"]):(this.flgSticky=!0,this.displayedColumns=["state","alias","toLocal","toRemote","actions"])}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchChannels.status===g.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchChannels.message?JSON.stringify(this.apisCallStatus.FetchChannels.message):this.apisCallStatus.FetchChannels.message),this.information=t.information,this.numPeers=t.peers&&t.peers.length?t.peers.length:0,this.totalBalance=t.onchainBalance.total,this.pendingChannels=t.pendingChannels,this.loadChannelsTable(),this.logger.info(t)})}ngAfterViewInit(){this.pendingChannels.length>0&&this.loadChannelsTable()}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onChannelClick(t,e){this.store.dispatch(new Ft.wu({data:{channel:t,channelsType:"pending",component:Yi}}))}loadChannelsTable(){this.pendingChannels.sort((t,e)=>t.alias===e.alias?0:e.alias?1:-1),this.channels=new pt.by([...this.pendingChannels]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.channels.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.channels.paginator=this.paginator,this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"PendingChannels")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(x.yh),o.Y36(y.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-channel-pending-table"]],viewQuery:function(t,e){if(1&t&&(o.Gf(mt.YE,5),o.Gf(dt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},features:[o._Bn([{provide:dt.ye,useValue:(0,g.pt)("Channels")}])],decls:30,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","state"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","toLocal"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","toRemote"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"div",2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"input",4),o.NdJ("keyup",function(){return e.applyFilter()})("ngModelChange",function(t){return e.selFilter=t}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(5,"div",5),o.YNc(6,Cs,1,0,"mat-progress-bar",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,Ts,2,0,"th",10),o.YNc(11,ws,3,3,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,Ss,2,0,"th",10),o.YNc(14,vs,2,1,"td",11),o.BQk(),o.ynx(15,13),o.YNc(16,qs,2,0,"th",14),o.YNc(17,bs,4,4,"td",11),o.BQk(),o.ynx(18,15),o.YNc(19,Ls,2,0,"th",14),o.YNc(20,Fs,4,4,"td",11),o.BQk(),o.ynx(21,16),o.YNc(22,Is,6,0,"th",17),o.YNc(23,Ns,3,0,"td",18),o.BQk(),o.ynx(24,19),o.YNc(25,Os,4,3,"td",20),o.BQk(),o.YNc(26,Rs,1,3,"tr",21),o.YNc(27,Ms,1,0,"tr",22),o.YNc(28,Js,1,0,"tr",23),o.qZA(),o.qZA(),o._UZ(29,"mat-paginator",24),o.qZA()),2&t&&(o.xp6(4),o.Q6J("ngModel",e.selFilter),o.xp6(2),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.channels)("ngClass",o.VKq(11,Ps,""!==e.errorMessage)),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(13,Es)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,O.KE,xt.Nt,ft.Fj,ft.JJ,ft.On,M.$V,a.O5,pt.BZ,mt.YE,a.mk,S.oO,pt.w1,pt.fO,pt.Dz,pt.mD,pt.Ke,pt.as,pt.nj,dt.NW,r.pW,pt.ge,mt.nU,pt.ev,At.gD,At.$L,Ct.ey,v.lW,pt.yh,pt.Q2,pt.XQ,pt.Gk],pipes:[a.rS,a.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();var Qs=n(7753);const Bs=["peersForm"],Hs=["stepper"];function zs(t,e){if(1&t&&o._uU(0),2&t){const t=o.oxw();o.Oqu(t.peerFormLabel)}}function Vs(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Address is required."),o.qZA())}function Gs(t,e){if(1&t&&(o.TgZ(0,"div",33),o._UZ(1,"fa-icon",34),o.TgZ(2,"span"),o._uU(3),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(2),o.Oqu(t.peerConnectionError)}}function $s(t,e){if(1&t&&o._uU(0),2&t){const t=o.oxw();o.Oqu(t.channelFormLabel)}}function Xs(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function Ws(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount must be a positive number."),o.qZA())}function Ks(t,e){if(1&t&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.hij("Amount must be less than or equal to ",t.totalBalance,".")}}function js(t,e){if(1&t&&(o.TgZ(0,"div",33),o._UZ(1,"fa-icon",34),o.TgZ(2,"span"),o._uU(3),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("icon",t.faExclamationTriangle),o.xp6(2),o.Oqu(t.channelConnectionError)}}let to=(()=>{class t{constructor(t,e,n,a,i,s){this.dialogRef=t,this.data=e,this.store=n,this.formBuilder=a,this.actions=i,this.logger=s,this.faExclamationTriangle=h.eHv,this.peerAddress="",this.totalBalance=0,this.flgChannelOpened=!1,this.channelOpenStatus=null,this.newlyAddedPeer=null,this.flgEditable=!0,this.peerConnectionError="",this.channelConnectionError="",this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)",this.unSubs=[new d.x,new d.x]}ngOnInit(){this.totalBalance=this.data.message.balance,this.peerAddress=this.data.message.peer&&this.data.message.peer.nodeId&&this.data.message.peer.address?this.data.message.peer.nodeId+"@"+this.data.message.peer.address:this.data.message.peer&&this.data.message.peer.nodeId&&!this.data.message.peer.address?this.data.message.peer.nodeId:"",this.peerFormGroup=this.formBuilder.group({hiddenAddress:["",[ft.kI.required]],peerAddress:[this.peerAddress,[ft.kI.required]]}),this.channelFormGroup=this.formBuilder.group({fundingAmount:["",[ft.kI.required,ft.kI.min(1),ft.kI.max(this.totalBalance)]],isPrivate:[!1],feeRate:[null],hiddenAmount:["",[ft.kI.required]]}),this.statusFormGroup=this.formBuilder.group({}),this.actions.pipe((0,m.R)(this.unSubs[1]),(0,ut.h)(t=>t.type===gt.Ae||t.type===gt.M8||t.type===gt.f)).subscribe(t=>{t.type===gt.Ae&&(this.logger.info(t.payload),this.flgEditable=!1,this.newlyAddedPeer=t.payload.peer,this.peerFormGroup.controls.hiddenAddress.setValue(this.peerFormGroup.controls.peerAddress.value),this.stepper.next()),t.type===gt.M8&&this.dialogRef.close(),t.type===gt.f&&t.payload.status===g.Bn.ERROR&&("SaveNewPeer"===t.payload.action?this.peerConnectionError=t.payload.message:"SaveNewChannel"===t.payload.action&&(this.channelConnectionError=t.payload.message))})}onConnectPeer(){if(!this.peerFormGroup.controls.peerAddress.value)return!0;this.peerConnectionError="",this.store.dispatch(new gt.rF({id:this.peerFormGroup.controls.peerAddress.value}))}onOpenChannel(){if(!this.channelFormGroup.controls.fundingAmount.value||this.totalBalance-this.channelFormGroup.controls.fundingAmount.value<0)return!0;this.channelConnectionError="",this.store.dispatch(new gt.nb({nodeId:this.newlyAddedPeer.nodeId,amount:this.channelFormGroup.controls.fundingAmount.value,private:this.channelFormGroup.controls.isPrivate.value,feeRate:this.channelFormGroup.controls.feeRate.value}))}onClose(){this.dialogRef.close(!1)}stepSelectionChanged(t){switch(t.selectedIndex){case 0:this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 1:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+(this.newlyAddedPeer.alias?this.newlyAddedPeer.alias:this.newlyAddedPeer.nodeId):"Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 2:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+(this.newlyAddedPeer.alias?this.newlyAddedPeer.alias:this.newlyAddedPeer.nodeId):"Peer Details",this.channelFormLabel=this.channelFormGroup.controls.fundingAmount.value?"Opening Channel for "+this.channelFormGroup.controls.fundingAmount.value+" Sats":"Open Channel (Optional)";break;default:this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)"}t.selectedIndex{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(ht.so),o.Y36(ht.WI),o.Y36(x.yh),o.Y36(ft.qu),o.Y36(Z.eX),o.Y36(f.mQ))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-connect-peer"]],viewQuery:function(t,e){if(1&t&&(o.Gf(Bs,5),o.Gf(Hs,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.form=t.first),o.iGM(t=o.CRH())&&(e.stepper=t.first)}},decls:50,vars:20,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["autoFocus","","matInput","","placeholder","Lightning Address (pubkey OR pubkey@ip:port)","formControlName","peerAddress","tabindex","1","required",""],[4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","button",3,"click"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mb-1",3,"formGroup"],["matStepLabel","","disabled","true"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","60","fxLayoutAlign","start end"],["matInput","","autoFocus","","formControlName","fundingAmount","placeholder","Amount","type","number","tabindex","1","required","",3,"step"],["matSuffix",""],["fxFlex","35","fxLayoutAlign","start center"],["tabindex","2","color","primary","formControlName","isPrivate","name","isPrivate"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["matInput","","formControlName","feeRate","placeholder","Fee (Sats/vByte)","type","number","name","feeRate","tabindex","7",3,"step","min"],["mat-stroked-button","","color","primary","tabindex","8","type","button",3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","tabindex","12","type","button","default","",3,"click"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Connect to a new peer"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return e.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"div",7),o.TgZ(10,"mat-vertical-stepper",8,9),o.NdJ("selectionChange",function(t){return e.stepSelectionChanged(t)}),o.TgZ(12,"mat-step",10),o.TgZ(13,"form",11),o.YNc(14,zs,1,1,"ng-template",12),o.TgZ(15,"mat-form-field",1),o._UZ(16,"input",13),o.YNc(17,Vs,2,0,"mat-error",14),o.qZA(),o.YNc(18,Gs,4,2,"div",15),o.TgZ(19,"div",16),o.TgZ(20,"button",17),o.NdJ("click",function(){return e.onConnectPeer()}),o._uU(21),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(22,"mat-step",10),o.TgZ(23,"form",18),o.YNc(24,$s,1,1,"ng-template",19),o.TgZ(25,"div",20),o.TgZ(26,"div",21),o.TgZ(27,"mat-form-field",22),o._UZ(28,"input",23),o.TgZ(29,"mat-hint"),o._uU(30),o.qZA(),o.TgZ(31,"span",24),o._uU(32," Sats "),o.qZA(),o.YNc(33,Xs,2,0,"mat-error",14),o.YNc(34,Ws,2,0,"mat-error",14),o.YNc(35,Ks,2,1,"mat-error",14),o.qZA(),o.TgZ(36,"div",25),o.TgZ(37,"mat-slide-toggle",26),o._uU(38,"Private Channel"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(39,"div",27),o.TgZ(40,"div",28),o.TgZ(41,"mat-form-field",1),o._UZ(42,"input",29),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(43,js,4,2,"div",15),o.TgZ(44,"div",16),o.TgZ(45,"button",30),o.NdJ("click",function(){return e.onOpenChannel()}),o._uU(46),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(47,"div",31),o.TgZ(48,"button",32),o.NdJ("click",function(){return e.onClose()}),o._uU(49),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(10),o.Q6J("linear",!0),o.xp6(2),o.Q6J("stepControl",e.peerFormGroup)("editable",e.flgEditable),o.xp6(1),o.Q6J("formGroup",e.peerFormGroup),o.xp6(4),o.Q6J("ngIf",null==e.peerFormGroup.controls.peerAddress.errors?null:e.peerFormGroup.controls.peerAddress.errors.required),o.xp6(1),o.Q6J("ngIf",""!==e.peerConnectionError),o.xp6(3),o.Oqu(""!==e.peerConnectionError?"Retry":"Add Peer"),o.xp6(1),o.Q6J("stepControl",e.channelFormGroup)("editable",e.flgEditable),o.xp6(1),o.Q6J("formGroup",e.channelFormGroup),o.xp6(5),o.Q6J("step",1e3),o.xp6(2),o.hij("Remaining Bal: ",e.totalBalance-(e.channelFormGroup.controls.fundingAmount.value?e.channelFormGroup.controls.fundingAmount.value:0),""),o.xp6(3),o.Q6J("ngIf",null==e.channelFormGroup.controls.fundingAmount.errors?null:e.channelFormGroup.controls.fundingAmount.errors.required),o.xp6(1),o.Q6J("ngIf",null==e.channelFormGroup.controls.fundingAmount.errors?null:e.channelFormGroup.controls.fundingAmount.errors.min),o.xp6(1),o.Q6J("ngIf",null==e.channelFormGroup.controls.fundingAmount.errors?null:e.channelFormGroup.controls.fundingAmount.errors.max),o.xp6(7),o.Q6J("step",1)("min",0),o.xp6(1),o.Q6J("ngIf",""!==e.channelConnectionError),o.xp6(3),o.Oqu(""!==e.channelConnectionError?"Retry":"Open Channel"),o.xp6(3),o.Oqu(null!=e.newlyAddedPeer&&e.newlyAddedPeer.nodeId?"Do It Later":"Close"))},directives:[l.xw,l.yH,T.dk,l.Wh,v.lW,T.dn,Qs.Vq,Qs.C0,ft._Y,ft.JL,ft.sg,Qs.VY,O.KE,xt.Nt,ft.Fj,Zt.h,ft.JJ,ft.u,ft.Q7,a.O5,ft.wV,O.bx,O.R9,pi.Rr,ft.qQ,yt.q,O.TO,A.BN],styles:[""]}),t})();function eo(t,e){1&t&&o._UZ(0,"mat-progress-bar",35)}function no(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1," ID "),o.qZA())}const ao=function(t){return{"max-width":t}};function io(t,e){if(1&t&&(o.TgZ(0,"td",37),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,ao,n.screenSize===n.screenSizeEnum.XS?"10rem":"30rem")),o.xp6(1),o.hij(" ",null==t?null:t.nodeId," ")}}function so(t,e){1&t&&(o.TgZ(0,"th",38),o._uU(1," Alias "),o.qZA())}const oo=function(t){return{"mr-0":t}};function lo(t,e){if(1&t&&o._UZ(0,"span",42),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,oo,t.screenSize===t.screenSizeEnum.XS))}}function ro(t,e){if(1&t&&o._UZ(0,"span",43),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,oo,t.screenSize===t.screenSizeEnum.XS))}}function co(t,e){if(1&t&&(o.TgZ(0,"td",39),o.YNc(1,lo,1,3,"span",40),o.YNc(2,ro,1,3,"span",41),o._uU(3),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(4,ao,n.screenSize===n.screenSizeEnum.XS?"10rem":"25rem")),o.xp6(1),o.Q6J("ngIf","CONNECTED"===t.state),o.xp6(1),o.Q6J("ngIf","DISCONNECTED"===t.state),o.xp6(1),o.hij(" ",null==t?null:t.alias," ")}}function uo(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1," State "),o.qZA())}function mo(t,e){if(1&t&&(o.TgZ(0,"td",44),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.state," ")}}function po(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1," Network Address "),o.qZA())}function ho(t,e){if(1&t&&(o.TgZ(0,"td",44),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.address," ")}}function go(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1," Channels "),o.qZA())}function fo(t,e){if(1&t&&(o.TgZ(0,"td",44),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.channels," ")}}function xo(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",45),o.TgZ(1,"div",46),o.TgZ(2,"mat-select",47),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",48),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Zo(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-option",48),o.NdJ("click",function(){o.CHM(t);const e=o.oxw().$implicit;return o.oxw().onPeerDetach(e)}),o._uU(1,"Disconnect"),o.qZA()}}function yo(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-option",48),o.NdJ("click",function(){o.CHM(t);const e=o.oxw().$implicit;return o.oxw().onConnectPeer(e)}),o._uU(1,"Reconnect"),o.qZA()}}function Ao(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",49),o.TgZ(1,"div",46),o.TgZ(2,"mat-select",47),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",48),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onPeerClick(n,e)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",48),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().onOpenChannel(e)}),o._uU(7,"Open Channel"),o.qZA(),o.YNc(8,Zo,2,0,"mat-option",50),o.YNc(9,yo,2,0,"mat-option",50),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit;o.xp6(8),o.Q6J("ngIf","CONNECTED"===t.state),o.xp6(1),o.Q6J("ngIf","DISCONNECTED"===t.state)}}function Co(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No connected peer."),o.qZA())}function To(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting peers..."),o.qZA())}function wo(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.errorMessage)}}function So(t,e){if(1&t&&(o.TgZ(0,"td",51),o.YNc(1,Co,2,0,"p",52),o.YNc(2,To,2,0,"p",52),o.YNc(3,wo,2,1,"p",52),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers||null==t.peers.data?null:t.peers.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPeers.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers||null==t.peers.data?null:t.peers.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPeers.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers||null==t.peers.data?null:t.peers.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPeers.status)===t.apiCallStatusEnum.ERROR)}}const vo=function(t){return{"display-none":t}};function qo(t,e){if(1&t&&o._UZ(0,"tr",53),2&t){const t=o.oxw();o.Q6J("ngClass",o.VKq(1,vo,(null==t.peers?null:t.peers.data)&&(null==t.peers||null==t.peers.data?null:t.peers.data.length)>0))}}function bo(t,e){1&t&&o._UZ(0,"tr",54)}function Lo(t,e){if(1&t&&o._UZ(0,"tr",55),2&t){const t=e.$implicit,n=o.oxw();o.Q6J("@newlyAddedRowAnimation",t.pub_key===n.newlyAddedPeer&&n.flgAnimate?"added":"notAdded")}}const Fo=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},Io=function(){return["no_peer"]};let No=(()=>{class t{constructor(t,e,n,a,i){this.logger=t,this.store=e,this.rtlEffects=n,this.actions=a,this.commonService=i,this.faUsers=h.FVb,this.newlyAddedPeer="",this.flgAnimate=!0,this.displayedColumns=[],this.peerAddress="",this.peersData=[],this.information={},this.availableBalance=0,this.flgSticky=!1,this.pageSize=g.IV,this.pageSizeOptions=g.TJ,this.screenSize="",this.screenSizeEnum=g.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","actions"]):this.screenSize===g.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","nodeId","address","actions"]):this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","nodeId","address","channels","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","nodeId","address","channels","actions"])}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchPeers.status===g.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPeers.message?JSON.stringify(this.apisCallStatus.FetchPeers.message):this.apisCallStatus.FetchPeers.message),this.information=t.information,this.availableBalance=t.onchainBalance.total||0,this.peersData=t.peers,this.loadPeersTable(this.peersData),setTimeout(()=>{this.flgAnimate=!1},3e3),this.logger.info(t)}),this.actions.pipe((0,m.R)(this.unSubs[1]),(0,ut.h)(t=>t.type===gt.IH)).subscribe(t=>{this.peerAddress=null,this.flgAnimate=!0})}ngAfterViewInit(){this.peersData.length>0&&this.loadPeersTable(this.peersData)}onPeerClick(t,e){const n=[[{key:"nodeId",value:t.nodeId,title:"Public Key",width:100}],[{key:"address",value:t.address,title:"Address",width:50},{key:"alias",value:t.alias,title:"Alias",width:50}],[{key:"state",value:this.commonService.titleCase(t.state),title:"State",width:50},{key:"channels",value:t.channels,title:"Channels",width:50}]];this.store.dispatch(new Ft.wu({data:{type:g.n_.INFORMATION,alertTitle:"Peer Information",showQRName:"Public Key",showQRField:t.nodeId,message:n}}))}onConnectPeer(t){this.store.dispatch(new Ft.wu({data:{message:{peer:t.nodeId?t:null,information:this.information,balance:this.availableBalance},component:to}}))}onOpenChannel(t){this.store.dispatch(new Ft.wu({data:{alertTitle:"Open Channel",message:{peer:t,information:this.information,balance:this.availableBalance},newlyAdded:!1,component:bi}}))}onPeerDetach(t){this.store.dispatch(t.channels>0?new Ft.wu({data:{type:g.n_.ERROR,alertTitle:"Disconnect Not Allowed",titleMessage:"Channel active with this peer."}}):new Ft.b_({data:{type:g.n_.CONFIRM,alertTitle:"Disconnect Peer",titleMessage:"Disconnect peer: "+(t.alias?t.alias:t.nodeId),noBtnText:"Cancel",yesBtnText:"Disconnect"}})),this.rtlEffects.closeConfirm.pipe((0,m.R)(this.unSubs[3])).subscribe(e=>{e&&this.store.dispatch(new gt.hF({nodeId:t.nodeId}))})}applyFilter(t){this.peers.filter=t.value.trim().toLowerCase()}loadPeersTable(t){this.peers=new pt.by(t?[...t]:[]),this.peers.sort=this.sort,this.peers.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.peers.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.peers.paginator=this.paginator}onDownloadCSV(){this.peers.data&&this.peers.data.length>0&&this.commonService.downloadFile(this.peers.data,"Peers")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(x.yh),o.Y36(Le.V),o.Y36(Z.eX),o.Y36(y.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-peers"]],viewQuery:function(t,e){if(1&t&&(o.Gf(mt.YE,5),o.Gf(dt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},features:[o._Bn([{provide:dt.ye,useValue:(0,g.pt)("Peers")}])],decls:42,vars:14,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["peersForm","ngForm"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["fxLayout","row","fxLayoutAlign","start start"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","nodeId"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","alias"],["mat-header-cell","","mat-sort-header","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3",3,"ngStyle",4,"matCellDef"],["matColumnDef","state"],["mat-cell","",4,"matCellDef"],["matColumnDef","address"],["matColumnDef","channels"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","px-3",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","",1,"px-3"],["mat-cell","",1,"px-3",3,"ngStyle"],["class","dot green","matTooltip","Connected","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Disconnected","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Connected","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Disconnected","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["mat-cell",""],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],[3,"click",4,"ngIf"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"form",1,2),o.TgZ(3,"button",3),o.NdJ("click",function(){return e.onConnectPeer({})}),o._uU(4,"Add Peer"),o.qZA(),o.qZA(),o.TgZ(5,"div",4),o.TgZ(6,"div",5),o.TgZ(7,"div",6),o._UZ(8,"fa-icon",7),o.TgZ(9,"span",8),o._uU(10,"Peers"),o.qZA(),o.qZA(),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"div",10),o.TgZ(13,"input",11),o.NdJ("keyup",function(t){return e.applyFilter(t.target)}),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(14,"div",12),o.YNc(15,eo,1,0,"mat-progress-bar",13),o.TgZ(16,"table",14,15),o.ynx(18,16),o.YNc(19,no,2,0,"th",17),o.YNc(20,io,2,4,"td",18),o.BQk(),o.ynx(21,19),o.YNc(22,so,2,0,"th",20),o.YNc(23,co,4,6,"td",21),o.BQk(),o.ynx(24,22),o.YNc(25,uo,2,0,"th",17),o.YNc(26,mo,2,1,"td",23),o.BQk(),o.ynx(27,24),o.YNc(28,po,2,0,"th",17),o.YNc(29,ho,2,1,"td",23),o.BQk(),o.ynx(30,25),o.YNc(31,go,2,0,"th",17),o.YNc(32,fo,2,1,"td",23),o.BQk(),o.ynx(33,26),o.YNc(34,xo,6,0,"th",27),o.YNc(35,Ao,10,2,"td",28),o.BQk(),o.ynx(36,29),o.YNc(37,So,4,3,"td",30),o.BQk(),o.YNc(38,qo,1,3,"tr",31),o.YNc(39,bo,1,0,"tr",32),o.YNc(40,Lo,1,1,"tr",33),o.qZA(),o.qZA(),o._UZ(41,"mat-paginator",34),o.qZA(),o.qZA()),2&t&&(o.xp6(8),o.Q6J("icon",e.faUsers),o.xp6(7),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchPeers.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.peers)("ngClass",o.VKq(11,Fo,""!==e.errorMessage)),o.xp6(22),o.Q6J("matFooterRowDef",o.DdM(13,Io)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[l.xw,l.yH,l.Wh,ft._Y,ft.JL,ft.F,v.lW,A.BN,O.KE,xt.Nt,M.$V,a.O5,pt.BZ,mt.YE,a.mk,S.oO,pt.w1,pt.fO,pt.Dz,pt.mD,pt.Ke,pt.as,pt.nj,dt.NW,r.pW,pt.ge,mt.nU,pt.ev,a.PC,S.Zl,U.gM,At.gD,At.$L,Ct.ey,pt.yh,pt.Q2,pt.XQ,pt.Gk],styles:[".mat-column-alias[_ngcontent-%COMP%], .mat-column-nodeId[_ngcontent-%COMP%]{flex:1 1 10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-nodeId[_ngcontent-%COMP%]{padding-right:2rem}.mat-column-address[_ngcontent-%COMP%]{flex:1 1 15%;width:15%}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"],data:{animation:[Lt.Q]}}),t})();const _o=["queryRoutesForm"];function Do(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Destination Node ID is required."),o.qZA())}function ko(t,e){1&t&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function Oo(t,e){1&t&&o._UZ(0,"mat-progress-bar",31)}function Uo(t,e){1&t&&(o.TgZ(0,"th",32),o._uU(1," Alias "),o.qZA())}function Ro(t,e){if(1&t&&(o.TgZ(0,"td",33),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.alias," ")}}function Mo(t,e){1&t&&(o.TgZ(0,"th",32),o._uU(1," ID "),o.qZA())}function Jo(t,e){if(1&t&&(o.TgZ(0,"td",33),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.hij(" ",null==t?null:t.nodeId," ")}}function Po(t,e){1&t&&(o.TgZ(0,"th",34),o.TgZ(1,"span",35),o._uU(2,"Actions"),o.qZA(),o.qZA())}function Eo(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",36),o.TgZ(1,"button",37),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onHopClick(n,e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function Yo(t,e){1&t&&o._UZ(0,"tr",38)}function Qo(t,e){1&t&&o._UZ(0,"tr",39)}const Bo=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}};let Ho=(()=>{class t{constructor(t,e,n){this.store=t,this.eclEffects=e,this.commonService=n,this.nodeId="",this.amount=0,this.flgSticky=!1,this.displayedColumns=[],this.flgLoading=[!1],this.faRoute=h.FpQ,this.faExclamationTriangle=h.eHv,this.screenSize="",this.screenSizeEnum=g.cu,this.unSubs=[new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","actions"]):this.screenSize===g.cu.SM||this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","nodeId","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","nodeId","actions"])}ngOnInit(){this.qrHops=new pt.by([]),this.eclEffects.setQueryRoutes.pipe((0,m.R)(this.unSubs[1])).subscribe(t=>{this.qrHops.data=[],t?(this.flgLoading[0]=!1,this.qrHops=new pt.by([...t]),this.qrHops.data=t):this.flgLoading[0]="error",this.qrHops.sort=this.sort,this.qrHops.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null})}onQueryRoutes(){if(!this.nodeId||!this.amount)return!0;this.qrHops.data=[],this.flgLoading[0]=!0,this.store.dispatch(new gt.bm({nodeId:this.nodeId,amount:1e3*this.amount}))}resetData(){this.nodeId="",this.amount=0,this.flgLoading[0]=!1,this.qrHops.data=[],this.form.resetForm()}onHopClick(t,e){this.store.dispatch(new Ft.wu({data:{type:g.n_.INFORMATION,alertTitle:"Route Information",message:[[{key:"alias",value:t.alias,title:"Alias",width:100,type:g.Gi.STRING}],[{key:"nodeId",value:t.nodeId,title:"Node ID",width:100,type:g.Gi.STRING}]]}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(x.yh),o.Y36(de.o),o.Y36(y.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-query-routes"]],viewQuery:function(t,e){if(1&t&&(o.Gf(mt.YE,5),o.Gf(_o,7)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.form=t.first)}},decls:39,vars:16,consts:[["fxLayout","column","fxFlex","100"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",3,"ngSubmit"],["queryRoutesForm","ngForm"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","69","fxLayoutAlign","start end"],["matInput","","placeholder","Destination Node ID","name","nodeId","tabindex","1","required","",3,"ngModel","ngModelChange"],["destPubkey","ngModel"],[4,"ngIf"],["fxFlex","29","fxLayoutAlign","start end"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","type","number","required","",3,"ngModel","step","min","ngModelChange"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","4"],["fxLayout","row","fxLayoutAlign","start center",1,"page-sub-title-container","mt-2","mb-1"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],[1,"table-container","mb-6",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","alias"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","nodeId"],["matColumnDef","actions"],["mat-header-cell","","class","pl-4 pr-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-4",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","",1,"pl-4","pr-3"],["fxLayoutAlign","end center"],["mat-cell","",1,"pl-4"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-header-row",""],["mat-row",""]],template:function(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",0),o.TgZ(1,"form",1,2),o.NdJ("ngSubmit",function(){return o.CHM(t),o.MAs(2).form.valid&&e.onQueryRoutes()}),o.TgZ(3,"div",3),o._UZ(4,"fa-icon",4),o.TgZ(5,"span"),o._uU(6,"The actual routing fee on a payment can be different from the fee shown on query routes."),o.qZA(),o.qZA(),o.TgZ(7,"mat-form-field",5),o.TgZ(8,"input",6,7),o.NdJ("ngModelChange",function(t){return e.nodeId=t}),o.qZA(),o.YNc(10,Do,2,0,"mat-error",8),o.qZA(),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"input",10),o.NdJ("ngModelChange",function(t){return e.amount=t}),o.qZA(),o.YNc(13,ko,2,0,"mat-error",8),o.qZA(),o.TgZ(14,"div",11),o.TgZ(15,"button",12),o.NdJ("click",function(){return e.resetData()}),o._uU(16,"Clear"),o.qZA(),o.TgZ(17,"button",13),o._uU(18,"Query Route"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(19,"div",14),o.TgZ(20,"div",15),o._UZ(21,"fa-icon",16),o.TgZ(22,"span",17),o._uU(23,"Transaction Route"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(24,"div",18),o.YNc(25,Oo,1,0,"mat-progress-bar",19),o.TgZ(26,"table",20,21),o.ynx(28,22),o.YNc(29,Uo,2,0,"th",23),o.YNc(30,Ro,2,1,"td",24),o.BQk(),o.ynx(31,25),o.YNc(32,Mo,2,0,"th",23),o.YNc(33,Jo,2,1,"td",24),o.BQk(),o.ynx(34,26),o.YNc(35,Po,3,0,"th",27),o.YNc(36,Eo,3,0,"td",28),o.BQk(),o.YNc(37,Yo,1,0,"tr",29),o.YNc(38,Qo,1,0,"tr",30),o.qZA(),o.qZA(),o.qZA()}2&t&&(o.xp6(4),o.Q6J("icon",e.faExclamationTriangle),o.xp6(4),o.Q6J("ngModel",e.nodeId),o.xp6(2),o.Q6J("ngIf",!e.nodeId),o.xp6(2),o.Q6J("ngModel",e.amount)("step",1e3)("min",0),o.xp6(1),o.Q6J("ngIf",!e.amount),o.xp6(8),o.Q6J("icon",e.faRoute),o.xp6(4),o.Q6J("ngIf",!0===e.flgLoading[0]),o.xp6(1),o.Q6J("dataSource",e.qrHops)("ngClass",o.VKq(14,Bo,"error"===e.flgLoading[0])),o.xp6(11),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns))},directives:[l.xw,l.yH,ft._Y,ft.JL,ft.F,l.Wh,A.BN,O.KE,xt.Nt,ft.Fj,ft.Q7,ft.JJ,ft.On,a.O5,ft.wV,ft.qQ,yt.q,v.lW,M.$V,pt.BZ,mt.YE,a.mk,S.oO,pt.w1,pt.fO,pt.Dz,pt.as,pt.nj,O.TO,r.pW,pt.ge,mt.nU,pt.ev,pt.XQ,pt.Gk],styles:[".mat-column-actions[_ngcontent-%COMP%]{flex:0 0 5%;width:5%}.mat-column-pubkey_alias[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),t})();function zo(t,e){1&t&&o._UZ(0,"mat-progress-bar",29)}function Vo(t,e){1&t&&(o.TgZ(0,"th",30),o._uU(1," State "),o.qZA())}function Go(t,e){if(1&t&&(o.TgZ(0,"span",36),o._UZ(1,"fa-icon",37),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("icon",t.faEyeSlash)}}function $o(t,e){if(1&t&&(o.TgZ(0,"span",38),o._UZ(1,"fa-icon",37),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("icon",t.faEye)}}const Xo=function(t){return{"max-width":t}};function Wo(t,e){if(1&t&&(o.TgZ(0,"td",31),o.TgZ(1,"div",32),o.YNc(2,Go,2,1,"span",33),o.YNc(3,$o,2,1,"span",34),o.TgZ(4,"span",35),o._uU(5),o.ALo(6,"titlecase"),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.xp6(1),o.Q6J("ngStyle",o.VKq(6,Xo,n.screenSize===n.screenSizeEnum.XS?"10rem":"20rem")),o.xp6(1),o.Q6J("ngIf",0===t.channelFlags),o.xp6(1),o.Q6J("ngIf",0!==t.channelFlags),o.xp6(2),o.Oqu(o.lcZ(6,4,null==t?null:t.state))}}function Ko(t,e){1&t&&(o.TgZ(0,"th",30),o._uU(1," Short Channel ID "),o.qZA())}function jo(t,e){if(1&t&&(o.TgZ(0,"td",31),o._uU(1),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(null==t?null:t.shortChannelId)}}function tl(t,e){1&t&&(o.TgZ(0,"th",30),o._uU(1," Alias "),o.qZA())}function el(t,e){if(1&t&&(o.TgZ(0,"td",31),o.TgZ(1,"div",32),o.TgZ(2,"span",35),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&t){const t=e.$implicit,n=o.oxw();o.xp6(1),o.Q6J("ngStyle",o.VKq(2,Xo,n.screenSize===n.screenSizeEnum.XS?"10rem":"20rem")),o.xp6(2),o.Oqu(t.alias)}}function nl(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1," Local Balance (Sats) "),o.qZA())}function al(t,e){if(1&t&&(o.TgZ(0,"td",31),o.TgZ(1,"span",40),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,null==t?null:t.toLocal,"1.0-0")," ")}}function il(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1," Remote Balance (Sats) "),o.qZA())}function sl(t,e){if(1&t&&(o.TgZ(0,"td",31),o.TgZ(1,"span",40),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.hij(" ",o.xi3(3,1,null==t?null:t.toRemote,"1.0-0")," ")}}function ol(t,e){1&t&&(o.TgZ(0,"th",41),o._uU(1,"Balance Score "),o.qZA())}function ll(t,e){if(1&t&&(o.TgZ(0,"td",42),o.TgZ(1,"div",43),o.TgZ(2,"mat-hint",44),o._uU(3),o.ALo(4,"number"),o.qZA(),o.qZA(),o._UZ(5,"mat-progress-bar",45),o.qZA()),2&t){const t=e.$implicit;o.xp6(3),o.Oqu(o.lcZ(4,2,(null==t?null:t.balancedness)||0)),o.xp6(2),o.s9C("value",t.toLocal&&t.toLocal>0?+t.toLocal/(+t.toLocal+ +t.toRemote)*100:0)}}function rl(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",46),o.TgZ(1,"div",47),o.TgZ(2,"mat-select",48),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",49),o.NdJ("click",function(){return o.CHM(t),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function cl(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",50),o.TgZ(1,"div",51),o.TgZ(2,"mat-select",52),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",49),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw().onChannelClick(n,e)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",49),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().onChannelClose(e,!0)}),o._uU(7,"Force Close"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function ul(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No inactive channel available."),o.qZA())}function dl(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting inactive channels..."),o.qZA())}function ml(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t.errorMessage)}}function pl(t,e){if(1&t&&(o.TgZ(0,"td",53),o.YNc(1,ul,2,0,"p",54),o.YNc(2,dl,2,0,"p",54),o.YNc(3,ml,2,1,"p",54),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchChannels.status)===t.apiCallStatusEnum.ERROR)}}const hl=function(t){return{"display-none":t}};function gl(t,e){if(1&t&&o._UZ(0,"tr",55),2&t){const t=o.oxw();o.Q6J("ngClass",o.VKq(1,hl,(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function fl(t,e){1&t&&o._UZ(0,"tr",56)}function xl(t,e){1&t&&o._UZ(0,"tr",57)}const Zl=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},yl=function(){return["no_channel"]};let Al=(()=>{class t{constructor(t,e,n,a){this.logger=t,this.store=e,this.rtlEffects=n,this.commonService=a,this.faEye=h.Mdf,this.faEyeSlash=h.Aq,this.totalBalance=0,this.displayedColumns=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=g.vn,this.selFilter="",this.flgSticky=!1,this.pageSize=g.IV,this.pageSizeOptions=g.TJ,this.screenSize="",this.screenSizeEnum=g.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS||this.screenSize===g.cu.SM?(this.flgSticky=!1,this.displayedColumns=["state","alias","toLocal","toRemote","actions"]):this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["state","shortChannelId","alias","toLocal","toRemote","actions"]):(this.flgSticky=!0,this.displayedColumns=["state","shortChannelId","alias","toLocal","toRemote","balancedness","actions"])}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchChannels.status===g.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchChannels.message?JSON.stringify(this.apisCallStatus.FetchChannels.message):this.apisCallStatus.FetchChannels.message),this.information=t.information,this.numPeers=t.peers&&t.peers.length?t.peers.length:0,this.totalBalance=t.onchainBalance.total,this.inactiveChannels=t.inactiveChannels,this.loadChannelsTable(),this.logger.info(t)})}ngAfterViewInit(){this.inactiveChannels.length>0&&this.loadChannelsTable()}onChannelClose(t,e){this.store.dispatch(new Ft.b_({data:{type:g.n_.CONFIRM,alertTitle:e?"Force Close Channel":"Close Channel",titleMessage:e?"Force closing channel: "+t.channelId:"Closing channel: "+t.channelId,noBtnText:"Cancel",yesBtnText:e?"Force Close":"Close Channel"}})),this.rtlEffects.closeConfirm.pipe((0,m.R)(this.unSubs[1])).subscribe(n=>{n&&this.store.dispatch(new gt.e8({channelId:t.channelId,force:e}))})}applyFilter(){this.channels.filter=this.selFilter.trim().toLocaleLowerCase()}onChannelClick(t,e){this.store.dispatch(new Ft.wu({data:{channel:t,channelsType:"inactive",component:Yi}}))}loadChannelsTable(){this.inactiveChannels.sort((t,e)=>t.alias===e.alias?0:e.alias?1:-1),this.channels=new pt.by([...this.inactiveChannels]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.channels.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.channels.paginator=this.paginator,this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"InactiveChannels")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(x.yh),o.Y36(Le.V),o.Y36(y.v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-channel-inactive-table"]],viewQuery:function(t,e){if(1&t&&(o.Gf(mt.YE,5),o.Gf(dt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},features:[o._Bn([{provide:dt.ye,useValue:(0,g.pt)("Channels")}])],decls:36,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","state"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","shortChannelId"],["matColumnDef","alias"],["matColumnDef","toLocal"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","toRemote"],["matColumnDef","balancedness"],["mat-header-cell","","mat-sort-header","","class","pl-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],["class","mr-1","matTooltip","Private","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Public","matTooltipPosition","right",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Private","matTooltipPosition","right",1,"mr-1"],[3,"icon"],["matTooltip","Public","matTooltipPosition","right",1,"mr-1"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-3"],["mat-cell","",1,"pl-3"],["fxLayout","row"],["fxFlex","100","fxLayoutAlign","center center",1,"font-size-80"],["mode","determinate",3,"value"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","2",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"div",2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"input",4),o.NdJ("keyup",function(){return e.applyFilter()})("ngModelChange",function(t){return e.selFilter=t}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(5,"div",5),o.YNc(6,zo,1,0,"mat-progress-bar",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,Vo,2,0,"th",10),o.YNc(11,Wo,7,8,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,Ko,2,0,"th",10),o.YNc(14,jo,2,1,"td",11),o.BQk(),o.ynx(15,13),o.YNc(16,tl,2,0,"th",10),o.YNc(17,el,4,4,"td",11),o.BQk(),o.ynx(18,14),o.YNc(19,nl,2,0,"th",15),o.YNc(20,al,4,4,"td",11),o.BQk(),o.ynx(21,16),o.YNc(22,il,2,0,"th",15),o.YNc(23,sl,4,4,"td",11),o.BQk(),o.ynx(24,17),o.YNc(25,ol,2,0,"th",18),o.YNc(26,ll,6,4,"td",19),o.BQk(),o.ynx(27,20),o.YNc(28,rl,6,0,"th",21),o.YNc(29,cl,8,0,"td",22),o.BQk(),o.ynx(30,23),o.YNc(31,pl,4,3,"td",24),o.BQk(),o.YNc(32,gl,1,3,"tr",25),o.YNc(33,fl,1,0,"tr",26),o.YNc(34,xl,1,0,"tr",27),o.qZA(),o.qZA(),o._UZ(35,"mat-paginator",28),o.qZA()),2&t&&(o.xp6(4),o.Q6J("ngModel",e.selFilter),o.xp6(2),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.channels)("ngClass",o.VKq(11,Zl,""!==e.errorMessage)),o.xp6(25),o.Q6J("matFooterRowDef",o.DdM(13,yl)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,O.KE,xt.Nt,ft.Fj,ft.JJ,ft.On,M.$V,a.O5,pt.BZ,mt.YE,a.mk,S.oO,pt.w1,pt.fO,pt.Dz,pt.mD,pt.Ke,pt.as,pt.nj,dt.NW,r.pW,pt.ge,mt.nU,pt.ev,a.PC,S.Zl,U.gM,A.BN,O.bx,At.gD,At.$L,Ct.ey,pt.yh,pt.Q2,pt.XQ,pt.Gk],pipes:[a.rS,a.JJ],styles:[".mat-column-state[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-state[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-alias[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-alias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-balancedness[_ngcontent-%COMP%]{padding-left:3rem;flex:0 0 20%;width:20%}.mat-column-shortChannelId[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{flex:1 1 15%;width:15%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width:37.5em){.mat-column-shortChannelId[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{white-space:unset}}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 100%}@media only screen and (max-width:37.5em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 80%}}"]}),t})();function Cl(t,e){if(1&t&&(o.TgZ(0,"div",5),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.errorMessage)}}function Tl(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",6),o._UZ(1,"div",7),o.TgZ(2,"mat-form-field",8),o.TgZ(3,"input",9),o.NdJ("ngModelChange",function(e){return o.CHM(t),o.oxw().filterValue=e})("input",function(){return o.CHM(t),o.oxw().applyFilter()})("keyup",function(){return o.CHM(t),o.oxw().applyFilter()}),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(3),o.Q6J("ngModel",t.filterValue)}}function wl(t,e){1&t&&o._UZ(0,"mat-progress-bar",32)}function Sl(t,e){1&t&&(o.TgZ(0,"th",33),o._uU(1,"Date/Time"),o.qZA())}function vl(t,e){if(1&t&&(o.TgZ(0,"td",34),o._uU(1),o.ALo(2,"date"),o.qZA()),2&t){const t=e.$implicit;o.xp6(1),o.Oqu(o.xi3(2,1,null==t?null:t.timestamp,"dd/MMM/YYYY HH:mm"))}}function ql(t,e){1&t&&(o.TgZ(0,"th",33),o._uU(1,"In Channel"),o.qZA())}const bl=function(t){return{"max-width":t}};function Ll(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,bl,n.screenSize===n.screenSizeEnum.XS?"10rem":"20rem")),o.xp6(1),o.Oqu(null==t?null:t.fromChannelAlias)}}function Fl(t,e){1&t&&(o.TgZ(0,"th",33),o._uU(1,"Out Channel"),o.qZA())}function Il(t,e){if(1&t&&(o.TgZ(0,"td",35),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,bl,n.screenSize===n.screenSizeEnum.XS?"10rem":"20rem")),o.xp6(1),o.Oqu(null==t?null:t.toChannelAlias)}}function Nl(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1,"Amount In (Sats)"),o.qZA())}function _l(t,e){if(1&t&&(o.TgZ(0,"td",34),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,null==t?null:t.amountIn))}}function Dl(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1,"Amount Out (Sats)"),o.qZA())}function kl(t,e){if(1&t&&(o.TgZ(0,"td",34),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,null==t?null:t.amountOut))}}function Ol(t,e){1&t&&(o.TgZ(0,"th",36),o._uU(1,"Fee Earned (Sats)"),o.qZA())}function Ul(t,e){if(1&t&&(o.TgZ(0,"td",34),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,(null==t?null:t.amountIn)-(null==t?null:t.amountOut)))}}function Rl(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"th",38),o.TgZ(1,"div",39),o.TgZ(2,"mat-select",40),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",41),o.NdJ("click",function(){return o.CHM(t),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Ml(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"td",42),o.TgZ(1,"button",43),o.NdJ("click",function(e){const n=o.CHM(t).$implicit;return o.oxw(2).onForwardingEventClick(n,e)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function Jl(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No forwarding history available."),o.qZA())}function Pl(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting forwarding history..."),o.qZA())}function El(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function Yl(t,e){if(1&t&&(o.TgZ(0,"td",44),o.YNc(1,Jl,2,0,"p",45),o.YNc(2,Pl,2,0,"p",45),o.YNc(3,El,2,1,"p",45),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.ERROR)}}const Ql=function(t){return{"display-none":t}};function Bl(t,e){if(1&t&&o._UZ(0,"tr",46),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,Ql,(null==t.forwardingHistoryEvents?null:t.forwardingHistoryEvents.data)&&(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)>0))}}function Hl(t,e){1&t&&o._UZ(0,"tr",47)}function zl(t,e){1&t&&o._UZ(0,"tr",48)}const Vl=function(){return["no_event"]};function Gl(t,e){if(1&t&&(o.TgZ(0,"div",10),o.YNc(1,wl,1,0,"mat-progress-bar",11),o.TgZ(2,"table",12,13),o.ynx(4,14),o.YNc(5,Sl,2,0,"th",15),o.YNc(6,vl,3,4,"td",16),o.BQk(),o.ynx(7,17),o.YNc(8,ql,2,0,"th",15),o.YNc(9,Ll,2,4,"td",18),o.BQk(),o.ynx(10,19),o.YNc(11,Fl,2,0,"th",15),o.YNc(12,Il,2,4,"td",18),o.BQk(),o.ynx(13,20),o.YNc(14,Nl,2,0,"th",21),o.YNc(15,_l,4,3,"td",16),o.BQk(),o.ynx(16,22),o.YNc(17,Dl,2,0,"th",21),o.YNc(18,kl,4,3,"td",16),o.BQk(),o.ynx(19,23),o.YNc(20,Ol,2,0,"th",21),o.YNc(21,Ul,4,3,"td",16),o.BQk(),o.ynx(22,24),o.YNc(23,Rl,6,0,"th",25),o.YNc(24,Ml,3,0,"td",26),o.BQk(),o.ynx(25,27),o.YNc(26,Yl,4,3,"td",28),o.BQk(),o.YNc(27,Bl,1,3,"tr",29),o.YNc(28,Hl,1,0,"tr",30),o.YNc(29,zl,1,0,"tr",31),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.forwardingHistoryEvents),o.xp6(25),o.Q6J("matFooterRowDef",o.DdM(6,Vl)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns)}}function $l(t,e){if(1&t&&o._UZ(0,"mat-paginator",49),2&t){const t=o.oxw();o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let Xl=(()=>{class t{constructor(t,e,n,a){this.logger=t,this.commonService=e,this.store=n,this.datePipe=a,this.eventsData=[],this.filterValue="",this.displayedColumns=[],this.flgSticky=!1,this.pageSize=g.IV,this.pageSizeOptions=g.TJ,this.screenSize="",this.screenSizeEnum=g.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.flgSticky=!1,this.displayedColumns=["timestamp","amountIn","actions"]):this.screenSize===g.cu.SM?(this.flgSticky=!1,this.displayedColumns=["timestamp","amountIn","fee","actions"]):this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["timestamp","amountIn","amountOut","fee","actions"]):(this.flgSticky=!0,this.displayedColumns=["timestamp","fromChannelAlias","toChannelAlias","amountIn","amountOut","fee","actions"])}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.eventsData.length<=0&&(this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchPayments.status===g.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPayments.message?JSON.stringify(this.apisCallStatus.FetchPayments.message):this.apisCallStatus.FetchPayments.message),this.eventsData=t.payments&&t.payments.relayed?t.payments.relayed:[],this.eventsData.length>0&&this.sort&&this.paginator&&this.loadForwardingEventsTable(this.eventsData),this.logger.info(this.eventsData))})}ngAfterViewInit(){this.eventsData.length>0&&this.loadForwardingEventsTable(this.eventsData)}ngOnChanges(t){t.eventsData&&(this.eventsData=t.eventsData.currentValue,t.eventsData.firstChange||this.loadForwardingEventsTable(this.eventsData)),t.filterValue&&!t.filterValue.firstChange&&this.applyFilter()}onForwardingEventClick(t,e){const n=[[{key:"paymentHash",value:t.paymentHash,title:"Payment Hash",width:100,type:g.Gi.STRING}],[{key:"timestamp",value:Math.round(t.timestamp/1e3),title:"Date/Time",width:50,type:g.Gi.DATE_TIME},{key:"fee",value:t.amountIn-t.amountOut,title:"Fee Earned (Sats)",width:50,type:g.Gi.NUMBER}],[{key:"amountIn",value:t.amountIn,title:"Amount In (Sats)",width:50,type:g.Gi.NUMBER},{key:"amountOut",value:t.amountOut,title:"Amount Out (Sats)",width:50,type:g.Gi.NUMBER}],[{key:"fromChannelAlias",value:t.fromChannelAlias,title:"From Channel Alias",width:50,type:g.Gi.STRING},{key:"fromShortChannelId",value:t.fromShortChannelId,title:"From Short Channel ID",width:50,type:g.Gi.STRING}],[{key:"fromChannelId",value:t.fromChannelId,title:"From Channel Id",width:100,type:g.Gi.STRING}],[{key:"toChannelAlias",value:t.toChannelAlias,title:"To Channel Alias",width:50,type:g.Gi.STRING},{key:"toShortChannelId",value:t.toShortChannelId,title:"To Short Channel ID",width:50,type:g.Gi.STRING}],[{key:"toChannelId",value:t.toChannelId,title:"To Channel Id",width:100,type:g.Gi.STRING}]];this.store.dispatch(new Ft.wu({data:{type:g.n_.INFORMATION,alertTitle:"Event Information",message:n}}))}loadForwardingEventsTable(t){this.forwardingHistoryEvents=new pt.by([...t]),this.forwardingHistoryEvents.sort=this.sort,this.forwardingHistoryEvents.sortingDataAccessor=(t,e)=>{switch(e){case"fee":return t.amountIn-t.amountOut;default:return t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null}},this.forwardingHistoryEvents.filterPredicate=(t,e)=>((t.timestamp?this.datePipe.transform(new Date(t.timestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(t).toLowerCase()).includes(e),this.forwardingHistoryEvents.paginator=this.paginator,this.logger.info(this.forwardingHistoryEvents)}onDownloadCSV(){this.forwardingHistoryEvents&&this.forwardingHistoryEvents.data&&this.forwardingHistoryEvents.data.length>0&&this.commonService.downloadFile(this.forwardingHistoryEvents.data,"Forwarding-history")}applyFilter(){this.forwardingHistoryEvents&&(this.forwardingHistoryEvents.filter=this.filterValue.trim().toLowerCase())}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(y.v),o.Y36(x.yh),o.Y36(a.uU))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-forwarding-history"]],viewQuery:function(t,e){if(1&t&&(o.Gf(mt.YE,5),o.Gf(dt.NW,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sort=t.first),o.iGM(t=o.CRH())&&(e.paginator=t.first)}},inputs:{eventsData:"eventsData",filterValue:"filterValue"},features:[o._Bn([{provide:dt.ye,useValue:(0,g.pt)("Events")}]),o.TTD],decls:5,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","class","page-sub-title-container",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100","class","table-container",3,"perfectScrollbar",4,"ngIf"],["class","mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","ngModelChange","input","keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","timestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","fromChannelAlias"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","toChannelAlias"],["matColumnDef","amountIn"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","amountOut"],["matColumnDef","fee"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,Cl,2,1,"div",1),o.YNc(2,Tl,4,1,"div",2),o.YNc(3,Gl,30,7,"div",3),o.YNc(4,$l,1,3,"mat-paginator",4),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf",""!==e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage))},directives:[l.xw,l.Wh,a.O5,l.yH,O.KE,xt.Nt,ft.Fj,ft.JJ,ft.On,M.$V,pt.BZ,mt.YE,pt.w1,pt.fO,pt.Dz,pt.mD,pt.Ke,pt.as,pt.nj,r.pW,pt.ge,mt.nU,pt.ev,a.PC,S.Zl,At.gD,At.$L,Ct.ey,v.lW,pt.yh,pt.Q2,a.mk,S.oO,pt.XQ,pt.Gk,dt.NW],pipes:[a.uU,a.JJ],styles:[".mat-column-fromAlias[_ngcontent-%COMP%]{padding-left:2rem}.mat-column-fromAlias[_ngcontent-%COMP%], .mat-column-toAlias[_ngcontent-%COMP%]{flex:1 1 20%;width:20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-toAlias[_ngcontent-%COMP%]{padding-left:1rem}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();const Wl=["tableIn"],Kl=["tableOut"],jl=["paginatorIn"],tr=["paginatorOut"];function er(t,e){if(1&t&&(o.TgZ(0,"div",3),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.errorMessage)}}function nr(t,e){1&t&&o._UZ(0,"mat-progress-bar",36)}function ar(t,e){1&t&&(o.TgZ(0,"th",37),o._uU(1,"Channel ID"),o.qZA())}const ir=function(t){return{"max-width":t}};function sr(t,e){if(1&t&&(o.TgZ(0,"td",38),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,ir,n.screenSize===n.screenSizeEnum.XS?"5rem":"10rem")),o.xp6(1),o.Oqu(t.channelId)}}function or(t,e){1&t&&(o.TgZ(0,"th",37),o._uU(1,"Peer Alias"),o.qZA())}function lr(t,e){if(1&t&&(o.TgZ(0,"td",38),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,ir,n.screenSize===n.screenSizeEnum.XS?"5rem":"10rem")),o.xp6(1),o.Oqu(t.alias)}}function rr(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1,"Events"),o.qZA())}function cr(t,e){if(1&t&&(o.TgZ(0,"td",40),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.events))}}function ur(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1,"Amount (Sats)"),o.qZA())}function dr(t,e){if(1&t&&(o.TgZ(0,"td",40),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.totalAmount))}}function mr(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1,"Fee (Sats)"),o.qZA())}function pr(t,e){if(1&t&&(o.TgZ(0,"td",40),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.totalFee))}}function hr(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No incoming routing peer available."),o.qZA())}function gr(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting incoming routing peers..."),o.qZA())}function fr(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function xr(t,e){if(1&t&&(o.TgZ(0,"td",42),o.YNc(1,hr,2,0,"p",43),o.YNc(2,gr,2,0,"p",43),o.YNc(3,fr,2,1,"p",43),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.ERROR)}}const Zr=function(t){return{"display-none":t}};function yr(t,e){if(1&t&&o._UZ(0,"tr",44),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,Zr,(null==t.RoutingPeersIncoming?null:t.RoutingPeersIncoming.data)&&(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)>0))}}function Ar(t,e){1&t&&o._UZ(0,"tr",45)}function Cr(t,e){1&t&&o._UZ(0,"tr",46)}function Tr(t,e){1&t&&o._UZ(0,"mat-progress-bar",36)}function wr(t,e){1&t&&(o.TgZ(0,"th",37),o._uU(1,"Channel ID"),o.qZA())}function Sr(t,e){if(1&t&&(o.TgZ(0,"td",38),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,ir,n.screenSize===n.screenSizeEnum.XS?"5rem":"10rem")),o.xp6(1),o.Oqu(t.channelId)}}function vr(t,e){1&t&&(o.TgZ(0,"th",37),o._uU(1,"Peer Alias"),o.qZA())}function qr(t,e){if(1&t&&(o.TgZ(0,"td",38),o._uU(1),o.qZA()),2&t){const t=e.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,ir,n.screenSize===n.screenSizeEnum.XS?"5rem":"10rem")),o.xp6(1),o.Oqu(t.alias)}}function br(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1,"Events"),o.qZA())}function Lr(t,e){if(1&t&&(o.TgZ(0,"td",40),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.events))}}function Fr(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1,"Amount (Sats)"),o.qZA())}function Ir(t,e){if(1&t&&(o.TgZ(0,"td",40),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.totalAmount))}}function Nr(t,e){1&t&&(o.TgZ(0,"th",39),o._uU(1,"Fee (Sats)"),o.qZA())}function _r(t,e){if(1&t&&(o.TgZ(0,"td",40),o.TgZ(1,"span",41),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&t){const t=e.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,t.totalFee))}}function Dr(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"No outgoing routing peer available."),o.qZA())}function kr(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Getting outgoing routing peers..."),o.qZA())}function Or(t,e){if(1&t&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&t){const t=o.oxw(3);o.xp6(1),o.Oqu(t.errorMessage)}}function Ur(t,e){if(1&t&&(o.TgZ(0,"td",42),o.YNc(1,Dr,2,0,"p",43),o.YNc(2,kr,2,0,"p",43),o.YNc(3,Or,2,1,"p",43),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.ERROR)}}function Rr(t,e){if(1&t&&o._UZ(0,"tr",44),2&t){const t=o.oxw(2);o.Q6J("ngClass",o.VKq(1,Zr,(null==t.RoutingPeersOutgoing?null:t.RoutingPeersOutgoing.data)&&(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)>0))}}function Mr(t,e){1&t&&o._UZ(0,"tr",45)}function Jr(t,e){1&t&&o._UZ(0,"tr",46)}const Pr=function(t,e){return{"mt-2":t,"mt-1":e}},Er=function(){return["no_incoming_event"]},Yr=function(t){return{"mt-2":t}},Qr=function(){return["no_outgoing_event"]};function Br(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",4),o.TgZ(1,"div",5),o.TgZ(2,"div",6),o.TgZ(3,"div",7),o._uU(4,"Incoming"),o.qZA(),o.TgZ(5,"mat-form-field",8),o.TgZ(6,"input",9),o.NdJ("keyup",function(e){return o.CHM(t),o.oxw().applyIncomingFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(7,"div",10),o.YNc(8,nr,1,0,"mat-progress-bar",11),o.TgZ(9,"table",12,13),o.ynx(11,14),o.YNc(12,ar,2,0,"th",15),o.YNc(13,sr,2,4,"td",16),o.BQk(),o.ynx(14,17),o.YNc(15,or,2,0,"th",15),o.YNc(16,lr,2,4,"td",16),o.BQk(),o.ynx(17,18),o.YNc(18,rr,2,0,"th",19),o.YNc(19,cr,4,3,"td",20),o.BQk(),o.ynx(20,21),o.YNc(21,ur,2,0,"th",19),o.YNc(22,dr,4,3,"td",20),o.BQk(),o.ynx(23,22),o.YNc(24,mr,2,0,"th",19),o.YNc(25,pr,4,3,"td",20),o.BQk(),o.ynx(26,23),o.YNc(27,xr,4,3,"td",24),o.BQk(),o.YNc(28,yr,1,3,"tr",25),o.YNc(29,Ar,1,0,"tr",26),o.YNc(30,Cr,1,0,"tr",27),o.qZA(),o.qZA(),o._UZ(31,"mat-paginator",28,29),o.qZA(),o.TgZ(33,"div",30),o.TgZ(34,"div",6),o.TgZ(35,"div",7),o._uU(36,"Outgoing"),o.qZA(),o.TgZ(37,"mat-form-field",8),o.TgZ(38,"input",9),o.NdJ("keyup",function(e){return o.CHM(t),o.oxw().applyOutgoingFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(39,"div",31),o.YNc(40,Tr,1,0,"mat-progress-bar",11),o.TgZ(41,"table",32,33),o.ynx(43,14),o.YNc(44,wr,2,0,"th",15),o.YNc(45,Sr,2,4,"td",16),o.BQk(),o.ynx(46,17),o.YNc(47,vr,2,0,"th",15),o.YNc(48,qr,2,4,"td",16),o.BQk(),o.ynx(49,18),o.YNc(50,br,2,0,"th",19),o.YNc(51,Lr,4,3,"td",20),o.BQk(),o.ynx(52,21),o.YNc(53,Fr,2,0,"th",19),o.YNc(54,Ir,4,3,"td",20),o.BQk(),o.ynx(55,22),o.YNc(56,Nr,2,0,"th",19),o.YNc(57,_r,4,3,"td",20),o.BQk(),o.ynx(58,34),o.YNc(59,Ur,4,3,"td",24),o.BQk(),o.YNc(60,Rr,1,3,"tr",25),o.YNc(61,Mr,1,0,"tr",26),o.YNc(62,Jr,1,0,"tr",27),o.qZA(),o._UZ(63,"mat-paginator",28,35),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(2),o.Q6J("ngClass",o.WLB(20,Pr,t.screenSize===t.screenSizeEnum.XS,t.screenSize===t.screenSizeEnum.SM)),o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.RoutingPeersIncoming),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(23,Er)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS),o.xp6(3),o.Q6J("ngClass",o.VKq(24,Yr,t.screenSize!==t.screenSizeEnum.LG)),o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPayments.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.RoutingPeersOutgoing),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(26,Qr)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let Hr=(()=>{class t{constructor(t,e,n){this.logger=t,this.commonService=e,this.store=n,this.routingPeersData=[],this.displayedColumns=[],this.flgSticky=!1,this.pageSize=g.IV,this.pageSizeOptions=g.TJ,this.screenSize="",this.screenSizeEnum=g.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=g.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===g.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","totalFee"]):this.screenSize===g.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","events","totalFee"]):this.screenSize===g.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","events","totalAmount","totalFee"]):(this.flgSticky=!0,this.displayedColumns=["channelId","alias","events","totalAmount","totalFee"])}ngOnInit(){this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.FetchPayments.status===g.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPayments.message?JSON.stringify(this.apisCallStatus.FetchPayments.message):this.apisCallStatus.FetchPayments.message),this.routingPeersData=t.payments&&t.payments.relayed?t.payments.relayed:[],this.routingPeersData.length>0&&this.sortIn&&this.paginatorIn&&this.sortOut&&this.paginatorOut&&this.loadRoutingPeersTable(this.routingPeersData),this.logger.info(t)})}ngAfterViewInit(){this.routingPeersData.length>0&&this.sortIn&&this.paginatorIn&&this.sortOut&&this.paginatorOut&&this.loadRoutingPeersTable(this.routingPeersData)}loadRoutingPeersTable(t){if(t.length>0){const e=this.groupRoutingPeers(t);this.RoutingPeersIncoming=new pt.by(e[0]),this.RoutingPeersIncoming.sort=this.sortIn,this.RoutingPeersIncoming.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.RoutingPeersIncoming.paginator=this.paginatorIn,this.logger.info(this.RoutingPeersIncoming),this.RoutingPeersOutgoing=new pt.by(e[1]),this.RoutingPeersOutgoing.sort=this.sortOut,this.RoutingPeersOutgoing.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.RoutingPeersOutgoing.paginator=this.paginatorOut,this.logger.info(this.RoutingPeersOutgoing)}else this.RoutingPeersIncoming=new pt.by([]),this.RoutingPeersOutgoing=new pt.by([])}groupRoutingPeers(t){const e=[],n=[];return t.forEach(t=>{const a=e.find(e=>e.channelId===t.fromChannelId),i=n.find(e=>e.channelId===t.toChannelId);a?(a.events++,a.totalAmount=+a.totalAmount+ +t.amountIn,a.totalFee=t.amountIn-t.amountOut+ +a.totalFee):e.push({channelId:t.fromChannelId,alias:t.fromChannelAlias,events:1,totalAmount:+t.amountIn,totalFee:t.amountIn-t.amountOut}),i?(i.events++,i.totalAmount=+i.totalAmount+ +t.amountOut,i.totalFee=t.amountIn-t.amountOut+ +i.totalFee):n.push({channelId:t.toChannelId,alias:t.toChannelAlias,events:1,totalAmount:+t.amountOut,totalFee:t.amountIn-t.amountOut})}),[this.commonService.sortDescByKey(e,"totalFee"),this.commonService.sortDescByKey(n,"totalFee")]}applyIncomingFilter(t){this.RoutingPeersIncoming.filter=t.value.trim().toLowerCase()}applyOutgoingFilter(t){this.RoutingPeersOutgoing.filter=t.value.trim().toLowerCase()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(y.v),o.Y36(x.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-routing-peers"]],viewQuery:function(t,e){if(1&t&&(o.Gf(Wl,5,mt.YE),o.Gf(Kl,5,mt.YE),o.Gf(jl,5),o.Gf(tr,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.sortIn=t.first),o.iGM(t=o.CRH())&&(e.sortOut=t.first),o.iGM(t=o.CRH())&&(e.paginatorIn=t.first),o.iGM(t=o.CRH())&&(e.paginatorOut=t.first)}},features:[o._Bn([{provide:dt.ye,useValue:(0,g.pt)("Peers")}])],decls:3,vars:2,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between stretch","class","page-sub-title-container",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between stretch",1,"page-sub-title-container"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start stretch",1,"mb-4"],["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"page-sub-title-container","w-100",3,"ngClass"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start start","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",1,"overflow-auto","incoming-table",3,"dataSource"],["tableIn",""],["matColumnDef","channelId"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","events"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","totalAmount"],["matColumnDef","totalFee"],["matColumnDef","no_incoming_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["paginatorIn",""],["fxLayout","column","fxFlex","49","fxLayoutAlign","end stretch",1,"mb-4"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","matSort","",1,"overflow-auto","outgoing-table",3,"dataSource"],["tableOut",""],["matColumnDef","no_outgoing_event"],["paginatorOut",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,er,2,1,"div",1),o.YNc(2,Br,65,27,"div",2),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngIf",""!==e.errorMessage),o.xp6(1),o.Q6J("ngIf",""===e.errorMessage))},directives:[l.xw,l.Wh,a.O5,l.yH,a.mk,S.oO,O.KE,xt.Nt,M.$V,pt.BZ,mt.YE,pt.w1,pt.fO,pt.Dz,pt.mD,pt.Ke,pt.as,pt.nj,dt.NW,r.pW,pt.ge,mt.nU,pt.ev,a.PC,S.Zl,pt.yh,pt.Q2,pt.XQ,pt.Gk],pipes:[a.JJ],styles:[".mat-column-alias[_ngcontent-%COMP%], .mat-column-channelId[_ngcontent-%COMP%]{flex:1 1 10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),t})();function zr(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",7),o.NdJ("click",function(){const e=o.CHM(t).$implicit;return o.oxw().activeLink=e.link}),o._uU(1),o.qZA()}if(2&t){const t=e.$implicit,n=o.oxw();o.s9C("routerLink",t.link),o.Q6J("active",n.activeLink===t.link),o.xp6(1),o.Oqu(t.name)}}let Vr=(()=>{class t{constructor(t){this.router=t,this.faChartBar=h.koM,this.links=[{link:"routingfees",name:"Routing Fees"},{link:"transactions",name:"Transactions"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,m.R)(this.unSubs[0]),(0,ut.h)(t=>t instanceof i.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(i.F0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-reports"]],decls:10,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Reports"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o.TgZ(7,"nav",5),o.YNc(8,zr,2,3,"div",6),o.qZA(),o._UZ(9,"router-outlet"),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("icon",e.faChartBar),o.xp6(7),o.Q6J("ngForOf",e.links))},directives:[l.xw,l.Wh,A.BN,T.a8,T.dn,ct.BU,a.sg,i.lC,ct.Nj,i.rH],styles:[""]}),t})();var Gr=n(4833),$r=n(4018),Xr=n(1905);function Wr(t,e){if(1&t&&(o.TgZ(0,"div",8),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&t){const t=o.oxw();o.Q6J("@fadeIn",t.totalFeeSat),o.xp6(1),o.AsE("",o.xi3(2,3,t.totalFeeSat||0,"1.0-2")," Sats/",o.lcZ(3,6,t.filteredEventsBySelectedPeriod.length||0)," Events")}}function Kr(t,e){1&t&&(o.TgZ(0,"div",9),o._uU(1,"No fee report for the selected period"),o.qZA())}function jr(t,e){if(1&t&&(o.TgZ(0,"span"),o.TgZ(1,"span",12),o._uU(2),o.ALo(3,"number"),o.qZA(),o.TgZ(4,"span",12),o._uU(5),o.ALo(6,"number"),o.qZA(),o.qZA()),2&t){const t=e.model;o.xp6(2),o.hij("Events: ",o.lcZ(3,2,t.extra.totalEvents||0),""),o.xp6(3),o.hij("Fee: ",o.xi3(6,4,t.value||0,"1.0-2"),"")}}function tc(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"ngx-charts-bar-vertical",10),o.NdJ("select",function(e){return o.CHM(t),o.oxw().onChartBarSelected(e)})("mouseup",function(e){return o.CHM(t),o.oxw().onChartMouseUp(e)}),o.YNc(1,jr,7,7,"ng-template",null,11,o.W1O),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("view",t.view)("results",t.feeReportData)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",t.showYAxisLabel)("xAxisLabel",t.xAxisLabel)("yAxisLabel",t.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)}}function ec(t,e){if(1&t&&o._UZ(0,"rtl-ecl-forwarding-history",13),2&t){const t=o.oxw();o.Q6J("eventsData",t.filteredEventsBySelectedPeriod)("filterValue",t.eventFilterValue)}}let nc=(()=>{class t{constructor(t,e,n){this.logger=t,this.commonService=e,this.store=n,this.reportPeriod=g.op[0],this.secondsInADay=86400,this.events=[],this.filteredEventsBySelectedPeriod=[],this.eventFilterValue="",this.totalFeeSat=null,this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.feeReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Fee (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=g.cu,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===g.cu.XS||this.screenSize===g.cu.SM),this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.events=t.payments&&t.payments.relayed?t.payments.relayed:[],this.filterForwardingEvents(this.startDate,this.endDate),this.logger.info(t)})}ngAfterContentInit(){const t=this.commonService.getContainerSize();switch(this.screenSize){case g.cu.MD:this.screenPaddingX=t.width/10;break;case g.cu.LG:this.screenPaddingX=t.width/16;break;default:this.screenPaddingX=t.width/20}this.view=[t.width-this.screenPaddingX,t.height/2.2]}filterForwardingEvents(t,e){const n=Math.round(t.getTime()/1e3),a=Math.round(e.getTime()/1e3);this.logger.info("Filtering Forwarding Events Starting at "+new Date(Date.now()).toLocaleString()+" From "+t.toLocaleString()+" To "+e.toLocaleString()),this.filteredEventsBySelectedPeriod=[],this.feeReportData=[],this.totalFeeSat=null,this.events&&this.events.length>0&&(this.events.forEach(t=>{Math.floor(t.timestamp/1e3)>=n&&Math.floor(t.timestamp/1e3)0&&"ngx-charts"===t.srcElement.classList[0]&&(this.eventFilterValue="")}onChartBarSelected(t){this.eventFilterValue=this.reportPeriod===g.op[1]?t.name+"/"+this.startDate.getFullYear():t.name.toString().padStart(2,"0")+"/"+g.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}prepareFeeReport(t){const e=Math.round(t.getTime()/1e3),n=[];if(this.logger.info("Fee Report Prepare Starting at "+new Date(Date.now()).toLocaleString()+" From "+t.toLocaleString()),this.reportPeriod===g.op[1]){for(let t=0;t<12;t++)n.push({name:g.gg[t].name,value:1e-9,extra:{totalEvents:0}});this.filteredEventsBySelectedPeriod.map(t=>{const e=new Date(t.timestamp).getMonth();return n[e].value=n[e].value+(t.amountIn-t.amountOut),n[e].extra.totalEvents=n[e].extra.totalEvents+1,this.totalFeeSat=(this.totalFeeSat?this.totalFeeSat:0)+(t.amountIn-t.amountOut),this.filteredEventsBySelectedPeriod})}else{for(let e=0;e{const a=Math.floor((Math.floor(t.timestamp/1e3)-e)/this.secondsInADay);return n[a].value=n[a].value+(t.amountIn-t.amountOut),n[a].extra.totalEvents=n[a].extra.totalEvents+1,this.totalFeeSat=(this.totalFeeSat?this.totalFeeSat:0)+(t.amountIn-t.amountOut),this.filteredEventsBySelectedPeriod})}return this.logger.info("Fee Report Prepare Finished at "+new Date(Date.now()).toLocaleString()),n}onSelectionChange(t){const e=t.selDate.getMonth(),n=t.selDate.getFullYear();this.reportPeriod=t.selScrollRange,this.reportPeriod===g.op[1]?(this.startDate=new Date(n,0,1,0,0,0),this.endDate=new Date(n,11,31,23,59,59)):(this.startDate=new Date(n,e,1,0,0,0),this.endDate=new Date(n,e,this.getMonthDays(e,n),23,59,59)),this.filterForwardingEvents(this.startDate,this.endDate),this.eventFilterValue=""}getMonthDays(t,e){return 1===t&&e%4==0?g.gg[t].days+1:g.gg[t].days}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(f.mQ),o.Y36(y.v),o.Y36(x.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-fee-report"]],hostBindings:function(t,e){1&t&&o.NdJ("mouseup",function(t){return e.onChartMouseUp(t)})},decls:9,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],[1,"mt-1"],["class","one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup",4,"ngIf"],[3,"eventsData","filterValue",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],[1,"one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"eventsData","filterValue"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"rtl-horizontal-scroller",1),o.NdJ("stepChanged",function(t){return e.onSelectionChange(t)}),o.qZA(),o.TgZ(2,"div",2),o.YNc(3,Wr,4,8,"div",3),o.YNc(4,Kr,2,0,"div",4),o.TgZ(5,"div",5),o.YNc(6,tc,3,11,"ngx-charts-bar-vertical",6),o.qZA(),o.TgZ(7,"div",5),o.YNc(8,ec,1,2,"rtl-ecl-forwarding-history",7),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Q6J("ngIf",e.feeReportData.length>0&&e.filteredEventsBySelectedPeriod.length>0),o.xp6(1),o.Q6J("ngIf",e.feeReportData.length<=0||e.filteredEventsBySelectedPeriod.length<=0),o.xp6(2),o.Q6J("ngIf",e.feeReportData.length>0&&e.filteredEventsBySelectedPeriod.length>0),o.xp6(2),o.Q6J("ngIf",e.filteredEventsBySelectedPeriod.length>0))},directives:[l.xw,l.Wh,l.yH,$r.D,a.O5,Xr.K$,Xl],pipes:[a.JJ],styles:[""],data:{animation:[Gr.J]}}),t})();var ac=n(6590);function ic(t,e){if(1&t&&(o.TgZ(0,"div",10),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.AsE(" Paid ",o.xi3(2,2,t.transactionsReportSummary.amountPaidSelectedPeriod||0,"1.0-2")," Sats/",o.lcZ(3,5,t.transactionsReportSummary.paymentsSelectedPeriod)," Payments ")}}function sc(t,e){if(1&t&&(o.TgZ(0,"div",10),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.AsE(" Received ",o.xi3(2,2,t.transactionsReportSummary.amountReceivedSelectedPeriod||0,"1.0-2")," Sats/",o.lcZ(3,5,t.transactionsReportSummary.invoicesSelectedPeriod)," Invoices ")}}function oc(t,e){if(1&t&&(o.TgZ(0,"div",8),o.YNc(1,ic,4,7,"div",9),o.YNc(2,sc,4,7,"div",9),o.qZA()),2&t){const t=o.oxw();o.Q6J("@fadeIn",t.transactionsReportSummary),o.xp6(1),o.Q6J("ngIf",t.transactionsReportSummary.paymentsSelectedPeriod),o.xp6(1),o.Q6J("ngIf",t.transactionsReportSummary.invoicesSelectedPeriod)}}function lc(t,e){1&t&&(o.TgZ(0,"div",11),o._uU(1,"No transactions report for the selected period"),o.qZA())}function rc(t,e){if(1&t&&(o.TgZ(0,"span",14),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&t){const t=e.model;o.xp6(1),o.HOy("",t.name,": ",o.xi3(2,4,t.value||0,"1.0-2"),"/# ","Paid"===t.name?"Payments":"Invoices",": ",o.lcZ(3,7,(null==t.extra?null:t.extra.total)||0),"")}}function cc(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"ngx-charts-bar-vertical-2d",12),o.NdJ("select",function(e){return o.CHM(t),o.oxw().onChartBarSelected(e)})("mouseup",function(e){return o.CHM(t),o.oxw().onChartMouseUp(e)}),o.YNc(1,rc,4,9,"ng-template",null,13,o.W1O),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("view",t.view)("results",t.transactionsReportData)("noBarWhenZero",!1)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",t.showYAxisLabel)("xAxisLabel",t.xAxisLabel)("yAxisLabel",t.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)("groupPadding",t.reportPeriod===t.scrollRanges[0]?2:8)}}function uc(t,e){if(1&t&&o._UZ(0,"rtl-transactions-report-table",15),2&t){const t=o.oxw();o.Q6J("dataList",t.transactionsNonZeroReportData)("dataRange",t.reportPeriod)("filterValue",t.transactionFilterValue)}}let dc=(()=>{class t{constructor(t,e){this.commonService=t,this.store=e,this.scrollRanges=g.op,this.reportPeriod=g.op[0],this.secondsInADay=86400,this.payments=[],this.invoices=[],this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0},this.transactionFilterValue="",this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.transactionsReportData=[],this.transactionsNonZeroReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Amount (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=g.cu,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===g.cu.XS||this.screenSize===g.cu.SM),this.store.select("ecl").pipe((0,m.R)(this.unSubs[0])).subscribe(t=>{this.payments=t.payments.sent?t.payments.sent:[],this.invoices=t.invoices?t.invoices:[],(this.payments.length>0||this.invoices.length>0)&&(this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData())})}ngAfterContentInit(){const t=this.commonService.getContainerSize();switch(this.screenSize){case g.cu.MD:this.screenPaddingX=t.width/10;break;case g.cu.LG:this.screenPaddingX=t.width/16;break;default:this.screenPaddingX=t.width/20}this.view=[t.width-this.screenPaddingX,t.height/2.2]}onChartMouseUp(t){"svg"===t.srcElement.tagName&&t.srcElement.classList.length>0&&"ngx-charts"===t.srcElement.classList[0]&&(this.transactionFilterValue="")}onChartBarSelected(t){this.transactionFilterValue=this.reportPeriod===g.op[1]?t.series.toString()+"/"+this.startDate.getFullYear():t.series.toString().padStart(2,"0")+"/"+g.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}filterTransactionsForSelectedPeriod(t,e){const n=Math.round(t.getTime()/1e3),a=Math.round(e.getTime()/1e3),i=[];this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0};const s=this.payments.filter(t=>Math.floor(t.firstPartTimestamp/1e3)>=n&&Math.floor(t.firstPartTimestamp/1e3)"received"===t.status&&t.timestamp>=n&&t.timestamp{const e=new Date(t.firstPartTimestamp).getMonth();return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+t.recipientAmount,i[e].series[0].value=i[e].series[0].value+t.recipientAmount,i[e].series[0].extra.total=i[e].series[0].extra.total+1,this.transactionsReportSummary}),o.map(t=>{const e=new Date(1e3*t.timestamp).getMonth();return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+t.amountSettled,i[e].series[1].value=i[e].series[1].value+t.amountSettled,i[e].series[1].extra.total=i[e].series[1].extra.total+1,this.transactionsReportSummary})}else{for(let e=0;e{const e=Math.floor((Math.floor(t.firstPartTimestamp/1e3)-n)/this.secondsInADay);return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+t.recipientAmount,i[e].series[0].value=i[e].series[0].value+t.recipientAmount,i[e].series[0].extra.total=i[e].series[0].extra.total+1,this.transactionsReportSummary}),o.map(t=>{const e=Math.floor((t.timestamp-n)/this.secondsInADay);return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+t.amountSettled,i[e].series[1].value=i[e].series[1].value+t.amountSettled,i[e].series[1].extra.total=i[e].series[1].extra.total+1,this.transactionsReportSummary})}return i}prepareTableData(){return this.transactionsReportData.reduce((t,e)=>e.series[0].extra.total>0||e.series[1].extra.total>0?t.concat({date:e.date,amount_paid:e.series[0].value,num_payments:e.series[0].extra.total,amount_received:e.series[1].value,num_invoices:e.series[1].extra.total}):t,[])}onSelectionChange(t){const e=t.selDate.getMonth(),n=t.selDate.getFullYear();this.reportPeriod=t.selScrollRange,this.reportPeriod===g.op[1]?(this.startDate=new Date(n,0,1,0,0,0),this.endDate=new Date(n,11,31,23,59,59)):(this.startDate=new Date(n,e,1,0,0,0),this.endDate=new Date(n,e,this.getMonthDays(e,n),23,59,59)),this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData(),this.transactionFilterValue=""}getMonthDays(t,e){return 1===t&&e%4==0?g.gg[t].days+1:g.gg[t].days}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(y.v),o.Y36(x.yh))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-transactions-report"]],hostBindings:function(t,e){1&t&&o.NdJ("mouseup",function(t){return e.onChartMouseUp(t)})},decls:9,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],[1,"mt-1"],["class","two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup",4,"ngIf"],[3,"dataList","dataRange","filterValue",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],[1,"two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"dataList","dataRange","filterValue"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"rtl-horizontal-scroller",1),o.NdJ("stepChanged",function(t){return e.onSelectionChange(t)}),o.qZA(),o.TgZ(2,"div",2),o.YNc(3,oc,3,3,"div",3),o.YNc(4,lc,2,0,"div",4),o.TgZ(5,"div",5),o.YNc(6,cc,3,13,"ngx-charts-bar-vertical-2d",6),o.qZA(),o.TgZ(7,"div",5),o.YNc(8,uc,1,3,"rtl-transactions-report-table",7),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(3),o.Q6J("ngIf",e.transactionsNonZeroReportData.length>0),o.xp6(1),o.Q6J("ngIf",e.transactionsNonZeroReportData.length<=0),o.xp6(2),o.Q6J("ngIf",e.transactionsNonZeroReportData.length>0),o.xp6(2),o.Q6J("ngIf",e.transactionsNonZeroReportData.length>0))},directives:[l.xw,l.Wh,l.yH,$r.D,a.O5,Xr.H5,ac.g],pipes:[a.JJ],styles:[""],data:{animation:[Gr.J]}}),t})();var mc=n(6013),pc=n(8016);const hc=i.Bz.forChild([{path:"",component:u,children:[{path:"",pathMatch:"full",redirectTo:"home"},{path:"home",component:Vn,canActivate:[mc.fY]},{path:"onchain",component:Ia,canActivate:[mc.fY],children:[{path:"",pathMatch:"full",redirectTo:"receive"},{path:"receive",component:ri,canActivate:[mc.fY]},{path:"send",component:ci,canActivate:[mc.fY]}]},{path:"connections",component:ka,canActivate:[mc.fY],children:[{path:"",pathMatch:"full",redirectTo:"channels"},{path:"channels",component:Ni,canActivate:[mc.fY],children:[{path:"",pathMatch:"full",redirectTo:"open"},{path:"open",component:As,canActivate:[mc.fY]},{path:"pending",component:Ys,canActivate:[mc.fY]},{path:"inactive",component:Al,canActivate:[mc.fY]}]},{path:"peers",component:No,data:{sweepAll:!1},canActivate:[mc.fY]}]},{path:"transactions",component:Ua,canActivate:[mc.fY],children:[{path:"",pathMatch:"full",redirectTo:"payments"},{path:"payments",component:An,canActivate:[mc.fY]},{path:"invoices",component:ce,canActivate:[mc.fY]},{path:"queryroutes",component:Ho,canActivate:[mc.fY]}]},{path:"routing",component:Ma,canActivate:[mc.fY],children:[{path:"",pathMatch:"full",redirectTo:"forwardinghistory"},{path:"forwardinghistory",component:Xl,canActivate:[mc.fY]},{path:"peers",component:Hr,canActivate:[mc.fY]}]},{path:"reports",component:Vr,canActivate:[mc.fY],children:[{path:"",pathMatch:"full",redirectTo:"routingfees"},{path:"routingfees",component:nc,canActivate:[mc.fY]},{path:"transactions",component:dc,canActivate:[mc.fY]}]},{path:"lookups",component:oi,canActivate:[mc.fY]},{path:"**",component:pc.w}]}]);var gc=n(253);let fc=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=o.oAB({type:t,bootstrap:[u]}),t.\u0275inj=o.cJS({providers:[mc.fY],imports:[[a.ez,gc.m,hc]]}),t})()}}]); \ No newline at end of file diff --git a/angular/891.426afa0ec2d9096e8da5.js b/angular/891.426afa0ec2d9096e8da5.js deleted file mode 100644 index 9aaeeaab..00000000 --- a/angular/891.426afa0ec2d9096e8da5.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkrtl=self.webpackChunkrtl||[]).push([[891],{7891:(e,t,n)=>{"use strict";n.r(t),n.d(t,{LNDModule:()=>qg});var a=n(1511),i=n(6853),s=n(2865),o=n(1572),l=n(3722),r=n(5994);function c(e,t){1&e&&o._UZ(0,"mat-progress-bar",3)}let u=(()=>{class e{constructor(e){this.router=e,this.loading=!1,this.router.events.subscribe(e=>{switch(!0){case e instanceof i.OD:this.loading=!0;break;case e instanceof i.m2:case e instanceof i.gk:case e instanceof i.Q3:this.loading=!1}})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-lnd-root"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"inner-sidenav-content"],["color","primary","mode","indeterminate",4,"ngIf"],["outlet","outlet"],["color","primary","mode","indeterminate"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.YNc(1,c,1,0,"mat-progress-bar",1),o._UZ(2,"router-outlet",null,2),o.qZA()),2&e&&(o.xp6(1),o.Q6J("ngIf",t.loading))},directives:[l.xw,l.yH,l.Wh,a.O5,i.lC,r.pW],styles:[""],data:{animation:[s.g]}}),e})();var p=n(9666),d=n(9568),h=n(8868),m=n(7810),g=n(5291),f=n(9421),x=n(5678),Z=n(3869),y=n(964),A=n(5573),C=n(1084),T=n(7592),b=n(7271),w=n(7439),_=n(8055),v=n(377),q=n(5980),S=n(3691);const F=function(e){return{backgroundColor:e}};function L(e,t){if(1&e&&o._UZ(0,"span",6),2&e){const e=o.oxw();o.Q6J("ngStyle",o.VKq(1,F,null==e.information?null:e.information.color))}}function k(e,t){if(1&e&&(o.TgZ(0,"div"),o.TgZ(1,"h4",1),o._uU(2,"Color"),o.qZA(),o.TgZ(3,"div",2),o._UZ(4,"span",7),o._uU(5),o.ALo(6,"uppercase"),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(4),o.Q6J("ngStyle",o.VKq(4,F,null==e.information?null:e.information.color)),o.xp6(1),o.hij(" ",o.lcZ(6,2,null==e.information?null:e.information.color)," ")}}function N(e,t){if(1&e&&(o.TgZ(0,"span",2),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(e)}}let U=(()=>{class e{constructor(e){this.commonService=e,this.chains=[""]}ngOnChanges(){this.information&&this.information.chains&&this.information.chains.length>0&&(this.chains=[""],this.information.chains.forEach(e=>{this.chains.push(this.commonService.titleCase(e.chain)+" "+this.commonService.titleCase(e.network))}))}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(C.v))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-node-info"]],inputs:{information:"information",showColorFieldSeparately:"showColorFieldSeparately"},features:[o.TTD],decls:17,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["class","dashboard-node-dot dot",3,"ngStyle",4,"ngIf"],[4,"ngIf"],["class","overflow-wrap dashboard-info-value",4,"ngFor","ngForOf"],[1,"dashboard-node-dot","dot",3,"ngStyle"],[1,"dashboard-node-square",3,"ngStyle"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div"),o.TgZ(2,"h4",1),o._uU(3,"Alias"),o.qZA(),o.TgZ(4,"div",2),o._uU(5),o.YNc(6,L,1,3,"span",3),o.qZA(),o.qZA(),o.YNc(7,k,7,6,"div",4),o.TgZ(8,"div"),o.TgZ(9,"h4",1),o._uU(10,"Implementation"),o.qZA(),o.TgZ(11,"div",2),o._uU(12),o.qZA(),o.qZA(),o.TgZ(13,"div"),o.TgZ(14,"h4",1),o._uU(15,"Chain"),o.qZA(),o.YNc(16,N,2,1,"span",5),o.qZA(),o.qZA()),2&e&&(o.xp6(5),o.hij(" ",null==t.information?null:t.information.alias," "),o.xp6(1),o.Q6J("ngIf",!t.showColorFieldSeparately),o.xp6(1),o.Q6J("ngIf",t.showColorFieldSeparately),o.xp6(5),o.Oqu(null!=t.information&&t.information.lnImplementation||null!=t.information&&t.information.version?(null==t.information?null:t.information.lnImplementation)+" "+(null==t.information?null:t.information.version):""),o.xp6(4),o.Q6J("ngForOf",t.chains))},directives:[l.xw,l.yH,l.Wh,a.O5,a.sg,a.PC,v.Zl],pipes:[a.gd],styles:[""]}),e})();function I(e,t){if(1&e&&(o.TgZ(0,"div",2),o.TgZ(1,"div"),o.TgZ(2,"h4",3),o._uU(3,"Lightning"),o.qZA(),o.TgZ(4,"div",4),o._uU(5),o.ALo(6,"number"),o.qZA(),o._UZ(7,"mat-progress-bar",5),o.qZA(),o.TgZ(8,"div"),o.TgZ(9,"h4",3),o._uU(10,"On-chain"),o.qZA(),o.TgZ(11,"div",4),o._uU(12),o.ALo(13,"number"),o.qZA(),o._UZ(14,"mat-progress-bar",5),o.qZA(),o.TgZ(15,"div"),o.TgZ(16,"h4",3),o._uU(17,"Total"),o.qZA(),o.TgZ(18,"div",4),o._uU(19),o.ALo(20,"number"),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(5),o.hij("",o.lcZ(6,5,null==e.balances?null:e.balances.lightning)," Sats"),o.xp6(2),o.s9C("value",(null==e.balances?null:e.balances.lightning)/(null==e.balances?null:e.balances.total)*100),o.xp6(5),o.hij("",o.lcZ(13,7,null==e.balances?null:e.balances.onchain)," Sats"),o.xp6(2),o.s9C("value",(null==e.balances?null:e.balances.onchain)/(null==e.balances?null:e.balances.total)*100),o.xp6(5),o.hij("",o.lcZ(20,9,null==e.balances?null:e.balances.total)," Sats")}}function O(e,t){if(1&e&&(o.TgZ(0,"div",6),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.Oqu(e.errorMessage)}}let J=(()=>{class e{constructor(){this.balances={onchain:0,lightning:0,total:0}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-balances-info"]],inputs:{balances:"balances",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,t){if(1&e&&(o.YNc(0,I,21,11,"div",0),o.YNc(1,O,3,1,"ng-template",null,1,o.W1O)),2&e){const e=o.MAs(2);o.Q6J("ngIf"," "===t.errorMessage)("ngIfElse",e)}},directives:[a.O5,l.xw,l.yH,l.Wh,r.pW],pipes:[a.JJ],styles:[""]}),e})();var D=n(6283),R=n(6828),M=n(7679),E=n(7038);function Q(e,t){if(1&e&&(o.TgZ(0,"div",19),o.TgZ(1,"span",20),o._uU(2),o.ALo(3,"slice"),o.qZA(),o.TgZ(4,"div",6),o.TgZ(5,"mat-hint",21),o.TgZ(6,"strong",8),o._uU(7,"Local:"),o.qZA(),o._uU(8),o.ALo(9,"number"),o.qZA(),o.TgZ(10,"mat-hint",22),o._UZ(11,"fa-icon",23),o._uU(12),o.ALo(13,"number"),o.qZA(),o.TgZ(14,"mat-hint",24),o.TgZ(15,"strong",8),o._uU(16,"Remote:"),o.qZA(),o._uU(17),o.ALo(18,"number"),o.qZA(),o.qZA(),o._UZ(19,"mat-progress-bar",25),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(3);o.xp6(1),o.s9C("matTooltip",e.remote_alias||e.remote_pubkey),o.s9C("matTooltipDisabled",(e.remote_alias||e.remote_pubkey).length<26),o.xp6(1),o.AsE("",o.Dn7(3,9,e.remote_alias||e.remote_pubkey,0,24),"",(e.remote_alias||e.remote_pubkey).length>25?"...":"",""),o.xp6(6),o.hij("",o.lcZ(9,13,e.local_balance||0)," Sats"),o.xp6(3),o.Q6J("icon",n.faBalanceScale),o.xp6(1),o.hij(" (",o.lcZ(13,15,e.balancedness||0),") "),o.xp6(5),o.hij("",o.lcZ(18,17,e.remote_balance||0)," Sats"),o.xp6(2),o.s9C("value",e.local_balance&&e.local_balance>0?+e.local_balance/(+e.local_balance+ +e.remote_balance)*100:0)}}function Y(e,t){if(1&e&&(o.TgZ(0,"div",17),o.YNc(1,Q,20,19,"div",18),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngForOf",e.allChannels)}}function P(e,t){if(1&e&&(o.TgZ(0,"div",3),o.TgZ(1,"div",4),o.TgZ(2,"span",5),o._uU(3,"Total Capacity"),o.qZA(),o.TgZ(4,"div",6),o.TgZ(5,"mat-hint",7),o.TgZ(6,"strong",8),o._uU(7,"Local:"),o.qZA(),o._uU(8),o.ALo(9,"number"),o.qZA(),o.TgZ(10,"mat-hint",9),o._UZ(11,"fa-icon",10),o._uU(12),o.ALo(13,"number"),o.qZA(),o.TgZ(14,"mat-hint",11),o.TgZ(15,"strong",8),o._uU(16,"Remote:"),o.qZA(),o._uU(17),o.ALo(18,"number"),o.qZA(),o.qZA(),o._UZ(19,"mat-progress-bar",12),o.qZA(),o.TgZ(20,"div",13),o._UZ(21,"mat-divider",14),o.qZA(),o.TgZ(22,"div",15),o.YNc(23,Y,2,1,"div",16),o.qZA(),o.qZA()),2&e){const e=o.oxw(),t=o.MAs(2);o.xp6(8),o.hij("",o.lcZ(9,7,(null==e.channelBalances?null:e.channelBalances.localBalance)||0)," Sats"),o.xp6(3),o.Q6J("icon",e.faBalanceScale),o.xp6(1),o.hij(" (",o.lcZ(13,9,(null==e.channelBalances?null:e.channelBalances.balancedness)||0),") "),o.xp6(5),o.hij("",o.lcZ(18,11,(null==e.channelBalances?null:e.channelBalances.remoteBalance)||0)," Sats"),o.xp6(2),o.s9C("value",null!=e.channelBalances&&e.channelBalances.localBalance&&(null==e.channelBalances?null:e.channelBalances.localBalance)>0?+(null==e.channelBalances?null:e.channelBalances.localBalance)/(+(null==e.channelBalances?null:e.channelBalances.localBalance)+ +(null==e.channelBalances?null:e.channelBalances.remoteBalance))*100:0),o.xp6(4),o.Q6J("ngIf",e.allChannels&&e.allChannels.length>0)("ngIfElse",t)}}function B(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",26),o._uU(1," No channels available. "),o.TgZ(2,"button",27),o.NdJ("click",function(){return o.CHM(e),o.oxw().goToChannels()}),o._uU(3,"Open Channel"),o.qZA(),o.qZA()}}function G(e,t){if(1&e&&(o.TgZ(0,"div",28),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.Oqu(e.errorMessage)}}let H=(()=>{class e{constructor(e){this.router=e,this.faBalanceScale=g.DL8,this.faDumbbell=g.FlN,this.sortBy="Balance Score"}goToChannels(){this.router.navigateByUrl("/lnd/connections")}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-capacity-info"]],inputs:{channelBalances:"channelBalances",allChannels:"allChannels",sortBy:"sortBy",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90"],[1,"font-weight-900","mr-5px"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90"],["matTooltip","Balance Score",1,"mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90"],["mode","determinate","color","accent",1,"dashboard-progress-bar","this-channel-bar",3,"value"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],[1,"channels-capacity-scroll",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90","color-primary"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90","color-primary"],["matTooltip","Balance Score",1,"color-primary","mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90","color-primary"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start",1,"mt-1","w-100"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,t){if(1&e&&(o.YNc(0,P,24,13,"div",0),o.YNc(1,B,4,0,"ng-template",null,1,o.W1O),o.YNc(3,G,3,1,"ng-template",null,2,o.W1O)),2&e){const e=o.MAs(4);o.Q6J("ngIf",""===(null==t.errorMessage?null:t.errorMessage.trim()))("ngIfElse",e)}},directives:[a.O5,l.xw,l.Wh,l.yH,D.bx,T.BN,R.gM,r.pW,M.d,E.$V,a.sg,q.lW],pipes:[a.JJ,a.OU],styles:[".channels-capacity-scroll[_ngcontent-%COMP%]{width:100%;height:100%;overflow-y:hidden}"]}),e})();function z(e,t){if(1&e&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o.TgZ(2,"div"),o.TgZ(3,"h4",4),o._uU(4,"Daily"),o.qZA(),o.TgZ(5,"div",5),o._uU(6),o.ALo(7,"number"),o.qZA(),o.qZA(),o.TgZ(8,"div"),o.TgZ(9,"h4",4),o._uU(10,"Weekly"),o.qZA(),o.TgZ(11,"div",5),o._uU(12),o.ALo(13,"number"),o.qZA(),o.qZA(),o.TgZ(14,"div"),o.TgZ(15,"h4",4),o._uU(16,"Monthly"),o.qZA(),o.TgZ(17,"div",5),o._uU(18),o.ALo(19,"number"),o.qZA(),o.qZA(),o.TgZ(20,"div",6),o._UZ(21,"h4",7),o._UZ(22,"span",5),o.qZA(),o.qZA(),o.TgZ(23,"div",3),o.TgZ(24,"div"),o.TgZ(25,"h4",4),o._uU(26,"Transactions"),o.qZA(),o.TgZ(27,"div",5),o._uU(28),o.ALo(29,"number"),o.qZA(),o.qZA(),o.TgZ(30,"div"),o.TgZ(31,"h4",4),o._uU(32,"Transactions"),o.qZA(),o.TgZ(33,"div",5),o._uU(34),o.ALo(35,"number"),o.qZA(),o.qZA(),o.TgZ(36,"div"),o.TgZ(37,"h4",4),o._uU(38,"Transactions"),o.qZA(),o.TgZ(39,"div",5),o._uU(40),o.ALo(41,"number"),o.qZA(),o.qZA(),o.TgZ(42,"div",6),o._UZ(43,"h4",7),o._UZ(44,"span",5),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(6),o.hij("",o.lcZ(7,6,null==e.fees?null:e.fees.day_fee_sum)," Sats"),o.xp6(6),o.hij("",o.lcZ(13,8,null==e.fees?null:e.fees.week_fee_sum)," Sats"),o.xp6(6),o.hij("",o.lcZ(19,10,null==e.fees?null:e.fees.month_fee_sum)," Sats"),o.xp6(10),o.Oqu(o.lcZ(29,12,null==e.fees?null:e.fees.daily_tx_count)),o.xp6(6),o.Oqu(o.lcZ(35,14,null==e.fees?null:e.fees.weekly_tx_count)),o.xp6(6),o.Oqu(o.lcZ(41,16,null==e.fees?null:e.fees.monthly_tx_count))}}function V(e,t){if(1&e&&(o.TgZ(0,"div",8),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.Oqu(e.errorMessage)}}let W=(()=>{class e{constructor(){this.totalFees=[{name:"Monthly",value:0},{name:"Weekly",value:0},{name:"Daily",value:0}],this.maxFeeValue=100}ngOnChanges(){if(this.fees.month_fee_sum){this.totalFees=[{name:"Monthly",value:this.fees.month_fee_sum},{name:"Weekly",value:this.fees.week_fee_sum},{name:"Daily ",value:this.fees.day_fee_sum}];const e=Math.ceil(Math.log(this.fees.month_fee_sum+1)/Math.LN10),t=Math.pow(10,e-1);this.maxFeeValue=Math.ceil(this.fees.month_fee_sum/t)*t/5||100,Object.assign(this,this.totalFees)}else this.totalFees=[{name:"Monthly",value:0},{name:"Weekly",value:0},{name:"Daily",value:0}],this.maxFeeValue=100,Object.assign(this,this.totalFees)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-fee-info"]],inputs:{fees:"fees",errorMessage:"errorMessage"},features:[o.TTD],decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["fxFlex","20"],[1,"dashboard-info-title"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,t){if(1&e&&(o.YNc(0,z,45,18,"div",0),o.YNc(1,V,3,1,"ng-template",null,1,o.W1O)),2&e){const e=o.MAs(2);o.Q6J("ngIf",""===(null==t.errorMessage?null:t.errorMessage.trim()))("ngIfElse",e)}},directives:[a.O5,l.xw,l.yH,l.Wh],pipes:[a.JJ],styles:[""]}),e})();function X(e,t){if(1&e&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o.TgZ(2,"div"),o.TgZ(3,"h4",4),o._uU(4,"Active"),o.qZA(),o.TgZ(5,"div",5),o._UZ(6,"span",6),o._uU(7),o.ALo(8,"number"),o.qZA(),o.qZA(),o.TgZ(9,"div"),o.TgZ(10,"h4",4),o._uU(11,"Pending"),o.qZA(),o.TgZ(12,"div",5),o._UZ(13,"span",7),o._uU(14),o.ALo(15,"number"),o.qZA(),o.qZA(),o.TgZ(16,"div"),o.TgZ(17,"h4",4),o._uU(18,"Inactive"),o.qZA(),o.TgZ(19,"div",5),o._UZ(20,"span",8),o._uU(21),o.ALo(22,"number"),o.qZA(),o.qZA(),o.TgZ(23,"div"),o.TgZ(24,"h4",4),o._uU(25,"Closing"),o.qZA(),o.TgZ(26,"div",5),o._UZ(27,"span",9),o._uU(28),o.ALo(29,"number"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(30,"div",3),o.TgZ(31,"div"),o.TgZ(32,"h4",4),o._uU(33,"Capacity"),o.qZA(),o.TgZ(34,"div",5),o._uU(35),o.ALo(36,"number"),o.qZA(),o.qZA(),o.TgZ(37,"div"),o.TgZ(38,"h4",4),o._uU(39,"Capacity"),o.qZA(),o.TgZ(40,"div",5),o._uU(41),o.ALo(42,"number"),o.qZA(),o.qZA(),o.TgZ(43,"div"),o.TgZ(44,"h4",4),o._uU(45,"Capacity"),o.qZA(),o.TgZ(46,"div",5),o._uU(47),o.ALo(48,"number"),o.qZA(),o.qZA(),o.TgZ(49,"div"),o.TgZ(50,"h4",4),o._uU(51,"Capacity"),o.qZA(),o.TgZ(52,"div",5),o._uU(53),o.ALo(54,"number"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(7),o.Oqu(o.lcZ(8,8,(null==e.channelsStatus||null==e.channelsStatus.active?null:e.channelsStatus.active.channels)||0)),o.xp6(7),o.Oqu(o.lcZ(15,10,(null==e.channelsStatus||null==e.channelsStatus.pending?null:e.channelsStatus.pending.channels)||0)),o.xp6(7),o.Oqu(o.lcZ(22,12,(null==e.channelsStatus||null==e.channelsStatus.inactive?null:e.channelsStatus.inactive.channels)||0)),o.xp6(7),o.Oqu(o.lcZ(29,14,(null==e.channelsStatus||null==e.channelsStatus.closing?null:e.channelsStatus.closing.channels)||0)),o.xp6(7),o.hij("",o.lcZ(36,16,(null==e.channelsStatus||null==e.channelsStatus.active?null:e.channelsStatus.active.capacity)||0)," Sats"),o.xp6(6),o.hij("",o.lcZ(42,18,(null==e.channelsStatus||null==e.channelsStatus.pending?null:e.channelsStatus.pending.capacity)||0)," Sats"),o.xp6(6),o.hij("",o.lcZ(48,20,(null==e.channelsStatus||null==e.channelsStatus.inactive?null:e.channelsStatus.inactive.capacity)||0)," Sats"),o.xp6(6),o.hij("",o.lcZ(54,22,(null==e.channelsStatus||null==e.channelsStatus.closing?null:e.channelsStatus.closing.capacity)||0)," Sats")}}function $(e,t){if(1&e&&(o.TgZ(0,"div",10),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.Oqu(e.errorMessage)}}let j=(()=>{class e{constructor(){this.channelsStatus={}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-status-info"]],inputs:{channelsStatus:"channelsStatus",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],[1,"dot","tiny-dot","green"],[1,"dot","tiny-dot","yellow"],[1,"dot","tiny-dot","grey"],[1,"dot","tiny-dot","red"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,t){if(1&e&&(o.YNc(0,X,55,24,"div",0),o.YNc(1,$,3,1,"ng-template",null,1,o.W1O)),2&e){const e=o.MAs(2);o.Q6J("ngIf"," "===t.errorMessage)("ngIfElse",e)}},directives:[a.O5,l.xw,l.yH,l.Wh],pipes:[a.JJ],styles:[""]}),e})();var K=n(5028),ee=n(3929),te=n(2969);function ne(e,t){if(1&e&&(o.TgZ(0,"mat-hint",19),o.TgZ(1,"strong",20),o._uU(2,"Capacity: "),o.qZA(),o._uU(3),o.ALo(4,"number"),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(3),o.hij("",o.lcZ(4,1,e.remote_balance||0)," Sats")}}function ae(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",24),o.NdJ("click",function(){o.CHM(e);const t=o.oxw(2).$implicit;return o.oxw(3).onLoopOut(t)}),o._uU(1,"Loop Out"),o.qZA()}}function ie(e,t){if(1&e&&(o.TgZ(0,"div",21),o.TgZ(1,"mat-hint",22),o.TgZ(2,"strong",20),o._uU(3,"Capacity: "),o.qZA(),o._uU(4),o.ALo(5,"number"),o.qZA(),o.YNc(6,ae,2,0,"button",23),o.qZA()),2&e){const e=o.oxw().$implicit,t=o.oxw(3);o.xp6(4),o.hij("",o.lcZ(5,2,e.local_balance||0)," Sats"),o.xp6(2),o.Q6J("ngIf",t.showLoop)}}function se(e,t){if(1&e&&o._UZ(0,"mat-progress-bar",25),2&e){const e=o.oxw().$implicit,t=o.oxw(3);o.s9C("value",t.totalLiquidity>0?(+e.remote_balance||0)/t.totalLiquidity*100:0)}}function oe(e,t){if(1&e&&o._UZ(0,"mat-progress-bar",25),2&e){const e=o.oxw().$implicit,t=o.oxw(3);o.s9C("value",t.totalLiquidity>0?(+e.local_balance||0)/t.totalLiquidity*100:0)}}function le(e,t){if(1&e&&(o.TgZ(0,"div",13),o.TgZ(1,"span",14),o._uU(2),o.ALo(3,"slice"),o.qZA(),o.TgZ(4,"div",15),o.YNc(5,ne,5,3,"mat-hint",16),o.YNc(6,ie,7,4,"div",17),o.qZA(),o.YNc(7,se,1,1,"mat-progress-bar",18),o.YNc(8,oe,1,1,"mat-progress-bar",18),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(3);o.xp6(1),o.s9C("matTooltip",e.remote_alias||e.remote_pubkey),o.s9C("matTooltipDisabled",(e.remote_alias||e.remote_pubkey).length<26),o.xp6(1),o.AsE("",o.Dn7(3,8,e.remote_alias||e.remote_pubkey,0,24),"",(e.remote_alias||e.remote_pubkey).length>25?"...":"",""),o.xp6(3),o.Q6J("ngIf","In"===n.direction),o.xp6(1),o.Q6J("ngIf","Out"===n.direction),o.xp6(1),o.Q6J("ngIf","In"===n.direction),o.xp6(1),o.Q6J("ngIf","Out"===n.direction)}}function re(e,t){if(1&e&&(o.TgZ(0,"div",11),o.YNc(1,le,9,12,"div",12),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngForOf",e.allChannels)}}const ce=function(e,t,n){return{"mb-4":e,"mb-2":t,"mb-1":n}};function ue(e,t){if(1&e&&(o.TgZ(0,"div",3),o.TgZ(1,"div",4),o.TgZ(2,"span",5),o._uU(3,"Total Capacity"),o.qZA(),o.TgZ(4,"mat-hint",6),o._uU(5),o.ALo(6,"number"),o.qZA(),o._UZ(7,"mat-progress-bar",7),o.qZA(),o.TgZ(8,"div",8),o._UZ(9,"mat-divider",9),o.qZA(),o.YNc(10,re,2,1,"div",10),o.qZA()),2&e){const e=o.oxw(),t=o.MAs(2);o.Q6J("ngClass",o.kEZ(6,ce,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM,e.screenSize===e.screenSizeEnum.MD,e.screenSize===e.screenSizeEnum.LG||e.screenSize===e.screenSizeEnum.XL)),o.xp6(5),o.hij("",o.lcZ(6,4,e.totalLiquidity)," Sats"),o.xp6(5),o.Q6J("ngIf",e.allChannels&&e.allChannels.length>0)("ngIfElse",t)}}function pe(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",28),o.NdJ("click",function(){return o.CHM(e),o.oxw(2).goToChannels()}),o._uU(1,"Open Channel"),o.qZA()}}function de(e,t){if(1&e&&(o.TgZ(0,"div",26),o._uU(1," No channels available. "),o.YNc(2,pe,2,0,"button",27),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.Q6J("ngIf","Out"===e.direction)}}function he(e,t){if(1&e&&(o.TgZ(0,"div",29),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.Oqu(e.errorMessage)}}let me=(()=>{class e{constructor(e,t,n,a){this.router=e,this.loopService=t,this.commonService=n,this.store=a,this.targetConf=6,this.screenSize="",this.screenSizeEnum=f.cu,this.unSubs=[new p.x,new p.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.showLoop=!(!e.nodeSettings.swapServerUrl||""===e.nodeSettings.swapServerUrl.trim())})}goToChannels(){this.router.navigateByUrl("/lnd/connections")}onLoopOut(e){this.loopService.getLoopOutTermsAndQuotes(this.targetConf).pipe((0,d.R)(this.unSubs[1])).subscribe(t=>{this.store.dispatch(new ee.wu({minHeight:"56rem",data:{channel:e,minQuote:t[0],maxQuote:t[1],direction:f.$I.LOOP_OUT,component:K.a}}))})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(i.F0),o.Y36(te.W),o.Y36(C.v),o.Y36(y.yh))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-liquidity-info"]],inputs:{direction:"direction",totalLiquidity:"totalLiquidity",allChannels:"allChannels",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",3,"ngClass",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",3,"ngClass"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],[1,"font-size-90"],["mode","determinate","color","accent","value","100",1,"dashboard-progress-bar","this-channel-bar"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],[3,"perfectScrollbar",4,"ngIf","ngIfElse"],[3,"perfectScrollbar"],["fxLayout","column",4,"ngFor","ngForOf"],["fxLayout","column"],[1,"dashboard-capacity-header","mt-2",3,"matTooltip","matTooltipDisabled"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start"],["class","font-size-90 color-primary",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",4,"ngIf"],["class","dashboard-progress-bar","mode","determinate",3,"value",4,"ngIf"],[1,"font-size-90","color-primary"],[1,"font-weight-900","mr-5px"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxFlex","85","fxLayoutAlign","start start",1,"font-size-90","color-primary"],["fxFlex","15","fxLayoutAlign","end start","class","button-link-dashboard","color","primary","mat-button","","aria-label","Loop Out",3,"click",4,"ngIf"],["fxFlex","15","fxLayoutAlign","end start","color","primary","mat-button","","aria-label","Loop Out",1,"button-link-dashboard",3,"click"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","1",3,"click",4,"ngIf"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,t){if(1&e&&(o.YNc(0,ue,11,10,"div",0),o.YNc(1,de,3,1,"ng-template",null,1,o.W1O),o.YNc(3,he,3,1,"ng-template",null,2,o.W1O)),2&e){const e=o.MAs(4);o.Q6J("ngIf",""===(null==t.errorMessage?null:t.errorMessage.trim()))("ngIfElse",e)}},directives:[a.O5,l.xw,l.Wh,l.yH,a.mk,v.oO,D.bx,r.pW,M.d,E.$V,a.sg,R.gM,q.lW],pipes:[a.JJ,a.OU],styles:[""]}),e})();var ge=n(5109),fe=n(3005),xe=n(2464),Ze=n(7033),ye=n(4608),Ae=n(6073),Ce=n(6756),Te=n(6880),be=n(5095),we=n(4786),_e=n(7521),ve=n(1522);function qe(e,t){if(1&e&&(o.TgZ(0,"mat-option",24),o._uU(1),o.ALo(2,"titlecase"),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e),o.xp6(1),o.Oqu(o.lcZ(2,2,e))}}function Se(e,t){if(1&e&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.invoiceError)}}function Fe(e,t){if(1&e&&(o.TgZ(0,"div",25),o._UZ(1,"fa-icon",26),o.YNc(2,Se,2,1,"span",27),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("icon",e.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==e.invoiceError)}}let Le=(()=>{class e{constructor(e,t,n,a,i,s){this.dialogRef=e,this.data=t,this.store=n,this.decimalPipe=a,this.commonService=i,this.actions=s,this.faExclamationTriangle=g.eHv,this.selNode={},this.memo="",this.invoiceValueHint="",this.invoicePaymentReq="",this.information={},this.private=!1,this.expiryStep=100,this.pageSize=f.IV,this.timeUnitEnum=f.Qk,this.timeUnits=f.LO,this.selTimeUnit=f.Qk.SECS,this.invoiceError="",this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.pageSize=this.data.pageSize,this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.selNode=e.nodeSettings,this.information=e.information}),this.actions.pipe((0,d.R)(this.unSubs[1]),(0,h.h)(e=>e.type===x.JE||e.type===x.Ov)).subscribe(e=>{e.type===x.Ov&&this.dialogRef.close(),e.type===x.JE&&e.payload.status===f.Bn.ERROR&&"SaveNewInvoice"===e.payload.action&&(this.invoiceError=e.payload.message)})}onAddInvoice(e){this.invoiceError="";let t=this.expiry?this.expiry:3600;this.selTimeUnit!==f.Qk.SECS&&(t=this.commonService.convertTime(this.expiry,this.selTimeUnit,f.Qk.SECS)),this.store.dispatch(new x.H1({uiMessage:f.m6.ADD_INVOICE,memo:this.memo,invoiceValue:this.invoiceValue,private:this.private,expiry:t,pageSize:this.pageSize,openModal:!0}))}resetData(){this.memo="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint="",this.selTimeUnit=f.Qk.SECS,this.invoiceError=""}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,f.NT.SATS,f.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,d.R)(this.unSubs[2])).subscribe({next:e=>{this.invoiceValueHint="= "+e.symbol+this.decimalPipe.transform(e.OTHER,f.Xz.OTHER)+" "+e.unit},error:e=>{this.invoiceValueHint="Conversion Error: "+e}}))}onTimeUnitChange(e){this.expiry&&this.selTimeUnit!==e.value&&(this.expiry=this.commonService.convertTime(this.expiry,this.selTimeUnit,e.value)),this.selTimeUnit=e.value}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(ye.WI),o.Y36(y.yh),o.Y36(a.JJ),o.Y36(C.v),o.Y36(A.eX))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-create-invoices"]],decls:36,vars:17,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","end start"],["matInput","","autoFocus","","placeholder","Memo","tabindex","1","name","memo",3,"ngModel","ngModelChange"],["fxFlex","50","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","2","name","invoiceValue",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxFlex","24","fxLayoutAlign","start end"],["matInput","","placeholder","Expiry","type","number","tabindex","3","name","expiry",3,"ngModel","step","min","ngModelChange"],["tabindex","4","name","timeUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",1,"mt-1"],["tabindex","4","color","primary","matTooltip","Include routing hints for private channels","name","private",3,"ngModel","matTooltipPosition","ngModelChange"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","5","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","6",3,"click"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[4,"ngIf"]],template:function(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Create Invoice"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"input",10),o.NdJ("ngModelChange",function(e){return t.memo=e}),o.qZA(),o.qZA(),o.TgZ(13,"mat-form-field",11),o.TgZ(14,"input",12),o.NdJ("ngModelChange",function(e){return t.invoiceValue=e})("keyup",function(){return t.onInvoiceValueChange()}),o.qZA(),o.TgZ(15,"span",13),o._uU(16," Sats "),o.qZA(),o.TgZ(17,"mat-hint"),o._uU(18),o.qZA(),o.qZA(),o.TgZ(19,"mat-form-field",14),o.TgZ(20,"input",15),o.NdJ("ngModelChange",function(e){return t.expiry=e}),o.qZA(),o.TgZ(21,"span",13),o._uU(22),o.ALo(23,"titlecase"),o.qZA(),o.qZA(),o.TgZ(24,"mat-form-field",14),o.TgZ(25,"mat-select",16),o.NdJ("selectionChange",function(e){return t.onTimeUnitChange(e)}),o.YNc(26,qe,3,4,"mat-option",17),o.qZA(),o.qZA(),o.TgZ(27,"div",18),o.TgZ(28,"mat-slide-toggle",19),o.NdJ("ngModelChange",function(e){return t.private=e}),o._uU(29,"Private Routing Hints"),o.qZA(),o.qZA(),o.YNc(30,Fe,3,2,"div",20),o.TgZ(31,"div",21),o.TgZ(32,"button",22),o.NdJ("click",function(){return t.resetData()}),o._uU(33,"Clear Field"),o.qZA(),o.TgZ(34,"button",23),o.NdJ("click",function(){o.CHM(e);const n=o.MAs(10);return t.onAddInvoice(n)}),o._uU(35,"Create Invoice"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()}2&e&&(o.xp6(6),o.Q6J("mat-dialog-close",!1),o.xp6(6),o.Q6J("ngModel",t.memo),o.xp6(2),o.Q6J("ngModel",t.invoiceValue)("step",100)("min",1),o.xp6(4),o.Oqu(t.invoiceValueHint),o.xp6(2),o.Q6J("ngModel",t.expiry)("step",t.selTimeUnit===t.timeUnitEnum.SECS?300:t.selTimeUnit===t.timeUnitEnum.MINS?10:t.selTimeUnit===t.timeUnitEnum.HOURS?2:1)("min",1),o.xp6(2),o.hij(" ",o.lcZ(23,15,t.selTimeUnit)," "),o.xp6(3),o.Q6J("value",t.selTimeUnit),o.xp6(1),o.Q6J("ngForOf",t.timeUnits),o.xp6(2),o.Q6J("ngModel",t.private)("matTooltipPosition","above"),o.xp6(2),o.Q6J("ngIf",""!==t.invoiceError))},directives:[l.xw,l.yH,w.dk,l.Wh,q.lW,ye.ZT,w.dn,Ae._Y,Ae.JL,Ae.F,D.KE,Ce.Nt,Ae.Fj,Te.h,Ae.JJ,Ae.On,Ae.wV,Ae.qQ,be.q,D.R9,D.bx,we.gD,a.sg,_e.Rr,R.gM,a.O5,ve.ey,T.BN],pipes:[a.rS],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),e})();var ke=n(1827),Ne=n(4636);function Ue(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"form",4,5),o.TgZ(2,"mat-form-field",6),o.TgZ(3,"input",7),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().memo=t}),o.qZA(),o.qZA(),o.TgZ(4,"mat-form-field",8),o.TgZ(5,"input",9),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().invoiceValue=t})("keyup",function(){return o.CHM(e),o.oxw().onInvoiceValueChange()}),o.qZA(),o.TgZ(6,"span",10),o._uU(7," Sats "),o.qZA(),o.TgZ(8,"mat-hint"),o._uU(9),o.qZA(),o.qZA(),o.TgZ(10,"div",11),o.TgZ(11,"button",12),o.NdJ("click",function(){return o.CHM(e),o.oxw().resetData()}),o._uU(12,"Clear Field"),o.qZA(),o.TgZ(13,"button",13),o.NdJ("click",function(){o.CHM(e);const t=o.MAs(1);return o.oxw().onAddInvoice(t)}),o._uU(14,"Create Invoice"),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(3),o.Q6J("ngModel",e.memo),o.xp6(2),o.Q6J("ngModel",e.invoiceValue)("step",100)("min",1),o.xp6(4),o.Oqu(e.invoiceValueHint)}}function Ie(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",14),o.TgZ(1,"button",15),o.NdJ("click",function(){return o.CHM(e),o.oxw().openCreateInvoiceModal()}),o._uU(2,"Create Invoice"),o.qZA(),o.qZA()}}function Oe(e,t){1&e&&o._UZ(0,"mat-progress-bar",46)}function Je(e,t){1&e&&(o.TgZ(0,"th",47),o._uU(1," Date Created "),o.qZA())}const De=function(e){return{"mr-0":e}};function Re(e,t){if(1&e&&o._UZ(0,"span",51),2&e){const e=o.oxw(3);o.Q6J("ngClass",o.VKq(1,De,e.screenSize===e.screenSizeEnum.XS))}}function Me(e,t){if(1&e&&o._UZ(0,"span",52),2&e){const e=o.oxw(3);o.Q6J("ngClass",o.VKq(1,De,e.screenSize===e.screenSizeEnum.XS))}}function Ee(e,t){if(1&e&&(o.TgZ(0,"td",48),o.YNc(1,Re,1,3,"span",49),o.YNc(2,Me,1,3,"span",50),o._uU(3),o.ALo(4,"date"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Q6J("ngIf",e.settled),o.xp6(1),o.Q6J("ngIf",!e.settled),o.xp6(1),o.hij(" ",o.xi3(4,3,1e3*e.creation_date,"dd/MMM/YYYY HH:mm"),"")}}function Qe(e,t){1&e&&(o.TgZ(0,"th",53),o._uU(1," Date Settled "),o.qZA())}function Ye(e,t){if(1&e&&(o.TgZ(0,"td",54),o._uU(1),o.ALo(2,"date"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(0!=+e.settle_date?o.xi3(2,1,1e3*+e.settle_date,"dd/MMM/YYYY HH:mm"):"-")}}function Pe(e,t){1&e&&(o.TgZ(0,"th",47),o._uU(1," Memo "),o.qZA())}const Be=function(e){return{"max-width":e}};function Ge(e,t){if(1&e&&(o.TgZ(0,"td",48),o.TgZ(1,"div",55),o.TgZ(2,"span",56),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(2);o.xp6(1),o.Q6J("ngStyle",o.VKq(2,Be,n.screenSize===n.screenSizeEnum.XS?"10rem":"22rem")),o.xp6(2),o.Oqu(e.memo)}}function He(e,t){1&e&&(o.TgZ(0,"th",57),o._uU(1," Amount (Sats) "),o.qZA())}function ze(e,t){if(1&e&&(o.TgZ(0,"td",48),o.TgZ(1,"span",58),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==e?null:e.value)," ")}}function Ve(e,t){1&e&&(o.TgZ(0,"th",57),o._uU(1," Amount Settled (Sats) "),o.qZA())}function We(e,t){if(1&e&&(o.TgZ(0,"td",48),o.TgZ(1,"span",58),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==e?null:e.amt_paid_sat)," ")}}function Xe(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"th",59),o.TgZ(1,"div",60),o.TgZ(2,"mat-select",61),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",62),o.NdJ("click",function(){return o.CHM(e),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}const $e=function(e){return{"pl-3":e}};function je(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",63),o.TgZ(1,"div",64),o.TgZ(2,"mat-select",65),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",62),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw(2).onInvoiceClick(t)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",62),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw(2).onRefreshInvoice(t)}),o._uU(7,"Refresh"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw(2);o.Q6J("ngClass",o.VKq(1,$e,e.screenSize!==e.screenSizeEnum.XS))}}function Ke(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No invoice available."),o.qZA())}function et(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting invoices..."),o.qZA())}function tt(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(3);o.xp6(1),o.Oqu(e.errorMessage)}}function nt(e,t){if(1&e&&(o.TgZ(0,"td",66),o.YNc(1,Ke,2,0,"p",67),o.YNc(2,et,2,0,"p",67),o.YNc(3,tt,2,1,"p",67),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=e.invoices&&e.invoices.data)||(null==e.invoices||null==e.invoices.data?null:e.invoices.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchInvoices.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.invoices&&e.invoices.data)||(null==e.invoices||null==e.invoices.data?null:e.invoices.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchInvoices.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.invoices&&e.invoices.data)||(null==e.invoices||null==e.invoices.data?null:e.invoices.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchInvoices.status)===e.apiCallStatusEnum.ERROR)}}const at=function(e){return{"display-none":e}};function it(e,t){if(1&e&&o._UZ(0,"tr",68),2&e){const e=o.oxw(2);o.Q6J("ngClass",o.VKq(1,at,(null==e.invoices?null:e.invoices.data)&&(null==e.invoices||null==e.invoices.data?null:e.invoices.data.length)>0))}}function st(e,t){1&e&&o._UZ(0,"tr",69)}function ot(e,t){if(1&e&&o._UZ(0,"tr",70),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("@newlyAddedRowAnimation",e.memo===n.newlyAddedInvoiceMemo&&e.value===n.newlyAddedInvoiceValue&&n.flgAnimate?"added":"notAdded")}}const lt=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}},rt=function(){return["no_invoice"]};function ct(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",16),o.TgZ(1,"div",17),o.TgZ(2,"div",18),o._UZ(3,"fa-icon",19),o.TgZ(4,"span",20),o._uU(5,"Invoices History"),o.qZA(),o.qZA(),o.TgZ(6,"mat-form-field",21),o.TgZ(7,"input",22),o.NdJ("keyup",function(t){return o.CHM(e),o.oxw().applyFilter(t.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",23),o.YNc(9,Oe,1,0,"mat-progress-bar",24),o.TgZ(10,"table",25,26),o.ynx(12,27),o.YNc(13,Je,2,0,"th",28),o.YNc(14,Ee,5,6,"td",29),o.BQk(),o.ynx(15,30),o.YNc(16,Qe,2,0,"th",31),o.YNc(17,Ye,3,4,"td",32),o.BQk(),o.ynx(18,33),o.YNc(19,Pe,2,0,"th",28),o.YNc(20,Ge,4,4,"td",29),o.BQk(),o.ynx(21,34),o.YNc(22,He,2,0,"th",35),o.YNc(23,ze,4,3,"td",29),o.BQk(),o.ynx(24,36),o.YNc(25,Ve,2,0,"th",35),o.YNc(26,We,4,3,"td",29),o.BQk(),o.ynx(27,37),o.YNc(28,Xe,6,0,"th",38),o.YNc(29,je,8,3,"td",39),o.BQk(),o.ynx(30,40),o.YNc(31,nt,4,3,"td",41),o.BQk(),o.YNc(32,it,1,3,"tr",42),o.YNc(33,st,1,0,"tr",43),o.YNc(34,ot,1,1,"tr",44),o.qZA(),o.TgZ(35,"mat-paginator",45),o.NdJ("page",function(t){return o.CHM(e),o.oxw().onPageChange(t)}),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(3),o.Q6J("icon",e.faHistory),o.xp6(6),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchInvoices.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.invoices)("ngClass",o.VKq(12,lt,""!==e.errorMessage)),o.xp6(22),o.Q6J("matFooterRowDef",o.DdM(14,rt)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("length",e.totalInvoices)("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS)}}let ut=(()=>{class e{constructor(e,t,n,a,i,s){this.logger=e,this.store=t,this.decimalPipe=n,this.commonService=a,this.datePipe=i,this.actions=s,this.calledFrom="transactions",this.faHistory=g.qO$,this.selNode={},this.newlyAddedInvoiceMemo=null,this.newlyAddedInvoiceValue=null,this.flgAnimate=!0,this.memo="",this.invoiceValueHint="",this.displayedColumns=[],this.invoicePaymentReq="",this.invoicesData=[],this.information={},this.flgSticky=!1,this.private=!1,this.expiryStep=100,this.totalInvoices=100,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.firstOffset=-1,this.lastOffset=-1,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["creation_date","value","actions"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["creation_date","settle_date","value","amt_paid_sat","actions"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["creation_date","settle_date","memo","value","actions"]):(this.flgSticky=!0,this.displayedColumns=["creation_date","settle_date","memo","value","amt_paid_sat","actions"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchInvoices.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchInvoices.message?JSON.stringify(this.apisCallStatus.FetchInvoices.message):this.apisCallStatus.FetchInvoices.message),this.selNode=e.nodeSettings,this.information=e.information,this.totalInvoices=e.totalInvoices,this.firstOffset=+e.invoices.first_index_offset,this.lastOffset=+e.invoices.last_index_offset,this.invoicesData=e.invoices.invoices?e.invoices.invoices:[],this.invoicesData.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoicesData),this.logger.info(e)}),this.actions.pipe((0,d.R)(this.unSubs[1]),(0,h.h)(e=>e.type===x.RP||e.type===x.JE)).subscribe(e=>{e.type===x.RP&&this.invoicesData.length>0&&this.sort&&this.paginator&&e.payload&&(this.updateInvoicesData(JSON.parse(JSON.stringify(e.payload))),this.loadInvoicesTable(this.invoicesData))})}ngAfterViewInit(){this.invoicesData.length>0&&this.loadInvoicesTable(this.invoicesData)}onAddInvoice(e){const t=this.expiry?this.expiry:3600;this.flgAnimate=!0,this.newlyAddedInvoiceMemo=this.memo,this.newlyAddedInvoiceValue=this.invoiceValue,this.store.dispatch(new x.H1({uiMessage:f.m6.ADD_INVOICE,memo:this.memo,invoiceValue:this.invoiceValue,private:this.private,expiry:t,pageSize:this.pageSize,openModal:!0})),this.resetData()}onInvoiceClick(e){this.store.dispatch(new ee.wu({data:{invoice:e,newlyAdded:!1,component:ke.v}}))}onRefreshInvoice(e){this.store.dispatch(new x.oP(e.r_hash))}updateInvoicesData(e){this.invoicesData=this.invoicesData.map(t=>t.r_hash===e.r_hash?e:t)}loadInvoicesTable(e){this.invoices=new Ze.by(e?[...e]:[]),this.invoices.sort=this.sort,this.invoices.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.invoices.filterPredicate=(e,t)=>((e.creation_date?this.datePipe.transform(new Date(1e3*e.creation_date),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(e.settle_date?this.datePipe.transform(new Date(1e3*e.settle_date),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(e).toLowerCase()).includes(t),setTimeout(()=>{this.flgAnimate=!1},5e3),this.logger.info(this.invoices)}resetData(){this.memo="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint=""}applyFilter(e){this.invoices.filter=e.value.trim().toLowerCase()}onPageChange(e){let t=!0,n=this.lastOffset,a=e.pageSize;0===e.pageIndex?(t=!0,n=0):e.pageIndexe.previousPageIndex&&e.length>(e.pageIndex+1)*e.pageSize?(t=!0,n=this.firstOffset):e.length<=(e.pageIndex+1)*e.pageSize&&(t=!1,n=0,a=e.length-e.pageIndex*e.pageSize),this.store.dispatch(new x._O({num_max_invoices:e.pageSize,index_offset:n,reversed:t}))}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,f.NT.SATS,f.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,d.R)(this.unSubs[2])).subscribe({next:e=>{this.invoiceValueHint="= "+e.symbol+this.decimalPipe.transform(e.OTHER,f.Xz.OTHER)+" "+e.unit},error:e=>{this.invoiceValueHint="Conversion Error: "+e}}))}onDownloadCSV(){this.invoices.data&&this.invoices.data.length>0&&this.commonService.downloadFile(this.invoices.data,"Invoices")}openCreateInvoiceModal(){this.store.dispatch(new ee.wu({data:{pageSize:this.pageSize,component:Le}}))}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(a.JJ),o.Y36(C.v),o.Y36(a.uU),o.Y36(A.eX))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-lightning-invoices"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},inputs:{calledFrom:"calledFrom"},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Invoices")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","end start"],["matInput","","placeholder","Memo","tabindex","1","name","memo",3,"ngModel","ngModelChange"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","2","name","invValue",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4",3,"click"],["fxLayout","row"],["mat-flat-button","","color","primary","tabindex","5",3,"click"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","tabindex","6","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","creation_date"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","settle_date"],["mat-header-cell","","mat-sort-header","","class","pl-4",4,"matHeaderCellDef"],["mat-cell","","class","pl-4",4,"matCellDef"],["matColumnDef","memo"],["matColumnDef","value"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","amt_paid_sat"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass",4,"matCellDef"],["matColumnDef","no_invoice"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","","class","row-invoices",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"length","pageSize","pageSizeOptions","showFirstLastButtons","page"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot green","matTooltip","Settled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Unsettled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Settled","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Unsettled","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],["mat-header-cell","","mat-sort-header","",1,"pl-4"],["mat-cell","",1,"pl-4"],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","4",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row","",1,"row-invoices"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.YNc(1,Ue,15,5,"form",1),o.YNc(2,Ie,3,0,"div",2),o.YNc(3,ct,36,15,"div",3),o.qZA()),2&e&&(o.xp6(1),o.Q6J("ngIf","home"===t.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===t.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===t.calledFrom))},directives:[l.xw,l.yH,l.Wh,a.O5,Ae._Y,Ae.JL,Ae.F,D.KE,Ce.Nt,Ae.Fj,Ae.JJ,Ae.On,Ae.wV,Ae.qQ,be.q,D.R9,D.bx,q.lW,T.BN,E.$V,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,R.gM,a.PC,v.Zl,we.gD,we.$L,ve.ey,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],pipes:[a.uU,a.JJ],styles:[".mat-column-memo[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-memo[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"],data:{animation:[Ne.Q]}}),e})();var pt=n(9056),dt=n(3556),ht=n(5001),mt=n(84);const gt=["paymentReq"];function ft(e,t){if(1&e&&(o.TgZ(0,"mat-hint"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Oqu(e.paymentDecodedHint)}}function xt(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Payment request is required."),o.qZA())}function Zt(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Oqu(e.paymentDecodedHint)}}function yt(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Payment amount is required."),o.qZA())}function At(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-form-field",1),o.TgZ(1,"input",29,30),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().paymentAmount=t})("change",function(t){return o.CHM(e),o.oxw().onAmountChange(t)}),o.qZA(),o.TgZ(3,"mat-hint"),o._uU(4,"It is a zero amount invoice, enter amount to be paid."),o.qZA(),o.YNc(5,yt,2,0,"mat-error",11),o.qZA()}if(2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngModel",e.paymentAmount),o.xp6(4),o.Q6J("ngIf",!e.paymentAmount)}}function Ct(e,t){if(1&e&&(o.TgZ(0,"mat-option",31),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e),o.xp6(1),o.hij(" ",e.name," ")}}function Tt(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("",e.selFeeLimitType.placeholder," is required.")}}function bt(e,t){if(1&e&&(o.TgZ(0,"mat-option",31),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e),o.xp6(1),o.Oqu(e.remote_alias||e.chan_id)}}function wt(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Channel not found in the list."),o.qZA())}function _t(e,t){if(1&e&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.paymentError)}}function vt(e,t){if(1&e&&(o.TgZ(0,"div",32),o._UZ(1,"fa-icon",33),o.YNc(2,_t,2,1,"span",11),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("icon",e.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==e.paymentError)}}let qt=(()=>{class e{constructor(e,t,n,a,i,s,o){this.dialogRef=e,this.store=t,this.logger=n,this.commonService=a,this.decimalPipe=i,this.actions=s,this.dataService=o,this.faExclamationTriangle=g.eHv,this.selNode={},this.paymentDecoded={},this.zeroAmtInvoice=!1,this.paymentAmount=null,this.paymentRequest="",this.paymentDecodedHint="",this.showAdvanced=!1,this.activeChannels=[],this.filteredMinAmtActvChannels=[],this.selectedChannelCtrl=new Ae.NI,this.feeLimit=null,this.selFeeLimitType=f.Vc[0],this.feeLimitTypes=f.Vc,this.advancedTitle="Advanced Options",this.paymentError="",this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.selNode=e.nodeSettings,this.activeChannels=e.allChannels.filter(e=>e.active),this.filteredMinAmtActvChannels=this.activeChannels,this.filteredMinAmtActvChannels.length&&this.filteredMinAmtActvChannels.length>0?this.selectedChannelCtrl.enable():this.selectedChannelCtrl.disable(),this.logger.info(e)}),this.actions.pipe((0,d.R)(this.unSubs[1]),(0,h.h)(e=>e.type===x.JE||e.type===x.ug)).subscribe(e=>{e.type===x.ug&&this.dialogRef.close(),e.type===x.JE&&e.payload.status===f.Bn.ERROR&&"SendPayment"===e.payload.action&&(delete this.paymentDecoded.num_satoshis,this.paymentError=e.payload.message)});let e="",t="";this.activeChannels=this.activeChannels.sort((n,a)=>(e=n.remote_alias?n.remote_alias.toLowerCase():n.chan_id?n.chan_id.toLowerCase():"",t=a.remote_alias?a.remote_alias.toLowerCase():a.chan_id?a.chan_id.toLowerCase():"",et?1:0)),this.selectedChannelCtrl.valueChanges.pipe((0,d.R)(this.unSubs[2])).subscribe(e=>{"string"==typeof e&&(this.filteredMinAmtActvChannels=this.filterChannels())})}filterChannels(){return this.activeChannels.filter(e=>0===(e.remote_alias?e.remote_alias.toLowerCase():e.chan_id?e.chan_id.toLowerCase():"").indexOf(this.selectedChannelCtrl.value?this.selectedChannelCtrl.value.toLowerCase():"")&&e.local_balance>=+(this.paymentDecoded.num_satoshis?this.paymentDecoded.num_satoshis:0))}displayFn(e){return e&&e.remote_alias?e.remote_alias:e&&e.chan_id?e.chan_id:""}onSelectedChannelChanged(){if(this.selectedChannelCtrl.value&&this.selectedChannelCtrl.value.length>0&&"string"==typeof this.selectedChannelCtrl.value){const e=this.activeChannels.filter(e=>{const t=e.remote_alias?e.remote_alias.toLowerCase():e.chan_id?e.chan_id.toLowerCase():"";return t.length===this.selectedChannelCtrl.value.length&&0===t.indexOf(this.selectedChannelCtrl.value?this.selectedChannelCtrl.value.toLowerCase():"")});e&&e.length>0?(this.selectedChannelCtrl.setValue(e[0]),this.selectedChannelCtrl.setErrors(null)):this.selectedChannelCtrl.setErrors({notfound:!0})}}onSendPayment(){if(this.selectedChannelCtrl.value&&"string"==typeof this.selectedChannelCtrl.value&&this.onSelectedChannelChanged(),!this.paymentRequest||this.zeroAmtInvoice&&(!this.paymentAmount||this.paymentAmount<=0)||"string"==typeof this.selectedChannelCtrl.value)return!0;this.paymentDecoded.timestamp?this.sendPayment():this.onPaymentRequestEntry(this.paymentRequest)}sendPayment(){this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis&&(this.paymentDecoded.num_satoshis=(+this.paymentDecoded.num_msat/1e3).toString()),this.paymentDecoded.num_satoshis&&""!==this.paymentDecoded.num_satoshis&&"0"!==this.paymentDecoded.num_satoshis?(this.zeroAmtInvoice=!1,this.store.dispatch(new x.Ar({uiMessage:f.m6.SEND_PAYMENT,paymentReq:this.paymentRequest,outgoingChannel:this.selectedChannelCtrl.value,feeLimitType:{id:this.selFeeLimitType.id,name:this.selFeeLimitType.name},feeLimit:this.feeLimit,fromDialog:!0}))):(this.zeroAmtInvoice=!0,this.paymentDecoded.num_satoshis=this.paymentAmount,this.store.dispatch(new x.Ar({uiMessage:f.m6.SEND_PAYMENT,paymentReq:this.paymentRequest,paymentAmount:this.paymentAmount,outgoingChannel:this.selectedChannelCtrl.value,feeLimitType:{id:this.selFeeLimitType.id,name:this.selFeeLimitType.name},feeLimit:this.feeLimit,fromDialog:!0})))}onAmountChange(e){delete this.paymentDecoded.num_satoshis}onPaymentRequestEntry(e){this.paymentRequest=e,this.paymentAmount=null,this.paymentError="",this.paymentDecodedHint="",this.zeroAmtInvoice=!1,this.paymentRequest&&this.paymentRequest.length>100&&(this.paymentReq.control.setErrors(null),this.zeroAmtInvoice=!1,this.dataService.decodePayment(this.paymentRequest,!0).pipe((0,pt.q)(1)).subscribe({next:e=>{this.paymentDecoded=e,this.selectedChannelCtrl.setValue(null),this.onAdvancedPanelToggle(!0,!0),this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis&&(this.paymentDecoded.num_satoshis=(+this.paymentDecoded.num_msat/1e3).toString()),this.paymentDecoded.num_satoshis&&""!==this.paymentDecoded.num_satoshis&&"0"!==this.paymentDecoded.num_satoshis?(this.filteredMinAmtActvChannels=this.filterChannels(),this.filteredMinAmtActvChannels.length&&this.filteredMinAmtActvChannels.length>0?this.selectedChannelCtrl.enable():this.selectedChannelCtrl.disable(),this.zeroAmtInvoice=!1,this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.num_satoshis,f.NT.SATS,f.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,d.R)(this.unSubs[4])).subscribe({next:e=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis)+" Sats ("+e.symbol+" "+this.decimalPipe.transform(e.OTHER?e.OTHER:0,f.Xz.OTHER)+") | Memo: "+(this.paymentDecoded.description?this.paymentDecoded.description:"None")},error:e=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis)+" Sats | Memo: "+(this.paymentDecoded.description?this.paymentDecoded.description:"None")+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis)+" Sats | Memo: "+(this.paymentDecoded.description?this.paymentDecoded.description:"None")):(this.zeroAmtInvoice=!0,this.filteredMinAmtActvChannels=this.activeChannels,this.filteredMinAmtActvChannels.length&&this.filteredMinAmtActvChannels.length>0?this.selectedChannelCtrl.enable():this.selectedChannelCtrl.disable(),this.paymentDecodedHint="Memo: "+(this.paymentDecoded.description?this.paymentDecoded.description:"None"))},error:e=>{this.logger.error(e),this.paymentDecodedHint="ERROR: "+e.message,this.paymentReq.control.setErrors({decodeError:!0})}}))}onAdvancedPanelToggle(e,t){if(e&&!t){const e=this.selectedChannelCtrl.value&&this.selectedChannelCtrl.value.remote_alias?this.selectedChannelCtrl.value.remote_alias:this.selectedChannelCtrl.value&&this.selectedChannelCtrl.value.chan_id?this.selectedChannelCtrl.value.chan_id:"";this.advancedTitle="Advanced Options | "+this.selFeeLimitType.name+("none"===this.selFeeLimitType.id?"":": "+this.feeLimit)+(""!==e?" | First Outgoing Channel: "+e:"")}else this.advancedTitle="Advanced Options"}resetData(){this.paymentDecoded={},this.paymentRequest="",this.selectedChannelCtrl.setValue(null),this.filteredMinAmtActvChannels=this.activeChannels,this.filteredMinAmtActvChannels.length&&this.filteredMinAmtActvChannels.length>0?this.selectedChannelCtrl.enable():this.selectedChannelCtrl.disable(),this.feeLimit=null,this.selFeeLimitType=f.Vc[0],this.advancedTitle="Advanced Options",this.zeroAmtInvoice=!1,this.paymentReq.control.setErrors(null),this.paymentError="",this.paymentDecodedHint=""}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(y.yh),o.Y36(Z.mQ),o.Y36(C.v),o.Y36(a.JJ),o.Y36(A.eX),o.Y36(dt.D))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-lightning-send-payments"]],viewQuery:function(e,t){if(1&e&&o.Gf(gt,5),2&e){let e;o.iGM(e=o.CRH())&&(t.paymentReq=e.first)}},decls:43,vars:21,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayoutAlign","space-between stretch","fxLayout","column"],["sendPaymentForm","ngForm"],["autoFocus","","matInput","","placeholder","Payment Request","name","paymentRequest","tabindex","1","required","",3,"ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxFlex","100","expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxFlex","100","fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["fxFlex","30","fxLayoutAlign","start end"],["tabindex","5","Placeholder","Fee Limits",3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","26"],["matInput","","type","number","name","feeLmt","required","","tabindex","6",3,"ngModel","placeholder","step","min","disabled","ngModelChange"],["fLmt","ngModel"],["fxFlex","40","fxLayoutAlign","start end"],["type","text","placeholder","First Outgoing Channel","aria-label","First Outgoing Channel","matInput","","tabindex","7",3,"formControl","matAutocomplete"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","required","",3,"ngModel","ngModelChange","change"],["paymentAmt","ngModel"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(e,t){if(1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Send Payment"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.TgZ(11,"mat-form-field",1),o.TgZ(12,"textarea",9,10),o.NdJ("ngModelChange",function(e){return t.onPaymentRequestEntry(e)})("matTextareaAutosize",function(){return!0}),o.qZA(),o.YNc(14,ft,2,1,"mat-hint",11),o.YNc(15,xt,2,0,"mat-error",11),o.YNc(16,Zt,2,1,"mat-error",11),o.qZA(),o.YNc(17,At,6,2,"mat-form-field",12),o.TgZ(18,"mat-expansion-panel",13),o.NdJ("closed",function(){return t.onAdvancedPanelToggle(!0,!1)})("opened",function(){return t.onAdvancedPanelToggle(!1,!1)}),o.TgZ(19,"mat-expansion-panel-header"),o.TgZ(20,"mat-panel-title"),o.TgZ(21,"span"),o._uU(22),o.qZA(),o.qZA(),o.qZA(),o.TgZ(23,"div",14),o.TgZ(24,"mat-form-field",15),o.TgZ(25,"mat-select",16),o.NdJ("valueChange",function(e){return t.selFeeLimitType=e}),o.YNc(26,Ct,2,2,"mat-option",17),o.qZA(),o.qZA(),o.TgZ(27,"mat-form-field",18),o.TgZ(28,"input",19,20),o.NdJ("ngModelChange",function(e){return t.feeLimit=e}),o.qZA(),o.YNc(30,Tt,2,1,"mat-error",11),o.qZA(),o.TgZ(31,"mat-form-field",21),o._UZ(32,"input",22),o.TgZ(33,"mat-autocomplete",23,24),o.NdJ("optionSelected",function(){return t.onSelectedChannelChanged()}),o.YNc(35,bt,2,2,"mat-option",17),o.qZA(),o.YNc(36,wt,2,0,"mat-error",11),o.qZA(),o.qZA(),o.qZA(),o.YNc(37,vt,3,2,"div",25),o.TgZ(38,"div",26),o.TgZ(39,"button",27),o.NdJ("click",function(){return t.resetData()}),o._uU(40,"Clear Fields"),o.qZA(),o.TgZ(41,"button",28),o.NdJ("click",function(){return t.onSendPayment()}),o._uU(42,"Send Payment"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.MAs(13),n=o.MAs(34);o.xp6(6),o.Q6J("mat-dialog-close",!1),o.xp6(6),o.Q6J("ngModel",t.paymentRequest),o.xp6(2),o.Q6J("ngIf",t.paymentRequest&&""!==t.paymentDecodedHint),o.xp6(1),o.Q6J("ngIf",!t.paymentRequest),o.xp6(1),o.Q6J("ngIf",null==e.errors?null:e.errors.decodeError),o.xp6(1),o.Q6J("ngIf",t.zeroAmtInvoice),o.xp6(5),o.Oqu(t.advancedTitle),o.xp6(3),o.Q6J("value",t.selFeeLimitType),o.xp6(1),o.Q6J("ngForOf",t.feeLimitTypes),o.xp6(2),o.Q6J("ngModel",t.feeLimit)("placeholder",t.selFeeLimitType.placeholder)("step",1)("min",0)("disabled",t.selFeeLimitType===t.feeLimitTypes[0]),o.xp6(2),o.Q6J("ngIf",t.selFeeLimitType!==t.feeLimitTypes[0]&&!t.feeLimit),o.xp6(2),o.Q6J("formControl",t.selectedChannelCtrl)("matAutocomplete",n),o.xp6(1),o.Q6J("displayWith",t.displayFn),o.xp6(2),o.Q6J("ngForOf",t.filteredMinAmtActvChannels),o.xp6(1),o.Q6J("ngIf",null==t.selectedChannelCtrl.errors?null:t.selectedChannelCtrl.errors.notfound),o.xp6(1),o.Q6J("ngIf",""!==t.paymentError)}},directives:[l.xw,l.yH,w.dk,l.Wh,q.lW,ye.ZT,w.dn,Ae._Y,Ae.JL,Ae.F,D.KE,Ce.Nt,Ae.Fj,Ce.D7,Te.h,Ae.Q7,Ae.JJ,Ae.On,a.O5,ht.ib,ht.yz,ht.yK,we.gD,a.sg,Ae.wV,Ae.qQ,be.q,mt.ZL,Ae.oH,mt.XC,D.bx,D.TO,ve.ey,T.BN],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-payment_hash[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),e})();var St=n(8914),Ft=n(8248);const Lt=["sendPaymentForm"];function kt(e,t){if(1&e&&(o.TgZ(0,"mat-hint"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.paymentDecodedHint)}}function Nt(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Payment request is required."),o.qZA())}function Ut(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"form",4,5),o.TgZ(2,"mat-form-field",6),o.TgZ(3,"textarea",7,8),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().onPaymentRequestEntry(t)})("matTextareaAutosize",function(){return!0}),o.qZA(),o.YNc(5,kt,2,1,"mat-hint",9),o.YNc(6,Nt,2,0,"mat-error",9),o.qZA(),o.TgZ(7,"div",10),o.TgZ(8,"button",11),o.NdJ("click",function(){return o.CHM(e),o.oxw().resetData()}),o._uU(9,"Clear Field"),o.qZA(),o.TgZ(10,"button",12),o.NdJ("click",function(){return o.CHM(e),o.oxw().onSendPayment()}),o._uU(11,"Send Payment"),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(3),o.Q6J("ngModel",e.paymentRequest),o.xp6(2),o.Q6J("ngIf",e.paymentRequest&&""!==e.paymentDecodedHint),o.xp6(1),o.Q6J("ngIf",!e.paymentRequest)}}function It(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",13),o.TgZ(1,"button",14),o.NdJ("click",function(){return o.CHM(e),o.oxw().openSendPaymentModal()}),o._uU(2,"Send Payment"),o.qZA(),o.qZA()}}function Ot(e,t){1&e&&o._UZ(0,"mat-progress-bar",53)}function Jt(e,t){1&e&&(o.TgZ(0,"th",54),o._uU(1,"Creation Date"),o.qZA())}const Dt=function(e){return{"mr-0":e}};function Rt(e,t){if(1&e&&o._UZ(0,"span",58),2&e){const e=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Dt,e.screenSize===e.screenSizeEnum.XS))}}function Mt(e,t){if(1&e&&o._UZ(0,"span",59),2&e){const e=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Dt,e.screenSize===e.screenSizeEnum.XS))}}function Et(e,t){if(1&e&&(o.TgZ(0,"td",55),o.YNc(1,Rt,1,3,"span",56),o.YNc(2,Mt,1,3,"span",57),o._uU(3),o.ALo(4,"date"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Q6J("ngIf","SUCCEEDED"===e.status),o.xp6(1),o.Q6J("ngIf","SUCCEEDED"!==e.status),o.xp6(1),o.hij(" ",o.xi3(4,3,1e3*(null==e?null:e.creation_date),"dd/MMM/YYYY HH:mm")," ")}}function Qt(e,t){1&e&&(o.TgZ(0,"th",54),o._uU(1,"Payment Hash"),o.qZA())}const Yt=function(e){return{"max-width":e}};function Pt(e,t){if(1&e&&(o.TgZ(0,"td",60),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,Yt,n.screenSize===n.screenSizeEnum.XS?"10rem":"35rem")),o.xp6(1),o.Oqu(null==e?null:e.payment_hash)}}function Bt(e,t){1&e&&(o.TgZ(0,"th",61),o._uU(1,"Fee (Sats)"),o.qZA())}function Gt(e,t){if(1&e&&(o.TgZ(0,"td",55),o.TgZ(1,"span",62),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,null==e?null:e.fee))}}function Ht(e,t){1&e&&(o.TgZ(0,"th",61),o._uU(1,"Value (Sats)"),o.qZA())}function zt(e,t){if(1&e&&(o.TgZ(0,"td",55),o.TgZ(1,"span",62),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,null==e?null:e.value))}}function Vt(e,t){1&e&&(o.TgZ(0,"th",61),o._uU(1,"#Hops"),o.qZA())}function Wt(e,t){if(1&e&&(o.TgZ(0,"td",55),o.TgZ(1,"span",62),o._uU(2),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu((null==e||null==e.htlcs[0]||null==e.htlcs[0].route||null==e.htlcs[0].route.hops?null:e.htlcs[0].route.hops.length)||0)}}function Xt(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"th",63),o.TgZ(1,"div",64),o.TgZ(2,"mat-select",65),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",66),o.NdJ("click",function(){return o.CHM(e),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function $t(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",67),o.TgZ(1,"button",68),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw(2).onPaymentClick(t)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function jt(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No payment available."),o.qZA())}function Kt(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting payments..."),o.qZA())}function en(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(3);o.xp6(1),o.Oqu(e.errorMessage)}}function tn(e,t){if(1&e&&(o.TgZ(0,"td",69),o.YNc(1,jt,2,0,"p",9),o.YNc(2,Kt,2,0,"p",9),o.YNc(3,en,2,1,"p",9),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=e.payments&&e.payments.data)||(null==e.payments||null==e.payments.data?null:e.payments.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPayments.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.payments&&e.payments.data)||(null==e.payments||null==e.payments.data?null:e.payments.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPayments.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.payments&&e.payments.data)||(null==e.payments||null==e.payments.data?null:e.payments.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPayments.status)===e.apiCallStatusEnum.ERROR)}}function nn(e,t){if(1&e&&o._UZ(0,"span",58),2&e){const e=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Dt,e.screenSize===e.screenSizeEnum.XS))}}function an(e,t){if(1&e&&o._UZ(0,"span",59),2&e){const e=o.oxw(3);o.Q6J("ngClass",o.VKq(1,Dt,e.screenSize===e.screenSizeEnum.XS))}}function sn(e,t){if(1&e&&o._UZ(0,"span",58),2&e){const e=o.oxw(5);o.Q6J("ngClass",o.VKq(1,Dt,e.screenSize===e.screenSizeEnum.XS))}}function on(e,t){if(1&e&&o._UZ(0,"span",59),2&e){const e=o.oxw(5);o.Q6J("ngClass",o.VKq(1,Dt,e.screenSize===e.screenSizeEnum.XS))}}function ln(e,t){if(1&e&&(o.TgZ(0,"span",72),o.YNc(1,sn,1,3,"span",56),o.YNc(2,on,1,3,"span",57),o._uU(3),o.ALo(4,"date"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Q6J("ngIf","SUCCEEDED"===e.status),o.xp6(1),o.Q6J("ngIf","SUCCEEDED"!==e.status),o.xp6(1),o.hij(" ",o.xi3(4,3,1e3*e.attempt_time,"dd/MMM/YYYY HH:mm")," ")}}function rn(e,t){if(1&e&&(o.ynx(0),o.YNc(1,ln,5,6,"span",71),o.BQk()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.htlcs)}}function cn(e,t){if(1&e&&(o.TgZ(0,"td",55),o.TgZ(1,"span",70),o.YNc(2,nn,1,3,"span",56),o.YNc(3,an,1,3,"span",57),o._uU(4),o.qZA(),o.YNc(5,rn,2,1,"ng-container",9),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Q6J("ngIf","SUCCEEDED"===e.status),o.xp6(1),o.Q6J("ngIf","SUCCEEDED"!==e.status),o.xp6(1),o.hij(" Total Attempts: ",null==e||null==e.htlcs?null:e.htlcs.length," "),o.xp6(1),o.Q6J("ngIf",e.is_expanded)}}function un(e,t){if(1&e&&(o.TgZ(0,"span",70),o._uU(1),o.qZA()),2&e){const e=t.index;o.xp6(1),o.hij(" HTLC ",e+1," ")}}function pn(e,t){if(1&e&&(o.TgZ(0,"span"),o.YNc(1,un,2,1,"span",73),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.htlcs)}}function dn(e,t){if(1&e&&(o.TgZ(0,"td",55),o.TgZ(1,"span",70),o._uU(2),o.qZA(),o.YNc(3,pn,2,1,"span",9),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(null==e?null:e.payment_hash),o.xp6(1),o.Q6J("ngIf",e.is_expanded)}}function hn(e,t){if(1&e&&(o.TgZ(0,"span",74),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",o.xi3(2,1,null==e.route?null:e.route.total_fees,"1.0-0")," ")}}function mn(e,t){if(1&e&&(o.TgZ(0,"span"),o.YNc(1,hn,3,4,"span",75),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.htlcs)}}function gn(e,t){if(1&e&&(o.TgZ(0,"td",55),o.TgZ(1,"span",74),o._uU(2),o.ALo(3,"number"),o.qZA(),o.YNc(4,mn,2,1,"span",9),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.xi3(3,2,null==e?null:e.fee,"1.0-0")),o.xp6(2),o.Q6J("ngIf",e.is_expanded)}}function fn(e,t){if(1&e&&(o.TgZ(0,"span",74),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",o.xi3(2,1,null==e.route?null:e.route.total_amt,"1.0-0")," ")}}function xn(e,t){if(1&e&&(o.TgZ(0,"span"),o.YNc(1,fn,3,4,"span",75),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.htlcs)}}function Zn(e,t){if(1&e&&(o.TgZ(0,"td",55),o.TgZ(1,"span",74),o._uU(2),o.ALo(3,"number"),o.qZA(),o.YNc(4,xn,2,1,"span",9),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.xi3(3,2,null==e?null:e.value,"1.0-0")),o.xp6(2),o.Q6J("ngIf",e.is_expanded)}}function yn(e,t){if(1&e&&(o.TgZ(0,"span",74),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",o.xi3(2,1,(null==e.route||null==e.route.hops?null:e.route.hops.length)||0,"1.0-0")," ")}}function An(e,t){if(1&e&&(o.TgZ(0,"span"),o.YNc(1,yn,3,4,"span",75),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.htlcs)}}function Cn(e,t){if(1&e&&(o.TgZ(0,"td",55),o.TgZ(1,"span",74),o._uU(2,"-"),o.qZA(),o.YNc(3,An,2,1,"span",9),o.qZA()),2&e){const e=t.$implicit;o.xp6(3),o.Q6J("ngIf",e.is_expanded)}}function Tn(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",62),o.TgZ(1,"button",79),o.NdJ("click",function(){const t=o.CHM(e).$implicit,n=o.oxw(2).$implicit;return o.oxw(2).onHTLCClick(t,n)}),o._uU(2),o.qZA(),o.qZA()}if(2&e){const e=t.index;o.xp6(2),o.hij("View ",e+1,"")}}function bn(e,t){if(1&e&&(o.TgZ(0,"div"),o.YNc(1,Tn,3,1,"div",78),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.htlcs)}}function wn(e,t){if(1&e&&(o.TgZ(0,"td",76),o.TgZ(1,"span",62),o.TgZ(2,"button",77),o.NdJ("click",function(){const e=t.$implicit;return e.is_expanded=!e.is_expanded}),o._uU(3),o.qZA(),o.qZA(),o.YNc(4,bn,2,1,"div",9),o.qZA()),2&e){const e=t.$implicit;o.xp6(3),o.Oqu(e.is_expanded?"Hide":"Show"),o.xp6(1),o.Q6J("ngIf",e.is_expanded)}}function _n(e,t){if(1&e&&o._UZ(0,"tr",80),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("@newlyAddedRowAnimation",e.payment_hash===n.newlyAddedPayment&&n.flgAnimate?"added":"notAdded")}}const vn=function(e){return{"display-none":e}};function qn(e,t){if(1&e&&o._UZ(0,"tr",81),2&e){const e=o.oxw(2);o.Q6J("ngClass",o.VKq(1,vn,(null==e.payments?null:e.payments.data)&&(null==e.payments||null==e.payments.data?null:e.payments.data.length)>0))}}function Sn(e,t){1&e&&o._UZ(0,"tr",82)}function Fn(e,t){if(1&e&&o._UZ(0,"tr",80),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("@newlyAddedRowAnimation",e.payment_hash===n.newlyAddedPayment&&n.flgAnimate?"added":"notAdded")}}const Ln=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}},kn=function(){return["no_payment"]};function Nn(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",15),o.TgZ(1,"div",16),o.TgZ(2,"div",17),o._UZ(3,"fa-icon",18),o.TgZ(4,"span",19),o._uU(5,"Payments History"),o.qZA(),o.qZA(),o.TgZ(6,"mat-form-field",20),o.TgZ(7,"input",21),o.NdJ("keyup",function(t){return o.CHM(e),o.oxw().applyFilter(t.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",22),o.TgZ(9,"div",23),o.YNc(10,Ot,1,0,"mat-progress-bar",24),o.TgZ(11,"table",25,26),o.ynx(13,27),o.YNc(14,Jt,2,0,"th",28),o.YNc(15,Et,5,6,"td",29),o.BQk(),o.ynx(16,30),o.YNc(17,Qt,2,0,"th",28),o.YNc(18,Pt,2,4,"td",31),o.BQk(),o.ynx(19,32),o.YNc(20,Bt,2,0,"th",33),o.YNc(21,Gt,4,3,"td",29),o.BQk(),o.ynx(22,34),o.YNc(23,Ht,2,0,"th",33),o.YNc(24,zt,4,3,"td",29),o.BQk(),o.ynx(25,35),o.YNc(26,Vt,2,0,"th",33),o.YNc(27,Wt,3,1,"td",29),o.BQk(),o.ynx(28,36),o.YNc(29,Xt,6,0,"th",37),o.YNc(30,$t,3,0,"td",38),o.BQk(),o.ynx(31,39),o.YNc(32,tn,4,3,"td",40),o.BQk(),o.ynx(33,41),o.YNc(34,cn,6,4,"td",29),o.BQk(),o.ynx(35,42),o.YNc(36,dn,4,2,"td",29),o.BQk(),o.ynx(37,43),o.YNc(38,gn,5,5,"td",29),o.BQk(),o.ynx(39,44),o.YNc(40,Zn,5,5,"td",29),o.BQk(),o.ynx(41,45),o.YNc(42,Cn,4,1,"td",29),o.BQk(),o.ynx(43,46),o.YNc(44,wn,5,2,"td",47),o.BQk(),o.YNc(45,_n,1,1,"tr",48),o.YNc(46,qn,1,3,"tr",49),o.YNc(47,Sn,1,0,"tr",50),o.YNc(48,Fn,1,1,"tr",51),o.qZA(),o.TgZ(49,"mat-paginator",52),o.NdJ("page",function(t){return o.CHM(e),o.oxw().onPageChange(t)}),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(3),o.Q6J("icon",e.faHistory),o.xp6(7),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.FetchPayments.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.payments)("ngClass",o.VKq(14,Ln,""!==e.errorMessage)),o.xp6(34),o.Q6J("matRowDefColumns",e.htlcColumns)("matRowDefWhen",e.is_group),o.xp6(1),o.Q6J("matFooterRowDef",o.DdM(16,kn)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("length",e.totalPayments)("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS)}}let Un=(()=>{class e{constructor(e,t,n,a,i,s,o,l){this.logger=e,this.commonService=t,this.dataService=n,this.store=a,this.rtlEffects=i,this.lndEffects=s,this.decimalPipe=o,this.datePipe=l,this.calledFrom="transactions",this.faHistory=g.qO$,this.newlyAddedPayment="",this.flgAnimate=!0,this.selNode={},this.information={},this.peers=[],this.totalPayments=100,this.paymentJSONArr=[],this.displayedColumns=[],this.htlcColumns=[],this.paymentDecoded={},this.paymentRequest="",this.paymentDecodedHint="",this.flgSticky=!1,this.firstOffset=-1,this.lastOffset=-1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["creation_date","fee","actions"],this.htlcColumns=["groupTotal","groupFee","groupAction"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["creation_date","fee","value","hops","actions"],this.htlcColumns=["groupTotal","groupFee","groupValue","groupHops","groupAction"]):(this.flgSticky=!0,this.displayedColumns=["creation_date","payment_hash","fee","value","hops","actions"],this.htlcColumns=["groupTotal","groupHash","groupFee","groupValue","groupHops","groupAction"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchPayments.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPayments.message?JSON.stringify(this.apisCallStatus.FetchPayments.message):this.apisCallStatus.FetchPayments.message),this.information=e.information,this.selNode=e.nodeSettings,this.peers=e.peers,this.paymentJSONArr=e.payments&&e.payments.payments&&e.payments.payments.length>0?e.payments.payments:[],this.totalPayments=e.allLightningTransactions.paymentsAll&&e.allLightningTransactions.paymentsAll.payments&&e.allLightningTransactions.paymentsAll.payments.length?e.allLightningTransactions.paymentsAll.payments.length:0,this.firstOffset=+e.payments.first_index_offset,this.lastOffset=+e.payments.last_index_offset,this.paymentJSONArr&&this.paymentJSONArr.length>0&&this.sort&&this.paginator?this.loadPaymentsTable(this.paymentJSONArr):this.paymentJSONArr&&0===this.paymentJSONArr.length&&(this.payments=new Ze.by([])),setTimeout(()=>{this.flgAnimate=!1},3e3),this.logger.info(e)})}ngAfterViewInit(){this.paymentJSONArr&&this.paymentJSONArr.length>0&&this.loadPaymentsTable(this.paymentJSONArr)}onSendPayment(){if(!this.paymentRequest)return!0;this.paymentDecoded.timestamp?this.sendPayment():this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,pt.q)(1)).subscribe(e=>{this.paymentDecoded=e,this.paymentDecoded.timestamp?(this.paymentDecoded.num_satoshis=this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis?(+this.paymentDecoded.num_msat/1e3).toString():"0",this.sendPayment()):this.resetData()})}sendPayment(){this.flgAnimate=!0,this.newlyAddedPayment=this.paymentDecoded.payment_hash,this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis&&(this.paymentDecoded.num_satoshis=(+this.paymentDecoded.num_msat/1e3).toString()),this.paymentDecoded.num_satoshis&&""!==this.paymentDecoded.num_satoshis&&"0"!==this.paymentDecoded.num_satoshis?(this.store.dispatch(new ee.b_({data:{type:f.n_.CONFIRM,alertTitle:"Confirm Send Payment",noBtnText:"Cancel",yesBtnText:"Send Payment",message:[[{key:"payment_hash",value:this.paymentDecoded.payment_hash,title:"Payment Hash",width:100}],[{key:"destination",value:this.paymentDecoded.destination,title:"Destination",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"timestamp",value:this.paymentDecoded.timestamp,title:"Creation Date",width:50,type:f.Gi.DATE_TIME},{key:"num_satoshis",value:this.paymentDecoded.num_satoshis,title:"Amount (Sats)",width:50,type:f.Gi.NUMBER}],[{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:50,type:f.Gi.NUMBER},{key:"cltv_expiry",value:this.paymentDecoded.cltv_expiry,title:"CLTV Expiry",width:50}]]}})),this.rtlEffects.closeConfirm.pipe((0,pt.q)(1)).subscribe(e=>{e&&(this.store.dispatch(new x.Ar({uiMessage:f.m6.SEND_PAYMENT,paymentReq:this.paymentRequest,fromDialog:!1})),this.resetData())})):(this.store.dispatch(new ee.b_({data:{type:f.n_.CONFIRM,alertTitle:"Enter Amount and Confirm Send Payment",titleMessage:"It is a zero amount invoice. Enter the amount (Sats) to pay.",message:[[{key:"payment_hash",value:this.paymentDecoded.payment_hash,title:"Payment Hash",width:100}],[{key:"destination",value:this.paymentDecoded.destination,title:"Destination",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"timestamp",value:this.paymentDecoded.timestamp,title:"Creation Date",width:40,type:f.Gi.DATE_TIME},{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:30,type:f.Gi.NUMBER},{key:"cltv_expiry",value:this.paymentDecoded.cltv_expiry,title:"CLTV Expiry",width:30}]],noBtnText:"Cancel",yesBtnText:"Send Payment",flgShowInput:!0,getInputs:[{placeholder:"Amount (Sats)",inputType:f.Gi.NUMBER.toLowerCase(),inputValue:"",width:30}]}})),this.rtlEffects.closeConfirm.pipe((0,pt.q)(1)).subscribe(e=>{e&&(this.paymentDecoded.num_satoshis=e[0].inputValue,this.store.dispatch(new x.Ar({uiMessage:f.m6.SEND_PAYMENT,paymentReq:this.paymentRequest,paymentAmount:e[0].inputValue,fromDialog:!1})),this.resetData())}))}openSendPaymentModal(){this.store.dispatch(new ee.wu({data:{component:qt}}))}onPaymentRequestEntry(e){this.paymentRequest=e,this.paymentDecodedHint="",this.paymentRequest&&this.paymentRequest.length>100&&this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,pt.q)(1)).subscribe(e=>{this.paymentDecoded=e,this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis&&(this.paymentDecoded.num_satoshis=(+this.paymentDecoded.num_msat/1e3).toString()),this.paymentDecoded.num_satoshis?this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.num_satoshis,f.NT.SATS,f.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,d.R)(this.unSubs[2])).subscribe({next:e=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis?this.paymentDecoded.num_satoshis:0)+" Sats ("+e.symbol+this.decimalPipe.transform(e.OTHER?e.OTHER:0,f.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:e=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis?this.paymentDecoded.num_satoshis:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis?this.paymentDecoded.num_satoshis:0)+" Sats | Memo: "+this.paymentDecoded.description:this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description})}onPageChange(e){let t=!0,n=this.lastOffset,a=e.pageSize;0===e.pageIndex?(t=!0,n=0):e.pageIndexe.previousPageIndex&&e.length>(e.pageIndex+1)*e.pageSize?(t=!0,n=this.firstOffset):e.length<=(e.pageIndex+1)*e.pageSize&&(t=!1,n=0,a=e.length-e.pageIndex*e.pageSize),this.store.dispatch(new x.xt({max_payments:a,index_offset:n,reversed:t}))}is_group(e,t){return t.htlcs&&t.htlcs.length>1}resetData(){this.paymentDecoded={},this.paymentRequest="",this.form.resetForm()}getHopDetails(e){const t=this;return e.reduce((e,n)=>{const a=t.peers.find(e=>e.pub_key===n.pub_key);return a&&a.alias?e.push("
Channel: "+a.alias.padEnd(20)+"			Amount (Sats): "+t.decimalPipe.transform(n.amt_to_forward)+"
"):t.dataService.getAliasesFromPubkeys(n.pub_key,!1).pipe((0,d.R)(t.unSubs[1])).subscribe(a=>{e.push("
Channel: "+(a.node&&a.node.alias?a.node.alias.padEnd(20):n.pub_key.substring(0,17)+"...")+"			Amount (Sats): "+t.decimalPipe.transform(n.amt_to_forward)+"
")}),e},[])}onHTLCClick(e,t){t.payment_request&&""!==t.payment_request.trim()?this.dataService.decodePayment(t.payment_request,!1).pipe((0,pt.q)(1)).subscribe({next:n=>{this.showHTLCView(e,t,n)},error:n=>{this.showHTLCView(e,t,null)}}):this.showHTLCView(e,t,null)}showHTLCView(e,t,n){const a=[[{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:100,type:f.Gi.STRING}],[{key:"preimage",value:e.preimage,title:"Preimage",width:100,type:f.Gi.STRING}],[{key:"payment_request",value:t.payment_request,title:"Payment Request",width:100,type:f.Gi.STRING}],[{key:"status",value:e.status,title:"Status",width:33,type:f.Gi.STRING},{key:"attempt_time_ns",value:+e.attempt_time_ns/1e9,title:"Attempt Time",width:33,type:f.Gi.DATE_TIME},{key:"resolve_time_ns",value:+e.resolve_time_ns/1e9,title:"Resolve Time",width:34,type:f.Gi.DATE_TIME}],[{key:"total_amt",value:e.route.total_amt,title:"Amount (Sats)",width:33,type:f.Gi.NUMBER},{key:"total_fees",value:e.route.total_fees,title:"Fee (Sats)",width:33,type:f.Gi.NUMBER},{key:"total_time_lock",value:e.route.total_time_lock,title:"Total Time Lock",width:34,type:f.Gi.NUMBER}],[{key:"hops",value:this.getHopDetails(e.route.hops),title:"Hops",width:100,type:f.Gi.ARRAY}]];n&&n.description&&""!==n.description&&a.splice(3,0,[{key:"description",value:n.description,title:"Description",width:100,type:f.Gi.STRING}]),this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"HTLC Information",message:a,scrollable:e.route&&e.route.hops&&e.route.hops.length>1}}))}onPaymentClick(e){if(e.htlcs&&e.htlcs[0]&&e.htlcs[0].route&&e.htlcs[0].route.hops&&e.htlcs[0].route.hops.length>0){const t=e.htlcs[0].route.hops.reduce((e,t)=>""===e?t.pub_key:e+","+t.pub_key,"");this.dataService.getAliasesFromPubkeys(t,!0).pipe((0,d.R)(this.unSubs[3])).subscribe(t=>{this.showPaymentView(e,t.reduce((e,t)=>""===e?t:e+"\n"+t,""))})}else this.showPaymentView(e,"")}showPaymentView(e,t){const n=[[{key:"payment_hash",value:e.payment_hash,title:"Payment Hash",width:100,type:f.Gi.STRING}],[{key:"payment_preimage",value:e.payment_preimage,title:"Payment Preimage",width:100,type:f.Gi.STRING}],[{key:"payment_request",value:e.payment_request,title:"Payment Request",width:100,type:f.Gi.STRING}],[{key:"status",value:e.status,title:"Status",width:50,type:f.Gi.STRING},{key:"creation_date",value:e.creation_date,title:"Creation Date",width:50,type:f.Gi.DATE_TIME}],[{key:"value_msat",value:e.value_msat,title:"Value (mSats)",width:50,type:f.Gi.NUMBER},{key:"fee_msat",value:e.fee_msat,title:"Fee (mSats)",width:50,type:f.Gi.NUMBER}],[{key:"path",value:t,title:"Path",width:100,type:f.Gi.STRING}]];e.payment_request&&""!==e.payment_request.trim()?this.dataService.decodePayment(e.payment_request,!1).pipe((0,pt.q)(1)).subscribe(t=>{t&&t.description&&""!==t.description&&n.splice(3,0,[{key:"description",value:t.description,title:"Description",width:100,type:f.Gi.STRING}]),this.openPaymentAlert(n,e.htlcs&&e.htlcs[0]&&e.htlcs[0].route&&e.htlcs[0].route.hops&&e.htlcs[0].route.hops.length>1)}):this.openPaymentAlert(n,!1)}openPaymentAlert(e,t){this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Payment Information",message:e,scrollable:t}}))}applyFilter(e){this.payments.filter=e.value.trim().toLowerCase()}loadPaymentsTable(e){this.payments=new Ze.by(e?[...e]:[]),this.payments.sortingDataAccessor=(e,t)=>{switch(t){case"hops":return e.htlcs.length&&e.htlcs[0]&&e.htlcs[0].route&&e.htlcs[0].route.hops&&e.htlcs[0].route.hops.length?e.htlcs[0].route.hops.length:0;default:return e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null}},this.payments.sort=this.sort,this.payments.filterPredicate=(e,t)=>((e.creation_date?this.datePipe.transform(new Date(1e3*e.creation_date),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(e).toLowerCase()).includes(t)}onDownloadCSV(){if(this.payments.data&&this.payments.data.length>0){const e=JSON.parse(JSON.stringify(this.payments.data)),t=e.reduce((e,t)=>(t.payment_request&&""!==t.payment_request.trim()&&(e=""===e?t.payment_request:e+","+t.payment_request),e),"");this.dataService.decodePayments(t).pipe((0,d.R)(this.unSubs[4])).subscribe(t=>{let n=0;t.forEach((t,a)=>{for(;e[a+n].payment_hash!==t.payment_hash;)n+=1;e[a+n].description=t.description});const a=e.reduce((e,t)=>e.concat(t),[]);this.commonService.downloadFile(a,"Payments")})}}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(C.v),o.Y36(dt.D),o.Y36(y.yh),o.Y36(St.V),o.Y36(Ft.l),o.Y36(a.JJ),o.Y36(a.uU))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-lightning-payments"]],viewQuery:function(e,t){if(1&e&&(o.Gf(Lt,5),o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.form=e.first),o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},inputs:{calledFrom:"calledFrom"},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Payments")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayoutAlign","space-between stretch","fxLayout","row wrap",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayoutAlign","space-between stretch","fxLayout","row wrap"],["sendPaymentForm","ngForm"],["fxFlex","100"],["matInput","","placeholder","Payment Request","name","paymentRequest","tabindex","1","required","",3,"perfectScrollbar","ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["fxLayout","row"],["mat-flat-button","","color","primary","tabindex","4",3,"click"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","creation_date"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","payment_hash"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","fee"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","value"],["matColumnDef","hops"],["matColumnDef","actions"],["mat-header-cell","","class","px-2",4,"matHeaderCellDef"],["mat-cell","","class","px-2","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_payment"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["matColumnDef","groupTotal"],["matColumnDef","groupHash"],["matColumnDef","groupFee"],["matColumnDef","groupValue"],["matColumnDef","groupHops"],["matColumnDef","groupAction"],["mat-cell","","class","px-2",4,"matCellDef"],["mat-row","",4,"matRowDef","matRowDefColumns","matRowDefWhen"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"length","pageSize","pageSizeOptions","showFirstLastButtons","page"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot green","matTooltip","Succeeded","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Failed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Succeeded","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Failed","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-2"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-2"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],["fxLayoutAlign","start center",1,"htlc-row-span"],["fxLayoutAlign","start center","class","htlc-row-span pl-3",4,"ngFor","ngForOf"],["fxLayoutAlign","start center",1,"htlc-row-span","pl-3"],["fxLayoutAlign","start center","class","htlc-row-span",4,"ngFor","ngForOf"],["fxLayoutAlign","end center",1,"htlc-row-span"],["fxLayoutAlign","end center","class","htlc-row-span",4,"ngFor","ngForOf"],["mat-cell","",1,"px-2"],["mat-flat-button","","color","primary","type","button","tabindex","5",1,"btn-htlc-expand",3,"click"],["fxLayoutAlign","end center",4,"ngFor","ngForOf"],["mat-stroked-button","","color","primary","type","button","tabindex","6",1,"btn-htlc-info",3,"click"],["mat-row",""],["mat-footer-row","",3,"ngClass"],["mat-header-row",""]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.YNc(1,Ut,12,3,"form",1),o.YNc(2,It,3,0,"div",2),o.YNc(3,Nn,50,17,"div",3),o.qZA()),2&e&&(o.xp6(1),o.Q6J("ngIf","home"===t.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===t.calledFrom),o.xp6(1),o.Q6J("ngIf","transactions"===t.calledFrom))},directives:[l.xw,l.yH,l.Wh,a.O5,Ae._Y,Ae.JL,Ae.F,D.KE,Ce.Nt,Ae.Fj,Ce.D7,Ae.Q7,E.$V,Ae.JJ,Ae.On,q.lW,D.bx,D.TO,T.BN,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.nj,Ze.Ke,Ze.as,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,R.gM,a.PC,v.Zl,we.gD,we.$L,ve.ey,Ze.yh,a.sg,Ze.Gk,Ze.Q2,Ze.XQ],pipes:[a.uU,a.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-payment_hash[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-groupAction[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-htlc-expand[_ngcontent-%COMP%]{width:9rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-htlc-info[_ngcontent-%COMP%]{margin-top:.5rem;width:9rem}.htlc-row-span[_ngcontent-%COMP%]{min-height:4.2rem}.mat-column-groupTotal[_ngcontent-%COMP%]{min-width:17rem}"],data:{animation:[Ne.Q]}}),e})();function In(e,t){if(1&e&&(o.TgZ(0,"button",26),o.TgZ(1,"mat-icon"),o._uU(2,"more_vert"),o.qZA(),o.qZA()),2&e){o.oxw();const e=o.MAs(11);o.Q6J("matMenuTriggerFor",e)}}function On(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",15),o.NdJ("click",function(){return o.CHM(e),o.oxw(3).onNavigateTo("/lnd/reports")}),o._uU(1,"Fees Summary"),o.qZA()}}function Jn(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",15),o.NdJ("click",function(){return o.CHM(e),o.oxw(3).onsortChannelsBy()}),o._uU(1),o.qZA()}if(2&e){const e=o.oxw(3);o.xp6(1),o.hij("Sort By ","Balance Score"===e.sortField?"Capacity":"Balance Score","")}}function Dn(e,t){1&e&&o._UZ(0,"mat-progress-bar",27)}function Rn(e,t){if(1&e&&o._UZ(0,"rtl-node-info",28),2&e){const e=o.oxw(3);o.Q6J("information",e.information)("showColorFieldSeparately",!1)}}function Mn(e,t){if(1&e&&o._UZ(0,"rtl-balances-info",29),2&e){const e=o.oxw(3);o.Q6J("balances",e.balances)("errorMessage",e.errorMessages[3]+" "+e.errorMessages[2])}}function En(e,t){if(1&e&&o._UZ(0,"rtl-channel-capacity-info",30),2&e){const e=o.oxw(3);o.Q6J("sortBy",e.sortField)("channelBalances",e.channelBalances)("allChannels",e.allChannelsCapacity)("errorMessage",e.errorMessages[3])}}function Qn(e,t){if(1&e&&o._UZ(0,"rtl-fee-info",31),2&e){const e=o.oxw(3);o.Q6J("fees",e.fees)("errorMessage",e.errorMessages[1])}}function Yn(e,t){if(1&e&&o._UZ(0,"rtl-channel-status-info",32),2&e){const e=o.oxw(3);o.Q6J("channelsStatus",e.channelsStatus)("errorMessage",e.errorMessages[3]+" "+e.errorMessages[4])}}function Pn(e,t){1&e&&(o.TgZ(0,"h3"),o._uU(1,"Error! Unable to find information!"),o.qZA())}const Bn=function(e){return{"dashboard-card-content":!0,"error-border":e}};function Gn(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-grid-tile",8),o.TgZ(1,"mat-card",9),o.TgZ(2,"mat-card-header"),o.TgZ(3,"mat-card-title",10),o.TgZ(4,"div"),o._UZ(5,"fa-icon",11),o.TgZ(6,"span"),o._uU(7),o.qZA(),o.qZA(),o.TgZ(8,"div"),o.YNc(9,In,3,1,"button",12),o.TgZ(10,"mat-menu",13,14),o.TgZ(12,"button",15),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw(2).onNavigateTo(t.link)}),o._uU(13),o.qZA(),o.YNc(14,On,2,0,"button",16),o.YNc(15,Jn,2,1,"button",16),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(16,"mat-card-content",17),o.YNc(17,Dn,1,0,"mat-progress-bar",18),o.TgZ(18,"div",19),o.YNc(19,Rn,1,2,"rtl-node-info",20),o.YNc(20,Mn,1,2,"rtl-balances-info",21),o.YNc(21,En,1,4,"rtl-channel-capacity-info",22),o.YNc(22,Qn,1,2,"rtl-fee-info",23),o.YNc(23,Yn,1,2,"rtl-channel-status-info",24),o.YNc(24,Pn,2,0,"h3",25),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("colspan",e.cols)("rowspan",e.rows),o.xp6(5),o.Q6J("icon",e.icon),o.xp6(2),o.Oqu(e.title),o.xp6(2),o.Q6J("ngIf",e.link),o.xp6(4),o.hij("Go To ",e.goTo,""),o.xp6(1),o.Q6J("ngIf","fee"===e.id),o.xp6(1),o.Q6J("ngIf","capacity"===e.id),o.xp6(1),o.s9C("fxFlex","node"===e.id||"balance"===e.id?70:"fee"===e.id||"status"===e.id?78:90),o.Q6J("ngClass",o.VKq(17,Bn,"node"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||"balance"===e.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.ERROR||n.apisCallStatus.FetchBalanceBlockchain.status===n.apiCallStatusEnum.ERROR)||"capacity"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.ERROR||"fee"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.ERROR||"status"===e.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.ERROR||(null==n.apisCallStatus?null:n.apisCallStatus.FetchPendingChannels.status)===n.apiCallStatusEnum.ERROR))),o.xp6(1),o.Q6J("ngIf","node"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||"balance"===e.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.INITIATED||n.apisCallStatus.FetchBalanceBlockchain.status===n.apiCallStatusEnum.INITIATED)||"capacity"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.INITIATED||"fee"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.INITIATED||"status"===e.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.INITIATED||(null==n.apisCallStatus?null:n.apisCallStatus.FetchPendingChannels.status)===n.apiCallStatusEnum.INITIATED)),o.xp6(1),o.Q6J("ngSwitch",e.id),o.xp6(1),o.Q6J("ngSwitchCase","node"),o.xp6(1),o.Q6J("ngSwitchCase","balance"),o.xp6(1),o.Q6J("ngSwitchCase","capacity"),o.xp6(1),o.Q6J("ngSwitchCase","fee"),o.xp6(1),o.Q6J("ngSwitchCase","status")}}function Hn(e,t){if(1&e&&(o.TgZ(0,"div",2),o.TgZ(1,"div",3),o._UZ(2,"fa-icon",4),o.TgZ(3,"span",5),o._uU(4),o.qZA(),o.qZA(),o.TgZ(5,"mat-grid-list",6),o.YNc(6,Gn,25,19,"mat-grid-tile",7),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.Q6J("icon",(null==e.apisCallStatus?null:e.apisCallStatus.FetchInfo.status)===e.apiCallStatusEnum.ERROR?e.faFrown:e.faSmile),o.xp6(2),o.Oqu((null==e.apisCallStatus?null:e.apisCallStatus.FetchInfo.status)===e.apiCallStatusEnum.COMPLETED?"Welcome "+e.information.alias+"! Your node is up and running.":(null==e.apisCallStatus?null:e.apisCallStatus.FetchInfo.status)===e.apiCallStatusEnum.INITIATED?"Wait! Getting your node information...":"Error! Please check the server connection."),o.xp6(1),o.Q6J("rowHeight",e.operatorCardHeight),o.xp6(1),o.Q6J("ngForOf",e.operatorCards)}}function zn(e,t){if(1&e&&(o.TgZ(0,"button",26),o.TgZ(1,"mat-icon"),o._uU(2,"more_vert"),o.qZA(),o.qZA()),2&e){o.oxw();const e=o.MAs(9);o.Q6J("matMenuTriggerFor",e)}}function Vn(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-card-header"),o.TgZ(1,"mat-card-title",10),o.TgZ(2,"div"),o._UZ(3,"fa-icon",11),o.TgZ(4,"span"),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"div"),o.YNc(7,zn,3,1,"button",12),o.TgZ(8,"mat-menu",13,42),o.TgZ(10,"button",15),o.NdJ("click",function(){o.CHM(e);const t=o.oxw().$implicit;return o.oxw(2).onNavigateTo(t.link)}),o._uU(11),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw().$implicit;o.xp6(3),o.Q6J("icon",e.icon),o.xp6(2),o.Oqu(e.title),o.xp6(2),o.Q6J("ngIf",e.link),o.xp6(4),o.hij("Go To ",e.goTo,"")}}function Wn(e,t){1&e&&o._UZ(0,"mat-progress-bar",27)}function Xn(e,t){if(1&e&&o._UZ(0,"rtl-node-info",43),2&e){const e=o.oxw(3);o.Q6J("information",e.information)}}function $n(e,t){if(1&e&&o._UZ(0,"rtl-balances-info",29),2&e){const e=o.oxw(3);o.Q6J("balances",e.balances)("errorMessage",e.errorMessages[3]+" "+e.errorMessages[2])}}function jn(e,t){if(1&e&&o._UZ(0,"rtl-channel-liquidity-info",44),2&e){const e=o.oxw(3);o.Q6J("direction","In")("totalLiquidity",e.totalInboundLiquidity)("allChannels",e.allInboundChannels)("errorMessage",e.errorMessages[3])}}function Kn(e,t){if(1&e&&o._UZ(0,"rtl-channel-liquidity-info",44),2&e){const e=o.oxw(3);o.Q6J("direction","Out")("totalLiquidity",e.totalOutboundLiquidity)("allChannels",e.allOutboundChannels)("errorMessage",e.errorMessages[3])}}function ea(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",26),o.TgZ(1,"mat-icon"),o._uU(2,"more_vert"),o.qZA(),o.qZA(),o.TgZ(3,"mat-menu",13,52),o.TgZ(5,"button",15),o.NdJ("click",function(){o.CHM(e);const t=o.oxw(2).$implicit;return o.oxw(2).onNavigateTo(t.link)}),o._uU(6),o.qZA(),o.TgZ(7,"button",15),o.NdJ("click",function(){return o.CHM(e),o.oxw(4).onNavigateTo("/lnd/reports/transactions")}),o._uU(8,"Transactions Summary"),o.qZA(),o.qZA()}if(2&e){const e=o.MAs(4),t=o.oxw(2).$implicit;o.Q6J("matMenuTriggerFor",e),o.xp6(6),o.hij("Go To ",t.goTo,"")}}function ta(e,t){1&e&&(o.TgZ(0,"span",45),o.TgZ(1,"mat-tab-group",46),o.TgZ(2,"mat-tab",47),o._UZ(3,"rtl-lightning-invoices",48),o.qZA(),o.TgZ(4,"mat-tab",49),o._UZ(5,"rtl-lightning-payments",48),o.qZA(),o.TgZ(6,"mat-tab",50),o.YNc(7,ea,9,2,"ng-template",51),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(3),o.Q6J("calledFrom","home"),o.xp6(2),o.Q6J("calledFrom","home"),o.xp6(1),o.Q6J("disabled",!0))}function na(e,t){1&e&&(o.TgZ(0,"h3"),o._uU(1,"Error! Unable to find information!"),o.qZA())}const aa=function(e){return{"p-0":e}};function ia(e,t){if(1&e&&(o.TgZ(0,"mat-grid-tile",8),o.TgZ(1,"mat-card",35),o.YNc(2,Vn,12,4,"mat-card-header",36),o.TgZ(3,"mat-card-content",37),o.YNc(4,Wn,1,0,"mat-progress-bar",18),o.TgZ(5,"div",38),o.YNc(6,Xn,1,1,"rtl-node-info",39),o.YNc(7,$n,1,2,"rtl-balances-info",21),o.YNc(8,jn,1,4,"rtl-channel-liquidity-info",40),o.YNc(9,Kn,1,4,"rtl-channel-liquidity-info",40),o.YNc(10,ta,8,3,"span",41),o.YNc(11,na,2,0,"h3",25),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("colspan",e.cols)("rowspan",e.rows),o.xp6(1),o.Q6J("ngClass",o.VKq(13,aa,"transactions"===e.id)),o.xp6(1),o.Q6J("ngIf","transactions"!==e.id),o.xp6(1),o.s9C("fxFlex","transactions"===e.id?100:"balance"===e.id?70:90),o.Q6J("ngClass",o.VKq(15,Bn,"node"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||"balance"===e.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.ERROR||n.apisCallStatus.FetchBalanceBlockchain.status===n.apiCallStatusEnum.ERROR)||("inboundLiq"===e.id||"outboundLiq"===e.id)&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.ERROR)),o.xp6(1),o.Q6J("ngIf","node"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||"balance"===e.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.INITIATED||n.apisCallStatus.FetchBalanceBlockchain.status===n.apiCallStatusEnum.INITIATED)||("inboundLiq"===e.id||"outboundLiq"===e.id)&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngSwitch",e.id),o.xp6(1),o.Q6J("ngSwitchCase","node"),o.xp6(1),o.Q6J("ngSwitchCase","balance"),o.xp6(1),o.Q6J("ngSwitchCase","inboundLiq"),o.xp6(1),o.Q6J("ngSwitchCase","outboundLiq"),o.xp6(1),o.Q6J("ngSwitchCase","transactions")}}function sa(e,t){if(1&e&&(o.TgZ(0,"div",33),o._UZ(1,"fa-icon",4),o.TgZ(2,"span",5),o._uU(3),o.qZA(),o.qZA(),o.TgZ(4,"mat-grid-list",34),o.YNc(5,ia,12,17,"mat-grid-tile",7),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("icon",e.faSmile),o.xp6(2),o.hij("Welcome ",e.information.alias,"! Your node is up and running."),o.xp6(1),o.Q6J("rowHeight",e.merchantCardHeight),o.xp6(1),o.Q6J("ngForOf",e.merchantCards)}}let oa=(()=>{class e{constructor(e,t,n,a,i){switch(this.logger=e,this.store=t,this.actions=n,this.commonService=a,this.router=i,this.faSmile=m.I3,this.faFrown=m.Kf,this.faAngleDoubleDown=g.Sbq,this.faAngleDoubleUp=g.Vfw,this.faChartPie=g.OS1,this.faBolt=g.BDt,this.faServer=g.xf3,this.faNetworkWired=g.kXW,this.flgChildInfoUpdated=!1,this.userPersonaEnum=f.ol,this.activeChannels=0,this.inactiveChannels=0,this.channelBalances={localBalance:0,remoteBalance:0,balancedness:0},this.selNode={},this.information={},this.balances={onchain:-1,lightning:-1,total:0},this.allChannels=[],this.channelsStatus={},this.allChannelsCapacity=[],this.allInboundChannels=[],this.allOutboundChannels=[],this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.operatorCards=[],this.merchantCards=[],this.screenSize="",this.operatorCardHeight="330px",this.merchantCardHeight="65px",this.sortField="Balance Score",this.screenSizeEnum=f.cu,this.errorMessages=["","","","",""],this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize){case f.cu.XS:this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:10,rows:1},{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:10,rows:1},{id:"fee",goTo:"Routing",link:"/lnd/routing",icon:this.faBolt,title:"Routing Fee",cols:10,rows:1},{id:"status",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels",cols:10,rows:1},{id:"capacity",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:6,rows:4},{id:"transactions",goTo:"Transactions",link:"/lnd/transactions",title:"",cols:6,rows:6},{id:"inboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:6,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:6,rows:8}];break;case f.cu.SM:case f.cu.MD:this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:5,rows:1},{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:5,rows:1},{id:"fee",goTo:"Routing",link:"/lnd/routing",icon:this.faBolt,title:"Routing Fee",cols:5,rows:1},{id:"status",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels",cols:5,rows:1},{id:"capacity",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:4},{id:"transactions",goTo:"Transactions",link:"/lnd/transactions",title:"",cols:3,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:3,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:3,rows:8}];break;default:this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:3,rows:1},{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:1},{id:"capacity",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:4,rows:2},{id:"fee",goTo:"Routing",link:"/lnd/routing",icon:this.faBolt,title:"Routing Fee",cols:3,rows:1},{id:"status",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels",cols:3,rows:1}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:2,rows:5},{id:"inboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:2,rows:10},{id:"outboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:2,rows:10},{id:"transactions",goTo:"Transactions",link:"/lnd/transactions",title:"",cols:2,rows:5}]}}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[1])).subscribe(e=>{this.errorMessages=["","","","",""],this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchInfo.status===f.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apisCallStatus.FetchInfo.message?JSON.stringify(this.apisCallStatus.FetchInfo.message):this.apisCallStatus.FetchInfo.message),e.apisCallStatus.FetchFees.status===f.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apisCallStatus.FetchFees.message?JSON.stringify(this.apisCallStatus.FetchFees.message):this.apisCallStatus.FetchFees.message),e.apisCallStatus.FetchBalanceBlockchain.status===f.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apisCallStatus.FetchBalanceBlockchain.message?JSON.stringify(this.apisCallStatus.FetchBalanceBlockchain.message):this.apisCallStatus.FetchBalanceBlockchain.message),e.apisCallStatus.FetchAllChannels.status===f.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apisCallStatus.FetchAllChannels.message?JSON.stringify(this.apisCallStatus.FetchAllChannels.message):this.apisCallStatus.FetchAllChannels.message),e.apisCallStatus.FetchPendingChannels.status===f.Bn.ERROR&&(this.errorMessages[4]="object"==typeof this.apisCallStatus.FetchPendingChannels.message?JSON.stringify(this.apisCallStatus.FetchPendingChannels.message):this.apisCallStatus.FetchPendingChannels.message),this.selNode=e.nodeSettings,this.information=e.information,this.fees=e.fees,this.balances.onchain=+e.blockchainBalance.total_balance>=0?+e.blockchainBalance.total_balance:0;const t=e.totalLocalBalance?+e.totalLocalBalance:0,n=e.totalRemoteBalance?+e.totalRemoteBalance:0;this.channelBalances={localBalance:t,remoteBalance:n,balancedness:+(1-Math.abs((t-n)/(t+n))).toFixed(3)},this.balances.lightning=e.totalLocalBalance,this.balances.total=this.balances.lightning+this.balances.onchain,this.balances=Object.assign({},this.balances),this.activeChannels=e.numberOfActiveChannels,this.inactiveChannels=e.numberOfInactiveChannels,this.channelsStatus={active:{channels:e.numberOfActiveChannels,capacity:e.totalCapacityActive},inactive:{channels:e.numberOfInactiveChannels,capacity:e.totalCapacityInactive},pending:{channels:e.numberOfPendingChannels.open.num_channels,capacity:e.numberOfPendingChannels.open.limbo_balance},closing:{channels:e.numberOfPendingChannels.closing.num_channels+e.numberOfPendingChannels.force_closing.num_channels+e.numberOfPendingChannels.waiting_close.num_channels,capacity:e.numberOfPendingChannels.total_limbo_balance}},this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.allChannels=e.allChannels.filter(e=>!0===e.active),this.allChannelsCapacity=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels,"balancedness"))),this.allInboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter(e=>e.remote_balance>0),"remote_balance"))),this.allOutboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter(e=>e.local_balance>0),"local_balance"))),this.allChannels.forEach(e=>{this.totalInboundLiquidity=this.totalInboundLiquidity+ +e.remote_balance,this.totalOutboundLiquidity=this.totalOutboundLiquidity+ +e.local_balance}),this.flgChildInfoUpdated=this.balances.lightning>=0&&this.balances.onchain>=0&&this.fees.month_fee_sum>=0,this.logger.info(e)}),this.actions.pipe((0,d.R)(this.unSubs[2]),(0,h.h)(e=>e.type===x.VS||e.type===x.HS)).subscribe(e=>{e.type===x.VS&&(this.flgChildInfoUpdated=!1),e.type===x.HS&&(this.flgChildInfoUpdated=!0)})}onNavigateTo(e){this.router.navigateByUrl(e)}onsortChannelsBy(){"Balance Score"===this.sortField?(this.sortField="Capacity",this.allChannelsCapacity=this.allChannels.sort((e,t)=>{const n=+e.local_balance+ +e.remote_balance,a=+t.local_balance+ +t.remote_balance;return n>a?-1:n{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(A.eX),o.Y36(C.v),o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-home"]],decls:3,vars:2,consts:[["fxLayout","column",4,"ngIf","ngIfElse"],["merchantDashboard",""],["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","mb-0"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["cols","10",3,"rowHeight"],[3,"colspan","rowspan",4,"ngFor","ngForOf"],[3,"colspan","rowspan"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4"],["fxLayoutAlign","space-between center"],[1,"mr-1",3,"icon"],["mat-icon-button","","class","more-button","aria-label","Toggle menu",3,"matMenuTriggerFor",4,"ngIf"],["xPosition","before",1,"dashboard-vert-menu"],["menuOperator","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngIf"],["fxLayout","column",3,"fxFlex","ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"balances","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],[4,"ngSwitchDefault"],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",3,"matMenuTriggerFor"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"balances","errorMessage"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container","mb-0"],["cols","6",3,"rowHeight"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4",3,"ngClass"],[4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",3,"fxFlex","ngClass"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",3,"ngSwitch"],["fxFlex","100",3,"information",4,"ngSwitchCase"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage",4,"ngSwitchCase"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",3,"perfectScrollbar",4,"ngSwitchCase"],["menuMerchant","matMenu"],["fxFlex","100",3,"information"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100",1,"w-100","dashboard-tabs-group"],["label","Receive"],[3,"calledFrom"],["label","Pay"],[3,"disabled"],["mat-tab-label",""],["menuTransactions","matMenu"]],template:function(e,t){if(1&e&&(o.YNc(0,Hn,7,4,"div",0),o.YNc(1,sa,6,4,"ng-template",null,1,o.W1O)),2&e){const e=o.MAs(2);o.Q6J("ngIf",t.selNode.userPersona===t.userPersonaEnum.OPERATOR)("ngIfElse",e)}},directives:[a.O5,l.xw,l.Wh,T.BN,b.Il,a.sg,b.DX,w.a8,l.yH,w.dk,w.n5,_.VK,_.OP,w.dn,a.mk,v.oO,a.RF,a.n9,a.ED,q.lW,_.p6,S.Hw,r.pW,U,J,H,W,j,me,E.$V,ge.SP,ge.uX,ut,Un,ge.uD],styles:[""]}),e})();var la=n(882),ra=n(1050);function ca(e,t){if(1&e&&(o.TgZ(0,"span",10),o._uU(1,"Channels"),o.qZA()),2&e){const e=o.oxw();o.s9C("matBadge",e.activeChannels)}}function ua(e,t){if(1&e&&(o.TgZ(0,"span",10),o._uU(1,"Peers"),o.qZA()),2&e){const e=o.oxw();o.s9C("matBadge",e.activePeers)}}let pa=(()=>{class e{constructor(e,t,n){this.store=e,this.logger=t,this.router=n,this.selNode={},this.activePeers=0,this.activeChannels=0,this.faUsers=g.FVb,this.faChartPie=g.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"channels",name:"Channels"},{link:"peers",name:"Peers"}],this.activeLink=0,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.activeLink=this.links.findIndex(e=>e.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e instanceof i.Av)).subscribe(e=>{this.activeLink=this.links.findIndex(t=>t.link===e.urlAfterRedirects.substring(e.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select("lnd").pipe((0,d.R)(this.unSubs[1])).subscribe(e=>{this.selNode=e.nodeSettings,this.activePeers=e.peers&&e.peers.length?e.peers.length:0,this.activeChannels=e.numberOfActiveChannels,this.balances=[{title:"Total Balance",dataValue:e.blockchainBalance.total_balance||0},{title:"Confirmed",dataValue:e.blockchainBalance.confirmed_balance},{title:"Unconfirmed",dataValue:e.blockchainBalance.unconfirmed_balance}],this.logger.info(e)})}onSelectedTabChange(e){this.router.navigateByUrl("/lnd/connections/"+this.links[e.index].link)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(y.yh),o.Y36(Z.mQ),o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-connections"]],decls:22,vars:4,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"On-chain Balance"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o._UZ(7,"rtl-currency-unit-converter",5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",0),o._UZ(9,"fa-icon",1),o.TgZ(10,"span",2),o._uU(11,"Connections"),o.qZA(),o.qZA(),o.TgZ(12,"div",6),o.TgZ(13,"mat-card"),o.TgZ(14,"mat-card-content",4),o.TgZ(15,"mat-tab-group",7),o.NdJ("selectedIndexChange",function(e){return t.activeLink=e})("selectedTabChange",function(e){return t.onSelectedTabChange(e)}),o.TgZ(16,"mat-tab"),o.YNc(17,ca,2,1,"ng-template",8),o.qZA(),o.TgZ(18,"mat-tab"),o.YNc(19,ua,2,1,"ng-template",8),o.qZA(),o.qZA(),o.TgZ(20,"div",9),o._UZ(21,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(1),o.Q6J("icon",t.faChartPie),o.xp6(6),o.Q6J("values",t.balances),o.xp6(2),o.Q6J("icon",t.faUsers),o.xp6(6),o.Q6J("selectedIndex",t.activeLink))},directives:[l.xw,l.Wh,T.BN,w.a8,w.dn,la.D,ge.SP,ge.uX,ge.uD,l.yH,i.lC,ra.k],styles:[""]}),e})();var da=n(1258),ha=n(1681),ma=n(3474);const ga=["form"];function fa(e,t){if(1&e&&(o.TgZ(0,"mat-option",37),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e),o.xp6(1),o.Oqu(e.alias?e.alias:e.pub_key?e.pub_key:"")}}function xa(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Peer alias is required."),o.qZA())}function Za(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Peer not found in the list."),o.qZA())}function ya(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-form-field",1),o._UZ(1,"input",34),o.TgZ(2,"mat-autocomplete",35,36),o.NdJ("optionSelected",function(){return o.CHM(e),o.oxw().onSelectedPeerChanged()}),o.YNc(4,fa,2,2,"mat-option",24),o.ALo(5,"async"),o.qZA(),o.YNc(6,xa,2,0,"mat-error",17),o.YNc(7,Za,2,0,"mat-error",17),o.qZA()}if(2&e){const e=o.MAs(3),t=o.oxw();o.xp6(1),o.Q6J("formControl",t.selectedPeer)("matAutocomplete",e),o.xp6(1),o.Q6J("displayWith",t.displayFn),o.xp6(2),o.Q6J("ngForOf",o.lcZ(5,6,t.filteredPeers)),o.xp6(2),o.Q6J("ngIf",null==t.selectedPeer.errors?null:t.selectedPeer.errors.required),o.xp6(1),o.Q6J("ngIf",null==t.selectedPeer.errors?null:t.selectedPeer.errors.notfound)}}function Aa(e,t){1&e&&o.GkF(0)}function Ca(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function Ta(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("Amount must be less than or equal to ",e.totalBalance,".")}}function ba(e,t){if(1&e&&(o.TgZ(0,"mat-option",37),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e.id),o.xp6(1),o.hij(" ",e.name," ")}}function wa(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("","1"===e.selTransType?"Target Confirmation Blocks":"Fee"," is required.")}}function _a(e,t){if(1&e&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.channelConnectionError)}}function va(e,t){if(1&e&&(o.TgZ(0,"div",38),o._UZ(1,"fa-icon",39),o.YNc(2,_a,2,1,"span",17),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("icon",e.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==e.channelConnectionError)}}function qa(e,t){if(1&e&&(o.TgZ(0,"mat-expansion-panel",41),o.TgZ(1,"mat-expansion-panel-header"),o.TgZ(2,"mat-panel-title"),o.TgZ(3,"span"),o._uU(4,"Peer: \xa0"),o.qZA(),o.TgZ(5,"strong",42),o._uU(6),o.qZA(),o.qZA(),o.qZA(),o.TgZ(7,"div",9),o.TgZ(8,"div",0),o.TgZ(9,"div",1),o.TgZ(10,"h4",43),o._uU(11,"Pubkey"),o.qZA(),o.TgZ(12,"span",44),o._uU(13),o.qZA(),o.qZA(),o.qZA(),o._UZ(14,"mat-divider",45),o.TgZ(15,"div",0),o.TgZ(16,"div",46),o.TgZ(17,"h4",43),o._uU(18,"Address"),o.qZA(),o.TgZ(19,"span",47),o._uU(20),o.qZA(),o.qZA(),o.TgZ(21,"div",46),o.TgZ(22,"h4",43),o._uU(23,"Inbound"),o.qZA(),o.TgZ(24,"span",47),o._uU(25),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.oxw(2);o.xp6(6),o.Oqu((null==e.peer?null:e.peer.alias)||(null==e.peer?null:e.peer.address)),o.xp6(7),o.Oqu(e.peer.pub_key),o.xp6(7),o.Oqu(null==e.peer?null:e.peer.address),o.xp6(5),o.Oqu(null!=e.peer&&e.peer.inbound?"True":"False")}}function Sa(e,t){if(1&e&&o.YNc(0,qa,26,4,"mat-expansion-panel",40),2&e){const e=o.oxw();o.Q6J("ngIf",e.peer)}}let Fa=(()=>{class e{constructor(e,t,n,a){this.dialogRef=e,this.data=t,this.store=n,this.actions=a,this.selectedPeer=new Ae.NI,this.amount=new Ae.NI,this.faExclamationTriangle=g.eHv,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.totalBalance=0,this.selectedPubkey="",this.isPrivate=!1,this.selTransType="0",this.spendUnconfirmed=!1,this.transTypeValue="",this.transTypes=f.Dr,this.unSubs=[new p.x,new p.x]}ngOnInit(){this.information=this.data.message.information,this.totalBalance=this.data.message.balance,this.alertTitle=this.data.alertTitle,this.peer=this.data.message.peer?this.data.message.peer:null,this.peers=this.data.message.peers&&this.data.message.peers.length?this.data.message.peers:[],this.actions.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e.type===x.JE||e.type===x.Mx)).subscribe(e=>{e.type===x.JE&&e.payload.status===f.Bn.ERROR&&"SaveNewChannel"===e.payload.action&&(this.channelConnectionError=e.payload.message),e.type===x.Mx&&this.dialogRef.close()});let e="",t="";this.sortedPeers=this.peers.sort((n,a)=>(e=n.alias?n.alias.toLowerCase():n.pub_key?n.pub_key.toLowerCase():"",t=a.alias?a.alias.toLowerCase():n.pub_key.toLowerCase(),et?1:0)),this.filteredPeers=this.selectedPeer.valueChanges.pipe((0,d.R)(this.unSubs[1]),(0,da.O)(""),(0,ha.U)(e=>"string"==typeof e?e:e.alias?e.alias:e.pub_key),(0,ha.U)(e=>e?this.filterPeers(e):this.sortedPeers.slice()))}filterPeers(e){return this.sortedPeers.filter(t=>0===t.alias.toLowerCase().indexOf(e?e.toLowerCase():""))}displayFn(e){return e&&e.alias?e.alias:e&&e.pub_key?e.pub_key:""}onSelectedPeerChanged(){if(this.channelConnectionError="",this.selectedPubkey=this.selectedPeer.value&&this.selectedPeer.value.pub_key?this.selectedPeer.value.pub_key:null,"string"==typeof this.selectedPeer.value){const e=this.peers.filter(e=>e.alias.length===this.selectedPeer.value.length&&0===e.alias.toLowerCase().indexOf(this.selectedPeer.value?this.selectedPeer.value.toLowerCase():""));1===e.length&&e[0].pub_key&&(this.selectedPubkey=e[0].pub_key)}this.selectedPeer.setErrors(this.selectedPeer.value&&!this.selectedPubkey?{notfound:!0}:null)}onClose(){this.dialogRef.close(!1)}resetData(){this.selectedPeer.setValue(""),this.fundingAmount=null,this.isPrivate=!1,this.spendUnconfirmed=!1,this.selTransType="0",this.transTypeValue="",this.channelConnectionError="",this.advancedTitle="Advanced Options",this.form.resetForm()}onOpenChannel(){if(!this.peer&&!this.selectedPubkey||!this.fundingAmount||this.totalBalance-this.fundingAmount<0||("1"===this.selTransType||"2"===this.selTransType)&&!this.transTypeValue)return!0;this.store.dispatch(new x.nb({selectedPeerPubkey:this.peer&&this.peer.pub_key?this.peer.pub_key:this.selectedPubkey,fundingAmount:this.fundingAmount,private:this.isPrivate,transType:this.selTransType,transTypeValue:this.transTypeValue,spendUnconfirmed:this.spendUnconfirmed}))}onAdvancedPanelToggle(e){this.advancedTitle=e?"Advanced Options | "+("1"===this.selTransType?"Target Confirmation Blocks: ":"2"===this.selTransType?"Fee (Sats/vByte): ":"Default")+("1"===this.selTransType||"2"===this.selTransType?this.transTypeValue:"")+" | Spend Unconfirmed Output: "+(this.spendUnconfirmed?"Yes":"No"):"Advanced Options"}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(ye.WI),o.Y36(y.yh),o.Y36(A.eX))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-open-channel"]],viewQuery:function(e,t){if(1&e&&o.Gf(ga,7),2&e){let e;o.iGM(e=o.CRH())&&(t.form=e.first)}},decls:55,vars:25,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column",3,"submit","reset"],["form","ngForm"],["fxLayout","column"],["fxFlex","100",4,"ngIf"],[4,"ngTemplateOutlet"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","60","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","1","required","","name","amnt",3,"ngModel","step","min","max","ngModelChange"],["amt","ngModel"],["matSuffix",""],[4,"ngIf"],["fxFlex","35","fxLayoutAlign","start center"],["tabindex","2","color","primary","name","isPrivate",3,"ngModel","ngModelChange"],["expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","49"],["tabindex","3",3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","type","number","tabindex","4","name","transTpValue",3,"ngModel","required","disabled","placeholder","step","min","ngModelChange"],["transTypeVal","ngModel"],["fxFlex","50","fxLayoutAlign","start center"],["tabindex","6","color","primary","name","spendUnconfirmed",3,"ngModel","ngModelChange"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["autoFocus","","mat-flat-button","","color","primary","type","submit","tabindex","9"],["peerDetailsExpansionBlock",""],["type","text","placeholder","Peer Alias","aria-label","Peers","matInput","","tabindex","1","required","",3,"formControl","matAutocomplete"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["class","flat-expansion-panel my-1","expanded","false",4,"ngIf"],["expanded","false",1,"flat-expansion-panel","my-1"],[1,"font-weight-900"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"],["fxFlex","50"],[1,"overflow-wrap","foreground-secondary-text"]],template:function(e,t){if(1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return t.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.NdJ("submit",function(){return t.onOpenChannel()})("reset",function(){return t.resetData()}),o.TgZ(11,"div",9),o.YNc(12,ya,8,8,"mat-form-field",10),o.qZA(),o.YNc(13,Aa,1,0,"ng-container",11),o.TgZ(14,"div",9),o.TgZ(15,"div",12),o.TgZ(16,"mat-form-field",13),o.TgZ(17,"input",14,15),o.NdJ("ngModelChange",function(e){return t.fundingAmount=e}),o.qZA(),o.TgZ(19,"mat-hint"),o._uU(20),o.ALo(21,"number"),o.qZA(),o.TgZ(22,"span",16),o._uU(23," Sats "),o.qZA(),o.YNc(24,Ca,2,0,"mat-error",17),o.YNc(25,Ta,2,1,"mat-error",17),o.qZA(),o.TgZ(26,"div",18),o.TgZ(27,"mat-slide-toggle",19),o.NdJ("ngModelChange",function(e){return t.isPrivate=e}),o._uU(28,"Private Channel"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(29,"mat-expansion-panel",20),o.NdJ("closed",function(){return t.onAdvancedPanelToggle(!0)})("opened",function(){return t.onAdvancedPanelToggle(!1)}),o.TgZ(30,"mat-expansion-panel-header"),o.TgZ(31,"mat-panel-title"),o.TgZ(32,"span"),o._uU(33),o.qZA(),o.qZA(),o.qZA(),o.TgZ(34,"div",21),o.TgZ(35,"div",12),o.TgZ(36,"mat-form-field",22),o.TgZ(37,"mat-select",23),o.NdJ("valueChange",function(e){return t.selTransType=e}),o.YNc(38,ba,2,2,"mat-option",24),o.qZA(),o.qZA(),o.TgZ(39,"mat-form-field",22),o.TgZ(40,"input",25,26),o.NdJ("ngModelChange",function(e){return t.transTypeValue=e}),o.qZA(),o.YNc(42,wa,2,1,"mat-error",17),o.qZA(),o.qZA(),o.TgZ(43,"div",12),o.TgZ(44,"div",27),o.TgZ(45,"mat-slide-toggle",28),o.NdJ("ngModelChange",function(e){return t.spendUnconfirmed=e}),o._uU(46,"Spend Unconfirmed Output"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(47,va,3,2,"div",29),o.TgZ(48,"div",30),o.TgZ(49,"button",31),o._uU(50,"Clear Fields"),o.qZA(),o.TgZ(51,"button",32),o._uU(52,"Open Channel"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(53,Sa,1,1,"ng-template",null,33,o.W1O)),2&e){const e=o.MAs(54);o.xp6(5),o.Oqu(t.alertTitle),o.xp6(7),o.Q6J("ngIf",!t.peer&&t.peers&&t.peers.length>0),o.xp6(1),o.Q6J("ngTemplateOutlet",e),o.xp6(4),o.Q6J("ngModel",t.fundingAmount)("step",1e3)("min",1)("max",t.totalBalance),o.xp6(3),o.hij("(Remaining Bal: ",o.lcZ(21,23,t.totalBalance-(t.fundingAmount?t.fundingAmount:0)),")"),o.xp6(4),o.Q6J("ngIf",null==t.amount.errors?null:t.amount.errors.required),o.xp6(1),o.Q6J("ngIf",null==t.amount.errors?null:t.amount.errors.max),o.xp6(2),o.Q6J("ngModel",t.isPrivate),o.xp6(6),o.Oqu(t.advancedTitle),o.xp6(4),o.Q6J("value",t.selTransType),o.xp6(1),o.Q6J("ngForOf",t.transTypes),o.xp6(2),o.Q6J("ngModel",t.transTypeValue)("required","0"!==t.selTransType)("disabled","0"===t.selTransType)("placeholder","0"===t.selTransType?"Default":"1"===t.selTransType?"Target Confirmation Blocks":"Fee (Sats/vByte)")("step",1)("min",0),o.xp6(2),o.Q6J("ngIf","0"!==t.selTransType&&!t.transTypeValue),o.xp6(3),o.Q6J("ngModel",t.spendUnconfirmed),o.xp6(2),o.Q6J("ngIf",""!==t.channelConnectionError)}},directives:[l.xw,l.yH,w.dk,l.Wh,q.lW,w.dn,Ae._Y,Ae.JL,Ae.F,a.O5,a.tP,D.KE,Ce.Nt,Ae.wV,Ae.qQ,Ae.Fd,Ae.Fj,be.q,ma.F,Ae.Q7,Ae.JJ,Ae.On,D.bx,D.R9,_e.Rr,ht.ib,ht.yz,ht.yK,we.gD,a.sg,Te.h,mt.ZL,Ae.oH,mt.XC,ve.ey,D.TO,T.BN,M.d],pipes:[a.JJ,a.Ov],styles:[".open-inputs-box[_ngcontent-%COMP%]{padding:1.2rem 2.4rem .8rem!important}"]}),e})();var La=n(7753);const ka=["peersForm"],Na=["stepper"];function Ua(e,t){if(1&e&&o._uU(0),2&e){const e=o.oxw();o.Oqu(e.peerFormLabel)}}function Ia(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Address is required."),o.qZA())}function Oa(e,t){if(1&e&&(o.TgZ(0,"div",37),o._UZ(1,"fa-icon",38),o.TgZ(2,"span"),o._uU(3),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("icon",e.faExclamationTriangle),o.xp6(2),o.Oqu(e.peerConnectionError)}}function Ja(e,t){if(1&e&&o._uU(0),2&e){const e=o.oxw();o.Oqu(e.channelFormLabel)}}function Da(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function Ra(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount must be a positive number."),o.qZA())}function Ma(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("Amount must be less than or equal to ",e.totalBalance,".")}}function Ea(e,t){if(1&e&&(o.TgZ(0,"mat-option",39),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e.id),o.xp6(1),o.hij(" ",e.name," ")}}function Qa(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("","0"===e.channelFormGroup.controls.selTransType.value?"Default":"1"===e.channelFormGroup.controls.selTransType.value?"Target Confirmation Blocks":"Fee (Sats/vByte)"," is required.")}}function Ya(e,t){if(1&e&&(o.TgZ(0,"div",37),o._UZ(1,"fa-icon",38),o.TgZ(2,"span"),o._uU(3),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("icon",e.faExclamationTriangle),o.xp6(2),o.Oqu(e.channelConnectionError)}}let Pa=(()=>{class e{constructor(e,t,n,a,i,s,o){this.dialogRef=e,this.data=t,this.store=n,this.lndEffects=a,this.formBuilder=i,this.actions=s,this.logger=o,this.faExclamationTriangle=g.eHv,this.peerAddress="",this.totalBalance=0,this.transTypes=f.Dr,this.flgChannelOpened=!1,this.channelOpenStatus=null,this.newlyAddedPeer=null,this.flgEditable=!0,this.peerConnectionError="",this.channelConnectionError="",this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)",this.unSubs=[new p.x,new p.x]}ngOnInit(){this.totalBalance=this.data.message.balance,this.peerFormGroup=this.formBuilder.group({hiddenAddress:["",[Ae.kI.required]],peerAddress:["",[Ae.kI.required]]}),this.channelFormGroup=this.formBuilder.group({fundingAmount:["",[Ae.kI.required,Ae.kI.min(1),Ae.kI.max(this.totalBalance)]],isPrivate:[!1],selTransType:[f.Dr[0].id],transTypeValue:[{value:"",disabled:!0}],spendUnconfirmed:[!1],hiddenAmount:["",[Ae.kI.required]]}),this.statusFormGroup=this.formBuilder.group({}),this.channelFormGroup.controls.selTransType.valueChanges.pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{e===f.Dr[0].id?(this.channelFormGroup.controls.transTypeValue.setValue(""),this.channelFormGroup.controls.transTypeValue.disable(),this.channelFormGroup.controls.transTypeValue.setValidators(null),this.channelFormGroup.controls.transTypeValue.setErrors(null)):(this.channelFormGroup.controls.transTypeValue.setValue(""),this.channelFormGroup.controls.transTypeValue.enable(),this.channelFormGroup.controls.transTypeValue.setValidators([Ae.kI.required]))}),this.actions.pipe((0,d.R)(this.unSubs[1]),(0,h.h)(e=>e.type===x.X_||e.type===x.W8||e.type===x.JE)).subscribe(e=>{e.type===x.X_&&(this.logger.info(e.payload),this.flgEditable=!1,this.newlyAddedPeer=e.payload.peer,this.peerFormGroup.controls.hiddenAddress.setValue(this.peerFormGroup.controls.peerAddress.value),this.stepper.next()),e.type===x.W8&&this.dialogRef.close(),e.type===x.JE&&e.payload.status===f.Bn.ERROR&&("SaveNewPeer"===e.payload.action||"FetchGraphNode"===e.payload.action?this.peerConnectionError=e.payload.message:"SaveNewChannel"===e.payload.action&&(this.channelConnectionError=e.payload.message))})}onConnectPeer(){if(!this.peerFormGroup.controls.peerAddress.value)return!0;this.peerConnectionError="";const e=this.peerFormGroup.controls.peerAddress.value.search("@");let t="",n="";e>-1?(t=this.peerFormGroup.controls.peerAddress.value.substring(0,e),n=this.peerFormGroup.controls.peerAddress.value.substring(e+1),this.connectPeerWithParams(t,n)):(this.store.dispatch(new x.RR({pubkey:this.peerFormGroup.controls.peerAddress.value})),this.lndEffects.setGraphNode.pipe((0,pt.q)(1)).subscribe(e=>{n=e.node.addresses&&e.node.addresses.length&&e.node.addresses.length>0&&e.node.addresses[0].addr?e.node.addresses[0].addr:"",this.connectPeerWithParams(this.peerFormGroup.controls.peerAddress.value,n)}))}connectPeerWithParams(e,t){this.store.dispatch(new x.rF({pubkey:e,host:t,perm:!1}))}onOpenChannel(){if(!this.channelFormGroup.controls.fundingAmount.value||this.totalBalance-this.channelFormGroup.controls.fundingAmount.value<0||"1"===this.channelFormGroup.controls.selTransType.value&&!this.channelFormGroup.controls.transTypeValue.value||"2"===this.channelFormGroup.controls.selTransType.value&&!this.channelFormGroup.controls.transTypeValue.value)return!0;this.channelConnectionError="",this.store.dispatch(new x.nb({selectedPeerPubkey:this.newlyAddedPeer.pub_key,fundingAmount:this.channelFormGroup.controls.fundingAmount.value,private:this.channelFormGroup.controls.isPrivate.value,transType:this.channelFormGroup.controls.selTransType.value,transTypeValue:this.channelFormGroup.controls.transTypeValue.value,spendUnconfirmed:this.channelFormGroup.controls.spendUnconfirmed.value}))}onClose(){this.dialogRef.close(!1)}stepSelectionChanged(e){switch(e.selectedIndex){case 0:this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 1:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+this.newlyAddedPeer.alias:"Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 2:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+this.newlyAddedPeer.alias:"Peer Details",this.channelFormLabel=this.channelFormGroup.controls.fundingAmount.value?"Opening Channel for "+this.channelFormGroup.controls.fundingAmount.value+" Sats":"Open Channel (Optional)";break;default:this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)"}e.selectedIndex{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(ye.WI),o.Y36(y.yh),o.Y36(Ft.l),o.Y36(Ae.qu),o.Y36(A.eX),o.Y36(Z.mQ))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-connect-peer"]],viewQuery:function(e,t){if(1&e&&(o.Gf(ka,5),o.Gf(Na,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.form=e.first),o.iGM(e=o.CRH())&&(t.stepper=e.first)}},decls:56,vars:24,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["autoFocus","","matInput","","placeholder","Lightning Address (pubkey OR pubkey@ip:port)","formControlName","peerAddress","tabindex","1","required",""],[4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","button",3,"click"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mb-1",3,"formGroup"],["matStepLabel","","disabled","true"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","60","fxLayoutAlign","start end"],["matInput","","formControlName","fundingAmount","placeholder","Amount","type","number","tabindex","1","required","",3,"step"],["matSuffix",""],["fxFlex","35","fxLayoutAlign","start center"],["tabindex","2","color","primary","formControlName","isPrivate","name","isPrivate"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["fxFlex","30","fxLayoutAlign","start end"],["tabindex","3","formControlName","selTransType","placeholder","Transaction Type"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","30"],["matInput","","formControlName","transTypeValue","type","number","name","transTypeValue","tabindex","4",3,"placeholder","step","required"],["tabindex","6","color","primary","formControlName","spendUnconfirmed","name","spendUnconfirmed"],["mat-stroked-button","","color","primary","tabindex","8","type","button",3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[3,"value"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Connect to a new peer"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return t.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"div",7),o.TgZ(10,"mat-vertical-stepper",8,9),o.NdJ("selectionChange",function(e){return t.stepSelectionChanged(e)}),o.TgZ(12,"mat-step",10),o.TgZ(13,"form",11),o.YNc(14,Ua,1,1,"ng-template",12),o.TgZ(15,"mat-form-field",1),o._UZ(16,"input",13),o.YNc(17,Ia,2,0,"mat-error",14),o.qZA(),o.YNc(18,Oa,4,2,"div",15),o.TgZ(19,"div",16),o.TgZ(20,"button",17),o.NdJ("click",function(){return t.onConnectPeer()}),o._uU(21),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(22,"mat-step",10),o.TgZ(23,"form",18),o.YNc(24,Ja,1,1,"ng-template",19),o.TgZ(25,"div",20),o.TgZ(26,"div",21),o.TgZ(27,"mat-form-field",22),o._UZ(28,"input",23),o.TgZ(29,"mat-hint"),o._uU(30),o.qZA(),o.TgZ(31,"span",24),o._uU(32," Sats "),o.qZA(),o.YNc(33,Da,2,0,"mat-error",14),o.YNc(34,Ra,2,0,"mat-error",14),o.YNc(35,Ma,2,1,"mat-error",14),o.qZA(),o.TgZ(36,"div",25),o.TgZ(37,"mat-slide-toggle",26),o._uU(38,"Private Channel"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(39,"div",27),o.TgZ(40,"mat-form-field",28),o.TgZ(41,"mat-select",29),o.YNc(42,Ea,2,2,"mat-option",30),o.qZA(),o.qZA(),o.TgZ(43,"mat-form-field",31),o._UZ(44,"input",32),o.YNc(45,Qa,2,1,"mat-error",14),o.qZA(),o.TgZ(46,"div",25),o.TgZ(47,"mat-slide-toggle",33),o._uU(48,"Spend Unconfirmed Output"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(49,Ya,4,2,"div",15),o.TgZ(50,"div",16),o.TgZ(51,"button",34),o.NdJ("click",function(){return t.onOpenChannel()}),o._uU(52),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(53,"div",35),o.TgZ(54,"button",36),o._uU(55),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(10),o.Q6J("linear",!0),o.xp6(2),o.Q6J("stepControl",t.peerFormGroup)("editable",t.flgEditable),o.xp6(1),o.Q6J("formGroup",t.peerFormGroup),o.xp6(4),o.Q6J("ngIf",null==t.peerFormGroup.controls.peerAddress.errors?null:t.peerFormGroup.controls.peerAddress.errors.required),o.xp6(1),o.Q6J("ngIf",""!==t.peerConnectionError),o.xp6(3),o.Oqu(""!==t.peerConnectionError?"Retry":"Add Peer"),o.xp6(1),o.Q6J("stepControl",t.channelFormGroup)("editable",t.flgEditable),o.xp6(1),o.Q6J("formGroup",t.channelFormGroup),o.xp6(5),o.Q6J("step",1e3),o.xp6(2),o.hij("Remaining Bal: ",t.totalBalance-(t.channelFormGroup.controls.fundingAmount.value?t.channelFormGroup.controls.fundingAmount.value:0),""),o.xp6(3),o.Q6J("ngIf",null==t.channelFormGroup.controls.fundingAmount.errors?null:t.channelFormGroup.controls.fundingAmount.errors.required),o.xp6(1),o.Q6J("ngIf",null==t.channelFormGroup.controls.fundingAmount.errors?null:t.channelFormGroup.controls.fundingAmount.errors.min),o.xp6(1),o.Q6J("ngIf",null==t.channelFormGroup.controls.fundingAmount.errors?null:t.channelFormGroup.controls.fundingAmount.errors.max),o.xp6(7),o.Q6J("ngForOf",t.transTypes),o.xp6(2),o.Q6J("placeholder","0"===t.channelFormGroup.controls.selTransType.value?"Default":"1"===t.channelFormGroup.controls.selTransType.value?"Target Confirmation Blocks":"Fee (Sats/vByte)")("step",1)("required","0"!==t.channelFormGroup.controls.selTransType.value),o.xp6(1),o.Q6J("ngIf",null==t.channelFormGroup.controls.transTypeValue.errors?null:t.channelFormGroup.controls.transTypeValue.errors.required),o.xp6(4),o.Q6J("ngIf",""!==t.channelConnectionError),o.xp6(3),o.Oqu(""!==t.channelConnectionError?"Retry":"Open Channel"),o.xp6(2),o.Q6J("mat-dialog-close",!1),o.xp6(1),o.Oqu(null!=t.newlyAddedPeer&&t.newlyAddedPeer.pub_key?"Do It Later":"Close"))},directives:[l.xw,l.yH,w.dk,l.Wh,q.lW,w.dn,La.Vq,La.C0,Ae._Y,Ae.JL,Ae.sg,La.VY,D.KE,Ce.Nt,Ae.Fj,Te.h,Ae.JJ,Ae.u,Ae.Q7,a.O5,Ae.wV,D.bx,D.R9,_e.Rr,we.gD,a.sg,ye.ZT,D.TO,T.BN,ve.ey],styles:[""]}),e})();function Ba(e,t){1&e&&o._UZ(0,"mat-progress-bar",32)}function Ga(e,t){1&e&&(o.TgZ(0,"th",33),o._uU(1," Alias "),o.qZA())}const Ha=function(e){return{"max-width":e}};function za(e,t){if(1&e&&(o.TgZ(0,"td",34),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,Ha,n.screenSize===n.screenSizeEnum.XS?"12rem":"25rem")),o.xp6(1),o.hij(" ",null==e?null:e.alias," ")}}function Va(e,t){1&e&&(o.TgZ(0,"th",33),o._uU(1," Public Key "),o.qZA())}function Wa(e,t){if(1&e&&(o.TgZ(0,"td",34),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,Ha,n.screenSize===n.screenSizeEnum.XS?"5rem":"35rem")),o.xp6(1),o.hij(" ",null==e?null:e.pub_key," ")}}function Xa(e,t){1&e&&(o.TgZ(0,"th",35),o._uU(1," Sats Sent "),o.qZA())}function $a(e,t){if(1&e&&(o.TgZ(0,"td",36),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==e?null:e.sat_sent)," ")}}function ja(e,t){1&e&&(o.TgZ(0,"th",35),o._uU(1," Sats Received "),o.qZA())}function Ka(e,t){if(1&e&&(o.TgZ(0,"td",36),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==e?null:e.sat_recv)," ")}}function ei(e,t){1&e&&(o.TgZ(0,"th",35),o._uU(1," Ping "),o.qZA())}function ti(e,t){if(1&e&&(o.TgZ(0,"td",36),o.TgZ(1,"span",37),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==e?null:e.ping_time)," ")}}function ni(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"th",38),o.TgZ(1,"div",39),o.TgZ(2,"mat-select",40),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",41),o.NdJ("click",function(){return o.CHM(e),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function ai(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",42),o.TgZ(1,"div",39),o.TgZ(2,"mat-select",40),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",41),o.NdJ("click",function(t){const n=o.CHM(e).$implicit;return o.oxw().onPeerClick(n,t)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",41),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onOpenChannel(t)}),o._uU(7,"Open Channel"),o.qZA(),o.TgZ(8,"mat-option",41),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onPeerDetach(t)}),o._uU(9,"Disconnect"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function ii(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No connected peer."),o.qZA())}function si(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting peers..."),o.qZA())}function oi(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function li(e,t){if(1&e&&(o.TgZ(0,"td",43),o.YNc(1,ii,2,0,"p",44),o.YNc(2,si,2,0,"p",44),o.YNc(3,oi,2,1,"p",44),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=e.peers&&e.peers.data)||(null==e.peers.data?null:e.peers.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPeers.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.peers&&e.peers.data)||(null==e.peers.data?null:e.peers.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPeers.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.peers&&e.peers.data)||(null==e.peers.data?null:e.peers.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPeers.status)===e.apiCallStatusEnum.ERROR)}}const ri=function(e){return{"display-none":e}};function ci(e,t){if(1&e&&o._UZ(0,"tr",45),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,ri,(null==e.peers?null:e.peers.data)&&(null==e.peers||null==e.peers.data?null:e.peers.data.length)>0))}}function ui(e,t){1&e&&o._UZ(0,"tr",46)}function pi(e,t){1&e&&o._UZ(0,"tr",47)}const di=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}},hi=function(){return["no_peer"]};let mi=(()=>{class e{constructor(e,t,n,a){this.logger=e,this.store=t,this.rtlEffects=n,this.commonService=a,this.availableBalance=0,this.faUsers=g.FVb,this.displayedColumns=[],this.peersData=[],this.information={},this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","actions"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","sat_sent","sat_recv","actions"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","sat_sent","sat_recv","ping_time","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","pub_key","sat_sent","sat_recv","ping_time","actions"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchPeers.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPeers.message?JSON.stringify(this.apisCallStatus.FetchPeers.message):this.apisCallStatus.FetchPeers.message),this.information=e.information,this.availableBalance=e.blockchainBalance.total_balance||0,this.peersData=e.peers,this.peersData.length>0&&this.loadPeersTable(this.peersData),this.logger.info(e)})}ngAfterViewInit(){this.peersData.length>0&&this.loadPeersTable(this.peersData)}onPeerClick(e,t){this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Peer Information",showQRName:"Public Key",showQRField:e.pub_key,message:[[{key:"pub_key",value:e.pub_key,title:"Public Key",width:100}],[{key:"address",value:e.address,title:"Address",width:100}],[{key:"alias",value:e.alias,title:"Alias",width:40},{key:"inbound",value:e.inbound?"True":"False",title:"Inbound",width:30},{key:"ping_time",value:e.ping_time,title:"Ping Time",width:30,type:f.Gi.NUMBER}],[{key:"sat_sent",value:e.sat_sent,title:"Satoshis Sent",width:50,type:f.Gi.NUMBER},{key:"sat_recv",value:e.sat_recv,title:"Satoshis Received",width:50,type:f.Gi.NUMBER}],[{key:"bytes_sent",value:e.bytes_sent,title:"Bytes Sent",width:50,type:f.Gi.NUMBER},{key:"bytes_recv",value:e.bytes_recv,title:"Bytes Received",width:50,type:f.Gi.NUMBER}]]}}))}onConnectPeer(){this.store.dispatch(new ee.wu({data:{message:{peer:null,information:this.information,balance:this.availableBalance},component:Pa}}))}onOpenChannel(e){this.store.dispatch(new ee.wu({data:{alertTitle:"Open Channel",message:{peer:e,information:this.information,balance:this.availableBalance},component:Fa}}))}onPeerDetach(e){this.store.dispatch(new ee.b_({data:{type:f.n_.CONFIRM,alertTitle:"Disconnect Peer",titleMessage:"Disconnect peer: "+(e.alias?e.alias:e.pub_key),noBtnText:"Cancel",yesBtnText:"Disconnect"}})),this.rtlEffects.closeConfirm.pipe((0,d.R)(this.unSubs[3])).subscribe(t=>{t&&this.store.dispatch(new x.yw({pubkey:e.pub_key}))})}applyFilter(e){this.peers.filter=e.value.trim().toLowerCase()}loadPeersTable(e){this.peers=new Ze.by(e?[...e]:[]),this.peers.sort=this.sort,this.peers.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.peers.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.peers.paginator=this.paginator}onDownloadCSV(){this.peers.data&&this.peers.data.length>0&&this.commonService.downloadFile(this.peers.data,"Peers")}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(St.V),o.Y36(C.v))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-peers"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Peers")}])],decls:40,vars:14,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayout","row"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","alias"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","pub_key"],["matColumnDef","sat_sent"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","sat_recv"],["matColumnDef","ping_time"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","px-3",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"button",2),o.NdJ("click",function(){return t.onConnectPeer()}),o._uU(3,"Add Peer"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"div",4),o.TgZ(6,"div",5),o._UZ(7,"fa-icon",6),o.TgZ(8,"span",7),o._uU(9,"Connected Peers"),o.qZA(),o.qZA(),o.TgZ(10,"mat-form-field",8),o.TgZ(11,"input",9),o.NdJ("keyup",function(e){return t.applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(12,"div",10),o.YNc(13,Ba,1,0,"mat-progress-bar",11),o.TgZ(14,"table",12,13),o.ynx(16,14),o.YNc(17,Ga,2,0,"th",15),o.YNc(18,za,2,4,"td",16),o.BQk(),o.ynx(19,17),o.YNc(20,Va,2,0,"th",15),o.YNc(21,Wa,2,4,"td",16),o.BQk(),o.ynx(22,18),o.YNc(23,Xa,2,0,"th",19),o.YNc(24,$a,4,3,"td",20),o.BQk(),o.ynx(25,21),o.YNc(26,ja,2,0,"th",19),o.YNc(27,Ka,4,3,"td",20),o.BQk(),o.ynx(28,22),o.YNc(29,ei,2,0,"th",19),o.YNc(30,ti,4,3,"td",20),o.BQk(),o.ynx(31,23),o.YNc(32,ni,6,0,"th",24),o.YNc(33,ai,10,0,"td",25),o.BQk(),o.ynx(34,26),o.YNc(35,li,4,3,"td",27),o.BQk(),o.YNc(36,ci,1,3,"tr",28),o.YNc(37,ui,1,0,"tr",29),o.YNc(38,pi,1,0,"tr",30),o.qZA(),o.qZA(),o._UZ(39,"mat-paginator",31),o.qZA(),o.qZA()),2&e&&(o.xp6(7),o.Q6J("icon",t.faUsers),o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPeers.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.peers)("ngClass",o.VKq(11,di,""!==t.errorMessage)),o.xp6(22),o.Q6J("matFooterRowDef",o.DdM(13,hi)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS))},directives:[l.xw,l.yH,l.Wh,q.lW,T.BN,D.KE,Ce.Nt,E.$V,a.O5,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,a.PC,v.Zl,we.gD,we.$L,ve.ey,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],pipes:[a.JJ],styles:[".mat-column-alias[_ngcontent-%COMP%]{flex:1 1 25%}.mat-column-alias[_ngcontent-%COMP%], .mat-column-pub_key[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-pub_key[_ngcontent-%COMP%]{flex:1 1 35%;padding-left:2rem}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem;flex:1 1 10%}.mat-column-ping_time[_ngcontent-%COMP%], .mat-column-sat_recv[_ngcontent-%COMP%], .mat-column-sat_sent[_ngcontent-%COMP%]{flex:1 1 13%;width:13%}"]}),e})();function gi(e,t){if(1&e&&(o.TgZ(0,"span",7),o._uU(1,"Open"),o.qZA()),2&e){const e=o.oxw();o.s9C("matBadge",e.numOpenChannels)}}function fi(e,t){if(1&e&&(o.TgZ(0,"span",7),o._uU(1,"Pending"),o.qZA()),2&e){const e=o.oxw();o.s9C("matBadge",e.numPendingChannels)}}function xi(e,t){if(1&e&&(o.TgZ(0,"span",7),o._uU(1,"Closed"),o.qZA()),2&e){const e=o.oxw();o.s9C("matBadge",e.numClosedChannels)}}function Zi(e,t){if(1&e&&(o.TgZ(0,"span",7),o._uU(1,"Active HTLCs"),o.qZA()),2&e){const e=o.oxw();o.s9C("matBadge",e.numActiveHTLCs)}}let yi=(()=>{class e{constructor(e,t,n){this.logger=e,this.store=t,this.router=n,this.numOpenChannels=0,this.numPendingChannels=0,this.numClosedChannels=0,this.numActiveHTLCs=0,this.peers=[],this.information={},this.totalBalance=0,this.links=[{link:"open",name:"Open"},{link:"pending",name:"Pending"},{link:"closed",name:"Closed"},{link:"activehtlcs",name:"Active HTLCs"}],this.activeLink=0,this.unSubs=[new p.x,new p.x]}ngOnInit(){this.activeLink=this.links.findIndex(e=>e.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e instanceof i.Av)).subscribe(e=>{this.activeLink=this.links.findIndex(t=>t.link===e.urlAfterRedirects.substring(e.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select("lnd").pipe((0,d.R)(this.unSubs[1])).subscribe(e=>{this.numOpenChannels=e.allChannels&&e.allChannels.length?e.allChannels.length:0,this.numPendingChannels=e.numberOfPendingChannels.total_channels?e.numberOfPendingChannels.total_channels:0,this.numClosedChannels=e.closedChannels&&e.closedChannels.length?e.closedChannels.length:0,this.numActiveHTLCs=e.allChannels.reduce((e,t)=>e+(t.pending_htlcs&&t.pending_htlcs.length>0?t.pending_htlcs.length:0),0),this.information=e.information,this.totalBalance=+e.blockchainBalance.total_balance,this.peers=e.peers,this.peers.forEach(e=>{e.alias&&""!==e.alias||(e.alias=e.pub_key.substring(0,15)+"...")}),this.logger.info(e)})}onOpenChannel(){this.store.dispatch(new ee.wu({data:{alertTitle:"Open Channel",message:{peers:this.peers,information:this.information,balance:this.totalBalance},component:Fa}}))}onSelectedTabChange(e){this.router.navigateByUrl("/lnd/connections/channels/"+this.links[e.index].link)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channels-tables"]],decls:16,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayout","row"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100",1,"my-2","bordered-box"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"button",2),o.NdJ("click",function(){return t.onOpenChannel()}),o._uU(3,"Open Channel"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-tab-group",4),o.NdJ("selectedIndexChange",function(e){return t.activeLink=e})("selectedTabChange",function(e){return t.onSelectedTabChange(e)}),o.TgZ(6,"mat-tab"),o.YNc(7,gi,2,1,"ng-template",5),o.qZA(),o.TgZ(8,"mat-tab"),o.YNc(9,fi,2,1,"ng-template",5),o.qZA(),o.TgZ(10,"mat-tab"),o.YNc(11,xi,2,1,"ng-template",5),o.qZA(),o.TgZ(12,"mat-tab"),o.YNc(13,Zi,2,1,"ng-template",5),o.qZA(),o.qZA(),o.TgZ(14,"div",6),o._UZ(15,"router-outlet"),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(5),o.Q6J("selectedIndex",t.activeLink))},directives:[l.xw,l.yH,l.Wh,q.lW,ge.SP,ge.uX,ge.uD,i.lC,ra.k],styles:[""]}),e})();var Ai=n(1403),Ci=n(2609);function Ti(e,t){if(1&e&&(o.TgZ(0,"div"),o.TgZ(1,"div",9),o.TgZ(2,"div",14),o.TgZ(3,"h4",11),o._uU(4,"Commit Fee"),o.qZA(),o.TgZ(5,"span",15),o._uU(6),o.ALo(7,"number"),o.qZA(),o.qZA(),o.TgZ(8,"div",14),o.TgZ(9,"h4",11),o._uU(10,"Commit Weight"),o.qZA(),o.TgZ(11,"span",15),o._uU(12),o.ALo(13,"number"),o.qZA(),o.qZA(),o.TgZ(14,"div",14),o.TgZ(15,"h4",11),o._uU(16,"Fee/KW"),o.qZA(),o.TgZ(17,"span",15),o._uU(18),o.ALo(19,"number"),o.qZA(),o.qZA(),o.TgZ(20,"div",14),o.TgZ(21,"h4",11),o._uU(22,"Static Remote Key"),o.qZA(),o.TgZ(23,"span",15),o._uU(24),o.qZA(),o.qZA(),o.qZA(),o._UZ(25,"mat-divider",13),o.TgZ(26,"div",9),o.TgZ(27,"div",14),o.TgZ(28,"h4",11),o._uU(29),o.qZA(),o.TgZ(30,"span",15),o._uU(31),o.ALo(32,"number"),o.qZA(),o.qZA(),o.TgZ(33,"div",14),o.TgZ(34,"h4",11),o._uU(35),o.qZA(),o.TgZ(36,"span",15),o._uU(37),o.ALo(38,"number"),o.qZA(),o.qZA(),o.TgZ(39,"div",14),o.TgZ(40,"h4",11),o._uU(41,"Unsettled Balance"),o.qZA(),o.TgZ(42,"span",15),o._uU(43),o.ALo(44,"number"),o.qZA(),o.qZA(),o.TgZ(45,"div",14),o.TgZ(46,"h4",11),o._uU(47,"CSV Delay"),o.qZA(),o.TgZ(48,"span",15),o._uU(49),o.ALo(50,"number"),o.qZA(),o.qZA(),o.qZA(),o._UZ(51,"mat-divider",13),o.TgZ(52,"div",9),o.TgZ(53,"div",14),o.TgZ(54,"h4",11),o._uU(55,"Local Reserve (Sats)"),o.qZA(),o.TgZ(56,"span",15),o._uU(57),o.ALo(58,"number"),o.qZA(),o.qZA(),o.TgZ(59,"div",14),o.TgZ(60,"h4",11),o._uU(61,"Remote Reserve (Sats)"),o.qZA(),o.TgZ(62,"span",15),o._uU(63),o.ALo(64,"number"),o.qZA(),o.qZA(),o.TgZ(65,"div",14),o.TgZ(66,"h4",11),o._uU(67,"Lifetime (Seconds)"),o.qZA(),o.TgZ(68,"span",15),o._uU(69),o.ALo(70,"number"),o.qZA(),o.qZA(),o.TgZ(71,"div",14),o.TgZ(72,"h4",11),o._uU(73,"Pending HTLCs"),o.qZA(),o.TgZ(74,"span",15),o._uU(75),o.ALo(76,"number"),o.qZA(),o.qZA(),o.qZA(),o._UZ(77,"mat-divider",13),o.qZA()),2&e){const e=o.oxw();o.xp6(6),o.Oqu(o.lcZ(7,17,e.channel.commit_fee)),o.xp6(6),o.Oqu(o.lcZ(13,19,e.channel.commit_weight)),o.xp6(6),o.Oqu(o.lcZ(19,21,e.channel.fee_per_kw)),o.xp6(6),o.Oqu(e.channel.static_remote_key?"Yes":"No"),o.xp6(1),o.Q6J("inset",!0),o.xp6(4),o.Oqu(e.screenSize===e.screenSizeEnum.XS?"Total Sats Sent":"Total Satoshis Sent"),o.xp6(2),o.Oqu(o.lcZ(32,23,e.channel.total_satoshis_sent)),o.xp6(4),o.Oqu(e.screenSize===e.screenSizeEnum.XS?"Total Sats Recv":"Total Satoshis Received"),o.xp6(2),o.Oqu(o.lcZ(38,25,e.channel.total_satoshis_received)),o.xp6(6),o.Oqu(o.lcZ(44,27,e.channel.unsettled_balance)),o.xp6(6),o.Oqu(o.lcZ(50,29,e.channel.csv_delay)),o.xp6(2),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.lcZ(58,31,e.channel.local_chan_reserve_sat)),o.xp6(6),o.Oqu(o.lcZ(64,33,e.channel.remote_chan_reserve_sat)),o.xp6(6),o.Oqu(o.lcZ(70,35,e.channel.lifetime)),o.xp6(6),o.Oqu(o.lcZ(76,37,null==e.channel||null==e.channel.pending_htlcs?null:e.channel.pending_htlcs.length)),o.xp6(2),o.Q6J("inset",!0)}}function bi(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Show Advanced"),o.qZA())}function wi(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Hide Advanced"),o.qZA())}function _i(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",23),o.NdJ("copied",function(t){return o.CHM(e),o.oxw().onCopyChanID(t)}),o._uU(1,"Copy Channel ID"),o.qZA()}if(2&e){const e=o.oxw();o.Q6J("payload",e.channel.chan_id)}}function vi(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",24),o.NdJ("click",function(){return o.CHM(e),o.oxw().onClose()}),o._uU(1,"OK"),o.qZA()}}const qi=function(e){return{"xs-scroll-y":e}};let Si=(()=>{class e{constructor(e,t,n,a,i){this.dialogRef=e,this.data=t,this.logger=n,this.commonService=a,this.snackBar=i,this.faReceipt=g.dLy,this.showAdvanced=!1,this.showCopy=!0,this.showCopyField=null,this.screenSize="",this.screenSizeEnum=f.cu}ngOnInit(){this.channel=this.data.channel,this.showCopy=this.data.showCopy,this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyChanID(e){this.snackBar.open("Channel ID "+e+" copied."),this.logger.info("Copied Text: "+e)}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(ye.WI),o.Y36(Z.mQ),o.Y36(C.v),o.Y36(Ai.ux))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-information"]],decls:94,vars:36,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"my-1",3,"inset"],["fxFlex","25"],[1,"overflow-wrap","foreground-secondary-text"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","100",1,"mt-1"],["mat-stroked-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(e,t){if(1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o._UZ(4,"fa-icon",4),o.TgZ(5,"span",5),o._uU(6,"Channel Information"),o.qZA(),o.qZA(),o.TgZ(7,"button",6),o.NdJ("click",function(){return t.onClose()}),o._uU(8,"X"),o.qZA(),o.qZA(),o.TgZ(9,"mat-card-content",7),o.TgZ(10,"div",8),o.TgZ(11,"div",9),o.TgZ(12,"div",10),o.TgZ(13,"h4",11),o._uU(14,"Channel ID"),o.qZA(),o.TgZ(15,"span",12),o._uU(16),o.qZA(),o.qZA(),o.TgZ(17,"div",10),o.TgZ(18,"h4",11),o._uU(19,"Peer Alias"),o.qZA(),o.TgZ(20,"span",12),o._uU(21),o.qZA(),o.qZA(),o.qZA(),o._UZ(22,"mat-divider",13),o.TgZ(23,"div",9),o.TgZ(24,"div",1),o.TgZ(25,"h4",11),o._uU(26,"Channel Point"),o.qZA(),o.TgZ(27,"span",12),o._uU(28),o.qZA(),o.qZA(),o.qZA(),o._UZ(29,"mat-divider",13),o.TgZ(30,"div",9),o.TgZ(31,"div",1),o.TgZ(32,"h4",11),o._uU(33,"Peer Public Key"),o.qZA(),o.TgZ(34,"span",12),o._uU(35),o.qZA(),o.qZA(),o.qZA(),o._UZ(36,"mat-divider",13),o.TgZ(37,"div",9),o.TgZ(38,"div",14),o.TgZ(39,"h4",11),o._uU(40,"Local Balance"),o.qZA(),o.TgZ(41,"span",15),o._uU(42),o.ALo(43,"number"),o.qZA(),o.qZA(),o.TgZ(44,"div",14),o.TgZ(45,"h4",11),o._uU(46,"Remote Balance"),o.qZA(),o.TgZ(47,"span",15),o._uU(48),o.ALo(49,"number"),o.qZA(),o.qZA(),o.TgZ(50,"div",14),o.TgZ(51,"h4",11),o._uU(52,"Capacity"),o.qZA(),o.TgZ(53,"span",15),o._uU(54),o.ALo(55,"number"),o.qZA(),o.qZA(),o.TgZ(56,"div",14),o.TgZ(57,"h4",11),o._uU(58,"Uptime (Seconds)"),o.qZA(),o.TgZ(59,"span",15),o._uU(60),o.ALo(61,"number"),o.qZA(),o.qZA(),o.qZA(),o._UZ(62,"mat-divider",13),o.TgZ(63,"div",9),o.TgZ(64,"div",14),o.TgZ(65,"h4",11),o._uU(66,"Active"),o.qZA(),o.TgZ(67,"span",15),o._uU(68),o.qZA(),o.qZA(),o.TgZ(69,"div",14),o.TgZ(70,"h4",11),o._uU(71,"Private"),o.qZA(),o.TgZ(72,"span",15),o._uU(73),o.qZA(),o.qZA(),o.TgZ(74,"div",14),o.TgZ(75,"h4",11),o._uU(76,"Initiator"),o.qZA(),o.TgZ(77,"span",15),o._uU(78),o.qZA(),o.qZA(),o.TgZ(79,"div",14),o.TgZ(80,"h4",11),o._uU(81,"Number of Updates"),o.qZA(),o.TgZ(82,"span",15),o._uU(83),o.ALo(84,"number"),o.qZA(),o.qZA(),o.qZA(),o._UZ(85,"mat-divider",13),o.YNc(86,Ti,78,39,"div",16),o.TgZ(87,"div",17),o.TgZ(88,"button",18),o.NdJ("click",function(){return t.onShowAdvanced()}),o.YNc(89,bi,2,0,"p",19),o.YNc(90,wi,2,0,"ng-template",null,20,o.W1O),o.qZA(),o.YNc(92,_i,2,1,"button",21),o.YNc(93,vi,2,0,"button",22),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.MAs(91);o.xp6(4),o.Q6J("icon",t.faReceipt),o.xp6(5),o.Q6J("ngClass",o.VKq(34,qi,t.screenSize===t.screenSizeEnum.XS)),o.xp6(7),o.Oqu(t.channel.chan_id),o.xp6(5),o.Oqu(t.channel.remote_alias),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(t.channel.channel_point),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(t.channel.remote_pubkey),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.lcZ(43,24,t.channel.local_balance)),o.xp6(6),o.Oqu(o.lcZ(49,26,t.channel.remote_balance)),o.xp6(6),o.Oqu(o.lcZ(55,28,t.channel.capacity)),o.xp6(6),o.Oqu(o.lcZ(61,30,t.channel.uptime)),o.xp6(2),o.Q6J("inset",!0),o.xp6(6),o.Oqu(t.channel.active?"Yes":"No"),o.xp6(5),o.Oqu(t.channel.private?"Yes":"No"),o.xp6(5),o.Oqu(t.channel.initiator?"Yes":"No"),o.xp6(5),o.Oqu(o.lcZ(84,32,t.channel.num_updates)),o.xp6(2),o.Q6J("inset",!0),o.xp6(1),o.Q6J("ngIf",t.showAdvanced),o.xp6(3),o.Q6J("ngIf",!t.showAdvanced)("ngIfElse",e),o.xp6(3),o.Q6J("ngIf",t.showCopy),o.xp6(1),o.Q6J("ngIf",!t.showCopy)}},directives:[l.xw,l.Wh,l.yH,w.dk,T.BN,q.lW,w.dn,a.mk,v.oO,M.d,a.O5,Te.h,Ci.y],pipes:[a.JJ],styles:[""]}),e})();var Fi=n(2041);const Li=["stepper"];function ki(e,t){if(1&e&&o._uU(0),2&e){const e=o.oxw();o.Oqu(e.inputFormLabel)}}function Ni(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function Ui(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount must be a positive number."),o.qZA())}function Ii(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("Amount must be less than or equal to ",null==e.selChannel?null:e.selChannel.local_balance,".")}}function Oi(e,t){if(1&e&&(o.TgZ(0,"mat-option",52),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e),o.xp6(1),o.Oqu(e.remote_alias||e.chan_id)}}function Ji(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Peer is required."),o.qZA())}function Di(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Peer not found in the list."),o.qZA())}function Ri(e,t){if(1&e&&o._uU(0),2&e){const e=o.oxw();o.Oqu(e.feeFormLabel)}}function Mi(e,t){if(1&e&&(o.TgZ(0,"mat-option",52),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e),o.xp6(1),o.hij(" ",e.name," ")}}function Ei(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("",e.feeFormGroup.controls.selFeeLimitType.value?e.feeFormGroup.controls.selFeeLimitType.value.placeholder:e.feeLimitTypes[0].placeholder," is required.")}}function Qi(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("",e.feeFormGroup.controls.selFeeLimitType.value?e.feeFormGroup.controls.selFeeLimitType.value.placeholder:e.feeLimitTypes[0].placeholder," must be a positive number.")}}function Yi(e,t){1&e&&o._uU(0,"Invoice/Payment")}function Pi(e,t){1&e&&(o.TgZ(0,"mat-icon",53),o._uU(1,"check"),o.qZA())}function Bi(e,t){1&e&&o._UZ(0,"mat-progress-bar",54)}function Gi(e,t){if(1&e&&(o.TgZ(0,"mat-icon",53),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Oqu(null!=e.paymentStatus&&e.paymentStatus.error?"close":"check")}}function Hi(e,t){1&e&&o._UZ(0,"div",7)}function zi(e,t){1&e&&o._UZ(0,"mat-progress-bar",54)}function Vi(e,t){if(1&e&&(o.TgZ(0,"h4",55),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Oqu(e.paymentStatus&&e.paymentStatus.payment_hash?"Rebalance Successful.":"Rebalance Failed.")}}function Wi(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",56),o.NdJ("click",function(){return o.CHM(e),o.oxw().onRestart()}),o._uU(1,"Start Again"),o.qZA()}}function Xi(e,t){1&e&&o.GkF(0)}function $i(e,t){if(1&e&&o.YNc(0,Xi,1,0,"ng-container",57),2&e){const e=o.oxw(),t=o.MAs(98),n=o.MAs(100);o.Q6J("ngTemplateOutlet",e.paymentStatus.error?t:n)}}function ji(e,t){if(1&e&&(o.TgZ(0,"div",7),o.TgZ(1,"span",40),o._uU(2),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.hij("Error: ",e.paymentStatus.error,"")}}function Ki(e,t){if(1&e&&(o.TgZ(0,"div",7),o.TgZ(1,"div",0),o.TgZ(2,"div",1),o.TgZ(3,"h4",58),o._uU(4,"Payment Hash"),o.qZA(),o.TgZ(5,"span",40),o._uU(6),o.qZA(),o.qZA(),o.qZA(),o._UZ(7,"mat-divider",59),o.TgZ(8,"div",0),o.TgZ(9,"div",60),o.TgZ(10,"h4",58),o._uU(11),o.qZA(),o.TgZ(12,"span",40),o._uU(13),o.qZA(),o.qZA(),o.TgZ(14,"div",60),o.TgZ(15,"h4",58),o._uU(16,"Number of Hops"),o.qZA(),o.TgZ(17,"span",40),o._uU(18),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(6),o.Oqu(e.paymentStatus.payment_hash),o.xp6(5),o.hij("Total Fees (",e.paymentStatus.payment_route.total_fees_msat?"mSats":"Sats",")"),o.xp6(2),o.Oqu(e.paymentStatus.payment_route.total_fees_msat?e.paymentStatus.payment_route.total_fees_msat:e.paymentStatus.payment_route.total_fees?e.paymentStatus.payment_route.total_fees:0),o.xp6(5),o.Oqu(e.paymentStatus&&e.paymentStatus.payment_route&&e.paymentStatus.payment_route.hops&&e.paymentStatus.payment_route.hops.length?e.paymentStatus.payment_route.hops.length:0)}}let es=(()=>{class e{constructor(e,t,n,a,i,s,o){this.dialogRef=e,this.data=t,this.logger=n,this.store=a,this.actions=i,this.formBuilder=s,this.decimalPipe=o,this.faInfoCircle=g.sqG,this.invoices={},this.selChannel={},this.activeChannels=[],this.feeLimitTypes=[],this.queryRoute={},this.paymentRequest="",this.paymentStatus=null,this.flgReusingInvoice=!1,this.flgInvoiceGenerated=!1,this.flgPaymentSent=!1,this.inputFormLabel="Amount to rebalance",this.feeFormLabel="Select rebalance fee",this.flgEditable=!0,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){let e="",t="";this.selChannel=this.data.message.selChannel,this.activeChannels=this.data.message.channels.filter(e=>e.active&&e.chan_id!==this.selChannel.chan_id&&e.remote_balance>0),this.activeChannels=this.activeChannels.sort((n,a)=>(e=n.remote_alias?n.remote_alias.toLowerCase():n.chan_id?n.chan_id.toLowerCase():"",t=a.remote_alias?a.remote_alias.toLowerCase():n.chan_id.toLowerCase(),et?1:0)),f.Vc.forEach((e,t)=>{t>0&&this.feeLimitTypes.push(e)}),this.inputFormGroup=this.formBuilder.group({hiddenAmount:["",[Ae.kI.required]],rebalanceAmount:["",[Ae.kI.required,Ae.kI.min(1),Ae.kI.max(this.selChannel.local_balance)]],selRebalancePeer:[null,Ae.kI.required]}),this.feeFormGroup=this.formBuilder.group({selFeeLimitType:[this.feeLimitTypes[0],Ae.kI.required],feeLimit:["",[Ae.kI.required,Ae.kI.min(0)]],hiddenFeeLimit:["",[Ae.kI.required]]}),this.statusFormGroup=this.formBuilder.group({}),this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.invoices=e.invoices,this.logger.info(e)}),this.actions.pipe((0,d.R)(this.unSubs[1]),(0,h.h)(e=>e.type===x.qs||e.type===x.ug||e.type===x.mZ)).subscribe(e=>{e.type===x.qs&&(this.queryRoute=e.payload),e.type===x.ug&&(this.logger.info(e.payload),this.flgPaymentSent=!0,this.paymentStatus=e.payload,this.flgEditable=!0),e.type===x.mZ&&(this.logger.info(e.payload),this.flgInvoiceGenerated=!0,this.sendPayment(e.payload.paymentRequest))}),this.inputFormGroup.get("rebalanceAmount").valueChanges.pipe((0,d.R)(this.unSubs[2]),(0,da.O)(0)).subscribe(e=>{this.inputFormGroup.controls.selRebalancePeer.setValue(""),this.inputFormGroup.controls.selRebalancePeer.setErrors(null),this.filteredActiveChannels=(0,Fi.of)(e?this.filterActiveChannels():this.activeChannels.slice())}),this.inputFormGroup.get("selRebalancePeer").valueChanges.pipe((0,d.R)(this.unSubs[3]),(0,da.O)("")).subscribe(e=>{"string"==typeof e&&(this.filteredActiveChannels=(0,Fi.of)(this.filterActiveChannels()))})}onSelectFee(){if(this.inputFormGroup.controls.selRebalancePeer.value&&"string"==typeof this.inputFormGroup.controls.selRebalancePeer.value&&this.onSelectedPeerChanged(),!this.inputFormGroup.controls.selRebalancePeer.value||"string"==typeof this.inputFormGroup.controls.selRebalancePeer.value||!this.inputFormGroup.controls.rebalanceAmount.value)return!0;0===this.stepper.selectedIndex&&(this.inputFormGroup.controls.hiddenAmount.setValue(this.inputFormGroup.controls.rebalanceAmount.value),this.stepper.next()),this.queryRoute=null,this.feeFormGroup.reset(),this.feeFormGroup.controls.selFeeLimitType.setValue(this.feeLimitTypes[0]),this.feeFormGroup.controls.feeLimit.setValue(""),this.feeFormGroup.controls.feeLimit.setErrors(null),this.feeFormGroup.controls.hiddenFeeLimit.setValue(""),this.feeFormGroup.controls.hiddenFeeLimit.setErrors(null)}stepSelectionChanged(e){switch(e.selectedIndex){case 0:this.inputFormLabel="Amount to rebalance",this.feeFormLabel="Select rebalance fee";break;case 1:this.inputFormLabel=this.inputFormGroup.controls.rebalanceAmount.value||this.inputFormGroup.controls.selRebalancePeer.value.remote_alias?"Rebalancing Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.rebalanceAmount.value?this.inputFormGroup.controls.rebalanceAmount.value:0)+" Sats | Peer: "+(this.inputFormGroup.controls.selRebalancePeer.value.remote_alias?this.inputFormGroup.controls.selRebalancePeer.value.remote_alias:this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey.substring(0,15)+"..."):"Amount to rebalance",this.feeFormLabel="Select rebalance fee";break;case 2:this.inputFormLabel=this.inputFormGroup.controls.rebalanceAmount.value||this.inputFormGroup.controls.selRebalancePeer.value.remote_alias?"Rebalancing Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.rebalanceAmount.value?this.inputFormGroup.controls.rebalanceAmount.value:0)+" Sats | Peer: "+(this.inputFormGroup.controls.selRebalancePeer.value.remote_alias?this.inputFormGroup.controls.selRebalancePeer.value.remote_alias:this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey.substring(0,15)+"..."):"Amount to rebalance",this.feeFormLabel=this.queryRoute&&this.queryRoute.routes&&this.queryRoute.routes.length>0&&(this.queryRoute.routes[0].total_fees_msat||this.queryRoute.routes[0].hops&&this.queryRoute.routes[0].hops.length)?this.feeFormGroup.controls.selFeeLimitType.value.placeholder+": "+this.decimalPipe.transform(this.feeFormGroup.controls.feeLimit.value?this.feeFormGroup.controls.feeLimit.value:0)+" | Hops: "+this.queryRoute.routes[0].hops.length:"Select rebalance fee";break;default:this.inputFormLabel="Amount to rebalance",this.feeFormLabel="Select rebalance fee"}e.selectedIndex+this.selChannel.local_balance||!this.feeFormGroup.controls.feeLimit.value||this.feeFormGroup.controls.feeLimit.value<0||!this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey)return!0;this.feeFormGroup.controls.hiddenFeeLimit.setValue(this.feeFormGroup.controls.feeLimit.value),this.stepper.next(),this.flgEditable=!1,this.paymentRequest="",this.paymentStatus=null,this.flgReusingInvoice=!1,this.flgInvoiceGenerated=!1,this.flgPaymentSent=!1;const e=this.findUnsettledInvoice();e?(this.flgReusingInvoice=!0,this.sendPayment(e.payment_request)):this.store.dispatch(new x.H1({uiMessage:f.m6.NO_SPINNER,memo:"Local-Rebalance-"+this.inputFormGroup.controls.rebalanceAmount.value+"-Sats",invoiceValue:this.inputFormGroup.controls.rebalanceAmount.value,private:!1,expiry:3600,pageSize:f.IV,openModal:!1}))}findUnsettledInvoice(){return this.invoices.invoices.find(e=>(0==+e.settle_date||!e.settle_date)&&e.memo==="Local-Rebalance-"+this.inputFormGroup.controls.rebalanceAmount.value+"-Sats"&&"CANCELED"!==e.state)}sendPayment(e){this.flgInvoiceGenerated=!0,this.paymentRequest=e,this.store.dispatch(new x.Ar({uiMessage:f.m6.NO_SPINNER,paymentReq:e,outgoingChannel:this.selChannel,feeLimitType:this.feeFormGroup.controls.selFeeLimitType.value,feeLimit:this.feeFormGroup.controls.feeLimit.value,allowSelfPayment:!0,lastHopPubkey:this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey,fromDialog:!0}))}filterActiveChannels(){return this.activeChannels.filter(e=>e.remote_balance>=this.inputFormGroup.controls.rebalanceAmount.value&&e.chan_id!==this.selChannel.chan_id&&(0===e.remote_alias.toLowerCase().indexOf(this.inputFormGroup.controls.selRebalancePeer.value?this.inputFormGroup.controls.selRebalancePeer.value.toLowerCase():"")||0===e.chan_id.toLowerCase().indexOf(this.inputFormGroup.controls.selRebalancePeer.value?this.inputFormGroup.controls.selRebalancePeer.value.toLowerCase():"")))}onSelectedPeerChanged(){if(this.inputFormGroup.controls.selRebalancePeer.value&&this.inputFormGroup.controls.selRebalancePeer.value.length>0&&"string"==typeof this.inputFormGroup.controls.selRebalancePeer.value){const e=this.activeChannels.filter(e=>e.remote_alias.length===this.inputFormGroup.controls.selRebalancePeer.value.length&&0===e.remote_alias.toLowerCase().indexOf(this.inputFormGroup.controls.selRebalancePeer.value?this.inputFormGroup.controls.selRebalancePeer.value.toLowerCase():""));e&&e.length>0?(this.inputFormGroup.controls.selRebalancePeer.setValue(e[0]),this.inputFormGroup.controls.selRebalancePeer.setErrors(null)):this.inputFormGroup.controls.selRebalancePeer.setErrors({notfound:!0})}}displayFn(e){return e&&e.remote_alias?e.remote_alias:e&&e.chan_id?e.chan_id:""}onClose(){this.dialogRef.close(!1)}onRestart(){this.flgInvoiceGenerated=!1,this.flgPaymentSent=!1,this.flgEditable=!0,this.stepper.reset(),this.inputFormGroup.reset(),this.feeFormGroup.reset(),this.statusFormGroup.reset(),this.inputFormGroup.controls.hiddenAmount.setValue(""),this.inputFormGroup.controls.hiddenAmount.setErrors(null),this.inputFormGroup.controls.rebalanceAmount.setValue(""),this.inputFormGroup.controls.rebalanceAmount.setErrors(null),this.inputFormGroup.controls.selRebalancePeer.setValue(""),this.inputFormGroup.controls.selRebalancePeer.setErrors(null),this.filteredActiveChannels=(0,Fi.of)(this.activeChannels)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(ye.WI),o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(A.eX),o.Y36(Ae.qu),o.Y36(a.JJ))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-rebalance"]],viewQuery:function(e,t){if(1&e&&o.Gf(Li,5),2&e){let e;o.iGM(e=o.CRH())&&(t.stepper=e.first)}},decls:101,vars:45,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","15","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","space-between stretch",1,"padding-gap-large"],["fxFlex","40"],["fxFlex","30"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["fxLayout","column","fxLayout.gt-sm","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","48"],["autoFocus","","matInput","","placeholder","Amount","type","number","tabindex","1","formControlName","rebalanceAmount","required","",3,"step"],["matSuffix",""],[4,"ngIf"],["fxFlex","48","fxLayoutAlign","start end"],["type","text","placeholder","Receive from Peer","aria-label","Receive from Peer","matInput","","formControlName","selRebalancePeer","tabindex","2","required","",3,"matAutocomplete","change"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],[3,"value",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","submit",3,"click"],["matStepLabel","","disabled","true"],["tabindex","6","formControlName","selFeeLimitType","Placeholder","Fee Limits","required",""],["matInput","","formControlName","feeLimit","type","number","tabindex","7","required","",3,"placeholder","step"],["mat-stroked-button","","color","primary","tabindex","8","type","submit",3,"click"],[3,"stepControl"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"flat-expansion-panel","mb-2"],["fxLayoutAlign","start center","fxFlex","100"],["class","ml-1 icon-small",4,"ngIf"],[1,"foreground-secondary-text"],["fxFlex","100","color","primary","mode","indeterminate",4,"ngIf"],["fxFlex","100",1,"flat-expansion-panel",3,"expanded"],["fxLayout","column",4,"ngIf","ngIfElse"],["fxLayoutAlign","start","class","font-bold-500 mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-1"],["mat-flat-button","","color","primary","tabindex","11","type","button",3,"click",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["paymentStatusBlock",""],["paymentFailedBlock",""],["paymentSuccessfulBlock",""],[3,"value"],[1,"ml-1","icon-small"],["fxFlex","100","color","primary","mode","indeterminate"],["fxLayoutAlign","start",1,"font-bold-500","mt-1"],["mat-flat-button","","color","primary","tabindex","11","type","button",3,"click"],[4,"ngTemplateOutlet"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"w-100","my-1"],["fxFlex","50"]],template:function(e,t){if(1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Channel Rebalance"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return t.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"div",7),o.TgZ(10,"div",8),o.TgZ(11,"div",9),o._UZ(12,"fa-icon",10),o.TgZ(13,"span"),o._uU(14,"Circular Rebalance is a payment you make to *yourselves* to affect a relative change in the balances of two channels. This is accomplished by sending payment out from the selected channel and receiving it back on the channel with the selected peer. Please note, you will be paying routing fee to balance the channels in this manner."),o.qZA(),o.qZA(),o.qZA(),o.TgZ(15,"div",11),o.TgZ(16,"p",12),o.TgZ(17,"strong"),o._uU(18,"Channel Peer:\xa0"),o.qZA(),o._uU(19),o.ALo(20,"titlecase"),o.qZA(),o.TgZ(21,"p",13),o.TgZ(22,"strong"),o._uU(23,"Channel ID:\xa0"),o.qZA(),o._uU(24),o.qZA(),o._UZ(25,"p",13),o.qZA(),o.TgZ(26,"mat-vertical-stepper",14,15),o.NdJ("selectionChange",function(e){return t.stepSelectionChanged(e)}),o.TgZ(28,"mat-step",16),o.TgZ(29,"form",17),o.YNc(30,ki,1,1,"ng-template",18),o.TgZ(31,"div",19),o.TgZ(32,"mat-form-field",20),o._UZ(33,"input",21),o.TgZ(34,"mat-hint"),o._uU(35),o.qZA(),o.TgZ(36,"span",22),o._uU(37,"Sats"),o.qZA(),o.YNc(38,Ni,2,0,"mat-error",23),o.YNc(39,Ui,2,0,"mat-error",23),o.YNc(40,Ii,2,1,"mat-error",23),o.qZA(),o.TgZ(41,"mat-form-field",24),o.TgZ(42,"input",25),o.NdJ("change",function(){return t.onSelectedPeerChanged()}),o.qZA(),o.TgZ(43,"mat-autocomplete",26,27),o.NdJ("optionSelected",function(){return t.onSelectedPeerChanged()}),o.YNc(45,Oi,2,2,"mat-option",28),o.ALo(46,"async"),o.qZA(),o.YNc(47,Ji,2,0,"mat-error",23),o.YNc(48,Di,2,0,"mat-error",23),o.qZA(),o.qZA(),o.TgZ(49,"div",29),o.TgZ(50,"button",30),o.NdJ("click",function(){return t.onSelectFee()}),o._uU(51,"Select Fee"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(52,"mat-step",16),o.TgZ(53,"form",17),o.YNc(54,Ri,1,1,"ng-template",31),o.TgZ(55,"div",19),o.TgZ(56,"div",19),o.TgZ(57,"mat-form-field",24),o.TgZ(58,"mat-select",32),o.YNc(59,Mi,2,2,"mat-option",28),o.qZA(),o.qZA(),o.TgZ(60,"mat-form-field",20),o._UZ(61,"input",33),o.YNc(62,Ei,2,1,"mat-error",23),o.YNc(63,Qi,2,1,"mat-error",23),o.qZA(),o.qZA(),o.qZA(),o.TgZ(64,"div",29),o.TgZ(65,"button",34),o.NdJ("click",function(){return t.onRebalance()}),o._uU(66,"Rebalance"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(67,"mat-step",35),o.TgZ(68,"form",17),o.YNc(69,Yi,1,0,"ng-template",18),o.TgZ(70,"div",36),o.TgZ(71,"mat-expansion-panel",37),o.TgZ(72,"mat-expansion-panel-header"),o.TgZ(73,"mat-panel-title"),o.TgZ(74,"span",38),o._uU(75),o.YNc(76,Pi,2,0,"mat-icon",39),o.qZA(),o.qZA(),o.qZA(),o.TgZ(77,"div",7),o.TgZ(78,"span",40),o._uU(79),o.qZA(),o.qZA(),o.qZA(),o.YNc(80,Bi,1,0,"mat-progress-bar",41),o.TgZ(81,"mat-expansion-panel",42),o.TgZ(82,"mat-expansion-panel-header"),o.TgZ(83,"mat-panel-title"),o.TgZ(84,"span",38),o._uU(85),o.YNc(86,Gi,2,1,"mat-icon",39),o.qZA(),o.qZA(),o.qZA(),o.YNc(87,Hi,1,0,"div",43),o.qZA(),o.YNc(88,zi,1,0,"mat-progress-bar",41),o.qZA(),o.YNc(89,Vi,2,1,"h4",44),o.TgZ(90,"div",45),o.YNc(91,Wi,2,0,"button",46),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(92,"div",47),o.TgZ(93,"button",48),o._uU(94,"Close"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(95,$i,1,1,"ng-template",null,49,o.W1O),o.YNc(97,ji,3,1,"ng-template",null,50,o.W1O),o.YNc(99,Ki,19,4,"ng-template",null,51,o.W1O)),2&e){const e=o.MAs(44),n=o.MAs(96);o.xp6(12),o.Q6J("icon",t.faInfoCircle),o.xp6(7),o.Oqu(o.lcZ(20,41,t.selChannel.remote_alias)),o.xp6(5),o.Oqu(t.selChannel.chan_id),o.xp6(2),o.Q6J("linear",!0),o.xp6(2),o.Q6J("stepControl",t.inputFormGroup)("editable",t.flgEditable),o.xp6(1),o.Q6J("formGroup",t.inputFormGroup),o.xp6(4),o.Q6J("step",100),o.xp6(2),o.AsE("(Local Bal: ",null==t.selChannel?null:t.selChannel.local_balance,", Remaining: ",(null==t.selChannel?null:t.selChannel.local_balance)-(t.inputFormGroup.controls.rebalanceAmount.value?t.inputFormGroup.controls.rebalanceAmount.value:0),")"),o.xp6(3),o.Q6J("ngIf",null==t.inputFormGroup.controls.rebalanceAmount.errors?null:t.inputFormGroup.controls.rebalanceAmount.errors.required),o.xp6(1),o.Q6J("ngIf",null==t.inputFormGroup.controls.rebalanceAmount.errors?null:t.inputFormGroup.controls.rebalanceAmount.errors.min),o.xp6(1),o.Q6J("ngIf",null==t.inputFormGroup.controls.rebalanceAmount.errors?null:t.inputFormGroup.controls.rebalanceAmount.errors.max),o.xp6(2),o.Q6J("matAutocomplete",e),o.xp6(1),o.Q6J("displayWith",t.displayFn),o.xp6(2),o.Q6J("ngForOf",o.lcZ(46,43,t.filteredActiveChannels)),o.xp6(2),o.Q6J("ngIf",null==t.inputFormGroup.controls.selRebalancePeer.errors?null:t.inputFormGroup.controls.selRebalancePeer.errors.required),o.xp6(1),o.Q6J("ngIf",null==t.inputFormGroup.controls.selRebalancePeer.errors?null:t.inputFormGroup.controls.selRebalancePeer.errors.notfound),o.xp6(4),o.Q6J("stepControl",t.feeFormGroup)("editable",t.flgEditable),o.xp6(1),o.Q6J("formGroup",t.feeFormGroup),o.xp6(6),o.Q6J("ngForOf",t.feeLimitTypes),o.xp6(2),o.s9C("placeholder",t.feeFormGroup.controls.selFeeLimitType.value?t.feeFormGroup.controls.selFeeLimitType.value.placeholder:t.feeLimitTypes[0].placeholder),o.Q6J("step",1),o.xp6(1),o.Q6J("ngIf",null==t.feeFormGroup.controls.feeLimit.errors?null:t.feeFormGroup.controls.feeLimit.errors.required),o.xp6(1),o.Q6J("ngIf",null==t.feeFormGroup.controls.feeLimit.errors?null:t.feeFormGroup.controls.feeLimit.errors.min),o.xp6(4),o.Q6J("stepControl",t.statusFormGroup),o.xp6(1),o.Q6J("formGroup",t.statusFormGroup),o.xp6(7),o.Oqu(t.flgInvoiceGenerated?t.flgReusingInvoice?"Invoice re-used":"Invoice generated":"Generating invoice..."),o.xp6(1),o.Q6J("ngIf",t.flgInvoiceGenerated),o.xp6(3),o.Oqu(t.paymentRequest),o.xp6(1),o.Q6J("ngIf",!t.flgInvoiceGenerated),o.xp6(1),o.Q6J("expanded",(t.flgInvoiceGenerated||t.flgReusingInvoice)&&t.flgPaymentSent),o.xp6(4),o.Oqu(t.flgInvoiceGenerated||t.flgPaymentSent?t.flgPaymentSent?null!=t.paymentStatus&&t.paymentStatus.error?"Payment failed":"Payment successful":"Processing payment...":"Payment waiting for Invoice"),o.xp6(1),o.Q6J("ngIf",t.flgPaymentSent),o.xp6(1),o.Q6J("ngIf",!t.paymentStatus)("ngIfElse",n),o.xp6(1),o.Q6J("ngIf",t.flgInvoiceGenerated&&!t.flgPaymentSent),o.xp6(1),o.Q6J("ngIf",t.flgInvoiceGenerated&&t.flgPaymentSent),o.xp6(2),o.Q6J("ngIf",t.paymentStatus&&t.paymentStatus.error),o.xp6(2),o.Q6J("mat-dialog-close",!1)}},directives:[l.xw,l.yH,w.dk,l.Wh,q.lW,w.dn,T.BN,La.Vq,La.C0,Ae._Y,Ae.JL,Ae.sg,La.VY,D.KE,Ce.Nt,Ae.wV,Ae.Fj,Te.h,Ae.JJ,Ae.u,Ae.Q7,D.bx,D.R9,a.O5,mt.ZL,mt.XC,a.sg,we.gD,ht.ib,ht.yz,ht.yK,ye.ZT,D.TO,ve.ey,S.Hw,r.pW,a.tP,M.d],pipes:[a.rS,a.Ov],styles:[""]}),e})();function ts(e,t){if(1&e&&(o.TgZ(0,"div",16),o.TgZ(1,"p",17),o.TgZ(2,"mat-icon",18),o._uU(3,"close"),o.qZA(),o._uU(4),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(4),o.Oqu(e.errorMsg)}}function ns(e,t){if(1&e&&(o.TgZ(0,"div",27),o._UZ(1,"fa-icon",28),o.TgZ(2,"span"),o._uU(3,"Priority/Fee for force closing inactive channels cannot be modified."),o.qZA(),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("icon",e.faInfoCircle)}}function as(e,t){if(1&e&&(o.TgZ(0,"mat-option",29),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e.id),o.xp6(1),o.hij(" ",e.name," ")}}function is(e,t){1&e&&(o.TgZ(0,"mat-form-field",30),o._UZ(1,"input",31),o.qZA())}function ss(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Number of blocks is required."),o.qZA())}function os(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-form-field",32),o.TgZ(1,"input",33,34),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw(2).blocks=t}),o.qZA(),o.YNc(3,ss,2,0,"mat-error",35),o.qZA()}if(2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngModel",e.blocks)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",!e.blocks)}}function ls(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Fees is required."),o.qZA())}function rs(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-form-field",32),o.TgZ(1,"input",36,37),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw(2).fees=t}),o.qZA(),o.YNc(3,ls,2,0,"mat-error",35),o.qZA()}if(2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngModel",e.fees)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",!e.fees)}}function cs(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",19),o.YNc(1,ns,4,1,"div",20),o.TgZ(2,"div",21),o.TgZ(3,"mat-form-field",22),o.TgZ(4,"mat-select",23),o.NdJ("valueChange",function(t){return o.CHM(e),o.oxw().selTransType=t}),o.YNc(5,as,2,2,"mat-option",24),o.qZA(),o.qZA(),o.YNc(6,is,2,0,"mat-form-field",25),o.YNc(7,os,4,4,"mat-form-field",26),o.YNc(8,rs,4,4,"mat-form-field",26),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",!e.channelToClose.active),o.xp6(3),o.Q6J("value",e.selTransType)("disabled",!e.channelToClose.active),o.xp6(1),o.Q6J("ngForOf",e.transTypes),o.xp6(1),o.Q6J("ngIf","0"===e.selTransType),o.xp6(1),o.Q6J("ngIf","1"===e.selTransType),o.xp6(1),o.Q6J("ngIf","2"===e.selTransType)}}function us(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",38),o.NdJ("click",function(){return o.CHM(e),o.oxw().resetData()}),o._uU(1,"Clear"),o.qZA()}}function ps(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",39),o.NdJ("click",function(){return o.CHM(e),o.oxw().onCloseChannel()}),o._uU(1),o.qZA()}if(2&e){const e=o.oxw();o.xp6(1),o.Oqu(e.channelToClose.active?"Close Channel":"Force Close")}}function ds(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"button",40),o.NdJ("click",function(){return o.CHM(e),o.oxw().onClose()}),o._uU(1,"Ok"),o.qZA()}}let hs=(()=>{class e{constructor(e,t,n,a,i){this.dialogRef=e,this.data=t,this.store=n,this.actions=a,this.logger=i,this.transTypes=f.Dr,this.selTransType="0",this.blocks=null,this.fees=null,this.faExclamationTriangle=g.eHv,this.faInfoCircle=g.sqG,this.flgPendingHtlcs=!1,this.errorMsg="Please wait for pending HTLCs to settle before attempting channel closure.",this.unSubs=[new p.x,new p.x]}ngOnInit(){this.channelToClose=this.data.channel,this.actions.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e.type===x.JE||e.type===x.P2)).subscribe(e=>{if(e.type===x.P2){const t=e.payload.find(e=>e.chan_id===this.data.channel.chan_id);t.pending_htlcs&&t.pending_htlcs.length&&t.pending_htlcs.length>0&&(this.flgPendingHtlcs=!0)}e.type===x.JE&&e.payload.status===f.Bn.ERROR&&"FetchAllChannels"===e.payload.action&&this.logger.error("Fetching latest channel information failed!\n"+e.payload.message)})}onCloseChannel(){if("1"===this.selTransType&&(!this.blocks||0===this.blocks)||"2"===this.selTransType&&(!this.fees||0===this.fees))return!0;const e={channelPoint:this.channelToClose.channel_point,forcibly:!this.channelToClose.active};this.blocks&&(e.targetConf=this.blocks),this.fees&&(e.satPerByte=this.fees),this.store.dispatch(new x.e8(e)),this.dialogRef.close(!1)}resetData(){this.selTransType="0",this.blocks=null,this.fees=null}onClose(){this.dialogRef.close(!1)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(ye.WI),o.Y36(y.yh),o.Y36(A.eX),o.Y36(Z.mQ))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-close-channel"]],decls:19,vars:7,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxLayout","column",1,"bordered-box","mb-1","p-2"],["fxLayoutAlign","start center",1,"pb-1","word-break"],["fxLayoutAlign","start center",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","type","reset","class","mr-1","tabindex","3","default","",3,"click",4,"ngIf"],["mat-flat-button","","color","primary","type","submit","tabindex","4",3,"click",4,"ngIf"],["mat-flat-button","","color","primary","type","submit","tabindex","5",3,"click",4,"ngIf"],["fxLayoutAlign","start center"],["fxFlex","100","fxLayoutAlign","start center",1,"color-warn"],[1,"mr-1","icon-small"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100","class","alert alert-info",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex.gt-sm","48"],["tabindex","1",3,"value","disabled","valueChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","48",4,"ngIf"],["fxFlex.gt-sm","48","fxLayoutAlign","start end",4,"ngIf"],["fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],[3,"value"],["fxFlex","48"],["matInput","","placeholder","Default","disabled",""],["fxFlex.gt-sm","48","fxLayoutAlign","start end"],["matInput","","placeholder","Number of Blocks","type","number","name","blocks","required","","tabindex","2",3,"ngModel","step","min","ngModelChange"],["blcks","ngModel"],[4,"ngIf"],["matInput","","placeholder","Fees (Sats/vByte)","type","number","name","ccfees","required","","tabindex","3",3,"ngModel","step","min","ngModelChange"],["clchfee","ngModel"],["mat-stroked-button","","color","primary","type","reset","tabindex","3","default","",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","4",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","5",3,"click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return t.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7),o.TgZ(10,"div",8),o.TgZ(11,"p",9),o._uU(12),o.qZA(),o.YNc(13,ts,5,1,"div",10),o.YNc(14,cs,9,7,"div",11),o.qZA(),o.TgZ(15,"div",12),o.YNc(16,us,2,0,"button",13),o.YNc(17,ps,2,1,"button",14),o.YNc(18,ds,2,0,"button",15),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(5),o.Oqu(t.channelToClose.active?"Close Channel":"Force Close Channel"),o.xp6(7),o.Oqu(t.channelToClose.active?"Closing channel: "+t.channelToClose.channel_point:"Force closing channel: "+t.channelToClose.channel_point),o.xp6(1),o.Q6J("ngIf",t.flgPendingHtlcs),o.xp6(1),o.Q6J("ngIf",!t.flgPendingHtlcs),o.xp6(2),o.Q6J("ngIf",t.channelToClose.active&&!t.flgPendingHtlcs),o.xp6(1),o.Q6J("ngIf",!t.flgPendingHtlcs),o.xp6(1),o.Q6J("ngIf",t.flgPendingHtlcs))},directives:[l.xw,l.yH,w.dk,l.Wh,q.lW,w.dn,Ae._Y,Ae.JL,Ae.F,a.O5,S.Hw,D.KE,we.gD,a.sg,T.BN,ve.ey,Ce.Nt,Ae.wV,Ae.qQ,Ae.Fj,be.q,Ae.Q7,Ae.JJ,Ae.On,D.TO],styles:[""]}),e})();function ms(e,t){1&e&&o._UZ(0,"mat-progress-bar",30)}function gs(e,t){1&e&&(o.TgZ(0,"th",31),o._uU(1," Peer "),o.qZA())}function fs(e,t){1&e&&o._UZ(0,"span",39)}function xs(e,t){1&e&&o._UZ(0,"span",40)}function Zs(e,t){if(1&e&&(o.TgZ(0,"span",41),o._UZ(1,"fa-icon",42),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("icon",e.faEyeSlash)}}function ys(e,t){if(1&e&&(o.TgZ(0,"span",43),o._UZ(1,"fa-icon",42),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("icon",e.faEye)}}const As=function(e){return{"max-width":e}};function Cs(e,t){if(1&e&&(o.TgZ(0,"td",32),o.TgZ(1,"div",33),o.YNc(2,fs,1,0,"span",34),o.YNc(3,xs,1,0,"span",35),o.YNc(4,Zs,2,1,"span",36),o.YNc(5,ys,2,1,"span",37),o.TgZ(6,"span",38),o._uU(7),o.qZA(),o.qZA(),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.xp6(1),o.Q6J("ngStyle",o.VKq(6,As,n.screenSize===n.screenSizeEnum.XS?"10rem":n.screenSize===n.screenSizeEnum.MD?"15rem":"22rem")),o.xp6(1),o.Q6J("ngIf",e.active),o.xp6(1),o.Q6J("ngIf",!e.active),o.xp6(1),o.Q6J("ngIf",e.private),o.xp6(1),o.Q6J("ngIf",!e.private),o.xp6(2),o.Oqu(e.remote_alias||e.remote_pubkey)}}function Ts(e,t){if(1&e&&(o.TgZ(0,"th",44),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("Uptime (",e.timeUnit,")")}}function bs(e,t){if(1&e&&(o.TgZ(0,"td",32),o.TgZ(1,"span",45),o._uU(2),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij("",e.uptime_str," ")}}function ws(e,t){1&e&&(o.TgZ(0,"th",44),o._uU(1,"Sats Sent "),o.qZA())}function _s(e,t){if(1&e&&(o.TgZ(0,"td",32),o.TgZ(1,"span",45),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij("",o.lcZ(3,1,e.total_satoshis_sent)," ")}}function vs(e,t){1&e&&(o.TgZ(0,"th",44),o._uU(1,"Sats Received "),o.qZA())}function qs(e,t){if(1&e&&(o.TgZ(0,"td",32),o.TgZ(1,"span",45),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij("",o.lcZ(3,1,e.total_satoshis_received)," ")}}function Ss(e,t){1&e&&(o.TgZ(0,"th",44),o._uU(1,"Local Balance (Sats) "),o.qZA())}function Fs(e,t){if(1&e&&(o.TgZ(0,"td",32),o.TgZ(1,"span",45),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij("",o.lcZ(3,1,e.local_balance)," ")}}function Ls(e,t){1&e&&(o.TgZ(0,"th",44),o._uU(1,"Remote Balance (Sats) "),o.qZA())}function ks(e,t){if(1&e&&(o.TgZ(0,"td",32),o.TgZ(1,"span",45),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij("",o.lcZ(3,1,e.remote_balance)," ")}}function Ns(e,t){1&e&&(o.TgZ(0,"th",46),o._uU(1,"Balance Score "),o.qZA())}function Us(e,t){if(1&e&&(o.TgZ(0,"td",47),o.TgZ(1,"div",48),o.TgZ(2,"mat-hint",49),o._uU(3),o.ALo(4,"number"),o.qZA(),o.qZA(),o._UZ(5,"mat-progress-bar",50),o.qZA()),2&e){const e=t.$implicit;o.xp6(3),o.Oqu(o.lcZ(4,2,e.balancedness||0)),o.xp6(2),o.s9C("value",e.local_balance&&e.local_balance>0?+e.local_balance/(+e.local_balance+ +e.remote_balance)*100:0)}}function Is(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"th",51),o.TgZ(1,"div",52),o.TgZ(2,"mat-select",53),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",54),o.NdJ("click",function(){return o.CHM(e),o.oxw().onChannelUpdate("all")}),o._uU(5,"Update Fee Policy"),o.qZA(),o.TgZ(6,"mat-option",54),o.NdJ("click",function(){return o.CHM(e),o.oxw().onDownloadCSV()}),o._uU(7,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Os(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-option",54),o.NdJ("click",function(){o.CHM(e);const t=o.oxw().$implicit;return o.oxw().onCircularRebalance(t)}),o._uU(1,"Circular Rebalance"),o.qZA()}}function Js(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-option",54),o.NdJ("click",function(){o.CHM(e);const t=o.oxw().$implicit;return o.oxw().onLoopOut(t)}),o._uU(1,"Loop Out"),o.qZA()}}function Ds(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",55),o.TgZ(1,"div",52),o.TgZ(2,"mat-select",56),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",54),o.NdJ("click",function(t){const n=o.CHM(e).$implicit;return o.oxw().onChannelClick(n,t)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",54),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onViewRemotePolicy(t)}),o._uU(7,"View Remote Fee "),o.qZA(),o.TgZ(8,"mat-option",54),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onChannelUpdate(t)}),o._uU(9,"Update Fee Policy"),o.qZA(),o.YNc(10,Os,2,0,"mat-option",57),o.YNc(11,Js,2,0,"mat-option",57),o.TgZ(12,"mat-option",54),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onChannelClose(t)}),o._uU(13,"Close Channel"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(10),o.Q6J("ngIf",+e.versionsArr[0]>0||+e.versionsArr[1]>=9),o.xp6(1),o.Q6J("ngIf",e.selNode.swapServerUrl)}}function Rs(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No peers connected. Add a peer in order to open a channel."),o.qZA())}function Ms(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No channel available."),o.qZA())}function Es(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting channels..."),o.qZA())}function Qs(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function Ys(e,t){if(1&e&&(o.TgZ(0,"td",58),o.YNc(1,Rs,2,0,"p",59),o.YNc(2,Ms,2,0,"p",59),o.YNc(3,Es,2,0,"p",59),o.YNc(4,Qs,2,1,"p",59),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",e.numPeers<1&&(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",e.numPeers>0&&(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.ERROR)}}const Ps=function(e){return{"display-none":e}};function Bs(e,t){if(1&e&&o._UZ(0,"tr",60),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,Ps,e.numPeers>0&&(null==e.channels?null:e.channels.data)&&(null==e.channels||null==e.channels.data?null:e.channels.data.length)>0))}}function Gs(e,t){1&e&&o._UZ(0,"tr",61)}function Hs(e,t){1&e&&o._UZ(0,"tr",62)}const zs=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}},Vs=function(){return["no_peer"]};let Ws=(()=>{class e{constructor(e,t,n,a,i,s,o){this.logger=e,this.store=t,this.rtlEffects=n,this.lndEffects=a,this.commonService=i,this.loopService=s,this.decimalPipe=o,this.timeUnit="mins:secs",this.userPersonaEnum=f.ol,this.selNode={},this.totalBalance=0,this.displayedColumns=[],this.channelsData=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.selFilter="",this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.versionsArr=[],this.faEye=g.Mdf,this.faEyeSlash=g.Aq,this.targetConf=6,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["remote_alias","local_balance","remote_balance","actions"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["remote_alias","local_balance","remote_balance","balancedness","actions"]):(this.flgSticky=!0,this.displayedColumns=["remote_alias","uptime","total_satoshis_sent","total_satoshis_received","local_balance","remote_balance","balancedness","actions"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchAllChannels.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchAllChannels.message?JSON.stringify(this.apisCallStatus.FetchAllChannels.message):this.apisCallStatus.FetchAllChannels.message),this.selNode=e.nodeSettings,this.information=e.information,this.information&&this.information.version&&(this.versionsArr=this.information.version.split(".")),this.numPeers=e.peers&&e.peers.length?e.peers.length:0,this.totalBalance=+e.blockchainBalance.total_balance,this.channelsData=this.calculateUptime(e.allChannels),this.channelsData.length>0&&this.loadChannelsTable(this.channelsData),this.logger.info(e)})}ngAfterViewInit(){this.channelsData.length>0&&this.loadChannelsTable(this.channelsData)}onViewRemotePolicy(e){this.store.dispatch(new x.IG({uiMessage:f.m6.GET_REMOTE_POLICY,channelID:e.chan_id.toString()+"/"+this.information.identity_pubkey})),this.lndEffects.setLookup.pipe((0,pt.q)(1)).subscribe(e=>{if(!e.fee_base_msat&&!e.fee_rate_milli_msat&&!e.time_lock_delta)return!1;this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Remote Channel Policy",message:[[{key:"fee_base_msat",value:e.fee_base_msat,title:"Base Fees (mSats)",width:25,type:f.Gi.NUMBER},{key:"fee_rate_milli_msat",value:e.fee_rate_milli_msat,title:"Fee Rate (milli mSats)",width:25,type:f.Gi.NUMBER},{key:"fee_rate_milli_msat",value:e.fee_rate_milli_msat/1e4,title:"Fee Rate (%)",width:25,type:f.Gi.NUMBER,digitsInfo:"1.0-8"},{key:"time_lock_delta",value:e.time_lock_delta,title:"Time Lock Delta",width:25,type:f.Gi.NUMBER}]]}}))})}onCircularRebalance(e){this.store.dispatch(new ee.wu({data:{message:{channels:this.channelsData,selChannel:e},component:es}}))}onChannelUpdate(e){"all"===e?(this.store.dispatch(new ee.b_({data:{type:f.n_.CONFIRM,alertTitle:"Update Fee Policy",noBtnText:"Cancel",yesBtnText:"Update All Channels",message:[],titleMessage:"Update fee policy for all channels",flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSat)",inputType:f.Gi.NUMBER.toLowerCase(),inputValue:1e3,width:32},{placeholder:"Fee Rate (mili mSat)",inputType:f.Gi.NUMBER.toLowerCase(),inputValue:1,min:1,width:32,hintFunction:this.percentHintFunction},{placeholder:"Time Lock Delta",inputType:f.Gi.NUMBER.toLowerCase(),inputValue:40,width:32}]}})),this.rtlEffects.closeConfirm.pipe((0,d.R)(this.unSubs[1])).subscribe(e=>{e&&this.store.dispatch(new x.k({baseFeeMsat:e[0].inputValue,feeRate:e[1].inputValue,timeLockDelta:e[2].inputValue,chanPoint:"all"}))})):(this.myChanPolicy={fee_base_msat:0,fee_rate_milli_msat:0,time_lock_delta:0},this.store.dispatch(new x.IG({uiMessage:f.m6.GET_CHAN_POLICY,channelID:e.chan_id.toString()})),this.lndEffects.setLookup.pipe((0,pt.q)(1)).subscribe(t=>{this.myChanPolicy=t.node1_pub===this.information.identity_pubkey?t.node1_policy:t.node2_pub===this.information.identity_pubkey?t.node2_policy:{fee_base_msat:0,fee_rate_milli_msat:0,time_lock_delta:0},this.logger.info(this.myChanPolicy),this.store.dispatch(new ee.b_({data:{type:f.n_.CONFIRM,alertTitle:"Update Fee Policy",titleMessage:"Update fee policy for channel point: "+e.channel_point,noBtnText:"Cancel",yesBtnText:"Update Channel",message:[],flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSat)",inputType:f.Gi.NUMBER.toLowerCase(),inputValue:""===this.myChanPolicy.fee_base_msat?0:this.myChanPolicy.fee_base_msat,width:32},{placeholder:"Fee Rate (mili mSat)",inputType:f.Gi.NUMBER.toLowerCase(),inputValue:this.myChanPolicy.fee_rate_milli_msat,min:1,width:32,hintFunction:this.percentHintFunction},{placeholder:"Time Lock Delta",inputType:f.Gi.NUMBER.toLowerCase(),inputValue:this.myChanPolicy.time_lock_delta,width:32}]}}))}),this.rtlEffects.closeConfirm.pipe((0,d.R)(this.unSubs[2])).subscribe(t=>{t&&this.store.dispatch(new x.k({baseFeeMsat:t[0].inputValue,feeRate:t[1].inputValue,timeLockDelta:t[2].inputValue,chanPoint:e.channel_point}))})),this.applyFilter()}onChannelClose(e){e.active&&this.store.dispatch(new x.jh),this.store.dispatch(new ee.wu({width:"70%",data:{channel:e,component:hs}}))}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onChannelClick(e,t){this.store.dispatch(new ee.wu({data:{channel:e,showCopy:!0,component:Si}}))}loadChannelsTable(e){e.sort((e,t)=>e.active===t.active?0:t.active?1:-1),this.channels=new Ze.by([...e]),this.channels.filterPredicate=(e,t)=>((e.active?"active":"inactive")+(e.chan_id?e.chan_id.toLowerCase():"")+(e.remote_pubkey?e.remote_pubkey.toLowerCase():"")+(e.remote_alias?e.remote_alias.toLowerCase():"")+(e.capacity?e.capacity:"")+(e.local_balance?e.local_balance:"")+(e.remote_balance?e.remote_balance:"")+(e.total_satoshis_sent?e.total_satoshis_sent:"")+(e.total_satoshis_received?e.total_satoshis_received:"")+(e.commit_fee?e.commit_fee:"")+(e.private?"private":"public")).includes(t),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.channels.paginator=this.paginator,this.logger.info(this.channels)}calculateUptime(e){const t=3600,n=86400,a=31536e3;let i=60,s=1,o=0;switch(e.forEach(e=>{e.uptime&&+e.uptime>o&&(o=+e.uptime)}),!0){case o=t&&o=n&&oa:this.timeUnit="Yrs:Days",i=a,s=n;break;default:this.timeUnit="Mins:Secs",i=60,s=1}return e.forEach(e=>{e.uptime_str=e.uptime?this.decimalPipe.transform(Math.floor(+e.uptime/i),"2.0-0")+":"+this.decimalPipe.transform(Math.round(+e.uptime%i/s),"2.0-0"):"---"}),e}onLoopOut(e){this.loopService.getLoopOutTermsAndQuotes(this.targetConf).pipe((0,d.R)(this.unSubs[0])).subscribe(t=>{this.store.dispatch(new ee.wu({minHeight:"56rem",data:{channel:e,minQuote:t[0],maxQuote:t[1],direction:f.$I.LOOP_OUT,component:K.a}}))})}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"Open-channels")}percentHintFunction(e){return(e/1e4).toString()+"%"}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(St.V),o.Y36(Ft.l),o.Y36(C.v),o.Y36(te.W),o.Y36(a.JJ))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-open-table"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Channels")}])],decls:39,vars:14,consts:[["fxLayout","column",1,"padding-gap-x"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","remote_alias"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","uptime"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","total_satoshis_sent"],["matColumnDef","total_satoshis_received"],["matColumnDef","local_balance"],["matColumnDef","remote_balance"],["matColumnDef","balancedness"],["mat-header-cell","","mat-sort-header","","class","pl-2",4,"matHeaderCellDef"],["mat-cell","","class","pl-2",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pl-1",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],["class","dot green","matTooltip","Active","matTooltipPosition","right",4,"ngIf"],["class","dot yellow","matTooltip","Inactive","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Private","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Public","matTooltipPosition","right",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Active","matTooltipPosition","right",1,"dot","green"],["matTooltip","Inactive","matTooltipPosition","right",1,"dot","yellow"],["matTooltip","Private","matTooltipPosition","right",1,"mr-1"],[3,"icon"],["matTooltip","Public","matTooltipPosition","right",1,"mr-1"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-2"],["mat-cell","",1,"pl-2"],["fxLayout","row"],["fxFlex","100","fxLayoutAlign","center center",1,"font-size-80"],["mode","determinate",3,"value"],["mat-header-cell","",1,"pl-1"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["placeholder","Actions","tabindex","2",1,"mr-0"],[3,"click",4,"ngIf"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"div",2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"input",4),o.NdJ("keyup",function(){return t.applyFilter()})("ngModelChange",function(e){return t.selFilter=e}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(5,"div",5),o.YNc(6,ms,1,0,"mat-progress-bar",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,gs,2,0,"th",10),o.YNc(11,Cs,8,8,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,Ts,2,1,"th",13),o.YNc(14,bs,3,1,"td",11),o.BQk(),o.ynx(15,14),o.YNc(16,ws,2,0,"th",13),o.YNc(17,_s,4,3,"td",11),o.BQk(),o.ynx(18,15),o.YNc(19,vs,2,0,"th",13),o.YNc(20,qs,4,3,"td",11),o.BQk(),o.ynx(21,16),o.YNc(22,Ss,2,0,"th",13),o.YNc(23,Fs,4,3,"td",11),o.BQk(),o.ynx(24,17),o.YNc(25,Ls,2,0,"th",13),o.YNc(26,ks,4,3,"td",11),o.BQk(),o.ynx(27,18),o.YNc(28,Ns,2,0,"th",19),o.YNc(29,Us,6,4,"td",20),o.BQk(),o.ynx(30,21),o.YNc(31,Is,8,0,"th",22),o.YNc(32,Ds,14,2,"td",23),o.BQk(),o.ynx(33,24),o.YNc(34,Ys,5,4,"td",25),o.BQk(),o.YNc(35,Bs,1,3,"tr",26),o.YNc(36,Gs,1,0,"tr",27),o.YNc(37,Hs,1,0,"tr",28),o.qZA(),o.qZA(),o._UZ(38,"mat-paginator",29),o.qZA()),2&e&&(o.xp6(4),o.Q6J("ngModel",t.selFilter),o.xp6(2),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchAllChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.channels)("ngClass",o.VKq(11,zs,""!==t.errorMessage)),o.xp6(28),o.Q6J("matFooterRowDef",o.DdM(13,Vs)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,D.KE,Ce.Nt,Ae.Fj,Ae.JJ,Ae.On,E.$V,a.O5,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,a.PC,v.Zl,R.gM,T.BN,D.bx,we.gD,we.$L,ve.ey,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],pipes:[a.JJ],styles:[".mat-column-remote_alias[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-remote_alias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-balancedness[_ngcontent-%COMP%]{flex:0 0 20%;width:20%}@media only screen and (max-width:75em){.mat-column-balancedness[_ngcontent-%COMP%]{flex:0 0 35%;width:35%}}@media only screen and (max-width:56.25em){.mat-column-balancedness[_ngcontent-%COMP%]{flex:0 0 25%;width:25%}}.mat-column-local_balance[_ngcontent-%COMP%], .mat-column-remote_balance[_ngcontent-%COMP%], .mat-column-total_satoshis_received[_ngcontent-%COMP%], .mat-column-total_satoshis_sent[_ngcontent-%COMP%], .mat-column-uptime[_ngcontent-%COMP%]{flex:1 1 10%;width:10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width:75em){.mat-column-local_balance[_ngcontent-%COMP%], .mat-column-remote_balance[_ngcontent-%COMP%], .mat-column-total_satoshis_received[_ngcontent-%COMP%], .mat-column-total_satoshis_sent[_ngcontent-%COMP%], .mat-column-uptime[_ngcontent-%COMP%]{white-space:unset;flex:1 1 25%;width:25%}}@media only screen and (max-width:56.25em){.mat-column-local_balance[_ngcontent-%COMP%], .mat-column-remote_balance[_ngcontent-%COMP%], .mat-column-total_satoshis_received[_ngcontent-%COMP%], .mat-column-total_satoshis_sent[_ngcontent-%COMP%], .mat-column-uptime[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}}@media only screen and (max-width:37.5em){.mat-column-local_balance[_ngcontent-%COMP%], .mat-column-remote_balance[_ngcontent-%COMP%], .mat-column-total_satoshis_received[_ngcontent-%COMP%], .mat-column-total_satoshis_sent[_ngcontent-%COMP%], .mat-column-uptime[_ngcontent-%COMP%]{white-space:unset}}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 100%}@media only screen and (max-width:56.25em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 90%}}@media only screen and (max-width:37.5em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 80%}}"]}),e})();const Xs=["outputIdx"];function $s(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Index for change output is required."),o.qZA())}function js(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Invalid index value."),o.qZA())}function Ks(e,t){if(1&e&&(o.TgZ(0,"mat-option",29),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e.id),o.xp6(1),o.hij(" ",e.name," ")}}function eo(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Number of blocks is required."),o.qZA())}function to(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-form-field",17),o.TgZ(1,"input",30,31),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().blocks=t}),o.qZA(),o.YNc(3,eo,2,0,"mat-error",20),o.qZA()}if(2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngModel",e.blocks)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",!e.blocks)}}function no(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Fees is required."),o.qZA())}function ao(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-form-field",17),o.TgZ(1,"input",32,33),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().fees=t}),o.qZA(),o.YNc(3,no,2,0,"mat-error",20),o.qZA()}if(2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngModel",e.fees)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",!e.fees)}}function io(e,t){if(1&e&&(o.TgZ(0,"div",34),o._UZ(1,"fa-icon",13),o.TgZ(2,"span"),o._uU(3),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("icon",e.faExclamationTriangle),o.xp6(2),o.Oqu(e.bumpFeeError)}}let so=(()=>{class e{constructor(e,t,n,a,i){this.dialogRef=e,this.data=t,this.logger=n,this.dataService=a,this.snackBar=i,this.transTypes=[...f.Dr],this.selTransType="2",this.blocks=null,this.fees=null,this.outputIndex=null,this.faCopy=g.kZ_,this.faInfoCircle=g.sqG,this.faExclamationTriangle=g.eHv,this.bumpFeeError="",this.unSubs=[new p.x,new p.x]}set payReq(e){e&&(this.outputIdx=e)}ngOnInit(){this.transTypes=this.transTypes.splice(1),this.bumpFeeChannel=this.data.pendingChannel;const e=this.bumpFeeChannel.channel&&this.bumpFeeChannel.channel.channel_point?this.bumpFeeChannel.channel.channel_point.split(":"):[];this.bumpFeeChannel.channel.txid_str=e[0]?e[0]:this.bumpFeeChannel.channel&&this.bumpFeeChannel.channel.channel_point?this.bumpFeeChannel.channel.channel_point:"",this.bumpFeeChannel.channel.output_index=e[1]?+e[1]:null}onBumpFee(){return this.outputIndex===this.bumpFeeChannel.channel.output_index?(this.outputIdx.control.setErrors({pendingChannelOutputIndex:!0}),!0):!this.outputIndex&&0!==this.outputIndex||!("1"!==this.selTransType||this.blocks&&0!==this.blocks)||!("2"!==this.selTransType||this.fees&&0!==this.fees)||void this.dataService.bumpFee(this.bumpFeeChannel.channel.txid_str,this.outputIndex,this.blocks,this.fees).pipe((0,d.R)(this.unSubs[0])).subscribe({next:e=>{this.dialogRef.close(!1)},error:e=>{this.logger.error(e),this.bumpFeeError=e.message?e.message:e}})}onCopyID(e){this.snackBar.open("Transaction ID copied.")}resetData(){this.bumpFeeError="",this.selTransType="2",this.blocks=null,this.fees=null,this.outputIdx.control.setErrors(null)}onClose(){this.dialogRef.close(!1)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(ye.WI),o.Y36(Z.mQ),o.Y36(dt.D),o.Y36(Ai.ux))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-bump-fee"]],viewQuery:function(e,t){if(1&e&&o.Gf(Xs,5),2&e){let e;o.iGM(e=o.CRH())&&(t.payReq=e.first)}},decls:48,vars:15,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxLayout","column",1,"bordered-box","mb-1","p-2"],["fxLayoutAlign","start center",1,"pb-1","word-break"],["matSuffix","","rtlClipboard","","matTooltip","Copy transaction ID",1,"ml-1",3,"icon","payload","copied"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column","fxFlex","100"],[1,"pl-1"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex.gt-sm","32","fxLayoutAlign","start end"],["matInput","","placeholder","Index for Change Output","type","number","tabindex","1","required","","name","outputIdx",3,"ngModel","step","min","ngModelChange"],["outputIdx","ngModel"],[4,"ngIf"],["fxFlex.gt-sm","32"],["tabindex","2",3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex.gt-sm","32","fxLayoutAlign","start end",4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","type","reset","tabindex","5","default","",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","6",3,"click"],[3,"value"],["matInput","","placeholder","Number of Blocks","type","number","name","blocks","required","","tabindex","3",3,"ngModel","step","min","ngModelChange"],["blcks","ngModel"],["matInput","","placeholder","Fees (Sats/vByte)","type","number","name","fees","required","","tabindex","4",3,"ngModel","step","min","ngModelChange"],["fee","ngModel"],["fxFlex","100",1,"alert","alert-danger","mt-1"]],template:function(e,t){if(1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Bump Fee"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o.NdJ("click",function(){return t.onClose()}),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7),o.TgZ(10,"div",8),o.TgZ(11,"p",9),o._uU(12),o.TgZ(13,"fa-icon",10),o.NdJ("copied",function(e){return t.onCopyID(e)}),o.qZA(),o.qZA(),o.TgZ(14,"div",11),o.TgZ(15,"div",12),o._UZ(16,"fa-icon",13),o.TgZ(17,"span",14),o._uU(18,"Bumping fee on pending open channels is an advanced feature, attempt it only if you are familiar with the functionality of Bitcoin transactions. "),o.TgZ(19,"div"),o._uU(20,"Before attempting fee bump ensure the following:"),o.qZA(),o.TgZ(21,"div",15),o._uU(22,"1: Use a Bitcoin block explorer to ensure that channel opening transaction is not confirmed."),o.qZA(),o.TgZ(23,"div",15),o._uU(24,"2: The channel opening transaction must have a sizable change output, which can be spent further. The fee cannot be bumped without the change output."),o.qZA(),o.TgZ(25,"div",15),o._uU(26,"3: Find the index value of the change output via a block explorer."),o.qZA(),o.TgZ(27,"div",15),o._uU(28,"4: Enter the index value of the change output in the form below and the desired fee rate."),o.qZA(),o.TgZ(29,"div",15),o._uU(30,"5: Upon successful fee bump, use your block explorer to track the child transaction in the mempool, which should be linked with the change output transaction."),o.qZA(),o.qZA(),o.qZA(),o.TgZ(31,"div",16),o.TgZ(32,"mat-form-field",17),o.TgZ(33,"input",18,19),o.NdJ("ngModelChange",function(e){return t.outputIndex=e}),o.qZA(),o.YNc(35,$s,2,0,"mat-error",20),o.YNc(36,js,2,0,"mat-error",20),o.qZA(),o.TgZ(37,"mat-form-field",21),o.TgZ(38,"mat-select",22),o.NdJ("valueChange",function(e){return t.selTransType=e})("selectionChange",function(){return t.blocks=null,t.fees=null}),o.YNc(39,Ks,2,2,"mat-option",23),o.qZA(),o.qZA(),o.YNc(40,to,4,4,"mat-form-field",24),o.YNc(41,ao,4,4,"mat-form-field",24),o.qZA(),o.YNc(42,io,4,2,"div",25),o.qZA(),o.qZA(),o.TgZ(43,"div",26),o.TgZ(44,"button",27),o.NdJ("click",function(){return t.resetData()}),o._uU(45,"Clear"),o.qZA(),o.TgZ(46,"button",28),o.NdJ("click",function(){return t.onBumpFee()}),o._uU(47),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.MAs(34);o.xp6(12),o.hij("Bump fee for channel point: ",null==t.bumpFeeChannel||null==t.bumpFeeChannel.channel?null:t.bumpFeeChannel.channel.channel_point," "),o.xp6(1),o.Q6J("icon",t.faCopy)("payload",null==t.bumpFeeChannel||null==t.bumpFeeChannel.channel?null:t.bumpFeeChannel.channel.txid_str),o.xp6(3),o.Q6J("icon",t.faInfoCircle),o.xp6(17),o.Q6J("ngModel",t.outputIndex)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",null==e.errors?null:e.errors.required),o.xp6(1),o.Q6J("ngIf",null==e.errors?null:e.errors.pendingChannelOutputIndex),o.xp6(2),o.Q6J("value",t.selTransType),o.xp6(1),o.Q6J("ngForOf",t.transTypes),o.xp6(1),o.Q6J("ngIf","1"===t.selTransType),o.xp6(1),o.Q6J("ngIf","2"===t.selTransType),o.xp6(1),o.Q6J("ngIf",""!==t.bumpFeeError),o.xp6(5),o.Oqu(""!==t.bumpFeeError?"Retry Bump Fee":"Bump Fee")}},directives:[l.xw,l.yH,w.dk,l.Wh,q.lW,w.dn,Ae._Y,Ae.JL,Ae.F,T.BN,D.R9,Ci.y,R.gM,D.KE,Ce.Nt,Ae.wV,Ae.qQ,Ae.Fj,be.q,Ae.Q7,Ae.JJ,Ae.On,a.O5,we.gD,a.sg,D.TO,ve.ey],styles:[""]}),e})();function oo(e,t){1&e&&o._UZ(0,"mat-progress-bar",36)}function lo(e,t){1&e&&o._UZ(0,"mat-progress-bar",36)}function ro(e,t){1&e&&(o.TgZ(0,"mat-header-cell",37),o._uU(1," Peer "),o.qZA())}const co=function(e){return{"max-width":e}};function uo(e,t){if(1&e&&(o.TgZ(0,"mat-cell",38),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,co,n.screenSize===n.screenSizeEnum.XS?"10rem":"30rem")),o.xp6(1),o.Oqu(e.channel.remote_alias)}}function po(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1,"Commit Fee (Sats) "),o.qZA())}function ho(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.commit_fee))}}function mo(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1,"Commit Weight "),o.qZA())}function go(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.commit_weight))}}function fo(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1,"Capacity (Sats)"),o.qZA())}function xo(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.channel.capacity))}}function Zo(e,t){1&e&&(o.TgZ(0,"mat-header-cell",41),o._uU(1,"Actions"),o.qZA())}function yo(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-cell",42),o.TgZ(1,"div",43),o.TgZ(2,"mat-select",44),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",45),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onOpenClick(t)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",45),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onBumpFee(t)}),o._uU(7,"Bump Fee"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Ao(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No pending channel."),o.qZA())}function Co(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting pending channels..."),o.qZA())}function To(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function bo(e,t){if(1&e&&(o.TgZ(0,"td",46),o.YNc(1,Ao,2,0,"p",47),o.YNc(2,Co,2,0,"p",47),o.YNc(3,To,2,1,"p",47),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!e.pendingOpenChannels||!(null!=e.pendingOpenChannels&&e.pendingOpenChannels.data)||(null==e.pendingOpenChannels||null==e.pendingOpenChannels.data?null:e.pendingOpenChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!e.pendingOpenChannels||!(null!=e.pendingOpenChannels&&e.pendingOpenChannels.data)||(null==e.pendingOpenChannels||null==e.pendingOpenChannels.data?null:e.pendingOpenChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!e.pendingOpenChannels||!(null!=e.pendingOpenChannels&&e.pendingOpenChannels.data)||(null==e.pendingOpenChannels||null==e.pendingOpenChannels.data?null:e.pendingOpenChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.ERROR)}}const wo=function(e){return{"display-none":e}};function _o(e,t){if(1&e&&o._UZ(0,"tr",48),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,wo,e.pendingOpenChannels&&(null==e.pendingOpenChannels?null:e.pendingOpenChannels.data)&&(null==e.pendingOpenChannels||null==e.pendingOpenChannels.data?null:e.pendingOpenChannels.data.length)>0))}}function vo(e,t){1&e&&o._UZ(0,"mat-header-row")}function qo(e,t){1&e&&o._UZ(0,"mat-row",49)}function So(e,t){1&e&&o._UZ(0,"mat-progress-bar",36)}function Fo(e,t){1&e&&(o.TgZ(0,"mat-header-cell",37),o._uU(1," Peer "),o.qZA())}function Lo(e,t){if(1&e&&(o.TgZ(0,"mat-cell",38),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,co,n.screenSize===n.screenSizeEnum.XS?"10rem":"30rem")),o.xp6(1),o.Oqu(e.channel.remote_alias)}}function ko(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1,"Recovered Balance (Sats) "),o.qZA())}function No(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.recovered_balance))}}function Uo(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1,"Limbo Balance (Sats) "),o.qZA())}function Io(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.limbo_balance))}}function Oo(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1,"Capacity (Sats) "),o.qZA())}function Jo(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.channel.capacity))}}function Do(e,t){1&e&&(o.TgZ(0,"mat-header-cell",50),o._uU(1,"Actions"),o.qZA())}function Ro(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-cell",51),o.TgZ(1,"button",52),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onForceClosingClick(t)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function Mo(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No pending channel."),o.qZA())}function Eo(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting pending channels..."),o.qZA())}function Qo(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function Yo(e,t){if(1&e&&(o.TgZ(0,"td",46),o.YNc(1,Mo,2,0,"p",47),o.YNc(2,Eo,2,0,"p",47),o.YNc(3,Qo,2,1,"p",47),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!e.pendingForceClosingChannels||!(null!=e.pendingForceClosingChannels&&e.pendingForceClosingChannels.data)||(null==e.pendingForceClosingChannels||null==e.pendingForceClosingChannels.data?null:e.pendingForceClosingChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!e.pendingForceClosingChannels||!(null!=e.pendingForceClosingChannels&&e.pendingForceClosingChannels.data)||(null==e.pendingForceClosingChannels||null==e.pendingForceClosingChannels.data?null:e.pendingForceClosingChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!e.pendingForceClosingChannels||!(null!=e.pendingForceClosingChannels&&e.pendingForceClosingChannels.data)||(null==e.pendingForceClosingChannels||null==e.pendingForceClosingChannels.data?null:e.pendingForceClosingChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.ERROR)}}function Po(e,t){if(1&e&&o._UZ(0,"tr",48),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,wo,e.pendingForceClosingChannels&&(null==e.pendingForceClosingChannels?null:e.pendingForceClosingChannels.data)&&(null==e.pendingForceClosingChannels||null==e.pendingForceClosingChannels.data?null:e.pendingForceClosingChannels.data.length)>0))}}function Bo(e,t){1&e&&o._UZ(0,"mat-header-row")}function Go(e,t){1&e&&o._UZ(0,"mat-row",49)}function Ho(e,t){1&e&&o._UZ(0,"mat-progress-bar",36)}function zo(e,t){1&e&&(o.TgZ(0,"mat-header-cell",53),o._uU(1," Peer "),o.qZA())}function Vo(e,t){if(1&e&&(o.TgZ(0,"mat-cell",54),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,co,n.screenSize===n.screenSizeEnum.XS?"10rem":"30rem")),o.xp6(1),o.Oqu(e.channel.remote_alias)}}function Wo(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1," Local Balance (Sats) "),o.qZA())}function Xo(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.channel.local_balance))}}function $o(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1," Remote Balance (Sats) "),o.qZA())}function jo(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.channel.remote_balance))}}function Ko(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1," Capacity (Sats) "),o.qZA())}function el(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.channel.capacity))}}function tl(e,t){1&e&&(o.TgZ(0,"mat-header-cell",50),o._uU(1,"Actions"),o.qZA())}function nl(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-cell",51),o.TgZ(1,"button",55),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onClosingClick(t)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function al(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No pending channel."),o.qZA())}function il(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting pending channels..."),o.qZA())}function sl(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function ol(e,t){if(1&e&&(o.TgZ(0,"td",46),o.YNc(1,al,2,0,"p",47),o.YNc(2,il,2,0,"p",47),o.YNc(3,sl,2,1,"p",47),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!e.pendingClosingChannels||!(null!=e.pendingClosingChannels&&e.pendingClosingChannels.data)||(null==e.pendingClosingChannels||null==e.pendingClosingChannels.data?null:e.pendingClosingChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!e.pendingClosingChannels||!(null!=e.pendingClosingChannels&&e.pendingClosingChannels.data)||(null==e.pendingClosingChannels||null==e.pendingClosingChannels.data?null:e.pendingClosingChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!e.pendingClosingChannels||!(null!=e.pendingClosingChannels&&e.pendingClosingChannels.data)||(null==e.pendingClosingChannels||null==e.pendingClosingChannels.data?null:e.pendingClosingChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.ERROR)}}function ll(e,t){if(1&e&&o._UZ(0,"tr",48),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,wo,e.pendingClosingChannels&&(null==e.pendingClosingChannels?null:e.pendingClosingChannels.data)&&(null==e.pendingClosingChannels||null==e.pendingClosingChannels.data?null:e.pendingClosingChannels.data.length)>0))}}function rl(e,t){1&e&&o._UZ(0,"mat-header-row")}function cl(e,t){1&e&&o._UZ(0,"mat-row",49)}function ul(e,t){1&e&&o._UZ(0,"mat-progress-bar",36)}function pl(e,t){1&e&&(o.TgZ(0,"mat-header-cell",53),o._uU(1," Peer "),o.qZA())}function dl(e,t){if(1&e&&(o.TgZ(0,"mat-cell",54),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,co,n.screenSize===n.screenSizeEnum.XS?"10rem":"30rem")),o.xp6(1),o.Oqu(e.channel.remote_alias)}}function hl(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1," Limbo Balance (Sats) "),o.qZA())}function ml(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij("",o.lcZ(2,1,e.limbo_balance)," ")}}function gl(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1," Local Balance (Sats) "),o.qZA())}function fl(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.channel.local_balance))}}function xl(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1," Remote Balance (Sats) "),o.qZA())}function Zl(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.channel.remote_balance))}}function yl(e,t){1&e&&(o.TgZ(0,"mat-header-cell",39),o._uU(1," Capacity (Sats) "),o.qZA())}function Al(e,t){if(1&e&&(o.TgZ(0,"mat-cell",40),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.channel.capacity))}}function Cl(e,t){1&e&&(o.TgZ(0,"mat-header-cell",50),o._uU(1,"Actions"),o.qZA())}function Tl(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-cell",51),o.TgZ(1,"button",56),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onWaitClosingClick(t)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function bl(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No pending channel."),o.qZA())}function wl(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting pending channels..."),o.qZA())}function _l(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function vl(e,t){if(1&e&&(o.TgZ(0,"td",46),o.YNc(1,bl,2,0,"p",47),o.YNc(2,wl,2,0,"p",47),o.YNc(3,_l,2,1,"p",47),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!e.pendingWaitClosingChannels||!(null!=e.pendingWaitClosingChannels&&e.pendingWaitClosingChannels.data)||(null==e.pendingWaitClosingChannels||null==e.pendingWaitClosingChannels.data?null:e.pendingWaitClosingChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!e.pendingWaitClosingChannels||!(null!=e.pendingWaitClosingChannels&&e.pendingWaitClosingChannels.data)||(null==e.pendingWaitClosingChannels||null==e.pendingWaitClosingChannels.data?null:e.pendingWaitClosingChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!e.pendingWaitClosingChannels||!(null!=e.pendingWaitClosingChannels&&e.pendingWaitClosingChannels.data)||(null==e.pendingWaitClosingChannels||null==e.pendingWaitClosingChannels.data?null:e.pendingWaitClosingChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchPendingChannels.status)===e.apiCallStatusEnum.ERROR)}}const ql=function(e){return{"py-0":!0,"display-none":e}};function Sl(e,t){if(1&e&&o._UZ(0,"tr",48),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,ql,e.pendingWaitClosingChannels&&(null==e.pendingWaitClosingChannels?null:e.pendingWaitClosingChannels.data)&&(null==e.pendingWaitClosingChannels||null==e.pendingWaitClosingChannels.data?null:e.pendingWaitClosingChannels.data.length)>0))}}function Fl(e,t){1&e&&o._UZ(0,"mat-header-row")}function Ll(e,t){1&e&&o._UZ(0,"mat-row",49)}const kl=function(e){return{"error-border bordered-box":e,"bordered-box":!0}},Nl=function(){return["no_pending_open"]},Ul=function(){return["no_pending_force_closing"]},Il=function(){return["no_pending_closing"]},Ol=function(){return["no_pending_wait_closing"]};let Jl=(()=>{class e{constructor(e,t,n){this.logger=e,this.store=t,this.commonService=n,this.selNode={},this.selectedFilter="",this.information={},this.pendingChannels={},this.displayedOpenColumns=["remote_alias","commit_fee","commit_weight","capacity","actions"],this.pendingOpenChannelsLength=0,this.displayedForceClosingColumns=["remote_alias","recovered_balance","limbo_balance","capacity","actions"],this.pendingForceClosingChannelsLength=0,this.displayedClosingColumns=["remote_alias","local_balance","remote_balance","capacity","actions"],this.pendingClosingChannelsLength=0,this.displayedWaitClosingColumns=["remote_alias","limbo_balance","local_balance","remote_balance","actions"],this.pendingWaitClosingChannelsLength=0,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.displayedOpenColumns=["remote_alias","actions"],this.displayedForceClosingColumns=["remote_alias","actions"],this.displayedClosingColumns=["remote_alias","actions"],this.displayedWaitClosingColumns=["remote_alias","actions"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.displayedOpenColumns=["remote_alias","commit_fee","actions"],this.displayedForceClosingColumns=["remote_alias","limbo_balance","actions"],this.displayedClosingColumns=["remote_alias","remote_balance","actions"],this.displayedWaitClosingColumns=["remote_alias","limbo_balance","actions"]):(this.displayedOpenColumns=["remote_alias","commit_fee","commit_weight","capacity","actions"],this.displayedForceClosingColumns=["remote_alias","recovered_balance","limbo_balance","capacity","actions"],this.displayedClosingColumns=["remote_alias","local_balance","remote_balance","capacity","actions"],this.displayedWaitClosingColumns=["remote_alias","limbo_balance","local_balance","remote_balance","actions"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchPendingChannels.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchPendingChannels.message?JSON.stringify(this.apisCallStatus.FetchPendingChannels.message):this.apisCallStatus.FetchPendingChannels.message),this.selNode=e.nodeSettings,this.information=e.information,this.pendingChannels=e.pendingChannels,this.pendingChannels.pending_open_channels&&this.pendingChannels.pending_open_channels.length&&this.pendingChannels.pending_open_channels.length>0&&this.loadOpenChannelsTable(this.pendingChannels.pending_open_channels),this.pendingChannels.pending_force_closing_channels&&this.pendingChannels.pending_force_closing_channels.length&&this.pendingChannels.pending_force_closing_channels.length>0&&this.loadForceClosingChannelsTable(this.pendingChannels.pending_force_closing_channels),this.pendingChannels.pending_closing_channels&&this.pendingChannels.pending_closing_channels.length&&this.pendingChannels.pending_closing_channels.length>0&&this.loadClosingChannelsTable(this.pendingChannels.pending_closing_channels),this.pendingChannels.waiting_close_channels&&this.pendingChannels.waiting_close_channels.length&&this.pendingChannels.waiting_close_channels.length>0&&this.loadWaitClosingChannelsTable(this.pendingChannels.waiting_close_channels),this.logger.info(e)})}ngAfterViewInit(){this.pendingChannels.pending_open_channels&&this.pendingChannels.pending_open_channels.length&&this.pendingChannels.pending_open_channels.length>0&&this.loadOpenChannelsTable(this.pendingChannels.pending_open_channels),this.pendingChannels.pending_force_closing_channels&&this.pendingChannels.pending_force_closing_channels.length&&this.pendingChannels.pending_force_closing_channels.length>0&&this.loadForceClosingChannelsTable(this.pendingChannels.pending_force_closing_channels),this.pendingChannels.pending_closing_channels&&this.pendingChannels.pending_closing_channels.length&&this.pendingChannels.pending_closing_channels.length>0&&this.loadClosingChannelsTable(this.pendingChannels.pending_closing_channels),this.pendingChannels.waiting_close_channels&&this.pendingChannels.waiting_close_channels.length&&this.pendingChannels.waiting_close_channels.length>0&&this.loadWaitClosingChannelsTable(this.pendingChannels.waiting_close_channels)}onOpenClick(e){const t=JSON.parse(JSON.stringify(e,["commit_weight","confirmation_height","fee_per_kw","commit_fee"],2)),n=JSON.parse(JSON.stringify(e.channel,["remote_alias","channel_point","remote_balance","local_balance","remote_node_pub","capacity"],2)),a={};Object.assign(a,t,n),this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Opening Channel Information",message:[[{key:"channel_point",value:a.channel_point,title:"Channel Point",width:100,type:f.Gi.STRING}],[{key:"remote_alias",value:a.remote_alias,title:"Peer Alias",width:25,type:f.Gi.STRING},{key:"remote_node_pub",value:a.remote_node_pub,title:"Peer Node Pubkey",width:75,type:f.Gi.STRING}],[{key:"capacity",value:a.capacity,title:"Capacity",width:25,type:f.Gi.NUMBER},{key:"confirmation_height",value:a.confirmation_height,title:"Confirmation Height",width:25,type:f.Gi.NUMBER},{key:"local_balance",value:a.local_balance,title:"Local Balance",width:25,type:f.Gi.NUMBER},{key:"remote_balance",value:a.remote_balance,title:"Remote Balance",width:25,type:f.Gi.NUMBER}],[{key:"fee_per_kw",value:a.fee_per_kw,title:"Fee/KW",width:25,type:f.Gi.NUMBER},{key:"commit_weight",value:a.commit_weight,title:"Commit Weight",width:25,type:f.Gi.NUMBER},{key:"commit_fee",value:a.commit_fee,title:"Commit Fee",width:50,type:f.Gi.NUMBER}]]}}))}onBumpFee(e){this.store.dispatch(new ee.wu({data:{pendingChannel:e,component:so}}))}onForceClosingClick(e){const t=JSON.parse(JSON.stringify(e,["closing_txid","limbo_balance","maturity_height","blocks_til_maturity","recovered_balance"],2)),n=JSON.parse(JSON.stringify(e.channel,["remote_alias","channel_point","remote_balance","local_balance","remote_node_pub","capacity"],2)),a={};Object.assign(a,t,n),this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Force Closing Channel Information",message:[[{key:"closing_txid",value:a.closing_txid,title:"Closing Transaction ID",width:100,type:f.Gi.STRING}],[{key:"channel_point",value:a.channel_point,title:"Channel Point",width:100,type:f.Gi.STRING}],[{key:"remote_alias",value:a.remote_alias,title:"Peer Alias",width:25,type:f.Gi.STRING},{key:"remote_node_pub",value:a.remote_node_pub,title:"Peer Node Pubkey",width:75,type:f.Gi.STRING}],[{key:"capacity",value:a.capacity,title:"Capacity",width:25,type:f.Gi.NUMBER},{key:"limbo_balance",value:a.limbo_balance,title:"Limbo Balance",width:25,type:f.Gi.NUMBER},{key:"local_balance",value:a.local_balance,title:"Local Balance",width:25,type:f.Gi.NUMBER},{key:"remote_balance",value:a.remote_balance,title:"Remote Balance",width:25,type:f.Gi.NUMBER}],[{key:"maturity_height",value:a.maturity_height,title:"Maturity Height",width:25,type:f.Gi.NUMBER},{key:"blocks_til_maturity",value:a.blocks_til_maturity,title:"Blocks Till Maturity",width:25,type:f.Gi.NUMBER},{key:"recovered_balance",value:a.recovered_balance,title:"Recovered Balance",width:50,type:f.Gi.NUMBER}]]}}))}onClosingClick(e){const t=JSON.parse(JSON.stringify(e,["closing_txid"],2)),n=JSON.parse(JSON.stringify(e.channel,["remote_alias","channel_point","remote_balance","local_balance","remote_node_pub","capacity"],2)),a={};Object.assign(a,t,n),this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Closing Channel Information",message:[[{key:"closing_txid",value:a.closing_txid,title:"Closing Transaction ID",width:50,type:f.Gi.STRING}],[{key:"channel_point",value:a.channel_point,title:"Channel Point",width:100,type:f.Gi.STRING}],[{key:"remote_alias",value:a.remote_alias,title:"Peer Alias",width:25,type:f.Gi.STRING},{key:"remote_node_pub",value:a.remote_node_pub,title:"Peer Node Pubkey",width:75,type:f.Gi.STRING}],[{key:"capacity",value:a.capacity,title:"Capacity",width:25,type:f.Gi.NUMBER},{key:"local_balance",value:a.local_balance,title:"Local Balance",width:25,type:f.Gi.NUMBER},{key:"remote_balance",value:a.remote_balance,title:"Remote Balance",width:50,type:f.Gi.NUMBER}]]}}))}onWaitClosingClick(e){const t=JSON.parse(JSON.stringify(e,["limbo_balance"],2)),n=JSON.parse(JSON.stringify(e.channel,["remote_alias","channel_point","remote_balance","local_balance","remote_node_pub","capacity"],2)),a=JSON.parse(JSON.stringify(e.commitments,["local_txid"],2)),i={};Object.assign(i,t,n,a),this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Wait Closing Channel Information",message:[[{key:"local_txid",value:i.local_txid,title:"Transaction ID",width:100,type:f.Gi.STRING}],[{key:"channel_point",value:i.channel_point,title:"Channel Point",width:100,type:f.Gi.STRING}],[{key:"remote_alias",value:i.remote_alias,title:"Peer Alias",width:25,type:f.Gi.STRING},{key:"remote_node_pub",value:i.remote_node_pub,title:"Peer Node Pubkey",width:75,type:f.Gi.STRING}],[{key:"capacity",value:i.capacity,title:"Capacity",width:25,type:f.Gi.NUMBER},{key:"limbo_balance",value:i.limbo_balance,title:"Limbo Balance",width:25,type:f.Gi.NUMBER},{key:"local_balance",value:i.local_balance,title:"Local Balance",width:25,type:f.Gi.NUMBER},{key:"remote_balance",value:i.remote_balance,title:"Remote Balance",width:25,type:f.Gi.NUMBER}]]}}))}loadOpenChannelsTable(e){e.sort((e,t)=>e.active===t.active?0:t.active?-1:1),this.pendingOpenChannelsLength=e.length?e.length:0,this.pendingOpenChannels=new Ze.by([...e]),this.pendingOpenChannels.sort=this.sort,this.pendingOpenChannels.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.pendingOpenChannels.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.logger.info(this.pendingOpenChannels)}loadForceClosingChannelsTable(e){e.sort((e,t)=>e.active===t.active?0:t.active?-1:1),this.pendingForceClosingChannelsLength=e.length?e.length:0,this.pendingForceClosingChannels=new Ze.by([...e]),this.pendingForceClosingChannels.sort=this.sort,this.pendingForceClosingChannels.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.pendingForceClosingChannels.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.logger.info(this.pendingForceClosingChannels)}loadClosingChannelsTable(e){e.sort((e,t)=>e.active===t.active?0:t.active?-1:1),this.pendingClosingChannelsLength=e.length?e.length:0,this.pendingClosingChannels=new Ze.by([...e]),this.pendingClosingChannels.sort=this.sort,this.pendingClosingChannels.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.pendingClosingChannels.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.logger.info(this.pendingClosingChannels)}loadWaitClosingChannelsTable(e){e.sort((e,t)=>e.active===t.active?0:t.active?-1:1),this.pendingWaitClosingChannelsLength=e.length?e.length:0,this.pendingWaitClosingChannels=new Ze.by([...e]),this.pendingWaitClosingChannels.sort=this.sort,this.pendingWaitClosingChannels.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.pendingWaitClosingChannels.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.logger.info(this.pendingWaitClosingChannels)}applyFilter(e){this.selectedFilter=e.trim().toLowerCase()}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(C.v))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-pending-table"]],viewQuery:function(e,t){if(1&e&&o.Gf(xe.YE,5),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first)}},decls:121,vars:44,consts:[["fxLayout","column",1,"mb-2"],[1,"page-title"],["displayMode","flat",1,"mt-1"],["mode","indeterminate",4,"ngIf"],["fxLayout","column",1,"flat-expansion-panel"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","remote_alias"],["mat-sort-header","",4,"matHeaderCellDef"],[3,"ngStyle",4,"matCellDef"],["matColumnDef","commit_fee"],["fxLayoutAlign","end center","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","commit_weight"],["matColumnDef","capacity"],["matColumnDef","actions"],["fxLayoutAlign","end center","class","pl-3 pr-4",4,"matHeaderCellDef"],["fxLayoutAlign","end center","class","px-3",4,"matCellDef"],["matColumnDef","no_pending_open"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","","fxLayoutAlign","start center",3,"ngClass",4,"matFooterRowDef"],[4,"matHeaderRowDef"],["fxLayoutAlign","stretch stretch",4,"matRowDef","matRowDefColumns"],["mat-table","","matSort","",3,"dataSource","ngClass"],["matColumnDef","recovered_balance"],["matColumnDef","limbo_balance"],["fxLayoutAlign","end center","class","pl-4 pr-3",4,"matHeaderCellDef"],["fxLayoutAlign","end center","class","pl-4",4,"matCellDef"],["matColumnDef","no_pending_force_closing"],["class","pl-2","mat-sort-header","",4,"matHeaderCellDef"],["class","pl-2",3,"ngStyle",4,"matCellDef"],["matColumnDef","local_balance"],["matColumnDef","remote_balance"],["matColumnDef","no_pending_closing"],["matColumnDef","no_pending_wait_closing"],["mode","indeterminate"],["mat-sort-header",""],[3,"ngStyle"],["fxLayoutAlign","end center","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["fxLayoutAlign","end center",1,"pl-3","pr-4"],["fxLayoutAlign","end center",1,"px-3"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","","fxLayoutAlign","start center",3,"ngClass"],["fxLayoutAlign","stretch stretch"],["fxLayoutAlign","end center",1,"pl-4","pr-3"],["fxLayoutAlign","end center",1,"pl-4"],["mat-stroked-button","","color","primary","type","button","tabindex","2",3,"click"],["mat-sort-header","",1,"pl-2"],[1,"pl-2",3,"ngStyle"],["mat-stroked-button","","color","primary","type","button","tabindex","3",3,"click"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"span",1),o._uU(2),o.ALo(3,"number"),o.qZA(),o.TgZ(4,"mat-accordion",2),o.YNc(5,oo,1,0,"mat-progress-bar",3),o.TgZ(6,"mat-expansion-panel",4),o.TgZ(7,"mat-expansion-panel-header"),o.TgZ(8,"mat-panel-title"),o._uU(9),o.qZA(),o.qZA(),o.TgZ(10,"div",5),o.YNc(11,lo,1,0,"mat-progress-bar",3),o.TgZ(12,"table",6,7),o.ynx(14,8),o.YNc(15,ro,2,0,"mat-header-cell",9),o.YNc(16,uo,2,4,"mat-cell",10),o.BQk(),o.ynx(17,11),o.YNc(18,po,2,0,"mat-header-cell",12),o.YNc(19,ho,3,3,"mat-cell",13),o.BQk(),o.ynx(20,14),o.YNc(21,mo,2,0,"mat-header-cell",12),o.YNc(22,go,3,3,"mat-cell",13),o.BQk(),o.ynx(23,15),o.YNc(24,fo,2,0,"mat-header-cell",12),o.YNc(25,xo,3,3,"mat-cell",13),o.BQk(),o.ynx(26,16),o.YNc(27,Zo,2,0,"mat-header-cell",17),o.YNc(28,yo,8,0,"mat-cell",18),o.BQk(),o.ynx(29,19),o.YNc(30,bo,4,3,"td",20),o.BQk(),o.YNc(31,_o,1,3,"tr",21),o.YNc(32,vo,1,0,"mat-header-row",22),o.YNc(33,qo,1,0,"mat-row",23),o.qZA(),o.qZA(),o.qZA(),o.YNc(34,So,1,0,"mat-progress-bar",3),o.TgZ(35,"mat-expansion-panel",4),o.TgZ(36,"mat-expansion-panel-header"),o.TgZ(37,"mat-panel-title"),o._uU(38),o.qZA(),o.qZA(),o.TgZ(39,"div",5),o.TgZ(40,"table",24,7),o.ynx(42,8),o.YNc(43,Fo,2,0,"mat-header-cell",9),o.YNc(44,Lo,2,4,"mat-cell",10),o.BQk(),o.ynx(45,25),o.YNc(46,ko,2,0,"mat-header-cell",12),o.YNc(47,No,3,3,"mat-cell",13),o.BQk(),o.ynx(48,26),o.YNc(49,Uo,2,0,"mat-header-cell",12),o.YNc(50,Io,3,3,"mat-cell",13),o.BQk(),o.ynx(51,15),o.YNc(52,Oo,2,0,"mat-header-cell",12),o.YNc(53,Jo,3,3,"mat-cell",13),o.BQk(),o.ynx(54,16),o.YNc(55,Do,2,0,"mat-header-cell",27),o.YNc(56,Ro,3,0,"mat-cell",28),o.BQk(),o.ynx(57,29),o.YNc(58,Yo,4,3,"td",20),o.BQk(),o.YNc(59,Po,1,3,"tr",21),o.YNc(60,Bo,1,0,"mat-header-row",22),o.YNc(61,Go,1,0,"mat-row",23),o.qZA(),o.qZA(),o.qZA(),o.YNc(62,Ho,1,0,"mat-progress-bar",3),o.TgZ(63,"mat-expansion-panel",4),o.TgZ(64,"mat-expansion-panel-header"),o.TgZ(65,"mat-panel-title"),o._uU(66),o.qZA(),o.qZA(),o.TgZ(67,"div",5),o.TgZ(68,"table",24,7),o.ynx(70,8),o.YNc(71,zo,2,0,"mat-header-cell",30),o.YNc(72,Vo,2,4,"mat-cell",31),o.BQk(),o.ynx(73,32),o.YNc(74,Wo,2,0,"mat-header-cell",12),o.YNc(75,Xo,3,3,"mat-cell",13),o.BQk(),o.ynx(76,33),o.YNc(77,$o,2,0,"mat-header-cell",12),o.YNc(78,jo,3,3,"mat-cell",13),o.BQk(),o.ynx(79,15),o.YNc(80,Ko,2,0,"mat-header-cell",12),o.YNc(81,el,3,3,"mat-cell",13),o.BQk(),o.ynx(82,16),o.YNc(83,tl,2,0,"mat-header-cell",27),o.YNc(84,nl,3,0,"mat-cell",28),o.BQk(),o.ynx(85,34),o.YNc(86,ol,4,3,"td",20),o.BQk(),o.YNc(87,ll,1,3,"tr",21),o.YNc(88,rl,1,0,"mat-header-row",22),o.YNc(89,cl,1,0,"mat-row",23),o.qZA(),o.qZA(),o.qZA(),o.YNc(90,ul,1,0,"mat-progress-bar",3),o.TgZ(91,"mat-expansion-panel",4),o.TgZ(92,"mat-expansion-panel-header"),o.TgZ(93,"mat-panel-title"),o._uU(94),o.qZA(),o.qZA(),o.TgZ(95,"div",5),o.TgZ(96,"table",24,7),o.ynx(98,8),o.YNc(99,pl,2,0,"mat-header-cell",30),o.YNc(100,dl,2,4,"mat-cell",31),o.BQk(),o.ynx(101,26),o.YNc(102,hl,2,0,"mat-header-cell",12),o.YNc(103,ml,3,3,"mat-cell",13),o.BQk(),o.ynx(104,32),o.YNc(105,gl,2,0,"mat-header-cell",12),o.YNc(106,fl,3,3,"mat-cell",13),o.BQk(),o.ynx(107,33),o.YNc(108,xl,2,0,"mat-header-cell",12),o.YNc(109,Zl,3,3,"mat-cell",13),o.BQk(),o.ynx(110,15),o.YNc(111,yl,2,0,"mat-header-cell",12),o.YNc(112,Al,3,3,"mat-cell",13),o.BQk(),o.ynx(113,16),o.YNc(114,Cl,2,0,"mat-header-cell",27),o.YNc(115,Tl,3,0,"mat-cell",28),o.BQk(),o.ynx(116,35),o.YNc(117,vl,4,3,"td",20),o.BQk(),o.YNc(118,Sl,1,3,"tr",21),o.YNc(119,Fl,1,0,"mat-header-row",22),o.YNc(120,Ll,1,0,"mat-row",23),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(2),o.hij("Total Limbo Balance: ",o.lcZ(3,30,t.pendingChannels.total_limbo_balance)," Sats"),o.xp6(3),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPendingChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(4),o.hij("Pending Open (",t.pendingOpenChannelsLength,")"),o.xp6(2),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPendingChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.pendingOpenChannels)("ngClass",o.VKq(32,kl,""!==t.errorMessage)),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(34,Nl)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedOpenColumns),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedOpenColumns),o.xp6(1),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPendingChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(4),o.hij("Pending Force Closing (",t.pendingForceClosingChannelsLength,")"),o.xp6(2),o.Q6J("dataSource",t.pendingForceClosingChannels)("ngClass",o.VKq(35,kl,""!==t.errorMessage)),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(37,Ul)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedForceClosingColumns),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedForceClosingColumns),o.xp6(1),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPendingChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(4),o.hij("Pending Closing (",t.pendingClosingChannelsLength,")"),o.xp6(2),o.Q6J("dataSource",t.pendingClosingChannels)("ngClass",o.VKq(38,kl,""!==t.errorMessage)),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(40,Il)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedClosingColumns),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedClosingColumns),o.xp6(1),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchPendingChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(4),o.hij("Waiting Close (",t.pendingWaitClosingChannelsLength,")"),o.xp6(2),o.Q6J("dataSource",t.pendingWaitClosingChannels)("ngClass",o.VKq(41,kl,""!==t.errorMessage)),o.xp6(22),o.Q6J("matFooterRowDef",o.DdM(43,Ol)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedWaitClosingColumns),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedWaitClosingColumns))},directives:[l.xw,ht.pp,a.O5,ht.ib,ht.yz,ht.yK,l.Wh,l.yH,E.$V,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,r.pW,Ze.ge,xe.nU,Ze.ev,a.PC,v.Zl,we.gD,we.$L,ve.ey,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk,q.lW],pipes:[a.JJ],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}tr.mat-footer-row[_ngcontent-%COMP%] td.mat-footer-cell[_ngcontent-%COMP%]{border-bottom:none}"]}),e})();function Dl(e,t){1&e&&o._UZ(0,"mat-progress-bar",28)}function Rl(e,t){1&e&&(o.TgZ(0,"th",29),o._uU(1," Close Type "),o.qZA())}function Ml(e,t){if(1&e&&(o.TgZ(0,"td",30),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("matTooltip",n.channelClosureType[e.close_type].tooltip),o.xp6(1),o.hij("",n.channelClosureType[e.close_type].name," ")}}function El(e,t){1&e&&(o.TgZ(0,"th",29),o._uU(1," Peer "),o.qZA())}const Ql=function(e){return{"max-width":e}};function Yl(e,t){if(1&e&&(o.TgZ(0,"td",31),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,Ql,n.screenSize===n.screenSizeEnum.XS?"10rem":"20rem")),o.xp6(1),o.hij(" ",e.remote_alias," ")}}function Pl(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1," Capacity "),o.qZA())}function Bl(e,t){if(1&e&&(o.TgZ(0,"td",33),o.TgZ(1,"span",34),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,e.capacity)," ")}}function Gl(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1," Close Height "),o.qZA())}function Hl(e,t){if(1&e&&(o.TgZ(0,"td",33),o.TgZ(1,"span",34),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,e.close_height)," ")}}function zl(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1," Settled Balance "),o.qZA())}function Vl(e,t){if(1&e&&(o.TgZ(0,"td",33),o.TgZ(1,"span",34),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,e.settled_balance)," ")}}function Wl(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"th",35),o.TgZ(1,"div",36),o.TgZ(2,"mat-select",37),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",38),o.NdJ("click",function(){return o.CHM(e),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Xl(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",39),o.TgZ(1,"span",34),o.TgZ(2,"button",40),o.NdJ("click",function(t){const n=o.CHM(e).$implicit;return o.oxw().onClosedChannelClick(n,t)}),o._uU(3,"View Info"),o.qZA(),o.qZA(),o.qZA()}}function $l(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No closed channel available."),o.qZA())}function jl(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting closed channels..."),o.qZA())}function Kl(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function er(e,t){if(1&e&&(o.TgZ(0,"td",41),o.YNc(1,$l,2,0,"p",42),o.YNc(2,jl,2,0,"p",42),o.YNc(3,Kl,2,1,"p",42),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=e.closedChannels&&e.closedChannels.data)||(null==e.closedChannels||null==e.closedChannels.data?null:e.closedChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchClosedChannels.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.closedChannels&&e.closedChannels.data)||(null==e.closedChannels||null==e.closedChannels.data?null:e.closedChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchClosedChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.closedChannels&&e.closedChannels.data)||(null==e.closedChannels||null==e.closedChannels.data?null:e.closedChannels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchClosedChannels.status)===e.apiCallStatusEnum.ERROR)}}const tr=function(e){return{"display-none":e}};function nr(e,t){if(1&e&&o._UZ(0,"tr",43),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,tr,(null==e.closedChannels?null:e.closedChannels.data)&&(null==e.closedChannels||null==e.closedChannels.data?null:e.closedChannels.data.length)>0))}}function ar(e,t){1&e&&o._UZ(0,"tr",44)}function ir(e,t){1&e&&o._UZ(0,"tr",45)}const sr=function(e){return{"error-border":e,"overflow-auto":!0}},or=function(){return["no_closed_channel"]};let lr=(()=>{class e{constructor(e,t,n){this.logger=e,this.store=t,this.commonService=n,this.channelClosureType=f.HW,this.faHistory=g.qO$,this.displayedColumns=[],this.closedChannelsData=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unsub=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["remote_alias","actions"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["close_type","remote_alias","settled_balance","actions"]):(this.flgSticky=!0,this.displayedColumns=["close_type","remote_alias","capacity","close_height","settled_balance","actions"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unsub[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchClosedChannels.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchClosedChannels.message?JSON.stringify(this.apisCallStatus.FetchClosedChannels.message):this.apisCallStatus.FetchClosedChannels.message),this.closedChannelsData=e.closedChannels,this.closedChannelsData.length>0&&this.loadClosedChannelsTable(this.closedChannelsData),this.logger.info(e)})}ngAfterViewInit(){this.closedChannelsData.length>0&&this.loadClosedChannelsTable(this.closedChannelsData)}applyFilter(e){this.closedChannels.filter=e.value.trim().toLowerCase()}onClosedChannelClick(e,t){this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Closed Channel Information",message:[[{key:"close_type",value:this.channelClosureType[e.close_type].name,title:"Close Type",width:30,type:f.Gi.STRING},{key:"settled_balance",value:e.settled_balance,title:"Settled Balance",width:30,type:f.Gi.NUMBER},{key:"time_locked_balance",value:e.time_locked_balance,title:"Time Locked Balance",width:40,type:f.Gi.NUMBER}],[{key:"chan_id",value:e.chan_id,title:"Channel ID",width:30},{key:"capacity",value:e.capacity,title:"Capacity",width:30,type:f.Gi.NUMBER},{key:"close_height",value:e.close_height,title:"Close Height",width:40,type:f.Gi.NUMBER}],[{key:"remote_alias",value:e.remote_alias,title:"Peer Alias",width:30},{key:"remote_pubkey",value:e.remote_pubkey,title:"Peer Public Key",width:70}],[{key:"channel_point",value:e.channel_point,title:"Channel Point",width:100}],[{key:"closing_tx_hash",value:e.closing_tx_hash,title:"Closing Transaction Hash",width:100,type:f.Gi.STRING}]]}}))}loadClosedChannelsTable(e){this.closedChannels=new Ze.by([...e]),this.closedChannels.sort=this.sort,this.closedChannels.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.closedChannels.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.closedChannels.paginator=this.paginator,this.logger.info(this.closedChannels)}onDownloadCSV(){this.closedChannels.data&&this.closedChannels.data.length>0&&this.commonService.downloadFile(this.closedChannels.data,"Closed-channels")}ngOnDestroy(){this.unsub.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(C.v))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-closed-table"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Channels")}])],decls:33,vars:13,consts:[["fxLayout","column"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","close_type"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"matTooltip",4,"matCellDef"],["matColumnDef","remote_alias"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","capacity"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","close_height"],["matColumnDef","settled_balance"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1",4,"matCellDef"],["matColumnDef","no_closed_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"matTooltip"],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","",1,"pl-1"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"div",2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"input",4),o.NdJ("keyup",function(e){return t.applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(5,"div",5),o.YNc(6,Dl,1,0,"mat-progress-bar",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,Rl,2,0,"th",10),o.YNc(11,Ml,2,2,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,El,2,0,"th",10),o.YNc(14,Yl,2,4,"td",13),o.BQk(),o.ynx(15,14),o.YNc(16,Pl,2,0,"th",15),o.YNc(17,Bl,4,3,"td",16),o.BQk(),o.ynx(18,17),o.YNc(19,Gl,2,0,"th",15),o.YNc(20,Hl,4,3,"td",16),o.BQk(),o.ynx(21,18),o.YNc(22,zl,2,0,"th",15),o.YNc(23,Vl,4,3,"td",16),o.BQk(),o.ynx(24,19),o.YNc(25,Wl,6,0,"th",20),o.YNc(26,Xl,4,0,"td",21),o.BQk(),o.ynx(27,22),o.YNc(28,er,4,3,"td",23),o.BQk(),o.YNc(29,nr,1,3,"tr",24),o.YNc(30,ar,1,0,"tr",25),o.YNc(31,ir,1,0,"tr",26),o.qZA(),o.qZA(),o._UZ(32,"mat-paginator",27),o.qZA()),2&e&&(o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchClosedChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.closedChannels)("ngClass",o.VKq(10,sr,""!==t.errorMessage)),o.xp6(22),o.Q6J("matFooterRowDef",o.DdM(12,or)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,D.KE,Ce.Nt,E.$V,a.O5,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,R.gM,a.PC,v.Zl,we.gD,we.$L,ve.ey,q.lW,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],pipes:[a.JJ],styles:[".mat-column-close_type[_ngcontent-%COMP%]{flex:0 0 16%;min-width:5rem}.mat-column-remote_alias[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),e})();function rr(e,t){1&e&&o._UZ(0,"mat-progress-bar",27)}function cr(e,t){1&e&&(o.TgZ(0,"th",28),o._uU(1,"Amount (Sats)"),o.qZA())}function ur(e,t){if(1&e&&(o.TgZ(0,"span",33),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",o.lcZ(2,1,null==e?null:e.amount)," ")}}function pr(e,t){if(1&e&&(o.TgZ(0,"span"),o.YNc(1,ur,3,3,"span",32),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.pending_htlcs)}}function dr(e,t){if(1&e&&(o.TgZ(0,"td",29),o.TgZ(1,"span",30),o._uU(2),o.qZA(),o.YNc(3,pr,2,1,"span",31),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" Active HTLCs: ",null==e||null==e.pending_htlcs?null:e.pending_htlcs.length," "),o.xp6(1),o.Q6J("ngIf",e.is_expanded)}}function hr(e,t){1&e&&(o.TgZ(0,"th",28),o._uU(1,"Alias/Incoming"),o.qZA())}function mr(e,t){if(1&e&&(o.TgZ(0,"span",30),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",null!=e&&e.incoming?"Yes":"No"," ")}}function gr(e,t){if(1&e&&(o.ynx(0),o.YNc(1,mr,2,1,"span",34),o.BQk()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.pending_htlcs)}}function fr(e,t){if(1&e&&(o.TgZ(0,"td",29),o.TgZ(1,"span",30),o._uU(2),o.qZA(),o.YNc(3,gr,2,1,"ng-container",31),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(null==e?null:e.remote_alias),o.xp6(1),o.Q6J("ngIf",e.is_expanded)}}function xr(e,t){1&e&&(o.TgZ(0,"th",35),o.TgZ(1,"span",36),o._uU(2,"Expiration Height"),o.qZA(),o.qZA())}function Zr(e,t){if(1&e&&(o.TgZ(0,"span",36),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",o.xi3(2,1,null==e?null:e.expiration_height,"1.0-0")," ")}}function yr(e,t){if(1&e&&(o.TgZ(0,"span"),o.YNc(1,Zr,3,4,"span",37),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.pending_htlcs)}}function Ar(e,t){if(1&e&&(o.TgZ(0,"td",29),o.TgZ(1,"span",36),o._uU(2),o.qZA(),o.YNc(3,yr,2,1,"span",31),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(" "),o.xp6(1),o.Q6J("ngIf",e.is_expanded)}}function Cr(e,t){1&e&&(o.TgZ(0,"th",38),o.TgZ(1,"span",36),o._uU(2,"Hash Lock"),o.qZA(),o.qZA())}function Tr(e,t){if(1&e&&(o.TgZ(0,"span",36),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",null==e?null:e.hash_lock," ")}}function br(e,t){if(1&e&&(o.TgZ(0,"span"),o.YNc(1,Tr,2,1,"span",37),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.pending_htlcs)}}function wr(e,t){if(1&e&&(o.TgZ(0,"td",39),o.TgZ(1,"span",36),o._uU(2),o.qZA(),o.YNc(3,br,2,1,"span",31),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(" "),o.xp6(1),o.Q6J("ngIf",e.is_expanded)}}function _r(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"th",40),o.TgZ(1,"div",41),o.TgZ(2,"mat-select",42),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",43),o.NdJ("click",function(){return o.CHM(e),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function vr(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",45),o.TgZ(1,"button",48),o.NdJ("click",function(){const t=o.CHM(e).$implicit,n=o.oxw(2).$implicit;return o.oxw().onHTLCClick(t,n)}),o._uU(2),o.qZA(),o.qZA()}if(2&e){const e=t.index;o.xp6(2),o.hij("View ",e+1,"")}}function qr(e,t){if(1&e&&(o.TgZ(0,"div"),o.YNc(1,vr,3,1,"div",47),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Q6J("ngForOf",null==e?null:e.pending_htlcs)}}function Sr(e,t){if(1&e&&(o.TgZ(0,"td",44),o.TgZ(1,"span",45),o.TgZ(2,"button",46),o.NdJ("click",function(){const e=t.$implicit;return e.is_expanded=!e.is_expanded}),o._uU(3),o.qZA(),o.qZA(),o.YNc(4,qr,2,1,"div",31),o.qZA()),2&e){const e=t.$implicit;o.xp6(3),o.Oqu(e.is_expanded?"Hide":"Show"),o.xp6(1),o.Q6J("ngIf",e.is_expanded)}}function Fr(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No active htlc available."),o.qZA())}function Lr(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting active htlcs..."),o.qZA())}function kr(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function Nr(e,t){if(1&e&&(o.TgZ(0,"td",49),o.YNc(1,Fr,2,0,"p",31),o.YNc(2,Lr,2,0,"p",31),o.YNc(3,kr,2,1,"p",31),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.ERROR)}}const Ur=function(e){return{"display-none":e}};function Ir(e,t){if(1&e&&o._UZ(0,"tr",50),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,Ur,(null==e.channels?null:e.channels.data)&&(null==e.channels||null==e.channels.data?null:e.channels.data.length)>0))}}function Or(e,t){1&e&&o._UZ(0,"tr",51)}function Jr(e,t){1&e&&o._UZ(0,"tr",52)}const Dr=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}},Rr=function(){return["no_channel"]};let Mr=(()=>{class e{constructor(e,t,n){this.logger=e,this.commonService=t,this.store=n,this.channelsJSONArr=[],this.displayedColumns=[],this.htlcColumns=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["amount","actions"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["amount","incoming","actions"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["amount","incoming","expiration_height","actions"]):(this.flgSticky=!0,this.displayedColumns=["amount","incoming","expiration_height","hash_lock","actions"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchAllChannels.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchAllChannels.message?JSON.stringify(this.apisCallStatus.FetchAllChannels.message):this.apisCallStatus.FetchAllChannels.message),this.channelsJSONArr=e.allChannels&&e.allChannels.length>0?e.allChannels.filter(e=>e.pending_htlcs&&e.pending_htlcs.length>0):[],this.loadHTLCsTable(this.channelsJSONArr),this.logger.info(e)})}ngAfterViewInit(){this.loadHTLCsTable(this.channelsJSONArr)}onHTLCClick(e,t){this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"HTLC Information",message:[[{key:"remote_alias",value:t.remote_alias,title:"Alias",width:100,type:f.Gi.STRING}],[{key:"amount",value:e.amount,title:"Amount (Sats)",width:50,type:f.Gi.NUMBER},{key:"incoming",value:e.incoming?"Yes":"No",title:"Incoming",width:50,type:f.Gi.STRING}],[{key:"expiration_height",value:e.expiration_height,title:"Expiration Height",width:50,type:f.Gi.NUMBER},{key:"hash_lock",value:e.hash_lock,title:"Hash Lock",width:50,type:f.Gi.STRING}]]}}))}onChannelClick(e,t){this.store.dispatch(new ee.wu({data:{channel:e,showCopy:!0,component:Si}}))}applyFilter(e){this.channels.filter=e.value.trim().toLowerCase()}loadHTLCsTable(e){this.channels=new Ze.by(e?[...e]:[]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(e,t)=>{switch(t){case"amount":return this.commonService.sortByKey(e.pending_htlcs,t,"number",this.sort.direction),e.pending_htlcs&&e.pending_htlcs.length?e.pending_htlcs.length:null;case"incoming":return this.commonService.sortByKey(e.pending_htlcs,t,"boolean",this.sort.direction),e.remote_alias?e.remote_alias:e.remote_pubkey?e.remote_pubkey:null;case"expiration_height":case"hash_lock":return this.commonService.sortByKey(e.pending_htlcs,t,"number",this.sort.direction),e;default:return e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null}},this.channels.paginator=this.paginator,this.channels.filterPredicate=(e,t)=>((e.remote_alias?e.remote_alias.toLowerCase():"")+e.pending_htlcs.map(e=>JSON.stringify(e)+(e.incoming?"yes":"no"))).includes(t)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.flattenHTLCs(),"ActiveHTLCs")}flattenHTLCs(){return JSON.parse(JSON.stringify(this.channels.data)).reduce((e,t)=>e.concat(t.pending_htlcs?t.pending_htlcs:t),[])}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(C.v),o.Y36(y.yh))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-active-htlcs-table"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("HTLCs")}])],decls:30,vars:13,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","incoming"],["matColumnDef","expiration_height"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","hash_lock"],["mat-header-cell","","mat-sort-header","","arrowPosition","before","class","pl-3 htlc-row-span",4,"matHeaderCellDef"],["mat-cell","","class","pl-3",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","px-2",4,"matHeaderCellDef"],["mat-cell","","class","px-2",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["fxLayoutAlign","start center",1,"htlc-row-span"],[4,"ngIf"],["fxLayoutAlign","start center","class","htlc-row-span pl-3",4,"ngFor","ngForOf"],["fxLayoutAlign","start center",1,"htlc-row-span","pl-3"],["fxLayoutAlign","start center","class","htlc-row-span",4,"ngFor","ngForOf"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center",1,"htlc-row-span"],["fxLayoutAlign","end center","class","htlc-row-span",4,"ngFor","ngForOf"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",1,"pl-3","htlc-row-span"],["mat-cell","",1,"pl-3"],["mat-header-cell","",1,"px-2"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","",1,"px-2"],["fxLayoutAlign","end center"],["mat-flat-button","","color","primary","type","button","tabindex","5",1,"btn-htlc-expand",3,"click"],["fxLayoutAlign","end center",4,"ngFor","ngForOf"],["mat-stroked-button","","color","primary","type","button","tabindex","6",1,"btn-htlc-info",3,"click"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"div",2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"input",4),o.NdJ("keyup",function(e){return t.applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(5,"div",5),o.YNc(6,rr,1,0,"mat-progress-bar",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,cr,2,0,"th",10),o.YNc(11,dr,4,2,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,hr,2,0,"th",10),o.YNc(14,fr,4,2,"td",11),o.BQk(),o.ynx(15,13),o.YNc(16,xr,3,0,"th",14),o.YNc(17,Ar,4,2,"td",11),o.BQk(),o.ynx(18,15),o.YNc(19,Cr,3,0,"th",16),o.YNc(20,wr,4,2,"td",17),o.BQk(),o.ynx(21,18),o.YNc(22,_r,6,0,"th",19),o.YNc(23,Sr,5,2,"td",20),o.BQk(),o.ynx(24,21),o.YNc(25,Nr,4,3,"td",22),o.BQk(),o.YNc(26,Ir,1,3,"tr",23),o.YNc(27,Or,1,0,"tr",24),o.YNc(28,Jr,1,0,"tr",25),o.qZA(),o.qZA(),o._UZ(29,"mat-paginator",26),o.qZA()),2&e&&(o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchAllChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.channels)("ngClass",o.VKq(10,Dr,""!==t.errorMessage)),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(12,Rr)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,D.KE,Ce.Nt,E.$V,a.O5,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,a.sg,we.gD,we.$L,ve.ey,q.lW,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],pipes:[a.JJ],styles:[".mat-column-amount[_ngcontent-%COMP%], .mat-column-expiration_height[_ngcontent-%COMP%]{flex:0 0 30%;width:30%}.mat-column-hash_lock[_ngcontent-%COMP%], .mat-column-incoming[_ngcontent-%COMP%]{flex:0 0 25%;width:25%;text-overflow:ellipsis}.htlc-row-span[_ngcontent-%COMP%]{min-height:4.2rem}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .btn-htlc-expand[_ngcontent-%COMP%]{width:9rem}.mat-column-actions[_ngcontent-%COMP%] .btn-htlc-info[_ngcontent-%COMP%]{margin-top:.5rem;width:9rem}"]}),e})();function Er(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Wallet password is required."),o.qZA())}let Qr=(()=>{class e{constructor(e){this.store=e,this.walletPassword=""}ngOnInit(){this.walletPassword=""}onUnlockWallet(){if(!this.walletPassword)return!0;this.store.dispatch(new x.l8({pwd:window.btoa(this.walletPassword)}))}resetData(){this.walletPassword=""}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(y.yh))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-unlock-wallet"]],decls:12,vars:2,consts:[["fxLayout","column",1,"padding-gap","mb-2"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between"],["fxFlex","100","fxLayoutAlign","start"],["autoFocus","","matInput","","type","password","placeholder","Password","name","walletPassword","tabindex","1","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","3",3,"click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"form",1),o.TgZ(2,"mat-form-field",2),o.TgZ(3,"input",3),o.NdJ("ngModelChange",function(e){return t.walletPassword=e}),o.qZA(),o.TgZ(4,"mat-hint"),o._uU(5,"Enter Wallet Password"),o.qZA(),o.YNc(6,Er,2,0,"mat-error",4),o.qZA(),o.TgZ(7,"div",5),o.TgZ(8,"button",6),o.NdJ("click",function(){return t.resetData()}),o._uU(9,"Clear Field"),o.qZA(),o.TgZ(10,"button",7),o.NdJ("click",function(){return t.onUnlockWallet()}),o._uU(11,"Unlock Wallet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(3),o.Q6J("ngModel",t.walletPassword),o.xp6(3),o.Q6J("ngIf",!t.walletPassword))},directives:[l.xw,Ae._Y,Ae.JL,Ae.F,l.Wh,D.KE,l.yH,Ce.Nt,Ae.Fj,Te.h,Ae.Q7,Ae.JJ,Ae.On,D.bx,a.O5,q.lW,D.TO],styles:[""]}),e})();var Yr=n(8544);function Pr(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div"),o.TgZ(1,"form",4),o.TgZ(2,"div",5),o._uU(3,"Warning: Your connection is unsecure, it's not safe to generate private keys over this connection.Are you sure you want to proceed?"),o.qZA(),o.TgZ(4,"div",6),o.TgZ(5,"button",7),o.NdJ("click",function(){o.CHM(e);const t=o.oxw();return t.proceed=!1,t.warnRes=!0}),o._uU(6,"Do Not Proceed"),o.qZA(),o.TgZ(7,"button",8),o.NdJ("click",function(){o.CHM(e);const t=o.oxw();return t.proceed=!0,t.warnRes=!0}),o._uU(8,"Proceed"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Br(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",9),o.TgZ(1,"div",10),o._uU(2,"Please re-configure & re-start RTL after securing your LND connction. You can close this window now."),o.qZA(),o.TgZ(3,"div",6),o.TgZ(4,"button",11),o.NdJ("click",function(){return o.CHM(e),o.oxw().warnRes=!1}),o._uU(5,"Go Back"),o.qZA(),o.qZA(),o.qZA()}}function Gr(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Password is required."),o.qZA())}function Hr(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Password must be at least 8 characters in length."),o.qZA())}function zr(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Confirm password is required."),o.qZA())}function Vr(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Confirm password must be at least 8 characters in length."),o.qZA())}function Wr(e,t){1&e&&(o.TgZ(0,"div",41),o.TgZ(1,"mat-icon",42),o._uU(2,"cancel"),o.qZA(),o._uU(3,"Passwords do not match. "),o.qZA())}function Xr(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Cipher seed is required."),o.qZA())}function $r(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Invalid Cipher. Enter comma separated 24 words cipher seed."),o.qZA())}function jr(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Passphrase is required."),o.qZA())}function Kr(e,t){1&e&&(o.TgZ(0,"mat-icon"),o._uU(1,"vpn_key"),o.qZA())}function ec(e,t){1&e&&(o.TgZ(0,"mat-icon"),o._uU(1,"swap_calls"),o.qZA())}function tc(e,t){1&e&&(o.TgZ(0,"mat-icon"),o._uU(1,"fingerprint"),o.qZA())}function nc(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-vertical-stepper",12,13),o.TgZ(2,"mat-step",14),o.TgZ(3,"form",15),o.TgZ(4,"mat-form-field",16),o._UZ(5,"input",17),o.TgZ(6,"mat-hint"),o._uU(7,"Enter Wallet Password"),o.qZA(),o.YNc(8,Gr,2,0,"mat-error",1),o.YNc(9,Hr,2,0,"mat-error",1),o.qZA(),o.TgZ(10,"mat-form-field",16),o._UZ(11,"input",18),o.TgZ(12,"mat-hint"),o._uU(13,"Confirm Wallet Password"),o.qZA(),o.YNc(14,zr,2,0,"mat-error",1),o.YNc(15,Vr,2,0,"mat-error",1),o.qZA(),o.YNc(16,Wr,4,0,"div",19),o.TgZ(17,"div",20),o.TgZ(18,"button",21),o._uU(19,"Next"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(20,"mat-step",22),o.TgZ(21,"form",23),o.TgZ(22,"div",24),o.TgZ(23,"mat-slide-toggle",25),o._uU(24,"Existing Cipher"),o.qZA(),o.TgZ(25,"mat-form-field",26),o._UZ(26,"input",27),o.TgZ(27,"mat-hint"),o._uU(28,"Cipher Seed"),o.qZA(),o.YNc(29,Xr,2,0,"mat-error",1),o.YNc(30,$r,2,0,"mat-error",1),o.qZA(),o.qZA(),o.TgZ(31,"div",28),o.TgZ(32,"button",29),o._uU(33,"Back"),o.qZA(),o.TgZ(34,"button",30),o._uU(35,"Next"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(36,"mat-step",31),o.TgZ(37,"form",23),o.TgZ(38,"div",24),o.TgZ(39,"mat-slide-toggle",32),o._uU(40,"Existing Passphrase"),o.qZA(),o.TgZ(41,"mat-form-field",33),o._UZ(42,"input",34),o.TgZ(43,"mat-hint"),o._uU(44,"Enter Passphrase"),o.qZA(),o.YNc(45,jr,2,0,"mat-error",1),o.qZA(),o.qZA(),o.TgZ(46,"div",28),o.TgZ(47,"button",35),o.NdJ("click",function(){return o.CHM(e),o.oxw().resetData()}),o._uU(48,"Clear"),o.qZA(),o.TgZ(49,"button",36),o._uU(50,"Back"),o.qZA(),o.TgZ(51,"button",37),o.NdJ("click",function(){return o.CHM(e),o.oxw().onInitWallet()}),o._uU(52,"Initialize Wallet"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.YNc(53,Kr,2,0,"ng-template",38),o.YNc(54,ec,2,0,"ng-template",39),o.YNc(55,tc,2,0,"ng-template",40),o.qZA()}if(2&e){const e=o.oxw();o.Q6J("linear",!0),o.xp6(2),o.Q6J("stepControl",e.passwordFormGroup),o.xp6(1),o.Q6J("formGroup",e.passwordFormGroup),o.xp6(5),o.Q6J("ngIf",null==e.passwordFormGroup.controls.initWalletPassword.errors?null:e.passwordFormGroup.controls.initWalletPassword.errors.required),o.xp6(1),o.Q6J("ngIf",null==e.passwordFormGroup.controls.initWalletPassword.errors?null:e.passwordFormGroup.controls.initWalletPassword.errors.minlength),o.xp6(5),o.Q6J("ngIf",null==e.passwordFormGroup.controls.initWalletConfirmPassword.errors?null:e.passwordFormGroup.controls.initWalletConfirmPassword.errors.required),o.xp6(1),o.Q6J("ngIf",null==e.passwordFormGroup.controls.initWalletConfirmPassword.errors?null:e.passwordFormGroup.controls.initWalletConfirmPassword.errors.minlength),o.xp6(1),o.Q6J("ngIf",(null==e.passwordFormGroup.errors?null:e.passwordFormGroup.errors.unmatchedPasswords)&&(e.passwordFormGroup.controls.initWalletPassword.touched||e.passwordFormGroup.controls.initWalletPassword.dirty)&&(e.passwordFormGroup.controls.initWalletConfirmPassword.touched||e.passwordFormGroup.controls.initWalletConfirmPassword.dirty)),o.xp6(4),o.Q6J("stepControl",e.cipherFormGroup),o.xp6(1),o.Q6J("formGroup",e.cipherFormGroup),o.xp6(2),o.Q6J("labelPosition","before"),o.xp6(6),o.Q6J("ngIf",null==e.cipherFormGroup.controls.cipherSeed.errors?null:e.cipherFormGroup.controls.cipherSeed.errors.required),o.xp6(1),o.Q6J("ngIf",!(null!=e.cipherFormGroup.controls.cipherSeed.errors&&e.cipherFormGroup.controls.cipherSeed.errors.required)&&(null==e.cipherFormGroup.controls.cipherSeed.errors?null:e.cipherFormGroup.controls.cipherSeed.errors.invalidCipher)),o.xp6(6),o.Q6J("stepControl",e.passphraseFormGroup),o.xp6(1),o.Q6J("formGroup",e.passphraseFormGroup),o.xp6(2),o.Q6J("labelPosition","before"),o.xp6(6),o.Q6J("ngIf",null==e.passphraseFormGroup.controls.passphrase.errors?null:e.passphraseFormGroup.controls.passphrase.errors.required)}}function ac(e,t){if(1&e&&(o.TgZ(0,"span",48),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(e)}}function ic(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div"),o.TgZ(1,"form",4),o.TgZ(2,"div",43),o._uU(3,"YOU MUST WRITE DOWN THIS SEED TO BE ABLE TO RESTORE THE WALLET!"),o.qZA(),o.TgZ(4,"div",44),o.YNc(5,ac,2,1,"span",45),o.qZA(),o.TgZ(6,"div",46),o._uU(7,"Wallet initialization is done."),o.qZA(),o.TgZ(8,"div",46),o._uU(9,"The node will be usable only after LND has synced completely with the network."),o.qZA(),o.TgZ(10,"div",46),o._uU(11,"Click continue only after writing down the seed."),o.qZA(),o.TgZ(12,"div",6),o.TgZ(13,"button",47),o.NdJ("click",function(){return o.CHM(e),o.oxw().onGoToHome()}),o._uU(14,"Go To Home"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(5),o.Q6J("ngForOf",e.genSeedResponse)}}function sc(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div"),o.TgZ(1,"form",4),o.TgZ(2,"div",46),o._uU(3,"Something went wrong! Unable to initialize wallet!"),o.qZA(),o.TgZ(4,"div",6),o.TgZ(5,"button",49),o.NdJ("click",function(){return o.CHM(e),o.oxw().resetData()}),o._uU(6,"Restart"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function oc(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div"),o.TgZ(1,"form",4),o.TgZ(2,"div",46),o._uU(3,"Wallet recovery is done."),o.qZA(),o.TgZ(4,"div",46),o._uU(5,"The node will be usable only after LND has synced completely with the network."),o.qZA(),o.TgZ(6,"div",6),o.TgZ(7,"button",50),o.NdJ("click",function(){return o.CHM(e),o.oxw().onGoToHome()}),o._uU(8,"Go To Home"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}const lc=e=>{const t=e.get("initWalletPassword"),n=e.get("initWalletConfirmPassword");return t&&n&&t.value!==n.value?{unmatchedPasswords:!0}:null},rc=e=>{const t=e.value?e.value.toString().trim().split(","):[];return t&&24!==t.length?{invalidCipher:!0}:null};let cc=(()=>{class e{constructor(e,t,n){this.store=e,this.formBuilder=t,this.lndEffects=n,this.insecureLND=!1,this.genSeedResponse=[],this.initWalletResponse="",this.proceed=!0,this.warnRes=!1,this.unsubs=[new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.passwordFormGroup=this.formBuilder.group({initWalletPassword:["",[Ae.kI.required,Ae.kI.minLength(8)]],initWalletConfirmPassword:["",[Ae.kI.required,Ae.kI.minLength(8)]]},{validators:lc}),this.cipherFormGroup=this.formBuilder.group({existingCipher:[!1],cipherSeed:[{value:"",disabled:!0},[rc]]}),this.passphraseFormGroup=this.formBuilder.group({enterPassphrase:[!1],passphrase:[{value:"",disabled:!0}]}),this.cipherFormGroup.controls.existingCipher.valueChanges.pipe((0,d.R)(this.unsubs[0])).subscribe(e=>{e?(this.cipherFormGroup.controls.cipherSeed.setValue(""),this.cipherFormGroup.controls.cipherSeed.enable()):(this.cipherFormGroup.controls.cipherSeed.setValue(""),this.cipherFormGroup.controls.cipherSeed.disable())}),this.passphraseFormGroup.controls.enterPassphrase.valueChanges.pipe((0,d.R)(this.unsubs[1])).subscribe(e=>{e?(this.passphraseFormGroup.controls.passphrase.setValue(""),this.passphraseFormGroup.controls.passphrase.enable()):(this.passphraseFormGroup.controls.passphrase.setValue(""),this.passphraseFormGroup.controls.passphrase.disable())}),this.insecureLND=!window.location.protocol.includes("https:"),this.lndEffects.initWalletRes.pipe((0,d.R)(this.unsubs[2])).subscribe(e=>{this.initWalletResponse=e}),this.lndEffects.genSeedResponse.pipe((0,d.R)(this.unsubs[3])).subscribe(e=>{this.genSeedResponse=e,this.store.dispatch(new x.My(this.passphraseFormGroup.controls.enterPassphrase.value?{pwd:window.btoa(this.passwordFormGroup.controls.initWalletPassword.value),cipher:this.genSeedResponse,passphrase:window.btoa(this.passphraseFormGroup.controls.passphrase.value)}:{pwd:window.btoa(this.passwordFormGroup.controls.initWalletPassword.value),cipher:this.genSeedResponse}))})}onInitWallet(){if(this.passwordFormGroup.invalid||this.cipherFormGroup.invalid||this.passphraseFormGroup.invalid)return!0;if(this.cipherFormGroup.controls.existingCipher.value){const e=this.cipherFormGroup.controls.cipherSeed.value.toString().trim().split(",");this.store.dispatch(new x.My(this.passphraseFormGroup.controls.enterPassphrase.value?{pwd:window.btoa(this.passwordFormGroup.controls.initWalletPassword.value),cipher:e,passphrase:window.btoa(this.passphraseFormGroup.controls.passphrase.value)}:{pwd:window.btoa(this.passwordFormGroup.controls.initWalletPassword.value),cipher:e}))}else this.store.dispatch(new x.$b(this.passphraseFormGroup.controls.enterPassphrase.value?window.btoa(this.passphraseFormGroup.controls.passphrase.value):""))}onGoToHome(){setTimeout(()=>{this.store.dispatch(new ee.uQ),this.store.dispatch(new x.z6({loadPage:"HOME"}))},1e3)}resetData(){this.genSeedResponse=[],this.initWalletResponse=""}ngOnDestroy(){this.unsubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(y.yh),o.Y36(Ae.qu),o.Y36(Ft.l))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-initialize-wallet"]],viewQuery:function(e,t){if(1&e&&o.Gf(La.Vq,5),2&e){let e;o.iGM(e=o.CRH())&&(t.stepper=e.first)}},features:[o._Bn([{provide:Yr.gx,useValue:{displayDefaultIndicatorType:!1}}])],decls:7,vars:6,consts:[["fxLayout","column",1,"padding-gap","mb-4"],[4,"ngIf"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","stretch stretch",4,"ngIf"],[3,"linear",4,"ngIf"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mt-2"],["fxFlex","100","fxLayoutAlign","start"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","1","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","2",3,"click"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","stretch stretch"],["fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",3,"click"],[3,"linear"],["stepper",""],["label","Wallet Password","state","password",3,"stepControl"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mt-1",3,"formGroup"],["fxFlex","49","fxLayoutAlign","start"],["matInput","","type","password","placeholder","Password","name","initWalletPassword","formControlName","initWalletPassword","tabindex","5","required",""],["matInput","","type","password","placeholder","Confirm Password","name","initWalletConfirmPassword","formControlName","initWalletConfirmPassword","tabindex","6","required",""],["class","validation-error-message",4,"ngIf"],["fxLayout","row",1,"my-2"],["mat-flat-button","","color","primary","tabindex","7","type","submit","matStepperNext",""],["label","Cipher","state","cipher",3,"stepControl"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start stretch","fxLayoutAlign.gt-sm","space-between start",1,"mt-1",3,"formGroup"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch"],["fxFlex","20","tabindex","8","color","primary","formControlName","existingCipher","name","existingCipher",1,"chkbox-wallet",3,"labelPosition"],["fxFlex","75","fxLayoutAlign","start",1,"my-1"],["autofocus","","matInput","","type","input","placeholder","Comma separated array of 24 words cipher seed","name","cipherSeed","formControlName","cipherSeed","tabindex","9","required",""],["fxLayout","row",1,"mb-2"],["mat-stroked-button","","color","primary","type","reset","tabindex","10","matStepperPrevious","",1,"mr-1","mt-1"],["mat-flat-button","","color","primary","tabindex","11","type","submit","matStepperNext","",1,"mt-1"],["label","Passphrase","state","passphrase",3,"stepControl"],["fxFlex","20","tabindex","10","color","primary","formControlName","enterPassphrase","name","enterPassphrase",1,"chkbox-wallet",3,"labelPosition"],["fxFlex","75","fxLayoutAlign","start"],["matInput","","type","password","placeholder","Passphrase","name","passphrase","formControlName","passphrase","tabindex","12","required",""],["mat-stroked-button","","color","warn","tabindex","13","type","reset",1,"mr-1","mt-1",3,"click"],["mat-stroked-button","","tabindex","14","color","primary","type","button","matStepperPrevious","",1,"mr-1","mt-1"],["mat-flat-button","","color","primary","tabindex","15","type","submit",1,"mt-1",3,"click"],["matStepperIcon","password"],["matStepperIcon","cipher"],["matStepperIcon","passphrase"],[1,"validation-error-message"],[1,"validation-error-icon","red"],["fxFlex","100","fxLayoutAlign","start",1,"blinker"],["fxFlex","40","fxLayout","row wrap",1,"mt-2"],["fxFlex","25","fxLayoutAlign","start","class","genseed-message",4,"ngFor","ngForOf"],["fxFlex","100","fxLayoutAlign","start",1,"mt-2"],["mat-flat-button","","color","primary","type","submit","tabindex","16",3,"click"],["fxFlex","25","fxLayoutAlign","start",1,"genseed-message"],["mat-stroked-button","","color","primary","tabindex","17","type","reset",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","18",3,"click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.YNc(1,Pr,9,0,"div",1),o.YNc(2,Br,6,0,"div",2),o.YNc(3,nc,56,17,"mat-vertical-stepper",3),o.YNc(4,ic,15,1,"div",1),o.YNc(5,sc,7,0,"div",1),o.YNc(6,oc,9,0,"div",1),o.qZA()),2&e&&(o.xp6(1),o.Q6J("ngIf",t.insecureLND&&!t.warnRes),o.xp6(1),o.Q6J("ngIf",t.warnRes&&!t.proceed),o.xp6(1),o.Q6J("ngIf",(!t.insecureLND||t.warnRes&&t.proceed)&&t.genSeedResponse.length<=0&&""===t.initWalletResponse),o.xp6(1),o.Q6J("ngIf",t.genSeedResponse.length>0&&""!==t.initWalletResponse),o.xp6(1),o.Q6J("ngIf",t.genSeedResponse.length>0&&""===t.initWalletResponse),o.xp6(1),o.Q6J("ngIf",t.genSeedResponse.length<=0&&""!==t.initWalletResponse))},directives:[l.xw,a.O5,Ae._Y,Ae.JL,Ae.F,l.Wh,l.yH,q.lW,La.Vq,La.C0,Ae.sg,D.KE,Ce.Nt,Ae.Fj,Ae.JJ,Ae.u,Ae.Q7,D.bx,La.Ic,_e.Rr,La.fd,La.z9,D.TO,S.Hw,a.sg],styles:[""]}),e})(),uc=(()=>{class e{constructor(){this.faWallet=g.X5K}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-wallet"]],decls:12,vars:1,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["label","Unlock"],["label","Initialize"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Wallet"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o.TgZ(7,"mat-tab-group"),o.TgZ(8,"mat-tab",5),o._UZ(9,"rtl-unlock-wallet"),o.qZA(),o.TgZ(10,"mat-tab",6),o._UZ(11,"rtl-initialize-wallet"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(1),o.Q6J("icon",t.faWallet))},directives:[l.xw,l.Wh,T.BN,w.a8,w.dn,ge.SP,ge.uX,Qr,cc],styles:[""]}),e})();function pc(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",11),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().activeLink=t.link}),o._uU(1),o.qZA()}if(2&e){const e=t.$implicit,n=o.oxw();o.s9C("routerLink",e.link),o.Q6J("active",n.activeLink===e.link),o.xp6(1),o.Oqu(e.name)}}let dc=(()=>{class e{constructor(e,t,n){this.logger=e,this.store=t,this.router=n,this.faExchangeAlt=g.Ssp,this.faChartPie=g.OS1,this.currencyUnits=[],this.balances=[{title:"Local Capacity",dataValue:0,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:0,tooltip:"Amount you can receive"}],this.links=[{link:"payments",name:"Payments"},{link:"invoices",name:"Invoices"},{link:"queryroutes",name:"Query Routes"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){const e=this.links.find(e=>this.router.url.includes(e.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e instanceof i.Av)).subscribe(e=>{const t=this.links.find(t=>e.urlAfterRedirects.includes(t.link));this.activeLink=t?t.link:this.links[0].link}),this.store.select("lnd").pipe((0,d.R)(this.unSubs[1])).subscribe(e=>{this.currencyUnits=e.nodeSettings.currencyUnits,this.balances=e.nodeSettings.userPersona===f.ol.OPERATOR?[{title:"Local Capacity",dataValue:e.totalLocalBalance,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:e.totalRemoteBalance,tooltip:"Amount you can receive"}]:[{title:"Outbound Capacity",dataValue:e.totalLocalBalance,tooltip:"Amount you can send"},{title:"Inbound Capacity",dataValue:e.totalRemoteBalance,tooltip:"Amount you can receive"}],this.logger.info(e)})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-transactions"]],decls:19,vars:4,consts:[["fxLayout","row wrap","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Lightning Balance"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o._UZ(7,"rtl-currency-unit-converter",5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",6),o._UZ(9,"fa-icon",1),o.TgZ(10,"span",2),o._uU(11,"Lightning Transactions"),o.qZA(),o.qZA(),o.TgZ(12,"div",7),o.TgZ(13,"mat-card"),o.TgZ(14,"mat-card-content",4),o.TgZ(15,"nav",8),o.YNc(16,pc,2,3,"div",9),o.qZA(),o.TgZ(17,"div",10),o._UZ(18,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(1),o.Q6J("icon",t.faChartPie),o.xp6(6),o.Q6J("values",t.balances),o.xp6(2),o.Q6J("icon",t.faExchangeAlt),o.xp6(7),o.Q6J("ngForOf",t.links))},directives:[l.xw,l.Wh,T.BN,w.a8,w.dn,la.D,ge.BU,a.sg,l.yH,i.lC,ge.Nj,i.rH],styles:[""]}),e})();function hc(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Destination pubkey is required."),o.qZA())}function mc(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function gc(e,t){1&e&&o._UZ(0,"mat-progress-bar",37)}function fc(e,t){1&e&&(o.TgZ(0,"th",38),o._uU(1," Hop "),o.qZA())}function xc(e,t){if(1&e&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",null==e?null:e.hop_sequence," ")}}function Zc(e,t){1&e&&(o.TgZ(0,"th",38),o._uU(1," Peer "),o.qZA())}const yc=function(e){return{"max-width":e}};function Ac(e,t){if(1&e&&(o.TgZ(0,"td",40),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,yc,n.screenSize===n.screenSizeEnum.XS?"10rem":"28rem")),o.xp6(1),o.hij(" ",null==e?null:e.pubkey_alias," ")}}function Cc(e,t){1&e&&(o.TgZ(0,"th",38),o._uU(1," Channel "),o.qZA())}function Tc(e,t){if(1&e&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",null==e?null:e.chan_id," ")}}function bc(e,t){1&e&&(o.TgZ(0,"th",41),o._uU(1," Capacity (Sats) "),o.qZA())}function wc(e,t){if(1&e&&(o.TgZ(0,"td",39),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==e?null:e.chan_capacity),"")}}function _c(e,t){1&e&&(o.TgZ(0,"th",41),o._uU(1," Amount To Fwd (Sats) "),o.qZA())}function vc(e,t){if(1&e&&(o.TgZ(0,"td",39),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==e?null:e.amt_to_forward)," ")}}function qc(e,t){1&e&&(o.TgZ(0,"th",41),o._uU(1," Fee (mSats) "),o.qZA())}function Sc(e,t){if(1&e&&(o.TgZ(0,"td",39),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==e?null:e.fee_msat)," ")}}function Fc(e,t){1&e&&(o.TgZ(0,"th",43),o.TgZ(1,"span",42),o._uU(2,"Actions"),o.qZA(),o.qZA())}function Lc(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",44),o.TgZ(1,"button",45),o.NdJ("click",function(t){const n=o.CHM(e).$implicit;return o.oxw().onHopClick(n,t)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function kc(e,t){1&e&&o._UZ(0,"tr",46)}function Nc(e,t){1&e&&o._UZ(0,"tr",47)}const Uc=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}};let Ic=(()=>{class e{constructor(e,t,n){this.store=e,this.lndEffects=t,this.commonService=n,this.destinationPubkey="",this.amount=null,this.flgSticky=!1,this.displayedColumns=[],this.flgLoading=[!1],this.faRoute=g.FpQ,this.faExclamationTriangle=g.eHv,this.screenSize="",this.screenSizeEnum=f.cu,this.unSubs=[new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["pubkey_alias","actions"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["hop_sequence","pubkey_alias","fee_msat","actions"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["hop_sequence","pubkey_alias","chan_capacity","amt_to_forward_msat","fee_msat","actions"]):(this.flgSticky=!0,this.displayedColumns=["hop_sequence","pubkey_alias","chan_capacity","amt_to_forward_msat","fee_msat","actions"])}ngOnInit(){this.lndEffects.setQueryRoutes.pipe((0,d.R)(this.unSubs[1])).subscribe(e=>{this.qrHops=new Ze.by([]),e.routes&&e.routes[0].hops?(this.flgLoading[0]=!1,this.qrHops=new Ze.by([...e.routes[0].hops]),this.qrHops.data=e.routes[0].hops):this.flgLoading[0]="error",this.qrHops.sort=this.sort,this.qrHops.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null})}onQueryRoutes(){if(!this.destinationPubkey||!this.amount)return!0;this.qrHops=new Ze.by([]),this.flgLoading[0]=!0,this.store.dispatch(new x.bm({destPubkey:this.destinationPubkey,amount:this.amount}))}resetData(){this.destinationPubkey="",this.amount=null,this.flgLoading[0]=!1}onHopClick(e,t){this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Route Information",message:[[{key:"hop_sequence",value:e.hop_sequence,title:"Sequence",width:30,type:f.Gi.NUMBER},{key:"amt_to_forward",value:e.amt_to_forward,title:"Amount To Forward (Sats)",width:30,type:f.Gi.NUMBER},{key:"fee_msat",value:e.fee_msat,title:"Fee (mSats)",width:40,type:f.Gi.NUMBER}],[{key:"pubkey_alias",value:e.pubkey_alias,title:"Peer Alias",width:30,type:f.Gi.STRING},{key:"pub_key",value:e.pub_key,title:"Peer Pubkey",width:70,type:f.Gi.STRING}],[{key:"expiry",value:e.expiry,title:"Expiry",width:30,type:f.Gi.NUMBER},{key:"chan_id",value:e.chan_id,title:"Channel ID",width:30,type:f.Gi.STRING},{key:"chan_capacity",value:e.chan_capacity,title:"Channel Capacity",width:40,type:f.Gi.NUMBER}]]}}))}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(y.yh),o.Y36(Ft.l),o.Y36(C.v))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-query-routes"]],viewQuery:function(e,t){if(1&e&&o.Gf(xe.YE,5),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first)}},decls:51,vars:16,consts:[["fxLayout","column","fxFlex","100",1,"padding-gap"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",3,"ngSubmit"],["queryRoutesForm","ngForm"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","69","fxLayoutAlign","start end"],["matInput","","placeholder","Destination Pubkey","name","destinationPubkey","tabindex","1","required","",3,"ngModel","ngModelChange"],["destPubkey","ngModel"],[4,"ngIf"],["fxFlex","29","fxLayoutAlign","start end"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","type","number","required","",3,"ngModel","step","min","ngModelChange"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","4"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-3","mb-1"],["fxFlex","70","fxLayoutAlign","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],[1,"table-container","mb-6",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","hop_sequence"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","pubkey_alias"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","chan_id"],["matColumnDef","chan_capacity"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","amt_to_forward_msat"],["matColumnDef","fee_msat"],["matColumnDef","actions"],["mat-header-cell","","class","pl-4 pr-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-4",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pl-4","pr-3"],["mat-cell","",1,"pl-4"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-header-row",""],["mat-row",""]],template:function(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",0),o.TgZ(1,"form",1,2),o.NdJ("ngSubmit",function(){return o.CHM(e),o.MAs(2).form.valid&&t.onQueryRoutes()}),o.TgZ(3,"div",3),o._UZ(4,"fa-icon",4),o.TgZ(5,"span"),o._uU(6,"The actual routing fee on a payment can be different from the fee shown on query routes."),o.qZA(),o.qZA(),o.TgZ(7,"mat-form-field",5),o.TgZ(8,"input",6,7),o.NdJ("ngModelChange",function(e){return t.destinationPubkey=e}),o.qZA(),o.YNc(10,hc,2,0,"mat-error",8),o.qZA(),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"input",10),o.NdJ("ngModelChange",function(e){return t.amount=e}),o.qZA(),o.YNc(13,mc,2,0,"mat-error",8),o.qZA(),o.TgZ(14,"div",11),o.TgZ(15,"button",12),o.NdJ("click",function(){return t.resetData()}),o._uU(16,"Clear"),o.qZA(),o.TgZ(17,"button",13),o._uU(18,"Query Route"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(19,"div",14),o.TgZ(20,"div",15),o._UZ(21,"fa-icon",16),o.TgZ(22,"span",17),o._uU(23,"Transaction Route"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(24,"div",18),o.YNc(25,gc,1,0,"mat-progress-bar",19),o.TgZ(26,"table",20,21),o.ynx(28,22),o.YNc(29,fc,2,0,"th",23),o.YNc(30,xc,2,1,"td",24),o.BQk(),o.ynx(31,25),o.YNc(32,Zc,2,0,"th",23),o.YNc(33,Ac,2,4,"td",26),o.BQk(),o.ynx(34,27),o.YNc(35,Cc,2,0,"th",23),o.YNc(36,Tc,2,1,"td",24),o.BQk(),o.ynx(37,28),o.YNc(38,bc,2,0,"th",29),o.YNc(39,wc,4,3,"td",24),o.BQk(),o.ynx(40,30),o.YNc(41,_c,2,0,"th",29),o.YNc(42,vc,4,3,"td",24),o.BQk(),o.ynx(43,31),o.YNc(44,qc,2,0,"th",29),o.YNc(45,Sc,4,3,"td",24),o.BQk(),o.ynx(46,32),o.YNc(47,Fc,3,0,"th",33),o.YNc(48,Lc,3,0,"td",34),o.BQk(),o.YNc(49,kc,1,0,"tr",35),o.YNc(50,Nc,1,0,"tr",36),o.qZA(),o.qZA(),o.qZA()}2&e&&(o.xp6(4),o.Q6J("icon",t.faExclamationTriangle),o.xp6(4),o.Q6J("ngModel",t.destinationPubkey),o.xp6(2),o.Q6J("ngIf",!t.destinationPubkey),o.xp6(2),o.Q6J("ngModel",t.amount)("step",1e3)("min",0),o.xp6(1),o.Q6J("ngIf",!t.amount),o.xp6(8),o.Q6J("icon",t.faRoute),o.xp6(4),o.Q6J("ngIf",!0===t.flgLoading[0]),o.xp6(1),o.Q6J("dataSource",t.qrHops)("ngClass",o.VKq(14,Uc,"error"===t.flgLoading[0])),o.xp6(23),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns))},directives:[l.xw,l.yH,Ae._Y,Ae.JL,Ae.F,l.Wh,T.BN,D.KE,Ce.Nt,Ae.Fj,Ae.Q7,Ae.JJ,Ae.On,a.O5,Ae.wV,Ae.qQ,be.q,q.lW,E.$V,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.as,Ze.nj,D.TO,r.pW,Ze.ge,xe.nU,Ze.ev,a.PC,v.Zl,Ze.XQ,Ze.Gk],pipes:[a.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{flex:0 0 5%;width:5%}.mat-column-pubkey_alias[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),e})();var Oc=n(4810);function Jc(e,t){1&e&&(o.TgZ(0,"th",25),o._uU(1,"Network"),o.qZA())}function Dc(e,t){if(1&e&&(o.TgZ(0,"td",26),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",null==e?null:e.network," ")}}function Rc(e,t){1&e&&(o.TgZ(0,"th",25),o._uU(1,"Address"),o.qZA())}function Mc(e,t){if(1&e&&(o.TgZ(0,"td",26),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.hij(" ",null==e?null:e.addr," ")}}function Ec(e,t){1&e&&(o.TgZ(0,"th",27),o.TgZ(1,"span",28),o._uU(2,"Actions"),o.qZA(),o.qZA())}function Qc(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",29),o.TgZ(1,"span",28),o.TgZ(2,"button",30),o.NdJ("copied",function(t){return o.CHM(e),o.oxw(2).onCopyNodeURI(t)}),o._uU(3,"Copy Node URI"),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=t.$implicit,n=o.oxw(2);o.xp6(2),o.Q6J("payload",n.lookupResult.node.pub_key+"@"+e.addr)}}function Yc(e,t){1&e&&o._UZ(0,"tr",31)}function Pc(e,t){1&e&&o._UZ(0,"tr",32)}const Bc=function(e){return{"background-color":e}};function Gc(e,t){if(1&e&&(o.TgZ(0,"div",1),o._UZ(1,"mat-divider",2),o.TgZ(2,"div",3),o.TgZ(3,"h4",4),o._uU(4,"Pub Key"),o.qZA(),o.TgZ(5,"span",5),o._uU(6),o.qZA(),o.qZA(),o._UZ(7,"mat-divider",6),o.TgZ(8,"div",7),o.TgZ(9,"div",8),o.TgZ(10,"h4",4),o._uU(11,"Alias"),o.qZA(),o.TgZ(12,"span",9),o._uU(13),o.TgZ(14,"span",10),o._uU(15),o.qZA(),o.qZA(),o.qZA(),o.TgZ(16,"div",8),o.TgZ(17,"h4",4),o._uU(18,"Last Update"),o.qZA(),o.TgZ(19,"span",9),o._uU(20),o.ALo(21,"date"),o.qZA(),o.qZA(),o.qZA(),o._UZ(22,"mat-divider",6),o.TgZ(23,"div",7),o.TgZ(24,"div",8),o.TgZ(25,"h4",4),o._uU(26,"Total Capacity (Sats)"),o.qZA(),o.TgZ(27,"span",9),o._uU(28),o.ALo(29,"number"),o.qZA(),o.qZA(),o.TgZ(30,"div",8),o.TgZ(31,"h4",4),o._uU(32,"Number of Channels"),o.qZA(),o.TgZ(33,"span",9),o._uU(34),o.ALo(35,"number"),o.qZA(),o.qZA(),o.qZA(),o._UZ(36,"mat-divider",6),o.TgZ(37,"div",11),o.TgZ(38,"h4",12),o._uU(39,"Addresses"),o.qZA(),o.TgZ(40,"div",13),o.TgZ(41,"table",14,15),o.ynx(43,16),o.YNc(44,Jc,2,0,"th",17),o.YNc(45,Dc,2,1,"td",18),o.BQk(),o.ynx(46,19),o.YNc(47,Rc,2,0,"th",17),o.YNc(48,Mc,2,1,"td",18),o.BQk(),o.ynx(49,20),o.YNc(50,Ec,3,0,"th",21),o.YNc(51,Qc,4,1,"td",22),o.BQk(),o.YNc(52,Yc,1,0,"tr",23),o.YNc(53,Pc,1,0,"tr",24),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(e.lookupResult.node.pub_key),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(e.lookupResult.node.alias),o.xp6(1),o.Q6J("ngStyle",o.VKq(21,Bc,null==e.lookupResult.node?null:e.lookupResult.node.color)),o.xp6(1),o.Oqu(null==e.lookupResult.node?null:e.lookupResult.node.color),o.xp6(5),o.Oqu(o.xi3(21,14,1e3*e.lookupResult.node.last_update,"dd/MMM/YYYY HH:mm")),o.xp6(2),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.lcZ(29,17,e.lookupResult.total_capacity)),o.xp6(6),o.Oqu(o.lcZ(35,19,e.lookupResult.num_channels)),o.xp6(2),o.Q6J("inset",!0),o.xp6(5),o.Q6J("dataSource",e.lookupResult.node.addresses),o.xp6(11),o.Q6J("matHeaderRowDef",e.displayedColumns),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns)}}let Hc=(()=>{class e{constructor(e,t){this.logger=e,this.snackBar=t,this.displayedColumns=["network","addr","actions"]}onCopyNodeURI(e){this.snackBar.open("Node URI copied."),this.logger.info("Copied Text: "+e)}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(Ai.ux))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-node-lookup"]],inputs:{lookupResult:"lookupResult"},decls:1,vars:1,consts:[["fxLayout","column","class","mt-1",4,"ngIf"],["fxLayout","column",1,"mt-1"],[1,"mb-1",3,"inset"],["fxLayout","column","fxFlex","100","fxLayoutAlign","end start",1,"my-1"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text","w-100"],[1,"my-1",3,"inset"],["fxLayout","row"],["fxLayout","column","fxFlex","50","fxLayoutAlign","end start",1,"my-1"],[1,"foreground-secondary-text"],[1,"ml-2",3,"ngStyle"],["fxLayout","column",1,"mt-2"],["fxFlex","100","fxLayoutAlign","start",1,"font-bold-500","mb-1"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","matSort","",3,"dataSource"],["table",""],["matColumnDef","network"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","addr"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","",1,"pl-1"],["fxLayoutAlign","end center"],["mat-cell","",1,"pl-1"],["mat-stroked-button","","color","primary","type","button","tabindex","1","rtlClipboard","",3,"payload","copied"],["mat-header-row",""],["mat-row",""]],template:function(e,t){1&e&&o.YNc(0,Gc,54,23,"div",0),2&e&&o.Q6J("ngIf",t.lookupResult)},directives:[a.O5,l.xw,M.d,l.yH,l.Wh,a.PC,v.Zl,E.$V,Ze.BZ,xe.YE,Ze.w1,Ze.fO,Ze.Dz,Ze.as,Ze.nj,Ze.ge,xe.nU,Ze.ev,q.lW,Ci.y,Ze.XQ,Ze.Gk],pipes:[a.uU,a.JJ],styles:[""]}),e})();function zc(e,t){1&e&&(o.TgZ(0,"h3",16),o._uU(1,"Node 1"),o.qZA())}function Vc(e,t){1&e&&(o.TgZ(0,"h3",16),o._uU(1,"Node 1 (Your Node)"),o.qZA())}function Wc(e,t){1&e&&(o.TgZ(0,"h3",16),o._uU(1,"Node 2"),o.qZA())}function Xc(e,t){1&e&&(o.TgZ(0,"h3",16),o._uU(1,"Node 2 (Your Node)"),o.qZA())}function $c(e,t){if(1&e&&(o.TgZ(0,"div",1),o._UZ(1,"mat-divider",2),o.TgZ(2,"div",3),o.TgZ(3,"h4",4),o._uU(4,"Channel Id"),o.qZA(),o.TgZ(5,"span",5),o._uU(6),o.qZA(),o.qZA(),o._UZ(7,"mat-divider",6),o.TgZ(8,"div",3),o.TgZ(9,"h4",4),o._uU(10,"Channel Point"),o.qZA(),o.TgZ(11,"span",5),o._uU(12),o.qZA(),o.qZA(),o._UZ(13,"mat-divider",6),o.TgZ(14,"div",7),o.TgZ(15,"div",8),o.TgZ(16,"h4",4),o._uU(17,"Last Update"),o.qZA(),o.TgZ(18,"span",5),o._uU(19),o.ALo(20,"date"),o.qZA(),o.qZA(),o.TgZ(21,"div",8),o.TgZ(22,"h4",4),o._uU(23,"Capacity (Sats)"),o.qZA(),o.TgZ(24,"span",5),o._uU(25),o.ALo(26,"number"),o.qZA(),o.qZA(),o.qZA(),o._UZ(27,"mat-divider",6),o.TgZ(28,"div",9),o.TgZ(29,"div",10),o.TgZ(30,"div",11),o.YNc(31,zc,2,0,"h3",12),o.YNc(32,Vc,2,0,"h3",12),o.qZA(),o._UZ(33,"mat-divider",13),o.TgZ(34,"div",14),o.TgZ(35,"h4",4),o._uU(36,"Pubkey"),o.qZA(),o.TgZ(37,"span",5),o._uU(38),o.qZA(),o.qZA(),o._UZ(39,"mat-divider",13),o.TgZ(40,"div",15),o.TgZ(41,"h4",4),o._uU(42,"Time Lock Delta"),o.qZA(),o.TgZ(43,"span",5),o._uU(44),o.qZA(),o.qZA(),o._UZ(45,"mat-divider",13),o.TgZ(46,"div",15),o.TgZ(47,"h4",4),o._uU(48,"Min HTLC"),o.qZA(),o.TgZ(49,"span",5),o._uU(50),o.qZA(),o.qZA(),o._UZ(51,"mat-divider",13),o.TgZ(52,"div",15),o.TgZ(53,"h4",4),o._uU(54,"Fee Base Msat"),o.qZA(),o.TgZ(55,"span",5),o._uU(56),o.qZA(),o.qZA(),o._UZ(57,"mat-divider",13),o.TgZ(58,"div",15),o.TgZ(59,"h4",4),o._uU(60,"Fee Rate Milli Msat"),o.qZA(),o.TgZ(61,"span",5),o._uU(62),o.qZA(),o.qZA(),o._UZ(63,"mat-divider",13),o.TgZ(64,"div",15),o.TgZ(65,"h4",4),o._uU(66,"Disabled"),o.qZA(),o.TgZ(67,"span",5),o._uU(68),o.qZA(),o.qZA(),o.qZA(),o.TgZ(69,"div",10),o.TgZ(70,"div"),o.YNc(71,Wc,2,0,"h3",12),o.YNc(72,Xc,2,0,"h3",12),o.qZA(),o._UZ(73,"mat-divider",13),o.TgZ(74,"div",14),o.TgZ(75,"h4",4),o._uU(76,"Pubkey"),o.qZA(),o.TgZ(77,"span",5),o._uU(78),o.qZA(),o.qZA(),o._UZ(79,"mat-divider",13),o.TgZ(80,"div",15),o.TgZ(81,"h4",4),o._uU(82,"Time Lock Delta"),o.qZA(),o.TgZ(83,"span",5),o._uU(84),o.qZA(),o.qZA(),o._UZ(85,"mat-divider",13),o.TgZ(86,"div",15),o.TgZ(87,"h4",4),o._uU(88,"Min HTLC"),o.qZA(),o.TgZ(89,"span",5),o._uU(90),o.qZA(),o.qZA(),o._UZ(91,"mat-divider",13),o.TgZ(92,"div",15),o.TgZ(93,"h4",4),o._uU(94,"Fee Base Msat"),o.qZA(),o.TgZ(95,"span",5),o._uU(96),o.qZA(),o.qZA(),o._UZ(97,"mat-divider",13),o.TgZ(98,"div",15),o.TgZ(99,"h4",4),o._uU(100,"Fee Rate Milli Msat"),o.qZA(),o.TgZ(101,"span",5),o._uU(102),o.qZA(),o.qZA(),o._UZ(103,"mat-divider",13),o.TgZ(104,"div",15),o.TgZ(105,"h4",4),o._uU(106,"Disabled"),o.qZA(),o.TgZ(107,"span",5),o._uU(108),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(e.lookupResult.channel_id),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(e.lookupResult.chan_point),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.xi3(20,36,1e3*e.lookupResult.last_update,"dd/MMM/YYYY HH:mm")),o.xp6(6),o.Oqu(o.lcZ(26,39,e.lookupResult.capacity)),o.xp6(2),o.Q6J("inset",!0),o.xp6(4),o.Q6J("ngIf",!e.node1_match),o.xp6(1),o.Q6J("ngIf",e.node1_match),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(e.lookupResult.node1_pub),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node1_policy?null:e.lookupResult.node1_policy.time_lock_delta),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node1_policy?null:e.lookupResult.node1_policy.min_htlc),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node1_policy?null:e.lookupResult.node1_policy.fee_base_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node1_policy?null:e.lookupResult.node1_policy.fee_rate_milli_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node1_policy?null:e.lookupResult.node1_policy.disabled),o.xp6(3),o.Q6J("ngIf",!e.node2_match),o.xp6(1),o.Q6J("ngIf",e.node2_match),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(e.lookupResult.node2_pub),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node2_policy?null:e.lookupResult.node2_policy.time_lock_delta),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node2_policy?null:e.lookupResult.node2_policy.min_htlc),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node2_policy?null:e.lookupResult.node2_policy.fee_base_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node2_policy?null:e.lookupResult.node2_policy.fee_rate_milli_msat),o.xp6(1),o.Q6J("inset",!0),o.xp6(5),o.Oqu(null==e.lookupResult.node2_policy?null:e.lookupResult.node2_policy.disabled)}}let jc=(()=>{class e{constructor(e){this.store=e,this.node1_match=!1,this.node2_match=!1,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.lookupResult.node1_pub===e.information.identity_pubkey&&(this.node1_match=!0),this.lookupResult.node2_pub===e.information.identity_pubkey&&(this.node2_match=!0)})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(y.yh))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-lookup"]],inputs:{lookupResult:"lookupResult"},decls:1,vars:1,consts:[["fxLayout","column","class","mt-1",4,"ngIf"],["fxLayout","column",1,"mt-1"],[1,"mb-1",3,"inset"],["fxLayout","column","fxFlex","100","fxLayoutAlign","end start",1,"my-1"],[1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"my-1",3,"inset"],["fxLayout","row"],["fxLayout","column","fxFlex","100","fxFlex.gt-sm","50","fxLayoutAlign","end start",1,"my-1"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start start",1,"mt-1","bordered-box","padding-gap-large"],["fxLayout","column"],["class","page-title font-bold-500",4,"ngIf"],[3,"inset"],["fxLayout","column","fxFlex","20",1,"my-1"],["fxLayout","column","fxFlex","10",1,"my-1"],[1,"page-title","font-bold-500"]],template:function(e,t){1&e&&o.YNc(0,$c,109,41,"div",0),2&e&&o.Q6J("ngIf",t.lookupResult)},directives:[a.O5,l.xw,M.d,l.yH,l.Wh],pipes:[a.uU,a.JJ],styles:[".mat-list-base[_ngcontent-%COMP%] .mat-list-item[_ngcontent-%COMP%], .mat-list-base[_ngcontent-%COMP%] .mat-list-option[_ngcontent-%COMP%]{height:38px!important}"]}),e})();function Kc(e,t){if(1&e&&(o.TgZ(0,"mat-radio-button",21),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("value",e.id)("checked",n.selectedFieldId===e.id),o.xp6(1),o.hij(" ",e.name," ")}}function eu(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.hij("",null==e.lookupFields[e.selectedFieldId]?null:e.lookupFields[e.selectedFieldId].placeholder," is required.")}}function tu(e,t){1&e&&o._UZ(0,"mat-progress-bar",24)}const nu=function(e){return{"w-100 mt-2 p-2 error-border":e,"w-100 my-2 p-2":!0}};function au(e,t){if(1&e&&(o.TgZ(0,"div",22),o.YNc(1,tu,1,0,"mat-progress-bar",23),o._uU(2),o.qZA()),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(3,nu,""!==e.errorMessage&&"Getting lookup details..."!==e.errorMessage)),o.xp6(1),o.Q6J("ngIf","Getting lookup details..."===e.errorMessage),o.xp6(1),o.hij(" ",e.errorMessage," ")}}function iu(e,t){if(1&e&&(o.TgZ(0,"span",31),o._UZ(1,"rtl-node-lookup",32),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("lookupResult",e.lookupValue)}}function su(e,t){if(1&e&&(o.TgZ(0,"span",31),o._UZ(1,"rtl-channel-lookup",32),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("lookupResult",e.lookupValue)}}function ou(e,t){1&e&&(o.TgZ(0,"span",31),o.TgZ(1,"h3"),o._uU(2,"Error! Unable to find details!"),o.qZA(),o.qZA())}function lu(e,t){if(1&e&&(o.TgZ(0,"div",25),o.TgZ(1,"div",26),o.TgZ(2,"span",27),o._uU(3),o.qZA(),o.qZA(),o.TgZ(4,"div",28),o.YNc(5,iu,2,1,"span",29),o.YNc(6,su,2,1,"span",29),o.YNc(7,ou,3,0,"span",30),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(3),o.hij("",e.lookupFields[e.selectedFieldId].name," Details"),o.xp6(1),o.Q6J("ngSwitch",e.selectedFieldId),o.xp6(1),o.Q6J("ngSwitchCase",0),o.xp6(1),o.Q6J("ngSwitchCase",1)}}const ru=function(e){return{"mt-2":e}};let cu=(()=>{class e{constructor(e,t,n,a){this.logger=e,this.commonService=t,this.store=n,this.actions=a,this.lookupKey="",this.lookupValue={},this.flgSetLookupValue=!1,this.messageObj=[],this.selectedFieldId=0,this.lookupFields=[{id:0,name:"Node",placeholder:"Pubkey"},{id:1,name:"Channel",placeholder:"Channel ID"}],this.faSearch=g.wn1,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.actions.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e.type===x.RP||e.type===x.JE)).subscribe(e=>{e.type===x.RP&&(this.errorMessage=0===this.selectedFieldId&&e.payload.hasOwnProperty("node")||1===this.selectedFieldId&&e.payload.hasOwnProperty("channel_id")?"":this.errorMessage,this.lookupValue=JSON.parse(JSON.stringify(e.payload)),this.flgSetLookupValue=!(0!==this.selectedFieldId||!e.payload.hasOwnProperty("node"))||!(1!==this.selectedFieldId||!e.payload.hasOwnProperty("channel_id")),this.logger.info(this.lookupValue)),e.type===x.JE&&"Lookup"===e.payload.action&&(this.errorMessage="",e.payload.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof e.payload.message?JSON.stringify(e.payload.message):e.payload.message),e.payload.status===f.Bn.INITIATED&&(this.errorMessage=f.m6.GET_LOOKUP_DETAILS))})}onLookup(){if(!this.lookupKey)return!0;switch(this.flgSetLookupValue=!1,this.lookupValue={},this.selectedFieldId){case 0:this.store.dispatch(new x.x$(this.lookupKey.trim()));break;case 1:this.store.dispatch(new x.IG({uiMessage:f.m6.SEARCHING_CHANNEL,channelID:this.lookupKey.trim()}))}}onSelectChange(e){this.resetData(),this.selectedFieldId=e.value}resetData(){this.flgSetLookupValue=!1,this.selectedFieldId=0,this.lookupKey="",this.lookupValue={},this.errorMessage=""}clearLookupValue(){this.lookupValue={},this.flgSetLookupValue=!1}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(C.v),o.Y36(y.yh),o.Y36(A.eX))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-lookups"]],decls:24,vars:11,consts:[["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"card-content-gap","mt-1"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start space-between",1,"w-100"],["form","ngForm"],["fxFlex","35","fxFlex.gt-md","25","fxLayoutAlign","start end"],["color","primary","tabindex","1","name","lookupField",3,"ngModel","ngModelChange","change"],["class","mr-4",3,"value","checked",4,"ngFor","ngForOf"],["fxFlex","65","fxFlex.gt-md","75","fxLayoutAlign","start end",3,"ngClass"],["matInput","","name","lookupKey","tabindex","2","required","",3,"placeholder","ngModel","change","ngModelChange"],["key",""],[4,"ngIf"],[1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxFlex","100","fxLayout","row wrap","fxLayoutAlign","space-between center",3,"ngClass",4,"ngIf"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch","class","w-100 mt-2",4,"ngIf"],[1,"mr-4",3,"value","checked"],["fxFlex","100","fxLayout","row wrap","fxLayoutAlign","space-between center",3,"ngClass"],["mode","indeterminate",4,"ngIf"],["mode","indeterminate"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"w-100","mt-2"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],[1,"page-title","font-bold-500"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",3,"ngSwitch"],["fxFlex","100",4,"ngSwitchCase"],["fxFlex","100",4,"ngSwitchDefault"],["fxFlex","100"],[3,"lookupResult"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"fa-icon",2),o.TgZ(3,"span",3),o._uU(4,"Graph Lookups"),o.qZA(),o.qZA(),o.TgZ(5,"div",4),o.TgZ(6,"mat-card",5),o.TgZ(7,"mat-card-content",6),o.TgZ(8,"form",7,8),o.TgZ(10,"div",9),o.TgZ(11,"mat-radio-group",10),o.NdJ("ngModelChange",function(e){return t.selectedFieldId=e})("change",function(e){return t.onSelectChange(e)}),o.YNc(12,Kc,2,3,"mat-radio-button",11),o.qZA(),o.qZA(),o.TgZ(13,"mat-form-field",12),o.TgZ(14,"input",13,14),o.NdJ("change",function(){return t.clearLookupValue()})("ngModelChange",function(e){return t.lookupKey=e}),o.qZA(),o.YNc(16,eu,2,1,"mat-error",15),o.qZA(),o.TgZ(17,"div",16),o.TgZ(18,"button",17),o.NdJ("click",function(){return t.resetData()}),o._uU(19,"Clear"),o.qZA(),o.TgZ(20,"button",18),o.NdJ("click",function(){return t.onLookup()}),o._uU(21,"Lookup"),o.qZA(),o.qZA(),o.qZA(),o.YNc(22,au,3,5,"div",19),o.YNc(23,lu,8,4,"div",20),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(2),o.Q6J("icon",t.faSearch),o.xp6(9),o.Q6J("ngModel",t.selectedFieldId),o.xp6(1),o.Q6J("ngForOf",t.lookupFields),o.xp6(1),o.Q6J("ngClass",o.VKq(9,ru,t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM)),o.xp6(1),o.Q6J("placeholder",(null==t.lookupFields[t.selectedFieldId]?null:t.lookupFields[t.selectedFieldId].placeholder)||"Lookup Key")("ngModel",t.lookupKey),o.xp6(2),o.Q6J("ngIf",!t.lookupKey),o.xp6(6),o.Q6J("ngIf",""!==t.errorMessage),o.xp6(1),o.Q6J("ngIf",""===t.errorMessage&&t.lookupValue&&t.flgSetLookupValue))},directives:[l.xw,l.Wh,T.BN,l.yH,w.a8,w.dn,Ae._Y,Ae.JL,Ae.F,Oc.VQ,Ae.JJ,Ae.On,a.sg,D.KE,a.mk,v.oO,Ce.Nt,Ae.Fj,Ae.Q7,a.O5,q.lW,Oc.U0,D.TO,r.pW,a.RF,a.n9,a.ED,Hc,jc],styles:[".tree-invisible[_ngcontent-%COMP%]{display:none}.lookup-tree[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .lookup-tree[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0;list-style-type:none}.pl-3[_ngcontent-%COMP%]{padding-left:3rem}"]}),e})();var uu=n(5812);function pu(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Invalid date format."),o.qZA())}function du(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Invalid date format."),o.qZA())}function hu(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",27),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().activeLink=t.link}),o._uU(1),o.qZA()}if(2&e){const e=t.$implicit,n=o.oxw();o.s9C("routerLink",e.link),o.Q6J("active",n.activeLink===e.link),o.xp6(1),o.Oqu(e.name)}}let mu=(()=>{class e{constructor(e,t){this.store=e,this.router=t,this.faMapSigns=g.SuH,this.today=new Date(Date.now()),this.lastMonthDay=new Date(this.today.getFullYear(),this.today.getMonth()-1,this.today.getDate()+1,0,0,0),this.yesterday=new Date(this.today.getFullYear(),this.today.getMonth(),this.today.getDate()-1,0,0,0),this.endDate=this.today,this.startDate=this.lastMonthDay,this.links=[{link:"forwardinghistory",name:"Forwarding History"},{link:"peers",name:"Routing Peers"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x,new p.x]}ngOnInit(){this.onEventsFetch();const e=this.links.find(e=>this.router.url.includes(e.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e instanceof i.Av)).subscribe(e=>{const t=this.links.find(t=>e.urlAfterRedirects.includes(t.link));this.activeLink=t?t.link:this.links[0].link})}onEventsFetch(){this.store.dispatch(new x.Fn({})),this.endDate||(this.endDate=this.today),this.startDate||(this.startDate=new Date(this.endDate.getFullYear(),this.endDate.getMonth()-1,this.endDate.getDate()+1,0,0,0)),this.store.dispatch(new x.KK({end_time:Math.round(this.endDate.getTime()/1e3).toString(),start_time:Math.round(this.startDate.getTime()/1e3).toString()}))}resetData(){this.endDate=this.today,this.startDate=this.lastMonthDay}ngOnDestroy(){this.resetData(),this.store.dispatch(new x.Fn({})),this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(y.yh),o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-routing"]],decls:35,vars:15,consts:[["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap-x"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"card-content-gap","mt-1"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"w-100","mb-1",3,"ngSubmit"],["routingForm","ngForm"],["fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","49","fxLayoutAlign","start"],["matInput","","placeholder","Start Date","name","startDate","tabindex","1",3,"matDatepicker","max","ngModel","ngModelChange"],["strtDate","ngModel"],["matSuffix","",3,"for"],[3,"startAt"],["startDatepicker",""],[4,"ngIf"],["matInput","","placeholder","End Date","name","endDate","tabindex","2",3,"matDatepicker","min","max","ngModel","ngModelChange"],["enDate","ngModel"],["endDatepicker",""],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","4"],["fxLayout","row","fxFlex","100"],["mat-tab-nav-bar","","fxFlex","100"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,t){if(1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"fa-icon",2),o.TgZ(3,"span",3),o._uU(4,"Routing"),o.qZA(),o.qZA(),o.TgZ(5,"div",4),o.TgZ(6,"mat-card",5),o.TgZ(7,"mat-card-content",6),o.TgZ(8,"form",7,8),o.NdJ("ngSubmit",function(){return t.onEventsFetch()}),o.TgZ(10,"div",9),o.TgZ(11,"mat-form-field",10),o.TgZ(12,"input",11,12),o.NdJ("ngModelChange",function(e){return t.startDate=e}),o.qZA(),o._UZ(14,"mat-datepicker-toggle",13),o._UZ(15,"mat-datepicker",14,15),o.YNc(17,pu,2,0,"mat-error",16),o.qZA(),o.TgZ(18,"mat-form-field",10),o.TgZ(19,"input",17,18),o.NdJ("ngModelChange",function(e){return t.endDate=e}),o.qZA(),o._UZ(21,"mat-datepicker-toggle",13),o._UZ(22,"mat-datepicker",14,19),o.YNc(24,du,2,0,"mat-error",16),o.qZA(),o.qZA(),o.TgZ(25,"div",20),o.TgZ(26,"button",21),o.NdJ("click",function(){return t.resetData()}),o._uU(27,"Clear"),o.qZA(),o.TgZ(28,"button",22),o._uU(29,"Fetch Events"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(30,"div",23),o.TgZ(31,"nav",24),o.YNc(32,hu,2,3,"div",25),o.qZA(),o.qZA(),o.TgZ(33,"div",26),o._UZ(34,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.MAs(13),n=o.MAs(16),a=o.MAs(20),i=o.MAs(23);o.xp6(2),o.Q6J("icon",t.faMapSigns),o.xp6(10),o.Q6J("matDatepicker",n)("max",t.today)("ngModel",t.startDate),o.xp6(2),o.Q6J("for",n),o.xp6(1),o.Q6J("startAt",t.startDate),o.xp6(2),o.Q6J("ngIf",e.errors),o.xp6(2),o.Q6J("matDatepicker",i)("min",t.startDate)("max",t.today)("ngModel",t.endDate),o.xp6(2),o.Q6J("for",i),o.xp6(1),o.Q6J("startAt",t.endDate),o.xp6(2),o.Q6J("ngIf",a.errors),o.xp6(8),o.Q6J("ngForOf",t.links)}},directives:[l.xw,l.Wh,T.BN,l.yH,w.a8,w.dn,Ae._Y,Ae.JL,Ae.F,D.KE,Ce.Nt,uu.hl,ma.F,Ae.Fj,Ae.JJ,Ae.On,uu.nW,D.R9,uu.Mq,a.O5,be.q,q.lW,ge.BU,a.sg,i.lC,D.TO,ge.Nj,i.rH],styles:[""]}),e})();function gu(e,t){if(1&e&&(o.TgZ(0,"div",5),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Oqu(e.errorMessage)}}function fu(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",6),o._UZ(1,"div",7),o.TgZ(2,"mat-form-field",8),o.TgZ(3,"input",9),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().filterValue=t})("input",function(){return o.CHM(e),o.oxw().applyFilter()})("keyup",function(){return o.CHM(e),o.oxw().applyFilter()}),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(3),o.Q6J("ngModel",e.filterValue)}}function xu(e,t){1&e&&o._UZ(0,"mat-progress-bar",31)}function Zu(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1,"Timestamp"),o.qZA())}function yu(e,t){if(1&e&&(o.TgZ(0,"td",33),o._uU(1),o.ALo(2,"date"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.xi3(2,1,1e3*e.timestamp,"dd/MMM/YYYY HH:mm"))}}function Au(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1,"Inbound Channel"),o.qZA())}function Cu(e,t){if(1&e&&(o.TgZ(0,"td",33),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(e.alias_in)}}function Tu(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1,"Outbound Channel"),o.qZA())}function bu(e,t){if(1&e&&(o.TgZ(0,"td",33),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(e.alias_out)}}function wu(e,t){1&e&&(o.TgZ(0,"th",34),o._uU(1,"Inbound Amount (Sats)"),o.qZA())}function _u(e,t){if(1&e&&(o.TgZ(0,"td",33),o.TgZ(1,"span",35),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.amt_in))}}function vu(e,t){1&e&&(o.TgZ(0,"th",34),o._uU(1,"Outbound Amount (Sats)"),o.qZA())}function qu(e,t){if(1&e&&(o.TgZ(0,"td",33),o.TgZ(1,"span",35),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.amt_out))}}function Su(e,t){1&e&&(o.TgZ(0,"th",34),o._uU(1,"Fee (mSats)"),o.qZA())}function Fu(e,t){if(1&e&&(o.TgZ(0,"td",33),o.TgZ(1,"span",35),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.fee_msat))}}function Lu(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"th",36),o.TgZ(1,"div",37),o.TgZ(2,"mat-select",38),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",39),o.NdJ("click",function(){return o.CHM(e),o.oxw(2).onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function ku(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",40),o.TgZ(1,"button",41),o.NdJ("click",function(t){const n=o.CHM(e).$implicit;return o.oxw(2).onForwardingEventClick(n,t)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function Nu(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No forwarding history available."),o.qZA())}function Uu(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting forwarding history..."),o.qZA())}function Iu(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(3);o.xp6(1),o.Oqu(e.errorMessage)}}function Ou(e,t){if(1&e&&(o.TgZ(0,"td",42),o.YNc(1,Nu,2,0,"p",43),o.YNc(2,Uu,2,0,"p",43),o.YNc(3,Iu,2,1,"p",43),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=e.forwardingHistoryEvents&&e.forwardingHistoryEvents.data)||(null==e.forwardingHistoryEvents||null==e.forwardingHistoryEvents.data?null:e.forwardingHistoryEvents.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.forwardingHistoryEvents&&e.forwardingHistoryEvents.data)||(null==e.forwardingHistoryEvents||null==e.forwardingHistoryEvents.data?null:e.forwardingHistoryEvents.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.forwardingHistoryEvents&&e.forwardingHistoryEvents.data)||(null==e.forwardingHistoryEvents||null==e.forwardingHistoryEvents.data?null:e.forwardingHistoryEvents.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.ERROR)}}const Ju=function(e){return{"display-none":e}};function Du(e,t){if(1&e&&o._UZ(0,"tr",44),2&e){const e=o.oxw(2);o.Q6J("ngClass",o.VKq(1,Ju,(null==e.forwardingHistoryEvents?null:e.forwardingHistoryEvents.data)&&(null==e.forwardingHistoryEvents||null==e.forwardingHistoryEvents.data?null:e.forwardingHistoryEvents.data.length)>0))}}function Ru(e,t){1&e&&o._UZ(0,"tr",45)}function Mu(e,t){1&e&&o._UZ(0,"tr",46)}const Eu=function(){return["no_event"]};function Qu(e,t){if(1&e&&(o.TgZ(0,"div",10),o.YNc(1,xu,1,0,"mat-progress-bar",11),o.TgZ(2,"table",12,13),o.ynx(4,14),o.YNc(5,Zu,2,0,"th",15),o.YNc(6,yu,3,4,"td",16),o.BQk(),o.ynx(7,17),o.YNc(8,Au,2,0,"th",15),o.YNc(9,Cu,2,1,"td",16),o.BQk(),o.ynx(10,18),o.YNc(11,Tu,2,0,"th",15),o.YNc(12,bu,2,1,"td",16),o.BQk(),o.ynx(13,19),o.YNc(14,wu,2,0,"th",20),o.YNc(15,_u,4,3,"td",16),o.BQk(),o.ynx(16,21),o.YNc(17,vu,2,0,"th",20),o.YNc(18,qu,4,3,"td",16),o.BQk(),o.ynx(19,22),o.YNc(20,Su,2,0,"th",20),o.YNc(21,Fu,4,3,"td",16),o.BQk(),o.ynx(22,23),o.YNc(23,Lu,6,0,"th",24),o.YNc(24,ku,3,0,"td",25),o.BQk(),o.ynx(25,26),o.YNc(26,Ou,4,3,"td",27),o.BQk(),o.YNc(27,Du,1,3,"tr",28),o.YNc(28,Ru,1,0,"tr",29),o.YNc(29,Mu,1,0,"tr",30),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.forwardingHistoryEvents),o.xp6(25),o.Q6J("matFooterRowDef",o.DdM(6,Eu)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns)}}function Yu(e,t){if(1&e&&o._UZ(0,"mat-paginator",47),2&e){const e=o.oxw();o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS)}}let Pu=(()=>{class e{constructor(e,t,n,a){this.logger=e,this.commonService=t,this.store=n,this.datePipe=a,this.eventsData=[],this.filterValue="",this.forwardingHistoryData=[],this.displayedColumns=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["timestamp","fee_msat","actions"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["timestamp","amt_in","amt_out","fee_msat","actions"]):(this.flgSticky=!0,this.displayedColumns=["timestamp","alias_in","alias_out","amt_in","amt_out","fee_msat","actions"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.eventsData.length<=0&&(this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.GetForwardingHistory.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.GetForwardingHistory.message?JSON.stringify(this.apisCallStatus.GetForwardingHistory.message):this.apisCallStatus.GetForwardingHistory.message),this.forwardingHistoryData=e.forwardingHistory&&e.forwardingHistory.forwarding_events?e.forwardingHistory.forwarding_events:[],this.loadForwardingEventsTable(this.forwardingHistoryData),this.logger.info(e))})}ngAfterViewInit(){this.forwardingHistoryData.length>0&&this.loadForwardingEventsTable(this.forwardingHistoryData)}ngOnChanges(e){e.eventsData&&(this.eventsData=e.eventsData.currentValue,this.forwardingHistoryData=this.eventsData,e.eventsData.firstChange||this.loadForwardingEventsTable(this.forwardingHistoryData)),e.filterValue&&!e.filterValue.firstChange&&this.applyFilter()}onForwardingEventClick(e,t){this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Event Information",message:[[{key:"timestamp",value:e.timestamp,title:"Timestamp",width:25,type:f.Gi.DATE_TIME},{key:"amt_in",value:e.amt_in,title:"Inbound Amount (Sats)",width:25,type:f.Gi.NUMBER},{key:"amt_out",value:e.amt_out,title:"Outbound Amount (Sats)",width:25,type:f.Gi.NUMBER},{key:"fee_msat",value:e.fee_msat,title:"Fee (mSats)",width:25,type:f.Gi.NUMBER}],[{key:"alias_in",value:e.alias_in,title:"Inbound Peer Alias",width:25,type:f.Gi.STRING},{key:"chan_id_in",value:e.chan_id_in,title:"Inbound Channel ID",width:25,type:f.Gi.STRING},{key:"alias_out",value:e.alias_out,title:"Outbound Peer Alias",width:25,type:f.Gi.STRING},{key:"chan_id_out",value:e.chan_id_out,title:"Outbound Channel ID",width:25,type:f.Gi.STRING}]]}}))}loadForwardingEventsTable(e){this.forwardingHistoryEvents=new Ze.by(e?[...e]:[]),this.forwardingHistoryEvents.sort=this.sort,this.forwardingHistoryEvents.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.forwardingHistoryEvents.filterPredicate=(e,t)=>((e.timestamp?this.datePipe.transform(new Date(1e3*e.timestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(e).toLowerCase()).includes(t),this.forwardingHistoryEvents.paginator=this.paginator,this.logger.info(this.forwardingHistoryEvents)}onDownloadCSV(){this.forwardingHistoryEvents&&this.forwardingHistoryEvents.data&&this.forwardingHistoryEvents.data.length>0&&this.commonService.downloadFile(this.forwardingHistoryEvents.data,"Forwarding-history")}applyFilter(){this.forwardingHistoryEvents&&(this.forwardingHistoryEvents.filter=this.filterValue.trim().toLowerCase())}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(C.v),o.Y36(y.yh),o.Y36(a.uU))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-forwarding-history"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},inputs:{eventsData:"eventsData",filterValue:"filterValue"},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Events")}]),o.TTD],decls:5,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border mb-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","class","page-sub-title-container",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100","class","table-container",3,"perfectScrollbar",4,"ngIf"],["class","mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons",4,"ngIf"],[1,"p-2","error-border","mb-2"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","ngModelChange","input","keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","timestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias_in"],["matColumnDef","alias_out"],["matColumnDef","amt_in"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","amt_out"],["matColumnDef","fee_msat"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.YNc(1,gu,2,1,"div",1),o.YNc(2,fu,4,1,"div",2),o.YNc(3,Qu,30,7,"div",3),o.YNc(4,Yu,1,3,"mat-paginator",4),o.qZA()),2&e&&(o.xp6(1),o.Q6J("ngIf",""!==t.errorMessage),o.xp6(1),o.Q6J("ngIf",""===t.errorMessage),o.xp6(1),o.Q6J("ngIf",""===t.errorMessage),o.xp6(1),o.Q6J("ngIf",""===t.errorMessage))},directives:[l.xw,l.Wh,a.O5,l.yH,D.KE,Ce.Nt,Ae.Fj,Ae.JJ,Ae.On,E.$V,Ze.BZ,xe.YE,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,r.pW,Ze.ge,xe.nU,Ze.ev,we.gD,we.$L,ve.ey,q.lW,Ze.yh,Ze.Q2,a.mk,v.oO,Ze.XQ,Ze.Gk,fe.NW],pipes:[a.uU,a.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),e})();const Bu=["tableIn"],Gu=["tableOut"],Hu=["paginatorIn"],zu=["paginatorOut"];function Vu(e,t){if(1&e&&(o.TgZ(0,"div",3),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Oqu(e.errorMessage)}}function Wu(e,t){1&e&&o._UZ(0,"mat-progress-bar",37)}function Xu(e,t){1&e&&(o.TgZ(0,"th",38),o._uU(1,"Channel ID"),o.qZA())}const $u=function(e){return{"max-width":e}};function ju(e,t){if(1&e&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,$u,n.screenSize===n.screenSizeEnum.XS?"10rem":"28rem")),o.xp6(1),o.Oqu(e.chan_id)}}function Ku(e,t){1&e&&(o.TgZ(0,"th",38),o._uU(1,"Peer Alias"),o.qZA())}function ep(e,t){if(1&e&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,$u,n.screenSize===n.screenSizeEnum.XS?"10rem":"28rem")),o.xp6(1),o.Oqu(e.alias)}}function tp(e,t){1&e&&(o.TgZ(0,"th",40),o._uU(1,"Events"),o.qZA())}function np(e,t){if(1&e&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.events))}}function ap(e,t){1&e&&(o.TgZ(0,"th",40),o._uU(1,"Total Amount (Sats)"),o.qZA())}function ip(e,t){if(1&e&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.total_amount))}}function sp(e,t){1&e&&(o.TgZ(0,"th",43),o.TgZ(1,"span",42),o._uU(2,"Actions"),o.qZA(),o.qZA())}function op(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",44),o.TgZ(1,"button",45),o.NdJ("click",function(t){const n=o.CHM(e).$implicit;return o.oxw(2).onRoutingPeerClick(n,t,"in")}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function lp(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No incoming routing peer available."),o.qZA())}function rp(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting incoming routing peers..."),o.qZA())}function cp(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(3);o.xp6(1),o.Oqu(e.errorMessage)}}function up(e,t){if(1&e&&(o.TgZ(0,"td",46),o.YNc(1,lp,2,0,"p",47),o.YNc(2,rp,2,0,"p",47),o.YNc(3,cp,2,1,"p",47),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=e.RoutingPeersIncoming&&e.RoutingPeersIncoming.data)||(null==e.RoutingPeersIncoming||null==e.RoutingPeersIncoming.data?null:e.RoutingPeersIncoming.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.RoutingPeersIncoming&&e.RoutingPeersIncoming.data)||(null==e.RoutingPeersIncoming||null==e.RoutingPeersIncoming.data?null:e.RoutingPeersIncoming.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.RoutingPeersIncoming&&e.RoutingPeersIncoming.data)||(null==e.RoutingPeersIncoming||null==e.RoutingPeersIncoming.data?null:e.RoutingPeersIncoming.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.ERROR)}}const pp=function(e){return{"display-none":e}};function dp(e,t){if(1&e&&o._UZ(0,"tr",48),2&e){const e=o.oxw(2);o.Q6J("ngClass",o.VKq(1,pp,(null==e.RoutingPeersIncoming?null:e.RoutingPeersIncoming.data)&&(null==e.RoutingPeersIncoming||null==e.RoutingPeersIncoming.data?null:e.RoutingPeersIncoming.data.length)>0))}}function hp(e,t){1&e&&o._UZ(0,"tr",49)}function mp(e,t){1&e&&o._UZ(0,"tr",50)}function gp(e,t){1&e&&o._UZ(0,"mat-progress-bar",37)}function fp(e,t){1&e&&(o.TgZ(0,"th",38),o._uU(1,"Channel ID"),o.qZA())}function xp(e,t){if(1&e&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,$u,n.screenSize===n.screenSizeEnum.XS?"10rem":"28rem")),o.xp6(1),o.Oqu(e.chan_id)}}function Zp(e,t){1&e&&(o.TgZ(0,"th",38),o._uU(1,"Peer Alias"),o.qZA())}function yp(e,t){if(1&e&&(o.TgZ(0,"td",39),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("ngStyle",o.VKq(2,$u,n.screenSize===n.screenSizeEnum.XS?"10rem":"28rem")),o.xp6(1),o.Oqu(e.alias)}}function Ap(e,t){1&e&&(o.TgZ(0,"th",40),o._uU(1,"Events"),o.qZA())}function Cp(e,t){if(1&e&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.events))}}function Tp(e,t){1&e&&(o.TgZ(0,"th",40),o._uU(1,"Total Amount (Sats)"),o.qZA())}function bp(e,t){if(1&e&&(o.TgZ(0,"td",41),o.TgZ(1,"span",42),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.total_amount))}}function wp(e,t){1&e&&(o.TgZ(0,"th",43),o.TgZ(1,"span",42),o._uU(2,"Actions"),o.qZA(),o.qZA())}function _p(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",51),o.TgZ(1,"button",52),o.NdJ("click",function(t){const n=o.CHM(e).$implicit;return o.oxw(2).onRoutingPeerClick(n,t,"out")}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function vp(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No outgoing routing peer available."),o.qZA())}function qp(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting outgoing routing peers..."),o.qZA())}function Sp(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(3);o.xp6(1),o.Oqu(e.errorMessage)}}function Fp(e,t){if(1&e&&(o.TgZ(0,"td",46),o.YNc(1,vp,2,0,"p",47),o.YNc(2,qp,2,0,"p",47),o.YNc(3,Sp,2,1,"p",47),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngIf",(!(null!=e.RoutingPeersOutgoing&&e.RoutingPeersOutgoing.data)||(null==e.RoutingPeersOutgoing||null==e.RoutingPeersOutgoing.data?null:e.RoutingPeersOutgoing.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.RoutingPeersOutgoing&&e.RoutingPeersOutgoing.data)||(null==e.RoutingPeersOutgoing||null==e.RoutingPeersOutgoing.data?null:e.RoutingPeersOutgoing.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.RoutingPeersOutgoing&&e.RoutingPeersOutgoing.data)||(null==e.RoutingPeersOutgoing||null==e.RoutingPeersOutgoing.data?null:e.RoutingPeersOutgoing.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.ERROR)}}function Lp(e,t){if(1&e&&o._UZ(0,"tr",48),2&e){const e=o.oxw(2);o.Q6J("ngClass",o.VKq(1,pp,(null==e.RoutingPeersOutgoing?null:e.RoutingPeersOutgoing.data)&&(null==e.RoutingPeersOutgoing||null==e.RoutingPeersOutgoing.data?null:e.RoutingPeersOutgoing.data.length)>0))}}function kp(e,t){1&e&&o._UZ(0,"tr",49)}function Np(e,t){1&e&&o._UZ(0,"tr",50)}const Up=function(e,t){return{"mt-2":e,"mt-1":t}},Ip=function(){return["no_incoming_event"]},Op=function(e){return{"mt-2":e}},Jp=function(){return["no_outgoing_event"]};function Dp(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",4),o.TgZ(1,"div",5),o.TgZ(2,"div",6),o.TgZ(3,"div",7),o._uU(4,"Incoming"),o.qZA(),o.TgZ(5,"mat-form-field",8),o.TgZ(6,"input",9),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().filterIn=t})("keyup",function(t){return o.CHM(e),o.oxw().applyIncomingFilter(t.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(7,"div",10),o.YNc(8,Wu,1,0,"mat-progress-bar",11),o.TgZ(9,"table",12,13),o.ynx(11,14),o.YNc(12,Xu,2,0,"th",15),o.YNc(13,ju,2,4,"td",16),o.BQk(),o.ynx(14,17),o.YNc(15,Ku,2,0,"th",15),o.YNc(16,ep,2,4,"td",16),o.BQk(),o.ynx(17,18),o.YNc(18,tp,2,0,"th",19),o.YNc(19,np,4,3,"td",20),o.BQk(),o.ynx(20,21),o.YNc(21,ap,2,0,"th",19),o.YNc(22,ip,4,3,"td",20),o.BQk(),o.ynx(23,22),o.YNc(24,sp,3,0,"th",23),o.YNc(25,op,3,0,"td",24),o.BQk(),o.ynx(26,25),o.YNc(27,up,4,3,"td",26),o.BQk(),o.YNc(28,dp,1,3,"tr",27),o.YNc(29,hp,1,0,"tr",28),o.YNc(30,mp,1,0,"tr",29),o.qZA(),o.qZA(),o._UZ(31,"mat-paginator",30,31),o.qZA(),o.TgZ(33,"div",5),o.TgZ(34,"div",6),o.TgZ(35,"div",7),o._uU(36,"Outgoing"),o.qZA(),o.TgZ(37,"mat-form-field",8),o.TgZ(38,"input",9),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().filterOut=t})("keyup",function(t){return o.CHM(e),o.oxw().applyOutgoingFilter(t.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(39,"div",10),o.YNc(40,gp,1,0,"mat-progress-bar",11),o.TgZ(41,"table",32,33),o.ynx(43,14),o.YNc(44,fp,2,0,"th",15),o.YNc(45,xp,2,4,"td",16),o.BQk(),o.ynx(46,17),o.YNc(47,Zp,2,0,"th",15),o.YNc(48,yp,2,4,"td",16),o.BQk(),o.ynx(49,18),o.YNc(50,Ap,2,0,"th",19),o.YNc(51,Cp,4,3,"td",20),o.BQk(),o.ynx(52,21),o.YNc(53,Tp,2,0,"th",19),o.YNc(54,bp,4,3,"td",20),o.BQk(),o.ynx(55,22),o.YNc(56,wp,3,0,"th",23),o.YNc(57,_p,3,0,"td",34),o.BQk(),o.ynx(58,35),o.YNc(59,Fp,4,3,"td",26),o.BQk(),o.YNc(60,Lp,1,3,"tr",27),o.YNc(61,kp,1,0,"tr",28),o.YNc(62,Np,1,0,"tr",29),o.qZA(),o.qZA(),o._UZ(63,"mat-paginator",30,36),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(2),o.Q6J("ngClass",o.WLB(22,Up,e.screenSize===e.screenSizeEnum.XS,e.screenSize===e.screenSizeEnum.SM)),o.xp6(4),o.Q6J("ngModel",e.filterIn),o.xp6(2),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.RoutingPeersIncoming),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(25,Ip)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS),o.xp6(3),o.Q6J("ngClass",o.VKq(26,Op,e.screenSize!==e.screenSizeEnum.LG)),o.xp6(4),o.Q6J("ngModel",e.filterOut),o.xp6(2),o.Q6J("ngIf",(null==e.apisCallStatus?null:e.apisCallStatus.GetForwardingHistory.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",e.RoutingPeersOutgoing),o.xp6(19),o.Q6J("matFooterRowDef",o.DdM(28,Jp)),o.xp6(1),o.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",e.displayedColumns),o.xp6(1),o.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS)}}let Rp=(()=>{class e{constructor(e,t,n){this.logger=e,this.commonService=t,this.store=n,this.routingPeersData=[],this.displayedColumns=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.filterIn="",this.filterOut="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["chan_id","events","actions"]):this.screenSize===f.cu.SM||this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["chan_id","alias","events","total_amount"]):(this.flgSticky=!0,this.displayedColumns=["chan_id","alias","events","total_amount"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.GetForwardingHistory.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.GetForwardingHistory.message?JSON.stringify(this.apisCallStatus.GetForwardingHistory.message):this.apisCallStatus.GetForwardingHistory.message),this.routingPeersData=e.forwardingHistory&&e.forwardingHistory.forwarding_events?e.forwardingHistory.forwarding_events:[],this.routingPeersData.length>0&&this.sortIn&&this.paginatorIn&&this.sortOut&&this.paginatorOut&&this.loadRoutingPeersTable(this.routingPeersData),this.logger.info(e)})}onRoutingPeerClick(e,t,n){let a=" Routing Information";a="in"===n?"Incoming"+a:"Outgoing"+a,this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:a,message:[[{key:"chan_id",value:e.chan_id,title:"Channel ID",width:50,type:f.Gi.STRING},{key:"alias",value:e.alias,title:"Peer Alias",width:50,type:f.Gi.STRING}],[{key:"events",value:e.events,title:"Events",width:50,type:f.Gi.NUMBER},{key:"total_amount",value:e.total_amount,title:"Total Amount (Sats)",width:50,type:f.Gi.NUMBER}]]}}))}loadRoutingPeersTable(e){if(this.filterIn="",this.filterOut="",e.length>0){const t=this.groupRoutingPeers(e);this.RoutingPeersIncoming=new Ze.by(t[0]),this.RoutingPeersIncoming.sort=this.sortIn,this.RoutingPeersIncoming.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.RoutingPeersIncoming.paginator=this.paginatorIn,this.logger.info(this.RoutingPeersIncoming),this.RoutingPeersOutgoing=new Ze.by(t[1]),this.RoutingPeersOutgoing.sort=this.sortOut,this.RoutingPeersOutgoing.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.RoutingPeersOutgoing.paginator=this.paginatorOut,this.logger.info(this.RoutingPeersOutgoing)}else this.RoutingPeersIncoming=new Ze.by([]),this.RoutingPeersOutgoing=new Ze.by([])}groupRoutingPeers(e){const t=[],n=[];return e.forEach(e=>{const a=t.find(t=>t.chan_id===e.chan_id_in),i=n.find(t=>t.chan_id===e.chan_id_out);a?(a.events++,a.total_amount=+a.total_amount+ +e.amt_in):t.push({chan_id:e.chan_id_in,alias:e.alias_in,events:1,total_amount:+e.amt_in}),i?(i.events++,i.total_amount=+i.total_amount+ +e.amt_out):n.push({chan_id:e.chan_id_out,alias:e.alias_out,events:1,total_amount:+e.amt_out})}),[this.commonService.sortDescByKey(t,"total_amount"),this.commonService.sortDescByKey(n,"total_amount")]}applyIncomingFilter(e){this.RoutingPeersIncoming.filter=e.value.trim().toLowerCase()}applyOutgoingFilter(e){this.RoutingPeersOutgoing.filter=e.value.trim().toLowerCase()}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(C.v),o.Y36(y.yh))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-routing-peers"]],viewQuery:function(e,t){if(1&e&&(o.Gf(Bu,5,xe.YE),o.Gf(Gu,5,xe.YE),o.Gf(Hu,5),o.Gf(zu,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sortIn=e.first),o.iGM(e=o.CRH())&&(t.sortOut=e.first),o.iGM(e=o.CRH())&&(t.paginatorIn=e.first),o.iGM(e=o.CRH())&&(t.paginatorOut=e.first)}},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Peers")}])],decls:3,vars:2,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between start","class","page-sub-title-container",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between start",1,"page-sub-title-container"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start stretch",1,"mb-4"],["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"page-sub-title-container","w-100",3,"ngClass"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","ngModelChange","keyup"],["fxLayout","column","fxLayoutAlign","start start","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",1,"overflow-auto","incoming-table",3,"dataSource"],["tableIn",""],["matColumnDef","chan_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","events"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","total_amount"],["matColumnDef","actions"],["mat-header-cell","","class","pr-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-2","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_incoming_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["paginatorIn",""],["mat-table","","matSort","",1,"overflow-auto","outgoing-table",3,"dataSource"],["tableOut",""],["mat-cell","","class","pl-2",4,"matCellDef"],["matColumnDef","no_outgoing_event"],["paginatorOut",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pr-3"],["mat-cell","","fxLayoutAlign","end center",1,"pl-2"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],["mat-cell","",1,"pl-2"],["mat-stroked-button","","color","primary","type","button","tabindex","5",3,"click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.YNc(1,Vu,2,1,"div",1),o.YNc(2,Dp,65,29,"div",2),o.qZA()),2&e&&(o.xp6(1),o.Q6J("ngIf",""!==t.errorMessage),o.xp6(1),o.Q6J("ngIf",""===t.errorMessage))},directives:[l.xw,l.Wh,a.O5,l.yH,a.mk,v.oO,D.KE,Ce.Nt,Ae.Fj,Ae.JJ,Ae.On,E.$V,Ze.BZ,xe.YE,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,a.PC,v.Zl,q.lW,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],pipes:[a.JJ],styles:[".mat-column-alias[_ngcontent-%COMP%], .mat-column-chan_id[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),e})();function Mp(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",7),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().activeLink=t.link}),o._uU(1),o.qZA()}if(2&e){const e=t.$implicit,n=o.oxw();o.s9C("routerLink",e.link),o.Q6J("active",n.activeLink===e.link),o.xp6(1),o.Oqu(e.name)}}let Ep=(()=>{class e{constructor(e){this.router=e,this.faChartBar=g.koM,this.links=[{link:"routingfees",name:"Routing Fees"},{link:"transactions",name:"Transactions"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){const e=this.links.find(e=>this.router.url.includes(e.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e instanceof i.Av)).subscribe(e=>{const t=this.links.find(t=>e.urlAfterRedirects.includes(t.link));this.activeLink=t?t.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-reports"]],decls:10,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Reports"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o.TgZ(7,"nav",5),o.YNc(8,Mp,2,3,"div",6),o.qZA(),o._UZ(9,"router-outlet"),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(1),o.Q6J("icon",t.faChartBar),o.xp6(7),o.Q6J("ngForOf",t.links))},directives:[l.xw,l.Wh,T.BN,w.a8,w.dn,ge.BU,a.sg,i.lC,ge.Nj,i.rH],styles:[""]}),e})();var Qp=n(4833),Yp=n(4979),Pp=n(4018),Bp=n(1905);function Gp(e,t){1&e&&o._UZ(0,"mat-progress-bar",10)}function Hp(e,t){if(1&e&&(o.TgZ(0,"div",11),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&e){const e=o.oxw();o.Q6J("@fadeIn",e.events.total_fee_msat),o.xp6(1),o.AsE("",o.xi3(2,3,e.events.total_fee_msat/1e3||0,"1.0-2")," Sats/",o.lcZ(3,6,(null==e.events||null==e.events.forwarding_events?null:e.events.forwarding_events.length)||0)," Events")}}function zp(e,t){1&e&&(o.TgZ(0,"div",12),o._uU(1,"No fee report for the selected period"),o.qZA())}const Vp=function(e){return{"error-border":e}};function Wp(e,t){if(1&e&&(o.TgZ(0,"div",13),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(2,Vp,"Getting fee report..."!==e.errorMessage&&""!==e.errorMessage)),o.xp6(1),o.Oqu(e.errorMessage)}}function Xp(e,t){if(1&e&&(o.TgZ(0,"span"),o.TgZ(1,"span",16),o._uU(2),o.ALo(3,"number"),o.qZA(),o.TgZ(4,"span",16),o._uU(5),o.ALo(6,"number"),o.qZA(),o.qZA()),2&e){const e=t.model;o.xp6(2),o.hij("Events: ",o.lcZ(3,2,e.extra.totalEvents||0),""),o.xp6(3),o.hij("Fee: ",o.xi3(6,4,e.value||0,"1.0-2"),"")}}function $p(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"ngx-charts-bar-vertical",14),o.NdJ("select",function(t){return o.CHM(e),o.oxw().onChartBarSelected(t)})("mouseup",function(t){return o.CHM(e),o.oxw().onChartMouseUp(t)}),o.YNc(1,Xp,7,7,"ng-template",null,15,o.W1O),o.qZA()}if(2&e){const e=o.oxw();o.Q6J("view",e.view)("results",e.feeReportData)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",e.showYAxisLabel)("xAxisLabel",e.xAxisLabel)("yAxisLabel",e.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)}}function jp(e,t){if(1&e&&o._UZ(0,"rtl-forwarding-history",17),2&e){const e=o.oxw();o.Q6J("eventsData",null==e.events?null:e.events.forwarding_events)("filterValue",e.eventFilterValue)}}let Kp=(()=>{class e{constructor(e,t,n){this.dataService=e,this.commonService=t,this.store=n,this.reportPeriod=f.op[0],this.secondsInADay=86400,this.events={},this.eventFilterValue="",this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.feeReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Fee (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.unSubs=[new p.x,new p.x,new p.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===f.cu.XS||this.screenSize===f.cu.SM),this.store.select(Yp.H9).pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{e.identity_pubkey&&this.fetchEvents(this.startDate,this.endDate)})}ngAfterContentInit(){const e=this.commonService.getContainerSize();switch(this.screenSize){case f.cu.MD:this.screenPaddingX=e.width/10;break;case f.cu.LG:this.screenPaddingX=e.width/16;break;default:this.screenPaddingX=e.width/20}this.view=[e.width-this.screenPaddingX,e.height/2.2]}fetchEvents(e,t){this.errorMessage=f.m6.GET_FEE_REPORT;const n=Math.round(e.getTime()/1e3).toString(),a=Math.round(t.getTime()/1e3).toString();this.dataService.getForwardingHistory(n,a).pipe((0,d.R)(this.unSubs[1])).subscribe({next:t=>{this.errorMessage="",t.forwarding_events&&t.forwarding_events.length?(t.forwarding_events=t.forwarding_events.reverse(),this.events=t,this.feeReportData=this.prepareFeeReport(e)):(this.events={},this.feeReportData=[])},error:e=>{this.errorMessage=e}})}onChartMouseUp(e){"svg"===e.srcElement.tagName&&e.srcElement.classList.length>0&&"ngx-charts"===e.srcElement.classList[0]&&(this.eventFilterValue="")}onChartBarSelected(e){this.eventFilterValue=this.reportPeriod===f.op[1]?e.name+"/"+this.startDate.getFullYear():e.name.toString().padStart(2,"0")+"/"+f.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}prepareFeeReport(e){const t=Math.round(e.getTime()/1e3),n=[];if(this.reportPeriod===f.op[1]){for(let e=0;e<12;e++)n.push({name:f.gg[e].name,value:1e-9,extra:{totalEvents:0}});this.events.forwarding_events.map(e=>{const t=new Date(1e3*+e.timestamp).getMonth();return n[t].value=n[t].value+ +e.fee_msat/1e3,n[t].extra.totalEvents=n[t].extra.totalEvents+1,this.events.total_fee_msat=(this.events.total_fee_msat?this.events.total_fee_msat:0)+ +e.fee_msat,this.events})}else{for(let t=0;t{const a=Math.floor((+e.timestamp-t)/this.secondsInADay);return n[a].value=n[a].value+ +e.fee_msat/1e3,n[a].extra.totalEvents=n[a].extra.totalEvents+1,this.events.total_fee_msat=(this.events.total_fee_msat?this.events.total_fee_msat:0)+ +e.fee_msat,this.events})}return n}onSelectionChange(e){const t=e.selDate.getMonth(),n=e.selDate.getFullYear();this.reportPeriod=e.selScrollRange,this.reportPeriod===f.op[1]?(this.startDate=new Date(n,0,1,0,0,0),this.endDate=new Date(n,11,31,23,59,59)):(this.startDate=new Date(n,t,1,0,0,0),this.endDate=new Date(n,t,this.getMonthDays(t,n),23,59,59)),this.fetchEvents(this.startDate,this.endDate),this.eventFilterValue=""}getMonthDays(e,t){return 1===e&&t%4==0?f.gg[e].days+1:f.gg[e].days}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(dt.D),o.Y36(C.v),o.Y36(y.yh))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-fee-report"]],hostBindings:function(e,t){1&e&&o.NdJ("mouseup",function(e){return t.onChartMouseUp(e)})},decls:11,vars:6,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["mode","indeterminate","class","mt-2",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",3,"ngClass",4,"ngIf"],[1,"mt-1"],["class","one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup",4,"ngIf"],[3,"eventsData","filterValue",4,"ngIf"],["mode","indeterminate",1,"mt-2"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1",3,"ngClass"],[1,"one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"eventsData","filterValue"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"rtl-horizontal-scroller",1),o.NdJ("stepChanged",function(e){return t.onSelectionChange(e)}),o.qZA(),o.YNc(2,Gp,1,0,"mat-progress-bar",2),o.TgZ(3,"div",3),o.YNc(4,Hp,4,8,"div",4),o.YNc(5,zp,2,0,"div",5),o.YNc(6,Wp,2,4,"div",6),o.TgZ(7,"div",7),o.YNc(8,$p,3,11,"ngx-charts-bar-vertical",8),o.qZA(),o.TgZ(9,"div",7),o.YNc(10,jp,1,2,"rtl-forwarding-history",9),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(2),o.Q6J("ngIf","Getting fee report..."===t.errorMessage),o.xp6(2),o.Q6J("ngIf",t.feeReportData.length>0&&t.events.forwarding_events),o.xp6(1),o.Q6J("ngIf",(t.feeReportData.length<=0||!t.events.forwarding_events)&&""===t.errorMessage),o.xp6(1),o.Q6J("ngIf",""!==t.errorMessage),o.xp6(2),o.Q6J("ngIf",t.feeReportData.length>0&&t.events.forwarding_events),o.xp6(2),o.Q6J("ngIf",t.events&&(null==t.events?null:t.events.forwarding_events)))},directives:[l.xw,l.Wh,l.yH,Pp.D,a.O5,r.pW,a.mk,v.oO,Bp.K$,Pu],pipes:[a.JJ],styles:[""],data:{animation:[Qp.J]}}),e})();var ed=n(6590);function td(e,t){1&e&&(o.TgZ(0,"div",11),o._UZ(1,"mat-progress-bar",12),o.TgZ(2,"span"),o._uU(3,"Getting transactions data..."),o.qZA(),o.qZA())}function nd(e,t){if(1&e&&(o.TgZ(0,"div",13),o._uU(1),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Oqu(e.errorMessage)}}function ad(e,t){if(1&e&&(o.TgZ(0,"div",16),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.AsE(" Paid ",o.xi3(2,2,e.transactionsReportSummary.amountPaidSelectedPeriod/1e3||0,"1.0-2")," Sats/",o.lcZ(3,5,e.transactionsReportSummary.paymentsSelectedPeriod)," Payments ")}}function id(e,t){if(1&e&&(o.TgZ(0,"div",16),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.AsE(" Received ",o.xi3(2,2,e.transactionsReportSummary.amountReceivedSelectedPeriod/1e3||0,"1.0-2")," Sats/",o.lcZ(3,5,e.transactionsReportSummary.invoicesSelectedPeriod)," Invoices ")}}function sd(e,t){if(1&e&&(o.TgZ(0,"div",14),o.YNc(1,ad,4,7,"div",15),o.YNc(2,id,4,7,"div",15),o.qZA()),2&e){const e=o.oxw();o.Q6J("@fadeIn",e.transactionsReportSummary),o.xp6(1),o.Q6J("ngIf",e.transactionsReportSummary.paymentsSelectedPeriod>0),o.xp6(1),o.Q6J("ngIf",e.transactionsReportSummary.invoicesSelectedPeriod)}}function od(e,t){1&e&&(o.TgZ(0,"div",17),o._uU(1,"No transactions report for the selected period"),o.qZA())}function ld(e,t){if(1&e&&(o.TgZ(0,"span",21),o._uU(1),o.ALo(2,"number"),o.ALo(3,"number"),o.qZA()),2&e){const e=t.model;o.xp6(1),o.HOy("",e.name,": ",o.xi3(2,4,e.value||0,"1.0-2"),"/# ","Paid"===e.name?"Payments":"Invoices",": ",o.lcZ(3,7,(null==e.extra?null:e.extra.total)||0),"")}}function rd(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"ngx-charts-bar-vertical-2d",19),o.NdJ("select",function(t){return o.CHM(e),o.oxw(2).onChartBarSelected(t)})("mouseup",function(t){return o.CHM(e),o.oxw(2).onChartMouseUp(t)}),o.YNc(1,ld,4,9,"ng-template",null,20,o.W1O),o.qZA()}if(2&e){const e=o.oxw(2);o.Q6J("view",e.view)("results",e.transactionsReportData)("noBarWhenZero",!1)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",e.showYAxisLabel)("xAxisLabel",e.xAxisLabel)("yAxisLabel",e.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)("groupPadding",e.reportPeriod===e.scrollRanges[0]?2:8)}}function cd(e,t){if(1&e&&(o.TgZ(0,"div",9),o.YNc(1,rd,3,13,"ngx-charts-bar-vertical-2d",18),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",e.transactionsReportData.length>0&&e.transactionsNonZeroReportData.length>0)}}function ud(e,t){if(1&e&&o._UZ(0,"rtl-transactions-report-table",22),2&e){const e=o.oxw();o.Q6J("dataList",e.transactionsNonZeroReportData)("dataRange",e.reportPeriod)("filterValue",e.transactionFilterValue)}}let pd=(()=>{class e{constructor(e,t){this.commonService=e,this.store=t,this.scrollRanges=f.op,this.reportPeriod=f.op[0],this.secondsInADay=86400,this.payments=[],this.invoices=[],this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0},this.transactionFilterValue="",this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.transactionsReportData=[{date:"",name:"1",series:[{extra:{total:0},name:"Paid",value:0},{extra:{total:0},name:"Received",value:0}]}],this.transactionsNonZeroReportData=[{amount_paid:0,amount_received:0,date:"",num_invoices:0,num_payments:0}],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Amount (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===f.cu.XS||this.screenSize===f.cu.SM),this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchLightningTransactions.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchLightningTransactions.message?JSON.stringify(this.apisCallStatus.FetchLightningTransactions.message):this.apisCallStatus.FetchLightningTransactions.message),this.payments=e.allLightningTransactions.paymentsAll?e.allLightningTransactions.paymentsAll.payments:[],this.invoices=e.allLightningTransactions.invoicesAll?e.allLightningTransactions.invoicesAll.invoices:[],(this.payments.length>0||this.invoices.length>0)&&(this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData())})}ngAfterContentInit(){const e=this.commonService.getContainerSize();switch(this.screenSize){case f.cu.MD:this.screenPaddingX=e.width/10;break;case f.cu.LG:this.screenPaddingX=e.width/16;break;default:this.screenPaddingX=e.width/20}this.view=[e.width-this.screenPaddingX,e.height/2.2]}onChartMouseUp(e){"svg"===e.srcElement.tagName&&e.srcElement.classList.length>0&&"ngx-charts"===e.srcElement.classList[0]&&(this.transactionFilterValue="")}onChartBarSelected(e){this.transactionFilterValue=this.reportPeriod===f.op[1]?e.series+"/"+this.startDate.getFullYear():e.series.toString().padStart(2,"0")+"/"+f.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}filterTransactionsForSelectedPeriod(e,t){const n=Math.round(e.getTime()/1e3),a=Math.round(t.getTime()/1e3),i=[];this.transactionsNonZeroReportData=[],this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0};const s=this.payments.filter(e=>"SUCCEEDED"===e.status&&e.creation_date>=n&&e.creation_datee.settled&&+e.creation_date>=n&&+e.creation_date{const t=new Date(1e3*+e.creation_date).getMonth();return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+ +e.value_msat+ +e.fee_msat,i[t].series[0].value=i[t].series[0].value+(+e.value_msat+ +e.fee_msat)/1e3,i[t].series[0].extra.total=i[t].series[0].extra.total+1,this.transactionsReportSummary}),o.map(e=>{const t=new Date(1e3*+e.creation_date).getMonth();return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+ +e.amt_paid_msat,i[t].series[1].value=i[t].series[1].value+ +e.amt_paid_msat/1e3,i[t].series[1].extra.total=i[t].series[1].extra.total+1,this.transactionsReportSummary})}else{for(let t=0;t{const t=Math.floor((+e.creation_date-n)/this.secondsInADay);return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+ +e.value_msat+ +e.fee_msat,i[t].series[0].value=i[t].series[0].value+(+e.value_msat+ +e.fee_msat)/1e3,i[t].series[0].extra.total=i[t].series[0].extra.total+1,this.transactionsReportSummary}),o.map(e=>{const t=Math.floor((+e.creation_date-n)/this.secondsInADay);return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+ +e.amt_paid_msat,i[t].series[1].value=i[t].series[1].value+ +e.amt_paid_msat/1e3,i[t].series[1].extra.total=i[t].series[1].extra.total+1,this.transactionsReportSummary})}return i}prepareTableData(){return this.transactionsReportData.reduce((e,t)=>t.series[0].extra.total>0||t.series[1].extra.total>0?e.concat({date:t.date,amount_paid:t.series[0].value,num_payments:t.series[0].extra.total,amount_received:t.series[1].value,num_invoices:t.series[1].extra.total}):e,[])}onSelectionChange(e){const t=e.selDate.getMonth(),n=e.selDate.getFullYear();this.reportPeriod=e.selScrollRange,this.reportPeriod===f.op[1]?(this.startDate=new Date(n,0,1,0,0,0),this.endDate=new Date(n,11,31,23,59,59)):(this.startDate=new Date(n,t,1,0,0,0),this.endDate=new Date(n,t,this.getMonthDays(t,n),23,59,59)),this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData(),this.transactionFilterValue=""}getMonthDays(e,t){return 1===e&&t%4==0?f.gg[e].days+1:f.gg[e].days}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(C.v),o.Y36(y.yh))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-transactions-report"]],hostBindings:function(e,t){1&e&&o.NdJ("mouseup",function(e){return t.onChartMouseUp(e)})},decls:11,vars:6,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100"],[3,"stepChanged"],["class","p-2",4,"ngIf"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],["class","mt-1",4,"ngIf"],[1,"mt-1"],[3,"dataList","dataRange","filterValue",4,"ngIf"],[1,"p-2"],["mode","indeterminate"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],["class","two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup",4,"ngIf"],[1,"two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"dataList","dataRange","filterValue"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"div",2),o.TgZ(3,"rtl-horizontal-scroller",3),o.NdJ("stepChanged",function(e){return t.onSelectionChange(e)}),o.qZA(),o.YNc(4,td,4,0,"div",4),o.YNc(5,nd,2,1,"div",5),o.YNc(6,sd,3,3,"div",6),o.YNc(7,od,2,0,"div",7),o.YNc(8,cd,2,1,"div",8),o.TgZ(9,"div",9),o.YNc(10,ud,1,3,"rtl-transactions-report-table",10),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(4),o.Q6J("ngIf",t.apisCallStatus.FetchLightningTransactions.status===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",t.apisCallStatus.FetchLightningTransactions.status===t.apiCallStatusEnum.ERROR),o.xp6(1),o.Q6J("ngIf",t.transactionsNonZeroReportData.length>0&&t.apisCallStatus.FetchLightningTransactions.status===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",t.transactionsNonZeroReportData.length<=0&&t.apisCallStatus.FetchLightningTransactions.status===t.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",t.transactionsNonZeroReportData.length>0&&t.apisCallStatus.FetchLightningTransactions.status===t.apiCallStatusEnum.COMPLETED),o.xp6(2),o.Q6J("ngIf",t.transactionsNonZeroReportData.length>0&&t.apisCallStatus.FetchLightningTransactions.status===t.apiCallStatusEnum.COMPLETED))},directives:[l.xw,l.Wh,l.yH,Pp.D,a.O5,r.pW,Bp.H5,ed.g],pipes:[a.JJ],styles:[""],data:{animation:[Qp.J]}}),e})();const dd=["form"];function hd(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"UTXO Label is required."),o.qZA())}function md(e,t){if(1&e&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.labelError)}}function gd(e,t){if(1&e&&(o.TgZ(0,"div",16),o._UZ(1,"fa-icon",17),o.YNc(2,md,2,1,"span",11),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("icon",e.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==e.labelError)}}let fd=(()=>{class e{constructor(e,t,n,a,i,s){this.dialogRef=e,this.data=t,this.dataService=n,this.store=a,this.snackBar=i,this.commonService=s,this.faExclamationTriangle=g.eHv,this.utxo=null,this.label="",this.labelError="",this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.utxo=this.data.utxo,this.label=this.utxo.label}onLabelUTXO(){if(!this.label||""===this.label)return!0;this.labelError="",this.dataService.labelUTXO(this.utxo.outpoint.txid_bytes,this.label,!0).pipe((0,d.R)(this.unSubs[0])).subscribe({next:e=>{this.store.dispatch(new x.eL),this.store.dispatch(new x.Zt),this.snackBar.open("Successfully labelled the UTXO."),this.dialogRef.close()},error:e=>{this.labelError=e}})}resetData(){this.labelError="",this.label=""}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(ye.WI),o.Y36(dt.D),o.Y36(y.yh),o.Y36(Ai.ux),o.Y36(C.v))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-on-chain-lebel-modal"]],viewQuery:function(e,t){if(1&e&&o.Gf(dd,7),2&e){let e;o.iGM(e=o.CRH())&&(t.form=e.first)}},decls:20,vars:4,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100",1,"overflow-x-hidden",3,"submit","reset"],["form","ngForm"],["fxFlex.gt-sm","100"],["autoFocus","","matInput","","placeholder","UTXO Label","name","label","tabindex","1","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["mat-flat-button","","color","primary","type","submit","tabindex","8"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5,"Label UTXO"),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.TgZ(9,"form",7,8),o.NdJ("submit",function(){return t.onLabelUTXO()})("reset",function(){return t.resetData()}),o.TgZ(11,"mat-form-field",9),o.TgZ(12,"input",10),o.NdJ("ngModelChange",function(e){return t.label=e}),o.qZA(),o.YNc(13,hd,2,0,"mat-error",11),o.qZA(),o.YNc(14,gd,3,2,"div",12),o.TgZ(15,"div",13),o.TgZ(16,"button",14),o._uU(17,"Clear"),o.qZA(),o.TgZ(18,"button",15),o._uU(19,"Label UTXO"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(6),o.Q6J("mat-dialog-close",!1),o.xp6(6),o.Q6J("ngModel",t.label),o.xp6(1),o.Q6J("ngIf",!t.label),o.xp6(1),o.Q6J("ngIf",""!==t.labelError))},directives:[l.xw,l.yH,w.dk,l.Wh,q.lW,ye.ZT,w.dn,Ae._Y,Ae.JL,Ae.F,D.KE,Ce.Nt,Ae.Fj,Te.h,Ae.Q7,Ae.JJ,Ae.On,a.O5,D.TO,T.BN],styles:[""]}),e})();function xd(e,t){1&e&&o._UZ(0,"mat-progress-bar",28)}function Zd(e,t){1&e&&(o.TgZ(0,"th",29),o._uU(1," Transaction ID "),o.qZA())}function yd(e,t){1&e&&(o.TgZ(0,"span",35),o.TgZ(1,"mat-icon",36),o._uU(2,"warning"),o.qZA(),o.qZA())}function Ad(e,t){if(1&e&&(o.TgZ(0,"span"),o.YNc(1,yd,3,0,"span",34),o.qZA()),2&e){const e=o.oxw().$implicit;o.oxw();const t=o.MAs(34);o.xp6(1),o.Q6J("ngIf",e.amount_sat<1e3)("ngIfElse",t)}}const Cd=function(e){return{"max-width":e}};function Td(e,t){if(1&e&&(o.TgZ(0,"td",30),o.TgZ(1,"span",31),o.YNc(2,Ad,2,2,"span",32),o.TgZ(3,"span",33),o._uU(4),o.qZA(),o.qZA(),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(3,Cd,n.screenSize===n.screenSizeEnum.XS?"12rem":"25rem")),o.xp6(2),o.Q6J("ngIf",n.utxos.length>0&&!n.isDustUTXO),o.xp6(2),o.Oqu(e.outpoint.txid_str)}}function bd(e,t){1&e&&(o.TgZ(0,"th",37),o._uU(1," Output "),o.qZA())}function wd(e,t){if(1&e&&(o.TgZ(0,"td",38),o.TgZ(1,"span",39),o._uU(2),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(e.outpoint.output_index)}}function _d(e,t){1&e&&(o.TgZ(0,"th",29),o._uU(1," Label "),o.qZA())}function vd(e,t){if(1&e&&(o.TgZ(0,"td",30),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,Cd,n.screenSize===n.screenSizeEnum.XS?"12rem":"25rem")),o.xp6(1),o.hij(" ",null==e?null:e.label," ")}}function qd(e,t){1&e&&(o.TgZ(0,"th",37),o._uU(1," Amount (Sats) "),o.qZA())}function Sd(e,t){if(1&e&&(o.TgZ(0,"td",38),o.TgZ(1,"span",39),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.amount_sat||0))}}function Fd(e,t){1&e&&(o.TgZ(0,"th",37),o._uU(1," Confirmations "),o.qZA())}function Ld(e,t){if(1&e&&(o.TgZ(0,"td",38),o.TgZ(1,"span",39),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.confirmations||0))}}function kd(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"th",40),o.TgZ(1,"div",41),o.TgZ(2,"mat-select",42),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",43),o.NdJ("click",function(){return o.CHM(e),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Nd(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",44),o.TgZ(1,"div",45),o.TgZ(2,"mat-select",46),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",43),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onUTXOClick(t)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",43),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onLabelUTXO(t)}),o._uU(7,"Label"),o.qZA(),o.TgZ(8,"mat-option",43),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onLeaseUTXO(t)}),o._uU(9,"Lease"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function Ud(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No UTXO available."),o.qZA())}function Id(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting UTXOs..."),o.qZA())}function Od(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function Jd(e,t){if(1&e&&(o.TgZ(0,"td",47),o.YNc(1,Ud,2,0,"p",32),o.YNc(2,Id,2,0,"p",32),o.YNc(3,Od,2,1,"p",32),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=e.listUTXOs&&e.listUTXOs.data)||(null==e.listUTXOs||null==e.listUTXOs.data?null:e.listUTXOs.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchUTXOs.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.listUTXOs&&e.listUTXOs.data)||(null==e.listUTXOs||null==e.listUTXOs.data?null:e.listUTXOs.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchUTXOs.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.listUTXOs&&e.listUTXOs.data)||(null==e.listUTXOs||null==e.listUTXOs.data?null:e.listUTXOs.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchUTXOs.status)===e.apiCallStatusEnum.ERROR)}}const Dd=function(e){return{"display-none":e}};function Rd(e,t){if(1&e&&o._UZ(0,"tr",48),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,Dd,(null==e.listUTXOs?null:e.listUTXOs.data)&&(null==e.listUTXOs||null==e.listUTXOs.data?null:e.listUTXOs.data.length)>0))}}function Md(e,t){1&e&&o._UZ(0,"tr",49)}function Ed(e,t){1&e&&o._UZ(0,"tr",50)}function Qd(e,t){1&e&&o._UZ(0,"mat-icon",36)}const Yd=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}},Pd=function(){return["no_utxo"]};let Bd=(()=>{class e{constructor(e,t,n,a,i,s){this.logger=e,this.commonService=t,this.dataService=n,this.store=a,this.rtlEffects=i,this.decimalPipe=s,this.isDustUTXO=!1,this.addressType=f.x$,this.faMoneyBillWave=g.aj4,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["amount_sat","confirmations","actions"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["tx_id","output","amount_sat","actions"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["tx_id","output","label","amount_sat","confirmations","actions"]):(this.flgSticky=!0,this.displayedColumns=["tx_id","output","label","amount_sat","confirmations","actions"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchUTXOs.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchUTXOs.message?JSON.stringify(this.apisCallStatus.FetchUTXOs.message):this.apisCallStatus.FetchUTXOs.message),e.utxos&&e.utxos.length>0&&(this.utxos=this.isDustUTXO?e.utxos.filter(e=>+e.amount_sat<1e3):e.utxos,this.loadUTXOsTable(this.utxos)),this.logger.info(e)})}ngOnChanges(){this.utxos&&this.utxos.length>0&&this.loadUTXOsTable(this.utxos)}applyFilter(e){this.listUTXOs.filter=e.value.trim().toLowerCase()}onUTXOClick(e){this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"UTXO Information",message:[[{key:"txid",value:e.outpoint.txid_str,title:"Transaction ID",width:100,type:f.Gi.STRING}],[{key:"label",value:e.label,title:"Label",width:100,type:f.Gi.STRING}],[{key:"output_index",value:e.outpoint.output_index,title:"Output Index",width:34,type:f.Gi.NUMBER},{key:"amount_sat",value:e.amount_sat,title:"Amount (Sats)",width:33,type:f.Gi.NUMBER},{key:"confirmations",value:e.confirmations,title:"Confirmations",width:33,type:f.Gi.NUMBER}],[{key:"address_type",value:this.addressType[e.address_type].name,title:"Address Type",width:34},{key:"address",value:e.address,title:"Address",width:66}],[{key:"pk_script",value:e.pk_script,title:"PK Script",width:100,type:f.Gi.STRING}]]}}))}loadUTXOsTable(e){this.listUTXOs=new Ze.by([...e]),this.listUTXOs.filterPredicate=(e,t)=>((e.label?e.label.toLowerCase():"")+(e.outpoint.txid_str?e.outpoint.txid_str.toLowerCase():"")+(e.outpoint.output_index?e.outpoint.output_index:"")+(e.outpoint.txid_bytes?e.outpoint.txid_bytes.toLowerCase():"")+(e.address?e.address.toLowerCase():"")+(e.address_type?e.address_type.toLowerCase():"")+(e.amount_sat?e.amount_sat:"")+(e.confirmations?e.confirmations:"")+(e.pk_script?e.pk_script.toLowerCase():"")).includes(t),this.listUTXOs.sortingDataAccessor=(e,t)=>{switch(t){case"tx_id":return e.outpoint.txid_str.toLocaleLowerCase();case"output":return+e.outpoint.output_index;default:return e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null}},this.listUTXOs.sort=this.sort,this.listUTXOs.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.listUTXOs.paginator=this.paginator,this.logger.info(this.listUTXOs)}onLabelUTXO(e){this.store.dispatch(new ee.wu({data:{utxo:e,component:fd}}))}onLeaseUTXO(e){const t=[[{key:"txid_str",value:e.outpoint.txid_str,title:"Transaction ID",width:100}],[{key:"amount_sat",value:this.decimalPipe.transform(e.amount_sat),title:"Amount (Sats)",width:100}]];e.label&&t.splice(1,0,[{key:"label",value:e.label,title:"Label",width:100}]),this.store.dispatch(new ee.b_({data:{type:f.n_.CONFIRM,alertTitle:"Lease UTXO",informationMessage:"The UTXO will be leased for 10 minutes.",message:t,noBtnText:"Cancel",yesBtnText:"Lease UTXO"}})),this.rtlEffects.closeConfirm.pipe((0,d.R)(this.unSubs[0])).subscribe(t=>{t&&this.dataService.leaseUTXO(e.outpoint.txid_bytes,e.outpoint.output_index)})}onDownloadCSV(){this.listUTXOs.data&&this.listUTXOs.data.length>0&&this.commonService.downloadFile(this.listUTXOs.data,"UTXOs")}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(C.v),o.Y36(dt.D),o.Y36(y.yh),o.Y36(St.V),o.Y36(a.JJ))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-on-chain-utxos"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},inputs:{isDustUTXO:"isDustUTXO"},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("UTXOs")}]),o.TTD],decls:35,vars:13,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["fxLayout","column","fxLayout.gt-xs","row wrap","fxLayoutAlign.gt-xs","end stretch","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","tx_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","output"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","label"],["matColumnDef","amount_sat"],["matColumnDef","confirmations"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pl-3",4,"matCellDef"],["matColumnDef","no_utxo"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["emptySpace",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["fxLayout","row"],[4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Risk of dust attack","matTooltipPosition","right",4,"ngIf","ngIfElse"],["matTooltip","Risk of dust attack","matTooltipPosition","right"],["fxLayoutAlign","start center","color","warn",1,"mr-1"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","2",1,"mr-0"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-form-field",2),o.TgZ(3,"input",3),o.NdJ("keyup",function(e){return t.applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(4,"div",4),o.TgZ(5,"div",5),o.YNc(6,xd,1,0,"mat-progress-bar",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,Zd,2,0,"th",10),o.YNc(11,Td,5,5,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,bd,2,0,"th",13),o.YNc(14,wd,3,1,"td",14),o.BQk(),o.ynx(15,15),o.YNc(16,_d,2,0,"th",10),o.YNc(17,vd,2,4,"td",11),o.BQk(),o.ynx(18,16),o.YNc(19,qd,2,0,"th",13),o.YNc(20,Sd,4,3,"td",14),o.BQk(),o.ynx(21,17),o.YNc(22,Fd,2,0,"th",13),o.YNc(23,Ld,4,3,"td",14),o.BQk(),o.ynx(24,18),o.YNc(25,kd,6,0,"th",19),o.YNc(26,Nd,10,0,"td",20),o.BQk(),o.ynx(27,21),o.YNc(28,Jd,4,3,"td",22),o.BQk(),o.YNc(29,Rd,1,3,"tr",23),o.YNc(30,Md,1,0,"tr",24),o.YNc(31,Ed,1,0,"tr",25),o.qZA(),o._UZ(32,"mat-paginator",26),o.qZA(),o.qZA(),o.qZA(),o.YNc(33,Qd,1,0,"ng-template",null,27,o.W1O)),2&e&&(o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchUTXOs.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.listUTXOs)("ngClass",o.VKq(10,Yd,""!==t.errorMessage)),o.xp6(22),o.Q6J("matFooterRowDef",o.DdM(12,Pd)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS))},directives:[l.xw,l.yH,l.Wh,D.KE,Ce.Nt,E.$V,a.O5,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,a.PC,v.Zl,R.gM,S.Hw,we.gD,we.$L,ve.ey,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],pipes:[a.JJ],styles:[".mat-column-label[_ngcontent-%COMP%]{padding-left:1rem;flex:1 1 15%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-tx_id[_ngcontent-%COMP%]{flex:1 1 15%}.mat-column-tx_id[_ngcontent-%COMP%] .ellipsis-child[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),e})();function Gd(e,t){1&e&&o._UZ(0,"mat-progress-bar",28)}function Hd(e,t){1&e&&(o.TgZ(0,"th",29),o._uU(1," Date/Time "),o.qZA())}function zd(e,t){if(1&e&&(o.TgZ(0,"td",30),o._uU(1),o.ALo(2,"date"),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Oqu(o.xi3(2,1,1e3*e.time_stamp,"dd/MMM/YYYY HH:mm"))}}function Vd(e,t){1&e&&(o.TgZ(0,"th",29),o._uU(1," Label "),o.qZA())}const Wd=function(e){return{"max-width":e}};function Xd(e,t){if(1&e&&(o.TgZ(0,"td",31),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,Wd,n.screenSize===n.screenSizeEnum.XS?"12rem":"25rem")),o.xp6(1),o.hij(" ",null==e?null:e.label," ")}}function $d(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1," Amount (Sats) "),o.qZA())}function jd(e,t){if(1&e&&(o.TgZ(0,"span",35),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.Oqu(o.lcZ(2,1,e.amount))}}function Kd(e,t){if(1&e&&(o.TgZ(0,"span",36),o._uU(1),o.ALo(2,"number"),o.qZA()),2&e){const e=o.oxw().$implicit;o.xp6(1),o.hij("(",o.lcZ(2,1,-1*e.amount),")")}}function eh(e,t){if(1&e&&(o.TgZ(0,"td",30),o.YNc(1,jd,3,3,"span",33),o.YNc(2,Kd,3,3,"span",34),o.qZA()),2&e){const e=t.$implicit;o.xp6(1),o.Q6J("ngIf",e.amount>0||0===e.amount),o.xp6(1),o.Q6J("ngIf",e.amount<0)}}function th(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1," Fees (Sats) "),o.qZA())}function nh(e,t){if(1&e&&(o.TgZ(0,"td",30),o.TgZ(1,"span",35),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.total_fees))}}function ah(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1," Block Height "),o.qZA())}function ih(e,t){if(1&e&&(o.TgZ(0,"td",30),o.TgZ(1,"span",35),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.Oqu(o.lcZ(3,1,e.block_height))}}function sh(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1," Confirmations "),o.qZA())}function oh(e,t){if(1&e&&(o.TgZ(0,"td",30),o.TgZ(1,"span",35),o._uU(2),o.ALo(3,"number"),o.qZA(),o.qZA()),2&e){const e=t.$implicit;o.xp6(2),o.hij(" ",o.lcZ(3,1,null==e?null:e.num_confirmations)," ")}}function lh(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"th",37),o.TgZ(1,"div",38),o.TgZ(2,"mat-select",39),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",40),o.NdJ("click",function(){return o.CHM(e),o.oxw().onDownloadCSV()}),o._uU(5,"Download CSV"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function rh(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",41),o.TgZ(1,"button",42),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onTransactionClick(t)}),o._uU(2,"View Info"),o.qZA(),o.qZA()}}function ch(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No transaction available."),o.qZA())}function uh(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting transactions..."),o.qZA())}function ph(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function dh(e,t){if(1&e&&(o.TgZ(0,"td",43),o.YNc(1,ch,2,0,"p",44),o.YNc(2,uh,2,0,"p",44),o.YNc(3,ph,2,1,"p",44),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=e.listTransactions&&e.listTransactions.data)||(null==e.listTransactions||null==e.listTransactions.data?null:e.listTransactions.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchTransactions.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.listTransactions&&e.listTransactions.data)||(null==e.listTransactions||null==e.listTransactions.data?null:e.listTransactions.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchTransactions.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.listTransactions&&e.listTransactions.data)||(null==e.listTransactions||null==e.listTransactions.data?null:e.listTransactions.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchTransactions.status)===e.apiCallStatusEnum.ERROR)}}const hh=function(e){return{"display-none":e}};function mh(e,t){if(1&e&&o._UZ(0,"tr",45),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,hh,(null==e.listTransactions?null:e.listTransactions.data)&&(null==e.listTransactions||null==e.listTransactions.data?null:e.listTransactions.data.length)>0))}}function gh(e,t){1&e&&o._UZ(0,"tr",46)}function fh(e,t){1&e&&o._UZ(0,"tr",47)}const xh=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}},Zh=function(){return["no_transaction"]};let yh=(()=>{class e{constructor(e,t,n,a){this.logger=e,this.commonService=t,this.store=n,this.datePipe=a,this.faHistory=g.qO$,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.flgSticky=!1,this.displayedColumns=["time_stamp","amount","actions"]):this.screenSize===f.cu.SM?(this.flgSticky=!1,this.displayedColumns=["time_stamp","amount","num_confirmations","total_fees","actions"]):this.screenSize===f.cu.MD?(this.flgSticky=!1,this.displayedColumns=["time_stamp","label","amount","total_fees","num_confirmations","actions"]):(this.flgSticky=!0,this.displayedColumns=["time_stamp","label","amount","total_fees","block_height","num_confirmations","actions"])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchTransactions.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchTransactions.message?JSON.stringify(this.apisCallStatus.FetchTransactions.message):this.apisCallStatus.FetchTransactions.message),e.transactions&&e.transactions.length>0&&(this.transactions=e.transactions,this.loadTransactionsTable(this.transactions)),this.logger.info(e)})}ngOnChanges(){this.transactions&&this.transactions.length>0&&this.loadTransactionsTable(this.transactions)}applyFilter(e){this.listTransactions.filter=e.value.trim().toLowerCase()}onTransactionClick(e){this.store.dispatch(new ee.wu({data:{type:f.n_.INFORMATION,alertTitle:"Transaction Information",message:[[{key:"block_hash",value:e.block_hash,title:"Block Hash",width:100}],[{key:"tx_hash",value:e.tx_hash,title:"Transaction Hash",width:100}],[{key:"label",value:e.label,title:"Label",width:100,type:f.Gi.STRING}],[{key:"time_stamp",value:e.time_stamp,title:"Date/Time",width:50,type:f.Gi.DATE_TIME},{key:"block_height",value:e.block_height,title:"Block Height",width:50,type:f.Gi.NUMBER}],[{key:"num_confirmations",value:e.num_confirmations,title:"Number of Confirmations",width:34,type:f.Gi.NUMBER},{key:"total_fees",value:e.total_fees,title:"Total Fees (Sats)",width:33,type:f.Gi.NUMBER},{key:"amount",value:e.amount,title:"Amount (Sats)",width:33,type:f.Gi.NUMBER}],[{key:"dest_addresses",value:e.dest_addresses,title:"Destination Addresses",width:100,type:f.Gi.ARRAY}]],scrollable:e.dest_addresses&&e.dest_addresses.length>5}}))}loadTransactionsTable(e){this.listTransactions=new Ze.by([...e]),this.listTransactions.sort=this.sort,this.listTransactions.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.listTransactions.filterPredicate=(e,t)=>((e.time_stamp?this.datePipe.transform(new Date(1e3*e.time_stamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(e).toLowerCase()).includes(t),this.listTransactions.paginator=this.paginator,this.logger.info(this.listTransactions)}onDownloadCSV(){this.listTransactions.data&&this.listTransactions.data.length>0&&this.commonService.downloadFile(this.listTransactions.data,"Transactions")}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(C.v),o.Y36(y.yh),o.Y36(a.uU))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-on-chain-transaction-history"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Transactions")}]),o.TTD],decls:36,vars:13,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["fxLayout","column","fxLayout.gt-xs","row wrap","fxLayoutAlign.gt-xs","end stretch","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","time_stamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","label"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","total_fees"],["matColumnDef","block_height"],["matColumnDef","num_confirmations"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_transaction"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center",4,"ngIf"],["fxLayoutAlign","end center","class","red",4,"ngIf"],["fxLayoutAlign","end center"],["fxLayoutAlign","end center",1,"red"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-form-field",2),o.TgZ(3,"input",3),o.NdJ("keyup",function(e){return t.applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(4,"div",4),o.TgZ(5,"div",5),o.YNc(6,Gd,1,0,"mat-progress-bar",6),o.TgZ(7,"table",7,8),o.ynx(9,9),o.YNc(10,Hd,2,0,"th",10),o.YNc(11,zd,3,4,"td",11),o.BQk(),o.ynx(12,12),o.YNc(13,Vd,2,0,"th",10),o.YNc(14,Xd,2,4,"td",13),o.BQk(),o.ynx(15,14),o.YNc(16,$d,2,0,"th",15),o.YNc(17,eh,3,2,"td",11),o.BQk(),o.ynx(18,16),o.YNc(19,th,2,0,"th",15),o.YNc(20,nh,4,3,"td",11),o.BQk(),o.ynx(21,17),o.YNc(22,ah,2,0,"th",15),o.YNc(23,ih,4,3,"td",11),o.BQk(),o.ynx(24,18),o.YNc(25,sh,2,0,"th",15),o.YNc(26,oh,4,3,"td",11),o.BQk(),o.ynx(27,19),o.YNc(28,lh,6,0,"th",20),o.YNc(29,rh,3,0,"td",21),o.BQk(),o.ynx(30,22),o.YNc(31,dh,4,3,"td",23),o.BQk(),o.YNc(32,mh,1,3,"tr",24),o.YNc(33,gh,1,0,"tr",25),o.YNc(34,fh,1,0,"tr",26),o.qZA(),o._UZ(35,"mat-paginator",27),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchTransactions.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.listTransactions)("ngClass",o.VKq(10,xh,""!==t.errorMessage)),o.xp6(25),o.Q6J("matFooterRowDef",o.DdM(12,Zh)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS))},directives:[l.xw,l.yH,l.Wh,D.KE,Ce.Nt,E.$V,a.O5,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,a.PC,v.Zl,we.gD,we.$L,ve.ey,q.lW,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],pipes:[a.uU,a.JJ],styles:[".mat-column-label[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),e})();function Ah(e,t){if(1&e&&(o.TgZ(0,"span",5),o._uU(1,"UTXOs"),o.qZA()),2&e){const e=o.oxw();o.s9C("matBadge",e.numUtxos)}}function Ch(e,t){if(1&e&&(o.TgZ(0,"span",5),o._uU(1,"Transactions"),o.qZA()),2&e){const e=o.oxw();o.s9C("matBadge",e.numTransactions)}}function Th(e,t){if(1&e&&(o.TgZ(0,"span",5),o._uU(1,"Dust UTXOs"),o.qZA()),2&e){const e=o.oxw();o.s9C("matBadge",e.numDustUtxos)}}let bh=(()=>{class e{constructor(e,t){this.logger=e,this.store=t,this.selectedTableIndex=0,this.selectedTableIndexChange=new o.vpe,this.numTransactions=0,this.numUtxos=0,this.numDustUtxos=0,this.unSubs=[new p.x]}ngOnInit(){this.store.dispatch(new x.eL),this.store.dispatch(new x.Zt),this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{e.utxos&&e.utxos.length>0&&(this.numUtxos=e.utxos.length,this.numDustUtxos=e.utxos.filter(e=>+e.amount_sat<1e3).length),e.transactions&&e.transactions.length>0&&(this.numTransactions=e.transactions.length),this.logger.info(e)})}onSelectedIndexChanged(e){this.selectedTableIndexChange.emit(e)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-utxo-tables"]],inputs:{selectedTableIndex:"selectedTableIndex"},outputs:{selectedTableIndexChange:"selectedTableIndexChange"},decls:11,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"bordered-box"],[3,"selectedIndex","selectedIndexChange"],["mat-tab-label",""],["fxLayout","row","fxFlex","100",3,"isDustUTXO"],["fxLayout","row","fxFlex","100"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"mat-tab-group",1),o.NdJ("selectedIndexChange",function(e){return t.onSelectedIndexChanged(e)}),o.TgZ(2,"mat-tab"),o.YNc(3,Ah,2,1,"ng-template",2),o._UZ(4,"rtl-on-chain-utxos",3),o.qZA(),o.TgZ(5,"mat-tab"),o.YNc(6,Ch,2,1,"ng-template",2),o._UZ(7,"rtl-on-chain-transaction-history",4),o.qZA(),o.TgZ(8,"mat-tab"),o.YNc(9,Th,2,1,"ng-template",2),o._UZ(10,"rtl-on-chain-utxos",3),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(1),o.Q6J("selectedIndex",t.selectedTableIndex),o.xp6(3),o.Q6J("isDustUTXO",!1),o.xp6(6),o.Q6J("isDustUTXO",!0))},directives:[l.xw,l.yH,l.Wh,ge.SP,ge.uX,ge.uD,Bd,yh,ra.k],styles:[""]}),e})();const wh=function(e,t){return[e,t]};function _h(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",12),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().activeLink=null==t?null:t.link}),o._uU(1),o.qZA()}if(2&e){const e=t.$implicit,n=o.oxw();o.Q6J("active",n.activeLink===(null==e?null:e.link))("routerLink",o.WLB(3,wh,null==e?null:e.link,null==n.selectedTable?null:n.selectedTable.name)),o.xp6(1),o.Oqu(null==e?null:e.name)}}let vh=(()=>{class e{constructor(e,t,n){this.store=e,this.router=t,this.activatedRoute=n,this.selNode={},this.faExchangeAlt=g.Ssp,this.faChartPie=g.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"receive",name:"Receive"},{link:"send",name:"Send"},{link:"sweep",name:"Sweep All"}],this.activeLink=this.links[0].link,this.tables=[{id:0,name:"utxos"},{id:1,name:"trans"},{id:2,name:"dustUtxos"}],this.selectedTable=this.tables[0],this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){const e=this.links.find(e=>this.router.url.includes(e.link));this.activeLink=e?e.link:this.links[0].link,this.selectedTable=this.tables.find(e=>e.name===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e instanceof i.Av)).subscribe(e=>{const t=this.links.find(t=>e.urlAfterRedirects.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.selectedTable=this.tables.find(t=>t.name===e.urlAfterRedirects.substring(e.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select("lnd").pipe((0,d.R)(this.unSubs[1])).subscribe(e=>{this.selNode=e.nodeSettings,this.balances=[{title:"Total Balance",dataValue:e.blockchainBalance.total_balance||0},{title:"Confirmed",dataValue:e.blockchainBalance.confirmed_balance},{title:"Unconfirmed",dataValue:e.blockchainBalance.unconfirmed_balance}]})}onSelectedTableIndexChanged(e){this.selectedTable=this.tables.find(t=>t.id===e),this.router.navigate(["./",this.activeLink,this.selectedTable.name],{relativeTo:this.activatedRoute})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(y.yh),o.Y36(i.F0),o.Y36(i.gz))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-on-chain"]],decls:21,vars:5,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["fxLayout","row","fxFlex","100",3,"selectedTableIndex","selectedTableIndexChange"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"On-chain Balance"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o._UZ(7,"rtl-currency-unit-converter",5),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",0),o._UZ(9,"fa-icon",1),o.TgZ(10,"span",2),o._uU(11,"On-chain Transactions"),o.qZA(),o.qZA(),o.TgZ(12,"div",6),o.TgZ(13,"mat-card"),o.TgZ(14,"mat-card-content",4),o.TgZ(15,"nav",7),o.YNc(16,_h,2,6,"div",8),o.qZA(),o.TgZ(17,"div",9),o._UZ(18,"router-outlet"),o.qZA(),o.TgZ(19,"div",10),o.TgZ(20,"rtl-utxo-tables",11),o.NdJ("selectedTableIndexChange",function(e){return t.onSelectedTableIndexChanged(e)}),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(1),o.Q6J("icon",t.faChartPie),o.xp6(6),o.Q6J("values",t.balances),o.xp6(2),o.Q6J("icon",t.faExchangeAlt),o.xp6(7),o.Q6J("ngForOf",t.links),o.xp6(4),o.Q6J("selectedTableIndex",null==t.selectedTable?null:t.selectedTable.id))},directives:[l.xw,l.Wh,T.BN,w.a8,w.dn,la.D,ge.BU,a.sg,l.yH,i.lC,bh,ge.Nj,i.rH],styles:[""]}),e})();var qh=n(7969);function Sh(e,t){if(1&e&&(o.TgZ(0,"mat-option",7),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e),o.xp6(1),o.hij(" ",e.addressTp," ")}}let Fh=(()=>{class e{constructor(e,t){this.store=e,this.lndEffects=t,this.addressTypes=f._t,this.selectedAddressType=f._t[0],this.newAddress=""}onGenerateAddress(){this.store.dispatch(new x.ER(this.selectedAddressType)),this.lndEffects.setNewAddress.pipe((0,pt.q)(1)).subscribe(e=>{this.newAddress=e,this.store.dispatch(new ee.wu({width:"58%",data:{address:this.newAddress,addressType:this.selectedAddressType.addressTp,component:qh.n}}))})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(y.yh),o.Y36(Ft.l))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-on-chain-receive"]],decls:8,vars:2,consts:[["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start end"],["fxFlex","48","fxFlex.gt-md","25","fxLayoutAlign","start end",1,"mr-2"],["placeholder","Address Type","name","address_type","tabindex","1",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],[1,"mt-2"],["mat-flat-button","","color","primary","tabindex","2",1,"top-minus-15px",3,"click"],[3,"value"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-form-field",2),o.TgZ(3,"mat-select",3),o.NdJ("ngModelChange",function(e){return t.selectedAddressType=e}),o.YNc(4,Sh,2,2,"mat-option",4),o.qZA(),o.qZA(),o.TgZ(5,"div",5),o.TgZ(6,"button",6),o.NdJ("click",function(){return t.onGenerateAddress()}),o._uU(7,"Generate Address"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(3),o.Q6J("ngModel",t.selectedAddressType),o.xp6(1),o.Q6J("ngForOf",t.addressTypes))},directives:[l.xw,l.Wh,D.KE,l.yH,we.gD,Ae.JJ,Ae.On,a.sg,q.lW,ve.ey],styles:[""]}),e})();var Lh=n(1339);const kh=["form"],Nh=["formSweepAll"],Uh=["stepper"];function Ih(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Bitcoin address is required."),o.qZA())}function Oh(e,t){if(1&e&&(o.TgZ(0,"mat-error"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.amountError)}}function Jh(e,t){if(1&e&&(o.TgZ(0,"mat-option",31),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e),o.xp6(1),o.Oqu(e)}}function Dh(e,t){if(1&e&&(o.TgZ(0,"mat-option",31),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e.id),o.xp6(1),o.hij(" ",e.name," ")}}function Rh(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Number of blocks is required."),o.qZA())}function Mh(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-form-field",23),o.TgZ(1,"input",32,33),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw(2).transactionBlocks=t}),o.qZA(),o.YNc(3,Rh,2,0,"mat-error",14),o.qZA()}if(2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngModel",e.transactionBlocks)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",!e.transactionBlocks)}}function Eh(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Fees is required."),o.qZA())}function Qh(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-form-field",23),o.TgZ(1,"input",34,35),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw(2).transactionFees=t}),o.qZA(),o.YNc(3,Eh,2,0,"mat-error",14),o.qZA()}if(2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("ngModel",e.transactionFees)("step",1)("min",0),o.xp6(2),o.Q6J("ngIf",!e.transactionFees)}}function Yh(e,t){if(1&e&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&e){const e=o.oxw(3);o.xp6(1),o.Oqu(e.sendFundError)}}function Ph(e,t){if(1&e&&(o.TgZ(0,"div",36),o._UZ(1,"fa-icon",37),o.YNc(2,Yh,2,1,"span",14),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("icon",e.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==e.sendFundError)}}function Bh(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"form",9,10),o.NdJ("submit",function(){return o.CHM(e),o.oxw().onSendFunds()})("reset",function(){return o.CHM(e),o.oxw().resetData()}),o.TgZ(2,"mat-form-field",11),o.TgZ(3,"input",12,13),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().transactionAddress=t}),o.qZA(),o.YNc(5,Ih,2,0,"mat-error",14),o.qZA(),o.TgZ(6,"mat-form-field",15),o.TgZ(7,"input",16,17),o.NdJ("ngModelChange",function(t){return o.CHM(e),o.oxw().transactionAmount=t}),o.qZA(),o.TgZ(9,"span",18),o._uU(10),o.qZA(),o.YNc(11,Oh,2,1,"mat-error",14),o.qZA(),o.TgZ(12,"mat-form-field",19),o.TgZ(13,"mat-select",20),o.NdJ("selectionChange",function(t){return o.CHM(e),o.oxw().onAmountUnitChange(t)}),o.YNc(14,Jh,2,2,"mat-option",21),o.qZA(),o.qZA(),o.TgZ(15,"div",22),o.TgZ(16,"mat-form-field",23),o.TgZ(17,"mat-select",24),o.NdJ("valueChange",function(t){return o.CHM(e),o.oxw().selTransType=t}),o.YNc(18,Dh,2,2,"mat-option",21),o.qZA(),o.qZA(),o.YNc(19,Mh,4,4,"mat-form-field",25),o.YNc(20,Qh,4,4,"mat-form-field",25),o.qZA(),o._UZ(21,"div",26),o.YNc(22,Ph,3,2,"div",27),o.TgZ(23,"div",28),o.TgZ(24,"button",29),o._uU(25,"Clear Fields"),o.qZA(),o.TgZ(26,"button",30),o._uU(27,"Send Funds"),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(3),o.Q6J("ngModel",e.transactionAddress),o.xp6(2),o.Q6J("ngIf",!e.transactionAddress),o.xp6(2),o.Q6J("ngModel",e.transactionAmount)("step",100)("min",0),o.xp6(3),o.hij(" ",e.selAmountUnit," "),o.xp6(1),o.Q6J("ngIf",!e.transactionAmount),o.xp6(2),o.Q6J("value",e.selAmountUnit),o.xp6(1),o.Q6J("ngForOf",e.amountUnits),o.xp6(3),o.Q6J("value",e.selTransType),o.xp6(1),o.Q6J("ngForOf",e.transTypes),o.xp6(1),o.Q6J("ngIf","1"===e.selTransType),o.xp6(1),o.Q6J("ngIf","2"===e.selTransType),o.xp6(2),o.Q6J("ngIf",""!==e.sendFundError)}}function Gh(e,t){if(1&e&&o._uU(0),2&e){const e=o.oxw(3);o.Oqu(e.passwordFormLabel)}}function Hh(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Password is required."),o.qZA())}function zh(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"mat-step",42),o.TgZ(1,"form",61),o.YNc(2,Gh,1,1,"ng-template",55),o.TgZ(3,"div",0),o.TgZ(4,"mat-form-field",1),o._UZ(5,"input",62),o.YNc(6,Hh,2,0,"mat-error",14),o.qZA(),o.qZA(),o.TgZ(7,"div",63),o.TgZ(8,"button",64),o.NdJ("click",function(){return o.CHM(e),o.oxw(2).onAuthenticate()}),o._uU(9,"Confirm"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw(2);o.Q6J("stepControl",e.passwordFormGroup)("editable",e.flgEditable),o.xp6(1),o.Q6J("formGroup",e.passwordFormGroup),o.xp6(5),o.Q6J("ngIf",null==e.passwordFormGroup.controls.password.errors?null:e.passwordFormGroup.controls.password.errors.required)}}function Vh(e,t){if(1&e&&o._uU(0),2&e){const e=o.oxw(2);o.Oqu(e.sendFundFormLabel)}}function Wh(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Bitcoin address is required."),o.qZA())}function Xh(e,t){if(1&e&&(o.TgZ(0,"mat-option",31),o._uU(1),o.qZA()),2&e){const e=t.$implicit;o.Q6J("value",e.id),o.xp6(1),o.hij(" ",e.name," ")}}function $h(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Number of blocks is required."),o.qZA())}function jh(e,t){if(1&e&&(o.TgZ(0,"mat-form-field",65),o._UZ(1,"input",66),o.YNc(2,$h,2,0,"mat-error",14),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("step",1)("min",0),o.xp6(1),o.Q6J("ngIf",null==e.sendFundFormGroup.controls.transactionBlocks.errors?null:e.sendFundFormGroup.controls.transactionBlocks.errors.required)}}function Kh(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Fees is required."),o.qZA())}function em(e,t){if(1&e&&(o.TgZ(0,"mat-form-field",65),o._UZ(1,"input",67),o.YNc(2,Kh,2,0,"mat-error",14),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("step",1)("min",0),o.xp6(1),o.Q6J("ngIf",null==e.sendFundFormGroup.controls.transactionFees.errors?null:e.sendFundFormGroup.controls.transactionFees.errors.required)}}function tm(e,t){if(1&e&&o._uU(0),2&e){const e=o.oxw(2);o.Oqu(e.confirmFormLabel)}}function nm(e,t){if(1&e&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&e){const e=o.oxw(3);o.xp6(1),o.Oqu(e.sendFundError)}}function am(e,t){if(1&e&&(o.TgZ(0,"div",36),o._UZ(1,"fa-icon",37),o.YNc(2,nm,2,1,"span",14),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("icon",e.faExclamationTriangle),o.xp6(1),o.Q6J("ngIf",""!==e.sendFundError)}}function im(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",38),o.TgZ(1,"mat-vertical-stepper",39,40),o.NdJ("selectionChange",function(t){return o.CHM(e),o.oxw().stepSelectionChanged(t)}),o.YNc(3,zh,10,4,"mat-step",41),o.TgZ(4,"mat-step",42),o.TgZ(5,"form",43),o.YNc(6,Vh,1,1,"ng-template",44),o.TgZ(7,"div",45),o.TgZ(8,"mat-form-field",46),o._UZ(9,"input",47),o.YNc(10,Wh,2,0,"mat-error",14),o.qZA(),o.TgZ(11,"mat-form-field",48),o.TgZ(12,"mat-select",49),o.YNc(13,Xh,2,2,"mat-option",21),o.qZA(),o.qZA(),o.YNc(14,jh,3,3,"mat-form-field",50),o.YNc(15,em,3,3,"mat-form-field",50),o.qZA(),o.TgZ(16,"div",51),o.TgZ(17,"button",52),o._uU(18,"Next"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(19,"mat-step",53),o.TgZ(20,"form",54),o.YNc(21,tm,1,1,"ng-template",55),o.TgZ(22,"div",38),o.TgZ(23,"div",56),o._UZ(24,"fa-icon",57),o.TgZ(25,"span"),o._uU(26,"You are about to sweep all funds from RTL. Are you sure?"),o.qZA(),o.qZA(),o.YNc(27,am,3,2,"div",27),o.TgZ(28,"div",51),o.TgZ(29,"button",58),o.NdJ("click",function(){return o.CHM(e),o.oxw().onSendFunds()}),o._uU(30,"Sweep All Funds"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(31,"div",59),o.TgZ(32,"button",60),o._uU(33),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(1),o.Q6J("linear",!0),o.xp6(2),o.Q6J("ngIf",!e.appConfig.sso.rtlSSO),o.xp6(1),o.Q6J("stepControl",e.sendFundFormGroup)("editable",e.flgEditable),o.xp6(1),o.Q6J("formGroup",e.sendFundFormGroup),o.xp6(5),o.Q6J("ngIf",null==e.sendFundFormGroup.controls.transactionAddress.errors?null:e.sendFundFormGroup.controls.transactionAddress.errors.required),o.xp6(3),o.Q6J("ngForOf",e.transTypes),o.xp6(1),o.Q6J("ngIf","1"===e.sendFundFormGroup.controls.selTransType.value),o.xp6(1),o.Q6J("ngIf","2"===e.sendFundFormGroup.controls.selTransType.value),o.xp6(4),o.Q6J("stepControl",e.confirmFormGroup),o.xp6(1),o.Q6J("formGroup",e.confirmFormGroup),o.xp6(4),o.Q6J("icon",e.faExclamationTriangle),o.xp6(3),o.Q6J("ngIf",""!==e.sendFundError),o.xp6(5),o.Q6J("mat-dialog-close",!1),o.xp6(1),o.Oqu(e.flgValidated?"Close":"Cancel")}}let sm=(()=>{class e{constructor(e,t,n,a,i,s,o,l,r,c){this.dialogRef=e,this.data=t,this.logger=n,this.store=a,this.rtlEffects=i,this.commonService=s,this.decimalPipe=o,this.snackBar=l,this.actions=r,this.formBuilder=c,this.faExclamationTriangle=g.eHv,this.sweepAll=!1,this.selNode={},this.addressTypes=[],this.selectedAddress={},this.blockchainBalance={},this.information={},this.newAddress="",this.transactionAddress="",this.transactionAmount=null,this.transactionFees=null,this.transactionBlocks=null,this.transTypes=[{id:"1",name:"Target Confirmation Blocks"},{id:"2",name:"Fee"}],this.selTransType="1",this.fiatConversion=!1,this.amountUnits=f.uA,this.selAmountUnit=f.uA[0],this.currConvertorRate={},this.unitConversionValue=0,this.currencyUnitFormats=f.Xz,this.sendFundError="",this.flgValidated=!1,this.flgEditable=!0,this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds",this.confirmFormLabel="Confirm sweep",this.amountError="Amount is Required.",this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.sweepAll=this.data.sweepAll,this.passwordFormGroup=this.formBuilder.group({hiddenPassword:["",[Ae.kI.required]],password:["",[Ae.kI.required]]}),this.sendFundFormGroup=this.formBuilder.group({transactionAddress:["",Ae.kI.required],transactionBlocks:[null],transactionFees:[null],selTransType:["1",Ae.kI.required]}),this.confirmFormGroup=this.formBuilder.group({}),this.sendFundFormGroup.controls.selTransType.valueChanges.pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{"1"===e?(this.sendFundFormGroup.controls.transactionBlocks.setValidators([Ae.kI.required]),this.sendFundFormGroup.controls.transactionBlocks.setValue(null),this.sendFundFormGroup.controls.transactionFees.setValidators(null),this.sendFundFormGroup.controls.transactionFees.setValue(null)):(this.sendFundFormGroup.controls.transactionBlocks.setValidators(null),this.sendFundFormGroup.controls.transactionBlocks.setValue(null),this.sendFundFormGroup.controls.transactionFees.setValidators([Ae.kI.required]),this.sendFundFormGroup.controls.transactionFees.setValue(null))}),this.store.select("root").pipe((0,d.R)(this.unSubs[1])).subscribe(e=>{this.fiatConversion=e.selNode.settings.fiatConversion,this.amountUnits=e.selNode.settings.currencyUnits,this.appConfig=e.appConfig,this.nodeData=e.nodeData,this.logger.info(e)}),this.actions.pipe((0,d.R)(this.unSubs[2]),(0,h.h)(e=>e.type===x.JE||e.type===x.__)).subscribe(e=>{e.type===x.__&&(this.store.dispatch(new ee.Lw(this.sweepAll?"All Funds Sent Successfully!":"Fund Sent Successfully!")),this.dialogRef.close()),e.type===x.JE&&e.payload.status===f.Bn.ERROR&&"SetChannelTransaction"===e.payload.action&&(this.sendFundError=e.payload.message)})}onAuthenticate(){if(!this.passwordFormGroup.controls.password.value)return!0;this.flgValidated=!1,this.store.dispatch(new ee.ZF(Lh(this.passwordFormGroup.controls.password.value))),this.rtlEffects.isAuthorizedRes.pipe((0,pt.q)(1)).subscribe(e=>{"ERROR"!==e?(this.passwordFormGroup.controls.hiddenPassword.setValue(this.passwordFormGroup.controls.password.value),this.stepper.next()):(this.dialogRef.close(),this.snackBar.open("Unauthorized User. Logging out from RTL."))})}onSendFunds(){if(this.invalidValues)return!0;this.sendFundError="";const e={amount:this.transactionAmount?this.transactionAmount:0,sendAll:this.sweepAll};this.sweepAll?(e.address=this.sendFundFormGroup.controls.transactionAddress.value,"1"===this.sendFundFormGroup.controls.selTransType.value&&(e.blocks=this.sendFundFormGroup.controls.transactionBlocks.value),"2"===this.sendFundFormGroup.controls.selTransType.value&&(e.fees=this.sendFundFormGroup.controls.transactionFees.value)):(e.address=this.transactionAddress,"1"===this.selTransType&&(e.blocks=this.transactionBlocks),"2"===this.selTransType&&(e.fees=this.transactionFees)),this.transactionAmount&&this.selAmountUnit!==f.NT.SATS?this.commonService.convertCurrency(this.transactionAmount,this.selAmountUnit===this.amountUnits[2]?f.NT.OTHER:this.selAmountUnit,f.NT.SATS,this.amountUnits[2],this.fiatConversion).pipe((0,d.R)(this.unSubs[3])).subscribe({next:t=>{this.selAmountUnit=f.NT.SATS,e.amount=+this.decimalPipe.transform(t[this.amountUnits[0]],this.currencyUnitFormats[this.amountUnits[0]]).replace(/,/g,""),this.store.dispatch(new x.uj(e))},error:e=>{this.transactionAmount=null,this.selAmountUnit=f.NT.SATS,this.amountError="Conversion Error: "+e}}):this.store.dispatch(new x.uj(e))}get invalidValues(){return this.sweepAll?!this.sendFundFormGroup.controls.transactionAddress.value||""===this.sendFundFormGroup.controls.transactionAddress.value||"1"===this.sendFundFormGroup.controls.selTransType.value&&(!this.sendFundFormGroup.controls.transactionBlocks.value||this.sendFundFormGroup.controls.transactionBlocks.value<=0)||"2"===this.sendFundFormGroup.controls.selTransType.value&&(!this.sendFundFormGroup.controls.transactionFees.value||this.sendFundFormGroup.controls.transactionFees.value<=0):!this.transactionAddress||""===this.transactionAddress||!this.transactionAmount||this.transactionAmount<=0||"1"===this.selTransType&&(!this.transactionBlocks||this.transactionBlocks<=0)||"2"===this.selTransType&&(!this.transactionFees||this.transactionFees<=0)}resetData(){this.sendFundError="",this.selTransType="1",this.transactionAddress="",this.transactionBlocks=null,this.transactionFees=null,this.sweepAll||(this.transactionAmount=null)}stepSelectionChanged(e){switch(this.sendFundError="",e.selectedIndex){case 0:this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds";break;case 1:this.passwordFormLabel="User authenticated successfully",this.sendFundFormLabel="Sweep funds";break;case 2:this.passwordFormLabel="User authenticated successfully",this.sendFundFormLabel="Sweep funds | Address: "+this.sendFundFormGroup.controls.transactionAddress.value+" | "+this.transTypes[this.sendFundFormGroup.controls.selTransType.value-1].name+("2"===this.sendFundFormGroup.controls.selTransType.value?" (Sats/vByte)":"")+": "+("1"===this.sendFundFormGroup.controls.selTransType.value?this.sendFundFormGroup.controls.transactionBlocks.value:this.sendFundFormGroup.controls.transactionFees.value);break;default:this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds"}e.selectedIndex{this.selAmountUnit=e.value,t.transactionAmount=+t.decimalPipe.transform(n[a],t.currencyUnitFormats[a]).replace(/,/g,"")},error:e=>{t.transactionAmount=null,this.amountError="Conversion Error: "+e,this.selAmountUnit=n,a=n}})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(ye.so),o.Y36(ye.WI),o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(St.V),o.Y36(C.v),o.Y36(a.JJ),o.Y36(Ai.ux),o.Y36(A.eX),o.Y36(Ae.qu))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-on-chain-send-modal"]],viewQuery:function(e,t){if(1&e&&(o.Gf(kh,7),o.Gf(Nh,5),o.Gf(Uh,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.form=e.first),o.iGM(e=o.CRH())&&(t.formSweepAll=e.first),o.iGM(e=o.CRH())&&(t.stepper=e.first)}},decls:12,vars:4,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100","class","overflow-x-hidden",3,"submit","reset",4,"ngIf","ngIfElse"],["sweepAllBlock",""],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100",1,"overflow-x-hidden",3,"submit","reset"],["form","ngForm"],["fxFlex.gt-sm","55"],["autoFocus","","matInput","","placeholder","Bitcoin Address","tabindex","1","name","address","required","",3,"ngModel","ngModelChange"],["address","ngModel"],[4,"ngIf"],["fxFlex.gt-sm","30"],["matInput","","placeholder","Amount","name","amt","type","number","tabindex","2","required","",3,"ngModel","step","min","ngModelChange"],["amnt","ngModel"],["matSuffix",""],["fxFlex.gt-sm","10","fxLayoutAlign","start end"],["tabindex","3","required","","name","amountUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxFlex.gt-sm","60","fxLayout.gt-sm","row wrap","fxLayoutAlign","start stretch","fxLayoutAlign.gt-sm","space-between start"],["fxFlex","48"],["tabindex","4",3,"value","valueChange"],["fxFlex","48",4,"ngIf"],["fxLayout","column","fxFlex","100","fxFlex.gt-sm","40","fxLayout.gt-sm","row wrap","fxLayoutAlign","start stretch","fxLayoutAlign.gt-sm","space-between start"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["mat-flat-button","","color","primary","type","submit","tabindex","8"],[3,"value"],["matInput","","placeholder","Number of Blocks","type","number","name","blcks","required","","tabindex","5",3,"ngModel","step","min","ngModelChange"],["blocks","ngModel"],["matInput","","placeholder","Fees (Sats/vByte)","type","number","name","chainFees","required","","tabindex","6",3,"ngModel","step","min","ngModelChange"],["fees","ngModel"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl","editable"],["fxLayout","column",1,"my-1","pr-1",3,"formGroup"],["matStepLabel","","disabled","true"],["fxLayout","column","fxFlex","98","fxLayout.gt-sm","row wrap","fxLayoutAlign","start stretch","fxLayoutAlign.gt-sm","space-between start"],["fxFlex.gt-sm","45"],["matInput","","formControlName","transactionAddress","placeholder","Bitcoin Address","tabindex","4","name","address","required",""],["fxFlex.gt-sm","25"],["formControlName","selTransType","tabindex","5"],["fxFlex.gt-sm","25","fxLayoutAlign","start end",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","8","type","button","matStepperNext",""],[3,"stepControl"],["fxLayout","column","fxLayoutAlign","start",1,"my-1","pr-1",3,"formGroup"],["matStepLabel",""],["fxFlex","100",1,"w-100","alert","alert-warn"],[1,"mt-1","mr-1","alert-icon",3,"icon"],["mat-stroked-button","","color","primary","tabindex","9","type","button",3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxLayout","column","fxLayoutAlign","space-between",1,"my-1","pr-1",3,"formGroup"],["autoFocus","","matInput","","placeholder","Password","type","password","tabindex","1","formControlName","password","required",""],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","button",3,"click"],["fxFlex.gt-sm","25","fxLayoutAlign","start end"],["matInput","","formControlName","transactionBlocks","placeholder","Number of Blocks","type","number","name","blcks","required","","tabindex","6",3,"step","min"],["matInput","","formControlName","transactionFees","placeholder","Fees (Sats/vByte)","type","number","name","chainFees","required","","tabindex","7",3,"step","min"]],template:function(e,t){if(1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"mat-card-header",2),o.TgZ(3,"div",3),o.TgZ(4,"span",4),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"button",5),o._uU(7,"X"),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",6),o.YNc(9,Bh,28,14,"form",7),o.qZA(),o.qZA(),o.qZA(),o.YNc(10,im,34,15,"ng-template",null,8,o.W1O)),2&e){const e=o.MAs(11);o.xp6(5),o.Oqu(t.sweepAll?"Sweep All Funds":"Send Funds"),o.xp6(1),o.Q6J("mat-dialog-close",!1),o.xp6(3),o.Q6J("ngIf",!t.sweepAll)("ngIfElse",e)}},directives:[l.xw,l.yH,w.dk,l.Wh,q.lW,ye.ZT,w.dn,a.O5,Ae._Y,Ae.JL,Ae.F,D.KE,Ce.Nt,Ae.Fj,Te.h,Ae.Q7,Ae.JJ,Ae.On,Ae.wV,Ae.qQ,be.q,D.R9,we.gD,a.sg,D.TO,ve.ey,T.BN,La.Vq,La.C0,Ae.sg,La.VY,Ae.u,La.Ic],styles:[""]}),e})(),om=(()=>{class e{constructor(e,t){this.store=e,this.activatedRoute=t,this.sweepAll=!1,this.unSubs=[new p.x,new p.x]}ngOnInit(){this.activatedRoute.data.pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.sweepAll=e.sweepAll})}openSendFundsModal(){this.store.dispatch(new ee.wu({data:{sweepAll:this.sweepAll,component:sm}}))}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(y.yh),o.Y36(i.gz))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-on-chain-send"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"button",2),o.NdJ("click",function(){return t.openSendFundsModal()}),o._uU(3),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(3),o.Oqu(t.sweepAll?"Sweep All":"Send Funds"))},directives:[l.xw,l.yH,l.Wh,q.lW],styles:[""]}),e})();function lm(e,t){1&e&&o._UZ(0,"mat-progress-bar",26)}function rm(e,t){if(1&e&&o._UZ(0,"rtl-node-info",27),2&e){const e=o.oxw(3);o.Q6J("information",e.information)("showColorFieldSeparately",!0)}}function cm(e,t){if(1&e&&o._UZ(0,"rtl-channel-status-info",28),2&e){const e=o.oxw(3);o.Q6J("channelsStatus",e.channelsStatus)("errorMessage",e.errorMessages[3]+" "+e.errorMessages[4])}}function um(e,t){if(1&e&&o._UZ(0,"rtl-fee-info",29),2&e){const e=o.oxw(3);o.Q6J("fees",e.fees)("errorMessage",e.errorMessages[2])}}const pm=function(e){return{"dashboard-card-content":!0,"error-border":e}};function dm(e,t){if(1&e&&(o.TgZ(0,"mat-grid-tile",13),o.TgZ(1,"div",14),o.TgZ(2,"div",15),o.TgZ(3,"div",16),o._UZ(4,"fa-icon",17),o.TgZ(5,"span"),o._uU(6),o.qZA(),o.qZA(),o.qZA(),o.TgZ(7,"div",18),o.TgZ(8,"mat-card",19),o.TgZ(9,"mat-card-content",20),o.YNc(10,lm,1,0,"mat-progress-bar",21),o.TgZ(11,"div",22),o.YNc(12,rm,1,2,"rtl-node-info",23),o.YNc(13,cm,1,2,"rtl-channel-status-info",24),o.YNc(14,um,1,2,"rtl-fee-info",25),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=t.$implicit,n=o.oxw(2);o.Q6J("colspan",e.cols)("rowspan",e.rows),o.xp6(4),o.Q6J("icon",e.icon),o.xp6(2),o.Oqu(e.title),o.xp6(3),o.Q6J("ngClass",o.VKq(10,pm,"node"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.ERROR||"status"===e.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.ERROR||n.apisCallStatus.FetchPendingChannels.status===n.apiCallStatusEnum.ERROR)||"fee"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.ERROR)),o.xp6(1),o.Q6J("ngIf","node"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchInfo.status)===n.apiCallStatusEnum.INITIATED||"status"===e.id&&((null==n.apisCallStatus?null:n.apisCallStatus.FetchAllChannels.status)===n.apiCallStatusEnum.INITIATED||n.apisCallStatus.FetchPendingChannels.status===n.apiCallStatusEnum.INITIATED)||"fee"===e.id&&(null==n.apisCallStatus?null:n.apisCallStatus.FetchFees.status)===n.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngSwitch",e.id),o.xp6(1),o.Q6J("ngSwitchCase","node"),o.xp6(1),o.Q6J("ngSwitchCase","status"),o.xp6(1),o.Q6J("ngSwitchCase","fee")}}function hm(e,t){if(1&e&&(o.TgZ(0,"mat-grid-list",11),o.YNc(1,dm,15,12,"mat-grid-tile",12),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngForOf",e.nodeCards)}}function mm(e,t){1&e&&o._UZ(0,"mat-progress-bar",26)}function gm(e,t){1&e&&o.GkF(0)}function fm(e,t){if(1&e&&(o.TgZ(0,"div",33),o.YNc(1,gm,1,0,"ng-container",34),o.qZA()),2&e){const e=o.oxw(2),t=o.MAs(9),n=o.MAs(11);o.xp6(1),o.Q6J("ngTemplateOutlet",(null==e.apisCallStatus?null:e.apisCallStatus.FetchNetwork.status)===e.apiCallStatusEnum.ERROR?t:n)}}function xm(e,t){1&e&&o.GkF(0)}function Zm(e,t){if(1&e&&(o.TgZ(0,"div",33),o.YNc(1,xm,1,0,"ng-container",34),o.qZA()),2&e){const e=o.oxw(2),t=o.MAs(9),n=o.MAs(13);o.xp6(1),o.Q6J("ngTemplateOutlet",(null==e.apisCallStatus?null:e.apisCallStatus.FetchNetwork.status)===e.apiCallStatusEnum.ERROR?t:n)}}function ym(e,t){1&e&&o.GkF(0)}function Am(e,t){if(1&e&&(o.TgZ(0,"div",33),o.YNc(1,ym,1,0,"ng-container",34),o.qZA()),2&e){const e=o.oxw(2),t=o.MAs(9),n=o.MAs(15);o.xp6(1),o.Q6J("ngTemplateOutlet",(null==e.apisCallStatus?null:e.apisCallStatus.FetchNetwork.status)===e.apiCallStatusEnum.ERROR?t:n)}}function Cm(e,t){if(1&e&&(o.TgZ(0,"mat-grid-tile",30),o.TgZ(1,"mat-card",31),o.TgZ(2,"mat-card-content",20),o.YNc(3,mm,1,0,"mat-progress-bar",21),o.TgZ(4,"div",22),o.YNc(5,fm,2,1,"div",32),o.YNc(6,Zm,2,1,"div",32),o.YNc(7,Am,2,1,"div",32),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("colspan",e.cols)("rowspan",e.rows),o.xp6(2),o.Q6J("ngClass",o.VKq(8,pm,(null==n.apisCallStatus?null:n.apisCallStatus.FetchNetwork.status)===n.apiCallStatusEnum.ERROR)),o.xp6(1),o.Q6J("ngIf",(null==n.apisCallStatus?null:n.apisCallStatus.FetchNetwork.status)===n.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngSwitch",e.id),o.xp6(1),o.Q6J("ngSwitchCase","general"),o.xp6(1),o.Q6J("ngSwitchCase","channels"),o.xp6(1),o.Q6J("ngSwitchCase","degrees")}}function Tm(e,t){if(1&e&&(o.TgZ(0,"div",35),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.Oqu(e.errorMessages[1])}}function bm(e,t){if(1&e&&(o.TgZ(0,"div",36),o.TgZ(1,"div"),o.TgZ(2,"h4",37),o._uU(3,"Network Capacity"),o.qZA(),o.TgZ(4,"div",38),o._uU(5),o.ALo(6,"number"),o.qZA(),o.qZA(),o.TgZ(7,"div"),o.TgZ(8,"h4",37),o._uU(9,"Number of Nodes"),o.qZA(),o.TgZ(10,"div",38),o._uU(11),o.ALo(12,"number"),o.qZA(),o.qZA(),o.TgZ(13,"div"),o.TgZ(14,"h4",37),o._uU(15,"Number of Channels"),o.qZA(),o.TgZ(16,"span",38),o._uU(17),o.ALo(18,"number"),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(5),o.hij("",o.lcZ(6,3,e.networkInfo.total_network_capacity)," Sats"),o.xp6(6),o.Oqu(o.lcZ(12,5,e.networkInfo.num_nodes)),o.xp6(6),o.Oqu(o.lcZ(18,7,e.networkInfo.num_channels))}}function wm(e,t){if(1&e&&(o.TgZ(0,"div",36),o.TgZ(1,"div"),o.TgZ(2,"h4",37),o._uU(3,"Max Channel Size"),o.qZA(),o.TgZ(4,"div",38),o._uU(5),o.ALo(6,"number"),o.qZA(),o.qZA(),o.TgZ(7,"div"),o.TgZ(8,"h4",37),o._uU(9,"Avg Channel Size"),o.qZA(),o.TgZ(10,"div",38),o._uU(11),o.ALo(12,"number"),o.qZA(),o.qZA(),o.TgZ(13,"div"),o.TgZ(14,"h4",37),o._uU(15,"Min Channel Size"),o.qZA(),o.TgZ(16,"span",38),o._uU(17),o.ALo(18,"number"),o.qZA(),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(5),o.Oqu(o.lcZ(6,3,e.networkInfo.max_channel_size)),o.xp6(6),o.Oqu(o.lcZ(12,5,e.networkInfo.avg_channel_size)),o.xp6(6),o.Oqu(o.lcZ(18,7,e.networkInfo.min_channel_size))}}function _m(e,t){if(1&e&&(o.TgZ(0,"div",36),o.TgZ(1,"div"),o.TgZ(2,"h4",37),o._uU(3,"Max Out Degree"),o.qZA(),o.TgZ(4,"div",38),o._uU(5),o.ALo(6,"number"),o.qZA(),o.qZA(),o.TgZ(7,"div"),o.TgZ(8,"h4",37),o._uU(9,"Avg Out Degree"),o.qZA(),o.TgZ(10,"div",38),o._uU(11),o.ALo(12,"number"),o.qZA(),o.qZA(),o.TgZ(13,"div",39),o._UZ(14,"h4",37),o._UZ(15,"span",38),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(5),o.Oqu(o.lcZ(6,2,e.networkInfo.max_out_degree)),o.xp6(6),o.Oqu(o.xi3(12,4,e.networkInfo.avg_out_degree,"1.0-2"))}}const vm=function(e){return{"mt-1":e}};let qm=(()=>{class e{constructor(e,t,n){this.logger=e,this.commonService=t,this.store=n,this.faProjectDiagram=g.o4t,this.faBolt=g.BDt,this.faServer=g.xf3,this.faNetworkWired=g.kXW,this.selNode={},this.information={},this.channelsStatus={},this.networkInfo={},this.networkCards=[],this.nodeCards=[],this.screenSize="",this.screenSizeEnum=f.cu,this.userPersonaEnum=f.ol,this.errorMessages=["","","","",""],this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===f.cu.XS?(this.networkCards=[{id:"general",cols:3,rows:1},{id:"channels",cols:3,rows:1},{id:"degrees",cols:3,rows:1}],this.nodeCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:3,rows:1},{id:"status",icon:this.faNetworkWired,title:"Channels",cols:3,rows:1},{id:"fee",icon:this.faBolt,title:"Routing Fee",cols:3,rows:1}]):(this.networkCards=[{id:"general",cols:1,rows:1},{id:"channels",cols:1,rows:1},{id:"degrees",cols:1,rows:1}],this.nodeCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:1,rows:1},{id:"status",icon:this.faNetworkWired,title:"Channels",cols:1,rows:1},{id:"fee",icon:this.faBolt,title:"Routing Fee",cols:1,rows:1}])}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessages=["","","","",""],this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchInfo.status===f.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apisCallStatus.FetchInfo.message?JSON.stringify(this.apisCallStatus.FetchInfo.message):this.apisCallStatus.FetchInfo.message),e.apisCallStatus.FetchNetwork.status===f.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apisCallStatus.FetchNetwork.message?JSON.stringify(this.apisCallStatus.FetchNetwork.message):this.apisCallStatus.FetchNetwork.message),e.apisCallStatus.FetchFees.status===f.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apisCallStatus.FetchFees.message?JSON.stringify(this.apisCallStatus.FetchFees.message):this.apisCallStatus.FetchFees.message),e.apisCallStatus.FetchAllChannels.status===f.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apisCallStatus.FetchAllChannels.message?JSON.stringify(this.apisCallStatus.FetchAllChannels.message):this.apisCallStatus.FetchAllChannels.message),e.apisCallStatus.FetchPendingChannels.status===f.Bn.ERROR&&(this.errorMessages[4]="object"==typeof this.apisCallStatus.FetchPendingChannels.message?JSON.stringify(this.apisCallStatus.FetchPendingChannels.message):this.apisCallStatus.FetchPendingChannels.message),this.selNode=e.nodeSettings,this.information=e.information,this.networkInfo=e.networkInfo,this.fees=e.fees,this.channelsStatus={active:{channels:e.numberOfActiveChannels,capacity:e.totalCapacityActive},inactive:{channels:e.numberOfInactiveChannels,capacity:e.totalCapacityInactive},pending:{channels:e.numberOfPendingChannels.open.num_channels,capacity:e.numberOfPendingChannels.open.limbo_balance},closing:{channels:e.numberOfPendingChannels.closing.num_channels+e.numberOfPendingChannels.force_closing.num_channels+e.numberOfPendingChannels.waiting_close.num_channels,capacity:e.numberOfPendingChannels.total_limbo_balance}},this.logger.info(e)})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(C.v),o.Y36(y.yh))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-network-info"]],decls:16,vars:6,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch",1,"mb-4"],["cols","3","rowHeight","330px",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container",3,"ngClass"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["cols","3","rowHeight","250px"],["fxLayout","row",3,"colspan","rowspan",4,"ngFor","ngForOf"],["errorBlock",""],["generalBlock",""],["channelsBlock",""],["degreesBlock",""],["cols","3","rowHeight","330px"],["class","node-grid-tile",3,"colspan","rowspan",4,"ngFor","ngForOf"],[1,"node-grid-tile",3,"colspan","rowspan"],["fxLayout","column","fxLayoutAlign","stretch start","fxFlex","100",1,"h-100"],["fxLayout","row","fxLayoutAlign","start start",1,"w-100"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container"],[1,"mr-1",3,"icon"],["fxLayout","column","fxLayoutAlign","stretch center","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","center stretch",1,"w-100","h-93"],["fxLayout","row","fxFlex","95","fxLayoutAlign","start stretch",1,"dashboard-card","w-96","h-93"],["fxLayout","column","fxFlex","100",3,"ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],["fxLayout","row",3,"colspan","rowspan"],["fxLayout","row","fxFlex","95","fxLayoutAlign","start stretch",1,"dashboard-card","h-93"],["fxFlex","100",4,"ngSwitchCase"],["fxFlex","100"],[4,"ngTemplateOutlet"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between"],[1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["fxFlex","20"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.YNc(1,hm,2,1,"mat-grid-list",1),o.TgZ(2,"div",2),o._UZ(3,"fa-icon",3),o.TgZ(4,"span",4),o._uU(5,"Network"),o.qZA(),o.qZA(),o.TgZ(6,"mat-grid-list",5),o.YNc(7,Cm,8,10,"mat-grid-tile",6),o.qZA(),o.qZA(),o.YNc(8,Tm,3,1,"ng-template",null,7,o.W1O),o.YNc(10,bm,19,9,"ng-template",null,8,o.W1O),o.YNc(12,wm,19,9,"ng-template",null,9,o.W1O),o.YNc(14,_m,16,7,"ng-template",null,10,o.W1O)),2&e&&(o.xp6(1),o.Q6J("ngIf",t.selNode.userPersona!==t.userPersonaEnum.OPERATOR),o.xp6(1),o.Q6J("ngClass",o.VKq(4,vm,t.screenSize!==t.screenSizeEnum.XS)),o.xp6(1),o.Q6J("icon",t.faProjectDiagram),o.xp6(4),o.Q6J("ngForOf",t.networkCards))},directives:[l.xw,l.Wh,a.O5,a.mk,v.oO,T.BN,b.Il,a.sg,b.DX,l.yH,w.a8,w.dn,a.RF,a.n9,r.pW,U,j,W,a.tP],pipes:[a.JJ],styles:[""]}),e})();function Sm(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",8),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().activeLink=t.link}),o._uU(1),o.qZA()}if(2&e){const e=t.$implicit,n=o.oxw();o.s9C("routerLink",e.link),o.Q6J("active",n.activeLink===e.link),o.xp6(1),o.Oqu(e.name)}}let Fm=(()=>{class e{constructor(e){this.router=e,this.faDownload=g.q7m,this.links=[{link:"bckup",name:"Backup"},{link:"restore",name:"Restore"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x]}ngOnInit(){const e=this.links.find(e=>this.router.url.includes(e.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e instanceof i.Av)).subscribe(e=>{const t=this.links.find(t=>e.urlAfterRedirects.includes(t.link));this.activeLink=t?t.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-backup"]],decls:11,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Channels Backup"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o.TgZ(7,"nav",5),o.YNc(8,Sm,2,3,"div",6),o.qZA(),o.TgZ(9,"div",7),o._UZ(10,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(1),o.Q6J("icon",t.faDownload),o.xp6(7),o.Q6J("ngForOf",t.links))},directives:[l.xw,l.Wh,T.BN,w.a8,w.dn,ge.BU,a.sg,l.yH,i.lC,ge.Nj,i.rH],styles:[""]}),e})();function Lm(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",23),o.TgZ(1,"h4",24),o._uU(2),o.qZA(),o.TgZ(3,"div",25),o.TgZ(4,"button",26),o.NdJ("click",function(){return o.CHM(e),o.oxw().onRestoreChannels({})}),o._uU(5,"Restore All"),o.qZA(),o.qZA(),o.qZA()}if(2&e){const e=o.oxw();o.xp6(2),o.hij("Restore folder location: ",e.selNode.channelBackupPath,"/restore")}}function km(e,t){if(1&e&&(o.TgZ(0,"div",27),o.TgZ(1,"h4",24),o._uU(2),o.qZA(),o.TgZ(3,"h4",28),o._uU(4,"All channel backup file not found! To perform channel restoration, channel backup file/s must be placed at the above location."),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.hij("Restore folder location: ",e.selNode.channelBackupPath,"/restore")}}function Nm(e,t){if(1&e&&(o.TgZ(0,"div",27),o.TgZ(1,"h4",24),o._uU(2),o.qZA(),o.qZA()),2&e){const e=o.oxw();o.xp6(2),o.hij("Restore folder location: ",e.selNode.channelBackupPath,"/restore")}}function Um(e,t){1&e&&o._UZ(0,"mat-progress-bar",29)}function Im(e,t){1&e&&(o.TgZ(0,"th",30),o._uU(1," Channel Point "),o.qZA())}const Om=function(e){return{"max-width":e}};function Jm(e,t){if(1&e&&(o.TgZ(0,"td",31),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,Om,n.screenSize===n.screenSizeEnum.XS?"10rem":"45rem")),o.xp6(1),o.Oqu(null==e?null:e.channel_point)}}function Dm(e,t){1&e&&(o.TgZ(0,"th",32),o.TgZ(1,"span",33),o._uU(2,"Actions"),o.qZA(),o.qZA())}function Rm(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",34),o.TgZ(1,"span",33),o.TgZ(2,"button",35),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onRestoreChannels(t)}),o._uU(3,"Restore"),o.qZA(),o.qZA(),o.qZA()}}function Mm(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No singular channel backups available."),o.qZA())}function Em(e,t){if(1&e&&(o.TgZ(0,"td",36),o.YNc(1,Mm,2,0,"p",37),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",!e.channels||!e.channels.data||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)}}const Qm=function(e){return{"display-none":e}};function Ym(e,t){if(1&e&&o._UZ(0,"tr",38),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,Qm,e.channels&&e.channels.data&&(null==e.channels||null==e.channels.data?null:e.channels.data.length)>0))}}function Pm(e,t){1&e&&o._UZ(0,"tr",39)}function Bm(e,t){1&e&&o._UZ(0,"tr",40)}const Gm=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}},Hm=function(){return["no_channel"]};let zm=(()=>{class e{constructor(e,t,n,a){this.logger=e,this.store=t,this.lndEffects=n,this.commonService=a,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.selNode={},this.displayedColumns=["channel_point","actions"],this.channelsData=[],this.allRestoreExists=!1,this.flgLoading=[!0],this.flgSticky=!1,this.screenSize="",this.screenSizeEnum=f.cu,this.unSubs=[new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.store.dispatch(new x.gL),this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.selNode=e.nodeSettings,this.logger.info(e)}),this.lndEffects.setRestoreChannelList.pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.allRestoreExists=e.all_restore_exists,this.channelsData=e.files,this.channelsData.length>0&&this.loadRestoreTable(this.channelsData),("error"!==this.flgLoading[0]||e&&e.files)&&(this.flgLoading[0]=!1),this.logger.info(e)})}ngAfterViewInit(){this.channelsData&&this.channelsData.length>0&&this.loadRestoreTable(this.channelsData)}onRestoreChannels(e){this.store.dispatch(new x.Cd({channelPoint:e.channel_point?e.channel_point:"ALL"}))}applyFilter(e){this.channels.filter=e.value.trim().toLowerCase()}loadRestoreTable(e){this.channels=new Ze.by([...e]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.channels.filterPredicate=(e,t)=>JSON.stringify(e).toLowerCase().includes(t),this.channels.paginator=this.paginator}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(Ft.l),o.Y36(C.v))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-restore-table"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Channels")}])],decls:24,vars:16,consts:[["fxLayout","column",1,"mt-2"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxLayout","column","fxLayoutAlign","space-between start","fxLayout.gt-md","row wrap",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container","mt-2"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","channel_point"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pr-3",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["fxFlex","100"],["fxLayout","row",1,"mt-2"],["mat-flat-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxLayoutAlign","space-between start","fxLayout.gt-md","row wrap"],["fxFlex","100",1,"mt-1"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","",1,"pr-3"],["fxLayoutAlign","end center"],["mat-cell",""],["mat-stroked-button","","color","primary","type","button","tabindex","1",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.YNc(1,Lm,6,1,"div",1),o.YNc(2,km,5,1,"div",2),o.YNc(3,Nm,3,1,"div",2),o.TgZ(4,"div",3),o._UZ(5,"div",4),o.TgZ(6,"mat-form-field",5),o.TgZ(7,"input",6),o.NdJ("keyup",function(e){return t.applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"div",7),o.YNc(9,Um,1,0,"mat-progress-bar",8),o.TgZ(10,"table",9,10),o.ynx(12,11),o.YNc(13,Im,2,0,"th",12),o.YNc(14,Jm,2,4,"td",13),o.BQk(),o.ynx(15,14),o.YNc(16,Dm,3,0,"th",15),o.YNc(17,Rm,4,0,"td",16),o.BQk(),o.ynx(18,17),o.YNc(19,Em,2,1,"td",18),o.BQk(),o.YNc(20,Ym,1,3,"tr",19),o.YNc(21,Pm,1,0,"tr",20),o.YNc(22,Bm,1,0,"tr",21),o.qZA(),o.qZA(),o._UZ(23,"mat-paginator",22),o.qZA()),2&e&&(o.xp6(1),o.Q6J("ngIf",t.allRestoreExists),o.xp6(1),o.Q6J("ngIf",!t.allRestoreExists&&(!t.channels||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<=0)),o.xp6(1),o.Q6J("ngIf",!t.allRestoreExists&&t.channels&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0),o.xp6(6),o.Q6J("ngIf",!0===t.flgLoading[0]),o.xp6(1),o.Q6J("dataSource",t.channels)("ngClass",o.VKq(13,Gm,"error"===t.flgLoading[0])),o.xp6(10),o.Q6J("matFooterRowDef",o.DdM(15,Hm)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS))},directives:[l.xw,a.O5,l.Wh,l.yH,D.KE,Ce.Nt,E.$V,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,q.lW,r.pW,Ze.ge,xe.nU,Ze.ev,a.PC,v.Zl,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),e})();function Vm(e,t){1&e&&o._UZ(0,"mat-progress-bar",31)}function Wm(e,t){1&e&&(o.TgZ(0,"th",32),o._uU(1," Channel Point "),o.qZA())}const Xm=function(e){return{"max-width":e}};function $m(e,t){if(1&e&&(o.TgZ(0,"td",33),o._uU(1),o.qZA()),2&e){const e=t.$implicit,n=o.oxw();o.Q6J("ngStyle",o.VKq(2,Xm,n.screenSize===n.screenSizeEnum.XS?"10rem":"28rem")),o.xp6(1),o.Oqu(null==e?null:e.channel_point)}}function jm(e,t){1&e&&(o.TgZ(0,"th",34),o.TgZ(1,"span",35),o._uU(2,"Actions"),o.qZA(),o.qZA())}function Km(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"td",36),o.TgZ(1,"div",37),o.TgZ(2,"mat-select",38),o._UZ(3,"mat-select-trigger"),o.TgZ(4,"mat-option",39),o.NdJ("click",function(t){const n=o.CHM(e).$implicit;return o.oxw().onChannelClick(n,t)}),o._uU(5,"View Info"),o.qZA(),o.TgZ(6,"mat-option",39),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onBackupChannels(t)}),o._uU(7,"Backup"),o.qZA(),o.TgZ(8,"mat-option",39),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onDownloadBackup(t)}),o._uU(9,"Download Backup"),o.qZA(),o.TgZ(10,"mat-option",39),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().onVerifyChannels(t)}),o._uU(11,"Verify"),o.qZA(),o.qZA(),o.qZA(),o.qZA()}}function eg(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"No channel available."),o.qZA())}function tg(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Getting channels..."),o.qZA())}function ng(e,t){if(1&e&&(o.TgZ(0,"p"),o._uU(1),o.qZA()),2&e){const e=o.oxw(2);o.xp6(1),o.Oqu(e.errorMessage)}}function ag(e,t){if(1&e&&(o.TgZ(0,"td",40),o.YNc(1,eg,2,0,"p",41),o.YNc(2,tg,2,0,"p",41),o.YNc(3,ng,2,1,"p",41),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.COMPLETED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&(null==e.apisCallStatus?null:e.apisCallStatus.FetchAllChannels.status)===e.apiCallStatusEnum.ERROR)}}const ig=function(e){return{"display-none":e}};function sg(e,t){if(1&e&&o._UZ(0,"tr",42),2&e){const e=o.oxw();o.Q6J("ngClass",o.VKq(1,ig,(null==e.channels?null:e.channels.data)&&(null==e.channels||null==e.channels.data?null:e.channels.data.length)>0))}}function og(e,t){1&e&&o._UZ(0,"tr",43)}function lg(e,t){1&e&&o._UZ(0,"tr",44)}const rg=function(e){return{"overflow-auto error-border":e,"overflow-auto":!0}},cg=function(){return["no_channel"]};let ug=(()=>{class e{constructor(e,t,n,a){this.logger=e,this.store=t,this.actions=n,this.commonService=a,this.faInfoCircle=g.sqG,this.faExclamationTriangle=g.eHv,this.faArchive=g.N2j,this.pageSize=f.IV,this.pageSizeOptions=f.TJ,this.selNode={},this.displayedColumns=["channel_point","actions"],this.channelsData=[],this.flgSticky=!1,this.screenSize="",this.screenSizeEnum=f.cu,this.errorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=f.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.store.select("lnd").pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apisCallStatus=e.apisCallStatus,e.apisCallStatus.FetchAllChannels.status===f.Bn.ERROR&&(this.errorMessage="object"==typeof this.apisCallStatus.FetchAllChannels.message?JSON.stringify(this.apisCallStatus.FetchAllChannels.message):this.apisCallStatus.FetchAllChannels.message),this.selNode=e.nodeSettings,this.channelsData=e.allChannels,this.channelsData.length>0&&this.loadBackupTable(this.channelsData),this.logger.info(e)}),this.actions.pipe((0,d.R)(this.unSubs[1]),(0,h.h)(e=>e.type===x.P2||e.type===ee.BQ)).subscribe(e=>{e.type===x.P2&&(this.selectedChannel=null),e.type===ee.BQ&&(this.commonService.downloadFile(e.payload,"channel-"+(this.selectedChannel.channel_point?this.selectedChannel.channel_point:"all"),".bak",".bak"),this.selectedChannel=null)})}ngAfterViewInit(){this.channelsData.length>0&&this.loadBackupTable(this.channelsData)}onBackupChannels(e){this.store.dispatch(new x.FN({uiMessage:f.m6.BACKUP_CHANNEL,channelPoint:e.channel_point?e.channel_point:"ALL",showMessage:""}))}onVerifyChannels(e){this.store.dispatch(new x.gf({channelPoint:e.channel_point?e.channel_point:"ALL"}))}onDownloadBackup(e){this.selectedChannel=e,this.store.dispatch(new ee.nw({channelPoint:e.channel_point?e.channel_point:"all"}))}onChannelClick(e,t){this.store.dispatch(new ee.wu({data:{channel:e,showCopy:!1,component:Si}}))}applyFilter(e){this.channels.filter=e.value.trim().toLowerCase()}loadBackupTable(e){this.channels=new Ze.by(e?[...e]:[]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(e,t)=>e[t]&&isNaN(e[t])?e[t].toLocaleLowerCase():e[t]?+e[t]:null,this.channels.paginator=this.paginator,this.channels.filterPredicate=(e,t)=>((e.active?"active":"inactive")+(e.channel_point?e.channel_point.toLowerCase():"")+(e.chan_id?e.chan_id.toLowerCase():"")+(e.remote_pubkey?e.remote_pubkey.toLowerCase():"")+(e.remote_alias?e.remote_alias.toLowerCase():"")+(e.capacity?e.capacity:"")+(e.local_balance?e.local_balance:"")+(e.remote_balance?e.remote_balance:"")+(e.total_satoshis_sent?e.total_satoshis_sent:"")+(e.total_satoshis_received?e.total_satoshis_received:"")+(e.commit_fee?e.commit_fee:"")+(e.private?"private":"public")).includes(t)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(Z.mQ),o.Y36(y.yh),o.Y36(A.eX),o.Y36(C.v))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-channel-backup-table"]],viewQuery:function(e,t){if(1&e&&(o.Gf(xe.YE,5),o.Gf(fe.NW,5)),2&e){let e;o.iGM(e=o.CRH())&&(t.sort=e.first),o.iGM(e=o.CRH())&&(t.paginator=e.first)}},features:[o._Bn([{provide:fe.ye,useValue:(0,f.pt)("Channels")}])],decls:42,vars:17,consts:[["fxLayout","column"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","100",1,"alert","alert-info"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","1",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","2",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container","mt-2"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","channel_point"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pr-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","",1,"pr-3"],["fxLayoutAlign","end center"],["mat-cell","","fxLayoutAlign","end center"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.TgZ(2,"div",2),o._UZ(3,"fa-icon",3),o.TgZ(4,"span"),o._uU(5,"Save your backup files in a redundant location."),o.qZA(),o.qZA(),o.TgZ(6,"div",4),o._UZ(7,"fa-icon",3),o.TgZ(8,"span"),o.TgZ(9,"strong"),o._uU(10,"Backup Folder Location: "),o.qZA(),o._uU(11),o.qZA(),o.qZA(),o.TgZ(12,"div",5),o.TgZ(13,"button",6),o.NdJ("click",function(){return t.onVerifyChannels({})}),o._uU(14,"Verify All"),o.qZA(),o.TgZ(15,"button",7),o.NdJ("click",function(){return t.onBackupChannels({})}),o._uU(16,"Backup All"),o.qZA(),o.TgZ(17,"button",8),o.NdJ("click",function(){return t.onDownloadBackup({})}),o._uU(18,"Download Backup"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(19,"div",9),o.TgZ(20,"div",10),o._UZ(21,"fa-icon",11),o.TgZ(22,"span",12),o._uU(23,"Backups"),o.qZA(),o.qZA(),o.TgZ(24,"mat-form-field",13),o.TgZ(25,"input",14),o.NdJ("keyup",function(e){return t.applyFilter(e.target)}),o.qZA(),o.qZA(),o.qZA(),o.TgZ(26,"div",15),o.YNc(27,Vm,1,0,"mat-progress-bar",16),o.TgZ(28,"table",17,18),o.ynx(30,19),o.YNc(31,Wm,2,0,"th",20),o.YNc(32,$m,2,4,"td",21),o.BQk(),o.ynx(33,22),o.YNc(34,jm,3,0,"th",23),o.YNc(35,Km,12,0,"td",24),o.BQk(),o.ynx(36,25),o.YNc(37,ag,4,3,"td",26),o.BQk(),o.YNc(38,sg,1,3,"tr",27),o.YNc(39,og,1,0,"tr",28),o.YNc(40,lg,1,0,"tr",29),o.qZA(),o.qZA(),o._UZ(41,"mat-paginator",30),o.qZA()),2&e&&(o.xp6(3),o.Q6J("icon",t.faExclamationTriangle),o.xp6(4),o.Q6J("icon",t.faInfoCircle),o.xp6(4),o.hij("",t.selNode.channelBackupPath,"."),o.xp6(10),o.Q6J("icon",t.faArchive),o.xp6(6),o.Q6J("ngIf",(null==t.apisCallStatus?null:t.apisCallStatus.FetchAllChannels.status)===t.apiCallStatusEnum.INITIATED),o.xp6(1),o.Q6J("dataSource",t.channels)("ngClass",o.VKq(14,rg,""!==t.errorMessage)),o.xp6(10),o.Q6J("matFooterRowDef",o.DdM(16,cg)),o.xp6(1),o.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),o.xp6(1),o.Q6J("matRowDefColumns",t.displayedColumns),o.xp6(1),o.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS))},directives:[l.xw,l.Wh,l.yH,T.BN,q.lW,D.KE,Ce.Nt,E.$V,a.O5,Ze.BZ,xe.YE,a.mk,v.oO,Ze.w1,Ze.fO,Ze.Dz,Ze.mD,Ze.Ke,Ze.as,Ze.nj,fe.NW,r.pW,Ze.ge,xe.nU,Ze.ev,a.PC,v.Zl,we.gD,we.$L,ve.ey,Ze.yh,Ze.Q2,Ze.XQ,Ze.Gk],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),e})();function pg(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",8),o.NdJ("click",function(){const t=o.CHM(e).$implicit;return o.oxw().activeLink=t.link}),o._uU(1),o.qZA()}if(2&e){const e=t.$implicit,n=o.oxw();o.s9C("routerLink",e.link),o.Q6J("active",n.activeLink===e.link),o.xp6(1),o.Oqu(e.name)}}let dg=(()=>{class e{constructor(e){this.router=e,this.faUserCheck=g.hkK,this.links=[{link:"sign",name:"Sign"},{link:"verify",name:"Verify"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x]}ngOnInit(){const e=this.links.find(e=>this.router.url.includes(e.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,d.R)(this.unSubs[0]),(0,h.h)(e=>e instanceof i.Av)).subscribe(e=>{const t=this.links.find(t=>e.urlAfterRedirects.includes(t.link));this.activeLink=t?t.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(i.F0))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-sign-verify-message"]],decls:11,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o._UZ(1,"fa-icon",1),o.TgZ(2,"span",2),o._uU(3,"Sign/Verify Message"),o.qZA(),o.qZA(),o.TgZ(4,"div",3),o.TgZ(5,"mat-card"),o.TgZ(6,"mat-card-content",4),o.TgZ(7,"nav",5),o.YNc(8,pg,2,3,"div",6),o.qZA(),o.TgZ(9,"div",7),o._UZ(10,"router-outlet"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(1),o.Q6J("icon",t.faUserCheck),o.xp6(7),o.Q6J("ngForOf",t.links))},directives:[l.xw,l.Wh,T.BN,w.a8,w.dn,ge.BU,a.sg,l.yH,i.lC,ge.Nj,i.rH],styles:[""]}),e})();function hg(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Message is required."),o.qZA())}let mg=(()=>{class e{constructor(e,t,n){this.dataService=e,this.snackBar=t,this.logger=n,this.message="",this.signedMessage="",this.signature="",this.unSubs=[new p.x,new p.x]}onSign(){if(!this.message||""===this.message)return!0;this.dataService.signMessage(this.message).pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.signedMessage=this.message,this.signature=e.signature})}onMessageChange(){this.signedMessage!==this.message&&(this.signature="")}onCopyField(e){this.snackBar.open("Signature copied."),this.logger.info("Copied Text: "+e)}resetData(){this.message="",this.signature="",this.signedMessage=""}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(dt.D),o.Y36(Ai.ux),o.Y36(Z.mQ))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-sign"]],decls:20,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["form","ngForm"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start end"],["autoFocus","","matInput","","rows","1","placeholder","Message to sign","required","","tabindex","1","name","message",3,"ngModel","ngModelChange","keyup"],[4,"ngIf"],["fxLayout","row",1,"my-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3","type","submit",3,"click"],[1,"my-2",3,"inset"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",1,"bordered-box","read-only","h-4","padding-gap"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","4","rtlClipboard","","type","button",3,"payload","copied"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"form",1,2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"textarea",4),o.NdJ("ngModelChange",function(e){return t.message=e})("keyup",function(){return t.onMessageChange()}),o.qZA(),o.YNc(5,hg,2,0,"mat-error",5),o.qZA(),o.TgZ(6,"div",6),o.TgZ(7,"button",7),o.NdJ("click",function(){return t.resetData()}),o._uU(8,"Clear Field"),o.qZA(),o.TgZ(9,"button",8),o.NdJ("click",function(){return t.onSign()}),o._uU(10,"Sign"),o.qZA(),o.qZA(),o._UZ(11,"mat-divider",9),o.TgZ(12,"div",10),o.TgZ(13,"p"),o._uU(14,"Generated Signature"),o.qZA(),o.qZA(),o.TgZ(15,"div",11),o._uU(16),o.qZA(),o.TgZ(17,"div",12),o.TgZ(18,"button",13),o.NdJ("copied",function(e){return t.onCopyField(e)}),o._uU(19,"Copy Signature"),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&e&&(o.xp6(4),o.Q6J("ngModel",t.message),o.xp6(1),o.Q6J("ngIf",!t.message),o.xp6(6),o.Q6J("inset",!0),o.xp6(5),o.Oqu(t.signature),o.xp6(2),o.Q6J("payload",t.signature))},directives:[l.xw,l.yH,l.Wh,Ae._Y,Ae.JL,Ae.F,D.KE,Ce.Nt,Ae.Fj,Te.h,Ae.Q7,Ae.JJ,Ae.On,a.O5,q.lW,M.d,Ci.y,D.TO],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),e})();function gg(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Message is required."),o.qZA())}function fg(e,t){1&e&&(o.TgZ(0,"mat-error"),o._uU(1,"Signature is required."),o.qZA())}function xg(e,t){1&e&&(o.TgZ(0,"p",13),o.TgZ(1,"mat-icon",14),o._uU(2,"close"),o.qZA(),o._uU(3,"Verification failed, please double check message and signature"),o.qZA())}function Zg(e,t){1&e&&(o.TgZ(0,"p"),o._uU(1,"Pubkey Used"),o.qZA())}function yg(e,t){if(1&e&&(o.TgZ(0,"div",20),o.TgZ(1,"p"),o._uU(2),o.qZA(),o.qZA()),2&e){const e=o.oxw(2);o.xp6(2),o.Oqu(null==e.verifyRes?null:e.verifyRes.pubkey)}}function Ag(e,t){if(1&e){const e=o.EpF();o.TgZ(0,"div",21),o.TgZ(1,"button",22),o.NdJ("copied",function(t){return o.CHM(e),o.oxw(2).onCopyField(t)}),o._uU(2,"Copy Pubkey"),o.qZA(),o.qZA()}if(2&e){const e=o.oxw(2);o.xp6(1),o.Q6J("payload",null==e.verifyRes?null:e.verifyRes.pubkey)}}function Cg(e,t){if(1&e&&(o.TgZ(0,"div",15),o._UZ(1,"mat-divider",16),o.TgZ(2,"div",17),o.YNc(3,Zg,2,0,"p",5),o.qZA(),o.YNc(4,yg,3,1,"div",18),o.YNc(5,Ag,3,1,"div",19),o.qZA()),2&e){const e=o.oxw();o.xp6(1),o.Q6J("inset",!0),o.xp6(2),o.Q6J("ngIf",e.verifyRes.valid),o.xp6(1),o.Q6J("ngIf",e.verifyRes.valid),o.xp6(1),o.Q6J("ngIf",e.verifyRes.valid)}}let Tg=(()=>{class e{constructor(e,t,n){this.dataService=e,this.snackBar=t,this.logger=n,this.message="",this.verifiedMessage="",this.signature="",this.verifiedSignature="",this.showVerifyStatus=!1,this.verifyRes={pubkey:"",valid:null},this.unSubs=[new p.x,new p.x]}onVerify(){if(!this.message||""===this.message||!this.signature||""===this.signature)return!0;this.dataService.verifyMessage(this.message,this.signature).pipe((0,d.R)(this.unSubs[0])).subscribe(e=>{this.verifyRes=e,this.showVerifyStatus=!0,this.verifiedMessage=this.message,this.verifiedSignature=this.signature})}onChange(){this.verifiedMessage===this.message&&this.verifiedSignature===this.signature||(this.showVerifyStatus=!1,this.verifyRes={pubkey:"",valid:null})}resetData(){this.message="",this.signature="",this.verifyRes=null,this.showVerifyStatus=!1}onCopyField(e){this.snackBar.open("Pubkey copied."),this.logger.info("Copied Text: "+e)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return e.\u0275fac=function(t){return new(t||e)(o.Y36(dt.D),o.Y36(Ai.ux),o.Y36(Z.mQ))},e.\u0275cmp=o.Xpm({type:e,selectors:[["rtl-verify"]],decls:17,vars:6,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["form","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["autoFocus","","matInput","","rows","1","placeholder","Message to verify","required","","tabindex","1","name","message",3,"ngModel","ngModelChange","keyup"],[4,"ngIf"],["matInput","","placeholder","Signature provided","name","signature","tabindex","2","required","",3,"ngModel","ngModelChange","keyup"],["sign","ngModel"],["fxFlex","100","class","color-warn","fxLayoutAlign","start center",4,"ngIf"],["fxLayout","row",1,"my-1"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxFlex","100","fxLayoutAlign","start center",1,"color-warn"],[1,"mr-1","icon-small"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],[1,"my-2",3,"inset"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start","class","bordered-box read-only h-4 padding-gap",4,"ngIf"],["fxLayout","row","class","mt-2",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",1,"bordered-box","read-only","h-4","padding-gap"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","5","rtlClipboard","","type","button",3,"payload","copied"]],template:function(e,t){1&e&&(o.TgZ(0,"div",0),o.TgZ(1,"form",1,2),o.TgZ(3,"mat-form-field",3),o.TgZ(4,"textarea",4),o.NdJ("ngModelChange",function(e){return t.message=e})("keyup",function(){return t.onChange()}),o.qZA(),o.YNc(5,gg,2,0,"mat-error",5),o.qZA(),o.TgZ(6,"mat-form-field",3),o.TgZ(7,"input",6,7),o.NdJ("ngModelChange",function(e){return t.signature=e})("keyup",function(){return t.onChange()}),o.qZA(),o.YNc(9,fg,2,0,"mat-error",5),o.qZA(),o.YNc(10,xg,4,0,"p",8),o.TgZ(11,"div",9),o.TgZ(12,"button",10),o.NdJ("click",function(){return t.resetData()}),o._uU(13,"Clear Fields"),o.qZA(),o.TgZ(14,"button",11),o.NdJ("click",function(){return t.onVerify()}),o._uU(15,"Verify"),o.qZA(),o.qZA(),o.YNc(16,Cg,6,4,"div",12),o.qZA(),o.qZA()),2&e&&(o.xp6(4),o.Q6J("ngModel",t.message),o.xp6(1),o.Q6J("ngIf",!t.message),o.xp6(2),o.Q6J("ngModel",t.signature),o.xp6(2),o.Q6J("ngIf",!t.signature),o.xp6(1),o.Q6J("ngIf",t.showVerifyStatus&&!t.verifyRes.valid),o.xp6(6),o.Q6J("ngIf",t.showVerifyStatus&&t.verifyRes.valid))},directives:[l.xw,l.yH,l.Wh,Ae._Y,Ae.JL,Ae.F,D.KE,Ce.Nt,Ae.Fj,Te.h,Ae.Q7,Ae.JJ,Ae.On,a.O5,q.lW,D.TO,S.Hw,M.d,Ci.y],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),e})();var bg=n(8016),wg=n(6013);const _g=i.Bz.forChild([{path:"",component:u,children:[{path:"",pathMatch:"full",redirectTo:"home"},{path:"home",component:oa,canActivate:[wg.QM]},{path:"wallet",component:uc,canActivate:[wg.a1]},{path:"onchain",component:vh,canActivate:[wg.QM],children:[{path:"",pathMatch:"full",redirectTo:"receive/utxos"},{path:"receive/:selTab",component:Fh,canActivate:[wg.QM]},{path:"send/:selTab",component:om,data:{sweepAll:!1},canActivate:[wg.QM]},{path:"sweep/:selTab",component:om,data:{sweepAll:!0},canActivate:[wg.QM]}]},{path:"connections",component:pa,canActivate:[wg.QM],children:[{path:"",pathMatch:"full",redirectTo:"channels"},{path:"channels",component:yi,canActivate:[wg.QM],children:[{path:"",pathMatch:"full",redirectTo:"open"},{path:"open",component:Ws,canActivate:[wg.QM]},{path:"pending",component:Jl,canActivate:[wg.QM]},{path:"closed",component:lr,canActivate:[wg.QM]},{path:"activehtlcs",component:Mr,canActivate:[wg.QM]}]},{path:"peers",component:mi,data:{sweepAll:!1},canActivate:[wg.QM]}]},{path:"transactions",component:dc,canActivate:[wg.QM],children:[{path:"",pathMatch:"full",redirectTo:"payments"},{path:"payments",component:Un,canActivate:[wg.QM]},{path:"invoices",component:ut,canActivate:[wg.QM]},{path:"queryroutes",component:Ic,canActivate:[wg.QM]}]},{path:"messages",component:dg,canActivate:[wg.QM],children:[{path:"",pathMatch:"full",redirectTo:"sign"},{path:"sign",component:mg,canActivate:[wg.QM]},{path:"verify",component:Tg,canActivate:[wg.QM]}]},{path:"channelbackup",component:Fm,canActivate:[wg.QM],children:[{path:"",pathMatch:"full",redirectTo:"bckup"},{path:"bckup",component:ug,canActivate:[wg.QM]},{path:"restore",component:zm,canActivate:[wg.QM]}]},{path:"routing",component:mu,canActivate:[wg.QM],children:[{path:"",pathMatch:"full",redirectTo:"forwardinghistory"},{path:"forwardinghistory",component:Pu,canActivate:[wg.QM]},{path:"peers",component:Rp,canActivate:[wg.QM]}]},{path:"reports",component:Ep,canActivate:[wg.QM],children:[{path:"",pathMatch:"full",redirectTo:"routingfees"},{path:"routingfees",component:Kp,canActivate:[wg.QM]},{path:"transactions",component:pd,canActivate:[wg.QM]}]},{path:"lookups",component:cu,canActivate:[wg.QM]},{path:"network",component:qm,canActivate:[wg.QM]},{path:"**",component:bg.w},{path:"rates",redirectTo:"network"}]}]);var vg=n(253);let qg=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=o.oAB({type:e,bootstrap:[u]}),e.\u0275inj=o.cJS({providers:[wg.QM],imports:[[a.ez,vg.m,_g]]}),e})()}}]); \ No newline at end of file diff --git a/angular/958.9e0e1f7340063e08f0c5.js b/angular/958.9e0e1f7340063e08f0c5.js deleted file mode 100644 index d82dcc0a..00000000 --- a/angular/958.9e0e1f7340063e08f0c5.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkrtl=self.webpackChunkrtl||[]).push([[958],{7810:(t,e,n)=>{"use strict";n.d(e,{Kf:()=>a,I3:()=>i});var a={prefix:"far",iconName:"frown",icon:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"]},i={prefix:"far",iconName:"smile",icon:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"]}},4636:(t,e,n)=>{"use strict";n.d(e,{Q:()=>i});var a=n(709);const i=[(0,a.X$)("newlyAddedRowAnimation",[(0,a.SB)("notAdded, void",(0,a.oB)({transform:"translateX(0%)"})),(0,a.SB)("added",(0,a.oB)({transform:"translateX(100%)"})),(0,a.eR)("added <=> notAdded",(0,a.jt)("1000ms ease-out")),(0,a.eR)("added <=> void",(0,a.jt)("0ms ease-out"))])]},882:(t,e,n)=>{"use strict";n.d(e,{D:()=>T});var a=n(9666),i=n(8606),s=n(9568),o=n(9421),r=n(1572),l=n(1084),c=n(964),u=n(5109),d=n(1511),g=n(3722),m=n(6828);function f(t,e){if(1&t&&(r.TgZ(0,"span",8),r._uU(1),r.ALo(2,"number"),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Oqu(r.lcZ(2,1,t.dataValue))}}function p(t,e){if(1&t&&(r.TgZ(0,"span",8),r._uU(1),r.ALo(2,"number"),r.qZA()),2&t){const t=r.oxw().$implicit,e=r.oxw(2);r.xp6(1),r.Oqu(r.xi3(2,1,t[e.currencyUnitEnum.BTC],e.currencyUnitFormats.BTC))}}function h(t,e){if(1&t&&(r.TgZ(0,"span",8),r._uU(1),r.ALo(2,"number"),r.qZA()),2&t){const t=r.oxw().$implicit,e=r.oxw(2);r.xp6(1),r.Oqu(r.xi3(2,1,t[e.currencyUnitEnum.OTHER],e.currencyUnitFormats.OTHER))}}function x(t,e){if(1&t&&(r.TgZ(0,"div",5),r.TgZ(1,"div",6),r._uU(2),r.qZA(),r.YNc(3,f,3,3,"span",7),r.YNc(4,p,3,4,"span",7),r.YNc(5,h,3,4,"span",7),r.qZA()),2&t){const t=e.$implicit,n=r.oxw().$implicit,a=r.oxw();r.Q6J("matTooltip",t.tooltip)("matTooltipPosition","below"),r.xp6(2),r.Oqu(t.title),r.xp6(1),r.Q6J("ngIf",n===a.currencyUnitEnum.SATS),r.xp6(1),r.Q6J("ngIf",n===a.currencyUnitEnum.BTC),r.xp6(1),r.Q6J("ngIf",a.fiatConversion&&n!==a.currencyUnitEnum.SATS&&n!==a.currencyUnitEnum.BTC&&""===a.conversionErrorMsg)}}function y(t,e){if(1&t&&(r.TgZ(0,"div",9),r.TgZ(1,"div",10),r._uU(2),r.qZA(),r.qZA()),2&t){const t=r.oxw(2);r.xp6(2),r.Oqu(t.conversionErrorMsg)}}function Z(t,e){if(1&t&&(r.TgZ(0,"mat-tab",1),r.TgZ(1,"div",2),r.YNc(2,x,6,6,"div",3),r.qZA(),r.YNc(3,y,3,1,"div",4),r.qZA()),2&t){const t=e.$implicit,n=r.oxw();r.s9C("label",t),r.xp6(2),r.Q6J("ngForOf",n.values),r.xp6(1),r.Q6J("ngIf",n.fiatConversion&&t!==n.currencyUnitEnum.SATS&&t!==n.currencyUnitEnum.BTC&&""!==n.conversionErrorMsg)}}let T=(()=>{class t{constructor(t,e){this.commonService=t,this.store=e,this.values=[],this.currencyUnitEnum=o.NT,this.currencyUnitFormats=o.Xz,this.currencyUnits=[],this.fiatConversion=!1,this.conversionErrorMsg="",this.unSubs=[new a.x,new a.x,new a.x]}ngOnInit(){this.store.select("root").pipe((0,i.P)()).subscribe(t=>{this.fiatConversion=t.selNode.settings.fiatConversion,this.currencyUnits=t.selNode.settings.currencyUnits,this.fiatConversion||this.currencyUnits.splice(2,1),this.currencyUnits.length>1&&this.values[0]&&this.values[0].dataValue>=0&&this.getCurrencyValues(this.values)})}ngOnChanges(){this.currencyUnits.length>1&&this.values[0]&&this.values[0].dataValue>=0&&this.getCurrencyValues(this.values)}getCurrencyValues(t){t.forEach(t=>{t.dataValue>0?(this.commonService.convertCurrency(t.dataValue,o.NT.SATS,o.NT.BTC,"",!0).pipe((0,s.R)(this.unSubs[1])).subscribe(e=>{t[o.NT.BTC]=e.BTC}),this.commonService.convertCurrency(t.dataValue,o.NT.SATS,o.NT.OTHER,this.currencyUnits[2],this.fiatConversion).pipe((0,s.R)(this.unSubs[2])).subscribe({next:e=>{t[o.NT.OTHER]=e.OTHER},error:t=>{this.conversionErrorMsg="Conversion Error: "+t}})):(t[o.NT.BTC]=t.dataValue,""===this.conversionErrorMsg&&(t[o.NT.OTHER]=t.dataValue))})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(l.v),r.Y36(c.yh))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-currency-unit-converter"]],inputs:{values:"values"},features:[r.TTD],decls:2,vars:1,consts:[[3,"label",4,"ngFor","ngForOf"],[3,"label"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start start","class","cc-data-block",3,"matTooltip","matTooltipPosition",4,"ngFor","ngForOf"],["fxLayout","row","fxFlex","100","class","p-1 error-border mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start start",1,"cc-data-block",3,"matTooltip","matTooltipPosition"],[1,"cc-data-title"],["class","cc-data-value",4,"ngIf"],[1,"cc-data-value"],["fxLayout","row","fxFlex","100",1,"p-1","error-border","mt-1"],[1,"cc-data-block"]],template:function(t,e){1&t&&(r.TgZ(0,"mat-tab-group"),r.YNc(1,Z,4,3,"mat-tab",0),r.qZA()),2&t&&(r.xp6(1),r.Q6J("ngForOf",e.currencyUnits))},directives:[u.SP,d.sg,u.uX,g.xw,g.yH,g.Wh,d.O5,m.gM],pipes:[d.JJ],styles:[""]}),t})()},7969:(t,e,n)=>{"use strict";n.d(e,{n:()=>w});var a=n(4608),i=n(5291),s=n(9421),o=n(1572),r=n(3869),l=n(1084),c=n(1403),u=n(3722),d=n(1511),g=n(377),m=n(3600),f=n(7439),p=n(7592),h=n(5980),x=n(7679),y=n(6880),Z=n(2609);function T(t,e){if(1&t&&(o.TgZ(0,"div",14),o.TgZ(1,"div",15),o.TgZ(2,"h4",16),o._uU(3,"Address Type"),o.qZA(),o.TgZ(4,"span",21),o._uU(5),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(5),o.Oqu(t.addressType)}}function A(t,e){1&t&&o._UZ(0,"mat-divider",18)}const S=function(t){return{"display-none":t}};let w=(()=>{class t{constructor(t,e,n,a,o){this.dialogRef=t,this.data=e,this.logger=n,this.commonService=a,this.snackBar=o,this.faReceipt=i.dLy,this.address="",this.addressType="",this.qrWidth=230,this.screenSize="",this.screenSizeEnum=s.cu}ngOnInit(){this.address=this.data.address,this.addressType=this.data.addressType,this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onCopyAddress(t){this.snackBar.open("Generated address copied."),this.logger.info("Copied Text: "+t)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(a.so),o.Y36(a.WI),o.Y36(r.mQ),o.Y36(l.v),o.Y36(c.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-on-chain-generated-address"]],decls:27,vars:22,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","35","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString"],["fxFlex","65"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","2","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxFlex","50","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],["fxLayout","row",4,"ngIf"],["class","w-100 my-1",4,"ngIf"],["fxLayout","row"],["fxFlex","100"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"overflow-wrap","foreground-secondary-text"],[1,"w-100","my-1"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-1"],["autoFocus","","mat-flat-button","","color","primary","tabindex","1","type","submit","rtlClipboard","",3,"payload","copied"],[1,"foreground-secondary-text"]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o._UZ(2,"qrcode",2),o.qZA(),o.TgZ(3,"div",3),o.TgZ(4,"mat-card-header",4),o.TgZ(5,"div",5),o._UZ(6,"fa-icon",6),o.TgZ(7,"span",7),o._uU(8),o.qZA(),o.qZA(),o.TgZ(9,"button",8),o.NdJ("click",function(){return e.onClose()}),o._uU(10,"X"),o.qZA(),o.qZA(),o.TgZ(11,"mat-card-content",9),o.TgZ(12,"div",10),o.TgZ(13,"div",11),o._UZ(14,"qrcode",2),o.qZA(),o.YNc(15,T,6,1,"div",12),o.YNc(16,A,1,0,"mat-divider",13),o.TgZ(17,"div",14),o.TgZ(18,"div",15),o.TgZ(19,"h4",16),o._uU(20,"Address"),o.qZA(),o.TgZ(21,"span",17),o._uU(22),o.qZA(),o.qZA(),o.qZA(),o._UZ(23,"mat-divider",18),o.TgZ(24,"div",19),o.TgZ(25,"button",20),o.NdJ("copied",function(t){return e.onCopyAddress(t)}),o._uU(26,"Copy Address"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t&&(o.xp6(1),o.Q6J("ngClass",o.VKq(18,S,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("qrdata",e.address)("margin",2)("width",e.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0),o.xp6(4),o.Q6J("icon",e.faReceipt),o.xp6(2),o.Oqu(e.screenSize===e.screenSizeEnum.XS?"Address":"Generated Address"),o.xp6(5),o.Q6J("ngClass",o.VKq(20,S,e.screenSize!==e.screenSizeEnum.XS&&e.screenSize!==e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("qrdata",e.address)("margin",2)("width",e.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0),o.xp6(1),o.Q6J("ngIf",""!==e.addressType),o.xp6(1),o.Q6J("ngIf",""!==e.addressType),o.xp6(6),o.Oqu(e.address),o.xp6(3),o.Q6J("payload",e.address))},directives:[u.xw,u.Wh,u.yH,d.mk,g.oO,m.V,f.dk,p.BN,h.lW,f.dn,d.O5,x.d,y.h,Z.y],styles:[""]}),t})()},4018:(t,e,n)=>{"use strict";n.d(e,{D:()=>R});var a=n(1572),i=n(194),s=n(9421),o=n(3869),r=n(3722),l=n(5980),c=n(3691),u=n(1511),d=n(4786),g=n(6073),m=n(1522),f=n(6283);let p=(()=>{class t extends m.LF{format(t,e){return"MMM YYYY"===e?s.gg[t.getMonth()].name+", "+t.getFullYear():"YYYY"===e?t.getFullYear().toString():t.getDate()+"/"+s.gg[t.getMonth()].name+"/"+t.getFullYear()}}return t.\u0275fac=function(){let e;return function(n){return(e||(e=a.n5z(t)))(n||t)}}(),t.\u0275prov=a.Yz7({token:t,factory:t.\u0275fac}),t})();const h={parse:{dateInput:"LL"},display:{dateInput:"MMM YYYY",monthYearLabel:"YYYY",dateA11yLabel:"LL",monthYearA11yLabel:"YYYY"}},x={parse:{dateInput:"LL"},display:{dateInput:"YYYY",monthYearLabel:"YYYY",dateA11yLabel:"LL",monthYearA11yLabel:"YYYY"}};let y=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=a.lG2({type:t,selectors:[["","monthlyDate",""]],features:[a._Bn([{provide:m._A,useClass:p},{provide:m.sG,useValue:h}])]}),t})(),Z=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=a.lG2({type:t,selectors:[["","yearlyDate",""]],features:[a._Bn([{provide:m._A,useClass:p},{provide:m.sG,useValue:x}])]}),t})();var T=n(6756),A=n(5812),S=n(5095),w=n(3474);const v=["monthlyDatepicker"],C=["yearlyDatepicker"],b=function(){return{animationDirection:"forward"}};function q(t,e){if(1&t&&a.GkF(0,9),2&t){a.oxw();const t=a.MAs(19);a.Q6J("ngTemplateOutlet",t)("ngTemplateOutletContext",a.DdM(2,b))}}const L=function(){return{animationDirection:"backward"}};function Y(t,e){if(1&t&&a.GkF(0,9),2&t){a.oxw();const t=a.MAs(19);a.Q6J("ngTemplateOutlet",t)("ngTemplateOutletContext",a.DdM(2,L))}}const D=function(){return{animationDirection:""}};function M(t,e){if(1&t&&a.GkF(0,9),2&t){a.oxw();const t=a.MAs(19);a.Q6J("ngTemplateOutlet",t)("ngTemplateOutletContext",a.DdM(2,D))}}function F(t,e){if(1&t&&(a.TgZ(0,"mat-option",17),a._uU(1),a.ALo(2,"titlecase"),a.qZA()),2&t){const t=e.$implicit;a.Q6J("value",t),a.xp6(1),a.hij(" ",a.lcZ(2,2,t)," ")}}function k(t,e){if(1&t){const t=a.EpF();a.TgZ(0,"mat-form-field",18),a.TgZ(1,"input",19,20),a.NdJ("ngModelChange",function(e){return a.CHM(t),a.oxw(2).selectedValue=e}),a.qZA(),a._UZ(3,"mat-datepicker-toggle",21),a.TgZ(4,"mat-datepicker",22,23),a.NdJ("monthSelected",function(e){return a.CHM(t),a.oxw(2).onMonthSelected(e)})("dateSelected",function(e){return a.CHM(t),a.oxw(2).onMonthSelected(e)}),a.qZA(),a.qZA()}if(2&t){const t=a.MAs(5),e=a.oxw(2);a.xp6(1),a.Q6J("matDatepicker",t)("min",e.first)("max",e.last)("ngModel",e.selectedValue),a.xp6(2),a.Q6J("for",t),a.xp6(1),a.Q6J("startAt",e.selectedValue)}}function _(t,e){if(1&t){const t=a.EpF();a.TgZ(0,"mat-form-field",24),a.TgZ(1,"input",25,26),a.NdJ("ngModelChange",function(e){return a.CHM(t),a.oxw(2).selectedValue=e}),a.qZA(),a._UZ(3,"mat-datepicker-toggle",21),a.TgZ(4,"mat-datepicker",27,28),a.NdJ("yearSelected",function(e){return a.CHM(t),a.oxw(2).onYearSelected(e)})("monthSelected",function(e){return a.CHM(t),a.oxw(2).onYearSelected(e)})("dateSelected",function(e){return a.CHM(t),a.oxw(2).onYearSelected(e)}),a.qZA(),a.qZA()}if(2&t){const t=a.MAs(5),e=a.oxw(2);a.xp6(1),a.Q6J("matDatepicker",t)("min",e.first)("max",e.last)("ngModel",e.selectedValue),a.xp6(2),a.Q6J("for",t),a.xp6(1),a.Q6J("startAt",e.selectedValue)}}function N(t,e){if(1&t){const t=a.EpF();a.TgZ(0,"div",10),a.TgZ(1,"div",11),a.TgZ(2,"mat-select",12),a.NdJ("ngModelChange",function(e){return a.CHM(t),a.oxw().selScrollRange=e})("selectionChange",function(e){return a.CHM(t),a.oxw().onRangeChanged(e)}),a.YNc(3,F,3,4,"mat-option",13),a.qZA(),a.qZA(),a.TgZ(4,"div",14),a.YNc(5,k,6,6,"mat-form-field",15),a.YNc(6,_,6,6,"mat-form-field",16),a.qZA(),a.qZA()}if(2&t){const t=a.oxw();a.Q6J("@sliderAnimation",t.animationDirection),a.xp6(2),a.Q6J("ngModel",t.selScrollRange),a.xp6(1),a.Q6J("ngForOf",t.scrollRanges),a.xp6(2),a.Q6J("ngIf",t.selScrollRange===t.scrollRanges[0]),a.xp6(1),a.Q6J("ngIf",t.selScrollRange===t.scrollRanges[1])}}let R=(()=>{class t{constructor(t){this.logger=t,this.scrollRanges=s.op,this.selScrollRange=this.scrollRanges[0],this.today=new Date(Date.now()),this.first=new Date(2018,0,1,0,0,0),this.last=new Date(this.today.getFullYear(),this.today.getMonth(),this.today.getDate(),0,0,0),this.disablePrev=!1,this.disableNext=!0,this.animationDirection="",this.selectedValue=this.last,this.stepChanged=new a.vpe}onRangeChanged(t){this.selScrollRange=t.value,this.onStepChange("LAST")}onMonthSelected(t){this.selectedValue=t,this.onStepChange("SELECTED"),this.monthlyDatepicker.close()}onYearSelected(t){this.selectedValue=t,this.onStepChange("SELECTED"),this.yearlyDatepicker.close()}onStepChange(t){switch(this.logger.info(t),t){case"FIRST":this.animationDirection="backward",this.selectedValue!==this.first&&(this.selectedValue=this.first,this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange}));break;case"PREVIOUS":this.selectedValue=this.selScrollRange===s.op[1]?new Date(this.selectedValue.getFullYear()-1,0,1,0,0,0):new Date(this.selectedValue.getFullYear(),this.selectedValue.getMonth()-1,1,0,0,0),this.animationDirection="backward",this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange});break;case"NEXT":this.selectedValue=this.selScrollRange===s.op[1]?new Date(this.selectedValue.getFullYear()+1,0,1,0,0,0):new Date(this.selectedValue.getFullYear(),this.selectedValue.getMonth()+1,1,0,0,0),this.animationDirection="forward",this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange});break;case"LAST":this.animationDirection="forward",this.selectedValue=this.last,this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange});break;default:this.animationDirection="",this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange})}this.disablePrev=this.selScrollRange===s.op[1]?this.selectedValue.getFullYear()<=this.first.getFullYear():this.selectedValue.getFullYear()<=this.first.getFullYear()&&this.selectedValue.getMonth()<=this.first.getMonth(),this.disableNext=this.selScrollRange===s.op[1]?this.selectedValue.getFullYear()>=this.last.getFullYear():this.selectedValue.getFullYear()>=this.last.getFullYear()&&this.selectedValue.getMonth()>=this.last.getMonth(),this.logger.info(this.disablePrev),this.logger.info(this.disableNext),setTimeout(()=>{this.animationDirection=""},800)}onChartMouseUp(t){"monthlyDate"===t.srcElement.name?this.monthlyDatepicker.open():"yearlyDate"===t.srcElement.name&&this.yearlyDatepicker.open()}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(o.mQ))},t.\u0275cmp=a.Xpm({type:t,selectors:[["rtl-horizontal-scroller"]],viewQuery:function(t,e){if(1&t&&(a.Gf(v,5),a.Gf(C,5)),2&t){let t;a.iGM(t=a.CRH())&&(e.monthlyDatepicker=t.first),a.iGM(t=a.CRH())&&(e.yearlyDatepicker=t.first)}},hostBindings:function(t,e){1&t&&a.NdJ("click",function(t){return e.onChartMouseUp(t)})},outputs:{stepChanged:"stepChanged"},decls:20,vars:5,consts:[["fxLayout","row","fxLayoutAlign","space-between stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","22"],["mat-icon-button","","color","primary","type","button","tabindex","1",1,"pr-4",3,"click"],["mat-icon-button","","color","primary","type","button","tabindex","2",3,"disabled","click"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","22"],["mat-icon-button","","color","primary","type","button","tabindex","5",1,"pr-4",3,"disabled","click"],["mat-icon-button","","color","primary","type","button","tabindex","6",3,"click"],["controlsPanel",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["fxLayout","row","fxLayoutAlign","center center","fxFlex","56"],["fxFlex","50","fxLayoutAlign","center center","fxLayoutAlign.gt-xs","end center",1,"font-bold-700"],["fxFlex","80","fxFlex.gt-md","30","name","selScrlRange","placeholder","Range","tabindex","3",1,"font-bold-700",3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","50","fxLayout","row","fxLayoutAlign","center center","fxLayoutAlign.gt-xs","start center"],["monthlyDate","","fxFlex","80","fxFlex.gt-md","30","fxLayoutAlign","center center",4,"ngIf"],["yearlyDate","","fxFlex","80","fxFlex.gt-md","30","fxLayoutAlign","center center",4,"ngIf"],[3,"value"],["monthlyDate","","fxFlex","80","fxFlex.gt-md","30","fxLayoutAlign","center center"],["matInput","","name","monthlyDate","tabindex","4","readonly","",3,"matDatepicker","min","max","ngModel","ngModelChange"],["monthlyDt","ngModel"],["matSuffix","",3,"for"],["startView","year",3,"startAt","monthSelected","dateSelected"],["monthlyDatepicker",""],["yearlyDate","","fxFlex","80","fxFlex.gt-md","30","fxLayoutAlign","center center"],["matInput","","name","yearlyDate","tabindex","4","readonly","",3,"matDatepicker","min","max","ngModel","ngModelChange"],["yearlyDt","ngModel"],["startView","multi-year",3,"startAt","yearSelected","monthSelected","dateSelected"],["yearlyDatepicker",""]],template:function(t,e){1&t&&(a.TgZ(0,"div",0),a.TgZ(1,"div",1),a.TgZ(2,"button",2),a.NdJ("click",function(){return e.onStepChange("FIRST")}),a.TgZ(3,"mat-icon"),a._uU(4,"skip_previous"),a.qZA(),a.qZA(),a.TgZ(5,"button",3),a.NdJ("click",function(){return e.onStepChange("PREVIOUS")}),a.TgZ(6,"mat-icon"),a._uU(7,"navigate_before"),a.qZA(),a.qZA(),a.qZA(),a.YNc(8,q,1,3,"ng-container",4),a.YNc(9,Y,1,3,"ng-container",4),a.YNc(10,M,1,3,"ng-container",4),a.TgZ(11,"div",5),a.TgZ(12,"button",6),a.NdJ("click",function(){return e.onStepChange("NEXT")}),a.TgZ(13,"mat-icon"),a._uU(14,"navigate_next"),a.qZA(),a.qZA(),a.TgZ(15,"button",7),a.NdJ("click",function(){return e.onStepChange("LAST")}),a.TgZ(16,"mat-icon"),a._uU(17,"skip_next"),a.qZA(),a.qZA(),a.qZA(),a.qZA(),a.YNc(18,N,7,5,"ng-template",null,8,a.W1O)),2&t&&(a.xp6(5),a.Q6J("disabled",e.disablePrev),a.xp6(3),a.Q6J("ngIf","forward"===e.animationDirection),a.xp6(1),a.Q6J("ngIf","backward"===e.animationDirection),a.xp6(1),a.Q6J("ngIf",""===e.animationDirection),a.xp6(2),a.Q6J("disabled",e.disableNext))},directives:[r.xw,r.Wh,r.yH,l.lW,c.Hw,u.O5,u.tP,d.gD,g.JJ,g.On,u.sg,m.ey,f.KE,y,T.Nt,A.hl,S.q,w.F,g.Fj,A.nW,f.R9,A.Mq,Z],pipes:[u.rS],styles:[""],data:{animation:[i.l]}}),t})()},6590:(t,e,n)=>{"use strict";n.d(e,{g:()=>O});var a=n(3005),i=n(2464),s=n(7033),o=n(9421),r=n(3929),l=n(1572),c=n(1084),u=n(964),d=n(1511),g=n(3722),m=n(6283),f=n(6756),p=n(6073),h=n(7038),x=n(4786),y=n(1522),Z=n(5980),T=n(377);function A(t,e){1&t&&(l.TgZ(0,"th",27),l._uU(1,"Date"),l.qZA())}function S(t,e){if(1&t&&(l.TgZ(0,"td",28),l._uU(1),l.ALo(2,"date"),l.qZA()),2&t){const t=e.$implicit,n=l.oxw();l.xp6(1),l.Oqu(l.xi3(2,1,null==t?null:t.date,n.dataRange===n.scrollRanges[1]?"MMM/yyyy":"dd/MMM/yyyy"))}}function w(t,e){1&t&&(l.TgZ(0,"th",29),l._uU(1,"Amount Paid (Sats)"),l.qZA())}function v(t,e){if(1&t&&(l.TgZ(0,"td",28),l.TgZ(1,"span",30),l._uU(2),l.ALo(3,"number"),l.qZA(),l.qZA()),2&t){const t=e.$implicit;l.xp6(2),l.Oqu(l.xi3(3,1,null==t?null:t.amount_paid,"1.0-2"))}}function C(t,e){1&t&&(l.TgZ(0,"th",29),l._uU(1,"# Payments"),l.qZA())}function b(t,e){if(1&t&&(l.TgZ(0,"td",28),l.TgZ(1,"span",30),l._uU(2),l.ALo(3,"number"),l.qZA(),l.qZA()),2&t){const t=e.$implicit;l.xp6(2),l.Oqu(l.lcZ(3,1,null==t?null:t.num_payments))}}function q(t,e){1&t&&(l.TgZ(0,"th",29),l._uU(1,"Amount Received (Sats)"),l.qZA())}function L(t,e){if(1&t&&(l.TgZ(0,"td",28),l.TgZ(1,"span",30),l._uU(2),l.ALo(3,"number"),l.qZA(),l.qZA()),2&t){const t=e.$implicit;l.xp6(2),l.Oqu(l.xi3(3,1,null==t?null:t.amount_received,"1.0-2"))}}function Y(t,e){1&t&&(l.TgZ(0,"th",29),l._uU(1,"# Invoices"),l.qZA())}function D(t,e){if(1&t&&(l.TgZ(0,"td",28),l.TgZ(1,"span",30),l._uU(2),l.ALo(3,"number"),l.qZA(),l.qZA()),2&t){const t=e.$implicit;l.xp6(2),l.Oqu(l.lcZ(3,1,null==t?null:t.num_invoices))}}function M(t,e){if(1&t){const t=l.EpF();l.TgZ(0,"th",31),l.TgZ(1,"div",32),l.TgZ(2,"mat-select",33),l._UZ(3,"mat-select-trigger"),l.TgZ(4,"mat-option",34),l.NdJ("click",function(){return l.CHM(t),l.oxw().onDownloadCSV()}),l._uU(5,"Download CSV"),l.qZA(),l.qZA(),l.qZA(),l.qZA()}}function F(t,e){if(1&t){const t=l.EpF();l.TgZ(0,"td",35),l.TgZ(1,"button",36),l.NdJ("click",function(){const e=l.CHM(t).$implicit;return l.oxw().onTransactionClick(e)}),l._uU(2,"View Info"),l.qZA(),l.qZA()}}function k(t,e){1&t&&(l.TgZ(0,"p"),l._uU(1,"No transaction available."),l.qZA())}function _(t,e){if(1&t&&(l.TgZ(0,"td",37),l.YNc(1,k,2,0,"p",38),l.qZA()),2&t){const t=l.oxw();l.xp6(1),l.Q6J("ngIf",!(null!=t.transactions&&t.transactions.data)||(null==t.transactions||null==t.transactions.data?null:t.transactions.data.length)<1)}}const N=function(t){return{"display-none":t}};function R(t,e){if(1&t&&l._UZ(0,"tr",39),2&t){const t=l.oxw();l.Q6J("ngClass",l.VKq(1,N,(null==t.transactions?null:t.transactions.data)&&(null==t.transactions||null==t.transactions.data?null:t.transactions.data.length)>0))}}function U(t,e){1&t&&l._UZ(0,"tr",40)}function J(t,e){1&t&&l._UZ(0,"tr",41)}const V=function(){return["no_transaction"]};let O=(()=>{class t{constructor(t,e,n){this.commonService=t,this.store=e,this.datePipe=n,this.dataRange=o.op[0],this.dataList=[],this.filterValue="",this.timezoneOffset=60*new Date(Date.now()).getTimezoneOffset(),this.scrollRanges=o.op,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS||this.screenSize===o.cu.SM?(this.flgSticky=!1,this.displayedColumns=["date","amount_paid","amount_received","actions"]):this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["date","amount_paid","num_payments","amount_received","num_invoices","actions"]):(this.flgSticky=!0,this.displayedColumns=["date","amount_paid","num_payments","amount_received","num_invoices","actions"])}ngOnInit(){this.dataList&&this.dataList.length>0&&this.loadTransactionsTable(this.dataList)}ngAfterViewInit(){this.setTableWidgets()}ngOnChanges(t){t.dataList&&!t.dataList.firstChange&&this.loadTransactionsTable(this.dataList),t.filterValue&&!t.filterValue.firstChange&&this.applyFilter()}onTransactionClick(t){const e=[[{key:"date",value:this.datePipe.transform(t.date,this.dataRange===o.op[1]?"MMM/yyyy":"dd/MMM/yyyy"),title:"Date",width:100,type:o.Gi.DATE}],[{key:"amount_paid",value:Math.round(t.amount_paid),title:"Amount Paid (Sats)",width:50,type:o.Gi.NUMBER},{key:"num_payments",value:t.num_payments,title:"# Payments",width:50,type:o.Gi.NUMBER}],[{key:"amount_received",value:Math.round(t.amount_received),title:"Amount Received (Sats)",width:50,type:o.Gi.NUMBER},{key:"num_invoices",value:t.num_invoices,title:"# Invoices",width:50,type:o.Gi.NUMBER}]];this.store.dispatch(new r.wu({data:{type:o.n_.INFORMATION,alertTitle:"Transaction Summary",message:e}}))}applyFilter(){this.transactions&&(this.transactions.filter=this.filterValue.trim().toLowerCase())}loadTransactionsTable(t){this.transactions=new s.by(t?[...t]:[]),this.setTableWidgets()}setTableWidgets(){this.transactions&&this.transactions.data&&this.transactions.data.length>0&&(this.transactions.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.transactions.sort=this.sort,this.transactions.filterPredicate=(t,e)=>((t.date?(this.datePipe.transform(t.date,"dd/MMM")+"/"+t.date.getFullYear()).toLowerCase():"")+JSON.stringify(t).toLowerCase()).includes(e),this.transactions.paginator=this.paginator)}onDownloadCSV(){this.transactions.data&&this.transactions.data.length>0&&this.commonService.downloadFile(this.dataList,"Transactions-report-"+this.dataRange.toLowerCase())}}return t.\u0275fac=function(e){return new(e||t)(l.Y36(c.v),l.Y36(u.yh),l.Y36(d.uU))},t.\u0275cmp=l.Xpm({type:t,selectors:[["rtl-transactions-report-table"]],viewQuery:function(t,e){if(1&t&&(l.Gf(i.YE,5),l.Gf(a.NW,5)),2&t){let t;l.iGM(t=l.CRH())&&(e.sort=t.first),l.iGM(t=l.CRH())&&(e.paginator=t.first)}},inputs:{dataRange:"dataRange",dataList:"dataList",filterValue:"filterValue"},features:[l._Bn([{provide:a.ye,useValue:(0,o.pt)("Transactions")}]),l.TTD],decls:34,vars:10,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","ngModelChange","input","keyup"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","date"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","amount_paid"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","num_payments"],["matColumnDef","amount_received"],["matColumnDef","num_invoices"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_transaction"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(l.TgZ(0,"div",0),l.TgZ(1,"div",1),l.TgZ(2,"div",2),l._UZ(3,"div",3),l.TgZ(4,"mat-form-field",4),l.TgZ(5,"input",5),l.NdJ("ngModelChange",function(t){return e.filterValue=t})("input",function(){return e.applyFilter()})("keyup",function(){return e.applyFilter()}),l.qZA(),l.qZA(),l.qZA(),l.TgZ(6,"div",6),l.TgZ(7,"div",7),l.TgZ(8,"table",8,9),l.ynx(10,10),l.YNc(11,A,2,0,"th",11),l.YNc(12,S,3,4,"td",12),l.BQk(),l.ynx(13,13),l.YNc(14,w,2,0,"th",14),l.YNc(15,v,4,4,"td",12),l.BQk(),l.ynx(16,15),l.YNc(17,C,2,0,"th",14),l.YNc(18,b,4,3,"td",12),l.BQk(),l.ynx(19,16),l.YNc(20,q,2,0,"th",14),l.YNc(21,L,4,4,"td",12),l.BQk(),l.ynx(22,17),l.YNc(23,Y,2,0,"th",14),l.YNc(24,D,4,3,"td",12),l.BQk(),l.ynx(25,18),l.YNc(26,M,6,0,"th",19),l.YNc(27,F,3,0,"td",20),l.BQk(),l.ynx(28,21),l.YNc(29,_,2,1,"td",22),l.BQk(),l.YNc(30,R,1,3,"tr",23),l.YNc(31,U,1,0,"tr",24),l.YNc(32,J,1,0,"tr",25),l.qZA(),l._UZ(33,"mat-paginator",26),l.qZA(),l.qZA(),l.qZA(),l.qZA()),2&t&&(l.xp6(5),l.Q6J("ngModel",e.filterValue),l.xp6(3),l.Q6J("dataSource",e.transactions),l.xp6(22),l.Q6J("matFooterRowDef",l.DdM(9,V)),l.xp6(1),l.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),l.xp6(1),l.Q6J("matRowDefColumns",e.displayedColumns),l.xp6(1),l.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[g.xw,g.yH,g.Wh,m.KE,f.Nt,p.Fj,p.JJ,p.On,h.$V,s.BZ,i.YE,s.w1,s.fO,s.Dz,s.mD,s.Ke,s.as,s.nj,a.NW,s.ge,i.nU,s.ev,x.gD,x.$L,y.ey,Z.lW,s.yh,d.O5,s.Q2,d.mk,T.oO,s.XQ,s.Gk],pipes:[d.uU,d.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})()},3474:(t,e,n)=>{"use strict";n.d(e,{F:()=>s});var a=n(6073),i=n(1572);let s=(()=>{class t{validate(t){return this.max?a.kI.max(+this.max)(t):null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=i.lG2({type:t,selectors:[["input","max",""]],inputs:{max:"max"},features:[i._Bn([{provide:a.Cf,useExisting:t,multi:!0}])]}),t})()}}]); \ No newline at end of file diff --git a/angular/index.html b/angular/index.html deleted file mode 100644 index f063310a..00000000 --- a/angular/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - RTL - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/angular/main.eecf078bfae29f102c6f.js b/angular/main.eecf078bfae29f102c6f.js deleted file mode 100644 index 1057b859..00000000 --- a/angular/main.eecf078bfae29f102c6f.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkrtl=self.webpackChunkrtl||[]).push([[179],{8255:t=>{function e(t){return Promise.resolve().then(()=>{var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e})}e.keys=()=>[],e.resolve=e,e.id=8255,t.exports=e},709:(t,e,i)=>{"use strict";i.d(e,{l3:()=>s,_j:()=>n,LC:()=>r,ZN:()=>y,jt:()=>a,pV:()=>f,ru:()=>l,F4:()=>d,IO:()=>m,vP:()=>c,SB:()=>u,oB:()=>h,eR:()=>p,X$:()=>o,ZE:()=>b,k1:()=>v});class n{}class r{}const s="*";function o(t,e){return{type:7,name:t,definitions:e,options:{}}}function a(t,e=null){return{type:4,styles:e,timings:t}}function l(t,e=null){return{type:3,steps:t,options:e}}function c(t,e=null){return{type:2,steps:t,options:e}}function h(t){return{type:6,styles:t,offset:null}}function u(t,e,i){return{type:0,name:t,styles:e,options:i}}function d(t){return{type:5,steps:t}}function p(t,e,i=null){return{type:1,expr:t,animation:e,options:i}}function f(t=null){return{type:9,options:t}}function m(t,e,i=null){return{type:11,selector:t,animation:e,options:i}}function g(t){Promise.resolve(null).then(t)}class y{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){g(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}}class b{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,n=0;const r=this.players.length;0==r?g(()=>this._onFinish()):this.players.forEach(t=>{t.onDone(()=>{++e==r&&this._onFinish()}),t.onDestroy(()=>{++i==r&&this._onDestroy()}),t.onStart(()=>{++n==r&&this._onStart()})}),this.totalTime=this.players.reduce((t,e)=>Math.max(t,e.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(t=>{const i=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(i)})}getPosition(){const t=this.players.reduce((t,e)=>null===t||e.totalTime>t.totalTime?e:t,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}}const v="!"},4621:(t,e,i)=>{"use strict";i.d(e,{rt:()=>J,s1:()=>k,$s:()=>C,Qr:()=>Z,kH:()=>G,mK:()=>R,Em:()=>T,tE:()=>H,qV:()=>D,qm:()=>W,Kd:()=>F,X6:()=>B,yG:()=>U});var n=i(1511),r=i(1572),s=i(9666),o=i(6042),a=i(2041),l=i(5842),c=i(343),h=i(5057),u=i(8868),d=i(1681),p=i(9056),f=i(9861),m=i(1353),g=i(6337);function y(t,e){return(t.getAttribute(e)||"").match(/\S+/g)||[]}const b="cdk-describedby-message-container",v="cdk-describedby-host";let _=0;const w=new Map;let x=null,C=(()=>{class t{constructor(t){this._document=t}describe(t,e,i){if(!this._canBeDescribed(t,e))return;const n=A(e,i);"string"!=typeof e?(S(e),w.set(n,{messageElement:e,referenceCount:0})):w.has(n)||this._createMessageElement(e,i),this._isElementDescribedByMessage(t,n)||this._addMessageReference(t,n)}removeDescription(t,e,i){if(!e||!this._isElementNode(t))return;const n=A(e,i);if(this._isElementDescribedByMessage(t,n)&&this._removeMessageReference(t,n),"string"==typeof e){const t=w.get(n);t&&0===t.referenceCount&&this._deleteMessageElement(n)}x&&0===x.childNodes.length&&this._deleteMessagesContainer()}ngOnDestroy(){const t=this._document.querySelectorAll("[cdk-describedby-host]");for(let e=0;e0!=t.indexOf("cdk-describedby-message"));t.setAttribute("aria-describedby",e.join(" "))}_addMessageReference(t,e){const i=w.get(e);!function(t,e,i){const n=y(t,e);n.some(t=>t.trim()==i.trim())||(n.push(i.trim()),t.setAttribute(e,n.join(" ")))}(t,"aria-describedby",i.messageElement.id),t.setAttribute(v,""),i.referenceCount++}_removeMessageReference(t,e){const i=w.get(e);i.referenceCount--,function(t,e,i){const n=y(t,e).filter(t=>t!=i.trim());n.length?t.setAttribute(e,n.join(" ")):t.removeAttribute(e)}(t,"aria-describedby",i.messageElement.id),t.removeAttribute(v)}_isElementDescribedByMessage(t,e){const i=y(t,"aria-describedby"),n=w.get(e),r=n&&n.messageElement.id;return!!r&&-1!=i.indexOf(r)}_canBeDescribed(t,e){if(!this._isElementNode(t))return!1;if(e&&"object"==typeof e)return!0;const i=null==e?"":`${e}`.trim(),n=t.getAttribute("aria-label");return!(!i||n&&n.trim()===i)}_isElementNode(t){return t.nodeType===this._document.ELEMENT_NODE}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.K0))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(n.K0))},token:t,providedIn:"root"}),t})();function A(t,e){return"string"==typeof t?`${e||""}/${t}`:t}function S(t){t.id||(t.id="cdk-describedby-message-"+_++)}class E{constructor(t){this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new s.x,this._typeaheadSubscription=o.w0.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._skipPredicateFn=t=>t.disabled,this._pressedLetters=[],this.tabOut=new s.x,this.change=new s.x,t instanceof r.n_E&&t.changes.subscribe(t=>{if(this._activeItem){const e=t.toArray().indexOf(this._activeItem);e>-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e)}})}skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe((0,c.b)(t=>this._pressedLetters.push(t)),(0,h.b)(t),(0,u.h)(()=>this._pressedLetters.length>0),(0,d.U)(()=>this._pressedLetters.join(""))).subscribe(t=>{const e=this._getItemsArray();for(let i=1;i!t[e]||this._allowedModifierKeys.indexOf(e)>-1);switch(e){case l.Mf:return void this.tabOut.next();case l.JH:if(this._vertical&&i){this.setNextItemActive();break}return;case l.LH:if(this._vertical&&i){this.setPreviousItemActive();break}return;case l.SV:if(this._horizontal&&i){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case l.oh:if(this._horizontal&&i){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case l.Sd:if(this._homeAndEnd&&i){this.setFirstItemActive();break}return;case l.uR:if(this._homeAndEnd&&i){this.setLastItemActive();break}return;default:return void((i||(0,l.Vb)(t,"shiftKey"))&&(t.key&&1===t.key.length?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(e>=l.A&&e<=l.Z||e>=l.xE&&e<=l.aO)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],t.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(t){const e=this._getItemsArray(),i="number"==typeof t?t:e.indexOf(t),n=e[i];this._activeItem=null==n?null:n,this._activeItemIndex=i}_setActiveItemByDelta(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)}_setActiveInWrapMode(t){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const n=(this._activeItemIndex+t*i+e.length)%e.length;if(!this._skipPredicateFn(e[n]))return void this.setActiveItem(n)}}_setActiveInDefaultMode(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)}_setActiveItemByIndex(t,e){const i=this._getItemsArray();if(i[t]){for(;this._skipPredicateFn(i[t]);)if(!i[t+=e])return;this.setActiveItem(t)}}_getItemsArray(){return this._items instanceof r.n_E?this._items.toArray():this._items}}class k extends E{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}class T extends E{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}}let M=(()=>{class t{constructor(t){this._platform=t}isDisabled(t){return t.hasAttribute("disabled")}isVisible(t){return function(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(t)&&"visible"===getComputedStyle(t).visibility}isTabbable(t){if(!this._platform.isBrowser)return!1;const e=function(t){try{return t.frameElement}catch(e){return null}}((i=t).ownerDocument&&i.ownerDocument.defaultView||window);var i;if(e){if(-1===I(e))return!1;if(!this.isVisible(e))return!1}let n=t.nodeName.toLowerCase(),r=I(t);return t.hasAttribute("contenteditable")?-1!==r:"iframe"!==n&&"object"!==n&&!(this._platform.WEBKIT&&this._platform.IOS&&!function(t){let e=t.nodeName.toLowerCase(),i="input"===e&&t.type;return"text"===i||"password"===i||"select"===e||"textarea"===e}(t))&&("audio"===n?!!t.hasAttribute("controls")&&-1!==r:"video"===n?-1!==r&&(null!==r||this._platform.FIREFOX||t.hasAttribute("controls")):t.tabIndex>=0)}isFocusable(t,e){return function(t){return!function(t){return function(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function(t){let e=t.nodeName.toLowerCase();return"input"===e||"select"===e||"button"===e||"textarea"===e}(t)||function(t){return function(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||L(t))}(t)&&!this.isDisabled(t)&&((null==e?void 0:e.ignoreVisibility)||this.isVisible(t))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(m.t4))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(m.t4))},token:t,providedIn:"root"}),t})();function L(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let e=t.getAttribute("tabindex");return"-32768"!=e&&!(!e||isNaN(parseInt(e,10)))}function I(t){if(!L(t))return null;const e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}class O{constructor(t,e,i,n,r=!1){this._element=t,this._checker=e,this._ngZone=i,this._document=n,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,r||this.attachAnchors()}get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}destroy(){const t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.parentNode&&t.parentNode.removeChild(t)),e&&(e.removeEventListener("focus",this.endAnchorListener),e.parentNode&&e.parentNode.removeChild(e)),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){let e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);for(let i=0;i=0;i--){let t=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(t)return t}return null}_createAnchor(){const t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._ngZone.isStable?t():this._ngZone.onStable.pipe((0,p.q)(1)).subscribe(t)}}let D=(()=>{class t{constructor(t,e,i){this._checker=t,this._ngZone=e,this._document=i}create(t,e=!1){return new O(t,this._checker,this._ngZone,this._document,e)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(M),r.LFG(r.R0b),r.LFG(n.K0))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(M),r.LFG(r.R0b),r.LFG(n.K0))},token:t,providedIn:"root"}),t})(),R=(()=>{class t{constructor(t,e,i){this._elementRef=t,this._focusTrapFactory=e,this._previouslyFocusedElement=null,this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0)}get enabled(){return this.focusTrap.enabled}set enabled(t){this.focusTrap.enabled=(0,f.Ig)(t)}get autoCapture(){return this._autoCapture}set autoCapture(t){this._autoCapture=(0,f.Ig)(t)}ngOnDestroy(){this.focusTrap.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap.hasAttached()||this.focusTrap.attachAnchors()}ngOnChanges(t){const e=t.autoCapture;e&&!e.firstChange&&this.autoCapture&&this.focusTrap.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=(0,m.ht)(),this.focusTrap.focusInitialElementWhenReady()}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq),r.Y36(D),r.Y36(n.K0))},t.\u0275dir=r.lG2({type:t,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:["cdkTrapFocus","enabled"],autoCapture:["cdkTrapFocusAutoCapture","autoCapture"]},exportAs:["cdkTrapFocus"],features:[r.TTD]}),t})();"undefined"!=typeof Element&∈const N=new r.OlP("liveAnnouncerElement",{providedIn:"root",factory:function(){return null}}),P=new r.OlP("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let F=(()=>{class t{constructor(t,e,i,n){this._ngZone=e,this._defaultOptions=n,this._document=i,this._liveElement=t||this._createLiveElement()}announce(t,...e){const i=this._defaultOptions;let n,r;return 1===e.length&&"number"==typeof e[0]?r=e[0]:[n,r]=e,this.clear(),clearTimeout(this._previousTimeout),n||(n=i&&i.politeness?i.politeness:"polite"),null==r&&i&&(r=i.duration),this._liveElement.setAttribute("aria-live",n),this._ngZone.runOutsideAngular(()=>new Promise(e=>{clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=t,e(),"number"==typeof r&&(this._previousTimeout=setTimeout(()=>this.clear(),r))},100)}))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement&&this._liveElement.parentNode&&(this._liveElement.parentNode.removeChild(this._liveElement),this._liveElement=null)}_createLiveElement(){const t="cdk-live-announcer-element",e=this._document.getElementsByClassName(t),i=this._document.createElement("div");for(let n=0;n{class t{constructor(t,e,i,n){this._elementRef=t,this._liveAnnouncer=e,this._contentObserver=i,this._ngZone=n,this._politeness="polite"}get politeness(){return this._politeness}set politeness(t){this._politeness="off"===t||"assertive"===t?t:"polite","off"===this._politeness?this._subscription&&(this._subscription.unsubscribe(),this._subscription=null):this._subscription||(this._subscription=this._ngZone.runOutsideAngular(()=>this._contentObserver.observe(this._elementRef).subscribe(()=>{const t=this._elementRef.nativeElement.textContent;t!==this._previousAnnouncedText&&(this._liveAnnouncer.announce(t,this._politeness),this._previousAnnouncedText=t)})))}ngOnDestroy(){this._subscription&&this._subscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq),r.Y36(F),r.Y36(g.yq),r.Y36(r.R0b))},t.\u0275dir=r.lG2({type:t,selectors:[["","cdkAriaLive",""]],inputs:{politeness:["cdkAriaLive","politeness"]},exportAs:["cdkAriaLive"]}),t})();function B(t){return 0===t.buttons}function U(t){const e=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!e||-1!==e.identifier||null!=e.radiusX&&1!==e.radiusX||null!=e.radiusY&&1!==e.radiusY)}const q=new r.OlP("cdk-focus-monitor-default-options"),z=(0,m.i$)({passive:!0,capture:!0});let H=(()=>{class t{constructor(t,e,i,n){this._ngZone=t,this._platform=e,this._origin=null,this._windowFocused=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._documentKeydownListener=()=>{this._lastTouchTarget=null,this._setOriginForCurrentEventQueue("keyboard")},this._documentMousedownListener=t=>{if(!this._lastTouchTarget){const e=B(t)?"keyboard":"mouse";this._setOriginForCurrentEventQueue(e)}},this._documentTouchstartListener=t=>{U(t)?this._lastTouchTarget||this._setOriginForCurrentEventQueue("keyboard"):(null!=this._touchTimeoutId&&clearTimeout(this._touchTimeoutId),this._lastTouchTarget=Y(t),this._touchTimeoutId=setTimeout(()=>this._lastTouchTarget=null,650))},this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)},this._rootNodeFocusAndBlurListener=t=>{const e=Y(t),i="focus"===t.type?this._onFocus:this._onBlur;for(let n=e;n;n=n.parentElement)i.call(this,t,n)},this._document=i,this._detectionMode=(null==n?void 0:n.detectionMode)||0}monitor(t,e=!1){const i=(0,f.fI)(t);if(!this._platform.isBrowser||1!==i.nodeType)return(0,a.of)(null);const n=(0,m.kV)(i)||this._getDocument(),r=this._elementInfo.get(i);if(r)return e&&(r.checkChildren=!0),r.subject;const o={checkChildren:e,subject:new s.x,rootNode:n};return this._elementInfo.set(i,o),this._registerGlobalListeners(o),o.subject}stopMonitoring(t){const e=(0,f.fI)(t),i=this._elementInfo.get(e);i&&(i.subject.complete(),this._setClasses(e),this._elementInfo.delete(e),this._removeGlobalListeners(i))}focusVia(t,e,i){const n=(0,f.fI)(t);n===this._getDocument().activeElement?this._getClosestElementsInfo(n).forEach(([t,i])=>this._originChanged(t,e,i)):(this._setOriginForCurrentEventQueue(e),"function"==typeof n.focus&&n.focus(i))}ngOnDestroy(){this._elementInfo.forEach((t,e)=>this.stopMonitoring(e))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_toggleClass(t,e,i){i?t.classList.add(e):t.classList.remove(e)}_getFocusOrigin(t){return this._origin?this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:this._wasCausedByTouch(t)?"touch":"program"}_setClasses(t,e){this._toggleClass(t,"cdk-focused",!!e),this._toggleClass(t,"cdk-touch-focused","touch"===e),this._toggleClass(t,"cdk-keyboard-focused","keyboard"===e),this._toggleClass(t,"cdk-mouse-focused","mouse"===e),this._toggleClass(t,"cdk-program-focused","program"===e)}_setOriginForCurrentEventQueue(t){this._ngZone.runOutsideAngular(()=>{this._origin=t,0===this._detectionMode&&(this._originTimeoutId=setTimeout(()=>this._origin=null,1))})}_wasCausedByTouch(t){const e=Y(t);return this._lastTouchTarget instanceof Node&&e instanceof Node&&(e===this._lastTouchTarget||e.contains(this._lastTouchTarget))}_onFocus(t,e){const i=this._elementInfo.get(e);i&&(i.checkChildren||e===Y(t))&&this._originChanged(e,this._getFocusOrigin(t),i)}_onBlur(t,e){const i=this._elementInfo.get(e);!i||i.checkChildren&&t.relatedTarget instanceof Node&&e.contains(t.relatedTarget)||(this._setClasses(e),this._emitOrigin(i.subject,null))}_emitOrigin(t,e){this._ngZone.run(()=>t.next(e))}_registerGlobalListeners(t){if(!this._platform.isBrowser)return;const e=t.rootNode,i=this._rootNodeFocusListenerCount.get(e)||0;i||this._ngZone.runOutsideAngular(()=>{e.addEventListener("focus",this._rootNodeFocusAndBlurListener,z),e.addEventListener("blur",this._rootNodeFocusAndBlurListener,z)}),this._rootNodeFocusListenerCount.set(e,i+1),1==++this._monitoredElementCount&&this._ngZone.runOutsideAngular(()=>{const t=this._getDocument(),e=this._getWindow();t.addEventListener("keydown",this._documentKeydownListener,z),t.addEventListener("mousedown",this._documentMousedownListener,z),t.addEventListener("touchstart",this._documentTouchstartListener,z),e.addEventListener("focus",this._windowFocusListener)})}_removeGlobalListeners(t){const e=t.rootNode;if(this._rootNodeFocusListenerCount.has(e)){const t=this._rootNodeFocusListenerCount.get(e);t>1?this._rootNodeFocusListenerCount.set(e,t-1):(e.removeEventListener("focus",this._rootNodeFocusAndBlurListener,z),e.removeEventListener("blur",this._rootNodeFocusAndBlurListener,z),this._rootNodeFocusListenerCount.delete(e))}if(!--this._monitoredElementCount){const t=this._getDocument(),e=this._getWindow();t.removeEventListener("keydown",this._documentKeydownListener,z),t.removeEventListener("mousedown",this._documentMousedownListener,z),t.removeEventListener("touchstart",this._documentTouchstartListener,z),e.removeEventListener("focus",this._windowFocusListener),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._touchTimeoutId),clearTimeout(this._originTimeoutId)}}_originChanged(t,e,i){this._setClasses(t,e),this._emitOrigin(i.subject,e),this._lastFocusOrigin=e}_getClosestElementsInfo(t){const e=[];return this._elementInfo.forEach((i,n)=>{(n===t||i.checkChildren&&n.contains(t))&&e.push([n,i])}),e}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(r.R0b),r.LFG(m.t4),r.LFG(n.K0,8),r.LFG(q,8))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(r.R0b),r.LFG(m.t4),r.LFG(n.K0,8),r.LFG(q,8))},token:t,providedIn:"root"}),t})();function Y(t){return t.composedPath?t.composedPath()[0]:t.target}let G=(()=>{class t{constructor(t,e){this._elementRef=t,this._focusMonitor=e,this.cdkFocusChange=new r.vpe}ngAfterViewInit(){const t=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(t,1===t.nodeType&&t.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(t=>this.cdkFocusChange.emit(t))}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq),r.Y36(H))},t.\u0275dir=r.lG2({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"}}),t})();const j="cdk-high-contrast-black-on-white",V="cdk-high-contrast-white-on-black",Q="cdk-high-contrast-active";let W=(()=>{class t{constructor(t,e){this._platform=t,this._document=e}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const t=this._document.createElement("div");t.style.backgroundColor="rgb(1,2,3)",t.style.position="absolute",this._document.body.appendChild(t);const e=this._document.defaultView||window,i=e&&e.getComputedStyle?e.getComputedStyle(t):null,n=(i&&i.backgroundColor||"").replace(/ /g,"");switch(this._document.body.removeChild(t),n){case"rgb(0,0,0)":return 2;case"rgb(255,255,255)":return 1}return 0}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const t=this._document.body.classList;t.remove(Q),t.remove(j),t.remove(V),this._hasCheckedHighContrastMode=!0;const e=this.getHighContrastMode();1===e?(t.add(Q),t.add(j)):2===e&&(t.add(Q),t.add(V))}}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(m.t4),r.LFG(n.K0))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(m.t4),r.LFG(n.K0))},token:t,providedIn:"root"}),t})(),J=(()=>{class t{constructor(t){t._applyBodyHighContrastModeCssClasses()}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(W))},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({imports:[[m.ud,g.Q8]]}),t})()},2526:(t,e,i)=>{"use strict";i.d(e,{vT:()=>a,Is:()=>o});var n=i(1572),r=i(1511);const s=new n.OlP("cdk-dir-doc",{providedIn:"root",factory:function(){return(0,n.f3M)(r.K0)}});let o=(()=>{class t{constructor(t){if(this.value="ltr",this.change=new n.vpe,t){const e=t.documentElement?t.documentElement.dir:null,i=(t.body?t.body.dir:null)||e;this.value="ltr"===i||"rtl"===i?i:"ltr"}}ngOnDestroy(){this.change.complete()}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(s,8))},t.\u0275prov=n.Yz7({factory:function(){return new t(n.LFG(s,8))},token:t,providedIn:"root"}),t})(),a=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})()},9861:(t,e,i)=>{"use strict";i.d(e,{t6:()=>o,Eq:()=>a,Ig:()=>r,HM:()=>l,fI:()=>c,su:()=>s,du:()=>h});var n=i(1572);function r(t){return null!=t&&"false"!=`${t}`}function s(t,e=0){return o(t)?Number(t):e}function o(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function a(t){return Array.isArray(t)?t:[t]}function l(t){return null==t?"":"string"==typeof t?t:`${t}px`}function c(t){return t instanceof n.SBq?t.nativeElement:t}function h(t,e=/\s+/){const i=[];if(null!=t){const n=Array.isArray(t)?t:`${t}`.split(e);for(const t of n){const e=`${t}`.trim();e&&i.push(e)}}return i}},4230:(t,e,i)=>{"use strict";i.d(e,{P3:()=>c,o2:()=>a,Ov:()=>d,A8:()=>p,yy:()=>h,eX:()=>u,k:()=>f,Z9:()=>l});var n=i(4776),r=i(2041),s=i(9666),o=i(1572);class a{}function l(t){return t&&"function"==typeof t.connect}class c extends a{constructor(t){super(),this._data=t}connect(){return(0,n.b)(this._data)?this._data:(0,r.of)(this._data)}disconnect(){}}class h{applyChanges(t,e,i,n,r){t.forEachOperation((t,n,s)=>{let o,a;if(null==t.previousIndex){const r=i(t,n,s);o=e.createEmbeddedView(r.templateRef,r.context,r.index),a=1}else null==s?(e.remove(n),a=3):(o=e.get(n),e.move(o,s),a=2);r&&r({context:null==o?void 0:o.context,operation:a,record:t})})}detach(){}}class u{constructor(){this.viewCacheSize=20,this._viewCache=[]}applyChanges(t,e,i,n,r){t.forEachOperation((t,s,o)=>{let a,l;null==t.previousIndex?(a=this._insertView(()=>i(t,s,o),o,e,n(t)),l=a?1:0):null==o?(this._detachAndCacheView(s,e),l=3):(a=this._moveView(s,o,e,n(t)),l=2),r&&r({context:null==a?void 0:a.context,operation:l,record:t})})}detach(){for(const t of this._viewCache)t.destroy();this._viewCache=[]}_insertView(t,e,i,n){const r=this._insertViewFromCache(e,i);if(r)return void(r.context.$implicit=n);const s=t();return i.createEmbeddedView(s.templateRef,s.context,s.index)}_detachAndCacheView(t,e){const i=e.detach(t);this._maybeCacheView(i,e)}_moveView(t,e,i,n){const r=i.get(t);return i.move(r,e),r.context.$implicit=n,r}_maybeCacheView(t,e){if(this._viewCache.lengththis._markSelected(t)):this._markSelected(e[0]),this._selectedToEmit.length=0)}get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}select(...t){this._verifyValueAssignment(t),t.forEach(t=>this._markSelected(t)),this._emitChangeEvent()}deselect(...t){this._verifyValueAssignment(t),t.forEach(t=>this._unmarkSelected(t)),this._emitChangeEvent()}toggle(t){this.isSelected(t)?this.deselect(t):this.select(t)}clear(){this._unmarkAll(),this._emitChangeEvent()}isSelected(t){return this._selection.has(t)}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){this.isSelected(t)||(this._multiple||this._unmarkAll(),this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){}}let p=(()=>{class t{constructor(){this._listeners=[]}notify(t,e){for(let i of this._listeners)i(t,e)}listen(t){return this._listeners.push(t),()=>{this._listeners=this._listeners.filter(e=>t!==e)}}ngOnDestroy(){this._listeners=[]}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=o.Yz7({factory:function(){return new t},token:t,providedIn:"root"}),t})();const f=new o.OlP("_ViewRepeater")},5842:(t,e,i)=>{"use strict";i.d(e,{A:()=>b,ZH:()=>n,JH:()=>m,uR:()=>h,K5:()=>s,hY:()=>o,Sd:()=>u,oh:()=>d,aO:()=>y,VM:()=>c,Ku:()=>l,SV:()=>f,L_:()=>a,Mf:()=>r,LH:()=>p,Z:()=>v,xE:()=>g,Vb:()=>_});const n=8,r=9,s=13,o=27,a=32,l=33,c=34,h=35,u=36,d=37,p=38,f=39,m=40,g=48,y=57,b=65,v=90;function _(t,...e){return e.length?e.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}},72:(t,e,i)=>{"use strict";i.d(e,{Yg:()=>w,u3:()=>C,xu:()=>g});var n=i(1572),r=i(9861),s=i(9666),o=i(5868),a=i(5613),l=i(2391),c=i(9056),h=i(4444),u=i(5057),d=i(1681),p=i(1258),f=i(9568),m=i(1353);let g=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})();const y=new Set;let b,v=(()=>{class t{constructor(t){this._platform=t,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):_}matchMedia(t){return this._platform.WEBKIT&&function(t){if(!y.has(t))try{b||(b=document.createElement("style"),b.setAttribute("type","text/css"),document.head.appendChild(b)),b.sheet&&(b.sheet.insertRule(`@media ${t} {.fx-query-test{ }}`,0),y.add(t))}catch(e){console.error(e)}}(t),this._matchMedia(t)}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(m.t4))},t.\u0275prov=n.Yz7({factory:function(){return new t(n.LFG(m.t4))},token:t,providedIn:"root"}),t})();function _(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let w=(()=>{class t{constructor(t,e){this._mediaMatcher=t,this._zone=e,this._queries=new Map,this._destroySubject=new s.x}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(t){return x((0,r.Eq)(t)).some(t=>this._registerQuery(t).mql.matches)}observe(t){const e=x((0,r.Eq)(t)).map(t=>this._registerQuery(t).observable);let i=(0,o.a)(e);return i=(0,a.z)(i.pipe((0,c.q)(1)),i.pipe((0,h.T)(1),(0,u.b)(0))),i.pipe((0,d.U)(t=>{const e={matches:!1,breakpoints:{}};return t.forEach(({matches:t,query:i})=>{e.matches=e.matches||t,e.breakpoints[i]=t}),e}))}_registerQuery(t){if(this._queries.has(t))return this._queries.get(t);const e=this._mediaMatcher.matchMedia(t),i={observable:new l.y(t=>{const i=e=>this._zone.run(()=>t.next(e));return e.addListener(i),()=>{e.removeListener(i)}}).pipe((0,p.O)(e),(0,d.U)(({matches:e})=>({query:t,matches:e})),(0,f.R)(this._destroySubject)),mql:e};return this._queries.set(t,i),i}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(v),n.LFG(n.R0b))},t.\u0275prov=n.Yz7({factory:function(){return new t(n.LFG(v),n.LFG(n.R0b))},token:t,providedIn:"root"}),t})();function x(t){return t.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}const C={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"}},6337:(t,e,i)=>{"use strict";i.d(e,{wD:()=>h,yq:()=>c,Q8:()=>u});var n=i(9861),r=i(1572),s=i(2391),o=i(9666),a=i(5057);let l=(()=>{class t{create(t){return"undefined"==typeof MutationObserver?null:new MutationObserver(t)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=r.Yz7({factory:function(){return new t},token:t,providedIn:"root"}),t})(),c=(()=>{class t{constructor(t){this._mutationObserverFactory=t,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((t,e)=>this._cleanupObserver(e))}observe(t){const e=(0,n.fI)(t);return new s.y(t=>{const i=this._observeElement(e).subscribe(t);return()=>{i.unsubscribe(),this._unobserveElement(e)}})}_observeElement(t){if(this._observedElements.has(t))this._observedElements.get(t).count++;else{const e=new o.x,i=this._mutationObserverFactory.create(t=>e.next(t));i&&i.observe(t,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(t,{observer:i,stream:e,count:1})}return this._observedElements.get(t).stream}_unobserveElement(t){this._observedElements.has(t)&&(this._observedElements.get(t).count--,this._observedElements.get(t).count||this._cleanupObserver(t))}_cleanupObserver(t){if(this._observedElements.has(t)){const{observer:e,stream:i}=this._observedElements.get(t);e&&e.disconnect(),i.complete(),this._observedElements.delete(t)}}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(l))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(l))},token:t,providedIn:"root"}),t})(),h=(()=>{class t{constructor(t,e,i){this._contentObserver=t,this._elementRef=e,this._ngZone=i,this.event=new r.vpe,this._disabled=!1,this._currentSubscription=null}get disabled(){return this._disabled}set disabled(t){this._disabled=(0,n.Ig)(t),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(t){this._debounce=(0,n.su)(t),this._subscribe()}ngAfterContentInit(){this._currentSubscription||this.disabled||this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const t=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?t.pipe((0,a.b)(this.debounce)):t).subscribe(this.event)})}_unsubscribe(){var t;null===(t=this._currentSubscription)||void 0===t||t.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(c),r.Y36(r.SBq),r.Y36(r.R0b))},t.\u0275dir=r.lG2({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),t})(),u=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({providers:[l]}),t})()},369:(t,e,i)=>{"use strict";i.d(e,{pI:()=>J,xu:()=>W,_G:()=>F,aV:()=>j,X_:()=>E,Xj:()=>D,U8:()=>K});var n=i(4894),r=i(1572),s=i(1353),o=i(2526),a=i(1511),l=i(9861),c=i(6899),h=i(9666),u=i(6042),d=i(5446),p=i(3386),f=i(4659),m=i(9056),g=i(9568),y=i(5842);const b=(0,s.Mq)();class v{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=(0,l.HM)(-this._previousScrollPosition.left),t.style.top=(0,l.HM)(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,e=t.style,i=this._document.body.style,n=e.scrollBehavior||"",r=i.scrollBehavior||"";this._isEnabled=!1,e.left=this._previousHTMLStyles.left,e.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),b&&(e.scrollBehavior=i.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),b&&(e.scrollBehavior=n,i.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const t=this._document.body,e=this._viewportRuler.getViewportSize();return t.scrollHeight>e.height||t.scrollWidth>e.width}}class _{constructor(t,e,i,n){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=n,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(t){this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{const t=this._viewportRuler.getViewportScrollPosition().top;Math.abs(t-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class w{enable(){}disable(){}attach(){}}function x(t,e){return e.some(e=>t.bottome.bottom||t.righte.right)}function C(t,e){return e.some(e=>t.tope.bottom||t.lefte.right)}class A{constructor(t,e,i,n){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=n,this._scrollSubscription=null}attach(t){this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const t=this._overlayRef.overlayElement.getBoundingClientRect(),{width:e,height:i}=this._viewportRuler.getViewportSize();x(t,[{width:e,height:i,bottom:i,right:e,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let S=(()=>{class t{constructor(t,e,i,n){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this.noop=()=>new w,this.close=t=>new _(this._scrollDispatcher,this._ngZone,this._viewportRuler,t),this.block=()=>new v(this._viewportRuler,this._document),this.reposition=t=>new A(this._scrollDispatcher,this._viewportRuler,this._ngZone,t),this._document=n}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.mF),r.LFG(n.rL),r.LFG(r.R0b),r.LFG(a.K0))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(n.mF),r.LFG(n.rL),r.LFG(r.R0b),r.LFG(a.K0))},token:t,providedIn:"root"}),t})();class E{constructor(t){if(this.scrollStrategy=new w,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const i of e)void 0!==t[i]&&(this[i]=t[i])}}}class k{constructor(t,e,i,n,r){this.offsetX=i,this.offsetY=n,this.panelClass=r,this.originX=t.originX,this.originY=t.originY,this.overlayX=e.overlayX,this.overlayY=e.overlayY}}class T{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let M=(()=>{class t{constructor(t){this._attachedOverlays=[],this._document=t}ngOnDestroy(){this.detach()}add(t){this.remove(t),this._attachedOverlays.push(t)}remove(t){const e=this._attachedOverlays.indexOf(t);e>-1&&this._attachedOverlays.splice(e,1),0===this._attachedOverlays.length&&this.detach()}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(a.K0))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(a.K0))},token:t,providedIn:"root"}),t})(),L=(()=>{class t extends M{constructor(t){super(t),this._keydownListener=t=>{const e=this._attachedOverlays;for(let i=e.length-1;i>-1;i--)if(e[i]._keydownEvents.observers.length>0){e[i]._keydownEvents.next(t);break}}}add(t){super.add(t),this._isAttached||(this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(a.K0))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(a.K0))},token:t,providedIn:"root"}),t})(),I=(()=>{class t extends M{constructor(t,e){super(t),this._platform=e,this._cursorStyleIsSet=!1,this._clickListener=t=>{const e=t.composedPath?t.composedPath()[0]:t.target,i=this._attachedOverlays.slice();for(let n=i.length-1;n>-1;n--){const r=i[n];if(!(r._outsidePointerEvents.observers.length<1)&&r.hasAttached()){if(r.overlayElement.contains(e))break;r._outsidePointerEvents.next(t)}}}}add(t){if(super.add(t),!this._isAttached){const t=this._document.body;t.addEventListener("click",this._clickListener,!0),t.addEventListener("auxclick",this._clickListener,!0),t.addEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=t.style.cursor,t.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const t=this._document.body;t.removeEventListener("click",this._clickListener,!0),t.removeEventListener("auxclick",this._clickListener,!0),t.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(t.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(a.K0),r.LFG(s.t4))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(a.K0),r.LFG(s.t4))},token:t,providedIn:"root"}),t})();const O="undefined"!=typeof __karma__&&!!__karma__||"undefined"!=typeof jasmine&&!!jasmine||"undefined"!=typeof jest&&!!jest||"undefined"!=typeof Mocha&&!!Mocha;let D=(()=>{class t{constructor(t,e){this._platform=e,this._document=t}ngOnDestroy(){const t=this._containerElement;t&&t.parentNode&&t.parentNode.removeChild(t)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const t="cdk-overlay-container";if(this._platform.isBrowser||O){const e=this._document.querySelectorAll(`.${t}[platform="server"], .${t}[platform="test"]`);for(let t=0;tthis._backdropClick.next(t),this._keydownEvents=new h.x,this._outsidePointerEvents=new h.x,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){let e=this._portalOutlet.attach(t);return!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host),this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe((0,m.q)(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this.detachBackdrop(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host&&this._host.parentNode&&(this._host.parentNode.removeChild(this._host),this._host=null),this._previousHostParent=this._pane=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config=Object.assign(Object.assign({},this._config),t),this._updateElementSize()}setDirection(t){this._config=Object.assign(Object.assign({},this._config),{direction:t}),this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=(0,l.HM)(this._config.width),t.height=(0,l.HM)(this._config.height),t.minWidth=(0,l.HM)(this._config.minWidth),t.minHeight=(0,l.HM)(this._config.minHeight),t.maxWidth=(0,l.HM)(this._config.maxWidth),t.maxHeight=(0,l.HM)(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),"undefined"!=typeof requestAnimationFrame?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){let t,e=this._backdropElement;if(!e)return;let i=()=>{e&&(e.removeEventListener("click",this._backdropClickHandler),e.removeEventListener("transitionend",i),e.parentNode&&e.parentNode.removeChild(e)),this._backdropElement==e&&(this._backdropElement=null),this._config.backdropClass&&this._toggleClasses(e,this._config.backdropClass,!1),clearTimeout(t)};e.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{e.addEventListener("transitionend",i)}),e.style.pointerEvents="none",t=this._ngZone.runOutsideAngular(()=>setTimeout(i,500))}_toggleClasses(t,e,i){const n=t.classList;(0,l.Eq)(e).forEach(t=>{t&&(i?n.add(t):n.remove(t))})}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const t=this._ngZone.onStable.pipe((0,g.R)((0,d.T)(this._attachments,this._detachments))).subscribe(()=>{this._pane&&this._host&&0!==this._pane.children.length||(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._previousHostParent.removeChild(this._host)),t.unsubscribe())})})}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}}const N="cdk-overlay-connected-position-bounding-box",P=/([A-Za-z%]+)$/;class F{constructor(t,e,i,n,r){this._viewportRuler=e,this._document=i,this._platform=n,this._overlayContainer=r,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new h.x,this._resizeSubscription=u.w0.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}get positions(){return this._preferredPositions}attach(t){this._validatePositions(),t.hostElement.classList.add(N),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect();const t=this._originRect,e=this._overlayRect,i=this._viewportRect,n=[];let r;for(let s of this._preferredPositions){let o=this._getOriginPoint(t,s),a=this._getOverlayPoint(o,e,s),l=this._getOverlayFit(a,e,i,s);if(l.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(s,o);this._canFitWithFlexibleDimensions(l,a,i)?n.push({position:s,origin:o,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(o,s)}):(!r||r.overlayFit.visibleAreae&&(e=n,t=i)}return this._isPushed=!1,void this._applyPosition(t.position,t.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(r.position,r.originPoint);this._applyPosition(r.position,r.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Z(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(N),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(!this._isDisposed&&(!this._platform||this._platform.isBrowser)){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect();const t=this._lastPosition||this._preferredPositions[0],e=this._getOriginPoint(this._originRect,t);this._applyPosition(t,e)}}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e){let i,n;if("center"==e.originX)i=t.left+t.width/2;else{const n=this._isRtl()?t.right:t.left,r=this._isRtl()?t.left:t.right;i="start"==e.originX?n:r}return n="center"==e.originY?t.top+t.height/2:"top"==e.originY?t.top:t.bottom,{x:i,y:n}}_getOverlayPoint(t,e,i){let n,r;return n="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,r="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+n,y:t.y+r}}_getOverlayFit(t,e,i,n){const r=U(e);let{x:s,y:o}=t,a=this._getOffset(n,"x"),l=this._getOffset(n,"y");a&&(s+=a),l&&(o+=l);let c=0-o,h=o+r.height-i.height,u=this._subtractOverflows(r.width,0-s,s+r.width-i.width),d=this._subtractOverflows(r.height,c,h),p=u*d;return{visibleArea:p,isCompletelyWithinViewport:r.width*r.height===p,fitsInViewportVertically:d===r.height,fitsInViewportHorizontally:u==r.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const n=i.bottom-e.y,r=i.right-e.x,s=B(this._overlayRef.getConfig().minHeight),o=B(this._overlayRef.getConfig().minWidth),a=t.fitsInViewportHorizontally||null!=o&&o<=r;return(t.fitsInViewportVertically||null!=s&&s<=n)&&a}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const n=U(e),r=this._viewportRect,s=Math.max(t.x+n.width-r.width,0),o=Math.max(t.y+n.height-r.height,0),a=Math.max(r.top-i.top-t.y,0),l=Math.max(r.left-i.left-t.x,0);let c=0,h=0;return c=n.width<=r.width?l||-s:t.xn&&!this._isInitialRender&&!this._growAfterOpen&&(s=t.y-n/2)}if("end"===e.overlayX&&!n||"start"===e.overlayX&&n)c=i.width-t.x+this._viewportMargin,a=t.x-this._viewportMargin;else if("start"===e.overlayX&&!n||"end"===e.overlayX&&n)l=t.x,a=i.right-t.x;else{const e=Math.min(i.right-t.x+i.left,t.x),n=this._lastBoundingBoxSize.width;a=2*e,l=t.x-e,a>n&&!this._isInitialRender&&!this._growAfterOpen&&(l=t.x-n/2)}return{top:s,left:l,bottom:o,right:c,width:a,height:r}}_setBoundingBoxStyles(t,e){const i=this._calculateBoundingBoxRect(t,e);this._isInitialRender||this._growAfterOpen||(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right=n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{const t=this._overlayRef.getConfig().maxHeight,r=this._overlayRef.getConfig().maxWidth;n.height=(0,l.HM)(i.height),n.top=(0,l.HM)(i.top),n.bottom=(0,l.HM)(i.bottom),n.width=(0,l.HM)(i.width),n.left=(0,l.HM)(i.left),n.right=(0,l.HM)(i.right),n.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",n.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",t&&(n.maxHeight=(0,l.HM)(t)),r&&(n.maxWidth=(0,l.HM)(r))}this._lastBoundingBoxSize=i,Z(this._boundingBox.style,n)}_resetBoundingBoxStyles(){Z(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Z(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},n=this._hasExactPosition(),r=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(n){const n=this._viewportRuler.getViewportScrollPosition();Z(i,this._getExactOverlayY(e,t,n)),Z(i,this._getExactOverlayX(e,t,n))}else i.position="static";let o="",a=this._getOffset(e,"x"),c=this._getOffset(e,"y");a&&(o+=`translateX(${a}px) `),c&&(o+=`translateY(${c}px)`),i.transform=o.trim(),s.maxHeight&&(n?i.maxHeight=(0,l.HM)(s.maxHeight):r&&(i.maxHeight="")),s.maxWidth&&(n?i.maxWidth=(0,l.HM)(s.maxWidth):r&&(i.maxWidth="")),Z(this._pane.style,i)}_getExactOverlayY(t,e,i){let n={top:"",bottom:""},r=this._getOverlayPoint(e,this._overlayRect,t);this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i));let s=this._overlayContainer.getContainerElement().getBoundingClientRect().top;return r.y-=s,"bottom"===t.overlayY?n.bottom=this._document.documentElement.clientHeight-(r.y+this._overlayRect.height)+"px":n.top=(0,l.HM)(r.y),n}_getExactOverlayX(t,e,i){let n,r={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),n=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===n?r.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":r.left=(0,l.HM)(s.x),r}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(t=>t.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:C(t,i),isOriginOutsideView:x(t,i),isOverlayClipped:C(e,i),isOverlayOutsideView:x(e,i)}}_subtractOverflows(t,...e){return e.reduce((t,e)=>t-Math.max(e,0),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?null==t.offsetX?this._offsetX:t.offsetX:null==t.offsetY?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&(0,l.Eq)(t).forEach(t=>{""!==t&&-1===this._appliedPanelClasses.indexOf(t)&&(this._appliedPanelClasses.push(t),this._pane.classList.add(t))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof r.SBq)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}}function Z(t,e){for(let i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function B(t){if("number"!=typeof t&&null!=t){const[e,i]=t.split(P);return i&&"px"!==i?null:parseFloat(e)}return t||null}function U(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}class q{constructor(t,e,i,n,r,s,o){this._preferredPositions=[],this._positionStrategy=new F(i,n,r,s,o).withFlexibleDimensions(!1).withPush(!1).withViewportMargin(0),this.withFallbackPosition(t,e),this.onPositionChange=this._positionStrategy.positionChanges}get positions(){return this._preferredPositions}attach(t){this._overlayRef=t,this._positionStrategy.attach(t),this._direction&&(t.setDirection(this._direction),this._direction=null)}dispose(){this._positionStrategy.dispose()}detach(){this._positionStrategy.detach()}apply(){this._positionStrategy.apply()}recalculateLastPosition(){this._positionStrategy.reapplyLastPosition()}withScrollableContainers(t){this._positionStrategy.withScrollableContainers(t)}withFallbackPosition(t,e,i,n){const r=new k(t,e,i,n);return this._preferredPositions.push(r),this._positionStrategy.withPositions(this._preferredPositions),this}withDirection(t){return this._overlayRef?this._overlayRef.setDirection(t):this._direction=t,this}withOffsetX(t){return this._positionStrategy.withDefaultOffsetX(t),this}withOffsetY(t){return this._positionStrategy.withDefaultOffsetY(t),this}withLockedPosition(t){return this._positionStrategy.withLockedPosition(t),this}withPositions(t){return this._preferredPositions=t.slice(),this._positionStrategy.withPositions(this._preferredPositions),this}setOrigin(t){return this._positionStrategy.setOrigin(t),this}}const z="cdk-global-overlay-wrapper";class H{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height=""}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(z),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._rightOffset="",this._leftOffset=t,this._justifyContent="flex-start",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._leftOffset="",this._rightOffset=t,this._justifyContent="flex-end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._justifyContent="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:r,maxWidth:s,maxHeight:o}=i,a=!("100%"!==n&&"100vw"!==n||s&&"100%"!==s&&"100vw"!==s),l=!("100%"!==r&&"100vh"!==r||o&&"100%"!==o&&"100vh"!==o);t.position=this._cssPosition,t.marginLeft=a?"0":this._leftOffset,t.marginTop=l?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=this._rightOffset,a?e.justifyContent="flex-start":"center"===this._justifyContent?e.justifyContent="center":"rtl"===this._overlayRef.getConfig().direction?"flex-start"===this._justifyContent?e.justifyContent="flex-end":"flex-end"===this._justifyContent&&(e.justifyContent="flex-start"):e.justifyContent=this._justifyContent,e.alignItems=l?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(z),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let Y=(()=>{class t{constructor(t,e,i,n){this._viewportRuler=t,this._document=e,this._platform=i,this._overlayContainer=n}global(){return new H}connectedTo(t,e,i){return new q(e,i,t,this._viewportRuler,this._document,this._platform,this._overlayContainer)}flexibleConnectedTo(t){return new F(t,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.rL),r.LFG(a.K0),r.LFG(s.t4),r.LFG(D))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(n.rL),r.LFG(a.K0),r.LFG(s.t4),r.LFG(D))},token:t,providedIn:"root"}),t})(),G=0,j=(()=>{class t{constructor(t,e,i,n,r,s,o,a,l,c,h){this.scrollStrategies=t,this._overlayContainer=e,this._componentFactoryResolver=i,this._positionBuilder=n,this._keyboardDispatcher=r,this._injector=s,this._ngZone=o,this._document=a,this._directionality=l,this._location=c,this._outsideClickDispatcher=h}create(t){const e=this._createHostElement(),i=this._createPaneElement(e),n=this._createPortalOutlet(i),r=new E(t);return r.direction=r.direction||this._directionality.value,new R(n,e,i,r,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher)}position(){return this._positionBuilder}_createPaneElement(t){const e=this._document.createElement("div");return e.id="cdk-overlay-"+G++,e.classList.add("cdk-overlay-pane"),t.appendChild(e),e}_createHostElement(){const t=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(t),t}_createPortalOutlet(t){return this._appRef||(this._appRef=this._injector.get(r.z2F)),new c.u0(t,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(S),r.LFG(D),r.LFG(r._Vd),r.LFG(Y),r.LFG(L),r.LFG(r.zs3),r.LFG(r.R0b),r.LFG(a.K0),r.LFG(o.Is),r.LFG(a.Ye),r.LFG(I))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();const V=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Q=new r.OlP("cdk-connected-overlay-scroll-strategy");let W=(()=>{class t{constructor(t){this.elementRef=t}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq))},t.\u0275dir=r.lG2({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),t})(),J=(()=>{class t{constructor(t,e,i,n,s){this._overlay=t,this._dir=s,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=u.w0.EMPTY,this._attachSubscription=u.w0.EMPTY,this._detachSubscription=u.w0.EMPTY,this._positionSubscription=u.w0.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new r.vpe,this.positionChange=new r.vpe,this.attach=new r.vpe,this.detach=new r.vpe,this.overlayKeydown=new r.vpe,this.overlayOutsideClick=new r.vpe,this._templatePortal=new c.UE(e,i),this._scrollStrategyFactory=n,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(t){this._offsetX=t,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(t){this._offsetY=t,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(t){this._hasBackdrop=(0,l.Ig)(t)}get lockPosition(){return this._lockPosition}set lockPosition(t){this._lockPosition=(0,l.Ig)(t)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(t){this._flexibleDimensions=(0,l.Ig)(t)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(t){this._growAfterOpen=(0,l.Ig)(t)}get push(){return this._push}set push(t){this._push=(0,l.Ig)(t)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(t){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),t.origin&&this.open&&this._position.apply()),t.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){this.positions&&this.positions.length||(this.positions=V);const t=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=t.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=t.detachments().subscribe(()=>this.detach.emit()),t.keydownEvents().subscribe(t=>{this.overlayKeydown.next(t),t.keyCode!==y.hY||this.disableClose||(0,y.Vb)(t)||(t.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(t=>{this.overlayOutsideClick.next(t)})}_buildConfig(){const t=this._position=this.positionStrategy||this._createPositionStrategy(),e=new E({direction:this._dir,positionStrategy:t,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(e.width=this.width),(this.height||0===this.height)&&(e.height=this.height),(this.minWidth||0===this.minWidth)&&(e.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(e.minHeight=this.minHeight),this.backdropClass&&(e.backdropClass=this.backdropClass),this.panelClass&&(e.panelClass=this.panelClass),e}_updatePositionStrategy(t){const e=this.positions.map(t=>({originX:t.originX,originY:t.originY,overlayX:t.overlayX,overlayY:t.overlayY,offsetX:t.offsetX||this.offsetX,offsetY:t.offsetY||this.offsetY,panelClass:t.panelClass||void 0}));return t.setOrigin(this.origin.elementRef).withPositions(e).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const t=this._overlay.position().flexibleConnectedTo(this.origin.elementRef);return this._updatePositionStrategy(t),t}_attachOverlay(){var t,e;this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(t=>{this.backdropClick.emit(t)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe((t=()=>this.positionChange.observers.length>0,void 0===e&&(e=!1),(0,p.e)(function(i,n){i.subscribe(new f.Q(n,function(i){var r=t();(r||e)&&n.next(i),!r&&n.complete()}))}))).subscribe(t=>{this.positionChange.emit(t),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(j),r.Y36(r.Rgc),r.Y36(r.s_b),r.Y36(Q),r.Y36(o.Is,8))},t.\u0275dir=r.lG2({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"],positions:["cdkConnectedOverlayPositions","positions"],origin:["cdkConnectedOverlayOrigin","origin"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[r.TTD]}),t})();const X={provide:Q,deps:[j],useFactory:function(t){return()=>t.scrollStrategies.reposition()}};let K=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({providers:[j,X],imports:[[o.vT,c.eL,n.Cl],n.Cl]}),t})()},1353:(t,e,i)=>{"use strict";i.d(e,{t4:()=>a,ud:()=>l,ht:()=>v,kV:()=>b,_i:()=>y,qK:()=>h,i$:()=>m,Mq:()=>g});var n=i(1572),r=i(1511);let s;try{s="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(_){s=!1}let o,a=(()=>{class t{constructor(t){this._platformId=t,this.isBrowser=this._platformId?(0,r.NF)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!s)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(n.Lbi))},t.\u0275prov=n.Yz7({factory:function(){return new t(n.LFG(n.Lbi))},token:t,providedIn:"root"}),t})(),l=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})();const c=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function h(){if(o)return o;if("object"!=typeof document||!document)return o=new Set(c),o;let t=document.createElement("input");return o=new Set(c.filter(e=>(t.setAttribute("type",e),t.type===e))),o}let u,d,p,f;function m(t){return function(){if(null==u&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>u=!0}))}finally{u=u||!1}return u}()?t:!!t.capture}function g(){if(null==p){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return p=!1,p;if("scrollBehavior"in document.documentElement.style)p=!0;else{const t=Element.prototype.scrollTo;p=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return p}function y(){if("object"!=typeof document||!document)return 0;if(null==d){const t=document.createElement("div"),e=t.style;t.dir="rtl",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";const i=document.createElement("div"),n=i.style;n.width="2px",n.height="1px",t.appendChild(i),document.body.appendChild(t),d=0,0===t.scrollLeft&&(t.scrollLeft=1,d=0===t.scrollLeft?1:2),t.parentNode.removeChild(t)}return d}function b(t){if(function(){if(null==f){const t="undefined"!=typeof document?document.head:null;f=!(!t||!t.createShadowRoot&&!t.attachShadow)}return f}()){const e=t.getRootNode?t.getRootNode():null;if("undefined"!=typeof ShadowRoot&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function v(){let t="undefined"!=typeof document&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const e=t.shadowRoot.activeElement;if(e===t)break;t=e}return t}},6899:(t,e,i)=>{"use strict";i.d(e,{en:()=>c,ig:()=>d,Pl:()=>p,C5:()=>o,F0:()=>u,u0:()=>h,eL:()=>f,UE:()=>a});var n=i(1572),r=i(1511);class s{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class o extends s{constructor(t,e,i,n){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=n}}class a extends s{constructor(t,e,i){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class l extends s{constructor(t){super(),this.element=t instanceof n.SBq?t.nativeElement:t}}class c{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof o?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof a?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof l?(this._attachedPortal=t,this.attachDomPortal(t)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class h extends c{constructor(t,e,i,n,r){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=n,this.attachDomPortal=t=>{const e=t.element,i=this._document.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=t,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})},this._document=r}attachComponentPortal(t){const e=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let i;return t.viewContainerRef?(i=t.viewContainerRef.createComponent(e,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector),this.setDisposeFn(()=>i.destroy())):(i=e.create(t.injector||this._defaultInjector),this._appRef.attachView(i.hostView),this.setDisposeFn(()=>{this._appRef.detachView(i.hostView),i.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(i)),this._attachedPortal=t,i}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context);return i.rootNodes.forEach(t=>this.outletElement.appendChild(t)),i.detectChanges(),this.setDisposeFn(()=>{let t=e.indexOf(i);-1!==t&&e.remove(t)}),this._attachedPortal=t,i}dispose(){super.dispose(),null!=this.outletElement.parentNode&&this.outletElement.parentNode.removeChild(this.outletElement)}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}class u extends h{}let d=(()=>{class t extends a{constructor(t,e){super(t,e)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.Rgc),n.Y36(n.s_b))},t.\u0275dir=n.lG2({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[n.qOj]}),t})(),p=(()=>{class t extends c{constructor(t,e,i){super(),this._componentFactoryResolver=t,this._viewContainerRef=e,this._isInitialized=!1,this.attached=new n.vpe,this.attachDomPortal=t=>{const e=t.element,i=this._document.createComment("dom-portal");t.setAttachedHost(this),e.parentNode.insertBefore(i,e),this._getRootNode().appendChild(e),this._attachedPortal=t,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})},this._document=i}get portal(){return this._attachedPortal}set portal(t){(!this.hasAttached()||t||this._isInitialized)&&(this.hasAttached()&&super.detach(),t&&super.attach(t),this._attachedPortal=t)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedPortal=null,this._attachedRef=null}attachComponentPortal(t){t.setAttachedHost(this);const e=null!=t.viewContainerRef?t.viewContainerRef:this._viewContainerRef,i=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component),n=e.createComponent(i,e.length,t.injector||e.injector);return e!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=t,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(t){t.setAttachedHost(this);const e=this._viewContainerRef.createEmbeddedView(t.templateRef,t.context);return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=t,this._attachedRef=e,this.attached.emit(e),e}_getRootNode(){const t=this._viewContainerRef.element.nativeElement;return t.nodeType===t.ELEMENT_NODE?t:t.parentNode}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n._Vd),n.Y36(n.s_b),n.Y36(r.K0))},t.\u0275dir=n.lG2({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[n.qOj]}),t})(),f=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})()},4894:(t,e,i)=>{"use strict";i.d(e,{PQ:()=>w,ZD:()=>C,mF:()=>_,Cl:()=>A,rL:()=>x});var n=i(9861),r=i(1572),s=i(9162),o=i(6551),a=i(6042),l={schedule:function(t){var e=requestAnimationFrame,i=cancelAnimationFrame,n=l.delegate;n&&(e=n.requestAnimationFrame,i=n.cancelAnimationFrame);var r=e(function(e){i=void 0,t(e)});return new a.w0(function(){return null==i?void 0:i(r)})},requestAnimationFrame:function(){for(var t=[],e=0;e0?t.prototype.requestAsyncId.call(this,e,i,n):(e.actions.push(this),e._scheduled||(e._scheduled=l.requestAnimationFrame(function(){return e.flush(void 0)})))},e.prototype.recycleAsyncId=function(e,i,n){if(void 0===n&&(n=0),null!=n&&n>0||null==n&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,i,n);0===e.actions.length&&(l.cancelAnimationFrame(i),e._scheduled=void 0)},e}(o.o),h=(new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return(0,s.ZT)(e,t),e.prototype.flush=function(t){this._active=!0,this._scheduled=void 0;var e,i=this.actions,n=-1;t=t||i.shift();var r=i.length;do{if(e=t.execute(t.state,t.delay))break}while(++n{class t{constructor(t,e,i){this._ngZone=t,this._platform=e,this._scrolled=new h.x,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=i}register(t){this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe(()=>this._scrolled.next(t)))}deregister(t){const e=this.scrollContainers.get(t);e&&(e.unsubscribe(),this.scrollContainers.delete(t))}scrolled(t=20){return this._platform.isBrowser?new d.y(e=>{this._globalSubscription||this._addGlobalListener();const i=t>0?this._scrolled.pipe((0,f.e)(t)).subscribe(e):this._scrolled.subscribe(e);return this._scrolledCount++,()=>{i.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):(0,u.of)()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((t,e)=>this.deregister(e)),this._scrolled.complete()}ancestorScrolled(t,e){const i=this.getAncestorScrollContainers(t);return this.scrolled(e).pipe((0,m.h)(t=>!t||i.indexOf(t)>-1))}getAncestorScrollContainers(t){const e=[];return this.scrollContainers.forEach((i,n)=>{this._scrollableContainsElement(n,t)&&e.push(n)}),e}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(t,e){let i=(0,n.fI)(e),r=t.getElementRef().nativeElement;do{if(i==r)return!0}while(i=i.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>{const t=this._getWindow();return(0,p.R)(t.document,"scroll").subscribe(()=>this._scrolled.next())})}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(r.R0b),r.LFG(y.t4),r.LFG(b.K0,8))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(r.R0b),r.LFG(y.t4),r.LFG(b.K0,8))},token:t,providedIn:"root"}),t})(),w=(()=>{class t{constructor(t,e,i,n){this.elementRef=t,this.scrollDispatcher=e,this.ngZone=i,this.dir=n,this._destroyed=new h.x,this._elementScrolled=new d.y(t=>this.ngZone.runOutsideAngular(()=>(0,p.R)(this.elementRef.nativeElement,"scroll").pipe((0,g.R)(this._destroyed)).subscribe(t)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(t){const e=this.elementRef.nativeElement,i=this.dir&&"rtl"==this.dir.value;null==t.left&&(t.left=i?t.end:t.start),null==t.right&&(t.right=i?t.start:t.end),null!=t.bottom&&(t.top=e.scrollHeight-e.clientHeight-t.bottom),i&&0!=(0,y._i)()?(null!=t.left&&(t.right=e.scrollWidth-e.clientWidth-t.left),2==(0,y._i)()?t.left=t.right:1==(0,y._i)()&&(t.left=t.right?-t.right:t.right)):null!=t.right&&(t.left=e.scrollWidth-e.clientWidth-t.right),this._applyScrollToOptions(t)}_applyScrollToOptions(t){const e=this.elementRef.nativeElement;(0,y.Mq)()?e.scrollTo(t):(null!=t.top&&(e.scrollTop=t.top),null!=t.left&&(e.scrollLeft=t.left))}measureScrollOffset(t){const e="left",i="right",n=this.elementRef.nativeElement;if("top"==t)return n.scrollTop;if("bottom"==t)return n.scrollHeight-n.clientHeight-n.scrollTop;const r=this.dir&&"rtl"==this.dir.value;return"start"==t?t=r?i:e:"end"==t&&(t=r?e:i),r&&2==(0,y._i)()?t==e?n.scrollWidth-n.clientWidth-n.scrollLeft:n.scrollLeft:r&&1==(0,y._i)()?t==e?n.scrollLeft+n.scrollWidth-n.clientWidth:-n.scrollLeft:t==e?n.scrollLeft:n.scrollWidth-n.clientWidth-n.scrollLeft}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq),r.Y36(_),r.Y36(r.R0b),r.Y36(v.Is,8))},t.\u0275dir=r.lG2({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]}),t})(),x=(()=>{class t{constructor(t,e,i){this._platform=t,this._change=new h.x,this._changeListener=t=>{this._change.next(t)},this._document=i,e.runOutsideAngular(()=>{if(t.isBrowser){const t=this._getWindow();t.addEventListener("resize",this._changeListener),t.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._updateViewportSize())})}ngOnDestroy(){if(this._platform.isBrowser){const t=this._getWindow();t.removeEventListener("resize",this._changeListener),t.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t}getViewportRect(){const t=this.getViewportScrollPosition(),{width:e,height:i}=this.getViewportSize();return{top:t.top,left:t.left,bottom:t.top+i,right:t.left+e,height:i,width:e}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const t=this._document,e=this._getWindow(),i=t.documentElement,n=i.getBoundingClientRect();return{top:-n.top||t.body.scrollTop||e.scrollY||i.scrollTop||0,left:-n.left||t.body.scrollLeft||e.scrollX||i.scrollLeft||0}}change(t=20){return t>0?this._change.pipe((0,f.e)(t)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const t=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:t.innerWidth,height:t.innerHeight}:{width:0,height:0}}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(y.t4),r.LFG(r.R0b),r.LFG(b.K0,8))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(y.t4),r.LFG(r.R0b),r.LFG(b.K0,8))},token:t,providedIn:"root"}),t})(),C=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({}),t})(),A=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({imports:[[v.vT,y.ud,C],v.vT,C]}),t})()},8544:(t,e,i)=>{"use strict";i.d(e,{be:()=>x,KL:()=>m,u6:()=>g,B8:()=>C,U5:()=>E,st:()=>A,po:()=>S,gx:()=>w});var n=i(4621),r=i(2526),s=i(9861),o=i(5842),a=i(1511),l=i(1572),c=i(9666),h=i(2041),u=i(1258),d=i(9568);function p(t,e){1&t&&l.Hsn(0)}const f=["*"];let m=(()=>{class t{constructor(t){this._elementRef=t}focus(){this._elementRef.nativeElement.focus()}}return t.\u0275fac=function(e){return new(e||t)(l.Y36(l.SBq))},t.\u0275dir=l.lG2({type:t,selectors:[["","cdkStepHeader",""]],hostAttrs:["role","tab"]}),t})(),g=(()=>{class t{constructor(t){this.template=t}}return t.\u0275fac=function(e){return new(e||t)(l.Y36(l.Rgc))},t.\u0275dir=l.lG2({type:t,selectors:[["","cdkStepLabel",""]]}),t})(),y=0;const b="edit",v="done",_="error",w=new l.OlP("STEPPER_GLOBAL_OPTIONS");let x=(()=>{class t{constructor(t,e){this._stepper=t,this.interacted=!1,this.interactedStream=new l.vpe,this._editable=!0,this._optional=!1,this._completedOverride=null,this._customError=null,this._stepperOptions=e||{},this._displayDefaultIndicatorType=!1!==this._stepperOptions.displayDefaultIndicatorType,this._showError=!!this._stepperOptions.showError}get editable(){return this._editable}set editable(t){this._editable=(0,s.Ig)(t)}get optional(){return this._optional}set optional(t){this._optional=(0,s.Ig)(t)}get completed(){return null==this._completedOverride?this._getDefaultCompleted():this._completedOverride}set completed(t){this._completedOverride=(0,s.Ig)(t)}_getDefaultCompleted(){return this.stepControl?this.stepControl.valid&&this.interacted:this.interacted}get hasError(){return null==this._customError?this._getDefaultError():this._customError}set hasError(t){this._customError=(0,s.Ig)(t)}_getDefaultError(){return this.stepControl&&this.stepControl.invalid&&this.interacted}select(){this._stepper.selected=this}reset(){this.interacted=!1,null!=this._completedOverride&&(this._completedOverride=!1),null!=this._customError&&(this._customError=!1),this.stepControl&&this.stepControl.reset()}ngOnChanges(){this._stepper._stateChanged()}_markAsInteracted(){this.interacted||(this.interacted=!0,this.interactedStream.emit(this))}}return t.\u0275fac=function(e){return new(e||t)(l.Y36((0,l.Gpc)(()=>C)),l.Y36(w,8))},t.\u0275cmp=l.Xpm({type:t,selectors:[["cdk-step"]],contentQueries:function(t,e,i){if(1&t&&l.Suo(i,g,5),2&t){let t;l.iGM(t=l.CRH())&&(e.stepLabel=t.first)}},viewQuery:function(t,e){if(1&t&&l.Gf(l.Rgc,7),2&t){let t;l.iGM(t=l.CRH())&&(e.content=t.first)}},inputs:{editable:"editable",optional:"optional",completed:"completed",hasError:"hasError",stepControl:"stepControl",label:"label",errorMessage:"errorMessage",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],state:"state"},outputs:{interactedStream:"interacted"},exportAs:["cdkStep"],features:[l.TTD],ngContentSelectors:f,decls:1,vars:0,template:function(t,e){1&t&&(l.F$t(),l.YNc(0,p,1,0,"ng-template"))},encapsulation:2,changeDetection:0}),t})(),C=(()=>{class t{constructor(t,e,i,n){this._dir=t,this._changeDetectorRef=e,this._elementRef=i,this._destroyed=new c.x,this.steps=new l.n_E,this._linear=!1,this._selectedIndex=0,this.selectionChange=new l.vpe,this._orientation="horizontal",this._groupId=y++,this._document=n}get linear(){return this._linear}set linear(t){this._linear=(0,s.Ig)(t)}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){var e;const i=(0,s.su)(t);this.steps&&this._steps?(this._isValidIndex(t),null===(e=this.selected)||void 0===e||e._markAsInteracted(),this._selectedIndex!==i&&!this._anyControlsInvalidOrPending(i)&&(i>=this._selectedIndex||this.steps.toArray()[i].editable)&&this._updateSelectedItemIndex(t)):this._selectedIndex=i}get selected(){return this.steps?this.steps.toArray()[this.selectedIndex]:void 0}set selected(t){this.selectedIndex=t&&this.steps?this.steps.toArray().indexOf(t):-1}get orientation(){return this._orientation}set orientation(t){this._orientation=t,this._keyManager&&this._keyManager.withVerticalOrientation("vertical"===t)}ngAfterContentInit(){this._steps.changes.pipe((0,u.O)(this._steps),(0,d.R)(this._destroyed)).subscribe(t=>{this.steps.reset(t.filter(t=>t._stepper===this)),this.steps.notifyOnChanges()})}ngAfterViewInit(){this._keyManager=new n.Em(this._stepHeader).withWrap().withHomeAndEnd().withVerticalOrientation("vertical"===this._orientation),(this._dir?this._dir.change:(0,h.of)()).pipe((0,u.O)(this._layoutDirection()),(0,d.R)(this._destroyed)).subscribe(t=>this._keyManager.withHorizontalOrientation(t)),this._keyManager.updateActiveItem(this._selectedIndex),this.steps.changes.subscribe(()=>{this.selected||(this._selectedIndex=Math.max(this._selectedIndex-1,0))}),this._isValidIndex(this._selectedIndex)||(this._selectedIndex=0)}ngOnDestroy(){this.steps.destroy(),this._destroyed.next(),this._destroyed.complete()}next(){this.selectedIndex=Math.min(this._selectedIndex+1,this.steps.length-1)}previous(){this.selectedIndex=Math.max(this._selectedIndex-1,0)}reset(){this._updateSelectedItemIndex(0),this.steps.forEach(t=>t.reset()),this._stateChanged()}_getStepLabelId(t){return`cdk-step-label-${this._groupId}-${t}`}_getStepContentId(t){return`cdk-step-content-${this._groupId}-${t}`}_stateChanged(){this._changeDetectorRef.markForCheck()}_getAnimationDirection(t){const e=t-this._selectedIndex;return e<0?"rtl"===this._layoutDirection()?"next":"previous":e>0?"rtl"===this._layoutDirection()?"previous":"next":"current"}_getIndicatorType(t,e="number"){const i=this.steps.toArray()[t],n=this._isCurrentStep(t);return i._displayDefaultIndicatorType?this._getDefaultIndicatorLogic(i,n):this._getGuidelineLogic(i,n,e)}_getDefaultIndicatorLogic(t,e){return t._showError&&t.hasError&&!e?_:!t.completed||e?"number":t.editable?b:v}_getGuidelineLogic(t,e,i="number"){return t._showError&&t.hasError&&!e?_:t.completed&&!e?v:t.completed&&e?i:t.editable&&e?b:i}_isCurrentStep(t){return this._selectedIndex===t}_getFocusIndex(){return this._keyManager?this._keyManager.activeItemIndex:this._selectedIndex}_updateSelectedItemIndex(t){const e=this.steps.toArray();this.selectionChange.emit({selectedIndex:t,previouslySelectedIndex:this._selectedIndex,selectedStep:e[t],previouslySelectedStep:e[this._selectedIndex]}),this._containsFocus()?this._keyManager.setActiveItem(t):this._keyManager.updateActiveItem(t),this._selectedIndex=t,this._stateChanged()}_onKeydown(t){const e=(0,o.Vb)(t),i=t.keyCode,n=this._keyManager;null==n.activeItemIndex||e||i!==o.L_&&i!==o.K5?n.onKeydown(t):(this.selectedIndex=n.activeItemIndex,t.preventDefault())}_anyControlsInvalidOrPending(t){return!!(this._linear&&t>=0)&&this.steps.toArray().slice(0,t).some(t=>{const e=t.stepControl;return(e?e.invalid||e.pending||!t.interacted:!t.completed)&&!t.optional&&!t._completedOverride})}_layoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_containsFocus(){const t=this._elementRef.nativeElement,e=this._document.activeElement;return t===e||t.contains(e)}_isValidIndex(t){return t>-1&&(!this.steps||t{class t{constructor(t){this._stepper=t,this.type="submit"}_handleClick(){this._stepper.next()}}return t.\u0275fac=function(e){return new(e||t)(l.Y36(C))},t.\u0275dir=l.lG2({type:t,selectors:[["button","cdkStepperNext",""]],hostVars:1,hostBindings:function(t,e){1&t&&l.NdJ("click",function(){return e._handleClick()}),2&t&&l.Ikx("type",e.type)},inputs:{type:"type"}}),t})(),S=(()=>{class t{constructor(t){this._stepper=t,this.type="button"}_handleClick(){this._stepper.previous()}}return t.\u0275fac=function(e){return new(e||t)(l.Y36(C))},t.\u0275dir=l.lG2({type:t,selectors:[["button","cdkStepperPrevious",""]],hostVars:1,hostBindings:function(t,e){1&t&&l.NdJ("click",function(){return e._handleClick()}),2&t&&l.Ikx("type",e.type)},inputs:{type:"type"}}),t})(),E=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=l.oAB({type:t}),t.\u0275inj=l.cJS({imports:[[r.vT]]}),t})()},1709:(t,e,i)=>{"use strict";i.d(e,{HI:()=>m,Xx:()=>x,_0:()=>v,nZ:()=>E,Hs:()=>_,rO:()=>b,cu:()=>g,XJ:()=>A,Ud:()=>S,VY:()=>f});var n=i(4230),r=i(4776),s=i(9666),o=i(7425),a=i(2041),l=i(9056),c=i(8868),h=i(9568),u=i(1572),d=i(9861),p=i(2526);class f extends class{constructor(){this.expansionModel=new n.Ov(!0)}toggle(t){this.expansionModel.toggle(this._trackByValue(t))}expand(t){this.expansionModel.select(this._trackByValue(t))}collapse(t){this.expansionModel.deselect(this._trackByValue(t))}isExpanded(t){return this.expansionModel.isSelected(this._trackByValue(t))}toggleDescendants(t){this.expansionModel.isSelected(this._trackByValue(t))?this.collapseDescendants(t):this.expandDescendants(t)}collapseAll(){this.expansionModel.clear()}expandDescendants(t){let e=[t];e.push(...this.getDescendants(t)),this.expansionModel.select(...e.map(t=>this._trackByValue(t)))}collapseDescendants(t){let e=[t];e.push(...this.getDescendants(t)),this.expansionModel.deselect(...e.map(t=>this._trackByValue(t)))}_trackByValue(t){return this.trackBy?this.trackBy(t):t}}{constructor(t,e){super(),this.getChildren=t,this.options=e,this.options&&(this.trackBy=this.options.trackBy)}expandAll(){this.expansionModel.clear();const t=this.dataNodes.reduce((t,e)=>[...t,...this.getDescendants(e),e],[]);this.expansionModel.select(...t.map(t=>this._trackByValue(t)))}getDescendants(t){const e=[];return this._getDescendants(e,t),e.splice(1)}_getDescendants(t,e){t.push(e);const i=this.getChildren(e);Array.isArray(i)?i.forEach(e=>this._getDescendants(t,e)):(0,r.b)(i)&&i.pipe((0,l.q)(1),(0,c.h)(Boolean)).subscribe(e=>{for(const i of e)this._getDescendants(t,i)})}}const m=new u.OlP("CDK_TREE_NODE_OUTLET_NODE");let g=(()=>{class t{constructor(t,e){this.viewContainer=t,this._node=e}}return t.\u0275fac=function(e){return new(e||t)(u.Y36(u.s_b),u.Y36(m,8))},t.\u0275dir=u.lG2({type:t,selectors:[["","cdkTreeNodeOutlet",""]]}),t})();class y{constructor(t){this.$implicit=t}}let b=(()=>{class t{constructor(t){this.template=t}}return t.\u0275fac=function(e){return new(e||t)(u.Y36(u.Rgc))},t.\u0275dir=u.lG2({type:t,selectors:[["","cdkTreeNodeDef",""]],inputs:{when:["cdkTreeNodeDefWhen","when"]}}),t})(),v=(()=>{class t{constructor(t,e){this._differs=t,this._changeDetectorRef=e,this._onDestroy=new s.x,this._levels=new Map,this.viewChange=new o.X({start:0,end:Number.MAX_VALUE})}get dataSource(){return this._dataSource}set dataSource(t){this._dataSource!==t&&this._switchDataSource(t)}ngOnInit(){this._dataDiffer=this._differs.find([]).create(this.trackBy)}ngOnDestroy(){this._nodeOutlet.viewContainer.clear(),this.viewChange.complete(),this._onDestroy.next(),this._onDestroy.complete(),this._dataSource&&"function"==typeof this._dataSource.disconnect&&this.dataSource.disconnect(this),this._dataSubscription&&(this._dataSubscription.unsubscribe(),this._dataSubscription=null)}ngAfterContentChecked(){const t=this._nodeDefs.filter(t=>!t.when);this._defaultNodeDef=t[0],this.dataSource&&this._nodeDefs&&!this._dataSubscription&&this._observeRenderChanges()}_switchDataSource(t){this._dataSource&&"function"==typeof this._dataSource.disconnect&&this.dataSource.disconnect(this),this._dataSubscription&&(this._dataSubscription.unsubscribe(),this._dataSubscription=null),t||this._nodeOutlet.viewContainer.clear(),this._dataSource=t,this._nodeDefs&&this._observeRenderChanges()}_observeRenderChanges(){let t;(0,n.Z9)(this._dataSource)?t=this._dataSource.connect(this):(0,r.b)(this._dataSource)?t=this._dataSource:Array.isArray(this._dataSource)&&(t=(0,a.of)(this._dataSource)),t&&(this._dataSubscription=t.pipe((0,h.R)(this._onDestroy)).subscribe(t=>this.renderNodeChanges(t)))}renderNodeChanges(t,e=this._dataDiffer,i=this._nodeOutlet.viewContainer,n){const r=e.diff(t);r&&(r.forEachOperation((e,r,s)=>{if(null==e.previousIndex)this.insertNode(t[s],s,i,n);else if(null==s)i.remove(r),this._levels.delete(e.item);else{const t=i.get(r);i.move(t,s)}}),this._changeDetectorRef.detectChanges())}_getNodeDef(t,e){return 1===this._nodeDefs.length?this._nodeDefs.first:this._nodeDefs.find(i=>i.when&&i.when(e,t))||this._defaultNodeDef}insertNode(t,e,i,n){const r=this._getNodeDef(t,e),s=new y(t);s.level=this.treeControl.getLevel?this.treeControl.getLevel(t):void 0!==n&&this._levels.has(n)?this._levels.get(n)+1:0,this._levels.set(t,s.level),(i||this._nodeOutlet.viewContainer).createEmbeddedView(r.template,s,e),_.mostRecentTreeNode&&(_.mostRecentTreeNode.data=t)}}return t.\u0275fac=function(e){return new(e||t)(u.Y36(u.ZZ4),u.Y36(u.sBO))},t.\u0275cmp=u.Xpm({type:t,selectors:[["cdk-tree"]],contentQueries:function(t,e,i){if(1&t&&u.Suo(i,b,5),2&t){let t;u.iGM(t=u.CRH())&&(e._nodeDefs=t)}},viewQuery:function(t,e){if(1&t&&u.Gf(g,7),2&t){let t;u.iGM(t=u.CRH())&&(e._nodeOutlet=t.first)}},hostAttrs:["role","tree",1,"cdk-tree"],inputs:{dataSource:"dataSource",treeControl:"treeControl",trackBy:"trackBy"},exportAs:["cdkTree"],decls:1,vars:0,consts:[["cdkTreeNodeOutlet",""]],template:function(t,e){1&t&&u.GkF(0,0)},directives:[g],encapsulation:2}),t})(),_=(()=>{class t{constructor(e,i){this._elementRef=e,this._tree=i,this._destroyed=new s.x,this._dataChanges=new s.x,t.mostRecentTreeNode=this,this._elementRef.nativeElement.classList.add("cdk-tree-node"),this.role="treeitem"}get role(){return"treeitem"}set role(t){this._elementRef.nativeElement.setAttribute("role",t)}get data(){return this._data}set data(t){t!==this._data&&(this._data=t,this._setRoleFromData(),this._dataChanges.next())}get isExpanded(){return this._tree.treeControl.isExpanded(this._data)}_setExpanded(t){this._isAriaExpanded=t,this._elementRef.nativeElement.setAttribute("aria-expanded",`${t}`)}get level(){return this._tree.treeControl.getLevel?this._tree.treeControl.getLevel(this._data):this._parentNodeAriaLevel}ngOnInit(){this._parentNodeAriaLevel=function(t){let e=t.parentElement;for(;e&&!w(e);)e=e.parentElement;return e?e.classList.contains("cdk-nested-tree-node")?(0,d.su)(e.getAttribute("aria-level")):0:-1}(this._elementRef.nativeElement),this._elementRef.nativeElement.setAttribute("aria-level",`${this.level+1}`)}ngDoCheck(){this.isExpanded!=this._isAriaExpanded&&this._setExpanded(this.isExpanded)}ngOnDestroy(){t.mostRecentTreeNode===this&&(t.mostRecentTreeNode=null),this._dataChanges.complete(),this._destroyed.next(),this._destroyed.complete()}focus(){this._elementRef.nativeElement.focus()}_setRoleFromData(){this.role="treeitem"}}return t.\u0275fac=function(e){return new(e||t)(u.Y36(u.SBq),u.Y36(v))},t.\u0275dir=u.lG2({type:t,selectors:[["cdk-tree-node"]],inputs:{role:"role"},exportAs:["cdkTreeNode"]}),t.mostRecentTreeNode=null,t})();function w(t){const e=t.classList;return!(!(null==e?void 0:e.contains("cdk-nested-tree-node"))&&!(null==e?void 0:e.contains("cdk-tree")))}let x=(()=>{class t extends _{constructor(t,e,i){super(t,e),this._elementRef=t,this._tree=e,this._differs=i,this._elementRef.nativeElement.classList.add("cdk-nested-tree-node")}ngAfterContentInit(){this._dataDiffer=this._differs.find([]).create(this._tree.trackBy);const t=this._tree.treeControl.getChildren(this.data);Array.isArray(t)?this.updateChildrenNodes(t):(0,r.b)(t)&&t.pipe((0,h.R)(this._destroyed)).subscribe(t=>this.updateChildrenNodes(t)),this.nodeOutlet.changes.pipe((0,h.R)(this._destroyed)).subscribe(()=>this.updateChildrenNodes())}ngOnInit(){super.ngOnInit()}ngDoCheck(){super.ngDoCheck()}ngOnDestroy(){this._clear(),super.ngOnDestroy()}updateChildrenNodes(t){const e=this._getNodeOutlet();t&&(this._children=t),e&&this._children?this._tree.renderNodeChanges(this._children,this._dataDiffer,e.viewContainer,this._data):this._dataDiffer.diff([])}_clear(){const t=this._getNodeOutlet();t&&(t.viewContainer.clear(),this._dataDiffer.diff([]))}_getNodeOutlet(){const t=this.nodeOutlet;return t&&t.find(t=>!t._node||t._node===this)}}return t.\u0275fac=function(e){return new(e||t)(u.Y36(u.SBq),u.Y36(v),u.Y36(u.ZZ4))},t.\u0275dir=u.lG2({type:t,selectors:[["cdk-nested-tree-node"]],contentQueries:function(t,e,i){if(1&t&&u.Suo(i,g,5),2&t){let t;u.iGM(t=u.CRH())&&(e.nodeOutlet=t)}},inputs:{role:"role",disabled:"disabled",tabIndex:"tabIndex"},exportAs:["cdkNestedTreeNode"],features:[u._Bn([{provide:_,useExisting:t},{provide:m,useExisting:t}]),u.qOj]}),t})();const C=/([A-Za-z%]+)$/;let A=(()=>{class t{constructor(t,e,i,n){this._treeNode=t,this._tree=e,this._element=i,this._dir=n,this._destroyed=new s.x,this.indentUnits="px",this._indent=40,this._setPadding(),n&&n.change.pipe((0,h.R)(this._destroyed)).subscribe(()=>this._setPadding(!0)),t._dataChanges.subscribe(()=>this._setPadding())}get level(){return this._level}set level(t){this._setLevelInput(t)}get indent(){return this._indent}set indent(t){this._setIndentInput(t)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_paddingIndent(){const t=this._treeNode.data&&this._tree.treeControl.getLevel?this._tree.treeControl.getLevel(this._treeNode.data):null,e=null==this._level?t:this._level;return"number"==typeof e?`${e*this._indent}${this.indentUnits}`:null}_setPadding(t=!1){const e=this._paddingIndent();if(e!==this._currentPadding||t){const t=this._element.nativeElement,i=this._dir&&"rtl"===this._dir.value?"paddingRight":"paddingLeft",n="paddingLeft"===i?"paddingRight":"paddingLeft";t.style[i]=e||"",t.style[n]="",this._currentPadding=e}}_setLevelInput(t){this._level=(0,d.su)(t,null),this._setPadding()}_setIndentInput(t){let e=t,i="px";if("string"==typeof t){const n=t.split(C);e=n[0],i=n[1]||i}this.indentUnits=i,this._indent=(0,d.su)(e),this._setPadding()}}return t.\u0275fac=function(e){return new(e||t)(u.Y36(_),u.Y36(v),u.Y36(u.SBq),u.Y36(p.Is,8))},t.\u0275dir=u.lG2({type:t,selectors:[["","cdkTreeNodePadding",""]],inputs:{level:["cdkTreeNodePadding","level"],indent:["cdkTreeNodePaddingIndent","indent"]}}),t})(),S=(()=>{class t{constructor(t,e){this._tree=t,this._treeNode=e,this._recursive=!1}get recursive(){return this._recursive}set recursive(t){this._recursive=(0,d.Ig)(t)}_toggle(t){this.recursive?this._tree.treeControl.toggleDescendants(this._treeNode.data):this._tree.treeControl.toggle(this._treeNode.data),t.stopPropagation()}}return t.\u0275fac=function(e){return new(e||t)(u.Y36(v),u.Y36(_))},t.\u0275dir=u.lG2({type:t,selectors:[["","cdkTreeNodeToggle",""]],hostBindings:function(t,e){1&t&&u.NdJ("click",function(t){return e._toggle(t)})},inputs:{recursive:["cdkTreeNodeToggleRecursive","recursive"]}}),t})(),E=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=u.oAB({type:t}),t.\u0275inj=u.cJS({}),t})()},1511:(t,e,i)=>{"use strict";i.d(e,{mr:()=>_,Ov:()=>It,ez:()=>Ut,K0:()=>l,uU:()=>Pt,JJ:()=>Zt,Do:()=>x,Ts:()=>Ft,V_:()=>u,Ye:()=>C,S$:()=>b,i8:()=>Ot,mk:()=>pt,sg:()=>mt,O5:()=>yt,PC:()=>At,RF:()=>wt,n9:()=>xt,ED:()=>Ct,tP:()=>St,b0:()=>w,lw:()=>c,OU:()=>Bt,rS:()=>Rt,gd:()=>Nt,EM:()=>Yt,JF:()=>Vt,NF:()=>zt,PM:()=>Ht,w_:()=>a,bD:()=>qt,q:()=>s,Mx:()=>dt,HT:()=>o});var n=i(1572);let r=null;function s(){return r}function o(t){r||(r=t)}class a{}const l=new n.OlP("DocumentToken");let c=(()=>{class t{historyGo(t){throw new Error("Not implemented")}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=(0,n.Yz7)({factory:h,token:t,providedIn:"platform"}),t})();function h(){return(0,n.LFG)(d)}const u=new n.OlP("Location Initialized");let d=(()=>{class t extends c{constructor(t){super(),this._doc=t,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return s().getBaseHref(this._doc)}onPopState(t){const e=s().getGlobalEventTarget(this._doc,"window");return e.addEventListener("popstate",t,!1),()=>e.removeEventListener("popstate",t)}onHashChange(t){const e=s().getGlobalEventTarget(this._doc,"window");return e.addEventListener("hashchange",t,!1),()=>e.removeEventListener("hashchange",t)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(t){this.location.pathname=t}pushState(t,e,i){p()?this._history.pushState(t,e,i):this.location.hash=i}replaceState(t,e,i){p()?this._history.replaceState(t,e,i):this.location.hash=i}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(l))},t.\u0275prov=(0,n.Yz7)({factory:f,token:t,providedIn:"platform"}),t})();function p(){return!!window.history.pushState}function f(){return new d((0,n.LFG)(l))}function m(t,e){if(0==t.length)return e;if(0==e.length)return t;let i=0;return t.endsWith("/")&&i++,e.startsWith("/")&&i++,2==i?t+e.substring(1):1==i?t+e:t+"/"+e}function g(t){const e=t.match(/#|\?|$/),i=e&&e.index||t.length;return t.slice(0,i-("/"===t[i-1]?1:0))+t.slice(i)}function y(t){return t&&"?"!==t[0]?"?"+t:t}let b=(()=>{class t{historyGo(t){throw new Error("Not implemented")}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=(0,n.Yz7)({factory:v,token:t,providedIn:"root"}),t})();function v(t){const e=(0,n.LFG)(l).location;return new w((0,n.LFG)(c),e&&e.origin||"")}const _=new n.OlP("appBaseHref");let w=(()=>{class t extends b{constructor(t,e){if(super(),this._platformLocation=t,this._removeListenerFns=[],null==e&&(e=this._platformLocation.getBaseHrefFromDOM()),null==e)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=e}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return m(this._baseHref,t)}path(t=!1){const e=this._platformLocation.pathname+y(this._platformLocation.search),i=this._platformLocation.hash;return i&&t?`${e}${i}`:e}pushState(t,e,i,n){const r=this.prepareExternalUrl(i+y(n));this._platformLocation.pushState(t,e,r)}replaceState(t,e,i,n){const r=this.prepareExternalUrl(i+y(n));this._platformLocation.replaceState(t,e,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(t=0){var e,i;null===(i=(e=this._platformLocation).historyGo)||void 0===i||i.call(e,t)}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(c),n.LFG(_,8))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})(),x=(()=>{class t extends b{constructor(t,e){super(),this._platformLocation=t,this._baseHref="",this._removeListenerFns=[],null!=e&&(this._baseHref=e)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}path(t=!1){let e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e}prepareExternalUrl(t){const e=m(this._baseHref,t);return e.length>0?"#"+e:e}pushState(t,e,i,n){let r=this.prepareExternalUrl(i+y(n));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.pushState(t,e,r)}replaceState(t,e,i,n){let r=this.prepareExternalUrl(i+y(n));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(t=0){var e,i;null===(i=(e=this._platformLocation).historyGo)||void 0===i||i.call(e,t)}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(c),n.LFG(_,8))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})(),C=(()=>{class t{constructor(t,e){this._subject=new n.vpe,this._urlChangeListeners=[],this._platformStrategy=t;const i=this._platformStrategy.getBaseHref();this._platformLocation=e,this._baseHref=g(S(i)),this._platformStrategy.onPopState(t=>{this._subject.emit({url:this.path(!0),pop:!0,state:t.state,type:t.type})})}path(t=!1){return this.normalize(this._platformStrategy.path(t))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(t,e=""){return this.path()==this.normalize(t+y(e))}normalize(e){return t.stripTrailingSlash(function(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,S(e)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)}go(t,e="",i=null){this._platformStrategy.pushState(i,"",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+y(e)),i)}replaceState(t,e="",i=null){this._platformStrategy.replaceState(i,"",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+y(e)),i)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}historyGo(t=0){var e,i;null===(i=(e=this._platformStrategy).historyGo)||void 0===i||i.call(e,t)}onUrlChange(t){this._urlChangeListeners.push(t),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(t=>{this._notifyUrlChangeListeners(t.url,t.state)}))}_notifyUrlChangeListeners(t="",e){this._urlChangeListeners.forEach(i=>i(t,e))}subscribe(t,e,i){return this._subject.subscribe({next:t,error:e,complete:i})}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(b),n.LFG(c))},t.normalizeQueryParams=y,t.joinWithSlash=m,t.stripTrailingSlash=g,t.\u0275prov=(0,n.Yz7)({factory:A,token:t,providedIn:"root"}),t})();function A(){return new C((0,n.LFG)(b),(0,n.LFG)(c))}function S(t){return t.replace(/\/index.html$/,"")}var E=function(t){return t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency",t[t.Scientific=3]="Scientific",t}({}),k=function(t){return t[t.Zero=0]="Zero",t[t.One=1]="One",t[t.Two=2]="Two",t[t.Few=3]="Few",t[t.Many=4]="Many",t[t.Other=5]="Other",t}({}),T=function(t){return t[t.Format=0]="Format",t[t.Standalone=1]="Standalone",t}({}),M=function(t){return t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short",t}({}),L=function(t){return t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full",t}({}),I=function(t){return t[t.Decimal=0]="Decimal",t[t.Group=1]="Group",t[t.List=2]="List",t[t.PercentSign=3]="PercentSign",t[t.PlusSign=4]="PlusSign",t[t.MinusSign=5]="MinusSign",t[t.Exponential=6]="Exponential",t[t.SuperscriptingExponent=7]="SuperscriptingExponent",t[t.PerMille=8]="PerMille",t[t[1/0]=9]="Infinity",t[t.NaN=10]="NaN",t[t.TimeSeparator=11]="TimeSeparator",t[t.CurrencyDecimal=12]="CurrencyDecimal",t[t.CurrencyGroup=13]="CurrencyGroup",t}({});function O(t,e){return Z((0,n.cg1)(t)[n.wAp.DateFormat],e)}function D(t,e){return Z((0,n.cg1)(t)[n.wAp.TimeFormat],e)}function R(t,e){return Z((0,n.cg1)(t)[n.wAp.DateTimeFormat],e)}function N(t,e){const i=(0,n.cg1)(t),r=i[n.wAp.NumberSymbols][e];if(void 0===r){if(e===I.CurrencyDecimal)return i[n.wAp.NumberSymbols][I.Decimal];if(e===I.CurrencyGroup)return i[n.wAp.NumberSymbols][I.Group]}return r}const P=n.kL8;function F(t){if(!t[n.wAp.ExtraData])throw new Error(`Missing extra locale data for the locale "${t[n.wAp.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Z(t,e){for(let i=e;i>-1;i--)if(void 0!==t[i])return t[i];throw new Error("Locale data API: locale data undefined")}function B(t){const[e,i]=t.split(":");return{hours:+e,minutes:+i}}const U=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,q={},z=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var H=function(t){return t[t.Short=0]="Short",t[t.ShortGMT=1]="ShortGMT",t[t.Long=2]="Long",t[t.Extended=3]="Extended",t}({}),Y=function(t){return t[t.FullYear=0]="FullYear",t[t.Month=1]="Month",t[t.Date=2]="Date",t[t.Hours=3]="Hours",t[t.Minutes=4]="Minutes",t[t.Seconds=5]="Seconds",t[t.FractionalSeconds=6]="FractionalSeconds",t[t.Day=7]="Day",t}({}),G=function(t){return t[t.DayPeriods=0]="DayPeriods",t[t.Days=1]="Days",t[t.Months=2]="Months",t[t.Eras=3]="Eras",t}({});function j(t,e,i,n){let r=function(t){if(st(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[e,i=1,n=1]=t.split("-").map(t=>+t);return V(e,i-1,n)}const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let i;if(i=t.match(U))return function(t){const e=new Date(0);let i=0,n=0;const r=t[8]?e.setUTCFullYear:e.setFullYear,s=t[8]?e.setUTCHours:e.setHours;t[9]&&(i=Number(t[9]+t[10]),n=Number(t[9]+t[11])),r.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));const o=Number(t[4]||0)-i,a=Number(t[5]||0)-n,l=Number(t[6]||0),c=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return s.call(e,o,a,l,c),e}(i)}const e=new Date(t);if(!st(e))throw new Error(`Unable to convert "${t}" into a date`);return e}(t);e=Q(i,e)||e;let s,o=[];for(;e;){if(s=z.exec(e),!s){o.push(e);break}{o=o.concat(s.slice(1));const t=o.pop();if(!t)break;e=t}}let a=r.getTimezoneOffset();n&&(a=rt(n,a),r=function(t,e,i){const n=t.getTimezoneOffset();return function(t,e){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+e),t}(t,-1*(rt(e,n)-n))}(r,n));let l="";return o.forEach(t=>{const e=function(t){if(nt[t])return nt[t];let e;switch(t){case"G":case"GG":case"GGG":e=K(G.Eras,M.Abbreviated);break;case"GGGG":e=K(G.Eras,M.Wide);break;case"GGGGG":e=K(G.Eras,M.Narrow);break;case"y":e=X(Y.FullYear,1,0,!1,!0);break;case"yy":e=X(Y.FullYear,2,0,!0,!0);break;case"yyy":e=X(Y.FullYear,3,0,!1,!0);break;case"yyyy":e=X(Y.FullYear,4,0,!1,!0);break;case"Y":e=it(1);break;case"YY":e=it(2,!0);break;case"YYY":e=it(3);break;case"YYYY":e=it(4);break;case"M":case"L":e=X(Y.Month,1,1);break;case"MM":case"LL":e=X(Y.Month,2,1);break;case"MMM":e=K(G.Months,M.Abbreviated);break;case"MMMM":e=K(G.Months,M.Wide);break;case"MMMMM":e=K(G.Months,M.Narrow);break;case"LLL":e=K(G.Months,M.Abbreviated,T.Standalone);break;case"LLLL":e=K(G.Months,M.Wide,T.Standalone);break;case"LLLLL":e=K(G.Months,M.Narrow,T.Standalone);break;case"w":e=et(1);break;case"ww":e=et(2);break;case"W":e=et(1,!0);break;case"d":e=X(Y.Date,1);break;case"dd":e=X(Y.Date,2);break;case"c":case"cc":e=X(Y.Day,1);break;case"ccc":e=K(G.Days,M.Abbreviated,T.Standalone);break;case"cccc":e=K(G.Days,M.Wide,T.Standalone);break;case"ccccc":e=K(G.Days,M.Narrow,T.Standalone);break;case"cccccc":e=K(G.Days,M.Short,T.Standalone);break;case"E":case"EE":case"EEE":e=K(G.Days,M.Abbreviated);break;case"EEEE":e=K(G.Days,M.Wide);break;case"EEEEE":e=K(G.Days,M.Narrow);break;case"EEEEEE":e=K(G.Days,M.Short);break;case"a":case"aa":case"aaa":e=K(G.DayPeriods,M.Abbreviated);break;case"aaaa":e=K(G.DayPeriods,M.Wide);break;case"aaaaa":e=K(G.DayPeriods,M.Narrow);break;case"b":case"bb":case"bbb":e=K(G.DayPeriods,M.Abbreviated,T.Standalone,!0);break;case"bbbb":e=K(G.DayPeriods,M.Wide,T.Standalone,!0);break;case"bbbbb":e=K(G.DayPeriods,M.Narrow,T.Standalone,!0);break;case"B":case"BB":case"BBB":e=K(G.DayPeriods,M.Abbreviated,T.Format,!0);break;case"BBBB":e=K(G.DayPeriods,M.Wide,T.Format,!0);break;case"BBBBB":e=K(G.DayPeriods,M.Narrow,T.Format,!0);break;case"h":e=X(Y.Hours,1,-12);break;case"hh":e=X(Y.Hours,2,-12);break;case"H":e=X(Y.Hours,1);break;case"HH":e=X(Y.Hours,2);break;case"m":e=X(Y.Minutes,1);break;case"mm":e=X(Y.Minutes,2);break;case"s":e=X(Y.Seconds,1);break;case"ss":e=X(Y.Seconds,2);break;case"S":e=X(Y.FractionalSeconds,1);break;case"SS":e=X(Y.FractionalSeconds,2);break;case"SSS":e=X(Y.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":e=$(H.Short);break;case"ZZZZZ":e=$(H.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=$(H.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":e=$(H.Long);break;default:return null}return nt[t]=e,e}(t);l+=e?e(r,i,a):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}function V(t,e,i){const n=new Date(0);return n.setFullYear(t,e,i),n.setHours(0,0,0),n}function Q(t,e){const i=function(t){return(0,n.cg1)(t)[n.wAp.LocaleId]}(t);if(q[i]=q[i]||{},q[i][e])return q[i][e];let r="";switch(e){case"shortDate":r=O(t,L.Short);break;case"mediumDate":r=O(t,L.Medium);break;case"longDate":r=O(t,L.Long);break;case"fullDate":r=O(t,L.Full);break;case"shortTime":r=D(t,L.Short);break;case"mediumTime":r=D(t,L.Medium);break;case"longTime":r=D(t,L.Long);break;case"fullTime":r=D(t,L.Full);break;case"short":const e=Q(t,"shortTime"),i=Q(t,"shortDate");r=W(R(t,L.Short),[e,i]);break;case"medium":const n=Q(t,"mediumTime"),s=Q(t,"mediumDate");r=W(R(t,L.Medium),[n,s]);break;case"long":const o=Q(t,"longTime"),a=Q(t,"longDate");r=W(R(t,L.Long),[o,a]);break;case"full":const l=Q(t,"fullTime"),c=Q(t,"fullDate");r=W(R(t,L.Full),[l,c])}return r&&(q[i][e]=r),r}function W(t,e){return e&&(t=t.replace(/\{([^}]+)}/g,function(t,i){return null!=e&&i in e?e[i]:t})),t}function J(t,e,i="-",n,r){let s="";(t<0||r&&t<=0)&&(r?t=1-t:(t=-t,s=i));let o=String(t);for(;o.length0||a>-i)&&(a+=i),t===Y.Hours)0===a&&-12===i&&(a=12);else if(t===Y.FractionalSeconds)return l=e,J(a,3).substr(0,l);var l;const c=N(o,I.MinusSign);return J(a,e,c,n,r)}}function K(t,e,i=T.Format,r=!1){return function(s,o){return function(t,e,i,r,s,o){switch(i){case G.Months:return function(t,e,i){const r=(0,n.cg1)(t),s=Z([r[n.wAp.MonthsFormat],r[n.wAp.MonthsStandalone]],e);return Z(s,i)}(e,s,r)[t.getMonth()];case G.Days:return function(t,e,i){const r=(0,n.cg1)(t),s=Z([r[n.wAp.DaysFormat],r[n.wAp.DaysStandalone]],e);return Z(s,i)}(e,s,r)[t.getDay()];case G.DayPeriods:const a=t.getHours(),l=t.getMinutes();if(o){const t=function(t){const e=(0,n.cg1)(t);return F(e),(e[n.wAp.ExtraData][2]||[]).map(t=>"string"==typeof t?B(t):[B(t[0]),B(t[1])])}(e),i=function(t,e,i){const r=(0,n.cg1)(t);F(r);const s=Z([r[n.wAp.ExtraData][0],r[n.wAp.ExtraData][1]],e)||[];return Z(s,i)||[]}(e,s,r),o=t.findIndex(t=>{if(Array.isArray(t)){const[e,i]=t,n=a>=e.hours&&l>=e.minutes,r=a0?Math.floor(r/60):Math.ceil(r/60);switch(t){case H.Short:return(r>=0?"+":"")+J(o,2,s)+J(Math.abs(r%60),2,s);case H.ShortGMT:return"GMT"+(r>=0?"+":"")+J(o,1,s);case H.Long:return"GMT"+(r>=0?"+":"")+J(o,2,s)+":"+J(Math.abs(r%60),2,s);case H.Extended:return 0===n?"Z":(r>=0?"+":"")+J(o,2,s)+":"+J(Math.abs(r%60),2,s);default:throw new Error(`Unknown zone width "${t}"`)}}}function tt(t){return V(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function et(t,e=!1){return function(i,n){let r;if(e){const t=new Date(i.getFullYear(),i.getMonth(),1).getDay()-1,e=i.getDate();r=1+Math.floor((e+t)/7)}else{const t=tt(i),e=function(t){const e=V(t,0,1).getDay();return V(t,0,1+(e<=4?4:11)-e)}(t.getFullYear()),n=t.getTime()-e.getTime();r=1+Math.round(n/6048e5)}return J(r,t,N(n,I.MinusSign))}}function it(t,e=!1){return function(i,n){return J(tt(i).getFullYear(),t,N(n,I.MinusSign),e)}}const nt={};function rt(t,e){t=t.replace(/:/g,"");const i=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(i)?e:i}function st(t){return t instanceof Date&&!isNaN(t.valueOf())}const ot=/^(\d+)?\.((\d+)(-(\d+))?)?$/,at=".",lt="0";function ct(t){const e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}class ht{}let ut=(()=>{class t extends ht{constructor(t){super(),this.locale=t}getPluralCategory(t,e){switch(P(e||this.locale)(t)){case k.Zero:return"zero";case k.One:return"one";case k.Two:return"two";case k.Few:return"few";case k.Many:return"many";default:return"other"}}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(n.soG))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})();function dt(t,e){e=encodeURIComponent(e);for(const i of t.split(";")){const t=i.indexOf("="),[n,r]=-1==t?[i,""]:[i.slice(0,t),i.slice(t+1)];if(n.trim()===e)return decodeURIComponent(r)}return null}let pt=(()=>{class t{constructor(t,e,i,n){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=i,this._renderer=n,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&((0,n.sIi)(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){const t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}_applyKeyValueChanges(t){t.forEachAddedItem(t=>this._toggleClass(t.key,t.currentValue)),t.forEachChangedItem(t=>this._toggleClass(t.key,t.currentValue)),t.forEachRemovedItem(t=>{t.previousValue&&this._toggleClass(t.key,!1)})}_applyIterableChanges(t){t.forEachAddedItem(t=>{if("string"!=typeof t.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${(0,n.AaK)(t.item)}`);this._toggleClass(t.item,!0)}),t.forEachRemovedItem(t=>this._toggleClass(t.item,!1))}_applyClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(t=>this._toggleClass(t,!0)):Object.keys(t).forEach(e=>this._toggleClass(e,!!t[e])))}_removeClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(t=>this._toggleClass(t,!1)):Object.keys(t).forEach(t=>this._toggleClass(t,!1)))}_toggleClass(t,e){(t=t.trim())&&t.split(/\s+/g).forEach(t=>{e?this._renderer.addClass(this._ngEl.nativeElement,t):this._renderer.removeClass(this._ngEl.nativeElement,t)})}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.ZZ4),n.Y36(n.aQg),n.Y36(n.SBq),n.Y36(n.Qsj))},t.\u0275dir=n.lG2({type:t,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),t})();class ft{constructor(t,e,i,n){this.$implicit=t,this.ngForOf=e,this.index=i,this.count=n}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let mt=(()=>{class t{constructor(t,e,i){this._viewContainer=t,this._template=e,this._differs=i,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const i=this._ngForOf;if(!this._differ&&i)try{this._differ=this._differs.find(i).create(this.ngForTrackBy)}catch(e){throw new Error(`Cannot find a differ supporting object '${i}' of type '${t=i,t.name||typeof t}'. NgFor only supports binding to Iterables such as Arrays.`)}}var t;if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const e=[];t.forEachOperation((t,i,n)=>{if(null==t.previousIndex){const i=this._viewContainer.createEmbeddedView(this._template,new ft(null,this._ngForOf,-1,-1),null===n?void 0:n),r=new gt(t,i);e.push(r)}else if(null==n)this._viewContainer.remove(null===i?void 0:i);else if(null!==i){const r=this._viewContainer.get(i);this._viewContainer.move(r,n);const s=new gt(t,r);e.push(s)}});for(let i=0;i{this._viewContainer.get(t.currentIndex).context.$implicit=t.item})}_perViewChange(t,e){t.context.$implicit=e.item}static ngTemplateContextGuard(t,e){return!0}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.s_b),n.Y36(n.Rgc),n.Y36(n.ZZ4))},t.\u0275dir=n.lG2({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),t})();class gt{constructor(t,e){this.record=t,this.view=e}}let yt=(()=>{class t{constructor(t,e){this._viewContainer=t,this._context=new bt,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=e}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){vt("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){vt("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,e){return!0}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.s_b),n.Y36(n.Rgc))},t.\u0275dir=n.lG2({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),t})();class bt{constructor(){this.$implicit=null,this.ngIf=null}}function vt(t,e){if(e&&!e.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${(0,n.AaK)(e)}'.`)}class _t{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let wt=(()=>{class t{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(t){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(t)}_matchCase(t){const e=t==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||e,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),e}_updateDefaultCases(t){if(this._defaultViews&&t!==this._defaultUsed){this._defaultUsed=t;for(let e=0;e{class t{constructor(t,e,i){this.ngSwitch=i,i._addCase(),this._view=new _t(t,e)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.s_b),n.Y36(n.Rgc),n.Y36(wt,9))},t.\u0275dir=n.lG2({type:t,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"}}),t})(),Ct=(()=>{class t{constructor(t,e,i){i._addDefault(new _t(t,e))}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.s_b),n.Y36(n.Rgc),n.Y36(wt,9))},t.\u0275dir=n.lG2({type:t,selectors:[["","ngSwitchDefault",""]]}),t})(),At=(()=>{class t{constructor(t,e,i){this._ngEl=t,this._differs=e,this._renderer=i,this._ngStyle=null,this._differ=null}set ngStyle(t){this._ngStyle=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())}ngDoCheck(){if(this._differ){const t=this._differ.diff(this._ngStyle);t&&this._applyChanges(t)}}_setStyle(t,e){const[i,n]=t.split(".");null!=(e=null!=e&&n?`${e}${n}`:e)?this._renderer.setStyle(this._ngEl.nativeElement,i,e):this._renderer.removeStyle(this._ngEl.nativeElement,i)}_applyChanges(t){t.forEachRemovedItem(t=>this._setStyle(t.key,null)),t.forEachAddedItem(t=>this._setStyle(t.key,t.currentValue)),t.forEachChangedItem(t=>this._setStyle(t.key,t.currentValue))}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(n.aQg),n.Y36(n.Qsj))},t.\u0275dir=n.lG2({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}}),t})(),St=(()=>{class t{constructor(t){this._viewContainerRef=t,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(t){if(t.ngTemplateOutlet){const t=this._viewContainerRef;this._viewRef&&t.remove(t.indexOf(this._viewRef)),this._viewRef=this.ngTemplateOutlet?t.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext):null}else this._viewRef&&t.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.s_b))},t.\u0275dir=n.lG2({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet"},features:[n.TTD]}),t})();function Et(t,e){return Error(`InvalidPipeArgument: '${e}' for pipe '${(0,n.AaK)(t)}'`)}class kt{createSubscription(t,e){return t.subscribe({next:e,error:t=>{throw t}})}dispose(t){t.unsubscribe()}onDestroy(t){t.unsubscribe()}}class Tt{createSubscription(t,e){return t.then(e,t=>{throw t})}dispose(t){}onDestroy(t){}}const Mt=new Tt,Lt=new kt;let It=(()=>{class t{constructor(t){this._ref=t,this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(t){return this._obj?t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue:(t&&this._subscribe(t),this._latestValue)}_subscribe(t){this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,e=>this._updateLatestValue(t,e))}_selectStrategy(e){if((0,n.QGY)(e))return Mt;if((0,n.F4k)(e))return Lt;throw Et(t,e)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.sBO,16))},t.\u0275pipe=n.Yjl({name:"async",type:t,pure:!1}),t})(),Ot=(()=>{class t{transform(e){if(null==e)return null;if("string"!=typeof e)throw Et(t,e);return e.toLowerCase()}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275pipe=n.Yjl({name:"lowercase",type:t,pure:!0}),t})();const Dt=/(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])\S*/g;let Rt=(()=>{class t{transform(e){if(null==e)return null;if("string"!=typeof e)throw Et(t,e);return e.replace(Dt,t=>t[0].toUpperCase()+t.substr(1).toLowerCase())}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275pipe=n.Yjl({name:"titlecase",type:t,pure:!0}),t})(),Nt=(()=>{class t{transform(e){if(null==e)return null;if("string"!=typeof e)throw Et(t,e);return e.toUpperCase()}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275pipe=n.Yjl({name:"uppercase",type:t,pure:!0}),t})(),Pt=(()=>{class t{constructor(t){this.locale=t}transform(e,i="mediumDate",n,r){if(null==e||""===e||e!=e)return null;try{return j(e,i,r||this.locale,n)}catch(s){throw Et(t,s.message)}}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.soG,16))},t.\u0275pipe=n.Yjl({name:"date",type:t,pure:!0}),t})(),Ft=(()=>{class t{transform(t){return JSON.stringify(t,null,2)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275pipe=n.Yjl({name:"json",type:t,pure:!1}),t})(),Zt=(()=>{class t{constructor(t){this._locale=t}transform(e,i,r){if(!function(t){return!(null==t||""===t||t!=t)}(e))return null;r=r||this._locale;try{return function(t,e,i){return function(t,e,i,n,r,s,o=!1){let a="",l=!1;if(isFinite(t)){let c=function(t){let e,i,n,r,s,o=Math.abs(t)+"",a=0;for((i=o.indexOf(at))>-1&&(o=o.replace(at,"")),(n=o.search(/e/i))>0?(i<0&&(i=n),i+=+o.slice(n+1),o=o.substring(0,n)):i<0&&(i=o.length),n=0;o.charAt(n)===lt;n++);if(n===(s=o.length))e=[0],i=1;else{for(s--;o.charAt(s)===lt;)s--;for(i-=n,e=[],r=0;n<=s;n++,r++)e[r]=Number(o.charAt(n))}return i>22&&(e=e.splice(0,21),a=i-1,i=1),{digits:e,exponent:a,integerLen:i}}(t);o&&(c=function(t){if(0===t.digits[0])return t;const e=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===e?t.digits.push(0,0):1===e&&t.digits.push(0),t.integerLen+=2),t}(c));let h=e.minInt,u=e.minFrac,d=e.maxFrac;if(s){const t=s.match(ot);if(null===t)throw new Error(`${s} is not a valid digit info`);const e=t[1],i=t[3],n=t[5];null!=e&&(h=ct(e)),null!=i&&(u=ct(i)),null!=n?d=ct(n):null!=i&&u>d&&(d=u)}!function(t,e,i){if(e>i)throw new Error(`The minimum number of digits after fraction (${e}) is higher than the maximum (${i}).`);let n=t.digits,r=n.length-t.integerLen;const s=Math.min(Math.max(e,r),i);let o=s+t.integerLen,a=n[o];if(o>0){n.splice(Math.max(t.integerLen,o));for(let t=o;t=5)if(o-1<0){for(let e=0;e>o;e--)n.unshift(0),t.integerLen++;n.unshift(1),t.integerLen++}else n[o-1]++;for(;r=c?n.pop():l=!1),e>=10?1:0},0);h&&(n.unshift(h),t.integerLen++)}(c,u,d);let p=c.digits,f=c.integerLen;const m=c.exponent;let g=[];for(l=p.every(t=>!t);f0?g=p.splice(f,p.length):(g=p,p=[0]);const y=[];for(p.length>=e.lgSize&&y.unshift(p.splice(-e.lgSize,p.length).join(""));p.length>e.gSize;)y.unshift(p.splice(-e.gSize,p.length).join(""));p.length&&y.unshift(p.join("")),a=y.join(N(i,n)),g.length&&(a+=N(i,r)+g.join("")),m&&(a+=N(i,I.Exponential)+"+"+m)}else a=N(i,I.Infinity);return a=t<0&&!l?e.negPre+a+e.negSuf:e.posPre+a+e.posSuf,a}(t,function(t,e="-"){const i={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},n=t.split(";"),r=n[0],s=n[1],o=-1!==r.indexOf(at)?r.split(at):[r.substring(0,r.lastIndexOf(lt)+1),r.substring(r.lastIndexOf(lt)+1)],a=o[0],l=o[1]||"";i.posPre=a.substr(0,a.indexOf("#"));for(let h=0;h{class t{transform(e,i,n){if(null==e)return null;if(!this.supports(e))throw Et(t,e);return e.slice(i,n)}supports(t){return"string"==typeof t||Array.isArray(t)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275pipe=n.Yjl({name:"slice",type:t,pure:!1}),t})(),Ut=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({providers:[{provide:ht,useClass:ut}]}),t})();const qt="browser";function zt(t){return t===qt}function Ht(t){return"server"===t}let Yt=(()=>{class t{}return t.\u0275prov=(0,n.Yz7)({token:t,providedIn:"root",factory:()=>new Gt((0,n.LFG)(l),window)}),t})();class Gt{constructor(t,e){this.document=t,this.window=e,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(t){this.supportsScrolling()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(!this.supportsScrolling())return;const e=function(t,e){const i=t.getElementById(e)||t.getElementsByName(e)[0];if(i)return i;if("function"==typeof t.createTreeWalker&&t.body&&(t.body.createShadowRoot||t.body.attachShadow)){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let n=i.currentNode;for(;n;){const t=n.shadowRoot;if(t){const i=t.getElementById(e)||t.querySelector(`[name="${e}"]`);if(i)return i}n=i.nextNode()}}return null}(this.document,t);e&&(this.scrollToElement(e),this.attemptFocus(e))}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),i=e.left+this.window.pageXOffset,n=e.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(i-r[0],n-r[1])}attemptFocus(t){return t.focus(),this.document.activeElement===t}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const t=jt(this.window.history)||jt(Object.getPrototypeOf(this.window.history));return!(!t||!t.writable&&!t.set)}catch(t){return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch(t){return!1}}}function jt(t){return Object.getOwnPropertyDescriptor(t,"scrollRestoration")}class Vt{}},9063:(t,e,i)=>{"use strict";i.d(e,{TP:()=>L,eN:()=>T,JF:()=>q,LE:()=>g});var n=i(1511),r=i(1572),s=i(2041),o=i(2391),a=i(8196),l=i(8868),c=i(1681);class h{}class u{}class d{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(t=>{const e=t.indexOf(":");if(e>0){const i=t.slice(0,e),n=i.toLowerCase(),r=t.slice(e+1).trim();this.maybeSetNormalizedName(i,n),this.headers.has(n)?this.headers.get(n).push(r):this.headers.set(n,[r])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let i=t[e];const n=e.toLowerCase();"string"==typeof i&&(i=[i]),i.length>0&&(this.headers.set(n,i),this.maybeSetNormalizedName(e,n))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof d?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new d;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof d?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const n=("a"===t.op?this.headers.get(e):void 0)||[];n.push(...i),this.headers.set(e,n);break;case"d":const r=t.value;if(r){let t=this.headers.get(e);if(!t)return;t=t.filter(t=>-1===r.indexOf(t)),0===t.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,t)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class p{encodeKey(t){return f(t)}encodeValue(t){return f(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}function f(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}function m(t){return`${t}`}class g{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new p,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function(t,e){const i=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(t=>{const n=t.indexOf("="),[r,s]=-1==n?[e.decodeKey(t),""]:[e.decodeKey(t.slice(0,n)),e.decodeValue(t.slice(n+1))],o=i.get(r)||[];o.push(s),i.set(r,o)}),i}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e];this.map.set(e,Array.isArray(i)?i:[i])})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const n=t[i];Array.isArray(n)?n.forEach(t=>{e.push({param:i,value:t,op:"a"})}):e.push({param:i,value:n,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(t=>e+"="+this.encoder.encodeValue(t)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new g({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(m(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let e=this.map.get(t.param)||[];const i=e.indexOf(m(t.value));-1!==i&&e.splice(i,1),e.length>0?this.map.set(t.param,e):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class y{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}keys(){return this.map.keys()}}function b(t){return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function v(t){return"undefined"!=typeof Blob&&t instanceof Blob}function _(t){return"undefined"!=typeof FormData&&t instanceof FormData}class w{constructor(t,e,i,n){let r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||n?(this.body=void 0!==i?i:null,r=n):r=i,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params)),this.headers||(this.headers=new d),this.context||(this.context=new y),this.params){const t=this.params.toString();if(0===t.length)this.urlWithParams=e;else{const i=e.indexOf("?");this.urlWithParams=e+(-1===i?"?":ie.set(i,t.setHeaders[i]),l)),t.setParams&&(c=Object.keys(t.setParams).reduce((e,i)=>e.set(i,t.setParams[i]),c)),new w(i,n,s,{params:c,headers:l,context:h,reportProgress:a,responseType:r,withCredentials:o})}}var x=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}({});class C{constructor(t,e=200,i="OK"){this.headers=t.headers||new d,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class A extends C{constructor(t={}){super(t),this.type=x.ResponseHeader}clone(t={}){return new A({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class S extends C{constructor(t={}){super(t),this.type=x.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new S({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class E extends C{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function k(t,e){return{body:e,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}let T=(()=>{class t{constructor(t){this.handler=t}request(t,e,i={}){let n;if(t instanceof w)n=t;else{let r,s;r=i.headers instanceof d?i.headers:new d(i.headers),i.params&&(s=i.params instanceof g?i.params:new g({fromObject:i.params})),n=new w(t,e,void 0!==i.body?i.body:null,{headers:r,context:i.context,params:s,reportProgress:i.reportProgress,responseType:i.responseType||"json",withCredentials:i.withCredentials})}const r=(0,s.of)(n).pipe((0,a.b)(t=>this.handler.handle(t)));if(t instanceof w||"events"===i.observe)return r;const o=r.pipe((0,l.h)(t=>t instanceof S));switch(i.observe||"body"){case"body":switch(n.responseType){case"arraybuffer":return o.pipe((0,c.U)(t=>{if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return t.body}));case"blob":return o.pipe((0,c.U)(t=>{if(null!==t.body&&!(t.body instanceof Blob))throw new Error("Response is not a Blob.");return t.body}));case"text":return o.pipe((0,c.U)(t=>{if(null!==t.body&&"string"!=typeof t.body)throw new Error("Response is not a string.");return t.body}));case"json":default:return o.pipe((0,c.U)(t=>t.body))}case"response":return o;default:throw new Error(`Unreachable: unhandled observe type ${i.observe}}`)}}delete(t,e={}){return this.request("DELETE",t,e)}get(t,e={}){return this.request("GET",t,e)}head(t,e={}){return this.request("HEAD",t,e)}jsonp(t,e){return this.request("JSONP",t,{params:(new g).append(e,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,e={}){return this.request("OPTIONS",t,e)}patch(t,e,i={}){return this.request("PATCH",t,k(i,e))}post(t,e,i={}){return this.request("POST",t,k(i,e))}put(t,e,i={}){return this.request("PUT",t,k(i,e))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(h))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();class M{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const L=new r.OlP("HTTP_INTERCEPTORS");let I=(()=>{class t{intercept(t,e){return e.handle(t)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();const O=/^\)\]\}',?\n/;let D=(()=>{class t{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new o.y(e=>{const i=this.xhrFactory.build();if(i.open(t.method,t.urlWithParams),t.withCredentials&&(i.withCredentials=!0),t.headers.forEach((t,e)=>i.setRequestHeader(t,e.join(","))),t.headers.has("Accept")||i.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){const e=t.detectContentTypeHeader();null!==e&&i.setRequestHeader("Content-Type",e)}if(t.responseType){const e=t.responseType.toLowerCase();i.responseType="json"!==e?e:"text"}const n=t.serializeBody();let r=null;const s=()=>{if(null!==r)return r;const e=1223===i.status?204:i.status,n=i.statusText||"OK",s=new d(i.getAllResponseHeaders()),o=function(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(i)||t.url;return r=new A({headers:s,status:e,statusText:n,url:o}),r},o=()=>{let{headers:n,status:r,statusText:o,url:a}=s(),l=null;204!==r&&(l=void 0===i.response?i.responseText:i.response),0===r&&(r=l?200:0);let c=r>=200&&r<300;if("json"===t.responseType&&"string"==typeof l){const t=l;l=l.replace(O,"");try{l=""!==l?JSON.parse(l):null}catch(h){l=t,c&&(c=!1,l={error:h,text:l})}}c?(e.next(new S({body:l,headers:n,status:r,statusText:o,url:a||void 0})),e.complete()):e.error(new E({error:l,headers:n,status:r,statusText:o,url:a||void 0}))},a=t=>{const{url:n}=s(),r=new E({error:t,status:i.status||0,statusText:i.statusText||"Unknown Error",url:n||void 0});e.error(r)};let l=!1;const c=n=>{l||(e.next(s()),l=!0);let r={type:x.DownloadProgress,loaded:n.loaded};n.lengthComputable&&(r.total=n.total),"text"===t.responseType&&i.responseText&&(r.partialText=i.responseText),e.next(r)},h=t=>{let i={type:x.UploadProgress,loaded:t.loaded};t.lengthComputable&&(i.total=t.total),e.next(i)};return i.addEventListener("load",o),i.addEventListener("error",a),i.addEventListener("timeout",a),i.addEventListener("abort",a),t.reportProgress&&(i.addEventListener("progress",c),null!==n&&i.upload&&i.upload.addEventListener("progress",h)),i.send(n),e.next({type:x.Sent}),()=>{i.removeEventListener("error",a),i.removeEventListener("abort",a),i.removeEventListener("load",o),i.removeEventListener("timeout",a),t.reportProgress&&(i.removeEventListener("progress",c),null!==n&&i.upload&&i.upload.removeEventListener("progress",h)),i.readyState!==i.DONE&&i.abort()}})}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.JF))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();const R=new r.OlP("XSRF_COOKIE_NAME"),N=new r.OlP("XSRF_HEADER_NAME");class P{}let F=(()=>{class t{constructor(t,e,i){this.doc=t,this.platform=e,this.cookieName=i,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,n.Mx)(t,this.cookieName),this.lastCookieString=t),this.lastToken}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.K0),r.LFG(r.Lbi),r.LFG(R))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),Z=(()=>{class t{constructor(t,e){this.tokenService=t,this.headerName=e}intercept(t,e){const i=t.url.toLowerCase();if("GET"===t.method||"HEAD"===t.method||i.startsWith("http://")||i.startsWith("https://"))return e.handle(t);const n=this.tokenService.getToken();return null===n||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,n)})),e.handle(t)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(P),r.LFG(N))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),B=(()=>{class t{constructor(t,e){this.backend=t,this.injector=e,this.chain=null}handle(t){if(null===this.chain){const t=this.injector.get(L,[]);this.chain=t.reduceRight((t,e)=>new M(t,e),this.backend)}return this.chain.handle(t)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(u),r.LFG(r.zs3))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),U=(()=>{class t{static disable(){return{ngModule:t,providers:[{provide:Z,useClass:I}]}}static withOptions(e={}){return{ngModule:t,providers:[e.cookieName?{provide:R,useValue:e.cookieName}:[],e.headerName?{provide:N,useValue:e.headerName}:[]]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({providers:[Z,{provide:L,useExisting:Z,multi:!0},{provide:P,useClass:F},{provide:R,useValue:"XSRF-TOKEN"},{provide:N,useValue:"X-XSRF-TOKEN"}]}),t})(),q=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({providers:[T,{provide:h,useClass:B},D,{provide:u,useExisting:D}],imports:[[U.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),t})()},1572:(t,e,i)=>{"use strict";i.d(e,{deG:()=>li,tb:()=>hc,AFp:()=>sc,ip1:()=>nc,CZH:()=>rc,hGG:()=>nh,z2F:()=>Vc,sBO:()=>Wa,Sil:()=>wc,_Vd:()=>va,EJc:()=>pc,SBq:()=>Ca,qLn:()=>Ln,vpe:()=>Fl,gxx:()=>vs,tBr:()=>Mi,XFs:()=>L,OlP:()=>ai,zs3:()=>Rs,ZZ4:()=>za,aQg:()=>Ya,soG:()=>dc,YKP:()=>sl,v3s:()=>Wc,h0i:()=>rl,PXZ:()=>zc,R0b:()=>Ac,FiY:()=>Li,Lbi:()=>cc,g9A:()=>lc,n_E:()=>Bl,Qsj:()=>Ea,FYo:()=>Sa,JOm:()=>Nn,Tiy:()=>Ta,q3G:()=>wn,PiD:()=>Ii,tp0:()=>Oi,EAV:()=>Kc,Rgc:()=>tl,dDg:()=>Ic,DyG:()=>ci,GfV:()=>Ma,s_b:()=>al,ifc:()=>P,eFA:()=>Hc,Ez6:()=>w,G48:()=>Uc,Gpc:()=>p,f3M:()=>Ei,X6Q:()=>Bc,_c5:()=>eh,VLi:()=>Rc,c2e:()=>uc,zSh:()=>ws,wAp:()=>sa,vHH:()=>g,EiD:()=>vn,mCW:()=>en,qzn:()=>Yi,JVY:()=>ji,pB0:()=>Ji,eBb:()=>Qi,L6k:()=>Vi,LAX:()=>Wi,cg1:()=>ia,Tjo:()=>th,kL8:()=>na,yhl:()=>Gi,dqk:()=>q,sIi:()=>Ys,CqO:()=>po,QGY:()=>ho,F4k:()=>uo,RDi:()=>Et,AaK:()=>h,z3N:()=>Hi,qOj:()=>Ps,TTD:()=>vt,_Bn:()=>ga,xp6:()=>xr,uIk:()=>Ws,Tol:()=>Do,Gre:()=>Jo,ekj:()=>Oo,Suo:()=>Xl,Xpm:()=>K,lG2:()=>st,Yz7:()=>_,cJS:()=>x,oAB:()=>it,Yjl:()=>ot,Y36:()=>$s,_UZ:()=>so,GkF:()=>lo,BQk:()=>ao,ynx:()=>oo,qZA:()=>ro,TgZ:()=>no,EpF:()=>co,n5z:()=>ii,Ikx:()=>Xo,LFG:()=>Si,$8M:()=>ri,$Z:()=>to,NdJ:()=>fo,CRH:()=>Kl,kcU:()=>_e,O4$:()=>ve,oxw:()=>vo,ALo:()=>Ll,lcZ:()=>Il,xi3:()=>Ol,Dn7:()=>Dl,Hsn:()=>xo,F$t:()=>wo,Q6J:()=>eo,s9C:()=>Co,MGl:()=>Ao,DdM:()=>xl,VKq:()=>Cl,WLB:()=>Al,kEZ:()=>Sl,iGM:()=>Wl,MAs:()=>Ks,pYS:()=>Dn,Jf7:()=>On,CHM:()=>Gt,oJD:()=>xn,LSH:()=>Cn,kYT:()=>nt,Udp:()=>Io,WFA:()=>mo,d8E:()=>Ko,YNc:()=>Xs,W1O:()=>ic,_uU:()=>Go,Oqu:()=>jo,hij:()=>Vo,AsE:()=>Qo,HOy:()=>Wo,Gf:()=>Jl});var n=i(9666),r=i(6042),s=i(2391),o=i(5446),a=i(7839);function l(t){for(let e in t)if(t[e]===l)return e;throw Error("Could not find renamed property on target object.")}function c(t,e){for(const i in e)e.hasOwnProperty(i)&&!t.hasOwnProperty(i)&&(t[i]=e[i])}function h(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(h).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const e=t.toString();if(null==e)return""+e;const i=e.indexOf("\n");return-1===i?e:e.substring(0,i)}function u(t,e){return null==t||""===t?null===e?"":e:null==e||""===e?t:t+" "+e}const d=l({__forward_ref__:l});function p(t){return t.__forward_ref__=p,t.toString=function(){return h(this())},t}function f(t){return m(t)?t():t}function m(t){return"function"==typeof t&&t.hasOwnProperty(d)&&t.__forward_ref__===p}class g extends Error{constructor(t,e){super(function(t,e){return`${t?`NG0${t}: `:""}${e}`}(t,e)),this.code=t}}function y(t){return"string"==typeof t?t:null==t?"":String(t)}function b(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():y(t)}function v(t,e){const i=e?` in ${e}`:"";throw new g("201",`No provider for ${b(t)} found${i}`)}function _(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}const w=_;function x(t){return{providers:t.providers||[],imports:t.imports||[]}}function C(t){return A(t,E)||A(t,T)}function A(t,e){return t.hasOwnProperty(e)?t[e]:null}function S(t){return t&&(t.hasOwnProperty(k)||t.hasOwnProperty(M))?t[k]:null}const E=l({"\u0275prov":l}),k=l({"\u0275inj":l}),T=l({ngInjectableDef:l}),M=l({ngInjectorDef:l});var L=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}({});let I;function O(t){const e=I;return I=t,e}function D(t,e,i){const n=C(t);return n&&"root"==n.providedIn?void 0===n.value?n.value=n.factory():n.value:i&L.Optional?null:void 0!==e?e:void v(h(t),"Injector")}function R(t){return{toString:t}.toString()}var N=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}({}),P=function(t){return t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom",t}({});const F="undefined"!=typeof globalThis&&globalThis,Z="undefined"!=typeof window&&window,B="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,U="undefined"!=typeof global&&global,q=F||U||Z||B,z={},H=[],Y=l({"\u0275cmp":l}),G=l({"\u0275dir":l}),j=l({"\u0275pipe":l}),V=l({"\u0275mod":l}),Q=l({"\u0275loc":l}),W=l({"\u0275fac":l}),J=l({__NG_ELEMENT_ID__:l});let X=0;function K(t){return R(()=>{const e={},i={type:t.type,providersResolver:null,decls:t.decls,vars:t.vars,factory:null,template:t.template||null,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:e,inputs:null,outputs:null,exportAs:t.exportAs||null,onPush:t.changeDetection===N.OnPush,directiveDefs:null,pipeDefs:null,selectors:t.selectors||H,viewQuery:t.viewQuery||null,features:t.features||null,data:t.data||{},encapsulation:t.encapsulation||P.Emulated,id:"c",styles:t.styles||H,_:null,setInput:null,schemas:t.schemas||null,tView:null},n=t.directives,r=t.features,s=t.pipes;return i.id+=X++,i.inputs=rt(t.inputs,e),i.outputs=rt(t.outputs),r&&r.forEach(t=>t(i)),i.directiveDefs=n?()=>("function"==typeof n?n():n).map($):null,i.pipeDefs=s?()=>("function"==typeof s?s():s).map(tt):null,i})}function $(t){return at(t)||function(t){return t[G]||null}(t)}function tt(t){return function(t){return t[j]||null}(t)}const et={};function it(t){return R(()=>{const e={type:t.type,bootstrap:t.bootstrap||H,declarations:t.declarations||H,imports:t.imports||H,exports:t.exports||H,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&(et[t.id]=t.type),e})}function nt(t,e){return R(()=>{const i=lt(t,!0);i.declarations=e.declarations||H,i.imports=e.imports||H,i.exports=e.exports||H})}function rt(t,e){if(null==t)return z;const i={};for(const n in t)if(t.hasOwnProperty(n)){let r=t[n],s=r;Array.isArray(r)&&(s=r[1],r=r[0]),i[r]=n,e&&(e[r]=s)}return i}const st=K;function ot(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,onDestroy:t.type.prototype.ngOnDestroy||null}}function at(t){return t[Y]||null}function lt(t,e){const i=t[V]||null;if(!i&&!0===e)throw new Error(`Type ${h(t)} does not have '\u0275mod' property.`);return i}const ct=20,ht=10;function ut(t){return Array.isArray(t)&&"object"==typeof t[1]}function dt(t){return Array.isArray(t)&&!0===t[1]}function pt(t){return 0!=(8&t.flags)}function ft(t){return 2==(2&t.flags)}function mt(t){return 1==(1&t.flags)}function gt(t){return null!==t.template}function yt(t,e){return t.hasOwnProperty(W)?t[W]:null}class bt{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function vt(){return _t}function _t(t){return t.type.prototype.ngOnChanges&&(t.setInput=xt),wt}function wt(){const t=Ct(this),e=null==t?void 0:t.current;if(e){const i=t.previous;if(i===z)t.previous=e;else for(let t in e)i[t]=e[t];t.current=null,this.ngOnChanges(e)}}function xt(t,e,i,n){const r=Ct(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:z,current:null}),s=r.current||(r.current={}),o=r.previous,a=this.declaredInputs[i],l=o[a];s[a]=new bt(l&&l.currentValue,e,o===z),t[n]=e}function Ct(t){return t.__ngSimpleChanges__||null}vt.ngInherit=!0;const At="http://www.w3.org/2000/svg";let St;function Et(t){St=t}function kt(){return void 0!==St?St:"undefined"!=typeof document?document:void 0}function Tt(t){return!!t.listen}const Mt={createRenderer:(t,e)=>kt()};function Lt(t){for(;Array.isArray(t);)t=t[0];return t}function It(t,e){return Lt(e[t])}function Ot(t,e){return Lt(e[t.index])}function Dt(t,e){return t.data[e]}function Rt(t,e){return t[e]}function Nt(t,e){const i=e[t];return ut(i)?i:i[0]}function Pt(t){return 4==(4&t[2])}function Ft(t){return 128==(128&t[2])}function Zt(t,e){return null==e?null:t[e]}function Bt(t){t[18]=0}function Ut(t,e){t[5]+=e;let i=t,n=t[3];for(;null!==n&&(1===e&&1===i[5]||-1===e&&0===i[5]);)n[5]+=e,i=n,n=n[3]}const qt={lFrame:de(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function zt(){return qt.bindingsEnabled}function Ht(){return qt.lFrame.lView}function Yt(){return qt.lFrame.tView}function Gt(t){return qt.lFrame.contextLView=t,t[8]}function jt(){let t=Vt();for(;null!==t&&64===t.type;)t=t.parent;return t}function Vt(){return qt.lFrame.currentTNode}function Qt(t,e){const i=qt.lFrame;i.currentTNode=t,i.isParent=e}function Wt(){return qt.lFrame.isParent}function Jt(){qt.lFrame.isParent=!1}function Xt(){return qt.isInCheckNoChangesMode}function Kt(t){qt.isInCheckNoChangesMode=t}function $t(){const t=qt.lFrame;let e=t.bindingRootIndex;return-1===e&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function te(){return qt.lFrame.bindingIndex}function ee(){return qt.lFrame.bindingIndex++}function ie(t){const e=qt.lFrame,i=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,i}function ne(t,e){const i=qt.lFrame;i.bindingIndex=i.bindingRootIndex=t,re(e)}function re(t){qt.lFrame.currentDirectiveIndex=t}function se(t){const e=qt.lFrame.currentDirectiveIndex;return-1===e?null:t[e]}function oe(){return qt.lFrame.currentQueryIndex}function ae(t){qt.lFrame.currentQueryIndex=t}function le(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function ce(t,e,i){if(i&L.SkipSelf){let n=e,r=t;for(;n=n.parent,!(null!==n||i&L.Host||(n=le(r),null===n)||(r=r[15],10&n.type)););if(null===n)return!1;e=n,t=r}const n=qt.lFrame=ue();return n.currentTNode=e,n.lView=t,!0}function he(t){const e=ue(),i=t[1];qt.lFrame=e,e.currentTNode=i.firstChild,e.lView=t,e.tView=i,e.contextLView=t,e.bindingIndex=i.bindingStartIndex,e.inI18n=!1}function ue(){const t=qt.lFrame,e=null===t?null:t.child;return null===e?de(t):e}function de(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function pe(){const t=qt.lFrame;return qt.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const fe=pe;function me(){const t=pe();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function ge(){return qt.lFrame.selectedIndex}function ye(t){qt.lFrame.selectedIndex=t}function be(){const t=qt.lFrame;return Dt(t.tView,t.selectedIndex)}function ve(){qt.lFrame.currentNamespace=At}function _e(){qt.lFrame.currentNamespace=null}function we(t,e){for(let i=e.directiveStart,n=e.directiveEnd;i=n)break}else e[a]<0&&(t[18]+=65536),(o>11>16&&(3&t[2])===e){t[2]+=2048;try{s.call(o)}finally{}}}else try{s.call(o)}finally{}}const ke=-1;class Te{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function Me(t,e,i){const n=Tt(t);let r=0;for(;re){o=s-1;break}}}for(;s>16,n=e;for(;i>0;)n=n[15],i--;return n}let Fe=!0;function Ze(t){const e=Fe;return Fe=t,e}let Be=0;function Ue(t,e){const i=ze(t,e);if(-1!==i)return i;const n=e[1];n.firstCreatePass&&(t.injectorIndex=e.length,qe(n.data,t),qe(e,null),qe(n.blueprint,null));const r=He(t,e),s=t.injectorIndex;if(Re(r)){const t=Ne(r),i=Pe(r,e),n=i[1].data;for(let r=0;r<8;r++)e[s+r]=i[t+r]|n[t+r]}return e[s+8]=r,s}function qe(t,e){t.push(0,0,0,0,0,0,0,0,e)}function ze(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function He(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let i=0,n=null,r=e;for(;null!==r;){const t=r[1],e=t.type;if(n=2===e?t.declTNode:1===e?r[6]:null,null===n)return ke;if(i++,r=r[15],-1!==n.injectorIndex)return n.injectorIndex|i<<16}return ke}function Ye(t,e,i){!function(t,e,i){let n;"string"==typeof i?n=i.charCodeAt(0)||0:i.hasOwnProperty(J)&&(n=i[J]),null==n&&(n=i[J]=Be++);const r=255&n;e.data[t+(r>>5)]|=1<=0?255&e:We:e}(i);if("function"==typeof s){if(!ce(e,t,n))return n&L.Host?Ge(r,i,n):je(e,i,n,r);try{const t=s(n);if(null!=t||n&L.Optional)return t;v(i)}finally{fe()}}else if("number"==typeof s){let r=null,o=ze(t,e),a=ke,l=n&L.Host?e[16][6]:null;for((-1===o||n&L.SkipSelf)&&(a=-1===o?He(t,e):e[o+8],a!==ke&&ti(n,!1)?(r=e[1],o=Ne(a),e=Pe(a,e)):o=-1);-1!==o;){const t=e[1];if($e(s,o,t.data)){const t=Je(o,e,i,r,n,l);if(t!==Qe)return t}a=e[o+8],a!==ke&&ti(n,e[1].data[o+8]===l)&&$e(s,o,e)?(r=t,o=Ne(a),e=Pe(a,e)):o=-1}}}return je(e,i,n,r)}const Qe={};function We(){return new ei(jt(),Ht())}function Je(t,e,i,n,r,s){const o=e[1],a=o.data[t+8],l=Xe(a,o,i,null==n?ft(a)&&Fe:n!=o&&0!=(3&a.type),r&L.Host&&s===a);return null!==l?Ke(e,o,l,a):Qe}function Xe(t,e,i,n,r){const s=t.providerIndexes,o=e.data,a=1048575&s,l=t.directiveStart,c=s>>20,h=r?a+c:t.directiveEnd;for(let u=n?a:a+c;u=l&&t.type===i)return u}if(r){const t=o[l];if(t&>(t)&&t.type===i)return l}return null}function Ke(t,e,i,n){let r=t[i];const s=e.data;if(r instanceof Te){const o=r;o.resolving&&function(t,e){throw new g("200",`Circular dependency in DI detected for ${t}`)}(b(s[i]));const a=Ze(o.canSeeViewProviders);o.resolving=!0;const l=o.injectImpl?O(o.injectImpl):null;ce(t,n,L.Default);try{r=t[i]=o.factory(void 0,s,t,n),e.firstCreatePass&&i>=n.directiveStart&&function(t,e,i){const{ngOnChanges:n,ngOnInit:r,ngDoCheck:s}=e.type.prototype;if(n){const n=_t(e);(i.preOrderHooks||(i.preOrderHooks=[])).push(t,n),(i.preOrderCheckHooks||(i.preOrderCheckHooks=[])).push(t,n)}r&&(i.preOrderHooks||(i.preOrderHooks=[])).push(0-t,r),s&&((i.preOrderHooks||(i.preOrderHooks=[])).push(t,s),(i.preOrderCheckHooks||(i.preOrderCheckHooks=[])).push(t,s))}(i,s[i],e)}finally{null!==l&&O(l),Ze(a),o.resolving=!1,fe()}}return r}function $e(t,e,i){return!!(i[e+(t>>5)]&1<{const e=t.prototype.constructor,i=e[W]||ni(e),n=Object.prototype;let r=Object.getPrototypeOf(t.prototype).constructor;for(;r&&r!==n;){const t=r[W]||ni(r);if(t&&t!==i)return t;r=Object.getPrototypeOf(r)}return t=>new t})}function ni(t){return m(t)?()=>{const e=ni(f(t));return e&&e()}:yt(t)}function ri(t){return function(t,e){if("class"===e)return t.classes;if("style"===e)return t.styles;const i=t.attrs;if(i){const t=i.length;let n=0;for(;n{const n=function(t){return function(...e){if(t){const i=t(...e);for(const t in i)this[t]=i[t]}}}(e);function r(...t){if(this instanceof r)return n.apply(this,t),this;const e=new r(...t);return i.annotation=e,i;function i(t,i,n){const r=t.hasOwnProperty(si)?t[si]:Object.defineProperty(t,si,{value:[]})[si];for(;r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(e),t}}return i&&(r.prototype=Object.create(i.prototype)),r.prototype.ngMetadataName=t,r.annotationCls=r,r})}class ai{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=_({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}toString(){return`InjectionToken ${this._desc}`}}const li=new ai("AnalyzeForEntryComponents"),ci=Function;function hi(t,e){void 0===e&&(e=t);for(let i=0;iArray.isArray(t)?ui(t,e):e(t))}function di(t,e,i){e>=t.length?t.push(i):t.splice(e,0,i)}function pi(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function fi(t,e){const i=[];for(let n=0;n=0?t[1|n]=i:(n=~n,function(t,e,i,n){let r=t.length;if(r==e)t.push(i,n);else if(1===r)t.push(n,t[0]),t[0]=i;else{for(r--,t.push(t[r-1],t[r]);r>e;)t[r]=t[r-2],r--;t[e]=i,t[e+1]=n}}(t,n,e,i)),n}function gi(t,e){const i=yi(t,e);if(i>=0)return t[1|i]}function yi(t,e){return function(t,e,i){let n=0,r=t.length>>1;for(;r!==n;){const i=n+(r-n>>1),s=t[i<<1];if(e===s)return i<<1;s>e?r=i:n=i+1}return~(r<<1)}(t,e)}const bi={},vi=/\n/gm,_i="__source",wi=l({provide:String,useValue:l});let xi;function Ci(t){const e=xi;return xi=t,e}function Ai(t,e=L.Default){if(void 0===xi)throw new Error("inject() must be called from an injection context");return null===xi?D(t,void 0,e):xi.get(t,e&L.Optional?null:void 0,e)}function Si(t,e=L.Default){return(I||Ai)(f(t),e)}const Ei=Si;function ki(t){const e=[];for(let i=0;i({token:t})),-1),Li=Ti(oi("Optional"),8),Ii=Ti(oi("Self"),2),Oi=Ti(oi("SkipSelf"),4);let Di,Ri;function Ni(t){var e;return(null===(e=function(){if(void 0===Di&&(Di=null,q.trustedTypes))try{Di=q.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch(e){}return Di}())||void 0===e?void 0:e.createHTML(t))||t}function Pi(t){var e;return(null===(e=function(){if(void 0===Ri&&(Ri=null,q.trustedTypes))try{Ri=q.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch(e){}return Ri}())||void 0===e?void 0:e.createHTML(t))||t}class Fi{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}class Zi extends Fi{getTypeName(){return"HTML"}}class Bi extends Fi{getTypeName(){return"Style"}}class Ui extends Fi{getTypeName(){return"Script"}}class qi extends Fi{getTypeName(){return"URL"}}class zi extends Fi{getTypeName(){return"ResourceURL"}}function Hi(t){return t instanceof Fi?t.changingThisBreaksApplicationSecurity:t}function Yi(t,e){const i=Gi(t);if(null!=i&&i!==e){if("ResourceURL"===i&&"URL"===e)return!0;throw new Error(`Required a safe ${e}, got a ${i} (see https://g.co/ng/security#xss)`)}return i===e}function Gi(t){return t instanceof Fi&&t.getTypeName()||null}function ji(t){return new Zi(t)}function Vi(t){return new Bi(t)}function Qi(t){return new Ui(t)}function Wi(t){return new qi(t)}function Ji(t){return new zi(t)}class Xi{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(Ni(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch(e){return null}}}class Ki{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const t=this.inertDocument.createElement("html");this.inertDocument.appendChild(t);const e=this.inertDocument.createElement("body");t.appendChild(e)}}getInertBodyElement(t){const e=this.inertDocument.createElement("template");if("content"in e)return e.innerHTML=Ni(t),e;const i=this.inertDocument.createElement("body");return i.innerHTML=Ni(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(i),i}stripCustomNsAttrs(t){const e=t.attributes;for(let n=e.length-1;0en(t.trim())).join(", ")),this.buf.push(" ",e,'="',yn(o),'"')}var n;return this.buf.push(">"),!0}endElement(t){const e=t.nodeName.toLowerCase();cn.hasOwnProperty(e)&&!sn.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(yn(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const mn=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,gn=/([^\#-~ |!])/g;function yn(t){return t.replace(/&/g,"&").replace(mn,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(gn,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let bn;function vn(t,e){let i=null;try{bn=bn||function(t){const e=new Ki(t);return function(){try{return!!(new window.DOMParser).parseFromString(Ni(""),"text/html")}catch(t){return!1}}()?new Xi(e):e}(t);let n=e?String(e):"";i=bn.getInertBodyElement(n);let r=5,s=n;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,n=s,s=i.innerHTML,i=bn.getInertBodyElement(n)}while(n!==s);return Ni((new fn).sanitizeChildren(_n(i)||i))}finally{if(i){const t=_n(i)||i;for(;t.firstChild;)t.removeChild(t.firstChild)}}}function _n(t){return"content"in t&&function(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var wn=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}({});function xn(t){const e=An();return e?Pi(e.sanitize(wn.HTML,t)||""):Yi(t,"HTML")?Pi(Hi(t)):vn(kt(),y(t))}function Cn(t){const e=An();return e?e.sanitize(wn.URL,t)||"":Yi(t,"URL")?Hi(t):en(y(t))}function An(){const t=Ht();return t&&t[12]}function Sn(t,e){t.__ngContext__=e}function En(t){const e=function(t){return t.__ngContext__||null}(t);return e?Array.isArray(e)?e:e.lView:null}function kn(t){return t.ngDebugContext}function Tn(t){return t.ngOriginalError}function Mn(t,...e){t.error(...e)}class Ln{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),i=this._findContext(t),n=function(t){return t.ngErrorLogger||Mn}(t);n(this._console,"ERROR",t),e&&n(this._console,"ORIGINAL ERROR",e),i&&n(this._console,"ERROR CONTEXT",i)}_findContext(t){return t?kn(t)?kn(t):this._findContext(Tn(t)):null}_findOriginalError(t){let e=Tn(t);for(;e&&Tn(e);)e=Tn(e);return e}}const In=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(q))();function On(t){return t.ownerDocument.defaultView}function Dn(t){return t.ownerDocument.body}function Rn(t){return t instanceof Function?t():t}var Nn=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}({});function Pn(t,e){return(void 0)(t,e)}function Fn(t){const e=t[3];return dt(e)?e[3]:e}function Zn(t){return Un(t[13])}function Bn(t){return Un(t[4])}function Un(t){for(;null!==t&&!dt(t);)t=t[4];return t}function qn(t,e,i,n,r){if(null!=n){let s,o=!1;dt(n)?s=n:ut(n)&&(o=!0,n=n[0]);const a=Lt(n);0===t&&null!==i?null==r?Wn(e,i,a):Qn(e,i,a,r||null,!0):1===t&&null!==i?Qn(e,i,a,r||null,!0):2===t?function(t,e,i){const n=Xn(t,e);n&&function(t,e,i,n){Tt(t)?t.removeChild(e,i,n):e.removeChild(i)}(t,n,e,i)}(e,a,o):3===t&&e.destroyNode(a),null!=s&&function(t,e,i,n,r){const s=i[7];s!==Lt(i)&&qn(e,t,n,s,r);for(let o=ht;o0&&(t[i-1][4]=n[4]);const o=pi(t,ht+e);sr(n[1],r=n,r[11],2,null,null),r[0]=null,r[6]=null;const a=o[19];null!==a&&a.detachView(o[1]),n[3]=null,n[4]=null,n[2]&=-129}var r;return n}function Gn(t,e){if(!(256&e[2])){const i=e[11];Tt(i)&&i.destroyNode&&sr(t,e,i,3,null,null),function(t){let e=t[13];if(!e)return jn(t[1],t);for(;e;){let i=null;if(ut(e))i=e[13];else{const t=e[10];t&&(i=t)}if(!i){for(;e&&!e[4]&&e!==t;)ut(e)&&jn(e[1],e),e=e[3];null===e&&(e=t),ut(e)&&jn(e[1],e),i=e&&e[4]}e=i}}(e)}}function jn(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function(t,e){let i;if(null!=t&&null!=(i=t.destroyHooks))for(let n=0;n=0?n[r=l]():n[r=-l].unsubscribe(),s+=2}else{const t=n[r=i[s+1]];i[s].call(t)}if(null!==n){for(let t=r+1;ts?"":r[h+1].toLowerCase();const e=8&n?t:null;if(e&&-1!==cr(e,c,0)||2&n&&c!==t){if(mr(n))return!1;o=!0}}}}else{if(!o&&!mr(n)&&!mr(l))return!1;if(o&&mr(l))continue;o=!1,n=l|1&n}}return mr(n)||o}function mr(t){return 0==(1&t)}function gr(t,e,i,n){if(null===e)return-1;let r=0;if(n||!i){let i=!1;for(;r-1)for(i++;i0?'="'+e+'"':"")+"]"}else 8&n?r+="."+o:4&n&&(r+=" "+o);else""===r||mr(o)||(e+=vr(s,r),r=""),n=o,s=s||!mr(n);i++}return""!==r&&(e+=vr(s,r)),e}const wr={};function xr(t){Cr(Yt(),Ht(),ge()+t,Xt())}function Cr(t,e,i,n){if(!n)if(3==(3&e[2])){const n=t.preOrderCheckHooks;null!==n&&xe(e,n,i)}else{const n=t.preOrderHooks;null!==n&&Ce(e,n,0,i)}ye(i)}function Ar(t,e){return t<<17|e<<2}function Sr(t){return t>>17&32767}function Er(t){return 2|t}function kr(t){return(131068&t)>>2}function Tr(t,e){return-131069&t|e<<2}function Mr(t){return 1|t}function Lr(t,e){const i=t.contentQueries;if(null!==i)for(let n=0;nct&&Cr(t,e,ct,Xt()),i(n,r)}finally{ye(s)}}function Zr(t,e,i){if(pt(e)){const n=e.directiveEnd;for(let r=e.directiveStart;r0;){const i=t[--e];if("number"==typeof i&&i<0)return i}return 0})(i)!=s&&i.push(s),i.push(n,r,o)}}function Qr(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function Wr(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function Jr(t,e,i){if(i){if(e.exportAs)for(let n=0;n0&&rs(i)}}function rs(t){for(let i=Zn(t);null!==i;i=Bn(i))for(let t=ht;t0&&rs(e)}const e=t[1].components;if(null!==e)for(let i=0;i0&&rs(n)}}function ss(t,e){const i=Nt(e,t),n=i[1];!function(t,e){for(let i=e.length;iPromise.resolve(null))();function ds(t){return t[7]||(t[7]=[])}function ps(t){return t.cleanup||(t.cleanup=[])}function fs(t,e,i){return(null===t||gt(t))&&(i=function(t){for(;Array.isArray(t);){if("object"==typeof t[1])return t;t=t[0]}return null}(i[e.index])),i[11]}function ms(t,e){const i=t[9],n=i?i.get(Ln,null):null;n&&n.handleError(e)}function gs(t,e,i,n,r){for(let s=0;sthis.processProvider(i,t,e)),ui([t],t=>this.processInjectorType(t,[],r)),this.records.set(vs,Ls(void 0,this));const s=this.records.get(ws);this.scope=null!=s?s.value:null,this.source=n||("object"==typeof t?null:h(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=bi,i=L.Default){this.assertNotDestroyed();const n=Ci(this);try{if(!(i&L.SkipSelf)){let e=this.records.get(t);if(void 0===e){const i=("function"==typeof(r=t)||"object"==typeof r&&r instanceof ai)&&C(t);e=i&&this.injectableDefInScope(i)?Ls(Ts(t),xs):null,this.records.set(t,e)}if(null!=e)return this.hydrate(t,e)}return(i&L.Self?Ss():this.parent).get(t,e=i&L.Optional&&e===bi?null:e)}catch(s){if("NullInjectorError"===s.name){if((s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(h(t)),n)throw s;return function(t,e,i,n){const r=t.ngTempTokenPath;throw e[_i]&&r.unshift(e[_i]),t.message=function(t,e,i,n=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.substr(2):t;let r=h(e);if(Array.isArray(e))r=e.map(h).join(" -> ");else if("object"==typeof e){let t=[];for(let i in e)if(e.hasOwnProperty(i)){let n=e[i];t.push(i+":"+("string"==typeof n?JSON.stringify(n):h(n)))}r=`{${t.join(", ")}}`}return`${i}${n?"("+n+")":""}[${r}]: ${t.replace(vi,"\n ")}`}("\n"+t.message,r,i,n),t.ngTokenPath=r,t.ngTempTokenPath=null,t}(s,t,"R3InjectorError",this.source)}throw s}finally{Ci(n)}var r}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((e,i)=>t.push(h(i))),`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}processInjectorType(t,e,i){if(!(t=f(t)))return!1;let n=S(t);const r=null==n&&t.ngModule||void 0,s=void 0===r?t:r,o=-1!==i.indexOf(s);if(void 0!==r&&(n=S(r)),null==n)return!1;if(null!=n.imports&&!o){let t;i.push(s);try{ui(n.imports,n=>{this.processInjectorType(n,e,i)&&(void 0===t&&(t=[]),t.push(n))})}finally{}if(void 0!==t)for(let e=0;ethis.processProvider(t,i,n||H))}}this.injectorDefTypes.add(s);const a=yt(s)||(()=>new s);this.records.set(s,Ls(a,xs));const l=n.providers;if(null!=l&&!o){const e=t;ui(l,t=>this.processProvider(t,e,l))}return void 0!==r&&void 0!==t.providers}processProvider(t,e,i){let n=Os(t=f(t))?t:f(t&&t.provide);const r=function(t,e,i){return Is(t)?Ls(void 0,t.useValue):Ls(Ms(t),xs)}(t);if(Os(t)||!0!==t.multi)this.records.get(n);else{let e=this.records.get(n);e||(e=Ls(void 0,xs,!0),e.factory=()=>ki(e.multi),this.records.set(n,e)),n=t,e.multi.push(t)}this.records.set(n,r)}hydrate(t,e){var i;return e.value===xs&&(e.value=Cs,e.value=e.factory()),"object"==typeof e.value&&e.value&&null!==(i=e.value)&&"object"==typeof i&&"function"==typeof i.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){if(!t.providedIn)return!1;const e=f(t.providedIn);return"string"==typeof e?"any"===e||e===this.scope:this.injectorDefTypes.has(e)}}function Ts(t){const e=C(t),i=null!==e?e.factory:yt(t);if(null!==i)return i;if(t instanceof ai)throw new Error(`Token ${h(t)} is missing a \u0275prov definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const i=fi(e,"?");throw new Error(`Can't resolve all parameters for ${h(t)}: (${i.join(", ")}).`)}const i=function(t){const e=t&&(t[E]||t[T]);if(e){const i=function(t){if(t.hasOwnProperty("name"))return t.name;const e=(""+t).match(/^function\s*([^\s(]+)/);return null===e?"":e[1]}(t);return console.warn(`DEPRECATED: DI is instantiating a token "${i}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${i}" class.`),e}return null}(t);return null!==i?()=>i.factory(t):()=>new t}(t);throw new Error("unreachable")}function Ms(t,e,i){let n;if(Os(t)){const e=f(t);return yt(e)||Ts(e)}if(Is(t))n=()=>f(t.useValue);else if((r=t)&&r.useFactory)n=()=>t.useFactory(...ki(t.deps||[]));else if(function(t){return!(!t||!t.useExisting)}(t))n=()=>Si(f(t.useExisting));else{const e=f(t&&(t.useClass||t.provide));if(!function(t){return!!t.deps}(t))return yt(e)||Ts(e);n=()=>new e(...ki(t.deps))}var r;return n}function Ls(t,e,i=!1){return{factory:t,value:e,multi:i?[]:void 0}}function Is(t){return null!==t&&"object"==typeof t&&wi in t}function Os(t){return"function"==typeof t}const Ds=function(t,e,i){return function(t,e=null,i=null,n){const r=Es(t,e,i,n);return r._resolveInjectorDefTypes(),r}({name:i},e,t,i)};let Rs=(()=>{class t{static create(t,e){return Array.isArray(t)?Ds(t,e,""):Ds(t.providers,t.parent,t.name||"")}}return t.THROW_IF_NOT_FOUND=bi,t.NULL=new _s,t.\u0275prov=_({token:t,providedIn:"any",factory:()=>Si(vs)}),t.__NG_ELEMENT_ID__=-1,t})();function Ns(t,e){we(En(t)[1],jt())}function Ps(t){let e=Object.getPrototypeOf(t.type.prototype).constructor,i=!0;const n=[t];for(;e;){let r;if(gt(t))r=e.\u0275cmp||e.\u0275dir;else{if(e.\u0275cmp)throw new Error("Directives cannot inherit Components");r=e.\u0275dir}if(r){if(i){n.push(r);const e=t;e.inputs=Fs(t.inputs),e.declaredInputs=Fs(t.declaredInputs),e.outputs=Fs(t.outputs);const i=r.hostBindings;i&&Us(t,i);const s=r.viewQuery,o=r.contentQueries;if(s&&Zs(t,s),o&&Bs(t,o),c(t.inputs,r.inputs),c(t.declaredInputs,r.declaredInputs),c(t.outputs,r.outputs),gt(r)&&r.data.animation){const e=t.data;e.animation=(e.animation||[]).concat(r.data.animation)}}const e=r.features;if(e)for(let n=0;n=0;n--){const r=t[n];r.hostVars=e+=r.hostVars,r.hostAttrs=Oe(r.hostAttrs,i=Oe(i,r.hostAttrs))}}(n)}function Fs(t){return t===z?{}:t===H?[]:t}function Zs(t,e){const i=t.viewQuery;t.viewQuery=i?(t,n)=>{e(t,n),i(t,n)}:e}function Bs(t,e){const i=t.contentQueries;t.contentQueries=i?(t,n,r)=>{e(t,n,r),i(t,n,r)}:e}function Us(t,e){const i=t.hostBindings;t.hostBindings=i?(t,n)=>{e(t,n),i(t,n)}:e}let qs=null;function zs(){if(!qs){const t=q.Symbol;if(t&&t.iterator)qs=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;ea(Lt(t[n.index])):n.index;if(Tt(i)){let o=null;if(!a&&l&&(o=function(t,e,i,n){const r=t.cleanup;if(null!=r)for(let s=0;si?t[i]:null}"string"==typeof t&&(s+=2)}return null}(t,e,r,n.index)),null!==o)(o.__ngLastListenerFn__||o).__ngNextListenerFn__=s,o.__ngLastListenerFn__=s,u=!1;else{s=bo(n,e,0,s,!1);const t=i.listen(p,r,s);h.push(s,t),c&&c.push(r,m,f,f+1)}}else s=bo(n,e,0,s,!0),p.addEventListener(r,s,o),h.push(s),c&&c.push(r,m,f,o)}else s=bo(n,e,0,s,!1);const d=n.outputs;let p;if(u&&null!==d&&(p=d[r])){const t=p.length;if(t)for(let i=0;i0;)e=e[15],t--;return e}(t,qt.lFrame.contextLView))[8]}(t)}function _o(t,e){let i=null;const n=function(t){const e=t.attrs;if(null!=e){const t=e.indexOf(5);if(0==(1&t))return e[t+1]}return null}(t);for(let r=0;r=0}const ko={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function To(t){return t.substring(ko.key,ko.keyEnd)}function Mo(t,e){const i=ko.textEnd;return i===e?-1:(e=ko.keyEnd=function(t,e,i){for(;e32;)e++;return e}(t,ko.key=e,i),Lo(t,e,i))}function Lo(t,e,i){for(;e=0;i=Mo(e,i))mi(t,To(e),!0)}function No(t,e,i,n){const r=Ht(),s=Yt(),o=ie(2);s.firstUpdatePass&&Zo(s,t,o,n),e!==wr&&Vs(r,o,e)&&qo(s,s.data[ge()],r,r[11],t,r[o+1]=function(t,e){return null==t||("string"==typeof e?t+=e:"object"==typeof t&&(t=h(Hi(t)))),t}(e,i),n,o)}function Po(t,e,i,n){const r=Yt(),s=ie(2);r.firstUpdatePass&&Zo(r,null,s,n);const o=Ht();if(i!==wr&&Vs(o,s,i)){const a=r.data[ge()];if(Yo(a,n)&&!Fo(r,s)){let t=n?a.classesWithoutHost:a.stylesWithoutHost;null!==t&&(i=u(t,i||"")),io(r,a,o,i,n)}else!function(t,e,i,n,r,s,o,a){r===wr&&(r=H);let l=0,c=0,h=0=t.expandoStartIndex}function Zo(t,e,i,n){const r=t.data;if(null===r[i+1]){const s=r[ge()],o=Fo(t,i);Yo(s,n)&&null===e&&!o&&(e=!1),e=function(t,e,i,n){const r=se(t);let s=n?e.residualClasses:e.residualStyles;if(null===r)0===(n?e.classBindings:e.styleBindings)&&(i=Uo(i=Bo(null,t,e,i,n),e.attrs,n),s=null);else{const o=e.directiveStylingLast;if(-1===o||t[o]!==r)if(i=Bo(r,t,e,i,n),null===s){let i=function(t,e,i){const n=i?e.classBindings:e.styleBindings;if(0!==kr(n))return t[Sr(n)]}(t,e,n);void 0!==i&&Array.isArray(i)&&(i=Bo(null,t,e,i[1],n),i=Uo(i,e.attrs,n),function(t,e,i,n){t[Sr(i?e.classBindings:e.styleBindings)]=n}(t,e,n,i))}else s=function(t,e,i){let n;const r=e.directiveEnd;for(let s=1+e.directiveStylingLast;s0)&&(h=!0)}else c=i;if(r)if(0!==l){const e=Sr(t[a+1]);t[n+1]=Ar(e,a),0!==e&&(t[e+1]=Tr(t[e+1],n)),t[a+1]=131071&t[a+1]|n<<17}else t[n+1]=Ar(a,0),0!==a&&(t[a+1]=Tr(t[a+1],n)),a=n;else t[n+1]=Ar(l,0),0===a?a=n:t[l+1]=Tr(t[l+1],n),l=n;h&&(t[n+1]=Er(t[n+1])),So(t,c,n,!0),So(t,c,n,!1),function(t,e,i,n,r){const s=r?t.residualClasses:t.residualStyles;null!=s&&"string"==typeof e&&yi(s,e)>=0&&(i[n+1]=Mr(i[n+1]))}(e,c,t,n,s),o=Ar(a,l),s?e.classBindings=o:e.styleBindings=o}(r,s,e,i,o,n)}}function Bo(t,e,i,n,r){let s=null;const o=i.directiveEnd;let a=i.directiveStylingLast;for(-1===a?a=i.directiveStart:a++;a0;){const e=t[r],s=Array.isArray(e),l=s?e[1]:e,c=null===l;let h=i[r+1];h===wr&&(h=c?H:void 0);let u=c?gi(h,n):l===n?h:void 0;if(s&&!Ho(u)&&(u=gi(e,n)),Ho(u)&&(a=u,o))return a;const d=t[r+1];r=o?Sr(d):kr(d)}if(null!==e){let t=s?e.residualClasses:e.residualStyles;null!=t&&(a=gi(t,n))}return a}function Ho(t){return void 0!==t}function Yo(t,e){return 0!=(t.flags&(e?16:32))}function Go(t,e=""){const i=Ht(),n=Yt(),r=t+ct,s=n.firstCreatePass?Or(n,r,1,e,null):n.data[r],o=i[r]=function(t,e){return Tt(t)?t.createText(e):t.createTextNode(e)}(i[11],e);tr(n,i,o,s),Qt(s,!1)}function jo(t){return Vo("",t,""),jo}function Vo(t,e,i){const n=Ht(),r=Js(n,t,e,i);return r!==wr&&ys(n,ge(),r),Vo}function Qo(t,e,i,n,r){const s=Ht(),o=function(t,e,i,n,r,s){const o=Qs(t,te(),i,r);return ie(2),o?e+y(i)+n+y(r)+s:wr}(s,t,e,i,n,r);return o!==wr&&ys(s,ge(),o),Qo}function Wo(t,e,i,n,r,s,o,a,l){const c=Ht(),h=function(t,e,i,n,r,s,o,a,l,c){const h=function(t,e,i,n,r,s){const o=Qs(t,e,i,n);return Qs(t,e+2,r,s)||o}(t,te(),i,r,o,l);return ie(4),h?e+y(i)+n+y(r)+s+y(o)+a+y(l)+c:wr}(c,t,e,i,n,r,s,o,a,l);return h!==wr&&ys(c,ge(),h),Wo}function Jo(t,e,i){Po(mi,Ro,Js(Ht(),t,e,i),!0)}function Xo(t,e,i){const n=Ht();return Vs(n,ee(),e)&&Gr(Yt(),be(),n,t,e,n[11],i,!0),Xo}function Ko(t,e,i){const n=Ht();if(Vs(n,ee(),e)){const r=Yt(),s=be();Gr(r,s,n,t,e,fs(se(r.data),s,n),i,!0)}return Ko}const $o=void 0;var ta=["en",[["a","p"],["AM","PM"],$o],[["AM","PM"],$o,$o],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],$o,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],$o,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",$o,"{1} 'at' {0}",$o],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function(t){let e=Math.floor(Math.abs(t)),i=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let ea={};function ia(t){const e=function(t){return t.toLowerCase().replace(/_/g,"-")}(t);let i=ra(e);if(i)return i;const n=e.split("-")[0];if(i=ra(n),i)return i;if("en"===n)return ta;throw new Error(`Missing locale data for the locale "${t}".`)}function na(t){return ia(t)[sa.PluralCase]}function ra(t){return t in ea||(ea[t]=q.ng&&q.ng.common&&q.ng.common.locales&&q.ng.common.locales[t]),ea[t]}var sa=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}({});const oa="en-US";let aa=oa;function la(t){var e,i;i="Expected localeId to be defined",null==(e=t)&&function(t,e,i,n){throw new Error(`ASSERTION ERROR: ${t} [Expected=> null != ${e} <=Actual]`)}(i,e),"string"==typeof t&&(aa=t.toLowerCase().replace(/_/g,"-"))}function ca(t,e,i,n,r){if(t=f(t),Array.isArray(t))for(let s=0;s>20;if(Os(t)||!t.multi){const n=new Te(l,r,$s),p=da(a,e,r?h:h+d,u);-1===p?(Ye(Ue(c,o),s,a),ha(s,t,e.length),e.push(a),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=1048576),i.push(n),o.push(n)):(i[p]=n,o[p]=n)}else{const p=da(a,e,h+d,u),f=da(a,e,h,h+d),m=p>=0&&i[p],g=f>=0&&i[f];if(r&&!g||!r&&!m){Ye(Ue(c,o),s,a);const h=function(t,e,i,n,r){const s=new Te(t,i,$s);return s.multi=[],s.index=e,s.componentProviders=0,ua(s,r,n&&!i),s}(r?fa:pa,i.length,r,n,l);!r&&g&&(i[f].providerFactory=h),ha(s,t,e.length,0),e.push(a),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=1048576),i.push(h),o.push(h)}else ha(s,t,p>-1?p:f,ua(i[r?f:p],l,!r&&n));!r&&n&&g&&i[f].componentProviders++}}}function ha(t,e,i,n){const r=Os(e);if(r||e.useClass){const s=(e.useClass||e).prototype.ngOnDestroy;if(s){const o=t.destroyHooks||(t.destroyHooks=[]);if(!r&&e.multi){const t=o.indexOf(i);-1===t?o.push(i,[n,s]):o[t+1].push(n,s)}else o.push(i,s)}}}function ua(t,e,i){return i&&t.componentProviders++,t.multi.push(e)-1}function da(t,e,i,n){for(let r=i;r{i.providersResolver=(i,n)=>function(t,e,i){const n=Yt();if(n.firstCreatePass){const r=gt(t);ca(i,n.data,n.blueprint,r,!0),ca(e,n.data,n.blueprint,r,!1)}}(i,n?n(t):t,e)}}class ya{}class ba{resolveComponentFactory(t){throw function(t){const e=Error(`No component factory found for ${h(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(t)}}let va=(()=>{class t{}return t.NULL=new ba,t})();function _a(...t){}function wa(t,e){return new Ca(Ot(t,e))}const xa=function(){return wa(jt(),Ht())};let Ca=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=xa,t})();function Aa(t){return t instanceof Ca?t.nativeElement:t}class Sa{}let Ea=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>ka(),t})();const ka=function(){const t=Ht(),e=Nt(jt().index,t);return function(t){return t[11]}(ut(e)?e:t)};let Ta=(()=>{class t{}return t.\u0275prov=_({token:t,providedIn:"root",factory:()=>null}),t})();class Ma{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const La=new Ma("12.0.5");class Ia{constructor(){}supports(t){return Ys(t)}create(t){return new Da(t)}}const Oa=(t,e)=>e;class Da{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||Oa}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,i=this._removalsHead,n=0,r=null;for(;e||i;){const s=!i||e&&e.currentIndex{n=this._trackByFn(e,t),null!==r&&Object.is(r.trackById,n)?(s&&(r=this._verifyReinsertion(r,t,n,e)),Object.is(r.item,t)||this._addIdentityChange(r,t)):(r=this._mismatch(r,t,n,e),s=!0),r=r._next,e++}),this.length=e;return this._truncate(r),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,i,n){let r;return null===t?r=this._itTail:(r=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,r,n)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(i,n))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,r,n)):t=this._addAfter(new Ra(e,i),r,n),t}_verifyReinsertion(t,e,i,n){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==r?t=this._reinsertAfter(r,t._prev,n):t.currentIndex!=n&&(t.currentIndex=n,this._addToMoves(t,n)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const n=t._prevRemoved,r=t._nextRemoved;return null===n?this._removalsHead=r:n._nextRemoved=r,null===r?this._removalsTail=n:r._prevRemoved=n,this._insertAfter(t,e,i),this._addToMoves(t,i),t}_moveAfter(t,e,i){return this._unlink(t),this._insertAfter(t,e,i),this._addToMoves(t,i),t}_addAfter(t,e,i){return this._insertAfter(t,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,i){const n=null===e?this._itHead:e._next;return t._next=n,t._prev=e,null===n?this._itTail=t:n._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Pa),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,i=t._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Pa),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Ra{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Na{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){const e=t._prevDup,i=t._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class Pa{constructor(){this.map=new Map}put(t){const e=t.trackById;let i=this.map.get(e);i||(i=new Na,this.map.set(e,i)),i.add(t)}get(t,e){const i=this.map.get(t);return i?i.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function Fa(t,e,i){const n=t.previousIndex;if(null===n)return n;let r=0;return i&&n{if(e&&e.key===i)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const n=this._getOrCreateRecordForKey(i,t);e=this._insertBeforeOrAppend(e,n)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const i=this._records.get(t);this._maybeAddToChanges(i,e);const n=i._prev,r=i._next;return n&&(n._next=r),r&&(r._prev=n),i._next=null,i._prev=null,i}const i=new Ua(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class Ua{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function qa(){return new za([new Ia])}let za=(()=>{class t{constructor(t){this.factories=t}static create(e,i){if(null!=i){const t=i.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||qa()),deps:[[t,new Oi,new Li]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${i=t,i.name||typeof i}'`);var i}}return t.\u0275prov=_({token:t,providedIn:"root",factory:qa}),t})();function Ha(){return new Ya([new Za])}let Ya=(()=>{class t{constructor(t){this.factories=t}static create(e,i){if(i){const t=i.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||Ha()),deps:[[t,new Oi,new Li]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.\u0275prov=_({token:t,providedIn:"root",factory:Ha}),t})();function Ga(t,e,i,n,r=!1){for(;null!==i;){const s=e[i.index];if(null!==s&&n.push(Lt(s)),dt(s))for(let t=ht;t-1&&(Yn(t,i),pi(e,i))}this._attachedToViewContainer=!1}Gn(this._lView[1],this._lView)}onDestroy(t){Hr(this._lView[1],this._lView,null,t)}markForCheck(){as(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){ls(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(t,e,i){Kt(!0);try{ls(t,e,i)}finally{Kt(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}detachFromAppRef(){var t;this._appRef=null,sr(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._attachedToViewContainer)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t}}class Va extends ja{constructor(t){super(t),this._view=t}detectChanges(){cs(this._view)}checkNoChanges(){!function(t){Kt(!0);try{cs(t)}finally{Kt(!1)}}(this._view)}get context(){return null}}const Qa=function(t){return function(t,e,i){if(ft(t)&&!i){const i=Nt(t.index,e);return new ja(i,i)}return 47&t.type?new ja(e[16],e):null}(jt(),Ht(),16==(16&t))};let Wa=(()=>{class t{}return t.__NG_ELEMENT_ID__=Qa,t})();const Ja=[new Za],Xa=new za([new Ia]),Ka=new Ya(Ja),$a=function(){return nl(jt(),Ht())};let tl=(()=>{class t{}return t.__NG_ELEMENT_ID__=$a,t})();const el=tl,il=class extends el{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}createEmbeddedView(t){const e=this._declarationTContainer.tViews,i=Ir(this._declarationLView,e,t,16,null,e.declTNode,null,null,null,null);i[17]=this._declarationLView[this._declarationTContainer.index];const n=this._declarationLView[19];return null!==n&&(i[19]=n.createEmbeddedView(e)),Rr(e,i,t),new ja(i)}};function nl(t,e){return 4&t.type?new il(e,t,wa(t,e)):null}class rl{}class sl{}const ol=function(){return dl(jt(),Ht())};let al=(()=>{class t{}return t.__NG_ELEMENT_ID__=ol,t})();const ll=al,cl=class extends ll{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return wa(this._hostTNode,this._hostLView)}get injector(){return new ei(this._hostTNode,this._hostLView)}get parentInjector(){const t=He(this._hostTNode,this._hostLView);if(Re(t)){const e=Pe(t,this._hostLView),i=Ne(t);return new ei(e[1].data[i+8],e)}return new ei(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=hl(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-ht}createEmbeddedView(t,e,i){const n=t.createEmbeddedView(e||{});return this.insert(n,i),n}createComponent(t,e,i,n,r){const s=i||this.parentInjector;if(!r&&null==t.ngModule&&s){const t=s.get(rl,null);t&&(r=t)}const o=t.create(s,n,void 0,r);return this.insert(o.hostView,e),o}insert(t,e){const i=t._lView,n=i[1];if(dt(i[3])){const e=this.indexOf(t);if(-1!==e)this.detach(e);else{const e=i[3],n=new cl(e,e[6],e[3]);n.detach(n.indexOf(t))}}const r=this._adjustIndex(e),s=this._lContainer;!function(t,e,i,n){const r=ht+n,s=i.length;n>0&&(i[r-1][4]=e),nIn});class yl extends ya{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors.map(_r).join(","),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return ml(this.componentDef.inputs)}get outputs(){return ml(this.componentDef.outputs)}create(t,e,i,n){const r=(n=n||this.ngModule)?function(t,e){return{get:(i,n,r)=>{const s=t.get(i,pl,r);return s!==pl||n===pl?s:e.get(i,n,r)}}}(t,n.injector):t,s=r.get(Sa,Mt),o=r.get(Ta,null),a=s.createRenderer(null,this.componentDef),l=this.componentDef.selectors[0][0]||"div",c=i?function(t,e,i){if(Tt(t))return t.selectRootElement(e,i===P.ShadowDom);let n="string"==typeof e?t.querySelector(e):e;return n.textContent="",n}(a,i,this.componentDef.encapsulation):zn(s.createRenderer(null,this.componentDef),l,function(t){const e=t.toLowerCase();return"svg"===e?At:"math"===e?"http://www.w3.org/1998/MathML/":null}(l)),h=this.componentDef.onPush?576:528,u={components:[],scheduler:In,clean:us,playerHandler:null,flags:0},d=zr(0,null,null,1,0,null,null,null,null,null),p=Ir(null,d,u,h,null,null,s,a,o,r);let f,m;he(p);try{const t=function(t,e,i,n,r,s){const o=i[1];i[20]=t;const a=Or(o,20,2,"#host",null),l=a.mergedAttrs=e.hostAttrs;null!==l&&(bs(a,l,!0),null!==t&&(Me(r,t,l),null!==a.classes&&lr(r,t,a.classes),null!==a.styles&&ar(r,t,a.styles)));const c=n.createRenderer(t,e),h=Ir(i,qr(e),null,e.onPush?64:16,i[20],a,n,c,null,null);return o.firstCreatePass&&(Ye(Ue(a,i),o,e.type),Wr(o,a),Xr(a,i.length,1)),os(i,h),i[20]=h}(c,this.componentDef,p,s,a);if(c)if(i)Me(a,c,["ng-version",La.full]);else{const{attrs:t,classes:e}=function(t){const e=[],i=[];let n=1,r=2;for(;n0&&lr(a,c,e.join(" "))}if(m=Dt(d,ct),void 0!==e){const t=m.projection=[];for(let i=0;it(o,e)),e.contentQueries){const t=jt();e.contentQueries(1,o,t.directiveStart)}const a=jt();return!s.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||(ye(a.index),Vr(i[1],a,0,a.directiveStart,a.directiveEnd,e),Qr(e,o)),o}(t,this.componentDef,p,u,[Ns]),Rr(d,p,null)}finally{me()}return new bl(this.componentType,f,wa(m,p),p,m)}}class bl extends class{}{constructor(t,e,i,n,r){super(),this.location=i,this._rootLView=n,this._tNode=r,this.instance=e,this.hostView=this.changeDetectorRef=new Va(n),this.componentType=t}get injector(){return new ei(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}}const vl=new Map;class _l extends rl{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new fl(this);const i=lt(t),n=t[Q]||null;n&&la(n),this._bootstrapComponents=Rn(i.bootstrap),this._r3Injector=Es(t,e,[{provide:rl,useValue:this},{provide:va,useValue:this.componentFactoryResolver}],h(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,e=Rs.THROW_IF_NOT_FOUND,i=L.Default){return t===Rs||t===rl||t===vs?this:this._r3Injector.get(t,e,i)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class wl extends sl{constructor(t){super(),this.moduleType=t,null!==lt(t)&&function(t){const e=new Set;!function t(i){const n=lt(i,!0),r=n.id;null!==r&&(function(t,e,i){if(e&&e!==i)throw new Error(`Duplicate module registered for ${t} - ${h(e)} vs ${h(e.name)}`)}(r,vl.get(r),i),vl.set(r,i));const s=Rn(n.imports);for(const o of s)e.has(o)||(e.add(o),t(o))}(t)}(t)}create(t){return new _l(this.moduleType,t)}}function xl(t,e,i){const n=$t()+t,r=Ht();return r[n]===wr?js(r,n,i?e.call(i):e()):function(t,e){return t[e]}(r,n)}function Cl(t,e,i,n){return kl(Ht(),$t(),t,e,i,n)}function Al(t,e,i,n,r){return Tl(Ht(),$t(),t,e,i,n,r)}function Sl(t,e,i,n,r,s){return Ml(Ht(),$t(),t,e,i,n,r,s)}function El(t,e){const i=t[e];return i===wr?void 0:i}function kl(t,e,i,n,r,s){const o=e+i;return Vs(t,o,r)?js(t,o+1,s?n.call(s,r):n(r)):El(t,o+1)}function Tl(t,e,i,n,r,s,o){const a=e+i;return Qs(t,a,r,s)?js(t,a+2,o?n.call(o,r,s):n(r,s)):El(t,a+2)}function Ml(t,e,i,n,r,s,o,a){const l=e+i;return function(t,e,i,n,r){const s=Qs(t,e,i,n);return Vs(t,e+2,r)||s}(t,l,r,s,o)?js(t,l+3,a?n.call(a,r,s,o):n(r,s,o)):El(t,l+3)}function Ll(t,e){const i=Yt();let n;const r=t+ct;i.firstCreatePass?(n=function(t,e){if(e)for(let i=e.length-1;i>=0;i--){const n=e[i];if(t===n.name)return n}throw new g("302",`The pipe '${t}' could not be found!`)}(e,i.pipeRegistry),i.data[r]=n,n.onDestroy&&(i.destroyHooks||(i.destroyHooks=[])).push(r,n.onDestroy)):n=i.data[r];const s=n.factory||(n.factory=yt(n.type)),o=O($s);try{const t=Ze(!1),e=s();return Ze(t),function(t,e,i,n){i>=t.data.length&&(t.data[i]=null,t.blueprint[i]=null),e[i]=n}(i,Ht(),r,e),e}finally{O(o)}}function Il(t,e,i){const n=t+ct,r=Ht(),s=Rt(r,n);return Nl(r,Rl(r,n)?kl(r,$t(),e,s.transform,i,s):s.transform(i))}function Ol(t,e,i,n){const r=t+ct,s=Ht(),o=Rt(s,r);return Nl(s,Rl(s,r)?Tl(s,$t(),e,o.transform,i,n,o):o.transform(i,n))}function Dl(t,e,i,n,r){const s=t+ct,o=Ht(),a=Rt(o,s);return Nl(o,Rl(o,s)?Ml(o,$t(),e,a.transform,i,n,r,a):a.transform(i,n,r))}function Rl(t,e){return t[1].data[e].pure}function Nl(t,e){return Hs.isWrapped(e)&&(e=Hs.unwrap(e),t[te()]=wr),e}function Pl(t){return e=>{setTimeout(t,void 0,e)}}const Fl=class extends n.x{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,i){var n,s,o;let a=t,l=e||(()=>null),c=i;if(t&&"object"==typeof t){const e=t;a=null===(n=e.next)||void 0===n?void 0:n.bind(e),l=null===(s=e.error)||void 0===s?void 0:s.bind(e),c=null===(o=e.complete)||void 0===o?void 0:o.bind(e)}this.__isAsync&&(l=Pl(l),a&&(a=Pl(a)),c&&(c=Pl(c)));const h=super.subscribe({next:a,error:l,complete:c});return t instanceof r.w0&&t.add(h),h}};function Zl(){return this._results[zs()]()}class Bl{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=zs(),i=Bl.prototype;i[e]||(i[e]=Zl)}get changes(){return this._changes||(this._changes=new Fl)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){const i=this;i.dirty=!1;const n=hi(t);(this._changesDetected=!function(t,e,i){if(t.length!==e.length)return!1;for(let n=0;n0)n.push(o[t/2]);else{const r=s[t+1],o=e[-i];for(let t=ht;t{class t{constructor(t){this.appInits=t,this.resolve=_a,this.reject=_a,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let i=0;i{e.subscribe({complete:t,error:i})});t.push(i)}}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}return t.\u0275fac=function(e){return new(e||t)(Si(nc,8))},t.\u0275prov=_({token:t,factory:t.\u0275fac}),t})();const sc=new ai("AppId"),oc={provide:sc,useFactory:function(){return`${ac()}${ac()}${ac()}`},deps:[]};function ac(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const lc=new ai("Platform Initializer"),cc=new ai("Platform ID"),hc=new ai("appBootstrapListener");let uc=(()=>{class t{log(t){console.log(t)}warn(t){console.warn(t)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=_({token:t,factory:t.\u0275fac}),t})();const dc=new ai("LocaleId"),pc=new ai("DefaultCurrencyCode");class fc{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}const mc=function(t){return new wl(t)},gc=mc,yc=function(t){return Promise.resolve(mc(t))},bc=function(t){const e=mc(t),i=Rn(lt(t).declarations).reduce((t,e)=>{const i=at(e);return i&&t.push(new yl(i)),t},[]);return new fc(e,i)},vc=bc,_c=function(t){return Promise.resolve(bc(t))};let wc=(()=>{class t{constructor(){this.compileModuleSync=gc,this.compileModuleAsync=yc,this.compileModuleAndAllComponentsSync=vc,this.compileModuleAndAllComponentsAsync=_c}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=_({token:t,factory:t.\u0275fac}),t})();const xc=(()=>Promise.resolve(0))();function Cc(t){"undefined"==typeof Zone?xc.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}class Ac{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fl(!1),this.onMicrotaskEmpty=new Fl(!1),this.onStable=new Fl(!1),this.onError=new Fl(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const n=this;n._nesting=0,n._outer=n._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(n._inner=n._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(n._inner=n._inner.fork(Zone.longStackTraceZoneSpec)),n.shouldCoalesceEventChangeDetection=!i&&e,n.shouldCoalesceRunChangeDetection=i,n.lastRequestAnimationFrameId=-1,n.nativeRequestAnimationFrame=function(){let t=q.requestAnimationFrame,e=q.cancelAnimationFrame;if("undefined"!=typeof Zone&&t&&e){const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i);const n=e[Zone.__symbol__("OriginalDelegate")];n&&(e=n)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function(t){const e=()=>{!function(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(q,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,kc(t),t.isCheckStableRunning=!0,Ec(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),kc(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(i,n,r,s,o,a)=>{try{return Tc(t),i.invokeTask(r,s,o,a)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||t.shouldCoalesceRunChangeDetection)&&e(),Mc(t)}},onInvoke:(i,n,r,s,o,a,l)=>{try{return Tc(t),i.invoke(r,s,o,a,l)}finally{t.shouldCoalesceRunChangeDetection&&e(),Mc(t)}},onHasTask:(e,i,n,r)=>{e.hasTask(n,r),i===n&&("microTask"==r.change?(t._hasPendingMicrotasks=r.microTask,kc(t),Ec(t)):"macroTask"==r.change&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(e,i,n,r)=>(e.handleError(n,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}(n)}static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Ac.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(Ac.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,n){const r=this._inner,s=r.scheduleEventTask("NgZoneEvent: "+n,t,Sc,_a,_a);try{return r.runTask(s,e,i)}finally{r.cancelTask(s)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const Sc={};function Ec(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function kc(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function Tc(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function Mc(t){t._nesting--,Ec(t)}class Lc{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fl,this.onMicrotaskEmpty=new Fl,this.onStable=new Fl,this.onError=new Fl}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,n){return t.apply(e,i)}}let Ic=(()=>{class t{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Ac.assertNotInAngularZone(),Cc(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())Cc(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,i){let n=-1;e&&e>0&&(n=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==n),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:n,updateCb:i})}whenStable(t,e,i){if(i&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,e,i),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,i){return[]}}return t.\u0275fac=function(e){return new(e||t)(Si(Ac))},t.\u0275prov=_({token:t,factory:t.\u0275fac}),t})(),Oc=(()=>{class t{constructor(){this._applications=new Map,Pc.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return Pc.findTestabilityInTree(this,t,e)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=_({token:t,factory:t.\u0275fac}),t})();class Dc{addToWindow(t){}findTestabilityInTree(t,e,i){return null}}function Rc(t){Pc=t}let Nc,Pc=new Dc,Fc=!0,Zc=!1;function Bc(){return Zc=!0,Fc}function Uc(){if(Zc)throw new Error("Cannot enable prod mode after platform setup.");Fc=!1}const qc=new ai("AllowMultipleToken");class zc{constructor(t,e){this.name=t,this.token=e}}function Hc(t,e,i=[]){const n=`Platform: ${e}`,r=new ai(n);return(e=[])=>{let s=Yc();if(!s||s.injector.get(qc,!1))if(t)t(i.concat(e).concat({provide:r,useValue:!0}));else{const t=i.concat(e).concat({provide:r,useValue:!0},{provide:ws,useValue:"platform"});!function(t){if(Nc&&!Nc.destroyed&&!Nc.injector.get(qc,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");Nc=t.get(Gc);const e=t.get(lc,null);e&&e.forEach(t=>t())}(Rs.create({providers:t,name:n}))}return function(t){const e=Yc();if(!e)throw new Error("No platform exists!");if(!e.injector.get(t,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e}(r)}}function Yc(){return Nc&&!Nc.destroyed?Nc:null}let Gc=(()=>{class t{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const i=function(t,e){let i;return i="noop"===t?new Lc:("zone.js"===t?void 0:t)||new Ac({enableLongStackTrace:Bc(),shouldCoalesceEventChangeDetection:!!(null==e?void 0:e.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==e?void 0:e.ngZoneRunCoalescing)}),i}(e?e.ngZone:void 0,{ngZoneEventCoalescing:e&&e.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:e&&e.ngZoneRunCoalescing||!1}),n=[{provide:Ac,useValue:i}];return i.run(()=>{const e=Rs.create({providers:n,parent:this.injector,name:t.moduleType.name}),r=t.create(e),s=r.injector.get(Ln,null);if(!s)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return i.runOutsideAngular(()=>{const t=i.onError.subscribe({next:t=>{s.handleError(t)}});r.onDestroy(()=>{Qc(this._modules,r),t.unsubscribe()})}),function(t,e,i){try{const n=i();return ho(n)?n.catch(i=>{throw e.runOutsideAngular(()=>t.handleError(i)),i}):n}catch(n){throw e.runOutsideAngular(()=>t.handleError(n)),n}}(s,i,()=>{const t=r.injector.get(rc);return t.runInitializers(),t.donePromise.then(()=>(la(r.injector.get(dc,oa)||oa),this._moduleDoBootstrap(r),r))})})}bootstrapModule(t,e=[]){const i=jc({},e);return function(t,e,i){const n=new wl(i);return Promise.resolve(n)}(0,0,t).then(t=>this.bootstrapModuleFactory(t,i))}_moduleDoBootstrap(t){const e=t.injector.get(Vc);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${h(t.instance.constructor)} was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.`);t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\u0275fac=function(e){return new(e||t)(Si(Rs))},t.\u0275prov=_({token:t,factory:t.\u0275fac}),t})();function jc(t,e){return Array.isArray(e)?e.reduce(jc,t):Object.assign(Object.assign({},t),e)}let Vc=(()=>{class t{constructor(t,e,i,n,r){this._zone=t,this._injector=e,this._exceptionHandler=i,this._componentFactoryResolver=n,this._initStatus=r,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const l=new s.y(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),c=new s.y(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{Ac.assertNotInAngularZone(),Cc(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const i=this._zone.onUnstable.subscribe(()=>{Ac.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),i.unsubscribe()}});this.isStable=(0,o.T)(l,c.pipe((0,a.B)()))}bootstrap(t,e){if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");let i;i=t instanceof ya?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(i.componentType);const n=i.isBoundToModule?void 0:this._injector.get(rl),r=i.create(Rs.NULL,[],e||i.selector,n),s=r.location.nativeElement,o=r.injector.get(Ic,null),a=o&&r.injector.get(Oc);return o&&a&&a.registerApplication(s,o),r.onDestroy(()=>{this.detachView(r.hostView),Qc(this.components,r),a&&a.unregisterApplication(s)}),this._loadComponent(r),r}tick(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Qc(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(hc,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return t.\u0275fac=function(e){return new(e||t)(Si(Ac),Si(Rs),Si(Ln),Si(va),Si(rc))},t.\u0275prov=_({token:t,factory:t.\u0275fac}),t})();function Qc(t,e){const i=t.indexOf(e);i>-1&&t.splice(i,1)}class Wc{}class Jc{}const Xc={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"};let Kc=(()=>{class t{constructor(t,e){this._compiler=t,this._config=e||Xc}load(t){return this.loadAndCompile(t)}loadAndCompile(t){let[e,n]=t.split("#");return void 0===n&&(n="default"),i(8255)(e).then(t=>t[n]).then(t=>$c(t,e,n)).then(t=>this._compiler.compileModuleAsync(t))}loadFactory(t){let[e,n]=t.split("#"),r="NgFactory";return void 0===n&&(n="default",r=""),i(8255)(this._config.factoryPathPrefix+e+this._config.factoryPathSuffix).then(t=>t[n+r]).then(t=>$c(t,e,n))}}return t.\u0275fac=function(e){return new(e||t)(Si(wc),Si(Jc,8))},t.\u0275prov=_({token:t,factory:t.\u0275fac}),t})();function $c(t,e,i){if(!t)throw new Error(`Cannot find '${i}' in '${e}'`);return t}const th=function(t){return null},eh=Hc(null,"core",[{provide:cc,useValue:"unknown"},{provide:Gc,deps:[Rs]},{provide:Oc,deps:[]},{provide:uc,deps:[]}]),ih=[{provide:Vc,useClass:Vc,deps:[Ac,Rs,Ln,va,rc]},{provide:gl,deps:[Ac],useFactory:function(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:rc,useClass:rc,deps:[[new Li,nc]]},{provide:wc,useClass:wc,deps:[]},oc,{provide:za,useFactory:function(){return Xa},deps:[]},{provide:Ya,useFactory:function(){return Ka},deps:[]},{provide:dc,useFactory:function(t){return la(t=t||"undefined"!=typeof $localize&&$localize.locale||oa),t},deps:[[new Mi(dc),new Li,new Oi]]},{provide:pc,useValue:"USD"}];let nh=(()=>{class t{constructor(t){}}return t.\u0275fac=function(e){return new(e||t)(Si(Vc))},t.\u0275mod=it({type:t}),t.\u0275inj=x({providers:ih}),t})()},1463:(t,e,i)=>{"use strict";i.d(e,{IR:()=>p,g5:()=>g,WU:()=>y,wY:()=>b,Bs:()=>v,iR:()=>A,RK:()=>V,QI:()=>Q,Ot:()=>W,yB:()=>X});var n=i(1572),r=i(1511),s=i(9666),o=i(7425),a=i(2391),l=i(5446),c=i(8868),h=i(343);const u={provide:n.tb,useFactory:function(t,e){return()=>{if((0,r.NF)(e)){const e=Array.from(t.querySelectorAll(`[class*=${d}]`)),i=/\bflex-layout-.+?\b/g;e.forEach(t=>{t.classList.contains(`${d}ssr`)&&t.parentNode?t.parentNode.removeChild(t):t.className.replace(i,"")})}}},deps:[r.K0,n.Lbi],multi:!0},d="flex-layout-";let p=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({providers:[u]}),t})();class f{constructor(t=!1,e="all",i="",n="",r=0){this.matches=t,this.mediaQuery=e,this.mqAlias=i,this.suffix=n,this.priority=r,this.property=""}clone(){return new f(this.matches,this.mediaQuery,this.mqAlias,this.suffix)}}let m=(()=>{class t{constructor(){this.stylesheet=new Map}addStyleToElement(t,e,i){const n=this.stylesheet.get(t);n?n.set(e,i):this.stylesheet.set(t,new Map([[e,i]]))}clearStyles(){this.stylesheet.clear()}getStyleForElement(t,e){const i=this.stylesheet.get(t);let n="";if(i){const t=i.get(e);"number"!=typeof t&&"string"!=typeof t||(n=t+"")}return n}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t},token:t,providedIn:"root"}),t})();const g={addFlexToParent:!0,addOrientationBps:!1,disableDefaultBps:!1,disableVendorPrefixes:!1,serverLoaded:!1,useColumnBasisZero:!0,printWithBreakpoints:[],mediaTriggerAutoRestore:!0,ssrObserveBreakpoints:[]},y=new n.OlP("Flex Layout token, config options for the library",{providedIn:"root",factory:()=>g}),b=new n.OlP("FlexLayoutServerLoaded",{providedIn:"root",factory:()=>!1}),v=new n.OlP("Flex Layout token, collect all breakpoints into one provider",{providedIn:"root",factory:()=>null});function _(t,e){return t=t?t.clone():new f,e&&(t.mqAlias=e.alias,t.mediaQuery=e.mediaQuery,t.suffix=e.suffix,t.priority=e.priority),t}const w="inline",x=["row","column","row-reverse","column-reverse"];function C(t){if(t)switch(t.toLowerCase()){case"reverse":case"wrap-reverse":case"reverse-wrap":t="wrap-reverse";break;case"no":case"none":case"nowrap":t="nowrap";break;default:t="wrap"}return t}let A=(()=>{class t{constructor(t,e,i,n){this.elementRef=t,this.styleBuilder=e,this.styler=i,this.marshal=n,this.DIRECTIVE_KEY="",this.inputs=[],this.mru={},this.destroySubject=new s.x,this.styleCache=new Map}get parentElement(){return this.elementRef.nativeElement.parentElement}get nativeElement(){return this.elementRef.nativeElement}get activatedValue(){return this.marshal.getValue(this.nativeElement,this.DIRECTIVE_KEY)}set activatedValue(t){this.marshal.setValue(this.nativeElement,this.DIRECTIVE_KEY,t,this.marshal.activatedAlias)}ngOnChanges(t){Object.keys(t).forEach(e=>{if(-1!==this.inputs.indexOf(e)){const i=e.split(".").slice(1).join(".");this.setValue(t[e].currentValue,i)}})}ngOnDestroy(){this.destroySubject.next(),this.destroySubject.complete(),this.marshal.releaseElement(this.nativeElement)}init(t=[]){this.marshal.init(this.elementRef.nativeElement,this.DIRECTIVE_KEY,this.updateWithValue.bind(this),this.clearStyles.bind(this),t)}addStyles(t,e){const i=this.styleBuilder,n=i.shouldCache;let r=this.styleCache.get(t);r&&n||(r=i.buildStyles(t,e),n&&this.styleCache.set(t,r)),this.mru=Object.assign({},r),this.applyStyleToElement(r),i.sideEffect(t,r,e)}clearStyles(){Object.keys(this.mru).forEach(t=>{this.mru[t]=""}),this.applyStyleToElement(this.mru),this.mru={}}triggerUpdate(){this.marshal.triggerUpdate(this.nativeElement,this.DIRECTIVE_KEY)}getFlexFlowDirection(t,e=!1){if(t){const[i,n]=this.styler.getFlowDirection(t);if(!n&&e){const e=function(t){let[e,i,n]=function(t){t=t?t.toLowerCase():"";let[e,i,n]=t.split(" ");return x.find(t=>t===e)||(e=x[0]),i===w&&(i=n!==w?n:"",n=w),[e,C(i),!!n]}(t);return function(t,e=null,i=!1){return{display:i?"inline-flex":"flex","box-sizing":"border-box","flex-direction":t,"flex-wrap":e||null}}(e,i,n)}(i);this.styler.applyStyleToElements(e,[t])}return i.trim()}return"row"}hasWrap(t){return this.styler.hasWrap(t)}applyStyleToElement(t,e,i=this.nativeElement){this.styler.applyStyleToElement(i,t,e)}setValue(t,e){this.marshal.setValue(this.nativeElement,this.DIRECTIVE_KEY,t,e)}updateWithValue(t){this.currentValue!==t&&(this.addStyles(t),this.currentValue=t)}}return t.\u0275fac=function(t){n.$Z()},t.\u0275dir=n.lG2({type:t,features:[n.TTD]}),t})();const S=[{alias:"xs",mediaQuery:"screen and (min-width: 0px) and (max-width: 599.98px)",priority:1e3},{alias:"sm",mediaQuery:"screen and (min-width: 600px) and (max-width: 959.98px)",priority:900},{alias:"md",mediaQuery:"screen and (min-width: 960px) and (max-width: 1279.98px)",priority:800},{alias:"lg",mediaQuery:"screen and (min-width: 1280px) and (max-width: 1919.98px)",priority:700},{alias:"xl",mediaQuery:"screen and (min-width: 1920px) and (max-width: 4999.98px)",priority:600},{alias:"lt-sm",overlapping:!0,mediaQuery:"screen and (max-width: 599.98px)",priority:950},{alias:"lt-md",overlapping:!0,mediaQuery:"screen and (max-width: 959.98px)",priority:850},{alias:"lt-lg",overlapping:!0,mediaQuery:"screen and (max-width: 1279.98px)",priority:750},{alias:"lt-xl",overlapping:!0,priority:650,mediaQuery:"screen and (max-width: 1919.98px)"},{alias:"gt-xs",overlapping:!0,mediaQuery:"screen and (min-width: 600px)",priority:-950},{alias:"gt-sm",overlapping:!0,mediaQuery:"screen and (min-width: 960px)",priority:-850},{alias:"gt-md",overlapping:!0,mediaQuery:"screen and (min-width: 1280px)",priority:-750},{alias:"gt-lg",overlapping:!0,mediaQuery:"screen and (min-width: 1920px)",priority:-650}],E="(orientation: portrait) and (max-width: 599.98px)",k="(orientation: landscape) and (max-width: 959.98px)",T="(orientation: portrait) and (min-width: 600px) and (max-width: 839.98px)",M="(orientation: landscape) and (min-width: 960px) and (max-width: 1279.98px)",L="(orientation: portrait) and (min-width: 840px)",I="(orientation: landscape) and (min-width: 1280px)",O={HANDSET:`${E}, ${k}`,TABLET:`${T} , ${M}`,WEB:`${L}, ${I} `,HANDSET_PORTRAIT:`${E}`,TABLET_PORTRAIT:`${T} `,WEB_PORTRAIT:`${L}`,HANDSET_LANDSCAPE:`${k}`,TABLET_LANDSCAPE:`${M}`,WEB_LANDSCAPE:`${I}`},D=[{alias:"handset",priority:2e3,mediaQuery:O.HANDSET},{alias:"handset.landscape",priority:2e3,mediaQuery:O.HANDSET_LANDSCAPE},{alias:"handset.portrait",priority:2e3,mediaQuery:O.HANDSET_PORTRAIT},{alias:"tablet",priority:2100,mediaQuery:O.TABLET},{alias:"tablet.landscape",priority:2100,mediaQuery:O.TABLET_LANDSCAPE},{alias:"tablet.portrait",priority:2100,mediaQuery:O.TABLET_PORTRAIT},{alias:"web",priority:2200,mediaQuery:O.WEB,overlapping:!0},{alias:"web.landscape",priority:2200,mediaQuery:O.WEB_LANDSCAPE,overlapping:!0},{alias:"web.portrait",priority:2200,mediaQuery:O.WEB_PORTRAIT,overlapping:!0}],R=/(\.|-|_)/g;function N(t){let e=t.length>0?t.charAt(0):"",i=t.length>1?t.slice(1):"";return e.toUpperCase()+i}const P=new n.OlP("Token (@angular/flex-layout) Breakpoints",{providedIn:"root",factory:()=>{const t=(0,n.f3M)(v),e=(0,n.f3M)(y),i=[].concat.apply([],(t||[]).map(t=>Array.isArray(t)?t:[t]));return function(t,e=[]){const i={};return t.forEach(t=>{i[t.alias]=t}),e.forEach(t=>{i[t.alias]?function(t,...e){if(null==t)throw TypeError("Cannot convert undefined or null to object");for(let i of e)if(null!=i)for(let e in i)i.hasOwnProperty(e)&&(t[e]=i[e])}(i[t.alias],t):i[t.alias]=t}),(n=Object.keys(i).map(t=>i[t])).forEach(t=>{t.suffix||(t.suffix=t.alias.replace(R,"|").split("|").map(N).join(""),t.overlapping=!!t.overlapping)}),n;var n}((e.disableDefaultBps?[]:S).concat(e.addOrientationBps?D:[]),i)}});function F(t,e){return(e&&e.priority||0)-(t&&t.priority||0)}function Z(t,e){return(t.priority||0)-(e.priority||0)}let B=(()=>{class t{constructor(t){this.findByMap=new Map,this.items=[...t].sort(Z)}findByAlias(t){return t?this.findWithPredicate(t,e=>e.alias==t):null}findByQuery(t){return this.findWithPredicate(t,e=>e.mediaQuery==t)}get overlappings(){return this.items.filter(t=>1==t.overlapping)}get aliases(){return this.items.map(t=>t.alias)}get suffixes(){return this.items.map(t=>t.suffix?t.suffix:"")}findWithPredicate(t,e){let i=this.findByMap.get(t);return i||(i=this.items.find(e)||null,this.findByMap.set(t,i)),i||null}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(P))},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t((0,n.LFG)(P))},token:t,providedIn:"root"}),t})(),U=(()=>{class t{constructor(t,e,i){this._zone=t,this._platformId=e,this._document=i,this.source=new o.X(new f(!0)),this.registry=new Map,this.pendingRemoveListenerFns=[],this._observable$=this.source.asObservable()}get activations(){const t=[];return this.registry.forEach((e,i)=>{e.matches&&t.push(i)}),t}isActive(t){const e=this.registry.get(t);return e?e.matches:this.registerQuery(t).some(t=>t.matches)}observe(t,e=!1){if(t&&t.length){const i=this._observable$.pipe((0,c.h)(i=>!e||t.indexOf(i.mediaQuery)>-1)),n=new a.y(e=>{const i=this.registerQuery(t);if(i.length){const t=i.pop();i.forEach(t=>{e.next(t)}),this.source.next(t)}e.complete()});return(0,l.T)(n,i)}return this._observable$}registerQuery(t){const e=Array.isArray(t)?t:[t],i=[];return function(t,e){const i=t.filter(t=>!q[t]);if(i.length>0){const t=i.join(", ");try{const n=e.createElement("style");n.setAttribute("type","text/css"),n.styleSheet||n.appendChild(e.createTextNode(`\n/*\n @angular/flex-layout - workaround for possible browser quirk with mediaQuery listeners\n see http://bit.ly/2sd4HMP\n*/\n@media ${t} {.fx-query-test{ }}\n`)),e.head.appendChild(n),i.forEach(t=>q[t]=n)}catch(n){console.error(n)}}}(e,this._document),e.forEach(t=>{const e=e=>{this._zone.run(()=>this.source.next(new f(e.matches,t)))};let n=this.registry.get(t);n||(n=this.buildMQL(t),n.addListener(e),this.pendingRemoveListenerFns.push(()=>n.removeListener(e)),this.registry.set(t,n)),n.matches&&i.push(new f(!0,t))}),i}ngOnDestroy(){let t;for(;t=this.pendingRemoveListenerFns.pop();)t()}buildMQL(t){return function(t,e){return e&&window.matchMedia("all").addListener?window.matchMedia(t):{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{},onchange:null,addEventListener(){},removeEventListener(){},dispatchEvent:()=>!1}}(t,(0,r.NF)(this._platformId))}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(n.R0b),n.LFG(n.Lbi),n.LFG(r.K0))},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t((0,n.LFG)(n.R0b),(0,n.LFG)(n.Lbi),(0,n.LFG)(r.K0))},token:t,providedIn:"root"}),t})();const q={},z="print",H={alias:z,mediaQuery:z,priority:1e3};let Y=(()=>{class t{constructor(t,e,i){this.breakpoints=t,this.layoutConfig=e,this._document=i,this.registeredBeforeAfterPrintHooks=!1,this.isPrintingBeforeAfterEvent=!1,this.beforePrintEventListeners=[],this.afterPrintEventListeners=[],this.isPrinting=!1,this.queue=new G,this.deactivations=[]}withPrintQuery(t){return[...t,z]}isPrintEvent(t){return t.mediaQuery.startsWith(z)}get printAlias(){return this.layoutConfig.printWithBreakpoints||[]}get printBreakPoints(){return this.printAlias.map(t=>this.breakpoints.findByAlias(t)).filter(t=>null!==t)}getEventBreakpoints({mediaQuery:t}){const e=this.breakpoints.findByQuery(t);return(e?[...this.printBreakPoints,e]:this.printBreakPoints).sort(F)}updateEvent(t){let e=this.breakpoints.findByQuery(t.mediaQuery);return this.isPrintEvent(t)&&(e=this.getEventBreakpoints(t)[0],t.mediaQuery=e?e.mediaQuery:""),_(t,e)}registerBeforeAfterPrintHooks(t){if(!this._document.defaultView||this.registeredBeforeAfterPrintHooks)return;this.registeredBeforeAfterPrintHooks=!0;const e=()=>{this.isPrinting||(this.isPrintingBeforeAfterEvent=!0,this.startPrinting(t,this.getEventBreakpoints(new f(!0,z))),t.updateStyles())},i=()=>{this.isPrintingBeforeAfterEvent=!1,this.isPrinting&&(this.stopPrinting(t),t.updateStyles())};this._document.defaultView.addEventListener("beforeprint",e),this._document.defaultView.addEventListener("afterprint",i),this.beforePrintEventListeners.push(e),this.afterPrintEventListeners.push(i)}interceptEvents(t){return this.registerBeforeAfterPrintHooks(t),e=>{this.isPrintEvent(e)?e.matches&&!this.isPrinting?(this.startPrinting(t,this.getEventBreakpoints(e)),t.updateStyles()):e.matches||!this.isPrinting||this.isPrintingBeforeAfterEvent||(this.stopPrinting(t),t.updateStyles()):this.collectActivations(e)}}blockPropagation(){return t=>!(this.isPrinting||this.isPrintEvent(t))}startPrinting(t,e){this.isPrinting=!0,t.activatedBreakpoints=this.queue.addPrintBreakpoints(e)}stopPrinting(t){t.activatedBreakpoints=this.deactivations,this.deactivations=[],this.queue.clear(),this.isPrinting=!1}collectActivations(t){if(!this.isPrinting||this.isPrintingBeforeAfterEvent)if(t.matches)this.isPrintingBeforeAfterEvent||(this.deactivations=[]);else{const e=this.breakpoints.findByQuery(t.mediaQuery);e&&(this.deactivations.push(e),this.deactivations.sort(F))}}ngOnDestroy(){this._document.defaultView&&(this.beforePrintEventListeners.forEach(t=>this._document.defaultView.removeEventListener("beforeprint",t)),this.afterPrintEventListeners.forEach(t=>this._document.defaultView.removeEventListener("afterprint",t)))}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(B),n.LFG(y),n.LFG(r.K0))},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t((0,n.LFG)(B),(0,n.LFG)(y),(0,n.LFG)(r.K0))},token:t,providedIn:"root"}),t})();class G{constructor(){this.printBreakpoints=[]}addPrintBreakpoints(t){return t.push(H),t.sort(F),t.forEach(t=>this.addBreakpoint(t)),this.printBreakpoints}addBreakpoint(t){t&&void 0===this.printBreakpoints.find(e=>e.mediaQuery===t.mediaQuery)&&(this.printBreakpoints=function(t){return!!t&&t.mediaQuery.startsWith(z)}(t)?[t,...this.printBreakpoints]:[...this.printBreakpoints,t])}clear(){this.printBreakpoints=[]}}function j(t){for(let e in t){let i=t[e]||"";switch(e){case"display":t.display="flex"===i?["-webkit-flex","flex"]:"inline-flex"===i?["-webkit-inline-flex","inline-flex"]:i;break;case"align-items":case"align-self":case"align-content":case"flex":case"flex-basis":case"flex-flow":case"flex-grow":case"flex-shrink":case"flex-wrap":case"justify-content":t["-webkit-"+e]=i;break;case"flex-direction":i=i||"row",t["-webkit-flex-direction"]=i,t["flex-direction"]=i;break;case"order":t.order=t["-webkit-"+e]=isNaN(+i)?"0":i}}return t}let V=(()=>{class t{constructor(t,e,i,n){this._serverStylesheet=t,this._serverModuleLoaded=e,this._platformId=i,this.layoutConfig=n}applyStyleToElement(t,e,i=null){let n={};"string"==typeof e&&(n[e]=i,e=n),n=this.layoutConfig.disableVendorPrefixes?e:j(e),this._applyMultiValueStyleToElement(n,t)}applyStyleToElements(t,e=[]){const i=this.layoutConfig.disableVendorPrefixes?t:j(t);e.forEach(t=>{this._applyMultiValueStyleToElement(i,t)})}getFlowDirection(t){const e="flex-direction";let i=this.lookupStyle(t,e);return[i||"row",this.lookupInlineStyle(t,e)||(0,r.PM)(this._platformId)&&this._serverModuleLoaded?i:""]}hasWrap(t){return"wrap"===this.lookupStyle(t,"flex-wrap")}lookupAttributeValue(t,e){return t.getAttribute(e)||""}lookupInlineStyle(t,e){return(0,r.NF)(this._platformId)?t.style.getPropertyValue(e):this._getServerStyle(t,e)}lookupStyle(t,e,i=!1){let n="";return t&&((n=this.lookupInlineStyle(t,e))||((0,r.NF)(this._platformId)?i||(n=getComputedStyle(t).getPropertyValue(e)):this._serverModuleLoaded&&(n=this._serverStylesheet.getStyleForElement(t,e)))),n?n.trim():""}_applyMultiValueStyleToElement(t,e){Object.keys(t).sort().forEach(i=>{const n=t[i],s=Array.isArray(n)?n:[n];s.sort();for(let t of s)t=t?t+"":"",(0,r.NF)(this._platformId)||!this._serverModuleLoaded?(0,r.NF)(this._platformId)?e.style.setProperty(i,t):this._setServerStyle(e,i,t):this._serverStylesheet.addStyleToElement(e,i,t)})}_setServerStyle(t,e,i){e=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();const n=this._readStyleAttribute(t);n[e]=i||"",this._writeStyleAttribute(t,n)}_getServerStyle(t,e){return this._readStyleAttribute(t)[e]||""}_readStyleAttribute(t){const e={},i=t.getAttribute("style");if(i){const t=i.split(/;+/g);for(let i=0;i0){const t=n.indexOf(":");if(-1===t)throw new Error(`Invalid CSS style: ${n}`);e[n.substr(0,t).trim()]=n.substr(t+1).trim()}}}return e}_writeStyleAttribute(t,e){let i="";for(const n in e)e[n]&&(i+=n+":"+e[n]+";");t.setAttribute("style",i)}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(m),n.LFG(b),n.LFG(n.Lbi),n.LFG(y))},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t((0,n.LFG)(m),(0,n.LFG)(b),(0,n.LFG)(n.Lbi),(0,n.LFG)(y))},token:t,providedIn:"root"}),t})();class Q{constructor(){this.shouldCache=!0}sideEffect(t,e,i){}}function W(t,e="1",i="1"){let n=[e,i,t],r=t.indexOf("calc");if(r>0){n[2]=J(t.substring(r).trim());let e=t.substr(0,r).trim().split(" ");2==e.length&&(n[0]=e[0],n[1]=e[1])}else if(0==r)n[2]=J(t.trim());else{let r=t.split(" ");n=3===r.length?r:[e,i,t]}return n}function J(t){return t.replace(/[\s]/g,"").replace(/[\/\*\+\-]/g," $& ")}let X=(()=>{class t{constructor(t,e,i){this.matchMedia=t,this.breakpoints=e,this.hook=i,this.activatedBreakpoints=[],this.elementMap=new Map,this.elementKeyMap=new WeakMap,this.watcherMap=new WeakMap,this.updateMap=new WeakMap,this.clearMap=new WeakMap,this.subject=new s.x,this.observeActivations()}get activatedAlias(){return this.activatedBreakpoints[0]?this.activatedBreakpoints[0].alias:""}onMediaChange(t){const e=this.findByQuery(t.mediaQuery);e&&((t=_(t,e)).matches&&-1===this.activatedBreakpoints.indexOf(e)?(this.activatedBreakpoints.push(e),this.activatedBreakpoints.sort(F),this.updateStyles()):t.matches||-1===this.activatedBreakpoints.indexOf(e)||(this.activatedBreakpoints.splice(this.activatedBreakpoints.indexOf(e),1),this.activatedBreakpoints.sort(F),this.updateStyles()))}init(t,e,i,n,r=[]){K(this.updateMap,t,e,i),K(this.clearMap,t,e,n),this.buildElementKeyMap(t,e),this.watchExtraTriggers(t,e,r)}getValue(t,e,i){const n=this.elementMap.get(t);if(n){const t=void 0!==i?n.get(i):this.getActivatedValues(n,e);if(t)return t.get(e)}}hasValue(t,e){const i=this.elementMap.get(t);if(i){const t=this.getActivatedValues(i,e);if(t)return void 0!==t.get(e)||!1}return!1}setValue(t,e,i,n){let r=this.elementMap.get(t);if(r){const s=(r.get(n)||new Map).set(e,i);r.set(n,s),this.elementMap.set(t,r)}else r=(new Map).set(n,(new Map).set(e,i)),this.elementMap.set(t,r);const s=this.getValue(t,e);void 0!==s&&this.updateElement(t,e,s)}trackValue(t,e){return this.subject.asObservable().pipe((0,c.h)(i=>i.element===t&&i.key===e))}updateStyles(){this.elementMap.forEach((t,e)=>{const i=new Set(this.elementKeyMap.get(e));let n=this.getActivatedValues(t);n&&n.forEach((t,n)=>{this.updateElement(e,n,t),i.delete(n)}),i.forEach(i=>{if(n=this.getActivatedValues(t,i),n){const t=n.get(i);this.updateElement(e,i,t)}else this.clearElement(e,i)})})}clearElement(t,e){const i=this.clearMap.get(t);if(i){const n=i.get(e);n&&(n(),this.subject.next({element:t,key:e,value:""}))}}updateElement(t,e,i){const n=this.updateMap.get(t);if(n){const r=n.get(e);r&&(r(i),this.subject.next({element:t,key:e,value:i}))}}releaseElement(t){const e=this.watcherMap.get(t);e&&(e.forEach(t=>t.unsubscribe()),this.watcherMap.delete(t));const i=this.elementMap.get(t);i&&(i.forEach((t,e)=>i.delete(e)),this.elementMap.delete(t))}triggerUpdate(t,e){const i=this.elementMap.get(t);if(i){const n=this.getActivatedValues(i,e);n&&(e?this.updateElement(t,e,n.get(e)):n.forEach((e,i)=>this.updateElement(t,i,e)))}}buildElementKeyMap(t,e){let i=this.elementKeyMap.get(t);i||(i=new Set,this.elementKeyMap.set(t,i)),i.add(e)}watchExtraTriggers(t,e,i){if(i&&i.length){let n=this.watcherMap.get(t);if(n||(n=new Map,this.watcherMap.set(t,n)),!n.get(e)){const r=(0,l.T)(...i).subscribe(()=>{const i=this.getValue(t,e);this.updateElement(t,e,i)});n.set(e,r)}}}findByQuery(t){return this.breakpoints.findByQuery(t)}getActivatedValues(t,e){for(let n=0;nt.mediaQuery);this.matchMedia.observe(this.hook.withPrintQuery(t)).pipe((0,h.b)(this.hook.interceptEvents(this)),(0,c.h)(this.hook.blockPropagation())).subscribe(this.onMediaChange.bind(this))}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(U),n.LFG(B),n.LFG(Y))},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t((0,n.LFG)(U),(0,n.LFG)(B),(0,n.LFG)(Y))},token:t,providedIn:"root"}),t})();function K(t,e,i,n){if(void 0!==n){let r=t.get(e);r||(r=new Map,t.set(e,r)),r.set(i,n)}}},377:(t,e,i)=>{"use strict";i.d(e,{aT:()=>b,oO:()=>c,Zl:()=>g});var n=i(1572),r=i(1511),s=i(1463),o=(i(9861),i(9568),i(269));new Map;let a=(()=>{class t extends s.iR{constructor(t,e,i,n,s,o,a){super(t,null,e,i),this.ngClassInstance=a,this.DIRECTIVE_KEY="ngClass",this.ngClassInstance||(this.ngClassInstance=new r.mk(n,s,t,o)),this.init(),this.setValue("","")}set klass(t){this.ngClassInstance.klass=t,this.setValue(t,"")}updateWithValue(t){this.ngClassInstance.ngClass=t,this.ngClassInstance.ngDoCheck()}ngDoCheck(){this.ngClassInstance.ngDoCheck()}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(s.RK),n.Y36(s.yB),n.Y36(n.ZZ4),n.Y36(n.aQg),n.Y36(n.Qsj),n.Y36(r.mk,10))},t.\u0275dir=n.lG2({type:t,inputs:{klass:["class","klass"]},features:[n.qOj]}),t})();const l=["ngClass","ngClass.xs","ngClass.sm","ngClass.md","ngClass.lg","ngClass.xl","ngClass.lt-sm","ngClass.lt-md","ngClass.lt-lg","ngClass.lt-xl","ngClass.gt-xs","ngClass.gt-sm","ngClass.gt-md","ngClass.gt-lg"];let c=(()=>{class t extends a{constructor(){super(...arguments),this.inputs=l}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["","ngClass",""],["","ngClass.xs",""],["","ngClass.sm",""],["","ngClass.md",""],["","ngClass.lg",""],["","ngClass.xl",""],["","ngClass.lt-sm",""],["","ngClass.lt-md",""],["","ngClass.lt-lg",""],["","ngClass.lt-xl",""],["","ngClass.gt-xs",""],["","ngClass.gt-sm",""],["","ngClass.gt-md",""],["","ngClass.gt-lg",""]],inputs:{ngClass:"ngClass","ngClass.xs":"ngClass.xs","ngClass.sm":"ngClass.sm","ngClass.md":"ngClass.md","ngClass.lg":"ngClass.lg","ngClass.xl":"ngClass.xl","ngClass.lt-sm":"ngClass.lt-sm","ngClass.lt-md":"ngClass.lt-md","ngClass.lt-lg":"ngClass.lt-lg","ngClass.lt-xl":"ngClass.lt-xl","ngClass.gt-xs":"ngClass.gt-xs","ngClass.gt-sm":"ngClass.gt-sm","ngClass.gt-md":"ngClass.gt-md","ngClass.gt-lg":"ngClass.gt-lg"},features:[n.qOj]}),t})();new WeakMap;class h{constructor(t,e,i=!0){this.key=t,this.value=e,this.key=i?t.replace(/['"]/g,"").trim():t.trim(),this.value=i?e.replace(/['"]/g,"").trim():e.trim(),this.value=this.value.replace(/;/,"")}}function u(t){let e=typeof t;return"object"===e?t.constructor===Array?"array":t.constructor===Set?"set":"object":e}function d(t){const[e,...i]=t.split(":");return new h(e,i.join(":"))}function p(t,e){return e.key&&(t[e.key]=e.value),t}let f=(()=>{class t extends s.iR{constructor(t,e,i,n,s,o,a,l,c){super(t,null,e,i),this.sanitizer=n,this.ngStyleInstance=a,this.DIRECTIVE_KEY="ngStyle",this.ngStyleInstance||(this.ngStyleInstance=new r.PC(t,s,o)),this.init();const h=this.nativeElement.getAttribute("style")||"";this.fallbackStyles=this.buildStyleMap(h),this.isServer=l&&(0,r.PM)(c)}updateWithValue(t){const e=this.buildStyleMap(t);this.ngStyleInstance.ngStyle=Object.assign(Object.assign({},this.fallbackStyles),e),this.isServer&&this.applyStyleToElement(e),this.ngStyleInstance.ngDoCheck()}clearStyles(){this.ngStyleInstance.ngStyle=this.fallbackStyles,this.ngStyleInstance.ngDoCheck()}buildStyleMap(t){const e=t=>this.sanitizer.sanitize(n.q3G.STYLE,t)||"";if(t)switch(u(t)){case"string":return y(function(t,e=";"){return String(t).trim().split(e).map(t=>t.trim()).filter(t=>""!==t)}(t),e);case"array":return y(t,e);case"set":default:return function(t,e){let i=[];return"set"===u(t)?t.forEach(t=>i.push(t)):Object.keys(t).forEach(e=>{i.push(`${e}:${t[e]}`)}),function(t,e){return t.map(d).filter(t=>!!t).map(t=>(e&&(t.value=e(t.value)),t)).reduce(p,{})}(i,e)}(t,e)}return{}}ngDoCheck(){this.ngStyleInstance.ngDoCheck()}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(s.RK),n.Y36(s.yB),n.Y36(o.H7),n.Y36(n.aQg),n.Y36(n.Qsj),n.Y36(r.PC,10),n.Y36(s.wY),n.Y36(n.Lbi))},t.\u0275dir=n.lG2({type:t,features:[n.qOj]}),t})();const m=["ngStyle","ngStyle.xs","ngStyle.sm","ngStyle.md","ngStyle.lg","ngStyle.xl","ngStyle.lt-sm","ngStyle.lt-md","ngStyle.lt-lg","ngStyle.lt-xl","ngStyle.gt-xs","ngStyle.gt-sm","ngStyle.gt-md","ngStyle.gt-lg"];let g=(()=>{class t extends f{constructor(){super(...arguments),this.inputs=m}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["","ngStyle",""],["","ngStyle.xs",""],["","ngStyle.sm",""],["","ngStyle.md",""],["","ngStyle.lg",""],["","ngStyle.xl",""],["","ngStyle.lt-sm",""],["","ngStyle.lt-md",""],["","ngStyle.lt-lg",""],["","ngStyle.lt-xl",""],["","ngStyle.gt-xs",""],["","ngStyle.gt-sm",""],["","ngStyle.gt-md",""],["","ngStyle.gt-lg",""]],inputs:{ngStyle:"ngStyle","ngStyle.xs":"ngStyle.xs","ngStyle.sm":"ngStyle.sm","ngStyle.md":"ngStyle.md","ngStyle.lg":"ngStyle.lg","ngStyle.xl":"ngStyle.xl","ngStyle.lt-sm":"ngStyle.lt-sm","ngStyle.lt-md":"ngStyle.lt-md","ngStyle.lt-lg":"ngStyle.lt-lg","ngStyle.lt-xl":"ngStyle.lt-xl","ngStyle.gt-xs":"ngStyle.gt-xs","ngStyle.gt-sm":"ngStyle.gt-sm","ngStyle.gt-md":"ngStyle.gt-md","ngStyle.gt-lg":"ngStyle.gt-lg"},features:[n.qOj]}),t})();function y(t,e){return t.map(d).filter(t=>!!t).map(t=>(e&&(t.value=e(t.value)),t)).reduce(p,{})}let b=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[s.IR]]}),t})()},3722:(t,e,i)=>{"use strict";i.d(e,{ae:()=>Z,yH:()=>w,xw:()=>m,Wh:()=>M});var n=i(1572),r=i(1463),s=i(2526),o=(i(9666),i(9568));const a="inline",l=["row","column","row-reverse","column-reverse"];function c(t){t=t?t.toLowerCase():"";let[e,i,n]=t.split(" ");return l.find(t=>t===e)||(e=l[0]),i===a&&(i=n!==a?n:"",n=a),[e,u(i),!!n]}function h(t){let[e]=c(t);return e.indexOf("row")>-1}function u(t){if(t)switch(t.toLowerCase()){case"reverse":case"wrap-reverse":case"reverse-wrap":t="wrap-reverse";break;case"no":case"none":case"nowrap":t="nowrap";break;default:t="wrap"}return t}let d=(()=>{class t extends r.QI{buildStyles(t){return function(t){let[e,i,n]=c(t);return function(t,e=null,i=!1){return{display:i?"inline-flex":"flex","box-sizing":"border-box","flex-direction":t,"flex-wrap":e||null}}(e,i,n)}(t)}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275prov=(0,n.Yz7)({factory:function(){return new t},token:t,providedIn:"root"}),t})();const p=["fxLayout","fxLayout.xs","fxLayout.sm","fxLayout.md","fxLayout.lg","fxLayout.xl","fxLayout.lt-sm","fxLayout.lt-md","fxLayout.lt-lg","fxLayout.lt-xl","fxLayout.gt-xs","fxLayout.gt-sm","fxLayout.gt-md","fxLayout.gt-lg"];let f=(()=>{class t extends r.iR{constructor(t,e,i,n){super(t,i,e,n),this.DIRECTIVE_KEY="layout",this.styleCache=g,this.init()}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(r.RK),n.Y36(d),n.Y36(r.yB))},t.\u0275dir=n.lG2({type:t,features:[n.qOj]}),t})(),m=(()=>{class t extends f{constructor(){super(...arguments),this.inputs=p}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["","fxLayout",""],["","fxLayout.xs",""],["","fxLayout.sm",""],["","fxLayout.md",""],["","fxLayout.lg",""],["","fxLayout.xl",""],["","fxLayout.lt-sm",""],["","fxLayout.lt-md",""],["","fxLayout.lt-lg",""],["","fxLayout.lt-xl",""],["","fxLayout.gt-xs",""],["","fxLayout.gt-sm",""],["","fxLayout.gt-md",""],["","fxLayout.gt-lg",""]],inputs:{fxLayout:"fxLayout","fxLayout.xs":"fxLayout.xs","fxLayout.sm":"fxLayout.sm","fxLayout.md":"fxLayout.md","fxLayout.lg":"fxLayout.lg","fxLayout.xl":"fxLayout.xl","fxLayout.lt-sm":"fxLayout.lt-sm","fxLayout.lt-md":"fxLayout.lt-md","fxLayout.lt-lg":"fxLayout.lt-lg","fxLayout.lt-xl":"fxLayout.lt-xl","fxLayout.gt-xs":"fxLayout.gt-xs","fxLayout.gt-sm":"fxLayout.gt-sm","fxLayout.gt-md":"fxLayout.gt-md","fxLayout.gt-lg":"fxLayout.gt-lg"},features:[n.qOj]}),t})();const g=new Map;function y(t,...e){if(null==t)throw TypeError("Cannot convert undefined or null to object");for(let i of e)if(null!=i)for(let e in i)i.hasOwnProperty(e)&&(t[e]=i[e]);return t}new Map,new Map,new Map,new Map;let b=(()=>{class t extends r.QI{constructor(t){super(),this.layoutConfig=t}buildStyles(t,e){let[i,n,...r]=t.split(" "),s=r.join(" ");const o=e.direction.indexOf("column")>-1?"column":"row",a=h(o)?"max-width":"max-height",l=h(o)?"min-width":"min-height",c=String(s).indexOf("calc")>-1,u=c||"auto"===s,d=String(s).indexOf("%")>-1&&!c,p=String(s).indexOf("px")>-1||String(s).indexOf("rem")>-1||String(s).indexOf("em")>-1||String(s).indexOf("vw")>-1||String(s).indexOf("vh")>-1;let f=c||p;i="0"==i?0:i,n="0"==n?0:n;const m=!i&&!n;let g={};const b={"max-width":null,"max-height":null,"min-width":null,"min-height":null};switch(s||""){case"":const t=!1!==this.layoutConfig.useColumnBasisZero;s="row"===o?"0%":t?"0.000000001px":"auto";break;case"initial":case"nogrow":i=0,s="auto";break;case"grow":s="100%";break;case"noshrink":n=0,s="auto";break;case"auto":break;case"none":i=0,n=0,s="auto";break;default:f||d||isNaN(s)||(s+="%"),"0%"===s&&(f=!0),"0px"===s&&(s="0%"),g=y(b,c?{"flex-grow":i,"flex-shrink":n,"flex-basis":f?s:"100%"}:{flex:`${i} ${n} ${f?s:"100%"}`})}return g.flex||g["flex-grow"]||(g=y(b,c?{"flex-grow":i,"flex-shrink":n,"flex-basis":s}:{flex:`${i} ${n} ${s}`})),"0%"!==s&&"0px"!==s&&"0.000000001px"!==s&&"auto"!==s&&(g[l]=m||f&&i?s:null,g[a]=m||!u&&n?s:null),g[l]||g[a]?e.hasWrap&&(g[c?"flex-basis":"flex"]=g[a]?c?g[a]:`${i} ${n} ${g[a]}`:c?g[l]:`${i} ${n} ${g[l]}`):g=y(b,c?{"flex-grow":i,"flex-shrink":n,"flex-basis":s}:{flex:`${i} ${n} ${s}`}),y(g,{"box-sizing":"border-box"})}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(r.WU))},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t((0,n.LFG)(r.WU))},token:t,providedIn:"root"}),t})();const v=["fxFlex","fxFlex.xs","fxFlex.sm","fxFlex.md","fxFlex.lg","fxFlex.xl","fxFlex.lt-sm","fxFlex.lt-md","fxFlex.lt-lg","fxFlex.lt-xl","fxFlex.gt-xs","fxFlex.gt-sm","fxFlex.gt-md","fxFlex.gt-lg"];let _=(()=>{class t extends r.iR{constructor(t,e,i,n,r){super(t,n,e,r),this.layoutConfig=i,this.marshal=r,this.DIRECTIVE_KEY="flex",this.direction=void 0,this.wrap=void 0,this.flexGrow="1",this.flexShrink="1",this.init()}get shrink(){return this.flexShrink}set shrink(t){this.flexShrink=t||"1",this.triggerReflow()}get grow(){return this.flexGrow}set grow(t){this.flexGrow=t||"1",this.triggerReflow()}ngOnInit(){this.parentElement&&(this.marshal.trackValue(this.parentElement,"layout").pipe((0,o.R)(this.destroySubject)).subscribe(this.onLayoutChange.bind(this)),this.marshal.trackValue(this.nativeElement,"layout-align").pipe((0,o.R)(this.destroySubject)).subscribe(this.triggerReflow.bind(this)))}onLayoutChange(t){const e=t.value.split(" ");this.direction=e[0],this.wrap=void 0!==e[1]&&"wrap"===e[1],this.triggerUpdate()}updateWithValue(t){void 0===this.direction&&(this.direction=this.getFlexFlowDirection(this.parentElement,!1!==this.layoutConfig.addFlexToParent)),void 0===this.wrap&&(this.wrap=this.hasWrap(this.parentElement));const e=this.direction,i=e.startsWith("row"),n=this.wrap;i&&n?this.styleCache=A:i&&!n?this.styleCache=x:!i&&n?this.styleCache=S:i||n||(this.styleCache=C);const s=String(t).replace(";",""),o=(0,r.Ot)(s,this.flexGrow,this.flexShrink);this.addStyles(o.join(" "),{direction:e,hasWrap:n})}triggerReflow(){const t=this.activatedValue;if(void 0!==t){const e=(0,r.Ot)(t+"",this.flexGrow,this.flexShrink);this.marshal.updateElement(this.nativeElement,this.DIRECTIVE_KEY,e.join(" "))}}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(r.RK),n.Y36(r.WU),n.Y36(b),n.Y36(r.yB))},t.\u0275dir=n.lG2({type:t,inputs:{shrink:["fxShrink","shrink"],grow:["fxGrow","grow"]},features:[n.qOj]}),t})(),w=(()=>{class t extends _{constructor(){super(...arguments),this.inputs=v}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["","fxFlex",""],["","fxFlex.xs",""],["","fxFlex.sm",""],["","fxFlex.md",""],["","fxFlex.lg",""],["","fxFlex.xl",""],["","fxFlex.lt-sm",""],["","fxFlex.lt-md",""],["","fxFlex.lt-lg",""],["","fxFlex.lt-xl",""],["","fxFlex.gt-xs",""],["","fxFlex.gt-sm",""],["","fxFlex.gt-md",""],["","fxFlex.gt-lg",""]],inputs:{fxFlex:"fxFlex","fxFlex.xs":"fxFlex.xs","fxFlex.sm":"fxFlex.sm","fxFlex.md":"fxFlex.md","fxFlex.lg":"fxFlex.lg","fxFlex.xl":"fxFlex.xl","fxFlex.lt-sm":"fxFlex.lt-sm","fxFlex.lt-md":"fxFlex.lt-md","fxFlex.lt-lg":"fxFlex.lt-lg","fxFlex.lt-xl":"fxFlex.lt-xl","fxFlex.gt-xs":"fxFlex.gt-xs","fxFlex.gt-sm":"fxFlex.gt-sm","fxFlex.gt-md":"fxFlex.gt-md","fxFlex.gt-lg":"fxFlex.gt-lg"},features:[n.qOj]}),t})();const x=new Map,C=new Map,A=new Map,S=new Map;new Map,new Map,new Map,new Map,new Map,new Map,new Map;let E=(()=>{class t extends r.QI{buildStyles(t,e){const i={},[n,r]=t.split(" ");switch(n){case"center":i["justify-content"]="center";break;case"space-around":i["justify-content"]="space-around";break;case"space-between":i["justify-content"]="space-between";break;case"space-evenly":i["justify-content"]="space-evenly";break;case"end":case"flex-end":i["justify-content"]="flex-end";break;case"start":case"flex-start":default:i["justify-content"]="flex-start"}switch(r){case"start":case"flex-start":i["align-items"]=i["align-content"]="flex-start";break;case"center":i["align-items"]=i["align-content"]="center";break;case"end":case"flex-end":i["align-items"]=i["align-content"]="flex-end";break;case"space-between":i["align-content"]="space-between",i["align-items"]="stretch";break;case"space-around":i["align-content"]="space-around",i["align-items"]="stretch";break;case"baseline":i["align-content"]="stretch",i["align-items"]="baseline";break;case"stretch":default:i["align-items"]=i["align-content"]="stretch"}return y(i,{display:e.inline?"inline-flex":"flex","flex-direction":e.layout,"box-sizing":"border-box","max-width":"stretch"===r?h(e.layout)?null:"100%":null,"max-height":"stretch"===r&&h(e.layout)?"100%":null})}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275prov=(0,n.Yz7)({factory:function(){return new t},token:t,providedIn:"root"}),t})();const k=["fxLayoutAlign","fxLayoutAlign.xs","fxLayoutAlign.sm","fxLayoutAlign.md","fxLayoutAlign.lg","fxLayoutAlign.xl","fxLayoutAlign.lt-sm","fxLayoutAlign.lt-md","fxLayoutAlign.lt-lg","fxLayoutAlign.lt-xl","fxLayoutAlign.gt-xs","fxLayoutAlign.gt-sm","fxLayoutAlign.gt-md","fxLayoutAlign.gt-lg"];let T=(()=>{class t extends r.iR{constructor(t,e,i,n){super(t,i,e,n),this.DIRECTIVE_KEY="layout-align",this.layout="row",this.inline=!1,this.init(),this.marshal.trackValue(this.nativeElement,"layout").pipe((0,o.R)(this.destroySubject)).subscribe(this.onLayoutChange.bind(this))}updateWithValue(t){const e=this.layout||"row",i=this.inline;"row"===e&&i?this.styleCache=R:"row"!==e||i?"row-reverse"===e&&i?this.styleCache=P:"row-reverse"!==e||i?"column"===e&&i?this.styleCache=N:"column"!==e||i?"column-reverse"===e&&i?this.styleCache=F:"column-reverse"!==e||i||(this.styleCache=D):this.styleCache=I:this.styleCache=O:this.styleCache=L,this.addStyles(t,{layout:e,inline:i})}onLayoutChange(t){const e=t.value.split(" ");this.layout=e[0],this.inline=t.value.includes("inline"),l.find(t=>t===this.layout)||(this.layout="row"),this.triggerUpdate()}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(r.RK),n.Y36(E),n.Y36(r.yB))},t.\u0275dir=n.lG2({type:t,features:[n.qOj]}),t})(),M=(()=>{class t extends T{constructor(){super(...arguments),this.inputs=k}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["","fxLayoutAlign",""],["","fxLayoutAlign.xs",""],["","fxLayoutAlign.sm",""],["","fxLayoutAlign.md",""],["","fxLayoutAlign.lg",""],["","fxLayoutAlign.xl",""],["","fxLayoutAlign.lt-sm",""],["","fxLayoutAlign.lt-md",""],["","fxLayoutAlign.lt-lg",""],["","fxLayoutAlign.lt-xl",""],["","fxLayoutAlign.gt-xs",""],["","fxLayoutAlign.gt-sm",""],["","fxLayoutAlign.gt-md",""],["","fxLayoutAlign.gt-lg",""]],inputs:{fxLayoutAlign:"fxLayoutAlign","fxLayoutAlign.xs":"fxLayoutAlign.xs","fxLayoutAlign.sm":"fxLayoutAlign.sm","fxLayoutAlign.md":"fxLayoutAlign.md","fxLayoutAlign.lg":"fxLayoutAlign.lg","fxLayoutAlign.xl":"fxLayoutAlign.xl","fxLayoutAlign.lt-sm":"fxLayoutAlign.lt-sm","fxLayoutAlign.lt-md":"fxLayoutAlign.lt-md","fxLayoutAlign.lt-lg":"fxLayoutAlign.lt-lg","fxLayoutAlign.lt-xl":"fxLayoutAlign.lt-xl","fxLayoutAlign.gt-xs":"fxLayoutAlign.gt-xs","fxLayoutAlign.gt-sm":"fxLayoutAlign.gt-sm","fxLayoutAlign.gt-md":"fxLayoutAlign.gt-md","fxLayoutAlign.gt-lg":"fxLayoutAlign.gt-lg"},features:[n.qOj]}),t})();const L=new Map,I=new Map,O=new Map,D=new Map,R=new Map,N=new Map,P=new Map,F=new Map;let Z=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[r.IR,s.vT]]}),t})()},6073:(t,e,i)=>{"use strict";i.d(e,{Zs:()=>Bt,gN:()=>Z,Fj:()=>p,qu:()=>Ht,NI:()=>ut,oH:()=>Et,u:()=>Lt,sg:()=>Tt,u5:()=>qt,Fd:()=>Dt,qQ:()=>Nt,Cf:()=>g,JU:()=>h,a5:()=>B,JJ:()=>q,JL:()=>z,F:()=>gt,On:()=>vt,wV:()=>xt,UX:()=>zt,Q7:()=>Zt,kI:()=>v,_Y:()=>_t});var n=i(1572),r=i(1511),s=i(5630),o=i(6891),a=i(1681);let l=(()=>{class t{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}setProperty(t,e){this._renderer.setProperty(this._elementRef.nativeElement,t,e)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.Qsj),n.Y36(n.SBq))},t.\u0275dir=n.lG2({type:t}),t})(),c=(()=>{class t extends l{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,features:[n.qOj]}),t})();const h=new n.OlP("NgValueAccessor"),u={provide:h,useExisting:(0,n.Gpc)(()=>p),multi:!0},d=new n.OlP("CompositionEventMode");let p=(()=>{class t extends l{constructor(t,e,i){super(t,e),this._compositionMode=i,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function(){const t=(0,r.q)()?(0,r.q)().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(t){this.setProperty("value",null==t?"":t)}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.Qsj),n.Y36(n.SBq),n.Y36(d,8))},t.\u0275dir=n.lG2({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(t,e){1&t&&n.NdJ("input",function(t){return e._handleInput(t.target.value)})("blur",function(){return e.onTouched()})("compositionstart",function(){return e._compositionStart()})("compositionend",function(t){return e._compositionEnd(t.target.value)})},features:[n._Bn([u]),n.qOj]}),t})();function f(t){return null==t||0===t.length}function m(t){return null!=t&&"number"==typeof t.length}const g=new n.OlP("NgValidators"),y=new n.OlP("NgAsyncValidators"),b=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class v{static min(t){return _(t)}static max(t){return w(t)}static required(t){return x(t)}static requiredTrue(t){return C(t)}static email(t){return function(t){return f(t.value)||b.test(t.value)?null:{email:!0}}(t)}static minLength(t){return function(t){return e=>f(e.value)||!m(e.value)?null:e.value.lengthm(e.value)&&e.value.length>t?{maxlength:{requiredLength:t,actualLength:e.value.length}}:null}(t)}static pattern(t){return function(t){if(!t)return A;let e,i;return"string"==typeof t?(i="","^"!==t.charAt(0)&&(i+="^"),i+=t,"$"!==t.charAt(t.length-1)&&(i+="$"),e=new RegExp(i)):(i=t.toString(),e=t),t=>{if(f(t.value))return null;const n=t.value;return e.test(n)?null:{pattern:{requiredPattern:i,actualValue:n}}}}(t)}static nullValidator(t){return null}static compose(t){return L(t)}static composeAsync(t){return O(t)}}function _(t){return e=>{if(f(e.value)||f(t))return null;const i=parseFloat(e.value);return!isNaN(i)&&i{if(f(e.value)||f(t))return null;const i=parseFloat(e.value);return!isNaN(i)&&i>t?{max:{max:t,actual:e.value}}:null}}function x(t){return f(t.value)?{required:!0}:null}function C(t){return!0===t.value?null:{required:!0}}function A(t){return null}function S(t){return null!=t}function E(t){const e=(0,n.QGY)(t)?(0,s.Dp)(t):t;return(0,n.CqO)(e),e}function k(t){let e={};return t.forEach(t=>{e=null!=t?Object.assign(Object.assign({},e),t):e}),0===Object.keys(e).length?null:e}function T(t,e){return e.map(e=>e(t))}function M(t){return t.map(t=>function(t){return!t.validate}(t)?t:e=>t.validate(e))}function L(t){if(!t)return null;const e=t.filter(S);return 0==e.length?null:function(t){return k(T(t,e))}}function I(t){return null!=t?L(M(t)):null}function O(t){if(!t)return null;const e=t.filter(S);return 0==e.length?null:function(t){const i=T(t,e).map(E);return(0,o.D)(i).pipe((0,a.U)(k))}}function D(t){return null!=t?O(M(t)):null}function R(t,e){return null===t?[e]:Array.isArray(t)?[...t,e]:[t,e]}function N(t){return t._rawValidators}function P(t){return t._rawAsyncValidators}let F=(()=>{class t{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=I(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=D(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t}),t})(),Z=(()=>{class t extends F{get formDirective(){return null}get path(){return null}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,features:[n.qOj]}),t})();class B extends F{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class U{constructor(t){this._cd=t}is(t){var e,i;return!!(null===(i=null===(e=this._cd)||void 0===e?void 0:e.control)||void 0===i?void 0:i[t])}}let q=(()=>{class t extends U{constructor(t){super(t)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(B,2))},t.\u0275dir=n.lG2({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(t,e){2&t&&n.ekj("ng-untouched",e.is("untouched"))("ng-touched",e.is("touched"))("ng-pristine",e.is("pristine"))("ng-dirty",e.is("dirty"))("ng-valid",e.is("valid"))("ng-invalid",e.is("invalid"))("ng-pending",e.is("pending"))},features:[n.qOj]}),t})(),z=(()=>{class t extends U{constructor(t){super(t)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(Z,10))},t.\u0275dir=n.lG2({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:14,hostBindings:function(t,e){2&t&&n.ekj("ng-untouched",e.is("untouched"))("ng-touched",e.is("touched"))("ng-pristine",e.is("pristine"))("ng-dirty",e.is("dirty"))("ng-valid",e.is("valid"))("ng-invalid",e.is("invalid"))("ng-pending",e.is("pending"))},features:[n.qOj]}),t})();function H(t,e){return[...e.path,t]}function Y(t,e){V(t,e),e.valueAccessor.writeValue(t.value),function(t,e){e.valueAccessor.registerOnChange(i=>{t._pendingValue=i,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&W(t,e)})}(t,e),function(t,e){const i=(t,i)=>{e.valueAccessor.writeValue(t),i&&e.viewToModelUpdate(t)};t.registerOnChange(i),e._registerOnDestroy(()=>{t._unregisterOnChange(i)})}(t,e),function(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&W(t,e),"submit"!==t.updateOn&&t.markAsTouched()})}(t,e),function(t,e){if(e.valueAccessor.setDisabledState){const i=t=>{e.valueAccessor.setDisabledState(t)};t.registerOnDisabledChange(i),e._registerOnDestroy(()=>{t._unregisterOnDisabledChange(i)})}}(t,e)}function G(t,e,i=!0){const n=()=>{};e.valueAccessor&&(e.valueAccessor.registerOnChange(n),e.valueAccessor.registerOnTouched(n)),Q(t,e),t&&(e._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function j(t,e){t.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(e)})}function V(t,e){const i=N(t);null!==e.validator?t.setValidators(R(i,e.validator)):"function"==typeof i&&t.setValidators([i]);const n=P(t);null!==e.asyncValidator?t.setAsyncValidators(R(n,e.asyncValidator)):"function"==typeof n&&t.setAsyncValidators([n]);const r=()=>t.updateValueAndValidity();j(e._rawValidators,r),j(e._rawAsyncValidators,r)}function Q(t,e){let i=!1;if(null!==t){if(null!==e.validator){const n=N(t);if(Array.isArray(n)&&n.length>0){const r=n.filter(t=>t!==e.validator);r.length!==n.length&&(i=!0,t.setValidators(r))}}if(null!==e.asyncValidator){const n=P(t);if(Array.isArray(n)&&n.length>0){const r=n.filter(t=>t!==e.asyncValidator);r.length!==n.length&&(i=!0,t.setAsyncValidators(r))}}}const n=()=>{};return j(e._rawValidators,n),j(e._rawAsyncValidators,n),i}function W(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function J(t,e){V(t,e)}function X(t,e){if(!t.hasOwnProperty("model"))return!1;const i=t.model;return!!i.isFirstChange()||!Object.is(e,i.currentValue)}function K(t,e){t._syncPendingControls(),e.forEach(t=>{const e=t.control;"submit"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)})}function $(t,e){if(!e)return null;let i,n,r;return Array.isArray(e),e.forEach(t=>{t.constructor===p?i=t:Object.getPrototypeOf(t.constructor)===c?n=t:r=t}),r||n||i||null}function tt(t,e){const i=t.indexOf(e);i>-1&&t.splice(i,1)}const et="VALID",it="INVALID",nt="PENDING",rt="DISABLED";function st(t){return(ct(t)?t.validators:t)||null}function ot(t){return Array.isArray(t)?I(t):t||null}function at(t,e){return(ct(e)?e.asyncValidators:t)||null}function lt(t){return Array.isArray(t)?D(t):t||null}function ct(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}class ht{constructor(t,e){this._hasOwnPendingAsyncValidator=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=t,this._rawAsyncValidators=e,this._composedValidatorFn=ot(this._rawValidators),this._composedAsyncValidatorFn=lt(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===et}get invalid(){return this.status===it}get pending(){return this.status==nt}get disabled(){return this.status===rt}get enabled(){return this.status!==rt}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._rawValidators=t,this._composedValidatorFn=ot(t)}setAsyncValidators(t){this._rawAsyncValidators=t,this._composedAsyncValidatorFn=lt(t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=nt,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=rt,this.errors=null,this._forEachChild(e=>{e.disable(Object.assign(Object.assign({},t),{onlySelf:!0}))}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=et,this._forEachChild(e=>{e.enable(Object.assign(Object.assign({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),this.status!==et&&this.status!==nt||this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?rt:et}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=nt,this._hasOwnPendingAsyncValidator=!0;const e=E(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(e=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(e,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){return function(t,e,i){if(null==e)return null;if(Array.isArray(e)||(e=e.split(".")),Array.isArray(e)&&0===e.length)return null;let n=t;return e.forEach(t=>{n=n instanceof dt?n.controls.hasOwnProperty(t)?n.controls[t]:null:n instanceof pt&&n.at(t)||null}),n}(this,t)}getError(t,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new n.vpe,this.statusChanges=new n.vpe}_calculateStatus(){return this._allControlsDisabled()?rt:this.errors?it:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(nt)?nt:this._anyControlsHaveStatus(it)?it:et}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_isBoxedValue(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){ct(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class ut extends ht{constructor(t=null,e,i){super(st(e),at(i,e)),this._onChange=[],this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(t=>t(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=null,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){tt(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){tt(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}}class dt extends ht{constructor(t,e,i){super(st(e),at(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){this._checkAllValuesPresent(t),Object.keys(t).forEach(i=>{this._throwIfControlMissing(i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach(i=>{this.controls[i]&&this.controls[i].patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,n)=>{i.reset(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e instanceof ut?e.value:e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(t,e)=>!!e._syncPendingControls()||t);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[t])throw new Error(`Cannot find form control with name: ${t}.`)}_forEachChild(t){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const e of Object.keys(this.controls)){const i=this.controls[e];if(this.contains(e)&&t(i))return!0}return!1}_reduceValue(){return this._reduceChildren({},(t,e,i)=>((e.enabled||this.disabled)&&(t[i]=e.value),t))}_reduceChildren(t,e){let i=t;return this._forEachChild((t,n)=>{i=e(i,t,n)}),i}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_checkAllValuesPresent(t){this._forEachChild((e,i)=>{if(void 0===t[i])throw new Error(`Must supply a value for form control with name: '${i}'.`)})}}class pt extends ht{constructor(t,e,i){super(st(e),at(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(t){return this.controls[t]}push(t,e={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){this._checkAllValuesPresent(t),t.forEach((t,i)=>{this._throwIfControlMissing(i),this.at(i).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(t.forEach((t,i)=>{this.at(i)&&this.at(i).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,n)=>{i.reset(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t instanceof ut?t.value:t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(t=>t._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_syncPendingControls(){let t=this.controls.reduce((t,e)=>!!e._syncPendingControls()||t,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(t))throw new Error(`Cannot find form control at index ${t}`)}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_checkAllValuesPresent(t){this._forEachChild((e,i)=>{if(void 0===t[i])throw new Error(`Must supply a value for form control at index: ${i}.`)})}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}}const ft={provide:Z,useExisting:(0,n.Gpc)(()=>gt)},mt=(()=>Promise.resolve(null))();let gt=(()=>{class t extends Z{constructor(t,e){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new n.vpe,this.form=new dt({},I(t),D(e))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){mt.then(()=>{const e=this._findContainer(t.path);t.control=e.registerControl(t.name,t.control),Y(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){mt.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name),tt(this._directives,t)})}addFormGroup(t){mt.then(()=>{const e=this._findContainer(t.path),i=new dt({});J(i,t),e.registerControl(t.name,i),i.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){mt.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,e){mt.then(()=>{this.form.get(t.path).setValue(e)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,K(this.form,this._directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(g,10),n.Y36(y,10))},t.\u0275dir=n.lG2({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(t,e){1&t&&n.NdJ("submit",function(t){return e.onSubmit(t)})("reset",function(){return e.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[n._Bn([ft]),n.qOj]}),t})();const yt={provide:B,useExisting:(0,n.Gpc)(()=>vt)},bt=(()=>Promise.resolve(null))();let vt=(()=>{class t extends B{constructor(t,e,i,r){super(),this.control=new ut,this._registered=!1,this.update=new n.vpe,this._parent=t,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=$(0,r)}ngOnChanges(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),X(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?H(this.name,this._parent):[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Y(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){bt.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1})})}_updateDisabled(t){const e=t.isDisabled.currentValue,i=""===e||e&&"false"!==e;bt.then(()=>{i&&!this.control.disabled?this.control.disable():!i&&this.control.disabled&&this.control.enable()})}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(Z,9),n.Y36(g,10),n.Y36(y,10),n.Y36(h,10))},t.\u0275dir=n.lG2({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[n._Bn([yt]),n.qOj,n.TTD]}),t})(),_t=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),t})();const wt={provide:h,useExisting:(0,n.Gpc)(()=>xt),multi:!0};let xt=(()=>{class t extends c{writeValue(t){this.setProperty("value",null==t?"":t)}registerOnChange(t){this.onChange=e=>{t(""==e?null:parseFloat(e))}}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(t,e){1&t&&n.NdJ("input",function(t){return e.onChange(t.target.value)})("blur",function(){return e.onTouched()})},features:[n._Bn([wt]),n.qOj]}),t})(),Ct=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})();const At=new n.OlP("NgModelWithFormControlWarning"),St={provide:B,useExisting:(0,n.Gpc)(()=>Et)};let Et=(()=>{class t extends B{constructor(t,e,i,r){super(),this._ngModelWarningConfig=r,this.update=new n.vpe,this._ngModelWarningSent=!1,this._setValidators(t),this._setAsyncValidators(e),this.valueAccessor=$(0,i)}set isDisabled(t){}ngOnChanges(t){if(this._isControlChanged(t)){const e=t.form.previousValue;e&&G(e,this,!1),Y(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})}X(t,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&G(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_isControlChanged(t){return t.hasOwnProperty("form")}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(g,10),n.Y36(y,10),n.Y36(h,10),n.Y36(At,8))},t.\u0275dir=n.lG2({type:t,selectors:[["","formControl",""]],inputs:{isDisabled:["disabled","isDisabled"],form:["formControl","form"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[n._Bn([St]),n.qOj,n.TTD]}),t._ngModelWarningSentOnce=!1,t})();const kt={provide:Z,useExisting:(0,n.Gpc)(()=>Tt)};let Tt=(()=>{class t extends Z{constructor(t,e){super(),this.validators=t,this.asyncValidators=e,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new n.vpe,this._setValidators(t),this._setAsyncValidators(e)}ngOnChanges(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Q(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(t){const e=this.form.get(t.path);return Y(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e}getControl(t){return this.form.get(t.path)}removeControl(t){G(t.control||null,t,!1),tt(this.directives,t)}addFormGroup(t){this._setUpFormContainer(t)}removeFormGroup(t){this._cleanUpFormContainer(t)}getFormGroup(t){return this.form.get(t.path)}addFormArray(t){this._setUpFormContainer(t)}removeFormArray(t){this._cleanUpFormContainer(t)}getFormArray(t){return this.form.get(t.path)}updateModel(t,e){this.form.get(t.path).setValue(e)}onSubmit(t){return this.submitted=!0,K(this.form,this.directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_updateDomValue(){this.directives.forEach(t=>{const e=t.control,i=this.form.get(t.path);e!==i&&(G(e||null,t),i instanceof ut&&(Y(i,t),t.control=i))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(t){const e=this.form.get(t.path);J(e,t),e.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(t){if(this.form){const e=this.form.get(t.path);e&&function(t,e){return Q(t,e)}(e,t)&&e.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){V(this.form,this),this._oldForm&&Q(this._oldForm,this)}_checkFormPresent(){}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(g,10),n.Y36(y,10))},t.\u0275dir=n.lG2({type:t,selectors:[["","formGroup",""]],hostBindings:function(t,e){1&t&&n.NdJ("submit",function(t){return e.onSubmit(t)})("reset",function(){return e.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[n._Bn([kt]),n.qOj,n.TTD]}),t})();const Mt={provide:B,useExisting:(0,n.Gpc)(()=>Lt)};let Lt=(()=>{class t extends B{constructor(t,e,i,r,s){super(),this._ngModelWarningConfig=s,this._added=!1,this.update=new n.vpe,this._ngModelWarningSent=!1,this._parent=t,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=$(0,r)}set isDisabled(t){}ngOnChanges(t){this._added||this._setUpControl(),X(t,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}get path(){return H(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(Z,13),n.Y36(g,10),n.Y36(y,10),n.Y36(h,10),n.Y36(At,8))},t.\u0275dir=n.lG2({type:t,selectors:[["","formControlName",""]],inputs:{isDisabled:["disabled","isDisabled"],name:["formControlName","name"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[n._Bn([Mt]),n.qOj,n.TTD]}),t._ngModelWarningSentOnce=!1,t})(),It=(()=>{class t{constructor(){this._validator=A}handleChanges(t){if(this.inputName in t){const e=this.normalizeInput(t[this.inputName].currentValue);this._validator=this.createValidator(e),this._onChange&&this._onChange()}}validate(t){return this._validator(t)}registerOnValidatorChange(t){this._onChange=t}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t}),t})();const Ot={provide:g,useExisting:(0,n.Gpc)(()=>Dt),multi:!0};let Dt=(()=>{class t extends It{constructor(){super(...arguments),this.inputName="max",this.normalizeInput=t=>parseFloat(t),this.createValidator=t=>w(t)}ngOnChanges(t){this.handleChanges(t)}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(t,e){if(2&t){let t;n.uIk("max",null!==(t=e.max)&&void 0!==t?t:null)}},inputs:{max:"max"},features:[n._Bn([Ot]),n.qOj,n.TTD]}),t})();const Rt={provide:g,useExisting:(0,n.Gpc)(()=>Nt),multi:!0};let Nt=(()=>{class t extends It{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=t=>parseFloat(t),this.createValidator=t=>_(t)}ngOnChanges(t){this.handleChanges(t)}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(t,e){if(2&t){let t;n.uIk("min",null!==(t=e.min)&&void 0!==t?t:null)}},inputs:{min:"min"},features:[n._Bn([Rt]),n.qOj,n.TTD]}),t})();const Pt={provide:g,useExisting:(0,n.Gpc)(()=>Zt),multi:!0},Ft={provide:g,useExisting:(0,n.Gpc)(()=>Bt),multi:!0};let Zt=(()=>{class t{constructor(){this._required=!1}get required(){return this._required}set required(t){this._required=null!=t&&!1!==t&&"false"!=`${t}`,this._onChange&&this._onChange()}validate(t){return this.required?x(t):null}registerOnValidatorChange(t){this._onChange=t}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(t,e){2&t&&n.uIk("required",e.required?"":null)},inputs:{required:"required"},features:[n._Bn([Pt])]}),t})(),Bt=(()=>{class t extends Zt{validate(t){return this.required?C(t):null}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["input","type","checkbox","required","","formControlName",""],["input","type","checkbox","required","","formControl",""],["input","type","checkbox","required","","ngModel",""]],hostVars:1,hostBindings:function(t,e){2&t&&n.uIk("required",e.required?"":null)},features:[n._Bn([Ft]),n.qOj]}),t})(),Ut=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[Ct]]}),t})(),qt=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[Ut]}),t})(),zt=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:At,useValue:e.warnOnNgModelWithFormControl}]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[Ut]}),t})(),Ht=(()=>{class t{group(t,e=null){const i=this._reduceControls(t);let n,r=null,s=null;return null!=e&&(function(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(e)?(r=null!=e.validators?e.validators:null,s=null!=e.asyncValidators?e.asyncValidators:null,n=null!=e.updateOn?e.updateOn:void 0):(r=null!=e.validator?e.validator:null,s=null!=e.asyncValidator?e.asyncValidator:null)),new dt(i,{asyncValidators:s,updateOn:n,validators:r})}control(t,e,i){return new ut(t,e,i)}array(t,e,i){const n=t.map(t=>this._createControl(t));return new pt(n,e,i)}_reduceControls(t){const e={};return Object.keys(t).forEach(i=>{e[i]=this._createControl(t[i])}),e}_createControl(t){return t instanceof ut||t instanceof dt||t instanceof pt?t:Array.isArray(t)?this.control(t[0],t.length>1?t[1]:null,t.length>2?t[2]:null):this.control(t)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t},token:t,providedIn:zt}),t})()},84:(t,e,i)=>{"use strict";i.d(e,{XC:()=>F,Bb:()=>H,ZL:()=>z});var n=i(4621),r=i(9861),s=i(1353),o=i(1572),a=i(1522),l=i(6042),c=i(9666),h=i(970),u=i(5446),d=i(2041),p=i(5960),f=i(1511),m=i(369),g=i(4894),y=i(5842),b=i(6899),v=i(6073),_=i(6283),w=i(9056),x=i(4324),C=i(8868),A=i(1681),S=i(343),E=i(6493),k=i(2526);const T=["panel"];function M(t,e){if(1&t&&(o.TgZ(0,"div",0,1),o.Hsn(2),o.qZA()),2&t){const t=e.id,i=o.oxw();o.Q6J("id",i.id)("ngClass",i._classList),o.uIk("aria-label",i.ariaLabel||null)("aria-labelledby",i._getPanelAriaLabelledby(t))}}const L=["*"];let I=0;class O{constructor(t,e){this.source=t,this.option=e}}class D{}const R=(0,a.Kr)(D),N=new o.OlP("mat-autocomplete-default-options",{providedIn:"root",factory:function(){return{autoActiveFirstOption:!1}}});let P=(()=>{class t extends R{constructor(t,e,i,n){super(),this._changeDetectorRef=t,this._elementRef=e,this._activeOptionChanges=l.w0.EMPTY,this.showPanel=!1,this._isOpen=!1,this.displayWith=null,this.optionSelected=new o.vpe,this.opened=new o.vpe,this.closed=new o.vpe,this.optionActivated=new o.vpe,this._classList={},this.id="mat-autocomplete-"+I++,this.inertGroups=(null==n?void 0:n.SAFARI)||!1,this._autoActiveFirstOption=!!i.autoActiveFirstOption}get isOpen(){return this._isOpen&&this.showPanel}get autoActiveFirstOption(){return this._autoActiveFirstOption}set autoActiveFirstOption(t){this._autoActiveFirstOption=(0,r.Ig)(t)}set classList(t){this._classList=t&&t.length?(0,r.du)(t).reduce((t,e)=>(t[e]=!0,t),{}):{},this._setVisibilityClasses(this._classList),this._elementRef.nativeElement.className=""}ngAfterContentInit(){this._keyManager=new n.s1(this.options).withWrap(),this._activeOptionChanges=this._keyManager.change.subscribe(t=>{this.optionActivated.emit({source:this,option:this.options.toArray()[t]||null})}),this._setVisibility()}ngOnDestroy(){this._activeOptionChanges.unsubscribe()}_setScrollTop(t){this.panel&&(this.panel.nativeElement.scrollTop=t)}_getScrollTop(){return this.panel?this.panel.nativeElement.scrollTop:0}_setVisibility(){this.showPanel=!!this.options.length,this._setVisibilityClasses(this._classList),this._changeDetectorRef.markForCheck()}_emitSelectEvent(t){const e=new O(this,t);this.optionSelected.emit(e)}_getPanelAriaLabelledby(t){return this.ariaLabel?null:this.ariaLabelledby?(t?t+" ":"")+this.ariaLabelledby:t}_setVisibilityClasses(t){t[this._visibleClass]=this.showPanel,t[this._hiddenClass]=!this.showPanel}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.sBO),o.Y36(o.SBq),o.Y36(N),o.Y36(s.t4))},t.\u0275dir=o.lG2({type:t,viewQuery:function(t,e){if(1&t&&(o.Gf(o.Rgc,7),o.Gf(T,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.template=t.first),o.iGM(t=o.CRH())&&(e.panel=t.first)}},inputs:{displayWith:"displayWith",autoActiveFirstOption:"autoActiveFirstOption",classList:["class","classList"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],panelWidth:"panelWidth"},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},features:[o.qOj]}),t})(),F=(()=>{class t extends P{constructor(){super(...arguments),this._visibleClass="mat-autocomplete-visible",this._hiddenClass="mat-autocomplete-hidden"}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-autocomplete"]],contentQueries:function(t,e,i){if(1&t&&(o.Suo(i,a.K7,5),o.Suo(i,a.ey,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.optionGroups=t),o.iGM(t=o.CRH())&&(e.options=t)}},hostAttrs:[1,"mat-autocomplete"],inputs:{disableRipple:"disableRipple"},exportAs:["matAutocomplete"],features:[o._Bn([{provide:a.HF,useExisting:t}]),o.qOj],ngContentSelectors:L,decls:1,vars:0,consts:[["role","listbox",1,"mat-autocomplete-panel",3,"id","ngClass"],["panel",""]],template:function(t,e){1&t&&(o.F$t(),o.YNc(0,M,3,4,"ng-template"))},directives:[f.mk],styles:[".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}\n"],encapsulation:2,changeDetection:0}),t})();const Z=new o.OlP("mat-autocomplete-scroll-strategy"),B={provide:Z,deps:[m.aV],useFactory:function(t){return()=>t.scrollStrategies.reposition()}},U={provide:v.JU,useExisting:(0,o.Gpc)(()=>z),multi:!0};let q=(()=>{class t{constructor(t,e,i,n,r,s,o,a,d,p,f){this._element=t,this._overlay=e,this._viewContainerRef=i,this._zone=n,this._changeDetectorRef=r,this._dir=o,this._formField=a,this._document=d,this._viewportRuler=p,this._defaults=f,this._componentDestroyed=!1,this._autocompleteDisabled=!1,this._manuallyFloatingLabel=!1,this._viewportSubscription=l.w0.EMPTY,this._canOpenOnNextFocus=!0,this._closeKeyEventStream=new c.x,this._windowBlurHandler=()=>{this._canOpenOnNextFocus=this._document.activeElement!==this._element.nativeElement||this.panelOpen},this._onChange=()=>{},this._onTouched=()=>{},this.position="auto",this.autocompleteAttribute="off",this._overlayAttached=!1,this.optionSelections=(0,h.P)(()=>this.autocomplete&&this.autocomplete.options?(0,u.T)(...this.autocomplete.options.map(t=>t.onSelectionChange)):this._zone.onStable.pipe((0,w.q)(1),(0,x.w)(()=>this.optionSelections))),this._scrollStrategy=s}get autocompleteDisabled(){return this._autocompleteDisabled}set autocompleteDisabled(t){this._autocompleteDisabled=(0,r.Ig)(t)}ngAfterViewInit(){const t=this._getWindow();void 0!==t&&this._zone.runOutsideAngular(()=>t.addEventListener("blur",this._windowBlurHandler))}ngOnChanges(t){t.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition())}ngOnDestroy(){const t=this._getWindow();void 0!==t&&t.removeEventListener("blur",this._windowBlurHandler),this._viewportSubscription.unsubscribe(),this._componentDestroyed=!0,this._destroyPanel(),this._closeKeyEventStream.complete()}get panelOpen(){return this._overlayAttached&&this.autocomplete.showPanel}openPanel(){this._attachOverlay(),this._floatLabel()}closePanel(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this.autocomplete.closed.emit(),this.autocomplete._isOpen=this._overlayAttached=!1,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._componentDestroyed||this._changeDetectorRef.detectChanges())}updatePosition(){this._overlayAttached&&this._overlayRef.updatePosition()}get panelClosingActions(){return(0,u.T)(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe((0,C.h)(()=>this._overlayAttached)),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe((0,C.h)(()=>this._overlayAttached)):(0,d.of)()).pipe((0,A.U)(t=>t instanceof a.rN?t:null))}get activeOption(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}_getOutsideClickStream(){return(0,u.T)((0,p.R)(this._document,"click"),(0,p.R)(this._document,"auxclick"),(0,p.R)(this._document,"touchend")).pipe((0,C.h)(t=>{const e=this._isInsideShadowRoot&&t.composedPath?t.composedPath()[0]:t.target,i=this._formField?this._formField._elementRef.nativeElement:null,n=this.connectedTo?this.connectedTo.elementRef.nativeElement:null;return this._overlayAttached&&e!==this._element.nativeElement&&(!i||!i.contains(e))&&(!n||!n.contains(e))&&!!this._overlayRef&&!this._overlayRef.overlayElement.contains(e)}))}writeValue(t){Promise.resolve(null).then(()=>this._setTriggerValue(t))}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this._element.nativeElement.disabled=t}_handleKeydown(t){const e=t.keyCode;if(e!==y.hY||(0,y.Vb)(t)||t.preventDefault(),this.activeOption&&e===y.K5&&this.panelOpen)this.activeOption._selectViaInteraction(),this._resetActiveItem(),t.preventDefault();else if(this.autocomplete){const i=this.autocomplete._keyManager.activeItem,n=e===y.LH||e===y.JH;this.panelOpen||e===y.Mf?this.autocomplete._keyManager.onKeydown(t):n&&this._canOpen()&&this.openPanel(),(n||this.autocomplete._keyManager.activeItem!==i)&&this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0)}}_handleInput(t){let e=t.target,i=e.value;"number"===e.type&&(i=""==i?null:parseFloat(i)),this._previousValue!==i&&(this._previousValue=i,this._onChange(i),this._canOpen()&&this._document.activeElement===t.target&&this.openPanel())}_handleFocus(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(),this._floatLabel(!0)):this._canOpenOnNextFocus=!0}_floatLabel(t=!1){this._formField&&"auto"===this._formField.floatLabel&&(t?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=!0)}_resetLabel(){this._manuallyFloatingLabel&&(this._formField.floatLabel="auto",this._manuallyFloatingLabel=!1)}_subscribeToClosingActions(){const t=this._zone.onStable.pipe((0,w.q)(1)),e=this.autocomplete.options.changes.pipe((0,S.b)(()=>this._positionStrategy.reapplyLastPosition()),(0,E.g)(0));return(0,u.T)(t,e).pipe((0,x.w)(()=>{const t=this.panelOpen;return this._resetActiveItem(),this.autocomplete._setVisibility(),this.panelOpen&&(this._overlayRef.updatePosition(),t!==this.panelOpen&&this.autocomplete.opened.emit()),this.panelClosingActions}),(0,w.q)(1)).subscribe(t=>this._setValueAndClose(t))}_destroyPanel(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null)}_setTriggerValue(t){const e=this.autocomplete&&this.autocomplete.displayWith?this.autocomplete.displayWith(t):t,i=null!=e?e:"";this._formField?this._formField._control.value=i:this._element.nativeElement.value=i,this._previousValue=i}_setValueAndClose(t){t&&t.source&&(this._clearPreviousSelectedOption(t.source),this._setTriggerValue(t.source.value),this._onChange(t.source.value),this._element.nativeElement.focus(),this.autocomplete._emitSelectEvent(t.source)),this.closePanel()}_clearPreviousSelectedOption(t){this.autocomplete.options.forEach(e=>{e!==t&&e.selected&&e.deselect()})}_attachOverlay(){var t;null==this._isInsideShadowRoot&&(this._isInsideShadowRoot=!!(0,s.kV)(this._element.nativeElement));let e=this._overlayRef;e?(this._positionStrategy.setOrigin(this._getConnectedElement()),e.updateSize({width:this._getPanelWidth()})):(this._portal=new b.UE(this.autocomplete.template,this._viewContainerRef,{id:null===(t=this._formField)||void 0===t?void 0:t.getLabelId()}),e=this._overlay.create(this._getOverlayConfig()),this._overlayRef=e,e.keydownEvents().subscribe(t=>{(t.keyCode===y.hY&&!(0,y.Vb)(t)||t.keyCode===y.LH&&(0,y.Vb)(t,"altKey"))&&(this._resetActiveItem(),this._closeKeyEventStream.next(),t.stopPropagation(),t.preventDefault())}),this._viewportSubscription=this._viewportRuler.change().subscribe(()=>{this.panelOpen&&e&&e.updateSize({width:this._getPanelWidth()})})),e&&!e.hasAttached()&&(e.attach(this._portal),this._closingActionsSubscription=this._subscribeToClosingActions());const i=this.panelOpen;this.autocomplete._setVisibility(),this.autocomplete._isOpen=this._overlayAttached=!0,this.panelOpen&&i!==this.panelOpen&&this.autocomplete.opened.emit()}_getOverlayConfig(){var t;return new m.X_({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir,panelClass:null===(t=this._defaults)||void 0===t?void 0:t.overlayPanelClass})}_getOverlayPosition(){const t=this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(!1).withPush(!1);return this._setStrategyPositions(t),this._positionStrategy=t,t}_setStrategyPositions(t){const e=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],i=this._aboveClass,n=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:i},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:i}];let r;r="above"===this.position?n:"below"===this.position?e:[...e,...n],t.withPositions(r)}_getConnectedElement(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}_getPanelWidth(){return this.autocomplete.panelWidth||this._getHostWidth()}_getHostWidth(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}_resetActiveItem(){const t=this.autocomplete;t.autoActiveFirstOption?t._keyManager.setFirstItemActive():t._keyManager.setActiveItem(-1)}_canOpen(){const t=this._element.nativeElement;return!t.readOnly&&!t.disabled&&!this._autocompleteDisabled}_getWindow(){var t;return(null===(t=this._document)||void 0===t?void 0:t.defaultView)||window}_scrollToOption(t){const e=this.autocomplete,i=(0,a.CB)(t,e.options,e.optionGroups);if(0===t&&1===i)e._setScrollTop(0);else if(e.panel){const i=e.options.toArray()[t];if(i){const t=i._getHostElement(),n=(0,a.jH)(t.offsetTop,t.offsetHeight,e._getScrollTop(),e.panel.nativeElement.offsetHeight);e._setScrollTop(n)}}}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.SBq),o.Y36(m.aV),o.Y36(o.s_b),o.Y36(o.R0b),o.Y36(o.sBO),o.Y36(Z),o.Y36(k.Is,8),o.Y36(_.G_,9),o.Y36(f.K0,8),o.Y36(g.rL),o.Y36(N,8))},t.\u0275dir=o.lG2({type:t,inputs:{position:["matAutocompletePosition","position"],autocompleteAttribute:["autocomplete","autocompleteAttribute"],autocompleteDisabled:["matAutocompleteDisabled","autocompleteDisabled"],autocomplete:["matAutocomplete","autocomplete"],connectedTo:["matAutocompleteConnectedTo","connectedTo"]},features:[o.TTD]}),t})(),z=(()=>{class t extends q{constructor(){super(...arguments),this._aboveClass="mat-autocomplete-panel-above"}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275dir=o.lG2({type:t,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-autocomplete-trigger"],hostVars:7,hostBindings:function(t,e){1&t&&o.NdJ("focusin",function(){return e._handleFocus()})("blur",function(){return e._onTouched()})("input",function(t){return e._handleInput(t)})("keydown",function(t){return e._handleKeydown(t)}),2&t&&o.uIk("autocomplete",e.autocompleteAttribute)("role",e.autocompleteDisabled?null:"combobox")("aria-autocomplete",e.autocompleteDisabled?null:"list")("aria-activedescendant",e.panelOpen&&e.activeOption?e.activeOption.id:null)("aria-expanded",e.autocompleteDisabled?null:e.panelOpen.toString())("aria-owns",e.autocompleteDisabled||!e.panelOpen||null==e.autocomplete?null:e.autocomplete.id)("aria-haspopup",!e.autocompleteDisabled)},exportAs:["matAutocompleteTrigger"],features:[o._Bn([U]),o.qOj]}),t})(),H=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=o.oAB({type:t}),t.\u0275inj=o.cJS({providers:[B],imports:[[m.U8,a.Ng,a.BQ,f.ez],g.ZD,a.Ng,a.BQ]}),t})()},1050:(t,e,i)=>{"use strict";i.d(e,{k:()=>u,g:()=>d});var n=i(1522),r=i(4621),s=i(9861),o=i(3490),a=i(1572);let l=0;class c{}const h=(0,n.Id)(c);let u=(()=>{class t extends h{constructor(t,e,i,n,r){super(),this._ngZone=t,this._elementRef=e,this._ariaDescriber=i,this._renderer=n,this._animationMode=r,this._hasContent=!1,this._color="primary",this._overlap=!0,this.position="above after",this.size="medium",this._id=l++}get color(){return this._color}set color(t){this._setColor(t),this._color=t}get overlap(){return this._overlap}set overlap(t){this._overlap=(0,s.Ig)(t)}get description(){return this._description}set description(t){if(t!==this._description){const e=this._badgeElement;this._updateHostAriaDescription(t,this._description),this._description=t,e&&(t?e.setAttribute("aria-label",t):e.removeAttribute("aria-label"))}}get hidden(){return this._hidden}set hidden(t){this._hidden=(0,s.Ig)(t)}isAbove(){return-1===this.position.indexOf("below")}isAfter(){return-1===this.position.indexOf("before")}ngOnChanges(t){const e=t.content;if(e){const t=e.currentValue;this._hasContent=null!=t&&`${t}`.trim().length>0,this._updateTextContent()}}ngOnDestroy(){const t=this._badgeElement;t&&(this.description&&this._ariaDescriber.removeDescription(t,this.description),this._renderer.destroyNode&&this._renderer.destroyNode(t))}getBadgeElement(){return this._badgeElement}_updateTextContent(){return this._badgeElement?this._badgeElement.textContent=this._stringifyContent():this._badgeElement=this._createBadgeElement(),this._badgeElement}_createBadgeElement(){const t=this._renderer.createElement("span"),e="mat-badge-active",i="mat-badge-content";return this._clearExistingBadges(i),t.setAttribute("id",`mat-badge-content-${this._id}`),t.classList.add(i),t.textContent=this._stringifyContent(),"NoopAnimations"===this._animationMode&&t.classList.add("_mat-animation-noopable"),this.description&&t.setAttribute("aria-label",this.description),this._elementRef.nativeElement.appendChild(t),"function"==typeof requestAnimationFrame&&"NoopAnimations"!==this._animationMode?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{t.classList.add(e)})}):t.classList.add(e),t}_updateHostAriaDescription(t,e){const i=this._updateTextContent();e&&this._ariaDescriber.removeDescription(i,e),t&&this._ariaDescriber.describe(i,t)}_setColor(t){if(t!==this._color){const e=this._elementRef.nativeElement.classList;this._color&&e.remove(`mat-badge-${this._color}`),t&&e.add(`mat-badge-${t}`)}}_clearExistingBadges(t){const e=this._elementRef.nativeElement;let i=e.children.length;for(;i--;){const n=e.children[i];n.classList.contains(t)&&e.removeChild(n)}}_stringifyContent(){const t=this.content;return null==t?"":`${t}`}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.R0b),a.Y36(a.SBq),a.Y36(r.$s),a.Y36(a.Qsj),a.Y36(o.Qb,8))},t.\u0275dir=a.lG2({type:t,selectors:[["","matBadge",""]],hostAttrs:[1,"mat-badge"],hostVars:20,hostBindings:function(t,e){2&t&&a.ekj("mat-badge-overlap",e.overlap)("mat-badge-above",e.isAbove())("mat-badge-below",!e.isAbove())("mat-badge-before",!e.isAfter())("mat-badge-after",e.isAfter())("mat-badge-small","small"===e.size)("mat-badge-medium","medium"===e.size)("mat-badge-large","large"===e.size)("mat-badge-hidden",e.hidden||!e._hasContent)("mat-badge-disabled",e.disabled)},inputs:{disabled:["matBadgeDisabled","disabled"],position:["matBadgePosition","position"],size:["matBadgeSize","size"],color:["matBadgeColor","color"],overlap:["matBadgeOverlap","overlap"],description:["matBadgeDescription","description"],hidden:["matBadgeHidden","hidden"],content:["matBadge","content"]},features:[a.qOj,a.TTD]}),t})(),d=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=a.oAB({type:t}),t.\u0275inj=a.cJS({imports:[[r.rt,n.BQ],n.BQ]}),t})()},5980:(t,e,i)=>{"use strict";i.d(e,{lW:()=>d,ot:()=>p});var n=i(1522),r=i(3490),s=i(1572),o=i(4621);const a=["mat-button",""],l=["*"],c=["mat-button","mat-flat-button","mat-icon-button","mat-raised-button","mat-stroked-button","mat-mini-fab","mat-fab"];class h{constructor(t){this._elementRef=t}}const u=(0,n.pj)((0,n.Id)((0,n.Kr)(h)));let d=(()=>{class t extends u{constructor(t,e,i){super(t),this._focusMonitor=e,this._animationMode=i,this.isRoundButton=this._hasHostAttributes("mat-fab","mat-mini-fab"),this.isIconButton=this._hasHostAttributes("mat-icon-button");for(const n of c)this._hasHostAttributes(n)&&this._getHostElement().classList.add(n);t.nativeElement.classList.add("mat-button-base"),this.isRoundButton&&(this.color="accent")}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(t,e){t?this._focusMonitor.focusVia(this._getHostElement(),t,e):this._getHostElement().focus(e)}_getHostElement(){return this._elementRef.nativeElement}_isRippleDisabled(){return this.disableRipple||this.disabled}_hasHostAttributes(...t){return t.some(t=>this._getHostElement().hasAttribute(t))}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.SBq),s.Y36(o.tE),s.Y36(r.Qb,8))},t.\u0275cmp=s.Xpm({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-icon-button",""],["button","mat-fab",""],["button","mat-mini-fab",""],["button","mat-stroked-button",""],["button","mat-flat-button",""]],viewQuery:function(t,e){if(1&t&&s.Gf(n.wG,5),2&t){let t;s.iGM(t=s.CRH())&&(e.ripple=t.first)}},hostAttrs:[1,"mat-focus-indicator"],hostVars:5,hostBindings:function(t,e){2&t&&(s.uIk("disabled",e.disabled||null),s.ekj("_mat-animation-noopable","NoopAnimations"===e._animationMode)("mat-button-disabled",e.disabled))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[s.qOj],attrs:a,ngContentSelectors:l,decls:4,vars:5,consts:[[1,"mat-button-wrapper"],["matRipple","",1,"mat-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-button-focus-overlay"]],template:function(t,e){1&t&&(s.F$t(),s.TgZ(0,"span",0),s.Hsn(1),s.qZA(),s._UZ(2,"span",1),s._UZ(3,"span",2)),2&t&&(s.xp6(2),s.ekj("mat-button-ripple-round",e.isRoundButton||e.isIconButton),s.Q6J("matRippleDisabled",e._isRippleDisabled())("matRippleCentered",e.isIconButton)("matRippleTrigger",e._getHostElement()))},directives:[n.wG],styles:[".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n"],encapsulation:2,changeDetection:0}),t})(),p=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=s.oAB({type:t}),t.\u0275inj=s.cJS({imports:[[n.si,n.BQ],n.BQ]}),t})()},7439:(t,e,i)=>{"use strict";i.d(e,{a8:()=>p,dn:()=>h,dk:()=>f,QW:()=>m,$j:()=>d,n5:()=>u});var n=i(3490),r=i(1522),s=i(1572);const o=["*",[["mat-card-footer"]]],a=["*","mat-card-footer"],l=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],c=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"];let h=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t,selectors:[["mat-card-content"],["","mat-card-content",""],["","matCardContent",""]],hostAttrs:[1,"mat-card-content"]}),t})(),u=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-card-title"]}),t})(),d=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-card-subtitle"]}),t})(),p=(()=>{class t{constructor(t){this._animationMode=t}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(n.Qb,8))},t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-card","mat-focus-indicator"],hostVars:2,hostBindings:function(t,e){2&t&&s.ekj("_mat-animation-noopable","NoopAnimations"===e._animationMode)},exportAs:["matCard"],ngContentSelectors:a,decls:2,vars:0,template:function(t,e){1&t&&(s.F$t(o),s.Hsn(0),s.Hsn(1,1))},styles:[".mat-card{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:block;position:relative;padding:16px;border-radius:4px}._mat-animation-noopable.mat-card{transition:none;animation:none}.mat-card .mat-divider-horizontal{position:absolute;left:0;width:100%}[dir=rtl] .mat-card .mat-divider-horizontal{left:auto;right:0}.mat-card .mat-divider-horizontal.mat-divider-inset{position:static;margin:0}[dir=rtl] .mat-card .mat-divider-horizontal.mat-divider-inset{margin-right:0}.cdk-high-contrast-active .mat-card{outline:solid 1px}.mat-card-actions,.mat-card-subtitle,.mat-card-content{display:block;margin-bottom:16px}.mat-card-title{display:block;margin-bottom:8px}.mat-card-actions{margin-left:-8px;margin-right:-8px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 32px);margin:0 -16px 16px -16px}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button,.mat-card-actions .mat-stroked-button{margin:0 8px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header .mat-card-title{margin-bottom:12px}.mat-card-header-text{margin:0 16px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.mat-card-title-group{display:flex;justify-content:space-between}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-title-group>.mat-card-xl-image{margin:-8px 0 8px}@media(max-width: 599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card>:first-child,.mat-card-content>:first-child{margin-top:0}.mat-card>:last-child:not(.mat-card-footer),.mat-card-content>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-16px;border-top-left-radius:inherit;border-top-right-radius:inherit}.mat-card>.mat-card-actions:last-child{margin-bottom:-8px;padding-bottom:0}.mat-card-actions:not(.mat-card-actions-align-end) .mat-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-raised-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-stroked-button:first-child{margin-left:0;margin-right:0}.mat-card-actions-align-end .mat-button:last-child,.mat-card-actions-align-end .mat-raised-button:last-child,.mat-card-actions-align-end .mat-stroked-button:last-child{margin-left:0;margin-right:0}.mat-card-title:not(:first-child),.mat-card-subtitle:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}\n"],encapsulation:2,changeDetection:0}),t})(),f=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-card-header"],ngContentSelectors:c,decls:4,vars:0,consts:[[1,"mat-card-header-text"]],template:function(t,e){1&t&&(s.F$t(l),s.Hsn(0),s.TgZ(1,"div",0),s.Hsn(2,1),s.qZA(),s.Hsn(3,2))},encapsulation:2,changeDetection:0}),t})(),m=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=s.oAB({type:t}),t.\u0275inj=s.cJS({imports:[[r.BQ],r.BQ]}),t})()},9236:(t,e,i)=>{"use strict";i.d(e,{oG:()=>w,p9:()=>C});var n=i(9861),r=i(1572),s=i(6073),o=i(1522),a=i(3490),l=i(6337),c=i(4621);const h=["input"],u=function(t){return{enterDuration:t}},d=["*"],p=new r.OlP("mat-checkbox-default-options",{providedIn:"root",factory:f});function f(){return{color:"accent",clickAction:"check-indeterminate"}}let m=0;const g=f(),y={provide:s.JU,useExisting:(0,r.Gpc)(()=>w),multi:!0};class b{}class v{constructor(t){this._elementRef=t}}const _=(0,o.sb)((0,o.pj)((0,o.Kr)((0,o.Id)(v))));let w=(()=>{class t extends _{constructor(t,e,i,n,s,o,a){super(t),this._changeDetectorRef=e,this._focusMonitor=i,this._ngZone=n,this._animationMode=o,this._options=a,this.ariaLabel="",this.ariaLabelledby=null,this._uniqueId="mat-checkbox-"+ ++m,this.id=this._uniqueId,this.labelPosition="after",this.name=null,this.change=new r.vpe,this.indeterminateChange=new r.vpe,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||g,this.color=this.defaultColor=this._options.color||g.color,this.tabIndex=parseInt(s)||0}get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(t){this._required=(0,n.Ig)(t)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{t||Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}),this._syncIndeterminate(this._indeterminate)}ngAfterViewChecked(){}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}get checked(){return this._checked}set checked(t){t!=this.checked&&(this._checked=t,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(t){const e=(0,n.Ig)(t);e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(t){const e=t!=this._indeterminate;this._indeterminate=(0,n.Ig)(t),e&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(t){this.checked=!!t}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}_getAriaChecked(){return this.checked?"true":this.indeterminate?"mixed":"false"}_transitionCheckState(t){let e=this._currentCheckState,i=this._elementRef.nativeElement;if(e!==t&&(this._currentAnimationClass.length>0&&i.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(e,t),this._currentCheckState=t,this._currentAnimationClass.length>0)){i.classList.add(this._currentAnimationClass);const t=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{i.classList.remove(t)},1e3)})}}_emitChangeEvent(){const t=new b;t.source=this,t.checked=this.checked,this._controlValueAccessorChangeFn(this.checked),this.change.emit(t),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked}_onInputClick(t){var e;const i=null===(e=this._options)||void 0===e?void 0:e.clickAction;t.stopPropagation(),this.disabled||"noop"===i?this.disabled||"noop"!==i||(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==i&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this.toggle(),this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}focus(t,e){t?this._focusMonitor.focusVia(this._inputElement,t,e):this._inputElement.nativeElement.focus(e)}_onInteractionEvent(t){t.stopPropagation()}_getAnimationClassForCheckStateTransition(t,e){if("NoopAnimations"===this._animationMode)return"";let i="";switch(t){case 0:if(1===e)i="unchecked-checked";else{if(3!=e)return"";i="unchecked-indeterminate"}break;case 2:i=1===e?"unchecked-checked":"unchecked-indeterminate";break;case 1:i=2===e?"checked-unchecked":"checked-indeterminate";break;case 3:i=1===e?"indeterminate-checked":"indeterminate-unchecked"}return`mat-checkbox-anim-${i}`}_syncIndeterminate(t){const e=this._inputElement;e&&(e.nativeElement.indeterminate=t)}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq),r.Y36(r.sBO),r.Y36(c.tE),r.Y36(r.R0b),r.$8M("tabindex"),r.Y36(a.Qb,8),r.Y36(p,8))},t.\u0275cmp=r.Xpm({type:t,selectors:[["mat-checkbox"]],viewQuery:function(t,e){if(1&t&&(r.Gf(h,5),r.Gf(o.wG,5)),2&t){let t;r.iGM(t=r.CRH())&&(e._inputElement=t.first),r.iGM(t=r.CRH())&&(e.ripple=t.first)}},hostAttrs:[1,"mat-checkbox"],hostVars:12,hostBindings:function(t,e){2&t&&(r.Ikx("id",e.id),r.uIk("tabindex",null),r.ekj("mat-checkbox-indeterminate",e.indeterminate)("mat-checkbox-checked",e.checked)("mat-checkbox-disabled",e.disabled)("mat-checkbox-label-before","before"==e.labelPosition)("_mat-animation-noopable","NoopAnimations"===e._animationMode))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],id:"id",labelPosition:"labelPosition",name:"name",required:"required",checked:"checked",disabled:"disabled",indeterminate:"indeterminate",ariaDescribedby:["aria-describedby","ariaDescribedby"],value:"value"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[r._Bn([y]),r.qOj],ngContentSelectors:d,decls:17,vars:21,consts:[[1,"mat-checkbox-layout"],["label",""],[1,"mat-checkbox-inner-container"],["type","checkbox",1,"mat-checkbox-input","cdk-visually-hidden",3,"id","required","checked","disabled","tabIndex","change","click"],["input",""],["matRipple","",1,"mat-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleRadius","matRippleCentered","matRippleAnimation"],[1,"mat-ripple-element","mat-checkbox-persistent-ripple"],[1,"mat-checkbox-frame"],[1,"mat-checkbox-background"],["version","1.1","focusable","false","viewBox","0 0 24 24",0,"xml","space","preserve",1,"mat-checkbox-checkmark"],["fill","none","stroke","white","d","M4.1,12.7 9,17.6 20.3,6.3",1,"mat-checkbox-checkmark-path"],[1,"mat-checkbox-mixedmark"],[1,"mat-checkbox-label",3,"cdkObserveContent"],["checkboxLabel",""],[2,"display","none"]],template:function(t,e){if(1&t&&(r.F$t(),r.TgZ(0,"label",0,1),r.TgZ(2,"span",2),r.TgZ(3,"input",3,4),r.NdJ("change",function(t){return e._onInteractionEvent(t)})("click",function(t){return e._onInputClick(t)}),r.qZA(),r.TgZ(5,"span",5),r._UZ(6,"span",6),r.qZA(),r._UZ(7,"span",7),r.TgZ(8,"span",8),r.O4$(),r.TgZ(9,"svg",9),r._UZ(10,"path",10),r.qZA(),r.kcU(),r._UZ(11,"span",11),r.qZA(),r.qZA(),r.TgZ(12,"span",12,13),r.NdJ("cdkObserveContent",function(){return e._onLabelTextChange()}),r.TgZ(14,"span",14),r._uU(15,"\xa0"),r.qZA(),r.Hsn(16),r.qZA(),r.qZA()),2&t){const t=r.MAs(1),i=r.MAs(13);r.uIk("for",e.inputId),r.xp6(2),r.ekj("mat-checkbox-inner-container-no-side-margin",!i.textContent||!i.textContent.trim()),r.xp6(1),r.Q6J("id",e.inputId)("required",e.required)("checked",e.checked)("disabled",e.disabled)("tabIndex",e.tabIndex),r.uIk("value",e.value)("name",e.name)("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby)("aria-checked",e._getAriaChecked())("aria-describedby",e.ariaDescribedby),r.xp6(2),r.Q6J("matRippleTrigger",t)("matRippleDisabled",e._isRippleDisabled())("matRippleRadius",20)("matRippleCentered",!0)("matRippleAnimation",r.VKq(19,u,"NoopAnimations"===e._animationMode?0:150))}},directives:[o.wG,l.wD],styles:["@keyframes mat-checkbox-fade-in-background{0%{opacity:0}50%{opacity:1}}@keyframes mat-checkbox-fade-out-background{0%,50%{opacity:1}100%{opacity:0}}@keyframes mat-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:22.910259}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1)}100%{stroke-dashoffset:0}}@keyframes mat-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mat-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);stroke-dashoffset:0}to{stroke-dashoffset:-22.910259}}@keyframes mat-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(45deg)}}@keyframes mat-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:0;transform:rotate(45deg)}to{opacity:1;transform:rotate(360deg)}}@keyframes mat-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:rotate(0deg)}}@keyframes mat-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(315deg)}}@keyframes mat-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;opacity:1;transform:scaleX(1)}32.8%,100%{opacity:0;transform:scaleX(0)}}.mat-checkbox-background,.mat-checkbox-frame{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:2px;box-sizing:border-box;pointer-events:none}.mat-checkbox{display:inline-block;transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);cursor:pointer;-webkit-tap-highlight-color:transparent}._mat-animation-noopable.mat-checkbox{transition:none;animation:none}.mat-checkbox .mat-ripple-element:not(.mat-checkbox-persistent-ripple){opacity:.16}.mat-checkbox .mat-checkbox-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.cdk-high-contrast-active .mat-checkbox.cdk-keyboard-focused .mat-checkbox-ripple{outline:solid 3px}.mat-checkbox-layout{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mat-checkbox-label{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.mat-checkbox-inner-container{display:inline-block;height:16px;line-height:0;margin:auto;margin-right:8px;order:0;position:relative;vertical-align:middle;white-space:nowrap;width:16px;flex-shrink:0}[dir=rtl] .mat-checkbox-inner-container{margin-left:8px;margin-right:auto}.mat-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mat-checkbox-frame{background-color:transparent;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1);border-width:2px;border-style:solid}._mat-animation-noopable .mat-checkbox-frame{transition:none}.mat-checkbox-background{align-items:center;display:inline-flex;justify-content:center;transition:background-color 90ms cubic-bezier(0, 0, 0.2, 0.1),opacity 90ms cubic-bezier(0, 0, 0.2, 0.1);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-checkbox-background{transition:none}.cdk-high-contrast-active .mat-checkbox .mat-checkbox-background{background:none}.mat-checkbox-persistent-ripple{display:block;width:100%;height:100%;transform:none}.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:.04}.mat-checkbox.cdk-keyboard-focused .mat-checkbox-persistent-ripple{opacity:.12}.mat-checkbox-persistent-ripple,.mat-checkbox.mat-checkbox-disabled .mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:0}@media(hover: none){.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{display:none}}.mat-checkbox-checkmark{top:0;left:0;right:0;bottom:0;position:absolute;width:100%}.mat-checkbox-checkmark-path{stroke-dashoffset:22.910259;stroke-dasharray:22.910259;stroke-width:2.1333333333px}.cdk-high-contrast-black-on-white .mat-checkbox-checkmark-path{stroke:#000 !important}.mat-checkbox-mixedmark{width:calc(100% - 6px);height:2px;opacity:0;transform:scaleX(0) rotate(0deg);border-radius:2px}.cdk-high-contrast-active .mat-checkbox-mixedmark{height:0;border-top:solid 2px;margin-top:2px}.mat-checkbox-label-before .mat-checkbox-inner-container{order:1;margin-left:8px;margin-right:auto}[dir=rtl] .mat-checkbox-label-before .mat-checkbox-inner-container{margin-left:auto;margin-right:8px}.mat-checkbox-checked .mat-checkbox-checkmark{opacity:1}.mat-checkbox-checked .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-checked .mat-checkbox-mixedmark{transform:scaleX(1) rotate(-45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark{opacity:0;transform:rotate(45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-indeterminate .mat-checkbox-mixedmark{opacity:1;transform:scaleX(1) rotate(0deg)}.mat-checkbox-unchecked .mat-checkbox-background{background-color:transparent}.mat-checkbox-disabled{cursor:default}.cdk-high-contrast-active .mat-checkbox-disabled{opacity:.5}.mat-checkbox-anim-unchecked-checked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-checked .mat-checkbox-checkmark-path{animation:180ms linear 0ms mat-checkbox-unchecked-checked-checkmark-path}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-unchecked-indeterminate-mixedmark}.mat-checkbox-anim-checked-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-checked-unchecked .mat-checkbox-checkmark-path{animation:90ms linear 0ms mat-checkbox-checked-unchecked-checkmark-path}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-checkmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-checkmark}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-mixedmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-checkmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-checkmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-mixedmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-mixedmark}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-mixedmark{animation:300ms linear 0ms mat-checkbox-indeterminate-unchecked-mixedmark}.mat-checkbox-input{bottom:0;left:50%}\n"],encapsulation:2,changeDetection:0}),t})(),x=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({}),t})(),C=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({imports:[[o.si,o.BQ,l.Q8,x],o.BQ,x]}),t})()},1522:(t,e,i)=>{"use strict";i.d(e,{yN:()=>b,mZ:()=>v,_A:()=>L,rD:()=>z,sG:()=>I,K7:()=>ct,HF:()=>rt,Y2:()=>$,BQ:()=>x,X2:()=>H,uc:()=>j,XK:()=>q,ey:()=>pt,Ng:()=>gt,rN:()=>ut,nP:()=>it,us:()=>nt,wG:()=>tt,si:()=>et,LF:()=>Z,IR:()=>K,CB:()=>ft,jH:()=>mt,pj:()=>A,Kr:()=>S,Id:()=>C,FD:()=>k,dB:()=>T,sb:()=>E,E0:()=>Y});var n=i(1572),r=i(4621),s=i(2526);const o=new n.GfV("12.0.5");var a=i(1511),l=i(9861),c=i(9666),h=i(2391),u=i(1353),d=i(1258),p=i(3490),f=i(5842);function m(t,e){if(1&t&&n._UZ(0,"mat-pseudo-checkbox",4),2&t){const t=n.oxw();n.Q6J("state",t.selected?"checked":"unchecked")("disabled",t.disabled)}}function g(t,e){if(1&t&&(n.TgZ(0,"span",5),n._uU(1),n.qZA()),2&t){const t=n.oxw();n.xp6(1),n.hij("(",t.group.label,")")}}const y=["*"];let b=(()=>{class t{}return t.STANDARD_CURVE="cubic-bezier(0.4,0.0,0.2,1)",t.DECELERATION_CURVE="cubic-bezier(0.0,0.0,0.2,1)",t.ACCELERATION_CURVE="cubic-bezier(0.4,0.0,1,1)",t.SHARP_CURVE="cubic-bezier(0.4,0.0,0.6,1)",t})(),v=(()=>{class t{}return t.COMPLEX="375ms",t.ENTERING="225ms",t.EXITING="195ms",t})();const _=new n.GfV("12.0.5"),w=new n.OlP("mat-sanity-checks",{providedIn:"root",factory:function(){return!0}});let x=(()=>{class t{constructor(t,e,i){this._hasDoneGlobalChecks=!1,this._document=i,t._applyBodyHighContrastModeCssClasses(),this._sanityChecks=e,this._hasDoneGlobalChecks||(this._checkDoctypeIsDefined(),this._checkThemeIsPresent(),this._checkCdkVersionMatch(),this._hasDoneGlobalChecks=!0)}_getWindow(){const t=this._document.defaultView||window;return"object"==typeof t&&t?t:null}_checksAreEnabled(){return(0,n.X6Q)()&&!this._isTestEnv()}_isTestEnv(){const t=this._getWindow();return t&&(t.__karma__||t.jasmine)}_checkDoctypeIsDefined(){this._checksAreEnabled()&&(!0===this._sanityChecks||this._sanityChecks.doctype)&&!this._document.doctype&&console.warn("Current document does not have a doctype. This may cause some Angular Material components not to behave as expected.")}_checkThemeIsPresent(){if(!this._checksAreEnabled()||!1===this._sanityChecks||!this._sanityChecks.theme||!this._document.body||"function"!=typeof getComputedStyle)return;const t=this._document.createElement("div");t.classList.add("mat-theme-loaded-marker"),this._document.body.appendChild(t);const e=getComputedStyle(t);e&&"none"!==e.display&&console.warn("Could not find Angular Material core theme. Most Material components may not work as expected. For more info refer to the theming guide: https://material.angular.io/guide/theming"),this._document.body.removeChild(t)}_checkCdkVersionMatch(){this._checksAreEnabled()&&(!0===this._sanityChecks||this._sanityChecks.version)&&_.full!==o.full&&console.warn("The Angular Material version ("+_.full+") does not match the Angular CDK version ("+o.full+").\nPlease ensure the versions of these two packages exactly match.")}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(r.qm),n.LFG(w,8),n.LFG(a.K0))},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[s.vT],s.vT]}),t})();function C(t){return class extends t{constructor(...t){super(...t),this._disabled=!1}get disabled(){return this._disabled}set disabled(t){this._disabled=(0,l.Ig)(t)}}}function A(t,e){return class extends t{constructor(...t){super(...t),this.defaultColor=e,this.color=e}get color(){return this._color}set color(t){const e=t||this.defaultColor;e!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),e&&this._elementRef.nativeElement.classList.add(`mat-${e}`),this._color=e)}}}function S(t){return class extends t{constructor(...t){super(...t),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=(0,l.Ig)(t)}}}function E(t,e=0){return class extends t{constructor(...t){super(...t),this._tabIndex=e,this.defaultTabIndex=e}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(t){this._tabIndex=null!=t?(0,l.su)(t):this.defaultTabIndex}}}function k(t){return class extends t{constructor(...t){super(...t),this.errorState=!1,this.stateChanges=new c.x}updateErrorState(){const t=this.errorState,e=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);e!==t&&(this.errorState=e,this.stateChanges.next())}}}function T(t){return class extends t{constructor(...t){super(...t),this._isInitialized=!1,this._pendingSubscribers=[],this.initialized=new h.y(t=>{this._isInitialized?this._notifySubscriber(t):this._pendingSubscribers.push(t)})}_markInitialized(){this._isInitialized=!0,this._pendingSubscribers.forEach(this._notifySubscriber),this._pendingSubscribers=null}_notifySubscriber(t){t.next(),t.complete()}}}const M=new n.OlP("MAT_DATE_LOCALE",{providedIn:"root",factory:function(){return(0,n.f3M)(n.soG)}});class L{constructor(){this._localeChanges=new c.x,this.localeChanges=this._localeChanges}getValidDateOrNull(t){return this.isDateInstance(t)&&this.isValid(t)?t:null}deserialize(t){return null==t||this.isDateInstance(t)&&this.isValid(t)?t:this.invalid()}setLocale(t){this.locale=t,this._localeChanges.next()}compareDate(t,e){return this.getYear(t)-this.getYear(e)||this.getMonth(t)-this.getMonth(e)||this.getDate(t)-this.getDate(e)}sameDate(t,e){if(t&&e){let i=this.isValid(t),n=this.isValid(e);return i&&n?!this.compareDate(t,e):i==n}return t==e}clampDate(t,e,i){return e&&this.compareDate(t,e)<0?e:i&&this.compareDate(t,i)>0?i:t}}const I=new n.OlP("mat-date-formats");let O;try{O="undefined"!=typeof Intl}catch(yt){O=!1}const D={long:["January","February","March","April","May","June","July","August","September","October","November","December"],short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],narrow:["J","F","M","A","M","J","J","A","S","O","N","D"]},R=F(31,t=>String(t+1)),N={long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],narrow:["S","M","T","W","T","F","S"]},P=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;function F(t,e){const i=Array(t);for(let n=0;n{class t extends L{constructor(t,e){super(),this.useUtcForDisplay=!0,super.setLocale(t),this.useUtcForDisplay=!e.TRIDENT,this._clampDate=e.TRIDENT||e.EDGE}getYear(t){return t.getFullYear()}getMonth(t){return t.getMonth()}getDate(t){return t.getDate()}getDayOfWeek(t){return t.getDay()}getMonthNames(t){if(O){const e=new Intl.DateTimeFormat(this.locale,{month:t,timeZone:"utc"});return F(12,t=>this._stripDirectionalityCharacters(this._format(e,new Date(2017,t,1))))}return D[t]}getDateNames(){if(O){const t=new Intl.DateTimeFormat(this.locale,{day:"numeric",timeZone:"utc"});return F(31,e=>this._stripDirectionalityCharacters(this._format(t,new Date(2017,0,e+1))))}return R}getDayOfWeekNames(t){if(O){const e=new Intl.DateTimeFormat(this.locale,{weekday:t,timeZone:"utc"});return F(7,t=>this._stripDirectionalityCharacters(this._format(e,new Date(2017,0,t+1))))}return N[t]}getYearName(t){if(O){const e=new Intl.DateTimeFormat(this.locale,{year:"numeric",timeZone:"utc"});return this._stripDirectionalityCharacters(this._format(e,t))}return String(this.getYear(t))}getFirstDayOfWeek(){return 0}getNumDaysInMonth(t){return this.getDate(this._createDateWithOverflow(this.getYear(t),this.getMonth(t)+1,0))}clone(t){return new Date(t.getTime())}createDate(t,e,i){let n=this._createDateWithOverflow(t,e,i);return n.getMonth(),n}today(){return new Date}parse(t){return"number"==typeof t?new Date(t):t?new Date(Date.parse(t)):null}format(t,e){if(!this.isValid(t))throw Error("NativeDateAdapter: Cannot format invalid date.");if(O){this._clampDate&&(t.getFullYear()<1||t.getFullYear()>9999)&&(t=this.clone(t)).setFullYear(Math.max(1,Math.min(9999,t.getFullYear()))),e=Object.assign(Object.assign({},e),{timeZone:"utc"});const i=new Intl.DateTimeFormat(this.locale,e);return this._stripDirectionalityCharacters(this._format(i,t))}return this._stripDirectionalityCharacters(t.toDateString())}addCalendarYears(t,e){return this.addCalendarMonths(t,12*e)}addCalendarMonths(t,e){let i=this._createDateWithOverflow(this.getYear(t),this.getMonth(t)+e,this.getDate(t));return this.getMonth(i)!=((this.getMonth(t)+e)%12+12)%12&&(i=this._createDateWithOverflow(this.getYear(i),this.getMonth(i),0)),i}addCalendarDays(t,e){return this._createDateWithOverflow(this.getYear(t),this.getMonth(t),this.getDate(t)+e)}toIso8601(t){return[t.getUTCFullYear(),this._2digit(t.getUTCMonth()+1),this._2digit(t.getUTCDate())].join("-")}deserialize(t){if("string"==typeof t){if(!t)return null;if(P.test(t)){let e=new Date(t);if(this.isValid(e))return e}}return super.deserialize(t)}isDateInstance(t){return t instanceof Date}isValid(t){return!isNaN(t.getTime())}invalid(){return new Date(NaN)}_createDateWithOverflow(t,e,i){const n=new Date;return n.setFullYear(t,e,i),n.setHours(0,0,0,0),n}_2digit(t){return("00"+t).slice(-2)}_stripDirectionalityCharacters(t){return t.replace(/[\u200e\u200f]/g,"")}_format(t,e){const i=new Date;return i.setUTCFullYear(e.getFullYear(),e.getMonth(),e.getDate()),i.setUTCHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),t.format(i)}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(M,8),n.LFG(u.t4))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})(),B=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({providers:[{provide:L,useClass:Z}],imports:[[u.ud]]}),t})();const U={parse:{dateInput:null},display:{dateInput:{year:"numeric",month:"numeric",day:"numeric"},monthYearLabel:{year:"numeric",month:"short"},dateA11yLabel:{year:"numeric",month:"long",day:"numeric"},monthYearA11yLabel:{year:"numeric",month:"long"}}};let q=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({providers:[{provide:I,useValue:U}],imports:[[B]]}),t})(),z=(()=>{class t{isErrorState(t,e){return!!(t&&t.invalid&&(t.touched||e&&e.submitted))}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=n.Yz7({factory:function(){return new t},token:t,providedIn:"root"}),t})(),H=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t,selectors:[["","mat-line",""],["","matLine",""]],hostAttrs:[1,"mat-line"]}),t})();function Y(t,e,i="mat"){t.changes.pipe((0,d.O)(t)).subscribe(({length:t})=>{G(e,`${i}-2-line`,!1),G(e,`${i}-3-line`,!1),G(e,`${i}-multi-line`,!1),2===t||3===t?G(e,`${i}-${t}-line`,!0):t>3&&G(e,`${i}-multi-line`,!0)})}function G(t,e,i){const n=t.nativeElement.classList;i?n.add(e):n.remove(e)}let j=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[x],x]}),t})();class V{constructor(t,e,i){this._renderer=t,this.element=e,this.config=i,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const Q={enterDuration:450,exitDuration:400},W=(0,u.i$)({passive:!0}),J=["mousedown","touchstart"],X=["mouseup","mouseleave","touchend","touchcancel"];class K{constructor(t,e,i,n){this._target=t,this._ngZone=e,this._isPointerDown=!1,this._activeRipples=new Set,this._pointerUpEventsRegistered=!1,n.isBrowser&&(this._containerElement=(0,l.fI)(i))}fadeInRipple(t,e,i={}){const n=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),r=Object.assign(Object.assign({},Q),i.animation);i.centered&&(t=n.left+n.width/2,e=n.top+n.height/2);const s=i.radius||function(t,e,i){const n=Math.max(Math.abs(t-i.left),Math.abs(t-i.right)),r=Math.max(Math.abs(e-i.top),Math.abs(e-i.bottom));return Math.sqrt(n*n+r*r)}(t,e,n),o=t-n.left,a=e-n.top,l=r.enterDuration,c=document.createElement("div");c.classList.add("mat-ripple-element"),c.style.left=o-s+"px",c.style.top=a-s+"px",c.style.height=2*s+"px",c.style.width=2*s+"px",null!=i.color&&(c.style.backgroundColor=i.color),c.style.transitionDuration=`${l}ms`,this._containerElement.appendChild(c),window.getComputedStyle(c).getPropertyValue("opacity"),c.style.transform="scale(1)";const h=new V(this,c,i);return h.state=0,this._activeRipples.add(h),i.persistent||(this._mostRecentTransientRipple=h),this._runTimeoutOutsideZone(()=>{const t=h===this._mostRecentTransientRipple;h.state=1,i.persistent||t&&this._isPointerDown||h.fadeOut()},l),h}fadeOutRipple(t){const e=this._activeRipples.delete(t);if(t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),this._activeRipples.size||(this._containerRect=null),!e)return;const i=t.element,n=Object.assign(Object.assign({},Q),t.config.animation);i.style.transitionDuration=`${n.exitDuration}ms`,i.style.opacity="0",t.state=2,this._runTimeoutOutsideZone(()=>{t.state=3,i.parentNode.removeChild(i)},n.exitDuration)}fadeOutAll(){this._activeRipples.forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._activeRipples.forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){const e=(0,l.fI)(t);e&&e!==this._triggerElement&&(this._removeTriggerEvents(),this._triggerElement=e,this._registerEvents(J))}handleEvent(t){"mousedown"===t.type?this._onMousedown(t):"touchstart"===t.type?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._registerEvents(X),this._pointerUpEventsRegistered=!0)}_onMousedown(t){const e=(0,r.X6)(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(1===t.state||t.config.terminateOnPointerUp&&0===t.state)&&t.fadeOut()}))}_runTimeoutOutsideZone(t,e=0){this._ngZone.runOutsideAngular(()=>setTimeout(t,e))}_registerEvents(t){this._ngZone.runOutsideAngular(()=>{t.forEach(t=>{this._triggerElement.addEventListener(t,this,W)})})}_removeTriggerEvents(){this._triggerElement&&(J.forEach(t=>{this._triggerElement.removeEventListener(t,this,W)}),this._pointerUpEventsRegistered&&X.forEach(t=>{this._triggerElement.removeEventListener(t,this,W)}))}}const $=new n.OlP("mat-ripple-global-options");let tt=(()=>{class t{constructor(t,e,i,n,r){this._elementRef=t,this._animationMode=r,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=n||{},this._rippleRenderer=new K(this,e,t,i)}get disabled(){return this._disabled}set disabled(t){t&&this.fadeOutAllNonPersistent(),this._disabled=t,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(t){this._trigger=t,this._setupTriggerEventsIfEnabled()}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:Object.assign(Object.assign(Object.assign({},this._globalOptions.animation),"NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(t,e=0,i){return"number"==typeof t?this._rippleRenderer.fadeInRipple(t,e,Object.assign(Object.assign({},this.rippleConfig),i)):this._rippleRenderer.fadeInRipple(0,0,Object.assign(Object.assign({},this.rippleConfig),t))}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(n.R0b),n.Y36(u.t4),n.Y36($,8),n.Y36(p.Qb,8))},t.\u0275dir=n.lG2({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(t,e){2&t&&n.ekj("mat-ripple-unbounded",e.unbounded)},inputs:{radius:["matRippleRadius","radius"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"],color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],animation:["matRippleAnimation","animation"]},exportAs:["matRipple"]}),t})(),et=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[x,u.ud],x]}),t})(),it=(()=>{class t{constructor(t){this._animationMode=t,this.state="unchecked",this.disabled=!1}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(p.Qb,8))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:8,hostBindings:function(t,e){2&t&&n.ekj("mat-pseudo-checkbox-indeterminate","indeterminate"===e.state)("mat-pseudo-checkbox-checked","checked"===e.state)("mat-pseudo-checkbox-disabled",e.disabled)("_mat-animation-noopable","NoopAnimations"===e._animationMode)},inputs:{state:"state",disabled:"disabled"},decls:0,vars:0,template:function(t,e){},styles:['.mat-pseudo-checkbox{width:16px;height:16px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\n'],encapsulation:2,changeDetection:0}),t})(),nt=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[x]]}),t})();const rt=new n.OlP("MAT_OPTION_PARENT_COMPONENT");class st{}const ot=C(st);let at=0,lt=(()=>{class t extends ot{constructor(t){var e;super(),this._labelId="mat-optgroup-label-"+at++,this._inert=null!==(e=null==t?void 0:t.inertGroups)&&void 0!==e&&e}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(rt,8))},t.\u0275dir=n.lG2({type:t,inputs:{label:"label"},features:[n.qOj]}),t})();const ct=new n.OlP("MatOptgroup");let ht=0;class ut{constructor(t,e=!1){this.source=t,this.isUserInput=e}}let dt=(()=>{class t{constructor(t,e,i,r){this._element=t,this._changeDetectorRef=e,this._parent=i,this.group=r,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+ht++,this.onSelectionChange=new n.vpe,this._stateChanges=new c.x}get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(t){this._disabled=(0,l.Ig)(t)}get disableRipple(){return this._parent&&this._parent.disableRipple}get active(){return this._active}get viewValue(){return(this._getHostElement().textContent||"").trim()}select(){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}deselect(){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}focus(t,e){const i=this._getHostElement();"function"==typeof i.focus&&i.focus(e)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(t){t.keyCode!==f.K5&&t.keyCode!==f.L_||(0,f.Vb)(t)||(this._selectViaInteraction(),t.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getAriaSelected(){return this.selected||!this.multiple&&null}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const t=this.viewValue;t!==this._mostRecentViewValue&&(this._mostRecentViewValue=t,this._stateChanges.next())}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(t=!1){this.onSelectionChange.emit(new ut(this,t))}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(n.sBO),n.Y36(void 0),n.Y36(lt))},t.\u0275dir=n.lG2({type:t,inputs:{id:"id",disabled:"disabled",value:"value"},outputs:{onSelectionChange:"onSelectionChange"}}),t})(),pt=(()=>{class t extends dt{constructor(t,e,i,n){super(t,e,i,n)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(n.sBO),n.Y36(rt,8),n.Y36(ct,8))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-option","mat-focus-indicator"],hostVars:12,hostBindings:function(t,e){1&t&&n.NdJ("click",function(){return e._selectViaInteraction()})("keydown",function(t){return e._handleKeydown(t)}),2&t&&(n.Ikx("id",e.id),n.uIk("tabindex",e._getTabIndex())("aria-selected",e._getAriaSelected())("aria-disabled",e.disabled.toString()),n.ekj("mat-selected",e.selected)("mat-option-multiple",e.multiple)("mat-active",e.active)("mat-option-disabled",e.disabled))},exportAs:["matOption"],features:[n.qOj],ngContentSelectors:y,decls:5,vars:4,consts:[["class","mat-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mat-option-text"],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-option-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-option-pseudo-checkbox",3,"state","disabled"],[1,"cdk-visually-hidden"]],template:function(t,e){1&t&&(n.F$t(),n.YNc(0,m,1,2,"mat-pseudo-checkbox",0),n.TgZ(1,"span",1),n.Hsn(2),n.qZA(),n.YNc(3,g,2,1,"span",2),n._UZ(4,"div",3)),2&t&&(n.Q6J("ngIf",e.multiple),n.xp6(3),n.Q6J("ngIf",e.group&&e.group._inert),n.xp6(1),n.Q6J("matRippleTrigger",e._getHostElement())("matRippleDisabled",e.disabled||e.disableRipple))},directives:[a.O5,tt,it],styles:[".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\n"],encapsulation:2,changeDetection:0}),t})();function ft(t,e,i){if(i.length){let n=e.toArray(),r=i.toArray(),s=0;for(let e=0;ei+n?Math.max(0,t-n+e):i}let gt=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[et,a.ez,x,nt]]}),t})()},5812:(t,e,i)=>{"use strict";i.d(e,{Mq:()=>bt,hl:()=>Ct,FA:()=>Et,nW:()=>St});var n=i(4621),r=i(369),s=i(6899),o=i(1511),a=i(1572),l=i(5980),c=i(4894),h=i(1522),u=i(9666),d=i(6042),p=i(5446),f=i(2041),m=i(5842),g=i(9056),y=i(1258),b=i(8868),v=i(9861),_=i(1353),w=i(709),x=i(6073),C=i(6283),A=i(6756),S=i(2526);const E=["mat-calendar-body",""];function k(t,e){if(1&t&&(a.TgZ(0,"tr",2),a.TgZ(1,"td",3),a._uU(2),a.qZA(),a.qZA()),2&t){const t=a.oxw();a.xp6(1),a.Udp("padding-top",t._cellPadding)("padding-bottom",t._cellPadding),a.uIk("colspan",t.numCols),a.xp6(1),a.hij(" ",t.label," ")}}function T(t,e){if(1&t&&(a.TgZ(0,"td",7),a._uU(1),a.qZA()),2&t){const t=a.oxw(2);a.Udp("padding-top",t._cellPadding)("padding-bottom",t._cellPadding),a.uIk("colspan",t._firstRowOffset),a.xp6(1),a.hij(" ",t._firstRowOffset>=t.labelMinRequiredCells?t.label:""," ")}}function M(t,e){if(1&t){const t=a.EpF();a.TgZ(0,"td",8),a.NdJ("click",function(e){const i=a.CHM(t).$implicit;return a.oxw(2)._cellClicked(i,e)}),a.TgZ(1,"div",9),a._uU(2),a.qZA(),a._UZ(3,"div",10),a.qZA()}if(2&t){const t=e.$implicit,i=e.index,n=a.oxw().index,r=a.oxw();a.Udp("width",r._cellWidth)("padding-top",r._cellPadding)("padding-bottom",r._cellPadding),a.ekj("mat-calendar-body-disabled",!t.enabled)("mat-calendar-body-active",r._isActiveCell(n,i))("mat-calendar-body-range-start",r._isRangeStart(t.compareValue))("mat-calendar-body-range-end",r._isRangeEnd(t.compareValue))("mat-calendar-body-in-range",r._isInRange(t.compareValue))("mat-calendar-body-comparison-bridge-start",r._isComparisonBridgeStart(t.compareValue,n,i))("mat-calendar-body-comparison-bridge-end",r._isComparisonBridgeEnd(t.compareValue,n,i))("mat-calendar-body-comparison-start",r._isComparisonStart(t.compareValue))("mat-calendar-body-comparison-end",r._isComparisonEnd(t.compareValue))("mat-calendar-body-in-comparison-range",r._isInComparisonRange(t.compareValue))("mat-calendar-body-preview-start",r._isPreviewStart(t.compareValue))("mat-calendar-body-preview-end",r._isPreviewEnd(t.compareValue))("mat-calendar-body-in-preview",r._isInPreview(t.compareValue)),a.Q6J("ngClass",t.cssClasses)("tabindex",r._isActiveCell(n,i)?0:-1),a.uIk("data-mat-row",n)("data-mat-col",i)("aria-label",t.ariaLabel)("aria-disabled",!t.enabled||null)("aria-selected",r._isSelected(t.compareValue)),a.xp6(1),a.ekj("mat-calendar-body-selected",r._isSelected(t.compareValue))("mat-calendar-body-comparison-identical",r._isComparisonIdentical(t.compareValue))("mat-calendar-body-today",r.todayValue===t.compareValue),a.xp6(1),a.hij(" ",t.displayValue," ")}}function L(t,e){if(1&t&&(a.TgZ(0,"tr",4),a.YNc(1,T,2,6,"td",5),a.YNc(2,M,4,46,"td",6),a.qZA()),2&t){const t=e.$implicit,i=e.index,n=a.oxw();a.xp6(1),a.Q6J("ngIf",0===i&&n._firstRowOffset),a.xp6(1),a.Q6J("ngForOf",t)}}function I(t,e){if(1&t&&(a.TgZ(0,"th",5),a._uU(1),a.qZA()),2&t){const t=e.$implicit;a.uIk("aria-label",t.long),a.xp6(1),a.Oqu(t.narrow)}}const O=["*"];function D(t,e){}function R(t,e){if(1&t){const t=a.EpF();a.TgZ(0,"mat-month-view",5),a.NdJ("activeDateChange",function(e){return a.CHM(t),a.oxw().activeDate=e})("_userSelection",function(e){return a.CHM(t),a.oxw()._dateSelected(e)}),a.qZA()}if(2&t){const t=a.oxw();a.Q6J("activeDate",t.activeDate)("selected",t.selected)("dateFilter",t.dateFilter)("maxDate",t.maxDate)("minDate",t.minDate)("dateClass",t.dateClass)("comparisonStart",t.comparisonStart)("comparisonEnd",t.comparisonEnd)}}function N(t,e){if(1&t){const t=a.EpF();a.TgZ(0,"mat-year-view",6),a.NdJ("activeDateChange",function(e){return a.CHM(t),a.oxw().activeDate=e})("monthSelected",function(e){return a.CHM(t),a.oxw()._monthSelectedInYearView(e)})("selectedChange",function(e){return a.CHM(t),a.oxw()._goToDateInView(e,"month")}),a.qZA()}if(2&t){const t=a.oxw();a.Q6J("activeDate",t.activeDate)("selected",t.selected)("dateFilter",t.dateFilter)("maxDate",t.maxDate)("minDate",t.minDate)("dateClass",t.dateClass)}}function P(t,e){if(1&t){const t=a.EpF();a.TgZ(0,"mat-multi-year-view",7),a.NdJ("activeDateChange",function(e){return a.CHM(t),a.oxw().activeDate=e})("yearSelected",function(e){return a.CHM(t),a.oxw()._yearSelectedInMultiYearView(e)})("selectedChange",function(e){return a.CHM(t),a.oxw()._goToDateInView(e,"year")}),a.qZA()}if(2&t){const t=a.oxw();a.Q6J("activeDate",t.activeDate)("selected",t.selected)("dateFilter",t.dateFilter)("maxDate",t.maxDate)("minDate",t.minDate)("dateClass",t.dateClass)}}function F(t,e){}const Z=["button"];function B(t,e){1&t&&(a.O4$(),a.TgZ(0,"svg",3),a._UZ(1,"path",4),a.qZA())}const U=[[["","matDatepickerToggleIcon",""]]],q=["[matDatepickerToggleIcon]"];let z=(()=>{class t{constructor(){this.changes=new u.x,this.calendarLabel="Calendar",this.openCalendarLabel="Open calendar",this.closeCalendarLabel="Close calendar",this.prevMonthLabel="Previous month",this.nextMonthLabel="Next month",this.prevYearLabel="Previous year",this.nextYearLabel="Next year",this.prevMultiYearLabel="Previous 24 years",this.nextMultiYearLabel="Next 24 years",this.switchToMonthViewLabel="Choose date",this.switchToMultiYearViewLabel="Choose month and year"}formatYearRange(t,e){return`${t} \u2013 ${e}`}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=a.Yz7({factory:function(){return new t},token:t,providedIn:"root"}),t})();class H{constructor(t,e,i,n,r={},s=t,o){this.value=t,this.displayValue=e,this.ariaLabel=i,this.enabled=n,this.cssClasses=r,this.compareValue=s,this.rawValue=o}}let Y=(()=>{class t{constructor(t,e){this._elementRef=t,this._ngZone=e,this.numCols=7,this.activeCell=0,this.isRange=!1,this.cellAspectRatio=1,this.previewStart=null,this.previewEnd=null,this.selectedValueChange=new a.vpe,this.previewChange=new a.vpe,this._enterHandler=t=>{if(this._skipNextFocus&&"focus"===t.type)this._skipNextFocus=!1;else if(t.target&&this.isRange){const e=this._getCellFromElement(t.target);e&&this._ngZone.run(()=>this.previewChange.emit({value:e.enabled?e:null,event:t}))}},this._leaveHandler=t=>{null!==this.previewEnd&&this.isRange&&t.target&&G(t.target)&&this._ngZone.run(()=>this.previewChange.emit({value:null,event:t}))},e.runOutsideAngular(()=>{const e=t.nativeElement;e.addEventListener("mouseenter",this._enterHandler,!0),e.addEventListener("focus",this._enterHandler,!0),e.addEventListener("mouseleave",this._leaveHandler,!0),e.addEventListener("blur",this._leaveHandler,!0)})}_cellClicked(t,e){t.enabled&&this.selectedValueChange.emit({value:t.value,event:e})}_isSelected(t){return this.startValue===t||this.endValue===t}ngOnChanges(t){const e=t.numCols,{rows:i,numCols:n}=this;(t.rows||e)&&(this._firstRowOffset=i&&i.length&&i[0].length?n-i[0].length:0),(t.cellAspectRatio||e||!this._cellPadding)&&(this._cellPadding=50*this.cellAspectRatio/n+"%"),!e&&this._cellWidth||(this._cellWidth=100/n+"%")}ngOnDestroy(){const t=this._elementRef.nativeElement;t.removeEventListener("mouseenter",this._enterHandler,!0),t.removeEventListener("focus",this._enterHandler,!0),t.removeEventListener("mouseleave",this._leaveHandler,!0),t.removeEventListener("blur",this._leaveHandler,!0)}_isActiveCell(t,e){let i=t*this.numCols+e;return t&&(i-=this._firstRowOffset),i==this.activeCell}_focusActiveCell(t=!0){this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe((0,g.q)(1)).subscribe(()=>{const e=this._elementRef.nativeElement.querySelector(".mat-calendar-body-active");e&&(t||(this._skipNextFocus=!0),e.focus())})})}_isRangeStart(t){return j(t,this.startValue,this.endValue)}_isRangeEnd(t){return V(t,this.startValue,this.endValue)}_isInRange(t){return Q(t,this.startValue,this.endValue,this.isRange)}_isComparisonStart(t){return j(t,this.comparisonStart,this.comparisonEnd)}_isComparisonBridgeStart(t,e,i){if(!this._isComparisonStart(t)||this._isRangeStart(t)||!this._isInRange(t))return!1;let n=this.rows[e][i-1];if(!n){const t=this.rows[e-1];n=t&&t[t.length-1]}return n&&!this._isRangeEnd(n.compareValue)}_isComparisonBridgeEnd(t,e,i){if(!this._isComparisonEnd(t)||this._isRangeEnd(t)||!this._isInRange(t))return!1;let n=this.rows[e][i+1];if(!n){const t=this.rows[e+1];n=t&&t[0]}return n&&!this._isRangeStart(n.compareValue)}_isComparisonEnd(t){return V(t,this.comparisonStart,this.comparisonEnd)}_isInComparisonRange(t){return Q(t,this.comparisonStart,this.comparisonEnd,this.isRange)}_isComparisonIdentical(t){return this.comparisonStart===this.comparisonEnd&&t===this.comparisonStart}_isPreviewStart(t){return j(t,this.previewStart,this.previewEnd)}_isPreviewEnd(t){return V(t,this.previewStart,this.previewEnd)}_isInPreview(t){return Q(t,this.previewStart,this.previewEnd,this.isRange)}_getCellFromElement(t){let e;if(G(t)?e=t:G(t.parentNode)&&(e=t.parentNode),e){const t=e.getAttribute("data-mat-row"),i=e.getAttribute("data-mat-col");if(t&&i)return this.rows[parseInt(t)][parseInt(i)]}return null}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(a.R0b))},t.\u0275cmp=a.Xpm({type:t,selectors:[["","mat-calendar-body",""]],hostAttrs:["role","grid","aria-readonly","true",1,"mat-calendar-body"],inputs:{numCols:"numCols",activeCell:"activeCell",isRange:"isRange",cellAspectRatio:"cellAspectRatio",previewStart:"previewStart",previewEnd:"previewEnd",label:"label",rows:"rows",todayValue:"todayValue",startValue:"startValue",endValue:"endValue",labelMinRequiredCells:"labelMinRequiredCells",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd"},outputs:{selectedValueChange:"selectedValueChange",previewChange:"previewChange"},exportAs:["matCalendarBody"],features:[a.TTD],attrs:E,decls:2,vars:2,consts:[["aria-hidden","true",4,"ngIf"],["role","row",4,"ngFor","ngForOf"],["aria-hidden","true"],[1,"mat-calendar-body-label"],["role","row"],["aria-hidden","true","class","mat-calendar-body-label",3,"paddingTop","paddingBottom",4,"ngIf"],["role","gridcell","class","mat-calendar-body-cell",3,"ngClass","tabindex","mat-calendar-body-disabled","mat-calendar-body-active","mat-calendar-body-range-start","mat-calendar-body-range-end","mat-calendar-body-in-range","mat-calendar-body-comparison-bridge-start","mat-calendar-body-comparison-bridge-end","mat-calendar-body-comparison-start","mat-calendar-body-comparison-end","mat-calendar-body-in-comparison-range","mat-calendar-body-preview-start","mat-calendar-body-preview-end","mat-calendar-body-in-preview","width","paddingTop","paddingBottom","click",4,"ngFor","ngForOf"],["aria-hidden","true",1,"mat-calendar-body-label"],["role","gridcell",1,"mat-calendar-body-cell",3,"ngClass","tabindex","click"],[1,"mat-calendar-body-cell-content","mat-focus-indicator"],[1,"mat-calendar-body-cell-preview"]],template:function(t,e){1&t&&(a.YNc(0,k,3,6,"tr",0),a.YNc(1,L,3,2,"tr",1)),2&t&&(a.Q6J("ngIf",e._firstRowOffset.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-high-contrast-active .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){outline:dotted 2px}[dir=rtl] .mat-calendar-body-label{text-align:right}@media(hover: none){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:transparent}}\n'],encapsulation:2,changeDetection:0}),t})();function G(t){return"TD"===t.nodeName}function j(t,e,i){return null!==i&&e!==i&&t=e&&t===i}function Q(t,e,i,n){return n&&null!==e&&null!==i&&e!==i&&t>=e&&t<=i}class W{constructor(t,e){this.start=t,this.end=e}}let J=(()=>{class t{constructor(t,e){this.selection=t,this._adapter=e,this._selectionChanged=new u.x,this.selectionChanged=this._selectionChanged,this.selection=t}updateSelection(t,e){const i=this.selection;this.selection=t,this._selectionChanged.next({selection:t,source:e,oldValue:i})}ngOnDestroy(){this._selectionChanged.complete()}_isValidDateInstance(t){return this._adapter.isDateInstance(t)&&this._adapter.isValid(t)}}return t.\u0275fac=function(e){return new(e||t)(a.LFG(void 0),a.LFG(h._A))},t.\u0275prov=a.Yz7({token:t,factory:t.\u0275fac}),t})(),X=(()=>{class t extends J{constructor(t){super(null,t)}add(t){super.updateSelection(t,this)}isValid(){return null!=this.selection&&this._isValidDateInstance(this.selection)}isComplete(){return null!=this.selection}clone(){const e=new t(this._adapter);return e.updateSelection(this.selection,this),e}}return t.\u0275fac=function(e){return new(e||t)(a.LFG(h._A))},t.\u0275prov=a.Yz7({token:t,factory:t.\u0275fac}),t})();const K={provide:J,deps:[[new a.FiY,new a.tp0,J],h._A],useFactory:function(t,e){return t||new X(e)}},$=new a.OlP("MAT_DATE_RANGE_SELECTION_STRATEGY");let tt=(()=>{class t{constructor(t,e,i,n,r){this._changeDetectorRef=t,this._dateFormats=e,this._dateAdapter=i,this._dir=n,this._rangeStrategy=r,this._rerenderSubscription=d.w0.EMPTY,this.selectedChange=new a.vpe,this._userSelection=new a.vpe,this.activeDateChange=new a.vpe,this._activeDate=this._dateAdapter.today()}get activeDate(){return this._activeDate}set activeDate(t){const e=this._activeDate,i=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(i,this.minDate,this.maxDate),this._hasSameMonthAndYear(e,this._activeDate)||this._init()}get selected(){return this._selected}set selected(t){this._selected=t instanceof W?t:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t)),this._setRanges(this._selected)}get minDate(){return this._minDate}set minDate(t){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get maxDate(){return this._maxDate}set maxDate(t){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe((0,y.O)(null)).subscribe(()=>this._init())}ngOnChanges(t){const e=t.comparisonStart||t.comparisonEnd;e&&!e.firstChange&&this._setRanges(this.selected)}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_dateSelected(t){const e=t.value,i=this._dateAdapter.getYear(this.activeDate),n=this._dateAdapter.getMonth(this.activeDate),r=this._dateAdapter.createDate(i,n,e);let s,o;this._selected instanceof W?(s=this._getDateInCurrentMonth(this._selected.start),o=this._getDateInCurrentMonth(this._selected.end)):s=o=this._getDateInCurrentMonth(this._selected),s===e&&o===e||this.selectedChange.emit(r),this._userSelection.emit({value:r,event:t.event}),this._previewStart=this._previewEnd=null,this._changeDetectorRef.markForCheck()}_handleCalendarBodyKeydown(t){const e=this._activeDate,i=this._isRtl();switch(t.keyCode){case m.oh:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,i?1:-1);break;case m.SV:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,i?-1:1);break;case m.LH:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-7);break;case m.JH:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,7);break;case m.Sd:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1-this._dateAdapter.getDate(this._activeDate));break;case m.uR:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,this._dateAdapter.getNumDaysInMonth(this._activeDate)-this._dateAdapter.getDate(this._activeDate));break;case m.Ku:this.activeDate=t.altKey?this._dateAdapter.addCalendarYears(this._activeDate,-1):this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case m.VM:this.activeDate=t.altKey?this._dateAdapter.addCalendarYears(this._activeDate,1):this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case m.K5:case m.L_:return void(this.dateFilter&&!this.dateFilter(this._activeDate)||(this._dateSelected({value:this._dateAdapter.getDate(this._activeDate),event:t}),t.preventDefault()));case m.hY:return void(null==this._previewEnd||(0,m.Vb)(t)||(this._previewStart=this._previewEnd=null,this.selectedChange.emit(null),this._userSelection.emit({value:null,event:t}),t.preventDefault(),t.stopPropagation()));default:return}this._dateAdapter.compareDate(e,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCell(),t.preventDefault()}_init(){this._setRanges(this.selected),this._todayDate=this._getCellCompareValue(this._dateAdapter.today()),this._monthLabel=this._dateFormats.display.monthLabel?this._dateAdapter.format(this.activeDate,this._dateFormats.display.monthLabel):this._dateAdapter.getMonthNames("short")[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();let t=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),1);this._firstWeekOffset=(7+this._dateAdapter.getDayOfWeek(t)-this._dateAdapter.getFirstDayOfWeek())%7,this._initWeekdays(),this._createWeekCells(),this._changeDetectorRef.markForCheck()}_focusActiveCell(t){this._matCalendarBody._focusActiveCell(t)}_previewChanged({event:t,value:e}){if(this._rangeStrategy){const i=this._rangeStrategy.createPreview(e?e.rawValue:null,this.selected,t);this._previewStart=this._getCellCompareValue(i.start),this._previewEnd=this._getCellCompareValue(i.end),this._changeDetectorRef.detectChanges()}}_initWeekdays(){const t=this._dateAdapter.getFirstDayOfWeek(),e=this._dateAdapter.getDayOfWeekNames("narrow");let i=this._dateAdapter.getDayOfWeekNames("long").map((t,i)=>({long:t,narrow:e[i]}));this._weekdays=i.slice(t).concat(i.slice(0,t))}_createWeekCells(){const t=this._dateAdapter.getNumDaysInMonth(this.activeDate),e=this._dateAdapter.getDateNames();this._weeks=[[]];for(let i=0,n=this._firstWeekOffset;i=0)&&(!this.maxDate||this._dateAdapter.compareDate(t,this.maxDate)<=0)&&(!this.dateFilter||this.dateFilter(t))}_getDateInCurrentMonth(t){return t&&this._hasSameMonthAndYear(t,this.activeDate)?this._dateAdapter.getDate(t):null}_hasSameMonthAndYear(t,e){return!(!t||!e||this._dateAdapter.getMonth(t)!=this._dateAdapter.getMonth(e)||this._dateAdapter.getYear(t)!=this._dateAdapter.getYear(e))}_getCellCompareValue(t){if(t){const e=this._dateAdapter.getYear(t),i=this._dateAdapter.getMonth(t),n=this._dateAdapter.getDate(t);return new Date(e,i,n).getTime()}return null}_isRtl(){return this._dir&&"rtl"===this._dir.value}_setRanges(t){t instanceof W?(this._rangeStart=this._getCellCompareValue(t.start),this._rangeEnd=this._getCellCompareValue(t.end),this._isRange=!0):(this._rangeStart=this._rangeEnd=this._getCellCompareValue(t),this._isRange=!1),this._comparisonRangeStart=this._getCellCompareValue(this.comparisonStart),this._comparisonRangeEnd=this._getCellCompareValue(this.comparisonEnd)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.sBO),a.Y36(h.sG,8),a.Y36(h._A,8),a.Y36(S.Is,8),a.Y36($,8))},t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-month-view"]],viewQuery:function(t,e){if(1&t&&a.Gf(Y,5),2&t){let t;a.iGM(t=a.CRH())&&(e._matCalendarBody=t.first)}},inputs:{activeDate:"activeDate",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd"},outputs:{selectedChange:"selectedChange",_userSelection:"_userSelection",activeDateChange:"activeDateChange"},exportAs:["matMonthView"],features:[a.TTD],decls:7,vars:13,consts:[["role","presentation",1,"mat-calendar-table"],[1,"mat-calendar-table-header"],["scope","col",4,"ngFor","ngForOf"],["colspan","7","aria-hidden","true",1,"mat-calendar-table-header-divider"],["mat-calendar-body","",3,"label","rows","todayValue","startValue","endValue","comparisonStart","comparisonEnd","previewStart","previewEnd","isRange","labelMinRequiredCells","activeCell","selectedValueChange","previewChange","keydown"],["scope","col"]],template:function(t,e){1&t&&(a.TgZ(0,"table",0),a.TgZ(1,"thead",1),a.TgZ(2,"tr"),a.YNc(3,I,2,2,"th",2),a.qZA(),a.TgZ(4,"tr"),a._UZ(5,"th",3),a.qZA(),a.qZA(),a.TgZ(6,"tbody",4),a.NdJ("selectedValueChange",function(t){return e._dateSelected(t)})("previewChange",function(t){return e._previewChanged(t)})("keydown",function(t){return e._handleCalendarBodyKeydown(t)}),a.qZA(),a.qZA()),2&t&&(a.xp6(3),a.Q6J("ngForOf",e._weekdays),a.xp6(3),a.Q6J("label",e._monthLabel)("rows",e._weeks)("todayValue",e._todayDate)("startValue",e._rangeStart)("endValue",e._rangeEnd)("comparisonStart",e._comparisonRangeStart)("comparisonEnd",e._comparisonRangeEnd)("previewStart",e._previewStart)("previewEnd",e._previewEnd)("isRange",e._isRange)("labelMinRequiredCells",3)("activeCell",e._dateAdapter.getDate(e.activeDate)-1))},directives:[o.sg,Y],encapsulation:2,changeDetection:0}),t})();const et=24;let it=(()=>{class t{constructor(t,e,i){this._changeDetectorRef=t,this._dateAdapter=e,this._dir=i,this._rerenderSubscription=d.w0.EMPTY,this.selectedChange=new a.vpe,this.yearSelected=new a.vpe,this.activeDateChange=new a.vpe,this._activeDate=this._dateAdapter.today()}get activeDate(){return this._activeDate}set activeDate(t){let e=this._activeDate;const i=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(i,this.minDate,this.maxDate),nt(this._dateAdapter,e,this._activeDate,this.minDate,this.maxDate)||this._init()}get selected(){return this._selected}set selected(t){this._selected=t instanceof W?t:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t)),this._setSelectedYear(t)}get minDate(){return this._minDate}set minDate(t){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get maxDate(){return this._maxDate}set maxDate(t){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe((0,y.O)(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_init(){this._todayYear=this._dateAdapter.getYear(this._dateAdapter.today());const t=this._dateAdapter.getYear(this._activeDate)-rt(this._dateAdapter,this.activeDate,this.minDate,this.maxDate);this._years=[];for(let e=0,i=[];ethis._createCellForYear(t))),i=[]);this._changeDetectorRef.markForCheck()}_yearSelected(t){const e=t.value;this.yearSelected.emit(this._dateAdapter.createDate(e,0,1));let i=this._dateAdapter.getMonth(this.activeDate),n=this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate(e,i,1));this.selectedChange.emit(this._dateAdapter.createDate(e,i,Math.min(this._dateAdapter.getDate(this.activeDate),n)))}_handleCalendarBodyKeydown(t){const e=this._activeDate,i=this._isRtl();switch(t.keyCode){case m.oh:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,i?1:-1);break;case m.SV:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,i?-1:1);break;case m.LH:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-4);break;case m.JH:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,4);break;case m.Sd:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-rt(this._dateAdapter,this.activeDate,this.minDate,this.maxDate));break;case m.uR:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,et-rt(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)-1);break;case m.Ku:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,t.altKey?-240:-24);break;case m.VM:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,t.altKey?240:et);break;case m.K5:case m.L_:this._yearSelected({value:this._dateAdapter.getYear(this._activeDate),event:t});break;default:return}this._dateAdapter.compareDate(e,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCell(),t.preventDefault()}_getActiveCell(){return rt(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_createCellForYear(t){const e=this._dateAdapter.createDate(t,0,1),i=this._dateAdapter.getYearName(e),n=this.dateClass?this.dateClass(e,"multi-year"):void 0;return new H(t,i,i,this._shouldEnableYear(t),n)}_shouldEnableYear(t){if(null==t||this.maxDate&&t>this._dateAdapter.getYear(this.maxDate)||this.minDate&&t{class t{constructor(t,e,i,n){this._changeDetectorRef=t,this._dateFormats=e,this._dateAdapter=i,this._dir=n,this._rerenderSubscription=d.w0.EMPTY,this.selectedChange=new a.vpe,this.monthSelected=new a.vpe,this.activeDateChange=new a.vpe,this._activeDate=this._dateAdapter.today()}get activeDate(){return this._activeDate}set activeDate(t){let e=this._activeDate;const i=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(i,this.minDate,this.maxDate),this._dateAdapter.getYear(e)!==this._dateAdapter.getYear(this._activeDate)&&this._init()}get selected(){return this._selected}set selected(t){this._selected=t instanceof W?t:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t)),this._setSelectedMonth(t)}get minDate(){return this._minDate}set minDate(t){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get maxDate(){return this._maxDate}set maxDate(t){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe((0,y.O)(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_monthSelected(t){const e=t.value,i=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1);this.monthSelected.emit(i);const n=this._dateAdapter.getNumDaysInMonth(i);this.selectedChange.emit(this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,Math.min(this._dateAdapter.getDate(this.activeDate),n)))}_handleCalendarBodyKeydown(t){const e=this._activeDate,i=this._isRtl();switch(t.keyCode){case m.oh:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,i?1:-1);break;case m.SV:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,i?-1:1);break;case m.LH:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-4);break;case m.JH:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,4);break;case m.Sd:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-this._dateAdapter.getMonth(this._activeDate));break;case m.uR:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,11-this._dateAdapter.getMonth(this._activeDate));break;case m.Ku:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,t.altKey?-10:-1);break;case m.VM:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,t.altKey?10:1);break;case m.K5:case m.L_:this._monthSelected({value:this._dateAdapter.getMonth(this._activeDate),event:t});break;default:return}this._dateAdapter.compareDate(e,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCell(),t.preventDefault()}_init(){this._setSelectedMonth(this.selected),this._todayMonth=this._getMonthInCurrentYear(this._dateAdapter.today()),this._yearLabel=this._dateAdapter.getYearName(this.activeDate);let t=this._dateAdapter.getMonthNames("short");this._months=[[0,1,2,3],[4,5,6,7],[8,9,10,11]].map(e=>e.map(e=>this._createCellForMonth(e,t[e]))),this._changeDetectorRef.markForCheck()}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_getMonthInCurrentYear(t){return t&&this._dateAdapter.getYear(t)==this._dateAdapter.getYear(this.activeDate)?this._dateAdapter.getMonth(t):null}_createCellForMonth(t,e){const i=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),t,1),n=this._dateAdapter.format(i,this._dateFormats.display.monthYearA11yLabel),r=this.dateClass?this.dateClass(i,"year"):void 0;return new H(t,e.toLocaleUpperCase(),n,this._shouldEnableMonth(t),r)}_shouldEnableMonth(t){const e=this._dateAdapter.getYear(this.activeDate);if(null==t||this._isYearAndMonthAfterMaxDate(e,t)||this._isYearAndMonthBeforeMinDate(e,t))return!1;if(!this.dateFilter)return!0;for(let i=this._dateAdapter.createDate(e,t,1);this._dateAdapter.getMonth(i)==t;i=this._dateAdapter.addCalendarDays(i,1))if(this.dateFilter(i))return!0;return!1}_isYearAndMonthAfterMaxDate(t,e){if(this.maxDate){const i=this._dateAdapter.getYear(this.maxDate),n=this._dateAdapter.getMonth(this.maxDate);return t>i||t===i&&e>n}return!1}_isYearAndMonthBeforeMinDate(t,e){if(this.minDate){const i=this._dateAdapter.getYear(this.minDate),n=this._dateAdapter.getMonth(this.minDate);return t{class t{constructor(t,e,i,n,r){this._intl=t,this.calendar=e,this._dateAdapter=i,this._dateFormats=n,this._buttonDescriptionId="mat-calendar-button-"+at++,this.calendar.stateChanges.subscribe(()=>r.markForCheck())}get periodButtonText(){if("month"==this.calendar.currentView)return this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase();if("year"==this.calendar.currentView)return this._dateAdapter.getYearName(this.calendar.activeDate);const t=this._dateAdapter.getYear(this.calendar.activeDate)-rt(this._dateAdapter,this.calendar.activeDate,this.calendar.minDate,this.calendar.maxDate),e=t+et-1,i=this._dateAdapter.getYearName(this._dateAdapter.createDate(t,0,1)),n=this._dateAdapter.getYearName(this._dateAdapter.createDate(e,0,1));return this._intl.formatYearRange(i,n)}get periodButtonLabel(){return"month"==this.calendar.currentView?this._intl.switchToMultiYearViewLabel:this._intl.switchToMonthViewLabel}get prevButtonLabel(){return{month:this._intl.prevMonthLabel,year:this._intl.prevYearLabel,"multi-year":this._intl.prevMultiYearLabel}[this.calendar.currentView]}get nextButtonLabel(){return{month:this._intl.nextMonthLabel,year:this._intl.nextYearLabel,"multi-year":this._intl.nextMultiYearLabel}[this.calendar.currentView]}currentPeriodClicked(){this.calendar.currentView="month"==this.calendar.currentView?"multi-year":"month"}previousClicked(){this.calendar.activeDate="month"==this.calendar.currentView?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,-1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,"year"==this.calendar.currentView?-1:-24)}nextClicked(){this.calendar.activeDate="month"==this.calendar.currentView?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,"year"==this.calendar.currentView?1:et)}previousEnabled(){return!this.calendar.minDate||!this.calendar.minDate||!this._isSameView(this.calendar.activeDate,this.calendar.minDate)}nextEnabled(){return!this.calendar.maxDate||!this._isSameView(this.calendar.activeDate,this.calendar.maxDate)}_isSameView(t,e){return"month"==this.calendar.currentView?this._dateAdapter.getYear(t)==this._dateAdapter.getYear(e)&&this._dateAdapter.getMonth(t)==this._dateAdapter.getMonth(e):"year"==this.calendar.currentView?this._dateAdapter.getYear(t)==this._dateAdapter.getYear(e):nt(this._dateAdapter,t,e,this.calendar.minDate,this.calendar.maxDate)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(z),a.Y36((0,a.Gpc)(()=>ct)),a.Y36(h._A,8),a.Y36(h.sG,8),a.Y36(a.sBO))},t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-calendar-header"]],exportAs:["matCalendarHeader"],ngContentSelectors:O,decls:10,vars:10,consts:[[1,"mat-calendar-header"],[1,"mat-calendar-controls"],["mat-button","","type","button","cdkAriaLive","polite",1,"mat-calendar-period-button",3,"click"],[1,"mat-calendar-arrow"],[1,"mat-calendar-spacer"],["mat-icon-button","","type","button",1,"mat-calendar-previous-button",3,"disabled","click"],["mat-icon-button","","type","button",1,"mat-calendar-next-button",3,"disabled","click"]],template:function(t,e){1&t&&(a.F$t(),a.TgZ(0,"div",0),a.TgZ(1,"div",1),a.TgZ(2,"button",2),a.NdJ("click",function(){return e.currentPeriodClicked()}),a.TgZ(3,"span"),a._uU(4),a.qZA(),a._UZ(5,"div",3),a.qZA(),a._UZ(6,"div",4),a.Hsn(7),a.TgZ(8,"button",5),a.NdJ("click",function(){return e.previousClicked()}),a.qZA(),a.TgZ(9,"button",6),a.NdJ("click",function(){return e.nextClicked()}),a.qZA(),a.qZA(),a.qZA()),2&t&&(a.xp6(2),a.uIk("aria-label",e.periodButtonLabel)("aria-describedby",e._buttonDescriptionId),a.xp6(1),a.uIk("id",e._buttonDescriptionId),a.xp6(1),a.Oqu(e.periodButtonText),a.xp6(1),a.ekj("mat-calendar-invert","month"!==e.calendar.currentView),a.xp6(3),a.Q6J("disabled",!e.previousEnabled()),a.uIk("aria-label",e.prevButtonLabel),a.xp6(1),a.Q6J("disabled",!e.nextEnabled()),a.uIk("aria-label",e.nextButtonLabel))},directives:[l.lW,n.Qr],encapsulation:2,changeDetection:0}),t})(),ct=(()=>{class t{constructor(t,e,i,n){this._dateAdapter=e,this._dateFormats=i,this._changeDetectorRef=n,this._moveFocusOnNextTick=!1,this.startView="month",this.selectedChange=new a.vpe,this.yearSelected=new a.vpe,this.monthSelected=new a.vpe,this.viewChanged=new a.vpe(!0),this._userSelection=new a.vpe,this.stateChanges=new u.x,this._intlChanges=t.changes.subscribe(()=>{n.markForCheck(),this.stateChanges.next()})}get startAt(){return this._startAt}set startAt(t){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get selected(){return this._selected}set selected(t){this._selected=t instanceof W?t:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get minDate(){return this._minDate}set minDate(t){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get maxDate(){return this._maxDate}set maxDate(t){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get activeDate(){return this._clampedActiveDate}set activeDate(t){this._clampedActiveDate=this._dateAdapter.clampDate(t,this.minDate,this.maxDate),this.stateChanges.next(),this._changeDetectorRef.markForCheck()}get currentView(){return this._currentView}set currentView(t){const e=this._currentView!==t?t:null;this._currentView=t,this._moveFocusOnNextTick=!0,this._changeDetectorRef.markForCheck(),e&&this.viewChanged.emit(e)}ngAfterContentInit(){this._calendarHeaderPortal=new s.C5(this.headerComponent||lt),this.activeDate=this.startAt||this._dateAdapter.today(),this._currentView=this.startView}ngAfterViewChecked(){this._moveFocusOnNextTick&&(this._moveFocusOnNextTick=!1,this.focusActiveCell())}ngOnDestroy(){this._intlChanges.unsubscribe(),this.stateChanges.complete()}ngOnChanges(t){const e=t.minDate||t.maxDate||t.dateFilter;if(e&&!e.firstChange){const t=this._getCurrentViewComponent();t&&(this._changeDetectorRef.detectChanges(),t._init())}this.stateChanges.next()}focusActiveCell(){this._getCurrentViewComponent()._focusActiveCell(!1)}updateTodaysDate(){const t=this.currentView;let e;e="month"===t?this.monthView:"year"===t?this.yearView:this.multiYearView,e._init()}_dateSelected(t){const e=t.value;(this.selected instanceof W||e&&!this._dateAdapter.sameDate(e,this.selected))&&this.selectedChange.emit(e),this._userSelection.emit(t)}_yearSelectedInMultiYearView(t){this.yearSelected.emit(t)}_monthSelectedInYearView(t){this.monthSelected.emit(t)}_goToDateInView(t,e){this.activeDate=t,this.currentView=e}_getCurrentViewComponent(){return this.monthView||this.yearView||this.multiYearView}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(z),a.Y36(h._A,8),a.Y36(h.sG,8),a.Y36(a.sBO))},t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-calendar"]],viewQuery:function(t,e){if(1&t&&(a.Gf(tt,5),a.Gf(ot,5),a.Gf(it,5)),2&t){let t;a.iGM(t=a.CRH())&&(e.monthView=t.first),a.iGM(t=a.CRH())&&(e.yearView=t.first),a.iGM(t=a.CRH())&&(e.multiYearView=t.first)}},hostAttrs:[1,"mat-calendar"],inputs:{startView:"startView",startAt:"startAt",selected:"selected",minDate:"minDate",maxDate:"maxDate",headerComponent:"headerComponent",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd"},outputs:{selectedChange:"selectedChange",yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",_userSelection:"_userSelection"},exportAs:["matCalendar"],features:[a._Bn([K]),a.TTD],decls:5,vars:5,consts:[[3,"cdkPortalOutlet"],["cdkMonitorSubtreeFocus","","tabindex","-1",1,"mat-calendar-content",3,"ngSwitch"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","activeDateChange","_userSelection",4,"ngSwitchCase"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","monthSelected","selectedChange",4,"ngSwitchCase"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","yearSelected","selectedChange",4,"ngSwitchCase"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","activeDateChange","_userSelection"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","monthSelected","selectedChange"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","yearSelected","selectedChange"]],template:function(t,e){1&t&&(a.YNc(0,D,0,0,"ng-template",0),a.TgZ(1,"div",1),a.YNc(2,R,1,8,"mat-month-view",2),a.YNc(3,N,1,6,"mat-year-view",3),a.YNc(4,P,1,6,"mat-multi-year-view",4),a.qZA()),2&t&&(a.Q6J("cdkPortalOutlet",e._calendarHeaderPortal),a.xp6(1),a.Q6J("ngSwitch",e.currentView),a.xp6(1),a.Q6J("ngSwitchCase","month"),a.xp6(1),a.Q6J("ngSwitchCase","year"),a.xp6(1),a.Q6J("ngSwitchCase","multi-year"))},directives:[s.Pl,n.kH,o.RF,o.n9,tt,ot,it],styles:['.mat-calendar{display:block}.mat-calendar-header{padding:8px 8px 0 8px}.mat-calendar-content{padding:0 8px 8px 8px;outline:none}.mat-calendar-controls{display:flex;margin:5% calc(33% / 7 - 16px)}.mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:.04}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0}.mat-calendar-arrow{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top-width:5px;border-top-style:solid;margin:0 0 0 5px;vertical-align:middle}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}.mat-calendar-previous-button,.mat-calendar-next-button{position:relative}.mat-calendar-previous-button::after,.mat-calendar-next-button::after{top:0;left:0;right:0;bottom:0;position:absolute;content:"";margin:15.5px;border:0 solid currentColor;border-top-width:2px}[dir=rtl] .mat-calendar-previous-button,[dir=rtl] .mat-calendar-next-button{transform:rotate(180deg)}.mat-calendar-previous-button::after{border-left-width:2px;transform:translateX(2px) rotate(-45deg)}.mat-calendar-next-button::after{border-right-width:2px;transform:translateX(-2px) rotate(45deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px 0}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:"";position:absolute;top:0;left:-8px;right:-8px;height:1px}\n'],encapsulation:2,changeDetection:0}),t})();const ht={transformPanel:(0,w.X$)("transformPanel",[(0,w.eR)("void => enter-dropdown",(0,w.jt)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,w.F4)([(0,w.oB)({opacity:0,transform:"scale(1, 0.8)"}),(0,w.oB)({opacity:1,transform:"scale(1, 1)"})]))),(0,w.eR)("void => enter-dialog",(0,w.jt)("150ms cubic-bezier(0, 0, 0.2, 1)",(0,w.F4)([(0,w.oB)({opacity:0,transform:"scale(0.7)"}),(0,w.oB)({transform:"none",opacity:1})]))),(0,w.eR)("* => void",(0,w.jt)("100ms linear",(0,w.oB)({opacity:0})))]),fadeInCalendar:(0,w.X$)("fadeInCalendar",[(0,w.SB)("void",(0,w.oB)({opacity:0})),(0,w.SB)("enter",(0,w.oB)({opacity:1})),(0,w.eR)("void => *",(0,w.jt)("120ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)"))])};let ut=0;const dt=new a.OlP("mat-datepicker-scroll-strategy"),pt={provide:dt,deps:[r.aV],useFactory:function(t){return()=>t.scrollStrategies.reposition()}};class ft{constructor(t){this._elementRef=t}}const mt=(0,h.pj)(ft);let gt=(()=>{class t extends mt{constructor(t,e,i,n,r,s){super(t),this._changeDetectorRef=e,this._globalModel=i,this._dateAdapter=n,this._rangeSelectionStrategy=r,this._subscriptions=new d.w0,this._animationDone=new u.x,this._actionsPortal=null,this._closeButtonText=s.closeCalendarLabel}ngOnInit(){this._model=this._actionsPortal?this._globalModel.clone():this._globalModel,this._animationState=this.datepicker.touchUi?"enter-dialog":"enter-dropdown"}ngAfterViewInit(){this._subscriptions.add(this.datepicker.stateChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})),this._calendar.focusActiveCell()}ngOnDestroy(){this._subscriptions.unsubscribe(),this._animationDone.complete()}_handleUserSelection(t){const e=this._model.selection,i=t.value,n=e instanceof W;if(n&&this._rangeSelectionStrategy){const n=this._rangeSelectionStrategy.selectionFinished(i,e,t.event);this._model.updateSelection(n,this)}else!i||!n&&this._dateAdapter.sameDate(i,e)||this._model.add(i);this._model&&!this._model.isComplete()||this._actionsPortal||this.datepicker.close()}_startExitAnimation(){this._animationState="void",this._changeDetectorRef.markForCheck()}_getSelected(){return this._model.selection}_applyPendingSelection(){this._model!==this._globalModel&&this._globalModel.updateSelection(this._model.selection,this)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(a.sBO),a.Y36(J),a.Y36(h._A),a.Y36($,8),a.Y36(z))},t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-datepicker-content"]],viewQuery:function(t,e){if(1&t&&a.Gf(ct,5),2&t){let t;a.iGM(t=a.CRH())&&(e._calendar=t.first)}},hostAttrs:[1,"mat-datepicker-content"],hostVars:3,hostBindings:function(t,e){1&t&&a.WFA("@transformPanel.done",function(){return e._animationDone.next()}),2&t&&(a.d8E("@transformPanel",e._animationState),a.ekj("mat-datepicker-content-touch",e.datepicker.touchUi))},inputs:{color:"color"},exportAs:["matDatepickerContent"],features:[a.qOj],decls:5,vars:20,consts:[["cdkTrapFocus","",1,"mat-datepicker-content-container"],[3,"id","ngClass","startAt","startView","minDate","maxDate","dateFilter","headerComponent","selected","dateClass","comparisonStart","comparisonEnd","yearSelected","monthSelected","viewChanged","_userSelection"],[3,"cdkPortalOutlet"],["type","button","mat-raised-button","",1,"mat-datepicker-close-button",3,"color","focus","blur","click"]],template:function(t,e){1&t&&(a.TgZ(0,"div",0),a.TgZ(1,"mat-calendar",1),a.NdJ("yearSelected",function(t){return e.datepicker._selectYear(t)})("monthSelected",function(t){return e.datepicker._selectMonth(t)})("viewChanged",function(t){return e.datepicker._viewChanged(t)})("_userSelection",function(t){return e._handleUserSelection(t)}),a.qZA(),a.YNc(2,F,0,0,"ng-template",2),a.TgZ(3,"button",3),a.NdJ("focus",function(){return e._closeButtonFocused=!0})("blur",function(){return e._closeButtonFocused=!1})("click",function(){return e.datepicker.close()}),a._uU(4),a.qZA(),a.qZA()),2&t&&(a.ekj("mat-datepicker-content-container-with-actions",e._actionsPortal),a.xp6(1),a.Q6J("id",e.datepicker.id)("ngClass",e.datepicker.panelClass)("startAt",e.datepicker.startAt)("startView",e.datepicker.startView)("minDate",e.datepicker._getMinDate())("maxDate",e.datepicker._getMaxDate())("dateFilter",e.datepicker._getDateFilter())("headerComponent",e.datepicker.calendarHeaderComponent)("selected",e._getSelected())("dateClass",e.datepicker.dateClass)("comparisonStart",e.comparisonStart)("comparisonEnd",e.comparisonEnd)("@fadeInCalendar","enter"),a.xp6(1),a.Q6J("cdkPortalOutlet",e._actionsPortal),a.xp6(1),a.ekj("cdk-visually-hidden",!e._closeButtonFocused),a.Q6J("color",e.color||"primary"),a.xp6(1),a.Oqu(e._closeButtonText))},directives:[n.mK,ct,o.mk,s.Pl,l.lW],styles:[".mat-datepicker-content{display:block;border-radius:4px}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content .mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}.ng-animating .mat-datepicker-content .mat-datepicker-close-button{display:none}.mat-datepicker-content-container{display:flex;flex-direction:column;justify-content:space-between}.mat-datepicker-content-touch{display:block;max-height:80vh;position:relative;overflow:visible}.mat-datepicker-content-touch .mat-datepicker-content-container{min-height:312px;max-height:788px;min-width:250px;max-width:750px}.mat-datepicker-content-touch .mat-calendar{width:100%;height:auto}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-datepicker-content-container{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-datepicker-content-container{width:80vw;height:100vw}.mat-datepicker-content-touch .mat-datepicker-content-container-with-actions{height:115vw}}\n"],encapsulation:2,data:{animation:[ht.transformPanel,ht.fadeInCalendar]},changeDetection:0}),t})(),yt=(()=>{class t{constructor(t,e,i,n,r,s,o,l,c){this._overlay=e,this._ngZone=i,this._viewContainerRef=n,this._dateAdapter=s,this._dir=o,this._model=c,this._inputStateChanges=d.w0.EMPTY,this.startView="month",this._touchUi=!1,this.xPosition="start",this.yPosition="below",this._restoreFocus=!0,this.yearSelected=new a.vpe,this.monthSelected=new a.vpe,this.viewChanged=new a.vpe(!0),this.openedStream=new a.vpe,this.closedStream=new a.vpe,this._opened=!1,this.id="mat-datepicker-"+ut++,this._focusedElementBeforeOpen=null,this._backdropHarnessClass=`${this.id}-backdrop`,this.stateChanges=new u.x,this._scrollStrategy=r}get startAt(){return this._startAt||(this.datepickerInput?this.datepickerInput.getStartValue():null)}set startAt(t){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t))}get color(){return this._color||(this.datepickerInput?this.datepickerInput.getThemePalette():void 0)}set color(t){this._color=t}get touchUi(){return this._touchUi}set touchUi(t){this._touchUi=(0,v.Ig)(t)}get disabled(){return void 0===this._disabled&&this.datepickerInput?this.datepickerInput.disabled:!!this._disabled}set disabled(t){const e=(0,v.Ig)(t);e!==this._disabled&&(this._disabled=e,this.stateChanges.next(void 0))}get restoreFocus(){return this._restoreFocus}set restoreFocus(t){this._restoreFocus=(0,v.Ig)(t)}get panelClass(){return this._panelClass}set panelClass(t){this._panelClass=(0,v.du)(t)}get opened(){return this._opened}set opened(t){(0,v.Ig)(t)?this.open():this.close()}_getMinDate(){return this.datepickerInput&&this.datepickerInput.min}_getMaxDate(){return this.datepickerInput&&this.datepickerInput.max}_getDateFilter(){return this.datepickerInput&&this.datepickerInput.dateFilter}ngOnChanges(t){const e=t.xPosition||t.yPosition;if(e&&!e.firstChange&&this._overlayRef){const t=this._overlayRef.getConfig().positionStrategy;t instanceof r._G&&(this._setConnectedPositions(t),this.opened&&this._overlayRef.updatePosition())}this.stateChanges.next(void 0)}ngOnDestroy(){this._destroyOverlay(),this.close(),this._inputStateChanges.unsubscribe(),this.stateChanges.complete()}select(t){this._model.add(t)}_selectYear(t){this.yearSelected.emit(t)}_selectMonth(t){this.monthSelected.emit(t)}_viewChanged(t){this.viewChanged.emit(t)}registerInput(t){return this._inputStateChanges.unsubscribe(),this.datepickerInput=t,this._inputStateChanges=t.stateChanges.subscribe(()=>this.stateChanges.next(void 0)),this._model}registerActions(t){this._actionsPortal=t}removeActions(t){t===this._actionsPortal&&(this._actionsPortal=null)}open(){this._opened||this.disabled||(this._focusedElementBeforeOpen=(0,_.ht)(),this._openOverlay(),this._opened=!0,this.openedStream.emit())}close(){if(!this._opened)return;if(this._componentRef){const t=this._componentRef.instance;t._startExitAnimation(),t._animationDone.pipe((0,g.q)(1)).subscribe(()=>this._destroyOverlay())}const t=()=>{this._opened&&(this._opened=!1,this.closedStream.emit(),this._focusedElementBeforeOpen=null)};this._restoreFocus&&this._focusedElementBeforeOpen&&"function"==typeof this._focusedElementBeforeOpen.focus?(this._focusedElementBeforeOpen.focus(),setTimeout(t)):t()}_applyPendingSelection(){var t,e;null===(e=null===(t=this._componentRef)||void 0===t?void 0:t.instance)||void 0===e||e._applyPendingSelection()}_forwardContentValues(t){t.datepicker=this,t.color=this.color,t._actionsPortal=this._actionsPortal}_openOverlay(){this._destroyOverlay();const t=this.touchUi,e=this.datepickerInput.getOverlayLabelId(),i=new s.C5(gt,this._viewContainerRef),n=this._overlayRef=this._overlay.create(new r.X_({positionStrategy:t?this._getDialogStrategy():this._getDropdownStrategy(),hasBackdrop:!0,backdropClass:[t?"cdk-overlay-dark-backdrop":"mat-overlay-transparent-backdrop",this._backdropHarnessClass],direction:this._dir,scrollStrategy:t?this._overlay.scrollStrategies.block():this._scrollStrategy(),panelClass:"mat-datepicker-"+(t?"dialog":"popup")})),o=n.overlayElement;o.setAttribute("role","dialog"),e&&o.setAttribute("aria-labelledby",e),t&&o.setAttribute("aria-modal","true"),this._getCloseStream(n).subscribe(t=>{t&&t.preventDefault(),this.close()}),this._componentRef=n.attach(i),this._forwardContentValues(this._componentRef.instance),t||this._ngZone.onStable.pipe((0,g.q)(1)).subscribe(()=>n.updatePosition())}_destroyOverlay(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=this._componentRef=null)}_getDialogStrategy(){return this._overlay.position().global().centerHorizontally().centerVertically()}_getDropdownStrategy(){const t=this._overlay.position().flexibleConnectedTo(this.datepickerInput.getConnectedOverlayOrigin()).withTransformOriginOn(".mat-datepicker-content").withFlexibleDimensions(!1).withViewportMargin(8).withLockedPosition();return this._setConnectedPositions(t)}_setConnectedPositions(t){const e="end"===this.xPosition?"end":"start",i="start"===e?"end":"start",n="above"===this.yPosition?"bottom":"top",r="top"===n?"bottom":"top";return t.withPositions([{originX:e,originY:r,overlayX:e,overlayY:n},{originX:e,originY:n,overlayX:e,overlayY:r},{originX:i,originY:r,overlayX:i,overlayY:n},{originX:i,originY:n,overlayX:i,overlayY:r}])}_getCloseStream(t){return(0,p.T)(t.backdropClick(),t.detachments(),t.keydownEvents().pipe((0,b.h)(t=>t.keyCode===m.hY&&!(0,m.Vb)(t)||this.datepickerInput&&(0,m.Vb)(t,"altKey")&&t.keyCode===m.LH)))}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(r.aV),a.Y36(a.R0b),a.Y36(a.s_b),a.Y36(dt),a.Y36(h._A,8),a.Y36(S.Is,8),a.Y36(o.K0,8),a.Y36(J))},t.\u0275dir=a.lG2({type:t,inputs:{startView:"startView",xPosition:"xPosition",yPosition:"yPosition",startAt:"startAt",color:"color",touchUi:"touchUi",disabled:"disabled",restoreFocus:"restoreFocus",panelClass:"panelClass",opened:"opened",calendarHeaderComponent:"calendarHeaderComponent",dateClass:"dateClass"},outputs:{yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",openedStream:"opened",closedStream:"closed"},features:[a.TTD]}),t})(),bt=(()=>{class t extends yt{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=a.n5z(t)))(i||t)}}(),t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-datepicker"]],exportAs:["matDatepicker"],features:[a._Bn([K,{provide:yt,useExisting:t}]),a.qOj],decls:0,vars:0,template:function(t,e){},encapsulation:2,changeDetection:0}),t})();class vt{constructor(t,e){this.target=t,this.targetElement=e,this.value=this.target.value}}let _t=(()=>{class t{constructor(t,e,i){this._elementRef=t,this._dateAdapter=e,this._dateFormats=i,this.dateChange=new a.vpe,this.dateInput=new a.vpe,this.stateChanges=new u.x,this._onTouched=()=>{},this._validatorOnChange=()=>{},this._cvaOnChange=()=>{},this._valueChangesSubscription=d.w0.EMPTY,this._localeSubscription=d.w0.EMPTY,this._parseValidator=()=>this._lastValueValid?null:{matDatepickerParse:{text:this._elementRef.nativeElement.value}},this._filterValidator=t=>{const e=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t.value));return!e||this._matchesFilter(e)?null:{matDatepickerFilter:!0}},this._minValidator=t=>{const e=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t.value)),i=this._getMinDate();return!i||!e||this._dateAdapter.compareDate(i,e)<=0?null:{matDatepickerMin:{min:i,actual:e}}},this._maxValidator=t=>{const e=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t.value)),i=this._getMaxDate();return!i||!e||this._dateAdapter.compareDate(i,e)>=0?null:{matDatepickerMax:{max:i,actual:e}}},this._lastValueValid=!1,this._localeSubscription=e.localeChanges.subscribe(()=>{this._assignValueProgrammatically(this.value)})}get value(){return this._model?this._getValueFromModel(this._model.selection):this._pendingValue}set value(t){this._assignValueProgrammatically(t)}get disabled(){return!!this._disabled||this._parentDisabled()}set disabled(t){const e=(0,v.Ig)(t),i=this._elementRef.nativeElement;this._disabled!==e&&(this._disabled=e,this.stateChanges.next(void 0)),e&&this._isInitialized&&i.blur&&i.blur()}_getValidators(){return[this._parseValidator,this._minValidator,this._maxValidator,this._filterValidator]}_registerModel(t){this._model=t,this._valueChangesSubscription.unsubscribe(),this._pendingValue&&this._assignValue(this._pendingValue),this._valueChangesSubscription=this._model.selectionChanged.subscribe(t=>{if(this._shouldHandleChangeEvent(t)){const e=this._getValueFromModel(t.selection);this._lastValueValid=this._isValidValue(e),this._cvaOnChange(e),this._onTouched(),this._formatValue(e),this.dateInput.emit(new vt(this,this._elementRef.nativeElement)),this.dateChange.emit(new vt(this,this._elementRef.nativeElement))}})}ngAfterViewInit(){this._isInitialized=!0}ngOnChanges(t){(function(t,e){const i=Object.keys(t);for(let n of i){const{previousValue:i,currentValue:r}=t[n];if(!e.isDateInstance(i)||!e.isDateInstance(r))return!0;if(!e.sameDate(i,r))return!0}return!1})(t,this._dateAdapter)&&this.stateChanges.next(void 0)}ngOnDestroy(){this._valueChangesSubscription.unsubscribe(),this._localeSubscription.unsubscribe(),this.stateChanges.complete()}registerOnValidatorChange(t){this._validatorOnChange=t}validate(t){return this._validator?this._validator(t):null}writeValue(t){this._assignValueProgrammatically(t)}registerOnChange(t){this._cvaOnChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}_onKeydown(t){t.altKey&&t.keyCode===m.JH&&!this._elementRef.nativeElement.readOnly&&(this._openPopup(),t.preventDefault())}_onInput(t){const e=this._lastValueValid;let i=this._dateAdapter.parse(t,this._dateFormats.parse.dateInput);this._lastValueValid=this._isValidValue(i),i=this._dateAdapter.getValidDateOrNull(i),this._dateAdapter.sameDate(i,this.value)?(t&&!this.value&&this._cvaOnChange(i),e!==this._lastValueValid&&this._validatorOnChange()):(this._assignValue(i),this._cvaOnChange(i),this.dateInput.emit(new vt(this,this._elementRef.nativeElement)))}_onChange(){this.dateChange.emit(new vt(this,this._elementRef.nativeElement))}_onBlur(){this.value&&this._formatValue(this.value),this._onTouched()}_formatValue(t){this._elementRef.nativeElement.value=t?this._dateAdapter.format(t,this._dateFormats.display.dateInput):""}_assignValue(t){this._model?(this._assignValueToModel(t),this._pendingValue=null):this._pendingValue=t}_isValidValue(t){return!t||this._dateAdapter.isValid(t)}_parentDisabled(){return!1}_assignValueProgrammatically(t){t=this._dateAdapter.deserialize(t),this._lastValueValid=this._isValidValue(t),t=this._dateAdapter.getValidDateOrNull(t),this._assignValue(t),this._formatValue(t)}_matchesFilter(t){const e=this._getDateFilter();return!e||e(t)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(h._A,8),a.Y36(h.sG,8))},t.\u0275dir=a.lG2({type:t,inputs:{value:"value",disabled:"disabled"},outputs:{dateChange:"dateChange",dateInput:"dateInput"},features:[a.TTD]}),t})();const wt={provide:x.JU,useExisting:(0,a.Gpc)(()=>Ct),multi:!0},xt={provide:x.Cf,useExisting:(0,a.Gpc)(()=>Ct),multi:!0};let Ct=(()=>{class t extends _t{constructor(t,e,i,n){super(t,e,i),this._formField=n,this._closedSubscription=d.w0.EMPTY,this._validator=x.kI.compose(super._getValidators())}set matDatepicker(t){t&&(this._datepicker=t,this._closedSubscription=t.closedStream.subscribe(()=>this._onTouched()),this._registerModel(t.registerInput(this)))}get min(){return this._min}set min(t){const e=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t));this._dateAdapter.sameDate(e,this._min)||(this._min=e,this._validatorOnChange())}get max(){return this._max}set max(t){const e=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t));this._dateAdapter.sameDate(e,this._max)||(this._max=e,this._validatorOnChange())}get dateFilter(){return this._dateFilter}set dateFilter(t){const e=this._matchesFilter(this.value);this._dateFilter=t,this._matchesFilter(this.value)!==e&&this._validatorOnChange()}getConnectedOverlayOrigin(){return this._formField?this._formField.getConnectedOverlayOrigin():this._elementRef}getOverlayLabelId(){return this._formField?this._formField.getLabelId():this._elementRef.nativeElement.getAttribute("aria-labelledby")}getThemePalette(){return this._formField?this._formField.color:void 0}getStartValue(){return this.value}ngOnDestroy(){super.ngOnDestroy(),this._closedSubscription.unsubscribe()}_openPopup(){this._datepicker&&this._datepicker.open()}_getValueFromModel(t){return t}_assignValueToModel(t){this._model&&this._model.updateSelection(t,this)}_getMinDate(){return this._min}_getMaxDate(){return this._max}_getDateFilter(){return this._dateFilter}_shouldHandleChangeEvent(t){return t.source!==this}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(h._A,8),a.Y36(h.sG,8),a.Y36(C.G_,8))},t.\u0275dir=a.lG2({type:t,selectors:[["input","matDatepicker",""]],hostAttrs:[1,"mat-datepicker-input"],hostVars:6,hostBindings:function(t,e){1&t&&a.NdJ("input",function(t){return e._onInput(t.target.value)})("change",function(){return e._onChange()})("blur",function(){return e._onBlur()})("keydown",function(t){return e._onKeydown(t)}),2&t&&(a.Ikx("disabled",e.disabled),a.uIk("aria-haspopup",e._datepicker?"dialog":null)("aria-owns",(null==e._datepicker?null:e._datepicker.opened)&&e._datepicker.id||null)("min",e.min?e._dateAdapter.toIso8601(e.min):null)("max",e.max?e._dateAdapter.toIso8601(e.max):null)("data-mat-calendar",e._datepicker?e._datepicker.id:null))},inputs:{matDatepicker:"matDatepicker",min:"min",max:"max",dateFilter:["matDatepickerFilter","dateFilter"]},exportAs:["matDatepickerInput"],features:[a._Bn([wt,xt,{provide:A.Jk,useExisting:t}]),a.qOj]}),t})(),At=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=a.lG2({type:t,selectors:[["","matDatepickerToggleIcon",""]]}),t})(),St=(()=>{class t{constructor(t,e,i){this._intl=t,this._changeDetectorRef=e,this._stateChanges=d.w0.EMPTY;const n=Number(i);this.tabIndex=n||0===n?n:null}get disabled(){return void 0===this._disabled&&this.datepicker?this.datepicker.disabled:!!this._disabled}set disabled(t){this._disabled=(0,v.Ig)(t)}ngOnChanges(t){t.datepicker&&this._watchStateChanges()}ngOnDestroy(){this._stateChanges.unsubscribe()}ngAfterContentInit(){this._watchStateChanges()}_open(t){this.datepicker&&!this.disabled&&(this.datepicker.open(),t.stopPropagation())}_watchStateChanges(){const t=this.datepicker?this.datepicker.stateChanges:(0,f.of)(),e=this.datepicker&&this.datepicker.datepickerInput?this.datepicker.datepickerInput.stateChanges:(0,f.of)(),i=this.datepicker?(0,p.T)(this.datepicker.openedStream,this.datepicker.closedStream):(0,f.of)();this._stateChanges.unsubscribe(),this._stateChanges=(0,p.T)(this._intl.changes,t,e,i).subscribe(()=>this._changeDetectorRef.markForCheck())}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(z),a.Y36(a.sBO),a.$8M("tabindex"))},t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-datepicker-toggle"]],contentQueries:function(t,e,i){if(1&t&&a.Suo(i,At,5),2&t){let t;a.iGM(t=a.CRH())&&(e._customIcon=t.first)}},viewQuery:function(t,e){if(1&t&&a.Gf(Z,5),2&t){let t;a.iGM(t=a.CRH())&&(e._button=t.first)}},hostAttrs:[1,"mat-datepicker-toggle"],hostVars:8,hostBindings:function(t,e){1&t&&a.NdJ("click",function(t){return e._open(t)}),2&t&&(a.uIk("tabindex",null)("data-mat-calendar",e.datepicker?e.datepicker.id:null),a.ekj("mat-datepicker-toggle-active",e.datepicker&&e.datepicker.opened)("mat-accent",e.datepicker&&"accent"===e.datepicker.color)("mat-warn",e.datepicker&&"warn"===e.datepicker.color))},inputs:{tabIndex:"tabIndex",disabled:"disabled",datepicker:["for","datepicker"],ariaLabel:["aria-label","ariaLabel"],disableRipple:"disableRipple"},exportAs:["matDatepickerToggle"],features:[a.TTD],ngContentSelectors:q,decls:4,vars:6,consts:[["mat-icon-button","","type","button",3,"disabled","disableRipple"],["button",""],["class","mat-datepicker-toggle-default-icon","viewBox","0 0 24 24","width","24px","height","24px","fill","currentColor","focusable","false",4,"ngIf"],["viewBox","0 0 24 24","width","24px","height","24px","fill","currentColor","focusable","false",1,"mat-datepicker-toggle-default-icon"],["d","M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"]],template:function(t,e){1&t&&(a.F$t(U),a.TgZ(0,"button",0,1),a.YNc(2,B,2,0,"svg",2),a.Hsn(3),a.qZA()),2&t&&(a.Q6J("disabled",e.disabled)("disableRipple",e.disableRipple),a.uIk("aria-haspopup",e.datepicker?"dialog":null)("aria-label",e.ariaLabel||e._intl.openCalendarLabel)("tabindex",e.disabled?-1:e.tabIndex),a.xp6(2),a.Q6J("ngIf",!e._customIcon))},directives:[l.lW,o.O5],styles:[".mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-datepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-datepicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-datepicker-toggle-default-icon{margin:auto}.cdk-high-contrast-active .mat-datepicker-toggle-default-icon{color:CanvasText}\n"],encapsulation:2,changeDetection:0}),t})(),Et=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=a.oAB({type:t}),t.\u0275inj=a.cJS({providers:[z,pt],imports:[[o.ez,l.ot,r.U8,n.rt,s.eL,h.BQ],c.ZD]}),t})()},4608:(t,e,i)=>{"use strict";i.d(e,{WI:()=>k,Bq:()=>T,uw:()=>O,ZT:()=>D,Is:()=>R,so:()=>S});var n=i(369),r=i(6899),s=i(1572),o=i(1522),a=i(2526),l=i(1511),c=i(9666),h=i(970),u=i(2041),d=i(8868),p=i(9056),f=i(1258),m=i(1353),g=i(709),y=i(5842),b=i(4621);function v(t,e){}class _{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.autoFocus=!0,this.restoreFocus=!0,this.closeOnNavigation=!0}}const w={dialogContainer:(0,g.X$)("dialogContainer",[(0,g.SB)("void, exit",(0,g.oB)({opacity:0,transform:"scale(0.7)"})),(0,g.SB)("enter",(0,g.oB)({transform:"none"})),(0,g.eR)("* => enter",(0,g.jt)("150ms cubic-bezier(0, 0, 0.2, 1)",(0,g.oB)({transform:"none",opacity:1}))),(0,g.eR)("* => void, * => exit",(0,g.jt)("75ms cubic-bezier(0.4, 0.0, 0.2, 1)",(0,g.oB)({opacity:0})))])};let x=(()=>{class t extends r.en{constructor(t,e,i,n,r,o){super(),this._elementRef=t,this._focusTrapFactory=e,this._changeDetectorRef=i,this._config=r,this._focusMonitor=o,this._animationStateChanged=new s.vpe,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this.attachDomPortal=t=>(this._portalOutlet.hasAttached(),this._portalOutlet.attachDomPortal(t)),this._ariaLabelledBy=r.ariaLabelledBy||null,this._document=n}_initializeWithAttachedContent(){this._setupFocusTrap(),this._capturePreviouslyFocusedElement(),this._focusDialogContainer()}attachComponentPortal(t){return this._portalOutlet.hasAttached(),this._portalOutlet.attachComponentPortal(t)}attachTemplatePortal(t){return this._portalOutlet.hasAttached(),this._portalOutlet.attachTemplatePortal(t)}_recaptureFocus(){this._containsFocus()||(!this._config.autoFocus||!this._focusTrap.focusInitialElement())&&this._elementRef.nativeElement.focus()}_trapFocus(){this._config.autoFocus?this._focusTrap.focusInitialElementWhenReady():this._containsFocus()||this._elementRef.nativeElement.focus()}_restoreFocus(){const t=this._elementFocusedBeforeDialogWasOpened;if(this._config.restoreFocus&&t&&"function"==typeof t.focus){const e=(0,m.ht)(),i=this._elementRef.nativeElement;e&&e!==this._document.body&&e!==i&&!i.contains(e)||(this._focusMonitor?(this._focusMonitor.focusVia(t,this._closeInteractionType),this._closeInteractionType=null):t.focus())}this._focusTrap&&this._focusTrap.destroy()}_setupFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement)}_capturePreviouslyFocusedElement(){this._document&&(this._elementFocusedBeforeDialogWasOpened=(0,m.ht)())}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const t=this._elementRef.nativeElement,e=(0,m.ht)();return t===e||t.contains(e)}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.SBq),s.Y36(b.qV),s.Y36(s.sBO),s.Y36(l.K0,8),s.Y36(_),s.Y36(b.tE))},t.\u0275dir=s.lG2({type:t,viewQuery:function(t,e){if(1&t&&s.Gf(r.Pl,7),2&t){let t;s.iGM(t=s.CRH())&&(e._portalOutlet=t.first)}},features:[s.qOj]}),t})(),C=(()=>{class t extends x{constructor(){super(...arguments),this._state="enter"}_onAnimationDone({toState:t,totalTime:e}){"enter"===t?(this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})):"exit"===t&&(this._restoreFocus(),this._animationStateChanged.next({state:"closed",totalTime:e}))}_onAnimationStart({toState:t,totalTime:e}){"enter"===t?this._animationStateChanged.next({state:"opening",totalTime:e}):"exit"!==t&&"void"!==t||this._animationStateChanged.next({state:"closing",totalTime:e})}_startExitAnimation(){this._state="exit",this._changeDetectorRef.markForCheck()}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1","aria-modal","true",1,"mat-dialog-container"],hostVars:6,hostBindings:function(t,e){1&t&&s.WFA("@dialogContainer.start",function(t){return e._onAnimationStart(t)})("@dialogContainer.done",function(t){return e._onAnimationDone(t)}),2&t&&(s.Ikx("id",e._id),s.uIk("role",e._config.role)("aria-labelledby",e._config.ariaLabel?null:e._ariaLabelledBy)("aria-label",e._config.ariaLabel)("aria-describedby",e._config.ariaDescribedBy||null),s.d8E("@dialogContainer",e._state))},features:[s.qOj],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(t,e){1&t&&s.YNc(0,v,0,0,"ng-template",0)},directives:[r.Pl],styles:[".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"],encapsulation:2,data:{animation:[w.dialogContainer]}}),t})(),A=0;class S{constructor(t,e,i="mat-dialog-"+A++){this._overlayRef=t,this._containerInstance=e,this.id=i,this.disableClose=this._containerInstance._config.disableClose,this._afterOpened=new c.x,this._afterClosed=new c.x,this._beforeClosed=new c.x,this._state=0,e._id=i,e._animationStateChanged.pipe((0,d.h)(t=>"opened"===t.state),(0,p.q)(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),e._animationStateChanged.pipe((0,d.h)(t=>"closed"===t.state),(0,p.q)(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._afterClosed.next(this._result),this._afterClosed.complete(),this.componentInstance=null,this._overlayRef.dispose()}),t.keydownEvents().pipe((0,d.h)(t=>t.keyCode===y.hY&&!this.disableClose&&!(0,y.Vb)(t))).subscribe(t=>{t.preventDefault(),E(this,"keyboard")}),t.backdropClick().subscribe(()=>{this.disableClose?this._containerInstance._recaptureFocus():E(this,"mouse")})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe((0,d.h)(t=>"closing"===t.state),(0,p.q)(1)).subscribe(e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._afterClosed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._overlayRef.backdropClick()}keydownEvents(){return this._overlayRef.keydownEvents()}updatePosition(t){let e=this._getPositionStrategy();return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._overlayRef.updatePosition(),this}updateSize(t="",e=""){return this._overlayRef.updateSize({width:t,height:e}),this._overlayRef.updatePosition(),this}addPanelClass(t){return this._overlayRef.addPanelClass(t),this}removePanelClass(t){return this._overlayRef.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._overlayRef.dispose()}_getPositionStrategy(){return this._overlayRef.getConfig().positionStrategy}}function E(t,e,i){return void 0!==t._containerInstance&&(t._containerInstance._closeInteractionType=e),t.close(i)}const k=new s.OlP("MatDialogData"),T=new s.OlP("mat-dialog-default-options"),M=new s.OlP("mat-dialog-scroll-strategy"),L={provide:M,deps:[n.aV],useFactory:function(t){return()=>t.scrollStrategies.block()}};let I=(()=>{class t{constructor(t,e,i,n,r,s,o,a,l){this._overlay=t,this._injector=e,this._defaultOptions=i,this._parentDialog=n,this._overlayContainer=r,this._dialogRefConstructor=o,this._dialogContainerType=a,this._dialogDataToken=l,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new c.x,this._afterOpenedAtThisLevel=new c.x,this._ariaHiddenElements=new Map,this.afterAllClosed=(0,h.P)(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe((0,f.O)(void 0))),this._scrollStrategy=s}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const t=this._parentDialog;return t?t._getAfterAllClosed():this._afterAllClosedAtThisLevel}open(t,e){(e=function(t,e){return Object.assign(Object.assign({},e),t)}(e,this._defaultOptions||new _)).id&&this.getDialogById(e.id);const i=this._createOverlay(e),n=this._attachDialogContainer(i,e),r=this._attachDialogContent(t,n,i,e);return this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(r),r.afterClosed().subscribe(()=>this._removeOpenDialog(r)),this.afterOpened.next(r),n._initializeWithAttachedContent(),r}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(t){return this.openDialogs.find(e=>e.id===t)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_createOverlay(t){const e=this._getOverlayConfig(t);return this._overlay.create(e)}_getOverlayConfig(t){const e=new n.X_({positionStrategy:this._overlay.position().global(),scrollStrategy:t.scrollStrategy||this._scrollStrategy(),panelClass:t.panelClass,hasBackdrop:t.hasBackdrop,direction:t.direction,minWidth:t.minWidth,minHeight:t.minHeight,maxWidth:t.maxWidth,maxHeight:t.maxHeight,disposeOnNavigation:t.closeOnNavigation});return t.backdropClass&&(e.backdropClass=t.backdropClass),e}_attachDialogContainer(t,e){const i=s.zs3.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:_,useValue:e}]}),n=new r.C5(this._dialogContainerType,e.viewContainerRef,i,e.componentFactoryResolver);return t.attach(n).instance}_attachDialogContent(t,e,i,n){const o=new this._dialogRefConstructor(i,e,n.id);if(t instanceof s.Rgc)e.attachTemplatePortal(new r.UE(t,null,{$implicit:n.data,dialogRef:o}));else{const i=this._createInjector(n,o,e),s=e.attachComponentPortal(new r.C5(t,n.viewContainerRef,i));o.componentInstance=s.instance}return o.updateSize(n.width,n.height).updatePosition(n.position),o}_createInjector(t,e,i){const n=t&&t.viewContainerRef&&t.viewContainerRef.injector,r=[{provide:this._dialogContainerType,useValue:i},{provide:this._dialogDataToken,useValue:t.data},{provide:this._dialogRefConstructor,useValue:e}];return!t.direction||n&&n.get(a.Is,null,s.XFs.Optional)||r.push({provide:a.Is,useValue:{value:t.direction,change:(0,u.of)()}}),s.zs3.create({parent:n||this._injector,providers:r})}_removeOpenDialog(t){const e=this.openDialogs.indexOf(t);e>-1&&(this.openDialogs.splice(e,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((t,e)=>{t?e.setAttribute("aria-hidden",t):e.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const t=this._overlayContainer.getContainerElement();if(t.parentElement){const e=t.parentElement.children;for(let i=e.length-1;i>-1;i--){let n=e[i];n===t||"SCRIPT"===n.nodeName||"STYLE"===n.nodeName||n.hasAttribute("aria-live")||(this._ariaHiddenElements.set(n,n.getAttribute("aria-hidden")),n.setAttribute("aria-hidden","true"))}}}_closeDialogs(t){let e=t.length;for(;e--;)t[e].close()}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(n.aV),s.Y36(s.zs3),s.Y36(void 0),s.Y36(void 0),s.Y36(n.Xj),s.Y36(void 0),s.Y36(s.DyG),s.Y36(s.DyG),s.Y36(s.OlP))},t.\u0275dir=s.lG2({type:t}),t})(),O=(()=>{class t extends I{constructor(t,e,i,n,r,s,o){super(t,e,n,s,o,r,S,C,k)}}return t.\u0275fac=function(e){return new(e||t)(s.LFG(n.aV),s.LFG(s.zs3),s.LFG(l.Ye,8),s.LFG(T,8),s.LFG(M),s.LFG(t,12),s.LFG(n.Xj))},t.\u0275prov=s.Yz7({token:t,factory:t.\u0275fac}),t})(),D=(()=>{class t{constructor(t,e,i){this.dialogRef=t,this._elementRef=e,this._dialog=i,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=function(t,e){let i=t.nativeElement.parentElement;for(;i&&!i.classList.contains("mat-dialog-container");)i=i.parentElement;return i?e.find(t=>t.id===i.id):null}(this._elementRef,this._dialog.openDialogs))}ngOnChanges(t){const e=t._matDialogClose||t._matDialogCloseResult;e&&(this.dialogResult=e.currentValue)}_onButtonClick(t){E(this.dialogRef,0===t.screenX&&0===t.screenY?"keyboard":"mouse",this.dialogResult)}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(S,8),s.Y36(s.SBq),s.Y36(O))},t.\u0275dir=s.lG2({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(t,e){1&t&&s.NdJ("click",function(t){return e._onButtonClick(t)}),2&t&&s.uIk("aria-label",e.ariaLabel||null)("type",e.type)},inputs:{type:"type",dialogResult:["mat-dialog-close","dialogResult"],ariaLabel:["aria-label","ariaLabel"],_matDialogClose:["matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[s.TTD]}),t})(),R=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=s.oAB({type:t}),t.\u0275inj=s.cJS({providers:[O,L],imports:[[n.U8,r.eL,o.BQ],o.BQ]}),t})()},7679:(t,e,i)=>{"use strict";i.d(e,{d:()=>o,t:()=>a});var n=i(9861),r=i(1522),s=i(1572);let o=(()=>{class t{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(t){this._vertical=(0,n.Ig)(t)}get inset(){return this._inset}set inset(t){this._inset=(0,n.Ig)(t)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(t,e){2&t&&(s.uIk("aria-orientation",e.vertical?"vertical":"horizontal"),s.ekj("mat-divider-vertical",e.vertical)("mat-divider-horizontal",!e.vertical)("mat-divider-inset",e.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(t,e){},styles:[".mat-divider{display:block;margin:0;border-top-width:1px;border-top-style:solid}.mat-divider.mat-divider-vertical{border-top:0;border-right-width:1px;border-right-style:solid}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}\n"],encapsulation:2,changeDetection:0}),t})(),a=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=s.oAB({type:t}),t.\u0275inj=s.cJS({imports:[[r.BQ],r.BQ]}),t})()},5001:(t,e,i)=>{"use strict";i.d(e,{pp:()=>Y,To:()=>G,ib:()=>U,u4:()=>z,yz:()=>q,yK:()=>H});var n=i(1572),r=i(9861),s=i(9666),o=i(6042),a=i(4230);let l=0;const c=new n.OlP("CdkAccordion");let h=(()=>{class t{constructor(){this._stateChanges=new s.x,this._openCloseAllActions=new s.x,this.id="cdk-accordion-"+l++,this._multi=!1}get multi(){return this._multi}set multi(t){this._multi=(0,r.Ig)(t)}openAll(){this._multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(t){this._stateChanges.next(t)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:"multi"},exportAs:["cdkAccordion"],features:[n._Bn([{provide:c,useExisting:t}]),n.TTD]}),t})(),u=0,d=(()=>{class t{constructor(t,e,i){this.accordion=t,this._changeDetectorRef=e,this._expansionDispatcher=i,this._openCloseAllSubscription=o.w0.EMPTY,this.closed=new n.vpe,this.opened=new n.vpe,this.destroyed=new n.vpe,this.expandedChange=new n.vpe,this.id="cdk-accordion-child-"+u++,this._expanded=!1,this._disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=i.listen((t,e)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===e&&this.id!==t&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}get expanded(){return this._expanded}set expanded(t){t=(0,r.Ig)(t),this._expanded!==t&&(this._expanded=t,this.expandedChange.emit(t),t?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(t){this._disabled=(0,r.Ig)(t)}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(t=>{this.disabled||(this.expanded=t)})}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(c,12),n.Y36(n.sBO),n.Y36(a.A8))},t.\u0275dir=n.lG2({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:"expanded",disabled:"disabled"},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[n._Bn([{provide:c,useValue:void 0}])]}),t})(),p=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})();var f=i(6899),m=i(1511),g=i(1522),y=i(4621),b=i(6424),v=i(1258),_=i(8868),w=i(9056),x=i(5842),C=i(3490),A=i(4951),S=i(5446),E=i(709);const k=["body"];function T(t,e){}const M=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],L=["mat-expansion-panel-header","*","mat-action-row"];function I(t,e){if(1&t&&n._UZ(0,"span",2),2&t){const t=n.oxw();n.Q6J("@indicatorRotate",t._getExpandedState())}}const O=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],D=["mat-panel-title","mat-panel-description","*"],R=new n.OlP("MAT_ACCORDION"),N="225ms cubic-bezier(0.4,0.0,0.2,1)",P={indicatorRotate:(0,E.X$)("indicatorRotate",[(0,E.SB)("collapsed, void",(0,E.oB)({transform:"rotate(0deg)"})),(0,E.SB)("expanded",(0,E.oB)({transform:"rotate(180deg)"})),(0,E.eR)("expanded <=> collapsed, void => collapsed",(0,E.jt)(N))]),bodyExpansion:(0,E.X$)("bodyExpansion",[(0,E.SB)("collapsed, void",(0,E.oB)({height:"0px",visibility:"hidden"})),(0,E.SB)("expanded",(0,E.oB)({height:"*",visibility:"visible"})),(0,E.eR)("expanded <=> collapsed, void => collapsed",(0,E.jt)(N))])};let F=(()=>{class t{constructor(t){this._template=t}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.Rgc))},t.\u0275dir=n.lG2({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]}),t})(),Z=0;const B=new n.OlP("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let U=(()=>{class t extends d{constructor(t,e,i,r,o,a,l){super(t,e,i),this._viewContainerRef=r,this._animationMode=a,this._hideToggle=!1,this.afterExpand=new n.vpe,this.afterCollapse=new n.vpe,this._inputChanges=new s.x,this._headerId="mat-expansion-panel-header-"+Z++,this._bodyAnimationDone=new s.x,this.accordion=t,this._document=o,this._bodyAnimationDone.pipe((0,b.x)((t,e)=>t.fromState===e.fromState&&t.toState===e.toState)).subscribe(t=>{"void"!==t.fromState&&("expanded"===t.toState?this.afterExpand.emit():"collapsed"===t.toState&&this.afterCollapse.emit())}),l&&(this.hideToggle=l.hideToggle)}get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(t){this._hideToggle=(0,r.Ig)(t)}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(t){this._togglePosition=t}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this.opened.pipe((0,v.O)(null),(0,_.h)(()=>this.expanded&&!this._portal),(0,w.q)(1)).subscribe(()=>{this._portal=new f.UE(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(t){this._inputChanges.next(t)}ngOnDestroy(){super.ngOnDestroy(),this._bodyAnimationDone.complete(),this._inputChanges.complete()}_containsFocus(){if(this._body){const t=this._document.activeElement,e=this._body.nativeElement;return t===e||e.contains(t)}return!1}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(R,12),n.Y36(n.sBO),n.Y36(a.A8),n.Y36(n.s_b),n.Y36(m.K0),n.Y36(C.Qb,8),n.Y36(B,8))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(t,e,i){if(1&t&&n.Suo(i,F,5),2&t){let t;n.iGM(t=n.CRH())&&(e._lazyContent=t.first)}},viewQuery:function(t,e){if(1&t&&n.Gf(k,5),2&t){let t;n.iGM(t=n.CRH())&&(e._body=t.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(t,e){2&t&&n.ekj("mat-expanded",e.expanded)("_mat-animation-noopable","NoopAnimations"===e._animationMode)("mat-expansion-panel-spacing",e._hasSpacing())},inputs:{disabled:"disabled",expanded:"expanded",hideToggle:"hideToggle",togglePosition:"togglePosition"},outputs:{opened:"opened",closed:"closed",expandedChange:"expandedChange",afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[n._Bn([{provide:R,useValue:void 0}]),n.qOj,n.TTD],ngContentSelectors:L,decls:7,vars:4,consts:[["role","region",1,"mat-expansion-panel-content",3,"id"],["body",""],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(t,e){1&t&&(n.F$t(M),n.Hsn(0),n.TgZ(1,"div",0,1),n.NdJ("@bodyExpansion.done",function(t){return e._bodyAnimationDone.next(t)}),n.TgZ(3,"div",2),n.Hsn(4,1),n.YNc(5,T,0,0,"ng-template",3),n.qZA(),n.Hsn(6,2),n.qZA()),2&t&&(n.xp6(1),n.Q6J("@bodyExpansion",e._getExpandedState())("id",e.id),n.uIk("aria-labelledby",e._headerId),n.xp6(4),n.Q6J("cdkPortalOutlet",e._portal))},directives:[f.Pl],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;border-radius:4px;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:4px;border-top-left-radius:4px}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px}.mat-action-row button.mat-button-base,.mat-action-row button.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row button.mat-button-base,[dir=rtl] .mat-action-row button.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"],encapsulation:2,data:{animation:[P.bodyExpansion]},changeDetection:0}),t})(),q=(()=>{class t{constructor(t,e,i,n,r,s){this.panel=t,this._element=e,this._focusMonitor=i,this._changeDetectorRef=n,this._animationMode=s,this._parentChangeSubscription=o.w0.EMPTY;const a=t.accordion?t.accordion._stateChanges.pipe((0,_.h)(t=>!(!t.hideToggle&&!t.togglePosition))):A.E;this._parentChangeSubscription=(0,S.T)(t.opened,t.closed,a,t._inputChanges.pipe((0,_.h)(t=>!!(t.hideToggle||t.disabled||t.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),t.closed.pipe((0,_.h)(()=>t._containsFocus())).subscribe(()=>i.focusVia(e,"program")),r&&(this.expandedHeight=r.expandedHeight,this.collapsedHeight=r.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const t=this._isExpanded();return t&&this.expandedHeight?this.expandedHeight:!t&&this.collapsedHeight?this.collapsedHeight:null}_keydown(t){switch(t.keyCode){case x.L_:case x.K5:(0,x.Vb)(t)||(t.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(t))}}focus(t,e){t?this._focusMonitor.focusVia(this._element,t,e):this._element.nativeElement.focus(e)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(t=>{t&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(U,1),n.Y36(n.SBq),n.Y36(y.tE),n.Y36(n.sBO),n.Y36(B,8),n.Y36(C.Qb,8))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(t,e){1&t&&n.NdJ("click",function(){return e._toggle()})("keydown",function(t){return e._keydown(t)}),2&t&&(n.uIk("id",e.panel._headerId)("tabindex",e.disabled?-1:0)("aria-controls",e._getPanelId())("aria-expanded",e._isExpanded())("aria-disabled",e.panel.disabled),n.Udp("height",e._getHeaderHeight()),n.ekj("mat-expanded",e._isExpanded())("mat-expansion-toggle-indicator-after","after"===e._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===e._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===e._animationMode))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight"},ngContentSelectors:D,decls:5,vars:1,consts:[[1,"mat-content"],["class","mat-expansion-indicator",4,"ngIf"],[1,"mat-expansion-indicator"]],template:function(t,e){1&t&&(n.F$t(O),n.TgZ(0,"span",0),n.Hsn(1),n.Hsn(2,1),n.Hsn(3,2),n.qZA(),n.YNc(4,I,1,1,"span",1)),2&t&&(n.xp6(4),n.Q6J("ngIf",e._showToggle()))},directives:[m.O5],styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;margin-right:16px}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header-description{flex-grow:2}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle}.cdk-high-contrast-active .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true])::before,.cdk-high-contrast-active .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true])::before,.cdk-high-contrast-active .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true])::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;border:3px solid;border-radius:4px;content:""}\n'],encapsulation:2,data:{animation:[P.indicatorRotate]},changeDetection:0}),t})(),z=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t,selectors:[["mat-panel-description"]],hostAttrs:[1,"mat-expansion-panel-header-description"]}),t})(),H=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]}),t})(),Y=(()=>{class t extends h{constructor(){super(...arguments),this._ownHeaders=new n.n_E,this._hideToggle=!1,this.displayMode="default",this.togglePosition="after"}get hideToggle(){return this._hideToggle}set hideToggle(t){this._hideToggle=(0,r.Ig)(t)}ngAfterContentInit(){this._headers.changes.pipe((0,v.O)(this._headers)).subscribe(t=>{this._ownHeaders.reset(t.filter(t=>t.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new y.Em(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(t){this._keyManager.onKeydown(t)}_handleHeaderFocus(t){this._keyManager.updateActiveItem(t)}ngOnDestroy(){super.ngOnDestroy(),this._ownHeaders.destroy()}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["mat-accordion"]],contentQueries:function(t,e,i){if(1&t&&n.Suo(i,q,5),2&t){let t;n.iGM(t=n.CRH())&&(e._headers=t)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(t,e){2&t&&n.ekj("mat-accordion-multi",e.multi)},inputs:{multi:"multi",displayMode:"displayMode",togglePosition:"togglePosition",hideToggle:"hideToggle"},exportAs:["matAccordion"],features:[n._Bn([{provide:R,useExisting:t}]),n.qOj]}),t})(),G=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[m.ez,g.BQ,p,f.eL]]}),t})()},6283:(t,e,i)=>{"use strict";i.d(e,{G_:()=>K,TO:()=>F,KE:()=>$,Eo:()=>B,lN:()=>tt,bx:()=>z,R9:()=>V});var n=i(6337),r=i(1511),s=i(1572),o=i(1522),a=i(9861),l=i(9666),c=i(5446),h=i(5960),u=i(1258),d=i(9568),p=i(9056),f=i(709),m=i(3490),g=i(2526),y=i(1353);const b=["underline"],v=["connectionContainer"],_=["inputContainer"],w=["label"];function x(t,e){1&t&&(s.ynx(0),s.TgZ(1,"div",14),s._UZ(2,"div",15),s._UZ(3,"div",16),s._UZ(4,"div",17),s.qZA(),s.TgZ(5,"div",18),s._UZ(6,"div",15),s._UZ(7,"div",16),s._UZ(8,"div",17),s.qZA(),s.BQk())}function C(t,e){1&t&&(s.TgZ(0,"div",19),s.Hsn(1,1),s.qZA())}function A(t,e){if(1&t&&(s.ynx(0),s.Hsn(1,2),s.TgZ(2,"span"),s._uU(3),s.qZA(),s.BQk()),2&t){const t=s.oxw(2);s.xp6(3),s.Oqu(t._control.placeholder)}}function S(t,e){1&t&&s.Hsn(0,3,["*ngSwitchCase","true"])}function E(t,e){1&t&&(s.TgZ(0,"span",23),s._uU(1," *"),s.qZA())}function k(t,e){if(1&t){const t=s.EpF();s.TgZ(0,"label",20,21),s.NdJ("cdkObserveContent",function(){return s.CHM(t),s.oxw().updateOutlineGap()}),s.YNc(2,A,4,1,"ng-container",12),s.YNc(3,S,1,0,"ng-content",12),s.YNc(4,E,2,0,"span",22),s.qZA()}if(2&t){const t=s.oxw();s.ekj("mat-empty",t._control.empty&&!t._shouldAlwaysFloat())("mat-form-field-empty",t._control.empty&&!t._shouldAlwaysFloat())("mat-accent","accent"==t.color)("mat-warn","warn"==t.color),s.Q6J("cdkObserveContentDisabled","outline"!=t.appearance)("id",t._labelId)("ngSwitch",t._hasLabel()),s.uIk("for",t._control.id)("aria-owns",t._control.id),s.xp6(2),s.Q6J("ngSwitchCase",!1),s.xp6(1),s.Q6J("ngSwitchCase",!0),s.xp6(1),s.Q6J("ngIf",!t.hideRequiredMarker&&t._control.required&&!t._control.disabled)}}function T(t,e){1&t&&(s.TgZ(0,"div",24),s.Hsn(1,4),s.qZA())}function M(t,e){if(1&t&&(s.TgZ(0,"div",25,26),s._UZ(2,"span",27),s.qZA()),2&t){const t=s.oxw();s.xp6(2),s.ekj("mat-accent","accent"==t.color)("mat-warn","warn"==t.color)}}function L(t,e){if(1&t&&(s.TgZ(0,"div"),s.Hsn(1,5),s.qZA()),2&t){const t=s.oxw();s.Q6J("@transitionMessages",t._subscriptAnimationState)}}function I(t,e){if(1&t&&(s.TgZ(0,"div",31),s._uU(1),s.qZA()),2&t){const t=s.oxw(2);s.Q6J("id",t._hintLabelId),s.xp6(1),s.Oqu(t.hintLabel)}}function O(t,e){if(1&t&&(s.TgZ(0,"div",28),s.YNc(1,I,2,2,"div",29),s.Hsn(2,6),s._UZ(3,"div",30),s.Hsn(4,7),s.qZA()),2&t){const t=s.oxw();s.Q6J("@transitionMessages",t._subscriptAnimationState),s.xp6(1),s.Q6J("ngIf",t.hintLabel)}}const D=["*",[["","matPrefix",""]],[["mat-placeholder"]],[["mat-label"]],[["","matSuffix",""]],[["mat-error"]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],R=["*","[matPrefix]","mat-placeholder","mat-label","[matSuffix]","mat-error","mat-hint:not([align='end'])","mat-hint[align='end']"];let N=0;const P=new s.OlP("MatError");let F=(()=>{class t{constructor(t,e){this.id="mat-error-"+N++,t||e.nativeElement.setAttribute("aria-live","polite")}}return t.\u0275fac=function(e){return new(e||t)(s.$8M("aria-live"),s.Y36(s.SBq))},t.\u0275dir=s.lG2({type:t,selectors:[["mat-error"]],hostAttrs:["aria-atomic","true",1,"mat-error"],hostVars:1,hostBindings:function(t,e){2&t&&s.uIk("id",e.id)},inputs:{id:"id"},features:[s._Bn([{provide:P,useExisting:t}])]}),t})();const Z={transitionMessages:(0,f.X$)("transitionMessages",[(0,f.SB)("enter",(0,f.oB)({opacity:1,transform:"translateY(0%)"})),(0,f.eR)("void => enter",[(0,f.oB)({opacity:0,transform:"translateY(-5px)"}),(0,f.jt)("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let B=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t}),t})(),U=0;const q=new s.OlP("MatHint");let z=(()=>{class t{constructor(){this.align="start",this.id="mat-hint-"+U++}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-hint"],hostVars:4,hostBindings:function(t,e){2&t&&(s.uIk("id",e.id)("align",null),s.ekj("mat-form-field-hint-end","end"===e.align))},inputs:{align:"align",id:"id"},features:[s._Bn([{provide:q,useExisting:t}])]}),t})(),H=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t,selectors:[["mat-label"]]}),t})(),Y=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t,selectors:[["mat-placeholder"]]}),t})();const G=new s.OlP("MatPrefix"),j=new s.OlP("MatSuffix");let V=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t,selectors:[["","matSuffix",""]],features:[s._Bn([{provide:j,useExisting:t}])]}),t})(),Q=0;class W{constructor(t){this._elementRef=t}}const J=(0,o.pj)(W,"primary"),X=new s.OlP("MAT_FORM_FIELD_DEFAULT_OPTIONS"),K=new s.OlP("MatFormField");let $=(()=>{class t extends J{constructor(t,e,i,n,r,s,o,a){super(t),this._elementRef=t,this._changeDetectorRef=e,this._dir=n,this._defaults=r,this._platform=s,this._ngZone=o,this._outlineGapCalculationNeededImmediately=!1,this._outlineGapCalculationNeededOnStable=!1,this._destroyed=new l.x,this._showAlwaysAnimate=!1,this._subscriptAnimationState="",this._hintLabel="",this._hintLabelId="mat-hint-"+Q++,this._labelId="mat-form-field-label-"+Q++,this.floatLabel=this._getDefaultFloatLabelState(),this._animationsEnabled="NoopAnimations"!==a,this.appearance=r&&r.appearance?r.appearance:"legacy",this._hideRequiredMarker=!(!r||null==r.hideRequiredMarker)&&r.hideRequiredMarker}get appearance(){return this._appearance}set appearance(t){const e=this._appearance;this._appearance=t||this._defaults&&this._defaults.appearance||"legacy","outline"===this._appearance&&e!==t&&(this._outlineGapCalculationNeededOnStable=!0)}get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(t){this._hideRequiredMarker=(0,a.Ig)(t)}_shouldAlwaysFloat(){return"always"===this.floatLabel&&!this._showAlwaysAnimate}_canLabelFloat(){return"never"!==this.floatLabel}get hintLabel(){return this._hintLabel}set hintLabel(t){this._hintLabel=t,this._processHints()}get floatLabel(){return"legacy"!==this.appearance&&"never"===this._floatLabel?"auto":this._floatLabel}set floatLabel(t){t!==this._floatLabel&&(this._floatLabel=t||this._getDefaultFloatLabelState(),this._changeDetectorRef.markForCheck())}get _control(){return this._explicitFormFieldControl||this._controlNonStatic||this._controlStatic}set _control(t){this._explicitFormFieldControl=t}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._connectionContainerRef||this._elementRef}ngAfterContentInit(){this._validateControlChild();const t=this._control;t.controlType&&this._elementRef.nativeElement.classList.add(`mat-form-field-type-${t.controlType}`),t.stateChanges.pipe((0,u.O)(null)).subscribe(()=>{this._validatePlaceholders(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),t.ngControl&&t.ngControl.valueChanges&&t.ngControl.valueChanges.pipe((0,d.R)(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe((0,d.R)(this._destroyed)).subscribe(()=>{this._outlineGapCalculationNeededOnStable&&this.updateOutlineGap()})}),(0,c.T)(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._outlineGapCalculationNeededOnStable=!0,this._changeDetectorRef.markForCheck()}),this._hintChildren.changes.pipe((0,u.O)(null)).subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.pipe((0,u.O)(null)).subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._dir&&this._dir.change.pipe((0,d.R)(this._destroyed)).subscribe(()=>{"function"==typeof requestAnimationFrame?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this.updateOutlineGap())}):this.updateOutlineGap()})}ngAfterContentChecked(){this._validateControlChild(),this._outlineGapCalculationNeededImmediately&&this.updateOutlineGap()}ngAfterViewInit(){this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_shouldForward(t){const e=this._control?this._control.ngControl:null;return e&&e[t]}_hasPlaceholder(){return!!(this._control&&this._control.placeholder||this._placeholderChild)}_hasLabel(){return!(!this._labelChildNonStatic&&!this._labelChildStatic)}_shouldLabelFloat(){return this._canLabelFloat()&&(this._control&&this._control.shouldLabelFloat||this._shouldAlwaysFloat())}_hideControlPlaceholder(){return"legacy"===this.appearance&&!this._hasLabel()||this._hasLabel()&&!this._shouldLabelFloat()}_hasFloatingLabel(){return this._hasLabel()||"legacy"===this.appearance&&this._hasPlaceholder()}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_animateAndLockLabel(){this._hasFloatingLabel()&&this._canLabelFloat()&&(this._animationsEnabled&&this._label&&(this._showAlwaysAnimate=!0,(0,h.R)(this._label.nativeElement,"transitionend").pipe((0,p.q)(1)).subscribe(()=>{this._showAlwaysAnimate=!1})),this.floatLabel="always",this._changeDetectorRef.markForCheck())}_validatePlaceholders(){}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_getDefaultFloatLabelState(){return this._defaults&&this._defaults.floatLabel||"auto"}_syncDescribedByIds(){if(this._control){let t=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&t.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const e=this._hintChildren?this._hintChildren.find(t=>"start"===t.align):null,i=this._hintChildren?this._hintChildren.find(t=>"end"===t.align):null;e?t.push(e.id):this._hintLabel&&t.push(this._hintLabelId),i&&t.push(i.id)}else this._errorChildren&&t.push(...this._errorChildren.map(t=>t.id));this._control.setDescribedByIds(t)}}_validateControlChild(){}updateOutlineGap(){const t=this._label?this._label.nativeElement:null;if("outline"!==this.appearance||!t||!t.children.length||!t.textContent.trim())return;if(!this._platform.isBrowser)return;if(!this._isAttachedToDOM())return void(this._outlineGapCalculationNeededImmediately=!0);let e=0,i=0;const n=this._connectionContainerRef.nativeElement,r=n.querySelectorAll(".mat-form-field-outline-start"),s=n.querySelectorAll(".mat-form-field-outline-gap");if(this._label&&this._label.nativeElement.children.length){const r=n.getBoundingClientRect();if(0===r.width&&0===r.height)return this._outlineGapCalculationNeededOnStable=!0,void(this._outlineGapCalculationNeededImmediately=!1);const s=this._getStartEnd(r),o=t.children,a=this._getStartEnd(o[0].getBoundingClientRect());let l=0;for(let t=0;t0?.75*l+10:0}for(let o=0;o{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=s.oAB({type:t}),t.\u0275inj=s.cJS({imports:[[r.ez,o.BQ,n.Q8],o.BQ]}),t})()},7271:(t,e,i)=>{"use strict";i.d(e,{Il:()=>_,N6:()=>w,DX:()=>d});var n=i(1572),r=i(1522),s=i(9861),o=i(2526);const a=["*"],l=".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-grid-tile-header,.mat-grid-tile .mat-grid-tile-footer{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-header>*,.mat-grid-tile .mat-grid-tile-footer>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-tile-header.mat-2-line,.mat-grid-tile .mat-grid-tile-footer.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}.mat-grid-tile-content{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}\n";class c{constructor(){this.columnIndex=0,this.rowIndex=0}get rowCount(){return this.rowIndex+1}get rowspan(){const t=Math.max(...this.tracker);return t>1?this.rowCount+t-1:this.rowCount}update(t,e){this.columnIndex=0,this.rowIndex=0,this.tracker=new Array(t),this.tracker.fill(0,0,this.tracker.length),this.positions=e.map(t=>this._trackTile(t))}_trackTile(t){const e=this._findMatchingGap(t.colspan);return this._markTilePosition(e,t),this.columnIndex=e+t.colspan,new h(this.rowIndex,e)}_findMatchingGap(t){let e=-1,i=-1;do{this.columnIndex+t>this.tracker.length?(this._nextRow(),e=this.tracker.indexOf(0,this.columnIndex),i=this._findGapEndIndex(e)):(e=this.tracker.indexOf(0,this.columnIndex),-1!=e?(i=this._findGapEndIndex(e),this.columnIndex=e+1):(this._nextRow(),e=this.tracker.indexOf(0,this.columnIndex),i=this._findGapEndIndex(e)))}while(i-e{class t{constructor(t,e){this._element=t,this._gridList=e,this._rowspan=1,this._colspan=1}get rowspan(){return this._rowspan}set rowspan(t){this._rowspan=Math.round((0,s.su)(t))}get colspan(){return this._colspan}set colspan(t){this._colspan=Math.round((0,s.su)(t))}_setStyle(t,e){this._element.nativeElement.style[t]=e}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(u,8))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-grid-tile"]],hostAttrs:[1,"mat-grid-tile"],hostVars:2,hostBindings:function(t,e){2&t&&n.uIk("rowspan",e.rowspan)("colspan",e.colspan)},inputs:{rowspan:"rowspan",colspan:"colspan"},exportAs:["matGridTile"],ngContentSelectors:a,decls:2,vars:0,consts:[[1,"mat-grid-tile-content"]],template:function(t,e){1&t&&(n.F$t(),n.TgZ(0,"div",0),n.Hsn(1),n.qZA())},styles:[l],encapsulation:2,changeDetection:0}),t})();const p=/^-?\d+((\.\d+)?[A-Za-z%$]?)+$/;class f{constructor(){this._rows=0,this._rowspan=0}init(t,e,i,n){this._gutterSize=v(t),this._rows=e.rowCount,this._rowspan=e.rowspan,this._cols=i,this._direction=n}getBaseTileSize(t,e){return`(${t}% - (${this._gutterSize} * ${e}))`}getTilePosition(t,e){return 0===e?"0":b(`(${t} + ${this._gutterSize}) * ${e}`)}getTileSize(t,e){return`(${t} * ${e}) + (${e-1} * ${this._gutterSize})`}setStyle(t,e,i){let n=100/this._cols,r=(this._cols-1)/this._cols;this.setColStyles(t,i,n,r),this.setRowStyles(t,e,n,r)}setColStyles(t,e,i,n){let r=this.getBaseTileSize(i,n);t._setStyle("rtl"===this._direction?"right":"left",this.getTilePosition(r,e)),t._setStyle("width",b(this.getTileSize(r,t.colspan)))}getGutterSpan(){return`${this._gutterSize} * (${this._rowspan} - 1)`}getTileSpan(t){return`${this._rowspan} * ${this.getTileSize(t,1)}`}getComputedHeight(){return null}}class m extends f{constructor(t){super(),this.fixedRowHeight=t}init(t,e,i,n){super.init(t,e,i,n),this.fixedRowHeight=v(this.fixedRowHeight),p.test(this.fixedRowHeight)}setRowStyles(t,e){t._setStyle("top",this.getTilePosition(this.fixedRowHeight,e)),t._setStyle("height",b(this.getTileSize(this.fixedRowHeight,t.rowspan)))}getComputedHeight(){return["height",b(`${this.getTileSpan(this.fixedRowHeight)} + ${this.getGutterSpan()}`)]}reset(t){t._setListStyle(["height",null]),t._tiles&&t._tiles.forEach(t=>{t._setStyle("top",null),t._setStyle("height",null)})}}class g extends f{constructor(t){super(),this._parseRatio(t)}setRowStyles(t,e,i,n){this.baseTileHeight=this.getBaseTileSize(i/this.rowHeightRatio,n),t._setStyle("marginTop",this.getTilePosition(this.baseTileHeight,e)),t._setStyle("paddingTop",b(this.getTileSize(this.baseTileHeight,t.rowspan)))}getComputedHeight(){return["paddingBottom",b(`${this.getTileSpan(this.baseTileHeight)} + ${this.getGutterSpan()}`)]}reset(t){t._setListStyle(["paddingBottom",null]),t._tiles.forEach(t=>{t._setStyle("marginTop",null),t._setStyle("paddingTop",null)})}_parseRatio(t){const e=t.split(":");this.rowHeightRatio=parseFloat(e[0])/parseFloat(e[1])}}class y extends f{setRowStyles(t,e){let i=this.getBaseTileSize(100/this._rowspan,(this._rows-1)/this._rows);t._setStyle("top",this.getTilePosition(i,e)),t._setStyle("height",b(this.getTileSize(i,t.rowspan)))}reset(t){t._tiles&&t._tiles.forEach(t=>{t._setStyle("top",null),t._setStyle("height",null)})}}function b(t){return`calc(${t})`}function v(t){return t.match(/([A-Za-z%]+)$/)?t:`${t}px`}let _=(()=>{class t{constructor(t,e){this._element=t,this._dir=e,this._gutter="1px"}get cols(){return this._cols}set cols(t){this._cols=Math.max(1,Math.round((0,s.su)(t)))}get gutterSize(){return this._gutter}set gutterSize(t){this._gutter=`${null==t?"":t}`}get rowHeight(){return this._rowHeight}set rowHeight(t){const e=`${null==t?"":t}`;e!==this._rowHeight&&(this._rowHeight=e,this._setTileStyler(this._rowHeight))}ngOnInit(){this._checkCols(),this._checkRowHeight()}ngAfterContentChecked(){this._layoutTiles()}_checkCols(){}_checkRowHeight(){this._rowHeight||this._setTileStyler("1:1")}_setTileStyler(t){this._tileStyler&&this._tileStyler.reset(this),this._tileStyler="fit"===t?new y:t&&t.indexOf(":")>-1?new g(t):new m(t)}_layoutTiles(){this._tileCoordinator||(this._tileCoordinator=new c);const t=this._tileCoordinator,e=this._tiles.filter(t=>!t._gridList||t._gridList===this),i=this._dir?this._dir.value:"ltr";this._tileCoordinator.update(this.cols,e),this._tileStyler.init(this.gutterSize,t,this.cols,i),e.forEach((e,i)=>{const n=t.positions[i];this._tileStyler.setStyle(e,n.row,n.col)}),this._setListStyle(this._tileStyler.getComputedHeight())}_setListStyle(t){t&&(this._element.nativeElement.style[t[0]]=t[1])}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(o.Is,8))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-grid-list"]],contentQueries:function(t,e,i){if(1&t&&n.Suo(i,d,5),2&t){let t;n.iGM(t=n.CRH())&&(e._tiles=t)}},hostAttrs:[1,"mat-grid-list"],hostVars:1,hostBindings:function(t,e){2&t&&n.uIk("cols",e.cols)},inputs:{cols:"cols",gutterSize:"gutterSize",rowHeight:"rowHeight"},exportAs:["matGridList"],features:[n._Bn([{provide:u,useExisting:t}])],ngContentSelectors:a,decls:2,vars:0,template:function(t,e){1&t&&(n.F$t(),n.TgZ(0,"div"),n.Hsn(1),n.qZA())},styles:[l],encapsulation:2,changeDetection:0}),t})(),w=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[r.uc,r.BQ],r.uc,r.BQ]}),t})()},3691:(t,e,i)=>{"use strict";i.d(e,{Hw:()=>D,Ps:()=>R});var n=i(1572),r=i(1522),s=i(9861),o=i(1511),a=i(2041),l=i(9647),c=i(6891),h=i(6042),u=i(343),d=i(1681),p=i(1816),f=i(849),m=i(7839),g=i(9056),y=i(9063),b=i(269);const v=["*"];function _(t){return Error(`Unable to find icon with the name "${t}"`)}function w(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function x(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class C{constructor(t,e,i){this.url=t,this.svgText=e,this.options=i}}let A=(()=>{class t{constructor(t,e,i,n){this._httpClient=t,this._sanitizer=e,this._errorHandler=n,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass="material-icons",this._document=i}addSvgIcon(t,e,i){return this.addSvgIconInNamespace("",t,e,i)}addSvgIconLiteral(t,e,i){return this.addSvgIconLiteralInNamespace("",t,e,i)}addSvgIconInNamespace(t,e,i,n){return this._addSvgIconConfig(t,e,new C(i,null,n))}addSvgIconResolver(t){return this._resolvers.push(t),this}addSvgIconLiteralInNamespace(t,e,i,r){const s=this._sanitizer.sanitize(n.q3G.HTML,i);if(!s)throw x(i);return this._addSvgIconConfig(t,e,new C("",s,r))}addSvgIconSet(t,e){return this.addSvgIconSetInNamespace("",t,e)}addSvgIconSetLiteral(t,e){return this.addSvgIconSetLiteralInNamespace("",t,e)}addSvgIconSetInNamespace(t,e,i){return this._addSvgIconSetConfig(t,new C(e,null,i))}addSvgIconSetLiteralInNamespace(t,e,i){const r=this._sanitizer.sanitize(n.q3G.HTML,e);if(!r)throw x(e);return this._addSvgIconSetConfig(t,new C("",r,i))}registerFontClassAlias(t,e=t){return this._fontCssClassesByAlias.set(t,e),this}classNameForFontAlias(t){return this._fontCssClassesByAlias.get(t)||t}setDefaultFontSetClass(t){return this._defaultFontSetClass=t,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(t){const e=this._sanitizer.sanitize(n.q3G.RESOURCE_URL,t);if(!e)throw w(t);const i=this._cachedIconsByUrl.get(e);return i?(0,a.of)(S(i)):this._loadSvgIconFromConfig(new C(t,null)).pipe((0,u.b)(t=>this._cachedIconsByUrl.set(e,t)),(0,d.U)(t=>S(t)))}getNamedSvgIcon(t,e=""){const i=E(e,t);let n=this._svgIconConfigs.get(i);if(n)return this._getSvgFromConfig(n);if(n=this._getIconConfigFromResolvers(e,t),n)return this._svgIconConfigs.set(i,n),this._getSvgFromConfig(n);const r=this._iconSetConfigs.get(e);return r?this._getSvgFromIconSetConfigs(t,r):(0,l._)(_(i))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(t){return t.svgText?(0,a.of)(S(this._svgElementFromConfig(t))):this._loadSvgIconFromConfig(t).pipe((0,d.U)(t=>S(t)))}_getSvgFromIconSetConfigs(t,e){const i=this._extractIconWithNameFromAnySet(t,e);if(i)return(0,a.of)(i);const r=e.filter(t=>!t.svgText).map(t=>this._loadSvgIconSetFromConfig(t).pipe((0,p.K)(e=>{const i=this._sanitizer.sanitize(n.q3G.RESOURCE_URL,t.url);return this._errorHandler.handleError(new Error(`Loading icon set URL: ${i} failed: ${e.message}`)),(0,a.of)(null)})));return(0,c.D)(r).pipe((0,d.U)(()=>{const i=this._extractIconWithNameFromAnySet(t,e);if(!i)throw _(t);return i}))}_extractIconWithNameFromAnySet(t,e){for(let i=e.length-1;i>=0;i--){const n=e[i];if(n.svgText&&n.svgText.indexOf(t)>-1){const e=this._svgElementFromConfig(n),i=this._extractSvgIconFromSet(e,t,n.options);if(i)return i}}return null}_loadSvgIconFromConfig(t){return this._fetchIcon(t).pipe((0,u.b)(e=>t.svgText=e),(0,d.U)(()=>this._svgElementFromConfig(t)))}_loadSvgIconSetFromConfig(t){return t.svgText?(0,a.of)(null):this._fetchIcon(t).pipe((0,u.b)(e=>t.svgText=e))}_extractSvgIconFromSet(t,e,i){const n=t.querySelector(`[id="${e}"]`);if(!n)return null;const r=n.cloneNode(!0);if(r.removeAttribute("id"),"svg"===r.nodeName.toLowerCase())return this._setSvgAttributes(r,i);if("symbol"===r.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(r),i);const s=this._svgElementFromString("");return s.appendChild(r),this._setSvgAttributes(s,i)}_svgElementFromString(t){const e=this._document.createElement("DIV");e.innerHTML=t;const i=e.querySelector("svg");if(!i)throw Error(" tag not found");return i}_toSvgElement(t){const e=this._svgElementFromString(""),i=t.attributes;for(let n=0;nthis._inProgressUrlFetches.delete(o)),(0,m.B)());return this._inProgressUrlFetches.set(o,l),l}_addSvgIconConfig(t,e,i){return this._svgIconConfigs.set(E(t,e),i),this}_addSvgIconSetConfig(t,e){const i=this._iconSetConfigs.get(t);return i?i.push(e):this._iconSetConfigs.set(t,[e]),this}_svgElementFromConfig(t){if(!t.svgElement){const e=this._svgElementFromString(t.svgText);this._setSvgAttributes(e,t.options),t.svgElement=e}return t.svgElement}_getIconConfigFromResolvers(t,e){for(let n=0;ne?e.pathname+e.search:""}}}),L=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],I=L.map(t=>`[${t}]`).join(", "),O=/^url\(['"]?#(.*?)['"]?\)$/;let D=(()=>{class t extends T{constructor(t,e,i,n,r){super(t),this._iconRegistry=e,this._location=n,this._errorHandler=r,this._inline=!1,this._currentIconFetch=h.w0.EMPTY,i||t.nativeElement.setAttribute("aria-hidden","true")}get inline(){return this._inline}set inline(t){this._inline=(0,s.Ig)(t)}get svgIcon(){return this._svgIcon}set svgIcon(t){t!==this._svgIcon&&(t?this._updateSvgIcon(t):this._svgIcon&&this._clearSvgElement(),this._svgIcon=t)}get fontSet(){return this._fontSet}set fontSet(t){const e=this._cleanupFontValue(t);e!==this._fontSet&&(this._fontSet=e,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(t){const e=this._cleanupFontValue(t);e!==this._fontIcon&&(this._fontIcon=e,this._updateFontIconClasses())}_splitIconName(t){if(!t)return["",""];const e=t.split(":");switch(e.length){case 1:return["",e[0]];case 2:return e;default:throw Error(`Invalid icon name: "${t}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const t=this._elementsWithExternalReferences;if(t&&t.size){const t=this._location.getPathname();t!==this._previousPath&&(this._previousPath=t,this._prependPathToReferences(t))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(t){this._clearSvgElement();const e=t.querySelectorAll("style");for(let n=0;n{e.forEach(e=>{i.setAttribute(e.name,`url('${t}#${e.value}')`)})})}_cacheChildrenWithExternalReferences(t){const e=t.querySelectorAll(I),i=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let n=0;n{const r=e[n],s=r.getAttribute(t),o=s?s.match(O):null;if(o){let e=i.get(r);e||(e=[],i.set(r,e)),e.push({name:t,value:o[1]})}})}_updateSvgIcon(t){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),t){const[e,i]=this._splitIconName(t);e&&(this._svgNamespace=e),i&&(this._svgName=i),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(i,e).pipe((0,g.q)(1)).subscribe(t=>this._setSvgElement(t),t=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${e}:${i}! ${t.message}`))})}}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(A),n.$8M("aria-hidden"),n.Y36(M),n.Y36(n.qLn))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:7,hostBindings:function(t,e){2&t&&(n.uIk("data-mat-icon-type",e._usingFontIcon()?"font":"svg")("data-mat-icon-name",e._svgName||e.fontIcon)("data-mat-icon-namespace",e._svgNamespace||e.fontSet),n.ekj("mat-icon-inline",e.inline)("mat-icon-no-color","primary"!==e.color&&"accent"!==e.color&&"warn"!==e.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[n.qOj],ngContentSelectors:v,decls:1,vars:0,template:function(t,e){1&t&&(n.F$t(),n.Hsn(0))},styles:[".mat-icon{background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\n"],encapsulation:2,changeDetection:0}),t})(),R=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[r.BQ],r.BQ]}),t})()},6756:(t,e,i)=>{"use strict";i.d(e,{Jk:()=>_,Nt:()=>S,c:()=>E,D7:()=>v});var n=i(1353),r=i(1572),s=i(9861),o=i(4951),a=i(9666),l=i(5960),c=i(9610),h=i(9568),u=i(1511);const d=(0,n.i$)({passive:!0});let p=(()=>{class t{constructor(t,e){this._platform=t,this._ngZone=e,this._monitoredElements=new Map}monitor(t){if(!this._platform.isBrowser)return o.E;const e=(0,s.fI)(t),i=this._monitoredElements.get(e);if(i)return i.subject;const n=new a.x,r="cdk-text-field-autofilled",l=t=>{"cdk-text-field-autofill-start"!==t.animationName||e.classList.contains(r)?"cdk-text-field-autofill-end"===t.animationName&&e.classList.contains(r)&&(e.classList.remove(r),this._ngZone.run(()=>n.next({target:t.target,isAutofilled:!1}))):(e.classList.add(r),this._ngZone.run(()=>n.next({target:t.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{e.addEventListener("animationstart",l,d),e.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(e,{subject:n,unlisten:()=>{e.removeEventListener("animationstart",l,d)}}),n}stopMonitoring(t){const e=(0,s.fI)(t),i=this._monitoredElements.get(e);i&&(i.unlisten(),i.subject.complete(),e.classList.remove("cdk-text-field-autofill-monitored"),e.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(e))}ngOnDestroy(){this._monitoredElements.forEach((t,e)=>this.stopMonitoring(e))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.t4),r.LFG(r.R0b))},t.\u0275prov=r.Yz7({factory:function(){return new t(r.LFG(n.t4),r.LFG(r.R0b))},token:t,providedIn:"root"}),t})(),f=(()=>{class t{constructor(t,e,i,n){this._elementRef=t,this._platform=e,this._ngZone=i,this._destroyed=new a.x,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._document=n,this._textareaElement=this._elementRef.nativeElement,this._measuringClass=e.FIREFOX?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring"}get minRows(){return this._minRows}set minRows(t){this._minRows=(0,s.su)(t),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(t){this._maxRows=(0,s.su)(t),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(t){t=(0,s.Ig)(t),this._enabled!==t&&((this._enabled=t)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(t){this._cachedPlaceholderHeight=void 0,this._textareaElement.placeholder=t,this._cacheTextareaPlaceholderHeight()}_setMinHeight(){const t=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;t&&(this._textareaElement.style.minHeight=t)}_setMaxHeight(){const t=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;t&&(this._textareaElement.style.maxHeight=t)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{const t=this._getWindow();(0,l.R)(t,"resize").pipe((0,c.e)(16),(0,h.R)(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0))}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let t=this._textareaElement.cloneNode(!1);t.rows=1,t.style.position="absolute",t.style.visibility="hidden",t.style.border="none",t.style.padding="0",t.style.height="",t.style.minHeight="",t.style.maxHeight="",t.style.overflow="hidden",this._textareaElement.parentNode.appendChild(t),this._cachedLineHeight=t.clientHeight,this._textareaElement.parentNode.removeChild(t),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){this._textareaElement.classList.add(this._measuringClass);const t=this._textareaElement.scrollHeight-4;return this._textareaElement.classList.remove(this._measuringClass),t}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||null!=this._cachedPlaceholderHeight)return;if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);const t=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=t}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(t=!1){if(!this._enabled)return;if(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight)return;const e=this._elementRef.nativeElement,i=e.value;if(!t&&this._minRows===this._previousMinRows&&i===this._previousValue)return;const n=this._measureScrollHeight(),r=Math.max(n,this._cachedPlaceholderHeight||0);e.style.height=`${r}px`,this._ngZone.runOutsideAngular(()=>{"undefined"!=typeof requestAnimationFrame?requestAnimationFrame(()=>this._scrollToCaretPosition(e)):setTimeout(()=>this._scrollToCaretPosition(e))}),this._previousValue=i,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(t){const{selectionStart:e,selectionEnd:i}=t,n=this._getDocument();this._destroyed.isStopped||n.activeElement!==t||t.setSelectionRange(e,i)}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq),r.Y36(n.t4),r.Y36(r.R0b),r.Y36(u.K0,8))},t.\u0275dir=r.lG2({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(t,e){1&t&&r.NdJ("input",function(){return e._noopInputHandler()})},inputs:{minRows:["cdkAutosizeMinRows","minRows"],maxRows:["cdkAutosizeMaxRows","maxRows"],enabled:["cdkTextareaAutosize","enabled"],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]}),t})(),m=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({imports:[[n.ud]]}),t})();var g=i(1522),y=i(6283),b=i(6073);let v=(()=>{class t extends f{get matAutosizeMinRows(){return this.minRows}set matAutosizeMinRows(t){this.minRows=t}get matAutosizeMaxRows(){return this.maxRows}set matAutosizeMaxRows(t){this.maxRows=t}get matAutosize(){return this.enabled}set matAutosize(t){this.enabled=t}get matTextareaAutosize(){return this.enabled}set matTextareaAutosize(t){this.enabled=t}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=r.n5z(t)))(i||t)}}(),t.\u0275dir=r.lG2({type:t,selectors:[["textarea","mat-autosize",""],["textarea","matTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize","mat-autosize"],inputs:{cdkAutosizeMinRows:"cdkAutosizeMinRows",cdkAutosizeMaxRows:"cdkAutosizeMaxRows",matAutosizeMinRows:"matAutosizeMinRows",matAutosizeMaxRows:"matAutosizeMaxRows",matAutosize:["mat-autosize","matAutosize"],matTextareaAutosize:"matTextareaAutosize"},exportAs:["matTextareaAutosize"],features:[r.qOj]}),t})();const _=new r.OlP("MAT_INPUT_VALUE_ACCESSOR"),w=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let x=0;class C{constructor(t,e,i,n){this._defaultErrorStateMatcher=t,this._parentForm=e,this._parentFormGroup=i,this.ngControl=n}}const A=(0,g.FD)(C);let S=(()=>{class t extends A{constructor(t,e,i,r,s,o,l,c,h,u){super(o,r,s,i),this._elementRef=t,this._platform=e,this.ngControl=i,this._autofillMonitor=c,this._formField=u,this._uid="mat-input-"+x++,this.focused=!1,this.stateChanges=new a.x,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._required=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(t=>(0,n.qK)().has(t));const d=this._elementRef.nativeElement,p=d.nodeName.toLowerCase();this._inputValueAccessor=l||d,this._previousNativeValue=this.value,this.id=this.id,e.IOS&&h.runOutsideAngular(()=>{t.nativeElement.addEventListener("keyup",t=>{const e=t.target;e.value||0!==e.selectionStart||0!==e.selectionEnd||(e.setSelectionRange(1,1),e.setSelectionRange(0,0))})}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===p,this._isTextarea="textarea"===p,this._isNativeSelect&&(this.controlType=d.multiple?"mat-native-select-multiple":"mat-native-select")}get disabled(){return this.ngControl&&null!==this.ngControl.disabled?this.ngControl.disabled:this._disabled}set disabled(t){this._disabled=(0,s.Ig)(t),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(t){this._id=t||this._uid}get required(){return this._required}set required(t){this._required=(0,s.Ig)(t)}get type(){return this._type}set type(t){this._type=t||"text",this._validateType(),!this._isTextarea&&(0,n.qK)().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(t){t!==this.value&&(this._inputValueAccessor.value=t,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(t){this._readonly=(0,s.Ig)(t)}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(t=>{this.autofilled=t.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement)}ngDoCheck(){this.ngControl&&this.updateErrorState(),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(t){this._elementRef.nativeElement.focus(t)}_focusChanged(t){t===this.focused||this.readonly&&t||(this.focused=t,this.stateChanges.next())}_onInput(){}_dirtyCheckPlaceholder(){var t,e;const i=(null===(e=null===(t=this._formField)||void 0===t?void 0:t._hideControlPlaceholder)||void 0===e?void 0:e.call(t))?null:this.placeholder;if(i!==this._previousPlaceholder){const t=this._elementRef.nativeElement;this._previousPlaceholder=i,i?t.setAttribute("placeholder",i):t.removeAttribute("placeholder")}}_dirtyCheckNativeValue(){const t=this._elementRef.nativeElement.value;this._previousNativeValue!==t&&(this._previousNativeValue=t,this.stateChanges.next())}_validateType(){w.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let t=this._elementRef.nativeElement.validity;return t&&t.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const t=this._elementRef.nativeElement,e=t.options[0];return this.focused||t.multiple||!this.empty||!!(t.selectedIndex>-1&&e&&e.label)}return this.focused||!this.empty}setDescribedByIds(t){t.length?this._elementRef.nativeElement.setAttribute("aria-describedby",t.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq),r.Y36(n.t4),r.Y36(b.a5,10),r.Y36(b.F,8),r.Y36(b.sg,8),r.Y36(g.rD),r.Y36(_,10),r.Y36(p),r.Y36(r.R0b),r.Y36(y.G_,8))},t.\u0275dir=r.lG2({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-input-element","mat-form-field-autofill-control"],hostVars:9,hostBindings:function(t,e){1&t&&r.NdJ("focus",function(){return e._focusChanged(!0)})("blur",function(){return e._focusChanged(!1)})("input",function(){return e._onInput()}),2&t&&(r.Ikx("disabled",e.disabled)("required",e.required),r.uIk("id",e.id)("data-placeholder",e.placeholder)("readonly",e.readonly&&!e._isNativeSelect||null)("aria-invalid",e.empty&&e.required?null:e.errorState)("aria-required",e.required),r.ekj("mat-input-server",e._isServer))},inputs:{id:"id",disabled:"disabled",required:"required",type:"type",value:"value",readonly:"readonly",placeholder:"placeholder",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"]},exportAs:["matInput"],features:[r._Bn([{provide:y.Eo,useExisting:t}]),r.qOj,r.TTD]}),t})(),E=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({providers:[g.rD],imports:[[m,y.lN,g.BQ],m,y.lN]}),t})()},5250:(t,e,i)=>{"use strict";i.d(e,{i$:()=>v,Tg:()=>x,ie:()=>C});var n=i(1511),r=i(1572),s=i(1522),o=i(9861),a=i(9666),l=i(9568),c=(i(1258),i(4621),i(4230),i(5842),i(6073),i(7679));const h=["*"],u=[[["","mat-list-avatar",""],["","mat-list-icon",""],["","matListAvatar",""],["","matListIcon",""]],[["","mat-line",""],["","matLine",""]],"*"],d=["[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]","[mat-line], [matLine]","*"];class p{}const f=(0,s.Id)((0,s.Kr)(p));class m{}const g=(0,s.Kr)(m),y=new r.OlP("MatList"),b=new r.OlP("MatNavList");let v=(()=>{class t extends f{constructor(t){super(),this._elementRef=t,this._stateChanges=new a.x,"action-list"===this._getListType()&&t.nativeElement.classList.add("mat-action-list")}_getListType(){const t=this._elementRef.nativeElement.nodeName.toLowerCase();return"mat-list"===t?"list":"mat-action-list"===t?"action-list":null}ngOnChanges(){this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq))},t.\u0275cmp=r.Xpm({type:t,selectors:[["mat-list"],["mat-action-list"]],hostAttrs:[1,"mat-list","mat-list-base"],inputs:{disableRipple:"disableRipple",disabled:"disabled"},exportAs:["matList"],features:[r._Bn([{provide:y,useExisting:t}]),r.qOj,r.TTD],ngContentSelectors:h,decls:1,vars:0,template:function(t,e){1&t&&(r.F$t(),r.Hsn(0))},styles:['.mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:transparent}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:transparent;text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-selection-list:focus{outline-style:dotted}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-list-option:focus,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:focus,.cdk-high-contrast-active mat-action-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:focus{outline:dotted 1px}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\n'],encapsulation:2,changeDetection:0}),t})(),_=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=r.lG2({type:t,selectors:[["","mat-list-avatar",""],["","matListAvatar",""]],hostAttrs:[1,"mat-list-avatar"]}),t})(),w=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=r.lG2({type:t,selectors:[["","mat-list-icon",""],["","matListIcon",""]],hostAttrs:[1,"mat-list-icon"]}),t})(),x=(()=>{class t extends g{constructor(t,e,i,n){super(),this._element=t,this._isInteractiveList=!1,this._destroyed=new a.x,this._disabled=!1,this._isInteractiveList=!!(i||n&&"action-list"===n._getListType()),this._list=i||n;const r=this._getHostElement();"button"!==r.nodeName.toLowerCase()||r.hasAttribute("type")||r.setAttribute("type","button"),this._list&&this._list._stateChanges.pipe((0,l.R)(this._destroyed)).subscribe(()=>{e.markForCheck()})}get disabled(){return this._disabled||!(!this._list||!this._list.disabled)}set disabled(t){this._disabled=(0,o.Ig)(t)}ngAfterContentInit(){(0,s.E0)(this._lines,this._element)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_isRippleDisabled(){return!this._isInteractiveList||this.disableRipple||!(!this._list||!this._list.disableRipple)}_getHostElement(){return this._element.nativeElement}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq),r.Y36(r.sBO),r.Y36(b,8),r.Y36(y,8))},t.\u0275cmp=r.Xpm({type:t,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(t,e,i){if(1&t&&(r.Suo(i,_,5),r.Suo(i,w,5),r.Suo(i,s.X2,5)),2&t){let t;r.iGM(t=r.CRH())&&(e._avatar=t.first),r.iGM(t=r.CRH())&&(e._icon=t.first),r.iGM(t=r.CRH())&&(e._lines=t)}},hostAttrs:[1,"mat-list-item","mat-focus-indicator"],hostVars:6,hostBindings:function(t,e){2&t&&r.ekj("mat-list-item-disabled",e.disabled)("mat-list-item-avatar",e._avatar||e._icon)("mat-list-item-with-avatar",e._avatar||e._icon)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},exportAs:["matListItem"],features:[r.qOj],ngContentSelectors:d,decls:6,vars:2,consts:[[1,"mat-list-item-content"],["mat-ripple","",1,"mat-list-item-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-list-text"]],template:function(t,e){1&t&&(r.F$t(u),r.TgZ(0,"div",0),r._UZ(1,"div",1),r.Hsn(2),r.TgZ(3,"div",2),r.Hsn(4,1),r.qZA(),r.Hsn(5,2),r.qZA()),2&t&&(r.xp6(1),r.Q6J("matRippleTrigger",e._getHostElement())("matRippleDisabled",e._isRippleDisabled()))},directives:[s.wG],encapsulation:2,changeDetection:0}),t})(),C=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({imports:[[s.uc,s.si,s.BQ,s.us,n.ez],s.uc,s.BQ,s.us,c.t]}),t})()},8055:(t,e,i)=>{"use strict";i.d(e,{VK:()=>Z,OP:()=>R,Tx:()=>Y,p6:()=>z});var n=i(4621),r=i(9861),s=i(5842),o=i(1572),a=i(9666),l=i(6042),c=i(5446),h=i(2041),u=i(7911),d=i(1258),p=i(4324),f=i(9056),m=i(8868),g=i(9568),y=i(6493),b=i(709),v=i(6899),_=i(1511),w=i(1522),x=i(369),C=i(1353),A=i(4894),S=i(2526);const E=["mat-menu-item",""],k=["*"];function T(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",0),o.NdJ("keydown",function(e){return o.CHM(t),o.oxw()._handleKeydown(e)})("click",function(){return o.CHM(t),o.oxw().closed.emit("click")})("@transformMenu.start",function(e){return o.CHM(t),o.oxw()._onAnimationStart(e)})("@transformMenu.done",function(e){return o.CHM(t),o.oxw()._onAnimationDone(e)}),o.TgZ(1,"div",1),o.Hsn(2),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("id",t.panelId)("ngClass",t._classList)("@transformMenu",t._panelAnimationState),o.uIk("aria-label",t.ariaLabel||null)("aria-labelledby",t.ariaLabelledby||null)("aria-describedby",t.ariaDescribedby||null)}}const M={transformMenu:(0,b.X$)("transformMenu",[(0,b.SB)("void",(0,b.oB)({opacity:0,transform:"scale(0.8)"})),(0,b.eR)("void => enter",(0,b.jt)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,b.oB)({opacity:1,transform:"scale(1)"}))),(0,b.eR)("* => void",(0,b.jt)("100ms 25ms linear",(0,b.oB)({opacity:0})))]),fadeInItems:(0,b.X$)("fadeInItems",[(0,b.SB)("showing",(0,b.oB)({opacity:1})),(0,b.eR)("void => *",[(0,b.oB)({opacity:0}),(0,b.jt)("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},L=new o.OlP("MatMenuContent"),I=new o.OlP("MAT_MENU_PANEL");class O{}const D=(0,w.Kr)((0,w.Id)(O));let R=(()=>{class t extends D{constructor(t,e,i,n){super(),this._elementRef=t,this._focusMonitor=i,this._parentMenu=n,this.role="menuitem",this._hovered=new a.x,this._focused=new a.x,this._highlighted=!1,this._triggersSubmenu=!1,n&&n.addItem&&n.addItem(this)}focus(t,e){this._focusMonitor&&t?this._focusMonitor.focusVia(this._getHostElement(),t,e):this._getHostElement().focus(e),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(t){this.disabled&&(t.preventDefault(),t.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){var t,e;const i=this._elementRef.nativeElement.cloneNode(!0),n=i.querySelectorAll("mat-icon, .material-icons");for(let r=0;r{class t{constructor(t,e,i){this._elementRef=t,this._ngZone=e,this._defaultOptions=i,this._xPosition=this._defaultOptions.xPosition,this._yPosition=this._defaultOptions.yPosition,this._directDescendantItems=new o.n_E,this._tabSubscription=l.w0.EMPTY,this._classList={},this._panelAnimationState="void",this._animationDone=new a.x,this.overlayPanelClass=this._defaultOptions.overlayPanelClass||"",this.backdropClass=this._defaultOptions.backdropClass,this._overlapTrigger=this._defaultOptions.overlapTrigger,this._hasBackdrop=this._defaultOptions.hasBackdrop,this.closed=new o.vpe,this.close=this.closed,this.panelId="mat-menu-panel-"+P++}get xPosition(){return this._xPosition}set xPosition(t){this._xPosition=t,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(t){this._yPosition=t,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(t){this._overlapTrigger=(0,r.Ig)(t)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(t){this._hasBackdrop=(0,r.Ig)(t)}set panelClass(t){const e=this._previousPanelClass;e&&e.length&&e.split(" ").forEach(t=>{this._classList[t]=!1}),this._previousPanelClass=t,t&&t.length&&(t.split(" ").forEach(t=>{this._classList[t]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(t){this.panelClass=t}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new n.Em(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._tabSubscription=this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe((0,d.O)(this._directDescendantItems),(0,p.w)(t=>(0,c.T)(...t.map(t=>t._focused)))).subscribe(t=>this._keyManager.updateActiveItem(t))}ngOnDestroy(){this._directDescendantItems.destroy(),this._tabSubscription.unsubscribe(),this.closed.complete()}_hovered(){return this._directDescendantItems.changes.pipe((0,d.O)(this._directDescendantItems),(0,p.w)(t=>(0,c.T)(...t.map(t=>t._hovered))))}addItem(t){}removeItem(t){}_handleKeydown(t){const e=t.keyCode,i=this._keyManager;switch(e){case s.hY:(0,s.Vb)(t)||(t.preventDefault(),this.closed.emit("keydown"));break;case s.oh:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case s.SV:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:e!==s.LH&&e!==s.JH||i.setFocusOrigin("keyboard"),i.onKeydown(t)}}focusFirstItem(t="program"){this.lazyContent?this._ngZone.onStable.pipe((0,f.q)(1)).subscribe(()=>this._focusFirstItem(t)):this._focusFirstItem(t)}_focusFirstItem(t){const e=this._keyManager;if(e.setFocusOrigin(t).setFirstItemActive(),!e.activeItem&&this._directDescendantItems.length){let t=this._directDescendantItems.first._getHostElement().parentElement;for(;t;){if("menu"===t.getAttribute("role")){t.focus();break}t=t.parentElement}}}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(t){const e=`mat-elevation-z${Math.min(4+t,24)}`,i=Object.keys(this._classList).find(t=>t.startsWith("mat-elevation-z"));i&&i!==this._previousElevation||(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[e]=!0,this._previousElevation=e)}setPositionClasses(t=this.xPosition,e=this.yPosition){const i=this._classList;i["mat-menu-before"]="before"===t,i["mat-menu-after"]="after"===t,i["mat-menu-above"]="above"===e,i["mat-menu-below"]="below"===e}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(t){this._animationDone.next(t),this._isAnimating=!1}_onAnimationStart(t){this._isAnimating=!0,"enter"===t.toState&&0===this._keyManager.activeItemIndex&&(t.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe((0,d.O)(this._allItems)).subscribe(t=>{this._directDescendantItems.reset(t.filter(t=>t._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.SBq),o.Y36(o.R0b),o.Y36(N))},t.\u0275dir=o.lG2({type:t,contentQueries:function(t,e,i){if(1&t&&(o.Suo(i,L,5),o.Suo(i,R,5),o.Suo(i,R,4)),2&t){let t;o.iGM(t=o.CRH())&&(e.lazyContent=t.first),o.iGM(t=o.CRH())&&(e._allItems=t),o.iGM(t=o.CRH())&&(e.items=t)}},viewQuery:function(t,e){if(1&t&&o.Gf(o.Rgc,5),2&t){let t;o.iGM(t=o.CRH())&&(e.templateRef=t.first)}},inputs:{backdropClass:"backdropClass",xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"]},outputs:{closed:"closed",close:"close"}}),t})(),Z=(()=>{class t extends F{constructor(t,e,i){super(t,e,i)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.SBq),o.Y36(o.R0b),o.Y36(N))},t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-menu"]],hostVars:3,hostBindings:function(t,e){2&t&&o.uIk("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[o._Bn([{provide:I,useExisting:t}]),o.qOj],ngContentSelectors:k,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-menu-panel",3,"id","ngClass","keydown","click"],[1,"mat-menu-content"]],template:function(t,e){1&t&&(o.F$t(),o.YNc(0,T,3,6,"ng-template"))},directives:[_.mk],styles:['mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]{pointer-events:none}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}.mat-menu-item-submenu-trigger::after{width:0;height:0;border-style:solid;border-width:5px 0 5px 5px;border-color:transparent transparent transparent currentColor;content:"";display:inline-block;position:absolute;top:50%;right:16px;transform:translateY(-50%)}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}[dir=rtl] .mat-menu-item-submenu-trigger::after{right:auto;left:16px;transform:rotateY(180deg) translateY(-50%)}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n'],encapsulation:2,data:{animation:[M.transformMenu,M.fadeInItems]},changeDetection:0}),t})();const B=new o.OlP("mat-menu-scroll-strategy"),U={provide:B,deps:[x.aV],useFactory:function(t){return()=>t.scrollStrategies.reposition()}},q=(0,C.i$)({passive:!0});let z=(()=>{class t{constructor(t,e,i,r,s,a,c,h){this._overlay=t,this._element=e,this._viewContainerRef=i,this._menuItemInstance=a,this._dir=c,this._focusMonitor=h,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=l.w0.EMPTY,this._hoverSubscription=l.w0.EMPTY,this._menuCloseSubscription=l.w0.EMPTY,this._handleTouchStart=t=>{(0,n.yG)(t)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new o.vpe,this.onMenuOpen=this.menuOpened,this.menuClosed=new o.vpe,this.onMenuClose=this.menuClosed,this._scrollStrategy=r,this._parentMaterialMenu=s instanceof F?s:void 0,e.nativeElement.addEventListener("touchstart",this._handleTouchStart,q),a&&(a._triggersSubmenu=this.triggersSubmenu())}get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(t){this.menu=t}get menu(){return this._menu}set menu(t){t!==this._menu&&(this._menu=t,this._menuCloseSubscription.unsubscribe(),t&&(this._menuCloseSubscription=t.close.subscribe(t=>{this._destroyMenu(t),"click"!==t&&"tab"!==t||!this._parentMaterialMenu||this._parentMaterialMenu.closed.emit(t)})))}ngAfterContentInit(){this._checkMenu(),this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,q),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!(!this._menuItemInstance||!this._parentMaterialMenu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){if(this._menuOpen)return;this._checkMenu();const t=this._createOverlay(),e=t.getConfig();this._setPosition(e.positionStrategy),e.hasBackdrop=null==this.menu.hasBackdrop?!this.triggersSubmenu():this.menu.hasBackdrop,t.attach(this._getPortal()),this.menu.lazyContent&&this.menu.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(),this.menu instanceof F&&this.menu._startAnimation()}closeMenu(){this.menu.close.emit()}focus(t,e){this._focusMonitor&&t?this._focusMonitor.focusVia(this._element,t,e):this._element.nativeElement.focus(e)}updatePosition(){var t;null===(t=this._overlayRef)||void 0===t||t.updatePosition()}_destroyMenu(t){if(!this._overlayRef||!this.menuOpen)return;const e=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),!this.restoreFocus||"keydown"!==t&&this._openedBy&&this.triggersSubmenu()||this.focus(this._openedBy),this._openedBy=void 0,e instanceof F?(e._resetAnimation(),e.lazyContent?e._animationDone.pipe((0,m.h)(t=>"void"===t.toState),(0,f.q)(1),(0,g.R)(e.lazyContent._attached)).subscribe({next:()=>e.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),e.lazyContent&&e.lazyContent.detach())}_initMenu(){this.menu.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,this.menu.direction=this.dir,this._setMenuElevation(),this.menu.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(){if(this.menu.setElevation){let t=0,e=this.menu.parentMenu;for(;e;)t++,e=e.parentMenu;this.menu.setElevation(t)}}_setIsMenuOpen(t){this._menuOpen=t,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&(this._menuItemInstance._highlighted=t)}_checkMenu(){}_createOverlay(){if(!this._overlayRef){const t=this._getOverlayConfig();this._subscribeToPositions(t.positionStrategy),this._overlayRef=this._overlay.create(t),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(){return new x.X_({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:this.menu.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:this.menu.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(t){this.menu.setPositionClasses&&t.positionChanges.subscribe(t=>{this.menu.setPositionClasses("start"===t.connectionPair.overlayX?"after":"before","top"===t.connectionPair.overlayY?"below":"above")})}_setPosition(t){let[e,i]="before"===this.menu.xPosition?["end","start"]:["start","end"],[n,r]="above"===this.menu.yPosition?["bottom","top"]:["top","bottom"],[s,o]=[n,r],[a,l]=[e,i],c=0;this.triggersSubmenu()?(l=e="before"===this.menu.xPosition?"start":"end",i=a="end"===e?"start":"end",c="bottom"===n?8:-8):this.menu.overlapTrigger||(s="top"===n?"bottom":"top",o="top"===r?"bottom":"top"),t.withPositions([{originX:e,originY:s,overlayX:a,overlayY:n,offsetY:c},{originX:i,originY:s,overlayX:l,overlayY:n,offsetY:c},{originX:e,originY:o,overlayX:a,overlayY:r,offsetY:-c},{originX:i,originY:o,overlayX:l,overlayY:r,offsetY:-c}])}_menuClosingActions(){const t=this._overlayRef.backdropClick(),e=this._overlayRef.detachments(),i=this._parentMaterialMenu?this._parentMaterialMenu.closed:(0,h.of)(),n=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe((0,m.h)(t=>t!==this._menuItemInstance),(0,m.h)(()=>this._menuOpen)):(0,h.of)();return(0,c.T)(t,i,n,e)}_handleMousedown(t){(0,n.X6)(t)||(this._openedBy=0===t.button?"mouse":void 0,this.triggersSubmenu()&&t.preventDefault())}_handleKeydown(t){const e=t.keyCode;e!==s.K5&&e!==s.L_||(this._openedBy="keyboard"),this.triggersSubmenu()&&(e===s.SV&&"ltr"===this.dir||e===s.oh&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(t){this.triggersSubmenu()?(t.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe((0,m.h)(t=>t===this._menuItemInstance&&!t.disabled),(0,y.g)(0,u.E)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof F&&this.menu._isAnimating?this.menu._animationDone.pipe((0,f.q)(1),(0,y.g)(0,u.E),(0,g.R)(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(){return this._portal&&this._portal.templateRef===this.menu.templateRef||(this._portal=new v.UE(this.menu.templateRef,this._viewContainerRef)),this._portal}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(x.aV),o.Y36(o.SBq),o.Y36(o.s_b),o.Y36(B),o.Y36(I,8),o.Y36(R,10),o.Y36(S.Is,8),o.Y36(n.tE))},t.\u0275dir=o.lG2({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:["aria-haspopup","true",1,"mat-menu-trigger"],hostVars:2,hostBindings:function(t,e){1&t&&o.NdJ("mousedown",function(t){return e._handleMousedown(t)})("keydown",function(t){return e._handleKeydown(t)})("click",function(t){return e._handleClick(t)}),2&t&&o.uIk("aria-expanded",e.menuOpen||null)("aria-controls",e.menuOpen?e.menu.panelId:null)},inputs:{restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"],_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"]}),t})(),H=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=o.oAB({type:t}),t.\u0275inj=o.cJS({providers:[U],imports:[w.BQ]}),t})(),Y=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=o.oAB({type:t}),t.\u0275inj=o.cJS({providers:[U],imports:[[_.ez,w.BQ,w.si,x.U8,H],A.ZD,w.BQ,H]}),t})()},3005:(t,e,i)=>{"use strict";i.d(e,{NW:()=>A,ye:()=>b,TU:()=>S});var n=i(1511),r=i(1572),s=i(1522),o=i(5980),a=i(4786),l=i(6828),c=i(9861),h=i(9666),u=i(6283);function d(t,e){if(1&t&&(r.TgZ(0,"mat-option",19),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.Q6J("value",t),r.xp6(1),r.hij(" ",t," ")}}function p(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"mat-form-field",16),r.TgZ(1,"mat-select",17),r.NdJ("selectionChange",function(e){return r.CHM(t),r.oxw(2)._changePageSize(e.value)}),r.YNc(2,d,2,2,"mat-option",18),r.qZA(),r.qZA()}if(2&t){const t=r.oxw(2);r.Q6J("appearance",t._formFieldAppearance)("color",t.color),r.xp6(1),r.Q6J("value",t.pageSize)("disabled",t.disabled)("aria-label",t._intl.itemsPerPageLabel),r.xp6(1),r.Q6J("ngForOf",t._displayedPageSizeOptions)}}function f(t,e){if(1&t&&(r.TgZ(0,"div",20),r._uU(1),r.qZA()),2&t){const t=r.oxw(2);r.xp6(1),r.Oqu(t.pageSize)}}function m(t,e){if(1&t&&(r.TgZ(0,"div",12),r.TgZ(1,"div",13),r._uU(2),r.qZA(),r.YNc(3,p,3,6,"mat-form-field",14),r.YNc(4,f,2,1,"div",15),r.qZA()),2&t){const t=r.oxw();r.xp6(2),r.hij(" ",t._intl.itemsPerPageLabel," "),r.xp6(1),r.Q6J("ngIf",t._displayedPageSizeOptions.length>1),r.xp6(1),r.Q6J("ngIf",t._displayedPageSizeOptions.length<=1)}}function g(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",21),r.NdJ("click",function(){return r.CHM(t),r.oxw().firstPage()}),r.O4$(),r.TgZ(1,"svg",7),r._UZ(2,"path",22),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("matTooltip",t._intl.firstPageLabel)("matTooltipDisabled",t._previousButtonsDisabled())("matTooltipPosition","above")("disabled",t._previousButtonsDisabled()),r.uIk("aria-label",t._intl.firstPageLabel)}}function y(t,e){if(1&t){const t=r.EpF();r.O4$(),r.kcU(),r.TgZ(0,"button",23),r.NdJ("click",function(){return r.CHM(t),r.oxw().lastPage()}),r.O4$(),r.TgZ(1,"svg",7),r._UZ(2,"path",24),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("matTooltip",t._intl.lastPageLabel)("matTooltipDisabled",t._nextButtonsDisabled())("matTooltipPosition","above")("disabled",t._nextButtonsDisabled()),r.uIk("aria-label",t._intl.lastPageLabel)}}let b=(()=>{class t{constructor(){this.changes=new h.x,this.itemsPerPageLabel="Items per page:",this.nextPageLabel="Next page",this.previousPageLabel="Previous page",this.firstPageLabel="First page",this.lastPageLabel="Last page",this.getRangeLabel=(t,e,i)=>{if(0==i||0==e)return`0 of ${i}`;const n=t*e;return`${n+1} \u2013 ${n<(i=Math.max(i,0))?Math.min(n+e,i):n+e} of ${i}`}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=r.Yz7({factory:function(){return new t},token:t,providedIn:"root"}),t})();const v={provide:b,deps:[[new r.FiY,new r.tp0,b]],useFactory:function(t){return t||new b}},_=new r.OlP("MAT_PAGINATOR_DEFAULT_OPTIONS");class w{}const x=(0,s.Id)((0,s.dB)(w));let C=(()=>{class t extends x{constructor(t,e,i){if(super(),this._intl=t,this._changeDetectorRef=e,this._pageIndex=0,this._length=0,this._pageSizeOptions=[],this._hidePageSize=!1,this._showFirstLastButtons=!1,this.page=new r.vpe,this._intlChanges=t.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){const{pageSize:t,pageSizeOptions:e,hidePageSize:n,showFirstLastButtons:r}=i;null!=t&&(this._pageSize=t),null!=e&&(this._pageSizeOptions=e),null!=n&&(this._hidePageSize=n),null!=r&&(this._showFirstLastButtons=r)}}get pageIndex(){return this._pageIndex}set pageIndex(t){this._pageIndex=Math.max((0,c.su)(t),0),this._changeDetectorRef.markForCheck()}get length(){return this._length}set length(t){this._length=(0,c.su)(t),this._changeDetectorRef.markForCheck()}get pageSize(){return this._pageSize}set pageSize(t){this._pageSize=Math.max((0,c.su)(t),0),this._updateDisplayedPageSizeOptions()}get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(t){this._pageSizeOptions=(t||[]).map(t=>(0,c.su)(t)),this._updateDisplayedPageSizeOptions()}get hidePageSize(){return this._hidePageSize}set hidePageSize(t){this._hidePageSize=(0,c.Ig)(t)}get showFirstLastButtons(){return this._showFirstLastButtons}set showFirstLastButtons(t){this._showFirstLastButtons=(0,c.Ig)(t)}ngOnInit(){this._initialized=!0,this._updateDisplayedPageSizeOptions(),this._markInitialized()}ngOnDestroy(){this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;const t=this.pageIndex;this.pageIndex++,this._emitPageEvent(t)}previousPage(){if(!this.hasPreviousPage())return;const t=this.pageIndex;this.pageIndex--,this._emitPageEvent(t)}firstPage(){if(!this.hasPreviousPage())return;const t=this.pageIndex;this.pageIndex=0,this._emitPageEvent(t)}lastPage(){if(!this.hasNextPage())return;const t=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(t)}hasPreviousPage(){return this.pageIndex>=1&&0!=this.pageSize}hasNextPage(){const t=this.getNumberOfPages()-1;return this.pageIndext-e),this._changeDetectorRef.markForCheck())}_emitPageEvent(t){this.page.emit({previousPageIndex:t,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(b),r.Y36(r.sBO),r.Y36(void 0))},t.\u0275dir=r.lG2({type:t,inputs:{pageIndex:"pageIndex",length:"length",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",hidePageSize:"hidePageSize",showFirstLastButtons:"showFirstLastButtons",color:"color"},outputs:{page:"page"},features:[r.qOj]}),t})(),A=(()=>{class t extends C{constructor(t,e,i){super(t,e,i),i&&null!=i.formFieldAppearance&&(this._formFieldAppearance=i.formFieldAppearance)}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(b),r.Y36(r.sBO),r.Y36(_,8))},t.\u0275cmp=r.Xpm({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-paginator"],inputs:{disabled:"disabled"},exportAs:["matPaginator"],features:[r.qOj],decls:14,vars:14,consts:[[1,"mat-paginator-outer-container"],[1,"mat-paginator-container"],["class","mat-paginator-page-size",4,"ngIf"],[1,"mat-paginator-range-actions"],[1,"mat-paginator-range-label"],["mat-icon-button","","type","button","class","mat-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-previous",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["viewBox","0 0 24 24","focusable","false",1,"mat-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-next",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","class","mat-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],[1,"mat-paginator-page-size"],[1,"mat-paginator-page-size-label"],["class","mat-paginator-page-size-select",3,"appearance","color",4,"ngIf"],["class","mat-paginator-page-size-value",4,"ngIf"],[1,"mat-paginator-page-size-select",3,"appearance","color"],[3,"value","disabled","aria-label","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"mat-paginator-page-size-value"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.YNc(2,m,5,3,"div",2),r.TgZ(3,"div",3),r.TgZ(4,"div",4),r._uU(5),r.qZA(),r.YNc(6,g,3,5,"button",5),r.TgZ(7,"button",6),r.NdJ("click",function(){return e.previousPage()}),r.O4$(),r.TgZ(8,"svg",7),r._UZ(9,"path",8),r.qZA(),r.qZA(),r.kcU(),r.TgZ(10,"button",9),r.NdJ("click",function(){return e.nextPage()}),r.O4$(),r.TgZ(11,"svg",7),r._UZ(12,"path",10),r.qZA(),r.qZA(),r.YNc(13,y,3,5,"button",11),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(2),r.Q6J("ngIf",!e.hidePageSize),r.xp6(3),r.hij(" ",e._intl.getRangeLabel(e.pageIndex,e.pageSize,e.length)," "),r.xp6(1),r.Q6J("ngIf",e.showFirstLastButtons),r.xp6(1),r.Q6J("matTooltip",e._intl.previousPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("matTooltipPosition","above")("disabled",e._previousButtonsDisabled()),r.uIk("aria-label",e._intl.previousPageLabel),r.xp6(3),r.Q6J("matTooltip",e._intl.nextPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("matTooltipPosition","above")("disabled",e._nextButtonsDisabled()),r.uIk("aria-label",e._intl.nextPageLabel),r.xp6(3),r.Q6J("ngIf",e.showFirstLastButtons))},directives:[n.O5,o.lW,l.gM,u.KE,a.gD,n.sg,s.ey],styles:[".mat-paginator{display:block}.mat-paginator-outer-container{display:flex}.mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}.mat-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-paginator-page-size{margin-right:0;margin-left:8px}.mat-paginator-page-size-label{margin:0 4px}.mat-paginator-page-size-select{margin:6px 4px 0 4px;width:56px}.mat-paginator-page-size-select.mat-form-field-appearance-outline{width:64px}.mat-paginator-page-size-select.mat-form-field-appearance-fill{width:64px}.mat-paginator-range-label{margin:0 32px 0 24px}.mat-paginator-range-actions{display:flex;align-items:center}.mat-paginator-icon{width:28px;fill:currentColor}[dir=rtl] .mat-paginator-icon{transform:rotate(180deg)}\n"],encapsulation:2,changeDetection:0}),t})(),S=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({providers:[v],imports:[[n.ez,o.ot,a.LD,l.AV,s.BQ]]}),t})()},5994:(t,e,i)=>{"use strict";i.d(e,{pW:()=>g,Cv:()=>b});var n=i(1572),r=i(1511),s=i(1522),o=i(9861),a=i(3490),l=i(6042),c=i(5960),h=i(8868);const u=["primaryValueBar"];class d{constructor(t){this._elementRef=t}}const p=(0,s.pj)(d,"primary"),f=new n.OlP("mat-progress-bar-location",{providedIn:"root",factory:function(){const t=(0,n.f3M)(r.K0),e=t?t.location:null;return{getPathname:()=>e?e.pathname+e.search:""}}});let m=0,g=(()=>{class t extends p{constructor(t,e,i,r){super(t),this._elementRef=t,this._ngZone=e,this._animationMode=i,this._isNoopAnimation=!1,this._value=0,this._bufferValue=0,this.animationEnd=new n.vpe,this._animationEndSubscription=l.w0.EMPTY,this.mode="determinate",this.progressbarId="mat-progress-bar-"+m++;const s=r?r.getPathname().split("#")[0]:"";this._rectangleFillValue=`url('${s}#${this.progressbarId}')`,this._isNoopAnimation="NoopAnimations"===i}get value(){return this._value}set value(t){this._value=y((0,o.su)(t)||0)}get bufferValue(){return this._bufferValue}set bufferValue(t){this._bufferValue=y(t||0)}_primaryTransform(){return{transform:`scale3d(${this.value/100}, 1, 1)`}}_bufferTransform(){return"buffer"===this.mode?{transform:`scale3d(${this.bufferValue/100}, 1, 1)`}:null}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{const t=this._primaryValueBar.nativeElement;this._animationEndSubscription=(0,c.R)(t,"transitionend").pipe((0,h.h)(e=>e.target===t)).subscribe(()=>{"determinate"!==this.mode&&"buffer"!==this.mode||this._ngZone.run(()=>this.animationEnd.next({value:this.value}))})})}ngOnDestroy(){this._animationEndSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(n.R0b),n.Y36(a.Qb,8),n.Y36(f,8))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-progress-bar"]],viewQuery:function(t,e){if(1&t&&n.Gf(u,5),2&t){let t;n.iGM(t=n.CRH())&&(e._primaryValueBar=t.first)}},hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-progress-bar"],hostVars:4,hostBindings:function(t,e){2&t&&(n.uIk("aria-valuenow","indeterminate"===e.mode||"query"===e.mode?null:e.value)("mode",e.mode),n.ekj("_mat-animation-noopable",e._isNoopAnimation))},inputs:{color:"color",mode:"mode",value:"value",bufferValue:"bufferValue"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],features:[n.qOj],decls:10,vars:4,consts:[["aria-hidden","true"],["width","100%","height","4","focusable","false",1,"mat-progress-bar-background","mat-progress-bar-element"],["x","4","y","0","width","8","height","4","patternUnits","userSpaceOnUse",3,"id"],["cx","2","cy","2","r","2"],["width","100%","height","100%"],[1,"mat-progress-bar-buffer","mat-progress-bar-element",3,"ngStyle"],[1,"mat-progress-bar-primary","mat-progress-bar-fill","mat-progress-bar-element",3,"ngStyle"],["primaryValueBar",""],[1,"mat-progress-bar-secondary","mat-progress-bar-fill","mat-progress-bar-element"]],template:function(t,e){1&t&&(n.TgZ(0,"div",0),n.O4$(),n.TgZ(1,"svg",1),n.TgZ(2,"defs"),n.TgZ(3,"pattern",2),n._UZ(4,"circle",3),n.qZA(),n.qZA(),n._UZ(5,"rect",4),n.qZA(),n.kcU(),n._UZ(6,"div",5),n._UZ(7,"div",6,7),n._UZ(9,"div",8),n.qZA()),2&t&&(n.xp6(3),n.Q6J("id",e.progressbarId),n.xp6(2),n.uIk("fill",e._rectangleFillValue),n.xp6(1),n.Q6J("ngStyle",e._bufferTransform()),n.xp6(1),n.Q6J("ngStyle",e._primaryTransform()))},directives:[r.PC],styles:['.mat-progress-bar{display:block;height:4px;overflow:hidden;position:relative;transition:opacity 250ms linear;width:100%}._mat-animation-noopable.mat-progress-bar{transition:none;animation:none}.mat-progress-bar .mat-progress-bar-element,.mat-progress-bar .mat-progress-bar-fill::after{height:100%;position:absolute;width:100%}.mat-progress-bar .mat-progress-bar-background{width:calc(100% + 10px)}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-background{display:none}.mat-progress-bar .mat-progress-bar-buffer{transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-buffer{border-top:solid 5px;opacity:.5}.mat-progress-bar .mat-progress-bar-secondary{display:none}.mat-progress-bar .mat-progress-bar-fill{animation:none;transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-fill{border-top:solid 4px}.mat-progress-bar .mat-progress-bar-fill::after{animation:none;content:"";display:inline-block;left:0}.mat-progress-bar[dir=rtl],[dir=rtl] .mat-progress-bar{transform:rotateY(180deg)}.mat-progress-bar[mode=query]{transform:rotateZ(180deg)}.mat-progress-bar[mode=query][dir=rtl],[dir=rtl] .mat-progress-bar[mode=query]{transform:rotateZ(180deg) rotateY(180deg)}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-fill,.mat-progress-bar[mode=query] .mat-progress-bar-fill{transition:none}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary,.mat-progress-bar[mode=query] .mat-progress-bar-primary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-translate 2000ms infinite linear;left:-145.166611%}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-primary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary,.mat-progress-bar[mode=query] .mat-progress-bar-secondary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-translate 2000ms infinite linear;left:-54.888891%;display:block}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-secondary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=buffer] .mat-progress-bar-background{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-background-scroll 250ms infinite linear;display:block}.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-buffer,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-background{animation:none;transition-duration:1ms}@keyframes mat-progress-bar-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mat-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mat-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-background-scroll{to{transform:translateX(-8px)}}\n'],encapsulation:2,changeDetection:0}),t})();function y(t,e=0,i=100){return Math.max(e,Math.min(i,t))}let b=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[r.ez,s.BQ],s.BQ]}),t})()},7806:(t,e,i)=>{"use strict";i.d(e,{Cq:()=>v,$g:()=>b});var n=i(1572),r=i(1511),s=i(1522),o=i(9861),a=i(1353),l=i(3490);function c(t,e){if(1&t&&(n.O4$(),n._UZ(0,"circle",3)),2&t){const t=n.oxw();n.Udp("animation-name","mat-progress-spinner-stroke-rotate-"+t._spinnerAnimationLabel)("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%"),n.uIk("r",t._getCircleRadius())}}function h(t,e){if(1&t&&(n.O4$(),n._UZ(0,"circle",3)),2&t){const t=n.oxw();n.Udp("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%"),n.uIk("r",t._getCircleRadius())}}function u(t,e){if(1&t&&(n.O4$(),n._UZ(0,"circle",3)),2&t){const t=n.oxw();n.Udp("animation-name","mat-progress-spinner-stroke-rotate-"+t._spinnerAnimationLabel)("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%"),n.uIk("r",t._getCircleRadius())}}function d(t,e){if(1&t&&(n.O4$(),n._UZ(0,"circle",3)),2&t){const t=n.oxw();n.Udp("stroke-dashoffset",t._getStrokeDashOffset(),"px")("stroke-dasharray",t._getStrokeCircumference(),"px")("stroke-width",t._getCircleStrokeWidth(),"%"),n.uIk("r",t._getCircleRadius())}}const p=".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:currentColor;stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{animation:mat-progress-spinner-stroke-rotate-fallback 10000ms cubic-bezier(0.87, 0.03, 0.33, 1) infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition-property:stroke}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-fallback-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}@keyframes mat-progress-spinner-stroke-rotate-fallback{0%{transform:rotate(0deg)}25%{transform:rotate(1170deg)}50%{transform:rotate(2340deg)}75%{transform:rotate(3510deg)}100%{transform:rotate(4680deg)}}\n";class f{constructor(t){this._elementRef=t}}const m=(0,s.pj)(f,"primary"),g=new n.OlP("mat-progress-spinner-default-options",{providedIn:"root",factory:function(){return{diameter:100}}});let y=(()=>{class t extends m{constructor(e,i,n,r,s){super(e),this._elementRef=e,this._document=n,this._diameter=100,this._value=0,this._fallbackAnimation=!1,this.mode="determinate";const o=t._diameters;this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),o.has(n.head)||o.set(n.head,new Set([100])),this._fallbackAnimation=i.EDGE||i.TRIDENT,this._noopAnimations="NoopAnimations"===r&&!!s&&!s._forceAnimations,s&&(s.diameter&&(this.diameter=s.diameter),s.strokeWidth&&(this.strokeWidth=s.strokeWidth))}get diameter(){return this._diameter}set diameter(t){this._diameter=(0,o.su)(t),this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),!this._fallbackAnimation&&this._styleRoot&&this._attachStyleNode()}get strokeWidth(){return this._strokeWidth||this.diameter/10}set strokeWidth(t){this._strokeWidth=(0,o.su)(t)}get value(){return"determinate"===this.mode?this._value:0}set value(t){this._value=Math.max(0,Math.min(100,(0,o.su)(t)))}ngOnInit(){const t=this._elementRef.nativeElement;this._styleRoot=(0,a.kV)(t)||this._document.head,this._attachStyleNode(),t.classList.add(`mat-progress-spinner-indeterminate${this._fallbackAnimation?"-fallback":""}-animation`)}_getCircleRadius(){return(this.diameter-10)/2}_getViewBox(){const t=2*this._getCircleRadius()+this.strokeWidth;return`0 0 ${t} ${t}`}_getStrokeCircumference(){return 2*Math.PI*this._getCircleRadius()}_getStrokeDashOffset(){return"determinate"===this.mode?this._getStrokeCircumference()*(100-this._value)/100:this._fallbackAnimation&&"indeterminate"===this.mode?.2*this._getStrokeCircumference():null}_getCircleStrokeWidth(){return this.strokeWidth/this.diameter*100}_attachStyleNode(){const e=this._styleRoot,i=this._diameter,n=t._diameters;let r=n.get(e);if(!r||!r.has(i)){const t=this._document.createElement("style");t.setAttribute("mat-spinner-animation",this._spinnerAnimationLabel),t.textContent=this._getAnimationText(),e.appendChild(t),r||(r=new Set,n.set(e,r)),r.add(i)}}_getAnimationText(){const t=this._getStrokeCircumference();return"\n @keyframes mat-progress-spinner-stroke-rotate-DIAMETER {\n 0% { stroke-dashoffset: START_VALUE; transform: rotate(0); }\n 12.5% { stroke-dashoffset: END_VALUE; transform: rotate(0); }\n 12.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n 25% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n\n 25.0001% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); }\n 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); }\n 37.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n 50% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n\n 50.0001% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); }\n 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); }\n 62.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n 75% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n\n 75.0001% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); }\n 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); }\n 87.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n }\n".replace(/START_VALUE/g,""+.95*t).replace(/END_VALUE/g,""+.2*t).replace(/DIAMETER/g,`${this._spinnerAnimationLabel}`)}_getSpinnerAnimationLabel(){return this.diameter.toString().replace(".","_")}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(a.t4),n.Y36(r.K0,8),n.Y36(l.Qb,8),n.Y36(g))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-progress-spinner"]],hostAttrs:["role","progressbar","tabindex","-1",1,"mat-progress-spinner"],hostVars:10,hostBindings:function(t,e){2&t&&(n.uIk("aria-valuemin","determinate"===e.mode?0:null)("aria-valuemax","determinate"===e.mode?100:null)("aria-valuenow","determinate"===e.mode?e.value:null)("mode",e.mode),n.Udp("width",e.diameter,"px")("height",e.diameter,"px"),n.ekj("_mat-animation-noopable",e._noopAnimations))},inputs:{color:"color",mode:"mode",diameter:"diameter",strokeWidth:"strokeWidth",value:"value"},exportAs:["matProgressSpinner"],features:[n.qOj],decls:3,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function(t,e){1&t&&(n.O4$(),n.TgZ(0,"svg",0),n.YNc(1,c,1,9,"circle",1),n.YNc(2,h,1,7,"circle",2),n.qZA()),2&t&&(n.Udp("width",e.diameter,"px")("height",e.diameter,"px"),n.Q6J("ngSwitch","indeterminate"===e.mode),n.uIk("viewBox",e._getViewBox()),n.xp6(1),n.Q6J("ngSwitchCase",!0),n.xp6(1),n.Q6J("ngSwitchCase",!1))},directives:[r.RF,r.n9],styles:[p],encapsulation:2,changeDetection:0}),t._diameters=new WeakMap,t})(),b=(()=>{class t extends y{constructor(t,e,i,n,r){super(t,e,i,n,r),this.mode="indeterminate"}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(a.t4),n.Y36(r.K0,8),n.Y36(l.Qb,8),n.Y36(g))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-spinner"]],hostAttrs:["role","progressbar","mode","indeterminate",1,"mat-spinner","mat-progress-spinner"],hostVars:6,hostBindings:function(t,e){2&t&&(n.Udp("width",e.diameter,"px")("height",e.diameter,"px"),n.ekj("_mat-animation-noopable",e._noopAnimations))},inputs:{color:"color"},features:[n.qOj],decls:3,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function(t,e){1&t&&(n.O4$(),n.TgZ(0,"svg",0),n.YNc(1,u,1,9,"circle",1),n.YNc(2,d,1,7,"circle",2),n.qZA()),2&t&&(n.Udp("width",e.diameter,"px")("height",e.diameter,"px"),n.Q6J("ngSwitch","indeterminate"===e.mode),n.uIk("viewBox",e._getViewBox()),n.xp6(1),n.Q6J("ngSwitchCase",!0),n.xp6(1),n.Q6J("ngSwitchCase",!1))},directives:[r.RF,r.n9],styles:[p],encapsulation:2,changeDetection:0}),t})(),v=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[s.BQ,r.ez],s.BQ]}),t})()},4810:(t,e,i)=>{"use strict";i.d(e,{U0:()=>C,VQ:()=>v,Fk:()=>A});var n=i(1572),r=i(1522),s=i(9861),o=i(6073),a=i(3490),l=i(4621),c=i(4230);const h=["input"],u=function(t){return{enterDuration:t}},d=["*"],p=new n.OlP("mat-radio-default-options",{providedIn:"root",factory:function(){return{color:"accent"}}});let f=0;const m={provide:o.JU,useExisting:(0,n.Gpc)(()=>v),multi:!0};class g{constructor(t,e){this.source=t,this.value=e}}const y=new n.OlP("MatRadioGroup");let b=(()=>{class t{constructor(t){this._changeDetector=t,this._value=null,this._name="mat-radio-group-"+f++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new n.vpe}get name(){return this._name}set name(t){this._name=t,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(t){this._labelPosition="before"===t?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(t){this._selected=t,this.value=t?t.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(t){this._disabled=(0,s.Ig)(t),this._markRadiosForCheck()}get required(){return this._required}set required(t){this._required=(0,s.Ig)(t),this._markRadiosForCheck()}ngAfterContentInit(){this._isInitialized=!0}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(t=>{t.name=this.name,t._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(t=>{t.checked=this.value===t.value,t.checked&&(this._selected=t)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new g(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(t=>t._markForCheck())}writeValue(t){this.value=t,this._changeDetector.markForCheck()}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetector.markForCheck()}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.sBO))},t.\u0275dir=n.lG2({type:t,inputs:{name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:"disabled",required:"required",color:"color"},outputs:{change:"change"}}),t})(),v=(()=>{class t extends b{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275dir=n.lG2({type:t,selectors:[["mat-radio-group"]],contentQueries:function(t,e,i){if(1&t&&n.Suo(i,C,5),2&t){let t;n.iGM(t=n.CRH())&&(e._radios=t)}},hostAttrs:["role","radiogroup",1,"mat-radio-group"],exportAs:["matRadioGroup"],features:[n._Bn([m,{provide:y,useExisting:t}]),n.qOj]}),t})();class _{constructor(t){this._elementRef=t}}const w=(0,r.Kr)((0,r.sb)(_));let x=(()=>{class t extends w{constructor(t,e,i,r,o,a,l,c){super(e),this._changeDetector=i,this._focusMonitor=r,this._radioDispatcher=o,this._providerOverride=l,this._uniqueId="mat-radio-"+ ++f,this.id=this._uniqueId,this.change=new n.vpe,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this.radioGroup=t,this._noopAnimations="NoopAnimations"===a,c&&(this.tabIndex=(0,s.su)(c,0)),this._removeUniqueSelectionListener=o.listen((t,e)=>{t!==this.id&&e===this.name&&(this.checked=!1)})}get checked(){return this._checked}set checked(t){const e=(0,s.Ig)(t);this._checked!==e&&(this._checked=e,e&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!e&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),e&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===t),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(t){this._labelPosition=t}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(t){this._setDisabled((0,s.Ig)(t))}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(t){this._required=(0,s.Ig)(t)}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"}set color(t){this._color=t}get inputId(){return`${this.id||this._uniqueId}-input`}focus(t,e){e?this._focusMonitor.focusVia(this._inputElement,e,t):this._inputElement.nativeElement.focus(t)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{!t&&this.radioGroup&&this.radioGroup._touch()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new g(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputClick(t){t.stopPropagation()}_onInputChange(t){t.stopPropagation();const e=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),e&&this.radioGroup._emitChangeEvent())}_setDisabled(t){this._disabled!==t&&(this._disabled=t,this._changeDetector.markForCheck())}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(b),n.Y36(n.SBq),n.Y36(n.sBO),n.Y36(l.tE),n.Y36(c.A8),n.Y36(String),n.Y36(void 0),n.Y36(String))},t.\u0275dir=n.lG2({type:t,viewQuery:function(t,e){if(1&t&&n.Gf(h,5),2&t){let t;n.iGM(t=n.CRH())&&(e._inputElement=t.first)}},inputs:{id:"id",checked:"checked",value:"value",labelPosition:"labelPosition",disabled:"disabled",required:"required",color:"color",name:"name",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"]},outputs:{change:"change"},features:[n.qOj]}),t})(),C=(()=>{class t extends x{constructor(t,e,i,n,r,s,o,a){super(t,e,i,n,r,s,o,a)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(y,8),n.Y36(n.SBq),n.Y36(n.sBO),n.Y36(l.tE),n.Y36(c.A8),n.Y36(a.Qb,8),n.Y36(p,8),n.$8M("tabindex"))},t.\u0275cmp=n.Xpm({type:t,selectors:[["mat-radio-button"]],hostAttrs:[1,"mat-radio-button"],hostVars:17,hostBindings:function(t,e){1&t&&n.NdJ("focus",function(){return e._inputElement.nativeElement.focus()}),2&t&&(n.uIk("tabindex",null)("id",e.id)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),n.ekj("mat-radio-checked",e.checked)("mat-radio-disabled",e.disabled)("_mat-animation-noopable",e._noopAnimations)("mat-primary","primary"===e.color)("mat-accent","accent"===e.color)("mat-warn","warn"===e.color))},inputs:{disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matRadioButton"],features:[n.qOj],ngContentSelectors:d,decls:13,vars:20,consts:[[1,"mat-radio-label"],["label",""],[1,"mat-radio-container"],[1,"mat-radio-outer-circle"],[1,"mat-radio-inner-circle"],["type","radio",1,"mat-radio-input","cdk-visually-hidden",3,"id","checked","disabled","tabIndex","required","change","click"],["input",""],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered","matRippleRadius","matRippleAnimation"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mat-radio-label-content"],[2,"display","none"]],template:function(t,e){if(1&t&&(n.F$t(),n.TgZ(0,"label",0,1),n.TgZ(2,"span",2),n._UZ(3,"span",3),n._UZ(4,"span",4),n.TgZ(5,"input",5,6),n.NdJ("change",function(t){return e._onInputChange(t)})("click",function(t){return e._onInputClick(t)}),n.qZA(),n.TgZ(7,"span",7),n._UZ(8,"span",8),n.qZA(),n.qZA(),n.TgZ(9,"span",9),n.TgZ(10,"span",10),n._uU(11,"\xa0"),n.qZA(),n.Hsn(12),n.qZA(),n.qZA()),2&t){const t=n.MAs(1);n.uIk("for",e.inputId),n.xp6(5),n.Q6J("id",e.inputId)("checked",e.checked)("disabled",e.disabled)("tabIndex",e.tabIndex)("required",e.required),n.uIk("name",e.name)("value",e.value)("aria-label",e.ariaLabel)("aria-labelledby",e.ariaLabelledby)("aria-describedby",e.ariaDescribedby),n.xp6(2),n.Q6J("matRippleTrigger",t)("matRippleDisabled",e._isRippleDisabled())("matRippleCentered",!0)("matRippleRadius",20)("matRippleAnimation",n.VKq(18,u,e._noopAnimations?0:150)),n.xp6(2),n.ekj("mat-radio-label-before","before"==e.labelPosition)}},directives:[r.wG],styles:[".mat-radio-button{display:inline-block;-webkit-tap-highlight-color:transparent;outline:0}.mat-radio-label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%}.mat-radio-container{box-sizing:border-box;display:inline-block;position:relative;width:20px;height:20px;flex-shrink:0}.mat-radio-outer-circle{box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;transition:border-color ease 280ms;width:20px;border-width:2px;border-style:solid;border-radius:50%}._mat-animation-noopable .mat-radio-outer-circle{transition:none}.mat-radio-inner-circle{border-radius:50%;box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;transition:transform ease 280ms,background-color ease 280ms;width:20px;transform:scale(0.001);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-radio-inner-circle{transition:none}.mat-radio-checked .mat-radio-inner-circle{transform:scale(0.5)}.cdk-high-contrast-active .mat-radio-checked .mat-radio-inner-circle{border:solid 10px}.mat-radio-label-content{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto;display:inline-block;order:0;line-height:inherit;padding-left:8px;padding-right:0}[dir=rtl] .mat-radio-label-content{padding-right:8px;padding-left:0}.mat-radio-label-content.mat-radio-label-before{order:-1;padding-left:0;padding-right:8px}[dir=rtl] .mat-radio-label-content.mat-radio-label-before{padding-right:0;padding-left:8px}.mat-radio-disabled,.mat-radio-disabled .mat-radio-label{cursor:default}.mat-radio-button .mat-radio-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-radio-button .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple){opacity:.16}.mat-radio-persistent-ripple{width:100%;height:100%;transform:none;top:0;left:0}.mat-radio-container:hover .mat-radio-persistent-ripple{opacity:.04}.mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-persistent-ripple,.mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-persistent-ripple{opacity:.12}.mat-radio-persistent-ripple,.mat-radio-disabled .mat-radio-container:hover .mat-radio-persistent-ripple{opacity:0}@media(hover: none){.mat-radio-container:hover .mat-radio-persistent-ripple{display:none}}.mat-radio-input{bottom:0;left:50%}.cdk-high-contrast-active .mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-ripple,.cdk-high-contrast-active .mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-ripple{outline:solid 3px}.cdk-high-contrast-active .mat-radio-disabled{opacity:.5}\n"],encapsulation:2,changeDetection:0}),t})(),A=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[r.si,r.BQ],r.BQ]}),t})()},4786:(t,e,i)=>{"use strict";i.d(e,{gD:()=>V,LD:()=>Q,$L:()=>G});var n=i(369),r=i(1511),s=i(1572),o=i(1522),a=i(6283),l=i(4894),c=i(4621),h=i(9861),u=i(4230),d=i(5842),p=i(9666),f=i(970),m=i(5446),g=i(1258),y=i(4324),b=i(9056),v=i(8868),_=i(1681),w=i(6424),x=i(9568),C=i(709),A=i(2526),S=i(6073);const E=["trigger"],k=["panel"];function T(t,e){if(1&t&&(s.TgZ(0,"span",8),s._uU(1),s.qZA()),2&t){const t=s.oxw();s.xp6(1),s.Oqu(t.placeholder)}}function M(t,e){if(1&t&&(s.TgZ(0,"span",12),s._uU(1),s.qZA()),2&t){const t=s.oxw(2);s.xp6(1),s.Oqu(t.triggerValue)}}function L(t,e){1&t&&s.Hsn(0,0,["*ngSwitchCase","true"])}function I(t,e){if(1&t&&(s.TgZ(0,"span",9),s.YNc(1,M,2,1,"span",10),s.YNc(2,L,1,0,"ng-content",11),s.qZA()),2&t){const t=s.oxw();s.Q6J("ngSwitch",!!t.customTrigger),s.xp6(2),s.Q6J("ngSwitchCase",!0)}}function O(t,e){if(1&t){const t=s.EpF();s.TgZ(0,"div",13),s.TgZ(1,"div",14,15),s.NdJ("@transformPanel.done",function(e){return s.CHM(t),s.oxw()._panelDoneAnimatingStream.next(e.toState)})("keydown",function(e){return s.CHM(t),s.oxw()._handleKeydown(e)}),s.Hsn(3,1),s.qZA(),s.qZA()}if(2&t){const t=s.oxw();s.Q6J("@transformPanelWrap",void 0),s.xp6(1),s.Gre("mat-select-panel ",t._getPanelTheme(),""),s.Udp("transform-origin",t._transformOrigin)("font-size",t._triggerFontSize,"px"),s.Q6J("ngClass",t.panelClass)("@transformPanel",t.multiple?"showing-multiple":"showing"),s.uIk("id",t.id+"-panel")("aria-multiselectable",t.multiple)("aria-label",t.ariaLabel||null)("aria-labelledby",t._getPanelAriaLabelledby())}}const D=[[["mat-select-trigger"]],"*"],R=["mat-select-trigger","*"],N={transformPanelWrap:(0,C.X$)("transformPanelWrap",[(0,C.eR)("* => void",(0,C.IO)("@transformPanel",[(0,C.pV)()],{optional:!0}))]),transformPanel:(0,C.X$)("transformPanel",[(0,C.SB)("void",(0,C.oB)({transform:"scaleY(0.8)",minWidth:"100%",opacity:0})),(0,C.SB)("showing",(0,C.oB)({opacity:1,minWidth:"calc(100% + 32px)",transform:"scaleY(1)"})),(0,C.SB)("showing-multiple",(0,C.oB)({opacity:1,minWidth:"calc(100% + 64px)",transform:"scaleY(1)"})),(0,C.eR)("void => *",(0,C.jt)("120ms cubic-bezier(0, 0, 0.2, 1)")),(0,C.eR)("* => void",(0,C.jt)("100ms 25ms linear",(0,C.oB)({opacity:0})))])};let P=0;const F=256,Z=new s.OlP("mat-select-scroll-strategy"),B=new s.OlP("MAT_SELECT_CONFIG"),U={provide:Z,deps:[n.aV],useFactory:function(t){return()=>t.scrollStrategies.reposition()}};class q{constructor(t,e){this.source=t,this.value=e}}class z{constructor(t,e,i,n,r){this._elementRef=t,this._defaultErrorStateMatcher=e,this._parentForm=i,this._parentFormGroup=n,this.ngControl=r}}const H=(0,o.Kr)((0,o.sb)((0,o.Id)((0,o.FD)(z)))),Y=new s.OlP("MatSelectTrigger");let G=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t,selectors:[["mat-select-trigger"]],features:[s._Bn([{provide:Y,useExisting:t}])]}),t})(),j=(()=>{class t extends H{constructor(t,e,i,n,r,o,a,l,c,h,u,d,w,x){var C,A,S;super(r,n,a,l,h),this._viewportRuler=t,this._changeDetectorRef=e,this._ngZone=i,this._dir=o,this._parentFormField=c,this.ngControl=h,this._liveAnnouncer=w,this._defaultOptions=x,this._panelOpen=!1,this._compareWith=(t,e)=>t===e,this._uid="mat-select-"+P++,this._triggerAriaLabelledBy=null,this._destroy=new p.x,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+P++,this._panelDoneAnimatingStream=new p.x,this._overlayPanelClass=(null===(C=this._defaultOptions)||void 0===C?void 0:C.overlayPanelClass)||"",this._focused=!1,this.controlType="mat-select",this._required=!1,this._multiple=!1,this._disableOptionCentering=null!==(S=null===(A=this._defaultOptions)||void 0===A?void 0:A.disableOptionCentering)&&void 0!==S&&S,this.ariaLabel="",this.optionSelectionChanges=(0,f.P)(()=>{const t=this.options;return t?t.changes.pipe((0,g.O)(t),(0,y.w)(()=>(0,m.T)(...t.map(t=>t.onSelectionChange)))):this._ngZone.onStable.pipe((0,b.q)(1),(0,y.w)(()=>this.optionSelectionChanges))}),this.openedChange=new s.vpe,this._openedStream=this.openedChange.pipe((0,v.h)(t=>t),(0,_.U)(()=>{})),this._closedStream=this.openedChange.pipe((0,v.h)(t=>!t),(0,_.U)(()=>{})),this.selectionChange=new s.vpe,this.valueChange=new s.vpe,this.ngControl&&(this.ngControl.valueAccessor=this),null!=(null==x?void 0:x.typeaheadDebounceInterval)&&(this._typeaheadDebounceInterval=x.typeaheadDebounceInterval),this._scrollStrategyFactory=d,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(u)||0,this.id=this.id}get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(t){this._placeholder=t,this.stateChanges.next()}get required(){return this._required}set required(t){this._required=(0,h.Ig)(t),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(t){this._multiple=(0,h.Ig)(t)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(t){this._disableOptionCentering=(0,h.Ig)(t)}get compareWith(){return this._compareWith}set compareWith(t){this._compareWith=t,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(t){(t!==this._value||this._multiple&&Array.isArray(t))&&(this.options&&this._setSelectionByValue(t),this._value=t)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(t){this._typeaheadDebounceInterval=(0,h.su)(t)}get id(){return this._id}set id(t){this._id=t||this._uid,this.stateChanges.next()}ngOnInit(){this._selectionModel=new u.Ov(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe((0,w.x)(),(0,x.R)(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe((0,x.R)(this._destroy)).subscribe(t=>{t.added.forEach(t=>t.select()),t.removed.forEach(t=>t.deselect())}),this.options.changes.pipe((0,g.O)(null),(0,x.R)(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const t=this._getTriggerAriaLabelledby();if(t!==this._triggerAriaLabelledBy){const e=this._elementRef.nativeElement;this._triggerAriaLabelledBy=t,t?e.setAttribute("aria-labelledby",t):e.removeAttribute("aria-labelledby")}this.ngControl&&this.updateErrorState()}ngOnChanges(t){t.disabled&&this.stateChanges.next(),t.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._destroy.next(),this._destroy.complete(),this.stateChanges.complete()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(t){this.value=t}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel.selected:this._selectionModel.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const t=this._selectionModel.selected.map(t=>t.viewValue);return this._isRtl()&&t.reverse(),t.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(t){this.disabled||(this.panelOpen?this._handleOpenKeydown(t):this._handleClosedKeydown(t))}_handleClosedKeydown(t){const e=t.keyCode,i=e===d.JH||e===d.LH||e===d.oh||e===d.SV,n=e===d.K5||e===d.L_,r=this._keyManager;if(!r.isTyping()&&n&&!(0,d.Vb)(t)||(this.multiple||t.altKey)&&i)t.preventDefault(),this.open();else if(!this.multiple){const e=this.selected;r.onKeydown(t);const i=this.selected;i&&e!==i&&this._liveAnnouncer.announce(i.viewValue,1e4)}}_handleOpenKeydown(t){const e=this._keyManager,i=t.keyCode,n=i===d.JH||i===d.LH,r=e.isTyping();if(n&&t.altKey)t.preventDefault(),this.close();else if(r||i!==d.K5&&i!==d.L_||!e.activeItem||(0,d.Vb)(t))if(!r&&this._multiple&&i===d.A&&t.ctrlKey){t.preventDefault();const e=this.options.some(t=>!t.disabled&&!t.selected);this.options.forEach(t=>{t.disabled||(e?t.select():t.deselect())})}else{const i=e.activeItemIndex;e.onKeydown(t),this._multiple&&n&&t.shiftKey&&e.activeItem&&e.activeItemIndex!==i&&e.activeItem._selectViaInteraction()}else t.preventDefault(),e.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this.disabled||this.panelOpen||(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe((0,b.q)(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this._setSelectionByValue(this.ngControl?this.ngControl.value:this._value),this.stateChanges.next()})}_setSelectionByValue(t){if(this._selectionModel.selected.forEach(t=>t.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&t)Array.isArray(t),t.forEach(t=>this._selectValue(t)),this._sortValues();else{const e=this._selectValue(t);e?this._keyManager.updateActiveItem(e):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectValue(t){const e=this.options.find(e=>{if(this._selectionModel.isSelected(e))return!1;try{return null!=e.value&&this._compareWith(e.value,t)}catch(i){return!1}});return e&&this._selectionModel.select(e),e}_initKeyManager(){this._keyManager=new c.s1(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withAllowedModifierKeys(["shiftKey"]),this._keyManager.tabOut.pipe((0,x.R)(this._destroy)).subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.pipe((0,x.R)(this._destroy)).subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):this._panelOpen||this.multiple||!this._keyManager.activeItem||this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const t=(0,m.T)(this.options.changes,this._destroy);this.optionSelectionChanges.pipe((0,x.R)(t)).subscribe(t=>{this._onSelect(t.source,t.isUserInput),t.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),(0,m.T)(...this.options.map(t=>t._stateChanges)).pipe((0,x.R)(t)).subscribe(()=>{this._changeDetectorRef.markForCheck(),this.stateChanges.next()})}_onSelect(t,e){const i=this._selectionModel.isSelected(t);null!=t.value||this._multiple?(i!==t.selected&&(t.selected?this._selectionModel.select(t):this._selectionModel.deselect(t)),e&&this._keyManager.setActiveItem(t),this.multiple&&(this._sortValues(),e&&this.focus())):(t.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(t.value)),i!==this._selectionModel.isSelected(t)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const t=this.options.toArray();this._selectionModel.sort((e,i)=>this.sortComparator?this.sortComparator(e,i,t):t.indexOf(e)-t.indexOf(i)),this.stateChanges.next()}}_propagateChanges(t){let e=null;e=this.multiple?this.selected.map(t=>t.value):this.selected?this.selected.value:t,this._value=e,this.valueChange.emit(e),this._onChange(e),this.selectionChange.emit(this._getChangeEvent(e)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){this._keyManager&&(this.empty?this._keyManager.setFirstItemActive():this._keyManager.setActiveItem(this._selectionModel.selected[0]))}_canOpen(){var t;return!this._panelOpen&&!this.disabled&&(null===(t=this.options)||void 0===t?void 0:t.length)>0}focus(t){this._elementRef.nativeElement.focus(t)}_getPanelAriaLabelledby(){var t;if(this.ariaLabel)return null;const e=null===(t=this._parentFormField)||void 0===t?void 0:t.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){var t;if(this.ariaLabel)return null;const e=null===(t=this._parentFormField)||void 0===t?void 0:t.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(t){this.openedChange.emit(t)}setDescribedByIds(t){this._ariaDescribedby=t.join(" ")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(l.rL),s.Y36(s.sBO),s.Y36(s.R0b),s.Y36(o.rD),s.Y36(s.SBq),s.Y36(A.Is,8),s.Y36(S.F,8),s.Y36(S.sg,8),s.Y36(a.G_,8),s.Y36(S.a5,10),s.$8M("tabindex"),s.Y36(Z),s.Y36(c.Kd),s.Y36(B,8))},t.\u0275dir=s.lG2({type:t,viewQuery:function(t,e){if(1&t&&(s.Gf(E,5),s.Gf(k,5),s.Gf(n.pI,5)),2&t){let t;s.iGM(t=s.CRH())&&(e.trigger=t.first),s.iGM(t=s.CRH())&&(e.panel=t.first),s.iGM(t=s.CRH())&&(e._overlayDir=t.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],id:"id",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",typeaheadDebounceInterval:"typeaheadDebounceInterval",panelClass:"panelClass",ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",sortComparator:"sortComparator"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[s.qOj,s.TTD]}),t})(),V=(()=>{class t extends j{constructor(){super(...arguments),this._scrollTop=0,this._triggerFontSize=0,this._transformOrigin="top",this._offsetY=0,this._positions=[{originX:"start",originY:"top",overlayX:"start",overlayY:"top"},{originX:"start",originY:"bottom",overlayX:"start",overlayY:"bottom"}]}_calculateOverlayScroll(t,e,i){const n=this._getItemHeight();return Math.min(Math.max(0,n*t-e+n/2),i)}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe((0,x.R)(this._destroy)).subscribe(()=>{this.panelOpen&&(this._triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this._changeDetectorRef.markForCheck())})}open(){super._canOpen()&&(super.open(),this._triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this._triggerFontSize=parseInt(getComputedStyle(this.trigger.nativeElement).fontSize||"0"),this._calculateOverlayPosition(),this._ngZone.onStable.pipe((0,b.q)(1)).subscribe(()=>{this._triggerFontSize&&this._overlayDir.overlayRef&&this._overlayDir.overlayRef.overlayElement&&(this._overlayDir.overlayRef.overlayElement.style.fontSize=`${this._triggerFontSize}px`)}))}_scrollOptionIntoView(t){const e=(0,o.CB)(t,this.options,this.optionGroups),i=this._getItemHeight();this.panel.nativeElement.scrollTop=(0,o.jH)((t+e)*i,i,this.panel.nativeElement.scrollTop,F)}_positioningSettled(){this._calculateOverlayOffsetX(),this.panel.nativeElement.scrollTop=this._scrollTop}_panelDoneAnimating(t){this.panelOpen?this._scrollTop=0:(this._overlayDir.offsetX=0,this._changeDetectorRef.markForCheck()),super._panelDoneAnimating(t)}_getChangeEvent(t){return new q(this,t)}_calculateOverlayOffsetX(){const t=this._overlayDir.overlayRef.overlayElement.getBoundingClientRect(),e=this._viewportRuler.getViewportSize(),i=this._isRtl(),n=this.multiple?56:32;let r;if(this.multiple)r=40;else if(this.disableOptionCentering)r=16;else{let t=this._selectionModel.selected[0]||this.options.first;r=t&&t.group?32:16}i||(r*=-1);const s=0-(t.left+r-(i?n:0)),o=t.right+r-e.width+(i?0:n);s>0?r+=s+8:o>0&&(r-=o+8),this._overlayDir.offsetX=Math.round(r),this._overlayDir.overlayRef.updatePosition()}_calculateOverlayOffsetY(t,e,i){const n=this._getItemHeight(),r=(n-this._triggerRect.height)/2,s=Math.floor(F/n);let o;return this.disableOptionCentering?0:(o=0===this._scrollTop?t*n:this._scrollTop===i?(t-(this._getItemCount()-s))*n+(n-(this._getItemCount()*n-F)%n):e-n/2,Math.round(-1*o-r))}_checkOverlayWithinViewport(t){const e=this._getItemHeight(),i=this._viewportRuler.getViewportSize(),n=this._triggerRect.top-8,r=i.height-this._triggerRect.bottom-8,s=Math.abs(this._offsetY),o=Math.min(this._getItemCount()*e,F)-s-this._triggerRect.height;o>r?this._adjustPanelUp(o,r):s>n?this._adjustPanelDown(s,n,t):this._transformOrigin=this._getOriginBasedOnOption()}_adjustPanelUp(t,e){const i=Math.round(t-e);this._scrollTop-=i,this._offsetY-=i,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop<=0&&(this._scrollTop=0,this._offsetY=0,this._transformOrigin="50% bottom 0px")}_adjustPanelDown(t,e,i){const n=Math.round(t-e);if(this._scrollTop+=n,this._offsetY+=n,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop>=i)return this._scrollTop=i,this._offsetY=0,void(this._transformOrigin="50% top 0px")}_calculateOverlayPosition(){const t=this._getItemHeight(),e=this._getItemCount(),i=Math.min(e*t,F),n=e*t-i;let r;r=this.empty?0:Math.max(this.options.toArray().indexOf(this._selectionModel.selected[0]),0),r+=(0,o.CB)(r,this.options,this.optionGroups);const s=i/2;this._scrollTop=this._calculateOverlayScroll(r,s,n),this._offsetY=this._calculateOverlayOffsetY(r,s,n),this._checkOverlayWithinViewport(n)}_getOriginBasedOnOption(){const t=this._getItemHeight(),e=(t-this._triggerRect.height)/2;return`50% ${Math.abs(this._offsetY)-e+t/2}px 0px`}_getItemHeight(){return 3*this._triggerFontSize}_getItemCount(){return this.options.length+this.optionGroups.length}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-select"]],contentQueries:function(t,e,i){if(1&t&&(s.Suo(i,Y,5),s.Suo(i,o.ey,5),s.Suo(i,o.K7,5)),2&t){let t;s.iGM(t=s.CRH())&&(e.customTrigger=t.first),s.iGM(t=s.CRH())&&(e.options=t),s.iGM(t=s.CRH())&&(e.optionGroups=t)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","true",1,"mat-select"],hostVars:20,hostBindings:function(t,e){1&t&&s.NdJ("keydown",function(t){return e._handleKeydown(t)})("focus",function(){return e._onFocus()})("blur",function(){return e._onBlur()}),2&t&&(s.uIk("id",e.id)("tabindex",e.tabIndex)("aria-controls",e.panelOpen?e.id+"-panel":null)("aria-expanded",e.panelOpen)("aria-label",e.ariaLabel||null)("aria-required",e.required.toString())("aria-disabled",e.disabled.toString())("aria-invalid",e.errorState)("aria-describedby",e._ariaDescribedby||null)("aria-activedescendant",e._getAriaActiveDescendant()),s.ekj("mat-select-disabled",e.disabled)("mat-select-invalid",e.errorState)("mat-select-required",e.required)("mat-select-empty",e.empty)("mat-select-multiple",e.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matSelect"],features:[s._Bn([{provide:a.Eo,useExisting:t},{provide:o.HF,useExisting:t}]),s.qOj],ngContentSelectors:R,decls:9,vars:12,consts:[["cdk-overlay-origin","",1,"mat-select-trigger",3,"click"],["origin","cdkOverlayOrigin","trigger",""],[1,"mat-select-value",3,"ngSwitch"],["class","mat-select-placeholder mat-select-min-line",4,"ngSwitchCase"],["class","mat-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-select-arrow-wrapper"],[1,"mat-select-arrow"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayMinWidth","cdkConnectedOverlayOffsetY","backdropClick","attach","detach"],[1,"mat-select-placeholder","mat-select-min-line"],[1,"mat-select-value-text",3,"ngSwitch"],["class","mat-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-select-min-line"],[1,"mat-select-panel-wrap"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(t,e){if(1&t&&(s.F$t(D),s.TgZ(0,"div",0,1),s.NdJ("click",function(){return e.toggle()}),s.TgZ(3,"div",2),s.YNc(4,T,2,1,"span",3),s.YNc(5,I,3,2,"span",4),s.qZA(),s.TgZ(6,"div",5),s._UZ(7,"div",6),s.qZA(),s.qZA(),s.YNc(8,O,4,14,"ng-template",7),s.NdJ("backdropClick",function(){return e.close()})("attach",function(){return e._onAttached()})("detach",function(){return e.close()})),2&t){const t=s.MAs(1);s.uIk("aria-owns",e.panelOpen?e.id+"-panel":null),s.xp6(3),s.Q6J("ngSwitch",e.empty),s.uIk("id",e._valueId),s.xp6(1),s.Q6J("ngSwitchCase",!0),s.xp6(1),s.Q6J("ngSwitchCase",!1),s.xp6(3),s.Q6J("cdkConnectedOverlayPanelClass",e._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",e._scrollStrategy)("cdkConnectedOverlayOrigin",t)("cdkConnectedOverlayOpen",e.panelOpen)("cdkConnectedOverlayPositions",e._positions)("cdkConnectedOverlayMinWidth",null==e._triggerRect?null:e._triggerRect.width)("cdkConnectedOverlayOffsetY",e._offsetY)}},directives:[n.xu,r.RF,r.n9,n.pI,r.ED,r.mk],styles:['.mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-table;cursor:pointer;position:relative;box-sizing:border-box}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-select-value{display:table-cell;max-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{display:table-cell;vertical-align:middle}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:transparent;-webkit-text-fill-color:transparent;transition:none;display:block}.mat-select-min-line:empty::before{content:" ";white-space:pre;width:1px}\n'],encapsulation:2,data:{animation:[N.transformPanelWrap,N.transformPanel]},changeDetection:0}),t})(),Q=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=s.oAB({type:t}),t.\u0275inj=s.cJS({providers:[U],imports:[[r.ez,n.U8,o.Ng,o.BQ],l.ZD,a.lN,o.Ng,o.BQ]}),t})()},5122:(t,e,i)=>{"use strict";i.d(e,{JX:()=>z,TM:()=>H,Rh:()=>q,SJ:()=>Y});var n=i(1353),r=i(4894),s=i(1511),o=i(1572),a=i(1522),l=i(9861),c=i(5842),h=i(9666),u=i(5960),d=i(5446),p=i(8868),f=i(1681),m=i(1096),g=i(9568),y=i(6424),b=i(9056),v=i(1258),_=i(5057),w=i(709),x=i(3490),C=i(4621),A=i(2526);const S=["*"];function E(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",2),o.NdJ("click",function(){return o.CHM(t),o.oxw()._onBackdropClicked()}),o.qZA()}if(2&t){const t=o.oxw();o.ekj("mat-drawer-shown",t._isShowingBackdrop())}}function k(t,e){1&t&&(o.TgZ(0,"mat-drawer-content"),o.Hsn(1,2),o.qZA())}const T=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],M=["mat-drawer","mat-drawer-content","*"];function L(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",2),o.NdJ("click",function(){return o.CHM(t),o.oxw()._onBackdropClicked()}),o.qZA()}if(2&t){const t=o.oxw();o.ekj("mat-drawer-shown",t._isShowingBackdrop())}}function I(t,e){1&t&&(o.TgZ(0,"mat-sidenav-content",3),o.Hsn(1,2),o.qZA())}const O=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],D=["mat-sidenav","mat-sidenav-content","*"],R=".mat-drawer-container{position:relative;z-index:1;box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer{transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}\n",N={transformDrawer:(0,w.X$)("transform",[(0,w.SB)("open, open-instant",(0,w.oB)({transform:"none",visibility:"visible"})),(0,w.SB)("void",(0,w.oB)({"box-shadow":"none",visibility:"hidden"})),(0,w.eR)("void => open-instant",(0,w.jt)("0ms")),(0,w.eR)("void <=> open, open-instant => void",(0,w.jt)("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))])},P=new o.OlP("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:function(){return!1}}),F=new o.OlP("MAT_DRAWER_CONTAINER");let Z=(()=>{class t extends r.PQ{constructor(t,e,i,n,r){super(i,n,r),this._changeDetectorRef=t,this._container=e}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.sBO),o.Y36((0,o.Gpc)(()=>U)),o.Y36(o.SBq),o.Y36(r.mF),o.Y36(o.R0b))},t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:4,hostBindings:function(t,e){2&t&&o.Udp("margin-left",e._container._contentMargins.left,"px")("margin-right",e._container._contentMargins.right,"px")},features:[o.qOj],ngContentSelectors:S,decls:1,vars:0,template:function(t,e){1&t&&(o.F$t(),o.Hsn(0))},encapsulation:2,changeDetection:0}),t})(),B=(()=>{class t{constructor(t,e,i,n,r,s,a){this._elementRef=t,this._focusTrapFactory=e,this._focusMonitor=i,this._platform=n,this._ngZone=r,this._doc=s,this._container=a,this._elementFocusedBeforeDrawerWasOpened=null,this._enableAnimations=!1,this._position="start",this._mode="over",this._disableClose=!1,this._opened=!1,this._animationStarted=new h.x,this._animationEnd=new h.x,this._animationState="void",this.openedChange=new o.vpe(!0),this._openedStream=this.openedChange.pipe((0,p.h)(t=>t),(0,f.U)(()=>{})),this.openedStart=this._animationStarted.pipe((0,p.h)(t=>t.fromState!==t.toState&&0===t.toState.indexOf("open")),(0,m.h)(void 0)),this._closedStream=this.openedChange.pipe((0,p.h)(t=>!t),(0,f.U)(()=>{})),this.closedStart=this._animationStarted.pipe((0,p.h)(t=>t.fromState!==t.toState&&"void"===t.toState),(0,m.h)(void 0)),this._destroyed=new h.x,this.onPositionChanged=new o.vpe,this._modeChanged=new h.x,this.openedChange.subscribe(t=>{t?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus()}),this._ngZone.runOutsideAngular(()=>{(0,u.R)(this._elementRef.nativeElement,"keydown").pipe((0,p.h)(t=>t.keyCode===c.hY&&!this.disableClose&&!(0,c.Vb)(t)),(0,g.R)(this._destroyed)).subscribe(t=>this._ngZone.run(()=>{this.close(),t.stopPropagation(),t.preventDefault()}))}),this._animationEnd.pipe((0,y.x)((t,e)=>t.fromState===e.fromState&&t.toState===e.toState)).subscribe(t=>{const{fromState:e,toState:i}=t;(0===i.indexOf("open")&&"void"===e||"void"===i&&0===e.indexOf("open"))&&this.openedChange.emit(this._opened)})}get position(){return this._position}set position(t){(t="end"===t?"end":"start")!=this._position&&(this._position=t,this.onPositionChanged.emit())}get mode(){return this._mode}set mode(t){this._mode=t,this._updateFocusTrapState(),this._modeChanged.next()}get disableClose(){return this._disableClose}set disableClose(t){this._disableClose=(0,l.Ig)(t)}get autoFocus(){const t=this._autoFocus;return null==t?"side"!==this.mode:t}set autoFocus(t){this._autoFocus=(0,l.Ig)(t)}get opened(){return this._opened}set opened(t){this.toggle((0,l.Ig)(t))}_takeFocus(){this.autoFocus&&this._focusTrap&&this._focusTrap.focusInitialElementWhenReady().then(t=>{t||"function"!=typeof this._elementRef.nativeElement.focus||this._elementRef.nativeElement.focus()})}_restoreFocus(){this.autoFocus&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,this._openedVia):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null,this._openedVia=null)}_isFocusWithinDrawer(){var t;const e=null===(t=this._doc)||void 0===t?void 0:t.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}ngAfterContentInit(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState()}ngAfterContentChecked(){this._platform.isBrowser&&(this._enableAnimations=!0)}ngOnDestroy(){this._focusTrap&&this._focusTrap.destroy(),this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(t){return this.toggle(!0,t)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0)}toggle(t=!this.opened,e){return this._setOpen(t,!t&&this._isFocusWithinDrawer(),e)}_setOpen(t,e,i="program"){return this._opened=t,t?(this._animationState=this._enableAnimations?"open":"open-instant",this._openedVia=i):(this._animationState="void",e&&this._restoreFocus()),this._updateFocusTrapState(),new Promise(t=>{this.openedChange.pipe((0,b.q)(1)).subscribe(e=>t(e?"open":"close"))})}_getWidth(){return this._elementRef.nativeElement&&this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=this.opened&&"side"!==this.mode)}_animationStartListener(t){this._animationStarted.next(t)}_animationDoneListener(t){this._animationEnd.next(t)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.SBq),o.Y36(C.qV),o.Y36(C.tE),o.Y36(n.t4),o.Y36(o.R0b),o.Y36(s.K0,8),o.Y36(F,8))},t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-drawer"]],hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:12,hostBindings:function(t,e){1&t&&o.WFA("@transform.start",function(t){return e._animationStartListener(t)})("@transform.done",function(t){return e._animationDoneListener(t)}),2&t&&(o.uIk("align",null),o.d8E("@transform",e._animationState),o.ekj("mat-drawer-end","end"===e.position)("mat-drawer-over","over"===e.mode)("mat-drawer-push","push"===e.mode)("mat-drawer-side","side"===e.mode)("mat-drawer-opened",e.opened))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:S,decls:2,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(t,e){1&t&&(o.F$t(),o.TgZ(0,"div",0),o.Hsn(1),o.qZA())},directives:[r.PQ],encapsulation:2,data:{animation:[N.transformDrawer]},changeDetection:0}),t})(),U=(()=>{class t{constructor(t,e,i,n,r,s=!1,a){this._dir=t,this._element=e,this._ngZone=i,this._changeDetectorRef=n,this._animationMode=a,this._drawers=new o.n_E,this.backdropClick=new o.vpe,this._destroyed=new h.x,this._doCheckSubject=new h.x,this._contentMargins={left:null,right:null},this._contentMarginChanges=new h.x,t&&t.change.pipe((0,g.R)(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),r.change().pipe((0,g.R)(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._autosize=s}get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(t){this._autosize=(0,l.Ig)(t)}get hasBackdrop(){return null==this._backdropOverride?!this._start||"side"!==this._start.mode||!this._end||"side"!==this._end.mode:this._backdropOverride}set hasBackdrop(t){this._backdropOverride=null==t?null:(0,l.Ig)(t)}get scrollable(){return this._userContent||this._content}ngAfterContentInit(){this._allDrawers.changes.pipe((0,v.O)(this._allDrawers),(0,g.R)(this._destroyed)).subscribe(t=>{this._drawers.reset(t.filter(t=>!t._container||t._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe((0,v.O)(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(t=>{this._watchDrawerToggle(t),this._watchDrawerPosition(t),this._watchDrawerMode(t)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe((0,_.b)(10),(0,g.R)(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(t=>t.open())}close(){this._drawers.forEach(t=>t.close())}updateContentMargins(){let t=0,e=0;if(this._left&&this._left.opened)if("side"==this._left.mode)t+=this._left._getWidth();else if("push"==this._left.mode){const i=this._left._getWidth();t+=i,e-=i}if(this._right&&this._right.opened)if("side"==this._right.mode)e+=this._right._getWidth();else if("push"==this._right.mode){const i=this._right._getWidth();e+=i,t-=i}t=t||null,e=e||null,t===this._contentMargins.left&&e===this._contentMargins.right||(this._contentMargins={left:t,right:e},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(t){t._animationStarted.pipe((0,p.h)(t=>t.fromState!==t.toState),(0,g.R)(this._drawers.changes)).subscribe(t=>{"open-instant"!==t.toState&&"NoopAnimations"!==this._animationMode&&this._element.nativeElement.classList.add("mat-drawer-transition"),this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),"side"!==t.mode&&t.openedChange.pipe((0,g.R)(this._drawers.changes)).subscribe(()=>this._setContainerClass(t.opened))}_watchDrawerPosition(t){t&&t.onPositionChanged.pipe((0,g.R)(this._drawers.changes)).subscribe(()=>{this._ngZone.onMicrotaskEmpty.pipe((0,b.q)(1)).subscribe(()=>{this._validateDrawers()})})}_watchDrawerMode(t){t&&t._modeChanged.pipe((0,g.R)((0,d.T)(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(t){const e=this._element.nativeElement.classList,i="mat-drawer-container-has-open";t?e.add(i):e.remove(i)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(t=>{"end"==t.position?this._end=t:this._start=t}),this._right=this._left=null,this._dir&&"rtl"===this._dir.value?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&"over"!=this._start.mode||this._isDrawerOpen(this._end)&&"over"!=this._end.mode}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(t=>t&&!t.disableClose&&this._canHaveBackdrop(t)).forEach(t=>t._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._canHaveBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._canHaveBackdrop(this._end)}_canHaveBackdrop(t){return"side"!==t.mode||!!this._backdropOverride}_isDrawerOpen(t){return null!=t&&t.opened}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(A.Is,8),o.Y36(o.SBq),o.Y36(o.R0b),o.Y36(o.sBO),o.Y36(r.rL),o.Y36(P),o.Y36(x.Qb,8))},t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(t,e,i){if(1&t&&(o.Suo(i,Z,5),o.Suo(i,B,5)),2&t){let t;o.iGM(t=o.CRH())&&(e._content=t.first),o.iGM(t=o.CRH())&&(e._allDrawers=t)}},viewQuery:function(t,e){if(1&t&&o.Gf(Z,5),2&t){let t;o.iGM(t=o.CRH())&&(e._userContent=t.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(t,e){2&t&&o.ekj("mat-drawer-container-explicit-backdrop",e._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[o._Bn([{provide:F,useExisting:t}])],ngContentSelectors:M,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(t,e){1&t&&(o.F$t(T),o.YNc(0,E,1,2,"div",0),o.Hsn(1),o.Hsn(2,1),o.YNc(3,k,2,0,"mat-drawer-content",1)),2&t&&(o.Q6J("ngIf",e.hasBackdrop),o.xp6(3),o.Q6J("ngIf",!e._content))},directives:[s.O5,Z],styles:[R],encapsulation:2,changeDetection:0}),t})(),q=(()=>{class t extends Z{constructor(t,e,i,n,r){super(t,e,i,n,r)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.sBO),o.Y36((0,o.Gpc)(()=>H)),o.Y36(o.SBq),o.Y36(r.mF),o.Y36(o.R0b))},t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-sidenav-content"]],hostAttrs:[1,"mat-drawer-content","mat-sidenav-content"],hostVars:4,hostBindings:function(t,e){2&t&&o.Udp("margin-left",e._container._contentMargins.left,"px")("margin-right",e._container._contentMargins.right,"px")},features:[o.qOj],ngContentSelectors:S,decls:1,vars:0,template:function(t,e){1&t&&(o.F$t(),o.Hsn(0))},encapsulation:2,changeDetection:0}),t})(),z=(()=>{class t extends B{constructor(){super(...arguments),this._fixedInViewport=!1,this._fixedTopGap=0,this._fixedBottomGap=0}get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(t){this._fixedInViewport=(0,l.Ig)(t)}get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(t){this._fixedTopGap=(0,l.su)(t)}get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(t){this._fixedBottomGap=(0,l.su)(t)}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-sidenav"]],hostAttrs:["tabIndex","-1",1,"mat-drawer","mat-sidenav"],hostVars:17,hostBindings:function(t,e){2&t&&(o.uIk("align",null),o.Udp("top",e.fixedInViewport?e.fixedTopGap:null,"px")("bottom",e.fixedInViewport?e.fixedBottomGap:null,"px"),o.ekj("mat-drawer-end","end"===e.position)("mat-drawer-over","over"===e.mode)("mat-drawer-push","push"===e.mode)("mat-drawer-side","side"===e.mode)("mat-drawer-opened",e.opened)("mat-sidenav-fixed",e.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[o.qOj],ngContentSelectors:S,decls:2,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(t,e){1&t&&(o.F$t(),o.TgZ(0,"div",0),o.Hsn(1),o.qZA())},directives:[r.PQ],encapsulation:2,data:{animation:[N.transformDrawer]},changeDetection:0}),t})(),H=(()=>{class t extends U{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-sidenav-container"]],contentQueries:function(t,e,i){if(1&t&&(o.Suo(i,q,5),o.Suo(i,z,5)),2&t){let t;o.iGM(t=o.CRH())&&(e._content=t.first),o.iGM(t=o.CRH())&&(e._allDrawers=t)}},hostAttrs:[1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(t,e){2&t&&o.ekj("mat-drawer-container-explicit-backdrop",e._backdropOverride)},exportAs:["matSidenavContainer"],features:[o._Bn([{provide:F,useExisting:t}]),o.qOj],ngContentSelectors:D,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],["cdkScrollable","",4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"],["cdkScrollable",""]],template:function(t,e){1&t&&(o.F$t(O),o.YNc(0,L,1,2,"div",0),o.Hsn(1),o.Hsn(2,1),o.YNc(3,I,2,0,"mat-sidenav-content",1)),2&t&&(o.Q6J("ngIf",e.hasBackdrop),o.xp6(3),o.Q6J("ngIf",!e._content))},directives:[s.O5,q,r.PQ],styles:[R],encapsulation:2,changeDetection:0}),t})(),Y=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=o.oAB({type:t}),t.\u0275inj=o.cJS({imports:[[s.ez,a.BQ,n.ud,r.ZD],r.ZD,a.BQ]}),t})()},7521:(t,e,i)=>{"use strict";i.d(e,{Rr:()=>w,rP:()=>C});var n=i(6337),r=i(1572),s=i(1522),o=i(9861),a=i(6073),l=i(3490),c=i(4621);const h=["thumbContainer"],u=["toggleBar"],d=["input"],p=function(t){return{enterDuration:t}},f=["*"],m=new r.OlP("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1})});let g=0;const y={provide:a.JU,useExisting:(0,r.Gpc)(()=>w),multi:!0};class b{constructor(t,e){this.source=t,this.checked=e}}class v{constructor(t){this._elementRef=t}}const _=(0,s.sb)((0,s.pj)((0,s.Kr)((0,s.Id)(v))));let w=(()=>{class t extends _{constructor(t,e,i,n,s,o){super(t),this._focusMonitor=e,this._changeDetectorRef=i,this.defaults=s,this._onChange=t=>{},this._onTouched=()=>{},this._uniqueId="mat-slide-toggle-"+ ++g,this._required=!1,this._checked=!1,this.name=null,this.id=this._uniqueId,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this.change=new r.vpe,this.toggleChange=new r.vpe,this.tabIndex=parseInt(n)||0,this.color=this.defaultColor=s.color||"accent",this._noopAnimations="NoopAnimations"===o}get required(){return this._required}set required(t){this._required=(0,o.Ig)(t)}get checked(){return this._checked}set checked(t){this._checked=(0,o.Ig)(t),this._changeDetectorRef.markForCheck()}get inputId(){return`${this.id||this._uniqueId}-input`}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{"keyboard"===t||"program"===t?this._inputElement.nativeElement.focus():t||Promise.resolve().then(()=>this._onTouched())})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}_onChangeEvent(t){t.stopPropagation(),this.toggleChange.emit(),this.defaults.disableToggleValue?this._inputElement.nativeElement.checked=this.checked:(this.checked=this._inputElement.nativeElement.checked,this._emitChangeEvent())}_onInputClick(t){t.stopPropagation()}writeValue(t){this.checked=!!t}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetectorRef.markForCheck()}focus(t,e){e?this._focusMonitor.focusVia(this._inputElement,e,t):this._inputElement.nativeElement.focus(t)}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(new b(this,this.checked))}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.SBq),r.Y36(c.tE),r.Y36(r.sBO),r.$8M("tabindex"),r.Y36(m),r.Y36(l.Qb,8))},t.\u0275cmp=r.Xpm({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(t,e){if(1&t&&(r.Gf(h,5),r.Gf(u,5),r.Gf(d,5)),2&t){let t;r.iGM(t=r.CRH())&&(e._thumbEl=t.first),r.iGM(t=r.CRH())&&(e._thumbBarEl=t.first),r.iGM(t=r.CRH())&&(e._inputElement=t.first)}},hostAttrs:[1,"mat-slide-toggle"],hostVars:12,hostBindings:function(t,e){2&t&&(r.Ikx("id",e.id),r.uIk("tabindex",e.disabled?null:-1)("aria-label",null)("aria-labelledby",null),r.ekj("mat-checked",e.checked)("mat-disabled",e.disabled)("mat-slide-toggle-label-before","before"==e.labelPosition)("_mat-animation-noopable",e._noopAnimations))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex",name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],required:"required",checked:"checked"},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[r._Bn([y]),r.qOj],ngContentSelectors:f,decls:16,vars:19,consts:[[1,"mat-slide-toggle-label"],["label",""],[1,"mat-slide-toggle-bar"],["toggleBar",""],["type","checkbox","role","switch",1,"mat-slide-toggle-input","cdk-visually-hidden",3,"id","required","tabIndex","checked","disabled","change","click"],["input",""],[1,"mat-slide-toggle-thumb-container"],["thumbContainer",""],[1,"mat-slide-toggle-thumb"],["mat-ripple","",1,"mat-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered","matRippleRadius","matRippleAnimation"],[1,"mat-ripple-element","mat-slide-toggle-persistent-ripple"],[1,"mat-slide-toggle-content",3,"cdkObserveContent"],["labelContent",""],[2,"display","none"]],template:function(t,e){if(1&t&&(r.F$t(),r.TgZ(0,"label",0,1),r.TgZ(2,"div",2,3),r.TgZ(4,"input",4,5),r.NdJ("change",function(t){return e._onChangeEvent(t)})("click",function(t){return e._onInputClick(t)}),r.qZA(),r.TgZ(6,"div",6,7),r._UZ(8,"div",8),r.TgZ(9,"div",9),r._UZ(10,"div",10),r.qZA(),r.qZA(),r.qZA(),r.TgZ(11,"span",11,12),r.NdJ("cdkObserveContent",function(){return e._onLabelTextChange()}),r.TgZ(13,"span",13),r._uU(14,"\xa0"),r.qZA(),r.Hsn(15),r.qZA(),r.qZA()),2&t){const t=r.MAs(1),i=r.MAs(12);r.uIk("for",e.inputId),r.xp6(2),r.ekj("mat-slide-toggle-bar-no-side-margin",!i.textContent||!i.textContent.trim()),r.xp6(2),r.Q6J("id",e.inputId)("required",e.required)("tabIndex",e.tabIndex)("checked",e.checked)("disabled",e.disabled),r.uIk("name",e.name)("aria-checked",e.checked.toString())("aria-label",e.ariaLabel)("aria-labelledby",e.ariaLabelledby),r.xp6(5),r.Q6J("matRippleTrigger",t)("matRippleDisabled",e.disableRipple||e.disabled)("matRippleCentered",!0)("matRippleRadius",20)("matRippleAnimation",r.VKq(17,p,e._noopAnimations?0:150))}},directives:[s.wG,n.wD],styles:[".mat-slide-toggle{display:inline-block;height:24px;max-width:100%;line-height:24px;white-space:nowrap;outline:none;-webkit-tap-highlight-color:transparent}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(16px, 0, 0)}[dir=rtl] .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(-16px, 0, 0)}.mat-slide-toggle.mat-disabled{opacity:.38}.mat-slide-toggle.mat-disabled .mat-slide-toggle-label,.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb-container{cursor:default}.mat-slide-toggle-label{display:flex;flex:1;flex-direction:row;align-items:center;height:inherit;cursor:pointer}.mat-slide-toggle-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-slide-toggle-label-before .mat-slide-toggle-label{order:1}.mat-slide-toggle-label-before .mat-slide-toggle-bar{order:2}[dir=rtl] .mat-slide-toggle-label-before .mat-slide-toggle-bar,.mat-slide-toggle-bar{margin-right:8px;margin-left:0}[dir=rtl] .mat-slide-toggle-bar,.mat-slide-toggle-label-before .mat-slide-toggle-bar{margin-left:8px;margin-right:0}.mat-slide-toggle-bar-no-side-margin{margin-left:0;margin-right:0}.mat-slide-toggle-thumb-container{position:absolute;z-index:1;width:20px;height:20px;top:-3px;left:0;transform:translate3d(0, 0, 0);transition:all 80ms linear;transition-property:transform}._mat-animation-noopable .mat-slide-toggle-thumb-container{transition:none}[dir=rtl] .mat-slide-toggle-thumb-container{left:auto;right:0}.mat-slide-toggle-thumb{height:20px;width:20px;border-radius:50%}.mat-slide-toggle-bar{position:relative;width:36px;height:14px;flex-shrink:0;border-radius:8px}.mat-slide-toggle-input{bottom:0;left:10px}[dir=rtl] .mat-slide-toggle-input{left:auto;right:10px}.mat-slide-toggle-bar,.mat-slide-toggle-thumb{transition:all 80ms linear;transition-property:background-color;transition-delay:50ms}._mat-animation-noopable .mat-slide-toggle-bar,._mat-animation-noopable .mat-slide-toggle-thumb{transition:none}.mat-slide-toggle .mat-slide-toggle-ripple{position:absolute;top:calc(50% - 20px);left:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-slide-toggle .mat-slide-toggle-ripple .mat-ripple-element:not(.mat-slide-toggle-persistent-ripple){opacity:.12}.mat-slide-toggle-persistent-ripple{width:100%;height:100%;transform:none}.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:.04}.mat-slide-toggle:not(.mat-disabled).cdk-keyboard-focused .mat-slide-toggle-persistent-ripple{opacity:.12}.mat-slide-toggle-persistent-ripple,.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:0}@media(hover: none){.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{display:none}}.cdk-high-contrast-active .mat-slide-toggle-thumb,.cdk-high-contrast-active .mat-slide-toggle-bar{border:1px solid}.cdk-high-contrast-active .mat-slide-toggle.cdk-keyboard-focused .mat-slide-toggle-bar{outline:2px dotted;outline-offset:5px}\n"],encapsulation:2,changeDetection:0}),t})(),x=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({}),t})(),C=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({imports:[[x,s.si,s.BQ,n.Q8],x,s.BQ]}),t})()},1403:(t,e,i)=>{"use strict";i.d(e,{Ve:()=>E,ux:()=>k,ZX:()=>S});var n=i(369),r=i(6899),s=i(1511),o=i(1572),a=i(1522),l=i(5980),c=i(9666),h=i(9056),u=i(9568),d=i(709),p=i(4621),f=i(72),m=i(1353);function g(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",1),o.TgZ(1,"button",2),o.NdJ("click",function(){return o.CHM(t),o.oxw().action()}),o._uU(2),o.qZA(),o.qZA()}if(2&t){const t=o.oxw();o.xp6(2),o.Oqu(t.data.action)}}function y(t,e){}const b=new o.OlP("MatSnackBarData");class v{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}const _=Math.pow(2,31)-1;class w{constructor(t,e){this._overlayRef=e,this._afterDismissed=new c.x,this._afterOpened=new c.x,this._onAction=new c.x,this._dismissedByAction=!1,this.containerInstance=t,this.onAction().subscribe(()=>this.dismiss()),t._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(t){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(t,_))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}let x=(()=>{class t{constructor(t,e){this.snackBarRef=t,this.data=e}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(w),o.Y36(b))},t.\u0275cmp=o.Xpm({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-simple-snackbar"],decls:3,vars:2,consts:[["class","mat-simple-snackbar-action",4,"ngIf"],[1,"mat-simple-snackbar-action"],["mat-button","",3,"click"]],template:function(t,e){1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA(),o.YNc(2,g,3,1,"div",0)),2&t&&(o.xp6(1),o.Oqu(e.data.message),o.xp6(1),o.Q6J("ngIf",e.hasAction))},directives:[s.O5,l.lW],styles:[".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}\n"],encapsulation:2,changeDetection:0}),t})();const C={snackBarState:(0,d.X$)("state",[(0,d.SB)("void, hidden",(0,d.oB)({transform:"scale(0.8)",opacity:0})),(0,d.SB)("visible",(0,d.oB)({transform:"scale(1)",opacity:1})),(0,d.eR)("* => visible",(0,d.jt)("150ms cubic-bezier(0, 0, 0.2, 1)")),(0,d.eR)("* => void, * => hidden",(0,d.jt)("75ms cubic-bezier(0.4, 0.0, 1, 1)",(0,d.oB)({opacity:0})))])};let A=(()=>{class t extends r.en{constructor(t,e,i,n,r){super(),this._ngZone=t,this._elementRef=e,this._changeDetectorRef=i,this._platform=n,this.snackBarConfig=r,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new c.x,this._onExit=new c.x,this._onEnter=new c.x,this._animationState="void",this.attachDomPortal=t=>(this._assertNotAttached(),this._applySnackBarClasses(),this._portalOutlet.attachDomPortal(t)),this._live="assertive"!==r.politeness||r.announcementMessage?"off"===r.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(t){return this._assertNotAttached(),this._applySnackBarClasses(),this._portalOutlet.attachComponentPortal(t)}attachTemplatePortal(t){return this._assertNotAttached(),this._applySnackBarClasses(),this._portalOutlet.attachTemplatePortal(t)}onAnimationEnd(t){const{fromState:e,toState:i}=t;if(("void"===i&&"void"!==e||"hidden"===i)&&this._completeExit(),"visible"===i){const t=this._onEnter;this._ngZone.run(()=>{t.next(),t.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId),this._onExit}ngOnDestroy(){this._destroyed=!0,this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe((0,h.q)(1)).subscribe(()=>{this._onExit.next(),this._onExit.complete()})}_applySnackBarClasses(){const t=this._elementRef.nativeElement,e=this.snackBarConfig.panelClass;e&&(Array.isArray(e)?e.forEach(e=>t.classList.add(e)):t.classList.add(e)),"center"===this.snackBarConfig.horizontalPosition&&t.classList.add("mat-snack-bar-center"),"top"===this.snackBarConfig.verticalPosition&&t.classList.add("mat-snack-bar-top")}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const t=this._elementRef.nativeElement.querySelector("[aria-hidden]"),e=this._elementRef.nativeElement.querySelector("[aria-live]");if(t&&e){let i=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&t.contains(document.activeElement)&&(i=document.activeElement),t.removeAttribute("aria-hidden"),e.appendChild(t),null==i||i.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.R0b),o.Y36(o.SBq),o.Y36(o.sBO),o.Y36(m.t4),o.Y36(v))},t.\u0275cmp=o.Xpm({type:t,selectors:[["snack-bar-container"]],viewQuery:function(t,e){if(1&t&&o.Gf(r.Pl,7),2&t){let t;o.iGM(t=o.CRH())&&(e._portalOutlet=t.first)}},hostAttrs:[1,"mat-snack-bar-container"],hostVars:1,hostBindings:function(t,e){1&t&&o.WFA("@state.done",function(t){return e.onAnimationEnd(t)}),2&t&&o.d8E("@state",e._animationState)},features:[o.qOj],decls:3,vars:2,consts:[["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(t,e){1&t&&(o.TgZ(0,"div",0),o.YNc(1,y,0,0,"ng-template",1),o.qZA(),o._UZ(2,"div")),2&t&&(o.xp6(2),o.uIk("aria-live",e._live)("role",e._role))},directives:[r.Pl],styles:[".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\n"],encapsulation:2,data:{animation:[C.snackBarState]}}),t})(),S=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=o.oAB({type:t}),t.\u0275inj=o.cJS({imports:[[n.U8,r.eL,s.ez,l.ot,a.BQ],a.BQ]}),t})();const E=new o.OlP("mat-snack-bar-default-options",{providedIn:"root",factory:function(){return new v}});let k=(()=>{class t{constructor(t,e,i,n,r,s){this._overlay=t,this._live=e,this._injector=i,this._breakpointObserver=n,this._parentSnackBar=r,this._defaultConfig=s,this._snackBarRefAtThisLevel=null,this.simpleSnackBarComponent=x,this.snackBarContainerComponent=A,this.handsetCssClass="mat-snack-bar-handset"}get _openedSnackBarRef(){const t=this._parentSnackBar;return t?t._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(t){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=t:this._snackBarRefAtThisLevel=t}openFromComponent(t,e){return this._attach(t,e)}openFromTemplate(t,e){return this._attach(t,e)}open(t,e="",i){const n=Object.assign(Object.assign({},this._defaultConfig),i);return n.data={message:t,action:e},n.announcementMessage===t&&(n.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,n)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(t,e){const i=o.zs3.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:v,useValue:e}]}),n=new r.C5(this.snackBarContainerComponent,e.viewContainerRef,i),s=t.attach(n);return s.instance.snackBarConfig=e,s.instance}_attach(t,e){const i=Object.assign(Object.assign(Object.assign({},new v),this._defaultConfig),e),n=this._createOverlay(i),s=this._attachSnackBarContainer(n,i),a=new w(s,n);if(t instanceof o.Rgc){const e=new r.UE(t,null,{$implicit:i.data,snackBarRef:a});a.instance=s.attachTemplatePortal(e)}else{const e=this._createInjector(i,a),n=new r.C5(t,void 0,e),o=s.attachComponentPortal(n);a.instance=o.instance}return this._breakpointObserver.observe(f.u3.HandsetPortrait).pipe((0,u.R)(n.detachments())).subscribe(t=>{const e=n.overlayElement.classList;t.matches?e.add(this.handsetCssClass):e.remove(this.handsetCssClass)}),i.announcementMessage&&s._onAnnounce.subscribe(()=>{this._live.announce(i.announcementMessage,i.politeness)}),this._animateSnackBar(a,i),this._openedSnackBarRef=a,this._openedSnackBarRef}_animateSnackBar(t,e){t.afterDismissed().subscribe(()=>{this._openedSnackBarRef==t&&(this._openedSnackBarRef=null),e.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{t.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):t.containerInstance.enter(),e.duration&&e.duration>0&&t.afterOpened().subscribe(()=>t._dismissAfter(e.duration))}_createOverlay(t){const e=new n.X_;e.direction=t.direction;let i=this._overlay.position().global();const r="rtl"===t.direction,s="left"===t.horizontalPosition||"start"===t.horizontalPosition&&!r||"end"===t.horizontalPosition&&r,o=!s&&"center"!==t.horizontalPosition;return s?i.left("0"):o?i.right("0"):i.centerHorizontally(),"top"===t.verticalPosition?i.top("0"):i.bottom("0"),e.positionStrategy=i,this._overlay.create(e)}_createInjector(t,e){return o.zs3.create({parent:t&&t.viewContainerRef&&t.viewContainerRef.injector||this._injector,providers:[{provide:w,useValue:e},{provide:b,useValue:t.data}]})}}return t.\u0275fac=function(e){return new(e||t)(o.LFG(n.aV),o.LFG(p.Kd),o.LFG(o.zs3),o.LFG(f.Yg),o.LFG(t,12),o.LFG(E))},t.\u0275prov=o.Yz7({factory:function(){return new t(o.LFG(n.aV),o.LFG(p.Kd),o.LFG(o.gxx),o.LFG(f.Yg),o.LFG(t,12),o.LFG(E))},token:t,providedIn:S}),t})()},2464:(t,e,i)=>{"use strict";i.d(e,{YE:()=>b,nU:()=>S,JX:()=>E});var n=i(1572),r=i(9861),s=i(1522),o=i(5842),a=i(9666),l=i(5446),c=i(709),h=i(1511),u=i(4621);const d=["mat-sort-header",""];function p(t,e){if(1&t){const t=n.EpF();n.TgZ(0,"div",3),n.NdJ("@arrowPosition.start",function(){return n.CHM(t),n.oxw()._disableViewStateAnimation=!0})("@arrowPosition.done",function(){return n.CHM(t),n.oxw()._disableViewStateAnimation=!1}),n._UZ(1,"div",4),n.TgZ(2,"div",5),n._UZ(3,"div",6),n._UZ(4,"div",7),n._UZ(5,"div",8),n.qZA(),n.qZA()}if(2&t){const t=n.oxw();n.Q6J("@arrowOpacity",t._getArrowViewState())("@arrowPosition",t._getArrowViewState())("@allowChildren",t._getArrowDirectionState()),n.xp6(2),n.Q6J("@indicator",t._getArrowDirectionState()),n.xp6(1),n.Q6J("@leftPointer",t._getArrowDirectionState()),n.xp6(1),n.Q6J("@rightPointer",t._getArrowDirectionState())}}const f=["*"],m=new n.OlP("MAT_SORT_DEFAULT_OPTIONS");class g{}const y=(0,s.dB)((0,s.Id)(g));let b=(()=>{class t extends y{constructor(t){super(),this._defaultOptions=t,this.sortables=new Map,this._stateChanges=new a.x,this.start="asc",this._direction="",this.sortChange=new n.vpe}get direction(){return this._direction}set direction(t){this._direction=t}get disableClear(){return this._disableClear}set disableClear(t){this._disableClear=(0,r.Ig)(t)}register(t){this.sortables.set(t.id,t)}deregister(t){this.sortables.delete(t.id)}sort(t){this.active!=t.id?(this.active=t.id,this.direction=t.start?t.start:this.start):this.direction=this.getNextSortDirection(t),this.sortChange.emit({active:this.active,direction:this.direction})}getNextSortDirection(t){var e,i,n;if(!t)return"";const r=null!==(i=null!==(e=null==t?void 0:t.disableClear)&&void 0!==e?e:this.disableClear)&&void 0!==i?i:!!(null===(n=this._defaultOptions)||void 0===n?void 0:n.disableClear);let s=function(t,e){let i=["asc","desc"];return"desc"==t&&i.reverse(),e||i.push(""),i}(t.start||this.start,r),o=s.indexOf(this.direction)+1;return o>=s.length&&(o=0),s[o]}ngOnInit(){this._markInitialized()}ngOnChanges(){this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(m,8))},t.\u0275dir=n.lG2({type:t,selectors:[["","matSort",""]],hostAttrs:[1,"mat-sort"],inputs:{disabled:["matSortDisabled","disabled"],start:["matSortStart","start"],direction:["matSortDirection","direction"],disableClear:["matSortDisableClear","disableClear"],active:["matSortActive","active"]},outputs:{sortChange:"matSortChange"},exportAs:["matSort"],features:[n.qOj,n.TTD]}),t})();const v=s.mZ.ENTERING+" "+s.yN.STANDARD_CURVE,_={indicator:(0,c.X$)("indicator",[(0,c.SB)("active-asc, asc",(0,c.oB)({transform:"translateY(0px)"})),(0,c.SB)("active-desc, desc",(0,c.oB)({transform:"translateY(10px)"})),(0,c.eR)("active-asc <=> active-desc",(0,c.jt)(v))]),leftPointer:(0,c.X$)("leftPointer",[(0,c.SB)("active-asc, asc",(0,c.oB)({transform:"rotate(-45deg)"})),(0,c.SB)("active-desc, desc",(0,c.oB)({transform:"rotate(45deg)"})),(0,c.eR)("active-asc <=> active-desc",(0,c.jt)(v))]),rightPointer:(0,c.X$)("rightPointer",[(0,c.SB)("active-asc, asc",(0,c.oB)({transform:"rotate(45deg)"})),(0,c.SB)("active-desc, desc",(0,c.oB)({transform:"rotate(-45deg)"})),(0,c.eR)("active-asc <=> active-desc",(0,c.jt)(v))]),arrowOpacity:(0,c.X$)("arrowOpacity",[(0,c.SB)("desc-to-active, asc-to-active, active",(0,c.oB)({opacity:1})),(0,c.SB)("desc-to-hint, asc-to-hint, hint",(0,c.oB)({opacity:.54})),(0,c.SB)("hint-to-desc, active-to-desc, desc, hint-to-asc, active-to-asc, asc, void",(0,c.oB)({opacity:0})),(0,c.eR)("* => asc, * => desc, * => active, * => hint, * => void",(0,c.jt)("0ms")),(0,c.eR)("* <=> *",(0,c.jt)(v))]),arrowPosition:(0,c.X$)("arrowPosition",[(0,c.eR)("* => desc-to-hint, * => desc-to-active",(0,c.jt)(v,(0,c.F4)([(0,c.oB)({transform:"translateY(-25%)"}),(0,c.oB)({transform:"translateY(0)"})]))),(0,c.eR)("* => hint-to-desc, * => active-to-desc",(0,c.jt)(v,(0,c.F4)([(0,c.oB)({transform:"translateY(0)"}),(0,c.oB)({transform:"translateY(25%)"})]))),(0,c.eR)("* => asc-to-hint, * => asc-to-active",(0,c.jt)(v,(0,c.F4)([(0,c.oB)({transform:"translateY(25%)"}),(0,c.oB)({transform:"translateY(0)"})]))),(0,c.eR)("* => hint-to-asc, * => active-to-asc",(0,c.jt)(v,(0,c.F4)([(0,c.oB)({transform:"translateY(0)"}),(0,c.oB)({transform:"translateY(-25%)"})]))),(0,c.SB)("desc-to-hint, asc-to-hint, hint, desc-to-active, asc-to-active, active",(0,c.oB)({transform:"translateY(0)"})),(0,c.SB)("hint-to-desc, active-to-desc, desc",(0,c.oB)({transform:"translateY(-25%)"})),(0,c.SB)("hint-to-asc, active-to-asc, asc",(0,c.oB)({transform:"translateY(25%)"}))]),allowChildren:(0,c.X$)("allowChildren",[(0,c.eR)("* <=> *",[(0,c.IO)("@*",(0,c.pV)(),{optional:!0})])])};let w=(()=>{class t{constructor(){this.changes=new a.x}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=n.Yz7({factory:function(){return new t},token:t,providedIn:"root"}),t})();const x={provide:w,deps:[[new n.FiY,new n.tp0,w]],useFactory:function(t){return t||new w}};class C{}const A=(0,s.Id)(C);let S=(()=>{class t extends A{constructor(t,e,i,n,r,s){super(),this._intl=t,this._changeDetectorRef=e,this._sort=i,this._columnDef=n,this._focusMonitor=r,this._elementRef=s,this._showIndicatorHint=!1,this._viewState={},this._arrowDirection="",this._disableViewStateAnimation=!1,this.arrowPosition="after",this._handleStateChanges()}get disableClear(){return this._disableClear}set disableClear(t){this._disableClear=(0,r.Ig)(t)}ngOnInit(){!this.id&&this._columnDef&&(this.id=this._columnDef.name),this._updateArrowDirection(),this._setAnimationTransitionState({toState:this._isSorted()?"active":this._arrowDirection}),this._sort.register(this)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{const e=!!t;e!==this._showIndicatorHint&&(this._setIndicatorHintVisible(e),this._changeDetectorRef.markForCheck())})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._sort.deregister(this),this._rerenderSubscription.unsubscribe()}_setIndicatorHintVisible(t){this._isDisabled()&&t||(this._showIndicatorHint=t,this._isSorted()||(this._updateArrowDirection(),this._setAnimationTransitionState(this._showIndicatorHint?{fromState:this._arrowDirection,toState:"hint"}:{fromState:"hint",toState:this._arrowDirection})))}_setAnimationTransitionState(t){this._viewState=t||{},this._disableViewStateAnimation&&(this._viewState={toState:t.toState})}_toggleOnInteraction(){this._sort.sort(this),"hint"!==this._viewState.toState&&"active"!==this._viewState.toState||(this._disableViewStateAnimation=!0)}_handleClick(){this._isDisabled()||this._sort.sort(this)}_handleKeydown(t){this._isDisabled()||t.keyCode!==o.L_&&t.keyCode!==o.K5||(t.preventDefault(),this._toggleOnInteraction())}_isSorted(){return this._sort.active==this.id&&("asc"===this._sort.direction||"desc"===this._sort.direction)}_getArrowDirectionState(){return`${this._isSorted()?"active-":""}${this._arrowDirection}`}_getArrowViewState(){const t=this._viewState.fromState;return(t?`${t}-to-`:"")+this._viewState.toState}_updateArrowDirection(){this._arrowDirection=this._isSorted()?this._sort.direction:this.start||this._sort.start}_isDisabled(){return this._sort.disabled||this.disabled}_getAriaSortAttribute(){return this._isSorted()?"asc"==this._sort.direction?"ascending":"descending":"none"}_renderArrow(){return!this._isDisabled()||this._isSorted()}_handleStateChanges(){this._rerenderSubscription=(0,l.T)(this._sort.sortChange,this._sort._stateChanges,this._intl.changes).subscribe(()=>{this._isSorted()&&(this._updateArrowDirection(),"hint"!==this._viewState.toState&&"active"!==this._viewState.toState||(this._disableViewStateAnimation=!0),this._setAnimationTransitionState({fromState:this._arrowDirection,toState:"active"}),this._showIndicatorHint=!1),!this._isSorted()&&this._viewState&&"active"===this._viewState.toState&&(this._disableViewStateAnimation=!1,this._setAnimationTransitionState({fromState:"active",toState:this._arrowDirection})),this._changeDetectorRef.markForCheck()})}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(w),n.Y36(n.sBO),n.Y36(b,8),n.Y36("MAT_SORT_HEADER_COLUMN_DEF",8),n.Y36(u.tE),n.Y36(n.SBq))},t.\u0275cmp=n.Xpm({type:t,selectors:[["","mat-sort-header",""]],hostAttrs:[1,"mat-sort-header"],hostVars:3,hostBindings:function(t,e){1&t&&n.NdJ("click",function(){return e._handleClick()})("keydown",function(t){return e._handleKeydown(t)})("mouseenter",function(){return e._setIndicatorHintVisible(!0)})("mouseleave",function(){return e._setIndicatorHintVisible(!1)}),2&t&&(n.uIk("aria-sort",e._getAriaSortAttribute()),n.ekj("mat-sort-header-disabled",e._isDisabled()))},inputs:{disabled:"disabled",arrowPosition:"arrowPosition",disableClear:"disableClear",id:["mat-sort-header","id"],start:"start"},exportAs:["matSortHeader"],features:[n.qOj],attrs:d,ngContentSelectors:f,decls:4,vars:6,consts:[["role","button",1,"mat-sort-header-container","mat-focus-indicator"],[1,"mat-sort-header-content"],["class","mat-sort-header-arrow",4,"ngIf"],[1,"mat-sort-header-arrow"],[1,"mat-sort-header-stem"],[1,"mat-sort-header-indicator"],[1,"mat-sort-header-pointer-left"],[1,"mat-sort-header-pointer-right"],[1,"mat-sort-header-pointer-middle"]],template:function(t,e){1&t&&(n.F$t(),n.TgZ(0,"div",0),n.TgZ(1,"div",1),n.Hsn(2),n.qZA(),n.YNc(3,p,6,6,"div",2),n.qZA()),2&t&&(n.ekj("mat-sort-header-sorted",e._isSorted())("mat-sort-header-position-before","before"==e.arrowPosition),n.uIk("tabindex",e._isDisabled()?null:0),n.xp6(3),n.Q6J("ngIf",e._renderArrow()))},directives:[h.O5],styles:[".mat-sort-header-container{display:flex;cursor:pointer;align-items:center;letter-spacing:normal;outline:0}[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container,[mat-sort-header].cdk-program-focused .mat-sort-header-container{border-bottom:solid 1px currentColor}.mat-sort-header-disabled .mat-sort-header-container{cursor:default}.mat-sort-header-content{text-align:center;display:flex;align-items:center}.mat-sort-header-position-before{flex-direction:row-reverse}.mat-sort-header-arrow{height:12px;width:12px;min-width:12px;position:relative;display:flex;opacity:0}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.mat-sort-header-stem{background:currentColor;height:10px;width:2px;margin:auto;display:flex;align-items:center}.cdk-high-contrast-active .mat-sort-header-stem{width:0;border-left:solid 2px}.mat-sort-header-indicator{width:100%;height:2px;display:flex;align-items:center;position:absolute;top:0;left:0}.mat-sort-header-pointer-middle{margin:auto;height:2px;width:2px;background:currentColor;transform:rotate(45deg)}.cdk-high-contrast-active .mat-sort-header-pointer-middle{width:0;height:0;border-top:solid 2px;border-left:solid 2px}.mat-sort-header-pointer-left,.mat-sort-header-pointer-right{background:currentColor;width:6px;height:2px;position:absolute;top:0}.cdk-high-contrast-active .mat-sort-header-pointer-left,.cdk-high-contrast-active .mat-sort-header-pointer-right{width:0;height:0;border-left:solid 6px;border-top:solid 2px}.mat-sort-header-pointer-left{transform-origin:right;left:0}.mat-sort-header-pointer-right{transform-origin:left;right:0}\n"],encapsulation:2,data:{animation:[_.indicator,_.leftPointer,_.rightPointer,_.arrowOpacity,_.arrowPosition,_.allowChildren]},changeDetection:0}),t})(),E=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({providers:[x],imports:[[h.ez,s.BQ]]}),t})()},7753:(t,e,i)=>{"use strict";i.d(e,{C0:()=>Q,VY:()=>B,Vq:()=>K,z9:()=>j,T5:()=>et,Ic:()=>$,fd:()=>tt});var n=i(6899),r=i(8544),s=i(1511),o=i(1572),a=i(5980),l=i(1522),c=i(3691),h=i(9666),u=i(6042),d=i(4324),p=i(1681),f=i(1258),m=i(9568),g=i(6424),y=i(709),b=i(4621),v=i(2526);function _(t,e){if(1&t&&o.GkF(0,8),2&t){const t=o.oxw();o.Q6J("ngTemplateOutlet",t.iconOverrides[t.state])("ngTemplateOutletContext",t._getIconContext())}}function w(t,e){if(1&t&&(o.TgZ(0,"span"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t._getDefaultTextForState(t.state))}}function x(t,e){if(1&t&&(o.TgZ(0,"mat-icon"),o._uU(1),o.qZA()),2&t){const t=o.oxw(2);o.xp6(1),o.Oqu(t._getDefaultTextForState(t.state))}}function C(t,e){if(1&t&&(o.ynx(0,9),o.YNc(1,w,2,1,"span",10),o.YNc(2,x,2,1,"mat-icon",11),o.BQk()),2&t){const t=o.oxw();o.Q6J("ngSwitch",t.state),o.xp6(1),o.Q6J("ngSwitchCase","number")}}function A(t,e){if(1&t&&(o.TgZ(0,"div",12),o.GkF(1,13),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngTemplateOutlet",t._templateLabel().template)}}function S(t,e){if(1&t&&(o.TgZ(0,"div",12),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.label)}}function E(t,e){if(1&t&&(o.TgZ(0,"div",14),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t._intl.optionalLabel)}}function k(t,e){if(1&t&&(o.TgZ(0,"div",15),o._uU(1),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Oqu(t.errorMessage)}}function T(t,e){}function M(t,e){if(1&t&&(o.Hsn(0),o.YNc(1,T,0,0,"ng-template",0)),2&t){const t=o.oxw();o.xp6(1),o.Q6J("cdkPortalOutlet",t._portal)}}const L=["*"];function I(t,e){1&t&&o._UZ(0,"div",9)}const O=function(t,e){return{step:t,i:e}};function D(t,e){if(1&t&&(o.ynx(0),o.GkF(1,7),o.YNc(2,I,1,0,"div",8),o.BQk()),2&t){const t=e.$implicit,i=e.index,n=e.last;o.oxw(2);const r=o.MAs(4);o.xp6(1),o.Q6J("ngTemplateOutlet",r)("ngTemplateOutletContext",o.WLB(3,O,t,i)),o.xp6(1),o.Q6J("ngIf",!n)}}function R(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",10),o.NdJ("@horizontalStepTransition.done",function(e){return o.CHM(t),o.oxw(2)._animationDone.next(e)}),o.GkF(1,11),o.qZA()}if(2&t){const t=e.$implicit,i=e.index,n=o.oxw(2);o.Q6J("@horizontalStepTransition",n._getAnimationDirection(i))("id",n._getStepContentId(i)),o.uIk("aria-labelledby",n._getStepLabelId(i))("aria-expanded",n.selectedIndex===i),o.xp6(1),o.Q6J("ngTemplateOutlet",t.content)}}function N(t,e){if(1&t&&(o.ynx(0),o.TgZ(1,"div",3),o.YNc(2,D,3,6,"ng-container",4),o.qZA(),o.TgZ(3,"div",5),o.YNc(4,R,2,5,"div",6),o.qZA(),o.BQk()),2&t){const t=o.oxw();o.xp6(2),o.Q6J("ngForOf",t.steps),o.xp6(2),o.Q6J("ngForOf",t.steps)}}function P(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",13),o.GkF(1,7),o.TgZ(2,"div",14),o.TgZ(3,"div",15),o.NdJ("@verticalStepTransition.done",function(e){return o.CHM(t),o.oxw(2)._animationDone.next(e)}),o.TgZ(4,"div",16),o.GkF(5,11),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=e.$implicit,i=e.index,n=e.last,r=o.oxw(2),s=o.MAs(4);o.xp6(1),o.Q6J("ngTemplateOutlet",s)("ngTemplateOutletContext",o.WLB(9,O,t,i)),o.xp6(1),o.ekj("mat-stepper-vertical-line",!n),o.xp6(1),o.Q6J("@verticalStepTransition",r._getAnimationDirection(i))("id",r._getStepContentId(i)),o.uIk("aria-labelledby",r._getStepLabelId(i))("aria-expanded",r.selectedIndex===i),o.xp6(2),o.Q6J("ngTemplateOutlet",t.content)}}function F(t,e){if(1&t&&(o.ynx(0),o.YNc(1,P,6,12,"div",12),o.BQk()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("ngForOf",t.steps)}}function Z(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"mat-step-header",17),o.NdJ("click",function(){return e.step.select()})("keydown",function(e){return o.CHM(t),o.oxw()._onKeydown(e)}),o.qZA()}if(2&t){const t=e.step,i=e.i,n=o.oxw();o.ekj("mat-horizontal-stepper-header","horizontal"===n.orientation)("mat-vertical-stepper-header","vertical"===n.orientation),o.Q6J("tabIndex",n._getFocusIndex()===i?0:-1)("id",n._getStepLabelId(i))("index",i)("state",n._getIndicatorType(i,t.state))("label",t.stepLabel||t.label)("selected",n.selectedIndex===i)("active",t.completed||n.selectedIndex===i||!n.linear)("optional",t.optional)("errorMessage",t.errorMessage)("iconOverrides",n._iconOverrides)("disableRipple",n.disableRipple)("color",t.color||n.color),o.uIk("aria-posinset",i+1)("aria-setsize",n.steps.length)("aria-controls",n._getStepContentId(i))("aria-selected",n.selectedIndex==i)("aria-label",t.ariaLabel||null)("aria-labelledby",!t.ariaLabel&&t.ariaLabelledby?t.ariaLabelledby:null)}}let B=(()=>{class t extends r.u6{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275dir=o.lG2({type:t,selectors:[["","matStepLabel",""]],features:[o.qOj]}),t})(),U=(()=>{class t{constructor(){this.changes=new h.x,this.optionalLabel="Optional"}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=o.Yz7({factory:function(){return new t},token:t,providedIn:"root"}),t})();const q={provide:U,deps:[[new o.FiY,new o.tp0,U]],useFactory:function(t){return t||new U}};class z extends r.KL{constructor(t){super(t)}}const H=(0,l.pj)(z,"primary");let Y=(()=>{class t extends H{constructor(t,e,i,n){super(i),this._intl=t,this._focusMonitor=e,this._intlSubscription=t.changes.subscribe(()=>n.markForCheck())}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._intlSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._elementRef)}focus(t,e){t?this._focusMonitor.focusVia(this._elementRef,t,e):this._elementRef.nativeElement.focus(e)}_stringLabel(){return this.label instanceof B?null:this.label}_templateLabel(){return this.label instanceof B?this.label:null}_getHostElement(){return this._elementRef.nativeElement}_getIconContext(){return{index:this.index,active:this.active,optional:this.optional}}_getDefaultTextForState(t){return"number"==t?`${this.index+1}`:"edit"==t?"create":"error"==t?"warning":t}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(U),o.Y36(b.tE),o.Y36(o.SBq),o.Y36(o.sBO))},t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-step-header"]],hostAttrs:["role","tab",1,"mat-step-header"],inputs:{color:"color",state:"state",label:"label",errorMessage:"errorMessage",iconOverrides:"iconOverrides",index:"index",selected:"selected",active:"active",optional:"optional",disableRipple:"disableRipple"},features:[o.qOj],decls:10,vars:19,consts:[["matRipple","",1,"mat-step-header-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-step-icon-content",3,"ngSwitch"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngSwitchCase"],[3,"ngSwitch",4,"ngSwitchDefault"],[1,"mat-step-label"],["class","mat-step-text-label",4,"ngIf"],["class","mat-step-optional",4,"ngIf"],["class","mat-step-sub-label-error",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],[1,"mat-step-text-label"],[3,"ngTemplateOutlet"],[1,"mat-step-optional"],[1,"mat-step-sub-label-error"]],template:function(t,e){1&t&&(o._UZ(0,"div",0),o.TgZ(1,"div"),o.TgZ(2,"div",1),o.YNc(3,_,1,2,"ng-container",2),o.YNc(4,C,3,2,"ng-container",3),o.qZA(),o.qZA(),o.TgZ(5,"div",4),o.YNc(6,A,2,1,"div",5),o.YNc(7,S,2,1,"div",5),o.YNc(8,E,2,1,"div",6),o.YNc(9,k,2,1,"div",7),o.qZA()),2&t&&(o.Q6J("matRippleTrigger",e._getHostElement())("matRippleDisabled",e.disableRipple),o.xp6(1),o.Gre("mat-step-icon-state-",e.state," mat-step-icon"),o.ekj("mat-step-icon-selected",e.selected),o.xp6(1),o.Q6J("ngSwitch",!(!e.iconOverrides||!e.iconOverrides[e.state])),o.xp6(1),o.Q6J("ngSwitchCase",!0),o.xp6(2),o.ekj("mat-step-label-active",e.active)("mat-step-label-selected",e.selected)("mat-step-label-error","error"==e.state),o.xp6(1),o.Q6J("ngIf",e._templateLabel()),o.xp6(1),o.Q6J("ngIf",e._stringLabel()),o.xp6(1),o.Q6J("ngIf",e.optional&&"error"!=e.state),o.xp6(1),o.Q6J("ngIf","error"==e.state))},directives:[l.wG,s.RF,s.n9,s.ED,s.O5,s.tP,c.Hw],styles:[".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:transparent}.mat-step-optional,.mat-step-sub-label-error{font-size:12px}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative}.mat-step-icon-content,.mat-step-icon .mat-icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n"],encapsulation:2,changeDetection:0}),t})();const G={horizontalStepTransition:(0,y.X$)("horizontalStepTransition",[(0,y.SB)("previous",(0,y.oB)({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"})),(0,y.SB)("current",(0,y.oB)({transform:"none",visibility:"inherit"})),(0,y.SB)("next",(0,y.oB)({transform:"translate3d(100%, 0, 0)",visibility:"hidden"})),(0,y.eR)("* => *",(0,y.jt)("500ms cubic-bezier(0.35, 0, 0.25, 1)"))]),verticalStepTransition:(0,y.X$)("verticalStepTransition",[(0,y.SB)("previous",(0,y.oB)({height:"0px",visibility:"hidden"})),(0,y.SB)("next",(0,y.oB)({height:"0px",visibility:"hidden"})),(0,y.SB)("current",(0,y.oB)({height:"*",visibility:"inherit"})),(0,y.eR)("* <=> current",(0,y.jt)("225ms cubic-bezier(0.4, 0.0, 0.2, 1)"))])};let j=(()=>{class t{constructor(t){this.templateRef=t}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.Rgc))},t.\u0275dir=o.lG2({type:t,selectors:[["ng-template","matStepperIcon",""]],inputs:{name:["matStepperIcon","name"]}}),t})(),V=(()=>{class t{constructor(t){this._template=t}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.Rgc))},t.\u0275dir=o.lG2({type:t,selectors:[["ng-template","matStepContent",""]]}),t})(),Q=(()=>{class t extends r.be{constructor(t,e,i,n){super(t,n),this._errorStateMatcher=e,this._viewContainerRef=i,this._isSelected=u.w0.EMPTY}ngAfterContentInit(){this._isSelected=this._stepper.steps.changes.pipe((0,d.w)(()=>this._stepper.selectionChange.pipe((0,p.U)(t=>t.selectedStep===this),(0,f.O)(this._stepper.selected===this)))).subscribe(t=>{t&&this._lazyContent&&!this._portal&&(this._portal=new n.UE(this._lazyContent._template,this._viewContainerRef))})}ngOnDestroy(){this._isSelected.unsubscribe()}isErrorState(t,e){return this._errorStateMatcher.isErrorState(t,e)||!!(t&&t.invalid&&this.interacted)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36((0,o.Gpc)(()=>K)),o.Y36(l.rD,4),o.Y36(o.s_b),o.Y36(r.gx,8))},t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-step"]],contentQueries:function(t,e,i){if(1&t&&(o.Suo(i,B,5),o.Suo(i,V,5)),2&t){let t;o.iGM(t=o.CRH())&&(e.stepLabel=t.first),o.iGM(t=o.CRH())&&(e._lazyContent=t.first)}},inputs:{color:"color"},exportAs:["matStep"],features:[o._Bn([{provide:l.rD,useExisting:t},{provide:r.be,useExisting:t}]),o.qOj],ngContentSelectors:L,decls:1,vars:0,consts:[[3,"cdkPortalOutlet"]],template:function(t,e){1&t&&(o.F$t(),o.YNc(0,M,2,1,"ng-template"))},directives:[n.Pl],encapsulation:2,changeDetection:0}),t})(),W=(()=>{class t extends r.B8{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275dir=o.lG2({type:t,features:[o.qOj]}),t})(),J=(()=>{class t extends W{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275dir=o.lG2({type:t,selectors:[["mat-horizontal-stepper"]],features:[o.qOj]}),t})(),X=(()=>{class t extends W{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275dir=o.lG2({type:t,selectors:[["mat-vertical-stepper"]],features:[o.qOj]}),t})(),K=(()=>{class t extends r.B8{constructor(t,e,i,n){super(t,e,i,n),this.steps=new o.n_E,this.animationDone=new o.vpe,this.labelPosition="end",this._iconOverrides={},this._animationDone=new h.x;const r=i.nativeElement.nodeName.toLowerCase();this.orientation="mat-vertical-stepper"===r?"vertical":"horizontal"}ngAfterContentInit(){super.ngAfterContentInit(),this._icons.forEach(({name:t,templateRef:e})=>this._iconOverrides[t]=e),this.steps.changes.pipe((0,m.R)(this._destroyed)).subscribe(()=>{this._stateChanged()}),this._animationDone.pipe((0,g.x)((t,e)=>t.fromState===e.fromState&&t.toState===e.toState),(0,m.R)(this._destroyed)).subscribe(t=>{"current"===t.toState&&this.animationDone.emit()})}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(v.Is,8),o.Y36(o.sBO),o.Y36(o.SBq),o.Y36(s.K0))},t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-stepper"],["mat-vertical-stepper"],["mat-horizontal-stepper"],["","matStepper",""]],contentQueries:function(t,e,i){if(1&t&&(o.Suo(i,Q,5),o.Suo(i,j,5)),2&t){let t;o.iGM(t=o.CRH())&&(e._steps=t),o.iGM(t=o.CRH())&&(e._icons=t)}},viewQuery:function(t,e){if(1&t&&o.Gf(Y,5),2&t){let t;o.iGM(t=o.CRH())&&(e._stepHeader=t)}},hostAttrs:["role","tablist"],hostVars:9,hostBindings:function(t,e){2&t&&(o.uIk("aria-orientation",e.orientation),o.ekj("mat-stepper-horizontal","horizontal"===e.orientation)("mat-stepper-vertical","vertical"===e.orientation)("mat-stepper-label-position-end","horizontal"===e.orientation&&"end"==e.labelPosition)("mat-stepper-label-position-bottom","horizontal"===e.orientation&&"bottom"==e.labelPosition))},inputs:{selectedIndex:"selectedIndex",labelPosition:"labelPosition",disableRipple:"disableRipple",color:"color"},outputs:{animationDone:"animationDone"},exportAs:["matStepper","matVerticalStepper","matHorizontalStepper"],features:[o._Bn([{provide:r.B8,useExisting:t},{provide:J,useExisting:t},{provide:X,useExisting:t}]),o.qOj],decls:5,vars:3,consts:[[3,"ngSwitch"],[4,"ngSwitchCase"],["stepTemplate",""],[1,"mat-horizontal-stepper-header-container"],[4,"ngFor","ngForOf"],[1,"mat-horizontal-content-container"],["class","mat-horizontal-stepper-content","role","tabpanel",3,"id",4,"ngFor","ngForOf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","mat-stepper-horizontal-line",4,"ngIf"],[1,"mat-stepper-horizontal-line"],["role","tabpanel",1,"mat-horizontal-stepper-content",3,"id"],[3,"ngTemplateOutlet"],["class","mat-step",4,"ngFor","ngForOf"],[1,"mat-step"],[1,"mat-vertical-content-container"],["role","tabpanel",1,"mat-vertical-stepper-content",3,"id"],[1,"mat-vertical-content"],[3,"tabIndex","id","index","state","label","selected","active","optional","errorMessage","iconOverrides","disableRipple","color","click","keydown"]],template:function(t,e){1&t&&(o.ynx(0,0),o.YNc(1,N,5,2,"ng-container",1),o.YNc(2,F,2,1,"ng-container",1),o.BQk(),o.YNc(3,Z,1,22,"ng-template",null,2,o.W1O)),2&t&&(o.Q6J("ngSwitch",e.orientation),o.xp6(1),o.Q6J("ngSwitchCase","horizontal"),o.xp6(1),o.Q6J("ngSwitchCase","vertical"))},directives:[s.RF,s.n9,s.sg,s.tP,s.O5,Y],styles:['.mat-stepper-vertical,.mat-stepper-horizontal{display:block}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:"";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content[aria-expanded=false]{height:0;overflow:hidden}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:"";position:absolute;left:0;border-left-width:1px;border-left-style:solid}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}\n'],encapsulation:2,data:{animation:[G.horizontalStepTransition,G.verticalStepTransition]},changeDetection:0}),t})(),$=(()=>{class t extends r.st{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275dir=o.lG2({type:t,selectors:[["button","matStepperNext",""]],hostAttrs:[1,"mat-stepper-next"],hostVars:1,hostBindings:function(t,e){2&t&&o.Ikx("type",e.type)},inputs:{type:"type"},features:[o.qOj]}),t})(),tt=(()=>{class t extends r.po{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=o.n5z(t)))(i||t)}}(),t.\u0275dir=o.lG2({type:t,selectors:[["button","matStepperPrevious",""]],hostAttrs:[1,"mat-stepper-previous"],hostVars:1,hostBindings:function(t,e){2&t&&o.Ikx("type",e.type)},inputs:{type:"type"},features:[o.qOj]}),t})(),et=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=o.oAB({type:t}),t.\u0275inj=o.cJS({providers:[q,l.rD],imports:[[l.BQ,s.ez,n.eL,a.ot,r.U5,c.Ps,l.si],l.BQ]}),t})()},7033:(t,e,i)=>{"use strict";i.d(e,{ev:()=>gt,Dz:()=>ht,w1:()=>pt,yh:()=>mt,mD:()=>dt,Q2:()=>wt,Ke:()=>bt,ge:()=>ft,fO:()=>ut,XQ:()=>_t,as:()=>yt,Gk:()=>xt,nj:()=>vt,BZ:()=>ct,by:()=>St,p0:()=>Ct});var n=i(9861),r=i(4230),s=i(1572),o=i(2526),a=i(1353),l=i(4894),c=i(1511),h=i(9666),u=i(5630),d=i(7425),p=i(4776),f=i(2041),m=i(9568),g=i(9056);const y=[[["caption"]],[["colgroup"],["col"]]],b=["caption","colgroup, col"];function v(t){return class extends t{constructor(...t){super(...t),this._sticky=!1,this._hasStickyChanged=!1}get sticky(){return this._sticky}set sticky(t){const e=this._sticky;this._sticky=(0,n.Ig)(t),this._hasStickyChanged=e!==this._sticky}hasStickyChanged(){const t=this._hasStickyChanged;return this._hasStickyChanged=!1,t}resetStickyChanged(){this._hasStickyChanged=!1}}}const _=new s.OlP("CDK_TABLE");let w=(()=>{class t{constructor(t){this.template=t}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.Rgc))},t.\u0275dir=s.lG2({type:t,selectors:[["","cdkCellDef",""]]}),t})(),x=(()=>{class t{constructor(t){this.template=t}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.Rgc))},t.\u0275dir=s.lG2({type:t,selectors:[["","cdkHeaderCellDef",""]]}),t})(),C=(()=>{class t{constructor(t){this.template=t}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.Rgc))},t.\u0275dir=s.lG2({type:t,selectors:[["","cdkFooterCellDef",""]]}),t})();class A{}const S=v(A);let E=(()=>{class t extends S{constructor(t){super(),this._table=t,this._stickyEnd=!1}get name(){return this._name}set name(t){this._setNameInput(t)}get stickyEnd(){return this._stickyEnd}set stickyEnd(t){const e=this._stickyEnd;this._stickyEnd=(0,n.Ig)(t),this._hasStickyChanged=e!==this._stickyEnd}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(t){t&&(this._name=t,this.cssClassFriendlyName=t.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(_,8))},t.\u0275dir=s.lG2({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(t,e,i){if(1&t&&(s.Suo(i,w,5),s.Suo(i,x,5),s.Suo(i,C,5)),2&t){let t;s.iGM(t=s.CRH())&&(e.cell=t.first),s.iGM(t=s.CRH())&&(e.headerCell=t.first),s.iGM(t=s.CRH())&&(e.footerCell=t.first)}},inputs:{sticky:"sticky",name:["cdkColumnDef","name"],stickyEnd:"stickyEnd"},features:[s._Bn([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),s.qOj]}),t})();class k{constructor(t,e){const i=e.nativeElement.classList;for(const n of t._columnCssClassName)i.add(n)}}let T=(()=>{class t extends k{constructor(t,e){super(t,e)}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(E),s.Y36(s.SBq))},t.\u0275dir=s.lG2({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[s.qOj]}),t})(),M=(()=>{class t extends k{constructor(t,e){super(t,e)}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(E),s.Y36(s.SBq))},t.\u0275dir=s.lG2({type:t,selectors:[["cdk-footer-cell"],["td","cdk-footer-cell",""]],hostAttrs:["role","gridcell",1,"cdk-footer-cell"],features:[s.qOj]}),t})(),L=(()=>{class t extends k{constructor(t,e){super(t,e)}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(E),s.Y36(s.SBq))},t.\u0275dir=s.lG2({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:["role","gridcell",1,"cdk-cell"],features:[s.qOj]}),t})();class I{constructor(){this.tasks=[],this.endTasks=[]}}const O=new s.OlP("_COALESCED_STYLE_SCHEDULER");let D=(()=>{class t{constructor(t){this._ngZone=t,this._currentSchedule=null,this._destroyed=new h.x}schedule(t){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(t)}scheduleEnd(t){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(t)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new I,this._getScheduleObservable().pipe((0,m.R)(this._destroyed)).subscribe(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){const t=this._currentSchedule;this._currentSchedule=new I;for(const e of t.tasks)e();for(const e of t.endTasks)e()}this._currentSchedule=null}))}_getScheduleObservable(){return this._ngZone.isStable?(0,u.Dp)(Promise.resolve(void 0)):this._ngZone.onStable.pipe((0,g.q)(1))}}return t.\u0275fac=function(e){return new(e||t)(s.LFG(s.R0b))},t.\u0275prov=s.Yz7({token:t,factory:t.\u0275fac}),t})(),R=(()=>{class t{constructor(t,e){this.template=t,this._differs=e}ngOnChanges(t){if(!this._columnsDiffer){const e=t.columns&&t.columns.currentValue||[];this._columnsDiffer=this._differs.find(e).create(),this._columnsDiffer.diff(e)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(t){return this instanceof F?t.headerCell.template:this instanceof U?t.footerCell.template:t.cell.template}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.Rgc),s.Y36(s.ZZ4))},t.\u0275dir=s.lG2({type:t,features:[s.TTD]}),t})();class N extends R{}const P=v(N);let F=(()=>{class t extends P{constructor(t,e,i){super(t,e),this._table=i}ngOnChanges(t){super.ngOnChanges(t)}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.Rgc),s.Y36(s.ZZ4),s.Y36(_,8))},t.\u0275dir=s.lG2({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:["cdkHeaderRowDef","columns"],sticky:["cdkHeaderRowDefSticky","sticky"]},features:[s.qOj,s.TTD]}),t})();class Z extends R{}const B=v(Z);let U=(()=>{class t extends B{constructor(t,e,i){super(t,e),this._table=i}ngOnChanges(t){super.ngOnChanges(t)}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.Rgc),s.Y36(s.ZZ4),s.Y36(_,8))},t.\u0275dir=s.lG2({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:["cdkFooterRowDef","columns"],sticky:["cdkFooterRowDefSticky","sticky"]},features:[s.qOj,s.TTD]}),t})(),q=(()=>{class t extends R{constructor(t,e,i){super(t,e),this._table=i}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.Rgc),s.Y36(s.ZZ4),s.Y36(_,8))},t.\u0275dir=s.lG2({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:["cdkRowDefColumns","columns"],when:["cdkRowDefWhen","when"]},features:[s.qOj]}),t})(),z=(()=>{class t{constructor(e){this._viewContainer=e,t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.s_b))},t.\u0275dir=s.lG2({type:t,selectors:[["","cdkCellOutlet",""]]}),t.mostRecentCellOutlet=null,t})(),H=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=s.Xpm({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(t,e){1&t&&s.GkF(0,0)},directives:[z],encapsulation:2}),t})(),Y=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=s.Xpm({type:t,selectors:[["cdk-footer-row"],["tr","cdk-footer-row",""]],hostAttrs:["role","row",1,"cdk-footer-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(t,e){1&t&&s.GkF(0,0)},directives:[z],encapsulation:2}),t})(),G=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=s.Xpm({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(t,e){1&t&&s.GkF(0,0)},directives:[z],encapsulation:2}),t})(),j=(()=>{class t{constructor(t){this.templateRef=t}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.Rgc))},t.\u0275dir=s.lG2({type:t,selectors:[["ng-template","cdkNoDataRow",""]]}),t})();const V=["top","bottom","left","right"];class Q{constructor(t,e,i,n,r=!0,s=!0,o){this._isNativeHtmlTable=t,this._stickCellCss=e,this.direction=i,this._coalescedStyleScheduler=n,this._isBrowser=r,this._needsPositionStickyOnElement=s,this._positionListener=o,this._cachedCellWidths=[],this._borderCellCss={top:`${e}-border-elem-top`,bottom:`${e}-border-elem-bottom`,left:`${e}-border-elem-left`,right:`${e}-border-elem-right`}}clearStickyPositioning(t,e){const i=[];for(const n of t)if(n.nodeType===n.ELEMENT_NODE){i.push(n);for(let t=0;t{for(const t of i)this._removeStickyStyle(t,e)})}updateStickyColumns(t,e,i,n=!0){if(!t.length||!this._isBrowser||!e.some(t=>t)&&!i.some(t=>t))return void(this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:[]}),this._positionListener.stickyEndColumnsUpdated({sizes:[]})));const r=t[0],s=r.children.length,o=this._getCellWidths(r,n),a=this._getStickyStartColumnPositions(o,e),l=this._getStickyEndColumnPositions(o,i),c=e.lastIndexOf(!0),h=i.indexOf(!0);this._coalescedStyleScheduler.schedule(()=>{const n="rtl"===this.direction,r=n?"right":"left",u=n?"left":"right";for(const o of t)for(let t=0;te[i]?t:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:-1===h?[]:o.slice(h).map((t,e)=>i[e+h]?t:null).reverse()}))})}stickRows(t,e,i){if(!this._isBrowser)return;const n="bottom"===i?t.slice().reverse():t,r="bottom"===i?e.slice().reverse():e,s=[],o=[],a=[];for(let c=0,h=0;c{var t,e;for(let o=0;o{e.some(t=>!t)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1)})}_removeStickyStyle(t,e){for(const i of e)t.style[i]="",t.classList.remove(this._borderCellCss[i]);V.some(i=>-1===e.indexOf(i)&&t.style[i])?t.style.zIndex=this._getCalculatedZIndex(t):(t.style.zIndex="",this._needsPositionStickyOnElement&&(t.style.position=""),t.classList.remove(this._stickCellCss))}_addStickyStyle(t,e,i,n){t.classList.add(this._stickCellCss),n&&t.classList.add(this._borderCellCss[e]),t.style[e]=`${i}px`,t.style.zIndex=this._getCalculatedZIndex(t),this._needsPositionStickyOnElement&&(t.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(t){const e={top:100,bottom:10,left:1,right:1};let i=0;for(const n of V)t.style[n]&&(i+=e[n]);return i?`${i}`:""}_getCellWidths(t,e=!0){if(!e&&this._cachedCellWidths.length)return this._cachedCellWidths;const i=[],n=t.children;for(let r=0;r0;r--)e[r]&&(i[r]=n,n+=t[r]);return i}}const W=new s.OlP("CDK_SPL");let J=(()=>{class t{constructor(t,e){this.viewContainer=t,this.elementRef=e}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.s_b),s.Y36(s.SBq))},t.\u0275dir=s.lG2({type:t,selectors:[["","rowOutlet",""]]}),t})(),X=(()=>{class t{constructor(t,e){this.viewContainer=t,this.elementRef=e}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.s_b),s.Y36(s.SBq))},t.\u0275dir=s.lG2({type:t,selectors:[["","headerRowOutlet",""]]}),t})(),K=(()=>{class t{constructor(t,e){this.viewContainer=t,this.elementRef=e}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.s_b),s.Y36(s.SBq))},t.\u0275dir=s.lG2({type:t,selectors:[["","footerRowOutlet",""]]}),t})(),$=(()=>{class t{constructor(t,e){this.viewContainer=t,this.elementRef=e}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.s_b),s.Y36(s.SBq))},t.\u0275dir=s.lG2({type:t,selectors:[["","noDataRowOutlet",""]]}),t})(),tt=(()=>{class t{constructor(t,e,i,n,r,s,o,a,l,c,u){this._differs=t,this._changeDetectorRef=e,this._elementRef=i,this._dir=r,this._platform=o,this._viewRepeater=a,this._coalescedStyleScheduler=l,this._viewportRuler=c,this._stickyPositioningListener=u,this._onDestroy=new h.x,this._columnDefsByName=new Map,this._customColumnDefs=new Set,this._customRowDefs=new Set,this._customHeaderRowDefs=new Set,this._customFooterRowDefs=new Set,this._headerRowDefChanged=!0,this._footerRowDefChanged=!0,this._stickyColumnStylesNeedReset=!0,this._forceRecalculateCellWidths=!0,this._cachedRenderRowsMap=new Map,this.stickyCssClass="cdk-table-sticky",this.needsPositionStickyOnElement=!0,this._isShowingNoDataRow=!1,this._multiTemplateDataRows=!1,this._fixedLayout=!1,this.viewChange=new d.X({start:0,end:Number.MAX_VALUE}),n||this._elementRef.nativeElement.setAttribute("role","grid"),this._document=s,this._isNativeHtmlTable="TABLE"===this._elementRef.nativeElement.nodeName}get trackBy(){return this._trackByFn}set trackBy(t){this._trackByFn=t}get dataSource(){return this._dataSource}set dataSource(t){this._dataSource!==t&&this._switchDataSource(t)}get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(t){this._multiTemplateDataRows=(0,n.Ig)(t),this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}get fixedLayout(){return this._fixedLayout}set fixedLayout(t){this._fixedLayout=(0,n.Ig)(t),this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}ngOnInit(){this._setupStickyStyler(),this._isNativeHtmlTable&&this._applyNativeTableSections(),this._dataDiffer=this._differs.find([]).create((t,e)=>this.trackBy?this.trackBy(e.dataIndex,e.data):e),this._viewportRuler.change().pipe((0,m.R)(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentChecked(){this._cacheRowDefs(),this._cacheColumnDefs();const t=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||t,this._forceRecalculateCellWidths=t,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}ngOnDestroy(){this._rowOutlet.viewContainer.clear(),this._noDataRowOutlet.viewContainer.clear(),this._headerRowOutlet.viewContainer.clear(),this._footerRowOutlet.viewContainer.clear(),this._cachedRenderRowsMap.clear(),this._onDestroy.next(),this._onDestroy.complete(),(0,r.Z9)(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();const t=this._dataDiffer.diff(this._renderRows);if(!t)return void this._updateNoDataRow();const e=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(t,e,(t,e,i)=>this._getEmbeddedViewArgs(t.item,i),t=>t.item.data,t=>{1===t.operation&&t.context&&this._renderCellTemplateForItem(t.record.item.rowDef,t.context)}),this._updateRowIndexContext(),t.forEachIdentityChange(t=>{e.get(t.currentIndex).context.$implicit=t.item.data}),this._updateNoDataRow(),this.updateStickyColumnStyles()}addColumnDef(t){this._customColumnDefs.add(t)}removeColumnDef(t){this._customColumnDefs.delete(t)}addRowDef(t){this._customRowDefs.add(t)}removeRowDef(t){this._customRowDefs.delete(t)}addHeaderRowDef(t){this._customHeaderRowDefs.add(t),this._headerRowDefChanged=!0}removeHeaderRowDef(t){this._customHeaderRowDefs.delete(t),this._headerRowDefChanged=!0}addFooterRowDef(t){this._customFooterRowDefs.add(t),this._footerRowDefChanged=!0}removeFooterRowDef(t){this._customFooterRowDefs.delete(t),this._footerRowDefChanged=!0}setNoDataRow(t){this._customNoDataRow=t}updateStickyHeaderRowStyles(){const t=this._getRenderedRows(this._headerRowOutlet),e=this._elementRef.nativeElement.querySelector("thead");e&&(e.style.display=t.length?"":"none");const i=this._headerRowDefs.map(t=>t.sticky);this._stickyStyler.clearStickyPositioning(t,["top"]),this._stickyStyler.stickRows(t,i,"top"),this._headerRowDefs.forEach(t=>t.resetStickyChanged())}updateStickyFooterRowStyles(){const t=this._getRenderedRows(this._footerRowOutlet),e=this._elementRef.nativeElement.querySelector("tfoot");e&&(e.style.display=t.length?"":"none");const i=this._footerRowDefs.map(t=>t.sticky);this._stickyStyler.clearStickyPositioning(t,["bottom"]),this._stickyStyler.stickRows(t,i,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,i),this._footerRowDefs.forEach(t=>t.resetStickyChanged())}updateStickyColumnStyles(){const t=this._getRenderedRows(this._headerRowOutlet),e=this._getRenderedRows(this._rowOutlet),i=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...t,...e,...i],["left","right"]),this._stickyColumnStylesNeedReset=!1),t.forEach((t,e)=>{this._addStickyColumnStyles([t],this._headerRowDefs[e])}),this._rowDefs.forEach(t=>{const i=[];for(let n=0;n{this._addStickyColumnStyles([t],this._footerRowDefs[e])}),Array.from(this._columnDefsByName.values()).forEach(t=>t.resetStickyChanged())}_getAllRenderRows(){const t=[],e=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let i=0;i{const r=i&&i.has(n)?i.get(n):[];if(r.length){const t=r.shift();return t.dataIndex=e,t}return{data:t,rowDef:n,dataIndex:e}})}_cacheColumnDefs(){this._columnDefsByName.clear(),et(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(t=>{this._columnDefsByName.has(t.name),this._columnDefsByName.set(t.name,t)})}_cacheRowDefs(){this._headerRowDefs=et(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=et(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=et(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);const t=this._rowDefs.filter(t=>!t.when);this._defaultRowDef=t[0]}_renderUpdatedColumns(){const t=(t,e)=>t||!!e.getColumnsDiff(),e=this._rowDefs.reduce(t,!1);e&&this._forceRenderDataRows();const i=this._headerRowDefs.reduce(t,!1);i&&this._forceRenderHeaderRows();const n=this._footerRowDefs.reduce(t,!1);return n&&this._forceRenderFooterRows(),e||i||n}_switchDataSource(t){this._data=[],(0,r.Z9)(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),t||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear()),this._dataSource=t}_observeRenderChanges(){if(!this.dataSource)return;let t;(0,r.Z9)(this.dataSource)?t=this.dataSource.connect(this):(0,p.b)(this.dataSource)?t=this.dataSource:Array.isArray(this.dataSource)&&(t=(0,f.of)(this.dataSource)),this._renderChangeSubscription=t.pipe((0,m.R)(this._onDestroy)).subscribe(t=>{this._data=t||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((t,e)=>this._renderRow(this._headerRowOutlet,t,e)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((t,e)=>this._renderRow(this._footerRowOutlet,t,e)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(t,e){const i=Array.from(e.columns||[]).map(t=>this._columnDefsByName.get(t)),n=i.map(t=>t.sticky),r=i.map(t=>t.stickyEnd);this._stickyStyler.updateStickyColumns(t,n,r,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(t){const e=[];for(let i=0;i!i.when||i.when(e,t));else{let n=this._rowDefs.find(i=>i.when&&i.when(e,t))||this._defaultRowDef;n&&i.push(n)}return i}_getEmbeddedViewArgs(t,e){return{templateRef:t.rowDef.template,context:{$implicit:t.data},index:e}}_renderRow(t,e,i,n={}){const r=t.viewContainer.createEmbeddedView(e.template,n,i);return this._renderCellTemplateForItem(e,n),r}_renderCellTemplateForItem(t,e){for(let i of this._getCellTemplates(t))z.mostRecentCellOutlet&&z.mostRecentCellOutlet._viewContainer.createEmbeddedView(i,e);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){const t=this._rowOutlet.viewContainer;for(let e=0,i=t.length;e{const i=this._columnDefsByName.get(e);return t.extractCellTemplate(i)}):[]}_applyNativeTableSections(){const t=this._document.createDocumentFragment(),e=[{tag:"thead",outlets:[this._headerRowOutlet]},{tag:"tbody",outlets:[this._rowOutlet,this._noDataRowOutlet]},{tag:"tfoot",outlets:[this._footerRowOutlet]}];for(const i of e){const e=this._document.createElement(i.tag);e.setAttribute("role","rowgroup");for(const t of i.outlets)e.appendChild(t.elementRef.nativeElement);t.appendChild(e)}this._elementRef.nativeElement.appendChild(t)}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){const t=(t,e)=>t||e.hasStickyChanged();this._headerRowDefs.reduce(t,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(t,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(t,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){this._stickyStyler=new Q(this._isNativeHtmlTable,this.stickyCssClass,this._dir?this._dir.value:"ltr",this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener),(this._dir?this._dir.change:(0,f.of)()).pipe((0,m.R)(this._onDestroy)).subscribe(t=>{this._stickyStyler.direction=t,this.updateStickyColumnStyles()})}_getOwnDefs(t){return t.filter(t=>!t._table||t._table===this)}_updateNoDataRow(){const t=this._customNoDataRow||this._noDataRow;if(t){const e=0===this._rowOutlet.viewContainer.length;if(e!==this._isShowingNoDataRow){const i=this._noDataRowOutlet.viewContainer;e?i.createEmbeddedView(t.templateRef):i.clear(),this._isShowingNoDataRow=e}}}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.ZZ4),s.Y36(s.sBO),s.Y36(s.SBq),s.$8M("role"),s.Y36(o.Is,8),s.Y36(c.K0),s.Y36(a.t4),s.Y36(r.k),s.Y36(O),s.Y36(l.rL),s.Y36(W,12))},t.\u0275cmp=s.Xpm({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(t,e,i){if(1&t&&(s.Suo(i,j,5),s.Suo(i,E,5),s.Suo(i,q,5),s.Suo(i,F,5),s.Suo(i,U,5)),2&t){let t;s.iGM(t=s.CRH())&&(e._noDataRow=t.first),s.iGM(t=s.CRH())&&(e._contentColumnDefs=t),s.iGM(t=s.CRH())&&(e._contentRowDefs=t),s.iGM(t=s.CRH())&&(e._contentHeaderRowDefs=t),s.iGM(t=s.CRH())&&(e._contentFooterRowDefs=t)}},viewQuery:function(t,e){if(1&t&&(s.Gf(J,7),s.Gf(X,7),s.Gf(K,7),s.Gf($,7)),2&t){let t;s.iGM(t=s.CRH())&&(e._rowOutlet=t.first),s.iGM(t=s.CRH())&&(e._headerRowOutlet=t.first),s.iGM(t=s.CRH())&&(e._footerRowOutlet=t.first),s.iGM(t=s.CRH())&&(e._noDataRowOutlet=t.first)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(t,e){2&t&&s.ekj("cdk-table-fixed-layout",e.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:"multiTemplateDataRows",fixedLayout:"fixedLayout"},exportAs:["cdkTable"],features:[s._Bn([{provide:_,useExisting:t},{provide:r.k,useClass:r.yy},{provide:O,useClass:D},{provide:W,useValue:null}])],ngContentSelectors:b,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(t,e){1&t&&(s.F$t(y),s.Hsn(0),s.Hsn(1,1),s.GkF(2,0),s.GkF(3,1),s.GkF(4,2),s.GkF(5,3))},directives:[X,J,$,K],styles:[".cdk-table-fixed-layout{table-layout:fixed}\n"],encapsulation:2}),t})();function et(t,e){return t.concat(Array.from(e))}let it=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=s.oAB({type:t}),t.\u0275inj=s.cJS({imports:[[l.Cl]]}),t})();var nt=i(1522),rt=i(5446),st=i(5868),ot=i(1681);const at=[[["caption"]],[["colgroup"],["col"]]],lt=["caption","colgroup, col"];let ct=(()=>{class t extends tt{constructor(){super(...arguments),this.stickyCssClass="mat-table-sticky",this.needsPositionStickyOnElement=!1}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-table"],hostVars:2,hostBindings:function(t,e){2&t&&s.ekj("mat-table-fixed-layout",e.fixedLayout)},exportAs:["matTable"],features:[s._Bn([{provide:r.k,useClass:r.yy},{provide:tt,useExisting:t},{provide:_,useExisting:t},{provide:O,useClass:D},{provide:W,useValue:null}]),s.qOj],ngContentSelectors:lt,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(t,e){1&t&&(s.F$t(at),s.Hsn(0),s.Hsn(1,1),s.GkF(2,0),s.GkF(3,1),s.GkF(4,2),s.GkF(5,3))},directives:[X,J,$,K],styles:['mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-row::after,mat-header-row::after,mat-footer-row::after{display:inline-block;min-height:inherit;content:""}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}table.mat-table{border-spacing:0}tr.mat-header-row{height:56px}tr.mat-row,tr.mat-footer-row{height:48px}th.mat-header-cell{text-align:left}[dir=rtl] th.mat-header-cell{text-align:right}th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:0;border-bottom-width:1px;border-bottom-style:solid}th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] th.mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] th.mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}.mat-table-sticky{position:-webkit-sticky !important;position:sticky !important}.mat-table-fixed-layout{table-layout:fixed}\n'],encapsulation:2}),t})(),ht=(()=>{class t extends w{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["","matCellDef",""]],features:[s._Bn([{provide:w,useExisting:t}]),s.qOj]}),t})(),ut=(()=>{class t extends x{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["","matHeaderCellDef",""]],features:[s._Bn([{provide:x,useExisting:t}]),s.qOj]}),t})(),dt=(()=>{class t extends C{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["","matFooterCellDef",""]],features:[s._Bn([{provide:C,useExisting:t}]),s.qOj]}),t})(),pt=(()=>{class t extends E{get name(){return this._name}set name(t){this._setNameInput(t)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["","matColumnDef",""]],inputs:{sticky:"sticky",name:["matColumnDef","name"]},features:[s._Bn([{provide:E,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),s.qOj]}),t})(),ft=(()=>{class t extends T{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-header-cell"],features:[s.qOj]}),t})(),mt=(()=>{class t extends M{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["mat-footer-cell"],["td","mat-footer-cell",""]],hostAttrs:["role","gridcell",1,"mat-footer-cell"],features:[s.qOj]}),t})(),gt=(()=>{class t extends L{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:["role","gridcell",1,"mat-cell"],features:[s.qOj]}),t})(),yt=(()=>{class t extends F{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:["matHeaderRowDef","columns"],sticky:["matHeaderRowDefSticky","sticky"]},features:[s._Bn([{provide:F,useExisting:t}]),s.qOj]}),t})(),bt=(()=>{class t extends U{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["","matFooterRowDef",""]],inputs:{columns:["matFooterRowDef","columns"],sticky:["matFooterRowDefSticky","sticky"]},features:[s._Bn([{provide:U,useExisting:t}]),s.qOj]}),t})(),vt=(()=>{class t extends q{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275dir=s.lG2({type:t,selectors:[["","matRowDef",""]],inputs:{columns:["matRowDefColumns","columns"],when:["matRowDefWhen","when"]},features:[s._Bn([{provide:q,useExisting:t}]),s.qOj]}),t})(),_t=(()=>{class t extends H{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-header-row"],exportAs:["matHeaderRow"],features:[s._Bn([{provide:H,useExisting:t}]),s.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(t,e){1&t&&s.GkF(0,0)},directives:[z],encapsulation:2}),t})(),wt=(()=>{class t extends Y{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-footer-row"],["tr","mat-footer-row",""]],hostAttrs:["role","row",1,"mat-footer-row"],exportAs:["matFooterRow"],features:[s._Bn([{provide:Y,useExisting:t}]),s.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(t,e){1&t&&s.GkF(0,0)},directives:[z],encapsulation:2}),t})(),xt=(()=>{class t extends G{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=s.n5z(t)))(i||t)}}(),t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-row"],exportAs:["matRow"],features:[s._Bn([{provide:G,useExisting:t}]),s.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(t,e){1&t&&s.GkF(0,0)},directives:[z],encapsulation:2}),t})(),Ct=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=s.oAB({type:t}),t.\u0275inj=s.cJS({imports:[[it,nt.BQ],nt.BQ]}),t})();class At extends r.o2{constructor(t=[]){super(),this._renderData=new d.X([]),this._filter=new d.X(""),this._internalPageChanges=new h.x,this._renderChangesSubscription=null,this.sortingDataAccessor=(t,e)=>{const i=t[e];if((0,n.t6)(i)){const t=Number(i);return t<9007199254740991?t:i}return i},this.sortData=(t,e)=>{const i=e.active,n=e.direction;return i&&""!=n?t.sort((t,e)=>{let r=this.sortingDataAccessor(t,i),s=this.sortingDataAccessor(e,i);const o=typeof r,a=typeof s;o!==a&&("number"===o&&(r+=""),"number"===a&&(s+=""));let l=0;return null!=r&&null!=s?r>s?l=1:r{const i=Object.keys(t).reduce((e,i)=>e+t[i]+"\u25ec","").toLowerCase(),n=e.trim().toLowerCase();return-1!=i.indexOf(n)},this._data=new d.X(t),this._updateChangeSubscription()}get data(){return this._data.value}set data(t){this._data.next(t),this._renderChangesSubscription||this._filterData(t)}get filter(){return this._filter.value}set filter(t){this._filter.next(t),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(t){this._sort=t,this._updateChangeSubscription()}get paginator(){return this._paginator}set paginator(t){this._paginator=t,this._updateChangeSubscription()}_updateChangeSubscription(){var t;const e=this._sort?(0,rt.T)(this._sort.sortChange,this._sort.initialized):(0,f.of)(null),i=this._paginator?(0,rt.T)(this._paginator.page,this._internalPageChanges,this._paginator.initialized):(0,f.of)(null),n=(0,st.a)([this._data,this._filter]).pipe((0,ot.U)(([t])=>this._filterData(t))),r=(0,st.a)([n,e]).pipe((0,ot.U)(([t])=>this._orderData(t))),s=(0,st.a)([r,i]).pipe((0,ot.U)(([t])=>this._pageData(t)));null===(t=this._renderChangesSubscription)||void 0===t||t.unsubscribe(),this._renderChangesSubscription=s.subscribe(t=>this._renderData.next(t))}_filterData(t){return this.filteredData=null==this.filter||""===this.filter?t:t.filter(t=>this.filterPredicate(t,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(t){return this.sort?this.sortData(t.slice(),this.sort):t}_pageData(t){if(!this.paginator)return t;const e=this.paginator.pageIndex*this.paginator.pageSize;return t.slice(e,e+this.paginator.pageSize)}_updatePaginator(t){Promise.resolve().then(()=>{const e=this.paginator;if(e&&(e.length=t,e.pageIndex>0)){const t=Math.ceil(e.length/e.pageSize)-1||0,i=Math.min(e.pageIndex,t);i!==e.pageIndex&&(e.pageIndex=i,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){var t;null===(t=this._renderChangesSubscription)||void 0===t||t.unsubscribe(),this._renderChangesSubscription=null}}class St extends At{}},5109:(t,e,i)=>{"use strict";i.d(e,{uX:()=>J,SP:()=>at,uD:()=>j,Nj:()=>_t,BU:()=>gt,Nh:()=>wt});var n=i(4621),r=i(6337),s=i(6899),o=i(1511),a=i(1572),l=i(1522),c=i(3490),h=i(9666),u=i(6042),d=i(5446),p=i(5960),f=i(2041),m=i(8431),g=i(709),y=i(1258),b=i(6424),v=i(9568),_=i(9861),w=i(1353),x=i(5842),C=i(2526),A=i(4894);function S(t,e){1&t&&a.Hsn(0)}const E=["*"];function k(t,e){}const T=function(t){return{animationDuration:t}},M=function(t,e){return{value:t,params:e}},L=["tabBodyWrapper"],I=["tabHeader"];function O(t,e){}function D(t,e){if(1&t&&a.YNc(0,O,0,0,"ng-template",9),2&t){const t=a.oxw().$implicit;a.Q6J("cdkPortalOutlet",t.templateLabel)}}function R(t,e){if(1&t&&a._uU(0),2&t){const t=a.oxw().$implicit;a.Oqu(t.textLabel)}}function N(t,e){if(1&t){const t=a.EpF();a.TgZ(0,"div",6),a.NdJ("click",function(){const e=a.CHM(t),i=e.$implicit,n=e.index,r=a.oxw(),s=a.MAs(1);return r._handleClick(i,s,n)})("cdkFocusChange",function(e){const i=a.CHM(t).index;return a.oxw()._tabFocusChanged(e,i)}),a.TgZ(1,"div",7),a.YNc(2,D,1,1,"ng-template",8),a.YNc(3,R,1,1,"ng-template",8),a.qZA(),a.qZA()}if(2&t){const t=e.$implicit,i=e.index,n=a.oxw();a.ekj("mat-tab-label-active",n.selectedIndex==i),a.Q6J("id",n._getTabLabelId(i))("disabled",t.disabled)("matRippleDisabled",t.disabled||n.disableRipple),a.uIk("tabIndex",n._getTabIndex(t,i))("aria-posinset",i+1)("aria-setsize",n._tabs.length)("aria-controls",n._getTabContentId(i))("aria-selected",n.selectedIndex==i)("aria-label",t.ariaLabel||null)("aria-labelledby",!t.ariaLabel&&t.ariaLabelledby?t.ariaLabelledby:null),a.xp6(2),a.Q6J("ngIf",t.templateLabel),a.xp6(1),a.Q6J("ngIf",!t.templateLabel)}}function P(t,e){if(1&t){const t=a.EpF();a.TgZ(0,"mat-tab-body",10),a.NdJ("_onCentered",function(){return a.CHM(t),a.oxw()._removeTabBodyWrapperHeight()})("_onCentering",function(e){return a.CHM(t),a.oxw()._setTabBodyWrapperHeight(e)}),a.qZA()}if(2&t){const t=e.$implicit,i=e.index,n=a.oxw();a.ekj("mat-tab-body-active",n.selectedIndex==i),a.Q6J("id",n._getTabContentId(i))("content",t.content)("position",t.position)("origin",t.origin)("animationDuration",n.animationDuration),a.uIk("aria-labelledby",n._getTabLabelId(i))}}const F=["tabListContainer"],Z=["tabList"],B=["nextPaginator"],U=["previousPaginator"],q=["mat-tab-nav-bar",""],z=new a.OlP("MatInkBarPositioner",{providedIn:"root",factory:function(){return t=>({left:t?(t.offsetLeft||0)+"px":"0",width:t?(t.offsetWidth||0)+"px":"0"})}});let H=(()=>{class t{constructor(t,e,i,n){this._elementRef=t,this._ngZone=e,this._inkBarPositioner=i,this._animationMode=n}alignToElement(t){this.show(),"undefined"!=typeof requestAnimationFrame?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._setStyles(t))}):this._setStyles(t)}show(){this._elementRef.nativeElement.style.visibility="visible"}hide(){this._elementRef.nativeElement.style.visibility="hidden"}_setStyles(t){const e=this._inkBarPositioner(t),i=this._elementRef.nativeElement;i.style.left=e.left,i.style.width=e.width}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(a.R0b),a.Y36(z),a.Y36(c.Qb,8))},t.\u0275dir=a.lG2({type:t,selectors:[["mat-ink-bar"]],hostAttrs:[1,"mat-ink-bar"],hostVars:2,hostBindings:function(t,e){2&t&&a.ekj("_mat-animation-noopable","NoopAnimations"===e._animationMode)}}),t})();const Y=new a.OlP("MatTabContent"),G=new a.OlP("MatTabLabel");let j=(()=>{class t extends s.ig{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=a.n5z(t)))(i||t)}}(),t.\u0275dir=a.lG2({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[a._Bn([{provide:G,useExisting:t}]),a.qOj]}),t})();class V{}const Q=(0,l.Id)(V),W=new a.OlP("MAT_TAB_GROUP");let J=(()=>{class t extends Q{constructor(t,e){super(),this._viewContainerRef=t,this._closestTabGroup=e,this.textLabel="",this._contentPortal=null,this._stateChanges=new h.x,this.position=null,this.origin=null,this.isActive=!1}get templateLabel(){return this._templateLabel}set templateLabel(t){this._setTemplateLabelInput(t)}get content(){return this._contentPortal}ngOnChanges(t){(t.hasOwnProperty("textLabel")||t.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new s.UE(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(t){t&&(this._templateLabel=t)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.s_b),a.Y36(W,8))},t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-tab"]],contentQueries:function(t,e,i){if(1&t&&(a.Suo(i,G,5),a.Suo(i,Y,7,a.Rgc)),2&t){let t;a.iGM(t=a.CRH())&&(e.templateLabel=t.first),a.iGM(t=a.CRH())&&(e._explicitContent=t.first)}},viewQuery:function(t,e){if(1&t&&a.Gf(a.Rgc,7),2&t){let t;a.iGM(t=a.CRH())&&(e._implicitContent=t.first)}},inputs:{disabled:"disabled",textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"]},exportAs:["matTab"],features:[a.qOj,a.TTD],ngContentSelectors:E,decls:1,vars:0,template:function(t,e){1&t&&(a.F$t(),a.YNc(0,S,1,0,"ng-template"))},encapsulation:2}),t})();const X={translateTab:(0,g.X$)("translateTab",[(0,g.SB)("center, void, left-origin-center, right-origin-center",(0,g.oB)({transform:"none"})),(0,g.SB)("left",(0,g.oB)({transform:"translate3d(-100%, 0, 0)",minHeight:"1px"})),(0,g.SB)("right",(0,g.oB)({transform:"translate3d(100%, 0, 0)",minHeight:"1px"})),(0,g.eR)("* => left, * => right, left => center, right => center",(0,g.jt)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),(0,g.eR)("void => left-origin-center",[(0,g.oB)({transform:"translate3d(-100%, 0, 0)"}),(0,g.jt)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),(0,g.eR)("void => right-origin-center",[(0,g.oB)({transform:"translate3d(100%, 0, 0)"}),(0,g.jt)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let K=(()=>{class t extends s.Pl{constructor(t,e,i,n){super(t,e,n),this._host=i,this._centeringSub=u.w0.EMPTY,this._leavingSub=u.w0.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe((0,y.O)(this._host._isCenterPosition(this._host._position))).subscribe(t=>{t&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a._Vd),a.Y36(a.s_b),a.Y36((0,a.Gpc)(()=>tt)),a.Y36(o.K0))},t.\u0275dir=a.lG2({type:t,selectors:[["","matTabBodyHost",""]],features:[a.qOj]}),t})(),$=(()=>{class t{constructor(t,e,i){this._elementRef=t,this._dir=e,this._dirChangeSubscription=u.w0.EMPTY,this._translateTabComplete=new h.x,this._onCentering=new a.vpe,this._beforeCentering=new a.vpe,this._afterLeavingCenter=new a.vpe,this._onCentered=new a.vpe(!0),this.animationDuration="500ms",e&&(this._dirChangeSubscription=e.change.subscribe(t=>{this._computePositionAnimationState(t),i.markForCheck()})),this._translateTabComplete.pipe((0,b.x)((t,e)=>t.fromState===e.fromState&&t.toState===e.toState)).subscribe(t=>{this._isCenterPosition(t.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(t.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}set position(t){this._positionIndex=t,this._computePositionAnimationState()}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(t){const e=this._isCenterPosition(t.toState);this._beforeCentering.emit(e),e&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(t){return"center"==t||"left-origin-center"==t||"right-origin-center"==t}_computePositionAnimationState(t=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==t?"left":"right":this._positionIndex>0?"ltr"==t?"right":"left":"center"}_computePositionFromOrigin(t){const e=this._getLayoutDirection();return"ltr"==e&&t<=0||"rtl"==e&&t>0?"left-origin-center":"right-origin-center"}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(C.Is,8),a.Y36(a.sBO))},t.\u0275dir=a.lG2({type:t,inputs:{animationDuration:"animationDuration",position:"position",_content:["content","_content"],origin:"origin"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}}),t})(),tt=(()=>{class t extends ${constructor(t,e,i){super(t,e,i)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(C.Is,8),a.Y36(a.sBO))},t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-tab-body"]],viewQuery:function(t,e){if(1&t&&a.Gf(s.Pl,5),2&t){let t;a.iGM(t=a.CRH())&&(e._portalHost=t.first)}},hostAttrs:[1,"mat-tab-body"],features:[a.qOj],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(t,e){1&t&&(a.TgZ(0,"div",0,1),a.NdJ("@translateTab.start",function(t){return e._onTranslateTabStarted(t)})("@translateTab.done",function(t){return e._translateTabComplete.next(t)}),a.YNc(2,k,0,0,"ng-template",2),a.qZA()),2&t&&a.Q6J("@translateTab",a.WLB(3,M,e._position,a.VKq(1,T,e.animationDuration)))},directives:[K],styles:[".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}\n"],encapsulation:2,data:{animation:[X.translateTab]}}),t})();const et=new a.OlP("MAT_TABS_CONFIG");let it=0;class nt{}class rt{constructor(t){this._elementRef=t}}const st=(0,l.pj)((0,l.Kr)(rt),"primary");let ot=(()=>{class t extends st{constructor(t,e,i,n){super(t),this._changeDetectorRef=e,this._animationMode=n,this._tabs=new a.n_E,this._indexToSelect=0,this._tabBodyWrapperHeight=0,this._tabsSubscription=u.w0.EMPTY,this._tabLabelSubscription=u.w0.EMPTY,this._selectedIndex=null,this.headerPosition="above",this.selectedIndexChange=new a.vpe,this.focusChange=new a.vpe,this.animationDone=new a.vpe,this.selectedTabChange=new a.vpe(!0),this._groupId=it++,this.animationDuration=i&&i.animationDuration?i.animationDuration:"500ms",this.disablePagination=!(!i||null==i.disablePagination)&&i.disablePagination,this.dynamicHeight=!(!i||null==i.dynamicHeight)&&i.dynamicHeight}get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(t){this._dynamicHeight=(0,_.Ig)(t)}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){this._indexToSelect=(0,_.su)(t,null)}get animationDuration(){return this._animationDuration}set animationDuration(t){this._animationDuration=/^\d+$/.test(t)?t+"ms":t}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){const e=this._elementRef.nativeElement;e.classList.remove(`mat-background-${this.backgroundColor}`),t&&e.classList.add(`mat-background-${t}`),this._backgroundColor=t}ngAfterContentChecked(){const t=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=t){const e=null==this._selectedIndex;if(!e){this.selectedTabChange.emit(this._createChangeEvent(t));const e=this._tabBodyWrapper.nativeElement;e.style.minHeight=e.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((e,i)=>e.isActive=i===t),e||(this.selectedIndexChange.emit(t),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((e,i)=>{e.position=i-t,null==this._selectedIndex||0!=e.position||e.origin||(e.origin=t-this._selectedIndex)}),this._selectedIndex!==t&&(this._selectedIndex=t,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{if(this._clampTabIndex(this._indexToSelect)===this._selectedIndex){const t=this._tabs.toArray();for(let e=0;e{this._tabs.reset(t.filter(t=>t._closestTabGroup===this||!t._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}focusTab(t){const e=this._tabHeader;e&&(e.focusIndex=t)}_focusChanged(t){this.focusChange.emit(this._createChangeEvent(t))}_createChangeEvent(t){const e=new nt;return e.index=t,this._tabs&&this._tabs.length&&(e.tab=this._tabs.toArray()[t]),e}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=(0,d.T)(...this._tabs.map(t=>t._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(t){return Math.min(this._tabs.length-1,Math.max(t||0,0))}_getTabLabelId(t){return`mat-tab-label-${this._groupId}-${t}`}_getTabContentId(t){return`mat-tab-content-${this._groupId}-${t}`}_setTabBodyWrapperHeight(t){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const e=this._tabBodyWrapper.nativeElement;e.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(e.style.height=t+"px")}_removeTabBodyWrapperHeight(){const t=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=t.clientHeight,t.style.height="",this.animationDone.emit()}_handleClick(t,e,i){t.disabled||(this.selectedIndex=e.focusIndex=i)}_getTabIndex(t,e){return t.disabled?null:this.selectedIndex===e?0:-1}_tabFocusChanged(t,e){t&&(this._tabHeader.focusIndex=e)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(a.sBO),a.Y36(et,8),a.Y36(c.Qb,8))},t.\u0275dir=a.lG2({type:t,inputs:{headerPosition:"headerPosition",animationDuration:"animationDuration",disablePagination:"disablePagination",dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[a.qOj]}),t})(),at=(()=>{class t extends ot{constructor(t,e,i,n){super(t,e,i,n)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(a.sBO),a.Y36(et,8),a.Y36(c.Qb,8))},t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-tab-group"]],contentQueries:function(t,e,i){if(1&t&&a.Suo(i,J,5),2&t){let t;a.iGM(t=a.CRH())&&(e._allTabs=t)}},viewQuery:function(t,e){if(1&t&&(a.Gf(L,5),a.Gf(I,5)),2&t){let t;a.iGM(t=a.CRH())&&(e._tabBodyWrapper=t.first),a.iGM(t=a.CRH())&&(e._tabHeader=t.first)}},hostAttrs:[1,"mat-tab-group"],hostVars:4,hostBindings:function(t,e){2&t&&a.ekj("mat-tab-group-dynamic-height",e.dynamicHeight)("mat-tab-group-inverted-header","below"===e.headerPosition)},inputs:{color:"color",disableRipple:"disableRipple"},exportAs:["matTabGroup"],features:[a._Bn([{provide:W,useExisting:t}]),a.qOj],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mat-tab-label mat-focus-indicator","role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",3,"id","mat-tab-label-active","disabled","matRippleDisabled","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-tab-body-active","content","position","origin","animationDuration","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",1,"mat-tab-label","mat-focus-indicator",3,"id","disabled","matRippleDisabled","click","cdkFocusChange"],[1,"mat-tab-label-content"],[3,"ngIf"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","content","position","origin","animationDuration","_onCentered","_onCentering"]],template:function(t,e){1&t&&(a.TgZ(0,"mat-tab-header",0,1),a.NdJ("indexFocused",function(t){return e._focusChanged(t)})("selectFocusedIndex",function(t){return e.selectedIndex=t}),a.YNc(2,N,4,14,"div",2),a.qZA(),a.TgZ(3,"div",3,4),a.YNc(5,P,1,8,"mat-tab-body",5),a.qZA()),2&t&&(a.Q6J("selectedIndex",e.selectedIndex||0)("disableRipple",e.disableRipple)("disablePagination",e.disablePagination),a.xp6(2),a.Q6J("ngForOf",e._tabs),a.xp6(1),a.ekj("_mat-animation-noopable","NoopAnimations"===e._animationMode),a.xp6(2),a.Q6J("ngForOf",e._tabs))},directives:function(){return[ft,o.sg,ht,l.wG,n.kH,o.O5,s.Pl,tt]},styles:[".mat-tab-group{display:flex;flex-direction:column}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\n"],encapsulation:2}),t})();class lt{}const ct=(0,l.Id)(lt);let ht=(()=>{class t extends ct{constructor(t){super(),this.elementRef=t}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq))},t.\u0275dir=a.lG2({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(t,e){2&t&&(a.uIk("aria-disabled",!!e.disabled),a.ekj("mat-tab-disabled",e.disabled))},inputs:{disabled:"disabled"},features:[a.qOj]}),t})();const ut=(0,w.i$)({passive:!0});let dt=(()=>{class t{constructor(t,e,i,n,r,s,o){this._elementRef=t,this._changeDetectorRef=e,this._viewportRuler=i,this._dir=n,this._ngZone=r,this._platform=s,this._animationMode=o,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new h.x,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new h.x,this.disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new a.vpe,this.indexFocused=new a.vpe,r.runOutsideAngular(()=>{(0,p.R)(t.nativeElement,"mouseleave").pipe((0,v.R)(this._destroyed)).subscribe(()=>{this._stopInterval()})})}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){t=(0,_.su)(t),this._selectedIndex!=t&&(this._selectedIndexChanged=!0,this._selectedIndex=t,this._keyManager&&this._keyManager.updateActiveItem(t))}ngAfterViewInit(){(0,p.R)(this._previousPaginator.nativeElement,"touchstart",ut).pipe((0,v.R)(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),(0,p.R)(this._nextPaginator.nativeElement,"touchstart",ut).pipe((0,v.R)(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const t=this._dir?this._dir.change:(0,f.of)("ltr"),e=this._viewportRuler.change(150),i=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new n.Em(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap(),this._keyManager.updateActiveItem(this._selectedIndex),"undefined"!=typeof requestAnimationFrame?requestAnimationFrame(i):i(),(0,d.T)(t,e,this._items.changes).pipe((0,v.R)(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>Promise.resolve().then(i)),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.pipe((0,v.R)(this._destroyed)).subscribe(t=>{this.indexFocused.emit(t),this._setTabFocus(t)})}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(t){if(!(0,x.Vb)(t))switch(t.keyCode){case x.K5:case x.L_:this.focusIndex!==this.selectedIndex&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(t));break;default:this._keyManager.onKeydown(t)}}_onContentChanges(){const t=this._elementRef.nativeElement.textContent;t!==this._currentTextContent&&(this._currentTextContent=t||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(t){this._isValidIndex(t)&&this.focusIndex!==t&&this._keyManager&&this._keyManager.setActiveItem(t)}_isValidIndex(t){if(!this._items)return!0;const e=this._items?this._items.toArray()[t]:null;return!!e&&!e.disabled}_setTabFocus(t){if(this._showPaginationControls&&this._scrollToLabel(t),this._items&&this._items.length){this._items.toArray()[t].focus();const e=this._tabListContainer.nativeElement,i=this._getLayoutDirection();e.scrollLeft="ltr"==i?0:e.scrollWidth-e.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const t=this.scrollDistance,e="ltr"===this._getLayoutDirection()?-t:t;this._tabList.nativeElement.style.transform=`translateX(${Math.round(e)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(t){this._scrollTo(t)}_scrollHeader(t){return this._scrollTo(this._scrollDistance+("before"==t?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(t){this._stopInterval(),this._scrollHeader(t)}_scrollToLabel(t){if(this.disablePagination)return;const e=this._items?this._items.toArray()[t]:null;if(!e)return;const i=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:n,offsetWidth:r}=e.elementRef.nativeElement;let s,o;"ltr"==this._getLayoutDirection()?(s=n,o=s+r):(o=this._tabList.nativeElement.offsetWidth-n,s=o-r);const a=this.scrollDistance,l=this.scrollDistance+i;sl&&(this.scrollDistance+=o-l+60)}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const t=this._tabList.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;t||(this.scrollDistance=0),t!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=t}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabList.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const t=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,e=t?t.elementRef.nativeElement:null;e?this._inkBar.alignToElement(e):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(t,e){e&&null!=e.button&&0!==e.button||(this._stopInterval(),(0,m.H)(650,100).pipe((0,v.R)((0,d.T)(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:e,distance:i}=this._scrollHeader(t);(0===i||i>=e)&&this._stopInterval()}))}_scrollTo(t){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const e=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(e,t)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:e,distance:this._scrollDistance}}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(a.sBO),a.Y36(A.rL),a.Y36(C.Is,8),a.Y36(a.R0b),a.Y36(w.t4),a.Y36(c.Qb,8))},t.\u0275dir=a.lG2({type:t,inputs:{disablePagination:"disablePagination"}}),t})(),pt=(()=>{class t extends dt{constructor(t,e,i,n,r,s,o){super(t,e,i,n,r,s,o),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=(0,_.Ig)(t)}_itemSelected(t){t.preventDefault()}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(a.sBO),a.Y36(A.rL),a.Y36(C.Is,8),a.Y36(a.R0b),a.Y36(w.t4),a.Y36(c.Qb,8))},t.\u0275dir=a.lG2({type:t,inputs:{disableRipple:"disableRipple"},features:[a.qOj]}),t})(),ft=(()=>{class t extends pt{constructor(t,e,i,n,r,s,o){super(t,e,i,n,r,s,o)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(a.sBO),a.Y36(A.rL),a.Y36(C.Is,8),a.Y36(a.R0b),a.Y36(w.t4),a.Y36(c.Qb,8))},t.\u0275cmp=a.Xpm({type:t,selectors:[["mat-tab-header"]],contentQueries:function(t,e,i){if(1&t&&a.Suo(i,ht,4),2&t){let t;a.iGM(t=a.CRH())&&(e._items=t)}},viewQuery:function(t,e){if(1&t&&(a.Gf(H,7),a.Gf(F,7),a.Gf(Z,7),a.Gf(B,5),a.Gf(U,5)),2&t){let t;a.iGM(t=a.CRH())&&(e._inkBar=t.first),a.iGM(t=a.CRH())&&(e._tabListContainer=t.first),a.iGM(t=a.CRH())&&(e._tabList=t.first),a.iGM(t=a.CRH())&&(e._nextPaginator=t.first),a.iGM(t=a.CRH())&&(e._previousPaginator=t.first)}},hostAttrs:[1,"mat-tab-header"],hostVars:4,hostBindings:function(t,e){2&t&&a.ekj("mat-tab-header-pagination-controls-enabled",e._showPaginationControls)("mat-tab-header-rtl","rtl"==e._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[a.qOj],ngContentSelectors:E,decls:13,vars:8,consts:[["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-before","mat-elevation-z4",3,"matRippleDisabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-tab-header-pagination-chevron"],[1,"mat-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-tab-labels"],["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-after","mat-elevation-z4",3,"matRippleDisabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(t,e){1&t&&(a.F$t(),a.TgZ(0,"div",0,1),a.NdJ("click",function(){return e._handlePaginatorClick("before")})("mousedown",function(t){return e._handlePaginatorPress("before",t)})("touchend",function(){return e._stopInterval()}),a._UZ(2,"div",2),a.qZA(),a.TgZ(3,"div",3,4),a.NdJ("keydown",function(t){return e._handleKeydown(t)}),a.TgZ(5,"div",5,6),a.NdJ("cdkObserveContent",function(){return e._onContentChanges()}),a.TgZ(7,"div",7),a.Hsn(8),a.qZA(),a._UZ(9,"mat-ink-bar"),a.qZA(),a.qZA(),a.TgZ(10,"div",8,9),a.NdJ("mousedown",function(t){return e._handlePaginatorPress("after",t)})("click",function(){return e._handlePaginatorClick("after")})("touchend",function(){return e._stopInterval()}),a._UZ(12,"div",2),a.qZA()),2&t&&(a.ekj("mat-tab-header-pagination-disabled",e._disableScrollBefore),a.Q6J("matRippleDisabled",e._disableScrollBefore||e.disableRipple),a.xp6(5),a.ekj("_mat-animation-noopable","NoopAnimations"===e._animationMode),a.xp6(5),a.ekj("mat-tab-header-pagination-disabled",e._disableScrollAfter),a.Q6J("matRippleDisabled",e._disableScrollAfter||e.disableRipple))},directives:[l.wG,r.wD,H],styles:['.mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:"";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\n'],encapsulation:2}),t})(),mt=(()=>{class t extends dt{constructor(t,e,i,n,r,s,o){super(t,n,r,e,i,s,o),this._disableRipple=!1,this.color="primary"}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){const e=this._elementRef.nativeElement.classList;e.remove(`mat-background-${this.backgroundColor}`),t&&e.add(`mat-background-${t}`),this._backgroundColor=t}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=(0,_.Ig)(t)}_itemSelected(){}ngAfterContentInit(){this._items.changes.pipe((0,y.O)(null),(0,v.R)(this._destroyed)).subscribe(()=>{this.updateActiveLink()}),super.ngAfterContentInit()}updateActiveLink(){if(!this._items)return;const t=this._items.toArray();for(let e=0;e{class t extends mt{constructor(t,e,i,n,r,s,o){super(t,e,i,n,r,s,o)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.SBq),a.Y36(C.Is,8),a.Y36(a.R0b),a.Y36(a.sBO),a.Y36(A.rL),a.Y36(w.t4),a.Y36(c.Qb,8))},t.\u0275cmp=a.Xpm({type:t,selectors:[["","mat-tab-nav-bar",""]],contentQueries:function(t,e,i){if(1&t&&a.Suo(i,_t,5),2&t){let t;a.iGM(t=a.CRH())&&(e._items=t)}},viewQuery:function(t,e){if(1&t&&(a.Gf(H,7),a.Gf(F,7),a.Gf(Z,7),a.Gf(B,5),a.Gf(U,5)),2&t){let t;a.iGM(t=a.CRH())&&(e._inkBar=t.first),a.iGM(t=a.CRH())&&(e._tabListContainer=t.first),a.iGM(t=a.CRH())&&(e._tabList=t.first),a.iGM(t=a.CRH())&&(e._nextPaginator=t.first),a.iGM(t=a.CRH())&&(e._previousPaginator=t.first)}},hostAttrs:[1,"mat-tab-nav-bar","mat-tab-header"],hostVars:10,hostBindings:function(t,e){2&t&&a.ekj("mat-tab-header-pagination-controls-enabled",e._showPaginationControls)("mat-tab-header-rtl","rtl"==e._getLayoutDirection())("mat-primary","warn"!==e.color&&"accent"!==e.color)("mat-accent","accent"===e.color)("mat-warn","warn"===e.color)},inputs:{color:"color"},exportAs:["matTabNavBar","matTabNav"],features:[a.qOj],attrs:q,ngContentSelectors:E,decls:13,vars:8,consts:[["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-before","mat-elevation-z4",3,"matRippleDisabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-tab-header-pagination-chevron"],[1,"mat-tab-link-container",3,"keydown"],["tabListContainer",""],[1,"mat-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-tab-links"],["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-after","mat-elevation-z4",3,"matRippleDisabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(t,e){1&t&&(a.F$t(),a.TgZ(0,"div",0,1),a.NdJ("click",function(){return e._handlePaginatorClick("before")})("mousedown",function(t){return e._handlePaginatorPress("before",t)})("touchend",function(){return e._stopInterval()}),a._UZ(2,"div",2),a.qZA(),a.TgZ(3,"div",3,4),a.NdJ("keydown",function(t){return e._handleKeydown(t)}),a.TgZ(5,"div",5,6),a.NdJ("cdkObserveContent",function(){return e._onContentChanges()}),a.TgZ(7,"div",7),a.Hsn(8),a.qZA(),a._UZ(9,"mat-ink-bar"),a.qZA(),a.qZA(),a.TgZ(10,"div",8,9),a.NdJ("mousedown",function(t){return e._handlePaginatorPress("after",t)})("click",function(){return e._handlePaginatorClick("after")})("touchend",function(){return e._stopInterval()}),a._UZ(12,"div",2),a.qZA()),2&t&&(a.ekj("mat-tab-header-pagination-disabled",e._disableScrollBefore),a.Q6J("matRippleDisabled",e._disableScrollBefore||e.disableRipple),a.xp6(5),a.ekj("_mat-animation-noopable","NoopAnimations"===e._animationMode),a.xp6(5),a.ekj("mat-tab-header-pagination-disabled",e._disableScrollAfter),a.Q6J("matRippleDisabled",e._disableScrollAfter||e.disableRipple))},directives:[l.wG,r.wD,H],styles:['.mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:"";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-link:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media(max-width: 599px){.mat-tab-link{min-width:72px}}\n'],encapsulation:2}),t})();class yt{}const bt=(0,l.sb)((0,l.Kr)((0,l.Id)(yt)));let vt=(()=>{class t extends bt{constructor(t,e,i,n,r,s){super(),this._tabNavBar=t,this.elementRef=e,this._focusMonitor=r,this._isActive=!1,this.rippleConfig=i||{},this.tabIndex=parseInt(n)||0,"NoopAnimations"===s&&(this.rippleConfig.animation={enterDuration:0,exitDuration:0})}get active(){return this._isActive}set active(t){(0,_.Ig)(t)!==this._isActive&&(this._isActive=t,this._tabNavBar.updateActiveLink())}get rippleDisabled(){return this.disabled||this.disableRipple||this._tabNavBar.disableRipple||!!this.rippleConfig.disabled}focus(){this.elementRef.nativeElement.focus()}ngAfterViewInit(){this._focusMonitor.monitor(this.elementRef)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this.elementRef)}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(mt),a.Y36(a.SBq),a.Y36(l.Y2,8),a.$8M("tabindex"),a.Y36(n.tE),a.Y36(c.Qb,8))},t.\u0275dir=a.lG2({type:t,inputs:{active:"active"},features:[a.qOj]}),t})(),_t=(()=>{class t extends vt{constructor(t,e,i,n,r,s,o,a){super(t,e,r,s,o,a),this._tabLinkRipple=new l.IR(this,i,e,n),this._tabLinkRipple.setupTriggerEvents(e.nativeElement)}ngOnDestroy(){super.ngOnDestroy(),this._tabLinkRipple._removeTriggerEvents()}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(gt),a.Y36(a.SBq),a.Y36(a.R0b),a.Y36(w.t4),a.Y36(l.Y2,8),a.$8M("tabindex"),a.Y36(n.tE),a.Y36(c.Qb,8))},t.\u0275dir=a.lG2({type:t,selectors:[["","mat-tab-link",""],["","matTabLink",""]],hostAttrs:[1,"mat-tab-link","mat-focus-indicator"],hostVars:7,hostBindings:function(t,e){2&t&&(a.uIk("aria-current",e.active?"page":null)("aria-disabled",e.disabled)("tabIndex",e.tabIndex),a.ekj("mat-tab-disabled",e.disabled)("mat-tab-label-active",e.active))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matTabLink"],features:[a.qOj]}),t})(),wt=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=a.oAB({type:t}),t.\u0275inj=a.cJS({imports:[[o.ez,l.BQ,s.eL,l.si,r.Q8,n.rt],l.BQ]}),t})()},3104:(t,e,i)=>{"use strict";i.d(e,{Ye:()=>d,g0:()=>p});var n=i(1522),r=i(1511),s=i(1572),o=i(1353);const a=["*",[["mat-toolbar-row"]]],l=["*","mat-toolbar-row"];class c{constructor(t){this._elementRef=t}}const h=(0,n.pj)(c);let u=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=s.lG2({type:t,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"]}),t})(),d=(()=>{class t extends h{constructor(t,e,i){super(t),this._platform=e,this._document=i}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}}return t.\u0275fac=function(e){return new(e||t)(s.Y36(s.SBq),s.Y36(o.t4),s.Y36(r.K0))},t.\u0275cmp=s.Xpm({type:t,selectors:[["mat-toolbar"]],contentQueries:function(t,e,i){if(1&t&&s.Suo(i,u,5),2&t){let t;s.iGM(t=s.CRH())&&(e._toolbarRows=t)}},hostAttrs:[1,"mat-toolbar"],hostVars:4,hostBindings:function(t,e){2&t&&s.ekj("mat-toolbar-multiple-rows",e._toolbarRows.length>0)("mat-toolbar-single-row",0===e._toolbarRows.length)},inputs:{color:"color"},exportAs:["matToolbar"],features:[s.qOj],ngContentSelectors:l,decls:2,vars:0,template:function(t,e){1&t&&(s.F$t(a),s.Hsn(0),s.Hsn(1,1))},styles:[".cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%}\n"],encapsulation:2,changeDetection:0}),t})(),p=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=s.oAB({type:t}),t.\u0275inj=s.cJS({imports:[[n.BQ],n.BQ]}),t})()},6828:(t,e,i)=>{"use strict";i.d(e,{gM:()=>S,AV:()=>T});var n=i(369),r=i(4621),s=i(1511),o=i(1572),a=i(1522),l=i(4894),c=i(9861),h=i(5842),u=i(72),d=i(1353),p=i(6899),f=i(9666),m=i(9568),g=i(9056),y=i(709),b=i(2526);const v={tooltipState:(0,y.X$)("state",[(0,y.SB)("initial, void, hidden",(0,y.oB)({opacity:0,transform:"scale(0)"})),(0,y.SB)("visible",(0,y.oB)({transform:"scale(1)"})),(0,y.eR)("* => visible",(0,y.jt)("200ms cubic-bezier(0, 0, 0.2, 1)",(0,y.F4)([(0,y.oB)({opacity:0,transform:"scale(0)",offset:0}),(0,y.oB)({opacity:.5,transform:"scale(0.99)",offset:.5}),(0,y.oB)({opacity:1,transform:"scale(1)",offset:1})]))),(0,y.eR)("* => hidden",(0,y.jt)("100ms cubic-bezier(0, 0, 0.2, 1)",(0,y.oB)({opacity:0})))])},_=(0,d.i$)({passive:!0}),w=new o.OlP("mat-tooltip-scroll-strategy"),x={provide:w,deps:[n.aV],useFactory:function(t){return()=>t.scrollStrategies.reposition({scrollThrottle:20})}},C=new o.OlP("mat-tooltip-default-options",{providedIn:"root",factory:function(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}});let A=(()=>{class t{constructor(t,e,i,n,r,s,o,a,l,c,u,d){this._overlay=t,this._elementRef=e,this._scrollDispatcher=i,this._viewContainerRef=n,this._ngZone=r,this._platform=s,this._ariaDescriber=o,this._focusMonitor=a,this._dir=c,this._defaultOptions=u,this._position="below",this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.showDelay=this._defaultOptions.showDelay,this.hideDelay=this._defaultOptions.hideDelay,this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new f.x,this._handleKeydown=t=>{this._isTooltipVisible()&&t.keyCode===h.hY&&!(0,h.Vb)(t)&&(t.preventDefault(),t.stopPropagation(),this._ngZone.run(()=>this.hide(0)))},this._scrollStrategy=l,this._document=d,u&&(u.position&&(this.position=u.position),u.touchGestures&&(this.touchGestures=u.touchGestures)),c.change.pipe((0,m.R)(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),r.runOutsideAngular(()=>{e.nativeElement.addEventListener("keydown",this._handleKeydown)})}get position(){return this._position}set position(t){var e;t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(this._overlayRef),null===(e=this._tooltipInstance)||void 0===e||e.show(0),this._overlayRef.updatePosition()))}get disabled(){return this._disabled}set disabled(t){this._disabled=(0,c.Ig)(t),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get message(){return this._message}set message(t){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=t?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe((0,m.R)(this._destroyed)).subscribe(t=>{t?"keyboard"===t&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const t=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),t.removeEventListener("keydown",this._handleKeydown),this._passiveListeners.forEach(([e,i])=>{t.removeEventListener(e,i,_)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t)}show(t=this.showDelay){if(this.disabled||!this.message||this._isTooltipVisible()&&!this._tooltipInstance._showTimeoutId&&!this._tooltipInstance._hideTimeoutId)return;const e=this._createOverlay();this._detach(),this._portal=this._portal||new p.C5(this._tooltipComponent,this._viewContainerRef),this._tooltipInstance=e.attach(this._portal).instance,this._tooltipInstance.afterHidden().pipe((0,m.R)(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),this._tooltipInstance.show(t)}hide(t=this.hideDelay){this._tooltipInstance&&this._tooltipInstance.hide(t)}toggle(){this._isTooltipVisible()?this.hide():this.show()}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(){if(this._overlayRef)return this._overlayRef;const t=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),e=this._overlay.position().flexibleConnectedTo(this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(t);return e.positionChanges.pipe((0,m.R)(this._destroyed)).subscribe(t=>{this._updateCurrentPositionClass(t.connectionPair),this._tooltipInstance&&t.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:e,panelClass:`${this._cssClassPrefix}-tooltip-panel`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe((0,m.R)(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(t){const e=t.getConfig().positionStrategy,i=this._getOrigin(),n=this._getOverlayPosition();e.withPositions([this._addOffset(Object.assign(Object.assign({},i.main),n.main)),this._addOffset(Object.assign(Object.assign({},i.fallback),n.fallback))])}_addOffset(t){return t}_getOrigin(){const t=!this._dir||"ltr"==this._dir.value,e=this.position;let i;"above"==e||"below"==e?i={originX:"center",originY:"above"==e?"top":"bottom"}:"before"==e||"left"==e&&t||"right"==e&&!t?i={originX:"start",originY:"center"}:("after"==e||"right"==e&&t||"left"==e&&!t)&&(i={originX:"end",originY:"center"});const{x:n,y:r}=this._invertPosition(i.originX,i.originY);return{main:i,fallback:{originX:n,originY:r}}}_getOverlayPosition(){const t=!this._dir||"ltr"==this._dir.value,e=this.position;let i;"above"==e?i={overlayX:"center",overlayY:"bottom"}:"below"==e?i={overlayX:"center",overlayY:"top"}:"before"==e||"left"==e&&t||"right"==e&&!t?i={overlayX:"end",overlayY:"center"}:("after"==e||"right"==e&&t||"left"==e&&!t)&&(i={overlayX:"start",overlayY:"center"});const{x:n,y:r}=this._invertPosition(i.overlayX,i.overlayY);return{main:i,fallback:{overlayX:n,overlayY:r}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe((0,g.q)(1),(0,m.R)(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t,this._tooltipInstance._markForCheck())}_invertPosition(t,e){return"above"===this.position||"below"===this.position?"top"===e?e="bottom":"bottom"===e&&(e="top"):"end"===t?t="start":"start"===t&&(t="end"),{x:t,y:e}}_updateCurrentPositionClass(t){const{overlayY:e,originX:i,originY:n}=t;let r;if(r="center"===e?this._dir&&"rtl"===this._dir.value?"end"===i?"left":"right":"start"===i?"left":"right":"bottom"===e&&"top"===n?"above":"below",r!==this._currentPosition){const t=this._overlayRef;if(t){const e=`${this._cssClassPrefix}-tooltip-panel-`;t.removePanelClass(e+this._currentPosition),t.addPanelClass(e+r)}this._currentPosition=r}}_setupPointerEnterEventsIfNeeded(){!this._disabled&&this.message&&this._viewInitialized&&!this._passiveListeners.length&&(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",()=>{this._setupPointerExitEventsIfNeeded(),this.show()}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",()=>{this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const t=[];if(this._platformSupportsMouseEvents())t.push(["mouseleave",()=>this.hide()],["wheel",t=>this._wheelListener(t)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const e=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};t.push(["touchend",e],["touchcancel",e])}this._addListeners(t),this._passiveListeners.push(...t)}_addListeners(t){t.forEach(([t,e])=>{this._elementRef.nativeElement.addEventListener(t,e,_)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(t){if(this._isTooltipVisible()){const e=this._document.elementFromPoint(t.clientX,t.clientY),i=this._elementRef.nativeElement;e===i||i.contains(e)||this.hide()}}_disableNativeGesturesIfNecessary(){const t=this.touchGestures;if("off"!==t){const e=this._elementRef.nativeElement,i=e.style;("on"===t||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName)&&(i.userSelect=i.msUserSelect=i.webkitUserSelect=i.MozUserSelect="none"),"on"!==t&&e.draggable||(i.webkitUserDrag="none"),i.touchAction="none",i.webkitTapHighlightColor="transparent"}}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(n.aV),o.Y36(o.SBq),o.Y36(l.mF),o.Y36(o.s_b),o.Y36(o.R0b),o.Y36(d.t4),o.Y36(r.$s),o.Y36(r.tE),o.Y36(void 0),o.Y36(b.Is),o.Y36(void 0),o.Y36(s.K0))},t.\u0275dir=o.lG2({type:t,inputs:{showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],position:["matTooltipPosition","position"],disabled:["matTooltipDisabled","disabled"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}}),t})(),S=(()=>{class t extends A{constructor(t,e,i,n,r,s,o,a,l,c,h,u){super(t,e,i,n,r,s,o,a,l,c,h,u),this._tooltipComponent=k}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(n.aV),o.Y36(o.SBq),o.Y36(l.mF),o.Y36(o.s_b),o.Y36(o.R0b),o.Y36(d.t4),o.Y36(r.$s),o.Y36(r.tE),o.Y36(w),o.Y36(b.Is,8),o.Y36(C,8),o.Y36(s.K0))},t.\u0275dir=o.lG2({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-tooltip-trigger"],exportAs:["matTooltip"],features:[o.qOj]}),t})(),E=(()=>{class t{constructor(t){this._changeDetectorRef=t,this._visibility="initial",this._closeOnInteraction=!1,this._onHide=new f.x}show(t){clearTimeout(this._hideTimeoutId),this._closeOnInteraction=!0,this._showTimeoutId=setTimeout(()=>{this._visibility="visible",this._showTimeoutId=void 0,this._markForCheck()},t)}hide(t){clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._visibility="hidden",this._hideTimeoutId=void 0,this._markForCheck()},t)}afterHidden(){return this._onHide}isVisible(){return"visible"===this._visibility}ngOnDestroy(){clearTimeout(this._showTimeoutId),clearTimeout(this._hideTimeoutId),this._onHide.complete()}_animationStart(){this._closeOnInteraction=!1}_animationDone(t){const e=t.toState;"hidden"!==e||this.isVisible()||this._onHide.next(),"visible"!==e&&"hidden"!==e||(this._closeOnInteraction=!0)}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.sBO))},t.\u0275dir=o.lG2({type:t}),t})(),k=(()=>{class t extends E{constructor(t,e){super(t),this._breakpointObserver=e,this._isHandset=this._breakpointObserver.observe(u.u3.Handset)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(o.sBO),o.Y36(u.Yg))},t.\u0275cmp=o.Xpm({type:t,selectors:[["mat-tooltip-component"]],hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(t,e){1&t&&o.NdJ("click",function(){return e._handleBodyInteraction()},!1,o.pYS)("auxclick",function(){return e._handleBodyInteraction()},!1,o.pYS),2&t&&o.Udp("zoom","visible"===e._visibility?1:null)},features:[o.qOj],decls:3,vars:7,consts:[[1,"mat-tooltip",3,"ngClass"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.NdJ("@state.start",function(){return e._animationStart()})("@state.done",function(t){return e._animationDone(t)}),o.ALo(1,"async"),o._uU(2),o.qZA()),2&t){let t;o.ekj("mat-tooltip-handset",null==(t=o.lcZ(1,5,e._isHandset))?null:t.matches),o.Q6J("ngClass",e.tooltipClass)("@state",e._visibility),o.xp6(2),o.Oqu(e.message)}},directives:[s.mk],pipes:[s.Ov],styles:[".mat-tooltip-panel{pointer-events:none !important}.mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis}.cdk-high-contrast-active .mat-tooltip{outline:solid 1px}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}\n"],encapsulation:2,data:{animation:[v.tooltipState]},changeDetection:0}),t})(),T=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=o.oAB({type:t}),t.\u0275inj=o.cJS({providers:[x],imports:[[r.rt,s.ez,n.U8,a.BQ],a.BQ,l.ZD]}),t})()},1010:(t,e,i)=>{"use strict";i.d(e,{GZ:()=>f,gi:()=>g,dp:()=>b,WX:()=>v,uo:()=>d,fQ:()=>p,Ar:()=>m,eu:()=>y});var n=i(1709),r=i(1522),s=i(9861),o=i(4230),a=i(7425),l=i(5446),c=i(1681),h=i(1572);const u=(0,r.sb)((0,r.Id)(n.Hs));let d=(()=>{class t extends u{constructor(t,e,i){super(t,e),this._elementRef=t,this._tree=e,this.tabIndex=Number(i)||0,this._elementRef.nativeElement.classList.add("mat-tree-node")}ngOnInit(){super.ngOnInit()}ngDoCheck(){super.ngDoCheck()}ngOnDestroy(){super.ngOnDestroy()}}return t.\u0275fac=function(e){return new(e||t)(h.Y36(h.SBq),h.Y36(n._0),h.$8M("tabindex"))},t.\u0275dir=h.lG2({type:t,selectors:[["mat-tree-node"]],inputs:{role:"role",disabled:"disabled",tabIndex:"tabIndex"},exportAs:["matTreeNode"],features:[h._Bn([{provide:n.Hs,useExisting:t}]),h.qOj]}),t})(),p=(()=>{class t extends n.rO{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=h.n5z(t)))(i||t)}}(),t.\u0275dir=h.lG2({type:t,selectors:[["","matTreeNodeDef",""]],inputs:{when:["matTreeNodeDefWhen","when"],data:["matTreeNode","data"]},features:[h._Bn([{provide:n.rO,useExisting:t}]),h.qOj]}),t})(),f=(()=>{class t extends n.Xx{constructor(t,e,i,n){super(t,e,i),this._elementRef=t,this._tree=e,this._differs=i,this._disabled=!1,this.tabIndex=Number(n)||0,this._elementRef.nativeElement.classList.add("mat-nested-tree-node")}get disabled(){return this._disabled}set disabled(t){this._disabled=(0,s.Ig)(t)}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(t){this._tabIndex=null!=t?t:0}ngOnInit(){super.ngOnInit()}ngDoCheck(){super.ngDoCheck()}ngAfterContentInit(){super.ngAfterContentInit()}ngOnDestroy(){super.ngOnDestroy()}}return t.\u0275fac=function(e){return new(e||t)(h.Y36(h.SBq),h.Y36(n._0),h.Y36(h.ZZ4),h.$8M("tabindex"))},t.\u0275dir=h.lG2({type:t,selectors:[["mat-nested-tree-node"]],inputs:{role:"role",disabled:"disabled",tabIndex:"tabIndex",node:["matNestedTreeNode","node"]},exportAs:["matNestedTreeNode"],features:[h._Bn([{provide:n.Xx,useExisting:t},{provide:n.Hs,useExisting:t},{provide:n.HI,useExisting:t}]),h.qOj]}),t})(),m=(()=>{class t{constructor(t,e){this.viewContainer=t,this._node=e}}return t.\u0275fac=function(e){return new(e||t)(h.Y36(h.s_b),h.Y36(n.HI,8))},t.\u0275dir=h.lG2({type:t,selectors:[["","matTreeNodeOutlet",""]],features:[h._Bn([{provide:n.cu,useExisting:t}])]}),t})(),g=(()=>{class t extends n._0{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=h.n5z(t)))(i||t)}}(),t.\u0275cmp=h.Xpm({type:t,selectors:[["mat-tree"]],viewQuery:function(t,e){if(1&t&&h.Gf(m,7),2&t){let t;h.iGM(t=h.CRH())&&(e._nodeOutlet=t.first)}},hostAttrs:["role","tree",1,"mat-tree","cdk-tree"],exportAs:["matTree"],features:[h._Bn([{provide:n._0,useExisting:t}]),h.qOj],decls:1,vars:0,consts:[["matTreeNodeOutlet",""]],template:function(t,e){1&t&&h.GkF(0,0)},directives:[m],styles:[".mat-tree{display:block}.mat-tree-node{display:flex;align-items:center;flex:1;word-wrap:break-word}.mat-nested-tree-node{border-bottom-width:0}\n"],encapsulation:2}),t})(),y=(()=>{class t extends n.Ud{get recursive(){return this._recursive}set recursive(t){this._recursive=(0,s.Ig)(t)}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=h.n5z(t)))(i||t)}}(),t.\u0275dir=h.lG2({type:t,selectors:[["","matTreeNodeToggle",""]],inputs:{recursive:["matTreeNodeToggleRecursive","recursive"]},features:[h._Bn([{provide:n.Ud,useExisting:t}]),h.qOj]}),t})(),b=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=h.oAB({type:t}),t.\u0275inj=h.cJS({imports:[[n.nZ,r.BQ],r.BQ]}),t})();class v extends o.o2{constructor(){super(...arguments),this._data=new a.X([])}get data(){return this._data.value}set data(t){this._data.next(t)}connect(t){return(0,l.T)(t.viewChange,this._data).pipe((0,c.U)(()=>this.data))}disconnect(){}}},3490:(t,e,i)=>{"use strict";i.d(e,{Qb:()=>Oe,PW:()=>Pe});var n=i(1572),r=i(269),s=i(709);function o(){return"undefined"!=typeof window&&void 0!==window.document}function a(){return"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)}function l(t){switch(t.length){case 0:return new s.ZN;case 1:return t[0];default:return new s.ZE(t)}}function c(t,e,i,n,r={},o={}){const a=[],l=[];let c=-1,h=null;if(n.forEach(t=>{const i=t.offset,n=i==c,u=n&&h||{};Object.keys(t).forEach(i=>{let n=i,l=t[i];if("offset"!==i)switch(n=e.normalizePropertyName(n,a),l){case s.k1:l=r[i];break;case s.l3:l=o[i];break;default:l=e.normalizeStyleValue(i,n,l,a)}u[n]=l}),n||l.push(u),h=u,c=i}),a.length){const t="\n - ";throw new Error(`Unable to animate due to the following errors:${t}${a.join(t)}`)}return l}function h(t,e,i,n){switch(e){case"start":t.onStart(()=>n(i&&u(i,"start",t)));break;case"done":t.onDone(()=>n(i&&u(i,"done",t)));break;case"destroy":t.onDestroy(()=>n(i&&u(i,"destroy",t)))}}function u(t,e,i){const n=i.totalTime,r=d(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,null==n?t.totalTime:n,!!i.disabled),s=t._data;return null!=s&&(r._data=s),r}function d(t,e,i,n,r="",s=0,o){return{element:t,triggerName:e,fromState:i,toState:n,phaseName:r,totalTime:s,disabled:!!o}}function p(t,e,i){let n;return t instanceof Map?(n=t.get(e),n||t.set(e,n=i)):(n=t[e],n||(n=t[e]=i)),n}function f(t){const e=t.indexOf(":");return[t.substring(1,e),t.substr(e+1)]}let m=(t,e)=>!1,g=(t,e)=>!1,y=(t,e,i)=>[];const b=a();(b||"undefined"!=typeof Element)&&(m=o()?(t,e)=>{for(;e&&e!==document.documentElement;){if(e===t)return!0;e=e.parentNode||e.host}return!1}:(t,e)=>t.contains(e),g=(()=>{if(b||Element.prototype.matches)return(t,e)=>t.matches(e);{const t=Element.prototype,e=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector;return e?(t,i)=>e.apply(t,[i]):g}})(),y=(t,e,i)=>{let n=[];if(i){const i=t.querySelectorAll(e);for(let t=0;t{const n=i.replace(/([a-z])([A-Z])/g,"$1-$2");e[n]=t[i]}),e}let E=(()=>{class t{validateStyleProperty(t){return w(t)}matchesElement(t,e){return x(t,e)}containsElement(t,e){return C(t,e)}query(t,e,i){return A(t,e,i)}computeStyle(t,e,i){return i||""}animate(t,e,i,n,r,o=[],a){return new s.ZN(i,n)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})(),k=(()=>{class t{}return t.NOOP=new E,t})();const T="ng-enter",M="ng-leave",L="ng-trigger",I=".ng-trigger",O="ng-animating",D=".ng-animating";function R(t){if("number"==typeof t)return t;const e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:N(parseFloat(e[1]),e[2])}function N(t,e){switch(e){case"s":return 1e3*t;default:return t}}function P(t,e,i){return t.hasOwnProperty("duration")?t:function(t,e,i){let n,r=0,s="";if("string"==typeof t){const i=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===i)return e.push(`The provided timing value "${t}" is invalid.`),{duration:0,delay:0,easing:""};n=N(parseFloat(i[1]),i[2]);const o=i[3];null!=o&&(r=N(parseFloat(o),i[4]));const a=i[5];a&&(s=a)}else n=t;if(!i){let i=!1,s=e.length;n<0&&(e.push("Duration values below 0 are not allowed for this animation step."),i=!0),r<0&&(e.push("Delay values below 0 are not allowed for this animation step."),i=!0),i&&e.splice(s,0,`The provided timing value "${t}" is invalid.`)}return{duration:n,delay:r,easing:s}}(t,e,i)}function F(t,e={}){return Object.keys(t).forEach(i=>{e[i]=t[i]}),e}function Z(t,e,i={}){if(e)for(let n in t)i[n]=t[n];else F(t,i);return i}function B(t,e,i){return i?e+":"+i+";":""}function U(t){let e="";for(let i=0;i{const r=W(n);i&&!i.hasOwnProperty(n)&&(i[n]=t.style[r]),t.style[r]=e[n]}),a()&&U(t))}function z(t,e){t.style&&(Object.keys(e).forEach(e=>{const i=W(e);t.style[i]=""}),a()&&U(t))}function H(t){return Array.isArray(t)?1==t.length?t[0]:(0,s.vP)(t):t}const Y=new RegExp("{{\\s*(.+?)\\s*}}","g");function G(t){let e=[];if("string"==typeof t){let i;for(;i=Y.exec(t);)e.push(i[1]);Y.lastIndex=0}return e}function j(t,e,i){const n=t.toString(),r=n.replace(Y,(t,n)=>{let r=e[n];return e.hasOwnProperty(n)||(i.push(`Please provide a value for the animation param ${n}`),r=""),r.toString()});return r==n?t:r}function V(t){const e=[];let i=t.next();for(;!i.done;)e.push(i.value),i=t.next();return e}const Q=/-+([a-z0-9])/g;function W(t){return t.replace(Q,(...t)=>t[1].toUpperCase())}function J(t,e){return 0===t||0===e}function X(t,e,i){const n=Object.keys(i);if(n.length&&e.length){let s=e[0],o=[];if(n.forEach(t=>{s.hasOwnProperty(t)||o.push(t),s[t]=i[t]}),o.length)for(var r=1;rfunction(t,e,i){if(":"==t[0]){const n=function(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,e)=>parseFloat(e)>parseFloat(t);case":decrement":return(t,e)=>parseFloat(e) *"}}(t,i);if("function"==typeof n)return void e.push(n);t=n}const n=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==n||n.length<4)return i.push(`The provided transition expression "${t}" is not supported`),e;const r=n[1],s=n[2],o=n[3];e.push(rt(r,o)),"<"!=s[0]||r==tt&&o==tt||e.push(rt(o,r))}(t,i,e)):i.push(t),i}const it=new Set(["true","1"]),nt=new Set(["false","0"]);function rt(t,e){const i=it.has(t)||nt.has(t),n=it.has(e)||nt.has(e);return(r,s)=>{let o=t==tt||t==r,a=e==tt||e==s;return!o&&i&&"boolean"==typeof r&&(o=r?it.has(t):nt.has(t)),!a&&n&&"boolean"==typeof s&&(a=s?it.has(e):nt.has(e)),o&&a}}const st=new RegExp("s*:selfs*,?","g");function ot(t,e,i){return new at(t).build(e,i)}class at{constructor(t){this._driver=t}build(t,e){const i=new lt(e);return this._resetContextStyleTimingState(i),K(this,H(t),i)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles={},t.collectedStyles[""]={},t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,n=e.depCount=0;const r=[],s=[];return"@"==t.name.charAt(0)&&e.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),t.definitions.forEach(t=>{if(this._resetContextStyleTimingState(e),0==t.type){const i=t,n=i.name;n.toString().split(/\s*,\s*/).forEach(t=>{i.name=t,r.push(this.visitState(i,e))}),i.name=n}else if(1==t.type){const r=this.visitTransition(t,e);i+=r.queryCount,n+=r.depCount,s.push(r)}else e.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:t.name,states:r,transitions:s,queryCount:i,depCount:n,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),n=t.options&&t.options.params||null;if(i.containsDynamicStyles){const r=new Set,s=n||{};if(i.styles.forEach(t=>{if(ct(t)){const e=t;Object.keys(e).forEach(t=>{G(e[t]).forEach(t=>{s.hasOwnProperty(t)||r.add(t)})})}}),r.size){const i=V(r.values());e.errors.push(`state("${t.name}", ...) must define default values for all the following style substitutions: ${i.join(", ")}`)}}return{type:0,name:t.name,style:i,options:n?{params:n}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=K(this,H(t.animation),e);return{type:1,matchers:et(t.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:ht(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(t=>K(this,t,e)),options:ht(t.options)}}visitGroup(t,e){const i=e.currentTime;let n=0;const r=t.steps.map(t=>{e.currentTime=i;const r=K(this,t,e);return n=Math.max(n,e.currentTime),r});return e.currentTime=n,{type:3,steps:r,options:ht(t.options)}}visitAnimate(t,e){const i=function(t,e){let i=null;if(t.hasOwnProperty("duration"))i=t;else if("number"==typeof t)return ut(P(t,e).duration,0,"");const n=t;if(n.split(/\s+/).some(t=>"{"==t.charAt(0)&&"{"==t.charAt(1))){const t=ut(0,0,"");return t.dynamic=!0,t.strValue=n,t}return i=i||P(n,e),ut(i.duration,i.delay,i.easing)}(t.timings,e.errors);let n;e.currentAnimateTimings=i;let r=t.styles?t.styles:(0,s.oB)({});if(5==r.type)n=this.visitKeyframes(r,e);else{let r=t.styles,o=!1;if(!r){o=!0;const t={};i.easing&&(t.easing=i.easing),r=(0,s.oB)(t)}e.currentTime+=i.duration+i.delay;const a=this.visitStyle(r,e);a.isEmptyStep=o,n=a}return e.currentAnimateTimings=null,{type:4,timings:i,style:n,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[];Array.isArray(t.styles)?t.styles.forEach(t=>{"string"==typeof t?t==s.l3?i.push(t):e.errors.push(`The provided style string value ${t} is not allowed.`):i.push(t)}):i.push(t.styles);let n=!1,r=null;return i.forEach(t=>{if(ct(t)){const e=t,i=e.easing;if(i&&(r=i,delete e.easing),!n)for(let t in e)if(e[t].toString().indexOf("{{")>=0){n=!0;break}}}),{type:6,styles:i,easing:r,offset:t.offset,containsDynamicStyles:n,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let n=e.currentTime,r=e.currentTime;i&&r>0&&(r-=i.duration+i.delay),t.styles.forEach(t=>{"string"!=typeof t&&Object.keys(t).forEach(i=>{if(!this._driver.validateStyleProperty(i))return void e.errors.push(`The provided animation property "${i}" is not a supported CSS property for animations`);const s=e.collectedStyles[e.currentQuerySelector],o=s[i];let a=!0;o&&(r!=n&&r>=o.startTime&&n<=o.endTime&&(e.errors.push(`The CSS property "${i}" that exists between the times of "${o.startTime}ms" and "${o.endTime}ms" is also being animated in a parallel animation between the times of "${r}ms" and "${n}ms"`),a=!1),r=o.startTime),a&&(s[i]={startTime:r,endTime:n}),e.options&&function(t,e,i){const n=e.params||{},r=G(t);r.length&&r.forEach(t=>{n.hasOwnProperty(t)||i.push(`Unable to resolve the local animation param ${t} in the given list of values`)})}(t[i],e.options,e.errors)})})}visitKeyframes(t,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push("keyframes() must be placed inside of a call to animate()"),i;let n=0;const r=[];let s=!1,o=!1,a=0;const l=t.steps.map(t=>{const i=this._makeStyleAst(t,e);let l=null!=i.offset?i.offset:function(t){if("string"==typeof t)return null;let e=null;if(Array.isArray(t))t.forEach(t=>{if(ct(t)&&t.hasOwnProperty("offset")){const i=t;e=parseFloat(i.offset),delete i.offset}});else if(ct(t)&&t.hasOwnProperty("offset")){const i=t;e=parseFloat(i.offset),delete i.offset}return e}(i.styles),c=0;return null!=l&&(n++,c=i.offset=l),o=o||c<0||c>1,s=s||c0&&n{const s=h>0?n==u?1:h*n:r[n],o=s*f;e.currentTime=d+p.delay+o,p.duration=o,this._validateStyleAst(t,e),t.offset=s,i.styles.push(t)}),i}visitReference(t,e){return{type:8,animation:K(this,H(t.animation),e),options:ht(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:ht(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:ht(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,n=t.options||{};e.queryCount++,e.currentQuery=t;const[r,s]=function(t){const e=!!t.split(/\s*,\s*/).find(t=>":self"==t);return e&&(t=t.replace(st,"")),[t=t.replace(/@\*/g,I).replace(/@\w+/g,t=>".ng-trigger-"+t.substr(1)).replace(/:animating/g,D),e]}(t.selector);e.currentQuerySelector=i.length?i+" "+r:r,p(e.collectedStyles,e.currentQuerySelector,{});const o=K(this,H(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:r,limit:n.limit||0,optional:!!n.optional,includeSelf:s,animation:o,originalSelector:t.selector,options:ht(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push("stagger() can only be used inside of query()");const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:P(t.timings,e.errors,!0);return{type:12,animation:K(this,H(t.animation),e),timings:i,options:null}}}class lt{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}}function ct(t){return!Array.isArray(t)&&"object"==typeof t}function ht(t){var e;return t?(t=F(t)).params&&(t.params=(e=t.params)?F(e):null):t={},t}function ut(t,e,i){return{duration:t,delay:e,easing:i}}function dt(t,e,i,n,r,s,o=null,a=!1){return{type:1,element:t,keyframes:e,preStyleProps:i,postStyleProps:n,duration:r,delay:s,totalTime:r+s,easing:o,subTimeline:a}}class pt{constructor(){this._map=new Map}consume(t){let e=this._map.get(t);return e?this._map.delete(t):e=[],e}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const ft=new RegExp(":enter","g"),mt=new RegExp(":leave","g");function gt(t,e,i,n,r,s={},o={},a,l,c=[]){return(new yt).buildKeyframes(t,e,i,n,r,s,o,a,l,c)}class yt{buildKeyframes(t,e,i,n,r,s,o,a,l,c=[]){l=l||new pt;const h=new vt(t,e,l,n,r,c,[]);h.options=a,h.currentTimeline.setStyles([s],null,h.errors,a),K(this,i,h);const u=h.timelines.filter(t=>t.containsAnimation());if(u.length&&Object.keys(o).length){const t=u[u.length-1];t.allowOnlyTimelineStyles()||t.setStyles([o],null,h.errors,a)}return u.length?u.map(t=>t.buildKeyframes()):[dt(e,[],[],[],0,0,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.consume(e.element);if(i){const n=e.createSubContext(t.options),r=e.currentTimeline.currentTime,s=this._visitSubInstructions(i,n,n.options);r!=s&&e.transformIntoNewTimeline(s)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_visitSubInstructions(t,e,i){let n=e.currentTimeline.currentTime;const r=null!=i.duration?R(i.duration):null,s=null!=i.delay?R(i.delay):null;return 0!==r&&t.forEach(t=>{const i=e.appendInstructionToTimeline(t,r,s);n=Math.max(n,i.duration+i.delay)}),n}visitReference(t,e){e.updateOptions(t.options,!0),K(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let n=e;const r=t.options;if(r&&(r.params||r.delay)&&(n=e.createSubContext(r),n.transformIntoNewTimeline(),null!=r.delay)){6==n.previousNode.type&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=bt);const t=R(r.delay);n.delayNextStep(t)}t.steps.length&&(t.steps.forEach(t=>K(this,t,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>i&&n.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let n=e.currentTimeline.currentTime;const r=t.options&&t.options.delay?R(t.options.delay):0;t.steps.forEach(s=>{const o=e.createSubContext(t.options);r&&o.delayNextStep(r),K(this,s,o),n=Math.max(n,o.currentTimeline.currentTime),i.push(o.currentTimeline)}),i.forEach(t=>e.currentTimeline.mergeTimelineCollectedStyles(t)),e.transformIntoNewTimeline(n),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return P(e.params?j(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),n=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),n.snapshotCurrentStyles());const r=t.style;5==r.type?this.visitKeyframes(r,e):(e.incrementTime(i.duration),this.visitStyle(r,e),n.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,n=e.currentAnimateTimings;!n&&i.getCurrentStyleProperties().length&&i.forwardFrame();const r=n&&n.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(r):i.setStyles(t.styles,r,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,n=e.currentTimeline.duration,r=i.duration,s=e.createSubContext().currentTimeline;s.easing=i.easing,t.styles.forEach(t=>{s.forwardTime((t.offset||0)*r),s.setStyles(t.styles,t.easing,e.errors,e.options),s.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(s),e.transformIntoNewTimeline(n+r),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,n=t.options||{},r=n.delay?R(n.delay):0;r&&(6===e.previousNode.type||0==i&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=bt);let s=i;const o=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!n.optional,e.errors);e.currentQueryTotal=o.length;let a=null;o.forEach((i,n)=>{e.currentQueryIndex=n;const o=e.createSubContext(t.options,i);r&&o.delayNextStep(r),i===e.element&&(a=o.currentTimeline),K(this,t.animation,o),o.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,o.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),a&&(e.currentTimeline.mergeTimelineCollectedStyles(a),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,n=e.currentTimeline,r=t.timings,s=Math.abs(r.duration),o=s*(e.currentQueryTotal-1);let a=s*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":a=o-a;break;case"full":a=i.currentStaggerTime}const l=e.currentTimeline;a&&l.delayNextStep(a);const c=l.currentTime;K(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=n.currentTime-c+(n.startTime-i.currentTimeline.startTime)}}const bt={};class vt{constructor(t,e,i,n,r,s,o,a){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=n,this._leaveClassName=r,this.errors=s,this.timelines=o,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=bt,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=a||new _t(this._driver,e,0),o.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let n=this.options;null!=i.duration&&(n.duration=R(i.duration)),null!=i.delay&&(n.delay=R(i.delay));const r=i.params;if(r){let t=n.params;t||(t=this.options.params={}),Object.keys(r).forEach(i=>{e&&t.hasOwnProperty(i)||(t[i]=j(r[i],t,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(t=>{i[t]=e[t]})}}return t}createSubContext(t=null,e,i){const n=e||this.element,r=new vt(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,i||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(t),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(t){return this.previousNode=bt,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const n={duration:null!=e?e:t.duration,delay:this.currentTimeline.currentTime+(null!=i?i:0)+t.delay,easing:""},r=new wt(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,n,t.stretchStartingKeyframe);return this.timelines.push(r),n}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,n,r,s){let o=[];if(n&&o.push(this.element),t.length>0){t=(t=t.replace(ft,"."+this._enterClassName)).replace(mt,"."+this._leaveClassName);let e=this._driver.query(this.element,t,1!=i);0!==i&&(e=i<0?e.slice(e.length+i,e.length):e.slice(0,i)),o.push(...e)}return r||0!=o.length||s.push(`\`query("${e}")\` returned zero elements. (Use \`query("${e}", { optional: true })\` if you wish to allow this.)`),o}}class _t{constructor(t,e,i,n){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=n,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new _t(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(t=>{this._backFill[t]=this._globalTimelineStyles[t]||s.l3,this._currentKeyframe[t]=s.l3}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,n){e&&(this._previousKeyframe.easing=e);const r=n&&n.params||{},o=function(t,e){const i={};let n;return t.forEach(t=>{"*"===t?(n=n||Object.keys(e),n.forEach(t=>{i[t]=s.l3})):Z(t,!1,i)}),i}(t,this._globalTimelineStyles);Object.keys(o).forEach(t=>{const e=j(o[t],r,i);this._pendingStyles[t]=e,this._localTimelineStyles.hasOwnProperty(t)||(this._backFill[t]=this._globalTimelineStyles.hasOwnProperty(t)?this._globalTimelineStyles[t]:s.l3),this._updateStyle(t,e)})}applyStylesToKeyframe(){const t=this._pendingStyles,e=Object.keys(t);0!=e.length&&(this._pendingStyles={},e.forEach(e=>{this._currentKeyframe[e]=t[e]}),Object.keys(this._localTimelineStyles).forEach(t=>{this._currentKeyframe.hasOwnProperty(t)||(this._currentKeyframe[t]=this._localTimelineStyles[t])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(t=>{const e=this._localTimelineStyles[t];this._pendingStyles[t]=e,this._updateStyle(t,e)})}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){Object.keys(t._styleSummary).forEach(e=>{const i=this._styleSummary[e],n=t._styleSummary[e];(!i||n.time>i.time)&&this._updateStyle(e,n.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let n=[];this._keyframes.forEach((r,o)=>{const a=Z(r,!0);Object.keys(a).forEach(i=>{const n=a[i];n==s.k1?t.add(i):n==s.l3&&e.add(i)}),i||(a.offset=o/this.duration),n.push(a)});const r=t.size?V(t.values()):[],o=e.size?V(e.values()):[];if(i){const t=n[0],e=F(t);t.offset=0,e.offset=1,n=[t,e]}return dt(this.element,n,r,o,this.duration,this.startTime,this.easing,!1)}}class wt extends _t{constructor(t,e,i,n,r,s,o=!1){super(t,e,s.delay),this.element=e,this.keyframes=i,this.preStyleProps=n,this.postStyleProps=r,this._stretchStartingKeyframe=o,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:n}=this.timings;if(this._stretchStartingKeyframe&&e){const r=[],s=i+e,o=e/s,a=Z(t[0],!1);a.offset=0,r.push(a);const l=Z(t[0],!1);l.offset=xt(o),r.push(l);const c=t.length-1;for(let n=1;n<=c;n++){let o=Z(t[n],!1);o.offset=xt((e+o.offset*i)/s),r.push(o)}i=s,e=0,n="",t=r}return dt(this.element,t,this.preStyleProps,this.postStyleProps,i,e,n,!0)}}function xt(t,e=3){const i=Math.pow(10,e-1);return Math.round(t*i)/i}class Ct{}class At extends Ct{normalizePropertyName(t,e){return W(t)}normalizeStyleValue(t,e,i,n){let r="";const s=i.toString().trim();if(St[e]&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const e=i.match(/^[+-]?[\d\.]+([a-z]*)$/);e&&0==e[1].length&&n.push(`Please provide a CSS unit value for ${t}:${i}`)}return s+r}}const St=(()=>function(t){const e={};return t.forEach(t=>e[t]=!0),e}("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(",")))();function Et(t,e,i,n,r,s,o,a,l,c,h,u,d){return{type:0,element:t,triggerName:e,isRemovalTransition:r,fromState:i,fromStyles:s,toState:n,toStyles:o,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:h,totalTime:u,errors:d}}const kt={};class Tt{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,n){return function(t,e,i,n,r){return t.some(t=>t(e,i,n,r))}(this.ast.matchers,t,e,i,n)}buildStyles(t,e,i){const n=this._stateStyles["*"],r=this._stateStyles[t],s=n?n.buildStyles(e,i):{};return r?r.buildStyles(e,i):s}build(t,e,i,n,r,s,o,a,l,c){const h=[],u=this.ast.options&&this.ast.options.params||kt,d=this.buildStyles(i,o&&o.params||kt,h),f=a&&a.params||kt,m=this.buildStyles(n,f,h),g=new Set,y=new Map,b=new Map,v="void"===n,_={params:Object.assign(Object.assign({},u),f)},w=c?[]:gt(t,e,this.ast.animation,r,s,d,m,_,l,h);let x=0;if(w.forEach(t=>{x=Math.max(t.duration+t.delay,x)}),h.length)return Et(e,this._triggerName,i,n,v,d,m,[],[],y,b,x,h);w.forEach(t=>{const i=t.element,n=p(y,i,{});t.preStyleProps.forEach(t=>n[t]=!0);const r=p(b,i,{});t.postStyleProps.forEach(t=>r[t]=!0),i!==e&&g.add(i)});const C=V(g.values());return Et(e,this._triggerName,i,n,v,d,m,w,C,y,b,x)}}class Mt{constructor(t,e){this.styles=t,this.defaultParams=e}buildStyles(t,e){const i={},n=F(this.defaultParams);return Object.keys(t).forEach(e=>{const i=t[e];null!=i&&(n[e]=i)}),this.styles.styles.forEach(t=>{if("string"!=typeof t){const r=t;Object.keys(r).forEach(t=>{let s=r[t];s.length>1&&(s=j(s,n,e)),i[t]=s})}}),i}}class Lt{constructor(t,e){this.name=t,this.ast=e,this.transitionFactories=[],this.states={},e.states.forEach(t=>{this.states[t.name]=new Mt(t.style,t.options&&t.options.params||{})}),It(this.states,"true","1"),It(this.states,"false","0"),e.transitions.forEach(e=>{this.transitionFactories.push(new Tt(t,e,this.states))}),this.fallbackTransition=new Tt(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[(t,e)=>!0],options:null,queryCount:0,depCount:0},this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,n){return this.transitionFactories.find(r=>r.match(t,e,i,n))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function It(t,e,i){t.hasOwnProperty(e)?t.hasOwnProperty(i)||(t[i]=t[e]):t.hasOwnProperty(i)&&(t[e]=t[i])}const Ot=new pt;class Dt{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations={},this._playersById={},this.players=[]}register(t,e){const i=[],n=ot(this._driver,e,i);if(i.length)throw new Error(`Unable to build the animation due to the following errors: ${i.join("\n")}`);this._animations[t]=n}_buildPlayer(t,e,i){const n=t.element,r=c(0,this._normalizer,0,t.keyframes,e,i);return this._driver.animate(n,r,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const n=[],r=this._animations[t];let o;const a=new Map;if(r?(o=gt(this._driver,e,r,T,M,{},{},i,Ot,n),o.forEach(t=>{const e=p(a,t.element,{});t.postStyleProps.forEach(t=>e[t]=null)})):(n.push("The requested animation doesn't exist or has already been destroyed"),o=[]),n.length)throw new Error(`Unable to create the animation due to the following errors: ${n.join("\n")}`);a.forEach((t,e)=>{Object.keys(t).forEach(i=>{t[i]=this._driver.computeStyle(e,i,s.l3)})});const c=l(o.map(t=>{const e=a.get(t.element);return this._buildPlayer(t,{},e)}));return this._playersById[t]=c,c.onDestroy(()=>this.destroy(t)),this.players.push(c),c}destroy(t){const e=this._getPlayer(t);e.destroy(),delete this._playersById[t];const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById[t];if(!e)throw new Error(`Unable to find the timeline player referenced by ${t}`);return e}listen(t,e,i,n){const r=d(e,"","","");return h(this._getPlayer(t),i,r,n),()=>{}}command(t,e,i,n){if("register"==i)return void this.register(t,n[0]);if("create"==i)return void this.create(t,e,n[0]||{});const r=this._getPlayer(t);switch(i){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(t)}}}const Rt="ng-animate-queued",Nt="ng-animate-disabled",Pt=".ng-animate-disabled",Ft=[],Zt={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Bt={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0};class Ut{constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=null!=(n=i?t.value:t)?n:null,i){const e=F(t);delete e.value,this.options=e}else this.options={};var n;this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const t=this.options.params;Object.keys(e).forEach(i=>{null==t[i]&&(t[i]=e[i])})}}}const qt="void",zt=new Ut(qt);class Ht{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,Jt(e,this._hostClassName)}listen(t,e,i,n){if(!this._triggers.hasOwnProperty(e))throw new Error(`Unable to listen on the animation trigger event "${i}" because the animation trigger "${e}" doesn't exist!`);if(null==i||0==i.length)throw new Error(`Unable to listen on the animation trigger "${e}" because the provided event is undefined!`);if("start"!=(r=i)&&"done"!=r)throw new Error(`The provided animation trigger event "${i}" for the animation trigger "${e}" is not supported!`);var r;const s=p(this._elementListeners,t,[]),o={name:e,phase:i,callback:n};s.push(o);const a=p(this._engine.statesByElement,t,{});return a.hasOwnProperty(e)||(Jt(t,L),Jt(t,"ng-trigger-"+e),a[e]=zt),()=>{this._engine.afterFlush(()=>{const t=s.indexOf(o);t>=0&&s.splice(t,1),this._triggers[e]||delete a[e]})}}register(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)}_getTrigger(t){const e=this._triggers[t];if(!e)throw new Error(`The provided animation trigger "${t}" has not been registered!`);return e}trigger(t,e,i,n=!0){const r=this._getTrigger(e),s=new Gt(this.id,e,t);let o=this._engine.statesByElement.get(t);o||(Jt(t,L),Jt(t,"ng-trigger-"+e),this._engine.statesByElement.set(t,o={}));let a=o[e];const l=new Ut(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&a&&l.absorbOptions(a.options),o[e]=l,a||(a=zt),l.value!==qt&&a.value===l.value){if(!function(t,e){const i=Object.keys(t),n=Object.keys(e);if(i.length!=n.length)return!1;for(let r=0;r{z(t,i),q(t,n)})}return}const c=p(this._engine.playersByElement,t,[]);c.forEach(t=>{t.namespaceId==this.id&&t.triggerName==e&&t.queued&&t.destroy()});let h=r.matchTransition(a.value,l.value,t,l.params),u=!1;if(!h){if(!n)return;h=r.fallbackTransition,u=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:h,fromState:a,toState:l,player:s,isFallbackTransition:u}),u||(Jt(t,Rt),s.onStart(()=>{Xt(t,Rt)})),s.onDone(()=>{let e=this.players.indexOf(s);e>=0&&this.players.splice(e,1);const i=this._engine.playersByElement.get(t);if(i){let t=i.indexOf(s);t>=0&&i.splice(t,1)}}),this.players.push(s),c.push(s),s}deregister(t){delete this._triggers[t],this._engine.statesByElement.forEach((e,i)=>{delete e[t]}),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(e=>e.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(t=>t.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,I,!0);i.forEach(t=>{if(t.__ng_removed)return;const i=this._engine.fetchNamespacesByElement(t);i.size?i.forEach(i=>i.triggerLeaveAnimation(t,e,!1,!0)):this.clearElementCache(t)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(t=>this.clearElementCache(t)))}triggerLeaveAnimation(t,e,i,n){const r=this._engine.statesByElement.get(t);if(r){const s=[];if(Object.keys(r).forEach(e=>{if(this._triggers[e]){const i=this.trigger(t,e,qt,n);i&&s.push(i)}}),s.length)return this._engine.markElementAsRemoved(this.id,t,!0,e),i&&l(s).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const n=new Set;e.forEach(e=>{const r=e.name;if(n.has(r))return;n.add(r);const s=this._triggers[r].fallbackTransition,o=i[r]||zt,a=new Ut(qt),l=new Gt(this.id,r,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:r,transition:s,fromState:o,toState:a,player:l,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let n=!1;if(i.totalAnimations){const e=i.players.length?i.playersByQueriedElement.get(t):[];if(e&&e.length)n=!0;else{let e=t;for(;e=e.parentNode;)if(i.statesByElement.get(e)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(t),n)i.markElementAsRemoved(this.id,t,!1,e);else{const n=t.__ng_removed;n&&n!==Zt||(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Jt(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const n=i.player;if(n.destroyed)return;const r=i.element,s=this._elementListeners.get(r);s&&s.forEach(e=>{if(e.name==i.triggerName){const n=d(r,i.triggerName,i.fromState.value,i.toState.value);n._data=t,h(i.player,e.phase,n,e.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):e.push(i)}),this._queue=[],e.sort((t,e)=>{const i=t.transition.ast.depCount,n=e.transition.ast.depCount;return 0==i||0==n?i-n:this._engine.driver.containsElement(t.element,e.element)?1:-1})}destroy(t){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(e=>e.element===t)||e,e}}class Yt{constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(t,e)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(e=>{e.queued&&t.push(e)})}),t}createNamespace(t,e){const i=new Ht(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList.length-1;if(i>=0){let n=!1;for(let r=i;r>=0;r--)if(this.driver.containsElement(this._namespaceList[r].hostElement,e)){this._namespaceList.splice(r+1,0,t),n=!0;break}n||this._namespaceList.splice(0,0,t)}else this._namespaceList.push(t);return this.namespacesByHostElement.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let n=this._namespaceLookup[t];n&&n.register(e,i)&&this.totalAnimations++}destroy(t,e){if(!t)return;const i=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[t];const e=this._namespaceList.indexOf(i);e>=0&&this._namespaceList.splice(e,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i){const t=Object.keys(i);for(let n=0;n=0&&this.collectedLeaveElements.splice(t,1)}if(t){const n=this._fetchNamespace(t);n&&n.insertNode(e,i)}n&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Jt(t,Nt)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Xt(t,Nt))}removeNode(t,e,i,n){if(jt(e)){const r=t?this._fetchNamespace(t):null;if(r?r.removeNode(e,n):this.markElementAsRemoved(t,e,!1,n),i){const i=this.namespacesByHostElement.get(e);i&&i.id!==t&&i.removeNode(e,n)}}else this._onRemovalComplete(e,n)}markElementAsRemoved(t,e,i,n){this.collectedLeaveElements.push(e),e.__ng_removed={namespaceId:t,setForRemoval:n,hasAnimation:i,removedBeforeQueried:!1}}listen(t,e,i,n,r){return jt(e)?this._fetchNamespace(t).listen(e,i,n,r):()=>{}}_buildInstruction(t,e,i,n,r){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,n,t.fromState.options,t.toState.options,e,r)}destroyInnerAnimations(t){let e=this.driver.query(t,I,!0);e.forEach(t=>this.destroyActiveAnimationsForElement(t)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,D,!0),e.forEach(t=>this.finishActiveQueriedAnimationOnElement(t)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(t=>{t.queued?t.markedForDestroy=!0:t.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(t=>t.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return l(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t.__ng_removed;if(e&&e.setForRemoval){if(t.__ng_removed=Zt,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}this.driver.matchesElement(t,Pt)&&this.markElementAsDisabled(t,!1),this.driver.query(t,Pt,!0).forEach(t=>{this.markElementAsDisabled(t,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((t,e)=>this._balanceNamespaceList(t,e)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;it()),this._flushFns=[],this._whenQuietFns.length){const t=this._whenQuietFns;this._whenQuietFns=[],e.length?l(e).onDone(()=>{t.forEach(t=>t())}):t.forEach(t=>t())}}reportError(t){throw new Error(`Unable to process animations due to the following failed trigger transitions\n ${t.join("\n")}`)}_flushAnimations(t,e){const i=new pt,n=[],r=new Map,o=[],a=new Map,c=new Map,h=new Map,u=new Set;this.disabledNodes.forEach(t=>{u.add(t);const e=this.driver.query(t,".ng-animate-queued",!0);for(let i=0;i{const i=T+y++;g.set(e,i),t.forEach(t=>Jt(t,i))});const b=[],v=new Set,_=new Set;for(let s=0;sv.add(t)):_.add(t))}const w=new Map,x=Wt(f,Array.from(v));x.forEach((t,e)=>{const i=M+y++;w.set(e,i),t.forEach(t=>Jt(t,i))}),t.push(()=>{m.forEach((t,e)=>{const i=g.get(e);t.forEach(t=>Xt(t,i))}),x.forEach((t,e)=>{const i=w.get(e);t.forEach(t=>Xt(t,i))}),b.forEach(t=>{this.processLeaveNode(t)})});const C=[],A=[];for(let s=this._namespaceList.length-1;s>=0;s--)this._namespaceList[s].drainQueuedTransitions(e).forEach(t=>{const e=t.player,r=t.element;if(C.push(e),this.collectedEnterElements.length){const t=r.__ng_removed;if(t&&t.setForMove)return void e.destroy()}const s=!d||!this.driver.containsElement(d,r),l=w.get(r),u=g.get(r),f=this._buildInstruction(t,i,u,l,s);if(f.errors&&f.errors.length)A.push(f);else{if(s)return e.onStart(()=>z(r,f.fromStyles)),e.onDestroy(()=>q(r,f.toStyles)),void n.push(e);if(t.isFallbackTransition)return e.onStart(()=>z(r,f.fromStyles)),e.onDestroy(()=>q(r,f.toStyles)),void n.push(e);f.timelines.forEach(t=>t.stretchStartingKeyframe=!0),i.append(r,f.timelines),o.push({instruction:f,player:e,element:r}),f.queriedElements.forEach(t=>p(a,t,[]).push(e)),f.preStyleProps.forEach((t,e)=>{const i=Object.keys(t);if(i.length){let t=c.get(e);t||c.set(e,t=new Set),i.forEach(e=>t.add(e))}}),f.postStyleProps.forEach((t,e)=>{const i=Object.keys(t);let n=h.get(e);n||h.set(e,n=new Set),i.forEach(t=>n.add(t))})}});if(A.length){const t=[];A.forEach(e=>{t.push(`@${e.triggerName} has failed due to:\n`),e.errors.forEach(e=>t.push(`- ${e}\n`))}),C.forEach(t=>t.destroy()),this.reportError(t)}const S=new Map,E=new Map;o.forEach(t=>{const e=t.element;i.has(e)&&(E.set(e,e),this._beforeAnimationBuild(t.player.namespaceId,t.instruction,S))}),n.forEach(t=>{const e=t.element;this._getPreviousPlayers(e,!1,t.namespaceId,t.triggerName,null).forEach(t=>{p(S,e,[]).push(t),t.destroy()})});const k=b.filter(t=>te(t,c,h)),L=new Map;Qt(L,this.driver,_,h,s.l3).forEach(t=>{te(t,c,h)&&k.push(t)});const I=new Map;m.forEach((t,e)=>{Qt(I,this.driver,new Set(t),c,s.k1)}),k.forEach(t=>{const e=L.get(t),i=I.get(t);L.set(t,Object.assign(Object.assign({},e),i))});const O=[],R=[],N={};o.forEach(t=>{const{element:e,player:s,instruction:o}=t;if(i.has(e)){if(u.has(e))return s.onDestroy(()=>q(e,o.toStyles)),s.disabled=!0,s.overrideTotalTime(o.totalTime),void n.push(s);let t=N;if(E.size>1){let i=e;const n=[];for(;i=i.parentNode;){const e=E.get(i);if(e){t=e;break}n.push(i)}n.forEach(e=>E.set(e,t))}const i=this._buildAnimation(s.namespaceId,o,S,r,I,L);if(s.setRealPlayer(i),t===N)O.push(s);else{const e=this.playersByElement.get(t);e&&e.length&&(s.parentPlayer=l(e)),n.push(s)}}else z(e,o.fromStyles),s.onDestroy(()=>q(e,o.toStyles)),R.push(s),u.has(e)&&n.push(s)}),R.forEach(t=>{const e=r.get(t.element);if(e&&e.length){const i=l(e);t.setRealPlayer(i)}}),n.forEach(t=>{t.parentPlayer?t.syncPlayerEvents(t.parentPlayer):t.destroy()});for(let s=0;s!t.destroyed);n.length?Kt(this,t,n):this.processLeaveNode(t)}return b.length=0,O.forEach(t=>{this.players.push(t),t.onDone(()=>{t.destroy();const e=this.players.indexOf(t);this.players.splice(e,1)}),t.play()}),O}elementContainsData(t,e){let i=!1;const n=e.__ng_removed;return n&&n.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(t).elementContainsData(e)||i}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,n,r){let s=[];if(e){const e=this.playersByQueriedElement.get(t);e&&(s=e)}else{const e=this.playersByElement.get(t);if(e){const t=!r||r==qt;e.forEach(e=>{e.queued||(t||e.triggerName==n)&&s.push(e)})}}return(i||n)&&(s=s.filter(t=>!(i&&i!=t.namespaceId||n&&n!=t.triggerName))),s}_beforeAnimationBuild(t,e,i){const n=e.element,r=e.isRemovalTransition?void 0:t,s=e.isRemovalTransition?void 0:e.triggerName;for(const o of e.timelines){const t=o.element,a=t!==n,l=p(i,t,[]);this._getPreviousPlayers(t,a,r,s,e.toState).forEach(t=>{const e=t.getRealPlayer();e.beforeDestroy&&e.beforeDestroy(),t.destroy(),l.push(t)})}z(n,e.fromStyles)}_buildAnimation(t,e,i,n,r,o){const a=e.triggerName,h=e.element,u=[],d=new Set,f=new Set,m=e.timelines.map(e=>{const l=e.element;d.add(l);const p=l.__ng_removed;if(p&&p.removedBeforeQueried)return new s.ZN(e.duration,e.delay);const m=l!==h,g=function(t){const e=[];return $t(t,e),e}((i.get(l)||Ft).map(t=>t.getRealPlayer())).filter(t=>!!t.element&&t.element===l),y=r.get(l),b=o.get(l),v=c(0,this._normalizer,0,e.keyframes,y,b),_=this._buildPlayer(e,v,g);if(e.subTimeline&&n&&f.add(l),m){const e=new Gt(t,a,l);e.setRealPlayer(_),u.push(e)}return _});u.forEach(t=>{p(this.playersByQueriedElement,t.element,[]).push(t),t.onDone(()=>function(t,e,i){let n;if(t instanceof Map){if(n=t.get(e),n){if(n.length){const t=n.indexOf(i);n.splice(t,1)}0==n.length&&t.delete(e)}}else if(n=t[e],n){if(n.length){const t=n.indexOf(i);n.splice(t,1)}0==n.length&&delete t[e]}return n}(this.playersByQueriedElement,t.element,t))}),d.forEach(t=>Jt(t,O));const g=l(m);return g.onDestroy(()=>{d.forEach(t=>Xt(t,O)),q(h,e.toStyles)}),f.forEach(t=>{p(n,t,[]).push(g)}),g}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new s.ZN(t.duration,t.delay)}}class Gt{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new s.ZN,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(e=>{this._queuedCallbacks[e].forEach(i=>h(t,e,void 0,i))}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){p(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function jt(t){return t&&1===t.nodeType}function Vt(t,e){const i=t.style.display;return t.style.display=null!=e?e:"none",i}function Qt(t,e,i,n,r){const s=[];i.forEach(t=>s.push(Vt(t)));const o=[];n.forEach((i,n)=>{const s={};i.forEach(t=>{const i=s[t]=e.computeStyle(n,t,r);i&&0!=i.length||(n.__ng_removed=Bt,o.push(n))}),t.set(n,s)});let a=0;return i.forEach(t=>Vt(t,s[a++])),o}function Wt(t,e){const i=new Map;if(t.forEach(t=>i.set(t,[])),0==e.length)return i;const n=new Set(e),r=new Map;function s(t){if(!t)return 1;let e=r.get(t);if(e)return e;const o=t.parentNode;return e=i.has(o)?o:n.has(o)?1:s(o),r.set(t,e),e}return e.forEach(t=>{const e=s(t);1!==e&&i.get(e).push(t)}),i}function Jt(t,e){if(t.classList)t.classList.add(e);else{let i=t.$$classes;i||(i=t.$$classes={}),i[e]=!0}}function Xt(t,e){if(t.classList)t.classList.remove(e);else{let i=t.$$classes;i&&delete i[e]}}function Kt(t,e,i){l(i).onDone(()=>t.processLeaveNode(e))}function $t(t,e){for(let i=0;ir.add(t)):e.set(t,n),i.delete(t),!0}class ee{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._triggerCache={},this.onRemovalComplete=(t,e)=>{},this._transitionEngine=new Yt(t,e,i),this._timelineEngine=new Dt(t,e,i),this._transitionEngine.onRemovalComplete=(t,e)=>this.onRemovalComplete(t,e)}registerTrigger(t,e,i,n,r){const s=t+"-"+n;let o=this._triggerCache[s];if(!o){const t=[],e=ot(this._driver,r,t);if(t.length)throw new Error(`The animation trigger "${n}" has failed to build due to the following errors:\n - ${t.join("\n - ")}`);o=function(t,e){return new Lt(t,e)}(n,e),this._triggerCache[s]=o}this._transitionEngine.registerTrigger(e,n,o)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,n){this._transitionEngine.insertNode(t,e,i,n)}onRemove(t,e,i,n){this._transitionEngine.removeNode(t,e,n||!1,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,n){if("@"==i.charAt(0)){const[t,r]=f(i);this._timelineEngine.command(t,e,r,n)}else this._transitionEngine.trigger(t,e,i,n)}listen(t,e,i,n,r){if("@"==i.charAt(0)){const[t,n]=f(i);return this._timelineEngine.listen(t,e,n,r)}return this._transitionEngine.listen(t,e,i,n,r)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}function ie(t,e){let i=null,n=null;return Array.isArray(e)&&e.length?(i=re(e[0]),e.length>1&&(n=re(e[e.length-1]))):e&&(i=re(e)),i||n?new ne(t,i,n):null}let ne=(()=>{class t{constructor(e,i,n){this._element=e,this._startStyles=i,this._endStyles=n,this._state=0;let r=t.initialStylesByElement.get(e);r||t.initialStylesByElement.set(e,r={}),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&q(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(q(this._element,this._initialStyles),this._endStyles&&(q(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(z(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(z(this._element,this._endStyles),this._endStyles=null),q(this._element,this._initialStyles),this._state=3)}}return t.initialStylesByElement=new WeakMap,t})();function re(t){let e=null;const i=Object.keys(t);for(let n=0;nthis._handleCallback(t)}apply(){!function(t,e){const i=fe(t,"").trim();i.length&&(function(t,e){let i=0;for(let n=0;n=this._delay&&i>=this._duration&&this.finish()}finish(){this._finished||(this._finished=!0,this._onDoneFn(),de(this._element,this._eventFn,!0))}destroy(){this._destroyed||(this._destroyed=!0,this.finish(),function(t,e){const i=fe(t,"").split(","),n=ue(i,e);n>=0&&(i.splice(n,1),pe(t,"",i.join(",")))}(this._element,this._name))}}function ce(t,e,i){pe(t,"PlayState",i,he(t,e))}function he(t,e){const i=fe(t,"");return i.indexOf(",")>0?ue(i.split(","),e):ue([i],e)}function ue(t,e){for(let i=0;i=0)return i;return-1}function de(t,e,i){i?t.removeEventListener(ae,e):t.addEventListener(ae,e)}function pe(t,e,i,n){const r=oe+e;if(null!=n){const e=t.style[r];if(e.length){const t=e.split(",");t[n]=i,i=t.join(",")}}t.style[r]=i}function fe(t,e){return t.style[oe+e]||""}class me{constructor(t,e,i,n,r,s,o,a){this.element=t,this.keyframes=e,this.animationName=i,this._duration=n,this._delay=r,this._finalStyles=o,this._specialStyles=a,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this.currentSnapshot={},this._state=0,this.easing=s||"linear",this.totalTime=n+r,this._buildStyler()}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}destroy(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}_flushDoneFns(){this._onDoneFns.forEach(t=>t()),this._onDoneFns=[]}_flushStartFns(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}finish(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())}setPosition(t){this._styler.setPosition(t)}getPosition(){return this._styler.getPosition()}hasStarted(){return this._state>=2}init(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())}play(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()}pause(){this.init(),this._styler.pause()}restart(){this.reset(),this.play()}reset(){this._state=0,this._styler.destroy(),this._buildStyler(),this._styler.apply()}_buildStyler(){this._styler=new le(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",()=>this.finish())}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}beforeDestroy(){this.init();const t={};if(this.hasStarted()){const e=this._state>=3;Object.keys(this._finalStyles).forEach(i=>{"offset"!=i&&(t[i]=e?this._finalStyles[i]:$(this.element,i))})}this.currentSnapshot=t}}class ge extends s.ZN{constructor(t,e){super(),this.element=t,this._startingStyles={},this.__initialized=!1,this._styles=S(e)}init(){!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach(t=>{this._startingStyles[t]=this.element.style[t]}),super.init())}play(){this._startingStyles&&(this.init(),Object.keys(this._styles).forEach(t=>this.element.style.setProperty(t,this._styles[t])),super.play())}destroy(){this._startingStyles&&(Object.keys(this._startingStyles).forEach(t=>{const e=this._startingStyles[t];e?this.element.style.setProperty(t,e):this.element.style.removeProperty(t)}),this._startingStyles=null,super.destroy())}}class ye{constructor(){this._count=0}validateStyleProperty(t){return w(t)}matchesElement(t,e){return x(t,e)}containsElement(t,e){return C(t,e)}query(t,e,i){return A(t,e,i)}computeStyle(t,e,i){return window.getComputedStyle(t)[e]}buildKeyframeElement(t,e,i){i=i.map(t=>S(t));let n=`@keyframes ${e} {\n`,r="";i.forEach(t=>{r=" ";const e=parseFloat(t.offset);n+=`${r}${100*e}% {\n`,r+=" ",Object.keys(t).forEach(e=>{const i=t[e];switch(e){case"offset":return;case"easing":return void(i&&(n+=`${r}animation-timing-function: ${i};\n`));default:return void(n+=`${r}${e}: ${i};\n`)}}),n+=`${r}}\n`}),n+="}\n";const s=document.createElement("style");return s.textContent=n,s}animate(t,e,i,n,r,s=[],o){const a=s.filter(t=>t instanceof me),l={};J(i,n)&&a.forEach(t=>{let e=t.currentSnapshot;Object.keys(e).forEach(t=>l[t]=e[t])});const c=function(t){let e={};return t&&(Array.isArray(t)?t:[t]).forEach(t=>{Object.keys(t).forEach(i=>{"offset"!=i&&"easing"!=i&&(e[i]=t[i])})}),e}(e=X(t,e,l));if(0==i)return new ge(t,c);const h="gen_css_kf_"+this._count++,u=this.buildKeyframeElement(t,h,e);(function(t){var e;const i=null===(e=t.getRootNode)||void 0===e?void 0:e.call(t);return"undefined"!=typeof ShadowRoot&&i instanceof ShadowRoot?i:document.head})(t).appendChild(u);const d=ie(t,e),p=new me(t,e,h,i,n,r,c,d);return p.onDestroy(()=>{var t;(t=u).parentNode.removeChild(t)}),p}}class be{constructor(t,e,i,n){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=n,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(t,e,i){return t.animate(e,i)}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(e=>{"offset"!=e&&(t[e]=this._finished?this._finalKeyframe[e]:$(this.element,e))}),this.currentSnapshot=t}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}}class ve{constructor(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(_e().toString()),this._cssKeyframesDriver=new ye}validateStyleProperty(t){return w(t)}matchesElement(t,e){return x(t,e)}containsElement(t,e){return C(t,e)}query(t,e,i){return A(t,e,i)}computeStyle(t,e,i){return window.getComputedStyle(t)[e]}overrideWebAnimationsSupport(t){this._isNativeImpl=t}animate(t,e,i,n,r,s=[],o){if(!o&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(t,e,i,n,r,s);const a={duration:i,delay:n,fill:0==n?"both":"forwards"};r&&(a.easing=r);const l={},c=s.filter(t=>t instanceof be);J(i,n)&&c.forEach(t=>{let e=t.currentSnapshot;Object.keys(e).forEach(t=>l[t]=e[t])});const h=ie(t,e=X(t,e=e.map(t=>Z(t,!1)),l));return new be(t,e,a,h)}}function _e(){return o()&&Element.prototype.animate||{}}var we=i(1511);let xe=(()=>{class t extends s._j{constructor(t,e){super(),this._nextAnimationId=0,this._renderer=t.createRenderer(e.body,{id:"0",encapsulation:n.ifc.None,styles:[],data:{animation:[]}})}build(t){const e=this._nextAnimationId.toString();this._nextAnimationId++;const i=Array.isArray(t)?(0,s.vP)(t):t;return Se(this._renderer,null,e,"register",[i]),new Ce(e,this._renderer)}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(n.FYo),n.LFG(we.K0))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})();class Ce extends s.LC{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new Ae(this._id,t,e||{},this._renderer)}}class Ae{constructor(t,e,i,n){this.id=t,this.element=e,this._renderer=n,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return Se(this._renderer,this.element,this.id,t,e)}onDone(t){this._listen("done",t)}onStart(t){this._listen("start",t)}onDestroy(t){this._listen("destroy",t)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(t){this._command("setPosition",t)}getPosition(){var t,e;return null!==(e=null===(t=this._renderer.engine.players[+this.id])||void 0===t?void 0:t.getPosition())&&void 0!==e?e:0}}function Se(t,e,i,n,r){return t.setProperty(e,`@@${i}:${n}`,r)}const Ee="@",ke="@.disabled";let Te=(()=>{class t{constructor(t,e,i){this.delegate=t,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),e.onRemovalComplete=(t,e)=>{e&&e.parentNode(t)&&e.removeChild(t.parentNode,t)}}createRenderer(t,e){const i=this.delegate.createRenderer(t,e);if(!(t&&e&&e.data&&e.data.animation)){let t=this._rendererCache.get(i);return t||(t=new Me("",i,this.engine),this._rendererCache.set(i,t)),t}const n=e.id,r=e.id+"-"+this._currentId;this._currentId++,this.engine.register(r,t);const s=e=>{Array.isArray(e)?e.forEach(s):this.engine.registerTrigger(n,r,t,e.name,e)};return e.data.animation.forEach(s),new Le(this,r,i,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,i){t>=0&&te(i)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(t=>{const[e,i]=t;e(i)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([e,i]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(n.FYo),n.LFG(ee),n.LFG(n.R0b))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})();class Me{constructor(t,e,i){this.namespaceId=t,this.delegate=e,this.engine=i,this.destroyNode=this.delegate.destroyNode?t=>e.destroyNode(t):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,n=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,n)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,n){this.delegate.setAttribute(t,e,i,n)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,n){this.delegate.setStyle(t,e,i,n)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){e.charAt(0)==Ee&&e==ke?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class Le extends Me{constructor(t,e,i,n){super(e,i,n),this.factory=t,this.namespaceId=e}setProperty(t,e,i){e.charAt(0)==Ee?"."==e.charAt(1)&&e==ke?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.substr(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if(e.charAt(0)==Ee){const n=function(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(t);let r=e.substr(1),s="";return r.charAt(0)!=Ee&&([r,s]=function(t){const e=t.indexOf(".");return[t.substring(0,e),t.substr(e+1)]}(r)),this.engine.listen(this.namespaceId,n,r,s,t=>{this.factory.scheduleListenerCallback(t._data||-1,i,t)})}return this.delegate.listen(t,e,i)}}let Ie=(()=>{class t extends ee{constructor(t,e,i){super(t.body,e,i)}ngOnDestroy(){this.flush()}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(we.K0),n.LFG(k),n.LFG(Ct))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})();const Oe=new n.OlP("AnimationModuleType"),De=[{provide:s._j,useClass:xe},{provide:Ct,useFactory:function(){return new At}},{provide:ee,useClass:Ie},{provide:n.FYo,useFactory:function(t,e,i){return new Te(t,e,i)},deps:[r.se,ee,n.R0b]}],Re=[{provide:k,useFactory:function(){return"function"==typeof _e()?new ve:new ye}},{provide:Oe,useValue:"BrowserAnimations"},...De],Ne=[{provide:k,useClass:E},{provide:Oe,useValue:"NoopAnimations"},...De];let Pe=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?Ne:Re}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({providers:Re,imports:[r.b2]}),t})()},269:(t,e,i)=>{"use strict";i.d(e,{b2:()=>Y,H7:()=>B,t6:()=>D,q6:()=>z,se:()=>C});var n=i(1511),r=i(1572);class s extends n.w_{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class o extends s{static makeCurrent(){(0,n.HT)(new o)}onAndCancel(t,e,i){return t.addEventListener(e,i,!1),()=>{t.removeEventListener(e,i,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=(l=l||document.querySelector("base"),l?l.getAttribute("href"):null);return null==e?null:function(t){a=a||document.createElement("a"),a.setAttribute("href",t);const e=a.pathname;return"/"===e.charAt(0)?e:`/${e}`}(e)}resetBaseElement(){l=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return(0,n.Mx)(document.cookie,t)}}let a,l=null;const c=new r.OlP("TRANSITION_ID"),h=[{provide:r.ip1,useFactory:function(t,e,i){return()=>{i.get(r.CZH).donePromise.then(()=>{const i=(0,n.q)();Array.prototype.slice.apply(e.querySelectorAll("style[ng-transition]")).filter(e=>e.getAttribute("ng-transition")===t).forEach(t=>i.remove(t))})}},deps:[c,n.K0,r.zs3],multi:!0}];class u{static init(){(0,r.VLi)(new u)}addToWindow(t){r.dqk.getAngularTestability=(e,i=!0)=>{const n=t.findTestabilityInTree(e,i);if(null==n)throw new Error("Could not find testability for element.");return n},r.dqk.getAllAngularTestabilities=()=>t.getAllTestabilities(),r.dqk.getAllAngularRootElements=()=>t.getAllRootElements(),r.dqk.frameworkStabilizers||(r.dqk.frameworkStabilizers=[]),r.dqk.frameworkStabilizers.push(t=>{const e=r.dqk.getAllAngularTestabilities();let i=e.length,n=!1;const s=function(e){n=n||e,i--,0==i&&t(n)};e.forEach(function(t){t.whenStable(s)})})}findTestabilityInTree(t,e,i){if(null==e)return null;const r=t.getTestability(e);return null!=r?r:i?(0,n.q)().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null}}let d=(()=>{class t{build(){return new XMLHttpRequest}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();const p=new r.OlP("EventManagerPlugins");let f=(()=>{class t{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,i){return this._findPluginFor(e).addEventListener(t,e,i)}addGlobalEventListener(t,e,i){return this._findPluginFor(e).addGlobalEventListener(t,e,i)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const i=this._plugins;for(let n=0;n{class t{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),y=(()=>{class t extends g{constructor(t){super(),this._doc=t,this._hostNodes=new Map,this._hostNodes.set(t.head,[])}_addStylesToHost(t,e,i){t.forEach(t=>{const n=this._doc.createElement("style");n.textContent=t,i.push(e.appendChild(n))})}addHost(t){const e=[];this._addStylesToHost(this._stylesSet,t,e),this._hostNodes.set(t,e)}removeHost(t){const e=this._hostNodes.get(t);e&&e.forEach(b),this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach((e,i)=>{this._addStylesToHost(t,i,e)})}ngOnDestroy(){this._hostNodes.forEach(t=>t.forEach(b))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.K0))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();function b(t){(0,n.q)().remove(t)}const v={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},_=/%COMP%/g;function w(t,e,i){for(let n=0;n{if("__ngUnwrap__"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let C=(()=>{class t{constructor(t,e,i){this.eventManager=t,this.sharedStylesHost=e,this.appId=i,this.rendererByCompId=new Map,this.defaultRenderer=new A(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case r.ifc.Emulated:{let i=this.rendererByCompId.get(e.id);return i||(i=new S(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,i)),i.applyToHost(t),i}case 1:case r.ifc.ShadowDom:return new E(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=w(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(f),r.LFG(y),r.LFG(r.AFp))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();class A{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(v[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,i){t&&t.insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?document.querySelector(t):t;if(!i)throw new Error(`The selector "${t}" did not match any elements`);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,n){if(n){e=n+":"+e;const r=v[n];r?t.setAttributeNS(r,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const n=v[i];n?t.removeAttributeNS(n,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,n){n&(r.JOm.DashCase|r.JOm.Important)?t.style.setProperty(e,i,n&r.JOm.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&r.JOm.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){t[e]=i}setValue(t,e){t.nodeValue=e}listen(t,e,i){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,x(i)):this.eventManager.addEventListener(t,e,x(i))}}class S extends A{constructor(t,e,i,n){super(t),this.component=i;const r=w(n+"-"+i.id,i.styles,[]);e.addStyles(r),this.contentAttr="_ngcontent-%COMP%".replace(_,n+"-"+i.id),this.hostAttr="_nghost-%COMP%".replace(_,n+"-"+i.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}class E extends A{constructor(t,e,i,n){super(t),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const r=w(n.id,n.styles,[]);for(let s=0;s{class t extends m{constructor(t){super(t)}supports(t){return!0}addEventListener(t,e,i){return t.addEventListener(e,i,!1),()=>this.removeEventListener(t,e,i)}removeEventListener(t,e,i){return t.removeEventListener(e,i)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.K0))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();const T={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0,doubletap:!0},M=new r.OlP("HammerGestureConfig"),L=new r.OlP("HammerLoader");let I=(()=>{class t{constructor(){this.events=[],this.overrides={}}buildHammer(t){const e=new Hammer(t,this.options);e.get("pinch").set({enable:!0}),e.get("rotate").set({enable:!0});for(const i in this.overrides)e.get(i).set(this.overrides[i]);return e}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();const O=[{provide:p,useClass:(()=>{class t extends m{constructor(t,e,i,n){super(t),this._config=e,this.console=i,this.loader=n,this._loaderPromise=null}supports(t){return!(!T.hasOwnProperty(t.toLowerCase())&&!this.isCustomEvent(t)||!window.Hammer&&!this.loader)}addEventListener(t,e,i){const n=this.manager.getZone();if(e=e.toLowerCase(),!window.Hammer&&this.loader){this._loaderPromise=this._loaderPromise||this.loader();let n=!1,r=()=>{n=!0};return this._loaderPromise.then(()=>{window.Hammer?n||(r=this.addEventListener(t,e,i)):r=()=>{}}).catch(()=>{r=()=>{}}),()=>{r()}}return n.runOutsideAngular(()=>{const r=this._config.buildHammer(t),s=function(t){n.runGuarded(function(){i(t)})};return r.on(e,s),()=>{r.off(e,s),"function"==typeof r.destroy&&r.destroy()}})}isCustomEvent(t){return this._config.events.indexOf(t)>-1}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.K0),r.LFG(M),r.LFG(r.c2e),r.LFG(L,8))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),multi:!0,deps:[n.K0,M,r.c2e,[new r.FiY,L]]},{provide:M,useClass:I,deps:[]}];let D=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({providers:O}),t})();const R=["alt","control","meta","shift"],N={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},P={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},F={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let Z=(()=>{class t extends m{constructor(t){super(t)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,r){const s=t.parseEventName(i),o=t.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,n.q)().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const i=e.toLowerCase().split("."),n=i.shift();if(0===i.length||"keydown"!==n&&"keyup"!==n)return null;const r=t._normalizeKey(i.pop());let s="";if(R.forEach(t=>{const e=i.indexOf(t);e>-1&&(i.splice(e,1),s+=t+".")}),s+=r,0!=i.length||0===r.length)return null;const o={};return o.domEventName=n,o.fullKey=s,o}static getEventFullKey(t){let e="",i=function(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&P.hasOwnProperty(e)&&(e=P[e]))}return N[e]||e}(t);return i=i.toLowerCase()," "===i?i="space":"."===i&&(i="dot"),R.forEach(n=>{n!=i&&(0,F[n])(t)&&(e+=n+".")}),e+=i,e}static eventCallback(e,i,n){return r=>{t.getEventFullKey(r)===e&&n.runGuarded(()=>i(r))}}static _normalizeKey(t){switch(t){case"esc":return"escape";default:return t}}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.K0))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),B=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=(0,r.Yz7)({factory:function(){return(0,r.LFG)(q)},token:t,providedIn:"root"}),t})();function U(t){return new q(t.get(n.K0))}let q=(()=>{class t extends B{constructor(t){super(),this._doc=t}sanitize(t,e){if(null==e)return null;switch(t){case r.q3G.NONE:return e;case r.q3G.HTML:return(0,r.qzn)(e,"HTML")?(0,r.z3N)(e):(0,r.EiD)(this._doc,String(e)).toString();case r.q3G.STYLE:return(0,r.qzn)(e,"Style")?(0,r.z3N)(e):e;case r.q3G.SCRIPT:if((0,r.qzn)(e,"Script"))return(0,r.z3N)(e);throw new Error("unsafe value used in a script context");case r.q3G.URL:return(0,r.yhl)(e),(0,r.qzn)(e,"URL")?(0,r.z3N)(e):(0,r.mCW)(String(e));case r.q3G.RESOURCE_URL:if((0,r.qzn)(e,"ResourceURL"))return(0,r.z3N)(e);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${t} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(t){return(0,r.JVY)(t)}bypassSecurityTrustStyle(t){return(0,r.L6k)(t)}bypassSecurityTrustScript(t){return(0,r.eBb)(t)}bypassSecurityTrustUrl(t){return(0,r.LAX)(t)}bypassSecurityTrustResourceUrl(t){return(0,r.pB0)(t)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(n.K0))},t.\u0275prov=(0,r.Yz7)({factory:function(){return U((0,r.LFG)(r.gxx))},token:t,providedIn:"root"}),t})();const z=(0,r.eFA)(r._c5,"browser",[{provide:r.Lbi,useValue:n.bD},{provide:r.g9A,useValue:function(){o.makeCurrent(),u.init()},multi:!0},{provide:n.K0,useFactory:function(){return(0,r.RDi)(document),document},deps:[]}]),H=[[],{provide:r.zSh,useValue:"root"},{provide:r.qLn,useFactory:function(){return new r.qLn},deps:[]},{provide:p,useClass:k,multi:!0,deps:[n.K0,r.R0b,r.Lbi]},{provide:p,useClass:Z,multi:!0,deps:[n.K0]},[],{provide:C,useClass:C,deps:[f,y,r.AFp]},{provide:r.FYo,useExisting:C},{provide:g,useExisting:y},{provide:y,useClass:y,deps:[n.K0]},{provide:r.dDg,useClass:r.dDg,deps:[r.R0b]},{provide:f,useClass:f,deps:[p,r.R0b]},{provide:n.JF,useClass:d,deps:[]},[]];let Y=(()=>{class t{constructor(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(e){return{ngModule:t,providers:[{provide:r.AFp,useValue:e.appId},{provide:c,useExisting:r.AFp},h]}}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(t,12))},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({providers:H,imports:[n.ez,r.hGG]}),t})();"undefined"!=typeof window&&window},6853:(t,e,i)=>{"use strict";i.d(e,{gz:()=>Gt,gk:()=>q,m2:()=>U,Q3:()=>z,OD:()=>B,Av:()=>V,F0:()=>pi,rH:()=>fi,Od:()=>yi,yS:()=>mi,Bz:()=>Ti,lC:()=>bi});var n=i(1511),r=i(1572),s=i(9162),o=i(2391),a=i(6042),l=i(3386),c=i(4659);function h(){return(0,l.e)(function(t,e){var i=null;t._refCount++;var n=new c.Q(e,void 0,void 0,void 0,function(){if(!t||t._refCount<=0||0<--t._refCount)i=null;else{var n=t._connection,r=i;i=null,!n||r&&n!==r||n.unsubscribe(),e.unsubscribe()}});t.subscribe(n),n.closed||(i=t.connect())})}var u=function(t){function e(e,i){var n=t.call(this)||this;return n.source=e,n.subjectFactory=i,n._subject=null,n._refCount=0,n._connection=null,(0,l.A)(e)&&(n.lift=e.lift),n}return(0,s.ZT)(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype._teardown=function(){this._refCount=0;var t=this._connection;this._subject=this._connection=null,null==t||t.unsubscribe()},e.prototype.connect=function(){var t=this,e=this._connection;if(!e){e=this._connection=new a.w0;var i=this.getSubject();e.add(this.source.subscribe(new c.Q(i,void 0,function(){t._teardown(),i.complete()},function(e){t._teardown(),i.error(e)},function(){return t._teardown()}))),e.closed&&(this._connection=null,e=a.w0.EMPTY)}return e},e.prototype.refCount=function(){return h()(this)},e}(o.y),d=i(5630),p=i(2041),f=i(7425),m=i(5868),g=i(7325),y=i(5613),b=i(970),v=i(4951),_=i(9666),w=i(8868);function x(t){return t<=0?function(){return v.E}:(0,l.e)(function(e,i){var n=[];e.subscribe(new c.Q(i,function(e){n.push(e),tt.length)return null;if("full"===i.pathMatch&&(e.hasChildren()||n.lengthn[e]===t)}return t===e}function lt(t){return Array.prototype.concat.apply([],t)}function ct(t){return t.length>0?t[t.length-1]:null}function ht(t,e){for(const i in t)t.hasOwnProperty(i)&&e(t[i],i)}function ut(t){return(0,r.CqO)(t)?t:(0,r.QGY)(t)?(0,d.Dp)(Promise.resolve(t)):(0,p.of)(t)}const dt={exact:function t(e,i,n){if(!wt(e.segments,i.segments))return!1;if(!yt(e.segments,i.segments,n))return!1;if(e.numberOfChildren!==i.numberOfChildren)return!1;for(const r in i.children){if(!e.children[r])return!1;if(!t(e.children[r],i.children[r],n))return!1}return!0},subset:mt},pt={exact:function(t,e){return ot(t,e)},subset:function(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(i=>at(t[i],e[i]))},ignored:()=>!0};function ft(t,e,i){return dt[i.paths](t.root,e.root,i.matrixParams)&&pt[i.queryParams](t.queryParams,e.queryParams)&&!("exact"===i.fragment&&t.fragment!==e.fragment)}function mt(t,e,i){return gt(t,e,e.segments,i)}function gt(t,e,i,n){if(t.segments.length>i.length){const r=t.segments.slice(0,i.length);return!!wt(r,i)&&!e.hasChildren()&&!!yt(r,i,n)}if(t.segments.length===i.length){if(!wt(t.segments,i))return!1;if(!yt(t.segments,i,n))return!1;for(const i in e.children){if(!t.children[i])return!1;if(!mt(t.children[i],e.children[i],n))return!1}return!0}{const r=i.slice(0,t.segments.length),s=i.slice(t.segments.length);return!!wt(t.segments,r)&&!!yt(t.segments,r,n)&&!!t.children.primary&>(t.children.primary,e,s,n)}}function yt(t,e,i){return e.every((e,n)=>pt[i](t[n].parameters,e.parameters))}class bt{constructor(t,e,i){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=nt(this.queryParams)),this._queryParamMap}toString(){return At.serialize(this)}}class vt{constructor(t,e){this.segments=t,this.children=e,this.parent=null,ht(e,(t,e)=>t.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return St(this)}}class _t{constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=nt(this.parameters)),this._parameterMap}toString(){return Ot(this)}}function wt(t,e){return t.length===e.length&&t.every((t,i)=>t.path===e[i].path)}class xt{}class Ct{parse(t){const e=new Ft(t);return new bt(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){var e;return`/${Et(t.root,!0)}${function(t){const e=Object.keys(t).map(e=>{const i=t[e];return Array.isArray(i)?i.map(t=>`${Tt(e)}=${Tt(t)}`).join("&"):`${Tt(e)}=${Tt(i)}`}).filter(t=>!!t);return e.length?`?${e.join("&")}`:""}(t.queryParams)}${"string"==typeof t.fragment?`#${e=t.fragment,encodeURI(e)}`:""}`}}const At=new Ct;function St(t){return t.segments.map(t=>Ot(t)).join("/")}function Et(t,e){if(!t.hasChildren())return St(t);if(e){const e=t.children.primary?Et(t.children.primary,!1):"",i=[];return ht(t.children,(t,e)=>{e!==et&&i.push(`${e}:${Et(t,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function(t,e){let i=[];return ht(t.children,(t,n)=>{n===et&&(i=i.concat(e(t,n)))}),ht(t.children,(t,n)=>{n!==et&&(i=i.concat(e(t,n)))}),i}(t,(e,i)=>i===et?[Et(t.children.primary,!1)]:[`${i}:${Et(e,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children.primary?`${St(t)}/${e[0]}`:`${St(t)}/(${e.join("//")})`}}function kt(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Tt(t){return kt(t).replace(/%3B/gi,";")}function Mt(t){return kt(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Lt(t){return decodeURIComponent(t)}function It(t){return Lt(t.replace(/\+/g,"%20"))}function Ot(t){return`${Mt(t.path)}${e=t.parameters,Object.keys(e).map(t=>`;${Mt(t)}=${Mt(e[t])}`).join("")}`;var e}const Dt=/^[^\/()?;=#]+/;function Rt(t){const e=t.match(Dt);return e?e[0]:""}const Nt=/^[^=?&#]+/,Pt=/^[^?&#]+/;class Ft{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new vt([],{}):new vt([],this.parseChildren())}parseQueryParams(){const t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i.primary=new vt(t,e)),i}parseSegment(){const t=Rt(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(t),new _t(Lt(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const e=Rt(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const t=Rt(this.remaining);t&&(i=t,this.capture(i))}t[Lt(e)]=Lt(i)}parseQueryParam(t){const e=function(t){const e=t.match(Nt);return e?e[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const t=function(t){const e=t.match(Pt);return e?e[0]:""}(this.remaining);t&&(i=t,this.capture(i))}const n=It(e),r=It(i);if(t.hasOwnProperty(n)){let e=t[n];Array.isArray(e)||(e=[e],t[n]=e),e.push(r)}else t[n]=r}parseParens(t){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=Rt(this.remaining),n=this.remaining[i.length];if("/"!==n&&")"!==n&&";"!==n)throw new Error(`Cannot parse url '${this.url}'`);let r;i.indexOf(":")>-1?(r=i.substr(0,i.indexOf(":")),this.capture(r),this.capture(":")):t&&(r=et);const s=this.parseChildren();e[r]=1===Object.keys(s).length?s.primary:new vt([],s),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)}capture(t){if(!this.consumeOptional(t))throw new Error(`Expected "${t}".`)}}class Zt{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){const e=Bt(t,this._root);return e?e.children.map(t=>t.value):[]}firstChild(t){const e=Bt(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){const e=Ut(t,this._root);return e.length<2?[]:e[e.length-2].children.map(t=>t.value).filter(e=>e!==t)}pathFromRoot(t){return Ut(t,this._root).map(t=>t.value)}}function Bt(t,e){if(t===e.value)return e;for(const i of e.children){const e=Bt(t,i);if(e)return e}return null}function Ut(t,e){if(t===e.value)return[e];for(const i of e.children){const n=Ut(t,i);if(n.length)return n.unshift(e),n}return[]}class qt{constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}}function zt(t){const e={};return t&&t.children.forEach(t=>e[t.value.outlet]=t),e}class Ht extends Zt{constructor(t,e){super(t),this.snapshot=e,Wt(this,t)}toString(){return this.snapshot.toString()}}function Yt(t,e){const i=function(t,e){const i=new Vt([],{},{},"",{},et,e,null,t.root,-1,{});return new Qt("",new qt(i,[]))}(t,e),n=new f.X([new _t("",{})]),r=new f.X({}),s=new f.X({}),o=new f.X({}),a=new f.X(""),l=new Gt(n,r,o,a,s,et,e,i.root);return l.snapshot=i.root,new Ht(new qt(l,[]),i)}class Gt{constructor(t,e,i,n,r,s,o,a){this.url=t,this.params=e,this.queryParams=i,this.fragment=n,this.data=r,this.outlet=s,this.component=o,this._futureSnapshot=a}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe((0,E.U)(t=>nt(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe((0,E.U)(t=>nt(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function jt(t,e="emptyOnly"){const i=t.pathFromRoot;let n=0;if("always"!==e)for(n=i.length-1;n>=1;){const t=i[n],e=i[n-1];if(t.routeConfig&&""===t.routeConfig.path)n--;else{if(e.component)break;n--}}return function(t){return t.reduce((t,e)=>({params:Object.assign(Object.assign({},t.params),e.params),data:Object.assign(Object.assign({},t.data),e.data),resolve:Object.assign(Object.assign({},t.resolve),e._resolvedData)}),{params:{},data:{},resolve:{}})}(i.slice(n))}class Vt{constructor(t,e,i,n,r,s,o,a,l,c,h){this.url=t,this.params=e,this.queryParams=i,this.fragment=n,this.data=r,this.outlet=s,this.component=o,this.routeConfig=a,this._urlSegment=l,this._lastPathIndex=c,this._resolve=h}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=nt(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=nt(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(t=>t.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Qt extends Zt{constructor(t,e){super(e),this.url=t,Wt(this,e)}toString(){return Jt(this._root)}}function Wt(t,e){e.value._routerState=t,e.children.forEach(e=>Wt(t,e))}function Jt(t){const e=t.children.length>0?` { ${t.children.map(Jt).join(", ")} } `:"";return`${t.value}${e}`}function Xt(t){if(t.snapshot){const e=t.snapshot,i=t._futureSnapshot;t.snapshot=i,ot(e.queryParams,i.queryParams)||t.queryParams.next(i.queryParams),e.fragment!==i.fragment&&t.fragment.next(i.fragment),ot(e.params,i.params)||t.params.next(i.params),function(t,e){if(t.length!==e.length)return!1;for(let i=0;iot(t.parameters,n[e].parameters))&&!(!t.parent!=!e.parent)&&(!t.parent||Kt(t.parent,e.parent))}function $t(t,e,i){if(i&&t.shouldReuseRoute(e.value,i.value.snapshot)){const n=i.value;n._futureSnapshot=e.value;const r=function(t,e,i){return e.children.map(e=>{for(const n of i.children)if(t.shouldReuseRoute(e.value,n.value.snapshot))return $t(t,e,n);return $t(t,e)})}(t,e,i);return new qt(n,r)}{if(t.shouldAttach(e.value)){const i=t.retrieve(e.value);if(null!==i){const t=i.route;return te(e,t),t}}const i=new Gt(new f.X((n=e.value).url),new f.X(n.params),new f.X(n.queryParams),new f.X(n.fragment),new f.X(n.data),n.outlet,n.component,n),r=e.children.map(e=>$t(t,e));return new qt(i,r)}var n}function te(t,e){if(t.value.routeConfig!==e.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(t.children.length!==e.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");e.value._futureSnapshot=t.value;for(let i=0;i{s[e]=Array.isArray(t)?t.map(t=>`${t}`):`${t}`}),new bt(i.root===t?e:re(i.root,t,e),s,r)}function re(t,e,i){const n={};return ht(t.children,(t,r)=>{n[r]=t===e?i:re(t,e,i)}),new vt(t.segments,n)}class se{constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&ee(i[0]))throw new Error("Root segment cannot have matrix parameters");const n=i.find(ie);if(n&&n!==ct(i))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class oe{constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}}function ae(t,e,i){if(t||(t=new vt([],{})),0===t.segments.length&&t.hasChildren())return le(t,e,i);const n=function(t,e,i){let n=0,r=e;const s={match:!1,pathIndex:0,commandIndex:0};for(;r=i.length)return s;const e=t.segments[r],o=i[n];if(ie(o))break;const a=`${o}`,l=n0&&void 0===a)break;if(a&&l&&"object"==typeof l&&void 0===l.outlets){if(!de(a,l,e))return s;n+=2}else{if(!de(a,{},e))return s;n++}r++}return{match:!0,pathIndex:r,commandIndex:n}}(t,e,i),r=i.slice(n.commandIndex);if(n.match&&n.pathIndex{"string"==typeof i&&(i=[i]),null!==i&&(r[n]=ae(t.children[n],e,i))}),ht(t.children,(t,e)=>{void 0===n[e]&&(r[e]=t)}),new vt(t.segments,r)}}function ce(t,e,i){const n=t.segments.slice(0,e);let r=0;for(;r{"string"==typeof t&&(t=[t]),null!==t&&(e[i]=ce(new vt([],{}),0,t))}),e}function ue(t){const e={};return ht(t,(t,i)=>e[i]=`${t}`),e}function de(t,e,i){return t==i.path&&ot(e,i.parameters)}class pe{constructor(t,e,i,n){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=n}activate(t){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),Xt(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){const n=zt(e);t.children.forEach(t=>{const e=t.value.outlet;this.deactivateRoutes(t,n[e],i),delete n[e]}),ht(n,(t,e)=>{this.deactivateRouteAndItsChildren(t,i)})}deactivateRoutes(t,e,i){const n=t.value,r=e?e.value:null;if(n===r)if(n.component){const r=i.getContext(n.outlet);r&&this.deactivateChildRoutes(t,e,r.children)}else this.deactivateChildRoutes(t,e,i);else r&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){const i=e.getContext(t.value.outlet);if(i&&i.outlet){const e=i.outlet.detach(),n=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:e,route:t,contexts:n})}}deactivateRouteAndOutlet(t,e){const i=e.getContext(t.value.outlet),n=i&&t.value.component?i.children:e,r=zt(t);for(const s of Object.keys(r))this.deactivateRouteAndItsChildren(r[s],n);i&&i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated(),i.attachRef=null,i.resolver=null,i.route=null)}activateChildRoutes(t,e,i){const n=zt(e);t.children.forEach(t=>{this.activateRoutes(t,n[t.value.outlet],i),this.forwardEvent(new $(t.value.snapshot))}),t.children.length&&this.forwardEvent(new X(t.value.snapshot))}activateRoutes(t,e,i){const n=t.value,r=e?e.value:null;if(Xt(n),n===r)if(n.component){const r=i.getOrCreateContext(n.outlet);this.activateChildRoutes(t,e,r.children)}else this.activateChildRoutes(t,e,i);else if(n.component){const e=i.getOrCreateContext(n.outlet);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){const t=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),e.children.onOutletReAttached(t.contexts),e.attachRef=t.componentRef,e.route=t.route.value,e.outlet&&e.outlet.attach(t.componentRef,t.route.value),fe(t.route)}else{const i=function(t){for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig;if(t&&t.component)return null}return null}(n.snapshot),r=i?i.module.componentFactoryResolver:null;e.attachRef=null,e.route=n,e.resolver=r,e.outlet&&e.outlet.activateWith(n,r),this.activateChildRoutes(t,null,e.children)}}else this.activateChildRoutes(t,null,i)}}function fe(t){Xt(t.value),t.children.forEach(fe)}class me{constructor(t,e){this.routes=t,this.module=e}}function ge(t){return"function"==typeof t}function ye(t){return t instanceof bt}const be=Symbol("INITIAL_VALUE");function ve(){return(0,k.w)(t=>(0,m.a)(t.map(t=>t.pipe((0,T.q)(1),(0,M.O)(be)))).pipe((0,L.R)((t,e)=>{let i=!1;return e.reduce((t,n,r)=>{if(t!==be)return t;if(n===be&&(i=!0),!i){if(!1===n)return n;if(r===e.length-1||ye(n))return n}return t},t)},be),(0,w.h)(t=>t!==be),(0,E.U)(t=>ye(t)?t:!0===t),(0,T.q)(1)))}let _e=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=r.Xpm({type:t,selectors:[["ng-component"]],decls:1,vars:0,template:function(t,e){1&t&&r._UZ(0,"router-outlet")},directives:function(){return[bi]},encapsulation:2}),t})();function we(t,e=""){for(let i=0;iSe(t)===e);return i.push(...t.filter(t=>Se(t)!==e)),i}const ke={matched:!1,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};function Te(t,e,i){var n;if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||i.length>0)?Object.assign({},ke):{matched:!0,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};const r=(e.matcher||st)(i,t,e);if(!r)return Object.assign({},ke);const s={};ht(r.posParams,(t,e)=>{s[e]=t.path});const o=r.consumed.length>0?Object.assign(Object.assign({},s),r.consumed[r.consumed.length-1].parameters):s;return{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,parameters:o,positionalParamSegments:null!==(n=r.posParams)&&void 0!==n?n:{}}}function Me(t,e,i,n,r="corrected"){if(i.length>0&&function(t,e,i){return i.some(i=>Le(t,e,i)&&Se(i)!==et)}(t,i,n)){const r=new vt(e,function(t,e,i,n){const r={};r.primary=n,n._sourceSegment=t,n._segmentIndexShift=e.length;for(const s of i)if(""===s.path&&Se(s)!==et){const i=new vt([],{});i._sourceSegment=t,i._segmentIndexShift=e.length,r[Se(s)]=i}return r}(t,e,n,new vt(i,t.children)));return r._sourceSegment=t,r._segmentIndexShift=e.length,{segmentGroup:r,slicedSegments:[]}}if(0===i.length&&function(t,e,i){return i.some(i=>Le(t,e,i))}(t,i,n)){const s=new vt(t.segments,function(t,e,i,n,r,s){const o={};for(const a of n)if(Le(t,i,a)&&!r[Se(a)]){const i=new vt([],{});i._sourceSegment=t,i._segmentIndexShift="legacy"===s?t.segments.length:e.length,o[Se(a)]=i}return Object.assign(Object.assign({},r),o)}(t,e,i,n,t.children,r));return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:i}}const s=new vt(t.segments,t.children);return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:i}}function Le(t,e,i){return(!(t.hasChildren()||e.length>0)||"full"!==i.pathMatch)&&""===i.path}function Ie(t,e,i,n){return!!(Se(t)===n||n!==et&&Le(e,i,t))&&("**"===t.path||Te(e,t,i).matched)}function Oe(t,e,i){return 0===e.length&&!t.children[i]}class De{constructor(t){this.segmentGroup=t||null}}class Re{constructor(t){this.urlTree=t}}function Ne(t){return new o.y(e=>e.error(new De(t)))}function Pe(t){return new o.y(e=>e.error(new Re(t)))}function Fe(t){return new o.y(e=>e.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${t}'`)))}class Ze{constructor(t,e,i,n,s){this.configLoader=e,this.urlSerializer=i,this.urlTree=n,this.config=s,this.allowRedirects=!0,this.ngModule=t.get(r.h0i)}apply(){const t=Me(this.urlTree.root,[],[],this.config).segmentGroup,e=new vt(t.segments,t.children);return this.expandSegmentGroup(this.ngModule,this.config,e,et).pipe((0,E.U)(t=>this.createUrlTree(Be(t),this.urlTree.queryParams,this.urlTree.fragment))).pipe((0,I.K)(t=>{if(t instanceof Re)return this.allowRedirects=!1,this.match(t.urlTree);if(t instanceof De)throw this.noMatchError(t);throw t}))}match(t){return this.expandSegmentGroup(this.ngModule,this.config,t.root,et).pipe((0,E.U)(e=>this.createUrlTree(Be(e),t.queryParams,t.fragment))).pipe((0,I.K)(t=>{if(t instanceof De)throw this.noMatchError(t);throw t}))}noMatchError(t){return new Error(`Cannot match any routes. URL Segment: '${t.segmentGroup}'`)}createUrlTree(t,e,i){const n=t.segments.length>0?new vt([],{[et]:t}):t;return new bt(n,e,i)}expandSegmentGroup(t,e,i,n){return 0===i.segments.length&&i.hasChildren()?this.expandChildren(t,e,i).pipe((0,E.U)(t=>new vt([],t))):this.expandSegment(t,i,e,i.segments,n,!0)}expandChildren(t,e,i){const n=[];for(const r of Object.keys(i.children))"primary"===r?n.unshift(r):n.push(r);return(0,d.Dp)(n).pipe((0,O.b)(n=>{const r=i.children[n],s=Ee(e,n);return this.expandSegmentGroup(t,s,r,n).pipe((0,E.U)(t=>({segment:t,outlet:n})))}),(0,L.R)((t,e)=>(t[e.outlet]=e.segment,t),{}),function(t,e){var i=arguments.length>=2;return function(n){return n.pipe(t?(0,w.h)(function(e,i){return t(e,i,n)}):S.y,x(1),i?(0,A.d)(e):(0,C.T)(function(){return new g.K}))}}())}expandSegment(t,e,i,n,r,s){return(0,d.Dp)(i).pipe((0,O.b)(o=>this.expandSegmentAgainstRoute(t,e,i,o,n,r,s).pipe((0,I.K)(t=>{if(t instanceof De)return(0,p.of)(null);throw t}))),(0,D.P)(t=>!!t),(0,I.K)((t,i)=>{if(t instanceof g.K||"EmptyError"===t.name){if(Oe(e,n,r))return(0,p.of)(new vt([],{}));throw new De(e)}throw t}))}expandSegmentAgainstRoute(t,e,i,n,r,s,o){return Ie(n,e,r,s)?void 0===n.redirectTo?this.matchSegmentAgainstRoute(t,e,n,r,s):o&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,i,n,r,s):Ne(e):Ne(e)}expandSegmentAgainstRouteUsingRedirect(t,e,i,n,r,s){return"**"===n.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,i,n,s):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,n,r,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,e,i,n){const r=this.applyRedirectCommands([],i.redirectTo,{});return i.redirectTo.startsWith("/")?Pe(r):this.lineralizeSegments(i,r).pipe((0,R.z)(i=>{const r=new vt(i,{});return this.expandSegment(t,r,e,i,n,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,n,r,s){const{matched:o,consumedSegments:a,lastChild:l,positionalParamSegments:c}=Te(e,n,r);if(!o)return Ne(e);const h=this.applyRedirectCommands(a,n.redirectTo,c);return n.redirectTo.startsWith("/")?Pe(h):this.lineralizeSegments(n,h).pipe((0,R.z)(n=>this.expandSegment(t,e,i,n.concat(r.slice(l)),s,!1)))}matchSegmentAgainstRoute(t,e,i,n,r){if("**"===i.path)return i.loadChildren?(i._loadedConfig?(0,p.of)(i._loadedConfig):this.configLoader.load(t.injector,i)).pipe((0,E.U)(t=>(i._loadedConfig=t,new vt(n,{})))):(0,p.of)(new vt(n,{}));const{matched:s,consumedSegments:o,lastChild:a}=Te(e,i,n);if(!s)return Ne(e);const l=n.slice(a);return this.getChildConfig(t,i,n).pipe((0,R.z)(t=>{const n=t.module,s=t.routes,{segmentGroup:a,slicedSegments:c}=Me(e,o,l,s),h=new vt(a.segments,a.children);if(0===c.length&&h.hasChildren())return this.expandChildren(n,s,h).pipe((0,E.U)(t=>new vt(o,t)));if(0===s.length&&0===c.length)return(0,p.of)(new vt(o,{}));const u=Se(i)===r;return this.expandSegment(n,h,s,c,u?et:r,!0).pipe((0,E.U)(t=>new vt(o.concat(t.segments),t.children)))}))}getChildConfig(t,e,i){return e.children?(0,p.of)(new me(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?(0,p.of)(e._loadedConfig):this.runCanLoadGuards(t.injector,e,i).pipe((0,R.z)(i=>i?this.configLoader.load(t.injector,e).pipe((0,E.U)(t=>(e._loadedConfig=t,t))):function(t){return new o.y(e=>e.error(rt(`Cannot load children because the guard of the route "path: '${t.path}'" returned false`)))}(e))):(0,p.of)(new me([],t))}runCanLoadGuards(t,e,i){const n=e.canLoad;if(!n||0===n.length)return(0,p.of)(!0);const r=n.map(n=>{const r=t.get(n);let s;if(function(t){return t&&ge(t.canLoad)}(r))s=r.canLoad(e,i);else{if(!ge(r))throw new Error("Invalid CanLoad guard");s=r(e,i)}return ut(s)});return(0,p.of)(r).pipe(ve(),(0,N.b)(t=>{if(!ye(t))return;const e=rt(`Redirecting to "${this.urlSerializer.serialize(t)}"`);throw e.url=t,e}),(0,E.U)(t=>!0===t))}lineralizeSegments(t,e){let i=[],n=e.root;for(;;){if(i=i.concat(n.segments),0===n.numberOfChildren)return(0,p.of)(i);if(n.numberOfChildren>1||!n.children.primary)return Fe(t.redirectTo);n=n.children.primary}}applyRedirectCommands(t,e,i){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,i)}applyRedirectCreatreUrlTree(t,e,i,n){const r=this.createSegmentGroup(t,e.root,i,n);return new bt(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){const i={};return ht(t,(t,n)=>{if("string"==typeof t&&t.startsWith(":")){const r=t.substring(1);i[n]=e[r]}else i[n]=t}),i}createSegmentGroup(t,e,i,n){const r=this.createSegments(t,e.segments,i,n);let s={};return ht(e.children,(e,r)=>{s[r]=this.createSegmentGroup(t,e,i,n)}),new vt(r,s)}createSegments(t,e,i,n){return e.map(e=>e.path.startsWith(":")?this.findPosParam(t,e,n):this.findOrReturn(e,i))}findPosParam(t,e,i){const n=i[e.path.substring(1)];if(!n)throw new Error(`Cannot redirect to '${t}'. Cannot find '${e.path}'.`);return n}findOrReturn(t,e){let i=0;for(const n of e){if(n.path===t.path)return e.splice(i),n;i++}return t}}function Be(t){const e={};for(const i of Object.keys(t.children)){const n=Be(t.children[i]);(n.segments.length>0||n.hasChildren())&&(e[i]=n)}return function(t){if(1===t.numberOfChildren&&t.children.primary){const e=t.children.primary;return new vt(t.segments.concat(e.segments),e.children)}return t}(new vt(t.segments,e))}class Ue{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class qe{constructor(t,e){this.component=t,this.route=e}}function ze(t,e,i){const n=t._root;return Ye(n,e?e._root:null,i,[n.value])}function He(t,e,i){const n=function(t){if(!t)return null;for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig}return null}(e);return(n?n.module.injector:i).get(t)}function Ye(t,e,i,n,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=zt(e);return t.children.forEach(t=>{!function(t,e,i,n,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=t.value,o=e?e.value:null,a=i?i.getContext(t.value.outlet):null;if(o&&s.routeConfig===o.routeConfig){const l=function(t,e,i){if("function"==typeof i)return i(t,e);switch(i){case"pathParamsChange":return!wt(t.url,e.url);case"pathParamsOrQueryParamsChange":return!wt(t.url,e.url)||!ot(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Kt(t,e)||!ot(t.queryParams,e.queryParams);case"paramsChange":default:return!Kt(t,e)}}(o,s,s.routeConfig.runGuardsAndResolvers);l?r.canActivateChecks.push(new Ue(n)):(s.data=o.data,s._resolvedData=o._resolvedData),Ye(t,e,s.component?a?a.children:null:i,n,r),l&&a&&a.outlet&&a.outlet.isActivated&&r.canDeactivateChecks.push(new qe(a.outlet.component,o))}else o&&Ge(e,a,r),r.canActivateChecks.push(new Ue(n)),Ye(t,null,s.component?a?a.children:null:i,n,r)}(t,s[t.value.outlet],i,n.concat([t.value]),r),delete s[t.value.outlet]}),ht(s,(t,e)=>Ge(t,i.getContext(e),r)),r}function Ge(t,e,i){const n=zt(t),r=t.value;ht(n,(t,n)=>{Ge(t,r.component?e?e.children.getContext(n):null:e,i)}),i.canDeactivateChecks.push(new qe(r.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,r))}class je{}function Ve(t){return new o.y(e=>e.error(t))}class Qe{constructor(t,e,i,n,r,s){this.rootComponentType=t,this.config=e,this.urlTree=i,this.url=n,this.paramsInheritanceStrategy=r,this.relativeLinkResolution=s}recognize(){const t=Me(this.urlTree.root,[],[],this.config.filter(t=>void 0===t.redirectTo),this.relativeLinkResolution).segmentGroup,e=this.processSegmentGroup(this.config,t,et);if(null===e)return null;const i=new Vt([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},et,this.rootComponentType,null,this.urlTree.root,-1,{}),n=new qt(i,e),r=new Qt(this.url,n);return this.inheritParamsAndData(r._root),r}inheritParamsAndData(t){const e=t.value,i=jt(e,this.paramsInheritanceStrategy);e.params=Object.freeze(i.params),e.data=Object.freeze(i.data),t.children.forEach(t=>this.inheritParamsAndData(t))}processSegmentGroup(t,e,i){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,i)}processChildren(t,e){const i=[];for(const r of Object.keys(e.children)){const n=e.children[r],s=Ee(t,r),o=this.processSegmentGroup(s,n,r);if(null===o)return null;i.push(...o)}const n=Je(i);return n.sort((t,e)=>t.value.outlet===et?-1:e.value.outlet===et?1:t.value.outlet.localeCompare(e.value.outlet)),n}processSegment(t,e,i,n){for(const r of t){const t=this.processSegmentAgainstRoute(r,e,i,n);if(null!==t)return t}return Oe(e,i,n)?[]:null}processSegmentAgainstRoute(t,e,i,n){if(t.redirectTo||!Ie(t,e,i,n))return null;let r,s=[],o=[];if("**"===t.path){const n=i.length>0?ct(i).parameters:{};r=new Vt(i,n,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,$e(t),Se(t),t.component,t,Xe(e),Ke(e)+i.length,ti(t))}else{const n=Te(e,t,i);if(!n.matched)return null;s=n.consumedSegments,o=i.slice(n.lastChild),r=new Vt(s,n.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,$e(t),Se(t),t.component,t,Xe(e),Ke(e)+s.length,ti(t))}const a=function(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}(t),{segmentGroup:l,slicedSegments:c}=Me(e,s,o,a.filter(t=>void 0===t.redirectTo),this.relativeLinkResolution);if(0===c.length&&l.hasChildren()){const t=this.processChildren(a,l);return null===t?null:[new qt(r,t)]}if(0===a.length&&0===c.length)return[new qt(r,[])];const h=Se(t)===n,u=this.processSegment(a,l,c,h?et:n);return null===u?null:[new qt(r,u)]}}function We(t){const e=t.value.routeConfig;return e&&""===e.path&&void 0===e.redirectTo}function Je(t){const e=[],i=new Set;for(const n of t){if(!We(n)){e.push(n);continue}const t=e.find(t=>n.value.routeConfig===t.value.routeConfig);void 0!==t?(t.children.push(...n.children),i.add(t)):e.push(n)}for(const n of i){const t=Je(n.children);e.push(new qt(n.value,t))}return e.filter(t=>!i.has(t))}function Xe(t){let e=t;for(;e._sourceSegment;)e=e._sourceSegment;return e}function Ke(t){let e=t,i=e._segmentIndexShift?e._segmentIndexShift:0;for(;e._sourceSegment;)e=e._sourceSegment,i+=e._segmentIndexShift?e._segmentIndexShift:0;return i-1}function $e(t){return t.data||{}}function ti(t){return t.resolve||{}}function ei(t){return(0,k.w)(e=>{const i=t(e);return i?(0,d.Dp)(i).pipe((0,E.U)(()=>e)):(0,p.of)(e)})}class ii extends class{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}}{}const ni=new r.OlP("ROUTES");class ri{constructor(t,e,i,n){this.loader=t,this.compiler=e,this.onLoadStartListener=i,this.onLoadEndListener=n}load(t,e){if(e._loader$)return e._loader$;this.onLoadStartListener&&this.onLoadStartListener(e);const i=this.loadModuleFactory(e.loadChildren).pipe((0,E.U)(i=>{this.onLoadEndListener&&this.onLoadEndListener(e);const n=i.create(t);return new me(lt(n.injector.get(ni,void 0,r.XFs.Self|r.XFs.Optional)).map(Ae),n)}),(0,I.K)(t=>{throw e._loader$=void 0,t}));return e._loader$=new u(i,()=>new _.x).pipe(h()),e._loader$}loadModuleFactory(t){return"string"==typeof t?(0,d.Dp)(this.loader.load(t)):ut(t()).pipe((0,R.z)(t=>t instanceof r.YKP?(0,p.of)(t):(0,d.Dp)(this.compiler.compileModuleAsync(t))))}}class si{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new oi,this.attachRef=null}}class oi{constructor(){this.contexts=new Map}onChildOutletCreated(t,e){const i=this.getOrCreateContext(t);i.outlet=e,this.contexts.set(t,i)}onChildOutletDestroyed(t){const e=this.getContext(t);e&&(e.outlet=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let e=this.getContext(t);return e||(e=new si,this.contexts.set(t,e)),e}getContext(t){return this.contexts.get(t)||null}}class ai{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,e){return t}}function li(t){throw t}function ci(t,e,i){return e.parse("/")}function hi(t,e){return(0,p.of)(null)}const ui={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},di={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let pi=(()=>{class t{constructor(t,e,i,n,s,o,a,l){this.rootComponentType=t,this.urlSerializer=e,this.rootContexts=i,this.location=n,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.lastLocationChangeInfo=null,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new _.x,this.errorHandler=li,this.malformedUriErrorHandler=ci,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:hi,afterPreactivation:hi},this.urlHandlingStrategy=new ai,this.routeReuseStrategy=new ii,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.ngModule=s.get(r.h0i),this.console=s.get(r.c2e);const c=s.get(r.R0b);this.isNgZoneEnabled=c instanceof r.R0b&&r.R0b.isInAngularZone(),this.resetConfig(l),this.currentUrlTree=new bt(new vt([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new ri(o,a,t=>this.triggerEvent(new Q(t)),t=>this.triggerEvent(new W(t))),this.routerState=Yt(this.currentUrlTree,this.rootComponentType),this.transitions=new f.X({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}setupNavigations(t){const e=this.events;return t.pipe((0,w.h)(t=>0!==t.id),(0,E.U)(t=>Object.assign(Object.assign({},t),{extractedUrl:this.urlHandlingStrategy.extract(t.rawUrl)})),(0,k.w)(t=>{let i=!1,n=!1;return(0,p.of)(t).pipe((0,N.b)(t=>{this.currentNavigation={id:t.id,initialUrl:t.currentRawUrl,extractedUrl:t.extractedUrl,trigger:t.source,extras:t.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),(0,k.w)(t=>{const i=!this.navigated||t.extractedUrl.toString()!==this.browserUrlTree.toString();if(("reload"===this.onSameUrlNavigation||i)&&this.urlHandlingStrategy.shouldProcessUrl(t.rawUrl))return(0,p.of)(t).pipe((0,k.w)(t=>{const i=this.transitions.getValue();return e.next(new B(t.id,this.serializeUrl(t.extractedUrl),t.source,t.restoredState)),i!==this.transitions.getValue()?v.E:Promise.resolve(t)}),(n=this.ngModule.injector,r=this.configLoader,s=this.urlSerializer,o=this.config,(0,k.w)(t=>function(t,e,i,n,r){return new Ze(t,e,i,n,r).apply()}(n,r,s,t.extractedUrl,o).pipe((0,E.U)(e=>Object.assign(Object.assign({},t),{urlAfterRedirects:e}))))),(0,N.b)(t=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:t.urlAfterRedirects})}),function(t,e,i,n,r){return(0,R.z)(s=>function(t,e,i,n,r="emptyOnly",s="legacy"){try{const o=new Qe(t,e,i,n,r,s).recognize();return null===o?Ve(new je):(0,p.of)(o)}catch(o){return Ve(o)}}(t,e,s.urlAfterRedirects,i(s.urlAfterRedirects),n,r).pipe((0,E.U)(t=>Object.assign(Object.assign({},s),{targetSnapshot:t}))))}(this.rootComponentType,this.config,t=>this.serializeUrl(t),this.paramsInheritanceStrategy,this.relativeLinkResolution),(0,N.b)(t=>{"eager"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(t.urlAfterRedirects,t),this.browserUrlTree=t.urlAfterRedirects);const i=new H(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.next(i)}));var n,r,s,o;if(i&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:i,extractedUrl:n,source:r,restoredState:s,extras:o}=t,a=new B(i,this.serializeUrl(n),r,s);e.next(a);const l=Yt(n,this.rootComponentType).snapshot;return(0,p.of)(Object.assign(Object.assign({},t),{targetSnapshot:l,urlAfterRedirects:n,extras:Object.assign(Object.assign({},o),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=t.rawUrl,this.browserUrlTree=t.urlAfterRedirects,t.resolve(null),v.E}),ei(t=>{const{targetSnapshot:e,id:i,extractedUrl:n,rawUrl:r,extras:{skipLocationChange:s,replaceUrl:o}}=t;return this.hooks.beforePreactivation(e,{navigationId:i,appliedUrlTree:n,rawUrlTree:r,skipLocationChange:!!s,replaceUrl:!!o})}),(0,N.b)(t=>{const e=new Y(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),(0,E.U)(t=>Object.assign(Object.assign({},t),{guards:ze(t.targetSnapshot,t.currentSnapshot,this.rootContexts)})),function(t,e){return(0,R.z)(i=>{const{targetSnapshot:n,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:o}}=i;return 0===o.length&&0===s.length?(0,p.of)(Object.assign(Object.assign({},i),{guardsResult:!0})):function(t,e,i,n){return(0,d.Dp)(t).pipe((0,R.z)(t=>function(t,e,i,n,r){const s=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!s||0===s.length)return(0,p.of)(!0);const o=s.map(s=>{const o=He(s,e,r);let a;if(function(t){return t&&ge(t.canDeactivate)}(o))a=ut(o.canDeactivate(t,e,i,n));else{if(!ge(o))throw new Error("Invalid CanDeactivate guard");a=ut(o(t,e,i,n))}return a.pipe((0,D.P)())});return(0,p.of)(o).pipe(ve())}(t.component,t.route,i,e,n)),(0,D.P)(t=>!0!==t,!0))}(o,n,r,t).pipe((0,R.z)(i=>i&&"boolean"==typeof i?function(t,e,i,n){return(0,d.Dp)(e).pipe((0,O.b)(e=>(0,y.z)(function(t,e){return null!==t&&e&&e(new J(t)),(0,p.of)(!0)}(e.route.parent,n),function(t,e){return null!==t&&e&&e(new K(t)),(0,p.of)(!0)}(e.route,n),function(t,e,i){const n=e[e.length-1],r=e.slice(0,e.length-1).reverse().map(t=>function(t){const e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(t)).filter(t=>null!==t).map(e=>(0,b.P)(()=>{const r=e.guards.map(r=>{const s=He(r,e.node,i);let o;if(function(t){return t&&ge(t.canActivateChild)}(s))o=ut(s.canActivateChild(n,t));else{if(!ge(s))throw new Error("Invalid CanActivateChild guard");o=ut(s(n,t))}return o.pipe((0,D.P)())});return(0,p.of)(r).pipe(ve())}));return(0,p.of)(r).pipe(ve())}(t,e.path,i),function(t,e,i){const n=e.routeConfig?e.routeConfig.canActivate:null;if(!n||0===n.length)return(0,p.of)(!0);const r=n.map(n=>(0,b.P)(()=>{const r=He(n,e,i);let s;if(function(t){return t&&ge(t.canActivate)}(r))s=ut(r.canActivate(e,t));else{if(!ge(r))throw new Error("Invalid CanActivate guard");s=ut(r(e,t))}return s.pipe((0,D.P)())}));return(0,p.of)(r).pipe(ve())}(t,e.route,i))),(0,D.P)(t=>!0!==t,!0))}(n,s,t,e):(0,p.of)(i)),(0,E.U)(t=>Object.assign(Object.assign({},i),{guardsResult:t})))})}(this.ngModule.injector,t=>this.triggerEvent(t)),(0,N.b)(t=>{if(ye(t.guardsResult)){const e=rt(`Redirecting to "${this.serializeUrl(t.guardsResult)}"`);throw e.url=t.guardsResult,e}const e=new G(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot,!!t.guardsResult);this.triggerEvent(e)}),(0,w.h)(t=>!!t.guardsResult||(this.cancelNavigationTransition(t,""),!1)),ei(t=>{if(t.guards.canActivateChecks.length)return(0,p.of)(t).pipe((0,N.b)(t=>{const e=new j(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),(0,k.w)(t=>{let e=!1;return(0,p.of)(t).pipe((i=this.paramsInheritanceStrategy,n=this.ngModule.injector,(0,R.z)(t=>{const{targetSnapshot:e,guards:{canActivateChecks:r}}=t;if(!r.length)return(0,p.of)(t);let s=0;return(0,d.Dp)(r).pipe((0,O.b)(t=>function(t,e,i,n){return function(t,e,i,n){const r=Object.keys(t);if(0===r.length)return(0,p.of)({});const s={};return(0,d.Dp)(r).pipe((0,R.z)(r=>function(t,e,i,n){const r=He(t,e,n);return ut(r.resolve?r.resolve(e,i):r(e,i))}(t[r],e,i,n).pipe((0,N.b)(t=>{s[r]=t}))),x(1),(0,R.z)(()=>Object.keys(s).length===r.length?(0,p.of)(s):v.E))}(t._resolve,t,e,n).pipe((0,E.U)(e=>(t._resolvedData=e,t.data=Object.assign(Object.assign({},t.data),jt(t,i).resolve),null)))}(t.route,e,i,n)),(0,N.b)(()=>s++),x(1),(0,R.z)(e=>s===r.length?(0,p.of)(t):v.E))})),(0,N.b)({next:()=>e=!0,complete:()=>{e||this.cancelNavigationTransition(t,"At least one route resolver didn't emit any value.")}}));var i,n}),(0,N.b)(t=>{const e=new V(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}))}),ei(t=>{const{targetSnapshot:e,id:i,extractedUrl:n,rawUrl:r,extras:{skipLocationChange:s,replaceUrl:o}}=t;return this.hooks.afterPreactivation(e,{navigationId:i,appliedUrlTree:n,rawUrlTree:r,skipLocationChange:!!s,replaceUrl:!!o})}),(0,E.U)(t=>{const e=function(t,e,i){const n=$t(t,e._root,i?i._root:void 0);return new Ht(n,e)}(this.routeReuseStrategy,t.targetSnapshot,t.currentRouterState);return Object.assign(Object.assign({},t),{targetRouterState:e})}),(0,N.b)(t=>{this.currentUrlTree=t.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.rawUrl),this.routerState=t.targetRouterState,"deferred"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,t),this.browserUrlTree=t.urlAfterRedirects)}),(r=this.rootContexts,s=this.routeReuseStrategy,o=t=>this.triggerEvent(t),(0,E.U)(t=>(new pe(s,t.targetRouterState,t.currentRouterState,o).activate(r),t))),(0,N.b)({next(){i=!0},complete(){i=!0}}),(0,P.x)(()=>{i||n||this.cancelNavigationTransition(t,`Navigation ID ${t.id} is not equal to the current navigation id ${this.navigationId}`),this.currentNavigation=null}),(0,I.K)(i=>{if(n=!0,(r=i)&&r.ngNavigationCancelingError){const n=ye(i.url);n||(this.navigated=!0,this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl));const r=new q(t.id,this.serializeUrl(t.extractedUrl),i.message);e.next(r),n?setTimeout(()=>{const e=this.urlHandlingStrategy.merge(i.url,this.rawUrlTree);this.scheduleNavigation(e,"imperative",null,{skipLocationChange:t.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy},{resolve:t.resolve,reject:t.reject,promise:t.promise})},0):t.resolve(!1)}else{this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl);const n=new z(t.id,this.serializeUrl(t.extractedUrl),i);e.next(n);try{t.resolve(this.errorHandler(i))}catch(s){t.reject(s)}}var r;return v.E}));var r,s,o}))}resetRootComponentType(t){this.rootComponentType=t,this.routerState.root.component=this.rootComponentType}getTransition(){const t=this.transitions.value;return t.urlAfterRedirects=this.browserUrlTree,t}setTransition(t){this.transitions.next(Object.assign(Object.assign({},this.getTransition()),t))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(t=>{const e=this.extractLocationChangeInfoFromEvent(t);this.shouldScheduleNavigation(this.lastLocationChangeInfo,e)&&setTimeout(()=>{const{source:t,state:i,urlTree:n}=e,r={replaceUrl:!0};if(i){const t=Object.assign({},i);delete t.navigationId,delete t.\u0275routerPageId,0!==Object.keys(t).length&&(r.state=t)}this.scheduleNavigation(n,t,i,r)},0),this.lastLocationChangeInfo=e}))}extractLocationChangeInfoFromEvent(t){var e;return{source:"popstate"===t.type?"popstate":"hashchange",urlTree:this.parseUrl(t.url),state:(null===(e=t.state)||void 0===e?void 0:e.navigationId)?t.state:null,transitionId:this.getTransition().id}}shouldScheduleNavigation(t,e){if(!t)return!0;const i=e.urlTree.toString()===t.urlTree.toString();return!(e.transitionId===t.transitionId&&i&&("hashchange"===e.source&&"popstate"===t.source||"popstate"===e.source&&"hashchange"===t.source))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(t){this.events.next(t)}resetConfig(t){we(t),this.config=t.map(Ae),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(t,e={}){const{relativeTo:i,queryParams:n,fragment:r,queryParamsHandling:s,preserveFragment:o}=e,a=i||this.routerState.root,l=o?this.currentUrlTree.fragment:r;let c=null;switch(s){case"merge":c=Object.assign(Object.assign({},this.currentUrlTree.queryParams),n);break;case"preserve":c=this.currentUrlTree.queryParams;break;default:c=n||null}return null!==c&&(c=this.removeEmptyProps(c)),function(t,e,i,n,r){if(0===i.length)return ne(e.root,e.root,e,n,r);const s=function(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new se(!0,0,t);let e=0,i=!1;const n=t.reduce((t,n,r)=>{if("object"==typeof n&&null!=n){if(n.outlets){const e={};return ht(n.outlets,(t,i)=>{e[i]="string"==typeof t?t.split("/"):t}),[...t,{outlets:e}]}if(n.segmentPath)return[...t,n.segmentPath]}return"string"!=typeof n?[...t,n]:0===r?(n.split("/").forEach((n,r)=>{0==r&&"."===n||(0==r&&""===n?i=!0:".."===n?e++:""!=n&&t.push(n))}),t):[...t,n]},[]);return new se(i,e,n)}(i);if(s.toRoot())return ne(e.root,new vt([],{}),e,n,r);const o=function(t,e,i){if(t.isAbsolute)return new oe(e.root,!0,0);if(-1===i.snapshot._lastPathIndex){const t=i.snapshot._urlSegment;return new oe(t,t===e.root,0)}const n=ee(t.commands[0])?0:1;return function(t,e,i){let n=t,r=e,s=i;for(;s>r;){if(s-=r,n=n.parent,!n)throw new Error("Invalid number of '../'");r=n.segments.length}return new oe(n,!1,r-s)}(i.snapshot._urlSegment,i.snapshot._lastPathIndex+n,t.numberOfDoubleDots)}(s,e,t),a=o.processChildren?le(o.segmentGroup,o.index,s.commands):ae(o.segmentGroup,o.index,s.commands);return ne(o.segmentGroup,a,e,n,r)}(a,this.currentUrlTree,t,c,null!=l?l:null)}navigateByUrl(t,e={skipLocationChange:!1}){const i=ye(t)?t:this.parseUrl(t),n=this.urlHandlingStrategy.merge(i,this.rawUrlTree);let r=null;return"computed"===this.canceledNavigationResolution&&(0===this.currentPageId||e.skipLocationChange||e.replaceUrl)&&(r=this.location.getState()),this.scheduleNavigation(n,"imperative",r,e)}navigate(t,e={skipLocationChange:!1}){return function(t){for(let e=0;e{const n=t[i];return null!=n&&(e[i]=n),e},{})}processNavigations(){this.navigations.subscribe(t=>{this.navigated=!0,this.lastSuccessfulId=t.id,this.currentPageId=t.targetPageId,this.events.next(new U(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,t.resolve(!0)},t=>{this.console.warn("Unhandled Navigation Error: ")})}scheduleNavigation(t,e,i,n,r){if(this.disposed)return Promise.resolve(!1);const s=this.getTransition(),o="imperative"!==e&&"imperative"===(null==s?void 0:s.source),a=(this.lastSuccessfulId===s.id||this.currentNavigation?s.rawUrl:s.urlAfterRedirects).toString()===t.toString();if(o&&a)return Promise.resolve(!0);let l,c,h;r?(l=r.resolve,c=r.reject,h=r.promise):h=new Promise((t,e)=>{l=t,c=e});const u=++this.navigationId;let d;return d="computed"===this.canceledNavigationResolution?i&&i.\u0275routerPageId?i.\u0275routerPageId:this.currentPageId+1:0,this.setTransition({id:u,targetPageId:d,source:e,restoredState:i,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:t,extras:n,resolve:l,reject:c,promise:h,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),h.catch(t=>Promise.reject(t))}setBrowserUrl(t,e){const i=this.urlSerializer.serialize(t),n=Object.assign(Object.assign({},e.extras.state),this.generateNgRouterState(e.id,e.targetPageId));this.location.isCurrentPathEqualTo(i)||e.extras.replaceUrl?this.location.replaceState(i,"",n):this.location.go(i,"",n)}resetStateAndUrl(t,e,i){this.routerState=t,this.currentUrlTree=e,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,i),this.resetUrlToCurrentUrlTree()}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}cancelNavigationTransition(t,e){"computed"===this.canceledNavigationResolution?"popstate"!==t.source&&"eager"!==this.urlUpdateStrategy||this.location.historyGo(this.currentPageId-t.targetPageId):this.resetUrlToCurrentUrlTree();const i=new q(t.id,this.serializeUrl(t.extractedUrl),e);this.triggerEvent(i),t.resolve(!1)}generateNgRouterState(t,e){return"computed"===this.canceledNavigationResolution?{navigationId:t,"\u0275routerPageId":e}:{navigationId:t}}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(r.DyG),r.LFG(xt),r.LFG(oi),r.LFG(n.Ye),r.LFG(r.zs3),r.LFG(r.v3s),r.LFG(r.Sil),r.LFG(void 0))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),fi=(()=>{class t{constructor(t,e,i,n,r){this.router=t,this.route=e,this.commands=[],this.onChanges=new _.x,null==i&&n.setAttribute(r.nativeElement,"tabindex","0")}ngOnChanges(t){this.onChanges.next(this)}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}onClick(){const t={skipLocationChange:gi(this.skipLocationChange),replaceUrl:gi(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,t),!0}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:gi(this.preserveFragment)})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(pi),r.Y36(Gt),r.$8M("tabindex"),r.Y36(r.Qsj),r.Y36(r.SBq))},t.\u0275dir=r.lG2({type:t,selectors:[["","routerLink","",5,"a",5,"area"]],hostBindings:function(t,e){1&t&&r.NdJ("click",function(){return e.onClick()})},inputs:{routerLink:"routerLink",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo"},features:[r.TTD]}),t})(),mi=(()=>{class t{constructor(t,e,i){this.router=t,this.route=e,this.locationStrategy=i,this.commands=[],this.onChanges=new _.x,this.subscription=t.events.subscribe(t=>{t instanceof U&&this.updateTargetUrlAndHref()})}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}ngOnChanges(t){this.updateTargetUrlAndHref(),this.onChanges.next(this)}ngOnDestroy(){this.subscription.unsubscribe()}onClick(t,e,i,n,r){if(0!==t||e||i||n||r)return!0;if("string"==typeof this.target&&"_self"!=this.target)return!0;const s={skipLocationChange:gi(this.skipLocationChange),replaceUrl:gi(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,s),!1}updateTargetUrlAndHref(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:gi(this.preserveFragment)})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(pi),r.Y36(Gt),r.Y36(n.S$))},t.\u0275dir=r.lG2({type:t,selectors:[["a","routerLink",""],["area","routerLink",""]],hostVars:2,hostBindings:function(t,e){1&t&&r.NdJ("click",function(t){return e.onClick(t.button,t.ctrlKey,t.shiftKey,t.altKey,t.metaKey)}),2&t&&(r.Ikx("href",e.href,r.LSH),r.uIk("target",e.target))},inputs:{routerLink:"routerLink",target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo"},features:[r.TTD]}),t})();function gi(t){return""===t||!!t}let yi=(()=>{class t{constructor(t,e,i,n,r,s){this.router=t,this.element=e,this.renderer=i,this.cdr=n,this.link=r,this.linkWithHref=s,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.routerEventsSubscription=t.events.subscribe(t=>{t instanceof U&&this.update()})}ngAfterContentInit(){(0,p.of)(this.links.changes,this.linksWithHrefs.changes,(0,p.of)(null)).pipe((0,F.J)()).subscribe(t=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){var t;null===(t=this.linkInputChangesSubscription)||void 0===t||t.unsubscribe();const e=[...this.links.toArray(),...this.linksWithHrefs.toArray(),this.link,this.linkWithHref].filter(t=>!!t).map(t=>t.onChanges);this.linkInputChangesSubscription=(0,d.Dp)(e).pipe((0,F.J)()).subscribe(t=>{this.isActive!==this.isLinkActive(this.router)(t)&&this.update()})}set routerLinkActive(t){const e=Array.isArray(t)?t:t.split(" ");this.classes=e.filter(t=>!!t)}ngOnChanges(t){this.update()}ngOnDestroy(){var t;this.routerEventsSubscription.unsubscribe(),null===(t=this.linkInputChangesSubscription)||void 0===t||t.unsubscribe()}update(){this.links&&this.linksWithHrefs&&this.router.navigated&&Promise.resolve().then(()=>{const t=this.hasActiveLinks();this.isActive!==t&&(this.isActive=t,this.cdr.markForCheck(),this.classes.forEach(e=>{t?this.renderer.addClass(this.element.nativeElement,e):this.renderer.removeClass(this.element.nativeElement,e)}))})}isLinkActive(t){const e="paths"in this.routerLinkActiveOptions?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return i=>t.isActive(i.urlTree,e)}hasActiveLinks(){const t=this.isLinkActive(this.router);return this.link&&t(this.link)||this.linkWithHref&&t(this.linkWithHref)||this.links.some(t)||this.linksWithHrefs.some(t)}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(pi),r.Y36(r.SBq),r.Y36(r.Qsj),r.Y36(r.sBO),r.Y36(fi,8),r.Y36(mi,8))},t.\u0275dir=r.lG2({type:t,selectors:[["","routerLinkActive",""]],contentQueries:function(t,e,i){if(1&t&&(r.Suo(i,fi,5),r.Suo(i,mi,5)),2&t){let t;r.iGM(t=r.CRH())&&(e.links=t),r.iGM(t=r.CRH())&&(e.linksWithHrefs=t)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",routerLinkActive:"routerLinkActive"},exportAs:["routerLinkActive"],features:[r.TTD]}),t})(),bi=(()=>{class t{constructor(t,e,i,n,s){this.parentContexts=t,this.location=e,this.resolver=i,this.changeDetector=s,this.activated=null,this._activatedRoute=null,this.activateEvents=new r.vpe,this.deactivateEvents=new r.vpe,this.name=n||et,t.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const t=this.parentContexts.getContext(this.name);t&&t.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,t}attach(t,e){this.activated=t,this._activatedRoute=e,this.location.insert(t.hostView)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,e){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=t;const i=(e=e||this.resolver).resolveComponentFactory(t._futureSnapshot.routeConfig.component),n=this.parentContexts.getOrCreateContext(this.name).children,r=new vi(t,n,this.location.injector);this.activated=this.location.createComponent(i,this.location.length,r),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(oi),r.Y36(r.s_b),r.Y36(r._Vd),r.$8M("name"),r.Y36(r.sBO))},t.\u0275dir=r.lG2({type:t,selectors:[["router-outlet"]],outputs:{activateEvents:"activate",deactivateEvents:"deactivate"},exportAs:["outlet"]}),t})();class vi{constructor(t,e,i){this.route=t,this.childContexts=e,this.parent=i}get(t,e){return t===Gt?this.route:t===oi?this.childContexts:this.parent.get(t,e)}}class _i{}class wi{preload(t,e){return(0,p.of)(null)}}let xi=(()=>{class t{constructor(t,e,i,n,r){this.router=t,this.injector=n,this.preloadingStrategy=r,this.loader=new ri(e,i,e=>t.triggerEvent(new Q(e)),e=>t.triggerEvent(new W(e)))}setUpPreloading(){this.subscription=this.router.events.pipe((0,w.h)(t=>t instanceof U),(0,O.b)(()=>this.preload())).subscribe(()=>{})}preload(){const t=this.injector.get(r.h0i);return this.processRoutes(t,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(t,e){const i=[];for(const n of e)if(n.loadChildren&&!n.canLoad&&n._loadedConfig){const t=n._loadedConfig;i.push(this.processRoutes(t.module,t.routes))}else n.loadChildren&&!n.canLoad?i.push(this.preloadConfig(t,n)):n.children&&i.push(this.processRoutes(t,n.children));return(0,d.Dp)(i).pipe((0,F.J)(),(0,E.U)(t=>{}))}preloadConfig(t,e){return this.preloadingStrategy.preload(e,()=>(e._loadedConfig?(0,p.of)(e._loadedConfig):this.loader.load(t.injector,e)).pipe((0,R.z)(t=>(e._loadedConfig=t,this.processRoutes(t.module,t.routes)))))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(pi),r.LFG(r.v3s),r.LFG(r.Sil),r.LFG(r.zs3),r.LFG(_i))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),Ci=(()=>{class t{constructor(t,e,i={}){this.router=t,this.viewportScroller=e,this.options=i,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},i.scrollPositionRestoration=i.scrollPositionRestoration||"disabled",i.anchorScrolling=i.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(t=>{t instanceof B?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof U&&(this.lastId=t.id,this.scheduleScrollEvent(t,this.router.parseUrl(t.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(t=>{t instanceof tt&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,e){this.router.triggerEvent(new tt(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,e))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(pi),r.LFG(n.EM),r.LFG(void 0))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();const Ai=new r.OlP("ROUTER_CONFIGURATION"),Si=new r.OlP("ROUTER_FORROOT_GUARD"),Ei=[n.Ye,{provide:xt,useClass:Ct},{provide:pi,useFactory:function(t,e,i,n,r,s,o,a={},l,c){const h=new pi(null,t,e,i,n,r,s,lt(o));return l&&(h.urlHandlingStrategy=l),c&&(h.routeReuseStrategy=c),function(t,e){t.errorHandler&&(e.errorHandler=t.errorHandler),t.malformedUriErrorHandler&&(e.malformedUriErrorHandler=t.malformedUriErrorHandler),t.onSameUrlNavigation&&(e.onSameUrlNavigation=t.onSameUrlNavigation),t.paramsInheritanceStrategy&&(e.paramsInheritanceStrategy=t.paramsInheritanceStrategy),t.relativeLinkResolution&&(e.relativeLinkResolution=t.relativeLinkResolution),t.urlUpdateStrategy&&(e.urlUpdateStrategy=t.urlUpdateStrategy)}(a,h),a.enableTracing&&h.events.subscribe(t=>{var e,i;null===(e=console.group)||void 0===e||e.call(console,`Router Event: ${t.constructor.name}`),console.log(t.toString()),console.log(t),null===(i=console.groupEnd)||void 0===i||i.call(console)}),h},deps:[xt,oi,n.Ye,r.zs3,r.v3s,r.Sil,ni,Ai,[class{},new r.FiY],[class{},new r.FiY]]},oi,{provide:Gt,useFactory:function(t){return t.routerState.root},deps:[pi]},{provide:r.v3s,useClass:r.EAV},xi,wi,class{preload(t,e){return e().pipe((0,I.K)(()=>(0,p.of)(null)))}},{provide:Ai,useValue:{enableTracing:!1}}];function ki(){return new r.PXZ("Router",pi)}let Ti=(()=>{class t{constructor(t,e){}static forRoot(e,i){return{ngModule:t,providers:[Ei,Oi(e),{provide:Si,useFactory:Ii,deps:[[pi,new r.FiY,new r.tp0]]},{provide:Ai,useValue:i||{}},{provide:n.S$,useFactory:Li,deps:[n.lw,[new r.tBr(n.mr),new r.FiY],Ai]},{provide:Ci,useFactory:Mi,deps:[pi,n.EM,Ai]},{provide:_i,useExisting:i&&i.preloadingStrategy?i.preloadingStrategy:wi},{provide:r.PXZ,multi:!0,useFactory:ki},[Di,{provide:r.ip1,multi:!0,useFactory:Ri,deps:[Di]},{provide:Pi,useFactory:Ni,deps:[Di]},{provide:r.tb,multi:!0,useExisting:Pi}]]}}static forChild(e){return{ngModule:t,providers:[Oi(e)]}}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(Si,8),r.LFG(pi,8))},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({}),t})();function Mi(t,e,i){return i.scrollOffset&&e.setOffset(i.scrollOffset),new Ci(t,e,i)}function Li(t,e,i={}){return i.useHash?new n.Do(t,e):new n.b0(t,e)}function Ii(t){return"guarded"}function Oi(t){return[{provide:r.deG,multi:!0,useValue:t},{provide:ni,multi:!0,useValue:t}]}let Di=(()=>{class t{constructor(t){this.injector=t,this.initNavigation=!1,this.resultOfPreactivationDone=new _.x}appInitializer(){return this.injector.get(n.V_,Promise.resolve(null)).then(()=>{let t=null;const e=new Promise(e=>t=e),i=this.injector.get(pi),n=this.injector.get(Ai);return"disabled"===n.initialNavigation?(i.setUpLocationChangeListener(),t(!0)):"enabled"===n.initialNavigation||"enabledBlocking"===n.initialNavigation?(i.hooks.afterPreactivation=()=>this.initNavigation?(0,p.of)(null):(this.initNavigation=!0,t(!0),this.resultOfPreactivationDone),i.initialNavigation()):t(!0),e})}bootstrapListener(t){const e=this.injector.get(Ai),i=this.injector.get(xi),n=this.injector.get(Ci),s=this.injector.get(pi),o=this.injector.get(r.z2F);t===o.components[0]&&("enabledNonBlocking"!==e.initialNavigation&&void 0!==e.initialNavigation||s.initialNavigation(),i.setUpPreloading(),n.init(),s.resetRootComponentType(o.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(r.zs3))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();function Ri(t){return t.appInitializer.bind(t)}function Ni(t){return t.bootstrapListener.bind(t)}const Pi=new r.OlP("Router Initializer")},7592:(t,e,i)=>{"use strict";i.d(e,{BN:()=>kt,uH:()=>Tt});var n=i(1572);function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function s(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function o(t){for(var e=1;e0;)e+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return e}function Q(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function W(t){return Object.keys(t||{}).reduce(function(e,i){return e+"".concat(i,": ").concat(t[i],";")},"")}function J(t){return t.size!==j.size||t.x!==j.x||t.y!==j.y||t.rotate!==j.rotate||t.flipX||t.flipY}function X(t){var e=t.transform,i=t.iconWidth,n={transform:"translate(".concat(t.containerWidth/2," 256)")},r="translate(".concat(32*e.x,", ").concat(32*e.y,") "),s="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),o="rotate(".concat(e.rotate," 0 0)");return{outer:n,inner:{transform:"".concat(r," ").concat(s," ").concat(o)},path:{transform:"translate(".concat(i/2*-1," -256)")}}}var K={x:0,y:0,width:"100%",height:"100%"};function $(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function tt(t){var e=t.icons,i=e.main,n=e.mask,r=t.prefix,s=t.iconName,a=t.transform,l=t.symbol,c=t.title,h=t.maskId,u=t.titleId,d=t.extra,p=t.watchable,f=void 0!==p&&p,m=n.found?n:i,g=m.width,y=m.height,b="fak"===r,v=b?"":"fa-w-".concat(Math.ceil(g/y*16)),_=[w.replacementClass,s?"".concat(w.familyPrefix,"-").concat(s):"",v].filter(function(t){return-1===d.classes.indexOf(t)}).filter(function(t){return""!==t||!!t}).concat(d.classes).join(" "),x={children:[],attributes:o({},d.attributes,{"data-prefix":r,"data-icon":s,class:_,role:d.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(g," ").concat(y)})},C=b&&!~d.classes.indexOf("fa-fw")?{width:"".concat(g/y*16*.0625,"em")}:{};f&&(x.attributes["data-fa-i2svg"]=""),c&&x.children.push({tag:"title",attributes:{id:x.attributes["aria-labelledby"]||"title-".concat(u||V())},children:[c]});var A=o({},x,{prefix:r,iconName:s,main:i,mask:n,maskId:h,transform:a,symbol:l,styles:o({},C,d.styles)}),S=n.found&&i.found?function(t){var e,i=t.children,n=t.attributes,r=t.main,s=t.mask,a=t.maskId,l=r.icon,c=s.icon,h=X({transform:t.transform,containerWidth:s.width,iconWidth:r.width}),u={tag:"rect",attributes:o({},K,{fill:"white"})},d=l.children?{children:l.children.map($)}:{},p={tag:"g",attributes:o({},h.inner),children:[$(o({tag:l.tag,attributes:o({},l.attributes,h.path)},d))]},f={tag:"g",attributes:o({},h.outer),children:[p]},m="mask-".concat(a||V()),g="clip-".concat(a||V()),y={tag:"mask",attributes:o({},K,{id:m,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[u,f]},b={tag:"defs",children:[{tag:"clipPath",attributes:{id:g},children:(e=c,"g"===e.tag?e.children:[e])},y]};return i.push(b,{tag:"rect",attributes:o({fill:"currentColor","clip-path":"url(#".concat(g,")"),mask:"url(#".concat(m,")")},K)}),{children:i,attributes:n}}(A):function(t){var e=t.children,i=t.attributes,n=t.main,r=t.transform,s=W(t.styles);if(s.length>0&&(i.style=s),J(r)){var a=X({transform:r,containerWidth:n.width,iconWidth:n.width});e.push({tag:"g",attributes:o({},a.outer),children:[{tag:"g",attributes:o({},a.inner),children:[{tag:n.icon.tag,children:n.icon.children,attributes:o({},n.icon.attributes,a.path)}]}]})}else e.push(n.icon);return{children:e,attributes:i}}(A),E=S.attributes;return A.children=S.children,A.attributes=E,l?function(t){var e=t.iconName,i=t.children,n=t.symbol;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:o({},t.attributes,{id:!0===n?"".concat(t.prefix,"-").concat(w.familyPrefix,"-").concat(e):n}),children:i}]}]}(A):function(t){var e=t.children,i=t.main,n=t.mask,r=t.attributes,s=t.styles,a=t.transform;if(J(a)&&i.found&&!n.found){var l={x:i.width/i.height/2,y:.5};r.style=W(o({},s,{"transform-origin":"".concat(l.x+a.x/16,"em ").concat(l.y+a.y/16,"em")}))}return[{tag:"svg",attributes:r,children:e}]}(A)}var et=function(t,e,i,n){var r,s,o,a=Object.keys(t),l=a.length,c=void 0!==n?function(t,e){return function(i,n,r,s){return t.call(e,i,n,r,s)}}(e,n):e;for(void 0===i?(r=1,o=t[a[0]]):(r=0,o=i);r2&&void 0!==arguments[2]?arguments[2]:{},n=i.skipHooks,r=void 0!==n&&n,s=Object.keys(e).reduce(function(t,i){var n=e[i];return n.icon?t[n.iconName]=n.icon:t[i]=n,t},{});"function"!=typeof C.hooks.addPack||r?C.styles[t]=o({},C.styles[t]||{},s):C.hooks.addPack(t,s),"fas"===t&&it("fa",e)}var nt=C.styles,rt=C.shims,st=function(){var t=function(t){return et(nt,function(e,i,n){return e[n]=et(i,t,{}),e},{})};t(function(t,e,i){return e[3]&&(t[e[3]]=i),t}),t(function(t,e,i){var n=e[2];return t[i]=i,n.forEach(function(e){t[e]=i}),t});var e="far"in nt;et(rt,function(t,i){var n=i[1];return"far"!==n||e||(n="fas"),t[i[0]]={prefix:n,iconName:i[2]},t},{})};function ot(t,e,i){if(t&&t[e]&&t[e][i])return{prefix:e,iconName:i,icon:t[e][i]}}function at(t){var e=t.tag,i=t.attributes,n=void 0===i?{}:i,r=t.children,s=void 0===r?[]:r;return"string"==typeof t?Q(t):"<".concat(e," ").concat(function(t){return Object.keys(t||{}).reduce(function(e,i){return e+"".concat(i,'="').concat(Q(t[i]),'" ')},"").trim()}(n),">").concat(s.map(at).join(""),"")}function lt(t){this.name="MissingIcon",this.message=t||"Icon unavailable",this.stack=(new Error).stack}st(),(lt.prototype=Object.create(Error.prototype)).constructor=lt;var ct={fill:"currentColor"},ht={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},ut=(o({},ct,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),o({},ht,{attributeName:"opacity"}));function dt(t){var e=t[0],i=t[1],n=a(t.slice(4),1)[0];return{found:!0,width:e,height:i,icon:Array.isArray(n)?{tag:"g",attributes:{class:"".concat(w.familyPrefix,"-").concat(b.GROUP)},children:[{tag:"path",attributes:{class:"".concat(w.familyPrefix,"-").concat(b.SECONDARY),fill:"currentColor",d:n[0]}},{tag:"path",attributes:{class:"".concat(w.familyPrefix,"-").concat(b.PRIMARY),fill:"currentColor",d:n[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:n}}}}function pt(){w.autoAddCss&&!bt&&(function(t){if(t&&f){var e=p.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;for(var i=p.head.childNodes,n=null,r=i.length-1;r>-1;r--){var s=i[r],o=(s.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(n=s)}p.head.insertBefore(e,n)}}(function(){var t="fa",e=m,i=w.familyPrefix,n=w.replacementClass,r='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';if(i!==t||n!==e){var s=new RegExp("\\.".concat(t,"\\-"),"g"),o=new RegExp("\\--".concat(t,"\\-"),"g"),a=new RegExp("\\.".concat(e),"g");r=r.replace(s,".".concat(i,"-")).replace(o,"--".concat(i,"-")).replace(a,".".concat(n))}return r}()),bt=!0)}function ft(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(function(t){return at(t)})}}),Object.defineProperty(t,"node",{get:function(){if(f){var e=p.createElement("div");return e.innerHTML=t.html,e.children}}}),t}function mt(t){var e=t.prefix,i=void 0===e?"fa":e,n=t.iconName;if(n)return ot(yt.definitions,i,n)||ot(C.styles,i,n)}o({},ct,{cx:"256",cy:"364",r:"28"}),o({},ht,{attributeName:"r",values:"28;14;28;28;14;28;"}),o({},ut,{values:"1;0;1;1;0;1;"}),o({},ct,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),o({},ut,{values:"1;0;0;0;0;1;"}),o({},ct,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),o({},ut,{values:"0;0;1;1;0;0;"});var gt,yt=new(function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.definitions={}}var e;return(e=[{key:"add",value:function(){for(var t=this,e=arguments.length,i=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{},i=e.transform,n=void 0===i?j:i,r=e.symbol,s=void 0!==r&&r,a=e.mask,l=void 0===a?null:a,c=e.maskId,h=void 0===c?null:c,u=e.title,d=void 0===u?null:u,p=e.titleId,f=void 0===p?null:p,m=e.classes,g=void 0===m?[]:m,y=e.attributes,b=void 0===y?{}:y,v=e.styles,_=void 0===v?{}:v;if(t){var x=t.prefix,C=t.iconName,A=t.icon;return ft(o({type:"icon"},t),function(){return pt(),w.autoA11y&&(d?b["aria-labelledby"]="".concat(w.replacementClass,"-title-").concat(f||V()):(b["aria-hidden"]="true",b.focusable="false")),tt({icons:{main:dt(A),mask:l?dt(l.icon):{found:!1,width:null,height:null,icon:{}}},prefix:x,iconName:C,transform:o({},j,n),symbol:s,title:d,maskId:h,titleId:f,extra:{attributes:b,styles:_,classes:g}})})}},function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=(t||{}).icon?t:mt(t||{}),n=e.mask;return n&&(n=(n||{}).icon?n:mt(n||{})),gt(i,o({},e,{mask:n}))}),_t=i(269);const wt=["*"];let xt=(()=>{class t{constructor(){this.defaultPrefix="fas",this.fallbackIcon=null,this.globalLibrary=!1}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t},token:t,providedIn:"root"}),t})(),Ct=(()=>{class t{constructor(){this.definitions={}}addIcons(...t){for(const e of t)e.prefix in this.definitions||(this.definitions[e.prefix]={}),this.definitions[e.prefix][e.iconName]=e}addIconPacks(...t){for(const e of t){const t=Object.keys(e).map(t=>e[t]);this.addIcons(...t)}}getIconDefinition(t,e){return t in this.definitions&&e in this.definitions[t]?this.definitions[t][e]:null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=(0,n.Yz7)({factory:function(){return new t},token:t,providedIn:"root"}),t})();const At=t=>{const e={"fa-spin":t.spin,"fa-pulse":t.pulse,"fa-fw":t.fixedWidth,"fa-border":t.border,"fa-inverse":t.inverse,"fa-layers-counter":t.counter,"fa-flip-horizontal":"horizontal"===t.flip||"both"===t.flip,"fa-flip-vertical":"vertical"===t.flip||"both"===t.flip,[`fa-${t.size}`]:null!==t.size,[`fa-rotate-${t.rotate}`]:null!==t.rotate,[`fa-pull-${t.pull}`]:null!==t.pull,[`fa-stack-${t.stackItemSize}`]:null!=t.stackItemSize};return Object.keys(e).map(t=>e[t]?t:null).filter(t=>t)};let St=(()=>{class t{constructor(){this.stackItemSize="1x"}ngOnChanges(t){if("size"in t)throw new Error('fa-icon is not allowed to customize size when used inside fa-stack. Set size on the enclosing fa-stack instead: ....')}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t,selectors:[["fa-icon","stackItemSize",""],["fa-duotone-icon","stackItemSize",""]],inputs:{stackItemSize:"stackItemSize",size:"size"},features:[n.TTD]}),t})(),Et=(()=>{class t{constructor(t,e){this.renderer=t,this.elementRef=e}ngOnInit(){this.renderer.addClass(this.elementRef.nativeElement,"fa-stack")}ngOnChanges(t){"size"in t&&(null!=t.size.currentValue&&this.renderer.addClass(this.elementRef.nativeElement,`fa-${t.size.currentValue}`),null!=t.size.previousValue&&this.renderer.removeClass(this.elementRef.nativeElement,`fa-${t.size.previousValue}`))}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.Qsj),n.Y36(n.SBq))},t.\u0275cmp=n.Xpm({type:t,selectors:[["fa-stack"]],inputs:{size:"size"},features:[n.TTD],ngContentSelectors:wt,decls:1,vars:0,template:function(t,e){1&t&&(n.F$t(),n.Hsn(0))},encapsulation:2}),t})(),kt=(()=>{class t{constructor(t,e,i,n,r){this.sanitizer=t,this.config=e,this.iconLibrary=i,this.stackItem=n,this.classes=[],null!=r&&null==n&&console.error('FontAwesome: fa-icon and fa-duotone-icon elements must specify stackItemSize attribute when wrapped into fa-stack. Example: .')}ngOnChanges(t){if(null==this.icon&&null==this.config.fallbackIcon)return(()=>{throw new Error("Property `icon` is required for `fa-icon`/`fa-duotone-icon` components.")})();let e=null;if(e=null==this.icon?this.config.fallbackIcon:this.icon,t){const t=this.findIconDefinition(e);if(null!=t){const e=this.buildParams();this.renderIcon(t,e)}}}render(){this.ngOnChanges({})}findIconDefinition(t){const e=((t,e)=>{return void 0!==(i=t).prefix&&void 0!==i.iconName?t:Array.isArray(t)&&2===t.length?{prefix:t[0],iconName:t[1]}:"string"==typeof t?{prefix:e,iconName:t}:void 0;var i})(t,this.config.defaultPrefix);if("icon"in e)return e;const i=this.iconLibrary.getIconDefinition(e.prefix,e.iconName);if(null!=i)return i;const n=mt(e);if(null!=n){const t="Global icon library is deprecated. Consult https://github.com/FortAwesome/angular-fontawesome/blob/master/UPGRADING.md for the migration instructions.";if("unset"===this.config.globalLibrary)console.error("FontAwesome: "+t);else if(!this.config.globalLibrary)throw new Error(t);return n}return(t=>{throw new Error(`Could not find icon with iconName=${t.iconName} and prefix=${t.prefix} in the icon library.`)})(e),null}buildParams(){const t={flip:this.flip,spin:this.spin,pulse:this.pulse,border:this.border,inverse:this.inverse,size:this.size||null,pull:this.pull||null,rotate:this.rotate||null,fixedWidth:"boolean"==typeof this.fixedWidth?this.fixedWidth:this.config.fixedWidth,stackItemSize:null!=this.stackItem?this.stackItem.stackItemSize:null},e="string"==typeof this.transform?function(t){var e={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t?t.toLowerCase().split(" ").reduce(function(t,e){var i=e.toLowerCase().split("-"),n=i[0],r=i.slice(1).join("-");if(n&&"h"===r)return t.flipX=!0,t;if(n&&"v"===r)return t.flipY=!0,t;if(r=parseFloat(r),isNaN(r))return t;switch(n){case"grow":t.size=t.size+r;break;case"shrink":t.size=t.size-r;break;case"left":t.x=t.x-r;break;case"right":t.x=t.x+r;break;case"up":t.y=t.y-r;break;case"down":t.y=t.y+r;break;case"rotate":t.rotate=t.rotate+r}return t},e):e}(this.transform):this.transform;return{title:this.title,transform:e,classes:[...At(t),...this.classes],mask:null!=this.mask?this.findIconDefinition(this.mask):null,styles:null!=this.styles?this.styles:{},symbol:this.symbol,attributes:{role:this.a11yRole}}}renderIcon(t,e){const i=vt(t,e);this.renderedIconHTML=this.sanitizer.bypassSecurityTrustHtml(i.html.join("\n"))}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(_t.H7),n.Y36(xt),n.Y36(Ct),n.Y36(St,8),n.Y36(Et,8))},t.\u0275cmp=n.Xpm({type:t,selectors:[["fa-icon"]],hostAttrs:[1,"ng-fa-icon"],hostVars:2,hostBindings:function(t,e){2&t&&(n.Ikx("innerHTML",e.renderedIconHTML,n.oJD),n.uIk("title",e.title))},inputs:{classes:"classes",icon:"icon",title:"title",spin:"spin",pulse:"pulse",mask:"mask",styles:"styles",flip:"flip",size:"size",pull:"pull",border:"border",inverse:"inverse",symbol:"symbol",rotate:"rotate",fixedWidth:"fixedWidth",transform:"transform",a11yRole:"a11yRole"},features:[n.TTD],decls:0,vars:0,template:function(t,e){},encapsulation:2}),t})(),Tt=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})()},5291:(t,e,i)=>{"use strict";i.d(e,{Sbq:()=>n,Vfw:()=>r,N2j:()=>s,DL8:()=>o,BDt:()=>a,koM:()=>l,OS1:()=>c,mh3:()=>h,b7W:()=>u,kZ_:()=>d,q7m:()=>p,FlN:()=>f,KOR:()=>m,Ssp:()=>g,eHv:()=>y,Mdf:()=>b,Aq:()=>v,qO$:()=>_,vqe:()=>w,sqG:()=>x,Krp:()=>C,uli:()=>A,nNP:()=>S,byT:()=>E,SuH:()=>k,co4:()=>T,aj4:()=>M,kXW:()=>L,XsY:()=>I,USL:()=>O,r8p:()=>D,o4t:()=>R,Psp:()=>N,dLy:()=>P,FpQ:()=>F,wn1:()=>Z,xf3:()=>B,HLz:()=>U,NBC:()=>q,CgH:()=>z,B$L:()=>H,hkK:()=>Y,hnx:()=>G,gNZ:()=>j,FJU:()=>V,FVb:()=>Q,X5K:()=>W,wyP:()=>J});var n={prefix:"fas",iconName:"angle-double-down",icon:[320,512,[],"f103","M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"]},r={prefix:"fas",iconName:"angle-double-up",icon:[320,512,[],"f102","M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"]},s={prefix:"fas",iconName:"archive",icon:[512,512,[],"f187","M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"]},o={prefix:"fas",iconName:"balance-scale",icon:[640,512,[],"f24e","M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},a={prefix:"fas",iconName:"bolt",icon:[320,512,[],"f0e7","M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z"]},l={prefix:"fas",iconName:"chart-bar",icon:[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},c={prefix:"fas",iconName:"chart-pie",icon:[544,512,[],"f200","M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"]},h={prefix:"fas",iconName:"code-branch",icon:[384,512,[],"f126","M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"]},u={prefix:"fas",iconName:"cog",icon:[512,512,[],"f013","M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},d={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"]},p={prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]},f={prefix:"fas",iconName:"dumbbell",icon:[640,512,[],"f44b","M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"]},m={prefix:"fas",iconName:"eject",icon:[448,512,[],"f052","M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"]},g={prefix:"fas",iconName:"exchange-alt",icon:[512,512,[],"f362","M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"]},y={prefix:"fas",iconName:"exclamation-triangle",icon:[576,512,[],"f071","M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},b={prefix:"fas",iconName:"eye",icon:[576,512,[],"f06e","M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"]},v={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"]},_={prefix:"fas",iconName:"history",icon:[512,512,[],"f1da","M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"]},w={prefix:"fas",iconName:"infinity",icon:[640,512,[],"f534","M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"]},x={prefix:"fas",iconName:"info-circle",icon:[512,512,[],"f05a","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"]},C={prefix:"fas",iconName:"layer-group",icon:[512,512,[],"f5fd","M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"]},A={prefix:"fas",iconName:"life-ring",icon:[512,512,[],"f1cd","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"]},S={prefix:"fas",iconName:"link",icon:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"]},E={prefix:"fas",iconName:"lock",icon:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"]},k={prefix:"fas",iconName:"map-signs",icon:[512,512,[],"f277","M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"]},T={prefix:"fas",iconName:"money-bill-alt",icon:[640,512,[],"f3d1","M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]},M={prefix:"fas",iconName:"money-bill-wave",icon:[640,512,[],"f53a","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"]},L={prefix:"fas",iconName:"network-wired",icon:[640,512,[],"f6ff","M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"]},I={prefix:"fas",iconName:"paint-brush",icon:[512,512,[],"f1fc","M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"]},O={prefix:"fas",iconName:"percentage",icon:[384,512,[],"f541","M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"]},D={prefix:"fas",iconName:"plus",icon:[448,512,[],"f067","M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},R={prefix:"fas",iconName:"project-diagram",icon:[640,512,[],"f542","M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"]},N={prefix:"fas",iconName:"question",icon:[384,512,[],"f128","M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"]},P={prefix:"fas",iconName:"receipt",icon:[384,512,[],"f543","M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"]},F={prefix:"fas",iconName:"route",icon:[512,512,[],"f4d7","M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Z={prefix:"fas",iconName:"search",icon:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"]},B={prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"]},U={prefix:"fas",iconName:"tachometer-alt",icon:[576,512,[],"f3fd","M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},q={prefix:"fas",iconName:"times",icon:[352,512,[],"f00d","M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"]},z={prefix:"fas",iconName:"tools",icon:[512,512,[],"f7d9","M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"]},H={prefix:"fas",iconName:"unlock-alt",icon:[448,512,[],"f13e","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"]},Y={prefix:"fas",iconName:"user-check",icon:[640,512,[],"f4fc","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"]},G={prefix:"fas",iconName:"user-clock",icon:[640,512,[],"f4fd","M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"]},j={prefix:"fas",iconName:"user-cog",icon:[640,512,[],"f4fe","M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"]},V={prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"]},Q={prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]},W={prefix:"fas",iconName:"wallet",icon:[512,512,[],"f555","M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},J={prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"]}},5573:(t,e,i)=>{"use strict";i.d(e,{eX:()=>F,sQ:()=>tt,GW:()=>L,l4:()=>Z});var n,r=i(964),s=i(5446),o=i(2391),a=i(9666),l=i(4951),c=i(2041),h=i(9647),u=i(7849);!function(t){t.NEXT="N",t.ERROR="E",t.COMPLETE="C"}(n||(n={}));var d=function(){function t(t,e,i){this.kind=t,this.value=e,this.error=i,this.hasValue="N"===t}return t.prototype.observe=function(t){return p(this,t)},t.prototype.do=function(t,e,i){var n=this,r=n.kind,s=n.error;return"N"===r?null==t?void 0:t(n.value):"E"===r?null==e?void 0:e(s):null==i?void 0:i()},t.prototype.accept=function(t,e,i){var n;return(0,u.m)(null===(n=t)||void 0===n?void 0:n.next)?this.observe(t):this.do(t,e,i)},t.prototype.toObservable=function(){var t=this,e=t.kind,i=t.error,n="N"===e?(0,c.of)(t.value):"E"===e?(0,h._)(function(){return i}):"C"===e?l.E:0;if(!n)throw new TypeError("Unexpected notification kind "+e);return n},t.createNext=function(e){return new t("N",e)},t.createError=function(e){return new t("E",void 0,e)},t.createComplete=function(){return t.completeNotification},t.completeNotification=new t("C"),t}();function p(t,e){var i,n,r,s=t.kind,o=t.value,a=t.error;if("string"!=typeof s)throw new TypeError('Invalid notification, missing "kind"');"N"===s?null===(i=e.next)||void 0===i||i.call(e,o):"E"===s?null===(n=e.error)||void 0===n||n.call(e,a):null===(r=e.complete)||void 0===r||r.call(e)}var f=i(3386),m=i(4659),g=i(9162),y=i(5630);function b(t,e,i,n){return(0,f.e)(function(r,s){var l;e&&"function"!=typeof e?(i=e.duration,l=e.element,n=e.connector):l=e;var c=new Map,h=function(t){c.forEach(t),t(s)},u=function(t){return h(function(e){return e.error(t)})},d=new v(s,function(e){try{var r=t(e),h=c.get(r);if(!h){c.set(r,h=n?n():new a.x);var p=(g=r,b=h,(v=new o.y(function(t){d.activeGroups++;var e=b.subscribe(t);return function(){e.unsubscribe(),0==--d.activeGroups&&d.teardownAttempted&&d.unsubscribe()}})).key=g,v);if(s.next(p),i){var f=new m.Q(h,function(){h.complete(),null==f||f.unsubscribe()},void 0,void 0,function(){return c.delete(r)});d.add((0,y.Xf)(i(p)).subscribe(f))}}h.next(l?l(e):e)}catch(_){u(_)}var g,b,v},function(){return h(function(t){return t.complete()})},u,function(){return c.clear()});r.subscribe(d)})}var v=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.activeGroups=0,e.teardownAttempted=!1,e}return(0,g.ZT)(e,t),e.prototype.unsubscribe=function(){this.teardownAttempted=!0,0===this.activeGroups&&t.prototype.unsubscribe.call(this)},e}(m.Q),_=i(1681);function w(t,e){return e?function(i){return i.pipe(w(function(i,n){return(0,y.Xf)(t(i,n)).pipe((0,_.U)(function(t,r){return e(i,t,n,r)}))}))}:(0,f.e)(function(e,i){var n=0,r=null,s=!1;e.subscribe(new m.Q(i,function(e){r||(r=new m.Q(i,void 0,function(){r=null,s&&i.complete()}),(0,y.Xf)(t(e,n++)).subscribe(r))},function(){s=!0,!r&&i.complete()}))})}var x=i(3286),C=i(1816),A=i(8868),S=i(7228),E=i(9056),k=i(1572);const T={dispatch:!0,useEffectsErrorHandler:!0},M="__@ngrx/effects_create__";function L(t,e){const i=t(),n=Object.assign(Object.assign({},T),e);return Object.defineProperty(i,M,{value:n}),i}function I(t){return Object.getOwnPropertyNames(t).filter(e=>!(!t[e]||!t[e].hasOwnProperty(M))&&t[e][M].hasOwnProperty("dispatch")).map(e=>Object.assign({propertyName:e},t[e][M]))}function O(t){return Object.getPrototypeOf(t)}const D="__@ngrx/effects__";function R(t){return(0,r.qC)(N,O)(t)}function N(t){return function(t){return t.constructor.hasOwnProperty(D)}(t)?t.constructor[D]:[]}function P(t,e,i=10){return t.pipe((0,C.K)(n=>(e&&e.handleError(n),i<=1?t:P(t,e,i-1))))}let F=(()=>{class t extends o.y{constructor(t){super(),t&&(this.source=t)}lift(e){const i=new t;return i.source=this,i.operator=e,i}}return t.\u0275fac=function(e){return new(e||t)(k.LFG(r.Y$))},t.\u0275prov=k.Yz7({token:t,factory:t.\u0275fac}),t})();function Z(...t){return(0,A.h)(e=>t.some(t=>"string"==typeof t?t===e.type:t.type===e.type))}function B(t){return U(t,"ngrxOnInitEffects")}function U(t,e){return t&&e in t&&"function"==typeof t[e]}const q=new k.OlP("@ngrx/effects Internal Root Guard"),z=new k.OlP("@ngrx/effects User Provided Effects"),H=new k.OlP("@ngrx/effects Internal Root Effects"),Y=new k.OlP("@ngrx/effects Root Effects"),G=new k.OlP("@ngrx/effects Internal Feature Effects"),j=new k.OlP("@ngrx/effects Feature Effects"),V=new k.OlP("@ngrx/effects Effects Error Handler");let Q=(()=>{class t extends a.x{constructor(t,e){super(),this.errorHandler=t,this.effectsErrorHandler=e}addEffects(t){this.next(t)}toActions(){return this.pipe(b(O),(0,S.z)(t=>t.pipe(b(W))),(0,S.z)(t=>{const e=t.pipe(w(t=>{return(e=this.errorHandler,i=this.effectsErrorHandler,t=>{const n=function(t,e,i){const n=O(t).constructor.name,r=(o=t,[R,I].reduce((t,e)=>t.concat(e(o)),[])).map(({propertyName:r,dispatch:s,useEffectsErrorHandler:o})=>{const a="function"==typeof t[r]?t[r]():t[r],l=o?i(a,e):a;return!1===s?l.pipe((0,x.l)()):l.pipe((0,f.e)(function(t,e){t.subscribe(new m.Q(e,function(t){e.next(d.createNext(t))},function(){e.next(d.createComplete()),e.complete()},function(t){e.next(d.createError(t)),e.complete()}))})).pipe((0,_.U)(e=>({effect:t[r],notification:e,propertyName:r,sourceName:n,sourceInstance:t})))});var o;return(0,s.T)(...r)}(t,e,i);return U(t,"ngrxOnRunEffects")?t.ngrxOnRunEffects(n):n})(t);var e,i}),(0,_.U)(t=>(function(t,e){if("N"===t.notification.kind){const i=t.notification.value;!function(t){return"function"!=typeof t&&t&&t.type&&"string"==typeof t.type}(i)&&e.handleError(new Error(`Effect ${function({propertyName:t,sourceInstance:e,sourceName:i}){const n="function"==typeof e[t];return`"${i}.${String(t)}${n?"()":""}"`}(t)} dispatched an invalid action: ${function(t){try{return JSON.stringify(t)}catch(e){return t}}(i)}`))}}(t,this.errorHandler),t.notification)),(0,A.h)(t=>"N"===t.kind&&null!=t.value),(0,f.e)(function(t,e){t.subscribe(new m.Q(e,function(t){return p(t,e)}))})),i=t.pipe((0,E.q)(1),(0,A.h)(B),(0,_.U)(t=>t.ngrxOnInitEffects()));return(0,s.T)(e,i)}))}}return t.\u0275fac=function(e){return new(e||t)(k.LFG(k.qLn),k.LFG(V))},t.\u0275prov=k.Yz7({token:t,factory:t.\u0275fac}),t})();function W(t){return U(t,"ngrxOnIdentifyEffects")?t.ngrxOnIdentifyEffects():""}let J=(()=>{class t{constructor(t,e){this.effectSources=t,this.store=e,this.effectsSubscription=null}start(){this.effectsSubscription||(this.effectsSubscription=this.effectSources.toActions().subscribe(this.store))}ngOnDestroy(){this.effectsSubscription&&(this.effectsSubscription.unsubscribe(),this.effectsSubscription=null)}}return t.\u0275fac=function(e){return new(e||t)(k.LFG(Q),k.LFG(r.yh))},t.\u0275prov=k.Yz7({token:t,factory:t.\u0275fac}),t})();const X="@ngrx/effects/init";(0,r.PH)(X);let K=(()=>{class t{constructor(t,e,i,n,r,s,o){this.sources=t,e.start(),n.forEach(e=>t.addEffects(e)),i.dispatch({type:X})}addEffects(t){this.sources.addEffects(t)}}return t.\u0275fac=function(e){return new(e||t)(k.LFG(Q),k.LFG(J),k.LFG(r.yh),k.LFG(Y),k.LFG(r.cr,8),k.LFG(r.CK,8),k.LFG(q,8))},t.\u0275mod=k.oAB({type:t}),t.\u0275inj=k.cJS({}),t})(),$=(()=>{class t{constructor(t,e,i,n){e.forEach(e=>e.forEach(e=>t.addEffects(e)))}}return t.\u0275fac=function(e){return new(e||t)(k.LFG(K),k.LFG(j),k.LFG(r.cr,8),k.LFG(r.CK,8))},t.\u0275mod=k.oAB({type:t}),t.\u0275inj=k.cJS({}),t})(),tt=(()=>{class t{static forFeature(t=[]){return{ngModule:$,providers:[t,{provide:G,multi:!0,useValue:t},{provide:z,multi:!0,useValue:[]},{provide:j,multi:!0,useFactory:et,deps:[k.zs3,G,z]}]}}static forRoot(t=[]){return{ngModule:K,providers:[{provide:V,useValue:P},J,Q,F,t,{provide:H,useValue:[t]},{provide:q,useFactory:it,deps:[[J,new k.FiY,new k.tp0],[H,new k.PiD]]},{provide:z,multi:!0,useValue:[]},{provide:Y,useFactory:et,deps:[k.zs3,H,z]}]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=k.oAB({type:t}),t.\u0275inj=k.cJS({}),t})();function et(t,e,i){const n=[];for(const r of e)n.push(...r);for(const r of i)n.push(...r);return function(t,e){return e.map(e=>t.get(e))}(t,n)}function it(t,e){if((1!==e.length||0!==e[0].length)&&t)throw new TypeError("EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.");return"guarded"}},7876:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{FT:()=>StoreDevtoolsModule});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(1572),_ngrx_store__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(964),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(4951),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(2391),rxjs__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(2041),rxjs__WEBPACK_IMPORTED_MODULE_15__=__webpack_require__(5446),rxjs__WEBPACK_IMPORTED_MODULE_18__=__webpack_require__(2873),rxjs__WEBPACK_IMPORTED_MODULE_19__=__webpack_require__(6407),rxjs_operators__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(7839),rxjs_operators__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(8868),rxjs_operators__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(1681),rxjs_operators__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(8196),rxjs_operators__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(7411),rxjs_operators__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(5057),rxjs_operators__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(1816),rxjs_operators__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(9056),rxjs_operators__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(9568),rxjs_operators__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(4324),rxjs_operators__WEBPACK_IMPORTED_MODULE_16__=__webpack_require__(4444),rxjs_operators__WEBPACK_IMPORTED_MODULE_17__=__webpack_require__(8919),rxjs_operators__WEBPACK_IMPORTED_MODULE_20__=__webpack_require__(5653),rxjs_operators__WEBPACK_IMPORTED_MODULE_21__=__webpack_require__(8193);class StoreDevtoolsConfig{constructor(){this.maxAge=!1}}const STORE_DEVTOOLS_CONFIG=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.OlP("@ngrx/store-devtools Options"),INITIAL_OPTIONS=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.OlP("@ngrx/store-devtools Initial Config");function noMonitor(){return null}const DEFAULT_NAME="NgRx Store DevTools";function createConfig(t){const e={maxAge:!1,monitor:noMonitor,actionSanitizer:void 0,stateSanitizer:void 0,name:DEFAULT_NAME,serialize:!1,logOnly:!1,autoPause:!1,features:{pause:!0,lock:!0,persist:!0,export:!0,import:"custom",jump:!0,skip:!0,reorder:!0,dispatch:!0,test:!0}},i="function"==typeof t?t():t,n=Object.assign({},e,{features:i.features||!!i.logOnly&&{pause:!0,export:!0,test:!0}||e.features},i);if(n.maxAge&&n.maxAge<2)throw new Error(`Devtools 'maxAge' cannot be less than 2, got ${n.maxAge}`);return n}const PERFORM_ACTION="PERFORM_ACTION",REFRESH="REFRESH",RESET="RESET",ROLLBACK="ROLLBACK",COMMIT="COMMIT",SWEEP="SWEEP",TOGGLE_ACTION="TOGGLE_ACTION",SET_ACTIONS_ACTIVE="SET_ACTIONS_ACTIVE",JUMP_TO_STATE="JUMP_TO_STATE",JUMP_TO_ACTION="JUMP_TO_ACTION",IMPORT_STATE="IMPORT_STATE",LOCK_CHANGES="LOCK_CHANGES",PAUSE_RECORDING="PAUSE_RECORDING";class PerformAction{constructor(t,e){if(this.action=t,this.timestamp=e,this.type=PERFORM_ACTION,void 0===t.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?')}}class Refresh{constructor(){this.type=REFRESH}}class Reset{constructor(t){this.timestamp=t,this.type=RESET}}class Rollback{constructor(t){this.timestamp=t,this.type=ROLLBACK}}class Commit{constructor(t){this.timestamp=t,this.type=COMMIT}}class Sweep{constructor(){this.type=SWEEP}}class ToggleAction{constructor(t){this.id=t,this.type=TOGGLE_ACTION}}class SetActionsActive{constructor(t,e,i=!0){this.start=t,this.end=e,this.active=i,this.type=SET_ACTIONS_ACTIVE}}class JumpToState{constructor(t){this.index=t,this.type=JUMP_TO_STATE}}class JumpToAction{constructor(t){this.actionId=t,this.type=JUMP_TO_ACTION}}class ImportState{constructor(t){this.nextLiftedState=t,this.type=IMPORT_STATE}}class LockChanges{constructor(t){this.status=t,this.type=LOCK_CHANGES}}class PauseRecording{constructor(t){this.status=t,this.type=PAUSE_RECORDING}}let DevtoolsDispatcher=(()=>{class t extends _ngrx_store__WEBPACK_IMPORTED_MODULE_1__.UO{}return t.\u0275fac=function(){let e;return function(i){return(e||(e=_angular_core__WEBPACK_IMPORTED_MODULE_0__.n5z(t)))(i||t)}}(),t.\u0275prov=_angular_core__WEBPACK_IMPORTED_MODULE_0__.Yz7({token:t,factory:t.\u0275fac}),t})();function difference(t,e){return t.filter(t=>e.indexOf(t)<0)}function unliftState(t){const{computedStates:e,currentStateIndex:i}=t;if(i>=e.length){const{state:t}=e[e.length-1];return t}const{state:n}=e[i];return n}function unliftAction(t){return t.actionsById[t.nextActionId-1]}function liftAction(t){return new PerformAction(t,+Date.now())}function sanitizeActions(t,e){return Object.keys(e).reduce((i,n)=>{const r=Number(n);return i[r]=sanitizeAction(t,e[r],r),i},{})}function sanitizeAction(t,e,i){return Object.assign(Object.assign({},e),{action:t(e.action,i)})}function sanitizeStates(t,e){return e.map((e,i)=>({state:sanitizeState(t,e.state,i),error:e.error}))}function sanitizeState(t,e,i){return t(e,i)}function shouldFilterActions(t){return t.predicate||t.actionsSafelist||t.actionsBlocklist}function filterLiftedState(t,e,i,n){const r=[],s={},o=[];return t.stagedActionIds.forEach((a,l)=>{const c=t.actionsById[a];c&&(l&&isActionFiltered(t.computedStates[l],c,e,i,n)||(s[a]=c,r.push(a),o.push(t.computedStates[l])))}),Object.assign(Object.assign({},t),{stagedActionIds:r,actionsById:s,computedStates:o})}function isActionFiltered(t,e,i,n,r){const s=i&&!i(t,e.action),o=n&&!e.action.type.match(n.map(t=>escapeRegExp(t)).join("|")),a=r&&e.action.type.match(r.map(t=>escapeRegExp(t)).join("|"));return s||o||a}function escapeRegExp(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const ExtensionActionTypes={START:"START",DISPATCH:"DISPATCH",STOP:"STOP",ACTION:"ACTION"},REDUX_DEVTOOLS_EXTENSION=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.OlP("@ngrx/store-devtools Redux Devtools Extension");let DevtoolsExtension=(()=>{class DevtoolsExtension{constructor(t,e,i){this.config=e,this.dispatcher=i,this.devtoolsExtension=t,this.createActionStreams()}notify(t,e){if(this.devtoolsExtension)if(t.type===PERFORM_ACTION){if(e.isLocked||e.isPaused)return;const i=unliftState(e);if(shouldFilterActions(this.config)&&isActionFiltered(i,t,this.config.predicate,this.config.actionsSafelist,this.config.actionsBlocklist))return;const n=this.config.stateSanitizer?sanitizeState(this.config.stateSanitizer,i,e.currentStateIndex):i,r=this.config.actionSanitizer?sanitizeAction(this.config.actionSanitizer,t,e.nextActionId):t;this.sendToReduxDevtools(()=>this.extensionConnection.send(r,n))}else{const t=Object.assign(Object.assign({},e),{stagedActionIds:e.stagedActionIds,actionsById:this.config.actionSanitizer?sanitizeActions(this.config.actionSanitizer,e.actionsById):e.actionsById,computedStates:this.config.stateSanitizer?sanitizeStates(this.config.stateSanitizer,e.computedStates):e.computedStates});this.sendToReduxDevtools(()=>this.devtoolsExtension.send(null,t,this.getExtensionConfig(this.config)))}}createChangesObservable(){return this.devtoolsExtension?new rxjs__WEBPACK_IMPORTED_MODULE_3__.y(t=>{const e=this.devtoolsExtension.connect(this.getExtensionConfig(this.config));return this.extensionConnection=e,e.init(),e.subscribe(e=>t.next(e)),e.unsubscribe}):rxjs__WEBPACK_IMPORTED_MODULE_2__.E}createActionStreams(){const t=this.createChangesObservable().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.B)()),e=t.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(t=>t.type===ExtensionActionTypes.START)),i=t.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(t=>t.type===ExtensionActionTypes.STOP)),n=t.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(t=>t.type===ExtensionActionTypes.DISPATCH),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(t=>this.unwrapAction(t.payload)),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.b)(t=>t.type===IMPORT_STATE?this.dispatcher.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(t=>t.type===_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.wb),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_8__.V)(1e3),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_9__.b)(1e3),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(()=>t),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.K)(()=>(0,rxjs__WEBPACK_IMPORTED_MODULE_11__.of)(t)),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_12__.q)(1)):(0,rxjs__WEBPACK_IMPORTED_MODULE_11__.of)(t))),r=t.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(t=>t.type===ExtensionActionTypes.ACTION),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(t=>this.unwrapAction(t.payload))).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.R)(i)),s=n.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.R)(i));this.start$=e.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.R)(i)),this.actions$=this.start$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_14__.w)(()=>r)),this.liftedActions$=this.start$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_14__.w)(()=>s))}unwrapAction(action){return"string"==typeof action?eval(`(${action})`):action}getExtensionConfig(t){var e;const i={name:t.name,features:t.features,serialize:t.serialize,autoPause:null!==(e=t.autoPause)&&void 0!==e&&e};return!1!==t.maxAge&&(i.maxAge=t.maxAge),i}sendToReduxDevtools(t){try{t()}catch(e){console.warn("@ngrx/store-devtools: something went wrong inside the redux devtools",e)}}}return DevtoolsExtension.\u0275fac=function(t){return new(t||DevtoolsExtension)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(REDUX_DEVTOOLS_EXTENSION),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(STORE_DEVTOOLS_CONFIG),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(DevtoolsDispatcher))},DevtoolsExtension.\u0275prov=_angular_core__WEBPACK_IMPORTED_MODULE_0__.Yz7({token:DevtoolsExtension,factory:DevtoolsExtension.\u0275fac}),DevtoolsExtension})();const INIT_ACTION={type:_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.qg},RECOMPUTE="@ngrx/store-devtools/recompute",RECOMPUTE_ACTION={type:RECOMPUTE};function computeNextEntry(t,e,i,n,r){if(n)return{state:i,error:"Interrupted by an error up the chain"};let s,o=i;try{o=t(i,e)}catch(a){s=a.toString(),r.handleError(a)}return{state:o,error:s}}function recomputeStates(t,e,i,n,r,s,o,a,l){if(e>=t.length&&t.length===s.length)return t;const c=t.slice(0,e),h=s.length-(l?1:0);for(let u=e;u-1?l:computeNextEntry(i,e,h,d,a);c.push(p)}return l&&c.push(t[t.length-1]),c}function liftInitialState(t,e){return{monitorState:e(void 0,{}),nextActionId:1,actionsById:{0:liftAction(INIT_ACTION)},stagedActionIds:[0],skippedActionIds:[],committedState:t,currentStateIndex:0,computedStates:[],isLocked:!1,isPaused:!1}}function liftReducerWith(t,e,i,n,r={}){return s=>(o,a)=>{let{monitorState:l,actionsById:c,nextActionId:h,stagedActionIds:u,skippedActionIds:d,committedState:p,currentStateIndex:f,computedStates:m,isLocked:g,isPaused:y}=o||e;function b(t){let e=t,i=u.slice(1,e+1);for(let n=0;n-1===i.indexOf(t)),u=[0,...u.slice(e+1)],p=m[e].state,m=m.slice(e),f=f>e?f-e:0}function v(){c={0:liftAction(INIT_ACTION)},h=1,u=[0],d=[],p=m[f].state,f=0,m=[]}o||(c=Object.create(c));let _=0;switch(a.type){case LOCK_CHANGES:g=a.status,_=1/0;break;case PAUSE_RECORDING:y=a.status,y?(u=[...u,h],c[h]=new PerformAction({type:"@ngrx/devtools/pause"},+Date.now()),h++,_=u.length-1,m=m.concat(m[m.length-1]),f===u.length-2&&f++,_=1/0):v();break;case RESET:c={0:liftAction(INIT_ACTION)},h=1,u=[0],d=[],p=t,f=0,m=[];break;case COMMIT:v();break;case ROLLBACK:c={0:liftAction(INIT_ACTION)},h=1,u=[0],d=[],f=0,m=[];break;case TOGGLE_ACTION:{const{id:t}=a,e=d.indexOf(t);d=-1===e?[t,...d]:d.filter(e=>e!==t),_=u.indexOf(t);break}case SET_ACTIONS_ACTIVE:{const{start:t,end:e,active:i}=a,n=[];for(let r=t;rr.maxAge&&(m=recomputeStates(m,_,s,p,c,u,d,i,y),b(u.length-r.maxAge),_=1/0);break;case _ngrx_store__WEBPACK_IMPORTED_MODULE_1__.wb:if(m.filter(t=>t.error).length>0)_=0,r.maxAge&&u.length>r.maxAge&&(m=recomputeStates(m,_,s,p,c,u,d,i,y),b(u.length-r.maxAge),_=1/0);else{if(!y&&!g){f===u.length-1&&f++;const t=h++;c[t]=new PerformAction(a,+Date.now()),u=[...u,t],_=u.length-1,m=recomputeStates(m,_,s,p,c,u,d,i,y)}m=m.map(t=>Object.assign(Object.assign({},t),{state:s(t.state,RECOMPUTE_ACTION)})),f=u.length-1,r.maxAge&&u.length>r.maxAge&&b(u.length-r.maxAge),_=1/0}break;default:_=1/0}return m=recomputeStates(m,_,s,p,c,u,d,i,y),l=n(l,a),{monitorState:l,actionsById:c,nextActionId:h,stagedActionIds:u,skippedActionIds:d,committedState:p,currentStateIndex:f,computedStates:m,isLocked:g,isPaused:y}}}let StoreDevtools=(()=>{class t{constructor(t,e,i,n,r,s,o,a){const l=liftInitialState(o,a.monitor),c=liftReducerWith(o,l,s,a.monitor,a),h=(0,rxjs__WEBPACK_IMPORTED_MODULE_15__.T)((0,rxjs__WEBPACK_IMPORTED_MODULE_15__.T)(e.asObservable().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.T)(1)),n.actions$).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(liftAction)),t,n.liftedActions$).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_17__.Q)(rxjs__WEBPACK_IMPORTED_MODULE_18__.N)),u=i.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(c)),d=new rxjs__WEBPACK_IMPORTED_MODULE_19__.t(1),p=h.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_20__.M)(u),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_21__.R)(({state:t},[e,i])=>{let r=i(t,e);return e.type!==PERFORM_ACTION&&shouldFilterActions(a)&&(r=filterLiftedState(r,a.predicate,a.actionsSafelist,a.actionsBlocklist)),n.notify(e,r),{state:r,action:e}},{state:l,action:null})).subscribe(({state:t,action:e})=>{d.next(t),e.type===PERFORM_ACTION&&r.next(e.action)}),f=n.start$.subscribe(()=>{this.refresh()}),m=d.asObservable(),g=m.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(unliftState));this.extensionStartSubscription=f,this.stateSubscription=p,this.dispatcher=t,this.liftedState=m,this.state=g}dispatch(t){this.dispatcher.next(t)}next(t){this.dispatcher.next(t)}error(t){}complete(){}performAction(t){this.dispatch(new PerformAction(t,+Date.now()))}refresh(){this.dispatch(new Refresh)}reset(){this.dispatch(new Reset(+Date.now()))}rollback(){this.dispatch(new Rollback(+Date.now()))}commit(){this.dispatch(new Commit(+Date.now()))}sweep(){this.dispatch(new Sweep)}toggleAction(t){this.dispatch(new ToggleAction(t))}jumpToAction(t){this.dispatch(new JumpToAction(t))}jumpToState(t){this.dispatch(new JumpToState(t))}importState(t){this.dispatch(new ImportState(t))}lockChanges(t){this.dispatch(new LockChanges(t))}pauseRecording(t){this.dispatch(new PauseRecording(t))}}return t.\u0275fac=function(e){return new(e||t)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(DevtoolsDispatcher),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.UO),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.n$),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(DevtoolsExtension),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.Y$),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_angular_core__WEBPACK_IMPORTED_MODULE_0__.qLn),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.Y6),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(STORE_DEVTOOLS_CONFIG))},t.\u0275prov=_angular_core__WEBPACK_IMPORTED_MODULE_0__.Yz7({token:t,factory:t.\u0275fac}),t})();const IS_EXTENSION_OR_MONITOR_PRESENT=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.OlP("@ngrx/store-devtools Is Devtools Extension or Monitor Present");function createIsExtensionOrMonitorPresent(t,e){return Boolean(t)||e.monitor!==noMonitor}function createReduxDevtoolsExtension(){const t="__REDUX_DEVTOOLS_EXTENSION__";return"object"==typeof window&&void 0!==window[t]?window[t]:null}function createStateObservable(t){return t.state}let StoreDevtoolsModule=(()=>{class t{static instrument(e={}){return{ngModule:t,providers:[DevtoolsExtension,DevtoolsDispatcher,StoreDevtools,{provide:INITIAL_OPTIONS,useValue:e},{provide:IS_EXTENSION_OR_MONITOR_PRESENT,deps:[REDUX_DEVTOOLS_EXTENSION,STORE_DEVTOOLS_CONFIG],useFactory:createIsExtensionOrMonitorPresent},{provide:REDUX_DEVTOOLS_EXTENSION,useFactory:createReduxDevtoolsExtension},{provide:STORE_DEVTOOLS_CONFIG,deps:[INITIAL_OPTIONS],useFactory:createConfig},{provide:_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.FR,deps:[StoreDevtools],useFactory:createStateObservable},{provide:_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.mK,useExisting:DevtoolsDispatcher}]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=_angular_core__WEBPACK_IMPORTED_MODULE_0__.oAB({type:t}),t.\u0275inj=_angular_core__WEBPACK_IMPORTED_MODULE_0__.cJS({}),t})()},964:(t,e,i)=>{"use strict";i.d(e,{UO:()=>y,qg:()=>g,Y6:()=>w,mK:()=>Y,n$:()=>H,Y$:()=>Q,FR:()=>J,yh:()=>tt,CK:()=>kt,Aw:()=>Tt,cr:()=>Et,wb:()=>G,qC:()=>q,PH:()=>f,ZF:()=>ft,P1:()=>dt});var n=i(1572),r=i(7425),s=i(2391),o=i(9666),a=i(2873),l=i(1681),c=i(8919),h=i(5653),u=i(8193),d=i(6424);const p={};function f(t,e){if(p[t]=(p[t]||0)+1,"function"==typeof e)return m(t,(...i)=>Object.assign(Object.assign({},e(...i)),{type:t}));switch(e?e._as:"empty"){case"empty":return m(t,()=>({type:t}));case"props":return m(t,e=>Object.assign(Object.assign({},e),{type:t}));default:throw new Error("Unexpected config.")}}function m(t,e){return Object.defineProperty(e,"type",{value:t,writable:!1})}const g="@ngrx/store/init";let y=(()=>{class t extends r.X{constructor(){super({type:g})}next(t){if("function"==typeof t)throw new TypeError("\n Dispatch expected an object, instead it received a function.\n If you're using the createAction function, make sure to invoke the function\n before dispatching the action. For example, someAction should be someAction().");if(void 0===t)throw new TypeError("Actions must be objects");if(void 0===t.type)throw new TypeError("Actions must have a type property");super.next(t)}complete(){}ngOnDestroy(){super.complete()}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})();const b=[y],v=new n.OlP("@ngrx/store Internal Root Guard"),_=new n.OlP("@ngrx/store Internal Initial State"),w=new n.OlP("@ngrx/store Initial State"),x=new n.OlP("@ngrx/store Reducer Factory"),C=new n.OlP("@ngrx/store Internal Reducer Factory Provider"),A=new n.OlP("@ngrx/store Initial Reducers"),S=new n.OlP("@ngrx/store Internal Initial Reducers"),E=new n.OlP("@ngrx/store Store Features"),k=new n.OlP("@ngrx/store Internal Store Reducers"),T=new n.OlP("@ngrx/store Internal Feature Reducers"),M=new n.OlP("@ngrx/store Internal Feature Configs"),L=new n.OlP("@ngrx/store Internal Store Features"),I=new n.OlP("@ngrx/store Internal Feature Reducers Token"),O=new n.OlP("@ngrx/store Feature Reducers"),D=new n.OlP("@ngrx/store User Provided Meta Reducers"),R=new n.OlP("@ngrx/store Meta Reducers"),N=new n.OlP("@ngrx/store Internal Resolved Meta Reducers"),P=new n.OlP("@ngrx/store User Runtime Checks Config"),F=new n.OlP("@ngrx/store Internal User Runtime Checks Config"),Z=new n.OlP("@ngrx/store Internal Runtime Checks"),B=new n.OlP("@ngrx/store Check if Action types are unique");function U(t,e={}){const i=Object.keys(t),n={};for(let s=0;se(t),i(e))}}function z(t,e){return Array.isArray(e)&&e.length>0&&(t=q.apply(null,[...e,t])),(e,i)=>{const n=t(e);return(t,e)=>n(t=void 0===t?i:t,e)}}class H extends s.y{}class Y extends y{}const G="@ngrx/store/update-reducers";let j=(()=>{class t extends r.X{constructor(t,e,i,n){super(n(i,e)),this.dispatcher=t,this.initialState=e,this.reducers=i,this.reducerFactory=n}addFeature(t){this.addFeatures([t])}addFeatures(t){const e=t.reduce((t,{reducers:e,reducerFactory:i,metaReducers:n,initialState:r,key:s})=>{const o="function"==typeof e?function(t){const e=Array.isArray(t)&&t.length>0?q(...t):t=>t;return(t,i)=>(t=e(t),(e,n)=>t(e=void 0===e?i:e,n))}(n)(e,r):z(i,n)(e,r);return t[s]=o,t},{});this.addReducers(e)}removeFeature(t){this.removeFeatures([t])}removeFeatures(t){this.removeReducers(t.map(t=>t.key))}addReducer(t,e){this.addReducers({[t]:e})}addReducers(t){this.reducers=Object.assign(Object.assign({},this.reducers),t),this.updateReducers(Object.keys(t))}removeReducer(t){this.removeReducers([t])}removeReducers(t){t.forEach(t=>{var e,i;this.reducers=(e=this.reducers,i=t,Object.keys(e).filter(t=>t!==i).reduce((t,i)=>Object.assign(t,{[i]:e[i]}),{}))}),this.updateReducers(t)}updateReducers(t){this.next(this.reducerFactory(this.reducers,this.initialState)),this.dispatcher.next({type:G,features:t})}ngOnDestroy(){this.complete()}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(Y),n.LFG(w),n.LFG(A),n.LFG(x))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})();const V=[j,{provide:H,useExisting:j},{provide:Y,useExisting:y}];let Q=(()=>{class t extends o.x{ngOnDestroy(){this.complete()}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})();const W=[Q];class J extends s.y{}let X=(()=>{class t extends r.X{constructor(t,e,i,n){super(n);const r=t.pipe((0,c.Q)(a.N)).pipe((0,h.M)(e)).pipe((0,u.R)(K,{state:n}));this.stateSubscription=r.subscribe(({state:t,action:e})=>{this.next(t),i.next(e)})}ngOnDestroy(){this.stateSubscription.unsubscribe(),this.complete()}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(y),n.LFG(H),n.LFG(Q),n.LFG(w))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t.INIT=g,t})();function K(t={state:void 0},[e,i]){const{state:n}=t;return{state:i(n,e),action:e}}const $=[X,{provide:J,useExisting:X}];let tt=(()=>{class t extends s.y{constructor(t,e,i){super(),this.actionsObserver=e,this.reducerManager=i,this.source=t}select(t,...e){return it.call(null,t,...e)(this)}lift(e){const i=new t(this,this.actionsObserver,this.reducerManager);return i.operator=e,i}dispatch(t){this.actionsObserver.next(t)}next(t){this.actionsObserver.next(t)}error(t){this.actionsObserver.error(t)}complete(){this.actionsObserver.complete()}addReducer(t,e){this.reducerManager.addReducer(t,e)}removeReducer(t){this.reducerManager.removeReducer(t)}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(J),n.LFG(y),n.LFG(j))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})();const et=[tt];function it(t,e,...i){return function(n){let r;if("string"==typeof t){const s=[e,...i].filter(Boolean);r=n.pipe(function(){for(var t=[],e=0;et(i,e)))}return r.pipe((0,d.x)())}}const nt="https://ngrx.io/guide/store/configuration/runtime-checks";function rt(t){return void 0===t}function st(t){return null===t}function ot(t){return Array.isArray(t)}function at(t){return"object"==typeof t&&null!==t}function lt(t){return"function"==typeof t}function ct(t,e){return t===e}function ht(t,e,i){for(let n=0;nt.release&&"function"==typeof t.release),a=t(function(...t){return s.apply(null,t)}),l=ut(function(t,i){return e.stateFn.apply(null,[t,r,i,a])});return Object.assign(l.memoized,{release:function(){l.reset(),a.reset(),o.forEach(t=>t.release())},projector:a.memoized,setResult:l.setResult,clearResult:l.clearResult})}}(ut)(...t)}function pt(t,e,i,n){if(void 0===i){const i=e.map(e=>e(t));return n.memoized.apply(null,i)}const r=e.map(e=>e(t,i));return n.memoized.apply(null,[...r,i])}function ft(t){return dt(e=>{const i=e[t];return!(0,n.X6Q)()||t in e||console.warn(`@ngrx/store: The feature name "${t}" does not exist in the state, therefore createFeatureSelector cannot access it. Be sure it is imported in a loaded module using StoreModule.forRoot('${t}', ...) or StoreModule.forFeature('${t}', ...). If the default state is intended to be undefined, as is the case with router state, this development-only warning message can be ignored.`),i},t=>t)}function mt(t){Object.freeze(t);const e=lt(t);return Object.getOwnPropertyNames(t).forEach(i=>{if(!i.startsWith("\u0275")&&function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}(t,i)&&(!e||"caller"!==i&&"callee"!==i&&"arguments"!==i)){const e=t[i];!at(e)&&!lt(e)||Object.isFrozen(e)||mt(e)}}),t}function gt(t,e=[]){return(rt(t)||st(t))&&0===e.length?{path:["root"],value:t}:Object.keys(t).reduce((i,n)=>{if(i)return i;const r=t[n];return function(t){return lt(t)&&t.hasOwnProperty("\u0275cmp")}(r)?i:!(rt(r)||st(r)||function(t){return"number"==typeof t}(r)||function(t){return"boolean"==typeof t}(r)||function(t){return"string"==typeof t}(r)||ot(r))&&(function(t){if(!function(t){return at(t)&&!ot(t)}(t))return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}(r)?gt(r,[...e,n]):{path:[...e,n],value:r})},!1)}function yt(t,e){if(!1===t)return;const i=t.path.join("."),n=new Error(`Detected unserializable ${e} at "${i}". ${nt}#strict${e}serializability`);throw n.value=t.value,n.unserializablePath=i,n}function bt(t){return(0,n.X6Q)()?Object.assign({strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!0,strictActionImmutability:!0,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1},t):{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!1,strictActionImmutability:!1,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1}}function vt({strictActionSerializability:t,strictStateSerializability:e}){return i=>t||e?function(t,e){return function(i,n){e.action(n)&&yt(gt(n),"action");const r=t(i,n);return e.state()&&yt(gt(r),"state"),r}}(i,{action:e=>t&&!wt(e),state:()=>e}):i}function _t({strictActionImmutability:t,strictStateImmutability:e}){return i=>t||e?function(t,e){return function(i,n){const r=e.action(n)?mt(n):n,s=t(i,r);return e.state()?mt(s):s}}(i,{action:e=>t&&!wt(e),state:()=>e}):i}function wt(t){return t.type.startsWith("@ngrx")}function xt({strictActionWithinNgZone:t}){return e=>t?function(t,e){return function(i,r){if(e.action(r)&&!n.R0b.isInAngularZone())throw new Error(`Action '${r.type}' running outside NgZone. ${nt}#strictactionwithinngzone`);return t(i,r)}}(e,{action:e=>t&&!wt(e)}):e}function Ct(){return[{provide:B,multi:!0,deps:[Z],useFactory:St}]}function At(t){return t}function St(t){if(!t.strictActionTypeUniqueness)return;const e=Object.entries(p).filter(([,t])=>t>1).map(([t])=>t);if(e.length)throw new Error(`Action types are registered more than once, ${e.map(t=>`"${t}"`).join(", ")}. ${nt}#strictactiontypeuniqueness`)}let Et=(()=>{class t{constructor(t,e,i,n,r,s){}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(y),n.LFG(H),n.LFG(Q),n.LFG(tt),n.LFG(v,8),n.LFG(B,8))},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})(),kt=(()=>{class t{constructor(t,e,i,n,r){this.features=t,this.featureReducers=e,this.reducerManager=i;const s=t.map((t,i)=>{const n=e.shift()[i];return Object.assign(Object.assign({},t),{reducers:n,initialState:Ot(t.initialState)})});i.addFeatures(s)}ngOnDestroy(){this.reducerManager.removeFeatures(this.features)}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(L),n.LFG(O),n.LFG(j),n.LFG(Et),n.LFG(B,8))},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})(),Tt=(()=>{class t{static forRoot(t,e={}){return{ngModule:Et,providers:[{provide:v,useFactory:Rt,deps:[[tt,new n.FiY,new n.tp0]]},{provide:_,useValue:e.initialState},{provide:w,useFactory:Ot,deps:[_]},{provide:S,useValue:t},{provide:k,useExisting:t instanceof n.OlP?t:S},{provide:A,deps:[n.zs3,S,[new n.tBr(k)]],useFactory:Mt},{provide:D,useValue:e.metaReducers?e.metaReducers:[]},{provide:N,deps:[R,D],useFactory:Dt},{provide:C,useValue:e.reducerFactory?e.reducerFactory:U},{provide:x,deps:[C,N],useFactory:z},b,V,W,$,et,(i=e.runtimeChecks,[{provide:F,useValue:i},{provide:P,useFactory:At,deps:[F]},{provide:Z,deps:[P],useFactory:bt},{provide:R,multi:!0,deps:[Z],useFactory:_t},{provide:R,multi:!0,deps:[Z],useFactory:vt},{provide:R,multi:!0,deps:[Z],useFactory:xt}]),Ct()]};var i}static forFeature(t,e,i={}){return{ngModule:kt,providers:[{provide:M,multi:!0,useValue:t instanceof Object?{}:i},{provide:E,multi:!0,useValue:{key:t instanceof Object?t.name:t,reducerFactory:i instanceof n.OlP||!i.reducerFactory?U:i.reducerFactory,metaReducers:i instanceof n.OlP||!i.metaReducers?[]:i.metaReducers,initialState:i instanceof n.OlP||!i.initialState?void 0:i.initialState}},{provide:L,deps:[n.zs3,M,E],useFactory:Lt},{provide:T,multi:!0,useValue:t instanceof Object?t.reducer:e},{provide:I,multi:!0,useExisting:e instanceof n.OlP?e:T},{provide:O,multi:!0,deps:[n.zs3,T,[new n.tBr(I)]],useFactory:It},Ct()]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({}),t})();function Mt(t,e){return e instanceof n.OlP?t.get(e):e}function Lt(t,e,i){return i.map((i,r)=>{if(e[r]instanceof n.OlP){const n=t.get(e[r]);return{key:i.key,reducerFactory:n.reducerFactory?n.reducerFactory:U,metaReducers:n.metaReducers?n.metaReducers:[],initialState:n.initialState}}return i})}function It(t,e){return e.map(e=>e instanceof n.OlP?t.get(e):e)}function Ot(t){return"function"==typeof t?t():t}function Dt(t,e){return t.concat(e)}function Rt(t){if(t)throw new TypeError("StoreModule.forRoot() called twice. Feature modules should use StoreModule.forFeature() instead.");return"guarded"}},2281:(t,e)=>{"use strict";function i(t){return Object.keys(t).map(e=>t[e])}var n;Object.defineProperty(e,"__esModule",{value:!0}),(n=e.HashAlgorithms||(e.HashAlgorithms={})).SHA1="sha1",n.SHA256="sha256",n.SHA512="sha512";const r=i(e.HashAlgorithms);var s;(s=e.KeyEncodings||(e.KeyEncodings={})).ASCII="ascii",s.BASE64="base64",s.HEX="hex",s.LATIN1="latin1",s.UTF8="utf8";const o=i(e.KeyEncodings);var a;(a=e.Strategy||(e.Strategy={})).HOTP="hotp",a.TOTP="totp";const l=i(e.Strategy),c=()=>{throw new Error("Please provide an options.createDigest implementation.")};function h(t){return/^(\d+)$/.test(t)}function u(t,e,i){return t.length>=e?t:`${Array(e+1).join(i)}${t}`.slice(-1*e)}function d(t){const e=`otpauth://${t.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,i=[];if(l.indexOf(t.type)<0)throw new Error(`Expecting options.type to be one of ${l.join(", ")}. Received ${t.type}.`);if("hotp"===t.type){if(null==t.counter||"number"!=typeof t.counter)throw new Error('Expecting options.counter to be a number when options.type is "hotp".');i.push(`&counter=${t.counter}`)}return"totp"===t.type&&t.step&&i.push(`&period=${t.step}`),t.digits&&i.push(`&digits=${t.digits}`),t.algorithm&&i.push(`&algorithm=${t.algorithm.toUpperCase()}`),t.issuer&&i.push(`&issuer=${encodeURIComponent(t.issuer)}`),e.replace("{labelPrefix}",encodeURIComponent(t.issuer||t.accountName)).replace("{accountName}",encodeURIComponent(t.accountName)).replace("{secret}",t.secret).replace("{query}",i.join(""))}class p{constructor(t={}){this._defaultOptions=Object.freeze({...t}),this._options=Object.freeze({})}create(t={}){return new p(t)}clone(t={}){const e=this.create({...this._defaultOptions,...t});return e.options=this._options,e}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(t){this._options=Object.freeze({...this._options,...t})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}}function f(t){if("function"!=typeof t.createDigest)throw new Error("Expecting options.createDigest to be a function.");if("function"!=typeof t.createHmacKey)throw new Error("Expecting options.createHmacKey to be a function.");if("number"!=typeof t.digits)throw new Error("Expecting options.digits to be a number.");if(!t.algorithm||r.indexOf(t.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${r.join(", ")}. Received ${t.algorithm}.`);if(!t.encoding||o.indexOf(t.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${o.join(", ")}. Received ${t.encoding}.`)}const m=(t,e,i)=>Buffer.from(e,i).toString("hex");function g(){return{algorithm:e.HashAlgorithms.SHA1,createHmacKey:m,createDigest:c,digits:6,encoding:e.KeyEncodings.ASCII}}function y(t){const e={...g(),...t};return f(e),Object.freeze(e)}function b(t){return u(t.toString(16),16,"0")}function v(t,e){const i=Buffer.from(t,"hex"),n=15&i[i.length-1],r=((127&i[n])<<24|(255&i[n+1])<<16|(255&i[n+2])<<8|255&i[n+3])%Math.pow(10,e);return u(String(r),e,"0")}function _(t,e,i){return v(i.digest||function(t,e,i){const n=b(e),r=i.createHmacKey(i.algorithm,t,i.encoding);return i.createDigest(i.algorithm,r,n)}(t,e,i),i.digits)}function w(t,e,i,n){return!!h(t)&&t===_(e,i,n)}function x(t,i,n,r,s){return d({algorithm:s.algorithm,digits:s.digits,type:e.Strategy.HOTP,accountName:t,counter:r,issuer:i,secret:n})}class C extends p{create(t={}){return new C(t)}allOptions(){return y(this.options)}generate(t,e){return _(t,e,this.allOptions())}check(t,e,i){return w(t,e,i,this.allOptions())}verify(t){if("object"!=typeof t)throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret,t.counter)}keyuri(t,e,i,n){return x(t,e,i,n,this.allOptions())}}function A(t){if("number"==typeof t)return[Math.abs(t),Math.abs(t)];if(Array.isArray(t)){const[e,i]=t;if("number"==typeof e&&"number"==typeof i)return[Math.abs(e),Math.abs(i)]}throw new Error("Expecting options.window to be an number or [number, number].")}function S(t){if(f(t),A(t.window),"number"!=typeof t.epoch)throw new Error("Expecting options.epoch to be a number.");if("number"!=typeof t.step)throw new Error("Expecting options.step to be a number.")}const E=(t,e,i)=>{const n=t.length,r=Buffer.from(t,e).toString("hex");if(n{switch(t){case e.HashAlgorithms.SHA1:return E(i,n,20);case e.HashAlgorithms.SHA256:return E(i,n,32);case e.HashAlgorithms.SHA512:return E(i,n,64);default:throw new Error(`Expecting algorithm to be one of ${r.join(", ")}. Received ${t}.`)}};function T(){return{algorithm:e.HashAlgorithms.SHA1,createDigest:c,createHmacKey:k,digits:6,encoding:e.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function M(t){const e={...T(),...t};return S(e),Object.freeze(e)}function L(t,e){return Math.floor(t/e/1e3)}function I(t,e){return _(t,L(e.epoch,e.step),e)}function O(t,e,i,n){const r=[];if(0===n)return r;for(let s=1;s<=n;s++)r.push(t+e*s*i);return r}function D(t,e,i){const n=A(i),r=1e3*e;return{current:t,past:O(t,-1,r,n[0]),future:O(t,1,r,n[1])}}function R(t,e,i){return!!h(t)&&t===I(e,i)}function N(t,e,i,n){let r=null;return t.some((t,s)=>!!R(e,i,{...n,epoch:t})&&(r=s+1,!0)),r}function P(t,e,i){if(R(t,e,i))return 0;const n=D(i.epoch,i.step,i.window),r=N(n.past,t,e,i);return null!==r?-1*r:N(n.future,t,e,i)}function F(t,e){return Math.floor(t/1e3)%e}function Z(t,e){return e-F(t,e)}function B(t,i,n,r){return d({algorithm:r.algorithm,digits:r.digits,step:r.step,type:e.Strategy.TOTP,accountName:t,issuer:i,secret:n})}class U extends C{create(t={}){return new U(t)}allOptions(){return M(this.options)}generate(t){return I(t,this.allOptions())}checkDelta(t,e){return P(t,e,this.allOptions())}check(t,e){return"number"==typeof this.checkDelta(t,e)}verify(t){if("object"!=typeof t)throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret)}timeRemaining(){const t=this.allOptions();return Z(t.epoch,t.step)}timeUsed(){const t=this.allOptions();return F(t.epoch,t.step)}keyuri(t,e,i){return B(t,e,i,this.allOptions())}}function q(t){if(S(t),"function"!=typeof t.keyDecoder)throw new Error("Expecting options.keyDecoder to be a function.");if(t.keyEncoder&&"function"!=typeof t.keyEncoder)throw new Error("Expecting options.keyEncoder to be a function.")}function z(){return{algorithm:e.HashAlgorithms.SHA1,createDigest:c,createHmacKey:k,digits:6,encoding:e.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function H(t){const e={...z(),...t};return q(e),Object.freeze(e)}function Y(t,e){return e.keyEncoder(t,e.encoding)}function G(t,e){return e.keyDecoder(t,e.encoding)}function j(t,e){return Y(e.createRandomBytes(t,e.encoding),e)}function V(t,e){return I(G(t,e),e)}function Q(t,e,i){return P(t,G(e,i),i)}class W extends U{create(t={}){return new W(t)}allOptions(){return H(this.options)}generate(t){return V(t,this.allOptions())}checkDelta(t,e){return Q(t,e,this.allOptions())}encode(t){return Y(t,this.allOptions())}decode(t){return G(t,this.allOptions())}generateSecret(t=10){return j(t,this.allOptions())}}e.Authenticator=W,e.HASH_ALGORITHMS=r,e.HOTP=C,e.KEY_ENCODINGS=o,e.OTP=p,e.STRATEGY=l,e.TOTP=U,e.authenticatorCheckWithWindow=Q,e.authenticatorDecoder=G,e.authenticatorDefaultOptions=z,e.authenticatorEncoder=Y,e.authenticatorGenerateSecret=j,e.authenticatorOptionValidator=q,e.authenticatorOptions=H,e.authenticatorToken=V,e.createDigestPlaceholder=c,e.hotpCheck=w,e.hotpCounter=b,e.hotpCreateHmacKey=m,e.hotpDefaultOptions=g,e.hotpDigestToToken=v,e.hotpKeyuri=x,e.hotpOptions=y,e.hotpOptionsValidator=f,e.hotpToken=_,e.isTokenValid=h,e.keyuri=d,e.objectValues=i,e.padStart=u,e.totpCheck=R,e.totpCheckByEpoch=N,e.totpCheckWithWindow=P,e.totpCounter=L,e.totpCreateHmacKey=k,e.totpDefaultOptions=T,e.totpEpochAvailable=D,e.totpKeyuri=B,e.totpOptions=M,e.totpOptionsValidator=S,e.totpPadSecret=E,e.totpTimeRemaining=Z,e.totpTimeUsed=F,e.totpToken=I},6801:(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,r=(n=i(7508))&&"object"==typeof n&&"default"in n?n.default:n;e.createDigest=(t,e,i)=>r.createHmac(t,Buffer.from(e,"hex")).update(Buffer.from(i,"hex")).digest().toString("hex"),e.createRandomBytes=(t,e)=>r.randomBytes(t).toString(e)},9906:(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,r=(n=i(115))&&"object"==typeof n&&"default"in n?n.default:n;e.keyDecoder=(t,e)=>r.decode(t).toString(e),e.keyEncoder=(t,e)=>r.encode(Buffer.from(t,e).toString("ascii")).toString().replace(/=/g,"")},5097:(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(6801),r=i(9906),s=i(2281);const o=new s.HOTP({createDigest:n.createDigest}),a=new s.TOTP({createDigest:n.createDigest}),l=new s.Authenticator({createDigest:n.createDigest,createRandomBytes:n.createRandomBytes,keyDecoder:r.keyDecoder,keyEncoder:r.keyEncoder});e.authenticator=l,e.hotp=o,e.totp=a},1905:(t,e,i)=>{"use strict";i.d(e,{H5:()=>va,K$:()=>ba,a4:()=>Oa});var n=i(1572),r=i(1511),s=i(709),o=i(6899),a=i(5960),l=i(5057);function c(){}function h(t){return null==t?c:function(){return this.querySelector(t)}}function u(){return[]}function d(t){return null==t?u:function(){return this.querySelectorAll(t)}}function p(t){return function(){return this.matches(t)}}function f(t){return new Array(t.length)}function m(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function g(t,e,i,n,r,s){for(var o,a=0,l=e.length,c=s.length;ae?1:t>=e?0:NaN}m.prototype={constructor:m,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var v="http://www.w3.org/1999/xhtml";const _={svg:"http://www.w3.org/2000/svg",xhtml:v,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function w(t){var e=t+="",i=e.indexOf(":");return i>=0&&"xmlns"!==(e=t.slice(0,i))&&(t=t.slice(i+1)),_.hasOwnProperty(e)?{space:_[e],local:t}:t}function x(t){return function(){this.removeAttribute(t)}}function C(t){return function(){this.removeAttributeNS(t.space,t.local)}}function A(t,e){return function(){this.setAttribute(t,e)}}function S(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function E(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttribute(t):this.setAttribute(t,i)}}function k(t,e){return function(){var i=e.apply(this,arguments);null==i?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}function T(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function M(t){return function(){this.style.removeProperty(t)}}function L(t,e,i){return function(){this.style.setProperty(t,e,i)}}function I(t,e,i){return function(){var n=e.apply(this,arguments);null==n?this.style.removeProperty(t):this.style.setProperty(t,n,i)}}function O(t,e){return t.style.getPropertyValue(e)||T(t).getComputedStyle(t,null).getPropertyValue(e)}function D(t){return function(){delete this[t]}}function R(t,e){return function(){this[t]=e}}function N(t,e){return function(){var i=e.apply(this,arguments);null==i?delete this[t]:this[t]=i}}function P(t){return t.trim().split(/^|\s+/)}function F(t){return t.classList||new Z(t)}function Z(t){this._node=t,this._names=P(t.getAttribute("class")||"")}function B(t,e){for(var i=F(t),n=-1,r=e.length;++n=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var st={},ot=null;function at(t,e,i){return t=lt(t,e,i),function(e){var i=e.relatedTarget;i&&(i===this||8&i.compareDocumentPosition(this))||t.call(this,e)}}function lt(t,e,i){return function(n){var r=ot;ot=n;try{t.call(this,this.__data__,e,i)}finally{ot=r}}}function ct(t){return t.trim().split(/^|\s+/).map(function(t){var e="",i=t.indexOf(".");return i>=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}})}function ht(t){return function(){var e=this.__on;if(e){for(var i,n=0,r=-1,s=e.length;n=C&&(C=x+1);!(w=v[C])&&++C=0;)(n=r[s])&&(o&&4^n.compareDocumentPosition(o)&&o.parentNode.insertBefore(n,o),o=n);return this},sort:function(t){function e(e,i){return e&&i?t(e.__data__,i.__data__):!e-!i}t||(t=b);for(var i=this._groups,n=i.length,r=new Array(n),s=0;s1?this.each((null==e?M:"function"==typeof e?I:L)(t,e,null==i?"":i)):O(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?D:"function"==typeof e?N:R)(t,e)):this.node()[t]},classed:function(t,e){var i=P(t+"");if(arguments.length<2){for(var n=F(this.node()),r=-1,s=i.length;++r=0&&(i=t.slice(n+1),t=t.slice(0,n)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:i}})}function Ct(t,e){for(var i,n=0,r=t.length;n0)for(var i,n,r=new Array(i),s=0;s>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===i?jt(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===i?jt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Nt.exec(t))?new Wt(e[1],e[2],e[3],1):(e=Pt.exec(t))?new Wt(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Ft.exec(t))?jt(e[1],e[2],e[3],e[4]):(e=Zt.exec(t))?jt(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Bt.exec(t))?$t(e[1],e[2]/100,e[3]/100,1):(e=Ut.exec(t))?$t(e[1],e[2]/100,e[3]/100,e[4]):qt.hasOwnProperty(t)?Gt(qt[t]):"transparent"===t?new Wt(NaN,NaN,NaN,0):null}function Gt(t){return new Wt(t>>16&255,t>>8&255,255&t,1)}function jt(t,e,i,n){return n<=0&&(t=e=i=NaN),new Wt(t,e,i,n)}function Vt(t){return t instanceof Tt||(t=Yt(t)),t?new Wt((t=t.rgb()).r,t.g,t.b,t.opacity):new Wt}function Qt(t,e,i,n){return 1===arguments.length?Vt(t):new Wt(t,e,i,null==n?1:n)}function Wt(t,e,i,n){this.r=+t,this.g=+e,this.b=+i,this.opacity=+n}function Jt(){return"#"+Kt(this.r)+Kt(this.g)+Kt(this.b)}function Xt(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function Kt(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function $t(t,e,i,n){return n<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new ee(t,e,i,n)}function te(t){if(t instanceof ee)return new ee(t.h,t.s,t.l,t.opacity);if(t instanceof Tt||(t=Yt(t)),!t)return new ee;if(t instanceof ee)return t;var e=(t=t.rgb()).r/255,i=t.g/255,n=t.b/255,r=Math.min(e,i,n),s=Math.max(e,i,n),o=NaN,a=s-r,l=(s+r)/2;return a?(o=e===s?(i-n)/a+6*(i0&&l<1?0:o,new ee(o,a,l,t.opacity)}function ee(t,e,i,n){this.h=+t,this.s=+e,this.l=+i,this.opacity=+n}function ie(t,e,i){return 255*(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)}function ne(t,e,i,n,r){var s=t*t,o=s*t;return((1-3*t+3*s-o)*e+(4-6*s+3*o)*i+(1+3*t+3*s-3*o)*n+o*r)/6}function re(t){return function(){return t}}function se(t,e){var i=e-t;return i?function(t,e){return function(i){return t+i*e}}(t,i):re(isNaN(t)?e:t)}Et(Tt,Yt,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:zt,formatHex:zt,formatHsl:function(){return te(this).formatHsl()},formatRgb:Ht,toString:Ht}),Et(Wt,Qt,kt(Tt,{brighter:function(t){return t=null==t?Lt:Math.pow(Lt,t),new Wt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?Mt:Math.pow(Mt,t),new Wt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},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:Jt,formatHex:Jt,formatRgb:Xt,toString:Xt})),Et(ee,function(t,e,i,n){return 1===arguments.length?te(t):new ee(t,e,i,null==n?1:n)},kt(Tt,{brighter:function(t){return t=null==t?Lt:Math.pow(Lt,t),new ee(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?Mt:Math.pow(Mt,t),new ee(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,n=i+(i<.5?i:1-i)*e,r=2*i-n;return new Wt(ie(t>=240?t-240:t+120,r,n),ie(t,r,n),ie(t<120?t+240:t-120,r,n),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 t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));const oe=function t(e){var i=function(t){return 1==(t=+t)?se:function(e,i){return i-e?function(t,e,i){return t=Math.pow(t,i),e=Math.pow(e,i)-t,i=1/i,function(n){return Math.pow(t+n*e,i)}}(e,i,t):re(isNaN(e)?i:e)}}(e);function n(t,e){var n=i((t=Qt(t)).r,(e=Qt(e)).r),r=i(t.g,e.g),s=i(t.b,e.b),o=se(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=r(e),t.b=s(e),t.opacity=o(e),t+""}}return n.gamma=t,n}(1);function ae(t){return function(e){var i,n,r=e.length,s=new Array(r),o=new Array(r),a=new Array(r);for(i=0;i=1?(i=1,e-1):Math.floor(i*e),r=t[n],s=t[n+1];return ne((i-n/e)*e,n>0?t[n-1]:2*r-s,r,s,ns&&(r=e.slice(s,r),a[o]?a[o]+=r:a[++o]=r),(i=i[0])===(n=n[0])?a[o]?a[o]+=n:a[++o]=n:(a[++o]=null,l.push({i:o,x:he(i,n)})),s=pe.lastIndex;return s=0&&e._call.call(null,t),e=e._next;--ve}()}finally{ve=0,function(){for(var t,e,i=ye,n=1/0;i;)i._call?(n>i._time&&(n=i._time),t=i,i=i._next):(e=i._next,i._next=null,i=t?t._next=e:ye=e);be=t,De(n)}(),Ce=0}}function Oe(){var t=Se.now(),e=t-xe;e>1e3&&(Ae-=e,xe=t)}function De(t){ve||(_e&&(_e=clearTimeout(_e)),t-Ce>24?(t<1/0&&(_e=setTimeout(Ie,t-Se.now()-Ae)),we&&(we=clearInterval(we))):(we||(xe=Se.now(),we=setInterval(Oe,1e3)),ve=1,Ee(Ie)))}function Re(t,e,i){var n=new Me;return n.restart(function(i){n.stop(),t(i+e)},e=null==e?0:+e,i),n}Me.prototype=Le.prototype={constructor:Me,restart:function(t,e,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?ke():+i)+(null==e?0:+e),this._next||be===this||(be?be._next=this:ye=this,be=this),this._call=t,this._time=i,De()},stop:function(){this._call&&(this._call=null,this._time=1/0,De())}};var Ne=St("start","end","cancel","interrupt"),Pe=[];function Fe(t,e,i,n,r,s){var o=t.__transition;if(o){if(i in o)return}else t.__transition={};!function(t,e,i){var n,r=t.__transition;function s(l){var c,h,u,d;if(1!==i.state)return a();for(c in r)if((d=r[c]).name===i.name){if(3===d.state)return Re(s);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[c]):+c0)throw new Error("too late; already scheduled");return i}function Be(t,e){var i=Ue(t,e);if(i.state>3)throw new Error("too late; already running");return i}function Ue(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw new Error("transition not found");return i}var qe,ze,He,Ye,Ge=180/Math.PI,je={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ve(t,e,i,n,r,s){var o,a,l;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(l=t*i+e*n)&&(i-=t*l,n-=e*l),(a=Math.sqrt(i*i+n*n))&&(i/=a,n/=a,l/=a),t*n180?e+=360:e-t>180&&(t+=360),s.push({i:i.push(r(i)+"rotate(",null,n)-2,x:he(t,e)})):e&&i.push(r(i)+"rotate("+e+n)}(s.rotate,o.rotate,a,l),function(t,e,i,s){t!==e?s.push({i:i.push(r(i)+"skewX(",null,n)-2,x:he(t,e)}):e&&i.push(r(i)+"skewX("+e+n)}(s.skewX,o.skewX,a,l),function(t,e,i,n,s,o){if(t!==i||e!==n){var a=s.push(r(s)+"scale(",null,",",null,")");o.push({i:a-4,x:he(t,i)},{i:a-2,x:he(e,n)})}else 1===i&&1===n||s.push(r(s)+"scale("+i+","+n+")")}(s.scaleX,s.scaleY,o.scaleX,o.scaleY,a,l),s=o=null,function(t){for(var e,i=-1,n=l.length;++i=0&&(t=t.slice(0,e)),!t||"start"===t})}(e)?Ze:Be;return function(){var o=s(this,t),a=o.on;a!==n&&(r=(n=a).copy()).on(e,i),o.on=r}}var yi=bt.prototype.constructor;function bi(t){return function(){this.style.removeProperty(t)}}function vi(t,e,i){return function(n){this.style.setProperty(t,e.call(this,n),i)}}function _i(t,e,i){var n,r;function s(){var s=e.apply(this,arguments);return s!==r&&(n=(r=s)&&vi(t,s,i)),n}return s._value=e,s}function wi(t){return function(e){this.textContent=t.call(this,e)}}function xi(t){var e,i;function n(){var n=t.apply(this,arguments);return n!==i&&(e=(i=n)&&wi(n)),e}return n._value=t,n}var Ci=0;function Ai(t,e,i,n){this._groups=t,this._parents=e,this._name=i,this._id=n}function Si(){return++Ci}var Ei=bt.prototype;Ai.prototype=(function(t){return bt().transition(t)}).prototype={constructor:Ai,select:function(t){var e=this._name,i=this._id;"function"!=typeof t&&(t=h(t));for(var n=this._groups,r=n.length,s=new Array(r),o=0;oe?1:t>=e?0:NaN}function Ii(t){let e=t,i=t;function n(t,e,n,r){for(null==n&&(n=0),null==r&&(r=t.length);n>>1;i(t[s],e)<0?n=s+1:r=s}return n}return 1===t.length&&(e=(e,i)=>t(e)-i,i=function(t){return(e,i)=>Li(t(e),i)}(t)),{left:n,center:function(t,i,r,s){null==r&&(r=0),null==s&&(s=t.length);const o=n(t,i,r,s-1);return o>r&&e(t[o-1],i)>-e(t[o],i)?o-1:o},right:function(t,e,n,r){for(null==n&&(n=0),null==r&&(r=t.length);n>>1;i(t[s],e)>0?r=s:n=s+1}return n}}}bt.prototype.interrupt=function(t){return this.each(function(){!function(t,e){var i,n,r,s=t.__transition,o=!0;if(s){for(r in e=null==e?null:e+"",s)(i=s[r]).name===e?(n=i.state>2&&i.state<5,i.state=6,i.timer.stop(),i.on.call(n?"interrupt":"cancel",t,t.__data__,i.index,i.group),delete s[r]):o=!1;o&&delete t.__transition}}(this,t)})},bt.prototype.transition=function(t){var e,i;t instanceof Ai?(e=t._id,t=t._name):(e=Si(),(i=ki).time=ke(),t=null==t?null:t+"");for(var n=this._groups,r=n.length,s=0;s=0?(s>=Oi?10:s>=Di?5:s>=Ri?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(s>=Oi?10:s>=Di?5:s>=Ri?2:1)}function Pi(t,e,i){var n=Math.abs(e-t)/Math.max(0,i),r=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),s=n/r;return s>=Oi?r*=10:s>=Di?r*=5:s>=Ri&&(r*=2),e0))return a;do{a.push(o=new Date(+i)),e(i,s),t(i)}while(o=e)for(;t(e),!i(e);)e.setTime(e-1)},function(t,n){if(t>=t)if(n<0)for(;++n<=0;)for(;e(t,-1),!i(t););else for(;--n>=0;)for(;e(t,1),!i(t););})},i&&(r.count=function(e,n){return Hi.setTime(+e),Yi.setTime(+n),t(Hi),t(Yi),Math.floor(i(Hi,Yi))},r.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?r.filter(n?function(e){return n(e)%t==0}:function(e){return r.count(0,e)%t==0}):r:null}),r}var ji=Gi(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});ji.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Gi(function(e){e.setTime(Math.floor(e/t)*t)},function(e,i){e.setTime(+e+i*t)},function(e,i){return(i-e)/t}):ji:null};const Vi=ji,Qi=Gi(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*Fi)},function(t,e){return(e-t)/Fi},function(t){return t.getUTCSeconds()}),Wi=Gi(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Fi)},function(t,e){t.setTime(+t+e*Zi)},function(t,e){return(e-t)/Zi},function(t){return t.getMinutes()}),Ji=Gi(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Fi-t.getMinutes()*Zi)},function(t,e){t.setTime(+t+e*Bi)},function(t,e){return(e-t)/Bi},function(t){return t.getHours()}),Xi=Gi(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Zi)/Ui,t=>t.getDate()-1);function Ki(t){return Gi(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+7*e)},function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Zi)/qi})}var $i=Ki(0);const tn=(Ki(1),Ki(2),Ki(3),Ki(4),Ki(5),Ki(6),Gi(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}));var en=Gi(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});en.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Gi(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,i){e.setFullYear(e.getFullYear()+i*t)}):null};const nn=en,rn=Gi(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*Zi)},function(t,e){return(e-t)/Zi},function(t){return t.getUTCMinutes()}),sn=Gi(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*Bi)},function(t,e){return(e-t)/Bi},function(t){return t.getUTCHours()}),on=Gi(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Ui},function(t){return t.getUTCDate()-1});function an(t){return Gi(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+7*e)},function(t,e){return(e-t)/qi})}var ln=an(0);const cn=(an(1),an(2),an(3),an(4),an(5),an(6),Gi(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}));var hn=Gi(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});hn.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Gi(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,i){e.setUTCFullYear(e.getUTCFullYear()+i*t)}):null};const un=hn;function dn(t,e,i,n,r,s){const o=[[Qi,1,Fi],[Qi,5,5e3],[Qi,15,15e3],[Qi,30,3e4],[s,1,Zi],[s,5,3e5],[s,15,9e5],[s,30,18e5],[r,1,Bi],[r,3,108e5],[r,6,216e5],[r,12,432e5],[n,1,Ui],[n,2,1728e5],[i,1,qi],[e,1,2592e6],[e,3,7776e6],[t,1,zi]];function a(e,i,n){const r=Math.abs(i-e)/n,s=Ii(([,,t])=>t).right(o,r);if(s===o.length)return t.every(Pi(e/zi,i/zi,n));if(0===s)return Vi.every(Math.max(Pi(e,i,n),1));const[a,l]=o[r/o[s-1][2]0))return a;do{a.push(o=new Date(+i)),e(i,s),t(i)}while(o=e)for(;t(e),!i(e);)e.setTime(e-1)},function(t,n){if(t>=t)if(n<0)for(;++n<=0;)for(;e(t,-1),!i(t););else for(;--n>=0;)for(;e(t,1),!i(t););})},i&&(r.count=function(e,n){return yn.setTime(+e),bn.setTime(+n),t(yn),t(bn),Math.floor(i(yn,bn))},r.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?r.filter(n?function(e){return n(e)%t==0}:function(e){return r.count(0,e)%t==0}):r:null}),r}var _n=864e5,wn=6048e5;function xn(t){return vn(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+7*e)},function(t,e){return(e-t)/wn})}var Cn=xn(0),An=xn(1),Sn=(xn(2),xn(3),xn(4));const En=(xn(5),xn(6),vn(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/_n},function(t){return t.getUTCDate()-1}));function kn(t){return vn(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+7*e)},function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/wn})}var Tn=kn(0),Mn=kn(1),Ln=(kn(2),kn(3),kn(4));const In=(kn(5),kn(6),vn(function(t){t.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+e)},function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/_n},function(t){return t.getDate()-1}));var On=vn(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});On.every=function(t){return isFinite(t=Math.floor(t))&&t>0?vn(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,i){e.setFullYear(e.getFullYear()+i*t)}):null};const Dn=On;var Rn=vn(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Rn.every=function(t){return isFinite(t=Math.floor(t))&&t>0?vn(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,i){e.setUTCFullYear(e.getUTCFullYear()+i*t)}):null};const Nn=Rn;var Pn={"-":"",_:" ",0:"0"},Fn=/[\\^$*+?|[\]().{}]/g;function Zn(t,e,i){var n=t<0?"-":"",r=(n?-t:t)+"",s=r.length;return n+(s=4||0===e?Ln(t):Ln.ceil(t)}function tr(t,e){return t=$n(t),Zn(Ln.count(Dn(t),t)+(4===Dn(t).getDay()),e,2)}function er(t){return t.getDay()}function ir(t,e){return Zn(Mn.count(Dn(t)-1,t),e,2)}function nr(t,e){return Zn(t.getFullYear()%100,e,2)}function rr(t,e){return Zn((t=$n(t)).getFullYear()%100,e,2)}function sr(t,e){return Zn(t.getFullYear()%1e4,e,4)}function or(t,e){var i=t.getDay();return Zn((t=i>=4||0===i?Ln(t):Ln.ceil(t)).getFullYear()%1e4,e,4)}function ar(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Zn(e/60|0,"0",2)+Zn(e%60,"0",2)}function lr(t,e){return Zn(t.getUTCDate(),e,2)}function cr(t,e){return Zn(t.getUTCHours(),e,2)}function hr(t,e){return Zn(t.getUTCHours()%12||12,e,2)}function ur(t,e){return Zn(1+En.count(Nn(t),t),e,3)}function dr(t,e){return Zn(t.getUTCMilliseconds(),e,3)}function pr(t,e){return dr(t,e)+"000"}function fr(t,e){return Zn(t.getUTCMonth()+1,e,2)}function mr(t,e){return Zn(t.getUTCMinutes(),e,2)}function gr(t,e){return Zn(t.getUTCSeconds(),e,2)}function yr(t){var e=t.getUTCDay();return 0===e?7:e}function br(t,e){return Zn(Cn.count(Nn(t)-1,t),e,2)}function vr(t){var e=t.getUTCDay();return e>=4||0===e?Sn(t):Sn.ceil(t)}function _r(t,e){return t=vr(t),Zn(Sn.count(Nn(t),t)+(4===Nn(t).getUTCDay()),e,2)}function wr(t){return t.getUTCDay()}function xr(t,e){return Zn(An.count(Nn(t)-1,t),e,2)}function Cr(t,e){return Zn(t.getUTCFullYear()%100,e,2)}function Ar(t,e){return Zn((t=vr(t)).getUTCFullYear()%100,e,2)}function Sr(t,e){return Zn(t.getUTCFullYear()%1e4,e,4)}function Er(t,e){var i=t.getUTCDay();return Zn((t=i>=4||0===i?Sn(t):Sn.ceil(t)).getUTCFullYear()%1e4,e,4)}function kr(){return"+0000"}function Tr(){return"%"}function Mr(t){return+t}function Lr(t){return Math.floor(+t/1e3)}function Ir(t){return null===t?NaN:+t}!function(t){var e=t.dateTime,i=t.date,n=t.time,r=t.periods,s=t.days,o=t.shortDays,a=t.months,l=t.shortMonths,c=(Un(r),qn(r),Un(s),qn(s),Un(o),qn(o),Un(a),qn(a),Un(l),qn(l),{a:function(t){return o[t.getDay()]},A:function(t){return s[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return a[t.getMonth()]},c:null,d:zn,e:zn,f:Vn,g:rr,G:or,H:Hn,I:Yn,j:Gn,L:jn,m:Qn,M:Wn,p:function(t){return r[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:Mr,s:Lr,S:Jn,u:Xn,U:Kn,V:tr,w:er,W:ir,x:null,X:null,y:nr,Y:sr,Z:ar,"%":Tr}),h={a:function(t){return o[t.getUTCDay()]},A:function(t){return s[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return a[t.getUTCMonth()]},c:null,d:lr,e:lr,f:pr,g:Ar,G:Er,H:cr,I:hr,j:ur,L:dr,m:fr,M:mr,p:function(t){return r[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:Mr,s:Lr,S:gr,u:yr,U:br,V:_r,w:wr,W:xr,x:null,X:null,y:Cr,Y:Sr,Z:kr,"%":Tr};function u(t,e){return function(i){var n,r,s,o=[],a=-1,l=0,c=t.length;for(i instanceof Date||(i=new Date(+i));++a(e=o[l-1])&&(i=t,t=e,e=i),c=function(i){return Math.max(t,Math.min(e,i))}),n=l>2?Ur:Br,r=s=null,u}function u(e){return null==e||isNaN(e=+e)?i:(r||(r=n(o.map(t),a,l)))(t(c(e)))}return u.invert=function(i){return c(e((s||(s=n(a,o.map(t),he)))(i)))},u.domain=function(t){return arguments.length?(o=Array.from(t,Nr),h()):o.slice()},u.range=function(t){return arguments.length?(a=Array.from(t),h()):a.slice()},u.rangeRound=function(t){return a=Array.from(t),l=Rr,h()},u.clamp=function(t){return arguments.length?(c=!!t||Fr,h()):c!==Fr},u.interpolate=function(t){return arguments.length?(l=t,h()):l},u.unknown=function(t){return arguments.length?(i=t,u):i},function(i,n){return t=i,e=n,h()}}()(Fr,Fr)}function Hr(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}var Yr,Gr=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function jr(t){if(!(e=Gr.exec(t)))throw new Error("invalid format: "+t);var e;return new Vr({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function Vr(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Qr(t,e){if((i=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var i,n=t.slice(0,i);return[n.length>1?n[0]+n.slice(2):n,+t.slice(i+1)]}function Wr(t){return(t=Qr(Math.abs(t)))?t[1]:NaN}function Jr(t,e){var i=Qr(t,e);if(!i)return t+"";var n=i[0],r=i[1];return r<0?"0."+new Array(-r).join("0")+n:n.length>r+1?n.slice(0,r+1)+"."+n.slice(r+1):n+new Array(r-n.length+2).join("0")}jr.prototype=Vr.prototype,Vr.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};const Xr={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return Jr(100*t,e)},r:Jr,s:function(t,e){var i=Qr(t,e);if(!i)return t+"";var n=i[0],r=i[1],s=r-(Yr=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,o=n.length;return s===o?n:s>o?n+new Array(s-o+1).join("0"):s>0?n.slice(0,s)+"."+n.slice(s):"0."+new Array(1-s).join("0")+Qr(t,Math.max(0,e+s-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function Kr(t){return t}var $r,ts,es,is=Array.prototype.map,ns=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function rs(t){var e=t.domain;return t.ticks=function(t){var i=e();return function(t,e,i){var n,r,s,o,a=-1;if(i=+i,(t=+t)==(e=+e)&&i>0)return[t];if((n=e0){let i=Math.round(t/o),n=Math.round(e/o);for(i*oe&&--n,s=new Array(r=n-i+1);++ae&&--n,s=new Array(r=n-i+1);++a0;){if((r=Ni(l,c,i))===n)return s[o]=l,s[a]=c,e(s);if(r>0)l=Math.floor(l/r)*r,c=Math.ceil(c/r)*r;else{if(!(r<0))break;l=Math.ceil(l*r)/r,c=Math.floor(c*r)/r}n=r}return t},t}function ss(){var t=zr();return t.copy=function(){return qr(t,ss())},Hr.apply(t,arguments),rs(t)}function os(t,e,i){t=+t,e=+e,i=(r=arguments.length)<2?(e=t,t=0,1):r<3?1:+i;for(var n=-1,r=0|Math.max(0,Math.ceil((e-t)/i)),s=new Array(r);++n0&&a>0&&(l+a+1>n&&(a=Math.max(1,n-l)),s.push(t.substring(r-=a,r+a)),!((l+=a+1)>n));)a=e[o=(o+1)%e.length];return s.reverse().join(i)}),r=void 0===t.currency?"":t.currency[0]+"",s=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",a=void 0===t.numerals?Kr:function(t){return function(e){return e.replace(/[0-9]/g,function(e){return t[+e]})}}(is.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"-":t.minus+"",h=void 0===t.nan?"NaN":t.nan+"";function u(t){var e=(t=jr(t)).fill,i=t.align,u=t.sign,d=t.symbol,p=t.zero,f=t.width,m=t.comma,g=t.precision,y=t.trim,b=t.type;"n"===b?(m=!0,b="g"):Xr[b]||(void 0===g&&(g=12),y=!0,b="g"),(p||"0"===e&&"="===i)&&(p=!0,e="0",i="=");var v="$"===d?r:"#"===d&&/[boxX]/.test(b)?"0"+b.toLowerCase():"",_="$"===d?s:/[%p]/.test(b)?l:"",w=Xr[b],x=/[defgprs%]/.test(b);function C(t){var r,s,l,d=v,C=_;if("c"===b)C=w(t)+C,t="";else{var A=(t=+t)<0||1/t<0;if(t=isNaN(t)?h:w(Math.abs(t),g),y&&(t=function(t){t:for(var e,i=t.length,n=1,r=-1;n0&&(r=0)}return r>0?t.slice(0,r)+t.slice(e+1):t}(t)),A&&0==+t&&"+"!==u&&(A=!1),d=(A?"("===u?u:c:"-"===u||"("===u?"":u)+d,C=("s"===b?ns[8+Yr/3]:"")+C+(A&&"("===u?")":""),x)for(r=-1,s=t.length;++r(l=t.charCodeAt(r))||l>57){C=(46===l?o+t.slice(r+1):t.slice(r))+C,t=t.slice(0,r);break}}m&&!p&&(t=n(t,1/0));var S=d.length+t.length+C.length,E=S>1)+d+t+C+E.slice(S);break;default:t=E+d+t+C}return a(t)}return g=void 0===g?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),C.toString=function(){return t+""},C}return{format:u,formatPrefix:function(t,e){var i=u(((t=jr(t)).type="f",t)),n=3*Math.max(-8,Math.min(8,Math.floor(Wr(e)/3))),r=Math.pow(10,-n),s=ns[8+n/3];return function(t){return i(r*t)+s}}}}({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),ts=$r.format,es=$r.formatPrefix;const as=Symbol("implicit");function ls(){var t=new Map,e=[],i=[],n=as;function r(r){var s=r+"",o=t.get(s);if(!o){if(n!==as)return n;t.set(s,o=e.push(r))}return i[(o-1)%i.length]}return r.domain=function(i){if(!arguments.length)return e.slice();e=[],t=new Map;for(const n of i){const i=n+"";t.has(i)||t.set(i,e.push(n))}return r},r.range=function(t){return arguments.length?(i=Array.from(t),r):i.slice()},r.unknown=function(t){return arguments.length?(n=t,r):n},r.copy=function(){return ls(e,i).unknown(n)},Hr.apply(r,arguments),r}function cs(){var t,e,i=ls().unknown(void 0),n=i.domain,r=i.range,s=0,o=1,a=!1,l=0,c=0,h=.5;function u(){var i=n().length,u=o=1)return+i(t[n-1],n-1,t);var n,r=(n-1)*e,s=Math.floor(r),o=+i(t[s],s,t);return o+(+i(t[s+1],s+1,t)-o)*(r-s)}}function us(){var t,e=[],i=[],n=[];function r(){var t=0,r=Math.max(1,i.length);for(n=new Array(r-1);++t0?n[r-1]:e[0],r=0;)e+=i[n].value;else e=1;t.value=e}function Es(t,e){var i,n,r,s,o,a=new Ls(t),l=+t.value&&(a.value=t.value),c=[a];for(null==e&&(e=ks);i=c.pop();)if(l&&(i.value=+i.data.value),(r=e(i.data))&&(o=r.length))for(i.children=new Array(o),s=o-1;s>=0;--s)c.push(n=i.children[s]=new Ls(r[s])),n.parent=i,n.depth=i.depth+1;return a.eachBefore(Ms)}function ks(t){return t.children}function Ts(t){t.data=t.data.data}function Ms(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function Ls(t){this.data=t,this.depth=this.height=0,this.parent=null}ys.prototype=(function(){return new ys}).prototype={constructor:ys,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,i,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+i)+","+(this._y1=+n)},bezierCurveTo:function(t,e,i,n,r,s){this._+="C"+ +t+","+ +e+","+ +i+","+ +n+","+(this._x1=+r)+","+(this._y1=+s)},arcTo:function(t,e,i,n,r){var s=this._x1,o=this._y1,a=(i=+i)-(t=+t),l=(n=+n)-(e=+e),c=s-t,h=o-e,u=c*c+h*h;if((r=+r)<0)throw new Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(u>ms)if(Math.abs(h*a-l*c)>ms&&r){var d=i-s,p=n-o,f=a*a+l*l,m=d*d+p*p,g=Math.sqrt(f),y=Math.sqrt(u),b=r*Math.tan((ps-Math.acos((f+u-m)/(2*g*y)))/2),v=b/y,_=b/g;Math.abs(v-1)>ms&&(this._+="L"+(t+v*c)+","+(e+v*h)),this._+="A"+r+","+r+",0,0,"+ +(h*d>c*p)+","+(this._x1=t+_*a)+","+(this._y1=e+_*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,i,n,r,s){t=+t,e=+e,s=!!s;var o=(i=+i)*Math.cos(n),a=i*Math.sin(n),l=t+o,c=e+a,h=1^s,u=s?n-r:r-n;if(i<0)throw new Error("negative radius: "+i);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>ms||Math.abs(this._y1-c)>ms)&&(this._+="L"+l+","+c),i&&(u<0&&(u=u%fs+fs),u>gs?this._+="A"+i+","+i+",0,1,"+h+","+(t-o)+","+(e-a)+"A"+i+","+i+",0,1,"+h+","+(this._x1=l)+","+(this._y1=c):u>ms&&(this._+="A"+i+","+i+",0,"+ +(u>=ps)+","+h+","+(this._x1=t+i*Math.cos(r))+","+(this._y1=e+i*Math.sin(r))))},rect:function(t,e,i,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +i+"v"+ +n+"h"+-i+"Z"},toString:function(){return this._}},_s.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:vs(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:vs(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},function t(e){function i(t){return new _s(t,e)}return i.tension=function(e){return t(+e)},i}(0),ws.prototype={areaStart:bs,areaEnd:bs,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:vs(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},function t(e){function i(t){return new ws(t,e)}return i.tension=function(e){return t(+e)},i}(0),xs.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}},Math,Math,Math,Math,Math,Math,Math,Math,function t(e){function i(t,i,n,r,s){!function(t,e,i,n,r,s){for(var o,a,l,c,h,u,d,p,f,m,g,y=[],b=e.children,v=0,_=0,w=b.length,x=e.value;vd&&(d=a),g=h*h*m,(p=Math.max(d/g,g/u))>f){h-=a;break}f=p}y.push(o={value:h,dice:l1?e:1)},i}((1+Math.sqrt(5))/2),Ls.prototype=Es.prototype={constructor:Ls,count:function(){return this.eachAfter(Ss)},each:function(t){var e,i,n,r,s=this,o=[s];do{for(e=o.reverse(),o=[];s=e.pop();)if(t(s),i=s.children)for(n=0,r=i.length;n=0;--i)r.push(e[i]);return this},sum:function(t){return this.eachAfter(function(e){for(var i=+t(e.data)||0,n=e.children,r=n&&n.length;--r>=0;)i+=n[r].value;e.value=i})},sort:function(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})},path:function(t){for(var e=this,i=function(t,e){if(t===e)return t;var i=t.ancestors(),n=e.ancestors(),r=null;for(t=i.pop(),e=n.pop();t===e;)r=t,t=i.pop(),e=n.pop();return r}(e,t),n=[e];e!==i;)n.push(e=e.parent);for(var r=n.length;t!==i;)n.splice(r,0,t),t=t.parent;return n},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each(function(e){t.push(e)}),t},leaves:function(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t},links:function(){var t=this,e=[];return t.each(function(i){i!==t&&e.push({source:i.parent,target:i})}),e},copy:function(){return Es(this).eachBefore(Ts)}};var Is=i(269);const Os=["caretElm"];function Ds(t,e){}const Rs=function(t){return{model:t}};function Ns(t,e){if(1&t&&(n.TgZ(0,"span"),n.YNc(1,Ds,0,0,"ng-template",5),n.qZA()),2&t){const t=n.oxw();n.xp6(1),n.Q6J("ngTemplateOutlet",t.template)("ngTemplateOutletContext",n.VKq(2,Rs,t.context))}}function Ps(t,e){if(1&t&&n._UZ(0,"span",6),2&t){const t=n.oxw();n.Q6J("innerHTML",t.title,n.oJD)}}function Fs(t,e){if(1&t&&(n.O4$(),n.kcU(),n._UZ(0,"ngx-charts-scale-legend",4)),2&t){const t=n.oxw();n.Q6J("horizontal",t.legendOptions&&"below"===t.legendOptions.position)("valueRange",t.legendOptions.domain)("colors",t.legendOptions.colors)("height",t.view[1])("width",t.legendWidth)}}function Zs(t,e){if(1&t){const t=n.EpF();n.O4$(),n.kcU(),n.TgZ(0,"ngx-charts-legend",5),n.NdJ("labelClick",function(e){return n.CHM(t),n.oxw().legendLabelClick.emit(e)})("labelActivate",function(e){return n.CHM(t),n.oxw().legendLabelActivate.emit(e)})("labelDeactivate",function(e){return n.CHM(t),n.oxw().legendLabelDeactivate.emit(e)}),n.qZA()}if(2&t){const t=n.oxw();n.Q6J("horizontal",t.legendOptions&&"below"===t.legendOptions.position)("data",t.legendOptions.domain)("title",t.legendOptions.title)("colors",t.legendOptions.colors)("height",t.view[1])("width",t.legendWidth)("activeEntries",t.activeEntries)}}const Bs=["*"],Us=["ngx-charts-axis-label",""],qs=["ticksel"],zs=["ngx-charts-x-axis-ticks",""];function Hs(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g",3),n.TgZ(1,"title"),n._uU(2),n.qZA(),n.TgZ(3,"text",4),n._uU(4),n.qZA(),n.qZA()),2&t){const t=e.$implicit,i=n.oxw();n.uIk("transform",i.tickTransform(t)),n.xp6(2),n.Oqu(i.tickFormat(t)),n.xp6(1),n.Udp("font-size","12px"),n.uIk("text-anchor",i.textAnchor)("transform",i.textTransform),n.xp6(1),n.hij(" ",i.tickTrim(i.tickFormat(t))," ")}}function Ys(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g"),n._UZ(1,"line",6),n.qZA()),2&t){const t=n.oxw(2);n.uIk("transform",t.gridLineTransform()),n.xp6(1),n.uIk("y1",-t.gridLineHeight)}}function Gs(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g"),n.YNc(1,Ys,2,2,"g",5),n.qZA()),2&t){const t=e.$implicit,i=n.oxw();n.uIk("transform",i.tickTransform(t)),n.xp6(1),n.Q6J("ngIf",i.showGridLines)}}const js=["ngx-charts-x-axis",""];function Vs(t,e){if(1&t){const t=n.EpF();n.O4$(),n.TgZ(0,"g",2),n.NdJ("dimensionsChanged",function(e){return n.CHM(t),n.oxw().emitTicksHeight(e)}),n.qZA()}if(2&t){const t=n.oxw();n.Q6J("trimTicks",t.trimTicks)("rotateTicks",t.rotateTicks)("maxTickLength",t.maxTickLength)("tickFormatting",t.tickFormatting)("tickArguments",t.tickArguments)("tickStroke",t.tickStroke)("scale",t.xScale)("orient",t.xOrient)("showGridLines",t.showGridLines)("gridLineHeight",t.dims.height)("width",t.dims.width)("tickValues",t.ticks)}}function Qs(t,e){if(1&t&&(n.O4$(),n._UZ(0,"g",3)),2&t){const t=n.oxw();n.Q6J("label",t.labelText)("offset",t.labelOffset)("orient","bottom")("height",t.dims.height)("width",t.dims.width)}}const Ws=["ngx-charts-y-axis-ticks",""];function Js(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g",4),n.TgZ(1,"title"),n._uU(2),n.qZA(),n.TgZ(3,"text",5),n._uU(4),n.qZA(),n.qZA()),2&t){const t=e.$implicit,i=n.oxw();n.uIk("transform",i.transform(t)),n.xp6(2),n.Oqu(i.tickFormat(t)),n.xp6(1),n.Udp("font-size","12px"),n.uIk("dy",i.dy)("x",i.x1)("y",i.y1)("text-anchor",i.textAnchor),n.xp6(1),n.hij(" ",i.tickTrim(i.tickFormat(t))," ")}}function Xs(t,e){if(1&t&&(n.O4$(),n._UZ(0,"path",6)),2&t){const t=n.oxw();n.uIk("d",t.referenceAreaPath)("transform",t.gridLineTransform())}}function Ks(t,e){if(1&t&&(n.O4$(),n._UZ(0,"line",9)),2&t){const t=n.oxw(3);n.uIk("x2",t.gridLineWidth)}}function $s(t,e){if(1&t&&(n.O4$(),n._UZ(0,"line",9)),2&t){const t=n.oxw(3);n.uIk("x2",-t.gridLineWidth)}}function to(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g"),n.YNc(1,Ks,1,1,"line",8),n.YNc(2,$s,1,1,"line",8),n.qZA()),2&t){const t=n.oxw(2);n.uIk("transform",t.gridLineTransform()),n.xp6(1),n.Q6J("ngIf","left"===t.orient),n.xp6(1),n.Q6J("ngIf","right"===t.orient)}}function eo(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g"),n.YNc(1,to,3,3,"g",7),n.qZA()),2&t){const t=e.$implicit,i=n.oxw();n.uIk("transform",i.transform(t)),n.xp6(1),n.Q6J("ngIf",i.showGridLines)}}function io(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g"),n.TgZ(1,"title"),n._uU(2),n.qZA(),n.TgZ(3,"text",11),n._uU(4),n.qZA(),n.qZA()),2&t){const t=n.oxw(2).$implicit,e=n.oxw();n.xp6(2),n.Oqu(e.tickTrim(e.tickFormat(t.value))),n.xp6(1),n.uIk("dy",e.dy)("y",-6)("x",e.gridLineWidth)("text-anchor",e.textAnchor),n.xp6(1),n.hij(" ",t.name," ")}}function no(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g"),n._UZ(1,"line",10),n.YNc(2,io,5,6,"g",7),n.qZA()),2&t){const t=n.oxw().$implicit,e=n.oxw();n.uIk("transform",e.transform(t.value)),n.xp6(1),n.uIk("x2",e.gridLineWidth)("transform",e.gridLineTransform()),n.xp6(1),n.Q6J("ngIf",e.showRefLabels)}}function ro(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g"),n.YNc(1,no,3,4,"g",7),n.qZA()),2&t){const t=n.oxw();n.xp6(1),n.Q6J("ngIf",t.showRefLines)}}const so=["ngx-charts-y-axis",""];function oo(t,e){if(1&t){const t=n.EpF();n.O4$(),n.TgZ(0,"g",2),n.NdJ("dimensionsChanged",function(e){return n.CHM(t),n.oxw().emitTicksWidth(e)}),n.qZA()}if(2&t){const t=n.oxw();n.Q6J("trimTicks",t.trimTicks)("maxTickLength",t.maxTickLength)("tickFormatting",t.tickFormatting)("tickArguments",t.tickArguments)("tickValues",t.ticks)("tickStroke",t.tickStroke)("scale",t.yScale)("orient",t.yOrient)("showGridLines",t.showGridLines)("gridLineWidth",t.dims.width)("referenceLines",t.referenceLines)("showRefLines",t.showRefLines)("showRefLabels",t.showRefLabels)("height",t.dims.height)}}function ao(t,e){if(1&t&&(n.O4$(),n._UZ(0,"g",3)),2&t){const t=n.oxw();n.Q6J("label",t.labelText)("offset",t.labelOffset)("orient",t.yOrient)("height",t.dims.height)("width",t.dims.width)}}const lo=["ngx-charts-grid-panel",""],co=["ngx-charts-grid-panel-series",""];function ho(t,e){if(1&t&&(n.O4$(),n._UZ(0,"g",1)),2&t){const t=e.$implicit;n.ekj("grid-panel",!0)("odd","odd"===t.class)("even","even"===t.class),n.Q6J("height",t.height)("width",t.width)("x",t.x)("y",t.y)}}const uo=["ngx-charts-svg-linear-gradient",""];function po(t,e){if(1&t&&(n.O4$(),n._UZ(0,"stop")),2&t){const t=e.$implicit;n.Udp("stop-color",t.color)("stop-opacity",t.opacity),n.uIk("offset",t.offset+"%")}}function fo(t,e){if(1&t&&(n.TgZ(0,"header",4),n.TgZ(1,"span",5),n._uU(2),n.qZA(),n.qZA()),2&t){const t=n.oxw();n.xp6(2),n.Oqu(t.title)}}function mo(t,e){if(1&t){const t=n.EpF();n.TgZ(0,"li",6),n.TgZ(1,"ngx-charts-legend-entry",7),n.NdJ("select",function(e){return n.CHM(t),n.oxw().labelClick.emit(e)})("activate",function(e){return n.CHM(t),n.oxw().activate(e)})("deactivate",function(e){return n.CHM(t),n.oxw().deactivate(e)}),n.qZA(),n.qZA()}if(2&t){const t=e.$implicit,i=n.oxw();n.xp6(1),n.Q6J("label",t.label)("formattedLabel",t.formattedLabel)("color",t.color)("isActive",i.isActive(t))}}const go=["tooltipTemplate"],yo=function(t,e){return[t,e]},bo=".ngx-charts{float:left;overflow:visible}.ngx-charts .arc,.ngx-charts .bar,.ngx-charts .circle{cursor:pointer}.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .card.active,.ngx-charts .card:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .arc:focus,.ngx-charts .bar:focus,.ngx-charts .card:focus,.ngx-charts .cell:focus{outline:none}.ngx-charts .arc.hidden,.ngx-charts .bar.hidden,.ngx-charts .card.hidden,.ngx-charts .cell.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .area-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .line-series.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .polar-series-path.inactive{opacity:.2;transition:opacity .1s ease-in-out}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{fill:none;stroke:#ddd;stroke-width:1}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-dasharray:5;stroke-dashoffset:5;stroke-width:1}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill:#000;fill-opacity:.05}.ngx-charts .gridline-path-dotted{fill:none;stroke:#ddd;stroke-dasharray:1,20;stroke-dashoffset:3;stroke-width:1}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:rgba(0,0,0,.05)}",vo=["ngx-charts-bar",""];function _o(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"defs"),n._UZ(1,"g",2),n.qZA()),2&t){const t=n.oxw();n.xp6(1),n.Q6J("orientation",t.orientation)("name",t.gradientId)("stops",t.gradientStops)}}function wo(t,e){if(1&t){const t=n.EpF();n.O4$(),n.TgZ(0,"g",5),n.NdJ("dimensionsChanged",function(e){return n.CHM(t),n.oxw().updateXAxisHeight(e)}),n.qZA()}if(2&t){const t=n.oxw();n.Q6J("xScale",t.xScale)("dims",t.dims)("showLabel",t.showXAxisLabel)("labelText",t.xAxisLabel)("trimTicks",t.trimXAxisTicks)("rotateTicks",t.rotateXAxisTicks)("maxTickLength",t.maxXAxisTickLength)("tickFormatting",t.xAxisTickFormatting)("ticks",t.xAxisTicks)("xAxisOffset",t.dataLabelMaxHeight.negative)}}function xo(t,e){if(1&t){const t=n.EpF();n.O4$(),n.TgZ(0,"g",6),n.NdJ("dimensionsChanged",function(e){return n.CHM(t),n.oxw().updateYAxisWidth(e)}),n.qZA()}if(2&t){const t=n.oxw();n.Q6J("yScale",t.yScale)("dims",t.dims)("showGridLines",t.showGridLines)("showLabel",t.showYAxisLabel)("labelText",t.yAxisLabel)("trimTicks",t.trimYAxisTicks)("maxTickLength",t.maxYAxisTickLength)("tickFormatting",t.yAxisTickFormatting)("ticks",t.yAxisTicks)}}function Co(t,e){if(1&t){const t=n.EpF();n.O4$(),n.TgZ(0,"g",6),n.NdJ("dimensionsChanged",function(e){return n.CHM(t),n.oxw().updateXAxisHeight(e)}),n.qZA()}if(2&t){const t=n.oxw();n.Q6J("xScale",t.groupScale)("dims",t.dims)("showLabel",t.showXAxisLabel)("labelText",t.xAxisLabel)("trimTicks",t.trimXAxisTicks)("rotateTicks",t.rotateXAxisTicks)("maxTickLength",t.maxXAxisTickLength)("tickFormatting",t.xAxisTickFormatting)("ticks",t.xAxisTicks)("xAxisOffset",t.dataLabelMaxHeight.negative)}}function Ao(t,e){if(1&t){const t=n.EpF();n.O4$(),n.TgZ(0,"g",7),n.NdJ("dimensionsChanged",function(e){return n.CHM(t),n.oxw().updateYAxisWidth(e)}),n.qZA()}if(2&t){const t=n.oxw();n.Q6J("yScale",t.valueScale)("dims",t.dims)("showGridLines",t.showGridLines)("showLabel",t.showYAxisLabel)("labelText",t.yAxisLabel)("trimTicks",t.trimYAxisTicks)("maxTickLength",t.maxYAxisTickLength)("tickFormatting",t.yAxisTickFormatting)("ticks",t.yAxisTicks)}}function So(t,e){if(1&t){const t=n.EpF();n.O4$(),n.TgZ(0,"g",8),n.NdJ("select",function(e){const i=n.CHM(t).$implicit;return n.oxw().onClick(e,i)})("activate",function(e){const i=n.CHM(t).$implicit;return n.oxw().onActivate(e,i)})("deactivate",function(e){const i=n.CHM(t).$implicit;return n.oxw().onDeactivate(e,i)})("dataLabelHeightChanged",function(e){const i=n.CHM(t).index;return n.oxw().onDataLabelMaxHeightChanged(e,i)}),n.qZA()}if(2&t){const t=e.$implicit,i=n.oxw();n.Q6J("@animationState","active")("activeEntries",i.activeEntries)("xScale",i.innerScale)("yScale",i.valueScale)("colors",i.colors)("series",t.series)("dims",i.dims)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("tooltipTemplate",i.tooltipTemplate)("showDataLabel",i.showDataLabel)("dataLabelFormatting",i.dataLabelFormatting)("seriesName",t.name)("roundEdges",i.roundEdges)("animations",i.animations)("noBarWhenZero",i.noBarWhenZero),n.uIk("transform",i.groupTransform(t))}}const Eo=["ngx-charts-series-vertical",""];function ko(t,e){if(1&t){const t=n.EpF();n.O4$(),n.TgZ(0,"g",2),n.NdJ("select",function(e){return n.CHM(t),n.oxw().onClick(e)})("activate",function(e){return n.CHM(t),n.oxw().activate.emit(e)})("deactivate",function(e){return n.CHM(t),n.oxw().deactivate.emit(e)}),n.qZA()}if(2&t){const t=e.$implicit,i=n.oxw();n.Q6J("@animationState","active")("@.disabled",!i.animations)("width",t.width)("height",t.height)("x",t.x)("y",t.y)("fill",t.color)("stops",t.gradientStops)("data",t.data)("orientation","vertical")("roundEdges",t.roundEdges)("gradient",i.gradient)("ariaLabel",t.ariaLabel)("isActive",i.isActive(t.data))("tooltipDisabled",i.tooltipDisabled)("tooltipPlacement",i.tooltipPlacement)("tooltipType",i.tooltipType)("tooltipTitle",i.tooltipTemplate?void 0:t.tooltipText)("tooltipTemplate",i.tooltipTemplate)("tooltipContext",t.data)("noBarWhenZero",i.noBarWhenZero)("animations",i.animations)}}function To(t,e){if(1&t){const t=n.EpF();n.O4$(),n.TgZ(0,"g",4),n.NdJ("dimensionsChanged",function(e){const i=n.CHM(t).index;return n.oxw(2).dataLabelHeightChanged.emit({size:e,index:i})}),n.qZA()}if(2&t){const t=e.$implicit,i=n.oxw(2);n.Q6J("barX",t.x)("barY",t.y)("barWidth",t.width)("barHeight",t.height)("value",t.total)("valueFormatting",i.dataLabelFormatting)("orientation","vertical")}}function Mo(t,e){if(1&t&&(n.O4$(),n.TgZ(0,"g"),n.YNc(1,To,1,7,"g",3),n.qZA()),2&t){const t=n.oxw();n.xp6(1),n.Q6J("ngForOf",t.barsForDataLabels)("ngForTrackBy",t.trackDataLabelBy)}}const Lo=["ngx-charts-bar-label",""];let Io=(()=>{class t{constructor(t,e,i){this.applicationRef=t,this.componentFactoryResolver=e,this.injector=i}static setGlobalRootViewContainer(e){t.globalRootViewContainer=e}getRootViewContainer(){if(this._container)return this._container;if(t.globalRootViewContainer)return t.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(t){this._container=t}getComponentRootNode(t){return t.element?t.element.nativeElement:t.hostView&&t.hostView.rootNodes.length>0?t.hostView.rootNodes[0]:t.location.nativeElement}getRootViewContainerNode(t){return this.getComponentRootNode(t)}projectComponentBindings(t,e){if(e){if(void 0!==e.inputs){const i=Object.getOwnPropertyNames(e.inputs);for(const n of i)t.instance[n]=e.inputs[n]}if(void 0!==e.outputs){const i=Object.getOwnPropertyNames(e.outputs);for(const n of i)t.instance[n]=e.outputs[n]}}return t}appendComponent(t,e={},i){i||(i=this.getRootViewContainer());const n=this.getComponentRootNode(i),r=new o.F0(n,this.componentFactoryResolver,this.applicationRef,this.injector),s=new o.C5(t),a=r.attach(s);return this.projectComponentBindings(a,e),a}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(n.z2F),n.LFG(n._Vd),n.LFG(n.zs3))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t.globalRootViewContainer=null,t})();function Oo(t,e,i){let n,r,s;i=i||{};let o=null,a=0;function l(){a=!1===i.leading?0:+new Date,o=null,s=t.apply(n,r)}return function(){const c=+new Date;a||!1!==i.leading||(a=c);const h=e-(c-a);return n=this,r=arguments,h<=0?(clearTimeout(o),o=null,a=c,s=t.apply(n,r)):o||!1===i.trailing||(o=setTimeout(l,h)),s}}var Do=function(t){return t[t.top="top"]="top",t[t.bottom="bottom"]="bottom",t[t.left="left"]="left",t[t.right="right"]="right",t}({});function Ro(t,e,i){return"top"===i?t.top-7:"bottom"===i?t.top+t.height-e.height+7:"center"===i?t.top+t.height/2-e.height/2:void 0}function No(t,e,i){return"left"===i?t.left-7:"right"===i?t.left+t.width-e.width+7:"center"===i?t.left+t.width/2-e.width/2:void 0}class Po{static calculateVerticalAlignment(t,e,i){let n=Ro(t,e,i);return n+e.height>window.innerHeight&&(n=window.innerHeight-e.height),n}static calculateVerticalCaret(t,e,i,n){let r;"top"===n&&(r=t.height/2-i.height/2+7),"bottom"===n&&(r=e.height-t.height/2-i.height/2-7),"center"===n&&(r=e.height/2-i.height/2);const s=Ro(t,e,n);return s+e.height>window.innerHeight&&(r+=s+e.height-window.innerHeight),r}static calculateHorizontalAlignment(t,e,i){let n=No(t,e,i);return n+e.width>window.innerWidth&&(n=window.innerWidth-e.width),n}static calculateHorizontalCaret(t,e,i,n){let r;"left"===n&&(r=t.width/2-i.width/2+7),"right"===n&&(r=e.width-t.width/2-i.width/2-7),"center"===n&&(r=e.width/2-i.width/2);const s=No(t,e,n);return s+e.width>window.innerWidth&&(r+=s+e.width-window.innerWidth),r}static shouldFlip(t,e,i,n){let r=!1;return"right"===i&&t.left+t.width+e.width+n>window.innerWidth&&(r=!0),"left"===i&&t.left-e.width-n<0&&(r=!0),"top"===i&&t.top-e.height-n<0&&(r=!0),"bottom"===i&&t.top+t.height+e.height+n>window.innerHeight&&(r=!0),r}static positionCaret(t,e,i,n,r){let s=0,o=0;return t===Do.right?(o=-7,s=Po.calculateVerticalCaret(i,e,n,r)):t===Do.left?(o=e.width,s=Po.calculateVerticalCaret(i,e,n,r)):t===Do.top?(s=e.height,o=Po.calculateHorizontalCaret(i,e,n,r)):t===Do.bottom&&(s=-7,o=Po.calculateHorizontalCaret(i,e,n,r)),{top:s,left:o}}static positionContent(t,e,i,n,r){let s=0,o=0;return t===Do.right?(o=i.left+i.width+n,s=Po.calculateVerticalAlignment(i,e,r)):t===Do.left?(o=i.left-e.width-n,s=Po.calculateVerticalAlignment(i,e,r)):t===Do.top?(s=i.top-e.height-n,o=Po.calculateHorizontalAlignment(i,e,r)):t===Do.bottom&&(s=i.top+i.height+n,o=Po.calculateHorizontalAlignment(i,e,r)),{top:s,left:o}}static determinePlacement(t,e,i,n){if(Po.shouldFlip(i,e,t,n)){if(t===Do.right)return Do.left;if(t===Do.left)return Do.right;if(t===Do.top)return Do.bottom;if(t===Do.bottom)return Do.top}return t}}let Fo=(()=>{class t{constructor(t,e){this.element=t,this.renderer=e}get cssClasses(){let t="ngx-charts-tooltip-content";return t+=` position-${this.placement}`,t+=` type-${this.type}`,t+=` ${this.cssClass}`,t}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){const t=this.element.nativeElement,e=this.host.nativeElement.getBoundingClientRect();if(!e.height&&!e.width)return;const i=t.getBoundingClientRect();this.checkFlip(e,i),this.positionContent(t,e,i),this.showCaret&&this.positionCaret(e,i),setTimeout(()=>this.renderer.addClass(t,"animate"),1)}positionContent(t,e,i){const{top:n,left:r}=Po.positionContent(this.placement,i,e,this.spacing,this.alignment);this.renderer.setStyle(t,"top",`${n}px`),this.renderer.setStyle(t,"left",`${r}px`)}positionCaret(t,e){const i=this.caretElm.nativeElement,n=i.getBoundingClientRect(),{top:r,left:s}=Po.positionCaret(this.placement,e,t,n,this.alignment);this.renderer.setStyle(i,"top",`${r}px`),this.renderer.setStyle(i,"left",`${s}px`)}checkFlip(t,e){this.placement=Po.determinePlacement(this.placement,e,t,this.spacing)}onWindowResize(){this.position()}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(n.Qsj))},t.\u0275cmp=n.Xpm({type:t,selectors:[["ngx-tooltip-content"]],viewQuery:function(t,e){if(1&t&&n.Gf(Os,5),2&t){let t;n.iGM(t=n.CRH())&&(e.caretElm=t.first)}},hostVars:2,hostBindings:function(t,e){1&t&&n.NdJ("resize",function(){return e.onWindowResize()},!1,n.Jf7),2&t&&n.Tol(e.cssClasses)},inputs:{placement:"placement",host:"host",showCaret:"showCaret",type:"type",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[[3,"hidden"],["caretElm",""],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(t,e){1&t&&(n.TgZ(0,"div"),n._UZ(1,"span",0,1),n.TgZ(3,"div",2),n.YNc(4,Ns,2,4,"span",3),n.YNc(5,Ps,1,1,"span",4),n.qZA(),n.qZA()),2&t&&(n.xp6(1),n.Gre("tooltip-caret position-",e.placement,""),n.Q6J("hidden",!e.showCaret),n.xp6(3),n.Q6J("ngIf",!e.title),n.xp6(1),n.Q6J("ngIf",e.title))},directives:[r.O5,r.tP],styles:[".ngx-charts-tooltip-content{border-radius:3px;display:block;font-weight:400;opacity:0;pointer-events:none!important;position:fixed;z-index:5000}.ngx-charts-tooltip-content.type-popover{background:#fff;border:1px solid #72809b;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);color:#060709;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{height:0;position:absolute;width:0;z-index:5001}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-bottom:7px solid transparent;border-left:7px solid #fff;border-top:7px solid transparent}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-bottom:7px solid transparent;border-right:7px solid #fff;border-top:7px solid transparent}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-bottom:7px solid #fff;border-left:7px solid transparent;border-right:7px solid transparent}.ngx-charts-tooltip-content.type-tooltip{background:rgba(0,0,0,.75);color:#fff;font-size:12px;padding:0 10px;pointer-events:auto;text-align:center}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75);border-top:7px solid transparent}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75);border-top:7px solid transparent}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-bottom:7px solid rgba(0,0,0,.75);border-left:7px solid transparent;border-right:7px solid transparent}.ngx-charts-tooltip-content .tooltip-label{display:block;font-size:1em;line-height:1em;padding:8px 5px 5px}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{height:0;position:absolute;width:0;z-index:5001}.ngx-charts-tooltip-content.position-right{transform:translate3d(10px,0,0)}.ngx-charts-tooltip-content.position-left{transform:translate3d(-10px,0,0)}.ngx-charts-tooltip-content.position-top{transform:translate3d(0,-10px,0)}.ngx-charts-tooltip-content.position-bottom{transform:translate3d(0,10px,0)}.ngx-charts-tooltip-content.animate{opacity:1;pointer-events:auto;transform:translateZ(0);transition:opacity .3s,transform .3s}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{line-height:1.2em;padding:5px 0;text-align:left}.tooltip-item .tooltip-item-color{border-radius:3px;color:#5b646b;display:inline-block;height:12px;margin-right:5px;width:12px}"],encapsulation:2}),function(t,e,i,n){var r,s=arguments.length,o=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(r=t[a])&&(o=(s<3?r(o):s>3?r(e,i,o):r(e,i))||o);s>3&&o&&Object.defineProperty(e,i,o)}([(100,function(t,e,i){return{configurable:!0,enumerable:i.enumerable,get:function(){return Object.defineProperty(this,e,{configurable:!0,enumerable:i.enumerable,value:Oo(i.value,100,undefined)}),this[e]}}})],t.prototype,"onWindowResize",null),t})(),Zo=(()=>{class t extends class{constructor(t){this.injectionService=t,this.defaults={},this.components=new Map}getByType(t=this.type){return this.components.get(t)}create(t){return this.createByType(this.type,t)}createByType(t,e){e=this.assignDefaults(e);const i=this.injectComponent(t,e);return this.register(t,i),i}destroy(t){const e=this.components.get(t.componentType);if(e&&e.length){const i=e.indexOf(t);i>-1&&(e[i].destroy(),e.splice(i,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(t){const e=this.components.get(t);if(e&&e.length){let t=e.length-1;for(;t>=0;)this.destroy(e[t--])}}injectComponent(t,e){return this.injectionService.appendComponent(t,e)}assignDefaults(t){const e=Object.assign({},this.defaults.inputs),i=Object.assign({},this.defaults.outputs);return t.inputs||t.outputs||(t={inputs:t}),e&&(t.inputs=Object.assign(Object.assign({},e),t.inputs)),i&&(t.outputs=Object.assign(Object.assign({},i),t.outputs)),t}register(t,e){this.components.has(t)||this.components.set(t,[]),this.components.get(t).push(e)}}{constructor(t){super(t),this.type=Fo}}return t.\u0275fac=function(e){return new(e||t)(n.LFG(Io))},t.\u0275prov=n.Yz7({token:t,factory:t.\u0275fac}),t})(),Bo=(()=>{class t{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new n.vpe,this.legendLabelActivate=new n.vpe,this.legendLabelDeactivate=new n.vpe}ngOnChanges(t){this.update()}update(){let t=0;this.showLegend&&(this.legendType=this.getLegendType(),this.legendOptions&&"right"!==this.legendOptions.position||(t="scaleLegend"===this.legendType?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-t)/12),this.legendWidth=this.legendOptions&&"right"!==this.legendOptions.position?this.chartWidth:Math.floor(this.view[0]*t/12)}getLegendType(){return"linear"===this.legendOptions.scaleType?"scaleLegend":"legend"}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["ngx-charts-chart"]],inputs:{showLegend:"showLegend",animations:"animations",legendType:"legendType",view:"view",legendOptions:"legendOptions",data:"data",legendData:"legendData",colors:"colors",activeEntries:"activeEntries"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[n._Bn([Zo]),n.TTD],ngContentSelectors:Bs,decls:5,vars:8,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate"]],template:function(t,e){1&t&&(n.F$t(),n.TgZ(0,"div",0),n.O4$(),n.TgZ(1,"svg",1),n.Hsn(2),n.qZA(),n.YNc(3,Fs,1,5,"ngx-charts-scale-legend",2),n.YNc(4,Zs,1,7,"ngx-charts-legend",3),n.qZA()),2&t&&(n.Udp("width",e.view[0],"px"),n.Q6J("@animationState","active")("@.disabled",!e.animations),n.xp6(1),n.uIk("width",e.chartWidth)("height",e.view[1]),n.xp6(2),n.Q6J("ngIf",e.showLegend&&"scaleLegend"===e.legendType),n.xp6(1),n.Q6J("ngIf",e.showLegend&&"legend"===e.legendType))},directives:function(){return[r.O5,ua,ca]},encapsulation:2,data:{animation:[(0,s.X$)("animationState",[(0,s.eR)(":enter",[(0,s.oB)({opacity:0}),(0,s.jt)("500ms 100ms",(0,s.oB)({opacity:1}))])])]},changeDetection:0}),t})(),Uo=(()=>{class t{constructor(t,e){this.element=t,this.zone=e,this.visible=new n.vpe,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const t=()=>{if(!this.element)return;const{offsetHeight:e,offsetWidth:i}=this.element.nativeElement;e&&i?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>t(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>t())})}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(n.R0b))},t.\u0275dir=n.lG2({type:t,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),t})(),qo=(()=>{class t{constructor(t,e,i){this.chartElement=t,this.zone=e,this.cd=i,this.scheme="cool",this.schemeType="ordinal",this.animations=!0,this.select=new n.vpe}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new Uo(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(t){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const t=this.getContainerDims();t&&(this.width=t.width,this.height=t.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let t,e;const i=this.chartElement.nativeElement;if(null!==i.parentNode){const n=i.parentNode.getBoundingClientRect();t=n.width,e=n.height}return t&&e?{width:t,height:e}:null}formatDates(){for(let t=0;t{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=t}cloneData(t){const e=[];for(const i of t){const t={name:i.name};if(void 0!==i.value&&(t.value=i.value),void 0!==i.series){t.series=[];for(const e of i.series){const i=Object.assign({},e);t.series.push(i)}}void 0!==i.extra&&(t.extra=JSON.parse(JSON.stringify(i.extra))),e.push(t)}return e}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq),n.Y36(n.R0b),n.Y36(n.sBO))},t.\u0275cmp=n.Xpm({type:t,selectors:[["base-chart"]],inputs:{scheme:"scheme",schemeType:"schemeType",animations:"animations",results:"results",view:"view",customColors:"customColors"},outputs:{select:"select"},features:[n.TTD],decls:1,vars:0,template:function(t,e){1&t&&n._UZ(0,"div")},encapsulation:2}),t})(),zo=(()=>{class t{constructor(t){this.textHeight=25,this.margin=5,this.element=t.nativeElement}ngOnChanges(t){this.update()}update(){switch(this.strokeWidth="0.01",this.textAnchor="middle",this.transform="",this.orient){case"top":case"bottom":this.y=this.offset,this.x=this.width/2;break;case"left":this.y=-(this.offset+this.textHeight+this.margin),this.x=-this.height/2,this.transform="rotate(270)";break;case"right":this.y=this.offset+this.margin,this.x=-this.height/2,this.transform="rotate(270)"}}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq))},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-axis-label",""]],inputs:{orient:"orient",label:"label",offset:"offset",width:"width",height:"height"},features:[n.TTD],attrs:Us,decls:2,vars:6,template:function(t,e){1&t&&(n.O4$(),n.TgZ(0,"text"),n._uU(1),n.qZA()),2&t&&(n.uIk("stroke-width",e.strokeWidth)("x",e.x)("y",e.y)("text-anchor",e.textAnchor)("transform",e.transform),n.xp6(1),n.hij(" ",e.label," "))},encapsulation:2,changeDetection:0}),t})();function Ho(t,e=16){return"string"!=typeof t?"number"==typeof t?t+"":"":(t=t.trim()).length<=e?t:`${t.slice(0,e)}...`}function Yo(t,e){if(t.length>e){const i=[],n=Math.floor(t.length/e);for(let e=0;e{class t{constructor(){this.tickArguments=[5],this.tickStroke="#ccc",this.trimTicks=!0,this.maxTickLength=16,this.showGridLines=!1,this.rotateTicks=!0,this.dimensionsChanged=new n.vpe,this.verticalSpacing=20,this.rotateLabels=!1,this.innerTickSize=6,this.outerTickSize=6,this.tickPadding=3,this.textAnchor="middle",this.maxTicksLength=0,this.maxAllowedLength=16,this.height=0}ngOnChanges(t){this.update()}ngAfterViewInit(){setTimeout(()=>this.updateDims())}updateDims(){const t=parseInt(this.ticksElement.nativeElement.getBoundingClientRect().height,10);t!==this.height&&(this.height=t,this.dimensionsChanged.emit({height:t}),setTimeout(()=>this.updateDims()))}update(){const t=this.scale;this.ticks=this.getTicks(),this.tickFormat=this.tickFormatting?this.tickFormatting:t.tickFormat?t.tickFormat.apply(t,this.tickArguments):function(t){return"Date"===t.constructor.name?t.toLocaleDateString():t.toLocaleString()};const e=this.rotateTicks?this.getRotationAngle(this.ticks):null;this.adjustedScale=this.scale.bandwidth?function(t){return this.scale(t)+.5*this.scale.bandwidth()}:this.scale,this.textTransform="",e&&0!==e?(this.textTransform=`rotate(${e})`,this.textAnchor="end",this.verticalSpacing=10):this.textAnchor="middle",setTimeout(()=>this.updateDims())}getRotationAngle(t){let e=0;this.maxTicksLength=0;for(let s=0;sthis.maxTicksLength&&(this.maxTicksLength=i)}const i=8*Math.min(this.maxTicksLength,this.maxAllowedLength);let n=i;const r=Math.floor(this.width/t.length);for(;n>r&&e>-90;)e-=30,n=Math.cos(e*(Math.PI/180))*i;return e}getTicks(){let t;const e=this.getMaxTicks(20),i=this.getMaxTicks(100);return this.tickValues?t=this.tickValues:this.scale.ticks?t=this.scale.ticks.apply(this.scale,[i]):(t=this.scale.domain(),t=Yo(t,e)),t}getMaxTicks(t){return Math.floor(this.width/t)}tickTransform(t){return"translate("+this.adjustedScale(t)+","+this.verticalSpacing+")"}gridLineTransform(){return`translate(0,${-this.verticalSpacing-5})`}tickTrim(t){return this.trimTicks?Ho(t,this.maxTickLength):t}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-x-axis-ticks",""]],viewQuery:function(t,e){if(1&t&&n.Gf(qs,5),2&t){let t;n.iGM(t=n.CRH())&&(e.ticksElement=t.first)}},inputs:{tickArguments:"tickArguments",tickStroke:"tickStroke",trimTicks:"trimTicks",maxTickLength:"maxTickLength",showGridLines:"showGridLines",rotateTicks:"rotateTicks",scale:"scale",orient:"orient",tickValues:"tickValues",tickFormatting:"tickFormatting",gridLineHeight:"gridLineHeight",width:"width"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[n.TTD],attrs:zs,decls:4,vars:2,consts:[["ticksel",""],["class","tick",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"tick"],["stroke-width","0.01"],[4,"ngIf"],["y2","0",1,"gridline-path","gridline-path-vertical"]],template:function(t,e){1&t&&(n.O4$(),n.TgZ(0,"g",null,0),n.YNc(2,Hs,5,7,"g",1),n.qZA(),n.YNc(3,Gs,2,2,"g",2)),2&t&&(n.xp6(2),n.Q6J("ngForOf",e.ticks),n.xp6(1),n.Q6J("ngForOf",e.ticks))},directives:[r.sg,r.O5],encapsulation:2,changeDetection:0}),t})(),jo=(()=>{class t{constructor(){this.rotateTicks=!0,this.showGridLines=!1,this.xOrient="bottom",this.xAxisOffset=0,this.dimensionsChanged=new n.vpe,this.xAxisClassName="x axis",this.labelOffset=0,this.fill="none",this.stroke="stroke",this.tickStroke="#ccc",this.strokeWidth="none",this.padding=5}ngOnChanges(t){this.update()}update(){this.transform=`translate(0,${this.xAxisOffset+this.padding+this.dims.height})`,void 0!==this.xAxisTickCount&&(this.tickArguments=[this.xAxisTickCount])}emitTicksHeight({height:t}){const e=t+25+5;e!==this.labelOffset&&(this.labelOffset=e,setTimeout(()=>{this.dimensionsChanged.emit({height:t})},0))}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-x-axis",""]],viewQuery:function(t,e){if(1&t&&n.Gf(Go,5),2&t){let t;n.iGM(t=n.CRH())&&(e.ticksComponent=t.first)}},inputs:{rotateTicks:"rotateTicks",showGridLines:"showGridLines",xOrient:"xOrient",xAxisOffset:"xAxisOffset",xScale:"xScale",dims:"dims",trimTicks:"trimTicks",maxTickLength:"maxTickLength",tickFormatting:"tickFormatting",showLabel:"showLabel",labelText:"labelText",ticks:"ticks",xAxisTickInterval:"xAxisTickInterval",xAxisTickCount:"xAxisTickCount"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[n.TTD],attrs:js,decls:3,vars:4,consts:[["ngx-charts-x-axis-ticks","",3,"trimTicks","rotateTicks","maxTickLength","tickFormatting","tickArguments","tickStroke","scale","orient","showGridLines","gridLineHeight","width","tickValues","dimensionsChanged",4,"ngIf"],["ngx-charts-axis-label","",3,"label","offset","orient","height","width",4,"ngIf"],["ngx-charts-x-axis-ticks","",3,"trimTicks","rotateTicks","maxTickLength","tickFormatting","tickArguments","tickStroke","scale","orient","showGridLines","gridLineHeight","width","tickValues","dimensionsChanged"],["ngx-charts-axis-label","",3,"label","offset","orient","height","width"]],template:function(t,e){1&t&&(n.O4$(),n.TgZ(0,"g"),n.YNc(1,Vs,1,12,"g",0),n.YNc(2,Qs,1,5,"g",1),n.qZA()),2&t&&(n.uIk("class",e.xAxisClassName)("transform",e.transform),n.xp6(1),n.Q6J("ngIf",e.xScale),n.xp6(1),n.Q6J("ngIf",e.showLabel))},directives:[r.O5,Go,zo],encapsulation:2,changeDetection:0}),t})();function Vo(t,e,i,n,r,[s,o,a,l]){let c="";return c=`M${[t+r,e]}`,c+="h"+((i=0===(i=Math.floor(i))?1:i)-2*r),c+=o?`a${[r,r]} 0 0 1 ${[r,r]}`:`h${r}v${r}`,c+="v"+((n=0===(n=Math.floor(n))?1:n)-2*r),c+=l?`a${[r,r]} 0 0 1 ${[-r,r]}`:`v${r}h${-r}`,c+="h"+(2*r-i),c+=a?`a${[r,r]} 0 0 1 ${[-r,-r]}`:`h${-r}v${-r}`,c+="v"+(2*r-n),c+=s?`a${[r,r]} 0 0 1 ${[r,-r]}`:`v${-r}h${r}`,c+="z",c}let Qo=(()=>{class t{constructor(){this.tickArguments=[5],this.tickStroke="#ccc",this.trimTicks=!0,this.maxTickLength=16,this.showGridLines=!1,this.showRefLabels=!1,this.showRefLines=!1,this.dimensionsChanged=new n.vpe,this.innerTickSize=6,this.tickPadding=3,this.verticalSpacing=20,this.textAnchor="middle",this.width=0,this.outerTickSize=6,this.rotateLabels=!1,this.referenceLineLength=0}ngOnChanges(t){this.update()}ngAfterViewInit(){setTimeout(()=>this.updateDims())}updateDims(){const t=parseInt(this.ticksElement.nativeElement.getBoundingClientRect().width,10);t!==this.width&&(this.width=t,this.dimensionsChanged.emit({width:t}),setTimeout(()=>this.updateDims()))}update(){let t;const e="top"===this.orient||"right"===this.orient?-1:1;switch(this.tickSpacing=Math.max(this.innerTickSize,0)+this.tickPadding,t=this.scale,this.ticks=this.getTicks(),this.tickFormat=this.tickFormatting?this.tickFormatting:t.tickFormat?t.tickFormat.apply(t,this.tickArguments):function(t){return"Date"===t.constructor.name?t.toLocaleDateString():t.toLocaleString()},this.adjustedScale=t.bandwidth?function(e){return t(e)+.5*t.bandwidth()}:t,this.showRefLines&&this.referenceLines&&this.setReferencelines(),this.orient){case"top":case"bottom":this.transform=function(t){return"translate("+this.adjustedScale(t)+",0)"},this.textAnchor="middle",this.y2=this.innerTickSize*e,this.y1=this.tickSpacing*e,this.dy=e<0?"0em":".71em";break;case"left":this.transform=function(t){return"translate(0,"+this.adjustedScale(t)+")"},this.textAnchor="end",this.x2=this.innerTickSize*-e,this.x1=this.tickSpacing*-e,this.dy=".32em";break;case"right":this.transform=function(t){return"translate(0,"+this.adjustedScale(t)+")"},this.textAnchor="start",this.x2=this.innerTickSize*-e,this.x1=this.tickSpacing*-e,this.dy=".32em"}setTimeout(()=>this.updateDims())}setReferencelines(){this.refMin=this.adjustedScale(Math.min.apply(null,this.referenceLines.map(t=>t.value))),this.refMax=this.adjustedScale(Math.max.apply(null,this.referenceLines.map(t=>t.value))),this.referenceLineLength=this.referenceLines.length,this.referenceAreaPath=Vo(0,this.refMax,this.gridLineWidth,this.refMin-this.refMax,0,[!1,!1,!1,!1])}getTicks(){let t;const e=this.getMaxTicks(20),i=this.getMaxTicks(50);return this.tickValues?t=this.tickValues:this.scale.ticks?t=this.scale.ticks.apply(this.scale,[i]):(t=this.scale.domain(),t=Yo(t,e)),t}getMaxTicks(t){return Math.floor(this.height/t)}tickTransform(t){return`translate(${this.adjustedScale(t)},${this.verticalSpacing})`}gridLineTransform(){return"translate(5,0)"}tickTrim(t){return this.trimTicks?Ho(t,this.maxTickLength):t}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-y-axis-ticks",""]],viewQuery:function(t,e){if(1&t&&n.Gf(qs,5),2&t){let t;n.iGM(t=n.CRH())&&(e.ticksElement=t.first)}},inputs:{tickArguments:"tickArguments",tickStroke:"tickStroke",trimTicks:"trimTicks",maxTickLength:"maxTickLength",showGridLines:"showGridLines",showRefLabels:"showRefLabels",showRefLines:"showRefLines",scale:"scale",orient:"orient",tickValues:"tickValues",tickFormatting:"tickFormatting",gridLineWidth:"gridLineWidth",height:"height",referenceLines:"referenceLines"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[n.TTD],attrs:Ws,decls:6,vars:4,consts:[["ticksel",""],["class","tick",4,"ngFor","ngForOf"],["class","reference-area",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"tick"],["stroke-width","0.01"],[1,"reference-area"],[4,"ngIf"],["class","gridline-path gridline-path-horizontal","x1","0",4,"ngIf"],["x1","0",1,"gridline-path","gridline-path-horizontal"],["x1","0",1,"refline-path","gridline-path-horizontal"],[1,"refline-label"]],template:function(t,e){1&t&&(n.O4$(),n.TgZ(0,"g",null,0),n.YNc(2,Js,5,9,"g",1),n.qZA(),n.YNc(3,Xs,1,2,"path",2),n.YNc(4,eo,2,2,"g",3),n.YNc(5,ro,2,1,"g",3)),2&t&&(n.xp6(2),n.Q6J("ngForOf",e.ticks),n.xp6(1),n.Q6J("ngIf",e.referenceLineLength>1&&e.refMax&&e.refMin&&e.showRefLines),n.xp6(1),n.Q6J("ngForOf",e.ticks),n.xp6(1),n.Q6J("ngForOf",e.referenceLines))},directives:[r.sg,r.O5],encapsulation:2,changeDetection:0}),t})(),Wo=(()=>{class t{constructor(){this.showGridLines=!1,this.yOrient="left",this.yAxisOffset=0,this.dimensionsChanged=new n.vpe,this.yAxisClassName="y axis",this.labelOffset=15,this.fill="none",this.stroke="#CCC",this.tickStroke="#CCC",this.strokeWidth=1,this.padding=5}ngOnChanges(t){this.update()}update(){this.offset=-(this.yAxisOffset+this.padding),"right"===this.yOrient?(this.labelOffset=65,this.transform=`translate(${this.offset+this.dims.width} , 0)`):(this.offset=this.offset,this.transform=`translate(${this.offset} , 0)`),void 0!==this.yAxisTickCount&&(this.tickArguments=[this.yAxisTickCount])}emitTicksWidth({width:t}){t!==this.labelOffset&&"right"===this.yOrient?(this.labelOffset=t+this.labelOffset,setTimeout(()=>{this.dimensionsChanged.emit({width:t})},0)):t!==this.labelOffset&&(this.labelOffset=t,setTimeout(()=>{this.dimensionsChanged.emit({width:t})},0))}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-y-axis",""]],viewQuery:function(t,e){if(1&t&&n.Gf(Qo,5),2&t){let t;n.iGM(t=n.CRH())&&(e.ticksComponent=t.first)}},inputs:{showGridLines:"showGridLines",yOrient:"yOrient",yAxisOffset:"yAxisOffset",yScale:"yScale",dims:"dims",trimTicks:"trimTicks",maxTickLength:"maxTickLength",tickFormatting:"tickFormatting",ticks:"ticks",showLabel:"showLabel",labelText:"labelText",yAxisTickInterval:"yAxisTickInterval",yAxisTickCount:"yAxisTickCount",referenceLines:"referenceLines",showRefLines:"showRefLines",showRefLabels:"showRefLabels"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[n.TTD],attrs:so,decls:3,vars:4,consts:[["ngx-charts-y-axis-ticks","",3,"trimTicks","maxTickLength","tickFormatting","tickArguments","tickValues","tickStroke","scale","orient","showGridLines","gridLineWidth","referenceLines","showRefLines","showRefLabels","height","dimensionsChanged",4,"ngIf"],["ngx-charts-axis-label","",3,"label","offset","orient","height","width",4,"ngIf"],["ngx-charts-y-axis-ticks","",3,"trimTicks","maxTickLength","tickFormatting","tickArguments","tickValues","tickStroke","scale","orient","showGridLines","gridLineWidth","referenceLines","showRefLines","showRefLabels","height","dimensionsChanged"],["ngx-charts-axis-label","",3,"label","offset","orient","height","width"]],template:function(t,e){1&t&&(n.O4$(),n.TgZ(0,"g"),n.YNc(1,oo,1,14,"g",0),n.YNc(2,ao,1,5,"g",1),n.qZA()),2&t&&(n.uIk("class",e.yAxisClassName)("transform",e.transform),n.xp6(1),n.Q6J("ngIf",e.yScale),n.xp6(1),n.Q6J("ngIf",e.showLabel))},directives:[r.O5,Qo,zo],encapsulation:2,changeDetection:0}),t})(),Jo=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[r.ez]]}),t})();var Xo=function(t){return t[t.popover="popover"]="popover",t[t.tooltip="tooltip"]="tooltip",t}({}),Ko=function(t){return t[t.left="left"]="left",t[t.center="center"]="center",t[t.right="right"]="right",t}({}),$o=function(t){return t[t.all="all"]="all",t[t.focus="focus"]="focus",t[t.mouseover="mouseover"]="mouseover",t}({});let ta=(()=>{class t{constructor(t,e,i){this.tooltipService=t,this.viewContainerRef=e,this.renderer=i,this.tooltipCssClass="",this.tooltipTitle="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Do.top,this.tooltipAlignment=Ko.center,this.tooltipType=Xo.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=$o.all,this.tooltipImmediateExit=!1,this.show=new n.vpe,this.hide=new n.vpe}get listensForFocus(){return this.tooltipShowEvent===$o.all||this.tooltipShowEvent===$o.focus}get listensForHover(){return this.tooltipShowEvent===$o.all||this.tooltipShowEvent===$o.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(t){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(t))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(t){if(this.component||this.tooltipDisabled)return;const e=t?0:this.tooltipShowTimeout;clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const t=this.createBoundOptions();this.component=this.tooltipService.create(t),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},e)}addHideListeners(t){this.mouseEnterContentEvent=this.renderer.listen(t,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(t,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen(document,"click",e=>{t.contains(e.target)||this.hideTooltip()}))}hideTooltip(t=!1){if(!this.component)return;const e=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),t?e():this.timeout=setTimeout(e,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(Zo),n.Y36(n.s_b),n.Y36(n.Qsj))},t.\u0275dir=n.lG2({type:t,selectors:[["","ngx-tooltip",""]],hostBindings:function(t,e){1&t&&n.NdJ("focusin",function(){return e.onFocus()})("blur",function(){return e.onBlur()})("mouseenter",function(){return e.onMouseEnter()})("mouseleave",function(t){return e.onMouseLeave(t.target)})("click",function(){return e.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipTitle:"tooltipTitle",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipShowEvent:"tooltipShowEvent",tooltipImmediateExit:"tooltipImmediateExit",tooltipTemplate:"tooltipTemplate",tooltipContext:"tooltipContext"},outputs:{show:"show",hide:"hide"}}),t})(),ea=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({providers:[Io,Zo],imports:[[r.ez]]}),t})();function ia(t){return t instanceof Date?t.toLocaleDateString():t.toLocaleString()}const na={};function ra(){let t=("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4);return t=`a${t}`,na[t]?ra():(na[t]=!0,t)}let sa,oa=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-grid-panel",""]],inputs:{path:"path",width:"width",height:"height",x:"x",y:"y"},attrs:lo,decls:1,vars:4,consts:[["stroke","none",1,"gridpanel"]],template:function(t,e){1&t&&(n.O4$(),n._UZ(0,"rect",0)),2&t&&n.uIk("height",e.height)("width",e.width)("x",e.x)("y",e.y)},encapsulation:2,changeDetection:0}),t})(),aa=(()=>{class t{ngOnChanges(t){this.update()}update(){this.gridPanels=this.getGridPanels()}getGridPanels(){return this.data.map(t=>{let e,i,n,r,s,o="odd";if("vertical"===this.orient){const a=this.xScale(t.name);Number.parseInt((a/this.xScale.step()).toString(),10)%2==1&&(o="even"),e=this.xScale.bandwidth()*this.xScale.paddingInner(),i=this.xScale.bandwidth()+e,n=this.dims.height,r=this.xScale(t.name)-e/2,s=0}else if("horizontal"===this.orient){const a=this.yScale(t.name);Number.parseInt((a/this.yScale.step()).toString(),10)%2==1&&(o="even"),e=this.yScale.bandwidth()*this.yScale.paddingInner(),i=this.dims.width,n=this.yScale.bandwidth()+e,r=0,s=this.yScale(t.name)-e/2}return{name:t.name,class:o,height:n,width:i,x:r,y:s}})}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-grid-panel-series",""]],inputs:{data:"data",dims:"dims",xScale:"xScale",yScale:"yScale",orient:"orient"},features:[n.TTD],attrs:co,decls:1,vars:1,consts:[["ngx-charts-grid-panel","",3,"height","width","x","y","grid-panel","odd","even",4,"ngFor","ngForOf"],["ngx-charts-grid-panel","",3,"height","width","x","y"]],template:function(t,e){1&t&&n.YNc(0,ho,1,10,"g",0),2&t&&n.Q6J("ngForOf",e.gridPanels)},directives:[r.sg,oa],encapsulation:2,changeDetection:0}),t})(),la=(()=>{class t{constructor(){this.orientation="vertical"}ngOnChanges(t){this.x1="0%",this.x2="0%",this.y1="0%",this.y2="0%","horizontal"===this.orientation?this.x2="100%":"vertical"===this.orientation&&(this.y1="100%")}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-svg-linear-gradient",""]],inputs:{orientation:"orientation",name:"name",stops:"stops"},features:[n.TTD],attrs:uo,decls:2,vars:6,consts:[[3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(t,e){1&t&&(n.O4$(),n.TgZ(0,"linearGradient",0),n.YNc(1,po,1,5,"stop",1),n.qZA()),2&t&&(n.Q6J("id",e.name),n.uIk("x1",e.x1)("y1",e.y1)("x2",e.x2)("y2",e.y2),n.xp6(1),n.Q6J("ngForOf",e.stops))},directives:[r.sg],encapsulation:2,changeDetection:0}),t})();"undefined"!=typeof window?sa=window:"undefined"!=typeof global&&(sa=global);let ca=(()=>{class t{constructor(t){this.cd=t,this.horizontal=!1,this.labelClick=new n.vpe,this.labelActivate=new n.vpe,this.labelDeactivate=new n.vpe,this.legendEntries=[]}ngOnChanges(t){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const t=[];for(const e of this.data){const i=ia(e);-1===t.findIndex(t=>t.label===i)&&t.push({label:e,formattedLabel:i,color:this.colors.getColor(e)})}return t}isActive(t){return!!this.activeEntries&&void 0!==this.activeEntries.find(e=>t.label===e.name)}activate(t){this.labelActivate.emit(t)}deactivate(t){this.labelDeactivate.emit(t)}trackBy(t,e){return e.label}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.sBO))},t.\u0275cmp=n.Xpm({type:t,selectors:[["ngx-charts-legend"]],inputs:{horizontal:"horizontal",data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[n.TTD],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"label","formattedLabel","color","isActive","select","activate","deactivate"]],template:function(t,e){1&t&&(n.TgZ(0,"div"),n.YNc(1,fo,3,1,"header",0),n.TgZ(2,"div",1),n.TgZ(3,"ul",2),n.YNc(4,mo,2,4,"li",3),n.qZA(),n.qZA(),n.qZA()),2&t&&(n.Udp("width",e.width,"px"),n.xp6(1),n.Q6J("ngIf",(null==e.title?null:e.title.length)>0),n.xp6(2),n.Udp("max-height",e.height-45,"px"),n.ekj("horizontal-legend",e.horizontal),n.xp6(1),n.Q6J("ngForOf",e.legendEntries)("ngForTrackBy",e.trackBy))},directives:function(){return[r.O5,r.sg,ha]},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{font-size:14px;font-weight:700;margin-bottom:5px;margin-left:10px;overflow:hidden;white-space:nowrap}.chart-legend li,.chart-legend ul{list-style:none;margin:0;padding:0}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{background:rgba(0,0,0,.05);border-radius:3px;float:left;line-height:85%;list-style:none;overflow-x:hidden;overflow-y:auto;text-align:left;white-space:nowrap;width:100%}.chart-legend .legend-label{color:#afb7c8;cursor:pointer;font-size:90%;margin:8px}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{border-radius:3px;color:#5b646b;display:inline-block;height:15px;margin-right:5px;width:15px}.chart-legend .legend-label-text{font-size:12px;line-height:15px;vertical-align:top;width:calc(100% - 20px)}.chart-legend .legend-label-text,.chart-legend .legend-title-text{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-legend .legend-title-text{line-height:16px;vertical-align:bottom}"],encapsulation:2,changeDetection:0}),t})(),ha=(()=>{class t{constructor(){this.isActive=!1,this.select=new n.vpe,this.activate=new n.vpe,this.deactivate=new n.vpe,this.toggle=new n.vpe}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(t,e){1&t&&n.NdJ("mouseenter",function(){return e.onMouseEnter()})("mouseleave",function(){return e.onMouseLeave()})},inputs:{isActive:"isActive",color:"color",label:"label",formattedLabel:"formattedLabel"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"title","click"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(t,e){1&t&&(n.TgZ(0,"span",0),n.NdJ("click",function(){return e.select.emit(e.formattedLabel)}),n.TgZ(1,"span",1),n.NdJ("click",function(){return e.toggle.emit(e.formattedLabel)}),n.qZA(),n.TgZ(2,"span",2),n._uU(3),n.qZA(),n.qZA()),2&t&&(n.ekj("active",e.isActive),n.Q6J("title",e.formattedLabel),n.xp6(1),n.Udp("background-color",e.color),n.xp6(2),n.hij(" ",e.trimmedLabel," "))},encapsulation:2,changeDetection:0}),t})(),ua=(()=>{class t{constructor(t){this.sanitizer=t,this.horizontal=!1}ngOnChanges(t){const e=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=this.sanitizer.bypassSecurityTrustStyle(`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${e})`)}gradientString(t,e){e.push(1);const i=[];return t.reverse().forEach((t,n)=>{i.push(`${t} ${Math.round(100*e[n])}%`)}),i.join(", ")}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(Is.H7))},t.\u0275cmp=n.Xpm({type:t,selectors:[["ngx-charts-scale-legend"]],inputs:{horizontal:"horizontal",valueRange:"valueRange",colors:"colors",height:"height",width:"width"},features:[n.TTD],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(t,e){1&t&&(n.TgZ(0,"div",0),n.TgZ(1,"div",1),n.TgZ(2,"span"),n._uU(3),n.qZA(),n.qZA(),n._UZ(4,"div",2),n.TgZ(5,"div",1),n.TgZ(6,"span"),n._uU(7),n.qZA(),n.qZA(),n.qZA()),2&t&&(n.Udp("height",e.horizontal?void 0:e.height,"px")("width",e.width,"px"),n.ekj("horizontal-legend",e.horizontal),n.xp6(3),n.Oqu(e.valueRange[1].toLocaleString()),n.xp6(1),n.Udp("background",e.gradient),n.xp6(3),n.Oqu(e.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{display:flex;flex-direction:column;text-align:center}.chart-legend .scale-legend-wrap{border-radius:5px;display:inline-block;flex:1;margin:0 auto;width:30px}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{height:30px;margin:0 16px;width:auto}"],encapsulation:2,changeDetection:0}),t})(),da=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[r.ez,Jo,ea],r.ez,Jo,ea]}),t})();function pa({width:t,height:e,margins:i,showXAxis:n=!1,showYAxis:r=!1,xAxisHeight:s=0,yAxisWidth:o=0,showXLabel:a=!1,showYLabel:l=!1,showLegend:c=!1,legendType:h="ordinal",legendPosition:u="right",columns:d=12}){let p=i[3],f=t,m=e-i[0]-i[2];if(c&&"right"===u&&(d-="ordinal"===h?2:1),f=f*d/12,f=f-i[1]-i[3],n&&(m-=5,m-=s,a)&&(m-=30),r&&(f-=5,f-=o,p+=o,p+=10,l)){const t=30;f-=t,p+=t}return f=Math.max(0,f),m=Math.max(0,m),{width:Math.floor(f),height:Math.floor(m),xOffset:Math.floor(p)}}let fa=[{name:"vivid",selectable:!0,group:"Ordinal",domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:"Ordinal",domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:"Ordinal",domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:"Ordinal",domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:"Continuous",domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:"Continuous",domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:"Continuous",domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:"Ordinal",domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:"Ordinal",domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:"Ordinal",domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:"Ordinal",domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:"Ordinal",domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:"Ordinal",domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:"Ordinal",domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:"Ordinal",domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class ma{constructor(t,e,i,n){"string"==typeof t&&(t=fa.find(e=>e.name===t)),this.colorDomain=t.domain,this.scaleType=e,this.domain=i,this.customColors=n,this.scale=this.generateColorScheme(t,e,this.domain)}generateColorScheme(t,e,i){let n;if("string"==typeof t&&(t=fa.find(e=>e.name===t)),"quantile"===e)n=us().range(t.domain).domain(i);else if("ordinal"===e)n=ls().range(t.domain).domain(i);else if("linear"===e){const e=[...t.domain];1===e.length&&(e.push(e[0]),this.colorDomain=e);const i=os(0,1,1/e.length);n=ss().domain(i).range(e)}return n}getColor(t){if(null==t)throw new Error("Value can not be null");if("linear"===this.scaleType){const e=ss().domain(this.domain).range([0,1]);return this.scale(e(t))}{if("function"==typeof this.customColors)return this.customColors(t);const e=t.toString();let i;return this.customColors&&this.customColors.length>0&&(i=this.customColors.find(t=>t.name.toLowerCase()===e.toLowerCase())),i?i.value:this.scale(t)}}getLinearGradientStops(t,e){void 0===e&&(e=this.domain[0]);const i=ss().domain(this.domain).range([0,1]),n=cs().domain(this.colorDomain).range([0,1]),r=this.getColor(t),s=i(e),o=this.getColor(e),a=i(t);let l=1,c=s;const h=[];for(h.push({color:o,offset:s,originalOffset:s,opacity:1});c=(a-n.bandwidth()).toFixed(4))break;h.push({color:t,offset:e,opacity:1}),c=e,l++}}if(h[h.length-1].offset<100&&h.push({color:r,offset:a,opacity:1}),a===s)h[0].offset=0,h[1].offset=100;else if(100!==h[h.length-1].offset)for(const u of h)u.offset=(u.offset-s)/(a-s)*100;return h}}let ga=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da]]}),t})(),ya=(()=>{class t{constructor(t){this.roundEdges=!0,this.gradient=!1,this.offset=0,this.isActive=!1,this.animations=!0,this.noBarWhenZero=!0,this.select=new n.vpe,this.activate=new n.vpe,this.deactivate=new n.vpe,this.hasGradient=!1,this.hideBar=!1,this.element=t.nativeElement}ngOnChanges(t){t.roundEdges&&this.loadAnimation(),this.update()}update(){this.gradientId="grad"+ra().toString(),this.gradientFill=`url(#${this.gradientId})`,this.gradient||this.stops?(this.gradientStops=this.getGradient(),this.hasGradient=!0):this.hasGradient=!1,this.updatePathEl(),this.checkToHideBar()}loadAnimation(){this.path=this.getStartingPath(),setTimeout(this.update.bind(this),100)}updatePathEl(){const t=function(t){return"string"==typeof t?new gt([[document.querySelector(t)]],[document.documentElement]):new gt([[t]],mt)}(this.element).select(".bar"),e=this.getPath();this.animations?t.transition().duration(500).attr("d",e):t.attr("d",e)}getGradient(){return this.stops?this.stops:[{offset:0,color:this.fill,opacity:this.getStartOpacity()},{offset:100,color:this.fill,opacity:1}]}getStartingPath(){if(!this.animations)return this.getPath();let t,e=this.getRadius();return this.roundEdges?"vertical"===this.orientation?(e=Math.min(this.height,e),t=Vo(this.x,this.y+this.height,this.width,1,0,this.edges)):"horizontal"===this.orientation&&(e=Math.min(this.width,e),t=Vo(this.x,this.y,1,this.height,0,this.edges)):"vertical"===this.orientation?t=Vo(this.x,this.y+this.height,this.width,1,0,this.edges):"horizontal"===this.orientation&&(t=Vo(this.x,this.y,1,this.height,0,this.edges)),t}getPath(){let t,e=this.getRadius();return this.roundEdges?"vertical"===this.orientation?(e=Math.min(this.height,e),t=Vo(this.x,this.y,this.width,this.height,e,this.edges)):"horizontal"===this.orientation&&(e=Math.min(this.width,e),t=Vo(this.x,this.y,this.width,this.height,e,this.edges)):t=Vo(this.x,this.y,this.width,this.height,e,this.edges),t}getRadius(){let t=0;return this.roundEdges&&this.height>5&&this.width>5&&(t=Math.floor(Math.min(5,this.height/2,this.width/2))),t}getStartOpacity(){return this.roundEdges?.2:.5}get edges(){let t=[!1,!1,!1,!1];return this.roundEdges&&("vertical"===this.orientation?t=this.data.value>0?[!0,!0,!1,!1]:[!1,!1,!0,!0]:"horizontal"===this.orientation&&(t=this.data.value>0?[!1,!0,!1,!0]:[!0,!1,!0,!1])),t}onMouseEnter(){this.activate.emit(this.data)}onMouseLeave(){this.deactivate.emit(this.data)}checkToHideBar(){this.hideBar=this.noBarWhenZero&&("vertical"===this.orientation&&0===this.height||"horizontal"===this.orientation&&0===this.width)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq))},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-bar",""]],hostBindings:function(t,e){1&t&&n.NdJ("mouseenter",function(){return e.onMouseEnter()})("mouseleave",function(){return e.onMouseLeave()})},inputs:{roundEdges:"roundEdges",gradient:"gradient",offset:"offset",isActive:"isActive",animations:"animations",noBarWhenZero:"noBarWhenZero",fill:"fill",data:"data",width:"width",height:"height",x:"x",y:"y",orientation:"orientation",stops:"stops",ariaLabel:"ariaLabel"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[n.TTD],attrs:vo,decls:2,vars:8,consts:[[4,"ngIf"],["stroke","none","role","img","tabIndex","-1",1,"bar",3,"click"],["ngx-charts-svg-linear-gradient","",3,"orientation","name","stops"]],template:function(t,e){1&t&&(n.YNc(0,_o,2,3,"defs",0),n.O4$(),n.TgZ(1,"path",1),n.NdJ("click",function(){return e.select.emit(e.data)}),n.qZA()),2&t&&(n.Q6J("ngIf",e.hasGradient),n.xp6(1),n.ekj("active",e.isActive)("hidden",e.hideBar),n.uIk("d",e.path)("aria-label",e.ariaLabel)("fill",e.hasGradient?e.gradientFill:e.fill))},directives:[r.O5,la],encapsulation:2,changeDetection:0}),t})(),ba=(()=>{class t extends qo{constructor(){super(...arguments),this.legend=!1,this.legendTitle="Legend",this.legendPosition="right",this.tooltipDisabled=!1,this.showGridLines=!0,this.activeEntries=[],this.trimXAxisTicks=!0,this.trimYAxisTicks=!0,this.rotateXAxisTicks=!0,this.maxXAxisTickLength=16,this.maxYAxisTickLength=16,this.barPadding=8,this.roundDomains=!1,this.roundEdges=!0,this.showDataLabel=!1,this.noBarWhenZero=!0,this.activate=new n.vpe,this.deactivate=new n.vpe,this.margin=[10,20,10,20],this.xAxisHeight=0,this.yAxisWidth=0,this.dataLabelMaxHeight={negative:0,positive:0}}update(){super.update(),this.showDataLabel||(this.dataLabelMaxHeight={negative:0,positive:0}),this.margin=[10+this.dataLabelMaxHeight.positive,20,10+this.dataLabelMaxHeight.negative,20],this.dims=pa({width:this.width,height:this.height,margins:this.margin,showXAxis:this.xAxis,showYAxis:this.yAxis,xAxisHeight:this.xAxisHeight,yAxisWidth:this.yAxisWidth,showXLabel:this.showXAxisLabel,showYLabel:this.showYAxisLabel,showLegend:this.legend,legendType:this.schemeType,legendPosition:this.legendPosition}),this.formatDates(),this.showDataLabel&&(this.dims.height-=this.dataLabelMaxHeight.negative),this.xScale=this.getXScale(),this.yScale=this.getYScale(),this.setColors(),this.legendOptions=this.getLegendOptions(),this.transform=`translate(${this.dims.xOffset} , ${this.margin[0]+this.dataLabelMaxHeight.negative})`}getXScale(){this.xDomain=this.getXDomain();const t=this.xDomain.length/(this.dims.width/this.barPadding+1);return cs().range([0,this.dims.width]).paddingInner(t).domain(this.xDomain)}getYScale(){this.yDomain=this.getYDomain();const t=ss().range([this.dims.height,0]).domain(this.yDomain);return this.roundDomains?t.nice():t}getXDomain(){return this.results.map(t=>t.label)}getYDomain(){const t=this.results.map(t=>t.value);let e=this.yScaleMin?Math.min(this.yScaleMin,...t):Math.min(0,...t);this.yAxisTicks&&!this.yAxisTicks.some(isNaN)&&(e=Math.min(e,...this.yAxisTicks));let i=this.yScaleMax?Math.max(this.yScaleMax,...t):Math.max(0,...t);return this.yAxisTicks&&!this.yAxisTicks.some(isNaN)&&(i=Math.max(i,...this.yAxisTicks)),[e,i]}onClick(t){this.select.emit(t)}setColors(){let t;t="ordinal"===this.schemeType?this.xDomain:this.yDomain,this.colors=new ma(this.scheme,this.schemeType,t,this.customColors)}getLegendOptions(){const t={scaleType:this.schemeType,colors:void 0,domain:[],title:void 0,position:this.legendPosition};return"ordinal"===t.scaleType?(t.domain=this.xDomain,t.colors=this.colors,t.title=this.legendTitle):(t.domain=this.yDomain,t.colors=this.colors.scale),t}updateYAxisWidth({width:t}){this.yAxisWidth=t,this.update()}updateXAxisHeight({height:t}){this.xAxisHeight=t,this.update()}onDataLabelMaxHeightChanged(t){t.size.negative?this.dataLabelMaxHeight.negative=Math.max(this.dataLabelMaxHeight.negative,t.size.height):this.dataLabelMaxHeight.positive=Math.max(this.dataLabelMaxHeight.positive,t.size.height),t.index===this.results.length-1&&setTimeout(()=>this.update())}onActivate(t,e=!1){t=this.results.find(i=>e?i.label===t.name:i.name===t.name),this.activeEntries.findIndex(e=>e.name===t.name&&e.value===t.value&&e.series===t.series)>-1||(this.activeEntries=[t,...this.activeEntries],this.activate.emit({value:t,entries:this.activeEntries}))}onDeactivate(t,e=!1){t=this.results.find(i=>e?i.label===t.name:i.name===t.name);const i=this.activeEntries.findIndex(e=>e.name===t.name&&e.value===t.value&&e.series===t.series);this.activeEntries.splice(i,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:t,entries:this.activeEntries})}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275cmp=n.Xpm({type:t,selectors:[["ngx-charts-bar-vertical"]],contentQueries:function(t,e,i){if(1&t&&n.Suo(i,go,5),2&t){let t;n.iGM(t=n.CRH())&&(e.tooltipTemplate=t.first)}},inputs:{legend:"legend",legendTitle:"legendTitle",legendPosition:"legendPosition",tooltipDisabled:"tooltipDisabled",showGridLines:"showGridLines",activeEntries:"activeEntries",trimXAxisTicks:"trimXAxisTicks",trimYAxisTicks:"trimYAxisTicks",rotateXAxisTicks:"rotateXAxisTicks",maxXAxisTickLength:"maxXAxisTickLength",maxYAxisTickLength:"maxYAxisTickLength",barPadding:"barPadding",roundDomains:"roundDomains",roundEdges:"roundEdges",showDataLabel:"showDataLabel",noBarWhenZero:"noBarWhenZero",xAxis:"xAxis",yAxis:"yAxis",showXAxisLabel:"showXAxisLabel",showYAxisLabel:"showYAxisLabel",xAxisLabel:"xAxisLabel",yAxisLabel:"yAxisLabel",gradient:"gradient",schemeType:"schemeType",xAxisTickFormatting:"xAxisTickFormatting",yAxisTickFormatting:"yAxisTickFormatting",xAxisTicks:"xAxisTicks",yAxisTicks:"yAxisTicks",yScaleMax:"yScaleMax",yScaleMin:"yScaleMin",dataLabelFormatting:"dataLabelFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[n.qOj],decls:5,vars:25,consts:[[3,"view","showLegend","legendOptions","activeEntries","animations","legendLabelClick","legendLabelActivate","legendLabelDeactivate"],[1,"bar-chart","chart"],["ngx-charts-x-axis","",3,"xScale","dims","showLabel","labelText","trimTicks","rotateTicks","maxTickLength","tickFormatting","ticks","xAxisOffset","dimensionsChanged",4,"ngIf"],["ngx-charts-y-axis","",3,"yScale","dims","showGridLines","showLabel","labelText","trimTicks","maxTickLength","tickFormatting","ticks","dimensionsChanged",4,"ngIf"],["ngx-charts-series-vertical","",3,"xScale","yScale","colors","series","dims","gradient","tooltipDisabled","tooltipTemplate","showDataLabel","dataLabelFormatting","activeEntries","roundEdges","animations","noBarWhenZero","activate","deactivate","select","dataLabelHeightChanged"],["ngx-charts-x-axis","",3,"xScale","dims","showLabel","labelText","trimTicks","rotateTicks","maxTickLength","tickFormatting","ticks","xAxisOffset","dimensionsChanged"],["ngx-charts-y-axis","",3,"yScale","dims","showGridLines","showLabel","labelText","trimTicks","maxTickLength","tickFormatting","ticks","dimensionsChanged"]],template:function(t,e){1&t&&(n.TgZ(0,"ngx-charts-chart",0),n.NdJ("legendLabelClick",function(t){return e.onClick(t)})("legendLabelActivate",function(t){return e.onActivate(t,!0)})("legendLabelDeactivate",function(t){return e.onDeactivate(t,!0)}),n.O4$(),n.TgZ(1,"g",1),n.YNc(2,wo,1,10,"g",2),n.YNc(3,xo,1,9,"g",3),n.TgZ(4,"g",4),n.NdJ("activate",function(t){return e.onActivate(t)})("deactivate",function(t){return e.onDeactivate(t)})("select",function(t){return e.onClick(t)})("dataLabelHeightChanged",function(t){return e.onDataLabelMaxHeightChanged(t)}),n.qZA(),n.qZA(),n.qZA()),2&t&&(n.Q6J("view",n.WLB(22,yo,e.width,e.height))("showLegend",e.legend)("legendOptions",e.legendOptions)("activeEntries",e.activeEntries)("animations",e.animations),n.xp6(1),n.uIk("transform",e.transform),n.xp6(1),n.Q6J("ngIf",e.xAxis),n.xp6(1),n.Q6J("ngIf",e.yAxis),n.xp6(1),n.Q6J("xScale",e.xScale)("yScale",e.yScale)("colors",e.colors)("series",e.results)("dims",e.dims)("gradient",e.gradient)("tooltipDisabled",e.tooltipDisabled)("tooltipTemplate",e.tooltipTemplate)("showDataLabel",e.showDataLabel)("dataLabelFormatting",e.dataLabelFormatting)("activeEntries",e.activeEntries)("roundEdges",e.roundEdges)("animations",e.animations)("noBarWhenZero",e.noBarWhenZero))},directives:function(){return[Bo,r.O5,wa,jo,Wo]},styles:[bo],encapsulation:2,changeDetection:0}),t})(),va=(()=>{class t extends qo{constructor(){super(...arguments),this.legend=!1,this.legendTitle="Legend",this.legendPosition="right",this.tooltipDisabled=!1,this.scaleType="ordinal",this.showGridLines=!0,this.activeEntries=[],this.trimXAxisTicks=!0,this.trimYAxisTicks=!0,this.rotateXAxisTicks=!0,this.maxXAxisTickLength=16,this.maxYAxisTickLength=16,this.groupPadding=16,this.barPadding=8,this.roundDomains=!1,this.roundEdges=!0,this.showDataLabel=!1,this.noBarWhenZero=!0,this.activate=new n.vpe,this.deactivate=new n.vpe,this.margin=[10,20,10,20],this.xAxisHeight=0,this.yAxisWidth=0,this.dataLabelMaxHeight={negative:0,positive:0}}update(){super.update(),this.showDataLabel||(this.dataLabelMaxHeight={negative:0,positive:0}),this.margin=[10+this.dataLabelMaxHeight.positive,20,10+this.dataLabelMaxHeight.negative,20],this.dims=pa({width:this.width,height:this.height,margins:this.margin,showXAxis:this.xAxis,showYAxis:this.yAxis,xAxisHeight:this.xAxisHeight,yAxisWidth:this.yAxisWidth,showXLabel:this.showXAxisLabel,showYLabel:this.showYAxisLabel,showLegend:this.legend,legendType:this.schemeType,legendPosition:this.legendPosition}),this.showDataLabel&&(this.dims.height-=this.dataLabelMaxHeight.negative),this.formatDates(),this.groupDomain=this.getGroupDomain(),this.innerDomain=this.getInnerDomain(),this.valuesDomain=this.getValueDomain(),this.groupScale=this.getGroupScale(),this.innerScale=this.getInnerScale(),this.valueScale=this.getValueScale(),this.setColors(),this.legendOptions=this.getLegendOptions(),this.transform=`translate(${this.dims.xOffset} , ${this.margin[0]+this.dataLabelMaxHeight.negative})`}onDataLabelMaxHeightChanged(t,e){t.size.negative?this.dataLabelMaxHeight.negative=Math.max(this.dataLabelMaxHeight.negative,t.size.height):this.dataLabelMaxHeight.positive=Math.max(this.dataLabelMaxHeight.positive,t.size.height),e===this.results.length-1&&setTimeout(()=>this.update())}getGroupScale(){const t=this.groupDomain.length/(this.dims.height/this.groupPadding+1);return cs().rangeRound([0,this.dims.width]).paddingInner(t).paddingOuter(t/2).domain(this.groupDomain)}getInnerScale(){const t=this.groupScale.bandwidth(),e=this.innerDomain.length/(t/this.barPadding+1);return cs().rangeRound([0,t]).paddingInner(e).domain(this.innerDomain)}getValueScale(){const t=ss().range([this.dims.height,0]).domain(this.valuesDomain);return this.roundDomains?t.nice():t}getGroupDomain(){const t=[];for(const e of this.results)t.includes(e.label)||t.push(e.label);return t}getInnerDomain(){const t=[];for(const e of this.results)for(const i of e.series)t.includes(i.label)||t.push(i.label);return t}getValueDomain(){const t=[];for(const e of this.results)for(const i of e.series)t.includes(i.value)||t.push(i.value);return[Math.min(0,...t),this.yScaleMax?Math.max(this.yScaleMax,...t):Math.max(0,...t)]}groupTransform(t){return`translate(${this.groupScale(t.label)}, 0)`}onClick(t,e){e&&(t.series=e.name),this.select.emit(t)}trackBy(t,e){return e.name}setColors(){let t;t="ordinal"===this.schemeType?this.innerDomain:this.valuesDomain,this.colors=new ma(this.scheme,this.schemeType,t,this.customColors)}getLegendOptions(){const t={scaleType:this.schemeType,colors:void 0,domain:[],title:void 0,position:this.legendPosition};return"ordinal"===t.scaleType?(t.domain=this.innerDomain,t.colors=this.colors,t.title=this.legendTitle):(t.domain=this.valuesDomain,t.colors=this.colors.scale),t}updateYAxisWidth({width:t}){this.yAxisWidth=t,this.update()}updateXAxisHeight({height:t}){this.xAxisHeight=t,this.update()}onActivate(t,e,i=!1){const n=Object.assign({},t);e&&(n.series=e.name);const r=this.results.map(t=>t.series).flat().filter(t=>i?t.label===n.name:t.name===n.name&&t.series===n.series);this.activeEntries=[...r],this.activate.emit({value:n,entries:this.activeEntries})}onDeactivate(t,e,i=!1){const n=Object.assign({},t);e&&(n.series=e.name),this.activeEntries=this.activeEntries.filter(t=>i?t.label!==n.name:!(t.name===n.name&&t.series===n.series)),this.deactivate.emit({value:n,entries:this.activeEntries})}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=n.n5z(t)))(i||t)}}(),t.\u0275cmp=n.Xpm({type:t,selectors:[["ngx-charts-bar-vertical-2d"]],contentQueries:function(t,e,i){if(1&t&&n.Suo(i,go,5),2&t){let t;n.iGM(t=n.CRH())&&(e.tooltipTemplate=t.first)}},inputs:{legend:"legend",legendTitle:"legendTitle",legendPosition:"legendPosition",tooltipDisabled:"tooltipDisabled",scaleType:"scaleType",showGridLines:"showGridLines",activeEntries:"activeEntries",trimXAxisTicks:"trimXAxisTicks",trimYAxisTicks:"trimYAxisTicks",rotateXAxisTicks:"rotateXAxisTicks",maxXAxisTickLength:"maxXAxisTickLength",maxYAxisTickLength:"maxYAxisTickLength",groupPadding:"groupPadding",barPadding:"barPadding",roundDomains:"roundDomains",roundEdges:"roundEdges",showDataLabel:"showDataLabel",noBarWhenZero:"noBarWhenZero",xAxis:"xAxis",yAxis:"yAxis",showXAxisLabel:"showXAxisLabel",showYAxisLabel:"showYAxisLabel",xAxisLabel:"xAxisLabel",yAxisLabel:"yAxisLabel",gradient:"gradient",schemeType:"schemeType",xAxisTickFormatting:"xAxisTickFormatting",yAxisTickFormatting:"yAxisTickFormatting",xAxisTicks:"xAxisTicks",yAxisTicks:"yAxisTicks",yScaleMax:"yScaleMax",dataLabelFormatting:"dataLabelFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[n.qOj],decls:6,vars:17,consts:[[3,"view","showLegend","legendOptions","activeEntries","animations","legendLabelActivate","legendLabelDeactivate","legendLabelClick"],[1,"bar-chart","chart"],["ngx-charts-grid-panel-series","","orient","vertical",3,"xScale","yScale","data","dims"],["ngx-charts-x-axis","",3,"xScale","dims","showLabel","labelText","trimTicks","rotateTicks","maxTickLength","tickFormatting","ticks","xAxisOffset","dimensionsChanged",4,"ngIf"],["ngx-charts-y-axis","",3,"yScale","dims","showGridLines","showLabel","labelText","trimTicks","maxTickLength","tickFormatting","ticks","dimensionsChanged",4,"ngIf"],["ngx-charts-series-vertical","",3,"activeEntries","xScale","yScale","colors","series","dims","gradient","tooltipDisabled","tooltipTemplate","showDataLabel","dataLabelFormatting","seriesName","roundEdges","animations","noBarWhenZero","select","activate","deactivate","dataLabelHeightChanged",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-x-axis","",3,"xScale","dims","showLabel","labelText","trimTicks","rotateTicks","maxTickLength","tickFormatting","ticks","xAxisOffset","dimensionsChanged"],["ngx-charts-y-axis","",3,"yScale","dims","showGridLines","showLabel","labelText","trimTicks","maxTickLength","tickFormatting","ticks","dimensionsChanged"],["ngx-charts-series-vertical","",3,"activeEntries","xScale","yScale","colors","series","dims","gradient","tooltipDisabled","tooltipTemplate","showDataLabel","dataLabelFormatting","seriesName","roundEdges","animations","noBarWhenZero","select","activate","deactivate","dataLabelHeightChanged"]],template:function(t,e){1&t&&(n.TgZ(0,"ngx-charts-chart",0),n.NdJ("legendLabelActivate",function(t){return e.onActivate(t,void 0,!0)})("legendLabelDeactivate",function(t){return e.onDeactivate(t,void 0,!0)})("legendLabelClick",function(t){return e.onClick(t)}),n.O4$(),n.TgZ(1,"g",1),n._UZ(2,"g",2),n.YNc(3,Co,1,10,"g",3),n.YNc(4,Ao,1,9,"g",4),n.YNc(5,So,1,17,"g",5),n.qZA(),n.qZA()),2&t&&(n.Q6J("view",n.WLB(14,yo,e.width,e.height))("showLegend",e.legend)("legendOptions",e.legendOptions)("activeEntries",e.activeEntries)("animations",e.animations),n.xp6(1),n.uIk("transform",e.transform),n.xp6(1),n.Q6J("xScale",e.groupScale)("yScale",e.valueScale)("data",e.results)("dims",e.dims),n.xp6(1),n.Q6J("ngIf",e.xAxis),n.xp6(1),n.Q6J("ngIf",e.yAxis),n.xp6(1),n.Q6J("ngForOf",e.results)("ngForTrackBy",e.trackBy))},directives:function(){return[Bo,aa,r.O5,r.sg,jo,Wo,wa]},styles:[bo],encapsulation:2,data:{animation:[(0,s.X$)("animationState",[(0,s.eR)(":leave",[(0,s.oB)({opacity:1,transform:"*"}),(0,s.jt)(500,(0,s.oB)({opacity:0,transform:"scale(0)"}))])])]},changeDetection:0}),t})();var _a=function(t){return t.positive="positive",t.negative="negative",t}({});let wa=(()=>{class t{constructor(){this.type="standard",this.tooltipDisabled=!1,this.animations=!0,this.showDataLabel=!1,this.noBarWhenZero=!0,this.select=new n.vpe,this.activate=new n.vpe,this.deactivate=new n.vpe,this.dataLabelHeightChanged=new n.vpe,this.barsForDataLabels=[]}ngOnChanges(t){this.update()}update(){let t;this.updateTooltipSettings(),this.series.length&&(t=this.xScale.bandwidth()),t=Math.round(t);const e=Math.max(this.yScale.domain()[0],0),i={[_a.positive]:0,[_a.negative]:0};let n,r=_a.positive;"normalized"===this.type&&(n=this.series.map(t=>t.value).reduce((t,e)=>t+e,0)),this.bars=this.series.map((s,o)=>{let a=s.value;const l=this.getLabel(s),c=ia(l);r=a>0?_a.positive:_a.negative;const h={value:a,label:l,roundEdges:this.roundEdges,data:s,width:t,formattedLabel:c,height:0,x:0,y:0};if("standard"===this.type)h.height=Math.abs(this.yScale(a)-this.yScale(e)),h.x=this.xScale(l),h.y=this.yScale(a<0?0:a);else if("stacked"===this.type){const t=i[r],e=t+a;i[r]+=a,h.height=this.yScale(t)-this.yScale(e),h.x=0,h.y=this.yScale(e),h.offset0=t,h.offset1=e}else if("normalized"===this.type){let t=i[r],e=t+a;i[r]+=a,n>0?(t=100*t/n,e=100*e/n):(t=0,e=0),h.height=this.yScale(t)-this.yScale(e),h.x=0,h.y=this.yScale(e),h.offset0=t,h.offset1=e,a=(e-t).toFixed(2)+"%"}"ordinal"===this.colors.scaleType?h.color=this.colors.getColor(l):"standard"===this.type?(h.color=this.colors.getColor(a),h.gradientStops=this.colors.getLinearGradientStops(a)):(h.color=this.colors.getColor(h.offset1),h.gradientStops=this.colors.getLinearGradientStops(h.offset1,h.offset0));let u=c;return h.ariaLabel=c+" "+a.toLocaleString(),this.seriesName&&(u=`${this.seriesName} \u2022 ${c}`,h.data.series=this.seriesName,h.ariaLabel=this.seriesName+" "+h.ariaLabel),h.tooltipText=this.tooltipDisabled?void 0:`\n ${function(t){return t.toLocaleString().replace(/[&'`"<>]/g,t=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[t]))}(u)}\n ${this.dataLabelFormatting?this.dataLabelFormatting(a):a.toLocaleString()}\n `,h}),this.updateDataLabels()}updateDataLabels(){if("stacked"===this.type){this.barsForDataLabels=[];const t={};t.series=this.seriesName;const e=this.series.map(t=>t.value).reduce((t,e)=>e>0?t+e:t,0),i=this.series.map(t=>t.value).reduce((t,e)=>e<0?t+e:t,0);t.total=e+i,t.x=0,t.y=0,t.height=this.yScale(t.total>0?e:i),t.width=this.xScale.bandwidth(),this.barsForDataLabels.push(t)}else this.barsForDataLabels=this.series.map(t=>{const e={};return e.series=this.seriesName?this.seriesName:t.label,e.total=t.value,e.x=this.xScale(t.label),e.y=this.yScale(0),e.height=this.yScale(e.total)-this.yScale(0),e.width=this.xScale.bandwidth(),e})}updateTooltipSettings(){this.tooltipPlacement=this.tooltipDisabled?void 0:"top",this.tooltipType=this.tooltipDisabled?void 0:"tooltip"}isActive(t){return!!this.activeEntries&&void 0!==this.activeEntries.find(e=>t.name===e.name&&t.series===e.series)}onClick(t){this.select.emit(t)}getLabel(t){return t.label?t.label:t.name}trackBy(t,e){return e.label}trackDataLabelBy(t,e){return t+"#"+e.series+"#"+e.total}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-series-vertical",""]],inputs:{type:"type",tooltipDisabled:"tooltipDisabled",animations:"animations",showDataLabel:"showDataLabel",noBarWhenZero:"noBarWhenZero",dims:"dims",series:"series",xScale:"xScale",yScale:"yScale",colors:"colors",gradient:"gradient",activeEntries:"activeEntries",seriesName:"seriesName",tooltipTemplate:"tooltipTemplate",roundEdges:"roundEdges",dataLabelFormatting:"dataLabelFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dataLabelHeightChanged:"dataLabelHeightChanged"},features:[n.TTD],attrs:Eo,decls:2,vars:3,consts:[["ngx-charts-bar","","ngx-tooltip","",3,"width","height","x","y","fill","stops","data","orientation","roundEdges","gradient","ariaLabel","isActive","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext","noBarWhenZero","animations","select","activate","deactivate",4,"ngFor","ngForOf","ngForTrackBy"],[4,"ngIf"],["ngx-charts-bar","","ngx-tooltip","",3,"width","height","x","y","fill","stops","data","orientation","roundEdges","gradient","ariaLabel","isActive","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext","noBarWhenZero","animations","select","activate","deactivate"],["ngx-charts-bar-label","",3,"barX","barY","barWidth","barHeight","value","valueFormatting","orientation","dimensionsChanged",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-bar-label","",3,"barX","barY","barWidth","barHeight","value","valueFormatting","orientation","dimensionsChanged"]],template:function(t,e){1&t&&(n.YNc(0,ko,1,22,"g",0),n.YNc(1,Mo,2,2,"g",1)),2&t&&(n.Q6J("ngForOf",e.bars)("ngForTrackBy",e.trackBy),n.xp6(1),n.Q6J("ngIf",e.showDataLabel))},directives:function(){return[r.sg,r.O5,ya,ta,xa]},encapsulation:2,data:{animation:[(0,s.X$)("animationState",[(0,s.eR)(":leave",[(0,s.oB)({opacity:1}),(0,s.jt)(500,(0,s.oB)({opacity:0}))])])]},changeDetection:0}),t})(),xa=(()=>{class t{constructor(t){this.dimensionsChanged=new n.vpe,this.horizontalPadding=2,this.verticalPadding=5,this.element=t.nativeElement}ngOnChanges(t){this.update()}getSize(){return{height:this.element.getBoundingClientRect().height,width:this.element.getBoundingClientRect().width,negative:this.value<0}}ngAfterViewInit(){this.dimensionsChanged.emit(this.getSize())}update(){this.formatedValue=this.valueFormatting?this.valueFormatting(this.value):ia(this.value),"horizontal"===this.orientation?(this.x=this.barX+this.barWidth,this.value<0?(this.x=this.x-this.horizontalPadding,this.textAnchor="end"):(this.x=this.x+this.horizontalPadding,this.textAnchor="start"),this.y=this.barY+this.barHeight/2):(this.x=this.barX+this.barWidth/2,this.y=this.barY+this.barHeight,this.value<0?(this.y=this.y+this.verticalPadding,this.textAnchor="end"):(this.y=this.y-this.verticalPadding,this.textAnchor="start"),this.transform=`rotate(-45, ${this.x} , ${this.y})`)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq))},t.\u0275cmp=n.Xpm({type:t,selectors:[["g","ngx-charts-bar-label",""]],inputs:{value:"value",valueFormatting:"valueFormatting",barX:"barX",barY:"barY",barWidth:"barWidth",barHeight:"barHeight",orientation:"orientation"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[n.TTD],attrs:Lo,decls:2,vars:5,consts:[["alignment-baseline","middle",1,"textDataLabel"]],template:function(t,e){1&t&&(n.O4$(),n.TgZ(0,"text",0),n._uU(1),n.qZA()),2&t&&(n.uIk("text-anchor",e.textAnchor)("transform",e.transform)("x",e.x)("y",e.y),n.xp6(1),n.hij(" ",e.formatedValue," "))},styles:[".textDataLabel[_ngcontent-%COMP%]{font-size:11px}"],changeDetection:0}),t})(),Ca=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da]]}),t})(),Aa=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da]]}),t})(),Sa=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da]]}),t})(),Ea=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da]]}),t})();Math;let ka=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da]]}),t})(),Ta=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da,ka,Ea]]}),t})(),Ma=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da]]}),t})(),La=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da]]}),t})(),Ia=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[[da,ka,Ca]]}),t})(),Oa=(()=>{class t{constructor(){"undefined"!=typeof SVGElement&&void 0===SVGElement.prototype.contains&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=n.oAB({type:t}),t.\u0275inj=n.cJS({imports:[da,ga,Ca,Aa,Sa,Ea,Ta,Ma,ka,La,Ia]}),t})()},3600:(t,e,i)=>{"use strict";i.d(e,{V:()=>o,N:()=>a});var n=i(9176),r=i(1572);const s=["qrcElement"];let o=(()=>{class t{constructor(t){this.renderer=t,this.colordark="",this.colorlight="",this.level="",this.hidetitle=!1,this.size=0,this.usesvg=!1,this.allowEmptyString=!1,this.qrdata="",this.colorDark="#000000ff",this.colorLight="#ffffffff",this.cssClass="qrcode",this.elementType="canvas",this.errorCorrectionLevel="M",this.margin=4,this.scale=4,this.width=10,""!==this.colordark&&console.warn("[angularx-qrcode] colordark is deprecated, use colorDark."),""!==this.colorlight&&console.warn("[angularx-qrcode] colorlight is deprecated, use colorLight."),""!==this.level&&console.warn("[angularx-qrcode] level is deprecated, use errorCorrectionLevel."),!1!==this.hidetitle&&console.warn("[angularx-qrcode] hidetitle is deprecated."),0!==this.size&&console.warn("[angularx-qrcode] size is deprecated, use `width`. Defaults to 10."),!1!==this.usesvg&&console.warn("[angularx-qrcode] usesvg is deprecated, use [elementType]=\"'svg'\".")}ngOnChanges(){this.createQRCode()}isValidQrCodeText(t){return!1===this.allowEmptyString?!(void 0===t||""===t||"null"===t||null===t):!(void 0===t)}toDataURL(){return new Promise((t,e)=>{(0,n.hz)(this.qrdata,{color:{dark:this.colorDark,light:this.colorLight},errorCorrectionLevel:this.errorCorrectionLevel,margin:this.margin,scale:this.scale,version:this.version,width:this.width},(i,n)=>{i?e(i):t(n)})})}toCanvas(t){return new Promise((e,i)=>{(0,n.rT)(t,this.qrdata,{color:{dark:this.colorDark,light:this.colorLight},errorCorrectionLevel:this.errorCorrectionLevel,margin:this.margin,scale:this.scale,version:this.version,width:this.width},t=>{t?i(t):e("success")})})}toSVG(){return new Promise((t,e)=>{(0,n.toString)(this.qrdata,{color:{dark:this.colorDark,light:this.colorLight},errorCorrectionLevel:this.errorCorrectionLevel,margin:this.margin,scale:this.scale,type:"svg",version:this.version,width:this.width},(i,n)=>{i?e(i):t(n)})})}renderElement(t){for(const e of this.qrcElement.nativeElement.childNodes)this.renderer.removeChild(this.qrcElement.nativeElement,e);this.renderer.appendChild(this.qrcElement.nativeElement,t)}createQRCode(){this.version&&this.version>40?(console.warn("[angularx-qrcode] max value for `version` is 40"),this.version=40):this.version&&this.version<1?(console.warn("[angularx-qrcode]`min value for `version` is 1"),this.version=1):void 0!==this.version&&isNaN(this.version)&&(console.warn("[angularx-qrcode] version should be a number, defaulting to auto."),this.version=void 0);try{if(!this.isValidQrCodeText(this.qrdata))throw new Error('[angularx-qrcode] Field `qrdata` is empty, set`allowEmptyString="true"` to overwrite this behaviour.');let t;switch(this.elementType){case"canvas":t=this.renderer.createElement("canvas"),this.toCanvas(t).then(()=>{this.renderElement(t)}).catch(t=>{console.error("[angularx-qrcode] canvas error: ",t)});break;case"svg":t=this.renderer.createElement("div"),this.toSVG().then(e=>{this.renderer.setProperty(t,"innerHTML",e);const i=t.firstChild;this.renderer.setAttribute(i,"height",`${this.width}`),this.renderer.setAttribute(i,"width",`${this.width}`),this.renderElement(i)}).catch(t=>{console.error("[angularx-qrcode] svg error: ",t)});break;case"url":case"img":default:t=this.renderer.createElement("img"),this.toDataURL().then(e=>{t.setAttribute("src",e),this.renderElement(t)}).catch(t=>{console.error("[angularx-qrcode] img/url error: ",t)})}}catch(t){console.error("[angularx-qrcode] Error generating QR Code: ",t.message)}}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(r.Qsj))},t.\u0275cmp=r.Xpm({type:t,selectors:[["qrcode"]],viewQuery:function(t,e){if(1&t&&r.Gf(s,7),2&t){let t;r.iGM(t=r.CRH())&&(e.qrcElement=t.first)}},inputs:{colordark:"colordark",colorlight:"colorlight",level:"level",hidetitle:"hidetitle",size:"size",usesvg:"usesvg",allowEmptyString:"allowEmptyString",qrdata:"qrdata",colorDark:"colorDark",colorLight:"colorLight",cssClass:"cssClass",elementType:"elementType",errorCorrectionLevel:"errorCorrectionLevel",margin:"margin",scale:"scale",width:"width",version:"version"},features:[r.TTD],decls:2,vars:2,consts:[["qrcElement",""]],template:function(t,e){1&t&&r._UZ(0,"div",null,0),2&t&&r.Tol(e.cssClass)},encapsulation:2,changeDetection:0}),t})(),a=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({providers:[]}),t})()},6309:(t,e,i)=>{"use strict";const n=e;n.bignum=i(5514),n.define=i(4493).define,n.base=i(8887),n.constants=i(5537),n.decoders=i(9127),n.encoders=i(3939)},4493:(t,e,i)=>{"use strict";const n=i(3939),r=i(9127),s=i(5457);function o(t,e){this.name=t,this.body=e,this.decoders={},this.encoders={}}e.define=function(t,e){return new o(t,e)},o.prototype._createNamed=function(t){const e=this.name;function i(t){this._initNamed(t,e)}return s(i,t),i.prototype._initNamed=function(e,i){t.call(this,e,i)},new i(this)},o.prototype._getDecoder=function(t){return this.decoders.hasOwnProperty(t=t||"der")||(this.decoders[t]=this._createNamed(r[t])),this.decoders[t]},o.prototype.decode=function(t,e,i){return this._getDecoder(e).decode(t,i)},o.prototype._getEncoder=function(t){return this.encoders.hasOwnProperty(t=t||"der")||(this.encoders[t]=this._createNamed(n[t])),this.encoders[t]},o.prototype.encode=function(t,e,i){return this._getEncoder(e).encode(t,i)}},3914:(t,e,i)=>{"use strict";const n=i(5457),r=i(1034).b,s=i(5968).Buffer;function o(t,e){r.call(this,e),s.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function a(t,e){if(Array.isArray(t))this.length=0,this.value=t.map(function(t){return a.isEncoderBuffer(t)||(t=new a(t,e)),this.length+=t.length,t},this);else if("number"==typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"==typeof t)this.value=t,this.length=s.byteLength(t);else{if(!s.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}n(o,r),e.C=o,o.isDecoderBuffer=function(t){return t instanceof o||"object"==typeof t&&s.isBuffer(t.base)&&"DecoderBuffer"===t.constructor.name&&"number"==typeof t.offset&&"number"==typeof t.length&&"function"==typeof t.save&&"function"==typeof t.restore&&"function"==typeof t.isEmpty&&"function"==typeof t.readUInt8&&"function"==typeof t.skip&&"function"==typeof t.raw},o.prototype.save=function(){return{offset:this.offset,reporter:r.prototype.save.call(this)}},o.prototype.restore=function(t){const e=new o(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,r.prototype.restore.call(this,t.reporter),e},o.prototype.isEmpty=function(){return this.offset===this.length},o.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},o.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");const i=new o(this.base);return i._reporterState=this._reporterState,i.offset=this.offset,i.length=this.offset+t,this.offset+=t,i},o.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.R=a,a.isEncoderBuffer=function(t){return t instanceof a||"object"==typeof t&&"EncoderBuffer"===t.constructor.name&&"number"==typeof t.length&&"function"==typeof t.join},a.prototype.join=function(t,e){return t||(t=s.alloc(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach(function(i){i.join(t,e),e+=i.length}):("number"==typeof this.value?t[e]=this.value:"string"==typeof this.value?t.write(this.value,e):s.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},8887:(t,e,i)=>{"use strict";const n=e;n.Reporter=i(1034).b,n.DecoderBuffer=i(3914).C,n.EncoderBuffer=i(3914).R,n.Node=i(5502)},5502:(t,e,i)=>{"use strict";const n=i(1034).b,r=i(3914).R,s=i(3914).C,o=i(523),a=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],l=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(a);function c(t,e,i){const n={};this._baseState=n,n.name=i,n.enc=t,n.parent=e||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}t.exports=c;const h=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];c.prototype.clone=function(){const t=this._baseState,e={};h.forEach(function(i){e[i]=t[i]});const i=new this.constructor(e.parent);return i._baseState=e,i},c.prototype._wrap=function(){const t=this._baseState;l.forEach(function(e){this[e]=function(){const i=new this.constructor(this);return t.children.push(i),i[e].apply(i,arguments)}},this)},c.prototype._init=function(t){const e=this._baseState;o(null===e.parent),t.call(this),e.children=e.children.filter(function(t){return t._baseState.parent===this},this),o.equal(e.children.length,1,"Root node can have only one child")},c.prototype._useArgs=function(t){const e=this._baseState,i=t.filter(function(t){return t instanceof this.constructor},this);t=t.filter(function(t){return!(t instanceof this.constructor)},this),0!==i.length&&(o(null===e.children),e.children=i,i.forEach(function(t){t._baseState.parent=this},this)),0!==t.length&&(o(null===e.args),e.args=t,e.reverseArgs=t.map(function(t){if("object"!=typeof t||t.constructor!==Object)return t;const e={};return Object.keys(t).forEach(function(i){i==(0|i)&&(i|=0),e[t[i]]=i}),e}))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach(function(t){c.prototype[t]=function(){throw new Error(t+" not implemented for encoding: "+this._baseState.enc)}}),a.forEach(function(t){c.prototype[t]=function(){const e=this._baseState,i=Array.prototype.slice.call(arguments);return o(null===e.tag),e.tag=t,this._useArgs(i),this}}),c.prototype.use=function(t){o(t);const e=this._baseState;return o(null===e.use),e.use=t,this},c.prototype.optional=function(){return this._baseState.optional=!0,this},c.prototype.def=function(t){const e=this._baseState;return o(null===e.default),e.default=t,e.optional=!0,this},c.prototype.explicit=function(t){const e=this._baseState;return o(null===e.explicit&&null===e.implicit),e.explicit=t,this},c.prototype.implicit=function(t){const e=this._baseState;return o(null===e.explicit&&null===e.implicit),e.implicit=t,this},c.prototype.obj=function(){const t=this._baseState,e=Array.prototype.slice.call(arguments);return t.obj=!0,0!==e.length&&this._useArgs(e),this},c.prototype.key=function(t){const e=this._baseState;return o(null===e.key),e.key=t,this},c.prototype.any=function(){return this._baseState.any=!0,this},c.prototype.choice=function(t){const e=this._baseState;return o(null===e.choice),e.choice=t,this._useArgs(Object.keys(t).map(function(e){return t[e]})),this},c.prototype.contains=function(t){const e=this._baseState;return o(null===e.use),e.contains=t,this},c.prototype._decode=function(t,e){const i=this._baseState;if(null===i.parent)return t.wrapResult(i.children[0]._decode(t,e));let n,r=i.default,o=!0,a=null;if(null!==i.key&&(a=t.enterKey(i.key)),i.optional){let n=null;if(null!==i.explicit?n=i.explicit:null!==i.implicit?n=i.implicit:null!==i.tag&&(n=i.tag),null!==n||i.any){if(o=this._peekTag(t,n,i.any),t.isError(o))return o}else{const n=t.save();try{null===i.choice?this._decodeGeneric(i.tag,t,e):this._decodeChoice(t,e),o=!0}catch(l){o=!1}t.restore(n)}}if(i.obj&&o&&(n=t.enterObject()),o){if(null!==i.explicit){const e=this._decodeTag(t,i.explicit);if(t.isError(e))return e;t=e}const n=t.offset;if(null===i.use&&null===i.choice){let e;i.any&&(e=t.save());const n=this._decodeTag(t,null!==i.implicit?i.implicit:i.tag,i.any);if(t.isError(n))return n;i.any?r=t.raw(e):t=n}if(e&&e.track&&null!==i.tag&&e.track(t.path(),n,t.length,"tagged"),e&&e.track&&null!==i.tag&&e.track(t.path(),t.offset,t.length,"content"),i.any||(r=null===i.choice?this._decodeGeneric(i.tag,t,e):this._decodeChoice(t,e)),t.isError(r))return r;if(i.any||null!==i.choice||null===i.children||i.children.forEach(function(i){i._decode(t,e)}),i.contains&&("octstr"===i.tag||"bitstr"===i.tag)){const n=new s(r);r=this._getUse(i.contains,t._reporterState.obj)._decode(n,e)}}return i.obj&&o&&(r=t.leaveObject(n)),null===i.key||null===r&&!0!==o?null!==a&&t.exitKey(a):t.leaveKey(a,i.key,r),r},c.prototype._decodeGeneric=function(t,e,i){const n=this._baseState;return"seq"===t||"set"===t?null:"seqof"===t||"setof"===t?this._decodeList(e,t,n.args[0],i):/str$/.test(t)?this._decodeStr(e,t,i):"objid"===t&&n.args?this._decodeObjid(e,n.args[0],n.args[1],i):"objid"===t?this._decodeObjid(e,null,null,i):"gentime"===t||"utctime"===t?this._decodeTime(e,t,i):"null_"===t?this._decodeNull(e,i):"bool"===t?this._decodeBool(e,i):"objDesc"===t?this._decodeStr(e,t,i):"int"===t||"enum"===t?this._decodeInt(e,n.args&&n.args[0],i):null!==n.use?this._getUse(n.use,e._reporterState.obj)._decode(e,i):e.error("unknown tag: "+t)},c.prototype._getUse=function(t,e){const i=this._baseState;return i.useDecoder=this._use(t,e),o(null===i.useDecoder._baseState.parent),i.useDecoder=i.useDecoder._baseState.children[0],i.implicit!==i.useDecoder._baseState.implicit&&(i.useDecoder=i.useDecoder.clone(),i.useDecoder._baseState.implicit=i.implicit),i.useDecoder},c.prototype._decodeChoice=function(t,e){const i=this._baseState;let n=null,r=!1;return Object.keys(i.choice).some(function(s){const o=t.save(),a=i.choice[s];try{const i=a._decode(t,e);if(t.isError(i))return!1;n={type:s,value:i},r=!0}catch(l){return t.restore(o),!1}return!0},this),r?n:t.error("Choice not matched")},c.prototype._createEncoderBuffer=function(t){return new r(t,this.reporter)},c.prototype._encode=function(t,e,i){const n=this._baseState;if(null!==n.default&&n.default===t)return;const r=this._encodeValue(t,e,i);return void 0===r||this._skipDefault(r,e,i)?void 0:r},c.prototype._encodeValue=function(t,e,i){const r=this._baseState;if(null===r.parent)return r.children[0]._encode(t,e||new n);let s=null;if(this.reporter=e,r.optional&&void 0===t){if(null===r.default)return;t=r.default}let o=null,a=!1;if(r.any)s=this._createEncoderBuffer(t);else if(r.choice)s=this._encodeChoice(t,e);else if(r.contains)o=this._getUse(r.contains,i)._encode(t,e),a=!0;else if(r.children)o=r.children.map(function(i){if("null_"===i._baseState.tag)return i._encode(null,e,t);if(null===i._baseState.key)return e.error("Child should have a key");const n=e.enterKey(i._baseState.key);if("object"!=typeof t)return e.error("Child expected, but input is not object");const r=i._encode(t[i._baseState.key],e,t);return e.leaveKey(n),r},this).filter(function(t){return t}),o=this._createEncoderBuffer(o);else if("seqof"===r.tag||"setof"===r.tag){if(!r.args||1!==r.args.length)return e.error("Too many args for : "+r.tag);if(!Array.isArray(t))return e.error("seqof/setof, but data is not Array");const i=this.clone();i._baseState.implicit=null,o=this._createEncoderBuffer(t.map(function(i){return this._getUse(this._baseState.args[0],t)._encode(i,e)},i))}else null!==r.use?s=this._getUse(r.use,i)._encode(t,e):(o=this._encodePrimitive(r.tag,t),a=!0);if(!r.any&&null===r.choice){const t=null!==r.implicit?r.implicit:r.tag,i=null===r.implicit?"universal":"context";null===t?null===r.use&&e.error("Tag could be omitted only for .use()"):null===r.use&&(s=this._encodeComposite(t,a,i,o))}return null!==r.explicit&&(s=this._encodeComposite(r.explicit,!1,"context",s)),s},c.prototype._encodeChoice=function(t,e){const i=this._baseState,n=i.choice[t.type];return n||o(!1,t.type+" not found in "+JSON.stringify(Object.keys(i.choice))),n._encode(t.value,e)},c.prototype._encodePrimitive=function(t,e){const i=this._baseState;if(/str$/.test(t))return this._encodeStr(e,t);if("objid"===t&&i.args)return this._encodeObjid(e,i.reverseArgs[0],i.args[1]);if("objid"===t)return this._encodeObjid(e,null,null);if("gentime"===t||"utctime"===t)return this._encodeTime(e,t);if("null_"===t)return this._encodeNull();if("int"===t||"enum"===t)return this._encodeInt(e,i.args&&i.reverseArgs[0]);if("bool"===t)return this._encodeBool(e);if("objDesc"===t)return this._encodeStr(e,t);throw new Error("Unsupported tag: "+t)},c.prototype._isNumstr=function(t){return/^[0-9 ]*$/.test(t)},c.prototype._isPrintstr=function(t){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(t)}},1034:(t,e,i)=>{"use strict";const n=i(5457);function r(t){this._reporterState={obj:null,path:[],options:t||{},errors:[]}}function s(t,e){this.path=t,this.rethrow(e)}e.b=r,r.prototype.isError=function(t){return t instanceof s},r.prototype.save=function(){const t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}},r.prototype.restore=function(t){const e=this._reporterState;e.obj=t.obj,e.path=e.path.slice(0,t.pathLen)},r.prototype.enterKey=function(t){return this._reporterState.path.push(t)},r.prototype.exitKey=function(t){const e=this._reporterState;e.path=e.path.slice(0,t-1)},r.prototype.leaveKey=function(t,e,i){const n=this._reporterState;this.exitKey(t),null!==n.obj&&(n.obj[e]=i)},r.prototype.path=function(){return this._reporterState.path.join("/")},r.prototype.enterObject=function(){const t=this._reporterState,e=t.obj;return t.obj={},e},r.prototype.leaveObject=function(t){const e=this._reporterState,i=e.obj;return e.obj=t,i},r.prototype.error=function(t){let e;const i=this._reporterState,n=t instanceof s;if(e=n?t:new s(i.path.map(function(t){return"["+JSON.stringify(t)+"]"}).join(""),t.message||t,t.stack),!i.options.partial)throw e;return n||i.errors.push(e),e},r.prototype.wrapResult=function(t){const e=this._reporterState;return e.options.partial?{result:this.isError(t)?null:t,errors:e.errors}:t},n(s,Error),s.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,s),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},901:(t,e)=>{"use strict";function i(t){const e={};return Object.keys(t).forEach(function(i){(0|i)==i&&(i|=0),e[t[i]]=i}),e}e.tagClass={0:"universal",1:"application",2:"context",3:"private"},e.tagClassByName=i(e.tagClass),e.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},e.tagByName=i(e.tag)},5537:(t,e,i)=>{"use strict";const n=e;n._reverse=function(t){const e={};return Object.keys(t).forEach(function(i){(0|i)==i&&(i|=0),e[t[i]]=i}),e},n.der=i(901)},6797:(t,e,i)=>{"use strict";const n=i(5457),r=i(5514),s=i(3914).C,o=i(5502),a=i(901);function l(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new c,this.tree._init(t.body)}function c(t){o.call(this,"der",t)}function h(t,e){let i=t.readUInt8(e);if(t.isError(i))return i;const n=a.tagClass[i>>6],r=0==(32&i);if(31==(31&i)){let n=i;for(i=0;128==(128&n);){if(n=t.readUInt8(e),t.isError(n))return n;i<<=7,i|=127&n}}else i&=31;return{cls:n,primitive:r,tag:i,tagStr:a.tag[i]}}function u(t,e,i){let n=t.readUInt8(i);if(t.isError(n))return n;if(!e&&128===n)return null;if(0==(128&n))return n;const r=127&n;if(r>4)return t.error("length octect is too long");n=0;for(let s=0;s{"use strict";const n=e;n.der=i(6797),n.pem=i(124)},124:(t,e,i)=>{"use strict";const n=i(5457),r=i(5968).Buffer,s=i(6797);function o(t){s.call(this,t),this.enc="pem"}n(o,s),t.exports=o,o.prototype.decode=function(t,e){const i=t.toString().split(/[\r\n]+/g),n=e.label.toUpperCase(),o=/^-----(BEGIN|END) ([^-]+)-----$/;let a=-1,l=-1;for(let r=0;r{"use strict";const n=i(5457),r=i(5968).Buffer,s=i(5502),o=i(901);function a(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new l,this.tree._init(t.body)}function l(t){s.call(this,"der",t)}function c(t){return t<10?"0"+t:t}t.exports=a,a.prototype.encode=function(t,e){return this.tree._encode(t,e).join()},n(l,s),l.prototype._encodeComposite=function(t,e,i,n){const s=function(t,e,i,n){let r;if("seqof"===t?t="seq":"setof"===t&&(t="set"),o.tagByName.hasOwnProperty(t))r=o.tagByName[t];else{if("number"!=typeof t||(0|t)!==t)return n.error("Unknown tag: "+t);r=t}return r>=31?n.error("Multi-octet tag encoding unsupported"):(e||(r|=32),r|=o.tagClassByName[i||"universal"]<<6,r)}(t,e,i,this.reporter);if(n.length<128){const t=r.alloc(2);return t[0]=s,t[1]=n.length,this._createEncoderBuffer([t,n])}let a=1;for(let r=n.length;r>=256;r>>=8)a++;const l=r.alloc(2+a);l[0]=s,l[1]=128|a;for(let r=1+a,o=n.length;o>0;r--,o>>=8)l[r]=255&o;return this._createEncoderBuffer([l,n])},l.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){const e=r.alloc(2*t.length);for(let i=0;i=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}let n=0;for(let r=0;r=128;e>>=7)n++}const s=r.alloc(n);let o=s.length-1;for(let r=t.length-1;r>=0;r--){let e=t[r];for(s[o--]=127&e;(e>>=7)>0;)s[o--]=128|127&e}return this._createEncoderBuffer(s)},l.prototype._encodeTime=function(t,e){let i;const n=new Date(t);return"gentime"===e?i=[c(n.getUTCFullYear()),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):"utctime"===e?i=[c(n.getUTCFullYear()%100),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(i,"octstr")},l.prototype._encodeNull=function(){return this._createEncoderBuffer("")},l.prototype._encodeInt=function(t,e){if("string"==typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!=typeof t&&!r.isBuffer(t)){const e=t.toArray();!t.sign&&128&e[0]&&e.unshift(0),t=r.from(e)}if(r.isBuffer(t)){let e=t.length;0===t.length&&e++;const i=r.alloc(e);return t.copy(i),0===t.length&&(i[0]=0),this._createEncoderBuffer(i)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);let i=1;for(let r=t;r>=256;r>>=8)i++;const n=new Array(i);for(let r=n.length-1;r>=0;r--)n[r]=255&t,t>>=8;return 128&n[0]&&n.unshift(0),this._createEncoderBuffer(r.from(n))},l.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},l.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getEncoder("der").tree},l.prototype._skipDefault=function(t,e,i){const n=this._baseState;let r;if(null===n.default)return!1;const s=t.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n.default,e,i).join()),s.length!==n.defaultBuffer.length)return!1;for(r=0;r{"use strict";const n=e;n.der=i(1965),n.pem=i(2191)},2191:(t,e,i)=>{"use strict";const n=i(5457),r=i(1965);function s(t){r.call(this,t),this.enc="pem"}n(s,r),t.exports=s,s.prototype.encode=function(t,e){const i=r.prototype.encode.call(this,t).toString("base64"),n=["-----BEGIN "+e.label+"-----"];for(let r=0;r=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function l(t,e,i){var n=a(t,i);return i-1>=e&&(n|=a(t,i-1)<<4),n}function c(t,e,i,n){for(var r=0,s=Math.min(t.length,i),o=e;o=49?a-49+10:a>=17?a-17+10:a}return r}s.isBN=function(t){return t instanceof s||null!==t&&"object"==typeof t&&t.constructor.wordSize===s.wordSize&&Array.isArray(t.words)},s.max=function(t,e){return t.cmp(e)>0?t:e},s.min=function(t,e){return t.cmp(e)<0?t:e},s.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var r=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r=0;r-=3)this.words[s]|=(o=t[r]|t[r-1]<<8|t[r-2]<<16)<>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===i)for(r=0,s=0;r>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this.strip()},s.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)r=l(t,e,n)<=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;this.strip()},s.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var n=0,r=1;r<=67108863;r*=e)n++;n--,r=r/e|0;for(var s=t.length-i,o=s%n,a=Math.min(s,s-o)+i,l=0,h=i;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,i){i.negative=e.negative^t.negative;var n=t.length+e.length|0;i.length=n,n=n-1|0;var r=0|t.words[0],s=0|e.words[0],o=r*s,a=o/67108864|0;i.words[0]=67108863&o;for(var l=1;l>>26,h=67108863&a,u=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=u;d++)c+=(o=(r=0|t.words[l-d|0])*(s=0|e.words[d])+h)/67108864|0,h=67108863&o;i.words[l]=0|h,a=0|c}return 0!==a?i.words[l]=0|a:i.length--,i.strip()}s.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var r=0,s=0,o=0;o>>24-r&16777215)||o!==this.length-1?h[6-l.length]+l+i:l+i,(r+=2)>=26&&(r-=26,o--)}for(0!==s&&(i=s.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var c=u[t],p=d[t];i="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modn(p).toString(t);i=(f=f.idivn(p)).isZero()?m+i:h[c-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},s.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},s.prototype.toArrayLike=function(t,e,i){var r=this.byteLength(),s=i||Math.max(1,r);n(r<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0"),this.strip();var o,a,l="le"===e,c=new t(s),h=this.clone();if(l){for(a=0;!h.isZero();a++)o=h.andln(255),h.iushrn(8),c[a]=o;for(;a=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},s.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},s.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},s.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},s.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;it.length?this.clone().iand(t):t.clone().iand(this)},s.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},s.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},s.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},s.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-i),this.strip()},s.prototype.notn=function(t){return this.clone().inotn(t)},s.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var i=t/26|0,r=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<t.length?(i=this,n=t):(i=t,n=this);for(var r=0,s=0;s>>26;for(;0!==r&&s>>26;if(this.length=i.length,0!==r)this.words[this.length]=r,this.length++;else if(i!==this)for(;st.length?this.clone().iadd(t):t.clone().iadd(this)},s.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,n,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(i=this,n=t):(i=t,n=this);for(var s=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==s&&o>26,this.words[o]=67108863&e;if(0===s&&o>>13,p=0|o[1],f=8191&p,m=p>>>13,g=0|o[2],y=8191&g,b=g>>>13,v=0|o[3],_=8191&v,w=v>>>13,x=0|o[4],C=8191&x,A=x>>>13,S=0|o[5],E=8191&S,k=S>>>13,T=0|o[6],M=8191&T,L=T>>>13,I=0|o[7],O=8191&I,D=I>>>13,R=0|o[8],N=8191&R,P=R>>>13,F=0|o[9],Z=8191&F,B=F>>>13,U=0|a[0],q=8191&U,z=U>>>13,H=0|a[1],Y=8191&H,G=H>>>13,j=0|a[2],V=8191&j,Q=j>>>13,W=0|a[3],J=8191&W,X=W>>>13,K=0|a[4],$=8191&K,tt=K>>>13,et=0|a[5],it=8191&et,nt=et>>>13,rt=0|a[6],st=8191&rt,ot=rt>>>13,at=0|a[7],lt=8191&at,ct=at>>>13,ht=0|a[8],ut=8191&ht,dt=ht>>>13,pt=0|a[9],ft=8191&pt,mt=pt>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(c+(n=Math.imul(u,q))|0)+((8191&(r=(r=Math.imul(u,z))+Math.imul(d,q)|0))<<13)|0;c=((s=Math.imul(d,z))+(r>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(f,q),r=(r=Math.imul(f,z))+Math.imul(m,q)|0,s=Math.imul(m,z);var yt=(c+(n=n+Math.imul(u,Y)|0)|0)+((8191&(r=(r=r+Math.imul(u,G)|0)+Math.imul(d,Y)|0))<<13)|0;c=((s=s+Math.imul(d,G)|0)+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),r=(r=Math.imul(y,z))+Math.imul(b,q)|0,s=Math.imul(b,z),n=n+Math.imul(f,Y)|0,r=(r=r+Math.imul(f,G)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,G)|0;var bt=(c+(n=n+Math.imul(u,V)|0)|0)+((8191&(r=(r=r+Math.imul(u,Q)|0)+Math.imul(d,V)|0))<<13)|0;c=((s=s+Math.imul(d,Q)|0)+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(_,q),r=(r=Math.imul(_,z))+Math.imul(w,q)|0,s=Math.imul(w,z),n=n+Math.imul(y,Y)|0,r=(r=r+Math.imul(y,G)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,G)|0,n=n+Math.imul(f,V)|0,r=(r=r+Math.imul(f,Q)|0)+Math.imul(m,V)|0,s=s+Math.imul(m,Q)|0;var vt=(c+(n=n+Math.imul(u,J)|0)|0)+((8191&(r=(r=r+Math.imul(u,X)|0)+Math.imul(d,J)|0))<<13)|0;c=((s=s+Math.imul(d,X)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(C,q),r=(r=Math.imul(C,z))+Math.imul(A,q)|0,s=Math.imul(A,z),n=n+Math.imul(_,Y)|0,r=(r=r+Math.imul(_,G)|0)+Math.imul(w,Y)|0,s=s+Math.imul(w,G)|0,n=n+Math.imul(y,V)|0,r=(r=r+Math.imul(y,Q)|0)+Math.imul(b,V)|0,s=s+Math.imul(b,Q)|0,n=n+Math.imul(f,J)|0,r=(r=r+Math.imul(f,X)|0)+Math.imul(m,J)|0,s=s+Math.imul(m,X)|0;var _t=(c+(n=n+Math.imul(u,$)|0)|0)+((8191&(r=(r=r+Math.imul(u,tt)|0)+Math.imul(d,$)|0))<<13)|0;c=((s=s+Math.imul(d,tt)|0)+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,q),r=(r=Math.imul(E,z))+Math.imul(k,q)|0,s=Math.imul(k,z),n=n+Math.imul(C,Y)|0,r=(r=r+Math.imul(C,G)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,G)|0,n=n+Math.imul(_,V)|0,r=(r=r+Math.imul(_,Q)|0)+Math.imul(w,V)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(y,J)|0,r=(r=r+Math.imul(y,X)|0)+Math.imul(b,J)|0,s=s+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,r=(r=r+Math.imul(f,tt)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(u,it)|0)|0)+((8191&(r=(r=r+Math.imul(u,nt)|0)+Math.imul(d,it)|0))<<13)|0;c=((s=s+Math.imul(d,nt)|0)+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(M,q),r=(r=Math.imul(M,z))+Math.imul(L,q)|0,s=Math.imul(L,z),n=n+Math.imul(E,Y)|0,r=(r=r+Math.imul(E,G)|0)+Math.imul(k,Y)|0,s=s+Math.imul(k,G)|0,n=n+Math.imul(C,V)|0,r=(r=r+Math.imul(C,Q)|0)+Math.imul(A,V)|0,s=s+Math.imul(A,Q)|0,n=n+Math.imul(_,J)|0,r=(r=r+Math.imul(_,X)|0)+Math.imul(w,J)|0,s=s+Math.imul(w,X)|0,n=n+Math.imul(y,$)|0,r=(r=r+Math.imul(y,tt)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,tt)|0,n=n+Math.imul(f,it)|0,r=(r=r+Math.imul(f,nt)|0)+Math.imul(m,it)|0,s=s+Math.imul(m,nt)|0;var xt=(c+(n=n+Math.imul(u,st)|0)|0)+((8191&(r=(r=r+Math.imul(u,ot)|0)+Math.imul(d,st)|0))<<13)|0;c=((s=s+Math.imul(d,ot)|0)+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(O,q),r=(r=Math.imul(O,z))+Math.imul(D,q)|0,s=Math.imul(D,z),n=n+Math.imul(M,Y)|0,r=(r=r+Math.imul(M,G)|0)+Math.imul(L,Y)|0,s=s+Math.imul(L,G)|0,n=n+Math.imul(E,V)|0,r=(r=r+Math.imul(E,Q)|0)+Math.imul(k,V)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(C,J)|0,r=(r=r+Math.imul(C,X)|0)+Math.imul(A,J)|0,s=s+Math.imul(A,X)|0,n=n+Math.imul(_,$)|0,r=(r=r+Math.imul(_,tt)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,tt)|0,n=n+Math.imul(y,it)|0,r=(r=r+Math.imul(y,nt)|0)+Math.imul(b,it)|0,s=s+Math.imul(b,nt)|0,n=n+Math.imul(f,st)|0,r=(r=r+Math.imul(f,ot)|0)+Math.imul(m,st)|0,s=s+Math.imul(m,ot)|0;var Ct=(c+(n=n+Math.imul(u,lt)|0)|0)+((8191&(r=(r=r+Math.imul(u,ct)|0)+Math.imul(d,lt)|0))<<13)|0;c=((s=s+Math.imul(d,ct)|0)+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(N,q),r=(r=Math.imul(N,z))+Math.imul(P,q)|0,s=Math.imul(P,z),n=n+Math.imul(O,Y)|0,r=(r=r+Math.imul(O,G)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,G)|0,n=n+Math.imul(M,V)|0,r=(r=r+Math.imul(M,Q)|0)+Math.imul(L,V)|0,s=s+Math.imul(L,Q)|0,n=n+Math.imul(E,J)|0,r=(r=r+Math.imul(E,X)|0)+Math.imul(k,J)|0,s=s+Math.imul(k,X)|0,n=n+Math.imul(C,$)|0,r=(r=r+Math.imul(C,tt)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,tt)|0,n=n+Math.imul(_,it)|0,r=(r=r+Math.imul(_,nt)|0)+Math.imul(w,it)|0,s=s+Math.imul(w,nt)|0,n=n+Math.imul(y,st)|0,r=(r=r+Math.imul(y,ot)|0)+Math.imul(b,st)|0,s=s+Math.imul(b,ot)|0,n=n+Math.imul(f,lt)|0,r=(r=r+Math.imul(f,ct)|0)+Math.imul(m,lt)|0,s=s+Math.imul(m,ct)|0;var At=(c+(n=n+Math.imul(u,ut)|0)|0)+((8191&(r=(r=r+Math.imul(u,dt)|0)+Math.imul(d,ut)|0))<<13)|0;c=((s=s+Math.imul(d,dt)|0)+(r>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(Z,q),r=(r=Math.imul(Z,z))+Math.imul(B,q)|0,s=Math.imul(B,z),n=n+Math.imul(N,Y)|0,r=(r=r+Math.imul(N,G)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,G)|0,n=n+Math.imul(O,V)|0,r=(r=r+Math.imul(O,Q)|0)+Math.imul(D,V)|0,s=s+Math.imul(D,Q)|0,n=n+Math.imul(M,J)|0,r=(r=r+Math.imul(M,X)|0)+Math.imul(L,J)|0,s=s+Math.imul(L,X)|0,n=n+Math.imul(E,$)|0,r=(r=r+Math.imul(E,tt)|0)+Math.imul(k,$)|0,s=s+Math.imul(k,tt)|0,n=n+Math.imul(C,it)|0,r=(r=r+Math.imul(C,nt)|0)+Math.imul(A,it)|0,s=s+Math.imul(A,nt)|0,n=n+Math.imul(_,st)|0,r=(r=r+Math.imul(_,ot)|0)+Math.imul(w,st)|0,s=s+Math.imul(w,ot)|0,n=n+Math.imul(y,lt)|0,r=(r=r+Math.imul(y,ct)|0)+Math.imul(b,lt)|0,s=s+Math.imul(b,ct)|0,n=n+Math.imul(f,ut)|0,r=(r=r+Math.imul(f,dt)|0)+Math.imul(m,ut)|0,s=s+Math.imul(m,dt)|0;var St=(c+(n=n+Math.imul(u,ft)|0)|0)+((8191&(r=(r=r+Math.imul(u,mt)|0)+Math.imul(d,ft)|0))<<13)|0;c=((s=s+Math.imul(d,mt)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(Z,Y),r=(r=Math.imul(Z,G))+Math.imul(B,Y)|0,s=Math.imul(B,G),n=n+Math.imul(N,V)|0,r=(r=r+Math.imul(N,Q)|0)+Math.imul(P,V)|0,s=s+Math.imul(P,Q)|0,n=n+Math.imul(O,J)|0,r=(r=r+Math.imul(O,X)|0)+Math.imul(D,J)|0,s=s+Math.imul(D,X)|0,n=n+Math.imul(M,$)|0,r=(r=r+Math.imul(M,tt)|0)+Math.imul(L,$)|0,s=s+Math.imul(L,tt)|0,n=n+Math.imul(E,it)|0,r=(r=r+Math.imul(E,nt)|0)+Math.imul(k,it)|0,s=s+Math.imul(k,nt)|0,n=n+Math.imul(C,st)|0,r=(r=r+Math.imul(C,ot)|0)+Math.imul(A,st)|0,s=s+Math.imul(A,ot)|0,n=n+Math.imul(_,lt)|0,r=(r=r+Math.imul(_,ct)|0)+Math.imul(w,lt)|0,s=s+Math.imul(w,ct)|0,n=n+Math.imul(y,ut)|0,r=(r=r+Math.imul(y,dt)|0)+Math.imul(b,ut)|0,s=s+Math.imul(b,dt)|0;var Et=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(r=(r=r+Math.imul(f,mt)|0)+Math.imul(m,ft)|0))<<13)|0;c=((s=s+Math.imul(m,mt)|0)+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(Z,V),r=(r=Math.imul(Z,Q))+Math.imul(B,V)|0,s=Math.imul(B,Q),n=n+Math.imul(N,J)|0,r=(r=r+Math.imul(N,X)|0)+Math.imul(P,J)|0,s=s+Math.imul(P,X)|0,n=n+Math.imul(O,$)|0,r=(r=r+Math.imul(O,tt)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,tt)|0,n=n+Math.imul(M,it)|0,r=(r=r+Math.imul(M,nt)|0)+Math.imul(L,it)|0,s=s+Math.imul(L,nt)|0,n=n+Math.imul(E,st)|0,r=(r=r+Math.imul(E,ot)|0)+Math.imul(k,st)|0,s=s+Math.imul(k,ot)|0,n=n+Math.imul(C,lt)|0,r=(r=r+Math.imul(C,ct)|0)+Math.imul(A,lt)|0,s=s+Math.imul(A,ct)|0,n=n+Math.imul(_,ut)|0,r=(r=r+Math.imul(_,dt)|0)+Math.imul(w,ut)|0,s=s+Math.imul(w,dt)|0;var kt=(c+(n=n+Math.imul(y,ft)|0)|0)+((8191&(r=(r=r+Math.imul(y,mt)|0)+Math.imul(b,ft)|0))<<13)|0;c=((s=s+Math.imul(b,mt)|0)+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(Z,J),r=(r=Math.imul(Z,X))+Math.imul(B,J)|0,s=Math.imul(B,X),n=n+Math.imul(N,$)|0,r=(r=r+Math.imul(N,tt)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,tt)|0,n=n+Math.imul(O,it)|0,r=(r=r+Math.imul(O,nt)|0)+Math.imul(D,it)|0,s=s+Math.imul(D,nt)|0,n=n+Math.imul(M,st)|0,r=(r=r+Math.imul(M,ot)|0)+Math.imul(L,st)|0,s=s+Math.imul(L,ot)|0,n=n+Math.imul(E,lt)|0,r=(r=r+Math.imul(E,ct)|0)+Math.imul(k,lt)|0,s=s+Math.imul(k,ct)|0,n=n+Math.imul(C,ut)|0,r=(r=r+Math.imul(C,dt)|0)+Math.imul(A,ut)|0,s=s+Math.imul(A,dt)|0;var Tt=(c+(n=n+Math.imul(_,ft)|0)|0)+((8191&(r=(r=r+Math.imul(_,mt)|0)+Math.imul(w,ft)|0))<<13)|0;c=((s=s+Math.imul(w,mt)|0)+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(Z,$),r=(r=Math.imul(Z,tt))+Math.imul(B,$)|0,s=Math.imul(B,tt),n=n+Math.imul(N,it)|0,r=(r=r+Math.imul(N,nt)|0)+Math.imul(P,it)|0,s=s+Math.imul(P,nt)|0,n=n+Math.imul(O,st)|0,r=(r=r+Math.imul(O,ot)|0)+Math.imul(D,st)|0,s=s+Math.imul(D,ot)|0,n=n+Math.imul(M,lt)|0,r=(r=r+Math.imul(M,ct)|0)+Math.imul(L,lt)|0,s=s+Math.imul(L,ct)|0,n=n+Math.imul(E,ut)|0,r=(r=r+Math.imul(E,dt)|0)+Math.imul(k,ut)|0,s=s+Math.imul(k,dt)|0;var Mt=(c+(n=n+Math.imul(C,ft)|0)|0)+((8191&(r=(r=r+Math.imul(C,mt)|0)+Math.imul(A,ft)|0))<<13)|0;c=((s=s+Math.imul(A,mt)|0)+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(Z,it),r=(r=Math.imul(Z,nt))+Math.imul(B,it)|0,s=Math.imul(B,nt),n=n+Math.imul(N,st)|0,r=(r=r+Math.imul(N,ot)|0)+Math.imul(P,st)|0,s=s+Math.imul(P,ot)|0,n=n+Math.imul(O,lt)|0,r=(r=r+Math.imul(O,ct)|0)+Math.imul(D,lt)|0,s=s+Math.imul(D,ct)|0,n=n+Math.imul(M,ut)|0,r=(r=r+Math.imul(M,dt)|0)+Math.imul(L,ut)|0,s=s+Math.imul(L,dt)|0;var Lt=(c+(n=n+Math.imul(E,ft)|0)|0)+((8191&(r=(r=r+Math.imul(E,mt)|0)+Math.imul(k,ft)|0))<<13)|0;c=((s=s+Math.imul(k,mt)|0)+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(Z,st),r=(r=Math.imul(Z,ot))+Math.imul(B,st)|0,s=Math.imul(B,ot),n=n+Math.imul(N,lt)|0,r=(r=r+Math.imul(N,ct)|0)+Math.imul(P,lt)|0,s=s+Math.imul(P,ct)|0,n=n+Math.imul(O,ut)|0,r=(r=r+Math.imul(O,dt)|0)+Math.imul(D,ut)|0,s=s+Math.imul(D,dt)|0;var It=(c+(n=n+Math.imul(M,ft)|0)|0)+((8191&(r=(r=r+Math.imul(M,mt)|0)+Math.imul(L,ft)|0))<<13)|0;c=((s=s+Math.imul(L,mt)|0)+(r>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(Z,lt),r=(r=Math.imul(Z,ct))+Math.imul(B,lt)|0,s=Math.imul(B,ct),n=n+Math.imul(N,ut)|0,r=(r=r+Math.imul(N,dt)|0)+Math.imul(P,ut)|0,s=s+Math.imul(P,dt)|0;var Ot=(c+(n=n+Math.imul(O,ft)|0)|0)+((8191&(r=(r=r+Math.imul(O,mt)|0)+Math.imul(D,ft)|0))<<13)|0;c=((s=s+Math.imul(D,mt)|0)+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(Z,ut),r=(r=Math.imul(Z,dt))+Math.imul(B,ut)|0,s=Math.imul(B,dt);var Dt=(c+(n=n+Math.imul(N,ft)|0)|0)+((8191&(r=(r=r+Math.imul(N,mt)|0)+Math.imul(P,ft)|0))<<13)|0;c=((s=s+Math.imul(P,mt)|0)+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Rt=(c+(n=Math.imul(Z,ft))|0)+((8191&(r=(r=Math.imul(Z,mt))+Math.imul(B,ft)|0))<<13)|0;return c=((s=Math.imul(B,mt))+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,l[0]=gt,l[1]=yt,l[2]=bt,l[3]=vt,l[4]=_t,l[5]=wt,l[6]=xt,l[7]=Ct,l[8]=At,l[9]=St,l[10]=Et,l[11]=kt,l[12]=Tt,l[13]=Mt,l[14]=Lt,l[15]=It,l[16]=Ot,l[17]=Dt,l[18]=Rt,0!==c&&(l[19]=c,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(f=p),s.prototype.mulTo=function(t,e){var i=this.length+t.length;return 10===this.length&&10===t.length?f(this,t,e):i<63?p(this,t,e):i<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var n=0,r=0,s=0;s>>26)|0)>>>26,o&=67108863}i.words[s]=a,n=o,o=r}return 0!==n?i.words[s]=n:i.length--,i.strip()}(this,t,e):m(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=s.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,i,n,r,s){for(var o=0;o>>=1)r++;return 1<>>=13),s>>>=13;for(o=2*e;o>=26,e+=r/67108864|0,e+=s>>>26,this.words[i]=67108863&s}return 0!==e&&(this.words[i]=e,this.length++),this},s.prototype.muln=function(t){return this.clone().imuln(t)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i>>n}return e}(t);if(0===e.length)return new s(1);for(var i=this,n=0;n=0);var e,i=t%26,r=(t-i)/26,s=67108863>>>26-i<<26-i;if(0!==i){var o=0;for(e=0;e>>26-i}o&&(this.words[e]=o,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var s=t%26,o=Math.min((t-s)/26,this.length),a=67108863^67108863>>>s<o)for(this.length-=o,c=0;c=0&&(0!==h||c>=r);c--){var u=0|this.words[c];this.words[c]=h<<26-s|u>>>s,h=u&a}return l&&0!==h&&(l.words[l.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(t,e,i){return n(0===this.negative),this.iushrn(t,e,i)},s.prototype.shln=function(t){return this.clone().ishln(t)},s.prototype.ushln=function(t){return this.clone().iushln(t)},s.prototype.shrn=function(t){return this.clone().ishrn(t)},s.prototype.ushrn=function(t){return this.clone().iushrn(t)},s.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;return!(this.length<=i||!(this.words[i]&1<=0);var e=t%26,i=(t-e)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=i?this:(0!==e&&i++,this.length=Math.min(i,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},s.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(a/67108864|0),this.words[r+i]=67108863&s}for(;r>26,this.words[r+i]=67108863&s;if(0===o)return this.strip();for(n(-1===o),o=0,r=0;r>26,this.words[r]=67108863&s;return this.negative=1,this.strip()},s.prototype._wordDiv=function(t,e){var i,n=this.clone(),r=t,o=0|r.words[r.length-1];0!=(i=26-this._countBits(o))&&(r=r.ushln(i),n.iushln(i),o=0|r.words[r.length-1]);var a,l=n.length-r.length;if("mod"!==e){(a=new s(null)).length=l+1,a.words=new Array(a.length);for(var c=0;c=0;u--){var d=67108864*(0|n.words[r.length+u])+(0|n.words[r.length+u-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(r,d,u);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(r,1,u),n.isZero()||(n.negative^=1);a&&(a.words[u]=d)}return a&&a.strip(),n.strip(),"div"!==e&&0!==i&&n.iushrn(i),{div:a||null,mod:n}},s.prototype.divmod=function(t,e,i){return n(!t.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(r=a.div.neg()),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.iadd(t)),{div:r,mod:o}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.isub(t)),{div:a.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new s(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new s(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new s(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,o,a},s.prototype.div=function(t){return this.divmod(t,"div",!1).div},s.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},s.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},s.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),r=t.andln(1),s=i.cmp(n);return s<0||1===r&&0===s?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},s.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,i=0,r=this.length-1;r>=0;r--)i=(e*i+(0|this.words[r]))%t;return i},s.prototype.idivn=function(t){n(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var r=(0|this.words[i])+67108864*e;this.words[i]=r/t|0,e=r%t}return this.strip()},s.prototype.divn=function(t){return this.clone().idivn(t)},s.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r=new s(1),o=new s(0),a=new s(0),l=new s(1),c=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++c;for(var h=i.clone(),u=e.clone();!e.isZero();){for(var d=0,p=1;0==(e.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(r.isOdd()||o.isOdd())&&(r.iadd(h),o.isub(u)),r.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(i.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(i.iushrn(f);f-- >0;)(a.isOdd()||l.isOdd())&&(a.iadd(h),l.isub(u)),a.iushrn(1),l.iushrn(1);e.cmp(i)>=0?(e.isub(i),r.isub(a),o.isub(l)):(i.isub(e),a.isub(r),l.isub(o))}return{a:a,b:l,gcd:i.iushln(c)}},s.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r,o=new s(1),a=new s(0),l=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var c=0,h=1;0==(e.words[0]&h)&&c<26;++c,h<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var u=0,d=1;0==(i.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(i.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(l),a.iushrn(1);e.cmp(i)>=0?(e.isub(i),o.isub(a)):(i.isub(e),a.isub(o))}return(r=0===e.cmpn(1)?o:a).cmpn(0)<0&&r.iadd(t),r},s.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var n=0;e.isEven()&&i.isEven();n++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var r=e.cmp(i);if(r<0){var s=e;e=i,i=s}else if(0===r||0===i.cmpn(1))break;e.isub(i)}return i.iushln(n)},s.prototype.invm=function(t){return this.egcd(t).a.umod(t)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(t){return this.words[0]&t},s.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,i=(t-e)/26,r=1<>>26,this.words[o]=a&=67108863}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),n(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;i--){var n=0|this.words[i],r=0|t.words[i];if(n!==r){nr&&(e=1);break}}return e},s.prototype.gtn=function(t){return 1===this.cmpn(t)},s.prototype.gt=function(t){return 1===this.cmp(t)},s.prototype.gten=function(t){return this.cmpn(t)>=0},s.prototype.gte=function(t){return this.cmp(t)>=0},s.prototype.ltn=function(t){return-1===this.cmpn(t)},s.prototype.lt=function(t){return-1===this.cmp(t)},s.prototype.lten=function(t){return this.cmpn(t)<=0},s.prototype.lte=function(t){return this.cmp(t)<=0},s.prototype.eqn=function(t){return 0===this.cmpn(t)},s.prototype.eq=function(t){return 0===this.cmp(t)},s.red=function(t){return new C(t)},s.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(t){return this.red=t,this},s.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},s.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},s.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},s.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},s.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},s.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},s.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},s.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new s(e,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function C(t){if("string"==typeof t){var e=s._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){C.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var t=new s(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},r(v,b),v.prototype.split=function(t,e){for(var i=4194303,n=Math.min(t.length,9),r=0;r>>22,s=o}t.words[r-10]=s>>>=22,t.length-=0===s&&t.length>10?10:9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i>>=26,t.words[i]=r,e=n}return 0!==e&&(t.words[t.length++]=e),t},s._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new x}return y[t]=e,e},C.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},C.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},C.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},C.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},C.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},C.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},C.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},C.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},C.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},C.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},C.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},C.prototype.isqr=function(t){return this.imul(t,t.clone())},C.prototype.sqr=function(t){return this.mul(t,t)},C.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var i=this.m.add(new s(1)).iushrn(2);return this.pow(t,i)}for(var r=this.m.subn(1),o=0;!r.isZero()&&0===r.andln(1);)o++,r.iushrn(1);n(!r.isZero());var a=new s(1).toRed(this),l=a.redNeg(),c=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new s(2*h*h).toRed(this);0!==this.pow(h,c).cmp(l);)h.redIAdd(l);for(var u=this.pow(h,r),d=this.pow(t,r.addn(1).iushrn(1)),p=this.pow(t,r),f=o;0!==p.cmp(a);){for(var m=p,g=0;0!==m.cmp(a);g++)m=m.redSqr();n(g=0;n--){for(var c=e.words[n],h=l-1;h>=0;h--){var u=c>>h&1;r!==i[0]&&(r=this.sqr(r)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===n&&0===h)&&(r=this.mul(r,i[o]),a=0,o=0)):a=0}l=26}return r},C.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},C.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},s.mont=function(t){return new A(t)},r(A,C),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),s=r;return r.cmp(this.m)>=0?s=r.isub(this.m):r.cmpn(0)<0&&(s=r.iadd(this.m)),s._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new s(0)._forceRed(this);var i=t.mul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=i.nmd(t),this)},6698:(t,e)=>{"use strict";e.byteLength=function(t){var e=l(t),i=e[1];return 3*(e[0]+i)/4-i},e.toByteArray=function(t){var e,i,s=l(t),o=s[0],a=s[1],c=new r(function(t,e,i){return 3*(e+i)/4-i}(0,o,a)),h=0,u=a>0?o-4:o;for(i=0;i>16&255,c[h++]=e>>8&255,c[h++]=255&e;return 2===a&&(e=n[t.charCodeAt(i)]<<2|n[t.charCodeAt(i+1)]>>4,c[h++]=255&e),1===a&&(e=n[t.charCodeAt(i)]<<10|n[t.charCodeAt(i+1)]<<4|n[t.charCodeAt(i+2)]>>2,c[h++]=e>>8&255,c[h++]=255&e),c},e.fromByteArray=function(t){for(var e,n=t.length,r=n%3,s=[],o=16383,a=0,l=n-r;al?l:a+o));return 1===r?s.push(i[(e=t[n-1])>>2]+i[e<<4&63]+"=="):2===r&&s.push(i[(e=(t[n-2]<<8)+t[n-1])>>10]+i[e>>4&63]+i[e<<2&63]+"="),s.join("")};for(var i=[],n=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,a=s.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function c(t,e,n){for(var r,s=[],o=e;o>18&63]+i[r>>12&63]+i[r>>6&63]+i[63&r]);return s.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},4724:function(t,e,i){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function r(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function s(t,e,i){if(s.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var o;"object"==typeof t?t.exports=s:e.BN=s,s.BN=s,s.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(6601).Buffer}catch(T){}function a(t,e){var i=t.charCodeAt(e);return i>=48&&i<=57?i-48:i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:void n(!1,"Invalid character in "+t)}function l(t,e,i){var n=a(t,i);return i-1>=e&&(n|=a(t,i-1)<<4),n}function c(t,e,i,r){for(var s=0,o=0,a=Math.min(t.length,i),l=e;l=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&o0?t:e},s.min=function(t,e){return t.cmp(e)<0?t:e},s.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var r=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r=0;r-=3)this.words[s]|=(o=t[r]|t[r-1]<<8|t[r-2]<<16)<>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===i)for(r=0,s=0;r>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},s.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)r=l(t,e,n)<=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;this._strip()},s.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var n=0,r=1;r<=67108863;r*=e)n++;n--,r=r/e|0;for(var s=t.length-i,o=s%n,a=Math.min(s,s-o)+i,l=0,h=i;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=u}catch(T){s.prototype.inspect=u}else s.prototype.inspect=u;function u(){return(this.red?""}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function m(t,e,i){i.negative=e.negative^t.negative;var n=t.length+e.length|0;i.length=n,n=n-1|0;var r=0|t.words[0],s=0|e.words[0],o=r*s,a=o/67108864|0;i.words[0]=67108863&o;for(var l=1;l>>26,h=67108863&a,u=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=u;d++)c+=(o=(r=0|t.words[l-d|0])*(s=0|e.words[d])+h)/67108864|0,h=67108863&o;i.words[l]=0|h,a=0|c}return 0!==a?i.words[l]=0|a:i.length--,i._strip()}s.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var r=0,s=0,o=0;o>>24-r&16777215)||o!==this.length-1?d[6-l.length]+l+i:l+i,(r+=2)>=26&&(r-=26,o--)}for(0!==s&&(i=s.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var c=p[t],h=f[t];i="";var u=this.clone();for(u.negative=0;!u.isZero();){var m=u.modrn(h).toString(t);i=(u=u.idivn(h)).isZero()?m+i:d[c-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(t,e){return this.toArrayLike(o,t,e)}),s.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},s.prototype.toArrayLike=function(t,e,i){this._strip();var r=this.byteLength(),s=i||Math.max(1,r);n(r<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0");var o=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,s);return this["_toArrayLike"+("le"===e?"LE":"BE")](o,r),o},s.prototype._toArrayLikeLE=function(t,e){for(var i=0,n=0,r=0,s=0;r>8&255),i>16&255),6===s?(i>24&255),n=0,s=0):(n=o>>>24,s+=2)}if(i=0&&(t[i--]=o>>8&255),i>=0&&(t[i--]=o>>16&255),6===s?(i>=0&&(t[i--]=o>>24&255),n=0,s=0):(n=o>>>24,s+=2)}if(i>=0)for(t[i--]=n;i>=0;)t[i--]=0},s.prototype._countBits=Math.clz32?function(t){return 32-Math.clz32(t)}:function(t){var e=t,i=0;return e>=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},s.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},s.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},s.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},s.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;it.length?this.clone().iand(t):t.clone().iand(this)},s.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},s.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},s.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},s.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-i),this._strip()},s.prototype.notn=function(t){return this.clone().inotn(t)},s.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var i=t/26|0,r=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<t.length?(i=this,n=t):(i=t,n=this);for(var r=0,s=0;s>>26;for(;0!==r&&s>>26;if(this.length=i.length,0!==r)this.words[this.length]=r,this.length++;else if(i!==this)for(;st.length?this.clone().iadd(t):t.clone().iadd(this)},s.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,n,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(i=this,n=t):(i=t,n=this);for(var s=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==s&&o>26,this.words[o]=67108863&e;if(0===s&&o>>13,p=0|o[1],f=8191&p,m=p>>>13,g=0|o[2],y=8191&g,b=g>>>13,v=0|o[3],_=8191&v,w=v>>>13,x=0|o[4],C=8191&x,A=x>>>13,S=0|o[5],E=8191&S,k=S>>>13,T=0|o[6],M=8191&T,L=T>>>13,I=0|o[7],O=8191&I,D=I>>>13,R=0|o[8],N=8191&R,P=R>>>13,F=0|o[9],Z=8191&F,B=F>>>13,U=0|a[0],q=8191&U,z=U>>>13,H=0|a[1],Y=8191&H,G=H>>>13,j=0|a[2],V=8191&j,Q=j>>>13,W=0|a[3],J=8191&W,X=W>>>13,K=0|a[4],$=8191&K,tt=K>>>13,et=0|a[5],it=8191&et,nt=et>>>13,rt=0|a[6],st=8191&rt,ot=rt>>>13,at=0|a[7],lt=8191&at,ct=at>>>13,ht=0|a[8],ut=8191&ht,dt=ht>>>13,pt=0|a[9],ft=8191&pt,mt=pt>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(c+(n=Math.imul(u,q))|0)+((8191&(r=(r=Math.imul(u,z))+Math.imul(d,q)|0))<<13)|0;c=((s=Math.imul(d,z))+(r>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(f,q),r=(r=Math.imul(f,z))+Math.imul(m,q)|0,s=Math.imul(m,z);var yt=(c+(n=n+Math.imul(u,Y)|0)|0)+((8191&(r=(r=r+Math.imul(u,G)|0)+Math.imul(d,Y)|0))<<13)|0;c=((s=s+Math.imul(d,G)|0)+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),r=(r=Math.imul(y,z))+Math.imul(b,q)|0,s=Math.imul(b,z),n=n+Math.imul(f,Y)|0,r=(r=r+Math.imul(f,G)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,G)|0;var bt=(c+(n=n+Math.imul(u,V)|0)|0)+((8191&(r=(r=r+Math.imul(u,Q)|0)+Math.imul(d,V)|0))<<13)|0;c=((s=s+Math.imul(d,Q)|0)+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(_,q),r=(r=Math.imul(_,z))+Math.imul(w,q)|0,s=Math.imul(w,z),n=n+Math.imul(y,Y)|0,r=(r=r+Math.imul(y,G)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,G)|0,n=n+Math.imul(f,V)|0,r=(r=r+Math.imul(f,Q)|0)+Math.imul(m,V)|0,s=s+Math.imul(m,Q)|0;var vt=(c+(n=n+Math.imul(u,J)|0)|0)+((8191&(r=(r=r+Math.imul(u,X)|0)+Math.imul(d,J)|0))<<13)|0;c=((s=s+Math.imul(d,X)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(C,q),r=(r=Math.imul(C,z))+Math.imul(A,q)|0,s=Math.imul(A,z),n=n+Math.imul(_,Y)|0,r=(r=r+Math.imul(_,G)|0)+Math.imul(w,Y)|0,s=s+Math.imul(w,G)|0,n=n+Math.imul(y,V)|0,r=(r=r+Math.imul(y,Q)|0)+Math.imul(b,V)|0,s=s+Math.imul(b,Q)|0,n=n+Math.imul(f,J)|0,r=(r=r+Math.imul(f,X)|0)+Math.imul(m,J)|0,s=s+Math.imul(m,X)|0;var _t=(c+(n=n+Math.imul(u,$)|0)|0)+((8191&(r=(r=r+Math.imul(u,tt)|0)+Math.imul(d,$)|0))<<13)|0;c=((s=s+Math.imul(d,tt)|0)+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,q),r=(r=Math.imul(E,z))+Math.imul(k,q)|0,s=Math.imul(k,z),n=n+Math.imul(C,Y)|0,r=(r=r+Math.imul(C,G)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,G)|0,n=n+Math.imul(_,V)|0,r=(r=r+Math.imul(_,Q)|0)+Math.imul(w,V)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(y,J)|0,r=(r=r+Math.imul(y,X)|0)+Math.imul(b,J)|0,s=s+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,r=(r=r+Math.imul(f,tt)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(u,it)|0)|0)+((8191&(r=(r=r+Math.imul(u,nt)|0)+Math.imul(d,it)|0))<<13)|0;c=((s=s+Math.imul(d,nt)|0)+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(M,q),r=(r=Math.imul(M,z))+Math.imul(L,q)|0,s=Math.imul(L,z),n=n+Math.imul(E,Y)|0,r=(r=r+Math.imul(E,G)|0)+Math.imul(k,Y)|0,s=s+Math.imul(k,G)|0,n=n+Math.imul(C,V)|0,r=(r=r+Math.imul(C,Q)|0)+Math.imul(A,V)|0,s=s+Math.imul(A,Q)|0,n=n+Math.imul(_,J)|0,r=(r=r+Math.imul(_,X)|0)+Math.imul(w,J)|0,s=s+Math.imul(w,X)|0,n=n+Math.imul(y,$)|0,r=(r=r+Math.imul(y,tt)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,tt)|0,n=n+Math.imul(f,it)|0,r=(r=r+Math.imul(f,nt)|0)+Math.imul(m,it)|0,s=s+Math.imul(m,nt)|0;var xt=(c+(n=n+Math.imul(u,st)|0)|0)+((8191&(r=(r=r+Math.imul(u,ot)|0)+Math.imul(d,st)|0))<<13)|0;c=((s=s+Math.imul(d,ot)|0)+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(O,q),r=(r=Math.imul(O,z))+Math.imul(D,q)|0,s=Math.imul(D,z),n=n+Math.imul(M,Y)|0,r=(r=r+Math.imul(M,G)|0)+Math.imul(L,Y)|0,s=s+Math.imul(L,G)|0,n=n+Math.imul(E,V)|0,r=(r=r+Math.imul(E,Q)|0)+Math.imul(k,V)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(C,J)|0,r=(r=r+Math.imul(C,X)|0)+Math.imul(A,J)|0,s=s+Math.imul(A,X)|0,n=n+Math.imul(_,$)|0,r=(r=r+Math.imul(_,tt)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,tt)|0,n=n+Math.imul(y,it)|0,r=(r=r+Math.imul(y,nt)|0)+Math.imul(b,it)|0,s=s+Math.imul(b,nt)|0,n=n+Math.imul(f,st)|0,r=(r=r+Math.imul(f,ot)|0)+Math.imul(m,st)|0,s=s+Math.imul(m,ot)|0;var Ct=(c+(n=n+Math.imul(u,lt)|0)|0)+((8191&(r=(r=r+Math.imul(u,ct)|0)+Math.imul(d,lt)|0))<<13)|0;c=((s=s+Math.imul(d,ct)|0)+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(N,q),r=(r=Math.imul(N,z))+Math.imul(P,q)|0,s=Math.imul(P,z),n=n+Math.imul(O,Y)|0,r=(r=r+Math.imul(O,G)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,G)|0,n=n+Math.imul(M,V)|0,r=(r=r+Math.imul(M,Q)|0)+Math.imul(L,V)|0,s=s+Math.imul(L,Q)|0,n=n+Math.imul(E,J)|0,r=(r=r+Math.imul(E,X)|0)+Math.imul(k,J)|0,s=s+Math.imul(k,X)|0,n=n+Math.imul(C,$)|0,r=(r=r+Math.imul(C,tt)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,tt)|0,n=n+Math.imul(_,it)|0,r=(r=r+Math.imul(_,nt)|0)+Math.imul(w,it)|0,s=s+Math.imul(w,nt)|0,n=n+Math.imul(y,st)|0,r=(r=r+Math.imul(y,ot)|0)+Math.imul(b,st)|0,s=s+Math.imul(b,ot)|0,n=n+Math.imul(f,lt)|0,r=(r=r+Math.imul(f,ct)|0)+Math.imul(m,lt)|0,s=s+Math.imul(m,ct)|0;var At=(c+(n=n+Math.imul(u,ut)|0)|0)+((8191&(r=(r=r+Math.imul(u,dt)|0)+Math.imul(d,ut)|0))<<13)|0;c=((s=s+Math.imul(d,dt)|0)+(r>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(Z,q),r=(r=Math.imul(Z,z))+Math.imul(B,q)|0,s=Math.imul(B,z),n=n+Math.imul(N,Y)|0,r=(r=r+Math.imul(N,G)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,G)|0,n=n+Math.imul(O,V)|0,r=(r=r+Math.imul(O,Q)|0)+Math.imul(D,V)|0,s=s+Math.imul(D,Q)|0,n=n+Math.imul(M,J)|0,r=(r=r+Math.imul(M,X)|0)+Math.imul(L,J)|0,s=s+Math.imul(L,X)|0,n=n+Math.imul(E,$)|0,r=(r=r+Math.imul(E,tt)|0)+Math.imul(k,$)|0,s=s+Math.imul(k,tt)|0,n=n+Math.imul(C,it)|0,r=(r=r+Math.imul(C,nt)|0)+Math.imul(A,it)|0,s=s+Math.imul(A,nt)|0,n=n+Math.imul(_,st)|0,r=(r=r+Math.imul(_,ot)|0)+Math.imul(w,st)|0,s=s+Math.imul(w,ot)|0,n=n+Math.imul(y,lt)|0,r=(r=r+Math.imul(y,ct)|0)+Math.imul(b,lt)|0,s=s+Math.imul(b,ct)|0,n=n+Math.imul(f,ut)|0,r=(r=r+Math.imul(f,dt)|0)+Math.imul(m,ut)|0,s=s+Math.imul(m,dt)|0;var St=(c+(n=n+Math.imul(u,ft)|0)|0)+((8191&(r=(r=r+Math.imul(u,mt)|0)+Math.imul(d,ft)|0))<<13)|0;c=((s=s+Math.imul(d,mt)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(Z,Y),r=(r=Math.imul(Z,G))+Math.imul(B,Y)|0,s=Math.imul(B,G),n=n+Math.imul(N,V)|0,r=(r=r+Math.imul(N,Q)|0)+Math.imul(P,V)|0,s=s+Math.imul(P,Q)|0,n=n+Math.imul(O,J)|0,r=(r=r+Math.imul(O,X)|0)+Math.imul(D,J)|0,s=s+Math.imul(D,X)|0,n=n+Math.imul(M,$)|0,r=(r=r+Math.imul(M,tt)|0)+Math.imul(L,$)|0,s=s+Math.imul(L,tt)|0,n=n+Math.imul(E,it)|0,r=(r=r+Math.imul(E,nt)|0)+Math.imul(k,it)|0,s=s+Math.imul(k,nt)|0,n=n+Math.imul(C,st)|0,r=(r=r+Math.imul(C,ot)|0)+Math.imul(A,st)|0,s=s+Math.imul(A,ot)|0,n=n+Math.imul(_,lt)|0,r=(r=r+Math.imul(_,ct)|0)+Math.imul(w,lt)|0,s=s+Math.imul(w,ct)|0,n=n+Math.imul(y,ut)|0,r=(r=r+Math.imul(y,dt)|0)+Math.imul(b,ut)|0,s=s+Math.imul(b,dt)|0;var Et=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(r=(r=r+Math.imul(f,mt)|0)+Math.imul(m,ft)|0))<<13)|0;c=((s=s+Math.imul(m,mt)|0)+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(Z,V),r=(r=Math.imul(Z,Q))+Math.imul(B,V)|0,s=Math.imul(B,Q),n=n+Math.imul(N,J)|0,r=(r=r+Math.imul(N,X)|0)+Math.imul(P,J)|0,s=s+Math.imul(P,X)|0,n=n+Math.imul(O,$)|0,r=(r=r+Math.imul(O,tt)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,tt)|0,n=n+Math.imul(M,it)|0,r=(r=r+Math.imul(M,nt)|0)+Math.imul(L,it)|0,s=s+Math.imul(L,nt)|0,n=n+Math.imul(E,st)|0,r=(r=r+Math.imul(E,ot)|0)+Math.imul(k,st)|0,s=s+Math.imul(k,ot)|0,n=n+Math.imul(C,lt)|0,r=(r=r+Math.imul(C,ct)|0)+Math.imul(A,lt)|0,s=s+Math.imul(A,ct)|0,n=n+Math.imul(_,ut)|0,r=(r=r+Math.imul(_,dt)|0)+Math.imul(w,ut)|0,s=s+Math.imul(w,dt)|0;var kt=(c+(n=n+Math.imul(y,ft)|0)|0)+((8191&(r=(r=r+Math.imul(y,mt)|0)+Math.imul(b,ft)|0))<<13)|0;c=((s=s+Math.imul(b,mt)|0)+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(Z,J),r=(r=Math.imul(Z,X))+Math.imul(B,J)|0,s=Math.imul(B,X),n=n+Math.imul(N,$)|0,r=(r=r+Math.imul(N,tt)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,tt)|0,n=n+Math.imul(O,it)|0,r=(r=r+Math.imul(O,nt)|0)+Math.imul(D,it)|0,s=s+Math.imul(D,nt)|0,n=n+Math.imul(M,st)|0,r=(r=r+Math.imul(M,ot)|0)+Math.imul(L,st)|0,s=s+Math.imul(L,ot)|0,n=n+Math.imul(E,lt)|0,r=(r=r+Math.imul(E,ct)|0)+Math.imul(k,lt)|0,s=s+Math.imul(k,ct)|0,n=n+Math.imul(C,ut)|0,r=(r=r+Math.imul(C,dt)|0)+Math.imul(A,ut)|0,s=s+Math.imul(A,dt)|0;var Tt=(c+(n=n+Math.imul(_,ft)|0)|0)+((8191&(r=(r=r+Math.imul(_,mt)|0)+Math.imul(w,ft)|0))<<13)|0;c=((s=s+Math.imul(w,mt)|0)+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(Z,$),r=(r=Math.imul(Z,tt))+Math.imul(B,$)|0,s=Math.imul(B,tt),n=n+Math.imul(N,it)|0,r=(r=r+Math.imul(N,nt)|0)+Math.imul(P,it)|0,s=s+Math.imul(P,nt)|0,n=n+Math.imul(O,st)|0,r=(r=r+Math.imul(O,ot)|0)+Math.imul(D,st)|0,s=s+Math.imul(D,ot)|0,n=n+Math.imul(M,lt)|0,r=(r=r+Math.imul(M,ct)|0)+Math.imul(L,lt)|0,s=s+Math.imul(L,ct)|0,n=n+Math.imul(E,ut)|0,r=(r=r+Math.imul(E,dt)|0)+Math.imul(k,ut)|0,s=s+Math.imul(k,dt)|0;var Mt=(c+(n=n+Math.imul(C,ft)|0)|0)+((8191&(r=(r=r+Math.imul(C,mt)|0)+Math.imul(A,ft)|0))<<13)|0;c=((s=s+Math.imul(A,mt)|0)+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(Z,it),r=(r=Math.imul(Z,nt))+Math.imul(B,it)|0,s=Math.imul(B,nt),n=n+Math.imul(N,st)|0,r=(r=r+Math.imul(N,ot)|0)+Math.imul(P,st)|0,s=s+Math.imul(P,ot)|0,n=n+Math.imul(O,lt)|0,r=(r=r+Math.imul(O,ct)|0)+Math.imul(D,lt)|0,s=s+Math.imul(D,ct)|0,n=n+Math.imul(M,ut)|0,r=(r=r+Math.imul(M,dt)|0)+Math.imul(L,ut)|0,s=s+Math.imul(L,dt)|0;var Lt=(c+(n=n+Math.imul(E,ft)|0)|0)+((8191&(r=(r=r+Math.imul(E,mt)|0)+Math.imul(k,ft)|0))<<13)|0;c=((s=s+Math.imul(k,mt)|0)+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(Z,st),r=(r=Math.imul(Z,ot))+Math.imul(B,st)|0,s=Math.imul(B,ot),n=n+Math.imul(N,lt)|0,r=(r=r+Math.imul(N,ct)|0)+Math.imul(P,lt)|0,s=s+Math.imul(P,ct)|0,n=n+Math.imul(O,ut)|0,r=(r=r+Math.imul(O,dt)|0)+Math.imul(D,ut)|0,s=s+Math.imul(D,dt)|0;var It=(c+(n=n+Math.imul(M,ft)|0)|0)+((8191&(r=(r=r+Math.imul(M,mt)|0)+Math.imul(L,ft)|0))<<13)|0;c=((s=s+Math.imul(L,mt)|0)+(r>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(Z,lt),r=(r=Math.imul(Z,ct))+Math.imul(B,lt)|0,s=Math.imul(B,ct),n=n+Math.imul(N,ut)|0,r=(r=r+Math.imul(N,dt)|0)+Math.imul(P,ut)|0,s=s+Math.imul(P,dt)|0;var Ot=(c+(n=n+Math.imul(O,ft)|0)|0)+((8191&(r=(r=r+Math.imul(O,mt)|0)+Math.imul(D,ft)|0))<<13)|0;c=((s=s+Math.imul(D,mt)|0)+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(Z,ut),r=(r=Math.imul(Z,dt))+Math.imul(B,ut)|0,s=Math.imul(B,dt);var Dt=(c+(n=n+Math.imul(N,ft)|0)|0)+((8191&(r=(r=r+Math.imul(N,mt)|0)+Math.imul(P,ft)|0))<<13)|0;c=((s=s+Math.imul(P,mt)|0)+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Rt=(c+(n=Math.imul(Z,ft))|0)+((8191&(r=(r=Math.imul(Z,mt))+Math.imul(B,ft)|0))<<13)|0;return c=((s=Math.imul(B,mt))+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,l[0]=gt,l[1]=yt,l[2]=bt,l[3]=vt,l[4]=_t,l[5]=wt,l[6]=xt,l[7]=Ct,l[8]=At,l[9]=St,l[10]=Et,l[11]=kt,l[12]=Tt,l[13]=Mt,l[14]=Lt,l[15]=It,l[16]=Ot,l[17]=Dt,l[18]=Rt,0!==c&&(l[19]=c,i.length++),i};function y(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var n=0,r=0,s=0;s>>26)|0)>>>26,o&=67108863}i.words[s]=a,n=o,o=r}return 0!==n?i.words[s]=n:i.length--,i._strip()}function b(t,e,i){return y(t,e,i)}function v(t,e){this.x=t,this.y=e}Math.imul||(g=m),s.prototype.mulTo=function(t,e){var i=this.length+t.length;return 10===this.length&&10===t.length?g(this,t,e):i<63?m(this,t,e):i<1024?y(this,t,e):b(this,t,e)},v.prototype.makeRBT=function(t){for(var e=new Array(t),i=s.prototype._countBits(t)-1,n=0;n>=1;return n},v.prototype.permute=function(t,e,i,n,r,s){for(var o=0;o>>=1)r++;return 1<>>=13),s>>>=13;for(o=2*e;o>=26,i+=s/67108864|0,i+=o>>>26,this.words[r]=67108863&o}return 0!==i&&(this.words[r]=i,this.length++),e?this.ineg():this},s.prototype.muln=function(t){return this.clone().imuln(t)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i>>i%26&1;return e}(t);if(0===e.length)return new s(1);for(var i=this,n=0;n=0);var e,i=t%26,r=(t-i)/26,s=67108863>>>26-i<<26-i;if(0!==i){var o=0;for(e=0;e>>26-i}o&&(this.words[e]=o,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var s=t%26,o=Math.min((t-s)/26,this.length),a=67108863^67108863>>>s<o)for(this.length-=o,c=0;c=0&&(0!==h||c>=r);c--){var u=0|this.words[c];this.words[c]=h<<26-s|u>>>s,h=u&a}return l&&0!==h&&(l.words[l.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(t,e,i){return n(0===this.negative),this.iushrn(t,e,i)},s.prototype.shln=function(t){return this.clone().ishln(t)},s.prototype.ushln=function(t){return this.clone().iushln(t)},s.prototype.shrn=function(t){return this.clone().ishrn(t)},s.prototype.ushrn=function(t){return this.clone().iushrn(t)},s.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;return!(this.length<=i||!(this.words[i]&1<=0);var e=t%26,i=(t-e)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=i?this:(0!==e&&i++,this.length=Math.min(i,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},s.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(a/67108864|0),this.words[r+i]=67108863&s}for(;r>26,this.words[r+i]=67108863&s;if(0===o)return this._strip();for(n(-1===o),o=0,r=0;r>26,this.words[r]=67108863&s;return this.negative=1,this._strip()},s.prototype._wordDiv=function(t,e){var i,n=this.clone(),r=t,o=0|r.words[r.length-1];0!=(i=26-this._countBits(o))&&(r=r.ushln(i),n.iushln(i),o=0|r.words[r.length-1]);var a,l=n.length-r.length;if("mod"!==e){(a=new s(null)).length=l+1,a.words=new Array(a.length);for(var c=0;c=0;u--){var d=67108864*(0|n.words[r.length+u])+(0|n.words[r.length+u-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(r,d,u);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(r,1,u),n.isZero()||(n.negative^=1);a&&(a.words[u]=d)}return a&&a._strip(),n._strip(),"div"!==e&&0!==i&&n.iushrn(i),{div:a||null,mod:n}},s.prototype.divmod=function(t,e,i){return n(!t.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(r=a.div.neg()),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.iadd(t)),{div:r,mod:o}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.isub(t)),{div:a.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new s(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new s(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new s(this.modrn(t.words[0]))}:this._wordDiv(t,e);var r,o,a},s.prototype.div=function(t){return this.divmod(t,"div",!1).div},s.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},s.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},s.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),r=t.andln(1),s=i.cmp(n);return s<0||1===r&&0===s?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},s.prototype.modrn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var i=(1<<26)%t,r=0,s=this.length-1;s>=0;s--)r=(i*r+(0|this.words[s]))%t;return e?-r:r},s.prototype.modn=function(t){return this.modrn(t)},s.prototype.idivn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var i=0,r=this.length-1;r>=0;r--){var s=(0|this.words[r])+67108864*i;this.words[r]=s/t|0,i=s%t}return this._strip(),e?this.ineg():this},s.prototype.divn=function(t){return this.clone().idivn(t)},s.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r=new s(1),o=new s(0),a=new s(0),l=new s(1),c=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++c;for(var h=i.clone(),u=e.clone();!e.isZero();){for(var d=0,p=1;0==(e.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(r.isOdd()||o.isOdd())&&(r.iadd(h),o.isub(u)),r.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(i.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(i.iushrn(f);f-- >0;)(a.isOdd()||l.isOdd())&&(a.iadd(h),l.isub(u)),a.iushrn(1),l.iushrn(1);e.cmp(i)>=0?(e.isub(i),r.isub(a),o.isub(l)):(i.isub(e),a.isub(r),l.isub(o))}return{a:a,b:l,gcd:i.iushln(c)}},s.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r,o=new s(1),a=new s(0),l=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var c=0,h=1;0==(e.words[0]&h)&&c<26;++c,h<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var u=0,d=1;0==(i.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(i.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(l),a.iushrn(1);e.cmp(i)>=0?(e.isub(i),o.isub(a)):(i.isub(e),a.isub(o))}return(r=0===e.cmpn(1)?o:a).cmpn(0)<0&&r.iadd(t),r},s.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var n=0;e.isEven()&&i.isEven();n++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var r=e.cmp(i);if(r<0){var s=e;e=i,i=s}else if(0===r||0===i.cmpn(1))break;e.isub(i)}return i.iushln(n)},s.prototype.invm=function(t){return this.egcd(t).a.umod(t)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(t){return this.words[0]&t},s.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,i=(t-e)/26,r=1<>>26,this.words[o]=a&=67108863}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this._strip(),this.length>1)e=1;else{i&&(t=-t),n(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;i--){var n=0|this.words[i],r=0|t.words[i];if(n!==r){nr&&(e=1);break}}return e},s.prototype.gtn=function(t){return 1===this.cmpn(t)},s.prototype.gt=function(t){return 1===this.cmp(t)},s.prototype.gten=function(t){return this.cmpn(t)>=0},s.prototype.gte=function(t){return this.cmp(t)>=0},s.prototype.ltn=function(t){return-1===this.cmpn(t)},s.prototype.lt=function(t){return-1===this.cmp(t)},s.prototype.lten=function(t){return this.cmpn(t)<=0},s.prototype.lte=function(t){return this.cmp(t)<=0},s.prototype.eqn=function(t){return 0===this.cmpn(t)},s.prototype.eq=function(t){return 0===this.cmp(t)},s.red=function(t){return new E(t)},s.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(t){return this.red=t,this},s.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},s.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},s.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},s.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},s.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},s.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},s.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},s.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var _={k256:null,p224:null,p192:null,p25519:null};function w(t,e){this.name=t,this.p=new s(e,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function C(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(t){if("string"==typeof t){var e=s._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function k(t){E.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var t=new s(null);return t.words=new Array(Math.ceil(this.n/13)),t},w.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},w.prototype.split=function(t,e){t.iushrn(this.n,0,e)},w.prototype.imulK=function(t){return t.imul(this.k)},r(x,w),x.prototype.split=function(t,e){for(var i=4194303,n=Math.min(t.length,9),r=0;r>>22,s=o}t.words[r-10]=s>>>=22,t.length-=0===s&&t.length>10?10:9},x.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i>>=26,t.words[i]=r,e=n}return 0!==e&&(t.words[t.length++]=e),t},s._prime=function(t){if(_[t])return _[t];var e;if("k256"===t)e=new x;else if("p224"===t)e=new C;else if("p192"===t)e=new A;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return _[t]=e,e},E.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},E.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},E.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(h(t,t.umod(this.m)._forceRed(this)),t)},E.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},E.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},E.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},E.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},E.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},E.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},E.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},E.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},E.prototype.isqr=function(t){return this.imul(t,t.clone())},E.prototype.sqr=function(t){return this.mul(t,t)},E.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var i=this.m.add(new s(1)).iushrn(2);return this.pow(t,i)}for(var r=this.m.subn(1),o=0;!r.isZero()&&0===r.andln(1);)o++,r.iushrn(1);n(!r.isZero());var a=new s(1).toRed(this),l=a.redNeg(),c=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new s(2*h*h).toRed(this);0!==this.pow(h,c).cmp(l);)h.redIAdd(l);for(var u=this.pow(h,r),d=this.pow(t,r.addn(1).iushrn(1)),p=this.pow(t,r),f=o;0!==p.cmp(a);){for(var m=p,g=0;0!==m.cmp(a);g++)m=m.redSqr();n(g=0;n--){for(var c=e.words[n],h=l-1;h>=0;h--){var u=c>>h&1;r!==i[0]&&(r=this.sqr(r)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===n&&0===h)&&(r=this.mul(r,i[o]),a=0,o=0)):a=0}l=26}return r},E.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},E.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},s.mont=function(t){return new k(t)},r(k,E),k.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},k.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},k.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),s=r;return r.cmp(this.m)>=0?s=r.isub(this.m):r.cmpn(0)<0&&(s=r.iadd(this.m)),s._forceRed(this)},k.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new s(0)._forceRed(this);var i=t.mul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},k.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=i.nmd(t),this)},8520:(t,e,i)=>{var n;function r(t){this.rand=t}if(t.exports=function(t){return n||(n=new r(null)),n.generate(t)},t.exports.Rand=r,r.prototype.generate=function(t){return this._rand(t)},r.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),i=0;i{var n=i(7015).Buffer;function r(t){n.isBuffer(t)||(t=n.from(t));for(var e=t.length/4|0,i=new Array(e),r=0;r>>24]^h[f>>>16&255]^u[m>>>8&255]^d[255&g]^e[y++],o=c[f>>>24]^h[m>>>16&255]^u[g>>>8&255]^d[255&p]^e[y++],a=c[m>>>24]^h[g>>>16&255]^u[p>>>8&255]^d[255&f]^e[y++],l=c[g>>>24]^h[p>>>16&255]^u[f>>>8&255]^d[255&m]^e[y++],p=s,f=o,m=a,g=l;return s=(n[p>>>24]<<24|n[f>>>16&255]<<16|n[m>>>8&255]<<8|n[255&g])^e[y++],o=(n[f>>>24]<<24|n[m>>>16&255]<<16|n[g>>>8&255]<<8|n[255&p])^e[y++],a=(n[m>>>24]<<24|n[g>>>16&255]<<16|n[p>>>8&255]<<8|n[255&f])^e[y++],l=(n[g>>>24]<<24|n[p>>>16&255]<<16|n[f>>>8&255]<<8|n[255&m])^e[y++],[s>>>=0,o>>>=0,a>>>=0,l>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],l=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var i=[],n=[],r=[[],[],[],[]],s=[[],[],[],[]],o=0,a=0,l=0;l<256;++l){var c=a^a<<1^a<<2^a<<3^a<<4;i[o]=c=c>>>8^255&c^99,n[c]=o;var h=t[o],u=t[h],d=t[u],p=257*t[c]^16843008*c;r[0][o]=p<<24|p>>>8,r[1][o]=p<<16|p>>>16,r[2][o]=p<<8|p>>>24,r[3][o]=p,s[0][c]=(p=16843009*d^65537*u^257*h^16843008*o)<<24|p>>>8,s[1][c]=p<<16|p>>>16,s[2][c]=p<<8|p>>>24,s[3][c]=p,0===o?o=a=1:(o=h^t[t[t[d^h]]],a^=t[t[a]])}return{SBOX:i,INV_SBOX:n,SUB_MIX:r,INV_SUB_MIX:s}}();function c(t){this._key=r(t),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var t=this._key,e=t.length,i=e+6,n=4*(i+1),r=[],s=0;s>>24)>>>24]<<24|l.SBOX[o>>>16&255]<<16|l.SBOX[o>>>8&255]<<8|l.SBOX[255&o],o^=a[s/e|0]<<24):e>6&&s%e==4&&(o=l.SBOX[o>>>24]<<24|l.SBOX[o>>>16&255]<<16|l.SBOX[o>>>8&255]<<8|l.SBOX[255&o]),r[s]=r[s-e]^o}for(var c=[],h=0;h>>24]]^l.INV_SUB_MIX[1][l.SBOX[d>>>16&255]]^l.INV_SUB_MIX[2][l.SBOX[d>>>8&255]]^l.INV_SUB_MIX[3][l.SBOX[255&d]]}this._nRounds=i,this._keySchedule=r,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(t){return o(t=r(t),this._keySchedule,l.SUB_MIX,l.SBOX,this._nRounds)},c.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),i=n.allocUnsafe(16);return i.writeUInt32BE(e[0],0),i.writeUInt32BE(e[1],4),i.writeUInt32BE(e[2],8),i.writeUInt32BE(e[3],12),i},c.prototype.decryptBlock=function(t){var e=(t=r(t))[1];t[1]=t[3],t[3]=e;var i=o(t,this._invKeySchedule,l.INV_SUB_MIX,l.INV_SBOX,this._nRounds),s=n.allocUnsafe(16);return s.writeUInt32BE(i[0],0),s.writeUInt32BE(i[3],4),s.writeUInt32BE(i[2],8),s.writeUInt32BE(i[1],12),s},c.prototype.scrub=function(){s(this._keySchedule),s(this._invKeySchedule),s(this._key)},t.exports.AES=c},5266:(t,e,i)=>{var n=i(830),r=i(7015).Buffer,s=i(478),o=i(5457),a=i(2104),l=i(9694),c=i(2305);function h(t,e,i,o){s.call(this);var l=r.alloc(4,0);this._cipher=new n.AES(e);var h=this._cipher.encryptBlock(l);this._ghash=new a(h),i=function(t,e,i){if(12===e.length)return t._finID=r.concat([e,r.from([0,0,0,1])]),r.concat([e,r.from([0,0,0,2])]);var n=new a(i),s=e.length,o=s%16;n.update(e),o&&n.update(r.alloc(o=16-o,0)),n.update(r.alloc(8,0));var l=8*s,h=r.alloc(8);h.writeUIntBE(l,0,8),n.update(h),t._finID=n.state;var u=r.from(t._finID);return c(u),u}(this,i,h),this._prev=r.from(i),this._cache=r.allocUnsafe(0),this._secCache=r.allocUnsafe(0),this._decrypt=o,this._alen=0,this._len=0,this._mode=t,this._authTag=null,this._called=!1}o(h,s),h.prototype._update=function(t){if(!this._called&&this._alen){var e=16-this._alen%16;e<16&&(e=r.alloc(e,0),this._ghash.update(e))}this._called=!0;var i=this._mode.encrypt(this,t);return this._ghash.update(this._decrypt?t:i),this._len+=t.length,i},h.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var t=l(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(t,e){var i=0;t.length!==e.length&&i++;for(var n=Math.min(t.length,e.length),r=0;r{var n=i(1898),r=i(1938),s=i(5415);e.createCipher=e.Cipher=n.createCipher,e.createCipheriv=e.Cipheriv=n.createCipheriv,e.createDecipher=e.Decipher=r.createDecipher,e.createDecipheriv=e.Decipheriv=r.createDecipheriv,e.listCiphers=e.getCiphers=function(){return Object.keys(s)}},1938:(t,e,i)=>{var n=i(5266),r=i(7015).Buffer,s=i(7957),o=i(7750),a=i(478),l=i(830),c=i(8386);function h(t,e,i){a.call(this),this._cache=new u,this._last=void 0,this._cipher=new l.AES(e),this._prev=r.from(i),this._mode=t,this._autopadding=!0}function u(){this.cache=r.allocUnsafe(0)}function d(t,e,i){var a=s[t.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof i&&(i=r.from(i)),"GCM"!==a.mode&&i.length!==a.iv)throw new TypeError("invalid iv length "+i.length);if("string"==typeof e&&(e=r.from(e)),e.length!==a.key/8)throw new TypeError("invalid key length "+e.length);return"stream"===a.type?new o(a.module,e,i,!0):"auth"===a.type?new n(a.module,e,i,!0):new h(a.module,e,i)}i(5457)(h,a),h.prototype._update=function(t){var e,i;this._cache.add(t);for(var n=[];e=this._cache.get(this._autopadding);)i=this._mode.decrypt(this,e),n.push(i);return r.concat(n)},h.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return function(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");for(var i=-1;++i16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},u.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=function(t,e){var i=s[t.toLowerCase()];if(!i)throw new TypeError("invalid suite type");var n=c(e,!1,i.key,i.iv);return d(t,n.key,n.iv)},e.createDecipheriv=d},1898:(t,e,i)=>{var n=i(7957),r=i(5266),s=i(7015).Buffer,o=i(7750),a=i(478),l=i(830),c=i(8386);function h(t,e,i){a.call(this),this._cache=new d,this._cipher=new l.AES(e),this._prev=s.from(i),this._mode=t,this._autopadding=!0}i(5457)(h,a),h.prototype._update=function(t){var e,i;this._cache.add(t);for(var n=[];e=this._cache.get();)i=this._mode.encrypt(this,e),n.push(i);return s.concat(n)};var u=s.alloc(16,16);function d(){this.cache=s.allocUnsafe(0)}function p(t,e,i){var a=n[t.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof e&&(e=s.from(e)),e.length!==a.key/8)throw new TypeError("invalid key length "+e.length);if("string"==typeof i&&(i=s.from(i)),"GCM"!==a.mode&&i.length!==a.iv)throw new TypeError("invalid iv length "+i.length);return"stream"===a.type?new o(a.module,e,i):"auth"===a.type?new r(a.module,e,i):new h(a.module,e,i)}h.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return t=this._mode.encrypt(this,t),this._cipher.scrub(),t;if(!t.equals(u))throw this._cipher.scrub(),new Error("data not multiple of block length")},h.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},d.prototype.add=function(t){this.cache=s.concat([this.cache,t])},d.prototype.get=function(){if(this.cache.length>15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},d.prototype.flush=function(){for(var t=16-this.cache.length,e=s.allocUnsafe(t),i=-1;++i{var n=i(7015).Buffer,r=n.alloc(16,0);function s(t){var e=n.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function o(t){this.h=t,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}o.prototype.ghash=function(t){for(var e=-1;++e0;e--)n[e]=n[e]>>>1|(1&n[e-1])<<31;n[0]=n[0]>>>1,i&&(n[0]=n[0]^225<<24)}this.state=s(r)},o.prototype.update=function(t){var e;for(this.cache=n.concat([this.cache,t]);this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},o.prototype.final=function(t,e){return this.cache.length&&this.ghash(n.concat([this.cache,r],16)),this.ghash(s([0,t,0,e])),this.state},t.exports=o},2305:t=>{t.exports=function(t){for(var e,i=t.length;i--;){if(255!==(e=t.readUInt8(i))){e++,t.writeUInt8(e,i);break}t.writeUInt8(0,i)}}},2570:(t,e,i)=>{var n=i(9694);e.encrypt=function(t,e){var i=n(e,t._prev);return t._prev=t._cipher.encryptBlock(i),t._prev},e.decrypt=function(t,e){var i=t._prev;t._prev=e;var r=t._cipher.decryptBlock(e);return n(r,i)}},1722:(t,e,i)=>{var n=i(7015).Buffer,r=i(9694);function s(t,e,i){var s=e.length,o=r(e,t._cache);return t._cache=t._cache.slice(s),t._prev=n.concat([t._prev,i?e:o]),o}e.encrypt=function(t,e,i){for(var r,o=n.allocUnsafe(0);e.length;){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=n.allocUnsafe(0)),!(t._cache.length<=e.length)){o=n.concat([o,s(t,e,i)]);break}o=n.concat([o,s(t,e.slice(0,r=t._cache.length),i)]),e=e.slice(r)}return o}},3819:(t,e,i)=>{var n=i(7015).Buffer;function r(t,e,i){for(var n,r,o=-1,a=0;++o<8;)a+=(128&(r=t._cipher.encryptBlock(t._prev)[0]^(n=e&1<<7-o?128:0)))>>o%8,t._prev=s(t._prev,i?n:r);return a}function s(t,e){var i=t.length,r=-1,s=n.allocUnsafe(t.length);for(t=n.concat([t,n.from([e])]);++r>7;return s}e.encrypt=function(t,e,i){for(var s=e.length,o=n.allocUnsafe(s),a=-1;++a{var n=i(7015).Buffer;function r(t,e,i){var r=t._cipher.encryptBlock(t._prev)[0]^e;return t._prev=n.concat([t._prev.slice(1),n.from([i?e:r])]),r}e.encrypt=function(t,e,i){for(var s=e.length,o=n.allocUnsafe(s),a=-1;++a{var n=i(9694),r=i(7015).Buffer,s=i(2305);function o(t){var e=t._cipher.encryptBlockRaw(t._prev);return s(t._prev),e}e.encrypt=function(t,e){var i=Math.ceil(e.length/16),s=t._cache.length;t._cache=r.concat([t._cache,r.allocUnsafe(16*i)]);for(var a=0;a{e.encrypt=function(t,e){return t._cipher.encryptBlock(e)},e.decrypt=function(t,e){return t._cipher.decryptBlock(e)}},7957:(t,e,i)=>{var n={ECB:i(3021),CBC:i(2570),CFB:i(1722),CFB8:i(121),CFB1:i(3819),OFB:i(7373),CTR:i(2319),GCM:i(2319)},r=i(5415);for(var s in r)r[s].module=n[r[s].mode];t.exports=r},7373:(t,e,i)=>{var n=i(9694);function r(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}e.encrypt=function(t,e){for(;t._cache.length{var n=i(830),r=i(7015).Buffer,s=i(478);function o(t,e,i,o){s.call(this),this._cipher=new n.AES(e),this._prev=r.from(i),this._cache=r.allocUnsafe(0),this._secCache=r.allocUnsafe(0),this._decrypt=o,this._mode=t}i(5457)(o,s),o.prototype._update=function(t){return this._mode.encrypt(this,t,this._decrypt)},o.prototype._final=function(){this._cipher.scrub()},t.exports=o},3320:(t,e,i)=>{var n=i(7321),r=i(3079),s=i(7957),o=i(1395),a=i(8386);function l(t,e,i){if(t=t.toLowerCase(),s[t])return r.createCipheriv(t,e,i);if(o[t])return new n({key:e,iv:i,mode:t});throw new TypeError("invalid suite type")}function c(t,e,i){if(t=t.toLowerCase(),s[t])return r.createDecipheriv(t,e,i);if(o[t])return new n({key:e,iv:i,mode:t,decrypt:!0});throw new TypeError("invalid suite type")}e.createCipher=e.Cipher=function(t,e){var i,n;if(t=t.toLowerCase(),s[t])i=s[t].key,n=s[t].iv;else{if(!o[t])throw new TypeError("invalid suite type");i=8*o[t].key,n=o[t].iv}var r=a(e,!1,i,n);return l(t,r.key,r.iv)},e.createCipheriv=e.Cipheriv=l,e.createDecipher=e.Decipher=function(t,e){var i,n;if(t=t.toLowerCase(),s[t])i=s[t].key,n=s[t].iv;else{if(!o[t])throw new TypeError("invalid suite type");i=8*o[t].key,n=o[t].iv}var r=a(e,!1,i,n);return c(t,r.key,r.iv)},e.createDecipheriv=e.Decipheriv=c,e.listCiphers=e.getCiphers=function(){return Object.keys(o).concat(r.getCiphers())}},7321:(t,e,i)=>{var n=i(478),r=i(6504),s=i(5457),o=i(7015).Buffer,a={"des-ede3-cbc":r.CBC.instantiate(r.EDE),"des-ede3":r.EDE,"des-ede-cbc":r.CBC.instantiate(r.EDE),"des-ede":r.EDE,"des-cbc":r.CBC.instantiate(r.DES),"des-ecb":r.DES};function l(t){n.call(this);var e,i=t.mode.toLowerCase(),r=a[i];e=t.decrypt?"decrypt":"encrypt";var s=t.key;o.isBuffer(s)||(s=o.from(s)),"des-ede"!==i&&"des-ede-cbc"!==i||(s=o.concat([s,s.slice(0,8)]));var l=t.iv;o.isBuffer(l)||(l=o.from(l)),this._des=r.create({key:s,iv:l,type:e})}a.des=a["des-cbc"],a.des3=a["des-ede3-cbc"],t.exports=l,s(l,n),l.prototype._update=function(t){return o.from(this._des.update(t))},l.prototype._final=function(){return o.from(this._des.final())}},1395:(t,e)=>{e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}},4467:(t,e,i)=>{var n=i(4724),r=i(6716);function s(t){var e,i=t.modulus.byteLength();do{e=new n(r(i))}while(e.cmp(t.modulus)>=0||!e.umod(t.prime1)||!e.umod(t.prime2));return e}function o(t,e){var i=function(t){var e=s(t);return{blinder:e.toRed(n.mont(t.modulus)).redPow(new n(t.publicExponent)).fromRed(),unblinder:e.invm(t.modulus)}}(e),r=e.modulus.byteLength(),o=new n(t).mul(i.blinder).umod(e.modulus),a=o.toRed(n.mont(e.prime1)),l=o.toRed(n.mont(e.prime2)),c=e.coefficient,h=e.prime1,u=e.prime2,d=a.redPow(e.exponent1).fromRed(),p=l.redPow(e.exponent2).fromRed(),f=d.isub(p).imul(c).umod(h).imul(u);return p.iadd(f).imul(i.unblinder).umod(e.modulus).toArrayLike(Buffer,"be",r)}o.getr=s,t.exports=o},3373:(t,e,i)=>{t.exports=i(2063)},6865:(t,e,i)=>{var n=i(9851).Buffer,r=i(4500),s=i(7612),o=i(5457),a=i(6360),l=i(2210),c=i(2063);function h(t){s.Writable.call(this);var e=c[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=r(e.hash),this._tag=e.id,this._signType=e.sign}function u(t){s.Writable.call(this);var e=c[t];if(!e)throw new Error("Unknown message digest");this._hash=r(e.hash),this._tag=e.id,this._signType=e.sign}function d(t){return new h(t)}function p(t){return new u(t)}Object.keys(c).forEach(function(t){c[t].id=n.from(c[t].id,"hex"),c[t.toLowerCase()]=c[t]}),o(h,s.Writable),h.prototype._write=function(t,e,i){this._hash.update(t),i()},h.prototype.update=function(t,e){return"string"==typeof t&&(t=n.from(t,e)),this._hash.update(t),this},h.prototype.sign=function(t,e){this.end();var i=this._hash.digest(),n=a(i,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},o(u,s.Writable),u.prototype._write=function(t,e,i){this._hash.update(t),i()},u.prototype.update=function(t,e){return"string"==typeof t&&(t=n.from(t,e)),this._hash.update(t),this},u.prototype.verify=function(t,e,i){"string"==typeof e&&(e=n.from(e,i)),this.end();var r=this._hash.digest();return l(e,r,t,this._signType,this._tag)},t.exports={Sign:d,Verify:p,createSign:d,createVerify:p}},6360:(t,e,i)=>{var n=i(9851).Buffer,r=i(9452),s=i(4467),o=i(905).ec,a=i(4724),l=i(2291),c=i(2236);function h(t,e,i,s){if((t=n.from(t.toArray())).length0&&i.ishrn(n),i}function d(t,e,i){var s,o;do{for(s=n.alloc(0);8*s.length{var n=i(9851).Buffer,r=i(4724),s=i(905).ec,o=i(2291),a=i(2236);function l(t,e){if(t.cmpn(0)<=0)throw new Error("invalid sig");if(t.cmp(e)>=e)throw new Error("invalid sig")}t.exports=function(t,e,i,c,h){var u=o(i);if("ec"===u.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(t,e,i){var n=a[i.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+i.data.algorithm.curve.join("."));return new s(n).verify(e,t,i.data.subjectPrivateKey.data)}(t,e,u)}if("dsa"===u.type){if("dsa"!==c)throw new Error("wrong public key type");return function(t,e,i){var n=i.data.p,s=i.data.q,a=i.data.g,c=i.data.pub_key,h=o.signature.decode(t,"der"),u=h.s,d=h.r;l(u,s),l(d,s);var p=r.mont(n),f=u.invm(s);return 0===a.toRed(p).redPow(new r(e).mul(f).mod(s)).fromRed().mul(c.toRed(p).redPow(d.mul(f).mod(s)).fromRed()).mod(n).mod(s).cmp(d)}(t,e,u)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");e=n.concat([h,e]);for(var d=u.modulus.byteLength(),p=[1],f=0;e.length+p.length+2{var n=i(3833),r=n.Buffer;function s(t,e){for(var i in t)e[i]=t[i]}function o(t,e,i){return r(t,e,i)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(s(n,e),e.Buffer=o),o.prototype=Object.create(r.prototype),s(r,o),o.from=function(t,e,i){if("number"==typeof t)throw new TypeError("Argument must not be a number");return r(t,e,i)},o.alloc=function(t,e,i){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=r(t);return void 0!==e?"string"==typeof i?n.fill(e,i):n.fill(e):n.fill(0),n},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},9694:t=>{t.exports=function(t,e){for(var i=Math.min(t.length,e.length),n=new Buffer(i),r=0;r{"use strict";var n=i(6698),r=i(2390),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=l,e.SlowBuffer=function(t){return+t!=t&&(t=0),l.alloc(+t)},e.INSPECT_MAX_BYTES=50;var o=2147483647;function a(t){if(t>o)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,l.prototype),e}function l(t,e,i){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return u(t)}return c(t,e,i)}function c(t,e,i){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!l.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var i=0|m(t,e),n=a(i),r=n.write(t,e);return r!==i&&(n=n.slice(0,r)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(q(t,Uint8Array)){var e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return d(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(q(t,ArrayBuffer)||t&&q(t.buffer,ArrayBuffer))return p(t,e,i);if("undefined"!=typeof SharedArrayBuffer&&(q(t,SharedArrayBuffer)||t&&q(t.buffer,SharedArrayBuffer)))return p(t,e,i);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return l.from(n,e,i);var r=function(t){if(l.isBuffer(t)){var e=0|f(t.length),i=a(e);return 0===i.length||t.copy(i,0,0,e),i}return void 0!==t.length?"number"!=typeof t.length||z(t.length)?a(0):d(t):"Buffer"===t.type&&Array.isArray(t.data)?d(t.data):void 0}(t);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return l.from(t[Symbol.toPrimitive]("string"),e,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function u(t){return h(t),a(t<0?0:0|f(t))}function d(t){for(var e=t.length<0?0:0|f(t.length),i=a(e),n=0;n=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|t}function m(t,e){if(l.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||q(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var i=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===i)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return Z(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return B(t).length;default:if(r)return n?-1:Z(t).length;e=(""+e).toLowerCase(),r=!0}}function g(t,e,i){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return L(this,e,i);case"utf8":case"utf-8":return E(this,e,i);case"ascii":return T(this,e,i);case"latin1":case"binary":return M(this,e,i);case"base64":return S(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,i);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function y(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function b(t,e,i,n,r){if(0===t.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),z(i=+i)&&(i=r?0:t.length-1),i<0&&(i=t.length+i),i>=t.length){if(r)return-1;i=t.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof e&&(e=l.from(e,n)),l.isBuffer(e))return 0===e.length?-1:v(t,e,i,n,r);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(t,e,i):Uint8Array.prototype.lastIndexOf.call(t,e,i):v(t,[e],i,n,r);throw new TypeError("val must be string, number or Buffer")}function v(t,e,i,n,r){var s,o=1,a=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,a/=2,l/=2,i/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(r){var h=-1;for(s=i;sa&&(i=a-l),s=i;s>=0;s--){for(var u=!0,d=0;dr&&(n=r):n=r;var s=e.length;n>s/2&&(n=s/2);for(var o=0;o>8,r.push(i%256),r.push(n);return r}(e,t.length-i),t,i,n)}function S(t,e,i){return n.fromByteArray(0===e&&i===t.length?t:t.slice(e,i))}function E(t,e,i){i=Math.min(t.length,i);for(var n=[],r=e;r239?4:c>223?3:c>191?2:1;if(r+u<=i)switch(u){case 1:c<128&&(h=c);break;case 2:128==(192&(s=t[r+1]))&&(l=(31&c)<<6|63&s)>127&&(h=l);break;case 3:o=t[r+2],128==(192&(s=t[r+1]))&&128==(192&o)&&(l=(15&c)<<12|(63&s)<<6|63&o)>2047&&(l<55296||l>57343)&&(h=l);break;case 4:o=t[r+2],a=t[r+3],128==(192&(s=t[r+1]))&&128==(192&o)&&128==(192&a)&&(l=(15&c)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&l<1114112&&(h=l)}null===h?(h=65533,u=1):h>65535&&(n.push((h-=65536)>>>10&1023|55296),h=56320|1023&h),n.push(h),r+=u}return function(t){var e=t.length;if(e<=k)return String.fromCharCode.apply(String,t);for(var i="",n=0;nn.length?l.from(s).copy(n,r):Uint8Array.prototype.set.call(n,s,r);else{if(!l.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,r)}r+=s.length}return n},l.byteLength=m,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;ei&&(t+=" ... "),""},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(t,e,i,n,r){if(q(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),e<0||i>t.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&e>=i)return 0;if(n>=r)return-1;if(e>=i)return 1;if(this===t)return 0;for(var s=(r>>>=0)-(n>>>=0),o=(i>>>=0)-(e>>>=0),a=Math.min(s,o),c=this.slice(n,r),h=t.slice(e,i),u=0;u>>=0,isFinite(i)?(i>>>=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}var r=this.length-e;if((void 0===i||i>r)&&(i=r),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return _(this,t,e,i);case"utf8":case"utf-8":return w(this,t,e,i);case"ascii":case"latin1":case"binary":return x(this,t,e,i);case"base64":return C(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,e,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var k=4096;function T(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;rn)&&(i=n);for(var r="",s=e;si)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,i,n,r,s){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||et.length)throw new RangeError("Index out of range")}function R(t,e,i,n,r,s){if(i+n>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function N(t,e,i,n,s){return e=+e,i>>>=0,s||R(t,0,i,4),r.write(t,e,i,n,23,4),i+4}function P(t,e,i,n,s){return e=+e,i>>>=0,s||R(t,0,i,8),r.write(t,e,i,n,52,8),i+8}l.prototype.slice=function(t,e){var i=this.length;(t=~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),(e=void 0===e?i:~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),e>>=0,e>>>=0,i||O(t,e,this.length);for(var n=this[t],r=1,s=0;++s>>=0,e>>>=0,i||O(t,e,this.length);for(var n=this[t+--e],r=1;e>0&&(r*=256);)n+=this[t+--e]*r;return n},l.prototype.readUint8=l.prototype.readUInt8=function(t,e){return t>>>=0,e||O(t,1,this.length),this[t]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(t,e){return t>>>=0,e||O(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(t,e){return t>>>=0,e||O(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(t,e){return t>>>=0,e||O(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(t,e){return t>>>=0,e||O(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,i){t>>>=0,e>>>=0,i||O(t,e,this.length);for(var n=this[t],r=1,s=0;++s=(r*=128)&&(n-=Math.pow(2,8*e)),n},l.prototype.readIntBE=function(t,e,i){t>>>=0,e>>>=0,i||O(t,e,this.length);for(var n=e,r=1,s=this[t+--n];n>0&&(r*=256);)s+=this[t+--n]*r;return s>=(r*=128)&&(s-=Math.pow(2,8*e)),s},l.prototype.readInt8=function(t,e){return t>>>=0,e||O(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){t>>>=0,e||O(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt16BE=function(t,e){t>>>=0,e||O(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt32LE=function(t,e){return t>>>=0,e||O(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return t>>>=0,e||O(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return t>>>=0,e||O(t,4,this.length),r.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return t>>>=0,e||O(t,4,this.length),r.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return t>>>=0,e||O(t,8,this.length),r.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return t>>>=0,e||O(t,8,this.length),r.read(this,t,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(t,e,i,n){t=+t,e>>>=0,i>>>=0,n||D(this,t,e,i,Math.pow(2,8*i)-1,0);var r=1,s=0;for(this[e]=255&t;++s>>=0,i>>>=0,n||D(this,t,e,i,Math.pow(2,8*i)-1,0);var r=i-1,s=1;for(this[e+r]=255&t;--r>=0&&(s*=256);)this[e+r]=t/s&255;return e+i},l.prototype.writeUint8=l.prototype.writeUInt8=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,1,255,0),this[e]=255&t,e+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeIntLE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);D(this,t,e,i,r-1,-r)}var s=0,o=1,a=0;for(this[e]=255&t;++s>0)-a&255;return e+i},l.prototype.writeIntBE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);D(this,t,e,i,r-1,-r)}var s=i-1,o=1,a=0;for(this[e+s]=255&t;--s>=0&&(o*=256);)t<0&&0===a&&0!==this[e+s+1]&&(a=1),this[e+s]=(t/o>>0)-a&255;return e+i},l.prototype.writeInt8=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeInt16BE=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeInt32LE=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},l.prototype.writeInt32BE=function(t,e,i){return t=+t,e>>>=0,i||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeFloatLE=function(t,e,i){return N(this,t,e,!0,i)},l.prototype.writeFloatBE=function(t,e,i){return N(this,t,e,!1,i)},l.prototype.writeDoubleLE=function(t,e,i){return P(this,t,e,!0,i)},l.prototype.writeDoubleBE=function(t,e,i){return P(this,t,e,!1,i)},l.prototype.copy=function(t,e,i,n){if(!l.isBuffer(t))throw new TypeError("argument should be a Buffer");if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(s=e;s55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function B(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(F,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function U(t,e,i,n){for(var r=0;r=e.length||r>=t.length);++r)e[r+i]=t[r];return r}function q(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function z(t){return t!=t}var H=function(){for(var t="0123456789abcdef",e=new Array(256),i=0;i<16;++i)for(var n=16*i,r=0;r<16;++r)e[n+r]=t[i]+t[r];return e}()},478:(t,e,i)=>{var n=i(7015).Buffer,r=i(7562).Transform,s=i(4706).s;function o(t){r.call(this),this.hashMode="string"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}i(5457)(o,r),o.prototype.update=function(t,e,i){"string"==typeof t&&(t=n.from(t,e));var r=this._update(t);return this.hashMode?this:(i&&(r=this._toString(r,i)),r)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},o.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},o.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},o.prototype._transform=function(t,e,i){var n;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(r){n=r}finally{i(n)}},o.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(i){e=i}t(e)},o.prototype._finalOrDigest=function(t){var e=this.__final()||n.alloc(0);return t&&(e=this._toString(e,t,!0)),e},o.prototype._toString=function(t,e,i){if(this._decoder||(this._decoder=new s(e),this._encoding=e),this._encoding!==e)throw new Error("can't switch encodings");var n=this._decoder.write(t);return i&&(n+=this._decoder.end()),n},t.exports=o},1774:function(t){!function(e){"use strict";var i={bytesToHex:function(t){return function(t){return t.map(function(t){return(e=t.toString(16)).length>2?e:Array(2-e.length+1).join("0")+e;var e}).join("")}(t)},hexToBytes:function(t){if(t.length%2==1)throw new Error("hexToBytes can't have a string with an odd number of characters.");return 0===t.indexOf("0x")&&(t=t.slice(2)),t.match(/../g).map(function(t){return parseInt(t,16)})}};t.exports?t.exports=i:e.convertHex=i}(this)},906:function(t){!function(e){"use strict";var i={bytesToString:function(t){return t.map(function(t){return String.fromCharCode(t)}).join("")},stringToBytes:function(t){return t.split("").map(function(t){return t.charCodeAt(0)})}};i.UTF8={bytesToString:function(t){return decodeURIComponent(escape(i.bytesToString(t)))},stringToBytes:function(t){return i.stringToBytes(unescape(encodeURIComponent(t)))}},t.exports?t.exports=i:e.convertString=i}(this)},3513:(t,e,i)=>{var n=i(905),r=i(9680);t.exports=function(t){return new o(t)};var s={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function o(t){this.curveType=s[t],this.curveType||(this.curveType={name:t}),this.curve=new n.ec(this.curveType.name),this.keys=void 0}function a(t,e,i){Array.isArray(t)||(t=t.toArray());var n=new Buffer(t);if(i&&n.length=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function l(t,e,i){var n=a(t,i);return i-1>=e&&(n|=a(t,i-1)<<4),n}function c(t,e,i,n){for(var r=0,s=Math.min(t.length,i),o=e;o=49?a-49+10:a>=17?a-17+10:a}return r}s.isBN=function(t){return t instanceof s||null!==t&&"object"==typeof t&&t.constructor.wordSize===s.wordSize&&Array.isArray(t.words)},s.max=function(t,e){return t.cmp(e)>0?t:e},s.min=function(t,e){return t.cmp(e)<0?t:e},s.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var r=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r=0;r-=3)this.words[s]|=(o=t[r]|t[r-1]<<8|t[r-2]<<16)<>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===i)for(r=0,s=0;r>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this.strip()},s.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)r=l(t,e,n)<=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;this.strip()},s.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var n=0,r=1;r<=67108863;r*=e)n++;n--,r=r/e|0;for(var s=t.length-i,o=s%n,a=Math.min(s,s-o)+i,l=0,h=i;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,i){i.negative=e.negative^t.negative;var n=t.length+e.length|0;i.length=n,n=n-1|0;var r=0|t.words[0],s=0|e.words[0],o=r*s,a=o/67108864|0;i.words[0]=67108863&o;for(var l=1;l>>26,h=67108863&a,u=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=u;d++)c+=(o=(r=0|t.words[l-d|0])*(s=0|e.words[d])+h)/67108864|0,h=67108863&o;i.words[l]=0|h,a=0|c}return 0!==a?i.words[l]=0|a:i.length--,i.strip()}s.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var r=0,s=0,o=0;o>>24-r&16777215)||o!==this.length-1?h[6-l.length]+l+i:l+i,(r+=2)>=26&&(r-=26,o--)}for(0!==s&&(i=s.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var c=u[t],p=d[t];i="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modn(p).toString(t);i=(f=f.idivn(p)).isZero()?m+i:h[c-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},s.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},s.prototype.toArrayLike=function(t,e,i){var r=this.byteLength(),s=i||Math.max(1,r);n(r<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0"),this.strip();var o,a,l="le"===e,c=new t(s),h=this.clone();if(l){for(a=0;!h.isZero();a++)o=h.andln(255),h.iushrn(8),c[a]=o;for(;a=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},s.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},s.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},s.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},s.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;it.length?this.clone().iand(t):t.clone().iand(this)},s.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},s.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},s.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},s.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-i),this.strip()},s.prototype.notn=function(t){return this.clone().inotn(t)},s.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var i=t/26|0,r=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<t.length?(i=this,n=t):(i=t,n=this);for(var r=0,s=0;s>>26;for(;0!==r&&s>>26;if(this.length=i.length,0!==r)this.words[this.length]=r,this.length++;else if(i!==this)for(;st.length?this.clone().iadd(t):t.clone().iadd(this)},s.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,n,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(i=this,n=t):(i=t,n=this);for(var s=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==s&&o>26,this.words[o]=67108863&e;if(0===s&&o>>13,p=0|o[1],f=8191&p,m=p>>>13,g=0|o[2],y=8191&g,b=g>>>13,v=0|o[3],_=8191&v,w=v>>>13,x=0|o[4],C=8191&x,A=x>>>13,S=0|o[5],E=8191&S,k=S>>>13,T=0|o[6],M=8191&T,L=T>>>13,I=0|o[7],O=8191&I,D=I>>>13,R=0|o[8],N=8191&R,P=R>>>13,F=0|o[9],Z=8191&F,B=F>>>13,U=0|a[0],q=8191&U,z=U>>>13,H=0|a[1],Y=8191&H,G=H>>>13,j=0|a[2],V=8191&j,Q=j>>>13,W=0|a[3],J=8191&W,X=W>>>13,K=0|a[4],$=8191&K,tt=K>>>13,et=0|a[5],it=8191&et,nt=et>>>13,rt=0|a[6],st=8191&rt,ot=rt>>>13,at=0|a[7],lt=8191&at,ct=at>>>13,ht=0|a[8],ut=8191&ht,dt=ht>>>13,pt=0|a[9],ft=8191&pt,mt=pt>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(c+(n=Math.imul(u,q))|0)+((8191&(r=(r=Math.imul(u,z))+Math.imul(d,q)|0))<<13)|0;c=((s=Math.imul(d,z))+(r>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(f,q),r=(r=Math.imul(f,z))+Math.imul(m,q)|0,s=Math.imul(m,z);var yt=(c+(n=n+Math.imul(u,Y)|0)|0)+((8191&(r=(r=r+Math.imul(u,G)|0)+Math.imul(d,Y)|0))<<13)|0;c=((s=s+Math.imul(d,G)|0)+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),r=(r=Math.imul(y,z))+Math.imul(b,q)|0,s=Math.imul(b,z),n=n+Math.imul(f,Y)|0,r=(r=r+Math.imul(f,G)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,G)|0;var bt=(c+(n=n+Math.imul(u,V)|0)|0)+((8191&(r=(r=r+Math.imul(u,Q)|0)+Math.imul(d,V)|0))<<13)|0;c=((s=s+Math.imul(d,Q)|0)+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(_,q),r=(r=Math.imul(_,z))+Math.imul(w,q)|0,s=Math.imul(w,z),n=n+Math.imul(y,Y)|0,r=(r=r+Math.imul(y,G)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,G)|0,n=n+Math.imul(f,V)|0,r=(r=r+Math.imul(f,Q)|0)+Math.imul(m,V)|0,s=s+Math.imul(m,Q)|0;var vt=(c+(n=n+Math.imul(u,J)|0)|0)+((8191&(r=(r=r+Math.imul(u,X)|0)+Math.imul(d,J)|0))<<13)|0;c=((s=s+Math.imul(d,X)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(C,q),r=(r=Math.imul(C,z))+Math.imul(A,q)|0,s=Math.imul(A,z),n=n+Math.imul(_,Y)|0,r=(r=r+Math.imul(_,G)|0)+Math.imul(w,Y)|0,s=s+Math.imul(w,G)|0,n=n+Math.imul(y,V)|0,r=(r=r+Math.imul(y,Q)|0)+Math.imul(b,V)|0,s=s+Math.imul(b,Q)|0,n=n+Math.imul(f,J)|0,r=(r=r+Math.imul(f,X)|0)+Math.imul(m,J)|0,s=s+Math.imul(m,X)|0;var _t=(c+(n=n+Math.imul(u,$)|0)|0)+((8191&(r=(r=r+Math.imul(u,tt)|0)+Math.imul(d,$)|0))<<13)|0;c=((s=s+Math.imul(d,tt)|0)+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,q),r=(r=Math.imul(E,z))+Math.imul(k,q)|0,s=Math.imul(k,z),n=n+Math.imul(C,Y)|0,r=(r=r+Math.imul(C,G)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,G)|0,n=n+Math.imul(_,V)|0,r=(r=r+Math.imul(_,Q)|0)+Math.imul(w,V)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(y,J)|0,r=(r=r+Math.imul(y,X)|0)+Math.imul(b,J)|0,s=s+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,r=(r=r+Math.imul(f,tt)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(u,it)|0)|0)+((8191&(r=(r=r+Math.imul(u,nt)|0)+Math.imul(d,it)|0))<<13)|0;c=((s=s+Math.imul(d,nt)|0)+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(M,q),r=(r=Math.imul(M,z))+Math.imul(L,q)|0,s=Math.imul(L,z),n=n+Math.imul(E,Y)|0,r=(r=r+Math.imul(E,G)|0)+Math.imul(k,Y)|0,s=s+Math.imul(k,G)|0,n=n+Math.imul(C,V)|0,r=(r=r+Math.imul(C,Q)|0)+Math.imul(A,V)|0,s=s+Math.imul(A,Q)|0,n=n+Math.imul(_,J)|0,r=(r=r+Math.imul(_,X)|0)+Math.imul(w,J)|0,s=s+Math.imul(w,X)|0,n=n+Math.imul(y,$)|0,r=(r=r+Math.imul(y,tt)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,tt)|0,n=n+Math.imul(f,it)|0,r=(r=r+Math.imul(f,nt)|0)+Math.imul(m,it)|0,s=s+Math.imul(m,nt)|0;var xt=(c+(n=n+Math.imul(u,st)|0)|0)+((8191&(r=(r=r+Math.imul(u,ot)|0)+Math.imul(d,st)|0))<<13)|0;c=((s=s+Math.imul(d,ot)|0)+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(O,q),r=(r=Math.imul(O,z))+Math.imul(D,q)|0,s=Math.imul(D,z),n=n+Math.imul(M,Y)|0,r=(r=r+Math.imul(M,G)|0)+Math.imul(L,Y)|0,s=s+Math.imul(L,G)|0,n=n+Math.imul(E,V)|0,r=(r=r+Math.imul(E,Q)|0)+Math.imul(k,V)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(C,J)|0,r=(r=r+Math.imul(C,X)|0)+Math.imul(A,J)|0,s=s+Math.imul(A,X)|0,n=n+Math.imul(_,$)|0,r=(r=r+Math.imul(_,tt)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,tt)|0,n=n+Math.imul(y,it)|0,r=(r=r+Math.imul(y,nt)|0)+Math.imul(b,it)|0,s=s+Math.imul(b,nt)|0,n=n+Math.imul(f,st)|0,r=(r=r+Math.imul(f,ot)|0)+Math.imul(m,st)|0,s=s+Math.imul(m,ot)|0;var Ct=(c+(n=n+Math.imul(u,lt)|0)|0)+((8191&(r=(r=r+Math.imul(u,ct)|0)+Math.imul(d,lt)|0))<<13)|0;c=((s=s+Math.imul(d,ct)|0)+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(N,q),r=(r=Math.imul(N,z))+Math.imul(P,q)|0,s=Math.imul(P,z),n=n+Math.imul(O,Y)|0,r=(r=r+Math.imul(O,G)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,G)|0,n=n+Math.imul(M,V)|0,r=(r=r+Math.imul(M,Q)|0)+Math.imul(L,V)|0,s=s+Math.imul(L,Q)|0,n=n+Math.imul(E,J)|0,r=(r=r+Math.imul(E,X)|0)+Math.imul(k,J)|0,s=s+Math.imul(k,X)|0,n=n+Math.imul(C,$)|0,r=(r=r+Math.imul(C,tt)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,tt)|0,n=n+Math.imul(_,it)|0,r=(r=r+Math.imul(_,nt)|0)+Math.imul(w,it)|0,s=s+Math.imul(w,nt)|0,n=n+Math.imul(y,st)|0,r=(r=r+Math.imul(y,ot)|0)+Math.imul(b,st)|0,s=s+Math.imul(b,ot)|0,n=n+Math.imul(f,lt)|0,r=(r=r+Math.imul(f,ct)|0)+Math.imul(m,lt)|0,s=s+Math.imul(m,ct)|0;var At=(c+(n=n+Math.imul(u,ut)|0)|0)+((8191&(r=(r=r+Math.imul(u,dt)|0)+Math.imul(d,ut)|0))<<13)|0;c=((s=s+Math.imul(d,dt)|0)+(r>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(Z,q),r=(r=Math.imul(Z,z))+Math.imul(B,q)|0,s=Math.imul(B,z),n=n+Math.imul(N,Y)|0,r=(r=r+Math.imul(N,G)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,G)|0,n=n+Math.imul(O,V)|0,r=(r=r+Math.imul(O,Q)|0)+Math.imul(D,V)|0,s=s+Math.imul(D,Q)|0,n=n+Math.imul(M,J)|0,r=(r=r+Math.imul(M,X)|0)+Math.imul(L,J)|0,s=s+Math.imul(L,X)|0,n=n+Math.imul(E,$)|0,r=(r=r+Math.imul(E,tt)|0)+Math.imul(k,$)|0,s=s+Math.imul(k,tt)|0,n=n+Math.imul(C,it)|0,r=(r=r+Math.imul(C,nt)|0)+Math.imul(A,it)|0,s=s+Math.imul(A,nt)|0,n=n+Math.imul(_,st)|0,r=(r=r+Math.imul(_,ot)|0)+Math.imul(w,st)|0,s=s+Math.imul(w,ot)|0,n=n+Math.imul(y,lt)|0,r=(r=r+Math.imul(y,ct)|0)+Math.imul(b,lt)|0,s=s+Math.imul(b,ct)|0,n=n+Math.imul(f,ut)|0,r=(r=r+Math.imul(f,dt)|0)+Math.imul(m,ut)|0,s=s+Math.imul(m,dt)|0;var St=(c+(n=n+Math.imul(u,ft)|0)|0)+((8191&(r=(r=r+Math.imul(u,mt)|0)+Math.imul(d,ft)|0))<<13)|0;c=((s=s+Math.imul(d,mt)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(Z,Y),r=(r=Math.imul(Z,G))+Math.imul(B,Y)|0,s=Math.imul(B,G),n=n+Math.imul(N,V)|0,r=(r=r+Math.imul(N,Q)|0)+Math.imul(P,V)|0,s=s+Math.imul(P,Q)|0,n=n+Math.imul(O,J)|0,r=(r=r+Math.imul(O,X)|0)+Math.imul(D,J)|0,s=s+Math.imul(D,X)|0,n=n+Math.imul(M,$)|0,r=(r=r+Math.imul(M,tt)|0)+Math.imul(L,$)|0,s=s+Math.imul(L,tt)|0,n=n+Math.imul(E,it)|0,r=(r=r+Math.imul(E,nt)|0)+Math.imul(k,it)|0,s=s+Math.imul(k,nt)|0,n=n+Math.imul(C,st)|0,r=(r=r+Math.imul(C,ot)|0)+Math.imul(A,st)|0,s=s+Math.imul(A,ot)|0,n=n+Math.imul(_,lt)|0,r=(r=r+Math.imul(_,ct)|0)+Math.imul(w,lt)|0,s=s+Math.imul(w,ct)|0,n=n+Math.imul(y,ut)|0,r=(r=r+Math.imul(y,dt)|0)+Math.imul(b,ut)|0,s=s+Math.imul(b,dt)|0;var Et=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(r=(r=r+Math.imul(f,mt)|0)+Math.imul(m,ft)|0))<<13)|0;c=((s=s+Math.imul(m,mt)|0)+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(Z,V),r=(r=Math.imul(Z,Q))+Math.imul(B,V)|0,s=Math.imul(B,Q),n=n+Math.imul(N,J)|0,r=(r=r+Math.imul(N,X)|0)+Math.imul(P,J)|0,s=s+Math.imul(P,X)|0,n=n+Math.imul(O,$)|0,r=(r=r+Math.imul(O,tt)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,tt)|0,n=n+Math.imul(M,it)|0,r=(r=r+Math.imul(M,nt)|0)+Math.imul(L,it)|0,s=s+Math.imul(L,nt)|0,n=n+Math.imul(E,st)|0,r=(r=r+Math.imul(E,ot)|0)+Math.imul(k,st)|0,s=s+Math.imul(k,ot)|0,n=n+Math.imul(C,lt)|0,r=(r=r+Math.imul(C,ct)|0)+Math.imul(A,lt)|0,s=s+Math.imul(A,ct)|0,n=n+Math.imul(_,ut)|0,r=(r=r+Math.imul(_,dt)|0)+Math.imul(w,ut)|0,s=s+Math.imul(w,dt)|0;var kt=(c+(n=n+Math.imul(y,ft)|0)|0)+((8191&(r=(r=r+Math.imul(y,mt)|0)+Math.imul(b,ft)|0))<<13)|0;c=((s=s+Math.imul(b,mt)|0)+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(Z,J),r=(r=Math.imul(Z,X))+Math.imul(B,J)|0,s=Math.imul(B,X),n=n+Math.imul(N,$)|0,r=(r=r+Math.imul(N,tt)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,tt)|0,n=n+Math.imul(O,it)|0,r=(r=r+Math.imul(O,nt)|0)+Math.imul(D,it)|0,s=s+Math.imul(D,nt)|0,n=n+Math.imul(M,st)|0,r=(r=r+Math.imul(M,ot)|0)+Math.imul(L,st)|0,s=s+Math.imul(L,ot)|0,n=n+Math.imul(E,lt)|0,r=(r=r+Math.imul(E,ct)|0)+Math.imul(k,lt)|0,s=s+Math.imul(k,ct)|0,n=n+Math.imul(C,ut)|0,r=(r=r+Math.imul(C,dt)|0)+Math.imul(A,ut)|0,s=s+Math.imul(A,dt)|0;var Tt=(c+(n=n+Math.imul(_,ft)|0)|0)+((8191&(r=(r=r+Math.imul(_,mt)|0)+Math.imul(w,ft)|0))<<13)|0;c=((s=s+Math.imul(w,mt)|0)+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(Z,$),r=(r=Math.imul(Z,tt))+Math.imul(B,$)|0,s=Math.imul(B,tt),n=n+Math.imul(N,it)|0,r=(r=r+Math.imul(N,nt)|0)+Math.imul(P,it)|0,s=s+Math.imul(P,nt)|0,n=n+Math.imul(O,st)|0,r=(r=r+Math.imul(O,ot)|0)+Math.imul(D,st)|0,s=s+Math.imul(D,ot)|0,n=n+Math.imul(M,lt)|0,r=(r=r+Math.imul(M,ct)|0)+Math.imul(L,lt)|0,s=s+Math.imul(L,ct)|0,n=n+Math.imul(E,ut)|0,r=(r=r+Math.imul(E,dt)|0)+Math.imul(k,ut)|0,s=s+Math.imul(k,dt)|0;var Mt=(c+(n=n+Math.imul(C,ft)|0)|0)+((8191&(r=(r=r+Math.imul(C,mt)|0)+Math.imul(A,ft)|0))<<13)|0;c=((s=s+Math.imul(A,mt)|0)+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(Z,it),r=(r=Math.imul(Z,nt))+Math.imul(B,it)|0,s=Math.imul(B,nt),n=n+Math.imul(N,st)|0,r=(r=r+Math.imul(N,ot)|0)+Math.imul(P,st)|0,s=s+Math.imul(P,ot)|0,n=n+Math.imul(O,lt)|0,r=(r=r+Math.imul(O,ct)|0)+Math.imul(D,lt)|0,s=s+Math.imul(D,ct)|0,n=n+Math.imul(M,ut)|0,r=(r=r+Math.imul(M,dt)|0)+Math.imul(L,ut)|0,s=s+Math.imul(L,dt)|0;var Lt=(c+(n=n+Math.imul(E,ft)|0)|0)+((8191&(r=(r=r+Math.imul(E,mt)|0)+Math.imul(k,ft)|0))<<13)|0;c=((s=s+Math.imul(k,mt)|0)+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(Z,st),r=(r=Math.imul(Z,ot))+Math.imul(B,st)|0,s=Math.imul(B,ot),n=n+Math.imul(N,lt)|0,r=(r=r+Math.imul(N,ct)|0)+Math.imul(P,lt)|0,s=s+Math.imul(P,ct)|0,n=n+Math.imul(O,ut)|0,r=(r=r+Math.imul(O,dt)|0)+Math.imul(D,ut)|0,s=s+Math.imul(D,dt)|0;var It=(c+(n=n+Math.imul(M,ft)|0)|0)+((8191&(r=(r=r+Math.imul(M,mt)|0)+Math.imul(L,ft)|0))<<13)|0;c=((s=s+Math.imul(L,mt)|0)+(r>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(Z,lt),r=(r=Math.imul(Z,ct))+Math.imul(B,lt)|0,s=Math.imul(B,ct),n=n+Math.imul(N,ut)|0,r=(r=r+Math.imul(N,dt)|0)+Math.imul(P,ut)|0,s=s+Math.imul(P,dt)|0;var Ot=(c+(n=n+Math.imul(O,ft)|0)|0)+((8191&(r=(r=r+Math.imul(O,mt)|0)+Math.imul(D,ft)|0))<<13)|0;c=((s=s+Math.imul(D,mt)|0)+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(Z,ut),r=(r=Math.imul(Z,dt))+Math.imul(B,ut)|0,s=Math.imul(B,dt);var Dt=(c+(n=n+Math.imul(N,ft)|0)|0)+((8191&(r=(r=r+Math.imul(N,mt)|0)+Math.imul(P,ft)|0))<<13)|0;c=((s=s+Math.imul(P,mt)|0)+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Rt=(c+(n=Math.imul(Z,ft))|0)+((8191&(r=(r=Math.imul(Z,mt))+Math.imul(B,ft)|0))<<13)|0;return c=((s=Math.imul(B,mt))+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,l[0]=gt,l[1]=yt,l[2]=bt,l[3]=vt,l[4]=_t,l[5]=wt,l[6]=xt,l[7]=Ct,l[8]=At,l[9]=St,l[10]=Et,l[11]=kt,l[12]=Tt,l[13]=Mt,l[14]=Lt,l[15]=It,l[16]=Ot,l[17]=Dt,l[18]=Rt,0!==c&&(l[19]=c,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(f=p),s.prototype.mulTo=function(t,e){var i=this.length+t.length;return 10===this.length&&10===t.length?f(this,t,e):i<63?p(this,t,e):i<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var n=0,r=0,s=0;s>>26)|0)>>>26,o&=67108863}i.words[s]=a,n=o,o=r}return 0!==n?i.words[s]=n:i.length--,i.strip()}(this,t,e):m(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=s.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,i,n,r,s){for(var o=0;o>>=1)r++;return 1<>>=13),s>>>=13;for(o=2*e;o>=26,e+=r/67108864|0,e+=s>>>26,this.words[i]=67108863&s}return 0!==e&&(this.words[i]=e,this.length++),this},s.prototype.muln=function(t){return this.clone().imuln(t)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i>>n}return e}(t);if(0===e.length)return new s(1);for(var i=this,n=0;n=0);var e,i=t%26,r=(t-i)/26,s=67108863>>>26-i<<26-i;if(0!==i){var o=0;for(e=0;e>>26-i}o&&(this.words[e]=o,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var s=t%26,o=Math.min((t-s)/26,this.length),a=67108863^67108863>>>s<o)for(this.length-=o,c=0;c=0&&(0!==h||c>=r);c--){var u=0|this.words[c];this.words[c]=h<<26-s|u>>>s,h=u&a}return l&&0!==h&&(l.words[l.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(t,e,i){return n(0===this.negative),this.iushrn(t,e,i)},s.prototype.shln=function(t){return this.clone().ishln(t)},s.prototype.ushln=function(t){return this.clone().iushln(t)},s.prototype.shrn=function(t){return this.clone().ishrn(t)},s.prototype.ushrn=function(t){return this.clone().iushrn(t)},s.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;return!(this.length<=i||!(this.words[i]&1<=0);var e=t%26,i=(t-e)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=i?this:(0!==e&&i++,this.length=Math.min(i,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},s.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(a/67108864|0),this.words[r+i]=67108863&s}for(;r>26,this.words[r+i]=67108863&s;if(0===o)return this.strip();for(n(-1===o),o=0,r=0;r>26,this.words[r]=67108863&s;return this.negative=1,this.strip()},s.prototype._wordDiv=function(t,e){var i,n=this.clone(),r=t,o=0|r.words[r.length-1];0!=(i=26-this._countBits(o))&&(r=r.ushln(i),n.iushln(i),o=0|r.words[r.length-1]);var a,l=n.length-r.length;if("mod"!==e){(a=new s(null)).length=l+1,a.words=new Array(a.length);for(var c=0;c=0;u--){var d=67108864*(0|n.words[r.length+u])+(0|n.words[r.length+u-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(r,d,u);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(r,1,u),n.isZero()||(n.negative^=1);a&&(a.words[u]=d)}return a&&a.strip(),n.strip(),"div"!==e&&0!==i&&n.iushrn(i),{div:a||null,mod:n}},s.prototype.divmod=function(t,e,i){return n(!t.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(r=a.div.neg()),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.iadd(t)),{div:r,mod:o}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.isub(t)),{div:a.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new s(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new s(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new s(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,o,a},s.prototype.div=function(t){return this.divmod(t,"div",!1).div},s.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},s.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},s.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),r=t.andln(1),s=i.cmp(n);return s<0||1===r&&0===s?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},s.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,i=0,r=this.length-1;r>=0;r--)i=(e*i+(0|this.words[r]))%t;return i},s.prototype.idivn=function(t){n(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var r=(0|this.words[i])+67108864*e;this.words[i]=r/t|0,e=r%t}return this.strip()},s.prototype.divn=function(t){return this.clone().idivn(t)},s.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r=new s(1),o=new s(0),a=new s(0),l=new s(1),c=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++c;for(var h=i.clone(),u=e.clone();!e.isZero();){for(var d=0,p=1;0==(e.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(r.isOdd()||o.isOdd())&&(r.iadd(h),o.isub(u)),r.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(i.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(i.iushrn(f);f-- >0;)(a.isOdd()||l.isOdd())&&(a.iadd(h),l.isub(u)),a.iushrn(1),l.iushrn(1);e.cmp(i)>=0?(e.isub(i),r.isub(a),o.isub(l)):(i.isub(e),a.isub(r),l.isub(o))}return{a:a,b:l,gcd:i.iushln(c)}},s.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r,o=new s(1),a=new s(0),l=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var c=0,h=1;0==(e.words[0]&h)&&c<26;++c,h<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var u=0,d=1;0==(i.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(i.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(l),a.iushrn(1);e.cmp(i)>=0?(e.isub(i),o.isub(a)):(i.isub(e),a.isub(o))}return(r=0===e.cmpn(1)?o:a).cmpn(0)<0&&r.iadd(t),r},s.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var n=0;e.isEven()&&i.isEven();n++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var r=e.cmp(i);if(r<0){var s=e;e=i,i=s}else if(0===r||0===i.cmpn(1))break;e.isub(i)}return i.iushln(n)},s.prototype.invm=function(t){return this.egcd(t).a.umod(t)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(t){return this.words[0]&t},s.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,i=(t-e)/26,r=1<>>26,this.words[o]=a&=67108863}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),n(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;i--){var n=0|this.words[i],r=0|t.words[i];if(n!==r){nr&&(e=1);break}}return e},s.prototype.gtn=function(t){return 1===this.cmpn(t)},s.prototype.gt=function(t){return 1===this.cmp(t)},s.prototype.gten=function(t){return this.cmpn(t)>=0},s.prototype.gte=function(t){return this.cmp(t)>=0},s.prototype.ltn=function(t){return-1===this.cmpn(t)},s.prototype.lt=function(t){return-1===this.cmp(t)},s.prototype.lten=function(t){return this.cmpn(t)<=0},s.prototype.lte=function(t){return this.cmp(t)<=0},s.prototype.eqn=function(t){return 0===this.cmpn(t)},s.prototype.eq=function(t){return 0===this.cmp(t)},s.red=function(t){return new C(t)},s.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(t){return this.red=t,this},s.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},s.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},s.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},s.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},s.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},s.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},s.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},s.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new s(e,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function C(t){if("string"==typeof t){var e=s._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){C.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var t=new s(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},r(v,b),v.prototype.split=function(t,e){for(var i=4194303,n=Math.min(t.length,9),r=0;r>>22,s=o}t.words[r-10]=s>>>=22,t.length-=0===s&&t.length>10?10:9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i>>=26,t.words[i]=r,e=n}return 0!==e&&(t.words[t.length++]=e),t},s._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new x}return y[t]=e,e},C.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},C.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},C.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},C.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},C.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},C.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},C.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},C.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},C.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},C.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},C.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},C.prototype.isqr=function(t){return this.imul(t,t.clone())},C.prototype.sqr=function(t){return this.mul(t,t)},C.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var i=this.m.add(new s(1)).iushrn(2);return this.pow(t,i)}for(var r=this.m.subn(1),o=0;!r.isZero()&&0===r.andln(1);)o++,r.iushrn(1);n(!r.isZero());var a=new s(1).toRed(this),l=a.redNeg(),c=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new s(2*h*h).toRed(this);0!==this.pow(h,c).cmp(l);)h.redIAdd(l);for(var u=this.pow(h,r),d=this.pow(t,r.addn(1).iushrn(1)),p=this.pow(t,r),f=o;0!==p.cmp(a);){for(var m=p,g=0;0!==m.cmp(a);g++)m=m.redSqr();n(g=0;n--){for(var c=e.words[n],h=l-1;h>=0;h--){var u=c>>h&1;r!==i[0]&&(r=this.sqr(r)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===n&&0===h)&&(r=this.mul(r,i[o]),a=0,o=0)):a=0}l=26}return r},C.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},C.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},s.mont=function(t){return new A(t)},r(A,C),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),s=r;return r.cmp(this.m)>=0?s=r.isub(this.m):r.cmpn(0)<0&&(s=r.iadd(this.m)),s._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new s(0)._forceRed(this);var i=t.mul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=i.nmd(t),this)},4500:(t,e,i)=>{"use strict";var n=i(5457),r=i(9233),s=i(3827),o=i(8687),a=i(478);function l(t){a.call(this,"digest"),this._hash=t}n(l,a),l.prototype._update=function(t){this._hash.update(t)},l.prototype._final=function(){return this._hash.digest()},t.exports=function(t){return"md5"===(t=t.toLowerCase())?new r:"rmd160"===t||"ripemd160"===t?new s:new l(o(t))}},3072:(t,e,i)=>{var n=i(9233);t.exports=function(t){return(new n).update(t).digest()}},9452:(t,e,i)=>{"use strict";var n=i(5457),r=i(7107),s=i(478),o=i(7015).Buffer,a=i(3072),l=i(3827),c=i(8687),h=o.alloc(128);function u(t,e){s.call(this,"digest"),"string"==typeof e&&(e=o.from(e));var i="sha512"===t||"sha384"===t?128:64;this._alg=t,this._key=e,e.length>i?e=("rmd160"===t?new l:c(t)).update(e).digest():e.length{"use strict";var n=i(5457),r=i(7015).Buffer,s=i(478),o=r.alloc(128),a=64;function l(t,e){s.call(this,"digest"),"string"==typeof e&&(e=r.from(e)),this._alg=t,this._key=e,e.length>a?e=t(e):e.length{"use strict";e.randomBytes=e.rng=e.pseudoRandomBytes=e.prng=i(6716),e.createHash=e.Hash=i(4500),e.createHmac=e.Hmac=i(9452);var n=i(3373),r=Object.keys(n),s=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(r);e.getHashes=function(){return s};var o=i(8094);e.pbkdf2=o.pbkdf2,e.pbkdf2Sync=o.pbkdf2Sync;var a=i(3320);e.Cipher=a.Cipher,e.createCipher=a.createCipher,e.Cipheriv=a.Cipheriv,e.createCipheriv=a.createCipheriv,e.Decipher=a.Decipher,e.createDecipher=a.createDecipher,e.Decipheriv=a.Decipheriv,e.createDecipheriv=a.createDecipheriv,e.getCiphers=a.getCiphers,e.listCiphers=a.listCiphers;var l=i(223);e.DiffieHellmanGroup=l.DiffieHellmanGroup,e.createDiffieHellmanGroup=l.createDiffieHellmanGroup,e.getDiffieHellman=l.getDiffieHellman,e.createDiffieHellman=l.createDiffieHellman,e.DiffieHellman=l.DiffieHellman;var c=i(6865);e.createSign=c.createSign,e.Sign=c.Sign,e.createVerify=c.createVerify,e.Verify=c.Verify,e.createECDH=i(3513);var h=i(7351);e.publicEncrypt=h.publicEncrypt,e.privateEncrypt=h.privateEncrypt,e.publicDecrypt=h.publicDecrypt,e.privateDecrypt=h.privateDecrypt;var u=i(1999);e.randomFill=u.randomFill,e.randomFillSync=u.randomFillSync,e.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},e.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},6504:(t,e,i)=>{"use strict";e.utils=i(3777),e.Cipher=i(1887),e.DES=i(8276),e.CBC=i(7029),e.EDE=i(7e3)},7029:(t,e,i)=>{"use strict";var n=i(523),r=i(5457),s={};function o(t){n.equal(t.length,8,"Invalid IV length"),this.iv=new Array(8);for(var e=0;e{"use strict";var n=i(523);function r(t){this.options=t,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}t.exports=r,r.prototype._init=function(){},r.prototype.update=function(t){return 0===t.length?[]:"decrypt"===this.type?this._updateDecrypt(t):this._updateEncrypt(t)},r.prototype._buffer=function(t,e){for(var i=Math.min(this.buffer.length-this.bufferOff,t.length-e),n=0;n0;n--)e+=this._buffer(t,e),i+=this._flushBuffer(r,i);return e+=this._buffer(t,e),r},r.prototype.final=function(t){var e,i;return t&&(e=this.update(t)),i="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(i):i},r.prototype._pad=function(t,e){if(0===e)return!1;for(;e{"use strict";var n=i(523),r=i(5457),s=i(3777),o=i(1887);function a(){this.tmp=new Array(2),this.keys=null}function l(t){o.call(this,t);var e=new a;this._desState=e,this.deriveKeys(e,t.key)}r(l,o),t.exports=l,l.create=function(t){return new l(t)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];l.prototype.deriveKeys=function(t,e){t.keys=new Array(32),n.equal(e.length,this.blockSize,"Invalid key length");var i=s.readUInt32BE(e,0),r=s.readUInt32BE(e,4);s.pc1(i,r,t.tmp,0),i=t.tmp[0],r=t.tmp[1];for(var o=0;o>>1];i=s.r28shl(i,a),r=s.r28shl(r,a),s.pc2(i,r,t.keys,o)}},l.prototype._update=function(t,e,i,n){var r=this._desState,o=s.readUInt32BE(t,e),a=s.readUInt32BE(t,e+4);s.ip(o,a,r.tmp,0),o=r.tmp[0],a=r.tmp[1],"encrypt"===this.type?this._encrypt(r,o,a,r.tmp,0):this._decrypt(r,o,a,r.tmp,0),a=r.tmp[1],s.writeUInt32BE(i,o=r.tmp[0],n),s.writeUInt32BE(i,a,n+4)},l.prototype._pad=function(t,e){for(var i=t.length-e,n=e;n>>0,o=d}s.rip(a,o,n,r)},l.prototype._decrypt=function(t,e,i,n,r){for(var o=i,a=e,l=t.keys.length-2;l>=0;l-=2){var c=t.keys[l],h=t.keys[l+1];s.expand(o,t.tmp,0);var u=s.substitute(c^=t.tmp[0],h^=t.tmp[1]),d=o;o=(a^s.permute(u))>>>0,a=d}s.rip(o,a,n,r)}},7e3:(t,e,i)=>{"use strict";var n=i(523),r=i(5457),s=i(1887),o=i(8276);function a(t,e){n.equal(e.length,24,"Invalid key length");var i=e.slice(0,8),r=e.slice(8,16),s=e.slice(16,24);this.ciphers="encrypt"===t?[o.create({type:"encrypt",key:i}),o.create({type:"decrypt",key:r}),o.create({type:"encrypt",key:s})]:[o.create({type:"decrypt",key:s}),o.create({type:"encrypt",key:r}),o.create({type:"decrypt",key:i})]}function l(t){s.call(this,t);var e=new a(this.type,this.options.key);this._edeState=e}r(l,s),t.exports=l,l.create=function(t){return new l(t)},l.prototype._update=function(t,e,i,n){var r=this._edeState;r.ciphers[0]._update(t,e,i,n),r.ciphers[1]._update(i,n,i,n),r.ciphers[2]._update(i,n,i,n)},l.prototype._pad=o.prototype._pad,l.prototype._unpad=o.prototype._unpad},3777:(t,e)=>{"use strict";e.readUInt32BE=function(t,e){return(t[0+e]<<24|t[1+e]<<16|t[2+e]<<8|t[3+e])>>>0},e.writeUInt32BE=function(t,e,i){t[0+i]=e>>>24,t[1+i]=e>>>16&255,t[2+i]=e>>>8&255,t[3+i]=255&e},e.ip=function(t,e,i,n){for(var r=0,s=0,o=6;o>=0;o-=2){for(var a=0;a<=24;a+=8)r<<=1,r|=e>>>a+o&1;for(a=0;a<=24;a+=8)r<<=1,r|=t>>>a+o&1}for(o=6;o>=0;o-=2){for(a=1;a<=25;a+=8)s<<=1,s|=e>>>a+o&1;for(a=1;a<=25;a+=8)s<<=1,s|=t>>>a+o&1}i[n+0]=r>>>0,i[n+1]=s>>>0},e.rip=function(t,e,i,n){for(var r=0,s=0,o=0;o<4;o++)for(var a=24;a>=0;a-=8)r<<=1,r|=e>>>a+o&1,r<<=1,r|=t>>>a+o&1;for(o=4;o<8;o++)for(a=24;a>=0;a-=8)s<<=1,s|=e>>>a+o&1,s<<=1,s|=t>>>a+o&1;i[n+0]=r>>>0,i[n+1]=s>>>0},e.pc1=function(t,e,i,n){for(var r=0,s=0,o=7;o>=5;o--){for(var a=0;a<=24;a+=8)r<<=1,r|=e>>a+o&1;for(a=0;a<=24;a+=8)r<<=1,r|=t>>a+o&1}for(a=0;a<=24;a+=8)r<<=1,r|=e>>a+o&1;for(o=1;o<=3;o++){for(a=0;a<=24;a+=8)s<<=1,s|=e>>a+o&1;for(a=0;a<=24;a+=8)s<<=1,s|=t>>a+o&1}for(a=0;a<=24;a+=8)s<<=1,s|=t>>a+o&1;i[n+0]=r>>>0,i[n+1]=s>>>0},e.r28shl=function(t,e){return t<>>28-e};var i=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,n,r){for(var s=0,o=0,a=i.length>>>1,l=0;l>>i[l]&1;for(l=a;l>>i[l]&1;n[r+0]=s>>>0,n[r+1]=o>>>0},e.expand=function(t,e,i){var n=0,r=0;n=(1&t)<<5|t>>>27;for(var s=23;s>=15;s-=4)n<<=6,n|=t>>>s&63;for(s=11;s>=3;s-=4)r|=t>>>s&63,r<<=6;r|=(31&t)<<1|t>>>31,e[i+0]=n>>>0,e[i+1]=r>>>0};var n=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var i=0,r=0;r<4;r++)i<<=4,i|=n[64*r+(t>>>18-6*r&63)];for(r=0;r<4;r++)i<<=4,i|=n[256+64*r+(e>>>18-6*r&63)];return i>>>0};var r=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,i=0;i>>r[i]&1;return e>>>0},e.padSplit=function(t,e,i){for(var n=t.toString(2);n.length{var n=i(1901),r=i(1930),s=i(429),o={binary:!0,hex:!0,base64:!0};e.DiffieHellmanGroup=e.createDiffieHellmanGroup=e.getDiffieHellman=function(t){var e=new Buffer(r[t].prime,"hex"),i=new Buffer(r[t].gen,"hex");return new s(e,i)},e.createDiffieHellman=e.DiffieHellman=function t(e,i,r,a){return Buffer.isBuffer(i)||void 0===o[i]?t(e,"binary",i,r):(i=i||"binary",a=a||"binary",r=r||new Buffer([2]),Buffer.isBuffer(r)||(r=new Buffer(r,a)),"number"==typeof e?new s(n(e,r),r,!0):(Buffer.isBuffer(e)||(e=new Buffer(e,i)),new s(e,r,!0)))}},429:(t,e,i)=>{var n=i(7299),r=new(i(2533)),s=new n(24),o=new n(11),a=new n(10),l=new n(3),c=new n(7),h=i(1901),u=i(6716);function d(t,e){return e=e||"utf8",Buffer.isBuffer(t)||(t=new Buffer(t,e)),this._pub=new n(t),this}function p(t,e){return e=e||"utf8",Buffer.isBuffer(t)||(t=new Buffer(t,e)),this._priv=new n(t),this}t.exports=m;var f={};function m(t,e,i){this.setGenerator(e),this.__prime=new n(t),this._prime=n.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,i?(this.setPublicKey=d,this.setPrivateKey=p):this._primeCode=8}function g(t,e){var i=new Buffer(t.toArray());return e?i.toString(e):i}Object.defineProperty(m.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(t,e){var i=e.toString("hex"),n=[i,t.toString(16)].join("_");if(n in f)return f[n];var u,d=0;if(t.isEven()||!h.simpleSieve||!h.fermatTest(t)||!r.test(t))return d+=1,f[n]=d+="02"===i||"05"===i?8:4,d;switch(r.test(t.shrn(1))||(d+=2),i){case"02":t.mod(s).cmp(o)&&(d+=8);break;case"05":(u=t.mod(a)).cmp(l)&&u.cmp(c)&&(d+=8);break;default:d+=4}return f[n]=d,d}(this.__prime,this.__gen)),this._primeCode}}),m.prototype.generateKeys=function(){return this._priv||(this._priv=new n(u(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},m.prototype.computeSecret=function(t){var e=(t=(t=new n(t)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new Buffer(e.toArray()),r=this.getPrime();if(i.length{var n=i(6716);t.exports=b,b.simpleSieve=g,b.fermatTest=y;var r=i(7299),s=new r(24),o=new(i(2533)),a=new r(1),l=new r(2),c=new r(5),h=(new r(16),new r(8),new r(10)),u=new r(3),d=(new r(7),new r(11)),p=new r(4),f=(new r(12),null);function m(){if(null!==f)return f;var t=[];t[0]=2;for(var e=1,i=3;i<1048576;i+=2){for(var n=Math.ceil(Math.sqrt(i)),r=0;rt;)i.ishrn(1);if(i.isEven()&&i.iadd(a),i.testn(1)||i.iadd(l),e.cmp(l)){if(!e.cmp(c))for(;i.mod(h).cmp(u);)i.iadd(p)}else for(;i.mod(s).cmp(d);)i.iadd(p);if(g(f=i.shrn(1))&&g(i)&&y(f)&&y(i)&&o.test(f)&&o.test(i))return i}}},7299:function(t,e,i){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function r(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function s(t,e,i){if(s.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var o;"object"==typeof t?t.exports=s:e.BN=s,s.BN=s,s.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(8623).Buffer}catch(S){}function a(t,e){var i=t.charCodeAt(e);return i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function l(t,e,i){var n=a(t,i);return i-1>=e&&(n|=a(t,i-1)<<4),n}function c(t,e,i,n){for(var r=0,s=Math.min(t.length,i),o=e;o=49?a-49+10:a>=17?a-17+10:a}return r}s.isBN=function(t){return t instanceof s||null!==t&&"object"==typeof t&&t.constructor.wordSize===s.wordSize&&Array.isArray(t.words)},s.max=function(t,e){return t.cmp(e)>0?t:e},s.min=function(t,e){return t.cmp(e)<0?t:e},s.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var r=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r=0;r-=3)this.words[s]|=(o=t[r]|t[r-1]<<8|t[r-2]<<16)<>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===i)for(r=0,s=0;r>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this.strip()},s.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)r=l(t,e,n)<=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;this.strip()},s.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var n=0,r=1;r<=67108863;r*=e)n++;n--,r=r/e|0;for(var s=t.length-i,o=s%n,a=Math.min(s,s-o)+i,l=0,h=i;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,i){i.negative=e.negative^t.negative;var n=t.length+e.length|0;i.length=n,n=n-1|0;var r=0|t.words[0],s=0|e.words[0],o=r*s,a=o/67108864|0;i.words[0]=67108863&o;for(var l=1;l>>26,h=67108863&a,u=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=u;d++)c+=(o=(r=0|t.words[l-d|0])*(s=0|e.words[d])+h)/67108864|0,h=67108863&o;i.words[l]=0|h,a=0|c}return 0!==a?i.words[l]=0|a:i.length--,i.strip()}s.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var r=0,s=0,o=0;o>>24-r&16777215)||o!==this.length-1?h[6-l.length]+l+i:l+i,(r+=2)>=26&&(r-=26,o--)}for(0!==s&&(i=s.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var c=u[t],p=d[t];i="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modn(p).toString(t);i=(f=f.idivn(p)).isZero()?m+i:h[c-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},s.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},s.prototype.toArrayLike=function(t,e,i){var r=this.byteLength(),s=i||Math.max(1,r);n(r<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0"),this.strip();var o,a,l="le"===e,c=new t(s),h=this.clone();if(l){for(a=0;!h.isZero();a++)o=h.andln(255),h.iushrn(8),c[a]=o;for(;a=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},s.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},s.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},s.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},s.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;it.length?this.clone().iand(t):t.clone().iand(this)},s.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},s.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},s.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},s.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-i),this.strip()},s.prototype.notn=function(t){return this.clone().inotn(t)},s.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var i=t/26|0,r=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<t.length?(i=this,n=t):(i=t,n=this);for(var r=0,s=0;s>>26;for(;0!==r&&s>>26;if(this.length=i.length,0!==r)this.words[this.length]=r,this.length++;else if(i!==this)for(;st.length?this.clone().iadd(t):t.clone().iadd(this)},s.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,n,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(i=this,n=t):(i=t,n=this);for(var s=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==s&&o>26,this.words[o]=67108863&e;if(0===s&&o>>13,p=0|o[1],f=8191&p,m=p>>>13,g=0|o[2],y=8191&g,b=g>>>13,v=0|o[3],_=8191&v,w=v>>>13,x=0|o[4],C=8191&x,A=x>>>13,S=0|o[5],E=8191&S,k=S>>>13,T=0|o[6],M=8191&T,L=T>>>13,I=0|o[7],O=8191&I,D=I>>>13,R=0|o[8],N=8191&R,P=R>>>13,F=0|o[9],Z=8191&F,B=F>>>13,U=0|a[0],q=8191&U,z=U>>>13,H=0|a[1],Y=8191&H,G=H>>>13,j=0|a[2],V=8191&j,Q=j>>>13,W=0|a[3],J=8191&W,X=W>>>13,K=0|a[4],$=8191&K,tt=K>>>13,et=0|a[5],it=8191&et,nt=et>>>13,rt=0|a[6],st=8191&rt,ot=rt>>>13,at=0|a[7],lt=8191&at,ct=at>>>13,ht=0|a[8],ut=8191&ht,dt=ht>>>13,pt=0|a[9],ft=8191&pt,mt=pt>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(c+(n=Math.imul(u,q))|0)+((8191&(r=(r=Math.imul(u,z))+Math.imul(d,q)|0))<<13)|0;c=((s=Math.imul(d,z))+(r>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(f,q),r=(r=Math.imul(f,z))+Math.imul(m,q)|0,s=Math.imul(m,z);var yt=(c+(n=n+Math.imul(u,Y)|0)|0)+((8191&(r=(r=r+Math.imul(u,G)|0)+Math.imul(d,Y)|0))<<13)|0;c=((s=s+Math.imul(d,G)|0)+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),r=(r=Math.imul(y,z))+Math.imul(b,q)|0,s=Math.imul(b,z),n=n+Math.imul(f,Y)|0,r=(r=r+Math.imul(f,G)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,G)|0;var bt=(c+(n=n+Math.imul(u,V)|0)|0)+((8191&(r=(r=r+Math.imul(u,Q)|0)+Math.imul(d,V)|0))<<13)|0;c=((s=s+Math.imul(d,Q)|0)+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(_,q),r=(r=Math.imul(_,z))+Math.imul(w,q)|0,s=Math.imul(w,z),n=n+Math.imul(y,Y)|0,r=(r=r+Math.imul(y,G)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,G)|0,n=n+Math.imul(f,V)|0,r=(r=r+Math.imul(f,Q)|0)+Math.imul(m,V)|0,s=s+Math.imul(m,Q)|0;var vt=(c+(n=n+Math.imul(u,J)|0)|0)+((8191&(r=(r=r+Math.imul(u,X)|0)+Math.imul(d,J)|0))<<13)|0;c=((s=s+Math.imul(d,X)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(C,q),r=(r=Math.imul(C,z))+Math.imul(A,q)|0,s=Math.imul(A,z),n=n+Math.imul(_,Y)|0,r=(r=r+Math.imul(_,G)|0)+Math.imul(w,Y)|0,s=s+Math.imul(w,G)|0,n=n+Math.imul(y,V)|0,r=(r=r+Math.imul(y,Q)|0)+Math.imul(b,V)|0,s=s+Math.imul(b,Q)|0,n=n+Math.imul(f,J)|0,r=(r=r+Math.imul(f,X)|0)+Math.imul(m,J)|0,s=s+Math.imul(m,X)|0;var _t=(c+(n=n+Math.imul(u,$)|0)|0)+((8191&(r=(r=r+Math.imul(u,tt)|0)+Math.imul(d,$)|0))<<13)|0;c=((s=s+Math.imul(d,tt)|0)+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,q),r=(r=Math.imul(E,z))+Math.imul(k,q)|0,s=Math.imul(k,z),n=n+Math.imul(C,Y)|0,r=(r=r+Math.imul(C,G)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,G)|0,n=n+Math.imul(_,V)|0,r=(r=r+Math.imul(_,Q)|0)+Math.imul(w,V)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(y,J)|0,r=(r=r+Math.imul(y,X)|0)+Math.imul(b,J)|0,s=s+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,r=(r=r+Math.imul(f,tt)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(u,it)|0)|0)+((8191&(r=(r=r+Math.imul(u,nt)|0)+Math.imul(d,it)|0))<<13)|0;c=((s=s+Math.imul(d,nt)|0)+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(M,q),r=(r=Math.imul(M,z))+Math.imul(L,q)|0,s=Math.imul(L,z),n=n+Math.imul(E,Y)|0,r=(r=r+Math.imul(E,G)|0)+Math.imul(k,Y)|0,s=s+Math.imul(k,G)|0,n=n+Math.imul(C,V)|0,r=(r=r+Math.imul(C,Q)|0)+Math.imul(A,V)|0,s=s+Math.imul(A,Q)|0,n=n+Math.imul(_,J)|0,r=(r=r+Math.imul(_,X)|0)+Math.imul(w,J)|0,s=s+Math.imul(w,X)|0,n=n+Math.imul(y,$)|0,r=(r=r+Math.imul(y,tt)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,tt)|0,n=n+Math.imul(f,it)|0,r=(r=r+Math.imul(f,nt)|0)+Math.imul(m,it)|0,s=s+Math.imul(m,nt)|0;var xt=(c+(n=n+Math.imul(u,st)|0)|0)+((8191&(r=(r=r+Math.imul(u,ot)|0)+Math.imul(d,st)|0))<<13)|0;c=((s=s+Math.imul(d,ot)|0)+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(O,q),r=(r=Math.imul(O,z))+Math.imul(D,q)|0,s=Math.imul(D,z),n=n+Math.imul(M,Y)|0,r=(r=r+Math.imul(M,G)|0)+Math.imul(L,Y)|0,s=s+Math.imul(L,G)|0,n=n+Math.imul(E,V)|0,r=(r=r+Math.imul(E,Q)|0)+Math.imul(k,V)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(C,J)|0,r=(r=r+Math.imul(C,X)|0)+Math.imul(A,J)|0,s=s+Math.imul(A,X)|0,n=n+Math.imul(_,$)|0,r=(r=r+Math.imul(_,tt)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,tt)|0,n=n+Math.imul(y,it)|0,r=(r=r+Math.imul(y,nt)|0)+Math.imul(b,it)|0,s=s+Math.imul(b,nt)|0,n=n+Math.imul(f,st)|0,r=(r=r+Math.imul(f,ot)|0)+Math.imul(m,st)|0,s=s+Math.imul(m,ot)|0;var Ct=(c+(n=n+Math.imul(u,lt)|0)|0)+((8191&(r=(r=r+Math.imul(u,ct)|0)+Math.imul(d,lt)|0))<<13)|0;c=((s=s+Math.imul(d,ct)|0)+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(N,q),r=(r=Math.imul(N,z))+Math.imul(P,q)|0,s=Math.imul(P,z),n=n+Math.imul(O,Y)|0,r=(r=r+Math.imul(O,G)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,G)|0,n=n+Math.imul(M,V)|0,r=(r=r+Math.imul(M,Q)|0)+Math.imul(L,V)|0,s=s+Math.imul(L,Q)|0,n=n+Math.imul(E,J)|0,r=(r=r+Math.imul(E,X)|0)+Math.imul(k,J)|0,s=s+Math.imul(k,X)|0,n=n+Math.imul(C,$)|0,r=(r=r+Math.imul(C,tt)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,tt)|0,n=n+Math.imul(_,it)|0,r=(r=r+Math.imul(_,nt)|0)+Math.imul(w,it)|0,s=s+Math.imul(w,nt)|0,n=n+Math.imul(y,st)|0,r=(r=r+Math.imul(y,ot)|0)+Math.imul(b,st)|0,s=s+Math.imul(b,ot)|0,n=n+Math.imul(f,lt)|0,r=(r=r+Math.imul(f,ct)|0)+Math.imul(m,lt)|0,s=s+Math.imul(m,ct)|0;var At=(c+(n=n+Math.imul(u,ut)|0)|0)+((8191&(r=(r=r+Math.imul(u,dt)|0)+Math.imul(d,ut)|0))<<13)|0;c=((s=s+Math.imul(d,dt)|0)+(r>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(Z,q),r=(r=Math.imul(Z,z))+Math.imul(B,q)|0,s=Math.imul(B,z),n=n+Math.imul(N,Y)|0,r=(r=r+Math.imul(N,G)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,G)|0,n=n+Math.imul(O,V)|0,r=(r=r+Math.imul(O,Q)|0)+Math.imul(D,V)|0,s=s+Math.imul(D,Q)|0,n=n+Math.imul(M,J)|0,r=(r=r+Math.imul(M,X)|0)+Math.imul(L,J)|0,s=s+Math.imul(L,X)|0,n=n+Math.imul(E,$)|0,r=(r=r+Math.imul(E,tt)|0)+Math.imul(k,$)|0,s=s+Math.imul(k,tt)|0,n=n+Math.imul(C,it)|0,r=(r=r+Math.imul(C,nt)|0)+Math.imul(A,it)|0,s=s+Math.imul(A,nt)|0,n=n+Math.imul(_,st)|0,r=(r=r+Math.imul(_,ot)|0)+Math.imul(w,st)|0,s=s+Math.imul(w,ot)|0,n=n+Math.imul(y,lt)|0,r=(r=r+Math.imul(y,ct)|0)+Math.imul(b,lt)|0,s=s+Math.imul(b,ct)|0,n=n+Math.imul(f,ut)|0,r=(r=r+Math.imul(f,dt)|0)+Math.imul(m,ut)|0,s=s+Math.imul(m,dt)|0;var St=(c+(n=n+Math.imul(u,ft)|0)|0)+((8191&(r=(r=r+Math.imul(u,mt)|0)+Math.imul(d,ft)|0))<<13)|0;c=((s=s+Math.imul(d,mt)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(Z,Y),r=(r=Math.imul(Z,G))+Math.imul(B,Y)|0,s=Math.imul(B,G),n=n+Math.imul(N,V)|0,r=(r=r+Math.imul(N,Q)|0)+Math.imul(P,V)|0,s=s+Math.imul(P,Q)|0,n=n+Math.imul(O,J)|0,r=(r=r+Math.imul(O,X)|0)+Math.imul(D,J)|0,s=s+Math.imul(D,X)|0,n=n+Math.imul(M,$)|0,r=(r=r+Math.imul(M,tt)|0)+Math.imul(L,$)|0,s=s+Math.imul(L,tt)|0,n=n+Math.imul(E,it)|0,r=(r=r+Math.imul(E,nt)|0)+Math.imul(k,it)|0,s=s+Math.imul(k,nt)|0,n=n+Math.imul(C,st)|0,r=(r=r+Math.imul(C,ot)|0)+Math.imul(A,st)|0,s=s+Math.imul(A,ot)|0,n=n+Math.imul(_,lt)|0,r=(r=r+Math.imul(_,ct)|0)+Math.imul(w,lt)|0,s=s+Math.imul(w,ct)|0,n=n+Math.imul(y,ut)|0,r=(r=r+Math.imul(y,dt)|0)+Math.imul(b,ut)|0,s=s+Math.imul(b,dt)|0;var Et=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(r=(r=r+Math.imul(f,mt)|0)+Math.imul(m,ft)|0))<<13)|0;c=((s=s+Math.imul(m,mt)|0)+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(Z,V),r=(r=Math.imul(Z,Q))+Math.imul(B,V)|0,s=Math.imul(B,Q),n=n+Math.imul(N,J)|0,r=(r=r+Math.imul(N,X)|0)+Math.imul(P,J)|0,s=s+Math.imul(P,X)|0,n=n+Math.imul(O,$)|0,r=(r=r+Math.imul(O,tt)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,tt)|0,n=n+Math.imul(M,it)|0,r=(r=r+Math.imul(M,nt)|0)+Math.imul(L,it)|0,s=s+Math.imul(L,nt)|0,n=n+Math.imul(E,st)|0,r=(r=r+Math.imul(E,ot)|0)+Math.imul(k,st)|0,s=s+Math.imul(k,ot)|0,n=n+Math.imul(C,lt)|0,r=(r=r+Math.imul(C,ct)|0)+Math.imul(A,lt)|0,s=s+Math.imul(A,ct)|0,n=n+Math.imul(_,ut)|0,r=(r=r+Math.imul(_,dt)|0)+Math.imul(w,ut)|0,s=s+Math.imul(w,dt)|0;var kt=(c+(n=n+Math.imul(y,ft)|0)|0)+((8191&(r=(r=r+Math.imul(y,mt)|0)+Math.imul(b,ft)|0))<<13)|0;c=((s=s+Math.imul(b,mt)|0)+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(Z,J),r=(r=Math.imul(Z,X))+Math.imul(B,J)|0,s=Math.imul(B,X),n=n+Math.imul(N,$)|0,r=(r=r+Math.imul(N,tt)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,tt)|0,n=n+Math.imul(O,it)|0,r=(r=r+Math.imul(O,nt)|0)+Math.imul(D,it)|0,s=s+Math.imul(D,nt)|0,n=n+Math.imul(M,st)|0,r=(r=r+Math.imul(M,ot)|0)+Math.imul(L,st)|0,s=s+Math.imul(L,ot)|0,n=n+Math.imul(E,lt)|0,r=(r=r+Math.imul(E,ct)|0)+Math.imul(k,lt)|0,s=s+Math.imul(k,ct)|0,n=n+Math.imul(C,ut)|0,r=(r=r+Math.imul(C,dt)|0)+Math.imul(A,ut)|0,s=s+Math.imul(A,dt)|0;var Tt=(c+(n=n+Math.imul(_,ft)|0)|0)+((8191&(r=(r=r+Math.imul(_,mt)|0)+Math.imul(w,ft)|0))<<13)|0;c=((s=s+Math.imul(w,mt)|0)+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(Z,$),r=(r=Math.imul(Z,tt))+Math.imul(B,$)|0,s=Math.imul(B,tt),n=n+Math.imul(N,it)|0,r=(r=r+Math.imul(N,nt)|0)+Math.imul(P,it)|0,s=s+Math.imul(P,nt)|0,n=n+Math.imul(O,st)|0,r=(r=r+Math.imul(O,ot)|0)+Math.imul(D,st)|0,s=s+Math.imul(D,ot)|0,n=n+Math.imul(M,lt)|0,r=(r=r+Math.imul(M,ct)|0)+Math.imul(L,lt)|0,s=s+Math.imul(L,ct)|0,n=n+Math.imul(E,ut)|0,r=(r=r+Math.imul(E,dt)|0)+Math.imul(k,ut)|0,s=s+Math.imul(k,dt)|0;var Mt=(c+(n=n+Math.imul(C,ft)|0)|0)+((8191&(r=(r=r+Math.imul(C,mt)|0)+Math.imul(A,ft)|0))<<13)|0;c=((s=s+Math.imul(A,mt)|0)+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(Z,it),r=(r=Math.imul(Z,nt))+Math.imul(B,it)|0,s=Math.imul(B,nt),n=n+Math.imul(N,st)|0,r=(r=r+Math.imul(N,ot)|0)+Math.imul(P,st)|0,s=s+Math.imul(P,ot)|0,n=n+Math.imul(O,lt)|0,r=(r=r+Math.imul(O,ct)|0)+Math.imul(D,lt)|0,s=s+Math.imul(D,ct)|0,n=n+Math.imul(M,ut)|0,r=(r=r+Math.imul(M,dt)|0)+Math.imul(L,ut)|0,s=s+Math.imul(L,dt)|0;var Lt=(c+(n=n+Math.imul(E,ft)|0)|0)+((8191&(r=(r=r+Math.imul(E,mt)|0)+Math.imul(k,ft)|0))<<13)|0;c=((s=s+Math.imul(k,mt)|0)+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(Z,st),r=(r=Math.imul(Z,ot))+Math.imul(B,st)|0,s=Math.imul(B,ot),n=n+Math.imul(N,lt)|0,r=(r=r+Math.imul(N,ct)|0)+Math.imul(P,lt)|0,s=s+Math.imul(P,ct)|0,n=n+Math.imul(O,ut)|0,r=(r=r+Math.imul(O,dt)|0)+Math.imul(D,ut)|0,s=s+Math.imul(D,dt)|0;var It=(c+(n=n+Math.imul(M,ft)|0)|0)+((8191&(r=(r=r+Math.imul(M,mt)|0)+Math.imul(L,ft)|0))<<13)|0;c=((s=s+Math.imul(L,mt)|0)+(r>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(Z,lt),r=(r=Math.imul(Z,ct))+Math.imul(B,lt)|0,s=Math.imul(B,ct),n=n+Math.imul(N,ut)|0,r=(r=r+Math.imul(N,dt)|0)+Math.imul(P,ut)|0,s=s+Math.imul(P,dt)|0;var Ot=(c+(n=n+Math.imul(O,ft)|0)|0)+((8191&(r=(r=r+Math.imul(O,mt)|0)+Math.imul(D,ft)|0))<<13)|0;c=((s=s+Math.imul(D,mt)|0)+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(Z,ut),r=(r=Math.imul(Z,dt))+Math.imul(B,ut)|0,s=Math.imul(B,dt);var Dt=(c+(n=n+Math.imul(N,ft)|0)|0)+((8191&(r=(r=r+Math.imul(N,mt)|0)+Math.imul(P,ft)|0))<<13)|0;c=((s=s+Math.imul(P,mt)|0)+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Rt=(c+(n=Math.imul(Z,ft))|0)+((8191&(r=(r=Math.imul(Z,mt))+Math.imul(B,ft)|0))<<13)|0;return c=((s=Math.imul(B,mt))+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,l[0]=gt,l[1]=yt,l[2]=bt,l[3]=vt,l[4]=_t,l[5]=wt,l[6]=xt,l[7]=Ct,l[8]=At,l[9]=St,l[10]=Et,l[11]=kt,l[12]=Tt,l[13]=Mt,l[14]=Lt,l[15]=It,l[16]=Ot,l[17]=Dt,l[18]=Rt,0!==c&&(l[19]=c,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(f=p),s.prototype.mulTo=function(t,e){var i=this.length+t.length;return 10===this.length&&10===t.length?f(this,t,e):i<63?p(this,t,e):i<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var n=0,r=0,s=0;s>>26)|0)>>>26,o&=67108863}i.words[s]=a,n=o,o=r}return 0!==n?i.words[s]=n:i.length--,i.strip()}(this,t,e):m(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=s.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,i,n,r,s){for(var o=0;o>>=1)r++;return 1<>>=13),s>>>=13;for(o=2*e;o>=26,e+=r/67108864|0,e+=s>>>26,this.words[i]=67108863&s}return 0!==e&&(this.words[i]=e,this.length++),this},s.prototype.muln=function(t){return this.clone().imuln(t)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i>>n}return e}(t);if(0===e.length)return new s(1);for(var i=this,n=0;n=0);var e,i=t%26,r=(t-i)/26,s=67108863>>>26-i<<26-i;if(0!==i){var o=0;for(e=0;e>>26-i}o&&(this.words[e]=o,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var s=t%26,o=Math.min((t-s)/26,this.length),a=67108863^67108863>>>s<o)for(this.length-=o,c=0;c=0&&(0!==h||c>=r);c--){var u=0|this.words[c];this.words[c]=h<<26-s|u>>>s,h=u&a}return l&&0!==h&&(l.words[l.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(t,e,i){return n(0===this.negative),this.iushrn(t,e,i)},s.prototype.shln=function(t){return this.clone().ishln(t)},s.prototype.ushln=function(t){return this.clone().iushln(t)},s.prototype.shrn=function(t){return this.clone().ishrn(t)},s.prototype.ushrn=function(t){return this.clone().iushrn(t)},s.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;return!(this.length<=i||!(this.words[i]&1<=0);var e=t%26,i=(t-e)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=i?this:(0!==e&&i++,this.length=Math.min(i,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},s.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(a/67108864|0),this.words[r+i]=67108863&s}for(;r>26,this.words[r+i]=67108863&s;if(0===o)return this.strip();for(n(-1===o),o=0,r=0;r>26,this.words[r]=67108863&s;return this.negative=1,this.strip()},s.prototype._wordDiv=function(t,e){var i,n=this.clone(),r=t,o=0|r.words[r.length-1];0!=(i=26-this._countBits(o))&&(r=r.ushln(i),n.iushln(i),o=0|r.words[r.length-1]);var a,l=n.length-r.length;if("mod"!==e){(a=new s(null)).length=l+1,a.words=new Array(a.length);for(var c=0;c=0;u--){var d=67108864*(0|n.words[r.length+u])+(0|n.words[r.length+u-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(r,d,u);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(r,1,u),n.isZero()||(n.negative^=1);a&&(a.words[u]=d)}return a&&a.strip(),n.strip(),"div"!==e&&0!==i&&n.iushrn(i),{div:a||null,mod:n}},s.prototype.divmod=function(t,e,i){return n(!t.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(r=a.div.neg()),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.iadd(t)),{div:r,mod:o}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.isub(t)),{div:a.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new s(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new s(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new s(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,o,a},s.prototype.div=function(t){return this.divmod(t,"div",!1).div},s.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},s.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},s.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),r=t.andln(1),s=i.cmp(n);return s<0||1===r&&0===s?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},s.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,i=0,r=this.length-1;r>=0;r--)i=(e*i+(0|this.words[r]))%t;return i},s.prototype.idivn=function(t){n(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var r=(0|this.words[i])+67108864*e;this.words[i]=r/t|0,e=r%t}return this.strip()},s.prototype.divn=function(t){return this.clone().idivn(t)},s.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r=new s(1),o=new s(0),a=new s(0),l=new s(1),c=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++c;for(var h=i.clone(),u=e.clone();!e.isZero();){for(var d=0,p=1;0==(e.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(r.isOdd()||o.isOdd())&&(r.iadd(h),o.isub(u)),r.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(i.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(i.iushrn(f);f-- >0;)(a.isOdd()||l.isOdd())&&(a.iadd(h),l.isub(u)),a.iushrn(1),l.iushrn(1);e.cmp(i)>=0?(e.isub(i),r.isub(a),o.isub(l)):(i.isub(e),a.isub(r),l.isub(o))}return{a:a,b:l,gcd:i.iushln(c)}},s.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r,o=new s(1),a=new s(0),l=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var c=0,h=1;0==(e.words[0]&h)&&c<26;++c,h<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var u=0,d=1;0==(i.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(i.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(l),a.iushrn(1);e.cmp(i)>=0?(e.isub(i),o.isub(a)):(i.isub(e),a.isub(o))}return(r=0===e.cmpn(1)?o:a).cmpn(0)<0&&r.iadd(t),r},s.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var n=0;e.isEven()&&i.isEven();n++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var r=e.cmp(i);if(r<0){var s=e;e=i,i=s}else if(0===r||0===i.cmpn(1))break;e.isub(i)}return i.iushln(n)},s.prototype.invm=function(t){return this.egcd(t).a.umod(t)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(t){return this.words[0]&t},s.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,i=(t-e)/26,r=1<>>26,this.words[o]=a&=67108863}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),n(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;i--){var n=0|this.words[i],r=0|t.words[i];if(n!==r){nr&&(e=1);break}}return e},s.prototype.gtn=function(t){return 1===this.cmpn(t)},s.prototype.gt=function(t){return 1===this.cmp(t)},s.prototype.gten=function(t){return this.cmpn(t)>=0},s.prototype.gte=function(t){return this.cmp(t)>=0},s.prototype.ltn=function(t){return-1===this.cmpn(t)},s.prototype.lt=function(t){return-1===this.cmp(t)},s.prototype.lten=function(t){return this.cmpn(t)<=0},s.prototype.lte=function(t){return this.cmp(t)<=0},s.prototype.eqn=function(t){return 0===this.cmpn(t)},s.prototype.eq=function(t){return 0===this.cmp(t)},s.red=function(t){return new C(t)},s.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(t){return this.red=t,this},s.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},s.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},s.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},s.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},s.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},s.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},s.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},s.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new s(e,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function C(t){if("string"==typeof t){var e=s._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){C.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var t=new s(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},r(v,b),v.prototype.split=function(t,e){for(var i=4194303,n=Math.min(t.length,9),r=0;r>>22,s=o}t.words[r-10]=s>>>=22,t.length-=0===s&&t.length>10?10:9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i>>=26,t.words[i]=r,e=n}return 0!==e&&(t.words[t.length++]=e),t},s._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new x}return y[t]=e,e},C.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},C.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},C.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},C.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},C.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},C.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},C.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},C.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},C.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},C.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},C.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},C.prototype.isqr=function(t){return this.imul(t,t.clone())},C.prototype.sqr=function(t){return this.mul(t,t)},C.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var i=this.m.add(new s(1)).iushrn(2);return this.pow(t,i)}for(var r=this.m.subn(1),o=0;!r.isZero()&&0===r.andln(1);)o++,r.iushrn(1);n(!r.isZero());var a=new s(1).toRed(this),l=a.redNeg(),c=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new s(2*h*h).toRed(this);0!==this.pow(h,c).cmp(l);)h.redIAdd(l);for(var u=this.pow(h,r),d=this.pow(t,r.addn(1).iushrn(1)),p=this.pow(t,r),f=o;0!==p.cmp(a);){for(var m=p,g=0;0!==m.cmp(a);g++)m=m.redSqr();n(g=0;n--){for(var c=e.words[n],h=l-1;h>=0;h--){var u=c>>h&1;r!==i[0]&&(r=this.sqr(r)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===n&&0===h)&&(r=this.mul(r,i[o]),a=0,o=0)):a=0}l=26}return r},C.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},C.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},s.mont=function(t){return new A(t)},r(A,C),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),s=r;return r.cmp(this.m)>=0?s=r.isub(this.m):r.cmpn(0)<0&&(s=r.iadd(this.m)),s._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new s(0)._forceRed(this);var i=t.mul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=i.nmd(t),this)},45:t=>{"use strict";var e={single_source_shortest_paths:function(t,i,n){var r={},s={};s[i]=0;var o,a,l,c,h,u,d=e.PriorityQueue.make();for(d.push(i,0);!d.empty();)for(l in c=(o=d.pop()).cost,h=t[a=o.value]||{})h.hasOwnProperty(l)&&(u=c+h[l],(void 0===s[l]||s[l]>u)&&(s[l]=u,d.push(l,u),r[l]=a));if(void 0!==n&&void 0===s[n]){var p=["Could not find a path from ",i," to ",n,"."].join("");throw new Error(p)}return r},extract_shortest_path_from_predecessor_list:function(t,e){for(var i=[],n=e;n;)i.push(n),n=t[n];return i.reverse(),i},find_path:function(t,i,n){var r=e.single_source_shortest_paths(t,i,n);return e.extract_shortest_path_from_predecessor_list(r,n)},PriorityQueue:{make:function(t){var i,n=e.PriorityQueue,r={};for(i in t=t||{},n)n.hasOwnProperty(i)&&(r[i]=n[i]);return r.queue=[],r.sorter=t.sorter||n.default_sorter,r},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){this.queue.push({value:t,cost:e}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};t.exports=e},905:(t,e,i)=>{"use strict";var n=e;n.version=i(7519).i8,n.utils=i(3930),n.rand=i(8520),n.curve=i(4367),n.curves=i(2709),n.ec=i(260),n.eddsa=i(2038)},2134:(t,e,i)=>{"use strict";var n=i(8183),r=i(3930),s=r.getNAF,o=r.getJSF,a=r.assert;function l(t,e){this.type=t,this.p=new n(e.p,16),this.red=e.prime?n.red(e.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=e.n&&new n(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var i=this.n&&this.p.div(this.n);!i||i.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=l,l.prototype.point=function(){throw new Error("Not implemented")},l.prototype.validate=function(){throw new Error("Not implemented")},l.prototype._fixedNafMul=function(t,e){a(t.precomputed);var i=t._getDoubles(),n=s(e,1,this._bitLength),r=(1<=o;h--)l=(l<<1)+n[h];c.push(l)}for(var u=this.jpoint(null,null,null),d=this.jpoint(null,null,null),p=r;p>0;p--){for(o=0;o=0;c--){for(var h=0;c>=0&&0===o[c];c--)h++;if(c>=0&&h++,l=l.dblp(h),c<0)break;var u=o[c];a(0!==u),l="affine"===t.type?l.mixedAdd(u>0?r[u-1>>1]:r[-u-1>>1].neg()):l.add(u>0?r[u-1>>1]:r[-u-1>>1].neg())}return"affine"===t.type?l.toP():l},l.prototype._wnafMulAdd=function(t,e,i,n,r){var a,l,c,h=this._wnafT1,u=this._wnafT2,d=this._wnafT3,p=0;for(a=0;a=1;a-=2){var m=a-1,g=a;if(1===h[m]&&1===h[g]){var y=[e[m],null,null,e[g]];0===e[m].y.cmp(e[g].y)?(y[1]=e[m].add(e[g]),y[2]=e[m].toJ().mixedAdd(e[g].neg())):0===e[m].y.cmp(e[g].y.redNeg())?(y[1]=e[m].toJ().mixedAdd(e[g]),y[2]=e[m].add(e[g].neg())):(y[1]=e[m].toJ().mixedAdd(e[g]),y[2]=e[m].toJ().mixedAdd(e[g].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],v=o(i[m],i[g]);for(p=Math.max(v[0].length,p),d[m]=new Array(p),d[g]=new Array(p),l=0;l=0;a--){for(var x=0;a>=0;){var C=!0;for(l=0;l=0&&x++,_=_.dblp(x),a<0)break;for(l=0;l0?c=u[l][A-1>>1]:A<0&&(c=u[l][-A-1>>1].neg()),_="affine"===c.type?_.mixedAdd(c):_.add(c))}}for(a=0;a=Math.ceil((t.bitLength()+1)/e.step)},c.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var i=[this],n=this,r=0;r{"use strict";var n=i(3930),r=i(8183),s=i(5457),o=i(2134),a=n.assert;function l(t){this.twisted=1!=(0|t.a),this.mOneA=this.twisted&&-1==(0|t.a),this.extended=this.mOneA,o.call(this,"edwards",t),this.a=new r(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new r(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new r(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|t.c)}function c(t,e,i,n,s){o.BasePoint.call(this,t,"projective"),null===e&&null===i&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new r(e,16),this.y=new r(i,16),this.z=n?new r(n,16):this.curve.one,this.t=s&&new r(s,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}s(l,o),t.exports=l,l.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},l.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},l.prototype.jpoint=function(t,e,i,n){return this.point(t,e,i,n)},l.prototype.pointFromX=function(t,e){(t=new r(t,16)).red||(t=t.toRed(this.red));var i=t.redSqr(),n=this.c2.redSub(this.a.redMul(i)),s=this.one.redSub(this.c2.redMul(this.d).redMul(i)),o=n.redMul(s.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var l=a.fromRed().isOdd();return(e&&!l||!e&&l)&&(a=a.redNeg()),this.point(t,a)},l.prototype.pointFromY=function(t,e){(t=new r(t,16)).red||(t=t.toRed(this.red));var i=t.redSqr(),n=i.redSub(this.c2),s=i.redMul(this.d).redMul(this.c2).redSub(this.a),o=n.redMul(s.redInvm());if(0===o.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==e&&(a=a.redNeg()),this.point(a,t)},l.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),i=t.y.redSqr(),n=e.redMul(this.a).redAdd(i),r=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(i)));return 0===n.cmp(r)},s(c,o.BasePoint),l.prototype.pointFromJSON=function(t){return c.fromJSON(this,t)},l.prototype.point=function(t,e,i,n){return new c(this,t,e,i,n)},c.fromJSON=function(t,e){return new c(t,e[0],e[1],e[2])},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),i=this.z.redSqr();i=i.redIAdd(i);var n=this.curve._mulA(t),r=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),s=n.redAdd(e),o=s.redSub(i),a=n.redSub(e),l=r.redMul(o),c=s.redMul(a),h=r.redMul(a),u=o.redMul(s);return this.curve.point(l,c,u,h)},c.prototype._projDbl=function(){var t,e,i,n,r,s,o=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),l=this.y.redSqr();if(this.curve.twisted){var c=(n=this.curve._mulA(a)).redAdd(l);this.zOne?(t=o.redSub(a).redSub(l).redMul(c.redSub(this.curve.two)),e=c.redMul(n.redSub(l)),i=c.redSqr().redSub(c).redSub(c)):(r=this.z.redSqr(),s=c.redSub(r).redISub(r),t=o.redSub(a).redISub(l).redMul(s),e=c.redMul(n.redSub(l)),i=c.redMul(s))}else n=a.redAdd(l),r=this.curve._mulC(this.z).redSqr(),s=n.redSub(r).redSub(r),t=this.curve._mulC(o.redISub(n)).redMul(s),e=this.curve._mulC(n).redMul(a.redISub(l)),i=n.redMul(s);return this.curve.point(t,e,i)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),i=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),r=this.z.redMul(t.z.redAdd(t.z)),s=i.redSub(e),o=r.redSub(n),a=r.redAdd(n),l=i.redAdd(e),c=s.redMul(o),h=a.redMul(l),u=s.redMul(l),d=o.redMul(a);return this.curve.point(c,h,d,u)},c.prototype._projAdd=function(t){var e,i,n=this.z.redMul(t.z),r=n.redSqr(),s=this.x.redMul(t.x),o=this.y.redMul(t.y),a=this.curve.d.redMul(s).redMul(o),l=r.redSub(a),c=r.redAdd(a),h=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(s).redISub(o),u=n.redMul(l).redMul(h);return this.curve.twisted?(e=n.redMul(c).redMul(o.redSub(this.curve._mulA(s))),i=l.redMul(c)):(e=n.redMul(c).redMul(o.redSub(s)),i=this.curve._mulC(l).redMul(c)),this.curve.point(u,e,i)},c.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},c.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},c.prototype.mulAdd=function(t,e,i){return this.curve._wnafMulAdd(1,[this,e],[t,i],2,!1)},c.prototype.jmulAdd=function(t,e,i){return this.curve._wnafMulAdd(1,[this,e],[t,i],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},c.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var i=t.clone(),n=this.curve.redN.redMul(this.z);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},4367:(t,e,i)=>{"use strict";var n=e;n.base=i(2134),n.short=i(6460),n.mont=i(1289),n.edwards=i(4177)},1289:(t,e,i)=>{"use strict";var n=i(8183),r=i(5457),s=i(2134),o=i(3930);function a(t){s.call(this,"mont",t),this.a=new n(t.a,16).toRed(this.red),this.b=new n(t.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function l(t,e,i){s.BasePoint.call(this,t,"projective"),null===e&&null===i?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(e,16),this.z=new n(i,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}r(a,s),t.exports=a,a.prototype.validate=function(t){var e=t.normalize().x,i=e.redSqr(),n=i.redMul(e).redAdd(i.redMul(this.a)).redAdd(e);return 0===n.redSqrt().redSqr().cmp(n)},r(l,s.BasePoint),a.prototype.decodePoint=function(t,e){return this.point(o.toArray(t,e),1)},a.prototype.point=function(t,e){return new l(this,t,e)},a.prototype.pointFromJSON=function(t){return l.fromJSON(this,t)},l.prototype.precompute=function(){},l.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},l.fromJSON=function(t,e){return new l(t,e[0],e[1]||t.one)},l.prototype.inspect=function(){return this.isInfinity()?"":""},l.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},l.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),i=t.redSub(e),n=t.redMul(e),r=i.redMul(e.redAdd(this.curve.a24.redMul(i)));return this.curve.point(n,r)},l.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},l.prototype.diffAdd=function(t,e){var i=this.x.redAdd(this.z),n=this.x.redSub(this.z),r=t.x.redAdd(t.z),s=t.x.redSub(t.z).redMul(i),o=r.redMul(n),a=e.z.redMul(s.redAdd(o).redSqr()),l=e.x.redMul(s.redISub(o).redSqr());return this.curve.point(a,l)},l.prototype.mul=function(t){for(var e=t.clone(),i=this,n=this.curve.point(null,null),r=[];0!==e.cmpn(0);e.iushrn(1))r.push(e.andln(1));for(var s=r.length-1;s>=0;s--)0===r[s]?(i=i.diffAdd(n,this),n=n.dbl()):(n=i.diffAdd(n,this),i=i.dbl());return n},l.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},l.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},l.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},l.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},l.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},6460:(t,e,i)=>{"use strict";var n=i(3930),r=i(8183),s=i(5457),o=i(2134),a=n.assert;function l(t){o.call(this,"short",t),this.a=new r(t.a,16).toRed(this.red),this.b=new r(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(t,e,i,n){o.BasePoint.call(this,t,"affine"),null===e&&null===i?(this.x=null,this.y=null,this.inf=!0):(this.x=new r(e,16),this.y=new r(i,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function h(t,e,i,n){o.BasePoint.call(this,t,"jacobian"),null===e&&null===i&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new r(0)):(this.x=new r(e,16),this.y=new r(i,16),this.z=new r(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}s(l,o),t.exports=l,l.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,i;if(t.beta)e=new r(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)i=new r(t.lambda,16);else{var s=this._getEndoRoots(this.n);0===this.g.mul(s[0]).x.cmp(this.g.x.redMul(e))?i=s[0]:a(0===this.g.mul(i=s[1]).x.cmp(this.g.x.redMul(e)))}return{beta:e,lambda:i,basis:t.basis?t.basis.map(function(t){return{a:new r(t.a,16),b:new r(t.b,16)}}):this._getEndoBasis(i)}}},l.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:r.mont(t),i=new r(2).toRed(e).redInvm(),n=i.redNeg(),s=new r(3).toRed(e).redNeg().redSqrt().redMul(i);return[n.redAdd(s).fromRed(),n.redSub(s).fromRed()]},l.prototype._getEndoBasis=function(t){for(var e,i,n,s,o,a,l,c,h,u=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=t,p=this.n.clone(),f=new r(1),m=new r(0),g=new r(0),y=new r(1),b=0;0!==d.cmpn(0);){var v=p.div(d);c=p.sub(v.mul(d)),h=g.sub(v.mul(f));var _=y.sub(v.mul(m));if(!n&&c.cmp(u)<0)e=l.neg(),i=f,n=c.neg(),s=h;else if(n&&2==++b)break;l=c,p=d,d=c,g=f,f=h,y=m,m=_}o=c.neg(),a=h;var w=n.sqr().add(s.sqr());return o.sqr().add(a.sqr()).cmp(w)>=0&&(o=e,a=i),n.negative&&(n=n.neg(),s=s.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:n,b:s},{a:o,b:a}]},l.prototype._endoSplit=function(t){var e=this.endo.basis,i=e[0],n=e[1],r=n.b.mul(t).divRound(this.n),s=i.b.neg().mul(t).divRound(this.n),o=r.mul(i.a),a=s.mul(n.a),l=r.mul(i.b),c=s.mul(n.b);return{k1:t.sub(o).sub(a),k2:l.add(c).neg()}},l.prototype.pointFromX=function(t,e){(t=new r(t,16)).red||(t=t.toRed(this.red));var i=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=i.redSqrt();if(0!==n.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");var s=n.fromRed().isOdd();return(e&&!s||!e&&s)&&(n=n.redNeg()),this.point(t,n)},l.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,i=t.y,n=this.a.redMul(e),r=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===i.redSqr().redISub(r).cmpn(0)},l.prototype._endoWnafMulAdd=function(t,e,i){for(var n=this._endoWnafT1,r=this._endoWnafT2,s=0;s":""},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var i=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,n)},c.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,i=this.x.redSqr(),n=t.redInvm(),r=i.redAdd(i).redIAdd(i).redIAdd(e).redMul(n),s=r.redSqr().redISub(this.x.redAdd(this.x)),o=r.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,o)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(t){return t=new r(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},c.prototype.mulAdd=function(t,e,i){var n=[this,e],r=[t,i];return this.curve.endo?this.curve._endoWnafMulAdd(n,r):this.curve._wnafMulAdd(1,n,r,2)},c.prototype.jmulAdd=function(t,e,i){var n=[this,e],r=[t,i];return this.curve.endo?this.curve._endoWnafMulAdd(n,r,!0):this.curve._wnafMulAdd(1,n,r,2,!0)},c.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},c.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var i=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(n)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(n)}}}return e},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},s(h,o.BasePoint),l.prototype.jpoint=function(t,e,i){return new h(this,t,e,i)},h.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),i=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(i,n)},h.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},h.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),i=this.z.redSqr(),n=this.x.redMul(e),r=t.x.redMul(i),s=this.y.redMul(e.redMul(t.z)),o=t.y.redMul(i.redMul(this.z)),a=n.redSub(r),l=s.redSub(o);if(0===a.cmpn(0))return 0!==l.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),h=c.redMul(a),u=n.redMul(c),d=l.redSqr().redIAdd(h).redISub(u).redISub(u),p=l.redMul(u.redISub(d)).redISub(s.redMul(h)),f=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(d,p,f)},h.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),i=this.x,n=t.x.redMul(e),r=this.y,s=t.y.redMul(e).redMul(this.z),o=i.redSub(n),a=r.redSub(s);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=o.redSqr(),c=l.redMul(o),h=i.redMul(l),u=a.redSqr().redIAdd(c).redISub(h).redISub(h),d=a.redMul(h.redISub(u)).redISub(r.redMul(c)),p=this.z.redMul(o);return this.curve.jpoint(u,d,p)},h.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var i=this;for(e=0;e=0)return!1;if(i.redIAdd(r),0===this.x.cmp(i))return!0}},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},2709:(t,e,i)=>{"use strict";var n,r=e,s=i(7749),o=i(4367),a=i(3930).assert;function l(t){this.curve="short"===t.type?new o.short(t):"edwards"===t.type?new o.edwards(t):new o.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function c(t,e){Object.defineProperty(r,t,{configurable:!0,enumerable:!0,get:function(){var i=new l(e);return Object.defineProperty(r,t,{configurable:!0,enumerable:!0,value:i}),i}})}r.PresetCurve=l,c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:s.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:s.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:s.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:s.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:s.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=i(5621)}catch(h){n=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:s.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},260:(t,e,i)=>{"use strict";var n=i(8183),r=i(1753),s=i(3930),o=i(2709),a=i(8520),l=s.assert,c=i(3145),h=i(6032);function u(t){if(!(this instanceof u))return new u(t);"string"==typeof t&&(l(Object.prototype.hasOwnProperty.call(o,t),"Unknown curve "+t),t=o[t]),t instanceof o.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=u,u.prototype.keyPair=function(t){return new c(this,t)},u.prototype.keyFromPrivate=function(t,e){return c.fromPrivate(this,t,e)},u.prototype.keyFromPublic=function(t,e){return c.fromPublic(this,t,e)},u.prototype.genKeyPair=function(t){t||(t={});for(var e=new r({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||a(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),i=this.n.byteLength(),s=this.n.sub(new n(2));;){var o=new n(e.generate(i));if(!(o.cmp(s)>0))return o.iaddn(1),this.keyFromPrivate(o)}},u.prototype._truncateToN=function(t,e){var i=8*t.byteLength()-this.n.bitLength();return i>0&&(t=t.ushrn(i)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},u.prototype.sign=function(t,e,i,s){"object"==typeof i&&(s=i,i=null),s||(s={}),e=this.keyFromPrivate(e,i),t=this._truncateToN(new n(t,16));for(var o=this.n.byteLength(),a=e.getPrivate().toArray("be",o),l=t.toArray("be",o),c=new r({hash:this.hash,entropy:a,nonce:l,pers:s.pers,persEnc:s.persEnc||"utf8"}),u=this.n.sub(new n(1)),d=0;;d++){var p=s.k?s.k(d):new n(c.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(u)>=0)){var f=this.g.mul(p);if(!f.isInfinity()){var m=f.getX(),g=m.umod(this.n);if(0!==g.cmpn(0)){var y=p.invm(this.n).mul(g.mul(e.getPrivate()).iadd(t));if(0!==(y=y.umod(this.n)).cmpn(0)){var b=(f.getY().isOdd()?1:0)|(0!==m.cmp(g)?2:0);return s.canonical&&y.cmp(this.nh)>0&&(y=this.n.sub(y),b^=1),new h({r:g,s:y,recoveryParam:b})}}}}}},u.prototype.verify=function(t,e,i,r){t=this._truncateToN(new n(t,16)),i=this.keyFromPublic(i,r);var s=(e=new h(e,"hex")).r,o=e.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,l=o.invm(this.n),c=l.mul(t).umod(this.n),u=l.mul(s).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(c,i.getPublic(),u)).isInfinity()&&a.eqXToP(s):!(a=this.g.mulAdd(c,i.getPublic(),u)).isInfinity()&&0===a.getX().umod(this.n).cmp(s)},u.prototype.recoverPubKey=function(t,e,i,r){l((3&i)===i,"The recovery param is more than two bits"),e=new h(e,r);var s=this.n,o=new n(t),a=e.r,c=e.s,u=1&i,d=i>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");a=this.curve.pointFromX(d?a.add(this.curve.n):a,u);var p=e.r.invm(s),f=s.sub(o).mul(p).umod(s),m=c.mul(p).umod(s);return this.g.mulAdd(f,a,m)},u.prototype.getKeyRecoveryParam=function(t,e,i,n){if(null!==(e=new h(e,n)).recoveryParam)return e.recoveryParam;for(var r=0;r<4;r++){var s;try{s=this.recoverPubKey(t,e,r)}catch(t){continue}if(s.eq(i))return r}throw new Error("Unable to find valid recovery factor")}},3145:(t,e,i)=>{"use strict";var n=i(8183),r=i(3930).assert;function s(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}t.exports=s,s.fromPublic=function(t,e,i){return e instanceof s?e:new s(t,{pub:e,pubEnc:i})},s.fromPrivate=function(t,e,i){return e instanceof s?e:new s(t,{priv:e,privEnc:i})},s.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},s.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},s.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},s.prototype._importPrivate=function(t,e){this.priv=new n(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},s.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?r(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||r(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},s.prototype.derive=function(t){return t.validate()||r(t.validate(),"public point not validated"),t.mul(this.priv).getX()},s.prototype.sign=function(t,e,i){return this.ec.sign(t,this,e,i)},s.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},s.prototype.inspect=function(){return""}},6032:(t,e,i)=>{"use strict";var n=i(8183),r=i(3930),s=r.assert;function o(t,e){if(t instanceof o)return t;this._importDER(t,e)||(s(t.r&&t.s,"Signature without r or s"),this.r=new n(t.r,16),this.s=new n(t.s,16),this.recoveryParam=void 0===t.recoveryParam?null:t.recoveryParam)}function a(){this.place=0}function l(t,e){var i=t[e.place++];if(!(128&i))return i;var n=15&i;if(0===n||n>4)return!1;for(var r=0,s=0,o=e.place;s>>=0;return!(r<=127)&&(e.place=o,r)}function c(t){for(var e=0,i=t.length-1;!t[e]&&!(128&t[e+1])&&e>>3);for(t.push(128|i);--i;)t.push(e>>>(i<<3)&255);t.push(e)}}t.exports=o,o.prototype._importDER=function(t,e){t=r.toArray(t,e);var i=new a;if(48!==t[i.place++])return!1;var s=l(t,i);if(!1===s)return!1;if(s+i.place!==t.length)return!1;if(2!==t[i.place++])return!1;var o=l(t,i);if(!1===o)return!1;var c=t.slice(i.place,o+i.place);if(i.place+=o,2!==t[i.place++])return!1;var h=l(t,i);if(!1===h)return!1;if(t.length!==h+i.place)return!1;var u=t.slice(i.place,h+i.place);if(0===c[0]){if(!(128&c[1]))return!1;c=c.slice(1)}if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}return this.r=new n(c),this.s=new n(u),this.recoveryParam=null,!0},o.prototype.toDER=function(t){var e=this.r.toArray(),i=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&i[0]&&(i=[0].concat(i)),e=c(e),i=c(i);!(i[0]||128&i[1]);)i=i.slice(1);var n=[2];h(n,e.length),(n=n.concat(e)).push(2),h(n,i.length);var s=n.concat(i),o=[48];return h(o,s.length),o=o.concat(s),r.encode(o,t)}},2038:(t,e,i)=>{"use strict";var n=i(7749),r=i(2709),s=i(3930),o=s.assert,a=s.parseBytes,l=i(3426),c=i(613);function h(t){if(o("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof h))return new h(t);this.curve=t=r[t].curve,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=n.sha512}t.exports=h,h.prototype.sign=function(t,e){t=a(t);var i=this.keyFromSecret(e),n=this.hashInt(i.messagePrefix(),t),r=this.g.mul(n),s=this.encodePoint(r),o=this.hashInt(s,i.pubBytes(),t).mul(i.priv()),l=n.add(o).umod(this.curve.n);return this.makeSignature({R:r,S:l,Rencoded:s})},h.prototype.verify=function(t,e,i){t=a(t),e=this.makeSignature(e);var n=this.keyFromPublic(i),r=this.hashInt(e.Rencoded(),n.pubBytes(),t),s=this.g.mul(e.S());return e.R().add(n.pub().mul(r)).eq(s)},h.prototype.hashInt=function(){for(var t=this.hash(),e=0;e{"use strict";var n=i(3930),r=n.assert,s=n.parseBytes,o=n.cachedProperty;function a(t,e){this.eddsa=t,this._secret=s(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=s(e.pub)}a.fromPublic=function(t,e){return e instanceof a?e:new a(t,{pub:e})},a.fromSecret=function(t,e){return e instanceof a?e:new a(t,{secret:e})},a.prototype.secret=function(){return this._secret},o(a,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),o(a,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),o(a,"privBytes",function(){var t=this.eddsa,e=this.hash(),i=t.encodingLength-1,n=e.slice(0,t.encodingLength);return n[0]&=248,n[i]&=127,n[i]|=64,n}),o(a,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),o(a,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),o(a,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),a.prototype.sign=function(t){return r(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)},a.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},a.prototype.getSecret=function(t){return r(this._secret,"KeyPair is public only"),n.encode(this.secret(),t)},a.prototype.getPublic=function(t){return n.encode(this.pubBytes(),t)},t.exports=a},613:(t,e,i)=>{"use strict";var n=i(8183),r=i(3930),s=r.assert,o=r.cachedProperty,a=r.parseBytes;function l(t,e){this.eddsa=t,"object"!=typeof e&&(e=a(e)),Array.isArray(e)&&(e={R:e.slice(0,t.encodingLength),S:e.slice(t.encodingLength)}),s(e.R&&e.S,"Signature without R or S"),t.isPoint(e.R)&&(this._R=e.R),e.S instanceof n&&(this._S=e.S),this._Rencoded=Array.isArray(e.R)?e.R:e.Rencoded,this._Sencoded=Array.isArray(e.S)?e.S:e.Sencoded}o(l,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),o(l,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),o(l,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),o(l,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),l.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},l.prototype.toHex=function(){return r.encode(this.toBytes(),"hex").toUpperCase()},t.exports=l},5621:t=>{t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},3930:(t,e,i)=>{"use strict";var n=e,r=i(8183),s=i(523),o=i(5856);n.assert=s,n.toArray=o.toArray,n.zero2=o.zero2,n.toHex=o.toHex,n.encode=o.encode,n.getNAF=function(t,e,i){var n=new Array(Math.max(t.bitLength(),i)+1);n.fill(0);for(var r=1<(r>>1)-1?(r>>1)-l:l):a=0,n[o]=a,s.iushrn(1)}return n},n.getJSF=function(t,e){var i=[[],[]];t=t.clone(),e=e.clone();for(var n,r=0,s=0;t.cmpn(-r)>0||e.cmpn(-s)>0;){var o,a,l=t.andln(3)+r&3,c=e.andln(3)+s&3;3===l&&(l=-1),3===c&&(c=-1),o=0==(1&l)?0:3!=(n=t.andln(7)+r&7)&&5!==n||2!==c?l:-l,i[0].push(o),a=0==(1&c)?0:3!=(n=e.andln(7)+s&7)&&5!==n||2!==l?c:-c,i[1].push(a),2*r===o+1&&(r=1-r),2*s===a+1&&(s=1-s),t.iushrn(1),e.iushrn(1)}return i},n.cachedProperty=function(t,e,i){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=i.call(this)}},n.parseBytes=function(t){return"string"==typeof t?n.toArray(t,"hex"):t},n.intFromLE=function(t){return new r(t,"hex","le")}},8183:function(t,e,i){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function r(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function s(t,e,i){if(s.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var o;"object"==typeof t?t.exports=s:e.BN=s,s.BN=s,s.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(8623).Buffer}catch(S){}function a(t,e){var i=t.charCodeAt(e);return i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function l(t,e,i){var n=a(t,i);return i-1>=e&&(n|=a(t,i-1)<<4),n}function c(t,e,i,n){for(var r=0,s=Math.min(t.length,i),o=e;o=49?a-49+10:a>=17?a-17+10:a}return r}s.isBN=function(t){return t instanceof s||null!==t&&"object"==typeof t&&t.constructor.wordSize===s.wordSize&&Array.isArray(t.words)},s.max=function(t,e){return t.cmp(e)>0?t:e},s.min=function(t,e){return t.cmp(e)<0?t:e},s.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var r=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r=0;r-=3)this.words[s]|=(o=t[r]|t[r-1]<<8|t[r-2]<<16)<>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===i)for(r=0,s=0;r>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this.strip()},s.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)r=l(t,e,n)<=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;this.strip()},s.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var n=0,r=1;r<=67108863;r*=e)n++;n--,r=r/e|0;for(var s=t.length-i,o=s%n,a=Math.min(s,s-o)+i,l=0,h=i;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,i){i.negative=e.negative^t.negative;var n=t.length+e.length|0;i.length=n,n=n-1|0;var r=0|t.words[0],s=0|e.words[0],o=r*s,a=o/67108864|0;i.words[0]=67108863&o;for(var l=1;l>>26,h=67108863&a,u=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=u;d++)c+=(o=(r=0|t.words[l-d|0])*(s=0|e.words[d])+h)/67108864|0,h=67108863&o;i.words[l]=0|h,a=0|c}return 0!==a?i.words[l]=0|a:i.length--,i.strip()}s.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var r=0,s=0,o=0;o>>24-r&16777215)||o!==this.length-1?h[6-l.length]+l+i:l+i,(r+=2)>=26&&(r-=26,o--)}for(0!==s&&(i=s.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var c=u[t],p=d[t];i="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modn(p).toString(t);i=(f=f.idivn(p)).isZero()?m+i:h[c-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},s.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},s.prototype.toArrayLike=function(t,e,i){var r=this.byteLength(),s=i||Math.max(1,r);n(r<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0"),this.strip();var o,a,l="le"===e,c=new t(s),h=this.clone();if(l){for(a=0;!h.isZero();a++)o=h.andln(255),h.iushrn(8),c[a]=o;for(;a=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},s.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},s.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},s.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},s.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;it.length?this.clone().iand(t):t.clone().iand(this)},s.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},s.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},s.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},s.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-i),this.strip()},s.prototype.notn=function(t){return this.clone().inotn(t)},s.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var i=t/26|0,r=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<t.length?(i=this,n=t):(i=t,n=this);for(var r=0,s=0;s>>26;for(;0!==r&&s>>26;if(this.length=i.length,0!==r)this.words[this.length]=r,this.length++;else if(i!==this)for(;st.length?this.clone().iadd(t):t.clone().iadd(this)},s.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,n,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(i=this,n=t):(i=t,n=this);for(var s=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==s&&o>26,this.words[o]=67108863&e;if(0===s&&o>>13,p=0|o[1],f=8191&p,m=p>>>13,g=0|o[2],y=8191&g,b=g>>>13,v=0|o[3],_=8191&v,w=v>>>13,x=0|o[4],C=8191&x,A=x>>>13,S=0|o[5],E=8191&S,k=S>>>13,T=0|o[6],M=8191&T,L=T>>>13,I=0|o[7],O=8191&I,D=I>>>13,R=0|o[8],N=8191&R,P=R>>>13,F=0|o[9],Z=8191&F,B=F>>>13,U=0|a[0],q=8191&U,z=U>>>13,H=0|a[1],Y=8191&H,G=H>>>13,j=0|a[2],V=8191&j,Q=j>>>13,W=0|a[3],J=8191&W,X=W>>>13,K=0|a[4],$=8191&K,tt=K>>>13,et=0|a[5],it=8191&et,nt=et>>>13,rt=0|a[6],st=8191&rt,ot=rt>>>13,at=0|a[7],lt=8191&at,ct=at>>>13,ht=0|a[8],ut=8191&ht,dt=ht>>>13,pt=0|a[9],ft=8191&pt,mt=pt>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(c+(n=Math.imul(u,q))|0)+((8191&(r=(r=Math.imul(u,z))+Math.imul(d,q)|0))<<13)|0;c=((s=Math.imul(d,z))+(r>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(f,q),r=(r=Math.imul(f,z))+Math.imul(m,q)|0,s=Math.imul(m,z);var yt=(c+(n=n+Math.imul(u,Y)|0)|0)+((8191&(r=(r=r+Math.imul(u,G)|0)+Math.imul(d,Y)|0))<<13)|0;c=((s=s+Math.imul(d,G)|0)+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),r=(r=Math.imul(y,z))+Math.imul(b,q)|0,s=Math.imul(b,z),n=n+Math.imul(f,Y)|0,r=(r=r+Math.imul(f,G)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,G)|0;var bt=(c+(n=n+Math.imul(u,V)|0)|0)+((8191&(r=(r=r+Math.imul(u,Q)|0)+Math.imul(d,V)|0))<<13)|0;c=((s=s+Math.imul(d,Q)|0)+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(_,q),r=(r=Math.imul(_,z))+Math.imul(w,q)|0,s=Math.imul(w,z),n=n+Math.imul(y,Y)|0,r=(r=r+Math.imul(y,G)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,G)|0,n=n+Math.imul(f,V)|0,r=(r=r+Math.imul(f,Q)|0)+Math.imul(m,V)|0,s=s+Math.imul(m,Q)|0;var vt=(c+(n=n+Math.imul(u,J)|0)|0)+((8191&(r=(r=r+Math.imul(u,X)|0)+Math.imul(d,J)|0))<<13)|0;c=((s=s+Math.imul(d,X)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(C,q),r=(r=Math.imul(C,z))+Math.imul(A,q)|0,s=Math.imul(A,z),n=n+Math.imul(_,Y)|0,r=(r=r+Math.imul(_,G)|0)+Math.imul(w,Y)|0,s=s+Math.imul(w,G)|0,n=n+Math.imul(y,V)|0,r=(r=r+Math.imul(y,Q)|0)+Math.imul(b,V)|0,s=s+Math.imul(b,Q)|0,n=n+Math.imul(f,J)|0,r=(r=r+Math.imul(f,X)|0)+Math.imul(m,J)|0,s=s+Math.imul(m,X)|0;var _t=(c+(n=n+Math.imul(u,$)|0)|0)+((8191&(r=(r=r+Math.imul(u,tt)|0)+Math.imul(d,$)|0))<<13)|0;c=((s=s+Math.imul(d,tt)|0)+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,q),r=(r=Math.imul(E,z))+Math.imul(k,q)|0,s=Math.imul(k,z),n=n+Math.imul(C,Y)|0,r=(r=r+Math.imul(C,G)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,G)|0,n=n+Math.imul(_,V)|0,r=(r=r+Math.imul(_,Q)|0)+Math.imul(w,V)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(y,J)|0,r=(r=r+Math.imul(y,X)|0)+Math.imul(b,J)|0,s=s+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,r=(r=r+Math.imul(f,tt)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(u,it)|0)|0)+((8191&(r=(r=r+Math.imul(u,nt)|0)+Math.imul(d,it)|0))<<13)|0;c=((s=s+Math.imul(d,nt)|0)+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(M,q),r=(r=Math.imul(M,z))+Math.imul(L,q)|0,s=Math.imul(L,z),n=n+Math.imul(E,Y)|0,r=(r=r+Math.imul(E,G)|0)+Math.imul(k,Y)|0,s=s+Math.imul(k,G)|0,n=n+Math.imul(C,V)|0,r=(r=r+Math.imul(C,Q)|0)+Math.imul(A,V)|0,s=s+Math.imul(A,Q)|0,n=n+Math.imul(_,J)|0,r=(r=r+Math.imul(_,X)|0)+Math.imul(w,J)|0,s=s+Math.imul(w,X)|0,n=n+Math.imul(y,$)|0,r=(r=r+Math.imul(y,tt)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,tt)|0,n=n+Math.imul(f,it)|0,r=(r=r+Math.imul(f,nt)|0)+Math.imul(m,it)|0,s=s+Math.imul(m,nt)|0;var xt=(c+(n=n+Math.imul(u,st)|0)|0)+((8191&(r=(r=r+Math.imul(u,ot)|0)+Math.imul(d,st)|0))<<13)|0;c=((s=s+Math.imul(d,ot)|0)+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(O,q),r=(r=Math.imul(O,z))+Math.imul(D,q)|0,s=Math.imul(D,z),n=n+Math.imul(M,Y)|0,r=(r=r+Math.imul(M,G)|0)+Math.imul(L,Y)|0,s=s+Math.imul(L,G)|0,n=n+Math.imul(E,V)|0,r=(r=r+Math.imul(E,Q)|0)+Math.imul(k,V)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(C,J)|0,r=(r=r+Math.imul(C,X)|0)+Math.imul(A,J)|0,s=s+Math.imul(A,X)|0,n=n+Math.imul(_,$)|0,r=(r=r+Math.imul(_,tt)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,tt)|0,n=n+Math.imul(y,it)|0,r=(r=r+Math.imul(y,nt)|0)+Math.imul(b,it)|0,s=s+Math.imul(b,nt)|0,n=n+Math.imul(f,st)|0,r=(r=r+Math.imul(f,ot)|0)+Math.imul(m,st)|0,s=s+Math.imul(m,ot)|0;var Ct=(c+(n=n+Math.imul(u,lt)|0)|0)+((8191&(r=(r=r+Math.imul(u,ct)|0)+Math.imul(d,lt)|0))<<13)|0;c=((s=s+Math.imul(d,ct)|0)+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(N,q),r=(r=Math.imul(N,z))+Math.imul(P,q)|0,s=Math.imul(P,z),n=n+Math.imul(O,Y)|0,r=(r=r+Math.imul(O,G)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,G)|0,n=n+Math.imul(M,V)|0,r=(r=r+Math.imul(M,Q)|0)+Math.imul(L,V)|0,s=s+Math.imul(L,Q)|0,n=n+Math.imul(E,J)|0,r=(r=r+Math.imul(E,X)|0)+Math.imul(k,J)|0,s=s+Math.imul(k,X)|0,n=n+Math.imul(C,$)|0,r=(r=r+Math.imul(C,tt)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,tt)|0,n=n+Math.imul(_,it)|0,r=(r=r+Math.imul(_,nt)|0)+Math.imul(w,it)|0,s=s+Math.imul(w,nt)|0,n=n+Math.imul(y,st)|0,r=(r=r+Math.imul(y,ot)|0)+Math.imul(b,st)|0,s=s+Math.imul(b,ot)|0,n=n+Math.imul(f,lt)|0,r=(r=r+Math.imul(f,ct)|0)+Math.imul(m,lt)|0,s=s+Math.imul(m,ct)|0;var At=(c+(n=n+Math.imul(u,ut)|0)|0)+((8191&(r=(r=r+Math.imul(u,dt)|0)+Math.imul(d,ut)|0))<<13)|0;c=((s=s+Math.imul(d,dt)|0)+(r>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(Z,q),r=(r=Math.imul(Z,z))+Math.imul(B,q)|0,s=Math.imul(B,z),n=n+Math.imul(N,Y)|0,r=(r=r+Math.imul(N,G)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,G)|0,n=n+Math.imul(O,V)|0,r=(r=r+Math.imul(O,Q)|0)+Math.imul(D,V)|0,s=s+Math.imul(D,Q)|0,n=n+Math.imul(M,J)|0,r=(r=r+Math.imul(M,X)|0)+Math.imul(L,J)|0,s=s+Math.imul(L,X)|0,n=n+Math.imul(E,$)|0,r=(r=r+Math.imul(E,tt)|0)+Math.imul(k,$)|0,s=s+Math.imul(k,tt)|0,n=n+Math.imul(C,it)|0,r=(r=r+Math.imul(C,nt)|0)+Math.imul(A,it)|0,s=s+Math.imul(A,nt)|0,n=n+Math.imul(_,st)|0,r=(r=r+Math.imul(_,ot)|0)+Math.imul(w,st)|0,s=s+Math.imul(w,ot)|0,n=n+Math.imul(y,lt)|0,r=(r=r+Math.imul(y,ct)|0)+Math.imul(b,lt)|0,s=s+Math.imul(b,ct)|0,n=n+Math.imul(f,ut)|0,r=(r=r+Math.imul(f,dt)|0)+Math.imul(m,ut)|0,s=s+Math.imul(m,dt)|0;var St=(c+(n=n+Math.imul(u,ft)|0)|0)+((8191&(r=(r=r+Math.imul(u,mt)|0)+Math.imul(d,ft)|0))<<13)|0;c=((s=s+Math.imul(d,mt)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(Z,Y),r=(r=Math.imul(Z,G))+Math.imul(B,Y)|0,s=Math.imul(B,G),n=n+Math.imul(N,V)|0,r=(r=r+Math.imul(N,Q)|0)+Math.imul(P,V)|0,s=s+Math.imul(P,Q)|0,n=n+Math.imul(O,J)|0,r=(r=r+Math.imul(O,X)|0)+Math.imul(D,J)|0,s=s+Math.imul(D,X)|0,n=n+Math.imul(M,$)|0,r=(r=r+Math.imul(M,tt)|0)+Math.imul(L,$)|0,s=s+Math.imul(L,tt)|0,n=n+Math.imul(E,it)|0,r=(r=r+Math.imul(E,nt)|0)+Math.imul(k,it)|0,s=s+Math.imul(k,nt)|0,n=n+Math.imul(C,st)|0,r=(r=r+Math.imul(C,ot)|0)+Math.imul(A,st)|0,s=s+Math.imul(A,ot)|0,n=n+Math.imul(_,lt)|0,r=(r=r+Math.imul(_,ct)|0)+Math.imul(w,lt)|0,s=s+Math.imul(w,ct)|0,n=n+Math.imul(y,ut)|0,r=(r=r+Math.imul(y,dt)|0)+Math.imul(b,ut)|0,s=s+Math.imul(b,dt)|0;var Et=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(r=(r=r+Math.imul(f,mt)|0)+Math.imul(m,ft)|0))<<13)|0;c=((s=s+Math.imul(m,mt)|0)+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(Z,V),r=(r=Math.imul(Z,Q))+Math.imul(B,V)|0,s=Math.imul(B,Q),n=n+Math.imul(N,J)|0,r=(r=r+Math.imul(N,X)|0)+Math.imul(P,J)|0,s=s+Math.imul(P,X)|0,n=n+Math.imul(O,$)|0,r=(r=r+Math.imul(O,tt)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,tt)|0,n=n+Math.imul(M,it)|0,r=(r=r+Math.imul(M,nt)|0)+Math.imul(L,it)|0,s=s+Math.imul(L,nt)|0,n=n+Math.imul(E,st)|0,r=(r=r+Math.imul(E,ot)|0)+Math.imul(k,st)|0,s=s+Math.imul(k,ot)|0,n=n+Math.imul(C,lt)|0,r=(r=r+Math.imul(C,ct)|0)+Math.imul(A,lt)|0,s=s+Math.imul(A,ct)|0,n=n+Math.imul(_,ut)|0,r=(r=r+Math.imul(_,dt)|0)+Math.imul(w,ut)|0,s=s+Math.imul(w,dt)|0;var kt=(c+(n=n+Math.imul(y,ft)|0)|0)+((8191&(r=(r=r+Math.imul(y,mt)|0)+Math.imul(b,ft)|0))<<13)|0;c=((s=s+Math.imul(b,mt)|0)+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(Z,J),r=(r=Math.imul(Z,X))+Math.imul(B,J)|0,s=Math.imul(B,X),n=n+Math.imul(N,$)|0,r=(r=r+Math.imul(N,tt)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,tt)|0,n=n+Math.imul(O,it)|0,r=(r=r+Math.imul(O,nt)|0)+Math.imul(D,it)|0,s=s+Math.imul(D,nt)|0,n=n+Math.imul(M,st)|0,r=(r=r+Math.imul(M,ot)|0)+Math.imul(L,st)|0,s=s+Math.imul(L,ot)|0,n=n+Math.imul(E,lt)|0,r=(r=r+Math.imul(E,ct)|0)+Math.imul(k,lt)|0,s=s+Math.imul(k,ct)|0,n=n+Math.imul(C,ut)|0,r=(r=r+Math.imul(C,dt)|0)+Math.imul(A,ut)|0,s=s+Math.imul(A,dt)|0;var Tt=(c+(n=n+Math.imul(_,ft)|0)|0)+((8191&(r=(r=r+Math.imul(_,mt)|0)+Math.imul(w,ft)|0))<<13)|0;c=((s=s+Math.imul(w,mt)|0)+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(Z,$),r=(r=Math.imul(Z,tt))+Math.imul(B,$)|0,s=Math.imul(B,tt),n=n+Math.imul(N,it)|0,r=(r=r+Math.imul(N,nt)|0)+Math.imul(P,it)|0,s=s+Math.imul(P,nt)|0,n=n+Math.imul(O,st)|0,r=(r=r+Math.imul(O,ot)|0)+Math.imul(D,st)|0,s=s+Math.imul(D,ot)|0,n=n+Math.imul(M,lt)|0,r=(r=r+Math.imul(M,ct)|0)+Math.imul(L,lt)|0,s=s+Math.imul(L,ct)|0,n=n+Math.imul(E,ut)|0,r=(r=r+Math.imul(E,dt)|0)+Math.imul(k,ut)|0,s=s+Math.imul(k,dt)|0;var Mt=(c+(n=n+Math.imul(C,ft)|0)|0)+((8191&(r=(r=r+Math.imul(C,mt)|0)+Math.imul(A,ft)|0))<<13)|0;c=((s=s+Math.imul(A,mt)|0)+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(Z,it),r=(r=Math.imul(Z,nt))+Math.imul(B,it)|0,s=Math.imul(B,nt),n=n+Math.imul(N,st)|0,r=(r=r+Math.imul(N,ot)|0)+Math.imul(P,st)|0,s=s+Math.imul(P,ot)|0,n=n+Math.imul(O,lt)|0,r=(r=r+Math.imul(O,ct)|0)+Math.imul(D,lt)|0,s=s+Math.imul(D,ct)|0,n=n+Math.imul(M,ut)|0,r=(r=r+Math.imul(M,dt)|0)+Math.imul(L,ut)|0,s=s+Math.imul(L,dt)|0;var Lt=(c+(n=n+Math.imul(E,ft)|0)|0)+((8191&(r=(r=r+Math.imul(E,mt)|0)+Math.imul(k,ft)|0))<<13)|0;c=((s=s+Math.imul(k,mt)|0)+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(Z,st),r=(r=Math.imul(Z,ot))+Math.imul(B,st)|0,s=Math.imul(B,ot),n=n+Math.imul(N,lt)|0,r=(r=r+Math.imul(N,ct)|0)+Math.imul(P,lt)|0,s=s+Math.imul(P,ct)|0,n=n+Math.imul(O,ut)|0,r=(r=r+Math.imul(O,dt)|0)+Math.imul(D,ut)|0,s=s+Math.imul(D,dt)|0;var It=(c+(n=n+Math.imul(M,ft)|0)|0)+((8191&(r=(r=r+Math.imul(M,mt)|0)+Math.imul(L,ft)|0))<<13)|0;c=((s=s+Math.imul(L,mt)|0)+(r>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(Z,lt),r=(r=Math.imul(Z,ct))+Math.imul(B,lt)|0,s=Math.imul(B,ct),n=n+Math.imul(N,ut)|0,r=(r=r+Math.imul(N,dt)|0)+Math.imul(P,ut)|0,s=s+Math.imul(P,dt)|0;var Ot=(c+(n=n+Math.imul(O,ft)|0)|0)+((8191&(r=(r=r+Math.imul(O,mt)|0)+Math.imul(D,ft)|0))<<13)|0;c=((s=s+Math.imul(D,mt)|0)+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(Z,ut),r=(r=Math.imul(Z,dt))+Math.imul(B,ut)|0,s=Math.imul(B,dt);var Dt=(c+(n=n+Math.imul(N,ft)|0)|0)+((8191&(r=(r=r+Math.imul(N,mt)|0)+Math.imul(P,ft)|0))<<13)|0;c=((s=s+Math.imul(P,mt)|0)+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Rt=(c+(n=Math.imul(Z,ft))|0)+((8191&(r=(r=Math.imul(Z,mt))+Math.imul(B,ft)|0))<<13)|0;return c=((s=Math.imul(B,mt))+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,l[0]=gt,l[1]=yt,l[2]=bt,l[3]=vt,l[4]=_t,l[5]=wt,l[6]=xt,l[7]=Ct,l[8]=At,l[9]=St,l[10]=Et,l[11]=kt,l[12]=Tt,l[13]=Mt,l[14]=Lt,l[15]=It,l[16]=Ot,l[17]=Dt,l[18]=Rt,0!==c&&(l[19]=c,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(f=p),s.prototype.mulTo=function(t,e){var i=this.length+t.length;return 10===this.length&&10===t.length?f(this,t,e):i<63?p(this,t,e):i<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var n=0,r=0,s=0;s>>26)|0)>>>26,o&=67108863}i.words[s]=a,n=o,o=r}return 0!==n?i.words[s]=n:i.length--,i.strip()}(this,t,e):m(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=s.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,i,n,r,s){for(var o=0;o>>=1)r++;return 1<>>=13),s>>>=13;for(o=2*e;o>=26,e+=r/67108864|0,e+=s>>>26,this.words[i]=67108863&s}return 0!==e&&(this.words[i]=e,this.length++),this},s.prototype.muln=function(t){return this.clone().imuln(t)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i>>n}return e}(t);if(0===e.length)return new s(1);for(var i=this,n=0;n=0);var e,i=t%26,r=(t-i)/26,s=67108863>>>26-i<<26-i;if(0!==i){var o=0;for(e=0;e>>26-i}o&&(this.words[e]=o,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var s=t%26,o=Math.min((t-s)/26,this.length),a=67108863^67108863>>>s<o)for(this.length-=o,c=0;c=0&&(0!==h||c>=r);c--){var u=0|this.words[c];this.words[c]=h<<26-s|u>>>s,h=u&a}return l&&0!==h&&(l.words[l.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(t,e,i){return n(0===this.negative),this.iushrn(t,e,i)},s.prototype.shln=function(t){return this.clone().ishln(t)},s.prototype.ushln=function(t){return this.clone().iushln(t)},s.prototype.shrn=function(t){return this.clone().ishrn(t)},s.prototype.ushrn=function(t){return this.clone().iushrn(t)},s.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;return!(this.length<=i||!(this.words[i]&1<=0);var e=t%26,i=(t-e)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=i?this:(0!==e&&i++,this.length=Math.min(i,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},s.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(a/67108864|0),this.words[r+i]=67108863&s}for(;r>26,this.words[r+i]=67108863&s;if(0===o)return this.strip();for(n(-1===o),o=0,r=0;r>26,this.words[r]=67108863&s;return this.negative=1,this.strip()},s.prototype._wordDiv=function(t,e){var i,n=this.clone(),r=t,o=0|r.words[r.length-1];0!=(i=26-this._countBits(o))&&(r=r.ushln(i),n.iushln(i),o=0|r.words[r.length-1]);var a,l=n.length-r.length;if("mod"!==e){(a=new s(null)).length=l+1,a.words=new Array(a.length);for(var c=0;c=0;u--){var d=67108864*(0|n.words[r.length+u])+(0|n.words[r.length+u-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(r,d,u);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(r,1,u),n.isZero()||(n.negative^=1);a&&(a.words[u]=d)}return a&&a.strip(),n.strip(),"div"!==e&&0!==i&&n.iushrn(i),{div:a||null,mod:n}},s.prototype.divmod=function(t,e,i){return n(!t.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(r=a.div.neg()),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.iadd(t)),{div:r,mod:o}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.isub(t)),{div:a.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new s(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new s(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new s(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,o,a},s.prototype.div=function(t){return this.divmod(t,"div",!1).div},s.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},s.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},s.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),r=t.andln(1),s=i.cmp(n);return s<0||1===r&&0===s?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},s.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,i=0,r=this.length-1;r>=0;r--)i=(e*i+(0|this.words[r]))%t;return i},s.prototype.idivn=function(t){n(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var r=(0|this.words[i])+67108864*e;this.words[i]=r/t|0,e=r%t}return this.strip()},s.prototype.divn=function(t){return this.clone().idivn(t)},s.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r=new s(1),o=new s(0),a=new s(0),l=new s(1),c=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++c;for(var h=i.clone(),u=e.clone();!e.isZero();){for(var d=0,p=1;0==(e.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(r.isOdd()||o.isOdd())&&(r.iadd(h),o.isub(u)),r.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(i.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(i.iushrn(f);f-- >0;)(a.isOdd()||l.isOdd())&&(a.iadd(h),l.isub(u)),a.iushrn(1),l.iushrn(1);e.cmp(i)>=0?(e.isub(i),r.isub(a),o.isub(l)):(i.isub(e),a.isub(r),l.isub(o))}return{a:a,b:l,gcd:i.iushln(c)}},s.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r,o=new s(1),a=new s(0),l=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var c=0,h=1;0==(e.words[0]&h)&&c<26;++c,h<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var u=0,d=1;0==(i.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(i.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(l),a.iushrn(1);e.cmp(i)>=0?(e.isub(i),o.isub(a)):(i.isub(e),a.isub(o))}return(r=0===e.cmpn(1)?o:a).cmpn(0)<0&&r.iadd(t),r},s.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var n=0;e.isEven()&&i.isEven();n++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var r=e.cmp(i);if(r<0){var s=e;e=i,i=s}else if(0===r||0===i.cmpn(1))break;e.isub(i)}return i.iushln(n)},s.prototype.invm=function(t){return this.egcd(t).a.umod(t)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(t){return this.words[0]&t},s.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,i=(t-e)/26,r=1<>>26,this.words[o]=a&=67108863}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),n(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;i--){var n=0|this.words[i],r=0|t.words[i];if(n!==r){nr&&(e=1);break}}return e},s.prototype.gtn=function(t){return 1===this.cmpn(t)},s.prototype.gt=function(t){return 1===this.cmp(t)},s.prototype.gten=function(t){return this.cmpn(t)>=0},s.prototype.gte=function(t){return this.cmp(t)>=0},s.prototype.ltn=function(t){return-1===this.cmpn(t)},s.prototype.lt=function(t){return-1===this.cmp(t)},s.prototype.lten=function(t){return this.cmpn(t)<=0},s.prototype.lte=function(t){return this.cmp(t)<=0},s.prototype.eqn=function(t){return 0===this.cmpn(t)},s.prototype.eq=function(t){return 0===this.cmp(t)},s.red=function(t){return new C(t)},s.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(t){return this.red=t,this},s.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},s.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},s.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},s.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},s.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},s.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},s.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},s.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new s(e,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function C(t){if("string"==typeof t){var e=s._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){C.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var t=new s(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},r(v,b),v.prototype.split=function(t,e){for(var i=4194303,n=Math.min(t.length,9),r=0;r>>22,s=o}t.words[r-10]=s>>>=22,t.length-=0===s&&t.length>10?10:9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i>>=26,t.words[i]=r,e=n}return 0!==e&&(t.words[t.length++]=e),t},s._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new x}return y[t]=e,e},C.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},C.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},C.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},C.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},C.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},C.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},C.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},C.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},C.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},C.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},C.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},C.prototype.isqr=function(t){return this.imul(t,t.clone())},C.prototype.sqr=function(t){return this.mul(t,t)},C.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var i=this.m.add(new s(1)).iushrn(2);return this.pow(t,i)}for(var r=this.m.subn(1),o=0;!r.isZero()&&0===r.andln(1);)o++,r.iushrn(1);n(!r.isZero());var a=new s(1).toRed(this),l=a.redNeg(),c=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new s(2*h*h).toRed(this);0!==this.pow(h,c).cmp(l);)h.redIAdd(l);for(var u=this.pow(h,r),d=this.pow(t,r.addn(1).iushrn(1)),p=this.pow(t,r),f=o;0!==p.cmp(a);){for(var m=p,g=0;0!==m.cmp(a);g++)m=m.redSqr();n(g=0;n--){for(var c=e.words[n],h=l-1;h>=0;h--){var u=c>>h&1;r!==i[0]&&(r=this.sqr(r)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===n&&0===h)&&(r=this.mul(r,i[o]),a=0,o=0)):a=0}l=26}return r},C.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},C.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},s.mont=function(t){return new A(t)},r(A,C),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),s=r;return r.cmp(this.m)>=0?s=r.isub(this.m):r.cmpn(0)<0&&(s=r.iadd(this.m)),s._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new s(0)._forceRed(this);var i=t.mul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=i.nmd(t),this)},5068:t=>{"use strict";var e,i="object"==typeof Reflect?Reflect:null,n=i&&"function"==typeof i.apply?i.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)};e=i&&"function"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var r=Number.isNaN||function(t){return t!=t};function s(){s.init.call(this)}t.exports=s,t.exports.once=function(t,e){return new Promise(function(i,n){function r(i){t.removeListener(e,s),n(i)}function s(){"function"==typeof t.removeListener&&t.removeListener("error",r),i([].slice.call(arguments))}m(t,e,s,{once:!0}),"error"!==e&&function(t,e,i){"function"==typeof t.on&&m(t,"error",e,{once:!0})}(t,r)})},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=10;function a(t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function l(t){return void 0===t._maxListeners?s.defaultMaxListeners:t._maxListeners}function c(t,e,i,n){var r,s,o;if(a(i),void 0===(s=t._events)?(s=t._events=Object.create(null),t._eventsCount=0):(void 0!==s.newListener&&(t.emit("newListener",e,i.listener?i.listener:i),s=t._events),o=s[e]),void 0===o)o=s[e]=i,++t._eventsCount;else if("function"==typeof o?o=s[e]=n?[i,o]:[o,i]:n?o.unshift(i):o.push(i),(r=l(t))>0&&o.length>r&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,console&&console.warn&&console.warn(c)}return t}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(t,e,i){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},r=h.bind(n);return r.listener=i,n.wrapFn=r,r}function d(t,e,i){var n=t._events;if(void 0===n)return[];var r=n[e];return void 0===r?[]:"function"==typeof r?i?[r.listener||r]:[r]:i?function(t){for(var e=new Array(t.length),i=0;i0&&(o=e[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var l=s[t];if(void 0===l)return!1;if("function"==typeof l)n(l,this,e);else{var c=l.length,h=f(l,c);for(i=0;i=0;s--)if(i[s]===e||i[s].listener===e){o=i[s].listener,r=s;break}if(r<0)return this;0===r?i.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},s.prototype.listeners=function(t){return d(this,t,!0)},s.prototype.rawListeners=function(t){return d(this,t,!1)},s.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},s.prototype.listenerCount=p,s.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},8386:(t,e,i)=>{var n=i(7015).Buffer,r=i(9233);t.exports=function(t,e,i,s){if(n.isBuffer(t)||(t=n.from(t,"binary")),e&&(n.isBuffer(e)||(e=n.from(e,"binary")),8!==e.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var o=i/8,a=n.alloc(o),l=n.alloc(s||0),c=n.alloc(0);o>0||s>0;){var h=new r;h.update(c),h.update(t),e&&h.update(e),c=h.digest();var u=0;if(o>0){var d=a.length-o;u=Math.min(o,c.length),c.copy(a,d,0,u),o-=u}if(u0){var p=l.length-s,f=Math.min(s,c.length-u);c.copy(l,p,u,u+f),s-=f}}return c.fill(0),{key:a,iv:l}}},7338:(t,e,i)=>{"use strict";var n=i(932).Buffer,r=i(7612).Transform;function s(t){r.call(this),this._block=n.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}i(5457)(s,r),s.prototype._transform=function(t,e,i){var n=null;try{this.update(t,e)}catch(r){n=r}i(n)},s.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(i){e=i}t(e)},s.prototype.update=function(t,e){if(function(t,e){if(!n.isBuffer(t)&&"string"!=typeof t)throw new TypeError("Data must be a string or a buffer")}(t),this._finalized)throw new Error("Digest already called");n.isBuffer(t)||(t=n.from(t,e));for(var i=this._block,r=0;this._blockOffset+t.length-r>=this._blockSize;){for(var s=this._blockOffset;s0;++o)this._length[o]+=a,(a=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*a);return this},s.prototype._update=function(){throw new Error("_update is not implemented")},s.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var i=0;i<4;++i)this._length[i]=0;return e},s.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=s},932:(t,e,i)=>{var n=i(3833),r=n.Buffer;function s(t,e){for(var i in t)e[i]=t[i]}function o(t,e,i){return r(t,e,i)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(s(n,e),e.Buffer=o),o.prototype=Object.create(r.prototype),s(r,o),o.from=function(t,e,i){if("number"==typeof t)throw new TypeError("Argument must not be a number");return r(t,e,i)},o.alloc=function(t,e,i){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=r(t);return void 0!==e?"string"==typeof i?n.fill(e,i):n.fill(e):n.fill(0),n},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},7749:(t,e,i)=>{var n=e;n.utils=i(9898),n.common=i(4901),n.sha=i(3205),n.ripemd=i(6425),n.hmac=i(4554),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},4901:(t,e,i)=>{"use strict";var n=i(9898),r=i(523);function s(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}e.BlockHash=s,s.prototype.update=function(t,e){if(t=n.toArray(t,e),this.pending=this.pending?this.pending.concat(t):t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var i=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-i,t.length),0===this.pending.length&&(this.pending=null),t=n.join32(t,0,t.length-i,this.endian);for(var r=0;r>>24&255,n[r++]=t>>>16&255,n[r++]=t>>>8&255,n[r++]=255&t}else for(n[r++]=255&t,n[r++]=t>>>8&255,n[r++]=t>>>16&255,n[r++]=t>>>24&255,n[r++]=0,n[r++]=0,n[r++]=0,n[r++]=0,s=8;s{"use strict";var n=i(9898),r=i(523);function s(t,e,i){if(!(this instanceof s))return new s(t,e,i);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(e,i))}t.exports=s,s.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),r(t.length<=this.blockSize);for(var e=t.length;e{"use strict";var n=i(9898),r=i(4901),s=n.rotl32,o=n.sum32,a=n.sum32_3,l=n.sum32_4,c=r.BlockHash;function h(){if(!(this instanceof h))return new h;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function u(t,e,i,n){return t<=15?e^i^n:t<=31?e&i|~e&n:t<=47?(e|~i)^n:t<=63?e&n|i&~n:e^(i|~n)}function d(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function p(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}n.inherits(h,c),e.ripemd160=h,h.blockSize=512,h.outSize=160,h.hmacStrength=192,h.padLength=64,h.prototype._update=function(t,e){for(var i=this.h[0],n=this.h[1],r=this.h[2],c=this.h[3],h=this.h[4],b=i,v=n,_=r,w=c,x=h,C=0;C<80;C++){var A=o(s(l(i,u(C,n,r,c),t[f[C]+e],d(C)),g[C]),h);i=h,h=c,c=s(r,10),r=n,n=A,A=o(s(l(b,u(79-C,v,_,w),t[m[C]+e],p(C)),y[C]),x),b=x,x=w,w=s(_,10),_=v,v=A}A=a(this.h[1],r,w),this.h[1]=a(this.h[2],c,x),this.h[2]=a(this.h[3],h,b),this.h[3]=a(this.h[4],i,v),this.h[4]=a(this.h[0],n,_),this.h[0]=A},h.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h,"little"):n.split32(this.h,"little")};var f=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],y=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},3205:(t,e,i)=>{"use strict";e.sha1=i(6126),e.sha224=i(4615),e.sha256=i(1801),e.sha384=i(8391),e.sha512=i(940)},6126:(t,e,i)=>{"use strict";var n=i(9898),r=i(4901),s=i(1866),o=n.rotl32,a=n.sum32,l=n.sum32_5,c=s.ft_1,h=r.BlockHash,u=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(d,h),t.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(t,e){for(var i=this.W,n=0;n<16;n++)i[n]=t[e+n];for(;n{"use strict";var n=i(9898),r=i(1801);function s(){if(!(this instanceof s))return new s;r.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}n.inherits(s,r),t.exports=s,s.blockSize=512,s.outSize=224,s.hmacStrength=192,s.padLength=64,s.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h.slice(0,7),"big"):n.split32(this.h.slice(0,7),"big")}},1801:(t,e,i)=>{"use strict";var n=i(9898),r=i(4901),s=i(1866),o=i(523),a=n.sum32,l=n.sum32_4,c=n.sum32_5,h=s.ch32,u=s.maj32,d=s.s0_256,p=s.s1_256,f=s.g0_256,m=s.g1_256,g=r.BlockHash,y=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function b(){if(!(this instanceof b))return new b;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=y,this.W=new Array(64)}n.inherits(b,g),t.exports=b,b.blockSize=512,b.outSize=256,b.hmacStrength=192,b.padLength=64,b.prototype._update=function(t,e){for(var i=this.W,n=0;n<16;n++)i[n]=t[e+n];for(;n{"use strict";var n=i(9898),r=i(940);function s(){if(!(this instanceof s))return new s;r.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}n.inherits(s,r),t.exports=s,s.blockSize=1024,s.outSize=384,s.hmacStrength=192,s.padLength=128,s.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h.slice(0,12),"big"):n.split32(this.h.slice(0,12),"big")}},940:(t,e,i)=>{"use strict";var n=i(9898),r=i(4901),s=i(523),o=n.rotr64_hi,a=n.rotr64_lo,l=n.shr64_hi,c=n.shr64_lo,h=n.sum64,u=n.sum64_hi,d=n.sum64_lo,p=n.sum64_4_hi,f=n.sum64_4_lo,m=n.sum64_5_hi,g=n.sum64_5_lo,y=r.BlockHash,b=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;y.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=b,this.W=new Array(160)}function _(t,e,i,n,r){var s=t&i^~t&r;return s<0&&(s+=4294967296),s}function w(t,e,i,n,r,s){var o=e&n^~e&s;return o<0&&(o+=4294967296),o}function x(t,e,i,n,r){var s=t&i^t&r^i&r;return s<0&&(s+=4294967296),s}function C(t,e,i,n,r,s){var o=e&n^e&s^n&s;return o<0&&(o+=4294967296),o}function A(t,e){var i=o(t,e,28)^o(e,t,2)^o(e,t,7);return i<0&&(i+=4294967296),i}function S(t,e){var i=a(t,e,28)^a(e,t,2)^a(e,t,7);return i<0&&(i+=4294967296),i}function E(t,e){var i=a(t,e,14)^a(t,e,18)^a(e,t,9);return i<0&&(i+=4294967296),i}function k(t,e){var i=o(t,e,1)^o(t,e,8)^l(t,e,7);return i<0&&(i+=4294967296),i}function T(t,e){var i=a(t,e,1)^a(t,e,8)^c(t,e,7);return i<0&&(i+=4294967296),i}function M(t,e){var i=a(t,e,19)^a(e,t,29)^c(t,e,6);return i<0&&(i+=4294967296),i}n.inherits(v,y),t.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(t,e){for(var i=this.W,n=0;n<32;n++)i[n]=t[e+n];for(;n{"use strict";var n=i(9898).rotr32;function r(t,e,i){return t&e^~t&i}function s(t,e,i){return t&e^t&i^e&i}function o(t,e,i){return t^e^i}e.ft_1=function(t,e,i,n){return 0===t?r(e,i,n):1===t||3===t?o(e,i,n):2===t?s(e,i,n):void 0},e.ch32=r,e.maj32=s,e.p32=o,e.s0_256=function(t){return n(t,2)^n(t,13)^n(t,22)},e.s1_256=function(t){return n(t,6)^n(t,11)^n(t,25)},e.g0_256=function(t){return n(t,7)^n(t,18)^t>>>3},e.g1_256=function(t){return n(t,17)^n(t,19)^t>>>10}},9898:(t,e,i)=>{"use strict";var n=i(523),r=i(5457);function s(t,e){return 55296==(64512&t.charCodeAt(e))&&!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1))}function o(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function a(t){return 1===t.length?"0"+t:t}function l(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}e.inherits=r,e.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var i=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),r=0;r>6|192,i[n++]=63&o|128):s(t,r)?(o=65536+((1023&o)<<10)+(1023&t.charCodeAt(++r)),i[n++]=o>>18|240,i[n++]=o>>12&63|128,i[n++]=o>>6&63|128,i[n++]=63&o|128):(i[n++]=o>>12|224,i[n++]=o>>6&63|128,i[n++]=63&o|128)}else for(r=0;r>>0;return o},e.split32=function(t,e){for(var i=new Array(4*t.length),n=0,r=0;n>>24,i[r+1]=s>>>16&255,i[r+2]=s>>>8&255,i[r+3]=255&s):(i[r+3]=s>>>24,i[r+2]=s>>>16&255,i[r+1]=s>>>8&255,i[r]=255&s)}return i},e.rotr32=function(t,e){return t>>>e|t<<32-e},e.rotl32=function(t,e){return t<>>32-e},e.sum32=function(t,e){return t+e>>>0},e.sum32_3=function(t,e,i){return t+e+i>>>0},e.sum32_4=function(t,e,i,n){return t+e+i+n>>>0},e.sum32_5=function(t,e,i,n,r){return t+e+i+n+r>>>0},e.sum64=function(t,e,i,n){var r=n+t[e+1]>>>0;t[e]=(r>>0,t[e+1]=r},e.sum64_hi=function(t,e,i,n){return(e+n>>>0>>0},e.sum64_lo=function(t,e,i,n){return e+n>>>0},e.sum64_4_hi=function(t,e,i,n,r,s,o,a){var l=0,c=e;return l+=(c=c+n>>>0)>>0)>>0)>>0},e.sum64_4_lo=function(t,e,i,n,r,s,o,a){return e+n+s+a>>>0},e.sum64_5_hi=function(t,e,i,n,r,s,o,a,l,c){var h=0,u=e;return h+=(u=u+n>>>0)>>0)>>0)>>0)>>0},e.sum64_5_lo=function(t,e,i,n,r,s,o,a,l,c){return e+n+s+a+c>>>0},e.rotr64_hi=function(t,e,i){return(e<<32-i|t>>>i)>>>0},e.rotr64_lo=function(t,e,i){return(t<<32-i|e>>>i)>>>0},e.shr64_hi=function(t,e,i){return t>>>i},e.shr64_lo=function(t,e,i){return(t<<32-i|e>>>i)>>>0}},1753:(t,e,i)=>{"use strict";var n=i(7749),r=i(5856),s=i(523);function o(t){if(!(this instanceof o))return new o(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=r.toArray(t.entropy,t.entropyEnc||"hex"),i=r.toArray(t.nonce,t.nonceEnc||"hex"),n=r.toArray(t.pers,t.persEnc||"hex");s(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,i,n)}t.exports=o,o.prototype._init=function(t,e,i){var n=t.concat(e).concat(i);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var r=0;r=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(i||[])),this._reseed=1},o.prototype.generate=function(t,e,i,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=i,i=e,e=null),i&&(i=r.toArray(i,n||"hex"),this._update(i));for(var s=[];s.length{e.read=function(t,e,i,n,r){var s,o,a=8*r-n-1,l=(1<>1,h=-7,u=i?r-1:0,d=i?-1:1,p=t[e+u];for(u+=d,s=p&(1<<-h)-1,p>>=-h,h+=a;h>0;s=256*s+t[e+u],u+=d,h-=8);for(o=s&(1<<-h)-1,s>>=-h,h+=n;h>0;o=256*o+t[e+u],u+=d,h-=8);if(0===s)s=1-c;else{if(s===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),s-=c}return(p?-1:1)*o*Math.pow(2,s-n)},e.write=function(t,e,i,n,r,s){var o,a,l,c=8*s-r-1,h=(1<>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,f=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=h):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(o++,l/=2),o+u>=h?(a=0,o=h):o+u>=1?(a=(e*l-1)*Math.pow(2,r),o+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,r),o=0));r>=8;t[i+p]=255&a,p+=f,a/=256,r-=8);for(o=o<0;t[i+p]=255&o,p+=f,o/=256,c-=8);t[i+p-f]|=128*m}},5457:t=>{t.exports="function"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:function(t,e){if(e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}}},6265:t=>{var e={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==e.call(t)}},9233:(t,e,i)=>{"use strict";var n=i(5457),r=i(7338),s=i(7015).Buffer,o=new Array(16);function a(){r.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function l(t,e){return t<>>32-e}function c(t,e,i,n,r,s,o){return l(t+(e&i|~e&n)+r+s|0,o)+e|0}function h(t,e,i,n,r,s,o){return l(t+(e&n|i&~n)+r+s|0,o)+e|0}function u(t,e,i,n,r,s,o){return l(t+(e^i^n)+r+s|0,o)+e|0}function d(t,e,i,n,r,s,o){return l(t+(i^(e|~n))+r+s|0,o)+e|0}n(a,r),a.prototype._update=function(){for(var t=o,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var i=this._a,n=this._b,r=this._c,s=this._d;i=c(i,n,r,s,t[0],3614090360,7),s=c(s,i,n,r,t[1],3905402710,12),r=c(r,s,i,n,t[2],606105819,17),n=c(n,r,s,i,t[3],3250441966,22),i=c(i,n,r,s,t[4],4118548399,7),s=c(s,i,n,r,t[5],1200080426,12),r=c(r,s,i,n,t[6],2821735955,17),n=c(n,r,s,i,t[7],4249261313,22),i=c(i,n,r,s,t[8],1770035416,7),s=c(s,i,n,r,t[9],2336552879,12),r=c(r,s,i,n,t[10],4294925233,17),n=c(n,r,s,i,t[11],2304563134,22),i=c(i,n,r,s,t[12],1804603682,7),s=c(s,i,n,r,t[13],4254626195,12),r=c(r,s,i,n,t[14],2792965006,17),i=h(i,n=c(n,r,s,i,t[15],1236535329,22),r,s,t[1],4129170786,5),s=h(s,i,n,r,t[6],3225465664,9),r=h(r,s,i,n,t[11],643717713,14),n=h(n,r,s,i,t[0],3921069994,20),i=h(i,n,r,s,t[5],3593408605,5),s=h(s,i,n,r,t[10],38016083,9),r=h(r,s,i,n,t[15],3634488961,14),n=h(n,r,s,i,t[4],3889429448,20),i=h(i,n,r,s,t[9],568446438,5),s=h(s,i,n,r,t[14],3275163606,9),r=h(r,s,i,n,t[3],4107603335,14),n=h(n,r,s,i,t[8],1163531501,20),i=h(i,n,r,s,t[13],2850285829,5),s=h(s,i,n,r,t[2],4243563512,9),r=h(r,s,i,n,t[7],1735328473,14),i=u(i,n=h(n,r,s,i,t[12],2368359562,20),r,s,t[5],4294588738,4),s=u(s,i,n,r,t[8],2272392833,11),r=u(r,s,i,n,t[11],1839030562,16),n=u(n,r,s,i,t[14],4259657740,23),i=u(i,n,r,s,t[1],2763975236,4),s=u(s,i,n,r,t[4],1272893353,11),r=u(r,s,i,n,t[7],4139469664,16),n=u(n,r,s,i,t[10],3200236656,23),i=u(i,n,r,s,t[13],681279174,4),s=u(s,i,n,r,t[0],3936430074,11),r=u(r,s,i,n,t[3],3572445317,16),n=u(n,r,s,i,t[6],76029189,23),i=u(i,n,r,s,t[9],3654602809,4),s=u(s,i,n,r,t[12],3873151461,11),r=u(r,s,i,n,t[15],530742520,16),i=d(i,n=u(n,r,s,i,t[2],3299628645,23),r,s,t[0],4096336452,6),s=d(s,i,n,r,t[7],1126891415,10),r=d(r,s,i,n,t[14],2878612391,15),n=d(n,r,s,i,t[5],4237533241,21),i=d(i,n,r,s,t[12],1700485571,6),s=d(s,i,n,r,t[3],2399980690,10),r=d(r,s,i,n,t[10],4293915773,15),n=d(n,r,s,i,t[1],2240044497,21),i=d(i,n,r,s,t[8],1873313359,6),s=d(s,i,n,r,t[15],4264355552,10),r=d(r,s,i,n,t[6],2734768916,15),n=d(n,r,s,i,t[13],1309151649,21),i=d(i,n,r,s,t[4],4149444226,6),s=d(s,i,n,r,t[11],3174756917,10),r=d(r,s,i,n,t[2],718787259,15),n=d(n,r,s,i,t[9],3951481745,21),this._a=this._a+i|0,this._b=this._b+n|0,this._c=this._c+r|0,this._d=this._d+s|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=s.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=a},2533:(t,e,i)=>{var n=i(4870),r=i(8520);function s(t){this.rand=t||new r.Rand}t.exports=s,s.create=function(t){return new s(t)},s.prototype._randbelow=function(t){var e=t.bitLength(),i=Math.ceil(e/8);do{var r=new n(this.rand.generate(i))}while(r.cmp(t)>=0);return r},s.prototype._randrange=function(t,e){var i=e.sub(t);return t.add(this._randbelow(i))},s.prototype.test=function(t,e,i){var r=t.bitLength(),s=n.mont(t),o=new n(1).toRed(s);e||(e=Math.max(1,r/48|0));for(var a=t.subn(1),l=0;!a.testn(l);l++);for(var c=t.shrn(l),h=a.toRed(s);e>0;e--){var u=this._randrange(new n(2),a);i&&i(u);var d=u.toRed(s).redPow(c);if(0!==d.cmp(o)&&0!==d.cmp(h)){for(var p=1;p0;e--){var h=this._randrange(new n(2),o),u=t.gcd(h);if(0!==u.cmpn(1))return u;var d=h.toRed(r).redPow(l);if(0!==d.cmp(s)&&0!==d.cmp(c)){for(var p=1;p=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function l(t,e,i){var n=a(t,i);return i-1>=e&&(n|=a(t,i-1)<<4),n}function c(t,e,i,n){for(var r=0,s=Math.min(t.length,i),o=e;o=49?a-49+10:a>=17?a-17+10:a}return r}s.isBN=function(t){return t instanceof s||null!==t&&"object"==typeof t&&t.constructor.wordSize===s.wordSize&&Array.isArray(t.words)},s.max=function(t,e){return t.cmp(e)>0?t:e},s.min=function(t,e){return t.cmp(e)<0?t:e},s.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var r=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r=0;r-=3)this.words[s]|=(o=t[r]|t[r-1]<<8|t[r-2]<<16)<>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===i)for(r=0,s=0;r>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this.strip()},s.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)r=l(t,e,n)<=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;this.strip()},s.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var n=0,r=1;r<=67108863;r*=e)n++;n--,r=r/e|0;for(var s=t.length-i,o=s%n,a=Math.min(s,s-o)+i,l=0,h=i;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,i){i.negative=e.negative^t.negative;var n=t.length+e.length|0;i.length=n,n=n-1|0;var r=0|t.words[0],s=0|e.words[0],o=r*s,a=o/67108864|0;i.words[0]=67108863&o;for(var l=1;l>>26,h=67108863&a,u=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=u;d++)c+=(o=(r=0|t.words[l-d|0])*(s=0|e.words[d])+h)/67108864|0,h=67108863&o;i.words[l]=0|h,a=0|c}return 0!==a?i.words[l]=0|a:i.length--,i.strip()}s.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var r=0,s=0,o=0;o>>24-r&16777215)||o!==this.length-1?h[6-l.length]+l+i:l+i,(r+=2)>=26&&(r-=26,o--)}for(0!==s&&(i=s.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var c=u[t],p=d[t];i="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modn(p).toString(t);i=(f=f.idivn(p)).isZero()?m+i:h[c-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},s.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},s.prototype.toArrayLike=function(t,e,i){var r=this.byteLength(),s=i||Math.max(1,r);n(r<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0"),this.strip();var o,a,l="le"===e,c=new t(s),h=this.clone();if(l){for(a=0;!h.isZero();a++)o=h.andln(255),h.iushrn(8),c[a]=o;for(;a=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},s.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},s.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},s.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},s.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;it.length?this.clone().iand(t):t.clone().iand(this)},s.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},s.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},s.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},s.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-i),this.strip()},s.prototype.notn=function(t){return this.clone().inotn(t)},s.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var i=t/26|0,r=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<t.length?(i=this,n=t):(i=t,n=this);for(var r=0,s=0;s>>26;for(;0!==r&&s>>26;if(this.length=i.length,0!==r)this.words[this.length]=r,this.length++;else if(i!==this)for(;st.length?this.clone().iadd(t):t.clone().iadd(this)},s.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,n,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(i=this,n=t):(i=t,n=this);for(var s=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==s&&o>26,this.words[o]=67108863&e;if(0===s&&o>>13,p=0|o[1],f=8191&p,m=p>>>13,g=0|o[2],y=8191&g,b=g>>>13,v=0|o[3],_=8191&v,w=v>>>13,x=0|o[4],C=8191&x,A=x>>>13,S=0|o[5],E=8191&S,k=S>>>13,T=0|o[6],M=8191&T,L=T>>>13,I=0|o[7],O=8191&I,D=I>>>13,R=0|o[8],N=8191&R,P=R>>>13,F=0|o[9],Z=8191&F,B=F>>>13,U=0|a[0],q=8191&U,z=U>>>13,H=0|a[1],Y=8191&H,G=H>>>13,j=0|a[2],V=8191&j,Q=j>>>13,W=0|a[3],J=8191&W,X=W>>>13,K=0|a[4],$=8191&K,tt=K>>>13,et=0|a[5],it=8191&et,nt=et>>>13,rt=0|a[6],st=8191&rt,ot=rt>>>13,at=0|a[7],lt=8191&at,ct=at>>>13,ht=0|a[8],ut=8191&ht,dt=ht>>>13,pt=0|a[9],ft=8191&pt,mt=pt>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(c+(n=Math.imul(u,q))|0)+((8191&(r=(r=Math.imul(u,z))+Math.imul(d,q)|0))<<13)|0;c=((s=Math.imul(d,z))+(r>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(f,q),r=(r=Math.imul(f,z))+Math.imul(m,q)|0,s=Math.imul(m,z);var yt=(c+(n=n+Math.imul(u,Y)|0)|0)+((8191&(r=(r=r+Math.imul(u,G)|0)+Math.imul(d,Y)|0))<<13)|0;c=((s=s+Math.imul(d,G)|0)+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),r=(r=Math.imul(y,z))+Math.imul(b,q)|0,s=Math.imul(b,z),n=n+Math.imul(f,Y)|0,r=(r=r+Math.imul(f,G)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,G)|0;var bt=(c+(n=n+Math.imul(u,V)|0)|0)+((8191&(r=(r=r+Math.imul(u,Q)|0)+Math.imul(d,V)|0))<<13)|0;c=((s=s+Math.imul(d,Q)|0)+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(_,q),r=(r=Math.imul(_,z))+Math.imul(w,q)|0,s=Math.imul(w,z),n=n+Math.imul(y,Y)|0,r=(r=r+Math.imul(y,G)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,G)|0,n=n+Math.imul(f,V)|0,r=(r=r+Math.imul(f,Q)|0)+Math.imul(m,V)|0,s=s+Math.imul(m,Q)|0;var vt=(c+(n=n+Math.imul(u,J)|0)|0)+((8191&(r=(r=r+Math.imul(u,X)|0)+Math.imul(d,J)|0))<<13)|0;c=((s=s+Math.imul(d,X)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(C,q),r=(r=Math.imul(C,z))+Math.imul(A,q)|0,s=Math.imul(A,z),n=n+Math.imul(_,Y)|0,r=(r=r+Math.imul(_,G)|0)+Math.imul(w,Y)|0,s=s+Math.imul(w,G)|0,n=n+Math.imul(y,V)|0,r=(r=r+Math.imul(y,Q)|0)+Math.imul(b,V)|0,s=s+Math.imul(b,Q)|0,n=n+Math.imul(f,J)|0,r=(r=r+Math.imul(f,X)|0)+Math.imul(m,J)|0,s=s+Math.imul(m,X)|0;var _t=(c+(n=n+Math.imul(u,$)|0)|0)+((8191&(r=(r=r+Math.imul(u,tt)|0)+Math.imul(d,$)|0))<<13)|0;c=((s=s+Math.imul(d,tt)|0)+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,q),r=(r=Math.imul(E,z))+Math.imul(k,q)|0,s=Math.imul(k,z),n=n+Math.imul(C,Y)|0,r=(r=r+Math.imul(C,G)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,G)|0,n=n+Math.imul(_,V)|0,r=(r=r+Math.imul(_,Q)|0)+Math.imul(w,V)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(y,J)|0,r=(r=r+Math.imul(y,X)|0)+Math.imul(b,J)|0,s=s+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,r=(r=r+Math.imul(f,tt)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(u,it)|0)|0)+((8191&(r=(r=r+Math.imul(u,nt)|0)+Math.imul(d,it)|0))<<13)|0;c=((s=s+Math.imul(d,nt)|0)+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(M,q),r=(r=Math.imul(M,z))+Math.imul(L,q)|0,s=Math.imul(L,z),n=n+Math.imul(E,Y)|0,r=(r=r+Math.imul(E,G)|0)+Math.imul(k,Y)|0,s=s+Math.imul(k,G)|0,n=n+Math.imul(C,V)|0,r=(r=r+Math.imul(C,Q)|0)+Math.imul(A,V)|0,s=s+Math.imul(A,Q)|0,n=n+Math.imul(_,J)|0,r=(r=r+Math.imul(_,X)|0)+Math.imul(w,J)|0,s=s+Math.imul(w,X)|0,n=n+Math.imul(y,$)|0,r=(r=r+Math.imul(y,tt)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,tt)|0,n=n+Math.imul(f,it)|0,r=(r=r+Math.imul(f,nt)|0)+Math.imul(m,it)|0,s=s+Math.imul(m,nt)|0;var xt=(c+(n=n+Math.imul(u,st)|0)|0)+((8191&(r=(r=r+Math.imul(u,ot)|0)+Math.imul(d,st)|0))<<13)|0;c=((s=s+Math.imul(d,ot)|0)+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(O,q),r=(r=Math.imul(O,z))+Math.imul(D,q)|0,s=Math.imul(D,z),n=n+Math.imul(M,Y)|0,r=(r=r+Math.imul(M,G)|0)+Math.imul(L,Y)|0,s=s+Math.imul(L,G)|0,n=n+Math.imul(E,V)|0,r=(r=r+Math.imul(E,Q)|0)+Math.imul(k,V)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(C,J)|0,r=(r=r+Math.imul(C,X)|0)+Math.imul(A,J)|0,s=s+Math.imul(A,X)|0,n=n+Math.imul(_,$)|0,r=(r=r+Math.imul(_,tt)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,tt)|0,n=n+Math.imul(y,it)|0,r=(r=r+Math.imul(y,nt)|0)+Math.imul(b,it)|0,s=s+Math.imul(b,nt)|0,n=n+Math.imul(f,st)|0,r=(r=r+Math.imul(f,ot)|0)+Math.imul(m,st)|0,s=s+Math.imul(m,ot)|0;var Ct=(c+(n=n+Math.imul(u,lt)|0)|0)+((8191&(r=(r=r+Math.imul(u,ct)|0)+Math.imul(d,lt)|0))<<13)|0;c=((s=s+Math.imul(d,ct)|0)+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(N,q),r=(r=Math.imul(N,z))+Math.imul(P,q)|0,s=Math.imul(P,z),n=n+Math.imul(O,Y)|0,r=(r=r+Math.imul(O,G)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,G)|0,n=n+Math.imul(M,V)|0,r=(r=r+Math.imul(M,Q)|0)+Math.imul(L,V)|0,s=s+Math.imul(L,Q)|0,n=n+Math.imul(E,J)|0,r=(r=r+Math.imul(E,X)|0)+Math.imul(k,J)|0,s=s+Math.imul(k,X)|0,n=n+Math.imul(C,$)|0,r=(r=r+Math.imul(C,tt)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,tt)|0,n=n+Math.imul(_,it)|0,r=(r=r+Math.imul(_,nt)|0)+Math.imul(w,it)|0,s=s+Math.imul(w,nt)|0,n=n+Math.imul(y,st)|0,r=(r=r+Math.imul(y,ot)|0)+Math.imul(b,st)|0,s=s+Math.imul(b,ot)|0,n=n+Math.imul(f,lt)|0,r=(r=r+Math.imul(f,ct)|0)+Math.imul(m,lt)|0,s=s+Math.imul(m,ct)|0;var At=(c+(n=n+Math.imul(u,ut)|0)|0)+((8191&(r=(r=r+Math.imul(u,dt)|0)+Math.imul(d,ut)|0))<<13)|0;c=((s=s+Math.imul(d,dt)|0)+(r>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(Z,q),r=(r=Math.imul(Z,z))+Math.imul(B,q)|0,s=Math.imul(B,z),n=n+Math.imul(N,Y)|0,r=(r=r+Math.imul(N,G)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,G)|0,n=n+Math.imul(O,V)|0,r=(r=r+Math.imul(O,Q)|0)+Math.imul(D,V)|0,s=s+Math.imul(D,Q)|0,n=n+Math.imul(M,J)|0,r=(r=r+Math.imul(M,X)|0)+Math.imul(L,J)|0,s=s+Math.imul(L,X)|0,n=n+Math.imul(E,$)|0,r=(r=r+Math.imul(E,tt)|0)+Math.imul(k,$)|0,s=s+Math.imul(k,tt)|0,n=n+Math.imul(C,it)|0,r=(r=r+Math.imul(C,nt)|0)+Math.imul(A,it)|0,s=s+Math.imul(A,nt)|0,n=n+Math.imul(_,st)|0,r=(r=r+Math.imul(_,ot)|0)+Math.imul(w,st)|0,s=s+Math.imul(w,ot)|0,n=n+Math.imul(y,lt)|0,r=(r=r+Math.imul(y,ct)|0)+Math.imul(b,lt)|0,s=s+Math.imul(b,ct)|0,n=n+Math.imul(f,ut)|0,r=(r=r+Math.imul(f,dt)|0)+Math.imul(m,ut)|0,s=s+Math.imul(m,dt)|0;var St=(c+(n=n+Math.imul(u,ft)|0)|0)+((8191&(r=(r=r+Math.imul(u,mt)|0)+Math.imul(d,ft)|0))<<13)|0;c=((s=s+Math.imul(d,mt)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(Z,Y),r=(r=Math.imul(Z,G))+Math.imul(B,Y)|0,s=Math.imul(B,G),n=n+Math.imul(N,V)|0,r=(r=r+Math.imul(N,Q)|0)+Math.imul(P,V)|0,s=s+Math.imul(P,Q)|0,n=n+Math.imul(O,J)|0,r=(r=r+Math.imul(O,X)|0)+Math.imul(D,J)|0,s=s+Math.imul(D,X)|0,n=n+Math.imul(M,$)|0,r=(r=r+Math.imul(M,tt)|0)+Math.imul(L,$)|0,s=s+Math.imul(L,tt)|0,n=n+Math.imul(E,it)|0,r=(r=r+Math.imul(E,nt)|0)+Math.imul(k,it)|0,s=s+Math.imul(k,nt)|0,n=n+Math.imul(C,st)|0,r=(r=r+Math.imul(C,ot)|0)+Math.imul(A,st)|0,s=s+Math.imul(A,ot)|0,n=n+Math.imul(_,lt)|0,r=(r=r+Math.imul(_,ct)|0)+Math.imul(w,lt)|0,s=s+Math.imul(w,ct)|0,n=n+Math.imul(y,ut)|0,r=(r=r+Math.imul(y,dt)|0)+Math.imul(b,ut)|0,s=s+Math.imul(b,dt)|0;var Et=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(r=(r=r+Math.imul(f,mt)|0)+Math.imul(m,ft)|0))<<13)|0;c=((s=s+Math.imul(m,mt)|0)+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(Z,V),r=(r=Math.imul(Z,Q))+Math.imul(B,V)|0,s=Math.imul(B,Q),n=n+Math.imul(N,J)|0,r=(r=r+Math.imul(N,X)|0)+Math.imul(P,J)|0,s=s+Math.imul(P,X)|0,n=n+Math.imul(O,$)|0,r=(r=r+Math.imul(O,tt)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,tt)|0,n=n+Math.imul(M,it)|0,r=(r=r+Math.imul(M,nt)|0)+Math.imul(L,it)|0,s=s+Math.imul(L,nt)|0,n=n+Math.imul(E,st)|0,r=(r=r+Math.imul(E,ot)|0)+Math.imul(k,st)|0,s=s+Math.imul(k,ot)|0,n=n+Math.imul(C,lt)|0,r=(r=r+Math.imul(C,ct)|0)+Math.imul(A,lt)|0,s=s+Math.imul(A,ct)|0,n=n+Math.imul(_,ut)|0,r=(r=r+Math.imul(_,dt)|0)+Math.imul(w,ut)|0,s=s+Math.imul(w,dt)|0;var kt=(c+(n=n+Math.imul(y,ft)|0)|0)+((8191&(r=(r=r+Math.imul(y,mt)|0)+Math.imul(b,ft)|0))<<13)|0;c=((s=s+Math.imul(b,mt)|0)+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(Z,J),r=(r=Math.imul(Z,X))+Math.imul(B,J)|0,s=Math.imul(B,X),n=n+Math.imul(N,$)|0,r=(r=r+Math.imul(N,tt)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,tt)|0,n=n+Math.imul(O,it)|0,r=(r=r+Math.imul(O,nt)|0)+Math.imul(D,it)|0,s=s+Math.imul(D,nt)|0,n=n+Math.imul(M,st)|0,r=(r=r+Math.imul(M,ot)|0)+Math.imul(L,st)|0,s=s+Math.imul(L,ot)|0,n=n+Math.imul(E,lt)|0,r=(r=r+Math.imul(E,ct)|0)+Math.imul(k,lt)|0,s=s+Math.imul(k,ct)|0,n=n+Math.imul(C,ut)|0,r=(r=r+Math.imul(C,dt)|0)+Math.imul(A,ut)|0,s=s+Math.imul(A,dt)|0;var Tt=(c+(n=n+Math.imul(_,ft)|0)|0)+((8191&(r=(r=r+Math.imul(_,mt)|0)+Math.imul(w,ft)|0))<<13)|0;c=((s=s+Math.imul(w,mt)|0)+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(Z,$),r=(r=Math.imul(Z,tt))+Math.imul(B,$)|0,s=Math.imul(B,tt),n=n+Math.imul(N,it)|0,r=(r=r+Math.imul(N,nt)|0)+Math.imul(P,it)|0,s=s+Math.imul(P,nt)|0,n=n+Math.imul(O,st)|0,r=(r=r+Math.imul(O,ot)|0)+Math.imul(D,st)|0,s=s+Math.imul(D,ot)|0,n=n+Math.imul(M,lt)|0,r=(r=r+Math.imul(M,ct)|0)+Math.imul(L,lt)|0,s=s+Math.imul(L,ct)|0,n=n+Math.imul(E,ut)|0,r=(r=r+Math.imul(E,dt)|0)+Math.imul(k,ut)|0,s=s+Math.imul(k,dt)|0;var Mt=(c+(n=n+Math.imul(C,ft)|0)|0)+((8191&(r=(r=r+Math.imul(C,mt)|0)+Math.imul(A,ft)|0))<<13)|0;c=((s=s+Math.imul(A,mt)|0)+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(Z,it),r=(r=Math.imul(Z,nt))+Math.imul(B,it)|0,s=Math.imul(B,nt),n=n+Math.imul(N,st)|0,r=(r=r+Math.imul(N,ot)|0)+Math.imul(P,st)|0,s=s+Math.imul(P,ot)|0,n=n+Math.imul(O,lt)|0,r=(r=r+Math.imul(O,ct)|0)+Math.imul(D,lt)|0,s=s+Math.imul(D,ct)|0,n=n+Math.imul(M,ut)|0,r=(r=r+Math.imul(M,dt)|0)+Math.imul(L,ut)|0,s=s+Math.imul(L,dt)|0;var Lt=(c+(n=n+Math.imul(E,ft)|0)|0)+((8191&(r=(r=r+Math.imul(E,mt)|0)+Math.imul(k,ft)|0))<<13)|0;c=((s=s+Math.imul(k,mt)|0)+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(Z,st),r=(r=Math.imul(Z,ot))+Math.imul(B,st)|0,s=Math.imul(B,ot),n=n+Math.imul(N,lt)|0,r=(r=r+Math.imul(N,ct)|0)+Math.imul(P,lt)|0,s=s+Math.imul(P,ct)|0,n=n+Math.imul(O,ut)|0,r=(r=r+Math.imul(O,dt)|0)+Math.imul(D,ut)|0,s=s+Math.imul(D,dt)|0;var It=(c+(n=n+Math.imul(M,ft)|0)|0)+((8191&(r=(r=r+Math.imul(M,mt)|0)+Math.imul(L,ft)|0))<<13)|0;c=((s=s+Math.imul(L,mt)|0)+(r>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(Z,lt),r=(r=Math.imul(Z,ct))+Math.imul(B,lt)|0,s=Math.imul(B,ct),n=n+Math.imul(N,ut)|0,r=(r=r+Math.imul(N,dt)|0)+Math.imul(P,ut)|0,s=s+Math.imul(P,dt)|0;var Ot=(c+(n=n+Math.imul(O,ft)|0)|0)+((8191&(r=(r=r+Math.imul(O,mt)|0)+Math.imul(D,ft)|0))<<13)|0;c=((s=s+Math.imul(D,mt)|0)+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(Z,ut),r=(r=Math.imul(Z,dt))+Math.imul(B,ut)|0,s=Math.imul(B,dt);var Dt=(c+(n=n+Math.imul(N,ft)|0)|0)+((8191&(r=(r=r+Math.imul(N,mt)|0)+Math.imul(P,ft)|0))<<13)|0;c=((s=s+Math.imul(P,mt)|0)+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Rt=(c+(n=Math.imul(Z,ft))|0)+((8191&(r=(r=Math.imul(Z,mt))+Math.imul(B,ft)|0))<<13)|0;return c=((s=Math.imul(B,mt))+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,l[0]=gt,l[1]=yt,l[2]=bt,l[3]=vt,l[4]=_t,l[5]=wt,l[6]=xt,l[7]=Ct,l[8]=At,l[9]=St,l[10]=Et,l[11]=kt,l[12]=Tt,l[13]=Mt,l[14]=Lt,l[15]=It,l[16]=Ot,l[17]=Dt,l[18]=Rt,0!==c&&(l[19]=c,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(f=p),s.prototype.mulTo=function(t,e){var i=this.length+t.length;return 10===this.length&&10===t.length?f(this,t,e):i<63?p(this,t,e):i<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var n=0,r=0,s=0;s>>26)|0)>>>26,o&=67108863}i.words[s]=a,n=o,o=r}return 0!==n?i.words[s]=n:i.length--,i.strip()}(this,t,e):m(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=s.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,i,n,r,s){for(var o=0;o>>=1)r++;return 1<>>=13),s>>>=13;for(o=2*e;o>=26,e+=r/67108864|0,e+=s>>>26,this.words[i]=67108863&s}return 0!==e&&(this.words[i]=e,this.length++),this},s.prototype.muln=function(t){return this.clone().imuln(t)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i>>n}return e}(t);if(0===e.length)return new s(1);for(var i=this,n=0;n=0);var e,i=t%26,r=(t-i)/26,s=67108863>>>26-i<<26-i;if(0!==i){var o=0;for(e=0;e>>26-i}o&&(this.words[e]=o,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var s=t%26,o=Math.min((t-s)/26,this.length),a=67108863^67108863>>>s<o)for(this.length-=o,c=0;c=0&&(0!==h||c>=r);c--){var u=0|this.words[c];this.words[c]=h<<26-s|u>>>s,h=u&a}return l&&0!==h&&(l.words[l.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(t,e,i){return n(0===this.negative),this.iushrn(t,e,i)},s.prototype.shln=function(t){return this.clone().ishln(t)},s.prototype.ushln=function(t){return this.clone().iushln(t)},s.prototype.shrn=function(t){return this.clone().ishrn(t)},s.prototype.ushrn=function(t){return this.clone().iushrn(t)},s.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;return!(this.length<=i||!(this.words[i]&1<=0);var e=t%26,i=(t-e)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=i?this:(0!==e&&i++,this.length=Math.min(i,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},s.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(a/67108864|0),this.words[r+i]=67108863&s}for(;r>26,this.words[r+i]=67108863&s;if(0===o)return this.strip();for(n(-1===o),o=0,r=0;r>26,this.words[r]=67108863&s;return this.negative=1,this.strip()},s.prototype._wordDiv=function(t,e){var i,n=this.clone(),r=t,o=0|r.words[r.length-1];0!=(i=26-this._countBits(o))&&(r=r.ushln(i),n.iushln(i),o=0|r.words[r.length-1]);var a,l=n.length-r.length;if("mod"!==e){(a=new s(null)).length=l+1,a.words=new Array(a.length);for(var c=0;c=0;u--){var d=67108864*(0|n.words[r.length+u])+(0|n.words[r.length+u-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(r,d,u);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(r,1,u),n.isZero()||(n.negative^=1);a&&(a.words[u]=d)}return a&&a.strip(),n.strip(),"div"!==e&&0!==i&&n.iushrn(i),{div:a||null,mod:n}},s.prototype.divmod=function(t,e,i){return n(!t.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(r=a.div.neg()),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.iadd(t)),{div:r,mod:o}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.isub(t)),{div:a.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new s(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new s(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new s(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,o,a},s.prototype.div=function(t){return this.divmod(t,"div",!1).div},s.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},s.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},s.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),r=t.andln(1),s=i.cmp(n);return s<0||1===r&&0===s?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},s.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,i=0,r=this.length-1;r>=0;r--)i=(e*i+(0|this.words[r]))%t;return i},s.prototype.idivn=function(t){n(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var r=(0|this.words[i])+67108864*e;this.words[i]=r/t|0,e=r%t}return this.strip()},s.prototype.divn=function(t){return this.clone().idivn(t)},s.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r=new s(1),o=new s(0),a=new s(0),l=new s(1),c=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++c;for(var h=i.clone(),u=e.clone();!e.isZero();){for(var d=0,p=1;0==(e.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(r.isOdd()||o.isOdd())&&(r.iadd(h),o.isub(u)),r.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(i.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(i.iushrn(f);f-- >0;)(a.isOdd()||l.isOdd())&&(a.iadd(h),l.isub(u)),a.iushrn(1),l.iushrn(1);e.cmp(i)>=0?(e.isub(i),r.isub(a),o.isub(l)):(i.isub(e),a.isub(r),l.isub(o))}return{a:a,b:l,gcd:i.iushln(c)}},s.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r,o=new s(1),a=new s(0),l=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var c=0,h=1;0==(e.words[0]&h)&&c<26;++c,h<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var u=0,d=1;0==(i.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(i.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(l),a.iushrn(1);e.cmp(i)>=0?(e.isub(i),o.isub(a)):(i.isub(e),a.isub(o))}return(r=0===e.cmpn(1)?o:a).cmpn(0)<0&&r.iadd(t),r},s.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var n=0;e.isEven()&&i.isEven();n++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var r=e.cmp(i);if(r<0){var s=e;e=i,i=s}else if(0===r||0===i.cmpn(1))break;e.isub(i)}return i.iushln(n)},s.prototype.invm=function(t){return this.egcd(t).a.umod(t)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(t){return this.words[0]&t},s.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,i=(t-e)/26,r=1<>>26,this.words[o]=a&=67108863}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),n(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;i--){var n=0|this.words[i],r=0|t.words[i];if(n!==r){nr&&(e=1);break}}return e},s.prototype.gtn=function(t){return 1===this.cmpn(t)},s.prototype.gt=function(t){return 1===this.cmp(t)},s.prototype.gten=function(t){return this.cmpn(t)>=0},s.prototype.gte=function(t){return this.cmp(t)>=0},s.prototype.ltn=function(t){return-1===this.cmpn(t)},s.prototype.lt=function(t){return-1===this.cmp(t)},s.prototype.lten=function(t){return this.cmpn(t)<=0},s.prototype.lte=function(t){return this.cmp(t)<=0},s.prototype.eqn=function(t){return 0===this.cmpn(t)},s.prototype.eq=function(t){return 0===this.cmp(t)},s.red=function(t){return new C(t)},s.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(t){return this.red=t,this},s.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},s.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},s.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},s.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},s.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},s.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},s.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},s.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new s(e,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function C(t){if("string"==typeof t){var e=s._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){C.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var t=new s(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},r(v,b),v.prototype.split=function(t,e){for(var i=4194303,n=Math.min(t.length,9),r=0;r>>22,s=o}t.words[r-10]=s>>>=22,t.length-=0===s&&t.length>10?10:9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i>>=26,t.words[i]=r,e=n}return 0!==e&&(t.words[t.length++]=e),t},s._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new x}return y[t]=e,e},C.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},C.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},C.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},C.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},C.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},C.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},C.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},C.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},C.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},C.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},C.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},C.prototype.isqr=function(t){return this.imul(t,t.clone())},C.prototype.sqr=function(t){return this.mul(t,t)},C.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var i=this.m.add(new s(1)).iushrn(2);return this.pow(t,i)}for(var r=this.m.subn(1),o=0;!r.isZero()&&0===r.andln(1);)o++,r.iushrn(1);n(!r.isZero());var a=new s(1).toRed(this),l=a.redNeg(),c=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new s(2*h*h).toRed(this);0!==this.pow(h,c).cmp(l);)h.redIAdd(l);for(var u=this.pow(h,r),d=this.pow(t,r.addn(1).iushrn(1)),p=this.pow(t,r),f=o;0!==p.cmp(a);){for(var m=p,g=0;0!==m.cmp(a);g++)m=m.redSqr();n(g=0;n--){for(var c=e.words[n],h=l-1;h>=0;h--){var u=c>>h&1;r!==i[0]&&(r=this.sqr(r)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===n&&0===h)&&(r=this.mul(r,i[o]),a=0,o=0)):a=0}l=26}return r},C.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},C.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},s.mont=function(t){return new A(t)},r(A,C),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),s=r;return r.cmp(this.m)>=0?s=r.isub(this.m):r.cmpn(0)<0&&(s=r.iadd(this.m)),s._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new s(0)._forceRed(this);var i=t.mul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=i.nmd(t),this)},523:t=>{function e(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=e,e.equal=function(t,e,i){if(t!=e)throw new Error(i||"Assertion failed: "+t+" != "+e)}},5856:(t,e)=>{"use strict";var i=e;function n(t){return 1===t.length?"0"+t:t}function r(t){for(var e="",i=0;i>8,o=255&r;s?i.push(s,o):i.push(o)}return i},i.zero2=n,i.toHex=r,i.encode=function(t,e){return"hex"===e?r(t):t}},7038:(t,e,i)=>{"use strict";i.d(e,{op:()=>st,$V:()=>ht,Xd:()=>ut});var n=i(9666),r=i(5960),s=(i(5446),i(9610)),o=i(9568),a=(i(6424),i(1096),i(1572)),l=i(1511);function c(t){return getComputedStyle(t)}function h(t,e){for(var i in e){var n=e[i];"number"==typeof n&&(n+="px"),t.style[i]=n}return t}function u(t){var e=document.createElement("div");return e.className=t,e}var d="undefined"!=typeof Element&&(Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector);function p(t,e){if(!d)throw new Error("No element matching method supported");return d.call(t,e)}function f(t){t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)}function m(t,e){return Array.prototype.filter.call(t.children,function(t){return p(t,e)})}var g=function(t){return"ps__thumb-"+t},y=function(t){return"ps__rail-"+t},b="ps__child--consume",v="ps--focus",_="ps--clicking",w=function(t){return"ps--active-"+t},x=function(t){return"ps--scrolling-"+t},C={x:null,y:null};function A(t,e){var i=t.element.classList,n=x(e);i.contains(n)?clearTimeout(C[e]):i.add(n)}function S(t,e){C[e]=setTimeout(function(){return t.isAlive&&t.element.classList.remove(x(e))},t.settings.scrollingThreshold)}var E=function(t){this.element=t,this.handlers={}},k={isEmpty:{configurable:!0}};E.prototype.bind=function(t,e){void 0===this.handlers[t]&&(this.handlers[t]=[]),this.handlers[t].push(e),this.element.addEventListener(t,e,!1)},E.prototype.unbind=function(t,e){var i=this;this.handlers[t]=this.handlers[t].filter(function(n){return!(!e||n===e)||(i.element.removeEventListener(t,n,!1),!1)})},E.prototype.unbindAll=function(){for(var t in this.handlers)this.unbind(t)},k.isEmpty.get=function(){var t=this;return Object.keys(this.handlers).every(function(e){return 0===t.handlers[e].length})},Object.defineProperties(E.prototype,k);var T=function(){this.eventElements=[]};function M(t){if("function"==typeof window.CustomEvent)return new CustomEvent(t);var e=document.createEvent("CustomEvent");return e.initCustomEvent(t,!1,!1,void 0),e}function L(t,e,i,n,r){var s;if(void 0===n&&(n=!0),void 0===r&&(r=!1),"top"===e)s=["contentHeight","containerHeight","scrollTop","y","up","down"];else{if("left"!==e)throw new Error("A proper axis should be provided");s=["contentWidth","containerWidth","scrollLeft","x","left","right"]}!function(t,e,i,n,r){var s=i[0],o=i[1],a=i[2],l=i[3],c=i[4],h=i[5];void 0===n&&(n=!0),void 0===r&&(r=!1);var u=t.element;t.reach[l]=null,u[a]<1&&(t.reach[l]="start"),u[a]>t[s]-t[o]-1&&(t.reach[l]="end"),e&&(u.dispatchEvent(M("ps-scroll-"+l)),e<0?u.dispatchEvent(M("ps-scroll-"+c)):e>0&&u.dispatchEvent(M("ps-scroll-"+h)),n&&function(t,e){A(t,e),S(t,e)}(t,l)),t.reach[l]&&(e||r)&&u.dispatchEvent(M("ps-"+l+"-reach-"+t.reach[l]))}(t,i,s,n,r)}function I(t){return parseInt(t,10)||0}T.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return e||(e=new E(t),this.eventElements.push(e)),e},T.prototype.bind=function(t,e,i){this.eventElement(t).bind(e,i)},T.prototype.unbind=function(t,e,i){var n=this.eventElement(t);n.unbind(e,i),n.isEmpty&&this.eventElements.splice(this.eventElements.indexOf(n),1)},T.prototype.unbindAll=function(){this.eventElements.forEach(function(t){return t.unbindAll()}),this.eventElements=[]},T.prototype.once=function(t,e,i){var n=this.eventElement(t),r=function(t){n.unbind(e,r),i(t)};n.bind(e,r)};var O={isWebKit:"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style,supportsTouch:"undefined"!=typeof window&&("ontouchstart"in window||"maxTouchPoints"in window.navigator&&window.navigator.maxTouchPoints>0||window.DocumentTouch&&document instanceof window.DocumentTouch),supportsIePointer:"undefined"!=typeof navigator&&navigator.msMaxTouchPoints,isChrome:"undefined"!=typeof navigator&&/Chrome/i.test(navigator&&navigator.userAgent)};function D(t){var e=t.element,i=Math.floor(e.scrollTop),n=e.getBoundingClientRect();t.containerWidth=Math.ceil(n.width),t.containerHeight=Math.ceil(n.height),t.contentWidth=e.scrollWidth,t.contentHeight=e.scrollHeight,e.contains(t.scrollbarXRail)||(m(e,y("x")).forEach(function(t){return f(t)}),e.appendChild(t.scrollbarXRail)),e.contains(t.scrollbarYRail)||(m(e,y("y")).forEach(function(t){return f(t)}),e.appendChild(t.scrollbarYRail)),!t.settings.suppressScrollX&&t.containerWidth+t.settings.scrollXMarginOffset=t.railXWidth-t.scrollbarXWidth&&(t.scrollbarXLeft=t.railXWidth-t.scrollbarXWidth),t.scrollbarYTop>=t.railYHeight-t.scrollbarYHeight&&(t.scrollbarYTop=t.railYHeight-t.scrollbarYHeight),function(t,e){var i={width:e.railXWidth},n=Math.floor(t.scrollTop);i.left=e.isRtl?e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:t.scrollLeft,e.isScrollbarXUsingBottom?i.bottom=e.scrollbarXBottom-n:i.top=e.scrollbarXTop+n,h(e.scrollbarXRail,i);var r={top:n,height:e.railYHeight};e.isScrollbarYUsingRight?r.right=e.isRtl?e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth-9:e.scrollbarYRight-t.scrollLeft:r.left=e.isRtl?e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:e.scrollbarYLeft+t.scrollLeft,h(e.scrollbarYRail,r),h(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),h(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}(e,t),t.scrollbarXActive?e.classList.add(w("x")):(e.classList.remove(w("x")),t.scrollbarXWidth=0,t.scrollbarXLeft=0,e.scrollLeft=!0===t.isRtl?t.contentWidth:0),t.scrollbarYActive?e.classList.add(w("y")):(e.classList.remove(w("y")),t.scrollbarYHeight=0,t.scrollbarYTop=0,e.scrollTop=0)}function R(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function N(t,e){var i=e[0],n=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],h=e[8],u=t.element,d=null,p=null,f=null;function m(e){e.touches&&e.touches[0]&&(e[r]=e.touches[0].pageY),u[l]=d+f*(e[r]-p),A(t,c),D(t),e.stopPropagation(),e.preventDefault()}function g(){S(t,c),t[h].classList.remove(_),t.event.unbind(t.ownerDocument,"mousemove",m)}function y(e,o){d=u[l],o&&e.touches&&(e[r]=e.touches[0].pageY),p=e[r],f=(t[n]-t[i])/(t[s]-t[a]),o?t.event.bind(t.ownerDocument,"touchmove",m):(t.event.bind(t.ownerDocument,"mousemove",m),t.event.once(t.ownerDocument,"mouseup",g),e.preventDefault()),t[h].classList.add(_),e.stopPropagation()}t.event.bind(t[o],"mousedown",function(t){y(t)}),t.event.bind(t[o],"touchstart",function(t){y(t,!0)})}var P={"click-rail":function(t){t.event.bind(t.scrollbarY,"mousedown",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarYRail,"mousedown",function(e){var i=e.pageY-window.pageYOffset-t.scrollbarYRail.getBoundingClientRect().top;t.element.scrollTop+=(i>t.scrollbarYTop?1:-1)*t.containerHeight,D(t),e.stopPropagation()}),t.event.bind(t.scrollbarX,"mousedown",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarXRail,"mousedown",function(e){var i=e.pageX-window.pageXOffset-t.scrollbarXRail.getBoundingClientRect().left;t.element.scrollLeft+=(i>t.scrollbarXLeft?1:-1)*t.containerWidth,D(t),e.stopPropagation()})},"drag-thumb":function(t){N(t,["containerWidth","contentWidth","pageX","railXWidth","scrollbarX","scrollbarXWidth","scrollLeft","x","scrollbarXRail"]),N(t,["containerHeight","contentHeight","pageY","railYHeight","scrollbarY","scrollbarYHeight","scrollTop","y","scrollbarYRail"])},keyboard:function(t){var e=t.element;t.event.bind(t.ownerDocument,"keydown",function(i){if(!(i.isDefaultPrevented&&i.isDefaultPrevented()||i.defaultPrevented)&&(p(e,":hover")||p(t.scrollbarX,":focus")||p(t.scrollbarY,":focus"))){var n,r=document.activeElement?document.activeElement:t.ownerDocument.activeElement;if(r){if("IFRAME"===r.tagName)r=r.contentDocument.activeElement;else for(;r.shadowRoot;)r=r.shadowRoot.activeElement;if(p(n=r,"input,[contenteditable]")||p(n,"select,[contenteditable]")||p(n,"textarea,[contenteditable]")||p(n,"button,[contenteditable]"))return}var s=0,o=0;switch(i.which){case 37:s=i.metaKey?-t.contentWidth:i.altKey?-t.containerWidth:-30;break;case 38:o=i.metaKey?t.contentHeight:i.altKey?t.containerHeight:30;break;case 39:s=i.metaKey?t.contentWidth:i.altKey?t.containerWidth:30;break;case 40:o=i.metaKey?-t.contentHeight:i.altKey?-t.containerHeight:-30;break;case 32:o=i.shiftKey?t.containerHeight:-t.containerHeight;break;case 33:o=t.containerHeight;break;case 34:o=-t.containerHeight;break;case 36:o=t.contentHeight;break;case 35:o=-t.contentHeight;break;default:return}t.settings.suppressScrollX&&0!==s||t.settings.suppressScrollY&&0!==o||(e.scrollTop-=o,e.scrollLeft+=s,D(t),function(i,n){var r=Math.floor(e.scrollTop);if(0===i){if(!t.scrollbarYActive)return!1;if(0===r&&n>0||r>=t.contentHeight-t.containerHeight&&n<0)return!t.settings.wheelPropagation}var s=e.scrollLeft;if(0===n){if(!t.scrollbarXActive)return!1;if(0===s&&i<0||s>=t.contentWidth-t.containerWidth&&i>0)return!t.settings.wheelPropagation}return!0}(s,o)&&i.preventDefault())}})},wheel:function(t){var e=t.element;function i(i){var n=function(t){var e=t.deltaX,i=-1*t.deltaY;return void 0!==e&&void 0!==i||(e=-1*t.wheelDeltaX/6,i=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,i*=10),e!=e&&i!=i&&(e=0,i=t.wheelDelta),t.shiftKey?[-i,-e]:[e,i]}(i),r=n[0],s=n[1];if(!function(t,i,n){if(!O.isWebKit&&e.querySelector("select:focus"))return!0;if(!e.contains(t))return!1;for(var r=t;r&&r!==e;){if(r.classList.contains(b))return!0;var s=c(r);if(n&&s.overflowY.match(/(scroll|auto)/)){var o=r.scrollHeight-r.clientHeight;if(o>0&&(r.scrollTop>0&&n<0||r.scrollTop0))return!0}if(i&&s.overflowX.match(/(scroll|auto)/)){var a=r.scrollWidth-r.clientWidth;if(a>0&&(r.scrollLeft>0&&i<0||r.scrollLeft0))return!0}r=r.parentNode}return!1}(i.target,r,s)){var o=!1;t.settings.useBothWheelAxes?t.scrollbarYActive&&!t.scrollbarXActive?(s?e.scrollTop-=s*t.settings.wheelSpeed:e.scrollTop+=r*t.settings.wheelSpeed,o=!0):t.scrollbarXActive&&!t.scrollbarYActive&&(r?e.scrollLeft+=r*t.settings.wheelSpeed:e.scrollLeft-=s*t.settings.wheelSpeed,o=!0):(e.scrollTop-=s*t.settings.wheelSpeed,e.scrollLeft+=r*t.settings.wheelSpeed),D(t),(o=o||function(i,n){var r=Math.floor(e.scrollTop),s=0===e.scrollTop,o=r+e.offsetHeight===e.scrollHeight,a=0===e.scrollLeft,l=e.scrollLeft+e.offsetWidth===e.scrollWidth;return!(Math.abs(n)>Math.abs(i)?s||o:a||l)||!t.settings.wheelPropagation}(r,s))&&!i.ctrlKey&&(i.stopPropagation(),i.preventDefault())}}void 0!==window.onwheel?t.event.bind(e,"wheel",i):void 0!==window.onmousewheel&&t.event.bind(e,"mousewheel",i)},touch:function(t){if(O.supportsTouch||O.supportsIePointer){var e=t.element,i={},n=0,r={},s=null;O.supportsTouch?(t.event.bind(e,"touchstart",h),t.event.bind(e,"touchmove",u),t.event.bind(e,"touchend",d)):O.supportsIePointer&&(window.PointerEvent?(t.event.bind(e,"pointerdown",h),t.event.bind(e,"pointermove",u),t.event.bind(e,"pointerup",d)):window.MSPointerEvent&&(t.event.bind(e,"MSPointerDown",h),t.event.bind(e,"MSPointerMove",u),t.event.bind(e,"MSPointerUp",d)))}function o(i,n){e.scrollTop-=n,e.scrollLeft-=i,D(t)}function a(t){return t.targetTouches?t.targetTouches[0]:t}function l(t){return!(t.pointerType&&"pen"===t.pointerType&&0===t.buttons||(!t.targetTouches||1!==t.targetTouches.length)&&(!t.pointerType||"mouse"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE))}function h(t){if(l(t)){var e=a(t);i.pageX=e.pageX,i.pageY=e.pageY,n=(new Date).getTime(),null!==s&&clearInterval(s)}}function u(s){if(l(s)){var h=a(s),u={pageX:h.pageX,pageY:h.pageY},d=u.pageX-i.pageX,p=u.pageY-i.pageY;if(function(t,i,n){if(!e.contains(t))return!1;for(var r=t;r&&r!==e;){if(r.classList.contains(b))return!0;var s=c(r);if(n&&s.overflowY.match(/(scroll|auto)/)){var o=r.scrollHeight-r.clientHeight;if(o>0&&(r.scrollTop>0&&n<0||r.scrollTop0))return!0}if(i&&s.overflowX.match(/(scroll|auto)/)){var a=r.scrollWidth-r.clientWidth;if(a>0&&(r.scrollLeft>0&&i<0||r.scrollLeft0))return!0}r=r.parentNode}return!1}(s.target,d,p))return;o(d,p),i=u;var f=(new Date).getTime(),m=f-n;m>0&&(r.x=d/m,r.y=p/m,n=f),function(i,n){var r=Math.floor(e.scrollTop),s=e.scrollLeft,o=Math.abs(i),a=Math.abs(n);if(a>o){if(n<0&&r===t.contentHeight-t.containerHeight||n>0&&0===r)return 0===window.scrollY&&n>0&&O.isChrome}else if(o>a&&(i<0&&s===t.contentWidth-t.containerWidth||i>0&&0===s))return!0;return!0}(d,p)&&s.preventDefault()}}function d(){t.settings.swipeEasing&&(clearInterval(s),s=setInterval(function(){t.isInitialized?clearInterval(s):r.x||r.y?Math.abs(r.x)<.01&&Math.abs(r.y)<.01?clearInterval(s):(o(30*r.x,30*r.y),r.x*=.8,r.y*=.8):clearInterval(s)},10))}}},F=function(t,e){var i=this;if(void 0===e&&(e={}),"string"==typeof t&&(t=document.querySelector(t)),!t||!t.nodeName)throw new Error("no element is specified to initialize PerfectScrollbar");for(var n in this.element=t,t.classList.add("ps"),this.settings={handlers:["click-rail","drag-thumb","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollingThreshold:1e3,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipeEasing:!0,useBothWheelAxes:!1,wheelPropagation:!0,wheelSpeed:1},e)this.settings[n]=e[n];this.containerWidth=null,this.containerHeight=null,this.contentWidth=null,this.contentHeight=null;var r,s,o=function(){return t.classList.add(v)},a=function(){return t.classList.remove(v)};this.isRtl="rtl"===c(t).direction,!0===this.isRtl&&t.classList.add("ps__rtl"),this.isNegativeScroll=(s=t.scrollLeft,t.scrollLeft=-1,r=t.scrollLeft<0,t.scrollLeft=s,r),this.negativeScrollAdjustment=this.isNegativeScroll?t.scrollWidth-t.clientWidth:0,this.event=new T,this.ownerDocument=t.ownerDocument||document,this.scrollbarXRail=u(y("x")),t.appendChild(this.scrollbarXRail),this.scrollbarX=u(g("x")),this.scrollbarXRail.appendChild(this.scrollbarX),this.scrollbarX.setAttribute("tabindex",0),this.event.bind(this.scrollbarX,"focus",o),this.event.bind(this.scrollbarX,"blur",a),this.scrollbarXActive=null,this.scrollbarXWidth=null,this.scrollbarXLeft=null;var l=c(this.scrollbarXRail);this.scrollbarXBottom=parseInt(l.bottom,10),isNaN(this.scrollbarXBottom)?(this.isScrollbarXUsingBottom=!1,this.scrollbarXTop=I(l.top)):this.isScrollbarXUsingBottom=!0,this.railBorderXWidth=I(l.borderLeftWidth)+I(l.borderRightWidth),h(this.scrollbarXRail,{display:"block"}),this.railXMarginWidth=I(l.marginLeft)+I(l.marginRight),h(this.scrollbarXRail,{display:""}),this.railXWidth=null,this.railXRatio=null,this.scrollbarYRail=u(y("y")),t.appendChild(this.scrollbarYRail),this.scrollbarY=u(g("y")),this.scrollbarYRail.appendChild(this.scrollbarY),this.scrollbarY.setAttribute("tabindex",0),this.event.bind(this.scrollbarY,"focus",o),this.event.bind(this.scrollbarY,"blur",a),this.scrollbarYActive=null,this.scrollbarYHeight=null,this.scrollbarYTop=null;var d=c(this.scrollbarYRail);this.scrollbarYRight=parseInt(d.right,10),isNaN(this.scrollbarYRight)?(this.isScrollbarYUsingRight=!1,this.scrollbarYLeft=I(d.left)):this.isScrollbarYUsingRight=!0,this.scrollbarYOuterWidth=this.isRtl?function(t){var e=c(t);return I(e.width)+I(e.paddingLeft)+I(e.paddingRight)+I(e.borderLeftWidth)+I(e.borderRightWidth)}(this.scrollbarY):null,this.railBorderYWidth=I(d.borderTopWidth)+I(d.borderBottomWidth),h(this.scrollbarYRail,{display:"block"}),this.railYMarginHeight=I(d.marginTop)+I(d.marginBottom),h(this.scrollbarYRail,{display:""}),this.railYHeight=null,this.railYRatio=null,this.reach={x:t.scrollLeft<=0?"start":t.scrollLeft>=this.contentWidth-this.containerWidth?"end":null,y:t.scrollTop<=0?"start":t.scrollTop>=this.contentHeight-this.containerHeight?"end":null},this.isAlive=!0,this.settings.handlers.forEach(function(t){return P[t](i)}),this.lastScrollTop=Math.floor(t.scrollTop),this.lastScrollLeft=t.scrollLeft,this.event.bind(this.element,"scroll",function(t){return i.onScroll(t)}),D(this)};F.prototype.update=function(){this.isAlive&&(this.negativeScrollAdjustment=this.isNegativeScroll?this.element.scrollWidth-this.element.clientWidth:0,h(this.scrollbarXRail,{display:"block"}),h(this.scrollbarYRail,{display:"block"}),this.railXMarginWidth=I(c(this.scrollbarXRail).marginLeft)+I(c(this.scrollbarXRail).marginRight),this.railYMarginHeight=I(c(this.scrollbarYRail).marginTop)+I(c(this.scrollbarYRail).marginBottom),h(this.scrollbarXRail,{display:"none"}),h(this.scrollbarYRail,{display:"none"}),D(this),L(this,"top",0,!1,!0),L(this,"left",0,!1,!0),h(this.scrollbarXRail,{display:""}),h(this.scrollbarYRail,{display:""}))},F.prototype.onScroll=function(t){this.isAlive&&(D(this),L(this,"top",this.element.scrollTop-this.lastScrollTop),L(this,"left",this.element.scrollLeft-this.lastScrollLeft),this.lastScrollTop=Math.floor(this.element.scrollTop),this.lastScrollLeft=this.element.scrollLeft)},F.prototype.destroy=function(){this.isAlive&&(this.event.unbindAll(),f(this.scrollbarX),f(this.scrollbarY),f(this.scrollbarXRail),f(this.scrollbarYRail),this.removePsClasses(),this.element=null,this.scrollbarX=null,this.scrollbarY=null,this.scrollbarXRail=null,this.scrollbarYRail=null,this.isAlive=!1)},F.prototype.removePsClasses=function(){this.element.className=this.element.className.split(" ").filter(function(t){return!t.match(/^ps([-_].+|)$/)}).join(" ")};const Z=F;var B=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var i=-1;return t.some(function(t,n){return t[0]===e&&(i=n,!0)}),i}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var i=t(this.__entries__,e),n=this.__entries__[i];return n&&n[1]},e.prototype.set=function(e,i){var n=t(this.__entries__,e);~n?this.__entries__[n][1]=i:this.__entries__.push([e,i])},e.prototype.delete=function(e){var i=this.__entries__,n=t(i,e);~n&&i.splice(n,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var i=0,n=this.__entries__;i0},t.prototype.connect_=function(){U&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Y?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){U&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,i=void 0===e?"":e;H.some(function(t){return!!~i.indexOf(t)})&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),j=function(t,e){for(var i=0,n=Object.keys(e);i0},t}(),it="undefined"!=typeof WeakMap?new WeakMap:new B,nt=function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var i=G.getInstance(),n=new et(e,i,this);it.set(this,n)};["observe","unobserve","disconnect"].forEach(function(t){nt.prototype[t]=function(){var e;return(e=it.get(this))[t].apply(e,arguments)}});const rt=void 0!==q.ResizeObserver?q.ResizeObserver:nt,st=new a.OlP("PERFECT_SCROLLBAR_CONFIG");class ot{constructor(t,e,i,n){this.x=t,this.y=e,this.w=i,this.h=n}}class at{constructor(t,e){this.x=t,this.y=e}}const lt=["psScrollY","psScrollX","psScrollUp","psScrollDown","psScrollLeft","psScrollRight","psYReachEnd","psYReachStart","psXReachEnd","psXReachStart"];class ct{constructor(t={}){this.assign(t)}assign(t={}){for(const e in t)this[e]=t[e]}}let ht=(()=>{class t{constructor(t,e,i,r,s){this.zone=t,this.differs=e,this.elementRef=i,this.platformId=r,this.defaults=s,this.instance=null,this.ro=null,this.timeout=null,this.animation=null,this.configDiff=null,this.ngDestroy=new n.x,this.disabled=!1,this.psScrollY=new a.vpe,this.psScrollX=new a.vpe,this.psScrollUp=new a.vpe,this.psScrollDown=new a.vpe,this.psScrollLeft=new a.vpe,this.psScrollRight=new a.vpe,this.psYReachEnd=new a.vpe,this.psYReachStart=new a.vpe,this.psXReachEnd=new a.vpe,this.psXReachStart=new a.vpe}ngOnInit(){if(!this.disabled&&(0,l.NF)(this.platformId)){const t=new ct(this.defaults);t.assign(this.config),this.zone.runOutsideAngular(()=>{this.instance=new Z(this.elementRef.nativeElement,t)}),this.configDiff||(this.configDiff=this.differs.find(this.config||{}).create(),this.configDiff.diff(this.config||{})),this.zone.runOutsideAngular(()=>{this.ro=new rt(()=>{this.update()}),this.elementRef.nativeElement.children[0]&&this.ro.observe(this.elementRef.nativeElement.children[0]),this.ro.observe(this.elementRef.nativeElement)}),this.zone.runOutsideAngular(()=>{lt.forEach(t=>{const e=t.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`);(0,r.R)(this.elementRef.nativeElement,e).pipe((0,s.e)(20),(0,o.R)(this.ngDestroy)).subscribe(e=>{this[t].emit(e)})})})}}ngOnDestroy(){(0,l.NF)(this.platformId)&&(this.ngDestroy.next(),this.ngDestroy.complete(),this.ro&&this.ro.disconnect(),this.timeout&&"undefined"!=typeof window&&window.clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.instance&&this.instance.destroy()}),this.instance=null)}ngDoCheck(){!this.disabled&&this.configDiff&&(0,l.NF)(this.platformId)&&this.configDiff.diff(this.config||{})&&(this.ngOnDestroy(),this.ngOnInit())}ngOnChanges(t){t.disabled&&!t.disabled.isFirstChange()&&(0,l.NF)(this.platformId)&&t.disabled.currentValue!==t.disabled.previousValue&&(!0===t.disabled.currentValue?this.ngOnDestroy():!1===t.disabled.currentValue&&this.ngOnInit())}ps(){return this.instance}update(){"undefined"!=typeof window&&(this.timeout&&window.clearTimeout(this.timeout),this.timeout=window.setTimeout(()=>{if(!this.disabled&&this.configDiff)try{this.zone.runOutsideAngular(()=>{this.instance&&this.instance.update()})}catch(t){}},0))}geometry(t="scroll"){return new ot(this.elementRef.nativeElement[t+"Left"],this.elementRef.nativeElement[t+"Top"],this.elementRef.nativeElement[t+"Width"],this.elementRef.nativeElement[t+"Height"])}position(t=!1){return!t&&this.instance?new at(this.instance.reach.x||0,this.instance.reach.y||0):new at(this.elementRef.nativeElement.scrollLeft,this.elementRef.nativeElement.scrollTop)}scrollable(t="any"){const e=this.elementRef.nativeElement;return"any"===t?e.classList.contains("ps--active-x")||e.classList.contains("ps--active-y"):"both"===t?e.classList.contains("ps--active-x")&&e.classList.contains("ps--active-y"):e.classList.contains("ps--active-"+t)}scrollTo(t,e,i){this.disabled||(null==e&&null==i?this.animateScrolling("scrollTop",t,i):(null!=t&&this.animateScrolling("scrollLeft",t,i),null!=e&&this.animateScrolling("scrollTop",e,i)))}scrollToX(t,e){this.animateScrolling("scrollLeft",t,e)}scrollToY(t,e){this.animateScrolling("scrollTop",t,e)}scrollToTop(t,e){this.animateScrolling("scrollTop",t||0,e)}scrollToLeft(t,e){this.animateScrolling("scrollLeft",t||0,e)}scrollToRight(t,e){this.animateScrolling("scrollLeft",this.elementRef.nativeElement.scrollWidth-this.elementRef.nativeElement.clientWidth-(t||0),e)}scrollToBottom(t,e){this.animateScrolling("scrollTop",this.elementRef.nativeElement.scrollHeight-this.elementRef.nativeElement.clientHeight-(t||0),e)}scrollToElement(t,e,i){if("string"==typeof t&&(t=this.elementRef.nativeElement.querySelector(t)),t){const n=t.getBoundingClientRect(),r=this.elementRef.nativeElement.getBoundingClientRect();this.elementRef.nativeElement.classList.contains("ps--active-x")&&this.animateScrolling("scrollLeft",n.left-r.left+this.elementRef.nativeElement.scrollLeft+(e||0),i),this.elementRef.nativeElement.classList.contains("ps--active-y")&&this.animateScrolling("scrollTop",n.top-r.top+this.elementRef.nativeElement.scrollTop+(e||0),i)}}animateScrolling(t,e,i){if(this.animation&&(window.cancelAnimationFrame(this.animation),this.animation=null),i&&"undefined"!=typeof window){if(e!==this.elementRef.nativeElement[t]){let n=0,r=0,s=performance.now(),o=this.elementRef.nativeElement[t];const a=(o-e)/2,l=c=>{r+=Math.PI/(i/(c-s)),n=Math.round(e+a+a*Math.cos(r)),this.elementRef.nativeElement[t]===o&&(r>=Math.PI?this.animateScrolling(t,e,0):(this.elementRef.nativeElement[t]=n,o=this.elementRef.nativeElement[t],s=c,this.animation=window.requestAnimationFrame(l)))};window.requestAnimationFrame(l)}}else this.elementRef.nativeElement[t]=e}}return t.\u0275fac=function(e){return new(e||t)(a.Y36(a.R0b),a.Y36(a.aQg),a.Y36(a.SBq),a.Y36(a.Lbi),a.Y36(st,8))},t.\u0275dir=a.lG2({type:t,selectors:[["","perfectScrollbar",""]],inputs:{disabled:"disabled",config:["perfectScrollbar","config"]},outputs:{psScrollY:"psScrollY",psScrollX:"psScrollX",psScrollUp:"psScrollUp",psScrollDown:"psScrollDown",psScrollLeft:"psScrollLeft",psScrollRight:"psScrollRight",psYReachEnd:"psYReachEnd",psYReachStart:"psYReachStart",psXReachEnd:"psXReachEnd",psXReachStart:"psXReachStart"},exportAs:["ngxPerfectScrollbar"],features:[a.TTD]}),t})(),ut=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=a.oAB({type:t}),t.\u0275inj=a.cJS({imports:[[l.ez],l.ez]}),t})()},4499:(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(5097);Object.keys(n).forEach(function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},6730:(t,e,i)=>{"use strict";var n=i(6309);e.certificate=i(8840);var r=n.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});e.RSAPrivateKey=r;var s=n.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});e.RSAPublicKey=s;var o=n.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(a),this.key("subjectPublicKey").bitstr())});e.PublicKey=o;var a=n.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),l=n.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(a),this.key("subjectPrivateKey").octstr())});e.PrivateKey=l;var c=n.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});e.EncryptedPrivateKey=c;var h=n.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});e.DSAPrivateKey=h,e.DSAparam=n.define("DSAparam",function(){this.int()});var u=n.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(d),this.key("publicKey").optional().explicit(1).bitstr())});e.ECPrivateKey=u;var d=n.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});e.signature=n.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},8840:(t,e,i)=>{"use strict";var n=i(6309),r=n.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),s=n.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),o=n.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())}),a=n.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(o),this.key("subjectPublicKey").bitstr())}),l=n.define("RelativeDistinguishedName",function(){this.setof(s)}),c=n.define("RDNSequence",function(){this.seqof(l)}),h=n.define("Name",function(){this.choice({rdnSequence:this.use(c)})}),u=n.define("Validity",function(){this.seq().obj(this.key("notBefore").use(r),this.key("notAfter").use(r))}),d=n.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),p=n.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(o),this.key("issuer").use(h),this.key("validity").use(u),this.key("subject").use(h),this.key("subjectPublicKeyInfo").use(a),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(d).optional())}),f=n.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(p),this.key("signatureAlgorithm").use(o),this.key("signatureValue").bitstr())});t.exports=f},4153:(t,e,i)=>{var n=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,r=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,s=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,o=i(8386),a=i(3079),l=i(7015).Buffer;t.exports=function(t,e){var i,c=t.toString(),h=c.match(n);if(h){var u="aes"+h[1],d=l.from(h[2],"hex"),p=l.from(h[3].replace(/[\r\n]/g,""),"base64"),f=o(e,d.slice(0,8),parseInt(h[1],10)).key,m=[],g=a.createDecipheriv(u,f,d);m.push(g.update(p)),m.push(g.final()),i=l.concat(m)}else{var y=c.match(s);i=l.from(y[2].replace(/[\r\n]/g,""),"base64")}return{tag:c.match(r)[1],data:i}}},2291:(t,e,i)=>{var n=i(6730),r=i(873),s=i(4153),o=i(3079),a=i(8094),l=i(7015).Buffer;function c(t){var e;"object"!=typeof t||l.isBuffer(t)||(e=t.passphrase,t=t.key),"string"==typeof t&&(t=l.from(t));var i,c,h=s(t,e),u=h.tag,d=h.data;switch(u){case"CERTIFICATE":c=n.certificate.decode(d,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(c||(c=n.PublicKey.decode(d,"der")),i=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPublicKey.decode(c.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return c.subjectPrivateKey=c.subjectPublicKey,{type:"ec",data:c};case"1.2.840.10040.4.1":return c.algorithm.params.pub_key=n.DSAparam.decode(c.subjectPublicKey.data,"der"),{type:"dsa",data:c.algorithm.params};default:throw new Error("unknown key id "+i)}case"ENCRYPTED PRIVATE KEY":d=function(t,e){var i=t.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),s=r[t.algorithm.decrypt.cipher.algo.join(".")],c=t.algorithm.decrypt.cipher.iv,h=t.subjectPrivateKey,u=parseInt(s.split("-")[1],10)/8,d=a.pbkdf2Sync(e,i,n,u,"sha1"),p=o.createDecipheriv(s,d,c),f=[];return f.push(p.update(h)),f.push(p.final()),l.concat(f)}(d=n.EncryptedPrivateKey.decode(d,"der"),e);case"PRIVATE KEY":switch(i=(c=n.PrivateKey.decode(d,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPrivateKey.decode(c.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:c.algorithm.curve,privateKey:n.ECPrivateKey.decode(c.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return c.algorithm.params.priv_key=n.DSAparam.decode(c.subjectPrivateKey,"der"),{type:"dsa",params:c.algorithm.params};default:throw new Error("unknown key id "+i)}case"RSA PUBLIC KEY":return n.RSAPublicKey.decode(d,"der");case"RSA PRIVATE KEY":return n.RSAPrivateKey.decode(d,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:n.DSAPrivateKey.decode(d,"der")};case"EC PRIVATE KEY":return{curve:(d=n.ECPrivateKey.decode(d,"der")).parameters.value,privateKey:d.privateKey};default:throw new Error("unknown key type "+u)}}t.exports=c,c.signature=n.signature},8094:(t,e,i)=>{e.pbkdf2=i(2795),e.pbkdf2Sync=i(4315)},2795:(t,e,i)=>{var n,r,s=i(7015).Buffer,o=i(5456),a=i(7072),l=i(4315),c=i(6123),h=global.crypto&&global.crypto.subtle,u={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},d=[];function p(){return r||(r=global.process&&global.process.nextTick?global.process.nextTick:global.queueMicrotask?global.queueMicrotask:global.setImmediate?global.setImmediate:global.setTimeout)}function f(t,e,i,n,r){return h.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then(function(t){return h.deriveBits({name:"PBKDF2",salt:e,iterations:i,hash:{name:r}},t,n<<3)}).then(function(t){return s.from(t)})}t.exports=function(t,e,i,r,m,g){"function"==typeof m&&(g=m,m=void 0);var y=u[(m=m||"sha1").toLowerCase()];if(y&&"function"==typeof global.Promise){if(o(i,r),t=c(t,a,"Password"),e=c(e,a,"Salt"),"function"!=typeof g)throw new Error("No callback provided to pbkdf2");!function(t,e){t.then(function(t){p()(function(){e(null,t)})},function(t){p()(function(){e(t)})})}(function(t){if(global.process&&!global.process.browser)return Promise.resolve(!1);if(!h||!h.importKey||!h.deriveBits)return Promise.resolve(!1);if(void 0!==d[t])return d[t];var e=f(n=n||s.alloc(8),n,10,128,t).then(function(){return!0}).catch(function(){return!1});return d[t]=e,e}(y).then(function(n){return n?f(t,e,i,r,y):l(t,e,i,r,m)}),g)}else p()(function(){var n;try{n=l(t,e,i,r,m)}catch(s){return g(s)}g(null,n)})}},7072:t=>{var e;e=global.process&&global.process.browser?"utf-8":global.process&&global.process.version?parseInt(process.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary":"utf-8",t.exports=e},5456:t=>{var e=Math.pow(2,30)-1;t.exports=function(t,i){if("number"!=typeof t)throw new TypeError("Iterations not a number");if(t<0)throw new TypeError("Bad iterations");if("number"!=typeof i)throw new TypeError("Key length not a number");if(i<0||i>e||i!=i)throw new TypeError("Bad key length")}},4315:(t,e,i)=>{var n=i(3072),r=i(3827),s=i(8687),o=i(7015).Buffer,a=i(5456),l=i(7072),c=i(6123),h=o.alloc(128),u={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function d(t,e,i){var a=function(t){return"rmd160"===t||"ripemd160"===t?function(t){return(new r).update(t).digest()}:"md5"===t?n:function(e){return s(t).update(e).digest()}}(t),l="sha512"===t||"sha384"===t?128:64;e.length>l?e=a(e):e.length{var n=i(7015).Buffer;t.exports=function(t,e,i){if(n.isBuffer(t))return t;if("string"==typeof t)return n.from(t,e);if(ArrayBuffer.isView(t))return n.from(t.buffer);throw new TypeError(i+" must be a string, a Buffer, a typed array or a DataView")}},7351:(t,e,i)=>{e.publicEncrypt=i(3714),e.privateDecrypt=i(864),e.privateEncrypt=function(t,i){return e.publicEncrypt(t,i,!0)},e.publicDecrypt=function(t,i){return e.privateDecrypt(t,i,!0)}},6859:(t,e,i)=>{var n=i(4500),r=i(7015).Buffer;function s(t){var e=r.allocUnsafe(4);return e.writeUInt32BE(t,0),e}t.exports=function(t,e){for(var i,o=r.alloc(0),a=0;o.length=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function l(t,e,i){var n=a(t,i);return i-1>=e&&(n|=a(t,i-1)<<4),n}function c(t,e,i,n){for(var r=0,s=Math.min(t.length,i),o=e;o=49?a-49+10:a>=17?a-17+10:a}return r}s.isBN=function(t){return t instanceof s||null!==t&&"object"==typeof t&&t.constructor.wordSize===s.wordSize&&Array.isArray(t.words)},s.max=function(t,e){return t.cmp(e)>0?t:e},s.min=function(t,e){return t.cmp(e)<0?t:e},s.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var r=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r=0;r-=3)this.words[s]|=(o=t[r]|t[r-1]<<8|t[r-2]<<16)<>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===i)for(r=0,s=0;r>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this.strip()},s.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)r=l(t,e,n)<=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(s-=18,this.words[o+=1]|=r>>>26):s+=8;this.strip()},s.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var n=0,r=1;r<=67108863;r*=e)n++;n--,r=r/e|0;for(var s=t.length-i,o=s%n,a=Math.min(s,s-o)+i,l=0,h=i;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,i){i.negative=e.negative^t.negative;var n=t.length+e.length|0;i.length=n,n=n-1|0;var r=0|t.words[0],s=0|e.words[0],o=r*s,a=o/67108864|0;i.words[0]=67108863&o;for(var l=1;l>>26,h=67108863&a,u=Math.min(l,e.length-1),d=Math.max(0,l-t.length+1);d<=u;d++)c+=(o=(r=0|t.words[l-d|0])*(s=0|e.words[d])+h)/67108864|0,h=67108863&o;i.words[l]=0|h,a=0|c}return 0!==a?i.words[l]=0|a:i.length--,i.strip()}s.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var r=0,s=0,o=0;o>>24-r&16777215)||o!==this.length-1?h[6-l.length]+l+i:l+i,(r+=2)>=26&&(r-=26,o--)}for(0!==s&&(i=s.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var c=u[t],p=d[t];i="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modn(p).toString(t);i=(f=f.idivn(p)).isZero()?m+i:h[c-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},s.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},s.prototype.toArrayLike=function(t,e,i){var r=this.byteLength(),s=i||Math.max(1,r);n(r<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0"),this.strip();var o,a,l="le"===e,c=new t(s),h=this.clone();if(l){for(a=0;!h.isZero();a++)o=h.andln(255),h.iushrn(8),c[a]=o;for(;a=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},s.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},s.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},s.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},s.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;it.length?this.clone().iand(t):t.clone().iand(this)},s.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},s.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},s.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},s.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-i),this.strip()},s.prototype.notn=function(t){return this.clone().inotn(t)},s.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var i=t/26|0,r=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<t.length?(i=this,n=t):(i=t,n=this);for(var r=0,s=0;s>>26;for(;0!==r&&s>>26;if(this.length=i.length,0!==r)this.words[this.length]=r,this.length++;else if(i!==this)for(;st.length?this.clone().iadd(t):t.clone().iadd(this)},s.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,n,r=this.cmp(t);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(i=this,n=t):(i=t,n=this);for(var s=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==s&&o>26,this.words[o]=67108863&e;if(0===s&&o>>13,p=0|o[1],f=8191&p,m=p>>>13,g=0|o[2],y=8191&g,b=g>>>13,v=0|o[3],_=8191&v,w=v>>>13,x=0|o[4],C=8191&x,A=x>>>13,S=0|o[5],E=8191&S,k=S>>>13,T=0|o[6],M=8191&T,L=T>>>13,I=0|o[7],O=8191&I,D=I>>>13,R=0|o[8],N=8191&R,P=R>>>13,F=0|o[9],Z=8191&F,B=F>>>13,U=0|a[0],q=8191&U,z=U>>>13,H=0|a[1],Y=8191&H,G=H>>>13,j=0|a[2],V=8191&j,Q=j>>>13,W=0|a[3],J=8191&W,X=W>>>13,K=0|a[4],$=8191&K,tt=K>>>13,et=0|a[5],it=8191&et,nt=et>>>13,rt=0|a[6],st=8191&rt,ot=rt>>>13,at=0|a[7],lt=8191&at,ct=at>>>13,ht=0|a[8],ut=8191&ht,dt=ht>>>13,pt=0|a[9],ft=8191&pt,mt=pt>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(c+(n=Math.imul(u,q))|0)+((8191&(r=(r=Math.imul(u,z))+Math.imul(d,q)|0))<<13)|0;c=((s=Math.imul(d,z))+(r>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(f,q),r=(r=Math.imul(f,z))+Math.imul(m,q)|0,s=Math.imul(m,z);var yt=(c+(n=n+Math.imul(u,Y)|0)|0)+((8191&(r=(r=r+Math.imul(u,G)|0)+Math.imul(d,Y)|0))<<13)|0;c=((s=s+Math.imul(d,G)|0)+(r>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),r=(r=Math.imul(y,z))+Math.imul(b,q)|0,s=Math.imul(b,z),n=n+Math.imul(f,Y)|0,r=(r=r+Math.imul(f,G)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,G)|0;var bt=(c+(n=n+Math.imul(u,V)|0)|0)+((8191&(r=(r=r+Math.imul(u,Q)|0)+Math.imul(d,V)|0))<<13)|0;c=((s=s+Math.imul(d,Q)|0)+(r>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(_,q),r=(r=Math.imul(_,z))+Math.imul(w,q)|0,s=Math.imul(w,z),n=n+Math.imul(y,Y)|0,r=(r=r+Math.imul(y,G)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,G)|0,n=n+Math.imul(f,V)|0,r=(r=r+Math.imul(f,Q)|0)+Math.imul(m,V)|0,s=s+Math.imul(m,Q)|0;var vt=(c+(n=n+Math.imul(u,J)|0)|0)+((8191&(r=(r=r+Math.imul(u,X)|0)+Math.imul(d,J)|0))<<13)|0;c=((s=s+Math.imul(d,X)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(C,q),r=(r=Math.imul(C,z))+Math.imul(A,q)|0,s=Math.imul(A,z),n=n+Math.imul(_,Y)|0,r=(r=r+Math.imul(_,G)|0)+Math.imul(w,Y)|0,s=s+Math.imul(w,G)|0,n=n+Math.imul(y,V)|0,r=(r=r+Math.imul(y,Q)|0)+Math.imul(b,V)|0,s=s+Math.imul(b,Q)|0,n=n+Math.imul(f,J)|0,r=(r=r+Math.imul(f,X)|0)+Math.imul(m,J)|0,s=s+Math.imul(m,X)|0;var _t=(c+(n=n+Math.imul(u,$)|0)|0)+((8191&(r=(r=r+Math.imul(u,tt)|0)+Math.imul(d,$)|0))<<13)|0;c=((s=s+Math.imul(d,tt)|0)+(r>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(E,q),r=(r=Math.imul(E,z))+Math.imul(k,q)|0,s=Math.imul(k,z),n=n+Math.imul(C,Y)|0,r=(r=r+Math.imul(C,G)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,G)|0,n=n+Math.imul(_,V)|0,r=(r=r+Math.imul(_,Q)|0)+Math.imul(w,V)|0,s=s+Math.imul(w,Q)|0,n=n+Math.imul(y,J)|0,r=(r=r+Math.imul(y,X)|0)+Math.imul(b,J)|0,s=s+Math.imul(b,X)|0,n=n+Math.imul(f,$)|0,r=(r=r+Math.imul(f,tt)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,tt)|0;var wt=(c+(n=n+Math.imul(u,it)|0)|0)+((8191&(r=(r=r+Math.imul(u,nt)|0)+Math.imul(d,it)|0))<<13)|0;c=((s=s+Math.imul(d,nt)|0)+(r>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(M,q),r=(r=Math.imul(M,z))+Math.imul(L,q)|0,s=Math.imul(L,z),n=n+Math.imul(E,Y)|0,r=(r=r+Math.imul(E,G)|0)+Math.imul(k,Y)|0,s=s+Math.imul(k,G)|0,n=n+Math.imul(C,V)|0,r=(r=r+Math.imul(C,Q)|0)+Math.imul(A,V)|0,s=s+Math.imul(A,Q)|0,n=n+Math.imul(_,J)|0,r=(r=r+Math.imul(_,X)|0)+Math.imul(w,J)|0,s=s+Math.imul(w,X)|0,n=n+Math.imul(y,$)|0,r=(r=r+Math.imul(y,tt)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,tt)|0,n=n+Math.imul(f,it)|0,r=(r=r+Math.imul(f,nt)|0)+Math.imul(m,it)|0,s=s+Math.imul(m,nt)|0;var xt=(c+(n=n+Math.imul(u,st)|0)|0)+((8191&(r=(r=r+Math.imul(u,ot)|0)+Math.imul(d,st)|0))<<13)|0;c=((s=s+Math.imul(d,ot)|0)+(r>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(O,q),r=(r=Math.imul(O,z))+Math.imul(D,q)|0,s=Math.imul(D,z),n=n+Math.imul(M,Y)|0,r=(r=r+Math.imul(M,G)|0)+Math.imul(L,Y)|0,s=s+Math.imul(L,G)|0,n=n+Math.imul(E,V)|0,r=(r=r+Math.imul(E,Q)|0)+Math.imul(k,V)|0,s=s+Math.imul(k,Q)|0,n=n+Math.imul(C,J)|0,r=(r=r+Math.imul(C,X)|0)+Math.imul(A,J)|0,s=s+Math.imul(A,X)|0,n=n+Math.imul(_,$)|0,r=(r=r+Math.imul(_,tt)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,tt)|0,n=n+Math.imul(y,it)|0,r=(r=r+Math.imul(y,nt)|0)+Math.imul(b,it)|0,s=s+Math.imul(b,nt)|0,n=n+Math.imul(f,st)|0,r=(r=r+Math.imul(f,ot)|0)+Math.imul(m,st)|0,s=s+Math.imul(m,ot)|0;var Ct=(c+(n=n+Math.imul(u,lt)|0)|0)+((8191&(r=(r=r+Math.imul(u,ct)|0)+Math.imul(d,lt)|0))<<13)|0;c=((s=s+Math.imul(d,ct)|0)+(r>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(N,q),r=(r=Math.imul(N,z))+Math.imul(P,q)|0,s=Math.imul(P,z),n=n+Math.imul(O,Y)|0,r=(r=r+Math.imul(O,G)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,G)|0,n=n+Math.imul(M,V)|0,r=(r=r+Math.imul(M,Q)|0)+Math.imul(L,V)|0,s=s+Math.imul(L,Q)|0,n=n+Math.imul(E,J)|0,r=(r=r+Math.imul(E,X)|0)+Math.imul(k,J)|0,s=s+Math.imul(k,X)|0,n=n+Math.imul(C,$)|0,r=(r=r+Math.imul(C,tt)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,tt)|0,n=n+Math.imul(_,it)|0,r=(r=r+Math.imul(_,nt)|0)+Math.imul(w,it)|0,s=s+Math.imul(w,nt)|0,n=n+Math.imul(y,st)|0,r=(r=r+Math.imul(y,ot)|0)+Math.imul(b,st)|0,s=s+Math.imul(b,ot)|0,n=n+Math.imul(f,lt)|0,r=(r=r+Math.imul(f,ct)|0)+Math.imul(m,lt)|0,s=s+Math.imul(m,ct)|0;var At=(c+(n=n+Math.imul(u,ut)|0)|0)+((8191&(r=(r=r+Math.imul(u,dt)|0)+Math.imul(d,ut)|0))<<13)|0;c=((s=s+Math.imul(d,dt)|0)+(r>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(Z,q),r=(r=Math.imul(Z,z))+Math.imul(B,q)|0,s=Math.imul(B,z),n=n+Math.imul(N,Y)|0,r=(r=r+Math.imul(N,G)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,G)|0,n=n+Math.imul(O,V)|0,r=(r=r+Math.imul(O,Q)|0)+Math.imul(D,V)|0,s=s+Math.imul(D,Q)|0,n=n+Math.imul(M,J)|0,r=(r=r+Math.imul(M,X)|0)+Math.imul(L,J)|0,s=s+Math.imul(L,X)|0,n=n+Math.imul(E,$)|0,r=(r=r+Math.imul(E,tt)|0)+Math.imul(k,$)|0,s=s+Math.imul(k,tt)|0,n=n+Math.imul(C,it)|0,r=(r=r+Math.imul(C,nt)|0)+Math.imul(A,it)|0,s=s+Math.imul(A,nt)|0,n=n+Math.imul(_,st)|0,r=(r=r+Math.imul(_,ot)|0)+Math.imul(w,st)|0,s=s+Math.imul(w,ot)|0,n=n+Math.imul(y,lt)|0,r=(r=r+Math.imul(y,ct)|0)+Math.imul(b,lt)|0,s=s+Math.imul(b,ct)|0,n=n+Math.imul(f,ut)|0,r=(r=r+Math.imul(f,dt)|0)+Math.imul(m,ut)|0,s=s+Math.imul(m,dt)|0;var St=(c+(n=n+Math.imul(u,ft)|0)|0)+((8191&(r=(r=r+Math.imul(u,mt)|0)+Math.imul(d,ft)|0))<<13)|0;c=((s=s+Math.imul(d,mt)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(Z,Y),r=(r=Math.imul(Z,G))+Math.imul(B,Y)|0,s=Math.imul(B,G),n=n+Math.imul(N,V)|0,r=(r=r+Math.imul(N,Q)|0)+Math.imul(P,V)|0,s=s+Math.imul(P,Q)|0,n=n+Math.imul(O,J)|0,r=(r=r+Math.imul(O,X)|0)+Math.imul(D,J)|0,s=s+Math.imul(D,X)|0,n=n+Math.imul(M,$)|0,r=(r=r+Math.imul(M,tt)|0)+Math.imul(L,$)|0,s=s+Math.imul(L,tt)|0,n=n+Math.imul(E,it)|0,r=(r=r+Math.imul(E,nt)|0)+Math.imul(k,it)|0,s=s+Math.imul(k,nt)|0,n=n+Math.imul(C,st)|0,r=(r=r+Math.imul(C,ot)|0)+Math.imul(A,st)|0,s=s+Math.imul(A,ot)|0,n=n+Math.imul(_,lt)|0,r=(r=r+Math.imul(_,ct)|0)+Math.imul(w,lt)|0,s=s+Math.imul(w,ct)|0,n=n+Math.imul(y,ut)|0,r=(r=r+Math.imul(y,dt)|0)+Math.imul(b,ut)|0,s=s+Math.imul(b,dt)|0;var Et=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(r=(r=r+Math.imul(f,mt)|0)+Math.imul(m,ft)|0))<<13)|0;c=((s=s+Math.imul(m,mt)|0)+(r>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(Z,V),r=(r=Math.imul(Z,Q))+Math.imul(B,V)|0,s=Math.imul(B,Q),n=n+Math.imul(N,J)|0,r=(r=r+Math.imul(N,X)|0)+Math.imul(P,J)|0,s=s+Math.imul(P,X)|0,n=n+Math.imul(O,$)|0,r=(r=r+Math.imul(O,tt)|0)+Math.imul(D,$)|0,s=s+Math.imul(D,tt)|0,n=n+Math.imul(M,it)|0,r=(r=r+Math.imul(M,nt)|0)+Math.imul(L,it)|0,s=s+Math.imul(L,nt)|0,n=n+Math.imul(E,st)|0,r=(r=r+Math.imul(E,ot)|0)+Math.imul(k,st)|0,s=s+Math.imul(k,ot)|0,n=n+Math.imul(C,lt)|0,r=(r=r+Math.imul(C,ct)|0)+Math.imul(A,lt)|0,s=s+Math.imul(A,ct)|0,n=n+Math.imul(_,ut)|0,r=(r=r+Math.imul(_,dt)|0)+Math.imul(w,ut)|0,s=s+Math.imul(w,dt)|0;var kt=(c+(n=n+Math.imul(y,ft)|0)|0)+((8191&(r=(r=r+Math.imul(y,mt)|0)+Math.imul(b,ft)|0))<<13)|0;c=((s=s+Math.imul(b,mt)|0)+(r>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(Z,J),r=(r=Math.imul(Z,X))+Math.imul(B,J)|0,s=Math.imul(B,X),n=n+Math.imul(N,$)|0,r=(r=r+Math.imul(N,tt)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,tt)|0,n=n+Math.imul(O,it)|0,r=(r=r+Math.imul(O,nt)|0)+Math.imul(D,it)|0,s=s+Math.imul(D,nt)|0,n=n+Math.imul(M,st)|0,r=(r=r+Math.imul(M,ot)|0)+Math.imul(L,st)|0,s=s+Math.imul(L,ot)|0,n=n+Math.imul(E,lt)|0,r=(r=r+Math.imul(E,ct)|0)+Math.imul(k,lt)|0,s=s+Math.imul(k,ct)|0,n=n+Math.imul(C,ut)|0,r=(r=r+Math.imul(C,dt)|0)+Math.imul(A,ut)|0,s=s+Math.imul(A,dt)|0;var Tt=(c+(n=n+Math.imul(_,ft)|0)|0)+((8191&(r=(r=r+Math.imul(_,mt)|0)+Math.imul(w,ft)|0))<<13)|0;c=((s=s+Math.imul(w,mt)|0)+(r>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(Z,$),r=(r=Math.imul(Z,tt))+Math.imul(B,$)|0,s=Math.imul(B,tt),n=n+Math.imul(N,it)|0,r=(r=r+Math.imul(N,nt)|0)+Math.imul(P,it)|0,s=s+Math.imul(P,nt)|0,n=n+Math.imul(O,st)|0,r=(r=r+Math.imul(O,ot)|0)+Math.imul(D,st)|0,s=s+Math.imul(D,ot)|0,n=n+Math.imul(M,lt)|0,r=(r=r+Math.imul(M,ct)|0)+Math.imul(L,lt)|0,s=s+Math.imul(L,ct)|0,n=n+Math.imul(E,ut)|0,r=(r=r+Math.imul(E,dt)|0)+Math.imul(k,ut)|0,s=s+Math.imul(k,dt)|0;var Mt=(c+(n=n+Math.imul(C,ft)|0)|0)+((8191&(r=(r=r+Math.imul(C,mt)|0)+Math.imul(A,ft)|0))<<13)|0;c=((s=s+Math.imul(A,mt)|0)+(r>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(Z,it),r=(r=Math.imul(Z,nt))+Math.imul(B,it)|0,s=Math.imul(B,nt),n=n+Math.imul(N,st)|0,r=(r=r+Math.imul(N,ot)|0)+Math.imul(P,st)|0,s=s+Math.imul(P,ot)|0,n=n+Math.imul(O,lt)|0,r=(r=r+Math.imul(O,ct)|0)+Math.imul(D,lt)|0,s=s+Math.imul(D,ct)|0,n=n+Math.imul(M,ut)|0,r=(r=r+Math.imul(M,dt)|0)+Math.imul(L,ut)|0,s=s+Math.imul(L,dt)|0;var Lt=(c+(n=n+Math.imul(E,ft)|0)|0)+((8191&(r=(r=r+Math.imul(E,mt)|0)+Math.imul(k,ft)|0))<<13)|0;c=((s=s+Math.imul(k,mt)|0)+(r>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(Z,st),r=(r=Math.imul(Z,ot))+Math.imul(B,st)|0,s=Math.imul(B,ot),n=n+Math.imul(N,lt)|0,r=(r=r+Math.imul(N,ct)|0)+Math.imul(P,lt)|0,s=s+Math.imul(P,ct)|0,n=n+Math.imul(O,ut)|0,r=(r=r+Math.imul(O,dt)|0)+Math.imul(D,ut)|0,s=s+Math.imul(D,dt)|0;var It=(c+(n=n+Math.imul(M,ft)|0)|0)+((8191&(r=(r=r+Math.imul(M,mt)|0)+Math.imul(L,ft)|0))<<13)|0;c=((s=s+Math.imul(L,mt)|0)+(r>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(Z,lt),r=(r=Math.imul(Z,ct))+Math.imul(B,lt)|0,s=Math.imul(B,ct),n=n+Math.imul(N,ut)|0,r=(r=r+Math.imul(N,dt)|0)+Math.imul(P,ut)|0,s=s+Math.imul(P,dt)|0;var Ot=(c+(n=n+Math.imul(O,ft)|0)|0)+((8191&(r=(r=r+Math.imul(O,mt)|0)+Math.imul(D,ft)|0))<<13)|0;c=((s=s+Math.imul(D,mt)|0)+(r>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(Z,ut),r=(r=Math.imul(Z,dt))+Math.imul(B,ut)|0,s=Math.imul(B,dt);var Dt=(c+(n=n+Math.imul(N,ft)|0)|0)+((8191&(r=(r=r+Math.imul(N,mt)|0)+Math.imul(P,ft)|0))<<13)|0;c=((s=s+Math.imul(P,mt)|0)+(r>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Rt=(c+(n=Math.imul(Z,ft))|0)+((8191&(r=(r=Math.imul(Z,mt))+Math.imul(B,ft)|0))<<13)|0;return c=((s=Math.imul(B,mt))+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,l[0]=gt,l[1]=yt,l[2]=bt,l[3]=vt,l[4]=_t,l[5]=wt,l[6]=xt,l[7]=Ct,l[8]=At,l[9]=St,l[10]=Et,l[11]=kt,l[12]=Tt,l[13]=Mt,l[14]=Lt,l[15]=It,l[16]=Ot,l[17]=Dt,l[18]=Rt,0!==c&&(l[19]=c,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(f=p),s.prototype.mulTo=function(t,e){var i=this.length+t.length;return 10===this.length&&10===t.length?f(this,t,e):i<63?p(this,t,e):i<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var n=0,r=0,s=0;s>>26)|0)>>>26,o&=67108863}i.words[s]=a,n=o,o=r}return 0!==n?i.words[s]=n:i.length--,i.strip()}(this,t,e):m(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=s.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,i,n,r,s){for(var o=0;o>>=1)r++;return 1<>>=13),s>>>=13;for(o=2*e;o>=26,e+=r/67108864|0,e+=s>>>26,this.words[i]=67108863&s}return 0!==e&&(this.words[i]=e,this.length++),this},s.prototype.muln=function(t){return this.clone().imuln(t)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i>>n}return e}(t);if(0===e.length)return new s(1);for(var i=this,n=0;n=0);var e,i=t%26,r=(t-i)/26,s=67108863>>>26-i<<26-i;if(0!==i){var o=0;for(e=0;e>>26-i}o&&(this.words[e]=o,this.length++)}if(0!==r){for(e=this.length-1;e>=0;e--)this.words[e+r]=this.words[e];for(e=0;e=0),r=e?(e-e%26)/26:0;var s=t%26,o=Math.min((t-s)/26,this.length),a=67108863^67108863>>>s<o)for(this.length-=o,c=0;c=0&&(0!==h||c>=r);c--){var u=0|this.words[c];this.words[c]=h<<26-s|u>>>s,h=u&a}return l&&0!==h&&(l.words[l.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(t,e,i){return n(0===this.negative),this.iushrn(t,e,i)},s.prototype.shln=function(t){return this.clone().ishln(t)},s.prototype.ushln=function(t){return this.clone().iushln(t)},s.prototype.shrn=function(t){return this.clone().ishrn(t)},s.prototype.ushrn=function(t){return this.clone().iushrn(t)},s.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;return!(this.length<=i||!(this.words[i]&1<=0);var e=t%26,i=(t-e)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=i?this:(0!==e&&i++,this.length=Math.min(i,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},s.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(a/67108864|0),this.words[r+i]=67108863&s}for(;r>26,this.words[r+i]=67108863&s;if(0===o)return this.strip();for(n(-1===o),o=0,r=0;r>26,this.words[r]=67108863&s;return this.negative=1,this.strip()},s.prototype._wordDiv=function(t,e){var i,n=this.clone(),r=t,o=0|r.words[r.length-1];0!=(i=26-this._countBits(o))&&(r=r.ushln(i),n.iushln(i),o=0|r.words[r.length-1]);var a,l=n.length-r.length;if("mod"!==e){(a=new s(null)).length=l+1,a.words=new Array(a.length);for(var c=0;c=0;u--){var d=67108864*(0|n.words[r.length+u])+(0|n.words[r.length+u-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(r,d,u);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(r,1,u),n.isZero()||(n.negative^=1);a&&(a.words[u]=d)}return a&&a.strip(),n.strip(),"div"!==e&&0!==i&&n.iushrn(i),{div:a||null,mod:n}},s.prototype.divmod=function(t,e,i){return n(!t.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(r=a.div.neg()),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.iadd(t)),{div:r,mod:o}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(o=a.mod.neg(),i&&0!==o.negative&&o.isub(t)),{div:a.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new s(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new s(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new s(this.modn(t.words[0]))}:this._wordDiv(t,e);var r,o,a},s.prototype.div=function(t){return this.divmod(t,"div",!1).div},s.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},s.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},s.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),r=t.andln(1),s=i.cmp(n);return s<0||1===r&&0===s?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},s.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,i=0,r=this.length-1;r>=0;r--)i=(e*i+(0|this.words[r]))%t;return i},s.prototype.idivn=function(t){n(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var r=(0|this.words[i])+67108864*e;this.words[i]=r/t|0,e=r%t}return this.strip()},s.prototype.divn=function(t){return this.clone().idivn(t)},s.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r=new s(1),o=new s(0),a=new s(0),l=new s(1),c=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++c;for(var h=i.clone(),u=e.clone();!e.isZero();){for(var d=0,p=1;0==(e.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(r.isOdd()||o.isOdd())&&(r.iadd(h),o.isub(u)),r.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(i.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(i.iushrn(f);f-- >0;)(a.isOdd()||l.isOdd())&&(a.iadd(h),l.isub(u)),a.iushrn(1),l.iushrn(1);e.cmp(i)>=0?(e.isub(i),r.isub(a),o.isub(l)):(i.isub(e),a.isub(r),l.isub(o))}return{a:a,b:l,gcd:i.iushln(c)}},s.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var r,o=new s(1),a=new s(0),l=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var c=0,h=1;0==(e.words[0]&h)&&c<26;++c,h<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var u=0,d=1;0==(i.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(i.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(l),a.iushrn(1);e.cmp(i)>=0?(e.isub(i),o.isub(a)):(i.isub(e),a.isub(o))}return(r=0===e.cmpn(1)?o:a).cmpn(0)<0&&r.iadd(t),r},s.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var n=0;e.isEven()&&i.isEven();n++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var r=e.cmp(i);if(r<0){var s=e;e=i,i=s}else if(0===r||0===i.cmpn(1))break;e.isub(i)}return i.iushln(n)},s.prototype.invm=function(t){return this.egcd(t).a.umod(t)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(t){return this.words[0]&t},s.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,i=(t-e)/26,r=1<>>26,this.words[o]=a&=67108863}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),n(t<=67108863,"Number is too big");var r=0|this.words[0];e=r===t?0:rt.length)return 1;if(this.length=0;i--){var n=0|this.words[i],r=0|t.words[i];if(n!==r){nr&&(e=1);break}}return e},s.prototype.gtn=function(t){return 1===this.cmpn(t)},s.prototype.gt=function(t){return 1===this.cmp(t)},s.prototype.gten=function(t){return this.cmpn(t)>=0},s.prototype.gte=function(t){return this.cmp(t)>=0},s.prototype.ltn=function(t){return-1===this.cmpn(t)},s.prototype.lt=function(t){return-1===this.cmp(t)},s.prototype.lten=function(t){return this.cmpn(t)<=0},s.prototype.lte=function(t){return this.cmp(t)<=0},s.prototype.eqn=function(t){return 0===this.cmpn(t)},s.prototype.eq=function(t){return 0===this.cmp(t)},s.red=function(t){return new C(t)},s.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(t){return this.red=t,this},s.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},s.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},s.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},s.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},s.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},s.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},s.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},s.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new s(e,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function C(t){if("string"==typeof t){var e=s._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){C.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var t=new s(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},r(v,b),v.prototype.split=function(t,e){for(var i=4194303,n=Math.min(t.length,9),r=0;r>>22,s=o}t.words[r-10]=s>>>=22,t.length-=0===s&&t.length>10?10:9},v.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i>>=26,t.words[i]=r,e=n}return 0!==e&&(t.words[t.length++]=e),t},s._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new v;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new x}return y[t]=e,e},C.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},C.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},C.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},C.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},C.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},C.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},C.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},C.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},C.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},C.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},C.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},C.prototype.isqr=function(t){return this.imul(t,t.clone())},C.prototype.sqr=function(t){return this.mul(t,t)},C.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var i=this.m.add(new s(1)).iushrn(2);return this.pow(t,i)}for(var r=this.m.subn(1),o=0;!r.isZero()&&0===r.andln(1);)o++,r.iushrn(1);n(!r.isZero());var a=new s(1).toRed(this),l=a.redNeg(),c=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new s(2*h*h).toRed(this);0!==this.pow(h,c).cmp(l);)h.redIAdd(l);for(var u=this.pow(h,r),d=this.pow(t,r.addn(1).iushrn(1)),p=this.pow(t,r),f=o;0!==p.cmp(a);){for(var m=p,g=0;0!==m.cmp(a);g++)m=m.redSqr();n(g=0;n--){for(var c=e.words[n],h=l-1;h>=0;h--){var u=c>>h&1;r!==i[0]&&(r=this.sqr(r)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===n&&0===h)&&(r=this.mul(r,i[o]),a=0,o=0)):a=0}l=26}return r},C.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},C.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},s.mont=function(t){return new A(t)},r(A,C),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),s=r;return r.cmp(this.m)>=0?s=r.isub(this.m):r.cmpn(0)<0&&(s=r.iadd(this.m)),s._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new s(0)._forceRed(this);var i=t.mul(e),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=i.isub(n).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=i.nmd(t),this)},864:(t,e,i)=>{var n=i(2291),r=i(6859),s=i(5669),o=i(8466),a=i(4467),l=i(4500),c=i(9597),h=i(7015).Buffer;t.exports=function(t,e,i){var u;u=t.padding?t.padding:i?1:4;var d,p=n(t),f=p.modulus.byteLength();if(e.length>f||new o(e).cmp(p.modulus)>=0)throw new Error("decryption error");d=i?c(new o(e),p):a(e,p);var m=h.alloc(f-d.length);if(d=h.concat([m,d],f),4===u)return function(t,e){var i=t.modulus.byteLength(),n=l("sha1").update(h.alloc(0)).digest(),o=n.length;if(0!==e[0])throw new Error("decryption error");var a=e.slice(1,o+1),c=e.slice(o+1),u=s(a,r(c,o)),d=s(c,r(u,i-o-1));if(function(t,e){t=h.from(t),e=h.from(e);var i=0,n=t.length;t.length!==e.length&&(i++,n=Math.min(t.length,e.length));for(var r=-1;++r=e.length){s++;break}var o=e.slice(2,r-1);if(("0002"!==n.toString("hex")&&!i||"0001"!==n.toString("hex")&&i)&&s++,o.length<8&&s++,s)throw new Error("decryption error");return e.slice(r)}(0,d,i);if(3===u)return d;throw new Error("unknown padding")}},3714:(t,e,i)=>{var n=i(2291),r=i(6716),s=i(4500),o=i(6859),a=i(5669),l=i(8466),c=i(9597),h=i(4467),u=i(7015).Buffer;t.exports=function(t,e,i){var d;d=t.padding?t.padding:i?1:4;var p,f=n(t);if(4===d)p=function(t,e){var i=t.modulus.byteLength(),n=e.length,c=s("sha1").update(u.alloc(0)).digest(),h=c.length,d=2*h;if(n>i-d-2)throw new Error("message too long");var p=u.alloc(i-n-d-2),f=i-h-1,m=r(h),g=a(u.concat([c,p,u.alloc(1,1),e],f),o(m,f)),y=a(m,o(g,h));return new l(u.concat([u.alloc(1),y,g],i))}(f,e);else if(1===d)p=function(t,e,i){var n,s=e.length,o=t.modulus.byteLength();if(s>o-11)throw new Error("message too long");return n=i?u.alloc(o-s-3,255):function(t){for(var e,i=u.allocUnsafe(t),n=0,s=r(2*t),o=0;n=0)throw new Error("data too long for modulus")}return i?h(p,f):c(p,f)}},9597:(t,e,i)=>{var n=i(8466),r=i(7015).Buffer;t.exports=function(t,e){return r.from(t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed().toArray())}},5669:t=>{t.exports=function(t,e){for(var i=t.length,n=-1;++n{var n=i(422),r=i(348),s=i(2253),o=i(3657);function a(t,e,i,s,o){var a=[].slice.call(arguments,1),l=a.length,c="function"==typeof a[l-1];if(!c&&!n())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(i=e,e=s=void 0):2!==l||e.getContext||(s=i,i=e,e=void 0),new Promise(function(n,o){try{var a=r.create(i,s);n(t(a,e,s))}catch(l){o(l)}})}if(l<2)throw new Error("Too few arguments provided");2===l?(o=i,i=e,e=s=void 0):3===l&&(e.getContext&&void 0===o?(o=s,s=void 0):(o=s,s=i,i=e,e=void 0));try{var h=r.create(i,s);o(null,t(h,e,s))}catch(u){o(u)}}e.rT=a.bind(null,s.render),e.hz=a.bind(null,s.renderToDataURL),e.toString=a.bind(null,function(t,e,i){return o.render(t,i)})},422:t=>{t.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6831:(t,e,i)=>{var n=i(1893).getSymbolSize;e.getRowColCoords=function(t){if(1===t)return[];for(var e=Math.floor(t/7)+2,i=n(t),r=145===i?26:2*Math.ceil((i-13)/(2*e-2)),s=[i-7],o=1;o{var n=i(4358),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function s(t){this.mode=n.ALPHANUMERIC,this.data=t}s.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e+2<=this.data.length;e+=2){var i=45*r.indexOf(this.data[e]);i+=r.indexOf(this.data[e+1]),t.put(i,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},t.exports=s},1401:t=>{function e(){this.buffer=[],this.length=0}e.prototype={get:function(t){var e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(var i=0;i>>e-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},t.exports=e},9834:(t,e,i)=>{var n=i(2060);function r(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new n(t*t),this.data.fill(0),this.reservedBit=new n(t*t),this.reservedBit.fill(0)}r.prototype.set=function(t,e,i,n){var r=t*this.size+e;this.data[r]=i,n&&(this.reservedBit[r]=!0)},r.prototype.get=function(t,e){return this.data[t*this.size+e]},r.prototype.xor=function(t,e,i){this.data[t*this.size+e]^=i},r.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},t.exports=r},3964:(t,e,i)=>{var n=i(2060),r=i(4358);function s(t){this.mode=r.BYTE,this.data=new n(t)}s.getBitsLength=function(t){return 8*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){for(var e=0,i=this.data.length;e{var n=i(3076),r=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],s=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}},e.getTotalCodewordsCount=function(t,e){switch(e){case n.L:return s[4*(t-1)+0];case n.M:return s[4*(t-1)+1];case n.Q:return s[4*(t-1)+2];case n.H:return s[4*(t-1)+3];default:return}}},3076:(t,e)=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},e.from=function(t,i){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(n){return i}}},8902:(t,e,i)=>{var n=i(1893).getSymbolSize;e.getPositions=function(t){var e=n(t);return[[0,0],[e-7,0],[0,e-7]]}},2256:(t,e,i)=>{var n=i(1893),r=n.getBCHDigit(1335);e.getEncodedBits=function(t,e){for(var i=t.bit<<3|e,s=i<<10;n.getBCHDigit(s)-r>=0;)s^=1335<{var n,r,s=i(2060);s.alloc?(n=s.alloc(512),r=s.alloc(256)):(n=new s(512),r=new s(256)),function(){for(var t=1,e=0;e<255;e++)n[e]=t,r[t]=e,256&(t<<=1)&&(t^=285);for(e=255;e<512;e++)n[e]=n[e-255]}(),e.log=function(t){if(t<1)throw new Error("log("+t+")");return r[t]},e.exp=function(t){return n[t]},e.mul=function(t,e){return 0===t||0===e?0:n[r[t]+r[e]]}},9889:(t,e,i)=>{var n=i(4358),r=i(1893);function s(t){this.mode=n.KANJI,this.data=t}s.getBitsLength=function(t){return 13*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e=33088&&i<=40956)i-=33088;else{if(!(i>=57408&&i<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");i-=49472}t.put(i=192*(i>>>8&255)+(255&i),13)}},t.exports=s},4740:(t,e)=>{function i(t,i,n){switch(t){case e.Patterns.PATTERN000:return(i+n)%2==0;case e.Patterns.PATTERN001:return i%2==0;case e.Patterns.PATTERN010:return n%3==0;case e.Patterns.PATTERN011:return(i+n)%3==0;case e.Patterns.PATTERN100:return(Math.floor(i/2)+Math.floor(n/3))%2==0;case e.Patterns.PATTERN101:return i*n%2+i*n%3==0;case e.Patterns.PATTERN110:return(i*n%2+i*n%3)%2==0;case e.Patterns.PATTERN111:return(i*n%3+(i+n)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},e.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(t){for(var e=t.size,i=0,n=0,r=0,s=null,o=null,a=0;a=5&&(i+=n-5+3),s=c,n=1),(c=t.get(l,a))===o?r++:(r>=5&&(i+=r-5+3),o=c,r=1)}n>=5&&(i+=n-5+3),r>=5&&(i+=r-5+3)}return i},e.getPenaltyN2=function(t){for(var e=t.size,i=0,n=0;n=10&&(1488===n||93===n)&&i++,r=r<<1&2047|t.get(o,s),o>=10&&(1488===r||93===r)&&i++}return 40*i},e.getPenaltyN4=function(t){for(var e=0,i=t.data.length,n=0;n{var n=i(3893),r=i(9947);e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!n.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]},e.getBestModeForData=function(t){return r.testNumeric(t)?e.NUMERIC:r.testAlphanumeric(t)?e.ALPHANUMERIC:r.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},e.isValid=function(t){return t&&t.bit&&t.ccBits},e.from=function(t,i){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(n){return i}}},9246:(t,e,i)=>{var n=i(4358);function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){var e,i,n;for(e=0;e+3<=this.data.length;e+=3)i=this.data.substr(e,3),n=parseInt(i,10),t.put(n,10);var r=this.data.length-e;r>0&&(i=this.data.substr(e),n=parseInt(i,10),t.put(n,3*r+1))},t.exports=r},507:(t,e,i)=>{var n=i(2060),r=i(5076);e.mul=function(t,e){var i=new n(t.length+e.length-1);i.fill(0);for(var s=0;s=0;){for(var s=i[0],o=0;o{var n=i(2060),r=i(1893),s=i(3076),o=i(1401),a=i(9834),l=i(6831),c=i(8902),h=i(4740),u=i(3347),d=i(278),p=i(9471),f=i(2256),m=i(4358),g=i(388),y=i(6265);function b(t,e,i){var n,r,s=t.size,o=f.getEncodedBits(e,i);for(n=0;n<15;n++)t.set(n<6?n:n<8?n+1:s-15+n,8,r=1==(o>>n&1),!0),t.set(8,n<8?s-n-1:n<9?15-n-1+1:15-n-1,r,!0);t.set(s-8,8,1,!0)}e.create=function(t,e){if(void 0===t||""===t)throw new Error("No input text");var i,f,v=s.M;return void 0!==e&&(v=s.from(e.errorCorrectionLevel,s.M),i=p.from(e.version),f=h.from(e.maskPattern),e.toSJISFunc&&r.setToSJISFunction(e.toSJISFunc)),function(t,e,i,s){var f;if(y(t))f=g.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");var v=e;if(!v){var _=g.rawSplit(t);v=p.getBestVersionForData(_,i)}f=g.fromString(t,v||40)}var w=p.getBestVersionForData(f,i);if(!w)throw new Error("The amount of data is too big to be stored in a QR Code");if(e){if(e=0&&a<=6&&(0===l||6===l)||l>=0&&l<=6&&(0===a||6===a)||a>=2&&a<=4&&l>=2&&l<=4,!0)}(A,e),function(t){for(var e=t.size,i=8;i=7&&function(t,e){for(var i,n,r,s=t.size,o=p.getEncodedBits(e),a=0;a<18;a++)i=Math.floor(a/3),t.set(i,n=a%3+s-8-3,r=1==(o>>a&1),!0),t.set(n,i,r,!0)}(A,e),function(t,e){for(var i=t.size,n=-1,r=i-1,s=7,o=0,a=i-1;a>0;a-=2)for(6===a&&a--;;){for(var l=0;l<2;l++)if(!t.isReserved(r,a-l)){var c=!1;o>>s&1)),t.set(r,a-l,c),-1==--s&&(o++,s=7)}if((r+=n)<0||i<=r){r-=n,n=-n;break}}}(A,x),isNaN(s)&&(s=h.getBestMask(A,b.bind(null,A,i))),h.applyMask(s,A),b(A,i,s),{modules:A,version:e,errorCorrectionLevel:i,maskPattern:s,segments:f}}(t,i,v,f)}},278:(t,e,i)=>{var n=i(2060),r=i(507);function s(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}s.prototype.initialize=function(t){this.degree=t,this.genPoly=r.generateECPolynomial(this.degree)},s.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");var e=new n(this.degree);e.fill(0);var i=n.concat([t,e],t.length+this.degree),s=r.mod(i,this.genPoly),o=this.degree-s.length;if(o>0){var a=new n(this.degree);return a.fill(0),s.copy(a,o),a}return s},t.exports=s},9947:(t,e)=>{var i="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",n="(?:(?![A-Z0-9 $%*+\\-./:]|"+(i=i.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";e.KANJI=new RegExp(i,"g"),e.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),e.BYTE=new RegExp(n,"g"),e.NUMERIC=new RegExp("[0-9]+","g"),e.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var r=new RegExp("^"+i+"$"),s=new RegExp("^[0-9]+$"),o=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");e.testKanji=function(t){return r.test(t)},e.testNumeric=function(t){return s.test(t)},e.testAlphanumeric=function(t){return o.test(t)}},388:(t,e,i)=>{var n=i(4358),r=i(9246),s=i(9946),o=i(3964),a=i(9889),l=i(9947),c=i(1893),h=i(45);function u(t){return unescape(encodeURIComponent(t)).length}function d(t,e,i){for(var n,r=[];null!==(n=t.exec(i));)r.push({data:n[0],index:n.index,mode:e,length:n[0].length});return r}function p(t){var e,i,r=d(l.NUMERIC,n.NUMERIC,t),s=d(l.ALPHANUMERIC,n.ALPHANUMERIC,t);return c.isKanjiModeEnabled()?(e=d(l.BYTE,n.BYTE,t),i=d(l.KANJI,n.KANJI,t)):(e=d(l.BYTE_KANJI,n.BYTE,t),i=[]),r.concat(s,e,i).sort(function(t,e){return t.index-e.index}).map(function(t){return{data:t.data,mode:t.mode,length:t.length}})}function f(t,e){switch(e){case n.NUMERIC:return r.getBitsLength(t);case n.ALPHANUMERIC:return s.getBitsLength(t);case n.KANJI:return a.getBitsLength(t);case n.BYTE:return o.getBitsLength(t)}}function m(t,e){var i,l=n.getBestModeForData(t);if((i=n.from(e,l))!==n.BYTE&&i.bit=0?t[t.length-1]:null;return i&&i.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)},[]))},e.rawSplit=function(t){return e.fromArray(p(t,c.isKanjiModeEnabled()))}},1893:(t,e)=>{var i,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},e.getSymbolTotalCodewords=function(t){return n[t]},e.getBCHDigit=function(t){for(var e=0;0!==t;)e++,t>>>=1;return e},e.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');i=t},e.isKanjiModeEnabled=function(){return void 0!==i},e.toSJIS=function(t){return i(t)}},3893:(t,e)=>{e.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}},9471:(t,e,i)=>{var n=i(1893),r=i(3347),s=i(3076),o=i(4358),a=i(3893),l=i(6265),c=n.getBCHDigit(7973);function h(t,e){return o.getCharCountIndicator(t,e)+4}function u(t,e){var i=0;return t.forEach(function(t){var n=h(t.mode,e);i+=n+t.getBitsLength()}),i}e.from=function(t,e){return a.isValid(t)?parseInt(t,10):e},e.getCapacity=function(t,e,i){if(!a.isValid(t))throw new Error("Invalid QR Code version");void 0===i&&(i=o.BYTE);var s=8*(n.getSymbolTotalCodewords(t)-r.getTotalCodewordsCount(t,e));if(i===o.MIXED)return s;var l=s-h(i,t);switch(i){case o.NUMERIC:return Math.floor(l/10*3);case o.ALPHANUMERIC:return Math.floor(l/11*2);case o.KANJI:return Math.floor(l/13);case o.BYTE:default:return Math.floor(l/8)}},e.getBestVersionForData=function(t,i){var n,r=s.from(i,s.M);if(l(t)){if(t.length>1)return function(t,i){for(var n=1;n<=40;n++)if(u(t,n)<=e.getCapacity(n,i,o.MIXED))return n}(t,r);if(0===t.length)return 1;n=t[0]}else n=t;return function(t,i,n){for(var r=1;r<=40;r++)if(i<=e.getCapacity(r,n,t))return r}(n.mode,n.getLength(),r)},e.getEncodedBits=function(t){if(!a.isValid(t)||t<7)throw new Error("Invalid QR Code version");for(var e=t<<12;n.getBCHDigit(e)-c>=0;)e^=7973<{var n=i(717);e.render=function(t,e,i){var r=i,s=e;void 0!==r||e&&e.getContext||(r=e,e=void 0),e||(s=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),r=n.getOptions(r);var o=n.getImageWidth(t.modules.size,r),a=s.getContext("2d"),l=a.createImageData(o,o);return n.qrToImageData(l.data,t,r),function(t,e,i){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=i,e.width=i,e.style.height=i+"px",e.style.width=i+"px"}(a,s,o),a.putImageData(l,0,0),s},e.renderToDataURL=function(t,i,n){var r=n;return void 0!==r||i&&i.getContext||(r=i,i=void 0),r||(r={}),e.render(t,i,r).toDataURL(r.type||"image/png",(r.rendererOpts||{}).quality)}},3657:(t,e,i)=>{var n=i(717);function r(t,e){var i=t.a/255,n=e+'="'+t.hex+'"';return i<1?n+" "+e+'-opacity="'+i.toFixed(2).slice(1)+'"':n}function s(t,e,i){var n=t+e;return void 0!==i&&(n+=" "+i),n}e.render=function(t,e,i){var o=n.getOptions(e),a=t.modules.size,l=t.modules.data,c=a+2*o.margin,h=o.color.light.a?"':"",u="0&&c>0&&t[l-1]||(n+=o?s("M",c+i,.5+h+i):s("m",r,0),r=0,o=!1),c+1',d=''+h+u+"\n";return"function"==typeof i&&i(null,d),d}},717:(t,e)=>{function i(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");var e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map(function(t){return[t,t]}))),6===e.length&&e.push("F","F");var i=parseInt(e.join(""),16);return{r:i>>24&255,g:i>>16&255,b:i>>8&255,a:255&i,hex:"#"+e.slice(0,6).join("")}}e.getOptions=function(t){t||(t={}),t.color||(t.color={});var e=t.width&&t.width>=21?t.width:void 0;return{width:e,scale:e?4:t.scale||4,margin:null==t.margin||t.margin<0?4:t.margin,color:{dark:i(t.color.dark||"#000000ff"),light:i(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},e.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},e.getImageWidth=function(t,i){var n=e.getScale(t,i);return Math.floor((t+2*i.margin)*n)},e.qrToImageData=function(t,i,n){for(var r=i.modules.size,s=i.modules.data,o=e.getScale(r,n),a=Math.floor((r+2*n.margin)*o),l=n.margin*o,c=[n.color.light,n.color.dark],h=0;h=l&&u>=l&&h{"use strict";var n=i(6265),r=(s.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(e){return!1}}())?2147483647:1073741823;function s(t,e,i){return s.TYPED_ARRAY_SUPPORT||this instanceof s?"number"==typeof t?l(this,t):function(t,e,i,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,i,n){if(i<0||e.byteLength=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|t}function a(t,e){var i;return s.TYPED_ARRAY_SUPPORT?(i=new Uint8Array(e)).__proto__=s.prototype:(null===(i=t)&&(i=new s(e)),i.length=e),i}function l(t,e){var i=a(t,e<0?0:0|o(e));if(!s.TYPED_ARRAY_SUPPORT)for(var n=0;n55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function u(t){return s.isBuffer(t)?t.length:"undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer)?t.byteLength:("string"!=typeof t&&(t=""+t),0===t.length?0:h(t).length)}s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})),s.prototype.write=function(t,e,i){void 0===e||void 0===i&&"string"==typeof e?(i=this.length,e=0):isFinite(e)&&(e|=0,isFinite(i)?i|=0:i=void 0);var n=this.length-e;if((void 0===i||i>n)&&(i=n),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");return function(t,e,i,n){return function(t,e,i,n){for(var r=0;r=e.length||r>=t.length);++r)e[r+i]=t[r];return r}(h(e,t.length-i),t,i,n)}(this,t,e,i)},s.prototype.slice=function(t,e){var i,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--r)t[r+e]=this[r+i];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(r=0;r>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(r=e;r{"use strict";var n=65536,r=i(7015).Buffer,s=global.crypto||global.msCrypto;t.exports=s&&s.getRandomValues?function(t,e){if(t>4294967295)throw new RangeError("requested too many random bytes");var i=r.allocUnsafe(t);if(t>0)if(t>n)for(var o=0;o{"use strict";function n(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var r=i(7015),s=i(6716),o=r.Buffer,a=r.kMaxLength,l=global.crypto||global.msCrypto,c=Math.pow(2,32)-1;function h(t,e){if("number"!=typeof t||t!=t)throw new TypeError("offset must be a number");if(t>c||t<0)throw new TypeError("offset must be a uint32");if(t>a||t>e)throw new RangeError("offset out of range")}function u(t,e,i){if("number"!=typeof t||t!=t)throw new TypeError("size must be a number");if(t>c||t<0)throw new TypeError("size must be a uint32");if(t+e>i||t>a)throw new RangeError("buffer too small")}function d(t,e,i,n){if(process.browser){var r=new Uint8Array(t.buffer,e,i);return l.getRandomValues(r),n?void process.nextTick(function(){n(null,t)}):t}if(!n)return s(i).copy(t,e),t;s(i,function(i,r){if(i)return n(i);r.copy(t,e),n(null,t)})}l&&l.getRandomValues||!process.browser?(e.randomFill=function(t,e,i,n){if(!(o.isBuffer(t)||t instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof e)n=e,e=0,i=t.length;else if("function"==typeof i)n=i,i=t.length-e;else if("function"!=typeof n)throw new TypeError('"cb" argument must be a function');return h(e,t.length),u(i,e,t.length),d(t,e,i,n)},e.randomFillSync=function(t,e,i){if(void 0===e&&(e=0),!(o.isBuffer(t)||t instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return h(e,t.length),void 0===i&&(i=t.length-e),u(i,e,t.length),d(t,e,i)}):(e.randomFill=n,e.randomFillSync=n)},1552:t=>{"use strict";var e={};function i(t,i,n){n||(n=Error);var r=function(t){var e,n;function r(e,n,r){return t.call(this,function(t,e,n){return"string"==typeof i?i:i(t,e,n)}(e,n,r))||this}return n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,r}(n);r.prototype.name=n.name,r.prototype.code=t,e[t]=r}function n(t,e){if(Array.isArray(t)){var i=t.length;return t=t.map(function(t){return String(t)}),i>2?"one of ".concat(e," ").concat(t.slice(0,i-1).join(", "),", or ")+t[i-1]:2===i?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}i("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError),i("ERR_INVALID_ARG_TYPE",function(t,e,i){var r,s,o,a;if("string"==typeof e&&"not "===e.substr(0,"not ".length)?(r="must not be",e=e.replace(/^not /,"")):r="must be",function(t,e,i){return(void 0===i||i>t.length)&&(i=t.length),t.substring(i-e.length,i)===e}(t," argument"))s="The ".concat(t," ").concat(r," ").concat(n(e,"type"));else{var l=("number"!=typeof a&&(a=0),a+".".length>(o=t).length||-1===o.indexOf(".",a)?"argument":"property");s='The "'.concat(t,'" ').concat(l," ").concat(r," ").concat(n(e,"type"))}return s+". Received type ".concat(typeof i)},TypeError),i("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),i("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"}),i("ERR_STREAM_PREMATURE_CLOSE","Premature close"),i("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"}),i("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),i("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),i("ERR_STREAM_WRITE_AFTER_END","write after end"),i("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),i("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError),i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.q=e},9847:(t,e,i)=>{"use strict";var n=Object.keys||function(t){var e=[];for(var i in t)e.push(i);return e};t.exports=c;var r=i(617),s=i(4374);i(5457)(c,r);for(var o=n(s.prototype),a=0;a{"use strict";t.exports=r;var n=i(5774);function r(t){if(!(this instanceof r))return new r(t);n.call(this,t)}i(5457)(r,n),r.prototype._transform=function(t,e,i){i(null,t)}},617:(t,e,i)=>{"use strict";var n;t.exports=A,A.ReadableState=C,i(5068);var r,s=function(t,e){return t.listeners(e).length},o=i(6787),a=i(3833).Buffer,l=global.Uint8Array||function(){},c=i(4616);r=c&&c.debuglog?c.debuglog("stream"):function(){};var h,u,d,p=i(1062),f=i(2742),m=i(6187).getHighWaterMark,g=i(1552).q,y=g.ERR_INVALID_ARG_TYPE,b=g.ERR_STREAM_PUSH_AFTER_EOF,v=g.ERR_METHOD_NOT_IMPLEMENTED,_=g.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;i(5457)(A,o);var w=f.errorOrDestroy,x=["error","close","destroy","pause","resume"];function C(t,e,r){n=n||i(9847),"boolean"!=typeof r&&(r=e instanceof n),this.objectMode=!!(t=t||{}).objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=m(this,t,"readableHighWaterMark",r),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(h||(h=i(4706).s),this.decoder=new h(t.encoding),this.encoding=t.encoding)}function A(t){if(n=n||i(9847),!(this instanceof A))return new A(t);this._readableState=new C(t,this,this instanceof n),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),o.call(this)}function S(t,e,i,n,s){r("readableAddChunk",e);var o,c=t._readableState;if(null===e)c.reading=!1,function(t,e){if(r("onEofChunk"),!e.ended){if(e.decoder){var i=e.decoder.end();i&&i.length&&(e.buffer.push(i),e.length+=e.objectMode?1:i.length)}e.ended=!0,e.sync?M(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,L(t)))}}(t,c);else if(s||(o=function(t,e){var i,n;return a.isBuffer(n=e)||n instanceof l||"string"==typeof e||void 0===e||t.objectMode||(i=new y("chunk",["string","Buffer","Uint8Array"],e)),i}(c,e)),o)w(t,o);else if(c.objectMode||e&&e.length>0)if("string"==typeof e||c.objectMode||Object.getPrototypeOf(e)===a.prototype||(e=function(t){return a.from(t)}(e)),n)c.endEmitted?w(t,new _):E(t,c,e,!0);else if(c.ended)w(t,new b);else{if(c.destroyed)return!1;c.reading=!1,c.decoder&&!i?(e=c.decoder.write(e),c.objectMode||0!==e.length?E(t,c,e,!1):I(t,c)):E(t,c,e,!1)}else n||(c.reading=!1,I(t,c));return!c.ended&&(c.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=k?t=k:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function M(t){var e=t._readableState;r("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(r("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(L,t))}function L(t){var e=t._readableState;r("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,P(t)}function I(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(O,t,e))}function O(t,e){for(;!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function R(t){r("readable nexttick read 0"),t.read(0)}function N(t,e){r("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),P(t),e.flowing&&!e.reading&&t.read(0)}function P(t){var e=t._readableState;for(r("flow",e.flowing);e.flowing&&null!==t.read(););}function F(t,e){return 0===e.length?null:(e.objectMode?i=e.buffer.shift():!t||t>=e.length?(i=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):i=e.buffer.consume(t,e.decoder),i);var i}function Z(t){var e=t._readableState;r("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(B,e,t))}function B(t,e){if(r("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var i=e._writableState;(!i||i.autoDestroy&&i.finished)&&e.destroy()}}function U(t,e){for(var i=0,n=t.length;i=e.highWaterMark:e.length>0)||e.ended))return r("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?Z(this):M(this),null;if(0===(t=T(t,e))&&e.ended)return 0===e.length&&Z(this),null;var n,s=e.needReadable;return r("need readable",s),(0===e.length||e.length-t0?F(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),i!==t&&e.ended&&Z(this)),null!==n&&this.emit("data",n),n},A.prototype._read=function(t){w(this,new v("_read()"))},A.prototype.pipe=function(t,e){var i=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,r("pipe count=%d opts=%j",n.pipesCount,e);var o=e&&!1===e.end||t===process.stdout||t===process.stderr?f:a;function a(){r("onend"),t.end()}n.endEmitted?process.nextTick(o):i.once("end",o),t.on("unpipe",function e(s,o){r("onunpipe"),s===i&&o&&!1===o.hasUnpiped&&(o.hasUnpiped=!0,r("cleanup"),t.removeListener("close",d),t.removeListener("finish",p),t.removeListener("drain",l),t.removeListener("error",u),t.removeListener("unpipe",e),i.removeListener("end",a),i.removeListener("end",f),i.removeListener("data",h),c=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||l())});var l=function(t){return function(){var e=t._readableState;r("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&s(t,"data")&&(e.flowing=!0,P(t))}}(i);t.on("drain",l);var c=!1;function h(e){r("ondata");var s=t.write(e);r("dest.write",s),!1===s&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==U(n.pipes,t))&&!c&&(r("false write response, pause",n.awaitDrain),n.awaitDrain++),i.pause())}function u(e){r("onerror",e),f(),t.removeListener("error",u),0===s(t,"error")&&w(t,e)}function d(){t.removeListener("finish",p),f()}function p(){r("onfinish"),t.removeListener("close",d),f()}function f(){r("unpipe"),i.unpipe(t)}return i.on("data",h),function(t,e,i){if("function"==typeof t.prependListener)return t.prependListener(e,i);t._events&&t._events.error?Array.isArray(t._events.error)?t._events.error.unshift(i):t._events.error=[i,t._events.error]:t.on(e,i)}(t,"error",u),t.once("close",d),t.once("finish",p),t.emit("pipe",i),n.flowing||(r("pipe resume"),i.resume()),t},A.prototype.unpipe=function(t){var e=this._readableState,i={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,i)),this;if(!t){var n=e.pipes,r=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,r("on readable",n.length,n.reading),n.length?M(this):n.reading||process.nextTick(R,this))),i},A.prototype.removeListener=function(t,e){var i=o.prototype.removeListener.call(this,t,e);return"readable"===t&&process.nextTick(D,this),i},A.prototype.removeAllListeners=function(t){var e=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||process.nextTick(D,this),e},A.prototype.resume=function(){var t=this._readableState;return t.flowing||(r("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(N,t,e))}(this,t)),t.paused=!1,this},A.prototype.pause=function(){return r("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(r("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(t){var e=this,i=this._readableState,n=!1;for(var s in t.on("end",function(){if(r("wrapped end"),i.decoder&&!i.ended){var t=i.decoder.end();t&&t.length&&e.push(t)}e.push(null)}),t.on("data",function(s){r("wrapped data"),i.decoder&&(s=i.decoder.write(s)),i.objectMode&&null==s||(i.objectMode||s&&s.length)&&(e.push(s)||(n=!0,t.pause()))}),t)void 0===this[s]&&"function"==typeof t[s]&&(this[s]=function(e){return function(){return t[e].apply(t,arguments)}}(s));for(var o=0;o{"use strict";t.exports=h;var n=i(1552).q,r=n.ERR_METHOD_NOT_IMPLEMENTED,s=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=n.ERR_TRANSFORM_WITH_LENGTH_0,l=i(9847);function c(t,e){var i=this._transformState;i.transforming=!1;var n=i.writecb;if(null===n)return this.emit("error",new s);i.writechunk=null,i.writecb=null,null!=e&&this.push(e),n(t);var r=this._readableState;r.reading=!1,(r.needReadable||r.length{"use strict";function n(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,i){var n=t.entry;for(t.entry=null;n;){var r=n.callback;e.pendingcb--,r(void 0),n=n.next}e.corkedRequestsFree.next=t}(e,t)}}var r;t.exports=A,A.WritableState=C;var s,o={deprecate:i(5435)},a=i(6787),l=i(3833).Buffer,c=global.Uint8Array||function(){},h=i(2742),u=i(6187).getHighWaterMark,d=i(1552).q,p=d.ERR_INVALID_ARG_TYPE,f=d.ERR_METHOD_NOT_IMPLEMENTED,m=d.ERR_MULTIPLE_CALLBACK,g=d.ERR_STREAM_CANNOT_PIPE,y=d.ERR_STREAM_DESTROYED,b=d.ERR_STREAM_NULL_VALUES,v=d.ERR_STREAM_WRITE_AFTER_END,_=d.ERR_UNKNOWN_ENCODING,w=h.errorOrDestroy;function x(){}function C(t,e,s){r=r||i(9847),"boolean"!=typeof s&&(s=e instanceof r),this.objectMode=!!(t=t||{}).objectMode,s&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=u(this,t,"writableHighWaterMark",s),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1,this.decodeStrings=!(!1===t.decodeStrings),this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var i=t._writableState,n=i.sync,r=i.writecb;if("function"!=typeof r)throw new m;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(i),e)!function(t,e,i,n,r){--e.pendingcb,i?(process.nextTick(r,n),process.nextTick(L,t,e),t._writableState.errorEmitted=!0,w(t,n)):(r(n),t._writableState.errorEmitted=!0,w(t,n),L(t,e))}(t,i,n,e,r);else{var s=T(i)||t.destroyed;s||i.corked||i.bufferProcessing||!i.bufferedRequest||k(t,i),n?process.nextTick(E,t,i,s,r):E(t,i,s,r)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function A(t){var e=this instanceof(r=r||i(9847));if(!e&&!s.call(A,this))return new A(t);this._writableState=new C(t,this,e),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),a.call(this)}function S(t,e,i,n,r,s,o){e.writelen=n,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new y("write")):i?t._writev(r,e.onwrite):t._write(r,s,e.onwrite),e.sync=!1}function E(t,e,i,n){i||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),L(t,e)}function k(t,e){e.bufferProcessing=!0;var i=e.bufferedRequest;if(t._writev&&i&&i.next){var r=new Array(e.bufferedRequestCount),s=e.corkedRequestsFree;s.entry=i;for(var o=0,a=!0;i;)r[o]=i,i.isBuf||(a=!1),i=i.next,o+=1;r.allBuffers=a,S(t,e,!0,e.length,r,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new n(e),e.bufferedRequestCount=0}else{for(;i;){var l=i.chunk;if(S(t,e,!1,e.objectMode?1:l.length,l,i.encoding,i.callback),i=i.next,e.bufferedRequestCount--,e.writing)break}null===i&&(e.lastBufferedRequest=null)}e.bufferedRequest=i,e.bufferProcessing=!1}function T(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function M(t,e){t._final(function(i){e.pendingcb--,i&&w(t,i),e.prefinished=!0,t.emit("prefinish"),L(t,e)})}function L(t,e){var i=T(e);if(i&&(function(t,e){e.prefinished||e.finalCalled||("function"!=typeof t._final||e.destroyed?(e.prefinished=!0,t.emit("prefinish")):(e.pendingcb++,e.finalCalled=!0,process.nextTick(M,t,e)))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){var n=t._readableState;(!n||n.autoDestroy&&n.endEmitted)&&t.destroy()}return i}i(5457)(A,a),C.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(C.prototype,"buffer",{get:o.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(s=Function.prototype[Symbol.hasInstance],Object.defineProperty(A,Symbol.hasInstance,{value:function(t){return!!s.call(this,t)||this===A&&t&&t._writableState instanceof C}})):s=function(t){return t instanceof this},A.prototype.pipe=function(){w(this,new g)},A.prototype.write=function(t,e,i){var n,r=this._writableState,s=!1,o=!r.objectMode&&(l.isBuffer(n=t)||n instanceof c);return o&&!l.isBuffer(t)&&(t=function(t){return l.from(t)}(t)),"function"==typeof e&&(i=e,e=null),o?e="buffer":e||(e=r.defaultEncoding),"function"!=typeof i&&(i=x),r.ending?function(t,e){var i=new v;w(t,i),process.nextTick(e,i)}(this,i):(o||function(t,e,i,n){var r;return null===i?r=new b:"string"==typeof i||e.objectMode||(r=new p("chunk",["string","Buffer"],i)),!r||(w(t,r),process.nextTick(n,r),!1)}(this,r,t,i))&&(r.pendingcb++,s=function(t,e,i,n,r,s){if(!i){var o=function(t,e,i){return t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=l.from(e,i)),e}(e,n,r);n!==o&&(i=!0,r="buffer",n=o)}var a=e.objectMode?1:n.length;e.length+=a;var c=e.length-1))throw new _(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(t,e,i){i(new f("_write()"))},A.prototype._writev=null,A.prototype.end=function(t,e,i){var n=this._writableState;return"function"==typeof t?(i=t,t=null,e=null):"function"==typeof e&&(i=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,i){e.ending=!0,L(t,e),i&&(e.finished?process.nextTick(i):t.once("finish",i)),e.ended=!0,t.writable=!1}(this,n,i),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),A.prototype.destroy=h.destroy,A.prototype._undestroy=h.undestroy,A.prototype._destroy=function(t,e){e(t)}},4536:(t,e,i)=>{"use strict";var n;function r(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}var s=i(6484),o=Symbol("lastResolve"),a=Symbol("lastReject"),l=Symbol("error"),c=Symbol("ended"),h=Symbol("lastPromise"),u=Symbol("handlePromise"),d=Symbol("stream");function p(t,e){return{value:t,done:e}}function f(t){var e=t[o];if(null!==e){var i=t[d].read();null!==i&&(t[h]=null,t[o]=null,t[a]=null,e(p(i,!1)))}}function m(t){process.nextTick(f,t)}var g=Object.getPrototypeOf(function(){}),y=Object.setPrototypeOf((r(n={get stream(){return this[d]},next:function(){var t=this,e=this[l];if(null!==e)return Promise.reject(e);if(this[c])return Promise.resolve(p(void 0,!0));if(this[d].destroyed)return new Promise(function(e,i){process.nextTick(function(){t[l]?i(t[l]):e(p(void 0,!0))})});var i,n=this[h];if(n)i=new Promise(function(t,e){return function(i,n){t.then(function(){e[c]?i(p(void 0,!0)):e[u](i,n)},n)}}(n,this));else{var r=this[d].read();if(null!==r)return Promise.resolve(p(r,!1));i=new Promise(this[u])}return this[h]=i,i}},Symbol.asyncIterator,function(){return this}),r(n,"return",function(){var t=this;return new Promise(function(e,i){t[d].destroy(null,function(t){t?i(t):e(p(void 0,!0))})})}),n),g);t.exports=function(t){var e,i=Object.create(y,(r(e={},d,{value:t,writable:!0}),r(e,o,{value:null,writable:!0}),r(e,a,{value:null,writable:!0}),r(e,l,{value:null,writable:!0}),r(e,c,{value:t._readableState.endEmitted,writable:!0}),r(e,u,{value:function(t,e){var n=i[d].read();n?(i[h]=null,i[o]=null,i[a]=null,t(p(n,!1))):(i[o]=t,i[a]=e)},writable:!0}),e));return i[h]=null,s(t,function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=i[a];return null!==e&&(i[h]=null,i[o]=null,i[a]=null,e(t)),void(i[l]=t)}var n=i[o];null!==n&&(i[h]=null,i[o]=null,i[a]=null,n(p(void 0,!0))),i[c]=!0}),t.on("readable",m.bind(null,i)),i}},1062:(t,e,i)=>{"use strict";function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),i.push.apply(i,n)}return i}function r(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}var s=i(3833).Buffer,o=i(2361).inspect,a=o&&o.custom||"inspect";t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}var e;return(e=[{key:"push",value:function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return this.head=1===this.length?this.tail=null:this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,i=""+e.data;e=e.next;)i+=t+e.data;return i}},{key:"concat",value:function(t){if(0===this.length)return s.alloc(0);for(var e=s.allocUnsafe(t>>>0),i=this.head,n=0;i;)s.prototype.copy.call(i.data,e,n),n+=i.data.length,i=i.next;return e}},{key:"consume",value:function(t,e){var i;return tr.length?r.length:t;if(n+=s===r.length?r:r.slice(0,t),0==(t-=s)){s===r.length?(++i,this.head=e.next?e.next:this.tail=null):(this.head=e,e.data=r.slice(s));break}++i}return this.length-=i,n}},{key:"_getBuffer",value:function(t){var e=s.allocUnsafe(t),i=this.head,n=1;for(i.data.copy(e),t-=i.data.length;i=i.next;){var r=i.data,o=t>r.length?r.length:t;if(r.copy(e,e.length-t,0,o),0==(t-=o)){o===r.length?(++n,this.head=i.next?i.next:this.tail=null):(this.head=i,i.data=r.slice(o));break}++n}return this.length-=n,e}},{key:a,value:function(t,e){return o(this,function(t){for(var e=1;e{"use strict";function e(t,e){n(t,e),i(t)}function i(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function n(t,e){t.emit("error",e)}t.exports={destroy:function(t,r){var s=this;return this._readableState&&this._readableState.destroyed||this._writableState&&this._writableState.destroyed?(r?r(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(n,this,t)):process.nextTick(n,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(t){!r&&t?s._writableState?s._writableState.errorEmitted?process.nextTick(i,s):(s._writableState.errorEmitted=!0,process.nextTick(e,s,t)):process.nextTick(e,s,t):r?(process.nextTick(i,s),r(t)):process.nextTick(i,s)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var i=t._readableState,n=t._writableState;i&&i.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}}},6484:(t,e,i)=>{"use strict";var n=i(1552).q.ERR_STREAM_PREMATURE_CLOSE;function r(){}t.exports=function t(e,i,s){if("function"==typeof i)return t(e,null,i);i||(i={}),s=function(t){var e=!1;return function(){if(!e){e=!0;for(var i=arguments.length,n=new Array(i),r=0;r{t.exports=function(){throw new Error("Readable.from is not available in the browser")}},5802:(t,e,i)=>{"use strict";var n,r=i(1552).q,s=r.ERR_MISSING_ARGS,o=r.ERR_STREAM_DESTROYED;function a(t){if(t)throw t}function l(t,e,r,s){s=function(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}(s);var a=!1;t.on("close",function(){a=!0}),void 0===n&&(n=i(6484)),n(t,{readable:e,writable:r},function(t){if(t)return s(t);a=!0,s()});var l=!1;return function(e){if(!a&&!l)return l=!0,function(t){return t.setHeader&&"function"==typeof t.abort}(t)?t.abort():"function"==typeof t.destroy?t.destroy():void s(e||new o("pipe"))}}function c(t){t()}function h(t,e){return t.pipe(e)}function u(t){return t.length?"function"!=typeof t[t.length-1]?a:t.pop():a}t.exports=function(){for(var t=arguments.length,e=new Array(t),i=0;i0,function(t){n||(n=t),t&&o.forEach(c),s||(o.forEach(c),r(n))})});return e.reduce(h)}},6187:(t,e,i)=>{"use strict";var n=i(1552).q.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,i,r){var s=function(t,e,i){return null!=t.highWaterMark?t.highWaterMark:e?t[i]:null}(e,r,i);if(null!=s){if(!isFinite(s)||Math.floor(s)!==s||s<0)throw new n(r?i:"highWaterMark",s);return Math.floor(s)}return t.objectMode?16:16384}}},6787:(t,e,i)=>{t.exports=i(5068).EventEmitter},7612:(t,e,i)=>{(e=t.exports=i(617)).Stream=e,e.Readable=e,e.Writable=i(4374),e.Duplex=i(9847),e.Transform=i(5774),e.PassThrough=i(9591),e.finished=i(6484),e.pipeline=i(5802)},3827:(t,e,i)=>{"use strict";var n=i(3833).Buffer,r=i(5457),s=i(7338),o=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],l=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],h=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],u=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function p(){s.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function f(t,e){return t<>>32-e}function m(t,e,i,n,r,s,o,a){return f(t+(e^i^n)+s+o|0,a)+r|0}function g(t,e,i,n,r,s,o,a){return f(t+(e&i|~e&n)+s+o|0,a)+r|0}function y(t,e,i,n,r,s,o,a){return f(t+((e|~i)^n)+s+o|0,a)+r|0}function b(t,e,i,n,r,s,o,a){return f(t+(e&n|i&~n)+s+o|0,a)+r|0}function v(t,e,i,n,r,s,o,a){return f(t+(e^(i|~n))+s+o|0,a)+r|0}r(p,s),p.prototype._update=function(){for(var t=o,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var i=0|this._a,n=0|this._b,r=0|this._c,s=0|this._d,p=0|this._e,_=0|this._a,w=0|this._b,x=0|this._c,C=0|this._d,A=0|this._e,S=0;S<80;S+=1){var E,k;S<16?(E=m(i,n,r,s,p,t[a[S]],u[0],c[S]),k=v(_,w,x,C,A,t[l[S]],d[0],h[S])):S<32?(E=g(i,n,r,s,p,t[a[S]],u[1],c[S]),k=b(_,w,x,C,A,t[l[S]],d[1],h[S])):S<48?(E=y(i,n,r,s,p,t[a[S]],u[2],c[S]),k=y(_,w,x,C,A,t[l[S]],d[2],h[S])):S<64?(E=b(i,n,r,s,p,t[a[S]],u[3],c[S]),k=g(_,w,x,C,A,t[l[S]],d[3],h[S])):(E=v(i,n,r,s,p,t[a[S]],u[4],c[S]),k=m(_,w,x,C,A,t[l[S]],d[4],h[S])),i=p,p=s,s=f(r,10),r=n,n=E,_=A,A=C,C=f(x,10),x=w,w=k}var T=this._b+r+C|0;this._b=this._c+s+A|0,this._c=this._d+p+_|0,this._d=this._e+i+w|0,this._e=this._a+n+x|0,this._a=T},p.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=n.alloc?n.alloc(20):new n(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=p},7425:(t,e,i)=>{"use strict";i.d(e,{X:()=>r});var n=i(9162),r=function(t){function e(e){var i=t.call(this)||this;return i._value=e,i}return(0,n.ZT)(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(e){var i=t.prototype._subscribe.call(this,e);return!i.closed&&e.next(this._value),i},e.prototype.getValue=function(){var t=this,e=t._value;if(t.hasError)throw t.thrownError;return this._throwIfClosed(),e},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(i(9666).x)},2391:(t,e,i)=>{"use strict";i.d(e,{y:()=>h});var n=i(9643),r=i(6042),s=i(3004),o=i(1879);function a(t){return 0===t.length?o.y:1===t.length?t[0]:function(e){return t.reduce(function(t,e){return e(t)},e)}}var l=i(7296),c=i(7849),h=function(){function t(t){t&&(this._subscribe=t)}return t.prototype.lift=function(e){var i=new t;return i.source=this,i.operator=e,i},t.prototype.subscribe=function(t,e,i){var s,o=(s=t)&&s instanceof n.Lv||function(t){return t&&(0,c.m)(t.next)&&(0,c.m)(t.error)&&(0,c.m)(t.complete)}(s)&&(0,r.Nn)(s)?t:new n.Hp(t,e,i);if(l.v.useDeprecatedSynchronousErrorHandling)this._deprecatedSyncErrorSubscribe(o);else{var a=this.operator,h=this.source;o.add(a?a.call(o,h):h?this._subscribe(o):this._trySubscribe(o))}return o},t.prototype._deprecatedSyncErrorSubscribe=function(t){var e=t;e._syncErrorHack_isSubscribing=!0;var i=this.operator;if(i)t.add(i.call(t,this.source));else try{t.add(this._subscribe(t))}catch(r){e.__syncError=r}for(var n=e;n;){if("__syncError"in n)try{throw n.__syncError}finally{t.unsubscribe()}n=n.destination}e._syncErrorHack_isSubscribing=!1},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},t.prototype.forEach=function(t,e){var i=this;return new(e=u(e))(function(e,n){var r;r=i.subscribe(function(e){try{t(e)}catch(i){n(i),null==r||r.unsubscribe()}},n,e)})},t.prototype._subscribe=function(t){var e;return null===(e=this.source)||void 0===e?void 0:e.subscribe(t)},t.prototype[s.L]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e{"use strict";i.d(e,{t:()=>o});var n=i(9162),r=i(9666),s=i(5170),o=function(t){function e(e,i,n){void 0===e&&(e=1/0),void 0===i&&(i=1/0),void 0===n&&(n=s.l);var r=t.call(this)||this;return r._bufferSize=e,r._windowTime=i,r._timestampProvider=n,r._buffer=[],r._infiniteTimeWindow=!0,r._infiniteTimeWindow=i===1/0,r._bufferSize=Math.max(1,e),r._windowTime=Math.max(1,i),r}return(0,n.ZT)(e,t),e.prototype.next=function(e){var i=this,n=i._buffer,r=i._infiniteTimeWindow,s=i._timestampProvider,o=i._windowTime;i.isStopped||(n.push(e),!r&&n.push(s.now()+o)),this._trimBuffer(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var e=this._innerSubscribe(t),i=this._infiniteTimeWindow,n=this._buffer.slice(),r=0;r{"use strict";i.d(e,{x:()=>l});var n=i(9162),r=i(2391),s=i(6042),o=(0,i(9951).d)(function(t){return function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),a=i(8764),l=function(t){function e(){var e=t.call(this)||this;return e.closed=!1,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return(0,n.ZT)(e,t),e.prototype.lift=function(t){var e=new c(this,this);return e.operator=t,e},e.prototype._throwIfClosed=function(){if(this.closed)throw new o},e.prototype.next=function(t){var e,i;if(this._throwIfClosed(),!this.isStopped){var r=this.observers.slice();try{for(var s=(0,n.XA)(r),o=s.next();!o.done;o=s.next())o.value.next(t)}catch(a){e={error:a}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(e)throw e.error}}}},e.prototype.error=function(t){if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;for(var e=this.observers;e.length;)e.shift().error(t)}},e.prototype.complete=function(){if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;for(var t=this.observers;t.length;)t.shift().complete()}},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,i=e.observers;return e.hasError||e.isStopped?s.Lc:(i.push(t),new s.w0(function(){return(0,a.P)(i,t)}))},e.prototype._checkFinalizedStatuses=function(t){var e=this,i=e.isStopped;e.hasError?t.error(e.thrownError):i&&t.complete()},e.prototype.asObservable=function(){var t=new r.y;return t.source=this,t},e.create=function(t,e){return new c(t,e)},e}(r.y),c=function(t){function e(e,i){var n=t.call(this)||this;return n.destination=e,n.source=i,n}return(0,n.ZT)(e,t),e.prototype.next=function(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,t)},e.prototype.error=function(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,t)},e.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},e.prototype._subscribe=function(t){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==i?i:s.Lc},e}(l)},9643:(t,e,i)=>{"use strict";i.d(e,{Hp:()=>p,Lv:()=>d});var n=i(9162),r=i(7849),s=i(6042),o=i(7296),a=i(2765),l=i(5397),c=h("C",void 0,void 0);function h(t,e,i){return{kind:t,value:e,error:i}}var u=i(4490),d=function(t){function e(e){var i=t.call(this)||this;return i.isStopped=!1,e?(i.destination=e,(0,s.Nn)(e)&&e.add(i)):i.destination=y,i}return(0,n.ZT)(e,t),e.create=function(t,e,i){return new p(t,e,i)},e.prototype.next=function(t){this.isStopped?g(function(t){return h("N",t,void 0)}(t),this):this._next(t)},e.prototype.error=function(t){this.isStopped?g(h("E",void 0,t),this):(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped?g(c,this):(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(s.w0),p=function(t){function e(e,i,n){var s,a=t.call(this)||this;if((0,r.m)(e))s=e;else if(e){var c;s=e.next,i=e.error,n=e.complete,a&&o.v.useDeprecatedNextContext?(c=Object.create(e)).unsubscribe=function(){return a.unsubscribe()}:c=e,s=null==s?void 0:s.bind(c),i=null==i?void 0:i.bind(c),n=null==n?void 0:n.bind(c)}return a.destination={next:s?f(s,a):l.Z,error:f(null!=i?i:m,a),complete:n?f(n,a):l.Z},a}return(0,n.ZT)(e,t),e}(d);function f(t,e){return function(){for(var i=[],r=0;r{"use strict";i.d(e,{Lc:()=>l,w0:()=>a,Nn:()=>c});var n=i(9162),r=i(7849),s=(0,i(9951).d)(function(t){return function(e){t(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map(function(t,e){return e+1+") "+t.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=e}}),o=i(8764),a=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._teardowns=null}var e;return t.prototype.unsubscribe=function(){var t,e,i,o,a;if(!this.closed){this.closed=!0;var l=this._parentage;if(l)if(this._parentage=null,Array.isArray(l))try{for(var c=(0,n.XA)(l),u=c.next();!u.done;u=c.next())u.value.remove(this)}catch(y){t={error:y}}finally{try{u&&!u.done&&(e=c.return)&&e.call(c)}finally{if(t)throw t.error}}else l.remove(this);var d=this.initialTeardown;if((0,r.m)(d))try{d()}catch(b){a=b instanceof s?b.errors:[b]}var p=this._teardowns;if(p){this._teardowns=null;try{for(var f=(0,n.XA)(p),m=f.next();!m.done;m=f.next()){var g=m.value;try{h(g)}catch(v){a=null!=a?a:[],v instanceof s?a=(0,n.ev)((0,n.ev)([],(0,n.CR)(a)),(0,n.CR)(v.errors)):a.push(v)}}}catch(_){i={error:_}}finally{try{m&&!m.done&&(o=f.return)&&o.call(f)}finally{if(i)throw i.error}}}if(a)throw new s(a)}},t.prototype.add=function(e){var i;if(e&&e!==this)if(this.closed)h(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._teardowns=null!==(i=this._teardowns)&&void 0!==i?i:[]).push(e)}},t.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},t.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},t.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&(0,o.P)(e,t)},t.prototype.remove=function(e){var i=this._teardowns;i&&(0,o.P)(i,e),e instanceof t&&e._removeParent(this)},t.EMPTY=((e=new t).closed=!0,e),t}(),l=a.EMPTY;function c(t){return t instanceof a||t&&"closed"in t&&(0,r.m)(t.remove)&&(0,r.m)(t.add)&&(0,r.m)(t.unsubscribe)}function h(t){(0,r.m)(t)?t():t.unsubscribe()}},7296:(t,e,i)=>{"use strict";i.d(e,{v:()=>n});var n={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},5868:(t,e,i)=>{"use strict";i.d(e,{a:()=>u});var n=i(2391),r=i(2846),s=i(5630),o=i(1879),a=i(8432),l=i(7070),c=i(9211),h=i(4659);function u(){for(var t=[],e=0;e{"use strict";i.d(e,{z:()=>a});var n=i(5813);function r(){return(0,n.J)(1)}var s=i(5622),o=i(7070);function a(){for(var t=[],e=0;e{"use strict";i.d(e,{P:()=>s});var n=i(2391),r=i(5630);function s(t){return new n.y(function(e){(0,r.Xf)(t()).subscribe(e)})}},4951:(t,e,i)=>{"use strict";i.d(e,{E:()=>n});var n=new(i(2391).y)(function(t){return t.complete()})},6891:(t,e,i)=>{"use strict";i.d(e,{D:()=>h});var n=i(2391),r=i(2846),s=i(5630),o=i(7070),a=i(4659),l=i(8432),c=i(9211);function h(){for(var t=[],e=0;e{"use strict";i.d(e,{Dp:()=>w,OO:()=>C,Xf:()=>x});var n=i(9162),r=i(3345),s=i(7849);function o(t){return(0,s.m)(null==t?void 0:t.then)}var a=i(3004),l=i(2391),c=i(6042),h=i(8006),u="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator",d=i(7491);function p(t,e){if(!t)throw new Error("Iterable cannot be null");return new l.y(function(i){var n=new c.w0;return n.add(e.schedule(function(){var r=t[Symbol.asyncIterator]();n.add(e.schedule(function(){var t=this;r.next().then(function(e){e.done?i.complete():(i.next(e.value),t.schedule())})}))})),n})}function f(t){return(0,s.m)(t[a.L])}function m(t){return(0,s.m)(null==t?void 0:t[u])}function g(t){return Symbol.asyncIterator&&(0,s.m)(null==t?void 0:t[Symbol.asyncIterator])}function y(t){return new TypeError("You provided "+(null!==t&&"object"==typeof t?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function b(t){return(0,n.FC)(this,arguments,function(){var e,i,r;return(0,n.Jh)(this,function(s){switch(s.label){case 0:e=t.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,(0,n.qq)(e.read())];case 3:return i=s.sent(),r=i.value,i.done?[4,(0,n.qq)(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,(0,n.qq)(r)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}})})}function v(t){return(0,s.m)(null==t?void 0:t.getReader)}var _=i(2765);function w(t,e){return e?function(t,e){if(null!=t){if(f(t))return function(t,e){return new l.y(function(i){var n=new c.w0;return n.add(e.schedule(function(){var r=t[a.L]();n.add(r.subscribe({next:function(t){n.add(e.schedule(function(){return i.next(t)}))},error:function(t){n.add(e.schedule(function(){return i.error(t)}))},complete:function(){n.add(e.schedule(function(){return i.complete()}))}}))})),n})}(t,e);if((0,r.z)(t))return(0,h.r)(t,e);if(o(t))return function(t,e){return new l.y(function(i){return e.schedule(function(){return t.then(function(t){i.add(e.schedule(function(){i.next(t),i.add(e.schedule(function(){return i.complete()}))}))},function(t){i.add(e.schedule(function(){return i.error(t)}))})})})}(t,e);if(g(t))return p(t,e);if(m(t))return function(t,e){return new l.y(function(i){var n;return i.add(e.schedule(function(){n=t[u](),(0,d.A)(i,e,function(){var t=n.next(),e=t.value;t.done?i.complete():(i.next(e),this.schedule())})})),function(){return(0,s.m)(null==n?void 0:n.return)&&n.return()}})}(t,e);if(v(t))return function(t,e){return p(b(t),e)}(t,e)}throw y(t)}(t,e):x(t)}function x(t){if(t instanceof l.y)return t;if(null!=t){if(f(t))return c=t,new l.y(function(t){var e=c[a.L]();if((0,s.m)(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if((0,r.z)(t))return C(t);if(o(t))return i=t,new l.y(function(t){i.then(function(e){t.closed||(t.next(e),t.complete())},function(e){return t.error(e)}).then(null,_.h)});if(g(t))return A(t);if(m(t))return e=t,new l.y(function(t){var i,r;try{for(var s=(0,n.XA)(e),o=s.next();!o.done;o=s.next())if(t.next(o.value),t.closed)return}catch(a){i={error:a}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(i)throw i.error}}t.complete()});if(v(t))return A(b(t))}var e,i,c;throw y(t)}function C(t){return new l.y(function(e){for(var i=0;i{"use strict";i.d(e,{h:()=>s});var n=i(8006),r=i(5630);function s(t,e){return e?(0,n.r)(t,e):(0,r.OO)(t)}},5960:(t,e,i)=>{"use strict";i.d(e,{R:()=>p});var n=i(9162),r=i(2391),s=i(7228),o=i(3345),a=i(7849),l=i(8432),c=i(5622),h=["addListener","removeListener"],u=["addEventListener","removeEventListener"],d=["on","off"];function p(t,e,i,m){if((0,a.m)(i)&&(m=i,i=void 0),m)return p(t,e,i).pipe((0,l.Z)(m));var g=(0,n.CR)(function(t){return(0,a.m)(t.addEventListener)&&(0,a.m)(t.removeEventListener)}(t)?u.map(function(n){return function(r){return t[n](e,r,i)}}):function(t){return(0,a.m)(t.addListener)&&(0,a.m)(t.removeListener)}(t)?h.map(f(t,e)):function(t){return(0,a.m)(t.on)&&(0,a.m)(t.off)}(t)?d.map(f(t,e)):[],2),y=g[0],b=g[1];if(!y&&(0,o.z)(t))return(0,s.z)(function(t){return p(t,e,i)})((0,c.h)(t));if(!y)throw new TypeError("Invalid event target");return new r.y(function(t){var e=function(){for(var e=[],i=0;i{"use strict";i.d(e,{T:()=>l});var n=i(5813),r=i(5622),s=i(5630),o=i(4951),a=i(7070);function l(){for(var t=[],e=0;e{"use strict";i.d(e,{of:()=>o});var n=i(5622),r=i(8006),s=i(7070);function o(){for(var t=[],e=0;e{"use strict";i.d(e,{_:()=>s});var n=i(2391),r=i(7849);function s(t,e){var i=(0,r.m)(t)?t:function(){return t},s=function(t){return t.error(i())};return new n.y(e?function(t){return e.schedule(s,0,t)}:s)}},8431:(t,e,i)=>{"use strict";i.d(e,{H:()=>a});var n=i(2391),r=i(2948),s=i(1495),o=i(2841);function a(t,e,i){void 0===t&&(t=0),void 0===i&&(i=r.P);var a=-1;return null!=e&&((0,s.K)(e)?i=e:a=e),new n.y(function(e){var n=(0,o.q)(t)?+t-i.now():t;n<0&&(n=0);var r=0;return i.schedule(function(){e.closed||(e.next(r++),0<=a?this.schedule(void 0,a):e.complete())},n)})}},4659:(t,e,i)=>{"use strict";i.d(e,{Q:()=>r});var n=i(9162),r=function(t){function e(e,i,n,r,s){var o=t.call(this,e)||this;return o.onFinalize=s,o._next=i?function(t){try{i(t)}catch(n){e.error(n)}}:t.prototype._next,o._error=r?function(t){try{r(t)}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._error,o._complete=n?function(){try{n()}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._complete,o}return(0,n.ZT)(e,t),e.prototype.unsubscribe=function(){var e,i=this.closed;t.prototype.unsubscribe.call(this),!i&&(null===(e=this.onFinalize)||void 0===e||e.call(this))},e}(i(9643).Lv)},9610:(t,e,i)=>{"use strict";i.d(e,{e:()=>l});var n=i(2948),r=i(3386),s=i(5630),o=i(4659),a=i(8431);function l(t,e){return void 0===e&&(e=n.P),i=function(){return(0,a.H)(t,e)},(0,r.e)(function(t,e){var n=!1,r=null,a=null,l=!1,c=function(){if(null==a||a.unsubscribe(),a=null,n){n=!1;var t=r;r=null,e.next(t)}l&&e.complete()},h=function(){a=null,l&&e.complete()};t.subscribe(new o.Q(e,function(t){n=!0,r=t,a||(0,s.Xf)(i()).subscribe(a=new o.Q(e,c,h))},function(){l=!0,(!n||!a||a.closed)&&e.complete()}))});var i}},1816:(t,e,i)=>{"use strict";i.d(e,{K:()=>o});var n=i(5630),r=i(4659),s=i(3386);function o(t){return(0,s.e)(function(e,i){var s,a=null,l=!1;a=e.subscribe(new r.Q(i,void 0,void 0,function(r){s=(0,n.Xf)(t(r,o(t)(e))),a?(a.unsubscribe(),a=null,s.subscribe(i)):l=!0})),l&&(a.unsubscribe(),a=null,s.subscribe(i))})}},8196:(t,e,i)=>{"use strict";i.d(e,{b:()=>s});var n=i(7228),r=i(7849);function s(t,e){return(0,r.m)(e)?(0,n.z)(t,e,1):(0,n.z)(t,1)}},5057:(t,e,i)=>{"use strict";i.d(e,{b:()=>o});var n=i(2948),r=i(3386),s=i(4659);function o(t,e){return void 0===e&&(e=n.z),(0,r.e)(function(i,n){var r=null,o=null,a=null,l=function(){if(r){r.unsubscribe(),r=null;var t=o;o=null,n.next(t)}};function c(){var i=a+t,n=e.now();n{"use strict";i.d(e,{d:()=>s});var n=i(3386),r=i(4659);function s(t){return(0,n.e)(function(e,i){var n=!1;e.subscribe(new r.Q(i,function(t){n=!0,i.next(t)},function(){n||i.next(t),i.complete()}))})}},6493:(t,e,i)=>{"use strict";i.d(e,{g:()=>u});var n=i(2948),r=i(5613),s=i(9056),o=i(3286),a=i(1096),l=i(7228);function c(t,e){return e?function(i){return(0,r.z)(e.pipe((0,s.q)(1),(0,o.l)()),i.pipe(c(t)))}:(0,l.z)(function(e,i){return t(e,i).pipe((0,s.q)(1),(0,a.h)(e))})}var h=i(8431);function u(t,e){void 0===e&&(e=n.z);var i=(0,h.H)(t,e);return c(function(){return i})}},6424:(t,e,i)=>{"use strict";i.d(e,{x:()=>o});var n=i(1879),r=i(3386),s=i(4659);function o(t,e){return void 0===e&&(e=n.y),t=null!=t?t:a,(0,r.e)(function(i,n){var r,o=!0;i.subscribe(new s.Q(n,function(i){var s=e(i);!o&&t(r,s)||(o=!1,r=s,n.next(i))}))})}function a(t,e){return t===e}},8868:(t,e,i)=>{"use strict";i.d(e,{h:()=>s});var n=i(3386),r=i(4659);function s(t,e){return(0,n.e)(function(i,n){var s=0;i.subscribe(new r.Q(n,function(i){return t.call(e,i,s++)&&n.next(i)}))})}},849:(t,e,i)=>{"use strict";i.d(e,{x:()=>r});var n=i(3386);function r(t){return(0,n.e)(function(e,i){try{e.subscribe(i)}finally{i.add(t)}})}},8606:(t,e,i)=>{"use strict";i.d(e,{P:()=>c});var n=i(7325),r=i(8868),s=i(9056),o=i(4370),a=i(5334),l=i(1879);function c(t,e){var i=arguments.length>=2;return function(c){return c.pipe(t?(0,r.h)(function(e,i){return t(e,i,c)}):l.y,(0,s.q)(1),i?(0,o.d)(e):(0,a.T)(function(){return new n.K}))}}},3286:(t,e,i)=>{"use strict";i.d(e,{l:()=>o});var n=i(3386),r=i(4659),s=i(5397);function o(){return(0,n.e)(function(t,e){t.subscribe(new r.Q(e,s.Z))})}},1681:(t,e,i)=>{"use strict";i.d(e,{U:()=>s});var n=i(3386),r=i(4659);function s(t,e){return(0,n.e)(function(i,n){var s=0;i.subscribe(new r.Q(n,function(i){n.next(t.call(e,i,s++))}))})}},1096:(t,e,i)=>{"use strict";i.d(e,{h:()=>r});var n=i(1681);function r(t){return(0,n.U)(function(){return t})}},5813:(t,e,i)=>{"use strict";i.d(e,{J:()=>s});var n=i(7228),r=i(1879);function s(t){return void 0===t&&(t=1/0),(0,n.z)(r.y,t)}},7228:(t,e,i)=>{"use strict";i.d(e,{z:()=>l});var n=i(1681),r=i(5630),s=i(3386),o=i(4659),a=i(7849);function l(t,e,i){return void 0===i&&(i=1/0),(0,a.m)(e)?l(function(i,s){return(0,n.U)(function(t,n){return e(i,t,s,n)})((0,r.Xf)(t(i,s)))},i):("number"==typeof e&&(i=e),(0,s.e)(function(e,n){return function(t,e,i,n,s,a,l,c){var h=[],u=0,d=0,p=!1,f=function(){!p||h.length||u||e.complete()},m=function(t){u++;var s=!1;(0,r.Xf)(i(t,d++)).subscribe(new o.Q(e,function(t){e.next(t)},function(){s=!0},void 0,function(){if(s)try{for(u--;h.length&&u{"use strict";i.d(e,{Q:()=>s});var n=i(3386),r=i(4659);function s(t,e){return void 0===e&&(e=0),(0,n.e)(function(i,n){i.subscribe(new r.Q(n,function(i){return n.add(t.schedule(function(){return n.next(i)},e))},function(){return n.add(t.schedule(function(){return n.complete()},e))},function(i){return n.add(t.schedule(function(){return n.error(i)},e))}))})}},8193:(t,e,i)=>{"use strict";i.d(e,{R:()=>o});var n=i(3386),r=i(4659);function s(t,e,i,n,s){return function(o,a){var l=i,c=e,h=0;o.subscribe(new r.Q(a,function(e){var i=h++;c=l?t(c,e,i):(l=!0,e),n&&a.next(c)},s&&function(){l&&a.next(c),a.complete()}))}}function o(t,e){return(0,n.e)(s(t,e,arguments.length>=2,!0))}},7839:(t,e,i)=>{"use strict";i.d(e,{B:()=>c});var n=i(9162),r=i(5630),s=i(9056),o=i(9666),a=i(9643),l=i(3386);function c(t){void 0===t&&(t={});var e=t.connector,i=void 0===e?function(){return new o.x}:e,n=t.resetOnError,s=void 0===n||n,c=t.resetOnComplete,u=void 0===c||c,d=t.resetOnRefCountZero,p=void 0===d||d;return function(t){var e=null,n=null,o=null,c=0,d=!1,f=!1,m=function(){null==n||n.unsubscribe(),n=null},g=function(){m(),e=o=null,d=f=!1},y=function(){var t=e;g(),null==t||t.unsubscribe()};return(0,l.e)(function(t,l){c++,f||d||m();var b=o=null!=o?o:i();l.add(function(){0!=--c||f||d||(n=h(y,p))}),b.subscribe(l),e||(e=new a.Hp({next:function(t){return b.next(t)},error:function(t){f=!0,m(),n=h(g,s,t),b.error(t)},complete:function(){d=!0,m(),n=h(g,u),b.complete()}}),(0,r.Dp)(t).subscribe(e))})(t)}}function h(t,e){for(var i=[],r=2;r{"use strict";i.d(e,{T:()=>r});var n=i(8868);function r(t){return(0,n.h)(function(e,i){return t<=i})}},1258:(t,e,i)=>{"use strict";i.d(e,{O:()=>o});var n=i(5613),r=i(7070),s=i(3386);function o(){for(var t=[],e=0;e{"use strict";i.d(e,{w:()=>o});var n=i(5630),r=i(3386),s=i(4659);function o(t,e){return(0,r.e)(function(i,r){var o=null,a=0,l=!1,c=function(){return l&&!o&&r.complete()};i.subscribe(new s.Q(r,function(i){null==o||o.unsubscribe();var l=0,h=a++;(0,n.Xf)(t(i,h)).subscribe(o=new s.Q(r,function(t){return r.next(e?e(i,t,h,l++):t)},function(){o=null,c()}))},function(){l=!0,c()}))})}},9056:(t,e,i)=>{"use strict";i.d(e,{q:()=>o});var n=i(4951),r=i(3386),s=i(4659);function o(t){return t<=0?function(){return n.E}:(0,r.e)(function(e,i){var n=0;e.subscribe(new s.Q(i,function(e){++n<=t&&(i.next(e),t<=n&&i.complete())}))})}},9568:(t,e,i)=>{"use strict";i.d(e,{R:()=>a});var n=i(3386),r=i(4659),s=i(5630),o=i(5397);function a(t){return(0,n.e)(function(e,i){(0,s.Xf)(t).subscribe(new r.Q(i,function(){return i.complete()},o.Z)),!i.closed&&e.subscribe(i)})}},343:(t,e,i)=>{"use strict";i.d(e,{b:()=>a});var n=i(7849),r=i(3386),s=i(4659),o=i(1879);function a(t,e,i){var a=(0,n.m)(t)||e||i?{next:t,error:e,complete:i}:t;return a?(0,r.e)(function(t,e){t.subscribe(new s.Q(e,function(t){var i;null===(i=a.next)||void 0===i||i.call(a,t),e.next(t)},function(){var t;null===(t=a.complete)||void 0===t||t.call(a),e.complete()},function(t){var i;null===(i=a.error)||void 0===i||i.call(a,t),e.error(t)}))}):o.y}},5334:(t,e,i)=>{"use strict";i.d(e,{T:()=>o});var n=i(7325),r=i(3386),s=i(4659);function o(t){return void 0===t&&(t=a),(0,r.e)(function(e,i){var n=!1;e.subscribe(new s.Q(i,function(t){n=!0,i.next(t)},function(){return n?i.complete():i.error(t())}))})}function a(){return new n.K}},7411:(t,e,i)=>{"use strict";i.d(e,{V:()=>u});var n=i(2948),r=i(2841),s=i(3386),o=i(5630),a=i(9951),l=i(7491),c=i(4659),h=(0,a.d)(function(t){return function(e){void 0===e&&(e=null),t(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=e}});function u(t,e){var i=(0,r.q)(t)?{first:t}:"number"==typeof t?{each:t}:t,a=i.first,h=i.each,u=i.with,p=void 0===u?d:u,f=i.scheduler,m=void 0===f?null!=e?e:n.z:f,g=i.meta,y=void 0===g?null:g;if(null==a&&null==h)throw new TypeError("No timeout provided.");return(0,s.e)(function(t,e){var i,n,r=null,s=0,u=function(t){n=(0,l.A)(e,m,function(){i.unsubscribe(),(0,o.Xf)(p({meta:y,lastValue:r,seen:s})).subscribe(e)},t)};i=t.subscribe(new c.Q(e,function(t){null==n||n.unsubscribe(),s++,e.next(r=t),h>0&&u(h)},void 0,void 0,function(){(null==n?void 0:n.closed)||null==n||n.unsubscribe(),r=null})),u(null!=a?"number"==typeof a?a:+a-m.now():h)})}function d(t){throw new h(t)}},5653:(t,e,i)=>{"use strict";i.d(e,{M:()=>h});var n=i(9162),r=i(3386),s=i(4659),o=i(5630),a=i(1879),l=i(5397),c=i(7070);function h(){for(var t=[],e=0;e{"use strict";i.d(e,{r:()=>r});var n=i(2391);function r(t,e){return new n.y(function(i){var n=0;return e.schedule(function(){n===t.length?i.complete():(i.next(t[n++]),i.closed||this.schedule())})})}},6551:(t,e,i)=>{"use strict";i.d(e,{o:()=>a});var n=i(9162),r=function(t){function e(e,i){return t.call(this)||this}return(0,n.ZT)(e,t),e.prototype.schedule=function(t,e){return void 0===e&&(e=0),this},e}(i(6042).w0),s={setInterval:function(){for(var t=[],e=0;e{"use strict";i.d(e,{v:()=>o});var n=i(9162),r=i(5170),s=function(){function t(e,i){void 0===i&&(i=t.now),this.schedulerActionCtor=e,this.now=i}return t.prototype.schedule=function(t,e,i){return void 0===e&&(e=0),new this.schedulerActionCtor(this,t).schedule(i,e)},t.now=r.l.now,t}(),o=function(t){function e(e,i){void 0===i&&(i=s.now);var n=t.call(this,e,i)||this;return n.actions=[],n._active=!1,n._scheduled=void 0,n}return(0,n.ZT)(e,t),e.prototype.flush=function(t){var e=this.actions;if(this._active)e.push(t);else{var i;this._active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}},e}(s)},7911:(t,e,i)=>{"use strict";i.d(e,{E:()=>p});var n,r=i(9162),s=i(6551),o=1,a={};function l(t){return t in a&&(delete a[t],!0)}var c=function(t){var e=o++;return a[e]=!0,n||(n=Promise.resolve()),n.then(function(){return l(e)&&t()}),e},h=function(t){l(t)},u={setImmediate:function(){for(var t=[],e=0;e0?t.prototype.requestAsyncId.call(this,e,i,n):(e.actions.push(this),e._scheduled||(e._scheduled=u.setImmediate(e.flush.bind(e,void 0))))},e.prototype.recycleAsyncId=function(e,i,n){if(void 0===n&&(n=0),null!=n&&n>0||null==n&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,i,n);0===e.actions.length&&(u.clearImmediate(i),e._scheduled=void 0)},e}(s.o),p=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return(0,r.ZT)(e,t),e.prototype.flush=function(t){this._active=!0,this._scheduled=void 0;var e,i=this.actions,n=-1;t=t||i.shift();var r=i.length;do{if(e=t.execute(t.state,t.delay))break}while(++n{"use strict";i.d(e,{z:()=>r,P:()=>s});var n=i(6551),r=new(i(8106).v)(n.o),s=r},5170:(t,e,i)=>{"use strict";i.d(e,{l:()=>n});var n={now:function(){return(n.delegate||Date).now()},delegate:void 0}},2873:(t,e,i)=>{"use strict";i.d(e,{N:()=>s});var n=i(9162),r=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.scheduler=e,n.work=i,n}return(0,n.ZT)(e,t),e.prototype.schedule=function(e,i){return void 0===i&&(i=0),i>0?t.prototype.schedule.call(this,e,i):(this.delay=i,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,i){return i>0||this.closed?t.prototype.execute.call(this,e,i):this._execute(e,i)},e.prototype.requestAsyncId=function(e,i,n){return void 0===n&&(n=0),null!=n&&n>0||null==n&&this.delay>0?t.prototype.requestAsyncId.call(this,e,i,n):e.flush(this)},e}(i(6551).o),s=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return(0,n.ZT)(e,t),e}(i(8106).v))(r)},4490:(t,e,i)=>{"use strict";i.d(e,{z:()=>r});var n=i(9162),r={setTimeout:function(){for(var t=[],e=0;e{"use strict";i.d(e,{L:()=>n});var n="function"==typeof Symbol&&Symbol.observable||"@@observable"},7325:(t,e,i)=>{"use strict";i.d(e,{K:()=>n});var n=(0,i(9951).d)(function(t){return function(){t(this),this.name="EmptyError",this.message="no elements in sequence"}})},7070:(t,e,i)=>{"use strict";i.d(e,{jO:()=>o,yG:()=>a,_6:()=>l});var n=i(7849),r=i(1495);function s(t){return t[t.length-1]}function o(t){return(0,n.m)(s(t))?t.pop():void 0}function a(t){return(0,r.K)(s(t))?t.pop():void 0}function l(t,e){return"number"==typeof s(t)?t.pop():e}},2846:(t,e,i)=>{"use strict";i.d(e,{D:()=>a});var n=Array.isArray,r=Object.getPrototypeOf,s=Object.prototype,o=Object.keys;function a(t){if(1===t.length){var e=t[0];if(n(e))return{args:e,keys:null};if((a=e)&&"object"==typeof a&&r(a)===s){var i=o(e);return{args:i.map(function(t){return e[t]}),keys:i}}}var a;return{args:t,keys:null}}},8764:(t,e,i)=>{"use strict";function n(t,e){if(t){var i=t.indexOf(e);0<=i&&t.splice(i,1)}}i.d(e,{P:()=>n})},7491:(t,e,i)=>{"use strict";function n(t,e,i,n){void 0===n&&(n=0);var r=e.schedule(function(){try{i.call(this)}catch(e){t.error(e)}},n);return t.add(r),r}i.d(e,{A:()=>n})},9951:(t,e,i)=>{"use strict";function n(t){var e=t(function(t){Error.call(t),t.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}i.d(e,{d:()=>n})},9211:(t,e,i)=>{"use strict";function n(t,e){return t.reduce(function(t,i,n){return t[i]=e[n],t},{})}i.d(e,{n:()=>n})},1879:(t,e,i)=>{"use strict";function n(t){return t}i.d(e,{y:()=>n})},3345:(t,e,i)=>{"use strict";i.d(e,{z:()=>n});var n=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t}},2841:(t,e,i)=>{"use strict";function n(t){return t instanceof Date&&!isNaN(t)}i.d(e,{q:()=>n})},7849:(t,e,i)=>{"use strict";function n(t){return"function"==typeof t}i.d(e,{m:()=>n})},4776:(t,e,i)=>{"use strict";i.d(e,{b:()=>s});var n=i(2391),r=i(7849);function s(t){return!!t&&(t instanceof n.y||(0,r.m)(t.lift)&&(0,r.m)(t.subscribe))}},1495:(t,e,i)=>{"use strict";i.d(e,{K:()=>r});var n=i(7849);function r(t){return t&&(0,n.m)(t.schedule)}},3386:(t,e,i)=>{"use strict";i.d(e,{A:()=>r,e:()=>s});var n=i(7849);function r(t){return(0,n.m)(null==t?void 0:t.lift)}function s(t){return function(e){if(r(e))return e.lift(function(e){try{return t(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}},8432:(t,e,i)=>{"use strict";i.d(e,{Z:()=>o});var n=i(9162),r=i(1681),s=Array.isArray;function o(t){return(0,r.U)(function(e){return function(t,e){return s(e)?t.apply(void 0,(0,n.ev)([],(0,n.CR)(e))):t(e)}(t,e)})}},5397:(t,e,i)=>{"use strict";function n(){}i.d(e,{Z:()=>n})},2765:(t,e,i)=>{"use strict";i.d(e,{h:()=>s});var n=i(7296),r=i(4490);function s(t){r.z.setTimeout(function(){var e=n.v.onUnhandledError;if(!e)throw t;e(t)})}},7015:(t,e,i)=>{var n=i(3833),r=n.Buffer;function s(t,e){for(var i in t)e[i]=t[i]}function o(t,e,i){return r(t,e,i)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(s(n,e),e.Buffer=o),s(r,o),o.from=function(t,e,i){if("number"==typeof t)throw new TypeError("Argument must not be a number");return r(t,e,i)},o.alloc=function(t,e,i){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=r(t);return void 0!==e?"string"==typeof i?n.fill(e,i):n.fill(e):n.fill(0),n},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},5968:(t,e,i)=>{"use strict";var n,r=i(3833),s=r.Buffer,o={};for(n in r)r.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(o[n]=r[n]);var a=o.Buffer={};for(n in s)s.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(a[n]=s[n]);if(o.Buffer.prototype=s.prototype,a.from&&a.from!==Uint8Array.from||(a.from=function(t,e,i){if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&void 0===t.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return s(t,e,i)}),a.alloc||(a.alloc=function(t,e,i){if("number"!=typeof t)throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var n=s(t);return e&&0!==e.length?"string"==typeof i?n.fill(e,i):n.fill(e):n.fill(0),n}),!o.kStringMaxLength)try{o.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(l){}o.constants||(o.constants={MAX_LENGTH:o.kMaxLength},o.kStringMaxLength&&(o.constants.MAX_STRING_LENGTH=o.kStringMaxLength)),t.exports=o},3747:(t,e,i)=>{var n=i(7015).Buffer;function r(t,e){this._block=n.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}r.prototype.update=function(t,e){"string"==typeof t&&(t=n.from(t,e=e||"utf8"));for(var i=this._block,r=this._blockSize,s=t.length,o=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var i=8*this._len;if(i<=4294967295)this._block.writeUInt32BE(i,this._blockSize-4);else{var n=(4294967295&i)>>>0;this._block.writeUInt32BE((i-n)/4294967296,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var r=this._hash();return t?r.toString(t):r},r.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=r},8687:(t,e,i)=>{var n=t.exports=function(t){t=t.toLowerCase();var e=n[t];if(!e)throw new Error(t+" is not supported (we accept pull requests)");return new e};n.sha=i(4673),n.sha1=i(766),n.sha224=i(3263),n.sha256=i(9201),n.sha384=i(7566),n.sha512=i(9248)},4673:(t,e,i)=>{var n=i(5457),r=i(3747),s=i(7015).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function l(){this.init(),this._w=a,r.call(this,64,56)}function c(t){return t<<30|t>>>2}function h(t,e,i,n){return 0===t?e&i|~e&n:2===t?e&i|e&n|i&n:e^i^n}n(l,r),l.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},l.prototype._update=function(t){for(var e,i=this._w,n=0|this._a,r=0|this._b,s=0|this._c,a=0|this._d,l=0|this._e,u=0;u<16;++u)i[u]=t.readInt32BE(4*u);for(;u<80;++u)i[u]=i[u-3]^i[u-8]^i[u-14]^i[u-16];for(var d=0;d<80;++d){var p=~~(d/20),f=0|((e=n)<<5|e>>>27)+h(p,r,s,a)+l+i[d]+o[p];l=a,a=s,s=c(r),r=n,n=f}this._a=n+this._a|0,this._b=r+this._b|0,this._c=s+this._c|0,this._d=a+this._d|0,this._e=l+this._e|0},l.prototype._hash=function(){var t=s.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=l},766:(t,e,i)=>{var n=i(5457),r=i(3747),s=i(7015).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function l(){this.init(),this._w=a,r.call(this,64,56)}function c(t){return t<<5|t>>>27}function h(t){return t<<30|t>>>2}function u(t,e,i,n){return 0===t?e&i|~e&n:2===t?e&i|e&n|i&n:e^i^n}n(l,r),l.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},l.prototype._update=function(t){for(var e,i=this._w,n=0|this._a,r=0|this._b,s=0|this._c,a=0|this._d,l=0|this._e,d=0;d<16;++d)i[d]=t.readInt32BE(4*d);for(;d<80;++d)i[d]=(e=i[d-3]^i[d-8]^i[d-14]^i[d-16])<<1|e>>>31;for(var p=0;p<80;++p){var f=~~(p/20),m=c(n)+u(f,r,s,a)+l+i[p]+o[f]|0;l=a,a=s,s=h(r),r=n,n=m}this._a=n+this._a|0,this._b=r+this._b|0,this._c=s+this._c|0,this._d=a+this._d|0,this._e=l+this._e|0},l.prototype._hash=function(){var t=s.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=l},3263:(t,e,i)=>{var n=i(5457),r=i(9201),s=i(3747),o=i(7015).Buffer,a=new Array(64);function l(){this.init(),this._w=a,s.call(this,64,56)}n(l,r),l.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},l.prototype._hash=function(){var t=o.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},t.exports=l},9201:(t,e,i)=>{var n=i(5457),r=i(3747),s=i(7015).Buffer,o=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function l(){this.init(),this._w=a,r.call(this,64,56)}function c(t,e,i){return i^t&(e^i)}function h(t,e,i){return t&e|i&(t|e)}function u(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function d(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function p(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}n(l,r),l.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},l.prototype._update=function(t){for(var e,i=this._w,n=0|this._a,r=0|this._b,s=0|this._c,a=0|this._d,l=0|this._e,f=0|this._f,m=0|this._g,g=0|this._h,y=0;y<16;++y)i[y]=t.readInt32BE(4*y);for(;y<64;++y)i[y]=0|(((e=i[y-2])>>>17|e<<15)^(e>>>19|e<<13)^e>>>10)+i[y-7]+p(i[y-15])+i[y-16];for(var b=0;b<64;++b){var v=g+d(l)+c(l,f,m)+o[b]+i[b]|0,_=u(n)+h(n,r,s)|0;g=m,m=f,f=l,l=a+v|0,a=s,s=r,r=n,n=v+_|0}this._a=n+this._a|0,this._b=r+this._b|0,this._c=s+this._c|0,this._d=a+this._d|0,this._e=l+this._e|0,this._f=f+this._f|0,this._g=m+this._g|0,this._h=g+this._h|0},l.prototype._hash=function(){var t=s.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=l},7566:(t,e,i)=>{var n=i(5457),r=i(9248),s=i(3747),o=i(7015).Buffer,a=new Array(160);function l(){this.init(),this._w=a,s.call(this,128,112)}n(l,r),l.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},l.prototype._hash=function(){var t=o.allocUnsafe(48);function e(e,i,n){t.writeInt32BE(e,n),t.writeInt32BE(i,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=l},9248:(t,e,i)=>{var n=i(5457),r=i(3747),s=i(7015).Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function l(){this.init(),this._w=a,r.call(this,128,112)}function c(t,e,i){return i^t&(e^i)}function h(t,e,i){return t&e|i&(t|e)}function u(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function d(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function f(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function g(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function y(t,e){return t>>>0>>0?1:0}n(l,r),l.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},l.prototype._update=function(t){for(var e=this._w,i=0|this._ah,n=0|this._bh,r=0|this._ch,s=0|this._dh,a=0|this._eh,l=0|this._fh,b=0|this._gh,v=0|this._hh,_=0|this._al,w=0|this._bl,x=0|this._cl,C=0|this._dl,A=0|this._el,S=0|this._fl,E=0|this._gl,k=0|this._hl,T=0;T<32;T+=2)e[T]=t.readInt32BE(4*T),e[T+1]=t.readInt32BE(4*T+4);for(;T<160;T+=2){var M=e[T-30],L=e[T-30+1],I=p(M,L),O=f(L,M),D=m(M=e[T-4],L=e[T-4+1]),R=g(L,M),N=e[T-32],P=e[T-32+1],F=O+e[T-14+1]|0,Z=I+e[T-14]+y(F,O)|0;Z=(Z=Z+D+y(F=F+R|0,R)|0)+N+y(F=F+P|0,P)|0,e[T]=Z,e[T+1]=F}for(var B=0;B<160;B+=2){Z=e[B],F=e[B+1];var U=h(i,n,r),q=h(_,w,x),z=u(i,_),H=u(_,i),Y=d(a,A),G=d(A,a),j=o[B],V=o[B+1],Q=c(a,l,b),W=c(A,S,E),J=k+G|0,X=v+Y+y(J,k)|0;X=(X=(X=X+Q+y(J=J+W|0,W)|0)+j+y(J=J+V|0,V)|0)+Z+y(J=J+F|0,F)|0;var K=H+q|0,$=z+U+y(K,H)|0;v=b,k=E,b=l,E=S,l=a,S=A,a=s+X+y(A=C+J|0,C)|0,s=r,C=x,r=n,x=w,n=i,w=_,i=X+$+y(_=J+K|0,J)|0}this._al=this._al+_|0,this._bl=this._bl+w|0,this._cl=this._cl+x|0,this._dl=this._dl+C|0,this._el=this._el+A|0,this._fl=this._fl+S|0,this._gl=this._gl+E|0,this._hl=this._hl+k|0,this._ah=this._ah+i+y(this._al,_)|0,this._bh=this._bh+n+y(this._bl,w)|0,this._ch=this._ch+r+y(this._cl,x)|0,this._dh=this._dh+s+y(this._dl,C)|0,this._eh=this._eh+a+y(this._el,A)|0,this._fh=this._fh+l+y(this._fl,S)|0,this._gh=this._gh+b+y(this._gl,E)|0,this._hh=this._hh+v+y(this._hl,k)|0},l.prototype._hash=function(){var t=s.allocUnsafe(64);function e(e,i,n){t.writeInt32BE(e,n),t.writeInt32BE(i,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=l},1339:function(t,e,i){!function(e){"use strict";var n={};t.exports?(n.bytesToHex=i(1774).bytesToHex,n.convertString=i(906),t.exports=a):(n.bytesToHex=e.convertHex.bytesToHex,n.convertString=e.convertString,e.sha256=a);var r=[];!function(){function t(t){for(var e=Math.sqrt(t),i=2;i<=e;i++)if(!(t%i))return!1;return!0}function e(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)t(i)&&(r[n]=e(Math.pow(i,1/3)),n++),i++}();var s=[],o=function(t,e,i){for(var n=t[0],o=t[1],a=t[2],l=t[3],c=t[4],h=t[5],u=t[6],d=t[7],p=0;p<64;p++){if(p<16)s[p]=0|e[i+p];else{var f=s[p-15],m=s[p-2];s[p]=((f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3)+s[p-7]+((m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10)+s[p-16]}var g=n&o^n&a^o&a,y=d+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&h^~c&u)+r[p]+s[p];d=u,u=h,h=c,c=l+y|0,l=a,a=o,o=n,n=y+(((n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22))+g)|0}t[0]=t[0]+n|0,t[1]=t[1]+o|0,t[2]=t[2]+a|0,t[3]=t[3]+l|0,t[4]=t[4]+c|0,t[5]=t[5]+h|0,t[6]=t[6]+u|0,t[7]=t[7]+d|0};function a(t,e){t.constructor===String&&(t=n.convertString.UTF8.stringToBytes(t));var i=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],r=function(t){for(var e=[],i=0,n=0;i>>5]|=t[i]<<24-n%32;return e}(t),s=8*t.length;r[s>>5]|=128<<24-s%32,r[15+(s+64>>9<<4)]=s;for(var a=0;a>>5]>>>24-i%32&255);return e}(i);return e&&e.asBytes?l:e&&e.asString?n.convertString.bytesToString(l):n.bytesToHex(l)}a.x2=function(t,e){return a(a(t,{asBytes:!0}),e)}}(this)},7562:(t,e,i)=>{t.exports=r;var n=i(5068).EventEmitter;function r(){n.call(this)}i(5457)(r,n),r.Readable=i(617),r.Writable=i(4374),r.Duplex=i(9847),r.Transform=i(5774),r.PassThrough=i(9591),r.finished=i(6484),r.pipeline=i(5802),r.Stream=r,r.prototype.pipe=function(t,e){var i=this;function r(e){t.writable&&!1===t.write(e)&&i.pause&&i.pause()}function s(){i.readable&&i.resume&&i.resume()}i.on("data",r),t.on("drain",s),t._isStdio||e&&!1===e.end||(i.on("end",a),i.on("close",l));var o=!1;function a(){o||(o=!0,t.end())}function l(){o||(o=!0,"function"==typeof t.destroy&&t.destroy())}function c(t){if(h(),0===n.listenerCount(this,"error"))throw t}function h(){i.removeListener("data",r),t.removeListener("drain",s),i.removeListener("end",a),i.removeListener("close",l),i.removeListener("error",c),t.removeListener("error",c),i.removeListener("end",h),i.removeListener("close",h),t.removeListener("close",h)}return i.on("error",c),t.on("error",c),i.on("end",h),i.on("close",h),t.on("close",h),t.emit("pipe",i),t}},4706:(t,e,i)=>{"use strict";var n=i(4160).Buffer,r=n.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function s(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(n.isEncoding===r||!r(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=l,this.end=c,e=4;break;case"utf8":this.fillLast=a,e=4;break;case"base64":this.text=h,this.end=u,e=3;break;default:return this.write=d,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function o(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function a(t){var e=this.lastTotal-this.lastNeed,i=function(t,e,i){if(128!=(192&e[0]))return t.lastNeed=0,"\ufffd";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"\ufffd";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"\ufffd"}}(this,t);return void 0!==i?i:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function l(t,e){if((t.length-e)%2==0){var i=t.toString("utf16le",e);if(i){var n=i.charCodeAt(i.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],i.slice(0,-1)}return i}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("utf16le",0,this.lastTotal-this.lastNeed):e}function h(t,e){var i=(t.length-e)%3;return 0===i?t.toString("base64",e):(this.lastNeed=3-i,this.lastTotal=3,1===i?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-i))}function u(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function d(t){return t.toString(this.encoding)}function p(t){return t&&t.length?this.write(t):""}e.s=s,s.prototype.write=function(t){if(0===t.length)return"";var e,i;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i=0?(r>0&&(t.lastNeed=r-1),r):--n=0?(r>0&&(t.lastNeed=r-2),r):--n=0?(r>0&&(2===r?r=0:t.lastNeed=r-3),r):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=i;var n=t.length-(i-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},s.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},4160:(t,e,i)=>{var n=i(3833),r=n.Buffer;function s(t,e){for(var i in t)e[i]=t[i]}function o(t,e,i){return r(t,e,i)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(s(n,e),e.Buffer=o),o.prototype=Object.create(r.prototype),s(r,o),o.from=function(t,e,i){if("number"==typeof t)throw new TypeError("Argument must not be a number");return r(t,e,i)},o.alloc=function(t,e,i){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=r(t);return void 0!==e?"string"==typeof i?n.fill(e,i):n.fill(e):n.fill(0),n},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},115:(t,e,i)=>{var n=i(5370);e.encode=n.encode,e.decode=n.decode},5370:(t,e)=>{"use strict";var i=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];e.encode=function(t){Buffer.isBuffer(t)||(t=new Buffer(t));for(var e,i,n=0,r=0,s=0,o=0,a=new Buffer(8*(e=t,i=Math.floor(e.length/5),e.length%5==0?i:i+1));n3?(o=(o=l&255>>s)<<(s=(s+5)%8)|(n+1>8-s,n++):(o=l>>8-(s+5)&31,0==(s=(s+5)%8)&&n++),a[r]="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567".charCodeAt(o),r++}for(n=r;n>>(n=(n+5)%8),s++,e=255&r<<8-n)}return o.slice(0,s)}},5435:t=>{function e(t){try{if(!global.localStorage)return!1}catch(i){return!1}var e=global.localStorage[t];return null!=e&&"true"===String(e).toLowerCase()}t.exports=function(t,i){if(e("noDeprecation"))return t;var n=!1;return function(){if(!n){if(e("throwDeprecation"))throw new Error(i);e("traceDeprecation")?console.trace(i):console.warn(i),n=!0}return t.apply(this,arguments)}}},9939:(t,e,i)=>{"use strict";i.d(e,{uq:()=>n,qe:()=>r,Xj:()=>s,gj:()=>o,Ql:()=>a,yA:()=>l,iK:()=>c,j5:()=>h,XQ:()=>u,BI:()=>d,UO:()=>p,RA:()=>f,qt:()=>m,cd:()=>g,Un:()=>y,ei:()=>b,Q2:()=>v,hc:()=>_,sX:()=>w,HI:()=>x,ab:()=>C,W2:()=>A,AE:()=>S,qH:()=>E,GL:()=>k,zj:()=>T,rR:()=>M,as:()=>L,kL:()=>I,Vb:()=>O,FA:()=>D,nL:()=>R,bJ:()=>N,q9:()=>P,dP:()=>F,zm:()=>Z,l3:()=>B,PP:()=>U,IR:()=>q,RE:()=>z,LW:()=>H,CR:()=>Y,y3:()=>G,bH:()=>j,o_:()=>V,gM:()=>Q,eW:()=>W,yL:()=>J,tk:()=>X,G0:()=>K,or:()=>$,zH:()=>tt,IZ:()=>et,ob:()=>it,np:()=>nt,UA:()=>rt,vI:()=>st,z6:()=>ot,od:()=>at,Nn:()=>lt,D8:()=>ct,LT:()=>ht,ER:()=>ut,N9:()=>dt,RS:()=>pt,rF:()=>ft,yw:()=>mt,xt:()=>gt,pu:()=>yt,p$:()=>bt,Ar:()=>vt,bm:()=>_t,lO:()=>wt,iG:()=>xt,k:()=>Ct,nb:()=>At,e8:()=>St,x$:()=>Et,IG:()=>kt,oP:()=>Tt,qs:()=>Mt,KK:()=>Lt,Is:()=>It,nz:()=>Ot,_O:()=>Dt,H1:()=>Rt,cU:()=>Nt,nB:()=>Pt,uj:()=>Ft,Zt:()=>Zt});const n="RESET_CL_STORE",r="UPDATE_API_CALL_STATUS_CL",s="SET_CHILD_NODE_SETTINGS_CL",o="FETCH_INFO_CL_CL",a="SET_INFO_CL",l="FETCH_FEES_CL",c="SET_FEES_CL",h="FETCH_FEE_RATES_CL",u="SET_FEE_RATES_CL",d="FETCH_BALANCE_CL",p="SET_BALANCE_CL",f="FETCH_LOCAL_REMOTE_BALANCE_CL",m="SET_LOCAL_REMOTE_BALANCE_CL",g="GET_NEW_ADDRESS_CL",y="SET_NEW_ADDRESS_CL",b="FETCH_UTXOS_CL",v="SET_UTXOS_CL",_="FETCH_PEERS_CL",w="SET_PEERS_CL",x="SAVE_NEW_PEER_CL",C="NEWLY_ADDED_PEER_CL",A="ADD_PEER_CL",S="DETACH_PEER_CL",E="REMOVE_PEER_CL",k="FETCH_CHANNELS_CL",T="SET_CHANNELS_CL",M="UPDATE_CHANNELS_CL",L="SAVE_NEW_CHANNEL_CL",I="CLOSE_CHANNEL_CL",O="REMOVE_CHANNEL_CL",D="FETCH_PAYMENTS_CL",R="SET_PAYMENTS_CL",N="DECODE_PAYMENT_CL",P="SET_DECODED_PAYMENT_CL",F="SEND_PAYMENT_CL",Z="SEND_PAYMENT_STATUS_CL",B="GET_QUERY_ROUTES_CL",U="SET_QUERY_ROUTES_CL",q="PEER_LOOKUP_CL",z="CHANNEL_LOOKUP_CL",H="INVOICE_LOOKUP_CL",Y="SET_LOOKUP_CL",G="GET_FORWARDING_HISTORY_CL",j="SET_FORWARDING_HISTORY_CL",V="GET_FAILED_FORWARDING_HISTORY_CL",Q="SET_FAILED_FORWARDING_HISTORY_CL",W="FETCH_INVOICES_CL",J="SET_INVOICES_CL",X="SAVE_NEW_INVOICE_CL",K="ADD_INVOICE_CL",$="UPDATE_INVOICE_CL",tt="DELETE_EXPIRED_INVOICE_CL",et="SET_CHANNEL_TRANSACTION_CL",it="SET_CHANNEL_TRANSACTION_RES_CL";class nt{constructor(t){this.payload=t,this.type=r}}class rt{constructor(t){this.payload=t,this.type=n}}class st{constructor(t){this.payload=t,this.type=s}}class ot{constructor(t){this.payload=t,this.type=o}}class at{constructor(){this.type=l}}class lt{constructor(t){this.payload=t,this.type=h}}class ct{constructor(){this.type=d}}class ht{constructor(){this.type=f}}class ut{constructor(t){this.payload=t,this.type=g}}class dt{constructor(){this.type=_}}class pt{constructor(t){this.payload=t,this.type=w}}class ft{constructor(t){this.payload=t,this.type=x}}class mt{constructor(t){this.payload=t,this.type=S}}class gt{constructor(){this.type=D}}class yt{constructor(t){this.payload=t,this.type=N}}class bt{constructor(t){this.payload=t,this.type=P}}class vt{constructor(t){this.payload=t,this.type=F}}class _t{constructor(t){this.payload=t,this.type=B}}class wt{constructor(t){this.payload=t,this.type=U}}class xt{constructor(){this.type=k}}class Ct{constructor(t){this.payload=t,this.type=M}}class At{constructor(t){this.payload=t,this.type=L}}class St{constructor(t){this.payload=t,this.type=I}}class Et{constructor(t){this.payload=t,this.type=q}}class kt{constructor(t){this.payload=t,this.type=z}}class Tt{constructor(t){this.payload=t,this.type=H}}class Mt{constructor(t){this.payload=t,this.type=Y}}class Lt{constructor(t){this.payload=t,this.type=G}}class It{constructor(){this.type=V}}class Ot{constructor(t){this.payload=t,this.type=Q}}class Dt{constructor(t){this.payload=t,this.type=W}}class Rt{constructor(t){this.payload=t,this.type=X}}class Nt{constructor(t){this.payload=t,this.type=$}}class Pt{constructor(t){this.payload=t,this.type=tt}}class Ft{constructor(t){this.payload=t,this.type=et}}class Zt{constructor(){this.type=b}}},8640:(t,e,i)=>{"use strict";i.d(e,{s:()=>k});var n=i(5573),r=i(9666),s=i(2041),o=i(2391),a=i(6891),l=i(5653),c=i(7228),h=i(9568),u=i(1681),d=i(1816),p=i(5963),f=i(2427),m=i(3793),g=i(9421),y=i(3929),b=i(9939),v=i(1572),_=i(9063),w=i(964),x=i(3191),C=i(1084),A=i(3869),S=i(6853),E=i(1511);let k=(()=>{class t{constructor(t,e,i,f,v,_,w,x){this.actions=t,this.httpClient=e,this.store=i,this.sessionService=f,this.commonService=v,this.logger=_,this.router=w,this.location=x,this.CHILD_API_URL=p.T+"/cl",this.flgInitialized=!1,this.unSubs=[new r.x,new r.x],this.infoFetchCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.gj),(0,l.M)(this.store.select("root")),(0,c.z)(([t,e])=>(this.flgInitialized=!1,this.store.dispatch(new b.np({action:"FetchInfo",status:g.Bn.INITIATED})),this.store.dispatch(new y.Fk(g.m6.GET_NODE_INFO)),this.httpClient.get(this.CHILD_API_URL+p.N.GETINFO_API).pipe((0,h.R)(this.actions.pipe((0,n.l4)(y.RP))),(0,u.U)(e=>(this.logger.info(e),e.chains&&e.chains.length&&e.chains[0]&&"object"==typeof e.chains[0]&&e.chains[0].hasOwnProperty("chain")&&e.chains[0].chain.toLowerCase().indexOf("bitcoin")<0?(this.store.dispatch(new b.np({action:"FetchInfo",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(g.m6.GET_NODE_INFO)),this.store.dispatch(new y.Ac),this.store.dispatch(new y.wu({data:{type:g.n_.ERROR,alertTitle:"Shitcoin Found",titleMessage:"Sorry Not Sorry, RTL is Bitcoin Only!"}})),{type:y.Nv}):(this.initializeRemainingData(e,t.payload.loadPage),this.store.dispatch(new b.np({action:"FetchInfo",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(g.m6.GET_NODE_INFO)),{type:b.Ql,payload:e||{}}))),(0,d.K)(t=>{const e=this.commonService.extractErrorCode(t),i="ETIMEDOUT"===e?"Unable to Connect to C-Lightning Server.":this.commonService.extractErrorMessage(t);return this.router.navigate(["/error"],{state:{errorCode:e,errorMessage:i}}),this.handleErrorWithoutAlert("FetchInfo",g.m6.GET_NODE_INFO,"Fetching Node Info Failed.",{status:e,error:i}),(0,s.of)({type:y.Zn})})))))),this.fetchFeesCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.yA),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"FetchFees",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.FEES_API))),(0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"FetchFees",status:g.Bn.COMPLETED})),{type:b.iK,payload:t||{}})),(0,d.K)(t=>(this.handleErrorWithoutAlert("FetchFees",g.m6.NO_SPINNER,"Fetching Fees Failed.",t),(0,s.of)({type:y.Zn}))))),this.fetchFeeRatesCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.j5),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"FetchFeeRates"+t.payload,status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.NETWORK_API+"/feeRates/"+t.payload).pipe((0,u.U)(e=>(this.logger.info(e),this.store.dispatch(new b.np({action:"FetchFeeRates"+t.payload,status:g.Bn.COMPLETED})),{type:b.XQ,payload:e||{}})),(0,d.K)(e=>(this.handleErrorWithoutAlert("FetchFeeRates"+t.payload,g.m6.NO_SPINNER,"Fetching Fee Rates Failed.",e),(0,s.of)({type:y.Zn})))))))),this.fetchBalanceCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.BI),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"FetchBalance",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.BALANCE_API))),(0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"FetchBalance",status:g.Bn.COMPLETED})),{type:b.UO,payload:t||{}})),(0,d.K)(t=>(this.handleErrorWithoutAlert("FetchBalance",g.m6.NO_SPINNER,"Fetching Balances Failed.",t),(0,s.of)({type:y.Zn}))))),this.fetchLocalRemoteBalanceCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.RA),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"FetchLocalRemoteBalance",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.CHANNELS_API+"/localremotebalance"))),(0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"FetchLocalRemoteBalance",status:g.Bn.COMPLETED})),{type:b.qt,payload:t||{}})),(0,d.K)(t=>(this.handleErrorWithoutAlert("FetchLocalRemoteBalance",g.m6.NO_SPINNER,"Fetching Balances Failed.",t),(0,s.of)({type:y.Zn}))))),this.getNewAddressCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.cd),(0,c.z)(t=>(this.store.dispatch(new y.Fk(g.m6.GENERATE_NEW_ADDRESS)),this.httpClient.get(this.CHILD_API_URL+p.N.ON_CHAIN_API+"?type="+t.payload.addressCode).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new y.Iv(g.m6.GENERATE_NEW_ADDRESS)),{type:b.Un,payload:t&&t.address?t.address:{}})),(0,d.K)(e=>(this.handleErrorWithAlert("GenerateNewAddress",g.m6.GENERATE_NEW_ADDRESS,"Generate New Address Failed",this.CHILD_API_URL+p.N.ON_CHAIN_API+"?type="+t.payload.addressId,e),(0,s.of)({type:y.Zn})))))))),this.setNewAddressCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.Un),(0,u.U)(t=>(this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.peersFetchCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.hc),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"FetchPeers",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.PEERS_API).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"FetchPeers",status:g.Bn.COMPLETED})),{type:b.sX,payload:t||[]})),(0,d.K)(t=>(this.handleErrorWithoutAlert("FetchPeers",g.m6.NO_SPINNER,"Fetching Peers Failed.",t),(0,s.of)({type:y.Zn})))))))),this.saveNewPeerCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.HI),(0,l.M)(this.store.select("cl")),(0,c.z)(([t,e])=>(this.store.dispatch(new y.Fk(g.m6.CONNECT_PEER)),this.store.dispatch(new b.np({action:"SaveNewPeer",status:g.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+p.N.PEERS_API,{id:t.payload.id}).pipe((0,u.U)(e=>(this.logger.info(e),this.store.dispatch(new b.np({action:"SaveNewPeer",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(g.m6.CONNECT_PEER)),this.store.dispatch(new b.RS(e&&e.length>0?e:[])),{type:b.ab,payload:{peer:e.find(e=>0===t.payload.id.indexOf(e.id))}})),(0,d.K)(t=>(this.handleErrorWithoutAlert("SaveNewPeer",g.m6.CONNECT_PEER,"Peer Connection Failed.",t),(0,s.of)({type:y.Zn})))))))),this.detachPeerCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.AE),(0,c.z)(t=>(this.store.dispatch(new y.Fk(g.m6.DISCONNECT_PEER)),this.httpClient.delete(this.CHILD_API_URL+p.N.PEERS_API+"/"+t.payload.id+"?force="+t.payload.force).pipe((0,u.U)(e=>(this.logger.info(e),this.store.dispatch(new y.Iv(g.m6.DISCONNECT_PEER)),this.store.dispatch(new y.Lw("Peer Disconnected Successfully!")),{type:b.qH,payload:{id:t.payload.id}})),(0,d.K)(e=>(this.handleErrorWithAlert("PeerDisconnect",g.m6.DISCONNECT_PEER,"Unable to Detach Peer. Try again later.",this.CHILD_API_URL+p.N.PEERS_API+"/"+t.payload.id,e),(0,s.of)({type:y.Zn})))))))),this.channelsFetchCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.GL),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"FetchChannels",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.CHANNELS_API+"/listChannels"))),(0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"FetchChannels",status:g.Bn.COMPLETED})),this.store.dispatch(new b.KK({status:"settled"})),{type:b.zj,payload:t&&t.length>0?t:[]})),(0,d.K)(t=>(this.handleErrorWithoutAlert("FetchChannels",g.m6.NO_SPINNER,"Fetching Channels Failed.",t),(0,s.of)({type:y.Zn}))))),this.openNewChannelCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.as),(0,c.z)(t=>{this.store.dispatch(new y.Fk(g.m6.OPEN_CHANNEL)),this.store.dispatch(new b.np({action:"SaveNewChannel",status:g.Bn.INITIATED}));const e={id:t.payload.peerId,satoshis:t.payload.satoshis,feeRate:t.payload.feeRate,announce:t.payload.announce,minconf:t.payload.minconf?t.payload.minconf:null};return t.payload.utxos&&(e.utxos=t.payload.utxos),this.httpClient.post(this.CHILD_API_URL+p.N.CHANNELS_API,e).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"SaveNewChannel",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(g.m6.OPEN_CHANNEL)),this.store.dispatch(new y.Lw("Channel Added Successfully!")),this.store.dispatch(new b.D8),this.store.dispatch(new b.Zt),{type:b.GL})),(0,d.K)(t=>(this.handleErrorWithoutAlert("SaveNewChannel",g.m6.OPEN_CHANNEL,"Opening Channel Failed.",t),(0,s.of)({type:y.Zn}))))}))),this.updateChannelCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.rR),(0,c.z)(t=>(this.store.dispatch(new y.Fk(g.m6.UPDATE_CHAN_POLICY)),this.httpClient.post(this.CHILD_API_URL+p.N.CHANNELS_API+"/setChannelFee",{id:t.payload.channelId,base:t.payload.baseFeeMsat,ppm:t.payload.feeRate}).pipe((0,u.U)(e=>(this.logger.info(e),this.store.dispatch(new y.Iv(g.m6.UPDATE_CHAN_POLICY)),this.store.dispatch(new y.Lw("all"===t.payload.channelId?{message:"All Channels Updated Successfully. Fee policy updates may take some time to reflect on the channel.",duration:5e3}:{message:"Channel Updated Successfully. Fee policy updates may take some time to reflect on the channel.",duration:5e3})),{type:b.GL})),(0,d.K)(t=>(this.handleErrorWithAlert("UpdateChannel",g.m6.UPDATE_CHAN_POLICY,"Update Channel Failed",this.CHILD_API_URL+p.N.CHANNELS_API,t),(0,s.of)({type:y.Zn})))))))),this.closeChannelCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.kL),(0,c.z)(t=>(this.store.dispatch(new y.Fk(t.payload.force?g.m6.FORCE_CLOSE_CHANNEL:g.m6.CLOSE_CHANNEL)),this.httpClient.delete(this.CHILD_API_URL+p.N.CHANNELS_API+"/"+t.payload.channelId+(t.payload.force?"?force="+t.payload.force:"")).pipe((0,u.U)(e=>(this.logger.info(e),this.store.dispatch(new y.Iv(t.payload.force?g.m6.FORCE_CLOSE_CHANNEL:g.m6.CLOSE_CHANNEL)),this.store.dispatch(new b.iG),this.store.dispatch(new y.Lw("Channel Closed Successfully!")),{type:b.Vb,payload:{channelId:t.payload.channelId}})),(0,d.K)(e=>(this.handleErrorWithAlert("CloseChannel",t.payload.force?g.m6.FORCE_CLOSE_CHANNEL:g.m6.CLOSE_CHANNEL,"Unable to Close Channel. Try again later.",this.CHILD_API_URL+p.N.CHANNELS_API,e),(0,s.of)({type:y.Zn})))))))),this.paymentsFetchCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.FA),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"FetchPayments",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.PAYMENTS_API))),(0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"FetchPayments",status:g.Bn.COMPLETED})),{type:b.nL,payload:t||[]})),(0,d.K)(t=>(this.handleErrorWithoutAlert("FetchPayments",g.m6.NO_SPINNER,"Fetching Payments Failed.",t),(0,s.of)({type:y.Zn}))))),this.decodePaymentCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.bJ),(0,c.z)(t=>(this.store.dispatch(new y.Fk(g.m6.DECODE_PAYMENT)),this.store.dispatch(new b.np({action:"DecodePayment",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.PAYMENTS_API+"/"+t.payload.routeParam).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"DecodePayment",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(g.m6.DECODE_PAYMENT)),{type:b.q9,payload:t||{}})),(0,d.K)(e=>(t.payload.fromDialog?this.handleErrorWithoutAlert("DecodePayment",g.m6.DECODE_PAYMENT,"Decode Payment Failed.",e):this.handleErrorWithAlert("DecodePayment",g.m6.DECODE_PAYMENT,"Decode Payment Failed",this.CHILD_API_URL+p.N.PAYMENTS_API+"/"+t.payload,e),(0,s.of)({type:y.Zn})))))))),this.setDecodedPaymentCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.q9),(0,u.U)(t=>(this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.sendPaymentCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.dP),(0,l.M)(this.store.select("root")),(0,c.z)(([t,e])=>(this.store.dispatch(new y.Fk(t.payload.uiMessage)),this.store.dispatch(new b.np({action:"SendPayment",status:g.Bn.INITIATED})),this.httpClient.post(t.payload.pubkey&&""!==t.payload.pubkey?this.CHILD_API_URL+p.N.PAYMENTS_API+"/keysend":this.CHILD_API_URL+p.N.PAYMENTS_API+"/invoice",t.payload).pipe((0,u.U)(e=>(this.logger.info(e),this.store.dispatch(new y.Iv(t.payload.uiMessage)),this.store.dispatch(new b.np({action:"SendPayment",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Lw("Payment Sent Successfully!")),this.store.dispatch(new b.p$({})),setTimeout(()=>{this.store.dispatch(new b.iG),this.store.dispatch(new b.D8),this.store.dispatch(new b.xt)},1e3),{type:b.zm,payload:e})),(0,d.K)(e=>(this.logger.error("Error: "+JSON.stringify(e)),t.payload.fromDialog?this.handleErrorWithoutAlert("SendPayment",t.payload.uiMessage,"Send Payment Failed.",e):this.handleErrorWithAlert("SendPayment",t.payload.uiMessage,"Send Payment Failed",this.CHILD_API_URL+p.N.PAYMENTS_API,e),(0,s.of)({type:y.Zn})))))))),this.queryRoutesFetchCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.l3),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"GetQueryRoutes",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.NETWORK_API+"/getRoute/"+t.payload.destPubkey+"/"+t.payload.amount).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"GetQueryRoutes",status:g.Bn.COMPLETED})),{type:b.PP,payload:t})),(0,d.K)(e=>(this.store.dispatch(new b.lO({routes:[]})),this.handleErrorWithAlert("GetQueryRoutes",g.m6.NO_SPINNER,"Get Query Routes Failed",this.CHILD_API_URL+p.N.NETWORK_API+"/getRoute/"+t.payload.destPubkey+"/"+t.payload.amount,e),(0,s.of)({type:y.Zn})))))))),this.setQueryRoutesCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.PP),(0,u.U)(t=>t.payload)),{dispatch:!1}),this.peerLookupCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.IR),(0,c.z)(t=>(this.store.dispatch(new y.Fk(g.m6.SEARCHING_NODE)),this.store.dispatch(new b.np({action:"Lookup",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.NETWORK_API+"/listNode/"+t.payload).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"Lookup",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(g.m6.SEARCHING_NODE)),{type:b.CR,payload:t})),(0,d.K)(e=>(this.handleErrorWithAlert("Lookup",g.m6.SEARCHING_NODE,"Peer Lookup Failed",this.CHILD_API_URL+p.N.NETWORK_API+"/listNode/"+t.payload,e),(0,s.of)({type:y.Zn})))))))),this.channelLookupCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.RE),(0,c.z)(t=>(this.store.dispatch(new y.Fk(t.payload.uiMessage)),this.store.dispatch(new b.np({action:"Lookup",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.NETWORK_API+"/listChannel/"+t.payload.shortChannelID).pipe((0,u.U)(e=>(this.logger.info(e),this.store.dispatch(new b.np({action:"Lookup",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(t.payload.uiMessage)),{type:b.CR,payload:e})),(0,d.K)(e=>(t.payload.showError?this.handleErrorWithAlert("Lookup",t.payload.uiMessage,"Channel Lookup Failed",this.CHILD_API_URL+p.N.NETWORK_API+"/listChannel/"+t.payload.shortChannelID,e):this.store.dispatch(new y.Iv(t.payload.uiMessage)),this.store.dispatch(new b.qs([])),(0,s.of)({type:y.Zn})))))))),this.invoiceLookupCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.LW),(0,c.z)(t=>(this.store.dispatch(new y.Fk(g.m6.SEARCHING_INVOICE)),this.store.dispatch(new b.np({action:"Lookup",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.INVOICES_API+"?label="+t.payload).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"Lookup",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(g.m6.SEARCHING_INVOICE)),t.invoices&&t.invoices.length&&t.invoices.length>0&&this.store.dispatch(new b.cU(t.invoices[0])),{type:b.CR,payload:t.invoices&&t.invoices.length&&t.invoices.length>0?t.invoices[0]:t})),(0,d.K)(t=>(this.handleErrorWithoutAlert("Lookup",g.m6.SEARCHING_INVOICE,"Invoice Lookup Failed",t),this.store.dispatch(new y.Lw({message:"Invoice Refresh Failed.",type:"ERROR"})),(0,s.of)({type:y.Zn})))))))),this.setLookupCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.CR),(0,u.U)(t=>(this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.fetchForwardingHistoryCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.y3),(0,l.M)(this.store.select("cl")),(0,c.z)(([t,e])=>(this.store.dispatch(new b.np({action:"GetForwardingHistory",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.CHANNELS_API+"/listForwards?status="+t.payload.status).pipe((0,u.U)(t=>{if(this.logger.info(t),this.store.dispatch(new b.np({action:"GetForwardingHistory",status:g.Bn.COMPLETED})),!e.information.api_version||!this.commonService.isVersionCompatible(e.information.api_version,"0.5.0")){const e=[],i=[];t.forEach(t=>{"settled"===t.status?i.push(t):"failed"!==t.status&&"local_failed"!==t.status||e.push(t)}),t=JSON.parse(JSON.stringify(i)),this.store.dispatch(new b.nz(e))}return{type:b.bH,payload:t}}),(0,d.K)(e=>(this.handleErrorWithAlert("GetForwardingHistory",g.m6.NO_SPINNER,"Get Forwarding History Failed",this.CHILD_API_URL+p.N.CHANNELS_API+"/listForwards?status="+t.payload.status,e),(0,s.of)({type:y.Zn})))))))),this.fetchFailedForwardingHistoryCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.o_),(0,l.M)(this.store.select("cl")),(0,c.z)(([t,e])=>{if(this.store.dispatch(new b.np({action:"GetFailedForwardingHistory",status:g.Bn.INITIATED})),!e.information.api_version||!this.commonService.isVersionCompatible(e.information.api_version,"0.5.0"))return this.store.dispatch(new b.np({action:"GetFailedForwardingHistory",status:g.Bn.COMPLETED})),(0,s.of)({type:y.Zn});let i=new o.y;const n=this.httpClient.get(this.CHILD_API_URL+p.N.CHANNELS_API+"/listForwards?status=failed"),r=this.httpClient.get(this.CHILD_API_URL+p.N.CHANNELS_API+"/listForwards?status=local_failed");return i=(0,a.D)([n,r]),i.pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"GetFailedForwardingHistory",status:g.Bn.COMPLETED})),{type:b.gM,payload:this.commonService.sortDescByKey([...t[0],...t[1]],"received_time")})),(0,d.K)(t=>(this.handleErrorWithAlert("GetFailedForwardingHistory",g.m6.NO_SPINNER,"Get Failed Forwarding History Failed",this.CHILD_API_URL+p.N.CHANNELS_API+"/listForwards?status=failed",t),(0,s.of)({type:y.Zn}))))}))),this.deleteExpiredInvoiceCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.zH),(0,c.z)(t=>(this.store.dispatch(new y.Fk(g.m6.DELETE_INVOICE)),this.httpClient.delete(this.CHILD_API_URL+p.N.INVOICES_API+(t.payload?"?maxexpiry="+t.payload:"")).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new y.Iv(g.m6.DELETE_INVOICE)),this.store.dispatch(new y.Lw("Invoices Deleted Successfully!")),{type:b.eW,payload:{num_max_invoices:1e6,reversed:!0}})),(0,d.K)(t=>(this.handleErrorWithAlert("DeleteInvoices",g.m6.DELETE_INVOICE,"Delete Invoice Failed",this.CHILD_API_URL+p.N.INVOICES_API,t),(0,s.of)({type:y.Zn})))))))),this.saveNewInvoiceCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.tk),(0,c.z)(t=>(this.store.dispatch(new y.Fk(g.m6.ADD_INVOICE)),this.store.dispatch(new b.np({action:"SaveNewInvoice",status:g.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+p.N.INVOICES_API,{label:t.payload.label,amount:t.payload.amount,description:t.payload.description,expiry:t.payload.expiry,private:t.payload.private}).pipe((0,u.U)(e=>(this.logger.info(e),this.store.dispatch(new b.np({action:"SaveNewInvoice",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(g.m6.ADD_INVOICE)),e.msatoshi=t.payload.amount,e.label=t.payload.label,e.expires_at=Math.round((new Date).getTime()/1e3+t.payload.expiry),e.description=t.payload.description,e.status="unpaid",this.store.dispatch(new y.wu({data:{invoice:e,newlyAdded:!1,component:m.$}})),{type:b.G0,payload:e})),(0,d.K)(t=>(this.handleErrorWithoutAlert("SaveNewInvoice",g.m6.ADD_INVOICE,"Add Invoice Failed.",t),(0,s.of)({type:y.Zn})))))))),this.invoicesFetchCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.eW),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"FetchInvoices",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.INVOICES_API+"?num_max_invoices="+(t.payload.num_max_invoices?t.payload.num_max_invoices:1e6)+"&index_offset="+(t.payload.index_offset?t.payload.index_offset:0)+"&reversed="+(!t.payload.reversed||t.payload.reversed)).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"FetchInvoices",status:g.Bn.COMPLETED})),{type:b.yL,payload:t})),(0,d.K)(t=>(this.handleErrorWithoutAlert("FetchInvoices",g.m6.NO_SPINNER,"Fetching Invoices Failed.",t),(0,s.of)({type:y.Zn})))))))),this.SetChannelTransactionCL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.IZ),(0,c.z)(t=>(this.store.dispatch(new y.Fk(g.m6.SEND_FUNDS)),this.store.dispatch(new b.np({action:"SetChannelTransaction",status:g.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+p.N.ON_CHAIN_API,t.payload).pipe((0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"SetChannelTransaction",status:g.Bn.COMPLETED})),this.store.dispatch(new y.Iv(g.m6.SEND_FUNDS)),this.store.dispatch(new b.D8),this.store.dispatch(new b.Zt),{type:b.ob,payload:t})),(0,d.K)(t=>(this.handleErrorWithoutAlert("SetChannelTransaction",g.m6.SEND_FUNDS,"Sending Fund Failed.",t),(0,s.of)({type:y.Zn})))))))),this.utxosFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(b.ei),(0,c.z)(t=>(this.store.dispatch(new b.np({action:"FetchUTXOs",status:g.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+p.N.ON_CHAIN_API+"/utxos"))),(0,u.U)(t=>(this.logger.info(t),this.store.dispatch(new b.np({action:"FetchUTXOs",status:g.Bn.COMPLETED})),{type:b.Q2,payload:t&&t.outputs&&t.outputs.length>0?t.outputs:[]})),(0,d.K)(t=>(this.handleErrorWithoutAlert("FetchUTXOs",g.m6.NO_SPINNER,"Fetching UTXOs Failed.",t),(0,s.of)({type:y.Zn}))))),this.store.select("cl").pipe((0,h.R)(this.unSubs[0])).subscribe(t=>{t.apisCallStatus.FetchInfo.status!==g.Bn.COMPLETED&&t.apisCallStatus.FetchInfo.status!==g.Bn.ERROR||t.apisCallStatus.FetchFees.status!==g.Bn.COMPLETED&&t.apisCallStatus.FetchFees.status!==g.Bn.ERROR||t.apisCallStatus.FetchChannels.status!==g.Bn.COMPLETED&&t.apisCallStatus.FetchChannels.status!==g.Bn.ERROR||t.apisCallStatus.FetchBalance.status!==g.Bn.COMPLETED&&t.apisCallStatus.FetchBalance.status!==g.Bn.ERROR||t.apisCallStatus.FetchLocalRemoteBalance.status!==g.Bn.COMPLETED&&t.apisCallStatus.FetchLocalRemoteBalance.status!==g.Bn.ERROR||this.flgInitialized||(this.store.dispatch(new y.Iv(g.m6.INITALIZE_NODE_DATA)),this.flgInitialized=!0)})}initializeRemainingData(t,e){this.sessionService.setItem("clUnlocked","true");const i={identity_pubkey:t.id,alias:t.alias,testnet:"testnet"===t.network.toLowerCase(),chains:t.chains,uris:t.uris,version:t.version,api_version:t.api_version,numberOfPendingChannels:t.num_pending_channels};this.store.dispatch(new y.Fk(g.m6.INITALIZE_NODE_DATA)),this.store.dispatch(new y.e6(i)),this.store.dispatch(new b._O({num_max_invoices:1e6,index_offset:0,reversed:!0})),this.store.dispatch(new b.od),this.store.dispatch(new b.iG),this.store.dispatch(new b.D8),this.store.dispatch(new b.LT),this.store.dispatch(new b.Nn("perkw")),this.store.dispatch(new b.Nn("perkb")),this.store.dispatch(new b.N9),this.store.dispatch(new b.Zt),this.store.dispatch(new b.xt);let n=this.location.path();n.includes("/lnd/")?n=n.replace("/lnd/","/cl/"):n.includes("/ecl/")&&(n=n.replace("/ecl/","/cl/")),(n.includes("/login")||n.includes("/error")||""===n||"HOME"===e||n.includes("?access-key="))&&(n="/cl/home"),this.router.navigate([n])}handleErrorWithoutAlert(t,e,i,n){if(this.logger.error("ERROR IN: "+t+"\n"+JSON.stringify(n)),401===n.status)this.logger.info("Redirecting to Login"),this.store.dispatch(new y.Ac),this.store.dispatch(new y.RD),this.store.dispatch(new y.Lw("Authentication Failed. Redirecting to Login."));else{this.store.dispatch(new y.Iv(e));const r=this.commonService.extractErrorMessage(n,i);this.store.dispatch(new b.np({action:t,status:g.Bn.ERROR,statusCode:n.status.toString(),message:r}))}}handleErrorWithAlert(t,e,i,n,r){if(this.logger.error(r),401===r.status)this.logger.info("Redirecting to Login"),this.store.dispatch(new y.Ac),this.store.dispatch(new y.RD),this.store.dispatch(new y.Lw("Authentication Failed. Redirecting to Login."));else{this.store.dispatch(new y.Iv(e));const s=this.commonService.extractErrorMessage(r);this.store.dispatch(new y.wu({data:{type:"ERROR",alertTitle:i,message:{code:r.status,message:s,URL:n},component:f.H}})),this.store.dispatch(new b.np({action:t,status:g.Bn.ERROR,statusCode:r.status.toString(),message:s,URL:n}))}}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(v.LFG(n.eX),v.LFG(_.eN),v.LFG(w.yh),v.LFG(x.m),v.LFG(C.v),v.LFG(A.mQ),v.LFG(S.F0),v.LFG(E.Ye))},t.\u0275prov=v.Yz7({token:t,factory:t.\u0275fac}),t})()},3793:(t,e,i)=>{"use strict";i.d(e,{$:()=>N});var n=i(4608),r=i(5291),s=i(9421),o=i(1572),a=i(3869),l=i(1084),c=i(1403),h=i(3722),u=i(1511),d=i(377),p=i(7439),f=i(7592),m=i(5980),g=i(7679),y=i(3600),b=i(6880),v=i(2609);function _(t,e){if(1&t&&o._UZ(0,"qrcode",30),2&t){const t=o.oxw();o.Q6J("qrdata",t.invoice.bolt11)("margin",2)("width",t.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0)}}function w(t,e){1&t&&(o.TgZ(0,"span",31),o._uU(1,"N/A"),o.qZA())}function x(t,e){if(1&t&&o._UZ(0,"qrcode",30),2&t){const t=o.oxw();o.Q6J("qrdata",t.invoice.bolt11)("margin",2)("width",t.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0)}}function C(t,e){1&t&&(o.TgZ(0,"span",32),o._uU(1,"QR Code Not Applicable"),o.qZA())}function A(t,e){1&t&&o._UZ(0,"mat-divider",33),2&t&&o.Q6J("inset",!0)}function S(t,e){if(1&t&&(o.TgZ(0,"div",16),o.TgZ(1,"div",34),o._UZ(2,"fa-icon",35),o.TgZ(3,"span"),o._uU(4),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.oxw();o.xp6(2),o.Q6J("icon",t.faExclamationTriangle),o.xp6(2),o.Oqu(t.invoice.warning_capacity)}}function E(t,e){1&t&&(o.ynx(0),o._uU(1," (zero amount) "),o.BQk())}function k(t,e){if(1&t&&(o.TgZ(0,"div"),o._UZ(1,"mat-divider",21),o.TgZ(2,"div",16),o.TgZ(3,"div",22),o.TgZ(4,"h4",18),o._uU(5,"Payment Hash"),o.qZA(),o.TgZ(6,"span",23),o._uU(7),o.qZA(),o.qZA(),o.qZA(),o._UZ(8,"mat-divider",21),o.TgZ(9,"div",16),o.TgZ(10,"div",17),o.TgZ(11,"h4",18),o._uU(12,"Status"),o.qZA(),o.TgZ(13,"span",23),o._uU(14),o.ALo(15,"titlecase"),o.qZA(),o.qZA(),o.TgZ(16,"div",17),o.TgZ(17,"h4",18),o._uU(18,"Label"),o.qZA(),o.TgZ(19,"span",23),o._uU(20),o.qZA(),o.qZA(),o.qZA(),o._UZ(21,"mat-divider",21),o.TgZ(22,"div",16),o.TgZ(23,"div",17),o.TgZ(24,"h4",18),o._uU(25,"Amount Received"),o.qZA(),o.TgZ(26,"span",23),o._uU(27),o.ALo(28,"number"),o.qZA(),o.qZA(),o.TgZ(29,"div",17),o.TgZ(30,"h4",18),o._uU(31,"Date Settled"),o.qZA(),o.TgZ(32,"span",19),o._uU(33),o.ALo(34,"date"),o.qZA(),o.qZA(),o.qZA(),o._UZ(35,"mat-divider",21),o.qZA()),2&t){const t=o.oxw();o.xp6(7),o.Oqu(t.invoice.payment_hash),o.xp6(7),o.Oqu(o.lcZ(15,6,t.invoice.status)),o.xp6(6),o.Oqu(t.invoice.label),o.xp6(7),o.AsE("",o.lcZ(28,8,t.invoice.msatoshi_received/1e3)," ",t.invoice.msatoshi_received?"Sats":"",""),o.xp6(6),o.Oqu(o.xi3(34,10,1e3*t.invoice.paid_at,"dd/MMM/YYYY HH:mm")||"-")}}function T(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Show Advanced"),o.qZA())}function M(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Hide Advanced"),o.qZA())}function L(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",36),o.NdJ("copied",function(e){return o.CHM(t),o.oxw().onCopyPayment(e)}),o._uU(1,"Copy Invoice"),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("payload",t.invoice.bolt11)}}function I(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",37),o.NdJ("click",function(){return o.CHM(t),o.oxw().onClose()}),o._uU(1,"OK"),o.qZA()}}const O=function(t){return{"display-none":t}},D=function(t){return{"xs-scroll-y":t}},R=function(t,e){return{"mt-2":t,"mt-1":e}};let N=(()=>{class t{constructor(t,e,i,n,o){this.dialogRef=t,this.data=e,this.logger=i,this.commonService=n,this.snackBar=o,this.faReceipt=r.dLy,this.faExclamationTriangle=r.eHv,this.showAdvanced=!1,this.newlyAdded=!1,this.qrWidth=240,this.screenSize="",this.screenSizeEnum=s.cu}ngOnInit(){this.invoice=this.data.invoice,this.newlyAdded=this.data.newlyAdded,this.screenSize=this.commonService.getScreenSize(),this.screenSize===s.cu.XS&&(this.qrWidth=220)}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyPayment(t){this.snackBar.open("Invoice copied."),this.logger.info("Copied Text: "+t)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(n.so),o.Y36(n.WI),o.Y36(a.mQ),o.Y36(l.v),o.Y36(c.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-cl-invoice-information"]],decls:55,vars:39,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","35",1,"modal-qr-code-container","padding-gap-large",3,"fxLayoutAlign","ngClass"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString",4,"ngIf"],["class","font-size-300",4,"ngIf"],["fxFlex","65"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxFlex","30",1,"modal-qr-code-container","padding-gap",3,"fxLayoutAlign","ngClass"],["class","font-size-120",4,"ngIf"],["class","my-1",3,"inset",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[4,"ngIf"],[1,"w-100","my-1"],["fxFlex","100"],[1,"overflow-wrap","foreground-secondary-text"],["fxLayout","row","fxLayoutAlign","end center",3,"ngClass"],["mat-stroked-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString"],[1,"font-size-300"],[1,"font-size-120"],[1,"my-1",3,"inset"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.YNc(2,_,1,5,"qrcode",2),o.YNc(3,w,2,0,"span",3),o.qZA(),o.TgZ(4,"div",4),o.TgZ(5,"mat-card-header",5),o.TgZ(6,"div",6),o._UZ(7,"fa-icon",7),o.TgZ(8,"span",8),o._uU(9),o.qZA(),o.qZA(),o.TgZ(10,"button",9),o.NdJ("click",function(){return e.onClose()}),o._uU(11,"X"),o.qZA(),o.qZA(),o.TgZ(12,"mat-card-content",10),o.TgZ(13,"div",11),o.TgZ(14,"div",12),o.YNc(15,x,1,5,"qrcode",2),o.YNc(16,C,2,0,"span",13),o.qZA(),o.YNc(17,A,1,1,"mat-divider",14),o.YNc(18,S,5,2,"div",15),o.TgZ(19,"div",16),o.TgZ(20,"div",17),o.TgZ(21,"h4",18),o._uU(22),o.qZA(),o.TgZ(23,"span",19),o._uU(24),o.ALo(25,"number"),o.YNc(26,E,2,0,"ng-container",20),o.qZA(),o.qZA(),o.TgZ(27,"div",17),o.TgZ(28,"h4",18),o._uU(29,"Date Expiry"),o.qZA(),o.TgZ(30,"span",19),o._uU(31),o.ALo(32,"date"),o.qZA(),o.qZA(),o.qZA(),o._UZ(33,"mat-divider",21),o.TgZ(34,"div",16),o.TgZ(35,"div",22),o.TgZ(36,"h4",18),o._uU(37,"Description"),o.qZA(),o.TgZ(38,"span",19),o._uU(39),o.qZA(),o.qZA(),o.qZA(),o._UZ(40,"mat-divider",21),o.TgZ(41,"div",16),o.TgZ(42,"div",22),o.TgZ(43,"h4",18),o._uU(44,"Invoice"),o.qZA(),o.TgZ(45,"span",23),o._uU(46),o.qZA(),o.qZA(),o.qZA(),o.YNc(47,k,36,13,"div",20),o.TgZ(48,"div",24),o.TgZ(49,"button",25),o.NdJ("click",function(){return e.onShowAdvanced()}),o.YNc(50,T,2,0,"p",26),o.YNc(51,M,2,0,"ng-template",null,27,o.W1O),o.qZA(),o.YNc(53,L,2,1,"button",28),o.YNc(54,I,2,0,"button",29),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.MAs(52);o.xp6(1),o.Q6J("fxLayoutAlign",e.invoice.bolt11&&""!==e.invoice.bolt11?"center start":"center center")("ngClass",o.VKq(30,O,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("ngIf",e.invoice.bolt11&&""!==e.invoice.bolt11),o.xp6(1),o.Q6J("ngIf",!e.invoice.bolt11||""===e.invoice.bolt11),o.xp6(4),o.Q6J("icon",e.faReceipt),o.xp6(2),o.Oqu(e.screenSize===e.screenSizeEnum.XS?e.newlyAdded?"Created":"Invoice":e.newlyAdded?"Invoice Created":"Invoice Information"),o.xp6(3),o.Q6J("ngClass",o.VKq(32,D,e.screenSize===e.screenSizeEnum.XS)),o.xp6(2),o.Q6J("fxLayoutAlign",e.invoice.bolt11&&""!==e.invoice.bolt11?"center start":"center center")("ngClass",o.VKq(34,O,e.screenSize!==e.screenSizeEnum.XS&&e.screenSize!==e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("ngIf",e.invoice.bolt11&&""!==e.invoice.bolt11),o.xp6(1),o.Q6J("ngIf",!e.invoice.bolt11||""===e.invoice.bolt11),o.xp6(1),o.Q6J("ngIf",e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM),o.xp6(1),o.Q6J("ngIf",e.invoice.warning_capacity),o.xp6(4),o.Oqu(e.screenSize===e.screenSizeEnum.XS?"Amount":"Amount Requested"),o.xp6(2),o.hij("",o.lcZ(25,25,e.invoice.msatoshi/1e3||0)," Sats"),o.xp6(2),o.Q6J("ngIf",!e.invoice.msatoshi),o.xp6(5),o.Oqu(o.xi3(32,27,1e3*e.invoice.expires_at,"dd/MMM/YYYY HH:mm")),o.xp6(8),o.Oqu(e.invoice.description||"-"),o.xp6(7),o.Oqu(e.invoice.bolt11||"N/A"),o.xp6(1),o.Q6J("ngIf",e.showAdvanced),o.xp6(1),o.Q6J("ngClass",o.WLB(36,R,!e.showAdvanced,e.showAdvanced)),o.xp6(2),o.Q6J("ngIf",!e.showAdvanced)("ngIfElse",t),o.xp6(3),o.Q6J("ngIf",e.invoice.bolt11&&""!==e.invoice.bolt11),o.xp6(1),o.Q6J("ngIf",!e.invoice.bolt11||""===e.invoice.bolt11)}},directives:[h.xw,h.Wh,h.yH,u.mk,d.oO,u.O5,p.dk,f.BN,m.lW,p.dn,g.d,y.V,b.h,v.y],pipes:[u.JJ,u.uU,u.rS],styles:[""]}),t})()},6124:(t,e,i)=>{"use strict";i.d(e,{ok:()=>n,f:()=>r,gk:()=>s,Go:()=>o,ml:()=>a,iR:()=>l,UA:()=>c,M8:()=>h,L2:()=>u,JI:()=>d,ct:()=>p,Oy:()=>f,ro:()=>m,we:()=>g,CF:()=>y,$9:()=>b,mn:()=>v,Tt:()=>_,IH:()=>w,md:()=>x,Ae:()=>C,BX:()=>A,J4:()=>S,JR:()=>E,gu:()=>k,nG:()=>T,yH:()=>M,r7:()=>L,Cu:()=>I,GT:()=>O,Wn:()=>D,iW:()=>R,Ao:()=>N,Pm:()=>P,qC:()=>F,k5:()=>Z,Qu:()=>B,xX:()=>U,wL:()=>q,N$:()=>z,oY:()=>H,WJ:()=>Y,Wk:()=>G,fw:()=>j,d2:()=>V,Lg:()=>Q,ht:()=>W,np:()=>J,IF:()=>X,vI:()=>K,z6:()=>$,od:()=>tt,iG:()=>et,vN:()=>it,SF:()=>nt,oI:()=>rt,DM:()=>st,eb:()=>ot,N9:()=>at,RS:()=>lt,rF:()=>ct,hF:()=>ht,ER:()=>ut,nb:()=>dt,k:()=>pt,e8:()=>ft,xt:()=>mt,bm:()=>gt,lO:()=>yt,Ar:()=>bt,T$:()=>vt,eL:()=>_t,J6:()=>wt,_O:()=>xt,Ks:()=>Ct,cU:()=>At,x$:()=>St,oP:()=>Et});const n="RESET_ECL_STORE",r="UPDATE_API_CALL_STATUS_ECL",s="SET_CHILD_NODE_SETTINGS_ECL",o="FETCH_INFO_ECL",a="SET_INFO_ECL",l="FETCH_FEES_ECL",c="SET_FEES_ECL",h="FETCH_CHANNELS_ECL",u="SET_ACTIVE_CHANNELS_ECL",d="SET_PENDING_CHANNELS_ECL",p="SET_INACTIVE_CHANNELS_ECL",f="FETCH_CHANNEL_STATS_ECL",m="SET_CHANNEL_STATS_ECL",g="FETCH_ONCHAIN_BALANCE_ECL",y="SET_ONCHAIN_BALANCE_ECL",b="SET_LIGHTNING_BALANCE_ECL",v="SET_CHANNELS_STATUS_ECL",_="FETCH_PEERS_ECL",w="SET_PEERS_ECL",x="SAVE_NEW_PEER_ECL",C="NEWLY_ADDED_PEER_ECL",A="DETACH_PEER_ECL",S="REMOVE_PEER_ECL",E="GET_NEW_ADDRESS_ECL",k="SET_NEW_ADDRESS_ECL",T="SAVE_NEW_CHANNEL_ECL",M="UPDATE_CHANNELS_ECL",L="CLOSE_CHANNEL_ECL",I="REMOVE_CHANNEL_ECL",O="FETCH_PAYMENTS_ECL",D="SET_PAYMENTS_ECL",R="GET_QUERY_ROUTES_ECL",N="SET_QUERY_ROUTES_ECL",P="SEND_PAYMENT_ECL",F="SEND_PAYMENT_STATUS_ECL",Z="FETCH_TRANSACTIONS_ECL",B="SET_TRANSACTIONS_ECL",U="SEND_ONCHAIN_FUNDS_ECL",q="SEND_ONCHAIN_FUNDS_RES_ECL",z="FETCH_INVOICES_ECL",H="SET_INVOICES_ECL",Y="CREATE_INVOICE_ECL",G="ADD_INVOICE_ECL",j="UPDATE_INVOICE_ECL",V="PEER_LOOKUP_ECL",Q="INVOICE_LOOKUP_ECL",W="SET_LOOKUP_ECL";class J{constructor(t){this.payload=t,this.type=r}}class X{constructor(t){this.payload=t,this.type=n}}class K{constructor(t){this.payload=t,this.type=s}}class ${constructor(t){this.payload=t,this.type=o}}class tt{constructor(){this.type=l}}class et{constructor(t){this.payload=t,this.type=h}}class it{constructor(t){this.payload=t,this.type=u}}class nt{constructor(t){this.payload=t,this.type=d}}class rt{constructor(t){this.payload=t,this.type=p}}class st{constructor(){this.type=g}}class ot{constructor(t){this.payload=t,this.type=b}}class at{constructor(){this.type=_}}class lt{constructor(t){this.payload=t,this.type=w}}class ct{constructor(t){this.payload=t,this.type=x}}class ht{constructor(t){this.payload=t,this.type=A}}class ut{constructor(){this.type=E}}class dt{constructor(t){this.payload=t,this.type=T}}class pt{constructor(t){this.payload=t,this.type=M}}class ft{constructor(t){this.payload=t,this.type=L}}class mt{constructor(){this.type=O}}class gt{constructor(t){this.payload=t,this.type=R}}class yt{constructor(t){this.payload=t,this.type=N}}class bt{constructor(t){this.payload=t,this.type=P}}class vt{constructor(t){this.payload=t,this.type=F}}class _t{constructor(){this.type=Z}}class wt{constructor(t){this.payload=t,this.type=U}}class xt{constructor(){this.type=z}}class Ct{constructor(t){this.payload=t,this.type=Y}}class At{constructor(t){this.payload=t,this.type=j}}class St{constructor(t){this.payload=t,this.type=V}}class Et{constructor(t){this.payload=t,this.type=Q}}},4147:(t,e,i)=>{"use strict";i.d(e,{o:()=>S});var n=i(5573),r=i(9666),s=i(2041),o=i(7228),a=i(9568),l=i(1681),c=i(1816),h=i(5653),u=i(5963),d=i(2427),p=i(9421),f=i(3921),m=i(6124),g=i(3929),y=i(1572),b=i(9063),v=i(964),_=i(3191),w=i(1084),x=i(3869),C=i(6853),A=i(1511);let S=(()=>{class t{constructor(t,e,i,d,y,b,v,_){this.actions=t,this.httpClient=e,this.store=i,this.sessionService=d,this.commonService=y,this.logger=b,this.router=v,this.location=_,this.CHILD_API_URL=u.T+"/ecl",this.flgInitialized=!1,this.unSubs=[new r.x,new r.x],this.infoFetchECL=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.Go),(0,o.z)(t=>(this.flgInitialized=!1,this.store.dispatch(new g.Fk(p.m6.GET_NODE_INFO)),this.store.dispatch(new m.np({action:"FetchInfo",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.GETINFO_API).pipe((0,a.R)(this.actions.pipe((0,n.l4)(g.RP))),(0,l.U)(e=>(this.logger.info(e),this.initializeRemainingData(e,t.payload.loadPage),this.store.dispatch(new m.np({action:"FetchInfo",status:p.Bn.COMPLETED})),this.store.dispatch(new g.Iv(p.m6.GET_NODE_INFO)),{type:m.ml,payload:e||{}})),(0,c.K)(t=>{const e=this.commonService.extractErrorCode(t),i=503===e?"Unable to Connect to Eclair Server.":this.commonService.extractErrorMessage(t);return this.router.navigate(["/error"],{state:{errorCode:e,errorMessage:i}}),this.handleErrorWithoutAlert("FetchInfo",p.m6.GET_NODE_INFO,"Fetching Node Info Failed.",{status:e,error:i}),(0,s.of)({type:g.Zn})})))))),this.fetchFees=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.iR),(0,o.z)(t=>(this.store.dispatch(new m.np({action:"FetchFees",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.FEES_API+"/fees").pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"FetchFees",status:p.Bn.COMPLETED})),{type:m.UA,payload:t||{}})),(0,c.K)(t=>(this.handleErrorWithoutAlert("FetchFees",p.m6.NO_SPINNER,"Fetching Fees Failed.",t),(0,s.of)({type:g.Zn})))))))),this.fetchPayments=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.GT),(0,o.z)(t=>(this.store.dispatch(new m.np({action:"FetchPayments",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.FEES_API+"/payments").pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"FetchPayments",status:p.Bn.COMPLETED})),{type:m.Wn,payload:t||{}})),(0,c.K)(t=>(this.handleErrorWithoutAlert("FetchPayments",p.m6.NO_SPINNER,"Fetching Payments Failed.",t),(0,s.of)({type:g.Zn})))))))),this.channelsFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.M8),(0,o.z)(t=>(this.store.dispatch(new m.np({action:"FetchChannels",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.CHANNELS_API).pipe((0,l.U)(e=>(this.logger.info(e),this.store.dispatch(new m.np({action:"FetchChannels",status:p.Bn.COMPLETED})),this.store.dispatch(new m.vN(e&&e.activeChannels.length>0?e.activeChannels:[])),this.store.dispatch(new m.SF(e&&e.pendingChannels.length>0?e.pendingChannels:[])),this.store.dispatch(new m.oI(e&&e.inactiveChannels.length>0?e.inactiveChannels:[])),this.store.dispatch(new m.eb(e.lightningBalances)),t.payload&&t.payload.fetchPayments&&this.store.dispatch(new m.xt),{type:m.mn,payload:e.channelStatus})),(0,c.K)(t=>(this.handleErrorWithoutAlert("FetchChannels",p.m6.NO_SPINNER,"Fetching Channels Failed.",t),(0,s.of)({type:g.Zn})))))))),this.channelStatsFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.Oy),(0,o.z)(t=>(this.store.dispatch(new m.np({action:"FetchChannelStats",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.CHANNELS_API+"/stats").pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"FetchChannelStats",status:p.Bn.COMPLETED})),{type:m.ro,payload:t&&t.length>0?t:[]})),(0,c.K)(t=>(this.handleErrorWithoutAlert("FetchChannelStats",p.m6.NO_SPINNER,"Fetching Channel Stats Failed.",t),(0,s.of)({type:g.Zn})))))))),this.fetchOnchainBalance=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.we),(0,o.z)(t=>(this.store.dispatch(new m.np({action:"FetchOnchainBalance",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.ON_CHAIN_API+"/balance"))),(0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"FetchOnchainBalance",status:p.Bn.COMPLETED})),{type:m.CF,payload:t||{}})),(0,c.K)(t=>(this.handleErrorWithoutAlert("FetchOnchainBalance",p.m6.NO_SPINNER,"Fetching Onchain Balances Failed.",t),(0,s.of)({type:g.Zn}))))),this.peersFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.Tt),(0,o.z)(t=>(this.store.dispatch(new m.np({action:"FetchPeers",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.PEERS_API).pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"FetchPeers",status:p.Bn.COMPLETED})),{type:m.IH,payload:t&&t.length?t:[]})),(0,c.K)(t=>(this.handleErrorWithoutAlert("FetchPeers",p.m6.NO_SPINNER,"Fetching Peers Failed.",t),(0,s.of)({type:g.Zn})))))))),this.getNewAddress=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.JR),(0,o.z)(t=>(this.store.dispatch(new g.Fk(p.m6.GENERATE_NEW_ADDRESS)),this.httpClient.get(this.CHILD_API_URL+u.N.ON_CHAIN_API).pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new g.Iv(p.m6.GENERATE_NEW_ADDRESS)),{type:m.gu,payload:t})),(0,c.K)(t=>(this.handleErrorWithAlert("GetNewAddress",p.m6.GENERATE_NEW_ADDRESS,"Generate New Address Failed",this.CHILD_API_URL+u.N.ON_CHAIN_API,t),(0,s.of)({type:g.Zn})))))))),this.setNewAddress=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.gu),(0,l.U)(t=>(this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.saveNewPeer=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.md),(0,h.M)(this.store.select("ecl")),(0,o.z)(([t,e])=>(this.store.dispatch(new g.Fk(p.m6.CONNECT_PEER)),this.store.dispatch(new m.np({action:"SaveNewPeer",status:p.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.PEERS_API+(t.payload.id.includes("@")?"?uri=":"?nodeId=")+t.payload.id,{}).pipe((0,l.U)(e=>(this.logger.info(e),this.store.dispatch(new m.np({action:"SaveNewPeer",status:p.Bn.COMPLETED})),e=e&&e.length?e:[],this.store.dispatch(new g.Iv(p.m6.CONNECT_PEER)),this.store.dispatch(new m.RS(e)),{type:m.Ae,payload:{peer:e.find(e=>e.nodeId===(t.payload.id.includes("@")?t.payload.id.substring(0,t.payload.id.indexOf("@")):t.payload.id))}})),(0,c.K)(t=>(this.handleErrorWithoutAlert("SaveNewPeer",p.m6.CONNECT_PEER,"Peer Connection Failed.",t),(0,s.of)({type:g.Zn})))))))),this.detachPeer=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.BX),(0,o.z)(t=>(this.store.dispatch(new g.Fk(p.m6.DISCONNECT_PEER)),this.httpClient.delete(this.CHILD_API_URL+u.N.PEERS_API+"/"+t.payload.nodeId).pipe((0,l.U)(e=>(this.logger.info(e),this.store.dispatch(new g.Iv(p.m6.DISCONNECT_PEER)),this.store.dispatch(new g.Lw("Disconnecting Peer!")),{type:m.J4,payload:{nodeId:t.payload.nodeId}})),(0,c.K)(e=>(this.handleErrorWithAlert("DisconnectPeer",p.m6.DISCONNECT_PEER,"Unable to Detach Peer. Try again later.",this.CHILD_API_URL+u.N.PEERS_API+"/"+t.payload.nodeId,e),(0,s.of)({type:g.Zn})))))))),this.openNewChannel=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.nG),(0,o.z)(t=>(this.store.dispatch(new g.Fk(p.m6.OPEN_CHANNEL)),this.store.dispatch(new m.np({action:"SaveNewChannel",status:p.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.CHANNELS_API,t.payload.feeRate&&t.payload.feeRate>0?{nodeId:t.payload.nodeId,fundingSatoshis:t.payload.amount,channelFlags:+!t.payload.private,fundingFeerateSatByte:t.payload.feeRate}:{nodeId:t.payload.nodeId,fundingSatoshis:t.payload.amount,channelFlags:+!t.payload.private}).pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"SaveNewChannel",status:p.Bn.COMPLETED})),this.store.dispatch(new m.N9),this.store.dispatch(new m.DM),this.store.dispatch(new g.Iv(p.m6.OPEN_CHANNEL)),this.store.dispatch(new g.Lw("Channel Added Successfully!")),{type:m.M8,payload:{fetchPayments:!1}})),(0,c.K)(t=>(this.handleErrorWithoutAlert("SaveNewChannel",p.m6.OPEN_CHANNEL,"Opening Channel Failed.",t),(0,s.of)({type:g.Zn})))))))),this.updateChannel=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.yH),(0,o.z)(t=>{this.store.dispatch(new g.Fk(p.m6.UPDATE_CHAN_POLICY));let e="?feeBaseMsat="+t.payload.baseFeeMsat+"&feeProportionalMillionths="+t.payload.feeRate;return e=t.payload.channelIds?e+"&channelIds="+t.payload.channelIds:e+"&channelId="+t.payload.channelId,this.httpClient.post(this.CHILD_API_URL+u.N.CHANNELS_API+"/updateRelayFee"+e,{}).pipe((0,l.U)(e=>(this.logger.info(e),this.store.dispatch(new g.Iv(p.m6.UPDATE_CHAN_POLICY)),this.store.dispatch(new g.Lw(t.payload.channelIds?"Channels Updated Successfully.":"Channel Updated Successfully!")),{type:m.M8,payload:{fetchPayments:!1}})),(0,c.K)(t=>(this.handleErrorWithAlert("UpdateChannels",p.m6.UPDATE_CHAN_POLICY,"Update Channel Failed",this.CHILD_API_URL+u.N.CHANNELS_API,t),(0,s.of)({type:g.Zn}))))}))),this.closeChannel=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.r7),(0,o.z)(t=>(this.store.dispatch(new g.Fk(t.payload.force?p.m6.FORCE_CLOSE_CHANNEL:p.m6.CLOSE_CHANNEL)),this.httpClient.delete(this.CHILD_API_URL+u.N.CHANNELS_API+"?channelId="+t.payload.channelId+"&force="+t.payload.force).pipe((0,l.U)(e=>(this.logger.info(e),setTimeout(()=>{this.store.dispatch(new g.Iv(t.payload.force?p.m6.FORCE_CLOSE_CHANNEL:p.m6.CLOSE_CHANNEL)),this.store.dispatch(new m.iG({fetchPayments:!1})),this.store.dispatch(new g.Lw(t.payload.force?"Channel Force Closed Successfully!":"Channel Closed Successfully!"))},2e3),{type:g.Zn})),(0,c.K)(e=>(this.handleErrorWithAlert("CloseChannel",t.payload.force?p.m6.FORCE_CLOSE_CHANNEL:p.m6.CLOSE_CHANNEL,"Unable to Close Channel. Try again later.",this.CHILD_API_URL+u.N.CHANNELS_API,e),(0,s.of)({type:g.Zn})))))))),this.queryRoutesFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.iW),(0,o.z)(t=>this.httpClient.get(this.CHILD_API_URL+u.N.PAYMENTS_API+"/route?nodeId="+t.payload.nodeId+"&amountMsat="+t.payload.amount).pipe((0,l.U)(t=>(this.logger.info(t),{type:m.Ao,payload:t})),(0,c.K)(e=>(this.store.dispatch(new m.lO([])),this.handleErrorWithAlert("GetQueryRoutes",p.m6.NO_SPINNER,"Get Query Routes Failed",this.CHILD_API_URL+u.N.PAYMENTS_API+"/route?nodeId="+t.payload.nodeId+"&amountMsat="+t.payload.amount,e),(0,s.of)({type:g.Zn}))))))),this.setQueryRoutes=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.Ao),(0,l.U)(t=>t.payload)),{dispatch:!1}),this.sendPayment=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.Pm),(0,h.M)(this.store.select("root")),(0,o.z)(([t,e])=>(this.store.dispatch(new g.Fk(p.m6.SEND_PAYMENT)),this.store.dispatch(new m.np({action:"SendPayment",status:p.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.PAYMENTS_API,t.payload).pipe((0,l.U)(t=>(this.logger.info(t),setTimeout(()=>{this.store.dispatch(new m.np({action:"SendPayment",status:p.Bn.COMPLETED})),this.store.dispatch(new m.T$(t)),this.store.dispatch(new g.Iv(p.m6.SEND_PAYMENT)),this.store.dispatch(new m.iG({fetchPayments:!0})),this.store.dispatch(new m.xt),this.store.dispatch(new g.Lw("Payment Submitted!"))},3e3),{type:g.Zn})),(0,c.K)(e=>(this.logger.error("Error: "+JSON.stringify(e)),t.payload.fromDialog?this.handleErrorWithoutAlert("SendPayment",p.m6.SEND_PAYMENT,"Send Payment Failed.",e):this.handleErrorWithAlert("SendPayment",p.m6.SEND_PAYMENT,"Send Payment Failed",this.CHILD_API_URL+u.N.PAYMENTS_API,e),(0,s.of)({type:g.Zn})))))))),this.transactionsFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.k5),(0,o.z)(t=>(this.store.dispatch(new m.np({action:"FetchTransactions",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.ON_CHAIN_API+"/transactions?count=1000&skip=0"))),(0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"FetchTransactions",status:p.Bn.COMPLETED})),{type:m.Qu,payload:t&&t.length>0?t:[]})),(0,c.K)(t=>(this.handleErrorWithoutAlert("FetchTransactions",p.m6.NO_SPINNER,"Fetching Transactions Failed.",t),(0,s.of)({type:g.Zn}))))),this.SendOnchainFunds=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.xX),(0,o.z)(t=>(this.store.dispatch(new g.Fk(p.m6.SEND_FUNDS)),this.store.dispatch(new m.np({action:"SendOnchainFunds",status:p.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.ON_CHAIN_API,t.payload).pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"SendOnchainFunds",status:p.Bn.COMPLETED})),this.store.dispatch(new g.Iv(p.m6.SEND_FUNDS)),this.store.dispatch(new m.DM),{type:m.wL,payload:t})),(0,c.K)(t=>(this.handleErrorWithoutAlert("SendOnchainFunds",p.m6.SEND_FUNDS,"Sending Fund Failed.",t),(0,s.of)({type:g.Zn})))))))),this.createInvoice=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.WJ),(0,o.z)(t=>(this.store.dispatch(new g.Fk(p.m6.CREATE_INVOICE)),this.store.dispatch(new m.np({action:"CreateInvoice",status:p.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.INVOICES_API,t.payload).pipe((0,l.U)(e=>(this.logger.info(e),this.store.dispatch(new m.np({action:"CreateInvoice",status:p.Bn.COMPLETED})),this.store.dispatch(new g.Iv(p.m6.CREATE_INVOICE)),e.timestamp=(new Date).getTime()/1e3,e.expiresAt=Math.round(e.timestamp+t.payload.expireIn),e.description=t.payload.description,e.status="unpaid",this.store.dispatch(new g.wu({data:{invoice:e,newlyAdded:!1,component:f.R}})),{type:m.Wk,payload:e})),(0,c.K)(t=>(this.handleErrorWithoutAlert("CreateInvoice",p.m6.CREATE_INVOICE,"Create Invoice Failed.",t),(0,s.of)({type:g.Zn})))))))),this.invoicesFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.N$),(0,o.z)(t=>(this.store.dispatch(new m.np({action:"FetchInvoices",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.INVOICES_API).pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"FetchInvoices",status:p.Bn.COMPLETED})),{type:m.oY,payload:t})),(0,c.K)(t=>(this.handleErrorWithoutAlert("FetchInvoices",p.m6.NO_SPINNER,"Fetching Invoices Failed.",t),(0,s.of)({type:g.Zn})))))))),this.peerLookup=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.d2),(0,o.z)(t=>(this.store.dispatch(new g.Fk(p.m6.SEARCHING_NODE)),this.store.dispatch(new m.np({action:"Lookup",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.NETWORK_API+"/nodes/"+t.payload).pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"Lookup",status:p.Bn.COMPLETED})),this.store.dispatch(new g.Iv(p.m6.SEARCHING_NODE)),{type:m.ht,payload:t})),(0,c.K)(e=>(this.handleErrorWithAlert("Lookup",p.m6.SEARCHING_NODE,"Peer Lookup Failed",this.CHILD_API_URL+u.N.NETWORK_API+"/nodes/"+t.payload,e),(0,s.of)({type:g.Zn})))))))),this.invoiceLookup=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.Lg),(0,o.z)(t=>(this.store.dispatch(new g.Fk(p.m6.SEARCHING_INVOICE)),this.store.dispatch(new m.np({action:"Lookup",status:p.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.INVOICES_API+"/"+t.payload).pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new m.np({action:"Lookup",status:p.Bn.COMPLETED})),this.store.dispatch(new g.Iv(p.m6.SEARCHING_INVOICE)),this.store.dispatch(new m.cU(t)),{type:m.ht,payload:t})),(0,c.K)(t=>(this.handleErrorWithoutAlert("Lookup",p.m6.SEARCHING_INVOICE,"Invoice Lookup Failed",t),this.store.dispatch(new g.Lw({message:"Invoice Refresh Failed.",type:"ERROR"})),(0,s.of)({type:g.Zn})))))))),this.setLookup=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.ht),(0,l.U)(t=>(this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.store.select("ecl").pipe((0,a.R)(this.unSubs[0])).subscribe(t=>{t.apisCallStatus.FetchInfo.status!==p.Bn.COMPLETED&&t.apisCallStatus.FetchInfo.status!==p.Bn.ERROR||t.apisCallStatus.FetchFees.status!==p.Bn.COMPLETED&&t.apisCallStatus.FetchFees.status!==p.Bn.ERROR||t.apisCallStatus.FetchOnchainBalance.status!==p.Bn.COMPLETED&&t.apisCallStatus.FetchOnchainBalance.status!==p.Bn.ERROR||t.apisCallStatus.FetchChannels.status!==p.Bn.COMPLETED&&t.apisCallStatus.FetchChannels.status!==p.Bn.ERROR||this.flgInitialized||(this.store.dispatch(new g.Iv(p.m6.INITALIZE_NODE_DATA)),this.flgInitialized=!0)})}initializeRemainingData(t,e){this.sessionService.setItem("eclUnlocked","true");const i={identity_pubkey:t.nodeId,alias:t.alias,testnet:"testnet"===t.network,chains:t.publicAddresses,uris:t.uris,version:t.version,numberOfPendingChannels:0};this.store.dispatch(new g.Fk(p.m6.INITALIZE_NODE_DATA)),this.store.dispatch(new g.e6(i)),this.store.dispatch(new m._O),this.store.dispatch(new m.iG({fetchPayments:!0})),this.store.dispatch(new m.od),this.store.dispatch(new m.DM),this.store.dispatch(new m.N9);let n=this.location.path();n.includes("/lnd/")?n=n.replace("/lnd/","/ecl/"):n.includes("/cl/")&&(n=n.replace("/cl/","/ecl/")),(n.includes("/login")||n.includes("/error")||""===n||"HOME"===e||n.includes("?access-key="))&&(n="/ecl/home"),this.router.navigate([n])}handleErrorWithoutAlert(t,e,i,n){this.logger.error("ERROR IN: "+t+"\n"+JSON.stringify(n)),401===n.status?(this.logger.info("Redirecting to Login"),this.store.dispatch(new g.Ac),this.store.dispatch(new g.RD),this.store.dispatch(new g.Lw("Authentication Failed. Redirecting to Login."))):(this.store.dispatch(new g.Iv(e)),this.store.dispatch(new m.np({action:t,status:p.Bn.ERROR,statusCode:n.status.toString(),message:this.commonService.extractErrorMessage(n,i)})))}handleErrorWithAlert(t,e,i,n,r){if(this.logger.error(r),401===r.status)this.logger.info("Redirecting to Login"),this.store.dispatch(new g.Ac),this.store.dispatch(new g.RD),this.store.dispatch(new g.Lw("Authentication Failed. Redirecting to Login."));else{this.store.dispatch(new g.Iv(e));const s=this.commonService.extractErrorMessage(r);this.store.dispatch(new g.wu({data:{type:"ERROR",alertTitle:i,message:{code:r.status,message:s,URL:n},component:d.H}})),this.store.dispatch(new m.np({action:t,status:p.Bn.ERROR,statusCode:r.status.toString(),message:s,URL:n}))}}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(y.LFG(n.eX),y.LFG(b.eN),y.LFG(v.yh),y.LFG(_.m),y.LFG(w.v),y.LFG(x.mQ),y.LFG(C.F0),y.LFG(A.Ye))},t.\u0275prov=y.Yz7({token:t,factory:t.\u0275fac}),t})()},3921:(t,e,i)=>{"use strict";i.d(e,{R:()=>P});var n=i(4608),r=i(5291),s=i(9421),o=i(1572),a=i(3869),l=i(1084),c=i(1403),h=i(3722),u=i(1511),d=i(377),p=i(7439),f=i(7592),m=i(5980),g=i(7679),y=i(3600),b=i(6880),v=i(2609);function _(t,e){if(1&t&&o._UZ(0,"qrcode",29),2&t){const t=o.oxw();o.Q6J("qrdata",t.invoice.serialized)("margin",2)("width",t.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0)}}function w(t,e){1&t&&(o.TgZ(0,"span",30),o._uU(1,"N/A"),o.qZA())}function x(t,e){if(1&t&&o._UZ(0,"qrcode",29),2&t){const t=o.oxw();o.Q6J("qrdata",t.invoice.serialized)("margin",2)("width",t.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0)}}function C(t,e){1&t&&(o.TgZ(0,"span",31),o._uU(1,"QR Code Not Applicable"),o.qZA())}function A(t,e){1&t&&o._UZ(0,"mat-divider",32),2&t&&o.Q6J("inset",!0)}function S(t,e){1&t&&(o.ynx(0),o._uU(1," (zero amount) "),o.BQk())}function E(t,e){if(1&t&&(o.ynx(0),o._uU(1),o.ALo(2,"number"),o.BQk()),2&t){const t=o.oxw();o.xp6(1),o.hij("",o.lcZ(2,1,t.invoice.amountSettled)," Sats")}}function k(t,e){1&t&&(o.ynx(0),o._uU(1,"-"),o.BQk())}function T(t,e){if(1&t&&(o.TgZ(0,"div"),o._UZ(1,"mat-divider",20),o.TgZ(2,"div",15),o.TgZ(3,"div",33),o.TgZ(4,"h4",17),o._uU(5,"Date Expiry"),o.qZA(),o.TgZ(6,"span",18),o._uU(7),o.ALo(8,"date"),o.qZA(),o.qZA(),o.TgZ(9,"div",34),o.TgZ(10,"h4",17),o._uU(11,"Date Settled"),o.qZA(),o.TgZ(12,"span",21),o._uU(13),o.ALo(14,"date"),o.qZA(),o.qZA(),o.qZA(),o._UZ(15,"mat-divider",20),o.TgZ(16,"div",15),o.TgZ(17,"div",22),o.TgZ(18,"h4",17),o._uU(19,"Payment Hash"),o.qZA(),o.TgZ(20,"span",21),o._uU(21),o.qZA(),o.qZA(),o.qZA(),o._UZ(22,"mat-divider",20),o.TgZ(23,"div",15),o.TgZ(24,"div",22),o.TgZ(25,"h4",17),o._uU(26,"Node Id"),o.qZA(),o.TgZ(27,"span",21),o._uU(28),o.qZA(),o.qZA(),o.qZA(),o._UZ(29,"mat-divider",20),o.qZA()),2&t){const t=o.oxw();o.xp6(7),o.Oqu(o.xi3(8,4,1e3*t.invoice.expiresAt,"dd/MMM/YYYY HH:mm")),o.xp6(6),o.Oqu(o.xi3(14,7,1e3*t.invoice.receivedAt,"dd/MMM/YYYY HH:mm")),o.xp6(8),o.Oqu(t.invoice.paymentHash),o.xp6(7),o.Oqu(t.invoice.nodeId)}}function M(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Show Advanced"),o.qZA())}function L(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Hide Advanced"),o.qZA())}function I(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",35),o.NdJ("copied",function(e){return o.CHM(t),o.oxw().onCopyPayment(e)}),o._uU(1,"Copy Invoice"),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("payload",t.invoice.serialized)}}function O(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",36),o.NdJ("click",function(){return o.CHM(t),o.oxw().onClose()}),o._uU(1,"OK"),o.qZA()}}const D=function(t){return{"display-none":t}},R=function(t){return{"xs-scroll-y":t}},N=function(t,e){return{"mt-2":t,"mt-1":e}};let P=(()=>{class t{constructor(t,e,i,n,o){this.dialogRef=t,this.data=e,this.logger=i,this.commonService=n,this.snackBar=o,this.faReceipt=r.dLy,this.faExclamationTriangle=r.eHv,this.showAdvanced=!1,this.newlyAdded=!1,this.qrWidth=240,this.screenSize="",this.screenSizeEnum=s.cu}ngOnInit(){this.invoice=this.data.invoice,this.newlyAdded=this.data.newlyAdded,this.screenSize=this.commonService.getScreenSize(),this.screenSize===s.cu.XS&&(this.qrWidth=220)}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyPayment(t){this.snackBar.open("Invoice copied."),this.logger.info("Copied Text: "+t)}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(n.so),o.Y36(n.WI),o.Y36(a.mQ),o.Y36(l.v),o.Y36(c.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-ecl-invoice-information"]],decls:68,vars:42,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","35",1,"modal-qr-code-container","padding-gap-large",3,"fxLayoutAlign","ngClass"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString",4,"ngIf"],["class","font-size-300",4,"ngIf"],["fxFlex","65"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxFlex","30",1,"modal-qr-code-container","padding-gap",3,"fxLayoutAlign","ngClass"],["class","font-size-120",4,"ngIf"],["class","my-1",3,"inset",4,"ngIf"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[4,"ngIf"],[1,"w-100","my-1"],[1,"overflow-wrap","foreground-secondary-text"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","end center",3,"ngClass"],["mat-stroked-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString"],[1,"font-size-300"],[1,"font-size-120"],[1,"my-1",3,"inset"],["fxFlex","40"],["fxFlex","60"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.YNc(2,_,1,5,"qrcode",2),o.YNc(3,w,2,0,"span",3),o.qZA(),o.TgZ(4,"div",4),o.TgZ(5,"mat-card-header",5),o.TgZ(6,"div",6),o._UZ(7,"fa-icon",7),o.TgZ(8,"span",8),o._uU(9),o.qZA(),o.qZA(),o.TgZ(10,"button",9),o.NdJ("click",function(){return e.onClose()}),o._uU(11,"X"),o.qZA(),o.qZA(),o.TgZ(12,"mat-card-content",10),o.TgZ(13,"div",11),o.TgZ(14,"div",12),o.YNc(15,x,1,5,"qrcode",2),o.YNc(16,C,2,0,"span",13),o.qZA(),o.YNc(17,A,1,1,"mat-divider",14),o.TgZ(18,"div",15),o.TgZ(19,"div",16),o.TgZ(20,"h4",17),o._uU(21,"Amount Requested"),o.qZA(),o.TgZ(22,"span",18),o._uU(23),o.ALo(24,"number"),o.YNc(25,S,2,0,"ng-container",19),o.qZA(),o.qZA(),o.TgZ(26,"div",16),o.TgZ(27,"h4",17),o._uU(28,"Amount Settled"),o.qZA(),o.TgZ(29,"span",18),o.YNc(30,E,3,3,"ng-container",19),o.YNc(31,k,2,0,"ng-container",19),o.qZA(),o.qZA(),o.qZA(),o._UZ(32,"mat-divider",20),o.TgZ(33,"div",15),o.TgZ(34,"div",16),o.TgZ(35,"h4",17),o._uU(36,"Date Created"),o.qZA(),o.TgZ(37,"span",21),o._uU(38),o.ALo(39,"date"),o.qZA(),o.qZA(),o.TgZ(40,"div",16),o.TgZ(41,"h4",17),o._uU(42,"Status"),o.qZA(),o.TgZ(43,"span",21),o._uU(44),o.ALo(45,"titlecase"),o.qZA(),o.qZA(),o.qZA(),o._UZ(46,"mat-divider",20),o.TgZ(47,"div",15),o.TgZ(48,"div",22),o.TgZ(49,"h4",17),o._uU(50,"Description"),o.qZA(),o.TgZ(51,"span",18),o._uU(52),o.qZA(),o.qZA(),o.qZA(),o._UZ(53,"mat-divider",20),o.TgZ(54,"div",15),o.TgZ(55,"div",22),o.TgZ(56,"h4",17),o._uU(57,"Invoice"),o.qZA(),o.TgZ(58,"span",21),o._uU(59),o.qZA(),o.qZA(),o.qZA(),o.YNc(60,T,30,10,"div",19),o.TgZ(61,"div",23),o.TgZ(62,"button",24),o.NdJ("click",function(){return e.onShowAdvanced()}),o.YNc(63,M,2,0,"p",25),o.YNc(64,L,2,0,"ng-template",null,26,o.W1O),o.qZA(),o.YNc(66,I,2,1,"button",27),o.YNc(67,O,2,0,"button",28),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.MAs(65);o.xp6(1),o.Q6J("fxLayoutAlign",e.invoice.serialized&&""!==e.invoice.serialized?"center start":"center center")("ngClass",o.VKq(33,D,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("ngIf",e.invoice.serialized&&""!==e.invoice.serialized),o.xp6(1),o.Q6J("ngIf",!e.invoice.serialized||""===e.invoice.serialized),o.xp6(4),o.Q6J("icon",e.faReceipt),o.xp6(2),o.Oqu(e.screenSize===e.screenSizeEnum.XS?e.newlyAdded?"Created":"Invoice":e.newlyAdded?"Invoice Created":"Invoice Information"),o.xp6(3),o.Q6J("ngClass",o.VKq(35,R,e.screenSize===e.screenSizeEnum.XS)),o.xp6(2),o.Q6J("fxLayoutAlign",e.invoice.serialized&&""!==e.invoice.serialized?"center start":"center center")("ngClass",o.VKq(37,D,e.screenSize!==e.screenSizeEnum.XS&&e.screenSize!==e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("ngIf",e.invoice.serialized&&""!==e.invoice.serialized),o.xp6(1),o.Q6J("ngIf",!e.invoice.serialized||""===e.invoice.serialized),o.xp6(1),o.Q6J("ngIf",e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM),o.xp6(6),o.hij("",o.lcZ(24,26,e.invoice.amount||0)," Sats"),o.xp6(2),o.Q6J("ngIf",!e.invoice.amount),o.xp6(5),o.Q6J("ngIf",e.invoice.amountSettled),o.xp6(1),o.Q6J("ngIf",!e.invoice.amountSettled),o.xp6(7),o.Oqu(o.xi3(39,28,1e3*e.invoice.timestamp,"dd/MMM/YYYY HH:mm")),o.xp6(6),o.Oqu(o.lcZ(45,31,e.invoice.status)),o.xp6(8),o.Oqu(e.invoice.description||"-"),o.xp6(7),o.Oqu(e.invoice.serialized||"N/A"),o.xp6(1),o.Q6J("ngIf",e.showAdvanced),o.xp6(1),o.Q6J("ngClass",o.WLB(39,N,!e.showAdvanced,e.showAdvanced)),o.xp6(2),o.Q6J("ngIf",!e.showAdvanced)("ngIfElse",t),o.xp6(3),o.Q6J("ngIf",e.invoice.serialized&&""!==e.invoice.serialized),o.xp6(1),o.Q6J("ngIf",!e.invoice.serialized||""===e.invoice.serialized)}},directives:[h.xw,h.Wh,h.yH,u.mk,d.oO,u.O5,p.dk,f.BN,m.lW,p.dn,g.d,y.V,b.h,v.y],pipes:[u.JJ,u.uU,u.rS],styles:[""]}),t})()},5678:(t,e,i)=>{"use strict";i.d(e,{AL:()=>n,JE:()=>r,Os:()=>s,kY:()=>o,Uy:()=>a,lH:()=>l,Ah:()=>c,Qm:()=>h,X_:()=>u,Ff:()=>d,pK:()=>p,jc:()=>f,mZ:()=>m,c_:()=>g,VS:()=>y,HS:()=>b,Dn:()=>v,hn:()=>_,wE:()=>w,_s:()=>x,Mx:()=>C,W8:()=>A,nZ:()=>S,P2:()=>E,oS:()=>k,S1:()=>T,u9:()=>M,D3:()=>L,G4:()=>I,bq:()=>O,o4:()=>D,MQ:()=>R,ES:()=>N,$i:()=>P,AV:()=>F,S:()=>Z,Bg:()=>B,i9:()=>U,Ov:()=>q,_V:()=>z,aB:()=>H,mU:()=>Y,c4:()=>G,kz:()=>j,s0:()=>V,b:()=>Q,dG:()=>W,Bj:()=>J,xn:()=>X,ug:()=>K,Pp:()=>$,RN:()=>tt,t7:()=>et,i_:()=>it,s8:()=>nt,__:()=>rt,U8:()=>st,ZV:()=>ot,$L:()=>at,hL:()=>lt,As:()=>ct,gk:()=>ht,K4:()=>ut,lf:()=>dt,RP:()=>pt,LC:()=>ft,x:()=>mt,on:()=>gt,qs:()=>yt,YA:()=>bt,tB:()=>vt,np:()=>_t,Mo:()=>wt,vI:()=>xt,z6:()=>Ct,N9:()=>At,RS:()=>St,rF:()=>Et,yw:()=>kt,H1:()=>Tt,od:()=>Mt,D8:()=>Lt,h7:()=>It,jh:()=>Ot,Zb:()=>Dt,Ao:()=>Rt,k:()=>Nt,nb:()=>Pt,e8:()=>Ft,FN:()=>Zt,gf:()=>Bt,gL:()=>Ut,j4:()=>qt,Cd:()=>zt,_O:()=>Ht,cU:()=>Yt,rc:()=>Gt,eL:()=>jt,Zt:()=>Vt,xt:()=>Qt,Ar:()=>Wt,RR:()=>Jt,ER:()=>Xt,uj:()=>Kt,$b:()=>$t,My:()=>te,l8:()=>ee,x$:()=>ie,IG:()=>ne,oP:()=>re,O_:()=>se,KK:()=>oe,Fn:()=>ae,bm:()=>le,lO:()=>ce,dw:()=>he});const n="RESET_LND_STORE",r="UPDATE_API_CALL_STATUS_LND",s="SET_CHILD_NODE_SETTINGS_LND",o="FETCH_INFO_LND",a="SET_INFO_LND",l="FETCH_PEERS_LND",c="SET_PEERS_LND",h="SAVE_NEW_PEER_LND",u="NEWLY_ADDED_PEER_LND",d="DETACH_PEER_LND",p="REMOVE_PEER_LND",f="SAVE_NEW_INVOICE_LND",m="NEWLY_SAVED_INVOICE_LND",g="ADD_INVOICE_LND",y="FETCH_FEES_LND",b="SET_FEES_LND",v="FETCH_BALANCE_LND",_="SET_BALANCE_LND",w="FETCH_NETWORK_LND",x="SET_NETWORK_LND",C="FETCH_ALL_CHANNELS_LND",A="FETCH_PENDING_CHANNELS_LND",S="FETCH_CLOSED_CHANNELS_LND",E="SET_ALL_CHANNELS_LND",k="SET_PENDING_CHANNELS_LND",T="SET_CLOSED_CHANNELS_LND",M="UPDATE_CHANNELS_LND",L="SAVE_NEW_CHANNEL_LND",I="CLOSE_CHANNEL_LND",O="REMOVE_CHANNEL_LND",D="BACKUP_CHANNELS_LND",R="VERIFY_CHANNELS_LND",N="BACKUP_CHANNELS_RES_LND",P="VERIFY_CHANNELS_RES_LND",F="RESTORE_CHANNELS_LIST_LND",Z="SET_RESTORE_CHANNELS_LIST_LND",B="RESTORE_CHANNELS_LND",U="RESTORE_CHANNELS_RES_LND",q="FETCH_INVOICES_LND",z="SET_INVOICES_LND",H="UPDATE_INVOICE_LND",Y="SET_TOTAL_INVOICES_LND",G="FETCH_TRANSACTIONS_LND",j="SET_TRANSACTIONS_LND",V="FETCH_UTXOS_LND",Q="SET_UTXOS_LND",W="FETCH_PAYMENTS_LND",J="SET_PAYMENTS_LND",X="SEND_PAYMENT_LND",K="SEND_PAYMENT_STATUS_LND",$="FETCH_GRAPH_NODE_LND",tt="SET_GRAPH_NODE_LND",et="GET_NEW_ADDRESS_LND",it="SET_NEW_ADDRESS_LND",nt="SET_CHANNEL_TRANSACTION_LND",rt="SET_CHANNEL_TRANSACTION_RES_LND",st="GEN_SEED_LND",ot="GEN_SEED_RESPONSE_LND",at="INIT_WALLET_LND",lt="INIT_WALLET_RESPONSE_LND",ct="UNLOCK_WALLET_LND",ht="PEER_LOOKUP_LND",ut="CHANNEL_LOOKUP_LND",dt="INVOICE_LOOKUP_LND",pt="SET_LOOKUP_LND",ft="GET_FORWARDING_HISTORY_LND",mt="SET_FORWARDING_HISTORY_LND",gt="GET_QUERY_ROUTES_LND",yt="SET_QUERY_ROUTES_LND",bt="GET_ALL_LIGHTNING_TRANSATIONS_LND",vt="SET_ALL_LIGHTNING_TRANSATIONS_LND";class _t{constructor(t){this.payload=t,this.type=r}}class wt{constructor(t){this.payload=t,this.type=n}}class xt{constructor(t){this.payload=t,this.type=s}}class Ct{constructor(t){this.payload=t,this.type=o}}class At{constructor(){this.type=l}}class St{constructor(t){this.payload=t,this.type=c}}class Et{constructor(t){this.payload=t,this.type=h}}class kt{constructor(t){this.payload=t,this.type=d}}class Tt{constructor(t){this.payload=t,this.type=f}}class Mt{constructor(){this.type=y}}class Lt{constructor(t){this.payload=t,this.type=v}}class It{constructor(){this.type=w}}class Ot{constructor(){this.type=C}}class Dt{constructor(){this.type=A}}class Rt{constructor(){this.type=S}}class Nt{constructor(t){this.payload=t,this.type=M}}class Pt{constructor(t){this.payload=t,this.type=L}}class Ft{constructor(t){this.payload=t,this.type=I}}class Zt{constructor(t){this.payload=t,this.type=D}}class Bt{constructor(t){this.payload=t,this.type=R}}class Ut{constructor(){this.type=F}}class qt{constructor(t){this.payload=t,this.type=Z}}class zt{constructor(t){this.payload=t,this.type=B}}class Ht{constructor(t){this.payload=t,this.type=q}}class Yt{constructor(t){this.payload=t,this.type=H}}class Gt{constructor(t){this.payload=t,this.type=Y}}class jt{constructor(){this.type=G}}class Vt{constructor(){this.type=V}}class Qt{constructor(t){this.payload=t,this.type=W}}class Wt{constructor(t){this.payload=t,this.type=X}}class Jt{constructor(t){this.payload=t,this.type=$}}class Xt{constructor(t){this.payload=t,this.type=et}}class Kt{constructor(t){this.payload=t,this.type=nt}}class $t{constructor(t){this.payload=t,this.type=st}}class te{constructor(t){this.payload=t,this.type=at}}class ee{constructor(t){this.payload=t,this.type=ct}}class ie{constructor(t){this.payload=t,this.type=ht}}class ne{constructor(t){this.payload=t,this.type=ut}}class re{constructor(t){this.payload=t,this.type=dt}}class se{constructor(t){this.payload=t,this.type=pt}}class oe{constructor(t){this.payload=t,this.type=ft}}class ae{constructor(t){this.payload=t,this.type=mt}}class le{constructor(t){this.payload=t,this.type=gt}}class ce{constructor(t){this.payload=t,this.type=yt}}class he{constructor(){this.type=bt}}},8248:(t,e,i)=>{"use strict";i.d(e,{l:()=>E});var n=i(5573),r=i(9666),s=i(2041),o=i(5653),a=i(7228),l=i(9568),c=i(1681),h=i(1816),u=i(5963),d=i(1827),p=i(2427),f=i(9421),m=i(3929),g=i(5678),y=i(1572),b=i(9063),v=i(964),_=i(3869),w=i(1084),x=i(3191),C=i(4608),A=i(6853),S=i(1511);let E=(()=>{class t{constructor(t,e,i,p,y,b,v,_,w){this.actions=t,this.httpClient=e,this.store=i,this.logger=p,this.commonService=y,this.sessionService=b,this.dialog=v,this.router=_,this.location=w,this.CHILD_API_URL=u.T+"/lnd",this.flgInitialized=!1,this.unSubs=[new r.x,new r.x],this.infoFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.kY),(0,o.M)(this.store.select("root")),(0,a.z)(([t,e])=>(this.flgInitialized=!1,this.store.dispatch(new m.Fk(f.m6.GET_NODE_INFO)),this.store.dispatch(new g.np({action:"FetchInfo",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.GETINFO_API).pipe((0,l.R)(this.actions.pipe((0,n.l4)(m.RP))),(0,c.U)(e=>(this.logger.info(e),e.chains&&e.chains.length&&e.chains[0]&&("string"==typeof e.chains[0]&&e.chains[0].toLowerCase().indexOf("bitcoin")<0||"object"==typeof e.chains[0]&&e.chains[0].hasOwnProperty("chain")&&e.chains[0].chain.toLowerCase().indexOf("bitcoin")<0)?(this.store.dispatch(new g.np({action:"FetchInfo",status:f.Bn.COMPLETED})),this.store.dispatch(new m.Ac),this.store.dispatch(new m.wu({data:{type:f.n_.ERROR,alertTitle:"Shitcoin Found",titleMessage:"Sorry Not Sorry, RTL is Bitcoin Only!"}})),{type:m.Nv}):e.identity_pubkey?(e.lnImplementation="LND",this.initializeRemainingData(e,t.payload.loadPage),this.store.dispatch(new g.np({action:"FetchInfo",status:f.Bn.COMPLETED})),this.store.dispatch(new m.Ac),{type:g.Uy,payload:e||{}}):(this.store.dispatch(new g.np({action:"FetchInfo",status:f.Bn.COMPLETED})),this.store.dispatch(new m.Ac),this.sessionService.removeItem("lndUnlocked"),this.logger.info("Redirecting to Unlock"),this.router.navigate(["/lnd/wallet"]),{type:g.Uy,payload:{}}))),(0,h.K)(t=>{if("string"==typeof t.error.error&&t.error.error.includes("Not Found")||"string"==typeof t.error.error&&t.error.error.includes("wallet locked")||502===t.status)this.sessionService.removeItem("lndUnlocked"),this.logger.info("Redirecting to Unlock"),this.router.navigate(["/lnd/wallet"]),this.handleErrorWithoutAlert("FetchInfo",f.m6.GET_NODE_INFO,"Fetching Node Info Failed.",t);else if("string"==typeof t.error.error&&t.error.error.includes("starting up")&&500===t.status)setTimeout(()=>{this.store.dispatch(new g.z6({loadPage:"HOME"}))},2e3);else{const e=this.commonService.extractErrorCode(t),i=503===e?"Unable to Connect to LND Server.":this.commonService.extractErrorMessage(t);this.router.navigate(["/error"],{state:{errorCode:e,errorMessage:i}}),this.handleErrorWithoutAlert("FetchInfo",f.m6.GET_NODE_INFO,"Fetching Node Info Failed.",{status:e,error:i})}return(0,s.of)({type:m.Zn})})))))),this.peersFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.lH),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchPeers",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.PEERS_API).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"FetchPeers",status:f.Bn.COMPLETED})),{type:g.Ah,payload:t||[]})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchPeers",f.m6.NO_SPINNER,"Fetching Peers Failed.",t),(0,s.of)({type:m.Zn})))))))),this.saveNewPeer=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.Qm),(0,o.M)(this.store.select("lnd")),(0,a.z)(([t,e])=>(this.store.dispatch(new m.Fk(f.m6.CONNECT_PEER)),this.store.dispatch(new g.np({action:"SaveNewPeer",status:f.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.PEERS_API,{pubkey:t.payload.pubkey,host:t.payload.host,perm:t.payload.perm}).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"SaveNewPeer",status:f.Bn.COMPLETED})),this.store.dispatch(new m.Iv(f.m6.CONNECT_PEER)),this.store.dispatch(new g.RS(t&&t.length>0?t:[])),{type:g.X_,payload:{peer:t[0]}})),(0,h.K)(t=>(this.handleErrorWithoutAlert("SaveNewPeer",f.m6.CONNECT_PEER,"Peer Connection Failed.",t),(0,s.of)({type:m.Zn})))))))),this.detachPeer=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.Ff),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.DISCONNECT_PEER)),this.httpClient.delete(this.CHILD_API_URL+u.N.PEERS_API+"/"+t.payload.pubkey).pipe((0,c.U)(e=>(this.logger.info(e),this.store.dispatch(new m.Iv(f.m6.DISCONNECT_PEER)),this.store.dispatch(new m.Lw("Peer Disconnected Successfully.")),{type:g.pK,payload:{pubkey:t.payload.pubkey}})),(0,h.K)(e=>(this.handleErrorWithAlert("DetachPeer",f.m6.DISCONNECT_PEER,"Unable to Detach Peer. Try again later.",this.CHILD_API_URL+u.N.PEERS_API+"/"+t.payload.pubkey,e),(0,s.of)({type:m.Zn})))))))),this.saveNewInvoice=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.jc),(0,a.z)(t=>(this.store.dispatch(new m.Fk(t.payload.uiMessage)),this.store.dispatch(new g.np({action:"SaveNewInvoice",status:f.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.INVOICES_API,{memo:t.payload.memo,amount:t.payload.invoiceValue,private:t.payload.private,expiry:t.payload.expiry}).pipe((0,c.U)(e=>(this.logger.info(e),this.store.dispatch(new g.np({action:"SaveNewInvoice",status:f.Bn.COMPLETED})),this.store.dispatch(new g._O({num_max_invoices:t.payload.pageSize,reversed:!0})),t.payload.openModal?(e.memo=t.payload.memo,e.value=t.payload.invoiceValue,e.expiry=t.payload.expiry,e.cltv_expiry="144",e.private=t.payload.private,e.creation_date=Math.round((new Date).getTime()/1e3).toString(),this.store.dispatch(new m.Iv(t.payload.uiMessage)),{type:m.fW,payload:{data:{invoice:e,newlyAdded:!0,component:d.v}}}):{type:g.mZ,payload:{paymentRequest:e.payment_request}})),(0,h.K)(e=>(this.handleErrorWithoutAlert("SaveNewInvoice",t.payload.uiMessage,"Add Invoice Failed.",e),(0,s.of)({type:m.Zn})))))))),this.openNewChannel=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.D3),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.OPEN_CHANNEL)),this.store.dispatch(new g.np({action:"SaveNewChannel",status:f.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.CHANNELS_API,{node_pubkey:t.payload.selectedPeerPubkey,local_funding_amount:t.payload.fundingAmount,private:t.payload.private,trans_type:t.payload.transType,trans_type_value:t.payload.transTypeValue,spend_unconfirmed:t.payload.spendUnconfirmed}).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"SaveNewChannel",status:f.Bn.COMPLETED})),this.store.dispatch(new m.Iv(f.m6.OPEN_CHANNEL)),this.store.dispatch(new g.D8("Blockchain")),this.store.dispatch(new g.jh),this.store.dispatch(new g.FN({uiMessage:f.m6.NO_SPINNER,channelPoint:"ALL",showMessage:"Channel Added Successfully!"})),{type:g.W8})),(0,h.K)(t=>(this.handleErrorWithoutAlert("SaveNewChannel",f.m6.OPEN_CHANNEL,"Opening Channel Failed.",t),(0,s.of)({type:m.Zn})))))))),this.updateChannel=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.u9),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.UPDATE_CHAN_POLICY)),this.httpClient.post(this.CHILD_API_URL+u.N.CHANNELS_API+"/chanPolicy",{baseFeeMsat:t.payload.baseFeeMsat,feeRate:t.payload.feeRate,timeLockDelta:t.payload.timeLockDelta,chanPoint:t.payload.chanPoint}).pipe((0,c.U)(e=>(this.logger.info(e),this.store.dispatch(new m.Iv(f.m6.UPDATE_CHAN_POLICY)),this.store.dispatch(new m.Lw("all"===t.payload.chanPoint?"All Channels Updated Successfully.":"Channel Updated Successfully!")),{type:g.Mx})),(0,h.K)(t=>(this.handleErrorWithAlert("UpdateChannels",f.m6.UPDATE_CHAN_POLICY,"Update Channel Failed",this.CHILD_API_URL+u.N.CHANNELS_API+"/chanPolicy",t),(0,s.of)({type:m.Zn})))))))),this.closeChannel=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.G4),(0,a.z)(t=>{this.store.dispatch(new m.Fk(t.payload.forcibly?f.m6.FORCE_CLOSE_CHANNEL:f.m6.CLOSE_CHANNEL));let e=this.CHILD_API_URL+u.N.CHANNELS_API+"/"+t.payload.channelPoint+"?force="+t.payload.forcibly;return t.payload.targetConf&&(e=e+"&target_conf="+t.payload.targetConf),t.payload.satPerByte&&(e=e+"&sat_per_byte="+t.payload.satPerByte),this.httpClient.delete(e).pipe((0,c.U)(e=>(this.logger.info(e),this.store.dispatch(new m.Iv(t.payload.forcibly?f.m6.FORCE_CLOSE_CHANNEL:f.m6.CLOSE_CHANNEL)),this.store.dispatch(new g.jh),this.store.dispatch(new g.Zb),this.store.dispatch(new g.FN({uiMessage:f.m6.NO_SPINNER,channelPoint:"ALL",showMessage:e.message})),{type:m.Zn})),(0,h.K)(e=>(this.handleErrorWithAlert("CloseChannel",t.payload.forcibly?f.m6.FORCE_CLOSE_CHANNEL:f.m6.CLOSE_CHANNEL,"Unable to Close Channel. Try again later.",this.CHILD_API_URL+u.N.CHANNELS_API+"/"+t.payload.channelPoint+"?force="+t.payload.forcibly,e),(0,s.of)({type:m.Zn}))))}))),this.backupChannels=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.o4),(0,a.z)(t=>(this.store.dispatch(new m.Fk(t.payload.uiMessage)),this.store.dispatch(new g.np({action:"BackupChannels",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.CHANNELS_BACKUP_API+"/"+t.payload.channelPoint).pipe((0,c.U)(e=>(this.logger.info(e),this.store.dispatch(new g.np({action:"BackupChannels",status:f.Bn.COMPLETED})),this.store.dispatch(new m.Iv(t.payload.uiMessage)),this.store.dispatch(new m.Lw(t.payload.showMessage+" "+e.message)),{type:g.ES,payload:e.message})),(0,h.K)(e=>(this.handleErrorWithAlert("BackupChannels",t.payload.uiMessage,t.payload.showMessage+" Unable to Backup Channel. Try again later.",this.CHILD_API_URL+u.N.CHANNELS_BACKUP_API+"/"+t.payload.channelPoint,e),(0,s.of)({type:m.Zn})))))))),this.verifyChannels=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.MQ),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.VERIFY_CHANNEL)),this.store.dispatch(new g.np({action:"VerifyChannels",status:f.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.CHANNELS_BACKUP_API+"/verify/"+t.payload.channelPoint,{}).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"VerifyChannels",status:f.Bn.COMPLETED})),this.store.dispatch(new m.Iv(f.m6.VERIFY_CHANNEL)),this.store.dispatch(new m.Lw(t.message)),{type:g.$i,payload:t.message})),(0,h.K)(e=>(this.handleErrorWithAlert("VerifyChannels",f.m6.VERIFY_CHANNEL,"Unable to Verify Channel. Try again later.",this.CHILD_API_URL+u.N.CHANNELS_BACKUP_API+"/verify/"+t.payload.channelPoint,e),(0,s.of)({type:m.Zn})))))))),this.restoreChannels=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.Bg),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.RESTORE_CHANNEL)),this.store.dispatch(new g.np({action:"RestoreChannels",status:f.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.CHANNELS_BACKUP_API+"/restore/"+t.payload.channelPoint,{}).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"RestoreChannels",status:f.Bn.COMPLETED})),this.store.dispatch(new m.Iv(f.m6.RESTORE_CHANNEL)),this.store.dispatch(new m.Lw(t.message)),this.store.dispatch(new g.j4(t.list)),{type:g.i9,payload:t.message})),(0,h.K)(e=>(this.handleErrorWithAlert("RestoreChannels",f.m6.RESTORE_CHANNEL,"Unable to Restore Channel. Try again later.",this.CHILD_API_URL+u.N.CHANNELS_BACKUP_API+"/restore/"+t.payload.channelPoint,e),(0,s.of)({type:m.Zn})))))))),this.fetchFees=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.VS),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchFees",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.FEES_API))),(0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"FetchFees",status:f.Bn.COMPLETED})),t.forwarding_events_history&&(this.store.dispatch(new g.Fn(t.forwarding_events_history)),delete t.forwarding_events_history),{type:g.HS,payload:t||{}})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchFees",f.m6.NO_SPINNER,"Fetching Fees Failed.",t),(0,s.of)({type:m.Zn}))))),this.balanceFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.Dn),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchBalance"+t.payload,status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.BALANCE_API+"/"+t.payload).pipe((0,c.U)(e=>(this.store.dispatch(new g.np({action:"FetchBalance"+t.payload,status:f.Bn.COMPLETED})),this.logger.info(e),{type:g.hn,payload:e?{target:t.payload,balance:e}:{target:t.payload,balance:"channels"===t.payload?{balance:""}:{total_balance:""}}})),(0,h.K)(e=>(this.handleErrorWithoutAlert("FetchBalance"+t.payload,f.m6.NO_SPINNER,"Fetching"+this.commonService.titleCase(t.payload)+" Balance Failed.",e),(0,s.of)({type:m.Zn})))))))),this.networkInfoFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.wE),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchNetwork",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.NETWORK_API+"/info"))),(0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"FetchNetwork",status:f.Bn.COMPLETED})),{type:g._s,payload:t||{}})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchNetwork",f.m6.NO_SPINNER,"Fetching Network Failed.",t),(0,s.of)({type:m.Zn}))))),this.channelsAllFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.Mx),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchAllChannels",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.CHANNELS_API).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"FetchAllChannels",status:f.Bn.COMPLETED})),{type:g.P2,payload:t&&t.channels&&t.channels.length>0?t.channels:[]})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchAllChannels",f.m6.NO_SPINNER,"Fetching All Channels Failed.",t),(0,s.of)({type:m.Zn})))))))),this.channelsPendingFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.W8),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchPendingChannels",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.CHANNELS_API+"/pending").pipe((0,c.U)(t=>{this.logger.info(t),this.store.dispatch(new g.np({action:"FetchPendingChannels",status:f.Bn.COMPLETED}));const e={open:{num_channels:0,limbo_balance:0},closing:{num_channels:0,limbo_balance:0},force_closing:{num_channels:0,limbo_balance:0},waiting_close:{num_channels:0,limbo_balance:0},total_channels:0,total_limbo_balance:0};return t&&(e.total_limbo_balance=t.total_limbo_balance,t.pending_closing_channels&&(e.closing.num_channels=t.pending_closing_channels.length,e.total_channels=e.total_channels+t.pending_closing_channels.length,t.pending_closing_channels.forEach(t=>{e.closing.limbo_balance=+e.closing.limbo_balance+(t.channel.local_balance?+t.channel.local_balance:0)})),t.pending_force_closing_channels&&(e.force_closing.num_channels=t.pending_force_closing_channels.length,e.total_channels=e.total_channels+t.pending_force_closing_channels.length,t.pending_force_closing_channels.forEach(t=>{e.force_closing.limbo_balance=+e.force_closing.limbo_balance+(t.channel.local_balance?+t.channel.local_balance:0)})),t.pending_open_channels&&(e.open.num_channels=t.pending_open_channels.length,e.total_channels=e.total_channels+t.pending_open_channels.length,t.pending_open_channels.forEach(t=>{e.open.limbo_balance=+e.open.limbo_balance+(t.channel.local_balance?+t.channel.local_balance:0)})),t.waiting_close_channels&&(e.waiting_close.num_channels=t.waiting_close_channels.length,e.total_channels=e.total_channels+t.waiting_close_channels.length,t.waiting_close_channels.forEach(t=>{e.waiting_close.limbo_balance=+e.waiting_close.limbo_balance+(t.channel.local_balance?+t.channel.local_balance:0)}))),{type:g.oS,payload:t?{channels:t,pendingChannels:e}:{channels:{},pendingChannels:e}}}),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchPendingChannels",f.m6.NO_SPINNER,"Fetching Pending Channels Failed.",t),(0,s.of)({type:m.Zn})))))))),this.channelsClosedFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.nZ),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchClosedChannels",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.CHANNELS_API+"/closed").pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"FetchClosedChannels",status:f.Bn.COMPLETED})),{type:g.S1,payload:t&&t.channels&&t.channels.length>0?t.channels:[]})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchClosedChannels",f.m6.NO_SPINNER,"Fetching Closed Channels Failed.",t),(0,s.of)({type:m.Zn})))))))),this.invoicesFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.Ov),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchInvoices",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.INVOICES_API+"?num_max_invoices="+(t.payload.num_max_invoices?t.payload.num_max_invoices:100)+"&index_offset="+(t.payload.index_offset?t.payload.index_offset:0)+"&reversed="+(!!t.payload.reversed&&t.payload.reversed)).pipe((0,c.U)(e=>(this.logger.info(e),this.store.dispatch(new g.np({action:"FetchInvoices",status:f.Bn.COMPLETED})),t.payload.reversed&&!t.payload.index_offset&&this.store.dispatch(new g.rc(+e.last_index_offset)),{type:g._V,payload:e})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchInvoices",f.m6.NO_SPINNER,"Fetching Invoices Failed.",t),(0,s.of)({type:m.Zn})))))))),this.transactionsFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.c4),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchTransactions",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.TRANSACTIONS_API))),(0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"FetchTransactions",status:f.Bn.COMPLETED})),{type:g.kz,payload:t&&t.length>0?t:[]})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchTransactions",f.m6.NO_SPINNER,"Fetching Transactions Failed.",t),(0,s.of)({type:m.Zn}))))),this.utxosFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.s0),(0,o.M)(this.store.select("lnd")),(0,a.z)(([t,e])=>(this.store.dispatch(new g.np({action:"FetchUTXOs",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.WALLET_API+"/getUTXOs?max_confs="+(e.information&&e.information.block_height?e.information.block_height:1e9)))),(0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"FetchUTXOs",status:f.Bn.COMPLETED})),{type:g.b,payload:t&&t.length>0?t:[]})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchUTXOs",f.m6.NO_SPINNER,"Fetching UTXOs Failed.",t),(0,s.of)({type:m.Zn}))))),this.paymentsFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.dG),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchPayments",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.PAYMENTS_API+"?max_payments="+(t.payload.max_payments?t.payload.max_payments:100)+"&index_offset="+(t.payload.index_offset?t.payload.index_offset:0)+"&reversed="+(!!t.payload.reversed&&t.payload.reversed)).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"FetchPayments",status:f.Bn.COMPLETED})),{type:g.Bj,payload:t})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchPayments",f.m6.NO_SPINNER,"Fetching Payments Failed.",t),(0,s.of)({type:g.Bj,payload:{payments:[]}})))))))),this.sendPayment=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.xn),(0,a.z)(t=>{this.store.dispatch(new m.Fk(t.payload.uiMessage)),this.store.dispatch(new g.np({action:"SendPayment",status:f.Bn.INITIATED}));const e={};return e.paymentReq=t.payload.paymentReq,t.payload.paymentAmount&&(e.paymentAmount=t.payload.paymentAmount),t.payload.outgoingChannel&&(e.outgoingChannel=t.payload.outgoingChannel.chan_id),t.payload.allowSelfPayment&&(e.allowSelfPayment=t.payload.allowSelfPayment),t.payload.lastHopPubkey&&(e.lastHopPubkey=t.payload.lastHopPubkey),t.payload.feeLimitType&&t.payload.feeLimitType!==f.Vc[0]&&(e.feeLimit={},e.feeLimit[t.payload.feeLimitType.id]=t.payload.feeLimit),this.httpClient.post(this.CHILD_API_URL+u.N.CHANNELS_API+"/transactions",e).pipe((0,c.U)(e=>{if(this.logger.info(e),this.store.dispatch(new m.Iv(t.payload.uiMessage)),this.store.dispatch(new g.np({action:"SendPayment",status:f.Bn.COMPLETED})),e.payment_error)return t.payload.allowSelfPayment?(this.store.dispatch(new g._O({num_max_invoices:f.IV,reversed:!0})),{type:g.ug,payload:e}):(t.payload.fromDialog?this.handleErrorWithoutAlert("SendPayment",t.payload.uiMessage,"Send Payment Failed.",e.payment_error):this.handleErrorWithAlert("SendPayment",t.payload.uiMessage,"Send Payment Failed",this.CHILD_API_URL+u.N.CHANNELS_API+"/transactions",e.payment_error),{type:m.Zn});if(this.store.dispatch(new m.Iv(t.payload.uiMessage)),this.store.dispatch(new g.np({action:"SendPayment",status:f.Bn.COMPLETED})),this.store.dispatch(new g.jh),this.store.dispatch(new g.xt({max_payments:f.IV,reversed:!0})),t.payload.allowSelfPayment)this.store.dispatch(new g._O({num_max_invoices:f.IV,reversed:!0}));else{let t="Payment Sent Successfully.";e.payment_route&&e.payment_route.total_fees_msat&&(t="Payment sent successfully with the total fee "+e.payment_route.total_fees_msat+" (mSats)."),this.store.dispatch(new m.Lw(t))}return{type:g.ug,payload:e}}),(0,h.K)(e=>(this.logger.error("Error: "+JSON.stringify(e)),t.payload.allowSelfPayment?(this.handleErrorWithoutAlert("SendPayment",t.payload.uiMessage,"Send Payment Failed.",e),this.store.dispatch(new g._O({num_max_invoices:f.IV,reversed:!0})),(0,s.of)({type:g.ug,payload:{error:this.commonService.extractErrorMessage(e)}})):(t.payload.fromDialog?this.handleErrorWithoutAlert("SendPayment",t.payload.uiMessage,"Send Payment Failed.",e):this.handleErrorWithAlert("SendPayment",t.payload.uiMessage,"Send Payment Failed",this.CHILD_API_URL+u.N.CHANNELS_API+"/transactions",e),(0,s.of)({type:m.Zn})))))}))),this.graphNodeFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.Pp),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.GET_NODE_ADDRESS)),this.store.dispatch(new g.np({action:"FetchGraphNode",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.NETWORK_API+"/node/"+t.payload.pubkey).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new m.Iv(f.m6.GET_NODE_ADDRESS)),this.store.dispatch(new g.np({action:"FetchGraphNode",status:f.Bn.COMPLETED})),{type:g.RN,payload:t&&t.node?{node:t.node}:{node:null}})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchGraphNode",f.m6.GET_NODE_ADDRESS,"Fetching Graph Node Failed.",t),(0,s.of)({type:m.Zn})))))))),this.setGraphNode=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.RN),(0,c.U)(t=>(this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.getNewAddress=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.t7),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.GENERATE_NEW_ADDRESS)),this.httpClient.get(this.CHILD_API_URL+u.N.NEW_ADDRESS_API+"?type="+t.payload.addressId).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new m.Iv(f.m6.GENERATE_NEW_ADDRESS)),{type:g.i_,payload:t&&t.address?t.address:{}})),(0,h.K)(e=>(this.handleErrorWithAlert("GetNewAddress",f.m6.GENERATE_NEW_ADDRESS,"Generate New Address Failed",this.CHILD_API_URL+u.N.NEW_ADDRESS_API+"?type="+t.payload.addressId,e),(0,s.of)({type:m.Zn})))))))),this.setNewAddress=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.i_),(0,c.U)(t=>(this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.SetChannelTransaction=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.s8),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.SEND_FUNDS)),this.store.dispatch(new g.np({action:"SetChannelTransaction",status:f.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.TRANSACTIONS_API,{amount:t.payload.amount,address:t.payload.address,sendAll:t.payload.sendAll,fees:t.payload.fees,blocks:t.payload.blocks}).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"SetChannelTransaction",status:f.Bn.COMPLETED})),this.store.dispatch(new m.Iv(f.m6.SEND_FUNDS)),this.store.dispatch(new g.eL),this.store.dispatch(new g.D8("Blockchain")),this.store.dispatch(new g.jh),{type:g.__,payload:t})),(0,h.K)(t=>(this.handleErrorWithoutAlert("SetChannelTransaction",f.m6.SEND_FUNDS,"Sending Fund Failed.",t),(0,s.of)({type:m.Zn})))))))),this.fetchForwardingHistory=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.LC),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"GetForwardingHistory",status:f.Bn.INITIATED})),this.httpClient.post(this.CHILD_API_URL+u.N.SWITCH_API,{num_max_events:t.payload.num_max_events,index_offset:t.payload.index_offset,end_time:t.payload.end_time,start_time:t.payload.start_time}).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"GetForwardingHistory",status:f.Bn.COMPLETED})),{type:g.x,payload:t})),(0,h.K)(t=>(this.handleErrorWithAlert("GetForwardingHistory",f.m6.NO_SPINNER,"Get Forwarding History Failed",this.CHILD_API_URL+u.N.SWITCH_API,t),(0,s.of)({type:m.Zn})))))))),this.queryRoutesFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.on),(0,a.z)(t=>{let e=this.CHILD_API_URL+u.N.NETWORK_API+"/routes/"+t.payload.destPubkey+"/"+t.payload.amount;return t.payload.outgoingChanId&&(e=e+"?outgoing_chan_id="+t.payload.outgoingChanId),this.httpClient.get(e).pipe((0,c.U)(t=>(this.logger.info(t),{type:g.qs,payload:t})),(0,h.K)(t=>(this.store.dispatch(new g.lO({})),this.handleErrorWithAlert("GetQueryRoutes",f.m6.NO_SPINNER,"Get Query Routes Failed",this.CHILD_API_URL+u.N.NETWORK_API,t),(0,s.of)({type:m.Zn}))))}))),this.setQueryRoutes=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.qs),(0,c.U)(t=>t.payload)),{dispatch:!1}),this.genSeed=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.U8),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.GEN_SEED)),this.httpClient.get(this.CHILD_API_URL+u.N.WALLET_API+"/genseed/"+t.payload).pipe((0,c.U)(t=>(this.logger.info("Generated GenSeed!"),this.logger.info(t),this.store.dispatch(new m.Iv(f.m6.GEN_SEED)),{type:g.ZV,payload:t.cipher_seed_mnemonic})),(0,h.K)(e=>(this.handleErrorWithAlert("GenSeed",f.m6.GEN_SEED,"Genseed Generation Failed",this.CHILD_API_URL+u.N.WALLET_API+"/genseed/"+t.payload,e),(0,s.of)({type:m.Zn})))))))),this.updateSelNodeOptions=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(m.SK),(0,a.z)(t=>this.httpClient.get(this.CHILD_API_URL+u.N.WALLET_API+"/updateSelNodeOptions").pipe((0,c.U)(t=>(this.logger.info("Update Sel Node Successfull"),this.logger.info(t),{type:m.Zn})),(0,h.K)(t=>(this.handleErrorWithAlert("UpdateSelectedNodeOptions",f.m6.NO_SPINNER,"Update macaroon for newly initialized node failed! Please check the macaroon path and restart the server!","Update Macaroon",t),(0,s.of)({type:m.Zn}))))))),this.genSeedResponse=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.ZV),(0,c.U)(t=>t.payload)),{dispatch:!1}),this.initWalletRes=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.hL),(0,c.U)(t=>t.payload)),{dispatch:!1}),this.initWallet=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.$L),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.INITIALIZE_WALLET)),this.httpClient.post(this.CHILD_API_URL+u.N.WALLET_API+"/wallet/initwallet",{wallet_password:t.payload.pwd,cipher_seed_mnemonic:t.payload.cipher?t.payload.cipher:"",aezeed_passphrase:t.payload.passphrase?t.payload.passphrase:""}).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new m.Iv(f.m6.INITIALIZE_WALLET)),{type:g.hL,payload:t})),(0,h.K)(t=>(this.handleErrorWithAlert("InitWallet",f.m6.INITIALIZE_WALLET,"Wallet Initialization Failed",this.CHILD_API_URL+u.N.WALLET_API+"/initwallet",t),(0,s.of)({type:m.Zn})))))))),this.unlockWallet=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.As),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.UNLOCK_WALLET)),this.httpClient.post(this.CHILD_API_URL+u.N.WALLET_API+"/wallet/unlockwallet",{wallet_password:t.payload.pwd}).pipe((0,c.U)(t=>(this.logger.info(t),this.logger.info("Successfully Unlocked!"),this.sessionService.setItem("lndUnlocked","true"),this.store.dispatch(new m.Iv(f.m6.UNLOCK_WALLET)),this.store.dispatch(new m.Fk(f.m6.WAIT_SYNC_NODE)),setTimeout(()=>{this.store.dispatch(new m.Iv(f.m6.WAIT_SYNC_NODE)),this.store.dispatch(new g.z6({loadPage:"HOME"}))},5e3),{type:m.Zn})),(0,h.K)(t=>(this.handleErrorWithAlert("UnlockWallet",f.m6.UNLOCK_WALLET,"Unlock Wallet Failed",this.CHILD_API_URL+u.N.WALLET_API+"/unlockwallet",t),(0,s.of)({type:m.Zn}))))))),{dispatch:!1}),this.peerLookup=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.gk),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.SEARCHING_NODE)),this.store.dispatch(new g.np({action:"Lookup",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.NETWORK_API+"/node/"+t.payload).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new m.Iv(f.m6.SEARCHING_NODE)),this.store.dispatch(new g.np({action:"Lookup",status:f.Bn.COMPLETED})),{type:g.RP,payload:t})),(0,h.K)(e=>(this.handleErrorWithAlert("Lookup",f.m6.SEARCHING_NODE,"Peer Lookup Failed",this.CHILD_API_URL+u.N.NETWORK_API+"/node/"+t.payload,e),(0,s.of)({type:m.Zn})))))))),this.channelLookup=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.K4),(0,a.z)(t=>(this.store.dispatch(new m.Fk(t.payload.uiMessage)),this.store.dispatch(new g.np({action:"Lookup",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.NETWORK_API+"/edge/"+t.payload.channelID).pipe((0,c.U)(e=>(this.logger.info(e),this.store.dispatch(new m.Iv(t.payload.uiMessage)),this.store.dispatch(new g.np({action:"Lookup",status:f.Bn.COMPLETED})),{type:g.RP,payload:e})),(0,h.K)(e=>(this.handleErrorWithAlert("Lookup",t.payload.uiMessage,"Channel Lookup Failed",this.CHILD_API_URL+u.N.NETWORK_API+"/edge/"+t.payload.channelID,e),this.store.dispatch(new g.O_({})),(0,s.of)({type:m.Zn})))))))),this.invoiceLookup=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.lf),(0,a.z)(t=>(this.store.dispatch(new m.Fk(f.m6.SEARCHING_INVOICE)),this.store.dispatch(new g.np({action:"Lookup",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.INVOICES_API+"/"+t.payload).pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new m.Iv(f.m6.SEARCHING_INVOICE)),this.store.dispatch(new g.np({action:"Lookup",status:f.Bn.COMPLETED})),this.store.dispatch(new g.cU(t)),{type:g.RP,payload:t})),(0,h.K)(t=>(this.handleErrorWithoutAlert("Lookup",f.m6.SEARCHING_INVOICE,"Invoice Lookup Failed",t),this.store.dispatch(new m.Lw({message:"Invoice Refresh Failed.",type:"ERROR"})),(0,s.of)({type:m.Zn})))))))),this.setLookup=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.RP),(0,c.U)(t=>(this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.getRestoreChannelList=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.AV),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"RestoreChannelsList",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.CHANNELS_BACKUP_API+"/restore/list").pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"RestoreChannelsList",status:f.Bn.COMPLETED})),{type:g.S,payload:t||{all_restore_exists:!1,files:[]}})),(0,h.K)(t=>(this.handleErrorWithAlert("RestoreChannelsList",f.m6.NO_SPINNER,"Restore Channels List Failed",this.CHILD_API_URL+u.N.CHANNELS_BACKUP_API,t),(0,s.of)({type:m.Zn})))))))),this.setRestoreChannelList=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.S),(0,c.U)(t=>(this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.allLightningTransactionsFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(g.YA),(0,a.z)(t=>(this.store.dispatch(new g.np({action:"FetchLightningTransactions",status:f.Bn.INITIATED})),this.httpClient.get(this.CHILD_API_URL+u.N.PAYMENTS_API+"/alltransactions").pipe((0,c.U)(t=>(this.logger.info(t),this.store.dispatch(new g.np({action:"FetchLightningTransactions",status:f.Bn.COMPLETED})),{type:g.tB,payload:t})),(0,h.K)(t=>(this.handleErrorWithoutAlert("FetchLightningTransactions",f.m6.NO_SPINNER,"Fetching All Lightning Transaction Failed.",t),(0,s.of)({type:m.Zn})))))))),this.store.select("lnd").pipe((0,l.R)(this.unSubs[0])).subscribe(t=>{t.apisCallStatus.FetchInfo.status!==f.Bn.COMPLETED&&t.apisCallStatus.FetchInfo.status!==f.Bn.ERROR||t.apisCallStatus.FetchFees.status!==f.Bn.COMPLETED&&t.apisCallStatus.FetchFees.status!==f.Bn.ERROR||t.apisCallStatus.FetchBalanceBlockchain.status!==f.Bn.COMPLETED&&t.apisCallStatus.FetchBalanceBlockchain.status!==f.Bn.ERROR||t.apisCallStatus.FetchAllChannels.status!==f.Bn.COMPLETED&&t.apisCallStatus.FetchAllChannels.status!==f.Bn.ERROR||t.apisCallStatus.FetchPendingChannels.status!==f.Bn.COMPLETED&&t.apisCallStatus.FetchPendingChannels.status!==f.Bn.ERROR||this.flgInitialized||(this.store.dispatch(new m.Iv(f.m6.INITALIZE_NODE_DATA)),this.flgInitialized=!0)})}initializeRemainingData(t,e){this.sessionService.setItem("lndUnlocked","true");const i={identity_pubkey:t.identity_pubkey,alias:t.alias,testnet:t.testnet,chains:t.chains,uris:t.uris,version:t.version?t.version.split(" ")[0]:""};this.store.dispatch(new m.Fk(f.m6.INITALIZE_NODE_DATA)),this.store.dispatch(new m.e6(i)),this.store.dispatch(new g.od),this.store.dispatch(new g.D8("Blockchain")),this.store.dispatch(new g.jh),this.store.dispatch(new g.Zb),this.store.dispatch(new g.Ao),this.store.dispatch(new g.N9),this.store.dispatch(new g.h7),this.store.dispatch(new g.dw),this.store.dispatch(new g._O({num_max_invoices:10,reversed:!0})),this.store.dispatch(new g.xt({max_payments:10,reversed:!0}));let n=this.location.path();n.includes("/cl/")?n=n.replace("/cl/","/lnd/"):n.includes("/ecl/")&&(n=n.replace("/ecl/","/lnd/")),(n.includes("/unlock")||n.includes("/login")||n.includes("/error")||""===n||"HOME"===e||n.includes("?access-key="))&&(n="/lnd/home"),this.router.navigate([n])}handleErrorWithoutAlert(t,e,i,n){this.logger.error("ERROR IN: "+t+"\n"+JSON.stringify(n)),401===n.status?(this.logger.info("Redirecting to Login"),this.store.dispatch(new m.Ac),this.store.dispatch(new m.RD),this.store.dispatch(new m.Lw("Authentication Failed. Redirecting to Login."))):(this.store.dispatch(new m.Iv(e)),this.store.dispatch(new g.np({action:t,status:f.Bn.ERROR,statusCode:n.status.toString(),message:this.commonService.extractErrorMessage(n,i)})))}handleErrorWithAlert(t,e,i,n,r){if(this.logger.error(r),401===r.status)this.logger.info("Redirecting to Login"),this.store.dispatch(new m.Ac),this.store.dispatch(new m.RD),this.store.dispatch(new m.Lw("Authentication Failed. Redirecting to Login."));else{this.store.dispatch(new m.Iv(e));const s=this.commonService.extractErrorMessage(r);this.store.dispatch(new m.wu({data:{type:"ERROR",alertTitle:i,message:{code:r.status,message:s,URL:n},component:p.H}})),this.store.dispatch(new g.np({action:t,status:f.Bn.ERROR,statusCode:r.status.toString(),message:s,URL:n}))}}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(y.LFG(n.eX),y.LFG(b.eN),y.LFG(v.yh),y.LFG(_.mQ),y.LFG(w.v),y.LFG(x.m),y.LFG(C.uw),y.LFG(A.F0),y.LFG(S.Ye))},t.\u0275prov=y.Yz7({token:t,factory:t.\u0275fac}),t})()},4979:(t,e,i)=>{"use strict";i.d(e,{mw:()=>c,H9:()=>u});var n=i(964),r=i(9421),s=i(5678);let o=!1,a=!1;const l={apisCallStatus:{FetchInfo:{status:r.Bn.UN_INITIATED},FetchFees:{status:r.Bn.UN_INITIATED},FetchPeers:{status:r.Bn.UN_INITIATED},FetchClosedChannels:{status:r.Bn.UN_INITIATED},FetchPendingChannels:{status:r.Bn.UN_INITIATED},FetchAllChannels:{status:r.Bn.UN_INITIATED},FetchBalanceBlockchain:{status:r.Bn.UN_INITIATED},FetchInvoices:{status:r.Bn.UN_INITIATED},FetchPayments:{status:r.Bn.UN_INITIATED},GetForwardingHistory:{status:r.Bn.UN_INITIATED},FetchUTXOs:{status:r.Bn.UN_INITIATED},FetchTransactions:{status:r.Bn.UN_INITIATED},FetchLightningTransactions:{status:r.Bn.UN_INITIATED},FetchNetwork:{status:r.Bn.UN_INITIATED}},nodeSettings:{userPersona:r.ol.OPERATOR,fiatConversion:!1,channelBackupPath:"",currencyUnits:[],selCurrencyUnit:"",lnImplementation:"",swapServerUrl:""},information:{},peers:[],fees:{},networkInfo:{},blockchainBalance:{total_balance:-1},allChannels:[],closedChannels:[],pendingChannels:{},numberOfActiveChannels:0,numberOfInactiveChannels:0,numberOfPendingChannels:{open:{num_channels:0,limbo_balance:0},closing:{num_channels:0,limbo_balance:0},force_closing:{num_channels:0,limbo_balance:0},waiting_close:{num_channels:0,limbo_balance:0},total_channels:0,total_limbo_balance:0},totalCapacityActive:0,totalCapacityInactive:0,totalLocalBalance:-1,totalRemoteBalance:-1,totalInvoices:-1,transactions:[],utxos:[],payments:{payments:[]},invoices:{invoices:[]},allLightningTransactions:{paymentsAll:null,invoicesAll:null},forwardingHistory:{}};function c(t=l,e){switch(e.type){case s.JE:const i=t.apisCallStatus;return i[e.payload.action]={status:e.payload.status,statusCode:e.payload.statusCode,message:e.payload.message,URL:e.payload.URL,filePath:e.payload.filePath},Object.assign(Object.assign({},t),{apisCallStatus:i});case s.Os:return Object.assign(Object.assign({},t),{nodeSettings:e.payload});case s.AL:return Object.assign(Object.assign({},l),{nodeSettings:e.payload});case s.Uy:return Object.assign(Object.assign({},t),{information:e.payload});case s.Ah:return Object.assign(Object.assign({},t),{peers:e.payload});case s.pK:const n=[...t.peers],r=t.peers.findIndex(t=>t.pub_key===e.payload.pubkey);return r>-1&&n.splice(r,1),Object.assign(Object.assign({},t),{peers:n});case s.c_:const c=t.invoices;return c.invoices.unshift(e.payload),Object.assign(Object.assign({},t),{invoices:c});case s.aB:const h=t.invoices;return h.invoices=h.invoices.map(t=>t.r_hash===e.payload.r_hash?e.payload:t),Object.assign(Object.assign({},t),{invoices:h});case s.HS:return Object.assign(Object.assign({},t),{fees:e.payload});case s.S1:return Object.assign(Object.assign({},t),{closedChannels:e.payload});case s.oS:return Object.assign(Object.assign({},t),{pendingChannels:e.payload.channels,numberOfPendingChannels:e.payload.pendingChannels});case s.P2:let u=0,d=0,p=0,f=0,m=0,g=0;return e.payload&&e.payload.forEach(t=>{t.local_balance||(t.local_balance=0),!0===t.active?(m+=+t.local_balance,p+=1,t.local_balance?u=+u+ +t.local_balance:t.local_balance=0,t.remote_balance?d=+d+ +t.remote_balance:t.remote_balance=0):(g+=+t.local_balance,f+=1)}),Object.assign(Object.assign({},t),{allChannels:e.payload,numberOfActiveChannels:p,numberOfInactiveChannels:f,totalCapacityActive:m,totalCapacityInactive:g,totalLocalBalance:u,totalRemoteBalance:d});case s.bq:const y=[...t.allChannels],b=t.allChannels.findIndex(t=>t.channel_point===e.payload.channelPoint);return b>-1&&y.splice(b,1),Object.assign(Object.assign({},t),{allChannels:y});case s.hn:return"Blockchain"===e.payload.target?Object.assign(Object.assign({},t),{blockchainBalance:e.payload.balance}):Object.assign({},t);case s._s:return Object.assign(Object.assign({},t),{networkInfo:e.payload});case s._V:return Object.assign(Object.assign({},t),{invoices:e.payload});case s.mU:return Object.assign(Object.assign({},t),{totalInvoices:e.payload});case s.kz:if(o=!0,e.payload.length&&a){const i=[...t.utxos];return i.forEach(t=>{const i=e.payload.find(e=>e.tx_hash===t.outpoint.txid_str);t.label=i&&i.label?i.label:""}),Object.assign(Object.assign({},t),{utxos:i,transactions:e.payload})}return Object.assign(Object.assign({},t),{transactions:e.payload});case s.b:if(a=!0,e.payload.length&&o){const i=[...t.transactions];e.payload.forEach(t=>{const e=i.find(e=>e.tx_hash===t.outpoint.txid_str);t.label=e&&e.label?e.label:""})}return Object.assign(Object.assign({},t),{utxos:e.payload});case s.Bj:return Object.assign(Object.assign({},t),{payments:e.payload});case s.tB:return Object.assign(Object.assign({},t),{allLightningTransactions:e.payload});case s.x:if(e.payload.forwarding_events){const i=[...t.allChannels,...t.closedChannels];e.payload.forwarding_events.forEach(t=>{if(i&&i.length>0)for(let e=0;et.information)},1827:(t,e,i)=>{"use strict";i.d(e,{v:()=>V});var n=i(4608),r=i(5291),s=i(9421),o=i(1572),a=i(3869),l=i(1084),c=i(1403),h=i(3722),u=i(1511),d=i(377),p=i(7439),f=i(7592),m=i(5980),g=i(7038),y=i(7679),b=i(3600),v=i(5001),_=i(6828),w=i(3691),x=i(6880),C=i(2609);const A=["scrollContainer"];function S(t,e){if(1&t&&o._UZ(0,"qrcode",32),2&t){const t=o.oxw();o.Q6J("qrdata",t.invoice.payment_request)("margin",2)("width",t.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0)}}function E(t,e){1&t&&(o.TgZ(0,"span",33),o._uU(1,"N/A"),o.qZA())}function k(t,e){if(1&t&&o._UZ(0,"qrcode",32),2&t){const t=o.oxw();o.Q6J("qrdata",t.invoice.payment_request)("margin",2)("width",t.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0)}}function T(t,e){1&t&&(o.TgZ(0,"span",34),o._uU(1,"QR Code Not Applicable"),o.qZA())}function M(t,e){1&t&&o._UZ(0,"mat-divider",22),2&t&&o.Q6J("inset",!0)}function L(t,e){1&t&&(o.ynx(0),o._uU(1," (zero amount) "),o.BQk())}const I=function(t){return{"mr-0":t}};function O(t,e){if(1&t&&o._UZ(0,"span",51),2&t){const t=o.oxw(4);o.Q6J("ngClass",o.VKq(1,I,t.screenSize===t.screenSizeEnum.XS))}}function D(t,e){if(1&t&&o._UZ(0,"span",52),2&t){const t=o.oxw(4);o.Q6J("ngClass",o.VKq(1,I,t.screenSize===t.screenSizeEnum.XS))}}function R(t,e){if(1&t&&o._UZ(0,"span",53),2&t){const t=o.oxw(4);o.Q6J("ngClass",o.VKq(1,I,t.screenSize===t.screenSizeEnum.XS))}}function N(t,e){if(1&t&&(o.TgZ(0,"div",40),o.TgZ(1,"div",45),o.TgZ(2,"span",46),o.YNc(3,O,1,3,"span",47),o.YNc(4,D,1,3,"span",48),o.YNc(5,R,1,3,"span",49),o._uU(6),o.qZA(),o.TgZ(7,"span",50),o._uU(8),o.ALo(9,"number"),o.qZA(),o.qZA(),o._UZ(10,"mat-divider",22),o.qZA()),2&t){const t=e.$implicit,i=o.oxw(3);o.xp6(3),o.Q6J("ngIf","SETTLED"===t.state),o.xp6(1),o.Q6J("ngIf","ACCEPTED"===t.state),o.xp6(1),o.Q6J("ngIf","CANCELED"===t.state),o.xp6(1),o.hij(" ",t.chan_id," "),o.xp6(2),o.Oqu(o.xi3(9,6,+t.amt_msat/1e3||0,i.getDecimalFormat(t))),o.xp6(2),o.Q6J("inset",!0)}}function P(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",17),o.TgZ(1,"mat-expansion-panel",38),o.NdJ("opened",function(){return o.CHM(t),o.oxw(2).flgOpened=!0})("closed",function(){return o.CHM(t),o.oxw(2).onExpansionClosed()}),o.TgZ(2,"mat-expansion-panel-header"),o.TgZ(3,"mat-panel-title"),o.TgZ(4,"h4",39),o._uU(5,"HTLCs"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(6,"div",40),o.TgZ(7,"div",41),o.TgZ(8,"span",42),o._uU(9,"Channel ID"),o.qZA(),o.TgZ(10,"span",43),o._uU(11,"Amount (Sats)"),o.qZA(),o.qZA(),o._UZ(12,"mat-divider",22),o.YNc(13,N,11,9,"div",44),o.qZA(),o.qZA(),o.qZA()}if(2&t){const t=o.oxw(2);o.xp6(12),o.Q6J("inset",!0),o.xp6(1),o.Q6J("ngForOf",t.invoice.htlcs)}}function F(t,e){1&t&&o._UZ(0,"mat-divider",22),2&t&&o.Q6J("inset",!0)}function Z(t,e){if(1&t&&(o.TgZ(0,"div"),o._UZ(1,"mat-divider",22),o.TgZ(2,"div",17),o.TgZ(3,"div",23),o.TgZ(4,"h4",19),o._uU(5,"R Preimage"),o.qZA(),o.TgZ(6,"span",24),o._uU(7),o.qZA(),o.qZA(),o.qZA(),o._UZ(8,"mat-divider",22),o.TgZ(9,"div",17),o.TgZ(10,"div",35),o.TgZ(11,"h4",19),o._uU(12,"State"),o.qZA(),o.TgZ(13,"span",24),o._uU(14),o.qZA(),o.qZA(),o.TgZ(15,"div",36),o.TgZ(16,"h4",19),o._uU(17,"Expiry"),o.qZA(),o.TgZ(18,"span",24),o._uU(19),o.qZA(),o.qZA(),o.TgZ(20,"div",36),o.TgZ(21,"h4",19),o._uU(22,"Private Routing Hints"),o.qZA(),o.TgZ(23,"span",24),o._uU(24),o.qZA(),o.qZA(),o.qZA(),o._UZ(25,"mat-divider",22),o.YNc(26,P,14,2,"div",37),o.YNc(27,F,1,1,"mat-divider",14),o.qZA()),2&t){const t=o.oxw();o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(t.invoice.r_preimage||"-"),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(t.invoice.state),o.xp6(5),o.Oqu(t.invoice.expiry),o.xp6(5),o.Oqu(t.invoice.private?"Yes":"No"),o.xp6(1),o.Q6J("inset",!0),o.xp6(1),o.Q6J("ngIf",t.invoice.htlcs&&t.invoice.htlcs.length>0),o.xp6(1),o.Q6J("ngIf",t.invoice.htlcs&&t.invoice.htlcs.length>0)}}function B(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"div",54),o.TgZ(1,"button",55),o.NdJ("click",function(){return o.CHM(t),o.oxw().onScrollDown()}),o.TgZ(2,"mat-icon",56),o._uU(3,"arrow_downward"),o.qZA(),o.qZA(),o.qZA()}}function U(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Show Advanced"),o.qZA())}function q(t,e){1&t&&(o.TgZ(0,"p"),o._uU(1,"Hide Advanced"),o.qZA())}function z(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",57),o.NdJ("copied",function(e){return o.CHM(t),o.oxw().onCopyPayment(e)}),o._uU(1),o.qZA()}if(2&t){const t=o.oxw();o.Q6J("payload",t.invoice.payment_request),o.xp6(1),o.Oqu(t.screenSize===t.screenSizeEnum.XS?"Copy Payment":"Copy Payment Request")}}function H(t,e){if(1&t){const t=o.EpF();o.TgZ(0,"button",58),o.NdJ("click",function(){return o.CHM(t),o.oxw().onClose()}),o._uU(1,"OK"),o.qZA()}}const Y=function(t){return{"display-none":t}},G=function(t){return{"xs-scroll-y":t}},j=function(t){return{"h-46":t}};let V=(()=>{class t{constructor(t,e,i,n,o){this.dialogRef=t,this.data=e,this.logger=i,this.commonService=n,this.snackBar=o,this.faReceipt=r.dLy,this.showAdvanced=!1,this.newlyAdded=!1,this.qrWidth=240,this.screenSize="",this.screenSizeEnum=s.cu,this.flgOpened=!1}set container(t){t&&(this.scrollContainer=t)}ngOnInit(){this.invoice=this.data.invoice,this.newlyAdded=this.data.newlyAdded,this.screenSize=this.commonService.getScreenSize(),this.screenSize===s.cu.XS&&(this.qrWidth=220)}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced,this.flgOpened=!1}onScrollDown(){this.scrollContainer.nativeElement.scrollTop=this.scrollContainer.nativeElement.scrollTop+60}onExpansionClosed(){this.flgOpened=!1,this.scrollContainer.nativeElement.scrollTop=0}onCopyPayment(t){this.snackBar.open("Payment request copied."),this.logger.info("Copied Text: "+t)}getDecimalFormat(t){return t.amt_msat<1e3?"1.0-4":"1.0-0"}}return t.\u0275fac=function(e){return new(e||t)(o.Y36(n.so),o.Y36(n.WI),o.Y36(a.mQ),o.Y36(l.v),o.Y36(c.ux))},t.\u0275cmp=o.Xpm({type:t,selectors:[["rtl-invoice-information"]],viewQuery:function(t,e){if(1&t&&o.Gf(A,5),2&t){let t;o.iGM(t=o.CRH())&&(e.container=t.first)}},decls:63,vars:44,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","space-between stretch"],["fxFlex","35",1,"modal-qr-code-container","padding-gap-large",3,"fxLayoutAlign","ngClass"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString",4,"ngIf"],["class","font-size-300",4,"ngIf"],["fxLayout","column","fxFlex","65"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxFlex","30",1,"modal-qr-code-container","padding-gap",3,"fxLayoutAlign","ngClass"],["class","font-size-120",4,"ngIf"],["class","my-1",3,"inset",4,"ngIf"],[3,"perfectScrollbar","ngClass"],["scrollContainer",""],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[4,"ngIf"],[1,"my-1",3,"inset"],["fxFlex","100"],[1,"overflow-wrap","foreground-secondary-text"],["fxLayout","row","fxLayoutAlign","start end","class","btn-sticky-container padding-gap-x-large",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","100",1,"padding-gap-x-large","padding-gap-bottom-large"],["mat-stroked-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString"],[1,"font-size-300"],[1,"font-size-120"],["fxFlex","34"],["fxFlex","33"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"flat-expansion-panel",3,"opened","closed"],["fxLayoutAlign","start center","fxFlex","100",1,"font-bold-500"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","row","fxLayoutAlign","start start","fxFlex","100",1,"mt-minus-1"],["fxFlex","60",1,"foreground-secondary-text","font-bold-500"],["fxFlex","40",1,"foreground-secondary-text","font-bold-500"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start start","fxFlex","100"],["fxFlex","60",1,"foreground-secondary-text"],["class","dot green","matTooltip","Settled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Accepted","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Cancelled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["fxFlex","40",1,"foreground-secondary-text"],["matTooltip","Settled","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Accepted","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],["matTooltip","Cancelled","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["fxLayout","row","fxLayoutAlign","start end",1,"btn-sticky-container","padding-gap-x-large"],["mat-mini-fab","","aria-label","Scroll Down","fxLayoutAlign","center center",3,"click"],["fxLayoutAlign","center center"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(t,e){if(1&t&&(o.TgZ(0,"div",0),o.TgZ(1,"div",1),o.YNc(2,S,1,5,"qrcode",2),o.YNc(3,E,2,0,"span",3),o.qZA(),o.TgZ(4,"div",4),o.TgZ(5,"mat-card-header",5),o.TgZ(6,"div",6),o._UZ(7,"fa-icon",7),o.TgZ(8,"span",8),o._uU(9),o.qZA(),o.qZA(),o.TgZ(10,"button",9),o.NdJ("click",function(){return e.onClose()}),o._uU(11,"X"),o.qZA(),o.qZA(),o.TgZ(12,"mat-card-content",10),o.TgZ(13,"div",11),o.TgZ(14,"div",12),o.YNc(15,k,1,5,"qrcode",2),o.YNc(16,T,2,0,"span",13),o.qZA(),o.YNc(17,M,1,1,"mat-divider",14),o.TgZ(18,"div",15,16),o.TgZ(20,"div",17),o.TgZ(21,"div",18),o.TgZ(22,"h4",19),o._uU(23),o.qZA(),o.TgZ(24,"span",20),o._uU(25),o.ALo(26,"number"),o.YNc(27,L,2,0,"ng-container",21),o.qZA(),o.qZA(),o.TgZ(28,"div",18),o.TgZ(29,"h4",19),o._uU(30,"Memo"),o.qZA(),o.TgZ(31,"span",20),o._uU(32),o.qZA(),o.qZA(),o.qZA(),o._UZ(33,"mat-divider",22),o.TgZ(34,"div",17),o.TgZ(35,"div",18),o.TgZ(36,"h4",19),o._uU(37,"Date Created"),o.qZA(),o.TgZ(38,"span",20),o._uU(39),o.ALo(40,"date"),o.qZA(),o.qZA(),o.TgZ(41,"div",18),o.TgZ(42,"h4",19),o._uU(43,"Date Settled"),o.qZA(),o.TgZ(44,"span",20),o._uU(45),o.ALo(46,"date"),o.qZA(),o.qZA(),o.qZA(),o._UZ(47,"mat-divider",22),o.TgZ(48,"div",17),o.TgZ(49,"div",23),o.TgZ(50,"h4",19),o._uU(51,"Payment Request"),o.qZA(),o.TgZ(52,"span",24),o._uU(53),o.qZA(),o.qZA(),o.qZA(),o.YNc(54,Z,28,9,"div",21),o.qZA(),o.qZA(),o.qZA(),o.YNc(55,B,4,0,"div",25),o.TgZ(56,"div",26),o.TgZ(57,"button",27),o.NdJ("click",function(){return e.onShowAdvanced()}),o.YNc(58,U,2,0,"p",28),o.YNc(59,q,2,0,"ng-template",null,29,o.W1O),o.qZA(),o.YNc(61,z,2,2,"button",30),o.YNc(62,H,2,0,"button",31),o.qZA(),o.qZA(),o.qZA()),2&t){const t=o.MAs(60);o.xp6(1),o.Q6J("fxLayoutAlign",e.invoice.payment_request&&""!==e.invoice.payment_request?"center start":"center center")("ngClass",o.VKq(36,Y,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("ngIf",e.invoice.payment_request&&""!==e.invoice.payment_request),o.xp6(1),o.Q6J("ngIf",!e.invoice.payment_request||""===e.invoice.payment_request),o.xp6(4),o.Q6J("icon",e.faReceipt),o.xp6(2),o.Oqu(e.screenSize===e.screenSizeEnum.XS?e.newlyAdded?"Created":"Invoice":e.newlyAdded?"Invoice Created":"Invoice Information"),o.xp6(3),o.Q6J("ngClass",o.VKq(38,G,e.screenSize===e.screenSizeEnum.XS)),o.xp6(2),o.Q6J("fxLayoutAlign",e.invoice.payment_request&&""!==e.invoice.payment_request?"center start":"center center")("ngClass",o.VKq(40,Y,e.screenSize!==e.screenSizeEnum.XS&&e.screenSize!==e.screenSizeEnum.SM)),o.xp6(1),o.Q6J("ngIf",e.invoice.payment_request&&""!==e.invoice.payment_request),o.xp6(1),o.Q6J("ngIf",!e.invoice.payment_request||""===e.invoice.payment_request),o.xp6(1),o.Q6J("ngIf",e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM),o.xp6(1),o.Q6J("ngClass",o.VKq(42,j,e.invoice.htlcs&&e.invoice.htlcs.length>0&&e.showAdvanced)),o.xp6(5),o.Oqu(e.screenSize===e.screenSizeEnum.XS?"Amount":"Amount Requested"),o.xp6(2),o.hij("",o.lcZ(26,28,e.invoice.value||0)," Sats"),o.xp6(2),o.Q6J("ngIf",!e.invoice.value),o.xp6(5),o.Oqu(e.invoice.memo),o.xp6(1),o.Q6J("inset",!0),o.xp6(6),o.Oqu(o.xi3(40,30,1e3*e.invoice.creation_date,"dd/MMM/YYYY HH:mm")),o.xp6(6),o.Oqu(0!=+e.invoice.settle_date?o.xi3(46,33,1e3*+e.invoice.settle_date,"dd/MMM/YYYY HH:mm"):"-"),o.xp6(2),o.Q6J("inset",!0),o.xp6(6),o.Oqu(e.invoice.payment_request||"N/A"),o.xp6(1),o.Q6J("ngIf",e.showAdvanced),o.xp6(1),o.Q6J("ngIf",e.invoice.htlcs&&e.invoice.htlcs.length>0&&e.showAdvanced&&e.flgOpened),o.xp6(3),o.Q6J("ngIf",!e.showAdvanced)("ngIfElse",t),o.xp6(3),o.Q6J("ngIf",e.invoice.payment_request&&""!==e.invoice.payment_request),o.xp6(1),o.Q6J("ngIf",!e.invoice.payment_request||""===e.invoice.payment_request)}},directives:[h.xw,h.Wh,h.yH,u.mk,d.oO,u.O5,p.dk,f.BN,m.lW,p.dn,g.$V,y.d,b.V,v.ib,v.yz,v.yK,u.sg,_.gM,w.Hw,x.h,C.y],pipes:[u.JJ,u.uU],styles:[""]}),t})()},4833:(t,e,i)=>{"use strict";i.d(e,{_:()=>r,J:()=>s});var n=i(709);const r=[(0,n.X$)("opacityAnimation",[(0,n.eR)(":enter",[(0,n.oB)({opacity:0}),(0,n.jt)("1000ms ease-in",(0,n.oB)({opacity:1}))]),(0,n.eR)(":leave",[(0,n.jt)("0ms",(0,n.oB)({opacity:0}))])])],s=[(0,n.X$)("fadeIn",[(0,n.eR)("void => *",[]),(0,n.eR)("* => void",[]),(0,n.eR)("* => *",[(0,n.jt)(800,(0,n.F4)([(0,n.oB)({opacity:0,transform:"translateY(100%)"}),(0,n.oB)({opacity:1,transform:"translateY(0%)"})]))])])]},2865:(t,e,i)=>{"use strict";i.d(e,{g:()=>r});var n=i(709);const r=(0,n.X$)("routeAnimation",[(0,n.eR)("* => *",[(0,n.IO)(":enter, :leave",(0,n.oB)({position:"fixed",width:"100%"}),{optional:!0}),(0,n.ru)([(0,n.IO)(":enter",[(0,n.oB)({transform:"translateX(100%)"}),(0,n.jt)("1000ms ease-in-out",(0,n.oB)({transform:"translateX(0%)"}))],{optional:!0}),(0,n.IO)(":leave",[(0,n.oB)({transform:"translateX(0%)"}),(0,n.jt)("1000ms ease-in-out",(0,n.oB)({transform:"translateX(-100%)"}))],{optional:!0})])])])},194:(t,e,i)=>{"use strict";i.d(e,{l:()=>r});var n=i(709);const r=[(0,n.X$)("sliderAnimation",[(0,n.SB)("*",(0,n.oB)({transform:"translateX(0)"})),(0,n.eR)("void => backward",[(0,n.oB)({transform:"translateX(-100%"}),(0,n.jt)("800ms")]),(0,n.eR)("backward => void",[(0,n.jt)("0ms",(0,n.oB)({transform:"translateX(100%)"}))]),(0,n.eR)("void => forward",[(0,n.oB)({transform:"translateX(100%"}),(0,n.jt)("800ms")]),(0,n.eR)("forward => void",[(0,n.jt)("0ms",(0,n.oB)({transform:"translateX(-100%)"}))])])]},2427:(t,e,i)=>{"use strict";i.d(e,{H:()=>p});var n=i(4608),r=i(1572),s=i(3869),o=i(3722),a=i(7439),l=i(5980),c=i(1511),h=i(7679),u=i(6880);function d(t,e){if(1&t&&(r.TgZ(0,"p",14),r._uU(1),r.qZA()),2&t){const t=r.oxw();r.xp6(1),r.Oqu(t.data.titleMessage)}}let p=(()=>{class t{constructor(t,e,i){this.dialogRef=t,this.data=e,this.logger=i,this.errorMessage=""}ngOnInit(){this.errorMessage="object"==typeof this.data.message.message?JSON.stringify(this.data.message.message):this.data.message.message,this.data.message||this.data.titleMessage||this.data.message||(this.data.titleMessage="Please Check Server Connection"),this.logger.info(this.data.message)}onClose(){this.dialogRef.close(!1)}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(n.so),r.Y36(n.WI),r.Y36(s.mQ))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-error-message"]],decls:29,vars:6,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large","error-alert-block"],["fxLayout","column"],["fxLayoutAlign","start center","class","pb-1",4,"ngIf"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"w-100","my-1"],[1,"word-break"],["fxLayout","row","fxLayoutAlign","end center"],["tabindex","1","autoFocus","","mat-flat-button","","color","primary","type","submit","default","",3,"mat-dialog-close"],["fxLayoutAlign","start center",1,"pb-1"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.TgZ(2,"mat-card-header",2),r.TgZ(3,"div",3),r.TgZ(4,"span",4),r._uU(5),r.qZA(),r.qZA(),r.TgZ(6,"button",5),r.NdJ("click",function(){return e.onClose()}),r._uU(7,"X"),r.qZA(),r.qZA(),r.TgZ(8,"mat-card-content",6),r.TgZ(9,"div",7),r.YNc(10,d,2,1,"p",8),r.TgZ(11,"h4",9),r._uU(12,"Error Code"),r.qZA(),r.TgZ(13,"span"),r._uU(14),r.qZA(),r._UZ(15,"mat-divider",10),r.TgZ(16,"h4",9),r._uU(17,"Error Message"),r.qZA(),r.TgZ(18,"span",11),r._uU(19),r.qZA(),r._UZ(20,"mat-divider",10),r.TgZ(21,"h4",9),r._uU(22,"API URL"),r.qZA(),r.TgZ(23,"span",11),r._uU(24),r.qZA(),r._UZ(25,"mat-divider",10),r.TgZ(26,"div",12),r.TgZ(27,"button",13),r._uU(28,"OK"),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(5),r.Oqu(e.data.alertTitle||"ERROR"),r.xp6(5),r.Q6J("ngIf",e.data.titleMessage),r.xp6(4),r.Oqu(e.data.message.code),r.xp6(5),r.Oqu(e.errorMessage),r.xp6(5),r.Oqu(e.data.message.URL),r.xp6(3),r.Q6J("mat-dialog-close",!1))},directives:[o.xw,o.yH,a.dk,o.Wh,l.lW,a.dn,c.O5,h.d,u.h,n.ZT],styles:[".display-block[_ngcontent-%COMP%]{display:block}"]}),t})()},8016:(t,e,i)=>{"use strict";i.d(e,{w:()=>h});var n=i(5291),r=i(1572),s=i(6853),o=i(3722),a=i(7592),l=i(7439),c=i(5980);let h=(()=>{class t{constructor(t){this.router=t,this.faTimes=n.NBC}goToHelp(){this.router.navigate(["/help"])}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(s.F0))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-not-found"]],decls:13,vars:1,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column",1,"padding-gap-large"],["fxLayout","column","fxLayoutAlign","start start"],[1,"box-text"],["fxLayout","row","fxLayoutAlign","center","fxFlex","80"],["mat-flat-button","","color","primary","type","button",1,"mt-2",3,"click"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r._UZ(1,"fa-icon",1),r.TgZ(2,"span",2),r._uU(3,"Page Not Found"),r.qZA(),r.qZA(),r.TgZ(4,"div",3),r.TgZ(5,"mat-card"),r.TgZ(6,"mat-card-content",4),r.TgZ(7,"div",5),r.TgZ(8,"div",6),r._uU(9,"This page does not exist!"),r.qZA(),r.TgZ(10,"span",7),r.TgZ(11,"button",8),r.NdJ("click",function(){return e.goToHelp()}),r._uU(12,"Go To Help"),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(1),r.Q6J("icon",e.faTimes))},directives:[o.xw,o.Wh,a.BN,l.a8,l.dn,o.yH,c.lW],encapsulation:2}),t})()},5028:(t,e,i)=>{"use strict";i.d(e,{a:()=>Qt});var n=i(6073),r=i(9666),s=i(9568),o=i(4608),a=i(5291),l=i(4833),c=i(9421),h=i(1572),u=i(964),d=i(2969),p=i(1511),f=i(3869),m=i(6853),g=i(1084),y=i(3722),b=i(7439),v=i(5980),_=i(7753),w=i(5001),x=i(377),C=i(6828),A=i(7679);function S(t,e){1&t&&h.GkF(0)}function E(t,e){1&t&&h.GkF(0)}const k=function(t){return{"h-5":t}};function T(t,e){if(1&t&&(h.TgZ(0,"mat-expansion-panel",3),h.TgZ(1,"mat-expansion-panel-header"),h.TgZ(2,"mat-panel-title"),h.TgZ(3,"span",4),h._uU(4),h.ALo(5,"number"),h.qZA(),h.qZA(),h.qZA(),h.YNc(6,E,1,0,"ng-container",0),h.qZA()),2&t){const t=h.oxw(),e=h.MAs(4);h.Q6J("expanded",t.panelExpanded)("ngClass",h.VKq(7,k,!t.flgShowPanel)),h.xp6(4),h.AsE("Quote for ",t.termCaption," amount (",h.lcZ(5,5,t.quote.amount)," Sats)"),h.xp6(2),h.Q6J("ngTemplateOutlet",e)}}function M(t,e){if(1&t&&(h.TgZ(0,"div",17),h.TgZ(1,"h4",8),h._uU(2,"Prepay Amount (Sats)"),h.qZA(),h.TgZ(3,"span",9),h._uU(4),h.ALo(5,"number"),h.qZA(),h.qZA()),2&t){const t=h.oxw(2);h.xp6(4),h.Oqu(h.lcZ(5,1,null==t.quote?null:t.quote.prepay_amt_sat))}}function L(t,e){1&t&&h._UZ(0,"mat-divider",12)}function I(t,e){if(1&t&&(h.TgZ(0,"div",6),h.TgZ(1,"div",18),h.TgZ(2,"h4",8),h._uU(3,"Swap Server Node Pubkey"),h.qZA(),h.TgZ(4,"span",9),h._uU(5),h.qZA(),h.qZA(),h.qZA()),2&t){const t=h.oxw(2);h.xp6(5),h.Oqu(null==t.quote?null:t.quote.swap_payment_dest)}}function O(t,e){if(1&t&&(h.TgZ(0,"div",5),h.TgZ(1,"div",6),h.TgZ(2,"div",7),h.TgZ(3,"h4",8),h._uU(4,"Swap Fee (Sats)"),h.qZA(),h.TgZ(5,"span",9),h._uU(6),h.ALo(7,"number"),h.qZA(),h.qZA(),h.TgZ(8,"div",10),h.TgZ(9,"h4",8),h._uU(10),h.qZA(),h.TgZ(11,"span",9),h._uU(12),h.ALo(13,"number"),h.qZA(),h.qZA(),h.YNc(14,M,6,3,"div",11),h.qZA(),h._UZ(15,"mat-divider",12),h.TgZ(16,"div",6),h.TgZ(17,"div",13),h.TgZ(18,"h4",8),h._uU(19,"Max Off-chain Swap Routing Fee (Sats)"),h.qZA(),h.TgZ(20,"span",9),h._uU(21),h.ALo(22,"number"),h.qZA(),h.qZA(),h.TgZ(23,"div",14),h.TgZ(24,"h4",8),h._uU(25,"Max Off-chain Prepay Routing Fee (Sats)"),h.qZA(),h.TgZ(26,"span",9),h._uU(27,"36"),h.qZA(),h.qZA(),h.qZA(),h.YNc(28,L,1,0,"mat-divider",15),h.YNc(29,I,6,1,"div",16),h.qZA()),2&t){const t=h.oxw();h.xp6(2),h.Q6J("fxFlex",null!=t.quote&&t.quote.prepay_amt_sat?"30":"50"),h.xp6(4),h.Oqu(h.lcZ(7,9,null==t.quote?null:t.quote.swap_fee_sat)),h.xp6(2),h.Q6J("fxFlex",null!=t.quote&&t.quote.prepay_amt_sat?"30":"50"),h.xp6(2),h.Oqu(null!=t.quote&&t.quote.htlc_sweep_fee_sat?"HTLC Sweep Fee (Sats)":null!=t.quote&&t.quote.htlc_publish_fee_sat?"HTLC Publish Fee (Sats)":""),h.xp6(2),h.Oqu(h.lcZ(13,11,null!=t.quote&&t.quote.htlc_sweep_fee_sat?t.quote.htlc_sweep_fee_sat:null!=t.quote&&t.quote.htlc_publish_fee_sat?t.quote.htlc_publish_fee_sat:0)),h.xp6(2),h.Q6J("ngIf",null==t.quote?null:t.quote.prepay_amt_sat),h.xp6(7),h.Oqu(h.lcZ(22,13,(null==t.quote?null:t.quote.amount)*((null!=t.quote&&t.quote.off_chain_swap_routing_fee_percentage?null==t.quote?null:t.quote.off_chain_swap_routing_fee_percentage:2)/100))),h.xp6(7),h.Q6J("ngIf",""!==(null==t.quote?null:t.quote.swap_payment_dest)),h.xp6(1),h.Q6J("ngIf",""!==(null==t.quote?null:t.quote.swap_payment_dest))}}let D=(()=>{class t{constructor(){this.quote={},this.termCaption="",this.showPanel=!0,this.panelExpanded=!1,this.flgShowPanel=!1}ngOnInit(){setTimeout(()=>{this.flgShowPanel=!0},1200)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=h.Xpm({type:t,selectors:[["rtl-loop-quote"]],inputs:{quote:"quote",termCaption:"termCaption",showPanel:"showPanel",panelExpanded:"panelExpanded"},decls:5,vars:1,consts:[[4,"ngTemplateOutlet"],["informationBlock",""],["quoteDetailsBlock",""],["fxFlex","100",1,"flat-expansion-panel","mb-1",3,"expanded","ngClass"],["fxLayoutAlign","start center","fxFlex","100"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["matTooltip","Estimated fee charged by the loop server for the swap",3,"fxFlex"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],["matTooltip","An estimate of the on-chain fee that needs to be paid to sweep the HTLC",3,"fxFlex"],["fxFlex","40","matTooltip","The part of the swap fee that is requested as a prepayment",4,"ngIf"],[1,"w-100","my-1"],["fxFlex","50","matTooltip","Maximum off-chain fee that may be paid for routing the payment amount to the server"],["fxFlex","50","matTooltip","Maximum off-chain fee that may be paid for routing the pre-payment amount to the server"],["class","w-100 my-1",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxFlex","40","matTooltip","The part of the swap fee that is requested as a prepayment"],["fxFlex","100","matTooltip","The node pubkey, where the swap payments will be sent"]],template:function(t,e){if(1&t&&(h.YNc(0,S,1,0,"ng-container",0),h.YNc(1,T,7,9,"ng-template",null,1,h.W1O),h.YNc(3,O,30,15,"ng-template",null,2,h.W1O)),2&t){const t=h.MAs(2),i=h.MAs(4);h.Q6J("ngTemplateOutlet",e.showPanel?t:i)}},directives:[p.tP,w.ib,y.yH,p.mk,x.oO,w.yz,w.yK,y.Wh,y.xw,C.gM,p.O5,A.d],pipes:[p.JJ],styles:[""]}),t})();var R=i(6283),N=i(6756),P=i(6880),F=i(7521),Z=i(3691),B=i(4810),U=i(5994);function q(t,e){1&t&&h.GkF(0)}function z(t,e){if(1&t&&(h.TgZ(0,"div",3),h.TgZ(1,"span",4),h._uU(2),h.qZA(),h.qZA()),2&t){const t=h.oxw();h.xp6(2),h.Oqu(null!=t.loopStatus&&t.loopStatus.error?null==t.loopStatus?null:t.loopStatus.error:"Unknown Error.")}}function H(t,e){if(1&t&&(h.TgZ(0,"div",3),h.TgZ(1,"div",5),h.TgZ(2,"div",6),h.TgZ(3,"h4",7),h._uU(4,"ID"),h.qZA(),h.TgZ(5,"span",4),h._uU(6),h.qZA(),h.qZA(),h.qZA(),h._UZ(7,"mat-divider",8),h.TgZ(8,"div",5),h.TgZ(9,"div",6),h.TgZ(10,"h4",7),h._uU(11,"HTLC Address"),h.qZA(),h.TgZ(12,"span",4),h._uU(13),h.qZA(),h.qZA(),h.qZA(),h.qZA()),2&t){const t=h.oxw();h.xp6(6),h.Oqu(null==t.loopStatus?null:t.loopStatus.id_bytes),h.xp6(7),h.Oqu(null==t.loopStatus?null:t.loopStatus.htlc_address)}}let Y=(()=>{class t{constructor(){}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=h.Xpm({type:t,selectors:[["rtl-loop-status"]],inputs:{loopStatus:"loopStatus"},decls:5,vars:1,consts:[[4,"ngTemplateOutlet"],["loopFailedBlock",""],["loopSuccessfulBlock",""],["fxLayout","column"],[1,"foreground-secondary-text"],["fxLayout","row"],["fxFlex","100"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"w-100","my-1"]],template:function(t,e){if(1&t&&(h.YNc(0,q,1,0,"ng-container",0),h.YNc(1,z,3,1,"ng-template",null,1,h.W1O),h.YNc(3,H,14,2,"ng-template",null,2,h.W1O)),2&t){const t=h.MAs(2),i=h.MAs(4);h.Q6J("ngTemplateOutlet",null!=e.loopStatus&&e.loopStatus.error?t:i)}},directives:[p.tP,y.xw,y.yH,y.Wh,A.d],styles:[""]}),t})();var G=i(194);function j(t,e){1&t&&h.GkF(0)}const V=function(t,e){return{"small-svg":t,"large-svg":e}};function Q(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",7),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"g",8),h.TgZ(5,"g",9),h.TgZ(6,"g",10),h.TgZ(7,"g",11),h._UZ(8,"circle",12),h._UZ(9,"path",13),h.qZA(),h.TgZ(10,"g",14),h._UZ(11,"ellipse",15),h._UZ(12,"ellipse",16),h._UZ(13,"rect",17),h._UZ(14,"rect",18),h._UZ(15,"rect",19),h._UZ(16,"rect",20),h._UZ(17,"rect",21),h._UZ(18,"rect",22),h._UZ(19,"rect",23),h._UZ(20,"rect",24),h._UZ(21,"rect",25),h._UZ(22,"rect",26),h._UZ(23,"rect",27),h._UZ(24,"rect",28),h._UZ(25,"rect",29),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(26,"div",30),h.TgZ(27,"mat-card-title"),h._uU(28,"Loop Out explained."),h.qZA(),h.qZA(),h.TgZ(29,"div",31),h.TgZ(30,"mat-card-subtitle",32),h._uU(31," Lightning Loop is a non custodial service offered by Lightning Labs to bridge on-chain and off-chain Bitcoin using Submarine swaps. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,V,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function W(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",33),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"defs"),h.TgZ(5,"linearGradient",34),h._UZ(6,"stop",35),h._UZ(7,"stop",36),h._UZ(8,"stop",37),h.qZA(),h.qZA(),h.TgZ(9,"g",8),h.TgZ(10,"g",38),h.TgZ(11,"g",39),h.TgZ(12,"g",40),h.TgZ(13,"g",41),h.TgZ(14,"g",42),h._UZ(15,"rect",43),h._UZ(16,"rect",44),h._UZ(17,"rect",45),h._UZ(18,"circle",46),h._UZ(19,"rect",47),h._UZ(20,"rect",48),h._UZ(21,"circle",49),h._UZ(22,"rect",50),h._UZ(23,"rect",51),h._UZ(24,"rect",52),h._UZ(25,"rect",53),h._UZ(26,"circle",54),h._UZ(27,"circle",55),h.qZA(),h.TgZ(28,"g",56),h._UZ(29,"path",57),h._UZ(30,"rect",58),h._UZ(31,"polygon",59),h._UZ(32,"circle",60),h._UZ(33,"path",61),h._UZ(34,"rect",62),h._UZ(35,"rect",63),h._UZ(36,"rect",64),h._UZ(37,"rect",65),h._UZ(38,"rect",66),h._UZ(39,"rect",67),h._UZ(40,"rect",68),h._UZ(41,"path",69),h._UZ(42,"path",70),h.qZA(),h._UZ(43,"path",71),h.qZA(),h.qZA(),h._UZ(44,"circle",72),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(45,"div",30),h.TgZ(46,"mat-card-title"),h._uU(47,"Step 1: Deciding to Loop Out"),h.qZA(),h.qZA(),h.TgZ(48,"div",31),h.TgZ(49,"mat-card-subtitle",32),h._uU(50," You have a channel with a local balance amount and you want to gain inbound liquidity. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,V,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function J(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",73),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"defs"),h.TgZ(5,"linearGradient",74),h._UZ(6,"stop",35),h._UZ(7,"stop",36),h._UZ(8,"stop",37),h.qZA(),h.qZA(),h.TgZ(9,"g",8),h.TgZ(10,"g",75),h.TgZ(11,"g",76),h._UZ(12,"circle",77),h._UZ(13,"path",78),h.TgZ(14,"g",79),h._UZ(15,"polygon",80),h._UZ(16,"polygon",81),h._UZ(17,"path",82),h.qZA(),h.TgZ(18,"g",83),h._UZ(19,"polygon",84),h._UZ(20,"path",85),h._UZ(21,"rect",86),h._UZ(22,"path",87),h._UZ(23,"rect",88),h._UZ(24,"rect",89),h._UZ(25,"rect",90),h._UZ(26,"rect",91),h._UZ(27,"circle",92),h._UZ(28,"path",93),h.TgZ(29,"g",94),h.TgZ(30,"g",95),h._UZ(31,"g",96),h.qZA(),h._UZ(32,"g",97),h.qZA(),h._UZ(33,"path",98),h.qZA(),h.TgZ(34,"g",99),h.TgZ(35,"g",41),h.TgZ(36,"g",42),h._UZ(37,"rect",43),h._UZ(38,"rect",44),h._UZ(39,"rect",45),h._UZ(40,"circle",46),h._UZ(41,"rect",47),h._UZ(42,"rect",48),h._UZ(43,"circle",49),h._UZ(44,"rect",50),h._UZ(45,"rect",51),h._UZ(46,"rect",52),h._UZ(47,"rect",53),h._UZ(48,"circle",100),h._UZ(49,"circle",54),h._UZ(50,"circle",55),h._UZ(51,"circle",101),h.qZA(),h.TgZ(52,"g",56),h._UZ(53,"path",57),h._UZ(54,"rect",102),h._UZ(55,"polygon",103),h._UZ(56,"circle",104),h._UZ(57,"path",61),h._UZ(58,"rect",105),h._UZ(59,"rect",106),h._UZ(60,"rect",107),h._UZ(61,"rect",108),h._UZ(62,"rect",109),h._UZ(63,"rect",110),h._UZ(64,"rect",68),h._UZ(65,"path",69),h._UZ(66,"path",70),h.qZA(),h._UZ(67,"path",111),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(68,"div",30),h.TgZ(69,"mat-card-title"),h._uU(70,"Step 2: Send lightning payment"),h.qZA(),h.qZA(),h.TgZ(71,"div",31),h.TgZ(72,"mat-card-subtitle",32),h._uU(73," Your node pays a lightning invoice for the amount requested via the loop service. This moves the local balance, for the amount paid, to the remote side of the channel. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,V,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function X(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",112),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"g",8),h.TgZ(5,"g",113),h.TgZ(6,"g",114),h.TgZ(7,"g",115),h.TgZ(8,"g",116),h._UZ(9,"circle",12),h._UZ(10,"path",117),h.qZA(),h.TgZ(11,"g",14),h._UZ(12,"ellipse",118),h._UZ(13,"ellipse",16),h._UZ(14,"rect",17),h._UZ(15,"rect",18),h._UZ(16,"rect",19),h._UZ(17,"rect",20),h._UZ(18,"rect",21),h._UZ(19,"rect",22),h._UZ(20,"rect",23),h._UZ(21,"rect",24),h._UZ(22,"rect",25),h._UZ(23,"rect",26),h._UZ(24,"rect",27),h._UZ(25,"rect",28),h._UZ(26,"rect",29),h.qZA(),h.qZA(),h.TgZ(27,"g",119),h._UZ(28,"polygon",80),h._UZ(29,"polygon",120),h._UZ(30,"path",82),h.qZA(),h.TgZ(31,"g",121),h._UZ(32,"polygon",84),h._UZ(33,"path",85),h._UZ(34,"rect",86),h._UZ(35,"path",87),h._UZ(36,"rect",88),h._UZ(37,"rect",89),h._UZ(38,"rect",90),h._UZ(39,"rect",91),h._UZ(40,"circle",122),h._UZ(41,"path",93),h.TgZ(42,"g",94),h.TgZ(43,"g",95),h._UZ(44,"g",96),h.qZA(),h._UZ(45,"g",97),h.qZA(),h._UZ(46,"path",123),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(47,"div",30),h.TgZ(48,"mat-card-title"),h._uU(49,"Step 3: Receive funds back"),h.qZA(),h.qZA(),h.TgZ(50,"div",31),h.TgZ(51,"mat-card-subtitle",32),h._uU(52," Loop service then sends you a payment on-chain for the amount same as the lightning payment minus the fee. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,V,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function K(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",124),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"defs"),h.TgZ(5,"linearGradient",34),h._UZ(6,"stop",35),h._UZ(7,"stop",36),h._UZ(8,"stop",37),h.qZA(),h.qZA(),h.TgZ(9,"g",8),h.TgZ(10,"g",125),h.TgZ(11,"g",126),h.TgZ(12,"g",42),h._UZ(13,"rect",127),h._UZ(14,"rect",128),h._UZ(15,"rect",129),h._UZ(16,"circle",130),h._UZ(17,"rect",131),h._UZ(18,"rect",132),h._UZ(19,"circle",133),h._UZ(20,"rect",134),h._UZ(21,"rect",135),h._UZ(22,"rect",136),h._UZ(23,"rect",137),h._UZ(24,"rect",138),h._UZ(25,"circle",139),h._UZ(26,"circle",140),h._UZ(27,"circle",141),h.qZA(),h.TgZ(28,"g",142),h.TgZ(29,"g",143),h.TgZ(30,"g",144),h._UZ(31,"path",145),h._UZ(32,"rect",146),h._UZ(33,"polygon",147),h.TgZ(34,"g",148),h._UZ(35,"path",149),h.qZA(),h._UZ(36,"rect",150),h._UZ(37,"rect",151),h._UZ(38,"rect",152),h._UZ(39,"rect",153),h._UZ(40,"rect",154),h._UZ(41,"rect",155),h._UZ(42,"rect",156),h._UZ(43,"path",157),h._UZ(44,"path",158),h.qZA(),h.TgZ(45,"g",159),h._UZ(46,"path",160),h._UZ(47,"path",161),h._UZ(48,"path",162),h._UZ(49,"path",163),h._UZ(50,"path",164),h._UZ(51,"path",165),h._UZ(52,"path",166),h._UZ(53,"path",167),h._UZ(54,"path",168),h._UZ(55,"path",169),h._UZ(56,"path",170),h._UZ(57,"circle",171),h._UZ(58,"circle",172),h.qZA(),h._UZ(59,"path",173),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(60,"div",30),h.TgZ(61,"mat-card-title"),h._uU(62,"Done!"),h.qZA(),h.qZA(),h.TgZ(63,"div",31),h.TgZ(64,"mat-card-subtitle",32),h._uU(65," Final settlement occurs when your node sweeps the on-chain payment and the loop server settles the lightning invoice. You receive the payment on-chain in your wallet and also move local balance to the remote side of the channel, gaining inbound capacity. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,V,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}let $=(()=>{class t{constructor(t){this.commonService=t,this.animationDirection="forward",this.stepNumber=1,this.stepNumberChange=new h.vpe,this.screenSize="",this.screenSizeEnum=c.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}onSwipe(t){2===t.direction&&this.stepNumber<5?(this.stepNumber++,this.animationDirection="forward",this.stepNumberChange.emit(this.stepNumber)):4===t.direction&&this.stepNumber>1&&(this.stepNumber--,this.animationDirection="backward",this.stepNumberChange.emit(this.stepNumber))}}return t.\u0275fac=function(e){return new(e||t)(h.Y36(g.v))},t.\u0275cmp=h.Xpm({type:t,selectors:[["rtl-loop-out-info-graphics"]],inputs:{animationDirection:"animationDirection",stepNumber:"stepNumber"},outputs:{stepNumberChange:"stepNumberChange"},decls:11,vars:1,consts:[[4,"ngTemplateOutlet"],["loopStepBlock1",""],["loopStepBlock2",""],["loopStepBlock3",""],["loopStepBlock4",""],["loopStepBlock5",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",3,"swipe"],["fxFlex","30","viewBox","0 0 108 118","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","Loopv0.2","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","LoopOut_Step01","transform","translate(-594.000000, -215.000000)","fill-rule","nonzero"],["id","Loop_Step01","transform","translate(594.000000, 215.000000)"],["id","Group-16","transform","translate(23.000000, 0.000000)"],["id","Oval","cx","42.4877419","cy","42.4877419","r","42.4877419",1,"fill-color-2"],["d","M56.0827415,28.5000036 C60.4468211,28.5000036 63.9999285,25.1343958 63.9999285,21.0000215 C63.9999285,16.8656472 60.4468211,13.5000393 56.0827415,13.5000393 C52.9843297,13.5000393 50.5608889,15.4359631 48.9999642,17.1843872 C47.4390396,15.4359631 45.0155987,13.5000393 41.9171869,13.5000393 C37.5531074,13.5000393 34,16.8656472 34,21.0000215 C34,25.1343958 37.5531074,28.5000036 41.9171869,28.5000036 C45.0155987,28.5000036 47.4390396,26.5640798 48.9999642,24.8156557 C50.5608889,26.5640798 52.9843297,28.5000036 56.0827415,28.5000036 Z M41.9171869,24.0000143 C40.0328073,24.0000143 38.4999893,22.6546959 38.4999893,21.0000286 C38.4999893,19.3453471 40.0328073,18.0000286 41.9171869,18.0000286 C43.707771,18.0000286 45.3577763,19.6921938 46.3234264,21.0000286 C45.3671604,22.2937501 43.7031019,24.0000143 41.9171869,24.0000143 Z M56.0827415,24.0000143 C54.2921574,24.0000143 52.6421522,22.3078492 51.676502,21.0000286 C52.6327681,19.7062929 54.2968266,18.0000286 56.0827415,18.0000286 C57.9671212,18.0000286 59.4999392,19.3453471 59.4999392,21.0000286 C59.4999392,22.6546959 57.9671212,24.0000143 56.0827415,24.0000143 Z","id","i",1,"fill-color-primary"],["id","Group-21","transform","translate(0.000000, 36.000000)"],["id","Oval","cx","48.644129","cy","75.1589677","rx","48.644129","ry","6.61766437",1,"fill-color-7"],["id","Oval","opacity","0.1","cx","48.644129","cy","75.1589677","rx","40.8402581","ry","5.55600756",1,"fill-color-27"],["id","Rectangle","x","25.2325161","y","6.09470968","width","54.1068387","height","62.9512258",1,"fill-color-26"],["id","Rectangle","x","20","y","1.24344979e-14","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","20","y","26","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","19.7698065","y","52.9179355","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","67.6335484","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","67.6335484","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","67.6335484","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["fxFlex","20","fxLayoutAlign","center end"],["fxFlex","40"],[1,"font-size-120"],["fxFlex","30","viewBox","0 0 205 121","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["x1","50%","y1","100%","x2","50%","y2","0%","id","linearGradient-1"],["stop-color","#808080","stop-opacity","0.25","offset","0%"],["stop-color","#808080","stop-opacity","0.12","offset","54%"],["stop-color","#808080","stop-opacity","0.1","offset","100%"],["id","LoopOut_Step02","transform","translate(-540.000000, -210.000000)","fill-rule","nonzero"],["id","Loop_Step02","transform","translate(540.000000, 210.000000)"],["id","Illustration_Step02"],["id","Group-31"],["id","Group-2"],["id","Rectangle","x","0","y","0","width","90.1490688","height","100.616012",1,"fill-color-10"],["id","Rectangle","x","1.48932403","y","67.1775068","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","74.5890324","width","51.2","height","16.0118784",1,"fill-color-primary-lighter"],["id","Oval","cx","76.317438","cy","82.4918815","r","8.15070413",1,"fill-color-primary-darker"],["id","Rectangle","x","1.48932403","y","34.712875","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","42.1244006","width","51.2","height","16.0118784",1,"fill-color-primary-lighter"],["id","Oval","cx","76.317438","cy","50.0294431","r","8.15070413",1,"fill-color-primary-darker"],["id","Rectangle","x","1.48932403","y","2.2482432","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","74.5890324","width","24","height","16.0118784",1,"fill-color-primary"],["id","Rectangle","x","8.64422093","y","42.1244006","width","36.8","height","16.0118784",1,"fill-color-primary"],["id","Rectangle","x","8.64422093","y","9.66196224","width","51.2","height","16.0118784",1,"fill-color-primary"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","50.2465905","r","8.78679245"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","82.7090289","r","8.78679245"],["id","Group","transform","translate(60.115627, 35.744427)"],["d","M133.318807,1.04548939 L82.5936439,1.04548939 L82.5936439,0 L59.5928852,0 L59.5928852,1.04548939 L8.65861943,1.04548939 C7.74861523,1.04548887 6.87588228,1.4069864 6.23241214,2.05045654 C5.58894199,2.69392669 5.22744498,3.56665964 5.22744498,4.47666384 L5.22744498,73.9350108 C5.22744498,74.8450173 5.5889387,75.7177532 6.23240879,76.3612266 C6.87587888,77.0047 7.74861298,77.3662028 8.65861943,77.3662028 L133.318807,77.3662028 C135.213795,77.3662028 136.749981,75.8300048 136.749981,73.9350167 L136.749981,4.47666384 C136.749981,3.56665964 136.388484,2.69392669 135.745014,2.05045654 C135.101544,1.4069864 134.228811,1.04548887 133.318807,1.04548939 Z","id","Path",1,"fill-color-20"],["id","Rectangle","x","9.82759671","y","7.10932665","width","122.322231","height","69.0022838",1,"fill-color-25"],["id","Path","opacity","0.257273065","points","97.1677755 76.1116475 9.82763376 76.1116475 9.82763376 7.10937149",1,"fill-color-24"],["id","Oval","cx","28.9673627","cy","59.1901502","r","11.7579927",1,"fill-color-25"],["d","M31.5848237,68.0274261 C25.669241,68.0274261 20.3361447,64.4639649 18.0723494,58.9986791 C15.808554,53.5333932 17.0598755,47.2425772 21.2428244,43.0596288 C25.4257733,38.8766804 31.7165895,37.6253598 37.1818751,39.8891559 C42.6471607,42.1529519 46.2106203,47.4860487 46.2106203,53.4016314 C46.2014756,61.4754447 39.6586369,68.0182825 31.5848237,68.0274261 L31.5848237,68.0274261 Z M31.5848237,38.967022 C23.612809,38.967022 17.1502143,45.4296168 17.1502143,53.4016314 C17.1502143,61.3736461 23.612809,67.8362409 31.5848237,67.8362409 C39.5568383,67.8362409 46.0194331,61.3736461 46.0194331,53.4016314 C46.010427,45.4333502 39.5531049,38.9760281 31.5848237,38.967022 L31.5848237,38.967022 Z","id","Shape",1,"fill-color-primary"],["id","Rectangle","x","99.4252759","y","44.3228077","width","11.4262324","height","2.38757043",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","25.733862","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","28.9741379","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","32.2144137","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","35.4546875","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","38.6949634","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","119.89017","y","8.50924347","width","4.7751428","height","4.7751428",1,"fill-color-6"],["d","M126.882344,15.5014148 L121.083948,15.5014148 L121.083948,9.70301894 L126.882344,9.70301894 L126.882344,15.5014148 Z M121.336061,15.2493191 L126.63024,15.2493191 L126.63024,9.95513218 L121.336061,9.95513218 L121.336061,15.2493191 Z","id","Shape",1,"fill-color-19"],["d","M140.184525,74.8570201 L128.246669,74.8570201 L128.246669,73.9969059 C128.246671,73.9516751 128.228704,73.9082962 128.196721,73.876313 C128.164738,73.8443298 128.12136,73.826364 128.076129,73.826364 L123.98315,73.826364 C123.937919,73.826364 123.89454,73.8443305 123.862558,73.8763135 C123.830575,73.9082966 123.812608,73.9516752 123.81261,73.9969059 L123.81261,74.8570201 L121.254497,74.8570201 L121.254497,73.9969059 C121.254499,73.9516752 121.236532,73.9082966 121.204549,73.8763135 C121.172566,73.8443305 121.129188,73.826364 121.083957,73.826364 L116.990978,73.826364 C116.945747,73.826364 116.902368,73.8443297 116.870385,73.8763129 C116.838402,73.908296 116.820435,73.9516749 116.820436,73.9969059 L116.820436,74.8570201 L114.262326,74.8570201 L114.262326,73.9969059 C114.262328,73.9516749 114.24436,73.908296 114.212377,73.8763129 C114.180394,73.8443297 114.137015,73.826364 114.091784,73.826364 L109.998805,73.826364 C109.953574,73.826364 109.910196,73.8443305 109.878213,73.8763135 C109.84623,73.9082966 109.828263,73.9516752 109.828265,73.9969059 L109.828265,74.8570201 L107.270153,74.8570201 L107.270153,73.9969059 C107.270154,73.9516752 107.252187,73.9082966 107.220204,73.8763135 C107.188222,73.8443305 107.144843,73.826364 107.099613,73.826364 L103.00663,73.826364 C102.961399,73.826364 102.91802,73.8443298 102.886037,73.876313 C102.854054,73.9082962 102.836088,73.9516751 102.83609,73.9969059 L102.83609,74.8570201 L100.277981,74.8570201 L100.277981,73.9969059 C100.277983,73.9516749 100.260016,73.908296 100.228032,73.8763129 C100.196049,73.8443297 100.15267,73.826364 100.107439,73.826364 L96.0144621,73.826364 C95.9692311,73.826364 95.9258522,73.8443297 95.8938691,73.8763129 C95.861886,73.908296 95.8439187,73.9516749 95.8439202,73.9969059 L95.8439202,74.8570201 L93.285808,74.8570201 L93.285808,73.9969059 C93.2858095,73.9516752 93.2678425,73.9082966 93.2358598,73.8763135 C93.2038771,73.8443305 93.1604987,73.826364 93.1152681,73.826364 L89.0222888,73.826364 C88.9770581,73.826364 88.9336797,73.8443305 88.901697,73.8763135 C88.8697143,73.9082966 88.8517473,73.9516752 88.8517489,73.9969059 L88.8517489,74.8570201 L86.2936405,74.8570201 L86.2936405,73.9969059 C86.293642,73.9516752 86.2756751,73.9082966 86.2436923,73.8763135 C86.2117096,73.8443305 86.1683312,73.826364 86.1231006,73.826364 L54.061428,73.826364 C54.0161974,73.826364 53.972819,73.8443305 53.9408363,73.8763135 C53.9088536,73.9082966 53.8908866,73.9516752 53.8908881,73.9969059 L53.8908881,74.8570201 L51.3327759,74.8570201 L51.3327759,73.9969059 C51.3327774,73.9516749 51.3148102,73.908296 51.282827,73.8763129 C51.2508439,73.8443297 51.207465,73.826364 51.162234,73.826364 L47.0692664,73.826364 C47.0240354,73.826364 46.9806565,73.8443297 46.9486734,73.8763129 C46.9166903,73.908296 46.898723,73.9516749 46.8987246,73.9969059 L46.8987246,74.8570201 L44.3406025,74.8570201 L44.3406025,73.9969059 C44.3406046,73.9516751 44.3226378,73.9082962 44.290655,73.876313 C44.2586721,73.8443298 44.2152934,73.826364 44.1700626,73.826364 L40.0770834,73.826364 C40.0318527,73.826364 39.9884743,73.8443305 39.9564916,73.8763135 C39.9245089,73.9082966 39.9065419,73.9516752 39.9065435,73.9969059 L39.9065435,74.8570201 L37.3484312,74.8570201 L37.3484312,73.9969059 C37.3484327,73.9516752 37.3304657,73.9082966 37.298483,73.8763135 C37.2665003,73.8443305 37.2231219,73.826364 37.1778913,73.826364 L33.084912,73.826364 C33.039681,73.826364 32.9963021,73.8443297 32.964319,73.8763129 C32.9323358,73.908296 32.9143686,73.9516749 32.9143701,73.9969059 L32.9143701,74.8570201 L30.3562598,74.8570201 L30.3562598,73.9969059 C30.3562614,73.9516749 30.3382941,73.908296 30.306311,73.8763129 C30.2743278,73.8443297 30.2309489,73.826364 30.1857179,73.826364 L26.0927387,73.826364 C26.047508,73.826364 26.0041296,73.8443305 25.9721469,73.8763135 C25.9401642,73.9082966 25.9221972,73.9516752 25.9221988,73.9969059 L25.9221988,74.8570201 L23.3640826,74.8570201 L23.3640826,73.9969059 C23.3640841,73.9516752 23.3461171,73.9082966 23.3141344,73.8763135 C23.2821517,73.8443305 23.2387733,73.826364 23.1935427,73.826364 L19.1005673,73.826364 C19.0553365,73.826364 19.0119578,73.8443298 18.979975,73.876313 C18.9479921,73.9082962 18.9300253,73.9516751 18.9300274,73.9969059 L18.9300274,74.8570201 L16.3719151,74.8570201 L16.3719151,73.9969059 C16.3719167,73.9516749 16.3539494,73.908296 16.3219663,73.8763129 C16.2899831,73.8443297 16.2466042,73.826364 16.2013733,73.826364 L12.1083959,73.826364 C12.0631649,73.826364 12.0197861,73.8443297 11.9878029,73.8763129 C11.9558198,73.908296 11.9378525,73.9516749 11.9378541,73.9969059 L11.9378541,74.8570201 L4.09297732,74.8570201 C1.83248849,74.8570223 0,76.6895106 0,78.9499994 L0,80.8007483 C0,83.061233 1.83249262,84.8937159 4.09297732,84.8937159 L140.184525,84.8937159 C142.44501,84.8937159 144.277504,83.0612333 144.277504,80.8007483 L144.277504,78.9499994 C144.277504,76.6895102 142.445014,74.8570223 140.184525,74.8570201 Z","id","Path",1,"fill-color-20"],["d","M88.0406297,103.870828 C88.3071704,103.870828 88.5610365,103.731189 88.7006752,103.490029 L94.2857286,93.8431185 C94.5808417,93.3385473 94.2159092,92.7007212 93.6288439,92.7007212 L89.9668136,92.7007212 L91.318669,88.5817505 C91.445602,88.0993988 91.0806695,87.6234 90.5824512,87.6234 L86.0128621,87.6234 C85.632063,87.6234 85.3083776,87.9058383 85.2576168,88.2834455 L84.2421525,95.8994274 C84.1818469,96.3563987 84.5372656,96.7625782 84.9973979,96.7625782 L88.7641417,96.7625782 L87.30122,102.934697 C87.1869926,103.417048 87.555086,103.870828 88.0406297,103.870828 Z","id","b","transform","translate(89.312846, 95.747114) rotate(14.000000) translate(-89.312846, -95.747114) ",1,"fill-color-21"],["id","Oval","cx","74.1507041","cy","17.5648113","r","8.15070413",1,"fill-color-primary"],["fxFlex","30","viewBox","0 0 373 121","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["x1","50%","y1","100%","x2","50%","y2","8.86848147e-15%","id","linearGradient-1"],["id","LoopOut_Step03","transform","translate(-460.000000, -210.000000)"],["id","Loop_Step03","transform","translate(460.000000, 210.000000)"],["id","Oval","fill-rule","nonzero","cx","330.487742","cy","57.4877419","r","42.4877419",1,"fill-color-2"],["d","M345.082742,43.5000036 C349.446821,43.5000036 352.999928,40.1343958 352.999928,36.0000215 C352.999928,31.8656472 349.446821,28.5000393 345.082742,28.5000393 C341.98433,28.5000393 339.560889,30.4359631 337.999964,32.1843872 C336.43904,30.4359631 334.015599,28.5000393 330.917187,28.5000393 C326.553107,28.5000393 323,31.8656472 323,36.0000215 C323,40.1343958 326.553107,43.5000036 330.917187,43.5000036 C334.015599,43.5000036 336.43904,41.5640798 337.999964,39.8156557 C339.560889,41.5640798 341.98433,43.5000036 345.082742,43.5000036 Z M330.917187,39.0000143 C329.032807,39.0000143 327.499989,37.6546959 327.499989,36.0000286 C327.499989,34.3453471 329.032807,33.0000286 330.917187,33.0000286 C332.707771,33.0000286 334.357776,34.6921938 335.323426,36.0000286 C334.36716,37.2937501 332.703102,39.0000143 330.917187,39.0000143 Z M345.082742,39.0000143 C343.292157,39.0000143 341.642152,37.3078492 340.676502,36.0000286 C341.632768,34.7062929 343.296827,33.0000286 345.082742,33.0000286 C346.967121,33.0000286 348.499939,34.3453471 348.499939,36.0000286 C348.499939,37.6546959 346.967121,39.0000143 345.082742,39.0000143 Z","id","i","fill-rule","nonzero",1,"fill-color-primary"],["id","Group-44","transform","translate(113.000000, 79.000000)","fill-rule","nonzero"],["id","Path","transform","translate(118.400000, 7.089946) scale(-1, 1) translate(-118.400000, -7.089946) ","points","234.731878 6.60770626 8.52651283e-14 6.60770626 8.52651283e-14 7.57218541 236.8 7.57218541",1,"fill-color-19"],["id","Path","transform","translate(118.400000, 8.960000) scale(-1, 1) translate(-118.400000, -8.960000) ","points","113.024 5.376 123.776 5.376 123.776 12.544 113.024 12.544",1,"fill-color-22"],["d","M120.192,8.96 L105.856,8.96 L105.856,1.86517468e-14 L120.192,1.86517468e-14 L120.192,8.96 Z M106.479304,8.57043501 L119.568696,8.57043501 L119.568696,0.389564988 L106.479304,0.389564988 L106.479304,8.57043501 Z","id","Shape","transform","translate(113.024000, 4.480000) scale(-1, 1) translate(-113.024000, -4.480000) ",1,"fill-color-19"],["id","Group-43","transform","translate(265.000000, 50.000000)"],["id","Path","fill-rule","nonzero","points","-9.84073267e-14 7.36243469 92.3919279 7.36243469 92.3919279 70.3073253 -1.13686838e-13 70.3073253",1,"fill-color-23"],["d","M97.5448374,1.70530257e-13 L6.62592538,1.70530257e-13 C6.01615907,0.000922175294 5.52114394,0.495001701 5.52114394,1.104768 L5.52114394,62.57664 C5.52114394,62.8696481 5.63752746,63.150658 5.84471672,63.3578447 C6.05190598,63.5650315 6.3329173,63.681408 6.62592538,63.681408 L97.5448374,63.681408 C97.8378436,63.681408 98.1188523,63.5650282 98.3260389,63.3578415 C98.5332256,63.1506549 98.6496054,62.8696462 98.6496054,62.57664 L98.6496054,1.104768 C98.6496054,0.495005713 98.1545997,0.000926622272 97.5448374,1.70530257e-13 L97.5448374,1.70530257e-13 Z M97.9130952,62.57664 C97.9130952,62.6744022 97.8747043,62.7682496 97.8055756,62.8373783 C97.736447,62.9065069 97.6425996,62.9448978 97.5448374,62.9448978 L6.62592538,62.9448978 C6.52816341,62.9448978 6.4343164,62.906506 6.3651879,62.8373775 C6.29605941,62.768249 6.25766754,62.674402 6.25766754,62.57664 L6.25766754,1.104768 C6.25766754,0.901512883 6.42267026,0.736512 6.62592538,0.736512 L97.5448374,0.736512 C97.7480931,0.736512 97.9130952,0.901512271 97.9130952,1.104768 L97.9130952,62.57664 Z","id","Shape","fill-rule","nonzero",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","10.3066764","y","43.4358624","width","41.5947948","height","4.78524211","rx","0.5376",1,"fill-color-19"],["d","M89.8141359,39.3872559 L76.5649839,39.3872559 C76.2719769,39.3872559 75.9909677,39.5036372 75.7837792,39.7108232 C75.5765907,39.9180091 75.4602025,40.1990169 75.4602025,40.4920239 L75.4602025,50.7978159 C75.4602025,51.090824 75.576586,51.3718339 75.7837753,51.5790207 C75.9909645,51.7862074 76.2719759,51.9025839 76.5649839,51.9025839 L89.8141359,51.9025839 C90.107143,51.9025839 90.3881533,51.7862079 90.5953406,51.5790206 C90.8025279,51.3718333 90.9189039,51.090823 90.9189039,50.7978159 L90.9189039,40.4920239 C90.9189039,40.199018 90.8025232,39.9180097 90.5953367,39.7108232 C90.3881502,39.5036367 90.1071419,39.3872559 89.8141359,39.3872559 Z M90.1823938,50.7978159 C90.182087,51.0010717 90.0173917,51.165767 89.8141359,51.1660719 L76.5649839,51.1660719 C76.3617256,51.165767 76.1970256,51.0010743 76.19671,50.7978159 L76.19671,40.4920239 C76.1964064,40.3942603 76.2351088,40.3004129 76.30424,40.2312847 C76.3733712,40.1621565 76.4672203,40.1234582 76.5649839,40.1237661 L89.8141359,40.1237661 C89.9118981,40.1234582 90.0057456,40.162157 90.0748742,40.2312857 C90.1440029,40.3004143 90.1827017,40.3942617 90.1823938,40.4920239 L90.1823938,50.7978159 Z","id","Shape","fill-rule","nonzero",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","41.7652758","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","44.7100416","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","47.6548047","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","11.4109632","y","4.41773875","width","19.1409684","height","8.09810266","rx","0.5376",1,"fill-color-19"],["id","Oval","fill-rule","nonzero","cx","47.2929593","cy","42.2294561","r","12.9683743",1,"fill-color-3"],["d","M50.1798649,51.9764517 C43.6553251,51.9764517 37.7732336,48.0461636 35.2764005,42.0182748 C32.7795674,35.990386 34.1597014,29.0519859 38.773248,24.4384399 C43.3867946,19.824894 50.3251948,18.4447609 56.3530833,20.9415948 C62.3809718,23.4384287 66.3112582,29.3205207 66.3112582,35.8450605 C66.3011721,44.7500015 59.0848059,51.9663668 50.1798649,51.9764517 L50.1798649,51.9764517 Z M50.1798649,19.9245354 C41.3872016,19.9245354 34.2593397,27.0523972 34.2593397,35.8450605 C34.2593397,44.6377237 41.3872016,51.7655856 50.1798649,51.7655856 C58.9725281,51.7655856 66.10039,44.6377237 66.10039,35.8450605 C66.0904567,27.056515 58.9684103,19.9344686 50.1798649,19.9245354 L50.1798649,19.9245354 Z","id","Shape","fill-rule","nonzero",1,"fill-color-primary"],["id","Group-23","transform","translate(5.000000, 0.001193)"],["id","Group-22"],["id","Group","transform","translate(0.378134, 0.000000)"],["id","Group-24","transform","translate(29.048000, 19.712000)"],["d","M46.60483,51.432122 C46.8713708,51.432122 47.1252368,51.2924832 47.2648756,51.0513229 L52.8499289,41.4044125 C53.145042,40.8998413 52.7801095,40.2620153 52.1930443,40.2620153 L48.5310139,40.2620153 L49.8828693,36.1430446 C50.0098023,35.6606929 49.6448699,35.184694 49.1466515,35.184694 L44.5770624,35.184694 C44.1962633,35.184694 43.8725779,35.4671324 43.8218171,35.8447396 L42.8063528,43.4607214 C42.7460473,43.9176927 43.1014659,44.3238722 43.5615982,44.3238722 L47.3283421,44.3238722 L45.8654203,50.4959909 C45.751193,50.9783426 46.1192864,51.432122 46.60483,51.432122 Z","id","b","fill-rule","nonzero","transform","translate(47.877046, 43.308408) rotate(14.000000) translate(-47.877046, -43.308408) ",1,"fill-color-12"],["id","Group-34","fill-rule","nonzero"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","17.5648113","r","8.78679245"],["id","Oval","cx","76.317438","cy","17.5648113","r","8.15070413",1,"fill-color-primary"],["id","Rectangle","x","9.82759671","y","7.10932665","width","122.322231","height","69.0022838",1,"fill-color-8"],["id","Path","opacity","0.222721354","points","97.1677755 76.1116475 9.82763376 76.1116475 9.82763376 7.10937149",1,"fill-color-18"],["id","Oval","cx","28.9673627","cy","59.1901502","r","11.7579927",1,"fill-color-8"],["id","Rectangle","x","99.4252759","y","44.3228077","width","11.4262324","height","2.38757043",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","25.733862","width","39.05384","height","1.0232453",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","28.9741379","width","39.05384","height","1.0232453",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","32.2144137","width","39.05384","height","1.0232453",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","35.4546875","width","39.05384","height","1.0232453",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","38.6949634","width","39.05384","height","1.0232453",1,"fill-color-14"],["d","M88.0406297,103.870828 C88.3071704,103.870828 88.5610365,103.731189 88.7006752,103.490029 L94.2857286,93.8431185 C94.5808417,93.3385473 94.2159092,92.7007212 93.6288439,92.7007212 L89.9668136,92.7007212 L91.318669,88.5817505 C91.445602,88.0993988 91.0806695,87.6234 90.5824512,87.6234 L86.0128621,87.6234 C85.632063,87.6234 85.3083776,87.9058383 85.2576168,88.2834455 L84.2421525,95.8994274 C84.1818469,96.3563987 84.5372656,96.7625782 84.9973979,96.7625782 L88.7641417,96.7625782 L87.30122,102.934697 C87.1869926,103.417048 87.555086,103.870828 88.0406297,103.870828 Z","id","b","transform","translate(89.312846, 95.747114) rotate(14.000000) translate(-89.312846, -95.747114) ",1,"fill-color-12"],["fxFlex","30","viewBox","0 0 278 118","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","LoopOut_Step04","transform","translate(-503.000000, -212.000000)"],["id","Loop_Step04","transform","translate(503.000000, 212.000000)"],["id","Loop","fill-rule","nonzero"],["id","Group-16","transform","translate(24.000000, 0.000000)"],["d","M55.0827415,28.5000036 C59.4468211,28.5000036 62.9999285,25.1343958 62.9999285,21.0000215 C62.9999285,16.8656472 59.4468211,13.5000393 55.0827415,13.5000393 C51.9843297,13.5000393 49.5608889,15.4359631 47.9999642,17.1843872 C46.4390396,15.4359631 44.0155987,13.5000393 40.9171869,13.5000393 C36.5531074,13.5000393 33,16.8656472 33,21.0000215 C33,25.1343958 36.5531074,28.5000036 40.9171869,28.5000036 C44.0155987,28.5000036 46.4390396,26.5640798 47.9999642,24.8156557 C49.5608889,26.5640798 51.9843297,28.5000036 55.0827415,28.5000036 Z M40.9171869,24.0000143 C39.0328073,24.0000143 37.4999893,22.6546959 37.4999893,21.0000286 C37.4999893,19.3453471 39.0328073,18.0000286 40.9171869,18.0000286 C42.707771,18.0000286 44.3577763,19.6921938 45.3234264,21.0000286 C44.3671604,22.2937501 42.7031019,24.0000143 40.9171869,24.0000143 Z M55.0827415,24.0000143 C53.2921574,24.0000143 51.6421522,22.3078492 50.676502,21.0000286 C51.6327681,19.7062929 53.2968266,18.0000286 55.0827415,18.0000286 C56.9671212,18.0000286 58.4999392,19.3453471 58.4999392,21.0000286 C58.4999392,22.6546959 56.9671212,24.0000143 55.0827415,24.0000143 Z","id","i",1,"fill-color-primary"],["id","Oval","cx","48.644129","cy","75.1589677","rx","48.644129","ry","6.61766437",1,"fill-color-2"],["id","Group-44","transform","translate(27.000000, 69.000000)","fill-rule","nonzero"],["id","Path","transform","translate(118.400000, 8.960000) scale(-1, 1) translate(-118.400000, -8.960000) ","points","113.024 5.376 123.776 5.376 123.776 12.544 113.024 12.544",1,"fill-color-23"],["id","Group-43","transform","translate(179.000000, 40.000000)"],["id","Oval","fill-rule","nonzero","cx","47.2929593","cy","42.2294561","r","12.9683743",1,"fill-color-4"],["d","M46.519593,50.6740439 L46.519593,48.5460252 C46.9395628,48.5560039 47.349554,48.5560039 47.739557,48.5560039 L47.739557,50.6740439 L49.2794877,50.6740439 L49.2794877,48.5160274 C51.8593644,48.3760168 53.5840235,47.7260428 53.8140277,45.2961554 C53.9939838,43.3462645 53.0739982,42.476265 51.6140824,42.1263004 C52.4940295,41.6763328 53.054041,40.8763386 52.92404,39.5463928 C52.7540005,37.7264719 51.2593765,37.1164744 49.2794567,36.9465279 L49.2794567,34.4266159 L47.739526,34.4266159 L47.739526,36.8765226 C47.3395134,36.8765226 46.9295222,36.8865012 46.519562,36.8965108 L46.519562,34.4266159 L44.9796003,34.4266159 L44.9796003,36.9465279 C44.413422,36.9636341 43.7539962,36.9552669 41.8897293,36.9465279 L41.8897293,38.5864308 C43.1055717,38.564924 43.7434908,38.4867995 43.8896683,39.2663716 L43.8896683,46.1661239 C43.7968547,46.7846435 43.3018283,46.6955796 42.1997174,46.6760872 L41.8897293,48.5060178 C44.6975648,48.5060178 44.9796313,48.5160274 44.9796313,48.5160274 L44.9796313,50.6740439 L46.519593,50.6740439 Z M46.5495908,41.7662953 L46.5495908,38.6964125 C47.4195593,38.6964125 50.1394466,38.4264629 50.1394466,40.2363742 C50.1394466,41.9663016 47.4195903,41.7662953 46.5495908,41.7662953 Z M46.5495908,46.6860969 L46.5495908,43.306257 C47.5895368,43.306257 50.7741427,43.0162572 50.7741427,44.9962079 C50.7741427,46.9060914 47.5895368,46.6860969 46.5495908,46.6860969 Z","id","B","fill-rule","nonzero","transform","translate(47.863077, 42.550330) rotate(14.000000) translate(-47.863077, -42.550330) ",1,"fill-color-29"],["fxFlex","30","viewBox","0 0 200 120","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","LoopOut_Step05","transform","translate(-542.000000, -210.000000)","fill-rule","nonzero"],["id","Loop_Step05","transform","translate(542.000000, 210.000000)"],["id","Rectangle","x","0","y","0","width","81.4032636","height","90.8547569",1,"fill-color-11"],["id","Rectangle","x","1.34483737","y","60.660286","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","67.352783","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Oval","cx","68.9135074","cy","74.4889377","r","7.35996418",1,"fill-color-primary-darker"],["id","Rectangle","x","1.34483737","y","31.345208","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","38.0377051","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Oval","cx","68.9135074","cy","45.1758404","r","7.35996418",1,"fill-color-primary-darker"],["id","Rectangle","x","1.34483737","y","2.03013005","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","8.72460769","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Rectangle","x","7.80560248","y","67.352783","width","23.1164179","height","14.4584872",1,"fill-color-primary"],["id","Rectangle","x","7.80560248","y","38.0377051","width","33.2298507","height","14.4584872",1,"fill-color-primary"],["id","Rectangle","x","7.80560248","y","8.72460769","width","23.1164179","height","14.4584872",1,"fill-color-primary"],["id","Oval","cx","68.9135074","cy","15.8607624","r","7.93434243",1,"fill-color-31"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","45.3719212","r","7.93434243"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","74.6850186","r","7.93434243"],["id","Group-16","transform","translate(55.804478, 34.674627)"],["id","Group-29","transform","translate(0.310627, 0.751284)"],["id","Group"],["d","M132.777455,1.04124409 L82.2582659,1.04124409 L82.2582659,0 L59.3509036,0 L59.3509036,1.04124409 L8.62346042,1.04124409 C7.71715136,1.04124358 6.84796221,1.40127322 6.20710493,2.0421305 C5.56624765,2.68298778 5.20621852,3.55217693 5.20621852,4.45848599 L5.20621852,73.6347918 C5.20621852,74.5411031 5.56624437,75.4102953 6.2071016,76.0511558 C6.84795882,76.6920163 7.71714912,77.0520512 8.62346042,77.0520512 L132.777455,77.0520512 C134.664749,77.0520512 136.194697,75.522091 136.194697,73.6347977 L136.194697,4.45848599 C136.194697,3.55217693 135.834668,2.68298778 135.193811,2.0421305 C134.552953,1.40127322 133.683764,1.04124358 132.777455,1.04124409 Z","id","Path",1,"fill-color-20"],["id","Rectangle","x","9.78769098","y","7.08045867","width","121.825532","height","68.7220946",1,"fill-color-7"],["id","Path","opacity","0.306775484","points","96.7732181 75.8025901 9.78772787 75.8025901 9.78772787 7.08050333",1,"fill-color-27"],["id","Group-24","transform","translate(16.889738, 38.617955)",1,"fill-color-primary-darker"],["d","M14.5668332,29.1332406 C8.67527117,29.1332406 3.36383033,25.5842492 1.10922733,20.1411555 C-1.14537566,14.6980619 0.100864684,8.43279022 4.26682842,4.26682704 C8.43279215,0.100863866 14.698064,-1.14537564 20.1411573,1.10922807 C25.5842507,3.36383179 29.1332406,8.67527311 29.1332406,14.5668351 C29.124133,22.607864 22.6078621,29.1241341 14.5668332,29.1332406 L14.5668332,29.1332406 Z M14.5668332,0.190838576 C6.62718953,0.190838576 0.190836635,6.62719147 0.190836635,14.5668351 C0.190836635,22.5064788 6.62718953,28.9428317 14.5668332,28.9428317 C22.5064768,28.9428317 28.9428297,22.5064788 28.9428297,14.5668351 C28.9338602,6.63090975 22.5027586,0.199808125 14.5668332,0.190838576 L14.5668332,0.190838576 Z","id","Shape"],["id","Rectangle","x","99.0215517","y","44.1428314","width","11.3798353","height","2.37787551",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","25.6293676","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","28.8564861","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","32.0836045","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","35.310721","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","38.5378394","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","119.403347","y","8.47469101","width","4.75575295","height","4.75575295",1,"fill-color-5"],["d","M126.367128,15.4384701 L120.592277,15.4384701 L120.592277,9.66361906 L126.367128,9.66361906 L126.367128,15.4384701 Z M120.843366,15.1873981 L126.116048,15.1873981 L126.116048,9.91470857 L120.843366,9.91470857 L120.843366,15.1873981 Z","id","Shape",1,"fill-color-19"],["d","M139.615294,74.5530572 L127.725913,74.5530572 L127.725913,73.6964356 C127.725915,73.6513884 127.708021,73.6081857 127.676168,73.5763323 C127.644315,73.544479 127.601113,73.5265862 127.556065,73.5265862 L123.479706,73.5265862 C123.434659,73.5265862 123.391457,73.5444797 123.359604,73.5763329 C123.327751,73.6081861 123.309857,73.6513886 123.309859,73.6964356 L123.309859,74.5530572 L120.762134,74.5530572 L120.762134,73.6964356 C120.762135,73.6513886 120.744241,73.6081861 120.712388,73.5763329 C120.680536,73.5444797 120.637333,73.5265862 120.592286,73.5265862 L116.515927,73.5265862 C116.47088,73.5265862 116.427677,73.5444789 116.395824,73.5763322 C116.36397,73.6081855 116.346076,73.6513882 116.346078,73.6964356 L116.346078,74.5530572 L113.798355,74.5530572 L113.798355,73.6964356 C113.798356,73.6513882 113.780462,73.6081855 113.748609,73.5763322 C113.716755,73.5444789 113.673553,73.5265862 113.628505,73.5265862 L109.552146,73.5265862 C109.507099,73.5265862 109.463897,73.5444797 109.432044,73.5763329 C109.400191,73.6081861 109.382297,73.6513886 109.382299,73.6964356 L109.382299,74.5530572 L106.834574,74.5530572 L106.834574,73.6964356 C106.834575,73.6513886 106.816681,73.6081861 106.784828,73.5763329 C106.752975,73.5444797 106.709773,73.5265862 106.664726,73.5265862 L102.588363,73.5265862 C102.543316,73.5265862 102.500113,73.544479 102.46826,73.5763323 C102.436407,73.6081857 102.418513,73.6513884 102.418516,73.6964356 L102.418516,74.5530572 L99.8707946,74.5530572 L99.8707946,73.6964356 C99.8707961,73.6513882 99.8529018,73.6081855 99.8210486,73.5763322 C99.7891953,73.5444789 99.7459925,73.5265862 99.7009452,73.5265862 L95.6245878,73.5265862 C95.5795404,73.5265862 95.5363377,73.5444789 95.5044844,73.5763322 C95.4726311,73.6081855 95.4547369,73.6513882 95.4547384,73.6964356 L95.4547384,74.5530572 L92.9070135,74.5530572 L92.9070135,73.6964356 C92.9070151,73.6513886 92.889121,73.6081861 92.8572682,73.5763329 C92.8254153,73.5444797 92.7822131,73.5265862 92.7371661,73.5265862 L88.6608067,73.5265862 C88.6157597,73.5265862 88.5725575,73.5444797 88.5407046,73.5763329 C88.5088518,73.6081861 88.4909577,73.6513886 88.4909593,73.6964356 L88.4909593,74.5530572 L85.9432383,74.5530572 L85.9432383,73.6964356 C85.9432399,73.6513886 85.9253458,73.6081861 85.893493,73.5763329 C85.8616401,73.5444797 85.8184379,73.5265862 85.7733909,73.5265862 L53.8419073,73.5265862 C53.7968603,73.5265862 53.7536581,73.5444797 53.7218052,73.5763329 C53.6899524,73.6081861 53.6720584,73.6513886 53.6720599,73.6964356 L53.6720599,74.5530572 L51.124335,74.5530572 L51.124335,73.6964356 C51.1243366,73.6513882 51.1064423,73.6081855 51.074589,73.5763322 C51.0427358,73.5444789 50.999533,73.5265862 50.9544857,73.5265862 L46.8781379,73.5265862 C46.8330906,73.5265862 46.7898879,73.5444789 46.7580346,73.5763322 C46.7261813,73.6081855 46.708287,73.6513882 46.7082886,73.6964356 L46.7082886,74.5530572 L44.160554,74.5530572 L44.160554,73.6964356 C44.1605561,73.6513884 44.1426622,73.6081857 44.1108092,73.5763323 C44.0789563,73.544479 44.0357537,73.5265862 43.9907066,73.5265862 L39.9143472,73.5265862 C39.8693002,73.5265862 39.8260979,73.5444797 39.7942451,73.5763329 C39.7623922,73.6081861 39.7444982,73.6513886 39.7444998,73.6964356 L39.7444998,74.5530572 L37.1967749,74.5530572 L37.1967749,73.6964356 C37.1967764,73.6513886 37.1788824,73.6081861 37.1470296,73.5763329 C37.1151767,73.5444797 37.0719745,73.5265862 37.0269275,73.5265862 L32.9505681,73.5265862 C32.9055208,73.5265862 32.862318,73.5444789 32.8304647,73.5763322 C32.7986115,73.6081855 32.7807172,73.6513882 32.7807187,73.6964356 L32.7807187,74.5530572 L30.2329958,74.5530572 L30.2329958,73.6964356 C30.2329973,73.6513882 30.215103,73.6081855 30.1832498,73.5763322 C30.1513965,73.5444789 30.1081938,73.5265862 30.0631464,73.5265862 L25.986787,73.5265862 C25.94174,73.5265862 25.8985378,73.5444797 25.866685,73.5763329 C25.8348321,73.6081861 25.8169381,73.6513886 25.8169396,73.6964356 L25.8169396,74.5530572 L23.2692109,74.5530572 L23.2692109,73.6964356 C23.2692124,73.6513886 23.2513184,73.6081861 23.2194655,73.5763329 C23.1876127,73.5444797 23.1444104,73.5265862 23.0993634,73.5265862 L19.0230079,73.5265862 C18.9779608,73.5265862 18.9347582,73.544479 18.9029053,73.5763323 C18.8710523,73.6081857 18.8531585,73.6513884 18.8531605,73.6964356 L18.8531605,74.5530572 L16.3054357,74.5530572 L16.3054357,73.6964356 C16.3054372,73.6513882 16.2875429,73.6081855 16.2556896,73.5763322 C16.2238364,73.5444789 16.1806336,73.5265862 16.1355863,73.5265862 L12.0592288,73.5265862 C12.0141815,73.5265862 11.9709788,73.5444789 11.9391255,73.5763322 C11.9072722,73.6081855 11.8893779,73.6513882 11.8893795,73.6964356 L11.8893795,74.5530572 L4.07635746,74.5530572 C1.82504753,74.5530594 0,76.3781067 0,78.6294166 L0,80.4726504 C0,82.7239563 1.82505163,84.5489982 4.07635746,84.5489982 L139.615294,84.5489982 C141.8666,84.5489982 143.691654,82.7239566 143.691654,80.4726504 L143.691654,78.6294166 C143.691654,76.3781064 141.866605,74.5530594 139.615294,74.5530572 Z","id","Path",1,"fill-color-20"],["id","Group","transform","translate(14.563343, 25.890388)"],["d","M34.1898756,18.6935074 C34.8335754,18.7760331 35.5015474,18.8284611 36.1180622,18.6284578 C36.2151512,18.5983603 36.321949,18.5313689 36.3122401,18.4342799 C36.3052976,18.3990002 36.2903506,18.3657846 36.2685501,18.337191 C36.0361522,17.9886397 35.8409087,17.6167008 35.6860164,17.2274642 C35.6798777,17.2071636 35.6672606,17.1894314 35.6500935,17.176978 C35.6300188,17.1697099 35.6080312,17.1697099 35.5879565,17.176978 C35.3034859,17.2517365 35.0578508,17.4352346 34.775322,17.5138766 C34.6312683,17.5533966 34.4809179,17.5646069 34.3325963,17.5468869 C34.2044389,17.5323235 34.0296788,17.4264966 33.9131721,17.440089 C33.9791925,17.8643678 34.1403602,18.2604907 34.1898756,18.6935074 Z","id","Path",1,"fill-color-primary-darker"],["d","M46.3638597,17.6187327 C46.7881384,17.3274658 47.2279514,17.0216356 47.4784409,16.5721138 C47.4963243,16.5452282 47.5067138,16.5140596 47.5085385,16.481821 C47.5042662,16.4500929 47.4918946,16.4199997 47.4726155,16.394441 C47.2340087,16.0151166 46.9268212,15.6835648 46.5667756,15.4167552 C46.3789189,15.549458 46.2091963,15.7061249 46.061913,15.8827822 C45.9551152,15.9954054 45.6599648,16.1740491 45.6570521,16.3458965 C45.6570521,16.4429855 45.7696753,16.5556086 45.8221033,16.6371634 C45.8929782,16.7420194 45.9599696,16.8488173 46.0240483,16.9575569 C46.0609421,17.0109558 46.3978408,17.5973731 46.3638597,17.6187327 Z","id","Path",1,"fill-color-primary-darker"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2730042,20.0320475 30.3444715,19.9740213 30.423795,19.9284789 L30.7548683,19.7148832 C30.9101158,19.6051008 31.0788103,19.515696 31.2568182,19.4488595 C31.3878883,19.4061404 31.5267255,19.3876935 31.6597374,19.3517706 C32.1247935,19.215846 32.4801391,18.846908 32.8102415,18.4925333 L33.2607343,18.011943 C33.3028503,17.9590638 33.3562578,17.9162715 33.4170475,17.8866982 C33.4795282,17.8658617 33.5459388,17.8595527 33.6112254,17.8682513 C34.0488232,17.8994947 34.4713668,18.041122 34.8394007,18.2799085 C34.9334629,18.3504651 35.0350556,18.4103788 35.1423182,18.4585522 C35.4064002,18.5614665 35.7452406,18.4837953 35.9889339,18.3536961 C36.1044698,18.2915592 36.0792267,18.2566071 36.1277711,18.1459257 C36.1763156,18.0352443 36.2947641,17.9643694 36.3976784,18.0653419 C36.4287289,18.1002598 36.4507324,18.1422664 36.4617571,18.187674 C36.5588461,18.5080675 36.5219523,18.8527333 36.5219523,19.1886611 C36.519104,19.2411857 36.5256803,19.2937961 36.5413701,19.3440034 C36.566144,19.3946232 36.5957307,19.4427421 36.629721,19.4876951 C36.6366398,19.4995928 36.642801,19.5119152 36.6481679,19.5245889 C36.7075588,19.673314 36.7298837,19.8342531 36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary-darker"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2645691,20.2100369 30.3024338,20.3556704 30.3354441,20.4080984 C30.4256618,20.5652773 30.5791886,20.6760005 30.7568101,20.7119868 C30.8882242,20.7200556 31.0199808,20.7032567 31.1451659,20.6624715 C31.9607132,20.4605264 32.8277175,20.4576138 33.6112254,20.1517835 C33.8801618,20.0459566 34.1364767,19.9051776 34.4190055,19.8410989 C34.7015344,19.7770202 35.0015392,19.7944962 35.2928061,19.770224 C35.7530078,19.7333301 36.1986461,19.5944929 36.6520515,19.5216762 C36.7105975,19.6716231 36.7315958,19.83361 36.7132175,19.9935285 L36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary-darker"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.3279723,20.332004 43.3179103,20.2563656 43.3356552,20.1847938 C43.3626747,20.1059564 43.4090817,20.0351774 43.4706088,19.9789652 C43.5770067,19.8683202 43.6912186,19.7654647 43.8123619,19.6711932 C43.9785829,19.5639234 44.1283649,19.4331094 44.2570293,19.2828374 C44.335968,19.1640934 44.3940832,19.0327597 44.4288768,18.8944816 C44.4976483,18.652227 44.5396476,18.4031617 44.5541216,18.1517511 C44.5535898,17.9846963 44.5708393,17.8180593 44.6055787,17.6546556 C44.6774245,17.3983408 44.8677189,17.1692108 44.8463593,16.904158 C44.8377185,16.866204 44.8411119,16.8265011 44.8560682,16.7905639 C44.8786704,16.7624825 44.9101823,16.7429588 44.94539,16.7352232 C45.0937604,16.6760869 45.2502282,16.6397523 45.4094752,16.6274545 C45.571226,16.6162976 45.7294484,16.6783037 45.8405502,16.7963893 C45.9065707,16.8760022 45.9502607,16.9905672 46.0473497,17.0216356 C46.0954598,17.0347655 46.1459295,17.0367577 46.1949249,17.027461 C46.4337637,17.0031887 46.686195,16.9730912 46.8745476,16.8187197 C47.0505482,16.6608586 47.152616,16.4366614 47.1561056,16.2002631 C47.1561056,16.1119121 47.1162991,16.0196776 47.2531945,16.0060852 C47.3561088,15.9924927 47.4376635,16.1031741 47.4900916,16.1711364 C47.679415,16.4245386 47.8735929,16.6895914 47.9444679,16.9983343 C47.9720312,16.9876362 48.0013112,16.9820434 48.030877,16.9818292 C48.1537854,16.9807475 48.2694521,17.0398499 48.3405908,17.1400842 C48.4179108,17.2653269 48.447872,17.4140998 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary-darker"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.4548211,20.3526902 43.5541213,20.3288581 43.6550778,20.3265437 C43.86479,20.3381943 44.0181905,20.5362558 44.2191647,20.5974219 C44.5055771,20.683831 44.7910186,20.481886 45.0813146,20.4129528 C45.270638,20.3682919 45.4696704,20.3799426 45.6570521,20.3158639 C45.8132081,20.2555144 45.9574928,20.168089 46.0832726,20.0576073 C46.2556706,19.9343474 46.4090818,19.786497 46.5386198,19.6187652 C46.646198,19.4510234 46.735696,19.2723528 46.8056144,19.0857468 C46.9589198,18.7281302 47.1393856,18.3827784 47.345429,18.0527203 C47.375905,18.0004629 47.4127576,17.9521958 47.4551395,17.9090287 C47.5007713,17.8672804 47.5522285,17.8381537 47.6036856,17.8012599 C47.7978635,17.6546556 47.8784474,17.4129041 47.9464096,17.1760071 C47.9648208,17.1040024 47.9905203,17.0340608 48.0231099,16.9672512 C48.1460183,16.9661841 48.2616849,17.0252865 48.3328237,17.1255208 C48.4163608,17.2537243 48.4492363,17.4084124 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary-darker"],["d","M54.316416,4.55250111 L54.316416,3.34665629 C54.316416,1.49819202 52.8172532,0 50.9687888,0 L3.34762718,0 C1.49916283,0 0,1.49819202 0,3.34665629 L0,5.56999336 L54.316416,4.55250111 Z","id","Path",1,"fill-color-16"],["d","M55.6018738,5.73601547 L55.6018738,39.231705 C55.6018738,39.9999836 55.2966099,40.7367813 54.7532639,41.2799452 C54.2099179,41.8231092 53.4730179,42.1278687 52.7047393,42.1278687 L2.89810531,42.1278687 C1.29897753,42.1273325 0.00291266866,40.8308329 0.00291266866,39.231705 L0.00291266866,2.35926161 C1.43012031,2.88936731 1.43012031,2.88936731 2.89810531,2.84470639 L52.7047393,2.84470639 C54.3025103,2.84470316 55.5986611,4.13824772 55.6018738,5.73601547 Z","id","Path","opacity","0.1",1,"fill-color-27"],["d","M55.6018738,6.16223599 L55.6018738,39.6579255 C55.6018738,41.2575895 54.3044034,42.5540891 52.7047393,42.5540891 L2.89810531,42.5540891 C1.29897753,42.553553 0.00291266866,41.2570534 0.00291266866,39.6579255 L0.00291266866,2.78451124 C1.43012031,3.31364604 1.43012031,3.31364604 2.89810531,3.26995601 L52.7047393,3.26995601 C54.3028886,3.26995377 55.5991959,4.56408894 55.6018738,6.16223599 Z","id","Path",1,"fill-color-19"],["d","M55.4601239,18.5459322 L55.4601239,29.2577567 L45.0716057,29.2577567 C42.141738,29.2183086 39.7873207,26.8319777 39.7873207,23.9018444 C39.7873207,20.9717112 42.141738,18.5853803 45.0716057,18.5459322 L55.4601239,18.5459322 Z","id","Path","opacity","0.1",1,"fill-color-27"],["d","M55.6018738,18.2604907 L55.6018738,28.9742569 L45.2133556,28.9742569 C42.2834879,28.9348088 39.9290706,26.5484779 39.9290706,23.6183447 C39.9290706,20.6882114 42.2834879,18.3018806 45.2133556,18.2624325 L55.6018738,18.2604907 Z","id","Path",1,"fill-color-17"],["id","Oval","opacity","0.1","cx","45.7114219","cy","23.9023299","r","2.08838343",1,"fill-color-27"],["id","Oval","cx","45.8531718","cy","23.6188301","r","2.08838343",1,"fill-color-28"],["d","M37.114137,56.485738 L37.114137,54.3663604 C37.5324015,54.3762985 37.9407279,54.3762985 38.3291472,54.3762985 L38.3291472,56.485738 L39.8628249,56.485738 L39.8628249,54.3364843 C42.4322258,54.1970423 44.1498818,53.5497076 44.378952,51.1296869 C44.5581774,49.1877136 43.6419275,48.3212469 42.1879398,47.9727034 C43.0643138,47.5245628 43.6220513,46.7278171 43.4925782,45.4032717 C43.3232292,43.5907407 41.8346742,42.9832201 39.8627941,42.8139637 L39.8627941,40.3042841 L38.3291164,40.3042841 L38.3291164,42.7442427 C37.9307281,42.7442427 37.5224017,42.7541808 37.1141061,42.7641498 L37.1141061,40.3042841 L35.5803975,40.3042841 L35.5803975,42.8139637 C35.0165182,42.8310005 34.3597701,42.8226673 32.5030732,42.8139637 L32.5030732,44.4472076 C33.7139786,44.4257882 34.3493073,44.3479809 34.4948913,45.1243875 L34.4948913,51.9961228 C34.4024546,52.6121309 33.9094382,52.5234287 32.8118025,52.5040154 L32.5030732,54.3265154 L33.46474,54.3269705 C35.3673259,54.328922 35.5804284,54.3364843 35.5804284,54.3364843 L35.5804284,56.485738 L37.114137,56.485738 Z M37.144013,47.6141601 L37.144013,44.5567428 C38.0104489,44.5567428 40.7192919,44.2878893 40.7192919,46.0904514 C40.7192919,47.8133542 38.0104798,47.6141601 37.144013,47.6141601 Z M37.144013,52.5139844 L37.144013,49.1478686 C38.1797362,49.1478686 41.3514108,48.8590464 41.3514108,50.8309574 C41.3514108,52.7330856 38.1797362,52.5139844 37.144013,52.5139844 Z","id","b","transform","translate(38.452166, 48.395011) rotate(14.000000) translate(-38.452166, -48.395011) ",1,"fill-color-30"]],template:function(t,e){if(1&t&&(h.YNc(0,j,1,0,"ng-container",0),h.YNc(1,Q,32,5,"ng-template",null,1,h.W1O),h.YNc(3,W,51,5,"ng-template",null,2,h.W1O),h.YNc(5,J,74,5,"ng-template",null,3,h.W1O),h.YNc(7,X,53,5,"ng-template",null,4,h.W1O),h.YNc(9,K,66,5,"ng-template",null,5,h.W1O)),2&t){const t=h.MAs(2),i=h.MAs(4),n=h.MAs(6),r=h.MAs(8),s=h.MAs(10);h.Q6J("ngTemplateOutlet",1===e.stepNumber?t:2===e.stepNumber?i:3===e.stepNumber?n:4===e.stepNumber?r:s)}},directives:[p.tP,y.xw,y.yH,y.Wh,p.mk,x.oO,b.n5,b.$j],styles:["svg.small-svg[_ngcontent-%COMP%]{height:50%;min-height:50%;max-width:100%}svg.large-svg[_ngcontent-%COMP%]{height:60%;min-height:60%;max-width:100%}"],data:{animation:[G.l]}}),t})();function tt(t,e){1&t&&h.GkF(0)}const et=function(t,e){return{"small-svg":t,"large-svg":e}};function it(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",7),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"g",8),h.TgZ(5,"g",9),h.TgZ(6,"g",10),h.TgZ(7,"g",11),h._UZ(8,"circle",12),h._UZ(9,"path",13),h.qZA(),h.TgZ(10,"g",14),h._UZ(11,"ellipse",15),h._UZ(12,"ellipse",16),h._UZ(13,"rect",17),h._UZ(14,"rect",18),h._UZ(15,"rect",19),h._UZ(16,"rect",20),h._UZ(17,"rect",21),h._UZ(18,"rect",22),h._UZ(19,"rect",23),h._UZ(20,"rect",24),h._UZ(21,"rect",25),h._UZ(22,"rect",26),h._UZ(23,"rect",27),h._UZ(24,"rect",28),h._UZ(25,"rect",29),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(26,"div",30),h.TgZ(27,"mat-card-title"),h._uU(28,"Loop In explained."),h.qZA(),h.qZA(),h.TgZ(29,"div",31),h.TgZ(30,"mat-card-subtitle",32),h._uU(31," Lightning Loop is a non custodial service offered by Lightning Labs to bridge on-chain and off-chain Bitcoin using Submarine swaps. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,et,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function nt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",33),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"defs"),h.TgZ(5,"linearGradient",34),h._UZ(6,"stop",35),h._UZ(7,"stop",36),h._UZ(8,"stop",37),h.qZA(),h.qZA(),h.TgZ(9,"g",8),h.TgZ(10,"g",38),h.TgZ(11,"g",39),h.TgZ(12,"g",40),h._UZ(13,"rect",41),h._UZ(14,"rect",42),h._UZ(15,"rect",43),h._UZ(16,"circle",44),h._UZ(17,"rect",45),h._UZ(18,"rect",46),h._UZ(19,"circle",47),h._UZ(20,"rect",48),h._UZ(21,"rect",49),h._UZ(22,"rect",50),h._UZ(23,"rect",51),h._UZ(24,"rect",52),h._UZ(25,"circle",53),h._UZ(26,"circle",54),h._UZ(27,"circle",55),h.qZA(),h.TgZ(28,"g",56),h.TgZ(29,"g",57),h.TgZ(30,"g",58),h._UZ(31,"path",59),h._UZ(32,"rect",60),h._UZ(33,"polygon",61),h.TgZ(34,"g",62),h._UZ(35,"path",63),h.qZA(),h._UZ(36,"rect",64),h._UZ(37,"rect",65),h._UZ(38,"rect",66),h._UZ(39,"rect",67),h._UZ(40,"rect",68),h._UZ(41,"rect",69),h._UZ(42,"rect",70),h._UZ(43,"path",71),h._UZ(44,"path",72),h.qZA(),h.TgZ(45,"g",73),h._UZ(46,"path",74),h._UZ(47,"path",75),h._UZ(48,"path",76),h._UZ(49,"path",77),h._UZ(50,"path",78),h._UZ(51,"path",79),h._UZ(52,"path",80),h._UZ(53,"path",81),h._UZ(54,"path",82),h._UZ(55,"path",83),h._UZ(56,"path",84),h._UZ(57,"circle",85),h._UZ(58,"circle",86),h.qZA(),h._UZ(59,"path",87),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(60,"div",30),h.TgZ(61,"mat-card-title"),h._uU(62,"Step 1: Deciding to Loop In"),h.qZA(),h.qZA(),h.TgZ(63,"div",31),h.TgZ(64,"mat-card-subtitle",32),h._uU(65," Your outgoing capacity is depleted and you want to regain it without opening new channels. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,et,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function rt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",88),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"defs"),h.TgZ(5,"linearGradient",89),h._UZ(6,"stop",35),h._UZ(7,"stop",36),h._UZ(8,"stop",37),h.qZA(),h.qZA(),h.TgZ(9,"g",90),h.TgZ(10,"g",91),h.TgZ(11,"g",92),h.TgZ(12,"g",93),h.TgZ(13,"g",94),h._UZ(14,"circle",95),h._UZ(15,"path",96),h.TgZ(16,"g",97),h._UZ(17,"polygon",98),h._UZ(18,"polygon",99),h._UZ(19,"path",100),h.qZA(),h.TgZ(20,"g",101),h._UZ(21,"polygon",102),h._UZ(22,"path",103),h._UZ(23,"rect",104),h._UZ(24,"path",105),h._UZ(25,"rect",106),h._UZ(26,"rect",107),h._UZ(27,"rect",108),h._UZ(28,"rect",109),h._UZ(29,"circle",110),h._UZ(30,"path",111),h.TgZ(31,"g",112),h.TgZ(32,"g",113),h._UZ(33,"g",114),h.qZA(),h._UZ(34,"g",115),h.qZA(),h.qZA(),h.qZA(),h.TgZ(35,"g",116),h.TgZ(36,"g",40),h._UZ(37,"rect",117),h._UZ(38,"rect",42),h._UZ(39,"rect",43),h._UZ(40,"circle",118),h._UZ(41,"rect",45),h._UZ(42,"rect",46),h._UZ(43,"circle",119),h._UZ(44,"rect",48),h._UZ(45,"rect",49),h._UZ(46,"rect",50),h._UZ(47,"rect",51),h._UZ(48,"rect",52),h._UZ(49,"circle",120),h._UZ(50,"circle",54),h._UZ(51,"circle",55),h._UZ(52,"circle",121),h.qZA(),h.TgZ(53,"g",56),h.TgZ(54,"g",57),h.TgZ(55,"g",58),h._UZ(56,"path",59),h._UZ(57,"rect",60),h._UZ(58,"polygon",61),h.TgZ(59,"g",122),h._UZ(60,"path",63),h.qZA(),h._UZ(61,"rect",123),h._UZ(62,"rect",124),h._UZ(63,"rect",125),h._UZ(64,"rect",126),h._UZ(65,"rect",127),h._UZ(66,"rect",128),h._UZ(67,"rect",129),h._UZ(68,"path",130),h._UZ(69,"path",72),h.qZA(),h.TgZ(70,"g",73),h._UZ(71,"path",131),h._UZ(72,"path",132),h._UZ(73,"path",133),h._UZ(74,"path",134),h._UZ(75,"path",135),h._UZ(76,"path",136),h._UZ(77,"path",80),h._UZ(78,"path",81),h._UZ(79,"path",137),h._UZ(80,"path",83),h._UZ(81,"path",138),h._UZ(82,"circle",85),h._UZ(83,"circle",86),h.qZA(),h._UZ(84,"path",139),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h._UZ(85,"path",140),h._UZ(86,"path",141),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(87,"div",30),h.TgZ(88,"mat-card-title"),h._uU(89,"Step 2: Send payment out"),h.qZA(),h.qZA(),h.TgZ(90,"div",31),h.TgZ(91,"mat-card-subtitle",32),h._uU(92," Your node sends funds on-chain to loop server to be swapped with off-chain liquidity. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,et,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function st(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",142),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"g",90),h.TgZ(5,"g",143),h.TgZ(6,"g",144),h.TgZ(7,"g"),h.TgZ(8,"g",145),h.TgZ(9,"g",146),h._UZ(10,"circle",12),h._UZ(11,"path",147),h.qZA(),h.TgZ(12,"g",14),h._UZ(13,"ellipse",148),h._UZ(14,"ellipse",16),h._UZ(15,"rect",17),h._UZ(16,"rect",18),h._UZ(17,"rect",19),h._UZ(18,"rect",20),h._UZ(19,"rect",21),h._UZ(20,"rect",22),h._UZ(21,"rect",23),h._UZ(22,"rect",24),h._UZ(23,"rect",25),h._UZ(24,"rect",26),h._UZ(25,"rect",27),h._UZ(26,"rect",28),h._UZ(27,"rect",29),h.qZA(),h.qZA(),h.TgZ(28,"g",149),h._UZ(29,"polygon",150),h._UZ(30,"polygon",99),h._UZ(31,"path",151),h.qZA(),h.TgZ(32,"g",152),h._UZ(33,"polygon",102),h._UZ(34,"path",103),h._UZ(35,"rect",104),h._UZ(36,"path",105),h._UZ(37,"rect",106),h._UZ(38,"rect",107),h._UZ(39,"rect",108),h._UZ(40,"rect",109),h._UZ(41,"circle",110),h._UZ(42,"path",111),h.TgZ(43,"g",112),h.TgZ(44,"g",113),h._UZ(45,"g",114),h.qZA(),h._UZ(46,"g",115),h.qZA(),h.qZA(),h.qZA(),h._UZ(47,"path",153),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(48,"div",30),h.TgZ(49,"mat-card-title"),h._uU(50,"Step 3: Recieve Funds Off-chain"),h.qZA(),h.qZA(),h.TgZ(51,"div",31),h.TgZ(52,"mat-card-subtitle",32),h._uU(53," Loop server sends equivalent funds off-chain to your node by making a lightning payment to you. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,et,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function ot(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",6),h.NdJ("swipe",function(e){return h.CHM(t),h.oxw().onSwipe(e)}),h.O4$(),h.TgZ(1,"svg",154),h.TgZ(2,"desc"),h._uU(3,"Created with Sketch."),h.qZA(),h.TgZ(4,"defs"),h.TgZ(5,"linearGradient",34),h._UZ(6,"stop",35),h._UZ(7,"stop",36),h._UZ(8,"stop",37),h.qZA(),h.qZA(),h.TgZ(9,"g",90),h.TgZ(10,"g",155),h.TgZ(11,"g",156),h.TgZ(12,"g",157),h.TgZ(13,"g",158),h.TgZ(14,"g",40),h._UZ(15,"rect",159),h._UZ(16,"rect",160),h._UZ(17,"rect",161),h._UZ(18,"circle",162),h._UZ(19,"rect",163),h._UZ(20,"rect",164),h._UZ(21,"circle",165),h._UZ(22,"rect",166),h._UZ(23,"rect",167),h._UZ(24,"rect",168),h._UZ(25,"rect",169),h._UZ(26,"circle",170),h._UZ(27,"circle",171),h.qZA(),h.TgZ(28,"g",172),h._UZ(29,"path",173),h._UZ(30,"rect",174),h._UZ(31,"polygon",175),h._UZ(32,"circle",176),h._UZ(33,"path",177),h._UZ(34,"rect",178),h._UZ(35,"rect",179),h._UZ(36,"rect",180),h._UZ(37,"rect",181),h._UZ(38,"rect",182),h._UZ(39,"rect",183),h._UZ(40,"rect",184),h._UZ(41,"path",185),h._UZ(42,"path",186),h.qZA(),h._UZ(43,"path",187),h.qZA(),h.qZA(),h._UZ(44,"circle",188),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.kcU(),h.TgZ(45,"div",30),h.TgZ(46,"mat-card-title"),h._uU(47,"Done!"),h.qZA(),h.qZA(),h.TgZ(48,"div",31),h.TgZ(49,"mat-card-subtitle",32),h._uU(50," You send the payment on-chain from your wallet and also move remote balance to the local side of the node, gaining outgoing capacity. "),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@sliderAnimation",t.animationDirection),h.xp6(1),h.Q6J("ngClass",h.WLB(2,et,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}let at=(()=>{class t{constructor(t){this.commonService=t,this.animationDirection="forward",this.stepNumber=1,this.stepNumberChange=new h.vpe,this.screenSize="",this.screenSizeEnum=c.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}onSwipe(t){2===t.direction&&this.stepNumber<5?(this.stepNumber++,this.animationDirection="forward",this.stepNumberChange.emit(this.stepNumber)):4===t.direction&&this.stepNumber>1&&(this.stepNumber--,this.animationDirection="backward",this.stepNumberChange.emit(this.stepNumber))}}return t.\u0275fac=function(e){return new(e||t)(h.Y36(g.v))},t.\u0275cmp=h.Xpm({type:t,selectors:[["rtl-loop-in-info-graphics"]],inputs:{animationDirection:"animationDirection",stepNumber:"stepNumber"},outputs:{stepNumberChange:"stepNumberChange"},decls:11,vars:1,consts:[[4,"ngTemplateOutlet"],["loopStepBlock1",""],["loopStepBlock2",""],["loopStepBlock3",""],["loopStepBlock4",""],["loopStepBlock5",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",3,"swipe"],["fxFlex","30","viewBox","0 0 108 118","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","Loopv0.2","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","LoopIn_Step01","transform","translate(-594.000000, -215.000000)","fill-rule","nonzero"],["id","Loop_Step01","transform","translate(594.000000, 215.000000)"],["id","Group-16","transform","translate(23.000000, 0.000000)"],["id","Oval","cx","42.4877419","cy","42.4877419","r","42.4877419",1,"fill-color-2"],["d","M56.0827415,28.5000036 C60.4468211,28.5000036 63.9999285,25.1343958 63.9999285,21.0000215 C63.9999285,16.8656472 60.4468211,13.5000393 56.0827415,13.5000393 C52.9843297,13.5000393 50.5608889,15.4359631 48.9999642,17.1843872 C47.4390396,15.4359631 45.0155987,13.5000393 41.9171869,13.5000393 C37.5531074,13.5000393 34,16.8656472 34,21.0000215 C34,25.1343958 37.5531074,28.5000036 41.9171869,28.5000036 C45.0155987,28.5000036 47.4390396,26.5640798 48.9999642,24.8156557 C50.5608889,26.5640798 52.9843297,28.5000036 56.0827415,28.5000036 Z M41.9171869,24.0000143 C40.0328073,24.0000143 38.4999893,22.6546959 38.4999893,21.0000286 C38.4999893,19.3453471 40.0328073,18.0000286 41.9171869,18.0000286 C43.707771,18.0000286 45.3577763,19.6921938 46.3234264,21.0000286 C45.3671604,22.2937501 43.7031019,24.0000143 41.9171869,24.0000143 Z M56.0827415,24.0000143 C54.2921574,24.0000143 52.6421522,22.3078492 51.676502,21.0000286 C52.6327681,19.7062929 54.2968266,18.0000286 56.0827415,18.0000286 C57.9671212,18.0000286 59.4999392,19.3453471 59.4999392,21.0000286 C59.4999392,22.6546959 57.9671212,24.0000143 56.0827415,24.0000143 Z","id","i",1,"fill-color-primary"],["id","Group-21","transform","translate(0.000000, 36.000000)"],["id","Oval","cx","48.644129","cy","75.1589677","rx","48.644129","ry","6.61766437",1,"fill-color-7"],["id","Oval","opacity","0.1","cx","48.644129","cy","75.1589677","rx","40.8402581","ry","5.55600756",1,"fill-color-27"],["id","Rectangle","x","25.2325161","y","6.09470968","width","54.1068387","height","62.9512258",1,"fill-color-26"],["id","Rectangle","x","20","y","1.24344979e-14","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","20","y","26","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","19.7698065","y","52.9179355","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","67.6335484","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","67.6335484","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","67.6335484","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["fxFlex","20","fxLayoutAlign","center end"],["fxFlex","40"],[1,"font-size-120"],["fxFlex","30","viewBox","0 0 200 120","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["x1","50%","y1","100%","x2","50%","y2","0%","id","linearGradient-1"],["stop-color","#808080","stop-opacity","0.25","offset","0%"],["stop-color","#808080","stop-opacity","0.12","offset","54%"],["stop-color","#808080","stop-opacity","0.1","offset","100%"],["id","LoopIn_Step02","transform","translate(-542.000000, -210.000000)","fill-rule","nonzero"],["id","Loop_Step02","transform","translate(542.000000, 210.000000)"],["id","Group-2"],["id","Rectangle","x","0","y","0","width","81.4032636","height","90.8547569",1,"fill-color-11"],["id","Rectangle","x","1.34483737","y","60.660286","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","67.352783","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Oval","cx","68.9135074","cy","74.4889377","r","7.35996418",1,"fill-color-primary-darker"],["id","Rectangle","x","1.34483737","y","31.345208","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","38.0377051","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Oval","cx","68.9135074","cy","45.1758404","r","7.35996418",1,"fill-color-primary-darker"],["id","Rectangle","x","1.34483737","y","2.03013005","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","8.72460769","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Rectangle","x","7.80560248","y","67.352783","width","23.1164179","height","14.4584872",1,"fill-color-primary"],["id","Rectangle","x","7.80560248","y","38.0377051","width","33.2298507","height","14.4584872",1,"fill-color-primary"],["id","Rectangle","x","7.80560248","y","8.72460769","width","23.1164179","height","14.4584872",1,"fill-color-primary"],["id","Oval","cx","68.9135074","cy","15.8607624","r","7.93434243",1,"fill-color-31"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","45.3719212","r","7.93434243"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","74.6850186","r","7.93434243"],["id","Group-16","transform","translate(55.804478, 34.674627)"],["id","Group-29","transform","translate(0.310627, 0.751284)"],["id","Group"],["d","M132.777455,1.04124409 L82.2582659,1.04124409 L82.2582659,0 L59.3509036,0 L59.3509036,1.04124409 L8.62346042,1.04124409 C7.71715136,1.04124358 6.84796221,1.40127322 6.20710493,2.0421305 C5.56624765,2.68298778 5.20621852,3.55217693 5.20621852,4.45848599 L5.20621852,73.6347918 C5.20621852,74.5411031 5.56624437,75.4102953 6.2071016,76.0511558 C6.84795882,76.6920163 7.71714912,77.0520512 8.62346042,77.0520512 L132.777455,77.0520512 C134.664749,77.0520512 136.194697,75.522091 136.194697,73.6347977 L136.194697,4.45848599 C136.194697,3.55217693 135.834668,2.68298778 135.193811,2.0421305 C134.552953,1.40127322 133.683764,1.04124358 132.777455,1.04124409 Z","id","Path",1,"fill-color-20"],["id","Rectangle","x","9.78769098","y","7.08045867","width","121.825532","height","68.7220946",1,"fill-color-7"],["id","Path","opacity","0.306775484","points","96.7732181 75.8025901 9.78772787 75.8025901 9.78772787 7.08050333",1,"fill-color-27"],["id","Group-24","transform","translate(16.889738, 38.617955)",1,"fill-color-primary-darker"],["d","M14.5668332,29.1332406 C8.67527117,29.1332406 3.36383033,25.5842492 1.10922733,20.1411555 C-1.14537566,14.6980619 0.100864684,8.43279022 4.26682842,4.26682704 C8.43279215,0.100863866 14.698064,-1.14537564 20.1411573,1.10922807 C25.5842507,3.36383179 29.1332406,8.67527311 29.1332406,14.5668351 C29.124133,22.607864 22.6078621,29.1241341 14.5668332,29.1332406 L14.5668332,29.1332406 Z M14.5668332,0.190838576 C6.62718953,0.190838576 0.190836635,6.62719147 0.190836635,14.5668351 C0.190836635,22.5064788 6.62718953,28.9428317 14.5668332,28.9428317 C22.5064768,28.9428317 28.9428297,22.5064788 28.9428297,14.5668351 C28.9338602,6.63090975 22.5027586,0.199808125 14.5668332,0.190838576 L14.5668332,0.190838576 Z","id","Shape"],["id","Rectangle","x","99.0215517","y","44.1428314","width","11.3798353","height","2.37787551",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","25.6293676","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","28.8564861","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","32.0836045","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","35.310721","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","38.5378394","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","119.403347","y","8.47469101","width","4.75575295","height","4.75575295",1,"fill-color-5"],["d","M126.367128,15.4384701 L120.592277,15.4384701 L120.592277,9.66361906 L126.367128,9.66361906 L126.367128,15.4384701 Z M120.843366,15.1873981 L126.116048,15.1873981 L126.116048,9.91470857 L120.843366,9.91470857 L120.843366,15.1873981 Z","id","Shape",1,"fill-color-19"],["d","M139.615294,74.5530572 L127.725913,74.5530572 L127.725913,73.6964356 C127.725915,73.6513884 127.708021,73.6081857 127.676168,73.5763323 C127.644315,73.544479 127.601113,73.5265862 127.556065,73.5265862 L123.479706,73.5265862 C123.434659,73.5265862 123.391457,73.5444797 123.359604,73.5763329 C123.327751,73.6081861 123.309857,73.6513886 123.309859,73.6964356 L123.309859,74.5530572 L120.762134,74.5530572 L120.762134,73.6964356 C120.762135,73.6513886 120.744241,73.6081861 120.712388,73.5763329 C120.680536,73.5444797 120.637333,73.5265862 120.592286,73.5265862 L116.515927,73.5265862 C116.47088,73.5265862 116.427677,73.5444789 116.395824,73.5763322 C116.36397,73.6081855 116.346076,73.6513882 116.346078,73.6964356 L116.346078,74.5530572 L113.798355,74.5530572 L113.798355,73.6964356 C113.798356,73.6513882 113.780462,73.6081855 113.748609,73.5763322 C113.716755,73.5444789 113.673553,73.5265862 113.628505,73.5265862 L109.552146,73.5265862 C109.507099,73.5265862 109.463897,73.5444797 109.432044,73.5763329 C109.400191,73.6081861 109.382297,73.6513886 109.382299,73.6964356 L109.382299,74.5530572 L106.834574,74.5530572 L106.834574,73.6964356 C106.834575,73.6513886 106.816681,73.6081861 106.784828,73.5763329 C106.752975,73.5444797 106.709773,73.5265862 106.664726,73.5265862 L102.588363,73.5265862 C102.543316,73.5265862 102.500113,73.544479 102.46826,73.5763323 C102.436407,73.6081857 102.418513,73.6513884 102.418516,73.6964356 L102.418516,74.5530572 L99.8707946,74.5530572 L99.8707946,73.6964356 C99.8707961,73.6513882 99.8529018,73.6081855 99.8210486,73.5763322 C99.7891953,73.5444789 99.7459925,73.5265862 99.7009452,73.5265862 L95.6245878,73.5265862 C95.5795404,73.5265862 95.5363377,73.5444789 95.5044844,73.5763322 C95.4726311,73.6081855 95.4547369,73.6513882 95.4547384,73.6964356 L95.4547384,74.5530572 L92.9070135,74.5530572 L92.9070135,73.6964356 C92.9070151,73.6513886 92.889121,73.6081861 92.8572682,73.5763329 C92.8254153,73.5444797 92.7822131,73.5265862 92.7371661,73.5265862 L88.6608067,73.5265862 C88.6157597,73.5265862 88.5725575,73.5444797 88.5407046,73.5763329 C88.5088518,73.6081861 88.4909577,73.6513886 88.4909593,73.6964356 L88.4909593,74.5530572 L85.9432383,74.5530572 L85.9432383,73.6964356 C85.9432399,73.6513886 85.9253458,73.6081861 85.893493,73.5763329 C85.8616401,73.5444797 85.8184379,73.5265862 85.7733909,73.5265862 L53.8419073,73.5265862 C53.7968603,73.5265862 53.7536581,73.5444797 53.7218052,73.5763329 C53.6899524,73.6081861 53.6720584,73.6513886 53.6720599,73.6964356 L53.6720599,74.5530572 L51.124335,74.5530572 L51.124335,73.6964356 C51.1243366,73.6513882 51.1064423,73.6081855 51.074589,73.5763322 C51.0427358,73.5444789 50.999533,73.5265862 50.9544857,73.5265862 L46.8781379,73.5265862 C46.8330906,73.5265862 46.7898879,73.5444789 46.7580346,73.5763322 C46.7261813,73.6081855 46.708287,73.6513882 46.7082886,73.6964356 L46.7082886,74.5530572 L44.160554,74.5530572 L44.160554,73.6964356 C44.1605561,73.6513884 44.1426622,73.6081857 44.1108092,73.5763323 C44.0789563,73.544479 44.0357537,73.5265862 43.9907066,73.5265862 L39.9143472,73.5265862 C39.8693002,73.5265862 39.8260979,73.5444797 39.7942451,73.5763329 C39.7623922,73.6081861 39.7444982,73.6513886 39.7444998,73.6964356 L39.7444998,74.5530572 L37.1967749,74.5530572 L37.1967749,73.6964356 C37.1967764,73.6513886 37.1788824,73.6081861 37.1470296,73.5763329 C37.1151767,73.5444797 37.0719745,73.5265862 37.0269275,73.5265862 L32.9505681,73.5265862 C32.9055208,73.5265862 32.862318,73.5444789 32.8304647,73.5763322 C32.7986115,73.6081855 32.7807172,73.6513882 32.7807187,73.6964356 L32.7807187,74.5530572 L30.2329958,74.5530572 L30.2329958,73.6964356 C30.2329973,73.6513882 30.215103,73.6081855 30.1832498,73.5763322 C30.1513965,73.5444789 30.1081938,73.5265862 30.0631464,73.5265862 L25.986787,73.5265862 C25.94174,73.5265862 25.8985378,73.5444797 25.866685,73.5763329 C25.8348321,73.6081861 25.8169381,73.6513886 25.8169396,73.6964356 L25.8169396,74.5530572 L23.2692109,74.5530572 L23.2692109,73.6964356 C23.2692124,73.6513886 23.2513184,73.6081861 23.2194655,73.5763329 C23.1876127,73.5444797 23.1444104,73.5265862 23.0993634,73.5265862 L19.0230079,73.5265862 C18.9779608,73.5265862 18.9347582,73.544479 18.9029053,73.5763323 C18.8710523,73.6081857 18.8531585,73.6513884 18.8531605,73.6964356 L18.8531605,74.5530572 L16.3054357,74.5530572 L16.3054357,73.6964356 C16.3054372,73.6513882 16.2875429,73.6081855 16.2556896,73.5763322 C16.2238364,73.5444789 16.1806336,73.5265862 16.1355863,73.5265862 L12.0592288,73.5265862 C12.0141815,73.5265862 11.9709788,73.5444789 11.9391255,73.5763322 C11.9072722,73.6081855 11.8893779,73.6513882 11.8893795,73.6964356 L11.8893795,74.5530572 L4.07635746,74.5530572 C1.82504753,74.5530594 0,76.3781067 0,78.6294166 L0,80.4726504 C0,82.7239563 1.82505163,84.5489982 4.07635746,84.5489982 L139.615294,84.5489982 C141.8666,84.5489982 143.691654,82.7239566 143.691654,80.4726504 L143.691654,78.6294166 C143.691654,76.3781064 141.866605,74.5530594 139.615294,74.5530572 Z","id","Path",1,"fill-color-20"],["id","Group","transform","translate(14.563343, 25.890388)"],["d","M34.1898756,18.6935074 C34.8335754,18.7760331 35.5015474,18.8284611 36.1180622,18.6284578 C36.2151512,18.5983603 36.321949,18.5313689 36.3122401,18.4342799 C36.3052976,18.3990002 36.2903506,18.3657846 36.2685501,18.337191 C36.0361522,17.9886397 35.8409087,17.6167008 35.6860164,17.2274642 C35.6798777,17.2071636 35.6672606,17.1894314 35.6500935,17.176978 C35.6300188,17.1697099 35.6080312,17.1697099 35.5879565,17.176978 C35.3034859,17.2517365 35.0578508,17.4352346 34.775322,17.5138766 C34.6312683,17.5533966 34.4809179,17.5646069 34.3325963,17.5468869 C34.2044389,17.5323235 34.0296788,17.4264966 33.9131721,17.440089 C33.9791925,17.8643678 34.1403602,18.2604907 34.1898756,18.6935074 Z","id","Path",1,"fill-color-primary-darker"],["d","M46.3638597,17.6187327 C46.7881384,17.3274658 47.2279514,17.0216356 47.4784409,16.5721138 C47.4963243,16.5452282 47.5067138,16.5140596 47.5085385,16.481821 C47.5042662,16.4500929 47.4918946,16.4199997 47.4726155,16.394441 C47.2340087,16.0151166 46.9268212,15.6835648 46.5667756,15.4167552 C46.3789189,15.549458 46.2091963,15.7061249 46.061913,15.8827822 C45.9551152,15.9954054 45.6599648,16.1740491 45.6570521,16.3458965 C45.6570521,16.4429855 45.7696753,16.5556086 45.8221033,16.6371634 C45.8929782,16.7420194 45.9599696,16.8488173 46.0240483,16.9575569 C46.0609421,17.0109558 46.3978408,17.5973731 46.3638597,17.6187327 Z","id","Path",1,"fill-color-primary-darker"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2730042,20.0320475 30.3444715,19.9740213 30.423795,19.9284789 L30.7548683,19.7148832 C30.9101158,19.6051008 31.0788103,19.515696 31.2568182,19.4488595 C31.3878883,19.4061404 31.5267255,19.3876935 31.6597374,19.3517706 C32.1247935,19.215846 32.4801391,18.846908 32.8102415,18.4925333 L33.2607343,18.011943 C33.3028503,17.9590638 33.3562578,17.9162715 33.4170475,17.8866982 C33.4795282,17.8658617 33.5459388,17.8595527 33.6112254,17.8682513 C34.0488232,17.8994947 34.4713668,18.041122 34.8394007,18.2799085 C34.9334629,18.3504651 35.0350556,18.4103788 35.1423182,18.4585522 C35.4064002,18.5614665 35.7452406,18.4837953 35.9889339,18.3536961 C36.1044698,18.2915592 36.0792267,18.2566071 36.1277711,18.1459257 C36.1763156,18.0352443 36.2947641,17.9643694 36.3976784,18.0653419 C36.4287289,18.1002598 36.4507324,18.1422664 36.4617571,18.187674 C36.5588461,18.5080675 36.5219523,18.8527333 36.5219523,19.1886611 C36.519104,19.2411857 36.5256803,19.2937961 36.5413701,19.3440034 C36.566144,19.3946232 36.5957307,19.4427421 36.629721,19.4876951 C36.6366398,19.4995928 36.642801,19.5119152 36.6481679,19.5245889 C36.7075588,19.673314 36.7298837,19.8342531 36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary-darker"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2645691,20.2100369 30.3024338,20.3556704 30.3354441,20.4080984 C30.4256618,20.5652773 30.5791886,20.6760005 30.7568101,20.7119868 C30.8882242,20.7200556 31.0199808,20.7032567 31.1451659,20.6624715 C31.9607132,20.4605264 32.8277175,20.4576138 33.6112254,20.1517835 C33.8801618,20.0459566 34.1364767,19.9051776 34.4190055,19.8410989 C34.7015344,19.7770202 35.0015392,19.7944962 35.2928061,19.770224 C35.7530078,19.7333301 36.1986461,19.5944929 36.6520515,19.5216762 C36.7105975,19.6716231 36.7315958,19.83361 36.7132175,19.9935285 L36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary-darker"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.3279723,20.332004 43.3179103,20.2563656 43.3356552,20.1847938 C43.3626747,20.1059564 43.4090817,20.0351774 43.4706088,19.9789652 C43.5770067,19.8683202 43.6912186,19.7654647 43.8123619,19.6711932 C43.9785829,19.5639234 44.1283649,19.4331094 44.2570293,19.2828374 C44.335968,19.1640934 44.3940832,19.0327597 44.4288768,18.8944816 C44.4976483,18.652227 44.5396476,18.4031617 44.5541216,18.1517511 C44.5535898,17.9846963 44.5708393,17.8180593 44.6055787,17.6546556 C44.6774245,17.3983408 44.8677189,17.1692108 44.8463593,16.904158 C44.8377185,16.866204 44.8411119,16.8265011 44.8560682,16.7905639 C44.8786704,16.7624825 44.9101823,16.7429588 44.94539,16.7352232 C45.0937604,16.6760869 45.2502282,16.6397523 45.4094752,16.6274545 C45.571226,16.6162976 45.7294484,16.6783037 45.8405502,16.7963893 C45.9065707,16.8760022 45.9502607,16.9905672 46.0473497,17.0216356 C46.0954598,17.0347655 46.1459295,17.0367577 46.1949249,17.027461 C46.4337637,17.0031887 46.686195,16.9730912 46.8745476,16.8187197 C47.0505482,16.6608586 47.152616,16.4366614 47.1561056,16.2002631 C47.1561056,16.1119121 47.1162991,16.0196776 47.2531945,16.0060852 C47.3561088,15.9924927 47.4376635,16.1031741 47.4900916,16.1711364 C47.679415,16.4245386 47.8735929,16.6895914 47.9444679,16.9983343 C47.9720312,16.9876362 48.0013112,16.9820434 48.030877,16.9818292 C48.1537854,16.9807475 48.2694521,17.0398499 48.3405908,17.1400842 C48.4179108,17.2653269 48.447872,17.4140998 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary-darker"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.4548211,20.3526902 43.5541213,20.3288581 43.6550778,20.3265437 C43.86479,20.3381943 44.0181905,20.5362558 44.2191647,20.5974219 C44.5055771,20.683831 44.7910186,20.481886 45.0813146,20.4129528 C45.270638,20.3682919 45.4696704,20.3799426 45.6570521,20.3158639 C45.8132081,20.2555144 45.9574928,20.168089 46.0832726,20.0576073 C46.2556706,19.9343474 46.4090818,19.786497 46.5386198,19.6187652 C46.646198,19.4510234 46.735696,19.2723528 46.8056144,19.0857468 C46.9589198,18.7281302 47.1393856,18.3827784 47.345429,18.0527203 C47.375905,18.0004629 47.4127576,17.9521958 47.4551395,17.9090287 C47.5007713,17.8672804 47.5522285,17.8381537 47.6036856,17.8012599 C47.7978635,17.6546556 47.8784474,17.4129041 47.9464096,17.1760071 C47.9648208,17.1040024 47.9905203,17.0340608 48.0231099,16.9672512 C48.1460183,16.9661841 48.2616849,17.0252865 48.3328237,17.1255208 C48.4163608,17.2537243 48.4492363,17.4084124 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary-darker"],["d","M54.316416,4.55250111 L54.316416,3.34665629 C54.316416,1.49819202 52.8172532,0 50.9687888,0 L3.34762718,0 C1.49916283,0 0,1.49819202 0,3.34665629 L0,5.56999336 L54.316416,4.55250111 Z","id","Path",1,"fill-color-16"],["d","M55.6018738,5.73601547 L55.6018738,39.231705 C55.6018738,39.9999836 55.2966099,40.7367813 54.7532639,41.2799452 C54.2099179,41.8231092 53.4730179,42.1278687 52.7047393,42.1278687 L2.89810531,42.1278687 C1.29897753,42.1273325 0.00291266866,40.8308329 0.00291266866,39.231705 L0.00291266866,2.35926161 C1.43012031,2.88936731 1.43012031,2.88936731 2.89810531,2.84470639 L52.7047393,2.84470639 C54.3025103,2.84470316 55.5986611,4.13824772 55.6018738,5.73601547 Z","id","Path","opacity","0.1",1,"fill-color-27"],["d","M55.6018738,6.16223599 L55.6018738,39.6579255 C55.6018738,41.2575895 54.3044034,42.5540891 52.7047393,42.5540891 L2.89810531,42.5540891 C1.29897753,42.553553 0.00291266866,41.2570534 0.00291266866,39.6579255 L0.00291266866,2.78451124 C1.43012031,3.31364604 1.43012031,3.31364604 2.89810531,3.26995601 L52.7047393,3.26995601 C54.3028886,3.26995377 55.5991959,4.56408894 55.6018738,6.16223599 Z","id","Path",1,"fill-color-19"],["d","M55.4601239,18.5459322 L55.4601239,29.2577567 L45.0716057,29.2577567 C42.141738,29.2183086 39.7873207,26.8319777 39.7873207,23.9018444 C39.7873207,20.9717112 42.141738,18.5853803 45.0716057,18.5459322 L55.4601239,18.5459322 Z","id","Path","opacity","0.1",1,"fill-color-27"],["d","M55.6018738,18.2604907 L55.6018738,28.9742569 L45.2133556,28.9742569 C42.2834879,28.9348088 39.9290706,26.5484779 39.9290706,23.6183447 C39.9290706,20.6882114 42.2834879,18.3018806 45.2133556,18.2624325 L55.6018738,18.2604907 Z","id","Path",1,"fill-color-17"],["id","Oval","opacity","0.1","cx","45.7114219","cy","23.9023299","r","2.08838343",1,"fill-color-27"],["id","Oval","cx","45.8531718","cy","23.6188301","r","2.08838343",1,"fill-color-28"],["d","M37.114137,56.485738 L37.114137,54.3663604 C37.5324015,54.3762985 37.9407279,54.3762985 38.3291472,54.3762985 L38.3291472,56.485738 L39.8628249,56.485738 L39.8628249,54.3364843 C42.4322258,54.1970423 44.1498818,53.5497076 44.378952,51.1296869 C44.5581774,49.1877136 43.6419275,48.3212469 42.1879398,47.9727034 C43.0643138,47.5245628 43.6220513,46.7278171 43.4925782,45.4032717 C43.3232292,43.5907407 41.8346742,42.9832201 39.8627941,42.8139637 L39.8627941,40.3042841 L38.3291164,40.3042841 L38.3291164,42.7442427 C37.9307281,42.7442427 37.5224017,42.7541808 37.1141061,42.7641498 L37.1141061,40.3042841 L35.5803975,40.3042841 L35.5803975,42.8139637 C35.0165182,42.8310005 34.3597701,42.8226673 32.5030732,42.8139637 L32.5030732,44.4472076 C33.7139786,44.4257882 34.3493073,44.3479809 34.4948913,45.1243875 L34.4948913,51.9961228 C34.4024546,52.6121309 33.9094382,52.5234287 32.8118025,52.5040154 L32.5030732,54.3265154 L33.46474,54.3269705 C35.3673259,54.328922 35.5804284,54.3364843 35.5804284,54.3364843 L35.5804284,56.485738 L37.114137,56.485738 Z M37.144013,47.6141601 L37.144013,44.5567428 C38.0104489,44.5567428 40.7192919,44.2878893 40.7192919,46.0904514 C40.7192919,47.8133542 38.0104798,47.6141601 37.144013,47.6141601 Z M37.144013,52.5139844 L37.144013,49.1478686 C38.1797362,49.1478686 41.3514108,48.8590464 41.3514108,50.8309574 C41.3514108,52.7330856 38.1797362,52.5139844 37.144013,52.5139844 Z","id","b","transform","translate(38.452166, 48.395011) rotate(14.000000) translate(-38.452166, -48.395011) ",1,"fill-color-30"],["fxFlex","30","viewBox","0 0 364 120","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["x1","50%","y1","100%","x2","50%","y2","8.86848147e-15%","id","linearGradient-1"],["id","Loopv0.3","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","LoopIn_Step03","transform","translate(-1127.000000, -164.000000)"],["id","LoopIn_Step03","transform","translate(1127.000000, 164.000000)"],["id","Group-21"],["id","Group-35","transform","translate(107.000000, 10.000000)"],["id","Oval","fill-rule","nonzero","cx","214.487742","cy","42.4877419","r","42.4877419",1,"fill-color-2"],["d","M232.082742,28.5000036 C236.446821,28.5000036 239.999928,25.1343958 239.999928,21.0000215 C239.999928,16.8656472 236.446821,13.5000393 232.082742,13.5000393 C228.98433,13.5000393 226.560889,15.4359631 224.999964,17.1843872 C223.43904,15.4359631 221.015599,13.5000393 217.917187,13.5000393 C213.553107,13.5000393 210,16.8656472 210,21.0000215 C210,25.1343958 213.553107,28.5000036 217.917187,28.5000036 C221.015599,28.5000036 223.43904,26.5640798 224.999964,24.8156557 C226.560889,26.5640798 228.98433,28.5000036 232.082742,28.5000036 Z M217.917187,24.0000143 C216.032807,24.0000143 214.499989,22.6546959 214.499989,21.0000286 C214.499989,19.3453471 216.032807,18.0000286 217.917187,18.0000286 C219.707771,18.0000286 221.357776,19.6921938 222.323426,21.0000286 C221.36716,22.2937501 219.703102,24.0000143 217.917187,24.0000143 Z M232.082742,24.0000143 C230.292157,24.0000143 228.642152,22.3078492 227.676502,21.0000286 C228.632768,19.7062929 230.296827,18.0000286 232.082742,18.0000286 C233.967121,18.0000286 235.499939,19.3453471 235.499939,21.0000286 C235.499939,22.6546959 233.967121,24.0000143 232.082742,24.0000143 Z","id","i","fill-rule","nonzero",1,"fill-color-primary"],["id","Group-44","transform","translate(0.000000, 64.000000)","fill-rule","nonzero"],["id","Path","transform","translate(118.400000, 7.089946) scale(-1, 1) translate(-118.400000, -7.089946) ","points","234.731878 6.60770626 8.52651283e-14 6.60770626 8.52651283e-14 7.57218541 236.8 7.57218541",1,"fill-color-20"],["id","Path","transform","translate(118.400000, 8.960000) scale(-1, 1) translate(-118.400000, -8.960000) ","points","113.024 5.376 123.776 5.376 123.776 12.544 113.024 12.544",1,"fill-color-23"],["d","M120.192,8.96 L105.856,8.96 L105.856,1.86517468e-14 L120.192,1.86517468e-14 L120.192,8.96 Z M106.479304,8.57043501 L119.568696,8.57043501 L119.568696,0.389564988 L106.479304,0.389564988 L106.479304,8.57043501 Z","id","Shape","transform","translate(113.024000, 4.480000) scale(-1, 1) translate(-113.024000, -4.480000) ",1,"fill-color-20"],["id","Group-43","transform","translate(152.000000, 35.000000)"],["id","Path","fill-rule","nonzero","points","-9.84073267e-14 7.36243469 92.3919279 7.36243469 92.3919279 70.3073253 -1.13686838e-13 70.3073253",1,"fill-color-23"],["d","M97.5448374,1.70530257e-13 L6.62592538,1.70530257e-13 C6.01615907,0.000922175294 5.52114394,0.495001701 5.52114394,1.104768 L5.52114394,62.57664 C5.52114394,62.8696481 5.63752746,63.150658 5.84471672,63.3578447 C6.05190598,63.5650315 6.3329173,63.681408 6.62592538,63.681408 L97.5448374,63.681408 C97.8378436,63.681408 98.1188523,63.5650282 98.3260389,63.3578415 C98.5332256,63.1506549 98.6496054,62.8696462 98.6496054,62.57664 L98.6496054,1.104768 C98.6496054,0.495005713 98.1545997,0.000926622272 97.5448374,1.70530257e-13 L97.5448374,1.70530257e-13 Z M97.9130952,62.57664 C97.9130952,62.6744022 97.8747043,62.7682496 97.8055756,62.8373783 C97.736447,62.9065069 97.6425996,62.9448978 97.5448374,62.9448978 L6.62592538,62.9448978 C6.52816341,62.9448978 6.4343164,62.906506 6.3651879,62.8373775 C6.29605941,62.768249 6.25766754,62.674402 6.25766754,62.57664 L6.25766754,1.104768 C6.25766754,0.901512883 6.42267026,0.736512 6.62592538,0.736512 L97.5448374,0.736512 C97.7480931,0.736512 97.9130952,0.901512271 97.9130952,1.104768 L97.9130952,62.57664 Z","id","Shape","fill-rule","nonzero",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","10.3066764","y","43.4358624","width","41.5947948","height","4.78524211","rx","0.5376",1,"fill-color-19"],["d","M89.8141359,39.3872559 L76.5649839,39.3872559 C76.2719769,39.3872559 75.9909677,39.5036372 75.7837792,39.7108232 C75.5765907,39.9180091 75.4602025,40.1990169 75.4602025,40.4920239 L75.4602025,50.7978159 C75.4602025,51.090824 75.576586,51.3718339 75.7837753,51.5790207 C75.9909645,51.7862074 76.2719759,51.9025839 76.5649839,51.9025839 L89.8141359,51.9025839 C90.107143,51.9025839 90.3881533,51.7862079 90.5953406,51.5790206 C90.8025279,51.3718333 90.9189039,51.090823 90.9189039,50.7978159 L90.9189039,40.4920239 C90.9189039,40.199018 90.8025232,39.9180097 90.5953367,39.7108232 C90.3881502,39.5036367 90.1071419,39.3872559 89.8141359,39.3872559 Z M90.1823938,50.7978159 C90.182087,51.0010717 90.0173917,51.165767 89.8141359,51.1660719 L76.5649839,51.1660719 C76.3617256,51.165767 76.1970256,51.0010743 76.19671,50.7978159 L76.19671,40.4920239 C76.1964064,40.3942603 76.2351088,40.3004129 76.30424,40.2312847 C76.3733712,40.1621565 76.4672203,40.1234582 76.5649839,40.1237661 L89.8141359,40.1237661 C89.9118981,40.1234582 90.0057456,40.162157 90.0748742,40.2312857 C90.1440029,40.3004143 90.1827017,40.3942617 90.1823938,40.4920239 L90.1823938,50.7978159 Z","id","Shape","fill-rule","nonzero",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","41.7652758","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","44.7100416","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","47.6548047","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","11.4109632","y","4.41773875","width","19.1409684","height","8.09810266","rx","0.5376",1,"fill-color-19"],["id","Oval","fill-rule","nonzero","cx","47.2929593","cy","42.2294561","r","12.9683743",1,"fill-color-4"],["d","M50.1798649,51.9764517 C43.6553251,51.9764517 37.7732336,48.0461636 35.2764005,42.0182748 C32.7795674,35.990386 34.1597014,29.0519859 38.773248,24.4384399 C43.3867946,19.824894 50.3251948,18.4447609 56.3530833,20.9415948 C62.3809718,23.4384287 66.3112582,29.3205207 66.3112582,35.8450605 C66.3011721,44.7500015 59.0848059,51.9663668 50.1798649,51.9764517 L50.1798649,51.9764517 Z M50.1798649,19.9245354 C41.3872016,19.9245354 34.2593397,27.0523972 34.2593397,35.8450605 C34.2593397,44.6377237 41.3872016,51.7655856 50.1798649,51.7655856 C58.9725281,51.7655856 66.10039,44.6377237 66.10039,35.8450605 C66.0904567,27.056515 58.9684103,19.9344686 50.1798649,19.9245354 L50.1798649,19.9245354 Z","id","Shape","fill-rule","nonzero",1,"fill-color-primary"],["id","Group-23","transform","translate(5.000000, 0.001193)"],["id","Group-22"],["id","Group","transform","translate(0.378134, 0.000000)"],["id","Group-24","transform","translate(29.048000, 19.712000)"],["id","LoopIn_Step03","fill-rule","nonzero"],["id","Rectangle","x","0","y","0","width","81.4032636","height","90.8547569",1,"fill-color-10"],["id","Oval","cx","68.9135074","cy","74.4889377","r","7.35996418",1,"fill-color-primary"],["id","Oval","cx","68.9135074","cy","45.1758404","r","7.35996418",1,"fill-color-primary"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","15.8607624","r","7.93434243"],["id","Oval","cx","68.9135074","cy","15.8607624","r","7.35996418",1,"fill-color-31"],["id","Group-24","transform","translate(16.889738, 38.617955)",1,"fill-color-primary"],["id","Rectangle","x","99.0215517","y","44.1428314","width","11.3798353","height","2.37787551",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","25.6293676","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","28.8564861","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","32.0836045","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","35.310721","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","38.5378394","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","119.403347","y","8.47469101","width","4.75575295","height","4.75575295",1,"fill-color-4"],["d","M126.367128,15.4384701 L120.592277,15.4384701 L120.592277,9.66361906 L126.367128,9.66361906 L126.367128,15.4384701 Z M120.843366,15.1873981 L126.116048,15.1873981 L126.116048,9.91470857 L120.843366,9.91470857 L120.843366,15.1873981 Z","id","Shape",1,"fill-color-20"],["d","M34.1898756,18.6935074 C34.8335754,18.7760331 35.5015474,18.8284611 36.1180622,18.6284578 C36.2151512,18.5983603 36.321949,18.5313689 36.3122401,18.4342799 C36.3052976,18.3990002 36.2903506,18.3657846 36.2685501,18.337191 C36.0361522,17.9886397 35.8409087,17.6167008 35.6860164,17.2274642 C35.6798777,17.2071636 35.6672606,17.1894314 35.6500935,17.176978 C35.6300188,17.1697099 35.6080312,17.1697099 35.5879565,17.176978 C35.3034859,17.2517365 35.0578508,17.4352346 34.775322,17.5138766 C34.6312683,17.5533966 34.4809179,17.5646069 34.3325963,17.5468869 C34.2044389,17.5323235 34.0296788,17.4264966 33.9131721,17.440089 C33.9791925,17.8643678 34.1403602,18.2604907 34.1898756,18.6935074 Z","id","Path",1,"fill-color-primary"],["d","M46.3638597,17.6187327 C46.7881384,17.3274658 47.2279514,17.0216356 47.4784409,16.5721138 C47.4963243,16.5452282 47.5067138,16.5140596 47.5085385,16.481821 C47.5042662,16.4500929 47.4918946,16.4199997 47.4726155,16.394441 C47.2340087,16.0151166 46.9268212,15.6835648 46.5667756,15.4167552 C46.3789189,15.549458 46.2091963,15.7061249 46.061913,15.8827822 C45.9551152,15.9954054 45.6599648,16.1740491 45.6570521,16.3458965 C45.6570521,16.4429855 45.7696753,16.5556086 45.8221033,16.6371634 C45.8929782,16.7420194 45.9599696,16.8488173 46.0240483,16.9575569 C46.0609421,17.0109558 46.3978408,17.5973731 46.3638597,17.6187327 Z","id","Path",1,"fill-color-primary"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2730042,20.0320475 30.3444715,19.9740213 30.423795,19.9284789 L30.7548683,19.7148832 C30.9101158,19.6051008 31.0788103,19.515696 31.2568182,19.4488595 C31.3878883,19.4061404 31.5267255,19.3876935 31.6597374,19.3517706 C32.1247935,19.215846 32.4801391,18.846908 32.8102415,18.4925333 L33.2607343,18.011943 C33.3028503,17.9590638 33.3562578,17.9162715 33.4170475,17.8866982 C33.4795282,17.8658617 33.5459388,17.8595527 33.6112254,17.8682513 C34.0488232,17.8994947 34.4713668,18.041122 34.8394007,18.2799085 C34.9334629,18.3504651 35.0350556,18.4103788 35.1423182,18.4585522 C35.4064002,18.5614665 35.7452406,18.4837953 35.9889339,18.3536961 C36.1044698,18.2915592 36.0792267,18.2566071 36.1277711,18.1459257 C36.1763156,18.0352443 36.2947641,17.9643694 36.3976784,18.0653419 C36.4287289,18.1002598 36.4507324,18.1422664 36.4617571,18.187674 C36.5588461,18.5080675 36.5219523,18.8527333 36.5219523,19.1886611 C36.519104,19.2411857 36.5256803,19.2937961 36.5413701,19.3440034 C36.566144,19.3946232 36.5957307,19.4427421 36.629721,19.4876951 C36.6366398,19.4995928 36.642801,19.5119152 36.6481679,19.5245889 C36.7075588,19.673314 36.7298837,19.8342531 36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2645691,20.2100369 30.3024338,20.3556704 30.3354441,20.4080984 C30.4256618,20.5652773 30.5791886,20.6760005 30.7568101,20.7119868 C30.8882242,20.7200556 31.0199808,20.7032567 31.1451659,20.6624715 C31.9607132,20.4605264 32.8277175,20.4576138 33.6112254,20.1517835 C33.8801618,20.0459566 34.1364767,19.9051776 34.4190055,19.8410989 C34.7015344,19.7770202 35.0015392,19.7944962 35.2928061,19.770224 C35.7530078,19.7333301 36.1986461,19.5944929 36.6520515,19.5216762 C36.7105975,19.6716231 36.7315958,19.83361 36.7132175,19.9935285 L36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.3279723,20.332004 43.3179103,20.2563656 43.3356552,20.1847938 C43.3626747,20.1059564 43.4090817,20.0351774 43.4706088,19.9789652 C43.5770067,19.8683202 43.6912186,19.7654647 43.8123619,19.6711932 C43.9785829,19.5639234 44.1283649,19.4331094 44.2570293,19.2828374 C44.335968,19.1640934 44.3940832,19.0327597 44.4288768,18.8944816 C44.4976483,18.652227 44.5396476,18.4031617 44.5541216,18.1517511 C44.5535898,17.9846963 44.5708393,17.8180593 44.6055787,17.6546556 C44.6774245,17.3983408 44.8677189,17.1692108 44.8463593,16.904158 C44.8377185,16.866204 44.8411119,16.8265011 44.8560682,16.7905639 C44.8786704,16.7624825 44.9101823,16.7429588 44.94539,16.7352232 C45.0937604,16.6760869 45.2502282,16.6397523 45.4094752,16.6274545 C45.571226,16.6162976 45.7294484,16.6783037 45.8405502,16.7963893 C45.9065707,16.8760022 45.9502607,16.9905672 46.0473497,17.0216356 C46.0954598,17.0347655 46.1459295,17.0367577 46.1949249,17.027461 C46.4337637,17.0031887 46.686195,16.9730912 46.8745476,16.8187197 C47.0505482,16.6608586 47.152616,16.4366614 47.1561056,16.2002631 C47.1561056,16.1119121 47.1162991,16.0196776 47.2531945,16.0060852 C47.3561088,15.9924927 47.4376635,16.1031741 47.4900916,16.1711364 C47.679415,16.4245386 47.8735929,16.6895914 47.9444679,16.9983343 C47.9720312,16.9876362 48.0013112,16.9820434 48.030877,16.9818292 C48.1537854,16.9807475 48.2694521,17.0398499 48.3405908,17.1400842 C48.4179108,17.2653269 48.447872,17.4140998 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.4548211,20.3526902 43.5541213,20.3288581 43.6550778,20.3265437 C43.86479,20.3381943 44.0181905,20.5362558 44.2191647,20.5974219 C44.5055771,20.683831 44.7910186,20.481886 45.0813146,20.4129528 C45.270638,20.3682919 45.4696704,20.3799426 45.6570521,20.3158639 C45.8132081,20.2555144 45.9574928,20.168089 46.0832726,20.0576073 C46.2556706,19.9343474 46.4090818,19.786497 46.5386198,19.6187652 C46.646198,19.4510234 46.735696,19.2723528 46.8056144,19.0857468 C46.9589198,18.7281302 47.1393856,18.3827784 47.345429,18.0527203 C47.375905,18.0004629 47.4127576,17.9521958 47.4551395,17.9090287 C47.5007713,17.8672804 47.5522285,17.8381537 47.6036856,17.8012599 C47.7978635,17.6546556 47.8784474,17.4129041 47.9464096,17.1760071 C47.9648208,17.1040024 47.9905203,17.0340608 48.0231099,16.9672512 C48.1460183,16.9661841 48.2616849,17.0252865 48.3328237,17.1255208 C48.4163608,17.2537243 48.4492363,17.4084124 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary"],["d","M55.6018738,6.16223599 L55.6018738,39.6579255 C55.6018738,41.2575895 54.3044034,42.5540891 52.7047393,42.5540891 L2.89810531,42.5540891 C1.29897753,42.553553 0.00291266866,41.2570534 0.00291266866,39.6579255 L0.00291266866,2.78451124 C1.43012031,3.31364604 1.43012031,3.31364604 2.89810531,3.26995601 L52.7047393,3.26995601 C54.3028886,3.26995377 55.5991959,4.56408894 55.6018738,6.16223599 Z","id","Path",1,"fill-color-20"],["d","M55.6018738,18.2604907 L55.6018738,28.9742569 L45.2133556,28.9742569 C42.2834879,28.9348088 39.9290706,26.5484779 39.9290706,23.6183447 C39.9290706,20.6882114 42.2834879,18.3018806 45.2133556,18.2624325 L55.6018738,18.2604907 Z","id","Path",1,"fill-color-16"],["d","M37.114137,56.485738 L37.114137,54.3663604 C37.5324015,54.3762985 37.9407279,54.3762985 38.3291472,54.3762985 L38.3291472,56.485738 L39.8628249,56.485738 L39.8628249,54.3364843 C42.4322258,54.1970423 44.1498818,53.5497076 44.378952,51.1296869 C44.5581774,49.1877136 43.6419275,48.3212469 42.1879398,47.9727034 C43.0643138,47.5245628 43.6220513,46.7278171 43.4925782,45.4032717 C43.3232292,43.5907407 41.8346742,42.9832201 39.8627941,42.8139637 L39.8627941,40.3042841 L38.3291164,40.3042841 L38.3291164,42.7442427 C37.9307281,42.7442427 37.5224017,42.7541808 37.1141061,42.7641498 L37.1141061,40.3042841 L35.5803975,40.3042841 L35.5803975,42.8139637 C35.0165182,42.8310005 34.3597701,42.8226673 32.5030732,42.8139637 L32.5030732,44.4472076 C33.7139786,44.4257882 34.3493073,44.3479809 34.4948913,45.1243875 L34.4948913,51.9961228 C34.4024546,52.6121309 33.9094382,52.5234287 32.8118025,52.5040154 L32.5030732,54.3265154 L33.46474,54.3269705 C35.3673259,54.328922 35.5804284,54.3364843 35.5804284,54.3364843 L35.5804284,56.485738 L37.114137,56.485738 Z M37.144013,47.6141601 L37.144013,44.5567428 C38.0104489,44.5567428 40.7192919,44.2878893 40.7192919,46.0904514 C40.7192919,47.8133542 38.0104798,47.6141601 37.144013,47.6141601 Z M37.144013,52.5139844 L37.144013,49.1478686 C38.1797362,49.1478686 41.3514108,48.8590464 41.3514108,50.8309574 C41.3514108,52.7330856 38.1797362,52.5139844 37.144013,52.5139844 Z","id","b","transform","translate(38.452166, 48.395011) rotate(14.000000) translate(-38.452166, -48.395011) ",1,"fill-color-9"],["d","M93.2292414,91.9116485 L93.2292414,89.7922708 C93.647506,89.8022089 94.0558324,89.8022089 94.4442517,89.8022089 L94.4442517,91.9116485 L95.9779294,91.9116485 L95.9779294,89.7623948 C98.5473303,89.6229527 100.264986,88.975618 100.494057,86.5555973 C100.673282,84.6136241 99.757032,83.7471573 98.3030443,83.3986138 C99.1794183,82.9504733 99.7371558,82.1537275 99.6076827,80.8291821 C99.4383337,79.0166511 97.9497787,78.4091306 95.9778985,78.2398742 L95.9778985,75.7301945 L94.4442208,75.7301945 L94.4442208,78.1701531 C94.0458325,78.1701531 93.6375061,78.1800912 93.2292106,78.1900602 L93.2292106,75.7301945 L91.695502,75.7301945 L91.695502,78.2398742 C91.1316227,78.2569109 90.4748746,78.2485777 88.6181777,78.2398742 L88.6181777,79.8731181 C89.8290831,79.8516987 90.4644118,79.7738914 90.6099957,80.5502979 L90.6099957,87.4220333 C90.517559,88.0380413 90.0245427,87.9493391 88.926907,87.9299259 L88.6181777,89.7524258 L89.5798445,89.7528809 C91.4824304,89.7548325 91.6955329,89.7623948 91.6955329,89.7623948 L91.6955329,91.9116485 L93.2292414,91.9116485 Z M93.2591175,83.0400705 L93.2591175,79.9826533 C94.1255534,79.9826533 96.8343964,79.7137998 96.8343964,81.5163618 C96.8343964,83.2392647 94.1255843,83.0400705 93.2591175,83.0400705 Z M93.2591175,87.9398948 L93.2591175,84.5737791 C94.2948407,84.5737791 97.4665153,84.2849568 97.4665153,86.2568678 C97.4665153,88.1589961 94.2948407,87.9398948 93.2591175,87.9398948 Z","id","b","fill-rule","nonzero","transform","translate(94.567271, 83.820921) rotate(14.000000) translate(-94.567271, -83.820921) ",1,"fill-color-9"],["d","M305.611064,96.181454 L305.611064,94.0620763 C306.029328,94.0720144 306.437655,94.0720144 306.826074,94.0720144 L306.826074,96.181454 L308.359752,96.181454 L308.359752,94.0322003 C310.929153,93.8927582 312.646809,93.2454235 312.875879,90.8254028 C313.055104,88.8834296 312.138854,88.0169628 310.684867,87.6684193 C311.561241,87.2202788 312.118978,86.423533 311.989505,85.0989876 C311.820156,83.2864566 310.331601,82.678936 308.359721,82.5096797 L308.359721,80 L306.826043,80 L306.826043,82.4399586 C306.427655,82.4399586 306.019328,82.4498967 305.611033,82.4598657 L305.611033,80 L304.077324,80 L304.077324,82.5096797 C303.513445,82.5267164 302.856697,82.5183832 301,82.5096797 L301,84.1429236 C302.210905,84.1215042 302.846234,84.0436969 302.991818,84.8201034 L302.991818,91.6918387 C302.899381,92.3078468 302.406365,92.2191446 301.308729,92.1997314 L301,94.0222313 L301.961667,94.0226864 C303.864253,94.024638 304.077355,94.0322003 304.077355,94.0322003 L304.077355,96.181454 L305.611064,96.181454 Z M305.64094,87.309876 L305.64094,84.2524587 C306.507376,84.2524587 309.216219,83.9836053 309.216219,85.7861673 C309.216219,87.5090702 306.507407,87.309876 305.64094,87.309876 Z M305.64094,92.2097003 L305.64094,88.8435846 C306.676663,88.8435846 309.848338,88.5547623 309.848338,90.5266733 C309.848338,92.4288016 306.676663,92.2097003 305.64094,92.2097003 Z","id","b","fill-rule","nonzero","transform","translate(306.949093, 88.090727) rotate(14.000000) translate(-306.949093, -88.090727) ",1,"fill-color-26"],["fxFlex","30","viewBox","0 0 278 118","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","LoopIn_Step04","transform","translate(-1799.000000, -756.000000)"],["id","LoopIn_Step04","transform","translate(1799.000000, 756.000000)"],["id","Loop","fill-rule","nonzero"],["id","Group-16","transform","translate(24.000000, 0.000000)"],["d","M55.0827415,28.5000036 C59.4468211,28.5000036 62.9999285,25.1343958 62.9999285,21.0000215 C62.9999285,16.8656472 59.4468211,13.5000393 55.0827415,13.5000393 C51.9843297,13.5000393 49.5608889,15.4359631 47.9999642,17.1843872 C46.4390396,15.4359631 44.0155987,13.5000393 40.9171869,13.5000393 C36.5531074,13.5000393 33,16.8656472 33,21.0000215 C33,25.1343958 36.5531074,28.5000036 40.9171869,28.5000036 C44.0155987,28.5000036 46.4390396,26.5640798 47.9999642,24.8156557 C49.5608889,26.5640798 51.9843297,28.5000036 55.0827415,28.5000036 Z M40.9171869,24.0000143 C39.0328073,24.0000143 37.4999893,22.6546959 37.4999893,21.0000286 C37.4999893,19.3453471 39.0328073,18.0000286 40.9171869,18.0000286 C42.707771,18.0000286 44.3577763,19.6921938 45.3234264,21.0000286 C44.3671604,22.2937501 42.7031019,24.0000143 40.9171869,24.0000143 Z M55.0827415,24.0000143 C53.2921574,24.0000143 51.6421522,22.3078492 50.676502,21.0000286 C51.6327681,19.7062929 53.2968266,18.0000286 55.0827415,18.0000286 C56.9671212,18.0000286 58.4999392,19.3453471 58.4999392,21.0000286 C58.4999392,22.6546959 56.9671212,24.0000143 55.0827415,24.0000143 Z","id","i",1,"fill-color-primary"],["id","Oval","cx","48.644129","cy","75.1589677","rx","48.644129","ry","6.61766437",1,"fill-color-2"],["id","Group-44","transform","translate(27.000000, 69.000000)","fill-rule","nonzero"],["id","Path","transform","translate(118.400000, 7.089946) scale(-1, 1) translate(-118.400000, -7.089946) ","points","234.731878 6.60770626 8.52651283e-14 6.60770626 8.52651283e-14 7.57218541 236.8 7.57218541",1,"fill-color-19"],["d","M120.192,8.96 L105.856,8.96 L105.856,1.86517468e-14 L120.192,1.86517468e-14 L120.192,8.96 Z M106.479304,8.57043501 L119.568696,8.57043501 L119.568696,0.389564988 L106.479304,0.389564988 L106.479304,8.57043501 Z","id","Shape","transform","translate(113.024000, 4.480000) scale(-1, 1) translate(-113.024000, -4.480000) ",1,"fill-color-19"],["id","Group-43","transform","translate(179.000000, 40.000000)"],["d","M225.805162,92.2474279 C226.071703,92.2474279 226.325569,92.1077892 226.465207,91.8666288 L232.050261,82.2197185 C232.345374,81.7151473 231.980441,81.0773212 231.393376,81.0773212 L227.731346,81.0773212 L229.083201,76.9583506 C229.210134,76.4759989 228.845202,76 228.346983,76 L223.777394,76 C223.396595,76 223.07291,76.2824384 223.022149,76.6600456 L222.006685,84.2760274 C221.946379,84.7329987 222.301798,85.1391782 222.76193,85.1391782 L226.528674,85.1391782 L225.065752,91.3112968 C224.951525,91.7936485 225.319618,92.2474279 225.805162,92.2474279 Z","id","b","fill-rule","nonzero","transform","translate(227.077378, 84.123714) rotate(14.000000) translate(-227.077378, -84.123714) ",1,"fill-color-12"],["fxFlex","30","viewBox","0 0 205 121","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","LoopIn_Step05","transform","translate(-2386.000000, -764.000000)","fill-rule","nonzero"],["id","LoopIn_Step05","transform","translate(2386.000000, 764.000000)"],["id","Illustration_Step02"],["id","Group-31"],["id","Rectangle","x","0","y","0","width","90.1490688","height","100.616012",1,"fill-color-10"],["id","Rectangle","x","1.48932403","y","67.1775068","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","74.5890324","width","51.2","height","16.0118784",1,"fill-color-primary-lighter"],["id","Oval","cx","76.317438","cy","82.4918815","r","8.15070413",1,"fill-color-primary-darker"],["id","Rectangle","x","1.48932403","y","34.712875","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","42.1244006","width","51.2","height","16.0118784",1,"fill-color-primary-lighter"],["id","Oval","cx","76.317438","cy","50.0294431","r","8.15070413",1,"fill-color-primary-darker"],["id","Rectangle","x","1.48932403","y","2.2482432","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","74.5890324","width","24","height","16.0118784",1,"fill-color-primary"],["id","Rectangle","x","8.64422093","y","42.1244006","width","36.8","height","16.0118784",1,"fill-color-primary"],["id","Rectangle","x","8.64422093","y","9.66196224","width","51.2","height","16.0118784",1,"fill-color-primary"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","50.2465905","r","8.78679245"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","82.7090289","r","8.78679245"],["id","Group","transform","translate(60.115627, 35.744427)"],["d","M133.318807,1.04548939 L82.5936439,1.04548939 L82.5936439,0 L59.5928852,0 L59.5928852,1.04548939 L8.65861943,1.04548939 C7.74861523,1.04548887 6.87588228,1.4069864 6.23241214,2.05045654 C5.58894199,2.69392669 5.22744498,3.56665964 5.22744498,4.47666384 L5.22744498,73.9350108 C5.22744498,74.8450173 5.5889387,75.7177532 6.23240879,76.3612266 C6.87587888,77.0047 7.74861298,77.3662028 8.65861943,77.3662028 L133.318807,77.3662028 C135.213795,77.3662028 136.749981,75.8300048 136.749981,73.9350167 L136.749981,4.47666384 C136.749981,3.56665964 136.388484,2.69392669 135.745014,2.05045654 C135.101544,1.4069864 134.228811,1.04548887 133.318807,1.04548939 Z","id","Path",1,"fill-color-20"],["id","Rectangle","x","9.82759671","y","7.10932665","width","122.322231","height","69.0022838",1,"fill-color-25"],["id","Path","opacity","0.257273065","points","97.1677755 76.1116475 9.82763376 76.1116475 9.82763376 7.10937149",1,"fill-color-24"],["id","Oval","cx","28.9673627","cy","59.1901502","r","11.7579927",1,"fill-color-25"],["d","M31.5848237,68.0274261 C25.669241,68.0274261 20.3361447,64.4639649 18.0723494,58.9986791 C15.808554,53.5333932 17.0598755,47.2425772 21.2428244,43.0596288 C25.4257733,38.8766804 31.7165895,37.6253598 37.1818751,39.8891559 C42.6471607,42.1529519 46.2106203,47.4860487 46.2106203,53.4016314 C46.2014756,61.4754447 39.6586369,68.0182825 31.5848237,68.0274261 L31.5848237,68.0274261 Z M31.5848237,38.967022 C23.612809,38.967022 17.1502143,45.4296168 17.1502143,53.4016314 C17.1502143,61.3736461 23.612809,67.8362409 31.5848237,67.8362409 C39.5568383,67.8362409 46.0194331,61.3736461 46.0194331,53.4016314 C46.010427,45.4333502 39.5531049,38.9760281 31.5848237,38.967022 L31.5848237,38.967022 Z","id","Shape",1,"fill-color-primary"],["id","Rectangle","x","99.4252759","y","44.3228077","width","11.4262324","height","2.38757043",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","25.733862","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","28.9741379","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","32.2144137","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","35.4546875","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","38.6949634","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","119.89017","y","8.50924347","width","4.7751428","height","4.7751428",1,"fill-color-6"],["d","M126.882344,15.5014148 L121.083948,15.5014148 L121.083948,9.70301894 L126.882344,9.70301894 L126.882344,15.5014148 Z M121.336061,15.2493191 L126.63024,15.2493191 L126.63024,9.95513218 L121.336061,9.95513218 L121.336061,15.2493191 Z","id","Shape",1,"fill-color-19"],["d","M140.184525,74.8570201 L128.246669,74.8570201 L128.246669,73.9969059 C128.246671,73.9516751 128.228704,73.9082962 128.196721,73.876313 C128.164738,73.8443298 128.12136,73.826364 128.076129,73.826364 L123.98315,73.826364 C123.937919,73.826364 123.89454,73.8443305 123.862558,73.8763135 C123.830575,73.9082966 123.812608,73.9516752 123.81261,73.9969059 L123.81261,74.8570201 L121.254497,74.8570201 L121.254497,73.9969059 C121.254499,73.9516752 121.236532,73.9082966 121.204549,73.8763135 C121.172566,73.8443305 121.129188,73.826364 121.083957,73.826364 L116.990978,73.826364 C116.945747,73.826364 116.902368,73.8443297 116.870385,73.8763129 C116.838402,73.908296 116.820435,73.9516749 116.820436,73.9969059 L116.820436,74.8570201 L114.262326,74.8570201 L114.262326,73.9969059 C114.262328,73.9516749 114.24436,73.908296 114.212377,73.8763129 C114.180394,73.8443297 114.137015,73.826364 114.091784,73.826364 L109.998805,73.826364 C109.953574,73.826364 109.910196,73.8443305 109.878213,73.8763135 C109.84623,73.9082966 109.828263,73.9516752 109.828265,73.9969059 L109.828265,74.8570201 L107.270153,74.8570201 L107.270153,73.9969059 C107.270154,73.9516752 107.252187,73.9082966 107.220204,73.8763135 C107.188222,73.8443305 107.144843,73.826364 107.099613,73.826364 L103.00663,73.826364 C102.961399,73.826364 102.91802,73.8443298 102.886037,73.876313 C102.854054,73.9082962 102.836088,73.9516751 102.83609,73.9969059 L102.83609,74.8570201 L100.277981,74.8570201 L100.277981,73.9969059 C100.277983,73.9516749 100.260016,73.908296 100.228032,73.8763129 C100.196049,73.8443297 100.15267,73.826364 100.107439,73.826364 L96.0144621,73.826364 C95.9692311,73.826364 95.9258522,73.8443297 95.8938691,73.8763129 C95.861886,73.908296 95.8439187,73.9516749 95.8439202,73.9969059 L95.8439202,74.8570201 L93.285808,74.8570201 L93.285808,73.9969059 C93.2858095,73.9516752 93.2678425,73.9082966 93.2358598,73.8763135 C93.2038771,73.8443305 93.1604987,73.826364 93.1152681,73.826364 L89.0222888,73.826364 C88.9770581,73.826364 88.9336797,73.8443305 88.901697,73.8763135 C88.8697143,73.9082966 88.8517473,73.9516752 88.8517489,73.9969059 L88.8517489,74.8570201 L86.2936405,74.8570201 L86.2936405,73.9969059 C86.293642,73.9516752 86.2756751,73.9082966 86.2436923,73.8763135 C86.2117096,73.8443305 86.1683312,73.826364 86.1231006,73.826364 L54.061428,73.826364 C54.0161974,73.826364 53.972819,73.8443305 53.9408363,73.8763135 C53.9088536,73.9082966 53.8908866,73.9516752 53.8908881,73.9969059 L53.8908881,74.8570201 L51.3327759,74.8570201 L51.3327759,73.9969059 C51.3327774,73.9516749 51.3148102,73.908296 51.282827,73.8763129 C51.2508439,73.8443297 51.207465,73.826364 51.162234,73.826364 L47.0692664,73.826364 C47.0240354,73.826364 46.9806565,73.8443297 46.9486734,73.8763129 C46.9166903,73.908296 46.898723,73.9516749 46.8987246,73.9969059 L46.8987246,74.8570201 L44.3406025,74.8570201 L44.3406025,73.9969059 C44.3406046,73.9516751 44.3226378,73.9082962 44.290655,73.876313 C44.2586721,73.8443298 44.2152934,73.826364 44.1700626,73.826364 L40.0770834,73.826364 C40.0318527,73.826364 39.9884743,73.8443305 39.9564916,73.8763135 C39.9245089,73.9082966 39.9065419,73.9516752 39.9065435,73.9969059 L39.9065435,74.8570201 L37.3484312,74.8570201 L37.3484312,73.9969059 C37.3484327,73.9516752 37.3304657,73.9082966 37.298483,73.8763135 C37.2665003,73.8443305 37.2231219,73.826364 37.1778913,73.826364 L33.084912,73.826364 C33.039681,73.826364 32.9963021,73.8443297 32.964319,73.8763129 C32.9323358,73.908296 32.9143686,73.9516749 32.9143701,73.9969059 L32.9143701,74.8570201 L30.3562598,74.8570201 L30.3562598,73.9969059 C30.3562614,73.9516749 30.3382941,73.908296 30.306311,73.8763129 C30.2743278,73.8443297 30.2309489,73.826364 30.1857179,73.826364 L26.0927387,73.826364 C26.047508,73.826364 26.0041296,73.8443305 25.9721469,73.8763135 C25.9401642,73.9082966 25.9221972,73.9516752 25.9221988,73.9969059 L25.9221988,74.8570201 L23.3640826,74.8570201 L23.3640826,73.9969059 C23.3640841,73.9516752 23.3461171,73.9082966 23.3141344,73.8763135 C23.2821517,73.8443305 23.2387733,73.826364 23.1935427,73.826364 L19.1005673,73.826364 C19.0553365,73.826364 19.0119578,73.8443298 18.979975,73.876313 C18.9479921,73.9082962 18.9300253,73.9516751 18.9300274,73.9969059 L18.9300274,74.8570201 L16.3719151,74.8570201 L16.3719151,73.9969059 C16.3719167,73.9516749 16.3539494,73.908296 16.3219663,73.8763129 C16.2899831,73.8443297 16.2466042,73.826364 16.2013733,73.826364 L12.1083959,73.826364 C12.0631649,73.826364 12.0197861,73.8443297 11.9878029,73.8763129 C11.9558198,73.908296 11.9378525,73.9516749 11.9378541,73.9969059 L11.9378541,74.8570201 L4.09297732,74.8570201 C1.83248849,74.8570223 0,76.6895106 0,78.9499994 L0,80.8007483 C0,83.061233 1.83249262,84.8937159 4.09297732,84.8937159 L140.184525,84.8937159 C142.44501,84.8937159 144.277504,83.0612333 144.277504,80.8007483 L144.277504,78.9499994 C144.277504,76.6895102 142.445014,74.8570223 140.184525,74.8570201 Z","id","Path",1,"fill-color-20"],["d","M88.0406297,103.870828 C88.3071704,103.870828 88.5610365,103.731189 88.7006752,103.490029 L94.2857286,93.8431185 C94.5808417,93.3385473 94.2159092,92.7007212 93.6288439,92.7007212 L89.9668136,92.7007212 L91.318669,88.5817505 C91.445602,88.0993988 91.0806695,87.6234 90.5824512,87.6234 L86.0128621,87.6234 C85.632063,87.6234 85.3083776,87.9058383 85.2576168,88.2834455 L84.2421525,95.8994274 C84.1818469,96.3563987 84.5372656,96.7625782 84.9973979,96.7625782 L88.7641417,96.7625782 L87.30122,102.934697 C87.1869926,103.417048 87.555086,103.870828 88.0406297,103.870828 Z","id","b","transform","translate(89.312846, 95.747114) rotate(14.000000) translate(-89.312846, -95.747114) ",1,"fill-color-21"],["id","Oval","cx","74.1507041","cy","17.5648113","r","8.15070413",1,"fill-color-primary"]],template:function(t,e){if(1&t&&(h.YNc(0,tt,1,0,"ng-container",0),h.YNc(1,it,32,5,"ng-template",null,1,h.W1O),h.YNc(3,nt,66,5,"ng-template",null,2,h.W1O),h.YNc(5,rt,93,5,"ng-template",null,3,h.W1O),h.YNc(7,st,54,5,"ng-template",null,4,h.W1O),h.YNc(9,ot,51,5,"ng-template",null,5,h.W1O)),2&t){const t=h.MAs(2),i=h.MAs(4),n=h.MAs(6),r=h.MAs(8),s=h.MAs(10);h.Q6J("ngTemplateOutlet",1===e.stepNumber?t:2===e.stepNumber?i:3===e.stepNumber?n:4===e.stepNumber?r:s)}},directives:[p.tP,y.xw,y.yH,y.Wh,p.mk,x.oO,b.n5,b.$j],styles:["svg.small-svg[_ngcontent-%COMP%]{height:50%;min-height:50%;max-width:100%}svg.large-svg[_ngcontent-%COMP%]{height:60%;min-height:60%;max-width:100%}"],data:{animation:[G.l]}}),t})();const lt=["stepper"];function ct(t,e){if(1&t&&(h.TgZ(0,"div",48),h.TgZ(1,"p",49),h.TgZ(2,"strong"),h._uU(3,"Channel Peer:\xa0"),h.qZA(),h._uU(4),h.ALo(5,"titlecase"),h.qZA(),h.TgZ(6,"p",50),h.TgZ(7,"strong"),h._uU(8,"Channel ID:\xa0"),h.qZA(),h._uU(9),h.qZA(),h._UZ(10,"p",50),h.qZA()),2&t){const t=h.oxw(2);h.xp6(4),h.Oqu(h.lcZ(5,2,t.channel.remote_alias)),h.xp6(5),h.Oqu(t.channel.chan_id)}}function ht(t,e){if(1&t&&h._uU(0),2&t){const t=h.oxw(2);h.Oqu(t.inputFormLabel)}}function ut(t,e){1&t&&(h.TgZ(0,"mat-error"),h._uU(1,"Amount is required."),h.qZA())}function dt(t,e){if(1&t&&(h.TgZ(0,"mat-error"),h._uU(1),h.ALo(2,"number"),h.qZA()),2&t){const t=h.oxw(2);h.xp6(1),h.hij("Amount must be greater than or equal to ",h.lcZ(2,1,t.minQuote.amount),".")}}function pt(t,e){if(1&t&&(h.TgZ(0,"mat-error"),h._uU(1),h.ALo(2,"number"),h.qZA()),2&t){const t=h.oxw(2);h.xp6(1),h.hij("Amount must be less than or equal to ",h.lcZ(2,1,t.maxQuote.amount),".")}}function ft(t,e){1&t&&(h.TgZ(0,"mat-error"),h._uU(1,"Confirmation target is required."),h.qZA())}function mt(t,e){1&t&&(h.TgZ(0,"mat-error"),h._uU(1,"Confirmation target must be a positive number."),h.qZA())}function gt(t,e){1&t&&(h.TgZ(0,"mat-error"),h._uU(1,"Percentage is required."),h.qZA())}function yt(t,e){1&t&&(h.TgZ(0,"mat-error"),h._uU(1,"Percentage must be a positive number."),h.qZA())}function bt(t,e){if(1&t&&(h.TgZ(0,"mat-form-field",50),h._UZ(1,"input",51),h.YNc(2,gt,2,0,"mat-error",25),h.YNc(3,yt,2,0,"mat-error",25),h.qZA()),2&t){const t=h.oxw(2);h.xp6(1),h.Q6J("step",1),h.xp6(1),h.Q6J("ngIf",null==t.inputFormGroup.controls.routingFeePercent.errors?null:t.inputFormGroup.controls.routingFeePercent.errors.required),h.xp6(1),h.Q6J("ngIf",null==t.inputFormGroup.controls.routingFeePercent.errors?null:t.inputFormGroup.controls.routingFeePercent.errors.min)}}function vt(t,e){1&t&&(h.TgZ(0,"mat-slide-toggle",52),h._uU(1,"Fast"),h.qZA())}function _t(t,e){if(1&t&&h._uU(0),2&t){const t=h.oxw(2);h.Oqu(t.quoteFormLabel)}}function wt(t,e){1&t&&(h.TgZ(0,"p",53),h.TgZ(1,"mat-icon",54),h._uU(2,"close"),h.qZA(),h._uU(3,"Local balance amount is insufficient for swap."),h.qZA())}function xt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",55),h.NdJ("click",function(){return h.CHM(t),h.oxw(2).onValidateAmount()}),h._uU(1,"Next"),h.qZA()}}function Ct(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",56),h.NdJ("click",function(){return h.CHM(t),h.oxw(2).onLoop()}),h._uU(1),h.qZA()}if(2&t){const t=h.oxw(2);h.xp6(1),h.hij("Initiate ",t.loopDirectionCaption,"")}}function At(t,e){if(1&t&&h._uU(0),2&t){const t=h.oxw(3);h.Oqu(t.addressFormLabel)}}function St(t,e){1&t&&(h.TgZ(0,"mat-error"),h._uU(1,"Address is required."),h.qZA())}function Et(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"mat-step",16),h.TgZ(1,"form",17),h.YNc(2,At,1,1,"ng-template",18),h.TgZ(3,"div",57),h.TgZ(4,"mat-radio-group",58),h.NdJ("change",function(e){return h.CHM(t),h.oxw(2).onAddressTypeChange(e)}),h.TgZ(5,"mat-radio-button",59),h._uU(6,"Node Local Address"),h.qZA(),h.TgZ(7,"mat-radio-button",60),h._uU(8,"External Address"),h.qZA(),h.qZA(),h.TgZ(9,"mat-form-field",61),h._UZ(10,"input",62),h.YNc(11,St,2,0,"mat-error",25),h.qZA(),h.qZA(),h.TgZ(12,"div",29),h.TgZ(13,"button",63),h.NdJ("click",function(){return h.CHM(t),h.oxw(2).onLoop()}),h._uU(14),h.qZA(),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw(2);h.Q6J("stepControl",t.addressFormGroup)("editable",t.flgEditable),h.xp6(1),h.Q6J("formGroup",t.addressFormGroup),h.xp6(9),h.Q6J("required","external"===t.addressFormGroup.controls.addressType.value),h.xp6(1),h.Q6J("ngIf",null==t.addressFormGroup.controls.address.errors?null:t.addressFormGroup.controls.address.errors.required),h.xp6(3),h.hij("Initiate ",t.loopDirectionCaption,"")}}function kt(t,e){if(1&t&&h._uU(0),2&t){const t=h.oxw(2);h.hij("",t.loopDirectionCaption," Status")}}function Tt(t,e){if(1&t&&(h.TgZ(0,"mat-icon",64),h._uU(1),h.qZA()),2&t){const t=h.oxw(2);h.xp6(1),h.Oqu(t.loopStatus&&null!=t.loopStatus&&t.loopStatus.id_bytes?"check":"close")}}function Mt(t,e){1&t&&h._UZ(0,"div")}function Lt(t,e){1&t&&h._UZ(0,"mat-progress-bar",65)}function It(t,e){if(1&t&&(h.TgZ(0,"h4",66),h._uU(1),h.qZA()),2&t){const t=h.oxw(2);h.xp6(1),h.Oqu(t.loopStatus&&t.loopStatus.error?t.loopDirectionCaption+" failed.":t.loopStatus&&t.loopStatus.id_bytes&&t.channel?t.loopDirectionCaption+" request placed successfully. You can check the status of the request on the 'Loop' menu.":t.loopDirectionCaption+" request placed successfully.")}}function Ot(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",67),h.NdJ("click",function(){return h.CHM(t),h.oxw(2).goToLoop()}),h._uU(1,"Check Status"),h.qZA()}}function Dt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",68),h.NdJ("click",function(){return h.CHM(t),h.oxw(2).onRestart()}),h._uU(1,"Start Again"),h.qZA()}}function Rt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",3),h.TgZ(1,"div",4),h.TgZ(2,"mat-card-header",5),h.TgZ(3,"div",6),h.TgZ(4,"span",7),h._uU(5),h.qZA(),h.qZA(),h.TgZ(6,"div",8),h.TgZ(7,"button",9),h.NdJ("click",function(){return h.CHM(t),h.oxw().showInfo()}),h._uU(8,"?"),h.qZA(),h.TgZ(9,"button",10),h.NdJ("click",function(){return h.CHM(t),h.oxw().onClose()}),h._uU(10,"X"),h.qZA(),h.qZA(),h.qZA(),h.TgZ(11,"mat-card-content",11),h.TgZ(12,"div",12),h.YNc(13,ct,11,4,"div",13),h.TgZ(14,"mat-vertical-stepper",14,15),h.NdJ("selectionChange",function(e){return h.CHM(t),h.oxw().stepSelectionChanged(e)}),h.TgZ(16,"mat-step",16),h.TgZ(17,"form",17),h.YNc(18,ht,1,1,"ng-template",18),h.TgZ(19,"div",19),h._UZ(20,"rtl-loop-quote",20),h._UZ(21,"rtl-loop-quote",20),h.qZA(),h.TgZ(22,"div",21),h.TgZ(23,"mat-form-field",22),h._UZ(24,"input",23),h.TgZ(25,"mat-hint"),h._uU(26),h.ALo(27,"number"),h.ALo(28,"number"),h.qZA(),h.TgZ(29,"span",24),h._uU(30,"Sats"),h.qZA(),h.YNc(31,ut,2,0,"mat-error",25),h.YNc(32,dt,3,3,"mat-error",25),h.YNc(33,pt,3,3,"mat-error",25),h.qZA(),h.TgZ(34,"mat-form-field",22),h._UZ(35,"input",26),h.YNc(36,ft,2,0,"mat-error",25),h.YNc(37,mt,2,0,"mat-error",25),h.qZA(),h.YNc(38,bt,4,3,"mat-form-field",27),h.YNc(39,vt,2,0,"mat-slide-toggle",28),h.qZA(),h.TgZ(40,"div",29),h.TgZ(41,"button",30),h.NdJ("click",function(){return h.CHM(t),h.oxw().onEstimateQuote()}),h._uU(42,"Estimate Quote"),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.TgZ(43,"mat-step",16),h.TgZ(44,"form",17),h.YNc(45,_t,1,1,"ng-template",18),h._UZ(46,"rtl-loop-quote",31),h.YNc(47,wt,4,0,"p",32),h.TgZ(48,"div",29),h.YNc(49,xt,2,0,"button",33),h.YNc(50,Ct,2,1,"button",34),h.qZA(),h.qZA(),h.qZA(),h.YNc(51,Et,15,6,"mat-step",35),h.TgZ(52,"mat-step",36),h.TgZ(53,"form",17),h.YNc(54,kt,1,1,"ng-template",18),h.TgZ(55,"div",37),h.TgZ(56,"mat-expansion-panel",38),h.TgZ(57,"mat-expansion-panel-header"),h.TgZ(58,"mat-panel-title"),h.TgZ(59,"span",39),h._uU(60),h.YNc(61,Tt,2,1,"mat-icon",40),h.qZA(),h.qZA(),h.qZA(),h.YNc(62,Mt,1,0,"div",41),h.qZA(),h.YNc(63,Lt,1,0,"mat-progress-bar",42),h.qZA(),h.YNc(64,It,2,1,"h4",43),h.TgZ(65,"div",29),h.YNc(66,Ot,2,0,"button",44),h.YNc(67,Dt,2,0,"button",45),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.TgZ(68,"div",46),h.TgZ(69,"button",47),h._uU(70,"Close"),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw(),e=h.MAs(2);h.Q6J("@opacityAnimation",void 0),h.xp6(3),h.Q6J("fxFlex",t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM?"83":"91"),h.xp6(2),h.Oqu(t.channel?"Channel "+t.loopDirectionCaption:t.loopDirectionCaption),h.xp6(1),h.Q6J("fxFlex",t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM?"17":"9"),h.xp6(7),h.Q6J("ngIf",t.channel),h.xp6(1),h.Q6J("linear",!0),h.xp6(2),h.Q6J("stepControl",t.inputFormGroup)("editable",t.flgEditable),h.xp6(1),h.Q6J("formGroup",t.inputFormGroup),h.xp6(3),h.Q6J("quote",t.minQuote)("termCaption","min")("panelExpanded",!1)("showPanel",!0),h.xp6(1),h.Q6J("quote",t.maxQuote)("termCaption","max")("panelExpanded",!1)("showPanel",!0),h.xp6(2),h.Q6J("fxFlex",t.direction===t.LoopTypeEnum.LOOP_OUT?"30":"48"),h.xp6(1),h.Q6J("step",1e3),h.xp6(2),h.AsE("Range: ",h.lcZ(27,51,t.minQuote.amount),"-",h.lcZ(28,53,t.maxQuote.amount),""),h.xp6(5),h.Q6J("ngIf",null==t.inputFormGroup.controls.amount.errors?null:t.inputFormGroup.controls.amount.errors.required),h.xp6(1),h.Q6J("ngIf",null==t.inputFormGroup.controls.amount.errors?null:t.inputFormGroup.controls.amount.errors.min),h.xp6(1),h.Q6J("ngIf",null==t.inputFormGroup.controls.amount.errors?null:t.inputFormGroup.controls.amount.errors.max),h.xp6(1),h.Q6J("fxFlex",t.direction===t.LoopTypeEnum.LOOP_OUT?"20":"48"),h.xp6(1),h.Q6J("step",1),h.xp6(1),h.Q6J("ngIf",null==t.inputFormGroup.controls.sweepConfTarget.errors?null:t.inputFormGroup.controls.sweepConfTarget.errors.required),h.xp6(1),h.Q6J("ngIf",null==t.inputFormGroup.controls.sweepConfTarget.errors?null:t.inputFormGroup.controls.sweepConfTarget.errors.min),h.xp6(1),h.Q6J("ngIf",t.direction===t.LoopTypeEnum.LOOP_OUT),h.xp6(1),h.Q6J("ngIf",t.direction===t.LoopTypeEnum.LOOP_OUT),h.xp6(4),h.Q6J("stepControl",t.quoteFormGroup)("editable",t.flgEditable),h.xp6(1),h.Q6J("formGroup",t.quoteFormGroup),h.xp6(2),h.Q6J("quote",t.quote)("showPanel",!1),h.xp6(1),h.Q6J("ngIf",t.inputFormGroup.controls.amount.value>t.localBalanceToCompare),h.xp6(2),h.Q6J("ngIf",t.direction===t.LoopTypeEnum.LOOP_OUT),h.xp6(1),h.Q6J("ngIf",t.direction===t.LoopTypeEnum.LOOP_IN),h.xp6(1),h.Q6J("ngIf",t.direction===t.LoopTypeEnum.LOOP_OUT),h.xp6(1),h.Q6J("stepControl",t.statusFormGroup),h.xp6(1),h.Q6J("formGroup",t.statusFormGroup),h.xp6(3),h.Q6J("expanded",!!t.loopStatus),h.xp6(4),h.Oqu(t.loopStatus?t.loopStatus.id_bytes?t.loopDirectionCaption+" request details":t.loopDirectionCaption+" error details":"Waiting for "+t.loopDirectionCaption+" request..."),h.xp6(1),h.Q6J("ngIf",t.loopStatus),h.xp6(1),h.Q6J("ngIf",!t.loopStatus)("ngIfElse",e),h.xp6(1),h.Q6J("ngIf",!t.loopStatus),h.xp6(1),h.Q6J("ngIf",t.loopStatus),h.xp6(2),h.Q6J("ngIf",t.loopStatus&&t.loopStatus.id_bytes&&t.channel),h.xp6(1),h.Q6J("ngIf",t.loopStatus&&(t.loopStatus.error||!t.loopStatus.id_bytes)),h.xp6(2),h.Q6J("mat-dialog-close",!1)}}function Nt(t,e){if(1&t&&h._UZ(0,"rtl-loop-status",69),2&t){const t=h.oxw();h.Q6J("loopStatus",t.loopStatus)}}function Pt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"rtl-loop-out-info-graphics",86),h.NdJ("stepNumberChange",function(e){return h.CHM(t),h.oxw(2).stepNumber=e}),h.qZA()}if(2&t){const t=h.oxw(2);h.Q6J("stepNumber",t.stepNumber)("animationDirection",t.animationDirection)}}function Ft(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"rtl-loop-in-info-graphics",86),h.NdJ("stepNumberChange",function(e){return h.CHM(t),h.oxw(2).stepNumber=e}),h.qZA()}if(2&t){const t=h.oxw(2);h.Q6J("stepNumber",t.stepNumber)("animationDirection",t.animationDirection)}}const Zt=function(t,e){return{"dot-primary":t,"dot-primary-lighter":e}};function Bt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"span",87),h.NdJ("click",function(){const e=h.CHM(t).$implicit;return h.oxw(2).onStepChanged(e)}),h._UZ(1,"p",88),h.qZA()}if(2&t){const t=e.$implicit,i=h.oxw(2);h.xp6(1),h.Q6J("ngClass",h.WLB(1,Zt,i.stepNumber===t,i.stepNumber!==t))}}function Ut(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",89),h.NdJ("click",function(){return h.CHM(t),h.oxw(2).onReadMore()}),h._uU(1,"Read More"),h.qZA()}}function qt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",90),h.NdJ("click",function(){return h.CHM(t),h.oxw(2).onStepChanged(4)}),h._uU(1,"Back"),h.qZA()}}function zt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",91),h.NdJ("click",function(){h.CHM(t);const e=h.oxw(2);return e.flgShowInfo=!1,e.stepNumber=1}),h._uU(1,"Close"),h.qZA()}}function Ht(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",92),h.NdJ("click",function(){h.CHM(t);const e=h.oxw(2);return e.flgShowInfo=!1,e.stepNumber=1}),h._uU(1,"Close"),h.qZA()}}function Yt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",93),h.NdJ("click",function(){h.CHM(t);const e=h.oxw(2);return e.onStepChanged(e.stepNumber-1)}),h._uU(1,"Back"),h.qZA()}}function Gt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"button",94),h.NdJ("click",function(){h.CHM(t);const e=h.oxw(2);return e.onStepChanged(e.stepNumber+1)}),h._uU(1,"Next"),h.qZA()}}const jt=function(){return[1,2,3,4,5]};function Vt(t,e){if(1&t){const t=h.EpF();h.TgZ(0,"div",70),h.TgZ(1,"div",19),h.TgZ(2,"mat-card-header",71),h.TgZ(3,"div",72),h._UZ(4,"span",7),h.qZA(),h.TgZ(5,"div",73),h.TgZ(6,"button",74),h.NdJ("click",function(){h.CHM(t);const e=h.oxw();return e.flgShowInfo=!1,e.stepNumber=1}),h._uU(7,"X"),h.qZA(),h.qZA(),h.qZA(),h.TgZ(8,"mat-card-content",75),h.YNc(9,Pt,1,2,"rtl-loop-out-info-graphics",76),h.YNc(10,Ft,1,2,"rtl-loop-in-info-graphics",76),h.qZA(),h.TgZ(11,"div",77),h.YNc(12,Bt,2,4,"span",78),h.qZA(),h.TgZ(13,"div",79),h.YNc(14,Ut,2,0,"button",80),h.YNc(15,qt,2,0,"button",81),h.YNc(16,zt,2,0,"button",82),h.YNc(17,Ht,2,0,"button",83),h.YNc(18,Yt,2,0,"button",84),h.YNc(19,Gt,2,0,"button",85),h.qZA(),h.qZA(),h.qZA()}if(2&t){const t=h.oxw();h.Q6J("@opacityAnimation",void 0),h.xp6(9),h.Q6J("ngIf",t.direction===t.LoopTypeEnum.LOOP_OUT),h.xp6(1),h.Q6J("ngIf",t.direction===t.LoopTypeEnum.LOOP_IN),h.xp6(2),h.Q6J("ngForOf",h.DdM(10,jt)),h.xp6(2),h.Q6J("ngIf",5===t.stepNumber),h.xp6(1),h.Q6J("ngIf",5===t.stepNumber),h.xp6(1),h.Q6J("ngIf",5===t.stepNumber),h.xp6(1),h.Q6J("ngIf",t.stepNumber<5),h.xp6(1),h.Q6J("ngIf",t.stepNumber>1&&t.stepNumber<5),h.xp6(1),h.Q6J("ngIf",t.stepNumber<5)}}let Qt=(()=>{class t{constructor(t,e,i,n,s,o,l,h,u){this.dialogRef=t,this.data=e,this.store=i,this.loopService=n,this.formBuilder=s,this.decimalPipe=o,this.logger=l,this.router=h,this.commonService=u,this.faInfoCircle=a.sqG,this.LoopTypeEnum=c.$I,this.direction=c.$I.LOOP_OUT,this.loopDirectionCaption="Loop out",this.loopStatus=null,this.inputFormLabel="Amount to loop out",this.quoteFormLabel="Confirm Quote",this.addressFormLabel="Withdrawal Address",this.prepayRoutingFee=36,this.flgShowInfo=!1,this.stepNumber=1,this.screenSize="",this.screenSizeEnum=c.cu,this.animationDirection="forward",this.flgEditable=!0,this.localBalanceToCompare=null,this.unSubs=[new r.x,new r.x,new r.x,new r.x,new r.x,new r.x,new r.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.channel=this.data.channel,this.minQuote=this.data.minQuote?this.data.minQuote:{},this.maxQuote=this.data.maxQuote?this.data.maxQuote:{},this.direction=this.data.direction,this.loopDirectionCaption=this.direction===c.$I.LOOP_IN?"Loop in":"Loop out",this.inputFormLabel="Amount to "+this.loopDirectionCaption,this.inputFormGroup=this.formBuilder.group({amount:[this.minQuote.amount,[n.kI.required,n.kI.min(this.minQuote.amount),n.kI.max(this.maxQuote.amount)]],sweepConfTarget:[6,[n.kI.required,n.kI.min(1)]],routingFeePercent:[2,[n.kI.required,n.kI.min(0)]],fast:[!1,[n.kI.required]]}),this.quoteFormGroup=this.formBuilder.group({}),this.addressFormGroup=this.formBuilder.group({addressType:["local",[n.kI.required]],address:[{value:"",disabled:!0}]}),this.statusFormGroup=this.formBuilder.group({}),this.onFormValueChanges(),this.store.select("lnd").pipe((0,s.R)(this.unSubs[6])).subscribe(t=>{this.localBalanceToCompare=this.channel?+this.channel.local_balance:+t.totalLocalBalance})}ngAfterViewInit(){this.inputFormGroup.setErrors({Invalid:!0}),this.direction===c.$I.LOOP_OUT&&this.addressFormGroup.setErrors({Invalid:!0})}onFormValueChanges(){this.inputFormGroup.valueChanges.pipe((0,s.R)(this.unSubs[4])).subscribe(t=>{this.inputFormGroup.setErrors({Invalid:!0})}),this.direction===c.$I.LOOP_OUT&&this.addressFormGroup.valueChanges.pipe((0,s.R)(this.unSubs[5])).subscribe(t=>{this.addressFormGroup.setErrors({Invalid:!0})})}onAddressTypeChange(t){"external"===t.value?(this.addressFormGroup.controls.address.setValidators([n.kI.required]),this.addressFormGroup.controls.address.markAsTouched(),this.addressFormGroup.controls.address.enable()):(this.addressFormGroup.controls.address.setValidators(null),this.addressFormGroup.controls.address.markAsPristine(),this.addressFormGroup.controls.address.disable(),this.addressFormGroup.controls.address.setValue("")),this.addressFormGroup.setErrors({Invalid:!0})}onValidateAmount(){this.inputFormGroup.controls.amount.value<=this.localBalanceToCompare&&this.stepper.next()}onLoop(){if(!this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.amount.valuethis.maxQuote.amount||!this.inputFormGroup.controls.sweepConfTarget.value||this.inputFormGroup.controls.sweepConfTarget.value<2||this.direction===c.$I.LOOP_OUT&&(!this.inputFormGroup.controls.routingFeePercent.value||this.inputFormGroup.controls.routingFeePercent.value<0)||this.direction===c.$I.LOOP_OUT&&"external"===this.addressFormGroup.controls.addressType.value&&(!this.addressFormGroup.controls.address.value||""===this.addressFormGroup.controls.address.value.trim()))return!0;if(this.flgEditable=!1,this.stepper.selected.stepControl.setErrors(null),this.stepper.next(),this.direction===c.$I.LOOP_IN)this.loopService.loopIn(this.inputFormGroup.controls.amount.value,+this.quote.swap_fee_sat,+this.quote.htlc_publish_fee_sat,"",!0).pipe((0,s.R)(this.unSubs[0])).subscribe({next:t=>{this.loopStatus=t,this.loopService.listSwaps(),this.flgEditable=!0},error:t=>{this.loopStatus={error:t},this.flgEditable=!0,this.logger.error(t)}});else{const t=Math.ceil(this.inputFormGroup.controls.amount.value*(this.inputFormGroup.controls.routingFeePercent.value/100)),e="external"===this.addressFormGroup.controls.addressType.value?this.addressFormGroup.controls.address.value:"",i=this.inputFormGroup.controls.fast.value?0:(new Date).getTime()+18e5;this.loopService.loopOut(this.inputFormGroup.controls.amount.value,this.channel&&this.channel.chan_id?this.channel.chan_id:"",this.inputFormGroup.controls.sweepConfTarget.value,t,+this.quote.htlc_sweep_fee_sat,this.prepayRoutingFee,+this.quote.prepay_amt_sat,+this.quote.swap_fee_sat,i,e).pipe((0,s.R)(this.unSubs[1])).subscribe({next:t=>{this.loopStatus=t,this.loopService.listSwaps(),this.flgEditable=!0},error:t=>{this.loopStatus={error:t},this.flgEditable=!0,this.logger.error(t)}})}}onEstimateQuote(){if(!this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.amount.valuethis.maxQuote.amount||!this.inputFormGroup.controls.sweepConfTarget.value||this.inputFormGroup.controls.sweepConfTarget.value<2)return!0;const t=this.inputFormGroup.controls.fast.value?0:(new Date).getTime()+18e5;this.direction===c.$I.LOOP_IN?this.loopService.getLoopInQuote(this.inputFormGroup.controls.amount.value,this.inputFormGroup.controls.sweepConfTarget.value,t).pipe((0,s.R)(this.unSubs[2])).subscribe(t=>{this.quote=t,this.quote.off_chain_swap_routing_fee_percentage=this.inputFormGroup.controls.routingFeePercent.value?this.inputFormGroup.controls.routingFeePercent.value:2}):this.loopService.getLoopOutQuote(this.inputFormGroup.controls.amount.value,this.inputFormGroup.controls.sweepConfTarget.value,t).pipe((0,s.R)(this.unSubs[3])).subscribe(t=>{this.quote=t,this.quote.off_chain_swap_routing_fee_percentage=this.inputFormGroup.controls.routingFeePercent.value?this.inputFormGroup.controls.routingFeePercent.value:2}),this.stepper.selected.stepControl.setErrors(null),this.stepper.next()}stepSelectionChanged(t){switch(t.selectedIndex){case 0:this.inputFormLabel="Amount to "+this.loopDirectionCaption,this.quoteFormLabel="Confirm Quote",this.addressFormLabel="Withdrawal Address";break;case 1:this.inputFormLabel=this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.sweepConfTarget.value?this.direction===c.$I.LOOP_IN?this.loopDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats | Target Confirmation: "+(this.inputFormGroup.controls.sweepConfTarget.value?this.inputFormGroup.controls.sweepConfTarget.value:6):this.loopDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats | Target Confirmation: "+(this.inputFormGroup.controls.sweepConfTarget.value?this.inputFormGroup.controls.sweepConfTarget.value:6)+" | Percentage: "+(this.inputFormGroup.controls.routingFeePercent.value?this.inputFormGroup.controls.routingFeePercent.value:"2")+" | Fast: "+(this.inputFormGroup.controls.fast.value?"Enabled":"Disabled"):"Amount to "+this.loopDirectionCaption,this.quoteFormLabel="Confirm Quote",this.addressFormLabel="Withdrawal Address";break;case 2:this.inputFormLabel=this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.sweepConfTarget.value?this.direction===c.$I.LOOP_IN?this.loopDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats | Target Confirmation: "+(this.inputFormGroup.controls.sweepConfTarget.value?this.inputFormGroup.controls.sweepConfTarget.value:6):this.loopDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats | Target Confirmation: "+(this.inputFormGroup.controls.sweepConfTarget.value?this.inputFormGroup.controls.sweepConfTarget.value:6)+" | Fast: "+(this.inputFormGroup.controls.fast.value?"Enabled":"Disabled"):"Amount to "+this.loopDirectionCaption,this.quoteFormLabel=this.quote&&this.quote.swap_fee_sat&&(this.quote.htlc_sweep_fee_sat||this.quote.htlc_publish_fee_sat)&&this.quote.prepay_amt_sat?"Quote confirmed | Estimated Fees: "+this.decimalPipe.transform(+this.quote.swap_fee_sat+ +(this.quote.htlc_sweep_fee_sat?this.quote.htlc_sweep_fee_sat:this.quote.htlc_publish_fee_sat?this.quote.htlc_publish_fee_sat:0))+" Sats":"Quote confirmed",this.addressFormLabel=this.addressFormGroup.controls.addressType.value?"Withdrawal Address | Type: "+this.addressFormGroup.controls.addressType.value:"Withdrawal Address";break;default:this.inputFormLabel="Amount to "+this.loopDirectionCaption,this.quoteFormLabel="Confirm Quote",this.addressFormLabel="Withdrawal Address"}(this.direction===c.$I.LOOP_OUT&&1!==t.selectedIndex&&t.selectedIndex{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(h.Y36(o.so),h.Y36(o.WI),h.Y36(u.yh),h.Y36(d.W),h.Y36(n.qu),h.Y36(p.JJ),h.Y36(f.mQ),h.Y36(m.F0),h.Y36(g.v))},t.\u0275cmp=h.Xpm({type:t,selectors:[["rtl-loop-modal"]],viewQuery:function(t,e){if(1&t&&h.Gf(lt,5),2&t){let t;h.iGM(t=h.CRH())&&(e.stepper=t.first)}},decls:4,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf"],["loopStatusBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch","class","info-graphics-container",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxLayoutAlign","start start",3,"fxFlex"],[1,"page-title"],["fxLayoutAlign","space-between end",3,"fxFlex"],["tabindex","21","mat-button","",1,"btn-close-x","p-0",3,"click"],["tabindex","22","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["class","padding-gap-large","fxLayout","row wrap","fxLayoutAlign","space-between stretch",4,"ngIf"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[3,"quote","termCaption","panelExpanded","showPanel"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],[3,"fxFlex"],["autoFocus","","matInput","","placeholder","Amount","type","number","tabindex","1","formControlName","amount","required","",3,"step"],["matSuffix",""],[4,"ngIf"],["matInput","","placeholder","Sweep Confirmation Target","type","number","tabindex","2","formControlName","sweepConfTarget","required","",3,"step"],["fxFlex","30",4,"ngIf"],["matTooltip","Swap immediately (Might end up paying a higher on-chain fee)","fxFlex","15","tabindex","4","color","primary","formControlName","fast",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","5","type","button",3,"click"],[3,"quote","showPanel"],["fxFlex","100","class","color-warn mt-2","fxLayoutAlign","start center",4,"ngIf"],["mat-stroked-button","","color","primary","tabindex","6","type","button",3,"click",4,"ngIf"],["mat-stroked-button","","color","primary","tabindex","7","type","button",3,"click",4,"ngIf"],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"flat-expansion-panel",3,"expanded"],["fxLayoutAlign","start center","fxFlex","100"],["class","ml-1 icon-small",4,"ngIf"],[4,"ngIf","ngIfElse"],["fxFlex","100","color","primary","mode","indeterminate",4,"ngIf"],["fxLayoutAlign","start","class","font-bold-500 mt-2",4,"ngIf"],["mat-flat-button","","color","primary","tabindex","12","type","button",3,"click",4,"ngIf"],["mat-flat-button","","color","primary","tabindex","13","type","button",3,"click",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end end"],["mat-stroked-button","","color","primary","tabindex","14","type","button","default","",3,"mat-dialog-close"],["fxLayout","row wrap","fxLayoutAlign","space-between stretch",1,"padding-gap-large"],["fxFlex","40"],["fxFlex","30"],["matInput","","placeholder","Max Off-chain Routing Fee (%)","type","number","tabindex","3","formControlName","routingFeePercent","required","",3,"step"],["matTooltip","Swap immediately (Might end up paying a higher on-chain fee)","fxFlex","15","tabindex","4","color","primary","formControlName","fast"],["fxFlex","100","fxLayoutAlign","start center",1,"color-warn","mt-2"],[1,"mr-1","icon-small"],["mat-stroked-button","","color","primary","tabindex","6","type","button",3,"click"],["mat-stroked-button","","color","primary","tabindex","7","type","button",3,"click"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mt-1"],["color","primary","name","addressType","formControlName","addressType","fxFlex","100","fxLayoutAlign","space-between stretch",3,"change"],["fxFlex","48","tabindex","8","value","local"],["fxFlex","48","tabindex","9","value","external"],["fxFlex","100",1,"mt-1"],["matInput","","placeholder","Address","tabindex","10","formControlName","address",3,"required"],["mat-stroked-button","","color","primary","tabindex","11","type","button",3,"click"],[1,"ml-1","icon-small"],["fxFlex","100","color","primary","mode","indeterminate"],["fxLayoutAlign","start",1,"font-bold-500","mt-2"],["mat-flat-button","","color","primary","tabindex","12","type","button",3,"click"],["mat-flat-button","","color","primary","tabindex","13","type","button",3,"click"],["fxLayout","column",3,"loopStatus"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"info-graphics-container"],["fxLayout","row","fxFlex","8","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],["fxFlex","5","fxLayoutAlign","end center"],["tabindex","19","mat-button","",1,"btn-close-x","p-0",3,"click"],["fxLayout","column","fxFlex","70","fxLayoutAlign","space-between center",1,"padding-gap-x-large"],["fxFlex","100",3,"stepNumber","animationDirection","stepNumberChange",4,"ngIf"],["fxLayout","row","fxFlex","10","fxLayoutAlign","center end",1,"padding-gap-x-large","padding-gap-bottom-large"],["fxLayoutAlign","center center","class","dots-stepper-block",3,"click",4,"ngFor","ngForOf"],["fxLayout","row","fxFlex","10","fxLayoutAlign","end end",1,"padding-gap-x-large","padding-gap-bottom-large"],["mat-stroked-button","","class","mr-1","color","primary","tabindex","15","type","button",3,"click",4,"ngIf"],["mat-flat-button","","class","mr-1","color","primary","tabindex","16","type","button",3,"click",4,"ngIf"],["mat-flat-button","","color","primary","tabindex","17","type","button",3,"click",4,"ngIf"],["mat-stroked-button","","class","mr-1","color","primary","tabindex","18","type","button",3,"click",4,"ngIf"],["mat-flat-button","","class","mr-1","color","primary","tabindex","19","type","button",3,"click",4,"ngIf"],["mat-flat-button","","color","primary","tabindex","20","type","button",3,"click",4,"ngIf"],["fxFlex","100",3,"stepNumber","animationDirection","stepNumberChange"],["fxLayoutAlign","center center",1,"dots-stepper-block",3,"click"],[1,"dot","tiny-dot","mr-0",3,"ngClass"],["mat-stroked-button","","color","primary","tabindex","15","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","16","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","17","type","button",3,"click"],["mat-stroked-button","","color","primary","tabindex","18","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","19","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","20","type","button",3,"click"]],template:function(t,e){1&t&&(h.YNc(0,Rt,71,55,"div",0),h.YNc(1,Nt,1,1,"ng-template",null,1,h.W1O),h.YNc(3,Vt,20,11,"div",2)),2&t&&(h.Q6J("ngIf",!e.flgShowInfo),h.xp6(3),h.Q6J("ngIf",e.flgShowInfo))},directives:[p.O5,y.xw,y.yH,y.Wh,b.dk,v.lW,b.dn,_.Vq,_.C0,n._Y,n.JL,n.sg,_.VY,D,R.KE,N.Nt,n.wV,n.Fj,P.h,n.JJ,n.u,n.Q7,R.bx,R.R9,w.ib,w.yz,w.yK,o.ZT,R.TO,F.Rr,C.gM,Z.Hw,B.VQ,B.U0,U.pW,Y,p.sg,$,at,p.mk,x.oO],pipes:[p.JJ,p.rS],styles:[".dots-stepper-block[_ngcontent-%COMP%]{width:3rem}.info-graphics-container[_ngcontent-%COMP%]{max-height:60rem;min-height:60rem}"],data:{animation:[l._]}}),t})()},6880:(t,e,i)=>{"use strict";i.d(e,{h:()=>r});var n=i(1572);let r=(()=>{class t{constructor(t){this.el=t}ngAfterContentInit(){setTimeout(()=>{this.el.nativeElement.focus()},500)}}return t.\u0275fac=function(e){return new(e||t)(n.Y36(n.SBq))},t.\u0275dir=n.lG2({type:t,selectors:[["","autoFocus",""]],inputs:{appAutoFocus:"appAutoFocus"}}),t})()},2609:(t,e,i)=>{"use strict";i.d(e,{y:()=>r});var n=i(1572);let r=(()=>{class t{constructor(){this.copied=new n.vpe}onClick(t){if(t.preventDefault(),!this.payload)return;const e=t=>{(t.clipboardData||window.clipboardData).setData("text",this.payload.toString()),t.preventDefault(),this.copied.emit(this.payload)};document.addEventListener("copy",e,!1),document.execCommand("copy"),document.removeEventListener("copy",e,!1)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=n.lG2({type:t,selectors:[["","rtlClipboard",""]],hostBindings:function(t,e){1&t&&n.NdJ("click",function(t){return e.onClick(t)})},inputs:{payload:"payload"},outputs:{copied:"copied"}}),t})()},5095:(t,e,i)=>{"use strict";i.d(e,{q:()=>s});var n=i(6073),r=i(1572);let s=(()=>{class t{validate(t){return this.min?n.kI.min(+this.min)(t):null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=r.lG2({type:t,selectors:[["input","min",""]],inputs:{min:"min"},features:[r._Bn([{provide:n.Cf,useExisting:t,multi:!0}])]}),t})()},6013:(t,e,i)=>{"use strict";i.d(e,{a1:()=>a,QM:()=>l,lB:()=>c,fY:()=>h});var n=i(1681),r=i(1572),s=i(6853),o=i(3191);let a=(()=>{class t{constructor(t,e){this.router=t,this.sessionService=e}canActivate(t){return!(!this.sessionService.getItem("token")||"settings"!==t.url[0].path&&"auth"!==t.url[0].path&&"true"===this.sessionService.getItem("defaultPassword")&&(this.router.navigate(["/settings/auth"]),1))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(s.F0),r.LFG(o.m))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),l=(()=>{class t{constructor(t){this.sessionService=t}canActivate(){return!!this.sessionService.watchSession().pipe((0,n.U)(t=>t.lndUnlocked))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(o.m))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),c=(()=>{class t{constructor(t){this.sessionService=t}canActivate(){return!!this.sessionService.watchSession().pipe((0,n.U)(t=>t.clUnlocked))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(o.m))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),h=(()=>{class t{constructor(t){this.sessionService=t}canActivate(){return!!this.sessionService.watchSession().pipe((0,n.U)(t=>t.eclUnlocked))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(o.m))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})()},1084:(t,e,i)=>{"use strict";i.d(e,{v:()=>d});var n=i(2041),r=i(9647),s=i(9056),o=i(1681),a=i(1816),l=i(9421),c=i(1572),h=i(3556),u=i(3869);let d=(()=>{class t{constructor(t,e){this.dataService=t,this.logger=e,this.currencyUnits=[],this.CurrencyUnitEnum=l.NT,this.conversionData={data:null,last_fetched:null},this.ratesAPIStatus=l.Bn.UN_INITIATED,this.screenSize=l.cu.MD,this.containerSize={width:1200,height:800}}getScreenSize(){return this.screenSize}setScreenSize(t){this.screenSize=t}getContainerSize(){return this.containerSize}setContainerSize(t,e){this.containerSize={width:t,height:e}}sortByKey(t,e,i,n="asc"){return t.sort("number"===i?"desc"===n?(t,i)=>+t[e]>+i[e]?-1:1:(t,i)=>+t[e]>+i[e]?1:-1:"desc"===n?(t,i)=>t[e]>i[e]?-1:1:(t,i)=>t[e]>i[e]?1:-1)}sortDescByKey(t,e){return t.sort((t,i)=>{const n=+t[e],r=+i[e];return n>r?-1:n{const n=+t[e],r=+i[e];return nr?1:0})}camelCase(t){return t.replace(/(?:^\w|[A-Z]|\b\w)/g,(t,e)=>0===e?t.toLowerCase():t.toUpperCase()).replace(/\s+/g,"")}titleCase(t){return t.indexOf("!\n")>0||t.indexOf(".\n")>0?t.split("\n").reduce((t,e)=>t+e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()+"\n",""):t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()}convertCurrency(t,e,i,c,h){const u=(new Date).valueOf();return h&&c&&this.ratesAPIStatus!==l.Bn.INITIATED&&(e===l.NT.OTHER||i===l.NT.OTHER)?this.conversionData.data&&this.conversionData.last_fetched&&u(this.ratesAPIStatus=l.Bn.COMPLETED,this.conversionData.data=i&&"object"==typeof i?i:i&&"string"==typeof i?JSON.parse(i):{},this.conversionData.last_fetched=u,this.convertWithFiat(t,e,c))),(0,a.K)(t=>(this.ratesAPIStatus=l.Bn.ERROR,(0,r._)(()=>this.extractErrorMessage(t,"Currency Conversion Error.")))))):(0,n.of)(this.convertWithoutFiat(t,e))}convertWithoutFiat(t,e){const i={};switch(i[l.NT.SATS]=0,i[l.NT.BTC]=0,e){case l.NT.SATS:i[l.NT.SATS]=t,i[l.NT.BTC]=1e-8*t;break;case l.NT.BTC:i[l.NT.SATS]=1e8*t,i[l.NT.BTC]=t}return i}convertWithFiat(t,e,i){const n={unit:i,symbol:this.conversionData.data[i].symbol};switch(n[l.NT.SATS]=0,n[l.NT.BTC]=0,n[l.NT.OTHER]=0,e){case l.NT.SATS:n[l.NT.SATS]=t,n[l.NT.BTC]=1e-8*t,n[l.NT.OTHER]=1e-8*t*this.conversionData.data[i].last;break;case l.NT.BTC:n[l.NT.SATS]=1e8*t,n[l.NT.BTC]=t,n[l.NT.OTHER]=t*this.conversionData.data[i].last;break;case l.NT.OTHER:n[l.NT.SATS]=t/this.conversionData.data[i].last*1e8,n[l.NT.BTC]=t/this.conversionData.data[i].last,n[l.NT.OTHER]=t}return n}convertTime(t,e,i){switch(e){case l.Qk.SECS:switch(i){case l.Qk.MINS:t/=60;break;case l.Qk.HOURS:t/=3600;break;case l.Qk.DAYS:t/=86400}break;case l.Qk.MINS:switch(i){case l.Qk.SECS:t*=60;break;case l.Qk.HOURS:t/=60;break;case l.Qk.DAYS:t/=1440}break;case l.Qk.HOURS:switch(i){case l.Qk.SECS:t*=3600;break;case l.Qk.MINS:t*=60;break;case l.Qk.DAYS:t/=24}break;case l.Qk.DAYS:switch(i){case l.Qk.SECS:t=3600*t*24;break;case l.Qk.MINS:t=60*t*24;break;case l.Qk.HOURS:t*=24}}return t}downloadFile(t,e,i=".json",n=".csv"){let r=new Blob;r=".json"===i?new Blob(["\ufeff"+this.convertToCSV(t)],{type:"text/csv;charset=utf-8;"}):new Blob([t.toString()],{type:"text/plain;charset=utf-8"});const s=document.createElement("a"),o=URL.createObjectURL(r);-1!==navigator.userAgent.indexOf("Safari")&&-1===navigator.userAgent.indexOf("Chrome")&&s.setAttribute("target","_blank"),s.setAttribute("href",o),s.setAttribute("download",e+n),s.style.visibility="hidden",document.body.appendChild(s),s.click(),document.body.removeChild(s)}convertToCSV(t){const e=[];let i="",n="",r="";"object"!=typeof t&&(t=JSON.parse(t)),t.forEach((t,i)=>{for(const n in t)e.findIndex(t=>t===n)<0&&e.push(n)});const s=e.join(",");return r=s+"\r\n",t.forEach(t=>{i="",e.forEach(e=>{t.hasOwnProperty(e)?Array.isArray(t[e])?(n="",t[e].forEach((t,e)=>{n+="object"==typeof t?"("+JSON.stringify(t).replace(/\,/g,";")+")":"("+t+")"}),i+=n+","):i+="object"==typeof t[e]?JSON.stringify(t[e]).replace(/\,/g,";")+",":t[e]+",":i+=","}),r+=i.slice(0,-1)+"\r\n"}),r}isVersionCompatible(t,e){const i=t?t.trim().replace("v","").split("-")[0].split("."):[],n=e.split(".");return+i[0]>+n[0]||+i[0]==+n[0]&&+i[1]>+n[1]||+i[0]==+n[0]&&+i[1]==+n[1]&&+i[2]>=+n[2]}extractErrorMessage(t,e="Unknown Error."){const i=this.titleCase(t.error&&t.error.error&&t.error.error.error&&t.error.error.error.error&&t.error.error.error.error.error&&"string"==typeof t.error.error.error.error.error?t.error.error.error.error.error:t.error&&t.error.error&&t.error.error.error&&t.error.error.error.error&&"string"==typeof t.error.error.error.error?t.error.error.error.error:t.error&&t.error.error&&t.error.error.error&&"string"==typeof t.error.error.error?t.error.error.error:t.error&&t.error.error&&"string"==typeof t.error.error?t.error.error:t.error&&"string"==typeof t.error?t.error:t.error&&t.error.error&&t.error.error.error&&t.error.error.error.error&&t.error.error.error.error.message&&"string"==typeof t.error.error.error.error.message?t.error.error.error.error.message:t.error&&t.error.error&&t.error.error.error&&t.error.error.error.message&&"string"==typeof t.error.error.error.message?t.error.error.error.message:t.error&&t.error.error&&t.error.error.message&&"string"==typeof t.error.error.message?t.error.error.message:t.error&&t.error.message&&"string"==typeof t.error.message?t.error.message:t.message&&"string"==typeof t.message?t.message:e);return this.logger.info("Error Message: "+i),i}extractErrorCode(t,e=500){const i=t.error&&t.error.error&&t.error.error.message&&t.error.error.message.code?t.error.error.message.code:t.error&&t.error.error&&t.error.error.code?t.error.error.code:t.error&&t.error.code?t.error.code:t.code?t.code:t.status?t.status:e;return this.logger.info("Error Code: "+i),i}extractErrorNumber(t,e=500){const i=t.error&&t.error.error&&t.error.error.errno?t.error.error.errno:t.error&&t.error.errno?t.error.errno:t.errno?t.errno:t.status?t.status:e;return this.logger.info("Error Number: "+i),i}}return t.\u0275fac=function(e){return new(e||t)(c.LFG(h.D),c.LFG(u.mQ))},t.\u0275prov=c.Yz7({token:t,factory:t.\u0275fac}),t})()},9421:(t,e,i)=>{"use strict";i.d(e,{pt:()=>r,uA:()=>s,Xz:()=>o,Er:()=>a,LO:()=>l,IV:()=>c,TJ:()=>h,_t:()=>u,Dr:()=>d,Vc:()=>p,vn:()=>f,wZ:()=>m,ol:()=>g,n_:()=>y,OJ:()=>b,Qk:()=>v,NT:()=>_,Gi:()=>w,cu:()=>x,HW:()=>C,x$:()=>A,uX:()=>S,Fq:()=>E,$I:()=>k,hc:()=>T,Qw:()=>M,gg:()=>L,op:()=>I,JX:()=>O,kO:()=>D,Bn:()=>R,m6:()=>N});var n=i(3005);function r(t){const e=new n.ye;return e.itemsPerPageLabel=t+" per page:",e}const s=["Sats","BTC"],o={Sats:"1.0-0",BTC:"1.6-6",OTHER:"1.2-2"},a=[{id:"USD",name:"USD"},{id:"AUD",name:"AUD"},{id:"BRL",name:"BRL"},{id:"CAD",name:"CAD"},{id:"CHF",name:"CHF"},{id:"CLP",name:"CLP"},{id:"CNY",name:"CNY"},{id:"DKK",name:"DKK"},{id:"EUR",name:"EUR"},{id:"GBP",name:"GBP"},{id:"HKD",name:"HKD"},{id:"INR",name:"INR"},{id:"ISK",name:"ISK"},{id:"JPY",name:"JPY"},{id:"KRW",name:"KRW"},{id:"NZD",name:"NZD"},{id:"PLN",name:"PLN"},{id:"RUB",name:"RUB"},{id:"SEK",name:"SEK"},{id:"SGD",name:"SGD"},{id:"THB",name:"THB"},{id:"TWD",name:"TWD"}],l=["SECS","MINS","HOURS","DAYS"],c=10,h=[5,10,25,100],u=[{addressId:"0",addressCode:"bech32",addressTp:"Bech32 (P2WKH)",addressDetails:"Pay to witness key hash"},{addressId:"1",addressCode:"p2sh-segwit",addressTp:"P2SH (NP2WKH)",addressDetails:"Pay to nested witness key hash (default)"}],d=[{id:"0",name:"Priority (Default)"},{id:"1",name:"Target Confirmation Blocks"},{id:"2",name:"Fee"}],p=[{id:"none",name:"No Fee Limit",placeholder:"No Limit"},{id:"fixed",name:"Fixed Limit (Sats)",placeholder:"Fixed Limit in Sats"},{id:"percent",name:"Percentage of Payment Amount",placeholder:"Percentage Limit"}],f=[{feeRateId:"urgent",feeRateType:"Urgent"},{feeRateId:"normal",feeRateType:"Normal"},{feeRateId:"slow",feeRateType:"Slow"},{feeRateId:"customperkb",feeRateType:"Custom (Sats/vB)"}],m={themes:[{id:"PURPLE",name:"Diogo"},{id:"TEAL",name:"My2Sats"},{id:"INDIGO",name:"RTL"},{id:"PINK",name:"BK"},{id:"YELLOW",name:"Gold"}],modes:[{id:"DAY",name:"Day"},{id:"NIGHT",name:"Night"}]};var g=function(t){return t.OPERATOR="OPERATOR",t.MERCHANT="MERCHANT",t.ALL="ALL",t}({}),y=function(t){return t.INFORMATION="Information",t.WARNING="Warning",t.ERROR="Error",t.SUCCESS="Success",t.CONFIRM="Confirm",t}({}),b=function(t){return t.JWT="JWT",t.PASSWORD="PASSWORD",t}({}),v=function(t){return t.SECS="SECS",t.MINS="MINS",t.HOURS="HOURS",t.DAYS="DAYS",t}({}),_=function(t){return t.SATS="Sats",t.BTC="BTC",t.OTHER="OTHER",t}({}),w=function(t){return t.ARRAY="ARRAY",t.NUMBER="NUMBER",t.STRING="STRING",t.BOOLEAN="BOOLEAN",t.PASSWORD="PASSWORD",t.DATE="DATE",t.DATE_TIME="DATE_TIME",t}({}),x=function(t){return t.XS="XS",t.SM="SM",t.MD="MD",t.LG="LG",t.XL="XL",t}({});const C={COOPERATIVE_CLOSE:{name:"Co-operative Close",tooltip:"Channel closed cooperatively"},LOCAL_FORCE_CLOSE:{name:"Local Force Close",tooltip:"Channel force-closed by the local node"},REMOTE_FORCE_CLOSE:{name:"Remote Force Close",tooltip:"Channel force-closed by the remote node"},BREACH_CLOSE:{name:"Breach Close",tooltip:"Remote node attempted to broadcast a prior revoked channel state"},FUNDING_CANCELED:{name:"Funding Canceled",tooltip:"Channel never fully opened"},ABANDONED:{name:"Abandoned",tooltip:"Channel abandoned by the local node"}},A={WITNESS_PUBKEY_HASH:{name:"Witness Pubkey Hash",tooltip:""},NESTED_PUBKEY_HASH:{name:"Nested Pubkey Hash",tooltip:""},UNUSED_WITNESS_PUBKEY_HASH:{name:"Unused Witness Pubkey Hash",tooltip:""},UNUSED_NESTED_PUBKEY_HASH:{name:"Unused Nested Pubkey Hash",tooltip:""}};var S=function(t){return t.CHANNELD_NORMAL="Active",t.OPENINGD="Opening",t.CHANNELD_AWAITING_LOCKIN="Pending Open",t.CHANNELD_SHUTTING_DOWN="Shutting Down",t.CLOSINGD_SIGEXCHANGE="Closing: Sig Exchange",t.CLOSINGD_COMPLETE="Closed",t.AWAITING_UNILATERAL="Awaiting Unilateral Close",t.FUNDING_SPEND_SEEN="Funding Spend Seen",t.ONCHAIN="Onchain",t.DUALOPEND_OPEN_INIT="Dual Open Initialized",t.DUALOPEND_AWAITING_LOCKIN="Dual Pending Open",t}({}),E=function(t){return t.INITIATED="Initiated",t.PREIMAGE_REVEALED="Preimage Revealed",t.HTLC_PUBLISHED="HTLC Published",t.SUCCESS="Successful",t.FAILED="Failed",t.INVOICE_SETTLED="Invoice Settled",t}({}),k=function(t){return t.LOOP_OUT="LOOP_OUT",t.LOOP_IN="LOOP_IN",t}({}),T=function(t){return t.SWAP_OUT="SWAP_OUT",t.SWAP_IN="SWAP_IN",t}({}),M=function(t){return t["swap.created"]="Swap Created",t["swap.expired"]="Swap Expired",t["invoice.set"]="Invoice Set",t["invoice.paid"]="Invoice Paid",t["invoice.pending"]="Invoice Pending",t["invoice.settled"]="Invoice Settled",t["invoice.failedToPay"]="Invoice Failed To Pay",t["channel.created"]="Channel Created",t["transaction.failed"]="Transaction Failed",t["transaction.mempool"]="Transaction Mempool",t["transaction.claimed"]="Transaction Claimed",t["transaction.refunded"]="Transaction Refunded",t["transaction.confirmed"]="Transaction Confirmed",t["swap.refunded"]="Swap Refunded",t["swap.abandoned"]="Swap Abandoned",t}({});const L=[{name:"Jan",days:31},{name:"Feb",days:28},{name:"Mar",days:31},{name:"Apr",days:30},{name:"May",days:31},{name:"Jun",days:30},{name:"Jul",days:31},{name:"Aug",days:31},{name:"Sep",days:30},{name:"Oct",days:31},{name:"Nov",days:30},{name:"Dec",days:31}],I=["MONTHLY","YEARLY"];var O=function(t){return t.LOOP="LOOP",t.BOLTZ="BOLTZ",t}({});const D=["password","changeme","moneyprintergobrrr"];var R=function(t){return t.UN_INITIATED="UN_INITIATED",t.INITIATED="INITIATED",t.COMPLETED="COMPLETED",t.ERROR="ERROR",t}({});const N={NO_SPINNER:"No Spinner...",GET_NODE_INFO:"Getting Node Information...",INITALIZE_NODE_DATA:"Initializing Node Data...",GENERATE_NEW_ADDRESS:"Getting New Address...",SEND_FUNDS:"Sending Funds...",UPDATE_CHAN_POLICY:"Updating Channel Policy...",GET_CHAN_POLICY:"Fetching Channel Policy...",GET_REMOTE_POLICY:"Fetching Remote Policy...",CLOSE_CHANNEL:"Closing Channel...",FORCE_CLOSE_CHANNEL:"Force Closing Channel...",OPEN_CHANNEL:"Opening Channel...",CONNECT_PEER:"Connecting Peer...",DISCONNECT_PEER:"Disconnecting Peer...",ADD_INVOICE:"Adding Invoice...",CREATE_INVOICE:"Creating Invoice...",DELETE_INVOICE:"Deleting Invoices...",DECODE_PAYMENT:"Decoding Payment...",DECODE_PAYMENTS:"Decoding Payments...",GET_SENT_PAYMENTS:"Getting Sent Payments...",SEND_PAYMENT:"Sending Payment...",SEND_KEYSEND:"Sending Keysend Payment...",SEARCHING_NODE:"Searching Node...",SEARCHING_CHANNEL:"Searching Channel...",SEARCHING_INVOICE:"Searching Invoice...",BACKUP_CHANNEL:"Backup Channels...",VERIFY_CHANNEL:"Verify Channels...",DOWNLOAD_BACKUP_FILE:"Downloading Backup File...",RESTORE_CHANNEL:"Restoring Channels...",GET_TERMS_QUOTES:"Getting Terms and Quotes...",LABEL_UTXO:"Labelling UTXO...",GET_NODE_ADDRESS:"Getting Node Address...",GEN_SEED:"Generating Seed...",INITIALIZE_WALLET:"Initializing Wallet...",UNLOCK_WALLET:"Unlocking Wallet...",WAIT_SYNC_NODE:"Waiting for Node Sync...",UPDATE_BOLTZ_SETTINGS:"Updating Boltz Service Settings...",UPDATE_LOOP_SETTINGS:"Updating Loop Service Settings...",UPDATE_UI_SETTINGS:"Updating Settings...",UPDATE_NODE_SETTINGS:"Updating Node Settings...",UPDATE_SELECTED_NODE:"Updating Selected Node...",OPEN_CONFIG_FILE:"Opening Config File...",GET_SERVICE_INFO:"Getting Service Info...",GET_QUOTE:"Getting Quotes...",UPDATE_DEFAULT_NODE_SETTING:"Updating Defaule Node Settings...",GET_BOLTZ_SWAPS:"Getting Boltz Swaps...",SIGN_MESSAGE:"Signing Message...",VERIFY_MESSAGE:"Verifying Message...",BUMP_FEE:"Bumping Fee...",LEASE_UTXO:"Leasing UTXO...",GET_LOOP_SWAPS:"Getting List Swaps...",GET_FEE_REPORT:"Getting fee report...",GET_LOOKUP_DETAILS:"Getting lookup details...",GET_RTL_CONFIG:"Getting RTL Config...",VERIFY_TOKEN:"Verify Token..."}},3556:(t,e,i)=>{"use strict";i.d(e,{D:()=>x});var n=i(9063),r=i(9666),s=i(9647),o=i(2041),a=i(9568),l=i(1681),c=i(1816),h=i(5653),u=i(7228),d=i(5963),p=i(9421),f=i(2427),m=i(3929),g=i(5678),y=i(1572),b=i(964),v=i(3869),_=i(1403),w=i(1511);let x=(()=>{class t{constructor(t,e,i,n,s){this.httpClient=t,this.store=e,this.logger=i,this.snackBar=n,this.titleCasePipe=s,this.lnImplementation="LND",this.childAPIUrl=d.T,this.unSubs=[new r.x,new r.x,new r.x,new r.x,new r.x,new r.x,new r.x,new r.x,new r.x,new r.x,new r.x,new r.x,new r.x]}getChildAPIUrl(){return this.childAPIUrl}getLnImplementation(){return this.lnImplementation}setChildAPIUrl(t){switch(this.lnImplementation=t,t){case"CLT":this.childAPIUrl=d.T+"/cl";break;case"ECL":this.childAPIUrl=d.T+"/ecl";break;default:this.childAPIUrl=d.T+"/lnd"}}getFiatRates(){return this.httpClient.get(d.N.CONF_API+"/rates")}decodePayment(t,e){let i=this.childAPIUrl+d.N.PAYREQUEST_API+"/"+t;return"ECL"===this.getLnImplementation()&&(i=this.childAPIUrl+d.N.PAYMENTS_API+"/"+t),this.store.dispatch(new m.Fk(p.m6.DECODE_PAYMENT)),this.httpClient.get(i).pipe((0,a.R)(this.unSubs[0]),(0,l.U)(t=>(this.store.dispatch(new m.Iv(p.m6.DECODE_PAYMENT)),t)),(0,c.K)(t=>(e?this.handleErrorWithoutAlert("Decode Payment",p.m6.DECODE_PAYMENT,t):this.handleErrorWithAlert("decodePaymentData",p.m6.DECODE_PAYMENT,"Decode Payment Failed",this.childAPIUrl+d.N.PAYREQUEST_API,t),(0,s._)(()=>new Error(this.extractErrorMessage(t))))))}decodePayments(t){let e=this.childAPIUrl+d.N.PAYREQUEST_API,i=p.m6.DECODE_PAYMENTS;return"ECL"===this.getLnImplementation()&&(e=this.childAPIUrl+d.N.PAYMENTS_API+"/getsentinfos",i=p.m6.GET_SENT_PAYMENTS),this.store.dispatch(new m.Fk(i)),this.httpClient.post(e,{payments:t}).pipe((0,a.R)(this.unSubs[1]),(0,l.U)(t=>(this.store.dispatch(new m.Iv(i)),t)),(0,c.K)(t=>(this.handleErrorWithAlert("decodePaymentsData",i,i+" Failed",e,t),(0,s._)(()=>new Error(this.extractErrorMessage(t))))))}getAliasesFromPubkeys(t,e){if(e){const e=(new n.LE).set("pubkeys",t);return this.httpClient.get(this.childAPIUrl+d.N.NETWORK_API+"/nodes",{params:e})}return this.httpClient.get(this.childAPIUrl+d.N.NETWORK_API+"/node/"+t)}signMessage(t){return this.store.dispatch(new m.Fk(p.m6.SIGN_MESSAGE)),this.httpClient.post(this.childAPIUrl+d.N.MESSAGE_API+"/sign",{message:t}).pipe((0,a.R)(this.unSubs[2]),(0,l.U)(t=>(this.store.dispatch(new m.Iv(p.m6.SIGN_MESSAGE)),t)),(0,c.K)(t=>(this.handleErrorWithAlert("signMessageData",p.m6.SIGN_MESSAGE,"Sign Message Failed",this.childAPIUrl+d.N.MESSAGE_API+"/sign",t),(0,s._)(()=>new Error(this.extractErrorMessage(t))))))}verifyMessage(t,e){return this.store.dispatch(new m.Fk(p.m6.VERIFY_MESSAGE)),this.httpClient.post(this.childAPIUrl+d.N.MESSAGE_API+"/verify",{message:t,signature:e}).pipe((0,a.R)(this.unSubs[3]),(0,l.U)(t=>(this.store.dispatch(new m.Iv(p.m6.VERIFY_MESSAGE)),t)),(0,c.K)(t=>(this.handleErrorWithAlert("verifyMessageData",p.m6.VERIFY_MESSAGE,"Verify Message Failed",this.childAPIUrl+d.N.MESSAGE_API+"/verify",t),(0,s._)(()=>new Error(this.extractErrorMessage(t))))))}bumpFee(t,e,i,n){const r={txid:t,outputIndex:e};return i&&(r.targetConf=i),n&&(r.satPerByte=n),this.store.dispatch(new m.Fk(p.m6.BUMP_FEE)),this.httpClient.post(this.childAPIUrl+d.N.WALLET_API+"/bumpfee",r).pipe((0,a.R)(this.unSubs[4]),(0,l.U)(t=>(this.store.dispatch(new m.Iv(p.m6.BUMP_FEE)),this.snackBar.open("Successfully bumped the fee. Use the block explorer to verify transaction."),t)),(0,c.K)(t=>(this.handleErrorWithoutAlert("Bump Fee",p.m6.BUMP_FEE,t),(0,s._)(()=>new Error(this.extractErrorMessage(t))))))}labelUTXO(t,e,i=!0){const n={txid:t,label:e,overwrite:i};return this.store.dispatch(new m.Fk(p.m6.LABEL_UTXO)),this.httpClient.post(this.childAPIUrl+d.N.WALLET_API+"/label",n).pipe((0,a.R)(this.unSubs[5]),(0,l.U)(t=>(this.store.dispatch(new m.Iv(p.m6.LABEL_UTXO)),t)),(0,c.K)(t=>(this.handleErrorWithoutAlert("Lease UTXO",p.m6.LABEL_UTXO,t),(0,s._)(()=>new Error(this.extractErrorMessage(t))))))}leaseUTXO(t,e){const i={txid:t,outputIndex:e};return this.store.dispatch(new m.Fk(p.m6.LEASE_UTXO)),this.httpClient.post(this.childAPIUrl+d.N.WALLET_API+"/lease",i).pipe((0,a.R)(this.unSubs[6])).subscribe({next:t=>{this.store.dispatch(new m.Iv(p.m6.LEASE_UTXO)),this.store.dispatch(new g.eL),this.store.dispatch(new g.Zt);const e=new Date(1e3*t.expiration),i=Math.round(e.getTime())-60*e.getTimezoneOffset();this.snackBar.open("The UTXO has been leased till "+new Date(i).toString().substring(4,21).replace(" ","/").replace(" ","/").toUpperCase()+".")},error:t=>(this.handleErrorWithoutAlert("Lease UTXO",p.m6.LEASE_UTXO,t),(0,s._)(()=>new Error(this.extractErrorMessage(t))))})}getForwardingHistory(t,e){const i={end_time:e,start_time:t};return this.store.dispatch(new m.Fk(p.m6.GET_FEE_REPORT)),this.httpClient.post(this.childAPIUrl+d.N.SWITCH_API,i).pipe((0,a.R)(this.unSubs[7]),(0,h.M)(this.store.select("lnd")),(0,u.z)(([t,e])=>{if(t.forwarding_events){const i=[...e.allChannels,...e.closedChannels];t.forwarding_events.forEach(t=>{if(i&&i.length>0)for(let e=0;e(this.handleErrorWithAlert("getForwardingHistoryData",p.m6.GET_FEE_REPORT,"Forwarding History Failed",this.childAPIUrl+d.N.SWITCH_API,t),(0,s._)(()=>new Error(this.extractErrorMessage(t))))))}extractErrorMessage(t,e="Unknown Error."){return this.titleCasePipe.transform(t.error&&t.error.error&&t.error.error.error&&t.error.error.error.error&&t.error.error.error.error.error&&"string"==typeof t.error.error.error.error.error?t.error.error.error.error.error:t.error&&t.error.error&&t.error.error.error&&t.error.error.error.error&&"string"==typeof t.error.error.error.error?t.error.error.error.error:t.error&&t.error.error&&t.error.error.error&&"string"==typeof t.error.error.error?t.error.error.error:t.error&&t.error.error&&"string"==typeof t.error.error?t.error.error:t.error&&"string"==typeof t.error?t.error:t.error&&t.error.error&&t.error.error.error&&t.error.error.error.error&&t.error.error.error.error.message&&"string"==typeof t.error.error.error.error.message?t.error.error.error.error.message:t.error&&t.error.error&&t.error.error.error&&t.error.error.error.message&&"string"==typeof t.error.error.error.message?t.error.error.error.message:t.error&&t.error.error&&t.error.error.message&&"string"==typeof t.error.error.message?t.error.error.message:t.error&&t.error.message&&"string"==typeof t.error.message?t.error.message:t.message&&"string"==typeof t.message?t.message:e)}handleErrorWithoutAlert(t,e,i){this.logger.error("ERROR IN: "+t+"\n"+JSON.stringify(i)),401===i.status&&"Login"!==t?(this.logger.info("Redirecting to Login"),this.store.dispatch(new m.Ac),this.store.dispatch(new m.RD),this.store.dispatch(new m.Lw("Authentication Failed. Redirecting to Login."))):(this.store.dispatch(new m.Iv(e)),this.store.dispatch(new m.np({action:t,status:p.Bn.ERROR,statusCode:i.status.toString(),message:this.extractErrorMessage(i)})))}handleErrorWithAlert(t,e,i,n,r){if(this.logger.error(r),401===r.status)this.logger.info("Redirecting to Login"),this.store.dispatch(new m.Ac),this.store.dispatch(new m.RD),this.store.dispatch(new m.Lw("Authentication Failed. Redirecting to Login."));else{this.store.dispatch(new m.Iv(e));const s=this.extractErrorMessage(r);this.store.dispatch(new m.wu({data:{type:"ERROR",alertTitle:i,message:{code:r.status?r.status:"Unknown Error",message:s,URL:n},component:f.H}})),this.store.dispatch(new m.np({action:t,status:p.Bn.ERROR,statusCode:r.status.toString(),message:s,URL:n}))}}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(y.LFG(n.eN),y.LFG(b.yh),y.LFG(v.mQ),y.LFG(_.ux),y.LFG(w.rS))},t.\u0275prov=y.Yz7({token:t,factory:t.\u0275fac}),t})()},3869:(t,e,i)=>{"use strict";i.d(e,{mQ:()=>a,LG:()=>l});var n=i(5963),r=i(1572);const{isDebugMode:s}=n.N,o=()=>null;let a=(()=>{class t{invokeConsoleMethod(t,e){}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})(),l=(()=>{class t{get info(){return s?console.log.bind(console):o}get warn(){return s?console.warn.bind(console):o}get error(){return s?console.error.bind(console):o}invokeConsoleMethod(t,e){(console[t]||console.log||o).apply(console,[e])}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})()},2969:(t,e,i)=>{"use strict";i.d(e,{W:()=>b});var n=i(9063),r=i(7425),s=i(9666),o=i(9647),a=i(9568),l=i(1816),c=i(1681),h=i(5963),u=i(9421),d=i(2427),p=i(3929),f=i(1572),m=i(3869),g=i(964),y=i(1084);let b=(()=>{class t{constructor(t,e,i,n){this.httpClient=t,this.logger=e,this.store=i,this.commonService=n,this.CHILD_API_URL=h.T+"/lnd",this.loopUrl="",this.swaps=[],this.swapsChanged=new r.X([]),this.unSubs=[new s.x,new s.x,new s.x,new s.x,new s.x]}getSwapsList(){return this.swaps}listSwaps(){this.store.dispatch(new p.Fk(u.m6.GET_LOOP_SWAPS)),this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/swaps",this.httpClient.get(this.loopUrl).pipe((0,a.R)(this.unSubs[0])).subscribe({next:t=>{this.store.dispatch(new p.Iv(u.m6.GET_LOOP_SWAPS)),this.swaps=t,this.swapsChanged.next(this.swaps)},error:t=>this.handleErrorWithAlert(u.m6.GET_LOOP_SWAPS,this.loopUrl,t)})}loopOut(t,e,i,n,r,s,o,a,c,d){const p={amount:t,targetConf:i,swapRoutingFee:n,minerFee:r,prepayRoutingFee:s,prepayAmt:o,swapFee:a,swapPublicationDeadline:c,destAddress:d};return""!==e&&(p.chanId=e),this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/out",this.httpClient.post(this.loopUrl,p).pipe((0,l.K)(t=>this.handleErrorWithoutAlert("Loop Out for Channel: "+e,u.m6.NO_SPINNER,t)))}getLoopOutTerms(){return this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/out/terms",this.httpClient.get(this.loopUrl).pipe((0,l.K)(t=>this.handleErrorWithoutAlert("Loop Out Terms",u.m6.NO_SPINNER,t)))}getLoopOutQuote(t,e,i){let r=new n.LE;return r=r.append("targetConf",e.toString()),r=r.append("swapPublicationDeadline",i.toString()),this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/out/quote/"+t,this.store.dispatch(new p.Fk(u.m6.GET_QUOTE)),this.httpClient.get(this.loopUrl,{params:r}).pipe((0,a.R)(this.unSubs[1]),(0,c.U)(t=>(this.store.dispatch(new p.Iv(u.m6.GET_QUOTE)),t)),(0,l.K)(t=>this.handleErrorWithoutAlert("Loop Out Quote",u.m6.GET_QUOTE,t)))}getLoopOutTermsAndQuotes(t){let e=new n.LE;return e=e.append("targetConf",t.toString()),e=e.append("swapPublicationDeadline",((new Date).getTime()+18e5).toString()),this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/out/termsAndQuotes",this.store.dispatch(new p.Fk(u.m6.GET_TERMS_QUOTES)),this.httpClient.get(this.loopUrl,{params:e}).pipe((0,a.R)(this.unSubs[2]),(0,c.U)(t=>(this.store.dispatch(new p.Iv(u.m6.GET_TERMS_QUOTES)),t)),(0,l.K)(t=>this.handleErrorWithAlert(u.m6.GET_TERMS_QUOTES,this.loopUrl,t)))}loopIn(t,e,i,n,r){const s={amount:t,swapFee:e,minerFee:i,lastHop:n,externalHtlc:r};return this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/in",this.httpClient.post(this.loopUrl,s).pipe((0,l.K)(t=>this.handleErrorWithoutAlert("Loop In",u.m6.NO_SPINNER,t)))}getLoopInTerms(){return this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/in/terms",this.httpClient.get(this.loopUrl).pipe((0,l.K)(t=>this.handleErrorWithoutAlert("Loop In Terms",u.m6.NO_SPINNER,t)))}getLoopInQuote(t,e,i){let r=new n.LE;return r=r.append("targetConf",e.toString()),r=r.append("swapPublicationDeadline",i.toString()),this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/in/quote/"+t,this.store.dispatch(new p.Fk(u.m6.GET_QUOTE)),this.httpClient.get(this.loopUrl,{params:r}).pipe((0,a.R)(this.unSubs[3]),(0,c.U)(t=>(this.store.dispatch(new p.Iv(u.m6.GET_QUOTE)),t)),(0,l.K)(t=>this.handleErrorWithoutAlert("Loop In Qoute",u.m6.GET_QUOTE,t)))}getLoopInTermsAndQuotes(t){let e=new n.LE;return e=e.append("targetConf",t.toString()),e=e.append("swapPublicationDeadline",((new Date).getTime()+18e5).toString()),this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/in/termsAndQuotes",this.store.dispatch(new p.Fk(u.m6.GET_TERMS_QUOTES)),this.httpClient.get(this.loopUrl,{params:e}).pipe((0,a.R)(this.unSubs[4]),(0,c.U)(t=>(this.store.dispatch(new p.Iv(u.m6.GET_TERMS_QUOTES)),t)),(0,l.K)(t=>this.handleErrorWithAlert(u.m6.GET_TERMS_QUOTES,this.loopUrl,t)))}getSwap(t){return this.loopUrl=this.CHILD_API_URL+h.N.LOOP_API+"/swap/"+t,this.httpClient.get(this.loopUrl).pipe((0,l.K)(e=>this.handleErrorWithoutAlert("Loop Get Swap for ID: "+t,u.m6.NO_SPINNER,e)))}handleErrorWithoutAlert(t,e,i){let n="";return this.logger.error("ERROR IN: "+t+"\n"+JSON.stringify(i)),this.store.dispatch(new p.Iv(e)),401===i.status?(n="Unauthorized User.",this.logger.info("Redirecting to Login"),this.store.dispatch(new p.RD)):503===i.status?(n="Unable to Connect to Loop Server.",this.store.dispatch(new p.wu({data:{type:"ERROR",alertTitle:"Loop Not Connected",message:{code:i.status,message:"Unable to Connect to Loop Server",URL:t},component:d.H}}))):n=this.commonService.extractErrorMessage(i),(0,o._)(()=>new Error(n))}handleErrorWithAlert(t,e,i){let n="";return this.logger.error(i),this.store.dispatch(new p.Iv(t)),401===i.status?(n="Unauthorized User.",this.logger.info("Redirecting to Login"),this.store.dispatch(new p.RD)):503===i.status?(n="Unable to Connect to Loop Server.",this.store.dispatch(new p.wu({data:{type:"ERROR",alertTitle:"Loop Not Connected",message:{code:i.status,message:"Unable to Connect to Loop Server",URL:e},component:d.H}}))):(n=this.commonService.extractErrorMessage(i),this.store.dispatch(new p.wu({data:{type:u.n_.ERROR,alertTitle:"ERROR",message:{code:i.error&&i.error.error&&i.error.error.code?i.error.error.code:i.error&&i.error.code?i.error.code:i.code?i.code:i.status,message:n,URL:e},component:d.H}}))),(0,o._)(()=>new Error(n))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(f.LFG(n.eN),f.LFG(m.mQ),f.LFG(g.yh),f.LFG(y.v))},t.\u0275prov=f.Yz7({token:t,factory:t.\u0275fac}),t})()},3191:(t,e,i)=>{"use strict";i.d(e,{m:()=>s});var n=i(9666),r=i(1572);let s=(()=>{class t{constructor(){this.sessionSub=new n.x}watchSession(){return this.sessionSub.asObservable()}getItem(t){return sessionStorage.getItem(t)}getAllItems(){return sessionStorage}setItem(t,e){sessionStorage.setItem(t,e),this.sessionSub.next(sessionStorage)}removeItem(t){sessionStorage.removeItem(t),this.sessionSub.next(sessionStorage)}clearAll(){sessionStorage.clear(),this.sessionSub.next(sessionStorage)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})()},253:(t,e,i)=>{"use strict";i.d(e,{m:()=>it});var n=i(1511),r=i(6853),s=i(6073),o=i(9063),a=i(7592),l=i(1572),c=i(1463),h=i(377),u=i(3722);i(9861),new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map,new Map;let d=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=l.oAB({type:t}),t.\u0275inj=l.cJS({imports:[[c.IR]]}),t})();new l.GfV("12.0.0-beta.34");let p=(()=>{class t{constructor(t,e){(0,n.PM)(e)&&!t&&console.warn("Warning: Flex Layout loaded on the server without FlexLayoutServerModule")}static withConfig(e,i=[]){return{ngModule:t,providers:e.serverLoaded?[{provide:c.WU,useValue:Object.assign(Object.assign({},c.g5),e)},{provide:c.Bs,useValue:i,multi:!0},{provide:c.wY,useValue:!0}]:[{provide:c.WU,useValue:Object.assign(Object.assign({},c.g5),e)},{provide:c.Bs,useValue:i,multi:!0}]}}}return t.\u0275fac=function(e){return new(e||t)(l.LFG(c.wY),l.LFG(l.Lbi))},t.\u0275mod=l.oAB({type:t}),t.\u0275inj=l.cJS({imports:[[u.ae,h.aT,d],u.ae,h.aT,d]}),t})();var f=i(72),m=i(1522),g=i(4608),y=i(84),b=i(1050),v=i(5980);i(4230),i(4621);let _=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=l.oAB({type:t}),t.\u0275inj=l.cJS({imports:[[m.BQ,m.si],m.BQ]}),t})();var w=i(7439),x=i(9236),C=i(5812),A=i(5001),S=i(7271),E=i(3691),k=i(6756),T=i(5250),M=i(8055),L=i(3005),I=i(5994),O=i(7806),D=i(4810),R=i(4786),N=i(5122),P=i(7521);i(5842),i(3490),i(1353),i(6042),i(2526);let F=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=l.oAB({type:t}),t.\u0275inj=l.cJS({imports:[[n.ez,m.BQ],m.BQ]}),t})();var Z=i(1403),B=i(2464),U=i(7753),q=i(7033),z=i(5109),H=i(3104),Y=i(6828),G=i(1010),j=i(1905),V=i(3600),Q=i(7038),W=i(369);let J=(()=>{class t extends W.Xj{_createContainer(){const t=document.createElement("div");t.classList.add("cdk-overlay-container"),document.getElementById("rtl-container").appendChild(t),this._containerElement=t}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=l.n5z(t)))(i||t)}}(),t.\u0275prov=l.Yz7({token:t,factory:t.\u0275fac}),t})();var X=i(3869),K=i(9421);const $={suppressScrollX:!1,suppressScrollY:!1};let tt=(()=>{class t extends m.LF{format(t,e){if("input"===e){let e=t.getDate().toString();return e=+e<10?"0"+e:e,e+"/"+K.gg[t.getMonth()].name.toUpperCase()+"/"+t.getFullYear()}return K.gg[t.getMonth()].name.toUpperCase()+" "+t.getFullYear()}}return t.\u0275fac=function(){let e;return function(i){return(e||(e=l.n5z(t)))(i||t)}}(),t.\u0275prov=l.Yz7({token:t,factory:t.\u0275fac}),t})();const et={parse:{dateInput:{day:"numeric",month:"short",year:"numeric"}},display:{dateInput:"input",monthYearLabel:{month:"short",year:"numeric"},dateA11yLabel:{day:"numeric",month:"short",year:"numeric"},monthYearA11yLabel:{month:"short",year:"numeric"}}};let it=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=l.oAB({type:t}),t.\u0275inj=l.cJS({providers:[{provide:X.mQ,useClass:X.LG},{provide:Q.op,useValue:$},{provide:Z.Ve,useValue:{duration:2e3,verticalPosition:"bottom",panelClass:"rtl-snack-bar"}},{provide:g.Bq,useValue:{hasBackdrop:!0,autoFocus:!0,disableClose:!0,role:"dialog",width:"55%"}},{provide:m._A,useClass:tt},{provide:m.sG,useValue:et},{provide:W.Xj,useClass:J},n.JJ,n.rS,n.uU],imports:[[n.ez,s.u5,s.UX,a.uH,p,f.xu,g.Is,v.ot,_,w.QW,x.p9,A.To,S.N6,C.FA,m.XK,E.Ps,k.c,T.ie,M.Tx,I.Cv,O.Cq,D.Fk,G.dp,R.LD,N.SJ,P.rP,B.JX,q.p0,H.g0,Y.AV,b.g,L.TU,U.T5,F,z.Nh,Z.ZX,y.Bb,j.a4,V.N,r.Bz,o.JF,Q.Xd],s.u5,s.UX,a.uH,p,f.xu,g.Is,v.ot,_,w.QW,x.p9,A.To,S.N6,C.FA,m.XK,E.Ps,k.c,T.ie,M.Tx,I.Cv,O.Cq,D.Fk,G.dp,R.LD,N.SJ,P.rP,B.JX,q.p0,H.g0,Y.AV,b.g,L.TU,U.T5,F,z.Nh,Z.ZX,y.Bb,j.a4,V.N,Q.Xd]}),t})()},3929:(t,e,i)=>{"use strict";i.d(e,{Zn:()=>n,SK:()=>r,O3:()=>s,dh:()=>o,VO:()=>a,mm:()=>l,ow:()=>c,S7:()=>h,fW:()=>u,r3:()=>d,yL:()=>p,Vt:()=>f,oO:()=>m,Ih:()=>g,mG:()=>y,vH:()=>b,rZ:()=>v,Ol:()=>_,xh:()=>w,RP:()=>x,Tb:()=>C,zH:()=>A,s3:()=>S,JU:()=>E,ym:()=>k,gK:()=>T,Nv:()=>M,bk:()=>L,Gs:()=>I,bE:()=>O,BQ:()=>D,np:()=>R,Ac:()=>N,Lw:()=>P,Fk:()=>F,Iv:()=>Z,wu:()=>B,YY:()=>U,b_:()=>q,Ws:()=>z,fD:()=>H,Fj:()=>Y,uQ:()=>G,$A:()=>j,XF:()=>V,j_:()=>Q,z2:()=>W,ZG:()=>J,wq:()=>X,e6:()=>K,RD:()=>$,tq:()=>tt,ZF:()=>et,m3:()=>it,nw:()=>nt});const n="VOID",r="UPDATE_SELECTED_NODE_OPTIONS",s="UPDATE_API_CALL_STATUS_ROOT",o="RESET_ROOT_STORE",a="CLOSE_ALL_DIALOGS",l="OPEN_SNACKBAR",c="OPEN_SPINNER",h="CLOSE_SPINNER",u="OPEN_ALERT",d="CLOSE_ALERT",p="OPEN_CONFIRMATION",f="CLOSE_CONFIRMATION",m="SHOW_PUBKEY",g="FETCH_CONFIG",y="SHOW_CONFIG",b="FETCH_RTL_CONFIG",v="SET_RTL_CONFIG",_="SAVE_SETTINGS",w="TWO_FA_SAVE_SETTINGS",x="SET_SELECTED_NODE",C="UPDATE_SERVICE_SETTINGS",A="SET_NODE_DATA",S="IS_AUTHORIZED",E="IS_AUTHORIZED_RES",k="LOGIN",T="VERIFY_TWO_FA",M="LOGOUT",L="RESET_PASSWORD",I="RESET_PASSWORD_RES",O="FETCH_FILE",D="SHOW_FILE";class R{constructor(t){this.payload=t,this.type=s}}class N{constructor(){this.type=a}}class P{constructor(t){this.payload=t,this.type=l}}class F{constructor(t){this.payload=t,this.type=c}}class Z{constructor(t){this.payload=t,this.type=h}}class B{constructor(t){this.payload=t,this.type=u}}class U{constructor(t){this.payload=t,this.type=d}}class q{constructor(t){this.payload=t,this.type=p}}class z{constructor(t){this.payload=t,this.type=f}}class H{constructor(){this.type=m}}class Y{constructor(t){this.payload=t,this.type=g}}class G{constructor(){this.type=r}}class j{constructor(t){this.payload=t,this.type=o}}class V{constructor(){this.type=b}}class Q{constructor(t){this.payload=t,this.type=_}}class W{constructor(t){this.payload=t,this.type=w}}class J{constructor(t){this.payload=t,this.type=x}}class X{constructor(t){this.payload=t,this.type=C}}class K{constructor(t){this.payload=t,this.type=A}}class ${constructor(){this.type=M}}class tt{constructor(t){this.payload=t,this.type=L}}class et{constructor(t){this.payload=t,this.type=S}}class it{constructor(t){this.payload=t,this.type=k}}class nt{constructor(t){this.payload=t,this.type=O}}},8914:(t,e,i)=>{"use strict";i.d(e,{V:()=>oe});var n=i(5573),r=i(9666),s=i(2041),o=i(2391),a=i(6891),l=i(1681),c=i(9056),h=i(5653),u=i(7228),d=i(1816),p=i(9568),f=i(5963),m=i(9421),g=i(4608),y=i(1572),b=i(3722),v=i(7806);let _=(()=>{class t{constructor(t,e){this.dialogRef=t,this.data=e}}return t.\u0275fac=function(e){return new(e||t)(y.Y36(g.so),y.Y36(g.WI))},t.\u0275cmp=y.Xpm({type:t,selectors:[["rtl-spinner-dialog"]],decls:5,vars:1,consts:[[1,"spinner-container"],["fxLayout","column","fxLayoutAlign","center center",1,"spinner-circle"]],template:function(t,e){1&t&&(y.TgZ(0,"div",0),y.TgZ(1,"div",1),y._UZ(2,"mat-spinner"),y.TgZ(3,"h1"),y._uU(4),y.qZA(),y.qZA(),y.qZA()),2&t&&(y.xp6(4),y.Oqu(e.data.titleMessage))},directives:[b.xw,b.Wh,v.$g],styles:[".spinner-container[_ngcontent-%COMP%]{position:absolute;left:40%;top:35%}"]}),t})();var w=i(3869),x=i(1403),C=i(1084),A=i(1511),S=i(377),E=i(7439),k=i(5980),T=i(3600),M=i(7038),L=i(3691),I=i(6880),O=i(2609),D=i(7679);const R=["scrollContainer"];function N(t,e){if(1&t&&y._UZ(0,"qrcode",15),2&t){const t=y.oxw();y.Q6J("qrdata",t.showQRField)("margin",2)("width",240)("errorCorrectionLevel","L")("allowEmptyString",!0)}}function P(t,e){1&t&&y.GkF(0)}const F=function(t){return{"h-40":t}};function Z(t,e){if(1&t&&(y.ynx(0),y.TgZ(1,"mat-card-content",16,17),y.YNc(3,P,1,0,"ng-container",18),y.qZA(),y.BQk()),2&t){const t=y.oxw(),e=y.MAs(20);y.xp6(1),y.Q6J("ngClass",y.VKq(2,F,t.data.scrollable)),y.xp6(2),y.Q6J("ngTemplateOutlet",e)}}function B(t,e){1&t&&y.GkF(0)}function U(t,e){if(1&t&&(y.ynx(0),y.TgZ(1,"mat-card-content",19),y.YNc(2,B,1,0,"ng-container",18),y.qZA(),y.BQk()),2&t){y.oxw();const t=y.MAs(20);y.xp6(2),y.Q6J("ngTemplateOutlet",t)}}function q(t,e){1&t&&(y.TgZ(0,"mat-icon",23),y._uU(1,"arrow_downward"),y.qZA())}function z(t,e){1&t&&(y.TgZ(0,"mat-icon",23),y._uU(1,"arrow_upward"),y.qZA())}function H(t,e){if(1&t){const t=y.EpF();y.TgZ(0,"div",20),y.TgZ(1,"button",21),y.NdJ("click",function(){return y.CHM(t),y.oxw().onScroll()}),y.YNc(2,q,2,0,"mat-icon",22),y.YNc(3,z,2,0,"mat-icon",22),y.qZA(),y.qZA()}if(2&t){const t=y.oxw();y.xp6(2),y.Q6J("ngIf","DOWN"===t.scrollDirection),y.xp6(1),y.Q6J("ngIf","UP"===t.scrollDirection)}}function Y(t,e){1&t&&(y.TgZ(0,"button",24),y._uU(1,"OK"),y.qZA()),2&t&&y.Q6J("mat-dialog-close",!1)}function G(t,e){1&t&&(y.TgZ(0,"button",25),y._uU(1,"Close"),y.qZA()),2&t&&y.Q6J("mat-dialog-close",!1)}function j(t,e){if(1&t){const t=y.EpF();y.TgZ(0,"button",26),y.NdJ("copied",function(e){return y.CHM(t),y.oxw().onCopyField(e)}),y._uU(1),y.qZA()}if(2&t){const t=y.oxw();y.Q6J("payload",t.showCopyField),y.xp6(1),y.hij("Copy ",t.showCopyName,"")}}function V(t,e){1&t&&(y.TgZ(0,"button",25),y._uU(1,"Close"),y.qZA()),2&t&&y.Q6J("mat-dialog-close",!1)}function Q(t,e){if(1&t){const t=y.EpF();y.TgZ(0,"button",26),y.NdJ("copied",function(e){return y.CHM(t),y.oxw().onCopyField(e)}),y._uU(1),y.qZA()}if(2&t){const t=y.oxw();y.Q6J("payload",t.showQRField),y.xp6(1),y.hij("Copy ",t.showQRName,"")}}function W(t,e){if(1&t&&y._UZ(0,"qrcode",15),2&t){const t=y.oxw(2);y.Q6J("qrdata",t.showQRField)("margin",2)("width",240)("errorCorrectionLevel","L")("allowEmptyString",!0)}}function J(t,e){if(1&t&&(y.TgZ(0,"p",32),y._uU(1),y.qZA()),2&t){const t=y.oxw(2);y.xp6(1),y.Oqu(t.data.titleMessage)}}function X(t,e){1&t&&y._UZ(0,"span",46),2&t&&y.Q6J("innerHTML",e.$implicit,y.oJD)}function K(t,e){if(1&t&&(y.ynx(0),y.YNc(1,X,1,1,"span",45),y.BQk()),2&t){const t=y.oxw(2).$implicit;y.xp6(1),y.Q6J("ngForOf",t.value)}}function $(t,e){if(1&t&&(y.ynx(0),y._uU(1),y.ALo(2,"date"),y.BQk()),2&t){const t=y.oxw(2).$implicit;y.xp6(1),y.Oqu(y.xi3(2,1,1e3*t.value,"dd/MMM/YYYY HH:mm"))}}function tt(t,e){if(1&t&&(y.ynx(0),y._uU(1),y.ALo(2,"number"),y.BQk()),2&t){const t=y.oxw(2).$implicit;y.xp6(1),y.Oqu(y.xi3(2,1,t.value,t.digitsInfo?t.digitsInfo:"1.0-3"))}}function et(t,e){if(1&t&&(y.ynx(0),y._uU(1),y.BQk()),2&t){const t=y.oxw(2).$implicit;y.xp6(1),y.Oqu(t.value?"True":"False")}}function it(t,e){1&t&&(y.TgZ(0,"mat-icon",51),y._uU(1,"info"),y.qZA())}const nt=function(t){return{"failed-status":t}};function rt(t,e){if(1&t&&(y.TgZ(0,"p",49),y._uU(1),y.YNc(2,it,2,0,"mat-icon",50),y.qZA()),2&t){const t=y.oxw(3).$implicit,e=y.oxw(4);y.Q6J("ngClass",y.VKq(3,nt,t.value===e.LoopStateEnum.FAILED)),y.xp6(1),y.hij(" ",t.value," "),y.xp6(1),y.Q6J("ngIf",t.value===e.LoopStateEnum.FAILED)}}function st(t,e){if(1&t&&y._uU(0),2&t){const t=y.oxw(3).$implicit;y.Oqu(t.value)}}function ot(t,e){if(1&t&&(y.ynx(0),y.YNc(1,rt,3,5,"p",47),y.YNc(2,st,1,1,"ng-template",null,48,y.W1O),y.BQk()),2&t){const t=y.MAs(3),e=y.oxw(2).$implicit,i=y.oxw(4);y.xp6(1),y.Q6J("ngIf","SWAP"===i.data.openedBy&&"state"===e.key)("ngIfElse",t)}}function at(t,e){if(1&t&&(y.TgZ(0,"span"),y.TgZ(1,"span",42),y.YNc(2,K,2,1,"ng-container",43),y.YNc(3,$,3,4,"ng-container",43),y.YNc(4,tt,3,4,"ng-container",43),y.YNc(5,et,2,1,"ng-container",43),y.YNc(6,ot,4,2,"ng-container",44),y.qZA(),y.qZA()),2&t){const t=y.oxw().$implicit,e=y.oxw(4);y.xp6(1),y.Q6J("ngSwitch",t.type),y.xp6(1),y.Q6J("ngSwitchCase",e.dataTypeEnum.ARRAY),y.xp6(1),y.Q6J("ngSwitchCase",e.dataTypeEnum.DATE_TIME),y.xp6(1),y.Q6J("ngSwitchCase",e.dataTypeEnum.NUMBER),y.xp6(1),y.Q6J("ngSwitchCase",e.dataTypeEnum.BOOLEAN)}}function lt(t,e){1&t&&(y.TgZ(0,"span",52),y._uU(1,"\xa0"),y.qZA())}function ct(t,e){if(1&t&&(y.TgZ(0,"div",37),y.TgZ(1,"h4",38),y._uU(2),y.qZA(),y.YNc(3,at,7,5,"span",39),y.YNc(4,lt,2,0,"ng-template",null,40,y.W1O),y._UZ(6,"mat-divider",41),y.qZA()),2&t){const t=e.$implicit,i=y.MAs(5);y.s9C("fxFlex.gt-md",t.width),y.xp6(2),y.Oqu(t.title),y.xp6(1),y.Q6J("ngIf",t&&(!!t.value||0===t.value))("ngIfElse",i)}}function ht(t,e){if(1&t&&(y.TgZ(0,"div"),y.TgZ(1,"div",35),y.YNc(2,ct,7,4,"div",36),y.qZA(),y.qZA()),2&t){const t=e.$implicit;y.xp6(2),y.Q6J("ngForOf",t)}}function ut(t,e){if(1&t&&(y.TgZ(0,"div",33),y.YNc(1,ht,3,1,"div",34),y.qZA()),2&t){const t=y.oxw(2);y.xp6(1),y.Q6J("ngForOf",t.messageObjs)}}const dt=function(t){return{"display-none":t}};function pt(t,e){if(1&t&&(y.TgZ(0,"div",27),y.TgZ(1,"div",28),y.YNc(2,W,1,5,"qrcode",2),y.qZA(),y.TgZ(3,"div",29),y.YNc(4,J,2,1,"p",30),y.YNc(5,ut,2,1,"div",31),y.qZA(),y.qZA()),2&t){const t=y.oxw();y.xp6(1),y.Q6J("ngClass",y.VKq(4,dt,""===t.showQRField||t.screenSize!==t.screenSizeEnum.XS&&t.screenSize!==t.screenSizeEnum.SM)),y.xp6(1),y.Q6J("ngIf",""!==t.showQRField),y.xp6(2),y.Q6J("ngIf",t.data.titleMessage),y.xp6(1),y.Q6J("ngIf",(null==t.messageObjs?null:t.messageObjs.length)>0)}}let ft=(()=>{class t{constructor(t,e,i,n,r,s){this.dialogRef=t,this.data=e,this.logger=i,this.snackBar=n,this.commonService=r,this.renderer=s,this.LoopStateEnum=m.Fq,this.showQRField="",this.showQRName="",this.showCopyName="",this.showCopyField="",this.errorMessage="",this.messageObjs=[],this.alertTypeEnum=m.n_,this.dataTypeEnum=m.Gi,this.screenSize="",this.screenSizeEnum=m.cu,this.scrollDirection="DOWN",this.shouldScroll=!0}set container(t){t&&(this.scrollContainer=t,this.scrollContainer&&this.scrollContainer.nativeElement&&(this.unlistenEnd=this.renderer.listen(this.scrollContainer.nativeElement,"ps-y-reach-end",t=>{this.scrollDirection="UP"}),this.unlistenStart=this.renderer.listen(this.scrollContainer.nativeElement,"ps-y-reach-start",t=>{this.scrollDirection="DOWN"})))}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.messageObjs=this.data.message,this.showQRField=this.data.showQRField?this.data.showQRField:"",this.showQRName=this.data.showQRName?this.data.showQRName:"",this.showCopyName=this.data.showCopyName?this.data.showCopyName:"",this.showCopyField=this.data.showCopyField?this.data.showCopyField:"",this.data.type===m.n_.ERROR&&!this.data.message&&!this.data.titleMessage&&this.messageObjs.length<=0&&(this.data.titleMessage="Please Check Server Connection"),this.logger.info(this.messageObjs)}ngAfterViewChecked(){setTimeout(()=>{this.shouldScroll=this.scrollContainer&&this.scrollContainer.nativeElement&&this.scrollContainer.nativeElement.classList.value.includes("ps--active-y")},500)}onScroll(){this.scrollContainer.nativeElement.scrollTop="DOWN"===this.scrollDirection?this.scrollContainer.nativeElement.scrollTop+62.6:this.scrollContainer.nativeElement.scrollTop-62.6}onCopyField(t){this.snackBar.open((this.showQRName?this.showQRName:this.showCopyName)+" copied."),this.logger.info("Copied Text: "+t)}onClose(){this.dialogRef.close(!1)}ngOnDestroy(){this.unlistenStart&&this.unlistenStart(),this.unlistenEnd&&this.unlistenEnd()}}return t.\u0275fac=function(e){return new(e||t)(y.Y36(g.so),y.Y36(g.WI),y.Y36(w.mQ),y.Y36(x.ux),y.Y36(C.v),y.Y36(y.Qsj))},t.\u0275cmp=y.Xpm({type:t,selectors:[["rtl-alert-message"]],viewQuery:function(t,e){if(1&t&&y.Gf(R,5),2&t){let t;y.iGM(t=y.CRH())&&(e.container=t.first)}},decls:21,vars:14,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","30","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString",4,"ngIf"],[3,"fxFlex"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","start end","class","btn-sticky-container padding-gap-x-large",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"padding-gap-x-large","padding-gap-bottom-large"],["tabindex","1","autoFocus","","mat-flat-button","","color","primary","type","submit","default","",3,"mat-dialog-close",4,"ngIf"],["class","mr-1","fxLayoutAlign","center center","tabindex","1","mat-stroked-button","","color","primary","type","button","default","",3,"mat-dialog-close",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["contentBlock",""],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString"],[1,"padding-gap-x-large",3,"perfectScrollbar","ngClass"],["scrollContainer",""],[4,"ngTemplateOutlet"],[1,"padding-gap-x-large"],["fxLayout","row","fxLayoutAlign","start end",1,"btn-sticky-container","padding-gap-x-large"],["mat-mini-fab","","aria-label","Scroll","fxLayoutAlign","center center",3,"click"],["fxLayoutAlign","center center",4,"ngIf"],["fxLayoutAlign","center center"],["tabindex","1","autoFocus","","mat-flat-button","","color","primary","type","submit","default","",3,"mat-dialog-close"],["fxLayoutAlign","center center","tabindex","1","mat-stroked-button","","color","primary","type","button","default","",1,"mr-1",3,"mat-dialog-close"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["fxLayout","column"],["fxFlex","50","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large","mb-1",3,"ngClass"],["fxLayout","row","fxFlex","100"],["fxLayoutAlign","start center","class","pb-1",4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxLayoutAlign","start center",1,"pb-1"],["fxFlex","100"],[4,"ngFor","ngForOf"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","start center","fxLayoutAlign.gt-md","space-between start"],["fxLayout","column","fxFlex","100",3,"fxFlex.gt-md",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100",3,"fxFlex.gt-md"],["fxLayoutAlign","start",1,"font-bold-500"],[4,"ngIf","ngIfElse"],["emptyField",""],[1,"w-100","my-1"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"foreground-secondary-text",3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],["class","display-block w-100",3,"innerHTML",4,"ngFor","ngForOf"],[1,"display-block","w-100",3,"innerHTML"],["fxLayout","row",3,"ngClass",4,"ngIf","ngIfElse"],["noStyleBlock",""],["fxLayout","row",3,"ngClass"],["fxLayoutAlign","end end","class","icon-failed-status",4,"ngIf"],["fxLayoutAlign","end end",1,"icon-failed-status"],["fxFlex","100",1,"foreground-secondary-text"]],template:function(t,e){1&t&&(y.TgZ(0,"div",0),y.TgZ(1,"div",1),y.YNc(2,N,1,5,"qrcode",2),y.qZA(),y.TgZ(3,"div",3),y.TgZ(4,"mat-card-header",4),y.TgZ(5,"div",5),y.TgZ(6,"span",6),y._uU(7),y.qZA(),y.qZA(),y.TgZ(8,"button",7),y.NdJ("click",function(){return e.onClose()}),y._uU(9,"X"),y.qZA(),y.qZA(),y.YNc(10,Z,4,4,"ng-container",8),y.YNc(11,U,3,1,"ng-container",8),y.YNc(12,H,4,2,"div",9),y.TgZ(13,"div",10),y.YNc(14,Y,2,1,"button",11),y.YNc(15,G,2,1,"button",12),y.YNc(16,j,2,2,"button",13),y.YNc(17,V,2,1,"button",12),y.YNc(18,Q,2,2,"button",13),y.qZA(),y.qZA(),y.qZA(),y.YNc(19,pt,6,6,"ng-template",null,14,y.W1O)),2&t&&(y.xp6(1),y.Q6J("ngClass",y.VKq(12,dt,""===e.showQRField||e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM)),y.xp6(1),y.Q6J("ngIf",""!==e.showQRField),y.xp6(1),y.Q6J("fxFlex",""===e.showQRField||e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM?"100":"70"),y.xp6(4),y.Oqu(e.data.alertTitle||e.alertTypeEnum[e.data.type]),y.xp6(3),y.Q6J("ngIf",e.data.scrollable),y.xp6(1),y.Q6J("ngIf",!e.data.scrollable),y.xp6(1),y.Q6J("ngIf",e.data.scrollable&&e.shouldScroll),y.xp6(2),y.Q6J("ngIf",(!e.showQRField||""===e.showQRField)&&""===e.showCopyName),y.xp6(1),y.Q6J("ngIf",""!==e.showCopyName),y.xp6(1),y.Q6J("ngIf",""!==e.showCopyName),y.xp6(1),y.Q6J("ngIf",""!==e.showQRField),y.xp6(1),y.Q6J("ngIf",""!==e.showQRField))},directives:[b.xw,b.Wh,b.yH,A.mk,S.oO,A.O5,E.dk,k.lW,T.V,E.dn,M.$V,A.tP,L.Hw,I.h,g.ZT,O.y,A.sg,D.d,A.RF,A.n9,A.ED],pipes:[A.uU,A.JJ],styles:[".display-block[_ngcontent-%COMP%]{display:block}"]}),t})();var mt=i(5291),gt=i(3929),yt=i(964),bt=i(6073),vt=i(7592),_t=i(6283),wt=i(6756),xt=i(5095);function Ct(t,e){if(1&t&&(y.TgZ(0,"div",17),y._UZ(1,"fa-icon",18),y.TgZ(2,"span"),y._uU(3),y.qZA(),y.qZA()),2&t){const t=y.oxw();y.xp6(1),y.Q6J("icon",t.faExclamationTriangle),y.xp6(2),y.Oqu(t.warningMessage)}}function At(t,e){if(1&t&&(y.TgZ(0,"div",19),y._UZ(1,"fa-icon",18),y.TgZ(2,"span"),y._uU(3),y.qZA(),y.qZA()),2&t){const t=y.oxw();y.xp6(1),y.Q6J("icon",t.faInfoCircle),y.xp6(2),y.Oqu(t.informationMessage)}}function St(t,e){if(1&t&&(y.TgZ(0,"p",20),y._uU(1),y.qZA()),2&t){const t=y.oxw();y.xp6(1),y.Oqu(t.data.titleMessage)}}function Et(t,e){if(1&t&&(y.TgZ(0,"span",33),y._uU(1),y.qZA()),2&t){const t=e.$implicit;y.xp6(1),y.Oqu(t)}}function kt(t,e){if(1&t&&(y.ynx(0),y.YNc(1,Et,2,1,"span",32),y.BQk()),2&t){const t=y.oxw(2).$implicit;y.xp6(1),y.Q6J("ngForOf",t.value)}}function Tt(t,e){if(1&t&&(y.ynx(0),y._uU(1),y.ALo(2,"date"),y.BQk()),2&t){const t=y.oxw(2).$implicit;y.xp6(1),y.Oqu(y.xi3(2,1,1e3*t.value,"dd/MMM/YYYY HH:mm"))}}function Mt(t,e){if(1&t&&(y.ynx(0),y._uU(1),y.ALo(2,"number"),y.BQk()),2&t){const t=y.oxw(2).$implicit;y.xp6(1),y.Oqu(y.xi3(2,1,t.value,"1.0-3"))}}function Lt(t,e){if(1&t&&(y.ynx(0),y._uU(1),y.BQk()),2&t){const t=y.oxw(2).$implicit;y.xp6(1),y.Oqu(!0===t.value?"True":"False")}}function It(t,e){if(1&t&&(y.ynx(0),y._uU(1),y.BQk()),2&t){const t=y.oxw(2).$implicit;y.xp6(1),y.Oqu(t.value)}}function Ot(t,e){if(1&t&&(y.TgZ(0,"span"),y.TgZ(1,"span",29),y.YNc(2,kt,2,1,"ng-container",30),y.YNc(3,Tt,3,4,"ng-container",30),y.YNc(4,Mt,3,4,"ng-container",30),y.YNc(5,Lt,2,1,"ng-container",30),y.YNc(6,It,2,1,"ng-container",31),y.qZA(),y.qZA()),2&t){const t=y.oxw().$implicit,e=y.oxw(3);y.xp6(1),y.Q6J("ngSwitch",t.type),y.xp6(1),y.Q6J("ngSwitchCase",e.dataTypeEnum.ARRAY),y.xp6(1),y.Q6J("ngSwitchCase",e.dataTypeEnum.DATE_TIME),y.xp6(1),y.Q6J("ngSwitchCase",e.dataTypeEnum.NUMBER),y.xp6(1),y.Q6J("ngSwitchCase",e.dataTypeEnum.BOOLEAN)}}function Dt(t,e){1&t&&(y.TgZ(0,"span",34),y._uU(1,"\xa0"),y.qZA())}function Rt(t,e){if(1&t&&(y.TgZ(0,"div",24),y.TgZ(1,"h4",25),y._uU(2),y.qZA(),y.YNc(3,Ot,7,5,"span",26),y.YNc(4,Dt,2,0,"ng-template",null,27,y.W1O),y._UZ(6,"mat-divider",28),y.qZA()),2&t){const t=e.$implicit,i=y.MAs(5);y.s9C("fxFlex.gt-md",t.width),y.xp6(2),y.Oqu(t.title),y.xp6(1),y.Q6J("ngIf",t&&t.value)("ngIfElse",i)}}function Nt(t,e){if(1&t&&(y.TgZ(0,"div"),y.TgZ(1,"div",22),y.YNc(2,Rt,7,4,"div",23),y.qZA(),y.qZA()),2&t){const t=e.$implicit;y.xp6(2),y.Q6J("ngForOf",t)}}function Pt(t,e){if(1&t&&(y.TgZ(0,"div"),y.YNc(1,Nt,3,1,"div",21),y.qZA()),2&t){const t=y.oxw();y.xp6(1),y.Q6J("ngForOf",t.messageObjs)}}function Ft(t,e){if(1&t&&(y.TgZ(0,"p",20),y._uU(1),y.qZA()),2&t){const t=y.oxw(2);y.xp6(1),y.Oqu(t.data.titleMessage)}}function Zt(t,e){if(1&t){const t=y.EpF();y.TgZ(0,"input",41),y.NdJ("ngModelChange",function(e){return y.CHM(t),y.oxw().$implicit.inputValue=e}),y.ALo(1,"lowercase"),y.qZA()}if(2&t){const t=y.oxw(),e=t.index,i=t.$implicit;y.MGl("name","input",e,""),y.Q6J("placeholder",i.placeholder)("min",i.min)("step",i.step)("type",y.lcZ(1,7,i.inputType))("ngModel",i.inputValue)("tabindex",e+1)}}function Bt(t,e){if(1&t){const t=y.EpF();y.TgZ(0,"input",42),y.NdJ("ngModelChange",function(e){return y.CHM(t),y.oxw().$implicit.inputValue=e}),y.ALo(1,"lowercase"),y.qZA()}if(2&t){const t=y.oxw(),e=t.index,i=t.$implicit;y.MGl("name","input",e,""),y.Q6J("placeholder",i.placeholder)("min",i.min)("step",i.step)("type",y.lcZ(1,7,i.inputType))("ngModel",i.inputValue)("tabindex",e+1)}}function Ut(t,e){if(1&t&&(y.TgZ(0,"mat-error"),y._uU(1),y.qZA()),2&t){const t=y.oxw().$implicit;y.xp6(1),y.hij("",t.placeholder," is required.")}}function qt(t,e){if(1&t&&(y.TgZ(0,"mat-form-field",38),y.YNc(1,Zt,2,9,"input",39),y.YNc(2,Bt,2,9,"input",40),y.YNc(3,Ut,2,1,"mat-error",11),y.TgZ(4,"mat-hint"),y._uU(5),y.qZA(),y.qZA()),2&t){const t=e.$implicit,i=e.index;y.Q6J("fxFlex",t.width),y.xp6(1),y.Q6J("ngIf",0===i),y.xp6(1),y.Q6J("ngIf",0!==i),y.xp6(1),y.Q6J("ngIf",!t.inputValue),y.xp6(2),y.Oqu(t.hintFunction?t.hintFunction(t.inputValue):t.hintText)}}function zt(t,e){if(1&t&&(y.TgZ(0,"div",35),y.YNc(1,Ft,2,1,"p",10),y.TgZ(2,"div",36),y.YNc(3,qt,6,5,"mat-form-field",37),y.qZA(),y.qZA()),2&t){const t=y.oxw();y.xp6(1),y.Q6J("ngIf",t.data.titleMessage),y.xp6(2),y.Q6J("ngForOf",t.getInputs)}}function Ht(t,e){if(1&t){const t=y.EpF();y.TgZ(0,"button",43),y.NdJ("click",function(){y.CHM(t);const e=y.oxw();return e.onClose(e.getInputs)}),y._uU(1),y.qZA()}if(2&t){const t=y.oxw();y.xp6(1),y.Oqu(t.yesBtnText)}}function Yt(t,e){if(1&t){const t=y.EpF();y.TgZ(0,"button",44),y.NdJ("click",function(){return y.CHM(t),y.oxw().onClose(!0)}),y._uU(1),y.qZA()}if(2&t){const t=y.oxw();y.xp6(1),y.Oqu(t.yesBtnText)}}let Gt=(()=>{class t{constructor(t,e,i,n){this.dialogRef=t,this.data=e,this.logger=i,this.store=n,this.faInfoCircle=mt.sqG,this.faExclamationTriangle=mt.eHv,this.informationMessage="",this.warningMessage="",this.noBtnText="No",this.yesBtnText="Yes",this.messageObjs=[],this.flgShowInput=!1,this.alertTypeEnum=m.n_,this.dataTypeEnum=m.Gi,this.getInputs=[{placeholder:"",inputType:"text",inputValue:"",hintText:"",hintFunction:null}]}ngOnInit(){this.informationMessage=this.data.informationMessage,this.warningMessage=this.data.warningMessage,this.flgShowInput=this.data.flgShowInput,this.getInputs=this.data.getInputs,this.noBtnText=this.data.noBtnText?this.data.noBtnText:"No",this.yesBtnText=this.data.yesBtnText?this.data.yesBtnText:"Yes",this.messageObjs=this.data.message,this.data.type===m.n_.ERROR&&!this.data.message&&!this.data.titleMessage&&this.messageObjs.length<=0&&(this.data.titleMessage="Please Check Server Connection")}onClose(t){if(t&&this.getInputs&&this.getInputs.some(t=>!t.inputValue))return!0;this.store.dispatch(new gt.Ws(t))}}return t.\u0275fac=function(e){return new(e||t)(y.Y36(g.so),y.Y36(g.WI),y.Y36(w.mQ),y.Y36(yt.yh))},t.\u0275cmp=y.Xpm({type:t,selectors:[["rtl-confirmation-message"]],decls:20,vars:9,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxFlex","100","class","alert alert-warn",4,"ngIf"],["fxFlex","100","class","alert alert-info",4,"ngIf"],["fxLayoutAlign","start center","class","pb-1",4,"ngIf"],[4,"ngIf"],["fxLayout","column","class","bordered-box my-2 p-2",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","type","reset","tabindex","2",1,"mr-1",3,"click"],["autoFocus","","mat-flat-button","","color","primary","type","submit","tabindex","3","default","",3,"click",4,"ngIf"],["autoFocus","","mat-flat-button","","color","primary","type","submit","tabindex","4","default","",3,"click",4,"ngIf"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","100",1,"alert","alert-info"],["fxLayoutAlign","start center",1,"pb-1"],[4,"ngFor","ngForOf"],["fxLayout","row wrap","fxLayoutAlign","start center","fxLayoutAlign.gt-md","space-between start"],["fxLayout","column","fxFlex","100",3,"fxFlex.gt-md",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100",3,"fxFlex.gt-md"],["fxLayoutAlign","start",1,"font-bold-500"],[4,"ngIf","ngIfElse"],["emptyField",""],[1,"w-100","my-1"],[1,"foreground-secondary-text",3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],["class","display-block",4,"ngFor","ngForOf"],[1,"display-block"],["fxFlex","100",1,"foreground-secondary-text"],["fxLayout","column",1,"bordered-box","my-2","p-2"],["fxLayoutAlign","space-between center"],[3,"fxFlex",4,"ngFor","ngForOf"],[3,"fxFlex"],["autoFocus","","matInput","","required","",3,"placeholder","name","min","step","type","ngModel","tabindex","ngModelChange",4,"ngIf"],["matInput","","required","",3,"placeholder","name","min","step","type","ngModel","tabindex","ngModelChange",4,"ngIf"],["autoFocus","","matInput","","required","",3,"placeholder","name","min","step","type","ngModel","tabindex","ngModelChange"],["matInput","","required","",3,"placeholder","name","min","step","type","ngModel","tabindex","ngModelChange"],["autoFocus","","mat-flat-button","","color","primary","type","submit","tabindex","3","default","",3,"click"],["autoFocus","","mat-flat-button","","color","primary","type","submit","tabindex","4","default","",3,"click"]],template:function(t,e){1&t&&(y.TgZ(0,"div",0),y.TgZ(1,"div",1),y.TgZ(2,"mat-card-header",2),y.TgZ(3,"div",3),y.TgZ(4,"span",4),y._uU(5),y.qZA(),y.qZA(),y.TgZ(6,"button",5),y.NdJ("click",function(){return e.onClose(!1)}),y._uU(7,"X"),y.qZA(),y.qZA(),y.TgZ(8,"mat-card-content",6),y.TgZ(9,"form",7),y.YNc(10,Ct,4,2,"div",8),y.YNc(11,At,4,2,"div",9),y.YNc(12,St,2,1,"p",10),y.YNc(13,Pt,2,1,"div",11),y.YNc(14,zt,4,2,"div",12),y.TgZ(15,"div",13),y.TgZ(16,"button",14),y.NdJ("click",function(){return e.onClose(!1)}),y._uU(17),y.qZA(),y.YNc(18,Ht,2,1,"button",15),y.YNc(19,Yt,2,1,"button",16),y.qZA(),y.qZA(),y.qZA(),y.qZA(),y.qZA()),2&t&&(y.xp6(5),y.Oqu(e.data.alertTitle||e.alertTypeEnum[e.data.type]),y.xp6(5),y.Q6J("ngIf",e.warningMessage&&""!==e.warningMessage),y.xp6(1),y.Q6J("ngIf",e.informationMessage&&""!==e.informationMessage),y.xp6(1),y.Q6J("ngIf",e.data.titleMessage&&!e.flgShowInput),y.xp6(1),y.Q6J("ngIf",(null==e.messageObjs?null:e.messageObjs.length)>0),y.xp6(1),y.Q6J("ngIf",e.flgShowInput),y.xp6(3),y.Oqu(e.noBtnText),y.xp6(1),y.Q6J("ngIf",e.flgShowInput),y.xp6(1),y.Q6J("ngIf",!e.flgShowInput))},directives:[b.xw,b.yH,E.dk,b.Wh,k.lW,E.dn,bt._Y,bt.JL,bt.F,A.O5,vt.BN,A.sg,D.d,A.RF,A.n9,A.ED,_t.KE,_t.bx,wt.Nt,xt.q,bt.Fj,I.h,bt.Q7,bt.JJ,bt.On,_t.TO],pipes:[A.uU,A.JJ,A.i8],styles:[""]}),t})();var jt=i(2427),Vt=i(4786),Qt=i(1522);function Wt(t,e){if(1&t&&(y.TgZ(0,"mat-option",23),y._uU(1),y.qZA()),2&t){const t=e.$implicit;y.Q6J("value",t),y.xp6(1),y.hij(" ",t.infoName," ")}}function Jt(t,e){if(1&t){const t=y.EpF();y.TgZ(0,"div",13),y.TgZ(1,"mat-form-field",20),y.TgZ(2,"mat-select",21),y.NdJ("valueChange",function(e){return y.CHM(t),y.oxw().selInfoType=e}),y.YNc(3,Wt,2,2,"mat-option",22),y.qZA(),y.qZA(),y.qZA()}if(2&t){const t=y.oxw();y.xp6(2),y.Q6J("value",t.selInfoType),y.xp6(1),y.Q6J("ngForOf",t.infoTypes)}}const Xt=function(t){return{"display-none":t}};let Kt=(()=>{class t{constructor(t,e,i,n,r){this.dialogRef=t,this.data=e,this.logger=i,this.snackBar=n,this.commonService=r,this.faReceipt=mt.dLy,this.infoTypes=[{infoID:0,infoKey:"node pubkey",infoName:"Node pubkey"}],this.selInfoType=this.infoTypes[0],this.qrWidth=210,this.screenSize="",this.screenSizeEnum=m.cu}ngOnInit(){this.information=this.data.information,this.information.uris&&(1===this.information.uris.length?this.infoTypes.push({infoID:1,infoKey:"node URI",infoName:"Node URI"}):this.information.uris.length>1&&this.information.uris.forEach((t,e)=>{this.infoTypes.push({infoID:e+1,infoKey:"node URI "+(e+1),infoName:"Node URI "+(e+1)})})),this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onCopyPubkey(t){this.snackBar.open(this.selInfoType.infoName+" copied."),this.logger.info("Copied Text: "+t)}}return t.\u0275fac=function(e){return new(e||t)(y.Y36(g.so),y.Y36(g.WI),y.Y36(w.mQ),y.Y36(x.ux),y.Y36(C.v))},t.\u0275cmp=y.Xpm({type:t,selectors:[["rtl-show-pubkey"]],decls:26,vars:23,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","30","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString"],["fxFlex","100","fxFlex.gt-sm","70"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxFlex","50","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],["fxLayout","row",4,"ngIf"],["fxLayout","row"],["fxFlex","100"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["autoFocus","","mat-flat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["fxFlex","100","fxFlex.gt-sm","40","fxLayoutAlign","start end"],["tabindex","1",3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(t,e){1&t&&(y.TgZ(0,"div",0),y.TgZ(1,"div",1),y._UZ(2,"qrcode",2),y.qZA(),y.TgZ(3,"div",3),y.TgZ(4,"mat-card-header",4),y.TgZ(5,"div",5),y._UZ(6,"fa-icon",6),y.TgZ(7,"span",7),y._uU(8),y.qZA(),y.qZA(),y.TgZ(9,"button",8),y.NdJ("click",function(){return e.onClose()}),y._uU(10,"X"),y.qZA(),y.qZA(),y.TgZ(11,"mat-card-content",9),y.TgZ(12,"div",10),y.TgZ(13,"div",11),y._UZ(14,"qrcode",2),y.qZA(),y.YNc(15,Jt,4,2,"div",12),y.TgZ(16,"div",13),y.TgZ(17,"div",14),y.TgZ(18,"h4",15),y._uU(19),y.qZA(),y.TgZ(20,"span",16),y._uU(21),y.qZA(),y.qZA(),y.qZA(),y._UZ(22,"mat-divider",17),y.TgZ(23,"div",18),y.TgZ(24,"button",19),y.NdJ("copied",function(t){return e.onCopyPubkey(t)}),y._uU(25),y.qZA(),y.qZA(),y.qZA(),y.qZA(),y.qZA(),y.qZA()),2&t&&(y.xp6(1),y.Q6J("ngClass",y.VKq(19,Xt,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM)),y.xp6(1),y.s9C("qrdata",0===e.selInfoType.infoID?e.information.identity_pubkey:e.information.uris[e.selInfoType.infoID-1]),y.Q6J("margin",2)("width",e.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0),y.xp6(4),y.Q6J("icon",e.faReceipt),y.xp6(2),y.Oqu(e.selInfoType.infoName),y.xp6(5),y.Q6J("ngClass",y.VKq(21,Xt,e.screenSize!==e.screenSizeEnum.XS&&e.screenSize!==e.screenSizeEnum.SM)),y.xp6(1),y.s9C("qrdata",0===e.selInfoType.infoID?e.information.identity_pubkey:e.information.uris[e.selInfoType.infoID-1]),y.Q6J("margin",2)("width",e.qrWidth)("errorCorrectionLevel","L")("allowEmptyString",!0),y.xp6(1),y.Q6J("ngIf",e.information.uris&&e.information.uris.length>0),y.xp6(4),y.Oqu(e.selInfoType.infoName),y.xp6(2),y.Oqu(0===e.selInfoType.infoID?e.information.identity_pubkey:e.information.uris[e.selInfoType.infoID-1]),y.xp6(3),y.s9C("payload",0===e.selInfoType.infoID?e.information.identity_pubkey:e.information.uris[e.selInfoType.infoID-1]),y.xp6(1),y.hij("Copy ",e.selInfoType.infoKey,""))},directives:[b.xw,b.Wh,b.yH,A.mk,S.oO,T.V,E.dk,vt.BN,k.lW,E.dn,A.O5,D.d,I.h,O.y,_t.KE,Vt.gD,A.sg,Qt.ey],styles:[""]}),t})();var $t=i(6124),te=i(9939),ee=i(5678),ie=i(9063),ne=i(3191),re=i(3556),se=i(6853);let oe=(()=>{class t{constructor(t,e,i,g,y,b,v,w,x,C){this.actions=t,this.httpClient=e,this.store=i,this.logger=g,this.sessionService=y,this.commonService=b,this.dataService=v,this.dialog=w,this.snackBar=x,this.router=C,this.screenSize="",this.alertWidth="55%",this.confirmWidth="70%",this.unSubs=[new r.x,new r.x],this.closeAllDialogs=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.VO),(0,l.U)(t=>{this.dialog.closeAll()})),{dispatch:!1}),this.openSnackBar=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.mm),(0,l.U)(t=>{"string"==typeof t.payload?this.snackBar.open(t.payload):this.snackBar.open(t.payload.message,"","ERROR"===t.payload.type?{duration:t.payload.duration?t.payload.duration:2e3,panelClass:"rtl-warn-snack-bar"}:"WARN"===t.payload.type?{duration:t.payload.duration?t.payload.duration:2e3,panelClass:"rtl-accent-snack-bar"}:{duration:t.payload.duration?t.payload.duration:2e3,panelClass:"rtl-snack-bar"})})),{dispatch:!1}),this.openSpinner=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.ow),(0,l.U)(t=>{t.payload!==m.m6.NO_SPINNER&&(this.dialogRef=this.dialog.open(_,{data:{titleMessage:t.payload}}))})),{dispatch:!1}),this.closeSpinner=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.S7),(0,l.U)(t=>{if(t.payload!==m.m6.NO_SPINNER)try{this.dialogRef&&this.dialogRef.componentInstance&&this.dialogRef.componentInstance.data&&this.dialogRef.componentInstance.data.titleMessage&&this.dialogRef.componentInstance.data.titleMessage===t.payload?this.dialogRef.close():this.dialog.openDialogs.forEach(e=>{e.componentInstance&&e.componentInstance.data&&e.componentInstance.data.titleMessage&&e.componentInstance.data.titleMessage===t.payload&&e.close()})}catch(e){this.logger.error(e)}})),{dispatch:!1}),this.openAlert=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.fW),(0,l.U)(t=>{t.payload.width=this.alertWidth,this.dialogRef=this.dialog.open(t.payload.data.component?t.payload.data.component:ft,t.payload)})),{dispatch:!1}),this.closeAlert=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.r3),(0,l.U)(t=>(this.dialogRef&&this.dialogRef.close(),t.payload))),{dispatch:!1}),this.openConfirm=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.yL),(0,l.U)(t=>{t.payload.width=this.confirmWidth,this.dialogRef=this.dialog.open(Gt,t.payload)})),{dispatch:!1}),this.closeConfirm=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.Vt),(0,c.q)(1),(0,l.U)(t=>(this.dialogRef&&this.dialogRef.close(),this.logger.info(t.payload),t.payload))),{dispatch:!1}),this.showNodePubkey=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.oO),(0,h.M)(this.store.select("root")),(0,u.z)(([t,e])=>(this.sessionService.getItem("token")&&e.nodeData.identity_pubkey?this.store.dispatch(new gt.wu({width:"70%",data:{information:e.nodeData,component:Kt}})):this.snackBar.open("Node Pubkey does not exist."),(0,s.of)({type:gt.Zn}))))),this.appConfigFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.vH),(0,u.z)(t=>(this.screenSize=this.commonService.getScreenSize(),this.screenSize===m.cu.XS||this.screenSize===m.cu.SM?(this.alertWidth="95%",this.confirmWidth="95%"):this.screenSize===m.cu.MD?(this.alertWidth="80%",this.confirmWidth="80%"):(this.alertWidth="55%",this.confirmWidth="60%"),this.store.dispatch(new gt.Fk(m.m6.GET_RTL_CONFIG)),this.store.dispatch(new gt.np({action:"FetchRTLConfig",status:m.Bn.INITIATED})),this.sessionService.getItem("token")?this.httpClient.get(f.N.CONF_API+"/rtlconf"):this.httpClient.get(f.N.CONF_API+"/rtlconfinit"))),(0,l.U)(t=>{let e;return this.logger.info(t),this.store.dispatch(new gt.Iv(m.m6.GET_RTL_CONFIG)),this.store.dispatch(new gt.np({action:"FetchRTLConfig",status:m.Bn.COMPLETED})),t.nodes.forEach(i=>{i.settings.currencyUnits=[...m.uA,i.settings.currencyUnit],+i.index===t.selectedNodeIndex&&(e=i)}),e?(this.store.dispatch(new gt.ZG({uiMessage:m.m6.NO_SPINNER,lnNode:e,isInitialSetup:!0})),{type:gt.rZ,payload:t}):{type:gt.Zn}}),(0,d.K)(t=>(this.handleErrorWithoutAlert("FetchRTLConfig",m.m6.GET_RTL_CONFIG,t),(0,s.of)({type:gt.Zn}))))),this.settingSave=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.Ol),(0,u.z)(t=>{this.store.dispatch(new gt.Fk(t.payload.uiMessage)),this.store.dispatch(new gt.np({action:"UpdateSettings",status:m.Bn.INITIATED}));let e=new o.y;if(t.payload.settings&&t.payload.defaultNodeIndex){const i=this.httpClient.post(f.N.CONF_API,{updatedSettings:t.payload.settings}),n=this.httpClient.post(f.N.CONF_API+"/updateDefaultNode",{defaultNodeIndex:t.payload.defaultNodeIndex});e=(0,a.D)([i,n])}else t.payload.settings&&!t.payload.defaultNodeIndex?e=this.httpClient.post(f.N.CONF_API,{updatedSettings:t.payload.settings}):!t.payload.settings&&t.payload.defaultNodeIndex&&(e=this.httpClient.post(f.N.CONF_API+"/updateDefaultNode",{defaultNodeIndex:t.payload.defaultNodeIndex}));return e.pipe((0,l.U)(e=>(this.logger.info(e),this.store.dispatch(new gt.np({action:"UpdateSettings",status:m.Bn.COMPLETED})),this.store.dispatch(new gt.Iv(t.payload.uiMessage)),{type:gt.mm,payload:e.length?e[0].message+".":e.message+"."})),(0,d.K)(e=>(this.handleErrorWithAlert("UpdateSettings",t.payload.uiMessage,"Update Settings Failed!",f.N.CONF_API,e.length?e[0]:e),(0,s.of)({type:gt.Zn}))))}))),this.updateServicesettings=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.Tb),(0,u.z)(t=>(this.store.dispatch(new gt.Fk(t.payload.uiMessage)),this.store.dispatch(new gt.np({action:"UpdateServiceSettings",status:m.Bn.INITIATED})),this.httpClient.post(f.N.CONF_API+"/updateServiceSettings",t.payload).pipe((0,l.U)(e=>(this.logger.info(e),this.store.dispatch(new gt.np({action:"UpdateServiceSettings",status:m.Bn.COMPLETED})),this.store.dispatch(new gt.Iv(t.payload.uiMessage)),{type:gt.mm,payload:e.message+"."})),(0,d.K)(e=>(this.handleErrorWithAlert("UpdateServiceSettings",t.payload.uiMessage,"Update Service Settings Failed!",f.N.CONF_API,e),(0,s.of)({type:gt.Zn})))))))),this.twoFASettingSave=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.xh),(0,u.z)(t=>(this.store.dispatch(new gt.Fk(m.m6.UPDATE_UI_SETTINGS)),this.store.dispatch(new gt.np({action:"Update2FASettings",status:m.Bn.INITIATED})),this.httpClient.post(f.N.CONF_API+"/update2FA",{secret2fa:t.payload.secret2fa}))),(0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new gt.np({action:"Update2FASettings",status:m.Bn.COMPLETED})),this.store.dispatch(new gt.Iv(m.m6.UPDATE_UI_SETTINGS)),{type:gt.Zn})),(0,d.K)(t=>(this.handleErrorWithAlert("Update2FASettings",m.m6.UPDATE_UI_SETTINGS,"Update 2FA Settings Failed!",f.N.CONF_API,t),(0,s.of)({type:gt.Zn}))))),this.configFetch=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.Ih),(0,u.z)(t=>(this.store.dispatch(new gt.Fk(m.m6.OPEN_CONFIG_FILE)),this.store.dispatch(new gt.np({action:"fetchConfig",status:m.Bn.INITIATED})),this.httpClient.get(f.N.CONF_API+"/config/"+t.payload).pipe((0,l.U)(t=>(this.store.dispatch(new gt.np({action:"fetchConfig",status:m.Bn.COMPLETED})),this.store.dispatch(new gt.Iv(m.m6.OPEN_CONFIG_FILE)),{type:gt.mG,payload:t})),(0,d.K)(e=>(this.handleErrorWithAlert("fetchConfig",m.m6.OPEN_CONFIG_FILE,"Fetch Config Failed!",f.N.CONF_API+"/config/"+t.payload,e),(0,s.of)({type:gt.Zn})))))))),this.showLnConfig=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.mG),(0,l.U)(t=>t.payload)),{dispatch:!1}),this.isAuthorized=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.s3),(0,h.M)(this.store.select("root")),(0,u.z)(([t,e])=>(this.store.dispatch(new gt.np({action:"IsAuthorized",status:m.Bn.INITIATED})),this.httpClient.post(f.N.AUTHENTICATE_API,{authenticateWith:t.payload&&""!==t.payload.trim()?m.OJ.PASSWORD:m.OJ.JWT,authenticationValue:t.payload&&""!==t.payload.trim()?t.payload:this.sessionService.getItem("token")?this.sessionService.getItem("token"):""}).pipe((0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new gt.np({action:"IsAuthorized",status:m.Bn.COMPLETED})),this.logger.info("Successfully Authorized!"),{type:gt.JU,payload:t})),(0,d.K)(t=>(this.handleErrorWithAlert("IsAuthorized",m.m6.NO_SPINNER,"Authorization Failed",f.N.AUTHENTICATE_API,t),(0,s.of)({type:gt.JU,payload:"ERROR"})))))))),this.isAuthorizedRes=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.JU),(0,l.U)(t=>t.payload)),{dispatch:!1}),this.authLogin=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.ym),(0,h.M)(this.store.select("root")),(0,u.z)(([t,e])=>(this.store.dispatch(new ee.Mo({})),this.store.dispatch(new te.UA({})),this.store.dispatch(new $t.IF({})),this.store.dispatch(new gt.np({action:"Login",status:m.Bn.INITIATED})),this.httpClient.post(f.N.AUTHENTICATE_API,{authenticateWith:t.payload.password?m.OJ.PASSWORD:m.OJ.JWT,authenticationValue:t.payload.password?t.payload.password:this.sessionService.getItem("token")?this.sessionService.getItem("token"):"",twoFAToken:t.payload.twoFAToken?t.payload.twoFAToken:""}).pipe((0,l.U)(i=>{this.logger.info(i),this.store.dispatch(new gt.np({action:"Login",status:m.Bn.COMPLETED})),this.setLoggedInDetails(t.payload.defaultPassword,i,e)}),(0,d.K)(t=>(this.logger.info("Redirecting to Login Error Page"),0===t.status&&t.statusText&&"Unknown Error"===t.statusText&&(t.status="400",t.error.error="Origin Not Allowed"),this.handleErrorWithoutAlert("Login",m.m6.NO_SPINNER,t),+e.appConfig.sso.rtlSSO?this.router.navigate(["/error"],{state:{errorCode:"406",errorMessage:t.error&&t.error.error?t.error.error:"Single Sign On Failed!"}}):this.router.navigate(["./login"]),(0,s.of)({type:gt.Zn}))))))),{dispatch:!1}),this.tokenVerify=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.gK),(0,h.M)(this.store.select("root")),(0,u.z)(([t,e])=>(this.store.dispatch(new gt.Fk(m.m6.VERIFY_TOKEN)),this.store.dispatch(new gt.np({action:"VerifyToken",status:m.Bn.INITIATED})),this.httpClient.post(f.N.AUTHENTICATE_API+"/token",{authentication2FA:t.payload.token}).pipe((0,l.U)(i=>{this.logger.info(i),this.store.dispatch(new gt.Fk(m.m6.VERIFY_TOKEN)),this.store.dispatch(new gt.np({action:"VerifyToken",status:m.Bn.COMPLETED})),this.logger.info("Token Successfully Verified!"),this.setLoggedInDetails(!1,t.payload.authResponse,e)}),(0,d.K)(t=>(this.handleErrorWithAlert("VerifyToken",m.m6.VERIFY_TOKEN,"Authorization Failed!",f.N.AUTHENTICATE_API+"/token",t),(0,s.of)({type:gt.Zn}))))))),{dispatch:!1}),this.logOut=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.Nv),(0,h.M)(this.store.select("root")),(0,u.z)(([t,e])=>(+e.appConfig.sso.rtlSSO?window.location.href=e.appConfig.sso.logoutRedirectLink:this.router.navigate(["./login"]),this.sessionService.clearAll(),this.store.dispatch(new gt.e6({})),this.logger.warn("LOGGED OUT"),(0,s.of)()))),{dispatch:!1}),this.resetPassword=(0,n.GW)(()=>this.actions.pipe((0,p.R)(this.unSubs[1]),(0,n.l4)(gt.bk),(0,h.M)(this.store.select("root")),(0,u.z)(([t,e])=>(this.store.dispatch(new gt.np({action:"ResetPassword",status:m.Bn.INITIATED})),this.httpClient.post(f.N.AUTHENTICATE_API+"/reset",{currPassword:t.payload.currPassword,newPassword:t.payload.newPassword}).pipe((0,p.R)(this.unSubs[0]),(0,l.U)(t=>(this.logger.info(t),this.store.dispatch(new gt.np({action:"ResetPassword",status:m.Bn.COMPLETED})),this.sessionService.setItem("defaultPassword",!1),this.logger.info("Password Reset Successful!"),this.store.dispatch(new gt.Lw("Password Reset Successful!")),this.SetToken(t.token),{type:gt.Gs,payload:t.token})),(0,d.K)(t=>(this.handleErrorWithAlert("ResetPassword",m.m6.NO_SPINNER,"Password Reset Failed!",f.N.AUTHENTICATE_API+"/reset",t),(0,s.of)({type:gt.Zn})))))))),this.setSelectedNode=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.RP),(0,u.z)(t=>(this.store.dispatch(new gt.Fk(t.payload.uiMessage)),this.store.dispatch(new gt.np({action:"UpdateSelNode",status:m.Bn.INITIATED})),this.httpClient.post(f.N.CONF_API+"/updateSelNode",{selNodeIndex:t.payload.lnNode.index}).pipe((0,l.U)(e=>(this.logger.info(e),this.store.dispatch(new gt.np({action:"UpdateSelNode",status:m.Bn.COMPLETED})),this.store.dispatch(new gt.Iv(t.payload.uiMessage)),this.initializeNode(t.payload.lnNode,t.payload.isInitialSetup),{type:gt.Zn})),(0,d.K)(e=>(0===e.status&&e.statusText&&"Unknown Error"===e.statusText&&(e.status="400",e.error.message="Origin Not Allowed"),this.handleErrorWithAlert("UpdateSelNode",t.payload.uiMessage,"Update Selected Node Failed!",f.N.CONF_API+"/updateSelNode",e),(0,s.of)({type:gt.Zn})))))))),this.fetchFile=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.bE),(0,u.z)(t=>{this.store.dispatch(new gt.Fk(m.m6.DOWNLOAD_BACKUP_FILE)),this.store.dispatch(new gt.np({action:"fetchFile",status:m.Bn.INITIATED}));const e="?channel="+t.payload.channelPoint+(t.payload.path?"&path="+t.payload.path:"");return this.httpClient.get(f.N.CONF_API+"/file"+e).pipe((0,l.U)(t=>(this.store.dispatch(new gt.np({action:"fetchFile",status:m.Bn.COMPLETED})),this.store.dispatch(new gt.Iv(m.m6.DOWNLOAD_BACKUP_FILE)),{type:gt.BQ,payload:t})),(0,d.K)(t=>(this.handleErrorWithAlert("fetchFile",m.m6.DOWNLOAD_BACKUP_FILE,"Download Backup File Failed!",f.N.CONF_API+"/file"+e,{status:this.commonService.extractErrorNumber(t),error:{error:this.commonService.extractErrorCode(t)}}),(0,s.of)({type:gt.Zn}))))}))),this.showFile=(0,n.GW)(()=>this.actions.pipe((0,n.l4)(gt.BQ),(0,l.U)(t=>t.payload)),{dispatch:!1})}initializeNode(t,e){const i=e?"":"HOME";let n={};if(n=t.settings.fiatConversion&&t.settings.currencyUnit?{userPersona:t.settings.userPersona,channelBackupPath:t.settings.channelBackupPath,selCurrencyUnit:t.settings.currencyUnit,currencyUnits:[...m.uA,t.settings.currencyUnit],fiatConversion:t.settings.fiatConversion,lnImplementation:t.lnImplementation,swapServerUrl:t.settings.swapServerUrl,boltzServerUrl:t.settings.boltzServerUrl}:{userPersona:t.settings.userPersona,channelBackupPath:t.settings.channelBackupPath,selCurrencyUnit:t.settings.currencyUnit,currencyUnits:m.uA,fiatConversion:t.settings.fiatConversion,lnImplementation:t.lnImplementation,swapServerUrl:t.settings.swapServerUrl,boltzServerUrl:t.settings.boltzServerUrl},this.sessionService.removeItem("lndUnlocked"),this.sessionService.removeItem("clUnlocked"),this.sessionService.removeItem("eclUnlocked"),this.store.dispatch(new gt.$A(t)),this.store.dispatch(new ee.Mo(n)),this.store.dispatch(new te.UA(n)),this.store.dispatch(new $t.IF(n)),this.sessionService.getItem("token"))switch(t.lnImplementation=t.lnImplementation.toUpperCase(),this.dataService.setChildAPIUrl(t.lnImplementation),t.lnImplementation){case"CLT":this.store.dispatch(new te.z6({loadPage:i}));break;case"ECL":this.store.dispatch(new $t.z6({loadPage:i}));break;default:this.store.dispatch(new ee.z6({loadPage:i}))}}SetToken(t){t?(this.sessionService.setItem("lndUnlocked","true"),this.sessionService.setItem("token",t)):(this.sessionService.removeItem("lndUnlocked"),this.sessionService.removeItem("token"))}setLoggedInDetails(t,e,i){this.logger.info("Successfully Authorized!"),this.SetToken(e.token),this.store.dispatch(new gt.XF),i.selNode.settings.currencyUnits=[...m.uA,i.selNode.settings.currencyUnit],this.sessionService.setItem("defaultPassword",t),t&&(this.sessionService.setItem("defaultPassword","true"),this.store.dispatch(new gt.Lw("Reset your password.")),this.router.navigate(["/settings/auth"]))}handleErrorWithoutAlert(t,e,i){this.logger.error("ERROR IN: "+t+"\n"+JSON.stringify(i)),401===i.status&&"Login"!==t?(this.logger.info("Redirecting to Login"),this.store.dispatch(new gt.Ac),this.store.dispatch(new gt.RD),this.store.dispatch(new gt.Lw("Authentication Failed. Redirecting to Login."))):(this.store.dispatch(new gt.Iv(e)),this.store.dispatch(new gt.np({action:t,status:m.Bn.ERROR,statusCode:i.status.toString(),message:this.commonService.extractErrorMessage(i)})))}handleErrorWithAlert(t,e,i,n,r){if(this.logger.error(r),401===r.status&&"Login"!==t)this.logger.info("Redirecting to Login"),this.store.dispatch(new gt.Ac),this.store.dispatch(new gt.RD),this.store.dispatch(new gt.Lw("Authentication Failed. Redirecting to Login."));else{this.store.dispatch(new gt.Iv(e));const s=this.commonService.extractErrorMessage(r);this.store.dispatch(new gt.wu({data:{type:"ERROR",alertTitle:i,message:{code:r.status?r.status:"Unknown Error",message:s,URL:n},component:jt.H}})),this.store.dispatch(new gt.np({action:t,status:m.Bn.ERROR,statusCode:r.status.toString(),message:s,URL:n}))}}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(y.LFG(n.eX),y.LFG(ie.eN),y.LFG(yt.yh),y.LFG(w.mQ),y.LFG(ne.m),y.LFG(C.v),y.LFG(re.D),y.LFG(g.uw),y.LFG(x.ux),y.LFG(se.F0))},t.\u0275prov=y.Yz7({token:t,factory:t.\u0275fac}),t})()},5963:(t,e,i)=>{"use strict";i.d(e,{T:()=>n,N:()=>r});const n="./api",r={production:!0,isDebugMode:!1,AUTHENTICATE_API:n+"/authenticate",CONF_API:n+"/conf",BALANCE_API:"/balance",FEES_API:"/fees",PEERS_API:"/peers",CHANNELS_API:"/channels",CHANNELS_BACKUP_API:"/channels/backup",GETINFO_API:"/getinfo",WALLET_API:"/wallet",NETWORK_API:"/network",NEW_ADDRESS_API:"/newaddress",TRANSACTIONS_API:"/transactions",PAYREQUEST_API:"/payreq",PAYMENTS_API:"/payments",INVOICES_API:"/invoices",SWITCH_API:"/switch",ON_CHAIN_API:"/onchain",MESSAGE_API:"/message",LOOP_API:"/loop",BOLTZ_API:"/boltz",VERSION:"0.11.2-beta"}},1042:(t,e,i)=>{"use strict";var n=i(269),r=i(1572),s=i(3490),o=i(9063),a=i(964),l=i(5573),c=i(7876),h=i(9666),u=i(5446),d=i(5960),p=i(5630),f=i(2948),m=i(8431);function g(t,e){return void 0===t&&(t=0),void 0===e&&(e=f.z),t<0&&(t=0),(0,m.H)(t,t,e)}var y=i(2041),b=i(9162),v=i(6042),_=i(3386),w=i(4659),x=i(8764),C=i(7070),A=i(8868),S=i(343),E=i(4324),k=i(9568),T=i(849),M=i(6424),L=i(1681);class I{}let O=(()=>{class t{constructor(t,e){this._ngZone=e,this.timerStart$=new h.x,this.idleDetected$=new h.x,this.timeout$=new h.x,this.idleMillisec=6e5,this.idleSensitivityMillisec=1e3,this.timeout=300,this.pingMillisec=12e4,t&&this.setConfig(t)}startWatching(){this.activityEvents$||(this.activityEvents$=(0,u.T)((0,d.R)(window,"mousemove"),(0,d.R)(window,"resize"),(0,d.R)(document,"keydown"))),this.idle$=(0,p.Dp)(this.activityEvents$),this.idleSubscription&&this.idleSubscription.unsubscribe(),this.idleSubscription=this.idle$.pipe(function(t){for(var e,i,n=[],r=1;r=0?i.add(s.schedule(function(){c(),!this.closed&&i.add(this.schedule(null,o))},o)):r=!0,c();var h=new w.Q(i,function(t){var e,i,r=n.slice();try{for(var s=(0,b.XA)(r),o=s.next();!o.done;o=s.next()){var c=o.value,h=c.buffer;h.push(t),a<=h.length&&l(c)}}catch(u){e={error:u}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(e)throw e.error}}},function(){for(;null==n?void 0:n.length;)i.next(n.shift().buffer);null==h||h.unsubscribe(),i.complete(),i.unsubscribe()},void 0,function(){return n=null});e.subscribe(h)})}(this.idleSensitivityMillisec),(0,A.h)(t=>!t.length&&!this.isIdleDetected&&!this.isInactivityTimer),(0,S.b)(()=>{this.isIdleDetected=!0,this.idleDetected$.next(!0)}),(0,E.w)(()=>this._ngZone.runOutsideAngular(()=>g(1e3).pipe((0,k.R)((0,u.T)(this.activityEvents$,(0,m.H)(this.idleMillisec).pipe((0,S.b)(()=>{this.isInactivityTimer=!0,this.timerStart$.next(!0)})))),(0,T.x)(()=>{this.isIdleDetected=!1,this.idleDetected$.next(!1)}))))).subscribe(),this.setupTimer(this.timeout),this.setupPing(this.pingMillisec)}stopWatching(){this.stopTimer(),this.idleSubscription&&this.idleSubscription.unsubscribe()}stopTimer(){this.isInactivityTimer=!1,this.timerStart$.next(!1)}resetTimer(){this.stopTimer(),this.isTimeout=!1}onTimerStart(){return this.timerStart$.pipe((0,M.x)(),(0,E.w)(t=>t?this.timer$:(0,y.of)(null)))}onIdleStatusChanged(){return this.idleDetected$.asObservable()}onTimeout(){return this.timeout$.pipe((0,A.h)(t=>!!t),(0,S.b)(()=>this.isTimeout=!0),(0,L.U)(()=>!0))}getConfigValue(){return{idle:this.idleMillisec/1e3,idleSensitivity:this.idleSensitivityMillisec/1e3,timeout:this.timeout,ping:this.pingMillisec/1e3}}setConfigValues(t){!this.idleSubscription||this.idleSubscription.closed?this.setConfig(t):console.error("Call stopWatching() before set config values")}setConfig(t){t.idle&&(this.idleMillisec=1e3*t.idle),t.ping&&(this.pingMillisec=1e3*t.ping),t.idleSensitivity&&(this.idleSensitivityMillisec=1e3*t.idleSensitivity),t.timeout&&(this.timeout=t.timeout)}setCustomActivityEvents(t){!this.idleSubscription||this.idleSubscription.closed?this.activityEvents$=t:console.error("Call stopWatching() before set custom activity events")}setupTimer(t){this._ngZone.runOutsideAngular(()=>{this.timer$=(0,y.of)(new Date).pipe((0,E.w)(e=>g(1e3).pipe((0,L.U)(()=>Math.round(((new Date).valueOf()-e.valueOf())/1e3)),(0,S.b)(e=>{e>=t&&this.timeout$.next(!0)}))))})}setupPing(t){this.ping$=g(t).pipe((0,A.h)(()=>!this.isTimeout))}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(I,8),r.LFG(r.R0b))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac,providedIn:"root"}),t.ngInjectableDef=(0,r.Ez6)({factory:function(){return new t((0,r.f3M)(I,8),(0,r.f3M)(r.R0b))},token:t,providedIn:"root"}),t})(),D=(()=>{class t{static forRoot(e){return{ngModule:t,providers:[{provide:I,useValue:e}]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t}),t.\u0275inj=r.cJS({imports:[[]]}),t})();var R=i(6853),N=i(5291),P=i(3722),F=i(7592),Z=i(7439),B=i(5109),U=i(1511);const q=function(){return{initial:!1}};function z(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",10),r.NdJ("click",function(){r.CHM(t);const e=r.oxw();return e.activeLink=e.links[1].link}),r._uU(1),r.qZA()}if(2&t){const t=r.oxw();r.s9C("routerLink",t.links[1].link),r.Q6J("active",t.activeLink===t.links[1].link)("state",r.DdM(4,q)),r.xp6(1),r.Oqu(t.links[1].name)}}function H(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("click",function(){r.CHM(t);const e=r.oxw();return e.activeLink=e.links[2].link}),r._uU(1),r.qZA()}if(2&t){const t=r.oxw();r.s9C("routerLink",t.links[2].link),r.Q6J("active",t.activeLink===t.links[2].link),r.xp6(1),r.Oqu(t.links[2].name)}}let Y=(()=>{class t{constructor(t,e){this.store=t,this.router=e,this.faUserCog=N.gNZ,this.showBitcoind=!1,this.links=[{link:"app",name:"Application"},{link:"auth",name:"Authentication"},{link:"bconfig",name:"BitcoinD Config"}],this.activeLink="",this.unSubs=[new h.x,new h.x,new h.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,k.R)(this.unSubs[0]),(0,A.h)(t=>t instanceof R.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link}),this.store.select("root").pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{this.showBitcoind=!1,this.appConfig=t.appConfig,this.selNode=t.selNode,this.selNode.settings&&this.selNode.settings.bitcoindConfigPath&&""!==this.selNode.settings.bitcoindConfigPath.trim()&&(this.showBitcoind=!0)})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(a.yh),r.Y36(R.F0))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-settings"]],decls:14,vars:6,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","state","click",4,"ngIf"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","state","click"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r._UZ(1,"fa-icon",1),r.TgZ(2,"span",2),r._uU(3,"Settings"),r.qZA(),r.qZA(),r.TgZ(4,"div",3),r.TgZ(5,"mat-card"),r.TgZ(6,"mat-card-content",4),r.TgZ(7,"nav",5),r.TgZ(8,"div",6),r.NdJ("click",function(){return e.activeLink=e.links[0].link}),r._uU(9),r.qZA(),r.YNc(10,z,2,5,"div",7),r.YNc(11,H,2,3,"div",8),r.qZA(),r.TgZ(12,"div",9),r._UZ(13,"router-outlet"),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(1),r.Q6J("icon",e.faUserCog),r.xp6(7),r.s9C("routerLink",e.links[0].link),r.Q6J("active",e.activeLink===e.links[0].link),r.xp6(1),r.Oqu(e.links[0].name),r.xp6(1),r.Q6J("ngIf",!+e.appConfig.sso.rtlSSO),r.xp6(1),r.Q6J("ngIf",e.showBitcoind))},directives:[P.xw,P.Wh,F.BN,Z.a8,Z.dn,B.BU,B.Nj,R.rH,U.O5,P.yH,R.lC],styles:[""]}),t})();var G=i(9421),j=i(3929),V=i(3869),Q=i(7038),W=i(6073),J=i(6283),X=i(4786),K=i(6880),$=i(5980),tt=i(1522);function et(t,e){if(1&t&&(r.TgZ(0,"mat-option",16),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.Q6J("value",t.index),r.xp6(1),r.AsE(" ",t.lnNode," (",t.lnImplementation,") ")}}function it(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"form",2,3),r.TgZ(2,"div",4),r._UZ(3,"fa-icon",5),r.TgZ(4,"span",6),r._uU(5,"Default Node"),r.qZA(),r.qZA(),r.TgZ(6,"div",7),r.TgZ(7,"div",8),r._UZ(8,"fa-icon",9),r.TgZ(9,"span"),r._uU(10,"The setting will apply after RTL server restarts."),r.qZA(),r.qZA(),r.TgZ(11,"div",10),r.TgZ(12,"mat-form-field",10),r.TgZ(13,"mat-select",11),r.NdJ("ngModelChange",function(e){return r.CHM(t),r.oxw().appConfig.defaultNodeIndex=e}),r.YNc(14,et,2,3,"mat-option",12),r.qZA(),r.qZA(),r.qZA(),r.TgZ(15,"div",13),r.TgZ(16,"div",10),r.TgZ(17,"button",14),r.NdJ("click",function(){return r.CHM(t),r.oxw().onResetSettings()}),r._uU(18,"Reset"),r.qZA(),r.TgZ(19,"button",15),r.NdJ("click",function(){return r.CHM(t),r.oxw().onUpdateSettings()}),r._uU(20,"Update"),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.xp6(3),r.Q6J("icon",t.faWindowRestore),r.xp6(5),r.Q6J("icon",t.faInfoCircle),r.xp6(5),r.Q6J("ngModel",t.appConfig.defaultNodeIndex),r.xp6(1),r.Q6J("ngForOf",t.appConfig.nodes)}}let nt=(()=>{class t{constructor(t,e){this.logger=t,this.store=e,this.faInfoCircle=N.sqG,this.faWindowRestore=N.wyP,this.faPlus=N.r8p,this.previousDefaultNode=0,this.unSubs=[new h.x,new h.x]}ngOnInit(){this.store.select("root").pipe((0,k.R)(this.unSubs[0])).subscribe(t=>{this.appConfig=t.appConfig,this.previousDefaultNode=this.appConfig.defaultNodeIndex,this.selNode=t.selNode,this.logger.info(t)})}onAddNewNode(){this.logger.warn("ADD NEW NODE")}onUpdateSettings(){this.store.dispatch(new j.j_({uiMessage:G.m6.UPDATE_DEFAULT_NODE_SETTING,defaultNodeIndex:this.appConfig.defaultNodeIndex?this.appConfig.defaultNodeIndex:+this.appConfig.nodes[0].index}))}onResetSettings(){this.appConfig.defaultNodeIndex=this.previousDefaultNode}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(a.yh))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-app-settings"]],decls:2,vars:1,consts:[["fxLayout","column","fxFlex","100",1,"padding-gap-x-large",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch","class","settings-container page-sub-title-container mt-1",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"settings-container","page-sub-title-container","mt-1"],["form","ngForm"],["fxLayout","row"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"my-2"],["fxLayout","row","fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","row","fxLayoutAlign","start start"],["autoFocus","","tabindex","1","name","defaultNode",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start start",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","2",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],[3,"value"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.YNc(1,it,21,4,"form",1),r.qZA()),2&t&&(r.xp6(1),r.Q6J("ngIf",e.appConfig.nodes&&e.appConfig.nodes.length&&e.appConfig.nodes.length>0))},directives:[P.xw,P.yH,Q.$V,U.O5,W._Y,W.JL,W.F,P.Wh,F.BN,J.KE,X.gD,K.h,W.JJ,W.On,U.sg,$.lW,tt.ey],styles:[""]}),t})();var rt=i(1339),st=i(9056),ot=i(4608),at=i(4499),lt=i(8914),ct=i(1403),ht=i(7753),ut=i(6756),dt=i(3600),pt=i(2609);const ft=["stepper"];function mt(t,e){if(1&t&&r._uU(0),2&t){const t=r.oxw();r.Oqu(t.passwordFormLabel)}}function gt(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Password is required."),r.qZA())}function yt(t,e){if(1&t&&r._uU(0),2&t){const t=r.oxw(2);r.Oqu(t.secretFormLabel)}}function bt(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Secret Code is required."),r.qZA())}function vt(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"mat-step",10),r.TgZ(1,"form",21),r.YNc(2,yt,1,1,"ng-template",22),r.TgZ(3,"div",23),r._UZ(4,"qrcode",24),r.qZA(),r.TgZ(5,"div",25),r._UZ(6,"fa-icon",26),r.TgZ(7,"span"),r._uU(8,"You can use a compatible authentication app to get an authentication code when you log in to RTL. e.g.: Google Authenticator."),r.qZA(),r.qZA(),r.TgZ(9,"div",27),r.TgZ(10,"mat-form-field",1),r._UZ(11,"input",28),r.TgZ(12,"fa-icon",29),r.NdJ("copied",function(e){return r.CHM(t),r.oxw().onCopySecret(e)}),r.qZA(),r.YNc(13,bt,2,0,"mat-error",14),r.qZA(),r.qZA(),r.TgZ(14,"div",30),r.TgZ(15,"button",31),r._uU(16,"Next"),r.qZA(),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("stepControl",t.secretFormGroup)("editable",t.flgEditable),r.xp6(1),r.Q6J("formGroup",t.secretFormGroup),r.xp6(3),r.Q6J("qrdata",t.otpauth)("margin",1)("width",180)("errorCorrectionLevel","L")("allowEmptyString",!0),r.xp6(2),r.Q6J("icon",t.faInfoCircle),r.xp6(6),r.Q6J("icon",t.faCopy)("payload",null==t.secretFormGroup||null==t.secretFormGroup.controls||null==t.secretFormGroup.controls.secret?null:t.secretFormGroup.controls.secret.value),r.xp6(1),r.Q6J("ngIf",null==t.secretFormGroup||null==t.secretFormGroup.controls||null==t.secretFormGroup.controls.secret||null==t.secretFormGroup.controls.secret.errors?null:t.secretFormGroup.controls.secret.errors.required)}}function _t(t,e){if(1&t&&r._uU(0),2&t){const t=r.oxw(2);r.Oqu(t.tokenFormLabel)}}function wt(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Token is required."),r.qZA())}function xt(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Token is invalid."),r.qZA())}function Ct(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",7),r.TgZ(1,"div",27),r.TgZ(2,"mat-form-field",1),r._UZ(3,"input",35),r.YNc(4,wt,2,0,"mat-error",14),r.YNc(5,xt,2,0,"mat-error",14),r.qZA(),r.qZA(),r.TgZ(6,"div",30),r.TgZ(7,"button",36),r.NdJ("click",function(){return r.CHM(t),r.oxw(2).onVerifyToken()}),r._uU(8),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw(2);r.xp6(4),r.Q6J("ngIf",null==t.tokenFormGroup||null==t.tokenFormGroup.controls||null==t.tokenFormGroup.controls.token||null==t.tokenFormGroup.controls.token.errors?null:t.tokenFormGroup.controls.token.errors.required),r.xp6(1),r.Q6J("ngIf",null==t.tokenFormGroup||null==t.tokenFormGroup.controls||null==t.tokenFormGroup.controls.token||null==t.tokenFormGroup.controls.token.errors?null:t.tokenFormGroup.controls.token.errors.notValid),r.xp6(3),r.Oqu(null!=t.tokenFormGroup&&null!=t.tokenFormGroup.controls&&null!=t.tokenFormGroup.controls.token&&null!=t.tokenFormGroup.controls.token.errors&&t.tokenFormGroup.controls.token.errors.notValid?"Retry":"Verify")}}function At(t,e){1&t&&(r.TgZ(0,"div"),r.TgZ(1,"strong"),r._uU(2,"Success! You are all set."),r.qZA(),r.qZA())}function St(t,e){if(1&t&&(r.TgZ(0,"mat-step",32),r.TgZ(1,"form",33),r.YNc(2,_t,1,1,"ng-template",12),r.YNc(3,Ct,9,3,"div",34),r.YNc(4,At,3,0,"div",14),r.qZA(),r.qZA()),2&t){const t=r.oxw();r.Q6J("stepControl",t.tokenFormGroup),r.xp6(1),r.Q6J("formGroup",t.tokenFormGroup),r.xp6(2),r.Q6J("ngIf",!t.flgValidated||!t.isTokenValid),r.xp6(1),r.Q6J("ngIf",t.flgValidated&&t.isTokenValid)}}function Et(t,e){if(1&t&&r._uU(0),2&t){const t=r.oxw(2);r.Oqu(t.disableFormLabel)}}function kt(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",7),r.TgZ(1,"div",37),r._UZ(2,"fa-icon",26),r.TgZ(3,"span"),r._uU(4,"You are about to disable two-factor authentication security from RTL. Are you sure you want to turn it off?"),r.qZA(),r.qZA(),r.TgZ(5,"div",30),r.TgZ(6,"button",36),r.NdJ("click",function(){return r.CHM(t),r.oxw(2).onVerifyToken()}),r._uU(7,"Disable"),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw(2);r.xp6(2),r.Q6J("icon",t.faExclamationTriangle)}}function Tt(t,e){1&t&&(r.TgZ(0,"div"),r.TgZ(1,"strong"),r._uU(2,"Two factor authentication removed from RTL."),r.qZA(),r.qZA())}function Mt(t,e){if(1&t&&(r.TgZ(0,"mat-step",32),r.TgZ(1,"form",33),r.YNc(2,Et,1,1,"ng-template",12),r.YNc(3,kt,8,1,"div",34),r.YNc(4,Tt,3,0,"div",14),r.qZA(),r.qZA()),2&t){const t=r.oxw();r.Q6J("stepControl",t.disableFormGroup),r.xp6(1),r.Q6J("formGroup",t.disableFormGroup),r.xp6(2),r.Q6J("ngIf",!t.flgValidated||!t.isTokenValid),r.xp6(1),r.Q6J("ngIf",t.flgValidated&&t.isTokenValid)}}let Lt=(()=>{class t{constructor(t,e,i,n,r,s){this.dialogRef=t,this.data=e,this.store=i,this.formBuilder=n,this.rtlEffects=r,this.snackBar=s,this.faExclamationTriangle=N.eHv,this.faCopy=N.kZ_,this.faInfoCircle=N.sqG,this.flgValidated=!1,this.isTokenValid=!0,this.otpauth="",this.flgEditable=!0,this.showDisableStepper=!1,this.passwordFormLabel="Authenticate with your RTL password",this.secretFormLabel="Scan or copy the secret",this.tokenFormLabel="Verify your authentication is working",this.disableFormLabel="Disable two factor authentication",this.passwordFormGroup=this.formBuilder.group({hiddenPassword:["",[W.kI.required]],password:["",[W.kI.required]]}),this.secretFormGroup=this.formBuilder.group({secret:[{value:"",disabled:!0},W.kI.required]}),this.tokenFormGroup=this.formBuilder.group({token:["",W.kI.required]}),this.disableFormGroup=this.formBuilder.group({}),this.unSubs=[new h.x,new h.x]}ngOnInit(){this.appConfig=this.data.appConfig,this.showDisableStepper=!!this.appConfig.enable2FA,this.secretFormGroup=this.formBuilder.group({secret:[{value:this.appConfig.enable2FA?"":this.generateSecret(),disabled:!0},W.kI.required]})}generateSecret(){const t=at.authenticator.generateSecret();return this.otpauth=at.authenticator.keyuri("","Ride The Lightning (RTL)",t),t}onAuthenticate(){if(!this.passwordFormGroup.controls.password.value)return!0;this.flgValidated=!1,this.store.dispatch(new j.ZF(rt(this.passwordFormGroup.controls.password.value))),this.rtlEffects.isAuthorizedRes.pipe((0,st.q)(1)).subscribe(t=>{"ERROR"!==t?(this.passwordFormGroup.controls.hiddenPassword.setValue(this.passwordFormGroup.controls.password.value),this.stepper.next()):(this.dialogRef.close(),this.snackBar.open("Unauthorized User. Logging out from RTL."))})}onCopySecret(t){this.snackBar.open("Secret code "+this.secretFormGroup.controls.secret.value+" copied.")}onVerifyToken(){if(this.appConfig.enable2FA)this.store.dispatch(new j.z2({secret2fa:""})),this.generateSecret(),this.isTokenValid=!0;else{if(!this.tokenFormGroup.controls.token.value)return!0;if(this.isTokenValid=at.authenticator.check(this.tokenFormGroup.controls.token.value,this.secretFormGroup.controls.secret.value),!this.isTokenValid)return this.tokenFormGroup.controls.token.setErrors({notValid:!0}),!0;this.store.dispatch(new j.z2({secret2fa:this.secretFormGroup.controls.secret.value})),this.tokenFormGroup.controls.token.setValue("")}this.flgValidated=!0,this.appConfig.enable2FA=!this.appConfig.enable2FA}stepSelectionChanged(t){switch(t.selectedIndex){case 0:this.passwordFormLabel="Authenticate with your RTL password";break;case 1:case 2:this.passwordFormLabel="User authenticated successfully";break;default:this.passwordFormLabel="Authenticate with your RTL password"}t.selectedIndex{t.next(),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(ot.so),r.Y36(ot.WI),r.Y36(a.yh),r.Y36(W.qu),r.Y36(lt.V),r.Y36(ct.ux))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-two-factor-auth"]],viewQuery:function(t,e){if(1&t&&r.Gf(ft,5),2&t){let t;r.iGM(t=r.CRH())&&(e.stepper=t.first)}},decls:28,vars:11,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","15","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayoutAlign","space-between",1,"my-1","pr-1",3,"formGroup"],["matStepLabel",""],["autoFocus","","matInput","","placeholder","Password","type","password","tabindex","1","formControlName","password","required",""],[4,"ngIf"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","button",3,"click"],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-stroked-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxLayout","column",1,"my-1","pr-1",3,"formGroup"],["matStepLabel","","disabled","true"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start"],[3,"qrdata","margin","width","errorCorrectionLevel","allowEmptyString"],["fxFlex","100",1,"w-100","alert","alert-info"],[1,"mt-1","mr-1","alert-icon",3,"icon"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between stretch"],["autoFocus","","matInput","","placeholder","Secret Code","type","text","tabindex","4","formControlName","secret","required",""],["matSuffix","","rtlClipboard","",3,"icon","payload","copied"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","6","type","button","matStepperNext",""],[3,"stepControl"],["fxLayout","column","fxLayoutAlign","start",1,"my-1","pr-1",3,"formGroup"],["fxLayout","column",4,"ngIf"],["autoFocus","","matInput","","placeholder","Token","type","text","tabindex","7","formControlName","token","required",""],["mat-stroked-button","","color","primary","tabindex","8","type","button",3,"click"],["fxFlex","100",1,"w-100","alert","alert-warn"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.TgZ(2,"mat-card-header",2),r.TgZ(3,"div",3),r.TgZ(4,"span",4),r._uU(5,"Setup Two Factor Authentication"),r.qZA(),r.qZA(),r.TgZ(6,"button",5),r._uU(7,"X"),r.qZA(),r.qZA(),r.TgZ(8,"mat-card-content",6),r.TgZ(9,"div",7),r.TgZ(10,"mat-vertical-stepper",8,9),r.NdJ("selectionChange",function(t){return e.stepSelectionChanged(t)}),r.TgZ(12,"mat-step",10),r.TgZ(13,"form",11),r.YNc(14,mt,1,1,"ng-template",12),r.TgZ(15,"div",0),r.TgZ(16,"mat-form-field",1),r._UZ(17,"input",13),r.YNc(18,gt,2,0,"mat-error",14),r.qZA(),r.qZA(),r.TgZ(19,"div",15),r.TgZ(20,"button",16),r.NdJ("click",function(){return e.onAuthenticate()}),r._uU(21,"Confirm"),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.YNc(22,vt,17,12,"mat-step",17),r.YNc(23,St,5,4,"mat-step",18),r.YNc(24,Mt,5,4,"mat-step",18),r.qZA(),r.TgZ(25,"div",19),r.TgZ(26,"button",20),r._uU(27),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(6),r.Q6J("mat-dialog-close",!1),r.xp6(4),r.Q6J("linear",!0),r.xp6(2),r.Q6J("stepControl",e.passwordFormGroup)("editable",e.flgEditable),r.xp6(1),r.Q6J("formGroup",e.passwordFormGroup),r.xp6(5),r.Q6J("ngIf",null==e.passwordFormGroup||null==e.passwordFormGroup.controls||null==e.passwordFormGroup.controls.password||null==e.passwordFormGroup.controls.password.errors?null:e.passwordFormGroup.controls.password.errors.required),r.xp6(4),r.Q6J("ngIf",!e.showDisableStepper),r.xp6(1),r.Q6J("ngIf",!e.showDisableStepper),r.xp6(1),r.Q6J("ngIf",e.showDisableStepper),r.xp6(2),r.Q6J("mat-dialog-close",!1),r.xp6(1),r.Oqu(e.flgValidated&&e.isTokenValid?"Close":"Cancel"))},directives:[P.xw,P.yH,Z.dk,P.Wh,$.lW,ot.ZT,Z.dn,ht.Vq,ht.C0,W._Y,W.JL,W.sg,ht.VY,J.KE,ut.Nt,W.Fj,K.h,W.JJ,W.u,W.Q7,U.O5,J.TO,dt.V,F.BN,J.R9,pt.y,ht.Ic],styles:[""]}),t})();var It=i(3191),Ot=i(7679);const Dt=["authForm"];function Rt(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Current password is required."),r.qZA())}function Nt(t,e){if(1&t&&(r.TgZ(0,"mat-error"),r._uU(1),r.qZA()),2&t){const t=r.oxw();r.xp6(1),r.Oqu(t.errorMsg)}}function Pt(t,e){if(1&t&&(r.TgZ(0,"mat-error"),r._uU(1),r.qZA()),2&t){const t=r.oxw();r.xp6(1),r.Oqu(t.errorConfirmMsg)}}let Ft=(()=>{class t{constructor(t,e,i,n,r){this.store=t,this.logger=e,this.actions=i,this.router=n,this.sessionService=r,this.faInfoCircle=N.sqG,this.faUserLock=N.FJU,this.faUserClock=N.hnx,this.faLock=N.byT,this.currPassword="",this.newPassword="",this.confirmPassword="",this.errorMsg="",this.errorConfirmMsg="",this.initializeNodeData=!1,this.unSubs=[new h.x,new h.x,new h.x]}ngOnInit(){this.initializeNodeData="true"===this.sessionService.getItem("defaultPassword"),this.store.select("root").pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{this.appConfig=t.appConfig,this.selNode=t.selNode,this.logger.info(t)}),this.actions.pipe((0,k.R)(this.unSubs[2]),(0,A.h)(t=>t.type===j.Gs)).subscribe(t=>{if(G.kO.includes(this.currPassword.toLowerCase()))switch(this.selNode.lnImplementation.toUpperCase()){case"CLT":this.router.navigate(["/cl/home"]);break;case"ECL":this.router.navigate(["/ecl/home"]);break;default:this.router.navigate(["/lnd/home"])}this.form.resetForm()})}onChangePassword(){if(!this.currPassword||!this.newPassword||!this.confirmPassword||this.currPassword===this.newPassword||this.newPassword!==this.confirmPassword||G.kO.includes(this.newPassword.toLowerCase()))return!0;this.store.dispatch(new j.tq({currPassword:rt(this.currPassword),newPassword:rt(this.newPassword)}))}matchOldAndNewPasswords(){let t=!1;return this.form.controls.newpassword&&(this.newPassword?""!==this.currPassword&&""!==this.newPassword&&this.currPassword===this.newPassword?(this.form.controls.newpassword.setErrors({invalid:!0}),this.errorMsg="Old and New password cannot be same.",t=!0):G.kO.includes(this.newPassword.toLowerCase())?(this.form.controls.newpassword.setErrors({invalid:!0}),this.errorMsg=G.kO.reduce((t,e,i)=>i{t.next(),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(a.yh),r.Y36(V.mQ),r.Y36(l.eX),r.Y36(R.F0),r.Y36(It.m))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-auth-settings"]],viewQuery:function(t,e){if(1&t&&r.Gf(Dt,7),2&t){let t;r.iGM(t=r.CRH())&&(e.form=t.first)}},decls:35,vars:11,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"page-sub-title-container","mt-1"],["authForm","ngForm"],["fxLayout","row","fxLayoutAlign","start start",1,"mb-2"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["matInput","","placeholder","Current Password","type","password","id","currpassword","name","currpassword","tabindex","6","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["matInput","","placeholder","New Password","type","password","id","newpassword","name","newpassword","tabindex","7","required","",3,"ngModel","ngModelChange"],["matInput","","placeholder","Confirm New Password","type","password","id","confirmpassword","name","confirmpassword","tabindex","8","required","",3,"ngModel","ngModelChange"],["fxLayout","row","fxLayoutAlign","start start",1,"mt-1"],["mat-stroked-button","","color","primary","type","reset","tabindex","9",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","10","type","button",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","end stretch",1,"my-2"],[3,"inset"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],[1,"mb-1","settings-container","page-sub-title-container","mt-1"],[1,"alert","alert-info"],[1,"mt-1","mr-1","alert-icon",3,"icon"],[1,"mt-1"],["mat-flat-button","","color","primary","tabindex","11",1,"mb-2",3,"click"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"form",1,2),r.TgZ(3,"div",3),r._UZ(4,"fa-icon",4),r.TgZ(5,"span",5),r._uU(6,"Password"),r.qZA(),r.qZA(),r.TgZ(7,"mat-form-field"),r.TgZ(8,"input",6),r.NdJ("ngModelChange",function(t){return e.currPassword=t}),r.qZA(),r.YNc(9,Rt,2,0,"mat-error",7),r.qZA(),r.TgZ(10,"mat-form-field"),r.TgZ(11,"input",8),r.NdJ("ngModelChange",function(t){return e.newPassword=t}),r.qZA(),r.YNc(12,Nt,2,1,"mat-error",7),r.qZA(),r.TgZ(13,"mat-form-field"),r.TgZ(14,"input",9),r.NdJ("ngModelChange",function(t){return e.confirmPassword=t}),r.qZA(),r.YNc(15,Pt,2,1,"mat-error",7),r.qZA(),r.TgZ(16,"div",10),r.TgZ(17,"button",11),r.NdJ("click",function(){return e.onResetPassword()}),r._uU(18,"Reset"),r.qZA(),r.TgZ(19,"button",12),r.NdJ("click",function(){return e.onChangePassword()}),r._uU(20,"Change Password"),r.qZA(),r.qZA(),r.qZA(),r.TgZ(21,"div",13),r._UZ(22,"mat-divider",14),r.qZA(),r.TgZ(23,"div",15),r.TgZ(24,"div",16),r._UZ(25,"fa-icon",4),r.TgZ(26,"span",5),r._uU(27,"Two Factor Authentication"),r.qZA(),r.qZA(),r.TgZ(28,"div",17),r._UZ(29,"fa-icon",18),r.TgZ(30,"span"),r._uU(31,"Protect your account from unauthorized access by requiring a second authentication method in addition to your password."),r.qZA(),r.qZA(),r.TgZ(32,"div",19),r.TgZ(33,"button",20),r.NdJ("click",function(){return e.on2FAuth()}),r._uU(34),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(4),r.Q6J("icon",e.faLock),r.xp6(4),r.Q6J("ngModel",e.currPassword),r.xp6(1),r.Q6J("ngIf",!e.currPassword),r.xp6(2),r.Q6J("ngModel",e.newPassword),r.xp6(1),r.Q6J("ngIf",e.matchOldAndNewPasswords()),r.xp6(2),r.Q6J("ngModel",e.confirmPassword),r.xp6(1),r.Q6J("ngIf",e.matchNewPasswords()),r.xp6(7),r.Q6J("inset",!0),r.xp6(3),r.Q6J("icon",e.faUserClock),r.xp6(4),r.Q6J("icon",e.faInfoCircle),r.xp6(5),r.Oqu(e.appConfig.enable2FA?"Disable 2FA":"Enable 2FA"))},directives:[P.xw,P.yH,P.Wh,W._Y,W.JL,W.F,F.BN,J.KE,ut.Nt,W.Fj,W.Q7,W.JJ,W.On,U.O5,$.lW,Ot.d,J.TO],styles:[""]}),t})();var Zt=i(5250);function Bt(t,e){1&t&&r._UZ(0,"mat-divider",7)}function Ut(t,e){if(1&t&&(r.TgZ(0,"div",4),r.TgZ(1,"pre",5),r._uU(2),r.ALo(3,"json"),r.qZA(),r.YNc(4,Bt,1,0,"mat-divider",6),r.qZA()),2&t){const t=r.oxw();r.xp6(2),r.Oqu(r.lcZ(3,2,t.configData)),r.xp6(2),r.Q6J("ngIf",""!==t.configData)}}function qt(t,e){if(1&t&&(r.TgZ(0,"h2"),r._uU(1),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Oqu(t)}}function zt(t,e){if(1&t&&(r.TgZ(0,"h4",14),r._uU(1),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Oqu(t)}}function Ht(t,e){1&t&&r._UZ(0,"mat-divider",15),2&t&&r.Q6J("inset",!0)}function Yt(t,e){if(1&t&&(r.TgZ(0,"mat-list-item"),r.TgZ(1,"mat-card-subtitle",7),r.YNc(2,qt,2,1,"h2",10),r.qZA(),r.TgZ(3,"mat-card-subtitle",11),r.YNc(4,zt,2,1,"h4",12),r.qZA(),r.YNc(5,Ht,1,1,"mat-divider",13),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.Q6J("ngIf",t.indexOf("[")>=0),r.xp6(2),r.Q6J("ngIf",t.indexOf("[")<0),r.xp6(1),r.Q6J("ngIf",t.indexOf("[")<0)}}function Gt(t,e){if(1&t&&(r.TgZ(0,"div",8),r.TgZ(1,"mat-list"),r.YNc(2,Yt,6,3,"mat-list-item",9),r.qZA(),r.qZA()),2&t){const t=r.oxw();r.xp6(2),r.Q6J("ngForOf",t.configData)}}let jt=(()=>{class t{constructor(t,e,i){this.store=t,this.rtlEffects=e,this.router=i,this.selectedNodeType="",this.configData="",this.fileFormat="INI",this.faCog=N.b7W,this.unSubs=[new h.x,new h.x]}ngOnInit(){this.selectedNodeType=this.router.url.includes("bconfig")?"bitcoind":"ln",this.router.events.pipe((0,k.R)(this.unSubs[0]),(0,A.h)(t=>t instanceof R.Av)).subscribe(t=>{this.selectedNodeType=t.urlAfterRedirects.includes("bconfig")?"bitcoind":"ln"}),this.store.dispatch(new j.Fj(this.selectedNodeType)),this.rtlEffects.showLnConfig.pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{const e=t.data;this.fileFormat=t.format,this.configData=""===e||!e||"INI"!==this.fileFormat&&"HOCON"!==this.fileFormat?""!==e&&e&&"JSON"===this.fileFormat?e:"":e.split("\n")})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(a.yh),r.Y36(lt.V),r.Y36(R.F0))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-bitcoin-config"]],decls:4,vars:2,consts:[["fxLayout","column","fxFlex","100"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxFlex","100","class","mb-6",4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxFlex","100",1,"mb-6"],[1,"pre-wrap"],["class","my-1",4,"ngIf"],[1,"my-1"],["fxFlex","100"],[4,"ngFor","ngForOf"],[4,"ngIf"],[1,"m-0"],["class","ml-4",4,"ngIf"],[3,"inset",4,"ngIf"],[1,"ml-4"],[3,"inset"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.YNc(2,Ut,5,4,"div",2),r.YNc(3,Gt,3,1,"div",3),r.qZA(),r.qZA()),2&t&&(r.xp6(2),r.Q6J("ngIf",""!==e.configData&&"JSON"===e.fileFormat),r.xp6(1),r.Q6J("ngIf",""!==e.configData&&("INI"===e.fileFormat||"HOCON"===e.fileFormat)))},directives:[P.xw,P.yH,P.Wh,U.O5,Ot.d,Zt.i$,U.sg,Zt.Tg,Z.$j],pipes:[U.Ts],styles:["h4[_ngcontent-%COMP%]{word-break:break-word}"]}),t})();const Vt=function(){return{initial:!1}};function Qt(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",10),r.NdJ("click",function(){r.CHM(t);const e=r.oxw();return e.activeLink=e.links[1].link}),r._uU(1),r.qZA()}if(2&t){const t=r.oxw();r.s9C("routerLink",t.links[1].link),r.Q6J("active",t.activeLink===t.links[1].link)("state",r.DdM(4,Vt)),r.xp6(1),r.Oqu(t.links[1].name)}}function Wt(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("click",function(){r.CHM(t);const e=r.oxw();return e.activeLink=e.links[2].link}),r._uU(1),r.qZA()}if(2&t){const t=r.oxw();r.s9C("routerLink",t.links[2].link),r.Q6J("active",t.activeLink===t.links[2].link),r.xp6(1),r.Oqu(t.links[2].name)}}let Jt=(()=>{class t{constructor(t,e){this.store=t,this.router=e,this.faTools=N.CgH,this.showLnConfig=!1,this.lnImplementationStr="",this.links=[{link:"node",name:"Node"},{link:"services",name:"Services"},{link:"lnconfig",name:this.lnImplementationStr}],this.activeLink="",this.unSubs=[new h.x,new h.x,new h.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,k.R)(this.unSubs[0]),(0,A.h)(t=>t instanceof R.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link}),this.store.select("root").pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{switch(this.showLnConfig=!1,this.appConfig=t.appConfig,this.selNode=t.selNode,this.selNode.lnImplementation.toUpperCase()){case"CLT":this.lnImplementationStr="C-Lightning Config";break;case"ECL":this.lnImplementationStr="Eclair Config";break;default:this.lnImplementationStr="LND Config"}this.selNode.authentication&&this.selNode.authentication.configPath&&""!==this.selNode.authentication.configPath.trim()&&(this.links[2].name=this.lnImplementationStr,this.showLnConfig=!0)})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(a.yh),r.Y36(R.F0))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-node-config"]],decls:14,vars:6,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","state","click",4,"ngIf"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","state","click"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r._UZ(1,"fa-icon",1),r.TgZ(2,"span",2),r._uU(3,"Node Config"),r.qZA(),r.qZA(),r.TgZ(4,"div",3),r.TgZ(5,"mat-card"),r.TgZ(6,"mat-card-content",4),r.TgZ(7,"nav",5),r.TgZ(8,"div",6),r.NdJ("click",function(){return e.activeLink=e.links[0].link}),r._uU(9),r.qZA(),r.YNc(10,Qt,2,5,"div",7),r.YNc(11,Wt,2,3,"div",8),r.qZA(),r.TgZ(12,"div",9),r._UZ(13,"router-outlet"),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(1),r.Q6J("icon",e.faTools),r.xp6(7),r.s9C("routerLink",e.links[0].link),r.Q6J("active",e.activeLink===e.links[0].link),r.xp6(1),r.Oqu(e.links[0].name),r.xp6(1),r.Q6J("ngIf","LND"===e.selNode.lnImplementation.toUpperCase()),r.xp6(1),r.Q6J("ngIf",e.showLnConfig))},directives:[P.xw,P.Wh,F.BN,Z.a8,Z.dn,B.BU,B.Nj,R.rH,U.O5,P.yH,R.lC],styles:[""]}),t})();function Xt(t,e){1&t&&r._UZ(0,"mat-divider",7)}function Kt(t,e){if(1&t&&(r.TgZ(0,"div",4),r.TgZ(1,"pre",5),r._uU(2),r.ALo(3,"json"),r.qZA(),r.YNc(4,Xt,1,0,"mat-divider",6),r.qZA()),2&t){const t=r.oxw();r.xp6(2),r.Oqu(r.lcZ(3,2,t.configData)),r.xp6(2),r.Q6J("ngIf",""!==t.configData)}}function $t(t,e){if(1&t&&(r.TgZ(0,"h2"),r._uU(1),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Oqu(t)}}function te(t,e){if(1&t&&(r.TgZ(0,"h4",14),r._uU(1),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Oqu(t)}}function ee(t,e){1&t&&r._UZ(0,"mat-divider",15),2&t&&r.Q6J("inset",!0)}function ie(t,e){if(1&t&&(r.TgZ(0,"mat-list-item"),r.TgZ(1,"mat-card-subtitle",7),r.YNc(2,$t,2,1,"h2",10),r.qZA(),r.TgZ(3,"mat-card-subtitle",11),r.YNc(4,te,2,1,"h4",12),r.qZA(),r.YNc(5,ee,1,1,"mat-divider",13),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.Q6J("ngIf",t.indexOf("[")>=0),r.xp6(2),r.Q6J("ngIf",t.indexOf("[")<0),r.xp6(1),r.Q6J("ngIf",t.indexOf("[")<0)}}function ne(t,e){if(1&t&&(r.TgZ(0,"div",8),r.TgZ(1,"mat-list"),r.YNc(2,ie,6,3,"mat-list-item",9),r.qZA(),r.qZA()),2&t){const t=r.oxw();r.xp6(2),r.Q6J("ngForOf",t.configData)}}let re=(()=>{class t{constructor(t,e,i){this.store=t,this.rtlEffects=e,this.router=i,this.selectedNodeType="",this.configData="",this.fileFormat="INI",this.faCog=N.b7W,this.unSubs=[new h.x,new h.x]}ngOnInit(){this.selectedNodeType=this.router.url.includes("bconfig")?"bitcoind":"ln",this.router.events.pipe((0,k.R)(this.unSubs[0]),(0,A.h)(t=>t instanceof R.Av)).subscribe(t=>{this.selectedNodeType=t.urlAfterRedirects.includes("bconfig")?"bitcoind":"ln"}),this.store.dispatch(new j.Fj(this.selectedNodeType)),this.rtlEffects.showLnConfig.pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{const e=t.data;this.fileFormat=t.format,this.configData=""===e||!e||"INI"!==this.fileFormat&&"HOCON"!==this.fileFormat?""!==e&&e&&"JSON"===this.fileFormat?e:"":e.split("\n")})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(a.yh),r.Y36(lt.V),r.Y36(R.F0))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-lnp-config"]],decls:4,vars:2,consts:[["fxLayout","column","fxFlex","100"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxFlex","100","class","mb-6",4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxFlex","100",1,"mb-6"],[1,"pre-wrap"],["class","my-1",4,"ngIf"],[1,"my-1"],["fxFlex","100"],[4,"ngFor","ngForOf"],[4,"ngIf"],[1,"m-0"],["class","ml-4",4,"ngIf"],[3,"inset",4,"ngIf"],[1,"ml-4"],[3,"inset"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.YNc(2,Kt,5,4,"div",2),r.YNc(3,ne,3,1,"div",3),r.qZA(),r.qZA()),2&t&&(r.xp6(2),r.Q6J("ngIf",""!==e.configData&&"JSON"===e.fileFormat),r.xp6(1),r.Q6J("ngIf",""!==e.configData&&("INI"===e.fileFormat||"HOCON"===e.fileFormat)))},directives:[P.xw,P.yH,P.Wh,U.O5,Ot.d,Zt.i$,U.sg,Zt.Tg,Z.$j],pipes:[U.Ts],styles:["h4[_ngcontent-%COMP%]{word-break:break-word}"]}),t})();var se=i(6124),oe=i(9939),ae=i(5678),le=i(1084),ce=i(7521),he=i(4810),ue=i(377);function de(t,e){if(1&t&&(r.TgZ(0,"mat-option",35),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.Q6J("value",t.id),r.xp6(1),r.hij(" ",t.id," ")}}function pe(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Currency unit is required."),r.qZA())}function fe(t,e){if(1&t&&(r.TgZ(0,"mat-radio-button",36),r._uU(1),r.ALo(2,"titlecase"),r.qZA()),2&t){const t=e.$implicit,i=r.oxw();r.Q6J("value",t)("checked",i.selNode.settings.userPersona===t),r.xp6(1),r.hij(" ",r.lcZ(2,3,t)," ")}}const me=function(t){return{"mr-4":t}};function ge(t,e){if(1&t&&(r.TgZ(0,"mat-radio-button",37),r._uU(1),r.qZA()),2&t){const t=e.$implicit,i=r.oxw();r.Q6J("value",t)("ngClass",r.VKq(3,me,i.screenSize===i.screenSizeEnum.XS||i.screenSize===i.screenSizeEnum.SM)),r.xp6(1),r.hij("",t.name," ")}}const ye=function(t){return{skin:!0,"selected-color":t}};function be(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"span",38),r.TgZ(1,"div",39),r.NdJ("click",function(){const e=r.CHM(t).$implicit;return r.oxw().changeThemeColor(e.id)}),r.ALo(2,"lowercase"),r.qZA(),r._uU(3),r.qZA()}if(2&t){const t=e.$implicit,i=r.oxw();r.xp6(1),r.Tol(r.lcZ(2,4,t.id)),r.Q6J("ngClass",r.VKq(6,ye,i.selectedThemeColor===t.id)),r.xp6(2),r.hij(" ",t.name," ")}}let ve=(()=>{class t{constructor(t,e,i){this.logger=t,this.commonService=e,this.store=i,this.faExclamationTriangle=N.eHv,this.faMoneyBillAlt=N.co4,this.faPaintBrush=N.XsY,this.faInfoCircle=N.sqG,this.information={},this.userPersonas=[G.ol.OPERATOR,G.ol.MERCHANT],this.currencyUnits=G.Er,this.themeModes=G.wZ.modes,this.themeColors=G.wZ.themes,this.selectedThemeMode=G.wZ.modes[0],this.selectedThemeColor=G.wZ.themes[0].id,this.currencyUnit="BTC",this.smallerCurrencyUnit="Sats",this.showSettingOption=!0,this.screenSize="",this.screenSizeEnum=G.cu,this.unSubs=[new h.x,new h.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.store.select("root").pipe((0,k.R)(this.unSubs[0])).subscribe(t=>{this.appConfig=t.appConfig,this.selNode=t.selNode,this.selectedThemeMode=this.themeModes.find(t=>this.selNode.settings.themeMode===t.id),this.selectedThemeColor=this.selNode.settings.themeColor,this.information=t.nodeData,this.selNode.settings.fiatConversion||(this.selNode.settings.currencyUnit=null),this.previousSettings=JSON.parse(JSON.stringify(this.selNode.settings)),this.logger.info(t)})}onCurrencyChange(t){this.selNode.settings.currencyUnits=[...G.uA,t.value],this.store.dispatch(new ae.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:t.value,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl})),this.store.dispatch(new oe.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:t.value,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl})),this.store.dispatch(new se.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:t.value,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl}))}toggleSettings(t,e){this.selNode.settings[t]=!this.selNode.settings[t]}changeThemeColor(t){this.selectedThemeColor=t,this.selNode.settings.themeColor=t}chooseThemeMode(){this.selNode.settings.themeMode=this.selectedThemeMode.id}onUpdateSettings(){if(this.selNode.settings.fiatConversion&&!this.selNode.settings.currencyUnit)return!0;this.logger.info(this.selNode.settings),this.store.dispatch(new j.j_({uiMessage:G.m6.UPDATE_NODE_SETTINGS,settings:this.selNode.settings})),this.store.dispatch(new ae.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl})),this.store.dispatch(new oe.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl})),this.store.dispatch(new se.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl}))}onResetSettings(){this.selNode.settings=this.previousSettings,this.selectedThemeMode=this.themeModes.find(t=>t.id===this.previousSettings.themeMode),this.selectedThemeColor=this.previousSettings.themeColor,this.store.dispatch(new j.ZG({uiMessage:G.m6.NO_SPINNER,lnNode:this.selNode,isInitialSetup:!0}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(le.v),r.Y36(a.yh))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-node-settings"]],decls:60,vars:17,consts:[["fxLayout","column","fxFlex","100",3,"perfectScrollbar"],["fxLayout","column","fxLayoutAlign","start stretch",1,"settings-container","page-sub-title-container","mt-1"],["form","ngForm"],["fxLayout","row"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column","fxLayoutAlign","start stretch",1,"mt-1","bordered-box","padding-gap-large"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["href","https://www.blockchain.com/api/exchange_rates_api","target","blank"],["fxLayout","row wrap","fxLayoutAlign","start center"],["tabindex","2","color","primary","name","fiatConversion",3,"ngModel","ngModelChange","change"],["autoFocus","","placeholder","Fiat Currency","tabindex","3","name","currencyUnit",3,"ngModel","disabled","required","ngModelChange","selectionChange"],["currencyUnit","ngModel"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","row wrap","fxLayoutAlign","start start","fxLayout.gt-sm","column","fxFlex","100","fxLayoutAlign.gt-sm","space-between stretch",1,"settings-container","page-sub-title-container","mt-1"],[1,"mt-1"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","row","fxFlex","100",1,"alert","alert-info","mb-0"],["fxLayout","column","fxLayoutAlign","start start","fxFlex","100"],["color","primary","tabindex","1","name","userPersona",3,"ngModel","ngModelChange"],["class","mr-4",3,"value","checked",4,"ngFor","ngForOf"],[1,"mt-1",3,"inset"],["fxLayout","column","fxLayout.gt-xs","row","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayoutAlign.gt-xs","start stretch"],["fxFlex.gt-xs","20","fxFlex.gt-md","15","fxLayout","column","fxLayoutAlign","space-between stretch"],["color","primary","name","themeMode",3,"ngModel","ngModelChange","change"],["tabindex","5",3,"value","ngClass",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex.gt-xs","50","fxFlex.gt-md","40","fxLayoutAlign","space-between stretch"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start"],["fxLayout","row","class","theme-name",4,"ngFor","ngForOf"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","10",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","11",3,"click"],[3,"value"],[1,"mr-4",3,"value","checked"],["tabindex","5",3,"value","ngClass"],["fxLayout","row",1,"theme-name"],["tabindex","9",3,"ngClass","click"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"form",1,2),r.TgZ(3,"div",3),r._UZ(4,"fa-icon",4),r.TgZ(5,"span",5),r._uU(6,"Balance Display"),r.qZA(),r.qZA(),r.TgZ(7,"div",6),r.TgZ(8,"div",7),r._UZ(9,"fa-icon",8),r.TgZ(10,"span"),r._uU(11,"Fiat conversion calls "),r.TgZ(12,"strong"),r.TgZ(13,"a",9),r._uU(14,"Blockchain.com"),r.qZA(),r.qZA(),r._uU(15," API to get conversion rates."),r.qZA(),r.qZA(),r.TgZ(16,"div",10),r.TgZ(17,"mat-slide-toggle",11),r.NdJ("ngModelChange",function(t){return e.selNode.settings.fiatConversion=t})("change",function(t){return e.selNode.settings.currencyUnit=t.checked?e.selNode.settings.currencyUnit:null}),r._uU(18,"Enable Fiat Conversion"),r.qZA(),r.TgZ(19,"mat-form-field"),r.TgZ(20,"mat-select",12,13),r.NdJ("ngModelChange",function(t){return e.selNode.settings.currencyUnit=t})("selectionChange",function(t){return e.onCurrencyChange(t)}),r.YNc(22,de,2,2,"mat-option",14),r.qZA(),r.YNc(23,pe,2,0,"mat-error",15),r.qZA(),r.qZA(),r.qZA(),r.TgZ(24,"div",16),r.TgZ(25,"div",17),r.TgZ(26,"div",18),r._UZ(27,"fa-icon",4),r.TgZ(28,"span",5),r._uU(29,"Customization"),r.qZA(),r.qZA(),r.TgZ(30,"div",6),r.TgZ(31,"div",19),r.TgZ(32,"div",20),r._UZ(33,"fa-icon",8),r.TgZ(34,"span"),r._uU(35,"Dashboard layout will be tailored based on the role selected to better serve its needs."),r.qZA(),r.qZA(),r.TgZ(36,"div",21),r.TgZ(37,"h4"),r._uU(38,"Dashboard Layout"),r.qZA(),r.TgZ(39,"mat-radio-group",22),r.NdJ("ngModelChange",function(t){return e.selNode.settings.userPersona=t}),r.YNc(40,fe,3,5,"mat-radio-button",23),r.qZA(),r.qZA(),r.qZA(),r._UZ(41,"mat-divider",24),r.TgZ(42,"div",25),r.TgZ(43,"div",26),r.TgZ(44,"h4"),r._uU(45,"Mode"),r.qZA(),r.TgZ(46,"mat-radio-group",27),r.NdJ("ngModelChange",function(t){return e.selectedThemeMode=t})("change",function(){return e.chooseThemeMode()}),r.YNc(47,ge,2,5,"mat-radio-button",28),r.qZA(),r.qZA(),r.qZA(),r._UZ(48,"mat-divider",24),r.TgZ(49,"div",25),r.TgZ(50,"div",29),r.TgZ(51,"h4"),r._uU(52,"Themes"),r.qZA(),r.TgZ(53,"div",30),r.YNc(54,be,4,8,"span",31),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.TgZ(55,"div",32),r.TgZ(56,"button",33),r.NdJ("click",function(){return e.onResetSettings()}),r._uU(57,"Reset"),r.qZA(),r.TgZ(58,"button",34),r.NdJ("click",function(){return e.onUpdateSettings()}),r._uU(59,"Update"),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(4),r.Q6J("icon",e.faMoneyBillAlt),r.xp6(5),r.Q6J("icon",e.faExclamationTriangle),r.xp6(8),r.Q6J("ngModel",e.selNode.settings.fiatConversion),r.xp6(3),r.Q6J("ngModel",e.selNode.settings.currencyUnit)("disabled",!e.selNode.settings.fiatConversion)("required",e.selNode.settings.fiatConversion),r.xp6(2),r.Q6J("ngForOf",e.currencyUnits),r.xp6(1),r.Q6J("ngIf",e.selNode.settings.fiatConversion&&!e.selNode.settings.currencyUnit),r.xp6(4),r.Q6J("icon",e.faPaintBrush),r.xp6(6),r.Q6J("icon",e.faInfoCircle),r.xp6(6),r.Q6J("ngModel",e.selNode.settings.userPersona),r.xp6(1),r.Q6J("ngForOf",e.userPersonas),r.xp6(1),r.Q6J("inset",!0),r.xp6(5),r.Q6J("ngModel",e.selectedThemeMode),r.xp6(1),r.Q6J("ngForOf",e.themeModes),r.xp6(1),r.Q6J("inset",!0),r.xp6(6),r.Q6J("ngForOf",e.themeColors))},directives:[P.xw,P.yH,Q.$V,W._Y,W.JL,W.F,P.Wh,F.BN,ce.Rr,W.JJ,W.On,J.KE,X.gD,K.h,W.Q7,U.sg,U.O5,he.VQ,Ot.d,$.lW,tt.ey,J.TO,he.U0,U.mk,ue.oO],pipes:[U.rS,U.i8],styles:[""]}),t})();const _e=function(){return{initial:!1}};let we=(()=>{class t{constructor(t,e){this.store=t,this.router=e,this.faLayerGroup=N.Krp,this.links=[{link:"loop",name:"Loop"},{link:"boltz",name:"Boltz"}],this.activeLink="",this.unSubs=[new h.x,new h.x,new h.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,k.R)(this.unSubs[0]),(0,A.h)(t=>t instanceof R.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link}),this.store.select("root").pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{this.appConfig=t.appConfig,this.selNode=t.selNode})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(a.yh),r.Y36(R.F0))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-services-settings"]],decls:14,vars:9,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container","mt-1"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","state","click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r._UZ(1,"fa-icon",1),r.TgZ(2,"span",2),r._uU(3,"Services"),r.qZA(),r.qZA(),r.TgZ(4,"div",3),r.TgZ(5,"mat-card"),r.TgZ(6,"mat-card-content",4),r.TgZ(7,"nav",5),r.TgZ(8,"div",6),r.NdJ("click",function(){return e.activeLink=e.links[0].link}),r._uU(9),r.qZA(),r.TgZ(10,"div",7),r.NdJ("click",function(){return e.activeLink=e.links[1].link}),r._uU(11),r.qZA(),r.qZA(),r.TgZ(12,"div",8),r._UZ(13,"router-outlet"),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(1),r.Q6J("icon",e.faLayerGroup),r.xp6(7),r.s9C("routerLink",e.links[0].link),r.Q6J("active",e.activeLink===e.links[0].link),r.xp6(1),r.Oqu(e.links[0].name),r.xp6(1),r.s9C("routerLink",e.links[1].link),r.Q6J("active",e.activeLink===e.links[1].link)("state",r.DdM(8,_e)),r.xp6(1),r.Oqu(e.links[1].name))},directives:[P.xw,P.Wh,F.BN,Z.a8,Z.dn,B.BU,B.Nj,R.rH,P.yH,R.lC],styles:[""]}),t})();const xe=["form"];function Ce(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Loop server URL is required."),r.qZA())}function Ae(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Specify the loop server url with 'https://'."),r.qZA())}function Se(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Loop macaroon path is required."),r.qZA())}let Ee=(()=>{class t{constructor(t,e){this.logger=t,this.store=e,this.faInfoCircle=N.sqG,this.enableLoop=!1,this.unSubs=[new h.x,new h.x]}ngOnInit(){this.store.select("root").pipe((0,k.R)(this.unSubs[0])).subscribe(t=>{this.appConfig=t.appConfig,this.selNode=t.selNode,this.enableLoop=t.selNode.settings.swapServerUrl&&""!==t.selNode.settings.swapServerUrl.trim(),this.previousSelNode=JSON.parse(JSON.stringify(this.selNode)),this.logger.info(t)})}onEnableServiceChanged(t){this.enableLoop=t.checked,this.enableLoop||(this.selNode.authentication.swapMacaroonPath="",this.selNode.settings.swapServerUrl="")}onUpdateService(){if(this.selNode.settings.swapServerUrl&&""!==this.selNode.settings.swapServerUrl.trim()&&!this.form.controls.srvrUrl.value.includes("https://")&&this.form.controls.srvrUrl.setErrors({invalid:!0}),this.enableLoop&&(!this.selNode.settings.swapServerUrl||""===this.selNode.settings.swapServerUrl.trim()||!this.selNode.authentication.swapMacaroonPath||""===this.selNode.authentication.swapMacaroonPath.trim()))return!0;this.logger.info(this.selNode),this.store.dispatch(new j.wq({uiMessage:G.m6.UPDATE_LOOP_SETTINGS,service:G.JX.LOOP,settings:{enable:this.enableLoop,serverUrl:this.selNode.settings.swapServerUrl,macaroonPath:this.selNode.authentication.swapMacaroonPath}})),this.store.dispatch(new ae.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl})),this.store.dispatch(new oe.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl})),this.store.dispatch(new se.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl}))}onReset(){this.selNode=JSON.parse(JSON.stringify(this.previousSelNode)),this.enableLoop=this.selNode.settings.swapServerUrl&&""!==this.selNode.settings.swapServerUrl.trim()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(a.yh))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-loop-service-settings"]],viewQuery:function(t,e){if(1&t&&r.Gf(xe,7),2&t){let t;r.iGM(t=r.CRH())&&(e.form=t.first)}},decls:34,vars:11,consts:[["fxLayout","column","fxFlex","100",3,"perfectScrollbar"],["fxFlex","100",1,"alert","alert-info","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["href","https://github.com/lightninglabs/loop","target","_blank"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"settings-container","page-sub-title-container","mt-1"],["form","ngForm"],["fxLayout","column","fxFlex","50","fxLayoutAlign","start stretch"],["autoFocus","","tabindex","1","color","primary","name","loop",1,"mb-1",3,"ngModel","ngModelChange","change"],[1,"mb-2"],["matInput","","placeholder","Loop Server URL","type","text","id","swapServerUrl","name","srvrUrl","tabindex","2",3,"ngModel","required","disabled","ngModelChange"],["srvrUrl","ngModel"],[4,"ngIf"],["matInput","","placeholder","Loop Macaroon Path","type","text","id","swapMacaroonPath","name","swapMacaroonPath","tabindex","3",3,"ngModel","required","disabled","ngModelChange"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","type","reset","tabindex","4",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","5",3,"click"]],template:function(t,e){if(1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r._UZ(2,"fa-icon",2),r.TgZ(3,"span"),r._uU(4,"Please ensure that "),r.TgZ(5,"strong"),r._uU(6,"loopd"),r.qZA(),r._uU(7," is running and accessible to RTL before enabling this service. Click "),r.TgZ(8,"strong"),r.TgZ(9,"a",3),r._uU(10,"here"),r.qZA(),r.qZA(),r._uU(11," to learn more about the installation."),r.qZA(),r.qZA(),r.TgZ(12,"form",4,5),r.TgZ(14,"div",6),r.TgZ(15,"mat-slide-toggle",7),r.NdJ("ngModelChange",function(t){return e.enableLoop=t})("change",function(t){return e.onEnableServiceChanged(t)}),r._uU(16,"Enable Loop Service"),r.qZA(),r.TgZ(17,"mat-form-field",8),r.TgZ(18,"input",9,10),r.NdJ("ngModelChange",function(t){return e.selNode.settings.swapServerUrl=t}),r.qZA(),r.TgZ(20,"mat-hint"),r._uU(21,"Service url for loop server REST APIs, eg. https://localhost:8081"),r.qZA(),r.YNc(22,Ce,2,0,"mat-error",11),r.YNc(23,Ae,2,0,"mat-error",11),r.qZA(),r.TgZ(24,"mat-form-field"),r.TgZ(25,"input",12),r.NdJ("ngModelChange",function(t){return e.selNode.authentication.swapMacaroonPath=t}),r.qZA(),r.TgZ(26,"mat-hint"),r._uU(27,"Path for the folder containing service 'loop.macaroon', eg. D:\\\\xyz\\\\AppData\\\\Local\\\\Loop\\\\testnet"),r.qZA(),r.YNc(28,Se,2,0,"mat-error",11),r.qZA(),r.qZA(),r.qZA(),r.TgZ(29,"div",13),r.TgZ(30,"button",14),r.NdJ("click",function(){return e.onReset()}),r._uU(31,"Reset"),r.qZA(),r.TgZ(32,"button",15),r.NdJ("click",function(){return e.onUpdateService()}),r._uU(33,"Update"),r.qZA(),r.qZA(),r.qZA()),2&t){const t=r.MAs(19);r.xp6(2),r.Q6J("icon",e.faInfoCircle),r.xp6(13),r.Q6J("ngModel",e.enableLoop),r.xp6(3),r.Q6J("ngModel",e.selNode.settings.swapServerUrl)("required",e.enableLoop)("disabled",!e.enableLoop),r.xp6(4),r.Q6J("ngIf",!e.selNode.settings.swapServerUrl&&e.enableLoop),r.xp6(1),r.Q6J("ngIf",(null==t||null==t.errors?null:t.errors.invalid)&&e.enableLoop),r.xp6(2),r.Q6J("ngModel",e.selNode.authentication.swapMacaroonPath)("required",e.enableLoop)("disabled",!e.enableLoop),r.xp6(3),r.Q6J("ngIf",!e.selNode.authentication.swapMacaroonPath&&e.enableLoop)}},directives:[P.xw,P.yH,Q.$V,F.BN,W._Y,W.JL,W.F,P.Wh,ce.Rr,K.h,W.JJ,W.On,J.KE,ut.Nt,W.Fj,W.Q7,J.bx,U.O5,$.lW,J.TO],styles:["h4[_ngcontent-%COMP%]{word-break:break-word}"]}),t})();const ke=["form"];function Te(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Boltz server URL is required."),r.qZA())}function Me(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Specify the boltz server url with 'https://'."),r.qZA())}function Le(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Boltz macaroon path is required."),r.qZA())}let Ie=(()=>{class t{constructor(t,e){this.logger=t,this.store=e,this.faInfoCircle=N.sqG,this.enableBoltz=!1,this.serverUrl="",this.macaroonPath="",this.unSubs=[new h.x,new h.x]}ngOnInit(){this.store.select("root").pipe((0,k.R)(this.unSubs[0])).subscribe(t=>{this.appConfig=t.appConfig,this.selNode=t.selNode,this.enableBoltz=t.selNode.settings.boltzServerUrl&&""!==t.selNode.settings.boltzServerUrl.trim(),this.serverUrl=this.selNode.settings.boltzServerUrl,this.macaroonPath=this.selNode.authentication.boltzMacaroonPath,this.previousSelNode=JSON.parse(JSON.stringify(this.selNode)),this.logger.info(t)})}onEnableServiceChanged(t){this.enableBoltz=t.checked,this.enableBoltz||(this.macaroonPath="",this.serverUrl="")}onUpdateService(){if(this.serverUrl&&""!==this.serverUrl.trim()&&!this.form.controls.srvrUrl.value.includes("https://")&&this.form.controls.srvrUrl.setErrors({invalid:!0}),this.enableBoltz&&(!this.serverUrl||""===this.serverUrl.trim()||!this.serverUrl.includes("https://")||!this.macaroonPath||""===this.macaroonPath.trim()))return!0;this.logger.info(this.selNode),this.selNode.settings.boltzServerUrl=this.serverUrl,this.selNode.authentication.boltzMacaroonPath=this.macaroonPath,this.store.dispatch(new j.wq({uiMessage:G.m6.UPDATE_BOLTZ_SETTINGS,service:G.JX.BOLTZ,settings:{enable:this.enableBoltz,serverUrl:this.serverUrl,macaroonPath:this.macaroonPath}})),this.store.dispatch(new ae.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.serverUrl})),this.store.dispatch(new oe.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.serverUrl})),this.store.dispatch(new se.vI({userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.serverUrl}))}onReset(){this.selNode=JSON.parse(JSON.stringify(this.previousSelNode)),this.serverUrl=this.selNode.settings.boltzServerUrl,this.macaroonPath=this.selNode.authentication.boltzMacaroonPath,this.enableBoltz=this.serverUrl&&""!==this.serverUrl.trim()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(a.yh))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-boltz-service-settings"]],viewQuery:function(t,e){if(1&t&&r.Gf(ke,7),2&t){let t;r.iGM(t=r.CRH())&&(e.form=t.first)}},decls:34,vars:11,consts:[["fxLayout","column","fxFlex","100",3,"perfectScrollbar"],["fxFlex","100",1,"alert","alert-info","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["href","https://lnd.docs.boltz.exchange/en/latest/","target","_blank"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"settings-container","page-sub-title-container","mt-1"],["form","ngForm"],["fxLayout","column","fxFlex","50","fxLayoutAlign","start stretch"],["autoFocus","","tabindex","1","color","primary","name","boltz",1,"mb-1",3,"ngModel","ngModelChange","change"],[1,"mb-2"],["matInput","","placeholder","Boltz Server URL","type","text","id","boltzServerUrl","name","srvrUrl","tabindex","2",3,"ngModel","required","disabled","ngModelChange"],["srvrUrl","ngModel"],[4,"ngIf"],["matInput","","placeholder","Boltz Macaroon Path","type","text","id","boltzMacaroonPath","name","boltzMacaroonPath","tabindex","3",3,"ngModel","required","disabled","ngModelChange"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","type","reset","tabindex","4",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","5",3,"click"]],template:function(t,e){if(1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r._UZ(2,"fa-icon",2),r.TgZ(3,"span"),r._uU(4,"Please ensure that "),r.TgZ(5,"strong"),r._uU(6,"boltzd"),r.qZA(),r._uU(7," is running and accessible to RTL before enabling this service. Click "),r.TgZ(8,"strong"),r.TgZ(9,"a",3),r._uU(10,"here"),r.qZA(),r.qZA(),r._uU(11," to learn more about the installation."),r.qZA(),r.qZA(),r.TgZ(12,"form",4,5),r.TgZ(14,"div",6),r.TgZ(15,"mat-slide-toggle",7),r.NdJ("ngModelChange",function(t){return e.enableBoltz=t})("change",function(t){return e.onEnableServiceChanged(t)}),r._uU(16,"Enable Boltz Service"),r.qZA(),r.TgZ(17,"mat-form-field",8),r.TgZ(18,"input",9,10),r.NdJ("ngModelChange",function(t){return e.serverUrl=t}),r.qZA(),r.TgZ(20,"mat-hint"),r._uU(21,"Service url for boltz server REST APIs, eg. https://localhost:9003"),r.qZA(),r.YNc(22,Te,2,0,"mat-error",11),r.YNc(23,Me,2,0,"mat-error",11),r.qZA(),r.TgZ(24,"mat-form-field"),r.TgZ(25,"input",12),r.NdJ("ngModelChange",function(t){return e.macaroonPath=t}),r.qZA(),r.TgZ(26,"mat-hint"),r._uU(27,"Path for the folder containing boltz 'admin.macaroon', eg. D:\\\\xyz\\\\AppData\\\\Boltz\\\\testnet"),r.qZA(),r.YNc(28,Le,2,0,"mat-error",11),r.qZA(),r.qZA(),r.qZA(),r.TgZ(29,"div",13),r.TgZ(30,"button",14),r.NdJ("click",function(){return e.onReset()}),r._uU(31,"Reset"),r.qZA(),r.TgZ(32,"button",15),r.NdJ("click",function(){return e.onUpdateService()}),r._uU(33,"Update"),r.qZA(),r.qZA(),r.qZA()),2&t){const t=r.MAs(19);r.xp6(2),r.Q6J("icon",e.faInfoCircle),r.xp6(13),r.Q6J("ngModel",e.enableBoltz),r.xp6(3),r.Q6J("ngModel",e.serverUrl)("required",e.enableBoltz)("disabled",!e.enableBoltz),r.xp6(4),r.Q6J("ngIf",(!e.serverUrl||""===e.serverUrl.trim())&&e.enableBoltz),r.xp6(1),r.Q6J("ngIf",(null==t||null==t.errors?null:t.errors.invalid)&&e.enableBoltz),r.xp6(2),r.Q6J("ngModel",e.macaroonPath)("required",e.enableBoltz)("disabled",!e.enableBoltz),r.xp6(3),r.Q6J("ngIf",!e.macaroonPath&&e.enableBoltz)}},directives:[P.xw,P.yH,Q.$V,F.BN,W._Y,W.JL,W.F,P.Wh,ce.Rr,K.h,W.JJ,W.On,J.KE,ut.Nt,W.Fj,W.Q7,J.bx,U.O5,$.lW,J.TO],styles:["h4[_ngcontent-%COMP%]{word-break:break-word}"]}),t})(),Oe=(()=>{class t{constructor(t,e){this.store=t,this.router=e,this.faLayerGroup=N.Krp,this.showLnConfig=!1,this.showBitcoind=!1,this.lnImplementationStr="",this.links=[{link:"layout",name:"Layout"},{link:"auth",name:"Authentication"},{link:"lnconfig",name:this.lnImplementationStr},{link:"bconfig",name:"BitcoinD Config"}],this.activeLink="",this.unSubs=[new h.x,new h.x,new h.x]}ngOnInit(){const t=this.links.find(t=>this.router.url.includes(t.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,k.R)(this.unSubs[0]),(0,A.h)(t=>t instanceof R.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeLink=e?e.link:this.links[0].link}),this.store.select("root").pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{switch(this.showLnConfig=!1,this.showBitcoind=!1,this.appConfig=t.appConfig,this.selNode=t.selNode,this.selNode.lnImplementation.toUpperCase()){case"CLT":this.lnImplementationStr="C-Lightning Config";break;case"ECL":this.lnImplementationStr="Eclair Config";break;default:this.lnImplementationStr="LND Config"}this.selNode.authentication&&this.selNode.authentication.configPath&&""!==this.selNode.authentication.configPath.trim()&&(this.links[2].name=this.lnImplementationStr,this.showLnConfig=!0),this.selNode.settings&&this.selNode.settings.bitcoindConfigPath&&""!==this.selNode.settings.bitcoindConfigPath.trim()&&(this.showBitcoind=!0)})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(a.yh),r.Y36(R.F0))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-services"]],decls:1,vars:0,template:function(t,e){1&t&&r._UZ(0,"router-outlet")},directives:[R.lC],styles:[""]}),t})();var De=i(5028),Re=i(2969),Ne=i(3005),Pe=i(2464),Fe=i(7033),Ze=i(5994);function Be(t,e){1&t&&r._UZ(0,"mat-progress-bar",34)}function Ue(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," Initiation Time "),r.qZA())}function qe(t,e){if(1&t&&(r.TgZ(0,"td",36),r._uU(1),r.ALo(2,"date"),r.qZA()),2&t){const t=e.$implicit;r.xp6(1),r.Oqu(r.xi3(2,1,t.initiation_time/1e6,"dd/MMM/YYYY HH:mm"))}}function ze(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," Last Update Time "),r.qZA())}function He(t,e){if(1&t&&(r.TgZ(0,"td",36),r._uU(1),r.ALo(2,"date"),r.qZA()),2&t){const t=e.$implicit;r.xp6(1),r.Oqu(r.xi3(2,1,t.last_update_time/1e6,"dd/MMM/YYYY HH:mm"))}}function Ye(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," ID "),r.qZA())}function Ge(t,e){if(1&t&&(r.TgZ(0,"td",36),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.xp6(1),r.Oqu(t.id)}}function je(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," ID (Bytes) "),r.qZA())}function Ve(t,e){if(1&t&&(r.TgZ(0,"td",36),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.xp6(1),r.Oqu(t.id_bytes)}}function Qe(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," State "),r.qZA())}function We(t,e){if(1&t&&(r.TgZ(0,"td",36),r._uU(1),r.qZA()),2&t){const t=e.$implicit,i=r.oxw();r.xp6(1),r.Oqu(i.LoopStateEnum[t.state])}}function Je(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," HTLC Address "),r.qZA())}function Xe(t,e){if(1&t&&(r.TgZ(0,"td",36),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.xp6(1),r.Oqu(t.htlc_address)}}function Ke(t,e){1&t&&(r.TgZ(0,"th",37),r._uU(1," Amount (Sats) "),r.qZA())}function $e(t,e){if(1&t&&(r.TgZ(0,"td",36),r.TgZ(1,"span",38),r._uU(2),r.ALo(3,"number"),r.qZA(),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.Oqu(r.lcZ(3,1,t.amt))}}function ti(t,e){1&t&&(r.TgZ(0,"th",37),r._uU(1," Cost Server (Sats) "),r.qZA())}function ei(t,e){if(1&t&&(r.TgZ(0,"td",36),r.TgZ(1,"span",38),r._uU(2),r.ALo(3,"number"),r.qZA(),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.Oqu(r.lcZ(3,1,t.cost_server))}}function ii(t,e){1&t&&(r.TgZ(0,"th",37),r._uU(1," Cost Offchain (Sats) "),r.qZA())}function ni(t,e){if(1&t&&(r.TgZ(0,"td",36),r.TgZ(1,"span",38),r._uU(2),r.ALo(3,"number"),r.qZA(),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.Oqu(r.lcZ(3,1,t.cost_offchain))}}function ri(t,e){1&t&&(r.TgZ(0,"th",37),r._uU(1," Cost Onchain (Sats) "),r.qZA())}function si(t,e){if(1&t&&(r.TgZ(0,"td",36),r.TgZ(1,"span",38),r._uU(2),r.ALo(3,"number"),r.qZA(),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.hij(" ",r.lcZ(3,1,null==t?null:t.cost_onchain)," ")}}function oi(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"th",39),r.TgZ(1,"div",40),r.TgZ(2,"mat-select",41),r._UZ(3,"mat-select-trigger"),r.TgZ(4,"mat-option",42),r.NdJ("click",function(){return r.CHM(t),r.oxw().onDownloadCSV()}),r._uU(5,"Download CSV"),r.qZA(),r.qZA(),r.qZA(),r.qZA()}}function ai(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"td",43),r.TgZ(1,"button",44),r.NdJ("click",function(e){const i=r.CHM(t).$implicit;return r.oxw().onSwapClick(i,e)}),r._uU(2,"View Info"),r.qZA(),r.qZA()}}function li(t,e){if(1&t&&(r.TgZ(0,"p"),r._uU(1),r.qZA()),2&t){const t=r.oxw(2);r.xp6(1),r.Oqu(t.emptyTableMessage)}}function ci(t,e){if(1&t&&(r.TgZ(0,"td",45),r.YNc(1,li,2,1,"p",46),r.qZA()),2&t){const t=r.oxw();r.xp6(1),r.Q6J("ngIf",!(null!=t.listSwaps&&t.listSwaps.data)||(null==t.listSwaps||null==t.listSwaps.data?null:t.listSwaps.data.length)<1)}}const hi=function(t){return{"display-none":t}};function ui(t,e){if(1&t&&r._UZ(0,"tr",47),2&t){const t=r.oxw();r.Q6J("ngClass",r.VKq(1,hi,(null==t.listSwaps?null:t.listSwaps.data)&&(null==t.listSwaps||null==t.listSwaps.data?null:t.listSwaps.data.length)>0))}}function di(t,e){1&t&&r._UZ(0,"tr",48)}function pi(t,e){1&t&&r._UZ(0,"tr",49)}const fi=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},mi=function(){return["no_swap"]};let gi=(()=>{class t{constructor(t,e,i,n){this.logger=t,this.commonService=e,this.store=i,this.loopService=n,this.selectedSwapType=G.$I.LOOP_OUT,this.swapsData=[],this.flgLoading=[!0],this.emptyTableMessage="No swaps available.",this.LoopStateEnum=G.Fq,this.faHistory=N.qO$,this.swapCaption="Loop Out",this.displayedColumns=[],this.flgSticky=!1,this.pageSize=G.IV,this.pageSizeOptions=G.TJ,this.screenSize="",this.screenSizeEnum=G.cu,this.unSubs=[new h.x,new h.x,new h.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===G.cu.XS||this.screenSize===G.cu.SM?(this.flgSticky=!1,this.displayedColumns=["state","amt","actions"]):this.screenSize===G.cu.MD?(this.flgSticky=!1,this.displayedColumns=["state","initiation_time","amt","actions"]):(this.flgSticky=!0,this.displayedColumns=["state","initiation_time","amt","cost_server","cost_offchain","cost_onchain","actions"])}ngAfterViewInit(){this.swapsData&&this.swapsData.length>0&&this.loadSwapsTable(this.swapsData)}ngOnChanges(t){this.swapCaption=this.selectedSwapType===G.$I.LOOP_IN?"Loop In":"Loop Out",this.loadSwapsTable(this.swapsData)}applyFilter(t){this.listSwaps.filter=t.value.trim().toLowerCase()}onSwapClick(t,e){this.loopService.getSwap(t.id_bytes.replace(/\//g,"_").replace(/\+/g,"-")).pipe((0,k.R)(this.unSubs[2])).subscribe(t=>{this.store.dispatch(new j.wu({data:{type:G.n_.INFORMATION,alertTitle:this.swapCaption+" Status",message:[[{key:"state",value:G.Fq[t.state],title:"Status",width:50,type:G.Gi.STRING},{key:"amt",value:t.amt,title:"Amount (Sats)",width:50,type:G.Gi.NUMBER}],[{key:"initiation_time",value:t.initiation_time/1e9,title:"Initiation Time",width:50,type:G.Gi.DATE_TIME},{key:"last_update_time",value:t.last_update_time/1e9,title:"Last Update Time",width:50,type:G.Gi.DATE_TIME}],[{key:"cost_server",value:t.cost_server,title:"Server Cost (Sats)",width:33,type:G.Gi.NUMBER},{key:"cost_offchain",value:t.cost_offchain,title:"Offchain Cost (Sats)",width:33,type:G.Gi.NUMBER},{key:"cost_onchain",value:t.cost_onchain,title:"Onchain Cost (Sats)",width:34,type:G.Gi.NUMBER}],[{key:"id_bytes",value:t.id_bytes,title:"ID",width:100,type:G.Gi.STRING}],[{key:"htlc_address",value:t.htlc_address,title:"HTLC Address",width:100,type:G.Gi.STRING}]],openedBy:"SWAP"}}))})}loadSwapsTable(t){this.listSwaps=new Fe.by([...t]),this.listSwaps.sort=this.sort,this.listSwaps.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.listSwaps.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.listSwaps.paginator=this.paginator,this.logger.info(this.listSwaps)}onDownloadCSV(){this.listSwaps.data&&this.listSwaps.data.length>0&&this.commonService.downloadFile(this.listSwaps.data,this.selectedSwapType===G.$I.LOOP_IN?"Loop in":"Loop out")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(le.v),r.Y36(a.yh),r.Y36(Re.W))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-swaps"]],viewQuery:function(t,e){if(1&t&&(r.Gf(Pe.YE,5),r.Gf(Ne.NW,5)),2&t){let t;r.iGM(t=r.CRH())&&(e.sort=t.first),r.iGM(t=r.CRH())&&(e.paginator=t.first)}},inputs:{selectedSwapType:"selectedSwapType",swapsData:"swapsData",flgLoading:"flgLoading",emptyTableMessage:"emptyTableMessage"},features:[r._Bn([{provide:Ne.ye,useValue:(0,G.pt)("Swaps")}]),r.TTD],decls:52,vars:15,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",1,"card-content-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","fxFlex","100",1,"page-sub-title-container","w-100"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","row","fxLayoutAlign","start center",1,"w-100"],["fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","initiation_time"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","last_update_time"],["matColumnDef","id"],["matColumnDef","id_bytes"],["matColumnDef","state"],["matColumnDef","htlc_address"],["matColumnDef","amt"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","cost_server"],["matColumnDef","cost_offchain"],["matColumnDef","cost_onchain"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_swap"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.TgZ(2,"div",2),r._UZ(3,"fa-icon",3),r.TgZ(4,"span",4),r._uU(5),r.qZA(),r.qZA(),r.TgZ(6,"mat-form-field",5),r.TgZ(7,"input",6),r.NdJ("keyup",function(t){return e.applyFilter(t.target)}),r.qZA(),r.qZA(),r.qZA(),r.TgZ(8,"div",7),r.TgZ(9,"div",8),r.YNc(10,Be,1,0,"mat-progress-bar",9),r.TgZ(11,"table",10,11),r.ynx(13,12),r.YNc(14,Ue,2,0,"th",13),r.YNc(15,qe,3,4,"td",14),r.BQk(),r.ynx(16,15),r.YNc(17,ze,2,0,"th",13),r.YNc(18,He,3,4,"td",14),r.BQk(),r.ynx(19,16),r.YNc(20,Ye,2,0,"th",13),r.YNc(21,Ge,2,1,"td",14),r.BQk(),r.ynx(22,17),r.YNc(23,je,2,0,"th",13),r.YNc(24,Ve,2,1,"td",14),r.BQk(),r.ynx(25,18),r.YNc(26,Qe,2,0,"th",13),r.YNc(27,We,2,1,"td",14),r.BQk(),r.ynx(28,19),r.YNc(29,Je,2,0,"th",13),r.YNc(30,Xe,2,1,"td",14),r.BQk(),r.ynx(31,20),r.YNc(32,Ke,2,0,"th",21),r.YNc(33,$e,4,3,"td",14),r.BQk(),r.ynx(34,22),r.YNc(35,ti,2,0,"th",21),r.YNc(36,ei,4,3,"td",14),r.BQk(),r.ynx(37,23),r.YNc(38,ii,2,0,"th",21),r.YNc(39,ni,4,3,"td",14),r.BQk(),r.ynx(40,24),r.YNc(41,ri,2,0,"th",21),r.YNc(42,si,4,3,"td",14),r.BQk(),r.ynx(43,25),r.YNc(44,oi,6,0,"th",26),r.YNc(45,ai,3,0,"td",27),r.BQk(),r.ynx(46,28),r.YNc(47,ci,2,1,"td",29),r.BQk(),r.YNc(48,ui,1,3,"tr",30),r.YNc(49,di,1,0,"tr",31),r.YNc(50,pi,1,0,"tr",32),r.qZA(),r._UZ(51,"mat-paginator",33),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(3),r.Q6J("icon",e.faHistory),r.xp6(2),r.hij("",e.swapCaption," History"),r.xp6(5),r.Q6J("ngIf",!0===e.flgLoading[0]),r.xp6(1),r.Q6J("dataSource",e.listSwaps)("ngClass",r.VKq(12,fi,"error"===e.flgLoading[0])),r.xp6(37),r.Q6J("matFooterRowDef",r.DdM(14,mi)),r.xp6(1),r.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),r.xp6(1),r.Q6J("matRowDefColumns",e.displayedColumns),r.xp6(1),r.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[P.xw,P.yH,P.Wh,F.BN,J.KE,ut.Nt,Q.$V,U.O5,Fe.BZ,Pe.YE,U.mk,ue.oO,Fe.w1,Fe.fO,Fe.Dz,Fe.mD,Fe.Ke,Fe.as,Fe.nj,Ne.NW,Ze.pW,Fe.ge,Pe.nU,Fe.ev,X.gD,X.$L,tt.ey,$.lW,Fe.yh,Fe.Q2,Fe.XQ,Fe.Gk],pipes:[U.uU,U.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();const yi=function(t){return["../",t]};function bi(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",10),r.NdJ("click",function(){const e=r.CHM(t).$implicit;return r.oxw().onSelectedIndexChange(e)}),r._uU(1),r.qZA()}if(2&t){const t=e.$implicit,i=r.oxw();r.Q6J("active",i.activeTab.link===t.link)("routerLink",r.VKq(3,yi,t.link)),r.xp6(1),r.Oqu(t.name)}}let vi=(()=>{class t{constructor(t,e,i){this.router=t,this.loopService=e,this.store=i,this.faInfinity=N.vqe,this.targetConf=2,this.inAmount=25e4,this.quotes=[],this.LoopTypeEnum=G.$I,this.selectedSwapType=G.$I.LOOP_OUT,this.storedSwaps=[],this.filteredSwaps=[],this.emptyTableMessage="No swap data available.",this.flgLoading=[!0],this.links=[{link:"loopout",name:"Loop Out"},{link:"loopin",name:"Loop In"}],this.activeTab=this.links[0],this.unSubs=[new h.x,new h.x,new h.x,new h.x]}ngOnInit(){this.loopService.listSwaps();const t=this.links.find(t=>this.router.url.includes(t.link));this.activeTab=t||this.links[0],this.selectedSwapType=t&&"loopin"===t.link?G.$I.LOOP_IN:G.$I.LOOP_OUT,this.router.events.pipe((0,k.R)(this.unSubs[0]),(0,A.h)(t=>t instanceof R.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeTab=e||this.links[0],this.selectedSwapType=e&&"loopin"===e.link?G.$I.LOOP_IN:G.$I.LOOP_OUT}),this.loopService.swapsChanged.pipe((0,k.R)(this.unSubs[1])).subscribe({next:t=>{this.flgLoading[0]=!1,this.storedSwaps=t,this.filteredSwaps=this.storedSwaps.filter(t=>t.type===this.selectedSwapType)},error:t=>{this.flgLoading[0]="error",this.emptyTableMessage=t.message?t.message:"No loop "+(this.selectedSwapType===G.$I.LOOP_IN?"in":"out")+" available."}})}onSelectedIndexChange(t){this.selectedSwapType="loopin"===t.link?G.$I.LOOP_IN:G.$I.LOOP_OUT,this.filteredSwaps=this.storedSwaps.filter(t=>t.type===this.selectedSwapType)}onLoop(t){t===G.$I.LOOP_IN?this.loopService.getLoopInTermsAndQuotes(this.targetConf).pipe((0,k.R)(this.unSubs[2])).subscribe(e=>{this.store.dispatch(new j.wu({data:{minQuote:e[0],maxQuote:e[1],direction:t,component:De.a}}))}):this.loopService.getLoopOutTermsAndQuotes(this.targetConf).pipe((0,k.R)(this.unSubs[3])).subscribe(e=>{this.store.dispatch(new j.wu({data:{minQuote:e[0],maxQuote:e[1],direction:t,component:De.a}}))})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(R.F0),r.Y36(Re.W),r.Y36(a.yh))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-loop"]],decls:13,vars:7,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start start",1,"padding-gap-x-large","mt-1"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"],["fxLayout","row","fxFlex","100",3,"selectedSwapType","swapsData","flgLoading","emptyTableMessage"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r._UZ(1,"fa-icon",1),r.TgZ(2,"span",2),r._uU(3,"Loop"),r.qZA(),r.qZA(),r.TgZ(4,"div",3),r.TgZ(5,"mat-card"),r.TgZ(6,"mat-card-content",4),r.TgZ(7,"nav",5),r.YNc(8,bi,2,5,"div",6),r.qZA(),r.TgZ(9,"div",7),r.TgZ(10,"button",8),r.NdJ("click",function(){return e.onLoop(e.selectedSwapType)}),r._uU(11),r.qZA(),r.qZA(),r._UZ(12,"rtl-swaps",9),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(1),r.Q6J("icon",e.faInfinity),r.xp6(7),r.Q6J("ngForOf",e.links),r.xp6(3),r.hij("Start ",e.activeTab.name,""),r.xp6(1),r.Q6J("selectedSwapType",e.selectedSwapType)("swapsData",e.filteredSwaps)("flgLoading",e.flgLoading)("emptyTableMessage",e.emptyTableMessage))},directives:[P.xw,P.Wh,F.BN,Z.a8,Z.dn,B.BU,U.sg,$.lW,gi,P.yH,B.Nj,R.rH],styles:[""]}),t})();var _i=i(4833),wi=i(7425),xi=i(9647),Ci=i(1816),Ai=i(5963),Si=i(2427);let Ei=(()=>{class t{constructor(t,e,i,n){this.httpClient=t,this.logger=e,this.store=i,this.commonService=n,this.swapUrl="",this.swaps={},this.swapsChanged=new wi.X({}),this.unSubs=[new h.x,new h.x,new h.x]}getSwapsList(){return this.swaps}listSwaps(){this.store.dispatch(new j.Fk(G.m6.GET_BOLTZ_SWAPS)),this.swapUrl=Ai.T+Ai.N.BOLTZ_API+"/listSwaps",this.httpClient.get(this.swapUrl).pipe((0,k.R)(this.unSubs[0])).subscribe({next:t=>{this.store.dispatch(new j.Iv(G.m6.GET_BOLTZ_SWAPS)),this.swaps=t,this.swapsChanged.next(this.swaps)},error:t=>this.handleErrorWithAlert(G.m6.GET_BOLTZ_SWAPS,this.swapUrl,t)})}swapInfo(t){return this.swapUrl=Ai.T+Ai.N.BOLTZ_API+"/swapInfo/"+t,this.httpClient.get(this.swapUrl).pipe((0,Ci.K)(t=>this.handleErrorWithAlert(G.m6.NO_SPINNER,this.swapUrl,t)))}serviceInfo(){return this.store.dispatch(new j.Fk(G.m6.GET_SERVICE_INFO)),this.swapUrl=Ai.T+Ai.N.BOLTZ_API+"/serviceInfo",this.httpClient.get(this.swapUrl).pipe((0,k.R)(this.unSubs[1]),(0,L.U)(t=>(this.store.dispatch(new j.Iv(G.m6.GET_SERVICE_INFO)),t)),(0,Ci.K)(t=>this.handleErrorWithAlert(G.m6.GET_SERVICE_INFO,this.swapUrl,t)))}swapOut(t,e){const i={amount:t,address:e};return this.swapUrl=Ai.T+Ai.N.BOLTZ_API+"/createreverseswap",this.httpClient.post(this.swapUrl,i).pipe((0,Ci.K)(t=>this.handleErrorWithoutAlert("Swap Out for Address: "+e,G.m6.NO_SPINNER,t)))}swapIn(t){const e={amount:t};return this.swapUrl=Ai.T+Ai.N.BOLTZ_API+"/createswap",this.httpClient.post(this.swapUrl,e).pipe((0,Ci.K)(e=>this.handleErrorWithoutAlert("Swap In for Amount: "+t,G.m6.NO_SPINNER,e)))}handleErrorWithoutAlert(t,e,i){let n="";return this.logger.error("ERROR IN: "+t+"\n"+JSON.stringify(i)),this.store.dispatch(new j.Iv(e)),401===i.status?(n="Unauthorized User.",this.logger.info("Redirecting to Login"),this.store.dispatch(new j.RD)):503===i.status?(n="Unable to Connect to Boltz Server.",this.store.dispatch(new j.wu({data:{type:"ERROR",alertTitle:"Boltz Not Connected",message:{code:i.status,message:"Unable to Connect to Boltz Server",URL:t},component:Si.H}}))):n=this.commonService.extractErrorMessage(i),(0,xi._)(()=>new Error(n))}handleErrorWithAlert(t,e,i){let n="";return 401===i.status&&(this.logger.info("Redirecting to Login"),this.store.dispatch(new j.RD)),this.logger.error(i),this.store.dispatch(new j.Iv(t)),401===i.status?(n="Unauthorized User.",this.logger.info("Redirecting to Login"),this.store.dispatch(new j.RD)):503===i.status?(n="Unable to Connect to Boltz Server.",this.store.dispatch(new j.wu({data:{type:"ERROR",alertTitle:"Boltz Not Connected",message:{code:i.status,message:"Unable to Connect to Boltz Server",URL:e},component:Si.H}}))):(n=this.commonService.extractErrorMessage(i),this.store.dispatch(new j.wu({data:{type:G.n_.ERROR,alertTitle:"ERROR",message:{code:i.error&&i.error.error&&i.error.error.code?i.error.error.code:i.error&&i.error.code?i.error.code:i.code?i.code:i.status,message:n,URL:e},component:Si.H}}))),(0,xi._)(()=>new Error(n))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(o.eN),r.LFG(V.mQ),r.LFG(a.yh),r.LFG(le.v))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();var ki=i(5001);let Ti=(()=>{class t{constructor(){this.serviceInfo={},this.direction=G.hc.SWAP_OUT,this.swapTypeEnum=G.hc}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-boltz-service-info"]],inputs:{serviceInfo:"serviceInfo",direction:"direction"},decls:33,vars:13,consts:[["fxFlex","100",1,"flat-expansion-panel","mb-1",3,"expanded"],["fxLayoutAlign","start center","fxFlex","100"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"]],template:function(t,e){1&t&&(r.TgZ(0,"mat-expansion-panel",0),r.TgZ(1,"mat-expansion-panel-header"),r.TgZ(2,"mat-panel-title"),r.TgZ(3,"span",1),r._uU(4,"Service Information"),r.qZA(),r.qZA(),r.qZA(),r.TgZ(5,"div",2),r.TgZ(6,"div",3),r.TgZ(7,"div",4),r.TgZ(8,"h4",5),r._uU(9,"Minimum Amount (Sats)"),r.qZA(),r.TgZ(10,"span",6),r._uU(11),r.ALo(12,"number"),r.qZA(),r.qZA(),r.TgZ(13,"div",4),r.TgZ(14,"h4",5),r._uU(15,"Maximum Amount (Sats)"),r.qZA(),r.TgZ(16,"span",6),r._uU(17),r.ALo(18,"number"),r.qZA(),r.qZA(),r.qZA(),r._UZ(19,"mat-divider",7),r.TgZ(20,"div",3),r.TgZ(21,"div",4),r.TgZ(22,"h4",5),r._uU(23,"Fee Percentage"),r.qZA(),r.TgZ(24,"span",6),r._uU(25),r.ALo(26,"number"),r.qZA(),r.qZA(),r.TgZ(27,"div",4),r.TgZ(28,"h4",5),r._uU(29,"Miner Fee (Sats)"),r.qZA(),r.TgZ(30,"span",6),r._uU(31),r.ALo(32,"number"),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.Q6J("expanded",!0),r.xp6(11),r.Oqu(r.lcZ(12,5,null==e.serviceInfo||null==e.serviceInfo.limits?null:e.serviceInfo.limits.minimal)),r.xp6(6),r.Oqu(r.lcZ(18,7,null==e.serviceInfo||null==e.serviceInfo.limits?null:e.serviceInfo.limits.maximal)),r.xp6(8),r.Oqu(r.lcZ(26,9,null==e.serviceInfo||null==e.serviceInfo.fees?null:e.serviceInfo.fees.percentage)),r.xp6(6),r.Oqu(r.lcZ(32,11,e.direction===e.swapTypeEnum.SWAP_OUT?null==e.serviceInfo||null==e.serviceInfo.fees||null==e.serviceInfo.fees.miner?null:e.serviceInfo.fees.miner.reverse:null==e.serviceInfo||null==e.serviceInfo.fees||null==e.serviceInfo.fees.miner?null:e.serviceInfo.fees.miner.normal)))},directives:[ki.ib,P.yH,ki.yz,ki.yK,P.Wh,P.xw,Ot.d],pipes:[U.JJ],styles:[""]}),t})();var Mi=i(3691);function Li(t,e){1&t&&r.GkF(0)}function Ii(t,e){if(1&t&&(r.TgZ(0,"div",4),r.TgZ(1,"span",5),r._uU(2),r.qZA(),r.qZA()),2&t){const t=r.oxw();r.xp6(2),r.Oqu(null!=t.swapStatus&&t.swapStatus.error?null==t.swapStatus?null:t.swapStatus.error:"Unknown Error.")}}function Oi(t,e){if(1&t&&(r.TgZ(0,"div",4),r.TgZ(1,"div",6),r.TgZ(2,"div",7),r.TgZ(3,"h4",8),r._uU(4,"ID"),r.qZA(),r.TgZ(5,"span",5),r._uU(6),r.qZA(),r.qZA(),r.TgZ(7,"div",7),r.TgZ(8,"h4",8),r._uU(9,"Routing Fee (mSats)"),r.qZA(),r.TgZ(10,"span",5),r._uU(11),r.ALo(12,"number"),r.qZA(),r.qZA(),r.qZA(),r._UZ(13,"mat-divider",9),r.TgZ(14,"div",6),r.TgZ(15,"div",7),r.TgZ(16,"h4",8),r._uU(17,"Claim Transaction ID"),r.qZA(),r.TgZ(18,"span",5),r._uU(19),r.qZA(),r.qZA(),r.TgZ(20,"div",7),r.TgZ(21,"h4",8),r._uU(22,"Lockup Address"),r.qZA(),r.TgZ(23,"span",5),r._uU(24),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t){const t=r.oxw();r.xp6(6),r.Oqu(null==t.swapStatus?null:t.swapStatus.id),r.xp6(5),r.Oqu(r.lcZ(12,4,null==t.swapStatus?null:t.swapStatus.routingFeeMilliSat)),r.xp6(8),r.Oqu(null==t.swapStatus?null:t.swapStatus.claimTransactionId),r.xp6(5),r.Oqu(null==t.swapStatus?null:t.swapStatus.lockupAddress)}}function Di(t,e){if(1&t&&(r.TgZ(0,"div",4),r.TgZ(1,"div",6),r.TgZ(2,"div",7),r.TgZ(3,"h4",8),r._uU(4,"ID"),r.qZA(),r.TgZ(5,"span",5),r._uU(6),r.qZA(),r.qZA(),r.TgZ(7,"div",7),r.TgZ(8,"h4",8),r._uU(9,"Expected Amount (Sats)"),r.qZA(),r.TgZ(10,"span",5),r._uU(11),r.ALo(12,"number"),r.qZA(),r.qZA(),r.qZA(),r._UZ(13,"mat-divider",9),r.TgZ(14,"div",6),r.TgZ(15,"div",10),r.TgZ(16,"h4",8),r._uU(17,"Address"),r.qZA(),r.TgZ(18,"span",5),r._uU(19),r.qZA(),r.qZA(),r.qZA(),r._UZ(20,"mat-divider",9),r.TgZ(21,"div",6),r.TgZ(22,"div",10),r.TgZ(23,"h4",8),r._uU(24,"BIP 21"),r.qZA(),r.TgZ(25,"span",5),r._uU(26),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t){const t=r.oxw();r.xp6(6),r.Oqu(null==t.swapStatus?null:t.swapStatus.id),r.xp6(5),r.Oqu(r.lcZ(12,4,null==t.swapStatus?null:t.swapStatus.expectedAmount)),r.xp6(8),r.Oqu(null==t.swapStatus?null:t.swapStatus.address),r.xp6(7),r.Oqu(null==t.swapStatus?null:t.swapStatus.bip21)}}let Ri=(()=>{class t{constructor(){this.swapStatus=null,this.direction=G.hc.SWAP_OUT,this.swapTypeEnum=G.hc}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-boltz-swap-status"]],inputs:{swapStatus:"swapStatus",direction:"direction"},decls:7,vars:1,consts:[[4,"ngTemplateOutlet"],["swapFailedBlock",""],["swapOutBlock",""],["swapInBlock",""],["fxLayout","column"],[1,"foreground-secondary-text"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"w-100","my-1"],["fxFlex","100"]],template:function(t,e){if(1&t&&(r.YNc(0,Li,1,0,"ng-container",0),r.YNc(1,Ii,3,1,"ng-template",null,1,r.W1O),r.YNc(3,Oi,25,6,"ng-template",null,2,r.W1O),r.YNc(5,Di,27,6,"ng-template",null,3,r.W1O)),2&t){const t=r.MAs(2),i=r.MAs(4),n=r.MAs(6);r.Q6J("ngTemplateOutlet",null!=e.swapStatus&&e.swapStatus.error?t:e.direction===e.swapTypeEnum.SWAP_OUT?i:n)}},directives:[U.tP,P.xw,P.yH,P.Wh,Ot.d],pipes:[U.JJ],styles:[""]}),t})();var Ni=i(194);function Pi(t,e){1&t&&r.GkF(0)}const Fi=function(t,e){return{"small-svg":t,"large-svg":e}};function Zi(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",7),r._UZ(2,"path",8),r._UZ(3,"path",9),r._UZ(4,"path",10),r._UZ(5,"path",11),r._UZ(6,"path",12),r._UZ(7,"path",13),r._UZ(8,"path",14),r._UZ(9,"path",15),r._UZ(10,"path",16),r._UZ(11,"path",17),r.qZA(),r.kcU(),r.TgZ(12,"div",18),r.TgZ(13,"mat-card-title"),r._uU(14,"Boltz Reverse Submarine Swap explained."),r.qZA(),r.qZA(),r.TgZ(15,"div",19),r.TgZ(16,"mat-card-subtitle",20),r._uU(17," Boltz is a privacy-first account free exchange and a Lightning Service Provider. By doing a Reverse Submarine Swap on Boltz, you can swap your Lightning Bitcoin for on-chain Bitcoin. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Fi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function Bi(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",21),r.TgZ(2,"g",22),r._UZ(3,"path",23),r._UZ(4,"path",24),r._UZ(5,"path",25),r._UZ(6,"path",26),r._UZ(7,"path",27),r._UZ(8,"path",28),r.qZA(),r._UZ(9,"path",29),r.TgZ(10,"defs"),r.TgZ(11,"clipPath",30),r._UZ(12,"rect",31),r.qZA(),r.qZA(),r.qZA(),r.kcU(),r.TgZ(13,"div",18),r.TgZ(14,"mat-card-title"),r._uU(15,"Step 1: Deciding to Reverse Submarine Swap"),r.qZA(),r.qZA(),r.TgZ(16,"div",19),r.TgZ(17,"mat-card-subtitle",20),r._uU(18," You have one or more channels that are running low on inbound capacity or you want to move some of your Lightning Bitcoin to your onchain wallet. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Fi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function Ui(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",32),r._UZ(2,"path",33),r._UZ(3,"path",34),r._UZ(4,"path",35),r._UZ(5,"path",36),r._UZ(6,"path",37),r._UZ(7,"circle",38),r._UZ(8,"rect",39),r.TgZ(9,"defs"),r.TgZ(10,"pattern",40),r._UZ(11,"use",41),r.qZA(),r._UZ(12,"image",42),r.qZA(),r.qZA(),r.kcU(),r.TgZ(13,"div",18),r.TgZ(14,"mat-card-title"),r._uU(15,"Step 2: Paying the Lightning Invoice"),r.qZA(),r.qZA(),r.TgZ(16,"div",19),r.TgZ(17,"mat-card-subtitle",20),r._uU(18," Your Boltz client generates a secret which is sent to Boltz. In return Boltz sends a Lightning invoice based on that secret. Your Lightning node pays that invoice which moves some of your local balance to the other side of the channel. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Fi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function qi(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",43),r.TgZ(2,"g",22),r._UZ(3,"path",44),r._UZ(4,"path",45),r._UZ(5,"path",46),r._UZ(6,"path",47),r._UZ(7,"path",48),r.qZA(),r.TgZ(8,"defs"),r.TgZ(9,"clipPath",30),r._UZ(10,"rect",49),r.qZA(),r.qZA(),r.qZA(),r.kcU(),r.TgZ(11,"div",18),r.TgZ(12,"mat-card-title"),r._uU(13,"Step 3: Receiving the funds on-chain"),r.qZA(),r.qZA(),r.TgZ(14,"div",19),r.TgZ(15,"mat-card-subtitle",20),r._uU(16," In return for paying the invoice, Boltz locks on-chain BTC. Your node claims that onchain BTC to your wallet and by doing that, reveals the secret. With that secret Boltz can settle the Lightning invoice paid by your node. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Fi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function zi(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",50),r._UZ(2,"path",51),r._UZ(3,"path",52),r._UZ(4,"path",53),r._UZ(5,"path",54),r._UZ(6,"path",55),r.qZA(),r.kcU(),r.TgZ(7,"div",18),r.TgZ(8,"mat-card-title"),r._uU(9,"Done!"),r.qZA(),r.qZA(),r.TgZ(10,"div",19),r.TgZ(11,"mat-card-subtitle",20),r._uU(12," You have now successfully received your funds in your on-chain wallet and also spent your local balance to increase the inbound capacity of your node - all in a non-custodial manner. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Fi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}let Hi=(()=>{class t{constructor(t){this.commonService=t,this.animationDirection="forward",this.stepNumber=1,this.stepNumberChange=new r.vpe,this.screenSize="",this.screenSizeEnum=G.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}onSwipe(t){2===t.direction&&this.stepNumber<5?(this.stepNumber++,this.animationDirection="forward",this.stepNumberChange.emit(this.stepNumber)):4===t.direction&&this.stepNumber>1&&(this.stepNumber--,this.animationDirection="backward",this.stepNumberChange.emit(this.stepNumber))}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(le.v))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-boltz-swapout-info-graphics"]],inputs:{animationDirection:"animationDirection",stepNumber:"stepNumber"},outputs:{stepNumberChange:"stepNumberChange"},decls:11,vars:1,consts:[[4,"ngTemplateOutlet"],["swapStepBlock1",""],["swapStepBlock2",""],["swapStepBlock3",""],["swapStepBlock4",""],["swapStepBlock5",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between center",3,"swipe"],["fxFlex","30","width","368","height","368","viewBox","0 0 368 368","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M306.667 153.333H276L260.667 184L233.797 153.763C229.441 148.861 224.595 144.24 218.529 141.746C212.54 139.284 206.099 138 199.561 138H92C41.19 138 1.52588e-05 179.19 1.52588e-05 230C1.52588e-05 280.81 41.19 322 92 322H199.561C206.099 322 212.54 320.715 218.529 318.254C224.595 315.761 229.441 311.139 233.797 306.237L260.667 276L276 306.667H306.667L291.333 260.667L306.667 230L291.333 199.333L306.667 153.333Z",1,"fill-color-0"],["d","M337.333 122.667H306.667L291.333 153.333L264.464 123.097C260.107 118.194 255.261 113.573 249.195 111.079C243.206 108.618 236.766 107.333 230.228 107.333H122.667C71.8566 107.333 30.6667 148.523 30.6667 199.333C30.6667 250.143 71.8566 291.333 122.667 291.333H230.228C236.766 291.333 243.206 290.048 249.195 287.587C255.261 285.094 260.107 280.473 264.464 275.571L291.333 245.333L306.667 276H337.333L322 230L337.333 199.333L322 168.667L337.333 122.667Z",1,"stroke-color-thicker"],["d","M214.667 245.333C206.198 245.333 199.333 238.468 199.333 230C199.333 221.532 206.198 214.667 214.667 214.667C223.135 214.667 230 221.532 230 230C230 238.468 223.135 245.333 214.667 245.333Z",1,"fill-color-15"],["d","M245.333 214.667C236.865 214.667 230 207.802 230 199.333C230 190.865 236.865 184 245.333 184C253.802 184 260.667 190.865 260.667 199.333C260.667 207.802 253.802 214.667 245.333 214.667Z",1,"stroke-color-thicker"],["d","M138 245.333C129.532 245.333 122.667 238.468 122.667 230C122.667 221.532 129.532 214.667 138 214.667C146.468 214.667 153.333 221.532 153.333 230C153.333 238.468 146.468 245.333 138 245.333Z",1,"fill-color-15"],["d","M168.667 214.667C160.198 214.667 153.333 207.802 153.333 199.333C153.333 190.865 160.198 184 168.667 184C177.135 184 184 190.865 184 199.333C184 207.802 177.135 214.667 168.667 214.667Z",1,"stroke-color-thicker"],["d","M61.3334 245.333C52.865 245.333 46 238.468 46 230C46 221.532 52.865 214.667 61.3334 214.667C69.8017 214.667 76.6667 221.532 76.6667 230C76.6667 238.468 69.8017 245.333 61.3334 245.333Z",1,"fill-color-15"],["d","M92 214.667C83.5316 214.667 76.6666 207.802 76.6666 199.333C76.6666 190.865 83.5316 184 92 184C100.468 184 107.333 190.865 107.333 199.333C107.333 207.802 100.468 214.667 92 214.667Z",1,"stroke-color-thicker"],["d","M239.077 111C241.796 111 244 113.204 244 115.923V126.077C244 128.796 241.796 131 239.077 131H191.923C189.204 131 187 128.796 187 126.077V115.923C187 113.204 189.204 111 191.923 111H239.077Z",1,"fill-color-15"],["d","M184 76.6666V107.333H122.667V76.6666H184Z",1,"stroke-color-thicker"],["fxFlex","20","fxLayoutAlign","center end"],["fxFlex","40"],[1,"font-size-120"],["fxFlex","30","width","383","height","279","viewBox","0 0 383 279","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["clip-path","url(#clip0)"],["d","M267.882 220.417V104.583C267.882 98.2125 263.809 93 258.832 93H114.029C109.051 93 104.978 98.2125 104.978 104.583V220.417C104.978 226.787 109.051 232 114.029 232H258.832C263.809 232 267.882 226.787 267.882 220.417Z",1,"fill-color-0"],["d","M357.75 197.625V81.375C357.75 74.9812 352.069 69.75 345.125 69.75H143.125C136.181 69.75 130.5 74.9812 130.5 81.375V197.625C130.5 204.019 136.181 209.25 143.125 209.25H345.125C352.069 209.25 357.75 204.019 357.75 197.625Z",1,"stroke-color-thin"],["d","M86.3125 186H105.25V139.5H86.3125C82.7775 139.5 80 142.057 80 145.312V180.188C80 183.443 82.7775 186 86.3125 186Z",1,"fill-color-15"],["d","M111.562 162.75H130.5V116.25H111.562C108.027 116.25 105.25 118.807 105.25 122.062V156.938C105.25 160.193 108.027 162.75 111.562 162.75Z",1,"stroke-color-thin"],["d","M205.979 116V150.875",1,"stroke-color-thin"],["d","M205.979 185.634V185.749",1,"stroke-color-thin"],["d","M2.44963 159.45C0.488815 161.41 0.488815 164.59 2.44963 166.55L34.403 198.504C36.3638 200.465 39.5429 200.465 41.5037 198.504C43.4645 196.543 43.4645 193.364 41.5037 191.403L13.1007 163L41.5037 134.597C43.4645 132.636 43.4645 129.457 41.5037 127.496C39.5429 125.535 36.3638 125.535 34.403 127.496L2.44963 159.45ZM65 157.979H6V168.021H65V157.979Z",1,"fill-color-15"],["id","clip0"],["width","303","height","279","transform","matrix(-1 0 0 1 383 0)",1,"fill-color-30"],["fxFlex","30","width","454","height","243","viewBox","0 0 454 243","fill","none","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["d","M141.75 172.125C178.098 172.125 207.562 142.66 207.562 106.312C207.562 69.9653 178.098 40.5 141.75 40.5C105.403 40.5 75.9375 69.9653 75.9375 106.312C75.9375 142.66 105.403 172.125 141.75 172.125Z",1,"fill-color-0"],["d","M121.5 151.875C157.848 151.875 187.312 122.41 187.312 86.0625C187.312 49.7153 157.848 20.25 121.5 20.25C85.1528 20.25 55.6875 49.7153 55.6875 86.0625C55.6875 122.41 85.1528 151.875 121.5 151.875Z",1,"stroke-color-thiner"],["d","M20.25 192.375H222.75",1,"stroke-color-thiner"],["d","M192.375 222.75L222.75 192.375L192.375 162",1,"stroke-color-thiner"],["d","M138.762 67C136.099 73.913 133.436 81.3578 130.24 88.8025C130.24 88.8025 130.24 89.8661 131.305 89.8661H153.143C153.143 89.8661 153.143 90.3979 153.676 90.9296L121.718 126.558C121.185 126.026 121.185 125.495 121.185 124.963L132.371 101.033V98.9062H110V96.7791L137.164 67H138.762Z",1,"fill-color-15"],["cx","371.815","cy","95.815","r","81.815",1,"fill-color-boltz-bk"],["x","317","y","81","width","110.745","height","30.1472","fill","url(#pattern0)"],["id","pattern0","patternContentUnits","objectBoundingBox","width","1","height","1"],[0,"xlink","href","#image0","transform","scale(0.00185185 0.00680272)"],["id","image0","width","540","height","147",0,"xlink","href","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhwAAACTCAYAAADFh8BYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACHKADAAQAAAABAAAAkwAAAABS37hiAABAAElEQVR4Aex9CaAkVXV2VfebfWWG1QWQRYddNgmCO6CiIGrAKC6gUWOIUROz/CYm+OdP/P9f82viEmNUcCFRUVFQlMUIgpIoCgwO2ww7IjLMMMub5b3XXfWf75z7Vd2urn69vK5+/d7Ufa/qnDr33HPPdm/drqquDoNdvMTxhSPBE5vODuL6BUEcHiDumBcE8Y+DYORT4V4fu3YXd09pfumB0gOlB0oPlB7oiwfCvkiZoULiDe9eGtSCH8RxfCJMCOUvlj/AIAyjoBL/abjHJz4+Q80r1S49UHqg9EDpgdIDQ+OBXXbBEW/8i2XB+ParZYHxHDohlrAAB0QJw2AiCOccGu75sXVGKfelB0oPlB4oPVB6oPRALx6o9NJopreJ469Xg4ltX8NiA8sLLDD8xQYWHbrwiOM5QVC7YKbbW+pfeqD0QOmB0gOlB6bbAyPTrcC09P/bH39EbqO8NF1mRKoGbqbYAgRQCkAU47mOspQeKD1QeqD0QOmB0gNT8MAud4UjfvyCt8Rx9D5dbMg9kwT6OK95xHrtY/EU/Fs2LT1QeqD0QOmB0gOlB8QDu9SCI37sghPievyvSeR1QSFHgD7uGPRmSxj8POEvkdIDpQdKD5QeKD1QeqAnD+wyt1TiJ9731Hhi52WytJinFzDy3OUueOitFNTjAkcU3ZDHWtJKD5QeKD3QLw/Ej55/TL0e7tcveamcmqCY5gGDoFqdf0P4lM8+oQflrvTAgD2wSyw45F0b84PHHr9MntvYJ5RbJ/aYqHgat1FwZUNvp7gHRYWEdQdKWAk3BXvt+UM7KvelB0oPlB4oxgMT9VjeAxS9FXMTv56vPeFDDz8IAW2cspLpixdos/XWGIsNm9XiaOeL5eBHspWl9MDAPbBLLDii3zz2OfHs8fCuLDpSJxN3kDUpjP+9Gl64M21QYqUHSg+UHijAA3Gkc5N+IBIcEAVzkbfeUJq/c2z8zJSzAJEljAgJQ85qfusSLz0wWA/M+gVH/Ngf/GW9Hp8Lt+av/jmkwUHcBmclnnMRqGUpPVB6oPRAoR6QVYVe2ZDVgS06bA5Cn/xcZP1z+eEWJBl+tk0WLNl6d6WjUFtK4aUHWnhgVi844t+883T5sPD3/BQAH/i4fFvFDW77WqwNVqMJfke4zydvbuG3klx6oPRA6YH+eUDWF7z6Sgjh7RYQ4PH5iRNm24O/LKUHpssDs/ZbKvGj71glnxX+I4qj1EZ+VAD0ced9DlLAOIi+MF1BKfstPVB6YNfzgLtmwactxAG4HYIrHQZ9HDRsfhvDcaUkLfhQhQJIPK0tsdIDg/VAejIebL+F9hY/+d7lcRxeHkX1pRh8HGxYRigO6AYrIQcpoFwFqVeqI5cUqmQpvPRA6YHSA4kHbE7CIbC0ELcFhtFJw9xmuH5I8hYnkGKbzoCC68yWii2x0gPT4IFZd0sFry2v/+bar8lgOxj+bBi8GIMcf6jDg1T45wNVimuj74d7fvoxwcrSgwfih9940EQU/lleU/mcJS9/CQNAFOKARRR8vsOq2j7npThX2j3rE8by6H+4Qz447qxUgh0y4T8hv/b368pI8Os54fyHy68eFhHNXVAmhok3ZyV4h8MFCxF7ds3GmwnbBf1YmjwUHph1C47oNz/8R3l3xmnwbu5YFWIyVjkGCW1kBtVK9aKhiM4MVaIWB/vIQu8deerb3MlLwRKjzHM0CEXD/CoxsUkziVqDWNYBorAtubP3sPP5PX2kYSiyYiegiZ/6JD3JzTcwY2IP6kFcC4PxeFsw/uCbHpeF7K2ShLdVK+F/VaPFPwr3+5cnG5QvD0oP0AO6IraPR0i9dErKyX+Xm2iKFv7XaN1nKMlhE4z819wELEvpgWn2wKxacNQeeft5UVR7j/68vDhWx5gMPH+sNQw7DEoQ3ODEya8ShhuCffb57jTHZeZ37xYAGRc32WXzoUyaLjCMD6Gd8DFnWpAYLtarQFfXJFwI2t7BpN7jt/7THMntT/iT/og7GWqf4C6FbLGCjuJoTyGeJvTT5FtSQT3cUh974I03i6Dvz60El4RP/8q6RJ8SKT2AS26SLMwzwtx8FFbWq+NcLuY5MTf/8xhLWumBAXhg1iw44kfeeWI9qH/GX+0nZwF3NsAgBcrBqrjsXLW6Wz5oXCLv3hgfgO/LLsQDmBAREYNwSWOU9EhY0phlPtGhrfxxkWnS/JhaLSnMD/Ij+CobDbUIopc3SGjUh32lSwxKZvtGflLFzKpwniD9nTBWDy4ce+Dcm8KwctGcfatfDsOLy3e90FG7KIwj3NxDzjXmjx4JGRAlm3/ZfPYl+C2yWWp15b70wGA9wFvZg+21z73FG37/aVFY+5YMxnkNA4srf0DZ9KTmoL/yx2DmgB4JRi7us3q7pDhMjPiz5YBB4IgDIXAthDggDigb/ggVBwtorUqmvbKRJgdsC6h/rg/kAxc9hGgLHkIfV6LsmDfMIfAABzQ8hbRbfRLHJ8pDzZ8de3Di/rEHz/3zeP1bl1BmCXdhDzBXAV1uEiKTUAhzvZRpbw388YK3jpal9MD0eGDGLzji+H0Lajvib0dRvLcORR1wGGCy6XV6B5Nr9jxFpAPXTgloE94ePvUzt0xPKGZnrzx5Jyd0cb/S3BlaoyE7d6gIaQ1n8xbuwW0wFP32keISTQc1B6xW9z3tMhO46iY06qtZg/7dhj6As7S3P95beP7PxLaxdeMPveE8wbULti/hruEB5hMSSxMgIYj9Ssj3Q+H5n99tSS090JMHZvyCo/7o5s/LGeZYWN80ucuJR2k4AelJCEx2gsrjr5Tv3oBbBlqyMcOxv8mBi6Gcxj2cPFCWMlRxf2HpP6AhbdG+adOn7IQO6OPk9WUIrn05SB182KSPKtV6R93lfTF7RvX4op0PnnvD2P2vX9W6RVkzGz0gjx5rbvm5pLnh5Txy16cxdwjVL8hXFEBsyGNC4OUFDvNPuZ8WD8zoZzgmHnnrB+Iofr0MIy0YajIkGz4QuOGn9awDRPH55WnuWmVk7r9rRbnrgwfMx00+F7LSGDT0hInQFcaLEEHSJ+4dgXRChFLnWIqgLELI9XF21ClkW8K28hJFtIeu7Y/jk8Tmn8szHu+ct/8lZT52GqdZwse8Jpz2/J9mv8oPb86dePjeI+WL7cfJkuy4MIqPkxl+N3m4/6Nz97vkE9OsXtl9lx6YsQuO2iPnv1Im878zeznJY5gCt+GKlT+/Fgk+4vpVMRCkJAM7Dr4b7v2Zx41a7qfqAX7q0ofaEAfGROLDB93QB/FW9RpOMDLEwLPFq2snrzFDbC2iNCdD20+ib7brqcrL01ceWl0s32u5ZOcDb3juvP2e+cdheGF6WS6rQHk8qzxgC1R9ysfsYm4T5lnr1eXlE2nWNJnx8iRNKw3vUBp/5LLDwnrluCiMj5c55LixB+46UsybS8XMVHgpWEZaCWeOB2bkgiP+zfmH1iaiS+TUJbeEkIJuEOklcRxaWloYUtzud+KyOOfv9HQRVoOLjb/c98MDnNZs0YcTu8XBru5iIWi9NF0BEDJpnejB6HtRds1SiuVIvjTqSZjVF6mlujsGAPZJiWyLY+KEWXld2R9HF4w/ePfKOH7Hm8PwsxPsr4Sz0wPMe8JOrGQuptlOjBBSfLwTqcXzyJWLyvgDdz8zrITHy92k4+phdNzYg986WlRdEMn7bDCFcwwRFq9V2UPRHphxC45407t2m9i6/TvimKXpQLIB5c5p3hV0d889Sd2sO62dnATWV58y58psbXncuwe4wMDKwk7Y3rSRg5JkJ2jGLad/O2PLbORaSNBj0oSd32jlo5f8dAeIgogDs8gDEcxrn70KppO/1AOiaI6JAOZa0tbTJ6GhAdqyDxyjONV9lKSs/XL8e2MPbFkon/5eE4bn1LV9uZuVHtC8lFxhDuYayVz18q2b/J+uRzh2PvSWA8OgJrdEouPltTTHyWLjGBlTS+SWuJrJz4jZ/G/ygbPfv0rdxFMShtYDM2rBgUtuEw999+syIg+CR/VkILM3TwbZkws4rPBkYZ+s9QQgFRzYMtC/Un6CdK7qC5BpLT2DGu7O0I0RyelM2ml8kvYIlGyuIdGkWhClJYRG/uzr67M5ArHaXmBPhSsPQhUmUhN9HD4F+yW/zxy7/5v/LPpd0JOOZaPh94DkB/OeUJXOJChzNUkvQZSWEKSVEszkbP4PYsKXH85cOD6++WVRGB4X1oPj5LcFjotrO3eDKSy8xszjBIrundif8JfIjPLAIPKvbw6pP/Ldj8kq4ZTk7KODUXbM5MwtFczx/EBAJTSZeeDgSDjn4gypPJyqB5KYiCDgLSbEpm7YjhCNedkCopSOyZktudx0BAY8+QTo+nbV+DYAlDEIGbgCYTQcEfdvu7EN6pPJvJU91IsQfMBb8UOmX9iO0NkvVv7hzvted9f8A75WPijn+2u24Yw7YZ/zvxYWf41jorbtMHmP2TeR+Dp00+GVjoXEvkwASSdsYX8QcUBl2peHQ+2BGfO12PGH3vzWehS/GycCLBq4cCCEl4m3quc5CNDOSxGucvwyfPrnVg91lGagclgG4E+CkkDgWgjlQHkcNNzxoy02DZqDPs56E6h7Q70+0I+e8B3kHEWYtmqJNenXZI/IVnvQb6q7YVanMsCjfGADr5Um+Z4MyGu0P/jo2MPnHsG2JZw9HojwtVjEe9L4azKnOaH88EGaT0luMd/y8r9wt9WcFaKX6NG//Pftb3mNpHDryg5698CMWHBM/Pr858oPav0LzGw8V3Cg2UA1N5CGcWk4IDYsRAi5OJGnky7q3X1lyzwP4DMU4uSmhwRaNGxatUlS4qECDOby64QlTG4C1biB5jY0T2Kpshp3eGU0ir46Wl8f7XDQrCaBoJh2BrE3nVL90MR01saurcmCPN8GH0ddXn8mK5Xvy1B+z36xc259fOJieeBuRl2ZNE+V+8k8gIk4N1+8+GMMTDX/J9Ohn3WwJdceN8I4YrrJf9/+crnRz2gNTtbQLzjiX5//9Hhi4luRTLZ6QpBBx2RFAioOqDgOdZpWD/JEBJi3SbKPzwmD/1Dmctc3D/hnQ5tQbPLRCUhiQagxwQSE+Lg/rRMc0MeTernKARzP3yTP4IDmYgwjgLOAB4X8yBejudzR2pRfDyfZUTb7Ux2dTdaT6U0RPs3nZXu1qyv7g2N2PHjHeyi/hLPDAziBal57UPMF+epozHvC3vJ/sP7qf/7b+B/6E9dg3TxjehvquMUPv2/BRG3i23I62CvXo9lslsGpoxNQN7TyTybErV72V4RP+9KGXNklsWcP1OQSR3JCdQsBHkMo8NaFdRYjC5/gyaHheqJ2sQWeFuLWwPoSDqeHTt6CA/o46yFK21hzE0uROMrknPIKje3bQYjQNkByCztzCuih7JJDQerBX8aPn704t3lJnOEe0ICLDUnADU8OBdF/GwEwtpv8B3/hRb7A3WocoO8p57/YX17hKDyKhXQw1AuOiejxi+TKxjE6wjCs9ESVnjyyyctEbpXs/gnG4RcV4tVSqJ2Yxcl6gcFB4NkNk6fyCNSJFDHGv1sgZGOMuKEAGm6LhzRHUIscgQyTTYh+iLNeuYWPRXWRA+qJZ4asHZ4dElzqCPP6N6XQMYSYHELK9GFv9se7j28P/5g6l3CWeEBzFjvkGOc7w2mh5VySXkLuLv8pp3BYaP4H8sWXssxEDwxt3MYeOvev5Cvar8OAkvGnG3IYuMvlZOK3B0ndvXr9xoGFonlwWltX+9i8/Q66yvBy33cPuDO6LgLd5MlJ1IcaX/C6KPN2R6tbICpPeCkDehuNFkAWisls5udEnvZJXsBm/kb57AvQx61PdOv6BySPg2zjQ79P4J3aX69H7ymf5Ui8PgsQu6nSafyZQzCceWhOcPnXMv8H5KqC8x8P2ZZl5nlgKBcctYfeeKY8JCqvLc+u3u0k0fFg46ATmP2Th0W/LK+MLv47YjMvJ6ZVY06erWM8repJ540TumlD2tR168L+PcfuX3P61HssJQyTB7qI/zCp3TdddnX7++bIIRU0dAuOsQffclg9ir4it1L0AgUWCmkhDujjKUcDhlU2ilttN8Bg5ItWWe6L8ECrBUO7CaW5nlcSGPMshPbMBYTa8LT/ydsbv/H4uMnM9sV+CJs919x/qpNq2qRfu/rW+ssYOa9Zg5Iykz3QnD+t4285CmvTfGzffjDegR6+LuzVp/l463rKyY5FtijhTPLAUC044offtiKOJy6XRFyCMYRbJYSKi2cJ4WQ/YRVnkmNSx4YlC6F3f0W+3/Czeft9cQ1klKUID9S82152lQrxwWbPQxgELgFSGqCP8zkHcBgfsObSlAPCQlozd/cUpA8KoI8bVWsc6vTXI7PZ0s/wIuwXv7w8jt89L9WlxGa2B9KxMCz536s/kftF53+vupXtps8D/jcYp08L6Rn3o8cevPtSQQ7gkxZ6PpI6QijYiGOSt5dVo86ODOJYCR60AYAHjsKLQS5LgR5wgdJXoQjuXomiHfoxtEWIfa21F200+ljIMDM0yCKJnaAOs7dbLWRzBHXUAf0TB0RpV69M3i7LX6T9ouP8nQ/85kTp/jpPhRKdgR6I8JsiLue6Ub/b/A+C4u8i41cGMeRQisp/ueVuHZT7GeWBoVlwjD14z8fl5Uwv1kz1HvxMVw2WxHZCMB8Tb3VyyEYCfJUwHJtTCb6arSuP++0BmxCw5xpAe+A84aDWSVzc/NS0aGRb1ifChCAn97rE9F91cvMnoITZdQ6pjsYqQsyIirsVEfGkXtpCvkxwc+VHslbIBL+b4PuKxAPzPdZoII4gi9QEcQSt69F+7T+WMVMuONQVM3mHS81IiWy+MHcAtWQJyB1LIq3GMPAOHZ6OLydlAMASPGtP3/J/qK7ND8Cds6SLoVhw7Hjg9b8fx/ULbOZ3IwYObsrWyb0uF+2VgbCpvYxEuUnz7XC/f39yckll7VQ94J//fbw5qE0zqHRNmnFDF4ushxhhYuGB35qWHzSL7z977x1x/WR51Oj8MIjk1oZO+8mHVN9mH++z/dJf+Bz4pyyzxQONkx7znjAZCAlB7PZwveIhBF7xw1xIGjxEetHe8nPex/uV/2H5WypFh7AQ+dO+4Jh48PUny0Oin9Ixg8zEvJ1kKHGcgGSxoO9BkOndXQEBVR6c09OTMigGScZvNG8P3rBysUcp0cI84GZBhsMdWojkwIWIi0NCqOPjWfU4eQIOavLM6oDj8BmXPibgG9jG1r3u8CisfVqutjwvO8HryQC2FmC/SIUfn6mw3M1oD/hf8+w0/2FwNt/YlhB5x1+MHZSD5khHE0x45H0B+T8oW8p++uuBab0wFT/65n0narVvykQ9N1lkJIsNGMpZGpALC4NcUhAqt2uLWyfYdDg6qLLC8NF5+7/6GvCWpWAPmPvTyQaBYrAI81RoDLmETQgqCxDTaAqTSTVPzgBp8w762q/mH3AEbm18QtWznekNW6F/QfZLnu8Xx2fLa//LMis8gFxBAdRNdglszn+d64RBoRsrwJP2efmnHRS3m5DlxqT992H8F6d9KblID0zbgiN+9B0Lx8Z2fkeM25MG6kCRAw6eLAQfeXycfPqWfRlsgNhQCPUgir4UhufUFS93xXqAJ1hMfjrpYRK0iZGQcfMheDXGbA8tgQ95wTtdFh70rT+W50q+1qB/8fZXxu6L9hty95TqtfMAvpDncoUwyftJ8h8PKaMAYsOShBC4jjUHgQ+scPwWn/8DM6nsaOoemLZbKmM7N10st0OebXdQ0oGgg83ZZXUYTEawwSRjCAPIFR8njRBfodXB527ByAOjF7OuhAV7gJMbYsdJR9C8p9Z9TRB/a5LG2J8o8XQ6aob1KfUFixe9bcfW0ZPEjqepXQXbD1/Uw2CZ78OZiss31So7fr36KSPj8cpaVF1UqdQX1aPKokoYLZKoy53UyrZKpbItrkTbqlF129xKsN7d2pqpJjfozbwnTCo5loSQzX8dC0LnaGFbQJRs/QC+pOI6dhqZQqK4kfs1/stfUzF/zrT9tCw4xu4754PyyxRn5wyHBv9xnBGikgMrYfQI5CNUfncgC4+b5h9w6d1JuxIp1APJQpDxSeYf+RQmMeHzF+ADTn7irNeJCm3dhKVt8UlO40rhhZrSlfBw7y9v237vWR+V0+PHtSFVLMR+U60S1WfUD7lJ7MLxB1+zKqoFJ8s8cKRYcYDE/8Dt627ZXwI9b1xzIg7quBYZ1oMIb7FG/MMoqEd1OemGwURcDyaEvm3dq7ZLBt0nGXGfpMS91aB6SzCneuOC/S+9X1rMoIIRkI6FzvLfzGOK2ZGe4QW1AaMf1oSBH9oG5RCOZzHJioM6vvsw/pESZZl5Hhj4gmPs/nPOiuL6h/R8If6yEwcd1zhYSE0hspY8oBK3wdW8gPHrw4tSOSVWrAcmJDIWk8YFgkQIH3Hwn3wN1RYbCb836UJHx65QdUYKqAA9GsrdgiVzPr9jc+0jMunOKdp+nEiiOBz6BceO+16zX1yPXytxf/62ta8+WQK6EsHTE5CLOY79k67WW7pMFv+FMokcLoIOR8bV5S+cqAfb1r7qUfni0I3ybYYfLawE3woPuuxxyBveYiOgW/sRf8ylXFBYe/Oj2srFGs/QHd5E37b2LDyPdHpWftZ/GI7wuw5LxWU8R/V5yXjG4kKEcJ7v1/iX/v5k2z1nnZ/VL6uPKtaooCkLmuqbHoqm/2/RwZd9ymo63+9Yd9YH5TUq56FFUz5n7E+clfTfZv4TmbQJ8hlrQJR+2g957eSDxy/UzamTb381+OeFB377n9BuoAuOsYded3h9vP5l1crXOsGptsF845HA1sAmczjJ+M35ab15TwfEjvlx/PWkmxIp3AOY+FA0JoI3xsybgBwf+cGob5N1DRozAgJtAOrAdXmgHQ3RLtzz0tFt6866WfLyxELtF5t1DFT1GsAQecBUGZWvDlfqE2dLDF8vJ6HfERjKlR8JcZ/i7+y3nHGZQtlh+BRxzjlygjtnexB+cnTtWf8ZVsKvLqzE3wqf8e1NQ+csGQfMe0LoOGn+T26/mcgxQmjUTvZ7ie/kypMUjjngOZOyzr/JeG3UuLD8D4LdRL/d2LdC1dXlltNH5wmlY+dKxhfUuBIGu5GlG1iP4t2lnwPQhvMYIdSQq3iTzH/WE3Xoav5Dfy4e/bBf9Xe+sR8WcfnXQ/x9++WJhhVm5QAXHPEjb165c2z75TLlLOYoglJcEUIhTkSAVhAG4AwH8U7rnZggviw88BubeVTCAXjALQIZOUL0nAyOTtTITnCdtBkCHrH3Z2LoibSbEKr12/5KUNkyBCYnKoze9+qjglr0l2Ft/Gx5TquqNie1/bdfHOpJz6BSJ7VV4TlV7sKcKvdfPiW3YS6uzhn5yPz9vnlfhnv4DjvJ/zb269mOPGGnbxqVSyLiuOycDE9zFlZnUS5hxoOMDCGq+53/7eLfaD8UkM2dQlRtwQEjd9UVOnZdZoH9tNmPVT/in57P8ZbvARS8tnzHztFL5amvZ2D1jinAFhuIPRYdLonxkKfgyuMe9NTVvtORiQqIzXj99ilNebC2NL6LBmBm2UWeBxAkFAY5C1mnTBZ7oK1yQOWwDWW7tsME5OE+u4RPHbN285i2OOWZ753aj/FTCYdjwbHj3lefvG3tmVcGtfqtEsHfk7FXbYoX7Sbsg/3oA37AnyROAoFr/4TgiwK52Bn/QX28ds/oPWf++9h9r8UzJENTeol/N/Z3ZSj85XwH6OPqV8QQhdCOGvesA8zbwE0eQQu3H2dT9AeIDYXQjrrfT3YWpW15tvt1rtdpt9/XSXA/5j6exBJ6s02e5zJ1A7mlsuO+1bh/8yJE1r+iwTgTQl+dNBLFWUMI7YGbFeaA9PIsyBgfqQO0t4fnHXDkfwbBNxOpJTIID1jMONdrXHK61QhJJSCKroalKVfFiDFX2VovdRpiE69thnMXy9tsMUlbOhZpfxTWp/UKx7aHznxKPBZ8rFavndM4Qm08Kq1FvPoS/1bOlcTQ/JHc0rmCiSK6SGRw5eX1ovPrtq494zOLR6p/NQy3WnrK/y7sryVXj+mMfKiPfIhcxs5Gp/DqtXY40CiYr/EQL+dt5Rc28kM1pQ1Z/Gm15h9sSDRmTRdQLwaZgTPd/ux4YewYz57i7105mmxt1oXHW7PKvex3iBF/iISEMQlEJuLfQeBaCPNEuqse+Jiim3pDcEDFPQg5wiep9EV5R4KOnzyRJa1YDzBRGaIsRD5Y6Cw3JCGEoomB5LBpwEHjS0M9WaoUa1V76TKvLwQXdEbJ2s3jqdoPOfNrizZqJwPeyQvHqqNrz3hvtCO4S8bxOXndD8J+5AH9KUnjfK4TgFMpzZSsPvKJsiLz4R9uq0V37Vh75hvzbBgELdY7/aJnl/kPe7qxf6qfMHW+Rp/QUzYUQj3I7LL+ZpwI+5H/3dif1QfeM5rZklG/w8PWp5dsf7SbcLjspw8Im81nrLuNPyUVuuCQJ9OfL6vfT7IzLq4BsamzHQSeHWzgAE0hcC2E7tAHXEkBygbO6rzqF32WEh+MB1olZDZhJfw6YQH6ONtnIXLBZCC6k+TCYMxs2YvcPlzp20pGnwbct9nHUZe3Ze2XNr8OD75k4Fc4tq99zdO2rxu7UULwsTCMl0D3PP1hN232cdrmt/Fx1mdh1n7I9POAfbGdL1NxUZgQM4TyAUbRXrUo+rIsoC6P7z9ruckd3B46+bpS/yycqv2dPsFBy+EjFPWV7P15W+dxqUsg+LycBo5C6OO0y7fZx1mfhVO1H3ZoP7QI4wx/0HUKz15DZp7+vs0+Trv8Nj7O+iws0n71gShJqPqKbwjVd6IkYRJ3oUH3PP3R1ndrYQsOfA0uqsffkN8ImCMWwAozxEEY5SuouJhCCKPU2YSQIaXBGe6KB+576b0v7QZXP8AoD6iEwQ3zn37pOm1Y7qbFA4yXxjInhk1KIQFQAGVDUhMqjkPyCD6sJY7CQ6Fb0faLS28ftA+2rjvjxVEw8UuxTb554sYlxqmHU6fi7Xf9iyP8vti/TQY4sknBUsfmGaYRobaJ4zNGJ+o364OvqZDBYVQGULZ2+e/b7OOpwuYf2t/pFY6K+As3SvBPqC6EYIpU1A4s+inO/n2dfJz1TbBg+038JPFvUqgzwmyxX2MtJgMy7oRJ3HuIP71YyIIjfuxNi6J69B25TLgHAtwyGM4C1pMX0BIjhaYwLQX0cVebWYDI9/AvtppyP1APTMjnqFZB9AMruC4UHbRFo2QD4ojFiZ5ERHMHQSLO+oHa1WFnMrHKLeH4eblJ3G/7w3CgC47Re854v1w8vFq+3rqHnkA0NhYrjQnsQ6AAfVvpO58meF/ir4lhHXAxCohNVXEQOHROIRLKaNba4XF8YFCbuElsfQPpRUP4gXlPCEWhK6GPa4USrJ76tbO/0ysc+IFMja/6Lo2nT5uN8acfu4aIBTbxVwKBoxD6OGiyDWX+i2o2Tswextz0TWkdx99bZXgovDH1IkqE27du/aIMlaPgeFHPApAzODQwXr1vgI8rnycLMimXUHm8GUa+c7994dLdLoX4skynBzRCooCLmuaB4IB5OdFWVY5eN2Lb8g+eYdu6M0+VXt13z4u2P75lUBbKw5V/LxPkR+T2gzxw6eKpndPGPE1Y5/j7Hn/IRS6YfJ03BAf0cdabhtTJNQXRTyfBpe0CuRj8lW33vOId1mZY9lAUhQr3Yr9J6Gjvj1E/drMx/j2fDb18anIq6wBl833o+7apXStCP+JPnaSPrDh0SxpwX0df967jD2EFfC12+7pX/Y1MSq9tUNT6EuXdwzX6CdbDWU9DAX2c9WokDlzwlO45r8E5wTfCPb6wNWlaIoP1AGLhx8P17pagEkH7A5m0fAUZX4s5Hq6zFngg2OVQfsPpo8bx/1DbC7ZfrqLUFy2Yf9UgDB295xUfkZuxH2CsWsbPt9nHnZJt2zcZ0z7+k+WBLTqQitKz04dQu/J19HGplEM8DfaZrXe/8o+a1BoYof/2T0X1tvHzfejjrtO27ZuU67/9LePf43RCDVV132Yfnwn25+ibDUfb+PkyiHsPcfS8pssqguPt9575GgF/C6VMsRSmpxXWmAQ/WEwEQMNTqO3VAKMpD3oBb9Jf2os8en6x9VDup9MDFkdM3hYrrCOBp2tKwxE526CtnxU4Tgu/vgZIPK2dfmzb2jPeJva9kJoUbP8N4dMvLfwbKlvufsVHxY73Iy7mc4P0PyFt9mHB9ktXqU5p3rTOH1+3PDyrrxzLK1WiTxS/6Og1//trf+ITOfmaL2zcmm/TvhBzxp0waeshWX/2f/ynOvUj/p7qHaP8bJzXYKbZn9UXPmUeALdYG2TcCSezn3WdPkNE/pZw9L4zj4xr8ZfkzYLyVfI0BCkmTbFg4G0PHFr28SvdYoyapxAdYQgaDUcp3iDTqnSP+2H2Pfb4gfkHXn5depnEYyrRgXiAiWvhlgT1gubjWWXQjm2ydTi2OoN59dNJ27H2jBfUorr+FgNSHYW2+Db7uHGl++7sD7+dtiwG23L3K98eBtGf0h4blejLDMzGIzPEC7ZftMjNF+d80TLr/3z+1HfN/My1+OOjd52+bvGqK3+Qcvcf60w/6tS9/fi1mY6KfBTF5Z1sPBl3wtkU/17fNKoX7uEsKVl/ZfMJPKC1KkXHvzP56XydtYdxJ+wk/r6tfbnCET/6+t3ljbnfkcXGIpzwYZRubnUkR/qHjoGlhTigtSFEe0SPEDjqEpjHDw600XdvuAxIOyuxAXlgQvpBIloypgsIjY2LaSvcbwMcMSfU+KsNyIXhKqP3nP4eeYnUNaLVPNgGnX1bWtmbpfttaDehb7/QxoKRyleL9MKOe05/fiWIdAEFHagHIfSB/oS0mxB8xAE72fw27IfQt59288MNoOHwPRKHeoETfUMXxsQg5RLmy2dPcTWuBF/ded+ZzyKlnzCSy86+r6AT9SLM1w+2grcz+7vV2fpu7S/obP61+IKfdvh4J7FnO0Lre/Lxb7Hu3H7TqZU93XqH/BY76k048+xHLFEIzU+gwJa8eMDWdvFHe5YpX+GI43fMGV376Dcky/aHRrjK4DRD5hmuSqFLzUaDOFQ6aSBISW0VMbZ4YVI1idOJRNqzkfCjRXVu/EWVVe6mzQOWiAh/NoZ2QmB9VkHSCVGfh/u0rIxBHcuLr+Zuu3v7OfJR8M+jKD5C+3W5Tv0KtP+LSw64/LdF2brj3jP2rdXq3xQ75vh9tLOHdhO24/dlA2c7Qp/m43496H5prOOEYpBTESHa+fzECX25Ms0sm5ioXR6vPff4ot59wn4Ju9LPKeu3TeZGzpHJ9eMGy5oP5Ef28Jct7eLJvgnb8Wflsx0h6vNwn9ZKhtFpQ2fxz8rq5DisyJeII7tyRL0IZ5r91Jswa387e9iOEPzy8HUiZsoLDlls/LMsMl4AiXoJTpK04dqCP7KTBGbwbfXqKwfclEwTjfUG7QSm/enJzN1GAQF9heH1C/a/4n4clmU6PcAYQwf7hEltGE87Bp+3aExw0NIaO4KklCb34iryfMHzlLHFDmdLXHHhWZM4YDelEtTnxpVwtyCurJCHJ/eVtieN3rPtBLFsQZLWKrBBQ03JfttfCcNoZKTy0W7075ZXFhuflzjtnvF41/bY8C8o/h0YxczKzZ8O2ufY/8zRaCN8X8C3V/zc6SD/O9A/a38HTTIsvk7iDRx2MZ675U9HdzH2N1qTMbXHQ/nWlteysYeZb//U7IH9uuZwHprSgmPb2le8Sz7Z/QEHM2T6eM5g1c4tCKZB48nHadUjUFmVcK3odaaKkKWn5EJVf66yA5lYo4KXdzmJd9q+XRe+fFmkPb5k4cI1g3jor51exdS7TGDGMeggM4e14wwhwy9PBOkspxBNXT2g/M2Va1o/Bs5Faiocnchiw/WlEAQRRxoOmwp1s+Y2WkR+BD00MbBzOkOXpuLqOBLA42xQ1kx1IqsFf579ssT+4vwDv7u2qes+EbbcffrvyyR6iukrCtMGJWQdlO00YyDb0leZ6l7shz81D6Tr7CeubPy1W2eC2WPm0N1Z7ZPcZGgZO0AtWDyFb5dv7Xx98TO/d21T+ykRnKLsU2TlxX8q9tOK9mrKSVRD7emkjWZz/Dv3TqP//AUHZNBHQAX34smpI82/yfn7HX/0yzHRaIM7ouqAKNTdy/90zBpL476FPY6p5wWHfCf/BVG99k/UK+3UpxAn5EQBpZptsRMHHEJ+QBoAfrRPr2gQBzR5Ul+vv11ODm/HcSy/Rw0/1SguSQQjZCcrdFsXfnZPHNDk2Ykt1c/o6Z66ugaZ/mBLLaEFwej2bcHWu1/x9cqC6vsW7Xv5o6mc2YA5p6srBG/lEvUH7PX4EQDyg04ZwmV5b1fGtJXwgsaYEDc+NACXFEJ0A9x1l+CsB29DIaNBVU0u4TFHrD/qhYaN/Nav0Cgf1X7/efyT2F+phOsXL5r3Zw0q9vFg+92vfGotqHlXTxrtmW77La7TH/96VP+3+PGzjwj3vHS0b+5n3AlVMHPH4jBl+zt981di1K4e/8QRHSKN/ur3+J9y/KGeP/8Q5/zUZGWjPb2N/1RoTw+N7rj/rP2DqP4NUYVXqp1EXzlOCgYbHQU+TNop9HGbtH1ZqcKTYTzpAPYmz++zUYYvu7UOje19m32c9pme0Tn17RM/ie89e1lruTOtRpZVjIEHcZbGH6HiSoHfuMFW+hGshreSp7zK02F7GVgqEwPMwylfNXR6mn7oIdVHlrRQUJpKXqNGeAkTGWjvNkGsP4GKoz1o7s+kQyY3SAduBXJQKE/WOu8Ln3bZBqvt/34invhHeYvoslQ/05A9Tbf96jvnS+DqK8LEb63958fcx+lftVvk8Q92A2dJ7Jdn1rZt2PpXpE8d4kMT+yEUitpmUHHoBho3tFEetGE7QmsH3Whf0OFHTJNmcnLtl76Y94Tsw4fQzddXZYHm/qCz0mTfkf4ZedqmG/u9MZ+Nf8OPfsBpXRTfZh+fSfar3ohGQ3wsQnRFkv/Cx7gT+nYTh/14IJql6wUHXlteGxu/XAS6+7sQxWRphOhU1YUBHp7ysy2gFOVx0Me1EtWmOKCPu2o0JKfhrk+V2w95Kp194IC42WnHKe7b7OMpXyJj/9Hatn9Q8bNk587nelIHjsGNjbg7VA8CT7wmcVIcUDatc9BvS3kQbUIV0zbA0FbbSyNCLPqIJ/WOF7LzNuX35IEJtIRZ6vz+IQOFsoAozRGIu8Pu7A+DLyxe9f1LrIf+70fvfuVRMiHoT8wn+nkxoN2Eid1qlOlDlO37aj+6EMHaR9KB0ax3Fxs5gI7Y/Jj7eFLveCkuC1WGJw+dg6YwDP5YXgewF/ueKkzy3usP+lAH4FO1Xy6xdlToB/YNmNjt7LdAmE4Uqjo6Up6+Pg04bCYchP1qj3RIe7Rv5AkNmCKkHEDFZUcIhDggtmGynzr5UP0FPacQf3+R4eMidvIinYajm5/4sqxZ5Il8uAqF0I6627MtoI9Tik/zcav3Fx0+ztYWXTmiB9EHcO0rT57REueCE4MrKcQBfTxh6BLxZUQv7rLxULPTQ+pL0ZQ+lWnLcED5QzgINUyyS6AgWuegthDBCVT3yZGDqEFbQuDol9BiCf5EO+UGPwtko2gfHs76hJUiQNAmRlBUCHZk/SsufaoPUAfc/aluggPqJrsECgI+vToWxj9Z8qyl70r0KACJ4trf4T06EE39iCfdmYFms+KyI9RWaQuQzVYHaTchbAOPg4ndQoPNukBAneDUR5oaDuj6JUQNZBACR/+EwFFHCNwKodYqif3hAHhSiAoUOQvj8Z0fSOqmiEBPtZtQCOi7v/Z3tuLoxH5zCxwBw7GjpwwqRXyeQMXlmFBqNDYODsZ+65/6QnNngKE972eH/RYti6SPJ26BmShmriFKa21/en0j6PQCm3YRyLsGLpRkebUdSZ+SOHwOgjQfWjLZBAo6VCINx8QBtejIEi5AFJFvow0tc9oLH3UwBtNH2+XxS49wIr48i0KcjlV90KXWYqdfs1WYkDyEfQPmFZUnFZQHLtLAT9zBfUCbLaWVzVn76HtCTRIwOZeqb5BnrqHFzGKXykr9TzmEJiqtt4i2zoFm/jTvtC6b86KYxt8pqPoKY6pvGme0zxbqSUi7CVVOHKwJ5yx6TRheOp5t36/jzfecfkJcr50BeYkugjfZMwD7ZU65TZT4mSx9HpdPRL+Vr709XonDqiizRxQGe1biYC+ZxE4Sv68y+9P4UnfCZnsmnwOa+dvFP3zn9nWnfXThQVc/bLr0vledaYqD6v8+5n+XU/60xF89WJD9k41/nhe6jqC78o52TePFo+XJZZ4SctwT9jv+k9lP/RJdPN2hB0rTOU8q2s1/Fe97qx3e0QuCrXee/to4rn3QPgBZNqjy4mwGClQ6XLXjgdNWvy4rOL8228QvA0uLg9rcG2xW6e8dP6NjjT2Gxh7oSEJz/iT6Z/RJpx7rt5/2i6yB/QiX56DCUF5xwoJR8RaLyGRB2aLelhqIGJMICS5qu8MmA1AJWYwdcSefsScEH994q7La8UM08s3v38Npax/tvzWszj11yUGXPdFkax8JYX3C3iY6TfbLF8puFDdeUh2Jv7fwoKs6OnnvvOcVB0zEtdPlm3LniSuOVXcMOP4y2c6r1cI/kr7/Qvuf6i6jf7/zXx6h70jDyrzqH4/U6+7qjZfgSeL7tFTk+ER8thz9Qx/zX8RhxLn+BMBF8vD0x+eMBPpSurT3TjFfd+JhMG9Otbdno0aq/2teGH0i7Z0yQSFOmHINCpOYnCQuuxj9cd4jLHr+kx9R/fXI3MpFtLWjBcfo3S89qh7VvmhRF9VdodKEIKe1lhhKIzELJQZIniQmYPYK6xSCnuEnnVCbsg9ln/zTDPUmtAUIUtuSA3TSVHamA7YjRLXXvdkGGolZ6NsTB9eo+Nm2o/GEsM/Hs/aa61vmhHpYFw/OmQBoQ99C3mTyUd9NgSyehNGOuOoAQq4CqLBCXQhB9XHHloAG+8Nrls5feE74jG9vSuoLQLaue/We8fjoWbmii7Y/DO6vBJU/W7Lqqm/m9j8Jcf4zv3efVH9STvqf2nLPy94YRtGHJRpPndS/k8jLrerI/uA8eQncB/tyBaoh/nkauXxkwuemH4hTK4ufceVjvUjYctdpv23wP3OdEEJ9PNtJ5/ZvmH/Q1euyzafjeMnB318v/WIbuhLff9by8Yntf9KzYh3lf9MErN3JFLkhrMw5dcEB33uQ/bd9hmPr2pfvUY+C70iDRUmiQAkmDaEw+Lni4+zMJmccYUBwUBCmXAnmC/HxhCGDUBenn66yBQfkiptQWzbxm124RKSXiYSJMI+/gSYHvoo+rnzG7NCM/TLpLlm89GMp3yzGfMcIrv51kH73oTAYD2Ll4eSBp1QGXZaRjza2IGF7uRivcvJzgvmR5IzqJm0gF1uTPMptkTPUizCjn+qufVh7s0WvI3546arnvqzoxQbUqo+Pni9W6DfOBmm/vKDxn5ZWq4csOaT7xQbdCSi3YOJlz7rqy0uWzX+m4F/UOvgZW1O8+h9/+VbPnpvvfjJ/wabKtN/JVRpRtXmzXLUc83HyQrLljOsDNqO0sN8qi9036JPtKqOf8gqN9mShb7OPSxTL0sYD8aNnLNy6c/uVklVHwnfmv/7nP+PCuFtMw63VcM7Lljzze3f6ak664MBry6OJ+jflva37qcJIFg5glyRI7CRJZBGhOKCPu4FE3laDQRX1Bh36Ig249GT9Azr5hMrn6ZT0AZ25QQZwQMW1gdAEygadCRUXHkLjd22dPL9P4PpHiCPigLKhb0LqEcpbcQW/QF4AtkOkz7oCn6Cob3J8AlfCJ86lTRBtUcfCq0+APs569a8cAPo469tB9kV9oL7SYIaZksJ2wrRJ9/bLPZ4nlyyc+5EwvLDweVV8hMx/O00ZlP0SnP+1ZNU17w0P/v4Y+54qDJ9yxXa5UnJ+UAk/PfD4R+GU3jyKiZg550P4hDEx3I6Kyn/00c9S1Pif9MTVTwNmqCz87MKWzTsvk3FwIufBTkxhrjEHe5n/ZNE/Jm9DftWiVVfenO1z0rhtvuu+T8rs+rxOTxYyibjJWSZZD6fyMBx4q8kgayz6VX6BmrgQK3/4x4YlAqGPs14dDZZWJx+hawF0uhGyX0LVAHLwB+j4CVV3TwblEKocrw3aoch8/z+XPevq7+vBLNo5TyXxg/3qIw+auS4GLmjOKwyh+VsYKU99jyPxXwPuONTPgrM/8CjN8aNP0FggF4XyiSvR0UlTHsjBX4fysvpAFmhpoS6AkIwSrdiybXzd5jtOex8mDiUVtNt892nHSp8HOqu0F2qBA+Ksb/C58+Nk/syzX57+/Jtlh177wSJM0qsdq66+oFqpfJxxJ6SehHn2+TQfb2e/rNpehKvBvduEtaXvbRwZJYVSn8k/1Ys0aZH1N/iz9veuY+ct6a+sPpAAWlos41NrUWN+SO2mH1L7vVc7pKJKTD0QxxdWtt616RJJltPy4l9E/ieuD+XdmWHldbLw/1FC85CWC47Nd5x6QRDF79DQY2LBhkJoB7pHOlhK4LB1sqS1wFCcTLZX2S6pBOdAATQcD3hKK3eLRHsFnkiyvk2uL1sYwCO8hCoDump7tGv+g634A9TNGqsM2/l9KKeQDaLGtXbQeMmF9rJI+vbSVVd9CPhsK2nM0jgy0Qlhc6MHXZyFzvbgAc6Ci1EogD5u1GZ5jIfV+L1ZC8oGxNZugPp9qg5oB11c+yxsJ8/XCLjqIFA0WSELj/+3+a5Nd2258zT99oiS+7yrxvErIJJ6t9N3qvbLguCaJYde83d9NqNJ3OJnLXu/PAz8y0HFXxKnEtfqpzcp0iHBlhtp/BkPNAfOkvU/6KQBz+ZTvv3gLK5Qd8B2+ZTVV9tIO8qAlsBZaKvcjitLCw9svuunn5Gvt/+u+ZZnHBz53rbG9C393S5e9D+gbiKGsIJP/XHlrXJOwyMYuSU3bFvveumLpO3HIUkVUomC4cQL3J2AoRxwQMXRH2hqmJ1ogEOGypE6Qm0HPrR1fyoa/MJk3RieyBe6yocQFeRB9Kp9GwQOFsIcdtTKhmI6G4+1U1yUIEzsNsUg2Ppz0Pruwv4guH3J7ru9CZ/ITIfZtYc/zCcWA1rnxwF4dmO8kvaUI1B9jliB5v6IA+Zt4l+lA/o4eVVH14fiyi6yqBjkAnfys/yqB9rzjzgg2mhTg8AhCoXisxBtrDvXPoqeEUX1yzff8ZKPF3G1Qx4deCVsQ7+qr3ROmNhtCqkPtM7jl1bWthP7w2DHvOrcPzAPFLuXBzjrc6Lg9yuVSl0U1NgXHf8oiHTx1otlmIgZd0Lf17ABG/4IfZz1WejbrHgvynXTRh74Uy1djqCp2uFkwDYUwLwNvJ3YL75WOeWu0QOb7jjlf8tbwN/OPGiKP/w72TlMnK/xYnCE3wXE8g7HsoFHN0QbOP7C8H3LDr3qS40aNR41LTh23HWaTHC1S6M4GpFnN0SYBJabZoIcO2WgN3BAxaVjQmmoihCqEU45ESgNoTiUcRBA+zGouNQROmbjRzMU8BP6uFGtf8HpHMigHiqvXf8iswj7xUcb5lUqr+rr7zA4m4cC1OSrdy43VB/grlg8ERPzbRainfK0aE85CaTshF+CqjQEN413kgNSpzmQ8Aub8icSGxHWJfyN8kWY9qMQOPgI/bZOaq/2i8j3bL7zyZ9uuueUAxoV7P1o9P7T9xZljx2U/fJtlAvdN0t6V7qLlosOu/YWyTJ5GNvygHEnTOxmnPJksw5Q8Unj/1I895Ynph1N9JS0sbmVsB/6qa2+/e0UmWo9fumygPyfqlq7QvtNd57yl3JO/IskTwc4/4Vx+KFlq675p3Z+blhwyI8RLR6LIry2fGVuQyQSCqBsmswOWmKD7HiMUfdCRSMPd2gDLa8+M9pVttAA2Q8hRXpQNNQjQB/3WLpD2Zfrvxf75cpRTR6o+d0Fq66+v7vOZxi385FqTb91YgJ5k/aMNWLp4a6+OQbiYZXBMwTaAbf2VifZIDw+znrLK9cPdfAhVtQ4BtTVNcRDviuoQ2Eb4krsYNfU3umitkfHhrX4xi13vuSZHUhqy1LfOf5i8UFIP6gPtP8i7JcHYeeMtJ2Q2irdJUN1ZM7/lWtbE4wvbQX0cdZPKf5xvHTrXfce16WKjeyTxb8P+S8/zNfYX7+P9BeVRSjs8G3ptB+/jeKUI9C3333W7FTsbOfbdOdL3im/8PxhzHWW15iTsMFvhI0536/8l3fofGLZYddeKB21LcmCQzoPNz+x8ctxVD+crUwh5A0VNbxVvXAZL6AaCnNhcH5pJ1/uYbuGgPhEDFkG/bapdPYFaJfmCHlKIESb7KdNn2a4yeur/WH4niWHXHsd5M/mkvrMcgJxsA1WM06IweQ+bucjxhPQ8DTuaT9pf838bJffU5N+HAvQ2+meQFjWZE9/7Rf5+0gXP9q87qUH5WvcBTWO9ORIn+S1bLJHOlca7HS2JnAS+8Mw+mo/v5GSp2seTd+REAZXso62Avo467Owa/ujuLcFh7rT8pR9ZnXJO/ZtMHzy/O/oxUt5HXVIqwe24oANZkcK88YjbU350zHUYZe7PNumNaecIzfmP91J/JvzJR0HeY5sig/j6sa/3J75ytJV17wnr20eLVlwbFrzkv8pKyT9Lnnr4NuAsMQRXLV3UHA9dFBx76SPNqa8Qd+QVLGMfK0gLeVKMdYB5slPaYnOerIzfpNDGcLhJtCi7Jf+/mXZoT/8dKr/7MVwnxAbfEno+5eWow6lU35fho9TnkRcUUD9wwDBH2DOBmbK8XHyUnfqBx7q3Ak/5FAG+yH0ZVF+O37Uy/aUaOf4j7avffnTIKPXIs9v6Ns5fX2Iu34S3akf+urFfgnBxb3qOdV28nHlYtqThZBNm32cfIxdp/aLc3pbcGDe7GC8UFfq5+usuDiaMMl7L/8Lvr4RVOUPutFfxFvpCz6UTvkhxwo/jLrDXRRsvuslLwvi+lfEL3ouR8xRNPaMO6HNHRqfVvGgf1nv56QfK/QhM/wVSw953vlCZ1BAnrSokpvXvPjlouJfQ00rgEgaHBkEDiUIVTFngFSgUusJqbAPIUvbaT/t5fttrZ3pYDqmOPmoG6CPsz4L1TronhTiBdgfBNcvO/SgjleCiUozFunMh9mY+HHzcfL5NB9nPdwFnAU8KIA+blTsyWv6Gp205nqTbXkM3NfB5Kd5Ddk+zeelvlno8/g4+Tza08YndspEc2HyocF072xv7eJjBmG/uP7OZYf9588606z/XMsPOfB78q2GJ+A7FEI7Yqz7Fn97xboJ73wv3eflk0/zcdjg5YK2RT0KIXDaSn7Qii31JOeLzP9ibZgZ0rfc+eLnRrX4m3Lmn4OYM+6EsCIv/qSZlT3mfxBfv3Th08+RdwV1tYatxA+fvUB+/VXeSc8Bl0JTPJ1coaBvjCnc+56yAH28tcTJnePL8PHO5aW2wx8mow/2h+GDI3Pnnx2Gn5V7ybtGge9ss5zBXIjN/GoQuBVCd9gAWAcImag06OMmS07w2tYgcOhAaPE0mrK5euDUF3KMz/ozPupgR/7el0kZjZCyAdEytQG4FUJ32ABYB5i2hSx5xvAFm++4vqff8Nh69/UHi7jFWf2tD+urE/2y7RttN33lJui0vrYf4070utHXlS72aYZPOf6HYE6l/KnDSeKvVWlOIF6d5P/UdWotATdU4Md04zEg2jXqa5Joox017lkH6Ldt5NrVjkbvftFRUT3+njxisJB+hX86iT9zHj4jzniZj83XwK0QusMw+MXy6pIzwmdcvNNROgaVzVvX/4l0HVEB2gAAPCxJREFU9ow84c3KpAqih+Z6SzSTleKJMS4RNfPMSxCSKNtOnvEKP9qwHaEpZLJcvcoTPOlfExb9tdpUiMkAl5Odtk9pytlUn9qMPlz7bXG1cqZ7334ie1dBuJr2P2GRZj5ALFAsJuYzP2aNPmfbVvKaYiaMSksaSD8qhDnAvlWJpl2TPGjq4t7EnEPQroSedO/wlHWK9sfxhzbd+aKuP1XH9fAA8zk0oQ6pVsRoK6CPs74dNPun/4cJw0r1liTuBcZffFQZ3fHk/u380lyPWwT0cZH539xzkZSi8r9InYdd9uY1Lz2oXguvktXFcuhKHwP3x6jiUknYj/yXBc1dleril4WrLt+K/rotFXkG8xQ2yioLQ0AD9HHQSCdEPQqhj7O9TwOeTnSc/LPQ5xHc9aFQdZNB6qD/AChaoVCX1v0bH/ewBaWVfbS1VT3ask/gchlXflQ7fMuKVT9cjeNdsWR9ipgbjbGGV8zv+f5hnfGzLWPQVh6+aogCqLjIIUz6ZR/KqOyQa5tP83HWZ6HPIxIyOQWZtCFfPtr7hbpZP2xL+0XanKAef8Rv0QkuVzX3ze+/sT+TRRqOiJs+duzjPo/Uiv1zRuJbTM707WXavSWJe8Hxr9ejp/fP0kZ/Z+MP/5PWGBungdoqOCDx/inXQhJ1li4Lyv8WHc968va7X/zUOBi7Rl5bsRfjTthZ/CU2veZ/GD40d978U5c+64qef7m6Im8kOxoK+4nRKmp8NgQQG9oQUsak0A0OaWl/6Jc0lZU+ZOg/rNJKJtYfqoNAxUUWYSLXk99KDumwG3ir0rX9QXDh8kN+1PWvYLbqf2bS6U9AH6c1Po08PrSIWoR9nDw+zcdZj36As4AHBdDHldh2x/zoNGfSvlvpQ91Yn4W+TT5OPhkzQfyiLWtOObmt8g0MoSw4irdfFuBji5558B0NXU/DwchI5BY9vs0+3plSHcU/xmKu2yILAs1TxpXQj7mPd1oPPcA7XYV9U1/oQZqPsz4LfZt9HP7atYp8HX7lWK1+tZyi9k9zxfeJj9OP8JHvb/CgAPq4Elvu5AHRx+XnAk5dePD3H2nJ1EGFfEsq/o3wLTNeKEalpcadfAlVbzyQSv1lNpFfSpQmVLyxvSgprFgEWH1jLXpspFh30gJkKaqJHKTSTRZkWlEOx+lIDaBRfkOVHmTbN/LTbkJTV3iS7lvbLwumby0/9Dp5hTO1b+59NlPoM6QGcKaI4eI3F2R/YQl/gGxt6B0626BFzHJC8kqeUAsu8n0MLkYVErI5aFLTmDA/mVPt+MNKuESU3COoBHsI7x5ix960DbJpa2pfSkvr+2O/2uLGYxRO/I0cn6a0DnYybuWkCKsbx5TFQ35CgEZpQERgEi/DWY2ufDzH/juG4dmlhQdf98imX73gSdFvN0sQy6ci7Jdrm+Lb3ko3+a89cD4GlNLsf8u1JJ5dPeKnInvaFZ3/QZSO4Z4UnGGN4jUvXLypVv+BqH2o5awzoNv4Z8ZzR/lfCTcL30uXHvLDe6bqthF5//l/ylWOVakgS9z02MMYY8KM8saZtpdXCmFOk/sKjqa4cLnDZOC3kEc2QvBrIjt+4kxuqxf5lKcKJa1NvYY96whR6eMNzKlcym9hv0zAty3fff6bZZBPIiwje9YdmulwEQqh4a3dQtcSWo5Iq4TgoWEwsfyw65JfOoXsQZcda07ZdyysnSYGnio2vlIsXWgaDsB+MRa5j5OJ/Lz5qXiWQ66o/aITH8ivFON9Hpbu8G2LkDRNSBII0vL7gaBUoHweWZ/PNw3UMMCl4N20Z+ZTo7pNStFWQJT8BanfTOIRxfv4lG5wqkWYuDIhePkvghn/ZA50tJZ9Fv0iDn0PB5Q1f3HcE0IvX9esnjSTsKX9PX03K9vbzDiO17583uax7ZeLL5rem9N1/OlYwvb5v2MkGDlj6WE/vLUf3hqJFsz9QLBt7HQZUPtDB/avwvHRBZniPsJkjVN+VFOTDH/StiHbyJwDtZ+0v+b2WQ2pLaBT1UEcZ7lB80tj6xz+jD2d2C99PhGMVM8K9756m9/XroTjbYbMiXY+Vp+KcwCT4qFu3rLETBgM8dkyVQM7XHDYtQ9JZ5/DNrrmhXtPBPFfibLvEPv1V16LtJ9G0ndRPTpHaB0tOGSBIgsj8yDbQx5xQhsCWNRYb6CTZpTGPdiUJyGHWxJ0mhG5dY1Pak1a0FZUECekrd3YL9/KEd92V3BbPdHNV5E4YY5Y6ooqLD5xzCsaxMkT4mcHCi7ap+sDamtOuGPiLp2SXKF+yubbSpzQyYl2kSsc8vtJ1U2/evyrkhsvcqY3Ad937eLf1FgIfnvigBKjiWo1+N2lh/7whrx2vdAqKw68dvO8ufNPkjz9OhJeB5imvkRYOtVBIBC4DjoHyUdIPkK/rUkRGWKB1iPbgCOJHLQu8BZR0AFlk+oEwjqpBA3Q8BSihroAYkMhBK5tHQRu/AYNT2VoT9qf9YH+VJaDefzyjuiJoBq+drdDrntAxJdFPdDodYsg9vYHFqN15i4XVqSN3NUYrrL4sOse2+3wH79bHhY+XD4J323aFWe/7wv0Jcev7tQj8uZPXXCYDMlta6/NKRcHGGqEPm5UrXEoGH1bHTmMNzts+kEYy+LH19HsBq2f9ocxfFtMYWxa6ysrFymcQ4krcWA7+lh7d71afthY5+g3vl7G/7CN/SJcKyf9cNOa335e/KMv5EQfU48/Y2PxMHnN+S/nt0h+guMtyw79cfKW3n7YqBfYFq265lER9jr5us276sHOw6pxtGcqnCY6in+oZ2ChEypLA0NzI5+XrIQN7nRNE5oMokiu11XkC31yI12uIZ8pE+DbyAXor84SOv0rBHSDQ3aHCVRpjkcvlwoREAUDgZdQHUGBChHM2lqwUCH8715x6I9/bEy79t6fRHxcfaeOc/4hbi5HEMWxcgCIkqlXsqt2HMY3RHsZpGs3PfiKE4MtWy4TtV5QlP1qMl2lMD546x0vPHzJodf9qgN36LsiqBshHG44HI8CLwN33s4cukFgLMplfJQnNxWH5gqH5JTpojkmyubo2xf7w7D393CobgyqKEjXu3D4+a8GkNXV5zZoGE8JozYvasf4Q76PZ9Mpa1+n439X+LVYeeboY+K7tyQ+gy/d+FMI53YdfyfEpQFjQ5jkf1z5o2VHXP8f6KKfpeGO3rLDrtoowvt2+aSfimZlbVx90vvh/dRR4ioZWHopyC1qsnOjLkgcD+XZ9GhHMYIAmRyTxBldDlwnnzIAZWHyqd2OvPFffVqJw52yIPN8ThzQikRAURcJ4qwGUx4Omk83YUOzX77f956Ue69nPrljK97/cAAXw321n9Z6fqjZzxO0XXDIh6fklgrFAOKTselon5SJJ/FiX4Ro5OM49koUD88tFZksNqe5lq90P+wXyT1c4UD+e2PBVy8Pz6Op39040rMUCNljZRrYrrDxPzALpqejJ9c8/2/lwe73aO95sc6jKXM23tljNATNF6ANrbWO/+pfrTji+n9Jqf3DGhYc/RNbrKRNq08+QFa4J6vPPN/ZggKTpnOy+FTRBt8yAKJjk++lTnnT9hoctocwbWP1jkto4XXLjxh5b7FWzzDpLgbmzvQqEKygO3MtUh8Lh2sPH6vLHTPxSWXkCh48UX6sbMum21/4ujiu/VR6T362fFLdu7S/2T/xczqyNI70qnRTe7c4TBYYoo/iLh5NsrMByQisVMLiHxpoUqoFIZRvNcmEKga1zq8+2C8fWKotNGhPnnL8dcZKxxhtBRxE0XWqJAHyQIr2ihyyw5TmHTegndo/KHsalBvMwZNrXvDuuF6/EL1lhlMyF9Kf7eqTXKe/2vi3Elb+cbcjrv+HoiydkbfC6kF0PnKYCwtAw1OoodKklx2gAsNxVQR/Pk1xBAP/Tl4WagKAh0WiLlc27h+ZN0deW37d8Eys1G86IUaEbOotB4GrTwnVz3heB3Gz53agMnAWiEFx4hRRWkKw+mHdLz/iupuDSniJ2i5K9tt+nUfEF4DY5MpF8mvPk/lEvqWyQ50KJvgyKcxvaowK0lKMtRgOigMCUR0MGh4vhYShKHG0RG2ForCZdhOqkjACBdDHldhAUQ7ZJRAI7I/i7cbd+R63CJj3hGhN1QAVlx0hkKb4g0/oqhMEYGw5aAHCQYFFzijMA+infXv69C3/CzRhOkVvvP15b4yj2j9RB3GdFkDFZUfYU/zRuFX+h+FFyw+//s+sx2L2M27BIQmLL5u+yaUyvNfSMxy4gD6eNmBbQK7CDSIu2Q1DV+Ml0A3j0SCsvmrps67r+c1rqS6zDDOX2uAQnL70/Wy4eRTPyuDPfGzQvNy4FwbzvZM/E7w2Uqn+Y1H2YwJXn+DEIpsMjv3xnf12fpGT4g7lF0ZCjQRkOJrKdjjloQ6llT3QxRQyIMLdO35An94ShfEy2KR/9Jeo1G/75YS/o1tLMRH3kv8aI6RAK3vEWo2nWd2tWt3z+1c4RC/NFwctd0wfzRHVzbTrevx3r9nQt9j4qxecIYG8SO7pyyku/0/IWgOouMSdkHlMyLgTJnkPCZl8kaciv7Xi8L3fLlczIbmwMuMWHBtuP/El8lrX/eAwdb2DPk5nItuVDx6XDYAQOOoITZ7jB58Un+bzoo0ESJY+8ZtXHPnj25W53DV4AP7SjckNKH/qbwfpe0Lf3xSGiQil1YREvmGG+hBnGN9alP2QyyLv1JGHJuqH8rgVlDnNfQpnWxtPxk9a8xjQKCK27g/8fv9+DBUPg6G5whHGoerCnGq0tZ/293CFQ7r3fWe6Wd4Dnyz/G/zvcoHxQTvgbE+5xUG7OglbdEPvXr70a/zLj5YVZ8I0SH5y9fNeEEd1fFN0hHkANZirjB9jCYg/FEIfZ31e/ClTG6uM8Nrl85e8IQwvxW/vFVpm3IJDTvXntfYIJ0qbPOxUZSc5TXRJfEIGlRAy/asgPp72l8qXoP3N7kfchG8hlCXrAfmuPy7r6uVe+NycDgfbEHEQ3kQdIfkIjV9qld+GEHFA3bJ9D+mxaH+96S4K9tF+uBbyABUXKFNx2wWHfHVzB/UgRByIA2JjLAAVRz/syPEDtOQfoiscEoOlah9u2Tn7fJt9nPW92C+iu7/CQf96PlddMTqExj/iiX7O9wgJw0JoVVwA8CrvAO78Oht831Ff38fAwUOYz9/C/lm03pBnEo+Nw+gKWRrOh5/oBz/WfYs/cqkh/8P/XlEdebU8bzaGfCm6zKiHRuO7TlqyYWctfdeAZq+4iBDeEoeycDGRQK1P2TEwwe0P0LTWMQO4DjzR31h+xE/+PttSWctdEIyMBHF9wjwhoweDJTlLwYk6y1icbE8PSxNMQMrjHEmcztegQYbxOq6hB2E88vNYnlnU/OyX/WI1fcUch1/kpV4r2zlELoRs8Lzekl1jh37cGACwb3O5JrQFkHyCk18u0eovWjru6Qami+ZQZ6rQDsJO7A/Date3WOWqrYVDdGNMVcPJ8l8YyOvHX4eKhcPGCZTmcWdmT43Liz/GuvrO5Uff8r86SIOm5o7JWm9Z/cJVtXjiBxK/JcpXdPwx4cJ1mhLhmmp10enhYVeNTqZjP+tm1BWOjeP13xNPeV85g/dQAH1cic07nrQAfdxxctACGp5Cypfhc+uKPfZ8S9H3upqVn0EUvM2QIVFfi+7O5zr5wL/uD1YprVPz/DAT77TtNPJVwvrj8IHa2m/7s36IApu8JrM3DB5CtX8lz8cna+rX+W3sk5OTmcQ/8H42wW85WHzjvacsk7G7j/bq+atJf2EgrRMNyQuouMiW1wU93EnbnnioO/0LIaTlCWSdz5/H10ca/aB66biHjqJAP/N/Flzh2Ljm5H0ngvFr5IHh3Tt2f148ScsTwjpAD5cr9PfPmxec5l6FkdeyENqMWnDE9eg8eCFdEBhOz2QXDOQjZNtW/FiEgxfQ8BRivEjt+nDO3FeFT7mi66fQ2eeuDnn/ENBw3A5wS26cjtXRBg1vjLGywologm2GlDAc2QRVzVaDtJtQLO3afl3AiB8AFYf/Qvk2RtsSy0kRvkcxSHcSao0lfssxR15AH0dbFInhbpvuev4z7Gj69uG2sWeLKaKiN+sWZH81jnUx1721EsEu819jrlal8U/ywMVOhHavyhRaMA/yRPQt/2fUmavZE1vXnbZnXIuuldg8rd/jf/L4Y34IH6tU4lMXrfoJXvg50DJjbqlsvuOEgyfG4+diQOp7AcRNxG2Qmt/8sQU+8uR6FeMQo8ONR+UVQp48YZuQV72+dsVhN/Y4meRqMIuJ5tSMi5vsNffzxNd80sLgIQ8a4xlqlWnim+QNKyEOJ5boRJBRkLYBomRhW/vVD84pFBB38qBm/DDGir+wRvOm/jwa6sFhOloATIa0skORZzgfdldyrXaMNLxfm0/TTm5ZHA3bkuRJ9BWS4PADSj/sl9dw9HyFo0/xTxIpa09SYeYWsJdXnag/zcHYwyY7au7O6phTqXb0Q1Z/jn+5b9gsbIZQcLVtfHT0KrHt4F7thx+0KJQdj+ls58Am/wXhk5Kfpy0/4sf3Toe7Zsw6cWIM796wJEsuX4rHSMtzHhcOgLkbphfUuT/IAM7CpAeU7YIVR/3sBtaVsDcPZHyq/gaNMYD3DQdMJysXgyb+3rQYfKt6LViBXvttvy4YxCuAhmsfba9wjFSrD/EkS6hewdkCBdDHjarjxaolSqjXBYZBXQ2iMpkNrVFUj481bPr28lsIRyOjzNbUX9Co3/ZX5o082L2lHAHQEn+AGssEIndQQ6i4HBDCDm3jIHCrNWi1Six2l4m/3xl0RwHElrXH7AbV2eJBn7/wr1NIv0WU+OGzF8Sj278r1j3btwcW25/5pJ395LaYp/mMdswD4CbNoODbxOmvmM5vVs6IBUccX1gRL75J/TfpzlwMJ+umE6bgnDyzUOPANnrgpFt7nVAhK44/ufLon/+bqyxBBx7gAk+uF+mJCdDHWQ9R5mcnVGOmRI2b1gkt4ddwYAce12YGAPmxtAMKs9/3A3zVwZsul9YWyuvP5W0cnm/V1zILEuKMQJx8Pg04Jk1C4OAjNDzGt2aeO90hkicsToQOao+DtMmHUF55YISHk8enAQcbIXAx/9EpvZdHBGgBlE11cdBwpx/YGHdCNMy0T2QpUvwukpWA+SEd99C77+O/eFP63kMcv2POxo0Pf0Oe8jk5ySfpRePK3jLxs5i3mf86iL8sQsbDSuU1K4/86U3sajrgjFhwbLztylOjqP40OMi/okG85RUPnQ2kEaCPQ5AWRgrQx121AAnUj1Yevfh9KaXEuvEAB1OrAeaHxceTPnyijycMMwOJ4uAk3xfU2jfJx1nfkLc5DM1jQPI4jrYl7Vsg4VFX49PO3Zr3KrfVGPDHhS0m0AZNsGF+JPTnSnYLm+Vk8/wn73jufqQNGj6x5kS87v1g7VdtFYwGYNwrDXZiQyH0cau35pPYHwa/UBE97HzVkuY+0ccdQ178jdbKnkRyYQjzAB34Oe/j7Nw3ycdZb7GRI1R6DJJTyU8FJLxDjOBD88bVq78kvjmdfoC6nkkNeGJKG4ZO4i+3N2W9XTl35RE/vTqRO03IjFhwRFF0nvmHE0H+YGIgAfM2TCTGY+2J5/FqXRjcN3depXxteYHJaTGwiUnj4GIkkdI/nNHwB6gbcUDdClSuT6LxyUbmjZPzxPXHfvjCFVkhy1HbBQe4ZRqykyN8y0I88bdorjTMfCLb4RorwfWP0MVD40V5AqU6jCY4hr2KQaG14Hy1AbpnN+gAGgtx8uE0oLTO7BcP9bjgwLdccvzpaIne8LHqA52pN6GQcD0dBRAbeAm1nVUXuc/Gf7K+es7/OBqaF8pNZh/rNqz+wafEVvmWZWPp2X6NPeNOKLLz4h+E71x51E/lysr0l6FfcGy899hlksBnYXDZeDHo4zbw7FMHcJsaxPfwv7dhIOAY0MfJw7YqL4xHq5XgVUsP+dmG6Q/TTNQAg8D8TIgj4upjPYZt6YBBLFDSmBhu1Jm537D69tfLQ4srBmK/DAw56XW04JCHqjs4OTI2FjuLAGlpbNJ4pePQj7VMrOfJxvAOLJDx/S+cLx/wmib6zhWgrZ3ZL28z7cCnrXung1J/pj5u3cqr4aIC0Mc9lqJRs8H85ee8j095/Mfh0Lwyv50/N972O38vVyL+oK/2t+rUj7ng8mNsf77yqP/6XCv2QdOHfsFR3xq8XpJzPhwjE6n6B9DH6TQLKKc5ORKH6x+gCwQh2qCO0MdlkRhXgsobVxx1s9znLkv3HsBLv2zC4Ve+APEH/xMyFoTohzig4SnUiGkcjUbe7vUbXAtcSpUHFt9flP30EyEsk9s3v+3EwmqlcqPvY/qTEDKIA+ZtfkyAZzfYbbRg/w2/eq58cBhseWLz9reIVsupe1Zfsy+1DdoZzfQkzvZZ6MsTS+vVOQF+Gbjnku3Pl+/jWT14jI4pw8fTenlHTqEFD/anecD49z3/g2jfQs3ok/ANt534fvmw8YG+299yPHrxr1T+94qjbvpIn0zpi5ihX3DI15/OZwLLE25itDyEJlBxD8ooM4cQ6pGjuQFgA9GbXIRXaWjjbXL017sfffN3+uLhXVwIJz9OeHZ1VxYdMjv7eKt6uA98LMTZnvRhhRtXX/lBse2IVvaBTj/4uG8fbYaNxFvVY3yEQeW+Tvyx7PAbfxFWQl2cUJ6vg4+zPgt9nfL6hAwUhfXoExvWnjCwS+Gja164t0z0H4ZPWhXYg0K7fJt9nPVZyLYqJAj+a9lhN210eFcAX8DL6y8jv6P4W8ewmXYTdqVSX5g17tBE8iDPPp/m4/QzlADOQlxIxwq/V0OO4YEbbj3hrfLsoZ7wYVuefT7Nx9vaL5YnvmjwgsVaSP+6+5E3/Y/h8YZpMtQLjidWH7tK3Pcct17Qz0rA4V/6mBDmND1AI5VKcw2UV3buUD2gNMVkp3Xh1/c8+pf/QFIJe/MABxhaA29V/EED3B90lNEIjQciJxHbqruB0jeu/p2Xi45/U6z9mMhgFnY2qVWq0b2dGKpvy42D75svO5sQG2NhfRvN4pHiJk81c4GSuqfK0yUD+8S1c3z7J0Sr3aATJ3CoYnmWr6+fgz5udplNjTjkOD+Ewfc68XseTygzcdf9ubibe9P4i0ZOp3QxC9nY8BLgogv0oY/QF/BWBTqhUD/wAmf7Zmh1chVv+cbbTm77m0EmffD7Dbed8FrR/bPoGTa0Kr3abz5W6SLfoPRkfYXx11Yc9fI/bNXndNKHesERT9Tf6idc4lBOrh4UV6sfCe3ABdpFR+sE55/KczKAS7Ru2X2f8PzpDMhs6RvziM0l+MSNgliI53V0GPRjS1w5bQQBbSrZAdrEMCSEjbcd/664Xv+O2CW3VFCKsV/9LDuF0ov4J96tsqCjKxzQSvi/x9uTOO6+uDHm7KOt1Ad2k6bxD6K3r7/td87svp/uWjxx23PeLFn2u5Zv0jPGvWywlZB2E3bXA7lT+yuV3hcc8gVlNzZMV0rPwmz+q59ll/rbcLbL2l/0mx7lF7Tli7EWc8adUOPfx/EfhLXfp53DBDfcfsKp8kT2v4u9VfoCsN/2Ixc07oRwQhj+YPejjn5TGF4o18yGrwztgiOOz5ZghW+UUagrXjgXISPUYY5JBD5FEoPP4RoEJRuNkw14dAA6frBrW8AweLw6d468tvwX5WvL4Y8pFsRFY+PB3kT6UjgpG+Rk2pvcYlqtv+2kZ62/9fiv1qPg0zLi9at7tKC3HtkasNl+oWhOK4TH4/DO8LDrRjvua2FwtbRKft206SohenUv3OtEZqO21oI0HGGYhlH9Gxtuec7ZncjrhWfDrce9VTq6KK8t/ISS+MvhSgTubAX0cdZPAu9dccR/r56kvscqeg/QYk2o85qjtbIn22nRFzjkMcUn0adpa73TgqwunR2zdZ790Xmb15yoL9TrTFbxXHJl43eienSZrB/n+pr33rMvpU38w/gnu++512vD8LPulzN777WolkO74HjiF2tfJg/b7APDO1owOL4Gfo8Guq1IHMQCBgsPXcjE43I38DUrj/h5z68kVvnlLvFAEjNvkrRpCCwcREAdniwC5VhpoGPD8pHQx1kv1dNcnrzlhcs33vqcVz5x6/HfCKKxO0T/1w3WfvjCinzCvJF4J3Dlwf+9Rbz69Va8OkaksrU9jINB47eJ0ccthqan1M4R7D823Pact7Xqt1f6hluOe6/I/pz0LXOb9ZfC7qWaDe3tlw9CU/smAD6PMu8Jk7yHHcj9VvlPO2EfcUAfR13xpRoF8q2+yeOf6iX6qK0O0m7CNvZLbJZPjE98oXirOuth423HHS6vcLhSbFqEvLHcSWFqN+MyNfsb5YW3jcSLXznsv/NV9BW2ziKVwyUhOa+ZjEBx0KGWOCBKpl4vhwgNMKda+WWlEVbiP9zz6Nt+Ykzlvh8eSFwuA4+/aQO5FhLQXC8KESM7xlxjPHbc9NscKk8iBxjH1fWrn/OGoC5XcatyQQxF0AAooJYsgZWOP3OYyIJMFMj15FfqMpmEoXyqimSr7C56HFsPR4+QD8S2eIcdfsoVaD/Uo28B9TgIblCki10lqP5bPai9BU3UryLKJstm+eBJYqcNQJBNbEbRug7slzdzVMVnn5NF2tmVMH7/VL8Rtn71CccG9egf5WHyF6giTh+85xTfEND3nUI/hwNqwWu4wetex92L/eL72vw5wcUmsMc9sgeqyNZp/qOnbPzNFpOF+ib78bBIgSWqhhsCuYzCHDF/iv9hmBSzrT/j3wl81eO3HPfJPZ69+L1heF3RF3C0y7zdptXHHzBRi6+WPNoNMRiU/S7+6xbOqb508RHX6Q9E5uk3LLShXHDgMtnOndvOwH1NDig4zHCZQFw0ccmTtPx6aS8VTHYdzaAkyY+JKP7nvY5Z/Xm0L0v/PcBYEWYnoGyPFk+Lu9a5E7YfM+BO3py4Vr9E29RsgaAnlBrizhMK4i0fH5Ocqbuccfx1mwxDgdaf7OV+iE7cINTw0TOF8tNUMqdo3gjRZEUuT5UPOydKUddvQfaLK8wXBoNowdwFP0z06BBZcfR//eSJW46/Q8bCoVSdUCdPyLHzhQDzLSBKU7yUqFW6o92Evr5gkOOXisRT1t963MVBFH5596MX/aTTE0e85uy5G8YeeL4s9d4S12vnqivE+dqHC4L2qycAsyjbvy1AzCboQ7sJYabik9gvi5zLFx9282No33ORHyNT30q+UEeVxVwXiGL2WMxxTF5AFLUHbZwlWfsloZWvqN28BSMbdo6mV/QZd8Ksvlk9wEcerevM/gvW3zr67A23HP/n8hMUXX0tGeeasfHxl4Rh5Qj5APNb+Xbip7I6tTtef8ex+0yMB9eIy/WKvHO9NqPdhLSN8crK7sX+kcrI+YsOf/n6OH55savJrLIdH/+tfEazFf1QLjjGdm5/g2TdPLPHjfQ84zgrEGZmB5IJIYmnChUXBj/c65gVf5onuqT17gGd0twE2CxFplUNKeOK6FhkjJd0g1bD05vETxorzZfv402fWDFJY2I26dqbHCQ54fCGCYDM0iR7hcV1bipDc8dLaL1Mti/U/usXHXrDbybrfZI6vAnRJtsB2y+fwquy2HibePNtG24d3fL4L4+7RmL233Ll8fGoHj4ezqmsD+tRRZ4P2LMSxHvEUbSXROa5T4zf92IJ66LQWx/qlQpLEDUVphQdf5lM5dsw/SouUTXRLM38OWvK+c/E75e6GTmLD9p7485b78NwaNFTYfl/knwYkIXzcT+X24o/qFbCm+TK2T2VkeqmJavqWzbfvmDxRLxzz5Ew3GuiHu1ViStHSq6cNj4+fpxMGRV9ZicIbhdzul5wBGPBp6X9ARlXtDjsv/31qHbD+luu0P6Y64AoufkvdAZHhwr4wJxT2snLadJECoMr7hLiIagYygWHBO88m8BttUv3ICmAG8REYjggima50lq6T3kgQ9junT9/0TmdfprSDspdhx6owcMteEl3MZNU109lnGBd6NJzXmMONAttHDL21XwMapOPvQ4617CR24h+tii/kK21yyk5snzUzFGc9klPDfrTFta7bj1AyQaz7Wk3IXrkWPCEeGiDRf/hVXSFrpy7/+eeGLvvL6TRvpQIATqmEh2Kt1+uFuA9HfKVQtnsIlQQT9TUy7iihBnA9JM9EHfkDkRfi+Cg4i8K/OceR998HTSZWrEraYw7YZfxb2v/1HRs3zoML62v/+Wxj0gUnp7PXWj+46V3x4sTjueFyXCiHuy8BV6056InXCZFyCTNn3wtu6HKFc8ljbfsbE7Il1Gs/YPO/+z8lTf/0WL4Y+guwWy87cjDZZI71oLFjAD0cVfrRiUmRZuUhSsdqcbk753lstjYKpehzuz1JT2+yBLP9wASMfcPscJfi5jxRA1oOAev5QDaIhf4h0OlGVnrQLN8Ma5GfkdDnmiueBCSHK2VftqXp0G2f62HyFZ/sBt/gNoX1FCFobSz2WB39ofb51QX9vx7CeFhl45L539nurTWD7qjACrubFWyh7O+CRZmvyplO1URO6ejg6avo8Hn6ncPgs/RABkXQhGokgghSZ5/+Wsc96tYzHuJv2hAuwlVWxyYzdgPqNyQ9pjB4Ff8tfBv4fa7/jX2gqvTCHt0ji42KAo+1v+M3Wa12T209ltcNF9axAdWodA6HCoNZA9nvUFtoruhW3BMTNTPT9Uz49QSmOUSo1WyGh9aO+uzUNrjl/MqYXjuymNuuSPtp8QG5gEudwGxIVSEOQkLvTShgaA0pkTalvLAA5ylW/6mDiCIQoA6HNDH2V87SN2oL8QBB4RI2ymk3YQqGnwojp9tK9Xgc8uPvFG/kmgM3e93f/aSi0XeOmvJDnDEToE6fMjsVz/4vjUjUtVpDn1N/4OP7bQNbWUDEEkD6nCBcu3pypXH/OwmbdaPnYjuNf4d298PPdvJiOPrW7LQ1/Q/3AkccBD2sy/2D0WBD6qwL/Y/dPZDIRQXkARXRMiuvsfxP1QLjjh+4Ugchee2NNbZnILJnZP1jS5UovCv9zh2td3wSgWVWL890CIhbdGIvJWpFTwy8Ah9PKknXyJP2gBvMSBUFmrZTm7Qmnz05doSksdBv23iDu1LBVq/mChA44SRhawD9Ns6gX4fppfpSnk+TXGRQWjyKFeg+kBVmQirlY+6LnoGuL0orvkT7Y9SfBuAD6H99ANUpu6AihcV/0owFo5U/pRu6gsU35rOBhWnHfA9Nj0rM/aAKITWTilsl7Vf+YvdhXPCH6uuqi/Um0w/p7MbR4XbD13ajP+evMN5QOU7m2k3oZLNF7DTt3Uq47+r+Kt+ogMgdXBQ9fF0VD+AD8XxT3X8D9WC47c3rz9dkmEvBiML5ROFBgnQx8nnOxC4PtrhIHDZvrr3c371YfNguR+IBzIJi3GpsRGguMZSiahooGk94oZq7BTxoKD+IPFxqcovvgzB9dBBv4qN3XATzaCdFUI9ytjXQMNBpl77QE5KlfWX2tyz/WHwhX69Q2aPY395hbwaVd6SaIW2DrX9omoyBzjcqd8M/CALrocO+lVs2Mp++XHHD+1+5C/wMFwfS5oL0MXXzUsYJo726+e8j/dRqa5FqV9C9wOCg8h/0bCf8e/aYDSAnb6tFOLTBNeYOmj5lsZcBFi9g4XE3zq1HBLc78OvStR3yJTHv5MzVA+NysLzPHw5jIbDSOAc9E7nlkCWI9rCIBsKTcnhL/bee+lbWzYuKwrygMUkjSIjalHGRIH7tpwsVQk0YSFOCLqHN0qTOqwsMch1tQlekU+aa8o2cpj0zXvHyB3Vx3VCPKlvo2+W35Rt7DGlQb0p2h+G6+fOm/cB2NKvMm9R5T07tkXyeuZ4j6w97fTN8qe2Mmj0BWAf7IcM2UwaEMEKjr8sNn658tlL+vqbMPqlWOiNQlf5eB5N6hu9CcLk9kPkIIpo8UNR+Q1pdGhAo8bt8inxBZtDeQ9vlCZ1bexHU7aBKM1XNwZx3EtB7KjUrpD/9Fniq4Z46KUA9avV0+N2NDRXOLbcfOzuMtm/EoFDEmLDxEGoOAILmvsjDqgbUgm4phTTCu4Jfjt3bvWs8Ok3Ja9wTpxVIgV5AHFA/CDeoIaJuIuhRQknXYsauIGzEGd9FoKPPMA1Xxz0cdTlF1VQqkxf4yENR8St3vpqrW+Wv2j7ZQC/v98PPy991i+eEMPf1eiL4bQfOg42/uEOeRXc+f3+dhsmYtpB6NsGWt7m8wD3c97HUTfIUqniq8Izdfx356nGk2jjfFH0+Iemfr74Mffx1hY16mt8pOGIOKDNe4Tsl7CxrfHTfqsbom+pbI+2nyvpqb89kYwsGKvWmPKNBuEIdBTWZyCsDYNx+bnu16w8avUjxlvuB+EBiaX+IX7AkphaTIQoNMvGFEIxnya4tnVQj4gD5mxIF9ABfZy81gXyxIo/KNmOMK895RBCCnAW1Rc091ek/dLLFbsfc8uX2Hc/4V7H3PJNuTL0YfqC9mYh+pwu+7O64NiPmY+Tt0lfFzvW+218PKkPg7euOPb/t3etMXZVVfieM3f6VCxtZ4YpD1tUhLRAOzNtobwMglhNeBiRYtSUABHjDxOj+E78YQw+0R8S+SMxEiQSFDUgjxgaUAq10047FJGBQqEPoEUstPIovcfvW2uvc/Y9c2/n0XvPnal7z9zzrbPPfq1vrb3Pvvuex4YmvDPFWc98iYiP+JND2TOZWOPjt9mXLa2rpekw5/QNj8IYDzXT/00nH32dfdnSHNr+emvyWMnBKzjSLGIv7ImtsJ1c+o/cf4xHw2F8Uudh+mf8VE/OJGnLNquphJjKdSS2ROO0TSabspKaaSWXpE7VZTkSktJ1XcseH9PT5zRj2DaEAbEpSiLyo6NAOgERmyLObCod1NIxLYMhRS6ZOvRlicRmWIf34jSN8wvzGinOtQvysPYwv+nAAlz9gpAlu0NtWVVzmdlVCzS9DGvV58WlelvBUr3uxHE8VJ5V/qwW3pxtx5JLvg3V/jwR9afti7Y/6vt+R8/G25vBNk9avu+J7c3uhp79x69/c5806nMDE/2wWf4/fv0P3f/99o9axuPiaSIzk6Hkb1L/b5b+vg9avzcUfWDUFNkHuePQ9DaUdKa/7EyQFY6X1y1cjA63mA2lckSRcVIwtGmFIVKqsg79vCxDyomin3Uve+IWp2uAohjgmMZ+7fftenXTcAxENXaGUgY2KapdOYiZjekPIhOZUP4tT67MUZTPprD8usGOEV07DNkOqd8hZQmGtQodh/542uTrcVy5bPb7+vfWKrJRcXzFdTTzXbhrTJ7AqMVSNwbRUbkvWn+/PrE62mJ/TbN/FP0Bk42GPnNDiXTbovy/uPlGae7ijfegM29J+0GVwp7eFIvSn+5r4wDltK9ix3yb7RlLcJPFovp/S/zf+DCOhLex9/8JscLxTkmfvSEGg2JyAskpRJJlbHYoPgNDG9rTRw0x63qga+mirxhPAVvFgDtByahjndohbKmdVNG3/2hb6+bY8AP9g/eIRJQP/YgyUWTuMq5OECfDMaIvu+Q8sTEQVc6QsRoMNWUWh/hce8aqP75M7Eva4pVzFm/a4iprKnSc/PfXZ8Qx3jURbVJtWqt/Xtli7B/d1TntA6vAgW/YfFMOax9PyIRrOG4P5Z+5Wsalf66MZu2SL7z78FtaPnUTJTOEnmP1/3xbx6X/GPjN11d73+lWQP/P199w/f0xz5ddxTrm0ZLZuKdxxgETUrbgyxNghSNZ39sOr+O7U9BCfAwpy/KNQ8iimENVUhU31QxhhKdnTGu/go/ZtbiARTPg7CnVUq4dfJ+mTLsaUtZSDFmGykSRnb9w4Ko1YFvNmho5+G2EOeVbif62mE5SJV5zZOVZuVqCtlfb6LcdWV3Q/NY+jbQ4S5OhX4bpbUhNtVZFELMviaOPdi0ZKPTNxu/u2bh76rTp5+P80a/tbY3+yqLjwphpsv2h7x2dPbMulyexZmZruMRvfmZ3w7z9G6F/wxs+QoFzlwz8EX7z83rJ1J+y+T11bqb+I/X/eu0cfbz1de25ms/ihpcy0fT3x1CVYRHvnKztHX//b/kKx64K3gqbVHiHiljDUHecoaiwnVAc+sSkZsQxzEdeS8rli2edNnhYT11MywzCuBigfeQDu6ZYw8a+HSnLYOOQcv7DE7k5vZzU5Usn/INoX0ANXX4qkJYDQWQiBR5zKLJrI6e3MsWVtjgdqBP/DF1axlnI6zPW9GyK8UDZ+zwfJ+3nFT3ZML14J0w5af8wGvRwi/QXLoq0P17+9auO3pOubPQdKcapjxW+Ldb5vaFn+9QPDld/v86i5I6k/avoIY9ZPzFk/dTV0PQ2bIb+7OtSLpECgqHuHd42r08D+3/h/t+o8U+/4imvLZ9wJMnB1ZmJbeAm1vowpaXxZZcWjy3H8U/P6338nzwaQqsYwMvb0Iv5obkMKctg45CyJlEUmYMus/GkLoNRhpKbpmYpLAMfjhmGKnOiwDjNNxztmObDVvITfTktX9qigxLbxbJTdPX49VFX1tlQ/UulB6eX2ns7+vo3oMqWhdl9/Xs7e2afH8XxjcIDWiK6OjS9Dc3uhqQYbAvVRP6JrR2KLNxpuSxHcjhUmeojJ4vBR7l3dnHt8O3BMqo/zJflt7KIqRwlb2Px9wudvYNXF7VKGmMkLkJ/sld0iPr6D0wptX8KFL9Cm+s/pYlm//EzYz7WlP5PRydpZIzgkHJT/N8vHxVIPUD6J+tLkS3BQcYdSn+9pBaJEFo64XhpcFEX3rS3UpRAY8QBHYo7QpkUPcXS9F6cKh5/s3v50N1ULITWMpA5oHNKGI2OSu81pMx0hiIjjSE9mYcNfVk9P0tr9VFryU8BQepyqLKrH56FlEyCYKh7/lbqZAok0Q/bTFnbzjIpE3253nFmlnZoIZKXcZZedUUFKA8J38At3d/o6p39kaP65NkYftNaIvPbflfvpi+jeTiBJK/7Ovuy6ePHmd6Gprch81Trr5xrXLWs/Cj3lkfyi61QjgtSF2SiyiPYPyo939YWn9PVt+mXVkYRiAUO8QHTJdOPjVfdSY/J2fGMs9HpX4Q2w+vAZPX59nLblVDyzQlt/+FNHzkGF+CYf9EGlIm+bMcRqX5IY7o0hmI/lzezL6pvqP1H8P+ctmwmg2sucOzj34RZ4ajsf/szeNNe2YyjijkNRc38xo4RfZk2iW7rXv6vH+RzhP1WMaA2kk4EW43axr5ZRcbGkIL0AId+b6ijptbPbNoGJrM4X86OWzpWmnXOdMBALGULVla9/Hp87PpjIv7XqNR+amffphuKWNI3fUaLnX2Dd5SiqUtA0b3M02j9xeZmd8Mm2h8a8Ar0m6dNKS2eu3jTutHy0PB0oisJdR/RmbW4iAb4P0trRZizZOCBtlJ5JZzl9br1F6C/9Vm2wWTrp3XbNcKBye7/9dqvY52OgzbuGeb5Mw4N6bMqZ+S1dIUD126sRouy1phM9DuW62ymCFFkNxvEbdDru4859uqsoCBNXgb0Qs5SiejLtTUyh059InVyN0BLNs/HahdTN9YuKJWLzfiLHYLF1c10GAfwg8wjUdR2UdfSzRd09fU/cxhFNT0r29e1dHAlXhz3SVT2QmMq9G3uy7VLb4T98WVlY1spXtHVO3hd66/98nX25ebpX7vk5sR2LB1YE5XL5+KkNVS7Bl9nX66duhH2r11yq2J9nX25dnuarb+NdY0a/1o24dj52Af7MG1YpDTqyQH72OVW/3hM4zRVfptgHRKO++KUg/Gl0YI1b+aPh/1WMuBO+P7E0SaKDv3OkrXUlg+Iej2EoaaHR1iZ8A4NhlkpqSRpsUd09RrWqt+P8+W0vJzgp1E51z5r6yHqhxrv4KT3p6gturBr6eNnYTn//lw1E3q3q2fznaUp8Sm4aPc7MNlu44G9V3g3HAX/tLWG5tsfbRvCe1Gu6ew7eencvs2PTQySm6v/O6UCH8RRh9DOJQMD0fS5PfCO3zCJ9SFN3lz9pS7nh1avYZ3mjiqaZWg5GU50/ze9DamoyURfrkeCn0Zly8cx2ev/roCWvbwtOXhgNZvkB/+CG43HUo4MQJoSHLjfx/Qo0r+FC1Ium7viqR1+OUGeQAz44wealdsVp+YSnTmuympnasF9Oq6iiCo755F45xdMmaV1PoMYudpajml55kcaZWW7AiXSl11GB5zpq5/atw9OiiibZtXp02h32FLhjaxsNS8C/W1pWunWrlMHX8rlnFS7x5y+eT8a/L3khTN/8vKu164Cq3gGTrKgnv7GA+2uNlfOVVY7kQC1u9kIEWSNmZ2JTNZ0zGFpNQG3w+xfivqxonFDR98nfs+Hm5VKzXtSOVs0uqADNfXw/VP1Mp1Q0mHq37IBP0dC58I1+xD1uV3rF94SR9GNlUpyOpM0W/98+Xl/yTVzVLu48YEtr53Woh3mdv9/xj/HTkv8Lxl6/9Sdeyq8gAgOxgHbDQ4C7HjaOnUOr7PJKEOTaYI4jj5/zPKnH61t6RDbSgbMpmZfIoOeYDKbj3S8pg7OP3iME1J4jCD3h5XP4/Qz/KXHXZxE5DZS3iHS549LsQnK1uKH1+/8G77Ka6eextntMTyW/L4ZUfl+Pt8iV/2k33UvSLwpSS6/eff6Jy+CbVZhQnYJOvpRVG6YfRw/9fyjJiHjsD++mLwIL/gdVpFuP6ZncK2WOxEmGpmG2XiX9Y/sqCeNQ3/z/9avb3h6QOzu2/Jgkny356X+O1fhJ9QvJZVkmY0J1Sm9vcPQ38YCYqOCcDtC/6/n36ZrveM12+g1XcajSTD+mR4tmXDs2H3wYjRgNhtRbXhjUtF8wtBPj1nxT7uXP/NrxoUwcRkw+xqypb48Ust1ENZvPpKWrsHO7VyFZcmu5yTV5Vf7FMtDA/RbsorptyrsMkYhRT8OstVNlIDljTh+Az/v4Se96A0Utg9ZdwJ3YBDZjju1t0Xlts1JW7TZrQJYxiMa3e2keLR16Z7k2Q9Ne/nfe1biW+ylGCDPgX0WjFb58dof+WjILcCHYIs7O3suX6OrGaOtufB0qUf5NY9X/6yMan8u28w4S9ByydnlNjTkthf7TzsjqhzEzQTRJeiLxzVaf5ZX1f9L0au4ruBhfBG4v9xevmtcZKBMf8ypJdeKG01dTdcf7mF1aHuq/aU6DnvCn0MA9bJJk6atwYWQrkdrOrllbBZuXzv/bgwHHxvW+mEVUnnTkAdVxqB137wz+z5e1D3yw5oVIgIDgYFxM7B7fW837o48C9357EqSLER/PhED1wlYDSnLNKGqy2OHk8l00Ko5JrxZiuLnkHBrFMWb4iT6G27BfOToJQP/GXcjQ8aWMgB/iF75x6K+g3FyLqb0y9CYZbD8fNgYYpWDYN/isiNMwWBHkijCs1VKz+ILwBB85IlSnGzGz2ob5vQMPokTJpOFUAADZpcCqtIqdq8/pfvtt994ARZuy7xBj9nSOJEhv1xEP8Ptgk/NmPGe5WEwUc7CNjBwJDCAn2DaXhwYOj6qHDgRPz4dDZ1morPPEMQr5JK4UsEzSf6Lycd+DA/7S23xfuzviduirXNOH9gZThpHghccWgeulO3Z++oJlQMH34s5wjxMRGZiSgEfiWbgiVI8acA3nH/QV+LSPlwUvKcytbKjc9Hgy8FHDs1vEUcLn3DsWDv/eiytyvMyWDm9JG2Ere24bzP55Ro84XBvnCRnzFvx3JNFkBPqCAwEBgIDgYHAQGCgMQwUflssVkdX6zRDVzFUVmX0an/EYOrqyzyKOQie51a5Mkw2lKuwDQwEBgIDgYHAwGRioNAJxwtr5y/HTOIUWdbAfEN+OnGoP6doHFc8dNVDLwhkLPa/fvyZ2/4ymcgNbQ0MBAYCA4GBwEBgQBko9C6V6GDlKt5ByAmEBu5QdtMLd3EYf0qxIEej6NZjV2z7kcUFDAwEBgIDgYHAQGBgcjFQ2ApH8uz8aZg8XIEVjowhk4m+bCk4D4lK646dF19rUQEDA4GBwEBgIDAQGJh8DBQ24dixq3IBZhWz7A4UUmUrGUSVM+TKB6J3YZZyWbTgufDY8snnW6HFgYHAQGAgMBAYSBko7CcV3P/Me+7dQ0L4KGgGPlGPsv6kIlHpJnqrPU4u7VixfWcaFYTAQGAgMBAYCAwEBiYlA4WtcOAWk6VkyFY1KNuzfIj88FiGlWu7V2xv3Wui2cAQAgOBgcBAYCAwEBhoCAOFTTiSKOHLeqoWM/xbX30ZD2j58XFn7ZA3CTZEy1BIYCAwEBgIDAQGAgMtZaCwCQcuydjK6zfkeg0i/hgMReYKR6l073FnXfM1ORg2gYHAQGAgMBAYCAwcEQwUNuGIytFNmE0c0Ks1ONmwu1UMufiRrJs5fdqqCf6SpSPC8EGJwEBgIDAQGAgMFMlAYROO48/YPoRJxvX48DGiAF3tMMTu2plTZl44u2/r3iIJCHUFBgIDgYHAQGAgMNB8BnTBofn1pDVse3jeBaj0i5hynIe5x1t4y+Mz2P/F8WefdEcUrXknTRiEwEBgIDAQGAgMBAaOGAb+B5nwCpLPLNx7AAAAAElFTkSuQmCC"],["fxFlex","30","width","295","height","295","viewBox","0 0 295 295","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M182.629 183.635C213.842 170.774 228.719 135.046 215.857 103.833C202.996 72.6204 167.268 57.7435 136.055 70.6048C104.843 83.4659 89.966 119.195 102.827 150.407C115.688 181.62 151.417 196.496 182.629 183.635Z",1,"fill-color-0"],["fill-rule","evenodd","clip-rule","evenodd","d","M169.522 122.093C171.059 115.241 166.054 111.136 159.022 108.13L162.04 98.916L156.431 97.0797L153.493 106.051C152.019 105.569 150.502 105.104 148.995 104.643L151.953 95.613L146.348 93.7769L143.329 102.988C142.106 102.615 140.906 102.247 139.743 101.867L139.752 101.838L132.017 99.3019L130.057 105.293C130.057 105.293 134.224 106.57 134.131 106.624C136.402 107.369 136.71 108.93 136.552 110.138L133.115 120.635C133.271 120.687 133.473 120.761 133.695 120.869C133.66 120.857 133.626 120.846 133.591 120.834C133.562 120.825 133.534 120.816 133.505 120.806C133.375 120.763 133.24 120.719 133.102 120.675L128.284 135.38C127.95 136.062 127.157 137.065 125.569 136.548C125.62 136.635 121.492 135.211 121.492 135.211L118.184 141.544L125.483 143.935C126.298 144.203 127.103 144.476 127.899 144.746L127.901 144.747C128.431 144.927 128.956 145.105 129.479 145.28L126.429 154.6L132.031 156.436L135.051 147.215C136.579 147.75 138.064 148.25 139.517 148.725L136.509 157.902L142.118 159.739L145.166 150.437C154.773 152.984 162.15 152.77 165.87 144.183C168.867 137.27 166.555 132.99 161.623 129.952C165.417 129.361 168.406 127.109 169.522 122.093ZM155.149 139.449C153.059 145.84 143.068 142.413 138.496 140.845L138.496 140.845C138.085 140.704 137.718 140.578 137.404 140.476L141.449 128.129C141.831 128.254 142.299 128.395 142.829 128.555L142.829 128.555C147.571 129.985 157.289 132.916 155.149 139.449ZM144.22 122.79C148.031 124.108 156.343 126.982 158.247 121.175C160.192 115.234 152.086 112.815 148.127 111.634C147.682 111.501 147.289 111.383 146.969 111.279L143.301 122.477C143.565 122.563 143.874 122.67 144.22 122.79Z",1,"fill-color-15"],["d","M158.075 173.411C189.288 160.55 204.164 124.822 191.303 93.6088C178.442 62.3964 142.714 47.5195 111.501 60.3808C80.2885 73.2419 65.4118 108.971 78.2729 140.183C91.1342 171.396 126.863 186.272 158.075 173.411Z",1,"stroke-color-thinest"],["d","M259.352 172.363L85.4595 244.016",1,"stroke-color-thinest"],["d","M122.291 259.352L85.4593 244.016L100.795 207.184",1,"stroke-color-thinest"],["width","225.692","height","225.692","transform","translate(0 85.983) rotate(-22.3941)",1,"fill-color-30"],["fxFlex","30","width","298","height","300","viewBox","0 0 298 300","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M248.333 237.5V112.5C248.333 105.625 242.746 100 235.917 100H37.2501C30.421 100 24.8335 105.625 24.8335 112.5V237.5C24.8335 244.375 30.421 250 37.2501 250H235.917C242.746 250 248.333 244.375 248.333 237.5Z",1,"fill-color-0"],["d","M273.167 212.5V87.5C273.167 80.625 267.579 75 260.75 75H62.0832C55.254 75 49.6665 80.625 49.6665 87.5V212.5C49.6665 219.375 55.254 225 62.0832 225H260.75C267.579 225 273.167 219.375 273.167 212.5Z",1,"stroke-color"],["d","M6.20851 200H24.8335V150H6.20851C2.73185 150 0.000183105 152.75 0.000183105 156.25V193.75C0.000183105 197.25 2.73185 200 6.20851 200Z",1,"fill-color-0"],["d","M31.0415 175H49.6665V125H31.0415C27.5648 125 24.8331 127.75 24.8331 131.25V168.75C24.8331 172.25 27.5648 175 31.0415 175Z",1,"stroke-color"],["d","M161.417 187.5L142.792 150H180.042L161.417 112.5",1,"stroke-color"]],template:function(t,e){if(1&t&&(r.YNc(0,Pi,1,0,"ng-container",0),r.YNc(1,Zi,18,5,"ng-template",null,1,r.W1O),r.YNc(3,Bi,19,5,"ng-template",null,2,r.W1O),r.YNc(5,Ui,19,5,"ng-template",null,3,r.W1O),r.YNc(7,qi,17,5,"ng-template",null,4,r.W1O),r.YNc(9,zi,13,5,"ng-template",null,5,r.W1O)),2&t){const t=r.MAs(2),i=r.MAs(4),n=r.MAs(6),s=r.MAs(8),o=r.MAs(10);r.Q6J("ngTemplateOutlet",1===e.stepNumber?t:2===e.stepNumber?i:3===e.stepNumber?n:4===e.stepNumber?s:o)}},directives:[U.tP,P.xw,P.yH,P.Wh,U.mk,ue.oO,Z.n5,Z.$j],styles:["svg.small-svg[_ngcontent-%COMP%]{height:50%;min-height:50%;max-width:100%}svg.large-svg[_ngcontent-%COMP%]{height:60%;min-height:60%;max-width:100%}"],data:{animation:[Ni.l]}}),t})();function Yi(t,e){1&t&&r.GkF(0)}const Gi=function(t,e){return{"small-svg":t,"large-svg":e}};function ji(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",7),r._UZ(2,"path",8),r._UZ(3,"path",9),r._UZ(4,"path",10),r._UZ(5,"path",11),r._UZ(6,"path",12),r._UZ(7,"path",13),r._UZ(8,"path",14),r._UZ(9,"path",15),r._UZ(10,"path",16),r._UZ(11,"path",17),r.qZA(),r.kcU(),r.TgZ(12,"div",18),r.TgZ(13,"mat-card-title"),r._uU(14,"Boltz Submarine Swaps explained."),r.qZA(),r.qZA(),r.TgZ(15,"div",19),r.TgZ(16,"mat-card-subtitle",20),r._uU(17," Boltz is a privacy-first account free exchange and a Lightning service provider. By doing a Submarine Swap on Boltz, you can swap your on-chain Bitcoin for Lightning Bitcoin. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Gi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function Vi(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",21),r._UZ(2,"path",22),r._UZ(3,"path",23),r._UZ(4,"path",24),r._UZ(5,"path",25),r._UZ(6,"path",26),r._UZ(7,"path",27),r._UZ(8,"path",28),r.qZA(),r.kcU(),r.TgZ(9,"div",18),r.TgZ(10,"mat-card-title"),r._uU(11,"Step 1: Deciding to Submarine Swap"),r.qZA(),r.qZA(),r.TgZ(12,"div",19),r.TgZ(13,"mat-card-subtitle",20),r._uU(14," You have one or more Lightning channels that are running low on outbound liquidity and you want to fund it using your on-chain Bitcoin. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Gi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function Qi(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",29),r._UZ(2,"path",30),r._UZ(3,"path",31),r._UZ(4,"path",32),r._UZ(5,"path",33),r._UZ(6,"path",34),r._UZ(7,"circle",35),r._UZ(8,"rect",36),r.TgZ(9,"defs"),r.TgZ(10,"pattern",37),r._UZ(11,"use",38),r.qZA(),r._UZ(12,"image",39),r.qZA(),r.qZA(),r.kcU(),r.TgZ(13,"div",18),r.TgZ(14,"mat-card-title"),r._uU(15,"Step 2: Sending the on-chain funds"),r.qZA(),r.qZA(),r.TgZ(16,"div",19),r.TgZ(17,"mat-card-subtitle",20),r._uU(18," You send the on-chain funds to an address which can only be spent by Boltz when it pays a Lightning invoice to your node. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Gi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function Wi(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",40),r.TgZ(2,"g",41),r._UZ(3,"path",42),r._UZ(4,"path",43),r._UZ(5,"path",44),r._UZ(6,"path",45),r._UZ(7,"path",46),r.qZA(),r.TgZ(8,"defs"),r.TgZ(9,"clipPath",47),r._UZ(10,"rect",48),r.qZA(),r.qZA(),r.qZA(),r.kcU(),r.TgZ(11,"div",18),r.TgZ(12,"mat-card-title"),r._uU(13,"Step 3: Receiving the funds on Lightning"),r.qZA(),r.qZA(),r.TgZ(14,"div",19),r.TgZ(15,"mat-card-subtitle",20),r._uU(16," Boltz pays the Lightning invoice to your node and claims the on-chain funds locked in the previous step. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Gi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}function Ji(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",6),r.NdJ("swipe",function(e){return r.CHM(t),r.oxw().onSwipe(e)}),r.O4$(),r.TgZ(1,"svg",49),r._UZ(2,"path",50),r._UZ(3,"path",51),r._UZ(4,"path",52),r._UZ(5,"path",53),r._UZ(6,"path",54),r.qZA(),r.kcU(),r.TgZ(7,"div",18),r.TgZ(8,"mat-card-title"),r._uU(9,"Done!"),r.qZA(),r.qZA(),r.TgZ(10,"div",19),r.TgZ(11,"mat-card-subtitle",20),r._uU(12," You swapped your on-chain Bitcoin for Lightning Bitcoin, while also adding outbound capacity for your channels in the process - all in a non-custodial manner. "),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@sliderAnimation",t.animationDirection),r.xp6(1),r.Q6J("ngClass",r.WLB(2,Gi,t.screenSize===t.screenSizeEnum.XS,t.screenSize!==t.screenSizeEnum.XS))}}let Xi=(()=>{class t{constructor(t){this.commonService=t,this.animationDirection="forward",this.stepNumber=1,this.stepNumberChange=new r.vpe,this.screenSize="",this.screenSizeEnum=G.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}onSwipe(t){2===t.direction&&this.stepNumber<5?(this.stepNumber++,this.animationDirection="forward",this.stepNumberChange.emit(this.stepNumber)):4===t.direction&&this.stepNumber>1&&(this.stepNumber--,this.animationDirection="backward",this.stepNumberChange.emit(this.stepNumber))}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(le.v))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-boltz-swapin-info-graphics"]],inputs:{animationDirection:"animationDirection",stepNumber:"stepNumber"},outputs:{stepNumberChange:"stepNumberChange"},decls:11,vars:1,consts:[[4,"ngTemplateOutlet"],["swapStepBlock1",""],["swapStepBlock2",""],["swapStepBlock3",""],["swapStepBlock4",""],["swapStepBlock5",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between center",3,"swipe"],["fxFlex","30","width","323","height","323","viewBox","0 0 323 323","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M53.8333 134.583H80.75L94.2083 161.5L117.792 134.961C121.616 130.658 125.869 126.602 131.194 124.413C136.45 122.252 142.103 121.125 147.842 121.125H242.25C286.847 121.125 323 157.278 323 201.875C323 246.472 286.847 282.625 242.25 282.625H147.842C142.103 282.625 136.45 281.497 131.194 279.337C125.869 277.149 121.616 273.092 117.792 268.79L94.2083 242.25L80.75 269.167H53.8333L67.2917 228.792L53.8333 201.875L67.2917 174.958L53.8333 134.583Z",1,"fill-color-0"],["d","M26.9167 107.667H53.8333L67.2917 134.583L90.8755 108.044C94.6993 103.741 98.9527 99.6849 104.277 97.4963C109.534 95.3357 115.187 94.2083 120.925 94.2083H215.333C259.93 94.2083 296.083 130.361 296.083 174.958C296.083 219.555 259.93 255.708 215.333 255.708H120.925C115.187 255.708 109.534 254.581 104.277 252.42C98.9527 250.232 94.6993 246.176 90.8755 241.873L67.2917 215.333L53.8333 242.25H26.9167L40.375 201.875L26.9167 174.958L40.375 148.042L26.9167 107.667Z",1,"stroke-color-thick"],["d","M134.583 215.333C142.016 215.333 148.042 209.308 148.042 201.875C148.042 194.442 142.016 188.417 134.583 188.417C127.151 188.417 121.125 194.442 121.125 201.875C121.125 209.308 127.151 215.333 134.583 215.333Z",1,"fill-color-15"],["d","M107.667 188.417C115.1 188.417 121.125 182.391 121.125 174.958C121.125 167.526 115.1 161.5 107.667 161.5C100.234 161.5 94.2083 167.526 94.2083 174.958C94.2083 182.391 100.234 188.417 107.667 188.417Z",1,"stroke-color-thick"],["d","M201.875 215.333C209.308 215.333 215.333 209.308 215.333 201.875C215.333 194.442 209.308 188.417 201.875 188.417C194.442 188.417 188.417 194.442 188.417 201.875C188.417 209.308 194.442 215.333 201.875 215.333Z",1,"fill-color-15"],["d","M174.958 188.417C182.391 188.417 188.417 182.391 188.417 174.958C188.417 167.526 182.391 161.5 174.958 161.5C167.526 161.5 161.5 167.526 161.5 174.958C161.5 182.391 167.526 188.417 174.958 188.417Z",1,"stroke-color-thick"],["d","M269.167 215.333C276.599 215.333 282.625 209.308 282.625 201.875C282.625 194.442 276.599 188.417 269.167 188.417C261.734 188.417 255.708 194.442 255.708 201.875C255.708 209.308 261.734 215.333 269.167 215.333Z",1,"fill-color-15"],["d","M242.25 188.417C249.683 188.417 255.708 182.391 255.708 174.958C255.708 167.526 249.683 161.5 242.25 161.5C234.817 161.5 228.792 167.526 228.792 174.958C228.792 182.391 234.817 188.417 242.25 188.417Z",1,"stroke-color-thick"],["d","M189.321 97C186.935 97 185 98.9345 185 101.321V112.679C185 115.065 186.935 117 189.321 117H237.679C240.065 117 242 115.065 242 112.679V101.321C242 98.9345 240.065 97 237.679 97H189.321Z",1,"fill-color-15"],["d","M161.5 67.2917V94.2083H215.333V67.2917H161.5Z",1,"stroke-color-thick"],["fxFlex","20","fxLayoutAlign","center end"],["fxFlex","40"],[1,"font-size-120"],["fxFlex","30","width","347","height","169","viewBox","0 0 347 169","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M89 157.417V41.5833C89 35.2125 92.75 30 97.3333 30H230.667C235.25 30 239 35.2125 239 41.5833V157.417C239 163.787 235.25 169 230.667 169H97.3333C92.75 169 89 163.787 89 157.417Z",1,"fill-color-0"],["d","M6.25 134.625V18.375C6.25 11.9812 11.4812 6.75 17.875 6.75H203.875C210.269 6.75 215.5 11.9812 215.5 18.375V134.625C215.5 141.019 210.269 146.25 203.875 146.25H17.875C11.4812 146.25 6.25 141.019 6.25 134.625Z",1,"stroke-color-thin"],["d","M256.188 123H238.75V76.5H256.188C259.442 76.5 262 79.0575 262 82.3125V117.188C262 120.443 259.442 123 256.188 123Z",1,"fill-color-15"],["d","M232.938 99.75H215.5V53.25H232.938C236.193 53.25 238.75 55.8075 238.75 59.0625V93.9375C238.75 97.1925 236.193 99.75 232.938 99.75Z",1,"stroke-color-thin"],["d","M146 53V87.875",1,"stroke-color-thin"],["d","M146 122.634V122.749",1,"stroke-color-thin"],["d","M344.698 95.3022C346.74 97.3445 346.74 100.656 344.698 102.698L311.418 135.978C309.376 138.02 306.065 138.02 304.022 135.978C301.98 133.935 301.98 130.624 304.022 128.582L333.604 99L304.022 69.418C301.98 67.3758 301.98 64.0647 304.022 62.0225C306.065 59.9803 309.376 59.9803 311.418 62.0225L344.698 95.3022ZM277 93.7706L341 93.7706V104.229L277 104.229V93.7706Z",1,"fill-color-15"],["fxFlex","30","width","454","height","243","viewBox","0 0 454 243","fill","none","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["d","M141.75 172.125C178.098 172.125 207.562 142.66 207.562 106.312C207.562 69.9653 178.098 40.5 141.75 40.5C105.403 40.5 75.9375 69.9653 75.9375 106.312C75.9375 142.66 105.403 172.125 141.75 172.125Z",1,"fill-color-0"],["d","M121.5 151.875C157.848 151.875 187.312 122.41 187.312 86.0625C187.312 49.7153 157.848 20.25 121.5 20.25C85.1528 20.25 55.6875 49.7153 55.6875 86.0625C55.6875 122.41 85.1528 151.875 121.5 151.875Z",1,"stroke-color-thiner"],["d","M20.25 192.375H222.75",1,"stroke-color-thiner"],["d","M192.375 222.75L222.75 192.375L192.375 162",1,"stroke-color-thiner"],["fill-rule","evenodd","clip-rule","evenodd","d","M161.033 82.5635C162.307 74.0523 155.826 69.4769 146.965 66.4247L149.84 54.8952L142.822 53.1462L140.023 64.3718C138.178 63.9121 136.283 63.4783 134.4 63.0486L137.219 51.749L130.205 50L127.328 61.5255C125.801 61.1777 124.302 60.8338 122.847 60.4721L122.855 60.4361L113.177 58.0194L111.31 65.5152C111.31 65.5152 116.517 66.7085 116.407 66.7825C119.249 67.4921 119.763 69.373 119.677 70.8641L116.403 83.9987C116.599 84.0487 116.852 84.1206 117.132 84.2326C117.096 84.2236 117.06 84.2146 117.023 84.2054C116.981 84.1948 116.938 84.184 116.894 84.1731C116.732 84.1323 116.563 84.09 116.391 84.0487L111.801 102.448C111.453 103.312 110.572 104.607 108.585 104.115C108.655 104.217 103.484 102.842 103.484 102.842L100 110.875L109.133 113.152C110.152 113.408 111.16 113.67 112.156 113.93L112.158 113.931L112.159 113.931C112.823 114.104 113.481 114.276 114.136 114.443L111.232 126.105L118.242 127.854L121.118 116.316C123.033 116.836 124.892 117.316 126.711 117.768L123.844 129.251L130.862 131L133.767 119.361C145.734 121.625 154.733 120.712 158.521 109.888C161.573 101.173 158.369 96.1458 152.072 92.8677C156.658 91.8103 160.112 88.794 161.033 82.5635ZM144.998 105.049C143.008 113.044 130.493 109.739 124.766 108.226L124.766 108.226C124.251 108.09 123.791 107.969 123.398 107.871L127.252 92.4219C127.73 92.5412 128.314 92.6723 128.976 92.8208L128.976 92.8208C134.899 94.1498 147.037 96.8734 144.998 105.049ZM130.167 85.6513C134.942 86.9255 145.356 89.7047 147.17 82.4376C149.022 75.0044 138.901 72.7637 133.957 71.6694C133.401 71.5463 132.911 71.4377 132.51 71.3379L129.016 85.3499C129.346 85.4322 129.733 85.5356 130.167 85.6513Z",1,"fill-color-15"],["cx","371.815","cy","95.815","r","81.815",1,"fill-color-boltz-bk"],["x","313.615","y","82.836","width","110.745","height","30.1472","fill","url(#pattern0)"],["id","pattern0","patternContentUnits","objectBoundingBox","width","1","height","1"],[0,"xlink","href","#image0","transform","scale(0.00185185 0.00680272)"],["id","image0","width","540","height","147",0,"xlink","href","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhwAAACTCAYAAADFh8BYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACHKADAAQAAAABAAAAkwAAAABS37hiAABAAElEQVR4Aex9CaAkVXV2VfebfWWG1QWQRYddNgmCO6CiIGrAKC6gUWOIUROz/CYm+OdP/P9f82viEmNUcCFRUVFQlMUIgpIoCgwO2ww7IjLMMMub5b3XXfWf75z7Vd2urn69vK5+/d7Ufa/qnDr33HPPdm/drqquDoNdvMTxhSPBE5vODuL6BUEcHiDumBcE8Y+DYORT4V4fu3YXd09pfumB0gOlB0oPlB7oiwfCvkiZoULiDe9eGtSCH8RxfCJMCOUvlj/AIAyjoBL/abjHJz4+Q80r1S49UHqg9EDpgdIDQ+OBXXbBEW/8i2XB+ParZYHxHDohlrAAB0QJw2AiCOccGu75sXVGKfelB0oPlB4oPVB6oPRALx6o9NJopreJ469Xg4ltX8NiA8sLLDD8xQYWHbrwiOM5QVC7YKbbW+pfeqD0QOmB0gOlB6bbAyPTrcC09P/bH39EbqO8NF1mRKoGbqbYAgRQCkAU47mOspQeKD1QeqD0QOmB0gNT8MAud4UjfvyCt8Rx9D5dbMg9kwT6OK95xHrtY/EU/Fs2LT1QeqD0QOmB0gOlB8QDu9SCI37sghPievyvSeR1QSFHgD7uGPRmSxj8POEvkdIDpQdKD5QeKD1QeqAnD+wyt1TiJ9731Hhi52WytJinFzDy3OUueOitFNTjAkcU3ZDHWtJKD5QeKD3QLw/Ej55/TL0e7tcveamcmqCY5gGDoFqdf0P4lM8+oQflrvTAgD2wSyw45F0b84PHHr9MntvYJ5RbJ/aYqHgat1FwZUNvp7gHRYWEdQdKWAk3BXvt+UM7KvelB0oPlB4oxgMT9VjeAxS9FXMTv56vPeFDDz8IAW2cspLpixdos/XWGIsNm9XiaOeL5eBHspWl9MDAPbBLLDii3zz2OfHs8fCuLDpSJxN3kDUpjP+9Gl64M21QYqUHSg+UHijAA3Gkc5N+IBIcEAVzkbfeUJq/c2z8zJSzAJEljAgJQ85qfusSLz0wWA/M+gVH/Ngf/GW9Hp8Lt+av/jmkwUHcBmclnnMRqGUpPVB6oPRAoR6QVYVe2ZDVgS06bA5Cn/xcZP1z+eEWJBl+tk0WLNl6d6WjUFtK4aUHWnhgVi844t+883T5sPD3/BQAH/i4fFvFDW77WqwNVqMJfke4zydvbuG3klx6oPRA6YH+eUDWF7z6Sgjh7RYQ4PH5iRNm24O/LKUHpssDs/ZbKvGj71glnxX+I4qj1EZ+VAD0ced9DlLAOIi+MF1BKfstPVB6YNfzgLtmwactxAG4HYIrHQZ9HDRsfhvDcaUkLfhQhQJIPK0tsdIDg/VAejIebL+F9hY/+d7lcRxeHkX1pRh8HGxYRigO6AYrIQcpoFwFqVeqI5cUqmQpvPRA6YHSA4kHbE7CIbC0ELcFhtFJw9xmuH5I8hYnkGKbzoCC68yWii2x0gPT4IFZd0sFry2v/+bar8lgOxj+bBi8GIMcf6jDg1T45wNVimuj74d7fvoxwcrSgwfih9940EQU/lleU/mcJS9/CQNAFOKARRR8vsOq2j7npThX2j3rE8by6H+4Qz447qxUgh0y4T8hv/b368pI8Os54fyHy68eFhHNXVAmhok3ZyV4h8MFCxF7ds3GmwnbBf1YmjwUHph1C47oNz/8R3l3xmnwbu5YFWIyVjkGCW1kBtVK9aKhiM4MVaIWB/vIQu8deerb3MlLwRKjzHM0CEXD/CoxsUkziVqDWNYBorAtubP3sPP5PX2kYSiyYiegiZ/6JD3JzTcwY2IP6kFcC4PxeFsw/uCbHpeF7K2ShLdVK+F/VaPFPwr3+5cnG5QvD0oP0AO6IraPR0i9dErKyX+Xm2iKFv7XaN1nKMlhE4z819wELEvpgWn2wKxacNQeeft5UVR7j/68vDhWx5gMPH+sNQw7DEoQ3ODEya8ShhuCffb57jTHZeZ37xYAGRc32WXzoUyaLjCMD6Gd8DFnWpAYLtarQFfXJFwI2t7BpN7jt/7THMntT/iT/og7GWqf4C6FbLGCjuJoTyGeJvTT5FtSQT3cUh974I03i6Dvz60El4RP/8q6RJ8SKT2AS26SLMwzwtx8FFbWq+NcLuY5MTf/8xhLWumBAXhg1iw44kfeeWI9qH/GX+0nZwF3NsAgBcrBqrjsXLW6Wz5oXCLv3hgfgO/LLsQDmBAREYNwSWOU9EhY0phlPtGhrfxxkWnS/JhaLSnMD/Ij+CobDbUIopc3SGjUh32lSwxKZvtGflLFzKpwniD9nTBWDy4ce+Dcm8KwctGcfatfDsOLy3e90FG7KIwj3NxDzjXmjx4JGRAlm3/ZfPYl+C2yWWp15b70wGA9wFvZg+21z73FG37/aVFY+5YMxnkNA4srf0DZ9KTmoL/yx2DmgB4JRi7us3q7pDhMjPiz5YBB4IgDIXAthDggDigb/ggVBwtorUqmvbKRJgdsC6h/rg/kAxc9hGgLHkIfV6LsmDfMIfAABzQ8hbRbfRLHJ8pDzZ8de3Di/rEHz/3zeP1bl1BmCXdhDzBXAV1uEiKTUAhzvZRpbw388YK3jpal9MD0eGDGLzji+H0Lajvib0dRvLcORR1wGGCy6XV6B5Nr9jxFpAPXTgloE94ePvUzt0xPKGZnrzx5Jyd0cb/S3BlaoyE7d6gIaQ1n8xbuwW0wFP32keISTQc1B6xW9z3tMhO46iY06qtZg/7dhj6As7S3P95beP7PxLaxdeMPveE8wbULti/hruEB5hMSSxMgIYj9Ssj3Q+H5n99tSS090JMHZvyCo/7o5s/LGeZYWN80ucuJR2k4AelJCEx2gsrjr5Tv3oBbBlqyMcOxv8mBi6Gcxj2cPFCWMlRxf2HpP6AhbdG+adOn7IQO6OPk9WUIrn05SB182KSPKtV6R93lfTF7RvX4op0PnnvD2P2vX9W6RVkzGz0gjx5rbvm5pLnh5Txy16cxdwjVL8hXFEBsyGNC4OUFDvNPuZ8WD8zoZzgmHnnrB+Iofr0MIy0YajIkGz4QuOGn9awDRPH55WnuWmVk7r9rRbnrgwfMx00+F7LSGDT0hInQFcaLEEHSJ+4dgXRChFLnWIqgLELI9XF21ClkW8K28hJFtIeu7Y/jk8Tmn8szHu+ct/8lZT52GqdZwse8Jpz2/J9mv8oPb86dePjeI+WL7cfJkuy4MIqPkxl+N3m4/6Nz97vkE9OsXtl9lx6YsQuO2iPnv1Im878zeznJY5gCt+GKlT+/Fgk+4vpVMRCkJAM7Dr4b7v2Zx41a7qfqAX7q0ofaEAfGROLDB93QB/FW9RpOMDLEwLPFq2snrzFDbC2iNCdD20+ib7brqcrL01ceWl0s32u5ZOcDb3juvP2e+cdheGF6WS6rQHk8qzxgC1R9ysfsYm4T5lnr1eXlE2nWNJnx8iRNKw3vUBp/5LLDwnrluCiMj5c55LixB+46UsybS8XMVHgpWEZaCWeOB2bkgiP+zfmH1iaiS+TUJbeEkIJuEOklcRxaWloYUtzud+KyOOfv9HQRVoOLjb/c98MDnNZs0YcTu8XBru5iIWi9NF0BEDJpnejB6HtRds1SiuVIvjTqSZjVF6mlujsGAPZJiWyLY+KEWXld2R9HF4w/ePfKOH7Hm8PwsxPsr4Sz0wPMe8JOrGQuptlOjBBSfLwTqcXzyJWLyvgDdz8zrITHy92k4+phdNzYg986WlRdEMn7bDCFcwwRFq9V2UPRHphxC45407t2m9i6/TvimKXpQLIB5c5p3hV0d889Sd2sO62dnATWV58y58psbXncuwe4wMDKwk7Y3rSRg5JkJ2jGLad/O2PLbORaSNBj0oSd32jlo5f8dAeIgogDs8gDEcxrn70KppO/1AOiaI6JAOZa0tbTJ6GhAdqyDxyjONV9lKSs/XL8e2MPbFkon/5eE4bn1LV9uZuVHtC8lFxhDuYayVz18q2b/J+uRzh2PvSWA8OgJrdEouPltTTHyWLjGBlTS+SWuJrJz4jZ/G/ygbPfv0rdxFMShtYDM2rBgUtuEw999+syIg+CR/VkILM3TwbZkws4rPBkYZ+s9QQgFRzYMtC/Un6CdK7qC5BpLT2DGu7O0I0RyelM2ml8kvYIlGyuIdGkWhClJYRG/uzr67M5ArHaXmBPhSsPQhUmUhN9HD4F+yW/zxy7/5v/LPpd0JOOZaPh94DkB/OeUJXOJChzNUkvQZSWEKSVEszkbP4PYsKXH85cOD6++WVRGB4X1oPj5LcFjotrO3eDKSy8xszjBIrundif8JfIjPLAIPKvbw6pP/Ldj8kq4ZTk7KODUXbM5MwtFczx/EBAJTSZeeDgSDjn4gypPJyqB5KYiCDgLSbEpm7YjhCNedkCopSOyZktudx0BAY8+QTo+nbV+DYAlDEIGbgCYTQcEfdvu7EN6pPJvJU91IsQfMBb8UOmX9iO0NkvVv7hzvted9f8A75WPijn+2u24Yw7YZ/zvxYWf41jorbtMHmP2TeR+Dp00+GVjoXEvkwASSdsYX8QcUBl2peHQ+2BGfO12PGH3vzWehS/GycCLBq4cCCEl4m3quc5CNDOSxGucvwyfPrnVg91lGagclgG4E+CkkDgWgjlQHkcNNzxoy02DZqDPs56E6h7Q70+0I+e8B3kHEWYtmqJNenXZI/IVnvQb6q7YVanMsCjfGADr5Um+Z4MyGu0P/jo2MPnHsG2JZw9HojwtVjEe9L4azKnOaH88EGaT0luMd/y8r9wt9WcFaKX6NG//Pftb3mNpHDryg5698CMWHBM/Pr858oPav0LzGw8V3Cg2UA1N5CGcWk4IDYsRAi5OJGnky7q3X1lyzwP4DMU4uSmhwRaNGxatUlS4qECDOby64QlTG4C1biB5jY0T2Kpshp3eGU0ir46Wl8f7XDQrCaBoJh2BrE3nVL90MR01saurcmCPN8GH0ddXn8mK5Xvy1B+z36xc259fOJieeBuRl2ZNE+V+8k8gIk4N1+8+GMMTDX/J9Ohn3WwJdceN8I4YrrJf9/+crnRz2gNTtbQLzjiX5//9Hhi4luRTLZ6QpBBx2RFAioOqDgOdZpWD/JEBJi3SbKPzwmD/1Dmctc3D/hnQ5tQbPLRCUhiQagxwQSE+Lg/rRMc0MeTernKARzP3yTP4IDmYgwjgLOAB4X8yBejudzR2pRfDyfZUTb7Ux2dTdaT6U0RPs3nZXu1qyv7g2N2PHjHeyi/hLPDAziBal57UPMF+epozHvC3vJ/sP7qf/7b+B/6E9dg3TxjehvquMUPv2/BRG3i23I62CvXo9lslsGpoxNQN7TyTybErV72V4RP+9KGXNklsWcP1OQSR3JCdQsBHkMo8NaFdRYjC5/gyaHheqJ2sQWeFuLWwPoSDqeHTt6CA/o46yFK21hzE0uROMrknPIKje3bQYjQNkByCztzCuih7JJDQerBX8aPn704t3lJnOEe0ICLDUnADU8OBdF/GwEwtpv8B3/hRb7A3WocoO8p57/YX17hKDyKhXQw1AuOiejxi+TKxjE6wjCs9ESVnjyyyctEbpXs/gnG4RcV4tVSqJ2Yxcl6gcFB4NkNk6fyCNSJFDHGv1sgZGOMuKEAGm6LhzRHUIscgQyTTYh+iLNeuYWPRXWRA+qJZ4asHZ4dElzqCPP6N6XQMYSYHELK9GFv9se7j28P/5g6l3CWeEBzFjvkGOc7w2mh5VySXkLuLv8pp3BYaP4H8sWXssxEDwxt3MYeOvev5Cvar8OAkvGnG3IYuMvlZOK3B0ndvXr9xoGFonlwWltX+9i8/Q66yvBy33cPuDO6LgLd5MlJ1IcaX/C6KPN2R6tbICpPeCkDehuNFkAWisls5udEnvZJXsBm/kb57AvQx61PdOv6BySPg2zjQ79P4J3aX69H7ymf5Ui8PgsQu6nSafyZQzCceWhOcPnXMv8H5KqC8x8P2ZZl5nlgKBcctYfeeKY8JCqvLc+u3u0k0fFg46ATmP2Th0W/LK+MLv47YjMvJ6ZVY06erWM8repJ540TumlD2tR168L+PcfuX3P61HssJQyTB7qI/zCp3TdddnX7++bIIRU0dAuOsQffclg9ir4it1L0AgUWCmkhDujjKUcDhlU2ilttN8Bg5ItWWe6L8ECrBUO7CaW5nlcSGPMshPbMBYTa8LT/ydsbv/H4uMnM9sV+CJs919x/qpNq2qRfu/rW+ssYOa9Zg5Iykz3QnD+t4285CmvTfGzffjDegR6+LuzVp/l463rKyY5FtijhTPLAUC044offtiKOJy6XRFyCMYRbJYSKi2cJ4WQ/YRVnkmNSx4YlC6F3f0W+3/Czeft9cQ1klKUID9S82152lQrxwWbPQxgELgFSGqCP8zkHcBgfsObSlAPCQlozd/cUpA8KoI8bVWsc6vTXI7PZ0s/wIuwXv7w8jt89L9WlxGa2B9KxMCz536s/kftF53+vupXtps8D/jcYp08L6Rn3o8cevPtSQQ7gkxZ6PpI6QijYiGOSt5dVo86ODOJYCR60AYAHjsKLQS5LgR5wgdJXoQjuXomiHfoxtEWIfa21F200+ljIMDM0yCKJnaAOs7dbLWRzBHXUAf0TB0RpV69M3i7LX6T9ouP8nQ/85kTp/jpPhRKdgR6I8JsiLue6Ub/b/A+C4u8i41cGMeRQisp/ueVuHZT7GeWBoVlwjD14z8fl5Uwv1kz1HvxMVw2WxHZCMB8Tb3VyyEYCfJUwHJtTCb6arSuP++0BmxCw5xpAe+A84aDWSVzc/NS0aGRb1ifChCAn97rE9F91cvMnoITZdQ6pjsYqQsyIirsVEfGkXtpCvkxwc+VHslbIBL+b4PuKxAPzPdZoII4gi9QEcQSt69F+7T+WMVMuONQVM3mHS81IiWy+MHcAtWQJyB1LIq3GMPAOHZ6OLydlAMASPGtP3/J/qK7ND8Cds6SLoVhw7Hjg9b8fx/ULbOZ3IwYObsrWyb0uF+2VgbCpvYxEuUnz7XC/f39yckll7VQ94J//fbw5qE0zqHRNmnFDF4ushxhhYuGB35qWHzSL7z977x1x/WR51Oj8MIjk1oZO+8mHVN9mH++z/dJf+Bz4pyyzxQONkx7znjAZCAlB7PZwveIhBF7xw1xIGjxEetHe8nPex/uV/2H5WypFh7AQ+dO+4Jh48PUny0Oin9Ixg8zEvJ1kKHGcgGSxoO9BkOndXQEBVR6c09OTMigGScZvNG8P3rBysUcp0cI84GZBhsMdWojkwIWIi0NCqOPjWfU4eQIOavLM6oDj8BmXPibgG9jG1r3u8CisfVqutjwvO8HryQC2FmC/SIUfn6mw3M1oD/hf8+w0/2FwNt/YlhB5x1+MHZSD5khHE0x45H0B+T8oW8p++uuBab0wFT/65n0narVvykQ9N1lkJIsNGMpZGpALC4NcUhAqt2uLWyfYdDg6qLLC8NF5+7/6GvCWpWAPmPvTyQaBYrAI81RoDLmETQgqCxDTaAqTSTVPzgBp8w762q/mH3AEbm18QtWznekNW6F/QfZLnu8Xx2fLa//LMis8gFxBAdRNdglszn+d64RBoRsrwJP2efmnHRS3m5DlxqT992H8F6d9KblID0zbgiN+9B0Lx8Z2fkeM25MG6kCRAw6eLAQfeXycfPqWfRlsgNhQCPUgir4UhufUFS93xXqAJ1hMfjrpYRK0iZGQcfMheDXGbA8tgQ95wTtdFh70rT+W50q+1qB/8fZXxu6L9hty95TqtfMAvpDncoUwyftJ8h8PKaMAYsOShBC4jjUHgQ+scPwWn/8DM6nsaOoemLZbKmM7N10st0OebXdQ0oGgg83ZZXUYTEawwSRjCAPIFR8njRBfodXB527ByAOjF7OuhAV7gJMbYsdJR9C8p9Z9TRB/a5LG2J8o8XQ6aob1KfUFixe9bcfW0ZPEjqepXQXbD1/Uw2CZ78OZiss31So7fr36KSPj8cpaVF1UqdQX1aPKokoYLZKoy53UyrZKpbItrkTbqlF129xKsN7d2pqpJjfozbwnTCo5loSQzX8dC0LnaGFbQJRs/QC+pOI6dhqZQqK4kfs1/stfUzF/zrT9tCw4xu4754PyyxRn5wyHBv9xnBGikgMrYfQI5CNUfncgC4+b5h9w6d1JuxIp1APJQpDxSeYf+RQmMeHzF+ADTn7irNeJCm3dhKVt8UlO40rhhZrSlfBw7y9v237vWR+V0+PHtSFVLMR+U60S1WfUD7lJ7MLxB1+zKqoFJ8s8cKRYcYDE/8Dt627ZXwI9b1xzIg7quBYZ1oMIb7FG/MMoqEd1OemGwURcDyaEvm3dq7ZLBt0nGXGfpMS91aB6SzCneuOC/S+9X1rMoIIRkI6FzvLfzGOK2ZGe4QW1AaMf1oSBH9oG5RCOZzHJioM6vvsw/pESZZl5Hhj4gmPs/nPOiuL6h/R8If6yEwcd1zhYSE0hspY8oBK3wdW8gPHrw4tSOSVWrAcmJDIWk8YFgkQIH3Hwn3wN1RYbCb836UJHx65QdUYKqAA9GsrdgiVzPr9jc+0jMunOKdp+nEiiOBz6BceO+16zX1yPXytxf/62ta8+WQK6EsHTE5CLOY79k67WW7pMFv+FMokcLoIOR8bV5S+cqAfb1r7qUfni0I3ybYYfLawE3woPuuxxyBveYiOgW/sRf8ylXFBYe/Oj2srFGs/QHd5E37b2LDyPdHpWftZ/GI7wuw5LxWU8R/V5yXjG4kKEcJ7v1/iX/v5k2z1nnZ/VL6uPKtaooCkLmuqbHoqm/2/RwZd9ymo63+9Yd9YH5TUq56FFUz5n7E+clfTfZv4TmbQJ8hlrQJR+2g957eSDxy/UzamTb381+OeFB377n9BuoAuOsYded3h9vP5l1crXOsGptsF845HA1sAmczjJ+M35ab15TwfEjvlx/PWkmxIp3AOY+FA0JoI3xsybgBwf+cGob5N1DRozAgJtAOrAdXmgHQ3RLtzz0tFt6866WfLyxELtF5t1DFT1GsAQecBUGZWvDlfqE2dLDF8vJ6HfERjKlR8JcZ/i7+y3nHGZQtlh+BRxzjlygjtnexB+cnTtWf8ZVsKvLqzE3wqf8e1NQ+csGQfMe0LoOGn+T26/mcgxQmjUTvZ7ie/kypMUjjngOZOyzr/JeG3UuLD8D4LdRL/d2LdC1dXlltNH5wmlY+dKxhfUuBIGu5GlG1iP4t2lnwPQhvMYIdSQq3iTzH/WE3Xoav5Dfy4e/bBf9Xe+sR8WcfnXQ/x9++WJhhVm5QAXHPEjb165c2z75TLlLOYoglJcEUIhTkSAVhAG4AwH8U7rnZggviw88BubeVTCAXjALQIZOUL0nAyOTtTITnCdtBkCHrH3Z2LoibSbEKr12/5KUNkyBCYnKoze9+qjglr0l2Ft/Gx5TquqNie1/bdfHOpJz6BSJ7VV4TlV7sKcKvdfPiW3YS6uzhn5yPz9vnlfhnv4DjvJ/zb269mOPGGnbxqVSyLiuOycDE9zFlZnUS5hxoOMDCGq+53/7eLfaD8UkM2dQlRtwQEjd9UVOnZdZoH9tNmPVT/in57P8ZbvARS8tnzHztFL5amvZ2D1jinAFhuIPRYdLonxkKfgyuMe9NTVvtORiQqIzXj99ilNebC2NL6LBmBm2UWeBxAkFAY5C1mnTBZ7oK1yQOWwDWW7tsME5OE+u4RPHbN285i2OOWZ753aj/FTCYdjwbHj3lefvG3tmVcGtfqtEsHfk7FXbYoX7Sbsg/3oA37AnyROAoFr/4TgiwK52Bn/QX28ds/oPWf++9h9r8UzJENTeol/N/Z3ZSj85XwH6OPqV8QQhdCOGvesA8zbwE0eQQu3H2dT9AeIDYXQjrrfT3YWpW15tvt1rtdpt9/XSXA/5j6exBJ6s02e5zJ1A7mlsuO+1bh/8yJE1r+iwTgTQl+dNBLFWUMI7YGbFeaA9PIsyBgfqQO0t4fnHXDkfwbBNxOpJTIID1jMONdrXHK61QhJJSCKroalKVfFiDFX2VovdRpiE69thnMXy9tsMUlbOhZpfxTWp/UKx7aHznxKPBZ8rFavndM4Qm08Kq1FvPoS/1bOlcTQ/JHc0rmCiSK6SGRw5eX1ovPrtq494zOLR6p/NQy3WnrK/y7sryVXj+mMfKiPfIhcxs5Gp/DqtXY40CiYr/EQL+dt5Rc28kM1pQ1Z/Gm15h9sSDRmTRdQLwaZgTPd/ux4YewYz57i7105mmxt1oXHW7PKvex3iBF/iISEMQlEJuLfQeBaCPNEuqse+Jiim3pDcEDFPQg5wiep9EV5R4KOnzyRJa1YDzBRGaIsRD5Y6Cw3JCGEoomB5LBpwEHjS0M9WaoUa1V76TKvLwQXdEbJ2s3jqdoPOfNrizZqJwPeyQvHqqNrz3hvtCO4S8bxOXndD8J+5AH9KUnjfK4TgFMpzZSsPvKJsiLz4R9uq0V37Vh75hvzbBgELdY7/aJnl/kPe7qxf6qfMHW+Rp/QUzYUQj3I7LL+ZpwI+5H/3dif1QfeM5rZklG/w8PWp5dsf7SbcLjspw8Im81nrLuNPyUVuuCQJ9OfL6vfT7IzLq4BsamzHQSeHWzgAE0hcC2E7tAHXEkBygbO6rzqF32WEh+MB1olZDZhJfw6YQH6ONtnIXLBZCC6k+TCYMxs2YvcPlzp20pGnwbct9nHUZe3Ze2XNr8OD75k4Fc4tq99zdO2rxu7UULwsTCMl0D3PP1hN232cdrmt/Fx1mdh1n7I9POAfbGdL1NxUZgQM4TyAUbRXrUo+rIsoC6P7z9ruckd3B46+bpS/yycqv2dPsFBy+EjFPWV7P15W+dxqUsg+LycBo5C6OO0y7fZx1mfhVO1H3ZoP7QI4wx/0HUKz15DZp7+vs0+Trv8Nj7O+iws0n71gShJqPqKbwjVd6IkYRJ3oUH3PP3R1ndrYQsOfA0uqsffkN8ImCMWwAozxEEY5SuouJhCCKPU2YSQIaXBGe6KB+576b0v7QZXP8AoD6iEwQ3zn37pOm1Y7qbFA4yXxjInhk1KIQFQAGVDUhMqjkPyCD6sJY7CQ6Fb0faLS28ftA+2rjvjxVEw8UuxTb554sYlxqmHU6fi7Xf9iyP8vti/TQY4sknBUsfmGaYRobaJ4zNGJ+o364OvqZDBYVQGULZ2+e/b7OOpwuYf2t/pFY6K+As3SvBPqC6EYIpU1A4s+inO/n2dfJz1TbBg+038JPFvUqgzwmyxX2MtJgMy7oRJ3HuIP71YyIIjfuxNi6J69B25TLgHAtwyGM4C1pMX0BIjhaYwLQX0cVebWYDI9/AvtppyP1APTMjnqFZB9AMruC4UHbRFo2QD4ojFiZ5ERHMHQSLO+oHa1WFnMrHKLeH4eblJ3G/7w3CgC47Re854v1w8vFq+3rqHnkA0NhYrjQnsQ6AAfVvpO58meF/ir4lhHXAxCohNVXEQOHROIRLKaNba4XF8YFCbuElsfQPpRUP4gXlPCEWhK6GPa4USrJ76tbO/0ysc+IFMja/6Lo2nT5uN8acfu4aIBTbxVwKBoxD6OGiyDWX+i2o2Tswextz0TWkdx99bZXgovDH1IkqE27du/aIMlaPgeFHPApAzODQwXr1vgI8rnycLMimXUHm8GUa+c7994dLdLoX4skynBzRCooCLmuaB4IB5OdFWVY5eN2Lb8g+eYdu6M0+VXt13z4u2P75lUBbKw5V/LxPkR+T2gzxw6eKpndPGPE1Y5/j7Hn/IRS6YfJ03BAf0cdabhtTJNQXRTyfBpe0CuRj8lW33vOId1mZY9lAUhQr3Yr9J6Gjvj1E/drMx/j2fDb18anIq6wBl833o+7apXStCP+JPnaSPrDh0SxpwX0df967jD2EFfC12+7pX/Y1MSq9tUNT6EuXdwzX6CdbDWU9DAX2c9WokDlzwlO45r8E5wTfCPb6wNWlaIoP1AGLhx8P17pagEkH7A5m0fAUZX4s5Hq6zFngg2OVQfsPpo8bx/1DbC7ZfrqLUFy2Yf9UgDB295xUfkZuxH2CsWsbPt9nHnZJt2zcZ0z7+k+WBLTqQitKz04dQu/J19HGplEM8DfaZrXe/8o+a1BoYof/2T0X1tvHzfejjrtO27ZuU67/9LePf43RCDVV132Yfnwn25+ibDUfb+PkyiHsPcfS8pssqguPt9575GgF/C6VMsRSmpxXWmAQ/WEwEQMNTqO3VAKMpD3oBb9Jf2os8en6x9VDup9MDFkdM3hYrrCOBp2tKwxE526CtnxU4Tgu/vgZIPK2dfmzb2jPeJva9kJoUbP8N4dMvLfwbKlvufsVHxY73Iy7mc4P0PyFt9mHB9ktXqU5p3rTOH1+3PDyrrxzLK1WiTxS/6Og1//trf+ITOfmaL2zcmm/TvhBzxp0waeshWX/2f/ynOvUj/p7qHaP8bJzXYKbZn9UXPmUeALdYG2TcCSezn3WdPkNE/pZw9L4zj4xr8ZfkzYLyVfI0BCkmTbFg4G0PHFr28SvdYoyapxAdYQgaDUcp3iDTqnSP+2H2Pfb4gfkHXn5depnEYyrRgXiAiWvhlgT1gubjWWXQjm2ydTi2OoN59dNJ27H2jBfUorr+FgNSHYW2+Db7uHGl++7sD7+dtiwG23L3K98eBtGf0h4blejLDMzGIzPEC7ZftMjNF+d80TLr/3z+1HfN/My1+OOjd52+bvGqK3+Qcvcf60w/6tS9/fi1mY6KfBTF5Z1sPBl3wtkU/17fNKoX7uEsKVl/ZfMJPKC1KkXHvzP56XydtYdxJ+wk/r6tfbnCET/6+t3ljbnfkcXGIpzwYZRubnUkR/qHjoGlhTigtSFEe0SPEDjqEpjHDw600XdvuAxIOyuxAXlgQvpBIloypgsIjY2LaSvcbwMcMSfU+KsNyIXhKqP3nP4eeYnUNaLVPNgGnX1bWtmbpfttaDehb7/QxoKRyleL9MKOe05/fiWIdAEFHagHIfSB/oS0mxB8xAE72fw27IfQt59288MNoOHwPRKHeoETfUMXxsQg5RLmy2dPcTWuBF/ded+ZzyKlnzCSy86+r6AT9SLM1w+2grcz+7vV2fpu7S/obP61+IKfdvh4J7FnO0Lre/Lxb7Hu3H7TqZU93XqH/BY76k048+xHLFEIzU+gwJa8eMDWdvFHe5YpX+GI43fMGV376Dcky/aHRrjK4DRD5hmuSqFLzUaDOFQ6aSBISW0VMbZ4YVI1idOJRNqzkfCjRXVu/EWVVe6mzQOWiAh/NoZ2QmB9VkHSCVGfh/u0rIxBHcuLr+Zuu3v7OfJR8M+jKD5C+3W5Tv0KtP+LSw64/LdF2brj3jP2rdXq3xQ75vh9tLOHdhO24/dlA2c7Qp/m43496H5prOOEYpBTESHa+fzECX25Ms0sm5ioXR6vPff4ot59wn4Ju9LPKeu3TeZGzpHJ9eMGy5oP5Ef28Jct7eLJvgnb8Wflsx0h6vNwn9ZKhtFpQ2fxz8rq5DisyJeII7tyRL0IZ5r91Jswa387e9iOEPzy8HUiZsoLDlls/LMsMl4AiXoJTpK04dqCP7KTBGbwbfXqKwfclEwTjfUG7QSm/enJzN1GAQF9heH1C/a/4n4clmU6PcAYQwf7hEltGE87Bp+3aExw0NIaO4KklCb34iryfMHzlLHFDmdLXHHhWZM4YDelEtTnxpVwtyCurJCHJ/eVtieN3rPtBLFsQZLWKrBBQ03JfttfCcNoZKTy0W7075ZXFhuflzjtnvF41/bY8C8o/h0YxczKzZ8O2ufY/8zRaCN8X8C3V/zc6SD/O9A/a38HTTIsvk7iDRx2MZ675U9HdzH2N1qTMbXHQ/nWlteysYeZb//U7IH9uuZwHprSgmPb2le8Sz7Z/QEHM2T6eM5g1c4tCKZB48nHadUjUFmVcK3odaaKkKWn5EJVf66yA5lYo4KXdzmJd9q+XRe+fFmkPb5k4cI1g3jor51exdS7TGDGMeggM4e14wwhwy9PBOkspxBNXT2g/M2Va1o/Bs5Faiocnchiw/WlEAQRRxoOmwp1s+Y2WkR+BD00MbBzOkOXpuLqOBLA42xQ1kx1IqsFf579ssT+4vwDv7u2qes+EbbcffrvyyR6iukrCtMGJWQdlO00YyDb0leZ6l7shz81D6Tr7CeubPy1W2eC2WPm0N1Z7ZPcZGgZO0AtWDyFb5dv7Xx98TO/d21T+ykRnKLsU2TlxX8q9tOK9mrKSVRD7emkjWZz/Dv3TqP//AUHZNBHQAX34smpI82/yfn7HX/0yzHRaIM7ouqAKNTdy/90zBpL476FPY6p5wWHfCf/BVG99k/UK+3UpxAn5EQBpZptsRMHHEJ+QBoAfrRPr2gQBzR5Ul+vv11ODm/HcSy/Rw0/1SguSQQjZCcrdFsXfnZPHNDk2Ykt1c/o6Z66ugaZ/mBLLaEFwej2bcHWu1/x9cqC6vsW7Xv5o6mc2YA5p6srBG/lEvUH7PX4EQDyg04ZwmV5b1fGtJXwgsaYEDc+NACXFEJ0A9x1l+CsB29DIaNBVU0u4TFHrD/qhYaN/Nav0Cgf1X7/efyT2F+phOsXL5r3Zw0q9vFg+92vfGotqHlXTxrtmW77La7TH/96VP+3+PGzjwj3vHS0b+5n3AlVMHPH4jBl+zt981di1K4e/8QRHSKN/ur3+J9y/KGeP/8Q5/zUZGWjPb2N/1RoTw+N7rj/rP2DqP4NUYVXqp1EXzlOCgYbHQU+TNop9HGbtH1ZqcKTYTzpAPYmz++zUYYvu7UOje19m32c9pme0Tn17RM/ie89e1lruTOtRpZVjIEHcZbGH6HiSoHfuMFW+hGshreSp7zK02F7GVgqEwPMwylfNXR6mn7oIdVHlrRQUJpKXqNGeAkTGWjvNkGsP4GKoz1o7s+kQyY3SAduBXJQKE/WOu8Ln3bZBqvt/34invhHeYvoslQ/05A9Tbf96jvnS+DqK8LEb63958fcx+lftVvk8Q92A2dJ7Jdn1rZt2PpXpE8d4kMT+yEUitpmUHHoBho3tFEetGE7QmsH3Whf0OFHTJNmcnLtl76Y94Tsw4fQzddXZYHm/qCz0mTfkf4ZedqmG/u9MZ+Nf8OPfsBpXRTfZh+fSfar3ohGQ3wsQnRFkv/Cx7gT+nYTh/14IJql6wUHXlteGxu/XAS6+7sQxWRphOhU1YUBHp7ysy2gFOVx0Me1EtWmOKCPu2o0JKfhrk+V2w95Kp194IC42WnHKe7b7OMpXyJj/9Hatn9Q8bNk587nelIHjsGNjbg7VA8CT7wmcVIcUDatc9BvS3kQbUIV0zbA0FbbSyNCLPqIJ/WOF7LzNuX35IEJtIRZ6vz+IQOFsoAozRGIu8Pu7A+DLyxe9f1LrIf+70fvfuVRMiHoT8wn+nkxoN2Eid1qlOlDlO37aj+6EMHaR9KB0ax3Fxs5gI7Y/Jj7eFLveCkuC1WGJw+dg6YwDP5YXgewF/ueKkzy3usP+lAH4FO1Xy6xdlToB/YNmNjt7LdAmE4Uqjo6Up6+Pg04bCYchP1qj3RIe7Rv5AkNmCKkHEDFZUcIhDggtmGynzr5UP0FPacQf3+R4eMidvIinYajm5/4sqxZ5Il8uAqF0I6627MtoI9Tik/zcav3Fx0+ztYWXTmiB9EHcO0rT57REueCE4MrKcQBfTxh6BLxZUQv7rLxULPTQ+pL0ZQ+lWnLcED5QzgINUyyS6AgWuegthDBCVT3yZGDqEFbQuDol9BiCf5EO+UGPwtko2gfHs76hJUiQNAmRlBUCHZk/SsufaoPUAfc/aluggPqJrsECgI+vToWxj9Z8qyl70r0KACJ4trf4T06EE39iCfdmYFms+KyI9RWaQuQzVYHaTchbAOPg4ndQoPNukBAneDUR5oaDuj6JUQNZBACR/+EwFFHCNwKodYqif3hAHhSiAoUOQvj8Z0fSOqmiEBPtZtQCOi7v/Z3tuLoxH5zCxwBw7GjpwwqRXyeQMXlmFBqNDYODsZ+65/6QnNngKE972eH/RYti6SPJ26BmShmriFKa21/en0j6PQCm3YRyLsGLpRkebUdSZ+SOHwOgjQfWjLZBAo6VCINx8QBtejIEi5AFJFvow0tc9oLH3UwBtNH2+XxS49wIr48i0KcjlV90KXWYqdfs1WYkDyEfQPmFZUnFZQHLtLAT9zBfUCbLaWVzVn76HtCTRIwOZeqb5BnrqHFzGKXykr9TzmEJiqtt4i2zoFm/jTvtC6b86KYxt8pqPoKY6pvGme0zxbqSUi7CVVOHKwJ5yx6TRheOp5t36/jzfecfkJcr50BeYkugjfZMwD7ZU65TZT4mSx9HpdPRL+Vr709XonDqiizRxQGe1biYC+ZxE4Sv68y+9P4UnfCZnsmnwOa+dvFP3zn9nWnfXThQVc/bLr0vledaYqD6v8+5n+XU/60xF89WJD9k41/nhe6jqC78o52TePFo+XJZZ4SctwT9jv+k9lP/RJdPN2hB0rTOU8q2s1/Fe97qx3e0QuCrXee/to4rn3QPgBZNqjy4mwGClQ6XLXjgdNWvy4rOL8228QvA0uLg9rcG2xW6e8dP6NjjT2Gxh7oSEJz/iT6Z/RJpx7rt5/2i6yB/QiX56DCUF5xwoJR8RaLyGRB2aLelhqIGJMICS5qu8MmA1AJWYwdcSefsScEH994q7La8UM08s3v38Npax/tvzWszj11yUGXPdFkax8JYX3C3iY6TfbLF8puFDdeUh2Jv7fwoKs6OnnvvOcVB0zEtdPlm3LniSuOVXcMOP4y2c6r1cI/kr7/Qvuf6i6jf7/zXx6h70jDyrzqH4/U6+7qjZfgSeL7tFTk+ER8thz9Qx/zX8RhxLn+BMBF8vD0x+eMBPpSurT3TjFfd+JhMG9Otbdno0aq/2teGH0i7Z0yQSFOmHINCpOYnCQuuxj9cd4jLHr+kx9R/fXI3MpFtLWjBcfo3S89qh7VvmhRF9VdodKEIKe1lhhKIzELJQZIniQmYPYK6xSCnuEnnVCbsg9ln/zTDPUmtAUIUtuSA3TSVHamA7YjRLXXvdkGGolZ6NsTB9eo+Nm2o/GEsM/Hs/aa61vmhHpYFw/OmQBoQ99C3mTyUd9NgSyehNGOuOoAQq4CqLBCXQhB9XHHloAG+8Nrls5feE74jG9vSuoLQLaue/We8fjoWbmii7Y/DO6vBJU/W7Lqqm/m9j8Jcf4zv3efVH9STvqf2nLPy94YRtGHJRpPndS/k8jLrerI/uA8eQncB/tyBaoh/nkauXxkwuemH4hTK4ufceVjvUjYctdpv23wP3OdEEJ9PNtJ5/ZvmH/Q1euyzafjeMnB318v/WIbuhLff9by8Yntf9KzYh3lf9MErN3JFLkhrMw5dcEB33uQ/bd9hmPr2pfvUY+C70iDRUmiQAkmDaEw+Lni4+zMJmccYUBwUBCmXAnmC/HxhCGDUBenn66yBQfkiptQWzbxm124RKSXiYSJMI+/gSYHvoo+rnzG7NCM/TLpLlm89GMp3yzGfMcIrv51kH73oTAYD2Ll4eSBp1QGXZaRjza2IGF7uRivcvJzgvmR5IzqJm0gF1uTPMptkTPUizCjn+qufVh7s0WvI3546arnvqzoxQbUqo+Pni9W6DfOBmm/vKDxn5ZWq4csOaT7xQbdCSi3YOJlz7rqy0uWzX+m4F/UOvgZW1O8+h9/+VbPnpvvfjJ/wabKtN/JVRpRtXmzXLUc83HyQrLljOsDNqO0sN8qi9036JPtKqOf8gqN9mShb7OPSxTL0sYD8aNnLNy6c/uVklVHwnfmv/7nP+PCuFtMw63VcM7Lljzze3f6ak664MBry6OJ+jflva37qcJIFg5glyRI7CRJZBGhOKCPu4FE3laDQRX1Bh36Ig249GT9Azr5hMrn6ZT0AZ25QQZwQMW1gdAEygadCRUXHkLjd22dPL9P4PpHiCPigLKhb0LqEcpbcQW/QF4AtkOkz7oCn6Cob3J8AlfCJ86lTRBtUcfCq0+APs569a8cAPo469tB9kV9oL7SYIaZksJ2wrRJ9/bLPZ4nlyyc+5EwvLDweVV8hMx/O00ZlP0SnP+1ZNU17w0P/v4Y+54qDJ9yxXa5UnJ+UAk/PfD4R+GU3jyKiZg550P4hDEx3I6Kyn/00c9S1Pif9MTVTwNmqCz87MKWzTsvk3FwIufBTkxhrjEHe5n/ZNE/Jm9DftWiVVfenO1z0rhtvuu+T8rs+rxOTxYyibjJWSZZD6fyMBx4q8kgayz6VX6BmrgQK3/4x4YlAqGPs14dDZZWJx+hawF0uhGyX0LVAHLwB+j4CVV3TwblEKocrw3aoch8/z+XPevq7+vBLNo5TyXxg/3qIw+auS4GLmjOKwyh+VsYKU99jyPxXwPuONTPgrM/8CjN8aNP0FggF4XyiSvR0UlTHsjBX4fysvpAFmhpoS6AkIwSrdiybXzd5jtOex8mDiUVtNt892nHSp8HOqu0F2qBA+Ksb/C58+Nk/syzX57+/Jtlh177wSJM0qsdq66+oFqpfJxxJ6SehHn2+TQfb2e/rNpehKvBvduEtaXvbRwZJYVSn8k/1Ys0aZH1N/iz9veuY+ct6a+sPpAAWlos41NrUWN+SO2mH1L7vVc7pKJKTD0QxxdWtt616RJJltPy4l9E/ieuD+XdmWHldbLw/1FC85CWC47Nd5x6QRDF79DQY2LBhkJoB7pHOlhK4LB1sqS1wFCcTLZX2S6pBOdAATQcD3hKK3eLRHsFnkiyvk2uL1sYwCO8hCoDump7tGv+g634A9TNGqsM2/l9KKeQDaLGtXbQeMmF9rJI+vbSVVd9CPhsK2nM0jgy0Qlhc6MHXZyFzvbgAc6Ci1EogD5u1GZ5jIfV+L1ZC8oGxNZugPp9qg5oB11c+yxsJ8/XCLjqIFA0WSELj/+3+a5Nd2258zT99oiS+7yrxvErIJJ6t9N3qvbLguCaJYde83d9NqNJ3OJnLXu/PAz8y0HFXxKnEtfqpzcp0iHBlhtp/BkPNAfOkvU/6KQBz+ZTvv3gLK5Qd8B2+ZTVV9tIO8qAlsBZaKvcjitLCw9svuunn5Gvt/+u+ZZnHBz53rbG9C393S5e9D+gbiKGsIJP/XHlrXJOwyMYuSU3bFvveumLpO3HIUkVUomC4cQL3J2AoRxwQMXRH2hqmJ1ogEOGypE6Qm0HPrR1fyoa/MJk3RieyBe6yocQFeRB9Kp9GwQOFsIcdtTKhmI6G4+1U1yUIEzsNsUg2Ppz0Pruwv4guH3J7ru9CZ/ITIfZtYc/zCcWA1rnxwF4dmO8kvaUI1B9jliB5v6IA+Zt4l+lA/o4eVVH14fiyi6yqBjkAnfys/yqB9rzjzgg2mhTg8AhCoXisxBtrDvXPoqeEUX1yzff8ZKPF3G1Qx4deCVsQ7+qr3ROmNhtCqkPtM7jl1bWthP7w2DHvOrcPzAPFLuXBzjrc6Lg9yuVSl0U1NgXHf8oiHTx1otlmIgZd0Lf17ABG/4IfZz1WejbrHgvynXTRh74Uy1djqCp2uFkwDYUwLwNvJ3YL75WOeWu0QOb7jjlf8tbwN/OPGiKP/w72TlMnK/xYnCE3wXE8g7HsoFHN0QbOP7C8H3LDr3qS40aNR41LTh23HWaTHC1S6M4GpFnN0SYBJabZoIcO2WgN3BAxaVjQmmoihCqEU45ESgNoTiUcRBA+zGouNQROmbjRzMU8BP6uFGtf8HpHMigHiqvXf8iswj7xUcb5lUqr+rr7zA4m4cC1OSrdy43VB/grlg8ERPzbRainfK0aE85CaTshF+CqjQEN413kgNSpzmQ8Aub8icSGxHWJfyN8kWY9qMQOPgI/bZOaq/2i8j3bL7zyZ9uuueUAxoV7P1o9P7T9xZljx2U/fJtlAvdN0t6V7qLlosOu/YWyTJ5GNvygHEnTOxmnPJksw5Q8Unj/1I895Ynph1N9JS0sbmVsB/6qa2+/e0UmWo9fumygPyfqlq7QvtNd57yl3JO/IskTwc4/4Vx+KFlq675p3Z+blhwyI8RLR6LIry2fGVuQyQSCqBsmswOWmKD7HiMUfdCRSMPd2gDLa8+M9pVttAA2Q8hRXpQNNQjQB/3WLpD2Zfrvxf75cpRTR6o+d0Fq66+v7vOZxi385FqTb91YgJ5k/aMNWLp4a6+OQbiYZXBMwTaAbf2VifZIDw+znrLK9cPdfAhVtQ4BtTVNcRDviuoQ2Eb4krsYNfU3umitkfHhrX4xi13vuSZHUhqy1LfOf5i8UFIP6gPtP8i7JcHYeeMtJ2Q2irdJUN1ZM7/lWtbE4wvbQX0cdZPKf5xvHTrXfce16WKjeyTxb8P+S8/zNfYX7+P9BeVRSjs8G3ptB+/jeKUI9C3333W7FTsbOfbdOdL3im/8PxhzHWW15iTsMFvhI0536/8l3fofGLZYddeKB21LcmCQzoPNz+x8ctxVD+crUwh5A0VNbxVvXAZL6AaCnNhcH5pJ1/uYbuGgPhEDFkG/bapdPYFaJfmCHlKIESb7KdNn2a4yeur/WH4niWHXHsd5M/mkvrMcgJxsA1WM06IweQ+bucjxhPQ8DTuaT9pf838bJffU5N+HAvQ2+meQFjWZE9/7Rf5+0gXP9q87qUH5WvcBTWO9ORIn+S1bLJHOlca7HS2JnAS+8Mw+mo/v5GSp2seTd+REAZXso62Avo467Owa/ujuLcFh7rT8pR9ZnXJO/ZtMHzy/O/oxUt5HXVIqwe24oANZkcK88YjbU350zHUYZe7PNumNaecIzfmP91J/JvzJR0HeY5sig/j6sa/3J75ytJV17wnr20eLVlwbFrzkv8pKyT9Lnnr4NuAsMQRXLV3UHA9dFBx76SPNqa8Qd+QVLGMfK0gLeVKMdYB5slPaYnOerIzfpNDGcLhJtCi7Jf+/mXZoT/8dKr/7MVwnxAbfEno+5eWow6lU35fho9TnkRcUUD9wwDBH2DOBmbK8XHyUnfqBx7q3Ak/5FAG+yH0ZVF+O37Uy/aUaOf4j7avffnTIKPXIs9v6Ns5fX2Iu34S3akf+urFfgnBxb3qOdV28nHlYtqThZBNm32cfIxdp/aLc3pbcGDe7GC8UFfq5+usuDiaMMl7L/8Lvr4RVOUPutFfxFvpCz6UTvkhxwo/jLrDXRRsvuslLwvi+lfEL3ouR8xRNPaMO6HNHRqfVvGgf1nv56QfK/QhM/wVSw953vlCZ1BAnrSokpvXvPjlouJfQ00rgEgaHBkEDiUIVTFngFSgUusJqbAPIUvbaT/t5fttrZ3pYDqmOPmoG6CPsz4L1TronhTiBdgfBNcvO/SgjleCiUozFunMh9mY+HHzcfL5NB9nPdwFnAU8KIA+blTsyWv6Gp205nqTbXkM3NfB5Kd5Ddk+zeelvlno8/g4+Tza08YndspEc2HyocF072xv7eJjBmG/uP7OZYf9588606z/XMsPOfB78q2GJ+A7FEI7Yqz7Fn97xboJ73wv3eflk0/zcdjg5YK2RT0KIXDaSn7Qii31JOeLzP9ibZgZ0rfc+eLnRrX4m3Lmn4OYM+6EsCIv/qSZlT3mfxBfv3Th08+RdwV1tYatxA+fvUB+/VXeSc8Bl0JTPJ1coaBvjCnc+56yAH28tcTJnePL8PHO5aW2wx8mow/2h+GDI3Pnnx2Gn5V7ybtGge9ss5zBXIjN/GoQuBVCd9gAWAcImag06OMmS07w2tYgcOhAaPE0mrK5euDUF3KMz/ozPupgR/7el0kZjZCyAdEytQG4FUJ32ABYB5i2hSx5xvAFm++4vqff8Nh69/UHi7jFWf2tD+urE/2y7RttN33lJui0vrYf4070utHXlS72aYZPOf6HYE6l/KnDSeKvVWlOIF6d5P/UdWotATdU4Md04zEg2jXqa5Joox017lkH6Ldt5NrVjkbvftFRUT3+njxisJB+hX86iT9zHj4jzniZj83XwK0QusMw+MXy6pIzwmdcvNNROgaVzVvX/4l0HVEB2gAAPCxJREFU9ow84c3KpAqih+Z6SzSTleKJMS4RNfPMSxCSKNtOnvEKP9qwHaEpZLJcvcoTPOlfExb9tdpUiMkAl5Odtk9pytlUn9qMPlz7bXG1cqZ7334ie1dBuJr2P2GRZj5ALFAsJuYzP2aNPmfbVvKaYiaMSksaSD8qhDnAvlWJpl2TPGjq4t7EnEPQroSedO/wlHWK9sfxhzbd+aKuP1XH9fAA8zk0oQ6pVsRoK6CPs74dNPun/4cJw0r1liTuBcZffFQZ3fHk/u380lyPWwT0cZH539xzkZSi8r9InYdd9uY1Lz2oXguvktXFcuhKHwP3x6jiUknYj/yXBc1dleril4WrLt+K/rotFXkG8xQ2yioLQ0AD9HHQSCdEPQqhj7O9TwOeTnSc/LPQ5xHc9aFQdZNB6qD/AChaoVCX1v0bH/ewBaWVfbS1VT3ask/gchlXflQ7fMuKVT9cjeNdsWR9ipgbjbGGV8zv+f5hnfGzLWPQVh6+aogCqLjIIUz6ZR/KqOyQa5tP83HWZ6HPIxIyOQWZtCFfPtr7hbpZP2xL+0XanKAef8Rv0QkuVzX3ze+/sT+TRRqOiJs+duzjPo/Uiv1zRuJbTM707WXavSWJe8Hxr9ejp/fP0kZ/Z+MP/5PWGBungdoqOCDx/inXQhJ1li4Lyv8WHc968va7X/zUOBi7Rl5bsRfjTthZ/CU2veZ/GD40d978U5c+64qef7m6Im8kOxoK+4nRKmp8NgQQG9oQUsak0A0OaWl/6Jc0lZU+ZOg/rNJKJtYfqoNAxUUWYSLXk99KDumwG3ir0rX9QXDh8kN+1PWvYLbqf2bS6U9AH6c1Po08PrSIWoR9nDw+zcdZj36As4AHBdDHldh2x/zoNGfSvlvpQ91Yn4W+TT5OPhkzQfyiLWtOObmt8g0MoSw4irdfFuBji5558B0NXU/DwchI5BY9vs0+3plSHcU/xmKu2yILAs1TxpXQj7mPd1oPPcA7XYV9U1/oQZqPsz4LfZt9HP7atYp8HX7lWK1+tZyi9k9zxfeJj9OP8JHvb/CgAPq4Elvu5AHRx+XnAk5dePD3H2nJ1EGFfEsq/o3wLTNeKEalpcadfAlVbzyQSv1lNpFfSpQmVLyxvSgprFgEWH1jLXpspFh30gJkKaqJHKTSTRZkWlEOx+lIDaBRfkOVHmTbN/LTbkJTV3iS7lvbLwumby0/9Dp5hTO1b+59NlPoM6QGcKaI4eI3F2R/YQl/gGxt6B0626BFzHJC8kqeUAsu8n0MLkYVErI5aFLTmDA/mVPt+MNKuESU3COoBHsI7x5ix960DbJpa2pfSkvr+2O/2uLGYxRO/I0cn6a0DnYybuWkCKsbx5TFQ35CgEZpQERgEi/DWY2ufDzH/juG4dmlhQdf98imX73gSdFvN0sQy6ci7Jdrm+Lb3ko3+a89cD4GlNLsf8u1JJ5dPeKnInvaFZ3/QZSO4Z4UnGGN4jUvXLypVv+BqH2o5awzoNv4Z8ZzR/lfCTcL30uXHvLDe6bqthF5//l/ylWOVakgS9z02MMYY8KM8saZtpdXCmFOk/sKjqa4cLnDZOC3kEc2QvBrIjt+4kxuqxf5lKcKJa1NvYY96whR6eMNzKlcym9hv0zAty3fff6bZZBPIiwje9YdmulwEQqh4a3dQtcSWo5Iq4TgoWEwsfyw65JfOoXsQZcda07ZdyysnSYGnio2vlIsXWgaDsB+MRa5j5OJ/Lz5qXiWQ66o/aITH8ivFON9Hpbu8G2LkDRNSBII0vL7gaBUoHweWZ/PNw3UMMCl4N20Z+ZTo7pNStFWQJT8BanfTOIRxfv4lG5wqkWYuDIhePkvghn/ZA50tJZ9Fv0iDn0PB5Q1f3HcE0IvX9esnjSTsKX9PX03K9vbzDiO17583uax7ZeLL5rem9N1/OlYwvb5v2MkGDlj6WE/vLUf3hqJFsz9QLBt7HQZUPtDB/avwvHRBZniPsJkjVN+VFOTDH/StiHbyJwDtZ+0v+b2WQ2pLaBT1UEcZ7lB80tj6xz+jD2d2C99PhGMVM8K9756m9/XroTjbYbMiXY+Vp+KcwCT4qFu3rLETBgM8dkyVQM7XHDYtQ9JZ5/DNrrmhXtPBPFfibLvEPv1V16LtJ9G0ndRPTpHaB0tOGSBIgsj8yDbQx5xQhsCWNRYb6CTZpTGPdiUJyGHWxJ0mhG5dY1Pak1a0FZUECekrd3YL9/KEd92V3BbPdHNV5E4YY5Y6ooqLD5xzCsaxMkT4mcHCi7ap+sDamtOuGPiLp2SXKF+yubbSpzQyYl2kSsc8vtJ1U2/evyrkhsvcqY3Ad937eLf1FgIfnvigBKjiWo1+N2lh/7whrx2vdAqKw68dvO8ufNPkjz9OhJeB5imvkRYOtVBIBC4DjoHyUdIPkK/rUkRGWKB1iPbgCOJHLQu8BZR0AFlk+oEwjqpBA3Q8BSihroAYkMhBK5tHQRu/AYNT2VoT9qf9YH+VJaDefzyjuiJoBq+drdDrntAxJdFPdDodYsg9vYHFqN15i4XVqSN3NUYrrL4sOse2+3wH79bHhY+XD4J323aFWe/7wv0Jcev7tQj8uZPXXCYDMlta6/NKRcHGGqEPm5UrXEoGH1bHTmMNzts+kEYy+LH19HsBq2f9ocxfFtMYWxa6ysrFymcQ4krcWA7+lh7d71afthY5+g3vl7G/7CN/SJcKyf9cNOa335e/KMv5EQfU48/Y2PxMHnN+S/nt0h+guMtyw79cfKW3n7YqBfYFq265lER9jr5us276sHOw6pxtGcqnCY6in+oZ2ChEypLA0NzI5+XrIQN7nRNE5oMokiu11XkC31yI12uIZ8pE+DbyAXor84SOv0rBHSDQ3aHCVRpjkcvlwoREAUDgZdQHUGBChHM2lqwUCH8715x6I9/bEy79t6fRHxcfaeOc/4hbi5HEMWxcgCIkqlXsqt2HMY3RHsZpGs3PfiKE4MtWy4TtV5QlP1qMl2lMD546x0vPHzJodf9qgN36LsiqBshHG44HI8CLwN33s4cukFgLMplfJQnNxWH5gqH5JTpojkmyubo2xf7w7D393CobgyqKEjXu3D4+a8GkNXV5zZoGE8JozYvasf4Q76PZ9Mpa1+n439X+LVYeeboY+K7tyQ+gy/d+FMI53YdfyfEpQFjQ5jkf1z5o2VHXP8f6KKfpeGO3rLDrtoowvt2+aSfimZlbVx90vvh/dRR4ioZWHopyC1qsnOjLkgcD+XZ9GhHMYIAmRyTxBldDlwnnzIAZWHyqd2OvPFffVqJw52yIPN8ThzQikRAURcJ4qwGUx4Omk83YUOzX77f956Ue69nPrljK97/cAAXw321n9Z6fqjZzxO0XXDIh6fklgrFAOKTselon5SJJ/FiX4Ro5OM49koUD88tFZksNqe5lq90P+wXyT1c4UD+e2PBVy8Pz6Op39040rMUCNljZRrYrrDxPzALpqejJ9c8/2/lwe73aO95sc6jKXM23tljNATNF6ANrbWO/+pfrTji+n9Jqf3DGhYc/RNbrKRNq08+QFa4J6vPPN/ZggKTpnOy+FTRBt8yAKJjk++lTnnT9hoctocwbWP1jkto4XXLjxh5b7FWzzDpLgbmzvQqEKygO3MtUh8Lh2sPH6vLHTPxSWXkCh48UX6sbMum21/4ujiu/VR6T362fFLdu7S/2T/xczqyNI70qnRTe7c4TBYYoo/iLh5NsrMByQisVMLiHxpoUqoFIZRvNcmEKga1zq8+2C8fWKotNGhPnnL8dcZKxxhtBRxE0XWqJAHyQIr2ihyyw5TmHTegndo/KHsalBvMwZNrXvDuuF6/EL1lhlMyF9Kf7eqTXKe/2vi3Elb+cbcjrv+HoiydkbfC6kF0PnKYCwtAw1OoodKklx2gAsNxVQR/Pk1xBAP/Tl4WagKAh0WiLlc27h+ZN0deW37d8Eys1G86IUaEbOotB4GrTwnVz3heB3Gz53agMnAWiEFx4hRRWkKw+mHdLz/iupuDSniJ2i5K9tt+nUfEF4DY5MpF8mvPk/lEvqWyQ50KJvgyKcxvaowK0lKMtRgOigMCUR0MGh4vhYShKHG0RG2ForCZdhOqkjACBdDHldhAUQ7ZJRAI7I/i7cbd+R63CJj3hGhN1QAVlx0hkKb4g0/oqhMEYGw5aAHCQYFFzijMA+infXv69C3/CzRhOkVvvP15b4yj2j9RB3GdFkDFZUfYU/zRuFX+h+FFyw+//s+sx2L2M27BIQmLL5u+yaUyvNfSMxy4gD6eNmBbQK7CDSIu2Q1DV+Ml0A3j0SCsvmrps67r+c1rqS6zDDOX2uAQnL70/Wy4eRTPyuDPfGzQvNy4FwbzvZM/E7w2Uqn+Y1H2YwJXn+DEIpsMjv3xnf12fpGT4g7lF0ZCjQRkOJrKdjjloQ6llT3QxRQyIMLdO35An94ShfEy2KR/9Jeo1G/75YS/o1tLMRH3kv8aI6RAK3vEWo2nWd2tWt3z+1c4RC/NFwctd0wfzRHVzbTrevx3r9nQt9j4qxecIYG8SO7pyyku/0/IWgOouMSdkHlMyLgTJnkPCZl8kaciv7Xi8L3fLlczIbmwMuMWHBtuP/El8lrX/eAwdb2DPk5nItuVDx6XDYAQOOoITZ7jB58Un+bzoo0ESJY+8ZtXHPnj25W53DV4AP7SjckNKH/qbwfpe0Lf3xSGiQil1YREvmGG+hBnGN9alP2QyyLv1JGHJuqH8rgVlDnNfQpnWxtPxk9a8xjQKCK27g/8fv9+DBUPg6G5whHGoerCnGq0tZ/293CFQ7r3fWe6Wd4Dnyz/G/zvcoHxQTvgbE+5xUG7OglbdEPvXr70a/zLj5YVZ8I0SH5y9fNeEEd1fFN0hHkANZirjB9jCYg/FEIfZ31e/ClTG6uM8Nrl85e8IQwvxW/vFVpm3IJDTvXntfYIJ0qbPOxUZSc5TXRJfEIGlRAy/asgPp72l8qXoP3N7kfchG8hlCXrAfmuPy7r6uVe+NycDgfbEHEQ3kQdIfkIjV9qld+GEHFA3bJ9D+mxaH+96S4K9tF+uBbyABUXKFNx2wWHfHVzB/UgRByIA2JjLAAVRz/syPEDtOQfoiscEoOlah9u2Tn7fJt9nPW92C+iu7/CQf96PlddMTqExj/iiX7O9wgJw0JoVVwA8CrvAO78Oht831Ff38fAwUOYz9/C/lm03pBnEo+Nw+gKWRrOh5/oBz/WfYs/cqkh/8P/XlEdebU8bzaGfCm6zKiHRuO7TlqyYWctfdeAZq+4iBDeEoeycDGRQK1P2TEwwe0P0LTWMQO4DjzR31h+xE/+PttSWctdEIyMBHF9wjwhoweDJTlLwYk6y1icbE8PSxNMQMrjHEmcztegQYbxOq6hB2E88vNYnlnU/OyX/WI1fcUch1/kpV4r2zlELoRs8Lzekl1jh37cGACwb3O5JrQFkHyCk18u0eovWjru6Qami+ZQZ6rQDsJO7A/Date3WOWqrYVDdGNMVcPJ8l8YyOvHX4eKhcPGCZTmcWdmT43Liz/GuvrO5Uff8r86SIOm5o7JWm9Z/cJVtXjiBxK/JcpXdPwx4cJ1mhLhmmp10enhYVeNTqZjP+tm1BWOjeP13xNPeV85g/dQAH1cic07nrQAfdxxctACGp5Cypfhc+uKPfZ8S9H3upqVn0EUvM2QIVFfi+7O5zr5wL/uD1YprVPz/DAT77TtNPJVwvrj8IHa2m/7s36IApu8JrM3DB5CtX8lz8cna+rX+W3sk5OTmcQ/8H42wW85WHzjvacsk7G7j/bq+atJf2EgrRMNyQuouMiW1wU93EnbnnioO/0LIaTlCWSdz5/H10ca/aB66biHjqJAP/N/Flzh2Ljm5H0ngvFr5IHh3Tt2f148ScsTwjpAD5cr9PfPmxec5l6FkdeyENqMWnDE9eg8eCFdEBhOz2QXDOQjZNtW/FiEgxfQ8BRivEjt+nDO3FeFT7mi66fQ2eeuDnn/ENBw3A5wS26cjtXRBg1vjLGywologm2GlDAc2QRVzVaDtJtQLO3afl3AiB8AFYf/Qvk2RtsSy0kRvkcxSHcSao0lfssxR15AH0dbFInhbpvuev4z7Gj69uG2sWeLKaKiN+sWZH81jnUx1721EsEu819jrlal8U/ywMVOhHavyhRaMA/yRPQt/2fUmavZE1vXnbZnXIuuldg8rd/jf/L4Y34IH6tU4lMXrfoJXvg50DJjbqlsvuOEgyfG4+diQOp7AcRNxG2Qmt/8sQU+8uR6FeMQo8ONR+UVQp48YZuQV72+dsVhN/Y4meRqMIuJ5tSMi5vsNffzxNd80sLgIQ8a4xlqlWnim+QNKyEOJ5boRJBRkLYBomRhW/vVD84pFBB38qBm/DDGir+wRvOm/jwa6sFhOloATIa0skORZzgfdldyrXaMNLxfm0/TTm5ZHA3bkuRJ9BWS4PADSj/sl9dw9HyFo0/xTxIpa09SYeYWsJdXnag/zcHYwyY7au7O6phTqXb0Q1Z/jn+5b9gsbIZQcLVtfHT0KrHt4F7thx+0KJQdj+ls58Am/wXhk5Kfpy0/4sf3Toe7Zsw6cWIM796wJEsuX4rHSMtzHhcOgLkbphfUuT/IAM7CpAeU7YIVR/3sBtaVsDcPZHyq/gaNMYD3DQdMJysXgyb+3rQYfKt6LViBXvttvy4YxCuAhmsfba9wjFSrD/EkS6hewdkCBdDHjarjxaolSqjXBYZBXQ2iMpkNrVFUj481bPr28lsIRyOjzNbUX9Co3/ZX5o082L2lHAHQEn+AGssEIndQQ6i4HBDCDm3jIHCrNWi1Six2l4m/3xl0RwHElrXH7AbV2eJBn7/wr1NIv0WU+OGzF8Sj278r1j3btwcW25/5pJ395LaYp/mMdswD4CbNoODbxOmvmM5vVs6IBUccX1gRL75J/TfpzlwMJ+umE6bgnDyzUOPANnrgpFt7nVAhK44/ufLon/+bqyxBBx7gAk+uF+mJCdDHWQ9R5mcnVGOmRI2b1gkt4ddwYAce12YGAPmxtAMKs9/3A3zVwZsul9YWyuvP5W0cnm/V1zILEuKMQJx8Pg04Jk1C4OAjNDzGt2aeO90hkicsToQOao+DtMmHUF55YISHk8enAQcbIXAx/9EpvZdHBGgBlE11cdBwpx/YGHdCNMy0T2QpUvwukpWA+SEd99C77+O/eFP63kMcv2POxo0Pf0Oe8jk5ySfpRePK3jLxs5i3mf86iL8sQsbDSuU1K4/86U3sajrgjFhwbLztylOjqP40OMi/okG85RUPnQ2kEaCPQ5AWRgrQx121AAnUj1Yevfh9KaXEuvEAB1OrAeaHxceTPnyijycMMwOJ4uAk3xfU2jfJx1nfkLc5DM1jQPI4jrYl7Vsg4VFX49PO3Zr3KrfVGPDHhS0m0AZNsGF+JPTnSnYLm+Vk8/wn73jufqQNGj6x5kS87v1g7VdtFYwGYNwrDXZiQyH0cau35pPYHwa/UBE97HzVkuY+0ccdQ178jdbKnkRyYQjzAB34Oe/j7Nw3ycdZb7GRI1R6DJJTyU8FJLxDjOBD88bVq78kvjmdfoC6nkkNeGJKG4ZO4i+3N2W9XTl35RE/vTqRO03IjFhwRFF0nvmHE0H+YGIgAfM2TCTGY+2J5/FqXRjcN3depXxteYHJaTGwiUnj4GIkkdI/nNHwB6gbcUDdClSuT6LxyUbmjZPzxPXHfvjCFVkhy1HbBQe4ZRqykyN8y0I88bdorjTMfCLb4RorwfWP0MVD40V5AqU6jCY4hr2KQaG14Hy1AbpnN+gAGgtx8uE0oLTO7BcP9bjgwLdccvzpaIne8LHqA52pN6GQcD0dBRAbeAm1nVUXuc/Gf7K+es7/OBqaF8pNZh/rNqz+wafEVvmWZWPp2X6NPeNOKLLz4h+E71x51E/lysr0l6FfcGy899hlksBnYXDZeDHo4zbw7FMHcJsaxPfwv7dhIOAY0MfJw7YqL4xHq5XgVUsP+dmG6Q/TTNQAg8D8TIgj4upjPYZt6YBBLFDSmBhu1Jm537D69tfLQ4srBmK/DAw56XW04JCHqjs4OTI2FjuLAGlpbNJ4pePQj7VMrOfJxvAOLJDx/S+cLx/wmib6zhWgrZ3ZL28z7cCnrXung1J/pj5u3cqr4aIC0Mc9lqJRs8H85ee8j095/Mfh0Lwyv50/N972O38vVyL+oK/2t+rUj7ng8mNsf77yqP/6XCv2QdOHfsFR3xq8XpJzPhwjE6n6B9DH6TQLKKc5ORKH6x+gCwQh2qCO0MdlkRhXgsobVxx1s9znLkv3HsBLv2zC4Ve+APEH/xMyFoTohzig4SnUiGkcjUbe7vUbXAtcSpUHFt9flP30EyEsk9s3v+3EwmqlcqPvY/qTEDKIA+ZtfkyAZzfYbbRg/w2/eq58cBhseWLz9reIVsupe1Zfsy+1DdoZzfQkzvZZ6MsTS+vVOQF+Gbjnku3Pl+/jWT14jI4pw8fTenlHTqEFD/anecD49z3/g2jfQs3ok/ANt534fvmw8YG+299yPHrxr1T+94qjbvpIn0zpi5ihX3DI15/OZwLLE25itDyEJlBxD8ooM4cQ6pGjuQFgA9GbXIRXaWjjbXL017sfffN3+uLhXVwIJz9OeHZ1VxYdMjv7eKt6uA98LMTZnvRhhRtXX/lBse2IVvaBTj/4uG8fbYaNxFvVY3yEQeW+Tvyx7PAbfxFWQl2cUJ6vg4+zPgt9nfL6hAwUhfXoExvWnjCwS+Gja164t0z0H4ZPWhXYg0K7fJt9nPVZyLYqJAj+a9lhN210eFcAX8DL6y8jv6P4W8ewmXYTdqVSX5g17tBE8iDPPp/m4/QzlADOQlxIxwq/V0OO4YEbbj3hrfLsoZ7wYVuefT7Nx9vaL5YnvmjwgsVaSP+6+5E3/Y/h8YZpMtQLjidWH7tK3Pcct17Qz0rA4V/6mBDmND1AI5VKcw2UV3buUD2gNMVkp3Xh1/c8+pf/QFIJe/MABxhaA29V/EED3B90lNEIjQciJxHbqruB0jeu/p2Xi45/U6z9mMhgFnY2qVWq0b2dGKpvy42D75svO5sQG2NhfRvN4pHiJk81c4GSuqfK0yUD+8S1c3z7J0Sr3aATJ3CoYnmWr6+fgz5udplNjTjkOD+Ewfc68XseTygzcdf9ubibe9P4i0ZOp3QxC9nY8BLgogv0oY/QF/BWBTqhUD/wAmf7Zmh1chVv+cbbTm77m0EmffD7Dbed8FrR/bPoGTa0Kr3abz5W6SLfoPRkfYXx11Yc9fI/bNXndNKHesERT9Tf6idc4lBOrh4UV6sfCe3ABdpFR+sE55/KczKAS7Ru2X2f8PzpDMhs6RvziM0l+MSNgliI53V0GPRjS1w5bQQBbSrZAdrEMCSEjbcd/664Xv+O2CW3VFCKsV/9LDuF0ov4J96tsqCjKxzQSvi/x9uTOO6+uDHm7KOt1Ad2k6bxD6K3r7/td87svp/uWjxx23PeLFn2u5Zv0jPGvWywlZB2E3bXA7lT+yuV3hcc8gVlNzZMV0rPwmz+q59ll/rbcLbL2l/0mx7lF7Tli7EWc8adUOPfx/EfhLXfp53DBDfcfsKp8kT2v4u9VfoCsN/2Ixc07oRwQhj+YPejjn5TGF4o18yGrwztgiOOz5ZghW+UUagrXjgXISPUYY5JBD5FEoPP4RoEJRuNkw14dAA6frBrW8AweLw6d468tvwX5WvL4Y8pFsRFY+PB3kT6UjgpG+Rk2pvcYlqtv+2kZ62/9fiv1qPg0zLi9at7tKC3HtkasNl+oWhOK4TH4/DO8LDrRjvua2FwtbRKft206SohenUv3OtEZqO21oI0HGGYhlH9Gxtuec7ZncjrhWfDrce9VTq6KK8t/ISS+MvhSgTubAX0cdZPAu9dccR/r56kvscqeg/QYk2o85qjtbIn22nRFzjkMcUn0adpa73TgqwunR2zdZ790Xmb15yoL9TrTFbxXHJl43eienSZrB/n+pr33rMvpU38w/gnu++512vD8LPulzN777WolkO74HjiF2tfJg/b7APDO1owOL4Gfo8Guq1IHMQCBgsPXcjE43I38DUrj/h5z68kVvnlLvFAEjNvkrRpCCwcREAdniwC5VhpoGPD8pHQx1kv1dNcnrzlhcs33vqcVz5x6/HfCKKxO0T/1w3WfvjCinzCvJF4J3Dlwf+9Rbz69Va8OkaksrU9jINB47eJ0ccthqan1M4R7D823Pact7Xqt1f6hluOe6/I/pz0LXOb9ZfC7qWaDe3tlw9CU/smAD6PMu8Jk7yHHcj9VvlPO2EfcUAfR13xpRoF8q2+yeOf6iX6qK0O0m7CNvZLbJZPjE98oXirOuth423HHS6vcLhSbFqEvLHcSWFqN+MyNfsb5YW3jcSLXznsv/NV9BW2ziKVwyUhOa+ZjEBx0KGWOCBKpl4vhwgNMKda+WWlEVbiP9zz6Nt+Ykzlvh8eSFwuA4+/aQO5FhLQXC8KESM7xlxjPHbc9NscKk8iBxjH1fWrn/OGoC5XcatyQQxF0AAooJYsgZWOP3OYyIJMFMj15FfqMpmEoXyqimSr7C56HFsPR4+QD8S2eIcdfsoVaD/Uo28B9TgIblCki10lqP5bPai9BU3UryLKJstm+eBJYqcNQJBNbEbRug7slzdzVMVnn5NF2tmVMH7/VL8Rtn71CccG9egf5WHyF6giTh+85xTfEND3nUI/hwNqwWu4wetex92L/eL72vw5wcUmsMc9sgeqyNZp/qOnbPzNFpOF+ib78bBIgSWqhhsCuYzCHDF/iv9hmBSzrT/j3wl81eO3HPfJPZ69+L1heF3RF3C0y7zdptXHHzBRi6+WPNoNMRiU/S7+6xbOqb508RHX6Q9E5uk3LLShXHDgMtnOndvOwH1NDig4zHCZQFw0ccmTtPx6aS8VTHYdzaAkyY+JKP7nvY5Z/Xm0L0v/PcBYEWYnoGyPFk+Lu9a5E7YfM+BO3py4Vr9E29RsgaAnlBrizhMK4i0fH5Ocqbuccfx1mwxDgdaf7OV+iE7cINTw0TOF8tNUMqdo3gjRZEUuT5UPOydKUddvQfaLK8wXBoNowdwFP0z06BBZcfR//eSJW46/Q8bCoVSdUCdPyLHzhQDzLSBKU7yUqFW6o92Evr5gkOOXisRT1t963MVBFH5596MX/aTTE0e85uy5G8YeeL4s9d4S12vnqivE+dqHC4L2qycAsyjbvy1AzCboQ7sJYabik9gvi5zLFx9282No33ORHyNT30q+UEeVxVwXiGL2WMxxTF5AFLUHbZwlWfsloZWvqN28BSMbdo6mV/QZd8Ksvlk9wEcerevM/gvW3zr67A23HP/n8hMUXX0tGeeasfHxl4Rh5Qj5APNb+Xbip7I6tTtef8ex+0yMB9eIy/WKvHO9NqPdhLSN8crK7sX+kcrI+YsOf/n6OH55savJrLIdH/+tfEazFf1QLjjGdm5/g2TdPLPHjfQ84zgrEGZmB5IJIYmnChUXBj/c65gVf5onuqT17gGd0twE2CxFplUNKeOK6FhkjJd0g1bD05vETxorzZfv402fWDFJY2I26dqbHCQ54fCGCYDM0iR7hcV1bipDc8dLaL1Mti/U/usXHXrDbybrfZI6vAnRJtsB2y+fwquy2HibePNtG24d3fL4L4+7RmL233Ll8fGoHj4ezqmsD+tRRZ4P2LMSxHvEUbSXROa5T4zf92IJ66LQWx/qlQpLEDUVphQdf5lM5dsw/SouUTXRLM38OWvK+c/E75e6GTmLD9p7485b78NwaNFTYfl/knwYkIXzcT+X24o/qFbCm+TK2T2VkeqmJavqWzbfvmDxRLxzz5Ew3GuiHu1ViStHSq6cNj4+fpxMGRV9ZicIbhdzul5wBGPBp6X9ARlXtDjsv/31qHbD+luu0P6Y64AoufkvdAZHhwr4wJxT2snLadJECoMr7hLiIagYygWHBO88m8BttUv3ICmAG8REYjggima50lq6T3kgQ9junT9/0TmdfprSDspdhx6owcMteEl3MZNU109lnGBd6NJzXmMONAttHDL21XwMapOPvQ4617CR24h+tii/kK21yyk5snzUzFGc9klPDfrTFta7bj1AyQaz7Wk3IXrkWPCEeGiDRf/hVXSFrpy7/+eeGLvvL6TRvpQIATqmEh2Kt1+uFuA9HfKVQtnsIlQQT9TUy7iihBnA9JM9EHfkDkRfi+Cg4i8K/OceR998HTSZWrEraYw7YZfxb2v/1HRs3zoML62v/+Wxj0gUnp7PXWj+46V3x4sTjueFyXCiHuy8BV6056InXCZFyCTNn3wtu6HKFc8ljbfsbE7Il1Gs/YPO/+z8lTf/0WL4Y+guwWy87cjDZZI71oLFjAD0cVfrRiUmRZuUhSsdqcbk753lstjYKpehzuz1JT2+yBLP9wASMfcPscJfi5jxRA1oOAev5QDaIhf4h0OlGVnrQLN8Ma5GfkdDnmiueBCSHK2VftqXp0G2f62HyFZ/sBt/gNoX1FCFobSz2WB39ofb51QX9vx7CeFhl45L539nurTWD7qjACrubFWyh7O+CRZmvyplO1URO6ejg6avo8Hn6ncPgs/RABkXQhGokgghSZ5/+Wsc96tYzHuJv2hAuwlVWxyYzdgPqNyQ9pjB4Ff8tfBv4fa7/jX2gqvTCHt0ji42KAo+1v+M3Wa12T209ltcNF9axAdWodA6HCoNZA9nvUFtoruhW3BMTNTPT9Uz49QSmOUSo1WyGh9aO+uzUNrjl/MqYXjuymNuuSPtp8QG5gEudwGxIVSEOQkLvTShgaA0pkTalvLAA5ylW/6mDiCIQoA6HNDH2V87SN2oL8QBB4RI2ymk3YQqGnwojp9tK9Xgc8uPvFG/kmgM3e93f/aSi0XeOmvJDnDEToE6fMjsVz/4vjUjUtVpDn1N/4OP7bQNbWUDEEkD6nCBcu3pypXH/OwmbdaPnYjuNf4d298PPdvJiOPrW7LQ1/Q/3AkccBD2sy/2D0WBD6qwL/Y/dPZDIRQXkARXRMiuvsfxP1QLjjh+4Ugchee2NNbZnILJnZP1jS5UovCv9zh2td3wSgWVWL890CIhbdGIvJWpFTwy8Ah9PKknXyJP2gBvMSBUFmrZTm7Qmnz05doSksdBv23iDu1LBVq/mChA44SRhawD9Ns6gX4fppfpSnk+TXGRQWjyKFeg+kBVmQirlY+6LnoGuL0orvkT7Y9SfBuAD6H99ANUpu6AihcV/0owFo5U/pRu6gsU35rOBhWnHfA9Nj0rM/aAKITWTilsl7Vf+YvdhXPCH6uuqi/Um0w/p7MbR4XbD13ajP+evMN5QOU7m2k3oZLNF7DTt3Uq47+r+Kt+ogMgdXBQ9fF0VD+AD8XxT3X8D9WC47c3rz9dkmEvBiML5ROFBgnQx8nnOxC4PtrhIHDZvrr3c371YfNguR+IBzIJi3GpsRGguMZSiahooGk94oZq7BTxoKD+IPFxqcovvgzB9dBBv4qN3XATzaCdFUI9ytjXQMNBpl77QE5KlfWX2tyz/WHwhX69Q2aPY395hbwaVd6SaIW2DrX9omoyBzjcqd8M/CALrocO+lVs2Mp++XHHD+1+5C/wMFwfS5oL0MXXzUsYJo726+e8j/dRqa5FqV9C9wOCg8h/0bCf8e/aYDSAnb6tFOLTBNeYOmj5lsZcBFi9g4XE3zq1HBLc78OvStR3yJTHv5MzVA+NysLzPHw5jIbDSOAc9E7nlkCWI9rCIBsKTcnhL/bee+lbWzYuKwrygMUkjSIjalHGRIH7tpwsVQk0YSFOCLqHN0qTOqwsMch1tQlekU+aa8o2cpj0zXvHyB3Vx3VCPKlvo2+W35Rt7DGlQb0p2h+G6+fOm/cB2NKvMm9R5T07tkXyeuZ4j6w97fTN8qe2Mmj0BWAf7IcM2UwaEMEKjr8sNn658tlL+vqbMPqlWOiNQlf5eB5N6hu9CcLk9kPkIIpo8UNR+Q1pdGhAo8bt8inxBZtDeQ9vlCZ1bexHU7aBKM1XNwZx3EtB7KjUrpD/9Fniq4Z46KUA9avV0+N2NDRXOLbcfOzuMtm/EoFDEmLDxEGoOAILmvsjDqgbUgm4phTTCu4Jfjt3bvWs8Ok3Ja9wTpxVIgV5AHFA/CDeoIaJuIuhRQknXYsauIGzEGd9FoKPPMA1Xxz0cdTlF1VQqkxf4yENR8St3vpqrW+Wv2j7ZQC/v98PPy991i+eEMPf1eiL4bQfOg42/uEOeRXc+f3+dhsmYtpB6NsGWt7m8wD3c97HUTfIUqniq8Izdfx356nGk2jjfFH0+Iemfr74Mffx1hY16mt8pOGIOKDNe4Tsl7CxrfHTfqsbom+pbI+2nyvpqb89kYwsGKvWmPKNBuEIdBTWZyCsDYNx+bnu16w8avUjxlvuB+EBiaX+IX7AkphaTIQoNMvGFEIxnya4tnVQj4gD5mxIF9ABfZy81gXyxIo/KNmOMK895RBCCnAW1Rc091ek/dLLFbsfc8uX2Hc/4V7H3PJNuTL0YfqC9mYh+pwu+7O64NiPmY+Tt0lfFzvW+218PKkPg7euOPb/t3etMXZVVfieM3f6VCxtZ4YpD1tUhLRAOzNtobwMglhNeBiRYtSUABHjDxOj+E78YQw+0R8S+SMxEiQSFDUgjxgaUAq10047FJGBQqEPoEUstPIovcfvW2uvc/Y9c2/n0XvPnal7z9zzrbPPfq1vrb3Pvvuex4YmvDPFWc98iYiP+JND2TOZWOPjt9mXLa2rpekw5/QNj8IYDzXT/00nH32dfdnSHNr+emvyWMnBKzjSLGIv7ImtsJ1c+o/cf4xHw2F8Uudh+mf8VE/OJGnLNquphJjKdSS2ROO0TSabspKaaSWXpE7VZTkSktJ1XcseH9PT5zRj2DaEAbEpSiLyo6NAOgERmyLObCod1NIxLYMhRS6ZOvRlicRmWIf34jSN8wvzGinOtQvysPYwv+nAAlz9gpAlu0NtWVVzmdlVCzS9DGvV58WlelvBUr3uxHE8VJ5V/qwW3pxtx5JLvg3V/jwR9afti7Y/6vt+R8/G25vBNk9avu+J7c3uhp79x69/c5806nMDE/2wWf4/fv0P3f/99o9axuPiaSIzk6Hkb1L/b5b+vg9avzcUfWDUFNkHuePQ9DaUdKa/7EyQFY6X1y1cjA63mA2lckSRcVIwtGmFIVKqsg79vCxDyomin3Uve+IWp2uAohjgmMZ+7fftenXTcAxENXaGUgY2KapdOYiZjekPIhOZUP4tT67MUZTPprD8usGOEV07DNkOqd8hZQmGtQodh/542uTrcVy5bPb7+vfWKrJRcXzFdTTzXbhrTJ7AqMVSNwbRUbkvWn+/PrE62mJ/TbN/FP0Bk42GPnNDiXTbovy/uPlGae7ijfegM29J+0GVwp7eFIvSn+5r4wDltK9ix3yb7RlLcJPFovp/S/zf+DCOhLex9/8JscLxTkmfvSEGg2JyAskpRJJlbHYoPgNDG9rTRw0x63qga+mirxhPAVvFgDtByahjndohbKmdVNG3/2hb6+bY8AP9g/eIRJQP/YgyUWTuMq5OECfDMaIvu+Q8sTEQVc6QsRoMNWUWh/hce8aqP75M7Eva4pVzFm/a4iprKnSc/PfXZ8Qx3jURbVJtWqt/Xtli7B/d1TntA6vAgW/YfFMOax9PyIRrOG4P5Z+5Wsalf66MZu2SL7z78FtaPnUTJTOEnmP1/3xbx6X/GPjN11d73+lWQP/P199w/f0xz5ddxTrm0ZLZuKdxxgETUrbgyxNghSNZ39sOr+O7U9BCfAwpy/KNQ8iimENVUhU31QxhhKdnTGu/go/ZtbiARTPg7CnVUq4dfJ+mTLsaUtZSDFmGykSRnb9w4Ko1YFvNmho5+G2EOeVbif62mE5SJV5zZOVZuVqCtlfb6LcdWV3Q/NY+jbQ4S5OhX4bpbUhNtVZFELMviaOPdi0ZKPTNxu/u2bh76rTp5+P80a/tbY3+yqLjwphpsv2h7x2dPbMulyexZmZruMRvfmZ3w7z9G6F/wxs+QoFzlwz8EX7z83rJ1J+y+T11bqb+I/X/eu0cfbz1de25ms/ihpcy0fT3x1CVYRHvnKztHX//b/kKx64K3gqbVHiHiljDUHecoaiwnVAc+sSkZsQxzEdeS8rli2edNnhYT11MywzCuBigfeQDu6ZYw8a+HSnLYOOQcv7DE7k5vZzU5Usn/INoX0ANXX4qkJYDQWQiBR5zKLJrI6e3MsWVtjgdqBP/DF1axlnI6zPW9GyK8UDZ+zwfJ+3nFT3ZML14J0w5af8wGvRwi/QXLoq0P17+9auO3pOubPQdKcapjxW+Ldb5vaFn+9QPDld/v86i5I6k/avoIY9ZPzFk/dTV0PQ2bIb+7OtSLpECgqHuHd42r08D+3/h/t+o8U+/4imvLZ9wJMnB1ZmJbeAm1vowpaXxZZcWjy3H8U/P6338nzwaQqsYwMvb0Iv5obkMKctg45CyJlEUmYMus/GkLoNRhpKbpmYpLAMfjhmGKnOiwDjNNxztmObDVvITfTktX9qigxLbxbJTdPX49VFX1tlQ/UulB6eX2ns7+vo3oMqWhdl9/Xs7e2afH8XxjcIDWiK6OjS9Dc3uhqQYbAvVRP6JrR2KLNxpuSxHcjhUmeojJ4vBR7l3dnHt8O3BMqo/zJflt7KIqRwlb2Px9wudvYNXF7VKGmMkLkJ/sld0iPr6D0wptX8KFL9Cm+s/pYlm//EzYz7WlP5PRydpZIzgkHJT/N8vHxVIPUD6J+tLkS3BQcYdSn+9pBaJEFo64XhpcFEX3rS3UpRAY8QBHYo7QpkUPcXS9F6cKh5/s3v50N1ULITWMpA5oHNKGI2OSu81pMx0hiIjjSE9mYcNfVk9P0tr9VFryU8BQepyqLKrH56FlEyCYKh7/lbqZAok0Q/bTFnbzjIpE3253nFmlnZoIZKXcZZedUUFKA8J38At3d/o6p39kaP65NkYftNaIvPbflfvpi+jeTiBJK/7Ovuy6ePHmd6Gprch81Trr5xrXLWs/Cj3lkfyi61QjgtSF2SiyiPYPyo939YWn9PVt+mXVkYRiAUO8QHTJdOPjVfdSY/J2fGMs9HpX4Q2w+vAZPX59nLblVDyzQlt/+FNHzkGF+CYf9EGlIm+bMcRqX5IY7o0hmI/lzezL6pvqP1H8P+ctmwmg2sucOzj34RZ4ajsf/szeNNe2YyjijkNRc38xo4RfZk2iW7rXv6vH+RzhP1WMaA2kk4EW43axr5ZRcbGkIL0AId+b6ijptbPbNoGJrM4X86OWzpWmnXOdMBALGULVla9/Hp87PpjIv7XqNR+amffphuKWNI3fUaLnX2Dd5SiqUtA0b3M02j9xeZmd8Mm2h8a8Ar0m6dNKS2eu3jTutHy0PB0oisJdR/RmbW4iAb4P0trRZizZOCBtlJ5JZzl9br1F6C/9Vm2wWTrp3XbNcKBye7/9dqvY52OgzbuGeb5Mw4N6bMqZ+S1dIUD126sRouy1phM9DuW62ymCFFkNxvEbdDru4859uqsoCBNXgb0Qs5SiejLtTUyh059InVyN0BLNs/HahdTN9YuKJWLzfiLHYLF1c10GAfwg8wjUdR2UdfSzRd09fU/cxhFNT0r29e1dHAlXhz3SVT2QmMq9G3uy7VLb4T98WVlY1spXtHVO3hd66/98nX25ebpX7vk5sR2LB1YE5XL5+KkNVS7Bl9nX66duhH2r11yq2J9nX25dnuarb+NdY0a/1o24dj52Af7MG1YpDTqyQH72OVW/3hM4zRVfptgHRKO++KUg/Gl0YI1b+aPh/1WMuBO+P7E0SaKDv3OkrXUlg+Iej2EoaaHR1iZ8A4NhlkpqSRpsUd09RrWqt+P8+W0vJzgp1E51z5r6yHqhxrv4KT3p6gturBr6eNnYTn//lw1E3q3q2fznaUp8Sm4aPc7MNlu44G9V3g3HAX/tLWG5tsfbRvCe1Gu6ew7eencvs2PTQySm6v/O6UCH8RRh9DOJQMD0fS5PfCO3zCJ9SFN3lz9pS7nh1avYZ3mjiqaZWg5GU50/ze9DamoyURfrkeCn0Zly8cx2ev/roCWvbwtOXhgNZvkB/+CG43HUo4MQJoSHLjfx/Qo0r+FC1Ium7viqR1+OUGeQAz44wealdsVp+YSnTmuympnasF9Oq6iiCo755F45xdMmaV1PoMYudpajml55kcaZWW7AiXSl11GB5zpq5/atw9OiiibZtXp02h32FLhjaxsNS8C/W1pWunWrlMHX8rlnFS7x5y+eT8a/L3khTN/8vKu164Cq3gGTrKgnv7GA+2uNlfOVVY7kQC1u9kIEWSNmZ2JTNZ0zGFpNQG3w+xfivqxonFDR98nfs+Hm5VKzXtSOVs0uqADNfXw/VP1Mp1Q0mHq37IBP0dC58I1+xD1uV3rF94SR9GNlUpyOpM0W/98+Xl/yTVzVLu48YEtr53Woh3mdv9/xj/HTkv8Lxl6/9Sdeyq8gAgOxgHbDQ4C7HjaOnUOr7PJKEOTaYI4jj5/zPKnH61t6RDbSgbMpmZfIoOeYDKbj3S8pg7OP3iME1J4jCD3h5XP4/Qz/KXHXZxE5DZS3iHS549LsQnK1uKH1+/8G77Ka6eextntMTyW/L4ZUfl+Pt8iV/2k33UvSLwpSS6/eff6Jy+CbVZhQnYJOvpRVG6YfRw/9fyjJiHjsD++mLwIL/gdVpFuP6ZncK2WOxEmGpmG2XiX9Y/sqCeNQ3/z/9avb3h6QOzu2/Jgkny356X+O1fhJ9QvJZVkmY0J1Sm9vcPQ38YCYqOCcDtC/6/n36ZrveM12+g1XcajSTD+mR4tmXDs2H3wYjRgNhtRbXhjUtF8wtBPj1nxT7uXP/NrxoUwcRkw+xqypb48Ust1ENZvPpKWrsHO7VyFZcmu5yTV5Vf7FMtDA/RbsorptyrsMkYhRT8OstVNlIDljTh+Az/v4Se96A0Utg9ZdwJ3YBDZjju1t0Xlts1JW7TZrQJYxiMa3e2keLR16Z7k2Q9Ne/nfe1biW+ylGCDPgX0WjFb58dof+WjILcCHYIs7O3suX6OrGaOtufB0qUf5NY9X/6yMan8u28w4S9ByydnlNjTkthf7TzsjqhzEzQTRJeiLxzVaf5ZX1f9L0au4ruBhfBG4v9xevmtcZKBMf8ypJdeKG01dTdcf7mF1aHuq/aU6DnvCn0MA9bJJk6atwYWQrkdrOrllbBZuXzv/bgwHHxvW+mEVUnnTkAdVxqB137wz+z5e1D3yw5oVIgIDgYFxM7B7fW837o48C9357EqSLER/PhED1wlYDSnLNKGqy2OHk8l00Ko5JrxZiuLnkHBrFMWb4iT6G27BfOToJQP/GXcjQ8aWMgB/iF75x6K+g3FyLqb0y9CYZbD8fNgYYpWDYN/isiNMwWBHkijCs1VKz+ILwBB85IlSnGzGz2ob5vQMPokTJpOFUAADZpcCqtIqdq8/pfvtt994ARZuy7xBj9nSOJEhv1xEP8Ptgk/NmPGe5WEwUc7CNjBwJDCAn2DaXhwYOj6qHDgRPz4dDZ1morPPEMQr5JK4UsEzSf6Lycd+DA/7S23xfuzviduirXNOH9gZThpHghccWgeulO3Z++oJlQMH34s5wjxMRGZiSgEfiWbgiVI8acA3nH/QV+LSPlwUvKcytbKjc9Hgy8FHDs1vEUcLn3DsWDv/eiytyvMyWDm9JG2Ere24bzP55Ro84XBvnCRnzFvx3JNFkBPqCAwEBgIDgYHAQGCgMQwUflssVkdX6zRDVzFUVmX0an/EYOrqyzyKOQie51a5Mkw2lKuwDQwEBgIDgYHAwGRioNAJxwtr5y/HTOIUWdbAfEN+OnGoP6doHFc8dNVDLwhkLPa/fvyZ2/4ymcgNbQ0MBAYCA4GBwEBgQBko9C6V6GDlKt5ByAmEBu5QdtMLd3EYf0qxIEej6NZjV2z7kcUFDAwEBgIDgYHAQGBgcjFQ2ApH8uz8aZg8XIEVjowhk4m+bCk4D4lK646dF19rUQEDA4GBwEBgIDAQGJh8DBQ24dixq3IBZhWz7A4UUmUrGUSVM+TKB6J3YZZyWbTgufDY8snnW6HFgYHAQGAgMBAYSBko7CcV3P/Me+7dQ0L4KGgGPlGPsv6kIlHpJnqrPU4u7VixfWcaFYTAQGAgMBAYCAwEBiYlA4WtcOAWk6VkyFY1KNuzfIj88FiGlWu7V2xv3Wui2cAQAgOBgcBAYCAwEBhoCAOFTTiSKOHLeqoWM/xbX30ZD2j58XFn7ZA3CTZEy1BIYCAwEBgIDAQGAgMtZaCwCQcuydjK6zfkeg0i/hgMReYKR6l073FnXfM1ORg2gYHAQGAgMBAYCAwcEQwUNuGIytFNmE0c0Ks1ONmwu1UMufiRrJs5fdqqCf6SpSPC8EGJwEBgIDAQGAgMFMlAYROO48/YPoRJxvX48DGiAF3tMMTu2plTZl44u2/r3iIJCHUFBgIDgYHAQGAgMNB8BnTBofn1pDVse3jeBaj0i5hynIe5x1t4y+Mz2P/F8WefdEcUrXknTRiEwEBgIDAQGAgMBAaOGAb+B5nwCpLPLNx7AAAAAElFTkSuQmCC"],["fxFlex","30","width","295","height","295","viewBox","0 0 295 295","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["clip-path","url(#clip0)"],["d","M182.629 183.635C213.842 170.774 228.719 135.046 215.857 103.833C202.996 72.6204 167.268 57.7435 136.055 70.6048C104.843 83.4659 89.966 119.195 102.827 150.407C115.688 181.62 151.417 196.496 182.629 183.635Z",1,"fill-color-0"],["d","M154.81 93.8059C152.146 100.719 149.483 108.164 146.287 115.608C146.287 115.608 146.287 116.672 147.353 116.672H169.191C169.191 116.672 169.191 117.204 169.723 117.736L137.765 153.364C137.233 152.832 137.233 152.301 137.233 151.769L148.418 127.839V125.712H126.047V123.585L153.212 93.8059H154.81Z",1,"fill-color-15"],["d","M158.075 173.411C189.288 160.55 204.164 124.822 191.303 93.6088C178.442 62.3964 142.714 47.5195 111.501 60.3808C80.2885 73.2419 65.4118 108.971 78.2729 140.183C91.1342 171.396 126.863 186.272 158.075 173.411Z",1,"stroke-color-thinest"],["d","M259.352 172.363L85.4595 244.016",1,"stroke-color-thinest"],["d","M122.291 259.352L85.4593 244.016L100.795 207.184",1,"stroke-color-thinest"],["id","clip0"],["width","225.692","height","225.692","transform","translate(0 85.9831) rotate(-22.3941)",1,"fill-color-30"],["fxFlex","30","width","300","height","300","viewBox","0 0 300 300","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M50 237.5V112.5C50 105.625 55.625 100 62.5 100H262.5C269.375 100 275 105.625 275 112.5V237.5C275 244.375 269.375 250 262.5 250H62.5C55.625 250 50 244.375 50 237.5Z",1,"fill-color-0"],["d","M25 212.5V87.5C25 80.625 30.625 75 37.5 75H237.5C244.375 75 250 80.625 250 87.5V212.5C250 219.375 244.375 225 237.5 225H37.5C30.625 225 25 219.375 25 212.5Z",1,"stroke-color"],["d","M293.75 200H275V150H293.75C297.25 150 300 152.75 300 156.25V193.75C300 197.25 297.25 200 293.75 200Z",1,"fill-color-0"],["d","M268.75 175H250V125H268.75C272.25 125 275 127.75 275 131.25V168.75C275 172.25 272.25 175 268.75 175Z",1,"stroke-color"],["d","M137.5 187.5L156.25 150H118.75L137.5 112.5",1,"stroke-color"]],template:function(t,e){if(1&t&&(r.YNc(0,Yi,1,0,"ng-container",0),r.YNc(1,ji,18,5,"ng-template",null,1,r.W1O),r.YNc(3,Vi,15,5,"ng-template",null,2,r.W1O),r.YNc(5,Qi,19,5,"ng-template",null,3,r.W1O),r.YNc(7,Wi,17,5,"ng-template",null,4,r.W1O),r.YNc(9,Ji,13,5,"ng-template",null,5,r.W1O)),2&t){const t=r.MAs(2),i=r.MAs(4),n=r.MAs(6),s=r.MAs(8),o=r.MAs(10);r.Q6J("ngTemplateOutlet",1===e.stepNumber?t:2===e.stepNumber?i:3===e.stepNumber?n:4===e.stepNumber?s:o)}},directives:[U.tP,P.xw,P.yH,P.Wh,U.mk,ue.oO,Z.n5,Z.$j],styles:["svg.small-svg[_ngcontent-%COMP%]{height:50%;min-height:50%;max-width:100%}svg.large-svg[_ngcontent-%COMP%]{height:60%;min-height:60%;max-width:100%}"],data:{animation:[Ni.l]}}),t})();const Ki=["stepper"];function $i(t,e){if(1&t&&r._uU(0),2&t){const t=r.oxw(2);r.Oqu(t.inputFormLabel)}}function tn(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Amount is required."),r.qZA())}function en(t,e){if(1&t&&(r.TgZ(0,"mat-error"),r._uU(1),r.ALo(2,"number"),r.qZA()),2&t){const t=r.oxw(2);r.xp6(1),r.hij("Amount must be greater than or equal to ",r.lcZ(2,1,null==t.serviceInfo||null==t.serviceInfo.limits?null:t.serviceInfo.limits.minimal),".")}}function nn(t,e){if(1&t&&(r.TgZ(0,"mat-error"),r._uU(1),r.ALo(2,"number"),r.qZA()),2&t){const t=r.oxw(2);r.xp6(1),r.hij("Amount must be less than or equal to ",r.lcZ(2,1,null==t.serviceInfo||null==t.serviceInfo.limits?null:t.serviceInfo.limits.maximal),".")}}function rn(t,e){1&t&&(r.TgZ(0,"button",40),r._uU(1,"Next"),r.qZA())}function sn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",41),r.NdJ("click",function(){return r.CHM(t),r.oxw(2).onSwap()}),r._uU(1),r.qZA()}if(2&t){const t=r.oxw(2);r.xp6(1),r.hij("Initiate ",t.swapDirectionCaption,"")}}function on(t,e){if(1&t&&r._uU(0),2&t){const t=r.oxw(3);r.Oqu(t.addressFormLabel)}}function an(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Address is required."),r.qZA())}function ln(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"mat-step",15),r.TgZ(1,"form",16),r.YNc(2,on,1,1,"ng-template",17),r.TgZ(3,"div",42),r.TgZ(4,"mat-radio-group",43),r.NdJ("change",function(e){return r.CHM(t),r.oxw(2).onAddressTypeChange(e)}),r.TgZ(5,"mat-radio-button",44),r._uU(6,"Node Local Address"),r.qZA(),r.TgZ(7,"mat-radio-button",45),r._uU(8,"External Address"),r.qZA(),r.qZA(),r.TgZ(9,"mat-form-field",46),r._UZ(10,"input",47),r.YNc(11,an,2,0,"mat-error",24),r.qZA(),r.qZA(),r.TgZ(12,"div",25),r.TgZ(13,"button",48),r.NdJ("click",function(){return r.CHM(t),r.oxw(2).onSwap()}),r._uU(14),r.qZA(),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw(2);r.Q6J("stepControl",t.addressFormGroup)("editable",t.flgEditable),r.xp6(1),r.Q6J("formGroup",t.addressFormGroup),r.xp6(9),r.Q6J("required","external"===t.addressFormGroup.controls.addressType.value),r.xp6(1),r.Q6J("ngIf",null==t.addressFormGroup.controls.address.errors?null:t.addressFormGroup.controls.address.errors.required),r.xp6(3),r.hij("Initiate ",t.swapDirectionCaption,"")}}function cn(t,e){if(1&t&&r._uU(0),2&t){const t=r.oxw(2);r.hij("",t.swapDirectionCaption," Status")}}function hn(t,e){if(1&t&&(r.TgZ(0,"mat-icon",49),r._uU(1),r.qZA()),2&t){const t=r.oxw(2);r.xp6(1),r.Oqu(t.swapStatus&&null!=t.swapStatus&&t.swapStatus.id?"check":"close")}}function un(t,e){1&t&&r._UZ(0,"div")}function dn(t,e){1&t&&r._UZ(0,"mat-progress-bar",50)}function pn(t,e){if(1&t&&(r.TgZ(0,"h4",51),r._uU(1),r.qZA()),2&t){const t=r.oxw(2);r.xp6(1),r.Oqu(t.swapStatus&&t.swapStatus.error?t.swapDirectionCaption+" failed.":t.swapStatus&&t.swapStatus.id?t.swapDirectionCaption+" request placed successfully. You can check the status of the request on the 'Boltz' menu.":t.swapDirectionCaption+" request placed successfully.")}}function fn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",52),r.NdJ("click",function(){return r.CHM(t),r.oxw(2).onRestart()}),r._uU(1,"Start Again"),r.qZA()}}function mn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",3),r.TgZ(1,"div",4),r.TgZ(2,"mat-card-header",5),r.TgZ(3,"div",6),r.TgZ(4,"span",7),r._uU(5),r.qZA(),r.qZA(),r.TgZ(6,"div",8),r.TgZ(7,"button",9),r.NdJ("click",function(){return r.CHM(t),r.oxw().showInfo()}),r._uU(8,"?"),r.qZA(),r.TgZ(9,"button",10),r.NdJ("click",function(){return r.CHM(t),r.oxw().onClose()}),r._uU(10,"X"),r.qZA(),r.qZA(),r.qZA(),r.TgZ(11,"mat-card-content",11),r.TgZ(12,"div",12),r.TgZ(13,"mat-vertical-stepper",13,14),r.NdJ("selectionChange",function(e){return r.CHM(t),r.oxw().stepSelectionChanged(e)}),r.TgZ(15,"mat-step",15),r.TgZ(16,"form",16),r.YNc(17,$i,1,1,"ng-template",17),r.TgZ(18,"div",18),r._UZ(19,"rtl-boltz-service-info",19),r.qZA(),r.TgZ(20,"div",20),r.TgZ(21,"mat-form-field",21),r._UZ(22,"input",22),r.TgZ(23,"mat-hint"),r._uU(24),r.ALo(25,"number"),r.ALo(26,"number"),r.qZA(),r.TgZ(27,"span",23),r._uU(28,"Sats"),r.qZA(),r.YNc(29,tn,2,0,"mat-error",24),r.YNc(30,en,3,3,"mat-error",24),r.YNc(31,nn,3,3,"mat-error",24),r.qZA(),r.qZA(),r.TgZ(32,"div",25),r.YNc(33,rn,2,0,"button",26),r.YNc(34,sn,2,1,"button",27),r.qZA(),r.qZA(),r.qZA(),r.YNc(35,ln,15,6,"mat-step",28),r.TgZ(36,"mat-step",29),r.TgZ(37,"form",16),r.YNc(38,cn,1,1,"ng-template",17),r.TgZ(39,"div",30),r.TgZ(40,"mat-expansion-panel",31),r.TgZ(41,"mat-expansion-panel-header"),r.TgZ(42,"mat-panel-title"),r.TgZ(43,"span",32),r._uU(44),r.YNc(45,hn,2,1,"mat-icon",33),r.qZA(),r.qZA(),r.qZA(),r.YNc(46,un,1,0,"div",34),r.qZA(),r.YNc(47,dn,1,0,"mat-progress-bar",35),r.qZA(),r.YNc(48,pn,2,1,"h4",36),r.TgZ(49,"div",25),r.YNc(50,fn,2,0,"button",37),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.TgZ(51,"div",38),r.TgZ(52,"button",39),r._uU(53,"Close"),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw(),e=r.MAs(2);r.Q6J("@opacityAnimation",void 0),r.xp6(3),r.Q6J("fxFlex",t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM?"83":"91"),r.xp6(2),r.Oqu(t.swapDirectionCaption),r.xp6(1),r.Q6J("fxFlex",t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM?"17":"9"),r.xp6(7),r.Q6J("linear",!0),r.xp6(2),r.Q6J("stepControl",t.inputFormGroup)("editable",t.flgEditable),r.xp6(1),r.Q6J("formGroup",t.inputFormGroup),r.xp6(3),r.Q6J("serviceInfo",t.serviceInfo)("direction",t.direction),r.xp6(3),r.Q6J("step",1e3),r.xp6(2),r.AsE("Range: ",r.lcZ(25,30,null==t.serviceInfo||null==t.serviceInfo.limits?null:t.serviceInfo.limits.minimal),"-",r.lcZ(26,32,null==t.serviceInfo||null==t.serviceInfo.limits?null:t.serviceInfo.limits.maximal),""),r.xp6(5),r.Q6J("ngIf",null==t.inputFormGroup||null==t.inputFormGroup.controls||null==t.inputFormGroup.controls.amount||null==t.inputFormGroup.controls.amount.errors?null:t.inputFormGroup.controls.amount.errors.required),r.xp6(1),r.Q6J("ngIf",null==t.inputFormGroup||null==t.inputFormGroup.controls||null==t.inputFormGroup.controls.amount||null==t.inputFormGroup.controls.amount.errors?null:t.inputFormGroup.controls.amount.errors.min),r.xp6(1),r.Q6J("ngIf",null==t.inputFormGroup||null==t.inputFormGroup.controls||null==t.inputFormGroup.controls.amount||null==t.inputFormGroup.controls.amount.errors?null:t.inputFormGroup.controls.amount.errors.max),r.xp6(2),r.Q6J("ngIf",t.direction===t.swapTypeEnum.SWAP_OUT),r.xp6(1),r.Q6J("ngIf",t.direction===t.swapTypeEnum.SWAP_IN),r.xp6(1),r.Q6J("ngIf",t.direction===t.swapTypeEnum.SWAP_OUT),r.xp6(1),r.Q6J("stepControl",t.statusFormGroup),r.xp6(1),r.Q6J("formGroup",t.statusFormGroup),r.xp6(3),r.Q6J("expanded",!!t.swapStatus),r.xp6(4),r.Oqu(t.swapStatus?t.swapStatus.id?t.swapDirectionCaption+" request details":t.swapDirectionCaption+" error details":"Waiting for "+t.swapDirectionCaption+" request..."),r.xp6(1),r.Q6J("ngIf",t.swapStatus),r.xp6(1),r.Q6J("ngIf",!t.swapStatus)("ngIfElse",e),r.xp6(1),r.Q6J("ngIf",!t.swapStatus),r.xp6(1),r.Q6J("ngIf",t.swapStatus),r.xp6(2),r.Q6J("ngIf",t.swapStatus&&(t.swapStatus.error||!t.swapStatus.id)),r.xp6(2),r.Q6J("mat-dialog-close",!1)}}function gn(t,e){if(1&t&&r._UZ(0,"rtl-boltz-swap-status",53),2&t){const t=r.oxw();r.Q6J("swapStatus",t.swapStatus)("direction",t.direction)}}function yn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"rtl-boltz-swapout-info-graphics",70),r.NdJ("stepNumberChange",function(e){return r.CHM(t),r.oxw(2).stepNumber=e}),r.qZA()}if(2&t){const t=r.oxw(2);r.Q6J("stepNumber",t.stepNumber)("animationDirection",t.animationDirection)}}function bn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"rtl-boltz-swapin-info-graphics",70),r.NdJ("stepNumberChange",function(e){return r.CHM(t),r.oxw(2).stepNumber=e}),r.qZA()}if(2&t){const t=r.oxw(2);r.Q6J("stepNumber",t.stepNumber)("animationDirection",t.animationDirection)}}const vn=function(t,e){return{"dot-primary":t,"dot-primary-lighter":e}};function _n(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"span",71),r.NdJ("click",function(){const e=r.CHM(t).$implicit;return r.oxw(2).onStepChanged(e)}),r._UZ(1,"p",72),r.qZA()}if(2&t){const t=e.$implicit,i=r.oxw(2);r.xp6(1),r.Q6J("ngClass",r.WLB(1,vn,i.stepNumber===t,i.stepNumber!==t))}}function wn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",73),r.NdJ("click",function(){return r.CHM(t),r.oxw(2).onReadMore()}),r._uU(1,"Read More"),r.qZA()}}function xn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",74),r.NdJ("click",function(){return r.CHM(t),r.oxw(2).onStepChanged(4)}),r._uU(1,"Back"),r.qZA()}}function Cn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",75),r.NdJ("click",function(){r.CHM(t);const e=r.oxw(2);return e.flgShowInfo=!1,e.stepNumber=1}),r._uU(1,"Close"),r.qZA()}}function An(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",76),r.NdJ("click",function(){r.CHM(t);const e=r.oxw(2);return e.flgShowInfo=!1,e.stepNumber=1}),r._uU(1,"Close"),r.qZA()}}function Sn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",77),r.NdJ("click",function(){r.CHM(t);const e=r.oxw(2);return e.onStepChanged(e.stepNumber-1)}),r._uU(1,"Back"),r.qZA()}}function En(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",78),r.NdJ("click",function(){r.CHM(t);const e=r.oxw(2);return e.onStepChanged(e.stepNumber+1)}),r._uU(1,"Next"),r.qZA()}}const kn=function(){return[1,2,3,4,5]};function Tn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",54),r.TgZ(1,"div",18),r.TgZ(2,"mat-card-header",55),r.TgZ(3,"div",56),r._UZ(4,"span",7),r.qZA(),r.TgZ(5,"div",57),r.TgZ(6,"button",58),r.NdJ("click",function(){r.CHM(t);const e=r.oxw();return e.flgShowInfo=!1,e.stepNumber=1}),r._uU(7,"X"),r.qZA(),r.qZA(),r.qZA(),r.TgZ(8,"mat-card-content",59),r.YNc(9,yn,1,2,"rtl-boltz-swapout-info-graphics",60),r.YNc(10,bn,1,2,"rtl-boltz-swapin-info-graphics",60),r.qZA(),r.TgZ(11,"div",61),r.YNc(12,_n,2,4,"span",62),r.qZA(),r.TgZ(13,"div",63),r.YNc(14,wn,2,0,"button",64),r.YNc(15,xn,2,0,"button",65),r.YNc(16,Cn,2,0,"button",66),r.YNc(17,An,2,0,"button",67),r.YNc(18,Sn,2,0,"button",68),r.YNc(19,En,2,0,"button",69),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("@opacityAnimation",void 0),r.xp6(9),r.Q6J("ngIf",t.direction===t.swapTypeEnum.SWAP_OUT),r.xp6(1),r.Q6J("ngIf",t.direction===t.swapTypeEnum.SWAP_IN),r.xp6(2),r.Q6J("ngForOf",r.DdM(10,kn)),r.xp6(2),r.Q6J("ngIf",5===t.stepNumber),r.xp6(1),r.Q6J("ngIf",5===t.stepNumber),r.xp6(1),r.Q6J("ngIf",5===t.stepNumber),r.xp6(1),r.Q6J("ngIf",t.stepNumber<5),r.xp6(1),r.Q6J("ngIf",t.stepNumber>1&&t.stepNumber<5),r.xp6(1),r.Q6J("ngIf",t.stepNumber<5)}}let Mn=(()=>{class t{constructor(t,e,i,n,r,s,o,a,l){this.dialogRef=t,this.data=e,this.store=i,this.boltzService=n,this.formBuilder=r,this.decimalPipe=s,this.logger=o,this.router=a,this.commonService=l,this.faInfoCircle=N.sqG,this.serviceInfo={fees:{percentage:null,miner:{normal:null,reverse:null}},limits:{minimal:1e4,maximal:5e7}},this.swapTypeEnum=G.hc,this.direction=G.hc.SWAP_OUT,this.swapDirectionCaption="Swap out",this.swapStatus=null,this.inputFormLabel="Amount to swap out",this.addressFormLabel="Withdrawal Address",this.flgShowInfo=!1,this.stepNumber=1,this.screenSize="",this.screenSizeEnum=G.cu,this.animationDirection="forward",this.flgEditable=!0,this.unSubs=[new h.x,new h.x,new h.x,new h.x,new h.x,new h.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.serviceInfo=this.data.serviceInfo,this.direction=this.data.direction,this.swapDirectionCaption=this.direction===G.hc.SWAP_OUT?"Swap Out":"Swap in",this.inputFormLabel="Amount to "+this.swapDirectionCaption,this.inputFormGroup=this.formBuilder.group({amount:[this.serviceInfo.limits.minimal,[W.kI.required,W.kI.min(this.serviceInfo.limits.minimal),W.kI.max(this.serviceInfo.limits.maximal)]]}),this.addressFormGroup=this.formBuilder.group({addressType:["local",[W.kI.required]],address:[{value:"",disabled:!0}]}),this.statusFormGroup=this.formBuilder.group({}),this.onFormValueChanges()}ngAfterViewInit(){this.direction===G.hc.SWAP_OUT&&this.addressFormGroup.setErrors({Invalid:!0})}onFormValueChanges(){this.direction===G.hc.SWAP_OUT&&this.addressFormGroup.valueChanges.pipe((0,k.R)(this.unSubs[2])).subscribe(t=>{this.addressFormGroup.setErrors({Invalid:!0})})}onAddressTypeChange(t){"external"===t.value?(this.addressFormGroup.controls.address.setValidators([W.kI.required]),this.addressFormGroup.controls.address.markAsTouched(),this.addressFormGroup.controls.address.enable()):(this.addressFormGroup.controls.address.setValidators(null),this.addressFormGroup.controls.address.markAsPristine(),this.addressFormGroup.controls.address.disable(),this.addressFormGroup.controls.address.setValue("")),this.addressFormGroup.setErrors({Invalid:!0})}onSwap(){if(!this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.amount.value<+this.serviceInfo.limits.minimal||this.inputFormGroup.controls.amount.value>+this.serviceInfo.limits.maximal||this.direction===G.hc.SWAP_OUT&&"external"===this.addressFormGroup.controls.addressType.value&&(!this.addressFormGroup.controls.address.value||""===this.addressFormGroup.controls.address.value.trim()))return!0;this.flgEditable=!1,this.stepper.selected.stepControl.setErrors(null),this.stepper.next(),this.direction===G.hc.SWAP_IN?this.boltzService.swapIn(this.inputFormGroup.controls.amount.value).pipe((0,k.R)(this.unSubs[3])).subscribe({next:t=>{this.swapStatus=t,this.boltzService.listSwaps(),this.flgEditable=!0},error:t=>{this.swapStatus={error:t},this.flgEditable=!0,this.logger.error(t)}}):this.boltzService.swapOut(this.inputFormGroup.controls.amount.value,"external"===this.addressFormGroup.controls.addressType.value?this.addressFormGroup.controls.address.value:"").pipe((0,k.R)(this.unSubs[4])).subscribe({next:t=>{this.swapStatus=t,this.boltzService.listSwaps(),this.flgEditable=!0},error:t=>{this.swapStatus={error:t},this.flgEditable=!0,this.logger.error(t)}})}stepSelectionChanged(t){switch(t.selectedIndex){case 0:this.inputFormLabel="Amount to "+this.swapDirectionCaption,this.addressFormLabel="Withdrawal Address";break;case 1:this.inputFormLabel=this.inputFormGroup.controls.amount.value?this.swapDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats":"Amount to "+this.swapDirectionCaption,this.addressFormLabel="Withdrawal Address";break;default:this.inputFormLabel="Amount to "+this.swapDirectionCaption,this.addressFormLabel="Withdrawal Address"}t.selectedIndex{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(ot.so),r.Y36(ot.WI),r.Y36(a.yh),r.Y36(Ei),r.Y36(W.qu),r.Y36(U.JJ),r.Y36(V.mQ),r.Y36(R.F0),r.Y36(le.v))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-boltz-swap-modal"]],viewQuery:function(t,e){if(1&t&&r.Gf(Ki,5),2&t){let t;r.iGM(t=r.CRH())&&(e.stepper=t.first)}},decls:4,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf"],["swapStatusBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch","class","info-graphics-container",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxLayoutAlign","start start",3,"fxFlex"],[1,"page-title"],["fxLayoutAlign","space-between end",3,"fxFlex"],["tabindex","21","mat-button","",1,"btn-close-x","p-0",3,"click"],["tabindex","22","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[3,"serviceInfo","direction"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["fxFlex","48"],["autoFocus","","matInput","","placeholder","Amount","type","number","tabindex","1","formControlName","amount","required","",3,"step"],["matSuffix",""],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","2","type","button","matStepperNext","",4,"ngIf"],["mat-stroked-button","","color","primary","tabindex","3","type","button",3,"click",4,"ngIf"],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"flat-expansion-panel",3,"expanded"],["fxLayoutAlign","start center","fxFlex","100"],["class","ml-1 icon-small",4,"ngIf"],[4,"ngIf","ngIfElse"],["fxFlex","100","color","primary","mode","indeterminate",4,"ngIf"],["fxLayoutAlign","start","class","font-bold-500 mt-2",4,"ngIf"],["mat-flat-button","","color","primary","tabindex","13","type","button",3,"click",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end end"],["mat-stroked-button","","color","primary","tabindex","14","type","button","default","",3,"mat-dialog-close"],["mat-stroked-button","","color","primary","tabindex","2","type","button","matStepperNext",""],["mat-stroked-button","","color","primary","tabindex","3","type","button",3,"click"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mt-1"],["color","primary","name","addressType","formControlName","addressType","fxFlex","100","fxLayoutAlign","space-between stretch",3,"change"],["fxFlex","48","tabindex","8","value","local"],["fxFlex","48","tabindex","9","value","external"],["fxFlex","100",1,"mt-1"],["matInput","","placeholder","Address","tabindex","10","formControlName","address",3,"required"],["mat-stroked-button","","color","primary","tabindex","11","type","button",3,"click"],[1,"ml-1","icon-small"],["fxFlex","100","color","primary","mode","indeterminate"],["fxLayoutAlign","start",1,"font-bold-500","mt-2"],["mat-flat-button","","color","primary","tabindex","13","type","button",3,"click"],["fxLayout","column",3,"swapStatus","direction"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"info-graphics-container"],["fxLayout","row","fxFlex","8","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],["fxFlex","5","fxLayoutAlign","end center"],["tabindex","19","mat-button","",1,"btn-close-x","p-0",3,"click"],["fxLayout","column","fxFlex","70","fxLayoutAlign","space-between center",1,"padding-gap-x-large"],["fxFlex","100",3,"stepNumber","animationDirection","stepNumberChange",4,"ngIf"],["fxLayout","row","fxFlex","10","fxLayoutAlign","center end",1,"padding-gap-x-large","padding-gap-bottom-large"],["fxLayoutAlign","center center","class","dots-stepper-block",3,"click",4,"ngFor","ngForOf"],["fxLayout","row","fxFlex","10","fxLayoutAlign","end end",1,"padding-gap-x-large","padding-gap-bottom-large"],["mat-stroked-button","","class","mr-1","color","primary","tabindex","15","type","button",3,"click",4,"ngIf"],["mat-flat-button","","class","mr-1","color","primary","tabindex","16","type","button",3,"click",4,"ngIf"],["mat-flat-button","","color","primary","tabindex","17","type","button",3,"click",4,"ngIf"],["mat-stroked-button","","class","mr-1","color","primary","tabindex","18","type","button",3,"click",4,"ngIf"],["mat-flat-button","","class","mr-1","color","primary","tabindex","19","type","button",3,"click",4,"ngIf"],["mat-flat-button","","color","primary","tabindex","20","type","button",3,"click",4,"ngIf"],["fxFlex","100",3,"stepNumber","animationDirection","stepNumberChange"],["fxLayoutAlign","center center",1,"dots-stepper-block",3,"click"],[1,"dot","tiny-dot","mr-0",3,"ngClass"],["mat-stroked-button","","color","primary","tabindex","15","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","16","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","17","type","button",3,"click"],["mat-stroked-button","","color","primary","tabindex","18","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","19","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","20","type","button",3,"click"]],template:function(t,e){1&t&&(r.YNc(0,mn,54,34,"div",0),r.YNc(1,gn,1,2,"ng-template",null,1,r.W1O),r.YNc(3,Tn,20,11,"div",2)),2&t&&(r.Q6J("ngIf",!e.flgShowInfo),r.xp6(3),r.Q6J("ngIf",e.flgShowInfo))},directives:[U.O5,P.xw,P.yH,P.Wh,Z.dk,$.lW,Z.dn,ht.Vq,ht.C0,W._Y,W.JL,W.sg,ht.VY,Ti,J.KE,ut.Nt,W.wV,W.Fj,K.h,W.JJ,W.u,W.Q7,J.bx,J.R9,ki.ib,ki.yz,ki.yK,ot.ZT,J.TO,ht.Ic,he.VQ,he.U0,Mi.Hw,Ze.pW,Ri,U.sg,Hi,Xi,U.mk,ue.oO],pipes:[U.JJ],styles:[".dots-stepper-block[_ngcontent-%COMP%]{width:3rem}.info-graphics-container[_ngcontent-%COMP%]{max-height:60rem;min-height:60rem}"],data:{animation:[_i._]}}),t})();function Ln(t,e){1&t&&r._UZ(0,"mat-progress-bar",32)}function In(t,e){1&t&&(r.TgZ(0,"th",33),r._uU(1," Status "),r.qZA())}function On(t,e){if(1&t&&(r.TgZ(0,"td",34),r._uU(1),r.qZA()),2&t){const t=e.$implicit,i=r.oxw();r.xp6(1),r.Oqu(i.swapStateEnum[t.status])}}function Dn(t,e){1&t&&(r.TgZ(0,"th",33),r._uU(1," Swap ID "),r.qZA())}function Rn(t,e){if(1&t&&(r.TgZ(0,"td",34),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.xp6(1),r.Oqu(t.id)}}function Nn(t,e){1&t&&(r.TgZ(0,"th",33),r._uU(1," Claim Address "),r.qZA())}function Pn(t,e){if(1&t&&(r.TgZ(0,"td",34),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.xp6(1),r.Oqu(t.claimAddress)}}function Fn(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," Onchain Amount (Sats) "),r.qZA())}function Zn(t,e){if(1&t&&(r.TgZ(0,"td",34),r.TgZ(1,"span",36),r._uU(2),r.ALo(3,"number"),r.qZA(),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.Oqu(r.lcZ(3,1,t.onchainAmount))}}function Bn(t,e){1&t&&(r.TgZ(0,"th",33),r._uU(1," Lockup Address "),r.qZA())}function Un(t,e){if(1&t&&(r.TgZ(0,"td",34),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.xp6(1),r.Oqu(t.lockupAddress)}}function qn(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," Expected Amount (Sats) "),r.qZA())}function zn(t,e){if(1&t&&(r.TgZ(0,"td",34),r.TgZ(1,"span",36),r._uU(2),r.ALo(3,"number"),r.qZA(),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.Oqu(r.lcZ(3,1,t.expectedAmount))}}function Hn(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," Timeout Block Height "),r.qZA())}function Yn(t,e){if(1&t&&(r.TgZ(0,"td",34),r.TgZ(1,"span",36),r._uU(2),r.ALo(3,"number"),r.qZA(),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.Oqu(r.lcZ(3,1,t.timeoutBlockHeight))}}function Gn(t,e){1&t&&(r.TgZ(0,"th",35),r._uU(1," Amount (Sats) "),r.qZA())}function jn(t,e){if(1&t&&(r.TgZ(0,"td",34),r.TgZ(1,"span",36),r._uU(2),r.ALo(3,"number"),r.qZA(),r.qZA()),2&t){const t=e.$implicit;r.xp6(2),r.Oqu(r.lcZ(3,1,t.amt))}}function Vn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"th",37),r.TgZ(1,"div",38),r.TgZ(2,"mat-select",39),r._UZ(3,"mat-select-trigger"),r.TgZ(4,"mat-option",40),r.NdJ("click",function(){return r.CHM(t),r.oxw().onDownloadCSV()}),r._uU(5,"Download CSV"),r.qZA(),r.qZA(),r.qZA(),r.qZA()}}function Qn(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"td",41),r.TgZ(1,"button",42),r.NdJ("click",function(e){const i=r.CHM(t).$implicit;return r.oxw().onSwapClick(i,e)}),r._uU(2,"View Info"),r.qZA(),r.qZA()}}function Wn(t,e){if(1&t&&(r.TgZ(0,"p"),r._uU(1),r.qZA()),2&t){const t=r.oxw(2);r.xp6(1),r.Oqu(t.emptyTableMessage)}}function Jn(t,e){if(1&t&&(r.TgZ(0,"td",43),r.YNc(1,Wn,2,1,"p",44),r.qZA()),2&t){const t=r.oxw();r.xp6(1),r.Q6J("ngIf",!(null!=t.listSwaps&&t.listSwaps.data)||(null==t.listSwaps||null==t.listSwaps.data?null:t.listSwaps.data.length)<1)}}const Xn=function(t){return{"display-none":t}};function Kn(t,e){if(1&t&&r._UZ(0,"tr",45),2&t){const t=r.oxw();r.Q6J("ngClass",r.VKq(1,Xn,(null==t.listSwaps?null:t.listSwaps.data)&&(null==t.listSwaps||null==t.listSwaps.data?null:t.listSwaps.data.length)>0))}}function $n(t,e){1&t&&r._UZ(0,"tr",46)}function tr(t,e){1&t&&r._UZ(0,"tr",47)}const er=function(t){return{"overflow-auto error-border":t,"overflow-auto":!0}},ir=function(){return["no_swap"]};let nr=(()=>{class t{constructor(t,e,i,n){this.logger=t,this.commonService=e,this.store=i,this.boltzService=n,this.selectedSwapType=G.hc.SWAP_OUT,this.swapsData=[],this.flgLoading=[!0],this.emptyTableMessage="No swaps available.",this.swapStateEnum=G.Qw,this.faHistory=N.qO$,this.swapCaption="Swap Out",this.displayedColumns=[],this.flgSticky=!1,this.pageSize=G.IV,this.pageSizeOptions=G.TJ,this.screenSize="",this.screenSizeEnum=G.cu,this.unSubs=[new h.x,new h.x,new h.x],this.screenSize=this.commonService.getScreenSize(),this.setTableColumns()}ngAfterViewInit(){this.swapsData&&this.swapsData.length>0&&this.loadSwapsTable(this.swapsData)}ngOnChanges(t){t.selectedSwapType&&!t.selectedSwapType.firstChange&&this.setTableColumns(),this.swapCaption=this.selectedSwapType===G.hc.SWAP_IN?"Swap In":"Swap Out",this.loadSwapsTable(this.swapsData)}setTableColumns(){this.screenSize===G.cu.XS||this.screenSize===G.cu.SM?(this.flgSticky=!1,this.displayedColumns=this.selectedSwapType===G.hc.SWAP_IN?["status","id","expectedAmount","actions"]:["status","id","onchainAmount","actions"]):this.screenSize===G.cu.MD?(this.flgSticky=!1,this.displayedColumns=this.selectedSwapType===G.hc.SWAP_IN?["status","id","expectedAmount","timeoutBlockHeight","actions"]:["status","id","onchainAmount","timeoutBlockHeight","actions"]):(this.flgSticky=!0,this.displayedColumns=this.selectedSwapType===G.hc.SWAP_IN?["status","id","lockupAddress","expectedAmount","timeoutBlockHeight","actions"]:["status","id","claimAddress","onchainAmount","timeoutBlockHeight","actions"])}applyFilter(t){this.listSwaps&&(this.listSwaps.filter=t.value.trim().toLowerCase())}onSwapClick(t,e){this.boltzService.swapInfo(t.id).pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{this.store.dispatch(new j.wu({data:{type:G.n_.INFORMATION,alertTitle:this.swapCaption+" Status",message:[[{key:"status",value:G.Qw[(t=this.selectedSwapType===G.hc.SWAP_IN?t.swap:t.reverseSwap).status],title:"Status",width:50,type:G.Gi.STRING},{key:"id",value:t.id,title:"ID",width:50,type:G.Gi.STRING}],[{key:"amount",value:t.onchainAmount?t.onchainAmount:t.expectedAmount?t.expectedAmount:0,title:t.onchainAmount?"Onchain Amount (Sats)":t.expectedAmount?"Expected Amount (Sats)":"Amount (Sats)",width:50,type:G.Gi.NUMBER},{key:"timeoutBlockHeight",value:t.timeoutBlockHeight,title:"Timeout Block Height",width:50,type:G.Gi.NUMBER}],[{key:"address",value:t.claimAddress?t.claimAddress:t.lockupAddress?t.lockupAddress:"",title:t.claimAddress?"Claim Address":t.lockupAddress?"Lockup Address":"Address",width:100,type:G.Gi.STRING}],[{key:"invoice",value:t.invoice,title:"Invoice",width:100,type:G.Gi.STRING}],[{key:"privateKey",value:t.privateKey,title:"Private Key",width:100,type:G.Gi.STRING}],[{key:"preimage",value:t.preimage,title:"Preimage",width:100,type:G.Gi.STRING}],[{key:"redeemScript",value:t.redeemScript,title:"Redeem Script",width:100,type:G.Gi.STRING}],[{key:"lockupTransactionId",value:t.lockupTransactionId,title:"Lockup Transaction ID",width:50,type:G.Gi.STRING},{key:"transactionId",value:t.claimTransactionId?t.claimTransactionId:t.refundTransactionId?t.refundTransactionId:"",title:t.claimTransactionId?"Claim Transaction ID":t.refundTransactionId?"Refund Transaction ID":"Transaction ID",width:50,type:G.Gi.STRING}]],openedBy:"SWAP"}}))})}loadSwapsTable(t){this.listSwaps=new Fe.by(t?[...t]:[]),this.listSwaps.sort=this.sort,this.listSwaps.sortingDataAccessor=(t,e)=>t[e]&&isNaN(t[e])?t[e].toLocaleLowerCase():t[e]?+t[e]:null,this.listSwaps.filterPredicate=(t,e)=>JSON.stringify(t).toLowerCase().includes(e),this.paginator&&this.paginator.firstPage(),this.listSwaps.paginator=this.paginator,this.logger.info(this.listSwaps)}onDownloadCSV(){this.listSwaps.data&&this.listSwaps.data.length>0&&this.commonService.downloadFile(this.listSwaps.data,this.selectedSwapType===G.hc.SWAP_IN?"Swap in":"Swap out")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(le.v),r.Y36(a.yh),r.Y36(Ei))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-boltz-swaps"]],viewQuery:function(t,e){if(1&t&&(r.Gf(Pe.YE,5),r.Gf(Ne.NW,5)),2&t){let t;r.iGM(t=r.CRH())&&(e.sort=t.first),r.iGM(t=r.CRH())&&(e.paginator=t.first)}},inputs:{selectedSwapType:"selectedSwapType",swapsData:"swapsData",flgLoading:"flgLoading",emptyTableMessage:"emptyTableMessage"},features:[r._Bn([{provide:Ne.ye,useValue:(0,G.pt)("Swaps")}]),r.TTD],decls:46,vars:15,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",1,"card-content-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","fxFlex","100",1,"page-sub-title-container","w-100"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"keyup"],["fxLayout","row","fxLayoutAlign","start center",1,"w-100"],["fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","status"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","id"],["matColumnDef","claimAddress"],["matColumnDef","onchainAmount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","lockupAddress"],["matColumnDef","expectedAmount"],["matColumnDef","timeoutBlockHeight"],["matColumnDef","amt"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_swap"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.TgZ(2,"div",2),r._UZ(3,"fa-icon",3),r.TgZ(4,"span",4),r._uU(5),r.qZA(),r.qZA(),r.TgZ(6,"mat-form-field",5),r.TgZ(7,"input",6),r.NdJ("keyup",function(t){return e.applyFilter(t.target)}),r.qZA(),r.qZA(),r.qZA(),r.TgZ(8,"div",7),r.TgZ(9,"div",8),r.YNc(10,Ln,1,0,"mat-progress-bar",9),r.TgZ(11,"table",10,11),r.ynx(13,12),r.YNc(14,In,2,0,"th",13),r.YNc(15,On,2,1,"td",14),r.BQk(),r.ynx(16,15),r.YNc(17,Dn,2,0,"th",13),r.YNc(18,Rn,2,1,"td",14),r.BQk(),r.ynx(19,16),r.YNc(20,Nn,2,0,"th",13),r.YNc(21,Pn,2,1,"td",14),r.BQk(),r.ynx(22,17),r.YNc(23,Fn,2,0,"th",18),r.YNc(24,Zn,4,3,"td",14),r.BQk(),r.ynx(25,19),r.YNc(26,Bn,2,0,"th",13),r.YNc(27,Un,2,1,"td",14),r.BQk(),r.ynx(28,20),r.YNc(29,qn,2,0,"th",18),r.YNc(30,zn,4,3,"td",14),r.BQk(),r.ynx(31,21),r.YNc(32,Hn,2,0,"th",18),r.YNc(33,Yn,4,3,"td",14),r.BQk(),r.ynx(34,22),r.YNc(35,Gn,2,0,"th",18),r.YNc(36,jn,4,3,"td",14),r.BQk(),r.ynx(37,23),r.YNc(38,Vn,6,0,"th",24),r.YNc(39,Qn,3,0,"td",25),r.BQk(),r.ynx(40,26),r.YNc(41,Jn,2,1,"td",27),r.BQk(),r.YNc(42,Kn,1,3,"tr",28),r.YNc(43,$n,1,0,"tr",29),r.YNc(44,tr,1,0,"tr",30),r.qZA(),r._UZ(45,"mat-paginator",31),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(3),r.Q6J("icon",e.faHistory),r.xp6(2),r.hij("",e.swapCaption," History"),r.xp6(5),r.Q6J("ngIf",!0===e.flgLoading[0]),r.xp6(1),r.Q6J("dataSource",e.listSwaps)("ngClass",r.VKq(12,er,"error"===e.flgLoading[0])),r.xp6(31),r.Q6J("matFooterRowDef",r.DdM(14,ir)),r.xp6(1),r.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),r.xp6(1),r.Q6J("matRowDefColumns",e.displayedColumns),r.xp6(1),r.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS))},directives:[P.xw,P.yH,P.Wh,F.BN,J.KE,ut.Nt,Q.$V,U.O5,Fe.BZ,Pe.YE,U.mk,ue.oO,Fe.w1,Fe.fO,Fe.Dz,Fe.mD,Fe.Ke,Fe.as,Fe.nj,Ne.NW,Ze.pW,Fe.ge,Pe.nU,Fe.ev,X.gD,X.$L,tt.ey,$.lW,Fe.yh,Fe.Q2,Fe.XQ,Fe.Gk],pipes:[U.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),t})();const rr=function(t){return["../",t]};function sr(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"div",15),r.NdJ("click",function(){const e=r.CHM(t).$implicit;return r.oxw().onSelectedIndexChange(e)}),r._uU(1),r.qZA()}if(2&t){const t=e.$implicit,i=r.oxw();r.Q6J("active",i.activeTab.link===t.link)("routerLink",r.VKq(3,rr,t.link)),r.xp6(1),r.Oqu(t.name)}}let or=(()=>{class t{constructor(t,e,i){this.router=t,this.store=e,this.boltzService=i,this.swapTypeEnum=G.hc,this.selectedSwapType=G.hc.SWAP_OUT,this.swaps={},this.swapsData=[],this.emptyTableMessage="No swap data available.",this.flgLoading=[!0],this.links=[{link:"swapout",name:"Swap Out"},{link:"swapin",name:"Swap In"}],this.activeTab=this.links[0],this.unSubs=[new h.x,new h.x,new h.x,new h.x]}ngOnInit(){this.boltzService.listSwaps();const t=this.links.find(t=>this.router.url.includes(t.link));this.activeTab=t||this.links[0],this.selectedSwapType=t&&"swapin"===t.link?G.hc.SWAP_IN:G.hc.SWAP_OUT,this.router.events.pipe((0,k.R)(this.unSubs[0]),(0,A.h)(t=>t instanceof R.Av)).subscribe(t=>{const e=this.links.find(e=>t.urlAfterRedirects.includes(e.link));this.activeTab=e||this.links[0],this.selectedSwapType=e&&"swapin"===e.link?G.hc.SWAP_IN:G.hc.SWAP_OUT}),this.boltzService.swapsChanged.pipe((0,k.R)(this.unSubs[1])).subscribe({next:t=>{this.swaps=t,this.swapsData=this.selectedSwapType===G.hc.SWAP_IN?t.swaps:t.reverseSwaps,this.flgLoading[0]=!1},error:t=>{this.flgLoading[0]="error",this.emptyTableMessage=t.message?t.message:"No swap "+(this.selectedSwapType===G.hc.SWAP_IN?"in":"out")+" available."}})}onSelectedIndexChange(t){"swapin"===t.link?(this.selectedSwapType=G.hc.SWAP_IN,this.swapsData=this.swaps.swaps):(this.selectedSwapType=G.hc.SWAP_OUT,this.swapsData=this.swaps.reverseSwaps)}onSwap(t){this.boltzService.serviceInfo().pipe((0,k.R)(this.unSubs[2])).subscribe(e=>{this.store.dispatch(new j.wu({data:{serviceInfo:e,direction:t,component:Mn}}))})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(R.F0),r.Y36(a.yh),r.Y36(Ei))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-boltz-root"]],decls:18,vars:6,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],["viewBox","0 0 78 78","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",1,"botlz-icon-sm","mr-1"],["id","Logo","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","Group"],["id","Oval","cx","39","cy","39","r","37.5",1,"boltz-icon"],["d","M36.4583326,43.7755404 L40.53965,35.2316544 L39.4324865,35.2316544 L46.0754873,17.6071752 C46.292579,17.0204094 46.3287609,16.5159331 46.1840331,16.0937464 C46.0393053,15.671561 45.7860319,15.3674444 45.4242131,15.1813966 C45.0623942,14.9953487 44.6535376,14.9524146 44.1976433,15.0525945 C43.7417511,15.1527743 43.3256596,15.4461573 42.9493689,15.9327433 L22.6078557,40.7701025 C22.2026186,41.2710003 22,41.7575877 22,42.2298646 C22,42.6735173 22.1592003,43.0420366 22.477601,43.3354226 C22.7960017,43.6288058 23.1940025,43.7755404 23.6716036,43.7755404 L36.4583326,43.7755404 Z","id","Path",1,"boltz-icon-fill"],["d","M44.4883879,63.7755404 L48.8604707,55.165009 L47.6744296,55.165009 L54.7906978,37.4030526 C55.0232558,36.8117097 55.0620155,36.3032983 54.9069768,35.8778185 C54.7519381,35.4523399 54.4806208,35.1458511 54.0930248,34.958352 C53.7054289,34.7708528 53.2674441,34.7275839 52.7790706,34.8285452 C52.2906992,34.9295065 51.8449641,35.2251779 51.4418653,35.7155595 L29.6511611,60.746659 C29.2170537,61.251464 29,61.7418469 29,62.2178078 C29,62.6649211 29.1705423,63.036315 29.5116268,63.3319895 C29.8527113,63.6276613 30.2790669,63.7755404 30.7906936,63.7755404 L44.4883879,63.7755404 Z","id","Path-Copy","transform","translate(42.000000, 49.275540) rotate(-180.000000) translate(-42.000000, -49.275540) ",1,"boltz-icon-fill"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start start",1,"padding-gap-x-large","mt-1"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"],["fxLayout","row","fxFlex","100",3,"selectedSwapType","swapsData","flgLoading","emptyTableMessage"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.O4$(),r.TgZ(1,"svg",1),r.TgZ(2,"g",2),r.TgZ(3,"g",3),r._UZ(4,"circle",4),r._UZ(5,"path",5),r._UZ(6,"path",6),r.qZA(),r.qZA(),r.qZA(),r.kcU(),r.TgZ(7,"span",7),r._uU(8,"Boltz"),r.qZA(),r.qZA(),r.TgZ(9,"div",8),r.TgZ(10,"mat-card"),r.TgZ(11,"mat-card-content",9),r.TgZ(12,"nav",10),r.YNc(13,sr,2,5,"div",11),r.qZA(),r.TgZ(14,"div",12),r.TgZ(15,"button",13),r.NdJ("click",function(){return e.onSwap(e.selectedSwapType)}),r._uU(16),r.qZA(),r.qZA(),r._UZ(17,"rtl-boltz-swaps",14),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(13),r.Q6J("ngForOf",e.links),r.xp6(3),r.hij("Start ",e.activeTab.name,""),r.xp6(1),r.Q6J("selectedSwapType",e.selectedSwapType)("swapsData",e.swapsData)("flgLoading",e.flgLoading)("emptyTableMessage",e.emptyTableMessage))},directives:[P.xw,P.Wh,Z.a8,Z.dn,P.yH,B.BU,U.sg,$.lW,nr,B.Nj,R.rH],styles:[""]}),t})();class ar{constructor(t){this.help=t}}function lr(t,e){if(1&t&&(r.TgZ(0,"mat-expansion-panel",8),r.TgZ(1,"mat-expansion-panel-header"),r.TgZ(2,"mat-panel-title"),r._uU(3),r.qZA(),r.qZA(),r.TgZ(4,"mat-panel-description",9),r._UZ(5,"span",10),r.TgZ(6,"a",11),r._uU(7),r.qZA(),r.qZA(),r.qZA()),2&t){const t=r.oxw().$implicit,e=r.oxw();r.xp6(3),r.Oqu(t.help.question),r.xp6(2),r.Q6J("innerHTML",t.help.answer,r.oJD),r.xp6(1),r.Q6J("routerLink",e.flgLoggedIn?e.LNPLink+t.help.link:"/login"),r.xp6(1),r.Oqu(e.flgLoggedIn?t.help.linkCaption:"Login to go to the page")}}function cr(t,e){if(1&t&&(r.TgZ(0,"div",6),r.YNc(1,lr,8,4,"mat-expansion-panel",7),r.qZA()),2&t){const t=e.$implicit,i=r.oxw();r.xp6(1),r.Q6J("ngIf","ALL"===t.help.lnImplementation||t.help.lnImplementation===i.selNode.lnImplementation)}}let hr=(()=>{class t{constructor(t,e){this.store=t,this.sessionService=e,this.helpTopics=[],this.faQuestion=N.Psp,this.LNPLink="/lnd/",this.flgLoggedIn=!1,this.unSubs=[new h.x,new h.x,new h.x,new h.x],this.helpTopics.push(new ar({question:"Getting started",answer:'Funding your node is the first step to get started.\nGo to the "On-chain" page of the app:\n1. Generate a new address on the "Recieve" tab.\n2. Send funds to the address.\n3. Wait for the balance to be confirmed on-chain before proceeding further.\n3. Connecting with network peers and opening channels is next.\n',link:"onchain",linkCaption:"On-Chain page",lnImplementation:"ALL"})),this.helpTopics.push(new ar({question:"Connect with peers",answer:'Connect with network peers to open channels with them.\nGo to "Peer/Channels" page under the "Lightning" menu :\n1. Get the peer pubkey and host address in the pubkey@ip:port format.\n2. On the "Peers" enter the peer address and connect.\n3. Once the peer is connected, you can open channel with the peer.\n4. A variety of actions can be performed on the connected peers page for each peer:\n a. View Info - View the peer details.\n b. Open Channel - Open channel with the peer.\n c. Disconnect - Disconnect from the peer.\n',link:"peerschannels",linkCaption:"Peers/Channels page",lnImplementation:"ALL"})),this.helpTopics.push(new ar({question:"Opening Channels",answer:'Open channels with a connected network peer.\nGo to "Peer/Channels" page under the "Lightning" menu:\n1. On the "Channels" section, select the alias of the connected peer from the drop-down\n2. Specify the amount to commit to the channel and click on "Open Channel".\n3. There are a variety of options available while opening a channel. \n a. Private Channel - When this option is selected, a private channel is opened with the peer. \n b. Priority (advanced option) - Specify either Target confirmation Block or Fee in Sat/vByte. \n c. Spend Unconfirmd Output (advanced option) - Allow channels to be opened with unconfirmed UTXOs.\n4. Track the pending open channels under the "Pending" tab . \n5. Wait for the channel to be confirmed. Only a confimed channel can be used for payments or routing. \n',link:"peerschannels",linkCaption:"Peers/Channels page",lnImplementation:"ALL"})),this.helpTopics.push(new ar({question:"Channel Management",answer:'Channel maintenance and balance score.\nGo to "Peer/Channels" page under the "Lightning" menu:\n1. A variety of actions can be perfomed on the open channels under the "Open" tab, with the "Actions" button:\n a. View Info - View the channel details.\n b. View Remote Fee - View the fee policy on the channel of the remote peer.\n c. Update Fee Policy - Modify the fee policy on the channel.\n d. Close Channel - Close the channel.\n2. Balance Score is a "balancedness" metric score for the channel. \n a. It helps measure how balanced the remote and local balances are, on a channel.\n b. A perfectly balanced channel has a score of one, where as a completely lopsided one has a score of zero.\n c. The formula for calculating the score is "1 - abs((local bal - remote bal)/total bal)".\n',link:"peerschannels",linkCaption:"Peers/Channels page",lnImplementation:"ALL"})),this.helpTopics.push(new ar({question:"Lightning Transactions - Payments",answer:'Sending Payments from your node.\nGo to the "Transactions" page under the "Lightning" menu :\nPayments tab is for making payments via your node\n 1. Input a non-expired lightning invoice (Bolt11 format) in the "Payment request" field and click on "Send Payment" to send.\n 2. Advanced option # 1 (LND only) - Specify a limit on the routing fee which you are willing to pay, for the payment.\n 3. Advanced option # 2 (LND only) - Specify the outgoing channel which you want the payment to go through.\n',link:"transactions",linkCaption:"Transactions page",lnImplementation:"ALL"})),this.helpTopics.push(new ar({question:"Lightning Transactions - Invoices",answer:'Receiving Payments on your node.\nGo to the "Transactions" page under the "Lightning" menu :\nInvoices tab is for receiving payments on your node.\n 1. Memo - Description you want to provide on the invoice.\n 2. Expiry - The time period, after which the invoice will be invalid.\n 3. Private Routing Hints - Generate an invoice with routing hints for private channels.\n',link:"transactions",linkCaption:"Transactions page",lnImplementation:"ALL"})),this.helpTopics.push(new ar({question:"Lightning Transactions - Query Route",answer:'Querying Payment Routes.\nGo to the "Transactions" page under the "Lightning" menu :\nQuery Routes tab is for querying a potential path to a node and a routing fee estimate for a payment amount.\n 1. Destination Pubkey - Pubkey of the node, you want to send the payment to.\n 2. Amount - Amount in Sats, which you want to send to the node.\n',link:"transactions",linkCaption:"Transactions page",lnImplementation:"ALL"})),this.helpTopics.push(new ar({question:"Channel Backups",answer:'Channel Backups are important to ensure that you have means to recover funds in case of node failures.\nBackup folder location can be customized in the RTL config file with the channelBackupPath field.\nRTL automatically creates all channel backup on server startup, as well as everytime a channel is opened or closed\nYou can verify the all channel backup file by clicking on "Verify All" Button on the backup page.\nYou can also backup each channel individually and verify them.\n** Keep taking backups of your channels regularly and store them in redundant locations **.\n',link:"backup",linkCaption:"Channel Backups",lnImplementation:"LND"})),this.helpTopics.push(new ar({question:"Channel Restore",answer:'Channel Restore is used to recover funds from the channel backup files in case of node failures.\nFollow the below steps to perform fund restoration.\n\nPrerequisite:\n1. The node has been restored with the LND recovery seed.\n2. RTL generated channel backup file/s is available (all channel backup file is channel-all.bak).\n\nRecovery:\n1. Create a restore folder in your folder backup location, as specified in the RTL config file.\n2. Place the channel backup file in the restore folder.\n3. Go to the "Restore" tab under the "Backup" page of RTL.\n4. RTL will list the options to restore funds from the all channel file or individual channel backup file.\n5. Click on the Restore icon on the grid to restore the funds.\n6. Once the restore function is executed successfully, RTL will rename the backup file and it will not be accessible from the UI.\n7. Restore function will force close the channels and recover the funds from them.\n8. The pending close channels can be viewed under the "Pending" tab on the "Peer/Channels" page.\n9. Once the channel is closed, the corresponding pending on-chain transactions can be viewed on the "On-Chain" page.\n10. Once the transactions are confirmed, the channels funds will be restored to your LND Wallet.\n',link:"backup",linkCaption:"Channel Backups",lnImplementation:"LND"})),this.helpTopics.push(new ar({question:"Forwarding History",answer:'Transactions routed by the node.\nGo to "Routing" page under the "Lightning" menu :\nTransactions routed by the node are listed on this page along with channels and the fee earned by transaction.\n',link:"routing",linkCaption:"Forwarding History",lnImplementation:"ALL"})),this.helpTopics.push(new ar({question:"Graph Lookup",answer:'Querying your node graph for network node and channel information.\nGo to "Graph Lookup" page under the "Lightning" menu :\nEach node maintains a network graph for the information on all the nodes and channels on the network.\nYou can lookup information on nodes and channels from your graph:\n 1. Node Lookup - Enter the pubkey to perform the lookup.\n 2. Channel Lookup - Enter the short channel ID to perform the lookup.\n',link:"lookups",linkCaption:"Graph Lookup page",lnImplementation:"ALL"})),this.helpTopics.push(new ar({question:"Settings",answer:'RTL Offers certain customizations on the UI to personalize your experience on the app\nGo to "Settings" page to access the customization options.\nNode Layout Options\n 1. User Persona - Two options are available to change the dashboard based on the persona.\n 2. Currency Unit - You can choose your preferred fiat currency, to view the onchain and channel balances in the choosen fiat currency.\n 3. Default Node - If you are managing multiple nodes via RTL UI, you can select the default node to load upon login.\nOther Customizations include day and night mode and a choice of color themes to select from.\n',lnImplementation:"ALL"}))}ngOnInit(){this.store.select("root").pipe((0,k.R)(this.unSubs[0])).subscribe(t=>{switch(this.selNode=t.selNode,this.selNode.lnImplementation.toUpperCase()){case"CLT":this.LNPLink="/cl/";break;case"ECL":this.LNPLink="/ecl/";break;default:this.LNPLink="/lnd/"}}),this.sessionService.watchSession().pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{this.flgLoggedIn=!!t.token}),this.sessionService.getItem("token")&&(this.flgLoggedIn=!0)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(a.yh),r.Y36(It.m))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-help"]],decls:8,vars:2,consts:[["fxLayout","column","fxFlex","100"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap-x"],["fxFlex","100",4,"ngFor","ngForOf"],["fxFlex","100"],["class","flat-expansion-panel help-expansion mb-2px",4,"ngIf"],[1,"flat-expansion-panel","help-expansion","mb-2px"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start"],[1,"pre-wrap",3,"innerHTML"],[1,"mt-2",3,"routerLink"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r._UZ(2,"fa-icon",2),r.TgZ(3,"span",3),r._uU(4,"Help"),r.qZA(),r.qZA(),r.TgZ(5,"div",4),r.TgZ(6,"div",0),r.YNc(7,cr,2,1,"div",5),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(2),r.Q6J("icon",e.faQuestion),r.xp6(5),r.Q6J("ngForOf",e.helpTopics))},directives:[P.xw,P.yH,P.Wh,F.BN,U.sg,U.O5,ki.ib,ki.yz,ki.yK,ki.u4,R.yS],styles:[".mat-card-content[_ngcontent-%COMP%]{margin-bottom:4px}"]}),t})();function ur(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Token is required."),r.qZA())}let dr=(()=>{class t{constructor(t,e){this.dialogRef=t,this.store=e,this.faUserClock=N.hnx,this.token=""}onClose(){this.dialogRef.close(null)}onVerifyToken(){if(!this.token)return!0;this.dialogRef.close(),this.store.dispatch(new j.YY({twoFAToken:this.token}))}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(ot.so),r.Y36(a.yh))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-login-token"]],decls:17,vars:2,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],["fxLayout","row",1,"padding-gap-x-large"],["fxLayout","column","fxFlex","100",3,"ngSubmit"],["tokenForm","ngForm"],["autoFocus","","matInput","","placeholder","Token","type","text","id","token","name","token","tabindex","2","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-1"],["mat-flat-button","","color","primary","tabindex","4","type","submit"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.TgZ(2,"mat-card-header",2),r.TgZ(3,"div",3),r.TgZ(4,"span",4),r._uU(5,"Two Factor Token"),r.qZA(),r.qZA(),r.TgZ(6,"button",5),r.NdJ("click",function(){return e.onClose()}),r._uU(7,"X"),r.qZA(),r.qZA(),r.TgZ(8,"mat-card-content",6),r.TgZ(9,"form",7,8),r.NdJ("ngSubmit",function(){return e.onVerifyToken()}),r.TgZ(11,"mat-form-field"),r.TgZ(12,"input",9),r.NdJ("ngModelChange",function(t){return e.token=t}),r.qZA(),r.YNc(13,ur,2,0,"mat-error",10),r.qZA(),r.TgZ(14,"div",11),r.TgZ(15,"button",12),r._uU(16,"Verify Token"),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(12),r.Q6J("ngModel",e.token),r.xp6(1),r.Q6J("ngIf",!e.token))},directives:[P.xw,P.Wh,P.yH,Z.dk,$.lW,Z.dn,W._Y,W.JL,W.F,J.KE,ut.Nt,W.Fj,K.h,W.Q7,W.JJ,W.On,U.O5,J.TO],styles:[""]}),t})();function pr(t,e){1&t&&(r.TgZ(0,"mat-error"),r._uU(1,"Password is required."),r.qZA())}function fr(t,e){if(1&t&&(r.TgZ(0,"p",20),r.TgZ(1,"mat-icon",21),r._uU(2,"close"),r.qZA(),r._uU(3),r.qZA()),2&t){const t=r.oxw();r.xp6(3),r.hij(" ",t.loginErrorMessage," ")}}const mr=function(t){return{"padding-gap-large":t}},gr=function(t,e){return{"font-size-200":t,"font-size-300":e}};let yr=(()=>{class t{constructor(t,e,i,n){this.logger=t,this.store=e,this.rtlEffects=i,this.commonService=n,this.faUnlockAlt=N.B$L,this.password="",this.rtlSSO=0,this.rtlCookiePath="",this.accessKey="",this.flgShow=!1,this.screenSize="",this.screenSizeEnum=G.cu,this.loginErrorMessage="",this.apisCallStatus=null,this.apiCallStatusEnum=G.Bn,this.unSubs=[new h.x,new h.x,new h.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.store.select("root").pipe((0,k.R)(this.unSubs[0])).subscribe(t=>{this.loginErrorMessage="",this.apisCallStatus=t.apisCallStatus,t.apisCallStatus.Login.status===G.Bn.ERROR&&(this.loginErrorMessage=this.loginErrorMessage+("object"==typeof this.apisCallStatus.Login.message?JSON.stringify(this.apisCallStatus.Login.message):this.apisCallStatus.Login.message),this.logger.error(this.apisCallStatus.Login.message)),t.apisCallStatus.IsAuthorized.status===G.Bn.ERROR&&(this.loginErrorMessage=this.loginErrorMessage+("object"==typeof this.apisCallStatus.IsAuthorized.message?JSON.stringify(this.apisCallStatus.IsAuthorized.message):this.apisCallStatus.IsAuthorized.message),this.logger.error(this.apisCallStatus.IsAuthorized.message)),this.selNode=t.selNode,this.appConfig=t.appConfig,this.logger.info(t)})}onLogin(){if(!this.password)return!0;this.loginErrorMessage="",this.appConfig.enable2FA?(this.store.dispatch(new j.wu({maxWidth:"35rem",data:{component:dr}})),this.rtlEffects.closeAlert.pipe((0,st.q)(1)).subscribe(t=>{t&&this.store.dispatch(new j.m3({password:rt(this.password),defaultPassword:G.kO.includes(this.password.toLowerCase()),twoFAToken:t.twoFAToken}))})):this.store.dispatch(new j.m3({password:rt(this.password),defaultPassword:G.kO.includes(this.password.toLowerCase())}))}resetData(){this.password="",this.loginErrorMessage="",this.flgShow=!1}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(a.yh),r.Y36(lt.V),r.Y36(le.v))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-login"]],decls:25,vars:12,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","center stretch",1,"login-container"],["fxLayout","row","fxFlex","50","fxLayoutAlign","center stretch"],["fxLayout","column","fxLayout.gt-sm","row","fxFlex","100","fxLayoutAlign","stretch stretch"],["fxFlex","35","fxLayoutAlign","center center",1,"bg-primary"],["src","assets/images/RTL-Horse-BY.svg","alt","RTL Logo",1,"rtl-logo-svg"],["fxFlex","65","fxLayout","column","fxLayoutAlign","center stretch",3,"ngClass"],["fxLayout","row","fxLayoutAlign","center center",1,"page-title-container","p-0"],[1,"font-bold-500",3,"ngClass"],[1,"page-title"],[1,"mt-5px","mb-0","px-2"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between"],["loginForm","ngForm"],["fxFlex","100","fxLayoutAlign","start"],["autoFocus","","matInput","","placeholder","Password","id","password","name","password","tabindex","1","required","",3,"type","ngModel","ngModelChange"],["tabindex","2","matSuffix","",3,"click"],[4,"ngIf"],["fxFlex","100","class","color-warn pre-wrap","fxLayoutAlign","start start",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3","type","submit",3,"click"],["fxFlex","100","fxLayoutAlign","start start",1,"color-warn","pre-wrap"],[1,"mr-1","icon-small"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.TgZ(2,"mat-card",1),r.TgZ(3,"div",2),r.TgZ(4,"div",3),r._UZ(5,"img",4),r.qZA(),r.TgZ(6,"div",5),r.TgZ(7,"mat-card-header",6),r.TgZ(8,"mat-card-title",7),r.TgZ(9,"span",8),r._uU(10,"Welcome"),r.qZA(),r.qZA(),r.qZA(),r.TgZ(11,"mat-card-content",9),r.TgZ(12,"form",10,11),r.TgZ(14,"mat-form-field",12),r.TgZ(15,"input",13),r.NdJ("ngModelChange",function(t){return e.password=t}),r.qZA(),r.TgZ(16,"mat-icon",14),r.NdJ("click",function(){return e.flgShow=!e.flgShow}),r._uU(17),r.qZA(),r.YNc(18,pr,2,0,"mat-error",15),r.qZA(),r.YNc(19,fr,4,1,"p",16),r.TgZ(20,"div",17),r.TgZ(21,"button",18),r.NdJ("click",function(){return e.resetData()}),r._uU(22,"Clear"),r.qZA(),r.TgZ(23,"button",19),r.NdJ("click",function(){return e.onLogin()}),r._uU(24,"Login"),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(6),r.Q6J("ngClass",r.VKq(7,mr,e.screenSize===e.screenSizeEnum.XS)),r.xp6(2),r.Q6J("ngClass",r.WLB(9,gr,e.screenSize===e.screenSizeEnum.XS,e.screenSize!==e.screenSizeEnum.XS)),r.xp6(7),r.Q6J("type",e.flgShow?"text":"password")("ngModel",e.password),r.xp6(2),r.Oqu(e.flgShow?"visibility_off":"visibility"),r.xp6(1),r.Q6J("ngIf",!e.password),r.xp6(1),r.Q6J("ngIf",""!==e.loginErrorMessage))},directives:[P.xw,P.yH,P.Wh,Z.a8,U.mk,ue.oO,Z.dk,Z.n5,Z.dn,W._Y,W.JL,W.F,J.KE,ut.Nt,W.Fj,K.h,W.Q7,W.JJ,W.On,Mi.Hw,J.R9,U.O5,$.lW,J.TO],styles:[".login-container[_ngcontent-%COMP%]{height:90vh}.login-container[_ngcontent-%COMP%] .mat-card[_ngcontent-%COMP%]{height:30rem}.login-container[_ngcontent-%COMP%] .rtl-logo-svg[_ngcontent-%COMP%]{width:100%}@media only screen and (max-width:56.25em){.login-container[_ngcontent-%COMP%] .rtl-logo-svg[_ngcontent-%COMP%]{width:37%}}@media only screen and (max-width:37.5em){.login-container[_ngcontent-%COMP%] .rtl-logo-svg[_ngcontent-%COMP%]{width:70%}}.login-container[_ngcontent-%COMP%] .material-icons.mat-icon[_ngcontent-%COMP%]{font-size:120%;cursor:pointer}"]}),t})();var br=i(8016);let vr=(()=>{class t{constructor(t,e){this.activatedRoute=t,this.router=e,this.error={errorCode:"",errorMessage:""},this.faTimes=N.NBC,this.unsubs=[new h.x,new h.x]}ngOnInit(){this.router.routeReuseStrategy.shouldReuseRoute=()=>!1,this.router.onSameUrlNavigation="reload",this.activatedRoute.paramMap.pipe((0,k.R)(this.unsubs[0])).subscribe(t=>{this.error=window.history.state})}goToHelp(){this.router.navigate(["/help"])}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(R.gz),r.Y36(R.F0))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-error"]],decls:13,vars:3,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","center center"],["fxLayout","column","fxFlex","60","fxLayoutAlign","start center"],["fxLayout","row","fxLayoutAlign","center center",1,"page-title-container","padding-gap-large"],[1,"font-size-300","font-bold-500"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column","fxLayoutAlign","center center",1,"padding-gap-large"],[1,"box-text","font-size-120"],["fxLayout","row","fxLayoutAlign","center","fxFlex","80"],["mat-flat-button","","color","primary","type","button",1,"mt-2",3,"click"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"mat-card",1),r.TgZ(2,"mat-card-header",2),r.TgZ(3,"mat-card-title",3),r._UZ(4,"fa-icon",4),r.TgZ(5,"span",5),r._uU(6),r.qZA(),r.qZA(),r.qZA(),r.TgZ(7,"mat-card-content",6),r.TgZ(8,"div",7),r._uU(9),r.qZA(),r.TgZ(10,"span",8),r.TgZ(11,"button",9),r.NdJ("click",function(){return e.goToHelp()}),r._uU(12,"Go To Help"),r.qZA(),r.qZA(),r.qZA(),r.qZA(),r.qZA()),2&t&&(r.xp6(4),r.Q6J("icon",e.faTimes),r.xp6(2),r.hij("Error ",e.error.errorCode,""),r.xp6(3),r.Oqu(e.error.errorMessage))},directives:[P.xw,P.yH,P.Wh,Z.a8,Z.dk,Z.n5,F.BN,Z.dn,$.lW],encapsulation:2}),t})();var _r=i(6013);const wr=R.Bz.forRoot([{path:"",pathMatch:"full",redirectTo:"login"},{path:"lnd",loadChildren:()=>Promise.all([i.e(958),i.e(891)]).then(i.bind(i,7891)).then(t=>t.LNDModule),canActivate:[_r.a1]},{path:"cl",loadChildren:()=>Promise.all([i.e(958),i.e(145)]).then(i.bind(i,2462)).then(t=>t.CLModule),canActivate:[_r.a1]},{path:"ecl",loadChildren:()=>Promise.all([i.e(958),i.e(432)]).then(i.bind(i,1432)).then(t=>t.ECLModule),canActivate:[_r.a1]},{path:"settings",component:Y,canActivate:[_r.a1],children:[{path:"",pathMatch:"full",redirectTo:"app"},{path:"app",component:nt,canActivate:[_r.a1]},{path:"auth",component:Ft,canActivate:[_r.a1]},{path:"bconfig",component:jt,canActivate:[_r.a1]}]},{path:"config",component:Jt,canActivate:[_r.a1],children:[{path:"",pathMatch:"full",redirectTo:"node"},{path:"node",component:ve,canActivate:[_r.a1]},{path:"services",component:we,canActivate:[_r.a1],children:[{path:"",pathMatch:"full",redirectTo:"loop"},{path:"loop",component:Ee,canActivate:[_r.a1]},{path:"boltz",component:Ie,canActivate:[_r.a1]}]},{path:"lnconfig",component:re,canActivate:[_r.a1]}]},{path:"services",component:Oe,canActivate:[_r.a1],children:[{path:"",pathMatch:"full",redirectTo:"loop"},{path:"loop",pathMatch:"full",redirectTo:"loop/loopout"},{path:"loop/:selTab",component:vi},{path:"boltz",pathMatch:"full",redirectTo:"boltz/swapout"},{path:"boltz/:selTab",component:or}]},{path:"help",component:hr},{path:"login",component:yr},{path:"error",component:vr},{path:"**",component:br.w}]);var xr=i(253),Cr=i(72),Ar=i(2865),Sr=i(3104),Er=i(8055);function kr(t,e){if(1&t&&(r.TgZ(0,"a",10),r._UZ(1,"fa-icon",3),r.TgZ(2,"span",11),r._uU(3,"Settings"),r.qZA(),r.qZA()),2&t){const t=r.oxw();r.xp6(1),r.Q6J("icon",t.faUserCog)}}function Tr(t,e){if(1&t&&(r.TgZ(0,"a",12),r._UZ(1,"fa-icon",3),r.TgZ(2,"span",13),r._uU(3,"Help"),r.qZA(),r.qZA()),2&t){const t=r.oxw();r.xp6(1),r.Q6J("icon",t.faLifeRing)}}function Mr(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"a",14),r.NdJ("click",function(){return r.CHM(t),r.oxw().onClick()}),r._UZ(1,"fa-icon",3),r.TgZ(2,"span"),r._uU(3,"Logout"),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.xp6(1),r.Q6J("icon",t.faEject)}}let Lr=(()=>{class t{constructor(t,e,i,n,r){this.logger=t,this.sessionService=e,this.store=i,this.rtlEffects=n,this.actions=r,this.faUserCog=N.gNZ,this.faCodeBranch=N.mh3,this.faCog=N.b7W,this.faLifeRing=N.uli,this.faEject=N.KOR,this.version="",this.information={},this.informationChain={},this.flgLoading=!0,this.showLogout=!1,this.unSubs=[new h.x,new h.x,new h.x,new h.x],this.version=Ai.N.VERSION}ngOnInit(){this.store.select("root").pipe((0,k.R)(this.unSubs[0])).subscribe(t=>{if(this.selNode=t.selNode,this.information=t.nodeData,this.flgLoading=!this.information.identity_pubkey,this.information.identity_pubkey){if(this.information.chains&&"string"==typeof this.information.chains[0])this.informationChain.chain=this.information.chains[0].toString(),this.informationChain.network=this.information.testnet?"Testnet":"Mainnet";else if("object"==typeof this.information.chains[0]&&this.information.chains[0].hasOwnProperty("chain")){const t=this.information.chains[0];this.informationChain.chain=t.chain,this.informationChain.network=t.network}}else this.informationChain.chain="",this.informationChain.network="";this.logger.info(t)}),this.sessionService.watchSession().pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{this.showLogout=!!t.token,this.flgLoading=!!t.token}),this.actions.pipe((0,k.R)(this.unSubs[2]),(0,A.h)(t=>t.type===j.Nv)).subscribe(()=>{this.showLogout=!1})}onClick(){this.store.dispatch(new j.b_({data:{type:G.n_.CONFIRM,alertTitle:"Logout",titleMessage:"Logout from this device?",noBtnText:"Cancel",yesBtnText:"Logout"}})),this.rtlEffects.closeConfirm.pipe((0,k.R)(this.unSubs[3])).subscribe(t=>{t&&(this.showLogout=!1,this.store.dispatch(new j.RD))})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(It.m),r.Y36(a.yh),r.Y36(lt.V),r.Y36(l.eX))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-top-menu"]],decls:13,vars:7,consts:[[1,"top-menu",3,"overlapTrigger"],["topMenu","matMenu"],["mat-menu-item",""],[1,"fa-icon-small","mr-1",3,"icon"],["mat-menu-item","","routerLink","/settings",4,"ngIf"],["mat-menu-item","","routerLink","/help",4,"ngIf"],["mat-menu-item","",3,"click",4,"ngIf"],["mat-icon-button","",1,"top-toolbar-icon",3,"matMenuTriggerFor"],["src","assets/images/RTL-Horse-BY.svg","alt","RTL Logo",2,"width","3.2rem"],[2,"font-size","2rem","text-align","start"],["mat-menu-item","","routerLink","/settings"],["routerLink","/settings"],["mat-menu-item","","routerLink","/help"],["routerLink","/help"],["mat-menu-item","",3,"click"]],template:function(t,e){if(1&t&&(r.TgZ(0,"mat-menu",0,1),r.TgZ(2,"p",2),r._UZ(3,"fa-icon",3),r.TgZ(4,"span"),r._uU(5),r.qZA(),r.qZA(),r.YNc(6,kr,4,1,"a",4),r.YNc(7,Tr,4,1,"a",5),r.YNc(8,Mr,4,1,"a",6),r.qZA(),r.TgZ(9,"button",7),r._UZ(10,"img",8),r.TgZ(11,"mat-icon",9),r._uU(12,"arrow_drop_down"),r.qZA(),r.qZA()),2&t){const t=r.MAs(1);r.Q6J("overlapTrigger",!1),r.xp6(3),r.Q6J("icon",e.faCodeBranch),r.xp6(2),r.hij("Version: ",e.version,""),r.xp6(1),r.Q6J("ngIf",e.showLogout),r.xp6(1),r.Q6J("ngIf",e.showLogout),r.xp6(1),r.Q6J("ngIf",e.showLogout),r.xp6(1),r.Q6J("matMenuTriggerFor",t)}},directives:[Er.VK,Er.OP,F.BN,U.O5,$.lW,Er.p6,Mi.Hw,R.yS,R.rH],styles:[".mat-menu-content,.mat-menu-content p.mat-menu-item,.mat-menu-content p.mat-menu-item div,.mat-menu-content p.mat-menu-item fa-icon,.mat-menu-content p.mat-menu-item span{cursor:default}.mat-menu-content p.mat-menu-item:hover{cursor:default!important}"],encapsulation:2}),t})();var Ir=i(5122),Or=i(1709),Dr=i(1010);const Rr={LNDChildren:[{id:1,parentId:0,name:"Dashboard",iconType:"FA",icon:N.HLz,link:"/lnd/home",userPersona:G.ol.ALL},{id:2,parentId:0,name:"On-chain",iconType:"FA",icon:N.nNP,link:"/lnd/onchain",userPersona:G.ol.ALL},{id:3,parentId:0,name:"Lightning",iconType:"FA",icon:N.BDt,link:"/lnd/connections",userPersona:G.ol.ALL,children:[{id:31,parentId:3,name:"Peers/Channels",iconType:"FA",icon:N.FVb,link:"/lnd/connections",userPersona:G.ol.ALL},{id:32,parentId:3,name:"Transactions",iconType:"FA",icon:N.Ssp,link:"/lnd/transactions",userPersona:G.ol.ALL},{id:33,parentId:3,name:"Routing",iconType:"FA",icon:N.SuH,link:"/lnd/routing",userPersona:G.ol.ALL},{id:34,parentId:3,name:"Reports",iconType:"FA",icon:N.koM,link:"/lnd/reports",userPersona:G.ol.ALL},{id:35,parentId:3,name:"Graph Lookup",iconType:"FA",icon:N.wn1,link:"/lnd/lookups",userPersona:G.ol.ALL},{id:36,parentId:3,name:"Sign/Verify",iconType:"FA",icon:N.hkK,link:"/lnd/messages",userPersona:G.ol.ALL},{id:37,parentId:3,name:"Backup",iconType:"FA",icon:N.q7m,link:"/lnd/channelbackup",userPersona:G.ol.ALL},{id:38,parentId:3,name:"Network",iconType:"FA",icon:N.o4t,link:"/lnd/network",userPersona:G.ol.OPERATOR},{id:39,parentId:3,name:"Node/Network",iconType:"FA",icon:N.xf3,link:"/lnd/network",userPersona:G.ol.MERCHANT}]},{id:4,parentId:0,name:"Services",iconType:"FA",icon:N.Krp,link:"/services/loop",userPersona:G.ol.ALL,children:[{id:41,parentId:4,name:"Loop",iconType:"FA",icon:N.vqe,link:"/services/loop",userPersona:G.ol.ALL},{id:42,parentId:4,name:"Boltz",iconType:"SVG",icon:"boltzIconBlock",link:"/services/boltz",userPersona:G.ol.ALL}]},{id:5,parentId:0,name:"Node Config",iconType:"FA",icon:N.CgH,link:"/config",userPersona:G.ol.ALL},{id:6,parentId:0,name:"Help",iconType:"FA",icon:N.Psp,link:"/help",userPersona:G.ol.ALL}],CLChildren:[{id:1,parentId:0,name:"Dashboard",iconType:"FA",icon:N.HLz,link:"/cl/home",userPersona:G.ol.ALL},{id:2,parentId:0,name:"On-chain",iconType:"FA",icon:N.nNP,link:"/cl/onchain",userPersona:G.ol.ALL},{id:3,parentId:0,name:"Lightning",iconType:"FA",icon:N.BDt,link:"/cl/connections",userPersona:G.ol.ALL,children:[{id:31,parentId:3,name:"Peers/Channels",iconType:"FA",icon:N.FVb,link:"/cl/connections",userPersona:G.ol.ALL},{id:32,parentId:3,name:"Transactions",iconType:"FA",icon:N.Ssp,link:"/cl/transactions",userPersona:G.ol.ALL},{id:33,parentId:3,name:"Routing",iconType:"FA",icon:N.SuH,link:"/cl/routing",userPersona:G.ol.ALL},{id:34,parentId:3,name:"Reports",iconType:"FA",icon:N.koM,link:"/cl/reports",userPersona:G.ol.ALL},{id:35,parentId:3,name:"Graph Lookup",iconType:"FA",icon:N.wn1,link:"/cl/lookups",userPersona:G.ol.ALL},{id:36,parentId:3,name:"Sign/Verify",iconType:"FA",icon:N.hkK,link:"/cl/messages",userPersona:G.ol.ALL},{id:37,parentId:3,name:"Fee Rates",iconType:"FA",icon:N.USL,link:"/cl/rates",userPersona:G.ol.OPERATOR},{id:38,parentId:3,name:"Node/Fee Rates",iconType:"FA",icon:N.xf3,link:"/cl/rates",userPersona:G.ol.MERCHANT}]},{id:4,parentId:0,name:"Node Config",iconType:"FA",icon:N.CgH,link:"/config",userPersona:G.ol.ALL},{id:5,parentId:0,name:"Help",iconType:"FA",icon:N.Psp,link:"/help",userPersona:G.ol.ALL}],ECLChildren:[{id:1,parentId:0,name:"Dashboard",iconType:"FA",icon:N.HLz,link:"/ecl/home",userPersona:G.ol.ALL},{id:2,parentId:0,name:"On-chain",iconType:"FA",icon:N.nNP,link:"/ecl/onchain",userPersona:G.ol.ALL},{id:3,parentId:0,name:"Lightning",iconType:"FA",icon:N.BDt,link:"/ecl/connections",userPersona:G.ol.ALL,children:[{id:31,parentId:3,name:"Peers/Channels",iconType:"FA",icon:N.FVb,link:"/ecl/connections",userPersona:G.ol.ALL},{id:32,parentId:3,name:"Transactions",iconType:"FA",icon:N.Ssp,link:"/ecl/transactions",userPersona:G.ol.ALL},{id:33,parentId:3,name:"Routing",iconType:"FA",icon:N.SuH,link:"/ecl/routing",userPersona:G.ol.ALL},{id:34,parentId:3,name:"Reports",iconType:"FA",icon:N.koM,link:"/ecl/reports",userPersona:G.ol.ALL},{id:35,parentId:3,name:"Graph Lookup",iconType:"FA",icon:N.wn1,link:"/ecl/lookups",userPersona:G.ol.ALL}]},{id:4,parentId:0,name:"Node Config",iconType:"FA",icon:N.CgH,link:"/config",userPersona:G.ol.ALL},{id:5,parentId:0,name:"Help",iconType:"FA",icon:N.Psp,link:"/help",userPersona:G.ol.ALL}]};var Nr=i(6828);function Pr(t,e){if(1&t&&(r.TgZ(0,"mat-option",11),r._uU(1),r.qZA()),2&t){const t=e.$implicit;r.Q6J("value",t),r.xp6(1),r.AsE(" ",t.lnNode," (",t.lnImplementation,") ")}}function Fr(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"mat-select",9),r.NdJ("selectionChange",function(e){return r.CHM(t),r.oxw().onNodeSelectionChange(e.value)}),r.YNc(1,Pr,2,3,"mat-option",10),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("value",t.selNode),r.xp6(1),r.Q6J("ngForOf",t.appConfig.nodes)}}function Zr(t,e){if(1&t&&(r.TgZ(0,"span",21),r.GkF(1,22),r.qZA()),2&t){const t=r.oxw().$implicit;r.oxw(2);const e=r.MAs(11);r.xp6(1),r.Q6J("ngTemplateOutlet","boltzIconBlock"===t.icon?e:null)}}function Br(t,e){if(1&t&&r._UZ(0,"fa-icon",23),2&t){const t=r.oxw().$implicit;r.Q6J("icon",t.icon)}}function Ur(t,e){if(1&t&&(r.TgZ(0,"mat-icon",24),r._uU(1),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Oqu(t.icon)}}function qr(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"mat-tree-node",15),r.TgZ(1,"div",16),r.NdJ("click",function(){const e=r.CHM(t).$implicit;return r.oxw(2).onChildNavClicked(e)}),r.TgZ(2,"div",17),r.YNc(3,Zr,2,1,"span",18),r.YNc(4,Br,1,1,"fa-icon",19),r.YNc(5,Ur,2,1,"mat-icon",20),r.TgZ(6,"span"),r._uU(7),r.qZA(),r.qZA(),r.qZA(),r.qZA()}if(2&t){const t=e.$implicit;r.s9C("routerLink",t.link),r.xp6(3),r.Q6J("ngIf","SVG"===t.iconType),r.xp6(1),r.Q6J("ngIf","FA"===t.iconType),r.xp6(1),r.Q6J("ngIf",!t.iconType),r.xp6(2),r.Oqu(t.name)}}function zr(t,e){if(1&t&&(r.TgZ(0,"span",33),r.GkF(1,22),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Q6J("ngTemplateOutlet",t.icon)}}function Hr(t,e){if(1&t&&r._UZ(0,"fa-icon",23),2&t){const t=r.oxw().$implicit;r.Q6J("icon",t.icon)}}function Yr(t,e){if(1&t&&(r.TgZ(0,"mat-icon",24),r._uU(1),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Oqu(t.icon)}}function Gr(t,e){if(1&t&&(r.TgZ(0,"mat-nested-tree-node",25),r.TgZ(1,"div",26),r.TgZ(2,"div",27),r.YNc(3,zr,2,1,"span",28),r.YNc(4,Hr,1,1,"fa-icon",19),r.YNc(5,Yr,2,1,"mat-icon",20),r.TgZ(6,"span"),r._uU(7),r.qZA(),r.qZA(),r.TgZ(8,"button",29),r.TgZ(9,"mat-icon",30),r._uU(10),r.qZA(),r.qZA(),r.qZA(),r.TgZ(11,"div",31),r.GkF(12,32),r.qZA(),r.qZA()),2&t){const t=e.$implicit,i=r.oxw(2);r.xp6(3),r.Q6J("ngIf","SVG"===t.iconType),r.xp6(1),r.Q6J("ngIf","FA"===t.iconType),r.xp6(1),r.Q6J("ngIf",!t.iconType),r.xp6(2),r.Oqu(t.name),r.xp6(1),r.uIk("aria-label","toggle "+t.name),r.xp6(2),r.Oqu(i.treeControlNested.isExpanded(t)?"arrow_drop_up":"arrow_drop_down"),r.xp6(1),r.ekj("tree-children-invisible",!i.treeControlNested.isExpanded(t))}}function jr(t,e){if(1&t&&(r.TgZ(0,"mat-tree",5,12),r.YNc(2,qr,8,5,"mat-tree-node",13),r.YNc(3,Gr,13,8,"mat-nested-tree-node",14),r.qZA()),2&t){const t=r.oxw();r.Q6J("dataSource",t.navMenus)("treeControl",t.treeControlNested),r.xp6(3),r.Q6J("matTreeNodeDefWhen",t.hasChild)}}function Vr(t,e){if(1&t&&(r.TgZ(0,"span",21),r.GkF(1,22),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Q6J("ngTemplateOutlet",t.icon)}}function Qr(t,e){if(1&t&&r._UZ(0,"fa-icon",36),2&t){const t=r.oxw().$implicit;r.s9C("matTooltip",t.name),r.Q6J("icon",t.icon)}}function Wr(t,e){if(1&t&&(r.TgZ(0,"mat-icon",37),r._uU(1),r.qZA()),2&t){const t=r.oxw().$implicit;r.s9C("matTooltip",t.name),r.xp6(1),r.Oqu(t.icon)}}function Jr(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"mat-tree-node",16),r.NdJ("click",function(){const e=r.CHM(t).$implicit;return r.oxw().onShowData(e)}),r.YNc(1,Vr,2,1,"span",18),r.YNc(2,Qr,1,2,"fa-icon",34),r.YNc(3,Wr,2,2,"mat-icon",35),r.TgZ(4,"span"),r._uU(5),r.qZA(),r.qZA()}if(2&t){const t=e.$implicit;r.xp6(1),r.Q6J("ngIf","SVG"===t.iconType),r.xp6(1),r.Q6J("ngIf","FA"===t.iconType),r.xp6(1),r.Q6J("ngIf",!t.iconType),r.xp6(2),r.Oqu(t.name)}}function Xr(t,e){if(1&t&&(r.TgZ(0,"span",33),r.GkF(1,22),r.qZA()),2&t){const t=r.oxw().$implicit;r.xp6(1),r.Q6J("ngTemplateOutlet",t.icon)}}function Kr(t,e){if(1&t&&r._UZ(0,"fa-icon",36),2&t){const t=r.oxw().$implicit;r.s9C("matTooltip",t.name),r.Q6J("icon",t.icon)}}function $r(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"mat-tree-node",16),r.NdJ("click",function(){const e=r.CHM(t).$implicit;return r.oxw(2).onClick(e)}),r.YNc(1,Xr,2,1,"span",28),r.YNc(2,Kr,1,2,"fa-icon",34),r.TgZ(3,"span"),r._uU(4),r.qZA(),r.qZA()}if(2&t){const t=e.$implicit;r.xp6(1),r.Q6J("ngIf","SVG"===t.iconType),r.xp6(1),r.Q6J("ngIf","FA"===t.iconType),r.xp6(2),r.Oqu(t.name)}}function ts(t,e){if(1&t&&(r.TgZ(0,"mat-tree",5),r.YNc(1,$r,5,3,"mat-tree-node",6),r.qZA()),2&t){const t=r.oxw();r.Q6J("dataSource",t.navMenusLogout)("treeControl",t.treeControlLogout)}}function es(t,e){1&t&&(r.O4$(),r.TgZ(0,"svg",38),r.TgZ(1,"g",39),r.TgZ(2,"g",40),r._UZ(3,"circle",41),r._UZ(4,"path",42),r._UZ(5,"path",43),r.qZA(),r.qZA(),r.qZA())}let is=(()=>{class t{constructor(t,e,i,n,s,o){this.logger=t,this.commonService=e,this.sessionService=i,this.store=n,this.actions=s,this.rtlEffects=o,this.ChildNavClicked=new r.vpe,this.faEject=N.KOR,this.faEye=N.Mdf,this.version="",this.information={},this.informationChain={},this.flgLoading=!0,this.logoutNode=[{id:200,parentId:0,name:"Logout",iconType:"FA",icon:N.KOR}],this.showDataNodes=[{id:1e3,parentId:0,name:"Public Key",iconType:"FA",icon:N.Mdf}],this.showLogout=!1,this.numPendingChannels=0,this.smallScreen=!1,this.childRootRoute="",this.userPersonaEnum=G.ol,this.unSubs=[new h.x,new h.x,new h.x,new h.x],this.treeControlNested=new Or.VY(t=>t.children),this.treeControlLogout=new Or.VY(t=>t.children),this.treeControlShowData=new Or.VY(t=>t.children),this.navMenus=new Dr.WX,this.navMenusLogout=new Dr.WX,this.navMenusShowData=new Dr.WX,this.hasChild=(t,e)=>!!e.children&&e.children.length>0,this.version=Ai.N.VERSION,200===Rr.LNDChildren[Rr.LNDChildren.length-1].id&&Rr.LNDChildren.pop(),this.navMenus.data=Rr.LNDChildren,this.navMenusLogout.data=this.logoutNode,this.navMenusShowData.data=this.showDataNodes}ngOnInit(){const t=this.sessionService.getItem("token");this.showLogout=!!t,this.flgLoading=!!t,this.store.select("root").pipe((0,k.R)(this.unSubs[0])).subscribe(t=>{if(this.appConfig=t.appConfig,this.selNode=t.selNode,this.settings=this.selNode.settings,this.information=t.nodeData,this.information.identity_pubkey){if(this.information.chains&&"string"==typeof this.information.chains[0])this.informationChain.chain=this.information.chains[0].toString(),this.informationChain.network=this.information.testnet?"Testnet":"Mainnet";else if("object"==typeof this.information.chains[0]&&this.information.chains[0].hasOwnProperty("chain")){const t=this.information.chains[0];this.informationChain.chain=t.chain,this.informationChain.network=t.network}}else this.informationChain.chain="",this.informationChain.network="";this.flgLoading=!this.information.identity_pubkey,window.innerWidth<=414&&(this.smallScreen=!0),this.selNode&&this.selNode.lnImplementation&&this.filterSideMenuNodes(),this.logger.info(t)}),this.sessionService.watchSession().pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{this.showLogout=!!t.token,this.flgLoading=!!t.token}),this.actions.pipe((0,k.R)(this.unSubs[2]),(0,A.h)(t=>t.type===j.Nv)).subscribe(t=>{this.showLogout=!1})}onClick(t){"Logout"===t.name&&(this.store.dispatch(new j.b_({data:{type:G.n_.CONFIRM,alertTitle:"Logout",titleMessage:"Logout from this device?",noBtnText:"Cancel",yesBtnText:"Logout"}})),this.rtlEffects.closeConfirm.pipe((0,k.R)(this.unSubs[3])).subscribe(t=>{t&&(this.showLogout=!1,this.store.dispatch(new j.RD))})),this.ChildNavClicked.emit(t)}onChildNavClicked(t){this.ChildNavClicked.emit(t)}filterSideMenuNodes(){switch(this.selNode.lnImplementation.toUpperCase()){case"CLT":this.loadCLTMenu();break;case"ECL":this.loadECLMenu();break;default:this.loadLNDMenu()}}loadLNDMenu(){let t=[];t=JSON.parse(JSON.stringify(Rr.LNDChildren)),this.navMenus.data=t.filter(t=>t.children&&t.children.length?(t.children=t.children.filter(t=>(t.userPersona===G.ol.ALL||t.userPersona===this.settings.userPersona)&&"/services/loop"!==t.link&&"/services/boltz"!==t.link||"/services/loop"===t.link&&this.settings.swapServerUrl&&""!==this.settings.swapServerUrl.trim()||"/services/boltz"===t.link&&this.settings.boltzServerUrl&&""!==this.settings.boltzServerUrl.trim()),t.children.length>0):t.userPersona===G.ol.ALL||t.userPersona===this.settings.userPersona)}loadCLTMenu(){let t=[];t=JSON.parse(JSON.stringify(Rr.CLChildren)),this.navMenus.data=t.filter(t=>(t.children&&t.children.length&&(t.children=t.children.filter(t=>(t.userPersona===G.ol.ALL||t.userPersona===this.settings.userPersona)&&"/cl/messages"!==t.link||"/cl/messages"===t.link&&this.information.api_version&&this.commonService.isVersionCompatible(this.information.api_version,"0.2.2"))),t.userPersona===G.ol.ALL||t.userPersona===this.settings.userPersona))}loadECLMenu(){this.navMenus.data=JSON.parse(JSON.stringify(Rr.ECLChildren))}onShowData(t){this.store.dispatch(new j.fD),this.ChildNavClicked.emit("showData")}onNodeSelectionChange(t){this.selNode=t,this.store.dispatch(new j.ZG({uiMessage:G.m6.UPDATE_SELECTED_NODE,lnNode:t,isInitialSetup:!1})),this.ChildNavClicked.emit("selectNode")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(le.v),r.Y36(It.m),r.Y36(a.yh),r.Y36(l.eX),r.Y36(lt.V))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-side-navigation"]],viewQuery:function(t,e){if(1&t&&r.Gf(Dr.gi,5),2&t){let t;r.iGM(t=r.CRH())&&(e.tree=t.first)}},outputs:{ChildNavClicked:"ChildNavClicked"},decls:12,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start",3,"perfectScrollbar"],["fxLayout","column","fxFlex","90","fxLayoutAlign","start stretch",1,"w-100"],["class","m-2 multi-node-select",3,"value","selectionChange",4,"ngIf"],[1,"w-100"],[3,"dataSource","treeControl",4,"ngIf"],[3,"dataSource","treeControl"],[3,"click",4,"matTreeNodeDef"],["fxLayout","column","fxFlex","10","fxLayoutAlign","end stretch",1,"w-100"],["boltzIconBlock",""],[1,"m-2","multi-node-select",3,"value","selectionChange"],["tabindex","1",3,"value",4,"ngFor","ngForOf"],["tabindex","1",3,"value"],["tree",""],["matTreeNodeToggle","","routerLinkActive","active-link",3,"routerLink",4,"matTreeNodeDef"],["fxLayout","column","matTreeNodeToggle","",4,"matTreeNodeDef","matTreeNodeDefWhen"],["matTreeNodeToggle","","routerLinkActive","active-link",3,"routerLink"],[3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["class","fa-icon-small mr-2",4,"ngIf"],["class","fa-icon-small mr-2",3,"icon",4,"ngIf"],["class","mat-icon-36",4,"ngIf"],[1,"fa-icon-small","mr-2"],[3,"ngTemplateOutlet"],[1,"fa-icon-small","mr-2",3,"icon"],[1,"mat-icon-36"],["fxLayout","column","matTreeNodeToggle",""],["fxLayout","row","fxLayoutAlign","start center",1,"mat-nested-tree-node-parent"],["fxFlex","89","fxLayoutAlign","start center"],["class","mr-2",4,"ngIf"],["fxFlex","11","mat-icon-button","","fxLayoutAlign","end center"],[1,"mat-icon-rtl-mirror"],[1,"mat-nested-tree-node-child"],["matTreeNodeOutlet",""],[1,"mr-2"],["class","fa-icon-small mr-2","matTooltipPosition","right",3,"icon","matTooltip",4,"ngIf"],["class","mat-icon-36","matTooltipPosition","right",3,"matTooltip",4,"ngIf"],["matTooltipPosition","right",1,"fa-icon-small","mr-2",3,"icon","matTooltip"],["matTooltipPosition","right",1,"mat-icon-36",3,"matTooltip"],["viewBox","0 0 78 78","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink"],["id","Logo","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","Group"],["id","Oval","cx","39","cy","39","r","37.5",1,"boltz-icon"],["d","M36.4583326,43.7755404 L40.53965,35.2316544 L39.4324865,35.2316544 L46.0754873,17.6071752 C46.292579,17.0204094 46.3287609,16.5159331 46.1840331,16.0937464 C46.0393053,15.671561 45.7860319,15.3674444 45.4242131,15.1813966 C45.0623942,14.9953487 44.6535376,14.9524146 44.1976433,15.0525945 C43.7417511,15.1527743 43.3256596,15.4461573 42.9493689,15.9327433 L22.6078557,40.7701025 C22.2026186,41.2710003 22,41.7575877 22,42.2298646 C22,42.6735173 22.1592003,43.0420366 22.477601,43.3354226 C22.7960017,43.6288058 23.1940025,43.7755404 23.6716036,43.7755404 L36.4583326,43.7755404 Z","id","Path",1,"boltz-icon-fill"],["d","M44.4883879,63.7755404 L48.8604707,55.165009 L47.6744296,55.165009 L54.7906978,37.4030526 C55.0232558,36.8117097 55.0620155,36.3032983 54.9069768,35.8778185 C54.7519381,35.4523399 54.4806208,35.1458511 54.0930248,34.958352 C53.7054289,34.7708528 53.2674441,34.7275839 52.7790706,34.8285452 C52.2906992,34.9295065 51.8449641,35.2251779 51.4418653,35.7155595 L29.6511611,60.746659 C29.2170537,61.251464 29,61.7418469 29,62.2178078 C29,62.6649211 29.1705423,63.036315 29.5116268,63.3319895 C29.8527113,63.6276613 30.2790669,63.7755404 30.7906936,63.7755404 L44.4883879,63.7755404 Z","id","Path-Copy","transform","translate(42.000000, 49.275540) rotate(-180.000000) translate(-42.000000, -49.275540) ",1,"boltz-icon-fill"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.TgZ(1,"div",1),r.YNc(2,Fr,2,2,"mat-select",2),r._UZ(3,"mat-divider",3),r.YNc(4,jr,4,3,"mat-tree",4),r._UZ(5,"mat-divider",3),r.TgZ(6,"mat-tree",5),r.YNc(7,Jr,6,4,"mat-tree-node",6),r.qZA(),r.qZA(),r.TgZ(8,"div",7),r.YNc(9,ts,2,2,"mat-tree",4),r.qZA(),r.qZA(),r.YNc(10,es,6,0,"ng-template",null,8,r.W1O)),2&t&&(r.xp6(2),r.Q6J("ngIf",e.appConfig.nodes.length>1),r.xp6(2),r.Q6J("ngIf",e.settings.lnServerUrl),r.xp6(2),r.Q6J("dataSource",e.navMenusShowData)("treeControl",e.treeControlShowData),r.xp6(3),r.Q6J("ngIf",e.showLogout))},directives:[P.xw,P.yH,P.Wh,Q.$V,U.O5,Ot.d,Dr.gi,Dr.fQ,X.gD,U.sg,tt.ey,Dr.uo,Dr.eu,R.Od,R.rH,U.tP,F.BN,Mi.Hw,Dr.GZ,$.lW,Dr.Ar,Nr.gM],styles:[".tree-children-invisible[_ngcontent-%COMP%]{display:none}"]}),t})();var ns=i(7806);const rs=["sideNavigation"],ss=["sideNavContent"];function os(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",13),r.NdJ("click",function(){return r.CHM(t),r.oxw().sideNavToggle()}),r.TgZ(1,"mat-icon"),r._uU(2,"menu"),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("matTooltip",t.flgSideNavOpened?"Hide Navigation Menu":"Show Navigation Menu")("matTooltipDisabled",t.smallScreen)}}function as(t,e){1&t&&(r.O4$(),r._UZ(0,"path",18))}function ls(t,e){1&t&&(r.O4$(),r._UZ(0,"path",19))}function cs(t,e){if(1&t){const t=r.EpF();r.TgZ(0,"button",14),r.NdJ("click",function(){r.CHM(t);const e=r.oxw();return e.flgSidenavPinned=!e.flgSidenavPinned}),r.O4$(),r.TgZ(1,"svg",15),r.YNc(2,as,1,0,"path",16),r.YNc(3,ls,1,0,"path",17),r.qZA(),r.qZA()}if(2&t){const t=r.oxw();r.Q6J("matTooltip",t.flgSidenavPinned?"Unpin Navigation Menu":"Pin Navigation Menu"),r.xp6(2),r.Q6J("ngIf",!t.flgSidenavPinned),r.xp6(1),r.Q6J("ngIf",t.flgSidenavPinned)}}function hs(t,e){if(1&t&&(r.TgZ(0,"span"),r._uU(1),r.qZA()),2&t){const t=r.oxw();r.xp6(1),r.Oqu(t.information.alias?"RTL - "+t.information.alias:"RTL")}}function us(t,e){if(1&t&&(r.TgZ(0,"span"),r._uU(1),r.qZA()),2&t){const t=r.oxw();r.xp6(1),r.Oqu(t.information.alias?"Ride The Lightning - "+t.information.alias:"Ride The Lightning")}}function ds(t,e){1&t&&(r.TgZ(0,"div",20),r._UZ(1,"mat-spinner",21),r.TgZ(2,"h4"),r._uU(3,"Loading RTL..."),r.qZA(),r.qZA())}const ps=function(t,e){return[t,e]};let fs=(()=>{class t{constructor(t,e,i,n,r,s,o,a,l){this.logger=t,this.commonService=e,this.store=i,this.actions=n,this.userIdle=r,this.router=s,this.sessionService=o,this.breakpointObserver=a,this.renderer=l,this.information={},this.flgLoading=[!0],this.flgSideNavOpened=!0,this.flgCopied=!1,this.accessKey="",this.xSmallScreen=!1,this.smallScreen=!1,this.flgSidenavPinned=!0,this.flgLoggedIn=!1,this.unSubs=[new h.x,new h.x,new h.x,new h.x,new h.x,new h.x]}ngOnInit(){this.router.events.subscribe(t=>{t instanceof R.m2&&document.getElementsByTagName("mat-sidenav-content")[0].scrollTo(0,0)}),this.breakpointObserver.observe([Cr.u3.XSmall,Cr.u3.TabletPortrait,Cr.u3.Small,Cr.u3.Medium,Cr.u3.Large,Cr.u3.XLarge]).pipe((0,k.R)(this.unSubs[0])).subscribe(t=>{t.breakpoints[Cr.u3.XSmall]?(this.commonService.setScreenSize(G.cu.XS),this.smallScreen=!0):t.breakpoints[Cr.u3.TabletPortrait]?(this.commonService.setScreenSize(G.cu.SM),this.smallScreen=!0):t.breakpoints[Cr.u3.Small]||t.breakpoints[Cr.u3.Medium]?(this.commonService.setScreenSize(G.cu.MD),this.smallScreen=!1):t.breakpoints[Cr.u3.Large]?(this.commonService.setScreenSize(G.cu.LG),this.smallScreen=!1):(this.commonService.setScreenSize(G.cu.XL),this.smallScreen=!1)}),this.store.dispatch(new j.XF),this.accessKey=this.readAccessKey(),this.store.select("root").pipe((0,k.R)(this.unSubs[1])).subscribe(t=>{this.selNode=t.selNode,this.settings=this.selNode.settings,this.appConfig=t.appConfig,this.information=t.nodeData,this.flgLoading[0]=!this.information.identity_pubkey,this.logger.info(this.settings),this.sessionService.getItem("token")?(this.flgLoggedIn=!0,this.userIdle.startWatching()):(this.flgLoggedIn=!1,this.flgLoading[0]=!1)}),"true"===this.sessionService.getItem("defaultPassword")&&(this.flgSideNavOpened=!1),this.actions.pipe((0,k.R)(this.unSubs[2]),(0,A.h)(t=>t.type===j.rZ||t.type===j.Nv)).subscribe(t=>{t.type===j.rZ&&(this.sessionService.getItem("token")||(+t.payload.sso.rtlSSO?!this.accessKey||this.accessKey.trim().length<32?this.router.navigate(["./error"],{state:{errorCode:"406",errorMessage:"Access key too short. It should be at least 32 characters long."}}):this.store.dispatch(new j.m3({password:rt(this.accessKey),defaultPassword:!1})):this.router.navigate(["./login"]))),t.type===j.Nv&&(this.flgLoggedIn=!1,this.userIdle.stopWatching(),this.userIdle.stopTimer())}),this.userIdle.onTimerStart().pipe((0,k.R)(this.unSubs[3])).subscribe(t=>{this.logger.info("Counting Down: "+(11-t))}),this.userIdle.onTimeout().pipe((0,k.R)(this.unSubs[4])).subscribe(()=>{this.logger.info("Time Out!"),this.sessionService.getItem("token")&&(this.flgLoggedIn=!1,this.logger.warn("Time limit exceeded for session inactivity."),this.store.dispatch(new j.Ac),this.store.dispatch(new j.wu({data:{type:G.n_.WARNING,alertTitle:"Logging out",titleMessage:"Time limit exceeded for session inactivity."}})),this.store.dispatch(new j.RD))}),"true"===this.sessionService.getItem("defaultPassword")&&(this.flgSideNavOpened=!1)}readAccessKey(){const t=window.location.href;return t.includes("access-key=")?t.substring(t.lastIndexOf("access-key=")+11).trim():null}ngAfterViewInit(){this.smallScreen?(this.sideNavigation.close(),this.commonService.setContainerSize(this.sideNavContent.elementRef.nativeElement.clientWidth,this.sideNavContent.elementRef.nativeElement.clientHeight)):setTimeout(()=>{this.flgLoggedIn&&this.renderer.setStyle(this.sideNavContent.elementRef.nativeElement,"marginLeft","22rem"),this.commonService.setContainerSize(this.sideNavContent.elementRef.nativeElement.clientWidth,this.sideNavContent.elementRef.nativeElement.clientHeight)},100)}sideNavToggle(){this.flgSideNavOpened=!this.flgSideNavOpened,this.sideNavigation.toggle()}onNavigationClicked(t){this.smallScreen&&this.sideNavigation.close()}copiedText(t){this.flgCopied=!0,setTimeout(()=>{this.flgCopied=!1},5e3),this.logger.info("Copied Text: "+t)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(),t.complete()})}}return t.\u0275fac=function(e){return new(e||t)(r.Y36(V.mQ),r.Y36(le.v),r.Y36(a.yh),r.Y36(l.eX),r.Y36(O),r.Y36(R.F0),r.Y36(It.m),r.Y36(Cr.Yg),r.Y36(r.Qsj))},t.\u0275cmp=r.Xpm({type:t,selectors:[["rtl-app"]],viewQuery:function(t,e){if(1&t&&(r.Gf(rs,5),r.Gf(ss,5)),2&t){let t;r.iGM(t=r.CRH())&&(e.sideNavigation=t.first),r.iGM(t=r.CRH())&&(e.sideNavContent=t.first)}},decls:23,vars:15,consts:[["fxLayout","column","id","rtl-container",1,"rtl-container","medium",3,"ngClass"],["fxLayout","row","fxLayoutAlign","space-between center",1,"padding-gap-x","bg-primary","rtl-top-toolbar"],["class","top-toolbar-icon mr-1","mat-icon-button","","matTooltipPosition","right",3,"matTooltip","matTooltipDisabled","click",4,"ngIf"],["mat-icon-button","","matTooltipPosition","right",3,"matTooltip","click",4,"ngIf"],[4,"ngIf"],[1,"sidenav","mat-elevation-z6",3,"perfectScrollbar","opened","mode"],["sideNavigation",""],["fxFlex","100",3,"ChildNavClicked"],[3,"perfectScrollbar"],["sideNavContent",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"inner-sidenav-content"],["outlet","outlet"],["class","rtl-spinner",4,"ngIf"],["mat-icon-button","","matTooltipPosition","right",1,"top-toolbar-icon","mr-1",3,"matTooltip","matTooltipDisabled","click"],["mat-icon-button","","matTooltipPosition","right",3,"matTooltip","click"],["viewBox","0 0 32 32",1,"top-toolbar-icon","icon-pinned"],["fill","currentColor","d","M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z",4,"ngIf"],["fill","currentColor","d","M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z",4,"ngIf"],["fill","currentColor","d","M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z"],["fill","currentColor","d","M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z"],[1,"rtl-spinner"],["color","accent"]],template:function(t,e){1&t&&(r.TgZ(0,"div",0),r.ALo(1,"lowercase"),r.ALo(2,"lowercase"),r.TgZ(3,"mat-toolbar",1),r.TgZ(4,"div"),r.YNc(5,os,3,2,"button",2),r.YNc(6,cs,4,3,"button",3),r.qZA(),r.TgZ(7,"div"),r.YNc(8,hs,2,1,"span",4),r.YNc(9,us,2,1,"span",4),r.qZA(),r.TgZ(10,"div"),r._UZ(11,"rtl-top-menu"),r.qZA(),r.qZA(),r.TgZ(12,"mat-sidenav-container"),r.TgZ(13,"mat-sidenav",5,6),r.TgZ(15,"rtl-side-navigation",7),r.NdJ("ChildNavClicked",function(t){return e.onNavigationClicked(t)}),r.qZA(),r.qZA(),r.TgZ(16,"mat-sidenav-content",8,9),r.TgZ(18,"div",10),r._UZ(19,"router-outlet",null,11),r.qZA(),r.qZA(),r._uU(21,"> "),r.qZA(),r.YNc(22,ds,4,0,"div",12),r.qZA()),2&t&&(r.Q6J("ngClass",r.WLB(12,ps,r.lcZ(1,8,e.settings.themeColor),r.lcZ(2,10,e.settings.themeMode))),r.xp6(5),r.Q6J("ngIf",e.flgLoggedIn),r.xp6(1),r.Q6J("ngIf",!e.smallScreen&&e.flgLoggedIn),r.xp6(2),r.Q6J("ngIf",e.smallScreen),r.xp6(1),r.Q6J("ngIf",!e.smallScreen),r.xp6(4),r.Q6J("opened",e.flgSideNavOpened&&e.flgLoggedIn)("mode",e.flgSidenavPinned&&!e.smallScreen?"side":"over"),r.xp6(9),r.Q6J("ngIf",!e.settings.themeColor))},directives:[P.xw,U.mk,ue.oO,Sr.Ye,P.Wh,U.O5,Lr,Ir.TM,Ir.JX,Q.$V,is,P.yH,Ir.Rh,R.lC,$.lW,Nr.gM,Mi.Hw,ns.$g],pipes:[U.i8],styles:[".inline-spinner[_ngcontent-%COMP%]{display:inline-flex!important;top:0!important}"],data:{animation:[Ar.g]}}),t})(),ms=(()=>{class t{constructor(t){this.sessionService=t}intercept(t,e){if(this.sessionService.getItem("token")){const i=t.clone({headers:t.headers.set("Authorization","Bearer "+this.sessionService.getItem("token"))});return e.handle(i)}return e.handle(t)}}return t.\u0275fac=function(e){return new(e||t)(r.LFG(It.m))},t.\u0275prov=r.Yz7({token:t,factory:t.\u0275fac}),t})();var gs=i(3556);const ys={apisCallStatus:{FetchInfo:{status:G.Bn.UN_INITIATED},FetchFees:{status:G.Bn.UN_INITIATED},FetchChannels:{status:G.Bn.UN_INITIATED},FetchOnchainBalance:{status:G.Bn.UN_INITIATED},FetchPeers:{status:G.Bn.UN_INITIATED},FetchPayments:{status:G.Bn.UN_INITIATED},FetchInvoices:{status:G.Bn.UN_INITIATED},FetchTransactions:{status:G.Bn.UN_INITIATED}},nodeSettings:{userPersona:G.ol.OPERATOR,selCurrencyUnit:"USD",fiatConversion:!1,channelBackupPath:"",currencyUnits:[]},information:{},fees:{},activeChannels:[],pendingChannels:[],inactiveChannels:[],channelsStatus:{},channelStats:[],onchainBalance:{total:0,confirmed:0,unconfirmed:0},lightningBalance:{localBalance:-1,remoteBalance:-1},peers:[],payments:{},transactions:[],invoices:[]},bs={apisCallStatus:{FetchInfo:{status:G.Bn.UN_INITIATED},FetchInvoices:{status:G.Bn.UN_INITIATED},FetchFees:{status:G.Bn.UN_INITIATED},FetchChannels:{status:G.Bn.UN_INITIATED},FetchBalance:{status:G.Bn.UN_INITIATED},FetchLocalRemoteBalance:{status:G.Bn.UN_INITIATED},FetchFeeRatesperkb:{status:G.Bn.UN_INITIATED},FetchFeeRatesperkw:{status:G.Bn.UN_INITIATED},FetchPeers:{status:G.Bn.UN_INITIATED},FetchUTXOs:{status:G.Bn.UN_INITIATED},FetchPayments:{status:G.Bn.UN_INITIATED},GetForwardingHistory:{status:G.Bn.UN_INITIATED},GetFailedForwardingHistory:{status:G.Bn.UN_INITIATED}},nodeSettings:{userPersona:G.ol.OPERATOR,selCurrencyUnit:"USD",fiatConversion:!1,channelBackupPath:"",currencyUnits:[]},information:{},fees:{},feeRatesPerKB:{},feeRatesPerKW:{},balance:{},localRemoteBalance:{localBalance:-1,remoteBalance:-1},peers:[],allChannels:[],payments:[],forwardingHistory:[],failedForwardingHistory:[],invoices:{invoices:[]},utxos:[]};var vs=i(4979);const _s={userPersona:"OPERATOR",themeMode:"DAY",themeColor:"PURPLE",channelBackupPath:"",selCurrencyUnit:"USD",fiatConversion:!1,currencyUnits:["Sats","BTC","USD"],bitcoindConfigPath:""},ws={configPath:"",swapMacaroonPath:"",boltzMacaroonPath:""},xs={apisCallStatus:{Login:{status:G.Bn.UN_INITIATED},IsAuthorized:{status:G.Bn.UN_INITIATED}},selNode:{settings:_s,authentication:ws,lnImplementation:"LND"},appConfig:{defaultNodeIndex:-1,selectedNodeIndex:-1,sso:{rtlSSO:0,logoutRedirectLink:""},enable2FA:!1,nodes:[{settings:_s,authentication:ws}]},nodeData:{}},Cs={root:function(t=xs,e){switch(e.type){case j.O3:const i=t.apisCallStatus;return i[e.payload.action]={status:e.payload.status,statusCode:e.payload.statusCode,message:e.payload.message,URL:e.payload.URL,filePath:e.payload.filePath},Object.assign(Object.assign({},t),{apisCallStatus:i});case j.dh:return Object.assign(Object.assign({},xs),{appConfig:t.appConfig,selNode:e.payload});case j.RP:return Object.assign(Object.assign({},t),{selNode:e.payload.lnNode});case j.zH:return Object.assign(Object.assign({},t),{nodeData:e.payload});case j.rZ:return Object.assign(Object.assign({},t),{appConfig:e.payload});default:return t}},lnd:vs.mw,cl:function(t=bs,e){switch(e.type){case oe.qe:const i=t.apisCallStatus;return i[e.payload.action]={status:e.payload.status,statusCode:e.payload.statusCode,message:e.payload.message,URL:e.payload.URL,filePath:e.payload.filePath},Object.assign(Object.assign({},t),{apisCallStatus:i});case oe.Xj:return Object.assign(Object.assign({},t),{nodeSettings:e.payload});case oe.uq:return Object.assign(Object.assign({},bs),{nodeSettings:e.payload});case oe.Ql:return Object.assign(Object.assign({},t),{information:e.payload});case oe.iK:return Object.assign(Object.assign({},t),{fees:e.payload});case oe.XQ:return e.payload.perkb?Object.assign(Object.assign({},t),{feeRatesPerKB:e.payload}):e.payload.perkw?Object.assign(Object.assign({},t),{feeRatesPerKW:e.payload}):Object.assign({},t);case oe.UO:return Object.assign(Object.assign({},t),{balance:e.payload});case oe.qt:return Object.assign(Object.assign({},t),{localRemoteBalance:e.payload});case oe.sX:return Object.assign(Object.assign({},t),{peers:e.payload});case oe.W2:return Object.assign(Object.assign({},t),{peers:[...t.peers,e.payload]});case oe.qH:const n=[...t.peers],r=t.peers.findIndex(t=>t.id===e.payload.id);return r>-1&&n.splice(r,1),Object.assign(Object.assign({},t),{peers:n});case oe.zj:return Object.assign(Object.assign({},t),{allChannels:e.payload});case oe.Vb:const s=[...t.allChannels],o=t.allChannels.findIndex(t=>t.channel_id===e.payload.channelId);return o>-1&&s.splice(o,1),Object.assign(Object.assign({},t),{allChannels:s});case oe.nL:return Object.assign(Object.assign({},t),{payments:e.payload});case oe.bH:const a=t.fees;if(e.payload&&e.payload.length>0){const i=[...t.allChannels];e.payload.forEach((t,e)=>{if(i&&i.length>0)for(let n=0;n0){const i=[...t.allChannels];e.payload.forEach((t,e)=>{if(i&&i.length>0)for(let n=0;nt.label===e.payload.label?e.payload:t),Object.assign(Object.assign({},t),{invoices:c});case oe.Q2:return Object.assign(Object.assign({},t),{utxos:e.payload});default:return t}},ecl:function(t=ys,e){switch(e.type){case se.f:const i=t.apisCallStatus;return i[e.payload.action]={status:e.payload.status,statusCode:e.payload.statusCode,message:e.payload.message,URL:e.payload.URL,filePath:e.payload.filePath},Object.assign(Object.assign({},t),{apisCallStatus:i});case se.gk:return Object.assign(Object.assign({},t),{nodeSettings:e.payload});case se.ok:return Object.assign(Object.assign({},ys),{nodeSettings:e.payload});case se.ml:return Object.assign(Object.assign({},t),{information:e.payload});case se.UA:return Object.assign(Object.assign({},t),{fees:e.payload});case se.L2:return Object.assign(Object.assign({},t),{activeChannels:e.payload});case se.JI:return Object.assign(Object.assign({},t),{pendingChannels:e.payload});case se.ct:return Object.assign(Object.assign({},t),{inactiveChannels:e.payload});case se.mn:return Object.assign(Object.assign({},t),{channelsStatus:e.payload});case se.ro:return Object.assign(Object.assign({},t),{channelStats:e.payload});case se.CF:return Object.assign(Object.assign({},t),{onchainBalance:e.payload});case se.$9:return Object.assign(Object.assign({},t),{lightningBalance:e.payload});case se.IH:return Object.assign(Object.assign({},t),{peers:e.payload});case se.J4:const n=[...t.peers],r=t.peers.findIndex(t=>t.nodeId===e.payload.nodeId);return r>-1&&n.splice(r,1),Object.assign(Object.assign({},t),{peers:n});case se.Cu:const s=[...t.activeChannels],o=t.activeChannels.findIndex(t=>t.channelId===e.payload.channelId);return o>-1&&s.splice(o,1),Object.assign(Object.assign({},t),{activeChannels:s});case se.Wn:if(e.payload&&e.payload.relayed){const i=[...t.activeChannels,...t.pendingChannels,...t.inactiveChannels];e.payload.relayed.forEach(t=>{if(i&&i.length>0)for(let e=0;et.paymentHash===e.payload.paymentHash?e.payload:t),Object.assign(Object.assign({},t),{invoices:l});default:return t}}};var As=i(8248),Ss=i(8640),Es=i(4147);let ks=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=r.oAB({type:t,bootstrap:[fs]}),t.\u0275inj=r.cJS({providers:[{provide:o.TP,useClass:ms,multi:!0},_r.a1,It.m,gs.D,Re.W,le.v,Ei],imports:[[s.PW,xr.m,wr,Cr.xu,n.t6,D.forRoot({idle:3590,timeout:10,ping:12e3}),a.Aw.forRoot(Cs,{runtimeChecks:{strictStateImmutability:!1,strictActionImmutability:!1}}),l.sQ.forRoot([lt.V,As.l,Ss.s,Es.o]),Ai.N.production?[]:c.FT.instrument()]]}),t})();Ai.N.production&&(0,r.G48)(),n.q6().bootstrapModule(ks).catch(t=>console.log(t))},9162:(t,e,i)=>{"use strict";i.d(e,{ZT:()=>r,mG:()=>s,Jh:()=>o,XA:()=>a,CR:()=>l,ev:()=>c,qq:()=>h,FC:()=>u,KL:()=>d});var n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)};function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function s(t,e,i,n){return new(i||(i=Promise))(function(r,s){function o(t){try{l(n.next(t))}catch(e){s(e)}}function a(t){try{l(n.throw(t))}catch(e){s(e)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((n=n.apply(t,e||[])).next())})}function o(t,e){var i,n,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(i)throw new TypeError("Generator is already executing.");for(;o;)try{if(i=1,n&&(r=2&s[0]?n.return:s[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,s[1])).done)return r;switch(n=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((r=(r=o.trys).length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function l(t,e){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var n,r,s=i.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(n=s.next()).done;)o.push(n.value)}catch(a){r={error:a}}finally{try{n&&!n.done&&(i=s.return)&&i.call(s)}finally{if(r)throw r.error}}return o}function c(t,e){for(var i=0,n=e.length,r=t.length;i1||a(t,e)})})}function a(t,e){try{(i=r[t](e)).value instanceof h?Promise.resolve(i.value.v).then(l,c):u(s[0][2],i)}catch(n){u(s[0][3],n)}var i}function l(t){a("next",t)}function c(t){a("throw",t)}function u(t,e){t(e),s.shift(),s.length&&a(s[0][0],s[0][1])}}function d(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,i=t[Symbol.asyncIterator];return i?i.call(t):(t=a(t),e={},n("next"),n("throw"),n("return"),e[Symbol.asyncIterator]=function(){return this},e);function n(i){e[i]=t[i]&&function(e){return new Promise(function(n,r){!function(t,e,i,n){Promise.resolve(n).then(function(e){t({value:e,done:i})},e)}(n,r,(e=t[i](e)).done,e.value)})}}}},5415:t=>{"use strict";t.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},2063:t=>{"use strict";t.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},2236:t=>{"use strict";t.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},1930:t=>{"use strict";t.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},7519:t=>{"use strict";t.exports={i8:"6.5.4"}},873:t=>{"use strict";t.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},6601:()=>{},8623:()=>{},2361:()=>{},4616:()=>{}},t=>{"use strict";t(t.s=1042)}]); \ No newline at end of file diff --git a/angular/polyfills.a979cbbe16939013cdcf.js b/angular/polyfills.a979cbbe16939013cdcf.js deleted file mode 100644 index 408689a8..00000000 --- a/angular/polyfills.a979cbbe16939013cdcf.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkrtl=self.webpackChunkrtl||[]).push([[429],{6698:(t,e)=>{"use strict";e.byteLength=function(t){var e=c(t),n=e[1];return 3*(e[0]+n)/4-n},e.toByteArray=function(t){var e,n,i=c(t),s=i[0],a=i[1],u=new o(function(t,e,n){return 3*(e+n)/4-n}(0,s,a)),l=0,h=a>0?s-4:s;for(n=0;n>16&255,u[l++]=e>>8&255,u[l++]=255&e;return 2===a&&(e=r[t.charCodeAt(n)]<<2|r[t.charCodeAt(n+1)]>>4,u[l++]=255&e),1===a&&(e=r[t.charCodeAt(n)]<<10|r[t.charCodeAt(n+1)]<<4|r[t.charCodeAt(n+2)]>>2,u[l++]=e>>8&255,u[l++]=255&e),u},e.fromByteArray=function(t){for(var e,r=t.length,o=r%3,i=[],s=16383,a=0,c=r-o;ac?c:a+s));return 1===o?i.push(n[(e=t[r-1])>>2]+n[e<<4&63]+"=="):2===o&&i.push(n[(e=(t[r-2]<<8)+t[r-1])>>10]+n[e>>4&63]+n[e<<2&63]+"="),i.join("")};for(var n=[],r=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,a=i.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function u(t,e,r){for(var o,i=[],s=e;s>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return i.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},3833:(t,e,n)=>{"use strict";var r=n(6698),o=n(2390),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=c,e.SlowBuffer=function(t){return+t!=t&&(t=0),c.alloc(+t)},e.INSPECT_MAX_BYTES=50;var s=2147483647;function a(t){if(t>s)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,c.prototype),e}function c(t,e,n){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return h(t)}return u(t,e,n)}function u(t,e,n){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!c.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var n=0|g(t,e),r=a(n),o=r.write(t,e);return o!==n&&(r=r.slice(0,o)),r}(t,e);if(ArrayBuffer.isView(t))return function(t){if(N(t,Uint8Array)){var e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return f(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(N(t,ArrayBuffer)||t&&N(t.buffer,ArrayBuffer))return p(t,e,n);if("undefined"!=typeof SharedArrayBuffer&&(N(t,SharedArrayBuffer)||t&&N(t.buffer,SharedArrayBuffer)))return p(t,e,n);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var r=t.valueOf&&t.valueOf();if(null!=r&&r!==t)return c.from(r,e,n);var o=function(t){if(c.isBuffer(t)){var e=0|d(t.length),n=a(e);return 0===n.length||t.copy(n,0,0,e),n}return void 0!==t.length?"number"!=typeof t.length||F(t.length)?a(0):f(t):"Buffer"===t.type&&Array.isArray(t.data)?f(t.data):void 0}(t);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return c.from(t[Symbol.toPrimitive]("string"),e,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function l(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function h(t){return l(t),a(t<0?0:0|d(t))}function f(t){for(var e=t.length<0?0:0|d(t.length),n=a(e),r=0;r=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|t}function g(t,e){if(c.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||N(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var n=t.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;for(var o=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return M(t).length;default:if(o)return r?-1:U(t).length;e=(""+e).toLowerCase(),o=!0}}function y(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return A(this,e,n);case"utf8":case"utf-8":return Z(this,e,n);case"ascii":return C(this,e,n);case"latin1":case"binary":return P(this,e,n);case"base64":return S(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function m(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function v(t,e,n,r,o){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),F(n=+n)&&(n=o?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(o)return-1;n=t.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof e&&(e=c.from(e,r)),c.isBuffer(e))return 0===e.length?-1:b(t,e,n,r,o);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):b(t,[e],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(t,e,n,r,o){var i,s=1,a=t.length,c=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;s=2,a/=2,c/=2,n/=2}function u(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(o){var l=-1;for(i=n;ia&&(n=a-c),i=n;i>=0;i--){for(var h=!0,f=0;fo&&(r=o):r=o;var i=e.length;r>i/2&&(r=i/2);for(var s=0;s>8,o.push(n%256),o.push(r);return o}(e,t.length-n),t,n,r)}function S(t,e,n){return r.fromByteArray(0===e&&n===t.length?t:t.slice(e,n))}function Z(t,e,n){n=Math.min(t.length,n);for(var r=[],o=e;o239?4:u>223?3:u>191?2:1;if(o+h<=n)switch(h){case 1:u<128&&(l=u);break;case 2:128==(192&(i=t[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:s=t[o+2],128==(192&(i=t[o+1]))&&128==(192&s)&&(c=(15&u)<<12|(63&i)<<6|63&s)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:s=t[o+2],a=t[o+3],128==(192&(i=t[o+1]))&&128==(192&s)&&128==(192&a)&&(c=(15&u)<<18|(63&i)<<12|(63&s)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,h=1):l>65535&&(r.push((l-=65536)>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=h}return function(t){var e=t.length;if(e<=O)return String.fromCharCode.apply(String,t);for(var n="",r=0;rr.length?c.from(i).copy(r,o):Uint8Array.prototype.set.call(r,i,o);else{if(!c.isBuffer(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(r,o)}o+=i.length}return r},c.byteLength=g,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;en&&(t+=" ... "),""},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(t,e,n,r,o){if(N(t,Uint8Array)&&(t=c.from(t,t.offset,t.byteLength)),!c.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),e<0||n>t.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&e>=n)return 0;if(r>=o)return-1;if(e>=n)return 1;if(this===t)return 0;for(var i=(o>>>=0)-(r>>>=0),s=(n>>>=0)-(e>>>=0),a=Math.min(i,s),u=this.slice(r,o),l=t.slice(e,n),h=0;h>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-e;if((void 0===n||n>o)&&(n=o),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return w(this,t,e,n);case"utf8":case"utf-8":return k(this,t,e,n);case"ascii":case"latin1":case"binary":return _(this,t,e,n);case"base64":return E(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,e,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;function C(t,e,n){var r="";n=Math.min(t.length,n);for(var o=e;or)&&(n=r);for(var o="",i=e;in)throw new RangeError("Trying to access beyond buffer length")}function B(t,e,n,r,o,i){if(!c.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>o||et.length)throw new RangeError("Index out of range")}function z(t,e,n,r,o,i){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(t,e,n,r,i){return e=+e,n>>>=0,i||z(t,0,n,4),o.write(t,e,n,r,23,4),n+4}function L(t,e,n,r,i){return e=+e,n>>>=0,i||z(t,0,n,8),o.write(t,e,n,r,52,8),n+8}c.prototype.slice=function(t,e){var n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e>>=0,e>>>=0,n||I(t,e,this.length);for(var r=this[t],o=1,i=0;++i>>=0,e>>>=0,n||I(t,e,this.length);for(var r=this[t+--e],o=1;e>0&&(o*=256);)r+=this[t+--e]*o;return r},c.prototype.readUint8=c.prototype.readUInt8=function(t,e){return t>>>=0,e||I(t,1,this.length),this[t]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(t,e){return t>>>=0,e||I(t,2,this.length),this[t]|this[t+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(t,e){return t>>>=0,e||I(t,2,this.length),this[t]<<8|this[t+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(t,e){return t>>>=0,e||I(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(t,e){return t>>>=0,e||I(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},c.prototype.readIntLE=function(t,e,n){t>>>=0,e>>>=0,n||I(t,e,this.length);for(var r=this[t],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*e)),r},c.prototype.readIntBE=function(t,e,n){t>>>=0,e>>>=0,n||I(t,e,this.length);for(var r=e,o=1,i=this[t+--r];r>0&&(o*=256);)i+=this[t+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*e)),i},c.prototype.readInt8=function(t,e){return t>>>=0,e||I(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},c.prototype.readInt16LE=function(t,e){t>>>=0,e||I(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(t,e){t>>>=0,e||I(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(t,e){return t>>>=0,e||I(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},c.prototype.readInt32BE=function(t,e){return t>>>=0,e||I(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},c.prototype.readFloatLE=function(t,e){return t>>>=0,e||I(t,4,this.length),o.read(this,t,!0,23,4)},c.prototype.readFloatBE=function(t,e){return t>>>=0,e||I(t,4,this.length),o.read(this,t,!1,23,4)},c.prototype.readDoubleLE=function(t,e){return t>>>=0,e||I(t,8,this.length),o.read(this,t,!0,52,8)},c.prototype.readDoubleBE=function(t,e){return t>>>=0,e||I(t,8,this.length),o.read(this,t,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(t,e,n,r){t=+t,e>>>=0,n>>>=0,r||B(this,t,e,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[e]=255&t;++i>>=0,n>>>=0,r||B(this,t,e,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[e+o]=255&t;--o>=0&&(i*=256);)this[e+o]=t/i&255;return e+n},c.prototype.writeUint8=c.prototype.writeUInt8=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,1,255,0),this[e]=255&t,e+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},c.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e>>>=0,!r){var o=Math.pow(2,8*n-1);B(this,t,e,n,o-1,-o)}var i=0,s=1,a=0;for(this[e]=255&t;++i>0)-a&255;return e+n},c.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e>>>=0,!r){var o=Math.pow(2,8*n-1);B(this,t,e,n,o-1,-o)}var i=n-1,s=1,a=0;for(this[e+i]=255&t;--i>=0&&(s*=256);)t<0&&0===a&&0!==this[e+i+1]&&(a=1),this[e+i]=(t/s>>0)-a&255;return e+n},c.prototype.writeInt8=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},c.prototype.writeInt16LE=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},c.prototype.writeInt16BE=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},c.prototype.writeInt32LE=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},c.prototype.writeInt32BE=function(t,e,n){return t=+t,e>>>=0,n||B(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},c.prototype.writeFloatLE=function(t,e,n){return j(this,t,e,!0,n)},c.prototype.writeFloatBE=function(t,e,n){return j(this,t,e,!1,n)},c.prototype.writeDoubleLE=function(t,e,n){return L(this,t,e,!0,n)},c.prototype.writeDoubleBE=function(t,e,n){return L(this,t,e,!1,n)},c.prototype.copy=function(t,e,n,r){if(!c.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(i=e;i55295&&n<57344){if(!o){if(n>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(s+1===r){(e-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(e-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((e-=1)<0)break;i.push(n)}else if(n<2048){if((e-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function M(t){return r.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(R,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function x(t,e,n,r){for(var o=0;o=e.length||o>=t.length);++o)e[o+n]=t[o];return o}function N(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function F(t){return t!=t}var H=function(){for(var t="0123456789abcdef",e=new Array(256),n=0;n<16;++n)for(var r=16*n,o=0;o<16;++o)e[r+o]=t[n]+t[o];return e}()},2390:(t,e)=>{e.read=function(t,e,n,r,o){var i,s,a=8*o-r-1,c=(1<>1,l=-7,h=n?o-1:0,f=n?-1:1,p=t[e+h];for(h+=f,i=p&(1<<-l)-1,p>>=-l,l+=a;l>0;i=256*i+t[e+h],h+=f,l-=8);for(s=i&(1<<-l)-1,i>>=-l,l+=r;l>0;s=256*s+t[e+h],h+=f,l-=8);if(0===i)i=1-u;else{if(i===c)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,r),i-=u}return(p?-1:1)*s*Math.pow(2,i-r)},e.write=function(t,e,n,r,o,i){var s,a,c,u=8*i-o-1,l=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),(e+=s+h>=1?f/c:f*Math.pow(2,1-h))*c>=2&&(s++,c/=2),s+h>=l?(a=0,s=l):s+h>=1?(a=(e*c-1)*Math.pow(2,o),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,o),s=0));o>=8;t[n+p]=255&a,p+=d,a/=256,o-=8);for(s=s<0;t[n+p]=255&s,p+=d,s/=256,u-=8);t[n+p-d]|=128*g}},2167:()=>{"use strict";!function(t){const e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n("Zone");const o=t.__Zone_symbol_prefix||"__zone_symbol__";function i(t){return o+t}const s=!0===t[i("forceDuplicateZoneCheck")];if(t.Zone){if(s||"function"!=typeof t.Zone.__symbol__)throw new Error("Zone already loaded.");return t.Zone}class a{constructor(t,e){this._parent=t,this._name=e?e.name||"unnamed":"",this._properties=e&&e.properties||{},this._zoneDelegate=new u(this,this._parent&&this._parent._zoneDelegate,e)}static assertZonePatched(){if(t.Promise!==P.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=a.current;for(;t.parent;)t=t.parent;return t}static get current(){return D.zone}static get currentTask(){return I}static __load_patch(e,o,i=!1){if(P.hasOwnProperty(e)){if(!i&&s)throw Error("Already loaded patch: "+e)}else if(!t["__Zone_disable_"+e]){const i="Zone:"+e;n(i),P[e]=o(t,a,A),r(i,i)}}get parent(){return this._parent}get name(){return this._name}get(t){const e=this.getZoneWith(t);if(e)return e._properties[t]}getZoneWith(t){let e=this;for(;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,e){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}}run(t,e,n,r){D={parent:D,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{D=D.parent}}runGuarded(t,e=null,n,r){D={parent:D,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{D=D.parent}}runTask(t,e,n){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");if(t.state===w&&(t.type===C||t.type===O))return;const r=t.state!=E;r&&t._transitionTo(E,_),t.runCount++;const o=I;I=t,D={parent:D,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==w&&t.state!==S&&(t.type==C||t.data&&t.data.isPeriodic?r&&t._transitionTo(_,E):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(w,E,w))),D=D.parent,I=o}}scheduleTask(t){if(t.zone&&t.zone!==this){let e=this;for(;e;){if(e===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);e=e.parent}}t._transitionTo(k,w);const e=[];t._zoneDelegates=e,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(n){throw t._transitionTo(S,k,w),this._zoneDelegate.handleError(this,n),n}return t._zoneDelegates===e&&this._updateTaskCount(t,1),t.state==k&&t._transitionTo(_,k),t}scheduleMicroTask(t,e,n,r){return this.scheduleTask(new l(Z,t,e,n,r,void 0))}scheduleMacroTask(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))}scheduleEventTask(t,e,n,r,o){return this.scheduleTask(new l(C,t,e,n,r,o))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");t._transitionTo(T,_,E);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(S,T),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(w,T),t.runCount=0,t}_updateTaskCount(t,e){const n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(let r=0;rt.hasTask(n,r),onScheduleTask:(t,e,n,r)=>t.scheduleTask(n,r),onInvokeTask:(t,e,n,r,o,i)=>t.invokeTask(n,r,o,i),onCancelTask:(t,e,n,r)=>t.cancelTask(n,r)};class u{constructor(t,e,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=t,this._parentDelegate=e,this._forkZS=n&&(n&&n.onFork?n:e._forkZS),this._forkDlgt=n&&(n.onFork?e:e._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:e._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:e._interceptZS),this._interceptDlgt=n&&(n.onIntercept?e:e._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:e._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:e._invokeZS),this._invokeDlgt=n&&(n.onInvoke?e:e._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:e._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:e._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?e:e._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:e._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:e._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?e:e._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:e._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:e._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?e:e._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:e._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:e._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?e:e._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:e._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const r=n&&n.onHasTask;(r||e&&e._hasTaskZS)&&(this._hasTaskZS=r?n:c,this._hasTaskDlgt=e,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=t,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=e,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=e,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=e,this._cancelTaskCurrZone=this.zone))}fork(t,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,t,e):new a(t,e)}intercept(t,e,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,t,e,n):e}invoke(t,e,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,t,e,n,r,o):e.apply(n,r)}handleError(t,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,t,e)}scheduleTask(t,e){let n=e;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,t,e),n||(n=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=Z)throw new Error("Task is missing scheduleFn.");m(e)}return n}invokeTask(t,e,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,t,e,n,r):e.callback.apply(n,r)}cancelTask(t,e){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,t,e);else{if(!e.cancelFn)throw Error("Task is not cancelable");n=e.cancelFn(e)}return n}hasTask(t,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,t,e)}catch(n){this.handleError(t,n)}}_updateTaskCount(t,e){const n=this._taskCounts,r=n[t],o=n[t]=r+e;if(o<0)throw new Error("More tasks executed then were scheduled.");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t})}}class l{constructor(e,n,r,o,i,s){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=e,this.source=n,this.data=o,this.scheduleFn=i,this.cancelFn=s,!r)throw new Error("callback is not defined");this.callback=r;const a=this;this.invoke=e===C&&o&&o.useG?l.invokeTask:function(){return l.invokeTask.call(t,a,this,arguments)}}static invokeTask(t,e,n){t||(t=this),B++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==B&&v(),B--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(w,k)}_transitionTo(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${t}', expecting state '${e}'${n?" or '"+n+"'":""}, was '${this._state}'.`);this._state=t,t==w&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const h=i("setTimeout"),f=i("Promise"),p=i("then");let d,g=[],y=!1;function m(e){if(0===B&&0===g.length)if(d||t[f]&&(d=t[f].resolve(0)),d){let t=d[p];t||(t=d.then),t.call(d,v)}else t[h](v,0);e&&g.push(e)}function v(){if(!y){for(y=!0;g.length;){const e=g;g=[];for(let n=0;nD,onUnhandledError:z,microtaskDrainDone:z,scheduleMicroTask:m,showUncaughtError:()=>!a[i("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:z,patchMethod:()=>z,bindArguments:()=>[],patchThen:()=>z,patchMacroTask:()=>z,patchEventPrototype:()=>z,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>z,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>z,wrapWithCurrentZone:()=>z,filterProperties:()=>[],attachOriginToPatched:()=>z,_redefineProperty:()=>z,patchCallbacks:()=>z};let D={parent:null,zone:new a(null,null)},I=null,B=0;function z(){}r("Zone","Zone"),t.Zone=a}("undefined"!=typeof window&&window||"undefined"!=typeof self&&self||global);const t=Object.getOwnPropertyDescriptor,e=Object.defineProperty,n=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,i="addEventListener",s="removeEventListener",a=Zone.__symbol__(i),c=Zone.__symbol__(s),u="true",l="false",h=Zone.__symbol__("");function f(t,e){return Zone.current.wrap(t,e)}function p(t,e,n,r,o){return Zone.current.scheduleMacroTask(t,e,n,r,o)}const d=Zone.__symbol__,g="undefined"!=typeof window,y=g?window:void 0,m=g&&y||"object"==typeof self&&self||global,v=[null];function b(t,e){for(let n=t.length-1;n>=0;n--)"function"==typeof t[n]&&(t[n]=f(t[n],e+"_"+n));return t}function w(t){return!t||!1!==t.writable&&!("function"==typeof t.get&&void 0===t.set)}const k="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,_=!("nw"in m)&&void 0!==m.process&&"[object process]"==={}.toString.call(m.process),E=!_&&!k&&!(!g||!y.HTMLElement),T=void 0!==m.process&&"[object process]"==={}.toString.call(m.process)&&!k&&!(!g||!y.HTMLElement),S={},Z=function(t){if(!(t=t||m.event))return;let e=S[t.type];e||(e=S[t.type]=d("ON_PROPERTY"+t.type));const n=this||t.target||m,r=n[e];let o;if(E&&n===y&&"error"===t.type){const e=t;o=r&&r.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===o&&t.preventDefault()}else o=r&&r.apply(this,arguments),null==o||o||t.preventDefault();return o};function O(n,r,o){let i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),!i||!i.configurable)return;const s=d("on"+r+"patched");if(n.hasOwnProperty(s)&&n[s])return;delete i.writable,delete i.value;const a=i.get,c=i.set,u=r.substr(2);let l=S[u];l||(l=S[u]=d("ON_PROPERTY"+u)),i.set=function(t){let e=this;e||n!==m||(e=m),e&&(e[l]&&e.removeEventListener(u,Z),c&&c.apply(e,v),"function"==typeof t?(e[l]=t,e.addEventListener(u,Z,!1)):e[l]=null)},i.get=function(){let t=this;if(t||n!==m||(t=m),!t)return null;const e=t[l];if(e)return e;if(a){let e=a&&a.call(this);if(e)return i.set.call(this,e),"function"==typeof t.removeAttribute&&t.removeAttribute(r),e}return null},e(n,r,i),n[s]=!0}function C(t,e,n){if(e)for(let r=0;rfunction(e,r){const i=n(e,r);return i.cbIdx>=0&&"function"==typeof r[i.cbIdx]?p(i.name,r[i.cbIdx],i,o):t.apply(e,r)})}function B(t,e){t[d("OriginalDelegate")]=e}let z=!1,j=!1;function L(){try{const t=y.navigator.userAgent;if(-1!==t.indexOf("MSIE ")||-1!==t.indexOf("Trident/"))return!0}catch(t){}return!1}function R(){if(z)return j;z=!0;try{const t=y.navigator.userAgent;-1===t.indexOf("MSIE ")&&-1===t.indexOf("Trident/")&&-1===t.indexOf("Edge/")||(j=!0)}catch(t){}return j}Zone.__load_patch("ZoneAwarePromise",(t,e,n)=>{const r=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=n.symbol,s=[],a=!0===t[i("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],c=i("Promise"),u=i("then");n.onUnhandledError=t=>{if(n.showUncaughtError()){const e=t&&t.rejection;e?console.error("Unhandled Promise rejection:",e instanceof Error?e.message:e,"; Zone:",t.zone.name,"; Task:",t.task&&t.task.source,"; Value:",e,e instanceof Error?e.stack:void 0):console.error(t)}},n.microtaskDrainDone=()=>{for(;s.length;){const e=s.shift();try{e.zone.runGuarded(()=>{if(e.throwOriginal)throw e.rejection;throw e})}catch(t){h(t)}}};const l=i("unhandledPromiseRejectionHandler");function h(t){n.onUnhandledError(t);try{const n=e[l];"function"==typeof n&&n.call(this,t)}catch(r){}}function f(t){return t&&t.then}function p(t){return t}function d(t){return A.reject(t)}const g=i("state"),y=i("value"),m=i("finally"),v=i("parentPromiseValue"),b=i("parentPromiseState"),w=null,k=!0,_=!1;function E(t,e){return n=>{try{S(t,e,n)}catch(r){S(t,!1,r)}}}const T=i("currentTaskTrace");function S(t,r,i){const c=function(){let t=!1;return function(e){return function(){t||(t=!0,e.apply(null,arguments))}}}();if(t===i)throw new TypeError("Promise resolved with itself");if(t[g]===w){let h=null;try{"object"!=typeof i&&"function"!=typeof i||(h=i&&i.then)}catch(l){return c(()=>{S(t,!1,l)})(),t}if(r!==_&&i instanceof A&&i.hasOwnProperty(g)&&i.hasOwnProperty(y)&&i[g]!==w)O(i),S(t,i[g],i[y]);else if(r!==_&&"function"==typeof h)try{h.call(i,c(E(t,r)),c(E(t,!1)))}catch(l){c(()=>{S(t,!1,l)})()}else{t[g]=r;const c=t[y];if(t[y]=i,t[m]===m&&r===k&&(t[g]=t[b],t[y]=t[v]),r===_&&i instanceof Error){const t=e.currentTask&&e.currentTask.data&&e.currentTask.data.__creationTrace__;t&&o(i,T,{configurable:!0,enumerable:!1,writable:!0,value:t})}for(let e=0;e{try{const r=t[y],o=!!n&&m===n[m];o&&(n[v]=r,n[b]=i);const a=e.run(s,void 0,o&&s!==d&&s!==p?[]:[r]);S(n,!0,a)}catch(r){S(n,!1,r)}},n)}const P=function(){};class A{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(t){return S(new this(null),k,t)}static reject(t){return S(new this(null),_,t)}static race(t){let e,n,r=new this((t,r)=>{e=t,n=r});function o(t){e(t)}function i(t){n(t)}for(let s of t)f(s)||(s=this.resolve(s)),s.then(o,i);return r}static all(t){return A.allWithCallback(t)}static allSettled(t){return(this&&this.prototype instanceof A?this:A).allWithCallback(t,{thenCallback:t=>({status:"fulfilled",value:t}),errorCallback:t=>({status:"rejected",reason:t})})}static allWithCallback(t,e){let n,r,o=new this((t,e)=>{n=t,r=e}),i=2,s=0;const a=[];for(let u of t){f(u)||(u=this.resolve(u));const t=s;try{u.then(r=>{a[t]=e?e.thenCallback(r):r,i--,0===i&&n(a)},o=>{e?(a[t]=e.errorCallback(o),i--,0===i&&n(a)):r(o)})}catch(c){r(c)}i++,s++}return i-=2,0===i&&n(a),o}constructor(t){const e=this;if(!(e instanceof A))throw new Error("Must be an instanceof Promise.");e[g]=w,e[y]=[];try{t&&t(E(e,k),E(e,_))}catch(n){S(e,!1,n)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return A}then(t,n){let r=this.constructor[Symbol.species];r&&"function"==typeof r||(r=this.constructor||A);const o=new r(P),i=e.current;return this[g]==w?this[y].push(i,o,t,n):C(this,i,o,t,n),o}catch(t){return this.then(null,t)}finally(t){let n=this.constructor[Symbol.species];n&&"function"==typeof n||(n=A);const r=new n(P);r[m]=m;const o=e.current;return this[g]==w?this[y].push(o,r,t,t):C(this,o,r,t,t),r}}A.resolve=A.resolve,A.reject=A.reject,A.race=A.race,A.all=A.all;const I=t[c]=t.Promise;t.Promise=A;const B=i("thenPatched");function z(t){const e=t.prototype,n=r(e,"then");if(n&&(!1===n.writable||!n.configurable))return;const o=e.then;e[u]=o,t.prototype.then=function(t,e){return new A((t,e)=>{o.call(this,t,e)}).then(t,e)},t[B]=!0}return n.patchThen=z,I&&(z(I),D(t,"fetch",t=>{return e=t,function(t,n){let r=e.apply(t,n);if(r instanceof A)return r;let o=r.constructor;return o[B]||z(o),r};var e})),Promise[e.__symbol__("uncaughtPromiseErrors")]=s,A}),Zone.__load_patch("toString",t=>{const e=Function.prototype.toString,n=d("OriginalDelegate"),r=d("Promise"),o=d("Error"),i=function(){if("function"==typeof this){const i=this[n];if(i)return"function"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){const n=t[r];if(n)return e.call(n)}if(this===Error){const n=t[o];if(n)return e.call(n)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;const s=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":s.call(this)}});let U=!1;if("undefined"!=typeof window)try{const t=Object.defineProperty({},"passive",{get:function(){U=!0}});window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(ht){U=!1}const M={useG:!0},x={},N={},F=new RegExp("^"+h+"(\\w+)(true|false)$"),H=d("propagationStopped");function q(t,e){const n=(e?e(t):t)+l,r=(e?e(t):t)+u,o=h+n,i=h+r;x[t]={},x[t].false=o,x[t].true=i}function G(t,e,r){const o=r&&r.add||i,a=r&&r.rm||s,c=r&&r.listeners||"eventListeners",f=r&&r.rmAll||"removeAllListeners",p=d(o),g="."+o+":",y=function(t,e,n){if(t.isRemoved)return;const r=t.callback;"object"==typeof r&&r.handleEvent&&(t.callback=t=>r.handleEvent(t),t.originalDelegate=r),t.invoke(t,e,[n]);const o=t.options;o&&"object"==typeof o&&o.once&&e[a].call(e,n.type,t.originalDelegate?t.originalDelegate:t.callback,o)},m=function(e){if(!(e=e||t.event))return;const n=this||e.target||t,r=n[x[e.type].false];if(r)if(1===r.length)y(r[0],n,e);else{const t=r.slice();for(let r=0;rfunction(e,n){e[H]=!0,t&&t.apply(e,n)})}function X(t,e,n,r,o){const i=Zone.__symbol__(r);if(e[i])return;const s=e[i]=e[r];e[r]=function(i,a,c){return a&&a.prototype&&o.forEach(function(e){const o=`${n}.${r}::`+e,i=a.prototype;if(i.hasOwnProperty(e)){const n=t.ObjectGetOwnPropertyDescriptor(i,e);n&&n.value?(n.value=t.wrapWithCurrentZone(n.value,o),t._redefineProperty(a.prototype,e,n)):i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}else i[e]&&(i[e]=t.wrapWithCurrentZone(i[e],o))}),s.call(e,i,a,c)},t.attachOriginToPatched(e[r],s)}const $=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],Y=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],J=["load"],K=["blur","error","focus","load","resize","scroll","messageerror"],Q=["bounce","finish","start"],tt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],et=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],nt=["close","error","open","message"],rt=["error","message"],ot=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],$,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function it(t,e,n){if(!n||0===n.length)return e;const r=n.filter(e=>e.target===t);if(!r||0===r.length)return e;const o=r[0].ignoreProperties;return e.filter(t=>-1===o.indexOf(t))}function st(t,e,n,r){t&&C(t,it(t,e,n),r)}function at(t,e){if(_&&!T)return;if(Zone[t.symbol("patchEvents")])return;const r="undefined"!=typeof WebSocket,o=e.__Zone_ignore_on_properties;if(E){const t=window,e=L()?[{target:t,ignoreProperties:["error"]}]:[];st(t,ot.concat(["messageerror"]),o?o.concat(e):o,n(t)),st(Document.prototype,ot,o),void 0!==t.SVGElement&&st(t.SVGElement.prototype,ot,o),st(Element.prototype,ot,o),st(HTMLElement.prototype,ot,o),st(HTMLMediaElement.prototype,Y,o),st(HTMLFrameSetElement.prototype,$.concat(K),o),st(HTMLBodyElement.prototype,$.concat(K),o),st(HTMLFrameElement.prototype,J,o),st(HTMLIFrameElement.prototype,J,o);const r=t.HTMLMarqueeElement;r&&st(r.prototype,Q,o);const i=t.Worker;i&&st(i.prototype,rt,o)}const i=e.XMLHttpRequest;i&&st(i.prototype,tt,o);const s=e.XMLHttpRequestEventTarget;s&&st(s&&s.prototype,tt,o),"undefined"!=typeof IDBIndex&&(st(IDBIndex.prototype,et,o),st(IDBRequest.prototype,et,o),st(IDBOpenDBRequest.prototype,et,o),st(IDBDatabase.prototype,et,o),st(IDBTransaction.prototype,et,o),st(IDBCursor.prototype,et,o)),r&&st(WebSocket.prototype,nt,o)}Zone.__load_patch("util",(n,a,c)=>{c.patchOnProperties=C,c.patchMethod=D,c.bindArguments=b,c.patchMacroTask=I;const p=a.__symbol__("BLACK_LISTED_EVENTS"),d=a.__symbol__("UNPATCHED_EVENTS");n[d]&&(n[p]=n[d]),n[p]&&(a[p]=a[d]=n[p]),c.patchEventPrototype=V,c.patchEventTarget=G,c.isIEOrEdge=R,c.ObjectDefineProperty=e,c.ObjectGetOwnPropertyDescriptor=t,c.ObjectCreate=r,c.ArraySlice=o,c.patchClass=A,c.wrapWithCurrentZone=f,c.filterProperties=it,c.attachOriginToPatched=B,c._redefineProperty=Object.defineProperty,c.patchCallbacks=X,c.getGlobalObjects=()=>({globalSources:N,zoneSymbolEventNames:x,eventNames:ot,isBrowser:E,isMix:T,isNode:_,TRUE_STR:u,FALSE_STR:l,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:i,REMOVE_EVENT_LISTENER_STR:s})});const ct=d("zoneTask");function ut(t,e,n,r){let o=null,i=null;n+=r;const s={};function a(e){const n=e.data;return n.args[0]=function(){return e.invoke.apply(this,arguments)},n.handleId=o.apply(t,n.args),e}function c(e){return i.call(t,e.data.handleId)}o=D(t,e+=r,n=>function(o,i){if("function"==typeof i[0]){const t={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?i[1]||0:void 0,args:i},n=i[0];i[0]=function(){try{return n.apply(this,arguments)}finally{t.isPeriodic||("number"==typeof t.handleId?delete s[t.handleId]:t.handleId&&(t.handleId[ct]=null))}};const o=p(e,i[0],t,a,c);if(!o)return o;const u=o.data.handleId;return"number"==typeof u?s[u]=o:u&&(u[ct]=o),u&&u.ref&&u.unref&&"function"==typeof u.ref&&"function"==typeof u.unref&&(o.ref=u.ref.bind(u),o.unref=u.unref.bind(u)),"number"==typeof u||u?u:o}return n.apply(t,i)}),i=D(t,n,e=>function(n,r){const o=r[0];let i;"number"==typeof o?i=s[o]:(i=o&&o[ct],i||(i=o)),i&&"string"==typeof i.type?"notScheduled"!==i.state&&(i.cancelFn&&i.data.isPeriodic||0===i.runCount)&&("number"==typeof o?delete s[o]:o&&(o[ct]=null),i.zone.cancelTask(i)):e.apply(t,r)})}function lt(t,e){if(Zone[e.symbol("patchEventTarget")])return;const{eventNames:n,zoneSymbolEventNames:r,TRUE_STR:o,FALSE_STR:i,ZONE_SYMBOL_PREFIX:s}=e.getGlobalObjects();for(let c=0;c{const e=t[Zone.__symbol__("legacyPatch")];e&&e()}),Zone.__load_patch("queueMicrotask",(t,e,n)=>{n.patchMethod(t,"queueMicrotask",t=>function(t,n){e.current.scheduleMicroTask("queueMicrotask",n[0])})}),Zone.__load_patch("timers",t=>{const e="set",n="clear";ut(t,e,n,"Timeout"),ut(t,e,n,"Interval"),ut(t,e,n,"Immediate")}),Zone.__load_patch("requestAnimationFrame",t=>{ut(t,"request","cancel","AnimationFrame"),ut(t,"mozRequest","mozCancel","AnimationFrame"),ut(t,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(t,e)=>{const n=["alert","prompt","confirm"];for(let r=0;rfunction(r,i){return e.current.run(n,t,i,o)})}),Zone.__load_patch("EventTarget",(t,e,n)=>{!function(t,e){e.patchEventPrototype(t,e)}(t,n),lt(t,n);const r=t.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(t,[r.prototype])}),Zone.__load_patch("MutationObserver",(t,e,n)=>{A("MutationObserver"),A("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(t,e,n)=>{A("IntersectionObserver")}),Zone.__load_patch("FileReader",(t,e,n)=>{A("FileReader")}),Zone.__load_patch("on_property",(t,e,n)=>{at(n,t)}),Zone.__load_patch("customElements",(t,e,n)=>{!function(t,e){const{isBrowser:n,isMix:r}=e.getGlobalObjects();(n||r)&&t.customElements&&"customElements"in t&&e.patchCallbacks(e,t.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(t,n)}),Zone.__load_patch("XHR",(t,e)=>{!function(t){const l=t.XMLHttpRequest;if(!l)return;const h=l.prototype;let f=h[a],g=h[c];if(!f){const e=t.XMLHttpRequestEventTarget;if(e){const t=e.prototype;f=t[a],g=t[c]}}const y="readystatechange",m="scheduled";function v(t){const r=t.data,s=r.target;s[i]=!1,s[u]=!1;const l=s[o];f||(f=s[a],g=s[c]),l&&g.call(s,y,l);const h=s[o]=()=>{if(s.readyState===s.DONE)if(!r.aborted&&s[i]&&t.state===m){const n=s[e.__symbol__("loadfalse")];if(0!==s.status&&n&&n.length>0){const o=t.invoke;t.invoke=function(){const n=s[e.__symbol__("loadfalse")];for(let e=0;efunction(t,e){return t[r]=0==e[2],t[s]=e[1],k.apply(t,e)}),_=d("fetchTaskAborting"),E=d("fetchTaskScheduling"),T=D(h,"send",()=>function(t,n){if(!0===e.current[E])return T.apply(t,n);if(t[r])return T.apply(t,n);{const e={target:t,url:t[s],isPeriodic:!1,args:n,aborted:!1},r=p("XMLHttpRequest.send",b,e,v,w);t&&!0===t[u]&&!e.aborted&&r.state===m&&r.invoke()}}),S=D(h,"abort",()=>function(t,r){const o=t[n];if(o&&"string"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===e.current[_])return S.apply(t,r)})}(t);const n=d("xhrTask"),r=d("xhrSync"),o=d("xhrListener"),i=d("xhrScheduled"),s=d("xhrURL"),u=d("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function(e,n){const r=e.constructor.name;for(let o=0;o{const e=function(){return t.apply(this,b(arguments,r+"."+i))};return B(e,t),e})(s)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(t,e)=>{function n(e){return function(n){W(t,e).forEach(r=>{const o=t.PromiseRejectionEvent;if(o){const t=new o(e,{promise:n.promise,reason:n.rejection});r.invoke(t)}})}}t.PromiseRejectionEvent&&(e[d("unhandledPromiseRejectionHandler")]=n("unhandledrejection"),e[d("rejectionHandledHandler")]=n("rejectionhandled"))})},1796:(t,e,n)=>{"use strict";n(2167),window.global=window,window.global.Buffer=window.global.Buffer||n(3833).Buffer}},t=>{"use strict";t(t.s=1796)}]); \ No newline at end of file diff --git a/angular/runtime.d5083173ef6104a11138.js b/angular/runtime.d5083173ef6104a11138.js deleted file mode 100644 index f2c75f2d..00000000 --- a/angular/runtime.d5083173ef6104a11138.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,r,t,o={},a={};function n(e){var r=a[e];if(void 0!==r)return r.exports;var t=a[e]={id:e,loaded:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}n.m=o,e=[],n.O=(r,t,o,a)=>{if(!t){var l=1/0;for(s=0;s=a)&&Object.keys(n.O).every(e=>n.O[e](t[i]))?t.splice(i--,1):(d=!1,a0&&e[s-1][2]>a;s--)e[s]=e[s-1];e[s]=[t,o,a]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((r,t)=>(n.f[t](e,r),r),[])),n.u=e=>e+"."+{145:"b1263bd6d4d9c808b95c",432:"95e7cd048ce3f51df4b4",891:"426afa0ec2d9096e8da5",958:"9e0e1f7340063e08f0c5"}[e]+".js",n.miniCssF=e=>"styles.50804d64c130486c55c1.css",n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="rtl:",n.l=(e,o,a,l)=>{if(r[e])r[e].push(o);else{var d,i;if(void 0!==a)for(var s=document.getElementsByTagName("script"),u=0;u{d.onerror=d.onload=null,clearTimeout(p);var a=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),a&&a.forEach(e=>e(o)),t)return t(o)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=f.bind(null,d.onerror),d.onload=f.bind(null,d.onload),i&&document.head.appendChild(d)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="",(()=>{var e={666:0};n.f.j=(r,t)=>{var o=n.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else if(666!=r){var a=new Promise((t,a)=>o=e[r]=[t,a]);t.push(o[2]=a);var l=n.p+n.u(r),d=new Error;n.l(l,t=>{if(n.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var a=t&&("load"===t.type?"missing":t.type),l=t&&t.target&&t.target.src;d.message="Loading chunk "+r+" failed.\n("+a+": "+l+")",d.name="ChunkLoadError",d.type=a,d.request=l,o[1](d)}},"chunk-"+r,r)}else e[r]=0},n.O.j=r=>0===e[r];var r=(r,t)=>{var o,a,[l,d,i]=t,s=0;for(o in d)n.o(d,o)&&(n.m[o]=d[o]);if(i)var u=i(n);for(r&&r(t);s.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:initial}.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y,.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y{opacity:.6}.ps .ps__rail-x.ps--clicking,.ps .ps__rail-x:focus,.ps .ps__rail-x:hover,.ps .ps__rail-y.ps--clicking,.ps .ps__rail-y:focus,.ps .ps__rail-y:hover{background-color:initial;opacity:.9}.ps__thumb-x{transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:4px;bottom:2px}.ps__thumb-x,.ps__thumb-y{background-color:#aaa;border-radius:6px;position:absolute}.ps__thumb-y{transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:4px;right:2px}.ps__rail-x.ps--clicking .ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x:hover>.ps__thumb-x{background-color:#999;height:6px}.ps__rail-y.ps--clicking .ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y:hover>.ps__thumb-y{background-color:#999;width:6px}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ps{overflow:auto!important}}html{width:100%;height:99%;line-height:1.5;overflow-x:hidden;font-family:Roboto,sans-serif!important;font-size:62.5%}body{box-sizing:border-box;margin:0}.rtl-container,body{height:100%;overflow:hidden}.rtl-container{position:absolute;width:100%;top:0;left:0;right:0;bottom:0}.rtl-container .mat-menu-panel .mat-menu-content{padding-top:0;padding-bottom:0}.rtl-container .mat-nested-tree-node-child>.mat-tree-node{padding-left:4rem}.mat-sidenav-container .mat-sidenav-content{height:94vh;min-height:94vh}.sidenav{width:22rem;height:100%;overflow:hidden!important}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.sticky{position:fixed;top:0;z-index:9999}.horizontal-menu{padding:0;z-index:999;position:fixed;top:0;height:5rem;overflow:visible}.inner-sidenav-content{position:relative;top:0;bottom:0;left:0;right:0;padding:.8rem;min-height:calc(100% - (5rem + .8rem*4));max-height:90vh}@media only screen and (max-width:56.25em){.inner-sidenav-content{padding:.8rem .4rem}}@media only screen and (max-width:37.5em){.inner-sidenav-content{padding:.4rem .2rem}}.top-50{top:5rem}*{margin:0;padding:0}.rtl-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;position:fixed;background:#fff;z-index:999999;visibility:visible;opacity:1}.rtl-spinner h4{margin-top:1rem}.padding-gap{padding:.8rem!important}@media only screen and (max-width:56.25em){.padding-gap{padding:.4rem!important}}@media only screen and (max-width:37.5em){.padding-gap{padding:.2rem!important}}.padding-gap-x{padding:0 .8rem!important}@media only screen and (max-width:75em){.padding-gap-x{padding:0 .4rem!important}}@media only screen and (max-width:56.25em){.padding-gap-x{padding:0 .4rem!important}}@media only screen and (max-width:37.5em){.padding-gap-x{padding:0 .2rem!important}}.padding-gap-large{padding:1.6rem!important}@media only screen and (max-width:75em){.padding-gap-large{padding:.8rem!important}}@media only screen and (max-width:56.25em){.padding-gap-large{padding:.4rem!important}}@media only screen and (max-width:37.5em){.padding-gap-large{padding:.2rem!important}}.padding-gap-x-large{padding:0 1.6rem!important}@media only screen and (max-width:75em){.padding-gap-x-large{padding:0 .8rem!important}}@media only screen and (max-width:56.25em){.padding-gap-x-large{padding:0 .4rem!important}}@media only screen and (max-width:37.5em){.padding-gap-x-large{padding:0 .2rem!important}}.padding-gap-bottom-large{padding-bottom:1.6rem!important}@media only screen and (max-width:56.25em){.padding-gap-bottom-large{padding-bottom:.8rem!important}}@media only screen and (max-width:37.5em){.padding-gap-bottom-large{padding-bottom:.2rem!important}}.overflow-wrap{overflow-wrap:break-word!important;overflow:hidden}.mat-card{padding:0!important;overflow:hidden;border-radius:2px!important}.mat-card-original{padding:1.6rem!important;border-radius:4px!important}.card-content-gap,.mat-tab-body-wrapper{padding:.96rem 1.6rem!important;height:100%}@media only screen and (max-width:56.25em){.card-content-gap,.mat-tab-body-wrapper{padding:.8rem!important}}@media only screen and (max-width:37.5em){.card-content-gap,.mat-tab-body-wrapper{padding:.4rem .2rem!important}}@media only screen and (max-width:56.25em){mat-cell:first-of-type,mat-footer-cell:first-of-type,mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:.4rem!important}}@media only screen and (max-width:37.5em){mat-cell:first-of-type,mat-footer-cell:first-of-type,mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:.2rem!important}}@media only screen and (max-width:56.25em){mat-cell:last-of-type,mat-footer-cell:last-of-type,mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type,th.mat-header-cell:last-of-type{padding-right:.4rem!important}}@media only screen and (max-width:37.5em){mat-cell:last-of-type,mat-footer-cell:last-of-type,mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type,th.mat-header-cell:last-of-type{padding-right:.2rem!important}}.routing-tabs-block .mat-tab-body-wrapper{padding:0!important;min-height:10rem}.mat-card-actions{padding-left:.6rem;padding-right:.6rem}.mat-card-actions,.mat-card-content,.mat-card-subtitle,.mat-card-title{display:block;margin-bottom:1.6rem}.mat-card-header-text{margin:0!important;line-height:1}.mat-form-field-wrapper{width:100%}.mat-select{margin:0 1.5rem 0 0}.green{color:#388e3c!important}.yellow{color:#ffd740!important}.red{color:#c62828!important}.grey{color:#ccc!important}.mat-dialog-container{padding:0!important;overflow:hidden!important}.mt-1px{margin-top:1px!important}.mt-2px{margin-top:2px!important}.mt-5px{margin-top:5px!important}.my-2px{margin:2px 0!important}.mt-0{margin-top:0!important}.mt-1{margin-top:1rem!important}@media only screen and (max-width:56.25em){.mt-1{margin-top:.8rem!important}}@media only screen and (max-width:37.5em){.mt-1{margin-top:.8rem!important}}.mb-0{margin-bottom:0!important}.mb-2px{margin-bottom:2px!important}.mb-5px{margin-bottom:5px!important}.mb-1{margin-bottom:1rem!important}@media only screen and (max-width:56.25em){.mb-1{margin-bottom:.8rem!important}}@media only screen and (max-width:37.5em){.mb-1{margin-bottom:.8rem!important}}.mb-6{margin-bottom:6rem!important}@media only screen and (max-width:56.25em){.mb-6{margin-bottom:5rem!important}}@media only screen and (max-width:37.5em){.mb-6{margin-bottom:5rem!important}}.ml-0{margin-left:0!important}.ml-1{margin-left:1rem!important}@media only screen and (max-width:56.25em){.ml-1{margin-left:.4rem!important}}@media only screen and (max-width:37.5em){.ml-1{margin-left:.2rem!important}}.ml-minus-1{margin-left:-1rem!important}.mr-0{margin-right:0!important}.mr-3px{margin-right:.3rem!important}.mr-5px{margin-right:.5rem!important}.mr-1{margin-right:1rem!important}@media only screen and (max-width:56.25em){.mr-1{margin-right:.4rem!important}}@media only screen and (max-width:37.5em){.mr-1{margin-right:.2rem!important}}.mx-1{margin:0 1rem!important}@media only screen and (max-width:56.25em){.mx-1{margin:0 .4rem!important}}@media only screen and (max-width:37.5em){.mx-1{margin:0 .2rem!important}}.my-1{margin:1rem 0!important}@media only screen and (max-width:56.25em){.my-1{margin:.8rem 0!important}}@media only screen and (max-width:37.5em){.my-1{margin:.8rem 0!important}}.m-1{margin:1rem!important}@media only screen and (max-width:56.25em){.m-1{margin:.8rem!important}}@media only screen and (max-width:37.5em){.m-1{margin:.8rem!important}}.mt-2{margin-top:2rem!important}@media only screen and (max-width:56.25em){.mt-2{margin-top:1.6rem!important}}@media only screen and (max-width:37.5em){.mt-2{margin-top:1.6rem!important}}.mt-3{margin-top:3rem!important}@media only screen and (max-width:56.25em){.mt-3{margin-top:2.4rem!important}}@media only screen and (max-width:37.5em){.mt-3{margin-top:2.6rem!important}}.mt-4{margin-top:4rem!important}@media only screen and (max-width:56.25em){.mt-4{margin-top:3.4rem!important}}@media only screen and (max-width:37.5em){.mt-4{margin-top:3.4rem!important}}.mt-6{margin-top:6rem!important}@media only screen and (max-width:56.25em){.mt-6{margin-top:4.8rem!important}}@media only screen and (max-width:37.5em){.mt-6{margin-top:4.8rem!important}}.mt-minus-1{margin-top:-1rem!important}@media only screen and (max-width:56.25em){.mt-minus-1{margin-top:-.8rem!important}}@media only screen and (max-width:37.5em){.mt-minus-1{margin-top:-.8rem!important}}.mt-minus-2{margin-top:-2rem!important}@media only screen and (max-width:56.25em){.mt-minus-2{margin-top:-1.6rem!important}}@media only screen and (max-width:37.5em){.mt-minus-2{margin-top:-1.6rem!important}}.mb-2{margin-bottom:2rem!important}@media only screen and (max-width:56.25em){.mb-2{margin-bottom:1.6rem!important}}@media only screen and (max-width:37.5em){.mb-2{margin-bottom:1.6rem!important}}.mb-3{margin-bottom:3rem!important}@media only screen and (max-width:56.25em){.mb-3{margin-bottom:2.4rem!important}}@media only screen and (max-width:37.5em){.mb-3{margin-bottom:2.4rem!important}}.mb-4{margin-bottom:4rem!important}@media only screen and (max-width:56.25em){.mb-4{margin-bottom:3.2rem!important}}@media only screen and (max-width:37.5em){.mb-4{margin-bottom:3.2rem!important}}.ml-2{margin-left:2rem!important}@media only screen and (max-width:56.25em){.ml-2{margin-left:.8rem!important}}@media only screen and (max-width:37.5em){.ml-2{margin-left:.4rem!important}}.mr-2{margin-right:2rem!important}@media only screen and (max-width:56.25em){.mr-2{margin-right:.8rem!important}}@media only screen and (max-width:37.5em){.mr-2{margin-right:.4rem!important}}.ml-4{margin-left:4rem!important}@media only screen and (max-width:56.25em){.ml-4{margin-left:1.6rem!important}}@media only screen and (max-width:37.5em){.ml-4{margin-left:.8rem!important}}.ml-5{margin-left:5rem!important}@media only screen and (max-width:56.25em){.ml-5{margin-left:2rem!important}}@media only screen and (max-width:37.5em){.ml-5{margin-left:1rem!important}}.mr-4{margin-right:4rem!important}@media only screen and (max-width:56.25em){.mr-4{margin-right:1.6rem!important}}@media only screen and (max-width:37.5em){.mr-4{margin-right:.8rem!important}}.mr-5{margin-right:5rem!important}@media only screen and (max-width:56.25em){.mr-5{margin-right:2rem!important}}@media only screen and (max-width:37.5em){.mr-5{margin-right:1rem!important}}.mr-6{margin-right:6rem!important}@media only screen and (max-width:56.25em){.mr-6{margin-right:3rem!important}}@media only screen and (max-width:37.5em){.mr-6{margin-right:2rem!important}}.mx-2{margin:0 2rem!important}@media only screen and (max-width:56.25em){.mx-2{margin:0 .8rem!important}}@media only screen and (max-width:37.5em){.mx-2{margin:0 .4rem!important}}.my-0{margin-top:0!important;margin-bottom:0!important}.my-2{margin:2rem 0!important}@media only screen and (max-width:56.25em){.my-2{margin:1.6rem 0!important}}@media only screen and (max-width:37.5em){.my-2{margin:1.6rem 0!important}}.my-3{margin:3rem 0!important}@media only screen and (max-width:56.25em){.my-3{margin:2.4rem 0!important}}@media only screen and (max-width:37.5em){.my-3{margin:2.4rem 0!important}}.my-4{margin:4rem 0!important}@media only screen and (max-width:56.25em){.my-4{margin:3.2rem 0!important}}@media only screen and (max-width:37.5em){.my-4{margin:3.2rem 0!important}}.m-2{margin:2rem!important}@media only screen and (max-width:56.25em){.m-2{margin:1.6rem!important}}@media only screen and (max-width:37.5em){.m-2{margin:1.6rem!important}}.pt-1{padding-top:1rem!important}@media only screen and (max-width:56.25em){.pt-1{padding-top:.8rem!important}}@media only screen and (max-width:37.5em){.pt-1{padding-top:.8rem!important}}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:1rem!important}@media only screen and (max-width:56.25em){.pb-1{padding-bottom:.8rem!important}}@media only screen and (max-width:37.5em){.pb-1{padding-bottom:.8rem!important}}.pl-1{padding-left:1rem!important}@media only screen and (max-width:56.25em){.pl-1{padding-left:.4rem!important}}@media only screen and (max-width:37.5em){.pl-1{padding-left:.2rem!important}}.pl-15px{padding-left:1.5rem!important}@media only screen and (max-width:56.25em){.pl-15px{padding-left:.6rem!important}}@media only screen and (max-width:37.5em){.pl-15px{padding-left:.4rem!important}}.pr-0{padding-right:0!important}.pr-1{padding-right:1rem!important}@media only screen and (max-width:56.25em){.pr-1{padding-right:.4rem!important}}@media only screen and (max-width:37.5em){.pr-1{padding-right:.2rem!important}}.pr-3{padding-right:3rem!important}@media only screen and (max-width:56.25em){.pr-3{padding-right:1.2rem!important}}@media only screen and (max-width:37.5em){.pr-3{padding-right:.6rem!important}}.pr-4{padding-right:4rem!important}@media only screen and (max-width:56.25em){.pr-4{padding-right:1.6rem!important}}@media only screen and (max-width:37.5em){.pr-4{padding-right:.8rem!important}}.pr-4px{padding-right:.4rem!important}.p-0{padding:0!important}.p-5px{padding:.5rem!important}.pl-0{padding-left:0!important}.px-1{padding:0 1rem!important}@media only screen and (max-width:56.25em){.px-1{padding:0 .4rem!important}}@media only screen and (max-width:37.5em){.px-1{padding:0 .2rem!important}}.py-0{padding:1rem 0!important}@media only screen and (max-width:56.25em){.py-0{padding:.8rem 0!important}}@media only screen and (max-width:37.5em){.py-0{padding:.8rem 0!important}}.py-1{padding:1rem 0!important}@media only screen and (max-width:56.25em){.py-1{padding:.8rem 0!important}}@media only screen and (max-width:37.5em){.py-1{padding:.8rem 0!important}}.p-1{padding:1rem!important}@media only screen and (max-width:56.25em){.p-1{padding:.8rem!important}}@media only screen and (max-width:37.5em){.p-1{padding:.8rem!important}}.p-16{padding:1.6rem!important}@media only screen and (max-width:56.25em){.p-16{padding:.8rem!important}}@media only screen and (max-width:37.5em){.p-16{padding:.4rem!important}}.pt-2{padding-top:2rem!important}@media only screen and (max-width:56.25em){.pt-2{padding-top:1.6rem!important}}@media only screen and (max-width:37.5em){.pt-2{padding-top:1.6rem!important}}.pt-3{padding-top:3rem!important}@media only screen and (max-width:56.25em){.pt-3{padding-top:2.4rem!important}}@media only screen and (max-width:37.5em){.pt-3{padding-top:2.4rem!important}}.pb-2{padding-bottom:2rem!important}@media only screen and (max-width:56.25em){.pb-2{padding-bottom:1.6rem!important}}@media only screen and (max-width:37.5em){.pb-2{padding-bottom:1.6rem!important}}.pl-2{padding-left:2rem!important}@media only screen and (max-width:56.25em){.pl-2{padding-left:.8rem!important}}@media only screen and (max-width:37.5em){.pl-2{padding-left:.4rem!important}}.pt-4{padding-top:3.2rem!important}@media only screen and (max-width:56.25em){.pt-4{padding-top:2.5rem!important}}@media only screen and (max-width:37.5em){.pt-4{padding-top:2.5rem!important}}.pl-3{padding-left:3rem!important}@media only screen and (max-width:56.25em){.pl-3{padding-left:1.2rem!important}}@media only screen and (max-width:37.5em){.pl-3{padding-left:.6rem!important}}.pl-4{padding-left:4rem!important}@media only screen and (max-width:56.25em){.pl-4{padding-left:1.6rem!important}}@media only screen and (max-width:37.5em){.pl-4{padding-left:.8rem!important}}.pr-2{padding-right:2rem!important}@media only screen and (max-width:56.25em){.pr-2{padding-right:.8rem!important}}@media only screen and (max-width:37.5em){.pr-2{padding-right:.4rem!important}}.pr-5{padding-right:4rem!important}@media only screen and (max-width:56.25em){.pr-5{padding-right:1.6rem!important}}@media only screen and (max-width:37.5em){.pr-5{padding-right:.8rem!important}}.px-2{padding:0 2rem!important}@media only screen and (max-width:56.25em){.px-2{padding:0 .8rem!important}}@media only screen and (max-width:37.5em){.px-2{padding:0 .4rem!important}}.px-3{padding:0 3rem!important}@media only screen and (max-width:56.25em){.px-3{padding:0 1.2rem!important}}@media only screen and (max-width:37.5em){.px-3{padding:0 .6rem!important}}.px-4{padding:0 4rem!important}@media only screen and (max-width:56.25em){.px-4{padding:0 1.6rem!important}}@media only screen and (max-width:37.5em){.px-4{padding:0 .8rem!important}}.py-2{padding:2rem 0!important}@media only screen and (max-width:56.25em){.py-2{padding:1.6rem 0!important}}@media only screen and (max-width:37.5em){.py-2{padding:1.6rem 0!important}}.p-2{padding:2rem!important}@media only screen and (max-width:56.25em){.p-2{padding:1.6rem!important}}@media only screen and (max-width:37.5em){.p-2{padding:1.6rem!important}}.p-24{padding:2.4rem!important}@media only screen and (max-width:56.25em){.p-24{padding:1.2rem!important}}@media only screen and (max-width:37.5em){.p-24{padding:1rem!important}}.m-1px{margin:1px!important}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-auto{overflow:auto}.mat-footer-row .mat-footer-cell,.mat-row:last-child .mat-cell{border-bottom:none!important}.flex-ellipsis{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:3rem}.mat-list,.mat-list .mat-list-item .mat-list-item-content,.mat-nav-list,.mat-selection-list{padding:0!important}.inline-spinner{display:inline-flex!important;top:.5rem!important}.top-minus-5px{position:relative;top:-.5rem}.top-minus-15px{position:relative;top:-1.5rem}.top-minus-25px{position:relative;top:-2.5rem;margin-bottom:-2.5rem!important}.top-minus-30px{position:relative;top:-3rem}.cursor-pointer{cursor:pointer!important}.cursor-default{cursor:default!important}.cursor-not-allowed{cursor:not-allowed!important}.inline-flex{display:inline-flex!important}.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.settings-container h4{margin:1.2rem 0 .6rem}.settings-container .skin{width:2rem;height:2rem;border-radius:50%;cursor:pointer;margin-right:.5rem}.settings-container .skin.selected-color{width:1.75rem;height:1.75rem;border:.25rem solid}.settings-container .skin.purple{background-color:#5e4ea5}.settings-container .skin.indigo{background-color:#3f51b5}.settings-container .skin.teal{background-color:#00695c}.settings-container .skin.pink{background-color:#d81b60}.settings-container .skin.yellow{background-color:#a1842c}.settings-container .mat-radio-group{flex-direction:row;place-content:flex-start space-between;align-items:flex-start;box-sizing:border-box;display:flex}.settings-container .mat-radio-group .mat-radio-button{margin:2px 0}.settings-container .mat-slide-toggle{padding:0 1.4rem 0 .4rem}.settings-container .mat-flat-button{width:100%;max-height:3.6rem}.op-image{box-shadow:0 0 2px #ccc;border:2px solid #0000;cursor:pointer;transition:.2s}.settings-icon{position:fixed;top:30%;right:0;width:4.2rem;height:4.2rem;opacity:.6;cursor:pointer;z-index:999999}.test-banner{padding-top:2px;background-color:#fc7783;text-transform:uppercase;border-radius:2px}.fa-icon-small,.top-icon-small{min-width:2rem;width:2rem;max-width:2rem}.botlz-icon-sm{min-width:1.6rem;width:1.6rem;max-width:1.6rem}.copy-icon{position:relative;top:.5rem}.copy-icon-smaller{position:relative;top:2px}.top-5px{position:relative;top:.5rem}.animate-settings{animation:animate-settings 10s linear infinite}@keyframes animate-settings{to{transform:rotate(1turn)}}.mat-icon-button.top-toolbar-icon{margin-right:2rem}.mat-icon-button.top-toolbar-icon .top-toolbar-img{padding-right:.7rem;cursor:pointer}.mt-minus-5{position:relative;margin-top:-.5rem}.custom-card{padding:0 0 .8rem!important}.not-found-box{min-width:50%}.w-100{width:100%!important}.w-96{width:96%!important}.w-84{width:84%!important}.h-100{height:100%!important}.h-93{height:93%!important}.h-40{height:40rem!important}.h-46{height:46rem!important}.h-10{height:10rem!important}.h-4{height:4rem!important}.h-35px{height:3.5rem!important}a{outline:none;text-decoration:none;text-decoration:underline}.mat-tree{width:100%}.mat-nested-tree-node-parent,.mat-tree-node{min-height:4rem;height:4rem;padding:0 1.2rem;cursor:pointer}.mat-nested-tree-node-parent .mat-icon:active,.mat-nested-tree-node-parent .mat-icon:focus,.mat-nested-tree-node-parent:active,.mat-nested-tree-node-parent:focus,.mat-nested-tree-node-parent div:active,.mat-nested-tree-node-parent div:focus,.mat-nested-tree-node-parent span:active,.mat-nested-tree-node-parent span:focus,.mat-nested-tree-node:active,.mat-nested-tree-node:focus,.mat-tree-node .mat-icon:active,.mat-tree-node .mat-icon:focus,.mat-tree-node:active,.mat-tree-node:focus,.mat-tree-node div:active,.mat-tree-node div:focus,.mat-tree-node span:active,.mat-tree-node span:focus{outline:none}.lnd-info{height:9rem}.flex-wrap{flex-wrap:wrap!important}.word-break{word-break:break-all!important}.font-bold-500{font-weight:500!important}.font-bold-700{font-weight:700!important}.pubkey-info-top{flex-wrap:wrap;margin-top:1px;min-height:1.5rem;cursor:pointer;display:flex;align-content:center}.top-toolbar-icon.icon-pinned{width:3rem;height:3rem;padding:1rem 0 0 1.2rem;cursor:pointer}.logo{font-weight:700;letter-spacing:1px}.fa-icon-regular{min-width:4rem;width:4rem;max-width:4rem}.icon-large{margin-left:-100%}.icon-small{height:2rem!important;width:2rem!important}.icon-smaller{height:1rem!important;width:1rem!important}.mat-icon-36{width:3.6rem!important;height:3.6rem!important}.mat-select.multi-node-select{width:87%}.page-title-container{padding:0 1.2rem;margin-bottom:.8rem}@media only screen and (max-width:56.25em){.page-title-container{padding:0 .8rem;margin:.8rem 0}}@media only screen and (max-width:37.5em){.page-title-container{padding:0 .8rem;margin:.8rem 0}}table{width:100%}@media only screen and (max-width:75em){td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:1.6rem!important}}@media only screen and (max-width:56.25em){td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:1.2rem!important}}@media only screen and (max-width:37.5em){td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:.8rem!important}}@media only screen and (max-width:75em){td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type,th.mat-header-cell:last-of-type{padding-right:1.6rem!important}}@media only screen and (max-width:56.25em){td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type,th.mat-header-cell:last-of-type{padding-right:1.2rem!important}}@media only screen and (max-width:37.5em){td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type,th.mat-header-cell:last-of-type{padding-right:.8rem!important}}.dot{display:inline-flex;width:1.2rem;height:1.2rem;border-radius:1.2rem;margin:.4rem 1rem 0 0}.dot.tiny-dot{width:.8rem;height:.8rem;border-radius:.8rem;margin:0 .6rem .1rem 0}.dot.green{background-color:#28ca43}.dot.yellow{background-color:#ffbd2e}.dot.red{background-color:#c62828}.dot.grey{background-color:#aaa}.font-size-80{font-size:80%!important}.font-size-90{font-size:90%!important}.font-size-120{font-size:120%!important}.font-size-200{font-size:200%!important}.font-size-300{font-size:300%!important}.font-weight-900{font-weight:900!important}.pre-wrap{white-space:pre-wrap!important}.display-none{display:none!important}.mat-vertical-stepper-header{padding:1rem 1rem 1rem .8rem!important}.ellipsis-child{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blinker{animation:blink-animation 1s steps(5,start) infinite;-webkit-animation:blink-animation 1s steps(5,start) infinite}@keyframes blink-animation{to{visibility:hidden}}.mat-progress-bar.dashboard-progress-bar{height:6px;min-height:6px}.alert{margin-bottom:1rem;padding:.6rem 1rem;border-radius:4px}.dashboard-vert-menu.mat-menu-panel{min-height:4.8rem}.mat-tab-body-content{overflow:hidden!important}.dashboard-tabs-group .mat-tab-label{min-width:32%!important}.node-grid-tile.mat-grid-tile .mat-figure{align-items:start}.mat-vertical-content-container{margin-left:2rem!important}.xs-scroll-y{overflow-y:scroll;max-height:600px}.h-2{min-height:2rem!important}.border-valid{border:1px solid #28ca43!important}.border-invalid{border:1px solid #c62828!important}.icon-green{fill:#28ca43}.visible{visibility:visible!important}.hidden{visibility:hidden!important}.h-5{height:5rem}.btn-sticky-container{height:0;opacity:.5}.btn-sticky-container .mat-icon{animation:scrollDownAnimation 2s infinite}@keyframes scrollDownAnimation{0%{transform:translateY(0)}10%{transform:translateY(-20%)}20%{transform:translateY(20%)}30%{transform:translateY(-20%)}40%{transform:translateY(20%)}50%{transform:translateY(0)}}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-infix,.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-arro-wrapper,.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-trigger,.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-value,.mat-form-field-appearance-legacy.mat-form-field-disabled input,.mat-form-field-appearance-legacy.mat-form-field-disabled mat-select,.mat-form-field-appearance-legacy.mat-form-field-disabled textarea{cursor:not-allowed}.ngx-charts-tooltip-content.type-tooltip{background:#323232e6!important}.ngx-charts-tooltip-content .tooltip-caret{border-top-color:#323232e6!important}.mat-card.dashboard-card{margin:.8rem;padding:1.2rem 2.4rem!important}@media only screen and (max-width:56.25em){.mat-card.dashboard-card{padding:.5rem 1rem!important;margin-top:4rem!important}}@media only screen and (max-width:37.5em){.mat-card.dashboard-card{padding:.4rem .8rem!important;margin-top:4rem!important}}.mat-card.dashboard-card.p-0{padding:0!important}.mat-card.dashboard-card .mat-card-header-text{width:100%}.mat-progress-bar{min-height:4px}.dashboard-card-content{text-align:left}.mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-header{padding:0 2.4rem}@media only screen and (max-width:56.25em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-header{padding:0 .8rem}}@media only screen and (max-width:37.5em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-header{padding:0 .4rem}}.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body{padding:0 2.4rem 1.6rem}@media only screen and (max-width:56.25em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body{padding:0 .8rem .8rem}}@media only screen and (max-width:37.5em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body{padding:0 .4rem .2rem}}@media only screen and (max-width:56.25em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body .mat-expansion-panel-header-description,.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body .mat-expansion-panel-header-title{margin-right:.8rem}}@media only screen and (max-width:37.5em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body .mat-expansion-panel-header-description,.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body .mat-expansion-panel-header-title{margin-right:.4rem}}.rtl-container .mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-badge-small .mat-badge-content{font-size:9px}.rtl-container .mat-badge-large .mat-badge-content{font-size:24px}.rtl-container .mat-h1,.rtl-container .mat-headline,.rtl-container .mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.rtl-container .mat-h2,.rtl-container .mat-title,.rtl-container .mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.rtl-container .mat-h3,.rtl-container .mat-subheading-2,.rtl-container .mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.rtl-container .mat-h4,.rtl-container .mat-subheading-1,.rtl-container .mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.rtl-container .mat-h5,.rtl-container .mat-typography h5{font:400 calc(14px * .83)/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.rtl-container .mat-h6,.rtl-container .mat-typography h6{font:400 calc(14px * .67)/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.rtl-container .mat-body-2,.rtl-container .mat-body-strong{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-body,.rtl-container .mat-body-1,.rtl-container .mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-body-1 p,.rtl-container .mat-body p,.rtl-container .mat-typography p{margin:0 0 12px}.rtl-container .mat-caption,.rtl-container .mat-small{font:400 12px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-display-4,.rtl-container .mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.05em;margin:0 0 56px}.rtl-container .mat-display-3,.rtl-container .mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.02em;margin:0 0 64px}.rtl-container .mat-display-2,.rtl-container .mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.005em;margin:0 0 64px}.rtl-container .mat-display-1,.rtl-container .mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 64px}.rtl-container .mat-bottom-sheet-container{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-button,.rtl-container .mat-fab,.rtl-container .mat-flat-button,.rtl-container .mat-icon-button,.rtl-container .mat-mini-fab,.rtl-container .mat-raised-button,.rtl-container .mat-stroked-button{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.rtl-container .mat-button-toggle,.rtl-container .mat-card{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-card-title{font-size:24px;font-weight:500}.rtl-container .mat-card-header .mat-card-title{font-size:20px}.rtl-container .mat-card-content,.rtl-container .mat-card-subtitle{font-size:14px}.rtl-container .mat-checkbox{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-checkbox-layout .mat-checkbox-label{line-height:24px}.rtl-container .mat-chip{font-size:14px;font-weight:500}.rtl-container .mat-chip .mat-chip-remove.mat-icon,.rtl-container .mat-chip .mat-chip-trailing-icon.mat-icon{font-size:18px}.rtl-container .mat-table{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-header-cell{font-size:12px;font-weight:500}.rtl-container .mat-cell,.rtl-container .mat-footer-cell{font-size:14px}.rtl-container .mat-calendar{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-calendar-body{font-size:13px}.rtl-container .mat-calendar-body-label,.rtl-container .mat-calendar-period-button{font-size:14px;font-weight:500}.rtl-container .mat-calendar-table-header th{font-size:11px;font-weight:400}.rtl-container .mat-dialog-title{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-expansion-panel-header{font-family:Roboto,Helvetica Neue,sans-serif;font-size:15px;font-weight:400}.rtl-container .mat-expansion-panel-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-form-field-wrapper{padding-bottom:1.34375em}.rtl-container .mat-form-field-prefix .mat-icon,.rtl-container .mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.rtl-container .mat-form-field-prefix .mat-icon-button,.rtl-container .mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.rtl-container .mat-form-field-prefix .mat-icon-button .mat-icon,.rtl-container .mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.rtl-container .mat-form-field-infix{padding:.5em 0;border-top:.84375em solid #0000}.rtl-container .mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.3333333333%}.rtl-container .mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.3333433333%}.rtl-container .mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.rtl-container .mat-form-field-label{top:1.34375em}.rtl-container .mat-form-field-underline{bottom:1.34375em}.rtl-container .mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.3333333333%}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);-ms-transform:translateY(-1.28124em) scale(.75);width:133.3333433333%}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);-ms-transform:translateY(-1.28123em) scale(.75);width:133.3333533333%}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.rtl-container .mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em}.rtl-container .mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.rtl-container .mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.3333333333%}.rtl-container .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.3333433333%}.rtl-container .mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0}.rtl-container .mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.rtl-container .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.3333333333%}.rtl-container .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.3333433333%}.rtl-container .mat-grid-tile-footer,.rtl-container .mat-grid-tile-header{font-size:14px}.rtl-container .mat-grid-tile-footer .mat-line,.rtl-container .mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-grid-tile-footer .mat-line:nth-child(n+2),.rtl-container .mat-grid-tile-header .mat-line:nth-child(n+2){font-size:12px}.rtl-container input.mat-input-element{margin-top:-.0625em}.rtl-container .mat-menu-item{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.rtl-container .mat-paginator,.rtl-container .mat-paginator-page-size .mat-select-trigger{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px}.rtl-container .mat-radio-button,.rtl-container .mat-select{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-select-trigger{height:1.125em}.rtl-container .mat-slide-toggle-content,.rtl-container .mat-slider-thumb-label-text{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-slider-thumb-label-text{font-size:12px;font-weight:500}.rtl-container .mat-stepper-horizontal,.rtl-container .mat-stepper-vertical{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-step-label{font-size:14px;font-weight:400}.rtl-container .mat-step-sub-label-error{font-weight:400}.rtl-container .mat-step-label-error{font-size:14px}.rtl-container .mat-step-label-selected{font-size:14px;font-weight:500}.rtl-container .mat-tab-group{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-tab-label,.rtl-container .mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.rtl-container .mat-toolbar,.rtl-container .mat-toolbar h1,.rtl-container .mat-toolbar h2,.rtl-container .mat-toolbar h3,.rtl-container .mat-toolbar h4,.rtl-container .mat-toolbar h5,.rtl-container .mat-toolbar h6{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0}.rtl-container .mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.rtl-container .mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.rtl-container .mat-list-item,.rtl-container .mat-list-option{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-list-base .mat-list-item{font-size:16px}.rtl-container .mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.rtl-container .mat-list-base .mat-list-option{font-size:16px}.rtl-container .mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.rtl-container .mat-list-base .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.rtl-container .mat-list-base[dense] .mat-list-item{font-size:12px}.rtl-container .mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2),.rtl-container .mat-list-base[dense] .mat-list-option{font-size:12px}.rtl-container .mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.rtl-container .mat-list-base[dense] .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.rtl-container .mat-option{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}.rtl-container .mat-optgroup-label{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-simple-snackbar{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px}.rtl-container .mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.rtl-container .mat-tree{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-nested-tree-node,.rtl-container .mat-tree-node{font-weight:400;font-size:14px}.rtl-container .mat-ripple{overflow:hidden;position:relative}.rtl-container .mat-ripple:not(:empty){transform:translateZ(0)}.rtl-container .mat-ripple.mat-ripple-unbounded{overflow:visible}.rtl-container .mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale(0)}.cdk-high-contrast-active .rtl-container .mat-ripple-element{display:none}.rtl-container .cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.rtl-container .cdk-global-overlay-wrapper,.rtl-container .cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%}.rtl-container .cdk-overlay-container{position:fixed;z-index:1000}.rtl-container .cdk-overlay-container:empty{display:none}.rtl-container .cdk-global-overlay-wrapper,.rtl-container .cdk-overlay-pane{display:flex;position:absolute;z-index:1000}.rtl-container .cdk-overlay-pane{pointer-events:auto;box-sizing:border-box;max-width:100%;max-height:100%}.rtl-container .cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.rtl-container .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .rtl-container .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.rtl-container .cdk-overlay-dark-backdrop{background:#00000052}.rtl-container .cdk-overlay-transparent-backdrop,.rtl-container .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.rtl-container .cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.rtl-container .cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.rtl-container textarea.cdk-textarea-autosize{resize:none}.rtl-container textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:initial!important;height:auto!important;overflow:hidden!important}.rtl-container textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:initial!important;height:0!important}@keyframes cdk-text-field-autofill-start{ - /*!*/}@keyframes cdk-text-field-autofill-end{ - /*!*/}.rtl-container .cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.rtl-container .cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.rtl-container .mat-focus-indicator,.rtl-container .mat-mdc-focus-indicator{position:relative}.rtl-container.purple.small.small .mat-header-cell{font-weight:700}.rtl-container.purple.small.small .mr-4{margin-right:1rem!important}.rtl-container.purple.small.small .mat-menu-item,.rtl-container.purple.small.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.purple.small.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.purple.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.purple.small.small .fa-icon-small,.rtl-container.purple.small.small .genseed-message,.rtl-container.purple.small.small .top-icon-small,.rtl-container.purple.small.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.purple.small.small .page-sub-title-container,.rtl-container.purple.small.small .page-title-container{font-size:1.32rem}.rtl-container.purple.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.purple.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.purple.small.small .sidenav-img svg,.rtl-container.purple.small.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.purple.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.purple.small.small .material-icons,.rtl-container.purple.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.purple.small.small .mat-expansion-panel-header,.rtl-container.purple.small.small .mat-list .mat-list-item,.rtl-container.purple.small.small .mat-menu-item,.rtl-container.purple.small.small .mat-nav-list .mat-list-item,.rtl-container.purple.small.small .mat-option,.rtl-container.purple.small.small .mat-select,.rtl-container.purple.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.purple.small.small .logo{font-size:2.4rem}.rtl-container.purple.small.small .font-60-percent{font-size:.72rem}.rtl-container.purple.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.purple.small.small .icon-large{font-size:6rem}.rtl-container.purple.small.small .icon-small{font-size:1.8rem!important}.rtl-container.purple.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.purple.small.small .size-triple{font-size:3.6rem}.rtl-container.purple.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.purple.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.small.medium .mat-header-cell{font-weight:700}.rtl-container.purple.small.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.purple.small.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.purple.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.purple.small.medium .genseed-message,.rtl-container.purple.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.purple.small.medium .page-sub-title-container,.rtl-container.purple.small.medium .page-title-container{font-size:1.54rem}.rtl-container.purple.small.medium .fa-icon-small,.rtl-container.purple.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.purple.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.purple.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.purple.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.purple.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.purple.small.medium .sidenav-img svg,.rtl-container.purple.small.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.purple.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.purple.small.medium .material-icons{font-size:2.8rem}.rtl-container.purple.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.purple.small.medium .mat-expansion-panel-header,.rtl-container.purple.small.medium .mat-list .mat-list-item,.rtl-container.purple.small.medium .mat-menu-item,.rtl-container.purple.small.medium .mat-nav-list .mat-list-item,.rtl-container.purple.small.medium .mat-option,.rtl-container.purple.small.medium .mat-select,.rtl-container.purple.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.purple.small.medium .logo{font-size:2.8rem}.rtl-container.purple.small.medium .font-60-percent{font-size:.84rem}.rtl-container.purple.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.purple.small.medium .icon-large{font-size:7rem}.rtl-container.purple.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.purple.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.purple.small.medium .size-triple{font-size:4.2rem}.rtl-container.purple.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.purple.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.small.large .mat-header-cell{font-weight:800}.rtl-container.purple.small.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.purple.small.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.purple.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.purple.small.large .genseed-message,.rtl-container.purple.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.purple.small.large .page-sub-title-container,.rtl-container.purple.small.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.purple.small.large .fa-icon-small,.rtl-container.purple.small.large .modal-info-header,.rtl-container.purple.small.large .top-icon-small{font-size:1.92rem}.rtl-container.purple.small.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.purple.small.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.purple.small.large .sidenav-img svg,.rtl-container.purple.small.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.purple.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.purple.small.large .material-icons{font-size:4rem}.rtl-container.purple.small.large .mat-expansion-panel-header,.rtl-container.purple.small.large .mat-list .mat-list-item,.rtl-container.purple.small.large .mat-menu-item,.rtl-container.purple.small.large .mat-nav-list .mat-list-item,.rtl-container.purple.small.large .mat-option,.rtl-container.purple.small.large .mat-select,.rtl-container.purple.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.purple.small.large .logo{font-size:3.2rem}.rtl-container.purple.small.large .font-60-percent{font-size:.96rem}.rtl-container.purple.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.purple.small.large .icon-large{font-size:8rem}.rtl-container.purple.small.large .icon-small{font-size:2.4rem!important}.rtl-container.purple.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.purple.small.large .size-triple{font-size:4.8rem}.rtl-container.purple.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.purple.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.small .mat-icon.material-icons:focus{outline:none}.rtl-container.purple.small .mat-flat-button.mat-primary:focus,.rtl-container.purple.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.purple.medium.small .mat-header-cell{font-weight:700}.rtl-container.purple.medium.small .mr-4{margin-right:1rem!important}.rtl-container.purple.medium.small .mat-menu-item,.rtl-container.purple.medium.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.purple.medium.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.purple.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.purple.medium.small .fa-icon-small,.rtl-container.purple.medium.small .genseed-message,.rtl-container.purple.medium.small .top-icon-small,.rtl-container.purple.medium.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.purple.medium.small .page-sub-title-container,.rtl-container.purple.medium.small .page-title-container{font-size:1.32rem}.rtl-container.purple.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.purple.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.purple.medium.small .sidenav-img svg,.rtl-container.purple.medium.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.purple.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.purple.medium.small .material-icons,.rtl-container.purple.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.purple.medium.small .mat-expansion-panel-header,.rtl-container.purple.medium.small .mat-list .mat-list-item,.rtl-container.purple.medium.small .mat-menu-item,.rtl-container.purple.medium.small .mat-nav-list .mat-list-item,.rtl-container.purple.medium.small .mat-option,.rtl-container.purple.medium.small .mat-select,.rtl-container.purple.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.purple.medium.small .logo{font-size:2.4rem}.rtl-container.purple.medium.small .font-60-percent{font-size:.72rem}.rtl-container.purple.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.purple.medium.small .icon-large{font-size:6rem}.rtl-container.purple.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.purple.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.purple.medium.small .size-triple{font-size:3.6rem}.rtl-container.purple.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.purple.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.medium.medium .mat-header-cell{font-weight:700}.rtl-container.purple.medium.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.purple.medium.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.purple.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.purple.medium.medium .genseed-message,.rtl-container.purple.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.purple.medium.medium .page-sub-title-container,.rtl-container.purple.medium.medium .page-title-container{font-size:1.54rem}.rtl-container.purple.medium.medium .fa-icon-small,.rtl-container.purple.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.purple.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.purple.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.purple.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.purple.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.purple.medium.medium .sidenav-img svg,.rtl-container.purple.medium.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.purple.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.purple.medium.medium .material-icons{font-size:2.8rem}.rtl-container.purple.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.purple.medium.medium .mat-expansion-panel-header,.rtl-container.purple.medium.medium .mat-list .mat-list-item,.rtl-container.purple.medium.medium .mat-menu-item,.rtl-container.purple.medium.medium .mat-nav-list .mat-list-item,.rtl-container.purple.medium.medium .mat-option,.rtl-container.purple.medium.medium .mat-select,.rtl-container.purple.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.purple.medium.medium .logo{font-size:2.8rem}.rtl-container.purple.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.purple.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.purple.medium.medium .icon-large{font-size:7rem}.rtl-container.purple.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.purple.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.purple.medium.medium .size-triple{font-size:4.2rem}.rtl-container.purple.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.purple.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.medium.large .mat-header-cell{font-weight:800}.rtl-container.purple.medium.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.purple.medium.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.purple.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.purple.medium.large .genseed-message,.rtl-container.purple.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.purple.medium.large .page-sub-title-container,.rtl-container.purple.medium.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.purple.medium.large .fa-icon-small,.rtl-container.purple.medium.large .modal-info-header,.rtl-container.purple.medium.large .top-icon-small{font-size:1.92rem}.rtl-container.purple.medium.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.purple.medium.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.purple.medium.large .sidenav-img svg,.rtl-container.purple.medium.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.purple.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.purple.medium.large .material-icons{font-size:4rem}.rtl-container.purple.medium.large .mat-expansion-panel-header,.rtl-container.purple.medium.large .mat-list .mat-list-item,.rtl-container.purple.medium.large .mat-menu-item,.rtl-container.purple.medium.large .mat-nav-list .mat-list-item,.rtl-container.purple.medium.large .mat-option,.rtl-container.purple.medium.large .mat-select,.rtl-container.purple.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.purple.medium.large .logo{font-size:3.2rem}.rtl-container.purple.medium.large .font-60-percent{font-size:.96rem}.rtl-container.purple.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.purple.medium.large .icon-large{font-size:8rem}.rtl-container.purple.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.purple.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.purple.medium.large .size-triple{font-size:4.8rem}.rtl-container.purple.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.purple.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.purple.medium .mat-flat-button.mat-primary:focus,.rtl-container.purple.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.purple.large.small .mat-header-cell{font-weight:700}.rtl-container.purple.large.small .mr-4{margin-right:1rem!important}.rtl-container.purple.large.small .mat-menu-item,.rtl-container.purple.large.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.purple.large.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.purple.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.purple.large.small .fa-icon-small,.rtl-container.purple.large.small .genseed-message,.rtl-container.purple.large.small .top-icon-small,.rtl-container.purple.large.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.purple.large.small .page-sub-title-container,.rtl-container.purple.large.small .page-title-container{font-size:1.32rem}.rtl-container.purple.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.purple.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.purple.large.small .sidenav-img svg,.rtl-container.purple.large.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.purple.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.purple.large.small .material-icons,.rtl-container.purple.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.purple.large.small .mat-expansion-panel-header,.rtl-container.purple.large.small .mat-list .mat-list-item,.rtl-container.purple.large.small .mat-menu-item,.rtl-container.purple.large.small .mat-nav-list .mat-list-item,.rtl-container.purple.large.small .mat-option,.rtl-container.purple.large.small .mat-select,.rtl-container.purple.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.purple.large.small .logo{font-size:2.4rem}.rtl-container.purple.large.small .font-60-percent{font-size:.72rem}.rtl-container.purple.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.purple.large.small .icon-large{font-size:6rem}.rtl-container.purple.large.small .icon-small{font-size:1.8rem!important}.rtl-container.purple.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.purple.large.small .size-triple{font-size:3.6rem}.rtl-container.purple.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.purple.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.large.medium .mat-header-cell{font-weight:700}.rtl-container.purple.large.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.purple.large.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.purple.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.purple.large.medium .genseed-message,.rtl-container.purple.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.purple.large.medium .page-sub-title-container,.rtl-container.purple.large.medium .page-title-container{font-size:1.54rem}.rtl-container.purple.large.medium .fa-icon-small,.rtl-container.purple.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.purple.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.purple.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.purple.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.purple.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.purple.large.medium .sidenav-img svg,.rtl-container.purple.large.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.purple.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.purple.large.medium .material-icons{font-size:2.8rem}.rtl-container.purple.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.purple.large.medium .mat-expansion-panel-header,.rtl-container.purple.large.medium .mat-list .mat-list-item,.rtl-container.purple.large.medium .mat-menu-item,.rtl-container.purple.large.medium .mat-nav-list .mat-list-item,.rtl-container.purple.large.medium .mat-option,.rtl-container.purple.large.medium .mat-select,.rtl-container.purple.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.purple.large.medium .logo{font-size:2.8rem}.rtl-container.purple.large.medium .font-60-percent{font-size:.84rem}.rtl-container.purple.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.purple.large.medium .icon-large{font-size:7rem}.rtl-container.purple.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.purple.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.purple.large.medium .size-triple{font-size:4.2rem}.rtl-container.purple.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.purple.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.large.large .mat-header-cell{font-weight:800}.rtl-container.purple.large.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.purple.large.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.purple.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.purple.large.large .genseed-message,.rtl-container.purple.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.purple.large.large .page-sub-title-container,.rtl-container.purple.large.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.purple.large.large .fa-icon-small,.rtl-container.purple.large.large .modal-info-header,.rtl-container.purple.large.large .top-icon-small{font-size:1.92rem}.rtl-container.purple.large.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.purple.large.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.purple.large.large .sidenav-img svg,.rtl-container.purple.large.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.purple.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.purple.large.large .material-icons{font-size:4rem}.rtl-container.purple.large.large .mat-expansion-panel-header,.rtl-container.purple.large.large .mat-list .mat-list-item,.rtl-container.purple.large.large .mat-menu-item,.rtl-container.purple.large.large .mat-nav-list .mat-list-item,.rtl-container.purple.large.large .mat-option,.rtl-container.purple.large.large .mat-select,.rtl-container.purple.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.purple.large.large .logo{font-size:3.2rem}.rtl-container.purple.large.large .font-60-percent{font-size:.96rem}.rtl-container.purple.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.purple.large.large .icon-large{font-size:8rem}.rtl-container.purple.large.large .icon-small{font-size:2.4rem!important}.rtl-container.purple.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.purple.large.large .size-triple{font-size:4.8rem}.rtl-container.purple.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.purple.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.large .mat-icon.material-icons:focus{outline:none}.rtl-container.purple.large .mat-flat-button.mat-primary:focus,.rtl-container.purple.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.purple.day .mat-ripple-element{background-color:#0000001a}.rtl-container.purple.day .mat-option{color:#000000de}.rtl-container.purple.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.day .mat-option:focus:not(.mat-option-disabled),.rtl-container.purple.day .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.purple.day .mat-option.mat-active{background:#0000000a;color:#000000de}.rtl-container.purple.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.purple.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#5e4ea5}.rtl-container.purple.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.purple.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.purple.day .mat-optgroup-label{color:#0000008a}.rtl-container.purple.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.purple.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.purple.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.purple.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.purple.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.purple.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#5e4ea5}.rtl-container.purple.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.purple.day .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.purple.day .mat-pseudo-checkbox-checked,.rtl-container.purple.day .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.purple.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.purple.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.purple.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.purple.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.purple.day.mat-app-background,.rtl-container.purple.day .mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.purple.day .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.purple.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.purple.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.purple.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.purple.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.purple.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.purple.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.purple.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.purple.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.purple.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.purple.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.purple.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.purple.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.purple.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.purple.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.purple.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.purple.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.purple.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.purple.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.purple.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.purple.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.purple.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.purple.day .mat-autocomplete-panel{background:#fff;color:#000000de}.rtl-container.purple.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.rtl-container.purple.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.purple.day .mat-badge-content{color:#fff;background:#5e4ea5}.cdk-high-contrast-active .rtl-container.purple.day .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.purple.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.purple.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.purple.day .mat-badge{position:relative}.rtl-container.purple.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.purple.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.purple.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.purple.day .mat-badge-content._mat-animation-noopable,.rtl-container.purple.day .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.purple.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.purple.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.purple.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.purple.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.purple.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.purple.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.purple.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.purple.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.purple.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.purple.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.purple.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.purple.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.purple.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.purple.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.purple.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.purple.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.purple.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.purple.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.purple.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.purple.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.purple.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.purple.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.purple.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.purple.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.purple.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.purple.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.purple.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.purple.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.purple.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.purple.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.purple.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.purple.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.purple.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.purple.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.purple.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.rtl-container.purple.day .mat-button,.rtl-container.purple.day .mat-icon-button,.rtl-container.purple.day .mat-stroked-button{color:inherit;background:#0000}.rtl-container.purple.day .mat-button.mat-primary,.rtl-container.purple.day .mat-icon-button.mat-primary,.rtl-container.purple.day .mat-stroked-button.mat-primary{color:#5e4ea5}.rtl-container.purple.day .mat-button.mat-accent,.rtl-container.purple.day .mat-icon-button.mat-accent,.rtl-container.purple.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.purple.day .mat-button.mat-warn,.rtl-container.purple.day .mat-icon-button.mat-warn,.rtl-container.purple.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.purple.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-stroked-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.purple.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.purple.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.purple.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#5e4ea5}.rtl-container.purple.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.purple.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.purple.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.purple.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.purple.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.purple.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.purple.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.purple.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.purple.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.purple.day .mat-button .mat-ripple-element,.rtl-container.purple.day .mat-icon-button .mat-ripple-element,.rtl-container.purple.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.purple.day .mat-button-focus-overlay{background:#000}.rtl-container.purple.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.purple.day .mat-fab,.rtl-container.purple.day .mat-flat-button,.rtl-container.purple.day .mat-mini-fab,.rtl-container.purple.day .mat-raised-button{color:#000000de;background-color:#fff}.rtl-container.purple.day .mat-fab.mat-accent,.rtl-container.purple.day .mat-fab.mat-primary,.rtl-container.purple.day .mat-fab.mat-warn,.rtl-container.purple.day .mat-flat-button.mat-accent,.rtl-container.purple.day .mat-flat-button.mat-primary,.rtl-container.purple.day .mat-flat-button.mat-warn,.rtl-container.purple.day .mat-mini-fab.mat-accent,.rtl-container.purple.day .mat-mini-fab.mat-primary,.rtl-container.purple.day .mat-mini-fab.mat-warn,.rtl-container.purple.day .mat-raised-button.mat-accent,.rtl-container.purple.day .mat-raised-button.mat-primary,.rtl-container.purple.day .mat-raised-button.mat-warn{color:#fff}.rtl-container.purple.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.purple.day .mat-fab.mat-primary,.rtl-container.purple.day .mat-flat-button.mat-primary,.rtl-container.purple.day .mat-mini-fab.mat-primary,.rtl-container.purple.day .mat-raised-button.mat-primary{background-color:#5e4ea5}.rtl-container.purple.day .mat-fab.mat-accent,.rtl-container.purple.day .mat-flat-button.mat-accent,.rtl-container.purple.day .mat-mini-fab.mat-accent,.rtl-container.purple.day .mat-raised-button.mat-accent{background-color:#424242}.rtl-container.purple.day .mat-fab.mat-warn,.rtl-container.purple.day .mat-flat-button.mat-warn,.rtl-container.purple.day .mat-mini-fab.mat-warn,.rtl-container.purple.day .mat-raised-button.mat-warn{background-color:#b00020}.rtl-container.purple.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-warn.mat-button-disabled{background-color:#0000001f}.rtl-container.purple.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.purple.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.purple.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.purple.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.day .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.purple.day .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.purple.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.purple.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.purple.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.purple.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.purple.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.purple.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.day .mat-button-toggle-group,.rtl-container.purple.day .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.day .mat-button-toggle-group-appearance-standard,.rtl-container.purple.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.purple.day .mat-button-toggle{color:#00000061}.rtl-container.purple.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.purple.day .mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.rtl-container.purple.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.purple.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #0000001f}.rtl-container.purple.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #0000001f}.rtl-container.purple.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #0000001f}.rtl-container.purple.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.purple.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.purple.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.purple.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.rtl-container.purple.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.purple.day .mat-button-toggle-group-appearance-standard,.rtl-container.purple.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #0000001f}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.rtl-container.purple.day .mat-card{background:#fff;color:#000000de}.rtl-container.purple.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.purple.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.day .mat-card-subtitle{color:#0000008a}.rtl-container.purple.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.purple.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.purple.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.purple.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.purple.day .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.purple.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#5e4ea5}.rtl-container.purple.day .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.purple.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.purple.day .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.purple.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.purple.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.purple.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.purple.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.purple.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.purple.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.purple.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#5e4ea5}.rtl-container.purple.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.purple.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.purple.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.purple.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.purple.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.purple.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip:after{background:#000}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#5e4ea5;color:#fff}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.day .mat-table{background:#fff}.rtl-container.purple.day .mat-table-sticky,.rtl-container.purple.day .mat-table tbody,.rtl-container.purple.day .mat-table tfoot,.rtl-container.purple.day .mat-table thead,.rtl-container.purple.day [mat-footer-row],.rtl-container.purple.day [mat-header-row],.rtl-container.purple.day [mat-row],.rtl-container.purple.day mat-footer-row,.rtl-container.purple.day mat-header-row,.rtl-container.purple.day mat-row{background:inherit}.rtl-container.purple.day mat-footer-row,.rtl-container.purple.day mat-header-row,.rtl-container.purple.day mat-row,.rtl-container.purple.day td.mat-cell,.rtl-container.purple.day td.mat-footer-cell,.rtl-container.purple.day th.mat-header-cell{border-bottom-color:#0000001f}.rtl-container.purple.day .mat-header-cell{color:#0000008a}.rtl-container.purple.day .mat-cell,.rtl-container.purple.day .mat-footer-cell{color:#000000de}.rtl-container.purple.day .mat-calendar-arrow{border-top-color:#0000008a}.rtl-container.purple.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.purple.day .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.purple.day .mat-datepicker-toggle{color:#0000008a}.rtl-container.purple.day .mat-calendar-table-header{color:#00000061}.rtl-container.purple.day .mat-calendar-table-header-divider:after{background:#0000001f}.rtl-container.purple.day .mat-calendar-body-label{color:#0000008a}.rtl-container.purple.day .mat-calendar-body-cell-content,.rtl-container.purple.day .mat-date-range-input-separator{color:#000000de;border-color:#0000}.rtl-container.purple.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.purple.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.purple.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.purple.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.purple.day .mat-calendar-body-in-range:before{background:#5e4ea533}.rtl-container.purple.day .mat-calendar-body-comparison-identical,.rtl-container.purple.day .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.purple.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#5e4ea533 50%,#f9ab0033 0)}.rtl-container.purple.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#5e4ea533 50%,#f9ab0033 0)}.rtl-container.purple.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.purple.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.purple.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.day .mat-calendar-body-selected{background-color:#5e4ea5;color:#fff}.rtl-container.purple.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#5e4ea566}.rtl-container.purple.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#5e4ea54d}.rtl-container.purple.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#fff;color:#000000de}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#42424233}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#42424233 50%,#f9ab0033 0)}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#42424233 50%,#f9ab0033 0)}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#b0002033}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}.rtl-container.purple.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.purple.day .mat-datepicker-toggle-active{color:#5e4ea5}.rtl-container.purple.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.purple.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.purple.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.purple.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.rtl-container.purple.day .mat-divider{border-top-color:#0000001f}.rtl-container.purple.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.purple.day .mat-expansion-panel{background:#fff;color:#000000de}.rtl-container.purple.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.day .mat-action-row{border-top-color:#0000001f}.rtl-container.purple.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.purple.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.purple.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.purple.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.rtl-container.purple.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.purple.day .mat-expansion-indicator:after,.rtl-container.purple.day .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.purple.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.purple.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.purple.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.mat-expansion-panel-header{height:48px}.mat-expansion-panel-header.mat-expanded{height:64px}.rtl-container.purple.day .mat-form-field-label,.rtl-container.purple.day .mat-hint{color:#0009}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-label{color:#5e4ea5}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.purple.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.purple.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#5e4ea5}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#5e4ea5}.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.purple.day .mat-error{color:#b00020}.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.purple.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.purple.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.purple.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.purple.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.purple.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.purple.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.purple.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.purple.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.purple.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.purple.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#5e4ea5}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.purple.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.purple.day .mat-icon.mat-primary{color:#5e4ea5}.rtl-container.purple.day .mat-icon.mat-accent{color:#424242}.rtl-container.purple.day .mat-icon.mat-warn{color:#b00020}.rtl-container.purple.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after,.rtl-container.purple.day .mat-input-element:disabled{color:#00000061}.rtl-container.purple.day .mat-input-element{caret-color:#5e4ea5}.rtl-container.purple.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.purple.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.purple.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.purple.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.purple.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.purple.day .mat-form-field-invalid .mat-input-element,.rtl-container.purple.day .mat-form-field.mat-warn .mat-input-element{caret-color:#b00020}.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.purple.day .mat-list-base .mat-list-item,.rtl-container.purple.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.purple.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.purple.day .mat-list-item-disabled{background-color:#eee}.rtl-container.purple.day .mat-action-list .mat-list-item:focus,.rtl-container.purple.day .mat-action-list .mat-list-item:hover,.rtl-container.purple.day .mat-list-option:focus,.rtl-container.purple.day .mat-list-option:hover,.rtl-container.purple.day .mat-nav-list .mat-list-item:focus,.rtl-container.purple.day .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.purple.day .mat-list-single-selected-option,.rtl-container.purple.day .mat-list-single-selected-option:focus,.rtl-container.purple.day .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.purple.day .mat-menu-panel{background:#fff}.rtl-container.purple.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.day .mat-menu-item{background:#0000;color:#000000de}.rtl-container.purple.day .mat-menu-item[disabled],.rtl-container.purple.day .mat-menu-item[disabled] .mat-icon-no-color,.rtl-container.purple.day .mat-menu-item[disabled]:after{color:#00000061}.rtl-container.purple.day .mat-menu-item-submenu-trigger:after,.rtl-container.purple.day .mat-menu-item .mat-icon-no-color{color:#0000008a}.rtl-container.purple.day .mat-menu-item-highlighted:not([disabled]),.rtl-container.purple.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.purple.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.purple.day .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.purple.day .mat-paginator{background:#fff}.rtl-container.purple.day .mat-paginator,.rtl-container.purple.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.purple.day .mat-paginator-decrement,.rtl-container.purple.day .mat-paginator-increment{border-top:2px solid #0000008a;border-right:2px solid #0000008a}.rtl-container.purple.day .mat-paginator-first,.rtl-container.purple.day .mat-paginator-last{border-top:2px solid #0000008a}.rtl-container.purple.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.purple.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.purple.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.purple.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.mat-paginator-container{min-height:56px}.rtl-container.purple.day .mat-progress-bar-background{fill:#d3cfe5}.rtl-container.purple.day .mat-progress-bar-buffer{background-color:#d3cfe5}.rtl-container.purple.day .mat-progress-bar-fill:after{background-color:#5e4ea5}.rtl-container.purple.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.purple.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.purple.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.purple.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.purple.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.purple.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.purple.day .mat-progress-spinner circle,.rtl-container.purple.day .mat-spinner circle{stroke:#5e4ea5}.rtl-container.purple.day .mat-progress-spinner.mat-accent circle,.rtl-container.purple.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.purple.day .mat-progress-spinner.mat-warn circle,.rtl-container.purple.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.purple.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.purple.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#5e4ea5}.rtl-container.purple.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.purple.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#5e4ea5}.rtl-container.purple.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.purple.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.purple.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.purple.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.purple.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.purple.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.purple.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.purple.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.purple.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.rtl-container.purple.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:#00000061}.rtl-container.purple.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.purple.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.purple.day .mat-select-value{color:#000000de}.rtl-container.purple.day .mat-select-placeholder{color:#0000006b}.rtl-container.purple.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.purple.day .mat-select-arrow{color:#0000008a}.rtl-container.purple.day .mat-select-panel{background:#fff}.rtl-container.purple.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.purple.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#5e4ea5}.rtl-container.purple.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.purple.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.purple.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.purple.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.purple.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.purple.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.purple.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.purple.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.purple.day .mat-drawer-side{border-right:1px solid #0000001f}.rtl-container.purple.day .mat-drawer-side.mat-drawer-end,.rtl-container.purple.day [dir=rtl] .mat-drawer-side{border-left:1px solid #0000001f;border-right:none}.rtl-container.purple.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #0000001f}.rtl-container.purple.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.purple.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.purple.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.purple.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.purple.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#5e4ea5}.rtl-container.purple.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#5e4ea58a}.rtl-container.purple.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#5e4ea5}.rtl-container.purple.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.purple.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.purple.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.purple.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.purple.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#fafafa}.rtl-container.purple.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.purple.day .mat-slider-track-background{background-color:#00000042}.rtl-container.purple.day .mat-primary .mat-slider-thumb,.rtl-container.purple.day .mat-primary .mat-slider-thumb-label,.rtl-container.purple.day .mat-primary .mat-slider-track-fill{background-color:#5e4ea5}.rtl-container.purple.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.day .mat-primary .mat-slider-focus-ring{background-color:#5e4ea533}.rtl-container.purple.day .mat-accent .mat-slider-thumb,.rtl-container.purple.day .mat-accent .mat-slider-thumb-label,.rtl-container.purple.day .mat-accent .mat-slider-track-fill{background-color:#424242}.rtl-container.purple.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.purple.day .mat-warn .mat-slider-thumb,.rtl-container.purple.day .mat-warn .mat-slider-thumb-label,.rtl-container.purple.day .mat-warn .mat-slider-track-fill{background-color:#b00020}.rtl-container.purple.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.purple.day .cdk-focused .mat-slider-track-background,.rtl-container.purple.day .mat-slider:hover .mat-slider-track-background{background-color:#00000061}.rtl-container.purple.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.purple.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.purple.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.purple.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.purple.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.purple.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.purple.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.purple.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.purple.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:initial}.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#00000061}.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.purple.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.purple.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#000000b3,#000000b3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.purple.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.purple.day .mat-step-header.cdk-keyboard-focused,.rtl-container.purple.day .mat-step-header.cdk-program-focused,.rtl-container.purple.day .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.purple.day .mat-step-header:hover{background:none}}.rtl-container.purple.day .mat-step-header .mat-step-label,.rtl-container.purple.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.purple.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.purple.day .mat-step-header .mat-step-icon-selected,.rtl-container.purple.day .mat-step-header .mat-step-icon-state-done,.rtl-container.purple.day .mat-step-header .mat-step-icon-state-edit{background-color:#5e4ea5;color:#fff}.rtl-container.purple.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.purple.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.purple.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.purple.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.purple.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.purple.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.purple.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.purple.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.purple.day .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#b00020}.rtl-container.purple.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.purple.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.purple.day .mat-stepper-horizontal,.rtl-container.purple.day .mat-stepper-vertical{background-color:#fff}.rtl-container.purple.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.purple.day .mat-horizontal-stepper-header:after,.rtl-container.purple.day .mat-horizontal-stepper-header:before,.rtl-container.purple.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.mat-horizontal-stepper-header{height:72px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.mat-vertical-stepper-header{padding:24px}.mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before,.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.rtl-container.purple.day .mat-sort-header-arrow{color:#757575}.rtl-container.purple.day .mat-tab-header,.rtl-container.purple.day .mat-tab-nav-bar{border-bottom:1px solid #0000001f}.rtl-container.purple.day .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.purple.day .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #0000001f;border-bottom:none}.rtl-container.purple.day .mat-tab-label,.rtl-container.purple.day .mat-tab-link{color:#000000de}.rtl-container.purple.day .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.purple.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.purple.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.purple.day .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.purple.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.purple.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#8e83c04d}.rtl-container.purple.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#5e4ea5}.rtl-container.purple.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.purple.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.purple.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.purple.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.purple.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#8e83c04d}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#5e4ea5}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.purple.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#424242}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.purple.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#b00020}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.purple.day .mat-toolbar{background:#f5f5f5;color:#000000de}.rtl-container.purple.day .mat-toolbar.mat-primary{background:#5e4ea5;color:#fff}.rtl-container.purple.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.purple.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.purple.day .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.purple.day .mat-toolbar .mat-form-field-ripple,.rtl-container.purple.day .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.purple.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.purple.day .mat-toolbar .mat-form-field-label,.rtl-container.purple.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.purple.day .mat-toolbar .mat-select-arrow,.rtl-container.purple.day .mat-toolbar .mat-select-value{color:inherit}.rtl-container.purple.day .mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar-multiple-rows{min-height:64px}.mat-toolbar-row,.mat-toolbar-single-row{height:64px}@media (max-width:599px){.mat-toolbar-multiple-rows{min-height:56px}.mat-toolbar-row,.mat-toolbar-single-row{height:56px}}.rtl-container.purple.day .mat-tooltip{background:#616161e6}.rtl-container.purple.day .mat-tree{background:#fff}.rtl-container.purple.day .mat-nested-tree-node,.rtl-container.purple.day .mat-tree-node{color:#000000de}.mat-tree-node{min-height:48px}.rtl-container.purple.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.purple.day .mat-simple-snackbar-action{color:#424242}.rtl-container.purple.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.purple.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.purple.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.purple.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.purple.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.purple.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.purple.day .rtl-top-toolbar{border-bottom:1px solid #fff}.rtl-container.purple.day .bg-primary{background-color:#5e4ea5;color:#fff}.rtl-container.purple.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#5e4ea5}.rtl-container.purple.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.purple.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.purple.day .mat-tab-label.mat-tab-label-active{color:#5e4ea5}.rtl-container.purple.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#5e4ea5}.rtl-container.purple.day .mat-tab-label .tab-badge .mat-badge-content{background:#0000008a}.rtl-container.purple.day .mat-form-field-suffix,.rtl-container.purple.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.purple.day .ng-fa-icon{color:#0000008a}.rtl-container.purple.day .mat-stroked-button.mat-primary{border-color:#5e4ea5}.rtl-container.purple.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.purple.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.purple.day .selected-color{border-color:#8e83c0}.rtl-container.purple.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.purple.day .page-sub-title-container,.rtl-container.purple.day .page-title-container{color:#0000008a}.rtl-container.purple.day .page-sub-title-container .page-title-img,.rtl-container.purple.day .page-title-container .page-title-img{color:#00000061}.rtl-container.purple.day .page-sub-title-container .mat-input-element,.rtl-container.purple.day .page-sub-title-container .mat-radio-label-content,.rtl-container.purple.day .page-sub-title-container .theme-name,.rtl-container.purple.day .page-title-container .mat-input-element,.rtl-container.purple.day .page-title-container .mat-radio-label-content,.rtl-container.purple.day .page-title-container .theme-name{color:#000000de}.rtl-container.purple.day .cc-data-block .cc-data-title{color:#5e4ea5}.rtl-container.purple.day .active-link,.rtl-container.purple.day .active-link .fa-icon-small{color:#5e4ea5;font-weight:500;cursor:pointer;fill:#5e4ea5}.rtl-container.purple.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.purple.day .mat-nested-tree-node-parent:hover,.rtl-container.purple.day .mat-select-panel .mat-option:hover,.rtl-container.purple.day .mat-tree-node:hover{color:#5e4ea5;cursor:pointer;background:#0000000a}.rtl-container.purple.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.purple.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.purple.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.purple.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.purple.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.purple.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.purple.day .mat-tree-node:hover .mat-icon,.rtl-container.purple.day .mat-tree-node:hover .ng-fa-icon{color:#5e4ea5}.rtl-container.purple.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.purple.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.purple.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.purple.day .mat-tree-node:hover .sidenav-img svg{fill:#5e4ea5}.rtl-container.purple.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.purple.day .mat-nested-tree-node .sidenav-img,.rtl-container.purple.day .mat-tree-node .sidenav-img,.rtl-container.purple.day .page-title-container .page-title-img,.rtl-container.purple.day svg.top-icon-small{fill:#000000de}.rtl-container.purple.day .mat-progress-bar-fill:after{background-color:#312579}.rtl-container.purple.day .modal-qr-code-container{background:#0000001f}.rtl-container.purple.day .mat-tab-label,.rtl-container.purple.day .mat-tab-link{color:#0000008a}.rtl-container.purple.day .mat-card,.rtl-container.purple.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid #0000001f}.rtl-container.purple.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.purple.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.purple.day .dashboard-info-title{color:#5e4ea5}.rtl-container.purple.day .dashboard-info-value{color:#0000008a}.rtl-container.purple.day .color-primary{color:#5e4ea5!important}.rtl-container.purple.day .dot-primary{background-color:#5e4ea5!important}.rtl-container.purple.day .dot-primary-lighter{background-color:#8e83c0!important}.rtl-container.purple.day .mat-expansion-panel.flat-expansion-panel{border:1px solid #0000001f}.rtl-container.purple.day .mat-tooltip{font-size:120%}.rtl-container.purple.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.purple.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.purple.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.purple.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.purple.day svg .fill-color-1{fill:#fff}.rtl-container.purple.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.purple.day svg .fill-color-3,.rtl-container.purple.day svg .fill-color-4,.rtl-container.purple.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.purple.day svg .fill-color-6{fill:#fff}.rtl-container.purple.day svg .fill-color-7,.rtl-container.purple.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.purple.day svg .fill-color-9{fill:#fff}.rtl-container.purple.day svg .fill-color-10,.rtl-container.purple.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.purple.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.purple.day svg .fill-color-13,.rtl-container.purple.day svg .fill-color-14,.rtl-container.purple.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.purple.day svg .fill-color-16,.rtl-container.purple.day svg .fill-color-17{fill:#404040}.rtl-container.purple.day svg .fill-color-18{fill:#000}.rtl-container.purple.day svg .fill-color-19,.rtl-container.purple.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.purple.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.purple.day svg .fill-color-22,.rtl-container.purple.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.purple.day svg .fill-color-24{fill:#000}.rtl-container.purple.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.purple.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.purple.day svg .fill-color-27{fill:#000}.rtl-container.purple.day svg .fill-color-28{fill:#313131}.rtl-container.purple.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.purple.day svg .fill-color-30{fill:#fff}.rtl-container.purple.day svg .fill-color-31{fill:#5e4ea5}.rtl-container.purple.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.purple.day svg .fill-color-primary{fill:#5e4ea5}.rtl-container.purple.day svg .fill-color-primary-lighter{fill:#8e83c0}.rtl-container.purple.day svg .fill-color-primary-darker{fill:#5e4ea5}.rtl-container.purple.day .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.purple.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.purple.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.purple.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.purple.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.purple.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.purple.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#5e4ea5}.rtl-container.purple.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.purple.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#312579}.rtl-container.purple.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.purple.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#afa7d2}.rtl-container.purple.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.purple.day .mat-progress-bar-buffer{background-color:#cfcae4}.rtl-container.purple.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.purple.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.purple.day .foreground.mat-progress-spinner circle,.rtl-container.purple.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.purple.day .mat-toolbar-row,.rtl-container.purple.day .mat-toolbar-single-row{height:5rem}.rtl-container.purple.day .lnd-info{border-bottom:1px solid #0000001f}.rtl-container.purple.day a{color:#5e4ea5}.rtl-container.purple.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.purple.day .h-active-link{border-bottom:2px solid #fff}.rtl-container.purple.day .mat-icon-36{color:#0000008a}.rtl-container.purple.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.purple.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.purple.day .genseed-message{width:10%;color:#5e4ea5}.rtl-container.purple.day .material-icons.primary{color:#5e4ea5}.rtl-container.purple.day .material-icons.accent{color:#424242}.rtl-container.purple.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.purple.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.purple.day .row-disabled{background-color:gray}.rtl-container.purple.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.purple.day .mat-menu-panel{min-width:6.4rem}.rtl-container.purple.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.purple.day .horizontal-button:hover{background:#8e83c0;color:#424242}.rtl-container.purple.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#5e4ea5}.rtl-container.purple.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.purple.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.purple.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.purple.day .mat-cell,.rtl-container.purple.day .mat-footer-cell,.rtl-container.purple.day .mat-header-cell{border-bottom:1px solid #0000001f}.rtl-container.purple.day table.mat-table{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.purple.day table.mat-table thead tr th{color:#000}.rtl-container.purple.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.purple.day .bordered-box{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.purple.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.purple.day .mat-expansion-panel{border:1px solid #0000001f}.rtl-container.purple.day .more-button{color:#00000061}.rtl-container.purple.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.purple.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.purple.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.purple.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.purple.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.purple.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.purple.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.purple.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.purple.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.purple.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.purple.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.purple.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.purple.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.purple.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.purple.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.purple.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.purple.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.purple.day .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#afa7d2!important}.rtl-container.purple.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#56479d!important}.rtl-container.purple.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.purple.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.purple.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.purple.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.purple.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid #0000008a}.rtl-container.purple.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.purple.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.purple.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.purple.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.purple.day .color-warn{color:#b00020}.rtl-container.purple.day .fill-warn{fill:#b00020}.rtl-container.purple.day .alert{border:1px solid #0000008a;color:#0000008a;background-color:#0000000a}.rtl-container.purple.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.purple.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.purple.day .alert.alert-info a{color:#004085}.rtl-container.purple.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.purple.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.purple.day .alert.alert-warn a{color:#856404}.rtl-container.purple.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.purple.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.purple.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.purple.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.purple.day .help-expansion .mat-expansion-panel-header,.rtl-container.purple.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.purple.day .help-expansion .mat-expansion-indicator:after,.rtl-container.purple.day .help-expansion .mat-expansion-panel-content,.rtl-container.purple.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.purple.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.purple.day .failed-status{color:#b00020}.rtl-container.purple.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.purple.day .svg-fill-primary{fill:#5e4ea5}.rtl-container.purple.day .svg-fill-primary-lighter{fill:#8e83c0}.rtl-container.purple.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.purple.day ngx-charts-bar-vertical-2d text,.rtl-container.purple.day ngx-charts-bar-vertical text{fill:#000000de}.rtl-container.purple.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.purple.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.purple.day .mat-paginator-container{padding:0}.rtl-container.purple.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-option{color:#fff}.rtl-container.purple.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.night .mat-option:focus:not(.mat-option-disabled),.rtl-container.purple.night .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.purple.night .mat-option.mat-active{background:#0000000a;color:#fff}.rtl-container.purple.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#5e4ea5}.rtl-container.purple.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.purple.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.purple.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.purple.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.purple.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.purple.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#5e4ea5}.rtl-container.purple.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.purple.night .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.purple.night .mat-pseudo-checkbox-checked,.rtl-container.purple.night .mat-pseudo-checkbox-indeterminate{background:#eee}.rtl-container.purple.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.purple.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.purple.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.purple.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.purple.night.mat-app-background,.rtl-container.purple.night .mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.purple.night .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.purple.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.purple.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.purple.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.purple.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.purple.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.purple.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.purple.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.purple.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.purple.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.purple.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.purple.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.purple.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.purple.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.purple.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.purple.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.purple.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.purple.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.purple.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.purple.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.purple.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.purple.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.purple.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.purple.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.purple.night .mat-badge-content{color:#fff;background:#5e4ea5}.cdk-high-contrast-active .rtl-container.purple.night .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.purple.night .mat-badge-accent .mat-badge-content{background:#eee;color:#000}.rtl-container.purple.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.purple.night .mat-badge{position:relative}.rtl-container.purple.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.purple.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.purple.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.purple.night .mat-badge-content._mat-animation-noopable,.rtl-container.purple.night .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.purple.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.purple.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.purple.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.purple.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.purple.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.purple.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.purple.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.purple.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.purple.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.purple.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.purple.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.purple.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.purple.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.purple.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.purple.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.purple.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.purple.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.purple.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.purple.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.purple.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.purple.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.purple.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.purple.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.purple.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.purple.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.purple.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.purple.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.purple.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.purple.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.purple.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.purple.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.purple.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.purple.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.purple.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.purple.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.purple.night .mat-button,.rtl-container.purple.night .mat-icon-button,.rtl-container.purple.night .mat-stroked-button{color:inherit;background:#0000}.rtl-container.purple.night .mat-button.mat-primary,.rtl-container.purple.night .mat-icon-button.mat-primary,.rtl-container.purple.night .mat-stroked-button.mat-primary{color:#5e4ea5}.rtl-container.purple.night .mat-button.mat-accent,.rtl-container.purple.night .mat-icon-button.mat-accent,.rtl-container.purple.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.purple.night .mat-button.mat-warn,.rtl-container.purple.night .mat-icon-button.mat-warn,.rtl-container.purple.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.purple.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-stroked-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.purple.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.purple.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.purple.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#5e4ea5}.rtl-container.purple.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.purple.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.purple.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.purple.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.purple.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.purple.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.purple.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.purple.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.purple.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.purple.night .mat-button .mat-ripple-element,.rtl-container.purple.night .mat-icon-button .mat-ripple-element,.rtl-container.purple.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.purple.night .mat-button-focus-overlay{background:#fff}.rtl-container.purple.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.purple.night .mat-fab,.rtl-container.purple.night .mat-flat-button,.rtl-container.purple.night .mat-mini-fab,.rtl-container.purple.night .mat-raised-button{color:#fff;background-color:#363636}.rtl-container.purple.night .mat-fab.mat-primary,.rtl-container.purple.night .mat-flat-button.mat-primary,.rtl-container.purple.night .mat-mini-fab.mat-primary,.rtl-container.purple.night .mat-raised-button.mat-primary{color:#fff}.rtl-container.purple.night .mat-fab.mat-accent,.rtl-container.purple.night .mat-flat-button.mat-accent,.rtl-container.purple.night .mat-mini-fab.mat-accent,.rtl-container.purple.night .mat-raised-button.mat-accent{color:#000}.rtl-container.purple.night .mat-fab.mat-warn,.rtl-container.purple.night .mat-flat-button.mat-warn,.rtl-container.purple.night .mat-mini-fab.mat-warn,.rtl-container.purple.night .mat-raised-button.mat-warn{color:#fff}.rtl-container.purple.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.purple.night .mat-fab.mat-primary,.rtl-container.purple.night .mat-flat-button.mat-primary,.rtl-container.purple.night .mat-mini-fab.mat-primary,.rtl-container.purple.night .mat-raised-button.mat-primary{background-color:#5e4ea5}.rtl-container.purple.night .mat-fab.mat-accent,.rtl-container.purple.night .mat-flat-button.mat-accent,.rtl-container.purple.night .mat-mini-fab.mat-accent,.rtl-container.purple.night .mat-raised-button.mat-accent{background-color:#eee}.rtl-container.purple.night .mat-fab.mat-warn,.rtl-container.purple.night .mat-flat-button.mat-warn,.rtl-container.purple.night .mat-mini-fab.mat-warn,.rtl-container.purple.night .mat-raised-button.mat-warn{background-color:#ff343b}.rtl-container.purple.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-warn.mat-button-disabled{background-color:#404040}.rtl-container.purple.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.purple.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.purple.night .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.purple.night .mat-raised-button.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.purple.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.purple.night .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.purple.night .mat-raised-button.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.purple.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.purple.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.purple.night .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.purple.night .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.purple.night .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.purple.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.purple.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.purple.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.purple.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.purple.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.purple.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.night .mat-button-toggle-group,.rtl-container.purple.night .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.night .mat-button-toggle-group-appearance-standard,.rtl-container.purple.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.purple.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.purple.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #ffffff4d}.rtl-container.purple.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.purple.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #ffffff4d}.rtl-container.purple.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.purple.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.purple.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.purple.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.purple.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.purple.night .mat-button-toggle-group-appearance-standard,.rtl-container.purple.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #ffffff4d}.rtl-container.purple.night .mat-card{background:#202020;color:#fff}.rtl-container.purple.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.purple.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.purple.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.purple.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.purple.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.purple.night .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.purple.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#5e4ea5}.rtl-container.purple.night .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.purple.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.purple.night .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.purple.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.purple.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.purple.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.purple.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.purple.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.purple.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.purple.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#5e4ea5}.rtl-container.purple.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.purple.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eee}.rtl-container.purple.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.purple.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.purple.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.purple.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.purple.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip:after{background:#fff}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.purple.night .mat-table{background:#202020}.rtl-container.purple.night .mat-table-sticky,.rtl-container.purple.night .mat-table tbody,.rtl-container.purple.night .mat-table tfoot,.rtl-container.purple.night .mat-table thead,.rtl-container.purple.night [mat-footer-row],.rtl-container.purple.night [mat-header-row],.rtl-container.purple.night [mat-row],.rtl-container.purple.night mat-footer-row,.rtl-container.purple.night mat-header-row,.rtl-container.purple.night mat-row{background:inherit}.rtl-container.purple.night mat-footer-row,.rtl-container.purple.night mat-header-row,.rtl-container.purple.night mat-row,.rtl-container.purple.night td.mat-cell,.rtl-container.purple.night td.mat-footer-cell,.rtl-container.purple.night th.mat-header-cell{border-bottom-color:#ffffff4d}.rtl-container.purple.night .mat-cell,.rtl-container.purple.night .mat-footer-cell{color:#fff}.rtl-container.purple.night .mat-calendar-arrow{border-top-color:#fff}.rtl-container.purple.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.purple.night .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.purple.night .mat-datepicker-toggle{color:#fff}.rtl-container.purple.night .mat-calendar-table-header-divider:after{background:#ffffff4d}.rtl-container.purple.night .mat-calendar-body-cell-content,.rtl-container.purple.night .mat-date-range-input-separator{color:#fff;border-color:#0000}.rtl-container.purple.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.purple.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.purple.night .mat-calendar-body-in-range:before{background:#5e4ea533}.rtl-container.purple.night .mat-calendar-body-comparison-identical,.rtl-container.purple.night .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.purple.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#5e4ea533 50%,#f9ab0033 0)}.rtl-container.purple.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#5e4ea533 50%,#f9ab0033 0)}.rtl-container.purple.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.purple.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.purple.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.night .mat-calendar-body-selected{background-color:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#5e4ea566}.rtl-container.purple.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#5e4ea54d}.rtl-container.purple.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#202020;color:#fff}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#eee3}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#eee3 50%,#f9ab0033 0)}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#eee3 50%,#f9ab0033 0)}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.purple.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#ff343b33}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}.rtl-container.purple.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.purple.night .mat-datepicker-toggle-active{color:#5e4ea5}.rtl-container.purple.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.purple.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.purple.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.purple.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.purple.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.purple.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.purple.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.purple.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.purple.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.purple.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.purple.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.purple.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.purple.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.purple.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.purple.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.purple.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-label{color:#5e4ea5}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.purple.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.purple.night .mat-form-field-ripple{background-color:#fff}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#5e4ea5}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.purple.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#5e4ea5}.rtl-container.purple.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.purple.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.purple.night .mat-error{color:#ff343b}.rtl-container.purple.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.purple.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.purple.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.purple.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.purple.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.purple.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.purple.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.purple.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.purple.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.purple.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.purple.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#5e4ea5}.rtl-container.purple.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.purple.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.purple.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.purple.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.purple.night .mat-icon.mat-primary{color:#5e4ea5}.rtl-container.purple.night .mat-icon.mat-accent{color:#eee}.rtl-container.purple.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.purple.night .mat-input-element{caret-color:#5e4ea5}.rtl-container.purple.night .mat-input-element option{color:#000000de}.rtl-container.purple.night .mat-input-element option:disabled{color:#00000061}.rtl-container.purple.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.purple.night .mat-form-field-invalid .mat-input-element,.rtl-container.purple.night .mat-form-field.mat-warn .mat-input-element{caret-color:#ff343b}.rtl-container.purple.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.purple.night .mat-list-base .mat-list-item,.rtl-container.purple.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.purple.night .mat-list-item-disabled{background-color:#444}.rtl-container.purple.night .mat-action-list .mat-list-item:focus,.rtl-container.purple.night .mat-action-list .mat-list-item:hover,.rtl-container.purple.night .mat-list-option:focus,.rtl-container.purple.night .mat-list-option:hover,.rtl-container.purple.night .mat-nav-list .mat-list-item:focus,.rtl-container.purple.night .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.purple.night .mat-list-single-selected-option,.rtl-container.purple.night .mat-list-single-selected-option:focus,.rtl-container.purple.night .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.purple.night .mat-menu-panel{background:#202020}.rtl-container.purple.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.night .mat-menu-item{background:#0000;color:#fff}.rtl-container.purple.night .mat-menu-item-submenu-trigger:after,.rtl-container.purple.night .mat-menu-item .mat-icon-no-color{color:#fff}.rtl-container.purple.night .mat-menu-item-highlighted:not([disabled]),.rtl-container.purple.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.purple.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.purple.night .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.purple.night .mat-paginator{background:#202020}.rtl-container.purple.night .mat-paginator-decrement,.rtl-container.purple.night .mat-paginator-increment{border-top:2px solid #fff;border-right:2px solid #fff}.rtl-container.purple.night .mat-paginator-first,.rtl-container.purple.night .mat-paginator-last{border-top:2px solid #fff}.rtl-container.purple.night .mat-progress-bar-background{fill:#211d33}.rtl-container.purple.night .mat-progress-bar-buffer{background-color:#211d33}.rtl-container.purple.night .mat-progress-bar-fill:after{background-color:#5e4ea5}.rtl-container.purple.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.purple.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.purple.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.purple.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.purple.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.purple.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.purple.night .mat-progress-spinner circle,.rtl-container.purple.night .mat-spinner circle{stroke:#5e4ea5}.rtl-container.purple.night .mat-progress-spinner.mat-accent circle,.rtl-container.purple.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.purple.night .mat-progress-spinner.mat-warn circle,.rtl-container.purple.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.purple.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#5e4ea5}.rtl-container.purple.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.purple.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#5e4ea5}.rtl-container.purple.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.purple.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.purple.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.purple.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.purple.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.purple.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.purple.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.purple.night .mat-select-value{color:#fff}.rtl-container.purple.night .mat-select-panel{background:#202020}.rtl-container.purple.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.purple.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#5e4ea5}.rtl-container.purple.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.purple.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.purple.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.purple.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.purple.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.purple.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.purple.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.purple.night .mat-drawer-side{border-right:1px solid #ffffff4d}.rtl-container.purple.night .mat-drawer-side.mat-drawer-end,.rtl-container.purple.night [dir=rtl] .mat-drawer-side{border-left:1px solid #ffffff4d;border-right:none}.rtl-container.purple.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.purple.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.purple.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.purple.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.purple.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.purple.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#5e4ea5}.rtl-container.purple.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#5e4ea58a}.rtl-container.purple.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#5e4ea5}.rtl-container.purple.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.purple.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.purple.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.purple.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.purple.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#bdbdbd}.rtl-container.purple.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.purple.night .mat-primary .mat-slider-thumb,.rtl-container.purple.night .mat-primary .mat-slider-thumb-label,.rtl-container.purple.night .mat-primary .mat-slider-track-fill{background-color:#5e4ea5}.rtl-container.purple.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.night .mat-primary .mat-slider-focus-ring{background-color:#5e4ea533}.rtl-container.purple.night .mat-accent .mat-slider-thumb,.rtl-container.purple.night .mat-accent .mat-slider-thumb-label,.rtl-container.purple.night .mat-accent .mat-slider-track-fill{background-color:#eee}.rtl-container.purple.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.purple.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.purple.night .mat-warn .mat-slider-thumb,.rtl-container.purple.night .mat-warn .mat-slider-thumb-label,.rtl-container.purple.night .mat-warn .mat-slider-track-fill{background-color:#ff343b}.rtl-container.purple.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.purple.night .cdk-focused .mat-slider-track-background,.rtl-container.purple.night .mat-slider:hover .mat-slider-track-background{background-color:#fff9}.rtl-container.purple.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.purple.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.purple.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.purple.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.purple.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.purple.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.purple.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.purple.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.purple.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:initial}.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#fff9}.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.purple.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.purple.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.purple.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.purple.night .mat-step-header.cdk-keyboard-focused,.rtl-container.purple.night .mat-step-header.cdk-program-focused,.rtl-container.purple.night .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.purple.night .mat-step-header:hover{background:none}}.rtl-container.purple.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.purple.night .mat-step-header .mat-step-icon-selected,.rtl-container.purple.night .mat-step-header .mat-step-icon-state-done,.rtl-container.purple.night .mat-step-header .mat-step-icon-state-edit{background-color:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.purple.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.purple.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.purple.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.purple.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.purple.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.purple.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.purple.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.purple.night .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#ff343b}.rtl-container.purple.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.purple.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.purple.night .mat-stepper-horizontal,.rtl-container.purple.night .mat-stepper-vertical{background-color:#202020}.rtl-container.purple.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.purple.night .mat-horizontal-stepper-header:after,.rtl-container.purple.night .mat-horizontal-stepper-header:before,.rtl-container.purple.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.purple.night .mat-tab-header,.rtl-container.purple.night .mat-tab-nav-bar{border-bottom:1px solid #ffffff4d}.rtl-container.purple.night .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.purple.night .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #ffffff4d;border-bottom:none}.rtl-container.purple.night .mat-tab-label,.rtl-container.purple.night .mat-tab-link{color:#fff}.rtl-container.purple.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.purple.night .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.purple.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.purple.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#8e83c04d}.rtl-container.purple.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#5e4ea5}.rtl-container.purple.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.purple.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.purple.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.purple.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.purple.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.purple.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#8e83c04d}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#5e4ea5}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.purple.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#eee}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#000}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#0006}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#0000001f}.rtl-container.purple.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#ff343b}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.purple.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.purple.night .mat-toolbar.mat-primary{background:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-toolbar.mat-accent{background:#eee;color:#000}.rtl-container.purple.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.purple.night .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.purple.night .mat-toolbar .mat-form-field-ripple,.rtl-container.purple.night .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.purple.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.purple.night .mat-toolbar .mat-form-field-label,.rtl-container.purple.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.purple.night .mat-toolbar .mat-select-arrow,.rtl-container.purple.night .mat-toolbar .mat-select-value{color:inherit}.rtl-container.purple.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.purple.night .mat-tree{background:#202020}.rtl-container.purple.night .mat-nested-tree-node,.rtl-container.purple.night .mat-tree-node{color:#fff}.rtl-container.purple.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.purple.night .mat-simple-snackbar-action{color:inherit}.rtl-container.purple.night .mat-primary{color:#9787ff}.rtl-container.purple.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.purple.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.purple.night .bg-primary{background-color:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-tab-label.mat-tab-label-active{color:#9787ff}.rtl-container.purple.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#9787ff}.rtl-container.purple.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.purple.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.purple.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.purple.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.purple.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#9787ff}.rtl-container.purple.night .cc-data-block .cc-data-title{color:#9787ff}.rtl-container.purple.night .mat-stroked-button.mat-primary{border-color:#9787ff;color:#9787ff}.rtl-container.purple.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.purple.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.purple.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.purple.night .active-link,.rtl-container.purple.night .active-link .fa-icon-small,.rtl-container.purple.night .mat-select-panel .mat-option.mat-active,.rtl-container.purple.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#9787ff;font-weight:500;cursor:pointer;fill:#9787ff}.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.purple.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#9787ff}.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled),.rtl-container.purple.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.purple.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.purple.night .mat-nested-tree-node-parent:hover,.rtl-container.purple.night .mat-select-panel .mat-option:hover,.rtl-container.purple.night .mat-tree-node:hover{color:#9787ff;cursor:pointer;background:#ffffff0f}.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.purple.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.purple.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.purple.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.purple.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.purple.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.purple.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.purple.night .mat-tree-node:hover .mat-icon,.rtl-container.purple.night .mat-tree-node:hover .ng-fa-icon{color:#9787ff}.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.purple.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.purple.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.purple.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.purple.night .mat-tree-node:hover .sidenav-img svg{fill:#9787ff}.rtl-container.purple.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.purple.night .mat-nested-tree-node .sidenav-img,.rtl-container.purple.night .mat-tree-node .sidenav-img,.rtl-container.purple.night .page-title-container .page-title-img,.rtl-container.purple.night svg.top-icon-small{fill:#fff}.rtl-container.purple.night .selected-color{border-color:#8e83c0}.rtl-container.purple.night .mat-progress-bar-fill:after{background-color:#56479d}.rtl-container.purple.night .chart-legend .legend-label .active .legend-label-text,.rtl-container.purple.night .chart-legend .legend-label:hover{color:#fff!important}.rtl-container.purple.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.purple.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#9787ff}.rtl-container.purple.night .mat-select-panel{background-color:#262626}.rtl-container.purple.night .mat-tree{background:#262626}.rtl-container.purple.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.purple.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.purple.night .dashboard-info-title{color:#9787ff}.rtl-container.purple.night .dashboard-capacity-header,.rtl-container.purple.night .dashboard-info-value{color:#fff}.rtl-container.purple.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.purple.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.purple.night .color-primary{color:#9787ff!important}.rtl-container.purple.night .dot-primary{background-color:#9787ff!important}.rtl-container.purple.night .dot-primary-lighter{background-color:#5e4ea5!important}.rtl-container.purple.night .mat-stepper-vertical{background-color:#262626}.rtl-container.purple.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.purple.night svg .boltz-icon-fill{fill:#fff}.rtl-container.purple.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .fill-color-0,.rtl-container.purple.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.purple.night svg .fill-color-1{fill:#232323}.rtl-container.purple.night svg .fill-color-2{fill:#222}.rtl-container.purple.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.purple.night svg .fill-color-4{fill:#383838}.rtl-container.purple.night svg .fill-color-5{fill:#555}.rtl-container.purple.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.purple.night svg .fill-color-7{fill:#202020}.rtl-container.purple.night svg .fill-color-8{fill:#242424}.rtl-container.purple.night svg .fill-color-9{fill:#262626}.rtl-container.purple.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.purple.night svg .fill-color-11{fill:#171717}.rtl-container.purple.night svg .fill-color-12{fill:#ccc}.rtl-container.purple.night svg .fill-color-13{fill:#adadad}.rtl-container.purple.night svg .fill-color-14{fill:#ababab}.rtl-container.purple.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.purple.night svg .fill-color-16{fill:#707070}.rtl-container.purple.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.purple.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.purple.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.purple.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.purple.night svg .fill-color-21{fill:#cacaca}.rtl-container.purple.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.purple.night svg .fill-color-23{fill:#777}.rtl-container.purple.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.purple.night svg .fill-color-25{fill:#252525}.rtl-container.purple.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.purple.night svg .fill-color-27{fill:#000}.rtl-container.purple.night svg .fill-color-28{fill:#313131}.rtl-container.purple.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.purple.night svg .fill-color-30{fill:#fff}.rtl-container.purple.night svg .fill-color-31{fill:#5e4ea5}.rtl-container.purple.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.purple.night svg .fill-color-primary{fill:#5e4ea5}.rtl-container.purple.night svg .fill-color-primary-lighter{fill:#8e83c0}.rtl-container.purple.night svg .fill-color-primary-darker{fill:#9787ff}.rtl-container.purple.night .mat-select-arrow,.rtl-container.purple.night .mat-select-value{color:#fff}.rtl-container.purple.night .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.purple.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.purple.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.purple.night .mat-slide-toggle-bar,.rtl-container.purple.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.purple.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.purple.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.purple.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.purple.night .mat-button.mat-primary,.rtl-container.purple.night .mat-icon-button.mat-primary,.rtl-container.purple.night .mat-stroked-button.mat-primary{color:#9787ff}.rtl-container.purple.night tr.alert.alert-warn .mat-cell,.rtl-container.purple.night tr.alert.alert-warn .mat-footer-cell,.rtl-container.purple.night tr.alert.alert-warn .mat-header-cell{color:#856404}.rtl-container.purple.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.purple.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#9787ff}.rtl-container.purple.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.purple.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#42358a}.rtl-container.purple.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.purple.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#9787ff}.rtl-container.purple.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.purple.night .mat-progress-bar-buffer{background-color:#cfcae4}.rtl-container.purple.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.purple.night .foreground-secondary-text{color: !important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.purple.night .foreground.mat-progress-spinner circle,.rtl-container.purple.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.purple.night .mat-toolbar-row,.rtl-container.purple.night .mat-toolbar-single-row{height:5rem}.rtl-container.purple.night .lnd-info{border-bottom:1px solid #ffffff4d}.rtl-container.purple.night a{color:#5e4ea5}.rtl-container.purple.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.purple.night .h-active-link{border-bottom:2px solid #fff}.rtl-container.purple.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.purple.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.purple.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.purple.night .genseed-message{width:10%;color:#5e4ea5}.rtl-container.purple.night .material-icons.primary{color:#5e4ea5}.rtl-container.purple.night .material-icons.accent{color:#eee}.rtl-container.purple.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.purple.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.purple.night .row-disabled{background-color:gray}.rtl-container.purple.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.purple.night .mat-menu-panel{min-width:6.4rem}.rtl-container.purple.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.purple.night .horizontal-button:hover{background:#8e83c0;color:#eee}.rtl-container.purple.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#5e4ea5}.rtl-container.purple.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.purple.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.purple.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.purple.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.purple.night .mat-cell,.rtl-container.purple.night .mat-footer-cell,.rtl-container.purple.night .mat-header-cell{border-bottom:1px solid #ffffff4d}.rtl-container.purple.night table.mat-table{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.purple.night table.mat-table thead tr th{color:#fff}.rtl-container.purple.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.purple.night .bordered-box{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.purple.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.purple.night .mat-expansion-panel{border:1px solid #ffffff4d}.rtl-container.purple.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.purple.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.purple.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.purple.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.purple.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.purple.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.purple.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.purple.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.purple.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.purple.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.purple.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.purple.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.purple.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.purple.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.purple.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.purple.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.purple.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.purple.night .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#afa7d2!important}.rtl-container.purple.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#56479d!important}.rtl-container.purple.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.purple.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.purple.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.purple.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.purple.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.purple.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.purple.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.purple.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.purple.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.purple.night .color-warn{color:#ff343b}.rtl-container.purple.night .fill-warn{fill:#ff343b}.rtl-container.purple.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.purple.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.purple.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.purple.night .alert.alert-info a{color:#004085}.rtl-container.purple.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.purple.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.purple.night .alert.alert-warn a{color:#856404}.rtl-container.purple.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.purple.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.purple.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.purple.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.purple.night .help-expansion .mat-expansion-panel-header,.rtl-container.purple.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.purple.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.purple.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.purple.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.purple.night .failed-status{color:#ff343b}.rtl-container.purple.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.purple.night .svg-fill-primary{fill:#5e4ea5}.rtl-container.purple.night .svg-fill-primary-lighter{fill:#8e83c0}.rtl-container.purple.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.purple.night ngx-charts-bar-vertical-2d text,.rtl-container.purple.night ngx-charts-bar-vertical text{fill:#fff}.rtl-container.purple.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.purple.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.purple.night .mat-paginator-container{padding:0}.rtl-container.blue.small.small .mat-header-cell{font-weight:700}.rtl-container.blue.small.small .mr-4{margin-right:1rem!important}.rtl-container.blue.small.small .mat-menu-item,.rtl-container.blue.small.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.blue.small.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.blue.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.blue.small.small .fa-icon-small,.rtl-container.blue.small.small .genseed-message,.rtl-container.blue.small.small .top-icon-small,.rtl-container.blue.small.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.blue.small.small .page-sub-title-container,.rtl-container.blue.small.small .page-title-container{font-size:1.32rem}.rtl-container.blue.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.blue.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.blue.small.small .sidenav-img svg,.rtl-container.blue.small.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.blue.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.blue.small.small .material-icons,.rtl-container.blue.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.blue.small.small .mat-expansion-panel-header,.rtl-container.blue.small.small .mat-list .mat-list-item,.rtl-container.blue.small.small .mat-menu-item,.rtl-container.blue.small.small .mat-nav-list .mat-list-item,.rtl-container.blue.small.small .mat-option,.rtl-container.blue.small.small .mat-select,.rtl-container.blue.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.blue.small.small .logo{font-size:2.4rem}.rtl-container.blue.small.small .font-60-percent{font-size:.72rem}.rtl-container.blue.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.blue.small.small .icon-large{font-size:6rem}.rtl-container.blue.small.small .icon-small{font-size:1.8rem!important}.rtl-container.blue.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.blue.small.small .size-triple{font-size:3.6rem}.rtl-container.blue.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.blue.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.small.medium .mat-header-cell{font-weight:700}.rtl-container.blue.small.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.blue.small.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.blue.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.blue.small.medium .genseed-message,.rtl-container.blue.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.blue.small.medium .page-sub-title-container,.rtl-container.blue.small.medium .page-title-container{font-size:1.54rem}.rtl-container.blue.small.medium .fa-icon-small,.rtl-container.blue.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.blue.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.blue.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.blue.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.blue.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.blue.small.medium .sidenav-img svg,.rtl-container.blue.small.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.blue.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.blue.small.medium .material-icons{font-size:2.8rem}.rtl-container.blue.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.blue.small.medium .mat-expansion-panel-header,.rtl-container.blue.small.medium .mat-list .mat-list-item,.rtl-container.blue.small.medium .mat-menu-item,.rtl-container.blue.small.medium .mat-nav-list .mat-list-item,.rtl-container.blue.small.medium .mat-option,.rtl-container.blue.small.medium .mat-select,.rtl-container.blue.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.blue.small.medium .logo{font-size:2.8rem}.rtl-container.blue.small.medium .font-60-percent{font-size:.84rem}.rtl-container.blue.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.blue.small.medium .icon-large{font-size:7rem}.rtl-container.blue.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.blue.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.blue.small.medium .size-triple{font-size:4.2rem}.rtl-container.blue.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.blue.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.small.large .mat-header-cell{font-weight:800}.rtl-container.blue.small.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.blue.small.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.blue.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.blue.small.large .genseed-message,.rtl-container.blue.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.blue.small.large .page-sub-title-container,.rtl-container.blue.small.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.blue.small.large .fa-icon-small,.rtl-container.blue.small.large .modal-info-header,.rtl-container.blue.small.large .top-icon-small{font-size:1.92rem}.rtl-container.blue.small.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.blue.small.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.blue.small.large .sidenav-img svg,.rtl-container.blue.small.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.blue.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.blue.small.large .material-icons{font-size:4rem}.rtl-container.blue.small.large .mat-expansion-panel-header,.rtl-container.blue.small.large .mat-list .mat-list-item,.rtl-container.blue.small.large .mat-menu-item,.rtl-container.blue.small.large .mat-nav-list .mat-list-item,.rtl-container.blue.small.large .mat-option,.rtl-container.blue.small.large .mat-select,.rtl-container.blue.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.blue.small.large .logo{font-size:3.2rem}.rtl-container.blue.small.large .font-60-percent{font-size:.96rem}.rtl-container.blue.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.blue.small.large .icon-large{font-size:8rem}.rtl-container.blue.small.large .icon-small{font-size:2.4rem!important}.rtl-container.blue.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.blue.small.large .size-triple{font-size:4.8rem}.rtl-container.blue.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.blue.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.small .mat-icon.material-icons:focus{outline:none}.rtl-container.blue.small .mat-flat-button.mat-primary:focus,.rtl-container.blue.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.blue.medium.small .mat-header-cell{font-weight:700}.rtl-container.blue.medium.small .mr-4{margin-right:1rem!important}.rtl-container.blue.medium.small .mat-menu-item,.rtl-container.blue.medium.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.blue.medium.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.blue.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.blue.medium.small .fa-icon-small,.rtl-container.blue.medium.small .genseed-message,.rtl-container.blue.medium.small .top-icon-small,.rtl-container.blue.medium.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.blue.medium.small .page-sub-title-container,.rtl-container.blue.medium.small .page-title-container{font-size:1.32rem}.rtl-container.blue.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.blue.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.blue.medium.small .sidenav-img svg,.rtl-container.blue.medium.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.blue.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.blue.medium.small .material-icons,.rtl-container.blue.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.blue.medium.small .mat-expansion-panel-header,.rtl-container.blue.medium.small .mat-list .mat-list-item,.rtl-container.blue.medium.small .mat-menu-item,.rtl-container.blue.medium.small .mat-nav-list .mat-list-item,.rtl-container.blue.medium.small .mat-option,.rtl-container.blue.medium.small .mat-select,.rtl-container.blue.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.blue.medium.small .logo{font-size:2.4rem}.rtl-container.blue.medium.small .font-60-percent{font-size:.72rem}.rtl-container.blue.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.blue.medium.small .icon-large{font-size:6rem}.rtl-container.blue.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.blue.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.blue.medium.small .size-triple{font-size:3.6rem}.rtl-container.blue.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.blue.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.medium.medium .mat-header-cell{font-weight:700}.rtl-container.blue.medium.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.blue.medium.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.blue.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.blue.medium.medium .genseed-message,.rtl-container.blue.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.blue.medium.medium .page-sub-title-container,.rtl-container.blue.medium.medium .page-title-container{font-size:1.54rem}.rtl-container.blue.medium.medium .fa-icon-small,.rtl-container.blue.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.blue.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.blue.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.blue.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.blue.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.blue.medium.medium .sidenav-img svg,.rtl-container.blue.medium.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.blue.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.blue.medium.medium .material-icons{font-size:2.8rem}.rtl-container.blue.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.blue.medium.medium .mat-expansion-panel-header,.rtl-container.blue.medium.medium .mat-list .mat-list-item,.rtl-container.blue.medium.medium .mat-menu-item,.rtl-container.blue.medium.medium .mat-nav-list .mat-list-item,.rtl-container.blue.medium.medium .mat-option,.rtl-container.blue.medium.medium .mat-select,.rtl-container.blue.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.blue.medium.medium .logo{font-size:2.8rem}.rtl-container.blue.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.blue.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.blue.medium.medium .icon-large{font-size:7rem}.rtl-container.blue.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.blue.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.blue.medium.medium .size-triple{font-size:4.2rem}.rtl-container.blue.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.blue.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.medium.large .mat-header-cell{font-weight:800}.rtl-container.blue.medium.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.blue.medium.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.blue.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.blue.medium.large .genseed-message,.rtl-container.blue.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.blue.medium.large .page-sub-title-container,.rtl-container.blue.medium.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.blue.medium.large .fa-icon-small,.rtl-container.blue.medium.large .modal-info-header,.rtl-container.blue.medium.large .top-icon-small{font-size:1.92rem}.rtl-container.blue.medium.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.blue.medium.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.blue.medium.large .sidenav-img svg,.rtl-container.blue.medium.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.blue.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.blue.medium.large .material-icons{font-size:4rem}.rtl-container.blue.medium.large .mat-expansion-panel-header,.rtl-container.blue.medium.large .mat-list .mat-list-item,.rtl-container.blue.medium.large .mat-menu-item,.rtl-container.blue.medium.large .mat-nav-list .mat-list-item,.rtl-container.blue.medium.large .mat-option,.rtl-container.blue.medium.large .mat-select,.rtl-container.blue.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.blue.medium.large .logo{font-size:3.2rem}.rtl-container.blue.medium.large .font-60-percent{font-size:.96rem}.rtl-container.blue.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.blue.medium.large .icon-large{font-size:8rem}.rtl-container.blue.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.blue.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.blue.medium.large .size-triple{font-size:4.8rem}.rtl-container.blue.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.blue.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.blue.medium .mat-flat-button.mat-primary:focus,.rtl-container.blue.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.blue.large.small .mat-header-cell{font-weight:700}.rtl-container.blue.large.small .mr-4{margin-right:1rem!important}.rtl-container.blue.large.small .mat-menu-item,.rtl-container.blue.large.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.blue.large.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.blue.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.blue.large.small .fa-icon-small,.rtl-container.blue.large.small .genseed-message,.rtl-container.blue.large.small .top-icon-small,.rtl-container.blue.large.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.blue.large.small .page-sub-title-container,.rtl-container.blue.large.small .page-title-container{font-size:1.32rem}.rtl-container.blue.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.blue.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.blue.large.small .sidenav-img svg,.rtl-container.blue.large.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.blue.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.blue.large.small .material-icons,.rtl-container.blue.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.blue.large.small .mat-expansion-panel-header,.rtl-container.blue.large.small .mat-list .mat-list-item,.rtl-container.blue.large.small .mat-menu-item,.rtl-container.blue.large.small .mat-nav-list .mat-list-item,.rtl-container.blue.large.small .mat-option,.rtl-container.blue.large.small .mat-select,.rtl-container.blue.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.blue.large.small .logo{font-size:2.4rem}.rtl-container.blue.large.small .font-60-percent{font-size:.72rem}.rtl-container.blue.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.blue.large.small .icon-large{font-size:6rem}.rtl-container.blue.large.small .icon-small{font-size:1.8rem!important}.rtl-container.blue.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.blue.large.small .size-triple{font-size:3.6rem}.rtl-container.blue.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.blue.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.large.medium .mat-header-cell{font-weight:700}.rtl-container.blue.large.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.blue.large.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.blue.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.blue.large.medium .genseed-message,.rtl-container.blue.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.blue.large.medium .page-sub-title-container,.rtl-container.blue.large.medium .page-title-container{font-size:1.54rem}.rtl-container.blue.large.medium .fa-icon-small,.rtl-container.blue.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.blue.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.blue.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.blue.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.blue.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.blue.large.medium .sidenav-img svg,.rtl-container.blue.large.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.blue.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.blue.large.medium .material-icons{font-size:2.8rem}.rtl-container.blue.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.blue.large.medium .mat-expansion-panel-header,.rtl-container.blue.large.medium .mat-list .mat-list-item,.rtl-container.blue.large.medium .mat-menu-item,.rtl-container.blue.large.medium .mat-nav-list .mat-list-item,.rtl-container.blue.large.medium .mat-option,.rtl-container.blue.large.medium .mat-select,.rtl-container.blue.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.blue.large.medium .logo{font-size:2.8rem}.rtl-container.blue.large.medium .font-60-percent{font-size:.84rem}.rtl-container.blue.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.blue.large.medium .icon-large{font-size:7rem}.rtl-container.blue.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.blue.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.blue.large.medium .size-triple{font-size:4.2rem}.rtl-container.blue.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.blue.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.large.large .mat-header-cell{font-weight:800}.rtl-container.blue.large.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.blue.large.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.blue.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.blue.large.large .genseed-message,.rtl-container.blue.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.blue.large.large .page-sub-title-container,.rtl-container.blue.large.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.blue.large.large .fa-icon-small,.rtl-container.blue.large.large .modal-info-header,.rtl-container.blue.large.large .top-icon-small{font-size:1.92rem}.rtl-container.blue.large.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.blue.large.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.blue.large.large .sidenav-img svg,.rtl-container.blue.large.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.blue.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.blue.large.large .material-icons{font-size:4rem}.rtl-container.blue.large.large .mat-expansion-panel-header,.rtl-container.blue.large.large .mat-list .mat-list-item,.rtl-container.blue.large.large .mat-menu-item,.rtl-container.blue.large.large .mat-nav-list .mat-list-item,.rtl-container.blue.large.large .mat-option,.rtl-container.blue.large.large .mat-select,.rtl-container.blue.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.blue.large.large .logo{font-size:3.2rem}.rtl-container.blue.large.large .font-60-percent{font-size:.96rem}.rtl-container.blue.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.blue.large.large .icon-large{font-size:8rem}.rtl-container.blue.large.large .icon-small{font-size:2.4rem!important}.rtl-container.blue.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.blue.large.large .size-triple{font-size:4.8rem}.rtl-container.blue.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.blue.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.large .mat-icon.material-icons:focus{outline:none}.rtl-container.blue.large .mat-flat-button.mat-primary:focus,.rtl-container.blue.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.blue.day .mat-ripple-element{background-color:#0000001a}.rtl-container.blue.day .mat-option{color:#000000de}.rtl-container.blue.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.day .mat-option:focus:not(.mat-option-disabled),.rtl-container.blue.day .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.blue.day .mat-option.mat-active{background:#0000000a;color:#000000de}.rtl-container.blue.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.blue.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#1976d2}.rtl-container.blue.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.blue.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.blue.day .mat-optgroup-label{color:#0000008a}.rtl-container.blue.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.blue.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.blue.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.blue.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.blue.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.blue.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#1976d2}.rtl-container.blue.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.blue.day .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.blue.day .mat-pseudo-checkbox-checked,.rtl-container.blue.day .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.blue.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.blue.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.blue.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.blue.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.blue.day.mat-app-background,.rtl-container.blue.day .mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.blue.day .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.blue.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.blue.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.blue.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.blue.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.blue.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.blue.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.blue.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.blue.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.blue.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.blue.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.blue.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.blue.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.blue.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.blue.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.blue.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.blue.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.blue.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.blue.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.blue.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.blue.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.blue.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.blue.day .mat-autocomplete-panel{background:#fff;color:#000000de}.rtl-container.blue.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.rtl-container.blue.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.blue.day .mat-badge-content{color:#fff;background:#1976d2}.cdk-high-contrast-active .rtl-container.blue.day .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.blue.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.blue.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.blue.day .mat-badge{position:relative}.rtl-container.blue.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.blue.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.blue.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.blue.day .mat-badge-content._mat-animation-noopable,.rtl-container.blue.day .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.blue.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.blue.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.blue.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.blue.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.blue.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.blue.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.blue.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.blue.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.blue.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.blue.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.blue.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.blue.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.blue.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.blue.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.blue.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.blue.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.blue.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.blue.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.blue.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.blue.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.blue.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.blue.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.blue.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.blue.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.blue.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.blue.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.blue.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.blue.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.blue.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.blue.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.blue.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.blue.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.blue.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.blue.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.blue.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.rtl-container.blue.day .mat-button,.rtl-container.blue.day .mat-icon-button,.rtl-container.blue.day .mat-stroked-button{color:inherit;background:#0000}.rtl-container.blue.day .mat-button.mat-primary,.rtl-container.blue.day .mat-icon-button.mat-primary,.rtl-container.blue.day .mat-stroked-button.mat-primary{color:#1976d2}.rtl-container.blue.day .mat-button.mat-accent,.rtl-container.blue.day .mat-icon-button.mat-accent,.rtl-container.blue.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.blue.day .mat-button.mat-warn,.rtl-container.blue.day .mat-icon-button.mat-warn,.rtl-container.blue.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.blue.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-stroked-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.blue.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.blue.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.blue.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#1976d2}.rtl-container.blue.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.blue.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.blue.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.blue.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.blue.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.blue.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.blue.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.blue.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.blue.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.blue.day .mat-button .mat-ripple-element,.rtl-container.blue.day .mat-icon-button .mat-ripple-element,.rtl-container.blue.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.blue.day .mat-button-focus-overlay{background:#000}.rtl-container.blue.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.blue.day .mat-fab,.rtl-container.blue.day .mat-flat-button,.rtl-container.blue.day .mat-mini-fab,.rtl-container.blue.day .mat-raised-button{color:#000000de;background-color:#fff}.rtl-container.blue.day .mat-fab.mat-accent,.rtl-container.blue.day .mat-fab.mat-primary,.rtl-container.blue.day .mat-fab.mat-warn,.rtl-container.blue.day .mat-flat-button.mat-accent,.rtl-container.blue.day .mat-flat-button.mat-primary,.rtl-container.blue.day .mat-flat-button.mat-warn,.rtl-container.blue.day .mat-mini-fab.mat-accent,.rtl-container.blue.day .mat-mini-fab.mat-primary,.rtl-container.blue.day .mat-mini-fab.mat-warn,.rtl-container.blue.day .mat-raised-button.mat-accent,.rtl-container.blue.day .mat-raised-button.mat-primary,.rtl-container.blue.day .mat-raised-button.mat-warn{color:#fff}.rtl-container.blue.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.blue.day .mat-fab.mat-primary,.rtl-container.blue.day .mat-flat-button.mat-primary,.rtl-container.blue.day .mat-mini-fab.mat-primary,.rtl-container.blue.day .mat-raised-button.mat-primary{background-color:#1976d2}.rtl-container.blue.day .mat-fab.mat-accent,.rtl-container.blue.day .mat-flat-button.mat-accent,.rtl-container.blue.day .mat-mini-fab.mat-accent,.rtl-container.blue.day .mat-raised-button.mat-accent{background-color:#424242}.rtl-container.blue.day .mat-fab.mat-warn,.rtl-container.blue.day .mat-flat-button.mat-warn,.rtl-container.blue.day .mat-mini-fab.mat-warn,.rtl-container.blue.day .mat-raised-button.mat-warn{background-color:#b00020}.rtl-container.blue.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-warn.mat-button-disabled{background-color:#0000001f}.rtl-container.blue.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.blue.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.blue.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.blue.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.day .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.blue.day .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.blue.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.blue.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.blue.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.blue.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.blue.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.blue.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.day .mat-button-toggle-group,.rtl-container.blue.day .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.day .mat-button-toggle-group-appearance-standard,.rtl-container.blue.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.blue.day .mat-button-toggle{color:#00000061}.rtl-container.blue.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.blue.day .mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.rtl-container.blue.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.blue.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #0000001f}.rtl-container.blue.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #0000001f}.rtl-container.blue.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #0000001f}.rtl-container.blue.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.blue.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.blue.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.blue.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.rtl-container.blue.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.blue.day .mat-button-toggle-group-appearance-standard,.rtl-container.blue.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #0000001f}.rtl-container.blue.day .mat-card{background:#fff;color:#000000de}.rtl-container.blue.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.blue.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.day .mat-card-subtitle{color:#0000008a}.rtl-container.blue.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.blue.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.blue.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.blue.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.blue.day .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.blue.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#1976d2}.rtl-container.blue.day .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.blue.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.blue.day .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.blue.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.blue.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.blue.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.blue.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.blue.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.blue.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.blue.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#1976d2}.rtl-container.blue.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.blue.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.blue.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.blue.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.blue.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.blue.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip:after{background:#000}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#1976d2;color:#fff}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.day .mat-table{background:#fff}.rtl-container.blue.day .mat-table-sticky,.rtl-container.blue.day .mat-table tbody,.rtl-container.blue.day .mat-table tfoot,.rtl-container.blue.day .mat-table thead,.rtl-container.blue.day [mat-footer-row],.rtl-container.blue.day [mat-header-row],.rtl-container.blue.day [mat-row],.rtl-container.blue.day mat-footer-row,.rtl-container.blue.day mat-header-row,.rtl-container.blue.day mat-row{background:inherit}.rtl-container.blue.day mat-footer-row,.rtl-container.blue.day mat-header-row,.rtl-container.blue.day mat-row,.rtl-container.blue.day td.mat-cell,.rtl-container.blue.day td.mat-footer-cell,.rtl-container.blue.day th.mat-header-cell{border-bottom-color:#0000001f}.rtl-container.blue.day .mat-header-cell{color:#0000008a}.rtl-container.blue.day .mat-cell,.rtl-container.blue.day .mat-footer-cell{color:#000000de}.rtl-container.blue.day .mat-calendar-arrow{border-top-color:#0000008a}.rtl-container.blue.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.blue.day .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.blue.day .mat-datepicker-toggle{color:#0000008a}.rtl-container.blue.day .mat-calendar-table-header{color:#00000061}.rtl-container.blue.day .mat-calendar-table-header-divider:after{background:#0000001f}.rtl-container.blue.day .mat-calendar-body-label{color:#0000008a}.rtl-container.blue.day .mat-calendar-body-cell-content,.rtl-container.blue.day .mat-date-range-input-separator{color:#000000de;border-color:#0000}.rtl-container.blue.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.blue.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.blue.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.blue.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.blue.day .mat-calendar-body-in-range:before{background:#1976d233}.rtl-container.blue.day .mat-calendar-body-comparison-identical,.rtl-container.blue.day .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.blue.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#1976d233 50%,#f9ab0033 0)}.rtl-container.blue.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#1976d233 50%,#f9ab0033 0)}.rtl-container.blue.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.blue.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.blue.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.day .mat-calendar-body-selected{background-color:#1976d2;color:#fff}.rtl-container.blue.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#1976d266}.rtl-container.blue.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1976d24d}.rtl-container.blue.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#fff;color:#000000de}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#42424233}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#42424233 50%,#f9ab0033 0)}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#42424233 50%,#f9ab0033 0)}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#b0002033}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}.rtl-container.blue.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.blue.day .mat-datepicker-toggle-active{color:#1976d2}.rtl-container.blue.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.blue.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.blue.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.blue.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.rtl-container.blue.day .mat-divider{border-top-color:#0000001f}.rtl-container.blue.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.blue.day .mat-expansion-panel{background:#fff;color:#000000de}.rtl-container.blue.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.day .mat-action-row{border-top-color:#0000001f}.rtl-container.blue.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.blue.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.blue.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.blue.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.rtl-container.blue.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.blue.day .mat-expansion-indicator:after,.rtl-container.blue.day .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.blue.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.blue.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.blue.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.blue.day .mat-form-field-label,.rtl-container.blue.day .mat-hint{color:#0009}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-label{color:#1976d2}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.blue.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.blue.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#1976d2}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#1976d2}.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.blue.day .mat-error{color:#b00020}.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.blue.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.blue.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.blue.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.blue.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.blue.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.blue.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.blue.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.blue.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.blue.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.blue.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#1976d2}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.blue.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.blue.day .mat-icon.mat-primary{color:#1976d2}.rtl-container.blue.day .mat-icon.mat-accent{color:#424242}.rtl-container.blue.day .mat-icon.mat-warn{color:#b00020}.rtl-container.blue.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after,.rtl-container.blue.day .mat-input-element:disabled{color:#00000061}.rtl-container.blue.day .mat-input-element{caret-color:#1976d2}.rtl-container.blue.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.blue.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.blue.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.blue.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.blue.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.blue.day .mat-form-field-invalid .mat-input-element,.rtl-container.blue.day .mat-form-field.mat-warn .mat-input-element{caret-color:#b00020}.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.blue.day .mat-list-base .mat-list-item,.rtl-container.blue.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.blue.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.blue.day .mat-list-item-disabled{background-color:#eee}.rtl-container.blue.day .mat-action-list .mat-list-item:focus,.rtl-container.blue.day .mat-action-list .mat-list-item:hover,.rtl-container.blue.day .mat-list-option:focus,.rtl-container.blue.day .mat-list-option:hover,.rtl-container.blue.day .mat-nav-list .mat-list-item:focus,.rtl-container.blue.day .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.blue.day .mat-list-single-selected-option,.rtl-container.blue.day .mat-list-single-selected-option:focus,.rtl-container.blue.day .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.blue.day .mat-menu-panel{background:#fff}.rtl-container.blue.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.day .mat-menu-item{background:#0000;color:#000000de}.rtl-container.blue.day .mat-menu-item[disabled],.rtl-container.blue.day .mat-menu-item[disabled] .mat-icon-no-color,.rtl-container.blue.day .mat-menu-item[disabled]:after{color:#00000061}.rtl-container.blue.day .mat-menu-item-submenu-trigger:after,.rtl-container.blue.day .mat-menu-item .mat-icon-no-color{color:#0000008a}.rtl-container.blue.day .mat-menu-item-highlighted:not([disabled]),.rtl-container.blue.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.blue.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.blue.day .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.blue.day .mat-paginator{background:#fff}.rtl-container.blue.day .mat-paginator,.rtl-container.blue.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.blue.day .mat-paginator-decrement,.rtl-container.blue.day .mat-paginator-increment{border-top:2px solid #0000008a;border-right:2px solid #0000008a}.rtl-container.blue.day .mat-paginator-first,.rtl-container.blue.day .mat-paginator-last{border-top:2px solid #0000008a}.rtl-container.blue.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.blue.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.blue.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.blue.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.blue.day .mat-progress-bar-background{fill:#c2d9f0}.rtl-container.blue.day .mat-progress-bar-buffer{background-color:#c2d9f0}.rtl-container.blue.day .mat-progress-bar-fill:after{background-color:#1976d2}.rtl-container.blue.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.blue.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.blue.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.blue.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.blue.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.blue.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.blue.day .mat-progress-spinner circle,.rtl-container.blue.day .mat-spinner circle{stroke:#1976d2}.rtl-container.blue.day .mat-progress-spinner.mat-accent circle,.rtl-container.blue.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.blue.day .mat-progress-spinner.mat-warn circle,.rtl-container.blue.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.blue.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.blue.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#1976d2}.rtl-container.blue.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.blue.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#1976d2}.rtl-container.blue.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.blue.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.blue.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.blue.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.blue.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.blue.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.blue.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.blue.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.blue.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.rtl-container.blue.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:#00000061}.rtl-container.blue.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.blue.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.blue.day .mat-select-value{color:#000000de}.rtl-container.blue.day .mat-select-placeholder{color:#0000006b}.rtl-container.blue.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.blue.day .mat-select-arrow{color:#0000008a}.rtl-container.blue.day .mat-select-panel{background:#fff}.rtl-container.blue.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.blue.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#1976d2}.rtl-container.blue.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.blue.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.blue.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.blue.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.blue.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.blue.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.blue.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.blue.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.blue.day .mat-drawer-side{border-right:1px solid #0000001f}.rtl-container.blue.day .mat-drawer-side.mat-drawer-end,.rtl-container.blue.day [dir=rtl] .mat-drawer-side{border-left:1px solid #0000001f;border-right:none}.rtl-container.blue.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #0000001f}.rtl-container.blue.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.blue.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.blue.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.blue.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.blue.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#1976d2}.rtl-container.blue.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#1976d28a}.rtl-container.blue.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#1976d2}.rtl-container.blue.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.blue.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.blue.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.blue.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.blue.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#fafafa}.rtl-container.blue.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.blue.day .mat-slider-track-background{background-color:#00000042}.rtl-container.blue.day .mat-primary .mat-slider-thumb,.rtl-container.blue.day .mat-primary .mat-slider-thumb-label,.rtl-container.blue.day .mat-primary .mat-slider-track-fill{background-color:#1976d2}.rtl-container.blue.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.day .mat-primary .mat-slider-focus-ring{background-color:#1976d233}.rtl-container.blue.day .mat-accent .mat-slider-thumb,.rtl-container.blue.day .mat-accent .mat-slider-thumb-label,.rtl-container.blue.day .mat-accent .mat-slider-track-fill{background-color:#424242}.rtl-container.blue.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.blue.day .mat-warn .mat-slider-thumb,.rtl-container.blue.day .mat-warn .mat-slider-thumb-label,.rtl-container.blue.day .mat-warn .mat-slider-track-fill{background-color:#b00020}.rtl-container.blue.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.blue.day .cdk-focused .mat-slider-track-background,.rtl-container.blue.day .mat-slider:hover .mat-slider-track-background{background-color:#00000061}.rtl-container.blue.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.blue.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.blue.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.blue.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.blue.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.blue.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.blue.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.blue.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.blue.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:initial}.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#00000061}.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.blue.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.blue.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#000000b3,#000000b3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.blue.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.blue.day .mat-step-header.cdk-keyboard-focused,.rtl-container.blue.day .mat-step-header.cdk-program-focused,.rtl-container.blue.day .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.blue.day .mat-step-header:hover{background:none}}.rtl-container.blue.day .mat-step-header .mat-step-label,.rtl-container.blue.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.blue.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.blue.day .mat-step-header .mat-step-icon-selected,.rtl-container.blue.day .mat-step-header .mat-step-icon-state-done,.rtl-container.blue.day .mat-step-header .mat-step-icon-state-edit{background-color:#1976d2;color:#fff}.rtl-container.blue.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.blue.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.blue.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.blue.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.blue.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.blue.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.blue.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.blue.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.blue.day .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#b00020}.rtl-container.blue.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.blue.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.blue.day .mat-stepper-horizontal,.rtl-container.blue.day .mat-stepper-vertical{background-color:#fff}.rtl-container.blue.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.blue.day .mat-horizontal-stepper-header:after,.rtl-container.blue.day .mat-horizontal-stepper-header:before,.rtl-container.blue.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.blue.day .mat-sort-header-arrow{color:#757575}.rtl-container.blue.day .mat-tab-header,.rtl-container.blue.day .mat-tab-nav-bar{border-bottom:1px solid #0000001f}.rtl-container.blue.day .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.blue.day .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #0000001f;border-bottom:none}.rtl-container.blue.day .mat-tab-label,.rtl-container.blue.day .mat-tab-link{color:#000000de}.rtl-container.blue.day .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.blue.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.blue.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.blue.day .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.blue.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.blue.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#90caf94d}.rtl-container.blue.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#1976d2}.rtl-container.blue.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.blue.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.blue.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.blue.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.blue.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#90caf94d}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#1976d2}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.blue.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#424242}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.blue.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#b00020}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.blue.day .mat-toolbar{background:#f5f5f5;color:#000000de}.rtl-container.blue.day .mat-toolbar.mat-primary{background:#1976d2;color:#fff}.rtl-container.blue.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.blue.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.blue.day .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.blue.day .mat-toolbar .mat-form-field-ripple,.rtl-container.blue.day .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.blue.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.blue.day .mat-toolbar .mat-form-field-label,.rtl-container.blue.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.blue.day .mat-toolbar .mat-select-arrow,.rtl-container.blue.day .mat-toolbar .mat-select-value{color:inherit}.rtl-container.blue.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.blue.day .mat-tooltip{background:#616161e6}.rtl-container.blue.day .mat-tree{background:#fff}.rtl-container.blue.day .mat-nested-tree-node,.rtl-container.blue.day .mat-tree-node{color:#000000de}.rtl-container.blue.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.blue.day .mat-simple-snackbar-action{color:#424242}.rtl-container.blue.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.blue.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.blue.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.blue.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.blue.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.blue.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.blue.day .rtl-top-toolbar{border-bottom:1px solid #fff}.rtl-container.blue.day .bg-primary{background-color:#1976d2;color:#fff}.rtl-container.blue.day .rtl-snack-bar{color:#1976d2}.rtl-container.blue.day .rtl-snack-bar,.rtl-container.blue.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important}.rtl-container.blue.day .rtl-warn-snack-bar{color:#b00020}.rtl-container.blue.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.blue.day .mat-tab-label.mat-tab-label-active{color:#1976d2}.rtl-container.blue.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#1976d2}.rtl-container.blue.day .mat-tab-label .tab-badge .mat-badge-content{background:#0000008a}.rtl-container.blue.day .mat-form-field-suffix,.rtl-container.blue.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.blue.day .ng-fa-icon{color:#0000008a}.rtl-container.blue.day .mat-stroked-button.mat-primary{border-color:#1976d2}.rtl-container.blue.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.blue.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.blue.day .selected-color{border-color:#90caf9}.rtl-container.blue.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.blue.day .page-sub-title-container,.rtl-container.blue.day .page-title-container{color:#0000008a}.rtl-container.blue.day .page-sub-title-container .page-title-img,.rtl-container.blue.day .page-title-container .page-title-img{color:#00000061}.rtl-container.blue.day .page-sub-title-container .mat-input-element,.rtl-container.blue.day .page-sub-title-container .mat-radio-label-content,.rtl-container.blue.day .page-sub-title-container .theme-name,.rtl-container.blue.day .page-title-container .mat-input-element,.rtl-container.blue.day .page-title-container .mat-radio-label-content,.rtl-container.blue.day .page-title-container .theme-name{color:#000000de}.rtl-container.blue.day .cc-data-block .cc-data-title{color:#1976d2}.rtl-container.blue.day .active-link,.rtl-container.blue.day .active-link .fa-icon-small{color:#1976d2;font-weight:500;cursor:pointer;fill:#1976d2}.rtl-container.blue.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.blue.day .mat-nested-tree-node-parent:hover,.rtl-container.blue.day .mat-select-panel .mat-option:hover,.rtl-container.blue.day .mat-tree-node:hover{color:#1976d2;cursor:pointer;background:#0000000a}.rtl-container.blue.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.blue.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.blue.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.blue.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.blue.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.blue.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.blue.day .mat-tree-node:hover .mat-icon,.rtl-container.blue.day .mat-tree-node:hover .ng-fa-icon{color:#1976d2}.rtl-container.blue.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.blue.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.blue.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.blue.day .mat-tree-node:hover .sidenav-img svg{fill:#1976d2}.rtl-container.blue.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.blue.day .mat-nested-tree-node .sidenav-img,.rtl-container.blue.day .mat-tree-node .sidenav-img,.rtl-container.blue.day .page-title-container .page-title-img,.rtl-container.blue.day svg.top-icon-small{fill:#000000de}.rtl-container.blue.day .mat-progress-bar-fill:after{background-color:#0d47a1}.rtl-container.blue.day .modal-qr-code-container{background:#0000001f}.rtl-container.blue.day .mat-tab-label,.rtl-container.blue.day .mat-tab-link{color:#0000008a}.rtl-container.blue.day .mat-card,.rtl-container.blue.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid #0000001f}.rtl-container.blue.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.blue.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.blue.day .dashboard-info-title{color:#1976d2}.rtl-container.blue.day .dashboard-info-value{color:#0000008a}.rtl-container.blue.day .color-primary{color:#1976d2!important}.rtl-container.blue.day .dot-primary{background-color:#1976d2!important}.rtl-container.blue.day .dot-primary-lighter{background-color:#90caf9!important}.rtl-container.blue.day .mat-expansion-panel.flat-expansion-panel{border:1px solid #0000001f}.rtl-container.blue.day .mat-tooltip{font-size:120%}.rtl-container.blue.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.blue.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.blue.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.blue.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.blue.day svg .fill-color-1{fill:#fff}.rtl-container.blue.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.blue.day svg .fill-color-3,.rtl-container.blue.day svg .fill-color-4,.rtl-container.blue.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.blue.day svg .fill-color-6{fill:#fff}.rtl-container.blue.day svg .fill-color-7,.rtl-container.blue.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.blue.day svg .fill-color-9{fill:#fff}.rtl-container.blue.day svg .fill-color-10,.rtl-container.blue.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.blue.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.blue.day svg .fill-color-13,.rtl-container.blue.day svg .fill-color-14,.rtl-container.blue.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.blue.day svg .fill-color-16,.rtl-container.blue.day svg .fill-color-17{fill:#404040}.rtl-container.blue.day svg .fill-color-18{fill:#000}.rtl-container.blue.day svg .fill-color-19,.rtl-container.blue.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.blue.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.blue.day svg .fill-color-22,.rtl-container.blue.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.blue.day svg .fill-color-24{fill:#000}.rtl-container.blue.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.blue.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.blue.day svg .fill-color-27{fill:#000}.rtl-container.blue.day svg .fill-color-28{fill:#313131}.rtl-container.blue.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.blue.day svg .fill-color-30{fill:#fff}.rtl-container.blue.day svg .fill-color-31{fill:#1976d2}.rtl-container.blue.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.blue.day svg .fill-color-primary{fill:#1976d2}.rtl-container.blue.day svg .fill-color-primary-lighter{fill:#90caf9}.rtl-container.blue.day svg .fill-color-primary-darker{fill:#1976d2}.rtl-container.blue.day .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.blue.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.blue.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.blue.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.blue.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.blue.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.blue.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#1976d2}.rtl-container.blue.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.blue.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#0d47a1}.rtl-container.blue.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.blue.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#90caf9}.rtl-container.blue.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.blue.day .mat-progress-bar-buffer{background-color:#bbdefb}.rtl-container.blue.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.blue.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.blue.day .foreground.mat-progress-spinner circle,.rtl-container.blue.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.blue.day .mat-toolbar-row,.rtl-container.blue.day .mat-toolbar-single-row{height:5rem}.rtl-container.blue.day .lnd-info{border-bottom:1px solid #0000001f}.rtl-container.blue.day a{color:#1976d2}.rtl-container.blue.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.blue.day .h-active-link{border-bottom:2px solid #fff}.rtl-container.blue.day .mat-icon-36{color:#0000008a}.rtl-container.blue.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.blue.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.blue.day .genseed-message{width:10%;color:#1976d2}.rtl-container.blue.day .material-icons.primary{color:#1976d2}.rtl-container.blue.day .material-icons.accent{color:#424242}.rtl-container.blue.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.blue.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.blue.day .row-disabled{background-color:gray}.rtl-container.blue.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.blue.day .mat-menu-panel{min-width:6.4rem}.rtl-container.blue.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.blue.day .horizontal-button:hover{background:#90caf9;color:#424242}.rtl-container.blue.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#1976d2}.rtl-container.blue.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.blue.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.blue.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.blue.day .mat-cell,.rtl-container.blue.day .mat-footer-cell,.rtl-container.blue.day .mat-header-cell{border-bottom:1px solid #0000001f}.rtl-container.blue.day table.mat-table{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.blue.day table.mat-table thead tr th{color:#000}.rtl-container.blue.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.blue.day .bordered-box{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.blue.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.blue.day .mat-expansion-panel{border:1px solid #0000001f}.rtl-container.blue.day .more-button{color:#00000061}.rtl-container.blue.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.blue.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.blue.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.blue.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.blue.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.blue.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.blue.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.blue.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.blue.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.blue.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.blue.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.blue.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.blue.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.blue.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.blue.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.blue.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.blue.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.blue.day .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#90caf9!important}.rtl-container.blue.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#1e88e5!important}.rtl-container.blue.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.blue.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.blue.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.blue.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.blue.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid #0000008a}.rtl-container.blue.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.blue.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.blue.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.blue.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.blue.day .color-warn{color:#b00020}.rtl-container.blue.day .fill-warn{fill:#b00020}.rtl-container.blue.day .alert{border:1px solid #0000008a;color:#0000008a;background-color:#0000000a}.rtl-container.blue.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.blue.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.blue.day .alert.alert-info a{color:#004085}.rtl-container.blue.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.blue.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.blue.day .alert.alert-warn a{color:#856404}.rtl-container.blue.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.blue.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.blue.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.blue.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.blue.day .help-expansion .mat-expansion-panel-header,.rtl-container.blue.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.blue.day .help-expansion .mat-expansion-indicator:after,.rtl-container.blue.day .help-expansion .mat-expansion-panel-content,.rtl-container.blue.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.blue.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.blue.day .failed-status{color:#b00020}.rtl-container.blue.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.blue.day .svg-fill-primary{fill:#1976d2}.rtl-container.blue.day .svg-fill-primary-lighter{fill:#90caf9}.rtl-container.blue.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.blue.day ngx-charts-bar-vertical-2d text,.rtl-container.blue.day ngx-charts-bar-vertical text{fill:#000000de}.rtl-container.blue.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.blue.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.blue.day .mat-paginator-container{padding:0}.rtl-container.blue.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-option{color:#fff}.rtl-container.blue.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.night .mat-option:focus:not(.mat-option-disabled),.rtl-container.blue.night .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.blue.night .mat-option.mat-active{background:#0000000a;color:#fff}.rtl-container.blue.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#1976d2}.rtl-container.blue.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.blue.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.blue.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.blue.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.blue.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.blue.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#1976d2}.rtl-container.blue.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.blue.night .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.blue.night .mat-pseudo-checkbox-checked,.rtl-container.blue.night .mat-pseudo-checkbox-indeterminate{background:#eee}.rtl-container.blue.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.blue.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.blue.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.blue.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.blue.night.mat-app-background,.rtl-container.blue.night .mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.blue.night .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.blue.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.blue.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.blue.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.blue.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.blue.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.blue.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.blue.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.blue.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.blue.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.blue.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.blue.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.blue.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.blue.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.blue.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.blue.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.blue.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.blue.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.blue.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.blue.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.blue.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.blue.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.blue.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.blue.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.blue.night .mat-badge-content{color:#fff;background:#1976d2}.cdk-high-contrast-active .rtl-container.blue.night .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.blue.night .mat-badge-accent .mat-badge-content{background:#eee;color:#000}.rtl-container.blue.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.blue.night .mat-badge{position:relative}.rtl-container.blue.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.blue.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.blue.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.blue.night .mat-badge-content._mat-animation-noopable,.rtl-container.blue.night .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.blue.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.blue.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.blue.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.blue.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.blue.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.blue.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.blue.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.blue.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.blue.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.blue.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.blue.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.blue.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.blue.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.blue.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.blue.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.blue.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.blue.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.blue.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.blue.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.blue.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.blue.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.blue.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.blue.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.blue.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.blue.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.blue.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.blue.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.blue.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.blue.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.blue.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.blue.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.blue.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.blue.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.blue.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.blue.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.blue.night .mat-button,.rtl-container.blue.night .mat-icon-button,.rtl-container.blue.night .mat-stroked-button{color:inherit;background:#0000}.rtl-container.blue.night .mat-button.mat-primary,.rtl-container.blue.night .mat-icon-button.mat-primary,.rtl-container.blue.night .mat-stroked-button.mat-primary{color:#1976d2}.rtl-container.blue.night .mat-button.mat-accent,.rtl-container.blue.night .mat-icon-button.mat-accent,.rtl-container.blue.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.blue.night .mat-button.mat-warn,.rtl-container.blue.night .mat-icon-button.mat-warn,.rtl-container.blue.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.blue.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-stroked-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.blue.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.blue.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.blue.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#1976d2}.rtl-container.blue.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.blue.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.blue.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.blue.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.blue.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.blue.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.blue.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.blue.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.blue.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.blue.night .mat-button .mat-ripple-element,.rtl-container.blue.night .mat-icon-button .mat-ripple-element,.rtl-container.blue.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.blue.night .mat-button-focus-overlay{background:#fff}.rtl-container.blue.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.blue.night .mat-fab,.rtl-container.blue.night .mat-flat-button,.rtl-container.blue.night .mat-mini-fab,.rtl-container.blue.night .mat-raised-button{color:#fff;background-color:#363636}.rtl-container.blue.night .mat-fab.mat-primary,.rtl-container.blue.night .mat-flat-button.mat-primary,.rtl-container.blue.night .mat-mini-fab.mat-primary,.rtl-container.blue.night .mat-raised-button.mat-primary{color:#fff}.rtl-container.blue.night .mat-fab.mat-accent,.rtl-container.blue.night .mat-flat-button.mat-accent,.rtl-container.blue.night .mat-mini-fab.mat-accent,.rtl-container.blue.night .mat-raised-button.mat-accent{color:#000}.rtl-container.blue.night .mat-fab.mat-warn,.rtl-container.blue.night .mat-flat-button.mat-warn,.rtl-container.blue.night .mat-mini-fab.mat-warn,.rtl-container.blue.night .mat-raised-button.mat-warn{color:#fff}.rtl-container.blue.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.blue.night .mat-fab.mat-primary,.rtl-container.blue.night .mat-flat-button.mat-primary,.rtl-container.blue.night .mat-mini-fab.mat-primary,.rtl-container.blue.night .mat-raised-button.mat-primary{background-color:#1976d2}.rtl-container.blue.night .mat-fab.mat-accent,.rtl-container.blue.night .mat-flat-button.mat-accent,.rtl-container.blue.night .mat-mini-fab.mat-accent,.rtl-container.blue.night .mat-raised-button.mat-accent{background-color:#eee}.rtl-container.blue.night .mat-fab.mat-warn,.rtl-container.blue.night .mat-flat-button.mat-warn,.rtl-container.blue.night .mat-mini-fab.mat-warn,.rtl-container.blue.night .mat-raised-button.mat-warn{background-color:#ff343b}.rtl-container.blue.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-warn.mat-button-disabled{background-color:#404040}.rtl-container.blue.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.blue.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.blue.night .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.blue.night .mat-raised-button.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.blue.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.blue.night .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.blue.night .mat-raised-button.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.blue.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.blue.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.blue.night .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.blue.night .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.blue.night .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.blue.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.blue.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.blue.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.blue.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.blue.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.blue.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.night .mat-button-toggle-group,.rtl-container.blue.night .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.night .mat-button-toggle-group-appearance-standard,.rtl-container.blue.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.blue.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.blue.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #ffffff4d}.rtl-container.blue.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.blue.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #ffffff4d}.rtl-container.blue.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.blue.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.blue.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.blue.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.blue.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.blue.night .mat-button-toggle-group-appearance-standard,.rtl-container.blue.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #ffffff4d}.rtl-container.blue.night .mat-card{background:#202020;color:#fff}.rtl-container.blue.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.blue.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.blue.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.blue.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.blue.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.blue.night .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.blue.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#1976d2}.rtl-container.blue.night .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.blue.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.blue.night .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.blue.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.blue.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.blue.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.blue.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.blue.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.blue.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.blue.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#1976d2}.rtl-container.blue.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.blue.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eee}.rtl-container.blue.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.blue.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.blue.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.blue.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.blue.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip:after{background:#fff}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#1976d2;color:#fff}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.blue.night .mat-table{background:#202020}.rtl-container.blue.night .mat-table-sticky,.rtl-container.blue.night .mat-table tbody,.rtl-container.blue.night .mat-table tfoot,.rtl-container.blue.night .mat-table thead,.rtl-container.blue.night [mat-footer-row],.rtl-container.blue.night [mat-header-row],.rtl-container.blue.night [mat-row],.rtl-container.blue.night mat-footer-row,.rtl-container.blue.night mat-header-row,.rtl-container.blue.night mat-row{background:inherit}.rtl-container.blue.night mat-footer-row,.rtl-container.blue.night mat-header-row,.rtl-container.blue.night mat-row,.rtl-container.blue.night td.mat-cell,.rtl-container.blue.night td.mat-footer-cell,.rtl-container.blue.night th.mat-header-cell{border-bottom-color:#ffffff4d}.rtl-container.blue.night .mat-cell,.rtl-container.blue.night .mat-footer-cell{color:#fff}.rtl-container.blue.night .mat-calendar-arrow{border-top-color:#fff}.rtl-container.blue.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.blue.night .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.blue.night .mat-datepicker-toggle{color:#fff}.rtl-container.blue.night .mat-calendar-table-header-divider:after{background:#ffffff4d}.rtl-container.blue.night .mat-calendar-body-cell-content,.rtl-container.blue.night .mat-date-range-input-separator{color:#fff;border-color:#0000}.rtl-container.blue.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.blue.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.blue.night .mat-calendar-body-in-range:before{background:#1976d233}.rtl-container.blue.night .mat-calendar-body-comparison-identical,.rtl-container.blue.night .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.blue.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#1976d233 50%,#f9ab0033 0)}.rtl-container.blue.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#1976d233 50%,#f9ab0033 0)}.rtl-container.blue.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.blue.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.blue.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.night .mat-calendar-body-selected{background-color:#1976d2;color:#fff}.rtl-container.blue.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#1976d266}.rtl-container.blue.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1976d24d}.rtl-container.blue.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#202020;color:#fff}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#eee3}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#eee3 50%,#f9ab0033 0)}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#eee3 50%,#f9ab0033 0)}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.blue.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#ff343b33}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}.rtl-container.blue.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.blue.night .mat-datepicker-toggle-active{color:#1976d2}.rtl-container.blue.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.blue.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.blue.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.blue.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.blue.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.blue.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.blue.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.blue.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.blue.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.blue.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.blue.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.blue.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.blue.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.blue.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.blue.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.blue.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-label{color:#1976d2}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.blue.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.blue.night .mat-form-field-ripple{background-color:#fff}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#1976d2}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.blue.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#1976d2}.rtl-container.blue.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.blue.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.blue.night .mat-error{color:#ff343b}.rtl-container.blue.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.blue.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.blue.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.blue.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.blue.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.blue.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.blue.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.blue.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.blue.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.blue.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.blue.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#1976d2}.rtl-container.blue.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.blue.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.blue.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.blue.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.blue.night .mat-icon.mat-primary{color:#1976d2}.rtl-container.blue.night .mat-icon.mat-accent{color:#eee}.rtl-container.blue.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.blue.night .mat-input-element{caret-color:#1976d2}.rtl-container.blue.night .mat-input-element option{color:#000000de}.rtl-container.blue.night .mat-input-element option:disabled{color:#00000061}.rtl-container.blue.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.blue.night .mat-form-field-invalid .mat-input-element,.rtl-container.blue.night .mat-form-field.mat-warn .mat-input-element{caret-color:#ff343b}.rtl-container.blue.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.blue.night .mat-list-base .mat-list-item,.rtl-container.blue.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.blue.night .mat-list-item-disabled{background-color:#444}.rtl-container.blue.night .mat-action-list .mat-list-item:focus,.rtl-container.blue.night .mat-action-list .mat-list-item:hover,.rtl-container.blue.night .mat-list-option:focus,.rtl-container.blue.night .mat-list-option:hover,.rtl-container.blue.night .mat-nav-list .mat-list-item:focus,.rtl-container.blue.night .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.blue.night .mat-list-single-selected-option,.rtl-container.blue.night .mat-list-single-selected-option:focus,.rtl-container.blue.night .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.blue.night .mat-menu-panel{background:#202020}.rtl-container.blue.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.night .mat-menu-item{background:#0000;color:#fff}.rtl-container.blue.night .mat-menu-item-submenu-trigger:after,.rtl-container.blue.night .mat-menu-item .mat-icon-no-color{color:#fff}.rtl-container.blue.night .mat-menu-item-highlighted:not([disabled]),.rtl-container.blue.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.blue.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.blue.night .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.blue.night .mat-paginator{background:#202020}.rtl-container.blue.night .mat-paginator-decrement,.rtl-container.blue.night .mat-paginator-increment{border-top:2px solid #fff;border-right:2px solid #fff}.rtl-container.blue.night .mat-paginator-first,.rtl-container.blue.night .mat-paginator-last{border-top:2px solid #fff}.rtl-container.blue.night .mat-progress-bar-background{fill:#10273e}.rtl-container.blue.night .mat-progress-bar-buffer{background-color:#10273e}.rtl-container.blue.night .mat-progress-bar-fill:after{background-color:#1976d2}.rtl-container.blue.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.blue.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.blue.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.blue.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.blue.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.blue.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.blue.night .mat-progress-spinner circle,.rtl-container.blue.night .mat-spinner circle{stroke:#1976d2}.rtl-container.blue.night .mat-progress-spinner.mat-accent circle,.rtl-container.blue.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.blue.night .mat-progress-spinner.mat-warn circle,.rtl-container.blue.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.blue.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#1976d2}.rtl-container.blue.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.blue.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#1976d2}.rtl-container.blue.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.blue.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.blue.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.blue.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.blue.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.blue.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.blue.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.blue.night .mat-select-value{color:#fff}.rtl-container.blue.night .mat-select-panel{background:#202020}.rtl-container.blue.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.blue.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#1976d2}.rtl-container.blue.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.blue.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.blue.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.blue.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.blue.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.blue.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.blue.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.blue.night .mat-drawer-side{border-right:1px solid #ffffff4d}.rtl-container.blue.night .mat-drawer-side.mat-drawer-end,.rtl-container.blue.night [dir=rtl] .mat-drawer-side{border-left:1px solid #ffffff4d;border-right:none}.rtl-container.blue.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.blue.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.blue.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.blue.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.blue.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.blue.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#1976d2}.rtl-container.blue.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#1976d28a}.rtl-container.blue.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#1976d2}.rtl-container.blue.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.blue.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.blue.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.blue.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.blue.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#bdbdbd}.rtl-container.blue.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.blue.night .mat-primary .mat-slider-thumb,.rtl-container.blue.night .mat-primary .mat-slider-thumb-label,.rtl-container.blue.night .mat-primary .mat-slider-track-fill{background-color:#1976d2}.rtl-container.blue.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.night .mat-primary .mat-slider-focus-ring{background-color:#1976d233}.rtl-container.blue.night .mat-accent .mat-slider-thumb,.rtl-container.blue.night .mat-accent .mat-slider-thumb-label,.rtl-container.blue.night .mat-accent .mat-slider-track-fill{background-color:#eee}.rtl-container.blue.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.blue.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.blue.night .mat-warn .mat-slider-thumb,.rtl-container.blue.night .mat-warn .mat-slider-thumb-label,.rtl-container.blue.night .mat-warn .mat-slider-track-fill{background-color:#ff343b}.rtl-container.blue.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.blue.night .cdk-focused .mat-slider-track-background,.rtl-container.blue.night .mat-slider:hover .mat-slider-track-background{background-color:#fff9}.rtl-container.blue.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.blue.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.blue.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.blue.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.blue.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.blue.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.blue.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.blue.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.blue.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:initial}.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#fff9}.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.blue.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.blue.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.blue.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.blue.night .mat-step-header.cdk-keyboard-focused,.rtl-container.blue.night .mat-step-header.cdk-program-focused,.rtl-container.blue.night .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.blue.night .mat-step-header:hover{background:none}}.rtl-container.blue.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.blue.night .mat-step-header .mat-step-icon-selected,.rtl-container.blue.night .mat-step-header .mat-step-icon-state-done,.rtl-container.blue.night .mat-step-header .mat-step-icon-state-edit{background-color:#1976d2;color:#fff}.rtl-container.blue.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.blue.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.blue.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.blue.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.blue.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.blue.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.blue.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.blue.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.blue.night .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#ff343b}.rtl-container.blue.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.blue.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.blue.night .mat-stepper-horizontal,.rtl-container.blue.night .mat-stepper-vertical{background-color:#202020}.rtl-container.blue.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.blue.night .mat-horizontal-stepper-header:after,.rtl-container.blue.night .mat-horizontal-stepper-header:before,.rtl-container.blue.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.blue.night .mat-tab-header,.rtl-container.blue.night .mat-tab-nav-bar{border-bottom:1px solid #ffffff4d}.rtl-container.blue.night .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.blue.night .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #ffffff4d;border-bottom:none}.rtl-container.blue.night .mat-tab-label,.rtl-container.blue.night .mat-tab-link{color:#fff}.rtl-container.blue.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.blue.night .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.blue.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.blue.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#90caf94d}.rtl-container.blue.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#1976d2}.rtl-container.blue.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.blue.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.blue.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.blue.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.blue.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.blue.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#90caf94d}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#1976d2}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.blue.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#eee}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#000}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#0006}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#0000001f}.rtl-container.blue.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#ff343b}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.blue.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.blue.night .mat-toolbar.mat-primary{background:#1976d2;color:#fff}.rtl-container.blue.night .mat-toolbar.mat-accent{background:#eee;color:#000}.rtl-container.blue.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.blue.night .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.blue.night .mat-toolbar .mat-form-field-ripple,.rtl-container.blue.night .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.blue.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.blue.night .mat-toolbar .mat-form-field-label,.rtl-container.blue.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.blue.night .mat-toolbar .mat-select-arrow,.rtl-container.blue.night .mat-toolbar .mat-select-value{color:inherit}.rtl-container.blue.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.blue.night .mat-tree{background:#202020}.rtl-container.blue.night .mat-nested-tree-node,.rtl-container.blue.night .mat-tree-node{color:#fff}.rtl-container.blue.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.blue.night .mat-simple-snackbar-action{color:inherit}.rtl-container.blue.night .mat-primary{color:#448aff}.rtl-container.blue.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.blue.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.blue.night .bg-primary{background-color:#1976d2;color:#fff}.rtl-container.blue.night .mat-tab-label.mat-tab-label-active{color:#448aff}.rtl-container.blue.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#448aff}.rtl-container.blue.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.blue.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.blue.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.blue.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.blue.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#448aff}.rtl-container.blue.night .cc-data-block .cc-data-title{color:#448aff}.rtl-container.blue.night .mat-stroked-button.mat-primary{border-color:#448aff;color:#448aff}.rtl-container.blue.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.blue.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.blue.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.blue.night .active-link,.rtl-container.blue.night .active-link .fa-icon-small,.rtl-container.blue.night .mat-select-panel .mat-option.mat-active,.rtl-container.blue.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#448aff;font-weight:500;cursor:pointer;fill:#448aff}.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.blue.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#448aff}.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled),.rtl-container.blue.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.blue.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.blue.night .mat-nested-tree-node-parent:hover,.rtl-container.blue.night .mat-select-panel .mat-option:hover,.rtl-container.blue.night .mat-tree-node:hover{color:#448aff;cursor:pointer;background:#ffffff0f}.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.blue.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.blue.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.blue.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.blue.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.blue.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.blue.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.blue.night .mat-tree-node:hover .mat-icon,.rtl-container.blue.night .mat-tree-node:hover .ng-fa-icon{color:#448aff}.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.blue.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.blue.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.blue.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.blue.night .mat-tree-node:hover .sidenav-img svg{fill:#448aff}.rtl-container.blue.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.blue.night .mat-nested-tree-node .sidenav-img,.rtl-container.blue.night .mat-tree-node .sidenav-img,.rtl-container.blue.night .page-title-container .page-title-img,.rtl-container.blue.night svg.top-icon-small{fill:#fff}.rtl-container.blue.night .selected-color{border-color:#90caf9}.rtl-container.blue.night .mat-progress-bar-fill:after{background-color:#1e88e5}.rtl-container.blue.night .chart-legend .legend-label .active .legend-label-text,.rtl-container.blue.night .chart-legend .legend-label:hover{color:#fff!important}.rtl-container.blue.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.blue.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#448aff}.rtl-container.blue.night .mat-select-panel{background-color:#262626}.rtl-container.blue.night .mat-tree{background:#262626}.rtl-container.blue.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.blue.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.blue.night .dashboard-info-title{color:#448aff}.rtl-container.blue.night .dashboard-capacity-header,.rtl-container.blue.night .dashboard-info-value{color:#fff}.rtl-container.blue.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.blue.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.blue.night .color-primary{color:#448aff!important}.rtl-container.blue.night .dot-primary{background-color:#448aff!important}.rtl-container.blue.night .dot-primary-lighter{background-color:#1976d2!important}.rtl-container.blue.night .mat-stepper-vertical{background-color:#262626}.rtl-container.blue.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.blue.night svg .boltz-icon-fill{fill:#fff}.rtl-container.blue.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .fill-color-0,.rtl-container.blue.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.blue.night svg .fill-color-1{fill:#232323}.rtl-container.blue.night svg .fill-color-2{fill:#222}.rtl-container.blue.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.blue.night svg .fill-color-4{fill:#383838}.rtl-container.blue.night svg .fill-color-5{fill:#555}.rtl-container.blue.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.blue.night svg .fill-color-7{fill:#202020}.rtl-container.blue.night svg .fill-color-8{fill:#242424}.rtl-container.blue.night svg .fill-color-9{fill:#262626}.rtl-container.blue.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.blue.night svg .fill-color-11{fill:#171717}.rtl-container.blue.night svg .fill-color-12{fill:#ccc}.rtl-container.blue.night svg .fill-color-13{fill:#adadad}.rtl-container.blue.night svg .fill-color-14{fill:#ababab}.rtl-container.blue.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.blue.night svg .fill-color-16{fill:#707070}.rtl-container.blue.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.blue.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.blue.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.blue.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.blue.night svg .fill-color-21{fill:#cacaca}.rtl-container.blue.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.blue.night svg .fill-color-23{fill:#777}.rtl-container.blue.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.blue.night svg .fill-color-25{fill:#252525}.rtl-container.blue.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.blue.night svg .fill-color-27{fill:#000}.rtl-container.blue.night svg .fill-color-28{fill:#313131}.rtl-container.blue.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.blue.night svg .fill-color-30{fill:#fff}.rtl-container.blue.night svg .fill-color-31{fill:#1976d2}.rtl-container.blue.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.blue.night svg .fill-color-primary{fill:#1976d2}.rtl-container.blue.night svg .fill-color-primary-lighter{fill:#90caf9}.rtl-container.blue.night svg .fill-color-primary-darker{fill:#448aff}.rtl-container.blue.night .mat-select-arrow,.rtl-container.blue.night .mat-select-value{color:#fff}.rtl-container.blue.night .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.blue.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.blue.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.blue.night .mat-slide-toggle-bar,.rtl-container.blue.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.blue.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.blue.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.blue.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.blue.night .mat-button.mat-primary,.rtl-container.blue.night .mat-icon-button.mat-primary,.rtl-container.blue.night .mat-stroked-button.mat-primary{color:#448aff}.rtl-container.blue.night tr.alert.alert-warn .mat-cell,.rtl-container.blue.night tr.alert.alert-warn .mat-footer-cell,.rtl-container.blue.night tr.alert.alert-warn .mat-header-cell{color:#856404}.rtl-container.blue.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.blue.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#448aff}.rtl-container.blue.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.blue.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#1565c0}.rtl-container.blue.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.blue.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#448aff}.rtl-container.blue.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.blue.night .mat-progress-bar-buffer{background-color:#bbdefb}.rtl-container.blue.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.blue.night .foreground-secondary-text{color: !important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.blue.night .foreground.mat-progress-spinner circle,.rtl-container.blue.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.blue.night .mat-toolbar-row,.rtl-container.blue.night .mat-toolbar-single-row{height:5rem}.rtl-container.blue.night .lnd-info{border-bottom:1px solid #ffffff4d}.rtl-container.blue.night a{color:#1976d2}.rtl-container.blue.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.blue.night .h-active-link{border-bottom:2px solid #fff}.rtl-container.blue.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.blue.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.blue.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.blue.night .genseed-message{width:10%;color:#1976d2}.rtl-container.blue.night .material-icons.primary{color:#1976d2}.rtl-container.blue.night .material-icons.accent{color:#eee}.rtl-container.blue.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.blue.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.blue.night .row-disabled{background-color:gray}.rtl-container.blue.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.blue.night .mat-menu-panel{min-width:6.4rem}.rtl-container.blue.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.blue.night .horizontal-button:hover{background:#90caf9;color:#eee}.rtl-container.blue.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#1976d2}.rtl-container.blue.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.blue.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.blue.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.blue.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.blue.night .mat-cell,.rtl-container.blue.night .mat-footer-cell,.rtl-container.blue.night .mat-header-cell{border-bottom:1px solid #ffffff4d}.rtl-container.blue.night table.mat-table{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.blue.night table.mat-table thead tr th{color:#fff}.rtl-container.blue.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.blue.night .bordered-box{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.blue.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.blue.night .mat-expansion-panel{border:1px solid #ffffff4d}.rtl-container.blue.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.blue.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.blue.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.blue.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.blue.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.blue.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.blue.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.blue.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.blue.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.blue.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.blue.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.blue.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.blue.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.blue.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.blue.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.blue.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.blue.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.blue.night .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#90caf9!important}.rtl-container.blue.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#1e88e5!important}.rtl-container.blue.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.blue.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.blue.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.blue.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.blue.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.blue.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.blue.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.blue.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.blue.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.blue.night .color-warn{color:#ff343b}.rtl-container.blue.night .fill-warn{fill:#ff343b}.rtl-container.blue.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.blue.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.blue.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.blue.night .alert.alert-info a{color:#004085}.rtl-container.blue.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.blue.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.blue.night .alert.alert-warn a{color:#856404}.rtl-container.blue.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.blue.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.blue.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.blue.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.blue.night .help-expansion .mat-expansion-panel-header,.rtl-container.blue.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.blue.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.blue.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.blue.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.blue.night .failed-status{color:#ff343b}.rtl-container.blue.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.blue.night .svg-fill-primary{fill:#1976d2}.rtl-container.blue.night .svg-fill-primary-lighter{fill:#90caf9}.rtl-container.blue.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.blue.night ngx-charts-bar-vertical-2d text,.rtl-container.blue.night ngx-charts-bar-vertical text{fill:#fff}.rtl-container.blue.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.blue.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.blue.night .mat-paginator-container{padding:0}.rtl-container.indigo.small.small .mat-header-cell{font-weight:700}.rtl-container.indigo.small.small .mr-4{margin-right:1rem!important}.rtl-container.indigo.small.small .mat-menu-item,.rtl-container.indigo.small.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.indigo.small.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.indigo.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.indigo.small.small .fa-icon-small,.rtl-container.indigo.small.small .genseed-message,.rtl-container.indigo.small.small .top-icon-small,.rtl-container.indigo.small.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.indigo.small.small .page-sub-title-container,.rtl-container.indigo.small.small .page-title-container{font-size:1.32rem}.rtl-container.indigo.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.indigo.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.indigo.small.small .sidenav-img svg,.rtl-container.indigo.small.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.indigo.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.indigo.small.small .material-icons,.rtl-container.indigo.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.indigo.small.small .mat-expansion-panel-header,.rtl-container.indigo.small.small .mat-list .mat-list-item,.rtl-container.indigo.small.small .mat-menu-item,.rtl-container.indigo.small.small .mat-nav-list .mat-list-item,.rtl-container.indigo.small.small .mat-option,.rtl-container.indigo.small.small .mat-select,.rtl-container.indigo.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.indigo.small.small .logo{font-size:2.4rem}.rtl-container.indigo.small.small .font-60-percent{font-size:.72rem}.rtl-container.indigo.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.indigo.small.small .icon-large{font-size:6rem}.rtl-container.indigo.small.small .icon-small{font-size:1.8rem!important}.rtl-container.indigo.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.indigo.small.small .size-triple{font-size:3.6rem}.rtl-container.indigo.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.indigo.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.small.medium .mat-header-cell{font-weight:700}.rtl-container.indigo.small.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.indigo.small.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.indigo.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.indigo.small.medium .genseed-message,.rtl-container.indigo.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.indigo.small.medium .page-sub-title-container,.rtl-container.indigo.small.medium .page-title-container{font-size:1.54rem}.rtl-container.indigo.small.medium .fa-icon-small,.rtl-container.indigo.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.indigo.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.indigo.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.indigo.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.indigo.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.indigo.small.medium .sidenav-img svg,.rtl-container.indigo.small.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.indigo.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.indigo.small.medium .material-icons{font-size:2.8rem}.rtl-container.indigo.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.indigo.small.medium .mat-expansion-panel-header,.rtl-container.indigo.small.medium .mat-list .mat-list-item,.rtl-container.indigo.small.medium .mat-menu-item,.rtl-container.indigo.small.medium .mat-nav-list .mat-list-item,.rtl-container.indigo.small.medium .mat-option,.rtl-container.indigo.small.medium .mat-select,.rtl-container.indigo.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.indigo.small.medium .logo{font-size:2.8rem}.rtl-container.indigo.small.medium .font-60-percent{font-size:.84rem}.rtl-container.indigo.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.indigo.small.medium .icon-large{font-size:7rem}.rtl-container.indigo.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.indigo.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.indigo.small.medium .size-triple{font-size:4.2rem}.rtl-container.indigo.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.indigo.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.small.large .mat-header-cell{font-weight:800}.rtl-container.indigo.small.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.indigo.small.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.indigo.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.indigo.small.large .genseed-message,.rtl-container.indigo.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.indigo.small.large .page-sub-title-container,.rtl-container.indigo.small.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.indigo.small.large .fa-icon-small,.rtl-container.indigo.small.large .modal-info-header,.rtl-container.indigo.small.large .top-icon-small{font-size:1.92rem}.rtl-container.indigo.small.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.indigo.small.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.indigo.small.large .sidenav-img svg,.rtl-container.indigo.small.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.indigo.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.indigo.small.large .material-icons{font-size:4rem}.rtl-container.indigo.small.large .mat-expansion-panel-header,.rtl-container.indigo.small.large .mat-list .mat-list-item,.rtl-container.indigo.small.large .mat-menu-item,.rtl-container.indigo.small.large .mat-nav-list .mat-list-item,.rtl-container.indigo.small.large .mat-option,.rtl-container.indigo.small.large .mat-select,.rtl-container.indigo.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.indigo.small.large .logo{font-size:3.2rem}.rtl-container.indigo.small.large .font-60-percent{font-size:.96rem}.rtl-container.indigo.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.indigo.small.large .icon-large{font-size:8rem}.rtl-container.indigo.small.large .icon-small{font-size:2.4rem!important}.rtl-container.indigo.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.indigo.small.large .size-triple{font-size:4.8rem}.rtl-container.indigo.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.indigo.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.small .mat-icon.material-icons:focus{outline:none}.rtl-container.indigo.small .mat-flat-button.mat-primary:focus,.rtl-container.indigo.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.indigo.medium.small .mat-header-cell{font-weight:700}.rtl-container.indigo.medium.small .mr-4{margin-right:1rem!important}.rtl-container.indigo.medium.small .mat-menu-item,.rtl-container.indigo.medium.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.indigo.medium.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.indigo.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.indigo.medium.small .fa-icon-small,.rtl-container.indigo.medium.small .genseed-message,.rtl-container.indigo.medium.small .top-icon-small,.rtl-container.indigo.medium.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.indigo.medium.small .page-sub-title-container,.rtl-container.indigo.medium.small .page-title-container{font-size:1.32rem}.rtl-container.indigo.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.indigo.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.indigo.medium.small .sidenav-img svg,.rtl-container.indigo.medium.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.indigo.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.indigo.medium.small .material-icons,.rtl-container.indigo.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.indigo.medium.small .mat-expansion-panel-header,.rtl-container.indigo.medium.small .mat-list .mat-list-item,.rtl-container.indigo.medium.small .mat-menu-item,.rtl-container.indigo.medium.small .mat-nav-list .mat-list-item,.rtl-container.indigo.medium.small .mat-option,.rtl-container.indigo.medium.small .mat-select,.rtl-container.indigo.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.indigo.medium.small .logo{font-size:2.4rem}.rtl-container.indigo.medium.small .font-60-percent{font-size:.72rem}.rtl-container.indigo.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.indigo.medium.small .icon-large{font-size:6rem}.rtl-container.indigo.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.indigo.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.indigo.medium.small .size-triple{font-size:3.6rem}.rtl-container.indigo.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.indigo.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.medium.medium .mat-header-cell{font-weight:700}.rtl-container.indigo.medium.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.indigo.medium.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.indigo.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.indigo.medium.medium .genseed-message,.rtl-container.indigo.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.indigo.medium.medium .page-sub-title-container,.rtl-container.indigo.medium.medium .page-title-container{font-size:1.54rem}.rtl-container.indigo.medium.medium .fa-icon-small,.rtl-container.indigo.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.indigo.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.indigo.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.indigo.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.indigo.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.indigo.medium.medium .sidenav-img svg,.rtl-container.indigo.medium.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.indigo.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.indigo.medium.medium .material-icons{font-size:2.8rem}.rtl-container.indigo.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.indigo.medium.medium .mat-expansion-panel-header,.rtl-container.indigo.medium.medium .mat-list .mat-list-item,.rtl-container.indigo.medium.medium .mat-menu-item,.rtl-container.indigo.medium.medium .mat-nav-list .mat-list-item,.rtl-container.indigo.medium.medium .mat-option,.rtl-container.indigo.medium.medium .mat-select,.rtl-container.indigo.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.indigo.medium.medium .logo{font-size:2.8rem}.rtl-container.indigo.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.indigo.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.indigo.medium.medium .icon-large{font-size:7rem}.rtl-container.indigo.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.indigo.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.indigo.medium.medium .size-triple{font-size:4.2rem}.rtl-container.indigo.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.indigo.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.medium.large .mat-header-cell{font-weight:800}.rtl-container.indigo.medium.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.indigo.medium.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.indigo.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.indigo.medium.large .genseed-message,.rtl-container.indigo.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.indigo.medium.large .page-sub-title-container,.rtl-container.indigo.medium.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.indigo.medium.large .fa-icon-small,.rtl-container.indigo.medium.large .modal-info-header,.rtl-container.indigo.medium.large .top-icon-small{font-size:1.92rem}.rtl-container.indigo.medium.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.indigo.medium.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.indigo.medium.large .sidenav-img svg,.rtl-container.indigo.medium.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.indigo.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.indigo.medium.large .material-icons{font-size:4rem}.rtl-container.indigo.medium.large .mat-expansion-panel-header,.rtl-container.indigo.medium.large .mat-list .mat-list-item,.rtl-container.indigo.medium.large .mat-menu-item,.rtl-container.indigo.medium.large .mat-nav-list .mat-list-item,.rtl-container.indigo.medium.large .mat-option,.rtl-container.indigo.medium.large .mat-select,.rtl-container.indigo.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.indigo.medium.large .logo{font-size:3.2rem}.rtl-container.indigo.medium.large .font-60-percent{font-size:.96rem}.rtl-container.indigo.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.indigo.medium.large .icon-large{font-size:8rem}.rtl-container.indigo.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.indigo.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.indigo.medium.large .size-triple{font-size:4.8rem}.rtl-container.indigo.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.indigo.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.indigo.medium .mat-flat-button.mat-primary:focus,.rtl-container.indigo.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.indigo.large.small .mat-header-cell{font-weight:700}.rtl-container.indigo.large.small .mr-4{margin-right:1rem!important}.rtl-container.indigo.large.small .mat-menu-item,.rtl-container.indigo.large.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.indigo.large.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.indigo.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.indigo.large.small .fa-icon-small,.rtl-container.indigo.large.small .genseed-message,.rtl-container.indigo.large.small .top-icon-small,.rtl-container.indigo.large.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.indigo.large.small .page-sub-title-container,.rtl-container.indigo.large.small .page-title-container{font-size:1.32rem}.rtl-container.indigo.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.indigo.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.indigo.large.small .sidenav-img svg,.rtl-container.indigo.large.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.indigo.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.indigo.large.small .material-icons,.rtl-container.indigo.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.indigo.large.small .mat-expansion-panel-header,.rtl-container.indigo.large.small .mat-list .mat-list-item,.rtl-container.indigo.large.small .mat-menu-item,.rtl-container.indigo.large.small .mat-nav-list .mat-list-item,.rtl-container.indigo.large.small .mat-option,.rtl-container.indigo.large.small .mat-select,.rtl-container.indigo.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.indigo.large.small .logo{font-size:2.4rem}.rtl-container.indigo.large.small .font-60-percent{font-size:.72rem}.rtl-container.indigo.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.indigo.large.small .icon-large{font-size:6rem}.rtl-container.indigo.large.small .icon-small{font-size:1.8rem!important}.rtl-container.indigo.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.indigo.large.small .size-triple{font-size:3.6rem}.rtl-container.indigo.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.indigo.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.large.medium .mat-header-cell{font-weight:700}.rtl-container.indigo.large.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.indigo.large.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.indigo.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.indigo.large.medium .genseed-message,.rtl-container.indigo.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.indigo.large.medium .page-sub-title-container,.rtl-container.indigo.large.medium .page-title-container{font-size:1.54rem}.rtl-container.indigo.large.medium .fa-icon-small,.rtl-container.indigo.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.indigo.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.indigo.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.indigo.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.indigo.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.indigo.large.medium .sidenav-img svg,.rtl-container.indigo.large.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.indigo.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.indigo.large.medium .material-icons{font-size:2.8rem}.rtl-container.indigo.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.indigo.large.medium .mat-expansion-panel-header,.rtl-container.indigo.large.medium .mat-list .mat-list-item,.rtl-container.indigo.large.medium .mat-menu-item,.rtl-container.indigo.large.medium .mat-nav-list .mat-list-item,.rtl-container.indigo.large.medium .mat-option,.rtl-container.indigo.large.medium .mat-select,.rtl-container.indigo.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.indigo.large.medium .logo{font-size:2.8rem}.rtl-container.indigo.large.medium .font-60-percent{font-size:.84rem}.rtl-container.indigo.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.indigo.large.medium .icon-large{font-size:7rem}.rtl-container.indigo.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.indigo.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.indigo.large.medium .size-triple{font-size:4.2rem}.rtl-container.indigo.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.indigo.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.large.large .mat-header-cell{font-weight:800}.rtl-container.indigo.large.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.indigo.large.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.indigo.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.indigo.large.large .genseed-message,.rtl-container.indigo.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.indigo.large.large .page-sub-title-container,.rtl-container.indigo.large.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.indigo.large.large .fa-icon-small,.rtl-container.indigo.large.large .modal-info-header,.rtl-container.indigo.large.large .top-icon-small{font-size:1.92rem}.rtl-container.indigo.large.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.indigo.large.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.indigo.large.large .sidenav-img svg,.rtl-container.indigo.large.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.indigo.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.indigo.large.large .material-icons{font-size:4rem}.rtl-container.indigo.large.large .mat-expansion-panel-header,.rtl-container.indigo.large.large .mat-list .mat-list-item,.rtl-container.indigo.large.large .mat-menu-item,.rtl-container.indigo.large.large .mat-nav-list .mat-list-item,.rtl-container.indigo.large.large .mat-option,.rtl-container.indigo.large.large .mat-select,.rtl-container.indigo.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.indigo.large.large .logo{font-size:3.2rem}.rtl-container.indigo.large.large .font-60-percent{font-size:.96rem}.rtl-container.indigo.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.indigo.large.large .icon-large{font-size:8rem}.rtl-container.indigo.large.large .icon-small{font-size:2.4rem!important}.rtl-container.indigo.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.indigo.large.large .size-triple{font-size:4.8rem}.rtl-container.indigo.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.indigo.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.large .mat-icon.material-icons:focus{outline:none}.rtl-container.indigo.large .mat-flat-button.mat-primary:focus,.rtl-container.indigo.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.indigo.day .mat-ripple-element{background-color:#0000001a}.rtl-container.indigo.day .mat-option{color:#000000de}.rtl-container.indigo.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.day .mat-option:focus:not(.mat-option-disabled),.rtl-container.indigo.day .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.indigo.day .mat-option.mat-active{background:#0000000a;color:#000000de}.rtl-container.indigo.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.indigo.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#3f51b5}.rtl-container.indigo.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.indigo.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.indigo.day .mat-optgroup-label{color:#0000008a}.rtl-container.indigo.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.indigo.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.indigo.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.indigo.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.indigo.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.indigo.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#3f51b5}.rtl-container.indigo.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.indigo.day .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.indigo.day .mat-pseudo-checkbox-checked,.rtl-container.indigo.day .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.indigo.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.indigo.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.indigo.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.indigo.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.indigo.day.mat-app-background,.rtl-container.indigo.day .mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.indigo.day .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.indigo.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.indigo.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.indigo.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.indigo.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.indigo.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.indigo.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.indigo.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.indigo.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.indigo.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.indigo.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.indigo.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.indigo.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.indigo.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.indigo.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.indigo.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.indigo.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.indigo.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.indigo.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.indigo.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.indigo.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.indigo.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.indigo.day .mat-autocomplete-panel{background:#fff;color:#000000de}.rtl-container.indigo.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.rtl-container.indigo.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.indigo.day .mat-badge-content{color:#fff;background:#3f51b5}.cdk-high-contrast-active .rtl-container.indigo.day .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.indigo.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.indigo.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.indigo.day .mat-badge{position:relative}.rtl-container.indigo.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.indigo.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.indigo.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.indigo.day .mat-badge-content._mat-animation-noopable,.rtl-container.indigo.day .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.indigo.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.indigo.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.indigo.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.indigo.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.indigo.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.indigo.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.indigo.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.indigo.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.indigo.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.indigo.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.indigo.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.indigo.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.indigo.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.indigo.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.indigo.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.indigo.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.indigo.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.indigo.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.indigo.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.indigo.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.indigo.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.indigo.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.indigo.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.indigo.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.indigo.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.indigo.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.indigo.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.indigo.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.indigo.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.rtl-container.indigo.day .mat-button,.rtl-container.indigo.day .mat-icon-button,.rtl-container.indigo.day .mat-stroked-button{color:inherit;background:#0000}.rtl-container.indigo.day .mat-button.mat-primary,.rtl-container.indigo.day .mat-icon-button.mat-primary,.rtl-container.indigo.day .mat-stroked-button.mat-primary{color:#3f51b5}.rtl-container.indigo.day .mat-button.mat-accent,.rtl-container.indigo.day .mat-icon-button.mat-accent,.rtl-container.indigo.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.indigo.day .mat-button.mat-warn,.rtl-container.indigo.day .mat-icon-button.mat-warn,.rtl-container.indigo.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.indigo.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-stroked-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.indigo.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.indigo.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.indigo.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#3f51b5}.rtl-container.indigo.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.indigo.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.indigo.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.indigo.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.indigo.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.indigo.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.indigo.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.indigo.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.indigo.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.indigo.day .mat-button .mat-ripple-element,.rtl-container.indigo.day .mat-icon-button .mat-ripple-element,.rtl-container.indigo.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.indigo.day .mat-button-focus-overlay{background:#000}.rtl-container.indigo.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.indigo.day .mat-fab,.rtl-container.indigo.day .mat-flat-button,.rtl-container.indigo.day .mat-mini-fab,.rtl-container.indigo.day .mat-raised-button{color:#000000de;background-color:#fff}.rtl-container.indigo.day .mat-fab.mat-accent,.rtl-container.indigo.day .mat-fab.mat-primary,.rtl-container.indigo.day .mat-fab.mat-warn,.rtl-container.indigo.day .mat-flat-button.mat-accent,.rtl-container.indigo.day .mat-flat-button.mat-primary,.rtl-container.indigo.day .mat-flat-button.mat-warn,.rtl-container.indigo.day .mat-mini-fab.mat-accent,.rtl-container.indigo.day .mat-mini-fab.mat-primary,.rtl-container.indigo.day .mat-mini-fab.mat-warn,.rtl-container.indigo.day .mat-raised-button.mat-accent,.rtl-container.indigo.day .mat-raised-button.mat-primary,.rtl-container.indigo.day .mat-raised-button.mat-warn{color:#fff}.rtl-container.indigo.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.indigo.day .mat-fab.mat-primary,.rtl-container.indigo.day .mat-flat-button.mat-primary,.rtl-container.indigo.day .mat-mini-fab.mat-primary,.rtl-container.indigo.day .mat-raised-button.mat-primary{background-color:#3f51b5}.rtl-container.indigo.day .mat-fab.mat-accent,.rtl-container.indigo.day .mat-flat-button.mat-accent,.rtl-container.indigo.day .mat-mini-fab.mat-accent,.rtl-container.indigo.day .mat-raised-button.mat-accent{background-color:#424242}.rtl-container.indigo.day .mat-fab.mat-warn,.rtl-container.indigo.day .mat-flat-button.mat-warn,.rtl-container.indigo.day .mat-mini-fab.mat-warn,.rtl-container.indigo.day .mat-raised-button.mat-warn{background-color:#b00020}.rtl-container.indigo.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-warn.mat-button-disabled{background-color:#0000001f}.rtl-container.indigo.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.indigo.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.indigo.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.indigo.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.day .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.indigo.day .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.indigo.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.indigo.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.indigo.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.indigo.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.indigo.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.indigo.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.day .mat-button-toggle-group,.rtl-container.indigo.day .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.day .mat-button-toggle-group-appearance-standard,.rtl-container.indigo.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.indigo.day .mat-button-toggle{color:#00000061}.rtl-container.indigo.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.indigo.day .mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.rtl-container.indigo.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.indigo.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #0000001f}.rtl-container.indigo.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #0000001f}.rtl-container.indigo.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #0000001f}.rtl-container.indigo.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.indigo.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.indigo.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.indigo.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.rtl-container.indigo.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.indigo.day .mat-button-toggle-group-appearance-standard,.rtl-container.indigo.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #0000001f}.rtl-container.indigo.day .mat-card{background:#fff;color:#000000de}.rtl-container.indigo.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.indigo.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.day .mat-card-subtitle{color:#0000008a}.rtl-container.indigo.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.indigo.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.indigo.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.indigo.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.indigo.day .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.indigo.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#3f51b5}.rtl-container.indigo.day .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.indigo.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.indigo.day .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.indigo.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.indigo.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.indigo.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.indigo.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.indigo.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.indigo.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.indigo.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#3f51b5}.rtl-container.indigo.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.indigo.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.indigo.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.indigo.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.indigo.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.indigo.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip:after{background:#000}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#3f51b5;color:#fff}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.day .mat-table{background:#fff}.rtl-container.indigo.day .mat-table-sticky,.rtl-container.indigo.day .mat-table tbody,.rtl-container.indigo.day .mat-table tfoot,.rtl-container.indigo.day .mat-table thead,.rtl-container.indigo.day [mat-footer-row],.rtl-container.indigo.day [mat-header-row],.rtl-container.indigo.day [mat-row],.rtl-container.indigo.day mat-footer-row,.rtl-container.indigo.day mat-header-row,.rtl-container.indigo.day mat-row{background:inherit}.rtl-container.indigo.day mat-footer-row,.rtl-container.indigo.day mat-header-row,.rtl-container.indigo.day mat-row,.rtl-container.indigo.day td.mat-cell,.rtl-container.indigo.day td.mat-footer-cell,.rtl-container.indigo.day th.mat-header-cell{border-bottom-color:#0000001f}.rtl-container.indigo.day .mat-header-cell{color:#0000008a}.rtl-container.indigo.day .mat-cell,.rtl-container.indigo.day .mat-footer-cell{color:#000000de}.rtl-container.indigo.day .mat-calendar-arrow{border-top-color:#0000008a}.rtl-container.indigo.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.indigo.day .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.indigo.day .mat-datepicker-toggle{color:#0000008a}.rtl-container.indigo.day .mat-calendar-table-header{color:#00000061}.rtl-container.indigo.day .mat-calendar-table-header-divider:after{background:#0000001f}.rtl-container.indigo.day .mat-calendar-body-label{color:#0000008a}.rtl-container.indigo.day .mat-calendar-body-cell-content,.rtl-container.indigo.day .mat-date-range-input-separator{color:#000000de;border-color:#0000}.rtl-container.indigo.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.indigo.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.indigo.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.indigo.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.indigo.day .mat-calendar-body-in-range:before{background:#3f51b533}.rtl-container.indigo.day .mat-calendar-body-comparison-identical,.rtl-container.indigo.day .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.indigo.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#3f51b533 50%,#f9ab0033 0)}.rtl-container.indigo.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#3f51b533 50%,#f9ab0033 0)}.rtl-container.indigo.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.indigo.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.indigo.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.day .mat-calendar-body-selected{background-color:#3f51b5;color:#fff}.rtl-container.indigo.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#3f51b566}.rtl-container.indigo.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}.rtl-container.indigo.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#fff;color:#000000de}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#42424233}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#42424233 50%,#f9ab0033 0)}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#42424233 50%,#f9ab0033 0)}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#b0002033}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}.rtl-container.indigo.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.indigo.day .mat-datepicker-toggle-active{color:#3f51b5}.rtl-container.indigo.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.indigo.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.indigo.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.indigo.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.rtl-container.indigo.day .mat-divider{border-top-color:#0000001f}.rtl-container.indigo.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.indigo.day .mat-expansion-panel{background:#fff;color:#000000de}.rtl-container.indigo.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.day .mat-action-row{border-top-color:#0000001f}.rtl-container.indigo.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.indigo.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.indigo.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.indigo.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.rtl-container.indigo.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.indigo.day .mat-expansion-indicator:after,.rtl-container.indigo.day .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.indigo.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.indigo.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.indigo.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.indigo.day .mat-form-field-label,.rtl-container.indigo.day .mat-hint{color:#0009}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-label{color:#3f51b5}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.indigo.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.indigo.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#3f51b5}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#3f51b5}.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.indigo.day .mat-error{color:#b00020}.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.indigo.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.indigo.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.indigo.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.indigo.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.indigo.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.indigo.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.indigo.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.indigo.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.indigo.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.indigo.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#3f51b5}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.indigo.day .mat-icon.mat-primary{color:#3f51b5}.rtl-container.indigo.day .mat-icon.mat-accent{color:#424242}.rtl-container.indigo.day .mat-icon.mat-warn{color:#b00020}.rtl-container.indigo.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after,.rtl-container.indigo.day .mat-input-element:disabled{color:#00000061}.rtl-container.indigo.day .mat-input-element{caret-color:#3f51b5}.rtl-container.indigo.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.indigo.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.indigo.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.indigo.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.indigo.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.indigo.day .mat-form-field-invalid .mat-input-element,.rtl-container.indigo.day .mat-form-field.mat-warn .mat-input-element{caret-color:#b00020}.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.indigo.day .mat-list-base .mat-list-item,.rtl-container.indigo.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.indigo.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.indigo.day .mat-list-item-disabled{background-color:#eee}.rtl-container.indigo.day .mat-action-list .mat-list-item:focus,.rtl-container.indigo.day .mat-action-list .mat-list-item:hover,.rtl-container.indigo.day .mat-list-option:focus,.rtl-container.indigo.day .mat-list-option:hover,.rtl-container.indigo.day .mat-nav-list .mat-list-item:focus,.rtl-container.indigo.day .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.indigo.day .mat-list-single-selected-option,.rtl-container.indigo.day .mat-list-single-selected-option:focus,.rtl-container.indigo.day .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.indigo.day .mat-menu-panel{background:#fff}.rtl-container.indigo.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.day .mat-menu-item{background:#0000;color:#000000de}.rtl-container.indigo.day .mat-menu-item[disabled],.rtl-container.indigo.day .mat-menu-item[disabled] .mat-icon-no-color,.rtl-container.indigo.day .mat-menu-item[disabled]:after{color:#00000061}.rtl-container.indigo.day .mat-menu-item-submenu-trigger:after,.rtl-container.indigo.day .mat-menu-item .mat-icon-no-color{color:#0000008a}.rtl-container.indigo.day .mat-menu-item-highlighted:not([disabled]),.rtl-container.indigo.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.indigo.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.indigo.day .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.indigo.day .mat-paginator{background:#fff}.rtl-container.indigo.day .mat-paginator,.rtl-container.indigo.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.indigo.day .mat-paginator-decrement,.rtl-container.indigo.day .mat-paginator-increment{border-top:2px solid #0000008a;border-right:2px solid #0000008a}.rtl-container.indigo.day .mat-paginator-first,.rtl-container.indigo.day .mat-paginator-last{border-top:2px solid #0000008a}.rtl-container.indigo.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.indigo.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.indigo.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.indigo.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.indigo.day .mat-progress-bar-background{fill:#cbd0e9}.rtl-container.indigo.day .mat-progress-bar-buffer{background-color:#cbd0e9}.rtl-container.indigo.day .mat-progress-bar-fill:after{background-color:#3f51b5}.rtl-container.indigo.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.indigo.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.indigo.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.indigo.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.indigo.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.indigo.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.indigo.day .mat-progress-spinner circle,.rtl-container.indigo.day .mat-spinner circle{stroke:#3f51b5}.rtl-container.indigo.day .mat-progress-spinner.mat-accent circle,.rtl-container.indigo.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.indigo.day .mat-progress-spinner.mat-warn circle,.rtl-container.indigo.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.indigo.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.indigo.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#3f51b5}.rtl-container.indigo.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.indigo.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#3f51b5}.rtl-container.indigo.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.indigo.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.indigo.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.indigo.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.indigo.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.indigo.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:#00000061}.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.indigo.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.indigo.day .mat-select-value{color:#000000de}.rtl-container.indigo.day .mat-select-placeholder{color:#0000006b}.rtl-container.indigo.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.indigo.day .mat-select-arrow{color:#0000008a}.rtl-container.indigo.day .mat-select-panel{background:#fff}.rtl-container.indigo.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.indigo.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#3f51b5}.rtl-container.indigo.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.indigo.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.indigo.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.indigo.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.indigo.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.indigo.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.indigo.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.indigo.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.indigo.day .mat-drawer-side{border-right:1px solid #0000001f}.rtl-container.indigo.day .mat-drawer-side.mat-drawer-end,.rtl-container.indigo.day [dir=rtl] .mat-drawer-side{border-left:1px solid #0000001f;border-right:none}.rtl-container.indigo.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #0000001f}.rtl-container.indigo.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.indigo.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.indigo.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.indigo.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.indigo.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#3f51b5}.rtl-container.indigo.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#3f51b58a}.rtl-container.indigo.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#3f51b5}.rtl-container.indigo.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.indigo.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.indigo.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.indigo.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.indigo.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#fafafa}.rtl-container.indigo.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.indigo.day .mat-slider-track-background{background-color:#00000042}.rtl-container.indigo.day .mat-primary .mat-slider-thumb,.rtl-container.indigo.day .mat-primary .mat-slider-thumb-label,.rtl-container.indigo.day .mat-primary .mat-slider-track-fill{background-color:#3f51b5}.rtl-container.indigo.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.day .mat-primary .mat-slider-focus-ring{background-color:#3f51b533}.rtl-container.indigo.day .mat-accent .mat-slider-thumb,.rtl-container.indigo.day .mat-accent .mat-slider-thumb-label,.rtl-container.indigo.day .mat-accent .mat-slider-track-fill{background-color:#424242}.rtl-container.indigo.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.indigo.day .mat-warn .mat-slider-thumb,.rtl-container.indigo.day .mat-warn .mat-slider-thumb-label,.rtl-container.indigo.day .mat-warn .mat-slider-track-fill{background-color:#b00020}.rtl-container.indigo.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.indigo.day .cdk-focused .mat-slider-track-background,.rtl-container.indigo.day .mat-slider:hover .mat-slider-track-background{background-color:#00000061}.rtl-container.indigo.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.indigo.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.indigo.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.indigo.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.indigo.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.indigo.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:initial}.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#00000061}.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.indigo.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.indigo.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#000000b3,#000000b3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.indigo.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.indigo.day .mat-step-header.cdk-keyboard-focused,.rtl-container.indigo.day .mat-step-header.cdk-program-focused,.rtl-container.indigo.day .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.indigo.day .mat-step-header:hover{background:none}}.rtl-container.indigo.day .mat-step-header .mat-step-label,.rtl-container.indigo.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.indigo.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.indigo.day .mat-step-header .mat-step-icon-selected,.rtl-container.indigo.day .mat-step-header .mat-step-icon-state-done,.rtl-container.indigo.day .mat-step-header .mat-step-icon-state-edit{background-color:#3f51b5;color:#fff}.rtl-container.indigo.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.indigo.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.indigo.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.indigo.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.indigo.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.indigo.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.indigo.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.indigo.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.indigo.day .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#b00020}.rtl-container.indigo.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.indigo.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.indigo.day .mat-stepper-horizontal,.rtl-container.indigo.day .mat-stepper-vertical{background-color:#fff}.rtl-container.indigo.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.indigo.day .mat-horizontal-stepper-header:after,.rtl-container.indigo.day .mat-horizontal-stepper-header:before,.rtl-container.indigo.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.indigo.day .mat-sort-header-arrow{color:#757575}.rtl-container.indigo.day .mat-tab-header,.rtl-container.indigo.day .mat-tab-nav-bar{border-bottom:1px solid #0000001f}.rtl-container.indigo.day .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.indigo.day .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #0000001f;border-bottom:none}.rtl-container.indigo.day .mat-tab-label,.rtl-container.indigo.day .mat-tab-link{color:#000000de}.rtl-container.indigo.day .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.indigo.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.indigo.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.indigo.day .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.indigo.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9fa8da4d}.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#3f51b5}.rtl-container.indigo.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.indigo.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.indigo.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9fa8da4d}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#3f51b5}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.indigo.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#424242}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.indigo.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#b00020}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.indigo.day .mat-toolbar{background:#f5f5f5;color:#000000de}.rtl-container.indigo.day .mat-toolbar.mat-primary{background:#3f51b5;color:#fff}.rtl-container.indigo.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.indigo.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.indigo.day .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.indigo.day .mat-toolbar .mat-form-field-ripple,.rtl-container.indigo.day .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.indigo.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.indigo.day .mat-toolbar .mat-form-field-label,.rtl-container.indigo.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.indigo.day .mat-toolbar .mat-select-arrow,.rtl-container.indigo.day .mat-toolbar .mat-select-value{color:inherit}.rtl-container.indigo.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.indigo.day .mat-tooltip{background:#616161e6}.rtl-container.indigo.day .mat-tree{background:#fff}.rtl-container.indigo.day .mat-nested-tree-node,.rtl-container.indigo.day .mat-tree-node{color:#000000de}.rtl-container.indigo.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.indigo.day .mat-simple-snackbar-action{color:#424242}.rtl-container.indigo.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.indigo.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.indigo.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.indigo.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.indigo.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.indigo.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.indigo.day .rtl-top-toolbar{border-bottom:1px solid #fff}.rtl-container.indigo.day .bg-primary{background-color:#3f51b5;color:#fff}.rtl-container.indigo.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#3f51b5}.rtl-container.indigo.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.indigo.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.indigo.day .mat-tab-label.mat-tab-label-active{color:#3f51b5}.rtl-container.indigo.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#3f51b5}.rtl-container.indigo.day .mat-tab-label .tab-badge .mat-badge-content{background:#0000008a}.rtl-container.indigo.day .mat-form-field-suffix,.rtl-container.indigo.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.indigo.day .ng-fa-icon{color:#0000008a}.rtl-container.indigo.day .mat-stroked-button.mat-primary{border-color:#3f51b5}.rtl-container.indigo.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.indigo.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.indigo.day .selected-color{border-color:#9fa8da}.rtl-container.indigo.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.indigo.day .page-sub-title-container,.rtl-container.indigo.day .page-title-container{color:#0000008a}.rtl-container.indigo.day .page-sub-title-container .page-title-img,.rtl-container.indigo.day .page-title-container .page-title-img{color:#00000061}.rtl-container.indigo.day .page-sub-title-container .mat-input-element,.rtl-container.indigo.day .page-sub-title-container .mat-radio-label-content,.rtl-container.indigo.day .page-sub-title-container .theme-name,.rtl-container.indigo.day .page-title-container .mat-input-element,.rtl-container.indigo.day .page-title-container .mat-radio-label-content,.rtl-container.indigo.day .page-title-container .theme-name{color:#000000de}.rtl-container.indigo.day .cc-data-block .cc-data-title{color:#3f51b5}.rtl-container.indigo.day .active-link,.rtl-container.indigo.day .active-link .fa-icon-small{color:#3f51b5;font-weight:500;cursor:pointer;fill:#3f51b5}.rtl-container.indigo.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.indigo.day .mat-nested-tree-node-parent:hover,.rtl-container.indigo.day .mat-select-panel .mat-option:hover,.rtl-container.indigo.day .mat-tree-node:hover{color:#3f51b5;cursor:pointer;background:#0000000a}.rtl-container.indigo.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.indigo.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.indigo.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.indigo.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.indigo.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.indigo.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.indigo.day .mat-tree-node:hover .mat-icon,.rtl-container.indigo.day .mat-tree-node:hover .ng-fa-icon{color:#3f51b5}.rtl-container.indigo.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.indigo.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.indigo.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.indigo.day .mat-tree-node:hover .sidenav-img svg{fill:#3f51b5}.rtl-container.indigo.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.indigo.day .mat-nested-tree-node .sidenav-img,.rtl-container.indigo.day .mat-tree-node .sidenav-img,.rtl-container.indigo.day .page-title-container .page-title-img,.rtl-container.indigo.day svg.top-icon-small{fill:#000000de}.rtl-container.indigo.day .mat-progress-bar-fill:after{background-color:#1a237e}.rtl-container.indigo.day .modal-qr-code-container{background:#0000001f}.rtl-container.indigo.day .mat-tab-label,.rtl-container.indigo.day .mat-tab-link{color:#0000008a}.rtl-container.indigo.day .mat-card,.rtl-container.indigo.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid #0000001f}.rtl-container.indigo.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.indigo.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.indigo.day .dashboard-info-title{color:#3f51b5}.rtl-container.indigo.day .dashboard-info-value{color:#0000008a}.rtl-container.indigo.day .color-primary{color:#3f51b5!important}.rtl-container.indigo.day .dot-primary{background-color:#3f51b5!important}.rtl-container.indigo.day .dot-primary-lighter{background-color:#9fa8da!important}.rtl-container.indigo.day .mat-expansion-panel.flat-expansion-panel{border:1px solid #0000001f}.rtl-container.indigo.day .mat-tooltip{font-size:120%}.rtl-container.indigo.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.indigo.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.indigo.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.indigo.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.indigo.day svg .fill-color-1{fill:#fff}.rtl-container.indigo.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.indigo.day svg .fill-color-3,.rtl-container.indigo.day svg .fill-color-4,.rtl-container.indigo.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.indigo.day svg .fill-color-6{fill:#fff}.rtl-container.indigo.day svg .fill-color-7,.rtl-container.indigo.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.indigo.day svg .fill-color-9{fill:#fff}.rtl-container.indigo.day svg .fill-color-10,.rtl-container.indigo.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.indigo.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.indigo.day svg .fill-color-13,.rtl-container.indigo.day svg .fill-color-14,.rtl-container.indigo.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.indigo.day svg .fill-color-16,.rtl-container.indigo.day svg .fill-color-17{fill:#404040}.rtl-container.indigo.day svg .fill-color-18{fill:#000}.rtl-container.indigo.day svg .fill-color-19,.rtl-container.indigo.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.indigo.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.indigo.day svg .fill-color-22,.rtl-container.indigo.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.indigo.day svg .fill-color-24{fill:#000}.rtl-container.indigo.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.indigo.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.indigo.day svg .fill-color-27{fill:#000}.rtl-container.indigo.day svg .fill-color-28{fill:#313131}.rtl-container.indigo.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.indigo.day svg .fill-color-30{fill:#fff}.rtl-container.indigo.day svg .fill-color-31{fill:#3f51b5}.rtl-container.indigo.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.indigo.day svg .fill-color-primary{fill:#3f51b5}.rtl-container.indigo.day svg .fill-color-primary-lighter{fill:#9fa8da}.rtl-container.indigo.day svg .fill-color-primary-darker{fill:#3f51b5}.rtl-container.indigo.day .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.indigo.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.indigo.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.indigo.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.indigo.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.indigo.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.indigo.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#3f51b5}.rtl-container.indigo.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.indigo.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#1a237e}.rtl-container.indigo.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.indigo.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#9fa8da}.rtl-container.indigo.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.indigo.day .mat-progress-bar-buffer{background-color:#c5cae9}.rtl-container.indigo.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.indigo.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.indigo.day .foreground.mat-progress-spinner circle,.rtl-container.indigo.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.indigo.day .mat-toolbar-row,.rtl-container.indigo.day .mat-toolbar-single-row{height:5rem}.rtl-container.indigo.day .lnd-info{border-bottom:1px solid #0000001f}.rtl-container.indigo.day a{color:#3f51b5}.rtl-container.indigo.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.indigo.day .h-active-link{border-bottom:2px solid #fff}.rtl-container.indigo.day .mat-icon-36{color:#0000008a}.rtl-container.indigo.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.indigo.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.indigo.day .genseed-message{width:10%;color:#3f51b5}.rtl-container.indigo.day .material-icons.primary{color:#3f51b5}.rtl-container.indigo.day .material-icons.accent{color:#424242}.rtl-container.indigo.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.indigo.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.indigo.day .row-disabled{background-color:gray}.rtl-container.indigo.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.indigo.day .mat-menu-panel{min-width:6.4rem}.rtl-container.indigo.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.indigo.day .horizontal-button:hover{background:#9fa8da;color:#424242}.rtl-container.indigo.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#3f51b5}.rtl-container.indigo.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.indigo.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.indigo.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.indigo.day .mat-cell,.rtl-container.indigo.day .mat-footer-cell,.rtl-container.indigo.day .mat-header-cell{border-bottom:1px solid #0000001f}.rtl-container.indigo.day table.mat-table{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.indigo.day table.mat-table thead tr th{color:#000}.rtl-container.indigo.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.indigo.day .bordered-box{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.indigo.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.indigo.day .mat-expansion-panel{border:1px solid #0000001f}.rtl-container.indigo.day .more-button{color:#00000061}.rtl-container.indigo.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.indigo.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.indigo.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.indigo.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.indigo.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.indigo.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.indigo.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.indigo.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.indigo.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.indigo.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.indigo.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.indigo.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.indigo.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.indigo.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.indigo.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.indigo.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.indigo.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.indigo.day .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#9fa8da!important}.rtl-container.indigo.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#3949ab!important}.rtl-container.indigo.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.indigo.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.indigo.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.indigo.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.indigo.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid #0000008a}.rtl-container.indigo.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.indigo.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.indigo.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.indigo.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.indigo.day .color-warn{color:#b00020}.rtl-container.indigo.day .fill-warn{fill:#b00020}.rtl-container.indigo.day .alert{border:1px solid #0000008a;color:#0000008a;background-color:#0000000a}.rtl-container.indigo.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.indigo.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.indigo.day .alert.alert-info a{color:#004085}.rtl-container.indigo.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.indigo.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.indigo.day .alert.alert-warn a{color:#856404}.rtl-container.indigo.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.indigo.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.indigo.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.indigo.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.indigo.day .help-expansion .mat-expansion-panel-header,.rtl-container.indigo.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.indigo.day .help-expansion .mat-expansion-indicator:after,.rtl-container.indigo.day .help-expansion .mat-expansion-panel-content,.rtl-container.indigo.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.indigo.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.indigo.day .failed-status{color:#b00020}.rtl-container.indigo.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.indigo.day .svg-fill-primary{fill:#3f51b5}.rtl-container.indigo.day .svg-fill-primary-lighter{fill:#9fa8da}.rtl-container.indigo.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.indigo.day ngx-charts-bar-vertical-2d text,.rtl-container.indigo.day ngx-charts-bar-vertical text{fill:#000000de}.rtl-container.indigo.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.indigo.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.indigo.day .mat-paginator-container{padding:0}.rtl-container.indigo.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-option{color:#fff}.rtl-container.indigo.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.night .mat-option:focus:not(.mat-option-disabled),.rtl-container.indigo.night .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.indigo.night .mat-option.mat-active{background:#0000000a;color:#fff}.rtl-container.indigo.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#3f51b5}.rtl-container.indigo.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.indigo.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.indigo.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.indigo.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.indigo.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.indigo.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#3f51b5}.rtl-container.indigo.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.indigo.night .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.indigo.night .mat-pseudo-checkbox-checked,.rtl-container.indigo.night .mat-pseudo-checkbox-indeterminate{background:#eee}.rtl-container.indigo.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.indigo.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.indigo.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.indigo.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.indigo.night.mat-app-background,.rtl-container.indigo.night .mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.indigo.night .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.indigo.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.indigo.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.indigo.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.indigo.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.indigo.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.indigo.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.indigo.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.indigo.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.indigo.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.indigo.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.indigo.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.indigo.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.indigo.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.indigo.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.indigo.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.indigo.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.indigo.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.indigo.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.indigo.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.indigo.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.indigo.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.indigo.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.indigo.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.indigo.night .mat-badge-content{color:#fff;background:#3f51b5}.cdk-high-contrast-active .rtl-container.indigo.night .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.indigo.night .mat-badge-accent .mat-badge-content{background:#eee;color:#000}.rtl-container.indigo.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.indigo.night .mat-badge{position:relative}.rtl-container.indigo.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.indigo.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.indigo.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.indigo.night .mat-badge-content._mat-animation-noopable,.rtl-container.indigo.night .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.indigo.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.indigo.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.indigo.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.indigo.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.indigo.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.indigo.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.indigo.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.indigo.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.indigo.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.indigo.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.indigo.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.indigo.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.indigo.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.indigo.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.indigo.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.indigo.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.indigo.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.indigo.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.indigo.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.indigo.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.indigo.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.indigo.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.indigo.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.indigo.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.indigo.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.indigo.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.indigo.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.indigo.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.indigo.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.indigo.night .mat-button,.rtl-container.indigo.night .mat-icon-button,.rtl-container.indigo.night .mat-stroked-button{color:inherit;background:#0000}.rtl-container.indigo.night .mat-button.mat-primary,.rtl-container.indigo.night .mat-icon-button.mat-primary,.rtl-container.indigo.night .mat-stroked-button.mat-primary{color:#3f51b5}.rtl-container.indigo.night .mat-button.mat-accent,.rtl-container.indigo.night .mat-icon-button.mat-accent,.rtl-container.indigo.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.indigo.night .mat-button.mat-warn,.rtl-container.indigo.night .mat-icon-button.mat-warn,.rtl-container.indigo.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.indigo.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-stroked-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.indigo.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.indigo.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.indigo.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#3f51b5}.rtl-container.indigo.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.indigo.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.indigo.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.indigo.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.indigo.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.indigo.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.indigo.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.indigo.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.indigo.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.indigo.night .mat-button .mat-ripple-element,.rtl-container.indigo.night .mat-icon-button .mat-ripple-element,.rtl-container.indigo.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.indigo.night .mat-button-focus-overlay{background:#fff}.rtl-container.indigo.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.indigo.night .mat-fab,.rtl-container.indigo.night .mat-flat-button,.rtl-container.indigo.night .mat-mini-fab,.rtl-container.indigo.night .mat-raised-button{color:#fff;background-color:#363636}.rtl-container.indigo.night .mat-fab.mat-primary,.rtl-container.indigo.night .mat-flat-button.mat-primary,.rtl-container.indigo.night .mat-mini-fab.mat-primary,.rtl-container.indigo.night .mat-raised-button.mat-primary{color:#fff}.rtl-container.indigo.night .mat-fab.mat-accent,.rtl-container.indigo.night .mat-flat-button.mat-accent,.rtl-container.indigo.night .mat-mini-fab.mat-accent,.rtl-container.indigo.night .mat-raised-button.mat-accent{color:#000}.rtl-container.indigo.night .mat-fab.mat-warn,.rtl-container.indigo.night .mat-flat-button.mat-warn,.rtl-container.indigo.night .mat-mini-fab.mat-warn,.rtl-container.indigo.night .mat-raised-button.mat-warn{color:#fff}.rtl-container.indigo.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.indigo.night .mat-fab.mat-primary,.rtl-container.indigo.night .mat-flat-button.mat-primary,.rtl-container.indigo.night .mat-mini-fab.mat-primary,.rtl-container.indigo.night .mat-raised-button.mat-primary{background-color:#3f51b5}.rtl-container.indigo.night .mat-fab.mat-accent,.rtl-container.indigo.night .mat-flat-button.mat-accent,.rtl-container.indigo.night .mat-mini-fab.mat-accent,.rtl-container.indigo.night .mat-raised-button.mat-accent{background-color:#eee}.rtl-container.indigo.night .mat-fab.mat-warn,.rtl-container.indigo.night .mat-flat-button.mat-warn,.rtl-container.indigo.night .mat-mini-fab.mat-warn,.rtl-container.indigo.night .mat-raised-button.mat-warn{background-color:#ff343b}.rtl-container.indigo.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-warn.mat-button-disabled{background-color:#404040}.rtl-container.indigo.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.indigo.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.indigo.night .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.indigo.night .mat-raised-button.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.indigo.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.indigo.night .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.indigo.night .mat-raised-button.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.indigo.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.indigo.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.indigo.night .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.indigo.night .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.indigo.night .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.indigo.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.indigo.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.indigo.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.indigo.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.indigo.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.indigo.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.night .mat-button-toggle-group,.rtl-container.indigo.night .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.night .mat-button-toggle-group-appearance-standard,.rtl-container.indigo.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.indigo.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.indigo.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #ffffff4d}.rtl-container.indigo.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.indigo.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #ffffff4d}.rtl-container.indigo.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.indigo.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.indigo.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.indigo.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.indigo.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.indigo.night .mat-button-toggle-group-appearance-standard,.rtl-container.indigo.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #ffffff4d}.rtl-container.indigo.night .mat-card{background:#202020;color:#fff}.rtl-container.indigo.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.indigo.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.indigo.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.indigo.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.indigo.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.indigo.night .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.indigo.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#3f51b5}.rtl-container.indigo.night .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.indigo.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.indigo.night .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.indigo.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.indigo.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.indigo.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.indigo.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.indigo.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.indigo.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.indigo.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#3f51b5}.rtl-container.indigo.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.indigo.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eee}.rtl-container.indigo.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.indigo.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.indigo.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.indigo.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.indigo.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip:after{background:#fff}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.indigo.night .mat-table{background:#202020}.rtl-container.indigo.night .mat-table-sticky,.rtl-container.indigo.night .mat-table tbody,.rtl-container.indigo.night .mat-table tfoot,.rtl-container.indigo.night .mat-table thead,.rtl-container.indigo.night [mat-footer-row],.rtl-container.indigo.night [mat-header-row],.rtl-container.indigo.night [mat-row],.rtl-container.indigo.night mat-footer-row,.rtl-container.indigo.night mat-header-row,.rtl-container.indigo.night mat-row{background:inherit}.rtl-container.indigo.night mat-footer-row,.rtl-container.indigo.night mat-header-row,.rtl-container.indigo.night mat-row,.rtl-container.indigo.night td.mat-cell,.rtl-container.indigo.night td.mat-footer-cell,.rtl-container.indigo.night th.mat-header-cell{border-bottom-color:#ffffff4d}.rtl-container.indigo.night .mat-cell,.rtl-container.indigo.night .mat-footer-cell{color:#fff}.rtl-container.indigo.night .mat-calendar-arrow{border-top-color:#fff}.rtl-container.indigo.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.indigo.night .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.indigo.night .mat-datepicker-toggle{color:#fff}.rtl-container.indigo.night .mat-calendar-table-header-divider:after{background:#ffffff4d}.rtl-container.indigo.night .mat-calendar-body-cell-content,.rtl-container.indigo.night .mat-date-range-input-separator{color:#fff;border-color:#0000}.rtl-container.indigo.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.indigo.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.indigo.night .mat-calendar-body-in-range:before{background:#3f51b533}.rtl-container.indigo.night .mat-calendar-body-comparison-identical,.rtl-container.indigo.night .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.indigo.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#3f51b533 50%,#f9ab0033 0)}.rtl-container.indigo.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#3f51b533 50%,#f9ab0033 0)}.rtl-container.indigo.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.indigo.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.indigo.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.night .mat-calendar-body-selected{background-color:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#3f51b566}.rtl-container.indigo.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}.rtl-container.indigo.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#202020;color:#fff}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#eee3}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#eee3 50%,#f9ab0033 0)}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#eee3 50%,#f9ab0033 0)}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#ff343b33}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}.rtl-container.indigo.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.indigo.night .mat-datepicker-toggle-active{color:#3f51b5}.rtl-container.indigo.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.indigo.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.indigo.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.indigo.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.indigo.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.indigo.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.indigo.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.indigo.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.indigo.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.indigo.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.indigo.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.indigo.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.indigo.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.indigo.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.indigo.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.indigo.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-label{color:#3f51b5}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.indigo.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.indigo.night .mat-form-field-ripple{background-color:#fff}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#3f51b5}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.indigo.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#3f51b5}.rtl-container.indigo.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.indigo.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.indigo.night .mat-error{color:#ff343b}.rtl-container.indigo.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.indigo.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.indigo.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.indigo.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.indigo.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.indigo.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.indigo.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.indigo.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.indigo.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.indigo.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#3f51b5}.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.indigo.night .mat-icon.mat-primary{color:#3f51b5}.rtl-container.indigo.night .mat-icon.mat-accent{color:#eee}.rtl-container.indigo.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.indigo.night .mat-input-element{caret-color:#3f51b5}.rtl-container.indigo.night .mat-input-element option{color:#000000de}.rtl-container.indigo.night .mat-input-element option:disabled{color:#00000061}.rtl-container.indigo.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.indigo.night .mat-form-field-invalid .mat-input-element,.rtl-container.indigo.night .mat-form-field.mat-warn .mat-input-element{caret-color:#ff343b}.rtl-container.indigo.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.indigo.night .mat-list-base .mat-list-item,.rtl-container.indigo.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.indigo.night .mat-list-item-disabled{background-color:#444}.rtl-container.indigo.night .mat-action-list .mat-list-item:focus,.rtl-container.indigo.night .mat-action-list .mat-list-item:hover,.rtl-container.indigo.night .mat-list-option:focus,.rtl-container.indigo.night .mat-list-option:hover,.rtl-container.indigo.night .mat-nav-list .mat-list-item:focus,.rtl-container.indigo.night .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.indigo.night .mat-list-single-selected-option,.rtl-container.indigo.night .mat-list-single-selected-option:focus,.rtl-container.indigo.night .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.indigo.night .mat-menu-panel{background:#202020}.rtl-container.indigo.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.night .mat-menu-item{background:#0000;color:#fff}.rtl-container.indigo.night .mat-menu-item-submenu-trigger:after,.rtl-container.indigo.night .mat-menu-item .mat-icon-no-color{color:#fff}.rtl-container.indigo.night .mat-menu-item-highlighted:not([disabled]),.rtl-container.indigo.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.indigo.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.indigo.night .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.indigo.night .mat-paginator{background:#202020}.rtl-container.indigo.night .mat-paginator-decrement,.rtl-container.indigo.night .mat-paginator-increment{border-top:2px solid #fff;border-right:2px solid #fff}.rtl-container.indigo.night .mat-paginator-first,.rtl-container.indigo.night .mat-paginator-last{border-top:2px solid #fff}.rtl-container.indigo.night .mat-progress-bar-background{fill:#1a1e37}.rtl-container.indigo.night .mat-progress-bar-buffer{background-color:#1a1e37}.rtl-container.indigo.night .mat-progress-bar-fill:after{background-color:#3f51b5}.rtl-container.indigo.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.indigo.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.indigo.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.indigo.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.indigo.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.indigo.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.indigo.night .mat-progress-spinner circle,.rtl-container.indigo.night .mat-spinner circle{stroke:#3f51b5}.rtl-container.indigo.night .mat-progress-spinner.mat-accent circle,.rtl-container.indigo.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.indigo.night .mat-progress-spinner.mat-warn circle,.rtl-container.indigo.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.indigo.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#3f51b5}.rtl-container.indigo.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.indigo.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#3f51b5}.rtl-container.indigo.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.indigo.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.indigo.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.indigo.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.indigo.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.indigo.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.indigo.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.indigo.night .mat-select-value{color:#fff}.rtl-container.indigo.night .mat-select-panel{background:#202020}.rtl-container.indigo.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.indigo.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#3f51b5}.rtl-container.indigo.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.indigo.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.indigo.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.indigo.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.indigo.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.indigo.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.indigo.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.indigo.night .mat-drawer-side{border-right:1px solid #ffffff4d}.rtl-container.indigo.night .mat-drawer-side.mat-drawer-end,.rtl-container.indigo.night [dir=rtl] .mat-drawer-side{border-left:1px solid #ffffff4d;border-right:none}.rtl-container.indigo.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.indigo.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.indigo.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.indigo.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.indigo.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.indigo.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#3f51b5}.rtl-container.indigo.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#3f51b58a}.rtl-container.indigo.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#3f51b5}.rtl-container.indigo.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.indigo.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.indigo.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.indigo.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.indigo.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#bdbdbd}.rtl-container.indigo.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.indigo.night .mat-primary .mat-slider-thumb,.rtl-container.indigo.night .mat-primary .mat-slider-thumb-label,.rtl-container.indigo.night .mat-primary .mat-slider-track-fill{background-color:#3f51b5}.rtl-container.indigo.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.night .mat-primary .mat-slider-focus-ring{background-color:#3f51b533}.rtl-container.indigo.night .mat-accent .mat-slider-thumb,.rtl-container.indigo.night .mat-accent .mat-slider-thumb-label,.rtl-container.indigo.night .mat-accent .mat-slider-track-fill{background-color:#eee}.rtl-container.indigo.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.indigo.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.indigo.night .mat-warn .mat-slider-thumb,.rtl-container.indigo.night .mat-warn .mat-slider-thumb-label,.rtl-container.indigo.night .mat-warn .mat-slider-track-fill{background-color:#ff343b}.rtl-container.indigo.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.indigo.night .cdk-focused .mat-slider-track-background,.rtl-container.indigo.night .mat-slider:hover .mat-slider-track-background{background-color:#fff9}.rtl-container.indigo.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.indigo.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.indigo.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.indigo.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.indigo.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.indigo.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:initial}.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#fff9}.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.indigo.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.indigo.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.indigo.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.indigo.night .mat-step-header.cdk-keyboard-focused,.rtl-container.indigo.night .mat-step-header.cdk-program-focused,.rtl-container.indigo.night .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.indigo.night .mat-step-header:hover{background:none}}.rtl-container.indigo.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.indigo.night .mat-step-header .mat-step-icon-selected,.rtl-container.indigo.night .mat-step-header .mat-step-icon-state-done,.rtl-container.indigo.night .mat-step-header .mat-step-icon-state-edit{background-color:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.indigo.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.indigo.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.indigo.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.indigo.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.indigo.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.indigo.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.indigo.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.indigo.night .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#ff343b}.rtl-container.indigo.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.indigo.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.indigo.night .mat-stepper-horizontal,.rtl-container.indigo.night .mat-stepper-vertical{background-color:#202020}.rtl-container.indigo.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.indigo.night .mat-horizontal-stepper-header:after,.rtl-container.indigo.night .mat-horizontal-stepper-header:before,.rtl-container.indigo.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.indigo.night .mat-tab-header,.rtl-container.indigo.night .mat-tab-nav-bar{border-bottom:1px solid #ffffff4d}.rtl-container.indigo.night .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.indigo.night .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #ffffff4d;border-bottom:none}.rtl-container.indigo.night .mat-tab-label,.rtl-container.indigo.night .mat-tab-link{color:#fff}.rtl-container.indigo.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.indigo.night .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.indigo.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9fa8da4d}.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#3f51b5}.rtl-container.indigo.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.indigo.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.indigo.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9fa8da4d}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#3f51b5}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.indigo.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#eee}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#000}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#0006}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#0000001f}.rtl-container.indigo.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#ff343b}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.indigo.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.indigo.night .mat-toolbar.mat-primary{background:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-toolbar.mat-accent{background:#eee;color:#000}.rtl-container.indigo.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.indigo.night .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.indigo.night .mat-toolbar .mat-form-field-ripple,.rtl-container.indigo.night .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.indigo.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.indigo.night .mat-toolbar .mat-form-field-label,.rtl-container.indigo.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.indigo.night .mat-toolbar .mat-select-arrow,.rtl-container.indigo.night .mat-toolbar .mat-select-value{color:inherit}.rtl-container.indigo.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.indigo.night .mat-tree{background:#202020}.rtl-container.indigo.night .mat-nested-tree-node,.rtl-container.indigo.night .mat-tree-node{color:#fff}.rtl-container.indigo.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.indigo.night .mat-simple-snackbar-action{color:inherit}.rtl-container.indigo.night .mat-primary{color:#536dfe}.rtl-container.indigo.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.indigo.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.indigo.night .bg-primary{background-color:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-tab-label.mat-tab-label-active{color:#536dfe}.rtl-container.indigo.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#536dfe}.rtl-container.indigo.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.indigo.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.indigo.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.indigo.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#536dfe}.rtl-container.indigo.night .cc-data-block .cc-data-title{color:#536dfe}.rtl-container.indigo.night .mat-stroked-button.mat-primary{border-color:#536dfe;color:#536dfe}.rtl-container.indigo.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.indigo.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.indigo.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.indigo.night .active-link,.rtl-container.indigo.night .active-link .fa-icon-small,.rtl-container.indigo.night .mat-select-panel .mat-option.mat-active,.rtl-container.indigo.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#536dfe;font-weight:500;cursor:pointer;fill:#536dfe}.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.indigo.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#536dfe}.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled),.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.indigo.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.indigo.night .mat-nested-tree-node-parent:hover,.rtl-container.indigo.night .mat-select-panel .mat-option:hover,.rtl-container.indigo.night .mat-tree-node:hover{color:#536dfe;cursor:pointer;background:#ffffff0f}.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.indigo.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.indigo.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.indigo.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.indigo.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.indigo.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.indigo.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.indigo.night .mat-tree-node:hover .mat-icon,.rtl-container.indigo.night .mat-tree-node:hover .ng-fa-icon{color:#536dfe}.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.indigo.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.indigo.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.indigo.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.indigo.night .mat-tree-node:hover .sidenav-img svg{fill:#536dfe}.rtl-container.indigo.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.indigo.night .mat-nested-tree-node .sidenav-img,.rtl-container.indigo.night .mat-tree-node .sidenav-img,.rtl-container.indigo.night .page-title-container .page-title-img,.rtl-container.indigo.night svg.top-icon-small{fill:#fff}.rtl-container.indigo.night .selected-color{border-color:#9fa8da}.rtl-container.indigo.night .mat-progress-bar-fill:after{background-color:#3949ab}.rtl-container.indigo.night .chart-legend .legend-label .active .legend-label-text,.rtl-container.indigo.night .chart-legend .legend-label:hover{color:#fff!important}.rtl-container.indigo.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.indigo.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#536dfe}.rtl-container.indigo.night .mat-select-panel{background-color:#262626}.rtl-container.indigo.night .mat-tree{background:#262626}.rtl-container.indigo.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.indigo.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.indigo.night .dashboard-info-title{color:#536dfe}.rtl-container.indigo.night .dashboard-capacity-header,.rtl-container.indigo.night .dashboard-info-value{color:#fff}.rtl-container.indigo.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.indigo.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.indigo.night .color-primary{color:#536dfe!important}.rtl-container.indigo.night .dot-primary{background-color:#536dfe!important}.rtl-container.indigo.night .dot-primary-lighter{background-color:#3f51b5!important}.rtl-container.indigo.night .mat-stepper-vertical{background-color:#262626}.rtl-container.indigo.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.indigo.night svg .boltz-icon-fill{fill:#fff}.rtl-container.indigo.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .fill-color-0,.rtl-container.indigo.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.indigo.night svg .fill-color-1{fill:#232323}.rtl-container.indigo.night svg .fill-color-2{fill:#222}.rtl-container.indigo.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.indigo.night svg .fill-color-4{fill:#383838}.rtl-container.indigo.night svg .fill-color-5{fill:#555}.rtl-container.indigo.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.indigo.night svg .fill-color-7{fill:#202020}.rtl-container.indigo.night svg .fill-color-8{fill:#242424}.rtl-container.indigo.night svg .fill-color-9{fill:#262626}.rtl-container.indigo.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.indigo.night svg .fill-color-11{fill:#171717}.rtl-container.indigo.night svg .fill-color-12{fill:#ccc}.rtl-container.indigo.night svg .fill-color-13{fill:#adadad}.rtl-container.indigo.night svg .fill-color-14{fill:#ababab}.rtl-container.indigo.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.indigo.night svg .fill-color-16{fill:#707070}.rtl-container.indigo.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.indigo.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.indigo.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.indigo.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.indigo.night svg .fill-color-21{fill:#cacaca}.rtl-container.indigo.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.indigo.night svg .fill-color-23{fill:#777}.rtl-container.indigo.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.indigo.night svg .fill-color-25{fill:#252525}.rtl-container.indigo.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.indigo.night svg .fill-color-27{fill:#000}.rtl-container.indigo.night svg .fill-color-28{fill:#313131}.rtl-container.indigo.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.indigo.night svg .fill-color-30{fill:#fff}.rtl-container.indigo.night svg .fill-color-31{fill:#3f51b5}.rtl-container.indigo.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.indigo.night svg .fill-color-primary{fill:#3f51b5}.rtl-container.indigo.night svg .fill-color-primary-lighter{fill:#9fa8da}.rtl-container.indigo.night svg .fill-color-primary-darker{fill:#536dfe}.rtl-container.indigo.night .mat-select-arrow,.rtl-container.indigo.night .mat-select-value{color:#fff}.rtl-container.indigo.night .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.indigo.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.indigo.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.indigo.night .mat-slide-toggle-bar,.rtl-container.indigo.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.indigo.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.indigo.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.indigo.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.indigo.night .mat-button.mat-primary,.rtl-container.indigo.night .mat-icon-button.mat-primary,.rtl-container.indigo.night .mat-stroked-button.mat-primary{color:#536dfe}.rtl-container.indigo.night tr.alert.alert-warn .mat-cell,.rtl-container.indigo.night tr.alert.alert-warn .mat-footer-cell,.rtl-container.indigo.night tr.alert.alert-warn .mat-header-cell{color:#856404}.rtl-container.indigo.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.indigo.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#536dfe}.rtl-container.indigo.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.indigo.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#283593}.rtl-container.indigo.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.indigo.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#536dfe}.rtl-container.indigo.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.indigo.night .mat-progress-bar-buffer{background-color:#c5cae9}.rtl-container.indigo.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.indigo.night .foreground-secondary-text{color: !important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.indigo.night .foreground.mat-progress-spinner circle,.rtl-container.indigo.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.indigo.night .mat-toolbar-row,.rtl-container.indigo.night .mat-toolbar-single-row{height:5rem}.rtl-container.indigo.night .lnd-info{border-bottom:1px solid #ffffff4d}.rtl-container.indigo.night a{color:#3f51b5}.rtl-container.indigo.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.indigo.night .h-active-link{border-bottom:2px solid #fff}.rtl-container.indigo.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.indigo.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.indigo.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.indigo.night .genseed-message{width:10%;color:#3f51b5}.rtl-container.indigo.night .material-icons.primary{color:#3f51b5}.rtl-container.indigo.night .material-icons.accent{color:#eee}.rtl-container.indigo.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.indigo.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.indigo.night .row-disabled{background-color:gray}.rtl-container.indigo.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.indigo.night .mat-menu-panel{min-width:6.4rem}.rtl-container.indigo.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.indigo.night .horizontal-button:hover{background:#9fa8da;color:#eee}.rtl-container.indigo.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#3f51b5}.rtl-container.indigo.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.indigo.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.indigo.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.indigo.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.indigo.night .mat-cell,.rtl-container.indigo.night .mat-footer-cell,.rtl-container.indigo.night .mat-header-cell{border-bottom:1px solid #ffffff4d}.rtl-container.indigo.night table.mat-table{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.indigo.night table.mat-table thead tr th{color:#fff}.rtl-container.indigo.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.indigo.night .bordered-box{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.indigo.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.indigo.night .mat-expansion-panel{border:1px solid #ffffff4d}.rtl-container.indigo.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.indigo.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.indigo.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.indigo.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.indigo.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.indigo.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.indigo.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.indigo.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.indigo.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.indigo.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.indigo.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.indigo.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.indigo.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.indigo.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.indigo.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.indigo.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.indigo.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.indigo.night .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#9fa8da!important}.rtl-container.indigo.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#3949ab!important}.rtl-container.indigo.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.indigo.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.indigo.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.indigo.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.indigo.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.indigo.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.indigo.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.indigo.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.indigo.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.indigo.night .color-warn{color:#ff343b}.rtl-container.indigo.night .fill-warn{fill:#ff343b}.rtl-container.indigo.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.indigo.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.indigo.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.indigo.night .alert.alert-info a{color:#004085}.rtl-container.indigo.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.indigo.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.indigo.night .alert.alert-warn a{color:#856404}.rtl-container.indigo.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.indigo.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.indigo.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.indigo.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.indigo.night .help-expansion .mat-expansion-panel-header,.rtl-container.indigo.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.indigo.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.indigo.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.indigo.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.indigo.night .failed-status{color:#ff343b}.rtl-container.indigo.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.indigo.night .svg-fill-primary{fill:#3f51b5}.rtl-container.indigo.night .svg-fill-primary-lighter{fill:#9fa8da}.rtl-container.indigo.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.indigo.night ngx-charts-bar-vertical-2d text,.rtl-container.indigo.night ngx-charts-bar-vertical text{fill:#fff}.rtl-container.indigo.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.indigo.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.indigo.night .mat-paginator-container{padding:0}.rtl-container.green.small.small .mat-header-cell{font-weight:700}.rtl-container.green.small.small .mr-4{margin-right:1rem!important}.rtl-container.green.small.small .mat-menu-item,.rtl-container.green.small.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.green.small.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.green.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.green.small.small .fa-icon-small,.rtl-container.green.small.small .genseed-message,.rtl-container.green.small.small .top-icon-small,.rtl-container.green.small.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.green.small.small .page-sub-title-container,.rtl-container.green.small.small .page-title-container{font-size:1.32rem}.rtl-container.green.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.green.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.green.small.small .sidenav-img svg,.rtl-container.green.small.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.green.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.green.small.small .material-icons,.rtl-container.green.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.green.small.small .mat-expansion-panel-header,.rtl-container.green.small.small .mat-list .mat-list-item,.rtl-container.green.small.small .mat-menu-item,.rtl-container.green.small.small .mat-nav-list .mat-list-item,.rtl-container.green.small.small .mat-option,.rtl-container.green.small.small .mat-select,.rtl-container.green.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.green.small.small .logo{font-size:2.4rem}.rtl-container.green.small.small .font-60-percent{font-size:.72rem}.rtl-container.green.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.green.small.small .icon-large{font-size:6rem}.rtl-container.green.small.small .icon-small{font-size:1.8rem!important}.rtl-container.green.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.green.small.small .size-triple{font-size:3.6rem}.rtl-container.green.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.green.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.small.medium .mat-header-cell{font-weight:700}.rtl-container.green.small.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.green.small.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.green.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.green.small.medium .genseed-message,.rtl-container.green.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.green.small.medium .page-sub-title-container,.rtl-container.green.small.medium .page-title-container{font-size:1.54rem}.rtl-container.green.small.medium .fa-icon-small,.rtl-container.green.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.green.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.green.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.green.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.green.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.green.small.medium .sidenav-img svg,.rtl-container.green.small.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.green.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.green.small.medium .material-icons{font-size:2.8rem}.rtl-container.green.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.green.small.medium .mat-expansion-panel-header,.rtl-container.green.small.medium .mat-list .mat-list-item,.rtl-container.green.small.medium .mat-menu-item,.rtl-container.green.small.medium .mat-nav-list .mat-list-item,.rtl-container.green.small.medium .mat-option,.rtl-container.green.small.medium .mat-select,.rtl-container.green.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.green.small.medium .logo{font-size:2.8rem}.rtl-container.green.small.medium .font-60-percent{font-size:.84rem}.rtl-container.green.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.green.small.medium .icon-large{font-size:7rem}.rtl-container.green.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.green.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.green.small.medium .size-triple{font-size:4.2rem}.rtl-container.green.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.green.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.small.large .mat-header-cell{font-weight:800}.rtl-container.green.small.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.green.small.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.green.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.green.small.large .genseed-message,.rtl-container.green.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.green.small.large .page-sub-title-container,.rtl-container.green.small.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.green.small.large .fa-icon-small,.rtl-container.green.small.large .modal-info-header,.rtl-container.green.small.large .top-icon-small{font-size:1.92rem}.rtl-container.green.small.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.green.small.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.green.small.large .sidenav-img svg,.rtl-container.green.small.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.green.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.green.small.large .material-icons{font-size:4rem}.rtl-container.green.small.large .mat-expansion-panel-header,.rtl-container.green.small.large .mat-list .mat-list-item,.rtl-container.green.small.large .mat-menu-item,.rtl-container.green.small.large .mat-nav-list .mat-list-item,.rtl-container.green.small.large .mat-option,.rtl-container.green.small.large .mat-select,.rtl-container.green.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.green.small.large .logo{font-size:3.2rem}.rtl-container.green.small.large .font-60-percent{font-size:.96rem}.rtl-container.green.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.green.small.large .icon-large{font-size:8rem}.rtl-container.green.small.large .icon-small{font-size:2.4rem!important}.rtl-container.green.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.green.small.large .size-triple{font-size:4.8rem}.rtl-container.green.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.green.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.small .mat-icon.material-icons:focus{outline:none}.rtl-container.green.small .mat-flat-button.mat-primary:focus,.rtl-container.green.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.green.medium.small .mat-header-cell{font-weight:700}.rtl-container.green.medium.small .mr-4{margin-right:1rem!important}.rtl-container.green.medium.small .mat-menu-item,.rtl-container.green.medium.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.green.medium.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.green.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.green.medium.small .fa-icon-small,.rtl-container.green.medium.small .genseed-message,.rtl-container.green.medium.small .top-icon-small,.rtl-container.green.medium.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.green.medium.small .page-sub-title-container,.rtl-container.green.medium.small .page-title-container{font-size:1.32rem}.rtl-container.green.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.green.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.green.medium.small .sidenav-img svg,.rtl-container.green.medium.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.green.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.green.medium.small .material-icons,.rtl-container.green.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.green.medium.small .mat-expansion-panel-header,.rtl-container.green.medium.small .mat-list .mat-list-item,.rtl-container.green.medium.small .mat-menu-item,.rtl-container.green.medium.small .mat-nav-list .mat-list-item,.rtl-container.green.medium.small .mat-option,.rtl-container.green.medium.small .mat-select,.rtl-container.green.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.green.medium.small .logo{font-size:2.4rem}.rtl-container.green.medium.small .font-60-percent{font-size:.72rem}.rtl-container.green.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.green.medium.small .icon-large{font-size:6rem}.rtl-container.green.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.green.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.green.medium.small .size-triple{font-size:3.6rem}.rtl-container.green.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.green.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.medium.medium .mat-header-cell{font-weight:700}.rtl-container.green.medium.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.green.medium.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.green.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.green.medium.medium .genseed-message,.rtl-container.green.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.green.medium.medium .page-sub-title-container,.rtl-container.green.medium.medium .page-title-container{font-size:1.54rem}.rtl-container.green.medium.medium .fa-icon-small,.rtl-container.green.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.green.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.green.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.green.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.green.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.green.medium.medium .sidenav-img svg,.rtl-container.green.medium.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.green.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.green.medium.medium .material-icons{font-size:2.8rem}.rtl-container.green.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.green.medium.medium .mat-expansion-panel-header,.rtl-container.green.medium.medium .mat-list .mat-list-item,.rtl-container.green.medium.medium .mat-menu-item,.rtl-container.green.medium.medium .mat-nav-list .mat-list-item,.rtl-container.green.medium.medium .mat-option,.rtl-container.green.medium.medium .mat-select,.rtl-container.green.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.green.medium.medium .logo{font-size:2.8rem}.rtl-container.green.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.green.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.green.medium.medium .icon-large{font-size:7rem}.rtl-container.green.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.green.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.green.medium.medium .size-triple{font-size:4.2rem}.rtl-container.green.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.green.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.medium.large .mat-header-cell{font-weight:800}.rtl-container.green.medium.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.green.medium.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.green.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.green.medium.large .genseed-message,.rtl-container.green.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.green.medium.large .page-sub-title-container,.rtl-container.green.medium.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.green.medium.large .fa-icon-small,.rtl-container.green.medium.large .modal-info-header,.rtl-container.green.medium.large .top-icon-small{font-size:1.92rem}.rtl-container.green.medium.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.green.medium.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.green.medium.large .sidenav-img svg,.rtl-container.green.medium.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.green.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.green.medium.large .material-icons{font-size:4rem}.rtl-container.green.medium.large .mat-expansion-panel-header,.rtl-container.green.medium.large .mat-list .mat-list-item,.rtl-container.green.medium.large .mat-menu-item,.rtl-container.green.medium.large .mat-nav-list .mat-list-item,.rtl-container.green.medium.large .mat-option,.rtl-container.green.medium.large .mat-select,.rtl-container.green.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.green.medium.large .logo{font-size:3.2rem}.rtl-container.green.medium.large .font-60-percent{font-size:.96rem}.rtl-container.green.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.green.medium.large .icon-large{font-size:8rem}.rtl-container.green.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.green.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.green.medium.large .size-triple{font-size:4.8rem}.rtl-container.green.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.green.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.green.medium .mat-flat-button.mat-primary:focus,.rtl-container.green.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.green.large.small .mat-header-cell{font-weight:700}.rtl-container.green.large.small .mr-4{margin-right:1rem!important}.rtl-container.green.large.small .mat-menu-item,.rtl-container.green.large.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.green.large.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.green.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.green.large.small .fa-icon-small,.rtl-container.green.large.small .genseed-message,.rtl-container.green.large.small .top-icon-small,.rtl-container.green.large.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.green.large.small .page-sub-title-container,.rtl-container.green.large.small .page-title-container{font-size:1.32rem}.rtl-container.green.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.green.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.green.large.small .sidenav-img svg,.rtl-container.green.large.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.green.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.green.large.small .material-icons,.rtl-container.green.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.green.large.small .mat-expansion-panel-header,.rtl-container.green.large.small .mat-list .mat-list-item,.rtl-container.green.large.small .mat-menu-item,.rtl-container.green.large.small .mat-nav-list .mat-list-item,.rtl-container.green.large.small .mat-option,.rtl-container.green.large.small .mat-select,.rtl-container.green.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.green.large.small .logo{font-size:2.4rem}.rtl-container.green.large.small .font-60-percent{font-size:.72rem}.rtl-container.green.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.green.large.small .icon-large{font-size:6rem}.rtl-container.green.large.small .icon-small{font-size:1.8rem!important}.rtl-container.green.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.green.large.small .size-triple{font-size:3.6rem}.rtl-container.green.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.green.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.large.medium .mat-header-cell{font-weight:700}.rtl-container.green.large.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.green.large.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.green.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.green.large.medium .genseed-message,.rtl-container.green.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.green.large.medium .page-sub-title-container,.rtl-container.green.large.medium .page-title-container{font-size:1.54rem}.rtl-container.green.large.medium .fa-icon-small,.rtl-container.green.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.green.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.green.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.green.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.green.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.green.large.medium .sidenav-img svg,.rtl-container.green.large.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.green.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.green.large.medium .material-icons{font-size:2.8rem}.rtl-container.green.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.green.large.medium .mat-expansion-panel-header,.rtl-container.green.large.medium .mat-list .mat-list-item,.rtl-container.green.large.medium .mat-menu-item,.rtl-container.green.large.medium .mat-nav-list .mat-list-item,.rtl-container.green.large.medium .mat-option,.rtl-container.green.large.medium .mat-select,.rtl-container.green.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.green.large.medium .logo{font-size:2.8rem}.rtl-container.green.large.medium .font-60-percent{font-size:.84rem}.rtl-container.green.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.green.large.medium .icon-large{font-size:7rem}.rtl-container.green.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.green.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.green.large.medium .size-triple{font-size:4.2rem}.rtl-container.green.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.green.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.large.large .mat-header-cell{font-weight:800}.rtl-container.green.large.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.green.large.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.green.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.green.large.large .genseed-message,.rtl-container.green.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.green.large.large .page-sub-title-container,.rtl-container.green.large.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.green.large.large .fa-icon-small,.rtl-container.green.large.large .modal-info-header,.rtl-container.green.large.large .top-icon-small{font-size:1.92rem}.rtl-container.green.large.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.green.large.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.green.large.large .sidenav-img svg,.rtl-container.green.large.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.green.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.green.large.large .material-icons{font-size:4rem}.rtl-container.green.large.large .mat-expansion-panel-header,.rtl-container.green.large.large .mat-list .mat-list-item,.rtl-container.green.large.large .mat-menu-item,.rtl-container.green.large.large .mat-nav-list .mat-list-item,.rtl-container.green.large.large .mat-option,.rtl-container.green.large.large .mat-select,.rtl-container.green.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.green.large.large .logo{font-size:3.2rem}.rtl-container.green.large.large .font-60-percent{font-size:.96rem}.rtl-container.green.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.green.large.large .icon-large{font-size:8rem}.rtl-container.green.large.large .icon-small{font-size:2.4rem!important}.rtl-container.green.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.green.large.large .size-triple{font-size:4.8rem}.rtl-container.green.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.green.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.large .mat-icon.material-icons:focus{outline:none}.rtl-container.green.large .mat-flat-button.mat-primary:focus,.rtl-container.green.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.green.day .mat-ripple-element{background-color:#0000001a}.rtl-container.green.day .mat-option{color:#000000de}.rtl-container.green.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.day .mat-option:focus:not(.mat-option-disabled),.rtl-container.green.day .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.green.day .mat-option.mat-active{background:#0000000a;color:#000000de}.rtl-container.green.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.green.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#185127}.rtl-container.green.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.green.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.green.day .mat-optgroup-label{color:#0000008a}.rtl-container.green.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.green.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.green.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.green.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.green.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.green.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#185127}.rtl-container.green.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.green.day .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.green.day .mat-pseudo-checkbox-checked,.rtl-container.green.day .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.green.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.green.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.green.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.green.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.green.day.mat-app-background,.rtl-container.green.day .mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.green.day .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.green.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.green.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.green.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.green.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.green.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.green.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.green.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.green.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.green.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.green.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.green.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.green.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.green.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.green.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.green.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.green.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.green.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.green.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.green.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.green.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.green.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.green.day .mat-autocomplete-panel{background:#fff;color:#000000de}.rtl-container.green.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.rtl-container.green.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.green.day .mat-badge-content{color:#fff;background:#185127}.cdk-high-contrast-active .rtl-container.green.day .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.green.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.green.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.green.day .mat-badge{position:relative}.rtl-container.green.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.green.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.green.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.green.day .mat-badge-content._mat-animation-noopable,.rtl-container.green.day .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.green.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.green.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.green.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.green.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.green.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.green.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.green.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.green.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.green.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.green.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.green.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.green.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.green.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.green.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.green.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.green.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.green.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.green.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.green.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.green.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.green.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.green.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.green.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.green.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.green.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.green.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.green.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.green.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.green.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.green.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.green.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.green.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.green.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.green.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.green.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.rtl-container.green.day .mat-button,.rtl-container.green.day .mat-icon-button,.rtl-container.green.day .mat-stroked-button{color:inherit;background:#0000}.rtl-container.green.day .mat-button.mat-primary,.rtl-container.green.day .mat-icon-button.mat-primary,.rtl-container.green.day .mat-stroked-button.mat-primary{color:#185127}.rtl-container.green.day .mat-button.mat-accent,.rtl-container.green.day .mat-icon-button.mat-accent,.rtl-container.green.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.green.day .mat-button.mat-warn,.rtl-container.green.day .mat-icon-button.mat-warn,.rtl-container.green.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.green.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-stroked-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.green.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.green.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.green.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#185127}.rtl-container.green.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.green.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.green.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.green.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.green.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.green.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.green.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.green.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.green.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.green.day .mat-button .mat-ripple-element,.rtl-container.green.day .mat-icon-button .mat-ripple-element,.rtl-container.green.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.green.day .mat-button-focus-overlay{background:#000}.rtl-container.green.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.green.day .mat-fab,.rtl-container.green.day .mat-flat-button,.rtl-container.green.day .mat-mini-fab,.rtl-container.green.day .mat-raised-button{color:#000000de;background-color:#fff}.rtl-container.green.day .mat-fab.mat-accent,.rtl-container.green.day .mat-fab.mat-primary,.rtl-container.green.day .mat-fab.mat-warn,.rtl-container.green.day .mat-flat-button.mat-accent,.rtl-container.green.day .mat-flat-button.mat-primary,.rtl-container.green.day .mat-flat-button.mat-warn,.rtl-container.green.day .mat-mini-fab.mat-accent,.rtl-container.green.day .mat-mini-fab.mat-primary,.rtl-container.green.day .mat-mini-fab.mat-warn,.rtl-container.green.day .mat-raised-button.mat-accent,.rtl-container.green.day .mat-raised-button.mat-primary,.rtl-container.green.day .mat-raised-button.mat-warn{color:#fff}.rtl-container.green.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.green.day .mat-fab.mat-primary,.rtl-container.green.day .mat-flat-button.mat-primary,.rtl-container.green.day .mat-mini-fab.mat-primary,.rtl-container.green.day .mat-raised-button.mat-primary{background-color:#185127}.rtl-container.green.day .mat-fab.mat-accent,.rtl-container.green.day .mat-flat-button.mat-accent,.rtl-container.green.day .mat-mini-fab.mat-accent,.rtl-container.green.day .mat-raised-button.mat-accent{background-color:#424242}.rtl-container.green.day .mat-fab.mat-warn,.rtl-container.green.day .mat-flat-button.mat-warn,.rtl-container.green.day .mat-mini-fab.mat-warn,.rtl-container.green.day .mat-raised-button.mat-warn{background-color:#b00020}.rtl-container.green.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-warn.mat-button-disabled{background-color:#0000001f}.rtl-container.green.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.green.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.green.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.green.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.green.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.green.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.green.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.green.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.green.day .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.green.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.green.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.green.day .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.day .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.green.day .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.green.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.green.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.green.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.green.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.green.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.green.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.day .mat-button-toggle-group,.rtl-container.green.day .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.day .mat-button-toggle-group-appearance-standard,.rtl-container.green.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.green.day .mat-button-toggle{color:#00000061}.rtl-container.green.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.green.day .mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.rtl-container.green.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.green.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #0000001f}.rtl-container.green.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #0000001f}.rtl-container.green.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #0000001f}.rtl-container.green.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.green.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.green.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.green.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.rtl-container.green.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.green.day .mat-button-toggle-group-appearance-standard,.rtl-container.green.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #0000001f}.rtl-container.green.day .mat-card{background:#fff;color:#000000de}.rtl-container.green.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.green.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.day .mat-card-subtitle{color:#0000008a}.rtl-container.green.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.green.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.green.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.green.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.green.day .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.green.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#185127}.rtl-container.green.day .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.green.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.green.day .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.green.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.green.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.green.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.green.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.green.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.green.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.green.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.green.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#185127}.rtl-container.green.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.green.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.green.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.green.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.green.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.green.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.green.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip:after{background:#000}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#185127;color:#fff}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.day .mat-table{background:#fff}.rtl-container.green.day .mat-table-sticky,.rtl-container.green.day .mat-table tbody,.rtl-container.green.day .mat-table tfoot,.rtl-container.green.day .mat-table thead,.rtl-container.green.day [mat-footer-row],.rtl-container.green.day [mat-header-row],.rtl-container.green.day [mat-row],.rtl-container.green.day mat-footer-row,.rtl-container.green.day mat-header-row,.rtl-container.green.day mat-row{background:inherit}.rtl-container.green.day mat-footer-row,.rtl-container.green.day mat-header-row,.rtl-container.green.day mat-row,.rtl-container.green.day td.mat-cell,.rtl-container.green.day td.mat-footer-cell,.rtl-container.green.day th.mat-header-cell{border-bottom-color:#0000001f}.rtl-container.green.day .mat-header-cell{color:#0000008a}.rtl-container.green.day .mat-cell,.rtl-container.green.day .mat-footer-cell{color:#000000de}.rtl-container.green.day .mat-calendar-arrow{border-top-color:#0000008a}.rtl-container.green.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.green.day .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.green.day .mat-datepicker-toggle{color:#0000008a}.rtl-container.green.day .mat-calendar-table-header{color:#00000061}.rtl-container.green.day .mat-calendar-table-header-divider:after{background:#0000001f}.rtl-container.green.day .mat-calendar-body-label{color:#0000008a}.rtl-container.green.day .mat-calendar-body-cell-content,.rtl-container.green.day .mat-date-range-input-separator{color:#000000de;border-color:#0000}.rtl-container.green.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.green.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.green.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.green.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.green.day .mat-calendar-body-in-range:before{background:#18512733}.rtl-container.green.day .mat-calendar-body-comparison-identical,.rtl-container.green.day .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.green.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#18512733 50%,#f9ab0033 0)}.rtl-container.green.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#18512733 50%,#f9ab0033 0)}.rtl-container.green.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.green.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.green.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.day .mat-calendar-body-selected{background-color:#185127;color:#fff}.rtl-container.green.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#18512766}.rtl-container.green.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1851274d}.rtl-container.green.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#fff;color:#000000de}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#42424233}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#42424233 50%,#f9ab0033 0)}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#42424233 50%,#f9ab0033 0)}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#b0002033}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}.rtl-container.green.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.green.day .mat-datepicker-toggle-active{color:#185127}.rtl-container.green.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.green.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.green.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.green.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.rtl-container.green.day .mat-divider{border-top-color:#0000001f}.rtl-container.green.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.green.day .mat-expansion-panel{background:#fff;color:#000000de}.rtl-container.green.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.day .mat-action-row{border-top-color:#0000001f}.rtl-container.green.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.green.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.green.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.green.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.rtl-container.green.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.green.day .mat-expansion-indicator:after,.rtl-container.green.day .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.green.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.green.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.green.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.green.day .mat-form-field-label,.rtl-container.green.day .mat-hint{color:#0009}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-label{color:#185127}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.green.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.green.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#185127}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#185127}.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.green.day .mat-error{color:#b00020}.rtl-container.green.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.green.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.green.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.green.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.green.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.green.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.green.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.green.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.green.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.green.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.green.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.green.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.green.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.green.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#185127}.rtl-container.green.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.green.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.green.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.green.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.green.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.green.day .mat-icon.mat-primary{color:#185127}.rtl-container.green.day .mat-icon.mat-accent{color:#424242}.rtl-container.green.day .mat-icon.mat-warn{color:#b00020}.rtl-container.green.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after,.rtl-container.green.day .mat-input-element:disabled{color:#00000061}.rtl-container.green.day .mat-input-element{caret-color:#185127}.rtl-container.green.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.green.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.green.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.green.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.green.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.green.day .mat-form-field-invalid .mat-input-element,.rtl-container.green.day .mat-form-field.mat-warn .mat-input-element{caret-color:#b00020}.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.green.day .mat-list-base .mat-list-item,.rtl-container.green.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.green.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.green.day .mat-list-item-disabled{background-color:#eee}.rtl-container.green.day .mat-action-list .mat-list-item:focus,.rtl-container.green.day .mat-action-list .mat-list-item:hover,.rtl-container.green.day .mat-list-option:focus,.rtl-container.green.day .mat-list-option:hover,.rtl-container.green.day .mat-nav-list .mat-list-item:focus,.rtl-container.green.day .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.green.day .mat-list-single-selected-option,.rtl-container.green.day .mat-list-single-selected-option:focus,.rtl-container.green.day .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.green.day .mat-menu-panel{background:#fff}.rtl-container.green.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.day .mat-menu-item{background:#0000;color:#000000de}.rtl-container.green.day .mat-menu-item[disabled],.rtl-container.green.day .mat-menu-item[disabled] .mat-icon-no-color,.rtl-container.green.day .mat-menu-item[disabled]:after{color:#00000061}.rtl-container.green.day .mat-menu-item-submenu-trigger:after,.rtl-container.green.day .mat-menu-item .mat-icon-no-color{color:#0000008a}.rtl-container.green.day .mat-menu-item-highlighted:not([disabled]),.rtl-container.green.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.green.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.green.day .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.green.day .mat-paginator{background:#fff}.rtl-container.green.day .mat-paginator,.rtl-container.green.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.green.day .mat-paginator-decrement,.rtl-container.green.day .mat-paginator-increment{border-top:2px solid #0000008a;border-right:2px solid #0000008a}.rtl-container.green.day .mat-paginator-first,.rtl-container.green.day .mat-paginator-last{border-top:2px solid #0000008a}.rtl-container.green.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.green.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.green.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.green.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.green.day .mat-progress-bar-background{fill:#c2d0c5}.rtl-container.green.day .mat-progress-bar-buffer{background-color:#c2d0c5}.rtl-container.green.day .mat-progress-bar-fill:after{background-color:#185127}.rtl-container.green.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.green.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.green.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.green.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.green.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.green.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.green.day .mat-progress-spinner circle,.rtl-container.green.day .mat-spinner circle{stroke:#185127}.rtl-container.green.day .mat-progress-spinner.mat-accent circle,.rtl-container.green.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.green.day .mat-progress-spinner.mat-warn circle,.rtl-container.green.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.green.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.green.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#185127}.rtl-container.green.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.green.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#185127}.rtl-container.green.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.green.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.green.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.green.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.green.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.green.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.green.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.green.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.green.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.rtl-container.green.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:#00000061}.rtl-container.green.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.green.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.green.day .mat-select-value{color:#000000de}.rtl-container.green.day .mat-select-placeholder{color:#0000006b}.rtl-container.green.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.green.day .mat-select-arrow{color:#0000008a}.rtl-container.green.day .mat-select-panel{background:#fff}.rtl-container.green.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.green.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#185127}.rtl-container.green.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.green.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.green.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.green.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.green.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.green.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.green.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.green.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.green.day .mat-drawer-side{border-right:1px solid #0000001f}.rtl-container.green.day .mat-drawer-side.mat-drawer-end,.rtl-container.green.day [dir=rtl] .mat-drawer-side{border-left:1px solid #0000001f;border-right:none}.rtl-container.green.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #0000001f}.rtl-container.green.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.green.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.green.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.green.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.green.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#185127}.rtl-container.green.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#1851278a}.rtl-container.green.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#185127}.rtl-container.green.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.green.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.green.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.green.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.green.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#fafafa}.rtl-container.green.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.green.day .mat-slider-track-background{background-color:#00000042}.rtl-container.green.day .mat-primary .mat-slider-thumb,.rtl-container.green.day .mat-primary .mat-slider-thumb-label,.rtl-container.green.day .mat-primary .mat-slider-track-fill{background-color:#185127}.rtl-container.green.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.day .mat-primary .mat-slider-focus-ring{background-color:#18512733}.rtl-container.green.day .mat-accent .mat-slider-thumb,.rtl-container.green.day .mat-accent .mat-slider-thumb-label,.rtl-container.green.day .mat-accent .mat-slider-track-fill{background-color:#424242}.rtl-container.green.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.green.day .mat-warn .mat-slider-thumb,.rtl-container.green.day .mat-warn .mat-slider-thumb-label,.rtl-container.green.day .mat-warn .mat-slider-track-fill{background-color:#b00020}.rtl-container.green.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.green.day .cdk-focused .mat-slider-track-background,.rtl-container.green.day .mat-slider:hover .mat-slider-track-background{background-color:#00000061}.rtl-container.green.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.green.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.green.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.green.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.green.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.green.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.green.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.green.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.green.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:initial}.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#00000061}.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.green.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.green.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#000000b3,#000000b3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.green.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.green.day .mat-step-header.cdk-keyboard-focused,.rtl-container.green.day .mat-step-header.cdk-program-focused,.rtl-container.green.day .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.green.day .mat-step-header:hover{background:none}}.rtl-container.green.day .mat-step-header .mat-step-label,.rtl-container.green.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.green.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.green.day .mat-step-header .mat-step-icon-selected,.rtl-container.green.day .mat-step-header .mat-step-icon-state-done,.rtl-container.green.day .mat-step-header .mat-step-icon-state-edit{background-color:#185127;color:#fff}.rtl-container.green.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.green.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.green.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.green.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.green.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.green.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.green.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.green.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.green.day .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#b00020}.rtl-container.green.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.green.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.green.day .mat-stepper-horizontal,.rtl-container.green.day .mat-stepper-vertical{background-color:#fff}.rtl-container.green.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.green.day .mat-horizontal-stepper-header:after,.rtl-container.green.day .mat-horizontal-stepper-header:before,.rtl-container.green.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.green.day .mat-sort-header-arrow{color:#757575}.rtl-container.green.day .mat-tab-header,.rtl-container.green.day .mat-tab-nav-bar{border-bottom:1px solid #0000001f}.rtl-container.green.day .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.green.day .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #0000001f;border-bottom:none}.rtl-container.green.day .mat-tab-label,.rtl-container.green.day .mat-tab-link{color:#000000de}.rtl-container.green.day .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.green.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.green.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.green.day .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.green.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.green.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#5d85684d}.rtl-container.green.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#185127}.rtl-container.green.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.green.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.green.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.green.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.green.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#5d85684d}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#185127}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.green.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#424242}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.green.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#b00020}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.green.day .mat-toolbar{background:#f5f5f5;color:#000000de}.rtl-container.green.day .mat-toolbar.mat-primary{background:#185127;color:#fff}.rtl-container.green.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.green.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.green.day .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.green.day .mat-toolbar .mat-form-field-ripple,.rtl-container.green.day .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.green.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.green.day .mat-toolbar .mat-form-field-label,.rtl-container.green.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.green.day .mat-toolbar .mat-select-arrow,.rtl-container.green.day .mat-toolbar .mat-select-value{color:inherit}.rtl-container.green.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.green.day .mat-tooltip{background:#616161e6}.rtl-container.green.day .mat-tree{background:#fff}.rtl-container.green.day .mat-nested-tree-node,.rtl-container.green.day .mat-tree-node{color:#000000de}.rtl-container.green.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.green.day .mat-simple-snackbar-action{color:#424242}.rtl-container.green.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.green.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.green.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.green.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.green.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.green.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.green.day .rtl-top-toolbar{border-bottom:1px solid #fff}.rtl-container.green.day .bg-primary{background-color:#185127;color:#fff}.rtl-container.green.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#185127}.rtl-container.green.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.green.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.green.day .mat-tab-label.mat-tab-label-active{color:#185127}.rtl-container.green.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#185127}.rtl-container.green.day .mat-tab-label .tab-badge .mat-badge-content{background:#0000008a}.rtl-container.green.day .mat-form-field-suffix,.rtl-container.green.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.green.day .ng-fa-icon{color:#0000008a}.rtl-container.green.day .mat-stroked-button.mat-primary{border-color:#185127}.rtl-container.green.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.green.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.green.day .selected-color{border-color:#5d8568}.rtl-container.green.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.green.day .page-sub-title-container,.rtl-container.green.day .page-title-container{color:#0000008a}.rtl-container.green.day .page-sub-title-container .page-title-img,.rtl-container.green.day .page-title-container .page-title-img{color:#00000061}.rtl-container.green.day .page-sub-title-container .mat-input-element,.rtl-container.green.day .page-sub-title-container .mat-radio-label-content,.rtl-container.green.day .page-sub-title-container .theme-name,.rtl-container.green.day .page-title-container .mat-input-element,.rtl-container.green.day .page-title-container .mat-radio-label-content,.rtl-container.green.day .page-title-container .theme-name{color:#000000de}.rtl-container.green.day .cc-data-block .cc-data-title{color:#185127}.rtl-container.green.day .active-link,.rtl-container.green.day .active-link .fa-icon-small{color:#185127;font-weight:500;cursor:pointer;fill:#185127}.rtl-container.green.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.green.day .mat-nested-tree-node-parent:hover,.rtl-container.green.day .mat-select-panel .mat-option:hover,.rtl-container.green.day .mat-tree-node:hover{color:#185127;cursor:pointer;background:#0000000a}.rtl-container.green.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.green.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.green.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.green.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.green.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.green.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.green.day .mat-tree-node:hover .mat-icon,.rtl-container.green.day .mat-tree-node:hover .ng-fa-icon{color:#185127}.rtl-container.green.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.green.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.green.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.green.day .mat-tree-node:hover .sidenav-img svg{fill:#185127}.rtl-container.green.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.green.day .mat-nested-tree-node .sidenav-img,.rtl-container.green.day .mat-tree-node .sidenav-img,.rtl-container.green.day .page-title-container .page-title-img,.rtl-container.green.day svg.top-icon-small{fill:#000000de}.rtl-container.green.day .mat-progress-bar-fill:after{background-color:#08270e}.rtl-container.green.day .modal-qr-code-container{background:#0000001f}.rtl-container.green.day .mat-tab-label,.rtl-container.green.day .mat-tab-link{color:#0000008a}.rtl-container.green.day .mat-card,.rtl-container.green.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid #0000001f}.rtl-container.green.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.green.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.green.day .dashboard-info-title{color:#185127}.rtl-container.green.day .dashboard-info-value{color:#0000008a}.rtl-container.green.day .color-primary{color:#185127!important}.rtl-container.green.day .dot-primary{background-color:#185127!important}.rtl-container.green.day .dot-primary-lighter{background-color:#5d8568!important}.rtl-container.green.day .mat-expansion-panel.flat-expansion-panel{border:1px solid #0000001f}.rtl-container.green.day .mat-tooltip{font-size:120%}.rtl-container.green.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.green.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.green.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.green.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.green.day svg .fill-color-1{fill:#fff}.rtl-container.green.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.green.day svg .fill-color-3,.rtl-container.green.day svg .fill-color-4,.rtl-container.green.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.green.day svg .fill-color-6{fill:#fff}.rtl-container.green.day svg .fill-color-7,.rtl-container.green.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.green.day svg .fill-color-9{fill:#fff}.rtl-container.green.day svg .fill-color-10,.rtl-container.green.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.green.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.green.day svg .fill-color-13,.rtl-container.green.day svg .fill-color-14,.rtl-container.green.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.green.day svg .fill-color-16,.rtl-container.green.day svg .fill-color-17{fill:#404040}.rtl-container.green.day svg .fill-color-18{fill:#000}.rtl-container.green.day svg .fill-color-19,.rtl-container.green.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.green.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.green.day svg .fill-color-22,.rtl-container.green.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.green.day svg .fill-color-24{fill:#000}.rtl-container.green.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.green.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.green.day svg .fill-color-27{fill:#000}.rtl-container.green.day svg .fill-color-28{fill:#313131}.rtl-container.green.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.green.day svg .fill-color-30{fill:#fff}.rtl-container.green.day svg .fill-color-31{fill:#185127}.rtl-container.green.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.green.day svg .fill-color-primary{fill:#185127}.rtl-container.green.day svg .fill-color-primary-lighter{fill:#5d8568}.rtl-container.green.day svg .fill-color-primary-darker{fill:#185127}.rtl-container.green.day .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.green.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.green.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.green.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.green.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.green.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.green.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#185127}.rtl-container.green.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.green.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#08270e}.rtl-container.green.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.green.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#8ca893}.rtl-container.green.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.green.day .mat-progress-bar-buffer{background-color:#bacbbe}.rtl-container.green.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.green.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.green.day .foreground.mat-progress-spinner circle,.rtl-container.green.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.green.day .mat-toolbar-row,.rtl-container.green.day .mat-toolbar-single-row{height:5rem}.rtl-container.green.day .lnd-info{border-bottom:1px solid #0000001f}.rtl-container.green.day a{color:#185127}.rtl-container.green.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.green.day .h-active-link{border-bottom:2px solid #fff}.rtl-container.green.day .mat-icon-36{color:#0000008a}.rtl-container.green.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.green.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.green.day .genseed-message{width:10%;color:#185127}.rtl-container.green.day .material-icons.primary{color:#185127}.rtl-container.green.day .material-icons.accent{color:#424242}.rtl-container.green.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.green.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.green.day .row-disabled{background-color:gray}.rtl-container.green.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.green.day .mat-menu-panel{min-width:6.4rem}.rtl-container.green.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.green.day .horizontal-button:hover{background:#5d8568;color:#424242}.rtl-container.green.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#185127}.rtl-container.green.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.green.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.green.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.green.day .mat-cell,.rtl-container.green.day .mat-footer-cell,.rtl-container.green.day .mat-header-cell{border-bottom:1px solid #0000001f}.rtl-container.green.day table.mat-table{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.green.day table.mat-table thead tr th{color:#000}.rtl-container.green.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.green.day .bordered-box{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.green.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.green.day .mat-expansion-panel{border:1px solid #0000001f}.rtl-container.green.day .more-button{color:#00000061}.rtl-container.green.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.green.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.green.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.green.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.green.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.green.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.green.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.green.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.green.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.green.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.green.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.green.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.green.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.green.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.green.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.green.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.green.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.green.day .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#8ca893!important}.rtl-container.green.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#154a23!important}.rtl-container.green.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.green.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.green.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.green.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.green.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid #0000008a}.rtl-container.green.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.green.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.green.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.green.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.green.day .color-warn{color:#b00020}.rtl-container.green.day .fill-warn{fill:#b00020}.rtl-container.green.day .alert{border:1px solid #0000008a;color:#0000008a;background-color:#0000000a}.rtl-container.green.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.green.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.green.day .alert.alert-info a{color:#004085}.rtl-container.green.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.green.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.green.day .alert.alert-warn a{color:#856404}.rtl-container.green.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.green.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.green.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.green.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.green.day .help-expansion .mat-expansion-panel-header,.rtl-container.green.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.green.day .help-expansion .mat-expansion-indicator:after,.rtl-container.green.day .help-expansion .mat-expansion-panel-content,.rtl-container.green.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.green.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.green.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.green.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.green.day .failed-status{color:#b00020}.rtl-container.green.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.green.day .svg-fill-primary{fill:#185127}.rtl-container.green.day .svg-fill-primary-lighter{fill:#5d8568}.rtl-container.green.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.green.day ngx-charts-bar-vertical-2d text,.rtl-container.green.day ngx-charts-bar-vertical text{fill:#000000de}.rtl-container.green.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.green.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.green.day .mat-paginator-container{padding:0}.rtl-container.green.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-option{color:#fff}.rtl-container.green.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.night .mat-option:focus:not(.mat-option-disabled),.rtl-container.green.night .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.green.night .mat-option.mat-active{background:#0000000a;color:#fff}.rtl-container.green.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#185127}.rtl-container.green.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.green.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.green.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.green.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.green.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.green.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#185127}.rtl-container.green.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.green.night .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.green.night .mat-pseudo-checkbox-checked,.rtl-container.green.night .mat-pseudo-checkbox-indeterminate{background:#eee}.rtl-container.green.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.green.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.green.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.green.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.green.night.mat-app-background,.rtl-container.green.night .mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.green.night .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.green.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.green.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.green.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.green.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.green.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.green.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.green.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.green.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.green.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.green.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.green.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.green.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.green.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.green.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.green.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.green.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.green.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.green.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.green.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.green.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.green.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.green.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.green.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.green.night .mat-badge-content{color:#fff;background:#185127}.cdk-high-contrast-active .rtl-container.green.night .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.green.night .mat-badge-accent .mat-badge-content{background:#eee;color:#000}.rtl-container.green.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.green.night .mat-badge{position:relative}.rtl-container.green.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.green.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.green.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.green.night .mat-badge-content._mat-animation-noopable,.rtl-container.green.night .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.green.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.green.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.green.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.green.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.green.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.green.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.green.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.green.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.green.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.green.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.green.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.green.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.green.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.green.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.green.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.green.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.green.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.green.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.green.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.green.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.green.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.green.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.green.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.green.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.green.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.green.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.green.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.green.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.green.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.green.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.green.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.green.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.green.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.green.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.green.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.green.night .mat-button,.rtl-container.green.night .mat-icon-button,.rtl-container.green.night .mat-stroked-button{color:inherit;background:#0000}.rtl-container.green.night .mat-button.mat-primary,.rtl-container.green.night .mat-icon-button.mat-primary,.rtl-container.green.night .mat-stroked-button.mat-primary{color:#185127}.rtl-container.green.night .mat-button.mat-accent,.rtl-container.green.night .mat-icon-button.mat-accent,.rtl-container.green.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.green.night .mat-button.mat-warn,.rtl-container.green.night .mat-icon-button.mat-warn,.rtl-container.green.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.green.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-stroked-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.green.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.green.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.green.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#185127}.rtl-container.green.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.green.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.green.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.green.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.green.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.green.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.green.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.green.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.green.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.green.night .mat-button .mat-ripple-element,.rtl-container.green.night .mat-icon-button .mat-ripple-element,.rtl-container.green.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.green.night .mat-button-focus-overlay{background:#fff}.rtl-container.green.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.green.night .mat-fab,.rtl-container.green.night .mat-flat-button,.rtl-container.green.night .mat-mini-fab,.rtl-container.green.night .mat-raised-button{color:#fff;background-color:#363636}.rtl-container.green.night .mat-fab.mat-primary,.rtl-container.green.night .mat-flat-button.mat-primary,.rtl-container.green.night .mat-mini-fab.mat-primary,.rtl-container.green.night .mat-raised-button.mat-primary{color:#fff}.rtl-container.green.night .mat-fab.mat-accent,.rtl-container.green.night .mat-flat-button.mat-accent,.rtl-container.green.night .mat-mini-fab.mat-accent,.rtl-container.green.night .mat-raised-button.mat-accent{color:#000}.rtl-container.green.night .mat-fab.mat-warn,.rtl-container.green.night .mat-flat-button.mat-warn,.rtl-container.green.night .mat-mini-fab.mat-warn,.rtl-container.green.night .mat-raised-button.mat-warn{color:#fff}.rtl-container.green.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.green.night .mat-fab.mat-primary,.rtl-container.green.night .mat-flat-button.mat-primary,.rtl-container.green.night .mat-mini-fab.mat-primary,.rtl-container.green.night .mat-raised-button.mat-primary{background-color:#185127}.rtl-container.green.night .mat-fab.mat-accent,.rtl-container.green.night .mat-flat-button.mat-accent,.rtl-container.green.night .mat-mini-fab.mat-accent,.rtl-container.green.night .mat-raised-button.mat-accent{background-color:#eee}.rtl-container.green.night .mat-fab.mat-warn,.rtl-container.green.night .mat-flat-button.mat-warn,.rtl-container.green.night .mat-mini-fab.mat-warn,.rtl-container.green.night .mat-raised-button.mat-warn{background-color:#ff343b}.rtl-container.green.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-warn.mat-button-disabled{background-color:#404040}.rtl-container.green.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.green.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.green.night .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.green.night .mat-raised-button.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.green.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.green.night .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.green.night .mat-raised-button.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.green.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.green.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.green.night .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.green.night .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.green.night .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.green.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.green.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.green.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.green.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.green.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.green.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.night .mat-button-toggle-group,.rtl-container.green.night .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.night .mat-button-toggle-group-appearance-standard,.rtl-container.green.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.green.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.green.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #ffffff4d}.rtl-container.green.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.green.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #ffffff4d}.rtl-container.green.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.green.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.green.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.green.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.green.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.green.night .mat-button-toggle-group-appearance-standard,.rtl-container.green.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #ffffff4d}.rtl-container.green.night .mat-card{background:#202020;color:#fff}.rtl-container.green.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.green.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.green.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.green.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.green.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.green.night .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.green.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#185127}.rtl-container.green.night .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.green.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.green.night .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.green.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.green.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.green.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.green.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.green.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.green.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.green.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#185127}.rtl-container.green.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.green.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eee}.rtl-container.green.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.green.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.green.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.green.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.green.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip:after{background:#fff}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#185127;color:#fff}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.green.night .mat-table{background:#202020}.rtl-container.green.night .mat-table-sticky,.rtl-container.green.night .mat-table tbody,.rtl-container.green.night .mat-table tfoot,.rtl-container.green.night .mat-table thead,.rtl-container.green.night [mat-footer-row],.rtl-container.green.night [mat-header-row],.rtl-container.green.night [mat-row],.rtl-container.green.night mat-footer-row,.rtl-container.green.night mat-header-row,.rtl-container.green.night mat-row{background:inherit}.rtl-container.green.night mat-footer-row,.rtl-container.green.night mat-header-row,.rtl-container.green.night mat-row,.rtl-container.green.night td.mat-cell,.rtl-container.green.night td.mat-footer-cell,.rtl-container.green.night th.mat-header-cell{border-bottom-color:#ffffff4d}.rtl-container.green.night .mat-cell,.rtl-container.green.night .mat-footer-cell{color:#fff}.rtl-container.green.night .mat-calendar-arrow{border-top-color:#fff}.rtl-container.green.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.green.night .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.green.night .mat-datepicker-toggle{color:#fff}.rtl-container.green.night .mat-calendar-table-header-divider:after{background:#ffffff4d}.rtl-container.green.night .mat-calendar-body-cell-content,.rtl-container.green.night .mat-date-range-input-separator{color:#fff;border-color:#0000}.rtl-container.green.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.green.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.green.night .mat-calendar-body-in-range:before{background:#18512733}.rtl-container.green.night .mat-calendar-body-comparison-identical,.rtl-container.green.night .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.green.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#18512733 50%,#f9ab0033 0)}.rtl-container.green.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#18512733 50%,#f9ab0033 0)}.rtl-container.green.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.green.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.green.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.night .mat-calendar-body-selected{background-color:#185127;color:#fff}.rtl-container.green.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#18512766}.rtl-container.green.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1851274d}.rtl-container.green.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#202020;color:#fff}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#eee3}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#eee3 50%,#f9ab0033 0)}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#eee3 50%,#f9ab0033 0)}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.green.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#ff343b33}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}.rtl-container.green.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.green.night .mat-datepicker-toggle-active{color:#185127}.rtl-container.green.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.green.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.green.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.green.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.green.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.green.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.green.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.green.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.green.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.green.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.green.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.green.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.green.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.green.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.green.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.green.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-label{color:#185127}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.green.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.green.night .mat-form-field-ripple{background-color:#fff}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#185127}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.green.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#185127}.rtl-container.green.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.green.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.green.night .mat-error{color:#ff343b}.rtl-container.green.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.green.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.green.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.green.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.green.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.green.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.green.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.green.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.green.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.green.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.green.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#185127}.rtl-container.green.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.green.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.green.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.green.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.green.night .mat-icon.mat-primary{color:#185127}.rtl-container.green.night .mat-icon.mat-accent{color:#eee}.rtl-container.green.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.green.night .mat-input-element{caret-color:#185127}.rtl-container.green.night .mat-input-element option{color:#000000de}.rtl-container.green.night .mat-input-element option:disabled{color:#00000061}.rtl-container.green.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.green.night .mat-form-field-invalid .mat-input-element,.rtl-container.green.night .mat-form-field.mat-warn .mat-input-element{caret-color:#ff343b}.rtl-container.green.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.green.night .mat-list-base .mat-list-item,.rtl-container.green.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.green.night .mat-list-item-disabled{background-color:#444}.rtl-container.green.night .mat-action-list .mat-list-item:focus,.rtl-container.green.night .mat-action-list .mat-list-item:hover,.rtl-container.green.night .mat-list-option:focus,.rtl-container.green.night .mat-list-option:hover,.rtl-container.green.night .mat-nav-list .mat-list-item:focus,.rtl-container.green.night .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.green.night .mat-list-single-selected-option,.rtl-container.green.night .mat-list-single-selected-option:focus,.rtl-container.green.night .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.green.night .mat-menu-panel{background:#202020}.rtl-container.green.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.night .mat-menu-item{background:#0000;color:#fff}.rtl-container.green.night .mat-menu-item-submenu-trigger:after,.rtl-container.green.night .mat-menu-item .mat-icon-no-color{color:#fff}.rtl-container.green.night .mat-menu-item-highlighted:not([disabled]),.rtl-container.green.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.green.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.green.night .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.green.night .mat-paginator{background:#202020}.rtl-container.green.night .mat-paginator-decrement,.rtl-container.green.night .mat-paginator-increment{border-top:2px solid #fff;border-right:2px solid #fff}.rtl-container.green.night .mat-paginator-first,.rtl-container.green.night .mat-paginator-last{border-top:2px solid #fff}.rtl-container.green.night .mat-progress-bar-background{fill:#101e14}.rtl-container.green.night .mat-progress-bar-buffer{background-color:#101e14}.rtl-container.green.night .mat-progress-bar-fill:after{background-color:#185127}.rtl-container.green.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.green.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.green.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.green.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.green.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.green.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.green.night .mat-progress-spinner circle,.rtl-container.green.night .mat-spinner circle{stroke:#185127}.rtl-container.green.night .mat-progress-spinner.mat-accent circle,.rtl-container.green.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.green.night .mat-progress-spinner.mat-warn circle,.rtl-container.green.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.green.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#185127}.rtl-container.green.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.green.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#185127}.rtl-container.green.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.green.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.green.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.green.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.green.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.green.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.green.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.green.night .mat-select-value{color:#fff}.rtl-container.green.night .mat-select-panel{background:#202020}.rtl-container.green.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.green.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#185127}.rtl-container.green.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.green.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.green.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.green.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.green.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.green.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.green.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.green.night .mat-drawer-side{border-right:1px solid #ffffff4d}.rtl-container.green.night .mat-drawer-side.mat-drawer-end,.rtl-container.green.night [dir=rtl] .mat-drawer-side{border-left:1px solid #ffffff4d;border-right:none}.rtl-container.green.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.green.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.green.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.green.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.green.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.green.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#185127}.rtl-container.green.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#1851278a}.rtl-container.green.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#185127}.rtl-container.green.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.green.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.green.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.green.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.green.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#bdbdbd}.rtl-container.green.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.green.night .mat-primary .mat-slider-thumb,.rtl-container.green.night .mat-primary .mat-slider-thumb-label,.rtl-container.green.night .mat-primary .mat-slider-track-fill{background-color:#185127}.rtl-container.green.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.night .mat-primary .mat-slider-focus-ring{background-color:#18512733}.rtl-container.green.night .mat-accent .mat-slider-thumb,.rtl-container.green.night .mat-accent .mat-slider-thumb-label,.rtl-container.green.night .mat-accent .mat-slider-track-fill{background-color:#eee}.rtl-container.green.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.green.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.green.night .mat-warn .mat-slider-thumb,.rtl-container.green.night .mat-warn .mat-slider-thumb-label,.rtl-container.green.night .mat-warn .mat-slider-track-fill{background-color:#ff343b}.rtl-container.green.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.green.night .cdk-focused .mat-slider-track-background,.rtl-container.green.night .mat-slider:hover .mat-slider-track-background{background-color:#fff9}.rtl-container.green.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.green.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.green.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.green.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.green.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.green.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.green.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.green.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.green.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:initial}.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#fff9}.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.green.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.green.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.green.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.green.night .mat-step-header.cdk-keyboard-focused,.rtl-container.green.night .mat-step-header.cdk-program-focused,.rtl-container.green.night .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.green.night .mat-step-header:hover{background:none}}.rtl-container.green.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.green.night .mat-step-header .mat-step-icon-selected,.rtl-container.green.night .mat-step-header .mat-step-icon-state-done,.rtl-container.green.night .mat-step-header .mat-step-icon-state-edit{background-color:#185127;color:#fff}.rtl-container.green.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.green.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.green.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.green.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.green.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.green.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.green.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.green.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.green.night .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#ff343b}.rtl-container.green.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.green.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.green.night .mat-stepper-horizontal,.rtl-container.green.night .mat-stepper-vertical{background-color:#202020}.rtl-container.green.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.green.night .mat-horizontal-stepper-header:after,.rtl-container.green.night .mat-horizontal-stepper-header:before,.rtl-container.green.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.green.night .mat-tab-header,.rtl-container.green.night .mat-tab-nav-bar{border-bottom:1px solid #ffffff4d}.rtl-container.green.night .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.green.night .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #ffffff4d;border-bottom:none}.rtl-container.green.night .mat-tab-label,.rtl-container.green.night .mat-tab-link{color:#fff}.rtl-container.green.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.green.night .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.green.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.green.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#5d85684d}.rtl-container.green.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#185127}.rtl-container.green.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.green.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.green.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.green.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.green.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.green.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#5d85684d}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#185127}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.green.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#eee}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#000}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#0006}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#0000001f}.rtl-container.green.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#ff343b}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.green.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.green.night .mat-toolbar.mat-primary{background:#185127;color:#fff}.rtl-container.green.night .mat-toolbar.mat-accent{background:#eee;color:#000}.rtl-container.green.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.green.night .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.green.night .mat-toolbar .mat-form-field-ripple,.rtl-container.green.night .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.green.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.green.night .mat-toolbar .mat-form-field-label,.rtl-container.green.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.green.night .mat-toolbar .mat-select-arrow,.rtl-container.green.night .mat-toolbar .mat-select-value{color:inherit}.rtl-container.green.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.green.night .mat-tree{background:#202020}.rtl-container.green.night .mat-nested-tree-node,.rtl-container.green.night .mat-tree-node{color:#fff}.rtl-container.green.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.green.night .mat-simple-snackbar-action{color:inherit}.rtl-container.green.night .mat-primary{color:#30ff4b}.rtl-container.green.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.green.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.green.night .bg-primary{background-color:#185127;color:#fff}.rtl-container.green.night .mat-tab-label.mat-tab-label-active{color:#30ff4b}.rtl-container.green.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#30ff4b}.rtl-container.green.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.green.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.green.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.green.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.green.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#30ff4b}.rtl-container.green.night .cc-data-block .cc-data-title{color:#30ff4b}.rtl-container.green.night .mat-stroked-button.mat-primary{border-color:#30ff4b;color:#30ff4b}.rtl-container.green.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.green.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.green.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.green.night .active-link,.rtl-container.green.night .active-link .fa-icon-small,.rtl-container.green.night .mat-select-panel .mat-option.mat-active,.rtl-container.green.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#30ff4b;font-weight:500;cursor:pointer;fill:#30ff4b}.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.green.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#30ff4b}.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.green.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled),.rtl-container.green.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.green.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.green.night .mat-nested-tree-node-parent:hover,.rtl-container.green.night .mat-select-panel .mat-option:hover,.rtl-container.green.night .mat-tree-node:hover{color:#30ff4b;cursor:pointer;background:#ffffff0f}.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.green.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.green.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.green.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.green.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.green.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.green.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.green.night .mat-tree-node:hover .mat-icon,.rtl-container.green.night .mat-tree-node:hover .ng-fa-icon{color:#30ff4b}.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.green.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.green.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.green.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.green.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.green.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.green.night .mat-tree-node:hover .sidenav-img svg{fill:#30ff4b}.rtl-container.green.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.green.night .mat-nested-tree-node .sidenav-img,.rtl-container.green.night .mat-tree-node .sidenav-img,.rtl-container.green.night .page-title-container .page-title-img,.rtl-container.green.night svg.top-icon-small{fill:#fff}.rtl-container.green.night .selected-color{border-color:#5d8568}.rtl-container.green.night .mat-progress-bar-fill:after{background-color:#154a23}.rtl-container.green.night .chart-legend .legend-label .active .legend-label-text,.rtl-container.green.night .chart-legend .legend-label:hover{color:#fff!important}.rtl-container.green.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.green.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#30ff4b}.rtl-container.green.night .mat-select-panel{background-color:#262626}.rtl-container.green.night .mat-tree{background:#262626}.rtl-container.green.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.green.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.green.night .dashboard-info-title{color:#30ff4b}.rtl-container.green.night .dashboard-capacity-header,.rtl-container.green.night .dashboard-info-value{color:#fff}.rtl-container.green.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.green.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.green.night .color-primary{color:#30ff4b!important}.rtl-container.green.night .dot-primary{background-color:#30ff4b!important}.rtl-container.green.night .dot-primary-lighter{background-color:#185127!important}.rtl-container.green.night .mat-stepper-vertical{background-color:#262626}.rtl-container.green.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.green.night svg .boltz-icon-fill{fill:#fff}.rtl-container.green.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .fill-color-0,.rtl-container.green.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.green.night svg .fill-color-1{fill:#232323}.rtl-container.green.night svg .fill-color-2{fill:#222}.rtl-container.green.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.green.night svg .fill-color-4{fill:#383838}.rtl-container.green.night svg .fill-color-5{fill:#555}.rtl-container.green.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.green.night svg .fill-color-7{fill:#202020}.rtl-container.green.night svg .fill-color-8{fill:#242424}.rtl-container.green.night svg .fill-color-9{fill:#262626}.rtl-container.green.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.green.night svg .fill-color-11{fill:#171717}.rtl-container.green.night svg .fill-color-12{fill:#ccc}.rtl-container.green.night svg .fill-color-13{fill:#adadad}.rtl-container.green.night svg .fill-color-14{fill:#ababab}.rtl-container.green.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.green.night svg .fill-color-16{fill:#707070}.rtl-container.green.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.green.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.green.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.green.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.green.night svg .fill-color-21{fill:#cacaca}.rtl-container.green.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.green.night svg .fill-color-23{fill:#777}.rtl-container.green.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.green.night svg .fill-color-25{fill:#252525}.rtl-container.green.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.green.night svg .fill-color-27{fill:#000}.rtl-container.green.night svg .fill-color-28{fill:#313131}.rtl-container.green.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.green.night svg .fill-color-30{fill:#fff}.rtl-container.green.night svg .fill-color-31{fill:#185127}.rtl-container.green.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.green.night svg .fill-color-primary{fill:#185127}.rtl-container.green.night svg .fill-color-primary-lighter{fill:#5d8568}.rtl-container.green.night svg .fill-color-primary-darker{fill:#30ff4b}.rtl-container.green.night .mat-select-arrow,.rtl-container.green.night .mat-select-value{color:#fff}.rtl-container.green.night .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.green.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.green.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.green.night .mat-slide-toggle-bar,.rtl-container.green.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.green.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.green.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.green.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.green.night .mat-button.mat-primary,.rtl-container.green.night .mat-icon-button.mat-primary,.rtl-container.green.night .mat-stroked-button.mat-primary{color:#30ff4b}.rtl-container.green.night tr.alert.alert-warn .mat-cell,.rtl-container.green.night tr.alert.alert-warn .mat-footer-cell,.rtl-container.green.night tr.alert.alert-warn .mat-header-cell{color:#856404}.rtl-container.green.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.green.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#30ff4b}.rtl-container.green.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.green.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#0e3717}.rtl-container.green.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.green.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#30ff4b}.rtl-container.green.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.green.night .mat-progress-bar-buffer{background-color:#bacbbe}.rtl-container.green.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.green.night .foreground-secondary-text{color: !important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.green.night .foreground.mat-progress-spinner circle,.rtl-container.green.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.green.night .mat-toolbar-row,.rtl-container.green.night .mat-toolbar-single-row{height:5rem}.rtl-container.green.night .lnd-info{border-bottom:1px solid #ffffff4d}.rtl-container.green.night a{color:#185127}.rtl-container.green.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.green.night .h-active-link{border-bottom:2px solid #fff}.rtl-container.green.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.green.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.green.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.green.night .genseed-message{width:10%;color:#185127}.rtl-container.green.night .material-icons.primary{color:#185127}.rtl-container.green.night .material-icons.accent{color:#eee}.rtl-container.green.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.green.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.green.night .row-disabled{background-color:gray}.rtl-container.green.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.green.night .mat-menu-panel{min-width:6.4rem}.rtl-container.green.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.green.night .horizontal-button:hover{background:#5d8568;color:#eee}.rtl-container.green.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#185127}.rtl-container.green.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.green.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.green.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.green.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.green.night .mat-cell,.rtl-container.green.night .mat-footer-cell,.rtl-container.green.night .mat-header-cell{border-bottom:1px solid #ffffff4d}.rtl-container.green.night table.mat-table{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.green.night table.mat-table thead tr th{color:#fff}.rtl-container.green.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.green.night .bordered-box{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.green.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.green.night .mat-expansion-panel{border:1px solid #ffffff4d}.rtl-container.green.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.green.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.green.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.green.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.green.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.green.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.green.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.green.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.green.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.green.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.green.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.green.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.green.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.green.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.green.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.green.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.green.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.green.night .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#8ca893!important}.rtl-container.green.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#154a23!important}.rtl-container.green.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.green.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.green.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.green.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.green.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.green.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.green.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.green.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.green.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.green.night .color-warn{color:#ff343b}.rtl-container.green.night .fill-warn{fill:#ff343b}.rtl-container.green.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.green.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.green.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.green.night .alert.alert-info a{color:#004085}.rtl-container.green.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.green.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.green.night .alert.alert-warn a{color:#856404}.rtl-container.green.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.green.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.green.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.green.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.green.night .help-expansion .mat-expansion-panel-header,.rtl-container.green.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.green.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.green.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.green.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.green.night .failed-status{color:#ff343b}.rtl-container.green.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.green.night .svg-fill-primary{fill:#185127}.rtl-container.green.night .svg-fill-primary-lighter{fill:#5d8568}.rtl-container.green.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.green.night ngx-charts-bar-vertical-2d text,.rtl-container.green.night ngx-charts-bar-vertical text{fill:#fff}.rtl-container.green.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.green.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.green.night .mat-paginator-container{padding:0}.rtl-container.teal.small.small .mat-header-cell{font-weight:700}.rtl-container.teal.small.small .mr-4{margin-right:1rem!important}.rtl-container.teal.small.small .mat-menu-item,.rtl-container.teal.small.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.teal.small.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.teal.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.teal.small.small .fa-icon-small,.rtl-container.teal.small.small .genseed-message,.rtl-container.teal.small.small .top-icon-small,.rtl-container.teal.small.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.teal.small.small .page-sub-title-container,.rtl-container.teal.small.small .page-title-container{font-size:1.32rem}.rtl-container.teal.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.teal.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.teal.small.small .sidenav-img svg,.rtl-container.teal.small.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.teal.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.teal.small.small .material-icons,.rtl-container.teal.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.teal.small.small .mat-expansion-panel-header,.rtl-container.teal.small.small .mat-list .mat-list-item,.rtl-container.teal.small.small .mat-menu-item,.rtl-container.teal.small.small .mat-nav-list .mat-list-item,.rtl-container.teal.small.small .mat-option,.rtl-container.teal.small.small .mat-select,.rtl-container.teal.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.teal.small.small .logo{font-size:2.4rem}.rtl-container.teal.small.small .font-60-percent{font-size:.72rem}.rtl-container.teal.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.teal.small.small .icon-large{font-size:6rem}.rtl-container.teal.small.small .icon-small{font-size:1.8rem!important}.rtl-container.teal.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.teal.small.small .size-triple{font-size:3.6rem}.rtl-container.teal.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.teal.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.small.medium .mat-header-cell{font-weight:700}.rtl-container.teal.small.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.teal.small.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.teal.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.teal.small.medium .genseed-message,.rtl-container.teal.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.teal.small.medium .page-sub-title-container,.rtl-container.teal.small.medium .page-title-container{font-size:1.54rem}.rtl-container.teal.small.medium .fa-icon-small,.rtl-container.teal.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.teal.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.teal.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.teal.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.teal.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.teal.small.medium .sidenav-img svg,.rtl-container.teal.small.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.teal.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.teal.small.medium .material-icons{font-size:2.8rem}.rtl-container.teal.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.teal.small.medium .mat-expansion-panel-header,.rtl-container.teal.small.medium .mat-list .mat-list-item,.rtl-container.teal.small.medium .mat-menu-item,.rtl-container.teal.small.medium .mat-nav-list .mat-list-item,.rtl-container.teal.small.medium .mat-option,.rtl-container.teal.small.medium .mat-select,.rtl-container.teal.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.teal.small.medium .logo{font-size:2.8rem}.rtl-container.teal.small.medium .font-60-percent{font-size:.84rem}.rtl-container.teal.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.teal.small.medium .icon-large{font-size:7rem}.rtl-container.teal.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.teal.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.teal.small.medium .size-triple{font-size:4.2rem}.rtl-container.teal.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.teal.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.small.large .mat-header-cell{font-weight:800}.rtl-container.teal.small.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.teal.small.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.teal.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.teal.small.large .genseed-message,.rtl-container.teal.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.teal.small.large .page-sub-title-container,.rtl-container.teal.small.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.teal.small.large .fa-icon-small,.rtl-container.teal.small.large .modal-info-header,.rtl-container.teal.small.large .top-icon-small{font-size:1.92rem}.rtl-container.teal.small.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.teal.small.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.teal.small.large .sidenav-img svg,.rtl-container.teal.small.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.teal.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.teal.small.large .material-icons{font-size:4rem}.rtl-container.teal.small.large .mat-expansion-panel-header,.rtl-container.teal.small.large .mat-list .mat-list-item,.rtl-container.teal.small.large .mat-menu-item,.rtl-container.teal.small.large .mat-nav-list .mat-list-item,.rtl-container.teal.small.large .mat-option,.rtl-container.teal.small.large .mat-select,.rtl-container.teal.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.teal.small.large .logo{font-size:3.2rem}.rtl-container.teal.small.large .font-60-percent{font-size:.96rem}.rtl-container.teal.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.teal.small.large .icon-large{font-size:8rem}.rtl-container.teal.small.large .icon-small{font-size:2.4rem!important}.rtl-container.teal.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.teal.small.large .size-triple{font-size:4.8rem}.rtl-container.teal.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.teal.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.small .mat-icon.material-icons:focus{outline:none}.rtl-container.teal.small .mat-flat-button.mat-primary:focus,.rtl-container.teal.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.teal.medium.small .mat-header-cell{font-weight:700}.rtl-container.teal.medium.small .mr-4{margin-right:1rem!important}.rtl-container.teal.medium.small .mat-menu-item,.rtl-container.teal.medium.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.teal.medium.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.teal.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.teal.medium.small .fa-icon-small,.rtl-container.teal.medium.small .genseed-message,.rtl-container.teal.medium.small .top-icon-small,.rtl-container.teal.medium.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.teal.medium.small .page-sub-title-container,.rtl-container.teal.medium.small .page-title-container{font-size:1.32rem}.rtl-container.teal.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.teal.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.teal.medium.small .sidenav-img svg,.rtl-container.teal.medium.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.teal.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.teal.medium.small .material-icons,.rtl-container.teal.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.teal.medium.small .mat-expansion-panel-header,.rtl-container.teal.medium.small .mat-list .mat-list-item,.rtl-container.teal.medium.small .mat-menu-item,.rtl-container.teal.medium.small .mat-nav-list .mat-list-item,.rtl-container.teal.medium.small .mat-option,.rtl-container.teal.medium.small .mat-select,.rtl-container.teal.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.teal.medium.small .logo{font-size:2.4rem}.rtl-container.teal.medium.small .font-60-percent{font-size:.72rem}.rtl-container.teal.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.teal.medium.small .icon-large{font-size:6rem}.rtl-container.teal.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.teal.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.teal.medium.small .size-triple{font-size:3.6rem}.rtl-container.teal.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.teal.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.medium.medium .mat-header-cell{font-weight:700}.rtl-container.teal.medium.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.teal.medium.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.teal.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.teal.medium.medium .genseed-message,.rtl-container.teal.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.teal.medium.medium .page-sub-title-container,.rtl-container.teal.medium.medium .page-title-container{font-size:1.54rem}.rtl-container.teal.medium.medium .fa-icon-small,.rtl-container.teal.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.teal.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.teal.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.teal.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.teal.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.teal.medium.medium .sidenav-img svg,.rtl-container.teal.medium.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.teal.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.teal.medium.medium .material-icons{font-size:2.8rem}.rtl-container.teal.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.teal.medium.medium .mat-expansion-panel-header,.rtl-container.teal.medium.medium .mat-list .mat-list-item,.rtl-container.teal.medium.medium .mat-menu-item,.rtl-container.teal.medium.medium .mat-nav-list .mat-list-item,.rtl-container.teal.medium.medium .mat-option,.rtl-container.teal.medium.medium .mat-select,.rtl-container.teal.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.teal.medium.medium .logo{font-size:2.8rem}.rtl-container.teal.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.teal.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.teal.medium.medium .icon-large{font-size:7rem}.rtl-container.teal.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.teal.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.teal.medium.medium .size-triple{font-size:4.2rem}.rtl-container.teal.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.teal.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.medium.large .mat-header-cell{font-weight:800}.rtl-container.teal.medium.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.teal.medium.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.teal.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.teal.medium.large .genseed-message,.rtl-container.teal.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.teal.medium.large .page-sub-title-container,.rtl-container.teal.medium.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.teal.medium.large .fa-icon-small,.rtl-container.teal.medium.large .modal-info-header,.rtl-container.teal.medium.large .top-icon-small{font-size:1.92rem}.rtl-container.teal.medium.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.teal.medium.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.teal.medium.large .sidenav-img svg,.rtl-container.teal.medium.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.teal.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.teal.medium.large .material-icons{font-size:4rem}.rtl-container.teal.medium.large .mat-expansion-panel-header,.rtl-container.teal.medium.large .mat-list .mat-list-item,.rtl-container.teal.medium.large .mat-menu-item,.rtl-container.teal.medium.large .mat-nav-list .mat-list-item,.rtl-container.teal.medium.large .mat-option,.rtl-container.teal.medium.large .mat-select,.rtl-container.teal.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.teal.medium.large .logo{font-size:3.2rem}.rtl-container.teal.medium.large .font-60-percent{font-size:.96rem}.rtl-container.teal.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.teal.medium.large .icon-large{font-size:8rem}.rtl-container.teal.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.teal.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.teal.medium.large .size-triple{font-size:4.8rem}.rtl-container.teal.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.teal.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.teal.medium .mat-flat-button.mat-primary:focus,.rtl-container.teal.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.teal.large.small .mat-header-cell{font-weight:700}.rtl-container.teal.large.small .mr-4{margin-right:1rem!important}.rtl-container.teal.large.small .mat-menu-item,.rtl-container.teal.large.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.teal.large.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.teal.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.teal.large.small .fa-icon-small,.rtl-container.teal.large.small .genseed-message,.rtl-container.teal.large.small .top-icon-small,.rtl-container.teal.large.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.teal.large.small .page-sub-title-container,.rtl-container.teal.large.small .page-title-container{font-size:1.32rem}.rtl-container.teal.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.teal.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.teal.large.small .sidenav-img svg,.rtl-container.teal.large.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.teal.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.teal.large.small .material-icons,.rtl-container.teal.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.teal.large.small .mat-expansion-panel-header,.rtl-container.teal.large.small .mat-list .mat-list-item,.rtl-container.teal.large.small .mat-menu-item,.rtl-container.teal.large.small .mat-nav-list .mat-list-item,.rtl-container.teal.large.small .mat-option,.rtl-container.teal.large.small .mat-select,.rtl-container.teal.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.teal.large.small .logo{font-size:2.4rem}.rtl-container.teal.large.small .font-60-percent{font-size:.72rem}.rtl-container.teal.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.teal.large.small .icon-large{font-size:6rem}.rtl-container.teal.large.small .icon-small{font-size:1.8rem!important}.rtl-container.teal.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.teal.large.small .size-triple{font-size:3.6rem}.rtl-container.teal.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.teal.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.large.medium .mat-header-cell{font-weight:700}.rtl-container.teal.large.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.teal.large.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.teal.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.teal.large.medium .genseed-message,.rtl-container.teal.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.teal.large.medium .page-sub-title-container,.rtl-container.teal.large.medium .page-title-container{font-size:1.54rem}.rtl-container.teal.large.medium .fa-icon-small,.rtl-container.teal.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.teal.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.teal.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.teal.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.teal.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.teal.large.medium .sidenav-img svg,.rtl-container.teal.large.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.teal.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.teal.large.medium .material-icons{font-size:2.8rem}.rtl-container.teal.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.teal.large.medium .mat-expansion-panel-header,.rtl-container.teal.large.medium .mat-list .mat-list-item,.rtl-container.teal.large.medium .mat-menu-item,.rtl-container.teal.large.medium .mat-nav-list .mat-list-item,.rtl-container.teal.large.medium .mat-option,.rtl-container.teal.large.medium .mat-select,.rtl-container.teal.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.teal.large.medium .logo{font-size:2.8rem}.rtl-container.teal.large.medium .font-60-percent{font-size:.84rem}.rtl-container.teal.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.teal.large.medium .icon-large{font-size:7rem}.rtl-container.teal.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.teal.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.teal.large.medium .size-triple{font-size:4.2rem}.rtl-container.teal.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.teal.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.large.large .mat-header-cell{font-weight:800}.rtl-container.teal.large.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.teal.large.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.teal.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.teal.large.large .genseed-message,.rtl-container.teal.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.teal.large.large .page-sub-title-container,.rtl-container.teal.large.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.teal.large.large .fa-icon-small,.rtl-container.teal.large.large .modal-info-header,.rtl-container.teal.large.large .top-icon-small{font-size:1.92rem}.rtl-container.teal.large.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.teal.large.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.teal.large.large .sidenav-img svg,.rtl-container.teal.large.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.teal.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.teal.large.large .material-icons{font-size:4rem}.rtl-container.teal.large.large .mat-expansion-panel-header,.rtl-container.teal.large.large .mat-list .mat-list-item,.rtl-container.teal.large.large .mat-menu-item,.rtl-container.teal.large.large .mat-nav-list .mat-list-item,.rtl-container.teal.large.large .mat-option,.rtl-container.teal.large.large .mat-select,.rtl-container.teal.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.teal.large.large .logo{font-size:3.2rem}.rtl-container.teal.large.large .font-60-percent{font-size:.96rem}.rtl-container.teal.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.teal.large.large .icon-large{font-size:8rem}.rtl-container.teal.large.large .icon-small{font-size:2.4rem!important}.rtl-container.teal.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.teal.large.large .size-triple{font-size:4.8rem}.rtl-container.teal.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.teal.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.large .mat-icon.material-icons:focus{outline:none}.rtl-container.teal.large .mat-flat-button.mat-primary:focus,.rtl-container.teal.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.teal.day .mat-ripple-element{background-color:#0000001a}.rtl-container.teal.day .mat-option{color:#000000de}.rtl-container.teal.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.day .mat-option:focus:not(.mat-option-disabled),.rtl-container.teal.day .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.teal.day .mat-option.mat-active{background:#0000000a;color:#000000de}.rtl-container.teal.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.teal.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#00695c}.rtl-container.teal.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.teal.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.teal.day .mat-optgroup-label{color:#0000008a}.rtl-container.teal.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.teal.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.teal.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.teal.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.teal.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.teal.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#00695c}.rtl-container.teal.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.teal.day .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.teal.day .mat-pseudo-checkbox-checked,.rtl-container.teal.day .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.teal.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.teal.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.teal.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.teal.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.teal.day.mat-app-background,.rtl-container.teal.day .mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.teal.day .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.teal.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.teal.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.teal.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.teal.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.teal.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.teal.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.teal.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.teal.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.teal.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.teal.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.teal.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.teal.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.teal.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.teal.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.teal.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.teal.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.teal.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.teal.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.teal.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.teal.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.teal.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.teal.day .mat-autocomplete-panel{background:#fff;color:#000000de}.rtl-container.teal.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.rtl-container.teal.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.teal.day .mat-badge-content{color:#fff;background:#00695c}.cdk-high-contrast-active .rtl-container.teal.day .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.teal.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.teal.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.teal.day .mat-badge{position:relative}.rtl-container.teal.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.teal.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.teal.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.teal.day .mat-badge-content._mat-animation-noopable,.rtl-container.teal.day .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.teal.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.teal.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.teal.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.teal.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.teal.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.teal.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.teal.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.teal.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.teal.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.teal.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.teal.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.teal.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.teal.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.teal.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.teal.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.teal.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.teal.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.teal.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.teal.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.teal.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.teal.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.teal.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.teal.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.teal.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.teal.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.teal.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.teal.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.teal.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.teal.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.teal.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.teal.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.teal.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.teal.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.teal.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.teal.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.rtl-container.teal.day .mat-button,.rtl-container.teal.day .mat-icon-button,.rtl-container.teal.day .mat-stroked-button{color:inherit;background:#0000}.rtl-container.teal.day .mat-button.mat-primary,.rtl-container.teal.day .mat-icon-button.mat-primary,.rtl-container.teal.day .mat-stroked-button.mat-primary{color:#00695c}.rtl-container.teal.day .mat-button.mat-accent,.rtl-container.teal.day .mat-icon-button.mat-accent,.rtl-container.teal.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.teal.day .mat-button.mat-warn,.rtl-container.teal.day .mat-icon-button.mat-warn,.rtl-container.teal.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.teal.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-stroked-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.teal.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.teal.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.teal.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#00695c}.rtl-container.teal.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.teal.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.teal.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.teal.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.teal.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.teal.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.teal.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.teal.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.teal.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.teal.day .mat-button .mat-ripple-element,.rtl-container.teal.day .mat-icon-button .mat-ripple-element,.rtl-container.teal.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.teal.day .mat-button-focus-overlay{background:#000}.rtl-container.teal.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.teal.day .mat-fab,.rtl-container.teal.day .mat-flat-button,.rtl-container.teal.day .mat-mini-fab,.rtl-container.teal.day .mat-raised-button{color:#000000de;background-color:#fff}.rtl-container.teal.day .mat-fab.mat-accent,.rtl-container.teal.day .mat-fab.mat-primary,.rtl-container.teal.day .mat-fab.mat-warn,.rtl-container.teal.day .mat-flat-button.mat-accent,.rtl-container.teal.day .mat-flat-button.mat-primary,.rtl-container.teal.day .mat-flat-button.mat-warn,.rtl-container.teal.day .mat-mini-fab.mat-accent,.rtl-container.teal.day .mat-mini-fab.mat-primary,.rtl-container.teal.day .mat-mini-fab.mat-warn,.rtl-container.teal.day .mat-raised-button.mat-accent,.rtl-container.teal.day .mat-raised-button.mat-primary,.rtl-container.teal.day .mat-raised-button.mat-warn{color:#fff}.rtl-container.teal.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.teal.day .mat-fab.mat-primary,.rtl-container.teal.day .mat-flat-button.mat-primary,.rtl-container.teal.day .mat-mini-fab.mat-primary,.rtl-container.teal.day .mat-raised-button.mat-primary{background-color:#00695c}.rtl-container.teal.day .mat-fab.mat-accent,.rtl-container.teal.day .mat-flat-button.mat-accent,.rtl-container.teal.day .mat-mini-fab.mat-accent,.rtl-container.teal.day .mat-raised-button.mat-accent{background-color:#424242}.rtl-container.teal.day .mat-fab.mat-warn,.rtl-container.teal.day .mat-flat-button.mat-warn,.rtl-container.teal.day .mat-mini-fab.mat-warn,.rtl-container.teal.day .mat-raised-button.mat-warn{background-color:#b00020}.rtl-container.teal.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-warn.mat-button-disabled{background-color:#0000001f}.rtl-container.teal.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.teal.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.teal.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.teal.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.day .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.teal.day .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.teal.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.teal.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.teal.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.teal.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.teal.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.teal.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.day .mat-button-toggle-group,.rtl-container.teal.day .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.day .mat-button-toggle-group-appearance-standard,.rtl-container.teal.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.teal.day .mat-button-toggle{color:#00000061}.rtl-container.teal.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.teal.day .mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.rtl-container.teal.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.teal.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #0000001f}.rtl-container.teal.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #0000001f}.rtl-container.teal.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #0000001f}.rtl-container.teal.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.teal.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.teal.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.teal.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.rtl-container.teal.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.teal.day .mat-button-toggle-group-appearance-standard,.rtl-container.teal.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #0000001f}.rtl-container.teal.day .mat-card{background:#fff;color:#000000de}.rtl-container.teal.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.teal.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.day .mat-card-subtitle{color:#0000008a}.rtl-container.teal.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.teal.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.teal.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.teal.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.teal.day .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.teal.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#00695c}.rtl-container.teal.day .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.teal.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.teal.day .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.teal.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.teal.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.teal.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.teal.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.teal.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.teal.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.teal.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#00695c}.rtl-container.teal.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.teal.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.teal.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.teal.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.teal.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.teal.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip:after{background:#000}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#00695c;color:#fff}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.day .mat-table{background:#fff}.rtl-container.teal.day .mat-table-sticky,.rtl-container.teal.day .mat-table tbody,.rtl-container.teal.day .mat-table tfoot,.rtl-container.teal.day .mat-table thead,.rtl-container.teal.day [mat-footer-row],.rtl-container.teal.day [mat-header-row],.rtl-container.teal.day [mat-row],.rtl-container.teal.day mat-footer-row,.rtl-container.teal.day mat-header-row,.rtl-container.teal.day mat-row{background:inherit}.rtl-container.teal.day mat-footer-row,.rtl-container.teal.day mat-header-row,.rtl-container.teal.day mat-row,.rtl-container.teal.day td.mat-cell,.rtl-container.teal.day td.mat-footer-cell,.rtl-container.teal.day th.mat-header-cell{border-bottom-color:#0000001f}.rtl-container.teal.day .mat-header-cell{color:#0000008a}.rtl-container.teal.day .mat-cell,.rtl-container.teal.day .mat-footer-cell{color:#000000de}.rtl-container.teal.day .mat-calendar-arrow{border-top-color:#0000008a}.rtl-container.teal.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.teal.day .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.teal.day .mat-datepicker-toggle{color:#0000008a}.rtl-container.teal.day .mat-calendar-table-header{color:#00000061}.rtl-container.teal.day .mat-calendar-table-header-divider:after{background:#0000001f}.rtl-container.teal.day .mat-calendar-body-label{color:#0000008a}.rtl-container.teal.day .mat-calendar-body-cell-content,.rtl-container.teal.day .mat-date-range-input-separator{color:#000000de;border-color:#0000}.rtl-container.teal.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.teal.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.teal.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.teal.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.teal.day .mat-calendar-body-in-range:before{background:#00695c33}.rtl-container.teal.day .mat-calendar-body-comparison-identical,.rtl-container.teal.day .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.teal.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#00695c33 50%,#f9ab0033 0)}.rtl-container.teal.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#00695c33 50%,#f9ab0033 0)}.rtl-container.teal.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.teal.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.teal.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.day .mat-calendar-body-selected{background-color:#00695c;color:#fff}.rtl-container.teal.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#00695c66}.rtl-container.teal.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#00695c4d}.rtl-container.teal.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#fff;color:#000000de}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#42424233}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#42424233 50%,#f9ab0033 0)}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#42424233 50%,#f9ab0033 0)}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#b0002033}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}.rtl-container.teal.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.teal.day .mat-datepicker-toggle-active{color:#00695c}.rtl-container.teal.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.teal.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.teal.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.teal.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.rtl-container.teal.day .mat-divider{border-top-color:#0000001f}.rtl-container.teal.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.teal.day .mat-expansion-panel{background:#fff;color:#000000de}.rtl-container.teal.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.day .mat-action-row{border-top-color:#0000001f}.rtl-container.teal.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.teal.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.teal.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.teal.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.rtl-container.teal.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.teal.day .mat-expansion-indicator:after,.rtl-container.teal.day .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.teal.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.teal.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.teal.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.teal.day .mat-form-field-label,.rtl-container.teal.day .mat-hint{color:#0009}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-label{color:#00695c}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.teal.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.teal.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#00695c}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#00695c}.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.teal.day .mat-error{color:#b00020}.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.teal.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.teal.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.teal.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.teal.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.teal.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.teal.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.teal.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.teal.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.teal.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.teal.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#00695c}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.teal.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.teal.day .mat-icon.mat-primary{color:#00695c}.rtl-container.teal.day .mat-icon.mat-accent{color:#424242}.rtl-container.teal.day .mat-icon.mat-warn{color:#b00020}.rtl-container.teal.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after,.rtl-container.teal.day .mat-input-element:disabled{color:#00000061}.rtl-container.teal.day .mat-input-element{caret-color:#00695c}.rtl-container.teal.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.teal.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.teal.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.teal.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.teal.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.teal.day .mat-form-field-invalid .mat-input-element,.rtl-container.teal.day .mat-form-field.mat-warn .mat-input-element{caret-color:#b00020}.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.teal.day .mat-list-base .mat-list-item,.rtl-container.teal.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.teal.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.teal.day .mat-list-item-disabled{background-color:#eee}.rtl-container.teal.day .mat-action-list .mat-list-item:focus,.rtl-container.teal.day .mat-action-list .mat-list-item:hover,.rtl-container.teal.day .mat-list-option:focus,.rtl-container.teal.day .mat-list-option:hover,.rtl-container.teal.day .mat-nav-list .mat-list-item:focus,.rtl-container.teal.day .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.teal.day .mat-list-single-selected-option,.rtl-container.teal.day .mat-list-single-selected-option:focus,.rtl-container.teal.day .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.teal.day .mat-menu-panel{background:#fff}.rtl-container.teal.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.day .mat-menu-item{background:#0000;color:#000000de}.rtl-container.teal.day .mat-menu-item[disabled],.rtl-container.teal.day .mat-menu-item[disabled] .mat-icon-no-color,.rtl-container.teal.day .mat-menu-item[disabled]:after{color:#00000061}.rtl-container.teal.day .mat-menu-item-submenu-trigger:after,.rtl-container.teal.day .mat-menu-item .mat-icon-no-color{color:#0000008a}.rtl-container.teal.day .mat-menu-item-highlighted:not([disabled]),.rtl-container.teal.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.teal.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.teal.day .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.teal.day .mat-paginator{background:#fff}.rtl-container.teal.day .mat-paginator,.rtl-container.teal.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.teal.day .mat-paginator-decrement,.rtl-container.teal.day .mat-paginator-increment{border-top:2px solid #0000008a;border-right:2px solid #0000008a}.rtl-container.teal.day .mat-paginator-first,.rtl-container.teal.day .mat-paginator-last{border-top:2px solid #0000008a}.rtl-container.teal.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.teal.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.teal.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.teal.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.teal.day .mat-progress-bar-background{fill:#bcd6d3}.rtl-container.teal.day .mat-progress-bar-buffer{background-color:#bcd6d3}.rtl-container.teal.day .mat-progress-bar-fill:after{background-color:#00695c}.rtl-container.teal.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.teal.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.teal.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.teal.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.teal.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.teal.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.teal.day .mat-progress-spinner circle,.rtl-container.teal.day .mat-spinner circle{stroke:#00695c}.rtl-container.teal.day .mat-progress-spinner.mat-accent circle,.rtl-container.teal.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.teal.day .mat-progress-spinner.mat-warn circle,.rtl-container.teal.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.teal.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.teal.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#00695c}.rtl-container.teal.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.teal.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#00695c}.rtl-container.teal.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.teal.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.teal.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.teal.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.teal.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.teal.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.teal.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.teal.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.teal.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.rtl-container.teal.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:#00000061}.rtl-container.teal.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.teal.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.teal.day .mat-select-value{color:#000000de}.rtl-container.teal.day .mat-select-placeholder{color:#0000006b}.rtl-container.teal.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.teal.day .mat-select-arrow{color:#0000008a}.rtl-container.teal.day .mat-select-panel{background:#fff}.rtl-container.teal.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.teal.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#00695c}.rtl-container.teal.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.teal.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.teal.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.teal.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.teal.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.teal.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.teal.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.teal.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.teal.day .mat-drawer-side{border-right:1px solid #0000001f}.rtl-container.teal.day .mat-drawer-side.mat-drawer-end,.rtl-container.teal.day [dir=rtl] .mat-drawer-side{border-left:1px solid #0000001f;border-right:none}.rtl-container.teal.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #0000001f}.rtl-container.teal.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.teal.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.teal.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.teal.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.teal.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#00695c}.rtl-container.teal.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#00695c8a}.rtl-container.teal.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#00695c}.rtl-container.teal.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.teal.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.teal.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.teal.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.teal.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#fafafa}.rtl-container.teal.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.teal.day .mat-slider-track-background{background-color:#00000042}.rtl-container.teal.day .mat-primary .mat-slider-thumb,.rtl-container.teal.day .mat-primary .mat-slider-thumb-label,.rtl-container.teal.day .mat-primary .mat-slider-track-fill{background-color:#00695c}.rtl-container.teal.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.day .mat-primary .mat-slider-focus-ring{background-color:#00695c33}.rtl-container.teal.day .mat-accent .mat-slider-thumb,.rtl-container.teal.day .mat-accent .mat-slider-thumb-label,.rtl-container.teal.day .mat-accent .mat-slider-track-fill{background-color:#424242}.rtl-container.teal.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.teal.day .mat-warn .mat-slider-thumb,.rtl-container.teal.day .mat-warn .mat-slider-thumb-label,.rtl-container.teal.day .mat-warn .mat-slider-track-fill{background-color:#b00020}.rtl-container.teal.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.teal.day .cdk-focused .mat-slider-track-background,.rtl-container.teal.day .mat-slider:hover .mat-slider-track-background{background-color:#00000061}.rtl-container.teal.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.teal.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.teal.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.teal.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.teal.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.teal.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.teal.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.teal.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.teal.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:initial}.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#00000061}.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.teal.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.teal.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#000000b3,#000000b3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.teal.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.teal.day .mat-step-header.cdk-keyboard-focused,.rtl-container.teal.day .mat-step-header.cdk-program-focused,.rtl-container.teal.day .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.teal.day .mat-step-header:hover{background:none}}.rtl-container.teal.day .mat-step-header .mat-step-label,.rtl-container.teal.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.teal.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.teal.day .mat-step-header .mat-step-icon-selected,.rtl-container.teal.day .mat-step-header .mat-step-icon-state-done,.rtl-container.teal.day .mat-step-header .mat-step-icon-state-edit{background-color:#00695c;color:#fff}.rtl-container.teal.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.teal.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.teal.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.teal.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.teal.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.teal.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.teal.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.teal.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.teal.day .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#b00020}.rtl-container.teal.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.teal.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.teal.day .mat-stepper-horizontal,.rtl-container.teal.day .mat-stepper-vertical{background-color:#fff}.rtl-container.teal.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.teal.day .mat-horizontal-stepper-header:after,.rtl-container.teal.day .mat-horizontal-stepper-header:before,.rtl-container.teal.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.teal.day .mat-sort-header-arrow{color:#757575}.rtl-container.teal.day .mat-tab-header,.rtl-container.teal.day .mat-tab-nav-bar{border-bottom:1px solid #0000001f}.rtl-container.teal.day .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.teal.day .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #0000001f;border-bottom:none}.rtl-container.teal.day .mat-tab-label,.rtl-container.teal.day .mat-tab-link{color:#000000de}.rtl-container.teal.day .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.teal.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.teal.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.teal.day .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.teal.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.teal.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#4db6ac4d}.rtl-container.teal.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#00695c}.rtl-container.teal.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.teal.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.teal.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.teal.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.teal.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#4db6ac4d}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#00695c}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.teal.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#424242}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.teal.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#b00020}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.teal.day .mat-toolbar{background:#f5f5f5;color:#000000de}.rtl-container.teal.day .mat-toolbar.mat-primary{background:#00695c;color:#fff}.rtl-container.teal.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.teal.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.teal.day .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.teal.day .mat-toolbar .mat-form-field-ripple,.rtl-container.teal.day .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.teal.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.teal.day .mat-toolbar .mat-form-field-label,.rtl-container.teal.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.teal.day .mat-toolbar .mat-select-arrow,.rtl-container.teal.day .mat-toolbar .mat-select-value{color:inherit}.rtl-container.teal.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.teal.day .mat-tooltip{background:#616161e6}.rtl-container.teal.day .mat-tree{background:#fff}.rtl-container.teal.day .mat-nested-tree-node,.rtl-container.teal.day .mat-tree-node{color:#000000de}.rtl-container.teal.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.teal.day .mat-simple-snackbar-action{color:#424242}.rtl-container.teal.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.teal.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.teal.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.teal.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.teal.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.teal.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.teal.day .rtl-top-toolbar{border-bottom:1px solid #fff}.rtl-container.teal.day .bg-primary{background-color:#00695c;color:#fff}.rtl-container.teal.day .rtl-snack-bar{color:#00695c}.rtl-container.teal.day .rtl-snack-bar,.rtl-container.teal.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important}.rtl-container.teal.day .rtl-warn-snack-bar{color:#b00020}.rtl-container.teal.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.teal.day .mat-tab-label.mat-tab-label-active{color:#00695c}.rtl-container.teal.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#00695c}.rtl-container.teal.day .mat-tab-label .tab-badge .mat-badge-content{background:#0000008a}.rtl-container.teal.day .mat-form-field-suffix,.rtl-container.teal.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.teal.day .ng-fa-icon{color:#0000008a}.rtl-container.teal.day .mat-stroked-button.mat-primary{border-color:#00695c}.rtl-container.teal.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.teal.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.teal.day .selected-color{border-color:#4db6ac}.rtl-container.teal.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.teal.day .page-sub-title-container,.rtl-container.teal.day .page-title-container{color:#0000008a}.rtl-container.teal.day .page-sub-title-container .page-title-img,.rtl-container.teal.day .page-title-container .page-title-img{color:#00000061}.rtl-container.teal.day .page-sub-title-container .mat-input-element,.rtl-container.teal.day .page-sub-title-container .mat-radio-label-content,.rtl-container.teal.day .page-sub-title-container .theme-name,.rtl-container.teal.day .page-title-container .mat-input-element,.rtl-container.teal.day .page-title-container .mat-radio-label-content,.rtl-container.teal.day .page-title-container .theme-name{color:#000000de}.rtl-container.teal.day .cc-data-block .cc-data-title{color:#00695c}.rtl-container.teal.day .active-link,.rtl-container.teal.day .active-link .fa-icon-small{color:#00695c;font-weight:500;cursor:pointer;fill:#00695c}.rtl-container.teal.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.teal.day .mat-nested-tree-node-parent:hover,.rtl-container.teal.day .mat-select-panel .mat-option:hover,.rtl-container.teal.day .mat-tree-node:hover{color:#00695c;cursor:pointer;background:#0000000a}.rtl-container.teal.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.teal.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.teal.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.teal.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.teal.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.teal.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.teal.day .mat-tree-node:hover .mat-icon,.rtl-container.teal.day .mat-tree-node:hover .ng-fa-icon{color:#00695c}.rtl-container.teal.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.teal.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.teal.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.teal.day .mat-tree-node:hover .sidenav-img svg{fill:#00695c}.rtl-container.teal.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.teal.day .mat-nested-tree-node .sidenav-img,.rtl-container.teal.day .mat-tree-node .sidenav-img,.rtl-container.teal.day .page-title-container .page-title-img,.rtl-container.teal.day svg.top-icon-small{fill:#000000de}.rtl-container.teal.day .mat-progress-bar-fill:after{background-color:#004d40}.rtl-container.teal.day .modal-qr-code-container{background:#0000001f}.rtl-container.teal.day .mat-tab-label,.rtl-container.teal.day .mat-tab-link{color:#0000008a}.rtl-container.teal.day .mat-card,.rtl-container.teal.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid #0000001f}.rtl-container.teal.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.teal.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.teal.day .dashboard-info-title{color:#00695c}.rtl-container.teal.day .dashboard-info-value{color:#0000008a}.rtl-container.teal.day .color-primary{color:#00695c!important}.rtl-container.teal.day .dot-primary{background-color:#00695c!important}.rtl-container.teal.day .dot-primary-lighter{background-color:#4db6ac!important}.rtl-container.teal.day .mat-expansion-panel.flat-expansion-panel{border:1px solid #0000001f}.rtl-container.teal.day .mat-tooltip{font-size:120%}.rtl-container.teal.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.teal.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.teal.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.teal.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.teal.day svg .fill-color-1{fill:#fff}.rtl-container.teal.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.teal.day svg .fill-color-3,.rtl-container.teal.day svg .fill-color-4,.rtl-container.teal.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.teal.day svg .fill-color-6{fill:#fff}.rtl-container.teal.day svg .fill-color-7,.rtl-container.teal.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.teal.day svg .fill-color-9{fill:#fff}.rtl-container.teal.day svg .fill-color-10,.rtl-container.teal.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.teal.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.teal.day svg .fill-color-13,.rtl-container.teal.day svg .fill-color-14,.rtl-container.teal.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.teal.day svg .fill-color-16,.rtl-container.teal.day svg .fill-color-17{fill:#404040}.rtl-container.teal.day svg .fill-color-18{fill:#000}.rtl-container.teal.day svg .fill-color-19,.rtl-container.teal.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.teal.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.teal.day svg .fill-color-22,.rtl-container.teal.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.teal.day svg .fill-color-24{fill:#000}.rtl-container.teal.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.teal.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.teal.day svg .fill-color-27{fill:#000}.rtl-container.teal.day svg .fill-color-28{fill:#313131}.rtl-container.teal.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.teal.day svg .fill-color-30{fill:#fff}.rtl-container.teal.day svg .fill-color-31{fill:#00695c}.rtl-container.teal.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.teal.day svg .fill-color-primary{fill:#00695c}.rtl-container.teal.day svg .fill-color-primary-lighter{fill:#4db6ac}.rtl-container.teal.day svg .fill-color-primary-darker{fill:#00695c}.rtl-container.teal.day .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.teal.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.teal.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.teal.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.teal.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.teal.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.teal.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#00695c}.rtl-container.teal.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.teal.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#004d40}.rtl-container.teal.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.teal.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#80cbc4}.rtl-container.teal.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.teal.day .mat-progress-bar-buffer{background-color:#b2dfdb}.rtl-container.teal.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.teal.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.teal.day .foreground.mat-progress-spinner circle,.rtl-container.teal.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.teal.day .mat-toolbar-row,.rtl-container.teal.day .mat-toolbar-single-row{height:5rem}.rtl-container.teal.day .lnd-info{border-bottom:1px solid #0000001f}.rtl-container.teal.day a{color:#00695c}.rtl-container.teal.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.teal.day .h-active-link{border-bottom:2px solid #fff}.rtl-container.teal.day .mat-icon-36{color:#0000008a}.rtl-container.teal.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.teal.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.teal.day .genseed-message{width:10%;color:#00695c}.rtl-container.teal.day .material-icons.primary{color:#00695c}.rtl-container.teal.day .material-icons.accent{color:#424242}.rtl-container.teal.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.teal.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.teal.day .row-disabled{background-color:gray}.rtl-container.teal.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.teal.day .mat-menu-panel{min-width:6.4rem}.rtl-container.teal.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.teal.day .horizontal-button:hover{background:#4db6ac;color:#424242}.rtl-container.teal.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#00695c}.rtl-container.teal.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.teal.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.teal.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.teal.day .mat-cell,.rtl-container.teal.day .mat-footer-cell,.rtl-container.teal.day .mat-header-cell{border-bottom:1px solid #0000001f}.rtl-container.teal.day table.mat-table{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.teal.day table.mat-table thead tr th{color:#000}.rtl-container.teal.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.teal.day .bordered-box{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.teal.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.teal.day .mat-expansion-panel{border:1px solid #0000001f}.rtl-container.teal.day .more-button{color:#00000061}.rtl-container.teal.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.teal.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.teal.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.teal.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.teal.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.teal.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.teal.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.teal.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.teal.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.teal.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.teal.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.teal.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.teal.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.teal.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.teal.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.teal.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.teal.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.teal.day .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#80cbc4!important}.rtl-container.teal.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#00897b!important}.rtl-container.teal.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.teal.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.teal.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.teal.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.teal.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid #0000008a}.rtl-container.teal.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.teal.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.teal.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.teal.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.teal.day .color-warn{color:#b00020}.rtl-container.teal.day .fill-warn{fill:#b00020}.rtl-container.teal.day .alert{border:1px solid #0000008a;color:#0000008a;background-color:#0000000a}.rtl-container.teal.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.teal.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.teal.day .alert.alert-info a{color:#004085}.rtl-container.teal.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.teal.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.teal.day .alert.alert-warn a{color:#856404}.rtl-container.teal.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.teal.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.teal.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.teal.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.teal.day .help-expansion .mat-expansion-panel-header,.rtl-container.teal.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.teal.day .help-expansion .mat-expansion-indicator:after,.rtl-container.teal.day .help-expansion .mat-expansion-panel-content,.rtl-container.teal.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.teal.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.teal.day .failed-status{color:#b00020}.rtl-container.teal.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.teal.day .svg-fill-primary{fill:#00695c}.rtl-container.teal.day .svg-fill-primary-lighter{fill:#4db6ac}.rtl-container.teal.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.teal.day ngx-charts-bar-vertical-2d text,.rtl-container.teal.day ngx-charts-bar-vertical text{fill:#000000de}.rtl-container.teal.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.teal.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.teal.day .mat-paginator-container{padding:0}.rtl-container.teal.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-option{color:#fff}.rtl-container.teal.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.night .mat-option:focus:not(.mat-option-disabled),.rtl-container.teal.night .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.teal.night .mat-option.mat-active{background:#0000000a;color:#fff}.rtl-container.teal.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#00695c}.rtl-container.teal.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.teal.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.teal.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.teal.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.teal.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.teal.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#00695c}.rtl-container.teal.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.teal.night .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.teal.night .mat-pseudo-checkbox-checked,.rtl-container.teal.night .mat-pseudo-checkbox-indeterminate{background:#eee}.rtl-container.teal.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.teal.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.teal.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.teal.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.teal.night.mat-app-background,.rtl-container.teal.night .mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.teal.night .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.teal.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.teal.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.teal.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.teal.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.teal.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.teal.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.teal.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.teal.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.teal.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.teal.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.teal.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.teal.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.teal.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.teal.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.teal.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.teal.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.teal.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.teal.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.teal.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.teal.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.teal.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.teal.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.teal.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.teal.night .mat-badge-content{color:#fff;background:#00695c}.cdk-high-contrast-active .rtl-container.teal.night .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.teal.night .mat-badge-accent .mat-badge-content{background:#eee;color:#000}.rtl-container.teal.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.teal.night .mat-badge{position:relative}.rtl-container.teal.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.teal.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.teal.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.teal.night .mat-badge-content._mat-animation-noopable,.rtl-container.teal.night .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.teal.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.teal.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.teal.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.teal.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.teal.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.teal.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.teal.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.teal.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.teal.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.teal.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.teal.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.teal.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.teal.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.teal.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.teal.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.teal.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.teal.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.teal.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.teal.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.teal.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.teal.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.teal.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.teal.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.teal.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.teal.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.teal.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.teal.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.teal.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.teal.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.teal.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.teal.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.teal.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.teal.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.teal.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.teal.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.teal.night .mat-button,.rtl-container.teal.night .mat-icon-button,.rtl-container.teal.night .mat-stroked-button{color:inherit;background:#0000}.rtl-container.teal.night .mat-button.mat-primary,.rtl-container.teal.night .mat-icon-button.mat-primary,.rtl-container.teal.night .mat-stroked-button.mat-primary{color:#00695c}.rtl-container.teal.night .mat-button.mat-accent,.rtl-container.teal.night .mat-icon-button.mat-accent,.rtl-container.teal.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.teal.night .mat-button.mat-warn,.rtl-container.teal.night .mat-icon-button.mat-warn,.rtl-container.teal.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.teal.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-stroked-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.teal.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.teal.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.teal.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#00695c}.rtl-container.teal.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.teal.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.teal.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.teal.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.teal.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.teal.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.teal.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.teal.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.teal.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.teal.night .mat-button .mat-ripple-element,.rtl-container.teal.night .mat-icon-button .mat-ripple-element,.rtl-container.teal.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.teal.night .mat-button-focus-overlay{background:#fff}.rtl-container.teal.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.teal.night .mat-fab,.rtl-container.teal.night .mat-flat-button,.rtl-container.teal.night .mat-mini-fab,.rtl-container.teal.night .mat-raised-button{color:#fff;background-color:#363636}.rtl-container.teal.night .mat-fab.mat-primary,.rtl-container.teal.night .mat-flat-button.mat-primary,.rtl-container.teal.night .mat-mini-fab.mat-primary,.rtl-container.teal.night .mat-raised-button.mat-primary{color:#fff}.rtl-container.teal.night .mat-fab.mat-accent,.rtl-container.teal.night .mat-flat-button.mat-accent,.rtl-container.teal.night .mat-mini-fab.mat-accent,.rtl-container.teal.night .mat-raised-button.mat-accent{color:#000}.rtl-container.teal.night .mat-fab.mat-warn,.rtl-container.teal.night .mat-flat-button.mat-warn,.rtl-container.teal.night .mat-mini-fab.mat-warn,.rtl-container.teal.night .mat-raised-button.mat-warn{color:#fff}.rtl-container.teal.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.teal.night .mat-fab.mat-primary,.rtl-container.teal.night .mat-flat-button.mat-primary,.rtl-container.teal.night .mat-mini-fab.mat-primary,.rtl-container.teal.night .mat-raised-button.mat-primary{background-color:#00695c}.rtl-container.teal.night .mat-fab.mat-accent,.rtl-container.teal.night .mat-flat-button.mat-accent,.rtl-container.teal.night .mat-mini-fab.mat-accent,.rtl-container.teal.night .mat-raised-button.mat-accent{background-color:#eee}.rtl-container.teal.night .mat-fab.mat-warn,.rtl-container.teal.night .mat-flat-button.mat-warn,.rtl-container.teal.night .mat-mini-fab.mat-warn,.rtl-container.teal.night .mat-raised-button.mat-warn{background-color:#ff343b}.rtl-container.teal.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-warn.mat-button-disabled{background-color:#404040}.rtl-container.teal.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.teal.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.teal.night .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.teal.night .mat-raised-button.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.teal.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.teal.night .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.teal.night .mat-raised-button.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.teal.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.teal.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.teal.night .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.teal.night .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.teal.night .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.teal.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.teal.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.teal.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.teal.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.teal.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.teal.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.night .mat-button-toggle-group,.rtl-container.teal.night .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.night .mat-button-toggle-group-appearance-standard,.rtl-container.teal.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.teal.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.teal.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #ffffff4d}.rtl-container.teal.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.teal.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #ffffff4d}.rtl-container.teal.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.teal.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.teal.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.teal.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.teal.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.teal.night .mat-button-toggle-group-appearance-standard,.rtl-container.teal.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #ffffff4d}.rtl-container.teal.night .mat-card{background:#202020;color:#fff}.rtl-container.teal.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.teal.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.teal.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.teal.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.teal.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.teal.night .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.teal.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#00695c}.rtl-container.teal.night .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.teal.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.teal.night .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.teal.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.teal.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.teal.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.teal.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.teal.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.teal.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.teal.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#00695c}.rtl-container.teal.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.teal.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eee}.rtl-container.teal.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.teal.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.teal.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.teal.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.teal.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip:after{background:#fff}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#00695c;color:#fff}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.teal.night .mat-table{background:#202020}.rtl-container.teal.night .mat-table-sticky,.rtl-container.teal.night .mat-table tbody,.rtl-container.teal.night .mat-table tfoot,.rtl-container.teal.night .mat-table thead,.rtl-container.teal.night [mat-footer-row],.rtl-container.teal.night [mat-header-row],.rtl-container.teal.night [mat-row],.rtl-container.teal.night mat-footer-row,.rtl-container.teal.night mat-header-row,.rtl-container.teal.night mat-row{background:inherit}.rtl-container.teal.night mat-footer-row,.rtl-container.teal.night mat-header-row,.rtl-container.teal.night mat-row,.rtl-container.teal.night td.mat-cell,.rtl-container.teal.night td.mat-footer-cell,.rtl-container.teal.night th.mat-header-cell{border-bottom-color:#ffffff4d}.rtl-container.teal.night .mat-cell,.rtl-container.teal.night .mat-footer-cell{color:#fff}.rtl-container.teal.night .mat-calendar-arrow{border-top-color:#fff}.rtl-container.teal.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.teal.night .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.teal.night .mat-datepicker-toggle{color:#fff}.rtl-container.teal.night .mat-calendar-table-header-divider:after{background:#ffffff4d}.rtl-container.teal.night .mat-calendar-body-cell-content,.rtl-container.teal.night .mat-date-range-input-separator{color:#fff;border-color:#0000}.rtl-container.teal.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.teal.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.teal.night .mat-calendar-body-in-range:before{background:#00695c33}.rtl-container.teal.night .mat-calendar-body-comparison-identical,.rtl-container.teal.night .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.teal.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#00695c33 50%,#f9ab0033 0)}.rtl-container.teal.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#00695c33 50%,#f9ab0033 0)}.rtl-container.teal.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.teal.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.teal.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.night .mat-calendar-body-selected{background-color:#00695c;color:#fff}.rtl-container.teal.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#00695c66}.rtl-container.teal.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#00695c4d}.rtl-container.teal.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#202020;color:#fff}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#eee3}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#eee3 50%,#f9ab0033 0)}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#eee3 50%,#f9ab0033 0)}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.teal.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#ff343b33}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}.rtl-container.teal.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.teal.night .mat-datepicker-toggle-active{color:#00695c}.rtl-container.teal.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.teal.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.teal.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.teal.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.teal.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.teal.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.teal.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.teal.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.teal.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.teal.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.teal.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.teal.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.teal.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.teal.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.teal.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.teal.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-label{color:#00695c}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.teal.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.teal.night .mat-form-field-ripple{background-color:#fff}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#00695c}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.teal.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#00695c}.rtl-container.teal.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.teal.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.teal.night .mat-error{color:#ff343b}.rtl-container.teal.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.teal.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.teal.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.teal.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.teal.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.teal.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.teal.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.teal.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.teal.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.teal.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.teal.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#00695c}.rtl-container.teal.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.teal.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.teal.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.teal.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.teal.night .mat-icon.mat-primary{color:#00695c}.rtl-container.teal.night .mat-icon.mat-accent{color:#eee}.rtl-container.teal.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.teal.night .mat-input-element{caret-color:#00695c}.rtl-container.teal.night .mat-input-element option{color:#000000de}.rtl-container.teal.night .mat-input-element option:disabled{color:#00000061}.rtl-container.teal.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.teal.night .mat-form-field-invalid .mat-input-element,.rtl-container.teal.night .mat-form-field.mat-warn .mat-input-element{caret-color:#ff343b}.rtl-container.teal.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.teal.night .mat-list-base .mat-list-item,.rtl-container.teal.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.teal.night .mat-list-item-disabled{background-color:#444}.rtl-container.teal.night .mat-action-list .mat-list-item:focus,.rtl-container.teal.night .mat-action-list .mat-list-item:hover,.rtl-container.teal.night .mat-list-option:focus,.rtl-container.teal.night .mat-list-option:hover,.rtl-container.teal.night .mat-nav-list .mat-list-item:focus,.rtl-container.teal.night .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.teal.night .mat-list-single-selected-option,.rtl-container.teal.night .mat-list-single-selected-option:focus,.rtl-container.teal.night .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.teal.night .mat-menu-panel{background:#202020}.rtl-container.teal.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.night .mat-menu-item{background:#0000;color:#fff}.rtl-container.teal.night .mat-menu-item-submenu-trigger:after,.rtl-container.teal.night .mat-menu-item .mat-icon-no-color{color:#fff}.rtl-container.teal.night .mat-menu-item-highlighted:not([disabled]),.rtl-container.teal.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.teal.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.teal.night .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.teal.night .mat-paginator{background:#202020}.rtl-container.teal.night .mat-paginator-decrement,.rtl-container.teal.night .mat-paginator-increment{border-top:2px solid #fff;border-right:2px solid #fff}.rtl-container.teal.night .mat-paginator-first,.rtl-container.teal.night .mat-paginator-last{border-top:2px solid #fff}.rtl-container.teal.night .mat-progress-bar-background{fill:#0a2421}.rtl-container.teal.night .mat-progress-bar-buffer{background-color:#0a2421}.rtl-container.teal.night .mat-progress-bar-fill:after{background-color:#00695c}.rtl-container.teal.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.teal.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.teal.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.teal.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.teal.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.teal.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.teal.night .mat-progress-spinner circle,.rtl-container.teal.night .mat-spinner circle{stroke:#00695c}.rtl-container.teal.night .mat-progress-spinner.mat-accent circle,.rtl-container.teal.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.teal.night .mat-progress-spinner.mat-warn circle,.rtl-container.teal.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.teal.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#00695c}.rtl-container.teal.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.teal.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#00695c}.rtl-container.teal.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.teal.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.teal.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.teal.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.teal.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.teal.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.teal.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.teal.night .mat-select-value{color:#fff}.rtl-container.teal.night .mat-select-panel{background:#202020}.rtl-container.teal.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.teal.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#00695c}.rtl-container.teal.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.teal.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.teal.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.teal.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.teal.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.teal.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.teal.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.teal.night .mat-drawer-side{border-right:1px solid #ffffff4d}.rtl-container.teal.night .mat-drawer-side.mat-drawer-end,.rtl-container.teal.night [dir=rtl] .mat-drawer-side{border-left:1px solid #ffffff4d;border-right:none}.rtl-container.teal.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.teal.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.teal.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.teal.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.teal.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.teal.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#00695c}.rtl-container.teal.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#00695c8a}.rtl-container.teal.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#00695c}.rtl-container.teal.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.teal.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.teal.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.teal.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.teal.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#bdbdbd}.rtl-container.teal.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.teal.night .mat-primary .mat-slider-thumb,.rtl-container.teal.night .mat-primary .mat-slider-thumb-label,.rtl-container.teal.night .mat-primary .mat-slider-track-fill{background-color:#00695c}.rtl-container.teal.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.night .mat-primary .mat-slider-focus-ring{background-color:#00695c33}.rtl-container.teal.night .mat-accent .mat-slider-thumb,.rtl-container.teal.night .mat-accent .mat-slider-thumb-label,.rtl-container.teal.night .mat-accent .mat-slider-track-fill{background-color:#eee}.rtl-container.teal.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.teal.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.teal.night .mat-warn .mat-slider-thumb,.rtl-container.teal.night .mat-warn .mat-slider-thumb-label,.rtl-container.teal.night .mat-warn .mat-slider-track-fill{background-color:#ff343b}.rtl-container.teal.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.teal.night .cdk-focused .mat-slider-track-background,.rtl-container.teal.night .mat-slider:hover .mat-slider-track-background{background-color:#fff9}.rtl-container.teal.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.teal.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.teal.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.teal.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.teal.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.teal.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.teal.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.teal.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.teal.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:initial}.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#fff9}.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.teal.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.teal.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.teal.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.teal.night .mat-step-header.cdk-keyboard-focused,.rtl-container.teal.night .mat-step-header.cdk-program-focused,.rtl-container.teal.night .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.teal.night .mat-step-header:hover{background:none}}.rtl-container.teal.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.teal.night .mat-step-header .mat-step-icon-selected,.rtl-container.teal.night .mat-step-header .mat-step-icon-state-done,.rtl-container.teal.night .mat-step-header .mat-step-icon-state-edit{background-color:#00695c;color:#fff}.rtl-container.teal.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.teal.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.teal.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.teal.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.teal.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.teal.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.teal.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.teal.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.teal.night .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#ff343b}.rtl-container.teal.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.teal.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.teal.night .mat-stepper-horizontal,.rtl-container.teal.night .mat-stepper-vertical{background-color:#202020}.rtl-container.teal.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.teal.night .mat-horizontal-stepper-header:after,.rtl-container.teal.night .mat-horizontal-stepper-header:before,.rtl-container.teal.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.teal.night .mat-tab-header,.rtl-container.teal.night .mat-tab-nav-bar{border-bottom:1px solid #ffffff4d}.rtl-container.teal.night .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.teal.night .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #ffffff4d;border-bottom:none}.rtl-container.teal.night .mat-tab-label,.rtl-container.teal.night .mat-tab-link{color:#fff}.rtl-container.teal.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.teal.night .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.teal.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.teal.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#4db6ac4d}.rtl-container.teal.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#00695c}.rtl-container.teal.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.teal.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.teal.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.teal.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.teal.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.teal.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#4db6ac4d}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#00695c}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.teal.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#eee}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#000}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#0006}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#0000001f}.rtl-container.teal.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#ff343b}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.teal.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.teal.night .mat-toolbar.mat-primary{background:#00695c;color:#fff}.rtl-container.teal.night .mat-toolbar.mat-accent{background:#eee;color:#000}.rtl-container.teal.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.teal.night .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.teal.night .mat-toolbar .mat-form-field-ripple,.rtl-container.teal.night .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.teal.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.teal.night .mat-toolbar .mat-form-field-label,.rtl-container.teal.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.teal.night .mat-toolbar .mat-select-arrow,.rtl-container.teal.night .mat-toolbar .mat-select-value{color:inherit}.rtl-container.teal.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.teal.night .mat-tree{background:#202020}.rtl-container.teal.night .mat-nested-tree-node,.rtl-container.teal.night .mat-tree-node{color:#fff}.rtl-container.teal.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.teal.night .mat-simple-snackbar-action{color:inherit}.rtl-container.teal.night .mat-primary{color:#64ffda}.rtl-container.teal.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.teal.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.teal.night .bg-primary{background-color:#00695c;color:#fff}.rtl-container.teal.night .mat-tab-label.mat-tab-label-active{color:#64ffda}.rtl-container.teal.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#64ffda}.rtl-container.teal.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.teal.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.teal.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.teal.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.teal.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#64ffda}.rtl-container.teal.night .cc-data-block .cc-data-title{color:#64ffda}.rtl-container.teal.night .mat-stroked-button.mat-primary{border-color:#64ffda;color:#64ffda}.rtl-container.teal.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.teal.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.teal.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.teal.night .active-link,.rtl-container.teal.night .active-link .fa-icon-small,.rtl-container.teal.night .mat-select-panel .mat-option.mat-active,.rtl-container.teal.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#64ffda;font-weight:500;cursor:pointer;fill:#64ffda}.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.teal.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#64ffda}.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled),.rtl-container.teal.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.teal.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.teal.night .mat-nested-tree-node-parent:hover,.rtl-container.teal.night .mat-select-panel .mat-option:hover,.rtl-container.teal.night .mat-tree-node:hover{color:#64ffda;cursor:pointer;background:#ffffff0f}.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.teal.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.teal.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.teal.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.teal.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.teal.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.teal.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.teal.night .mat-tree-node:hover .mat-icon,.rtl-container.teal.night .mat-tree-node:hover .ng-fa-icon{color:#64ffda}.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.teal.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.teal.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.teal.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.teal.night .mat-tree-node:hover .sidenav-img svg{fill:#64ffda}.rtl-container.teal.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.teal.night .mat-nested-tree-node .sidenav-img,.rtl-container.teal.night .mat-tree-node .sidenav-img,.rtl-container.teal.night .page-title-container .page-title-img,.rtl-container.teal.night svg.top-icon-small{fill:#fff}.rtl-container.teal.night .selected-color{border-color:#4db6ac}.rtl-container.teal.night .mat-progress-bar-fill:after{background-color:#00897b}.rtl-container.teal.night .chart-legend .legend-label .active .legend-label-text,.rtl-container.teal.night .chart-legend .legend-label:hover{color:#fff!important}.rtl-container.teal.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.teal.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#64ffda}.rtl-container.teal.night .mat-select-panel{background-color:#262626}.rtl-container.teal.night .mat-tree{background:#262626}.rtl-container.teal.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.teal.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.teal.night .dashboard-info-title{color:#64ffda}.rtl-container.teal.night .dashboard-capacity-header,.rtl-container.teal.night .dashboard-info-value{color:#fff}.rtl-container.teal.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.teal.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.teal.night .color-primary{color:#64ffda!important}.rtl-container.teal.night .dot-primary{background-color:#64ffda!important}.rtl-container.teal.night .dot-primary-lighter{background-color:#00695c!important}.rtl-container.teal.night .mat-stepper-vertical{background-color:#262626}.rtl-container.teal.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.teal.night svg .boltz-icon-fill{fill:#fff}.rtl-container.teal.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .fill-color-0,.rtl-container.teal.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.teal.night svg .fill-color-1{fill:#232323}.rtl-container.teal.night svg .fill-color-2{fill:#222}.rtl-container.teal.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.teal.night svg .fill-color-4{fill:#383838}.rtl-container.teal.night svg .fill-color-5{fill:#555}.rtl-container.teal.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.teal.night svg .fill-color-7{fill:#202020}.rtl-container.teal.night svg .fill-color-8{fill:#242424}.rtl-container.teal.night svg .fill-color-9{fill:#262626}.rtl-container.teal.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.teal.night svg .fill-color-11{fill:#171717}.rtl-container.teal.night svg .fill-color-12{fill:#ccc}.rtl-container.teal.night svg .fill-color-13{fill:#adadad}.rtl-container.teal.night svg .fill-color-14{fill:#ababab}.rtl-container.teal.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.teal.night svg .fill-color-16{fill:#707070}.rtl-container.teal.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.teal.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.teal.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.teal.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.teal.night svg .fill-color-21{fill:#cacaca}.rtl-container.teal.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.teal.night svg .fill-color-23{fill:#777}.rtl-container.teal.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.teal.night svg .fill-color-25{fill:#252525}.rtl-container.teal.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.teal.night svg .fill-color-27{fill:#000}.rtl-container.teal.night svg .fill-color-28{fill:#313131}.rtl-container.teal.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.teal.night svg .fill-color-30{fill:#fff}.rtl-container.teal.night svg .fill-color-31{fill:#00695c}.rtl-container.teal.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.teal.night svg .fill-color-primary{fill:#00695c}.rtl-container.teal.night svg .fill-color-primary-lighter{fill:#4db6ac}.rtl-container.teal.night svg .fill-color-primary-darker{fill:#64ffda}.rtl-container.teal.night .mat-select-arrow,.rtl-container.teal.night .mat-select-value{color:#fff}.rtl-container.teal.night .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.teal.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.teal.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.teal.night .mat-slide-toggle-bar,.rtl-container.teal.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.teal.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.teal.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.teal.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.teal.night .mat-button.mat-primary,.rtl-container.teal.night .mat-icon-button.mat-primary,.rtl-container.teal.night .mat-stroked-button.mat-primary{color:#64ffda}.rtl-container.teal.night tr.alert.alert-warn .mat-cell,.rtl-container.teal.night tr.alert.alert-warn .mat-footer-cell,.rtl-container.teal.night tr.alert.alert-warn .mat-header-cell{color:#856404}.rtl-container.teal.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.teal.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#64ffda}.rtl-container.teal.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.teal.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#00695c}.rtl-container.teal.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.teal.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#64ffda}.rtl-container.teal.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.teal.night .mat-progress-bar-buffer{background-color:#b2dfdb}.rtl-container.teal.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.teal.night .foreground-secondary-text{color: !important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.teal.night .foreground.mat-progress-spinner circle,.rtl-container.teal.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.teal.night .mat-toolbar-row,.rtl-container.teal.night .mat-toolbar-single-row{height:5rem}.rtl-container.teal.night .lnd-info{border-bottom:1px solid #ffffff4d}.rtl-container.teal.night a{color:#00695c}.rtl-container.teal.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.teal.night .h-active-link{border-bottom:2px solid #fff}.rtl-container.teal.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.teal.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.teal.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.teal.night .genseed-message{width:10%;color:#00695c}.rtl-container.teal.night .material-icons.primary{color:#00695c}.rtl-container.teal.night .material-icons.accent{color:#eee}.rtl-container.teal.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.teal.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.teal.night .row-disabled{background-color:gray}.rtl-container.teal.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.teal.night .mat-menu-panel{min-width:6.4rem}.rtl-container.teal.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.teal.night .horizontal-button:hover{background:#4db6ac;color:#eee}.rtl-container.teal.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#00695c}.rtl-container.teal.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.teal.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.teal.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.teal.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.teal.night .mat-cell,.rtl-container.teal.night .mat-footer-cell,.rtl-container.teal.night .mat-header-cell{border-bottom:1px solid #ffffff4d}.rtl-container.teal.night table.mat-table{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.teal.night table.mat-table thead tr th{color:#fff}.rtl-container.teal.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.teal.night .bordered-box{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.teal.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.teal.night .mat-expansion-panel{border:1px solid #ffffff4d}.rtl-container.teal.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.teal.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.teal.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.teal.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.teal.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.teal.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.teal.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.teal.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.teal.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.teal.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.teal.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.teal.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.teal.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.teal.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.teal.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.teal.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.teal.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.teal.night .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#80cbc4!important}.rtl-container.teal.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#00897b!important}.rtl-container.teal.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.teal.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.teal.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.teal.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.teal.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.teal.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.teal.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.teal.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.teal.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.teal.night .color-warn{color:#ff343b}.rtl-container.teal.night .fill-warn{fill:#ff343b}.rtl-container.teal.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.teal.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.teal.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.teal.night .alert.alert-info a{color:#004085}.rtl-container.teal.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.teal.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.teal.night .alert.alert-warn a{color:#856404}.rtl-container.teal.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.teal.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.teal.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.teal.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.teal.night .help-expansion .mat-expansion-panel-header,.rtl-container.teal.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.teal.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.teal.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.teal.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.teal.night .failed-status{color:#ff343b}.rtl-container.teal.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.teal.night .svg-fill-primary{fill:#00695c}.rtl-container.teal.night .svg-fill-primary-lighter{fill:#4db6ac}.rtl-container.teal.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.teal.night ngx-charts-bar-vertical-2d text,.rtl-container.teal.night ngx-charts-bar-vertical text{fill:#fff}.rtl-container.teal.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.teal.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.teal.night .mat-paginator-container{padding:0}.rtl-container.pink.small.small .mat-header-cell{font-weight:700}.rtl-container.pink.small.small .mr-4{margin-right:1rem!important}.rtl-container.pink.small.small .mat-menu-item,.rtl-container.pink.small.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.pink.small.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.pink.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.pink.small.small .fa-icon-small,.rtl-container.pink.small.small .genseed-message,.rtl-container.pink.small.small .top-icon-small,.rtl-container.pink.small.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.pink.small.small .page-sub-title-container,.rtl-container.pink.small.small .page-title-container{font-size:1.32rem}.rtl-container.pink.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.pink.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.pink.small.small .sidenav-img svg,.rtl-container.pink.small.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.pink.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.pink.small.small .material-icons,.rtl-container.pink.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.pink.small.small .mat-expansion-panel-header,.rtl-container.pink.small.small .mat-list .mat-list-item,.rtl-container.pink.small.small .mat-menu-item,.rtl-container.pink.small.small .mat-nav-list .mat-list-item,.rtl-container.pink.small.small .mat-option,.rtl-container.pink.small.small .mat-select,.rtl-container.pink.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.pink.small.small .logo{font-size:2.4rem}.rtl-container.pink.small.small .font-60-percent{font-size:.72rem}.rtl-container.pink.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.pink.small.small .icon-large{font-size:6rem}.rtl-container.pink.small.small .icon-small{font-size:1.8rem!important}.rtl-container.pink.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.pink.small.small .size-triple{font-size:3.6rem}.rtl-container.pink.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.pink.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.small.medium .mat-header-cell{font-weight:700}.rtl-container.pink.small.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.pink.small.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.pink.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.pink.small.medium .genseed-message,.rtl-container.pink.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.pink.small.medium .page-sub-title-container,.rtl-container.pink.small.medium .page-title-container{font-size:1.54rem}.rtl-container.pink.small.medium .fa-icon-small,.rtl-container.pink.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.pink.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.pink.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.pink.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.pink.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.pink.small.medium .sidenav-img svg,.rtl-container.pink.small.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.pink.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.pink.small.medium .material-icons{font-size:2.8rem}.rtl-container.pink.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.pink.small.medium .mat-expansion-panel-header,.rtl-container.pink.small.medium .mat-list .mat-list-item,.rtl-container.pink.small.medium .mat-menu-item,.rtl-container.pink.small.medium .mat-nav-list .mat-list-item,.rtl-container.pink.small.medium .mat-option,.rtl-container.pink.small.medium .mat-select,.rtl-container.pink.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.pink.small.medium .logo{font-size:2.8rem}.rtl-container.pink.small.medium .font-60-percent{font-size:.84rem}.rtl-container.pink.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.pink.small.medium .icon-large{font-size:7rem}.rtl-container.pink.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.pink.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.pink.small.medium .size-triple{font-size:4.2rem}.rtl-container.pink.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.pink.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.small.large .mat-header-cell{font-weight:800}.rtl-container.pink.small.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.pink.small.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.pink.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.pink.small.large .genseed-message,.rtl-container.pink.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.pink.small.large .page-sub-title-container,.rtl-container.pink.small.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.pink.small.large .fa-icon-small,.rtl-container.pink.small.large .modal-info-header,.rtl-container.pink.small.large .top-icon-small{font-size:1.92rem}.rtl-container.pink.small.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.pink.small.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.pink.small.large .sidenav-img svg,.rtl-container.pink.small.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.pink.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.pink.small.large .material-icons{font-size:4rem}.rtl-container.pink.small.large .mat-expansion-panel-header,.rtl-container.pink.small.large .mat-list .mat-list-item,.rtl-container.pink.small.large .mat-menu-item,.rtl-container.pink.small.large .mat-nav-list .mat-list-item,.rtl-container.pink.small.large .mat-option,.rtl-container.pink.small.large .mat-select,.rtl-container.pink.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.pink.small.large .logo{font-size:3.2rem}.rtl-container.pink.small.large .font-60-percent{font-size:.96rem}.rtl-container.pink.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.pink.small.large .icon-large{font-size:8rem}.rtl-container.pink.small.large .icon-small{font-size:2.4rem!important}.rtl-container.pink.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.pink.small.large .size-triple{font-size:4.8rem}.rtl-container.pink.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.pink.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.small .mat-icon.material-icons:focus{outline:none}.rtl-container.pink.small .mat-flat-button.mat-primary:focus,.rtl-container.pink.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.pink.medium.small .mat-header-cell{font-weight:700}.rtl-container.pink.medium.small .mr-4{margin-right:1rem!important}.rtl-container.pink.medium.small .mat-menu-item,.rtl-container.pink.medium.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.pink.medium.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.pink.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.pink.medium.small .fa-icon-small,.rtl-container.pink.medium.small .genseed-message,.rtl-container.pink.medium.small .top-icon-small,.rtl-container.pink.medium.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.pink.medium.small .page-sub-title-container,.rtl-container.pink.medium.small .page-title-container{font-size:1.32rem}.rtl-container.pink.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.pink.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.pink.medium.small .sidenav-img svg,.rtl-container.pink.medium.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.pink.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.pink.medium.small .material-icons,.rtl-container.pink.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.pink.medium.small .mat-expansion-panel-header,.rtl-container.pink.medium.small .mat-list .mat-list-item,.rtl-container.pink.medium.small .mat-menu-item,.rtl-container.pink.medium.small .mat-nav-list .mat-list-item,.rtl-container.pink.medium.small .mat-option,.rtl-container.pink.medium.small .mat-select,.rtl-container.pink.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.pink.medium.small .logo{font-size:2.4rem}.rtl-container.pink.medium.small .font-60-percent{font-size:.72rem}.rtl-container.pink.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.pink.medium.small .icon-large{font-size:6rem}.rtl-container.pink.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.pink.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.pink.medium.small .size-triple{font-size:3.6rem}.rtl-container.pink.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.pink.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.medium.medium .mat-header-cell{font-weight:700}.rtl-container.pink.medium.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.pink.medium.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.pink.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.pink.medium.medium .genseed-message,.rtl-container.pink.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.pink.medium.medium .page-sub-title-container,.rtl-container.pink.medium.medium .page-title-container{font-size:1.54rem}.rtl-container.pink.medium.medium .fa-icon-small,.rtl-container.pink.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.pink.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.pink.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.pink.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.pink.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.pink.medium.medium .sidenav-img svg,.rtl-container.pink.medium.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.pink.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.pink.medium.medium .material-icons{font-size:2.8rem}.rtl-container.pink.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.pink.medium.medium .mat-expansion-panel-header,.rtl-container.pink.medium.medium .mat-list .mat-list-item,.rtl-container.pink.medium.medium .mat-menu-item,.rtl-container.pink.medium.medium .mat-nav-list .mat-list-item,.rtl-container.pink.medium.medium .mat-option,.rtl-container.pink.medium.medium .mat-select,.rtl-container.pink.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.pink.medium.medium .logo{font-size:2.8rem}.rtl-container.pink.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.pink.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.pink.medium.medium .icon-large{font-size:7rem}.rtl-container.pink.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.pink.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.pink.medium.medium .size-triple{font-size:4.2rem}.rtl-container.pink.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.pink.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.medium.large .mat-header-cell{font-weight:800}.rtl-container.pink.medium.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.pink.medium.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.pink.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.pink.medium.large .genseed-message,.rtl-container.pink.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.pink.medium.large .page-sub-title-container,.rtl-container.pink.medium.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.pink.medium.large .fa-icon-small,.rtl-container.pink.medium.large .modal-info-header,.rtl-container.pink.medium.large .top-icon-small{font-size:1.92rem}.rtl-container.pink.medium.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.pink.medium.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.pink.medium.large .sidenav-img svg,.rtl-container.pink.medium.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.pink.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.pink.medium.large .material-icons{font-size:4rem}.rtl-container.pink.medium.large .mat-expansion-panel-header,.rtl-container.pink.medium.large .mat-list .mat-list-item,.rtl-container.pink.medium.large .mat-menu-item,.rtl-container.pink.medium.large .mat-nav-list .mat-list-item,.rtl-container.pink.medium.large .mat-option,.rtl-container.pink.medium.large .mat-select,.rtl-container.pink.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.pink.medium.large .logo{font-size:3.2rem}.rtl-container.pink.medium.large .font-60-percent{font-size:.96rem}.rtl-container.pink.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.pink.medium.large .icon-large{font-size:8rem}.rtl-container.pink.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.pink.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.pink.medium.large .size-triple{font-size:4.8rem}.rtl-container.pink.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.pink.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.pink.medium .mat-flat-button.mat-primary:focus,.rtl-container.pink.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.pink.large.small .mat-header-cell{font-weight:700}.rtl-container.pink.large.small .mr-4{margin-right:1rem!important}.rtl-container.pink.large.small .mat-menu-item,.rtl-container.pink.large.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.pink.large.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.pink.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.pink.large.small .fa-icon-small,.rtl-container.pink.large.small .genseed-message,.rtl-container.pink.large.small .top-icon-small,.rtl-container.pink.large.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.pink.large.small .page-sub-title-container,.rtl-container.pink.large.small .page-title-container{font-size:1.32rem}.rtl-container.pink.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.pink.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.pink.large.small .sidenav-img svg,.rtl-container.pink.large.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.pink.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.pink.large.small .material-icons,.rtl-container.pink.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.pink.large.small .mat-expansion-panel-header,.rtl-container.pink.large.small .mat-list .mat-list-item,.rtl-container.pink.large.small .mat-menu-item,.rtl-container.pink.large.small .mat-nav-list .mat-list-item,.rtl-container.pink.large.small .mat-option,.rtl-container.pink.large.small .mat-select,.rtl-container.pink.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.pink.large.small .logo{font-size:2.4rem}.rtl-container.pink.large.small .font-60-percent{font-size:.72rem}.rtl-container.pink.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.pink.large.small .icon-large{font-size:6rem}.rtl-container.pink.large.small .icon-small{font-size:1.8rem!important}.rtl-container.pink.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.pink.large.small .size-triple{font-size:3.6rem}.rtl-container.pink.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.pink.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.large.medium .mat-header-cell{font-weight:700}.rtl-container.pink.large.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.pink.large.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.pink.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.pink.large.medium .genseed-message,.rtl-container.pink.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.pink.large.medium .page-sub-title-container,.rtl-container.pink.large.medium .page-title-container{font-size:1.54rem}.rtl-container.pink.large.medium .fa-icon-small,.rtl-container.pink.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.pink.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.pink.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.pink.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.pink.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.pink.large.medium .sidenav-img svg,.rtl-container.pink.large.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.pink.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.pink.large.medium .material-icons{font-size:2.8rem}.rtl-container.pink.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.pink.large.medium .mat-expansion-panel-header,.rtl-container.pink.large.medium .mat-list .mat-list-item,.rtl-container.pink.large.medium .mat-menu-item,.rtl-container.pink.large.medium .mat-nav-list .mat-list-item,.rtl-container.pink.large.medium .mat-option,.rtl-container.pink.large.medium .mat-select,.rtl-container.pink.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.pink.large.medium .logo{font-size:2.8rem}.rtl-container.pink.large.medium .font-60-percent{font-size:.84rem}.rtl-container.pink.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.pink.large.medium .icon-large{font-size:7rem}.rtl-container.pink.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.pink.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.pink.large.medium .size-triple{font-size:4.2rem}.rtl-container.pink.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.pink.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.large.large .mat-header-cell{font-weight:800}.rtl-container.pink.large.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.pink.large.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.pink.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.pink.large.large .genseed-message,.rtl-container.pink.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.pink.large.large .page-sub-title-container,.rtl-container.pink.large.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.pink.large.large .fa-icon-small,.rtl-container.pink.large.large .modal-info-header,.rtl-container.pink.large.large .top-icon-small{font-size:1.92rem}.rtl-container.pink.large.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.pink.large.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.pink.large.large .sidenav-img svg,.rtl-container.pink.large.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.pink.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.pink.large.large .material-icons{font-size:4rem}.rtl-container.pink.large.large .mat-expansion-panel-header,.rtl-container.pink.large.large .mat-list .mat-list-item,.rtl-container.pink.large.large .mat-menu-item,.rtl-container.pink.large.large .mat-nav-list .mat-list-item,.rtl-container.pink.large.large .mat-option,.rtl-container.pink.large.large .mat-select,.rtl-container.pink.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.pink.large.large .logo{font-size:3.2rem}.rtl-container.pink.large.large .font-60-percent{font-size:.96rem}.rtl-container.pink.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.pink.large.large .icon-large{font-size:8rem}.rtl-container.pink.large.large .icon-small{font-size:2.4rem!important}.rtl-container.pink.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.pink.large.large .size-triple{font-size:4.8rem}.rtl-container.pink.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.pink.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.large .mat-icon.material-icons:focus{outline:none}.rtl-container.pink.large .mat-flat-button.mat-primary:focus,.rtl-container.pink.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.pink.day .mat-ripple-element{background-color:#0000001a}.rtl-container.pink.day .mat-option{color:#000000de}.rtl-container.pink.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.day .mat-option:focus:not(.mat-option-disabled),.rtl-container.pink.day .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.pink.day .mat-option.mat-active{background:#0000000a;color:#000000de}.rtl-container.pink.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.pink.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#e91e63}.rtl-container.pink.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.pink.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.pink.day .mat-optgroup-label{color:#0000008a}.rtl-container.pink.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.pink.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.pink.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.pink.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.pink.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.pink.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#e91e63}.rtl-container.pink.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.pink.day .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.pink.day .mat-pseudo-checkbox-checked,.rtl-container.pink.day .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.pink.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.pink.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.pink.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.pink.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.pink.day.mat-app-background,.rtl-container.pink.day .mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.pink.day .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.pink.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.pink.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.pink.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.pink.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.pink.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.pink.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.pink.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.pink.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.pink.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.pink.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.pink.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.pink.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.pink.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.pink.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.pink.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.pink.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.pink.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.pink.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.pink.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.pink.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.pink.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.pink.day .mat-autocomplete-panel{background:#fff;color:#000000de}.rtl-container.pink.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.rtl-container.pink.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.pink.day .mat-badge-content{color:#fff;background:#e91e63}.cdk-high-contrast-active .rtl-container.pink.day .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.pink.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.pink.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.pink.day .mat-badge{position:relative}.rtl-container.pink.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.pink.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.pink.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.pink.day .mat-badge-content._mat-animation-noopable,.rtl-container.pink.day .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.pink.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.pink.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.pink.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.pink.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.pink.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.pink.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.pink.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.pink.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.pink.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.pink.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.pink.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.pink.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.pink.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.pink.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.pink.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.pink.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.pink.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.pink.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.pink.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.pink.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.pink.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.pink.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.pink.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.pink.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.pink.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.pink.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.pink.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.pink.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.pink.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.pink.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.pink.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.pink.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.pink.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.pink.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.pink.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.rtl-container.pink.day .mat-button,.rtl-container.pink.day .mat-icon-button,.rtl-container.pink.day .mat-stroked-button{color:inherit;background:#0000}.rtl-container.pink.day .mat-button.mat-primary,.rtl-container.pink.day .mat-icon-button.mat-primary,.rtl-container.pink.day .mat-stroked-button.mat-primary{color:#e91e63}.rtl-container.pink.day .mat-button.mat-accent,.rtl-container.pink.day .mat-icon-button.mat-accent,.rtl-container.pink.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.pink.day .mat-button.mat-warn,.rtl-container.pink.day .mat-icon-button.mat-warn,.rtl-container.pink.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.pink.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-stroked-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.pink.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.pink.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.pink.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#e91e63}.rtl-container.pink.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.pink.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.pink.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.pink.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.pink.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.pink.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.pink.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.pink.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.pink.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.pink.day .mat-button .mat-ripple-element,.rtl-container.pink.day .mat-icon-button .mat-ripple-element,.rtl-container.pink.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.pink.day .mat-button-focus-overlay{background:#000}.rtl-container.pink.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.pink.day .mat-fab,.rtl-container.pink.day .mat-flat-button,.rtl-container.pink.day .mat-mini-fab,.rtl-container.pink.day .mat-raised-button{color:#000000de;background-color:#fff}.rtl-container.pink.day .mat-fab.mat-accent,.rtl-container.pink.day .mat-fab.mat-primary,.rtl-container.pink.day .mat-fab.mat-warn,.rtl-container.pink.day .mat-flat-button.mat-accent,.rtl-container.pink.day .mat-flat-button.mat-primary,.rtl-container.pink.day .mat-flat-button.mat-warn,.rtl-container.pink.day .mat-mini-fab.mat-accent,.rtl-container.pink.day .mat-mini-fab.mat-primary,.rtl-container.pink.day .mat-mini-fab.mat-warn,.rtl-container.pink.day .mat-raised-button.mat-accent,.rtl-container.pink.day .mat-raised-button.mat-primary,.rtl-container.pink.day .mat-raised-button.mat-warn{color:#fff}.rtl-container.pink.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.pink.day .mat-fab.mat-primary,.rtl-container.pink.day .mat-flat-button.mat-primary,.rtl-container.pink.day .mat-mini-fab.mat-primary,.rtl-container.pink.day .mat-raised-button.mat-primary{background-color:#e91e63}.rtl-container.pink.day .mat-fab.mat-accent,.rtl-container.pink.day .mat-flat-button.mat-accent,.rtl-container.pink.day .mat-mini-fab.mat-accent,.rtl-container.pink.day .mat-raised-button.mat-accent{background-color:#424242}.rtl-container.pink.day .mat-fab.mat-warn,.rtl-container.pink.day .mat-flat-button.mat-warn,.rtl-container.pink.day .mat-mini-fab.mat-warn,.rtl-container.pink.day .mat-raised-button.mat-warn{background-color:#b00020}.rtl-container.pink.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-warn.mat-button-disabled{background-color:#0000001f}.rtl-container.pink.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.pink.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.pink.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.pink.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.day .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.pink.day .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.pink.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.pink.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.pink.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.pink.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.pink.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.pink.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.day .mat-button-toggle-group,.rtl-container.pink.day .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.day .mat-button-toggle-group-appearance-standard,.rtl-container.pink.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.pink.day .mat-button-toggle{color:#00000061}.rtl-container.pink.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.pink.day .mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.rtl-container.pink.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.pink.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #0000001f}.rtl-container.pink.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #0000001f}.rtl-container.pink.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #0000001f}.rtl-container.pink.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.pink.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.pink.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.pink.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.rtl-container.pink.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.pink.day .mat-button-toggle-group-appearance-standard,.rtl-container.pink.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #0000001f}.rtl-container.pink.day .mat-card{background:#fff;color:#000000de}.rtl-container.pink.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.pink.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.day .mat-card-subtitle{color:#0000008a}.rtl-container.pink.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.pink.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.pink.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.pink.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.pink.day .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.pink.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#e91e63}.rtl-container.pink.day .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.pink.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.pink.day .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.pink.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.pink.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.pink.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.pink.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.pink.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.pink.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.pink.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#e91e63}.rtl-container.pink.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.pink.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.pink.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.pink.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.pink.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.pink.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip:after{background:#000}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#e91e63;color:#fff}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.day .mat-table{background:#fff}.rtl-container.pink.day .mat-table-sticky,.rtl-container.pink.day .mat-table tbody,.rtl-container.pink.day .mat-table tfoot,.rtl-container.pink.day .mat-table thead,.rtl-container.pink.day [mat-footer-row],.rtl-container.pink.day [mat-header-row],.rtl-container.pink.day [mat-row],.rtl-container.pink.day mat-footer-row,.rtl-container.pink.day mat-header-row,.rtl-container.pink.day mat-row{background:inherit}.rtl-container.pink.day mat-footer-row,.rtl-container.pink.day mat-header-row,.rtl-container.pink.day mat-row,.rtl-container.pink.day td.mat-cell,.rtl-container.pink.day td.mat-footer-cell,.rtl-container.pink.day th.mat-header-cell{border-bottom-color:#0000001f}.rtl-container.pink.day .mat-header-cell{color:#0000008a}.rtl-container.pink.day .mat-cell,.rtl-container.pink.day .mat-footer-cell{color:#000000de}.rtl-container.pink.day .mat-calendar-arrow{border-top-color:#0000008a}.rtl-container.pink.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.pink.day .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.pink.day .mat-datepicker-toggle{color:#0000008a}.rtl-container.pink.day .mat-calendar-table-header{color:#00000061}.rtl-container.pink.day .mat-calendar-table-header-divider:after{background:#0000001f}.rtl-container.pink.day .mat-calendar-body-label{color:#0000008a}.rtl-container.pink.day .mat-calendar-body-cell-content,.rtl-container.pink.day .mat-date-range-input-separator{color:#000000de;border-color:#0000}.rtl-container.pink.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.pink.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.pink.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.pink.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.pink.day .mat-calendar-body-in-range:before{background:#e91e6333}.rtl-container.pink.day .mat-calendar-body-comparison-identical,.rtl-container.pink.day .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.pink.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#e91e6333 50%,#f9ab0033 0)}.rtl-container.pink.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#e91e6333 50%,#f9ab0033 0)}.rtl-container.pink.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.pink.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.pink.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.day .mat-calendar-body-selected{background-color:#e91e63;color:#fff}.rtl-container.pink.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#e91e6366}.rtl-container.pink.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#e91e634d}.rtl-container.pink.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#fff;color:#000000de}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#42424233}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#42424233 50%,#f9ab0033 0)}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#42424233 50%,#f9ab0033 0)}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#b0002033}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}.rtl-container.pink.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.pink.day .mat-datepicker-toggle-active{color:#e91e63}.rtl-container.pink.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.pink.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.pink.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.pink.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.rtl-container.pink.day .mat-divider{border-top-color:#0000001f}.rtl-container.pink.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.pink.day .mat-expansion-panel{background:#fff;color:#000000de}.rtl-container.pink.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.day .mat-action-row{border-top-color:#0000001f}.rtl-container.pink.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.pink.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.pink.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.pink.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.rtl-container.pink.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.pink.day .mat-expansion-indicator:after,.rtl-container.pink.day .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.pink.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.pink.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.pink.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.pink.day .mat-form-field-label,.rtl-container.pink.day .mat-hint{color:#0009}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-label{color:#e91e63}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.pink.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.pink.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#e91e63}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#e91e63}.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.pink.day .mat-error{color:#b00020}.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.pink.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.pink.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.pink.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.pink.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.pink.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.pink.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.pink.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.pink.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.pink.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.pink.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#e91e63}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.pink.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.pink.day .mat-icon.mat-primary{color:#e91e63}.rtl-container.pink.day .mat-icon.mat-accent{color:#424242}.rtl-container.pink.day .mat-icon.mat-warn{color:#b00020}.rtl-container.pink.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after,.rtl-container.pink.day .mat-input-element:disabled{color:#00000061}.rtl-container.pink.day .mat-input-element{caret-color:#e91e63}.rtl-container.pink.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.pink.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.pink.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.pink.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.pink.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.pink.day .mat-form-field-invalid .mat-input-element,.rtl-container.pink.day .mat-form-field.mat-warn .mat-input-element{caret-color:#b00020}.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.pink.day .mat-list-base .mat-list-item,.rtl-container.pink.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.pink.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.pink.day .mat-list-item-disabled{background-color:#eee}.rtl-container.pink.day .mat-action-list .mat-list-item:focus,.rtl-container.pink.day .mat-action-list .mat-list-item:hover,.rtl-container.pink.day .mat-list-option:focus,.rtl-container.pink.day .mat-list-option:hover,.rtl-container.pink.day .mat-nav-list .mat-list-item:focus,.rtl-container.pink.day .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.pink.day .mat-list-single-selected-option,.rtl-container.pink.day .mat-list-single-selected-option:focus,.rtl-container.pink.day .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.pink.day .mat-menu-panel{background:#fff}.rtl-container.pink.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.day .mat-menu-item{background:#0000;color:#000000de}.rtl-container.pink.day .mat-menu-item[disabled],.rtl-container.pink.day .mat-menu-item[disabled] .mat-icon-no-color,.rtl-container.pink.day .mat-menu-item[disabled]:after{color:#00000061}.rtl-container.pink.day .mat-menu-item-submenu-trigger:after,.rtl-container.pink.day .mat-menu-item .mat-icon-no-color{color:#0000008a}.rtl-container.pink.day .mat-menu-item-highlighted:not([disabled]),.rtl-container.pink.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.pink.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.pink.day .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.pink.day .mat-paginator{background:#fff}.rtl-container.pink.day .mat-paginator,.rtl-container.pink.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.pink.day .mat-paginator-decrement,.rtl-container.pink.day .mat-paginator-increment{border-top:2px solid #0000008a;border-right:2px solid #0000008a}.rtl-container.pink.day .mat-paginator-first,.rtl-container.pink.day .mat-paginator-last{border-top:2px solid #0000008a}.rtl-container.pink.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.pink.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.pink.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.pink.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.pink.day .mat-progress-bar-background{fill:#f6c3d4}.rtl-container.pink.day .mat-progress-bar-buffer{background-color:#f6c3d4}.rtl-container.pink.day .mat-progress-bar-fill:after{background-color:#e91e63}.rtl-container.pink.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.pink.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.pink.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.pink.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.pink.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.pink.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.pink.day .mat-progress-spinner circle,.rtl-container.pink.day .mat-spinner circle{stroke:#e91e63}.rtl-container.pink.day .mat-progress-spinner.mat-accent circle,.rtl-container.pink.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.pink.day .mat-progress-spinner.mat-warn circle,.rtl-container.pink.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.pink.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.pink.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#e91e63}.rtl-container.pink.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.pink.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#e91e63}.rtl-container.pink.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.pink.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.pink.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.pink.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.pink.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.pink.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.pink.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.pink.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.pink.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.rtl-container.pink.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:#00000061}.rtl-container.pink.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.pink.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.pink.day .mat-select-value{color:#000000de}.rtl-container.pink.day .mat-select-placeholder{color:#0000006b}.rtl-container.pink.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.pink.day .mat-select-arrow{color:#0000008a}.rtl-container.pink.day .mat-select-panel{background:#fff}.rtl-container.pink.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.pink.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#e91e63}.rtl-container.pink.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.pink.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.pink.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.pink.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.pink.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.pink.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.pink.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.pink.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.pink.day .mat-drawer-side{border-right:1px solid #0000001f}.rtl-container.pink.day .mat-drawer-side.mat-drawer-end,.rtl-container.pink.day [dir=rtl] .mat-drawer-side{border-left:1px solid #0000001f;border-right:none}.rtl-container.pink.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #0000001f}.rtl-container.pink.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.pink.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.pink.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.pink.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.pink.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#e91e63}.rtl-container.pink.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#e91e638a}.rtl-container.pink.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#e91e63}.rtl-container.pink.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.pink.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.pink.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.pink.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.pink.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#fafafa}.rtl-container.pink.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.pink.day .mat-slider-track-background{background-color:#00000042}.rtl-container.pink.day .mat-primary .mat-slider-thumb,.rtl-container.pink.day .mat-primary .mat-slider-thumb-label,.rtl-container.pink.day .mat-primary .mat-slider-track-fill{background-color:#e91e63}.rtl-container.pink.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.day .mat-primary .mat-slider-focus-ring{background-color:#e91e6333}.rtl-container.pink.day .mat-accent .mat-slider-thumb,.rtl-container.pink.day .mat-accent .mat-slider-thumb-label,.rtl-container.pink.day .mat-accent .mat-slider-track-fill{background-color:#424242}.rtl-container.pink.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.pink.day .mat-warn .mat-slider-thumb,.rtl-container.pink.day .mat-warn .mat-slider-thumb-label,.rtl-container.pink.day .mat-warn .mat-slider-track-fill{background-color:#b00020}.rtl-container.pink.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.pink.day .cdk-focused .mat-slider-track-background,.rtl-container.pink.day .mat-slider:hover .mat-slider-track-background{background-color:#00000061}.rtl-container.pink.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.pink.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.pink.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.pink.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.pink.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.pink.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.pink.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.pink.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.pink.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:initial}.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#00000061}.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.pink.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.pink.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#000000b3,#000000b3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.pink.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.pink.day .mat-step-header.cdk-keyboard-focused,.rtl-container.pink.day .mat-step-header.cdk-program-focused,.rtl-container.pink.day .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.pink.day .mat-step-header:hover{background:none}}.rtl-container.pink.day .mat-step-header .mat-step-label,.rtl-container.pink.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.pink.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.pink.day .mat-step-header .mat-step-icon-selected,.rtl-container.pink.day .mat-step-header .mat-step-icon-state-done,.rtl-container.pink.day .mat-step-header .mat-step-icon-state-edit{background-color:#e91e63;color:#fff}.rtl-container.pink.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.pink.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.pink.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.pink.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.pink.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.pink.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.pink.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.pink.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.pink.day .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#b00020}.rtl-container.pink.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.pink.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.pink.day .mat-stepper-horizontal,.rtl-container.pink.day .mat-stepper-vertical{background-color:#fff}.rtl-container.pink.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.pink.day .mat-horizontal-stepper-header:after,.rtl-container.pink.day .mat-horizontal-stepper-header:before,.rtl-container.pink.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.pink.day .mat-sort-header-arrow{color:#757575}.rtl-container.pink.day .mat-tab-header,.rtl-container.pink.day .mat-tab-nav-bar{border-bottom:1px solid #0000001f}.rtl-container.pink.day .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.pink.day .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #0000001f;border-bottom:none}.rtl-container.pink.day .mat-tab-label,.rtl-container.pink.day .mat-tab-link{color:#000000de}.rtl-container.pink.day .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.pink.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.pink.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.pink.day .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.pink.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.pink.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#f062924d}.rtl-container.pink.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#e91e63}.rtl-container.pink.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.pink.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.pink.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.pink.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.pink.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#f062924d}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#e91e63}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.pink.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#424242}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.pink.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#b00020}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.pink.day .mat-toolbar{background:#f5f5f5;color:#000000de}.rtl-container.pink.day .mat-toolbar.mat-primary{background:#e91e63;color:#fff}.rtl-container.pink.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.pink.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.pink.day .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.pink.day .mat-toolbar .mat-form-field-ripple,.rtl-container.pink.day .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.pink.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.pink.day .mat-toolbar .mat-form-field-label,.rtl-container.pink.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.pink.day .mat-toolbar .mat-select-arrow,.rtl-container.pink.day .mat-toolbar .mat-select-value{color:inherit}.rtl-container.pink.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.pink.day .mat-tooltip{background:#616161e6}.rtl-container.pink.day .mat-tree{background:#fff}.rtl-container.pink.day .mat-nested-tree-node,.rtl-container.pink.day .mat-tree-node{color:#000000de}.rtl-container.pink.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.pink.day .mat-simple-snackbar-action{color:#424242}.rtl-container.pink.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.pink.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.pink.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.pink.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.pink.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.pink.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.pink.day .rtl-top-toolbar{border-bottom:1px solid #fff}.rtl-container.pink.day .bg-primary{background-color:#e91e63;color:#fff}.rtl-container.pink.day .rtl-snack-bar{color:#e91e63}.rtl-container.pink.day .rtl-snack-bar,.rtl-container.pink.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important}.rtl-container.pink.day .rtl-warn-snack-bar{color:#b00020}.rtl-container.pink.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.pink.day .mat-tab-label.mat-tab-label-active{color:#e91e63}.rtl-container.pink.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#e91e63}.rtl-container.pink.day .mat-tab-label .tab-badge .mat-badge-content{background:#0000008a}.rtl-container.pink.day .mat-form-field-suffix,.rtl-container.pink.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.pink.day .ng-fa-icon{color:#0000008a}.rtl-container.pink.day .mat-stroked-button.mat-primary{border-color:#e91e63}.rtl-container.pink.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.pink.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.pink.day .selected-color{border-color:#f06292}.rtl-container.pink.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.pink.day .page-sub-title-container,.rtl-container.pink.day .page-title-container{color:#0000008a}.rtl-container.pink.day .page-sub-title-container .page-title-img,.rtl-container.pink.day .page-title-container .page-title-img{color:#00000061}.rtl-container.pink.day .page-sub-title-container .mat-input-element,.rtl-container.pink.day .page-sub-title-container .mat-radio-label-content,.rtl-container.pink.day .page-sub-title-container .theme-name,.rtl-container.pink.day .page-title-container .mat-input-element,.rtl-container.pink.day .page-title-container .mat-radio-label-content,.rtl-container.pink.day .page-title-container .theme-name{color:#000000de}.rtl-container.pink.day .cc-data-block .cc-data-title{color:#e91e63}.rtl-container.pink.day .active-link,.rtl-container.pink.day .active-link .fa-icon-small{color:#e91e63;font-weight:500;cursor:pointer;fill:#e91e63}.rtl-container.pink.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.pink.day .mat-nested-tree-node-parent:hover,.rtl-container.pink.day .mat-select-panel .mat-option:hover,.rtl-container.pink.day .mat-tree-node:hover{color:#e91e63;cursor:pointer;background:#0000000a}.rtl-container.pink.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.pink.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.pink.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.pink.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.pink.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.pink.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.pink.day .mat-tree-node:hover .mat-icon,.rtl-container.pink.day .mat-tree-node:hover .ng-fa-icon{color:#e91e63}.rtl-container.pink.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.pink.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.pink.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.pink.day .mat-tree-node:hover .sidenav-img svg{fill:#e91e63}.rtl-container.pink.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.pink.day .mat-nested-tree-node .sidenav-img,.rtl-container.pink.day .mat-tree-node .sidenav-img,.rtl-container.pink.day .page-title-container .page-title-img,.rtl-container.pink.day svg.top-icon-small{fill:#000000de}.rtl-container.pink.day .mat-progress-bar-fill:after{background-color:#880e4f}.rtl-container.pink.day .modal-qr-code-container{background:#0000001f}.rtl-container.pink.day .mat-tab-label,.rtl-container.pink.day .mat-tab-link{color:#0000008a}.rtl-container.pink.day .mat-card,.rtl-container.pink.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid #0000001f}.rtl-container.pink.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.pink.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.pink.day .dashboard-info-title{color:#e91e63}.rtl-container.pink.day .dashboard-info-value{color:#0000008a}.rtl-container.pink.day .color-primary{color:#e91e63!important}.rtl-container.pink.day .dot-primary{background-color:#e91e63!important}.rtl-container.pink.day .dot-primary-lighter{background-color:#f06292!important}.rtl-container.pink.day .mat-expansion-panel.flat-expansion-panel{border:1px solid #0000001f}.rtl-container.pink.day .mat-tooltip{font-size:120%}.rtl-container.pink.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.pink.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.pink.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.pink.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.pink.day svg .fill-color-1{fill:#fff}.rtl-container.pink.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.pink.day svg .fill-color-3,.rtl-container.pink.day svg .fill-color-4,.rtl-container.pink.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.pink.day svg .fill-color-6{fill:#fff}.rtl-container.pink.day svg .fill-color-7,.rtl-container.pink.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.pink.day svg .fill-color-9{fill:#fff}.rtl-container.pink.day svg .fill-color-10,.rtl-container.pink.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.pink.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.pink.day svg .fill-color-13,.rtl-container.pink.day svg .fill-color-14,.rtl-container.pink.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.pink.day svg .fill-color-16,.rtl-container.pink.day svg .fill-color-17{fill:#404040}.rtl-container.pink.day svg .fill-color-18{fill:#000}.rtl-container.pink.day svg .fill-color-19,.rtl-container.pink.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.pink.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.pink.day svg .fill-color-22,.rtl-container.pink.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.pink.day svg .fill-color-24{fill:#000}.rtl-container.pink.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.pink.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.pink.day svg .fill-color-27{fill:#000}.rtl-container.pink.day svg .fill-color-28{fill:#313131}.rtl-container.pink.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.pink.day svg .fill-color-30{fill:#fff}.rtl-container.pink.day svg .fill-color-31{fill:#e91e63}.rtl-container.pink.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.pink.day svg .fill-color-primary{fill:#e91e63}.rtl-container.pink.day svg .fill-color-primary-lighter{fill:#f06292}.rtl-container.pink.day svg .fill-color-primary-darker{fill:#e91e63}.rtl-container.pink.day .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.pink.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.pink.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.pink.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.pink.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.pink.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.pink.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#e91e63}.rtl-container.pink.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.pink.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#880e4f}.rtl-container.pink.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.pink.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#f48fb1}.rtl-container.pink.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.pink.day .mat-progress-bar-buffer{background-color:#f8bbd0}.rtl-container.pink.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.pink.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.pink.day .foreground.mat-progress-spinner circle,.rtl-container.pink.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.pink.day .mat-toolbar-row,.rtl-container.pink.day .mat-toolbar-single-row{height:5rem}.rtl-container.pink.day .lnd-info{border-bottom:1px solid #0000001f}.rtl-container.pink.day a{color:#e91e63}.rtl-container.pink.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.pink.day .h-active-link{border-bottom:2px solid #fff}.rtl-container.pink.day .mat-icon-36{color:#0000008a}.rtl-container.pink.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.pink.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.pink.day .genseed-message{width:10%;color:#e91e63}.rtl-container.pink.day .material-icons.primary{color:#e91e63}.rtl-container.pink.day .material-icons.accent{color:#424242}.rtl-container.pink.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.pink.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.pink.day .row-disabled{background-color:gray}.rtl-container.pink.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.pink.day .mat-menu-panel{min-width:6.4rem}.rtl-container.pink.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.pink.day .horizontal-button:hover{background:#f06292;color:#424242}.rtl-container.pink.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#e91e63}.rtl-container.pink.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.pink.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.pink.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.pink.day .mat-cell,.rtl-container.pink.day .mat-footer-cell,.rtl-container.pink.day .mat-header-cell{border-bottom:1px solid #0000001f}.rtl-container.pink.day table.mat-table{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.pink.day table.mat-table thead tr th{color:#000}.rtl-container.pink.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.pink.day .bordered-box{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.pink.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.pink.day .mat-expansion-panel{border:1px solid #0000001f}.rtl-container.pink.day .more-button{color:#00000061}.rtl-container.pink.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.pink.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.pink.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.pink.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.pink.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.pink.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.pink.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.pink.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.pink.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.pink.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.pink.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.pink.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.pink.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.pink.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.pink.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.pink.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.pink.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.pink.day .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#f48fb1!important}.rtl-container.pink.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#d81b60!important}.rtl-container.pink.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.pink.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.pink.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.pink.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.pink.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid #0000008a}.rtl-container.pink.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.pink.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.pink.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.pink.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.pink.day .color-warn{color:#b00020}.rtl-container.pink.day .fill-warn{fill:#b00020}.rtl-container.pink.day .alert{border:1px solid #0000008a;color:#0000008a;background-color:#0000000a}.rtl-container.pink.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.pink.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.pink.day .alert.alert-info a{color:#004085}.rtl-container.pink.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.pink.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.pink.day .alert.alert-warn a{color:#856404}.rtl-container.pink.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.pink.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.pink.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.pink.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.pink.day .help-expansion .mat-expansion-panel-header,.rtl-container.pink.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.pink.day .help-expansion .mat-expansion-indicator:after,.rtl-container.pink.day .help-expansion .mat-expansion-panel-content,.rtl-container.pink.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.pink.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.pink.day .failed-status{color:#b00020}.rtl-container.pink.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.pink.day .svg-fill-primary{fill:#e91e63}.rtl-container.pink.day .svg-fill-primary-lighter{fill:#f06292}.rtl-container.pink.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.pink.day ngx-charts-bar-vertical-2d text,.rtl-container.pink.day ngx-charts-bar-vertical text{fill:#000000de}.rtl-container.pink.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.pink.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.pink.day .mat-paginator-container{padding:0}.rtl-container.pink.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-option{color:#fff}.rtl-container.pink.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.night .mat-option:focus:not(.mat-option-disabled),.rtl-container.pink.night .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.pink.night .mat-option.mat-active{background:#0000000a;color:#fff}.rtl-container.pink.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#e91e63}.rtl-container.pink.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.pink.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.pink.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.pink.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.pink.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.pink.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#e91e63}.rtl-container.pink.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.pink.night .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.pink.night .mat-pseudo-checkbox-checked,.rtl-container.pink.night .mat-pseudo-checkbox-indeterminate{background:#eee}.rtl-container.pink.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.pink.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.pink.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.pink.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.pink.night.mat-app-background,.rtl-container.pink.night .mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.pink.night .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.pink.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.pink.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.pink.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.pink.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.pink.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.pink.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.pink.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.pink.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.pink.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.pink.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.pink.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.pink.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.pink.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.pink.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.pink.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.pink.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.pink.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.pink.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.pink.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.pink.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.pink.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.pink.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.pink.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.pink.night .mat-badge-content{color:#fff;background:#e91e63}.cdk-high-contrast-active .rtl-container.pink.night .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.pink.night .mat-badge-accent .mat-badge-content{background:#eee;color:#000}.rtl-container.pink.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.pink.night .mat-badge{position:relative}.rtl-container.pink.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.pink.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.pink.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.pink.night .mat-badge-content._mat-animation-noopable,.rtl-container.pink.night .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.pink.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.pink.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.pink.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.pink.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.pink.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.pink.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.pink.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.pink.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.pink.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.pink.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.pink.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.pink.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.pink.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.pink.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.pink.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.pink.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.pink.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.pink.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.pink.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.pink.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.pink.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.pink.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.pink.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.pink.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.pink.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.pink.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.pink.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.pink.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.pink.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.pink.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.pink.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.pink.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.pink.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.pink.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.pink.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.pink.night .mat-button,.rtl-container.pink.night .mat-icon-button,.rtl-container.pink.night .mat-stroked-button{color:inherit;background:#0000}.rtl-container.pink.night .mat-button.mat-primary,.rtl-container.pink.night .mat-icon-button.mat-primary,.rtl-container.pink.night .mat-stroked-button.mat-primary{color:#e91e63}.rtl-container.pink.night .mat-button.mat-accent,.rtl-container.pink.night .mat-icon-button.mat-accent,.rtl-container.pink.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.pink.night .mat-button.mat-warn,.rtl-container.pink.night .mat-icon-button.mat-warn,.rtl-container.pink.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.pink.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-stroked-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.pink.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.pink.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.pink.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#e91e63}.rtl-container.pink.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.pink.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.pink.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.pink.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.pink.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.pink.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.pink.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.pink.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.pink.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.pink.night .mat-button .mat-ripple-element,.rtl-container.pink.night .mat-icon-button .mat-ripple-element,.rtl-container.pink.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.pink.night .mat-button-focus-overlay{background:#fff}.rtl-container.pink.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.pink.night .mat-fab,.rtl-container.pink.night .mat-flat-button,.rtl-container.pink.night .mat-mini-fab,.rtl-container.pink.night .mat-raised-button{color:#fff;background-color:#363636}.rtl-container.pink.night .mat-fab.mat-primary,.rtl-container.pink.night .mat-flat-button.mat-primary,.rtl-container.pink.night .mat-mini-fab.mat-primary,.rtl-container.pink.night .mat-raised-button.mat-primary{color:#fff}.rtl-container.pink.night .mat-fab.mat-accent,.rtl-container.pink.night .mat-flat-button.mat-accent,.rtl-container.pink.night .mat-mini-fab.mat-accent,.rtl-container.pink.night .mat-raised-button.mat-accent{color:#000}.rtl-container.pink.night .mat-fab.mat-warn,.rtl-container.pink.night .mat-flat-button.mat-warn,.rtl-container.pink.night .mat-mini-fab.mat-warn,.rtl-container.pink.night .mat-raised-button.mat-warn{color:#fff}.rtl-container.pink.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.pink.night .mat-fab.mat-primary,.rtl-container.pink.night .mat-flat-button.mat-primary,.rtl-container.pink.night .mat-mini-fab.mat-primary,.rtl-container.pink.night .mat-raised-button.mat-primary{background-color:#e91e63}.rtl-container.pink.night .mat-fab.mat-accent,.rtl-container.pink.night .mat-flat-button.mat-accent,.rtl-container.pink.night .mat-mini-fab.mat-accent,.rtl-container.pink.night .mat-raised-button.mat-accent{background-color:#eee}.rtl-container.pink.night .mat-fab.mat-warn,.rtl-container.pink.night .mat-flat-button.mat-warn,.rtl-container.pink.night .mat-mini-fab.mat-warn,.rtl-container.pink.night .mat-raised-button.mat-warn{background-color:#ff343b}.rtl-container.pink.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-warn.mat-button-disabled{background-color:#404040}.rtl-container.pink.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.pink.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.pink.night .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.pink.night .mat-raised-button.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.pink.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.pink.night .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.pink.night .mat-raised-button.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.pink.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.pink.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.pink.night .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.pink.night .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.pink.night .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.pink.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.pink.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.pink.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.pink.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.pink.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.pink.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.night .mat-button-toggle-group,.rtl-container.pink.night .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.night .mat-button-toggle-group-appearance-standard,.rtl-container.pink.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.pink.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.pink.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #ffffff4d}.rtl-container.pink.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.pink.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #ffffff4d}.rtl-container.pink.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.pink.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.pink.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.pink.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.pink.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.pink.night .mat-button-toggle-group-appearance-standard,.rtl-container.pink.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #ffffff4d}.rtl-container.pink.night .mat-card{background:#202020;color:#fff}.rtl-container.pink.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.pink.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.pink.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.pink.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.pink.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.pink.night .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.pink.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#e91e63}.rtl-container.pink.night .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.pink.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.pink.night .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.pink.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.pink.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.pink.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.pink.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.pink.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.pink.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.pink.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#e91e63}.rtl-container.pink.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.pink.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eee}.rtl-container.pink.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.pink.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.pink.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.pink.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.pink.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip:after{background:#fff}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#e91e63;color:#fff}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.pink.night .mat-table{background:#202020}.rtl-container.pink.night .mat-table-sticky,.rtl-container.pink.night .mat-table tbody,.rtl-container.pink.night .mat-table tfoot,.rtl-container.pink.night .mat-table thead,.rtl-container.pink.night [mat-footer-row],.rtl-container.pink.night [mat-header-row],.rtl-container.pink.night [mat-row],.rtl-container.pink.night mat-footer-row,.rtl-container.pink.night mat-header-row,.rtl-container.pink.night mat-row{background:inherit}.rtl-container.pink.night mat-footer-row,.rtl-container.pink.night mat-header-row,.rtl-container.pink.night mat-row,.rtl-container.pink.night td.mat-cell,.rtl-container.pink.night td.mat-footer-cell,.rtl-container.pink.night th.mat-header-cell{border-bottom-color:#ffffff4d}.rtl-container.pink.night .mat-cell,.rtl-container.pink.night .mat-footer-cell{color:#fff}.rtl-container.pink.night .mat-calendar-arrow{border-top-color:#fff}.rtl-container.pink.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.pink.night .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.pink.night .mat-datepicker-toggle{color:#fff}.rtl-container.pink.night .mat-calendar-table-header-divider:after{background:#ffffff4d}.rtl-container.pink.night .mat-calendar-body-cell-content,.rtl-container.pink.night .mat-date-range-input-separator{color:#fff;border-color:#0000}.rtl-container.pink.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.pink.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.pink.night .mat-calendar-body-in-range:before{background:#e91e6333}.rtl-container.pink.night .mat-calendar-body-comparison-identical,.rtl-container.pink.night .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.pink.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#e91e6333 50%,#f9ab0033 0)}.rtl-container.pink.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#e91e6333 50%,#f9ab0033 0)}.rtl-container.pink.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.pink.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.pink.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.night .mat-calendar-body-selected{background-color:#e91e63;color:#fff}.rtl-container.pink.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#e91e6366}.rtl-container.pink.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#e91e634d}.rtl-container.pink.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#202020;color:#fff}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#eee3}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#eee3 50%,#f9ab0033 0)}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#eee3 50%,#f9ab0033 0)}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.pink.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#ff343b33}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}.rtl-container.pink.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.pink.night .mat-datepicker-toggle-active{color:#e91e63}.rtl-container.pink.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.pink.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.pink.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.pink.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.pink.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.pink.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.pink.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.pink.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.pink.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.pink.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.pink.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.pink.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.pink.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.pink.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.pink.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.pink.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-label{color:#e91e63}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.pink.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.pink.night .mat-form-field-ripple{background-color:#fff}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#e91e63}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.pink.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#e91e63}.rtl-container.pink.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.pink.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.pink.night .mat-error{color:#ff343b}.rtl-container.pink.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.pink.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.pink.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.pink.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.pink.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.pink.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.pink.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.pink.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.pink.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.pink.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.pink.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#e91e63}.rtl-container.pink.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.pink.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.pink.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.pink.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.pink.night .mat-icon.mat-primary{color:#e91e63}.rtl-container.pink.night .mat-icon.mat-accent{color:#eee}.rtl-container.pink.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.pink.night .mat-input-element{caret-color:#e91e63}.rtl-container.pink.night .mat-input-element option{color:#000000de}.rtl-container.pink.night .mat-input-element option:disabled{color:#00000061}.rtl-container.pink.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.pink.night .mat-form-field-invalid .mat-input-element,.rtl-container.pink.night .mat-form-field.mat-warn .mat-input-element{caret-color:#ff343b}.rtl-container.pink.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.pink.night .mat-list-base .mat-list-item,.rtl-container.pink.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.pink.night .mat-list-item-disabled{background-color:#444}.rtl-container.pink.night .mat-action-list .mat-list-item:focus,.rtl-container.pink.night .mat-action-list .mat-list-item:hover,.rtl-container.pink.night .mat-list-option:focus,.rtl-container.pink.night .mat-list-option:hover,.rtl-container.pink.night .mat-nav-list .mat-list-item:focus,.rtl-container.pink.night .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.pink.night .mat-list-single-selected-option,.rtl-container.pink.night .mat-list-single-selected-option:focus,.rtl-container.pink.night .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.pink.night .mat-menu-panel{background:#202020}.rtl-container.pink.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.night .mat-menu-item{background:#0000;color:#fff}.rtl-container.pink.night .mat-menu-item-submenu-trigger:after,.rtl-container.pink.night .mat-menu-item .mat-icon-no-color{color:#fff}.rtl-container.pink.night .mat-menu-item-highlighted:not([disabled]),.rtl-container.pink.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.pink.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.pink.night .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.pink.night .mat-paginator{background:#202020}.rtl-container.pink.night .mat-paginator-decrement,.rtl-container.pink.night .mat-paginator-increment{border-top:2px solid #fff;border-right:2px solid #fff}.rtl-container.pink.night .mat-paginator-first,.rtl-container.pink.night .mat-paginator-last{border-top:2px solid #fff}.rtl-container.pink.night .mat-progress-bar-background{fill:#441123}.rtl-container.pink.night .mat-progress-bar-buffer{background-color:#441123}.rtl-container.pink.night .mat-progress-bar-fill:after{background-color:#e91e63}.rtl-container.pink.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.pink.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.pink.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.pink.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.pink.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.pink.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.pink.night .mat-progress-spinner circle,.rtl-container.pink.night .mat-spinner circle{stroke:#e91e63}.rtl-container.pink.night .mat-progress-spinner.mat-accent circle,.rtl-container.pink.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.pink.night .mat-progress-spinner.mat-warn circle,.rtl-container.pink.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.pink.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#e91e63}.rtl-container.pink.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.pink.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#e91e63}.rtl-container.pink.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.pink.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.pink.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.pink.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.pink.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.pink.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.pink.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.pink.night .mat-select-value{color:#fff}.rtl-container.pink.night .mat-select-panel{background:#202020}.rtl-container.pink.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.pink.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#e91e63}.rtl-container.pink.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.pink.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.pink.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.pink.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.pink.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.pink.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.pink.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.pink.night .mat-drawer-side{border-right:1px solid #ffffff4d}.rtl-container.pink.night .mat-drawer-side.mat-drawer-end,.rtl-container.pink.night [dir=rtl] .mat-drawer-side{border-left:1px solid #ffffff4d;border-right:none}.rtl-container.pink.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.pink.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.pink.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.pink.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.pink.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.pink.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#e91e63}.rtl-container.pink.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#e91e638a}.rtl-container.pink.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#e91e63}.rtl-container.pink.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.pink.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.pink.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.pink.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.pink.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#bdbdbd}.rtl-container.pink.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.pink.night .mat-primary .mat-slider-thumb,.rtl-container.pink.night .mat-primary .mat-slider-thumb-label,.rtl-container.pink.night .mat-primary .mat-slider-track-fill{background-color:#e91e63}.rtl-container.pink.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.night .mat-primary .mat-slider-focus-ring{background-color:#e91e6333}.rtl-container.pink.night .mat-accent .mat-slider-thumb,.rtl-container.pink.night .mat-accent .mat-slider-thumb-label,.rtl-container.pink.night .mat-accent .mat-slider-track-fill{background-color:#eee}.rtl-container.pink.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.pink.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.pink.night .mat-warn .mat-slider-thumb,.rtl-container.pink.night .mat-warn .mat-slider-thumb-label,.rtl-container.pink.night .mat-warn .mat-slider-track-fill{background-color:#ff343b}.rtl-container.pink.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.pink.night .cdk-focused .mat-slider-track-background,.rtl-container.pink.night .mat-slider:hover .mat-slider-track-background{background-color:#fff9}.rtl-container.pink.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.pink.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.pink.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.pink.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.pink.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.pink.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.pink.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.pink.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.pink.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:initial}.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#fff9}.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.pink.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.pink.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.pink.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.pink.night .mat-step-header.cdk-keyboard-focused,.rtl-container.pink.night .mat-step-header.cdk-program-focused,.rtl-container.pink.night .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.pink.night .mat-step-header:hover{background:none}}.rtl-container.pink.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.pink.night .mat-step-header .mat-step-icon-selected,.rtl-container.pink.night .mat-step-header .mat-step-icon-state-done,.rtl-container.pink.night .mat-step-header .mat-step-icon-state-edit{background-color:#e91e63;color:#fff}.rtl-container.pink.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.pink.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.pink.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.pink.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.pink.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.pink.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.pink.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.pink.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.pink.night .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#ff343b}.rtl-container.pink.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.pink.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.pink.night .mat-stepper-horizontal,.rtl-container.pink.night .mat-stepper-vertical{background-color:#202020}.rtl-container.pink.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.pink.night .mat-horizontal-stepper-header:after,.rtl-container.pink.night .mat-horizontal-stepper-header:before,.rtl-container.pink.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.pink.night .mat-tab-header,.rtl-container.pink.night .mat-tab-nav-bar{border-bottom:1px solid #ffffff4d}.rtl-container.pink.night .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.pink.night .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #ffffff4d;border-bottom:none}.rtl-container.pink.night .mat-tab-label,.rtl-container.pink.night .mat-tab-link{color:#fff}.rtl-container.pink.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.pink.night .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.pink.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.pink.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#f062924d}.rtl-container.pink.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#e91e63}.rtl-container.pink.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.pink.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.pink.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.pink.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.pink.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.pink.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#f062924d}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#e91e63}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.pink.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#eee}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#000}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#0006}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#0000001f}.rtl-container.pink.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#ff343b}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.pink.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.pink.night .mat-toolbar.mat-primary{background:#e91e63;color:#fff}.rtl-container.pink.night .mat-toolbar.mat-accent{background:#eee;color:#000}.rtl-container.pink.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.pink.night .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.pink.night .mat-toolbar .mat-form-field-ripple,.rtl-container.pink.night .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.pink.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.pink.night .mat-toolbar .mat-form-field-label,.rtl-container.pink.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.pink.night .mat-toolbar .mat-select-arrow,.rtl-container.pink.night .mat-toolbar .mat-select-value{color:inherit}.rtl-container.pink.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.pink.night .mat-tree{background:#202020}.rtl-container.pink.night .mat-nested-tree-node,.rtl-container.pink.night .mat-tree-node{color:#fff}.rtl-container.pink.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.pink.night .mat-simple-snackbar-action{color:inherit}.rtl-container.pink.night .mat-primary{color:#ff4081}.rtl-container.pink.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.pink.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.pink.night .bg-primary{background-color:#e91e63;color:#fff}.rtl-container.pink.night .mat-tab-label.mat-tab-label-active{color:#ff4081}.rtl-container.pink.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#ff4081}.rtl-container.pink.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.pink.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.pink.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.pink.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.pink.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#ff4081}.rtl-container.pink.night .cc-data-block .cc-data-title{color:#ff4081}.rtl-container.pink.night .mat-stroked-button.mat-primary{border-color:#ff4081;color:#ff4081}.rtl-container.pink.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.pink.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.pink.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.pink.night .active-link,.rtl-container.pink.night .active-link .fa-icon-small,.rtl-container.pink.night .mat-select-panel .mat-option.mat-active,.rtl-container.pink.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#ff4081;font-weight:500;cursor:pointer;fill:#ff4081}.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.pink.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#ff4081}.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled),.rtl-container.pink.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.pink.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.pink.night .mat-nested-tree-node-parent:hover,.rtl-container.pink.night .mat-select-panel .mat-option:hover,.rtl-container.pink.night .mat-tree-node:hover{color:#ff4081;cursor:pointer;background:#ffffff0f}.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.pink.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.pink.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.pink.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.pink.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.pink.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.pink.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.pink.night .mat-tree-node:hover .mat-icon,.rtl-container.pink.night .mat-tree-node:hover .ng-fa-icon{color:#ff4081}.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.pink.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.pink.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.pink.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.pink.night .mat-tree-node:hover .sidenav-img svg{fill:#ff4081}.rtl-container.pink.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.pink.night .mat-nested-tree-node .sidenav-img,.rtl-container.pink.night .mat-tree-node .sidenav-img,.rtl-container.pink.night .page-title-container .page-title-img,.rtl-container.pink.night svg.top-icon-small{fill:#fff}.rtl-container.pink.night .selected-color{border-color:#f06292}.rtl-container.pink.night .mat-progress-bar-fill:after{background-color:#d81b60}.rtl-container.pink.night .chart-legend .legend-label .active .legend-label-text,.rtl-container.pink.night .chart-legend .legend-label:hover{color:#fff!important}.rtl-container.pink.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.pink.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#ff4081}.rtl-container.pink.night .mat-select-panel{background-color:#262626}.rtl-container.pink.night .mat-tree{background:#262626}.rtl-container.pink.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.pink.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.pink.night .dashboard-info-title{color:#ff4081}.rtl-container.pink.night .dashboard-capacity-header,.rtl-container.pink.night .dashboard-info-value{color:#fff}.rtl-container.pink.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.pink.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.pink.night .color-primary{color:#ff4081!important}.rtl-container.pink.night .dot-primary{background-color:#ff4081!important}.rtl-container.pink.night .dot-primary-lighter{background-color:#e91e63!important}.rtl-container.pink.night .mat-stepper-vertical{background-color:#262626}.rtl-container.pink.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.pink.night svg .boltz-icon-fill{fill:#fff}.rtl-container.pink.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .fill-color-0,.rtl-container.pink.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.pink.night svg .fill-color-1{fill:#232323}.rtl-container.pink.night svg .fill-color-2{fill:#222}.rtl-container.pink.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.pink.night svg .fill-color-4{fill:#383838}.rtl-container.pink.night svg .fill-color-5{fill:#555}.rtl-container.pink.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.pink.night svg .fill-color-7{fill:#202020}.rtl-container.pink.night svg .fill-color-8{fill:#242424}.rtl-container.pink.night svg .fill-color-9{fill:#262626}.rtl-container.pink.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.pink.night svg .fill-color-11{fill:#171717}.rtl-container.pink.night svg .fill-color-12{fill:#ccc}.rtl-container.pink.night svg .fill-color-13{fill:#adadad}.rtl-container.pink.night svg .fill-color-14{fill:#ababab}.rtl-container.pink.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.pink.night svg .fill-color-16{fill:#707070}.rtl-container.pink.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.pink.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.pink.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.pink.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.pink.night svg .fill-color-21{fill:#cacaca}.rtl-container.pink.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.pink.night svg .fill-color-23{fill:#777}.rtl-container.pink.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.pink.night svg .fill-color-25{fill:#252525}.rtl-container.pink.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.pink.night svg .fill-color-27{fill:#000}.rtl-container.pink.night svg .fill-color-28{fill:#313131}.rtl-container.pink.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.pink.night svg .fill-color-30{fill:#fff}.rtl-container.pink.night svg .fill-color-31{fill:#e91e63}.rtl-container.pink.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.pink.night svg .fill-color-primary{fill:#e91e63}.rtl-container.pink.night svg .fill-color-primary-lighter{fill:#f06292}.rtl-container.pink.night svg .fill-color-primary-darker{fill:#ff4081}.rtl-container.pink.night .mat-select-arrow,.rtl-container.pink.night .mat-select-value{color:#fff}.rtl-container.pink.night .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.pink.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.pink.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.pink.night .mat-slide-toggle-bar,.rtl-container.pink.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.pink.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.pink.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.pink.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.pink.night .mat-button.mat-primary,.rtl-container.pink.night .mat-icon-button.mat-primary,.rtl-container.pink.night .mat-stroked-button.mat-primary{color:#ff4081}.rtl-container.pink.night tr.alert.alert-warn .mat-cell,.rtl-container.pink.night tr.alert.alert-warn .mat-footer-cell,.rtl-container.pink.night tr.alert.alert-warn .mat-header-cell{color:#856404}.rtl-container.pink.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.pink.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#ff4081}.rtl-container.pink.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.pink.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#ad1457}.rtl-container.pink.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.pink.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#ff4081}.rtl-container.pink.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.pink.night .mat-progress-bar-buffer{background-color:#f8bbd0}.rtl-container.pink.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.pink.night .foreground-secondary-text{color: !important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.pink.night .foreground.mat-progress-spinner circle,.rtl-container.pink.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.pink.night .mat-toolbar-row,.rtl-container.pink.night .mat-toolbar-single-row{height:5rem}.rtl-container.pink.night .lnd-info{border-bottom:1px solid #ffffff4d}.rtl-container.pink.night a{color:#e91e63}.rtl-container.pink.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.pink.night .h-active-link{border-bottom:2px solid #fff}.rtl-container.pink.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.pink.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.pink.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.pink.night .genseed-message{width:10%;color:#e91e63}.rtl-container.pink.night .material-icons.primary{color:#e91e63}.rtl-container.pink.night .material-icons.accent{color:#eee}.rtl-container.pink.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.pink.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.pink.night .row-disabled{background-color:gray}.rtl-container.pink.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.pink.night .mat-menu-panel{min-width:6.4rem}.rtl-container.pink.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.pink.night .horizontal-button:hover{background:#f06292;color:#eee}.rtl-container.pink.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#e91e63}.rtl-container.pink.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.pink.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.pink.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.pink.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.pink.night .mat-cell,.rtl-container.pink.night .mat-footer-cell,.rtl-container.pink.night .mat-header-cell{border-bottom:1px solid #ffffff4d}.rtl-container.pink.night table.mat-table{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.pink.night table.mat-table thead tr th{color:#fff}.rtl-container.pink.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.pink.night .bordered-box{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.pink.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.pink.night .mat-expansion-panel{border:1px solid #ffffff4d}.rtl-container.pink.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.pink.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.pink.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.pink.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.pink.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.pink.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.pink.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.pink.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.pink.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.pink.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.pink.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.pink.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.pink.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.pink.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.pink.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.pink.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.pink.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.pink.night .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#f48fb1!important}.rtl-container.pink.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#d81b60!important}.rtl-container.pink.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.pink.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.pink.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.pink.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.pink.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.pink.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.pink.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.pink.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.pink.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.pink.night .color-warn{color:#ff343b}.rtl-container.pink.night .fill-warn{fill:#ff343b}.rtl-container.pink.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.pink.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.pink.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.pink.night .alert.alert-info a{color:#004085}.rtl-container.pink.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.pink.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.pink.night .alert.alert-warn a{color:#856404}.rtl-container.pink.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.pink.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.pink.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.pink.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.pink.night .help-expansion .mat-expansion-panel-header,.rtl-container.pink.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.pink.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.pink.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.pink.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.pink.night .failed-status{color:#ff343b}.rtl-container.pink.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.pink.night .svg-fill-primary{fill:#e91e63}.rtl-container.pink.night .svg-fill-primary-lighter{fill:#f06292}.rtl-container.pink.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.pink.night ngx-charts-bar-vertical-2d text,.rtl-container.pink.night ngx-charts-bar-vertical text{fill:#fff}.rtl-container.pink.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.pink.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.pink.night .mat-paginator-container{padding:0}.rtl-container.yellow.small.small .mat-header-cell{font-weight:700}.rtl-container.yellow.small.small .mr-4{margin-right:1rem!important}.rtl-container.yellow.small.small .mat-menu-item,.rtl-container.yellow.small.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.yellow.small.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.yellow.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.yellow.small.small .fa-icon-small,.rtl-container.yellow.small.small .genseed-message,.rtl-container.yellow.small.small .top-icon-small,.rtl-container.yellow.small.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.yellow.small.small .page-sub-title-container,.rtl-container.yellow.small.small .page-title-container{font-size:1.32rem}.rtl-container.yellow.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.yellow.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.yellow.small.small .sidenav-img svg,.rtl-container.yellow.small.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.yellow.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.yellow.small.small .material-icons,.rtl-container.yellow.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.yellow.small.small .mat-expansion-panel-header,.rtl-container.yellow.small.small .mat-list .mat-list-item,.rtl-container.yellow.small.small .mat-menu-item,.rtl-container.yellow.small.small .mat-nav-list .mat-list-item,.rtl-container.yellow.small.small .mat-option,.rtl-container.yellow.small.small .mat-select,.rtl-container.yellow.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.yellow.small.small .logo{font-size:2.4rem}.rtl-container.yellow.small.small .font-60-percent{font-size:.72rem}.rtl-container.yellow.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.yellow.small.small .icon-large{font-size:6rem}.rtl-container.yellow.small.small .icon-small{font-size:1.8rem!important}.rtl-container.yellow.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.yellow.small.small .size-triple{font-size:3.6rem}.rtl-container.yellow.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.yellow.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.small.medium .mat-header-cell{font-weight:700}.rtl-container.yellow.small.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.yellow.small.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.yellow.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.yellow.small.medium .genseed-message,.rtl-container.yellow.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.yellow.small.medium .page-sub-title-container,.rtl-container.yellow.small.medium .page-title-container{font-size:1.54rem}.rtl-container.yellow.small.medium .fa-icon-small,.rtl-container.yellow.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.yellow.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.yellow.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.yellow.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.yellow.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.yellow.small.medium .sidenav-img svg,.rtl-container.yellow.small.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.yellow.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.yellow.small.medium .material-icons{font-size:2.8rem}.rtl-container.yellow.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.yellow.small.medium .mat-expansion-panel-header,.rtl-container.yellow.small.medium .mat-list .mat-list-item,.rtl-container.yellow.small.medium .mat-menu-item,.rtl-container.yellow.small.medium .mat-nav-list .mat-list-item,.rtl-container.yellow.small.medium .mat-option,.rtl-container.yellow.small.medium .mat-select,.rtl-container.yellow.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.yellow.small.medium .logo{font-size:2.8rem}.rtl-container.yellow.small.medium .font-60-percent{font-size:.84rem}.rtl-container.yellow.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.yellow.small.medium .icon-large{font-size:7rem}.rtl-container.yellow.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.yellow.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.yellow.small.medium .size-triple{font-size:4.2rem}.rtl-container.yellow.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.yellow.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.small.large .mat-header-cell{font-weight:800}.rtl-container.yellow.small.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.yellow.small.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.yellow.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.yellow.small.large .genseed-message,.rtl-container.yellow.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.yellow.small.large .page-sub-title-container,.rtl-container.yellow.small.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.yellow.small.large .fa-icon-small,.rtl-container.yellow.small.large .modal-info-header,.rtl-container.yellow.small.large .top-icon-small{font-size:1.92rem}.rtl-container.yellow.small.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.yellow.small.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.yellow.small.large .sidenav-img svg,.rtl-container.yellow.small.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.yellow.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.yellow.small.large .material-icons{font-size:4rem}.rtl-container.yellow.small.large .mat-expansion-panel-header,.rtl-container.yellow.small.large .mat-list .mat-list-item,.rtl-container.yellow.small.large .mat-menu-item,.rtl-container.yellow.small.large .mat-nav-list .mat-list-item,.rtl-container.yellow.small.large .mat-option,.rtl-container.yellow.small.large .mat-select,.rtl-container.yellow.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.yellow.small.large .logo{font-size:3.2rem}.rtl-container.yellow.small.large .font-60-percent{font-size:.96rem}.rtl-container.yellow.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.yellow.small.large .icon-large{font-size:8rem}.rtl-container.yellow.small.large .icon-small{font-size:2.4rem!important}.rtl-container.yellow.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.yellow.small.large .size-triple{font-size:4.8rem}.rtl-container.yellow.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.yellow.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.small .mat-icon.material-icons:focus{outline:none}.rtl-container.yellow.small .mat-flat-button.mat-primary:focus,.rtl-container.yellow.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.yellow.medium.small .mat-header-cell{font-weight:700}.rtl-container.yellow.medium.small .mr-4{margin-right:1rem!important}.rtl-container.yellow.medium.small .mat-menu-item,.rtl-container.yellow.medium.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.yellow.medium.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.yellow.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.yellow.medium.small .fa-icon-small,.rtl-container.yellow.medium.small .genseed-message,.rtl-container.yellow.medium.small .top-icon-small,.rtl-container.yellow.medium.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.yellow.medium.small .page-sub-title-container,.rtl-container.yellow.medium.small .page-title-container{font-size:1.32rem}.rtl-container.yellow.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.yellow.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.yellow.medium.small .sidenav-img svg,.rtl-container.yellow.medium.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.yellow.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.yellow.medium.small .material-icons,.rtl-container.yellow.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.yellow.medium.small .mat-expansion-panel-header,.rtl-container.yellow.medium.small .mat-list .mat-list-item,.rtl-container.yellow.medium.small .mat-menu-item,.rtl-container.yellow.medium.small .mat-nav-list .mat-list-item,.rtl-container.yellow.medium.small .mat-option,.rtl-container.yellow.medium.small .mat-select,.rtl-container.yellow.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.yellow.medium.small .logo{font-size:2.4rem}.rtl-container.yellow.medium.small .font-60-percent{font-size:.72rem}.rtl-container.yellow.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.yellow.medium.small .icon-large{font-size:6rem}.rtl-container.yellow.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.yellow.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.yellow.medium.small .size-triple{font-size:3.6rem}.rtl-container.yellow.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.yellow.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.medium.medium .mat-header-cell{font-weight:700}.rtl-container.yellow.medium.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.yellow.medium.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.yellow.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.yellow.medium.medium .genseed-message,.rtl-container.yellow.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.yellow.medium.medium .page-sub-title-container,.rtl-container.yellow.medium.medium .page-title-container{font-size:1.54rem}.rtl-container.yellow.medium.medium .fa-icon-small,.rtl-container.yellow.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.yellow.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.yellow.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.yellow.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.yellow.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.yellow.medium.medium .sidenav-img svg,.rtl-container.yellow.medium.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.yellow.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.yellow.medium.medium .material-icons{font-size:2.8rem}.rtl-container.yellow.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.yellow.medium.medium .mat-expansion-panel-header,.rtl-container.yellow.medium.medium .mat-list .mat-list-item,.rtl-container.yellow.medium.medium .mat-menu-item,.rtl-container.yellow.medium.medium .mat-nav-list .mat-list-item,.rtl-container.yellow.medium.medium .mat-option,.rtl-container.yellow.medium.medium .mat-select,.rtl-container.yellow.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.yellow.medium.medium .logo{font-size:2.8rem}.rtl-container.yellow.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.yellow.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.yellow.medium.medium .icon-large{font-size:7rem}.rtl-container.yellow.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.yellow.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.yellow.medium.medium .size-triple{font-size:4.2rem}.rtl-container.yellow.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.yellow.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.medium.large .mat-header-cell{font-weight:800}.rtl-container.yellow.medium.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.yellow.medium.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.yellow.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.yellow.medium.large .genseed-message,.rtl-container.yellow.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.yellow.medium.large .page-sub-title-container,.rtl-container.yellow.medium.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.yellow.medium.large .fa-icon-small,.rtl-container.yellow.medium.large .modal-info-header,.rtl-container.yellow.medium.large .top-icon-small{font-size:1.92rem}.rtl-container.yellow.medium.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.yellow.medium.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.yellow.medium.large .sidenav-img svg,.rtl-container.yellow.medium.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.yellow.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.yellow.medium.large .material-icons{font-size:4rem}.rtl-container.yellow.medium.large .mat-expansion-panel-header,.rtl-container.yellow.medium.large .mat-list .mat-list-item,.rtl-container.yellow.medium.large .mat-menu-item,.rtl-container.yellow.medium.large .mat-nav-list .mat-list-item,.rtl-container.yellow.medium.large .mat-option,.rtl-container.yellow.medium.large .mat-select,.rtl-container.yellow.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.yellow.medium.large .logo{font-size:3.2rem}.rtl-container.yellow.medium.large .font-60-percent{font-size:.96rem}.rtl-container.yellow.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.yellow.medium.large .icon-large{font-size:8rem}.rtl-container.yellow.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.yellow.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.yellow.medium.large .size-triple{font-size:4.8rem}.rtl-container.yellow.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.yellow.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.yellow.medium .mat-flat-button.mat-primary:focus,.rtl-container.yellow.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.yellow.large.small .mat-header-cell{font-weight:700}.rtl-container.yellow.large.small .mr-4{margin-right:1rem!important}.rtl-container.yellow.large.small .mat-menu-item,.rtl-container.yellow.large.small .mat-tree .mat-nested-tree-node-parent,.rtl-container.yellow.large.small .mat-tree .mat-tree-node{min-height:2.8rem;height:2.8rem}.rtl-container.yellow.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.32rem}.rtl-container.yellow.large.small .fa-icon-small,.rtl-container.yellow.large.small .genseed-message,.rtl-container.yellow.large.small .top-icon-small,.rtl-container.yellow.large.small .validation-error-message .validation-error-icon.mat-icon{font-size:1.44rem}.rtl-container.yellow.large.small .page-sub-title-container,.rtl-container.yellow.large.small .page-title-container{font-size:1.32rem}.rtl-container.yellow.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.yellow.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.yellow.large.small .sidenav-img svg,.rtl-container.yellow.large.small .top-toolbar-icon .top-toolbar-img{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.yellow.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.yellow.large.small .material-icons,.rtl-container.yellow.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.yellow.large.small .mat-expansion-panel-header,.rtl-container.yellow.large.small .mat-list .mat-list-item,.rtl-container.yellow.large.small .mat-menu-item,.rtl-container.yellow.large.small .mat-nav-list .mat-list-item,.rtl-container.yellow.large.small .mat-option,.rtl-container.yellow.large.small .mat-select,.rtl-container.yellow.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.yellow.large.small .logo{font-size:2.4rem}.rtl-container.yellow.large.small .font-60-percent{font-size:.72rem}.rtl-container.yellow.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.yellow.large.small .icon-large{font-size:6rem}.rtl-container.yellow.large.small .icon-small{font-size:1.8rem!important}.rtl-container.yellow.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.yellow.large.small .size-triple{font-size:3.6rem}.rtl-container.yellow.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.yellow.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.large.medium .mat-header-cell{font-weight:700}.rtl-container.yellow.large.medium .mat-tree .mat-nested-tree-node-parent,.rtl-container.yellow.large.medium .mat-tree .mat-tree-node{min-height:4rem;height:4rem}.rtl-container.yellow.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.54rem}.rtl-container.yellow.large.medium .genseed-message,.rtl-container.yellow.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.yellow.large.medium .page-sub-title-container,.rtl-container.yellow.large.medium .page-title-container{font-size:1.54rem}.rtl-container.yellow.large.medium .fa-icon-small,.rtl-container.yellow.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.yellow.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width:56.25em){.rtl-container.yellow.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width:37.5em){.rtl-container.yellow.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.yellow.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.yellow.large.medium .sidenav-img svg,.rtl-container.yellow.large.medium .top-toolbar-icon .top-toolbar-img{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.yellow.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.yellow.large.medium .material-icons{font-size:2.8rem}.rtl-container.yellow.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:medium}.rtl-container.yellow.large.medium .mat-expansion-panel-header,.rtl-container.yellow.large.medium .mat-list .mat-list-item,.rtl-container.yellow.large.medium .mat-menu-item,.rtl-container.yellow.large.medium .mat-nav-list .mat-list-item,.rtl-container.yellow.large.medium .mat-option,.rtl-container.yellow.large.medium .mat-select,.rtl-container.yellow.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.yellow.large.medium .logo{font-size:2.8rem}.rtl-container.yellow.large.medium .font-60-percent{font-size:.84rem}.rtl-container.yellow.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.yellow.large.medium .icon-large{font-size:7rem}.rtl-container.yellow.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.yellow.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.yellow.large.medium .size-triple{font-size:4.2rem}.rtl-container.yellow.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.yellow.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.large.large .mat-header-cell{font-weight:800}.rtl-container.yellow.large.large .mat-tree .mat-nested-tree-node-parent,.rtl-container.yellow.large.large .mat-tree .mat-tree-node{height:4rem}.rtl-container.yellow.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){font-size:1.76rem}.rtl-container.yellow.large.large .genseed-message,.rtl-container.yellow.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.yellow.large.large .page-sub-title-container,.rtl-container.yellow.large.large .page-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.yellow.large.large .fa-icon-small,.rtl-container.yellow.large.large .modal-info-header,.rtl-container.yellow.large.large .top-icon-small{font-size:1.92rem}.rtl-container.yellow.large.large .mat-step-header .mat-step-icon .mat-icon,.rtl-container.yellow.large.large .top-toolbar-icon.icon-pinned{font-size:2rem}.rtl-container.yellow.large.large .sidenav-img svg,.rtl-container.yellow.large.large .top-toolbar-icon .top-toolbar-img{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.yellow.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.yellow.large.large .material-icons{font-size:4rem}.rtl-container.yellow.large.large .mat-expansion-panel-header,.rtl-container.yellow.large.large .mat-list .mat-list-item,.rtl-container.yellow.large.large .mat-menu-item,.rtl-container.yellow.large.large .mat-nav-list .mat-list-item,.rtl-container.yellow.large.large .mat-option,.rtl-container.yellow.large.large .mat-select,.rtl-container.yellow.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.yellow.large.large .logo{font-size:3.2rem}.rtl-container.yellow.large.large .font-60-percent{font-size:.96rem}.rtl-container.yellow.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.yellow.large.large .icon-large{font-size:8rem}.rtl-container.yellow.large.large .icon-small{font-size:2.4rem!important}.rtl-container.yellow.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.yellow.large.large .size-triple{font-size:4.8rem}.rtl-container.yellow.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.yellow.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.large .mat-icon.material-icons:focus{outline:none}.rtl-container.yellow.large .mat-flat-button.mat-primary:focus,.rtl-container.yellow.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.yellow.day .mat-ripple-element{background-color:#0000001a}.rtl-container.yellow.day .mat-option{color:#000000de}.rtl-container.yellow.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.day .mat-option:focus:not(.mat-option-disabled),.rtl-container.yellow.day .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.yellow.day .mat-option.mat-active{background:#0000000a;color:#000000de}.rtl-container.yellow.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.yellow.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#945f1f}.rtl-container.yellow.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.yellow.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.yellow.day .mat-optgroup-label{color:#0000008a}.rtl-container.yellow.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.yellow.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.yellow.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.yellow.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.yellow.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.yellow.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#945f1f}.rtl-container.yellow.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.yellow.day .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.yellow.day .mat-pseudo-checkbox-checked,.rtl-container.yellow.day .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.yellow.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.yellow.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.yellow.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.yellow.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.yellow.day.mat-app-background,.rtl-container.yellow.day .mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.yellow.day .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.yellow.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.yellow.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.yellow.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.yellow.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.yellow.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.yellow.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.yellow.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.yellow.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.yellow.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.yellow.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.yellow.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.yellow.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.yellow.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.yellow.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.yellow.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.yellow.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.yellow.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.yellow.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.yellow.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.yellow.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.yellow.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.yellow.day .mat-autocomplete-panel{background:#fff;color:#000000de}.rtl-container.yellow.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.rtl-container.yellow.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.yellow.day .mat-badge-content{color:#fff;background:#945f1f}.cdk-high-contrast-active .rtl-container.yellow.day .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.yellow.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.yellow.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.yellow.day .mat-badge{position:relative}.rtl-container.yellow.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.yellow.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.yellow.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.yellow.day .mat-badge-content._mat-animation-noopable,.rtl-container.yellow.day .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.yellow.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.yellow.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.yellow.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.yellow.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.yellow.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.yellow.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.yellow.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.yellow.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.yellow.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.yellow.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.yellow.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.yellow.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.yellow.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.yellow.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.yellow.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.yellow.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.yellow.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.yellow.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.yellow.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.yellow.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.yellow.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.yellow.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.yellow.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.yellow.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.yellow.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.yellow.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.yellow.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.yellow.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.yellow.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.rtl-container.yellow.day .mat-button,.rtl-container.yellow.day .mat-icon-button,.rtl-container.yellow.day .mat-stroked-button{color:inherit;background:#0000}.rtl-container.yellow.day .mat-button.mat-primary,.rtl-container.yellow.day .mat-icon-button.mat-primary,.rtl-container.yellow.day .mat-stroked-button.mat-primary{color:#945f1f}.rtl-container.yellow.day .mat-button.mat-accent,.rtl-container.yellow.day .mat-icon-button.mat-accent,.rtl-container.yellow.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.yellow.day .mat-button.mat-warn,.rtl-container.yellow.day .mat-icon-button.mat-warn,.rtl-container.yellow.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.yellow.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-stroked-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.yellow.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.yellow.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.yellow.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#945f1f}.rtl-container.yellow.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.yellow.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.yellow.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.yellow.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.yellow.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.yellow.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.yellow.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.yellow.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.yellow.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.yellow.day .mat-button .mat-ripple-element,.rtl-container.yellow.day .mat-icon-button .mat-ripple-element,.rtl-container.yellow.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.yellow.day .mat-button-focus-overlay{background:#000}.rtl-container.yellow.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.yellow.day .mat-fab,.rtl-container.yellow.day .mat-flat-button,.rtl-container.yellow.day .mat-mini-fab,.rtl-container.yellow.day .mat-raised-button{color:#000000de;background-color:#fff}.rtl-container.yellow.day .mat-fab.mat-accent,.rtl-container.yellow.day .mat-fab.mat-primary,.rtl-container.yellow.day .mat-fab.mat-warn,.rtl-container.yellow.day .mat-flat-button.mat-accent,.rtl-container.yellow.day .mat-flat-button.mat-primary,.rtl-container.yellow.day .mat-flat-button.mat-warn,.rtl-container.yellow.day .mat-mini-fab.mat-accent,.rtl-container.yellow.day .mat-mini-fab.mat-primary,.rtl-container.yellow.day .mat-mini-fab.mat-warn,.rtl-container.yellow.day .mat-raised-button.mat-accent,.rtl-container.yellow.day .mat-raised-button.mat-primary,.rtl-container.yellow.day .mat-raised-button.mat-warn{color:#fff}.rtl-container.yellow.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-warn.mat-button-disabled{color:#00000042}.rtl-container.yellow.day .mat-fab.mat-primary,.rtl-container.yellow.day .mat-flat-button.mat-primary,.rtl-container.yellow.day .mat-mini-fab.mat-primary,.rtl-container.yellow.day .mat-raised-button.mat-primary{background-color:#945f1f}.rtl-container.yellow.day .mat-fab.mat-accent,.rtl-container.yellow.day .mat-flat-button.mat-accent,.rtl-container.yellow.day .mat-mini-fab.mat-accent,.rtl-container.yellow.day .mat-raised-button.mat-accent{background-color:#424242}.rtl-container.yellow.day .mat-fab.mat-warn,.rtl-container.yellow.day .mat-flat-button.mat-warn,.rtl-container.yellow.day .mat-mini-fab.mat-warn,.rtl-container.yellow.day .mat-raised-button.mat-warn{background-color:#b00020}.rtl-container.yellow.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-warn.mat-button-disabled{background-color:#0000001f}.rtl-container.yellow.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.yellow.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.yellow.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.yellow.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.day .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.yellow.day .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.yellow.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.yellow.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.yellow.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.yellow.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.yellow.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.yellow.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.day .mat-button-toggle-group,.rtl-container.yellow.day .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.day .mat-button-toggle-group-appearance-standard,.rtl-container.yellow.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.yellow.day .mat-button-toggle{color:#00000061}.rtl-container.yellow.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.yellow.day .mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.rtl-container.yellow.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.yellow.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #0000001f}.rtl-container.yellow.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #0000001f}.rtl-container.yellow.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #0000001f}.rtl-container.yellow.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.yellow.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.yellow.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.yellow.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.rtl-container.yellow.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.yellow.day .mat-button-toggle-group-appearance-standard,.rtl-container.yellow.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #0000001f}.rtl-container.yellow.day .mat-card{background:#fff;color:#000000de}.rtl-container.yellow.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.yellow.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.day .mat-card-subtitle{color:#0000008a}.rtl-container.yellow.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.yellow.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.yellow.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.yellow.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.yellow.day .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.yellow.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#945f1f}.rtl-container.yellow.day .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.yellow.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.yellow.day .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.yellow.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.yellow.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.yellow.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.yellow.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.yellow.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.yellow.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.yellow.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#945f1f}.rtl-container.yellow.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.yellow.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.yellow.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.yellow.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.yellow.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.yellow.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip:after{background:#000}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#945f1f;color:#fff}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.day .mat-table{background:#fff}.rtl-container.yellow.day .mat-table-sticky,.rtl-container.yellow.day .mat-table tbody,.rtl-container.yellow.day .mat-table tfoot,.rtl-container.yellow.day .mat-table thead,.rtl-container.yellow.day [mat-footer-row],.rtl-container.yellow.day [mat-header-row],.rtl-container.yellow.day [mat-row],.rtl-container.yellow.day mat-footer-row,.rtl-container.yellow.day mat-header-row,.rtl-container.yellow.day mat-row{background:inherit}.rtl-container.yellow.day mat-footer-row,.rtl-container.yellow.day mat-header-row,.rtl-container.yellow.day mat-row,.rtl-container.yellow.day td.mat-cell,.rtl-container.yellow.day td.mat-footer-cell,.rtl-container.yellow.day th.mat-header-cell{border-bottom-color:#0000001f}.rtl-container.yellow.day .mat-header-cell{color:#0000008a}.rtl-container.yellow.day .mat-cell,.rtl-container.yellow.day .mat-footer-cell{color:#000000de}.rtl-container.yellow.day .mat-calendar-arrow{border-top-color:#0000008a}.rtl-container.yellow.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.yellow.day .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.yellow.day .mat-datepicker-toggle{color:#0000008a}.rtl-container.yellow.day .mat-calendar-table-header{color:#00000061}.rtl-container.yellow.day .mat-calendar-table-header-divider:after{background:#0000001f}.rtl-container.yellow.day .mat-calendar-body-label{color:#0000008a}.rtl-container.yellow.day .mat-calendar-body-cell-content,.rtl-container.yellow.day .mat-date-range-input-separator{color:#000000de;border-color:#0000}.rtl-container.yellow.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.yellow.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.yellow.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.yellow.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.yellow.day .mat-calendar-body-in-range:before{background:#945f1f33}.rtl-container.yellow.day .mat-calendar-body-comparison-identical,.rtl-container.yellow.day .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.yellow.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#945f1f33 50%,#f9ab0033 0)}.rtl-container.yellow.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#945f1f33 50%,#f9ab0033 0)}.rtl-container.yellow.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.yellow.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.yellow.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.day .mat-calendar-body-selected{background-color:#945f1f;color:#fff}.rtl-container.yellow.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#945f1f66}.rtl-container.yellow.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#945f1f4d}.rtl-container.yellow.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#fff;color:#000000de}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#42424233}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#42424233 50%,#f9ab0033 0)}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#42424233 50%,#f9ab0033 0)}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#b0002033}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#b0002033 50%,#f9ab0033 0)}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}.rtl-container.yellow.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.yellow.day .mat-datepicker-toggle-active{color:#945f1f}.rtl-container.yellow.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.yellow.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.yellow.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.yellow.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.rtl-container.yellow.day .mat-divider{border-top-color:#0000001f}.rtl-container.yellow.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.yellow.day .mat-expansion-panel{background:#fff;color:#000000de}.rtl-container.yellow.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.day .mat-action-row{border-top-color:#0000001f}.rtl-container.yellow.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.yellow.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.yellow.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.yellow.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.rtl-container.yellow.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.yellow.day .mat-expansion-indicator:after,.rtl-container.yellow.day .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.yellow.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.yellow.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.yellow.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.yellow.day .mat-form-field-label,.rtl-container.yellow.day .mat-hint{color:#0009}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-label{color:#945f1f}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.yellow.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.yellow.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#945f1f}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#945f1f}.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.yellow.day .mat-error{color:#b00020}.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.yellow.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.yellow.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.yellow.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#0000006b 0,#0000006b 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.yellow.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.yellow.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.yellow.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.yellow.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.yellow.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.yellow.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.yellow.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#945f1f}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.yellow.day .mat-icon.mat-primary{color:#945f1f}.rtl-container.yellow.day .mat-icon.mat-accent{color:#424242}.rtl-container.yellow.day .mat-icon.mat-warn{color:#b00020}.rtl-container.yellow.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after,.rtl-container.yellow.day .mat-input-element:disabled{color:#00000061}.rtl-container.yellow.day .mat-input-element{caret-color:#945f1f}.rtl-container.yellow.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.yellow.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.yellow.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.yellow.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.yellow.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.yellow.day .mat-form-field-invalid .mat-input-element,.rtl-container.yellow.day .mat-form-field.mat-warn .mat-input-element{caret-color:#b00020}.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.yellow.day .mat-list-base .mat-list-item,.rtl-container.yellow.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.yellow.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.yellow.day .mat-list-item-disabled{background-color:#eee}.rtl-container.yellow.day .mat-action-list .mat-list-item:focus,.rtl-container.yellow.day .mat-action-list .mat-list-item:hover,.rtl-container.yellow.day .mat-list-option:focus,.rtl-container.yellow.day .mat-list-option:hover,.rtl-container.yellow.day .mat-nav-list .mat-list-item:focus,.rtl-container.yellow.day .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.yellow.day .mat-list-single-selected-option,.rtl-container.yellow.day .mat-list-single-selected-option:focus,.rtl-container.yellow.day .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.yellow.day .mat-menu-panel{background:#fff}.rtl-container.yellow.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.day .mat-menu-item{background:#0000;color:#000000de}.rtl-container.yellow.day .mat-menu-item[disabled],.rtl-container.yellow.day .mat-menu-item[disabled] .mat-icon-no-color,.rtl-container.yellow.day .mat-menu-item[disabled]:after{color:#00000061}.rtl-container.yellow.day .mat-menu-item-submenu-trigger:after,.rtl-container.yellow.day .mat-menu-item .mat-icon-no-color{color:#0000008a}.rtl-container.yellow.day .mat-menu-item-highlighted:not([disabled]),.rtl-container.yellow.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.yellow.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.yellow.day .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.yellow.day .mat-paginator{background:#fff}.rtl-container.yellow.day .mat-paginator,.rtl-container.yellow.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.yellow.day .mat-paginator-decrement,.rtl-container.yellow.day .mat-paginator-increment{border-top:2px solid #0000008a;border-right:2px solid #0000008a}.rtl-container.yellow.day .mat-paginator-first,.rtl-container.yellow.day .mat-paginator-last{border-top:2px solid #0000008a}.rtl-container.yellow.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.yellow.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.yellow.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.yellow.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.yellow.day .mat-progress-bar-background{fill:#e1d3c3}.rtl-container.yellow.day .mat-progress-bar-buffer{background-color:#e1d3c3}.rtl-container.yellow.day .mat-progress-bar-fill:after{background-color:#945f1f}.rtl-container.yellow.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.yellow.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.yellow.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.yellow.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.yellow.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.yellow.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.yellow.day .mat-progress-spinner circle,.rtl-container.yellow.day .mat-spinner circle{stroke:#945f1f}.rtl-container.yellow.day .mat-progress-spinner.mat-accent circle,.rtl-container.yellow.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.yellow.day .mat-progress-spinner.mat-warn circle,.rtl-container.yellow.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.yellow.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.yellow.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#945f1f}.rtl-container.yellow.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.yellow.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#945f1f}.rtl-container.yellow.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.yellow.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.yellow.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.yellow.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.yellow.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.yellow.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:#00000061}.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.yellow.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.yellow.day .mat-select-value{color:#000000de}.rtl-container.yellow.day .mat-select-placeholder{color:#0000006b}.rtl-container.yellow.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.yellow.day .mat-select-arrow{color:#0000008a}.rtl-container.yellow.day .mat-select-panel{background:#fff}.rtl-container.yellow.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.yellow.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#945f1f}.rtl-container.yellow.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.yellow.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.yellow.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.yellow.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.yellow.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.yellow.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.yellow.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.yellow.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.yellow.day .mat-drawer-side{border-right:1px solid #0000001f}.rtl-container.yellow.day .mat-drawer-side.mat-drawer-end,.rtl-container.yellow.day [dir=rtl] .mat-drawer-side{border-left:1px solid #0000001f;border-right:none}.rtl-container.yellow.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #0000001f}.rtl-container.yellow.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.yellow.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.yellow.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.yellow.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.yellow.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#945f1f}.rtl-container.yellow.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#945f1f8a}.rtl-container.yellow.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#945f1f}.rtl-container.yellow.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.yellow.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.yellow.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.yellow.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.yellow.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#fafafa}.rtl-container.yellow.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.yellow.day .mat-slider-track-background{background-color:#00000042}.rtl-container.yellow.day .mat-primary .mat-slider-thumb,.rtl-container.yellow.day .mat-primary .mat-slider-thumb-label,.rtl-container.yellow.day .mat-primary .mat-slider-track-fill{background-color:#945f1f}.rtl-container.yellow.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.day .mat-primary .mat-slider-focus-ring{background-color:#945f1f33}.rtl-container.yellow.day .mat-accent .mat-slider-thumb,.rtl-container.yellow.day .mat-accent .mat-slider-thumb-label,.rtl-container.yellow.day .mat-accent .mat-slider-track-fill{background-color:#424242}.rtl-container.yellow.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.yellow.day .mat-warn .mat-slider-thumb,.rtl-container.yellow.day .mat-warn .mat-slider-thumb-label,.rtl-container.yellow.day .mat-warn .mat-slider-track-fill{background-color:#b00020}.rtl-container.yellow.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.yellow.day .cdk-focused .mat-slider-track-background,.rtl-container.yellow.day .mat-slider:hover .mat-slider-track-background{background-color:#00000061}.rtl-container.yellow.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.yellow.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.yellow.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.yellow.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.yellow.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.yellow.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:initial}.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#00000061}.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.yellow.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.yellow.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#000000b3,#000000b3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.yellow.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#000000b3,#000000b3 2px,#0000 0,#0000)}.rtl-container.yellow.day .mat-step-header.cdk-keyboard-focused,.rtl-container.yellow.day .mat-step-header.cdk-program-focused,.rtl-container.yellow.day .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.yellow.day .mat-step-header:hover{background:none}}.rtl-container.yellow.day .mat-step-header .mat-step-label,.rtl-container.yellow.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.yellow.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.yellow.day .mat-step-header .mat-step-icon-selected,.rtl-container.yellow.day .mat-step-header .mat-step-icon-state-done,.rtl-container.yellow.day .mat-step-header .mat-step-icon-state-edit{background-color:#945f1f;color:#fff}.rtl-container.yellow.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.yellow.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.yellow.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.yellow.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.yellow.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.yellow.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.yellow.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.yellow.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.yellow.day .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#b00020}.rtl-container.yellow.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.yellow.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.yellow.day .mat-stepper-horizontal,.rtl-container.yellow.day .mat-stepper-vertical{background-color:#fff}.rtl-container.yellow.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.yellow.day .mat-horizontal-stepper-header:after,.rtl-container.yellow.day .mat-horizontal-stepper-header:before,.rtl-container.yellow.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.yellow.day .mat-sort-header-arrow{color:#757575}.rtl-container.yellow.day .mat-tab-header,.rtl-container.yellow.day .mat-tab-nav-bar{border-bottom:1px solid #0000001f}.rtl-container.yellow.day .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.yellow.day .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #0000001f;border-bottom:none}.rtl-container.yellow.day .mat-tab-label,.rtl-container.yellow.day .mat-tab-link{color:#000000de}.rtl-container.yellow.day .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.yellow.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.yellow.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.yellow.day .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.yellow.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#b48f624d}.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#945f1f}.rtl-container.yellow.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.yellow.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.yellow.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#b48f624d}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#945f1f}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.yellow.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#424242}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.yellow.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#b00020}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.yellow.day .mat-toolbar{background:#f5f5f5;color:#000000de}.rtl-container.yellow.day .mat-toolbar.mat-primary{background:#945f1f;color:#fff}.rtl-container.yellow.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.yellow.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.yellow.day .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.yellow.day .mat-toolbar .mat-form-field-ripple,.rtl-container.yellow.day .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.yellow.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.yellow.day .mat-toolbar .mat-form-field-label,.rtl-container.yellow.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.yellow.day .mat-toolbar .mat-select-arrow,.rtl-container.yellow.day .mat-toolbar .mat-select-value{color:inherit}.rtl-container.yellow.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.yellow.day .mat-tooltip{background:#616161e6}.rtl-container.yellow.day .mat-tree{background:#fff}.rtl-container.yellow.day .mat-nested-tree-node,.rtl-container.yellow.day .mat-tree-node{color:#000000de}.rtl-container.yellow.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.yellow.day .mat-simple-snackbar-action{color:#424242}.rtl-container.yellow.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.yellow.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.yellow.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.yellow.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.yellow.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.yellow.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.yellow.day .rtl-top-toolbar{border-bottom:1px solid #fff}.rtl-container.yellow.day .bg-primary{background-color:#945f1f;color:#fff}.rtl-container.yellow.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#945f1f}.rtl-container.yellow.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.yellow.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.yellow.day .mat-tab-label.mat-tab-label-active{color:#945f1f}.rtl-container.yellow.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#945f1f}.rtl-container.yellow.day .mat-tab-label .tab-badge .mat-badge-content{background:#0000008a}.rtl-container.yellow.day .mat-form-field-suffix,.rtl-container.yellow.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.yellow.day .ng-fa-icon{color:#0000008a}.rtl-container.yellow.day .mat-stroked-button.mat-primary{border-color:#945f1f}.rtl-container.yellow.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.yellow.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.yellow.day .selected-color{border-color:#b48f62}.rtl-container.yellow.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.yellow.day .page-sub-title-container,.rtl-container.yellow.day .page-title-container{color:#0000008a}.rtl-container.yellow.day .page-sub-title-container .page-title-img,.rtl-container.yellow.day .page-title-container .page-title-img{color:#00000061}.rtl-container.yellow.day .page-sub-title-container .mat-input-element,.rtl-container.yellow.day .page-sub-title-container .mat-radio-label-content,.rtl-container.yellow.day .page-sub-title-container .theme-name,.rtl-container.yellow.day .page-title-container .mat-input-element,.rtl-container.yellow.day .page-title-container .mat-radio-label-content,.rtl-container.yellow.day .page-title-container .theme-name{color:#000000de}.rtl-container.yellow.day .cc-data-block .cc-data-title{color:#945f1f}.rtl-container.yellow.day .active-link,.rtl-container.yellow.day .active-link .fa-icon-small{color:#945f1f;font-weight:500;cursor:pointer;fill:#945f1f}.rtl-container.yellow.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.yellow.day .mat-nested-tree-node-parent:hover,.rtl-container.yellow.day .mat-select-panel .mat-option:hover,.rtl-container.yellow.day .mat-tree-node:hover{color:#945f1f;cursor:pointer;background:#0000000a}.rtl-container.yellow.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.yellow.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.yellow.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.yellow.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.yellow.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.yellow.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.yellow.day .mat-tree-node:hover .mat-icon,.rtl-container.yellow.day .mat-tree-node:hover .ng-fa-icon{color:#945f1f}.rtl-container.yellow.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.yellow.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.yellow.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.yellow.day .mat-tree-node:hover .sidenav-img svg{fill:#945f1f}.rtl-container.yellow.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.yellow.day .mat-nested-tree-node .sidenav-img,.rtl-container.yellow.day .mat-tree-node .sidenav-img,.rtl-container.yellow.day .page-title-container .page-title-img,.rtl-container.yellow.day svg.top-icon-small{fill:#000000de}.rtl-container.yellow.day .mat-progress-bar-fill:after{background-color:#65320a}.rtl-container.yellow.day .modal-qr-code-container{background:#0000001f}.rtl-container.yellow.day .mat-tab-label,.rtl-container.yellow.day .mat-tab-link{color:#0000008a}.rtl-container.yellow.day .mat-card,.rtl-container.yellow.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid #0000001f}.rtl-container.yellow.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.yellow.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.yellow.day .dashboard-info-title{color:#945f1f}.rtl-container.yellow.day .dashboard-info-value{color:#0000008a}.rtl-container.yellow.day .color-primary{color:#945f1f!important}.rtl-container.yellow.day .dot-primary{background-color:#945f1f!important}.rtl-container.yellow.day .dot-primary-lighter{background-color:#b48f62!important}.rtl-container.yellow.day .mat-expansion-panel.flat-expansion-panel{border:1px solid #0000001f}.rtl-container.yellow.day .mat-tooltip{font-size:120%}.rtl-container.yellow.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.yellow.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.yellow.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.yellow.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.yellow.day svg .fill-color-1{fill:#fff}.rtl-container.yellow.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.yellow.day svg .fill-color-3,.rtl-container.yellow.day svg .fill-color-4,.rtl-container.yellow.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.yellow.day svg .fill-color-6{fill:#fff}.rtl-container.yellow.day svg .fill-color-7,.rtl-container.yellow.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.yellow.day svg .fill-color-9{fill:#fff}.rtl-container.yellow.day svg .fill-color-10,.rtl-container.yellow.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.yellow.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.yellow.day svg .fill-color-13,.rtl-container.yellow.day svg .fill-color-14,.rtl-container.yellow.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.yellow.day svg .fill-color-16,.rtl-container.yellow.day svg .fill-color-17{fill:#404040}.rtl-container.yellow.day svg .fill-color-18{fill:#000}.rtl-container.yellow.day svg .fill-color-19,.rtl-container.yellow.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.yellow.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.yellow.day svg .fill-color-22,.rtl-container.yellow.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.yellow.day svg .fill-color-24{fill:#000}.rtl-container.yellow.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.yellow.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.yellow.day svg .fill-color-27{fill:#000}.rtl-container.yellow.day svg .fill-color-28{fill:#313131}.rtl-container.yellow.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.yellow.day svg .fill-color-30{fill:#fff}.rtl-container.yellow.day svg .fill-color-31{fill:#945f1f}.rtl-container.yellow.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.yellow.day svg .fill-color-primary{fill:#945f1f}.rtl-container.yellow.day svg .fill-color-primary-lighter{fill:#b48f62}.rtl-container.yellow.day svg .fill-color-primary-darker{fill:#945f1f}.rtl-container.yellow.day .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.yellow.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.yellow.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.yellow.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.yellow.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.yellow.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.yellow.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#945f1f}.rtl-container.yellow.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.yellow.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#65320a}.rtl-container.yellow.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.yellow.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#caaf8f}.rtl-container.yellow.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.yellow.day .mat-progress-bar-buffer{background-color:#dfcfbc}.rtl-container.yellow.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.yellow.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.yellow.day .foreground.mat-progress-spinner circle,.rtl-container.yellow.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.yellow.day .mat-toolbar-row,.rtl-container.yellow.day .mat-toolbar-single-row{height:5rem}.rtl-container.yellow.day .lnd-info{border-bottom:1px solid #0000001f}.rtl-container.yellow.day a{color:#945f1f}.rtl-container.yellow.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.yellow.day .h-active-link{border-bottom:2px solid #fff}.rtl-container.yellow.day .mat-icon-36{color:#0000008a}.rtl-container.yellow.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.yellow.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.yellow.day .genseed-message{width:10%;color:#945f1f}.rtl-container.yellow.day .material-icons.primary{color:#945f1f}.rtl-container.yellow.day .material-icons.accent{color:#424242}.rtl-container.yellow.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.yellow.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.yellow.day .row-disabled{background-color:gray}.rtl-container.yellow.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.yellow.day .mat-menu-panel{min-width:6.4rem}.rtl-container.yellow.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.yellow.day .horizontal-button:hover{background:#b48f62;color:#424242}.rtl-container.yellow.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#945f1f}.rtl-container.yellow.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.yellow.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.yellow.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.yellow.day .mat-cell,.rtl-container.yellow.day .mat-footer-cell,.rtl-container.yellow.day .mat-header-cell{border-bottom:1px solid #0000001f}.rtl-container.yellow.day table.mat-table{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.yellow.day table.mat-table thead tr th{color:#000}.rtl-container.yellow.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.yellow.day .bordered-box{border:1px solid #0000001f;border-radius:4px;background:none}.rtl-container.yellow.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.yellow.day .mat-expansion-panel{border:1px solid #0000001f}.rtl-container.yellow.day .more-button{color:#00000061}.rtl-container.yellow.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.yellow.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.yellow.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.yellow.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.yellow.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.yellow.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.yellow.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.yellow.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.yellow.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.yellow.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.yellow.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.yellow.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.yellow.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.yellow.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.yellow.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.yellow.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.yellow.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.yellow.day .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#caaf8f!important}.rtl-container.yellow.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#8c571b!important}.rtl-container.yellow.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.yellow.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.yellow.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.yellow.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.yellow.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid #0000008a}.rtl-container.yellow.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.yellow.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.yellow.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.yellow.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.yellow.day .color-warn{color:#b00020}.rtl-container.yellow.day .fill-warn{fill:#b00020}.rtl-container.yellow.day .alert{border:1px solid #0000008a;color:#0000008a;background-color:#0000000a}.rtl-container.yellow.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.yellow.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.yellow.day .alert.alert-info a{color:#004085}.rtl-container.yellow.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.yellow.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.yellow.day .alert.alert-warn a{color:#856404}.rtl-container.yellow.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.yellow.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.yellow.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.yellow.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.yellow.day .help-expansion .mat-expansion-panel-header,.rtl-container.yellow.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.yellow.day .help-expansion .mat-expansion-indicator:after,.rtl-container.yellow.day .help-expansion .mat-expansion-panel-content,.rtl-container.yellow.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.yellow.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.yellow.day .failed-status{color:#b00020}.rtl-container.yellow.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.yellow.day .svg-fill-primary{fill:#945f1f}.rtl-container.yellow.day .svg-fill-primary-lighter{fill:#b48f62}.rtl-container.yellow.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.yellow.day ngx-charts-bar-vertical-2d text,.rtl-container.yellow.day ngx-charts-bar-vertical text{fill:#000000de}.rtl-container.yellow.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.yellow.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.yellow.day .mat-paginator-container{padding:0}.rtl-container.yellow.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-option{color:#fff}.rtl-container.yellow.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.night .mat-option:focus:not(.mat-option-disabled),.rtl-container.yellow.night .mat-option:hover:not(.mat-option-disabled){background:#0000000a}.rtl-container.yellow.night .mat-option.mat-active{background:#0000000a;color:#fff}.rtl-container.yellow.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#945f1f}.rtl-container.yellow.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.yellow.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.yellow.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.yellow.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.yellow.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.yellow.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#945f1f}.rtl-container.yellow.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.yellow.night .mat-accent .mat-pseudo-checkbox-indeterminate,.rtl-container.yellow.night .mat-pseudo-checkbox-checked,.rtl-container.yellow.night .mat-pseudo-checkbox-indeterminate{background:#eee}.rtl-container.yellow.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.yellow.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.yellow.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.yellow.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.yellow.night.mat-app-background,.rtl-container.yellow.night .mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.yellow.night .mat-elevation-z0{box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.yellow.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.yellow.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px 0 #00000024,0 1px 14px 0 #0000001f}.rtl-container.yellow.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.yellow.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.yellow.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.yellow.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.yellow.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.yellow.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.yellow.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.yellow.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.yellow.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.yellow.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.yellow.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.yellow.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.yellow.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.yellow.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.yellow.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.yellow.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.yellow.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.yellow.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.yellow.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.yellow.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.yellow.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.yellow.night .mat-badge-content{color:#fff;background:#945f1f}.cdk-high-contrast-active .rtl-container.yellow.night .mat-badge-content{outline:1px solid;border-radius:0}.rtl-container.yellow.night .mat-badge-accent .mat-badge-content{background:#eee;color:#000}.rtl-container.yellow.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.yellow.night .mat-badge{position:relative}.rtl-container.yellow.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.yellow.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.yellow.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.yellow.night .mat-badge-content._mat-animation-noopable,.rtl-container.yellow.night .ng-animate-disabled .mat-badge-content{transition:none}.rtl-container.yellow.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.yellow.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.yellow.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.yellow.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.yellow.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.yellow.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.yellow.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.yellow.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.yellow.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.yellow.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.yellow.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.yellow.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.yellow.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.yellow.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.yellow.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.yellow.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.yellow.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.yellow.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.yellow.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.yellow.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.yellow.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.yellow.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.yellow.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.yellow.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.yellow.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.yellow.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.yellow.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.yellow.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.yellow.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.yellow.night .mat-button,.rtl-container.yellow.night .mat-icon-button,.rtl-container.yellow.night .mat-stroked-button{color:inherit;background:#0000}.rtl-container.yellow.night .mat-button.mat-primary,.rtl-container.yellow.night .mat-icon-button.mat-primary,.rtl-container.yellow.night .mat-stroked-button.mat-primary{color:#945f1f}.rtl-container.yellow.night .mat-button.mat-accent,.rtl-container.yellow.night .mat-icon-button.mat-accent,.rtl-container.yellow.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.yellow.night .mat-button.mat-warn,.rtl-container.yellow.night .mat-icon-button.mat-warn,.rtl-container.yellow.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.yellow.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-stroked-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-stroked-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.yellow.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.yellow.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.yellow.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#945f1f}.rtl-container.yellow.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.yellow.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.yellow.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.yellow.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.yellow.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.yellow.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.yellow.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.yellow.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.yellow.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:initial}.rtl-container.yellow.night .mat-button .mat-ripple-element,.rtl-container.yellow.night .mat-icon-button .mat-ripple-element,.rtl-container.yellow.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.yellow.night .mat-button-focus-overlay{background:#fff}.rtl-container.yellow.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.yellow.night .mat-fab,.rtl-container.yellow.night .mat-flat-button,.rtl-container.yellow.night .mat-mini-fab,.rtl-container.yellow.night .mat-raised-button{color:#fff;background-color:#363636}.rtl-container.yellow.night .mat-fab.mat-primary,.rtl-container.yellow.night .mat-flat-button.mat-primary,.rtl-container.yellow.night .mat-mini-fab.mat-primary,.rtl-container.yellow.night .mat-raised-button.mat-primary{color:#fff}.rtl-container.yellow.night .mat-fab.mat-accent,.rtl-container.yellow.night .mat-flat-button.mat-accent,.rtl-container.yellow.night .mat-mini-fab.mat-accent,.rtl-container.yellow.night .mat-raised-button.mat-accent{color:#000}.rtl-container.yellow.night .mat-fab.mat-warn,.rtl-container.yellow.night .mat-flat-button.mat-warn,.rtl-container.yellow.night .mat-mini-fab.mat-warn,.rtl-container.yellow.night .mat-raised-button.mat-warn{color:#fff}.rtl-container.yellow.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-warn.mat-button-disabled{color:#ffffff42}.rtl-container.yellow.night .mat-fab.mat-primary,.rtl-container.yellow.night .mat-flat-button.mat-primary,.rtl-container.yellow.night .mat-mini-fab.mat-primary,.rtl-container.yellow.night .mat-raised-button.mat-primary{background-color:#945f1f}.rtl-container.yellow.night .mat-fab.mat-accent,.rtl-container.yellow.night .mat-flat-button.mat-accent,.rtl-container.yellow.night .mat-mini-fab.mat-accent,.rtl-container.yellow.night .mat-raised-button.mat-accent{background-color:#eee}.rtl-container.yellow.night .mat-fab.mat-warn,.rtl-container.yellow.night .mat-flat-button.mat-warn,.rtl-container.yellow.night .mat-mini-fab.mat-warn,.rtl-container.yellow.night .mat-raised-button.mat-warn{background-color:#ff343b}.rtl-container.yellow.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-warn.mat-button-disabled{background-color:#404040}.rtl-container.yellow.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.yellow.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.yellow.night .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.yellow.night .mat-raised-button.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.yellow.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.yellow.night .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.yellow.night .mat-raised-button.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.yellow.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.yellow.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.yellow.night .mat-mini-fab.mat-warn .mat-ripple-element,.rtl-container.yellow.night .mat-raised-button.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-flat-button:not([class*=mat-elevation-z]),.rtl-container.yellow.night .mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.yellow.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.yellow.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.yellow.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.yellow.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.yellow.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.yellow.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.night .mat-button-toggle-group,.rtl-container.yellow.night .mat-button-toggle-standalone{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.night .mat-button-toggle-group-appearance-standard,.rtl-container.yellow.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.rtl-container.yellow.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.yellow.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid #ffffff4d}.rtl-container.yellow.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.yellow.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid #ffffff4d}.rtl-container.yellow.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.yellow.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.yellow.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.yellow.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.yellow.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.yellow.night .mat-button-toggle-group-appearance-standard,.rtl-container.yellow.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid #ffffff4d}.rtl-container.yellow.night .mat-card{background:#202020;color:#fff}.rtl-container.yellow.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f}.rtl-container.yellow.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 #0003,0 0 0 0 #00000024,0 0 0 0 #0000001f}.rtl-container.yellow.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.yellow.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.yellow.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.yellow.night .mat-checkbox-checked.mat-primary .mat-checkbox-background,.rtl-container.yellow.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#945f1f}.rtl-container.yellow.night .mat-checkbox-checked.mat-accent .mat-checkbox-background,.rtl-container.yellow.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.yellow.night .mat-checkbox-checked.mat-warn .mat-checkbox-background,.rtl-container.yellow.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.yellow.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.yellow.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.yellow.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.yellow.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.yellow.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.yellow.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#945f1f}.rtl-container.yellow.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.yellow.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eee}.rtl-container.yellow.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.yellow.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.yellow.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.yellow.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px 0 #00000024,0 1px 8px 0 #0000001f}.rtl-container.yellow.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip:after{background:#fff}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#945f1f;color:#fff}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.yellow.night .mat-table{background:#202020}.rtl-container.yellow.night .mat-table-sticky,.rtl-container.yellow.night .mat-table tbody,.rtl-container.yellow.night .mat-table tfoot,.rtl-container.yellow.night .mat-table thead,.rtl-container.yellow.night [mat-footer-row],.rtl-container.yellow.night [mat-header-row],.rtl-container.yellow.night [mat-row],.rtl-container.yellow.night mat-footer-row,.rtl-container.yellow.night mat-header-row,.rtl-container.yellow.night mat-row{background:inherit}.rtl-container.yellow.night mat-footer-row,.rtl-container.yellow.night mat-header-row,.rtl-container.yellow.night mat-row,.rtl-container.yellow.night td.mat-cell,.rtl-container.yellow.night td.mat-footer-cell,.rtl-container.yellow.night th.mat-header-cell{border-bottom-color:#ffffff4d}.rtl-container.yellow.night .mat-cell,.rtl-container.yellow.night .mat-footer-cell{color:#fff}.rtl-container.yellow.night .mat-calendar-arrow{border-top-color:#fff}.rtl-container.yellow.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.yellow.night .mat-datepicker-content .mat-calendar-previous-button,.rtl-container.yellow.night .mat-datepicker-toggle{color:#fff}.rtl-container.yellow.night .mat-calendar-table-header-divider:after{background:#ffffff4d}.rtl-container.yellow.night .mat-calendar-body-cell-content,.rtl-container.yellow.night .mat-date-range-input-separator{color:#fff;border-color:#0000}.rtl-container.yellow.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.yellow.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.yellow.night .mat-calendar-body-in-range:before{background:#945f1f33}.rtl-container.yellow.night .mat-calendar-body-comparison-identical,.rtl-container.yellow.night .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.yellow.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#945f1f33 50%,#f9ab0033 0)}.rtl-container.yellow.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#945f1f33 50%,#f9ab0033 0)}.rtl-container.yellow.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.yellow.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.yellow.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.night .mat-calendar-body-selected{background-color:#945f1f;color:#fff}.rtl-container.yellow.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#945f1f66}.rtl-container.yellow.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#945f1f4d}.rtl-container.yellow.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f;background-color:#202020;color:#fff}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:#eee3}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#eee3 50%,#f9ab0033 0)}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#eee3 50%,#f9ab0033 0)}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:#ff343b33}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:#f9ab0033}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#ff343b33 50%,#f9ab0033 0)}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}.rtl-container.yellow.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.yellow.night .mat-datepicker-toggle-active{color:#945f1f}.rtl-container.yellow.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.yellow.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.yellow.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.yellow.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.yellow.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.yellow.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.yellow.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.rtl-container.yellow.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.yellow.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.yellow.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.yellow.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:#0000000a}@media (hover:none){.rtl-container.yellow.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.yellow.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.yellow.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.yellow.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.rtl-container.yellow.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-label{color:#945f1f}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.yellow.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.yellow.night .mat-form-field-ripple{background-color:#fff}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#945f1f}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.yellow.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#945f1f}.rtl-container.yellow.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.yellow.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.yellow.night .mat-error{color:#ff343b}.rtl-container.yellow.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.yellow.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.yellow.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.yellow.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,#ffffffb3 0,#ffffffb3 33%,#0000 0);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.yellow.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.yellow.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.yellow.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.yellow.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:initial}.rtl-container.yellow.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.yellow.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#945f1f}.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.yellow.night .mat-icon.mat-primary{color:#945f1f}.rtl-container.yellow.night .mat-icon.mat-accent{color:#eee}.rtl-container.yellow.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.yellow.night .mat-input-element{caret-color:#945f1f}.rtl-container.yellow.night .mat-input-element option{color:#000000de}.rtl-container.yellow.night .mat-input-element option:disabled{color:#00000061}.rtl-container.yellow.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.yellow.night .mat-form-field-invalid .mat-input-element,.rtl-container.yellow.night .mat-form-field.mat-warn .mat-input-element{caret-color:#ff343b}.rtl-container.yellow.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.yellow.night .mat-list-base .mat-list-item,.rtl-container.yellow.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.yellow.night .mat-list-item-disabled{background-color:#444}.rtl-container.yellow.night .mat-action-list .mat-list-item:focus,.rtl-container.yellow.night .mat-action-list .mat-list-item:hover,.rtl-container.yellow.night .mat-list-option:focus,.rtl-container.yellow.night .mat-list-option:hover,.rtl-container.yellow.night .mat-nav-list .mat-list-item:focus,.rtl-container.yellow.night .mat-nav-list .mat-list-item:hover{background:#0000000a}.rtl-container.yellow.night .mat-list-single-selected-option,.rtl-container.yellow.night .mat-list-single-selected-option:focus,.rtl-container.yellow.night .mat-list-single-selected-option:hover{background:#0000001f}.rtl-container.yellow.night .mat-menu-panel{background:#202020}.rtl-container.yellow.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.night .mat-menu-item{background:#0000;color:#fff}.rtl-container.yellow.night .mat-menu-item-submenu-trigger:after,.rtl-container.yellow.night .mat-menu-item .mat-icon-no-color{color:#fff}.rtl-container.yellow.night .mat-menu-item-highlighted:not([disabled]),.rtl-container.yellow.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.yellow.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.yellow.night .mat-menu-item:hover:not([disabled]){background:#0000000a}.rtl-container.yellow.night .mat-paginator{background:#202020}.rtl-container.yellow.night .mat-paginator-decrement,.rtl-container.yellow.night .mat-paginator-increment{border-top:2px solid #fff;border-right:2px solid #fff}.rtl-container.yellow.night .mat-paginator-first,.rtl-container.yellow.night .mat-paginator-last{border-top:2px solid #fff}.rtl-container.yellow.night .mat-progress-bar-background{fill:#2f2212}.rtl-container.yellow.night .mat-progress-bar-buffer{background-color:#2f2212}.rtl-container.yellow.night .mat-progress-bar-fill:after{background-color:#945f1f}.rtl-container.yellow.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.yellow.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.yellow.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.yellow.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.yellow.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.yellow.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.yellow.night .mat-progress-spinner circle,.rtl-container.yellow.night .mat-spinner circle{stroke:#945f1f}.rtl-container.yellow.night .mat-progress-spinner.mat-accent circle,.rtl-container.yellow.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.yellow.night .mat-progress-spinner.mat-warn circle,.rtl-container.yellow.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.yellow.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#945f1f}.rtl-container.yellow.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.yellow.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#945f1f}.rtl-container.yellow.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.yellow.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.yellow.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.yellow.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.yellow.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.yellow.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.yellow.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.yellow.night .mat-select-value{color:#fff}.rtl-container.yellow.night .mat-select-panel{background:#202020}.rtl-container.yellow.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:#0000001f}.rtl-container.yellow.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#945f1f}.rtl-container.yellow.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.yellow.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.yellow.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.yellow.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.yellow.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.yellow.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.yellow.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.yellow.night .mat-drawer-side{border-right:1px solid #ffffff4d}.rtl-container.yellow.night .mat-drawer-side.mat-drawer-end,.rtl-container.yellow.night [dir=rtl] .mat-drawer-side{border-left:1px solid #ffffff4d;border-right:none}.rtl-container.yellow.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid #ffffff4d}.rtl-container.yellow.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.yellow.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.yellow.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.yellow.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.yellow.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#945f1f}.rtl-container.yellow.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#945f1f8a}.rtl-container.yellow.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#945f1f}.rtl-container.yellow.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.yellow.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.yellow.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.yellow.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.yellow.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px 0 #00000024,0 1px 3px 0 #0000001f;background-color:#bdbdbd}.rtl-container.yellow.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.yellow.night .mat-primary .mat-slider-thumb,.rtl-container.yellow.night .mat-primary .mat-slider-thumb-label,.rtl-container.yellow.night .mat-primary .mat-slider-track-fill{background-color:#945f1f}.rtl-container.yellow.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.night .mat-primary .mat-slider-focus-ring{background-color:#945f1f33}.rtl-container.yellow.night .mat-accent .mat-slider-thumb,.rtl-container.yellow.night .mat-accent .mat-slider-thumb-label,.rtl-container.yellow.night .mat-accent .mat-slider-track-fill{background-color:#eee}.rtl-container.yellow.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.yellow.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.yellow.night .mat-warn .mat-slider-thumb,.rtl-container.yellow.night .mat-warn .mat-slider-thumb-label,.rtl-container.yellow.night .mat-warn .mat-slider-track-fill{background-color:#ff343b}.rtl-container.yellow.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.yellow.night .cdk-focused .mat-slider-track-background,.rtl-container.yellow.night .mat-slider:hover .mat-slider-track-background{background-color:#fff9}.rtl-container.yellow.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.yellow.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.yellow.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.yellow.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.yellow.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.yellow.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:initial}.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:#fff9}.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.yellow.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.yellow.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000);background-image:-moz-repeating-linear-gradient(.0001deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.yellow.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,#ffffffb3,#ffffffb3 2px,#0000 0,#0000)}.rtl-container.yellow.night .mat-step-header.cdk-keyboard-focused,.rtl-container.yellow.night .mat-step-header.cdk-program-focused,.rtl-container.yellow.night .mat-step-header:hover{background-color:#0000000a}@media (hover:none){.rtl-container.yellow.night .mat-step-header:hover{background:none}}.rtl-container.yellow.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.yellow.night .mat-step-header .mat-step-icon-selected,.rtl-container.yellow.night .mat-step-header .mat-step-icon-state-done,.rtl-container.yellow.night .mat-step-header .mat-step-icon-state-edit{background-color:#945f1f;color:#fff}.rtl-container.yellow.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.yellow.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.yellow.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.yellow.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.yellow.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.yellow.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.yellow.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.yellow.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.yellow.night .mat-step-header .mat-step-icon-state-error{background-color:initial;color:#ff343b}.rtl-container.yellow.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.yellow.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.yellow.night .mat-stepper-horizontal,.rtl-container.yellow.night .mat-stepper-vertical{background-color:#202020}.rtl-container.yellow.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.yellow.night .mat-horizontal-stepper-header:after,.rtl-container.yellow.night .mat-horizontal-stepper-header:before,.rtl-container.yellow.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.yellow.night .mat-tab-header,.rtl-container.yellow.night .mat-tab-nav-bar{border-bottom:1px solid #ffffff4d}.rtl-container.yellow.night .mat-tab-group-inverted-header .mat-tab-header,.rtl-container.yellow.night .mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid #ffffff4d;border-bottom:none}.rtl-container.yellow.night .mat-tab-label,.rtl-container.yellow.night .mat-tab-link{color:#fff}.rtl-container.yellow.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.yellow.night .mat-tab-group[class*=mat-background-] .mat-tab-header,.rtl-container.yellow.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#b48f624d}.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#945f1f}.rtl-container.yellow.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.yellow.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.yellow.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#b48f624d}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container{background-color:#945f1f}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.yellow.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container{background-color:#eee}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before{border-color:#000}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#0006}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element{background-color:#0000001f}.rtl-container.yellow.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container{background-color:#ff343b}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff6}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element{background-color:#ffffff1f}.rtl-container.yellow.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.yellow.night .mat-toolbar.mat-primary{background:#945f1f;color:#fff}.rtl-container.yellow.night .mat-toolbar.mat-accent{background:#eee;color:#000}.rtl-container.yellow.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.yellow.night .mat-toolbar .mat-focused .mat-form-field-ripple,.rtl-container.yellow.night .mat-toolbar .mat-form-field-ripple,.rtl-container.yellow.night .mat-toolbar .mat-form-field-underline{background-color:currentColor}.rtl-container.yellow.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.yellow.night .mat-toolbar .mat-form-field-label,.rtl-container.yellow.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.rtl-container.yellow.night .mat-toolbar .mat-select-arrow,.rtl-container.yellow.night .mat-toolbar .mat-select-value{color:inherit}.rtl-container.yellow.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.yellow.night .mat-tree{background:#202020}.rtl-container.yellow.night .mat-nested-tree-node,.rtl-container.yellow.night .mat-tree-node{color:#fff}.rtl-container.yellow.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px 0 #00000024,0 1px 18px 0 #0000001f}.rtl-container.yellow.night .mat-simple-snackbar-action{color:inherit}.rtl-container.yellow.night .mat-primary{color:#ffa164}.rtl-container.yellow.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.yellow.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.yellow.night .bg-primary{background-color:#945f1f;color:#fff}.rtl-container.yellow.night .mat-tab-label.mat-tab-label-active{color:#ffa164}.rtl-container.yellow.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#ffa164}.rtl-container.yellow.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.yellow.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.yellow.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.yellow.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#ffa164}.rtl-container.yellow.night .cc-data-block .cc-data-title{color:#ffa164}.rtl-container.yellow.night .mat-stroked-button.mat-primary{border-color:#ffa164;color:#ffa164}.rtl-container.yellow.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.yellow.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.yellow.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.yellow.night .active-link,.rtl-container.yellow.night .active-link .fa-icon-small,.rtl-container.yellow.night .mat-select-panel .mat-option.mat-active,.rtl-container.yellow.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#ffa164;font-weight:500;cursor:pointer;fill:#ffa164}.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.yellow.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#ffa164}.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled),.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.yellow.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.yellow.night .mat-nested-tree-node-parent:hover,.rtl-container.yellow.night .mat-select-panel .mat-option:hover,.rtl-container.yellow.night .mat-tree-node:hover{color:#ffa164;cursor:pointer;background:#ffffff0f}.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.yellow.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.yellow.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.yellow.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.yellow.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.yellow.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.yellow.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.yellow.night .mat-tree-node:hover .mat-icon,.rtl-container.yellow.night .mat-tree-node:hover .ng-fa-icon{color:#ffa164}.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.yellow.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.yellow.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.yellow.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.yellow.night .mat-tree-node:hover .sidenav-img svg{fill:#ffa164}.rtl-container.yellow.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.yellow.night .mat-nested-tree-node .sidenav-img,.rtl-container.yellow.night .mat-tree-node .sidenav-img,.rtl-container.yellow.night .page-title-container .page-title-img,.rtl-container.yellow.night svg.top-icon-small{fill:#fff}.rtl-container.yellow.night .selected-color{border-color:#b48f62}.rtl-container.yellow.night .mat-progress-bar-fill:after{background-color:#8c571b}.rtl-container.yellow.night .chart-legend .legend-label .active .legend-label-text,.rtl-container.yellow.night .chart-legend .legend-label:hover{color:#fff!important}.rtl-container.yellow.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:#0009}.rtl-container.yellow.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#ffa164}.rtl-container.yellow.night .mat-select-panel{background-color:#262626}.rtl-container.yellow.night .mat-tree{background:#262626}.rtl-container.yellow.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.yellow.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.yellow.night .dashboard-info-title{color:#ffa164}.rtl-container.yellow.night .dashboard-capacity-header,.rtl-container.yellow.night .dashboard-info-value{color:#fff}.rtl-container.yellow.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.yellow.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.yellow.night .color-primary{color:#ffa164!important}.rtl-container.yellow.night .dot-primary{background-color:#ffa164!important}.rtl-container.yellow.night .dot-primary-lighter{background-color:#945f1f!important}.rtl-container.yellow.night .mat-stepper-vertical{background-color:#262626}.rtl-container.yellow.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.yellow.night svg .boltz-icon-fill{fill:#fff}.rtl-container.yellow.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .fill-color-0,.rtl-container.yellow.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.yellow.night svg .fill-color-1{fill:#232323}.rtl-container.yellow.night svg .fill-color-2{fill:#222}.rtl-container.yellow.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.yellow.night svg .fill-color-4{fill:#383838}.rtl-container.yellow.night svg .fill-color-5{fill:#555}.rtl-container.yellow.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.yellow.night svg .fill-color-7{fill:#202020}.rtl-container.yellow.night svg .fill-color-8{fill:#242424}.rtl-container.yellow.night svg .fill-color-9{fill:#262626}.rtl-container.yellow.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.yellow.night svg .fill-color-11{fill:#171717}.rtl-container.yellow.night svg .fill-color-12{fill:#ccc}.rtl-container.yellow.night svg .fill-color-13{fill:#adadad}.rtl-container.yellow.night svg .fill-color-14{fill:#ababab}.rtl-container.yellow.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.yellow.night svg .fill-color-16{fill:#707070}.rtl-container.yellow.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.yellow.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.yellow.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.yellow.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.yellow.night svg .fill-color-21{fill:#cacaca}.rtl-container.yellow.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.yellow.night svg .fill-color-23{fill:#777}.rtl-container.yellow.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.yellow.night svg .fill-color-25{fill:#252525}.rtl-container.yellow.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.yellow.night svg .fill-color-27{fill:#000}.rtl-container.yellow.night svg .fill-color-28{fill:#313131}.rtl-container.yellow.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.yellow.night svg .fill-color-30{fill:#fff}.rtl-container.yellow.night svg .fill-color-31{fill:#945f1f}.rtl-container.yellow.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.yellow.night svg .fill-color-primary{fill:#945f1f}.rtl-container.yellow.night svg .fill-color-primary-lighter{fill:#b48f62}.rtl-container.yellow.night svg .fill-color-primary-darker{fill:#ffa164}.rtl-container.yellow.night .mat-select-arrow,.rtl-container.yellow.night .mat-select-value{color:#fff}.rtl-container.yellow.night .mat-form-field-disabled .mat-form-field-underline{background-color:initial;background-image:linear-gradient(90deg,#0000006b,#0000006b 33%,#0000 0);background-size:5px 100%;height:1.4px}.rtl-container.yellow.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.yellow.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.yellow.night .mat-slide-toggle-bar,.rtl-container.yellow.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.yellow.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.yellow.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.yellow.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.yellow.night .mat-button.mat-primary,.rtl-container.yellow.night .mat-icon-button.mat-primary,.rtl-container.yellow.night .mat-stroked-button.mat-primary{color:#ffa164}.rtl-container.yellow.night tr.alert.alert-warn .mat-cell,.rtl-container.yellow.night tr.alert.alert-warn .mat-footer-cell,.rtl-container.yellow.night tr.alert.alert-warn .mat-header-cell{color:#856404}.rtl-container.yellow.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.yellow.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path{fill:#ffa164}.rtl-container.yellow.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path,.rtl-container.yellow.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(odd) path{fill:#774312}.rtl-container.yellow.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.yellow.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#ffa164}.rtl-container.yellow.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:4px;background:none}.rtl-container.yellow.night .mat-progress-bar-buffer{background-color:#dfcfbc}.rtl-container.yellow.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.yellow.night .foreground-secondary-text{color: !important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.yellow.night .foreground.mat-progress-spinner circle,.rtl-container.yellow.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.yellow.night .mat-toolbar-row,.rtl-container.yellow.night .mat-toolbar-single-row{height:5rem}.rtl-container.yellow.night .lnd-info{border-bottom:1px solid #ffffff4d}.rtl-container.yellow.night a{color:#945f1f}.rtl-container.yellow.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.yellow.night .h-active-link{border-bottom:2px solid #fff}.rtl-container.yellow.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.rtl-container.yellow.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:none;font-weight:900}.rtl-container.yellow.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.yellow.night .genseed-message{width:10%;color:#945f1f}.rtl-container.yellow.night .material-icons.primary{color:#945f1f}.rtl-container.yellow.night .material-icons.accent{color:#eee}.rtl-container.yellow.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.yellow.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.yellow.night .row-disabled{background-color:gray}.rtl-container.yellow.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.yellow.night .mat-menu-panel{min-width:6.4rem}.rtl-container.yellow.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.yellow.night .horizontal-button:hover{background:#b48f62;color:#eee}.rtl-container.yellow.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#945f1f}.rtl-container.yellow.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px 0 #00000024,0 1px 10px 0 #0000001f}.rtl-container.yellow.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.yellow.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.yellow.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.yellow.night .mat-cell,.rtl-container.yellow.night .mat-footer-cell,.rtl-container.yellow.night .mat-header-cell{border-bottom:1px solid #ffffff4d}.rtl-container.yellow.night table.mat-table{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.yellow.night table.mat-table thead tr th{color:#fff}.rtl-container.yellow.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px 0 #ff000024,0 1px 5px 0 #ff00001f!important}.rtl-container.yellow.night .bordered-box{border:1px solid #ffffff4d;border-radius:4px;background:none}.rtl-container.yellow.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.yellow.night .mat-expansion-panel{border:1px solid #ffffff4d}.rtl-container.yellow.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.yellow.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.yellow.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.yellow.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.yellow.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.yellow.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.yellow.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.yellow.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.yellow.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.yellow.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width:37.5em){.rtl-container.yellow.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.yellow.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.yellow.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.yellow.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.yellow.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.yellow.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.yellow.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.yellow.night .balances-info-pie-chart .legend-label:first-child .legend-label-color{background-color:#caaf8f!important}.rtl-container.yellow.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#8c571b!important}.rtl-container.yellow.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.yellow.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.yellow.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.yellow.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.yellow.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.yellow.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.yellow.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.yellow.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.yellow.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.yellow.night .color-warn{color:#ff343b}.rtl-container.yellow.night .fill-warn{fill:#ff343b}.rtl-container.yellow.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.yellow.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.yellow.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.yellow.night .alert.alert-info a{color:#004085}.rtl-container.yellow.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.yellow.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.yellow.night .alert.alert-warn a{color:#856404}.rtl-container.yellow.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828}.rtl-container.yellow.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.yellow.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.yellow.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.yellow.night .help-expansion .mat-expansion-panel-header,.rtl-container.yellow.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.yellow.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.yellow.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.yellow.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.yellow.night .failed-status{color:#ff343b}.rtl-container.yellow.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.yellow.night .svg-fill-primary{fill:#945f1f}.rtl-container.yellow.night .svg-fill-primary-lighter{fill:#b48f62}.rtl-container.yellow.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.yellow.night ngx-charts-bar-vertical-2d text,.rtl-container.yellow.night ngx-charts-bar-vertical text{fill:#fff}.rtl-container.yellow.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect,.rtl-container.yellow.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.yellow.night .mat-paginator-container{padding:0} \ No newline at end of file diff --git a/backend/controllers/c-lightning/balance.js b/backend/controllers/c-lightning/balance.js new file mode 100644 index 00000000..cc533065 --- /dev/null +++ b/backend/controllers/c-lightning/balance.js @@ -0,0 +1,31 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getBalance = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Getting Balance..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/getBalance'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Balance', msg: 'Balance Received', data: body }); + if (!body.totalBalance) { + body.totalBalance = 0; + } + if (!body.confBalance) { + body.confBalance = 0; + } + if (!body.unconfBalance) { + body.unconfBalance = 0; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Balance Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Balance', 'Get Balance Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/channels.js b/backend/controllers/c-lightning/channels.js new file mode 100644 index 00000000..30dddc46 --- /dev/null +++ b/backend/controllers/c-lightning/channels.js @@ -0,0 +1,129 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const listChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Channels..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/listChannels'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'List Channels', data: body }); + body.map((channel) => { + if (!channel.alias || channel.alias === '') { + channel.alias = channel.id.substring(0, 20); + } + const local = (channel.msatoshi_to_us) ? channel.msatoshi_to_us : 0; + const remote = (channel.msatoshi_to_them) ? channel.msatoshi_to_them : 0; + const total = channel.msatoshi_total ? channel.msatoshi_total : 0; + channel.balancedness = (total === 0) ? 1 : (1 - Math.abs((local - remote) / total)).toFixed(3); + return channel; + }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channels Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const openChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/openChannel'; + options.body = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Options', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Opened' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Open Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const setChannelFee = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Setting Channel Fee..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/setChannelFee'; + options.body = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Fee Set' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Update Channel Policy Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const closeChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..' }); + req.setTimeout(60000 * 10); // timeout 10 mins + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + const unilateralTimeoutQuery = req.query.force ? '?unilateralTimeout=1' : ''; + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/closeChannel/' + req.params.channelId + unilateralTimeoutQuery; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel', data: options.url }); + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Closed' }); + res.status(204).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Close Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getLocalRemoteBalance = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Local & Remote Balances..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/localremotebal'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Local Remote Balance', data: body }); + if (!body.localBalance) { + body.localBalance = 0; + } + if (!body.remoteBalance) { + body.remoteBalance = 0; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Local & Remote Balances Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Local Remote Balance Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const listForwards = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Channel List Forwards..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/listForwards?status=' + req.query.status; + request.get(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Response For Status ' + req.query.status, data: body }); + if (body && body.length > 0) { + body = common.sortDescByKey(body, 'received_time'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Received For Status' + req.query.status, data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel List Forwards Received For Status ' + req.query.status }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Forwarding History Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/fees.js b/backend/controllers/c-lightning/fees.js new file mode 100644 index 00000000..518370bd --- /dev/null +++ b/backend/controllers/c-lightning/fees.js @@ -0,0 +1,25 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getFees = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/getFees'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received', data: body }); + if (!body.feeCollected) { + body.feeCollected = 0; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Fees Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Fees', 'Get Fees Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/getInfo.js b/backend/controllers/c-lightning/getInfo.js new file mode 100644 index 00000000..59af375d --- /dev/null +++ b/backend/controllers/c-lightning/getInfo.js @@ -0,0 +1,81 @@ +import request from 'request-promise'; +import { Database } from '../../utils/database.js'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { CLWSClient } from './webSocketClient.js'; +let options = null; +const logger = Logger; +const common = Common; +const clWsClient = CLWSClient; +const databaseService = Database; +export const getInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Getting CLightning Node Information..' }); + common.logEnvVariables(req); + common.setOptions(req); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/getinfo'; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Selected Node', data: req.session.selectedNode.ln_node }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from C-Lightning server url', data: options.url }); + if (!options.headers || !options.headers.macaroon) { + const errMsg = 'C-Lightning get info failed due to bad or missing macaroon!'; + const err = common.handleError({ statusCode: 502, message: 'Bad Macaroon', error: errMsg }, 'GetInfo', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + else { + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Node Information', data: body }); + const body_str = (!body) ? '' : JSON.stringify(body); + const search_idx = (!body) ? -1 : body_str.search('Not Found'); + if (!body || search_idx > -1 || body.error) { + if (body && !body.error) { + body.error = 'Error From Server!'; + } + const err = common.handleError(body, 'GetInfo', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + else { + body.lnImplementation = 'C-Lightning'; + const chainObj = { chain: '', network: '' }; + if (body.network === 'testnet') { + chainObj.chain = 'Bitcoin'; + chainObj.network = 'Testnet'; + } + else if (body.network === 'bitcoin') { + chainObj.chain = 'Bitcoin'; + chainObj.network = 'Mainnet'; + } + else if (body.network === 'signet') { + chainObj.chain = 'Bitcoin'; + chainObj.network = 'Signet'; + } + else if (body.network === 'litecoin') { + chainObj.chain = 'Litecoin'; + chainObj.network = 'Mainnet'; + } + else if (body.network === 'litecoin-testnet') { + chainObj.chain = 'Litecoin'; + chainObj.network = 'Testnet'; + } + body.chains = [chainObj]; + body.uris = []; + if (body.address && body.address.length > 0) { + body.address.forEach((addr) => { + body.uris.push(body.id + '@' + addr.address + ':' + addr.port); + }); + } + req.session.selectedNode.api_version = body.api_version || ''; + req.session.selectedNode.ln_version = body.version || ''; + clWsClient.updateSelectedNode(req.session.selectedNode); + databaseService.loadDatabase(req.session.selectedNode); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'CLightning Node Information Received' }); + res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'GetInfo', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; diff --git a/backend/controllers/c-lightning/invoices.js b/backend/controllers/c-lightning/invoices.js new file mode 100644 index 00000000..00a54f5b --- /dev/null +++ b/backend/controllers/c-lightning/invoices.js @@ -0,0 +1,62 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const deleteExpiredInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Deleting Expired Invoices..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + const queryStr = req.query.maxExpiry ? '?maxexpiry=' + req.query.maxExpiry : ''; + options.url = req.session.selectedNode.ln_server_url + '/v1/invoice/delExpiredInvoice' + queryStr; + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices Deleted', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Expired Invoices Deleted' }); + res.status(204).json({ status: 'Invoice Deleted Successfully' }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoice', 'Delete Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const listInvoices = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Getting Invoices..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + const labelQuery = req.query.label ? '?label=' + req.query.label : ''; + options.url = req.session.selectedNode.ln_server_url + '/v1/invoice/listInvoices' + labelQuery; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List URL', data: options.url }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + if (body.invoices && body.invoices.length > 0) { + body.invoices = common.sortDescByKey(body.invoices, 'expires_at'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Invoices Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoice', 'List Invoices Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const addInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/invoice/genInvoice'; + options.body = req.body; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoice', 'Add Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/message.js b/backend/controllers/c-lightning/message.js new file mode 100644 index 00000000..90522fdf --- /dev/null +++ b/backend/controllers/c-lightning/message.js @@ -0,0 +1,39 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const signMessage = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Signing Message..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/utility/signMessage'; + options.form = { message: req.body.message }; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Signed' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Message', 'Sign Message Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const verifyMessage = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Verifying Message..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/utility/checkMessage/' + req.body.message + '/' + req.body.signature; + request.get(options, (error, response, body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Verified' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Message', 'Verify Message Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/network.js b/backend/controllers/c-lightning/network.js new file mode 100644 index 00000000..ef4140ea --- /dev/null +++ b/backend/controllers/c-lightning/network.js @@ -0,0 +1,69 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getRoute = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Getting Network Routes..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/network/getRoute/' + req.params.destPubkey + '/' + req.params.amount; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Query Routes Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Network Routes Received' }); + res.status(200).json({ routes: body }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Query Routes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const listNode = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Node Lookup..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/network/listNode/' + req.params.id; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Node Lookup Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const listChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Channel Lookup..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/network/listChannel/' + req.params.channelShortId; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Channel Lookup', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Channel Lookup Finished' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Channel Lookup Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const feeRates = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Getting Network Fee Rates..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/network/feeRates/' + req.params.feeRateStyle; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Network Fee Rates Received for ' + req.params.feeRateStyle, data: body }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Fee Rates Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/offers.js b/backend/controllers/c-lightning/offers.js new file mode 100644 index 00000000..0910518c --- /dev/null +++ b/backend/controllers/c-lightning/offers.js @@ -0,0 +1,108 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { Database } from '../../utils/database.js'; +import { CollectionFieldsEnum, CollectionsEnum } from '../../models/database.model.js'; +let options = null; +const logger = Logger; +const common = Common; +const databaseService = Database; +export const listOfferBookmarks = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Getting Offer Bookmarks..' }); + databaseService.find(req.session.selectedNode, CollectionsEnum.OFFERS).then((offers) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Bookmarks Received', data: offers }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Bookmarks Received' }); + if (offers && offers.length > 0) { + offers = common.sortDescByKey(offers, 'lastUpdatedAt'); + } + res.status(200).json(offers); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'Offer Bookmarks Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const deleteOfferBookmark = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Deleting Offer Bookmark..' }); + databaseService.destroy(req.session.selectedNode, CollectionsEnum.OFFERS, CollectionFieldsEnum.BOLT12, req.params.offerStr).then((deleteRes) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Bookmark Deleted', data: deleteRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Bookmark Deleted' }); + res.status(204).json(req.params.offerStr); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'Offer Bookmark Delete Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const listOffers = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Getting Offers..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/offers/listoffers'; + if (req.query.offer_id) { + options.url = options.url + '?offer_id=' + req.query.offer_id; + } + if (req.query.active_only) { + options.url = options.url + '?active_only=' + req.query.active_only; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offers List URL', data: options.url }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offers List Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offers Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'List Offers Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const createOffer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Creating Offer..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/offers/offer'; + options.body = req.body; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offer', msg: 'Add Offer Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Created' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offer', 'Create Offer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const fetchOfferInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Getting Offer Invoice..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/offers/fetchInvoice'; + options.body = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Invoice Body', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Invoice Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Invoice Received' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'Get Offer Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const disableOffer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Disabling Offer..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/offers/disableOffer/' + req.params.offerID; + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Disabled', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Disabled' }); + res.status(202).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'Disable Offer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/onchain.js b/backend/controllers/c-lightning/onchain.js new file mode 100644 index 00000000..04c529db --- /dev/null +++ b/backend/controllers/c-lightning/onchain.js @@ -0,0 +1,57 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getNewAddress = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/newaddr?addrType=' + req.query.type; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'New Address Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const onChainWithdraw = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Withdrawing from On Chain..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/withdraw'; + options.body = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Options', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Withdraw Finished' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Withdraw Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getUTXOs = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'List Funds..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/listFunds'; + request(options).then((body) => { + if (body.outputs) { + body.outputs = common.sortDescByStrKey(body.outputs, 'status'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'List Funds Received', data: body }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'List Funds Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/payments.js b/backend/controllers/c-lightning/payments.js new file mode 100644 index 00000000..4deec51a --- /dev/null +++ b/backend/controllers/c-lightning/payments.js @@ -0,0 +1,156 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { Database } from '../../utils/database.js'; +import { CollectionFieldsEnum, CollectionsEnum } from '../../models/database.model.js'; +let options = null; +const logger = Logger; +const common = Common; +const databaseService = Database; +function paymentReducer(accumulator, currentPayment) { + const currPayHash = currentPayment.payment_hash; + if (!currentPayment.partid) { + currentPayment.partid = 0; + } + if (!accumulator[currPayHash]) { + accumulator[currPayHash] = [currentPayment]; + } + else { + accumulator[currPayHash].push(currentPayment); + } + return accumulator; +} +function summaryReducer(accumulator, mpp) { + if (mpp.status === 'complete') { + accumulator.msatoshi = accumulator.msatoshi + mpp.msatoshi; + accumulator.msatoshi_sent = accumulator.msatoshi_sent + mpp.msatoshi_sent; + accumulator.status = mpp.status; + } + if (mpp.bolt11) { + accumulator.bolt11 = mpp.bolt11; + } + if (mpp.bolt12) { + accumulator.bolt12 = mpp.bolt12; + } + return accumulator; +} +function groupBy(payments) { + const paymentsInGroups = payments.reduce(paymentReducer, {}); + const paymentsGrpArray = Object.keys(paymentsInGroups).map((key) => ((paymentsInGroups[key].length && paymentsInGroups[key].length > 1) ? common.sortDescByKey(paymentsInGroups[key], 'partid') : paymentsInGroups[key])); + return paymentsGrpArray.reduce((acc, curr) => { + let temp = {}; + if (curr.length && curr.length === 1) { + temp = JSON.parse(JSON.stringify(curr[0])); + temp.is_group = false; + temp.is_expanded = false; + temp.total_parts = 1; + delete temp.partid; + } + else { + const paySummary = curr.reduce(summaryReducer, { msatoshi: 0, msatoshi_sent: 0, status: (curr[0] && curr[0].status) ? curr[0].status : 'failed' }); + temp = { + is_group: true, is_expanded: false, total_parts: (curr.length ? curr.length : 0), status: paySummary.status, payment_hash: curr[0].payment_hash, + destination: curr[0].destination, msatoshi: paySummary.msatoshi, msatoshi_sent: paySummary.msatoshi_sent, created_at: curr[0].created_at, + mpps: curr + }; + if (paySummary.bolt11) { + temp.bolt11 = paySummary.bolt11; + } + if (paySummary.bolt12) { + temp.bolt12 = paySummary.bolt12; + } + } + return acc.concat(temp); + }, []); +} +export const listPayments = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'List Payments..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/pay/listPayments'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received', data: body.payments }); + if (body && body.payments && body.payments.length > 0) { + body.payments = common.sortDescByKey(body.payments, 'created_at'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'List Payments Received' }); + res.status(200).json(groupBy(body.payments)); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'List Payments Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const decodePayment = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/utility/decode/' + req.params.payReq; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Decode Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const postPayment = (req, res, next) => { + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + if (req.body.paymentType === 'KEYSEND') { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Keysend Payment..' }); + options.url = req.session.selectedNode.ln_server_url + '/v1/pay/keysend'; + options.body = req.body; + } + else { + if (req.body.paymentType === 'OFFER') { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Sending Offer Payment..' }); + options.body = { invoice: req.body.invoice }; + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Sending Invoice Payment..' }); + options.body = req.body; + } + options.url = req.session.selectedNode.ln_server_url + '/v1/pay'; + } + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Sent' }); + if (req.body.paymentType === 'OFFER') { + if (req.body.saveToDB && req.body.bolt12) { + const offerToUpdate = { bolt12: req.body.bolt12, amountmSat: (req.body.zeroAmtOffer ? 0 : req.body.amount), title: req.body.title, lastUpdatedAt: new Date(Date.now()).getTime() }; + if (req.body.vendor) { + offerToUpdate['vendor'] = req.body.vendor; + } + if (req.body.description) { + offerToUpdate['description'] = req.body.description; + } + return databaseService.update(req.session.selectedNode, CollectionsEnum.OFFERS, offerToUpdate, CollectionFieldsEnum.BOLT12, req.body.bolt12).then((updatedOffer) => { + logger.log({ level: 'DEBUG', fileName: 'Offer', msg: 'Offer Updated', data: updatedOffer }); + return res.status(201).json({ paymentResponse: body, saveToDBResponse: updatedOffer }); + }).catch((errDB) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Payments', msg: 'Offer DB update error', error: errDB }); + return res.status(201).json({ paymentResponse: body, saveToDBError: errDB }); + }); + } + else { + return res.status(201).json({ paymentResponse: body, saveToDBResponse: 'NA' }); + } + } + if (req.body.paymentType === 'INVOICE') { + return res.status(201).json({ paymentResponse: body, saveToDBResponse: 'NA' }); + } + if (req.body.paymentType === 'KEYSEND') { + return res.status(201).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Send Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/peers.js b/backend/controllers/c-lightning/peers.js new file mode 100644 index 00000000..d791cb34 --- /dev/null +++ b/backend/controllers/c-lightning/peers.js @@ -0,0 +1,72 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getPeers = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'List Peers..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/peer/listPeers'; + request(options).then((body) => { + body.forEach((peer) => { + if (!peer.alias || peer.alias === '') { + peer.alias = peer.id.substring(0, 20); + } + }); + const peers = (body) ? common.sortDescByStrKey(body, 'alias') : []; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias', data: peers }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peers Received' }); + res.status(200).json(peers); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'List Peers Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const postPeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/peer/connect'; + options.body = req.body; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added', data: body }); + options.url = req.session.selectedNode.ln_server_url + '/v1/peer/listPeers'; + request(options).then((body) => { + let peers = (body) ? common.sortDescByStrKey(body, 'alias') : []; + peers = common.newestOnTop(peers, 'id', req.body.id); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: peers }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Connected' }); + res.status(201).json(peers); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const deletePeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/peer/disconnect/' + req.params.peerId + '?force=' + req.query.force; + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached', data: req.params.peerId }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected' }); + res.status(204).json({}); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Detach Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/c-lightning/webSocketClient.js b/backend/controllers/c-lightning/webSocketClient.js new file mode 100644 index 00000000..ffa8b427 --- /dev/null +++ b/backend/controllers/c-lightning/webSocketClient.js @@ -0,0 +1,113 @@ +import * as fs from 'fs'; +import { join } from 'path'; +import WebSocket from 'ws'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { WSServer } from '../../utils/webSocketServer.js'; +export class CLWebSocketClient { + constructor() { + this.logger = Logger; + this.common = Common; + this.wsServer = WSServer; + this.webSocketClients = []; + this.reconnectTimeOut = null; + this.waitTime = 0.5; + this.reconnet = (clWsClt) => { + if (this.reconnectTimeOut) { + return; + } + this.waitTime = (this.waitTime >= 64) ? 64 : (this.waitTime * 2); + this.reconnectTimeOut = setTimeout(() => { + if (clWsClt.selectedNode) { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Reconnecting to the CLightning\'s Websocket Server..' }); + this.connect(clWsClt.selectedNode); + } + this.reconnectTimeOut = null; + }, this.waitTime * 1000); + }; + this.connect = (selectedNode) => { + try { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (!clientExists) { + if (selectedNode.ln_server_url) { + const newWebSocketClient = { selectedNode: selectedNode, reConnect: true, webSocketClient: null }; + this.connectWithClient(newWebSocketClient); + this.webSocketClients.push(newWebSocketClient); + } + } + else { + if ((!clientExists.webSocketClient || clientExists.webSocketClient.readyState !== WebSocket.OPEN) && selectedNode.ln_server_url) { + clientExists.reConnect = true; + this.connectWithClient(clientExists); + } + } + } + catch (err) { + throw new Error(err); + } + }; + this.connectWithClient = (clWsClt) => { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Connecting to the CLightning\'s Websocket Server..' }); + const WS_LINK = (clWsClt.selectedNode.ln_server_url).replace(/^http/, 'ws') + '/v1/ws'; + const mcrnHexEncoded = Buffer.from(fs.readFileSync(join(clWsClt.selectedNode.macaroon_path, 'access.macaroon'))).toString('hex'); + clWsClt.webSocketClient = new WebSocket(WS_LINK, [mcrnHexEncoded, 'hex'], { rejectUnauthorized: false }); + clWsClt.webSocketClient.onopen = () => { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Connected to the CLightning\'s Websocket Server..' }); + this.waitTime = 0.5; + }; + clWsClt.webSocketClient.onclose = (e) => { + if (clWsClt && clWsClt.selectedNode && clWsClt.selectedNode.ln_implementation === 'CLT') { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Web socket disconnected, will reconnect again...' }); + clWsClt.webSocketClient.close(); + if (clWsClt.reConnect) { + this.reconnet(clWsClt); + } + } + }; + clWsClt.webSocketClient.onmessage = (msg) => { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Received message from the server..', data: msg.data }); + msg = (typeof msg.data === 'string') ? JSON.parse(msg.data) : msg.data; + msg['source'] = 'CLT'; + const msgStr = JSON.stringify(msg); + this.wsServer.sendEventsToAllLNClients(msgStr, clWsClt.selectedNode); + }; + clWsClt.webSocketClient.onerror = (err) => { + if (clWsClt.selectedNode.api_version === '' || !clWsClt.selectedNode.api_version || this.common.isVersionCompatible(clWsClt.selectedNode.api_version, '0.6.0')) { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'ERROR', fileName: 'CLWebSocket', msg: 'Web socket error', error: err }); + const errStr = ((typeof err === 'object' && err.message) ? JSON.stringify({ error: err.message }) : (typeof err === 'object') ? JSON.stringify({ error: err }) : ('{ "error": ' + err + ' }')); + this.wsServer.sendErrorToAllLNClients(errStr, clWsClt.selectedNode); + clWsClt.webSocketClient.close(); + if (clWsClt.reConnect) { + this.reconnet(clWsClt); + } + } + else { + clWsClt.reConnect = false; + } + }; + }; + this.disconnect = (selectedNode) => { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (clientExists && clientExists.webSocketClient && clientExists.webSocketClient.readyState === WebSocket.OPEN) { + this.logger.log({ selectedNode: clientExists.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Disconnecting from the CLightning\'s Websocket Server..' }); + clientExists.reConnect = false; + clientExists.webSocketClient.close(); + const clientIdx = this.webSocketClients.findIndex((wsc) => wsc.selectedNode.index === selectedNode.index); + this.webSocketClients.splice(clientIdx, 1); + } + }; + this.updateSelectedNode = (newSelectedNode) => { + const clientIdx = this.webSocketClients.findIndex((wsc) => +wsc.selectedNode.index === +newSelectedNode.index); + const newClient = this.webSocketClients[clientIdx]; + newClient.selectedNode = JSON.parse(JSON.stringify(newSelectedNode)); + this.webSocketClients[clientIdx] = newClient; + }; + this.wsServer.eventEmitterCLT.on('CONNECT', (nodeIndex) => { + this.connect(this.common.findNode(+nodeIndex)); + }); + this.wsServer.eventEmitterCLT.on('DISCONNECT', (nodeIndex) => { + this.disconnect(this.common.findNode(+nodeIndex)); + }); + } +} +export const CLWSClient = new CLWebSocketClient(); diff --git a/backend/controllers/eclair/channels.js b/backend/controllers/eclair/channels.js new file mode 100644 index 00000000..fabc32cc --- /dev/null +++ b/backend/controllers/eclair/channels.js @@ -0,0 +1,156 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const simplifyAllChannels = (lnServerUrl, channels) => { + let channelNodeIds = ''; + const simplifiedChannels = []; + channels.forEach((channel) => { + channelNodeIds = channelNodeIds + ',' + channel.nodeId; + simplifiedChannels.push({ + nodeId: channel.nodeId ? channel.nodeId : '', + channelId: channel.channelId ? channel.channelId : '', + state: channel.state ? channel.state : '', + channelFlags: channel.data && channel.data.commitments && channel.data.commitments.channelFlags ? channel.data.commitments.channelFlags : 0, + toLocal: (channel.data.commitments.localCommit.spec.toLocal) ? Math.round(+channel.data.commitments.localCommit.spec.toLocal / 1000) : 0, + toRemote: (channel.data.commitments.localCommit.spec.toRemote) ? Math.round(+channel.data.commitments.localCommit.spec.toRemote / 1000) : 0, + shortChannelId: channel.data && channel.data.shortChannelId ? channel.data.shortChannelId : '', + isFunder: channel.data && channel.data.commitments && channel.data.commitments.localParams && channel.data.commitments.localParams.isFunder ? channel.data.commitments.localParams.isFunder : false, + buried: channel.data && channel.data.buried ? channel.data.buried : false, + feeBaseMsat: channel.data && channel.data.channelUpdate && channel.data.channelUpdate.feeBaseMsat ? channel.data.channelUpdate.feeBaseMsat : 0, + feeRatePerKw: (channel.data.commitments.localCommit.spec.feeratePerKw) ? channel.data.commitments.localCommit.spec.feeratePerKw : 0, + feeProportionalMillionths: channel.data && channel.data.channelUpdate && channel.data.channelUpdate.feeProportionalMillionths ? channel.data.channelUpdate.feeProportionalMillionths : 0, + alias: '' + }); + }); + channelNodeIds = channelNodeIds.substring(1); + options.url = lnServerUrl + '/nodes'; + options.form = { nodeIds: channelNodeIds }; + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Channels', msg: 'Node Ids to find alias', data: channelNodeIds }); + return request.post(options).then((nodes) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Channels', msg: 'Filtered Nodes', data: nodes }); + let foundPeer = null; + simplifiedChannels.map((channel) => { + foundPeer = nodes.find((channelWithAlias) => channel.nodeId === channelWithAlias.nodeId); + channel.alias = foundPeer ? foundPeer.alias : channel.nodeId.substring(0, 20); + return channel; + }); + return simplifiedChannels; + }).catch((err) => simplifiedChannels); +}; +export const getChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'List Channels..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/channels'; + options.form = {}; + if (req.query && req.query.nodeId) { + options.form = req.query; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Channels Node Id', data: options.form }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Options', data: options }); + if (common.read_dummy_data) { + common.getDummyData('Channels', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(data); }); + } + else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'All Channels', data: body }); + if (body && body.length) { + return simplifyAllChannels(req.session.selectedNode.ln_server_url, body).then((simplifiedChannels) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Simplified Channels with Alias', data: simplifiedChannels }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channels List Received' }); + res.status(200).json(simplifiedChannels); + }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Empty Channels List Received' }); + res.status(200).json({ activeChannels: [], pendingChannels: [], inactiveChannels: [], lightningBalances: { localBalance: 0, remoteBalance: 0 }, channelStatus: { active: { channels: 0, capacity: 0 }, inactive: { channels: 0, capacity: 0 }, pending: { channels: 0, capacity: 0 } } }); + } + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; +export const getChannelStats = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Channel States..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/channelstats'; + options.form = {}; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Channel Stats Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel States Received' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Get Channel Stats Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const openChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/open'; + options.form = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Params', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Opened' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Open Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const updateChannelRelayFee = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Relay Fee..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/updaterelayfee'; + options.form = req.query; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Params', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Relay Fee Updated' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Update Relay Fee Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const closeChannel = (req, res, next) => { + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + if (req.query.force !== 'true') { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..' }); + options.url = req.session.selectedNode.ln_server_url + '/close'; + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Force Closing Channel..' }); + options.url = req.session.selectedNode.ln_server_url + '/forceclose'; + } + options.form = { channelId: req.query.channelId }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: '[Close URL, Close Params]', data: [options.url, options.form] }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Closed' }); + res.status(204).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Close Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/eclair/fees.js b/backend/controllers/eclair/fees.js new file mode 100644 index 00000000..a74dda29 --- /dev/null +++ b/backend/controllers/eclair/fees.js @@ -0,0 +1,125 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const arrangeFees = (body, current_time) => { + const fees = { daily_fee: 0, daily_txs: 0, weekly_fee: 0, weekly_txs: 0, monthly_fee: 0, monthly_txs: 0 }; + const week_start_time = current_time - 604800000; + const day_start_time = current_time - 86400000; + let fee = 0; + body.relayed.forEach((relayedEle) => { + fee = Math.round((relayedEle.amountIn - relayedEle.amountOut) / 1000); + if (relayedEle.timestamp >= day_start_time) { + fees.daily_fee = fees.daily_fee + fee; + fees.daily_txs = fees.daily_txs + 1; + } + if (relayedEle.timestamp >= week_start_time) { + fees.weekly_fee = fees.weekly_fee + fee; + fees.weekly_txs = fees.weekly_txs + 1; + } + fees.monthly_fee = fees.monthly_fee + fee; + fees.monthly_txs = fees.monthly_txs + 1; + }); + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Fees', msg: 'Arranged Fee', data: fees }); + return fees; +}; +export const arrangePayments = (body) => { + const payments = { + sent: body && body.sent ? body.sent : [], + received: body && body.received ? body.received : [], + relayed: body && body.relayed ? body.relayed : [] + }; + payments.sent.forEach((sentEle) => { + if (sentEle.recipientAmount) { + sentEle.recipientAmount = Math.round(sentEle.recipientAmount / 1000); + } + if (sentEle.parts && sentEle.parts.length > 0) { + sentEle.firstPartTimestamp = sentEle.parts[0].timestamp; + } + sentEle.parts.forEach((part) => { + if (part.amount) { + part.amount = Math.round(part.amount / 1000); + } + if (part.feesPaid) { + part.feesPaid = Math.round(part.feesPaid / 1000); + } + }); + }); + payments.received.forEach((receivedEle) => { + if (receivedEle.parts && receivedEle.parts.length > 0) { + receivedEle.firstPartTimestamp = receivedEle.parts[0].timestamp; + } + receivedEle.parts.forEach((part) => { + if (part.amount) { + part.amount = Math.round(part.amount / 1000); + } + }); + }); + payments.relayed.forEach((relayedEle) => { + if (relayedEle.amountIn) { + relayedEle.amountIn = Math.round(relayedEle.amountIn / 1000); + } + if (relayedEle.amountOut) { + relayedEle.amountOut = Math.round(relayedEle.amountOut / 1000); + } + }); + payments.sent = common.sortDescByKey(payments.sent, 'firstPartTimestamp'); + payments.received = common.sortDescByKey(payments.received, 'firstPartTimestamp'); + payments.relayed = common.sortDescByKey(payments.relayed, 'timestamp'); + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Fees', msg: 'Arranged Payments', data: payments }); + return payments; +}; +export const getFees = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/audit'; + const today = new Date(Date.now()); + const tillToday = (Math.round(today.getTime() / 1000)).toString(); + const fromLastMonth = (Math.round(new Date(today.getFullYear(), today.getMonth() - 1, today.getDate() + 1, 0, 0, 0).getTime() / 1000)).toString(); + options.form = { + from: fromLastMonth, + to: tillToday + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Fee Audit Options', data: options.form }); + if (common.read_dummy_data) { + common.getDummyData('Fees', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(arrangeFees(data, Math.round((new Date().getTime())))); }); + } + else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Fee Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Fee Received' }); + res.status(200).json(arrangeFees(body, Math.round((new Date().getTime())))); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Fees', 'Get Fees Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; +export const getPayments = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Getting Payments..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/audit'; + options.form = null; + if (common.read_dummy_data) { + common.getDummyData('Payments', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(arrangePayments(data)); }); + } + else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Payments Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Payments Received' }); + res.status(200).json(arrangePayments(body)); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Fees', 'Get Payments Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; diff --git a/backend/controllers/eclair/getInfo.js b/backend/controllers/eclair/getInfo.js new file mode 100644 index 00000000..f745a0dc --- /dev/null +++ b/backend/controllers/eclair/getInfo.js @@ -0,0 +1,51 @@ +import request from 'request-promise'; +import { Database } from '../../utils/database.js'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { ECLWSClient } from './webSocketClient.js'; +let options = null; +const logger = Logger; +const common = Common; +const eclWsClient = ECLWSClient; +const databaseService = Database; +export const getInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Getting Eclair Node Information..' }); + common.logEnvVariables(req); + common.setOptions(req); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/getinfo'; + options.form = {}; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Selected Node', data: req.session.selectedNode.ln_node }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from Eclair server url', data: options.url }); + if (common.read_dummy_data) { + common.getDummyData('GetInfo', req.session.selectedNode.ln_implementation).then((data) => { + data.lnImplementation = 'Eclair'; + res.status(200).json(data); + }); + } + else { + if (!options.headers || !options.headers.authorization) { + const errMsg = 'Eclair Get info failed due to missing or wrong password!'; + const err = common.handleError({ statusCode: 502, message: 'Missing or Wrong Password', error: errMsg }, 'GetInfo', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Connecting to the Eclair\'s Websocket Server.' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Get Info Response', data: body }); + body.lnImplementation = 'Eclair'; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Eclair Node Information Received' }); + req.session.selectedNode.ln_version = body.version.split('-')[0] || ''; + eclWsClient.updateSelectedNode(req.session.selectedNode); + databaseService.loadDatabase(req.session.selectedNode); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'GetInfo', 'Get Info Error', req); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } + } +}; diff --git a/backend/controllers/eclair/invoices.js b/backend/controllers/eclair/invoices.js new file mode 100644 index 00000000..0b351360 --- /dev/null +++ b/backend/controllers/eclair/invoices.js @@ -0,0 +1,129 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +let pendingInvoices = []; +export const getReceivedPaymentInfo = (lnServerUrl, invoice) => { + let idx = -1; + invoice.expiresAt = (!invoice.expiry) ? null : (+invoice.timestamp + +invoice.expiry); + if (invoice.amount) { + invoice.amount = Math.round(invoice.amount / 1000); + } + idx = pendingInvoices.findIndex((pendingInvoice) => invoice.serialized === pendingInvoice.serialized); + if (idx < 0) { + options.url = lnServerUrl + '/getreceivedinfo'; + options.form = { paymentHash: invoice.paymentHash }; + return request(options).then((response) => { + invoice.status = response.status.type; + if (response.status && response.status.type === 'received') { + invoice.amountSettled = response.status.amount ? Math.round(response.status.amount / 1000) : 0; + invoice.receivedAt = response.status.receivedAt ? Math.round(response.status.receivedAt / 1000) : 0; + } + return invoice; + }).catch((err) => { + invoice.status = 'unknown'; + return invoice; + }); + } + else { + pendingInvoices.splice(idx, 1); + invoice.status = 'unpaid'; + return invoice; + } +}; +export const getInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Invoice..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/getinvoice'; + options.form = { paymentHash: req.params.paymentHash }; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoice Found', data: body }); + const current_time = (Math.round(new Date(Date.now()).getTime() / 1000)); + body.amount = body.amount ? body.amount / 1000 : 0; + body.expiresAt = body.expiresAt ? body.expiresAt : (body.timestamp + body.expiry); + body.status = body.status ? body.status : (+body.expiresAt < current_time ? 'expired' : 'unknown'); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'Get Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const listInvoices = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Getting List Invoices..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.form = {}; + const options1 = JSON.parse(JSON.stringify(options)); + options1.url = req.session.selectedNode.ln_server_url + '/listinvoices'; + options1.form = {}; + const options2 = JSON.parse(JSON.stringify(options)); + options2.url = req.session.selectedNode.ln_server_url + '/listpendinginvoices'; + options2.form = {}; + if (common.read_dummy_data) { + return common.getDummyData('Invoices', req.session.selectedNode.ln_implementation).then((body) => { + const invoices = (!body[0] || body[0].length <= 0) ? [] : body[0]; + pendingInvoices = (!body[1] || body[1].length <= 0) ? [] : body[1]; + return Promise.all(invoices.map((invoice) => getReceivedPaymentInfo(req.session.selectedNode.ln_server_url, invoice))). + then((values) => { + body = common.sortDescByKey(invoices, 'expiresAt'); + return res.status(200).json(invoices); + }); + }); + } + else { + return Promise.all([request(options1), request(options2)]). + then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + const invoices = (!body[0] || body[0].length <= 0) ? [] : body[0]; + pendingInvoices = (!body[1] || body[1].length <= 0) ? [] : body[1]; + if (invoices && invoices.length > 0) { + return Promise.all(invoices.map((invoice) => getReceivedPaymentInfo(req.session.selectedNode.ln_server_url, invoice))). + then((values) => { + body = common.sortDescByKey(invoices, 'expiresAt'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Final Invoices List', data: invoices }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'List Invoices Received' }); + return res.status(200).json(invoices); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'List Invoices Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Empty List Invoice Received' }); + return res.status(200).json([]); + } + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'List Invoices Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; +export const createInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/createinvoice'; + options.form = req.body; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Create Invoice Response', data: body }); + if (body.amount) { + body.amount = Math.round(body.amount / 1000); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'Create Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/eclair/network.js b/backend/controllers/eclair/network.js new file mode 100644 index 00000000..5a53193e --- /dev/null +++ b/backend/controllers/eclair/network.js @@ -0,0 +1,23 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getNodes = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Node Lookup..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/nodes'; + options.form = { nodeIds: req.params.id }; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Node Lookup Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/eclair/onchain.js b/backend/controllers/eclair/onchain.js new file mode 100644 index 00000000..e866afea --- /dev/null +++ b/backend/controllers/eclair/onchain.js @@ -0,0 +1,103 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const arrangeBalances = (body) => { + if (!body.confirmed) { + body.confirmed = 0; + } + if (!body.unconfirmed) { + body.unconfirmed = 0; + } + body.total = +body.confirmed + +body.unconfirmed; + body.btc_total = +body.btc_confirmed + +body.btc_unconfirmed; + return body; +}; +export const getNewAddress = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/getnewaddress'; + options.form = {}; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Onchain', msg: 'New Address Generated', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Get New Address Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getBalance = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Balance..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/onchainbalance'; + options.form = {}; + if (common.read_dummy_data) { + common.getDummyData('OnChainBalance', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(arrangeBalances(data)); }); + } + else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Onchain', msg: 'Balance Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'On Chain Balance Received' }); + res.status(200).json(arrangeBalances(body)); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Get Balance Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; +export const getTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Transactions..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/onchaintransactions'; + options.form = { + count: req.query.count, + skip: req.query.skip + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'Getting On Chain Transactions Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'Transaction Received', data: body }); + if (body && body.length > 0) { + body = common.sortDescByKey(body, 'timestamp'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'On Chain Transaction Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Get Transactions Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const sendFunds = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Sending On Chain Funds..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/sendonchain'; + options.form = { + address: req.body.address, + amountSatoshis: req.body.amount, + confirmationTarget: req.body.blocks + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'On Chain Fund Sent' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Send Funds Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/eclair/payments.js b/backend/controllers/eclair/payments.js new file mode 100644 index 00000000..b0e800ea --- /dev/null +++ b/backend/controllers/eclair/payments.js @@ -0,0 +1,129 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getSentInfoFromPaymentRequest = (lnServerUrl, payment) => { + options.url = lnServerUrl + '/getsentinfo'; + options.form = { paymentHash: payment }; + return request.post(options).then((body) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Information Received', data: body }); + body.forEach((sentPayment) => { + if (sentPayment.amount) { + sentPayment.amount = Math.round(sentPayment.amount / 1000); + } + if (sentPayment.recipientAmount) { + sentPayment.recipientAmount = Math.round(sentPayment.recipientAmount / 1000); + } + }); + return body; + }).catch((err) => err); +}; +export const getQueryNodes = (lnServerUrl, nodeIds) => { + options.url = lnServerUrl + '/nodes'; + options.form = { nodeIds: nodeIds }; + return request.post(options).then((nodes) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Payments', msg: 'Query Nodes', data: nodes }); + return nodes; + }).catch((err) => []); +}; +export const decodePayment = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/parseinvoice'; + options.form = { invoice: req.params.invoice }; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: body }); + if (body.amount) { + body.amount = Math.round(body.amount / 1000); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Decode Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const postPayment = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Paying Invoice..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/payinvoice'; + options.form = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Invoice Paid' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Send Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const queryPaymentRoute = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Querying Payment Route..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/findroutetonode'; + options.form = { + nodeId: req.query.nodeId, + amountMsat: req.query.amountMsat + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Received', data: body }); + if (body && body.length) { + const queryRoutes = []; + return getQueryNodes(req.session.selectedNode.ln_server_url, body).then((hopsWithAlias) => { + let foundPeer = null; + body.map((hop) => { + foundPeer = hopsWithAlias.find((hopWithAlias) => hop === hopWithAlias.nodeId); + queryRoutes.push({ nodeId: hop, alias: foundPeer ? foundPeer.alias : '' }); + return hop; + }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Query Routes with Alias', data: queryRoutes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Route Information Received' }); + res.status(200).json(queryRoutes); + }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Empty Payment Route Information Received' }); + res.status(200).json([]); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Query Route Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getSentPaymentsInformation = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Getting Sent Payment Information..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + if (req.body.payments) { + const paymentsArr = req.body.payments.split(','); + return Promise.all(paymentsArr.map((payment) => getSentInfoFromPaymentRequest(req.session.selectedNode.ln_server_url, payment))). + then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Informations', data: values }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Sent Payment Information Received' }); + return res.status(200).json(values); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Sent Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Empty Sent Payment Information Received' }); + return res.status(200).json([]); + } +}; diff --git a/backend/controllers/eclair/peers.js b/backend/controllers/eclair/peers.js new file mode 100644 index 00000000..f91378ca --- /dev/null +++ b/backend/controllers/eclair/peers.js @@ -0,0 +1,135 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getFilteredNodes = (lnServerUrl, peersNodeIds) => { + options.url = lnServerUrl + '/nodes'; + options.form = { nodeIds: peersNodeIds }; + return request.post(options).then((nodes) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Peers', msg: 'Filtered Nodes', data: nodes }); + return nodes; + }).catch((err) => []); +}; +export const getPeers = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Getting Peers..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/peers'; + options.form = {}; + if (common.read_dummy_data) { + common.getDummyData('Peers', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(data); }); + } + else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body }); + if (body && body.length) { + let peersNodeIds = ''; + body.forEach((peer) => { peersNodeIds = peersNodeIds + ',' + peer.nodeId; }); + peersNodeIds = peersNodeIds.substring(1); + return getFilteredNodes(req.session.selectedNode.ln_server_url, peersNodeIds).then((peersWithAlias) => { + let foundPeer = null; + body.map((peer) => { + foundPeer = peersWithAlias.find((peerWithAlias) => peer.nodeId === peerWithAlias.nodeId); + peer.alias = foundPeer ? foundPeer.alias : peer.nodeId.substring(0, 20); + return peer; + }); + body = common.sortDescByStrKey(body, 'alias'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peers Received' }); + res.status(200).json(body); + }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Empty Peers Received' }); + res.status(200).json([]); + } + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'List Peers Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; +export const connectPeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Conneting Peer..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/connect'; + options.form = {}; + if (req.query) { + options.form = req.query; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Connect Peer Params', data: options.form }); + } + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Add Peer Response', data: body }); + if (typeof body === 'string' && body.includes('already connected')) { + const err = common.handleError({ statusCode: 500, message: 'Connect Peer Error', error: body }, 'Peers', body, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + else if (typeof body === 'string' && body.includes('connection failed')) { + const err = common.handleError({ statusCode: 500, message: 'Connect Peer Error', error: body }, 'Peers', body, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/peers'; + options.form = {}; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body }); + if (body && body.length) { + let peersNodeIds = ''; + body.forEach((peer) => { peersNodeIds = peersNodeIds + ',' + peer.nodeId; }); + peersNodeIds = peersNodeIds.substring(1); + return getFilteredNodes(req.session.selectedNode.ln_server_url, peersNodeIds).then((peersWithAlias) => { + let foundPeer = null; + body.map((peer) => { + foundPeer = peersWithAlias.find((peerWithAlias) => peer.nodeId === peerWithAlias.nodeId); + peer.alias = foundPeer ? foundPeer.alias : peer.nodeId.substring(0, 20); + return peer; + }); + let peers = (body) ? common.sortDescByStrKey(body, 'alias') : []; + peers = common.newestOnTop(peers, 'nodeId', req.query.nodeId ? req.query.nodeId : req.query.uri ? req.query.uri.substring(0, req.query.uri.indexOf('@')) : ''); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: peers }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Connected' }); + res.status(201).json(peers); + }); + } + else { + res.status(201).json([]); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const deletePeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Disconneting Peer..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/disconnect'; + options.form = {}; + if (req.params.nodeId) { + options.form = { nodeId: req.params.nodeId }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Params', data: options.form }); + } + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Disconnected: ' + req.params.nodeId }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected' }); + res.status(204).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Disconnect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/eclair/webSocketClient.js b/backend/controllers/eclair/webSocketClient.js new file mode 100644 index 00000000..c112a48f --- /dev/null +++ b/backend/controllers/eclair/webSocketClient.js @@ -0,0 +1,112 @@ +import WebSocket from 'ws'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { WSServer } from '../../utils/webSocketServer.js'; +export class ECLWebSocketClient { + constructor() { + this.logger = Logger; + this.common = Common; + this.wsServer = WSServer; + this.webSocketClients = []; + this.reconnectTimeOut = null; + this.waitTime = 0.5; + this.reconnet = (eclWsClt) => { + if (this.reconnectTimeOut) { + return; + } + this.waitTime = (this.waitTime >= 64) ? 64 : (this.waitTime * 2); + this.reconnectTimeOut = setTimeout(() => { + if (eclWsClt.selectedNode) { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Reconnecting to the Eclair\'s Websocket Server..' }); + this.connect(eclWsClt.selectedNode); + } + this.reconnectTimeOut = null; + }, this.waitTime * 1000); + }; + this.connect = (selectedNode) => { + try { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (!clientExists) { + if (selectedNode.ln_server_url) { + const newWebSocketClient = { selectedNode: selectedNode, reConnect: true, webSocketClient: null }; + this.connectWithClient(newWebSocketClient); + this.webSocketClients.push(newWebSocketClient); + } + } + else { + if ((!clientExists.webSocketClient || clientExists.webSocketClient.readyState !== WebSocket.OPEN) && selectedNode.ln_server_url) { + clientExists.reConnect = true; + this.connectWithClient(clientExists); + } + } + } + catch (err) { + throw new Error(err); + } + }; + this.connectWithClient = (eclWsClt) => { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Connecting to the Eclair\'s Websocket Server..' }); + const UpdatedLNServerURL = (eclWsClt.selectedNode.ln_server_url).replace(/^http/, 'ws'); + const firstSubStrIndex = (UpdatedLNServerURL.indexOf('//') + 2); + const WS_LINK = UpdatedLNServerURL.slice(0, firstSubStrIndex) + ':' + eclWsClt.selectedNode.ln_api_password + '@' + UpdatedLNServerURL.slice(firstSubStrIndex) + '/ws'; + eclWsClt.webSocketClient = new WebSocket(WS_LINK); + eclWsClt.webSocketClient.onopen = () => { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Connected to the Eclair\'s Websocket Server..' }); + this.waitTime = 0.5; + }; + eclWsClt.webSocketClient.onclose = (e) => { + if (eclWsClt && eclWsClt.selectedNode && eclWsClt.selectedNode.ln_implementation === 'ECL') { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Web socket disconnected, will reconnect again...' }); + eclWsClt.webSocketClient.close(); + if (eclWsClt.reConnect) { + this.reconnet(eclWsClt); + } + } + }; + eclWsClt.webSocketClient.onmessage = (msg) => { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Received message from the server..', data: msg.data }); + msg = (typeof msg.data === 'string') ? JSON.parse(msg.data) : msg.data; + msg['source'] = 'ECL'; + const msgStr = JSON.stringify(msg); + this.wsServer.sendEventsToAllLNClients(msgStr, eclWsClt.selectedNode); + }; + eclWsClt.webSocketClient.onerror = (err) => { + if (eclWsClt.selectedNode.ln_version === '' || !eclWsClt.selectedNode.ln_version || this.common.isVersionCompatible(eclWsClt.selectedNode.ln, '0.5.0')) { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'ERROR', fileName: 'ECLWebSocket', msg: 'Web socket error', error: err }); + const errStr = ((typeof err === 'object' && err.message) ? JSON.stringify({ error: err.message }) : (typeof err === 'object') ? JSON.stringify({ error: err }) : ('{ "error": ' + err + ' }')); + this.wsServer.sendErrorToAllLNClients(errStr, eclWsClt.selectedNode); + eclWsClt.webSocketClient.close(); + if (eclWsClt.reConnect) { + this.reconnet(eclWsClt); + } + } + else { + eclWsClt.reConnect = false; + } + }; + }; + this.disconnect = (selectedNode) => { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (clientExists && clientExists.webSocketClient && clientExists.webSocketClient.readyState === WebSocket.OPEN) { + this.logger.log({ selectedNode: clientExists.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Disconnecting from the Eclair\'s Websocket Server..' }); + clientExists.reConnect = false; + clientExists.webSocketClient.close(); + const clientIdx = this.webSocketClients.findIndex((wsc) => wsc.selectedNode.index === selectedNode.index); + this.webSocketClients.splice(clientIdx, 1); + } + }; + this.updateSelectedNode = (newSelectedNode) => { + const clientIdx = this.webSocketClients.findIndex((wsc) => +wsc.selectedNode.index === +newSelectedNode.index); + const newClient = this.webSocketClients[clientIdx]; + newClient.selectedNode = JSON.parse(JSON.stringify(newSelectedNode)); + this.webSocketClients[clientIdx] = newClient; + }; + this.wsServer.eventEmitterECL.on('CONNECT', (nodeIndex) => { + this.connect(this.common.findNode(+nodeIndex)); + }); + this.wsServer.eventEmitterECL.on('DISCONNECT', (nodeIndex) => { + this.disconnect(this.common.findNode(+nodeIndex)); + }); + } +} +export const ECLWSClient = new ECLWebSocketClient(); diff --git a/backend/controllers/lnd/balance.js b/backend/controllers/lnd/balance.js new file mode 100644 index 00000000..a857e733 --- /dev/null +++ b/backend/controllers/lnd/balance.js @@ -0,0 +1,34 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getBlockchainBalance = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Getting Balance..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/balance/blockchain'; + options.qs = req.query; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Balance', msg: '[Request params, Request Query, Balance Received]', data: [req.params, req.query, body] }); + if (body) { + if (!body.total_balance) { + body.total_balance = 0; + } + if (!body.confirmed_balance) { + body.confirmed_balance = 0; + } + if (!body.unconfirmed_balance) { + body.unconfirmed_balance = 0; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Balance Received' }); + res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Balance', 'Get Balance Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/channels.js b/backend/controllers/lnd/channels.js new file mode 100644 index 00000000..81b21852 --- /dev/null +++ b/backend/controllers/lnd/channels.js @@ -0,0 +1,262 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getAliasForChannel = (lnServerUrl, channel) => { + const pubkey = (channel.remote_pubkey) ? channel.remote_pubkey : (channel.remote_node_pub) ? channel.remote_node_pub : ''; + options.url = lnServerUrl + '/v1/graph/node/' + pubkey; + return request(options).then((aliasBody) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Channels', msg: 'Alias', data: aliasBody.node.alias }); + channel.remote_alias = aliasBody.node.alias; + return aliasBody.node.alias; + }).catch((err) => { + channel.remote_alias = pubkey.slice(0, 10) + '...' + pubkey.slice(-10); + return pubkey; + }); +}; +export const getAllChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Channels..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels'; + options.qs = req.query; + let local = 0; + let remote = 0; + let total = 0; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'All Channels Received', data: body }); + if (body.channels) { + return Promise.all(body.channels.map((channel) => { + local = (channel.local_balance) ? +channel.local_balance : 0; + remote = (channel.remote_balance) ? +channel.remote_balance : 0; + total = local + remote; + channel.balancedness = (total === 0) ? 1 : (1 - Math.abs((local - remote) / total)).toFixed(3); + return getAliasForChannel(req.session.selectedNode.ln_server_url, channel); + })).then((values) => { + body.channels = common.sortDescByKey(body.channels, 'balancedness'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'All Channels with Alias', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channels Received' }); + return res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Get All Channel Aliases Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } + else { + body.channels = []; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Empty Channels Received' }); + return res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getPendingChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Pending Channels..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/pending'; + options.qs = req.query; + request(options).then((body) => { + if (!body.total_limbo_balance) { + body.total_limbo_balance = 0; + } + const promises = []; + if (body.pending_open_channels && body.pending_open_channels.length > 0) { + body.pending_open_channels.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode.ln_server_url, channel.channel))); + } + if (body.pending_closing_channels && body.pending_closing_channels.length > 0) { + body.pending_closing_channels.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode.ln_server_url, channel.channel))); + } + if (body.pending_force_closing_channels && body.pending_force_closing_channels.length > 0) { + body.pending_force_closing_channels.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode.ln_server_url, channel.channel))); + } + if (body.waiting_close_channels && body.waiting_close_channels.length > 0) { + body.waiting_close_channels.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode.ln_server_url, channel.channel))); + } + return Promise.all(promises).then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Pending Channels', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Pending Channels Received' }); + return res.status(200).json(body); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Get Pending Channel Aliases Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Pending Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getClosedChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Closed Channels..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/closed'; + options.qs = req.query; + request(options).then((body) => { + if (body.channels && body.channels.length > 0) { + return Promise.all(body.channels.map((channel) => { + channel.close_type = (!channel.close_type) ? 'COOPERATIVE_CLOSE' : channel.close_type; + return getAliasForChannel(req.session.selectedNode.ln_server_url, channel); + })).then((values) => { + body.channels = common.sortDescByKey(body.channels, 'close_height'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Closed Channels', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Closed Channels Received' }); + return res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Get Closed Channel Aliases Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } + else { + body.channels = []; + return res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Closed Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const postChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels'; + options.form = { + node_pubkey_string: req.body.node_pubkey, + local_funding_amount: req.body.local_funding_amount, + private: req.body.private, + spend_unconfirmed: req.body.spend_unconfirmed + }; + if (req.body.trans_type === '1') { + options.form.target_conf = req.body.trans_type_value; + } + else if (req.body.trans_type === '2') { + options.form.sat_per_byte = req.body.trans_type_value; + } + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Channel Open Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channels Opened' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Open Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const postTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Sending Payment..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/transactions'; + options.form = { payment_request: req.body.paymentReq }; + if (req.body.paymentAmount) { + options.form.amt = req.body.paymentAmount; + } + if (req.body.feeLimit) { + options.form.fee_limit = req.body.feeLimit; + } + if (req.body.outgoingChannel) { + options.form.outgoing_chan_id = req.body.outgoingChannel; + } + if (req.body.allowSelfPayment) { + options.form.allow_self_payment = req.body.allowSelfPayment; + } + if (req.body.lastHopPubkey) { + options.form.last_hop_pubkey = Buffer.from(req.body.lastHopPubkey, 'hex').toString('base64'); + } + options.form = JSON.stringify(options.form); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Response', data: body }); + if (body.payment_error) { + const err = common.handleError(body.payment_error, 'Channels', 'Send Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Payment Sent' }); + res.status(201).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Send Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const closeChannel = (req, res, next) => { + try { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..' }); + if (!req.session.selectedNode) { + const err = common.handleError({ message: 'Session Expired after a day\'s inactivity.', statusCode: 401 }, 'Session Expired', 'Session Expiry Error', null); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + const channelpoint = req.params.channelPoint.replace(':', '/'); + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/' + channelpoint + '?force=' + req.query.force; + if (req.query.target_conf) { + options.url = options.url + '&target_conf=' + req.query.target_conf; + } + if (req.query.sat_per_byte) { + options.url = options.url + '&sat_per_byte=' + req.query.sat_per_byte; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel Options URL', data: options.url }); + request.delete(options); + res.status(202).json({ message: 'Close channel request has been submitted.' }); + } + catch (error) { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error', error: error.message }); + return res.status(500).json({ message: 'Close Channel Error', error: error.message }); + } +}; +export const postChanPolicy = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Policy..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/chanpolicy'; + if (req.body.chanPoint === 'all') { + options.form = JSON.stringify({ + global: true, + base_fee_msat: req.body.baseFeeMsat, + fee_rate: parseFloat((req.body.feeRate / 1000000).toString()), + time_lock_delta: parseInt(req.body.timeLockDelta) + }); + } + else { + const breakPoint = req.body.chanPoint.indexOf(':'); + const txid_str = req.body.chanPoint.substring(0, breakPoint); + const output_idx = req.body.chanPoint.substring(breakPoint + 1, req.body.chanPoint.length); + options.form = JSON.stringify({ + base_fee_msat: req.body.baseFeeMsat, + fee_rate: parseFloat((req.body.feeRate / 1000000).toString()), + time_lock_delta: parseInt(req.body.timeLockDelta), + chan_point: { funding_txid_str: txid_str, output_index: parseInt(output_idx) } + }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Policy Updated' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Update Channel Policy Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/channelsBackup.js b/backend/controllers/lnd/channelsBackup.js new file mode 100644 index 00000000..b55aab6d --- /dev/null +++ b/backend/controllers/lnd/channelsBackup.js @@ -0,0 +1,240 @@ +import * as fs from 'fs'; +import { sep } from 'path'; +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +function getFilesList(channelBackupPath, callback) { + const files_list = []; + let all_restore_exists = false; + let response = { all_restore_exists: false, files: [] } || { message: '', error: {}, statusCode: 500 }; + fs.readdir(channelBackupPath + sep + 'restore', (err, files) => { + if (err && err.code !== 'ENOENT' && err.errno !== -4058) { + response = { message: 'Channels Restore List Failed!', error: err, statusCode: 500 }; + } + if (files && files.length > 0) { + files.forEach((file) => { + if (!file.includes('.restored')) { + if (file.toLowerCase() === 'channel-all.bak' || file.toLowerCase() === 'backup-channel-all.bak') { + all_restore_exists = true; + } + else { + files_list.push({ channel_point: file.substring(8, file.length - 4).replace('-', ':') }); + } + } + }); + } + response = { all_restore_exists: all_restore_exists, files: files_list }; + callback(response); + }); +} +export const getBackup = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Getting Channel Backup..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + let channel_backup_file = ''; + let message = ''; + if (req.params.channelPoint === 'ALL') { + channel_backup_file = req.session.selectedNode.channel_backup_path + sep + 'channel-all.bak'; + message = 'All Channels Backup Successful.'; + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup'; + } + else { + channel_backup_file = req.session.selectedNode.channel_backup_path + sep + 'channel-' + req.params.channelPoint.replace(':', '-') + '.bak'; + message = 'Channel Backup Successful.'; + const channelpoint = req.params.channelPoint.replace(':', '/'); + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup/' + channelpoint; + const exists = fs.existsSync(channel_backup_file); + if (exists) { + fs.writeFile(channel_backup_file, '', () => { }); + } + else { + try { + const createStream = fs.createWriteStream(channel_backup_file); + createStream.end(); + } + catch (errRes) { + const err = common.handleError(errRes, 'ChannelsBackup', 'Backup Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + } + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'ChannelsBackup', msg: 'Channel Backup', data: body }); + fs.writeFile(channel_backup_file, JSON.stringify(body), (errRes) => { + if (errRes) { + const err = common.handleError(errRes, 'ChannelsBackup', 'Backup Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Finished' }); + res.status(200).json({ message: message }); + } + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'ChannelsBackup', 'Backup Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const postBackupVerify = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Verifying Channel Backup..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup/verify'; + let channel_verify_file = ''; + let message = ''; + let verify_backup = ''; + if (req.params.channelPoint === 'ALL') { + message = 'All Channels Verify Successful.'; + channel_verify_file = req.session.selectedNode.channel_backup_path + sep + 'channel-all.bak'; + const exists = fs.existsSync(channel_verify_file); + if (exists) { + verify_backup = fs.readFileSync(channel_verify_file, 'utf-8'); + if (verify_backup !== '') { + const verify_backup_json = JSON.parse(verify_backup); + delete verify_backup_json.single_chan_backups; + options.form = JSON.stringify(verify_backup_json); + } + else { + const errMsg = 'Channel backup to verify does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Verify Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + else { + verify_backup = ''; + const errMsg = 'Channel backup to verify does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Verify Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + else { + message = 'Channel Verify Successful.'; + channel_verify_file = req.session.selectedNode.channel_backup_path + sep + 'channel-' + req.params.channelPoint.replace(':', '-') + '.bak'; + const exists = fs.existsSync(channel_verify_file); + if (exists) { + verify_backup = fs.readFileSync(channel_verify_file, 'utf-8'); + options.form = JSON.stringify({ single_chan_backups: { chan_backups: [JSON.parse(verify_backup)] } }); + } + else { + verify_backup = ''; + const errMsg = 'Channel backup to verify does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Verify Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + if (verify_backup !== '') { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Verify', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Verified' }); + res.status(201).json({ message: message }); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'ChannelsBackup', 'Verify Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; +export const postRestore = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Restoring Channel Backup..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup/restore'; + let channel_restore_file = ''; + let message = ''; + let restore_backup = ''; + if (req.params.channelPoint === 'ALL') { + message = 'All Channels Restore Successful.'; + channel_restore_file = req.session.selectedNode.channel_backup_path + sep + 'restore' + sep; + const exists = fs.existsSync(channel_restore_file + 'channel-all.bak'); + const downloaded_exists = fs.existsSync(channel_restore_file + 'backup-channel-all.bak'); + if (exists) { + restore_backup = fs.readFileSync(channel_restore_file + 'channel-all.bak', 'utf-8'); + if (restore_backup !== '') { + const restore_backup_json = JSON.parse(restore_backup); + options.form = JSON.stringify({ multi_chan_backup: restore_backup_json.multi_chan_backup.multi_chan_backup }); + } + else { + const errMsg = 'Channel backup to restore does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + else if (downloaded_exists) { + restore_backup = fs.readFileSync(channel_restore_file + 'backup-channel-all.bak', 'utf-8'); + if (restore_backup !== '') { + const restore_backup_json = JSON.parse(restore_backup); + options.form = JSON.stringify({ multi_chan_backup: restore_backup_json.multi_chan_backup.multi_chan_backup }); + } + else { + const errMsg = 'Channel backup to restore does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + else { + restore_backup = ''; + const errMsg = 'Channel backup to restore does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + else { + message = 'Channel Restore Successful.'; + channel_restore_file = req.session.selectedNode.channel_backup_path + sep + 'restore' + sep + 'channel-' + req.params.channelPoint.replace(':', '-') + '.bak'; + const exists = fs.existsSync(channel_restore_file); + if (exists) { + restore_backup = fs.readFileSync(channel_restore_file, 'utf-8'); + options.form = JSON.stringify({ chan_backups: { chan_backups: [JSON.parse(restore_backup)] } }); + } + else { + restore_backup = ''; + const errMsg = 'Channel backup to restore does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + if (restore_backup !== '') { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Restore', data: body }); + if (req.params.channelPoint === 'ALL') { + channel_restore_file = channel_restore_file + 'channel-all.bak'; + } + fs.rename(channel_restore_file, channel_restore_file + '.restored', () => { + getFilesList(req.session.selectedNode.channel_backup_path, (getFilesListRes) => { + if (getFilesListRes.error) { + const errMsg = getFilesListRes.error; + const err = common.handleError({ statusCode: 500, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, list: getFilesListRes }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Restored' }); + return res.status(201).json({ message: message, list: getFilesListRes }); + } + }); + }); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'ChannelsBackup', 'Restore Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; +export const getRestoreList = (req, res, next) => { + getFilesList(req.session.selectedNode.channel_backup_path, (getFilesListRes) => { + if (getFilesListRes.error) { + return res.status(getFilesListRes.statusCode).json(getFilesListRes); + } + else { + return res.status(200).json(getFilesListRes); + } + }); +}; diff --git a/backend/controllers/lnd/fees.js b/backend/controllers/lnd/fees.js new file mode 100644 index 00000000..4b84b385 --- /dev/null +++ b/backend/controllers/lnd/fees.js @@ -0,0 +1,48 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { getAllForwardingEvents } from './switch.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getFees = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/fees'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received', data: body }); + const today = new Date(Date.now()); + const start_date = new Date(today.getFullYear(), today.getMonth(), 1, 0, 0, 0); + const current_time = (Math.round(today.getTime() / 1000)); + const month_start_time = (Math.round(start_date.getTime() / 1000)); + const week_start_time = current_time - 604800; + const day_start_time = current_time - 86400; + return getAllForwardingEvents(req, month_start_time, current_time, 0, (history) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Forwarding History Received', data: history }); + const daily_sum = history.forwarding_events.reduce((acc, curr) => ((curr.timestamp >= day_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc), [0, 0]); + const weekly_sum = history.forwarding_events.reduce((acc, curr) => ((curr.timestamp >= week_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc), [0, 0]); + const monthly_sum = history.forwarding_events.reduce((acc, curr) => [(acc[0] + 1), (acc[1] + +curr.fee_msat)], [0, 0]); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Daily Sum (Transactions, Fee)', data: daily_sum }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Weekly Sum (Transactions, Fee)', data: weekly_sum }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Monthly Sum (Transactions, Fee)', data: monthly_sum }); + body.daily_tx_count = daily_sum[0]; + body.weekly_tx_count = weekly_sum[0]; + body.monthly_tx_count = monthly_sum[0]; + body.day_fee_sum = (daily_sum[1] / 1000).toFixed(2); + body.week_fee_sum = (weekly_sum[1] / 1000).toFixed(2); + body.month_fee_sum = (monthly_sum[1] / 1000).toFixed(2); + body.forwarding_events_history = history; + if (history.error) { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Fees', msg: 'Fetch Forwarding Events Error', error: history.error }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Fees Received' }); + res.status(200).json(body); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Fees', 'Get Forwarding Events Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/getInfo.js b/backend/controllers/lnd/getInfo.js new file mode 100644 index 00000000..3c0b46b8 --- /dev/null +++ b/backend/controllers/lnd/getInfo.js @@ -0,0 +1,57 @@ +import request from 'request-promise'; +import { Database } from '../../utils/database.js'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { LNDWSClient } from './webSocketClient.js'; +let options = null; +const logger = Logger; +const common = Common; +const lndWsClient = LNDWSClient; +const databaseService = Database; +export const getInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Getting LND Node Information..' }); + common.logEnvVariables(req); + common.setOptions(req); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/getinfo'; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Selected Node', data: req.session.selectedNode.ln_node }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from LND server url', data: options.url }); + if (!options.headers || !options.headers['Grpc-Metadata-macaroon']) { + const errMsg = 'LND Get info failed due to bad or missing macaroon! Please check RTL-Config.json to verify the setup!'; + const err = common.handleError({ statusCode: 502, message: 'Bad or Missing Macaroon', error: errMsg }, 'GetInfo', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + else { + common.nodes.map((node) => { + if (node.ln_implementation === 'LND') { + common.getAllNodeAllChannelBackup(node); + } + return node; + }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Node Information', data: body }); + const body_str = (!body) ? '' : JSON.stringify(body); + const search_idx = (!body) ? -1 : body_str.search('Not Found'); + if (!body || search_idx > -1 || body.error) { + if (body && !body.error) { + body.error = 'Error From Server!'; + } + const err = common.handleError(body, 'GetInfo', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'LND Node Information Received' }); + req.session.selectedNode.ln_version = body.version.split('-')[0] || ''; + lndWsClient.updateSelectedNode(req.session.selectedNode); + databaseService.loadDatabase(req.session.selectedNode); + res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'GetInfo', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; diff --git a/backend/controllers/lnd/graph.js b/backend/controllers/lnd/graph.js new file mode 100644 index 00000000..25897ea7 --- /dev/null +++ b/backend/controllers/lnd/graph.js @@ -0,0 +1,169 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getAliasFromPubkey = (lnServerUrl, pubkey) => { + options.url = lnServerUrl + '/v1/graph/node/' + pubkey; + return request(options).then((res) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Graph', msg: 'Alias', data: res.node.alias }); + return res.node.alias; + }). + catch((err) => pubkey.substring(0, 17) + '...'); +}; +export const getDescribeGraph = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Network Graph..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph'; + request.get(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Describe Graph Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Network Graph Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Describe Graph Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getGraphInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Information..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/info'; + request.get(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Network Information After Rounding and Conversion', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Information Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Graph Information Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getGraphNode = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Node Information..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/node/' + req.params.pubKey; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Node Info Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Node Information Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Node Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getGraphEdge = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Edge Information..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/edge/' + req.params.chanid; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Edge Information Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Edge Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getQueryRoutes = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Routes..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/routes/' + req.params.destPubkey + '/' + req.params.amount; + if (req.query.outgoing_chan_id) { + options.url = options.url + '?outgoing_chan_id=' + req.query.outgoing_chan_id; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes URL', data: options.url }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes Received', data: body }); + if (body.routes && body.routes.length && body.routes.length > 0 && body.routes[0].hops && body.routes[0].hops.length && body.routes[0].hops.length > 0) { + return Promise.all(body.routes[0].hops.map((hop) => getAliasFromPubkey(req.session.selectedNode.ln_server_url, hop.pub_key))). + then((values) => { + body.routes[0].hops.map((hop, i) => { + hop.hop_sequence = i + 1; + hop.pubkey_alias = values[i]; + return hop; + }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Hops with Alias', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received' }); + res.status(200).json(body); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Query Routes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received' }); + return res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Query Routes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getRemoteFeePolicy = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Remote Fee Policy..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/edge/' + req.params.chanid; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received', data: body }); + let remoteNodeFee = {}; + if (body.node1_pub === req.params.localPubkey) { + remoteNodeFee = { + time_lock_delta: body.node2_policy.time_lock_delta, + fee_base_msat: body.node2_policy.fee_base_msat, + fee_rate_milli_msat: body.node2_policy.fee_rate_milli_msat + }; + } + else if (body.node2_pub === req.params.localPubkey) { + remoteNodeFee = { + time_lock_delta: body.node1_policy.time_lock_delta, + fee_base_msat: body.node1_policy.fee_base_msat, + fee_rate_milli_msat: body.node1_policy.fee_rate_milli_msat + }; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Remote Fee Policy Received' }); + res.status(200).json(remoteNodeFee); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Remote Fee Policy Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getAliasesForPubkeys = (req, res, next) => { + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + if (req.query.pubkeys) { + const pubkeyArr = req.query.pubkeys.split(','); + return Promise.all(pubkeyArr.map((pubkey) => getAliasFromPubkey(req.session.selectedNode.ln_server_url, pubkey))). + then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Node Alias', data: values }); + res.status(200).json(values); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Aliases for Pubkeys Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } + else { + return res.status(200).json([]); + } +}; diff --git a/backend/controllers/lnd/invoices.js b/backend/controllers/lnd/invoices.js new file mode 100644 index 00000000..a9b829e9 --- /dev/null +++ b/backend/controllers/lnd/invoices.js @@ -0,0 +1,93 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { LNDWSClient } from './webSocketClient.js'; +let options = null; +const logger = Logger; +const common = Common; +const lndWsClient = LNDWSClient; +export const getInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Getting Invoice Information..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/invoice/' + req.params.rHashStr; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoice Info Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoice Information Received' }); + body.r_preimage = body.r_preimage ? Buffer.from(body.r_preimage, 'base64').toString('hex') : ''; + body.r_hash = body.r_hash ? Buffer.from(body.r_hash, 'base64').toString('hex') : ''; + body.description_hash = body.description_hash ? Buffer.from(body.description_hash, 'base64').toString('hex') : null; + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'Get Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const listInvoices = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Getting List Invoices..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/invoices?num_max_invoices=' + req.query.num_max_invoices + '&index_offset=' + req.query.index_offset + + '&reversed=' + req.query.reversed; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + if (body.invoices && body.invoices.length > 0) { + body.invoices.forEach((invoice) => { + invoice.r_preimage = invoice.r_preimage ? Buffer.from(invoice.r_preimage, 'base64').toString('hex') : ''; + invoice.r_hash = invoice.r_hash ? Buffer.from(invoice.r_hash, 'base64').toString('hex') : ''; + invoice.description_hash = invoice.description_hash ? Buffer.from(invoice.description_hash, 'base64').toString('hex') : null; + }); + body.invoices = common.sortDescByKey(body.invoices, 'creation_date'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoices List Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'List Invoices Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const addInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Adding Invoice..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/invoices'; + options.form = { + memo: req.body.memo, + private: req.body.private, + expiry: req.body.expiry + }; + if (req.body.amount > 0 && req.body.amount < 1) { + options.form.value_msat = req.body.amount * 1000; + } + else { + options.form.value = req.body.amount; + } + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Responce', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoice Added' }); + try { + if (body.r_hash) { + lndWsClient.subscribeToInvoice(options, req.session.selectedNode, body.r_hash); + } + } + catch (errRes) { + const err = common.handleError(errRes, 'Invoices', 'Subscribe to Newly Added Invoice Error', req.session.selectedNode); + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Invoice', msg: 'Subscribe to Newly Added Invoice Error', error: err }); + } + body.r_preimage = body.r_preimage ? Buffer.from(body.r_preimage, 'base64').toString('hex') : ''; + body.r_hash = body.r_hash ? Buffer.from(body.r_hash, 'base64').toString('hex') : ''; + body.description_hash = body.description_hash ? Buffer.from(body.description_hash, 'base64').toString('hex') : null; + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'Add Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/message.js b/backend/controllers/lnd/message.js new file mode 100644 index 00000000..3c16f7cf --- /dev/null +++ b/backend/controllers/lnd/message.js @@ -0,0 +1,45 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const signMessage = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Signing Message..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/signmessage'; + options.form = JSON.stringify({ + msg: Buffer.from(req.body.message).toString('base64') + }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Signed' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Messages', 'Sign Message Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const verifyMessage = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Verifying Message..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/verifymessage'; + options.form = JSON.stringify({ + msg: Buffer.from(req.body.message).toString('base64'), + signature: req.body.signature + }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Verified' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Messages', 'Verify Message Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/newAddress.js b/backend/controllers/lnd/newAddress.js new file mode 100644 index 00000000..38d4c950 --- /dev/null +++ b/backend/controllers/lnd/newAddress.js @@ -0,0 +1,22 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getNewAddress = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'NewAddress', msg: 'Getting New Address..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/newaddress?type=' + req.query.type; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'NewAddress', msg: 'New Address Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'NewAddress', msg: 'New Address Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'NewAddress', 'New Address Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/payments.js b/backend/controllers/lnd/payments.js new file mode 100644 index 00000000..e5855752 --- /dev/null +++ b/backend/controllers/lnd/payments.js @@ -0,0 +1,89 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const decodePaymentFromPaymentRequest = (lnServerUrl, payment) => { + options.url = lnServerUrl + '/v1/payreq/' + payment; + return request(options).then((res) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'PayReq', msg: 'Description', data: res.description }); + return res; + }).catch((err) => { }); +}; +export const decodePayment = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payment..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/payreq/' + req.params.payRequest; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'PayReq', msg: 'Payment Decode Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Payment Decoded' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'PayRequest', 'Decode Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const decodePayments = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payments List..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + if (req.body.payments) { + const paymentsArr = req.body.payments.split(','); + return Promise.all(paymentsArr.map((payment) => decodePaymentFromPaymentRequest(req.session.selectedNode.ln_server_url, payment))). + then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'PayReq', msg: 'Decoded Payments', data: values }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Payment List Decoded' }); + res.status(200).json(values); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'PayRequest', 'Decode Payments Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Empty Payment List Decoded' }); + return res.status(200).json([]); + } +}; +export const getPayments = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Getting Payments List..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/payments?max_payments=' + req.query.max_payments + '&index_offset=' + req.query.index_offset + '&reversed=' + req.query.reversed; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received', data: body }); + if (body.payments && body.payments.length > 0) { + body.payments = common.sortDescByKey(body.payments, 'creation_date'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payments After Sort', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payments List Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'List Payments Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getAllLightningTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Getting All Lightning Transactions..' }); + const options1 = JSON.parse(JSON.stringify(common.getOptions(req))); + const options2 = JSON.parse(JSON.stringify(common.getOptions(req))); + options1.url = req.session.selectedNode.ln_server_url + '/v1/payments?max_payments=100000&index_offset=0&reversed=true'; + options2.url = req.session.selectedNode.ln_server_url + '/v1/invoices?num_max_invoices=100000&index_offset=0&reversed=true'; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'All Payments Options', data: options1 }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'All Invoices Options', data: options2 }); + return Promise.all([request(options1), request(options2)]).then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payments & Invoices Received' }); + res.status(200).json({ listPaymentsAll: values[0], listInvoicesAll: values[1] }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'All Lightning Transactions Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/peers.js b/backend/controllers/lnd/peers.js new file mode 100644 index 00000000..308854e3 --- /dev/null +++ b/backend/controllers/lnd/peers.js @@ -0,0 +1,97 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getAliasForPeers = (lnServerUrl, peer) => { + options.url = lnServerUrl + '/v1/graph/node/' + peer.pub_key; + return request(options).then((aliasBody) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Peers', msg: 'Alias', data: aliasBody.node.alias }); + peer.alias = aliasBody.node.alias; + return aliasBody.node.alias; + }).catch((err) => { + peer.alias = peer.pub_key.slice(0, 10) + '...' + peer.pub_key.slice(-10); + return peer.pub_key; + }); +}; +export const getPeers = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Getting Peers..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/peers'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body }); + const peers = !body.peers ? [] : body.peers; + return Promise.all(peers.map((peer) => getAliasForPeers(req.session.selectedNode.ln_server_url, peer))).then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias before Sort', data: body }); + if (body.peers) { + body.peers = common.sortDescByStrKey(body.peers, 'alias'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias after Sort', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peers Received' }); + res.status(200).json(body.peers); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'List Peers Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const postPeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/peers'; + options.form = JSON.stringify({ + addr: { host: req.body.host, pubkey: req.body.pubkey }, + perm: req.body.perm + }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added', data: body }); + options.url = req.session.selectedNode.ln_server_url + '/v1/peers'; + request(options).then((body) => { + const peers = (!body.peers) ? [] : body.peers; + return Promise.all(peers.map((peer) => getAliasForPeers(req.session.selectedNode.ln_server_url, peer))).then((values) => { + if (body.peers) { + body.peers = common.sortDescByStrKey(body.peers, 'alias'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Alias', data: body }); + body.peers = common.newestOnTop(body.peers, 'pub_key', req.body.pubkey); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: body }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Connected' }); + res.status(201).json(body.peers); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const deletePeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/peers/' + req.params.peerPubKey; + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached', data: req.params.peerPubKey }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected' }); + res.status(204).json({}); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Disconnect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/switch.js b/backend/controllers/lnd/switch.js new file mode 100644 index 00000000..b4414f22 --- /dev/null +++ b/backend/controllers/lnd/switch.js @@ -0,0 +1,61 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +let responseData = { forwarding_events: [], last_offset_index: 0 }; +const num_max_events = 100; +export const forwardingHistory = (req, res, next) => { + getAllForwardingEvents(req, req.body.start_time, req.body.end_time, 0, (eventsResponse) => { + if (eventsResponse.error) { + res.status(eventsResponse.error.statusCode).json(eventsResponse); + } + else { + res.status(201).json(eventsResponse); + } + }); +}; +export const getAllForwardingEvents = (req, start, end, offset, callback) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Switch', msg: 'Getting Forwarding Events..' }); + if (offset === 0) { + responseData = { forwarding_events: [], last_offset_index: 0 }; + } + if (!req.session.selectedNode) { + const err = common.handleError({ message: 'Session Expired after a day\'s inactivity.', statusCode: 401 }, 'Balance', 'Get Balance Error', req.session.selectedNode); + return callback({ message: err.message, error: err.error, statusCode: err.statusCode }); + } + options = common.getOptions(req); + options.url = req.session.selectedNode.ln_server_url + '/v1/switch'; + options.form = {}; + if (start) { + options.form.start_time = start; + } + if (end) { + options.form.end_time = end; + } + options.form.num_max_events = num_max_events; + options.form.index_offset = offset; + options.form = JSON.stringify(options.form); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History Params', data: options.form }); + return request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Switch', msg: 'Forwarding Events Received' }); + if (body.forwarding_events) { + responseData.forwarding_events.push(...body.forwarding_events); + } + if (!body.last_offset_index || body.last_offset_index < offset + num_max_events) { + responseData.last_offset_index = body.last_offset_index ? body.last_offset_index : 0; + if (responseData.forwarding_events) { + responseData.forwarding_events = common.sortDescByKey(responseData.forwarding_events, 'timestamp'); + } + return callback(responseData); + } + else { + return getAllForwardingEvents(req, start, end, offset + num_max_events, callback); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Switch', 'Get All Forwarding Events Error', req.session.selectedNode); + return callback({ message: err.message, error: err.error, statusCode: err.statusCode }); + }); +}; diff --git a/backend/controllers/lnd/transactions.js b/backend/controllers/lnd/transactions.js new file mode 100644 index 00000000..bd8d673c --- /dev/null +++ b/backend/controllers/lnd/transactions.js @@ -0,0 +1,51 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Transactions', msg: 'Getting Transactions..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/transactions'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Received', data: body }); + if (body.transactions && body.transactions.length > 0) { + body.transactions = common.sortDescByKey(body.transactions, 'time_stamp'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Transactions', msg: 'Transactions Received' }); + res.status(200).json(body.transactions); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Transactions', 'List Transactions Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const postTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Transactions', msg: 'Sending Transaction..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v1/transactions'; + options.form = { + amount: req.body.amount, + addr: req.body.address, + sat_per_byte: req.body.fees, + target_conf: req.body.blocks + }; + if (req.body.sendAll) { + options.form.send_all = req.body.sendAll; + } + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Post Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Transactions', msg: 'Transaction Sent' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Transactions', 'Send Transaction Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/wallet.js b/backend/controllers/lnd/wallet.js new file mode 100644 index 00000000..dc477aef --- /dev/null +++ b/backend/controllers/lnd/wallet.js @@ -0,0 +1,219 @@ +import atob from 'atob'; +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const genSeed = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Generating Seed..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + if (req.params.passphrase) { + options.url = req.session.selectedNode.ln_server_url + '/v1/genseed?aezeed_passphrase=' + Buffer.from(atob(req.params.passphrase)).toString('base64'); + } + else { + options.url = req.session.selectedNode.ln_server_url + '/v1/genseed'; + } + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Seed Generated' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Gen Seed Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const operateWallet = (req, res, next) => { + let err_message = ''; + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.method = 'POST'; + if (!req.params.operation || req.params.operation === 'unlockwallet') { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Unlocking Wallet..' }); + options.url = req.session.selectedNode.ln_server_url + '/v1/unlockwallet'; + options.form = JSON.stringify({ + wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64') + }); + err_message = 'Unlocking wallet failed! Verify that lnd is running and the wallet is locked!'; + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Initializing Wallet..' }); + options.url = req.session.selectedNode.ln_server_url + '/v1/initwallet'; + if (req.body.aezeed_passphrase && req.body.aezeed_passphrase !== '') { + options.form = JSON.stringify({ + wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64'), + cipher_seed_mnemonic: req.body.cipher_seed_mnemonic, + aezeed_passphrase: Buffer.from(atob(req.body.aezeed_passphrase)).toString('base64') + }); + } + else { + options.form = JSON.stringify({ + wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64'), + cipher_seed_mnemonic: req.body.cipher_seed_mnemonic + }); + } + err_message = 'Initializing wallet failed!'; + } + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'Wallet Response', data: body }); + const body_str = (!body) ? '' : JSON.stringify(body); + const search_idx = (!body) ? -1 : body_str.search('Not Found'); + if (!body) { + const err = common.handleError({ statusCode: 500, message: 'Wallet Error', error: err_message }, 'Wallet', err_message, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + else if (search_idx > -1) { + const err = common.handleError({ statusCode: 500, message: 'Wallet Error', error: err_message }, 'Wallet', err_message, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + else if (body.error) { + if ((body.code === 1 && body.error === 'context canceled') || (body.code === 14 && body.error === 'transport is closing')) { + res.status(201).json('Successful'); + } + else { + const errMsg = (body.error && typeof body.error === 'object') ? JSON.stringify(body.error) : (body.error && typeof body.error === 'string') ? body.error : err_message; + const err = common.handleError({ statusCode: 500, message: 'Wallet Error', error: errMsg }, 'Wallet', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Wallet Unlocked/Initialized' }); + res.status(201).json('Successful'); + } + }).catch((errRes) => { + if ((errRes.error.code === 1 && errRes.error.error === 'context canceled') || (errRes.error.code === 14 && errRes.error.error === 'transport is closing')) { + res.status(201).json('Successful'); + } + else { + const err = common.handleError(errRes, 'Wallet', err_message, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + }); +}; +export const updateSelNodeOptions = (req, res, next) => { + const response = common.updateSelectedNodeOptions(req); + res.status(response.status).json({ updateMessage: response.message }); +}; +export const getUTXOs = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Getting UTXOs..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/utxos'; + if (common.isVersionCompatible(req.session.selectedNode.ln_version, '0.14.0')) { + options.form = JSON.stringify({ max_confs: req.query.max_confs }); + } + else { + options.url = options.url + '?max_confs=' + req.query.max_confs; + } + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO List Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'UTXOs Received' }); + res.status(200).json(body.utxos ? body.utxos : []); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'List UTXOs Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const bumpFee = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Bumping Fee..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/bumpfee'; + options.form = {}; + options.form.outpoint = { + txid_str: req.body.txid, + output_index: req.body.outputIndex + }; + if (req.body.targetConf) { + options.form.target_conf = req.body.targetConf; + } + else if (req.body.satPerByte) { + options.form.sat_per_byte = req.body.satPerByte; + } + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'Bump Fee Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Fee Bumped' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Bump Fee Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const labelTransaction = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Labelling Transaction..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/tx/label'; + options.form = {}; + options.form.txid = req.body.txid; + options.form.label = req.body.label; + options.form.overwrite = req.body.overwrite; + options.form = JSON.stringify(options.form); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Post Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Transaction Labelled' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Label Transaction Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const leaseUTXO = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Leasing UTXO..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/utxos/lease'; + options.form = {}; + options.form.id = req.body.txid; + options.form.outpoint = { + txid_bytes: req.body.txid, + output_index: req.body.outputIndex + }; + options.form = JSON.stringify(options.form); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'UTXO Leased' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Lease UTXO Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const releaseUTXO = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Releasing UTXO..' }); + options = common.getOptions(req); + if (options.error) { + return res.status(options.statusCode).json({ message: options.message, error: options.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/utxos/release'; + options.form = {}; + options.form.id = req.body.txid; + options.form.outpoint = { + txid_bytes: req.body.txid, + output_index: req.body.outputIndex + }; + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Release Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'UTXO Released' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Release UTXO Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/lnd/webSocketClient.js b/backend/controllers/lnd/webSocketClient.js new file mode 100644 index 00000000..66e7dfe3 --- /dev/null +++ b/backend/controllers/lnd/webSocketClient.js @@ -0,0 +1,103 @@ +import request from 'request-promise'; +import * as fs from 'fs'; +import { join } from 'path'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { WSServer } from '../../utils/webSocketServer.js'; +export class LNDWebSocketClient { + constructor() { + this.logger = Logger; + this.common = Common; + this.wsServer = WSServer; + this.webSocketClients = []; + this.connect = (selectedNode) => { + try { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (!clientExists && selectedNode.ln_server_url) { + const newWebSocketClient = { selectedNode: selectedNode }; + this.webSocketClients.push(newWebSocketClient); + } + } + catch (err) { + throw new Error(err); + } + }; + this.fetchUnpaidInvoices = (selectedNode) => { + this.logger.log({ selectedNode: selectedNode, level: 'INFO', fileName: 'WebSocketClient', msg: 'Getting Unpaid Invoices..' }); + const options = this.setOptionsForSelNode(selectedNode); + options.url = selectedNode.ln_server_url + '/v1/invoices?pending_only=true'; + return request(options).then((body) => { + this.logger.log({ selectedNode: selectedNode, level: 'DEBUG', fileName: 'WebSocketClient', msg: 'Pending Invoices Received', data: body }); + if (body.invoices && body.invoices.length > 0) { + body.invoices.forEach((invoice) => { + if (invoice.state === 'OPEN') { + this.subscribeToInvoice(options, selectedNode, invoice.r_hash); + } + }); + } + return null; + }).catch((errRes) => { + const err = this.common.handleError(errRes, 'WebSocketClient', 'Pending Invoices Error', selectedNode); + return ({ message: err.message, error: err.error }); + }); + }; + this.subscribeToInvoice = (options, selectedNode, rHash) => { + rHash = rHash.replace(/\+/g, '-').replace(/[/]/g, '_'); + this.logger.log({ selectedNode: selectedNode, level: 'INFO', fileName: 'WebSocketClient', msg: 'Subscribing to Invoice ' + rHash + ' ..' }); + options.url = selectedNode.ln_server_url + '/v2/invoices/subscribe/' + rHash; + request(options).then((msg) => { + this.logger.log({ selectedNode: selectedNode, level: 'INFO', fileName: 'WebSocketClient', msg: 'Invoice Information Received for ' + rHash }); + if (typeof msg === 'string') { + const results = msg.split('\n'); + msg = (results.length && results.length > 1) ? JSON.parse(results[1]) : JSON.parse(msg); + msg.result.r_preimage = msg.result.r_preimage ? Buffer.from(msg.result.r_preimage, 'base64').toString('hex') : ''; + msg.result.r_hash = msg.result.r_hash ? Buffer.from(msg.result.r_hash, 'base64').toString('hex') : ''; + msg.result.description_hash = msg.result.description_hash ? Buffer.from(msg.result.description_hash, 'base64').toString('hex') : null; + } + msg['type'] = 'invoice'; + msg['source'] = 'LND'; + const msgStr = JSON.stringify(msg); + this.logger.log({ selectedNode: selectedNode, level: 'DEBUG', fileName: 'WebSocketClient', msg: 'Invoice Info Received', data: msgStr }); + this.wsServer.sendEventsToAllLNClients(msgStr, selectedNode); + }).catch((errRes) => { + const err = this.common.handleError(errRes, 'Invoices', 'Subscribe to Invoice Error for ' + rHash, selectedNode); + const errStr = ((typeof err === 'object' && err.message) ? JSON.stringify({ error: err.message + ' ' + rHash }) : (typeof err === 'object') ? JSON.stringify({ error: err + ' ' + rHash }) : ('{ "error": ' + err + ' ' + rHash + ' }')); + this.wsServer.sendErrorToAllLNClients(errStr, selectedNode); + }); + }; + this.setOptionsForSelNode = (selectedNode) => { + const options = { url: '', rejectUnauthorized: false, json: true, form: null }; + try { + options['headers'] = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(selectedNode.macaroon_path, 'admin.macaroon')).toString('hex') }; + } + catch (err) { + this.logger.log({ selectedNode: selectedNode, level: 'ERROR', fileName: 'WebSocketClient', msg: 'Set Options Error', error: JSON.stringify(err) }); + } + return options; + }; + this.disconnect = (selectedNode) => { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (clientExists) { + this.logger.log({ selectedNode: clientExists.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Disconnecting from the LND\'s Websocket Server..' }); + const clientIdx = this.webSocketClients.findIndex((wsc) => wsc.selectedNode.index === selectedNode.index); + this.webSocketClients.splice(clientIdx, 1); + } + }; + this.updateSelectedNode = (newSelectedNode) => { + const clientIdx = this.webSocketClients.findIndex((wsc) => +wsc.selectedNode.index === +newSelectedNode.index); + const newClient = this.webSocketClients[clientIdx]; + newClient.selectedNode = JSON.parse(JSON.stringify(newSelectedNode)); + this.webSocketClients[clientIdx] = newClient; + if (this.webSocketClients[clientIdx].selectedNode.ln_version === '' || !this.webSocketClients[clientIdx].selectedNode.ln_version || this.common.isVersionCompatible(this.webSocketClients[clientIdx].selectedNode.ln_version, '0.11.0')) { + this.fetchUnpaidInvoices(this.webSocketClients[clientIdx].selectedNode); + } + }; + this.wsServer.eventEmitterLND.on('CONNECT', (nodeIndex) => { + this.connect(this.common.findNode(+nodeIndex)); + }); + this.wsServer.eventEmitterLND.on('DISCONNECT', (nodeIndex) => { + this.disconnect(this.common.findNode(+nodeIndex)); + }); + } +} +export const LNDWSClient = new LNDWebSocketClient(); diff --git a/backend/controllers/shared/RTLConf.js b/backend/controllers/shared/RTLConf.js new file mode 100644 index 00000000..270518ab --- /dev/null +++ b/backend/controllers/shared/RTLConf.js @@ -0,0 +1,374 @@ +import * as fs from 'fs'; +import { sep } from 'path'; +import ini from 'ini'; +import parseHocon from 'hocon-parser'; +import request from 'request-promise'; +import { Database } from '../../utils/database.js'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +import { WSServer } from '../../utils/webSocketServer.js'; +const options = { url: '' }; +const logger = Logger; +const common = Common; +const wsServer = WSServer; +const databaseService = Database; +export const updateSelectedNode = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating Selected Node..' }); + const selNodeIndex = req.body.currNodeIndex ? req.body.currNodeIndex : common.initSelectedNode ? common.initSelectedNode.index : 1; + req.session.selectedNode = common.findNode(selNodeIndex); + if (req.headers && req.headers.authorization && req.headers.authorization !== '') { + wsServer.updateLNWSClientDetails(req.session.id, +req.session.selectedNode.index, +req.body.prevNodeIndex); + if (req.body.prevNodeIndex !== -1) { + databaseService.unloadDatabase(req.body.prevNodeIndex); + } + } + const responseVal = !req.session.selectedNode.ln_node ? '' : req.session.selectedNode.ln_node; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Selected Node Updated To', data: responseVal }); + res.status(200).json({ status: 'Selected Node Updated To: ' + JSON.stringify(responseVal) + '!' }); +}; +export const getRTLConfigInitial = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting Initial RTL Configuration..' }); + const confFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + fs.readFile(confFile, 'utf8', (errRes, data) => { + if (errRes) { + if (errRes.code === 'ENOENT') { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'RTLConf', msg: 'Node config does not exist!', error: { error: 'Node config does not exist.' } }); + res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: 0, sso: {}, nodes: [] }); + } + else { + const errMsg = 'Get Node Config Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + } + else { + const nodeConfData = JSON.parse(data); + const sso = { rtlSSO: common.rtl_sso, logoutRedirectLink: common.logout_redirect_link }; + const enable2FA = !!common.rtl_secret2fa; + const allowPasswordUpdate = common.flg_allow_password_update; + const nodesArr = []; + if (common.nodes && common.nodes.length > 0) { + common.nodes.forEach((node, i) => { + const settings = {}; + settings.userPersona = node.user_persona ? node.user_persona : 'MERCHANT'; + settings.themeMode = (node.theme_mode) ? node.theme_mode : 'DAY'; + settings.themeColor = (node.theme_color) ? node.theme_color : 'PURPLE'; + settings.fiatConversion = (node.fiat_conversion) ? !!node.fiat_conversion : false; + settings.currencyUnit = node.currency_unit; + nodesArr.push({ + index: node.index, + lnNode: node.ln_node, + lnImplementation: node.ln_implementation, + settings: settings, + authentication: {} + }); + }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Initial RTL Configuration Received' }); + res.status(200).json({ defaultNodeIndex: nodeConfData.defaultNodeIndex, selectedNodeIndex: (req.session.selectedNode && req.session.selectedNode.index ? req.session.selectedNode.index : common.initSelectedNode.index), sso: sso, enable2FA: enable2FA, allowPasswordUpdate: allowPasswordUpdate, nodes: nodesArr }); + } + }); +}; +export const getRTLConfig = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting RTL Configuration..' }); + const confFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + fs.readFile(confFile, 'utf8', (errRes, data) => { + if (errRes) { + if (errRes.code === 'ENOENT') { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'RTLConf', msg: 'Node config does not exist!', error: { error: 'Node config does not exist.' } }); + res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: 0, sso: {}, nodes: [] }); + } + else { + const errMsg = 'Get Node Config Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + } + else { + const nodeConfData = JSON.parse(data); + const sso = { rtlSSO: common.rtl_sso, logoutRedirectLink: common.logout_redirect_link }; + const enable2FA = !!common.rtl_secret2fa; + const allowPasswordUpdate = common.flg_allow_password_update; + const nodesArr = []; + if (common.nodes && common.nodes.length > 0) { + common.nodes.forEach((node, i) => { + const authentication = {}; + authentication.configPath = (node.config_path) ? node.config_path : ''; + authentication.swapMacaroonPath = (node.swap_macaroon_path) ? node.swap_macaroon_path : ''; + authentication.boltzMacaroonPath = (node.boltz_macaroon_path) ? node.boltz_macaroon_path : ''; + const settings = {}; + settings.userPersona = node.user_persona ? node.user_persona : 'MERCHANT'; + settings.themeMode = (node.theme_mode) ? node.theme_mode : 'DAY'; + settings.themeColor = (node.theme_color) ? node.theme_color : 'PURPLE'; + settings.fiatConversion = (node.fiat_conversion) ? !!node.fiat_conversion : false; + settings.bitcoindConfigPath = node.bitcoind_config_path; + settings.logLevel = node.log_level ? node.log_level : 'ERROR'; + settings.lnServerUrl = node.ln_server_url; + settings.swapServerUrl = node.swap_server_url; + settings.boltzServerUrl = node.boltz_server_url; + settings.enableOffers = node.enable_offers; + settings.channelBackupPath = node.channel_backup_path; + settings.currencyUnit = node.currency_unit; + nodesArr.push({ + index: node.index, + lnNode: node.ln_node, + lnImplementation: node.ln_implementation, + settings: settings, + authentication: authentication + }); + }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'RTL Configuration Received' }); + res.status(200).json({ defaultNodeIndex: nodeConfData.defaultNodeIndex, selectedNodeIndex: (req.session.selectedNode && req.session.selectedNode.index ? req.session.selectedNode.index : common.initSelectedNode.index), sso: sso, enable2FA: enable2FA, allowPasswordUpdate: allowPasswordUpdate, nodes: nodesArr }); + } + }); +}; +export const updateUISettings = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating UI Settings..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + const node = config.nodes.find((node) => (node.index === req.session.selectedNode.index)); + if (node && node.Settings) { + node.Settings.userPersona = req.body.updatedSettings.userPersona; + node.Settings.themeMode = req.body.updatedSettings.themeMode; + node.Settings.themeColor = req.body.updatedSettings.themeColor; + node.Settings.fiatConversion = req.body.updatedSettings.fiatConversion; + if (req.body.updatedSettings.fiatConversion) { + node.Settings.currencyUnit = req.body.updatedSettings.currencyUnit ? req.body.updatedSettings.currencyUnit : 'USD'; + } + else { + delete node.Settings.currencyUnit; + } + const selectedNode = common.findNode(req.session.selectedNode.index); + selectedNode.user_persona = req.body.updatedSettings.userPersona; + selectedNode.theme_mode = req.body.updatedSettings.themeMode; + selectedNode.theme_color = req.body.updatedSettings.themeColor; + selectedNode.fiat_conversion = req.body.updatedSettings.fiatConversion; + if (req.body.updatedSettings.fiatConversion) { + selectedNode.currency_unit = req.body.updatedSettings.currencyUnit ? req.body.updatedSettings.currencyUnit : 'USD'; + } + else { + delete selectedNode.currency_unit; + } + common.replaceNode(req, selectedNode); + } + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Node Settings Succesful!' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'UI Settings Updated' }); + res.status(201).json({ message: 'Node Settings Updated Successfully' }); + } + catch (errRes) { + const errMsg = 'Update Node Settings Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; +export const update2FASettings = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating 2FA Settings..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + config.secret2fa = req.body.secret2fa; + const message = req.body.secret2fa.trim() === '' ? 'Two factor authentication disabled sucessfully.' : 'Two factor authentication enabled sucessfully.'; + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + common.rtl_secret2fa = config.secret2fa; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: message }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: '2FA Updated' }); + res.status(201).json({ message: message }); + } + catch (errRes) { + const errMsg = 'Update 2FA Settings Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; +export const updateDefaultNode = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating Default Node..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + config.defaultNodeIndex = req.body.defaultNodeIndex; + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Default Node Succesful!' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Default Node Updated' }); + res.status(201).json({ message: 'Default Node Updated Successfully' }); + } + catch (errRes) { + const errMsg = 'Update Default Node Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; +export const getConfig = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Reading Configuration File..' }); + let confFile = ''; + let fileFormat = 'INI'; + switch (req.params.nodeType) { + case 'ln': + confFile = req.session.selectedNode.config_path; + break; + case 'bitcoind': + confFile = req.session.selectedNode.bitcoind_config_path; + break; + case 'rtl': + fileFormat = 'JSON'; + confFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + break; + default: + confFile = ''; + break; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: '[Node Type, File Path]', data: [req.params.nodeType, confFile] }); + fs.readFile(confFile, 'utf8', (errRes, data) => { + if (errRes) { + const errMsg = 'Reading Config Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + else { + let jsonConfig = {}; + if (fileFormat === 'JSON') { + jsonConfig = JSON.parse(data); + } + else { + fileFormat = 'INI'; + jsonConfig = ini.parse(data); + if (req.session.selectedNode.ln_implementation === 'ECL' && !jsonConfig['eclair.api.password']) { + fileFormat = 'HOCON'; + jsonConfig = parseHocon(data); + } + } + jsonConfig = maskPasswords(jsonConfig); + const responseJSON = (fileFormat === 'JSON') ? jsonConfig : ini.stringify(jsonConfig); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Configuration Data Received' }); + res.status(200).json({ format: fileFormat, data: responseJSON }); + } + }); +}; +export const getFile = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting File..' }); + const file = req.query.path ? req.query.path : (req.session.selectedNode.channel_backup_path + sep + 'channel-' + req.query.channel.replace(':', '-') + '.bak'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: '[Channel Point, File Path]', data: [req.query.channel, file] }); + fs.readFile(file, 'utf8', (errRes, data) => { + if (errRes) { + if (errRes.code && errRes.code === 'ENOENT') { + errRes.code = 'File Not Found!'; + } + const errMsg = 'Reading File Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'File Data', data: data }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'File Data Received' }); + res.status(200).json(data); + } + }); +}; +export const getCurrencyRates = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting Currency Rates..' }); + options.url = 'https://blockchain.info/ticker'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Currency Rates Received' }); + res.status(200).json(JSON.parse(body)); + }).catch((errRes) => { + const errMsg = 'Get Rates Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + }); +}; +export const updateSSO = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating SSO Settings..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + delete config.SSO; + config.SSO = req.body.SSO; + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating SSO Succesful!' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'SSO Setting Updated' }); + res.status(201).json({ message: 'SSO Updated Successfully' }); + } + catch (errRes) { + const errMsg = 'Update SSO Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; +export const updateServiceSettings = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating Service Settings..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + const selectedNode = common.findNode(req.session.selectedNode.index); + config.nodes.find((node) => { + if (node.index === req.session.selectedNode.index) { + switch (req.body.service) { + case 'LOOP': + if (req.body.settings.enable) { + node.Settings.swapServerUrl = req.body.settings.serverUrl; + node.Authentication.swapMacaroonPath = req.body.settings.macaroonPath; + selectedNode.swap_server_url = req.body.settings.serverUrl; + selectedNode.swap_macaroon_path = req.body.settings.macaroonPath; + } + else { + delete node.Settings.swapServerUrl; + delete node.Authentication.swapMacaroonPath; + delete selectedNode.swap_server_url; + delete selectedNode.swap_macaroon_path; + } + break; + case 'BOLTZ': + if (req.body.settings.enable) { + node.Settings.boltzServerUrl = req.body.settings.serverUrl; + node.Authentication.boltzMacaroonPath = req.body.settings.macaroonPath; + selectedNode.boltz_server_url = req.body.settings.serverUrl; + selectedNode.boltz_macaroon_path = req.body.settings.macaroonPath; + } + else { + delete node.Settings.boltzServerUrl; + delete node.Authentication.boltzMacaroonPath; + delete selectedNode.boltz_server_url; + delete selectedNode.boltz_macaroon_path; + } + break; + case 'OFFERS': + node.Settings.enableOffers = req.body.settings.enableOffers; + selectedNode.enable_offers = req.body.settings.enableOffers; + break; + default: + break; + } + common.replaceNode(req, selectedNode); + } + return node; + }); + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Service Settings Succesful!' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Service Settings Updated' }); + res.status(201).json({ message: 'Service Settings Updated Successfully' }); + } + catch (errRes) { + const errMsg = 'Update Service Settings Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; +export const maskPasswords = (obj) => { + const keys = Object.keys(obj); + const length = keys.length; + if (length !== 0) { + for (let i = 0; i < length; i++) { + if (typeof obj[keys[i]] === 'object') { + keys[keys[i]] = maskPasswords(obj[keys[i]]); + } + if (typeof keys[i] === 'string' && + (keys[i].toLowerCase().includes('password') || keys[i].toLowerCase().includes('multipass') || + keys[i].toLowerCase().includes('rpcpass') || keys[i].toLowerCase().includes('rpcpassword'))) { + obj[keys[i]] = '********************'; + } + } + } + return obj; +}; diff --git a/backend/controllers/shared/authenticate.js b/backend/controllers/shared/authenticate.js new file mode 100644 index 00000000..6955a660 --- /dev/null +++ b/backend/controllers/shared/authenticate.js @@ -0,0 +1,132 @@ +import jwt from 'jsonwebtoken'; +import * as otplib from 'otplib'; +import * as crypto from 'crypto'; +import { Database } from '../../utils/database.js'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +const logger = Logger; +const common = Common; +const ONE_MINUTE = 60000; +const LOCKING_PERIOD = 30 * ONE_MINUTE; // HALF AN HOUR +const ALLOWED_LOGIN_ATTEMPTS = 5; +const failedLoginAttempts = {}; +const databaseService = Database; +const loginInterval = setInterval(() => { + for (const ip in failedLoginAttempts) { + if (new Date().getTime() > (failedLoginAttempts[ip].lastTried + LOCKING_PERIOD)) { + delete failedLoginAttempts[ip]; + clearInterval(loginInterval); + } + } +}, LOCKING_PERIOD); +export const getFailedInfo = (reqIP, currentTime) => { + let failed = { count: 0, lastTried: currentTime }; + if ((!failedLoginAttempts[reqIP]) || (currentTime > (failed.lastTried + LOCKING_PERIOD))) { + failed = { count: 0, lastTried: currentTime }; + failedLoginAttempts[reqIP] = failed; + } + else { + failed = failedLoginAttempts[reqIP]; + } + return failed; +}; +const handleMultipleFailedAttemptsError = (failed, currentTime, errMsg) => { + if (failed.count >= ALLOWED_LOGIN_ATTEMPTS && (currentTime <= (failed.lastTried + LOCKING_PERIOD))) { + return { + message: 'Multiple Failed Login Attempts!', + error: 'Application locked for ' + (LOCKING_PERIOD / ONE_MINUTE) + ' minutes due to multiple failed attempts!\nTry again after ' + common.convertTimestampToTime((failed.lastTried + LOCKING_PERIOD) / 1000) + '!' + }; + } + else { + return { + message: 'Authentication Failed!', + error: errMsg + '\nApplication will be locked after ' + (ALLOWED_LOGIN_ATTEMPTS - failed.count) + ' more unsuccessful attempts!' + }; + } +}; +export const verifyToken = (twoFAToken) => !!(common.rtl_secret2fa && common.rtl_secret2fa !== '' && otplib.authenticator.check(twoFAToken, common.rtl_secret2fa)); +export const authenticateUser = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'Authenticating User..' }); + if (+common.rtl_sso) { + if (req.body.authenticateWith === 'JWT' && jwt.verify(req.body.authenticationValue, common.secret_key)) { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated' }); + res.status(406).json({ message: 'SSO Authentication Error', error: 'Login with Password is not allowed with SSO.' }); + } + else if (req.body.authenticateWith === 'PASSWORD') { + const cookieValue = common.readCookie(); + if (cookieValue.trim().length >= 32 && crypto.timingSafeEqual(Buffer.from(crypto.createHash('sha256').update(cookieValue).digest('hex'), 'utf-8'), Buffer.from(req.body.authenticationValue, 'utf-8'))) { + common.refreshCookie(); + if (!req.session.selectedNode) { + req.session.selectedNode = common.initSelectedNode; + } + const token = jwt.sign({ user: 'SSO_USER' }, common.secret_key); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated.' }); + res.status(200).json({ token: token }); + } + else { + const errMsg = 'SSO Authentication Failed! Access key too short or does not match.'; + const err = common.handleError({ statusCode: 406, message: 'SSO Authentication Error', error: errMsg }, 'Authenticate', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + } + else { + const currentTime = new Date().getTime(); + const reqIP = common.getRequestIP(req); + const failed = getFailedInfo(reqIP, currentTime); + const password = req.body.authenticationValue; + if (common.rtl_pass === password && failed.count < ALLOWED_LOGIN_ATTEMPTS) { + if (req.body.twoFAToken && req.body.twoFAToken !== '') { + if (!verifyToken(req.body.twoFAToken)) { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Token! Failed IP ' + reqIP, error: { error: 'Invalid token.' } }); + failed.count = failed.count + 1; + failed.lastTried = currentTime; + return res.status(401).json(handleMultipleFailedAttemptsError(failed, currentTime, 'Invalid 2FA Token!')); + } + } + if (!req.session.selectedNode) { + req.session.selectedNode = common.initSelectedNode; + } + delete failedLoginAttempts[reqIP]; + const token = jwt.sign({ user: 'NODE_USER' }, common.secret_key); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated' }); + res.status(200).json({ token: token }); + } + else { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Password! Failed IP ' + reqIP, error: { error: 'Invalid password.' } }); + failed.count = common.rtl_pass !== password ? (failed.count + 1) : failed.count; + failed.lastTried = common.rtl_pass !== password ? currentTime : failed.lastTried; + return res.status(401).json(handleMultipleFailedAttemptsError(failed, currentTime, 'Invalid Password!')); + } + } +}; +export const resetPassword = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'Resetting Password..' }); + if (+common.rtl_sso) { + const errMsg = 'Password cannot be reset for SSO authentication'; + const err = common.handleError({ statusCode: 401, message: 'Password Reset Error', error: errMsg }, 'Authenticate', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + else { + const currPassword = req.body.currPassword; + if (common.rtl_pass === currPassword) { + common.rtl_pass = common.replacePasswordWithHash(req.body.newPassword); + const token = jwt.sign({ user: 'NODE_USER' }, common.secret_key); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'Password Reset Successful' }); + res.status(200).json({ token: token }); + } + else { + const errMsg = 'Incorrect Old Password'; + const err = common.handleError({ statusCode: 401, message: 'Password Reset Error', error: errMsg }, 'Authenticate', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } +}; +export const logoutUser = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'Logged out' }); + if (req.session.selectedNode && req.session.selectedNode.index) { + databaseService.unloadDatabase(+req.session.selectedNode.index); + } + req.session.destroy(); + res.status(200).json({ loggedout: true }); +}; diff --git a/backend/controllers/shared/boltz.js b/backend/controllers/shared/boltz.js new file mode 100644 index 00000000..8b4b813b --- /dev/null +++ b/backend/controllers/shared/boltz.js @@ -0,0 +1,171 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const getInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Getting Boltz Information..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Get Info Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/info'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Boltz Information Received' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Info', data: body }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getServiceInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Getting Service Information..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Get Service Information Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/serviceinfo'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Service Information Received' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Service Info', data: body }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Get Service Information Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const listSwaps = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Getting List Swaps..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'List Swaps Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/listswaps'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz List Swaps Info', data: body }); + if (body && body.swaps && body.swaps.length && body.swaps.length > 0) { + body.swaps = body.swaps.reverse(); + } + if (body && body.reverseSwaps && body.reverseSwaps.length && body.reverseSwaps.length > 0) { + body.reverseSwaps = body.reverseSwaps.reverse(); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'List Swaps Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'List Swaps Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const getSwapInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Getting Swap..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Get Swap Information Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/swap/' + req.params.swapId; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Swap Info', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Swap Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Swap Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const createSwap = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Creating Swap..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Create Swap Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/createswap'; + options.body = { amount: req.body.amount }; + if (req.body.address !== '') { + options.body.address = req.body.address; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Body', data: options.body }); + request.post(options).then(createSwapRes => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Response', data: createSwapRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Swap Created' }); + res.status(201).json(createSwapRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Create Swap Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const createReverseSwap = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Creating Reverse Swap..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Create Reverse Swap Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/createreverseswap'; + options.body = { amount: req.body.amount }; + if (req.body.address !== '') { + options.body.address = req.body.address; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Body', data: options.body }); + request.post(options).then(createReverseSwapRes => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Response', data: createReverseSwapRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Reverse Swap Created' }); + res.status(201).json(createReverseSwapRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Create Reverse Swap Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const createChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Creating Boltz Channel..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Create Channel Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/createchannel'; + options.body = { amount: req.body.amount }; + if (req.body.address !== '') { + options.body.address = req.body.address; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Body', data: options.body }); + request.post(options).then(createChannelRes => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Response', data: createChannelRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Boltz Channel Created' }); + res.status(201).json(createChannelRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Create Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const deposit = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Start..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Deposit Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/deposit'; + request.post(options).then(depositRes => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Deposit Response', data: depositRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Finished' }); + res.status(201).json(depositRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Deposit Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/controllers/shared/loop.js b/backend/controllers/shared/loop.js new file mode 100644 index 00000000..002e0d2b --- /dev/null +++ b/backend/controllers/shared/loop.js @@ -0,0 +1,255 @@ +import request from 'request-promise'; +import { Logger } from '../../utils/logger.js'; +import { Common } from '../../utils/common.js'; +let options = null; +const logger = Logger; +const common = Common; +export const loopOut = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Looping Out..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop Out Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/out'; + options.body = { + amt: req.body.amount, + sweep_conf_target: req.body.targetConf, + max_swap_routing_fee: req.body.swapRoutingFee, + max_miner_fee: req.body.minerFee, + max_prepay_routing_fee: req.body.prepayRoutingFee, + max_prepay_amt: req.body.prepayAmt, + max_swap_fee: req.body.swapFee, + swap_publication_deadline: req.body.swapPublicationDeadline, + initiator: 'RTL' + }; + if (req.body.chanId !== '') { + options.body['loop_out_channel'] = req.body.chanId; + } + if (req.body.destAddress !== '') { + options.body['dest'] = req.body.destAddress; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Body', data: options.body }); + request.post(options).then((loopOutRes) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out', data: loopOutRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop Out Finished' }); + res.status(201).json(loopOutRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const loopOutTerms = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop Out Terms Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/out/terms'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Terms Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const loopOutQuote = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Quotes..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop Out Quotes Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/out/quote/' + req.params.amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote URL', data: options.url }); + request(options).then((quoteRes) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote', data: quoteRes }); + quoteRes.amount = +req.params.amount; + quoteRes.swap_payment_dest = quoteRes.swap_payment_dest ? Buffer.from(quoteRes.swap_payment_dest, 'base64').toString('hex') : ''; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop Out Quotes Received' }); + res.status(200).json(quoteRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const loopOutTermsAndQuotes = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms & Quotes..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop Out Terms & Quotes Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/out/terms'; + request(options).then((terms) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms', data: terms }); + const options1 = common.getSwapServerOptions(req); + const options2 = common.getSwapServerOptions(req); + options1.url = options1.url + '/v1/loop/out/quote/' + terms.min_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + options2.url = options2.url + '/v1/loop/out/quote/' + terms.max_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Min Quote Options', data: options1 }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Max Quote Options', data: options2 }); + return Promise.all([request(options1), request(options2)]).then((values) => { + values[0].amount = +terms.min_swap_amount; + values[1].amount = +terms.max_swap_amount; + values[0].swap_payment_dest = values[0].swap_payment_dest ? Buffer.from(values[0].swap_payment_dest, 'base64').toString('hex') : ''; + values[1].swap_payment_dest = values[1].swap_payment_dest ? Buffer.from(values[1].swap_payment_dest, 'base64').toString('hex') : ''; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 1', data: values[0] }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 2', data: values[1] }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms & Quotes Received' }); + res.status(200).json(values); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Terms & Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Terms & Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const loopIn = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Looping In..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop In Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/in'; + options.body = { + amt: req.body.amount, + max_swap_fee: req.body.swapFee, + max_miner_fee: req.body.minerFee, + initiator: 'RTL' + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Body', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop In Finished' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const loopInTerms = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop In Terms Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/in/terms'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Terms Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const loopInQuote = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Quotes..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop In Quotes Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/in/quote/' + req.params.amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote Options', data: options.url }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote', data: body }); + body.amount = +req.params.amount; + body.swap_payment_dest = body.swap_payment_dest ? Buffer.from(body.swap_payment_dest, 'base64').toString('hex') : ''; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop In Qoutes Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Quote Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const loopInTermsAndQuotes = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms & Quotes..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop In Terms & Quotes Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/in/terms'; + request(options).then((terms) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms', data: terms }); + const options1 = common.getSwapServerOptions(req); + const options2 = common.getSwapServerOptions(req); + options1.url = options1.url + '/v1/loop/in/quote/' + terms.min_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + options2.url = options2.url + '/v1/loop/in/quote/' + terms.max_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Min Quote Options', data: options1 }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Max Quote Options', data: options2 }); + return Promise.all([request(options1), request(options2)]).then((values) => { + values[0].amount = +terms.min_swap_amount; + values[1].amount = +terms.max_swap_amount; + values[0].swap_payment_dest = values[0].swap_payment_dest ? Buffer.from(values[0].swap_payment_dest, 'base64').toString('hex') : ''; + values[1].swap_payment_dest = values[1].swap_payment_dest ? Buffer.from(values[1].swap_payment_dest, 'base64').toString('hex') : ''; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 1', data: values[0] }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 2', data: values[1] }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms & Qoutes Received' }); + res.status(200).json(values); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Terms & Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Terms & Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const swaps = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting List Swaps..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'List Swaps Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/swaps'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps', data: body }); + if (body.swaps && body.swaps.length > 0) { + body.swaps = common.sortDescByKey(body.swaps, 'initiation_time'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps after Sort', data: body }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'List Swaps Received' }); + res.status(200).json(body.swaps); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'List Swaps Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; +export const swap = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Swap Information..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Get Swap Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/swap/' + req.params.id; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swap', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Swap Information Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Get Swap Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/backend/models/config.model.js b/backend/models/config.model.js new file mode 100644 index 00000000..3191329f --- /dev/null +++ b/backend/models/config.model.js @@ -0,0 +1,62 @@ +export class CommonSelectedNode { + constructor(options, ln_server_url, macaroon_path, ln_api_password, swap_server_url, boltz_server_url, config_path, rtl_conf_file_path, swap_macaroon_path, boltz_macaroon_path, bitcoind_config_path, channel_backup_path, log_level, log_file, index, ln_node, ln_implementation, user_persona, theme_mode, theme_color, fiat_conversion, currency_unit, ln_version, api_version, enable_offers) { + this.options = options; + this.ln_server_url = ln_server_url; + this.macaroon_path = macaroon_path; + this.ln_api_password = ln_api_password; + this.swap_server_url = swap_server_url; + this.boltz_server_url = boltz_server_url; + this.config_path = config_path; + this.rtl_conf_file_path = rtl_conf_file_path; + this.swap_macaroon_path = swap_macaroon_path; + this.boltz_macaroon_path = boltz_macaroon_path; + this.bitcoind_config_path = bitcoind_config_path; + this.channel_backup_path = channel_backup_path; + this.log_level = log_level; + this.log_file = log_file; + this.index = index; + this.ln_node = ln_node; + this.ln_implementation = ln_implementation; + this.user_persona = user_persona; + this.theme_mode = theme_mode; + this.theme_color = theme_color; + this.fiat_conversion = fiat_conversion; + this.currency_unit = currency_unit; + this.ln_version = ln_version; + this.api_version = api_version; + this.enable_offers = enable_offers; + } +} +export class AuthenticationConfiguration { + constructor(configPath, swapMacaroonPath, boltzMacaroonPath) { + this.configPath = configPath; + this.swapMacaroonPath = swapMacaroonPath; + this.boltzMacaroonPath = boltzMacaroonPath; + } +} +export class NodeSettingsConfiguration { + constructor(userPersona, themeMode, themeColor, fiatConversion, currencyUnit, bitcoindConfigPath, logLevel, lnServerUrl, swapServerUrl, boltzServerUrl, channelBackupPath, enableOffers) { + this.userPersona = userPersona; + this.themeMode = themeMode; + this.themeColor = themeColor; + this.fiatConversion = fiatConversion; + this.currencyUnit = currencyUnit; + this.bitcoindConfigPath = bitcoindConfigPath; + this.logLevel = logLevel; + this.lnServerUrl = lnServerUrl; + this.swapServerUrl = swapServerUrl; + this.boltzServerUrl = boltzServerUrl; + this.channelBackupPath = channelBackupPath; + this.enableOffers = enableOffers; + } +} +export class LogJSONObj { + constructor(level, msg, data, error, fileName, selectedNode) { + this.level = level; + this.msg = msg; + this.data = data; + this.error = error; + this.fileName = fileName; + this.selectedNode = selectedNode; + } +} diff --git a/backend/models/database.model.js b/backend/models/database.model.js new file mode 100644 index 00000000..0ae353ca --- /dev/null +++ b/backend/models/database.model.js @@ -0,0 +1,38 @@ +export var CollectionsEnum; +(function (CollectionsEnum) { + CollectionsEnum["OFFERS"] = "Offers"; +})(CollectionsEnum || (CollectionsEnum = {})); +export var OfferFieldsEnum; +(function (OfferFieldsEnum) { + OfferFieldsEnum["BOLT12"] = "bolt12"; + OfferFieldsEnum["AMOUNTMSAT"] = "amountmSat"; + OfferFieldsEnum["TITLE"] = "title"; + OfferFieldsEnum["VENDOR"] = "vendor"; + OfferFieldsEnum["DESCRIPTION"] = "description"; +})(OfferFieldsEnum || (OfferFieldsEnum = {})); +export const CollectionFieldsEnum = Object.assign({}, OfferFieldsEnum); +export class Offer { + constructor(bolt12, amountmSat, title, vendor, description, lastUpdatedAt) { + this.bolt12 = bolt12; + this.amountmSat = amountmSat; + this.title = title; + this.vendor = vendor; + this.description = description; + this.lastUpdatedAt = lastUpdatedAt; + } +} +export const validateOffer = (documentToValidate) => { + if (!documentToValidate.hasOwnProperty(CollectionFieldsEnum.BOLT12)) { + return ({ isValid: false, error: CollectionFieldsEnum.BOLT12 + 'is mandatory.' }); + } + if (!documentToValidate.hasOwnProperty(CollectionFieldsEnum.AMOUNTMSAT)) { + return ({ isValid: false, error: CollectionFieldsEnum.AMOUNTMSAT + 'is mandatory.' }); + } + if (!documentToValidate.hasOwnProperty(CollectionFieldsEnum.TITLE)) { + return ({ isValid: false, error: CollectionFieldsEnum.TITLE + 'is mandatory.' }); + } + if ((typeof documentToValidate[CollectionFieldsEnum.AMOUNTMSAT] !== 'number')) { + return ({ isValid: false, error: CollectionFieldsEnum.AMOUNTMSAT + 'should be a number.' }); + } + return ({ isValid: true }); +}; diff --git a/backend/routes/c-lightning/balance.js b/backend/routes/c-lightning/balance.js new file mode 100644 index 00000000..146b5566 --- /dev/null +++ b/backend/routes/c-lightning/balance.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getBalance } from '../../controllers/c-lightning/balance.js'; +const router = Router(); +router.get('/', isAuthenticated, getBalance); +export default router; diff --git a/backend/routes/c-lightning/channels.js b/backend/routes/c-lightning/channels.js new file mode 100644 index 00000000..7398e17e --- /dev/null +++ b/backend/routes/c-lightning/channels.js @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listChannels, openChannel, setChannelFee, closeChannel, getLocalRemoteBalance, listForwards } from '../../controllers/c-lightning/channels.js'; +const router = Router(); +router.get('/listChannels', isAuthenticated, listChannels); +router.post('/', isAuthenticated, openChannel); +router.post('/setChannelFee', isAuthenticated, setChannelFee); +router.delete('/:channelId', isAuthenticated, closeChannel); +router.get('/localremotebalance', isAuthenticated, getLocalRemoteBalance); +router.get('/listForwards', isAuthenticated, listForwards); +export default router; diff --git a/backend/routes/c-lightning/fees.js b/backend/routes/c-lightning/fees.js new file mode 100644 index 00000000..7898d8c5 --- /dev/null +++ b/backend/routes/c-lightning/fees.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getFees } from '../../controllers/c-lightning/fees.js'; +const router = Router(); +router.get('/', isAuthenticated, getFees); +export default router; diff --git a/backend/routes/c-lightning/getInfo.js b/backend/routes/c-lightning/getInfo.js new file mode 100644 index 00000000..f2fa5257 --- /dev/null +++ b/backend/routes/c-lightning/getInfo.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getInfo } from '../../controllers/c-lightning/getInfo.js'; +const router = Router(); +router.get('/', isAuthenticated, getInfo); +export default router; diff --git a/backend/routes/c-lightning/index.js b/backend/routes/c-lightning/index.js new file mode 100644 index 00000000..eb5fd03d --- /dev/null +++ b/backend/routes/c-lightning/index.js @@ -0,0 +1,31 @@ +import exprs from 'express'; +const { Router } = exprs; +import infoCLRoutes from './getInfo.js'; +import feesCLRoutes from './fees.js'; +import balanceCLRoutes from './balance.js'; +import channelsCLRoutes from './channels.js'; +import invoicesCLRoutes from './invoices.js'; +import onChainCLRoutes from './onchain.js'; +import paymentsCLRoutes from './payments.js'; +import peersCLRoutes from './peers.js'; +import networkCLRoutes from './network.js'; +import messageCLRoutes from './message.js'; +import offersCLRoutes from './offers.js'; +const router = Router(); +const clRoutes = [ + { path: '/getinfo', route: infoCLRoutes }, + { path: '/fees', route: feesCLRoutes }, + { path: '/balance', route: balanceCLRoutes }, + { path: '/channels', route: channelsCLRoutes }, + { path: '/invoices', route: invoicesCLRoutes }, + { path: '/onchain', route: onChainCLRoutes }, + { path: '/payments', route: paymentsCLRoutes }, + { path: '/peers', route: peersCLRoutes }, + { path: '/network', route: networkCLRoutes }, + { path: '/message', route: messageCLRoutes }, + { path: '/offers', route: offersCLRoutes } +]; +clRoutes.forEach((route) => { + router.use(route.path, route.route); +}); +export default router; diff --git a/backend/routes/c-lightning/invoices.js b/backend/routes/c-lightning/invoices.js new file mode 100644 index 00000000..3f187278 --- /dev/null +++ b/backend/routes/c-lightning/invoices.js @@ -0,0 +1,9 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listInvoices, addInvoice, deleteExpiredInvoice } from '../../controllers/c-lightning/invoices.js'; +const router = Router(); +router.get('/', isAuthenticated, listInvoices); +router.post('/', isAuthenticated, addInvoice); +router.delete('/', isAuthenticated, deleteExpiredInvoice); +export default router; diff --git a/backend/routes/c-lightning/message.js b/backend/routes/c-lightning/message.js new file mode 100644 index 00000000..11ada94f --- /dev/null +++ b/backend/routes/c-lightning/message.js @@ -0,0 +1,8 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { signMessage, verifyMessage } from '../../controllers/c-lightning/message.js'; +const router = Router(); +router.post('/sign', isAuthenticated, signMessage); +router.post('/verify', isAuthenticated, verifyMessage); +export default router; diff --git a/backend/routes/c-lightning/network.js b/backend/routes/c-lightning/network.js new file mode 100644 index 00000000..bc5ad543 --- /dev/null +++ b/backend/routes/c-lightning/network.js @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getRoute, listNode, listChannel, feeRates } from '../../controllers/c-lightning/network.js'; +const router = Router(); +router.get('/getRoute/:destPubkey/:amount', isAuthenticated, getRoute); +router.get('/listNode/:id', isAuthenticated, listNode); +router.get('/listChannel/:channelShortId', isAuthenticated, listChannel); +router.get('/feeRates/:feeRateStyle', isAuthenticated, feeRates); +export default router; diff --git a/backend/routes/c-lightning/offers.js b/backend/routes/c-lightning/offers.js new file mode 100644 index 00000000..5897b6af --- /dev/null +++ b/backend/routes/c-lightning/offers.js @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listOfferBookmarks, deleteOfferBookmark, listOffers, disableOffer, createOffer, fetchOfferInvoice } from '../../controllers/c-lightning/offers.js'; +const router = Router(); +router.get('/offerbookmarks', isAuthenticated, listOfferBookmarks); +router.delete('/offerbookmark/:offerStr', isAuthenticated, deleteOfferBookmark); +router.get('/', isAuthenticated, listOffers); +router.post('/', isAuthenticated, createOffer); +router.post('/fetchOfferInvoice', isAuthenticated, fetchOfferInvoice); +router.delete('/:offerID', isAuthenticated, disableOffer); +export default router; diff --git a/backend/routes/c-lightning/onchain.js b/backend/routes/c-lightning/onchain.js new file mode 100644 index 00000000..1b28ebb5 --- /dev/null +++ b/backend/routes/c-lightning/onchain.js @@ -0,0 +1,9 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getNewAddress, onChainWithdraw, getUTXOs } from '../../controllers/c-lightning/onchain.js'; +const router = Router(); +router.get('/', isAuthenticated, getNewAddress); +router.post('/', isAuthenticated, onChainWithdraw); +router.get('/utxos/', isAuthenticated, getUTXOs); +export default router; diff --git a/backend/routes/c-lightning/payments.js b/backend/routes/c-lightning/payments.js new file mode 100644 index 00000000..1547c8fc --- /dev/null +++ b/backend/routes/c-lightning/payments.js @@ -0,0 +1,9 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listPayments, decodePayment, postPayment } from '../../controllers/c-lightning/payments.js'; +const router = Router(); +router.get('/', isAuthenticated, listPayments); +router.get('/decode/:payReq', isAuthenticated, decodePayment); +router.post('/', isAuthenticated, postPayment); +export default router; diff --git a/backend/routes/c-lightning/peers.js b/backend/routes/c-lightning/peers.js new file mode 100644 index 00000000..93c3da88 --- /dev/null +++ b/backend/routes/c-lightning/peers.js @@ -0,0 +1,9 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getPeers, postPeer, deletePeer } from '../../controllers/c-lightning/peers.js'; +const router = Router(); +router.get('/', isAuthenticated, getPeers); +router.post('/', isAuthenticated, postPeer); +router.delete('/:peerId', isAuthenticated, deletePeer); +export default router; diff --git a/backend/routes/eclair/channels.js b/backend/routes/eclair/channels.js new file mode 100644 index 00000000..1148b457 --- /dev/null +++ b/backend/routes/eclair/channels.js @@ -0,0 +1,11 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getChannels, getChannelStats, openChannel, updateChannelRelayFee, closeChannel } from '../../controllers/eclair/channels.js'; +const router = Router(); +router.get('/', isAuthenticated, getChannels); +router.get('/stats', isAuthenticated, getChannelStats); +router.post('/', isAuthenticated, openChannel); +router.post('/updateRelayFee', isAuthenticated, updateChannelRelayFee); +router.delete('/', isAuthenticated, closeChannel); +export default router; diff --git a/backend/routes/eclair/fees.js b/backend/routes/eclair/fees.js new file mode 100644 index 00000000..f28e1c8f --- /dev/null +++ b/backend/routes/eclair/fees.js @@ -0,0 +1,8 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getFees, getPayments } from '../../controllers/eclair/fees.js'; +const router = Router(); +router.get('/fees', isAuthenticated, getFees); +router.get('/payments', isAuthenticated, getPayments); +export default router; diff --git a/backend/routes/eclair/getInfo.js b/backend/routes/eclair/getInfo.js new file mode 100644 index 00000000..4bfa4b68 --- /dev/null +++ b/backend/routes/eclair/getInfo.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getInfo } from '../../controllers/eclair/getInfo.js'; +const router = Router(); +router.get('/', isAuthenticated, getInfo); +export default router; diff --git a/backend/routes/eclair/index.js b/backend/routes/eclair/index.js new file mode 100644 index 00000000..104ec9e9 --- /dev/null +++ b/backend/routes/eclair/index.js @@ -0,0 +1,25 @@ +import exprs from 'express'; +const { Router } = exprs; +import infoECLRoutes from './getInfo.js'; +import feesECLRoutes from './fees.js'; +import channelsECLRoutes from './channels.js'; +import onChainECLRoutes from './onchain.js'; +import peersECLRoutes from './peers.js'; +import invoicesECLRoutes from './invoices.js'; +import paymentsECLRoutes from './payments.js'; +import networkECLRoutes from './network.js'; +const router = Router(); +const eclRoutes = [ + { path: '/getinfo', route: infoECLRoutes }, + { path: '/fees', route: feesECLRoutes }, + { path: '/channels', route: channelsECLRoutes }, + { path: '/onchain', route: onChainECLRoutes }, + { path: '/peers', route: peersECLRoutes }, + { path: '/invoices', route: invoicesECLRoutes }, + { path: '/payments', route: paymentsECLRoutes }, + { path: '/network', route: networkECLRoutes } +]; +eclRoutes.forEach((route) => { + router.use(route.path, route.route); +}); +export default router; diff --git a/backend/routes/eclair/invoices.js b/backend/routes/eclair/invoices.js new file mode 100644 index 00000000..06dddd4c --- /dev/null +++ b/backend/routes/eclair/invoices.js @@ -0,0 +1,9 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listInvoices, getInvoice, createInvoice } from '../../controllers/eclair/invoices.js'; +const router = Router(); +router.get('/', isAuthenticated, listInvoices); +router.get('/:paymentHash', isAuthenticated, getInvoice); +router.post('/', isAuthenticated, createInvoice); +export default router; diff --git a/backend/routes/eclair/network.js b/backend/routes/eclair/network.js new file mode 100644 index 00000000..71179aac --- /dev/null +++ b/backend/routes/eclair/network.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getNodes } from '../../controllers/eclair/network.js'; +const router = Router(); +router.get('/nodes/:id', isAuthenticated, getNodes); +export default router; diff --git a/backend/routes/eclair/onchain.js b/backend/routes/eclair/onchain.js new file mode 100644 index 00000000..b25ecc7f --- /dev/null +++ b/backend/routes/eclair/onchain.js @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getNewAddress, getBalance, getTransactions, sendFunds } from '../../controllers/eclair/onchain.js'; +const router = Router(); +router.get('/', isAuthenticated, getNewAddress); +router.get('/balance/', isAuthenticated, getBalance); +router.get('/transactions/', isAuthenticated, getTransactions); +router.post('/', isAuthenticated, sendFunds); +export default router; diff --git a/backend/routes/eclair/payments.js b/backend/routes/eclair/payments.js new file mode 100644 index 00000000..b60fda24 --- /dev/null +++ b/backend/routes/eclair/payments.js @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { queryPaymentRoute, decodePayment, getSentPaymentsInformation, postPayment } from '../../controllers/eclair/payments.js'; +const router = Router(); +router.get('/route/', isAuthenticated, queryPaymentRoute); +router.get('/decode/:invoice', isAuthenticated, decodePayment); +router.post('/getsentinfos', isAuthenticated, getSentPaymentsInformation); +router.post('/', isAuthenticated, postPayment); +export default router; diff --git a/backend/routes/eclair/peers.js b/backend/routes/eclair/peers.js new file mode 100644 index 00000000..3fe03191 --- /dev/null +++ b/backend/routes/eclair/peers.js @@ -0,0 +1,9 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getPeers, connectPeer, deletePeer } from '../../controllers/eclair/peers.js'; +const router = Router(); +router.get('/', isAuthenticated, getPeers); +router.post('/', isAuthenticated, connectPeer); +router.delete('/:nodeId', isAuthenticated, deletePeer); +export default router; diff --git a/backend/routes/lnd/balance.js b/backend/routes/lnd/balance.js new file mode 100644 index 00000000..929faae2 --- /dev/null +++ b/backend/routes/lnd/balance.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getBlockchainBalance } from '../../controllers/lnd/balance.js'; +const router = Router(); +router.get('/', isAuthenticated, getBlockchainBalance); +export default router; diff --git a/backend/routes/lnd/channels.js b/backend/routes/lnd/channels.js new file mode 100644 index 00000000..6bc1aa7f --- /dev/null +++ b/backend/routes/lnd/channels.js @@ -0,0 +1,13 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getAllChannels, getPendingChannels, getClosedChannels, postChannel, postTransactions, closeChannel, postChanPolicy } from '../../controllers/lnd/channels.js'; +const router = Router(); +router.get('/', isAuthenticated, getAllChannels); +router.get('/pending', isAuthenticated, getPendingChannels); +router.get('/closed', isAuthenticated, getClosedChannels); +router.post('/', isAuthenticated, postChannel); +router.post('/transactions', isAuthenticated, postTransactions); +router.delete('/:channelPoint', isAuthenticated, closeChannel); +router.post('/chanPolicy', isAuthenticated, postChanPolicy); +export default router; diff --git a/backend/routes/lnd/channelsBackup.js b/backend/routes/lnd/channelsBackup.js new file mode 100644 index 00000000..c5884bea --- /dev/null +++ b/backend/routes/lnd/channelsBackup.js @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getBackup, getRestoreList, postBackupVerify, postRestore } from '../../controllers/lnd/channelsBackup.js'; +const router = Router(); +router.get('/:channelPoint', isAuthenticated, getBackup); +router.get('/restore/list', isAuthenticated, getRestoreList); +router.post('/verify/:channelPoint', isAuthenticated, postBackupVerify); +router.post('/restore/:channelPoint', isAuthenticated, postRestore); +export default router; diff --git a/backend/routes/lnd/fees.js b/backend/routes/lnd/fees.js new file mode 100644 index 00000000..9bb766b3 --- /dev/null +++ b/backend/routes/lnd/fees.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getFees } from '../../controllers/lnd/fees.js'; +const router = Router(); +router.get('/', isAuthenticated, getFees); +export default router; diff --git a/backend/routes/lnd/getInfo.js b/backend/routes/lnd/getInfo.js new file mode 100644 index 00000000..7edf39a7 --- /dev/null +++ b/backend/routes/lnd/getInfo.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getInfo } from '../../controllers/lnd/getInfo.js'; +const router = Router(); +router.get('/', isAuthenticated, getInfo); +export default router; diff --git a/backend/routes/lnd/graph.js b/backend/routes/lnd/graph.js new file mode 100644 index 00000000..4efa047f --- /dev/null +++ b/backend/routes/lnd/graph.js @@ -0,0 +1,13 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getDescribeGraph, getGraphInfo, getAliasesForPubkeys, getGraphNode, getGraphEdge, getRemoteFeePolicy, getQueryRoutes } from '../../controllers/lnd/graph.js'; +const router = Router(); +router.get('/', isAuthenticated, getDescribeGraph); +router.get('/info', isAuthenticated, getGraphInfo); +router.get('/nodes', isAuthenticated, getAliasesForPubkeys); +router.get('/node/:pubKey', isAuthenticated, getGraphNode); +router.get('/edge/:chanid', isAuthenticated, getGraphEdge); +router.get('/edge/:chanid/:localPubkey', isAuthenticated, getRemoteFeePolicy); +router.get('/routes/:destPubkey/:amount', isAuthenticated, getQueryRoutes); +export default router; diff --git a/backend/routes/lnd/index.js b/backend/routes/lnd/index.js new file mode 100644 index 00000000..bd17733c --- /dev/null +++ b/backend/routes/lnd/index.js @@ -0,0 +1,37 @@ +import exprs from 'express'; +const { Router } = exprs; +import infoRoutes from './getInfo.js'; +import channelsRoutes from './channels.js'; +import channelsBackupRoutes from './channelsBackup.js'; +import peersRoutes from './peers.js'; +import feesRoutes from './fees.js'; +import balanceRoutes from './balance.js'; +import walletRoutes from './wallet.js'; +import graphRoutes from './graph.js'; +import newAddressRoutes from './newAddress.js'; +import transactionsRoutes from './transactions.js'; +import paymentsRoutes from './payments.js'; +import invoiceRoutes from './invoices.js'; +import switchRoutes from './switch.js'; +import messageRoutes from './message.js'; +const router = Router(); +const lndRoutes = [ + { path: '/getinfo', route: infoRoutes }, + { path: '/channels', route: channelsRoutes }, + { path: '/channels/backup', route: channelsBackupRoutes }, + { path: '/peers', route: peersRoutes }, + { path: '/fees', route: feesRoutes }, + { path: '/balance', route: balanceRoutes }, + { path: '/wallet', route: walletRoutes }, + { path: '/network', route: graphRoutes }, + { path: '/newaddress', route: newAddressRoutes }, + { path: '/transactions', route: transactionsRoutes }, + { path: '/payments', route: paymentsRoutes }, + { path: '/invoices', route: invoiceRoutes }, + { path: '/switch', route: switchRoutes }, + { path: '/message', route: messageRoutes } +]; +lndRoutes.forEach((route) => { + router.use(route.path, route.route); +}); +export default router; diff --git a/backend/routes/lnd/invoices.js b/backend/routes/lnd/invoices.js new file mode 100644 index 00000000..6182437d --- /dev/null +++ b/backend/routes/lnd/invoices.js @@ -0,0 +1,9 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listInvoices, getInvoice, addInvoice } from '../../controllers/lnd/invoices.js'; +const router = Router(); +router.get('/', isAuthenticated, listInvoices); +router.get('/:rHashStr', isAuthenticated, getInvoice); +router.post('/', isAuthenticated, addInvoice); +export default router; diff --git a/backend/routes/lnd/message.js b/backend/routes/lnd/message.js new file mode 100644 index 00000000..00e2addf --- /dev/null +++ b/backend/routes/lnd/message.js @@ -0,0 +1,8 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { signMessage, verifyMessage } from '../../controllers/lnd/message.js'; +const router = Router(); +router.post('/sign', isAuthenticated, signMessage); +router.post('/verify', isAuthenticated, verifyMessage); +export default router; diff --git a/backend/routes/lnd/newAddress.js b/backend/routes/lnd/newAddress.js new file mode 100644 index 00000000..fe2b9ecb --- /dev/null +++ b/backend/routes/lnd/newAddress.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getNewAddress } from '../../controllers/lnd/newAddress.js'; +const router = Router(); +router.get('/', isAuthenticated, getNewAddress); +export default router; diff --git a/backend/routes/lnd/payments.js b/backend/routes/lnd/payments.js new file mode 100644 index 00000000..b0ab4ff1 --- /dev/null +++ b/backend/routes/lnd/payments.js @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { decodePayment, decodePayments, getPayments, getAllLightningTransactions } from '../../controllers/lnd/payments.js'; +const router = Router(); +router.get('/', isAuthenticated, getPayments); +router.get('/alltransactions', isAuthenticated, getAllLightningTransactions); +router.get('/decode/:payRequest', isAuthenticated, decodePayment); +router.post('/', isAuthenticated, decodePayments); +export default router; diff --git a/backend/routes/lnd/peers.js b/backend/routes/lnd/peers.js new file mode 100644 index 00000000..dcf26dd3 --- /dev/null +++ b/backend/routes/lnd/peers.js @@ -0,0 +1,9 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getPeers, postPeer, deletePeer } from '../../controllers/lnd/peers.js'; +const router = Router(); +router.get('/', isAuthenticated, getPeers); +router.post('/', isAuthenticated, postPeer); +router.delete('/:peerPubKey', isAuthenticated, deletePeer); +export default router; diff --git a/backend/routes/lnd/switch.js b/backend/routes/lnd/switch.js new file mode 100644 index 00000000..c0a85155 --- /dev/null +++ b/backend/routes/lnd/switch.js @@ -0,0 +1,7 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { forwardingHistory } from '../../controllers/lnd/switch.js'; +const router = Router(); +router.post('/', isAuthenticated, forwardingHistory); +export default router; diff --git a/backend/routes/lnd/transactions.js b/backend/routes/lnd/transactions.js new file mode 100644 index 00000000..f8191ad2 --- /dev/null +++ b/backend/routes/lnd/transactions.js @@ -0,0 +1,8 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getTransactions, postTransactions } from '../../controllers/lnd/transactions.js'; +const router = Router(); +router.get('/', isAuthenticated, getTransactions); +router.post('/', isAuthenticated, postTransactions); +export default router; diff --git a/backend/routes/lnd/wallet.js b/backend/routes/lnd/wallet.js new file mode 100644 index 00000000..4f2fbc9d --- /dev/null +++ b/backend/routes/lnd/wallet.js @@ -0,0 +1,14 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { genSeed, updateSelNodeOptions, getUTXOs, operateWallet, bumpFee, labelTransaction, leaseUTXO, releaseUTXO } from '../../controllers/lnd/wallet.js'; +const router = Router(); +router.get('/genseed/:passphrase?', isAuthenticated, genSeed); +router.get('/updateSelNodeOptions', isAuthenticated, updateSelNodeOptions); +router.get('/getUTXOs', isAuthenticated, getUTXOs); +router.post('/wallet/:operation', isAuthenticated, operateWallet); +router.post('/bumpfee', isAuthenticated, bumpFee); +router.post('/label', isAuthenticated, labelTransaction); +router.post('/lease', isAuthenticated, leaseUTXO); +router.post('/release', isAuthenticated, releaseUTXO); +export default router; diff --git a/backend/routes/shared/RTLConf.js b/backend/routes/shared/RTLConf.js new file mode 100644 index 00000000..5f89bd5e --- /dev/null +++ b/backend/routes/shared/RTLConf.js @@ -0,0 +1,17 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getRTLConfigInitial, getRTLConfig, updateUISettings, update2FASettings, getConfig, getFile, updateSelectedNode, updateDefaultNode, updateServiceSettings, updateSSO, getCurrencyRates } from '../../controllers/shared/RTLConf.js'; +const router = Router(); +router.get('/rtlconfinit', getRTLConfigInitial); +router.get('/rtlconf', isAuthenticated, getRTLConfig); +router.post('/', isAuthenticated, updateUISettings); +router.post('/update2FA', isAuthenticated, update2FASettings); +router.get('/config/:nodeType', isAuthenticated, getConfig); +router.get('/file', isAuthenticated, getFile); +router.post('/updateSelNode', updateSelectedNode); +router.post('/updateDefaultNode', updateDefaultNode); +router.post('/updateServiceSettings', updateServiceSettings); +router.post('/updateSSO', updateSSO); +router.get('/rates', getCurrencyRates); +export default router; diff --git a/backend/routes/shared/authenticate.js b/backend/routes/shared/authenticate.js new file mode 100644 index 00000000..0cbdbbe4 --- /dev/null +++ b/backend/routes/shared/authenticate.js @@ -0,0 +1,9 @@ +import exprs from 'express'; +const { Router } = exprs; +import { authenticateUser, verifyToken, resetPassword, logoutUser } from '../../controllers/shared/authenticate.js'; +const router = Router(); +router.post('/', authenticateUser); +router.post('/token', verifyToken); +router.post('/reset', resetPassword); +router.get('/logout', logoutUser); +export default router; diff --git a/backend/routes/shared/boltz.js b/backend/routes/shared/boltz.js new file mode 100644 index 00000000..f669753b --- /dev/null +++ b/backend/routes/shared/boltz.js @@ -0,0 +1,14 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getInfo, getServiceInfo, listSwaps, getSwapInfo, createSwap, createReverseSwap, createChannel, deposit } from '../../controllers/shared/boltz.js'; +const router = Router(); +router.get('/info', isAuthenticated, getInfo); +router.get('/serviceInfo', isAuthenticated, getServiceInfo); +router.get('/listSwaps', isAuthenticated, listSwaps); +router.get('/swapInfo/:swapId', isAuthenticated, getSwapInfo); +router.post('/createSwap', isAuthenticated, createSwap); +router.post('/createReverseSwap', isAuthenticated, createReverseSwap); +router.post('/createChannel', isAuthenticated, createChannel); +router.post('/deposit', isAuthenticated, deposit); +export default router; diff --git a/backend/routes/shared/index.js b/backend/routes/shared/index.js new file mode 100644 index 00000000..9a4f58f6 --- /dev/null +++ b/backend/routes/shared/index.js @@ -0,0 +1,17 @@ +import exprs from 'express'; +const { Router } = exprs; +import authenticateRoutes from './authenticate.js'; +import boltzRoutes from './boltz.js'; +import loopRoutes from './loop.js'; +import RTLConfRoutes from './RTLConf.js'; +const router = Router(); +const sharedRoutes = [ + { path: '/authenticate', route: authenticateRoutes }, + { path: '/boltz', route: boltzRoutes }, + { path: '/loop', route: loopRoutes }, + { path: '/conf', route: RTLConfRoutes } +]; +sharedRoutes.forEach((route) => { + router.use(route.path, route.route); +}); +export default router; diff --git a/backend/routes/shared/loop.js b/backend/routes/shared/loop.js new file mode 100644 index 00000000..38436ef5 --- /dev/null +++ b/backend/routes/shared/loop.js @@ -0,0 +1,16 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { loopInTerms, loopInQuote, loopInTermsAndQuotes, loopIn, loopOutTerms, loopOutQuote, loopOutTermsAndQuotes, loopOut, swaps, swap } from '../../controllers/shared/loop.js'; +const router = Router(); +router.get('/in/terms', isAuthenticated, loopInTerms); +router.get('/in/quote/:amount', isAuthenticated, loopInQuote); +router.get('/in/termsAndQuotes', isAuthenticated, loopInTermsAndQuotes); +router.post('/in', isAuthenticated, loopIn); +router.get('/out/terms', isAuthenticated, loopOutTerms); +router.get('/out/quote/:amount', isAuthenticated, loopOutQuote); +router.get('/out/termsAndQuotes', isAuthenticated, loopOutTermsAndQuotes); +router.post('/out', isAuthenticated, loopOut); +router.get('/swaps', isAuthenticated, swaps); +router.get('/swap/:id', isAuthenticated, swap); +export default router; diff --git a/backend/utils/app.js b/backend/utils/app.js new file mode 100644 index 00000000..8e351bb3 --- /dev/null +++ b/backend/utils/app.js @@ -0,0 +1,85 @@ +import express from 'express'; +import sessions from 'express-session'; +import cookieParser from 'cookie-parser'; +import bodyParser from 'body-parser'; +import { join, dirname } from 'path'; +import { fileURLToPath } from 'url'; +import CORS from './cors.js'; +import CSRF from './csrf.js'; +import sharedRoutes from '../routes/shared/index.js'; +import lndRoutes from '../routes/lnd/index.js'; +import clRoutes from '../routes/c-lightning/index.js'; +import eclRoutes from '../routes/eclair/index.js'; +import { Common } from './common.js'; +import { Logger } from './logger.js'; +import { Config } from './config.js'; +import { CLWSClient } from '../controllers/c-lightning/webSocketClient.js'; +import { ECLWSClient } from '../controllers/eclair/webSocketClient.js'; +import { LNDWSClient } from '../controllers/lnd/webSocketClient.js'; +const ONE_DAY = 1000 * 60 * 60 * 24; +export class ExpressApplication { + constructor() { + this.app = express(); + this.logger = Logger; + this.common = Common; + this.config = Config; + this.eclWsClient = ECLWSClient; + this.clWsClient = CLWSClient; + this.lndWsClient = LNDWSClient; + this.directoryName = dirname(fileURLToPath(import.meta.url)); + this.getApp = () => this.app; + this.loadConfiguration = () => { + this.config.setServerConfiguration(); + }; + this.setCORS = () => { CORS.mount(this.app); }; + this.setCSRF = () => { CSRF.mount(this.app); }; + this.setApplicationRoutes = () => { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'DEBUG', fileName: 'App', msg: 'Setting up Application Routes.' }); + this.app.use(this.common.baseHref + '/api', sharedRoutes); + this.app.use(this.common.baseHref + '/api/lnd', lndRoutes); + this.app.use(this.common.baseHref + '/api/cl', clRoutes); + this.app.use(this.common.baseHref + '/api/ecl', eclRoutes); + this.app.use(this.common.baseHref, express.static(join(this.directoryName, '../..', 'frontend'))); + this.app.use((req, res, next) => { + res.cookie('XSRF-TOKEN', req.csrfToken ? req.csrfToken() : ''); + res.sendFile(join(this.directoryName, '../..', 'frontend', 'index.html')); + }); + this.app.use((err, req, res, next) => this.handleApplicationErrors(err, res)); + }; + this.handleApplicationErrors = (err, res) => { + switch (err.code) { + case 'EACCES': + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'Server requires elevated privileges' }); + res.status(406).send('Server requires elevated privileges.'); + break; + case 'EADDRINUSE': + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'Server is already in use' }); + res.status(409).send('Server is already in use.'); + break; + case 'ECONNREFUSED': + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'Server is down/locked' }); + res.status(401).send('Server is down/locked.'); + break; + case 'EBADCSRFTOKEN': + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'Invalid CSRF token. Form tempered.' }); + res.status(403).send('Invalid CSRF token, form tempered.'); + break; + default: + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'DEFUALT ERROR', error: err }); + res.status(400).send(JSON.stringify(err)); + break; + } + }; + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'DEBUG', fileName: 'App', msg: 'Starting Express Application.' }); + this.app.set('trust proxy', true); + this.app.use(sessions({ secret: this.common.secret_key, saveUninitialized: true, cookie: { secure: false, maxAge: ONE_DAY }, resave: false })); + this.app.use(cookieParser(this.common.secret_key)); + this.app.use(bodyParser.json({ limit: '25mb' })); + this.app.use(bodyParser.urlencoded({ extended: false, limit: '25mb' })); + this.loadConfiguration(); + this.setCORS(); + this.setCSRF(); + this.setApplicationRoutes(); + } +} +export default ExpressApplication; diff --git a/backend/utils/authCheck.js b/backend/utils/authCheck.js new file mode 100644 index 00000000..39d67760 --- /dev/null +++ b/backend/utils/authCheck.js @@ -0,0 +1,45 @@ +import jwt from 'jsonwebtoken'; +import csurf from 'csurf/index.js'; +import { Common } from './common.js'; +const common = Common; +const csurfProtection = csurf({ cookie: true }); +export const isAuthenticated = (req, res, next) => { + try { + const token = req.headers.authorization.split(' ')[1]; + jwt.verify(token, common.secret_key); + next(); + } + catch (error) { + const errMsg = 'Authentication Failed! Please Login First!'; + const err = common.handleError({ statusCode: 401, message: 'Authentication Error', error: errMsg }, 'AuthCheck', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } +}; +export const verifyWSUser = (info, next) => { + const headers = JSON.parse(JSON.stringify(info.req.headers)); + const protocols = !info.req.headers['sec-websocket-protocol'] ? [] : info.req.headers['sec-websocket-protocol'].split(',').map((s) => s.trim()); + const jwToken = (protocols && protocols.length > 0) ? protocols[0] : ''; + if (!jwToken || jwToken === '') { + next(false, 401, 'Authentication Failed! Please Login First!'); + } + else { + jwt.verify(jwToken, common.secret_key, (verificationErr) => { + if (verificationErr) { + next(false, 401, 'Authentication Failed! Please Login First!'); + } + else { + const updatedReq = JSON.parse(JSON.stringify(info.req)); + updatedReq['cookies'] = !headers || !headers.cookie ? {} : '{"' + headers.cookie.replace(/ /g, '').replace(/;/g, '","').trim().replace(/[=]/g, '":"') + '"}'; + updatedReq['cookies'] = JSON.parse(updatedReq['cookies']); + csurfProtection(updatedReq, null, (err) => { + if (err) { + next(false, 403, 'Invalid CSRF token!'); + } + else { + next(true); + } + }); + } + }); + } +}; diff --git a/backend/utils/common.js b/backend/utils/common.js new file mode 100644 index 00000000..35544cd5 --- /dev/null +++ b/backend/utils/common.js @@ -0,0 +1,499 @@ +/* eslint-disable no-console */ +import * as fs from 'fs'; +import { join, dirname, isAbsolute, resolve, sep } from 'path'; +import { fileURLToPath } from 'url'; +import * as crypto from 'crypto'; +import request from 'request-promise'; +import { Logger } from './logger.js'; +export class CommonService { + constructor() { + this.logger = Logger; + this.nodes = []; + this.initSelectedNode = null; + this.rtl_conf_file_path = ''; + this.port = 3000; + this.host = null; + this.rtl_pass = ''; + this.flg_allow_password_update = true; + this.rtl_secret2fa = ''; + this.rtl_sso = 0; + this.rtl_cookie_path = ''; + this.logout_redirect_link = ''; + this.api_version = ''; + this.secret_key = crypto.randomBytes(64).toString('hex'); + this.read_dummy_data = false; + this.baseHref = '/rtl'; + this.dummy_data_array_from_file = []; + this.MONTHS = [{ name: 'JAN', days: 31 }, { name: 'FEB', days: 28 }, { name: 'MAR', days: 31 }, { name: 'APR', days: 30 }, { name: 'MAY', days: 31 }, { name: 'JUN', days: 30 }, { name: 'JUL', days: 31 }, { name: 'AUG', days: 31 }, { name: 'SEP', days: 30 }, { name: 'OCT', days: 31 }, { name: 'NOV', days: 30 }, { name: 'DEC', days: 31 }]; + this.getSwapServerOptions = (req) => { + const swapOptions = { + url: req.session.selectedNode.swap_server_url, + rejectUnauthorized: false, + json: true, + headers: { 'Grpc-Metadata-macaroon': '' } + }; + if (req.session.selectedNode.swap_macaroon_path) { + try { + swapOptions.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(req.session.selectedNode.swap_macaroon_path, 'loop.macaroon')).toString('hex') }; + } + catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Loop macaroon Error: ' + JSON.stringify(err)); + } + } + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Swap Options: ' + JSON.stringify(swapOptions)); + return swapOptions; + }; + this.getBoltzServerOptions = (req) => { + const boltzOptions = { + url: req.session.selectedNode.boltz_server_url, + rejectUnauthorized: false, + json: true, + headers: { 'Grpc-Metadata-macaroon': '' } + }; + if (req.session.selectedNode.boltz_macaroon_path) { + try { + boltzOptions.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(req.session.selectedNode.boltz_macaroon_path, 'admin.macaroon')).toString('hex') }; + } + catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Boltz macaroon Error: ' + JSON.stringify(err)); + } + } + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Boltz Options: ' + JSON.stringify(boltzOptions)); + return boltzOptions; + }; + this.getOptions = (req) => { + if (req.session.selectedNode && req.session.selectedNode.options) { + req.session.selectedNode.options.method = (req.session.selectedNode.ln_implementation && req.session.selectedNode.ln_implementation.toUpperCase() !== 'ECL') ? 'GET' : 'POST'; + delete req.session.selectedNode.options.form; + req.session.selectedNode.options.qs = {}; + return req.session.selectedNode.options; + } + return this.handleError({ statusCode: 401, message: 'Session expired after a day\'s inactivity.' }, 'Session Expired', 'Session Expiry Error', this.initSelectedNode); + }; + this.updateSelectedNodeOptions = (req) => { + if (!req.session.selectedNode) { + req.session.selectedNode = {}; + } + req.session.selectedNode.options = { + url: '', + rejectUnauthorized: false, + json: true, + form: null + }; + try { + if (req.session.selectedNode && req.session.selectedNode.ln_implementation) { + switch (req.session.selectedNode.ln_implementation.toUpperCase()) { + case 'CLT': + req.session.selectedNode.options.headers = { macaroon: Buffer.from(fs.readFileSync(join(req.session.selectedNode.macaroon_path, 'access.macaroon'))).toString('base64') }; + break; + case 'ECL': + req.session.selectedNode.options.headers = { authorization: 'Basic ' + Buffer.from(':' + req.session.selectedNode.ln_api_password).toString('base64') }; + break; + default: + req.session.selectedNode.options.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(req.session.selectedNode.macaroon_path, 'admin.macaroon')).toString('hex') }; + break; + } + } + if (req.session.selectedNode) { + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Updated Node Options: ' + JSON.stringify(req.session.selectedNode.options)); + } + return { status: 200, message: 'Updated Successfully!' }; + } + catch (err) { + req.session.selectedNode.options = { + url: '', + rejectUnauthorized: false, + json: true, + form: null + }; + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Common Update Selected Node Options Error:' + JSON.stringify(err)); + return { status: 502, message: err }; + } + }; + this.setOptions = (req) => { + if (this.nodes[0].options && this.nodes[0].options.headers) { + return; + } + if (this.nodes && this.nodes.length > 0) { + this.nodes.forEach((node) => { + node.options = { + url: '', + rejectUnauthorized: false, + json: true, + form: null + }; + try { + if (node.ln_implementation) { + switch (node.ln_implementation.toUpperCase()) { + case 'CLT': + node.options.headers = { macaroon: Buffer.from(fs.readFileSync(join(node.macaroon_path, 'access.macaroon'))).toString('base64') }; + break; + case 'ECL': + node.options.headers = { authorization: 'Basic ' + Buffer.from(':' + node.ln_api_password).toString('base64') }; + break; + default: + node.options.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(node.macaroon_path, 'admin.macaroon')).toString('hex') }; + break; + } + } + } + catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Common Set Options Error:' + JSON.stringify(err)); + node.options = { + url: '', + rejectUnauthorized: false, + json: true, + form: '' + }; + } + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Set Node Options: ' + JSON.stringify(node.options)); + }); + this.updateSelectedNodeOptions(req); + } + }; + this.findNode = (selNodeIndex) => this.nodes.find((node) => node.index === selNodeIndex); + this.replaceNode = (req, newNode) => { + const foundIndex = this.nodes.findIndex((node) => node.index === req.session.selectedNode.index); + this.nodes.splice(foundIndex, 1, newNode); + req.session.selectedNode = this.findNode(req.session.selectedNode.index); + }; + this.convertTimeToEpoch = (timeToConvert) => Math.floor(timeToConvert.getTime() / 1000); + this.convertTimestampToTime = (num) => { + const myDate = new Date(+num * 1000); + let days = myDate.getDate().toString(); + days = +days < 10 ? '0' + days : days; + let hours = myDate.getHours().toString(); + hours = +hours < 10 ? '0' + hours : hours; + let minutes = myDate.getMinutes().toString(); + minutes = +minutes < 10 ? '0' + minutes : minutes; + let seconds = myDate.getSeconds().toString(); + seconds = +seconds < 10 ? '0' + seconds : seconds; + return days + '/' + this.MONTHS[myDate.getMonth()].name + '/' + myDate.getFullYear() + ' ' + hours + ':' + minutes + ':' + seconds; + }; + this.sortAscByKey = (array, key) => array.sort((a, b) => { + const x = +a[key]; + const y = +b[key]; + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + }); + this.sortAscByStrKey = (array, key) => array.sort((a, b) => { + const x = a[key] ? a[key].toUpperCase() : ''; + const y = b[key] ? b[key].toUpperCase() : ''; + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + }); + this.sortDescByKey = (array, key) => { + const temp = array.sort((a, b) => { + const x = +a[key] ? +a[key] : 0; + const y = +b[key] ? +b[key] : 0; + return (x > y) ? -1 : ((x < y) ? 1 : 0); + }); + return temp; + }; + this.sortDescByStrKey = (array, key) => { + const temp = array.sort((a, b) => { + const x = a[key] ? a[key].toUpperCase() : ''; + const y = b[key] ? b[key].toUpperCase() : ''; + return (x > y) ? -1 : ((x < y) ? 1 : 0); + }); + return temp; + }; + this.newestOnTop = (array, key, value) => { + const newlyAddedRecord = array.splice(array.findIndex((item) => item[key] === value), 1); + array.unshift(newlyAddedRecord[0]); + return array; + }; + this.handleError = (errRes, fileName, errMsg, selectedNode) => { + const err = JSON.parse(JSON.stringify(errRes)); + if (!selectedNode) { + selectedNode = { ln_implementation: '' }; + } + switch (selectedNode.ln_implementation) { + case 'LND': + if (err.options && err.options.headers && err.options.headers['Grpc-Metadata-macaroon']) { + delete err.options.headers['Grpc-Metadata-macaroon']; + } + if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) { + delete err.response.request.headers['Grpc-Metadata-macaroon']; + } + break; + case 'CLT': + if (err.options && err.options.headers && err.options.headers.macaroon) { + delete err.options.headers.macaroon; + } + if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) { + delete err.response.request.headers.macaroon; + } + break; + case 'ECL': + if (err.options && err.options.headers && err.options.headers.authorization) { + delete err.options.headers.authorization; + } + if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) { + delete err.response.request.headers.authorization; + } + break; + default: + if (err.options && err.options.headers) { + delete err.options.headers; + } + break; + } + const msgStr = '\r\n[' + new Date().toLocaleString() + '] ERROR: ' + fileName + ' => ' + errMsg + ': ' + (typeof err === 'object' ? JSON.stringify(err) : (typeof err === 'string') ? err : 'Unknown Error'); + console.error(msgStr); + if (selectedNode.log_file && selectedNode.log_file !== '') { + fs.appendFile(selectedNode.log_file, msgStr, () => { }); + } + const newErrorObj = { + statusCode: err.statusCode ? err.statusCode : err.status ? err.status : (err.error && err.error.code && err.error.code === 'ECONNREFUSED') ? 503 : 500, + message: (err.error && err.error.message) ? err.error.message : err.message ? err.message : errMsg, + error: ((err.error && err.error.error && err.error.error.error && typeof err.error.error.error === 'string') ? err.error.error.error : + (err.error && err.error.error && typeof err.error.error === 'string') ? err.error.error : + (err.error && err.error.error && err.error.error.message && typeof err.error.error.message === 'string') ? err.error.error.message : + (err.error && err.error.message && typeof err.error.message === 'string') ? err.error.message : + (err.error && typeof err.error === 'string') ? err.error : + (err.message && typeof err.message === 'string') ? err.message : (typeof err === 'string') ? err : 'Unknown Error') + }; + return newErrorObj; + }; + this.getRequestIP = (req) => ((typeof req.headers['x-forwarded-for'] === 'string' && req.headers['x-forwarded-for'].split(',').shift()) || + req.ip || + req.connection.remoteAddress || + req.socket.remoteAddress || + (req.connection.socket ? req.connection.socket.remoteAddress : null)); + this.getDummyData = (dataKey, lnImplementation) => { + const dummyDataFile = this.rtl_conf_file_path + sep + 'ECLDummyData.log'; + return new Promise((resolve, reject) => { + if (this.dummy_data_array_from_file.length === 0) { + fs.readFile(dummyDataFile, 'utf8', (err, data) => { + if (err) { + if (err.code === 'ENOENT') { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Dummy data file does not exist!'); + } + else { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Getting dummy data failed!'); + } + } + else { + this.dummy_data_array_from_file = data.split('\n'); + resolve(this.filterData(dataKey, lnImplementation)); + } + }); + } + else { + resolve(this.filterData(dataKey, lnImplementation)); + } + }); + }; + this.readCookie = () => { + const exists = fs.existsSync(this.rtl_cookie_path); + if (exists) { + try { + return fs.readFileSync(this.rtl_cookie_path, 'utf-8'); + } + catch (err) { + this.logger.log({ selectedNode: this.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while reading cookie: \n' + err }); + throw new Error(err); + } + } + else { + try { + const directoryName = dirname(this.rtl_cookie_path); + this.createDirectory(directoryName); + fs.writeFileSync(this.rtl_cookie_path, crypto.randomBytes(64).toString('hex')); + return fs.readFileSync(this.rtl_cookie_path, 'utf-8'); + } + catch (err) { + this.logger.log({ selectedNode: this.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while reading the cookie: \n' + err }); + throw new Error(err); + } + } + }; + this.refreshCookie = () => { + try { + fs.writeFileSync(this.rtl_cookie_path, crypto.randomBytes(64).toString('hex')); + } + catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Something went wrong while refreshing cookie: \n' + err); + throw new Error(err); + } + }; + this.createDirectory = (directoryName) => { + const initDir = isAbsolute(directoryName) ? sep : ''; + directoryName.split(sep).reduce((parentDir, childDir) => { + const curDir = resolve(parentDir, childDir); + try { + if (!fs.existsSync(curDir)) { + fs.mkdirSync(curDir); + } + } + catch (err) { + if (err.code !== 'EEXIST') { + if (err.code === 'ENOENT') { + throw new Error(`ENOENT: No such file or directory, mkdir '${directoryName}'. Ensure that the path separator is '${sep}'`); + } + else { + throw err; + } + } + } + return curDir; + }, initDir); + }; + this.replacePasswordWithHash = (multiPassHashed) => { + this.rtl_conf_file_path = process.env.RTL_CONFIG_PATH ? process.env.RTL_CONFIG_PATH : join(dirname(fileURLToPath(import.meta.url)), '../..'); + try { + const RTLConfFile = this.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + config.multiPassHashed = multiPassHashed; + delete config.multiPass; + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Please note that, RTL has encrypted the plaintext password into its corresponding hash.'); + return config.multiPassHashed; + } + catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Password hashing failed!'); + } + }; + this.getAllNodeAllChannelBackup = (node) => { + const channel_backup_file = node.channel_backup_path + sep + 'channel-all.bak'; + const options = { + url: node.ln_server_url + '/v1/channels/backup', + rejectUnauthorized: false, + json: true, + headers: { 'Grpc-Metadata-macaroon': fs.readFileSync(node.macaroon_path + '/admin.macaroon').toString('hex') } + }; + request(options).then((body) => { + fs.writeFile(channel_backup_file, JSON.stringify(body), (err) => { + if (err) { + if (node.ln_node) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Channel Backup Failed for Node ' + node.ln_node + ': ' + JSON.stringify(err)); + } + else { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Channel Backup Error: ' + JSON.stringify(err)); + } + } + else { + if (node.ln_node) { + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Channel Backup Successful for Node: ' + JSON.stringify(node.ln_node)); + } + else { + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Channel Backup Successful'); + } + } + }); + }, (err) => { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Channel Backup Response Error: ' + JSON.stringify(err)); + fs.writeFile(channel_backup_file, '', (writeErr) => { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Channel Backup Response Empty File Write Error: ' + JSON.stringify(writeErr)); + }); + }); + }; + this.isVersionCompatible = (currentVersion, checkVersion) => { + if (currentVersion) { + const versionsArr = currentVersion.trim().replace('v', '').split('-')[0].split('.') || []; + const checkVersionsArr = checkVersion.split('.'); + return (+versionsArr[0] > +checkVersionsArr[0]) || + (+versionsArr[0] === +checkVersionsArr[0] && +versionsArr[1] > +checkVersionsArr[1]) || + (+versionsArr[0] === +checkVersionsArr[0] && +versionsArr[1] === +checkVersionsArr[1] && +versionsArr[2] >= +checkVersionsArr[2]); + } + return false; + }; + this.getMonthDays = (selMonth, selYear) => ((selMonth === 1 && selYear % 4 === 0) ? (this.MONTHS[selMonth].days + 1) : this.MONTHS[selMonth].days); + this.logEnvVariables = (req) => { + const selNode = req.session.selectedNode; + if (selNode && selNode.index) { + if (fs.existsSync(selNode.log_file)) { + fs.writeFile(selNode.log_file, '', () => { }); + } + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'PORT: ' + this.port }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'HOST: ' + this.host }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'SSO: ' + this.rtl_sso }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'DEFAULT NODE INDEX: ' + selNode.index }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'INDEX: ' + selNode.index }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LN NODE: ' + selNode.ln_node }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LN IMPLEMENTATION: ' + selNode.ln_implementation }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'FIAT CONVERSION: ' + selNode.fiat_conversion }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'CURRENCY UNIT: ' + selNode.currency_unit }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LN SERVER URL: ' + selNode.ln_server_url }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LOGOUT REDIRECT LINK: ' + this.logout_redirect_link + '\r\n' }); + } + }; + this.filterData = (dataKey, lnImplementation) => { + let search_string = ''; + if (lnImplementation === 'ECL') { + switch (dataKey) { + case 'GetInfo': + search_string = 'INFO: GetInfo => Get Info Response: '; + break; + case 'Fees': + search_string = 'INFO: Fees => Fee Response: '; + break; + case 'Payments': + search_string = 'INFO: Fees => Payments Response: '; + break; + case 'Invoices': + search_string = 'INFO: Invoice => Invoices List Received: '; + break; + case 'OnChainBalance': + search_string = 'INFO: Onchain => Balance Received: '; + break; + case 'Peers': + search_string = 'INFO: Peers => Peers with Alias: '; + break; + case 'Channels': + search_string = 'INFO: Channels => Simplified Channels with Alias: '; + break; + default: + search_string = 'Random Line'; + break; + } + } + else if (lnImplementation === 'CLT') { + switch (dataKey) { + case 'GetInfo': + search_string = 'DEBUG: GetInfo => Node Information. '; + break; + case 'Fees': + search_string = 'DEBUG: Fees => Fee Received. '; + break; + case 'Payments': + search_string = 'DEBUG: Payments => Payment List Received: '; + break; + case 'Invoices': + search_string = 'DEBUG: Invoice => Invoices List Received. '; + break; + case 'ChannelBalance': + search_string = 'DEBUG: Channels => Local Remote Balance. '; + break; + case 'Peers': + search_string = 'DEBUG: Peers => Peers with Alias: '; + break; + case 'Channels': + search_string = 'DEBUG: Channels => List Channels: '; + break; + case 'Balance': + search_string = 'DEBUG: Balance => Balance Received. '; + break; + case 'ForwardingHistory': + search_string = 'DEBUG: Channels => Forwarding History Received: '; + break; + case 'UTXOs': + search_string = 'DEBUG: OnChain => List Funds Received. '; + break; + case 'FeeRateperkb': + search_string = 'DEBUG: Network => Network Fee Rates Received for perkb. '; + break; + case 'FeeRateperkw': + search_string = 'DEBUG: Network => Network Fee Rates Received for perkw. '; + break; + default: + search_string = 'Random Line'; + break; + } + } + const foundDataLine = this.dummy_data_array_from_file.find((dataItem) => dataItem.includes(search_string)); + const dataStr = foundDataLine ? foundDataLine.substring((foundDataLine.indexOf(search_string)) + search_string.length) : '{}'; + return JSON.parse(dataStr); + }; + } +} +export const Common = new CommonService(); diff --git a/backend/utils/config.js b/backend/utils/config.js new file mode 100644 index 00000000..4a9e5b2e --- /dev/null +++ b/backend/utils/config.js @@ -0,0 +1,338 @@ +import * as os from 'os'; +import * as fs from 'fs'; +import { join, dirname, sep } from 'path'; +import { fileURLToPath } from 'url'; +import * as crypto from 'crypto'; +import ini from 'ini'; +import parseHocon from 'hocon-parser'; +import { Common } from './common.js'; +import { Logger } from './logger.js'; +export class ConfigService { + constructor() { + this.platform = os.platform(); + this.hash = crypto.createHash('sha256'); + this.errMsg = ''; + this.directoryName = dirname(fileURLToPath(import.meta.url)); + this.common = Common; + this.logger = Logger; + this.setDefaultConfig = () => { + const homeDir = os.userInfo().homedir; + let macaroonPath = ''; + let configPath = ''; + let channelBackupPath = ''; + switch (this.platform) { + case 'win32': + macaroonPath = homeDir + '\\AppData\\Local\\Lnd\\data\\chain\\bitcoin\\mainnet'; + configPath = homeDir + '\\AppData\\Local\\Lnd\\lnd.conf'; + channelBackupPath = homeDir + '\\backup\\node-1'; + break; + case 'darwin': + macaroonPath = homeDir + '/Library/Application Support/Lnd/data/chain/bitcoin/mainnet'; + configPath = homeDir + '/Library/Application Support/Lnd/lnd.conf'; + channelBackupPath = homeDir + '/backup/node-1'; + break; + case 'linux': + macaroonPath = homeDir + '/.lnd/data/chain/bitcoin/mainnet'; + configPath = homeDir + '/.lnd/lnd.conf'; + channelBackupPath = homeDir + '/backup/node-1'; + break; + default: + macaroonPath = ''; + configPath = ''; + channelBackupPath = ''; + break; + } + return { + multiPass: 'password', + port: '3000', + defaultNodeIndex: 1, + SSO: { + rtlSSO: 0, + rtlCookiePath: '', + logoutRedirectLink: '' + }, + nodes: [ + { + index: 1, + lnNode: 'Node 1', + lnImplementation: 'LND', + Authentication: { + macaroonPath: macaroonPath, + configPath: configPath + }, + Settings: { + userPersona: 'MERCHANT', + themeMode: 'DAY', + themeColor: 'PURPLE', + channelBackupPath: channelBackupPath, + logLevel: 'ERROR', + lnServerUrl: 'https://localhost:8080', + fiatConversion: false + } + } + ] + }; + }; + this.normalizePort = (val) => { + const port = parseInt(val, 10); + if (isNaN(port)) { + return val; + } + if (port >= 0) { + return port; + } + return false; + }; + this.updateLogByLevel = () => { + let updateLogFlag = false; + this.common.rtl_conf_file_path = process.env.RTL_CONFIG_PATH ? process.env.RTL_CONFIG_PATH : join(this.directoryName, '../..'); + try { + const RTLConfFile = this.common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + config.nodes.forEach((node) => { + if (node.Settings.hasOwnProperty('enableLogging')) { + updateLogFlag = true; + node.Settings.logLevel = node.Settings.enableLogging ? 'INFO' : 'ERROR'; + delete node.Settings.enableLogging; + } + }); + if (updateLogFlag) { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + } + } + catch (err) { + this.errMsg = this.errMsg + '\nLog level update failed!'; + } + }; + this.validateNodeConfig = (config) => { + if ((+process.env.RTL_SSO === 0) || (typeof process.env.RTL_SSO === 'undefined' && +config.SSO.rtlSSO === 0)) { + if (process.env.APP_PASSWORD && process.env.APP_PASSWORD.trim() !== '') { + this.common.rtl_pass = this.hash.update(process.env.APP_PASSWORD).digest('hex'); + this.common.flg_allow_password_update = false; + } + else if (config.multiPassHashed && config.multiPassHashed !== '') { + this.common.rtl_pass = config.multiPassHashed; + } + else if (config.multiPass && config.multiPass !== '') { + this.common.rtl_pass = this.common.replacePasswordWithHash(this.hash.update(config.multiPass).digest('hex')); + } + else { + this.errMsg = this.errMsg + '\nNode Authentication can be set with multiPass only. Please set multiPass in RTL-Config.json'; + } + this.common.rtl_secret2fa = config.secret2fa; + } + else { + if ((process.env.APP_PASSWORD && process.env.APP_PASSWORD.trim() !== '') || (config.multiPass && config.multiPass.trim() !== '') || (config.multiPassHashed && config.multiPassHashed.trim() !== '')) { + this.errMsg = this.errMsg + '\nRTL Password cannot be set with SSO. Please set SSO as 0 or remove password.'; + } + } + this.common.port = (process.env.PORT) ? this.normalizePort(process.env.PORT) : (config.port) ? this.normalizePort(config.port) : 3000; + this.common.host = (process.env.HOST) ? process.env.HOST : (config.host) ? config.host : null; + if (config.nodes && config.nodes.length > 0) { + config.nodes.forEach((node, idx) => { + this.common.nodes[idx] = {}; + this.common.nodes[idx].index = node.index; + this.common.nodes[idx].ln_node = node.lnNode; + this.common.nodes[idx].ln_implementation = (process.env.LN_IMPLEMENTATION) ? process.env.LN_IMPLEMENTATION : node.lnImplementation ? node.lnImplementation : 'LND'; + if (this.common.nodes[idx].ln_implementation !== 'ECL' && process.env.MACAROON_PATH && process.env.MACAROON_PATH.trim() !== '') { + this.common.nodes[idx].macaroon_path = process.env.MACAROON_PATH; + } + else if (this.common.nodes[idx].ln_implementation !== 'ECL' && node.Authentication && node.Authentication.macaroonPath && node.Authentication.macaroonPath.trim() !== '') { + this.common.nodes[idx].macaroon_path = node.Authentication.macaroonPath; + } + else if (this.common.nodes[idx].ln_implementation !== 'ECL') { + this.errMsg = 'Please set macaroon path for node index ' + node.index + ' in RTL-Config.json!'; + } + if (this.common.nodes[idx].ln_implementation === 'ECL') { + if (process.env.LN_API_PASSWORD) { + this.common.nodes[idx].ln_api_password = process.env.LN_API_PASSWORD; + } + else if (node.Authentication && node.Authentication.lnApiPassword) { + this.common.nodes[idx].ln_api_password = node.Authentication.lnApiPassword; + } + else { + this.common.nodes[idx].ln_api_password = ''; + } + } + if (process.env.CONFIG_PATH) { + this.common.nodes[idx].config_path = process.env.CONFIG_PATH; + } + else if (node.Authentication && node.Authentication.configPath) { + this.common.nodes[idx].config_path = node.Authentication.configPath; + } + else { + this.common.nodes[idx].config_path = ''; + } + if (this.common.nodes[idx].ln_implementation === 'ECL' && this.common.nodes[idx].ln_api_password === '' && this.common.nodes[idx].config_path !== '') { + try { + const exists = fs.existsSync(this.common.nodes[idx].config_path); + if (exists) { + try { + const configFile = fs.readFileSync(this.common.nodes[idx].config_path, 'utf-8'); + const iniParsed = ini.parse(configFile); + this.common.nodes[idx].ln_api_password = iniParsed['eclair.api.password'] ? iniParsed['eclair.api.password'] : parseHocon(configFile).eclair.api.password; + } + catch (err) { + this.errMsg = this.errMsg + '\nSomething went wrong while reading config file: \n' + err; + } + } + else { + this.errMsg = this.errMsg + '\nInvalid config path: ' + this.common.nodes[idx].config_path; + } + } + catch (err) { + this.errMsg = this.errMsg + '\nUnable to read config file: \n' + err; + } + } + if (this.common.nodes[idx].ln_implementation === 'ECL' && this.common.nodes[idx].ln_api_password === '') { + this.errMsg = this.errMsg + '\nPlease set config path Or api password for node index ' + node.index + ' in RTL-Config.json! It is mandatory for Eclair authentication!'; + } + if (process.env.LN_SERVER_URL && process.env.LN_SERVER_URL.trim() !== '') { + this.common.nodes[idx].ln_server_url = process.env.LN_SERVER_URL.endsWith('/v1') ? process.env.LN_SERVER_URL.slice(0, -3) : process.env.LN_SERVER_URL; + } + else if (process.env.LND_SERVER_URL && process.env.LND_SERVER_URL.trim() !== '') { + this.common.nodes[idx].ln_server_url = process.env.LND_SERVER_URL.endsWith('/v1') ? process.env.LND_SERVER_URL.slice(0, -3) : process.env.LND_SERVER_URL; + } + else if (node.Settings.lnServerUrl && node.Settings.lnServerUrl.trim() !== '') { + this.common.nodes[idx].ln_server_url = node.Settings.lnServerUrl.endsWith('/v1') ? node.Settings.lnServerUrl.slice(0, -3) : node.Settings.lnServerUrl; + } + else if (node.Settings.lndServerUrl && node.Settings.lndServerUrl.trim() !== '') { + this.common.nodes[idx].ln_server_url = node.Settings.lndServerUrl.endsWith('/v1') ? node.Settings.lndServerUrl.slice(0, -3) : node.Settings.lndServerUrl; + } + else { + this.errMsg = this.errMsg + '\nPlease set LN Server URL for node index ' + node.index + ' in RTL-Config.json!'; + } + this.common.nodes[idx].user_persona = node.Settings.userPersona ? node.Settings.userPersona : 'MERCHANT'; + this.common.nodes[idx].theme_mode = node.Settings.themeMode ? node.Settings.themeMode : 'DAY'; + this.common.nodes[idx].theme_color = node.Settings.themeColor ? node.Settings.themeColor : 'PURPLE'; + this.common.nodes[idx].log_level = node.Settings.logLevel ? node.Settings.logLevel : 'ERROR'; + this.common.nodes[idx].fiat_conversion = node.Settings.fiatConversion ? !!node.Settings.fiatConversion : false; + if (this.common.nodes[idx].fiat_conversion) { + this.common.nodes[idx].currency_unit = node.Settings.currencyUnit ? node.Settings.currencyUnit : 'USD'; + } + if (process.env.SWAP_SERVER_URL && process.env.SWAP_SERVER_URL.trim() !== '') { + this.common.nodes[idx].swap_server_url = process.env.SWAP_SERVER_URL.endsWith('/v1') ? process.env.SWAP_SERVER_URL.slice(0, -3) : process.env.SWAP_SERVER_URL; + this.common.nodes[idx].swap_macaroon_path = process.env.SWAP_MACAROON_PATH; + } + else if (node.Settings.swapServerUrl && node.Settings.swapServerUrl.trim() !== '') { + this.common.nodes[idx].swap_server_url = node.Settings.swapServerUrl.endsWith('/v1') ? node.Settings.swapServerUrl.slice(0, -3) : node.Settings.swapServerUrl; + this.common.nodes[idx].swap_macaroon_path = node.Authentication.swapMacaroonPath ? node.Authentication.swapMacaroonPath : ''; + } + else { + this.common.nodes[idx].swap_server_url = ''; + this.common.nodes[idx].swap_macaroon_path = ''; + } + if (process.env.BOLTZ_SERVER_URL && process.env.BOLTZ_SERVER_URL.trim() !== '') { + this.common.nodes[idx].boltz_server_url = process.env.BOLTZ_SERVER_URL.endsWith('/v1') ? process.env.BOLTZ_SERVER_URL.slice(0, -3) : process.env.BOLTZ_SERVER_URL; + this.common.nodes[idx].boltz_macaroon_path = process.env.BOLTZ_MACAROON_PATH; + } + else if (node.Settings.boltzServerUrl && node.Settings.boltzServerUrl.trim() !== '') { + this.common.nodes[idx].boltz_server_url = node.Settings.boltzServerUrl.endsWith('/v1') ? node.Settings.boltzServerUrl.slice(0, -3) : node.Settings.boltzServerUrl; + this.common.nodes[idx].boltz_macaroon_path = node.Authentication.boltzMacaroonPath ? node.Authentication.boltzMacaroonPath : ''; + } + else { + this.common.nodes[idx].boltz_server_url = ''; + this.common.nodes[idx].boltz_macaroon_path = ''; + } + this.common.nodes[idx].enable_offers = process.env.ENABLE_OFFERS ? process.env.ENABLE_OFFERS : (node.Settings.enableOffers) ? node.Settings.enableOffers : false; + this.common.nodes[idx].bitcoind_config_path = process.env.BITCOIND_CONFIG_PATH ? process.env.BITCOIND_CONFIG_PATH : (node.Settings.bitcoindConfigPath) ? node.Settings.bitcoindConfigPath : ''; + this.common.nodes[idx].channel_backup_path = process.env.CHANNEL_BACKUP_PATH ? process.env.CHANNEL_BACKUP_PATH : (node.Settings.channelBackupPath) ? node.Settings.channelBackupPath : this.common.rtl_conf_file_path + sep + 'channels-backup' + sep + 'node-' + node.index; + try { + this.common.createDirectory(this.common.nodes[idx].channel_backup_path); + const exists = fs.existsSync(this.common.nodes[idx].channel_backup_path + sep + 'channel-all.bak'); + if (!exists) { + try { + if (this.common.nodes[idx].ln_implementation === 'LND') { + this.common.getAllNodeAllChannelBackup(this.common.nodes[idx]); + } + else { + const createStream = fs.createWriteStream(this.common.nodes[idx].channel_backup_path + sep + 'channel-all.bak'); + createStream.end(); + } + } + catch (err) { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while creating backup file: \n' + err }); + } + } + } + catch (err) { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while creating the backup directory: \n' + err }); + } + this.common.nodes[idx].log_file = this.common.rtl_conf_file_path + '/logs/RTL-Node-' + node.index + '.log'; + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'DEBUG', fileName: 'Config', msg: 'Node Information', data: this.common.nodes[idx] }); + const log_file = this.common.nodes[idx].log_file; + if (fs.existsSync(log_file)) { + fs.writeFile(log_file, '', () => { }); + } + else { + try { + const directoryName = dirname(log_file); + this.common.createDirectory(directoryName); + const createStream = fs.createWriteStream(log_file); + createStream.end(); + } + catch (err) { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while creating log file ' + log_file + ': \n' + err }); + } + } + }); + } + this.setSSOParams(config); + if (this.errMsg && this.errMsg.trim() !== '') { + throw new Error(this.errMsg); + } + }; + this.setSSOParams = (config) => { + if (process.env.RTL_SSO) { + this.common.rtl_sso = +process.env.RTL_SSO; + } + else if (config.SSO && config.SSO.rtlSSO) { + this.common.rtl_sso = config.SSO.rtlSSO; + } + if (process.env.RTL_COOKIE_PATH) { + this.common.rtl_cookie_path = process.env.RTL_COOKIE_PATH; + } + else if (config.SSO && config.SSO.rtlCookiePath) { + this.common.rtl_cookie_path = config.SSO.rtlCookiePath; + } + else { + this.common.rtl_cookie_path = ''; + } + if (process.env.LOGOUT_REDIRECT_LINK) { + this.common.logout_redirect_link = process.env.LOGOUT_REDIRECT_LINK; + } + else if (config.SSO && config.SSO.logoutRedirectLink) { + this.common.logout_redirect_link = config.SSO.logoutRedirectLink; + } + if (+this.common.rtl_sso && (!this.common.rtl_cookie_path || this.common.rtl_cookie_path.trim() === '')) { + this.errMsg = 'Please set rtlCookiePath value for single sign on option!'; + } + }; + this.setSelectedNode = (config) => { + if (config.defaultNodeIndex) { + this.common.initSelectedNode = this.common.findNode(config.defaultNodeIndex); + } + else { + this.common.initSelectedNode = this.common.findNode(this.common.nodes[0].index); + } + }; + this.setServerConfiguration = () => { + try { + this.common.rtl_conf_file_path = (process.env.RTL_CONFIG_PATH) ? process.env.RTL_CONFIG_PATH : join(this.directoryName, '../..'); + const confFileFullPath = this.common.rtl_conf_file_path + sep + 'RTL-Config.json'; + if (!fs.existsSync(confFileFullPath)) { + fs.writeFileSync(confFileFullPath, JSON.stringify(this.setDefaultConfig())); + } + const config = JSON.parse(fs.readFileSync(confFileFullPath, 'utf-8')); + this.updateLogByLevel(); + this.validateNodeConfig(config); + this.setSelectedNode(config); + } + catch (err) { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while configuring the node server: \n' + err }); + throw new Error(err); + } + }; + } +} +export const Config = new ConfigService(); diff --git a/backend/utils/cors.js b/backend/utils/cors.js new file mode 100644 index 00000000..df15737e --- /dev/null +++ b/backend/utils/cors.js @@ -0,0 +1,22 @@ +import { Logger } from './logger.js'; +class CORS { + constructor() { + this.logger = Logger; + } + mount(app) { + this.logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'CORS', msg: 'Setting up CORS.' }); + app.use((req, res, next) => { + res.setHeader('Cache-Control', 'no-cache'); + res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization, filePath'); + res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE, OPTIONS'); + if (process.env.NODE_ENV === 'development') { + res.setHeader('Access-Control-Allow-Credentials', true); + res.setHeader('Access-Control-Allow-Origin', req.headers.origin ? req.headers.origin : req.headers.host ? req.headers.host : ''); + } + next(); + }); + return app; + } + ; +} +export default new CORS; diff --git a/backend/utils/csrf.js b/backend/utils/csrf.js new file mode 100644 index 00000000..f520e429 --- /dev/null +++ b/backend/utils/csrf.js @@ -0,0 +1,17 @@ +import csurf from 'csurf/index.js'; +import { Logger } from './logger.js'; +class CSRF { + constructor() { + this.csrfProtection = csurf({ cookie: true }); + this.logger = Logger; + } + mount(app) { + this.logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'CSRF', msg: 'Setting up CSRF.' }); + if (process.env.NODE_ENV !== 'development') { + app.use((req, res, next) => this.csrfProtection(req, res, next)); + } + return app; + } + ; +} +export default new CSRF; diff --git a/backend/utils/database.js b/backend/utils/database.js new file mode 100644 index 00000000..79bfc622 --- /dev/null +++ b/backend/utils/database.js @@ -0,0 +1,209 @@ +import * as fs from 'fs'; +import { join, dirname, sep } from 'path'; +import { fileURLToPath } from 'url'; +import { Common } from '../utils/common.js'; +import { Logger } from '../utils/logger.js'; +import { CollectionsEnum, validateOffer } from '../models/database.model.js'; +export class DatabaseService { + constructor() { + this.common = Common; + this.logger = Logger; + this.dbDirectory = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'database'); + this.nodeDatabase = {}; + } + loadDatabase(selectedNode) { + try { + if (!this.nodeDatabase[selectedNode.index]) { + this.nodeDatabase[selectedNode.index] = { adapter: null, data: null }; + } + this.nodeDatabase[selectedNode.index].adapter = new DatabaseAdapter(this.dbDirectory, 'rtldb', selectedNode); + this.nodeDatabase[selectedNode.index].data = this.nodeDatabase[selectedNode.index].adapter.fetchData(); + } + catch (err) { + this.logger.log({ selectedNode: selectedNode, level: 'ERROR', fileName: 'Database', msg: 'Database Load Error', error: err }); + } + } + create(selectedNode, collectionName, newDocument) { + return new Promise((resolve, reject) => { + try { + if (!selectedNode || !selectedNode.index) { + reject(new Error('Selected Node Config Not Found.')); + } + const validationRes = this.validateDocument(CollectionsEnum.OFFERS, newDocument); + if (!validationRes.isValid) { + reject(validationRes.error); + } + else { + this.nodeDatabase[selectedNode.index].data[collectionName].push(newDocument); + this.saveDatabase(+selectedNode.index); + resolve(newDocument); + } + } + catch (errRes) { + reject(errRes); + } + }); + } + update(selectedNode, collectionName, updatedDocument, documentFieldName, documentFieldValue) { + return new Promise((resolve, reject) => { + try { + if (!selectedNode || !selectedNode.index) { + reject(new Error('Selected Node Config Not Found.')); + } + let foundDocIdx = -1; + let foundDoc = null; + if (this.nodeDatabase[selectedNode.index].data[collectionName]) { + foundDocIdx = this.nodeDatabase[selectedNode.index].data[collectionName].findIndex((document) => document[documentFieldName] === documentFieldValue); + foundDoc = foundDocIdx > -1 ? JSON.parse(JSON.stringify(this.nodeDatabase[selectedNode.index].data[collectionName][foundDocIdx])) : null; + } + if (foundDocIdx > -1 && foundDoc) { + for (const docKey in updatedDocument) { + if (Object.prototype.hasOwnProperty.call(updatedDocument, docKey)) { + foundDoc[docKey] = updatedDocument[docKey]; + } + } + updatedDocument = foundDoc; + } + const validationRes = this.validateDocument(CollectionsEnum.OFFERS, updatedDocument); + if (!validationRes.isValid) { + reject(validationRes.error); + } + else { + if (foundDocIdx > -1) { + this.nodeDatabase[selectedNode.index].data[collectionName].splice(foundDocIdx, 1, updatedDocument); + } + else { + if (!this.nodeDatabase[selectedNode.index].data[collectionName]) { + this.nodeDatabase[selectedNode.index].data[collectionName] = []; + } + this.nodeDatabase[selectedNode.index].data[collectionName].push(updatedDocument); + } + this.saveDatabase(+selectedNode.index); + resolve(updatedDocument); + } + } + catch (errRes) { + reject(errRes); + } + }); + } + find(selectedNode, collectionName, documentFieldName, documentFieldValue) { + return new Promise((resolve, reject) => { + try { + if (!selectedNode || !selectedNode.index) { + reject(new Error('Selected Node Config Not Found.')); + } + if (documentFieldName && documentFieldValue) { + resolve(this.nodeDatabase[selectedNode.index].data[collectionName].find((document) => document[documentFieldName] === documentFieldValue)); + } + else { + resolve(this.nodeDatabase[selectedNode.index].data[collectionName]); + } + } + catch (errRes) { + reject(errRes); + } + }); + } + destroy(selectedNode, collectionName, documentFieldName, documentFieldValue) { + return new Promise((resolve, reject) => { + try { + if (!selectedNode || !selectedNode.index) { + reject(new Error('Selected Node Config Not Found.')); + } + const removeDocIdx = this.nodeDatabase[selectedNode.index].data[collectionName].findIndex((document) => document[documentFieldName] === documentFieldValue); + if (removeDocIdx > -1) { + this.nodeDatabase[selectedNode.index].data[collectionName].splice(removeDocIdx, 1); + } + else { + reject(new Error('Unable to delete, document not found.')); + } + this.saveDatabase(+selectedNode.index); + resolve(documentFieldValue); + } + catch (errRes) { + reject(errRes); + } + }); + } + validateDocument(collectionName, documentToValidate) { + switch (collectionName) { + case CollectionsEnum.OFFERS: + return validateOffer(documentToValidate); + default: + return ({ isValid: false, error: 'Collection does not exist' }); + } + } + saveDatabase(nodeIndex) { + try { + const selNode = this.nodeDatabase[nodeIndex] && this.nodeDatabase[nodeIndex].adapter && this.nodeDatabase[nodeIndex].adapter.selNode ? this.nodeDatabase[nodeIndex].adapter.selNode : null; + if (!this.nodeDatabase[nodeIndex]) { + this.logger.log({ selectedNode: selNode, level: 'ERROR', fileName: 'Database', msg: 'Database Save Error: Selected Node Setup Not Found.' }); + throw new Error('Database Save Error: Selected Node Setup Not Found.'); + } + this.nodeDatabase[nodeIndex].adapter.saveData(this.nodeDatabase[nodeIndex].data); + this.logger.log({ selectedNode: this.nodeDatabase[nodeIndex].adapter.selNode, level: 'INFO', fileName: 'Database', msg: 'Database Saved' }); + return true; + } + catch (err) { + const selNode = this.nodeDatabase[nodeIndex] && this.nodeDatabase[nodeIndex].adapter && this.nodeDatabase[nodeIndex].adapter.selNode ? this.nodeDatabase[nodeIndex].adapter.selNode : null; + this.logger.log({ selectedNode: selNode, level: 'ERROR', fileName: 'Database', msg: 'Database Save Error', error: err }); + return new Error(err); + } + } + unloadDatabase(nodeIndex) { + this.saveDatabase(nodeIndex); + this.nodeDatabase[nodeIndex] = null; + } +} +export class DatabaseAdapter { + constructor(dbDirectoryPath, fileName, selNode = null) { + this.dbDirectoryPath = dbDirectoryPath; + this.fileName = fileName; + this.selNode = selNode; + this.dbFile = ''; + this.dbFile = dbDirectoryPath + sep + fileName + '-node-' + selNode.index + '.json'; + } + fetchData() { + try { + if (!fs.existsSync(this.dbDirectoryPath)) { + fs.mkdirSync(this.dbDirectoryPath); + } + } + catch (err) { + return new Error('Unable to Create Directory Error ' + JSON.stringify(err)); + } + try { + if (!fs.existsSync(this.dbFile)) { + fs.writeFileSync(this.dbFile, '{}'); + } + } + catch (err) { + return new Error('Unable to Create Database File Error ' + JSON.stringify(err)); + } + try { + const dataFromFile = fs.readFileSync(this.dbFile, 'utf-8'); + return !dataFromFile ? null : JSON.parse(dataFromFile); + } + catch (err) { + return new Error('Database Read Error ' + JSON.stringify(err)); + } + } + getSelNode() { + return this.selNode; + } + saveData(data) { + try { + if (data) { + const tempFile = this.dbFile + '.tmp'; + fs.writeFileSync(tempFile, JSON.stringify(data, null, 2)); + fs.renameSync(tempFile, this.dbFile); + } + return true; + } + catch (err) { + return new Error('Database Write Error ' + JSON.stringify(err)); + } + } +} +export const Database = new DatabaseService(); diff --git a/backend/utils/logger.js b/backend/utils/logger.js new file mode 100644 index 00000000..7a19be84 --- /dev/null +++ b/backend/utils/logger.js @@ -0,0 +1,68 @@ +/* eslint-disable no-console */ +import * as fs from 'fs'; +export class LoggerService { + constructor() { + this.log = (msgJSON) => { + let msgStr = '\r\n[' + new Date().toLocaleString() + '] ' + msgJSON.level + ': ' + msgJSON.fileName + ' => ' + msgJSON.msg; + switch (msgJSON.level) { + case 'ERROR': + if (msgJSON.error) { + msgStr = msgStr + ': ' + ((msgJSON.error.error && msgJSON.error.error.message && typeof msgJSON.error.error.message === 'string') ? msgJSON.error.error.message : (typeof msgJSON.error === 'object' && msgJSON.error.stack) ? JSON.stringify(msgJSON.error.stack) : (typeof msgJSON.error === 'object') ? JSON.stringify(msgJSON.error) : (typeof msgJSON.error === 'string') ? msgJSON.error : ''); + } + else { + msgStr = msgStr + '.'; + } + console.error(msgStr); + if (msgJSON.selectedNode && msgJSON.selectedNode.log_file) { + fs.appendFile(msgJSON.selectedNode.log_file, msgStr, () => { }); + } + break; + case 'WARN': + if (!msgJSON.selectedNode) { + console.warn(prepMsgData(msgJSON, msgStr)); + } + else if (msgJSON.selectedNode && (msgJSON.selectedNode.log_level === 'INFO' || msgJSON.selectedNode.log_level === 'WARN' || msgJSON.selectedNode.log_level === 'DEBUG')) { + msgStr = prepMsgData(msgJSON, msgStr); + console.warn(msgStr); + if (msgJSON.selectedNode && msgJSON.selectedNode.log_file) { + fs.appendFile(msgJSON.selectedNode.log_file, msgStr, () => { }); + } + } + break; + case 'DEBUG': + case 'INFO': + if (!msgJSON.selectedNode) { + console.log(prepMsgData(msgJSON, msgStr)); + } + else if (msgJSON.selectedNode && (msgJSON.selectedNode.log_level === 'DEBUG')) { + if (typeof msgJSON.data !== 'string' && msgJSON.data && msgJSON.data.length && msgJSON.data.length > 0) { + msgStr = msgJSON.data.reduce((accumulator, dataEle) => accumulator + (typeof dataEle === 'object' ? JSON.stringify(dataEle) : (typeof dataEle === 'string') ? dataEle : '') + ', ', msgStr + ': ['); + msgStr = msgStr.slice(0, -2) + ']'; + } + else { + msgStr = prepMsgData(msgJSON, msgStr); + } + console.log(msgStr); + if (msgJSON.selectedNode && msgJSON.selectedNode.log_file) { + fs.appendFile(msgJSON.selectedNode.log_file, msgStr, () => { }); + } + } + break; + default: + console.log(msgStr); + break; + } + }; + } +} +; +const prepMsgData = (msgJSON, msgStr) => { + if (msgJSON.data) { + msgStr = msgStr + ': ' + (typeof msgJSON.data === 'object' ? JSON.stringify(msgJSON.data) : (typeof msgJSON.data === 'string') ? msgJSON.data : ''); + } + else { + msgStr = msgStr + '.'; + } + return msgStr; +}; +export const Logger = new LoggerService(); diff --git a/backend/utils/webSocketServer.js b/backend/utils/webSocketServer.js new file mode 100644 index 00000000..0911e69c --- /dev/null +++ b/backend/utils/webSocketServer.js @@ -0,0 +1,178 @@ +import { parse } from 'cookie'; +import * as cookieParser from 'cookie-parser'; +import * as crypto from 'crypto'; +import WebSocket from 'ws'; +import { Logger } from './logger.js'; +import { Common } from './common.js'; +import { verifyWSUser } from './authCheck.js'; +import { EventEmitter } from 'events'; +export class WebSocketServer { + constructor() { + this.logger = Logger; + this.common = Common; + this.clientDetails = []; + this.eventEmitterCLT = new EventEmitter(); + this.eventEmitterECL = new EventEmitter(); + this.eventEmitterLND = new EventEmitter(); + this.webSocketServer = null; + this.pingInterval = setInterval(() => { + if (this.webSocketServer.clients.size && this.webSocketServer.clients.size > 0) { + this.webSocketServer.clients.forEach((client) => { + if (client.isAlive === false) { + this.updateLNWSClientDetails(client.sessionId, -1, client.clientNodeIndex); + return client.terminate(); + } + client.isAlive = false; + client.ping(); + }); + } + }, 1000 * 60 * 60); // Terminate broken connections every hour + this.mount = (httpServer) => { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'DEBUG', fileName: 'WebSocketServer', msg: 'Connecting Websocket Server.' }); + this.webSocketServer = new WebSocket.Server({ noServer: true, path: this.common.baseHref + '/api/ws', verifyClient: (process.env.NODE_ENV === 'development') ? null : verifyWSUser }); + httpServer.on('upgrade', (request, socket, head) => { + if (request.headers['upgrade'] !== 'websocket') { + socket.end('HTTP/1.1 400 Bad Request'); + return; + } + const acceptKey = request.headers['sec-websocket-key']; + const hash = this.generateAcceptValue(acceptKey); + const responseHeaders = ['HTTP/1.1 101 Web Socket Protocol Handshake', 'Upgrade: WebSocket', 'Connection: Upgrade', 'Sec-WebSocket-Accept: ' + hash]; + const protocols = !request.headers['sec-websocket-protocol'] ? [] : request.headers['sec-websocket-protocol'].split(',').map((s) => s.trim()); + if (protocols.includes('json')) { + responseHeaders.push('Sec-WebSocket-Protocol: json'); + } + this.webSocketServer.handleUpgrade(request, socket, head, this.upgradeCallback); + }); + this.webSocketServer.on('connection', this.mountEventsOnConnection); + this.webSocketServer.on('close', () => clearInterval(this.pingInterval)); + }; + this.upgradeCallback = (websocket, request) => { + this.webSocketServer.emit('connection', websocket, request); + }; + this.mountEventsOnConnection = (websocket, request) => { + const protocols = !request.headers['sec-websocket-protocol'] ? [] : request.headers['sec-websocket-protocol'].split(',').map((s) => s.trim()); + const cookies = parse(request.headers.cookie); + websocket.clientId = Date.now(); + websocket.isAlive = true; + websocket.sessionId = cookieParser.signedCookie(cookies['connect.sid'], this.common.secret_key); + websocket.clientNodeIndex = +protocols[1]; + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'INFO', fileName: 'WebSocketServer', msg: 'Connected: ' + websocket.clientId + ', Total WS clients: ' + this.webSocketServer.clients.size }); + websocket.on('error', this.sendErrorToAllLNClients); + websocket.on('message', this.sendEventsToAllLNClients); + websocket.on('pong', () => { websocket.isAlive = true; }); + websocket.on('close', (code, reason) => { + this.updateLNWSClientDetails(websocket.sessionId, -1, websocket.clientNodeIndex); + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'INFO', fileName: 'WebSocketServer', msg: 'Disconnected due to ' + code + ' : ' + websocket.clientId + ', Total WS clients: ' + this.webSocketServer.clients.size }); + }); + }; + this.updateLNWSClientDetails = (sessionId, currNodeIndex, prevNodeIndex) => { + if (prevNodeIndex >= 0 && currNodeIndex >= 0) { + this.webSocketServer.clients.forEach((client) => { + if (client.sessionId === sessionId) { + client.clientNodeIndex = currNodeIndex; + } + }); + this.disconnectFromNodeClient(sessionId, prevNodeIndex); + this.connectToNodeClient(sessionId, currNodeIndex); + } + else if (prevNodeIndex >= 0 && currNodeIndex < 0) { + this.disconnectFromNodeClient(sessionId, prevNodeIndex); + } + else if (prevNodeIndex < 0 && currNodeIndex >= 0) { + this.connectToNodeClient(sessionId, currNodeIndex); + } + else { + const selectedNode = this.common.findNode(currNodeIndex); + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'ERROR', fileName: 'WebSocketServer', msg: 'Invalid Node Selection. Previous and current node indices can not be less than zero.' }); + } + }; + this.disconnectFromNodeClient = (sessionId, prevNodeIndex) => { + const foundClient = this.clientDetails.find((clientDetail) => clientDetail.index === +prevNodeIndex); + if (foundClient) { + const foundSessionIdx = foundClient.sessionIds.findIndex((sid) => sid === sessionId); + if (foundSessionIdx > -1) { + foundClient.sessionIds.splice(foundSessionIdx, 1); + } + if (foundClient.sessionIds.length === 0) { + const foundClientIdx = this.clientDetails.findIndex((clientDetail) => clientDetail.index === +prevNodeIndex); + this.clientDetails.splice(foundClientIdx, 1); + const prevSelectedNode = this.common.findNode(prevNodeIndex); + if (prevSelectedNode && prevSelectedNode.ln_implementation) { + switch (prevSelectedNode.ln_implementation) { + case 'LND': + this.eventEmitterLND.emit('DISCONNECT', prevNodeIndex); + break; + case 'CLT': + this.eventEmitterCLT.emit('DISCONNECT', prevNodeIndex); + break; + case 'ECL': + this.eventEmitterECL.emit('DISCONNECT', prevNodeIndex); + break; + default: + break; + } + } + } + } + }; + this.connectToNodeClient = (sessionId, currNodeIndex) => { + let foundClient = this.clientDetails.find((clientDetail) => clientDetail.index === +currNodeIndex); + if (foundClient) { + const foundSessionIdx = foundClient.sessionIds.findIndex((sid) => sid === sessionId); + if (foundSessionIdx < 0) { + foundClient.sessionIds.push(sessionId); + } + } + else { + const currSelectedNode = this.common.findNode(currNodeIndex); + foundClient = { index: currNodeIndex, sessionIds: [sessionId] }; + this.clientDetails.push(foundClient); + if (currSelectedNode && currSelectedNode.ln_implementation) { + switch (currSelectedNode.ln_implementation) { + case 'LND': + this.eventEmitterLND.emit('CONNECT', currNodeIndex); + break; + case 'CLT': + this.eventEmitterCLT.emit('CONNECT', currNodeIndex); + break; + case 'ECL': + this.eventEmitterECL.emit('CONNECT', currNodeIndex); + break; + default: + break; + } + } + } + }; + this.sendErrorToAllLNClients = (serverError, selectedNode) => { + try { + this.webSocketServer.clients.forEach((client) => { + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'ERROR', fileName: 'WebSocketServer', msg: 'Broadcasting error to clients...: ' + serverError }); + if (+client.clientNodeIndex === +selectedNode.index) { + client.send(serverError); + } + }); + } + catch (err) { + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'ERROR', fileName: 'WebSocketServer', msg: 'Error while broadcasting message: ' + JSON.stringify(err) }); + } + }; + this.sendEventsToAllLNClients = (newMessage, selectedNode) => { + try { + this.webSocketServer.clients.forEach((client) => { + if (+client.clientNodeIndex === +selectedNode.index) { + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'INFO', fileName: 'WebSocketServer', msg: 'Broadcasting message to client...: ' + client.clientId }); + client.send(newMessage); + } + }); + } + catch (err) { + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'ERROR', fileName: 'WebSocketServer', msg: 'Error while broadcasting message: ' + JSON.stringify(err) }); + } + }; + this.generateAcceptValue = (acceptKey) => crypto.createHash('sha1').update(acceptKey + crypto.randomBytes(64).toString('hex')).digest('base64'); + this.getClients = () => this.webSocketServer.clients; + } +} +export const WSServer = new WebSocketServer(); diff --git a/controllers/c-lightning/balance.js b/controllers/c-lightning/balance.js deleted file mode 100644 index e68f22e3..00000000 --- a/controllers/c-lightning/balance.js +++ /dev/null @@ -1,22 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getBalance = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Balance', msg: 'Getting Balance..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/getBalance'; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Balance', msg: 'Balance Received', data: body}); - if (!body.totalBalance) { body.totalBalance = 0; } - if (!body.confBalance) { body.confBalance = 0; } - if (!body.unconfBalance) { body.unconfBalance = 0; } - logger.log({level: 'INFO', fileName: 'Balance', msg: 'Balance Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Balance', 'Get Balance Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/c-lightning/channels.js b/controllers/c-lightning/channels.js deleted file mode 100644 index f13b5c8f..00000000 --- a/controllers/c-lightning/channels.js +++ /dev/null @@ -1,112 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.listChannels = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channels..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channel/listChannels'; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'List Channels', data: body}); - body.map(channel => { - if (!channel.alias || channel.alias === '') { channel.alias = channel.id.substring(0, 20); } - local = (channel.msatoshi_to_us) ? channel.msatoshi_to_us : 0; - remote = (channel.msatoshi_to_them) ? channel.msatoshi_to_them : 0; - total = channel.msatoshi_total ? channel.msatoshi_total : 0; - channel.balancedness = (total == 0) ? 1 : (1 - Math.abs((local-remote)/total)).toFixed(3); - }) - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'List Channels Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.openChannel = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channel/openChannel'; - options.body = req.body; - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Options', data: options.body}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Opened'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Open Channel Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.setChannelFee = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Setting Channel Fee..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channel/setChannelFee'; - options.body = req.body; - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.body}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Fee Set'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Update Channel Policy Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.closeChannel = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..'}); - req.setTimeout(60000 * 10); // timeout 10 mins - options = common.getOptions(); - const unilateralTimeoutQuery = req.query.force ? '?unilateralTimeout=1' : ''; - options.url = common.getSelLNServerUrl() + '/v1/channel/closeChannel/' + req.params.channelId + unilateralTimeoutQuery; - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel', data: options.url}); - request.delete(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Closed'}); - res.status(204).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Close Channel Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.getLocalRemoteBalance = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Local & Remote Balances..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channel/localremotebal'; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Local Remote Balance', data: body}); - if (!body.localBalance) { body.localBalance = 0; } - if (!body.remoteBalance) { body.remoteBalance = 0; } - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Local & Remote Balances Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Local Remote Balance Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.listForwards = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channel List Forwards..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channel/listForwards?status=' + req.query.status; - request.get(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Response For Status ' + req.query.status, data: body}); - if (body && body.length > 0) { body = common.sortDescByKey(body, 'received_time'); } - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Received For Status' + req.query.status, data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel List Forwards Received For Status ' + req.query.status}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Forwarding History Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/c-lightning/fees.js b/controllers/c-lightning/fees.js deleted file mode 100644 index 58619916..00000000 --- a/controllers/c-lightning/fees.js +++ /dev/null @@ -1,20 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getFees = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/getFees'; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received', data: body}); - if (!body.feeCollected) { body.feeCollected = 0; } - logger.log({level: 'INFO', fileName: 'Fees', msg: 'Fees Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Fees', 'Get Fees Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/c-lightning/getInfo.js b/controllers/c-lightning/getInfo.js deleted file mode 100644 index 39ae6c6b..00000000 --- a/controllers/c-lightning/getInfo.js +++ /dev/null @@ -1,58 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getInfo = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Getting CLightning Node Information..'}); - common.setOptions(); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/getinfo'; - logger.log({level: 'DEBUG', fileName:'GetInfo', msg: 'Selected Node', data: common.selectedNode.ln_node}); - logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from C-Lightning server url', data: options.url}); - if (!options.headers || !options.headers.macaroon) { - const errMsg = 'C-Lightning get info failed due to bad or missing macaroon!'; - const err = common.handleError({ statusCode: 502, message: 'Bad Macaroon', error: errMsg }, 'GetInfo', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } else { - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Node Information', data: body}); - const body_str = (!body) ? '' : JSON.stringify(body); - const search_idx = (!body) ? -1 : body_str.search('Not Found'); - if (!body || search_idx > -1 || body.error) { - if (body && !body.error) { body.error = 'Error From Server!'; } - const err = common.handleError(body, 'GetInfo', 'Get Info Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } else { - body.lnImplementation = 'C-Lightning'; - let chainObj = { chain: '', network: '' }; - if (body.network === 'testnet') { - chainObj.chain = 'Bitcoin'; - chainObj.network = 'Testnet'; - } else if (body.network === 'bitcoin') { - chainObj.chain = 'Bitcoin'; - chainObj.network = 'Mainnet'; - } else if (body.network === 'litecoin') { - chainObj.chain = 'Litecoin'; - chainObj.network = 'Mainnet'; - } else if (body.network === 'litecoin-testnet') { - chainObj.chain = 'Litecoin'; - chainObj.network = 'Testnet'; - } - body.chains = [chainObj]; - body.uris = []; - if (body.address && body.address.length>0) { - body.address.forEach(addr => { - body.uris.push(body.id + '@' + addr.address + ':' + addr.port); - }); - } - logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'CLightning Node Information Received'}); - res.status(200).json(body); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'GetInfo', 'Get Info Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; diff --git a/controllers/c-lightning/invoices.js b/controllers/c-lightning/invoices.js deleted file mode 100644 index 3b405656..00000000 --- a/controllers/c-lightning/invoices.js +++ /dev/null @@ -1,57 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.deleteExpiredInvoice = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Deleting Expired Invoices..'}); - options = common.getOptions(); - const queryStr = req.query.maxExpiry ? '?maxexpiry=' + req.query.maxExpiry : ''; - options.url = common.getSelLNServerUrl() + '/v1/invoice/delExpiredInvoice' + queryStr; - request.delete(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices Deleted', data: body}); - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Expired Invoices Deleted'}); - res.status(204).json({status: 'Invoice Deleted Successfully'}); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoice', 'Delete Invoice Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.listInvoices = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Getting Invoices..'}); - options = common.getOptions(); - const labelQuery = req.query.label ? '?label=' + req.query.label : ''; - options.url = common.getSelLNServerUrl() + '/v1/invoice/listInvoices' + labelQuery; - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List URL', data: options.url}); - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body}); - if ( body.invoices && body.invoices.length > 0) { - body.invoices = common.sortDescByKey(body.invoices, 'expires_at'); - } - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body}); - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Invoices Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoice', 'List Invoices Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.addInvoice = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/invoice/genInvoice'; - options.body = req.body; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Responce', data: body}); - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoice', 'Add Invoice Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/c-lightning/message.js b/controllers/c-lightning/message.js deleted file mode 100644 index eb1a2298..00000000 --- a/controllers/c-lightning/message.js +++ /dev/null @@ -1,35 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.signMessage = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Message', msg: 'Signing Message..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/utility/signMessage'; - options.form = { message: req.body.message }; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed', data: body}); - logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Signed'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Message', 'Sign Message Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.verifyMessage = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Message', msg: 'Verifying Message..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/utility/checkMessage/' + req.body.message + '/' + req.body.signature; - request.get(options, (error, response, body) => { - logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified', data: body}); - logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Verified'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Message', 'Verify Message Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/c-lightning/network.js b/controllers/c-lightning/network.js deleted file mode 100644 index 960e341d..00000000 --- a/controllers/c-lightning/network.js +++ /dev/null @@ -1,63 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getRoute = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Network', msg: 'Getting Network Routes..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/network/getRoute/' + req.params.destPubkey + '/' + req.params.amount; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Query Routes Received', data: body}); - logger.log({level: 'INFO', fileName: 'Network', msg: 'Network Routes Received'}); - res.status(200).json({routes: body}); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Network', 'Query Routes Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.listNode = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/network/listNode/' + req.params.id; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup', data: body}); - logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Network', 'Node Lookup Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.listChannel = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Network', msg: 'Channel Lookup..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/network/listChannel/' + req.params.channelShortId; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Channel Lookup', data: body}); - logger.log({level: 'INFO', fileName: 'Network', msg: 'Channel Lookup Finished'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Network', 'Channel Lookup Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.feeRates = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Network', msg: 'Getting Network Fee Rates..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/network/feeRates/' + req.params.feeRateStyle; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Network Fee Rates Received for ' + req.params.feeRateStyle, data: body}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Network', 'Fee Rates Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/c-lightning/onchain.js b/controllers/c-lightning/onchain.js deleted file mode 100644 index c32b8a36..00000000 --- a/controllers/c-lightning/onchain.js +++ /dev/null @@ -1,49 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getNewAddress = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/newaddr?addrType=' + req.query.type; - request(options).then((body) => { - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'OnChain', 'New Address Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.onChainWithdraw = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Withdrawing from On Chain..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/withdraw'; - options.body = req.body; - logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Options', data: options.body}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Response', data: body}); - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Withdraw Finished'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'OnChain', 'Withdraw Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.getUTXOs = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'List Funds..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/listFunds'; - request(options).then((body) => { - if (body.outputs) { body.outputs = common.sortDescByStrKey(body.outputs, 'status'); } - logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'List Funds Received', data: body}); - res.status(200).json(body); - }).catch(errRes => { - const err = common.handleError(errRes, 'OnChain', 'List Funds Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/c-lightning/payments.js b/controllers/c-lightning/payments.js deleted file mode 100644 index 678613c3..00000000 --- a/controllers/c-lightning/payments.js +++ /dev/null @@ -1,100 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -function paymentReducer(accumulator, currentPayment) { - let currPayHash = currentPayment.payment_hash; - if (!currentPayment.partid) { currentPayment.partid = 0; } - if (!accumulator[currPayHash]) { - accumulator[currPayHash] = [currentPayment]; - } else { - accumulator[currPayHash].push(currentPayment); - } - return accumulator; -} - -function summaryReducer(accumulator, mpp) { - if (mpp.status === 'complete') { - accumulator.msatoshi = accumulator.msatoshi + mpp.msatoshi; - accumulator.msatoshi_sent = accumulator.msatoshi_sent + mpp.msatoshi_sent; - accumulator.status = mpp.status; - } - return accumulator; -} - -function groupBy(payments) { - let temp = null; - let paymentsInGroups = payments.reduce(paymentReducer, {}); - let paymentsGrpArray = Object.keys(paymentsInGroups).map(key => (paymentsInGroups[key].length && paymentsInGroups[key].length > 1) ? common.sortDescByKey(paymentsInGroups[key], 'partid') : paymentsInGroups[key]); - return paymentsGrpArray.reduce((acc, curr) => { - if (curr.length && curr.length === 1) { - temp = JSON.parse(JSON.stringify(curr)); - temp[0].is_group = false; - temp[0].is_expanded = false; - temp[0].total_parts = 1; - delete temp[0].partid; - } else { - temp = {}; - let paySummary = curr.reduce(summaryReducer, {msatoshi: 0, msatoshi_sent: 0, status: (curr[0] && curr[0].status) ? curr[0].status : 'failed'}); - temp = {is_group: true, is_expanded: false, total_parts: (curr.length ? curr.length : 0), status: paySummary.status, payment_hash: curr[0].payment_hash, - destination: curr[0].destination, msatoshi: paySummary.msatoshi, msatoshi_sent: paySummary.msatoshi_sent, created_at: curr[0].created_at, - mpps: curr}; - } - return acc.concat(temp); - }, []); -} - -exports.listPayments = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'List Payments..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/pay/listPayments'; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received', data: body.payments}); - if ( body && body.payments && body.payments.length > 0) { - body.payments = common.sortDescByKey(body.payments, 'created_at'); - } - logger.log({level: 'INFO', fileName: 'Payments', msg: 'List Payments Received'}); - res.status(200).json(groupBy(body.payments)); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Payments', 'List Payments Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.decodePayment = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/pay/decodePay/' + req.params.invoice; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: body}); - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Payments', 'Decode Payment Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.postPayment = (req, res, next) => { - options = common.getOptions(); - if (req.params.type === 'keysend') { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Keysend Payment..'}); - options.url = common.getSelLNServerUrl() + '/v1/pay/keysend'; - } else { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Send Payment..'}); - options.url = common.getSelLNServerUrl() + '/v1/pay'; - } - options.body = req.body; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response', data: body}); - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Sent'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Payments', 'Send Payment Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/c-lightning/peers.js b/controllers/c-lightning/peers.js deleted file mode 100644 index 31ebbbc2..00000000 --- a/controllers/c-lightning/peers.js +++ /dev/null @@ -1,62 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getPeers = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'List Peers..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/peer/listPeers'; - request(options).then(function (body) { - body.forEach(peer => { if (!peer.alias || peer.alias === '') { peer.alias = peer.id.substring(0, 20);}}); - let peers = (body) ? common.sortDescByStrKey(body, 'alias') : []; - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias', data: peers}); - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peers Received'}); - res.status(200).json(peers); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'List Peers Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.postPeer = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/peer/connect'; - options.body = req.body; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added', data: body}); - options.url = common.getSelLNServerUrl() + '/v1/peer/listPeers'; - request(options).then(function (body) { - let peers = ( body) ? common.sortDescByStrKey(body, 'alias') : []; - peers = common.newestOnTop(peers, 'id', req.body.id); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: peers}); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully'}); - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Connected'}); - res.status(201).json(peers); - }).catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Connect Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - }).catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Connect Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.deletePeer = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/peer/disconnect/' + req.params.peerId + '?force=' + req.query.force; - request.delete(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response', data: body}); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached', data: req.params.peerId}); - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected'}); - res.status(204).json({}); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Detach Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/eclair/channels.js b/controllers/eclair/channels.js deleted file mode 100644 index de8d7b81..00000000 --- a/controllers/eclair/channels.js +++ /dev/null @@ -1,187 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -arrangeChannels = (simplifiedChannels) => { - let channelTotal = 0; - let totalLocalBalance = 0; - let totalRemoteBalance = 0; - let lightningBalances = { localBalance: 0, remoteBalance: 0 }; - let channelStatus = {active: { channels: 0, capacity: 0 }, inactive: { channels: 0, capacity: 0 }, pending: { channels: 0, capacity: 0 }}; - let activeChannels = []; - let pendingChannels = []; - let inactiveChannels = []; - simplifiedChannels.forEach((channel, i) => { - if (channel.state === 'NORMAL') { - channelTotal = channel.toLocal + channel.toRemote; - totalLocalBalance = totalLocalBalance + channel.toLocal; - totalRemoteBalance = totalRemoteBalance + channel.toRemote; - channel.balancedness = (channelTotal == 0) ? 1 : (1 - Math.abs((channel.toLocal-channel.toRemote)/channelTotal)).toFixed(3); - activeChannels.push(channel); - channelStatus.active.channels = channelStatus.active.channels + 1; - channelStatus.active.capacity = channelStatus.active.capacity + channel.toLocal; - } else if (channel.state.includes('WAIT') || channel.state.includes('CLOSING') || channel.state.includes('SYNCING')) { - channel.state = channel.state.replace(/_/g, ' '); - pendingChannels.push(channel); - channelStatus.pending.channels = channelStatus.pending.channels + 1; - channelStatus.pending.capacity = channelStatus.pending.capacity + channel.toLocal; - } else { - channel.state = channel.state.replace(/_/g, ' '); - inactiveChannels.push(channel); - channelStatus.inactive.channels = channelStatus.inactive.channels + 1; - channelStatus.inactive.capacity = channelStatus.inactive.capacity + channel.toLocal; - } - }); - lightningBalances = { localBalance: totalLocalBalance, remoteBalance: totalRemoteBalance }; - activeChannels = common.sortDescByKey(activeChannels, 'balancedness'); - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Lightning Balances', data: lightningBalances}); - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Active Channels', data: activeChannels}); - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Pending Channels', data: pendingChannels}); - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Inactive Channels', data: inactiveChannels}); - return ({activeChannels: activeChannels, pendingChannels: pendingChannels, inactiveChannels: inactiveChannels, lightningBalances: lightningBalances, channelStatus: channelStatus}); -}; - -simplifyAllChannels = (channels) => { - let channelNodeIds = ''; - let simplifiedChannels = []; - channels.forEach(channel => { - channelNodeIds = channelNodeIds + ',' + channel.nodeId; - simplifiedChannels.push({ - nodeId: channel.nodeId ? channel.nodeId : '', - channelId: channel.channelId ? channel.channelId : '', - state: channel.state ? channel.state : '', - channelFlags: channel.data && channel.data.commitments && channel.data.commitments.channelFlags ? channel.data.commitments.channelFlags : 0, - toLocal: (channel.data.commitments.localCommit.spec.toLocal) ? Math.round(+channel.data.commitments.localCommit.spec.toLocal/1000) : 0, - toRemote: (channel.data.commitments.localCommit.spec.toRemote) ? Math.round(+channel.data.commitments.localCommit.spec.toRemote/1000) : 0, - shortChannelId: channel.data && channel.data.shortChannelId ? channel.data.shortChannelId : '', - isFunder: channel.data && channel.data.commitments && channel.data.commitments.localParams && channel.data.commitments.localParams.isFunder ? channel.data.commitments.localParams.isFunder : false, - buried: channel.data && channel.data.buried ? channel.data.buried : false, - feeBaseMsat: channel.data && channel.data.channelUpdate && channel.data.channelUpdate.feeBaseMsat ? channel.data.channelUpdate.feeBaseMsat : 0, - feeRatePerKw: (channel.data.commitments.localCommit.spec.feeratePerKw) ? channel.data.commitments.localCommit.spec.feeratePerKw : 0, - feeProportionalMillionths: channel.data && channel.data.channelUpdate && channel.data.channelUpdate.feeProportionalMillionths ? channel.data.channelUpdate.feeProportionalMillionths : 0, - alias: '' - }); - }); - channelNodeIds = channelNodeIds.substring(1); - options.url = common.getSelLNServerUrl() + '/nodes'; - options.form = { nodeIds: channelNodeIds }; - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Node Ids to find alias', data: channelNodeIds}); - return request.post(options).then(function(nodes) { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Filtered Nodes', data: nodes}); - let foundPeer = {}; - simplifiedChannels.map(channel => { - foundPeer = nodes.find(channelWithAlias => channel.nodeId === channelWithAlias.nodeId); - channel.alias = foundPeer ? foundPeer.alias : channel.nodeId.substring(0, 20); - }); - return simplifiedChannels; - }).catch(err => { - return simplifiedChannels; - }); -}; - -exports.getChannels = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'List Channels..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/channels'; - options.form = {}; - if (req.query && req.query.nodeId) { - options.form = req.query; - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Channels Node Id', data: options.form}); - } - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Options', data: options}); - if (common.read_dummy_data) { - common.getDummyData('Channels').then(function(data) { res.status(200).json(arrangeChannels(data)); }); - } else { - request.post(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'All Channels', data: body}); - if (body && body.length) { - return simplifyAllChannels(body).then(function(simplifiedChannels) { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Simplified Channels with Alias', data: simplifiedChannels}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels List Received'}); - res.status(200).json(arrangeChannels(simplifiedChannels)); - }); - } else { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Empty Channels List Received'}); - res.status(200).json({activeChannels: [], pendingChannels: [], inactiveChannels: [], lightningBalances: { localBalance: 0, remoteBalance: 0 }, channelStatus: {active: { channels: 0, capacity: 0 }, inactive: { channels: 0, capacity: 0 }, pending: { channels: 0, capacity: 0 }}}); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'List Channels Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; - -exports.getChannelStats = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channel States..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/channelstats'; - options.form = {}; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Channel Stats Response', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel States Received'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Get Channel Stats Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.openChannel = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/open'; - options.form = req.body; - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Params', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Opened'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Open Channel Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.updateChannelRelayFee = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Relay Fee..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/updaterelayfee'; - options.form = req.query; - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Params', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Response', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Relay Fee Updated'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Update Relay Fee Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.closeChannel = (req, res, next) => { - options = common.getOptions(); - if (req.query.force !== 'true') { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..'}); - options.url = common.getSelLNServerUrl() + '/close'; - } else { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Force Closing Channel..'}); - options.url = common.getSelLNServerUrl() + '/forceclose'; - } - options.form = { channelId: req.query.channelId }; - logger.log({level: 'DEBUG', fileName: 'Channels', msg: '[Close URL, Close Params]', data: [options.url, options.form]}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Closed'}); - res.status(204).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Close Channel Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - diff --git a/controllers/eclair/fees.js b/controllers/eclair/fees.js deleted file mode 100644 index 92a7d6d1..00000000 --- a/controllers/eclair/fees.js +++ /dev/null @@ -1,108 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -arrangeFees = (body, current_time) => { - let fees = { daily_fee: 0, daily_txs: 0, weekly_fee: 0, weekly_txs: 0, monthly_fee: 0, monthly_txs: 0 }; - let week_start_time = current_time - 604800000; - let day_start_time = current_time - 86400000; - let fee = 0; - body.relayed.forEach(relayedEle => { - fee = Math.round((relayedEle.amountIn - relayedEle.amountOut)/1000); - if (relayedEle.timestamp >= day_start_time) { - fees.daily_fee = fees.daily_fee + fee; - fees.daily_txs = fees.daily_txs + 1; - } - if (relayedEle.timestamp >= week_start_time) { - fees.weekly_fee = fees.weekly_fee + fee; - fees.weekly_txs = fees.weekly_txs + 1; - } - fees.monthly_fee = fees.monthly_fee + fee; - fees.monthly_txs = fees.monthly_txs + 1; - }); - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Arranged Fee', data: fees}); - return fees; -}; - -arrangePayments = (body) => { - let payments = { - sent: body && body.sent ? body.sent : [], - received: body && body.received ? body.received : [], - relayed: body && body.relayed ? body.relayed : [] - }; - payments.sent.forEach(sentEle => { - if (sentEle.recipientAmount) { sentEle.recipientAmount = Math.round(sentEle.recipientAmount/1000); } - if (sentEle.parts && sentEle.parts.length > 0) { - sentEle.firstPartTimestamp = sentEle.parts[0].timestamp; - } - sentEle.parts.forEach(part => { - if (part.amount) { part.amount = Math.round(part.amount/1000); } - if (part.feesPaid) { part.feesPaid = Math.round(part.feesPaid/1000); } - }); - }); - payments.received.forEach(receivedEle => { - if (receivedEle.parts && receivedEle.parts.length > 0) { - receivedEle.firstPartTimestamp = receivedEle.parts[0].timestamp; - } - receivedEle.parts.forEach(part => { - if (part.amount) { part.amount = Math.round(part.amount/1000); } - }); - }); - payments.relayed.forEach(relayedEle => { - if (relayedEle.amountIn) { relayedEle.amountIn = Math.round(relayedEle.amountIn/1000); } - if (relayedEle.amountOut) { relayedEle.amountOut = Math.round(relayedEle.amountOut/1000); } - }); - payments.sent = common.sortDescByKey(payments.sent, 'firstPartTimestamp'); - payments.received = common.sortDescByKey(payments.received, 'firstPartTimestamp'); - payments.relayed = common.sortDescByKey(payments.relayed, 'timestamp'); - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Arranged Payments', data: payments}); - return payments; -}; - -exports.getFees = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/audit'; - let today = new Date(Date.now()); - let tillToday = (Math.round(today.getTime()/1000)).toString(); - let fromLastMonth = (Math.round(new Date(today.getFullYear(), today.getMonth() - 1, today.getDate() + 1, 0, 0, 0).getTime()/1000)).toString(); - options.form = { - from: fromLastMonth, - to: tillToday - }; - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Audit Options', data: options.form}); - if (common.read_dummy_data) { - common.getDummyData('Fees').then(function(data) { res.status(200).json(arrangeFees(data, Math.round((new Date().getTime())))); }); - } else { - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Response', data: body}); - logger.log({level: 'INFO', fileName: 'Fees', msg: 'Fee Received'}); - res.status(200).json(arrangeFees(body, Math.round((new Date().getTime())))); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Fees', 'Get Fees Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; - -exports.getPayments = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Payments..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/audit'; - options.form = null; - if (common.read_dummy_data) { - common.getDummyData('Payments').then(function(data) { res.status(200).json(arrangePayments(data)); }); - } else { - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Payments Response', data: body}); - logger.log({level: 'INFO', fileName: 'Fees', msg: 'Payments Received'}); - res.status(200).json(arrangePayments(body)); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Fees', 'Get Payments Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; diff --git a/controllers/eclair/getInfo.js b/controllers/eclair/getInfo.js deleted file mode 100644 index 139fefcf..00000000 --- a/controllers/eclair/getInfo.js +++ /dev/null @@ -1,37 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getInfo = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Getting Eclair Node Information..'}); - common.setOptions(); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/getinfo'; - options.form = {}; - logger.log({level: 'DEBUG', fileName:'GetInfo', msg: 'Selected Node', data: common.selectedNode.ln_node}); - logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from Eclair server url', data: options.url}); - if (common.read_dummy_data) { - common.getDummyData('GetInfo').then(function(data) { - data.lnImplementation = 'Eclair'; - res.status(200).json(data); - }); - } else { - if (!options.headers || !options.headers.authorization) { - const errMsg = 'Eclair Get info failed due to missing or wrong password!'; - const err = common.handleError({ statusCode: 502, message: 'Missing or Wrong Password', error: errMsg }, 'GetInfo', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } else { - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Get Info Response', data: body}); - body.lnImplementation = 'Eclair'; - logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Eclair Node Information Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'GetInfo', 'Get Info Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } - } -}; diff --git a/controllers/eclair/invoices.js b/controllers/eclair/invoices.js deleted file mode 100644 index c4089e98..00000000 --- a/controllers/eclair/invoices.js +++ /dev/null @@ -1,117 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; -var pendingInvoices = []; - -getReceivedPaymentInfo = (invoice) => { - let idx = -1; - invoice.expiresAt = (!invoice.expiry) ? null : (+invoice.timestamp + +invoice.expiry); - if (invoice.amount) { invoice.amount = Math.round(invoice.amount/1000); } - idx = pendingInvoices.findIndex(pendingInvoice => invoice.serialized === pendingInvoice.serialized); - if (idx < 0) { - options.url = common.getSelLNServerUrl() + '/getreceivedinfo'; - options.form = { paymentHash: invoice.paymentHash }; - return request(options).then(response => { - invoice.status = response.status.type; - if (response.status && response.status.type === 'received') { - invoice.amountSettled = response.status.amount ? Math.round(response.status.amount/1000) : 0; - invoice.receivedAt = response.status.receivedAt ? Math.round(response.status.receivedAt / 1000) : 0; - } - return invoice; - }).catch(err => { - invoice.status = 'unknown'; - return invoice; - }); - } else { - pendingInvoices.splice(idx, 1); - invoice.status = 'unpaid'; - return invoice; - } -} - -exports.getInvoice = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Invoice..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/getinvoice'; - options.form = { paymentHash: req.params.paymentHash }; - request.post(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoice Found', data: body}); - let current_time = (Math.round(new Date(Date.now()).getTime()/1000)).toString(); - body.amount = body.amount ? body.amount/1000 : 0; - body.expiresAt = body.expiresAt ? body.expiresAt : (body.timestamp + body.expiry); - body.status = body.status ? body.status : (+body.expiresAt < current_time ? "expired" : "unknown"); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoices', 'Get Invoice Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.listInvoices = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Getting List Invoices..'}); - options = common.getOptions(); - options.form = {}; - options1 = JSON.parse(JSON.stringify(options)); - options1.url = common.getSelLNServerUrl() + '/listinvoices'; - options1.form = {}; - options2 = JSON.parse(JSON.stringify(options)); - options2.url = common.getSelLNServerUrl() + '/listpendinginvoices'; - options2.form = {}; - if (common.read_dummy_data) { - common.getDummyData('Invoices').then(function(body) { - let invoices = (!body[0] || body[0].length <= 0) ? [] : body[0]; - pendingInvoices = (!body[1] || body[1].length <= 0) ? [] : body[1]; - return Promise.all(invoices.map(invoice => getReceivedPaymentInfo(invoice))) - .then(values => { - body = common.sortDescByKey(invoices, 'expiresAt'); - res.status(200).json(invoices); - }); - }); - } else { - return Promise.all([request(options1), request(options2)]) - .then(body => { - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body}); - let invoices = (!body[0] || body[0].length <= 0) ? [] : body[0]; - pendingInvoices = (!body[1] || body[1].length <= 0) ? [] : body[1]; - if (invoices && invoices.length > 0) { - return Promise.all(invoices.map(invoice => getReceivedPaymentInfo(invoice))) - .then(values => { - body = common.sortDescByKey(invoices, 'expiresAt'); - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Final Invoices List', data: invoices}); - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'List Invoices Received'}); - res.status(200).json(invoices); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoices', 'List Invoices Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } else { - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Empty List Invoice Received'}); - res.status(200).json([]); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoices', 'List Invoices Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; - -exports.createInvoice = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/createinvoice'; - options.form = req.body; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Create Invoice Response', data: body}); - if (body.amount) { body.amount = Math.round(body.amount/1000); } - logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoices', 'Create Invoice Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/eclair/network.js b/controllers/eclair/network.js deleted file mode 100644 index 235c5aea..00000000 --- a/controllers/eclair/network.js +++ /dev/null @@ -1,20 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getNodes = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/nodes'; - options.form = { nodeIds: req.params.id }; - request.post(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup', data: body}); - logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Network', 'Node Lookup Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/eclair/onchain.js b/controllers/eclair/onchain.js deleted file mode 100644 index eda9635c..00000000 --- a/controllers/eclair/onchain.js +++ /dev/null @@ -1,92 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -arrangeBalances = (body) => { - if (!body.confirmed) { body.confirmed = 0; } - if (!body.unconfirmed) { body.unconfirmed = 0; } - body.total = +body.confirmed + +body.unconfirmed; - body.btc_total = +body.btc_confirmed + +body.btc_unconfirmed; - return body; -}; - -exports.getNewAddress = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/getnewaddress'; - options.form = {}; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'New Address Generated', data: body}); - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'OnChain', 'Get New Address Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getBalance = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Balance..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/onchainbalance'; - options.form = {}; - if (common.read_dummy_data) { - common.getDummyData('OnChainBalance').then(function(data) { res.status(200).json(arrangeBalances(data)); }); - } else { - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'Balance Received', data: body}); - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'On Chain Balance Received'}); - res.status(200).json(arrangeBalances(body)); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'OnChain', 'Get Balance Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; - -exports.getTransactions = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Transactions..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/onchaintransactions'; - options.form = { - count: req.query.count, - skip: req.query.skip - }; - logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'Getting On Chain Transactions Options', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'Transaction Received', data: body}); - if (body && body.length > 0) { - body = common.sortDescByKey(body, 'timestamp'); - } - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'On Chain Transaction Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'OnChain', 'Get Transactions Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.sendFunds = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Sending On Chain Funds..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/sendonchain'; - options.form = { - address: req.body.address, - amountSatoshis: req.body.amount, - confirmationTarget: req.body.blocks - }; - logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Options', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Response', data: body}); - logger.log({level: 'INFO', fileName: 'OnChain', msg: 'On Chain Fund Sent'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'OnChain', 'Send Funds Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/eclair/payments.js b/controllers/eclair/payments.js deleted file mode 100644 index 2ba51050..00000000 --- a/controllers/eclair/payments.js +++ /dev/null @@ -1,118 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -getQueryNodes = (nodeIds) => { - options.url = common.getSelLNServerUrl() + '/nodes'; - options.form = { nodeIds: nodeIds }; - return request.post(options).then(function(nodes) { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Nodes', data: nodes}); - return nodes; - }).catch(err => { - return []; - }); -} - -exports.decodePayment = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/parseinvoice'; - options.form = { invoice: req.params.invoice }; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: body}); - if (body.amount) { body.amount = Math.round(body.amount/1000); } - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Payments', 'Decode Payment Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.postPayment = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Paying Invoice..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/payinvoice'; - options.form = req.body; - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Options', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response', data: body}); - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Invoice Paid'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Payments', 'Send Payment Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.queryPaymentRoute = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Querying Payment Route..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/findroutetonode'; - options.form = { - nodeId: req.query.nodeId, - amountMsat: req.query.amountMsat - }; - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Options', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Received', data: body}); - if (body && body.length) { - let queryRoutes = []; - return getQueryNodes(body).then(function(hopsWithAlias) { - let foundPeer = {}; - body.map(hop => { - foundPeer = hopsWithAlias.find(hopWithAlias => hop === hopWithAlias.nodeId); - queryRoutes.push({nodeId: hop, alias: foundPeer ? foundPeer.alias : ''}); - }); - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Routes with Alias', data: queryRoutes}); - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Route Information Received'}); - res.status(200).json(queryRoutes); - }); - } else { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Empty Payment Route Information Received'}); - res.status(200).json([]); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Payments', 'Query Route Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getSentPaymentsInformation = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Getting Sent Payment Information..'}); - options = common.getOptions(); - if (req.body.payments) { - let paymentsArr = req.body.payments.split(','); - return Promise.all(paymentsArr.map(payment => {return getSentInfoFromPaymentRequest(payment)})) - .then(function(values) { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Informations', data: values}); - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Sent Payment Information Received'}); - res.status(200).json(values); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Payments', 'Sent Payment Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } else { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Empty Sent Payment Information Received'}); - res.status(200).json([]); - } -}; - -getSentInfoFromPaymentRequest = (payment) => { - options.url = common.getSelLNServerUrl() + '/getsentinfo'; - options.form = { paymentHash: payment }; - return request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Information Received', data: body}); - body.forEach(sentPayment => { - if (sentPayment.amount) { sentPayment.amount = Math.round(sentPayment.amount/1000); } - if (sentPayment.recipientAmount) { sentPayment.recipientAmount = Math.round(sentPayment.recipientAmount/1000); } - }); - return body; - }) - .catch(err => err); -} \ No newline at end of file diff --git a/controllers/eclair/peers.js b/controllers/eclair/peers.js deleted file mode 100644 index 06360ad0..00000000 --- a/controllers/eclair/peers.js +++ /dev/null @@ -1,125 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -getFilteredNodes = (peersNodeIds) => { - options.url = common.getSelLNServerUrl() + '/nodes'; - options.form = { nodeIds: peersNodeIds }; - return request.post(options).then(function(nodes) { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Filtered Nodes', data: nodes}); - return nodes; - }).catch(err => { - return []; - }); -} - -exports.getPeers = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Getting Peers..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/peers'; - options.form = {}; - if (common.read_dummy_data) { - common.getDummyData('Peers').then(function(data) { res.status(200).json(data); }); - } else { - request.post(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body}); - if (body && body.length) { - let peersNodeIds = ''; - body.forEach(peer => { peersNodeIds = peersNodeIds + ',' + peer.nodeId; }); - peersNodeIds = peersNodeIds.substring(1); - return getFilteredNodes(peersNodeIds).then(function(peersWithAlias) { - let foundPeer = {}; - body.map(peer => { - foundPeer = peersWithAlias.find(peerWithAlias => peer.nodeId === peerWithAlias.nodeId); - peer.alias = foundPeer ? foundPeer.alias : peer.nodeId.substring(0, 20); - }); - body = common.sortDescByStrKey(body, 'alias'); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias', data: body}); - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peers Received'}); - res.status(200).json(body); - }); - } else { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Empty Peers Received'}); - res.status(200).json([]); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'List Peers Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; - -exports.connectPeer = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Conneting Peer..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/connect'; - options.form = {}; - if (req.query) { - options.form = req.query; - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Connect Peer Params', data: options.form}); - } - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Add Peer Response', data: body}); - if (typeof body === 'string' && body.includes('already connected')) { - const err = common.handleError({ statusCode: 500, message: 'Connect Peer Error', error: body }, 'Peers', body); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } else if (typeof body === 'string' && body.includes('connection failed')) { - const err = common.handleError({ statusCode: 500, message: 'Connect Peer Error', error: body }, 'Peers', body); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = common.getSelLNServerUrl() + '/peers'; - options.form = {}; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body}); - if (body && body.length) { - let peersNodeIds = ''; - body.forEach(peer => { peersNodeIds = peersNodeIds + ',' + peer.nodeId; }); - peersNodeIds = peersNodeIds.substring(1); - return getFilteredNodes(peersNodeIds).then(function(peersWithAlias) { - let foundPeer = {}; - body.map(peer => { - foundPeer = peersWithAlias.find(peerWithAlias => peer.nodeId === peerWithAlias.nodeId); - peer.alias = foundPeer ? foundPeer.alias : peer.nodeId.substring(0, 20); - }); - let peers = (body) ? common.sortDescByStrKey(body, 'alias') : []; - peers = common.newestOnTop(peers, 'nodeId', req.query.nodeId ? req.query.nodeId : req.query.uri ? req.query.uri.substring(0, req.query.uri.indexOf('@')) : ''); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: peers}); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully'}); - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Connected'}); - res.status(201).json(peers); - }); - } else { - res.status(201).json([]); - } - }).catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Connect Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - }).catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Connect Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.deletePeer = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Disconneting Peer..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/disconnect'; - options.form = {}; - if (req.params.nodeId) { - options.form = { nodeId: req.params.nodeId }; - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Params', data: options.form}); - } - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Response', data: body}); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Disconnected: ' + req.params.nodeId}); - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected'}); - res.status(204).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Disconnect Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/balance.js b/controllers/lnd/balance.js deleted file mode 100644 index 0b1d3b9a..00000000 --- a/controllers/lnd/balance.js +++ /dev/null @@ -1,31 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getBalance = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Balance', msg: 'Getting Balance..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/balance/' + (req.params.source).toLowerCase(); - options.qs = req.query; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Balance', msg: '[Request params, Request Query, Balance Received]', data: [req.params, req.query, body]}); - if (body) { - if (req.params.source === 'blockchain') { - if (!body.total_balance) { body.total_balance = 0; } - if (!body.confirmed_balance) { body.confirmed_balance = 0; } - if (!body.unconfirmed_balance) { body.unconfirmed_balance = 0; } - } - if (req.params.source === 'channels') { - if (!body.balance) { body.balance = 0; } - if (!body.pending_open_balance) { body.pending_open_balance = 0; } - } - logger.log({level: 'INFO', fileName: 'Balance', msg: 'Balance Received'}); - res.status(200).json(body); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Balance', 'Get Balance Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/channels.js b/controllers/lnd/channels.js deleted file mode 100644 index c0225da1..00000000 --- a/controllers/lnd/channels.js +++ /dev/null @@ -1,240 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -getAliasForChannel = (channel) => { - let pubkey = (channel.remote_pubkey) ? channel.remote_pubkey : (channel.remote_node_pub) ? channel.remote_node_pub : ''; - options.url = common.getSelLNServerUrl() + '/v1/graph/node/' + pubkey; - return request(options).then(function(aliasBody) { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Alias', data: aliasBody.node.alias}); - channel.remote_alias = aliasBody.node.alias; - return aliasBody.node.alias; - }) - .catch(err => { - channel.remote_alias = pubkey.slice(0, 10) + '...' + pubkey.slice(-10); - return pubkey; - }); -} - -exports.getAllChannels = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channels..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channels'; - options.qs = req.query; - let local = 0; - let remote = 0; - let total = 0; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'All Channels Received', data: body}); - if (body.channels) { - return Promise.all( - body.channels.map(channel => { - local = (channel.local_balance) ? +channel.local_balance : 0; - remote = (channel.remote_balance) ? +channel.remote_balance : 0; - total = local + remote; - channel.balancedness = (total == 0) ? 1 : (1 - Math.abs((local-remote)/total)).toFixed(3); - return getAliasForChannel(channel); - }) - ) - .then(function(values) { - body.channels = common.sortDescByKey(body.channels, 'balancedness'); - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'All Channels with Alias', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Get All Channel Aliases Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } else { - body.channels = []; - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Empty Channels Received'}); - res.status(200).json(body); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'List Channels Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getPendingChannels = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Pending Channels..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channels/pending'; - options.qs = req.query; - request(options).then(function (body) { - if (!body.total_limbo_balance) { - body.total_limbo_balance = 0; - } - const promises = []; - if (body.pending_open_channels && body.pending_open_channels.length > 0) { - body.pending_open_channels.map(channel => { return promises.push(getAliasForChannel(channel.channel))}); - } - if (body.pending_closing_channels && body.pending_closing_channels.length > 0) { - body.pending_closing_channels.map(channel => { return promises.push(getAliasForChannel(channel.channel))}); - } - if (body.pending_force_closing_channels && body.pending_force_closing_channels.length > 0) { - body.pending_force_closing_channels.map(channel => { return promises.push(getAliasForChannel(channel.channel))}); - } - if (body.waiting_close_channels && body.waiting_close_channels.length > 0) { - body.waiting_close_channels.map(channel => { return promises.push(getAliasForChannel(channel.channel))}); - } - return Promise.all(promises).then(function(values) { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Pending Channels', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Pending Channels Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Get Pending Channel Aliases Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'List Pending Channels Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getClosedChannels = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Closed Channels..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channels/closed'; - options.qs = req.query; - request(options).then(function (body) { - if (body.channels && body.channels.length > 0) { - return Promise.all( - body.channels.map(channel => { - channel.close_type = (!channel.close_type) ? 'COOPERATIVE_CLOSE' : channel.close_type; - return getAliasForChannel(channel); - }) - ) - .then(function(values) { - body.channels = common.sortDescByKey(body.channels, 'close_height'); - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Closed Channels', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closed Channels Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Get Closed Channel Aliases Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } else { - body.channels = []; - res.status(200).json(body); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'List Closed Channels Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.postChannel = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channels'; - options.form = { - node_pubkey_string: req.body.node_pubkey, - local_funding_amount: req.body.local_funding_amount, - private: req.body.private, - spend_unconfirmed: req.body.spend_unconfirmed - }; - if (req.body.trans_type === '1') { - options.form.target_conf = req.body.trans_type_value; - } else if (req.body.trans_type === '2') { - options.form.sat_per_byte = req.body.trans_type_value; - } - options.form = JSON.stringify(options.form); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Channel Open Response', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels Opened'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Open Channel Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.postTransactions = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Sending Payment..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channels/transactions'; - options.form = { payment_request: req.body.paymentReq }; - if (req.body.paymentAmount) { - options.form.amt = req.body.paymentAmount; - } - if (req.body.feeLimit) { options.form.fee_limit = req.body.feeLimit; } - if (req.body.outgoingChannel) { options.form.outgoing_chan_id = req.body.outgoingChannel; } - if (req.body.allowSelfPayment) { options.form.allow_self_payment = req.body.allowSelfPayment; } - if (req.body.lastHopPubkey) { options.form.last_hop_pubkey = Buffer.from(req.body.lastHopPubkey, 'hex').toString('base64'); } - options.form = JSON.stringify(options.form); - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Options', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Response', data: body}); - if (body.payment_error) { - const err = common.handleError(body.payment_error, 'Channels', 'Send Payment Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } else { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Payment Sent'}); - res.status(201).json(body); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Send Payment Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.closeChannel = (req, res, next) => { - try { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..'}); - options = common.getOptions(); - let channelpoint = req.params.channelPoint.replace(':', '/'); - options.url = common.getSelLNServerUrl() + '/v1/channels/' + channelpoint + '?force=' + req.query.force; - if (req.query.target_conf) { options.url = options.url + '&target_conf=' + req.query.target_conf; } - if (req.query.sat_per_byte) { options.url = options.url + '&sat_per_byte=' + req.query.sat_per_byte; } - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel Options URL', data: options.url}); - request.delete(options); - res.status(202).json({message: 'Close channel request has been submitted.'}); - } catch (error) { - logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error', error: error.message}); - return res.status(500).json({message: 'Close Channel Error', error: error.message}); - } -} - -exports.postChanPolicy = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Policy..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/chanpolicy'; - if (req.body.chanPoint === 'all') { - options.form = JSON.stringify({ - global: true, - base_fee_msat: req.body.baseFeeMsat, - fee_rate: parseFloat(req.body.feeRate/1000000), - time_lock_delta: parseInt(req.body.timeLockDelta) - }); - } else { - let breakPoint = req.body.chanPoint.indexOf(':'); - let txid_str = req.body.chanPoint.substring(0, breakPoint); - let output_idx = req.body.chanPoint.substring(breakPoint+1, req.body.chanPoint.length); - options.form = JSON.stringify({ - base_fee_msat: req.body.baseFeeMsat, - fee_rate: parseFloat(req.body.feeRate/1000000), - time_lock_delta: parseInt(req.body.timeLockDelta), - chan_point: {funding_txid_str: txid_str, output_index: parseInt(output_idx)} - }); - } - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy', data: body}); - logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Policy Updated'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Channels', 'Update Channel Policy Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/channelsBackup.js b/controllers/lnd/channelsBackup.js deleted file mode 100644 index 65a02c00..00000000 --- a/controllers/lnd/channelsBackup.js +++ /dev/null @@ -1,216 +0,0 @@ -var request = require('request-promise'); -var fs = require('fs'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -function getFilesList(callback) { - let files_list = []; - let all_restore_exists = false; - let response = {all_restore_exists: false, files: []}; - fs.readdir(common.selectedNode.channel_backup_path + common.path_separator + 'restore', function (err, files) { - if (err && err.code !== 'ENOENT' && err.errno !== -4058) { - response = { message: 'Channels Restore List Failed!', error: err, statusCode: 500 }; - } - if (files && files.length > 0) { - files.forEach(file => { - if (!file.includes('.restored')) { - if (file.toLowerCase() === 'channel-all.bak' || file.toLowerCase() === 'backup-channel-all.bak') { - all_restore_exists = true; - } else { - files_list.push({channel_point: file.substring(8, file.length - 4).replace('-', ':')}); - } - } - }); - } - response = {all_restore_exists: all_restore_exists, files: files_list}; - callback(response); - }); -} - -exports.getBackup = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Getting Channel Backup..'}); - options = common.getOptions(); - let channel_backup_file = ''; - let message = ''; - if (req.params.channelPoint === 'ALL') { - channel_backup_file = common.selectedNode.channel_backup_path + common.path_separator + 'channel-all.bak'; - message = 'All Channels Backup Successful.'; - options.url = common.getSelLNServerUrl() + '/v1/channels/backup'; - } else { - channel_backup_file = common.selectedNode.channel_backup_path + common.path_separator + 'channel-' + req.params.channelPoint.replace(':', '-') + '.bak'; - message = 'Channel Backup Successful.'; - let channelpoint = req.params.channelPoint.replace(':', '/'); - options.url = common.getSelLNServerUrl() + '/v1/channels/backup/' + channelpoint; - let exists = fs.existsSync(channel_backup_file); - if (exists) { - fs.writeFile(channel_backup_file, '', () => { }); - } else { - try { - var createStream = fs.createWriteStream(channel_backup_file); - createStream.end(); - } - catch (errRes) { - const err = common.handleError(errRes, 'ChannelsBackup', 'Backup Channels Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } - } - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'ChannelsBackup', msg: 'Channel Backup', data: body}); - fs.writeFile(channel_backup_file, JSON.stringify(body), function(errRes) { - if (errRes) { - const err = common.handleError(errRes, 'ChannelsBackup', 'Backup Channels Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } else { - logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Finished'}); - res.status(200).json({ message: message }); - } - }); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'ChannelsBackup', 'Backup Channels Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.postBackupVerify = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Verifying Channel Backup..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channels/backup/verify'; - let channel_verify_file = ''; - let message = ''; - let verify_backup = ''; - if (req.params.channelPoint === 'ALL') { - message = 'All Channels Verify Successful.'; - channel_verify_file = common.selectedNode.channel_backup_path + common.path_separator + 'channel-all.bak'; - let exists = fs.existsSync(channel_verify_file); - if (exists) { - verify_backup = fs.readFileSync(channel_verify_file, 'utf-8'); - if (verify_backup !== '') { - verify_backup = JSON.parse(verify_backup); - delete verify_backup.single_chan_backups; - options.form = JSON.stringify(verify_backup); - } else { - const errMsg = 'Channel backup to verify does not Exist.'; - const err = common.handleError({ statusCode: 404, message: 'Verify Channel Error', error: errMsg }, 'ChannelBackup', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } else { - verify_backup = ''; - const errMsg = 'Channel backup to verify does not Exist.'; - const err = common.handleError({ statusCode: 404, message: 'Verify Channel Error', error: errMsg }, 'ChannelBackup', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } else { - message = 'Channel Verify Successful.'; - channel_verify_file = common.selectedNode.channel_backup_path + common.path_separator + 'channel-' + req.params.channelPoint.replace(':', '-') + '.bak'; - let exists = fs.existsSync(channel_verify_file); - if (exists) { - verify_backup = fs.readFileSync(channel_verify_file, 'utf-8'); - options.form = JSON.stringify({ single_chan_backups: { chan_backups: [JSON.parse(verify_backup)] } }); - } else { - verify_backup = ''; - const errMsg = 'Channel backup to verify does not Exist.'; - const err = common.handleError({ statusCode: 404, message: 'Verify Channel Error', error: errMsg }, 'ChannelBackup', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } - if (verify_backup !== '') { - request.post(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Verify', data: body}); - logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Verified'}); - res.status(201).json({ message: message }); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'ChannelsBackup', 'Verify Channels Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; - -exports.postRestore = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Restoring Channel Backup..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/channels/backup/restore'; - let channel_restore_file = ''; - let message = ''; - let restore_backup = ''; - if (req.params.channelPoint === 'ALL') { - message = 'All Channels Restore Successful.'; - channel_restore_file = common.selectedNode.channel_backup_path + common.path_separator + 'restore' + common.path_separator; - let exists = fs.existsSync(channel_restore_file + 'channel-all.bak'); - let downloaded_exists = fs.existsSync(channel_restore_file + 'backup-channel-all.bak'); - if (exists) { - restore_backup = fs.readFileSync(channel_restore_file + 'channel-all.bak', 'utf-8'); - if (restore_backup !== '') { - restore_backup = JSON.parse(restore_backup); - options.form = JSON.stringify({multi_chan_backup: restore_backup.multi_chan_backup.multi_chan_backup}); - } else { - const errMsg = 'Channel backup to restore does not Exist.'; - const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } else if (downloaded_exists) { - restore_backup = fs.readFileSync(channel_restore_file + 'backup-channel-all.bak', 'utf-8'); - if (restore_backup !== '') { - restore_backup = JSON.parse(restore_backup); - options.form = JSON.stringify({multi_chan_backup: restore_backup.multi_chan_backup.multi_chan_backup}); - } else { - const errMsg = 'Channel backup to restore does not Exist.'; - const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } else { - restore_backup = ''; - const errMsg = 'Channel backup to restore does not Exist.'; - const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } else { - message = 'Channel Restore Successful.'; - channel_restore_file = common.selectedNode.channel_backup_path + common.path_separator + 'restore' + common.path_separator + 'channel-' + req.params.channelPoint.replace(':', '-') + '.bak'; - let exists = fs.existsSync(channel_restore_file); - if (exists) { - restore_backup = fs.readFileSync(channel_restore_file, 'utf-8'); - options.form = JSON.stringify({ chan_backups: { chan_backups: [JSON.parse(restore_backup)] } }); - } else { - restore_backup = ''; - const errMsg = 'Channel backup to restore does not Exist.'; - const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } - if (restore_backup !== '') { - request.post(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Restore', data: body}); - if(req.params.channelPoint === 'ALL') { channel_restore_file = channel_restore_file + 'channel-all.bak'; } - fs.rename(channel_restore_file, channel_restore_file + '.restored', () => { - getFilesList(getFilesListRes => { - if (getFilesListRes.error) { - const errMsg = getFilesListRes.error; - const err = common.handleError({ statusCode: 500, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg); - return res.status(err.statusCode).json({message: err.error, list: getFilesListRes}); - } else { - logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Restored'}); - return res.status(201).json({ message: message, list: getFilesListRes }); - } - }); - }); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'ChannelsBackup', 'Restore Channel Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; - -exports.getRestoreList = (req, res, next) => { - getFilesList(getFilesListRes => { - if (getFilesListRes.error) { - return res.status(getFilesListRes.statusCode).json(getFilesListRes); - } else { - return res.status(200).json(getFilesListRes); - } - }); -}; diff --git a/controllers/lnd/fees.js b/controllers/lnd/fees.js deleted file mode 100644 index d445cabe..00000000 --- a/controllers/lnd/fees.js +++ /dev/null @@ -1,45 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var swtch = require('./switch'); -var options = {}; - -exports.getFees = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/fees'; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received', data: body}); - let today = new Date(Date.now()); - let start_date = new Date(today.getFullYear(), today.getMonth(), 1, 0, 0, 0); - let current_time = (Math.round(today.getTime()/1000)).toString(); - let month_start_time = (Math.round(start_date.getTime()/1000)).toString(); - let week_start_time = current_time - 604800; - let day_start_time = current_time - 86400; - return swtch.getAllForwardingEvents(month_start_time, current_time, 0, (history) => { - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Forwarding History Received', data: history}); - daily_sum = history.forwarding_events.reduce((acc, curr) => (curr.timestamp >= day_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc, [0, 0]); - weekly_sum = history.forwarding_events.reduce((acc, curr) => (curr.timestamp >= week_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc, [0, 0]); - monthly_sum = history.forwarding_events.reduce((acc, curr) => [(acc[0] + 1), (acc[1] + +curr.fee_msat)], [0, 0]); - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Daily Sum (Transactions, Fee)', data: daily_sum}); - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Weekly Sum (Transactions, Fee)', data: weekly_sum}); - logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Monthly Sum (Transactions, Fee)', data: monthly_sum}); - body.daily_tx_count = daily_sum[0]; - body.weekly_tx_count = weekly_sum[0]; - body.monthly_tx_count = monthly_sum[0]; - body.day_fee_sum = (daily_sum[1] / 1000).toFixed(2); - body.week_fee_sum = (weekly_sum[1] / 1000).toFixed(2); - body.month_fee_sum = (monthly_sum[1] / 1000).toFixed(2); - body.forwarding_events_history = history; - if (history.error) { - logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Fetch Forwarding Events Error', error: history.error}); - } - logger.log({level: 'INFO', fileName: 'Fees', msg: 'Fees Received'}); - res.status(200).json(body); - }) - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Fees', 'Get Forwarding Events Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/getInfo.js b/controllers/lnd/getInfo.js deleted file mode 100644 index 7802a9b1..00000000 --- a/controllers/lnd/getInfo.js +++ /dev/null @@ -1,38 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var connect = require('../../routes/connect'); -var options = {}; - -exports.getInfo = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Getting LND Node Information..'}); - common.setOptions(); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/getinfo'; - logger.log({level: 'DEBUG', fileName:'GetInfo', msg: 'Selected Node', data: common.selectedNode.ln_node}); - logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from LND server url', data: options.url}); - if (!options.headers || !options.headers['Grpc-Metadata-macaroon']) { - const errMsg = 'LND Get info failed due to bad or missing macaroon!'; - const err = common.handleError({ statusCode: 502, message: 'Bad or Missing Macaroon', error: errMsg }, 'GetInfo', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } else { - common.nodes.map(node => { if (node.lnImplementation === 'LND') { connect.getAllNodeAllChannelBackup(node); }}); - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Node Information', data: body}); - const body_str = (!body) ? '' : JSON.stringify(body); - const search_idx = (!body) ? -1 : body_str.search('Not Found'); - if (!body || search_idx > -1 || body.error) { - if (body && !body.error) { body.error = 'Error From Server!'; } - const err = common.handleError(body, 'GetInfo', 'Get Info Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } else { - logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'LND Node Information Received'}); - res.status(200).json(body); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'GetInfo', 'Get Info Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } -}; diff --git a/controllers/lnd/graph.js b/controllers/lnd/graph.js deleted file mode 100644 index f95e64de..00000000 --- a/controllers/lnd/graph.js +++ /dev/null @@ -1,157 +0,0 @@ -var request = require("request-promise"); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -getAliasFromPubkey = (pubkey) => { - options.url = common.getSelLNServerUrl() + '/v1/graph/node/' + pubkey; - return request(options).then(function(res) { - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Alias', data: res.node.alias}); - return res.node.alias; - }) - .catch(err => pubkey.substring(0, 17) + '...'); -} - -exports.getDescribeGraph = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Network Graph..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/graph'; - request.get(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Describe Graph Received', data: body}); - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Network Graph Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Graph', 'Describe Graph Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getGraphInfo = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Information..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/graph/info'; - request.get(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Network Information After Rounding and Conversion', data: body}); - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Information Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Graph', 'Graph Information Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getGraphNode = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Node Information..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/graph/node/' + req.params.pubKey; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Node Info Received', data: body}); - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Node Information Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Graph', 'Get Node Info Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getGraphEdge = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Edge Information..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/graph/edge/' + req.params.chanid; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received', data: body}); - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Edge Information Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Graph', 'Get Edge Info Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getQueryRoutes = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Routes..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/graph/routes/' + req.params.destPubkey + '/' + req.params.amount; - if (req.query.outgoing_chan_id) { - options.url = options.url + '?outgoing_chan_id=' + req.query.outgoing_chan_id; - } - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes URL', data: options.url}); - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes Received', data: body}); - if (body.routes && body.routes.length && body.routes.length > 0 && body.routes[0].hops && body.routes[0].hops.length && body.routes[0].hops.length > 0) { - return Promise.all(body.routes[0].hops.map(hop => getAliasFromPubkey(hop.pub_key))) - .then(function(values) { - body.routes[0].hops.map((hop, i) => { - hop.hop_sequence = i + 1; - hop.pubkey_alias = values[i]; - return hop; - }); - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Hops with Alias', data: body}); - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Graph', 'Get Query Routes Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } else { - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received'}); - res.status(200).json(body); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Graph', 'Get Query Routes Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getRemoteFeePolicy = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Remote Fee Policy..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/graph/edge/' + req.params.chanid; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received', data: body}); - remoteNodeFee = {}; - if (body.node1_pub === req.params.localPubkey){ - remoteNodeFee = { - time_lock_delta: body.node2_policy.time_lock_delta, - fee_base_msat: body.node2_policy.fee_base_msat, - fee_rate_milli_msat: body.node2_policy.fee_rate_milli_msat - }; - } else if (body.node2_pub === req.params.localPubkey) { - remoteNodeFee = { - time_lock_delta: body.node1_policy.time_lock_delta, - fee_base_msat: body.node1_policy.fee_base_msat, - fee_rate_milli_msat: body.node1_policy.fee_rate_milli_msat - }; - } - logger.log({level: 'INFO', fileName: 'Graph', msg: 'Remote Fee Policy Received'}); - res.status(200).json(remoteNodeFee); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Graph', 'Remote Fee Policy Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getAliasesForPubkeys = (req, res, next) => { - options = common.getOptions(); - if (req.query.pubkeys) { - let pubkeyArr = req.query.pubkeys.split(','); - return Promise.all(pubkeyArr.map(pubkey => getAliasFromPubkey(pubkey))) - .then(function(values) { - logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Node Alias', data: values}); - res.status(200).json(values); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Graph', 'Get Aliases for Pubkeys Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } else { - res.status(200).json([]); - } -}; diff --git a/controllers/lnd/invoices.js b/controllers/lnd/invoices.js deleted file mode 100644 index dbdbf16a..00000000 --- a/controllers/lnd/invoices.js +++ /dev/null @@ -1,73 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getInvoice = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Getting Invoice Information..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/invoice/' + req.params.rHashStr; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoice Info Received', data: body}); - logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Invoice Information Received'}); - body.r_preimage = body.r_preimage ? Buffer.from(body.r_preimage, 'base64').toString('hex') : ''; - body.r_hash = body.r_hash ? Buffer.from(body.r_hash, 'base64').toString('hex') : ''; - body.description_hash = body.description_hash ? Buffer.from(body.description_hash, 'base64').toString('hex') : null; - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoices', 'Get Invoice Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.listInvoices = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Getting List Invoices..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/invoices?num_max_invoices=' + req.query.num_max_invoices + '&index_offset=' + req.query.index_offset + - '&reversed=' + req.query.reversed; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body}); - if (body.invoices && body.invoices.length > 0) { - body.invoices.forEach(invoice => { - invoice.r_preimage = invoice.r_preimage ? Buffer.from(invoice.r_preimage, 'base64').toString('hex') : ''; - invoice.r_hash = invoice.r_hash ? Buffer.from(invoice.r_hash, 'base64').toString('hex') : ''; - invoice.description_hash = invoice.description_hash ? Buffer.from(invoice.description_hash, 'base64').toString('hex') : null; - }); - body.invoices = common.sortDescByKey(body.invoices, 'creation_date'); - } - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body}); - logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Invoices List Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoices', 'List Invoices Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.addInvoice = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Adding Invoice..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/invoices'; - options.form = { - memo: req.body.memo, - private: req.body.private, - expiry: req.body.expiry - }; - if (req.body.amount > 0 && req.body.amount < 1) { - options.form.value_msat = req.body.amount * 1000; - } else { - options.form.value = req.body.amount; - } - options.form = JSON.stringify(options.form); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Responce', data: body}); - logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Invoice Added'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Invoices', 'Add Invoice Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/message.js b/controllers/lnd/message.js deleted file mode 100644 index dc1acc8f..00000000 --- a/controllers/lnd/message.js +++ /dev/null @@ -1,41 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.signMessage = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Message', msg: 'Signing Message..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/signmessage'; - options.form = JSON.stringify({ - msg: Buffer.from(req.body.message).toString('base64') - }); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed', data: body}); - logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Signed'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Messages', 'Sign Message Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.verifyMessage = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Message', msg: 'Verifying Message..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/verifymessage'; - options.form = JSON.stringify({ - msg: Buffer.from(req.body.message).toString('base64'), - signature: req.body.signature - }); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified', data: body}); - logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Verified'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Messages', 'Verify Message Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/newAddress.js b/controllers/lnd/newAddress.js deleted file mode 100644 index 6bf14a73..00000000 --- a/controllers/lnd/newAddress.js +++ /dev/null @@ -1,19 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getNewAddress = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'NewAddress', msg: 'Getting New Address..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/newaddress?type=' + req.query.type; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'NewAddress', msg: 'New Address Received', data: body}); - logger.log({level: 'INFO', fileName: 'NewAddress', msg: 'New Address Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'NewAddress', 'New Address Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/payReq.js b/controllers/lnd/payReq.js deleted file mode 100644 index eacb2523..00000000 --- a/controllers/lnd/payReq.js +++ /dev/null @@ -1,49 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -decodePaymentFromPaymentRequest = (payment) => { - options.url = common.getSelLNServerUrl() + '/v1/payreq/' + payment; - return request(options).then(function(res) { - logger.log({level: 'DEBUG', fileName: 'PayReq', msg: 'Description', data: res.description}); - return res; - }) - .catch(err => {}); -} - -exports.decodePayment = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payment..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/payreq/' + req.params.payRequest; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'PayReq', msg: 'Payment Decode Received', data: body}); - logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Payment Decoded'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'PayRequest', 'Decode Payment Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.decodePayments = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payments List..'}); - options = common.getOptions(); - if (req.body.payments) { - let paymentsArr = req.body.payments.split(','); - return Promise.all(paymentsArr.map(payment => decodePaymentFromPaymentRequest(payment))) - .then(function(values) { - logger.log({level: 'DEBUG', fileName: 'PayReq', msg: 'Decoded Payments', data: values}); - logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Payment List Decoded'}); - res.status(200).json(values); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'PayRequest', 'Decode Payments Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - } else { - logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Empty Payment List Decoded'}); - res.status(200).json([]); - } -}; diff --git a/controllers/lnd/payments.js b/controllers/lnd/payments.js deleted file mode 100644 index aaa5cfb3..00000000 --- a/controllers/lnd/payments.js +++ /dev/null @@ -1,40 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getPayments = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Getting Payments List..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/payments?max_payments=' + req.query.max_payments + '&index_offset=' + req.query.index_offset + '&reversed=' + req.query.reversed; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received', data: body}); - if (body.payments && body.payments.length > 0) { - body.payments = common.sortDescByKey(body.payments, 'creation_date'); - } - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payments After Sort', data: body}); - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payments List Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Payments', 'List Payments Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getAllLightningTransactions = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Getting All Lightning Transactions..'}); - const options1 = JSON.parse(JSON.stringify(common.getOptions())) - const options2 = JSON.parse(JSON.stringify(common.getOptions())) - options1.url = common.getSelLNServerUrl() + '/v1/payments?max_payments=1000000&index_offset=0&reversed=true'; - options2.url = common.getSelLNServerUrl() + '/v1/invoices?num_max_invoices=1000000&index_offset=0&reversed=true'; - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'All Payments Options', data: options1}); - logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'All Invoices Options', data: options2}); - return Promise.all([request(options1), request(options2)]).then(function(values) { - logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payments & Invoices Received'}); - res.status(200).json({paymentsAll: values[0], invoicesAll: values[1]}); - }).catch(errRes => { - const err = common.handleError(errRes, 'Payments', 'All Lightning Transactions Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/peers.js b/controllers/lnd/peers.js deleted file mode 100644 index 6149e903..00000000 --- a/controllers/lnd/peers.js +++ /dev/null @@ -1,92 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -getAliasForPeers = (peer) => { - options.url = common.getSelLNServerUrl() + '/v1/graph/node/' + peer.pub_key; - return request(options).then(function(aliasBody) { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Alias', data: aliasBody.node.alias}); - peer.alias = aliasBody.node.alias; - return aliasBody.node.alias; - }) - .catch(err => { - peer.alias = peer.pub_key.slice(0, 10) + '...' + peer.pub_key.slice(-10); - return peer.pub_key; - }); -} - -exports.getPeers = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Getting Peers..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/peers'; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body}); - let peers = !body.peers ? [] : body.peers; - return Promise.all(peers.map(peer => getAliasForPeers(peer))).then(function(values) { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias before Sort', data: body}); - if (body.peers) { - body.peers = common.sortDescByStrKey(body.peers, 'alias'); - } - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias after Sort', data: body}); - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peers Received'}); - res.status(200).json(body.peers); - }) - }).catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'List Peers Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.postPeer = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/peers'; - options.form = JSON.stringify({ - addr: { host: req.body.host, pubkey: req.body.pubkey }, - perm: req.body.perm - }); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added', data: body}); - options.url = common.getSelLNServerUrl() + '/v1/peers'; - request(options).then((body) => { - let peers = (!body.peers) ? [] : body.peers; - return Promise.all(peers.map(peer => getAliasForPeers(peer))).then(function(values) { - if (body.peers) { - body.peers = common.sortDescByStrKey(body.peers, 'alias'); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Alias', data: body}); - body.peers = common.newestOnTop(body.peers, 'pub_key', req.body.pubkey); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: body}); - } - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully'}); - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Connected'}); - res.status(201).json(body.peers); - }).catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Connect Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - }).catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Connect Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - }).catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Connect Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.deletePeer = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/peers/' + req.params.peerPubKey; - request.delete(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response', data: body}); - logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached', data: req.params.peerPubKey}); - logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected'}); - res.status(204).json({}); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Peers', 'Disconnect Peer Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/switch.js b/controllers/lnd/switch.js deleted file mode 100644 index f71191ea..00000000 --- a/controllers/lnd/switch.js +++ /dev/null @@ -1,51 +0,0 @@ -var request = require('request-promise'); -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; -var num_max_events = 100; -var responseData = { forwarding_events: [], last_offset_index: 0 }; - -exports.forwardingHistory = (req, res, next) => { - return this.getAllForwardingEvents(req.body.start_time, req.body.end_time, 0, (eventsResponse) => { - if (eventsResponse.error) { - res.status(error.statusCode).json(eventsResponse); - } else { - res.status(201).json(eventsResponse); - } - }); -}; - -exports.getAllForwardingEvents = (start, end, offset, callback) => { - logger.log({level: 'INFO', fileName: 'Switch', msg: 'Getting Forwarding Events..'}); - if (offset === 0) { responseData = { forwarding_events: [], last_offset_index: 0 }; } - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/switch'; - options.form = {}; - if (start) { options.form.start_time = start; } - if (end) { options.form.end_time = end; } - options.form.num_max_events = num_max_events; - options.form.index_offset = offset; - options.form = JSON.stringify(options.form); - logger.log({level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History Params', data: options.form}); - return request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History', data: body}); - logger.log({level: 'INFO', fileName: 'Switch', msg: 'Forwarding Events Received'}); - if (body.forwarding_events) { - responseData.forwarding_events.push(...body.forwarding_events); - } - if (!body.last_offset_index || body.last_offset_index < offset + num_max_events) { - responseData.last_offset_index = body.last_offset_index ? body.last_offset_index : 0 - if (responseData.forwarding_events) { - responseData.forwarding_events = common.sortDescByKey(responseData.forwarding_events, 'timestamp'); - } - return callback(responseData); - } else { - return this.getAllForwardingEvents(start, end, offset + num_max_events, callback); - } - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Switch', 'Get All Forwarding Events Error'); - return callback({message: err.message, error: err.error, statusCode: err.statusCode}); - }); -} diff --git a/controllers/lnd/transactions.js b/controllers/lnd/transactions.js deleted file mode 100644 index 0c6cf0fb..00000000 --- a/controllers/lnd/transactions.js +++ /dev/null @@ -1,47 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getTransactions = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Getting Transactions..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/transactions'; - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Received', data: body}); - if (body.transactions && body.transactions.length > 0) { - body.transactions = common.sortDescByKey(body.transactions, 'time_stamp'); - } - logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Transactions Received'}); - res.status(200).json(body.transactions); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Transactions', 'List Transactions Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.postTransactions = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Sending Transaction..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v1/transactions'; - options.form = { - amount: req.body.amount, - addr: req.body.address, - sat_per_byte: req.body.fees, - target_conf: req.body.blocks - }; - if (req.body.sendAll) { - options.form.send_all = req.body.sendAll; - } - options.form = JSON.stringify(options.form); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Post Response', data: body}); - logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Transaction Sent'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Transactions', 'Send Transaction Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/lnd/wallet.js b/controllers/lnd/wallet.js deleted file mode 100644 index 14880dba..00000000 --- a/controllers/lnd/wallet.js +++ /dev/null @@ -1,197 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var atob = require('atob'); -var logger = require('../shared/logger'); -var options = {}; - -exports.genSeed = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Generating Seed..'}); - options = common.getOptions(); - if ( req.params.passphrase) { - options.url = common.getSelLNServerUrl() + '/v1/genseed?aezeed_passphrase=' + Buffer.from(atob(req.params.passphrase)).toString('base64'); - } else { - options.url = common.getSelLNServerUrl() + '/v1/genseed'; - } - request(options).then((body) => { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Seed Generated'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Wallet', 'Gen Seed Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.operateWallet = (req, res, next) => { - options = common.getOptions(); - options.method = 'POST'; - if (!req.params.operation || req.params.operation === 'unlockwallet') { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Unlocking Wallet..'}); - options.url = common.getSelLNServerUrl() + '/v1/unlockwallet'; - options.form = JSON.stringify({ - wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64') - }); - err_message = 'Unlocking wallet failed! Verify that lnd is running and the wallet is locked!'; - } else { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Initializing Wallet..'}); - options.url = common.getSelLNServerUrl() + '/v1/initwallet'; - if ( req.body.aezeed_passphrase && req.body.aezeed_passphrase !== '') { - options.form = JSON.stringify({ - wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64'), - cipher_seed_mnemonic: req.body.cipher_seed_mnemonic, - aezeed_passphrase: Buffer.from(atob(req.body.aezeed_passphrase)).toString('base64') - }); - } else { - options.form = JSON.stringify({ - wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64'), - cipher_seed_mnemonic: req.body.cipher_seed_mnemonic - }); - } - err_message = 'Initializing wallet failed!'; - } - request(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Wallet Response', data: body}); - const body_str = (!body) ? '' : JSON.stringify(body); - const search_idx = (!body) ? -1 : body_str.search('Not Found'); - if (!body) { - const errMsg = error ? error : err_message; - const err = common.handleError({ statusCode: 500, message: 'Wallet Error', error: errMsg }, 'Wallet', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } else if (search_idx > -1) { - const errMsg = err_message; - const err = common.handleError({ statusCode: 500, message: 'Wallet Error', error: errMsg }, 'Wallet', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } else if (body.error) { - if ((body.code === 1 && body.error === 'context canceled') || (body.code === 14 && body.error === 'transport is closing')) { - res.status(201).json('Successful'); - } else { - const errMsg = (body.error && typeof body.error === 'object') ? JSON.stringify(body.error) : (body.error && typeof body.error === 'string') ? body.error : err_message; - const err = common.handleError({ statusCode: 500, message: 'Wallet Error', error: errMsg }, 'Wallet', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } - } else { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Wallet Unlocked/Initialized'}); - res.status(201).json('Successful'); - } - }) - .catch(errRes => { - if ((err.error.code === 1 && err.error.error === 'context canceled') || (err.error.code === 14 && err.error.error === 'transport is closing')) { - res.status(201).json('Successful'); - } else { - const err = common.handleError(errRes, 'Wallet', err_message); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - }); -}; - -exports.updateSelNodeOptions = (req, res, next) => { - let response = common.updateSelectedNodeOptions(); - res.status(response.status).json({updateMessage: response.message}); -} - -exports.getUTXOs = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Getting UTXOs..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v2/wallet/utxos?max_confs=' + req.query.max_confs; - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO List Response', data: body}); - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'UTXOs Received'}); - res.status(200).json(body.utxos ? body.utxos : []); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Wallet', 'List UTXOs Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.bumpFee = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Bumping Fee..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v2/wallet/bumpfee'; - options.form = {}; - options.form.outpoint = { - txid_str: req.body.txid, - output_index: req.body.outputIndex - }; - if (req.body.targetConf) { - options.form.target_conf = req.body.targetConf; - } else if (req.body.satPerByte) { - options.form.sat_per_byte = req.body.satPerByte; - } - options.form = JSON.stringify(options.form); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Bump Fee Response', data: body}); - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Fee Bumped'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Wallet', 'Bump Fee Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.labelTransaction = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Labelling Transaction..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v2/wallet/tx/label'; - options.form = {}; - options.form.txid = req.body.txid; - options.form.label = req.body.label; - options.form.overwrite = req.body.overwrite; - options.form = JSON.stringify(options.form); - logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Options', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Post Response', data: body}); - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Transaction Labelled'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Wallet', 'Label Transaction Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.leaseUTXO = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Leasing UTXO..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v2/wallet/utxos/lease'; - options.form = {}; - options.form.id = req.body.txid; - options.form.outpoint = { - txid_bytes: req.body.txid, - output_index: req.body.outputIndex - }; - options.form = JSON.stringify(options.form); - logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Options', data: options.form}); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Response', data: body}); - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'UTXO Leased'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Wallet', 'Lease UTXO Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} - -exports.releaseUTXO = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Releasing UTXO..'}); - options = common.getOptions(); - options.url = common.getSelLNServerUrl() + '/v2/wallet/utxos/release'; - options.form = {}; - options.form.id = req.body.txid; - options.form.outpoint = { - txid_bytes: req.body.txid, - output_index: req.body.outputIndex - }; - options.form = JSON.stringify(options.form); - request.post(options).then((body) => { - logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Release Response', data: body}); - logger.log({level: 'INFO', fileName: 'Wallet', msg: 'UTXO Released'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Wallet', 'Release UTXO Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -} diff --git a/controllers/shared/RTLConf.js b/controllers/shared/RTLConf.js deleted file mode 100644 index 353e51be..00000000 --- a/controllers/shared/RTLConf.js +++ /dev/null @@ -1,356 +0,0 @@ -var ini = require('ini'); -var parseHocon = require('hocon-parser'); -var fs = require('fs'); -var logger = require('./logger'); -var common = require('../../routes/common'); -var request = require('request-promise'); -var options = {}; - -exports.updateSelectedNode = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating Selected Node..'}); - const selNodeIndex = req.body.selNodeIndex; - common.selectedNode = common.findNode(selNodeIndex); - const responseVal = common.selectedNode && common.selectedNode.ln_node ? common.selectedNode.ln_node : ''; - logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Selected Node Updated To', data: responseVal}); - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Selected Node Updated'}); - res.status(200).json({status: 'Selected Node Updated To: ' + JSON.stringify(responseVal) + '!'}); -}; - -exports.getRTLConfigInitial = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting Initial RTL Configuration..'}); - var confFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - fs.readFile(confFile, 'utf8', function(errRes, data) { - if (errRes) { - if (errRes.code === 'ENOENT') { - logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Node config does not exist!', error: {error: 'Node config does not exist.'}}); - res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: 0, sso: {}, nodes: [] }); - } else { - const errMsg = 'Get Node Config Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } - } else { - const nodeConfData = JSON.parse(data); - const sso = { rtlSSO: common.rtl_sso, logoutRedirectLink: common.logout_redirect_link }; - const enable2FA = !common.rtl_secret2fa ? false : true; - var nodesArr = []; - if (common.nodes && common.nodes.length > 0) { - common.nodes.forEach((node, i) => { - const settings = {}; - settings.userPersona = node.user_persona ? node.user_persona : 'MERCHANT'; - settings.themeMode = (node.theme_mode) ? node.theme_mode : 'DAY'; - settings.themeColor = (node.theme_color) ? node.theme_color : 'PURPLE'; - settings.fiatConversion = (node.fiat_conversion) ? !!node.fiat_conversion : false; - settings.currencyUnit = node.currency_unit; - nodesArr.push({ - index: node.index, - lnNode: node.ln_node, - lnImplementation: node.ln_implementation, - settings: settings, - authentication: {}}) - }); - } - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Initial RTL Configuration Received'}); - res.status(200).json({ defaultNodeIndex: nodeConfData.defaultNodeIndex, selectedNodeIndex: common.selectedNode.index, sso: sso, enable2FA: enable2FA, nodes: nodesArr }); - } - }); -}; - -exports.getRTLConfig = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting RTL Configuration..'}); - var confFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - fs.readFile(confFile, 'utf8', function(errRes, data) { - if (errRes) { - if (errRes.code === 'ENOENT') { - logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Node config does not exist!', error: {error: 'Node config does not exist.'}}); - res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: 0, sso: {}, nodes: [] }); - } else { - const errMsg = 'Get Node Config Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } - } else { - const nodeConfData = JSON.parse(data); - const sso = { rtlSSO: common.rtl_sso, logoutRedirectLink: common.logout_redirect_link }; - const enable2FA = !common.rtl_secret2fa ? false : true; - var nodesArr = []; - if (common.nodes && common.nodes.length > 0) { - common.nodes.forEach((node, i) => { - const authentication = {}; - authentication.configPath = (node.config_path) ? node.config_path : ''; - authentication.swapMacaroonPath = (node.swap_macaroon_path) ? node.swap_macaroon_path : ''; - authentication.boltzMacaroonPath = (node.boltz_macaroon_path) ? node.boltz_macaroon_path : ''; - const settings = {}; - settings.userPersona = node.user_persona ? node.user_persona : 'MERCHANT'; - settings.themeMode = (node.theme_mode) ? node.theme_mode : 'DAY'; - settings.themeColor = (node.theme_color) ? node.theme_color : 'PURPLE'; - settings.fiatConversion = (node.fiat_conversion) ? !!node.fiat_conversion : false; - settings.bitcoindConfigPath = node.bitcoind_config_path; - settings.logLevel = node.log_level ? node.log_level : 'ERROR'; - settings.lnServerUrl = node.ln_server_url; - settings.swapServerUrl = node.swap_server_url; - settings.boltzServerUrl = node.boltz_server_url; - settings.channelBackupPath = node.channel_backup_path; - settings.currencyUnit = node.currency_unit; - nodesArr.push({ - index: node.index, - lnNode: node.ln_node, - lnImplementation: node.ln_implementation, - settings: settings, - authentication: authentication}) - }); - } - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'RTL Configuration Received'}); - res.status(200).json({ defaultNodeIndex: nodeConfData.defaultNodeIndex, selectedNodeIndex: common.selectedNode.index, sso: sso, enable2FA: enable2FA, nodes: nodesArr }); - } - }); -}; - -exports.updateUISettings = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating UI Settings..'}); - var RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); - config.nodes.find(node => { - if (node.index == common.selectedNode.index) { - node.Settings.userPersona = req.body.updatedSettings.userPersona; - node.Settings.themeMode = req.body.updatedSettings.themeMode; - node.Settings.themeColor = req.body.updatedSettings.themeColor; - node.Settings.fiatConversion = req.body.updatedSettings.fiatConversion; - if (req.body.updatedSettings.fiatConversion) { - node.Settings.currencyUnit = req.body.updatedSettings.currencyUnit ? req.body.updatedSettings.currencyUnit : 'USD'; - } else { - delete node.Settings.currencyUnit; - } - const selectedNode = common.findNode(common.selectedNode.index); - selectedNode.user_persona = req.body.updatedSettings.userPersona; - selectedNode.theme_mode = req.body.updatedSettings.themeMode; - selectedNode.theme_color = req.body.updatedSettings.themeColor; - selectedNode.fiat_conversion = req.body.updatedSettings.fiatConversion; - if (req.body.updatedSettings.fiatConversion) { - selectedNode.currency_unit = req.body.updatedSettings.currencyUnit ? req.body.updatedSettings.currencyUnit : 'USD'; - } else { - delete selectedNode.currency_unit; - } - common.replaceNode(common.selectedNode.index, selectedNode); - } - }); - try { - fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); - logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Node Settings Succesful!'}); - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'UI Settings Updated'}); - res.status(201).json({message: 'Node Settings Updated Successfully'}); - } - catch (errRes) { - const errMsg = 'Update Node Settings Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } -}; - -exports.update2FASettings = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating 2FA Settings..'}); - var RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); - config.secret2fa = req.body.secret2fa; - let message = req.body.secret2fa.trim() === '' ? 'Two factor authentication disabled sucessfully.' : 'Two factor authentication enabled sucessfully.'; - try { - fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); - common.rtl_secret2fa = config.secret2fa; - logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: message}); - logger.log({level: 'INFO', fileName: 'RTLConf', msg: '2FA Updated'}); - res.status(201).json({message: message}); - } - catch (errRes) { - const errMsg = 'Update 2FA Settings Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } -}; - -exports.updateDefaultNode = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating Default Node..'}); - RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); - config.defaultNodeIndex = req.body.defaultNodeIndex; - try { - fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); - logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Default Node Succesful!'}); - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Default Node Updated'}); - res.status(201).json({message: 'Default Node Updated Successfully'}); - } - catch (errRes) { - const errMsg = 'Update Default Node Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } -}; - -exports.getConfig = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Reading Configuration File..'}); - let confFile = ''; - let fileFormat = 'INI'; - switch (req.params.nodeType) { - case 'ln': - confFile = common.selectedNode.config_path; - break; - case 'bitcoind': - confFile = common.selectedNode.bitcoind_config_path; - break; - case 'rtl': - fileFormat = 'JSON'; - confFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - break; - default: - confFile = ''; - break; - } - logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: '[Node Type, File Path]', data: [req.params.nodeType, confFile]}); - fs.readFile(confFile, 'utf8', function(errRes, data) { - if (errRes) { - const errMsg = 'Reading Config Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } else { - let jsonConfig = {}; - if (fileFormat === 'JSON') { - jsonConfig = JSON.parse(data); - } else { - fileFormat = 'INI'; - jsonConfig = ini.parse(data); - if (common.selectedNode.ln_implementation === 'ECL' && !jsonConfig['eclair.api.password']) { - fileFormat = 'HOCON'; - jsonConfig = parseHocon(data); - } - } - jsonConfig = maskPasswords(jsonConfig); - const responseJSON = (fileFormat === 'JSON') ? jsonConfig : ini.stringify(jsonConfig); - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Configuration Data Received'}); - res.status(200).json({format: fileFormat, data: responseJSON}); - } - }); -}; - -exports.getFile = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting File..'}); - let file = req.query.path ? req.query.path : (common.selectedNode.channel_backup_path + common.path_separator + 'channel-' + req.query.channel.replace(':', '-') + '.bak'); - logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: '[Channel Point, File Path]', data: [req.query.channel, file]}); - fs.readFile(file, 'utf8', function(errRes, data) { - if (errRes) { - if (errRes.code && errRes.code === 'ENOENT') { errRes.code = 'File Not Found!'; } - const errMsg = 'Reading File Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } else { - logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'File Data', data: data}); - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'File Data Received'}); - res.status(200).json(data); - } - }); -}; - -exports.getCurrencyRates = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting Currency Rates..'}); - options.url = 'https://blockchain.info/ticker'; - request(options).then((body) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Currency Rates Received'}); - res.status(200).json(JSON.parse(body)); - }) - .catch(errRes => { - const errMsg = 'Get Rates Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - }); -}; - -exports.updateSSO = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating SSO Settings..'}); - RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); - delete config.SSO; - config.SSO = req.body.SSO; - try { - fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); - logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating SSO Succesful!'}); - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'SSO Setting Updated'}); - res.status(201).json({message: 'SSO Updated Successfully'}); - } - catch (errRes) { - const errMsg = 'Update SSO Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } -}; - -exports.updateServiceSettings = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating Service Settings..'}); - var RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); - const selectedNode = common.findNode(common.selectedNode.index); - config.nodes.find(node => { - if (node.index == common.selectedNode.index) { - switch (req.body.service) { - case 'LOOP': - if (req.body.settings.enable) { - node.Settings.swapServerUrl = req.body.settings.serverUrl; - node.Authentication.swapMacaroonPath = req.body.settings.macaroonPath; - selectedNode.swap_server_url = req.body.settings.serverUrl; - selectedNode.swap_macaroon_path = req.body.settings.macaroonPath; - } else { - delete node.Settings.swapServerUrl; - delete node.Authentication.swapMacaroonPath; - delete selectedNode.swap_server_url; - delete selectedNode.swap_macaroon_path; - } - break; - - case 'BOLTZ': - if (req.body.settings.enable) { - node.Settings.boltzServerUrl = req.body.settings.serverUrl; - node.Authentication.boltzMacaroonPath = req.body.settings.macaroonPath; - selectedNode.boltz_server_url = req.body.settings.serverUrl; - selectedNode.boltz_macaroon_path = req.body.settings.macaroonPath; - } else { - delete node.Settings.boltzServerUrl; - delete node.Authentication.boltzMacaroonPath; - delete selectedNode.boltz_server_url; - delete selectedNode.boltz_macaroon_path; - } - break; - - default: - break; - } - common.replaceNode(common.selectedNode.index, selectedNode); - } - }); - try { - fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); - logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Service Settings Succesful!'}); - logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Service Settings Updated'}); - res.status(201).json({message: 'Service Settings Updated Successfully'}); - } - catch (errRes) { - const errMsg = 'Update Service Settings Error'; - const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg); - return res.status(err.statusCode).json({message: err.error, error: err.error}); - } -}; - -var maskPasswords = function(obj) { - var keys = Object.keys(obj); - var length = keys.length; - if (length !== 0) { - for (var i = 0; i < length; i++) { - if (typeof obj[keys[i]] === 'object') { - keys[keys[i]] = maskPasswords(obj[keys[i]]); - } - if (typeof keys[i] === 'string' - && (keys[i].toLowerCase().includes('password') || keys[i].toLowerCase().includes('multipass') - || keys[i].toLowerCase().includes('rpcpass') || keys[i].toLowerCase().includes('rpcpassword')) - ) { - obj[keys[i]] = '********************'; - } - } - } - return obj; -}; diff --git a/controllers/shared/authenticate.js b/controllers/shared/authenticate.js deleted file mode 100644 index d9d74db9..00000000 --- a/controllers/shared/authenticate.js +++ /dev/null @@ -1,111 +0,0 @@ -var common = require('../../routes/common'); -var connect = require('../../routes/connect'); -var logger = require('./logger'); -const jwt = require("jsonwebtoken"); -const otplib = require("otplib"); -var crypto = require('crypto'); -var ONE_MINUTE = 60000; -var LOCKING_PERIOD = 30 * ONE_MINUTE; // HALF AN HOUR -var ALLOWED_LOGIN_ATTEMPTS = 5; -var failedLoginAttempts = {}; - -setInterval(() => { - for (var ip in failedLoginAttempts) { - if (new Date().getTime() > (failedLoginAttempts[ip].lastTried + LOCKING_PERIOD)) { - delete failedLoginAttempts[ip]; - } - } -}, LOCKING_PERIOD); - -getFailedInfo = (reqIP, currentTime) => { - let failed = failedLoginAttempts[reqIP] ? failedLoginAttempts[reqIP] : failedLoginAttempts[reqIP] = {count: 0, lastTried: currentTime}; - if (currentTime > (failed.lastTried + LOCKING_PERIOD)) { - failed = failedLoginAttempts[reqIP] = {count: 0, lastTried: currentTime}; - } - return failed; -} - -handleMultipleFailedAttemptsError = (failed, currentTime, errMsg) => { - if (failed.count >= ALLOWED_LOGIN_ATTEMPTS && (currentTime <= (failed.lastTried + LOCKING_PERIOD))) { - return { - message: "Multiple Failed Login Attempts!", - error: "Application locked for " + (LOCKING_PERIOD/ONE_MINUTE) + " minutes due to multiple failed attempts!\nTry again after " + common.convertTimestampToTime((failed.lastTried + LOCKING_PERIOD)/1000) + "!" - }; - } else { - return { - message: "Authentication Failed!", - error: errMsg + "\nApplication will be locked after " + (ALLOWED_LOGIN_ATTEMPTS - failed.count) + " more unsuccessful attempts!" - }; - } -} - -exports.verifyToken = (twoFAToken) => { - if (common.rtl_secret2fa && common.rtl_secret2fa !== '' && otplib.authenticator.check(twoFAToken, common.rtl_secret2fa)) { - return true; - } - return false; -}; - -exports.authenticateUser = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'Authenticating User..'}); - if (+common.rtl_sso) { - if (req.body.authenticateWith === 'JWT' && jwt.verify(req.body.authenticationValue, common.secret_key)) { - logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated'}); - res.status(200).json({ token: token }); - } else if (req.body.authenticateWith === 'PASSWORD' && common.cookie.trim().length >= 32 && crypto.timingSafeEqual(Buffer.from(crypto.createHash('sha256').update(common.cookie).digest('hex'), 'utf-8'), Buffer.from(req.body.authenticationValue, 'utf-8'))) { - connect.refreshCookie(common.rtl_cookie_path); - const token = jwt.sign({ user: 'SSO_USER' }, common.secret_key); - logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated.'}); - res.status(200).json({ token: token }); - } else { - const errMsg = 'SSO Authentication Failed! Access key too short or does not match.'; - const err = common.handleError({ statusCode: 406, message: 'SSO Authentication Error', error: errMsg }, 'Authenticate', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } else { - const currentTime = new Date().getTime(); - const reqIP = common.getRequestIP(req); - let failed = getFailedInfo(reqIP, currentTime); - const password = req.body.authenticationValue; - if (common.rtl_pass === password && failed.count < ALLOWED_LOGIN_ATTEMPTS) { - if (req.body.twoFAToken && req.body.twoFAToken !== '') { - if (!this.verifyToken(req.body.twoFAToken)) { - logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Token! Failed IP ' + reqIP, error: {error: 'Invalid token.'}}); - failed.count = failed.count + 1; - failed.lastTried = currentTime; - return res.status(401).json(handleMultipleFailedAttemptsError(failed, currentTime, 'Invalid 2FA Token!')); - } - } - delete failedLoginAttempts[reqIP]; - const token = jwt.sign({ user: 'NODE_USER' }, common.secret_key); - logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated'}); - res.status(200).json({ token: token }); - } else { - logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Password! Failed IP ' + reqIP, error: {error: 'Invalid password.'}}); - failed.count = common.rtl_pass !== password ? (failed.count + 1) : failed.count; - failed.lastTried = common.rtl_pass !== password ? currentTime : failed.lastTried; - return res.status(401).json(handleMultipleFailedAttemptsError(failed, currentTime, 'Invalid Password!')); - } - } -}; - -exports.resetPassword = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'Resetting Password..'}); - if (+common.rtl_sso) { - const errMsg = 'Password cannot be reset for SSO authentication'; - const err = common.handleError({ statusCode: 401, message: 'Password Reset Error', error: errMsg }, 'Authenticate', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } else { - const currPassword = req.body.currPassword; - if (common.rtl_pass === currPassword) { - common.rtl_pass = connect.replacePasswordWithHash(req.body.newPassword); - const token = jwt.sign({ user: 'NODE_USER' }, common.secret_key); - logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'Password Reset Successful'}); - res.status(200).json({ token: token }); - } else { - const errMsg = 'Incorrect Old Password'; - const err = common.handleError({ statusCode: 401, message: 'Password Reset Error', error: errMsg }, 'Authenticate', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - } -}; diff --git a/controllers/shared/boltz.js b/controllers/shared/boltz.js deleted file mode 100644 index 18f3044c..00000000 --- a/controllers/shared/boltz.js +++ /dev/null @@ -1,175 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('../shared/logger'); -var options = {}; - -exports.getInfo = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting Boltz Information..'}); - options = common.getBoltzServerOptions(); - if (options.url === '') { - const errMsg = 'Boltz Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Get Info Error', error: errMsg }, 'Boltz', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/info'; - request(options).then(function (body) { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Information Received'}); - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Info', data: body}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Boltz', 'Get Info Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getServiceInfo = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting Service Information..'}); - options = common.getBoltzServerOptions(); - if (options.url === '') { - const errMsg = 'Boltz Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Get Service Information Error', error: errMsg }, 'Boltz', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/serviceinfo'; - request(options).then(function (body) { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Service Information Received'}); - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Service Info', data: body}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Boltz', 'Get Service Information Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.listSwaps = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting List Swaps..'}); - options = common.getBoltzServerOptions(); - if (options.url === '') { - const errMsg = 'Boltz Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'List Swaps Error', error: errMsg }, 'Boltz', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/listswaps'; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz List Swaps Info', data: body}); - if (body && body.swaps && body.swaps.length && body.swaps.length > 0) { body.swaps = body.swaps.reverse(); } - if (body && body.reverseSwaps && body.reverseSwaps.length && body.reverseSwaps.length > 0) { body.reverseSwaps = body.reverseSwaps.reverse(); } - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'List Swaps Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Boltz', 'List Swaps Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.getSwapInfo = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting Swap..'}); - options = common.getBoltzServerOptions(); - if (options.url === '') { - const errMsg = 'Boltz Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Get Swap Information Error', error: errMsg }, 'Boltz', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/swap/' + req.params.swapId; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Swap Info', data: body}); - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Swap Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Boltz', 'Swap Info Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.createSwap = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Creating Swap..'}); - options = common.getBoltzServerOptions(); - if (options.url === '') { - const errMsg = 'Boltz Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Create Swap Error', error: errMsg }, 'Boltz', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/createswap'; - options.body = { amount: req.body.amount }; - if (req.body.address !== '') { options.body.address = req.body.address; } - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Body', data: options.body}); - request.post(options).then(createSwapRes => { - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Response', data: createSwapRes}); - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Swap Created'}); - res.status(201).json(createSwapRes); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Boltz', 'Create Swap Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.createReverseSwap = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Creating Reverse Swap..'}); - options = common.getBoltzServerOptions(); - if (options.url === '') { - const errMsg = 'Boltz Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Create Reverse Swap Error', error: errMsg }, 'Boltz', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/createreverseswap'; - options.body = { amount: req.body.amount }; - if (req.body.address !== '') { options.body.address = req.body.address; } - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Body', data: options.body}); - request.post(options).then(createReverseSwapRes => { - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Response', data: createReverseSwapRes}); - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Reverse Swap Created'}); - res.status(201).json(createReverseSwapRes); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Boltz', 'Create Reverse Swap Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.createChannel = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Creating Boltz Channel..'}); - options = common.getBoltzServerOptions(); - if (options.url === '') { - const errMsg = 'Boltz Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Create Channel Error', error: errMsg }, 'Boltz', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/createchannel'; - options.body = { amount: req.body.amount }; - if (req.body.address !== '') { options.body.address = req.body.address; } - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Body', data: options.body}); - request.post(options).then(createChannelRes => { - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Response', data: createChannelRes}); - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Channel Created'}); - res.status(201).json(createChannelRes); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Boltz', 'Create Channel Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.deposit = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Start..'}); - options = common.getBoltzServerOptions(); - if (options.url === '') { - const errMsg = 'Boltz Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Deposit Error', error: errMsg }, 'Boltz', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/deposit'; - request.post(options).then(depositRes => { - logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Deposit Response', data: depositRes}); - logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Finished'}); - res.status(201).json(depositRes); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Boltz', 'Deposit Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/controllers/shared/logger.js b/controllers/shared/logger.js deleted file mode 100644 index 6efa70fa..00000000 --- a/controllers/shared/logger.js +++ /dev/null @@ -1,52 +0,0 @@ -var fs = require('fs'); -var common = require('../../routes/common'); - -exports.log = (msgJSON, selNode = common.selectedNode) => { - let msgStr = '\r\n[' + new Date().toISOString() + '] ' + msgJSON.level + ': ' + msgJSON.fileName + ' => ' + msgJSON.msg; - switch (msgJSON.level) { - case 'ERROR': - if (selNode) { - msgStr = msgStr + ': ' + (typeof msgJSON.error === 'object' ? JSON.stringify(msgJSON.error) : (typeof msgJSON.error === 'string') ? msgJSON.error : ''); - console.error(msgStr); - fs.appendFile(selNode.log_file, msgStr, () => {}); - } - break; - - case 'WARN': - if (selNode && (selNode.log_level == "INFO" || selNode.log_level == "WARN" || selNode.log_level == "DEBUG")) { - msgStr = msgStr + ': ' + (typeof msgJSON.data === 'object' ? JSON.stringify(msgJSON.data) : (typeof msgJSON.data === 'string') ? msgJSON.data : ''); - console.warn(msgStr) - fs.appendFile(selNode.log_file, msgStr, () => {}); - } - break; - - case 'INFO': - if (selNode && (selNode.log_level == "INFO" || selNode.log_level == "DEBUG")) { - msgStr = msgStr + '. ' + (typeof msgJSON.data === 'object' ? JSON.stringify(msgJSON.data) : (typeof msgJSON.data === 'string') ? msgJSON.data : ''); - console.log(msgStr); - fs.appendFile(selNode.log_file, msgStr, () => {}); - } - break; - - case 'DEBUG': - if (selNode && selNode.log_level == "DEBUG") { - if (typeof msgJSON.data !== 'string' && msgJSON.data && msgJSON.data.length && msgJSON.data.length > 0) { - msgStr = msgJSON.data.reduce((accumulator, dataEle) => { - return accumulator + (typeof dataEle === 'object' ? JSON.stringify(dataEle) : (typeof dataEle === 'string') ? dataEle : '') + ', '; - }, msgStr + ': ['); - msgStr = msgStr.slice(0, -2) + ']'; - } else { - if (msgJSON.data && msgJSON.data !== '') { - msgStr = msgStr + ': ' + (typeof msgJSON.data === 'object' ? JSON.stringify(msgJSON.data) : typeof msgJSON.data == 'string' ? msgJSON.data : ''); - } - } - console.log(msgStr); - fs.appendFile(selNode.log_file, msgStr, () => {}); - } - break; - - default: - console.log(msgStr, selNode); - break - } -} diff --git a/controllers/shared/loop.js b/controllers/shared/loop.js deleted file mode 100644 index f94141da..00000000 --- a/controllers/shared/loop.js +++ /dev/null @@ -1,269 +0,0 @@ -var request = require('request-promise'); -var common = require('../../routes/common'); -var logger = require('./logger'); -var options = {}; - -exports.loopOut = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Looping Out..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Loop Out Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/out'; - options.body = { - amt: req.body.amount, - sweep_conf_target: req.body.targetConf, - max_swap_routing_fee: req.body.swapRoutingFee, - max_miner_fee: req.body.minerFee, - max_prepay_routing_fee: req.body.prepayRoutingFee, - max_prepay_amt: req.body.prepayAmt, - max_swap_fee: req.body.swapFee, - swap_publication_deadline: req.body.swapPublicationDeadline, - initiator: 'RTL' - }; - if (req.body.chanId !== '') { options.body['loop_out_channel'] = req.body.chanId; } - if (req.body.destAddress !== '') { options.body['dest'] = req.body.destAddress; } - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Body', data: options.body}); - request.post(options).then(loopOutRes => { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out', data: loopOutRes}); - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Finished'}); - res.status(201).json(loopOutRes); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop Out Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.loopOutTerms = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Loop Out Terms Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/out/terms'; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms', data: body}); - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop Out Terms Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.loopOutQuote = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Quotes..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Loop Out Quotes Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/out/quote/' + req.params.amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote URL', data: options.url}); - request(options).then(function (quoteRes) { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote', data: quoteRes}); - quoteRes.amount = +req.params.amount; - quoteRes.swap_payment_dest = quoteRes.swap_payment_dest ? Buffer.from(quoteRes.swap_payment_dest, 'base64').toString('hex') : ''; - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Quotes Received'}); - res.status(200).json(quoteRes); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop Out Quotes Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.loopOutTermsAndQuotes = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms & Quotes..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Loop Out Terms & Quotes Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/out/terms'; - request(options).then(function(terms) { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms', data: terms}); - const options1 = common.getSwapServerOptions(); const options2 = common.getSwapServerOptions(); - options1.url = options1.url + '/v1/loop/out/quote/' + terms.min_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; - options2.url = options2.url + '/v1/loop/out/quote/' + terms.max_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Min Quote Options', data: options1}); - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Max Quote Options', data: options2}); - return Promise.all([request(options1), request(options2)]).then(function(values) { - values[0].amount = +terms.min_swap_amount; - values[1].amount = +terms.max_swap_amount; - values[0].swap_payment_dest = values[0].swap_payment_dest ? Buffer.from(values[0].swap_payment_dest, 'base64').toString('hex') : ''; - values[1].swap_payment_dest = values[1].swap_payment_dest ? Buffer.from(values[1].swap_payment_dest, 'base64').toString('hex') : ''; - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 1', data: values[0]}); - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 2', data: values[1]}); - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms & Quotes Received'}); - res.status(200).json(values); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop Out Terms & Quotes Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop Out Terms & Quotes Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.loopIn = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Looping In..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Loop In Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/in'; - options.body = { - amt: req.body.amount, - max_swap_fee: req.body.swapFee, - max_miner_fee: req.body.minerFee, - initiator: 'RTL' - }; - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Body', data: options.body}); - request.post(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In', data: body}); - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Finished'}); - res.status(201).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop In Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.loopInTerms = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Loop In Terms Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/in/terms'; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms', data: body}); - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop In Terms Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.loopInQuote = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Quotes..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Loop In Quotes Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/in/quote/' + req.params.amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote Options', data: options.url}); - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote', data: body}); - body.amount = +req.params.amount; - body.swap_payment_dest = body.swap_payment_dest ? Buffer.from(body.swap_payment_dest, 'base64').toString('hex') : ''; - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Qoutes Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop In Quote Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.loopInTermsAndQuotes = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms & Quotes..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Loop In Terms & Quotes Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/in/terms'; - request(options).then(function(terms) { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms', data: terms}); - const options1 = common.getSwapServerOptions(); const options2 = common.getSwapServerOptions(); - options1.url = options1.url + '/v1/loop/in/quote/' + terms.min_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; - options2.url = options2.url + '/v1/loop/in/quote/' + terms.max_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Min Quote Options', data: options1}); - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Max Quote Options', data: options2}); - return Promise.all([request(options1), request(options2)]).then(function(values) { - values[0].amount = +terms.min_swap_amount; - values[1].amount = +terms.max_swap_amount; - values[0].swap_payment_dest = values[0].swap_payment_dest ? Buffer.from(values[0].swap_payment_dest, 'base64').toString('hex') : ''; - values[1].swap_payment_dest = values[1].swap_payment_dest ? Buffer.from(values[1].swap_payment_dest, 'base64').toString('hex') : ''; - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 1', data: values[0]}); - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 2', data: values[1]}); - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms & Qoutes Received'}); - res.status(200).json(values); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop In Terms & Quotes Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Loop In Terms & Quotes Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.swaps = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting List Swaps..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'List Swaps Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/swaps'; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps', data: body}); - if (body.swaps && body.swaps.length > 0) { - body.swaps = common.sortDescByKey(body.swaps, 'initiation_time'); - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps after Sort', data: body}); - } - logger.log({level: 'INFO', fileName: 'Loop', msg: 'List Swaps Received'}); - res.status(200).json(body.swaps); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'List Swaps Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; - -exports.swap = (req, res, next) => { - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Swap Information..'}); - options = common.getSwapServerOptions(); - if (options.url === '') { - const errMsg = 'Loop Server URL is missing in the configuration.'; - const err = common.handleError({ statusCode: 500, message: 'Get Swap Error', error: errMsg }, 'Loop', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } - options.url = options.url + '/v1/loop/swap/' + req.params.id; - request(options).then(function (body) { - logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swap', data: body}); - logger.log({level: 'INFO', fileName: 'Loop', msg: 'Swap Information Received'}); - res.status(200).json(body); - }) - .catch(errRes => { - const err = common.handleError(errRes, 'Loop', 'Get Swap Error'); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - }); -}; diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 0a68eeba..00000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM node:14-alpine - -RUN apk add --no-cache tini - -WORKDIR /RTL - -COPY package.json /RTL/package.json -COPY package-lock.json /RTL/package-lock.json - -# Install dependencies -RUN npm install --production - -COPY . /RTL - -EXPOSE 3000 - -ENTRYPOINT ["/sbin/tini", "-g", "--"] - -CMD ["node", "rtl"] diff --git a/docker/Dockerfile.arm32v7 b/docker/Dockerfile.arm32v7 deleted file mode 100644 index b69ead09..00000000 --- a/docker/Dockerfile.arm32v7 +++ /dev/null @@ -1,33 +0,0 @@ -FROM node:14-stretch-slim AS builder - -ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-armel /tini -ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-armel.asc /tini.asc -# RUN apt-get install gnupg -# RUN gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \ -# && gpg --batch --verify /tini.asc /tini -RUN chmod +x /tini - -WORKDIR /RTL - -COPY . /RTL - -COPY package.json /RTL/package.json -COPY package-lock.json /RTL/package-lock.json - -# Install dependencies -RUN npm install --production - -COPY . /RTL - -FROM arm32v7/node:14-stretch-slim - -WORKDIR /RTL - -COPY --from=builder "/RTL" . -COPY --from=builder "/tini" /sbin/tini - -EXPOSE 3000 - -ENTRYPOINT ["/sbin/tini", "-g", "--"] - -CMD ["node", "rtl"] diff --git a/docker/Dockerfile.arm64v8 b/docker/Dockerfile.arm64v8 deleted file mode 100644 index 11813359..00000000 --- a/docker/Dockerfile.arm64v8 +++ /dev/null @@ -1,29 +0,0 @@ -FROM node:14-stretch-slim AS builder - -ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-arm64 /tini -RUN chmod +x /tini - -WORKDIR /RTL - -COPY . /RTL - -COPY package.json /RTL/package.json -COPY package-lock.json /RTL/package-lock.json - -# Install dependencies -RUN npm install --production - -COPY . /RTL - -FROM arm64v8/node:14-stretch-slim - -WORKDIR /RTL - -COPY --from=builder "/RTL" . -COPY --from=builder "/tini" /sbin/tini - -EXPOSE 3000 - -ENTRYPOINT ["/sbin/tini", "-g", "--"] - -CMD ["node", "rtl"] diff --git a/docker/README.md b/docker/README.md index 735ed840..dcd9254d 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,4 +1,4 @@ -# RTL Docker Dev Setup +# 1) RTL Docker Dev Setup ### This is not suitable for production deployments. ONLY FOR DEVELOPMENT. @@ -6,14 +6,16 @@ This `docker-compose` template launches `bitcoind`, `lnd` and `rtl` containers. It is configured to run in **regtest** mode but can be modified to suit your needs. -### Notes +### 1.1) Notes - `bitcoind` is built from an Ubuntu repository and should not be used in production. - `lnd` will not sync to chain until Bitcoin regtest blocks are generated (see below). - `rtl` image is from the Docker Hub repository but you can change this to your needs. - Various ports and configs can be adjusted in the `.env` or `docker-compose.yml` files. -## How to run -It may take several minutes if containers need to be built. From the terminal in this folder: +## 1.2) How to run +It may take several minutes if containers need to be built. + +1.2.1) From the terminal in this folder: ``` $ docker-compose up -d bitcoind @@ -21,18 +23,18 @@ $ bin/b-cli generate 101 $ docker-compose up -d lnd rtl ``` -Check containers are up and running with: +1.2.2) Check containers are up and running with: ``` $ docker-compose ps ``` -Use the cli tools to get responses from the containers: +1.2.3) Use the cli tools to get responses from the containers: ``` $ bin/ln-cli getinfo $ bin/b-cli getblockchaininfo ``` -View daemon logs as follows: +1.2.4) View daemon logs as follows: ``` $ docker-compose logs bitcoind lnd rtl ``` @@ -46,6 +48,48 @@ When you are done you can destroy containers with: ``` $ docker-compose down -v ``` +--- +# 2) Stand alone RTL Setup +This is suitable when you already have a LND node running and configured. + +## 2.1) From docker image pull +``` +RTL_VERSION=0.12.0 +docker run --name rtl -d -it \ +-e RTL_CONFIG_PATH=/RTLConfig \ +-v /path/to/RTLConfig/dir:/RTLConfig \ +-v /path/to/macaroon/dir:/path/as/specified/in/RTLConfig \ +-v /path/to/database/dir:/RTL/database \ +-p 3000:3000/tcp \ +shahanafarooqui/rtl:${RTL_VERSION} +``` + +## 2.2) From local docker build +### 2.2.1) Build the image locally +``` +RTL_VERSION=0.12.0 +docker build -t rtl:${RTL_VERSION} -f dockerfiles/Dockerfile . +``` +### 2.2.2) Create .env file +Create an environment file with your required configurations. Sample .env: +``` +RTL_CONFIG_PATH=/RTLConfig +MACAROON_PATH=/LNDMacaroon +LN_SERVER_URL=https://host.docker.internal:8080 + +``` + +### 2.2.3) Run the newly built image with .env configurations +``` +RTL_VERSION=0.12.0 +docker run -d -it \ +-v /path/to/RTLConfig/dir:/RTLConfig \ +-v /path/to/macaroon/dir:/LNDMacaroon \ +-v /path/to/database/dir:/RTL/database \ +--env-file=.env -p 3000:3000 rtl:${RTL_VERSION} +``` + +Once the container is running you can access the RTL UI at http://localhost:3000 --- @hashamadeus on Twitter diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 019c98ab..8832f4ef 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -4,6 +4,7 @@ volumes: bitcoin_data: lightning_data: lightning_shared: + rtl_db: services: bitcoind: @@ -101,12 +102,13 @@ services: rtl: container_name: ${COMPOSE_PROJECT_NAME}_rtl - image: shahanafarooqui/rtl:0.10.2 + image: shahanafarooqui/rtl:0.12.0 restart: unless-stopped depends_on: - lnd volumes: - lightning_shared:/shared:ro + - rtl_db:/database ports: - "${RTL_PORT}:${RTL_PORT}" environment: @@ -126,3 +128,4 @@ services: RTL_CONFIG_PATH: /RTL BITCOIND_CONFIG_PATH: '' CHANNEL_BACKUP_PATH: /shared/lnd/backup + ENABLE_OFFERS: false diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile new file mode 100644 index 00000000..5bfb1f17 --- /dev/null +++ b/dockerfiles/Dockerfile @@ -0,0 +1,46 @@ +# --------------- +# Install Dependencies +# --------------- +FROM node:16-alpine as builder + +WORKDIR /RTL + +COPY package.json /RTL/package.json +COPY package-lock.json /RTL/package-lock.json + +RUN npm install + +# --------------- +# Build App +# --------------- +COPY . . + +# Build the Angular application +RUN npm run buildfrontend + +# Build the Backend from typescript server +RUN npm run buildbackend + +# Remove non production necessary modules +RUN npm prune --production + +# --------------- +# Release App +# --------------- +FROM node:16-alpine as runner + +WORKDIR /RTL + +RUN apk add --no-cache tini + +COPY --from=builder /RTL/rtl.js ./rtl.js +COPY --from=builder /RTL/package.json ./package.json +COPY --from=builder /RTL/frontend ./frontend +COPY --from=builder /RTL/backend ./backend +COPY --from=builder /RTL/node_modules/ ./node_modules + +EXPOSE 3000 + +ENTRYPOINT ["/sbin/tini", "-g", "--"] + +CMD ["node", "rtl"] diff --git a/dockerfiles/Dockerfile.arm32v7 b/dockerfiles/Dockerfile.arm32v7 new file mode 100644 index 00000000..17e5836f --- /dev/null +++ b/dockerfiles/Dockerfile.arm32v7 @@ -0,0 +1,49 @@ +# --------------- +# Install Dependencies +# --------------- +FROM node:16-stretch-slim as builder + +ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-armel /tini +ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-armel.asc /tini.asc +RUN chmod +x /tini + +WORKDIR /RTL + +COPY package.json /RTL/package.json +COPY package-lock.json /RTL/package-lock.json + +RUN npm install + +# --------------- +# Build App +# --------------- +COPY . . + +# Build the Angular application +RUN npm run buildfrontend + +# Build the Backend from typescript server +RUN npm run buildbackend + +# Remove non production necessary modules +RUN npm prune --production + +# --------------- +# Release App +# --------------- +FROM arm32v7/node:16-stretch-slim as runner + +WORKDIR /RTL + +COPY --from=builder /RTL/rtl.js ./rtl.js +COPY --from=builder /RTL/package.json ./package.json +COPY --from=builder /RTL/frontend ./frontend +COPY --from=builder /RTL/backend ./backend +COPY --from=builder /RTL/node_modules/ ./node_modules +COPY --from=builder "/tini" /sbin/tini + +EXPOSE 3000 + +ENTRYPOINT ["/sbin/tini", "-g", "--"] + +CMD ["node", "rtl"] diff --git a/dockerfiles/Dockerfile.arm64v8 b/dockerfiles/Dockerfile.arm64v8 new file mode 100644 index 00000000..3f53172d --- /dev/null +++ b/dockerfiles/Dockerfile.arm64v8 @@ -0,0 +1,48 @@ +# --------------- +# Install Dependencies +# --------------- +FROM node:16-stretch-slim as builder + +ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-arm64 /tini +RUN chmod +x /tini + +WORKDIR /RTL + +COPY package.json /RTL/package.json +COPY package-lock.json /RTL/package-lock.json + +RUN npm install + +# --------------- +# Build App +# --------------- +COPY . . + +# Build the Angular application +RUN npm run buildfrontend + +# Build the Backend from typescript server +RUN npm run buildbackend + +# Remove non production necessary modules +RUN npm prune --production + +# --------------- +# Release App +# --------------- +FROM arm64v8/node:16-stretch-slim as runner + +WORKDIR /RTL + +COPY --from=builder /RTL/rtl.js ./rtl.js +COPY --from=builder /RTL/package.json ./package.json +COPY --from=builder /RTL/frontend ./frontend +COPY --from=builder /RTL/backend ./backend +COPY --from=builder /RTL/node_modules/ ./node_modules +COPY --from=builder "/tini" /sbin/tini + +EXPOSE 3000 + +ENTRYPOINT ["/sbin/tini", "-g", "--"] + +CMD ["node", "rtl"] diff --git a/angular/3rdpartylicenses.txt b/frontend/3rdpartylicenses.txt similarity index 65% rename from angular/3rdpartylicenses.txt rename to frontend/3rdpartylicenses.txt index 9a98ef66..81a42e84 100644 --- a/angular/3rdpartylicenses.txt +++ b/frontend/3rdpartylicenses.txt @@ -34,28 +34,6 @@ MIT @angular/flex-layout MIT -The MIT License - -Copyright (c) 2020 Google LLC. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - @angular/forms MIT @@ -91,6 +69,32 @@ MIT @angular/router MIT +@babel/runtime +MIT +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @fortawesome/angular-fontawesome MIT MIT License @@ -116,6 +120,44 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +@fortawesome/fontawesome-svg-core +MIT +Font Awesome Free License +------------------------- + +Font Awesome Free is free, open source, and GPL friendly. You can use it for +commercial projects, open source projects, or really almost whatever you want. +Full Font Awesome Free license: https://fontawesome.com/license/free. + +# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) +In the Font Awesome Free download, the CC BY 4.0 license applies to all icons +packaged as SVG and JS file types. + +# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL) +In the Font Awesome Free download, the SIL OFL license applies to all icons +packaged as web and desktop font files. + +# Code: MIT License (https://opensource.org/licenses/MIT) +In the Font Awesome Free download, the MIT license applies to all non-font and +non-icon files. + +# Attribution +Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font +Awesome Free files already contain embedded comments with sufficient +attribution, so you shouldn't need to do anything additional when using these +files normally. + +We've kept attribution comments terse, so we ask that you do not actively work +to remove them from files, especially code. They're a great way for folks to +learn about Font Awesome. + +# Brand Icons +All brand icons are trademarks of their respective owners. The use of these +trademarks does not indicate endorsement of the trademark holder by Font +Awesome, nor vice versa. **Please do not use brand logos for any purpose except +to represent the company, product, or service to which they refer.** + + @fortawesome/free-regular-svg-icons (CC-BY-4.0 AND MIT) Font Awesome Free License @@ -326,7 +368,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -angularx-qrcode +angular-user-idle MIT asn1.js @@ -597,6 +639,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +clone-deep +MIT +The MIT License (MIT) + +Copyright (c) 2014-2018, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + convert-hex convert-string @@ -639,69 +706,627 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +create-hmac +MIT +The MIT License (MIT) + +Copyright (c) 2017 crypto-browserify contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +crypto-browserify +MIT +The MIT License + +Copyright (c) 2013 Dominic Tarr + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +d3-array +BSD-3-Clause +Copyright 2010-2020 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-brush +BSD-3-Clause +Copyright 2010-2016 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-color +BSD-3-Clause +Copyright 2010-2016 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-dispatch +BSD-3-Clause +Copyright 2010-2016 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-drag +BSD-3-Clause +Copyright 2010-2016 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-ease +BSD-3-Clause +Copyright 2010-2016 Mike Bostock +Copyright 2001 Robert Penner +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-format +BSD-3-Clause +Copyright 2010-2015 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-hierarchy +BSD-3-Clause +Copyright 2010-2016 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-interpolate +BSD-3-Clause +Copyright 2010-2016 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-path +BSD-3-Clause +Copyright 2015-2016 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-scale +BSD-3-Clause +Copyright 2010-2015 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-selection +BSD-3-Clause +Copyright (c) 2010-2018, Michael Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* The name Michael Bostock may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-shape +BSD-3-Clause +Copyright 2010-2015 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-time +BSD-3-Clause +Copyright 2010-2016 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-time-format +BSD-3-Clause +Copyright 2010-2017 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +d3-timer +BSD-3-Clause +Copyright 2010-2016 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +d3-transition +BSD-3-Clause +Copyright (c) 2010-2015, Michael Bostock +All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -create-hmac -MIT -The MIT License (MIT) +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -Copyright (c) 2017 crypto-browserify contributors +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +* The name Michael Bostock may not be used to endorse or promote products + derived from this software without specific prior written permission. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +TERMS OF USE - EASING EQUATIONS +Open source under the BSD License. -crypto-browserify -MIT -The MIT License +Copyright 2001 Robert Penner +All rights reserved. -Copyright (c) 2013 Dominic Tarr +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: +- Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +- Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. des.js MIT @@ -755,6 +1380,9 @@ THE SOFTWARE. elliptic MIT +encode-utf8 +MIT + events MIT MIT @@ -872,11 +1500,11 @@ PERFORMANCE OF THIS SOFTWARE. -isarray +is-plain-object MIT -MIT License +The MIT License (MIT) -Copyright (c) 2013 Julian Gruber +Copyright (c) 2014-2017, Jon Schlinkert. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -885,16 +1513,65 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +isobject +MIT +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +kind-of +MIT +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. md5.js @@ -944,6 +1621,31 @@ PERFORMANCE OF THIS SOFTWARE. minimalistic-crypto-utils MIT +ng-qrcode +MIT +MIT License + +Copyright (c) 2019 Michael Nahkies + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + ngx-perfect-scrollbar MIT @@ -1014,6 +1716,54 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +pdfmake +MIT +The MIT License (MIT) + +Copyright (c) 2014-2015 bpampuch + 2016-2021 liborm85 + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +perfect-scrollbar +MIT +The MIT License (MIT) Copyright (c) 2012-2019 Hyunje Jun, MDBootstrap.com and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + public-encrypt MIT Copyright (c) 2017 Calvin Metcalf @@ -1152,6 +1902,56 @@ IN THE SOFTWARE. """ +regenerator-runtime +MIT +MIT License + +Copyright (c) 2014-present, Facebook, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +resize-observer-polyfill +MIT +The MIT License (MIT) + +Copyright (c) 2016 Denis Rul + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + ripemd160 MIT The MIT License (MIT) @@ -1488,6 +2288,31 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. sha256 +shallow-clone +MIT +The MIT License (MIT) + +Copyright (c) 2015-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + stream-browserify MIT MIT License diff --git a/frontend/632.132314894833c95c.js b/frontend/632.132314894833c95c.js new file mode 100644 index 00000000..eb055e05 --- /dev/null +++ b/frontend/632.132314894833c95c.js @@ -0,0 +1 @@ +(self.webpackChunkRTLApp=self.webpackChunkRTLApp||[]).push([[632],{7632:(ci,Fr,St)=>{"use strict";St.r(Fr),St.d(Fr,{CLModule:()=>mB});var ht=St(9808),Ae=St(9291),zn=St(8878),A=St(5e3),Qt=St(7093),Y=St(5899);function I(i,U){1&i&&A._UZ(0,"mat-progress-bar",3)}let n=(()=>{class i{constructor(t){this.router=t,this.loading=!1,this.router.events.subscribe(B=>{switch(!0){case B instanceof Ae.OD:this.loading=!0;break;case B instanceof Ae.m2:case B instanceof Ae.gk:case B instanceof Ae.Q3:this.loading=!1}})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-root"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"inner-sidenav-content"],["color","primary","mode","indeterminate",4,"ngIf"],["outlet","outlet"],["color","primary","mode","indeterminate"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.YNc(1,I,1,0,"mat-progress-bar",1),A._UZ(2,"router-outlet",null,2),A.qZA()),2&t&&(A.xp6(1),A.Q6J("ngIf",B.loading))},directives:[Qt.xw,Qt.yH,Qt.Wh,ht.O5,Ae.lC,Y.pW],styles:[""],data:{animation:[zn.g]}}),i})();var c=St(7579),r=St(2722),a=St(1365),s=St(534),E=St(801),o=St(7731),l=St(7080),h=St(5043),u=St(5620),C=St(6642),e=St(62),f=St(9444),g=St(3954),w=St(9224),Q=St(2181),d=St(3322),F=St(7423),m=St(5245);const p=function(i){return{backgroundColor:i}};function D(i,U){if(1&i&&A._UZ(0,"span",6),2&i){const t=A.oxw();A.Q6J("ngStyle",A.VKq(1,p,"#"+(null==t.information?null:t.information.color)))}}function v(i,U){if(1&i&&(A.TgZ(0,"div"),A.TgZ(1,"h4",1),A._uU(2,"Color"),A.qZA(),A.TgZ(3,"div",2),A._UZ(4,"span",7),A._uU(5),A.ALo(6,"uppercase"),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(4),A.Q6J("ngStyle",A.VKq(4,p,"#"+(null==t.information?null:t.information.color))),A.xp6(1),A.hij(" ",A.lcZ(6,2,null==t.information?null:t.information.color)," ")}}function P(i,U){if(1&i&&(A.TgZ(0,"span",2),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(t)}}let T=(()=>{class i{constructor(t){this.commonService=t,this.chains=[""]}ngOnChanges(){this.information&&this.information.chains&&this.information.chains.length>0&&(this.chains=[""],this.information.chains.forEach(t=>{this.chains.push(this.commonService.titleCase(t.chain)+" "+this.commonService.titleCase(t.network))}))}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(e.v))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-node-info"]],inputs:{information:"information",showColorFieldSeparately:"showColorFieldSeparately"},features:[A.TTD],decls:17,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["class","dashboard-node-dot dot",3,"ngStyle",4,"ngIf"],[4,"ngIf"],["class","overflow-wrap dashboard-info-value",4,"ngFor","ngForOf"],[1,"dashboard-node-dot","dot",3,"ngStyle"],[1,"dashboard-node-square",3,"ngStyle"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div"),A.TgZ(2,"h4",1),A._uU(3,"Alias"),A.qZA(),A.TgZ(4,"div",2),A._uU(5),A.YNc(6,D,1,3,"span",3),A.qZA(),A.qZA(),A.YNc(7,v,7,6,"div",4),A.TgZ(8,"div"),A.TgZ(9,"h4",1),A._uU(10,"Implementation"),A.qZA(),A.TgZ(11,"div",2),A._uU(12),A.qZA(),A.qZA(),A.TgZ(13,"div"),A.TgZ(14,"h4",1),A._uU(15,"Chain"),A.qZA(),A.YNc(16,P,2,1,"span",5),A.qZA(),A.qZA()),2&t&&(A.xp6(5),A.hij(" ",null==B.information?null:B.information.alias," "),A.xp6(1),A.Q6J("ngIf",!B.showColorFieldSeparately),A.xp6(1),A.Q6J("ngIf",B.showColorFieldSeparately),A.xp6(5),A.Oqu(null!=B.information&&B.information.lnImplementation||null!=B.information&&B.information.version?(null==B.information?null:B.information.lnImplementation)+" "+(null==B.information?null:B.information.version):""),A.xp6(4),A.Q6J("ngForOf",B.chains))},directives:[Qt.xw,Qt.yH,Qt.Wh,ht.O5,ht.sg,ht.PC,d.Zl],pipes:[ht.gd],styles:[""]}),i})();function x(i,U){if(1&i&&(A.TgZ(0,"div",2),A.TgZ(1,"div"),A.TgZ(2,"h4",3),A._uU(3,"Lightning"),A.qZA(),A.TgZ(4,"div",4),A._uU(5),A.ALo(6,"number"),A.qZA(),A._UZ(7,"mat-progress-bar",5),A.qZA(),A.TgZ(8,"div"),A.TgZ(9,"h4",3),A._uU(10,"On-chain"),A.qZA(),A.TgZ(11,"div",4),A._uU(12),A.ALo(13,"number"),A.qZA(),A._UZ(14,"mat-progress-bar",5),A.qZA(),A.TgZ(15,"div"),A.TgZ(16,"h4",3),A._uU(17,"Total"),A.qZA(),A.TgZ(18,"div",4),A._uU(19),A.ALo(20,"number"),A.qZA(),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(5),A.hij("",A.lcZ(6,5,t.balances.lightning)," Sats"),A.xp6(2),A.s9C("value",t.balances.lightning/t.balances.total*100),A.xp6(5),A.hij("",A.lcZ(13,7,t.balances.onchain)," Sats"),A.xp6(2),A.s9C("value",t.balances.onchain/t.balances.total*100),A.xp6(5),A.hij("",A.lcZ(20,9,t.balances.total)," Sats")}}function R(i,U){if(1&i&&(A.TgZ(0,"div",6),A.TgZ(1,"p"),A._uU(2),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(2),A.Oqu(t.errorMessage)}}let N=(()=>{class i{constructor(){this.balances={onchain:0,lightning:0,total:0}}}return i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-balances-info"]],inputs:{balances:"balances",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,B){if(1&t&&(A.YNc(0,x,21,11,"div",0),A.YNc(1,R,3,1,"ng-template",null,1,A.W1O)),2&t){const k=A.MAs(2);A.Q6J("ngIf",""===(null==B.errorMessage?null:B.errorMessage.trim()))("ngIfElse",k)}},directives:[ht.O5,Qt.xw,Qt.yH,Qt.Wh,Y.pW],pipes:[ht.JJ],styles:[""]}),i})();var V=St(7322),aA=St(7238),AA=St(4834),gA=St(644);function MA(i,U){if(1&i&&(A.TgZ(0,"div",19),A.TgZ(1,"span",20),A._uU(2),A.ALo(3,"slice"),A.qZA(),A.TgZ(4,"div",6),A.TgZ(5,"mat-hint",21),A.TgZ(6,"strong",8),A._uU(7,"Local:"),A.qZA(),A._uU(8),A.ALo(9,"number"),A.qZA(),A.TgZ(10,"mat-hint",22),A._UZ(11,"fa-icon",23),A._uU(12),A.ALo(13,"number"),A.qZA(),A.TgZ(14,"mat-hint",24),A.TgZ(15,"strong",8),A._uU(16,"Remote:"),A.qZA(),A._uU(17),A.ALo(18,"number"),A.qZA(),A.qZA(),A._UZ(19,"mat-progress-bar",25),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(3);A.xp6(1),A.s9C("matTooltip",t.alias||t.id),A.s9C("matTooltipDisabled",(t.alias||t.id).length<26),A.xp6(1),A.AsE("",A.Dn7(3,9,t.alias||t.id,0,24),"",(t.alias||t.id).length>25?"...":"",""),A.xp6(6),A.hij("",A.xi3(9,13,t.msatoshi_to_us/1e3||0,"1.0-0")," Sats"),A.xp6(3),A.Q6J("icon",B.faBalanceScale),A.xp6(1),A.hij(" (",A.lcZ(13,16,t.balancedness||0),") "),A.xp6(5),A.hij("",A.xi3(18,18,t.msatoshi_to_them/1e3||0,"1.0-0")," Sats"),A.xp6(2),A.s9C("value",t.msatoshi_to_us&&t.msatoshi_to_us>0?+t.msatoshi_to_us/(+t.msatoshi_to_us+ +t.msatoshi_to_them)*100:0)}}function cA(i,U){if(1&i&&(A.TgZ(0,"div",17),A.YNc(1,MA,20,21,"div",18),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngForOf",t.activeChannels)}}function lA(i,U){if(1&i&&(A.TgZ(0,"div",3),A.TgZ(1,"div",4),A.TgZ(2,"span",5),A._uU(3,"Total Capacity"),A.qZA(),A.TgZ(4,"div",6),A.TgZ(5,"mat-hint",7),A.TgZ(6,"strong",8),A._uU(7,"Local:"),A.qZA(),A._uU(8),A.ALo(9,"number"),A.qZA(),A.TgZ(10,"mat-hint",9),A._UZ(11,"fa-icon",10),A._uU(12),A.ALo(13,"number"),A.qZA(),A.TgZ(14,"mat-hint",11),A.TgZ(15,"strong",8),A._uU(16,"Remote:"),A.qZA(),A._uU(17),A.ALo(18,"number"),A.qZA(),A.qZA(),A._UZ(19,"mat-progress-bar",12),A.qZA(),A.TgZ(20,"div",13),A._UZ(21,"mat-divider",14),A.qZA(),A.TgZ(22,"div",15),A.YNc(23,cA,2,1,"div",16),A.qZA(),A.qZA()),2&i){const t=A.oxw(),B=A.MAs(2);A.xp6(8),A.hij("",A.xi3(9,7,(null==t.channelBalances?null:t.channelBalances.localBalance)||0,"1.0-0")," Sats"),A.xp6(3),A.Q6J("icon",t.faBalanceScale),A.xp6(1),A.hij(" (",A.lcZ(13,10,(null==t.channelBalances?null:t.channelBalances.balancedness)||0),") "),A.xp6(5),A.hij("",A.xi3(18,12,(null==t.channelBalances?null:t.channelBalances.remoteBalance)||0,"1.0-0")," Sats"),A.xp6(2),A.s9C("value",null!=t.channelBalances&&t.channelBalances.localBalance&&(null==t.channelBalances?null:t.channelBalances.localBalance)>0?+(null==t.channelBalances?null:t.channelBalances.localBalance)/(+(null==t.channelBalances?null:t.channelBalances.localBalance)+ +(null==t.channelBalances?null:t.channelBalances.remoteBalance))*100:0),A.xp6(4),A.Q6J("ngIf",t.activeChannels&&t.activeChannels.length>0)("ngIfElse",B)}}function BA(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",26),A._uU(1," No channels available. "),A.TgZ(2,"button",27),A.NdJ("click",function(){return A.CHM(t),A.oxw().goToChannels()}),A._uU(3,"Open Channel"),A.qZA(),A.qZA()}}function vA(i,U){if(1&i&&(A.TgZ(0,"div",28),A.TgZ(1,"p"),A._uU(2),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(2),A.Oqu(t.errorMessage)}}let xA=(()=>{class i{constructor(t){this.router=t,this.faBalanceScale=E.DL8,this.faDumbbell=E.FlN,this.sortBy="Balance Score"}goToChannels(){this.router.navigateByUrl("/cl/connections")}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-channel-capacity-info"]],inputs:{channelBalances:"channelBalances",activeChannels:"activeChannels",sortBy:"sortBy",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90"],[1,"font-weight-900","mr-5px"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90"],["matTooltip","Balance Score",1,"mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90"],["mode","determinate","color","accent",1,"dashboard-progress-bar","this-channel-bar",3,"value"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],[1,"channels-capacity-scroll",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90","color-primary"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90","color-primary"],["matTooltip","Balance Score",1,"color-primary","mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90","color-primary"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start",1,"mt-1","w-100"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,B){if(1&t&&(A.YNc(0,lA,24,15,"div",0),A.YNc(1,BA,4,0,"ng-template",null,1,A.W1O),A.YNc(3,vA,3,1,"ng-template",null,2,A.W1O)),2&t){const k=A.MAs(4);A.Q6J("ngIf",""===(null==B.errorMessage?null:B.errorMessage.trim()))("ngIfElse",k)}},directives:[ht.O5,Qt.xw,Qt.Wh,Qt.yH,V.bx,f.BN,aA.gM,Y.pW,AA.d,gA.$V,ht.sg,F.lW],pipes:[ht.JJ,ht.OU],styles:[".channels-capacity-scroll[_ngcontent-%COMP%]{width:100%;height:100%;overflow-y:hidden}"]}),i})();function _(i,U){if(1&i&&(A.TgZ(0,"div",2),A.TgZ(1,"div",3),A.TgZ(2,"div"),A.TgZ(3,"h4",4),A._uU(4,"Total"),A.qZA(),A.TgZ(5,"div",5),A._uU(6),A.ALo(7,"number"),A.qZA(),A.qZA(),A.qZA(),A.TgZ(8,"div",3),A.TgZ(9,"div"),A.TgZ(10,"h4",4),A._uU(11,"Transactions"),A.qZA(),A.TgZ(12,"div",5),A._uU(13),A.ALo(14,"number"),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(6),A.hij("",A.lcZ(7,2,(null==t.fees?null:t.fees.feeCollected)/1e3)," Sats"),A.xp6(7),A.Oqu(A.lcZ(14,4,null==t.fees?null:t.fees.totalTxCount))}}function QA(i,U){if(1&i&&(A.TgZ(0,"div",6),A.TgZ(1,"p"),A._uU(2),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(2),A.Oqu(t.errorMessage)}}let uA=(()=>{class i{constructor(){this.totalFees=[{name:"Total",value:0}]}}return i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-fee-info"]],inputs:{fees:"fees",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,B){if(1&t&&(A.YNc(0,_,15,6,"div",0),A.YNc(1,QA,3,1,"ng-template",null,1,A.W1O)),2&t){const k=A.MAs(2);A.Q6J("ngIf",""===(null==B.errorMessage?null:B.errorMessage.trim()))("ngIfElse",k)}},directives:[ht.O5,Qt.xw,Qt.yH,Qt.Wh],pipes:[ht.JJ],styles:[""]}),i})();function CA(i,U){if(1&i&&(A.TgZ(0,"div",2),A.TgZ(1,"div",3),A.TgZ(2,"div"),A.TgZ(3,"h4",4),A._uU(4,"Active"),A.qZA(),A.TgZ(5,"div",5),A._UZ(6,"span",6),A._uU(7),A.ALo(8,"number"),A.qZA(),A.qZA(),A.TgZ(9,"div"),A.TgZ(10,"h4",4),A._uU(11,"Pending"),A.qZA(),A.TgZ(12,"div",5),A._UZ(13,"span",7),A._uU(14),A.ALo(15,"number"),A.qZA(),A.qZA(),A.TgZ(16,"div"),A.TgZ(17,"h4",4),A._uU(18,"Inactive"),A.qZA(),A.TgZ(19,"div",5),A._UZ(20,"span",8),A._uU(21),A.ALo(22,"number"),A.qZA(),A.qZA(),A.qZA(),A.TgZ(23,"div",3),A.TgZ(24,"div"),A.TgZ(25,"h4",4),A._uU(26,"Capacity"),A.qZA(),A.TgZ(27,"div",5),A._uU(28),A.ALo(29,"number"),A.qZA(),A.qZA(),A.TgZ(30,"div"),A.TgZ(31,"h4",4),A._uU(32,"Capacity"),A.qZA(),A.TgZ(33,"div",5),A._uU(34),A.ALo(35,"number"),A.qZA(),A.qZA(),A.TgZ(36,"div"),A.TgZ(37,"h4",4),A._uU(38,"Capacity"),A.qZA(),A.TgZ(39,"div",5),A._uU(40),A.ALo(41,"number"),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(7),A.Oqu(A.lcZ(8,6,(null==t.channelsStatus||null==t.channelsStatus.active?null:t.channelsStatus.active.channels)||0)),A.xp6(7),A.Oqu(A.lcZ(15,8,(null==t.channelsStatus||null==t.channelsStatus.pending?null:t.channelsStatus.pending.channels)||0)),A.xp6(7),A.Oqu(A.lcZ(22,10,(null==t.channelsStatus||null==t.channelsStatus.inactive?null:t.channelsStatus.inactive.channels)||0)),A.xp6(7),A.hij("",A.lcZ(29,12,(null==t.channelsStatus||null==t.channelsStatus.active?null:t.channelsStatus.active.capacity)||0)," Sats"),A.xp6(6),A.hij("",A.lcZ(35,14,(null==t.channelsStatus||null==t.channelsStatus.pending?null:t.channelsStatus.pending.capacity)||0)," Sats"),A.xp6(6),A.hij("",A.lcZ(41,16,(null==t.channelsStatus||null==t.channelsStatus.inactive?null:t.channelsStatus.inactive.capacity)||0)," Sats")}}function TA(i,U){if(1&i&&(A.TgZ(0,"div",9),A.TgZ(1,"p"),A._uU(2),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(2),A.Oqu(t.errorMessage)}}let GA=(()=>{class i{constructor(){this.channelsStatus={active:{},pending:{},inactive:{}}}}return i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-channel-status-info"]],inputs:{channelsStatus:"channelsStatus",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],[1,"dot","tiny-dot","green"],[1,"dot","tiny-dot","yellow"],[1,"dot","tiny-dot","grey"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,B){if(1&t&&(A.YNc(0,CA,42,18,"div",0),A.YNc(1,TA,3,1,"ng-template",null,1,A.W1O)),2&t){const k=A.MAs(2);A.Q6J("ngIf",""===(null==B.errorMessage?null:B.errorMessage.trim()))("ngIfElse",k)}},directives:[ht.O5,Qt.xw,Qt.yH,Qt.Wh],pipes:[ht.JJ],styles:[""]}),i})();function VA(i,U){if(1&i&&(A.TgZ(0,"mat-hint",19),A.TgZ(1,"strong",20),A._uU(2,"Capacity: "),A.qZA(),A._uU(3),A.ALo(4,"number"),A.qZA()),2&i){const t=A.oxw().$implicit;A.xp6(3),A.hij("",A.xi3(4,1,t.msatoshi_to_them/1e3||0,"1.0-0")," Sats")}}function q(i,U){if(1&i&&(A.TgZ(0,"mat-hint",19),A.TgZ(1,"strong",20),A._uU(2,"Capacity: "),A.qZA(),A._uU(3),A.ALo(4,"number"),A.qZA()),2&i){const t=A.oxw().$implicit;A.xp6(3),A.hij("",A.xi3(4,1,t.msatoshi_to_us/1e3||0,"1.0-0")," Sats")}}function J(i,U){if(1&i&&A._UZ(0,"mat-progress-bar",21),2&i){const t=A.oxw().$implicit,B=A.oxw(3);A.s9C("value",B.totalLiquidity>0?(+t.msatoshi_to_them/1e3||0)/B.totalLiquidity*100:0)}}function $(i,U){if(1&i&&A._UZ(0,"mat-progress-bar",21),2&i){const t=A.oxw().$implicit,B=A.oxw(3);A.s9C("value",B.totalLiquidity>0?(+t.msatoshi_to_us/1e3||0)/B.totalLiquidity*100:0)}}function W(i,U){if(1&i&&(A.TgZ(0,"div",14),A.TgZ(1,"span",15),A._uU(2),A.ALo(3,"slice"),A.qZA(),A.TgZ(4,"div",16),A.YNc(5,VA,5,4,"mat-hint",17),A.YNc(6,q,5,4,"mat-hint",17),A.qZA(),A.YNc(7,J,1,1,"mat-progress-bar",18),A.YNc(8,$,1,1,"mat-progress-bar",18),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(3);A.xp6(1),A.s9C("matTooltip",t.alias||t.id),A.s9C("matTooltipDisabled",(t.alias||t.id).length<26),A.xp6(1),A.AsE("",A.Dn7(3,8,t.alias||t.id,0,24),"",(t.alias||t.id).length>25?"...":"",""),A.xp6(3),A.Q6J("ngIf","In"===B.direction),A.xp6(1),A.Q6J("ngIf","Out"===B.direction),A.xp6(1),A.Q6J("ngIf","In"===B.direction),A.xp6(1),A.Q6J("ngIf","Out"===B.direction)}}function EA(i,U){if(1&i&&(A.TgZ(0,"div",12),A.YNc(1,W,9,12,"div",13),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngForOf",t.activeChannels)}}const DA=function(i,U,t){return{"mb-4":i,"mb-2":U,"mb-1":t}};function rA(i,U){if(1&i&&(A.TgZ(0,"div",3),A.TgZ(1,"div",4),A.TgZ(2,"span",5),A._uU(3,"Total Capacity"),A.qZA(),A.TgZ(4,"mat-hint",6),A._uU(5),A.ALo(6,"number"),A.qZA(),A._UZ(7,"mat-progress-bar",7),A.qZA(),A.TgZ(8,"div",8),A._UZ(9,"mat-divider",9),A.qZA(),A.TgZ(10,"div",10),A.YNc(11,EA,2,1,"div",11),A.qZA(),A.qZA()),2&i){const t=A.oxw(),B=A.MAs(2);A.Q6J("ngClass",A.kEZ(7,DA,t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM,t.screenSize===t.screenSizeEnum.MD,t.screenSize===t.screenSizeEnum.LG||t.screenSize===t.screenSizeEnum.XL)),A.xp6(5),A.hij("",A.xi3(6,4,t.totalLiquidity,"1.0-0")," Sats"),A.xp6(6),A.Q6J("ngIf",t.activeChannels&&t.activeChannels.length>0)("ngIfElse",B)}}function hA(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"button",24),A.NdJ("click",function(){return A.CHM(t),A.oxw(2).goToChannels()}),A._uU(1,"Open Channel"),A.qZA()}}function HA(i,U){if(1&i&&(A.TgZ(0,"div",22),A._uU(1," No channels available. "),A.YNc(2,hA,2,0,"button",23),A.qZA()),2&i){const t=A.oxw();A.xp6(2),A.Q6J("ngIf","Out"===t.direction)}}function nt(i,U){if(1&i&&(A.TgZ(0,"div",25),A.TgZ(1,"p"),A._uU(2),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(2),A.Oqu(t.errorMessage)}}let st=(()=>{class i{constructor(t,B){this.router=t,this.commonService=B,this.screenSize="",this.screenSizeEnum=o.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}goToChannels(){this.router.navigateByUrl("/cl/connections")}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(Ae.F0),A.Y36(e.v))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-channel-liquidity-info"]],inputs:{direction:"direction",totalLiquidity:"totalLiquidity",activeChannels:"activeChannels",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",3,"ngClass",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",3,"ngClass"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],[1,"font-size-90"],["mode","determinate","color","accent","value","100",1,"dashboard-progress-bar","this-channel-bar"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],["fxLayout","column","fxFlex.gt-sm","88","fxFlex","84","fxLayoutAlign","start start",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100","class","w-100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100",1,"w-100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","100","fxLayoutAlign","start center","class","font-size-90 color-primary",4,"ngIf"],["class","dashboard-progress-bar","mode","determinate",3,"value",4,"ngIf"],["fxFlex","100","fxLayoutAlign","start center",1,"font-size-90","color-primary"],[1,"font-weight-900","mr-5px"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","1",3,"click",4,"ngIf"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,B){if(1&t&&(A.YNc(0,rA,12,11,"div",0),A.YNc(1,HA,3,1,"ng-template",null,1,A.W1O),A.YNc(3,nt,3,1,"ng-template",null,2,A.W1O)),2&t){const k=A.MAs(4);A.Q6J("ngIf",""===(null==B.errorMessage?null:B.errorMessage.trim()))("ngIfElse",k)}},directives:[ht.O5,Qt.xw,Qt.Wh,Qt.yH,ht.mk,d.oO,V.bx,Y.pW,AA.d,gA.$V,ht.sg,aA.gM,F.lW],pipes:[ht.JJ,ht.OU],styles:[""]}),i})();var yA=St(3251),_A=St(9300),ft=St(6087),lt=St(4847),SA=St(2075),OA=St(8966),WA=St(1443),zA=St(3075),ot=St(7531),It=St(3390),dt=St(6534),vt=St(4107),Pt=St(2368),G=St(508);function O(i,U){if(1&i&&(A.TgZ(0,"mat-option",26),A._uU(1),A.ALo(2,"titlecase"),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t),A.xp6(1),A.Oqu(A.lcZ(2,2,t))}}function L(i,U){if(1&i&&(A.TgZ(0,"span"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.invoiceError)}}function dA(i,U){if(1&i&&(A.TgZ(0,"div",27),A._UZ(1,"fa-icon",28),A.YNc(2,L,2,1,"span",29),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("icon",t.faExclamationTriangle),A.xp6(1),A.Q6J("ngIf",""!==t.invoiceError)}}let wA=(()=>{class i{constructor(t,B,k,FA,pt,Ye){this.dialogRef=t,this.data=B,this.store=k,this.decimalPipe=FA,this.commonService=pt,this.actions=Ye,this.faExclamationTriangle=E.eHv,this.selNode={},this.description="",this.invoiceValueHint="",this.invoicePaymentReq="",this.information={},this.private=!1,this.expiryStep=100,this.pageSize=o.IV,this.timeUnitEnum=o.Qk,this.timeUnits=o.LO,this.selTimeUnit=o.Qk.SECS,this.invoiceError="",this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x]}ngOnInit(){this.pageSize=this.data.pageSize,this.store.select(l.Jo).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(l.W3).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.information=t}),this.actions.pipe((0,r.R)(this.unSubs[2]),(0,_A.h)(t=>t.type===o.sW.UPDATE_API_CALL_STATUS_CL)).subscribe(t=>{t.type===o.sW.UPDATE_API_CALL_STATUS_CL&&"SaveNewInvoice"===t.payload.action&&(t.payload.status===o.Bn.ERROR&&(this.invoiceError=t.payload.message),t.payload.status===o.Bn.COMPLETED&&this.dialogRef.close())})}onAddInvoice(t){this.invoiceError="",this.invoiceValue||(this.invoiceValue=0);let B=this.expiry?this.expiry:3600;this.selTimeUnit!==o.Qk.SECS&&(B=this.commonService.convertTime(this.expiry,this.selTimeUnit,o.Qk.SECS)),this.store.dispatch((0,WA.Rd)({payload:{label:"ulbl"+Math.random().toString(36).slice(2)+Date.now(),amount:1e3*this.invoiceValue,description:this.description,expiry:B,private:this.private}}))}resetData(){this.description="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint="",this.selTimeUnit=o.Qk.SECS,this.invoiceError=""}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,o.NT.SATS,o.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,r.R)(this.unSubs[3])).subscribe({next:t=>{this.invoiceValueHint="= "+t.symbol+this.decimalPipe.transform(t.OTHER,o.Xz.OTHER)+" "+t.unit},error:t=>{this.invoiceValueHint="Conversion Error: "+t}}))}onTimeUnitChange(t){this.expiry&&this.selTimeUnit!==t.value&&(this.expiry=this.commonService.convertTime(this.expiry,this.selTimeUnit,t.value)),this.selTimeUnit=t.value}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(OA.so),A.Y36(OA.WI),A.Y36(u.yh),A.Y36(ht.JJ),A.Y36(e.v),A.Y36(C.eX))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-create-invoices"]],decls:37,vars:17,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","start space-between","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","autoFocus","","placeholder","Description","tabindex","2","name","description",3,"ngModel","ngModelChange"],["fxLayout","row","fxLayoutAlign","space-between start","fxFlex","100"],["fxFlex","40"],["matInput","","placeholder","Amount","type","number","tabindex","3","name","invoiceValue",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxFlex","30"],["matInput","","name","expiry","placeholder","Expiry","type","number","tabindex","4",3,"ngModel","step","min","ngModelChange"],["fxFlex","26"],["tabindex","5","name","timeUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","50","fxLayoutAlign","start center",1,"mt-2"],["tabindex","6","color","primary","matTooltip","Include routing hints for private channels","name","private",3,"ngModel","matTooltipPosition","ngModelChange"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-1"],["mat-button","","color","primary","tabindex","7","type","reset",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","8",3,"click"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[4,"ngIf"]],template:function(t,B){if(1&t){const k=A.EpF();A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-card-header",2),A.TgZ(3,"div",3),A.TgZ(4,"span",4),A._uU(5,"Create Invoice"),A.qZA(),A.qZA(),A.TgZ(6,"button",5),A._uU(7,"X"),A.qZA(),A.qZA(),A.TgZ(8,"mat-card-content",6),A.TgZ(9,"form",7,8),A.TgZ(11,"mat-form-field",9),A.TgZ(12,"input",10),A.NdJ("ngModelChange",function(pt){return B.description=pt}),A.qZA(),A.qZA(),A.TgZ(13,"div",11),A.TgZ(14,"mat-form-field",12),A.TgZ(15,"input",13),A.NdJ("ngModelChange",function(pt){return B.invoiceValue=pt})("keyup",function(){return B.onInvoiceValueChange()}),A.qZA(),A.TgZ(16,"span",14),A._uU(17," Sats "),A.qZA(),A.TgZ(18,"mat-hint"),A._uU(19),A.qZA(),A.qZA(),A.TgZ(20,"mat-form-field",15),A.TgZ(21,"input",16),A.NdJ("ngModelChange",function(pt){return B.expiry=pt}),A.qZA(),A.TgZ(22,"span",14),A._uU(23),A.ALo(24,"titlecase"),A.qZA(),A.qZA(),A.TgZ(25,"mat-form-field",17),A.TgZ(26,"mat-select",18),A.NdJ("selectionChange",function(pt){return B.onTimeUnitChange(pt)}),A.YNc(27,O,3,4,"mat-option",19),A.qZA(),A.qZA(),A.qZA(),A.TgZ(28,"div",20),A.TgZ(29,"mat-slide-toggle",21),A.NdJ("ngModelChange",function(pt){return B.private=pt}),A._uU(30,"Private Routing Hints"),A.qZA(),A.qZA(),A.YNc(31,dA,3,2,"div",22),A.TgZ(32,"div",23),A.TgZ(33,"button",24),A.NdJ("click",function(){return B.resetData()}),A._uU(34,"Clear Field"),A.qZA(),A.TgZ(35,"button",25),A.NdJ("click",function(){A.CHM(k);const pt=A.MAs(10);return B.onAddInvoice(pt)}),A._uU(36,"Create Invoice"),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()}2&t&&(A.xp6(6),A.Q6J("mat-dialog-close",!1),A.xp6(6),A.Q6J("ngModel",B.description),A.xp6(3),A.Q6J("ngModel",B.invoiceValue)("step",100)("min",1),A.xp6(4),A.Oqu(B.invoiceValueHint),A.xp6(2),A.Q6J("ngModel",B.expiry)("step",B.selTimeUnit===B.timeUnitEnum.SECS?300:B.selTimeUnit===B.timeUnitEnum.MINS?10:B.selTimeUnit===B.timeUnitEnum.HOURS?2:1)("min",1),A.xp6(2),A.hij(" ",A.lcZ(24,15,B.selTimeUnit)," "),A.xp6(3),A.Q6J("value",B.selTimeUnit),A.xp6(1),A.Q6J("ngForOf",B.timeUnits),A.xp6(2),A.Q6J("ngModel",B.private)("matTooltipPosition","above"),A.xp6(2),A.Q6J("ngIf",""!==B.invoiceError))},directives:[Qt.xw,Qt.yH,w.dk,Qt.Wh,F.lW,OA.ZT,w.dn,zA._Y,zA.JL,zA.F,V.KE,ot.Nt,zA.Fj,It.h,zA.JJ,zA.On,zA.wV,zA.qQ,dt.q,V.R9,V.bx,vt.gD,ht.sg,Pt.Rr,aA.gM,ht.O5,G.ey,f.BN],pipes:[ht.rS],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),i})();var RA=St(1954),eA=St(7861),at=St(3093);function Ft(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"form",4,5),A.TgZ(2,"mat-form-field",6),A.TgZ(3,"input",7),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().description=k}),A.qZA(),A.qZA(),A.TgZ(4,"mat-form-field",8),A.TgZ(5,"input",9),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().invoiceValue=k})("keyup",function(){return A.CHM(t),A.oxw().onInvoiceValueChange()}),A.qZA(),A.TgZ(6,"span",10),A._uU(7," Sats "),A.qZA(),A.TgZ(8,"mat-hint"),A._uU(9),A.qZA(),A.qZA(),A.TgZ(10,"div",11),A.TgZ(11,"button",12),A.NdJ("click",function(){return A.CHM(t),A.oxw().resetData()}),A._uU(12,"Clear Field"),A.qZA(),A.TgZ(13,"button",13),A.NdJ("click",function(){A.CHM(t);const k=A.MAs(1);return A.oxw().onAddInvoice(k)}),A._uU(14,"Create Invoice"),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw();A.xp6(3),A.Q6J("ngModel",t.description),A.xp6(2),A.Q6J("ngModel",t.invoiceValue)("step",100)("min",1),A.xp6(4),A.Oqu(t.invoiceValueHint)}}function j(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",14),A.TgZ(1,"button",15),A.NdJ("click",function(){return A.CHM(t),A.oxw().onDeleteExpiredInvoices()}),A._uU(2,"Delete Expired"),A.qZA(),A.TgZ(3,"button",16),A.NdJ("click",function(){return A.CHM(t),A.oxw().openCreateInvoiceModal()}),A._uU(4,"Create Invoice"),A.qZA(),A.qZA()}}function XA(i,U){1&i&&A._UZ(0,"mat-progress-bar",46)}function et(i,U){1&i&&(A.TgZ(0,"th",47),A._uU(1," Expiry Date "),A.qZA())}const mA=function(i){return{"mr-0":i}};function jA(i,U){if(1&i&&A._UZ(0,"span",52),2&i){const t=A.oxw(3);A.Q6J("ngClass",A.VKq(1,mA,t.screenSize===t.screenSizeEnum.XS))}}function ct(i,U){if(1&i&&A._UZ(0,"span",53),2&i){const t=A.oxw(3);A.Q6J("ngClass",A.VKq(1,mA,t.screenSize===t.screenSizeEnum.XS))}}function bt(i,U){if(1&i&&A._UZ(0,"span",54),2&i){const t=A.oxw(3);A.Q6J("ngClass",A.VKq(1,mA,t.screenSize===t.screenSizeEnum.XS))}}function yt(i,U){if(1&i&&(A.TgZ(0,"td",48),A.YNc(1,jA,1,3,"span",49),A.YNc(2,ct,1,3,"span",50),A.YNc(3,bt,1,3,"span",51),A._uU(4),A.ALo(5,"date"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Q6J("ngIf","paid"===(null==t?null:t.status)),A.xp6(1),A.Q6J("ngIf","unpaid"===(null==t?null:t.status)),A.xp6(1),A.Q6J("ngIf","expired"===(null==t?null:t.status)),A.xp6(1),A.hij(" ",A.xi3(5,4,1e3*(null==t?null:t.expires_at),"dd/MMM/YYYY HH:mm")," ")}}function Rt(i,U){1&i&&(A.TgZ(0,"th",47),A._uU(1," Date Settled "),A.qZA())}function Kt(i,U){if(1&i&&(A.TgZ(0,"td",48),A._uU(1),A.ALo(2,"date"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(A.xi3(2,1,1e3*(null==t?null:t.paid_at),"dd/MMM/YYYY HH:mm")||"-")}}function Ne(i,U){1&i&&(A.TgZ(0,"th",47),A._uU(1," Type "),A.qZA())}function ie(i,U){if(1&i&&(A.TgZ(0,"td",48),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(null!=t&&t.bolt12?"Bolt12":null!=t&&t.bolt11&&!t.label.includes("keysend-")?"Bolt11":"Keysend")}}function $t(i,U){1&i&&(A.TgZ(0,"th",47),A._uU(1," Description "),A.qZA())}const me=function(i){return{"max-width":i}};function be(i,U){if(1&i&&(A.TgZ(0,"td",48),A.TgZ(1,"div",55),A.TgZ(2,"span",56),A._uU(3),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.xp6(1),A.Q6J("ngStyle",A.VKq(2,me,B.screenSize===B.screenSizeEnum.XS?"10rem":"32rem")),A.xp6(2),A.Oqu(null==t?null:t.description)}}function Re(i,U){1&i&&(A.TgZ(0,"th",57),A._uU(1," Amount (Sats) "),A.qZA())}function mn(i,U){if(1&i&&(A.TgZ(0,"td",48),A.TgZ(1,"span",58),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.xi3(3,1,(null==t?null:t.msatoshi)/1e3,(null==t?null:t.msatoshi)<1e3?"1.0-4":"1.0-0"),"")}}function yn(i,U){1&i&&(A.TgZ(0,"th",57),A._uU(1," Amount Settled (Sats) "),A.qZA())}function ne(i,U){if(1&i&&(A.TgZ(0,"td",48),A.TgZ(1,"span",58),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.xi3(3,1,(null==t?null:t.msatoshi_received)/1e3,(null==t?null:t.msatoshi_received)<1e3?"1.0-4":"1.0-0"),"")}}function An(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",59),A.TgZ(1,"div",60),A.TgZ(2,"mat-select",61),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",62),A.NdJ("click",function(){return A.CHM(t),A.oxw(2).onDownloadCSV()}),A._uU(5,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}const Se=function(i){return{"px-3":i}};function tn(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",63),A.TgZ(1,"div",64),A.TgZ(2,"mat-select",65),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",62),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw(2).onInvoiceClick(FA)}),A._uU(5,"View Info"),A.qZA(),A.TgZ(6,"mat-option",62),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw(2).onRefreshInvoice(FA)}),A._uU(7,"Refresh"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,Se,t.screenSize!==t.screenSizeEnum.XS))}}function qe(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No invoice available."),A.qZA())}function Ln(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting invoices..."),A.qZA())}function Gn(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Oqu(t.errorMessage)}}function Jt(i,U){if(1&i&&(A.TgZ(0,"td",66),A.YNc(1,qe,2,0,"p",67),A.YNc(2,Ln,2,0,"p",67),A.YNc(3,Gn,2,1,"p",67),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.ERROR)}}const Lt=function(i){return{"display-none":i}};function Xt(i,U){if(1&i&&A._UZ(0,"tr",68),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,Lt,(null==t.invoices?null:t.invoices.data)&&(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)>0))}}function oe(i,U){1&i&&A._UZ(0,"tr",69)}function In(i,U){1&i&&A._UZ(0,"tr",70)}const Mn=function(i){return{"overflow-auto error-border":i,"overflow-auto":!0}},Fn=function(){return["no_invoice"]};function Kn(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",17),A.TgZ(1,"div",18),A.TgZ(2,"div",19),A._UZ(3,"fa-icon",20),A.TgZ(4,"span",21),A._uU(5,"Invoices History"),A.qZA(),A.qZA(),A.TgZ(6,"mat-form-field",22),A.TgZ(7,"input",23),A.NdJ("keyup",function(){return A.CHM(t),A.oxw().applyFilter()})("ngModelChange",function(k){return A.CHM(t),A.oxw().selFilter=k}),A.qZA(),A.qZA(),A.qZA(),A.TgZ(8,"div",24),A.YNc(9,XA,1,0,"mat-progress-bar",25),A.TgZ(10,"table",26,27),A.ynx(12,28),A.YNc(13,et,2,0,"th",29),A.YNc(14,yt,6,7,"td",30),A.BQk(),A.ynx(15,31),A.YNc(16,Rt,2,0,"th",29),A.YNc(17,Kt,3,4,"td",30),A.BQk(),A.ynx(18,32),A.YNc(19,Ne,2,0,"th",29),A.YNc(20,ie,2,1,"td",30),A.BQk(),A.ynx(21,33),A.YNc(22,$t,2,0,"th",29),A.YNc(23,be,4,4,"td",30),A.BQk(),A.ynx(24,34),A.YNc(25,Re,2,0,"th",35),A.YNc(26,mn,4,4,"td",30),A.BQk(),A.ynx(27,36),A.YNc(28,yn,2,0,"th",35),A.YNc(29,ne,4,4,"td",30),A.BQk(),A.ynx(30,37),A.YNc(31,An,6,0,"th",38),A.YNc(32,tn,8,3,"td",39),A.BQk(),A.ynx(33,40),A.YNc(34,Jt,4,3,"td",41),A.BQk(),A.YNc(35,Xt,1,3,"tr",42),A.YNc(36,oe,1,0,"tr",43),A.YNc(37,In,1,0,"tr",44),A.qZA(),A.qZA(),A._UZ(38,"mat-paginator",45),A.qZA()}if(2&i){const t=A.oxw();A.xp6(3),A.Q6J("icon",t.faHistory),A.xp6(4),A.Q6J("ngModel",t.selFilter),A.xp6(2),A.Q6J("ngIf",(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",t.invoices)("ngClass",A.VKq(12,Mn,""!==t.errorMessage)),A.xp6(25),A.Q6J("matFooterRowDef",A.DdM(14,Fn)),A.xp6(1),A.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",t.displayedColumns),A.xp6(1),A.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let nr=(()=>{class i{constructor(t,B,k,FA,pt,Ye,vn){this.logger=t,this.store=B,this.decimalPipe=k,this.commonService=FA,this.rtlEffects=pt,this.datePipe=Ye,this.actions=vn,this.calledFrom="transactions",this.faHistory=E.qO$,this.selNode={},this.newlyAddedInvoiceMemo="",this.newlyAddedInvoiceValue=0,this.description="",this.invoiceValue=null,this.invoiceValueHint="",this.displayedColumns=[],this.invoicePaymentReq="",this.invoiceJSONArr=[],this.information={},this.flgSticky=!1,this.private=!1,this.expiryStep=100,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["expires_at","msatoshi","actions"]):this.screenSize===o.cu.SM?(this.flgSticky=!1,this.displayedColumns=["expires_at","description","msatoshi","actions"]):this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["expires_at","type","description","msatoshi","msatoshi_received","actions"]):(this.flgSticky=!0,this.displayedColumns=["expires_at","paid_at","type","description","msatoshi","msatoshi_received","actions"])}ngOnInit(){this.store.select(l.Jo).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(l.W3).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.information=t}),this.store.select(l.gc).pipe((0,r.R)(this.unSubs[2])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.invoiceJSONArr=t.listInvoices.invoices||[],this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoiceJSONArr),this.logger.info(t)}),this.actions.pipe((0,r.R)(this.unSubs[3]),(0,_A.h)(t=>t.type===o.sW.SET_LOOKUP_CL||t.type===o.sW.UPDATE_API_CALL_STATUS_CL)).subscribe(t=>{t.type===o.sW.SET_LOOKUP_CL&&this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&t.payload&&(this.updateInvoicesData(JSON.parse(JSON.stringify(t.payload))),this.loadInvoicesTable(this.invoiceJSONArr))})}ngAfterViewInit(){this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoiceJSONArr)}openCreateInvoiceModal(){this.store.dispatch((0,eA.qR)({payload:{data:{pageSize:this.pageSize,component:wA}}}))}onAddInvoice(t){this.invoiceValue||(this.invoiceValue=0);const B=this.expiry?this.expiry:3600;this.newlyAddedInvoiceMemo="ulbl"+Math.random().toString(36).slice(2)+Date.now(),this.newlyAddedInvoiceValue=this.invoiceValue,this.store.dispatch((0,WA.Rd)({payload:{label:this.newlyAddedInvoiceMemo,amount:1e3*this.invoiceValue,description:this.description,expiry:B,private:this.private}})),this.resetData()}onDeleteExpiredInvoices(){this.store.dispatch((0,eA.c1)({payload:{data:{type:"CONFIRM",titleMessage:"Delete Expired Invoices",noBtnText:"Cancel",yesBtnText:"Delete Invoices"}}})),this.rtlEffects.closeConfirm.pipe((0,r.R)(this.unSubs[4])).subscribe(t=>{t&&this.store.dispatch((0,WA.g6)({payload:null}))})}onInvoiceClick(t){this.store.dispatch((0,eA.qR)({payload:{data:{invoice:{msatoshi:t.msatoshi,label:t.label,expires_at:t.expires_at,paid_at:t.paid_at,bolt11:t.bolt11,payment_hash:t.payment_hash,description:t.description,status:t.status,msatoshi_received:t.msatoshi_received},newlyAdded:!1,component:RA.$}}}))}resetData(){this.description="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint=""}applyFilter(){this.invoices.filter=this.selFilter.trim().toLowerCase()}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,o.NT.SATS,o.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,r.R)(this.unSubs[5])).subscribe({next:t=>{this.invoiceValueHint="= "+t.symbol+this.decimalPipe.transform(t.OTHER,o.Xz.OTHER)+" "+t.unit},error:t=>{this.invoiceValueHint="Conversion Error: "+t}}))}onRefreshInvoice(t){this.store.dispatch((0,WA.n7)({payload:t.label}))}updateInvoicesData(t){this.invoiceJSONArr=this.invoiceJSONArr.map(B=>B.label===t.label?t:B)}loadInvoicesTable(t){this.invoices=new SA.by(t?[...t]:[]),this.invoices.sortingDataAccessor=(B,k)=>B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null,this.invoices.sort=this.sort,this.invoices.filterPredicate=(B,k)=>((B.paid_at?this.datePipe.transform(new Date(1e3*B.paid_at),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(B.expires_at?this.datePipe.transform(new Date(1e3*B.expires_at),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(B.bolt12?"bolt12":B.bolt11?"bolt11":"keysend")+JSON.stringify(B).toLowerCase()).includes(k),this.invoices.paginator=this.paginator,this.applyFilter()}onDownloadCSV(){this.invoices.data&&this.invoices.data.length>0&&this.commonService.downloadFile(this.invoices.data,"Invoices")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh),A.Y36(ht.JJ),A.Y36(e.v),A.Y36(at.V),A.Y36(ht.uU),A.Y36(C.eX))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-lightning-invoices-table"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},inputs:{calledFrom:"calledFrom"},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Invoices")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","space-between stretch"],["matInput","","placeholder","Description","tabindex","2","name","description",3,"ngModel","ngModelChange"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","name","invoiceValue","type","number","tabindex","3",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","9","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","10",3,"click"],["fxLayout","row"],["mat-stroked-button","","color","warn","tabindex","7","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","8",3,"click"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","expires_at"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","paid_at"],["matColumnDef","type"],["matColumnDef","description"],["matColumnDef","msatoshi"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi_received"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass",4,"matCellDef"],["matColumnDef","no_invoice"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot green","matTooltip","Paid","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Unpaid","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Expired","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Paid","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Unpaid","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],["matTooltip","Expired","matTooltipPosition","right",1,"dot","red",3,"ngClass"],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","4",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.YNc(1,Ft,15,5,"form",1),A.YNc(2,j,5,0,"div",2),A.YNc(3,Kn,39,15,"div",3),A.qZA()),2&t&&(A.xp6(1),A.Q6J("ngIf","home"===B.calledFrom),A.xp6(1),A.Q6J("ngIf","transactions"===B.calledFrom),A.xp6(1),A.Q6J("ngIf","transactions"===B.calledFrom))},directives:[Qt.xw,Qt.yH,Qt.Wh,ht.O5,zA._Y,zA.JL,zA.F,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,zA.wV,zA.qQ,dt.q,V.R9,V.bx,F.lW,f.BN,gA.$V,SA.BZ,lt.YE,ht.mk,d.oO,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,ft.NW,Y.pW,SA.ge,lt.nU,SA.ev,aA.gM,ht.PC,d.Zl,vt.gD,vt.$L,G.ey,SA.yh,SA.Q2,SA.XQ,SA.Gk],pipes:[ht.uU,ht.JJ],styles:[".mat-column-description[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-description[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),i})();var nn=St(5698),KA=St(8104),YA=St(9814),tt=St(7446);const PA=["sendPaymentForm"],NA=["paymentAmt"],bA=["offerAmt"],JA=["paymentReq"],At=["offerReq"];function LA(i,U){if(1&i&&(A.TgZ(0,"mat-radio-button",22),A._uU(1,"Offer"),A.qZA()),2&i){const t=A.oxw(2);A.s9C("value",t.paymentTypes.OFFER)}}function it(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-radio-group",18),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().paymentType=k})("change",function(){return A.CHM(t),A.oxw().onPaymentTypeChange()}),A.TgZ(1,"mat-radio-button",19),A._uU(2,"Invoice"),A.qZA(),A.TgZ(3,"mat-radio-button",20),A._uU(4,"Keysend"),A.qZA(),A.YNc(5,LA,2,1,"mat-radio-button",21),A.qZA()}if(2&i){const t=A.oxw();A.Q6J("ngModel",t.paymentType),A.xp6(1),A.s9C("value",t.paymentTypes.INVOICE),A.xp6(2),A.s9C("value",t.paymentTypes.KEYSEND),A.xp6(2),A.Q6J("ngIf",t.selNode.enableOffers)}}function ZA(i,U){1&i&&A.GkF(0)}function Ct(i,U){if(1&i&&(A.TgZ(0,"span"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.paymentError)}}function Tt(i,U){if(1&i&&(A.TgZ(0,"div",23),A._UZ(1,"fa-icon",24),A.YNc(2,Ct,2,1,"span",25),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("icon",t.faExclamationTriangle),A.xp6(1),A.Q6J("ngIf",""!==t.paymentError)}}function Ut(i,U){if(1&i&&(A.TgZ(0,"mat-hint"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.paymentDecodedHint)}}function kt(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Payment request is required."),A.qZA())}function Wt(i,U){if(1&i&&(A.TgZ(0,"mat-error"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.paymentDecodedHint)}}function te(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Payment amount is required."),A.qZA())}function Et(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-form-field",1),A.TgZ(1,"input",29,30),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw(2).paymentAmount=k})("change",function(k){return A.CHM(t),A.oxw(2).onAmountChange(k)}),A.qZA(),A.TgZ(3,"mat-hint"),A._uU(4,"It is a zero amount invoice, enter amount to be paid."),A.qZA(),A.YNc(5,te,2,0,"mat-error",25),A.qZA()}if(2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngModel",t.paymentAmount),A.xp6(4),A.Q6J("ngIf",!t.paymentAmount)}}function zt(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-form-field",1),A.TgZ(1,"textarea",26,27),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().onPaymentRequestEntry(k)})("matTextareaAutosize",function(){return!0}),A.qZA(),A.YNc(3,Ut,2,1,"mat-hint",25),A.YNc(4,kt,2,0,"mat-error",25),A.YNc(5,Wt,2,1,"mat-error",25),A.qZA(),A.YNc(6,Et,6,2,"mat-form-field",28)}if(2&i){const t=A.MAs(2),B=A.oxw();A.xp6(1),A.Q6J("ngModel",B.paymentRequest),A.xp6(2),A.Q6J("ngIf",B.paymentRequest&&""!==B.paymentDecodedHint),A.xp6(1),A.Q6J("ngIf",!B.paymentRequest),A.xp6(1),A.Q6J("ngIf",null==t.errors?null:t.errors.decodeError),A.xp6(1),A.Q6J("ngIf",B.zeroAmtInvoice)}}function jt(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Pubkey is required."),A.qZA())}function Ht(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Keysend amount is required."),A.qZA())}function ce(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-form-field",1),A.TgZ(1,"input",31),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().pubkey=k}),A.qZA(),A.YNc(2,jt,2,0,"mat-error",25),A.qZA(),A.TgZ(3,"mat-form-field",1),A.TgZ(4,"input",32,33),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().keysendAmount=k}),A.qZA(),A.YNc(6,Ht,2,0,"mat-error",25),A.qZA()}if(2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngModel",t.pubkey),A.xp6(1),A.Q6J("ngIf",!t.pubkey),A.xp6(2),A.Q6J("ngModel",t.keysendAmount),A.xp6(2),A.Q6J("ngIf",!t.keysendAmount)}}function Vt(i,U){if(1&i&&(A.TgZ(0,"mat-hint"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.offerDecodedHint)}}function Be(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Offer request is required."),A.qZA())}function ge(i,U){if(1&i&&(A.TgZ(0,"mat-error"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.offerDecodedHint)}}function De(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Offer amount is required."),A.qZA())}function Le(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-form-field",1),A.TgZ(1,"input",38,39),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw(2).offerAmount=k})("change",function(k){return A.CHM(t),A.oxw(2).onAmountChange(k)}),A.qZA(),A.TgZ(3,"mat-hint"),A._uU(4,"It is a zero amount offer, enter amount to be paid."),A.qZA(),A.YNc(5,De,2,0,"mat-error",25),A.qZA()}if(2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngModel",t.offerAmount),A.xp6(4),A.Q6J("ngIf",!t.offerAmount)}}function Ue(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-form-field",40),A.TgZ(1,"input",41),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw(2).offerTitle=k}),A.qZA(),A.qZA()}if(2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngModel",t.offerTitle)}}function ye(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-form-field",1),A.TgZ(1,"textarea",34,35),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().onPaymentRequestEntry(k)})("matTextareaAutosize",function(){return!0}),A.qZA(),A.YNc(3,Vt,2,1,"mat-hint",25),A.YNc(4,Be,2,0,"mat-error",25),A.YNc(5,ge,2,1,"mat-error",25),A.qZA(),A.YNc(6,Le,6,2,"mat-form-field",28),A.TgZ(7,"div",1),A.TgZ(8,"mat-checkbox",36),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().flgSaveToDB=k}),A._uU(9,"Bookmark Offer"),A.qZA(),A.qZA(),A.YNc(10,Ue,2,1,"mat-form-field",37)}if(2&i){const t=A.MAs(2),B=A.oxw();A.xp6(1),A.Q6J("ngModel",B.offerRequest),A.xp6(2),A.Q6J("ngIf",B.offerRequest&&""!==B.offerDecodedHint),A.xp6(1),A.Q6J("ngIf",!B.offerRequest),A.xp6(1),A.Q6J("ngIf",null==t.errors?null:t.errors.decodeError),A.xp6(1),A.Q6J("ngIf",B.zeroAmtOffer),A.xp6(2),A.Q6J("ngModel",B.flgSaveToDB)("matTooltipPosition","above"),A.xp6(2),A.Q6J("ngIf",B.flgSaveToDB||""!==B.offerTitle)}}let Te=(()=>{class i{constructor(t,B,k,FA,pt,Ye,vn,Ie){this.dialogRef=t,this.data=B,this.store=k,this.logger=FA,this.commonService=pt,this.decimalPipe=Ye,this.actions=vn,this.dataService=Ie,this.faExclamationTriangle=E.eHv,this.paymentTypes=o.IX,this.paymentType=o.IX.INVOICE,this.selNode={},this.offerDecoded={},this.offerRequest="",this.offerDecodedHint="",this.offerDescription="",this.offerVendor="",this.offerTitle="",this.zeroAmtOffer=!1,this.offerInvoice=null,this.offerAmount=null,this.flgSaveToDB=!1,this.paymentDecoded={},this.paymentRequest="",this.paymentDecodedHint="",this.zeroAmtInvoice=!1,this.paymentAmount=null,this.pubkey="",this.keysendAmount=null,this.selActiveChannel={},this.activeChannels={},this.feeLimit=null,this.selFeeLimitType=o.Vc[0],this.feeLimitTypes=o.Vc,this.paymentError="",this.isCompatibleVersion=!1,this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x]}set payReq(t){t&&(this.paymentReq=t)}set offrReq(t){t&&(this.offerReq=t)}ngOnInit(){if(this.data&&this.data.paymentType)switch(this.paymentType=this.data.paymentType,this.paymentType){case o.IX.INVOICE:this.paymentRequest=this.data.invoiceBolt11;break;case o.IX.KEYSEND:this.pubkey=this.data.pubkeyKeysend;break;case o.IX.OFFER:this.onPaymentRequestEntry(this.data.bolt12),this.offerTitle=this.data.offerTitle,this.flgSaveToDB=!1}this.store.select(l.Jo).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(l.W3).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.isCompatibleVersion=this.commonService.isVersionCompatible(t.version,"0.9.0")&&this.commonService.isVersionCompatible(t.api_version,"0.4.0")}),this.store.select(l.ZW).pipe((0,r.R)(this.unSubs[2])).subscribe(t=>{this.activeChannels=t.activeChannels,this.logger.info(t)}),this.actions.pipe((0,r.R)(this.unSubs[3]),(0,_A.h)(t=>t.type===o.sW.UPDATE_API_CALL_STATUS_CL||t.type===o.sW.SEND_PAYMENT_STATUS_CL||t.type===o.sW.SET_OFFER_INVOICE_CL)).subscribe(t=>{t.type===o.sW.SEND_PAYMENT_STATUS_CL&&this.dialogRef.close(),t.type===o.sW.SET_OFFER_INVOICE_CL&&(this.offerInvoice=t.payload,this.sendPayment()),t.type===o.sW.UPDATE_API_CALL_STATUS_CL&&t.payload.status===o.Bn.ERROR&&("SendPayment"===t.payload.action&&(delete this.paymentDecoded.msatoshi,this.paymentError=t.payload.message),"DecodePayment"===t.payload.action&&(this.paymentType===o.IX.INVOICE&&(this.paymentDecodedHint="ERROR: "+t.payload.message,this.paymentReq.control.setErrors({decodeError:!0})),this.paymentType===o.IX.OFFER&&(this.offerDecodedHint="ERROR: "+t.payload.message,this.offerReq.control.setErrors({decodeError:!0}))),"FetchOfferInvoice"===t.payload.action&&this.paymentType===o.IX.OFFER&&(this.paymentError=t.payload.message))})}onSendPayment(){switch(this.paymentType){case o.IX.KEYSEND:if(!this.pubkey||""===this.pubkey.trim()||!this.keysendAmount||this.keysendAmount<=0)return!0;this.keysendPayment();break;case o.IX.INVOICE:if(!this.paymentRequest||this.zeroAmtInvoice&&(0===this.paymentAmount||!this.paymentAmount))return this.paymentReq.control.markAsTouched(),this.paymentAmt.control.markAsTouched(),!0;this.paymentDecoded.created_at?this.sendPayment():(this.resetInvoiceDetails(),this.dataService.decodePayment(this.paymentRequest,!0).pipe((0,r.R)(this.unSubs[4])).subscribe(t=>{"bolt12 offer"===t.type&&t.offer_id?(this.paymentDecodedHint="ERROR: Select Offer option to pay the bolt12 offer invoice.",this.paymentReq.control.setErrors({decodeError:!0})):(this.paymentDecoded=t,this.setPaymentDecodedDetails())}));break;case o.IX.OFFER:if(!this.offerRequest||this.zeroAmtOffer&&(0===this.offerAmount||!this.offerAmount))return this.offerReq.control.markAsTouched(),this.offerAmt.control.markAsTouched(),!0;this.offerDecoded.offer_id?this.sendPayment():(this.resetOfferDetails(),this.dataService.decodePayment(this.offerRequest,!0).pipe((0,r.R)(this.unSubs[5])).subscribe(t=>{"bolt11 invoice"===t.type&&t.payment_hash?(this.offerDecodedHint="ERROR: Select Invoice option to pay the bolt11 invoice.",this.offerReq.control.setErrors({decodeError:!0})):(this.offerDecoded=t,this.setOfferDecodedDetails())}))}}keysendPayment(){this.store.dispatch((0,WA.oV)({payload:{uiMessage:o.m6.SEND_KEYSEND,paymentType:o.IX.KEYSEND,pubkey:this.pubkey,amount:1e3*this.keysendAmount,fromDialog:!0}}))}sendPayment(){this.paymentError="",this.paymentType===o.IX.INVOICE?this.store.dispatch((0,WA.oV)(this.zeroAmtInvoice?{payload:{uiMessage:o.m6.SEND_PAYMENT,paymentType:o.IX.INVOICE,invoice:this.paymentRequest,amount:1e3*this.paymentAmount,fromDialog:!0}}:{payload:{uiMessage:o.m6.SEND_PAYMENT,paymentType:o.IX.INVOICE,invoice:this.paymentRequest,fromDialog:!0}})):this.paymentType===o.IX.OFFER&&this.store.dispatch(this.offerInvoice?(0,WA.oV)({payload:{uiMessage:o.m6.SEND_PAYMENT,paymentType:o.IX.OFFER,invoice:this.offerInvoice.invoice,saveToDB:this.flgSaveToDB,bolt12:this.offerRequest,amount:1e3*this.offerAmount,zeroAmtOffer:this.zeroAmtOffer,title:this.offerTitle,vendor:this.offerVendor,description:this.offerDescription,fromDialog:!0}}):(0,WA.eM)(this.zeroAmtOffer?{payload:{offer:this.offerRequest,msatoshi:1e3*this.offerAmount}}:{payload:{offer:this.offerRequest}}))}onPaymentRequestEntry(t){this.paymentType===o.IX.INVOICE?(this.paymentRequest=t,this.resetInvoiceDetails()):this.paymentType===o.IX.OFFER&&(this.offerRequest=t,this.resetOfferDetails()),t.length>100&&this.dataService.decodePayment(t,!0).pipe((0,r.R)(this.unSubs[6])).subscribe(B=>{this.paymentType===o.IX.INVOICE?"bolt12 offer"===B.type&&B.offer_id?(this.paymentDecodedHint="ERROR: Select Offer option to pay the bolt12 offer invoice.",this.paymentReq.control.setErrors({decodeError:!0})):(this.paymentDecoded=B,this.setPaymentDecodedDetails()):this.paymentType===o.IX.OFFER&&("bolt11 invoice"===B.type&&B.payment_hash?(this.offerDecodedHint="ERROR: Select Invoice option to pay the bolt11 invoice.",this.offerReq.control.setErrors({decodeError:!0})):(this.offerDecoded=B,this.setOfferDecodedDetails()))})}resetOfferDetails(){this.offerInvoice=null,this.offerAmount=null,this.offerDecodedHint="",this.zeroAmtOffer=!1,this.paymentError="",this.offerReq&&this.offerReq.control.setErrors(null)}resetInvoiceDetails(){this.paymentAmount=null,this.paymentDecodedHint="",this.zeroAmtInvoice=!1,this.paymentError="",this.paymentReq&&this.paymentReq.control.setErrors(null)}onAmountChange(t){this.paymentType===o.IX.INVOICE&&(delete this.paymentDecoded.msatoshi,this.paymentDecoded.msatoshi=+t.target.value),this.paymentType===o.IX.OFFER&&(delete this.offerDecoded.amount,delete this.offerDecoded.amount_msat,this.offerDecoded.amount=1e3*+t.target.value,this.offerDecoded.amount_msat=t.target.value+"msat")}onPaymentTypeChange(){this.paymentError="",this.paymentDecodedHint="",this.offerDecodedHint="",this.offerInvoice=null}setOfferDecodedDetails(){this.offerDecoded.offer_id&&!this.offerDecoded.amount_msat?(this.offerDecoded.amount_msat="0msat",this.offerDecoded.amount=0,this.zeroAmtOffer=!0,this.offerDescription=this.offerDecoded.description,this.offerVendor=this.offerDecoded.vendor?this.offerDecoded.vendor:this.offerDecoded.issuer?this.offerDecoded.issuer:"",this.offerDecodedHint="Zero Amount Offer | Description: "+this.offerDecoded.description):(this.zeroAmtOffer=!1,this.offerDecoded.amount=+(this.offerDecoded.amount||this.offerDecoded.amount_msat.slice(0,-4)),this.offerAmount=this.offerDecoded.amount?this.offerDecoded.amount/1e3:0,this.offerDescription=this.offerDecoded.description,this.offerVendor=this.offerDecoded.vendor?this.offerDecoded.vendor:this.offerDecoded.issuer?this.offerDecoded.issuer:"",this.selNode.fiatConversion?this.commonService.convertCurrency(this.offerAmount,o.NT.SATS,o.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,r.R)(this.unSubs[7])).subscribe({next:t=>{this.offerDecodedHint="Sending: "+this.decimalPipe.transform(this.offerAmount)+" Sats ("+t.symbol+this.decimalPipe.transform(t.OTHER?t.OTHER:0,o.Xz.OTHER)+") | Description: "+this.offerDecoded.description},error:t=>{this.offerDecodedHint="Sending: "+this.decimalPipe.transform(this.offerAmount)+" Sats | Description: "+this.offerDecoded.description+". Unable to convert currency."}}):this.offerDecodedHint="Sending: "+this.decimalPipe.transform(this.offerAmount)+" Sats | Description: "+this.offerDecoded.description)}setPaymentDecodedDetails(){this.paymentDecoded.created_at&&!this.paymentDecoded.msatoshi?(this.paymentDecoded.msatoshi=0,this.zeroAmtInvoice=!0,this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description):(this.zeroAmtInvoice=!1,this.selNode.fiatConversion?this.commonService.convertCurrency(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0,o.NT.SATS,o.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,r.R)(this.unSubs[8])).subscribe({next:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats ("+t.symbol+this.decimalPipe.transform(t.OTHER?t.OTHER:0,o.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:t=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description)}resetData(){switch(this.paymentType){case o.IX.KEYSEND:this.pubkey="",this.keysendAmount=null;break;case o.IX.INVOICE:this.paymentRequest="",this.paymentDecoded={},this.selActiveChannel=null,this.feeLimit=null,this.selFeeLimitType=o.Vc[0],this.resetInvoiceDetails();break;case o.IX.OFFER:this.offerRequest="",this.offerDecoded={},this.flgSaveToDB=!1,this.resetOfferDetails()}this.paymentError=""}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(OA.so),A.Y36(OA.WI),A.Y36(u.yh),A.Y36(h.mQ),A.Y36(e.v),A.Y36(ht.JJ),A.Y36(C.eX),A.Y36(KA.D))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-lightning-send-payments"]],viewQuery:function(t,B){if(1&t&&(A.Gf(PA,5),A.Gf(NA,5),A.Gf(bA,5),A.Gf(JA,5),A.Gf(At,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.form=k.first),A.iGM(k=A.CRH())&&(B.paymentAmt=k.first),A.iGM(k=A.CRH())&&(B.offerAmt=k.first),A.iGM(k=A.CRH())&&(B.payReq=k.first),A.iGM(k=A.CRH())&&(B.offrReq=k.first)}},decls:25,vars:4,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","12","fxFlex","10","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["class","my-1","color","primary","name","paymentType","fxFlex","100","fxLayoutAlign","start start",3,"ngModel","ngModelChange","change",4,"ngIf"],["fxLayoutAlign","space-between stretch","fxLayout","column",3,"submit","reset"],["sendPaymentForm","ngForm"],[4,"ngTemplateOutlet"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","9","type","reset",1,"mr-1"],["mat-button","","color","primary","type","submit","tabindex","8"],["invoiceBlock",""],["keysendBlock",""],["offerBlock",""],["color","primary","name","paymentType","fxFlex","100","fxLayoutAlign","start start",1,"my-1",3,"ngModel","ngModelChange","change"],["fxFlex","20","tabindex","1",3,"value"],["fxFlex","20","tabindex","2",3,"value"],["fxFlex","20","tabindex","3",3,"value",4,"ngIf"],["fxFlex","20","tabindex","3",3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[4,"ngIf"],["autoFocus","","matInput","","placeholder","Payment Request","rows","4","name","paymentRequest","tabindex","4","required","",3,"ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],["fxFlex","100",4,"ngIf"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","5","required","",3,"ngModel","ngModelChange","change"],["paymentAmt","ngModel"],["autoFocus","","matInput","","placeholder","Pubkey","name","pubkey","tabindex","4","required","",3,"ngModel","ngModelChange"],["matInput","","placeholder","Amount (Sats)","name","keysendAmount","tabindex","5","required","",3,"ngModel","ngModelChange"],["keysendAmt","ngModel"],["autoFocus","","matInput","","placeholder","Offer Request","rows","4","name","offerRequest","tabindex","4","required","",3,"ngModel","ngModelChange","matTextareaAutosize"],["offerReq","ngModel"],["fxFlex","30","tabindex","6","color","primary","matTooltip","Save offer in database for future payments",1,"mt-1",3,"ngModel","matTooltipPosition","ngModelChange"],["fxFlex","100","class","mt-1",4,"ngIf"],["matInput","","placeholder","Amount (Sats)","name","amountoffer","tabindex","5","required","",3,"ngModel","ngModelChange","change"],["offerAmt","ngModel"],["fxFlex","100",1,"mt-1"],["matInput","","placeholder","Title to Save","tabindex","7",3,"ngModel","ngModelChange"]],template:function(t,B){if(1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-card-header",2),A.TgZ(3,"div",3),A.TgZ(4,"span",4),A._uU(5,"Send Payment"),A.qZA(),A.qZA(),A.TgZ(6,"button",5),A._uU(7,"X"),A.qZA(),A.qZA(),A.TgZ(8,"mat-card-content",6),A.YNc(9,it,6,4,"mat-radio-group",7),A.TgZ(10,"form",8,9),A.NdJ("submit",function(){return B.onSendPayment()})("reset",function(){return B.resetData()}),A.YNc(12,ZA,1,0,"ng-container",10),A.YNc(13,Tt,3,2,"div",11),A.TgZ(14,"div",12),A.TgZ(15,"button",13),A._uU(16,"Clear Fields"),A.qZA(),A.TgZ(17,"button",14),A._uU(18,"Send Payment"),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.YNc(19,zt,7,5,"ng-template",null,15,A.W1O),A.YNc(21,ce,7,4,"ng-template",null,16,A.W1O),A.YNc(23,ye,11,8,"ng-template",null,17,A.W1O)),2&t){const k=A.MAs(20),FA=A.MAs(22),pt=A.MAs(24);A.xp6(6),A.Q6J("mat-dialog-close",!1),A.xp6(3),A.Q6J("ngIf",B.isCompatibleVersion),A.xp6(3),A.Q6J("ngTemplateOutlet",B.paymentType===B.paymentTypes.KEYSEND?FA:B.paymentType===B.paymentTypes.OFFER?pt:k),A.xp6(1),A.Q6J("ngIf",""!==B.paymentError)}},directives:[Qt.xw,Qt.yH,w.dk,Qt.Wh,F.lW,OA.ZT,w.dn,ht.O5,zA._Y,zA.JL,zA.F,ht.tP,YA.VQ,zA.JJ,zA.On,YA.U0,f.BN,V.KE,ot.Nt,zA.Fj,It.h,zA.Q7,V.bx,V.TO,tt.oG,aA.gM],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-payment_hash[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),i})();var ke=St(3504);const xn=["sendPaymentForm"];function rn(i,U){if(1&i&&(A.TgZ(0,"mat-hint"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.paymentDecodedHint)}}function dn(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Payment request is required."),A.qZA())}function Yn(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"form",4,5),A.TgZ(2,"mat-form-field",6),A.TgZ(3,"textarea",7,8),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().onPaymentRequestEntry(k)})("matTextareaAutosize",function(){return!0}),A.qZA(),A.YNc(5,rn,2,1,"mat-hint",9),A.YNc(6,dn,2,0,"mat-error",9),A.qZA(),A.TgZ(7,"div",10),A.TgZ(8,"button",11),A.NdJ("click",function(){return A.CHM(t),A.oxw().resetData()}),A._uU(9,"Clear Field"),A.qZA(),A.TgZ(10,"button",12),A.NdJ("click",function(){return A.CHM(t),A.oxw().onSendPayment()}),A._uU(11,"Send Payment"),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw();A.xp6(3),A.Q6J("ngModel",t.paymentRequest),A.xp6(2),A.Q6J("ngIf",t.paymentRequest&&""!==t.paymentDecodedHint),A.xp6(1),A.Q6J("ngIf",!t.paymentRequest)}}function an(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",13),A.TgZ(1,"button",12),A.NdJ("click",function(){return A.CHM(t),A.oxw().openSendPaymentModal()}),A._uU(2,"Send Payment"),A.qZA(),A.qZA()}}function En(i,U){1&i&&A._UZ(0,"mat-progress-bar",50)}function gn(i,U){1&i&&(A.TgZ(0,"th",51),A._uU(1,"Created At"),A.qZA())}const Tn=function(i){return{"mr-0":i}};function Yr(i,U){if(1&i&&A._UZ(0,"span",55),2&i){const t=A.oxw(3);A.Q6J("ngClass",A.VKq(1,Tn,t.screenSize===t.screenSizeEnum.XS))}}function Tr(i,U){if(1&i&&A._UZ(0,"span",56),2&i){const t=A.oxw(3);A.Q6J("ngClass",A.VKq(1,Tn,t.screenSize===t.screenSizeEnum.XS))}}function rr(i,U){if(1&i&&(A.TgZ(0,"td",52),A.YNc(1,Yr,1,3,"span",53),A.YNc(2,Tr,1,3,"span",54),A._uU(3),A.ALo(4,"date"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Q6J("ngIf","complete"===t.status),A.xp6(1),A.Q6J("ngIf","complete"!==t.status),A.xp6(1),A.hij(" ",A.xi3(4,3,1e3*(null==t?null:t.created_at),"dd/MMM/YYYY HH:mm")," ")}}function Sn(i,U){1&i&&(A.TgZ(0,"th",51),A._uU(1," Type "),A.qZA())}function _n(i,U){if(1&i&&(A.TgZ(0,"td",52),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(null!=t&&t.bolt12?"Bolt12":null!=t&&t.bolt11?"Bolt11":"Keysend")}}function IA(i,U){1&i&&(A.TgZ(0,"th",51),A._uU(1,"Payment Hash"),A.qZA())}const H=function(i){return{"max-width":i}};function S(i,U){if(1&i&&(A.TgZ(0,"td",52),A.TgZ(1,"span",57),A.TgZ(2,"span",58),A._uU(3),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.xp6(1),A.Q6J("ngStyle",A.VKq(2,H,B.screenSize===B.screenSizeEnum.XS?"10rem":"30rem")),A.xp6(2),A.Oqu(null==t?null:t.payment_hash)}}function X(i,U){1&i&&(A.TgZ(0,"th",59),A._uU(1,"Sats Sent"),A.qZA())}function Z(i,U){if(1&i&&(A.TgZ(0,"td",52),A.TgZ(1,"span",60),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,1,(null==t?null:t.msatoshi_sent)/1e3,(null==t?null:t.msatoshi_sent)<1e3?"1.0-4":"1.0-0"))}}function fA(i,U){1&i&&(A.TgZ(0,"th",59),A._uU(1,"Sats Received"),A.qZA())}function pA(i,U){if(1&i&&(A.TgZ(0,"td",52),A.TgZ(1,"span",60),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,1,(null==t?null:t.msatoshi)/1e3,(null==t?null:t.msatoshi)<1e3?"1.0-4":"1.0-0"))}}function $A(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",61),A.TgZ(1,"div",62),A.TgZ(2,"mat-select",63),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",64),A.NdJ("click",function(){return A.CHM(t),A.oxw(2).onDownloadCSV()}),A._uU(5,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}function rt(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",65),A.TgZ(1,"button",66),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw(2).onPaymentClick(FA)}),A._uU(2,"View Info"),A.qZA(),A.qZA()}}function ut(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No payment available."),A.qZA())}function wt(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting payments..."),A.qZA())}function Dt(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Oqu(t.errorMessage)}}function xt(i,U){if(1&i&&(A.TgZ(0,"td",67),A.YNc(1,ut,2,0,"p",9),A.YNc(2,wt,2,0,"p",9),A.YNc(3,Dt,2,1,"p",9),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.ERROR)}}function Yt(i,U){if(1&i&&A._UZ(0,"span",71),2&i){const t=A.oxw(3);A.Q6J("ngClass",A.VKq(1,Tn,t.screenSize===t.screenSizeEnum.XS))}}function Ot(i,U){if(1&i&&A._UZ(0,"span",72),2&i){const t=A.oxw(3);A.Q6J("ngClass",A.VKq(1,Tn,t.screenSize===t.screenSizeEnum.XS))}}function Zt(i,U){if(1&i&&A._UZ(0,"span",71),2&i){const t=A.oxw(5);A.Q6J("ngClass",A.VKq(1,Tn,t.screenSize===t.screenSizeEnum.XS))}}function ue(i,U){if(1&i&&A._UZ(0,"span",72),2&i){const t=A.oxw(5);A.Q6J("ngClass",A.VKq(1,Tn,t.screenSize===t.screenSizeEnum.XS))}}function Ee(i,U){if(1&i&&(A.TgZ(0,"span",74),A.YNc(1,Zt,1,3,"span",69),A.YNc(2,ue,1,3,"span",70),A._uU(3),A.ALo(4,"date"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Q6J("ngIf","complete"===t.status),A.xp6(1),A.Q6J("ngIf","complete"!==t.status),A.xp6(1),A.hij(" ",A.xi3(4,3,1e3*t.created_at,"dd/MMM/YYYY HH:mm")," ")}}function Me(i,U){if(1&i&&(A.ynx(0),A.YNc(1,Ee,5,6,"span",73),A.BQk()),2&i){const t=A.oxw().$implicit;A.xp6(1),A.Q6J("ngForOf",null==t?null:t.mpps)}}function en(i,U){if(1&i&&(A.TgZ(0,"td",52),A.TgZ(1,"span",68),A.YNc(2,Yt,1,3,"span",69),A.YNc(3,Ot,1,3,"span",70),A._uU(4),A.qZA(),A.YNc(5,Me,2,1,"ng-container",9),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Q6J("ngIf","complete"===t.status),A.xp6(1),A.Q6J("ngIf","complete"!==t.status),A.xp6(1),A.hij(" Total Attempts: ",null==t?null:t.total_parts," "),A.xp6(1),A.Q6J("ngIf",t.is_expanded)}}function Qe(i,U){if(1&i&&(A.TgZ(0,"span",68),A._uU(1),A.qZA()),2&i){const t=A.oxw(2).$implicit;A.xp6(1),A.Oqu(null!=t&&t.bolt12?"Bolt12":null!=t&&t.bolt11?"Bolt11":"Keysend")}}function je(i,U){if(1&i&&(A.TgZ(0,"span"),A.YNc(1,Qe,2,1,"span",75),A.qZA()),2&i){const t=A.oxw().$implicit;A.xp6(1),A.Q6J("ngForOf",null==t?null:t.mpps)}}function wn(i,U){if(1&i&&(A.TgZ(0,"td",52),A.TgZ(1,"span",68),A._uU(2),A.qZA(),A.YNc(3,je,2,1,"span",9),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(null!=t&&t.bolt12?"Bolt12":null!=t&&t.bolt11?"Bolt11":"Keysend"),A.xp6(1),A.Q6J("ngIf",t.is_expanded)}}function Ze(i,U){if(1&i&&(A.TgZ(0,"span",68),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" Part ID ",t.partid?t.partid:0," ")}}function Cn(i,U){if(1&i&&(A.TgZ(0,"span"),A.YNc(1,Ze,2,1,"span",75),A.qZA()),2&i){const t=A.oxw().$implicit;A.xp6(1),A.Q6J("ngForOf",null==t?null:t.mpps)}}function Wn(i,U){if(1&i&&(A.TgZ(0,"td",52),A.TgZ(1,"span",76),A.TgZ(2,"span",58),A._uU(3),A.qZA(),A.qZA(),A.YNc(4,Cn,2,1,"span",9),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.xp6(1),A.Q6J("ngStyle",A.VKq(3,H,B.screenSize===B.screenSizeEnum.XS?"10rem":"30rem")),A.xp6(2),A.Oqu(null==t?null:t.payment_hash),A.xp6(1),A.Q6J("ngIf",t.is_expanded)}}function $n(i,U){if(1&i&&(A.TgZ(0,"span",77),A._uU(1),A.ALo(2,"number"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",A.xi3(2,1,t.msatoshi_sent/1e3,t.msatoshi_sent<1e3?"1.0-4":"1.0-0")," ")}}function Un(i,U){if(1&i&&(A.TgZ(0,"span"),A.YNc(1,$n,3,4,"span",78),A.qZA()),2&i){const t=A.oxw().$implicit;A.xp6(1),A.Q6J("ngForOf",null==t?null:t.mpps)}}function Lr(i,U){if(1&i&&(A.TgZ(0,"td",52),A.TgZ(1,"span",77),A._uU(2),A.ALo(3,"number"),A.qZA(),A.YNc(4,Un,2,1,"span",9),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,2,(null==t?null:t.msatoshi_sent)/1e3,(null==t?null:t.msatoshi_sent)<1e3?"1.0-4":"1.0-0")),A.xp6(2),A.Q6J("ngIf",t.is_expanded)}}function On(i,U){if(1&i&&(A.TgZ(0,"span",77),A._uU(1),A.ALo(2,"number"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",A.xi3(2,1,t.msatoshi/1e3,t.msatoshi<1e3?"1.0-4":"1.0-0")," ")}}function ir(i,U){if(1&i&&(A.TgZ(0,"span"),A.YNc(1,On,3,4,"span",78),A.qZA()),2&i){const t=A.oxw().$implicit;A.xp6(1),A.Q6J("ngForOf",null==t?null:t.mpps)}}function Mr(i,U){if(1&i&&(A.TgZ(0,"td",52),A.TgZ(1,"span",77),A._uU(2),A.ALo(3,"number"),A.qZA(),A.YNc(4,ir,2,1,"span",9),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,2,(null==t?null:t.msatoshi)/1e3,(null==t?null:t.msatoshi)<1e3?"1.0-4":"1.0-0")),A.xp6(2),A.Q6J("ngIf",t.is_expanded)}}function Ar(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",60),A.TgZ(1,"button",82),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw(4).onPaymentClick(FA)}),A._uU(2),A.qZA(),A.qZA()}if(2&i){const t=U.$implicit;A.xp6(2),A.hij("View ",t.partid?t.partid:0,"")}}function ur(i,U){if(1&i&&(A.TgZ(0,"div"),A.YNc(1,Ar,3,1,"div",81),A.qZA()),2&i){const t=A.oxw().$implicit;A.xp6(1),A.Q6J("ngForOf",null==t?null:t.mpps)}}function Gr(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",79),A.TgZ(1,"span",60),A.TgZ(2,"button",80),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return FA.is_expanded=!FA.is_expanded}),A._uU(3),A.qZA(),A.qZA(),A.YNc(4,ur,2,1,"div",9),A.qZA()}if(2&i){const t=U.$implicit;A.xp6(3),A.Oqu(t.is_expanded?"Hide":"Show"),A.xp6(1),A.Q6J("ngIf",t.is_expanded)}}function Vn(i,U){1&i&&A._UZ(0,"tr",83)}const Hr=function(i){return{"display-none":i}};function dr(i,U){if(1&i&&A._UZ(0,"tr",84),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,Hr,(null==t.payments?null:t.payments.data)&&(null==t.payments||null==t.payments.data?null:t.payments.data.length)>0))}}function Jr(i,U){1&i&&A._UZ(0,"tr",85)}function Or(i,U){1&i&&A._UZ(0,"tr",83)}const gi=function(i){return{"overflow-auto error-border":i,"overflow-auto":!0}},kr=function(){return["no_payment"]};function ar(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",14),A.TgZ(1,"div",15),A.TgZ(2,"div",16),A._UZ(3,"fa-icon",17),A.TgZ(4,"span",18),A._uU(5,"Payments History"),A.qZA(),A.qZA(),A.TgZ(6,"mat-form-field",19),A.TgZ(7,"input",20),A.NdJ("keyup",function(){return A.CHM(t),A.oxw().applyFilter()})("ngModelChange",function(k){return A.CHM(t),A.oxw().selFilter=k}),A.qZA(),A.qZA(),A.qZA(),A.TgZ(8,"div",21),A.TgZ(9,"div",22),A.YNc(10,En,1,0,"mat-progress-bar",23),A.TgZ(11,"table",24,25),A.ynx(13,26),A.YNc(14,gn,2,0,"th",27),A.YNc(15,rr,5,6,"td",28),A.BQk(),A.ynx(16,29),A.YNc(17,Sn,2,0,"th",27),A.YNc(18,_n,2,1,"td",28),A.BQk(),A.ynx(19,30),A.YNc(20,IA,2,0,"th",27),A.YNc(21,S,4,4,"td",28),A.BQk(),A.ynx(22,31),A.YNc(23,X,2,0,"th",32),A.YNc(24,Z,4,4,"td",28),A.BQk(),A.ynx(25,33),A.YNc(26,fA,2,0,"th",32),A.YNc(27,pA,4,4,"td",28),A.BQk(),A.ynx(28,34),A.YNc(29,$A,6,0,"th",35),A.YNc(30,rt,3,0,"td",36),A.BQk(),A.ynx(31,37),A.YNc(32,xt,4,3,"td",38),A.BQk(),A.ynx(33,39),A.YNc(34,en,6,4,"td",28),A.BQk(),A.ynx(35,40),A.YNc(36,wn,4,2,"td",28),A.BQk(),A.ynx(37,41),A.YNc(38,Wn,5,5,"td",28),A.BQk(),A.ynx(39,42),A.YNc(40,Lr,5,5,"td",28),A.BQk(),A.ynx(41,43),A.YNc(42,Mr,5,5,"td",28),A.BQk(),A.ynx(43,44),A.YNc(44,Gr,5,2,"td",45),A.BQk(),A.YNc(45,Vn,1,0,"tr",46),A.YNc(46,dr,1,3,"tr",47),A.YNc(47,Jr,1,0,"tr",48),A.YNc(48,Or,1,0,"tr",46),A.qZA(),A.qZA(),A.qZA(),A._UZ(49,"mat-paginator",49),A.qZA()}if(2&i){const t=A.oxw();A.xp6(3),A.Q6J("icon",t.faHistory),A.xp6(4),A.Q6J("ngModel",t.selFilter),A.xp6(3),A.Q6J("ngIf",(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",t.payments)("ngClass",A.VKq(15,gi,""!==t.errorMessage)),A.xp6(34),A.Q6J("matRowDefColumns",t.mppColumns)("matRowDefWhen",t.is_group),A.xp6(1),A.Q6J("matFooterRowDef",A.DdM(17,kr)),A.xp6(1),A.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",t.displayedColumns)("matRowDefWhen",!t.is_group),A.xp6(1),A.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let Sr=(()=>{class i{constructor(t,B,k,FA,pt,Ye,vn,Ie,fn){this.logger=t,this.commonService=B,this.store=k,this.rtlEffects=FA,this.clEffects=pt,this.decimalPipe=Ye,this.titleCasePipe=vn,this.datePipe=Ie,this.dataService=fn,this.calledFrom="transactions",this.faHistory=E.qO$,this.newlyAddedPayment="",this.selNode={},this.information={},this.paymentJSONArr=[],this.displayedColumns=[],this.mppColumns=[],this.paymentDecoded={},this.paymentRequest="",this.paymentDecodedHint="",this.flgSticky=!1,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["created_at","actions"],this.mppColumns=["groupTotal","groupAction"]):this.screenSize===o.cu.SM?(this.flgSticky=!1,this.displayedColumns=["created_at","msatoshi","actions"],this.mppColumns=["groupTotal","groupAmtRecv","groupAction"]):this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["created_at","type","msatoshi_sent","msatoshi","actions"],this.mppColumns=["groupTotal","groupType","groupAmtSent","groupAmtRecv","groupAction"]):(this.flgSticky=!0,this.displayedColumns=["created_at","type","payment_hash","msatoshi_sent","msatoshi","actions"],this.mppColumns=["groupTotal","groupType","groupHash","groupAmtSent","groupAmtRecv","groupAction"])}ngOnInit(){this.store.select(l.Jo).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(l.W3).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.information=t}),this.store.select(l.PP).pipe((0,r.R)(this.unSubs[2])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.paymentJSONArr=t.payments||[],this.paymentJSONArr.length>0&&this.loadPaymentsTable(this.paymentJSONArr),this.logger.info(t)})}ngAfterViewInit(){this.paymentJSONArr.length>0&&this.loadPaymentsTable(this.paymentJSONArr)}is_group(t,B){return B.is_group}onSendPayment(){if(!this.paymentRequest)return!0;this.paymentDecoded.created_at?this.sendPayment():this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.paymentDecoded=t,this.paymentDecoded.created_at?(this.paymentDecoded.msatoshi||(this.paymentDecoded.msatoshi=0),this.sendPayment()):this.resetData()})}sendPayment(){this.newlyAddedPayment=this.paymentDecoded.payment_hash,this.paymentDecoded.msatoshi&&0!==this.paymentDecoded.msatoshi?(this.store.dispatch((0,eA.c1)({payload:{data:{type:o.n_.CONFIRM,alertTitle:"Confirm Send Payment",noBtnText:"Cancel",yesBtnText:"Send Payment",message:[[{key:"payment_hash",value:this.paymentDecoded.payment_hash,title:"Payment Hash",width:100}],[{key:"payee",value:this.paymentDecoded.payee,title:"Payee",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"created_at",value:this.paymentDecoded.created_at,title:"Creation Date",width:50,type:o.Gi.DATE_TIME},{key:"num_satoshis",value:this.paymentDecoded.msatoshi/1e3,title:"Amount (Sats)",width:50,type:o.Gi.NUMBER}],[{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:50,type:o.Gi.NUMBER},{key:"min_finaltv_expiry",value:this.paymentDecoded.min_final_cltv_expiry,title:"CLTV Expiry",width:50}]]}}})),this.rtlEffects.closeConfirm.pipe((0,nn.q)(1)).subscribe(B=>{B&&(this.store.dispatch((0,WA.oV)({payload:{uiMessage:o.m6.SEND_PAYMENT,paymentType:o.IX.INVOICE,invoice:this.paymentRequest,fromDialog:!1}})),this.resetData())})):(this.store.dispatch((0,eA.c1)({payload:{data:{type:o.n_.CONFIRM,alertTitle:"Enter Amount and Confirm Send Payment",message:[[{key:"payment_hash",value:this.paymentDecoded.payment_hash,title:"Payment Hash",width:100}],[{key:"payee",value:this.paymentDecoded.payee,title:"Payee",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"created_at",value:this.paymentDecoded.created_at,title:"Creation Date",width:40,type:o.Gi.DATE_TIME},{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:30,type:o.Gi.NUMBER},{key:"min_finaltv_expiry",value:this.paymentDecoded.min_final_cltv_expiry,title:"CLTV Expiry",width:30}]],noBtnText:"Cancel",yesBtnText:"Send Payment",flgShowInput:!0,titleMessage:"It is a zero amount invoice. Enter the amount (Sats) to pay.",getInputs:[{placeholder:"Amount (Sats)",inputType:o.Gi.NUMBER.toLowerCase(),inputValue:"",width:30}]}}})),this.rtlEffects.closeConfirm.pipe((0,nn.q)(1)).subscribe(k=>{k&&(this.paymentDecoded.msatoshi=k[0].inputValue,this.store.dispatch((0,WA.oV)({payload:{uiMessage:o.m6.SEND_PAYMENT,paymentType:o.IX.INVOICE,invoice:this.paymentRequest,amount:1e3*k[0].inputValue,fromDialog:!1}})),this.resetData())}))}onPaymentRequestEntry(t){this.paymentRequest=t,this.paymentDecodedHint="",this.paymentRequest&&this.paymentRequest.length>100&&this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,r.R)(this.unSubs[1])).subscribe(B=>{this.paymentDecoded=B,this.paymentDecoded.msatoshi?this.selNode.fiatConversion?this.commonService.convertCurrency(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0,o.NT.SATS,o.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,r.R)(this.unSubs[3])).subscribe({next:k=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats ("+k.symbol+this.decimalPipe.transform(k.OTHER?k.OTHER:0,o.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:k=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.msatoshi?this.paymentDecoded.msatoshi/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description:this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description})}openSendPaymentModal(){this.store.dispatch((0,eA.qR)({payload:{data:{component:Te}}}))}resetData(){this.paymentDecoded={},this.paymentRequest="",this.form.resetForm()}onPaymentClick(t){const B=[[{key:"payment_preimage",value:t.payment_preimage,title:"Payment Preimage",width:100,type:o.Gi.STRING}],[{key:"id",value:t.id,title:"ID",width:20,type:o.Gi.STRING},{key:"destination",value:t.destination,title:"Destination",width:80,type:o.Gi.STRING}],[{key:"created_at",value:t.created_at,title:"Creation Date",width:50,type:o.Gi.DATE_TIME},{key:"status",value:this.titleCasePipe.transform(t.status),title:"Status",width:50,type:o.Gi.STRING}],[{key:"msatoshi",value:t.msatoshi,title:"Amount (mSats)",width:50,type:o.Gi.NUMBER},{key:"msatoshi_sent",value:t.msatoshi_sent,title:"Amount Sent (mSats)",width:50,type:o.Gi.NUMBER}]];t.bolt11&&""!==t.bolt11&&B.unshift([{key:"bolt11",value:t.bolt11,title:"Bolt 11",width:100,type:o.Gi.STRING}]),t.bolt12&&""!==t.bolt12&&B.unshift([{key:"bolt12",value:t.bolt12,title:"Bolt 12",width:100,type:o.Gi.STRING}]),t.memo&&""!==t.memo&&B.splice(2,0,[{key:"memo",value:t.memo,title:"Memo",width:100,type:o.Gi.STRING}]),t.hasOwnProperty("partid")?B.unshift([{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:80,type:o.Gi.STRING},{key:"partid",value:t.partid,title:"Part ID",width:20,type:o.Gi.STRING}]):B.unshift([{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:100,type:o.Gi.STRING}]),this.store.dispatch((0,eA.qR)({payload:{data:{type:o.n_.INFORMATION,alertTitle:"Payment Information",message:B}}}))}applyFilter(){this.payments.filter=this.selFilter.trim().toLowerCase()}loadPaymentsTable(t){this.payments=new SA.by(t?[...t]:[]),this.payments.data=this.paymentJSONArr,this.payments.sort=this.sort,this.payments.sortingDataAccessor=(B,k)=>B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null,this.payments.filterPredicate=(B,k)=>((B.created_at?this.datePipe.transform(new Date(1e3*B.created_at),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(B.bolt12?"bolt12":B.bolt11?"bolt11":"keysend")+JSON.stringify(B).toLowerCase()).includes(k),this.payments.paginator=this.paginator,this.applyFilter()}onDownloadCSV(){if(this.payments.data&&this.payments.data.length>0){const B=JSON.parse(JSON.stringify(this.payments.data)).reduce((k,FA)=>FA.mpps?k.concat(FA.mpps):(delete FA.is_group,delete FA.is_expanded,delete FA.total_parts,k.concat(FA)),[]);this.commonService.downloadFile(B,"Payments")}}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(e.v),A.Y36(u.yh),A.Y36(at.V),A.Y36(ke.s),A.Y36(ht.JJ),A.Y36(ht.rS),A.Y36(ht.uU),A.Y36(KA.D))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-lightning-payments"]],viewQuery:function(t,B){if(1&t&&(A.Gf(xn,5),A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.form=k.first),A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},inputs:{calledFrom:"calledFrom"},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Payments")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["sendPaymentForm","ngForm"],["fxFlex","100"],["matInput","","placeholder","Payment Request","name","paymentRequest","tabindex","1","required","",3,"perfectScrollbar","ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["fxLayout","row"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","created_at"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","type"],["matColumnDef","payment_hash"],["matColumnDef","msatoshi_sent"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_payment"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["matColumnDef","groupTotal"],["matColumnDef","groupType"],["matColumnDef","groupHash"],["matColumnDef","groupAmtSent"],["matColumnDef","groupAmtRecv"],["matColumnDef","groupAction"],["mat-cell","","class","px-3",4,"matCellDef"],["mat-row","",4,"matRowDef","matRowDefColumns","matRowDefWhen"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot green","matTooltip","Completed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Failed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Completed","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Failed","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],["fxLayout","row",1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],["fxLayoutAlign","start center",1,"mpp-row-span"],["class","dot green mt-0","matTooltip","Completed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow mt-0","matTooltip","Incomplete/Failed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Completed","matTooltipPosition","right",1,"dot","green","mt-0",3,"ngClass"],["matTooltip","Incomplete/Failed","matTooltipPosition","right",1,"dot","yellow","mt-0",3,"ngClass"],["fxLayoutAlign","start center","class","mpp-row-span pl-3",4,"ngFor","ngForOf"],["fxLayoutAlign","start center",1,"mpp-row-span","pl-3"],["fxLayoutAlign","start center","class","mpp-row-span",4,"ngFor","ngForOf"],["fxLayout","row",1,"ellipsis-parent","mpp-row-span",3,"ngStyle"],["fxLayoutAlign","end center",1,"mpp-row-span"],["fxLayoutAlign","end center","class","mpp-row-span",4,"ngFor","ngForOf"],["mat-cell","",1,"px-3"],["mat-flat-button","","color","primary","type","button","tabindex","5",1,"btn-mpp-expand",3,"click"],["fxLayoutAlign","end center",4,"ngFor","ngForOf"],["mat-stroked-button","","color","primary","type","button","tabindex","6",1,"btn-mpp-info",3,"click"],["mat-row",""],["mat-footer-row","",3,"ngClass"],["mat-header-row",""]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.YNc(1,Yn,12,3,"form",1),A.YNc(2,an,3,0,"div",2),A.YNc(3,ar,50,18,"div",3),A.qZA()),2&t&&(A.xp6(1),A.Q6J("ngIf","home"===B.calledFrom),A.xp6(1),A.Q6J("ngIf","transactions"===B.calledFrom),A.xp6(1),A.Q6J("ngIf","transactions"===B.calledFrom))},directives:[Qt.xw,Qt.yH,Qt.Wh,ht.O5,zA._Y,zA.JL,zA.F,V.KE,ot.Nt,zA.Fj,zA.Q7,gA.$V,zA.JJ,zA.On,F.lW,V.bx,V.TO,f.BN,SA.BZ,lt.YE,ht.mk,d.oO,SA.w1,SA.fO,SA.Dz,SA.mD,SA.nj,SA.Ke,SA.as,ft.NW,Y.pW,SA.ge,lt.nU,SA.ev,aA.gM,ht.PC,d.Zl,vt.gD,vt.$L,G.ey,SA.yh,ht.sg,SA.Gk,SA.Q2,SA.XQ],pipes:[ht.uU,ht.JJ],styles:[".mat-column-payment_hash[_ngcontent-%COMP%]{flex:0 0 25%;width:25%}.mat-column-payment_hash[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%], .mat-column-groupAction[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-mpp-expand[_ngcontent-%COMP%]{width:9rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-mpp-info[_ngcontent-%COMP%]{margin-top:.5rem;width:9rem}.mpp-row-span[_ngcontent-%COMP%]{min-height:4.2rem;place-content:center flex-start;align-items:center}.mat-column-groupTotal[_ngcontent-%COMP%]{min-width:17rem}"]}),i})();function Xn(i,U){if(1&i&&(A.TgZ(0,"button",26),A.TgZ(1,"mat-icon"),A._uU(2,"more_vert"),A.qZA(),A.qZA()),2&i){A.oxw();const t=A.MAs(11);A.Q6J("matMenuTriggerFor",t)}}function Ui(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"button",15),A.NdJ("click",function(){return A.CHM(t),A.oxw(3).onNavigateTo("/cl/reports")}),A._uU(1,"Fees Summary"),A.qZA()}}function Pi(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"button",15),A.NdJ("click",function(){return A.CHM(t),A.oxw(3).onsortChannelsBy()}),A._uU(1),A.qZA()}if(2&i){const t=A.oxw(3);A.xp6(1),A.hij("Sort By ","Balance Score"===t.sortField?"Capacity":"Balance Score","")}}function _a(i,U){1&i&&A._UZ(0,"mat-progress-bar",27)}function $a(i,U){if(1&i&&A._UZ(0,"rtl-cl-node-info",28),2&i){const t=A.oxw(3);A.Q6J("information",t.information)("showColorFieldSeparately",!1)}}function Ao(i,U){if(1&i&&A._UZ(0,"rtl-cl-balances-info",29),2&i){const t=A.oxw(3);A.Q6J("balances",t.balances)("errorMessage",t.errorMessages[2]+" "+t.errorMessages[3])}}function to(i,U){if(1&i&&A._UZ(0,"rtl-cl-channel-capacity-info",30),2&i){const t=A.oxw(3);A.Q6J("sortBy",t.sortField)("channelBalances",t.channelBalances)("activeChannels",t.activeChannelsCapacity)("errorMessage",t.errorMessages[4]+" "+t.errorMessages[3])}}function eo(i,U){if(1&i&&A._UZ(0,"rtl-cl-fee-info",31),2&i){const t=A.oxw(3);A.Q6J("fees",t.fees)("errorMessage",t.errorMessages[1]+" "+t.errorMessages[4]+" "+t.errorMessages[5])}}function no(i,U){if(1&i&&A._UZ(0,"rtl-cl-channel-status-info",32),2&i){const t=A.oxw(3);A.Q6J("channelsStatus",t.channelsStatus)("errorMessage",t.errorMessages[0]+" "+t.errorMessages[3])}}function ro(i,U){1&i&&(A.TgZ(0,"h3"),A._uU(1,"Error! Unable to find information!"),A.qZA())}const zi=function(i){return{"dashboard-card-content":!0,"error-border":i}};function io(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-grid-tile",8),A.TgZ(1,"mat-card",9),A.TgZ(2,"mat-card-header"),A.TgZ(3,"mat-card-title",10),A.TgZ(4,"div"),A._UZ(5,"fa-icon",11),A.TgZ(6,"span"),A._uU(7),A.qZA(),A.qZA(),A.TgZ(8,"div"),A.YNc(9,Xn,3,1,"button",12),A.TgZ(10,"mat-menu",13,14),A.TgZ(12,"button",15),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw(2).onNavigateTo(FA.link)}),A._uU(13),A.qZA(),A.YNc(14,Ui,2,0,"button",16),A.YNc(15,Pi,2,1,"button",16),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.TgZ(16,"mat-card-content",17),A.YNc(17,_a,1,0,"mat-progress-bar",18),A.TgZ(18,"div",19),A.YNc(19,$a,1,2,"rtl-cl-node-info",20),A.YNc(20,Ao,1,2,"rtl-cl-balances-info",21),A.YNc(21,to,1,4,"rtl-cl-channel-capacity-info",22),A.YNc(22,eo,1,2,"rtl-cl-fee-info",23),A.YNc(23,no,1,2,"rtl-cl-channel-status-info",24),A.YNc(24,ro,2,0,"h3",25),A.qZA(),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw(2);A.Q6J("colspan",t.cols)("rowspan",t.rows),A.xp6(5),A.Q6J("icon",t.icon),A.xp6(2),A.Oqu(t.title),A.xp6(2),A.Q6J("ngIf",t.link),A.xp6(4),A.hij("Go To ",t.goTo,""),A.xp6(1),A.Q6J("ngIf","fee"===t.id),A.xp6(1),A.Q6J("ngIf","capacity"===t.id),A.xp6(1),A.s9C("fxFlex","capacity"===t.id?90:70),A.Q6J("ngClass",A.VKq(17,zi,"node"===t.id&&B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.ERROR||"balance"===t.id&&(B.apiCallStatusBalance.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.ERROR)||"capacity"===t.id&&(B.apiCallStatusChannels.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.ERROR)||"fee"===t.id&&(B.apiCallStatusFees.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusChannels.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusFHistory.status===B.apiCallStatusEnum.ERROR)||"status"===t.id&&(B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.ERROR))),A.xp6(1),A.Q6J("ngIf","node"===t.id&&B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.INITIATED||"balance"===t.id&&(B.apiCallStatusBalance.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.INITIATED)||"capacity"===t.id&&(B.apiCallStatusChannels.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.INITIATED)||"fee"===t.id&&(B.apiCallStatusFees.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusChannels.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusFHistory.status===B.apiCallStatusEnum.INITIATED)||"status"===t.id&&(B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.INITIATED)),A.xp6(1),A.Q6J("ngSwitch",t.id),A.xp6(1),A.Q6J("ngSwitchCase","node"),A.xp6(1),A.Q6J("ngSwitchCase","balance"),A.xp6(1),A.Q6J("ngSwitchCase","capacity"),A.xp6(1),A.Q6J("ngSwitchCase","fee"),A.xp6(1),A.Q6J("ngSwitchCase","status")}}function ea(i,U){if(1&i&&(A.TgZ(0,"div",2),A.TgZ(1,"div",3),A._UZ(2,"fa-icon",4),A.TgZ(3,"span",5),A._uU(4),A.qZA(),A.qZA(),A.TgZ(5,"mat-grid-list",6),A.YNc(6,io,25,19,"mat-grid-tile",7),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(2),A.Q6J("icon",t.apiCallStatusNodeInfo.status===t.apiCallStatusEnum.ERROR?t.faFrown:t.faSmile),A.xp6(2),A.Oqu(t.apiCallStatusNodeInfo.status===t.apiCallStatusEnum.COMPLETED?"Welcome "+t.information.alias+"! Your node is up and running.":t.apiCallStatusNodeInfo.status===t.apiCallStatusEnum.INITIATED?"Wait! Getting your node information...":"Error! Please check the server connection."),A.xp6(1),A.Q6J("rowHeight",t.operatorCardHeight),A.xp6(1),A.Q6J("ngForOf",t.operatorCards)}}function na(i,U){if(1&i&&(A.TgZ(0,"button",26),A.TgZ(1,"mat-icon"),A._uU(2,"more_vert"),A.qZA(),A.qZA()),2&i){A.oxw();const t=A.MAs(9);A.Q6J("matMenuTriggerFor",t)}}function ao(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-card-header"),A.TgZ(1,"mat-card-title",10),A.TgZ(2,"div"),A._UZ(3,"fa-icon",11),A.TgZ(4,"span"),A._uU(5),A.qZA(),A.qZA(),A.TgZ(6,"div"),A.YNc(7,na,3,1,"button",12),A.TgZ(8,"mat-menu",13,41),A.TgZ(10,"button",15),A.NdJ("click",function(){A.CHM(t);const k=A.oxw().$implicit;return A.oxw(2).onNavigateTo(k.link)}),A._uU(11),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw().$implicit;A.xp6(3),A.Q6J("icon",t.icon),A.xp6(2),A.Oqu(t.title),A.xp6(2),A.Q6J("ngIf",t.link),A.xp6(4),A.hij("Go To ",t.goTo,"")}}function oo(i,U){1&i&&A._UZ(0,"mat-progress-bar",27)}function so(i,U){if(1&i&&A._UZ(0,"rtl-cl-node-info",42),2&i){const t=A.oxw(3);A.Q6J("information",t.information)}}function co(i,U){if(1&i&&A._UZ(0,"rtl-cl-balances-info",29),2&i){const t=A.oxw(3);A.Q6J("balances",t.balances)("errorMessage",t.errorMessages[2]+" "+t.errorMessages[3])}}function go(i,U){if(1&i&&A._UZ(0,"rtl-cl-channel-liquidity-info",43),2&i){const t=A.oxw(3);A.Q6J("direction","In")("totalLiquidity",t.totalInboundLiquidity)("activeChannels",t.allInboundChannels)("errorMessage",t.errorMessages[4])}}function lo(i,U){if(1&i&&A._UZ(0,"rtl-cl-channel-liquidity-info",43),2&i){const t=A.oxw(3);A.Q6J("direction","Out")("totalLiquidity",t.totalOutboundLiquidity)("activeChannels",t.allOutboundChannels)("errorMessage",t.errorMessages[4])}}function Bo(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"button",52),A.TgZ(1,"mat-icon"),A._uU(2,"more_vert"),A.qZA(),A.qZA(),A.TgZ(3,"mat-menu",13,53),A.TgZ(5,"button",15),A.NdJ("click",function(){A.CHM(t);const k=A.oxw(2).$implicit;return A.oxw(2).onNavigateTo(k.link)}),A._uU(6),A.qZA(),A.TgZ(7,"button",15),A.NdJ("click",function(){return A.CHM(t),A.oxw(4).onNavigateTo("/cl/reports/transactions")}),A._uU(8,"Transactions Summary"),A.qZA(),A.qZA()}if(2&i){const t=A.MAs(4),B=A.oxw(2).$implicit;A.Q6J("matMenuTriggerFor",t),A.xp6(6),A.hij("Go To ",B.goTo,"")}}function uo(i,U){1&i&&(A.TgZ(0,"span",44),A.TgZ(1,"mat-tab-group",45),A.TgZ(2,"mat-tab",46),A._UZ(3,"rtl-cl-lightning-invoices-table",47),A.qZA(),A.TgZ(4,"mat-tab",48),A._UZ(5,"rtl-cl-lightning-payments",49),A.qZA(),A.TgZ(6,"mat-tab",50),A.YNc(7,Bo,9,2,"ng-template",51),A.qZA(),A.qZA(),A.qZA()),2&i&&(A.xp6(3),A.Q6J("calledFrom","home"),A.xp6(2),A.Q6J("calledFrom","home"),A.xp6(1),A.Q6J("disabled",!0))}function fo(i,U){1&i&&(A.TgZ(0,"h3"),A._uU(1,"Error! Unable to find information!"),A.qZA())}const Eo=function(i){return{"p-0":i}};function ra(i,U){if(1&i&&(A.TgZ(0,"mat-grid-tile",8),A.TgZ(1,"mat-card",35),A.YNc(2,ao,12,4,"mat-card-header",36),A.TgZ(3,"mat-card-content",37),A.YNc(4,oo,1,0,"mat-progress-bar",18),A.TgZ(5,"div",19),A.YNc(6,so,1,1,"rtl-cl-node-info",38),A.YNc(7,co,1,2,"rtl-cl-balances-info",21),A.YNc(8,go,1,4,"rtl-cl-channel-liquidity-info",39),A.YNc(9,lo,1,4,"rtl-cl-channel-liquidity-info",39),A.YNc(10,uo,8,3,"span",40),A.YNc(11,fo,2,0,"h3",25),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.Q6J("colspan",t.cols)("rowspan",t.rows),A.xp6(1),A.Q6J("ngClass",A.VKq(13,Eo,"transactions"===t.id)),A.xp6(1),A.Q6J("ngIf","transactions"!==t.id),A.xp6(1),A.s9C("fxFlex","transactions"===t.id?100:"balance"===t.id?70:90),A.Q6J("ngClass",A.VKq(15,zi,"node"===t.id&&B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.ERROR||"balance"===t.id&&(B.apiCallStatusBalance.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.ERROR)||("inboundLiq"===t.id||"outboundLiq"===t.id)&&B.apiCallStatusChannels.status===B.apiCallStatusEnum.ERROR)),A.xp6(1),A.Q6J("ngIf","node"===t.id&&B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.INITIATED||"balance"===t.id&&(B.apiCallStatusBalance.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.INITIATED)||("inboundLiq"===t.id||"outboundLiq"===t.id)&&B.apiCallStatusChannels.status===B.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngSwitch",t.id),A.xp6(1),A.Q6J("ngSwitchCase","node"),A.xp6(1),A.Q6J("ngSwitchCase","balance"),A.xp6(1),A.Q6J("ngSwitchCase","inboundLiq"),A.xp6(1),A.Q6J("ngSwitchCase","outboundLiq"),A.xp6(1),A.Q6J("ngSwitchCase","transactions")}}function ho(i,U){if(1&i&&(A.TgZ(0,"div",33),A._UZ(1,"fa-icon",4),A.TgZ(2,"span",5),A._uU(3),A.qZA(),A.qZA(),A.TgZ(4,"mat-grid-list",34),A.YNc(5,ra,12,17,"mat-grid-tile",7),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("icon",t.faSmile),A.xp6(2),A.hij("Welcome ",t.information.alias,"! Your node is up and running."),A.xp6(1),A.Q6J("rowHeight",t.merchantCardHeight),A.xp6(1),A.Q6J("ngForOf",t.merchantCards)}}let wo=(()=>{class i{constructor(t,B,k,FA,pt){this.logger=t,this.store=B,this.actions=k,this.commonService=FA,this.router=pt,this.faSmile=s.I3,this.faFrown=s.Kf,this.faAngleDoubleDown=E.Sbq,this.faAngleDoubleUp=E.Vfw,this.faChartPie=E.OS1,this.faBolt=E.BDt,this.faServer=E.xf3,this.faNetworkWired=E.kXW,this.userPersonaEnum=o.ol,this.channelBalances={localBalance:0,remoteBalance:0,balancedness:0},this.selNode={},this.information={},this.totalBalance={},this.balances={onchain:-1,lightning:-1,total:0},this.activeChannels=[],this.channelsStatus={active:{},pending:{},inactive:{}},this.activeChannelsCapacity=[],this.allInboundChannels=[],this.allOutboundChannels=[],this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.operatorCards=[],this.merchantCards=[],this.screenSize="",this.operatorCardHeight="330px",this.merchantCardHeight="65px",this.sortField="Balance Score",this.errorMessages=["","","","","",""],this.apiCallStatusNodeInfo=null,this.apiCallStatusFees=null,this.apiCallStatusBalance=null,this.apiCallStatusLRBal=null,this.apiCallStatusChannels=null,this.apiCallStatusFHistory=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:10,rows:1},{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:10,rows:1},{id:"fee",goTo:"Routing",link:"/cl/routing",icon:this.faBolt,title:"Routing Fee",cols:10,rows:1},{id:"status",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels",cols:10,rows:1},{id:"capacity",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:6,rows:4},{id:"transactions",goTo:"Transactions",link:"/cl/transactions",title:"",cols:6,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:6,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:6,rows:8}]):this.screenSize===o.cu.SM||this.screenSize===o.cu.MD?(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:5,rows:1},{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:5,rows:1},{id:"fee",goTo:"Routing",link:"/cl/routing",icon:this.faBolt,title:"Routing Fee",cols:5,rows:1},{id:"status",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels",cols:5,rows:1},{id:"capacity",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:4},{id:"transactions",goTo:"Transactions",link:"/cl/transactions",title:"",cols:3,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:3,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:3,rows:8}]):(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:3,rows:1},{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:1},{id:"capacity",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:4,rows:2},{id:"fee",goTo:"Routing",link:"/cl/routing",icon:this.faBolt,title:"Routing Fee",cols:3,rows:1},{id:"status",goTo:"Channels",link:"/cl/connections",icon:this.faNetworkWired,title:"Channels",cols:3,rows:1}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/cl/onchain",icon:this.faChartPie,title:"Balances",cols:2,rows:5},{id:"inboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:2,rows:10},{id:"outboundLiq",goTo:"Channels",link:"/cl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:2,rows:10},{id:"transactions",goTo:"Transactions",link:"/cl/transactions",title:"",cols:2,rows:5}])}ngOnInit(){this.store.select(l.Hz).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.errorMessages[0]="",this.errorMessages[5]="",this.apiCallStatusNodeInfo=t.apisCallStatus[0],this.apiCallStatusFHistory=t.apisCallStatus[1],this.apiCallStatusNodeInfo.status===o.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apiCallStatusNodeInfo.message?JSON.stringify(this.apiCallStatusNodeInfo.message):this.apiCallStatusNodeInfo.message),this.apiCallStatusFHistory.status===o.Bn.ERROR&&(this.errorMessages[5]="object"==typeof this.apiCallStatusFHistory.message?JSON.stringify(this.apiCallStatusFHistory.message):this.apiCallStatusFHistory.message),this.selNode=t.nodeSettings,this.information=t.information}),this.store.select(l.JG).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.errorMessages[1]="",this.apiCallStatusFees=t.apiCallStatus,this.apiCallStatusFees.status===o.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apiCallStatusFees.message?JSON.stringify(this.apiCallStatusFees.message):this.apiCallStatusFees.message),this.fees=t.fees,this.logger.info(t)}),this.store.select(l.ZW).pipe((0,r.R)(this.unSubs[2])).subscribe(t=>{this.errorMessages[4]="",this.apiCallStatusChannels=t.apiCallStatus,this.apiCallStatusChannels.status===o.Bn.ERROR&&(this.errorMessages[4]="object"==typeof this.apiCallStatusChannels.message?JSON.stringify(this.apiCallStatusChannels.message):this.apiCallStatusChannels.message),this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.activeChannels=t.activeChannels,this.activeChannelsCapacity=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.activeChannels,"balancedness")))||[],this.allInboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.activeChannels.filter(B=>B.msatoshi_to_them>0),"msatoshi_to_them")))||[],this.allOutboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.activeChannels.filter(B=>B.msatoshi_to_us>0),"msatoshi_to_us")))||[],this.activeChannels.forEach(B=>{this.totalInboundLiquidity=this.totalInboundLiquidity+Math.ceil(B.msatoshi_to_them/1e3),this.totalOutboundLiquidity=this.totalOutboundLiquidity+Math.floor(B.msatoshi_to_us/1e3)}),this.channelsStatus.active.channels=t.activeChannels.length||0,this.channelsStatus.pending.channels=t.pendingChannels.length||0,this.channelsStatus.inactive.channels=t.inactiveChannels.length||0,this.logger.info(t)}),this.store.select(l.Rn).pipe((0,r.R)(this.unSubs[3]),(0,a.M)(this.store.select(l.Wj))).subscribe(([t,B])=>{this.errorMessages[2]="",this.apiCallStatusBalance=t.apiCallStatus,this.apiCallStatusBalance.status===o.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apiCallStatusBalance.message?JSON.stringify(this.apiCallStatusBalance.message):this.apiCallStatusBalance.message),this.errorMessages[3]="",this.apiCallStatusLRBal=B.apiCallStatus,this.apiCallStatusLRBal.status===o.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apiCallStatusLRBal.message?JSON.stringify(this.apiCallStatusLRBal.message):this.apiCallStatusLRBal.message),this.totalBalance=t.balance,this.balances.onchain=t.balance.totalBalance,this.balances.lightning=B.localRemoteBalance.localBalance,this.balances.total=this.balances.lightning+this.balances.onchain,this.balances=Object.assign({},this.balances);const k=B.localRemoteBalance.localBalance?+B.localRemoteBalance.localBalance:0,FA=B.localRemoteBalance.remoteBalance?+B.localRemoteBalance.remoteBalance:0;this.channelBalances={localBalance:k,remoteBalance:FA,balancedness:+(1-Math.abs((k-FA)/(k+FA))).toFixed(3)},this.channelsStatus.active.capacity=B.localRemoteBalance.localBalance||0,this.channelsStatus.pending.capacity=B.localRemoteBalance.pendingBalance||0,this.channelsStatus.inactive.capacity=B.localRemoteBalance.inactiveBalance||0,this.logger.info(t),this.logger.info(B)})}onNavigateTo(t){this.router.navigateByUrl(t)}onsortChannelsBy(){"Balance Score"===this.sortField?(this.sortField="Capacity",this.activeChannelsCapacity=this.activeChannels.sort((t,B)=>{const k=+t.msatoshi_to_us+ +t.msatoshi_to_them,FA=+B.msatoshi_to_them+ +B.msatoshi_to_them;return k>FA?-1:k{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh),A.Y36(C.eX),A.Y36(e.v),A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-home"]],decls:3,vars:2,consts:[["fxLayout","column",4,"ngIf","ngIfElse"],["merchantDashboard",""],["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","mb-0"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["cols","10",3,"rowHeight"],[3,"colspan","rowspan",4,"ngFor","ngForOf"],[3,"colspan","rowspan"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4"],["fxLayoutAlign","space-between center"],[1,"mr-1",3,"icon"],["mat-icon-button","","class","more-button","aria-label","Toggle menu",3,"matMenuTriggerFor",4,"ngIf"],["xPosition","before",1,"dashboard-vert-menu"],["menuOperator","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngIf"],["fxLayout","column",3,"fxFlex","ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"balances","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"sortBy","channelBalances","activeChannels","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],[4,"ngSwitchDefault"],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",3,"matMenuTriggerFor"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"balances","errorMessage"],["fxFlex","100",3,"sortBy","channelBalances","activeChannels","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container","mb-0"],["cols","6",3,"rowHeight"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4",3,"ngClass"],[4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",3,"fxFlex","ngClass"],["fxFlex","100",3,"information",4,"ngSwitchCase"],["fxFlex","100",3,"direction","totalLiquidity","activeChannels","errorMessage",4,"ngSwitchCase"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start",4,"ngSwitchCase"],["menuMerchant","matMenu"],["fxFlex","100",3,"information"],["fxFlex","100",3,"direction","totalLiquidity","activeChannels","errorMessage"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start"],["fxLayout","column",1,"w-100","dashboard-tabs-group"],["label","Receive"],[1,"h-100",3,"calledFrom"],["label","Pay"],[3,"calledFrom"],[3,"disabled"],["mat-tab-label",""],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",2,"max-width","20px",3,"matMenuTriggerFor"],["menuTransactions","matMenu"]],template:function(t,B){if(1&t&&(A.YNc(0,ea,7,4,"div",0),A.YNc(1,ho,6,4,"ng-template",null,1,A.W1O)),2&t){const k=A.MAs(2);A.Q6J("ngIf",(null==B.selNode?null:B.selNode.userPersona)===B.userPersonaEnum.OPERATOR)("ngIfElse",k)}},directives:[ht.O5,Qt.xw,Qt.Wh,f.BN,g.Il,ht.sg,g.DX,w.a8,Qt.yH,w.dk,w.n5,Q.VK,Q.OP,w.dn,ht.mk,d.oO,ht.RF,ht.n9,ht.ED,F.lW,Q.p6,m.Hw,Y.pW,T,N,xA,uA,GA,st,yA.SP,yA.uX,nr,Sr,yA.uD],styles:[""]}),i})();var Co=St(9841),Qo=St(8012),qn=St(8377),Hn=St(7261),or=St(1125),pr=St(5615);const Mo=["form"],po=["formSweepAll"],Io=["stepper"];function Do(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Bitcoin address is required."),A.qZA())}function vo(i,U){1&i&&(A.TgZ(0,"mat-hint"),A._uU(1,"Amount replaced by UTXO balance"),A.qZA())}function mo(i,U){if(1&i&&(A.TgZ(0,"mat-error"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.amountError)}}function yo(i,U){if(1&i&&(A.TgZ(0,"mat-option",38),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t),A.xp6(1),A.Oqu(t)}}function xo(i,U){if(1&i&&(A.TgZ(0,"mat-option",38),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t.feeRateId),A.xp6(1),A.hij(" ",t.feeRateType," ")}}function Fo(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Fee Rate is required."),A.qZA())}function Yo(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-form-field",39),A.TgZ(1,"input",40,41),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw(2).customFeeRate=k}),A.qZA(),A.YNc(3,Fo,2,0,"mat-error",14),A.qZA()}if(2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngModel",t.customFeeRate)("step",.1)("min",0)("required","customperkb"===t.selFeeRate&&!t.flgMinConf),A.xp6(2),A.Q6J("ngIf","customperkb"===t.selFeeRate&&!t.flgMinConf&&!t.customFeeRate)}}function To(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Min Confirmation Blocks is required."),A.qZA())}function So(i,U){if(1&i&&(A.TgZ(0,"mat-option",38),A._uU(1),A.ALo(2,"number"),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t),A.xp6(1),A.hij("",A.lcZ(2,2,t.value)," Sats")}}function Uo(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",23),A.TgZ(1,"mat-expansion-panel",42),A.NdJ("closed",function(){return A.CHM(t),A.oxw(2).onAdvancedPanelToggle(!0)})("opened",function(){return A.CHM(t),A.oxw(2).onAdvancedPanelToggle(!1)}),A.TgZ(2,"mat-expansion-panel-header"),A.TgZ(3,"mat-panel-title"),A.TgZ(4,"span"),A._uU(5),A.qZA(),A.qZA(),A.qZA(),A.TgZ(6,"div",22),A.TgZ(7,"div",43),A.TgZ(8,"mat-form-field",44),A.TgZ(9,"mat-select",45),A.NdJ("selectionChange",function(k){return A.CHM(t),A.oxw(2).onUTXOSelectionChange(k)})("valueChange",function(k){return A.CHM(t),A.oxw(2).selUTXOs=k}),A.TgZ(10,"mat-select-trigger"),A._uU(11),A.ALo(12,"number"),A.qZA(),A.YNc(13,So,3,4,"mat-option",21),A.qZA(),A.qZA(),A.TgZ(14,"mat-slide-toggle",46),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw(2).flgUseAllBalance=k})("change",function(){return A.CHM(t),A.oxw(2).onUTXOAllBalanceChange()}),A._uU(15," Use selected UTXOs balance "),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw(2);A.xp6(5),A.Oqu(t.advancedTitle),A.xp6(4),A.Q6J("value",t.selUTXOs),A.xp6(2),A.AsE("",A.lcZ(12,7,t.totalSelectedUTXOAmount)," Sats (",t.selUTXOs.length>1?t.selUTXOs.length+" UTXOs":"1 UTXO",")"),A.xp6(2),A.Q6J("ngForOf",t.utxos),A.xp6(1),A.Q6J("ngModel",t.flgUseAllBalance)("disabled",t.selUTXOs.length<1)}}function Po(i,U){if(1&i&&(A.TgZ(0,"span"),A._uU(1),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Oqu(t.sendFundError)}}function zo(i,U){if(1&i&&(A.TgZ(0,"div",47),A._UZ(1,"fa-icon",48),A.YNc(2,Po,2,1,"span",14),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("icon",t.faExclamationTriangle),A.xp6(1),A.Q6J("ngIf",""!==t.sendFundError)}}const ia=function(i,U){return{"mr-6":i,"mr-2":U}};function Ro(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"form",9,10),A.NdJ("submit",function(){return A.CHM(t),A.oxw().onSendFunds()})("reset",function(){return A.CHM(t),A.oxw().resetData()}),A.TgZ(2,"mat-form-field",11),A.TgZ(3,"input",12,13),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().transaction.address=k}),A.qZA(),A.YNc(5,Do,2,0,"mat-error",14),A.qZA(),A.TgZ(6,"mat-form-field",15),A.TgZ(7,"input",16,17),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().transaction.satoshis=k}),A.qZA(),A.YNc(9,vo,2,0,"mat-hint",14),A.TgZ(10,"span",18),A._uU(11),A.qZA(),A.YNc(12,mo,2,1,"mat-error",14),A.qZA(),A.TgZ(13,"mat-form-field",19),A.TgZ(14,"mat-select",20),A.NdJ("selectionChange",function(k){return A.CHM(t),A.oxw().onAmountUnitChange(k)}),A.YNc(15,yo,2,2,"mat-option",21),A.qZA(),A.qZA(),A.TgZ(16,"div",22),A.TgZ(17,"div",23),A.TgZ(18,"div",24),A.TgZ(19,"mat-form-field",25),A.TgZ(20,"mat-select",26),A.NdJ("valueChange",function(k){return A.CHM(t),A.oxw().selFeeRate=k})("selectionChange",function(){return A.CHM(t),A.oxw().customFeeRate=null}),A.YNc(21,xo,2,2,"mat-option",21),A.qZA(),A.qZA(),A.YNc(22,Yo,4,5,"mat-form-field",27),A.qZA(),A.TgZ(23,"div",28),A.TgZ(24,"mat-checkbox",29),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().flgMinConf=k})("change",function(){A.CHM(t);const k=A.oxw();return k.flgMinConf?k.selFeeRate=null:k.minConfValue=null}),A.qZA(),A.TgZ(25,"mat-form-field",30),A.TgZ(26,"input",31,32),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().minConfValue=k}),A.qZA(),A.YNc(28,To,2,0,"mat-error",14),A.qZA(),A.qZA(),A.qZA(),A.YNc(29,Uo,16,9,"div",33),A._UZ(30,"div",22),A.YNc(31,zo,3,2,"div",34),A.TgZ(32,"div",35),A.TgZ(33,"button",36),A._uU(34,"Clear Fields"),A.qZA(),A.TgZ(35,"button",37),A._uU(36,"Send Funds"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw();A.xp6(3),A.Q6J("ngModel",t.transaction.address),A.xp6(2),A.Q6J("ngIf",!t.transaction.address),A.xp6(2),A.Q6J("ngModel",t.transaction.satoshis)("type",t.flgUseAllBalance?"text":"number")("step",100)("min",0)("disabled",t.flgUseAllBalance),A.xp6(2),A.Q6J("ngIf",t.flgUseAllBalance),A.xp6(2),A.hij(" ",t.selAmountUnit," "),A.xp6(1),A.Q6J("ngIf",!t.transaction.satoshis),A.xp6(2),A.Q6J("value",t.selAmountUnit)("disabled",t.flgUseAllBalance),A.xp6(1),A.Q6J("ngForOf",t.amountUnits),A.xp6(4),A.Q6J("fxFlex","customperkb"!==t.selFeeRate||t.flgMinConf?"100":"48"),A.xp6(1),A.Q6J("value",t.selFeeRate)("disabled",t.flgMinConf),A.xp6(1),A.Q6J("ngForOf",t.feeRateTypes),A.xp6(1),A.Q6J("ngIf","customperkb"===t.selFeeRate&&!t.flgMinConf),A.xp6(2),A.Q6J("ngModel",t.flgMinConf)("ngClass",A.WLB(28,ia,t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM,t.screenSize===t.screenSizeEnum.MD||t.screenSize===t.screenSizeEnum.LG||t.screenSize===t.screenSizeEnum.XL)),A.xp6(2),A.Q6J("ngModel",t.minConfValue)("step",1)("min",0)("required",t.flgMinConf)("disabled",!t.flgMinConf),A.xp6(2),A.Q6J("ngIf",t.flgMinConf&&!t.minConfValue),A.xp6(1),A.Q6J("ngIf",t.isCompatibleVersion),A.xp6(2),A.Q6J("ngIf",""!==t.sendFundError)}}function No(i,U){if(1&i&&A._uU(0),2&i){const t=A.oxw(3);A.Oqu(t.passwordFormLabel)}}function aa(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Password is required."),A.qZA())}function bo(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-step",53),A.TgZ(1,"form",71),A.YNc(2,No,1,1,"ng-template",65),A.TgZ(3,"div",0),A.TgZ(4,"mat-form-field",1),A._UZ(5,"input",72),A.YNc(6,aa,2,0,"mat-error",14),A.qZA(),A.qZA(),A.TgZ(7,"div",73),A.TgZ(8,"button",74),A.NdJ("click",function(){return A.CHM(t),A.oxw(2).onAuthenticate()}),A._uU(9,"Confirm"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw(2);A.Q6J("stepControl",t.passwordFormGroup)("editable",t.flgEditable),A.xp6(1),A.Q6J("formGroup",t.passwordFormGroup),A.xp6(5),A.Q6J("ngIf",null==t.passwordFormGroup.controls.password.errors?null:t.passwordFormGroup.controls.password.errors.required)}}function Lo(i,U){if(1&i&&A._uU(0),2&i){const t=A.oxw(2);A.Oqu(t.sendFundFormLabel)}}function Go(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Bitcoin address is required."),A.qZA())}function Ho(i,U){if(1&i&&(A.TgZ(0,"mat-option",38),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t.feeRateId),A.xp6(1),A.hij(" ",t.feeRateType," ")}}function Jo(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Fee Rate is required."),A.qZA())}function Oo(i,U){if(1&i&&(A.TgZ(0,"mat-form-field",39),A._UZ(1,"input",75),A.YNc(2,Jo,2,0,"mat-error",14),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("step",.1)("min",0),A.xp6(1),A.Q6J("ngIf","customperkb"===t.sendFundFormGroup.controls.selFeeRate.value&&!t.sendFundFormGroup.controls.flgMinConf.value&&!t.sendFundFormGroup.controls.customFeeRate.value)}}function ko(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Min Confirmation Blocks is required."),A.qZA())}function jo(i,U){if(1&i&&A._uU(0),2&i){const t=A.oxw(2);A.Oqu(t.confirmFormLabel)}}function Zo(i,U){if(1&i&&(A.TgZ(0,"span"),A._uU(1),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Oqu(t.sendFundError)}}function Ko(i,U){if(1&i&&(A.TgZ(0,"div",47),A._UZ(1,"fa-icon",48),A.YNc(2,Zo,2,1,"span",14),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("icon",t.faExclamationTriangle),A.xp6(1),A.Q6J("ngIf",""!==t.sendFundError)}}function Wo(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",49),A.TgZ(1,"mat-vertical-stepper",50,51),A.NdJ("selectionChange",function(k){return A.CHM(t),A.oxw().stepSelectionChanged(k)}),A.YNc(3,bo,10,4,"mat-step",52),A.TgZ(4,"mat-step",53),A.TgZ(5,"form",54),A.YNc(6,Lo,1,1,"ng-template",55),A.TgZ(7,"div",22),A.TgZ(8,"mat-form-field",1),A._UZ(9,"input",56),A.YNc(10,Go,2,0,"mat-error",14),A.qZA(),A.TgZ(11,"div",57),A.TgZ(12,"div",24),A.TgZ(13,"mat-form-field",25),A.TgZ(14,"mat-select",58),A.YNc(15,Ho,2,2,"mat-option",21),A.qZA(),A.qZA(),A.YNc(16,Oo,3,3,"mat-form-field",27),A.qZA(),A.TgZ(17,"div",28),A._UZ(18,"mat-checkbox",59),A.TgZ(19,"mat-form-field",30),A._UZ(20,"input",60),A.YNc(21,ko,2,0,"mat-error",14),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.TgZ(22,"div",61),A.TgZ(23,"button",62),A._uU(24,"Next"),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.TgZ(25,"mat-step",63),A.TgZ(26,"form",64),A.YNc(27,jo,1,1,"ng-template",65),A.TgZ(28,"div",49),A.TgZ(29,"div",66),A._UZ(30,"fa-icon",67),A.TgZ(31,"span"),A._uU(32,"You are about to sweep all funds from RTL. Are you sure?"),A.qZA(),A.qZA(),A.YNc(33,Ko,3,2,"div",34),A.TgZ(34,"div",61),A.TgZ(35,"button",68),A.NdJ("click",function(){return A.CHM(t),A.oxw().onSendFunds()}),A._uU(36,"Sweep All Funds"),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.TgZ(37,"div",69),A.TgZ(38,"button",70),A._uU(39),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw();A.xp6(1),A.Q6J("linear",!0),A.xp6(2),A.Q6J("ngIf",!t.appConfig.sso.rtlSSO),A.xp6(1),A.Q6J("stepControl",t.sendFundFormGroup)("editable",t.flgEditable),A.xp6(1),A.Q6J("formGroup",t.sendFundFormGroup),A.xp6(5),A.Q6J("ngIf",null==t.sendFundFormGroup.controls.transactionAddress.errors?null:t.sendFundFormGroup.controls.transactionAddress.errors.required),A.xp6(3),A.Q6J("fxFlex","customperkb"!==t.sendFundFormGroup.controls.selFeeRate.value||t.sendFundFormGroup.controls.flgMinConf.value?"100":"48"),A.xp6(2),A.Q6J("ngForOf",t.feeRateTypes),A.xp6(1),A.Q6J("ngIf","customperkb"===t.sendFundFormGroup.controls.selFeeRate.value&&!t.sendFundFormGroup.controls.flgMinConf.value),A.xp6(2),A.Q6J("ngClass",A.WLB(20,ia,t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM,t.screenSize===t.screenSizeEnum.MD||t.screenSize===t.screenSizeEnum.LG||t.screenSize===t.screenSizeEnum.XL)),A.xp6(2),A.Q6J("step",1)("min",0)("required",t.sendFundFormGroup.controls.flgMinConf.value),A.xp6(1),A.Q6J("ngIf",t.sendFundFormGroup.controls.flgMinConf.value&&!t.sendFundFormGroup.controls.minConfValue.value),A.xp6(4),A.Q6J("stepControl",t.confirmFormGroup),A.xp6(1),A.Q6J("formGroup",t.confirmFormGroup),A.xp6(4),A.Q6J("icon",t.faExclamationTriangle),A.xp6(3),A.Q6J("ngIf",""!==t.sendFundError),A.xp6(5),A.Q6J("mat-dialog-close",!1),A.xp6(1),A.Oqu(t.flgValidated?"Close":"Cancel")}}let oa=(()=>{class i{constructor(t,B,k,FA,pt,Ye,vn,Ie,fn,yB){this.dialogRef=t,this.data=B,this.logger=k,this.store=FA,this.commonService=pt,this.decimalPipe=Ye,this.actions=vn,this.formBuilder=Ie,this.rtlEffects=fn,this.snackBar=yB,this.faExclamationTriangle=E.eHv,this.sweepAll=!1,this.selNode={},this.addressTypes=[],this.utxos=[],this.selUTXOs=[],this.flgUseAllBalance=!1,this.totalSelectedUTXOAmount=null,this.selectedAddress=o._t[1],this.blockchainBalance={},this.information={},this.isCompatibleVersion=!1,this.newAddress="",this.transaction={},this.feeRateTypes=o.vn,this.selFeeRate="",this.customFeeRate=null,this.flgMinConf=!1,this.minConfValue=null,this.sendFundError="",this.fiatConversion=!1,this.amountUnits=o.uA,this.selAmountUnit=o.uA[0],this.currConvertorRate={},this.unitConversionValue=0,this.currencyUnitFormats=o.Xz,this.advancedTitle="Advanced Options",this.flgValidated=!1,this.flgEditable=!0,this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds",this.confirmFormLabel="Confirm sweep",this.amountError="Amount is Required.",this.screenSize="",this.screenSizeEnum=o.cu,this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.sweepAll=this.data.sweepAll,this.passwordFormGroup=this.formBuilder.group({hiddenPassword:["",[zA.kI.required]],password:["",[zA.kI.required]]}),this.sendFundFormGroup=this.formBuilder.group({transactionAddress:["",zA.kI.required],selFeeRate:[null],customFeeRate:[null],flgMinConf:[!1],minConfValue:[{value:null,disabled:!0}]}),this.confirmFormGroup=this.formBuilder.group({}),this.sendFundFormGroup.controls.flgMinConf.valueChanges.pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{t?(this.sendFundFormGroup.controls.selFeeRate.disable(),this.sendFundFormGroup.controls.selFeeRate.setValue(null),this.sendFundFormGroup.controls.minConfValue.reset(),this.sendFundFormGroup.controls.minConfValue.enable(),this.sendFundFormGroup.controls.minConfValue.setValidators([zA.kI.required]),this.sendFundFormGroup.controls.minConfValue.setValue(null)):(this.sendFundFormGroup.controls.selFeeRate.enable(),this.sendFundFormGroup.controls.selFeeRate.setValue(null),this.sendFundFormGroup.controls.minConfValue.setValue(null),this.sendFundFormGroup.controls.minConfValue.disable(),this.sendFundFormGroup.controls.minConfValue.setValidators(null),this.sendFundFormGroup.controls.minConfValue.setErrors(null))}),this.sendFundFormGroup.controls.selFeeRate.valueChanges.pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.sendFundFormGroup.controls.customFeeRate.setValue(null),this.sendFundFormGroup.controls.customFeeRate.reset(),this.sendFundFormGroup.controls.customFeeRate.setValidators("customperkb"!==t||this.sendFundFormGroup.controls.flgMinConf.value?null:[zA.kI.required])}),(0,Co.a)([this.store.select(qn.dT),this.store.select(qn.Yj)]).pipe((0,r.R)(this.unSubs[1])).subscribe(([t,B])=>{this.fiatConversion=t.settings.fiatConversion,this.amountUnits=t.settings.currencyUnits,this.appConfig=B}),this.store.select(l.W3).pipe((0,r.R)(this.unSubs[2])).subscribe(t=>{this.information=t,this.isCompatibleVersion=this.commonService.isVersionCompatible(this.information.version,"0.9.0")&&this.commonService.isVersionCompatible(this.information.api_version,"0.4.0")}),this.store.select(l.T4).pipe((0,r.R)(this.unSubs[3])).subscribe(t=>{this.utxos=this.commonService.sortAscByKey(t.utxos.filter(B=>"confirmed"===B.status),"value"),this.logger.info(t)}),this.actions.pipe((0,r.R)(this.unSubs[4]),(0,_A.h)(t=>t.type===o.sW.UPDATE_API_CALL_STATUS_CL||t.type===o.sW.SET_CHANNEL_TRANSACTION_RES_CL)).subscribe(t=>{t.type===o.sW.SET_CHANNEL_TRANSACTION_RES_CL&&(this.store.dispatch((0,eA.jW)({payload:"Fund Sent Successfully!"})),this.dialogRef.close()),t.type===o.sW.UPDATE_API_CALL_STATUS_CL&&t.payload.status===o.Bn.ERROR&&"SetChannelTransaction"===t.payload.action&&(this.sendFundError=t.payload.message)})}onAuthenticate(){if(!this.passwordFormGroup.controls.password.value)return!0;this.flgValidated=!1,this.store.dispatch((0,eA.QO)({payload:Qo(this.passwordFormGroup.controls.password.value).toString()})),this.rtlEffects.isAuthorizedRes.pipe((0,nn.q)(1)).subscribe(t=>{"ERROR"!==t?(this.passwordFormGroup.controls.hiddenPassword.setValue(this.passwordFormGroup.controls.password.value),this.stepper.next()):(this.dialogRef.close(),this.snackBar.open("Unauthorized User. Logging out from RTL."))})}onSendFunds(){if(this.sendFundError="",this.flgUseAllBalance&&(this.transaction.satoshis="all"),this.selUTXOs.length&&this.selUTXOs.length>0&&(this.transaction.utxos=[],this.selUTXOs.forEach(t=>this.transaction.utxos.push(t.txid+":"+t.output))),this.sweepAll){if(!this.sendFundFormGroup.controls.transactionAddress.value||""===this.sendFundFormGroup.controls.transactionAddress.value||this.sendFundFormGroup.controls.flgMinConf.value&&(!this.sendFundFormGroup.controls.minConfValue.value||this.sendFundFormGroup.controls.minConfValue.value<=0)||"customperkb"===this.selFeeRate&&!this.flgMinConf&&!this.customFeeRate)return!0;this.transaction.satoshis="all",this.transaction.address=this.sendFundFormGroup.controls.transactionAddress.value,this.sendFundFormGroup.controls.flgMinConf.value?(delete this.transaction.feeRate,this.transaction.minconf=this.sendFundFormGroup.controls.flgMinConf.value?this.sendFundFormGroup.controls.minConfValue.value:null):(delete this.transaction.minconf,this.transaction.feeRate="customperkb"===this.sendFundFormGroup.controls.selFeeRate.value&&!this.sendFundFormGroup.controls.flgMinConf.value&&this.sendFundFormGroup.controls.customFeeRate.value?1e3*this.sendFundFormGroup.controls.customFeeRate.value+"perkb":this.sendFundFormGroup.controls.selFeeRate.value),delete this.transaction.utxos,this.store.dispatch((0,WA.Wi)({payload:this.transaction}))}else{if(this.transaction.minconf=this.flgMinConf?this.minConfValue:null,this.transaction.feeRate="customperkb"===this.selFeeRate&&!this.flgMinConf&&this.customFeeRate?1e3*this.customFeeRate+"perkb":this.selFeeRate,!this.transaction.address||""===this.transaction.address||!this.transaction.satoshis||+this.transaction.satoshis<=0||this.flgMinConf&&(!this.transaction.minconf||this.transaction.minconf<=0)||"customperkb"===this.selFeeRate&&!this.flgMinConf&&!this.customFeeRate)return!0;this.transaction.satoshis&&"all"!==this.transaction.satoshis&&this.selAmountUnit!==o.NT.SATS?this.commonService.convertCurrency(+this.transaction.satoshis,this.selAmountUnit===this.amountUnits[2]?o.NT.OTHER:this.selAmountUnit,o.NT.SATS,this.amountUnits[2],this.fiatConversion).pipe((0,r.R)(this.unSubs[5])).subscribe({next:t=>{this.transaction.satoshis=t[o.NT.SATS],this.selAmountUnit=o.NT.SATS,this.store.dispatch((0,WA.Wi)({payload:this.transaction}))},error:t=>{this.transaction.satoshis=null,this.selAmountUnit=o.NT.SATS,this.amountError="Conversion Error: "+t}}):this.store.dispatch((0,WA.Wi)({payload:this.transaction}))}}resetData(){this.sendFundError="",this.transaction={},this.flgMinConf=!1,this.totalSelectedUTXOAmount=null,this.selUTXOs=[],this.flgUseAllBalance=!1,this.selAmountUnit=o.uA[0]}stepSelectionChanged(t){switch(this.sendFundError="",t.selectedIndex){case 0:default:this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds";break;case 1:this.passwordFormLabel="User authenticated successfully",this.sendFundFormLabel="Sweep funds";break;case 2:this.passwordFormLabel="User authenticated successfully",this.sendFundFormLabel="Sweep funds | Address: "+this.sendFundFormGroup.controls.transactionAddress.value+(this.sendFundFormGroup.controls.flgMinConf.value?" | Min Confirmation Blocks: "+this.sendFundFormGroup.controls.minConfValue.value:this.sendFundFormGroup.controls.selFeeRate.value?" | Fee Rate: "+this.feeRateTypes.find(B=>B.feeRateId===this.sendFundFormGroup.controls.selFeeRate.value).feeRateType:"")}t.selectedIndex0?(this.totalSelectedUTXOAmount=this.selUTXOs.reduce((k,FA)=>(B.value=k.value+FA.value,B)).value,this.flgUseAllBalance&&this.onUTXOAllBalanceChange()):(this.totalSelectedUTXOAmount=null,this.transaction.satoshis=null,this.flgUseAllBalance=!1)}onUTXOAllBalanceChange(){this.flgUseAllBalance?(this.transaction.satoshis=this.totalSelectedUTXOAmount,this.selAmountUnit=o.uA[0]):this.transaction.satoshis=null}onAmountUnitChange(t){const B=this,k=this.selAmountUnit===this.amountUnits[2]?o.NT.OTHER:this.selAmountUnit;let FA=t.value===this.amountUnits[2]?o.NT.OTHER:t.value;this.transaction.satoshis&&this.selAmountUnit!==t.value&&this.commonService.convertCurrency(+this.transaction.satoshis,k,FA,this.amountUnits[2],this.fiatConversion).pipe((0,r.R)(this.unSubs[6])).subscribe({next:pt=>{this.selAmountUnit=t.value,B.transaction.satoshis=B.decimalPipe.transform(pt[FA],B.currencyUnitFormats[FA]).replace(/,/g,"")},error:pt=>{B.transaction.satoshis=null,this.amountError="Conversion Error: "+pt,this.selAmountUnit=k,FA=k}})}onAdvancedPanelToggle(t){this.advancedTitle=t&&this.selUTXOs.length&&this.selUTXOs.length>0?"Advanced Options | Selected UTXOs: "+this.selUTXOs.length+" | Selected UTXO Amount: "+this.decimalPipe.transform(this.totalSelectedUTXOAmount)+" Sats":"Advanced Options"}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(OA.so),A.Y36(OA.WI),A.Y36(h.mQ),A.Y36(u.yh),A.Y36(e.v),A.Y36(ht.JJ),A.Y36(C.eX),A.Y36(zA.qu),A.Y36(at.V),A.Y36(Hn.ux))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-on-chain-send-modal"]],viewQuery:function(t,B){if(1&t&&(A.Gf(Mo,7),A.Gf(po,5),A.Gf(Io,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.form=k.first),A.iGM(k=A.CRH())&&(B.formSweepAll=k.first),A.iGM(k=A.CRH())&&(B.stepper=k.first)}},decls:12,vars:4,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100","class","overflow-x-hidden",3,"submit","reset",4,"ngIf","ngIfElse"],["sweepAllBlock",""],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100",1,"overflow-x-hidden",3,"submit","reset"],["form","ngForm"],["fxFlex","55"],["matInput","","autoFocus","","placeholder","Bitcoin Address","tabindex","1","name","address","required","",3,"ngModel","ngModelChange"],["address","ngModel"],[4,"ngIf"],["fxFlex","30"],["matInput","","placeholder","Amount","name","amount","tabindex","2","required","",3,"ngModel","type","step","min","disabled","ngModelChange"],["amount","ngModel"],["matSuffix",""],["fxFlex","10","fxLayoutAlign","start end"],["tabindex","3","required","","name","amountUnit",3,"value","disabled","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayoutAlign.gt-sm","space-between center","fxLayout.gt-sm","row wrap"],["fxFlex","48","fxLayoutAlign","space-between end"],["fxLayoutAlign","start center",3,"fxFlex"],["tabindex","4","placeholder","Fee Rate",3,"value","disabled","valueChange","selectionChange"],["fxFlex","48","fxLayoutAlign","end center",4,"ngIf"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["fxFlex","2","tabindex","5","color","primary","name","flgMinConf","fxLayoutAlign","stretch start",3,"ngModel","ngClass","ngModelChange","change"],["fxFlex","98"],["matInput","","placeholder","Min Confirmation Blocks","type","number","name","blocks","tabindex","8",3,"ngModel","step","min","required","disabled","ngModelChange"],["blocks","ngModel"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayoutAlign.gt-sm","space-between center","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["mat-button","","color","primary","type","submit","tabindex","8"],[3,"value"],["fxFlex","48","fxLayoutAlign","end center"],["matInput","","placeholder","Fee Rate (Sats/vB)","type","number","name","custFeeRate","tabindex","4",3,"ngModel","step","min","required","ngModelChange"],["custFeeRate","ngModel"],["fxLayout","column","fxFlex","100","expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","35","fxLayoutAlign","start end"],["tabindex","8","placeholder","Coin Selection","multiple","",3,"value","selectionChange","valueChange"],["fxFlex","60","tabindex","9","color","primary","name","flgUseAllBalance","matTooltip","Use selected UTXOs balance as the amount to be sent. Final amount sent will be less the mining fee.","matTooltipPosition","above",3,"ngModel","disabled","ngModelChange","change"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl","editable"],["fxLayout","column",1,"my-1","pr-1",3,"formGroup"],["matStepLabel","","disabled","true"],["matInput","","formControlName","transactionAddress","placeholder","Bitcoin Address","tabindex","4","name","address","required",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap","fxFlex","100","fxLayoutAlign.gt-sm","space-between center"],["tabindex","4","placeholder","Fee Rate","formControlName","selFeeRate"],["fxFlex","2","tabindex","5","color","primary","formControlName","flgMinConf","fxLayoutAlign","stretch start",3,"ngClass"],["matInput","","formControlName","minConfValue","placeholder","Min Confirmation Blocks","type","number","name","blocks","tabindex","8",3,"step","min","required"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-button","","color","primary","tabindex","8","type","default","matStepperNext",""],[3,"stepControl"],["fxLayout","column","fxLayoutAlign","start",1,"my-1","pr-1",3,"formGroup"],["matStepLabel",""],["fxFlex","100",1,"w-100","alert","alert-warn"],[1,"mt-1","mr-1","alert-icon",3,"icon"],["mat-button","","color","primary","tabindex","9","type","button",3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxLayout","column","fxLayoutAlign","space-between",1,"my-1","pr-1",3,"formGroup"],["autoFocus","","matInput","","placeholder","Password","type","password","tabindex","1","formControlName","password","required",""],["fxLayout","row",1,"mt-2"],["mat-button","","color","primary","tabindex","3","type","default",3,"click"],["matInput","","formControlName","customFeeRate","placeholder","Fee Rate (Sats/vB)","type","number","name","custFeeRate","tabindex","4",3,"step","min"]],template:function(t,B){if(1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-card-header",2),A.TgZ(3,"div",3),A.TgZ(4,"span",4),A._uU(5),A.qZA(),A.qZA(),A.TgZ(6,"button",5),A._uU(7,"X"),A.qZA(),A.qZA(),A.TgZ(8,"mat-card-content",6),A.YNc(9,Ro,37,31,"form",7),A.qZA(),A.qZA(),A.qZA(),A.YNc(10,Wo,40,23,"ng-template",null,8,A.W1O)),2&t){const k=A.MAs(11);A.xp6(5),A.Oqu(B.sweepAll?"Sweep All Funds":"Send Funds"),A.xp6(1),A.Q6J("mat-dialog-close",!1),A.xp6(3),A.Q6J("ngIf",!B.sweepAll)("ngIfElse",k)}},directives:[Qt.xw,Qt.yH,w.dk,Qt.Wh,F.lW,OA.ZT,w.dn,ht.O5,zA._Y,zA.JL,zA.F,V.KE,ot.Nt,zA.Fj,It.h,zA.Q7,zA.JJ,zA.On,dt.q,V.R9,vt.gD,ht.sg,tt.oG,ht.mk,d.oO,zA.wV,zA.qQ,V.TO,V.bx,G.ey,or.ib,or.yz,or.yK,vt.$L,Pt.Rr,aA.gM,f.BN,pr.Vq,pr.C0,zA.sg,pr.VY,zA.u,pr.Ic],pipes:[ht.JJ],styles:[""]}),i})();var re=St(1203);function Vo(i,U){1&i&&A._UZ(0,"mat-progress-bar",27)}function li(i,U){1&i&&(A.TgZ(0,"th",28),A._uU(1," Transaction ID "),A.qZA())}function Bi(i,U){1&i&&(A.TgZ(0,"span",36),A.TgZ(1,"mat-icon",37),A._uU(2,"warning"),A.qZA(),A.qZA())}function Ur(i,U){if(1&i&&(A.TgZ(0,"span"),A.YNc(1,Bi,3,0,"span",35),A.qZA()),2&i){const t=A.oxw().$implicit;A.oxw();const B=A.MAs(32);A.xp6(1),A.Q6J("ngIf",t.value<1e3)("ngIfElse",B)}}function fr(i,U){1&i&&A._UZ(0,"span",38)}function Ri(i,U){if(1&i&&(A._UZ(0,"span",39),A.ALo(1,"titlecase")),2&i){const t=A.oxw().$implicit;A.s9C("matTooltip",A.lcZ(1,1,t.status))}}const Xo=function(i){return{"max-width":i}};function qo(i,U){if(1&i&&(A.TgZ(0,"td",29),A.TgZ(1,"span",30),A.YNc(2,Ur,2,2,"span",31),A.YNc(3,fr,1,0,"span",32),A.YNc(4,Ri,2,3,"span",33),A.TgZ(5,"span",34),A._uU(6),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.xp6(1),A.Q6J("ngStyle",A.VKq(5,Xo,B.screenSize===B.screenSizeEnum.XS?"10rem":"50rem")),A.xp6(1),A.Q6J("ngIf",B.numDustUTXOs>0&&!B.isDustUTXO),A.xp6(1),A.Q6J("ngIf","confirmed"===t.status),A.xp6(1),A.Q6J("ngIf","confirmed"!==t.status),A.xp6(2),A.Oqu(t.txid)}}function _o(i,U){1&i&&(A.TgZ(0,"th",40),A._uU(1," Output "),A.qZA())}function Pr(i,U){if(1&i&&(A.TgZ(0,"td",29),A.TgZ(1,"span",41),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.lcZ(3,1,null==t?null:t.output)," ")}}function zr(i,U){1&i&&(A.TgZ(0,"th",40),A._uU(1," Value (Sats) "),A.qZA())}function Ni(i,U){if(1&i&&(A.TgZ(0,"span",41),A._uU(1),A.ALo(2,"number"),A.qZA()),2&i){const t=A.oxw().$implicit;A.xp6(1),A.Oqu(A.lcZ(2,1,t.value))}}function bi(i,U){if(1&i&&(A.TgZ(0,"span",44),A._uU(1),A.ALo(2,"number"),A.qZA()),2&i){const t=A.oxw().$implicit;A.xp6(1),A.hij("(",A.lcZ(2,1,-1*t.value),")")}}function Li(i,U){if(1&i&&(A.TgZ(0,"td",29),A.YNc(1,Ni,3,3,"span",42),A.YNc(2,bi,3,3,"span",43),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Q6J("ngIf",t.value>0||0===t.value),A.xp6(1),A.Q6J("ngIf",t.value<0)}}function $o(i,U){1&i&&(A.TgZ(0,"th",40),A._uU(1," Blockheight "),A.qZA())}function sa(i,U){if(1&i&&(A.TgZ(0,"td",29),A.TgZ(1,"span",41),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.lcZ(3,1,null==t?null:t.blockheight)," ")}}function As(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",45),A.TgZ(1,"div",46),A.TgZ(2,"mat-select",47),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",48),A.NdJ("click",function(){return A.CHM(t),A.oxw().onDownloadCSV()}),A._uU(5,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}function ts(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",49),A.TgZ(1,"button",50),A.NdJ("click",function(k){const pt=A.CHM(t).$implicit;return A.oxw().onUTXOClick(pt,k)}),A._uU(2,"View Info"),A.qZA(),A.qZA()}}function es(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No utxos available."),A.qZA())}function ns(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting utxos..."),A.qZA())}function rs(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.errorMessage)}}function ca(i,U){if(1&i&&(A.TgZ(0,"td",51),A.YNc(1,es,2,0,"p",31),A.YNc(2,ns,2,0,"p",31),A.YNc(3,rs,2,1,"p",31),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngIf",(!(null!=t.listUTXOs&&t.listUTXOs.data)||(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.listUTXOs&&t.listUTXOs.data)||(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.listUTXOs&&t.listUTXOs.data)||(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.ERROR)}}const is=function(i){return{"display-none":i}};function as(i,U){if(1&i&&A._UZ(0,"tr",52),2&i){const t=A.oxw();A.Q6J("ngClass",A.VKq(1,is,(null==t.listUTXOs?null:t.listUTXOs.data)&&(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)>0))}}function Ir(i,U){1&i&&A._UZ(0,"tr",53)}function Nt(i,U){1&i&&A._UZ(0,"tr",54)}function ui(i,U){1&i&&A._UZ(0,"mat-icon",37)}const fi=function(i){return{"overflow-auto error-border":i,"overflow-auto":!0}},Dr=function(){return["no_utxo"]};let ga=(()=>{class i{constructor(t,B,k){this.logger=t,this.commonService=B,this.store=k,this.numDustUTXOs=0,this.isDustUTXO=!1,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["txid","value","actions"]):this.screenSize===o.cu.SM||this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["txid","output","value","blockheight","actions"]):(this.flgSticky=!0,this.displayedColumns=["txid","output","value","blockheight","actions"])}ngOnInit(){this.store.select(l.T4).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.logger.info(t)})}ngAfterViewInit(){this.utxos&&this.utxos.length>0&&this.sort&&this.paginator&&this.loadUTXOsTable(this.utxos)}ngOnChanges(){this.utxos&&this.utxos.length>0&&this.loadUTXOsTable(this.utxos)}applyFilter(){this.listUTXOs.filter=this.selFilter.trim().toLowerCase()}onUTXOClick(t,B){const k=[[{key:"txid",value:t.txid,title:"Transaction ID",width:100}],[{key:"output",value:t.output,title:"Output",width:50,type:o.Gi.NUMBER},{key:"value",value:t.value,title:"Value (Sats)",width:50,type:o.Gi.NUMBER}],[{key:"status",value:this.commonService.titleCase(t.status),title:"Status",width:50,type:o.Gi.STRING},{key:"blockheight",value:t.blockheight,title:"Blockheight",width:50,type:o.Gi.NUMBER}],[{key:"address",value:t.address,title:"Address",width:100}]];this.store.dispatch((0,eA.qR)({payload:{data:{type:o.n_.INFORMATION,alertTitle:"UTXO Information",message:k}}}))}loadUTXOsTable(t){this.listUTXOs=new SA.by([...t]),this.listUTXOs.sortingDataAccessor=(B,k)=>B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null,this.listUTXOs.sort=this.sort,this.listUTXOs.filterPredicate=(B,k)=>JSON.stringify(B).toLowerCase().includes(k),this.listUTXOs.paginator=this.paginator,this.applyFilter(),this.logger.info(this.listUTXOs)}onDownloadCSV(){this.listUTXOs.data&&this.listUTXOs.data.length>0&&this.commonService.downloadFile(this.listUTXOs.data,"UTXOs")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(e.v),A.Y36(u.yh))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-on-chain-utxos"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},inputs:{numDustUTXOs:"numDustUTXOs",isDustUTXO:"isDustUTXO",utxos:"utxos"},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("UTXOs")}]),A.TTD],decls:33,vars:14,consts:[["fxLayout","row wrap","fxLayoutAlign","start start","fxLayout.gt-sm","column","fxFlex","100","fxLayoutAlign.gt-sm","start stretch",1,"padding-gap-x-large"],["fxLayout","column","fxLayout.gt-xs","row wrap","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start start"],["fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","txid"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","output"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","value"],["matColumnDef","blockheight"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_utxo"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["emptySpace",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["fxLayout","row",1,"ellipsis-parent",3,"ngStyle"],[4,"ngIf"],["class","dot green","matTooltip","Confirmed","matTooltipPosition","right",4,"ngIf"],["class","dot yellow","matTooltipPosition","right",3,"matTooltip",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Risk of dust attack","matTooltipPosition","right",4,"ngIf","ngIfElse"],["matTooltip","Risk of dust attack","matTooltipPosition","right"],["fxLayoutAlign","start center","color","warn",1,"mr-1"],["matTooltip","Confirmed","matTooltipPosition","right",1,"dot","green"],["matTooltipPosition","right",1,"dot","yellow",3,"matTooltip"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["fxLayoutAlign","end center",4,"ngIf"],["fxLayoutAlign","end center","class","red",4,"ngIf"],["fxLayoutAlign","end center",1,"red"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A._UZ(2,"div",2),A.TgZ(3,"mat-form-field",3),A.TgZ(4,"input",4),A.NdJ("keyup",function(){return B.applyFilter()})("ngModelChange",function(FA){return B.selFilter=FA}),A.qZA(),A.qZA(),A.qZA(),A.TgZ(5,"div",5),A.TgZ(6,"div",6),A.YNc(7,Vo,1,0,"mat-progress-bar",7),A.TgZ(8,"table",8,9),A.ynx(10,10),A.YNc(11,li,2,0,"th",11),A.YNc(12,qo,7,7,"td",12),A.BQk(),A.ynx(13,13),A.YNc(14,_o,2,0,"th",14),A.YNc(15,Pr,4,3,"td",12),A.BQk(),A.ynx(16,15),A.YNc(17,zr,2,0,"th",14),A.YNc(18,Li,3,2,"td",12),A.BQk(),A.ynx(19,16),A.YNc(20,$o,2,0,"th",14),A.YNc(21,sa,4,3,"td",12),A.BQk(),A.ynx(22,17),A.YNc(23,As,6,0,"th",18),A.YNc(24,ts,3,0,"td",19),A.BQk(),A.ynx(25,20),A.YNc(26,ca,4,3,"td",21),A.BQk(),A.YNc(27,as,1,3,"tr",22),A.YNc(28,Ir,1,0,"tr",23),A.YNc(29,Nt,1,0,"tr",24),A.qZA(),A._UZ(30,"mat-paginator",25),A.qZA(),A.qZA(),A.qZA(),A.YNc(31,ui,1,0,"ng-template",null,26,A.W1O)),2&t&&(A.xp6(4),A.Q6J("ngModel",B.selFilter),A.xp6(3),A.Q6J("ngIf",(null==B.apiCallStatus?null:B.apiCallStatus.status)===B.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",B.listUTXOs)("ngClass",A.VKq(11,fi,""!==B.errorMessage)),A.xp6(19),A.Q6J("matFooterRowDef",A.DdM(13,Dr)),A.xp6(1),A.Q6J("matHeaderRowDef",B.displayedColumns)("matHeaderRowDefSticky",B.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",B.displayedColumns),A.xp6(1),A.Q6J("pageSize",B.pageSize)("pageSizeOptions",B.pageSizeOptions)("showFirstLastButtons",B.screenSize!==B.screenSizeEnum.XS))},directives:[Qt.xw,Qt.Wh,Qt.yH,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,gA.$V,ht.O5,SA.BZ,lt.YE,ht.mk,d.oO,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,ft.NW,Y.pW,SA.ge,lt.nU,SA.ev,ht.PC,d.Zl,aA.gM,m.Hw,vt.gD,vt.$L,G.ey,F.lW,SA.yh,SA.Q2,SA.XQ,SA.Gk],pipes:[ht.rS,ht.JJ],styles:[".mat-column-txid[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-txid[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),i})();var Rr=St(7544);function os(i,U){if(1&i&&(A.TgZ(0,"span",5),A._uU(1,"UTXOs"),A.qZA()),2&i){const t=A.oxw();A.s9C("matBadge",t.numUtxos)}}function la(i,U){if(1&i&&(A.TgZ(0,"span",5),A._uU(1,"Dust UTXOs"),A.qZA()),2&i){const t=A.oxw();A.s9C("matBadge",t.numDustUtxos)}}let ss=(()=>{class i{constructor(t,B){this.logger=t,this.store=B,this.selectedTableIndex=0,this.selectedTableIndexChange=new A.vpe,this.utxos=[],this.numUtxos=0,this.dustUtxos=[],this.numDustUtxos=0,this.unSubs=[new c.x,new c.x]}ngOnInit(){this.store.select(l.T4).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{t.utxos&&t.utxos.length>0&&(this.utxos=t.utxos,this.numUtxos=this.utxos.length,this.dustUtxos=t.utxos.filter(B=>+B.value<1e3),this.numDustUtxos=this.dustUtxos.length),t.utxos&&t.utxos.length>0&&(this.utxos=t.utxos,this.numUtxos=this.utxos.length),this.logger.info(t)})}onSelectedIndexChanged(t){this.selectedTableIndexChange.emit(t)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-utxo-tables"]],inputs:{selectedTableIndex:"selectedTableIndex"},outputs:{selectedTableIndexChange:"selectedTableIndexChange"},decls:8,vars:7,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"bordered-box"],[3,"selectedIndex","selectedIndexChange"],["mat-tab-label",""],["xLayout","row","fxFlex","100",3,"utxos","numDustUTXOs","isDustUTXO"],["fxLayout","row","fxFlex","100",3,"utxos","numDustUTXOs","isDustUTXO"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"mat-tab-group",1),A.NdJ("selectedIndexChange",function(FA){return B.onSelectedIndexChanged(FA)}),A.TgZ(2,"mat-tab"),A.YNc(3,os,2,1,"ng-template",2),A._UZ(4,"rtl-cl-on-chain-utxos",3),A.qZA(),A.TgZ(5,"mat-tab"),A.YNc(6,la,2,1,"ng-template",2),A._UZ(7,"rtl-cl-on-chain-utxos",4),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(1),A.Q6J("selectedIndex",B.selectedTableIndex),A.xp6(3),A.Q6J("utxos",B.utxos)("numDustUTXOs",B.numDustUtxos)("isDustUTXO",!1),A.xp6(3),A.Q6J("utxos",B.dustUtxos)("numDustUTXOs",B.numDustUtxos)("isDustUTXO",!0))},directives:[Qt.xw,Qt.yH,Qt.Wh,yA.SP,yA.uX,yA.uD,ga,Rr.k],styles:[""]}),i})();const jr=function(i,U){return[i,U]};function Ei(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",12),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().activeLink=null==FA?null:FA.link}),A._uU(1),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw();A.Q6J("active",B.activeLink===(null==t?null:t.link))("routerLink",A.WLB(3,jr,null==t?null:t.link,null==B.selectedTable?null:B.selectedTable.name)),A.xp6(1),A.Oqu(null==t?null:t.name)}}let cs=(()=>{class i{constructor(t,B,k){this.store=t,this.router=B,this.activatedRoute=k,this.selNode={},this.faExchangeAlt=E.Ssp,this.faChartPie=E.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"receive",name:"Receive"},{link:"send",name:"Send"},{link:"sweep",name:"Sweep All"}],this.activeLink=this.links[0].link,this.tables=[{id:0,name:"utxos"},{id:1,name:"dustUtxos"}],this.selectedTable=this.tables[0],this.unSubs=[new c.x,new c.x,new c.x,new c.x]}ngOnInit(){const t=this.links.find(B=>this.router.url.includes(B.link));this.activeLink=t?t.link:this.links[0].link,this.selectedTable=this.tables.find(B=>B.name===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(B=>B instanceof Ae.Av)).subscribe(B=>{const k=this.links.find(FA=>B.urlAfterRedirects.includes(FA.link));this.activeLink=k?k.link:this.links[0].link,this.selectedTable=this.tables.find(FA=>FA.name===B.urlAfterRedirects.substring(B.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select(l.Jo).pipe((0,r.R)(this.unSubs[1])).subscribe(B=>{this.selNode=B}),this.store.select(l.Rn).pipe((0,r.R)(this.unSubs[2])).subscribe(B=>{this.balances=[{title:"Total Balance",dataValue:B.balance.totalBalance||0},{title:"Confirmed",dataValue:B.balance.confBalance},{title:"Unconfirmed",dataValue:B.balance.unconfBalance}]})}openSendFundsModal(t){this.store.dispatch((0,eA.qR)({payload:{data:{sweepAll:t,component:oa}}}))}onSelectedTableIndexChanged(t){this.selectedTable=this.tables.find(B=>B.id===t),this.router.navigate(["./",this.activeLink,this.selectedTable.name],{relativeTo:this.activatedRoute})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(u.yh),A.Y36(Ae.F0),A.Y36(Ae.gz))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-on-chain"]],decls:21,vars:5,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["fxLayout","row","fxFlex","100",3,"selectedTableIndex","selectedTableIndexChange"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A._UZ(1,"fa-icon",1),A.TgZ(2,"span",2),A._uU(3,"On-chain Balance"),A.qZA(),A.qZA(),A.TgZ(4,"div",3),A.TgZ(5,"mat-card"),A.TgZ(6,"mat-card-content",4),A._UZ(7,"rtl-currency-unit-converter",5),A.qZA(),A.qZA(),A.qZA(),A.TgZ(8,"div",0),A._UZ(9,"fa-icon",1),A.TgZ(10,"span",2),A._uU(11,"On-chain Transactions"),A.qZA(),A.qZA(),A.TgZ(12,"div",6),A.TgZ(13,"mat-card"),A.TgZ(14,"mat-card-content",4),A.TgZ(15,"nav",7),A.YNc(16,Ei,2,6,"div",8),A.qZA(),A.TgZ(17,"div",9),A._UZ(18,"router-outlet"),A.qZA(),A.TgZ(19,"div",10),A.TgZ(20,"rtl-cl-utxo-tables",11),A.NdJ("selectedTableIndexChange",function(FA){return B.onSelectedTableIndexChanged(FA)}),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(1),A.Q6J("icon",B.faChartPie),A.xp6(6),A.Q6J("values",B.balances),A.xp6(2),A.Q6J("icon",B.faExchangeAlt),A.xp6(7),A.Q6J("ngForOf",B.links),A.xp6(4),A.Q6J("selectedTableIndex",null==B.selectedTable?null:B.selectedTable.id))},directives:[Qt.xw,Qt.Wh,f.BN,w.a8,w.dn,re.D,yA.BU,ht.sg,Qt.yH,Ae.lC,ss,yA.Nj,Ae.rH],styles:[""]}),i})();function Ba(i,U){if(1&i&&(A.TgZ(0,"span",10),A._uU(1,"Channels"),A.qZA()),2&i){const t=A.oxw();A.s9C("matBadge",t.activeChannels)}}function ua(i,U){if(1&i&&(A.TgZ(0,"span",10),A._uU(1,"Peers"),A.qZA()),2&i){const t=A.oxw();A.s9C("matBadge",t.activePeers)}}let fa=(()=>{class i{constructor(t,B,k){this.store=t,this.logger=B,this.router=k,this.activePeers=0,this.activeChannels=0,this.faUsers=E.FVb,this.faChartPie=E.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"channels",name:"Channels"},{link:"peers",name:"Peers"}],this.activeLink=0,this.unSubs=[new c.x,new c.x,new c.x,new c.x]}ngOnInit(){this.activeLink=this.links.findIndex(t=>t.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(t=>t instanceof Ae.Av)).subscribe(t=>{this.activeLink=this.links.findIndex(B=>B.link===t.urlAfterRedirects.substring(t.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select(l.ZW).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.activeChannels=t.activeChannels.length||0}),this.store.select(l.Wi).pipe((0,r.R)(this.unSubs[2])).subscribe(t=>{this.activePeers=t.peers&&t.peers.length?t.peers.length:0,this.logger.info(t)}),this.store.select(l.Rn).pipe((0,r.R)(this.unSubs[3])).subscribe(t=>{this.balances=[{title:"Total Balance",dataValue:t.balance.totalBalance||0},{title:"Confirmed",dataValue:t.balance.confBalance},{title:"Unconfirmed",dataValue:t.balance.unconfBalance}]})}onSelectedTabChange(t){this.router.navigateByUrl("/cl/connections/"+this.links[t.index].link)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(u.yh),A.Y36(h.mQ),A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-connections"]],decls:22,vars:4,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A._UZ(1,"fa-icon",1),A.TgZ(2,"span",2),A._uU(3,"On-chain Balance"),A.qZA(),A.qZA(),A.TgZ(4,"div",3),A.TgZ(5,"mat-card"),A.TgZ(6,"mat-card-content",4),A._UZ(7,"rtl-currency-unit-converter",5),A.qZA(),A.qZA(),A.qZA(),A.TgZ(8,"div",0),A._UZ(9,"fa-icon",1),A.TgZ(10,"span",2),A._uU(11,"Connections"),A.qZA(),A.qZA(),A.TgZ(12,"div",6),A.TgZ(13,"mat-card"),A.TgZ(14,"mat-card-content",4),A.TgZ(15,"mat-tab-group",7),A.NdJ("selectedIndexChange",function(FA){return B.activeLink=FA})("selectedTabChange",function(FA){return B.onSelectedTabChange(FA)}),A.TgZ(16,"mat-tab"),A.YNc(17,Ba,2,1,"ng-template",8),A.qZA(),A.TgZ(18,"mat-tab"),A.YNc(19,ua,2,1,"ng-template",8),A.qZA(),A.qZA(),A.TgZ(20,"div",9),A._UZ(21,"router-outlet"),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(1),A.Q6J("icon",B.faChartPie),A.xp6(6),A.Q6J("values",B.balances),A.xp6(2),A.Q6J("icon",B.faUsers),A.xp6(6),A.Q6J("selectedIndex",B.activeLink))},directives:[Qt.xw,Qt.Wh,f.BN,w.a8,w.dn,re.D,yA.SP,yA.uX,yA.uD,Qt.yH,Ae.lC,Rr.k],styles:[""]}),i})();function gs(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",11),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().activeLink=FA.link}),A._uU(1),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw();A.s9C("routerLink",t.link),A.Q6J("active",B.activeLink===t.link),A.xp6(1),A.Oqu(t.name)}}let ls=(()=>{class i{constructor(t,B,k){this.logger=t,this.store=B,this.router=k,this.faExchangeAlt=E.Ssp,this.faChartPie=E.OS1,this.currencyUnits=[],this.routerUrl="",this.balances=[{title:"Local Capacity",dataValue:0,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:0,tooltip:"Amount you can receive"}],this.selNode={},this.links=[{link:"payments",name:"Payments"},{link:"invoices",name:"Invoices"}],this.activeLink=this.links[0].link,this.unSubs=[new c.x,new c.x,new c.x,new c.x]}ngOnInit(){const t=this.links.find(B=>this.router.url.includes(B.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(B=>B instanceof Ae.Av)).subscribe(B=>{const k=this.links.find(FA=>B.urlAfterRedirects.includes(FA.link));this.activeLink=k?k.link:this.links[0].link,this.routerUrl=B.urlAfterRedirects}),this.store.select(l.Jo).pipe((0,r.R)(this.unSubs[1])).subscribe(B=>{if(this.selNode=B,this.selNode.enableOffers){this.store.dispatch((0,WA.yl)()),this.store.dispatch((0,WA.uT)()),this.links.push({link:"offers",name:"Offers"}),this.links.push({link:"offrBookmarks",name:"Paid Offer Bookmarks"});const k=this.links.find(FA=>this.router.url.includes(FA.link));this.activeLink=k?k.link:this.links[0].link}}),this.store.select(l.Wj).pipe((0,r.R)(this.unSubs[2]),(0,a.M)(this.store.select(l.Jo))).subscribe(([B,k])=>{this.currencyUnits=k.currencyUnits,this.balances=k.userPersona===o.ol.OPERATOR?[{title:"Local Capacity",dataValue:B.localRemoteBalance.localBalance,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:B.localRemoteBalance.remoteBalance,tooltip:"Amount you can receive"}]:[{title:"Outbound Capacity",dataValue:B.localRemoteBalance.localBalance,tooltip:"Amount you can send"},{title:"Inbound Capacity",dataValue:B.localRemoteBalance.remoteBalance,tooltip:"Amount you can receive"}],this.logger.info(B)})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh),A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-transactions"]],decls:19,vars:4,consts:[["fxLayout","row wrap","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A._UZ(1,"fa-icon",1),A.TgZ(2,"span",2),A._uU(3,"Lightning Balance"),A.qZA(),A.qZA(),A.TgZ(4,"div",3),A.TgZ(5,"mat-card"),A.TgZ(6,"mat-card-content",4),A._UZ(7,"rtl-currency-unit-converter",5),A.qZA(),A.qZA(),A.qZA(),A.TgZ(8,"div",6),A._UZ(9,"fa-icon",1),A.TgZ(10,"span",2),A._uU(11,"Lightning Transactions"),A.qZA(),A.qZA(),A.TgZ(12,"div",7),A.TgZ(13,"mat-card"),A.TgZ(14,"mat-card-content",4),A.TgZ(15,"nav",8),A.YNc(16,gs,2,3,"div",9),A.qZA(),A.TgZ(17,"div",10),A._UZ(18,"router-outlet"),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(1),A.Q6J("icon",B.faChartPie),A.xp6(6),A.Q6J("values",B.balances),A.xp6(2),A.Q6J("icon",B.faExchangeAlt),A.xp6(7),A.Q6J("ngForOf",B.links))},directives:[Qt.xw,Qt.Wh,f.BN,w.a8,w.dn,re.D,yA.BU,ht.sg,Qt.yH,Ae.lC,yA.Nj,Ae.rH],styles:[""]}),i})();function Zr(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",11),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().activeLink=FA.link}),A._uU(1),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw();A.s9C("routerLink",t.link),A.Q6J("active",B.activeLink===t.link),A.xp6(1),A.Oqu(t.name)}}let Bs=(()=>{class i{constructor(t){this.router=t,this.faMapSigns=E.SuH,this.links=[{link:"forwardinghistory",name:"Forwarding History"},{link:"routingpeers",name:"Routing Peers"},{link:"failedtransactions",name:"Failed Transactions"}],this.activeLink=this.links[0].link,this.unSubs=[new c.x,new c.x,new c.x]}ngOnInit(){const t=this.links.find(B=>this.router.url.includes(B.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(B=>B instanceof Ae.Av)).subscribe(B=>{const k=this.links.find(FA=>B.urlAfterRedirects.includes(FA.link));this.activeLink=k?k.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-routing"]],decls:13,vars:2,consts:[["fxLayout","column",1,"mb-2"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap-x"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","row","fxFlex","100"],["mat-tab-nav-bar","","fxFlex","100"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A._UZ(2,"fa-icon",2),A.TgZ(3,"span",3),A._uU(4,"Routing"),A.qZA(),A.qZA(),A.TgZ(5,"div",4),A.TgZ(6,"mat-card",5),A.TgZ(7,"mat-card-content",6),A.TgZ(8,"div",7),A.TgZ(9,"nav",8),A.YNc(10,Zr,2,3,"div",9),A.qZA(),A.qZA(),A.TgZ(11,"div",10),A._UZ(12,"router-outlet"),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(2),A.Q6J("icon",B.faMapSigns),A.xp6(8),A.Q6J("ngForOf",B.links))},directives:[Qt.xw,Qt.Wh,f.BN,Qt.yH,w.a8,w.dn,yA.BU,ht.sg,Ae.lC,yA.Nj,Ae.rH],styles:[""]}),i})();var Kr=St(6895);function us(i,U){if(1&i&&(A.TgZ(0,"span",6),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(t)}}function Ea(i,U){1&i&&(A.TgZ(0,"th",27),A._uU(1,"Type"),A.qZA())}function fs(i,U){if(1&i&&(A.TgZ(0,"td",28),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.type," ")}}function Es(i,U){1&i&&(A.TgZ(0,"th",27),A._uU(1,"Address"),A.qZA())}function hs(i,U){if(1&i&&(A.TgZ(0,"td",28),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.address," ")}}function ws(i,U){1&i&&(A.TgZ(0,"th",27),A._uU(1,"Port"),A.qZA())}function Cs(i,U){if(1&i&&(A.TgZ(0,"td",28),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.port," ")}}function ha(i,U){1&i&&(A.TgZ(0,"th",29),A.TgZ(1,"span",30),A._uU(2,"Actions"),A.qZA(),A.qZA())}function Qs(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",31),A.TgZ(1,"span",30),A.TgZ(2,"button",32),A.NdJ("copied",function(k){return A.CHM(t),A.oxw(2).onCopyNodeURI(k)}),A._uU(3,"Copy Node URI"),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw(2);A.xp6(2),A.Q6J("payload",(null==B.lookupResult?null:B.lookupResult.nodeid)+"@"+t.address+":"+t.port)}}function Ms(i,U){1&i&&A._UZ(0,"tr",33)}function ds(i,U){1&i&&A._UZ(0,"tr",34)}const ps=function(i){return{"background-color":i}};function Is(i,U){if(1&i&&(A.TgZ(0,"div",1),A._UZ(1,"mat-divider",2),A.TgZ(2,"div",3),A.TgZ(3,"div",4),A.TgZ(4,"h4",5),A._uU(5,"Alias"),A.qZA(),A.TgZ(6,"span",6),A._uU(7),A.TgZ(8,"span",7),A._uU(9),A.qZA(),A.qZA(),A.qZA(),A.TgZ(10,"div",8),A.TgZ(11,"h4",5),A._uU(12,"Pub Key"),A.qZA(),A.TgZ(13,"span",9),A._uU(14),A.qZA(),A.qZA(),A.qZA(),A._UZ(15,"mat-divider",10),A.TgZ(16,"div",3),A.TgZ(17,"div",4),A.TgZ(18,"h4",5),A._uU(19,"Last Update"),A.qZA(),A.TgZ(20,"span",6),A._uU(21),A.ALo(22,"date"),A.qZA(),A.qZA(),A.TgZ(23,"div",8),A.TgZ(24,"h4",5),A._uU(25,"Features"),A.qZA(),A.YNc(26,us,2,1,"span",11),A.qZA(),A.qZA(),A._UZ(27,"mat-divider",10),A.TgZ(28,"div",12),A.TgZ(29,"h4",13),A._uU(30,"Addresses"),A.qZA(),A.TgZ(31,"div",14),A.TgZ(32,"table",15,16),A.ynx(34,17),A.YNc(35,Ea,2,0,"th",18),A.YNc(36,fs,2,1,"td",19),A.BQk(),A.ynx(37,20),A.YNc(38,Es,2,0,"th",18),A.YNc(39,hs,2,1,"td",19),A.BQk(),A.ynx(40,21),A.YNc(41,ws,2,0,"th",18),A.YNc(42,Cs,2,1,"td",19),A.BQk(),A.ynx(43,22),A.YNc(44,ha,3,0,"th",23),A.YNc(45,Qs,4,1,"td",24),A.BQk(),A.YNc(46,Ms,1,0,"tr",25),A.YNc(47,ds,1,0,"tr",26),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("inset",!0),A.xp6(6),A.Oqu(null==t.lookupResult?null:t.lookupResult.alias),A.xp6(1),A.Q6J("ngStyle",A.VKq(15,ps,"#"+(null==t.lookupResult?null:t.lookupResult.color))),A.xp6(1),A.Oqu(null!=t.lookupResult&&t.lookupResult.color?"#"+(null==t.lookupResult?null:t.lookupResult.color):""),A.xp6(5),A.Oqu(null==t.lookupResult?null:t.lookupResult.nodeid),A.xp6(1),A.Q6J("inset",!0),A.xp6(6),A.Oqu(A.xi3(22,12,1e3*(null==t.lookupResult?null:t.lookupResult.last_timestamp),"dd/MMM/YYYY HH:mm")),A.xp6(5),A.Q6J("ngForOf",t.featureDescriptions),A.xp6(1),A.Q6J("inset",!0),A.xp6(5),A.Q6J("dataSource",t.addresses),A.xp6(14),A.Q6J("matHeaderRowDef",t.displayedColumns),A.xp6(1),A.Q6J("matRowDefColumns",t.displayedColumns)}}let Pn=(()=>{class i{constructor(t,B){this.logger=t,this.snackBar=B,this.featureDescriptions=[],this.displayedColumns=["type","address","port","actions"]}ngOnInit(){if(this.addresses=new SA.by(this.lookupResult&&this.lookupResult.addresses?[...this.lookupResult.addresses]:[]),this.addresses.data=this.lookupResult.addresses||[],this.addresses.sort=this.sort,this.addresses.sortingDataAccessor=(t,B)=>t[B]&&isNaN(t[B])?t[B].toLocaleLowerCase():t[B]?+t[B]:null,this.lookupResult.features&&""!==this.lookupResult.features.trim()){const t=parseInt(this.lookupResult.features,16);o._C.forEach(B=>{t&(1<{class i{constructor(t){this.store=t,this.lookupResult=[],this.node1_match=!1,this.node2_match=!1,this.unSubs=[new c.x,new c.x,new c.x,new c.x]}ngOnInit(){this.store.select(l.W3).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.lookupResult.length>0&&this.lookupResult[0].source===t.id&&(this.node1_match=!0),this.lookupResult.length>1&&this.lookupResult[1].source===t.id&&(this.node2_match=!0)})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(u.yh))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-channel-lookup"]],inputs:{lookupResult:"lookupResult"},decls:1,vars:1,consts:[["fxLayout","column","class","mt-1",4,"ngIf"],["fxLayout","column",1,"mt-1"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start start",1,"mt-1","bordered-box","padding-gap-large"],["fxLayout","column"],["class","page-title font-bold-500",4,"ngIf"],[3,"inset"],["fxLayout","column","fxFlex","20",1,"my-1"],[1,"font-bold-500"],[1,"foreground-secondary-text"],["fxLayout","column","fxFlex","10",1,"my-1"],[1,"page-title","font-bold-500"]],template:function(t,B){1&t&&A.YNc(0,xs,204,91,"div",0),2&t&&A.Q6J("ngIf",B.lookupResult)},directives:[ht.O5,Qt.xw,AA.d,Qt.Wh,Qt.yH],pipes:[ht.JJ,ht.uU],styles:[".mat-list-base[_ngcontent-%COMP%] .mat-list-item[_ngcontent-%COMP%], .mat-list-base[_ngcontent-%COMP%] .mat-list-option[_ngcontent-%COMP%]{height:38px!important}"]}),i})();const Ys=["form"];function Ts(i,U){if(1&i&&(A.TgZ(0,"mat-radio-button",17),A._uU(1),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.Q6J("value",t.id)("checked",B.selectedFieldId===t.id),A.xp6(1),A.hij(" ",t.name," ")}}function Er(i,U){if(1&i&&(A.TgZ(0,"mat-error"),A._uU(1),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.hij("",null==t.lookupFields[t.selectedFieldId]?null:t.lookupFields[t.selectedFieldId].placeholder," is required.")}}function Ss(i,U){if(1&i&&(A.TgZ(0,"div"),A._UZ(1,"rtl-cl-node-lookup",26),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Q6J("lookupResult",t.nodeLookupValue)}}function wa(i,U){if(1&i&&(A.TgZ(0,"span",24),A.YNc(1,Ss,2,1,"div",25),A.qZA()),2&i){const t=A.oxw(2),B=A.MAs(19);A.xp6(1),A.Q6J("ngIf",""!==t.nodeLookupValue.nodeid)("ngIfElse",B)}}function Gi(i,U){if(1&i&&(A.TgZ(0,"div"),A._UZ(1,"rtl-cl-channel-lookup",26),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Q6J("lookupResult",t.channelLookupValue)}}function We(i,U){if(1&i&&(A.TgZ(0,"span",24),A.YNc(1,Gi,2,1,"div",25),A.qZA()),2&i){const t=A.oxw(2),B=A.MAs(19);A.xp6(1),A.Q6J("ngIf",t.channelLookupValue.length>0)("ngIfElse",B)}}function hr(i,U){1&i&&(A.TgZ(0,"span",24),A.TgZ(1,"h3"),A._uU(2,"Error! Unable to find details!"),A.qZA(),A.qZA())}function Hi(i,U){if(1&i&&(A.TgZ(0,"div",18),A.TgZ(1,"div",19),A.TgZ(2,"span",20),A._uU(3),A.qZA(),A.qZA(),A.TgZ(4,"div",21),A.YNc(5,wa,2,2,"span",22),A.YNc(6,We,2,2,"span",22),A.YNc(7,hr,3,0,"span",23),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(3),A.hij("",t.lookupFields[t.selectedFieldId].name," Details"),A.xp6(1),A.Q6J("ngSwitch",t.selectedFieldId),A.xp6(1),A.Q6J("ngSwitchCase",0),A.xp6(1),A.Q6J("ngSwitchCase",1)}}function Us(i,U){1&i&&(A.TgZ(0,"h3"),A._uU(1,"Error! Unable to find details!"),A.qZA())}const hi=function(i){return{"mt-1":!0,"mt-2":i}};let wi=(()=>{class i{constructor(t,B,k,FA){this.logger=t,this.commonService=B,this.store=k,this.actions=FA,this.lookupKey="",this.nodeLookupValue={nodeid:""},this.channelLookupValue=[],this.flgSetLookupValue=!1,this.messageObj=[],this.selectedFieldId=0,this.lookupFields=[{id:0,name:"Node",placeholder:"Pubkey"},{id:1,name:"Channel",placeholder:"Short Channel ID"}],this.flgLoading=[!0],this.faSearch=E.wn1,this.screenSize="",this.screenSizeEnum=o.cu,this.unSubs=[new c.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.actions.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(t=>t.type===o.sW.SET_LOOKUP_CL||t.type===o.sW.UPDATE_API_CALL_STATUS_CL)).subscribe(t=>{if(t.type===o.sW.SET_LOOKUP_CL){switch(this.flgLoading[0]=!0,this.selectedFieldId){case 0:this.nodeLookupValue="object"!=typeof t.payload[0]?{nodeid:""}:JSON.parse(JSON.stringify(t.payload[0]));break;case 1:this.channelLookupValue="object"!=typeof t.payload[0]?[]:JSON.parse(JSON.stringify(t.payload))}this.flgSetLookupValue=!0,this.logger.info(this.nodeLookupValue),this.logger.info(this.channelLookupValue)}t.type===o.sW.UPDATE_API_CALL_STATUS_CL&&t.payload.status===o.Bn.ERROR&&"Lookup"===t.payload.action&&(this.flgLoading[0]="error")})}onLookup(){if(!this.lookupKey)return!0;switch(this.flgSetLookupValue=!1,this.nodeLookupValue={nodeid:""},this.channelLookupValue=[],this.selectedFieldId){case 0:this.store.dispatch((0,WA.Sf)({payload:this.lookupKey.trim()}));break;case 1:this.store.dispatch((0,WA.$A)({payload:{uiMessage:o.m6.SEARCHING_CHANNEL,shortChannelID:this.lookupKey.trim(),showError:!1}}))}}onSelectChange(t){this.resetData(),this.selectedFieldId=t.value}resetData(){this.flgSetLookupValue=!1,this.selectedFieldId=0,this.nodeLookupValue={nodeid:""},this.channelLookupValue=[],this.form.resetForm()}clearLookupValue(){this.nodeLookupValue={nodeid:""},this.channelLookupValue=[],this.flgSetLookupValue=!1}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(e.v),A.Y36(u.yh),A.Y36(C.eX))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-lookups"]],viewQuery:function(t,B){if(1&t&&A.Gf(Ys,7),2&t){let k;A.iGM(k=A.CRH())&&(B.form=k.first)}},decls:20,vars:9,consts:[["fxLayout","column"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start space-between",1,"w-100"],["form","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["color","primary","tabindex","1","name","lookupField",3,"ngModel","ngModelChange","change"],["class","mr-4",3,"value","checked",4,"ngFor","ngForOf"],["fxFlex","100","fxLayoutAlign","start end",3,"ngClass"],["matInput","","name","lookupKey","tabindex","2","required","",3,"placeholder","ngModel","change","ngModelChange"],["key",""],[4,"ngIf"],["fxLayout","row","fxFlex","100",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","3","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch","class","w-100 mt-2",4,"ngIf"],["errorBlock",""],[1,"mr-4",3,"value","checked"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"w-100","mt-2"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],[1,"page-title","font-bold-500"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",3,"ngSwitch"],["fxFlex","100",4,"ngSwitchCase"],["fxFlex","100",4,"ngSwitchDefault"],["fxFlex","100"],[4,"ngIf","ngIfElse"],[3,"lookupResult"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-card-content",2),A.TgZ(3,"form",3,4),A.TgZ(5,"div",5),A.TgZ(6,"mat-radio-group",6),A.NdJ("ngModelChange",function(FA){return B.selectedFieldId=FA})("change",function(FA){return B.onSelectChange(FA)}),A.YNc(7,Ts,2,3,"mat-radio-button",7),A.qZA(),A.qZA(),A.TgZ(8,"mat-form-field",8),A.TgZ(9,"input",9,10),A.NdJ("change",function(){return B.clearLookupValue()})("ngModelChange",function(FA){return B.lookupKey=FA}),A.qZA(),A.YNc(11,Er,2,1,"mat-error",11),A.qZA(),A.TgZ(12,"div",12),A.TgZ(13,"button",13),A.NdJ("click",function(){return B.resetData()}),A._uU(14,"Clear"),A.qZA(),A.TgZ(15,"button",14),A.NdJ("click",function(){return B.onLookup()}),A._uU(16,"Lookup"),A.qZA(),A.qZA(),A.qZA(),A.YNc(17,Hi,8,4,"div",15),A.qZA(),A.qZA(),A.qZA(),A.YNc(18,Us,2,0,"ng-template",null,16,A.W1O)),2&t&&(A.xp6(6),A.Q6J("ngModel",B.selectedFieldId),A.xp6(1),A.Q6J("ngForOf",B.lookupFields),A.xp6(1),A.Q6J("ngClass",A.VKq(7,hi,B.screenSize===B.screenSizeEnum.XS||B.screenSize===B.screenSizeEnum.SM)),A.xp6(1),A.Q6J("placeholder",(null==B.lookupFields[B.selectedFieldId]?null:B.lookupFields[B.selectedFieldId].placeholder)||"Lookup Key")("ngModel",B.lookupKey),A.xp6(2),A.Q6J("ngIf",!B.lookupKey),A.xp6(6),A.Q6J("ngIf",B.flgSetLookupValue))},directives:[Qt.xw,Qt.yH,Qt.Wh,w.dn,zA._Y,zA.JL,zA.F,YA.VQ,zA.JJ,zA.On,ht.sg,V.KE,ht.mk,d.oO,ot.Nt,zA.Fj,zA.Q7,ht.O5,F.lW,YA.U0,V.TO,ht.RF,ht.n9,ht.ED,Pn,Fs],styles:[".tree-invisible[_ngcontent-%COMP%]{display:none}.lookup-tree[_ngcontent-%COMP%] ul[_ngcontent-%COMP%], .lookup-tree[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0;list-style-type:none}.pl-3[_ngcontent-%COMP%]{padding-left:3rem}"]}),i})();var wr=(()=>{return(i=wr||(wr={})).KB="KB",i.KW="KW",wr;var i})();function ve(i,U){if(1&i&&(A.TgZ(0,"div",2),A.TgZ(1,"div",3),A.TgZ(2,"div",4),A.TgZ(3,"h4",5),A._uU(4,"Opening"),A.qZA(),A.TgZ(5,"div",6),A._uU(6),A.ALo(7,"number"),A.qZA(),A.qZA(),A.TgZ(8,"div",7),A.TgZ(9,"h4",5),A._uU(10,"Mutual Close"),A.qZA(),A.TgZ(11,"div",6),A._uU(12),A.ALo(13,"number"),A.qZA(),A.qZA(),A.TgZ(14,"div",8),A.TgZ(15,"h4",5),A._uU(16,"Unilateral Close"),A.qZA(),A.TgZ(17,"div",6),A._uU(18),A.ALo(19,"number"),A.qZA(),A.qZA(),A.TgZ(20,"div",9),A.TgZ(21,"h4",5),A._uU(22,"Delayed To Us"),A.qZA(),A.TgZ(23,"div",6),A._uU(24),A.ALo(25,"number"),A.qZA(),A.qZA(),A.qZA(),A.TgZ(26,"div",3),A.TgZ(27,"div",10),A.TgZ(28,"h4",5),A._uU(29,"Minimum Acceptable"),A.qZA(),A.TgZ(30,"div",6),A._uU(31),A.ALo(32,"number"),A.qZA(),A.qZA(),A.TgZ(33,"div",11),A.TgZ(34,"h4",5),A._uU(35,"Maximum Acceptable"),A.qZA(),A.TgZ(36,"div",6),A._uU(37),A.ALo(38,"number"),A.qZA(),A.qZA(),A.TgZ(39,"div",12),A.TgZ(40,"h4",5),A._uU(41,"HTLC Resolution"),A.qZA(),A.TgZ(42,"div",6),A._uU(43),A.ALo(44,"number"),A.qZA(),A.qZA(),A.TgZ(45,"div",13),A.TgZ(46,"h4",5),A._uU(47,"Penalty"),A.qZA(),A.TgZ(48,"div",6),A._uU(49),A.ALo(50,"number"),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(6),A.Oqu(A.lcZ(7,8,null==t.perkbw?null:t.perkbw.opening)),A.xp6(6),A.Oqu(A.lcZ(13,10,null==t.perkbw?null:t.perkbw.mutual_close)),A.xp6(6),A.Oqu(A.lcZ(19,12,null==t.perkbw?null:t.perkbw.unilateral_close)),A.xp6(6),A.Oqu(A.lcZ(25,14,null==t.perkbw?null:t.perkbw.delayed_to_us)),A.xp6(7),A.Oqu(A.lcZ(32,16,null==t.perkbw?null:t.perkbw.min_acceptable)),A.xp6(6),A.Oqu(A.lcZ(38,18,null==t.perkbw?null:t.perkbw.max_acceptable)),A.xp6(6),A.Oqu(A.lcZ(44,20,null==t.perkbw?null:t.perkbw.htlc_resolution)),A.xp6(6),A.Oqu(A.lcZ(50,22,null==t.perkbw?null:t.perkbw.penalty))}}function Ps(i,U){if(1&i&&(A.TgZ(0,"div",14),A.TgZ(1,"p"),A._uU(2),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(2),A.Oqu(t.errorMessage)}}let Cr=(()=>{class i{constructor(){this.perkbw={}}ngAfterContentChecked(){this.feeRateStyle===wr.KB?this.perkbw=this.feeRates.perkb:this.feeRateStyle===wr.KW&&(this.perkbw=this.feeRates.perkw)}}return i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-fee-rates"]],inputs:{feeRateStyle:"feeRateStyle",feeRates:"feeRates",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","stretch","class","h-100",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","stretch",1,"h-100"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["matTooltip","Default feerate for fundchannel and withdraw","matTooltipPosition","below"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["matTooltip","Feerate to aim for in cooperative shutdown. Note that since mutual close is a negotiation, the actual feerate used in mutual close will be somewhere between this and the corresponding mutual close feerate of the peer","matTooltipPosition","below"],["matTooltip","Feerate for commitment_transaction in a live channel which we originally funded","matTooltipPosition","below"],["matTooltip","Feerate for returning unilateral close funds to our wallet","matTooltipPosition","below"],["matTooltip","The smallest feerate that you can use, usually the minimum relayed feerate of the backend","matTooltipPosition","below"],["matTooltip","The largest feerate we will accept from remote negotiations. If a peer attempts to set the feerate higher than this we will unilaterally close the channel (or simply forget it if it's not open yet)","matTooltipPosition","below"],["matTooltip","Feerate for returning unilateral close HTLC outputs to our wallet","matTooltipPosition","below"],["matTooltip","Feerate to start at when penalizing a cheat attempt","matTooltipPosition","below"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,B){if(1&t&&(A.YNc(0,ve,51,24,"div",0),A.YNc(1,Ps,3,1,"ng-template",null,1,A.W1O)),2&t){const k=A.MAs(2);A.Q6J("ngIf",""===(null==B.errorMessage?null:B.errorMessage.trim()))("ngIfElse",k)}},directives:[ht.O5,Qt.xw,Qt.yH,Qt.Wh,aA.gM],pipes:[ht.JJ],styles:[".fee-rate-list[_ngcontent-%COMP%] .mat-list-item[_ngcontent-%COMP%]{height:44px}"]}),i})();function zs(i,U){if(1&i&&(A.TgZ(0,"div",2),A.TgZ(1,"div",3),A.TgZ(2,"div",4),A.TgZ(3,"h4",5),A._uU(4,"Opening Channel"),A.qZA(),A.TgZ(5,"div",6),A._uU(6),A.ALo(7,"number"),A.qZA(),A.qZA(),A.TgZ(8,"div",7),A.TgZ(9,"h4",5),A._uU(10,"Mutual Close"),A.qZA(),A.TgZ(11,"div",6),A._uU(12),A.ALo(13,"number"),A.qZA(),A.qZA(),A.TgZ(14,"div",8),A.TgZ(15,"h4",5),A._uU(16,"Unilateral Close"),A.qZA(),A.TgZ(17,"div",6),A._uU(18),A.ALo(19,"number"),A.qZA(),A.qZA(),A.TgZ(20,"div",9),A._UZ(21,"h4",5),A._UZ(22,"div",6),A.qZA(),A.qZA(),A.TgZ(23,"div",3),A.TgZ(24,"div",10),A.TgZ(25,"h4",5),A._uU(26,"HTLC Timeout"),A.qZA(),A.TgZ(27,"div",6),A._uU(28),A.ALo(29,"number"),A.qZA(),A.qZA(),A.TgZ(30,"div",11),A.TgZ(31,"h4",5),A._uU(32,"HTLC Success"),A.qZA(),A.TgZ(33,"div",6),A._uU(34),A.ALo(35,"number"),A.qZA(),A.qZA(),A.TgZ(36,"div",9),A._UZ(37,"h4",5),A._UZ(38,"div",6),A.qZA(),A.TgZ(39,"div",9),A._UZ(40,"h4",5),A._UZ(41,"div",6),A.qZA(),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(6),A.Oqu(A.lcZ(7,5,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.opening_channel_satoshis)),A.xp6(6),A.Oqu(A.lcZ(13,7,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.mutual_close_satoshis)),A.xp6(6),A.Oqu(A.lcZ(19,9,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.unilateral_close_satoshis)),A.xp6(10),A.Oqu(A.lcZ(29,11,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.htlc_timeout_satoshis)),A.xp6(6),A.Oqu(A.lcZ(35,13,null==t.feeRates||null==t.feeRates.onchain_fee_estimates?null:t.feeRates.onchain_fee_estimates.htlc_success_satoshis))}}function Rs(i,U){if(1&i&&(A.TgZ(0,"div",12),A.TgZ(1,"p"),A._uU(2),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(2),A.Oqu(t.errorMessage)}}let Ns=(()=>{class i{constructor(){}}return i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-onchain-fee-estimates"]],inputs:{feeRates:"feeRates",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","stretch","class","h-100",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","stretch",1,"h-100"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["matTooltip","Estimated cost of typical channel open","matTooltipPosition","below"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["matTooltip","Estimated cost of typical channel close","matTooltipPosition","below"],["matTooltip","Estimated cost of typical unilateral close (without HTLCs)","matTooltipPosition","below"],["fxFlex","12"],["matTooltip","Estimated cost of typical HTLC timeout transaction","matTooltipPosition","below"],["matTooltip","Estimated cost of typical HTLC fulfillment transaction","matTooltipPosition","below"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,B){if(1&t&&(A.YNc(0,zs,42,15,"div",0),A.YNc(1,Rs,3,1,"ng-template",null,1,A.W1O)),2&t){const k=A.MAs(2);A.Q6J("ngIf",""===(null==B.errorMessage?null:B.errorMessage.trim()))("ngIfElse",k)}},directives:[ht.O5,Qt.xw,Qt.yH,Qt.Wh,aA.gM],pipes:[ht.JJ],styles:[".fee-rate-list[_ngcontent-%COMP%] .mat-list-item[_ngcontent-%COMP%]{height:44px}"]}),i})();function Ci(i,U){1&i&&A._UZ(0,"mat-progress-bar",19)}function sr(i,U){if(1&i&&A._UZ(0,"rtl-cl-node-info",20),2&i){const t=A.oxw(3);A.Q6J("information",t.information)("showColorFieldSeparately",!1)}}function Ca(i,U){if(1&i&&A._UZ(0,"rtl-cl-channel-status-info",21),2&i){const t=A.oxw(3);A.Q6J("channelsStatus",t.channelsStatus)("errorMessage",t.errorMessages[0]+" "+t.errorMessages[2])}}function Nr(i,U){if(1&i&&A._UZ(0,"rtl-cl-fee-info",22),2&i){const t=A.oxw(3);A.Q6J("fees",t.fees)("errorMessage",t.errorMessages[1]+" "+t.errorMessages[3]+" "+t.errorMessages[4])}}function Qa(i,U){if(1&i&&A._UZ(0,"rtl-cl-fee-rates",23),2&i){const t=A.oxw(3);A.Q6J("feeRates",t.feeRatesPerKB)("feeRateStyle","KB")("errorMessage",t.errorMessages[5])}}function bs(i,U){if(1&i&&A._UZ(0,"rtl-cl-fee-rates",23),2&i){const t=A.oxw(3);A.Q6J("feeRates",t.feeRatesPerKW)("feeRateStyle","KW")("errorMessage",t.errorMessages[6])}}function Qi(i,U){if(1&i&&A._UZ(0,"rtl-cl-onchain-fee-estimates",24),2&i){const t=A.oxw(3);A.Q6J("feeRates",t.feeRatesPerKW)("errorMessage",t.errorMessages[5])}}const Wr=function(i){return{"dashboard-card-content":!0,"error-border":i}};function vr(i,U){if(1&i&&(A.TgZ(0,"mat-grid-tile",4),A.TgZ(1,"div",5),A.TgZ(2,"div",6),A.TgZ(3,"div",7),A._UZ(4,"fa-icon",8),A.TgZ(5,"span"),A._uU(6),A.qZA(),A.qZA(),A.qZA(),A.TgZ(7,"div",9),A.TgZ(8,"mat-card",10),A.TgZ(9,"mat-card-content",11),A.YNc(10,Ci,1,0,"mat-progress-bar",12),A.TgZ(11,"div",13),A.YNc(12,sr,1,2,"rtl-cl-node-info",14),A.YNc(13,Ca,1,2,"rtl-cl-channel-status-info",15),A.YNc(14,Nr,1,2,"rtl-cl-fee-info",16),A.YNc(15,Qa,1,3,"rtl-cl-fee-rates",17),A.YNc(16,bs,1,3,"rtl-cl-fee-rates",17),A.YNc(17,Qi,1,2,"rtl-cl-onchain-fee-estimates",18),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.Q6J("colspan",t.cols)("rowspan",t.rows),A.xp6(4),A.Q6J("icon",t.icon),A.xp6(2),A.Oqu(t.title),A.xp6(3),A.Q6J("ngClass",A.VKq(13,Wr,"node"===t.id&&B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.ERROR||"status"===t.id&&(B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.ERROR)||"fee"===t.id&&(B.apiCallStatusFees.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusChannels.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusFHistory.status===B.apiCallStatusEnum.ERROR)||"feeRatesKB"===t.id&&B.apiCallStatusPerKB.status===B.apiCallStatusEnum.ERROR||"feeRatesKW"===t.id&&B.apiCallStatusPerKW.status===B.apiCallStatusEnum.ERROR||"onChainFeeEstimates"===t.id&&B.apiCallStatusPerKW.status===B.apiCallStatusEnum.ERROR)),A.xp6(1),A.Q6J("ngIf","node"===t.id&&B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.INITIATED||"status"===t.id&&(B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.INITIATED)||"fee"===t.id&&(B.apiCallStatusFees.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusChannels.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusFHistory.status===B.apiCallStatusEnum.INITIATED)||"feeRatesKB"===t.id&&B.apiCallStatusPerKB.status===B.apiCallStatusEnum.INITIATED||"feeRatesKW"===t.id&&B.apiCallStatusPerKW.status===B.apiCallStatusEnum.INITIATED||"onChainFeeEstimates"===t.id&&B.apiCallStatusPerKW.status===B.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngSwitch",t.id),A.xp6(1),A.Q6J("ngSwitchCase","node"),A.xp6(1),A.Q6J("ngSwitchCase","status"),A.xp6(1),A.Q6J("ngSwitchCase","fee"),A.xp6(1),A.Q6J("ngSwitchCase","feeRatesKB"),A.xp6(1),A.Q6J("ngSwitchCase","feeRatesKW"),A.xp6(1),A.Q6J("ngSwitchCase","onChainFeeEstimates")}}function Ls(i,U){if(1&i&&(A.TgZ(0,"mat-grid-list",2),A.YNc(1,vr,18,15,"mat-grid-tile",3),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngForOf",t.nodeCardsOperator)}}function Mi(i,U){1&i&&A._UZ(0,"mat-progress-bar",19)}function Vr(i,U){if(1&i&&A._UZ(0,"rtl-cl-node-info",20),2&i){const t=A.oxw(3);A.Q6J("information",t.information)("showColorFieldSeparately",!1)}}function Gs(i,U){if(1&i&&A._UZ(0,"rtl-cl-channel-status-info",21),2&i){const t=A.oxw(3);A.Q6J("channelsStatus",t.channelsStatus)("errorMessage",t.errorMessages[0]+" "+t.errorMessages[2])}}function Hs(i,U){if(1&i&&A._UZ(0,"rtl-cl-fee-info",22),2&i){const t=A.oxw(3);A.Q6J("fees",t.fees)("errorMessage",t.errorMessages[1]+" "+t.errorMessages[3]+" "+t.errorMessages[4])}}function Js(i,U){if(1&i&&A._UZ(0,"rtl-cl-fee-rates",23),2&i){const t=A.oxw(3);A.Q6J("feeRates",t.feeRatesPerKB)("feeRateStyle","KB")("errorMessage",t.errorMessages[5])}}function Ma(i,U){if(1&i&&A._UZ(0,"rtl-cl-fee-rates",23),2&i){const t=A.oxw(3);A.Q6J("feeRates",t.feeRatesPerKW)("feeRateStyle","KW")("errorMessage",t.errorMessages[5])}}function Os(i,U){if(1&i&&A._UZ(0,"rtl-cl-onchain-fee-estimates",24),2&i){const t=A.oxw(3);A.Q6J("feeRates",t.feeRatesPerKW)("errorMessage",t.errorMessages[5])}}function ks(i,U){if(1&i&&(A.TgZ(0,"mat-grid-tile",4),A.TgZ(1,"div",5),A.TgZ(2,"div",6),A.TgZ(3,"div",25),A._UZ(4,"fa-icon",8),A.TgZ(5,"span"),A._uU(6),A.qZA(),A.qZA(),A.qZA(),A.TgZ(7,"div",9),A.TgZ(8,"mat-card",10),A.TgZ(9,"mat-card-content",11),A.YNc(10,Mi,1,0,"mat-progress-bar",12),A.TgZ(11,"div",13),A.YNc(12,Vr,1,2,"rtl-cl-node-info",14),A.YNc(13,Gs,1,2,"rtl-cl-channel-status-info",15),A.YNc(14,Hs,1,2,"rtl-cl-fee-info",16),A.YNc(15,Js,1,3,"rtl-cl-fee-rates",17),A.YNc(16,Ma,1,3,"rtl-cl-fee-rates",17),A.YNc(17,Os,1,2,"rtl-cl-onchain-fee-estimates",18),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.Q6J("colspan",t.cols)("rowspan",t.rows),A.xp6(4),A.Q6J("icon",t.icon),A.xp6(2),A.Oqu(t.title),A.xp6(3),A.Q6J("ngClass",A.VKq(13,Wr,"node"===t.id&&B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.ERROR||"status"===t.id&&(B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.ERROR)||"fee"===t.id&&(B.apiCallStatusFees.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusChannels.status===B.apiCallStatusEnum.ERROR||B.apiCallStatusFHistory.status===B.apiCallStatusEnum.ERROR)||"feeRatesKB"===t.id&&B.apiCallStatusPerKB.status===B.apiCallStatusEnum.ERROR||"feeRatesKW"===t.id&&B.apiCallStatusPerKW.status===B.apiCallStatusEnum.ERROR||"onChainFeeEstimates"===t.id&&B.apiCallStatusPerKW.status===B.apiCallStatusEnum.ERROR)),A.xp6(1),A.Q6J("ngIf","node"===t.id&&B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.INITIATED||"status"===t.id&&(B.apiCallStatusNodeInfo.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusLRBal.status===B.apiCallStatusEnum.INITIATED)||"fee"===t.id&&(B.apiCallStatusFees.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusChannels.status===B.apiCallStatusEnum.INITIATED||B.apiCallStatusFHistory.status===B.apiCallStatusEnum.INITIATED)||"feeRatesKB"===t.id&&B.apiCallStatusPerKB.status===B.apiCallStatusEnum.INITIATED||"feeRatesKW"===t.id&&B.apiCallStatusPerKW.status===B.apiCallStatusEnum.INITIATED||"onChainFeeEstimates"===t.id&&B.apiCallStatusPerKW.status===B.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngSwitch",t.id),A.xp6(1),A.Q6J("ngSwitchCase","node"),A.xp6(1),A.Q6J("ngSwitchCase","status"),A.xp6(1),A.Q6J("ngSwitchCase","fee"),A.xp6(1),A.Q6J("ngSwitchCase","feeRatesKB"),A.xp6(1),A.Q6J("ngSwitchCase","feeRatesKW"),A.xp6(1),A.Q6J("ngSwitchCase","onChainFeeEstimates")}}function js(i,U){if(1&i&&(A.TgZ(0,"mat-grid-list",2),A.YNc(1,ks,18,15,"mat-grid-tile",3),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngForOf",t.nodeCardsMerchant)}}let Zs=(()=>{class i{constructor(t,B,k){this.logger=t,this.commonService=B,this.store=k,this.faBolt=E.BDt,this.faServer=E.xf3,this.faNetworkWired=E.kXW,this.faLink=E.nNP,this.selNode={},this.information={},this.channelsStatus={active:{},pending:{},inactive:{}},this.feeRatesPerKB={},this.feeRatesPerKW={},this.nodeCardsOperator=[],this.nodeCardsMerchant=[],this.screenSize="",this.screenSizeEnum=o.cu,this.userPersonaEnum=o.ol,this.errorMessages=["","","","","","",""],this.apiCallStatusNodeInfo=null,this.apiCallStatusLRBal=null,this.apiCallStatusChannels=null,this.apiCallStatusFees=null,this.apiCallStatusFHistory=null,this.apiCallStatusPerKB=null,this.apiCallStatusPerKW=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.nodeCardsMerchant=[{id:"node",icon:this.faServer,title:"Node Information",cols:6,rows:3},{id:"status",icon:this.faNetworkWired,title:"Channels",cols:6,rows:3},{id:"fee",icon:this.faBolt,title:"Routing Fee",cols:6,rows:1},{id:"feeRatesKB",icon:this.faServer,title:"Fee Rate Per KB",cols:4,rows:4},{id:"feeRatesKW",icon:this.faNetworkWired,title:"Fee Rate Per KW",cols:4,rows:4},{id:"onChainFeeEstimates",icon:this.faLink,title:"Onchain Fee Estimates (Sats)",cols:4,rows:4}],this.nodeCardsOperator=[{id:"feeRatesKB",icon:this.faServer,title:"Fee Rate Per KB",cols:4,rows:4},{id:"feeRatesKW",icon:this.faNetworkWired,title:"Fee Rate Per KW",cols:4,rows:4},{id:"onChainFeeEstimates",icon:this.faLink,title:"Onchain Fee Estimates (Sats)",cols:4,rows:4}]):(this.nodeCardsMerchant=[{id:"node",icon:this.faServer,title:"Node Information",cols:2,rows:3},{id:"status",icon:this.faNetworkWired,title:"Channels",cols:2,rows:3},{id:"fee",icon:this.faBolt,title:"Routing Fee",cols:2,rows:3},{id:"feeRatesKB",icon:this.faServer,title:"Fee Rate Per KB",cols:2,rows:4},{id:"feeRatesKW",icon:this.faNetworkWired,title:"Fee Rate Per KW",cols:2,rows:4},{id:"onChainFeeEstimates",icon:this.faLink,title:"Onchain Fee Estimates (Sats)",cols:2,rows:4}],this.nodeCardsOperator=[{id:"feeRatesKB",icon:this.faServer,title:"Fee Rate Per KB",cols:2,rows:4},{id:"feeRatesKW",icon:this.faNetworkWired,title:"Fee Rate Per KW",cols:2,rows:4},{id:"onChainFeeEstimates",icon:this.faLink,title:"Onchain Fee Estimates (Sats)",cols:2,rows:4}])}ngOnInit(){this.store.select(l.Hz).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.errorMessages[0]="",this.apiCallStatusNodeInfo=t.apisCallStatus[0],this.apiCallStatusNodeInfo.status===o.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apiCallStatusNodeInfo.message?JSON.stringify(this.apiCallStatusNodeInfo.message):this.apiCallStatusNodeInfo.message),this.selNode=t.nodeSettings,this.information=t.information,this.logger.info(t)}),this.store.select(l.ZW).pipe((0,r.R)(this.unSubs[1]),(0,a.M)(this.store.select(l.Wj))).subscribe(([t,B])=>{this.errorMessages[2]="",this.errorMessages[3]="",this.apiCallStatusLRBal=t.apiCallStatus,this.apiCallStatusChannels=B.apiCallStatus,this.apiCallStatusLRBal.status===o.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apiCallStatusLRBal.message?JSON.stringify(this.apiCallStatusLRBal.message):this.apiCallStatusLRBal.message),this.apiCallStatusChannels.status===o.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apiCallStatusChannels.message?JSON.stringify(this.apiCallStatusChannels.message):this.apiCallStatusChannels.message),this.channelsStatus.active.channels=t.activeChannels.length||0,this.channelsStatus.pending.channels=t.pendingChannels.length||0,this.channelsStatus.inactive.channels=t.inactiveChannels.length||0,this.channelsStatus.active.capacity=B.localRemoteBalance.localBalance||0,this.channelsStatus.pending.capacity=B.localRemoteBalance.pendingBalance||0,this.channelsStatus.inactive.capacity=B.localRemoteBalance.inactiveBalance||0}),this.store.select(l.JG).pipe((0,r.R)(this.unSubs[2])).subscribe(t=>{this.errorMessages[1]="",this.apiCallStatusFees=t.apiCallStatus,this.apiCallStatusFees.status===o.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apiCallStatusFees.message?JSON.stringify(this.apiCallStatusFees.message):this.apiCallStatusFees.message),this.fees=t.fees}),this.store.select(l.Bo).pipe((0,r.R)(this.unSubs[3])).subscribe(t=>{this.errorMessages[4]="",this.apiCallStatusFHistory=t.apiCallStatus,this.apiCallStatusFHistory.status===o.Bn.ERROR&&(this.errorMessages[4]="object"==typeof this.apiCallStatusFHistory.message?JSON.stringify(this.apiCallStatusFHistory.message):this.apiCallStatusFHistory.message),t.forwardingHistory&&t.forwardingHistory.length&&(this.fees.totalTxCount=t.forwardingHistory.length)}),this.store.select(l.zm).pipe((0,r.R)(this.unSubs[4])).subscribe(t=>{this.errorMessages[5]="",this.apiCallStatusPerKB=t.apiCallStatus,this.apiCallStatusPerKB.status===o.Bn.ERROR&&(this.errorMessages[5]="object"==typeof this.apiCallStatusPerKB.message?JSON.stringify(this.apiCallStatusPerKB.message):this.apiCallStatusPerKB.message),this.feeRatesPerKB=t.feeRatesPerKB}),this.store.select(l.hx).pipe((0,r.R)(this.unSubs[5])).subscribe(t=>{this.errorMessages[6]="",this.apiCallStatusPerKW=t.apiCallStatus,this.apiCallStatusPerKW.status===o.Bn.ERROR&&(this.errorMessages[6]="object"==typeof this.apiCallStatusPerKW.message?JSON.stringify(this.apiCallStatusPerKW.message):this.apiCallStatusPerKW.message),this.feeRatesPerKW=t.feeRatesPerKW})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(e.v),A.Y36(u.yh))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-network-info"]],decls:3,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch",1,"mb-4"],["cols","6","rowHeight","100px",4,"ngIf"],["cols","6","rowHeight","100px"],["class","node-grid-tile",3,"colspan","rowspan",4,"ngFor","ngForOf"],[1,"node-grid-tile",3,"colspan","rowspan"],["fxLayout","column","fxLayoutAlign","stretch start","fxFlex","100",1,"h-100"],["fxLayout","row","fxLayoutAlign","start start",1,"w-100"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","pl-2"],[1,"mr-1",3,"icon"],["fxLayout","column","fxLayoutAlign","stretch center","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","center stretch",1,"w-100","h-93"],["fxLayout","row","fxFlex","95","fxLayoutAlign","start stretch",1,"dashboard-card","w-96","h-93"],["fxLayout","column","fxFlex","100",3,"ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["class","h-100",3,"feeRates","feeRateStyle","errorMessage",4,"ngSwitchCase"],["class","h-100",3,"feeRates","errorMessage",4,"ngSwitchCase"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],[1,"h-100",3,"feeRates","feeRateStyle","errorMessage"],[1,"h-100",3,"feeRates","errorMessage"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","pl-15px"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.YNc(1,Ls,2,1,"mat-grid-list",1),A.YNc(2,js,2,1,"mat-grid-list",1),A.qZA()),2&t&&(A.xp6(1),A.Q6J("ngIf",B.selNode.userPersona===B.userPersonaEnum.OPERATOR),A.xp6(1),A.Q6J("ngIf",B.selNode.userPersona===B.userPersonaEnum.MERCHANT))},directives:[Qt.xw,Qt.Wh,ht.O5,g.Il,ht.sg,g.DX,Qt.yH,f.BN,w.a8,w.dn,ht.mk,d.oO,ht.RF,ht.n9,Y.pW,T,GA,uA,Cr,Ns],styles:[""]}),i})();function Ks(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",8),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().activeLink=FA.link}),A._uU(1),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw();A.s9C("routerLink",t.link),A.Q6J("active",B.activeLink===t.link),A.xp6(1),A.Oqu(t.name)}}let Ws=(()=>{class i{constructor(t){this.router=t,this.faUserCheck=E.hkK,this.links=[{link:"sign",name:"Sign"},{link:"verify",name:"Verify"}],this.activeLink=this.links[0].link,this.unSubs=[new c.x,new c.x]}ngOnInit(){const t=this.links.find(B=>this.router.url.includes(B.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(B=>B instanceof Ae.Av)).subscribe(B=>{const k=this.links.find(FA=>B.urlAfterRedirects.includes(FA.link));this.activeLink=k?k.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-sign-verify-message"]],decls:11,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A._UZ(1,"fa-icon",1),A.TgZ(2,"span",2),A._uU(3,"Sign/Verify Message"),A.qZA(),A.qZA(),A.TgZ(4,"div",3),A.TgZ(5,"mat-card"),A.TgZ(6,"mat-card-content",4),A.TgZ(7,"nav",5),A.YNc(8,Ks,2,3,"div",6),A.qZA(),A.TgZ(9,"div",7),A._UZ(10,"router-outlet"),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(1),A.Q6J("icon",B.faUserCheck),A.xp6(7),A.Q6J("ngForOf",B.links))},directives:[Qt.xw,Qt.Wh,f.BN,w.a8,w.dn,yA.BU,ht.sg,Qt.yH,Ae.lC,yA.Nj,Ae.rH],styles:[""]}),i})();var Vs=St(9122);function Xs(i,U){if(1&i&&(A.TgZ(0,"mat-option",7),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t),A.xp6(1),A.hij(" ",t.addressTp," ")}}let qs=(()=>{class i{constructor(t,B){this.store=t,this.clEffects=B,this.addressTypes=o._t,this.selectedAddressType=o._t[0],this.newAddress=""}onGenerateAddress(){this.store.dispatch((0,WA._E)({payload:this.selectedAddressType})),this.clEffects.setNewAddressCL.pipe((0,nn.q)(1)).subscribe(t=>{this.newAddress=t,setTimeout(()=>{this.store.dispatch((0,eA.qR)({payload:{data:{address:this.newAddress,addressType:this.selectedAddressType.addressTp,component:Vs.n}}}))},0)})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(u.yh),A.Y36(ke.s))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-on-chain-receive"]],decls:8,vars:2,consts:[["fxLayout","column",1,"padding-gap-x"],["fxLayout","row","fxLayoutAlign","space-between end","fxLayoutAlign.gt-sm","start end"],["fxFlex","48","fxFlex.gt-md","25","fxLayoutAlign","start end",1,"mr-2"],["placeholder","Address Type","name","address_type","tabindex","1",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],[1,"mt-2"],["mat-flat-button","","color","primary","tabindex","2",1,"top-minus-15px",3,"click"],[3,"value"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-form-field",2),A.TgZ(3,"mat-select",3),A.NdJ("ngModelChange",function(FA){return B.selectedAddressType=FA}),A.YNc(4,Xs,2,2,"mat-option",4),A.qZA(),A.qZA(),A.TgZ(5,"div",5),A.TgZ(6,"button",6),A.NdJ("click",function(){return B.onGenerateAddress()}),A._uU(7,"Generate Address"),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(3),A.Q6J("ngModel",B.selectedAddressType),A.xp6(1),A.Q6J("ngForOf",B.addressTypes))},directives:[Qt.xw,Qt.Wh,V.KE,Qt.yH,vt.gD,zA.JJ,zA.On,ht.sg,F.lW,G.ey],styles:[""]}),i})(),da=(()=>{class i{constructor(t,B){this.store=t,this.activatedRoute=B,this.sweepAll=!1,this.unSubs=[new c.x,new c.x]}ngOnInit(){this.activatedRoute.data.pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.sweepAll=t.sweepAll})}openSendFundsModal(){this.store.dispatch((0,eA.qR)({payload:{data:{sweepAll:this.sweepAll,component:oa}}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(u.yh),A.Y36(Ae.gz))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-on-chain-send"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayout","row"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"button",2),A.NdJ("click",function(){return B.openSendFundsModal()}),A._uU(3),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(3),A.Oqu(B.sweepAll?"Sweep All":"Send Funds"))},directives:[Qt.xw,Qt.yH,Qt.Wh,F.lW],styles:[""]}),i})();var _s=St(8675),Xr=St(4004),Ji=St(9843),qr=St(1079);const pa=["form"];function $s(i,U){if(1&i&&(A.TgZ(0,"mat-option",42),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t),A.xp6(1),A.Oqu(t.alias?t.alias:t.id?t.id:"")}}function di(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Peer alias is required."),A.qZA())}function Rn(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Peer not found in the list."),A.qZA())}function cr(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-form-field",1),A.TgZ(1,"input",39),A.NdJ("change",function(){return A.CHM(t),A.oxw().onSelectedPeerChanged()}),A.qZA(),A.TgZ(2,"mat-autocomplete",40,41),A.NdJ("optionSelected",function(){return A.CHM(t),A.oxw().onSelectedPeerChanged()}),A.YNc(4,$s,2,2,"mat-option",26),A.ALo(5,"async"),A.qZA(),A.YNc(6,di,2,0,"mat-error",17),A.YNc(7,Rn,2,0,"mat-error",17),A.qZA()}if(2&i){const t=A.MAs(3),B=A.oxw();A.xp6(1),A.Q6J("formControl",B.selectedPeer)("matAutocomplete",t),A.xp6(1),A.Q6J("displayWith",B.displayFn),A.xp6(2),A.Q6J("ngForOf",A.lcZ(5,6,B.filteredPeers)),A.xp6(2),A.Q6J("ngIf",null==B.selectedPeer.errors?null:B.selectedPeer.errors.required),A.xp6(1),A.Q6J("ngIf",null==B.selectedPeer.errors?null:B.selectedPeer.errors.notfound)}}function Oi(i,U){1&i&&A.GkF(0)}function ki(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Amount is required."),A.qZA())}function ji(i,U){if(1&i&&(A.TgZ(0,"mat-error"),A._uU(1),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.hij("Amount must be less than or equal to ",t.totalBalance,".")}}function A0(i,U){if(1&i&&(A.TgZ(0,"mat-option",42),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t.feeRateId),A.xp6(1),A.hij(" ",t.feeRateType," ")}}function _r(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Fee Rate is required."),A.qZA())}function Ia(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-form-field",43),A.TgZ(1,"input",44,45),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().customFeeRate=k}),A.qZA(),A.YNc(3,_r,2,0,"mat-error",17),A.qZA()}if(2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngModel",t.customFeeRate)("step",.1)("min",0)("required","customperkb"===t.selFeeRate&&!t.flgMinConf),A.xp6(2),A.Q6J("ngIf","customperkb"===t.selFeeRate&&!t.flgMinConf&&!t.customFeeRate)}}function t0(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Min Confirmation Blocks is required."),A.qZA())}function e0(i,U){if(1&i&&(A.TgZ(0,"mat-option",42),A._uU(1),A.ALo(2,"number"),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t),A.xp6(1),A.hij("",A.lcZ(2,2,t.value)," Sats")}}function n0(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",22),A.TgZ(1,"mat-form-field",46),A.TgZ(2,"mat-select",47),A.NdJ("selectionChange",function(k){return A.CHM(t),A.oxw().onUTXOSelectionChange(k)})("valueChange",function(k){return A.CHM(t),A.oxw().selUTXOs=k}),A.TgZ(3,"mat-select-trigger"),A._uU(4),A.ALo(5,"number"),A.qZA(),A.YNc(6,e0,3,4,"mat-option",26),A.qZA(),A.qZA(),A.TgZ(7,"mat-slide-toggle",48),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().flgUseAllBalance=k})("change",function(){return A.CHM(t),A.oxw().onUTXOAllBalanceChange()}),A._uU(8," Use selected UTXOs balance "),A.qZA(),A.qZA()}if(2&i){const t=A.oxw();A.xp6(2),A.Q6J("value",t.selUTXOs),A.xp6(2),A.AsE("",A.lcZ(5,6,t.totalSelectedUTXOAmount)," Sats (",t.selUTXOs.length>1?t.selUTXOs.length+" UTXOs":"1 UTXO",")"),A.xp6(2),A.Q6J("ngForOf",t.utxos),A.xp6(1),A.Q6J("ngModel",t.flgUseAllBalance)("disabled",t.selUTXOs.length<1)}}function r0(i,U){if(1&i&&(A.TgZ(0,"span"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.channelConnectionError)}}function i0(i,U){if(1&i&&(A.TgZ(0,"div",49),A._UZ(1,"fa-icon",50),A.YNc(2,r0,2,1,"span",17),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("icon",t.faExclamationTriangle),A.xp6(1),A.Q6J("ngIf",""!==t.channelConnectionError)}}function a0(i,U){if(1&i&&(A.TgZ(0,"mat-expansion-panel",52),A.TgZ(1,"mat-expansion-panel-header"),A.TgZ(2,"mat-panel-title"),A.TgZ(3,"span"),A._uU(4,"Peer: \xa0"),A.qZA(),A.TgZ(5,"strong",53),A._uU(6),A.qZA(),A.qZA(),A.qZA(),A.TgZ(7,"div",9),A.TgZ(8,"div",0),A.TgZ(9,"div",1),A.TgZ(10,"h4",54),A._uU(11,"Pubkey"),A.qZA(),A.TgZ(12,"span",55),A._uU(13),A.qZA(),A.qZA(),A.qZA(),A._UZ(14,"mat-divider",56),A.TgZ(15,"div",0),A.TgZ(16,"div",57),A.TgZ(17,"h4",54),A._uU(18,"Address"),A.qZA(),A.TgZ(19,"span",58),A._uU(20),A.qZA(),A.qZA(),A.TgZ(21,"div",57),A.TgZ(22,"h4",54),A._uU(23,"Connected"),A.qZA(),A.TgZ(24,"span",58),A._uU(25),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&i){const t=A.oxw(2);A.xp6(6),A.Oqu((null==t.peer?null:t.peer.alias)||(null==t.peer?null:t.peer.id)),A.xp6(7),A.Oqu(t.peer.id),A.xp6(7),A.Oqu(null==t.peer?null:t.peer.netaddr),A.xp6(5),A.Oqu(t.peer.connected?"True":"False")}}function o0(i,U){if(1&i&&A.YNc(0,a0,26,4,"mat-expansion-panel",51),2&i){const t=A.oxw();A.Q6J("ngIf",t.peer)}}const s0=function(i,U){return{"mr-6":i,"mr-2":U}};let Da=(()=>{class i{constructor(t,B,k,FA,pt,Ye){this.dialogRef=t,this.data=B,this.store=k,this.actions=FA,this.decimalPipe=pt,this.commonService=Ye,this.selectedPeer=new zA.NI,this.faExclamationTriangle=E.eHv,this.isCompatibleVersion=!1,this.utxos=[],this.selUTXOs=[],this.flgUseAllBalance=!1,this.totalSelectedUTXOAmount=0,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.totalBalance=0,this.fundingAmount=null,this.selectedPubkey="",this.isPrivate=!1,this.feeRateTypes=o.vn,this.selFeeRate="",this.customFeeRate=null,this.flgMinConf=!1,this.minConfValue=null,this.screenSize="",this.screenSizeEnum=o.cu,this.unSubs=[new c.x,new c.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.isCompatibleVersion=this.data.message.isCompatibleVersion,this.information=this.data.message.information,this.totalBalance=this.data.message.balance,this.utxos=this.data.message.utxos,this.alertTitle=this.data.alertTitle,this.peer=this.data.message.peer||null,this.peers=this.data.message.peers||[],this.actions.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(k=>k.type===o.sW.UPDATE_API_CALL_STATUS_CL||k.type===o.sW.FETCH_CHANNELS_CL)).subscribe(k=>{k.type===o.sW.UPDATE_API_CALL_STATUS_CL&&k.payload.status===o.Bn.ERROR&&"SaveNewChannel"===k.payload.action&&(this.channelConnectionError=k.payload.message),k.type===o.sW.FETCH_CHANNELS_CL&&this.dialogRef.close()});let t="",B="";this.sortedPeers=this.peers.sort((k,FA)=>(t=k.alias?k.alias.toLowerCase():k.id?k.id.toLowerCase():"",B=FA.alias?FA.alias.toLowerCase():k.id.toLowerCase(),tB?1:0)),this.filteredPeers=this.selectedPeer.valueChanges.pipe((0,r.R)(this.unSubs[1]),(0,_s.O)(""),(0,Xr.U)(k=>"string"==typeof k?k:k.alias?k.alias:k.id),(0,Xr.U)(k=>k?this.filterPeers(k):this.sortedPeers.slice()))}filterPeers(t){return this.sortedPeers.filter(B=>0===B.alias.toLowerCase().indexOf(t?t.toLowerCase():""))}displayFn(t){return t&&t.alias?t.alias:t&&t.id?t.id:""}onSelectedPeerChanged(){if(this.channelConnectionError="",this.selectedPubkey=this.selectedPeer.value&&this.selectedPeer.value.id?this.selectedPeer.value.id:null,"string"==typeof this.selectedPeer.value){const t=this.peers.filter(B=>B.alias.length===this.selectedPeer.value.length&&0===B.alias.toLowerCase().indexOf(this.selectedPeer.value?this.selectedPeer.value.toLowerCase():""));1===t.length&&t[0].id&&(this.selectedPubkey=t[0].id)}this.selectedPeer.setErrors(this.selectedPeer.value&&!this.selectedPubkey?{notfound:!0}:null)}onClose(){this.dialogRef.close(!1)}resetData(){this.flgMinConf=!1,this.selFeeRate="",this.minConfValue=null,this.selectedPeer.setValue(""),this.fundingAmount=null,this.isPrivate=!1,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.form.resetForm()}onAdvancedPanelToggle(t){t&&(this.flgMinConf||this.selFeeRate||this.selUTXOs.length&&0!==this.selUTXOs.length)?(this.advancedTitle="Advanced Options",this.flgMinConf&&(this.advancedTitle=this.advancedTitle+" | Min Confirmation Blocks: "+this.minConfValue),this.selFeeRate&&(this.advancedTitle=this.advancedTitle+" | Fee Rate: "+(this.customFeeRate?this.customFeeRate+" (Sats/vB)":this.feeRateTypes.find(B=>B.feeRateId===this.selFeeRate).feeRateType)),this.selUTXOs.length&&this.selUTXOs.length>0&&(this.advancedTitle=this.advancedTitle+" | Total Selected: "+this.selUTXOs.length+" | Selected UTXOs: "+this.decimalPipe.transform(this.totalSelectedUTXOAmount)+" Sats")):this.advancedTitle="Advanced Options"}onUTXOSelectionChange(t){const B={value:0};this.selUTXOs.length&&this.selUTXOs.length>0?(this.totalSelectedUTXOAmount=this.selUTXOs.reduce((k,FA)=>(B.value=k.value+FA.value,B)).value,this.flgUseAllBalance&&this.onUTXOAllBalanceChange()):(this.totalSelectedUTXOAmount=0,this.fundingAmount=null,this.flgUseAllBalance=!1)}onUTXOAllBalanceChange(){this.fundingAmount=this.flgUseAllBalance?this.totalSelectedUTXOAmount:null}onOpenChannel(){if(!this.peer&&!this.selectedPubkey||!this.fundingAmount||this.totalBalance-this.fundingAmount<0||this.flgMinConf&&!this.minConfValue||"customperkb"===this.selFeeRate&&!this.flgMinConf&&!this.customFeeRate)return!0;const t={peerId:this.peer&&this.peer.id?this.peer.id:this.selectedPubkey,satoshis:this.flgUseAllBalance?"all":this.fundingAmount.toString(),announce:!this.isPrivate,minconf:this.flgMinConf?this.minConfValue:null};t.feeRate="customperkb"===this.selFeeRate&&!this.flgMinConf&&this.customFeeRate?1e3*this.customFeeRate+"perkb":this.selFeeRate,this.selUTXOs.length&&this.selUTXOs.length>0&&(t.utxos=[],this.selUTXOs.forEach(B=>t.utxos.push(B.txid+":"+B.output))),this.store.dispatch((0,WA.YX)({payload:t}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(OA.so),A.Y36(OA.WI),A.Y36(u.yh),A.Y36(C.eX),A.Y36(ht.JJ),A.Y36(e.v))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-open-channel"]],viewQuery:function(t,B){if(1&t&&A.Gf(pa,7),2&t){let k;A.iGM(k=A.CRH())&&(B.form=k.first)}},decls:56,vars:34,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column",3,"submit","reset"],["form","ngForm"],["fxLayout","column"],["fxFlex","100",4,"ngIf"],[4,"ngTemplateOutlet"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","70","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","1","required","","name","amount",3,"ngModel","step","min","max","disabled","ngModelChange"],["amount","ngModel"],["matSuffix",""],[4,"ngIf"],["fxFlex","25","fxLayoutAlign","start center"],["tabindex","2","color","primary","name","isPrivate",3,"ngModel","ngModelChange"],["expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayoutAlign.gt-sm","space-between center","fxLayout.gt-sm","row wrap"],["fxFlex","48","fxLayoutAlign","space-between end"],["fxLayoutAlign","start center",3,"fxFlex"],["tabindex","4","placeholder","Fee Rate",3,"value","disabled","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","48","fxLayoutAlign","end center",4,"ngIf"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["fxFlex","2","tabindex","5","color","primary","name","flgMinConf","fxLayoutAlign","stretch start",3,"ngModel","ngClass","ngModelChange","change"],["fxFlex","98"],["matInput","","placeholder","Min Confirmation Blocks","type","number","name","blocks","tabindex","8",3,"ngModel","step","min","required","disabled","ngModelChange"],["blocks","ngModel"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayoutAlign.gt-sm","space-between center","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["autoFocus","","mat-button","","color","primary","type","submit","tabindex","9"],["peerDetailsExpansionBlock",""],["type","text","placeholder","Peer Alias","aria-label","Peers","matInput","","tabindex","1","required","",3,"formControl","matAutocomplete","change"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],[3,"value"],["fxFlex","48","fxLayoutAlign","end center"],["matInput","","placeholder","Fee Rate (Sats/vB)","type","number","name","custFeeRate","tabindex","4",3,"ngModel","step","min","required","ngModelChange"],["custFeeRate","ngModel"],["fxFlex","48","fxLayoutAlign","start end"],["tabindex","6","placeholder","Coin Selection","multiple","",3,"value","selectionChange","valueChange"],["fxFlex","48","tabindex","7","color","primary","name","flgUseAllBalance","matTooltip","Use selected UTXOs balance as the amount to be sent. Final amount sent will be less the mining fee.","matTooltipPosition","above",3,"ngModel","disabled","ngModelChange","change"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["class","flat-expansion-panel my-1","expanded","false",4,"ngIf"],["expanded","false",1,"flat-expansion-panel","my-1"],[1,"font-weight-900"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"],["fxFlex","50"],[1,"overflow-wrap","foreground-secondary-text"]],template:function(t,B){if(1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-card-header",2),A.TgZ(3,"div",3),A.TgZ(4,"span",4),A._uU(5),A.qZA(),A.qZA(),A.TgZ(6,"button",5),A.NdJ("click",function(){return B.onClose()}),A._uU(7,"X"),A.qZA(),A.qZA(),A.TgZ(8,"mat-card-content",6),A.TgZ(9,"form",7,8),A.NdJ("submit",function(){return B.onOpenChannel()})("reset",function(){return B.resetData()}),A.TgZ(11,"div",9),A.YNc(12,cr,8,8,"mat-form-field",10),A.qZA(),A.YNc(13,Oi,1,0,"ng-container",11),A.TgZ(14,"div",9),A.TgZ(15,"div",12),A.TgZ(16,"mat-form-field",13),A.TgZ(17,"input",14,15),A.NdJ("ngModelChange",function(FA){return B.fundingAmount=FA}),A.qZA(),A.TgZ(19,"mat-hint"),A._uU(20),A.ALo(21,"number"),A.qZA(),A.TgZ(22,"span",16),A._uU(23," Sats "),A.qZA(),A.YNc(24,ki,2,0,"mat-error",17),A.YNc(25,ji,2,1,"mat-error",17),A.qZA(),A.TgZ(26,"div",18),A.TgZ(27,"mat-slide-toggle",19),A.NdJ("ngModelChange",function(FA){return B.isPrivate=FA}),A._uU(28,"Private Channel"),A.qZA(),A.qZA(),A.qZA(),A.TgZ(29,"mat-expansion-panel",20),A.NdJ("closed",function(){return B.onAdvancedPanelToggle(!0)})("opened",function(){return B.onAdvancedPanelToggle(!1)}),A.TgZ(30,"mat-expansion-panel-header"),A.TgZ(31,"mat-panel-title"),A.TgZ(32,"span"),A._uU(33),A.qZA(),A.qZA(),A.qZA(),A.TgZ(34,"div",21),A.TgZ(35,"div",22),A.TgZ(36,"div",23),A.TgZ(37,"mat-form-field",24),A.TgZ(38,"mat-select",25),A.NdJ("valueChange",function(FA){return B.selFeeRate=FA})("selectionChange",function(){return B.customFeeRate=null}),A.YNc(39,A0,2,2,"mat-option",26),A.qZA(),A.qZA(),A.YNc(40,Ia,4,5,"mat-form-field",27),A.qZA(),A.TgZ(41,"div",28),A.TgZ(42,"mat-checkbox",29),A.NdJ("ngModelChange",function(FA){return B.flgMinConf=FA})("change",function(){return B.flgMinConf?B.selFeeRate=null:B.minConfValue=null}),A.qZA(),A.TgZ(43,"mat-form-field",30),A.TgZ(44,"input",31,32),A.NdJ("ngModelChange",function(FA){return B.minConfValue=FA}),A.qZA(),A.YNc(46,t0,2,0,"mat-error",17),A.qZA(),A.qZA(),A.qZA(),A.YNc(47,n0,9,8,"div",33),A.qZA(),A.qZA(),A.qZA(),A.YNc(48,i0,3,2,"div",34),A.TgZ(49,"div",35),A.TgZ(50,"button",36),A._uU(51,"Clear Fields"),A.qZA(),A.TgZ(52,"button",37),A._uU(53,"Open Channel"),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.YNc(54,o0,1,1,"ng-template",null,38,A.W1O)),2&t){const k=A.MAs(18),FA=A.MAs(55);A.xp6(5),A.Oqu(B.alertTitle),A.xp6(7),A.Q6J("ngIf",!B.peer&&B.peers&&B.peers.length>0),A.xp6(1),A.Q6J("ngTemplateOutlet",FA),A.xp6(4),A.Q6J("ngModel",B.fundingAmount)("step",1e3)("min",1)("max",B.totalBalance)("disabled",B.flgUseAllBalance),A.xp6(3),A.AsE("Remaining Bal: ",A.lcZ(21,29,B.totalBalance-(B.fundingAmount?B.fundingAmount:0)),"",B.flgUseAllBalance?". Amount replaced by UTXO balance":"",""),A.xp6(4),A.Q6J("ngIf",(null==k.errors?null:k.errors.required)||!B.fundingAmount),A.xp6(1),A.Q6J("ngIf",null==k.errors?null:k.errors.max),A.xp6(2),A.Q6J("ngModel",B.isPrivate),A.xp6(6),A.Oqu(B.advancedTitle),A.xp6(4),A.Q6J("fxFlex","customperkb"!==B.selFeeRate||B.flgMinConf?"100":"48"),A.xp6(1),A.Q6J("value",B.selFeeRate)("disabled",B.flgMinConf),A.xp6(1),A.Q6J("ngForOf",B.feeRateTypes),A.xp6(1),A.Q6J("ngIf","customperkb"===B.selFeeRate&&!B.flgMinConf),A.xp6(2),A.Q6J("ngModel",B.flgMinConf)("ngClass",A.WLB(31,s0,B.screenSize===B.screenSizeEnum.XS||B.screenSize===B.screenSizeEnum.SM,B.screenSize===B.screenSizeEnum.MD||B.screenSize===B.screenSizeEnum.LG||B.screenSize===B.screenSizeEnum.XL)),A.xp6(2),A.Q6J("ngModel",B.minConfValue)("step",1)("min",0)("required",B.flgMinConf)("disabled",!B.flgMinConf),A.xp6(2),A.Q6J("ngIf",B.flgMinConf&&!B.minConfValue),A.xp6(1),A.Q6J("ngIf",B.isCompatibleVersion),A.xp6(1),A.Q6J("ngIf",""!==B.channelConnectionError)}},directives:[Qt.xw,Qt.yH,w.dk,Qt.Wh,F.lW,w.dn,zA._Y,zA.JL,zA.F,ht.O5,ht.tP,V.KE,ot.Nt,zA.wV,zA.qQ,zA.Fd,zA.Fj,dt.q,Ji.F,zA.Q7,zA.JJ,zA.On,V.bx,V.R9,Pt.Rr,or.ib,or.yz,or.yK,vt.gD,ht.sg,tt.oG,ht.mk,d.oO,It.h,qr.ZL,zA.oH,qr.XC,G.ey,V.TO,vt.$L,aA.gM,f.BN,AA.d],pipes:[ht.JJ,ht.Ov],styles:[".open-inputs-box[_ngcontent-%COMP%]{padding:1.2rem 2.4rem .8rem!important}"]}),i})();function c0(i,U){if(1&i&&(A.TgZ(0,"span",7),A._uU(1,"Open"),A.qZA()),2&i){const t=A.oxw();A.s9C("matBadge",t.openChannels)}}function g0(i,U){if(1&i&&(A.TgZ(0,"span",7),A._uU(1,"Pending/Inactive"),A.qZA()),2&i){const t=A.oxw();A.s9C("matBadge",t.pendingChannels)}}let l0=(()=>{class i{constructor(t,B,k,FA){this.logger=t,this.store=B,this.commonService=k,this.router=FA,this.openChannels=0,this.pendingChannels=0,this.selNode={},this.information={},this.peers=[],this.utxos=[],this.totalBalance=0,this.links=[{link:"open",name:"Open"},{link:"pending",name:"Pending/Inactive"}],this.activeLink=0,this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x,new c.x]}ngOnInit(){this.activeLink=this.links.findIndex(t=>t.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(t=>t instanceof Ae.Av)).subscribe(t=>{this.activeLink=this.links.findIndex(B=>B.link===t.urlAfterRedirects.substring(t.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select(l.OL).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.selNode=t.nodeSettings,this.information=t.information,this.totalBalance=t.balance.totalBalance,this.logger.info(t)}),this.store.select(l.Wi).pipe((0,r.R)(this.unSubs[2])).subscribe(t=>{this.peers=t.peers}),this.store.select(l.T4).pipe((0,r.R)(this.unSubs[3])).subscribe(t=>{this.utxos=this.commonService.sortAscByKey(t.utxos.filter(B=>"confirmed"===B.status),"value")}),this.store.select(l.ZW).pipe((0,r.R)(this.unSubs[4])).subscribe(t=>{this.openChannels=t.activeChannels.length||0,this.pendingChannels=t.pendingChannels.length+t.inactiveChannels.length||0,this.logger.info(t)})}onOpenChannel(){const t={peers:this.peers,information:this.information,balance:this.totalBalance,utxos:this.utxos,isCompatibleVersion:this.commonService.isVersionCompatible(this.information.version,"0.9.0")&&this.commonService.isVersionCompatible(this.information.api_version,"0.4.0")};this.store.dispatch((0,eA.qR)({payload:{data:{alertTitle:"Open Channel",message:t,component:Da}}}))}onSelectedTabChange(t){this.router.navigateByUrl("/cl/connections/channels/"+this.links[t.index].link)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh),A.Y36(e.v),A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-channels-tables"]],decls:12,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100",1,"my-2","bordered-box"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"button",2),A.NdJ("click",function(){return B.onOpenChannel()}),A._uU(3,"Open Channel"),A.qZA(),A.qZA(),A.TgZ(4,"div",3),A.TgZ(5,"mat-tab-group",4),A.NdJ("selectedIndexChange",function(FA){return B.activeLink=FA})("selectedTabChange",function(FA){return B.onSelectedTabChange(FA)}),A.TgZ(6,"mat-tab"),A.YNc(7,c0,2,1,"ng-template",5),A.qZA(),A.TgZ(8,"mat-tab"),A.YNc(9,g0,2,1,"ng-template",5),A.qZA(),A.qZA(),A.TgZ(10,"div",6),A._UZ(11,"router-outlet"),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(5),A.Q6J("selectedIndex",B.activeLink))},directives:[Qt.xw,Qt.yH,Qt.Wh,F.lW,yA.SP,yA.uX,yA.uD,Ae.lC,Rr.k],styles:[""]}),i})();function B0(i,U){if(1&i&&(A.TgZ(0,"div"),A.TgZ(1,"div",9),A.TgZ(2,"div",1),A.TgZ(3,"h4",11),A._uU(4,"Funding Transaction Id"),A.qZA(),A.TgZ(5,"span",12),A._uU(6),A.qZA(),A.qZA(),A.qZA(),A._UZ(7,"mat-divider",13),A.qZA()),2&i){const t=A.oxw();A.xp6(6),A.Oqu(t.channel.funding_txid),A.xp6(1),A.Q6J("inset",!0)}}function pi(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Show Advanced"),A.qZA())}function de(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Hide Advanced"),A.qZA())}function ee(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"button",23),A.NdJ("copied",function(k){return A.CHM(t),A.oxw().onCopyChanID(k)}),A._uU(1,"Copy Short Channel ID"),A.qZA()}if(2&i){const t=A.oxw();A.Q6J("payload",t.channel.short_channel_id)}}function u0(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"button",24),A.NdJ("click",function(){return A.CHM(t),A.oxw().onClose()}),A._uU(1,"OK"),A.qZA()}}const va=function(i){return{"xs-scroll-y":i}},$r=function(i,U){return{"mt-2":i,"mt-1":U}};let Zi=(()=>{class i{constructor(t,B,k,FA,pt){this.dialogRef=t,this.data=B,this.logger=k,this.commonService=FA,this.snackBar=pt,this.faReceipt=E.dLy,this.showAdvanced=!1,this.showCopy=!0,this.showCopyField=null,this.screenSize="",this.screenSizeEnum=o.cu}ngOnInit(){this.channel=this.data.channel,this.showCopy=this.data.showCopy,this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyChanID(t){this.snackBar.open("Short channel ID "+t+" copied."),this.logger.info("Copied Text: "+t)}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(OA.so),A.Y36(OA.WI),A.Y36(h.mQ),A.Y36(e.v),A.Y36(Hn.ux))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-channel-information"]],decls:94,vars:40,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"my-1",3,"inset"],["fxFlex","25"],[1,"overflow-wrap","foreground-secondary-text"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","100",3,"ngClass"],["mat-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(t,B){if(1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-card-header",2),A.TgZ(3,"div",3),A._UZ(4,"fa-icon",4),A.TgZ(5,"span",5),A._uU(6,"Channel Information"),A.qZA(),A.qZA(),A.TgZ(7,"button",6),A.NdJ("click",function(){return B.onClose()}),A._uU(8,"X"),A.qZA(),A.qZA(),A.TgZ(9,"mat-card-content",7),A.TgZ(10,"div",8),A.TgZ(11,"div",9),A.TgZ(12,"div",10),A.TgZ(13,"h4",11),A._uU(14,"Short Channel ID"),A.qZA(),A.TgZ(15,"span",12),A._uU(16),A.qZA(),A.qZA(),A.TgZ(17,"div",10),A.TgZ(18,"h4",11),A._uU(19,"Peer Alias"),A.qZA(),A.TgZ(20,"span",12),A._uU(21),A.qZA(),A.qZA(),A.qZA(),A._UZ(22,"mat-divider",13),A.TgZ(23,"div",9),A.TgZ(24,"div",1),A.TgZ(25,"h4",11),A._uU(26,"Channel ID"),A.qZA(),A.TgZ(27,"span",12),A._uU(28),A.qZA(),A.qZA(),A.qZA(),A._UZ(29,"mat-divider",13),A.TgZ(30,"div",9),A.TgZ(31,"div",1),A.TgZ(32,"h4",11),A._uU(33,"Peer Public Key"),A.qZA(),A.TgZ(34,"span",12),A._uU(35),A.qZA(),A.qZA(),A.qZA(),A._UZ(36,"mat-divider",13),A.TgZ(37,"div",9),A.TgZ(38,"div",14),A.TgZ(39,"h4",11),A._uU(40,"mSatoshi to Us"),A.qZA(),A.TgZ(41,"span",15),A._uU(42),A.ALo(43,"number"),A.qZA(),A.qZA(),A.TgZ(44,"div",14),A.TgZ(45,"h4",11),A._uU(46,"Spendable (mSats)"),A.qZA(),A.TgZ(47,"span",15),A._uU(48),A.ALo(49,"number"),A.qZA(),A.qZA(),A.TgZ(50,"div",14),A.TgZ(51,"h4",11),A._uU(52,"Total (mSats)"),A.qZA(),A.TgZ(53,"span",15),A._uU(54),A.ALo(55,"number"),A.qZA(),A.qZA(),A.TgZ(56,"div",14),A.TgZ(57,"h4",11),A._uU(58,"State"),A.qZA(),A.TgZ(59,"span",15),A._uU(60),A.qZA(),A.qZA(),A.qZA(),A._UZ(61,"mat-divider",13),A.TgZ(62,"div",9),A.TgZ(63,"div",14),A.TgZ(64,"h4",11),A._uU(65,"Our Reserve (Sats)"),A.qZA(),A.TgZ(66,"span",15),A._uU(67),A.ALo(68,"number"),A.qZA(),A.qZA(),A.TgZ(69,"div",14),A.TgZ(70,"h4",11),A._uU(71,"Their Reserve (Sats)"),A.qZA(),A.TgZ(72,"span",15),A._uU(73),A.ALo(74,"number"),A.qZA(),A.qZA(),A.TgZ(75,"div",14),A.TgZ(76,"h4",11),A._uU(77,"Connected"),A.qZA(),A.TgZ(78,"span",15),A._uU(79),A.qZA(),A.qZA(),A.TgZ(80,"div",14),A.TgZ(81,"h4",11),A._uU(82,"Private"),A.qZA(),A.TgZ(83,"span",15),A._uU(84),A.qZA(),A.qZA(),A.qZA(),A._UZ(85,"mat-divider",13),A.YNc(86,B0,8,2,"div",16),A.TgZ(87,"div",17),A.TgZ(88,"button",18),A.NdJ("click",function(){return B.onShowAdvanced()}),A.YNc(89,pi,2,0,"p",19),A.YNc(90,de,2,0,"ng-template",null,20,A.W1O),A.qZA(),A.YNc(92,ee,2,1,"button",21),A.YNc(93,u0,2,0,"button",22),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t){const k=A.MAs(91);A.xp6(4),A.Q6J("icon",B.faReceipt),A.xp6(5),A.Q6J("ngClass",A.VKq(35,va,B.screenSize===B.screenSizeEnum.XS)),A.xp6(7),A.Oqu(B.channel.short_channel_id),A.xp6(5),A.Oqu(B.channel.alias),A.xp6(1),A.Q6J("inset",!0),A.xp6(6),A.Oqu(B.channel.channel_id),A.xp6(1),A.Q6J("inset",!0),A.xp6(6),A.Oqu(B.channel.id),A.xp6(1),A.Q6J("inset",!0),A.xp6(6),A.Oqu(A.lcZ(43,25,B.channel.msatoshi_to_us)),A.xp6(6),A.Oqu(A.lcZ(49,27,B.channel.spendable_msatoshi)),A.xp6(6),A.Oqu(A.lcZ(55,29,B.channel.msatoshi_total)),A.xp6(6),A.Oqu(B.channel.state),A.xp6(1),A.Q6J("inset",!0),A.xp6(6),A.Oqu(A.lcZ(68,31,B.channel.our_channel_reserve_satoshis)),A.xp6(6),A.Oqu(A.lcZ(74,33,B.channel.their_channel_reserve_satoshis)),A.xp6(6),A.Oqu(B.channel.connected?"Yes":"No"),A.xp6(5),A.Oqu(B.channel.private?"Yes":"No"),A.xp6(1),A.Q6J("inset",!0),A.xp6(1),A.Q6J("ngIf",B.showAdvanced),A.xp6(1),A.Q6J("ngClass",A.WLB(37,$r,!B.showAdvanced,B.showAdvanced)),A.xp6(2),A.Q6J("ngIf",!B.showAdvanced)("ngIfElse",k),A.xp6(3),A.Q6J("ngIf",B.showCopy),A.xp6(1),A.Q6J("ngIf",!B.showCopy)}},directives:[Qt.xw,Qt.Wh,Qt.yH,w.dk,f.BN,F.lW,w.dn,ht.mk,d.oO,AA.d,ht.O5,It.h,Kr.y],pipes:[ht.JJ],styles:[""]}),i})();function f0(i,U){1&i&&A._UZ(0,"mat-progress-bar",33)}function E0(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1," Short Channel ID "),A.qZA())}function ma(i,U){if(1&i&&(A.TgZ(0,"span",40),A._UZ(1,"fa-icon",41),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("icon",t.faEyeSlash)}}function h0(i,U){if(1&i&&(A.TgZ(0,"span",42),A._UZ(1,"fa-icon",41),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("icon",t.faEye)}}const ln=function(i){return{"max-width":i}};function Ki(i,U){if(1&i&&(A.TgZ(0,"td",35),A.TgZ(1,"div",36),A.YNc(2,ma,2,1,"span",37),A.YNc(3,h0,2,1,"span",38),A.TgZ(4,"span",39),A._uU(5),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.xp6(1),A.Q6J("ngStyle",A.VKq(4,ln,B.screenSize===B.screenSizeEnum.XS?"12rem":"22rem")),A.xp6(1),A.Q6J("ngIf",t.private),A.xp6(1),A.Q6J("ngIf",!t.private),A.xp6(2),A.Oqu(null==t?null:t.short_channel_id)}}function ya(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1," Alias "),A.qZA())}function Ii(i,U){if(1&i&&(A.TgZ(0,"td",35),A.TgZ(1,"div",36),A.TgZ(2,"span",39),A._uU(3),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.xp6(1),A.Q6J("ngStyle",A.VKq(2,ln,B.screenSize===B.screenSizeEnum.XS?"12rem":"22rem")),A.xp6(2),A.Oqu(null==t?null:t.alias)}}function w0(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1," Connected "),A.qZA())}function mr(i,U){if(1&i&&(A.TgZ(0,"td",35),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null!=t&&t.connected?"Connected":"Disconnected"," ")}}function tr(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1," Private "),A.qZA())}function gr(i,U){if(1&i&&(A.TgZ(0,"td",35),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null!=t&&t.private?"Private":"Public"," ")}}function lr(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1," State "),A.qZA())}function C0(i,U){if(1&i&&(A.TgZ(0,"td",35),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.state,"")}}function Q0(i,U){1&i&&(A.TgZ(0,"th",43),A._uU(1," Local Balance (Sats) "),A.qZA())}function M0(i,U){if(1&i&&(A.TgZ(0,"td",35),A.TgZ(1,"span",44),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.xi3(3,1,(null==t?null:t.msatoshi_to_us)/1e3,(null==t?null:t.msatoshi_to_us)<1e3?"1.0-4":"1.0-0")," ")}}function Di(i,U){1&i&&(A.TgZ(0,"th",43),A._uU(1," Remote Balance (Sats) "),A.qZA())}function d0(i,U){if(1&i&&(A.TgZ(0,"td",35),A.TgZ(1,"span",44),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.xi3(3,1,(null==t?null:t.msatoshi_to_them)/1e3,(null==t?null:t.msatoshi_to_them)<1e3?"1.0-4":"1.0-0")," ")}}function xa(i,U){1&i&&(A.TgZ(0,"th",43),A._uU(1," Total mSatoshis "),A.qZA())}function p0(i,U){if(1&i&&(A.TgZ(0,"td",35),A.TgZ(1,"span",44),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.lcZ(3,1,null==t?null:t.msatoshi_total)," ")}}function I0(i,U){1&i&&(A.TgZ(0,"th",43),A._uU(1," Spendable Satoshi "),A.qZA())}function Ce(i,U){if(1&i&&(A.TgZ(0,"td",35),A.TgZ(1,"span",44),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.lcZ(3,1,null==t?null:t.spendable_msatoshi)," ")}}function Fa(i,U){1&i&&(A.TgZ(0,"th",45),A._uU(1,"Balance Score "),A.qZA())}function D0(i,U){if(1&i&&(A.TgZ(0,"td",46),A.TgZ(1,"div",47),A.TgZ(2,"mat-hint",48),A._uU(3),A.ALo(4,"number"),A.qZA(),A.qZA(),A._UZ(5,"mat-progress-bar",49),A.qZA()),2&i){const t=U.$implicit;A.xp6(3),A.Oqu(A.lcZ(4,2,t.balancedness||0)),A.xp6(2),A.s9C("value",t.msatoshi_to_us&&t.msatoshi_to_us>0?+t.msatoshi_to_us/(+t.msatoshi_to_us+ +t.msatoshi_to_them)*100:0)}}function v0(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",50),A.TgZ(1,"div",51),A.TgZ(2,"mat-select",52),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",53),A.NdJ("click",function(){return A.CHM(t),A.oxw().onChannelUpdate("all")}),A._uU(5,"Update Fee Policy"),A.qZA(),A.TgZ(6,"mat-option",53),A.NdJ("click",function(){return A.CHM(t),A.oxw().onDownloadCSV()}),A._uU(7,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}function Ya(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",54),A.TgZ(1,"div",55),A.TgZ(2,"mat-select",56),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",53),A.NdJ("click",function(k){const pt=A.CHM(t).$implicit;return A.oxw().onChannelClick(pt,k)}),A._uU(5,"View Info"),A.qZA(),A.TgZ(6,"mat-option",53),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().onViewRemotePolicy(FA)}),A._uU(7,"View Remote Fee"),A.qZA(),A.TgZ(8,"mat-option",53),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().onChannelUpdate(FA)}),A._uU(9,"Update Fee Policy"),A.qZA(),A.TgZ(10,"mat-option",53),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().onChannelClose(FA)}),A._uU(11,"Close Channel"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}function m0(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No peers connected. Add a peer in order to open a channel."),A.qZA())}function y0(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No channel available."),A.qZA())}function x0(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting channels..."),A.qZA())}function Ta(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.errorMessage)}}function vi(i,U){if(1&i&&(A.TgZ(0,"td",57),A.YNc(1,m0,2,0,"p",58),A.YNc(2,y0,2,0,"p",58),A.YNc(3,x0,2,0,"p",58),A.YNc(4,Ta,2,1,"p",58),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngIf",t.numPeers<1&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",t.numPeers>0&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const Sa=function(i){return{"display-none":i}};function F0(i,U){if(1&i&&A._UZ(0,"tr",59),2&i){const t=A.oxw();A.Q6J("ngClass",A.VKq(1,Sa,t.numPeers>0&&(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function Y0(i,U){1&i&&A._UZ(0,"tr",60)}function T0(i,U){1&i&&A._UZ(0,"tr",61)}const S0=function(i){return{"overflow-auto error-border":i,"overflow-auto":!0}},U0=function(){return["no_peer"]};let P0=(()=>{class i{constructor(t,B,k,FA,pt){this.logger=t,this.store=B,this.rtlEffects=k,this.clEffects=FA,this.commonService=pt,this.faEye=E.Mdf,this.faEyeSlash=E.Aq,this.totalBalance=0,this.displayedColumns=[],this.channelsData=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=o.vn,this.selFilter="",this.flgSticky=!1,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","msatoshi_to_us","msatoshi_to_them","actions"]):this.screenSize===o.cu.SM||this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["short_channel_id","alias","msatoshi_to_us","msatoshi_to_them","actions"]):(this.flgSticky=!0,this.displayedColumns=["short_channel_id","alias","msatoshi_to_us","msatoshi_to_them","balancedness","actions"])}ngOnInit(){this.store.select(l.jK).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.information=t.information,this.numPeers=t.numPeers,this.totalBalance=t.balance.totalBalance,this.logger.info(t)}),this.store.select(l.ZW).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.channelsData=t.activeChannels,this.channelsData.length>0&&this.loadChannelsTable(this.channelsData),this.logger.info(t)})}ngAfterViewInit(){this.channelsData.length>0&&this.loadChannelsTable(this.channelsData)}onViewRemotePolicy(t){this.store.dispatch((0,WA.$A)({payload:{uiMessage:o.m6.GET_REMOTE_POLICY,shortChannelID:t.short_channel_id,showError:!0}})),this.clEffects.setLookupCL.pipe((0,nn.q)(1)).subscribe(B=>{if(0===B.length)return!1;let k={};k=B[0].source!==this.information.id?B[0]:B[1];const FA=[[{key:"base_fee_millisatoshi",value:k.base_fee_millisatoshi,title:"Base Fees (mSats)",width:34,type:o.Gi.NUMBER},{key:"fee_per_millionth",value:k.fee_per_millionth,title:"Fee/Millionth",width:33,type:o.Gi.NUMBER},{key:"delay",value:k.delay,title:"Delay",width:33,type:o.Gi.NUMBER}]],pt="Remote policy for Channel: "+(t.alias||t.short_channel_id?t.alias&&t.short_channel_id?t.alias+" ("+t.short_channel_id+")":t.alias?t.alias:t.short_channel_id:t.channel_id);setTimeout(()=>{this.store.dispatch((0,eA.qR)({payload:{data:{type:o.n_.INFORMATION,alertTitle:"Remote Channel Policy",titleMessage:pt,message:FA}}}))},0)})}onChannelUpdate(t){"all"!==t&&"ONCHAIN"===t.state||("all"===t?(this.store.dispatch((0,eA.c1)({payload:{data:{type:o.n_.CONFIRM,alertTitle:"Update Fee Policy",noBtnText:"Cancel",yesBtnText:"Update All",message:[],titleMessage:"Update fee policy for all channels",flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSats)",inputType:"number",inputValue:1e3,width:48},{placeholder:"Fee Rate (mili mSats)",inputType:"number",inputValue:1,min:1,width:48,hintFunction:this.percentHintFunction}]}}})),this.rtlEffects.closeConfirm.pipe((0,r.R)(this.unSubs[1])).subscribe(k=>{k&&this.store.dispatch((0,WA.pW)({payload:{baseFeeMsat:k[0].inputValue,feeRate:k[1].inputValue,channelId:"all"}}))})):(this.myChanPolicy={fee_base_msat:0,fee_rate_milli_msat:0},this.store.dispatch((0,WA.$A)({payload:{uiMessage:o.m6.GET_CHAN_POLICY,shortChannelID:t.short_channel_id,showError:!1}})),this.clEffects.setLookupCL.pipe((0,nn.q)(1)).subscribe(B=>{this.myChanPolicy=B.length>0&&B[0].source===this.information.id?{fee_base_msat:B[0].base_fee_millisatoshi,fee_rate_milli_msat:B[0].fee_per_millionth}:B.length>1&&B[1].source===this.information.id?{fee_base_msat:B[1].base_fee_millisatoshi,fee_rate_milli_msat:B[1].fee_per_millionth}:{fee_base_msat:0,fee_rate_milli_msat:0},this.logger.info(this.myChanPolicy);const k="Update fee policy for Channel: "+(t.alias||t.short_channel_id?t.alias&&t.short_channel_id?t.alias+" ("+t.short_channel_id+")":t.alias?t.alias:t.short_channel_id:t.channel_id),FA=[];setTimeout(()=>{this.store.dispatch((0,eA.c1)({payload:{data:{type:o.n_.CONFIRM,alertTitle:"Update Fee Policy",noBtnText:"Cancel",yesBtnText:"Update",message:FA,titleMessage:k,flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSats)",inputType:"number",inputValue:""===this.myChanPolicy.fee_base_msat?0:this.myChanPolicy.fee_base_msat,width:48},{placeholder:"Fee Rate (mili mSats)",inputType:"number",inputValue:this.myChanPolicy.fee_rate_milli_msat,min:1,width:48,hintFunction:this.percentHintFunction}]}}}))},0)}),this.rtlEffects.closeConfirm.pipe((0,r.R)(this.unSubs[2])).subscribe(B=>{B&&this.store.dispatch((0,WA.pW)({payload:{baseFeeMsat:B[0].inputValue,feeRate:B[1].inputValue,channelId:t.channel_id}}))})),this.applyFilter())}percentHintFunction(t){return(t/1e4).toString()+"%"}onChannelClose(t){this.store.dispatch((0,eA.c1)({payload:{data:{type:o.n_.CONFIRM,alertTitle:"Close Channel",titleMessage:"Closing channel: "+(t.alias||t.short_channel_id?t.alias&&t.short_channel_id?t.alias+" ("+t.short_channel_id+")":t.alias?t.alias:t.short_channel_id:t.channel_id),noBtnText:"Cancel",yesBtnText:"Close Channel"}}})),this.rtlEffects.closeConfirm.pipe((0,r.R)(this.unSubs[3])).subscribe(B=>{B&&this.store.dispatch((0,WA.BL)({payload:{id:t.id,channelId:t.channel_id,force:!1}}))})}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onChannelClick(t,B){this.store.dispatch((0,eA.qR)({payload:{data:{channel:t,showCopy:!0,component:Zi}}}))}loadChannelsTable(t){t.sort((B,k)=>B.active===k.active?0:k.active?1:-1),this.channels=new SA.by([...t]),this.channels.filterPredicate=(B,k)=>((B.connected?"connected":"disconnected")+(B.channel_id?B.channel_id.toLowerCase():"")+(B.short_channel_id?B.short_channel_id.toLowerCase():"")+(B.id?B.id.toLowerCase():"")+(B.alias?B.alias.toLowerCase():"")+(B.private?"private":"public")+(B.state?B.state.toLowerCase():"")+(B.funding_txid?B.funding_txid.toLowerCase():"")+(B.msatoshi_to_us?B.msatoshi_to_us:"")+(B.msatoshi_total?B.msatoshi_total:"")+(B.their_channel_reserve_satoshis?B.their_channel_reserve_satoshis:"")+(B.our_channel_reserve_satoshis?B.our_channel_reserve_satoshis:"")+(B.spendable_msatoshi?B.spendable_msatoshi:"")).includes(k),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(B,k)=>B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null,this.channels.paginator=this.paginator,this.applyFilter(),this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"Open-channels")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh),A.Y36(at.V),A.Y36(ke.s),A.Y36(e.v))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-channel-open-table"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Channels")}])],decls:48,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["mode","indeterminate",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container","w-100",3,"perfectScrollbar"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","short_channel_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","connected"],["matColumnDef","private"],["matColumnDef","state"],["matColumnDef","msatoshi_to_us"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi_to_them"],["matColumnDef","msatoshi_total"],["matColumnDef","spendable_msatoshi"],["matColumnDef","balancedness"],["mat-header-cell","","mat-sort-header","","class","pl-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pl-1",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],["class","mr-1","matTooltip","Private","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Public","matTooltipPosition","right",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Private","matTooltipPosition","right",1,"mr-1"],[3,"icon"],["matTooltip","Public","matTooltipPosition","right",1,"mr-1"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-3"],["mat-cell","",1,"pl-3"],["fxLayout","row"],["fxFlex","100","fxLayoutAlign","center center",1,"font-size-80"],["mode","determinate",3,"value"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","2",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A._UZ(2,"div",2),A.TgZ(3,"mat-form-field",3),A.TgZ(4,"input",4),A.NdJ("keyup",function(){return B.applyFilter()})("ngModelChange",function(FA){return B.selFilter=FA}),A.qZA(),A.qZA(),A.qZA(),A.YNc(5,f0,1,0,"mat-progress-bar",5),A.TgZ(6,"div",6),A.TgZ(7,"table",7,8),A.ynx(9,9),A.YNc(10,E0,2,0,"th",10),A.YNc(11,Ki,6,6,"td",11),A.BQk(),A.ynx(12,12),A.YNc(13,ya,2,0,"th",10),A.YNc(14,Ii,4,4,"td",11),A.BQk(),A.ynx(15,13),A.YNc(16,w0,2,0,"th",10),A.YNc(17,mr,2,1,"td",11),A.BQk(),A.ynx(18,14),A.YNc(19,tr,2,0,"th",10),A.YNc(20,gr,2,1,"td",11),A.BQk(),A.ynx(21,15),A.YNc(22,lr,2,0,"th",10),A.YNc(23,C0,2,1,"td",11),A.BQk(),A.ynx(24,16),A.YNc(25,Q0,2,0,"th",17),A.YNc(26,M0,4,4,"td",11),A.BQk(),A.ynx(27,18),A.YNc(28,Di,2,0,"th",17),A.YNc(29,d0,4,4,"td",11),A.BQk(),A.ynx(30,19),A.YNc(31,xa,2,0,"th",17),A.YNc(32,p0,4,3,"td",11),A.BQk(),A.ynx(33,20),A.YNc(34,I0,2,0,"th",17),A.YNc(35,Ce,4,3,"td",11),A.BQk(),A.ynx(36,21),A.YNc(37,Fa,2,0,"th",22),A.YNc(38,D0,6,4,"td",23),A.BQk(),A.ynx(39,24),A.YNc(40,v0,8,0,"th",25),A.YNc(41,Ya,12,0,"td",26),A.BQk(),A.ynx(42,27),A.YNc(43,vi,5,4,"td",28),A.BQk(),A.YNc(44,F0,1,3,"tr",29),A.YNc(45,Y0,1,0,"tr",30),A.YNc(46,T0,1,0,"tr",31),A.qZA(),A.qZA(),A._UZ(47,"mat-paginator",32),A.qZA()),2&t&&(A.xp6(4),A.Q6J("ngModel",B.selFilter),A.xp6(1),A.Q6J("ngIf",B.apiCallStatus.status===B.apiCallStatusEnum.INITIATED),A.xp6(2),A.Q6J("dataSource",B.channels)("ngClass",A.VKq(11,S0,""!==B.errorMessage)),A.xp6(37),A.Q6J("matFooterRowDef",A.DdM(13,U0)),A.xp6(1),A.Q6J("matHeaderRowDef",B.displayedColumns)("matHeaderRowDefSticky",B.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",B.displayedColumns),A.xp6(1),A.Q6J("pageSize",B.pageSize)("pageSizeOptions",B.pageSizeOptions)("showFirstLastButtons",B.screenSize!==B.screenSizeEnum.XS))},directives:[Qt.xw,Qt.Wh,Qt.yH,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,ht.O5,gA.$V,SA.BZ,lt.YE,ht.mk,d.oO,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,ft.NW,Y.pW,SA.ge,lt.nU,SA.ev,ht.PC,d.Zl,aA.gM,f.BN,V.bx,vt.gD,vt.$L,G.ey,SA.yh,SA.Q2,SA.XQ,SA.Gk],pipes:[ht.JJ],styles:[".mat-column-short_channel_id[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-short_channel_id[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-alias[_ngcontent-%COMP%]{flex:0 0 20%;width:20%}.mat-column-alias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-balancedness[_ngcontent-%COMP%]{padding-left:3rem;flex:0 0 22%;width:22%}.mat-column-state[_ngcontent-%COMP%], .mat-column-msatoshi_to_us[_ngcontent-%COMP%], .mat-column-msatoshi_to_them[_ngcontent-%COMP%]{flex:1 1 15%;width:15%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width: 37.5em){.mat-column-state[_ngcontent-%COMP%], .mat-column-msatoshi_to_us[_ngcontent-%COMP%], .mat-column-msatoshi_to_them[_ngcontent-%COMP%]{white-space:unset}}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 100%}@media only screen and (max-width: 37.5em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 80%}}"]}),i})();const z0=["outputIdx"];function mi(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Output Index required."),A.qZA())}function R0(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Invalid index value."),A.qZA())}function Wi(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Fees is required."),A.qZA())}function Ua(i,U){if(1&i&&(A.TgZ(0,"div",27),A._UZ(1,"fa-icon",13),A.TgZ(2,"span"),A._uU(3),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("icon",t.faExclamationTriangle),A.xp6(2),A.Oqu(t.bumpFeeError)}}let N0=(()=>{class i{constructor(t,B,k,FA,pt,Ye){this.actions=t,this.dialogRef=B,this.data=k,this.store=FA,this.logger=pt,this.snackBar=Ye,this.newAddress="",this.fees=null,this.outputIndex=null,this.faCopy=E.kZ_,this.faInfoCircle=E.sqG,this.faExclamationTriangle=E.eHv,this.bumpFeeError="",this.unSubs=[new c.x,new c.x]}set payReq(t){t&&(this.outputIdx=t)}ngOnInit(){this.bumpFeeChannel=this.data.channel}onBumpFee(){if(!this.outputIndex&&0!==this.outputIndex||!this.fees)return!0;this.bumpFeeError="",this.store.dispatch((0,WA._E)({payload:o._t[0]})),this.actions.pipe((0,_A.h)(t=>t.type===o.sW.SET_NEW_ADDRESS_CL),(0,nn.q)(1)).subscribe(t=>{this.store.dispatch((0,WA.Wi)({payload:{address:t.payload,satoshis:"all",feeRate:this.fees,utxos:[this.bumpFeeChannel.funding_txid+":"+this.outputIndex.toString()]}}))}),this.actions.pipe((0,_A.h)(t=>t.type===o.sW.SET_CHANNEL_TRANSACTION_RES_CL),(0,nn.q)(1)).subscribe(t=>{this.store.dispatch((0,eA.jW)({payload:"Successfully bumped the fee. Use the block explorer to verify transaction."})),this.dialogRef.close()}),this.actions.pipe((0,_A.h)(t=>t.type===o.sW.UPDATE_API_CALL_STATUS_CL),(0,r.R)(this.unSubs[0])).subscribe(t=>{t.payload.status===o.Bn.ERROR&&("SetChannelTransaction"===t.payload.action||"GenerateNewAddress"===t.payload.action)&&(this.logger.error(t.payload.message),this.bumpFeeError=t.payload.message)})}onCopyID(t){this.snackBar.open("Transaction ID copied.")}resetData(){this.bumpFeeError="",this.fees=null,this.outputIndex=null,this.outputIdx.control.setErrors(null)}onClose(){this.dialogRef.close(!1)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(C.eX),A.Y36(OA.so),A.Y36(OA.WI),A.Y36(u.yh),A.Y36(h.mQ),A.Y36(Hn.ux))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-bump-fee"]],viewQuery:function(t,B){if(1&t&&A.Gf(z0,5),2&t){let k;A.iGM(k=A.CRH())&&(B.payReq=k.first)}},decls:47,vars:15,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxLayout","column",1,"bordered-box","mb-1","p-2"],["fxLayoutAlign","start center",1,"pb-1","word-break"],["matSuffix","","rtlClipboard","","matTooltip","Copy transaction ID",1,"ml-1",3,"icon","payload","copied"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column","fxFlex","100"],[1,"pl-1"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","49"],["autoFocus","","matInput","","placeholder","Output Index","type","number","tabindex","1","required","","name","outputIdx",3,"ngModel","step","min","ngModelChange"],["outputIdx","ngModel"],[4,"ngIf"],["matInput","","placeholder","Fees (Sats/vByte)","type","number","name","fees","required","","tabindex","4",3,"ngModel","step","min","ngModelChange"],["fee","ngModel"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center"],["mat-button","","color","primary","type","reset","tabindex","5","default","",1,"mr-1",3,"click"],["mat-button","","color","primary","type","submit","tabindex","6",3,"click"],["fxFlex","100",1,"alert","alert-danger","mt-1"]],template:function(t,B){if(1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-card-header",2),A.TgZ(3,"div",3),A.TgZ(4,"span",4),A._uU(5,"Bump Fee"),A.qZA(),A.qZA(),A.TgZ(6,"button",5),A.NdJ("click",function(){return B.onClose()}),A._uU(7,"X"),A.qZA(),A.qZA(),A.TgZ(8,"mat-card-content",6),A.TgZ(9,"form",7),A.TgZ(10,"div",8),A.TgZ(11,"p",9),A._uU(12),A.TgZ(13,"fa-icon",10),A.NdJ("copied",function(FA){return B.onCopyID(FA)}),A.qZA(),A.qZA(),A.TgZ(14,"div",11),A.TgZ(15,"div",12),A._UZ(16,"fa-icon",13),A.TgZ(17,"span",14),A._uU(18,"Bumping fee on pending open channels is an advanced feature, attempt it only if you are familiar with the functionality of Bitcoin transactions. "),A.TgZ(19,"div"),A._uU(20,"Before attempting fee bump ensure the following:"),A.qZA(),A.TgZ(21,"div",15),A._uU(22,"1: Use a Bitcoin block explorer to ensure that channel opening transaction is not confirmed."),A.qZA(),A.TgZ(23,"div",15),A._uU(24,"2: The channel opening transaction must have a sizable change output, which can be spent further. The fee cannot be bumped without the change output."),A.qZA(),A.TgZ(25,"div",15),A._uU(26,"3: Find the index value of the change output via a block explorer."),A.qZA(),A.TgZ(27,"div",15),A._uU(28,"4: Enter the index value of the change output in the form below and the desired fee rate."),A.qZA(),A.TgZ(29,"div",15),A._uU(30,"5: Upon successful fee bump, use your block explorer to track the child transaction in the mempool, which should be linked with the change output transaction."),A.qZA(),A.qZA(),A.qZA(),A.TgZ(31,"div",16),A.TgZ(32,"mat-form-field",17),A.TgZ(33,"input",18,19),A.NdJ("ngModelChange",function(FA){return B.outputIndex=FA}),A.qZA(),A.YNc(35,mi,2,0,"mat-error",20),A.YNc(36,R0,2,0,"mat-error",20),A.qZA(),A.TgZ(37,"mat-form-field",17),A.TgZ(38,"input",21,22),A.NdJ("ngModelChange",function(FA){return B.fees=FA}),A.qZA(),A.YNc(40,Wi,2,0,"mat-error",20),A.qZA(),A.qZA(),A.YNc(41,Ua,4,2,"div",23),A.qZA(),A.qZA(),A.TgZ(42,"div",24),A.TgZ(43,"button",25),A.NdJ("click",function(){return B.resetData()}),A._uU(44,"Clear"),A.qZA(),A.TgZ(45,"button",26),A.NdJ("click",function(){return B.onBumpFee()}),A._uU(46),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t){const k=A.MAs(34);A.xp6(12),A.hij("Bump fee for transaction id: ",null==B.bumpFeeChannel?null:B.bumpFeeChannel.funding_txid," "),A.xp6(1),A.Q6J("icon",B.faCopy)("payload",null==B.bumpFeeChannel?null:B.bumpFeeChannel.funding_txid),A.xp6(3),A.Q6J("icon",B.faInfoCircle),A.xp6(17),A.Q6J("ngModel",B.outputIndex)("step",1)("min",0),A.xp6(2),A.Q6J("ngIf",null==k.errors?null:k.errors.required),A.xp6(1),A.Q6J("ngIf",null==k.errors?null:k.errors.pendingChannelOutputIndex),A.xp6(2),A.Q6J("ngModel",B.fees)("step",1)("min",0),A.xp6(2),A.Q6J("ngIf",!B.fees),A.xp6(1),A.Q6J("ngIf",""!==B.bumpFeeError),A.xp6(5),A.Oqu(""!==B.bumpFeeError?"Retry Bump Fee":"Bump Fee")}},directives:[Qt.xw,Qt.yH,w.dk,Qt.Wh,F.lW,w.dn,zA._Y,zA.JL,zA.F,f.BN,V.R9,Kr.y,aA.gM,V.KE,ot.Nt,zA.wV,zA.qQ,zA.Fj,dt.q,It.h,zA.Q7,zA.JJ,zA.On,ht.O5,V.TO],styles:[""]}),i})();function Ai(i,U){1&i&&A._UZ(0,"mat-progress-bar",30)}function hn(i,U){1&i&&(A.TgZ(0,"th",31),A._uU(1," Short Channel ID "),A.qZA())}function yi(i,U){if(1&i&&(A.TgZ(0,"td",32),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.short_channel_id,"")}}function Pa(i,U){1&i&&(A.TgZ(0,"th",31),A._uU(1," Alias "),A.qZA())}function b0(i,U){if(1&i&&(A.TgZ(0,"td",32),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(null==t?null:t.alias)}}function L0(i,U){1&i&&(A.TgZ(0,"th",31),A._uU(1," Connected "),A.qZA())}function G0(i,U){if(1&i&&(A.TgZ(0,"td",32),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null!=t&&t.connected?"Connected":"Disconnected"," ")}}function H0(i,U){1&i&&(A.TgZ(0,"th",31),A._uU(1," Private "),A.qZA())}function J0(i,U){if(1&i&&(A.TgZ(0,"td",32),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null!=t&&t.private?"Private":"Public"," ")}}function O0(i,U){1&i&&(A.TgZ(0,"th",31),A._uU(1," State "),A.qZA())}const k0=function(i){return{"max-width":i}};function j0(i,U){if(1&i&&(A.TgZ(0,"td",33),A._uU(1),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.Q6J("ngStyle",A.VKq(2,k0,B.screenSize===B.screenSizeEnum.XS?"10rem":"")),A.xp6(1),A.hij(" ",B.CLChannelPendingState[null==t?null:t.state]," ")}}function za(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1," mSatoshi To Us "),A.qZA())}function Z0(i,U){if(1&i&&(A.TgZ(0,"td",32),A.TgZ(1,"span",35),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.lcZ(3,1,null==t?null:t.msatoshi_to_us)," ")}}function K0(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1," Total (Sats) "),A.qZA())}function W0(i,U){if(1&i&&(A.TgZ(0,"td",32),A.TgZ(1,"span",35),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.lcZ(3,1,(null==t?null:t.msatoshi_total)/1e3)," ")}}function Br(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1," Spendable Satoshi "),A.qZA())}function V0(i,U){if(1&i&&(A.TgZ(0,"td",32),A.TgZ(1,"span",35),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.lcZ(3,1,null==t?null:t.spendable_msatoshi)," ")}}function xi(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",36),A.TgZ(1,"div",37),A.TgZ(2,"mat-select",38),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",39),A.NdJ("click",function(){return A.CHM(t),A.oxw().onDownloadCSV()}),A._uU(5,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}function X0(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-option",39),A.NdJ("click",function(){A.CHM(t);const k=A.oxw().$implicit;return A.oxw().onChannelClose(k)}),A._uU(1,"Close Channel"),A.qZA()}}function q0(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-option",39),A.NdJ("click",function(){A.CHM(t);const k=A.oxw().$implicit;return A.oxw().onBumpFee(k)}),A._uU(1,"Bump Fee"),A.qZA()}}function _0(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",40),A.TgZ(1,"div",37),A.TgZ(2,"mat-select",41),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",39),A.NdJ("click",function(k){const pt=A.CHM(t).$implicit;return A.oxw().onChannelClick(pt,k)}),A._uU(5,"View Info"),A.qZA(),A.YNc(6,X0,2,0,"mat-option",42),A.YNc(7,q0,2,0,"mat-option",42),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw();A.xp6(6),A.Q6J("ngIf",B.isCompatibleVersion&&("CHANNELD_SHUTTING_DOWN"===t.state||"CLOSINGD_SIGEXCHANGE"===t.state||!t.connected&&"CHANNELD_NORMAL"===t.state)),A.xp6(1),A.Q6J("ngIf","CHANNELD_AWAITING_LOCKIN"===t.state)}}function Ra(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No peers connected. Add a peer in order to open a channel."),A.qZA())}function $0(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No pending/inactive channel available."),A.qZA())}function Ac(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting pending/inactive channels..."),A.qZA())}function tc(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.errorMessage)}}function ec(i,U){if(1&i&&(A.TgZ(0,"td",43),A.YNc(1,Ra,2,0,"p",44),A.YNc(2,$0,2,0,"p",44),A.YNc(3,Ac,2,0,"p",44),A.YNc(4,tc,2,1,"p",44),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngIf",t.numPeers<1&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",t.numPeers>0&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const Na=function(i){return{"display-none":i}};function nc(i,U){if(1&i&&A._UZ(0,"tr",45),2&i){const t=A.oxw();A.Q6J("ngClass",A.VKq(1,Na,t.numPeers>0&&(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function ba(i,U){1&i&&A._UZ(0,"tr",46)}function La(i,U){1&i&&A._UZ(0,"tr",47)}const Ga=function(i){return{"overflow-auto error-border":i,"overflow-auto":!0}},rc=function(){return["no_peer"]};let ic=(()=>{class i{constructor(t,B,k,FA){this.logger=t,this.store=B,this.rtlEffects=k,this.commonService=FA,this.isCompatibleVersion=!1,this.totalBalance=0,this.displayedColumns=[],this.channelsData=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=o.vn,this.selFilter="",this.flgSticky=!1,this.CLChannelPendingState=o.uX,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","state","actions"]):this.screenSize===o.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","connected","state","actions"]):this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","connected","state","msatoshi_total","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","connected","state","msatoshi_total","actions"])}ngOnInit(){this.store.select(l.jK).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.information=t.information,this.information.api_version&&(this.isCompatibleVersion=this.commonService.isVersionCompatible(this.information.api_version,"0.4.2")),this.numPeers=t.numPeers,this.totalBalance=t.balance.totalBalance,this.logger.info(t)}),this.store.select(l.ZW).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.channelsData=[...t.pendingChannels,...t.inactiveChannels],this.channelsData=this.channelsData.sort((B,k)=>this.CLChannelPendingState[B.state]>=this.CLChannelPendingState[k.state]?1:-1),this.channelsData&&this.channelsData.length>0&&this.loadChannelsTable(this.channelsData),this.logger.info(t)})}ngAfterViewInit(){this.channelsData&&this.channelsData.length>0&&this.loadChannelsTable(this.channelsData)}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onBumpFee(t){this.store.dispatch((0,eA.qR)({payload:{data:{channel:t,component:N0}}}))}onChannelClick(t,B){this.store.dispatch((0,eA.qR)({payload:{data:{channel:t,showCopy:!0,component:Zi}}}))}onChannelClose(t){this.store.dispatch((0,eA.c1)({payload:{data:{type:o.n_.CONFIRM,alertTitle:"Force Close Channel",titleMessage:"Force closing channel: "+(t.alias||t.short_channel_id?t.alias&&t.short_channel_id?t.alias+" ("+t.short_channel_id+")":t.alias?t.alias:t.short_channel_id:t.channel_id),noBtnText:"Cancel",yesBtnText:"Force Close"}}})),this.rtlEffects.closeConfirm.pipe((0,r.R)(this.unSubs[2])).subscribe(B=>{B&&this.store.dispatch((0,WA.BL)({payload:{id:t.id,channelId:t.channel_id,force:!0}}))})}loadChannelsTable(t){t.sort((B,k)=>B.active===k.active?0:k.active?1:-1),this.channels=new SA.by([...t]),this.channels.filterPredicate=(B,k)=>((B.connected?"connected":"disconnected")+(B.channel_id?B.channel_id.toLowerCase():"")+(B.short_channel_id?B.short_channel_id.toLowerCase():"")+(B.id?B.id.toLowerCase():"")+(B.alias?B.alias.toLowerCase():"")+(B.private?"private":"public")+(B.state&&this.CLChannelPendingState[B.state]?this.CLChannelPendingState[B.state].toLowerCase():"")+(B.funding_txid?B.funding_txid.toLowerCase():"")+(B.msatoshi_to_us?B.msatoshi_to_us:"")+(B.msatoshi_total?B.msatoshi_total:"")+(B.their_channel_reserve_satoshis?B.their_channel_reserve_satoshis:"")+(B.our_channel_reserve_satoshis?B.our_channel_reserve_satoshis:"")+(B.spendable_msatoshi?B.spendable_msatoshi:"")).includes(k),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(B,k)=>"state"===k?this.CLChannelPendingState[B.state]:B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null,this.channels.paginator=this.paginator,this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"Pending-inactive-channels")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh),A.Y36(at.V),A.Y36(e.v))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-channel-pending-table"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Channels")}])],decls:42,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["mode","indeterminate",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container","w-100",3,"perfectScrollbar"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","short_channel_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","connected"],["matColumnDef","private"],["matColumnDef","state"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","msatoshi_to_us"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi_total"],["matColumnDef","spendable_msatoshi"],["matColumnDef","actions"],["mat-header-cell","","class","pr-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pr-3",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pr-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pr-3"],["placeholder","Actions","tabindex","4",1,"mr-0"],[3,"click",4,"ngIf"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A._UZ(2,"div",2),A.TgZ(3,"mat-form-field",3),A.TgZ(4,"input",4),A.NdJ("keyup",function(){return B.applyFilter()})("ngModelChange",function(FA){return B.selFilter=FA}),A.qZA(),A.qZA(),A.qZA(),A.YNc(5,Ai,1,0,"mat-progress-bar",5),A.TgZ(6,"div",6),A.TgZ(7,"table",7,8),A.ynx(9,9),A.YNc(10,hn,2,0,"th",10),A.YNc(11,yi,2,1,"td",11),A.BQk(),A.ynx(12,12),A.YNc(13,Pa,2,0,"th",10),A.YNc(14,b0,2,1,"td",11),A.BQk(),A.ynx(15,13),A.YNc(16,L0,2,0,"th",10),A.YNc(17,G0,2,1,"td",11),A.BQk(),A.ynx(18,14),A.YNc(19,H0,2,0,"th",10),A.YNc(20,J0,2,1,"td",11),A.BQk(),A.ynx(21,15),A.YNc(22,O0,2,0,"th",10),A.YNc(23,j0,2,4,"td",16),A.BQk(),A.ynx(24,17),A.YNc(25,za,2,0,"th",18),A.YNc(26,Z0,4,3,"td",11),A.BQk(),A.ynx(27,19),A.YNc(28,K0,2,0,"th",18),A.YNc(29,W0,4,3,"td",11),A.BQk(),A.ynx(30,20),A.YNc(31,Br,2,0,"th",18),A.YNc(32,V0,4,3,"td",11),A.BQk(),A.ynx(33,21),A.YNc(34,xi,6,0,"th",22),A.YNc(35,_0,8,2,"td",23),A.BQk(),A.ynx(36,24),A.YNc(37,ec,5,4,"td",25),A.BQk(),A.YNc(38,nc,1,3,"tr",26),A.YNc(39,ba,1,0,"tr",27),A.YNc(40,La,1,0,"tr",28),A.qZA(),A.qZA(),A._UZ(41,"mat-paginator",29),A.qZA()),2&t&&(A.xp6(4),A.Q6J("ngModel",B.selFilter),A.xp6(1),A.Q6J("ngIf",B.apiCallStatus.status===B.apiCallStatusEnum.INITIATED),A.xp6(2),A.Q6J("dataSource",B.channels)("ngClass",A.VKq(11,Ga,""!==B.errorMessage)),A.xp6(31),A.Q6J("matFooterRowDef",A.DdM(13,rc)),A.xp6(1),A.Q6J("matHeaderRowDef",B.displayedColumns)("matHeaderRowDefSticky",B.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",B.displayedColumns),A.xp6(1),A.Q6J("pageSize",B.pageSize)("pageSizeOptions",B.pageSizeOptions)("showFirstLastButtons",B.screenSize!==B.screenSizeEnum.XS))},directives:[Qt.xw,Qt.Wh,Qt.yH,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,ht.O5,gA.$V,SA.BZ,lt.YE,ht.mk,d.oO,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,ft.NW,Y.pW,SA.ge,lt.nU,SA.ev,ht.PC,d.Zl,vt.gD,vt.$L,G.ey,SA.yh,SA.Q2,SA.XQ,SA.Gk],pipes:[ht.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-state[_ngcontent-%COMP%]{flex:1 1 15%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),i})();const ac=["peersForm"],oc=["stepper"];function sc(i,U){if(1&i&&A._uU(0),2&i){const t=A.oxw();A.Oqu(t.peerFormLabel)}}function Ha(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Address is required."),A.qZA())}function cc(i,U){if(1&i&&(A.TgZ(0,"div",40),A._UZ(1,"fa-icon",41),A.TgZ(2,"span"),A._uU(3),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("icon",t.faExclamationTriangle),A.xp6(2),A.Oqu(t.peerConnectionError)}}function gc(i,U){if(1&i&&A._uU(0),2&i){const t=A.oxw();A.Oqu(t.channelFormLabel)}}function lc(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Amount is required."),A.qZA())}function Bc(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Amount must be a positive number."),A.qZA())}function uc(i,U){if(1&i&&(A.TgZ(0,"mat-error"),A._uU(1),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.hij("Amount must be less than or equal to ",t.totalBalance,".")}}function fc(i,U){if(1&i&&(A.TgZ(0,"mat-option",42),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.Q6J("value",t.feeRateId),A.xp6(1),A.hij(" ",t.feeRateType," ")}}function Ja(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Fee Rate is required."),A.qZA())}function Oa(i,U){if(1&i&&(A.TgZ(0,"mat-form-field",43),A._UZ(1,"input",44),A.YNc(2,Ja,2,0,"mat-error",14),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("step",.1)("min",0),A.xp6(1),A.Q6J("ngIf","customperkb"===t.channelFormGroup.controls.selFeeRate.value&&!t.channelFormGroup.controls.flgMinConf.value&&!t.channelFormGroup.controls.customFeeRate.value)}}function Ec(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Min Confirmation Blocks is required."),A.qZA())}function hc(i,U){if(1&i&&(A.TgZ(0,"div",40),A._UZ(1,"fa-icon",41),A.TgZ(2,"span"),A._uU(3),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("icon",t.faExclamationTriangle),A.xp6(2),A.Oqu(t.channelConnectionError)}}const wc=function(i,U){return{"mr-6":i,"mr-2":U}};let on=(()=>{class i{constructor(t,B,k,FA,pt,Ye,vn){this.dialogRef=t,this.data=B,this.store=k,this.formBuilder=FA,this.actions=pt,this.logger=Ye,this.commonService=vn,this.faExclamationTriangle=E.eHv,this.peerAddress="",this.totalBalance=0,this.feeRateTypes=o.vn,this.flgChannelOpened=!1,this.channelOpenStatus=null,this.newlyAddedPeer=null,this.flgEditable=!0,this.peerConnectionError="",this.channelConnectionError="",this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)",this.screenSize="",this.screenSizeEnum=o.cu,this.unSubs=[new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.totalBalance=this.data.message.balance,this.peerAddress=this.data.message.peer&&this.data.message.peer.id&&this.data.message.peer.netaddr?this.data.message.peer.id+"@"+this.data.message.peer.netaddr:this.data.message.peer&&this.data.message.peer.id&&!this.data.message.peer.netaddr?this.data.message.peer.id:"",this.peerFormGroup=this.formBuilder.group({hiddenAddress:["",[zA.kI.required]],peerAddress:[this.peerAddress,[zA.kI.required]]}),this.channelFormGroup=this.formBuilder.group({fundingAmount:["",[zA.kI.required,zA.kI.min(1),zA.kI.max(this.totalBalance)]],isPrivate:[!1],selFeeRate:[null],customFeeRate:[null],flgMinConf:[!1],minConfValue:[{value:null,disabled:!0}],hiddenAmount:["",[zA.kI.required]]}),this.statusFormGroup=this.formBuilder.group({}),this.channelFormGroup.controls.flgMinConf.valueChanges.pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{t?(this.channelFormGroup.controls.selFeeRate.setValue(null),this.channelFormGroup.controls.selFeeRate.disable(),this.channelFormGroup.controls.customFeeRate.setValue(null),this.channelFormGroup.controls.minConfValue.reset(),this.channelFormGroup.controls.minConfValue.enable(),this.channelFormGroup.controls.minConfValue.setValidators([zA.kI.required])):(this.channelFormGroup.controls.selFeeRate.enable(),this.channelFormGroup.controls.minConfValue.setValue(null),this.channelFormGroup.controls.minConfValue.disable(),this.channelFormGroup.controls.minConfValue.setValidators(null))}),this.channelFormGroup.controls.selFeeRate.valueChanges.pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.channelFormGroup.controls.customFeeRate.setValue(null),this.channelFormGroup.controls.customFeeRate.reset(),this.channelFormGroup.controls.customFeeRate.setValidators("customperkb"!==t||this.channelFormGroup.controls.flgMinConf.value?null:[zA.kI.required])}),this.actions.pipe((0,r.R)(this.unSubs[2]),(0,_A.h)(t=>t.type===o.sW.NEWLY_ADDED_PEER_CL||t.type===o.sW.FETCH_CHANNELS_CL||t.type===o.sW.UPDATE_API_CALL_STATUS_CL)).subscribe(t=>{t.type===o.sW.NEWLY_ADDED_PEER_CL&&(this.logger.info(t.payload),this.flgEditable=!1,this.newlyAddedPeer=t.payload.peer,this.peerFormGroup.controls.hiddenAddress.setValue(this.peerFormGroup.controls.peerAddress.value),this.stepper.next()),t.type===o.sW.FETCH_CHANNELS_CL&&this.dialogRef.close(),t.type===o.sW.UPDATE_API_CALL_STATUS_CL&&t.payload.status===o.Bn.ERROR&&("SaveNewPeer"===t.payload.action?this.peerConnectionError=t.payload.message:"SaveNewChannel"===t.payload.action&&(this.channelConnectionError=t.payload.message))})}onConnectPeer(){if(!this.peerFormGroup.controls.peerAddress.value)return!0;this.peerConnectionError="",this.store.dispatch((0,WA.El)({payload:{id:this.peerFormGroup.controls.peerAddress.value}}))}onOpenChannel(){if(!this.channelFormGroup.controls.fundingAmount.value||this.totalBalance-this.channelFormGroup.controls.fundingAmount.value<0||this.channelFormGroup.controls.flgMinConf.value&&!this.channelFormGroup.controls.minConfValue.value)return!0;this.channelConnectionError="",this.store.dispatch((0,WA.YX)({payload:{peerId:this.newlyAddedPeer.id,satoshis:this.channelFormGroup.controls.fundingAmount.value,announce:!this.channelFormGroup.controls.isPrivate.value,feeRate:"customperkb"===this.channelFormGroup.controls.selFeeRate.value&&!this.channelFormGroup.controls.flgMinConf.value&&this.channelFormGroup.controls.customFeeRate.value?1e3*this.channelFormGroup.controls.customFeeRate.value+"perkb":this.channelFormGroup.controls.selFeeRate.value,minconf:this.channelFormGroup.controls.flgMinConf.value?this.channelFormGroup.controls.minConfValue.value:null}}))}onClose(){this.dialogRef.close(!1)}stepSelectionChanged(t){switch(t.selectedIndex){case 0:default:this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 1:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+(this.newlyAddedPeer.alias?this.newlyAddedPeer.alias:this.newlyAddedPeer.id):"Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 2:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+(this.newlyAddedPeer.alias?this.newlyAddedPeer.alias:this.newlyAddedPeer.id):"Peer Details",this.channelFormLabel=this.channelFormGroup.controls.fundingAmount.value?"Opening Channel for "+this.channelFormGroup.controls.fundingAmount.value+" Sats":"Open Channel (Optional)"}t.selectedIndex{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(OA.so),A.Y36(OA.WI),A.Y36(u.yh),A.Y36(zA.qu),A.Y36(C.eX),A.Y36(h.mQ),A.Y36(e.v))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-connect-peer"]],viewQuery:function(t,B){if(1&t&&(A.Gf(ac,5),A.Gf(oc,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.form=k.first),A.iGM(k=A.CRH())&&(B.stepper=k.first)}},decls:57,vars:30,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["autoFocus","","matInput","","placeholder","Lightning Address (pubkey OR pubkey@ip:port)","formControlName","peerAddress","tabindex","1","required",""],[4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-button","","color","primary","tabindex","3","type","button",3,"click"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mb-1",3,"formGroup","ngSubmit"],["matStepLabel","","disabled","true"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row","fxFlex","100","fxLayoutAlign.gt-sm","space-between center"],["fxFlex","60","fxLayoutAlign","start end"],["matInput","","autoFocus","","formControlName","fundingAmount","placeholder","Amount","type","number","tabindex","1","required","",3,"step"],["matSuffix",""],["fxFlex","35","fxLayoutAlign","start center"],["tabindex","2","color","primary","formControlName","isPrivate","name","isPrivate"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap","fxFlex","100","fxLayoutAlign.gt-sm","space-between center"],["fxFlex","48","fxLayoutAlign","space-between end"],["fxLayoutAlign","start center",3,"fxFlex"],["tabindex","4","placeholder","Fee Rate","formControlName","selFeeRate"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","48","fxLayoutAlign","end center",4,"ngIf"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["fxFlex","2","tabindex","5","color","primary","formControlName","flgMinConf","fxLayoutAlign","stretch start",3,"ngClass"],["fxFlex","98"],["matInput","","formControlName","minConfValue","placeholder","Min Confirmation Blocks","type","number","name","blocks","tabindex","8",3,"step","min","required"],["mat-button","","color","primary","tabindex","8","type","submit"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[3,"value"],["fxFlex","48","fxLayoutAlign","end center"],["matInput","","formControlName","customFeeRate","placeholder","Fee Rate (Sats/vB)","type","number","name","custFeeRate","tabindex","4",3,"step","min"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-card-header",2),A.TgZ(3,"div",3),A.TgZ(4,"span",4),A._uU(5,"Connect to a new peer"),A.qZA(),A.qZA(),A.TgZ(6,"button",5),A.NdJ("click",function(){return B.onClose()}),A._uU(7,"X"),A.qZA(),A.qZA(),A.TgZ(8,"mat-card-content",6),A.TgZ(9,"div",7),A.TgZ(10,"mat-vertical-stepper",8,9),A.NdJ("selectionChange",function(FA){return B.stepSelectionChanged(FA)}),A.TgZ(12,"mat-step",10),A.TgZ(13,"form",11),A.YNc(14,sc,1,1,"ng-template",12),A.TgZ(15,"mat-form-field",1),A._UZ(16,"input",13),A.YNc(17,Ha,2,0,"mat-error",14),A.qZA(),A.YNc(18,cc,4,2,"div",15),A.TgZ(19,"div",16),A.TgZ(20,"button",17),A.NdJ("click",function(){return B.onConnectPeer()}),A._uU(21),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.TgZ(22,"mat-step",10),A.TgZ(23,"form",18),A.NdJ("ngSubmit",function(){return B.onOpenChannel()}),A.YNc(24,gc,1,1,"ng-template",19),A.TgZ(25,"div",20),A.TgZ(26,"div",21),A.TgZ(27,"mat-form-field",22),A._UZ(28,"input",23),A.TgZ(29,"mat-hint"),A._uU(30),A.qZA(),A.TgZ(31,"span",24),A._uU(32," Sats "),A.qZA(),A.YNc(33,lc,2,0,"mat-error",14),A.YNc(34,Bc,2,0,"mat-error",14),A.YNc(35,uc,2,1,"mat-error",14),A.qZA(),A.TgZ(36,"div",25),A.TgZ(37,"mat-slide-toggle",26),A._uU(38,"Private Channel"),A.qZA(),A.qZA(),A.qZA(),A.TgZ(39,"div",27),A.TgZ(40,"div",28),A.TgZ(41,"mat-form-field",29),A.TgZ(42,"mat-select",30),A.YNc(43,fc,2,2,"mat-option",31),A.qZA(),A.qZA(),A.YNc(44,Oa,3,3,"mat-form-field",32),A.qZA(),A.TgZ(45,"div",33),A._UZ(46,"mat-checkbox",34),A.TgZ(47,"mat-form-field",35),A._UZ(48,"input",36),A.YNc(49,Ec,2,0,"mat-error",14),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.YNc(50,hc,4,2,"div",15),A.TgZ(51,"div",16),A.TgZ(52,"button",37),A._uU(53),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.TgZ(54,"div",38),A.TgZ(55,"button",39),A._uU(56),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(10),A.Q6J("linear",!0),A.xp6(2),A.Q6J("stepControl",B.peerFormGroup)("editable",B.flgEditable),A.xp6(1),A.Q6J("formGroup",B.peerFormGroup),A.xp6(4),A.Q6J("ngIf",null==B.peerFormGroup.controls.peerAddress.errors?null:B.peerFormGroup.controls.peerAddress.errors.required),A.xp6(1),A.Q6J("ngIf",""!==B.peerConnectionError),A.xp6(3),A.Oqu(""!==B.peerConnectionError?"Retry":"Add Peer"),A.xp6(1),A.Q6J("stepControl",B.channelFormGroup)("editable",B.flgEditable),A.xp6(1),A.Q6J("formGroup",B.channelFormGroup),A.xp6(5),A.Q6J("step",1e3),A.xp6(2),A.hij("Remaining Bal: ",B.totalBalance-(B.channelFormGroup.controls.fundingAmount.value?B.channelFormGroup.controls.fundingAmount.value:0),""),A.xp6(3),A.Q6J("ngIf",null==B.channelFormGroup.controls.fundingAmount.errors?null:B.channelFormGroup.controls.fundingAmount.errors.required),A.xp6(1),A.Q6J("ngIf",null==B.channelFormGroup.controls.fundingAmount.errors?null:B.channelFormGroup.controls.fundingAmount.errors.min),A.xp6(1),A.Q6J("ngIf",null==B.channelFormGroup.controls.fundingAmount.errors?null:B.channelFormGroup.controls.fundingAmount.errors.max),A.xp6(6),A.Q6J("fxFlex","customperkb"!==B.channelFormGroup.controls.selFeeRate.value||B.channelFormGroup.controls.flgMinConf.value?"100":"48"),A.xp6(2),A.Q6J("ngForOf",B.feeRateTypes),A.xp6(1),A.Q6J("ngIf","customperkb"===B.channelFormGroup.controls.selFeeRate.value&&!B.channelFormGroup.controls.flgMinConf.value),A.xp6(2),A.Q6J("ngClass",A.WLB(27,wc,B.screenSize===B.screenSizeEnum.XS||B.screenSize===B.screenSizeEnum.SM,B.screenSize===B.screenSizeEnum.MD||B.screenSize===B.screenSizeEnum.LG||B.screenSize===B.screenSizeEnum.XL)),A.xp6(2),A.Q6J("step",1)("min",0)("required",B.channelFormGroup.controls.flgMinConf.value),A.xp6(1),A.Q6J("ngIf",B.channelFormGroup.controls.flgMinConf.value&&!B.channelFormGroup.controls.minConfValue.value),A.xp6(1),A.Q6J("ngIf",""!==B.channelConnectionError),A.xp6(3),A.Oqu(""!==B.channelConnectionError?"Retry":"Open Channel"),A.xp6(2),A.Q6J("mat-dialog-close",!1),A.xp6(1),A.Oqu(null!=B.newlyAddedPeer&&B.newlyAddedPeer.id?"Do It Later":"Close"))},directives:[Qt.xw,Qt.yH,w.dk,Qt.Wh,F.lW,w.dn,pr.Vq,pr.C0,zA._Y,zA.JL,zA.sg,pr.VY,V.KE,ot.Nt,zA.Fj,It.h,zA.JJ,zA.u,zA.Q7,ht.O5,zA.wV,V.bx,V.R9,Pt.Rr,vt.gD,ht.sg,tt.oG,ht.mk,d.oO,zA.qQ,dt.q,OA.ZT,V.TO,f.BN,G.ey],styles:[""]}),i})();function yr(i,U){1&i&&A._UZ(0,"mat-progress-bar",32)}function Cc(i,U){1&i&&(A.TgZ(0,"th",33),A._uU(1," Alias "),A.qZA())}const Vi=function(i){return{"mr-0":i}};function Qc(i,U){if(1&i&&A._UZ(0,"span",37),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,Vi,t.screenSize===t.screenSizeEnum.XS))}}function Mc(i,U){if(1&i&&A._UZ(0,"span",38),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,Vi,t.screenSize===t.screenSizeEnum.XS))}}const Fi=function(i){return{"max-width":i}};function dc(i,U){if(1&i&&(A.TgZ(0,"td",34),A.YNc(1,Qc,1,3,"span",35),A.YNc(2,Mc,1,3,"span",36),A._uU(3),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.Q6J("ngStyle",A.VKq(4,Fi,B.screenSize===B.screenSizeEnum.XS?"10rem":"40rem")),A.xp6(1),A.Q6J("ngIf",null==t?null:t.connected),A.xp6(1),A.Q6J("ngIf",!(null!=t&&t.connected)),A.xp6(1),A.hij(" ",null==t?null:t.alias," ")}}function pc(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1," ID "),A.qZA())}function ka(i,U){if(1&i&&(A.TgZ(0,"td",40),A._uU(1),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.Q6J("ngStyle",A.VKq(2,Fi,B.screenSize===B.screenSizeEnum.XS?"10rem":"40rem")),A.xp6(1),A.hij(" ",null==t?null:t.id," ")}}function Ic(i,U){1&i&&(A.TgZ(0,"th",33),A._uU(1," Network Address "),A.qZA())}function xr(i,U){1&i&&(A.TgZ(0,"span"),A._uU(1,","),A._UZ(2,"br"),A.qZA())}function Dc(i,U){if(1&i&&(A.TgZ(0,"span"),A._uU(1),A.YNc(2,xr,3,0,"span",42),A.qZA()),2&i){const t=U.$implicit,B=U.last;A.xp6(1),A.Oqu(t),A.xp6(1),A.Q6J("ngIf",!B)}}function vc(i,U){if(1&i&&(A.TgZ(0,"td",34),A.YNc(1,Dc,3,2,"span",41),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.Q6J("ngStyle",A.VKq(2,Fi,B.screenSize===B.screenSizeEnum.XS?"10rem":"20rem")),A.xp6(1),A.Q6J("ngForOf",null==t?null:t.netaddr)}}function mc(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",43),A.TgZ(1,"div",44),A.TgZ(2,"mat-select",45),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",46),A.NdJ("click",function(){return A.CHM(t),A.oxw().onDownloadCSV()}),A._uU(5,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}function yc(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-option",46),A.NdJ("click",function(){A.CHM(t);const k=A.oxw().$implicit;return A.oxw().onPeerDetach(k)}),A._uU(1,"Disconnect"),A.qZA()}}function ja(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-option",46),A.NdJ("click",function(){A.CHM(t);const k=A.oxw().$implicit;return A.oxw().onConnectPeer(k)}),A._uU(1,"Reconnect"),A.qZA()}}function Xi(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",47),A.TgZ(1,"div",48),A.TgZ(2,"mat-select",45),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",46),A.NdJ("click",function(k){const pt=A.CHM(t).$implicit;return A.oxw().onPeerClick(pt,k)}),A._uU(5,"View Info"),A.qZA(),A.TgZ(6,"mat-option",46),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().onOpenChannel(FA)}),A._uU(7,"Open Channel"),A.qZA(),A.YNc(8,yc,2,0,"mat-option",49),A.YNc(9,ja,2,0,"mat-option",49),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=U.$implicit;A.xp6(8),A.Q6J("ngIf",t.connected),A.xp6(1),A.Q6J("ngIf",!t.connected)}}function er(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No connected peer."),A.qZA())}function xc(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting peers..."),A.qZA())}function Fc(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.errorMessage)}}function Yc(i,U){if(1&i&&(A.TgZ(0,"td",50),A.YNc(1,er,2,0,"p",42),A.YNc(2,xc,2,0,"p",42),A.YNc(3,Fc,2,1,"p",42),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers||null==t.peers.data?null:t.peers.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers||null==t.peers.data?null:t.peers.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers||null==t.peers.data?null:t.peers.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const Tc=function(i){return{"display-none":i}};function Lc(i,U){if(1&i&&A._UZ(0,"tr",51),2&i){const t=A.oxw();A.Q6J("ngClass",A.VKq(1,Tc,(null==t.peers?null:t.peers.data)&&(null==t.peers||null==t.peers.data?null:t.peers.data.length)>0))}}function Sc(i,U){1&i&&A._UZ(0,"tr",52)}function Uc(i,U){1&i&&A._UZ(0,"tr",53)}const Pc=function(i){return{"overflow-auto error-border":i,"overflow-auto":!0}},zc=function(){return["no_peer"]};let Za=(()=>{class i{constructor(t,B,k,FA,pt){this.logger=t,this.store=B,this.rtlEffects=k,this.actions=FA,this.commonService=pt,this.faUsers=E.FVb,this.newlyAddedPeer="",this.displayedColumns=[],this.peerAddress="",this.peersData=[],this.information={},this.availableBalance=0,this.flgSticky=!1,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","actions"]):this.screenSize===o.cu.SM||this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","id","netaddr","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","id","netaddr","actions"])}ngOnInit(){this.store.select(l.Ao).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.information=t.information,this.availableBalance=t.balance.totalBalance||0}),this.store.select(l.Wi).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.peersData=t.peers||[],this.peersData.length>0&&this.loadPeersTable(this.peersData),this.logger.info(t)}),this.actions.pipe((0,r.R)(this.unSubs[2]),(0,_A.h)(t=>t.type===o.sW.SET_PEERS_CL)).subscribe(t=>{this.peerAddress=null})}ngAfterViewInit(){this.peersData.length>0&&this.loadPeersTable(this.peersData)}onPeerClick(t,B){this.store.dispatch((0,eA.qR)({payload:{data:{type:o.n_.INFORMATION,alertTitle:"Peer Information",showQRName:"Public Key",showQRField:t.id,message:[[{key:"id",value:t.id,title:"Public Key",width:100}],[{key:"netaddr",value:t.netaddr,title:"Address",width:100}],[{key:"alias",value:t.alias,title:"Alias",width:50},{key:"connected",value:t.connected?"True":"False",title:"Connected",width:50}]]}}}))}onConnectPeer(t){this.store.dispatch((0,eA.qR)({payload:{data:{message:{peer:t.id?t:null,information:this.information,balance:this.availableBalance},component:on}}}))}onOpenChannel(t){this.store.dispatch((0,eA.qR)({payload:{data:{alertTitle:"Open Channel",message:{peer:t,information:this.information,balance:this.availableBalance},newlyAdded:!1,component:Da}}}))}onPeerDetach(t){this.store.dispatch((0,eA.c1)({payload:{data:{type:o.n_.CONFIRM,alertTitle:"Disconnect Peer",titleMessage:"Disconnect peer: "+(t.alias?t.alias:t.id),noBtnText:"Cancel",yesBtnText:"Disconnect"}}})),this.rtlEffects.closeConfirm.pipe((0,r.R)(this.unSubs[3])).subscribe(k=>{k&&this.store.dispatch((0,WA.z)({payload:{id:t.id,force:!1}}))})}applyFilter(){this.peers.filter=this.selFilter.trim().toLowerCase()}loadPeersTable(t){this.peers=new SA.by([...t]),this.peers.sortingDataAccessor=(B,k)=>{if("netaddr"===k){if(B.netaddr&&B.netaddr[0]){const FA=B.netaddr[0].toString().split(".");return FA[0]?+FA[0]:B.netaddr[0]}return""}return B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null},this.peers.sort=this.sort,this.peers.filterPredicate=(B,k)=>JSON.stringify(B).toLowerCase().includes(k),this.peers.paginator=this.paginator,this.applyFilter()}onDownloadCSV(){this.peers.data&&this.peers.data.length>0&&this.commonService.downloadFile(this.peers.data,"Peers")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh),A.Y36(at.V),A.Y36(C.eX),A.Y36(e.v))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-peers"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Peers")}])],decls:36,vars:15,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["peersForm","ngForm"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","30","fxFlex.gt-xs","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["fxLayout","row","fxLayoutAlign","start start"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","alias"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","id"],["mat-header-cell","","class","px-3","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","","class","px-3",3,"ngStyle",4,"matCellDef"],["matColumnDef","netaddr"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","px-3",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["class","dot green","matTooltip","Connected","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Disconnected","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Connected","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Disconnected","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["mat-header-cell","","mat-sort-header","",1,"px-3"],["mat-cell","",1,"px-3",3,"ngStyle"],[4,"ngFor","ngForOf"],[4,"ngIf"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["fxFlex","100","fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],[3,"click",4,"ngIf"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"form",1,2),A.TgZ(3,"button",3),A.NdJ("click",function(){return B.onConnectPeer({})}),A._uU(4,"Add Peer"),A.qZA(),A.qZA(),A.TgZ(5,"div",4),A.TgZ(6,"div",5),A.TgZ(7,"div",6),A._UZ(8,"fa-icon",7),A.TgZ(9,"span",8),A._uU(10,"Connected Peers"),A.qZA(),A.qZA(),A.TgZ(11,"mat-form-field",9),A.TgZ(12,"div",10),A.TgZ(13,"input",11),A.NdJ("keyup",function(){return B.applyFilter()})("ngModelChange",function(FA){return B.selFilter=FA}),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.TgZ(14,"div",12),A.YNc(15,yr,1,0,"mat-progress-bar",13),A.TgZ(16,"table",14,15),A.ynx(18,16),A.YNc(19,Cc,2,0,"th",17),A.YNc(20,dc,4,6,"td",18),A.BQk(),A.ynx(21,19),A.YNc(22,pc,2,0,"th",20),A.YNc(23,ka,2,4,"td",21),A.BQk(),A.ynx(24,22),A.YNc(25,Ic,2,0,"th",17),A.YNc(26,vc,2,4,"td",18),A.BQk(),A.ynx(27,23),A.YNc(28,mc,6,0,"th",24),A.YNc(29,Xi,10,2,"td",25),A.BQk(),A.ynx(30,26),A.YNc(31,Yc,4,3,"td",27),A.BQk(),A.YNc(32,Lc,1,3,"tr",28),A.YNc(33,Sc,1,0,"tr",29),A.YNc(34,Uc,1,0,"tr",30),A.qZA(),A.qZA(),A._UZ(35,"mat-paginator",31),A.qZA(),A.qZA()),2&t&&(A.xp6(8),A.Q6J("icon",B.faUsers),A.xp6(5),A.Q6J("ngModel",B.selFilter),A.xp6(2),A.Q6J("ngIf",B.apiCallStatus.status===B.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",B.peers)("ngClass",A.VKq(12,Pc,""!==B.errorMessage)),A.xp6(16),A.Q6J("matFooterRowDef",A.DdM(14,zc)),A.xp6(1),A.Q6J("matHeaderRowDef",B.displayedColumns)("matHeaderRowDefSticky",B.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",B.displayedColumns),A.xp6(1),A.Q6J("pageSize",B.pageSize)("pageSizeOptions",B.pageSizeOptions)("showFirstLastButtons",B.screenSize!==B.screenSizeEnum.XS))},directives:[Qt.xw,Qt.yH,Qt.Wh,zA._Y,zA.JL,zA.F,F.lW,f.BN,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,gA.$V,ht.O5,SA.BZ,lt.YE,ht.mk,d.oO,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,ft.NW,Y.pW,SA.ge,lt.nU,SA.ev,ht.PC,d.Zl,aA.gM,ht.sg,vt.gD,vt.$L,G.ey,SA.yh,SA.Q2,SA.XQ,SA.Gk],styles:[".mat-column-alias[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-id[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:2rem}.mat-column-netaddr[_ngcontent-%COMP%]{flex:1 1 25%;width:25%}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),i})();const Rc=["queryRoutesForm"];function nA(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Destination pubkey is required."),A.qZA())}function b(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Amount is required."),A.qZA())}function K(i,U){1&i&&A._UZ(0,"mat-progress-bar",38)}function M(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1," ID "),A.qZA())}function y(i,U){if(1&i&&(A.TgZ(0,"td",40),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.id," ")}}function z(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1," Alias "),A.qZA())}function tA(i,U){if(1&i&&(A.TgZ(0,"td",40),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.alias," ")}}function oA(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1," Channel "),A.qZA())}function sA(i,U){if(1&i&&(A.TgZ(0,"td",40),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.channel," ")}}function iA(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1," Direction "),A.qZA())}function UA(i,U){if(1&i&&(A.TgZ(0,"td",40),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.direction," ")}}function kA(i,U){1&i&&(A.TgZ(0,"th",41),A._uU(1," Delay "),A.qZA())}function gt(i,U){if(1&i&&(A.TgZ(0,"td",40),A.TgZ(1,"span",42),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.lcZ(3,1,null==t?null:t.delay)," ")}}function qA(i,U){1&i&&(A.TgZ(0,"th",41),A._uU(1," Amount (Sats) "),A.qZA())}function Bt(i,U){if(1&i&&(A.TgZ(0,"td",40),A.TgZ(1,"span",42),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.hij(" ",A.lcZ(3,1,(null==t?null:t.msatoshi)/1e3)," ")}}function Mt(i,U){1&i&&(A.TgZ(0,"th",43),A._uU(1," Amount mSat "),A.qZA())}function mt(i,U){if(1&i&&(A.TgZ(0,"td",44),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",null==t?null:t.amount_msat," ")}}function Gt(i,U){1&i&&(A.TgZ(0,"th",45),A.TgZ(1,"span",42),A._uU(2,"Actions"),A.qZA(),A.qZA())}function _t(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",44),A.TgZ(1,"button",46),A.NdJ("click",function(k){const pt=A.CHM(t).$implicit;return A.oxw().onHopClick(pt,k)}),A._uU(2,"View Info"),A.qZA(),A.qZA()}}function qt(i,U){1&i&&A._UZ(0,"tr",47)}function ae(i,U){1&i&&A._UZ(0,"tr",48)}const le=function(i){return{"overflow-auto error-border":i,"overflow-auto":!0}};let he=(()=>{class i{constructor(t,B,k){this.store=t,this.clEffects=B,this.commonService=k,this.destinationPubkey="",this.amount=null,this.flgSticky=!1,this.displayedColumns=[],this.flgLoading=[!1],this.faRoute=E.FpQ,this.faExclamationTriangle=E.eHv,this.screenSize="",this.screenSizeEnum=o.cu,this.unSubs=[new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","msatoshi","actions"]):this.screenSize===o.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","direction","msatoshi","actions"]):this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","direction","delay","msatoshi","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","channel","direction","delay","msatoshi","actions"])}ngOnInit(){this.clEffects.setQueryRoutesCL.pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.qrHops=new SA.by([]),this.qrHops.data=[],t.routes&&t.routes.length&&t.routes.length>0?(this.flgLoading[0]=!1,this.qrHops=new SA.by([...t.routes]),this.qrHops.data=t.routes):this.flgLoading[0]="error",this.qrHops.sort=this.sort,this.qrHops.sortingDataAccessor=(B,k)=>B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null})}onQueryRoutes(){if(!this.destinationPubkey||!this.amount)return!0;this.flgLoading[0]=!0,this.store.dispatch((0,WA.WO)({payload:{destPubkey:this.destinationPubkey,amount:1e3*this.amount}}))}resetData(){this.destinationPubkey="",this.amount=null,this.flgLoading[0]=!1,this.qrHops.data=[],this.form.resetForm()}onHopClick(t,B){this.store.dispatch((0,eA.qR)({payload:{data:{type:o.n_.INFORMATION,alertTitle:"Route Information",message:[[{key:"id",value:t.id,title:"ID",width:100,type:o.Gi.STRING}],[{key:"channel",value:t.channel,title:"Channel",width:50,type:o.Gi.STRING},{key:"alias",value:t.alias,title:"Peer Alias",width:50,type:o.Gi.STRING}],[{key:"msatoshi",value:t.msatoshi,title:"mSatoshi",width:50,type:o.Gi.NUMBER},{key:"amount_msat",value:t.amount_msat,title:"Amount mSat",width:50,type:o.Gi.STRING}],[{key:"direction",value:t.direction,title:"Direction",width:50,type:o.Gi.STRING},{key:"delay",value:t.delay,title:"Delay",width:50,type:o.Gi.NUMBER}]]}}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(u.yh),A.Y36(ke.s),A.Y36(e.v))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-query-routes"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(Rc,7)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.form=k.first)}},decls:54,vars:16,consts:[["fxLayout","column","fxFlex","100",1,"padding-gap"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",3,"ngSubmit"],["queryRoutesForm","ngForm"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","69","fxLayoutAlign","start end"],["matInput","","placeholder","Destination Pubkey","name","destinationPubkey","tabindex","1","required","",3,"ngModel","ngModelChange"],["destPubkey","ngModel"],[4,"ngIf"],["fxFlex","29","fxLayoutAlign","start end"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","type","number","required","",3,"ngModel","step","min","ngModelChange"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","4"],["fxLayout","row","fxLayoutAlign","start center",1,"page-sub-title-container","mt-2","mb-1"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],[1,"table-container","mb-6",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","channel"],["matColumnDef","direction"],["matColumnDef","delay"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","msatoshi"],["matColumnDef","amount_msat"],["mat-header-cell","","class","pl-4","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","","class","pl-4",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-4 pr-3",4,"matHeaderCellDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-4"],["mat-cell","",1,"pl-4"],["mat-header-cell","",1,"pl-4","pr-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-header-row",""],["mat-row",""]],template:function(t,B){if(1&t){const k=A.EpF();A.TgZ(0,"div",0),A.TgZ(1,"form",1,2),A.NdJ("ngSubmit",function(){return A.CHM(k),A.MAs(2).form.valid&&B.onQueryRoutes()}),A.TgZ(3,"div",3),A._UZ(4,"fa-icon",4),A.TgZ(5,"span"),A._uU(6,"The actual routing fee on a payment can be different from the fee shown on query routes."),A.qZA(),A.qZA(),A.TgZ(7,"mat-form-field",5),A.TgZ(8,"input",6,7),A.NdJ("ngModelChange",function(pt){return B.destinationPubkey=pt}),A.qZA(),A.YNc(10,nA,2,0,"mat-error",8),A.qZA(),A.TgZ(11,"mat-form-field",9),A.TgZ(12,"input",10),A.NdJ("ngModelChange",function(pt){return B.amount=pt}),A.qZA(),A.YNc(13,b,2,0,"mat-error",8),A.qZA(),A.TgZ(14,"div",11),A.TgZ(15,"button",12),A.NdJ("click",function(){return B.resetData()}),A._uU(16,"Clear"),A.qZA(),A.TgZ(17,"button",13),A._uU(18,"Query Route"),A.qZA(),A.qZA(),A.qZA(),A.TgZ(19,"div",14),A.TgZ(20,"div",15),A._UZ(21,"fa-icon",16),A.TgZ(22,"span",17),A._uU(23,"Transaction Route"),A.qZA(),A.qZA(),A.qZA(),A.TgZ(24,"div",18),A.YNc(25,K,1,0,"mat-progress-bar",19),A.TgZ(26,"table",20,21),A.ynx(28,22),A.YNc(29,M,2,0,"th",23),A.YNc(30,y,2,1,"td",24),A.BQk(),A.ynx(31,25),A.YNc(32,z,2,0,"th",23),A.YNc(33,tA,2,1,"td",24),A.BQk(),A.ynx(34,26),A.YNc(35,oA,2,0,"th",23),A.YNc(36,sA,2,1,"td",24),A.BQk(),A.ynx(37,27),A.YNc(38,iA,2,0,"th",23),A.YNc(39,UA,2,1,"td",24),A.BQk(),A.ynx(40,28),A.YNc(41,kA,2,0,"th",29),A.YNc(42,gt,4,3,"td",24),A.BQk(),A.ynx(43,30),A.YNc(44,qA,2,0,"th",29),A.YNc(45,Bt,4,3,"td",24),A.BQk(),A.ynx(46,31),A.YNc(47,Mt,2,0,"th",32),A.YNc(48,mt,2,1,"td",33),A.BQk(),A.ynx(49,34),A.YNc(50,Gt,3,0,"th",35),A.YNc(51,_t,3,0,"td",33),A.BQk(),A.YNc(52,qt,1,0,"tr",36),A.YNc(53,ae,1,0,"tr",37),A.qZA(),A.qZA(),A.qZA()}2&t&&(A.xp6(4),A.Q6J("icon",B.faExclamationTriangle),A.xp6(4),A.Q6J("ngModel",B.destinationPubkey),A.xp6(2),A.Q6J("ngIf",!B.destinationPubkey),A.xp6(2),A.Q6J("ngModel",B.amount)("step",1e3)("min",0),A.xp6(1),A.Q6J("ngIf",!B.amount),A.xp6(8),A.Q6J("icon",B.faRoute),A.xp6(4),A.Q6J("ngIf",!0===B.flgLoading[0]),A.xp6(1),A.Q6J("dataSource",B.qrHops)("ngClass",A.VKq(14,le,"error"===B.flgLoading[0])),A.xp6(26),A.Q6J("matHeaderRowDef",B.displayedColumns)("matHeaderRowDefSticky",B.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",B.displayedColumns))},directives:[Qt.xw,Qt.yH,zA._Y,zA.JL,zA.F,Qt.Wh,f.BN,V.KE,ot.Nt,zA.Fj,zA.Q7,zA.JJ,zA.On,ht.O5,zA.wV,zA.qQ,dt.q,F.lW,gA.$V,SA.BZ,lt.YE,ht.mk,d.oO,SA.w1,SA.fO,SA.Dz,SA.as,SA.nj,V.TO,Y.pW,SA.ge,lt.nU,SA.ev,SA.XQ,SA.Gk],pipes:[ht.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{flex:0 0 5%;width:5%}.mat-column-pubkey_alias[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),i})();function we(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Message is required."),A.qZA())}let Ge=(()=>{class i{constructor(t,B,k){this.dataService=t,this.snackBar=B,this.logger=k,this.message="",this.signedMessage="",this.signature="",this.unSubs=[new c.x,new c.x]}onSign(){if(!this.message||""===this.message)return!0;this.dataService.signMessage(this.message).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.signedMessage=this.message,this.signature=t.zbase})}onMessageChange(){this.signedMessage!==this.message&&(this.signature="")}onCopyField(t){this.snackBar.open("Signature copied."),this.logger.info("Copied Text: "+t)}resetData(){this.message="",this.signature="",this.signedMessage=""}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(KA.D),A.Y36(Hn.ux),A.Y36(h.mQ))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-sign"]],decls:20,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["form","ngForm"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start end"],["autoFocus","","matInput","","rows","1","placeholder","Message to sign","required","","tabindex","1","name","message",3,"ngModel","ngModelChange","keyup"],[4,"ngIf"],["fxLayout","row",1,"my-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3","type","submit",3,"click"],[1,"my-2",3,"inset"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",1,"bordered-box","read-only","h-4","padding-gap"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","4","rtlClipboard","","type","button",3,"payload","copied"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"form",1,2),A.TgZ(3,"mat-form-field",3),A.TgZ(4,"textarea",4),A.NdJ("ngModelChange",function(FA){return B.message=FA})("keyup",function(){return B.onMessageChange()}),A.qZA(),A.YNc(5,we,2,0,"mat-error",5),A.qZA(),A.TgZ(6,"div",6),A.TgZ(7,"button",7),A.NdJ("click",function(){return B.resetData()}),A._uU(8,"Clear Field"),A.qZA(),A.TgZ(9,"button",8),A.NdJ("click",function(){return B.onSign()}),A._uU(10,"Sign"),A.qZA(),A.qZA(),A._UZ(11,"mat-divider",9),A.TgZ(12,"div",10),A.TgZ(13,"p"),A._uU(14,"Generated Signature"),A.qZA(),A.qZA(),A.TgZ(15,"div",11),A._uU(16),A.qZA(),A.TgZ(17,"div",12),A.TgZ(18,"button",13),A.NdJ("copied",function(FA){return B.onCopyField(FA)}),A._uU(19,"Copy Signature"),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(4),A.Q6J("ngModel",B.message),A.xp6(1),A.Q6J("ngIf",!B.message),A.xp6(6),A.Q6J("inset",!0),A.xp6(5),A.Oqu(B.signature),A.xp6(2),A.Q6J("payload",B.signature))},directives:[Qt.xw,Qt.yH,Qt.Wh,zA._Y,zA.JL,zA.F,V.KE,ot.Nt,zA.Fj,It.h,zA.Q7,zA.JJ,zA.On,ht.O5,F.lW,AA.d,Kr.y,V.TO],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),i})();function sn(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Message is required."),A.qZA())}function He(i,U){1&i&&(A.TgZ(0,"mat-error"),A._uU(1,"Signature is required."),A.qZA())}function se(i,U){1&i&&(A.TgZ(0,"p",13),A.TgZ(1,"mat-icon",14),A._uU(2,"close"),A.qZA(),A._uU(3,"Verification failed, please double check message and signature"),A.qZA())}function cn(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Pubkey Used"),A.qZA())}function Ve(i,U){if(1&i&&(A.TgZ(0,"div",20),A.TgZ(1,"p"),A._uU(2),A.qZA(),A.qZA()),2&i){const t=A.oxw(2);A.xp6(2),A.Oqu(null==t.verifyRes?null:t.verifyRes.pubkey)}}function Je(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",21),A.TgZ(1,"button",22),A.NdJ("copied",function(k){return A.CHM(t),A.oxw(2).onCopyField(k)}),A._uU(2,"Copy Pubkey"),A.qZA(),A.qZA()}if(2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("payload",null==t.verifyRes?null:t.verifyRes.pubkey)}}function fe(i,U){if(1&i&&(A.TgZ(0,"div",15),A._UZ(1,"mat-divider",16),A.TgZ(2,"div",17),A.YNc(3,cn,2,0,"p",5),A.qZA(),A.YNc(4,Ve,3,1,"div",18),A.YNc(5,Je,3,1,"div",19),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("inset",!0),A.xp6(2),A.Q6J("ngIf",t.verifyRes.verified),A.xp6(1),A.Q6J("ngIf",t.verifyRes.verified),A.xp6(1),A.Q6J("ngIf",t.verifyRes.verified)}}let _e=(()=>{class i{constructor(t,B,k){this.dataService=t,this.snackBar=B,this.logger=k,this.message="",this.verifiedMessage="",this.signature="",this.verifiedSignature="",this.showVerifyStatus=!1,this.verifyRes={pubkey:"",verified:null},this.unSubs=[new c.x,new c.x]}onVerify(){if(!this.message||""===this.message||!this.signature||""===this.signature)return!0;this.dataService.verifyMessage(this.message,this.signature).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.verifyRes=t,this.showVerifyStatus=!0,this.verifiedMessage=this.message,this.verifiedSignature=this.signature})}onChange(){(this.verifiedMessage!==this.message||this.verifiedSignature!==this.signature)&&(this.showVerifyStatus=!1,this.verifyRes={pubkey:"",verified:null})}resetData(){this.message="",this.signature="",this.verifyRes=null,this.showVerifyStatus=!1}onCopyField(t){this.snackBar.open("Pubkey copied."),this.logger.info("Copied Text: "+t)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(KA.D),A.Y36(Hn.ux),A.Y36(h.mQ))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-verify"]],decls:17,vars:6,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["form","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["autoFocus","","matInput","","rows","1","placeholder","Message to verify","required","","tabindex","1","name","message",3,"ngModel","ngModelChange","keyup"],[4,"ngIf"],["matInput","","placeholder","Signature provided","name","signature","tabindex","2","required","",3,"ngModel","ngModelChange","keyup"],["sign","ngModel"],["fxFlex","100","class","color-warn","fxLayoutAlign","start center",4,"ngIf"],["fxLayout","row",1,"my-1"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxFlex","100","fxLayoutAlign","start center",1,"color-warn"],[1,"mr-1","icon-small"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],[1,"my-2",3,"inset"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start","class","bordered-box read-only h-4 padding-gap",4,"ngIf"],["fxLayout","row","class","mt-2",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",1,"bordered-box","read-only","h-4","padding-gap"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","5","rtlClipboard","","type","button",3,"payload","copied"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"form",1,2),A.TgZ(3,"mat-form-field",3),A.TgZ(4,"textarea",4),A.NdJ("ngModelChange",function(FA){return B.message=FA})("keyup",function(){return B.onChange()}),A.qZA(),A.YNc(5,sn,2,0,"mat-error",5),A.qZA(),A.TgZ(6,"mat-form-field",3),A.TgZ(7,"input",6,7),A.NdJ("ngModelChange",function(FA){return B.signature=FA})("keyup",function(){return B.onChange()}),A.qZA(),A.YNc(9,He,2,0,"mat-error",5),A.qZA(),A.YNc(10,se,4,0,"p",8),A.TgZ(11,"div",9),A.TgZ(12,"button",10),A.NdJ("click",function(){return B.resetData()}),A._uU(13,"Clear Fields"),A.qZA(),A.TgZ(14,"button",11),A.NdJ("click",function(){return B.onVerify()}),A._uU(15,"Verify"),A.qZA(),A.qZA(),A.YNc(16,fe,6,4,"div",12),A.qZA(),A.qZA()),2&t&&(A.xp6(4),A.Q6J("ngModel",B.message),A.xp6(1),A.Q6J("ngIf",!B.message),A.xp6(2),A.Q6J("ngModel",B.signature),A.xp6(2),A.Q6J("ngIf",!B.signature),A.xp6(1),A.Q6J("ngIf",B.showVerifyStatus&&!B.verifyRes.verified),A.xp6(6),A.Q6J("ngIf",B.showVerifyStatus&&B.verifyRes.verified))},directives:[Qt.xw,Qt.yH,Qt.Wh,zA._Y,zA.JL,zA.F,V.KE,ot.Nt,zA.Fj,It.h,zA.Q7,zA.JJ,zA.On,ht.O5,F.lW,V.TO,m.Hw,AA.d,Kr.y],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),i})();function Pe(i,U){if(1&i&&(A.TgZ(0,"div",5),A._uU(1),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Oqu(t.errorMessage)}}function xe(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",6),A._UZ(1,"div",7),A.TgZ(2,"mat-form-field",8),A.TgZ(3,"input",9),A.NdJ("ngModelChange",function(k){return A.CHM(t),A.oxw().filterValue=k})("input",function(){return A.CHM(t),A.oxw().applyFilter()})("keyup",function(){return A.CHM(t),A.oxw().applyFilter()}),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw();A.xp6(3),A.Q6J("ngModel",t.filterValue)}}function $e(i,U){1&i&&A._UZ(0,"mat-progress-bar",33)}function Nn(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1,"Status"),A.qZA())}function Bn(i,U){if(1&i&&(A.TgZ(0,"td",35),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(null==t?null:t.status)}}function pn(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1,"Received Time"),A.qZA())}function Jn(i,U){if(1&i&&(A.TgZ(0,"td",35),A._uU(1),A.ALo(2,"date"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(A.xi3(2,1,1e3*(null==t?null:t.received_time),"dd/MMM/YYYY HH:mm"))}}function kn(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1,"Resolved Time"),A.qZA())}function Dn(i,U){if(1&i&&(A.TgZ(0,"td",35),A._uU(1),A.ALo(2,"date"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(A.xi3(2,1,1e3*(null==t?null:t.resolved_time),"dd/MMM/YYYY HH:mm"))}}function Qn(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1,"In Channel"),A.qZA())}function jn(i,U){if(1&i&&(A.TgZ(0,"td",35),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(null==t?null:t.in_channel_alias)}}function Zn(i,U){1&i&&(A.TgZ(0,"th",34),A._uU(1,"Out Channel"),A.qZA())}function pe(i,U){if(1&i&&(A.TgZ(0,"td",35),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(null==t?null:t.out_channel_alias)}}function ze(i,U){1&i&&(A.TgZ(0,"th",36),A._uU(1,"Amount In (Sats)"),A.qZA())}function Fe(i,U){if(1&i&&(A.TgZ(0,"td",35),A.TgZ(1,"span",37),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,1,(null==t?null:t.in_msatoshi)/1e3,(null==t?null:t.in_msatoshi)<1e3?"1.0-4":"1.0-0"))}}function Xe(i,U){1&i&&(A.TgZ(0,"th",36),A._uU(1,"Amount Out (Sats)"),A.qZA())}function Oe(i,U){if(1&i&&(A.TgZ(0,"td",35),A.TgZ(1,"span",37),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,1,(null==t?null:t.out_msatoshi)/1e3,(null==t?null:t.out_msatoshi)<1e3?"1.0-4":"1.0-0"))}}function un(i,U){1&i&&(A.TgZ(0,"th",36),A._uU(1,"Fee (mSat)"),A.qZA())}function qi(i,U){if(1&i&&(A.TgZ(0,"td",35),A.TgZ(1,"span",37),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.lcZ(3,1,null==t?null:t.fee))}}function bn(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",38),A.TgZ(1,"div",39),A.TgZ(2,"mat-select",40),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",41),A.NdJ("click",function(){return A.CHM(t),A.oxw(2).onDownloadCSV()}),A._uU(5,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}function _i(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",42),A.TgZ(1,"button",43),A.NdJ("click",function(k){const pt=A.CHM(t).$implicit;return A.oxw(2).onForwardingEventClick(pt,k)}),A._uU(2,"View Info"),A.qZA(),A.qZA()}}function $i(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No forwarding history available."),A.qZA())}function Nc(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting forwarding history..."),A.qZA())}function bc(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Oqu(t.errorMessage)}}function Yi(i,U){if(1&i&&(A.TgZ(0,"td",44),A.YNc(1,$i,2,0,"p",45),A.YNc(2,Nc,2,0,"p",45),A.YNc(3,bc,2,1,"p",45),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.ERROR)}}const ti=function(i){return{"display-none":i}};function Aa(i,U){if(1&i&&A._UZ(0,"tr",46),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,ti,(null==t.forwardingHistoryEvents?null:t.forwardingHistoryEvents.data)&&(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)>0))}}function Ti(i,U){1&i&&A._UZ(0,"tr",47)}function Si(i,U){1&i&&A._UZ(0,"tr",48)}const ei=function(){return["no_event"]};function ni(i,U){if(1&i&&(A.TgZ(0,"div",10),A.YNc(1,$e,1,0,"mat-progress-bar",11),A.TgZ(2,"table",12,13),A.ynx(4,14),A.YNc(5,Nn,2,0,"th",15),A.YNc(6,Bn,2,1,"td",16),A.BQk(),A.ynx(7,17),A.YNc(8,pn,2,0,"th",15),A.YNc(9,Jn,3,4,"td",16),A.BQk(),A.ynx(10,18),A.YNc(11,kn,2,0,"th",15),A.YNc(12,Dn,3,4,"td",16),A.BQk(),A.ynx(13,19),A.YNc(14,Qn,2,0,"th",15),A.YNc(15,jn,2,1,"td",16),A.BQk(),A.ynx(16,20),A.YNc(17,Zn,2,0,"th",15),A.YNc(18,pe,2,1,"td",16),A.BQk(),A.ynx(19,21),A.YNc(20,ze,2,0,"th",22),A.YNc(21,Fe,4,4,"td",16),A.BQk(),A.ynx(22,23),A.YNc(23,Xe,2,0,"th",22),A.YNc(24,Oe,4,4,"td",16),A.BQk(),A.ynx(25,24),A.YNc(26,un,2,0,"th",22),A.YNc(27,qi,4,3,"td",16),A.BQk(),A.ynx(28,25),A.YNc(29,bn,6,0,"th",26),A.YNc(30,_i,3,0,"td",27),A.BQk(),A.ynx(31,28),A.YNc(32,Yi,4,3,"td",29),A.BQk(),A.YNc(33,Aa,1,3,"tr",30),A.YNc(34,Ti,1,0,"tr",31),A.YNc(35,Si,1,0,"tr",32),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngIf",(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",t.forwardingHistoryEvents),A.xp6(31),A.Q6J("matFooterRowDef",A.DdM(6,ei)),A.xp6(1),A.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",t.displayedColumns)}}function ri(i,U){if(1&i&&A._UZ(0,"mat-paginator",49),2&i){const t=A.oxw();A.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let br=(()=>{class i{constructor(t,B,k,FA){this.logger=t,this.commonService=B,this.store=k,this.datePipe=FA,this.eventsData=[],this.filterValue="",this.successfulEvents=[],this.displayedColumns=[],this.flgSticky=!1,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["in_msatoshi","out_msatoshi","actions"]):this.screenSize===o.cu.SM||this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["received_time","in_msatoshi","out_msatoshi","fee","actions"]):(this.flgSticky=!0,this.displayedColumns=["received_time","resolved_time","in_channel","out_channel","in_msatoshi","out_msatoshi","fee","actions"])}ngOnInit(){this.store.select(l.Bo).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.eventsData.length<=0&&(this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.successfulEvents=t.forwardingHistory||[],this.successfulEvents.length>0&&this.sort&&this.paginator&&this.loadForwardingEventsTable(this.successfulEvents),this.logger.info(t))})}ngAfterViewInit(){this.successfulEvents.length>0&&this.loadForwardingEventsTable(this.successfulEvents)}ngOnChanges(t){t.eventsData&&(this.apiCallStatus={status:o.Bn.COMPLETED,action:"FetchForwardingHistory"},this.eventsData=t.eventsData.currentValue,this.successfulEvents=this.eventsData,t.eventsData.firstChange||this.loadForwardingEventsTable(this.successfulEvents)),t.filterValue&&!t.filterValue.firstChange&&this.applyFilter()}onForwardingEventClick(t,B){this.store.dispatch((0,eA.qR)({payload:{data:{type:o.n_.INFORMATION,alertTitle:"Event Information",message:[[{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:100,type:o.Gi.STRING}],[{key:"status",value:"Settled",title:"Status",width:50,type:o.Gi.STRING},{key:"fee",value:t.fee,title:"Fee (mSats)",width:50,type:o.Gi.NUMBER}],[{key:"received_time",value:t.received_time,title:"Received Time",width:50,type:o.Gi.DATE_TIME},{key:"resolved_time",value:t.resolved_time,title:"Resolved Time",width:50,type:o.Gi.DATE_TIME}],[{key:"in_channel",value:t.in_channel_alias,title:"Inbound Channel",width:50,type:o.Gi.STRING},{key:"out_channel",value:t.out_channel_alias,title:"Outbound Channel",width:50,type:o.Gi.STRING}],[{key:"in_msatoshi",value:t.in_msatoshi,title:"In (mSats)",width:50,type:o.Gi.NUMBER},{key:"out_msatoshi",value:t.out_msatoshi,title:"Out (mSats)",width:50,type:o.Gi.NUMBER}]]}}}))}loadForwardingEventsTable(t){this.forwardingHistoryEvents=new SA.by([...t]),this.forwardingHistoryEvents.sort=this.sort,this.forwardingHistoryEvents.sortingDataAccessor=(B,k)=>B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null,this.forwardingHistoryEvents.paginator=this.paginator,this.forwardingHistoryEvents.filterPredicate=(B,k)=>((B.received_time?this.datePipe.transform(new Date(1e3*B.received_time),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(B.resolved_time?this.datePipe.transform(new Date(1e3*B.resolved_time),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(B.in_channel?B.in_channel.toLowerCase():"")+(B.out_channel?B.out_channel.toLowerCase():"")+(B.in_msatoshi?B.in_msatoshi/1e3:"")+(B.out_msatoshi?B.out_msatoshi/1e3:"")+(B.fee?B.fee:"")).includes(k),this.logger.info(this.forwardingHistoryEvents)}onDownloadCSV(){this.forwardingHistoryEvents&&this.forwardingHistoryEvents.data&&this.forwardingHistoryEvents.data.length>0&&this.commonService.downloadFile(this.forwardingHistoryEvents.data,"Forwarding-history")}applyFilter(){this.forwardingHistoryEvents&&(this.forwardingHistoryEvents.filter=this.filterValue.trim().toLowerCase())}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(e.v),A.Y36(u.yh),A.Y36(ht.uU))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-forwarding-history"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},inputs:{eventsData:"eventsData",filterValue:"filterValue"},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Events")}]),A.TTD],decls:5,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","class","page-sub-title-container",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100","class","table-container",3,"perfectScrollbar",4,"ngIf"],["class","mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","ngModelChange","input","keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","status"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","received_time"],["matColumnDef","resolved_time"],["matColumnDef","in_channel"],["matColumnDef","out_channel"],["matColumnDef","in_msatoshi"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","out_msatoshi"],["matColumnDef","fee"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.YNc(1,Pe,2,1,"div",1),A.YNc(2,xe,4,1,"div",2),A.YNc(3,ni,36,7,"div",3),A.YNc(4,ri,1,3,"mat-paginator",4),A.qZA()),2&t&&(A.xp6(1),A.Q6J("ngIf",""!==B.errorMessage),A.xp6(1),A.Q6J("ngIf",""===B.errorMessage),A.xp6(1),A.Q6J("ngIf",""===B.errorMessage),A.xp6(1),A.Q6J("ngIf",""===B.errorMessage))},directives:[Qt.xw,Qt.Wh,ht.O5,Qt.yH,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,gA.$V,SA.BZ,lt.YE,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,Y.pW,SA.ge,lt.nU,SA.ev,vt.gD,vt.$L,G.ey,F.lW,SA.yh,SA.Q2,ht.mk,d.oO,SA.XQ,SA.Gk,ft.NW],pipes:[ht.uU,ht.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),i})();function ii(i,U){if(1&i&&(A.TgZ(0,"div",5),A._uU(1),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Oqu(t.errorMessage)}}function ai(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",6),A._UZ(1,"div",7),A.TgZ(2,"mat-form-field",8),A.TgZ(3,"input",9),A.NdJ("keyup",function(){return A.CHM(t),A.oxw().applyFilter()})("ngModelChange",function(k){return A.CHM(t),A.oxw().selFilter=k}),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw();A.xp6(3),A.Q6J("ngModel",t.selFilter)}}function oi(i,U){1&i&&A._UZ(0,"mat-progress-bar",29)}function si(i,U){1&i&&(A.TgZ(0,"th",30),A._uU(1,"Status"),A.qZA())}function Qr(i,U){if(1&i&&(A.TgZ(0,"td",31),A._uU(1),A.ALo(2,"titlecase"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(A.lcZ(2,1,"local_failed"===(null==t?null:t.status)?"local failed":null==t?null:t.status))}}function Ka(i,U){1&i&&(A.TgZ(0,"th",30),A._uU(1,"Received Time"),A.qZA())}function Wa(i,U){if(1&i&&(A.TgZ(0,"td",31),A._uU(1),A.ALo(2,"date"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(A.xi3(2,1,1e3*(null==t?null:t.received_time),"dd/MMM/YYYY HH:mm"))}}function Va(i,U){1&i&&(A.TgZ(0,"th",30),A._uU(1,"In Channel"),A.qZA())}function Xa(i,U){if(1&i&&(A.TgZ(0,"td",31),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(null==t?null:t.in_channel_alias)}}function ta(i,U){1&i&&(A.TgZ(0,"th",32),A._uU(1,"Amount In (Sats)"),A.qZA())}function Kc(i,U){if(1&i&&(A.TgZ(0,"td",31),A.TgZ(1,"span",33),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,1,(null==t?null:t.in_msatoshi)/1e3,(null==t?null:t.in_msatoshi)<1e3?"1.0-4":"1.0-0"))}}function Wc(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",34),A.TgZ(1,"div",35),A.TgZ(2,"mat-select",36),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",37),A.NdJ("click",function(){return A.CHM(t),A.oxw(2).onDownloadCSV()}),A._uU(5,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}function Vc(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",38),A.TgZ(1,"button",39),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw(2).onFailedEventClick(FA)}),A._uU(2,"View Info"),A.qZA(),A.qZA()}}function Xc(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No failed transaction available."),A.qZA())}function qc(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting failed transactions..."),A.qZA())}function _c(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Oqu(t.errorMessage)}}function $c(i,U){if(1&i&&(A.TgZ(0,"td",40),A.YNc(1,Xc,2,0,"p",41),A.YNc(2,qc,2,0,"p",41),A.YNc(3,_c,2,1,"p",41),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngIf",(!(null!=t.failedForwardingEvents&&t.failedForwardingEvents.data)||(null==t.failedForwardingEvents||null==t.failedForwardingEvents.data?null:t.failedForwardingEvents.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.failedForwardingEvents&&t.failedForwardingEvents.data)||(null==t.failedForwardingEvents||null==t.failedForwardingEvents.data?null:t.failedForwardingEvents.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.failedForwardingEvents&&t.failedForwardingEvents.data)||(null==t.failedForwardingEvents||null==t.failedForwardingEvents.data?null:t.failedForwardingEvents.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.ERROR)}}const Ag=function(i){return{"display-none":i}};function tg(i,U){if(1&i&&A._UZ(0,"tr",42),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,Ag,(null==t.failedForwardingEvents?null:t.failedForwardingEvents.data)&&(null==t.failedForwardingEvents||null==t.failedForwardingEvents.data?null:t.failedForwardingEvents.data.length)>0))}}function eg(i,U){1&i&&A._UZ(0,"tr",43)}function ng(i,U){1&i&&A._UZ(0,"tr",44)}const rg=function(){return["no_event"]};function ig(i,U){if(1&i&&(A.TgZ(0,"div",10),A.YNc(1,oi,1,0,"mat-progress-bar",11),A.TgZ(2,"table",12,13),A.ynx(4,14),A.YNc(5,si,2,0,"th",15),A.YNc(6,Qr,3,3,"td",16),A.BQk(),A.ynx(7,17),A.YNc(8,Ka,2,0,"th",15),A.YNc(9,Wa,3,4,"td",16),A.BQk(),A.ynx(10,18),A.YNc(11,Va,2,0,"th",15),A.YNc(12,Xa,2,1,"td",16),A.BQk(),A.ynx(13,19),A.YNc(14,ta,2,0,"th",20),A.YNc(15,Kc,4,4,"td",16),A.BQk(),A.ynx(16,21),A.YNc(17,Wc,6,0,"th",22),A.YNc(18,Vc,3,0,"td",23),A.BQk(),A.ynx(19,24),A.YNc(20,$c,4,3,"td",25),A.BQk(),A.YNc(21,tg,1,3,"tr",26),A.YNc(22,eg,1,0,"tr",27),A.YNc(23,ng,1,0,"tr",28),A.qZA(),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngIf",(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",t.failedForwardingEvents),A.xp6(19),A.Q6J("matFooterRowDef",A.DdM(6,rg)),A.xp6(1),A.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",t.displayedColumns)}}function ag(i,U){if(1&i&&A._UZ(0,"mat-paginator",45),2&i){const t=A.oxw();A.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let og=(()=>{class i{constructor(t,B,k,FA,pt){this.logger=t,this.commonService=B,this.store=k,this.datePipe=FA,this.router=pt,this.errorMessage="",this.displayedColumns=[],this.flgSticky=!1,this.selFilter="",this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS||this.screenSize===o.cu.SM||this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["status","received_time","in_msatoshi","actions"]):(this.flgSticky=!0,this.displayedColumns=["status","received_time","in_channel","in_msatoshi","actions"])}ngOnInit(){this.router.routeReuseStrategy.shouldReuseRoute=()=>!1,this.router.onSameUrlNavigation="reload",this.store.dispatch((0,WA.Ip)()),this.store.select(l.xQ).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.failedEvents=t.failedForwardingHistory||[],this.failedEvents.length>0&&this.sort&&this.paginator&&this.loadFailedEventsTable(this.failedEvents),this.logger.info(t)})}ngAfterViewInit(){this.failedEvents.length>0&&this.loadFailedEventsTable(this.failedEvents)}onFailedEventClick(t){const B=[[{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:100,type:o.Gi.STRING}],[{key:"status",value:"local_failed"===t.status?"Local Failed":this.commonService.titleCase(t.status),title:"Status",width:50,type:o.Gi.STRING},{key:"received_time",value:t.received_time,title:"Received Time",width:50,type:o.Gi.DATE_TIME}],[{key:"in_channel",value:t.in_channel_alias,title:"Inbound Channel",width:50,type:o.Gi.STRING},{key:"in_msatoshi",value:t.in_msatoshi,title:"In (mSats)",width:50,type:o.Gi.NUMBER}]];this.store.dispatch((0,eA.qR)({payload:{data:{type:o.n_.INFORMATION,alertTitle:"Event Information",message:B}}}))}loadFailedEventsTable(t){this.failedForwardingEvents=new SA.by([...t]),this.failedForwardingEvents.sort=this.sort,this.failedForwardingEvents.sortingDataAccessor=(B,k)=>B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null,this.failedForwardingEvents.paginator=this.paginator,this.failedForwardingEvents.filterPredicate=(B,k)=>((B.status?"local_failed"===B.status?"local failed":B.status.toLowerCase():"")+(B.received_time?this.datePipe.transform(new Date(1e3*B.received_time),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(B.resolved_time?this.datePipe.transform(new Date(1e3*B.resolved_time),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(B.in_channel?B.in_channel.toLowerCase():"")+(B.out_channel?B.out_channel.toLowerCase():"")+(B.in_msatoshi?B.in_msatoshi/1e3:"")+(B.out_msatoshi?B.out_msatoshi/1e3:"")+(B.fee?B.fee:"")).includes(k),this.applyFilter(),this.logger.info(this.failedForwardingEvents)}onDownloadCSV(){this.failedForwardingEvents&&this.failedForwardingEvents.data&&this.failedForwardingEvents.data.length>0&&this.commonService.downloadFile(this.failedForwardingEvents.data,"Failed-transactions")}applyFilter(){this.failedForwardingEvents.filter=this.selFilter.trim().toLowerCase()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(e.v),A.Y36(u.yh),A.Y36(ht.uU),A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-failed-history"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Events")}])],decls:5,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","class","page-sub-title-container",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100","class","table-container",3,"perfectScrollbar",4,"ngIf"],["class","mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","status"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","received_time"],["matColumnDef","in_channel"],["matColumnDef","in_msatoshi"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.YNc(1,ii,2,1,"div",1),A.YNc(2,ai,4,1,"div",2),A.YNc(3,ig,24,7,"div",3),A.YNc(4,ag,1,3,"mat-paginator",4),A.qZA()),2&t&&(A.xp6(1),A.Q6J("ngIf",""!==B.errorMessage),A.xp6(1),A.Q6J("ngIf",""===B.errorMessage),A.xp6(1),A.Q6J("ngIf",""===B.errorMessage),A.xp6(1),A.Q6J("ngIf",""===B.errorMessage))},directives:[Qt.xw,Qt.Wh,ht.O5,Qt.yH,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,gA.$V,SA.BZ,lt.YE,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,Y.pW,SA.ge,lt.nU,SA.ev,vt.gD,vt.$L,G.ey,F.lW,SA.yh,SA.Q2,ht.mk,d.oO,SA.XQ,SA.Gk,ft.NW],pipes:[ht.rS,ht.uU,ht.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),i})();const sg=["tableIn"],cg=["tableOut"],gg=["paginatorIn"],lg=["paginatorOut"];function Bg(i,U){if(1&i&&(A.TgZ(0,"div",3),A._uU(1),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Oqu(t.errorMessage)}}function ug(i,U){1&i&&A._UZ(0,"mat-progress-bar",36)}function fg(i,U){1&i&&(A.TgZ(0,"th",37),A._uU(1,"Channel ID"),A.qZA())}const qa=function(i){return{"max-width":i}};function Eg(i,U){if(1&i&&(A.TgZ(0,"td",38),A._uU(1),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.Q6J("ngStyle",A.VKq(2,qa,B.screenSize===B.screenSizeEnum.XS?"5rem":"10rem")),A.xp6(1),A.Oqu(t.channel_id)}}function hg(i,U){1&i&&(A.TgZ(0,"th",37),A._uU(1,"Peer Alias"),A.qZA())}function wg(i,U){if(1&i&&(A.TgZ(0,"td",38),A._uU(1),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.Q6J("ngStyle",A.VKq(2,qa,B.screenSize===B.screenSizeEnum.XS?"5rem":"10rem")),A.xp6(1),A.Oqu(t.alias)}}function Cg(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1,"Events"),A.qZA())}function Qg(i,U){if(1&i&&(A.TgZ(0,"td",40),A.TgZ(1,"span",41),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.lcZ(3,1,t.events))}}function Mg(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1,"Amount (Sats)"),A.qZA())}function dg(i,U){if(1&i&&(A.TgZ(0,"td",40),A.TgZ(1,"span",41),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,1,(null==t?null:t.total_amount)/1e3,(null==t?null:t.total_amount)<1e3?"1.0-4":"1.0-0"))}}function pg(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1,"Fee (Sats)"),A.qZA())}function Ig(i,U){if(1&i&&(A.TgZ(0,"td",40),A.TgZ(1,"span",41),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,1,(null==t?null:t.total_fee)/1e3,(null==t?null:t.total_fee)<1e3?"1.0-4":"1.0-0"))}}function Dg(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No incoming routing peer available."),A.qZA())}function vg(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting incoming routing peers..."),A.qZA())}function mg(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Oqu(t.errorMessage)}}function yg(i,U){if(1&i&&(A.TgZ(0,"td",42),A.YNc(1,Dg,2,0,"p",43),A.YNc(2,vg,2,0,"p",43),A.YNc(3,mg,2,1,"p",43),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.ERROR)}}const Gc=function(i){return{"display-none":i}};function xg(i,U){if(1&i&&A._UZ(0,"tr",44),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,Gc,(null==t.RoutingPeersIncoming?null:t.RoutingPeersIncoming.data)&&(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)>0))}}function Fg(i,U){1&i&&A._UZ(0,"tr",45)}function Yg(i,U){1&i&&A._UZ(0,"tr",46)}function Tg(i,U){1&i&&A._UZ(0,"mat-progress-bar",36)}function Sg(i,U){1&i&&(A.TgZ(0,"th",37),A._uU(1,"Channel ID"),A.qZA())}function Ug(i,U){if(1&i&&(A.TgZ(0,"td",38),A._uU(1),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.Q6J("ngStyle",A.VKq(2,qa,B.screenSize===B.screenSizeEnum.XS?"5rem":"10rem")),A.xp6(1),A.Oqu(t.channel_id)}}function Pg(i,U){1&i&&(A.TgZ(0,"th",37),A._uU(1,"Peer Alias"),A.qZA())}function zg(i,U){if(1&i&&(A.TgZ(0,"td",38),A._uU(1),A.qZA()),2&i){const t=U.$implicit,B=A.oxw(2);A.Q6J("ngStyle",A.VKq(2,qa,B.screenSize===B.screenSizeEnum.XS?"5rem":"10rem")),A.xp6(1),A.Oqu(t.alias)}}function Rg(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1,"Events"),A.qZA())}function Ng(i,U){if(1&i&&(A.TgZ(0,"td",40),A.TgZ(1,"span",41),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.lcZ(3,1,t.events))}}function bg(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1,"Amount (Sats)"),A.qZA())}function Lg(i,U){if(1&i&&(A.TgZ(0,"td",40),A.TgZ(1,"span",41),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,1,(null==t?null:t.total_amount)/1e3,(null==t?null:t.total_amount)<1e3?"1.0-4":"1.0-0"))}}function Gg(i,U){1&i&&(A.TgZ(0,"th",39),A._uU(1,"Fee (Sats)"),A.qZA())}function Hg(i,U){if(1&i&&(A.TgZ(0,"td",40),A.TgZ(1,"span",41),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(A.xi3(3,1,(null==t?null:t.total_fee)/1e3,(null==t?null:t.total_fee)<1e3?"1.0-4":"1.0-0"))}}function Jg(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No outgoing routing peer available."),A.qZA())}function Og(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting outgoing routing peers..."),A.qZA())}function kg(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(3);A.xp6(1),A.Oqu(t.errorMessage)}}function jg(i,U){if(1&i&&(A.TgZ(0,"td",42),A.YNc(1,Jg,2,0,"p",43),A.YNc(2,Og,2,0,"p",43),A.YNc(3,kg,2,1,"p",43),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.ERROR)}}function Zg(i,U){if(1&i&&A._UZ(0,"tr",44),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,Gc,(null==t.RoutingPeersOutgoing?null:t.RoutingPeersOutgoing.data)&&(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)>0))}}function Kg(i,U){1&i&&A._UZ(0,"tr",45)}function Wg(i,U){1&i&&A._UZ(0,"tr",46)}const Vg=function(i,U){return{"mt-2":i,"mt-1":U}},Xg=function(){return["no_incoming_event"]},qg=function(i){return{"mt-2":i}},_g=function(){return["no_outgoing_event"]};function $g(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",4),A.TgZ(1,"div",5),A.TgZ(2,"div",6),A.TgZ(3,"div",7),A._uU(4,"Incoming"),A.qZA(),A.TgZ(5,"mat-form-field",8),A.TgZ(6,"input",9),A.NdJ("keyup",function(){return A.CHM(t),A.oxw().applyIncomingFilter()})("ngModelChange",function(k){return A.CHM(t),A.oxw().filterIn=k}),A.qZA(),A.qZA(),A.qZA(),A.TgZ(7,"div",10),A.YNc(8,ug,1,0,"mat-progress-bar",11),A.TgZ(9,"table",12,13),A.ynx(11,14),A.YNc(12,fg,2,0,"th",15),A.YNc(13,Eg,2,4,"td",16),A.BQk(),A.ynx(14,17),A.YNc(15,hg,2,0,"th",15),A.YNc(16,wg,2,4,"td",16),A.BQk(),A.ynx(17,18),A.YNc(18,Cg,2,0,"th",19),A.YNc(19,Qg,4,3,"td",20),A.BQk(),A.ynx(20,21),A.YNc(21,Mg,2,0,"th",19),A.YNc(22,dg,4,4,"td",20),A.BQk(),A.ynx(23,22),A.YNc(24,pg,2,0,"th",19),A.YNc(25,Ig,4,4,"td",20),A.BQk(),A.ynx(26,23),A.YNc(27,yg,4,3,"td",24),A.BQk(),A.YNc(28,xg,1,3,"tr",25),A.YNc(29,Fg,1,0,"tr",26),A.YNc(30,Yg,1,0,"tr",27),A.qZA(),A.qZA(),A._UZ(31,"mat-paginator",28,29),A.qZA(),A.TgZ(33,"div",30),A.TgZ(34,"div",6),A.TgZ(35,"div",7),A._uU(36,"Outgoing"),A.qZA(),A.TgZ(37,"mat-form-field",8),A.TgZ(38,"input",9),A.NdJ("keyup",function(){return A.CHM(t),A.oxw().applyOutgoingFilter()})("ngModelChange",function(k){return A.CHM(t),A.oxw().filterOut=k}),A.qZA(),A.qZA(),A.qZA(),A.TgZ(39,"div",31),A.YNc(40,Tg,1,0,"mat-progress-bar",11),A.TgZ(41,"table",32,33),A.ynx(43,14),A.YNc(44,Sg,2,0,"th",15),A.YNc(45,Ug,2,4,"td",16),A.BQk(),A.ynx(46,17),A.YNc(47,Pg,2,0,"th",15),A.YNc(48,zg,2,4,"td",16),A.BQk(),A.ynx(49,18),A.YNc(50,Rg,2,0,"th",19),A.YNc(51,Ng,4,3,"td",20),A.BQk(),A.ynx(52,21),A.YNc(53,bg,2,0,"th",19),A.YNc(54,Lg,4,4,"td",20),A.BQk(),A.ynx(55,22),A.YNc(56,Gg,2,0,"th",19),A.YNc(57,Hg,4,4,"td",20),A.BQk(),A.ynx(58,34),A.YNc(59,jg,4,3,"td",24),A.BQk(),A.YNc(60,Zg,1,3,"tr",25),A.YNc(61,Kg,1,0,"tr",26),A.YNc(62,Wg,1,0,"tr",27),A.qZA(),A._UZ(63,"mat-paginator",28,35),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw();A.xp6(2),A.Q6J("ngClass",A.WLB(22,Vg,t.screenSize===t.screenSizeEnum.XS,t.screenSize===t.screenSizeEnum.SM)),A.xp6(4),A.Q6J("ngModel",t.filterIn),A.xp6(2),A.Q6J("ngIf",(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",t.RoutingPeersIncoming),A.xp6(19),A.Q6J("matFooterRowDef",A.DdM(25,Xg)),A.xp6(1),A.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",t.displayedColumns),A.xp6(1),A.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS),A.xp6(3),A.Q6J("ngClass",A.VKq(26,qg,t.screenSize!==t.screenSizeEnum.LG)),A.xp6(4),A.Q6J("ngModel",t.filterOut),A.xp6(2),A.Q6J("ngIf",(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",t.RoutingPeersOutgoing),A.xp6(19),A.Q6J("matFooterRowDef",A.DdM(28,_g)),A.xp6(1),A.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",t.displayedColumns),A.xp6(1),A.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let Al=(()=>{class i{constructor(t,B,k){this.logger=t,this.commonService=B,this.store=k,this.eventsData=[],this.filterValue="",this.successfulEvents=[],this.displayedColumns=[],this.RoutingPeersIncoming=[],this.RoutingPeersOutgoing=[],this.flgSticky=!1,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.filterIn="",this.filterOut="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","total_fee"]):this.screenSize===o.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","events","total_fee"]):this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","events","total_amount","total_fee"]):(this.flgSticky=!0,this.displayedColumns=["channel_id","alias","events","total_amount","total_fee"])}ngOnInit(){this.store.select(l.Bo).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.eventsData.length<=0&&(this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.successfulEvents=t.forwardingHistory||[],this.successfulEvents.length>0&&this.sortIn&&this.paginatorIn&&this.sortOut&&this.paginatorOut&&this.loadRoutingPeersTable(this.successfulEvents),this.logger.info(t))})}ngAfterViewInit(){this.successfulEvents.length>0&&this.loadRoutingPeersTable(this.successfulEvents)}ngOnChanges(t){t.eventsData&&(this.apiCallStatus={status:o.Bn.COMPLETED,action:"FetchForwardingHistory"},this.eventsData=t.eventsData.currentValue,this.successfulEvents=this.eventsData,t.eventsData.firstChange||this.loadRoutingPeersTable(this.successfulEvents))}loadRoutingPeersTable(t){if(t.length>0){const B=this.groupRoutingPeers(t);this.RoutingPeersIncoming=new SA.by(B[0]),this.RoutingPeersIncoming.sort=this.sortIn,this.RoutingPeersIncoming.filterPredicate=(k,FA)=>JSON.stringify(k).toLowerCase().includes(FA),this.RoutingPeersIncoming.paginator=this.paginatorIn,this.logger.info(this.RoutingPeersIncoming),this.RoutingPeersOutgoing=new SA.by(B[1]),this.RoutingPeersOutgoing.sort=this.sortOut,this.RoutingPeersOutgoing.filterPredicate=(k,FA)=>JSON.stringify(k).toLowerCase().includes(FA),this.RoutingPeersOutgoing.paginator=this.paginatorOut,this.logger.info(this.RoutingPeersOutgoing)}else this.RoutingPeersIncoming=new SA.by([]),this.RoutingPeersOutgoing=new SA.by([]);this.applyIncomingFilter(),this.applyOutgoingFilter(),this.logger.info(this.RoutingPeersIncoming),this.logger.info(this.RoutingPeersOutgoing)}groupRoutingPeers(t){const B=[],k=[];return t.forEach(FA=>{const pt=B.find(vn=>vn.channel_id===FA.in_channel),Ye=k.find(vn=>vn.channel_id===FA.out_channel);pt?(pt.events++,pt.total_amount=+pt.total_amount+ +FA.in_msatoshi,pt.total_fee=FA.in_msatoshi-FA.out_msatoshi+ +pt.total_fee):B.push({channel_id:FA.in_channel,alias:FA.in_channel_alias,events:1,total_amount:FA.in_msatoshi,total_fee:FA.in_msatoshi-FA.out_msatoshi}),Ye?(Ye.events++,Ye.total_amount=+Ye.total_amount+ +FA.out_msatoshi,Ye.total_fee=FA.in_msatoshi-FA.out_msatoshi+ +Ye.total_fee):k.push({channel_id:FA.out_channel,alias:FA.out_channel_alias,events:1,total_amount:FA.out_msatoshi,total_fee:FA.in_msatoshi-FA.out_msatoshi})}),[this.commonService.sortDescByKey(B,"total_fee"),this.commonService.sortDescByKey(k,"total_fee")]}applyIncomingFilter(){this.RoutingPeersIncoming.filter=this.filterIn.toLowerCase()}applyOutgoingFilter(){this.RoutingPeersOutgoing.filter=this.filterOut.toLowerCase()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(e.v),A.Y36(u.yh))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-routing-peers"]],viewQuery:function(t,B){if(1&t&&(A.Gf(sg,5,lt.YE),A.Gf(cg,5,lt.YE),A.Gf(gg,5),A.Gf(lg,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sortIn=k.first),A.iGM(k=A.CRH())&&(B.sortOut=k.first),A.iGM(k=A.CRH())&&(B.paginatorIn=k.first),A.iGM(k=A.CRH())&&(B.paginatorOut=k.first)}},inputs:{eventsData:"eventsData",filterValue:"filterValue"},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Peers")}]),A.TTD],decls:3,vars:2,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between stretch","class","page-sub-title-container",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between stretch",1,"page-sub-title-container"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"page-sub-title-container","w-100",3,"ngClass"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",1,"overflow-auto","incoming-table",3,"dataSource"],["tableIn",""],["matColumnDef","channel_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","events"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","total_amount"],["matColumnDef","total_fee"],["matColumnDef","no_incoming_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["paginatorIn",""],["fxLayout","column","fxFlex","49","fxLayoutAlign","end stretch"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","matSort","",1,"overflow-auto","outgoing-table",3,"dataSource"],["tableOut",""],["matColumnDef","no_outgoing_event"],["paginatorOut",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.YNc(1,Bg,2,1,"div",1),A.YNc(2,$g,65,29,"div",2),A.qZA()),2&t&&(A.xp6(1),A.Q6J("ngIf",""!==B.errorMessage),A.xp6(1),A.Q6J("ngIf",""===B.errorMessage))},directives:[Qt.xw,Qt.Wh,ht.O5,Qt.yH,ht.mk,d.oO,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,gA.$V,SA.BZ,lt.YE,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,ft.NW,Y.pW,SA.ge,lt.nU,SA.ev,ht.PC,d.Zl,SA.yh,SA.Q2,SA.XQ,SA.Gk],pipes:[ht.JJ],styles:[".mat-column-channelId[_ngcontent-%COMP%], .mat-column-alias[_ngcontent-%COMP%]{flex:1 1 10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),i})();function tl(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",7),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().activeLink=FA.link}),A._uU(1),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw();A.s9C("routerLink",t.link),A.Q6J("active",B.activeLink===t.link),A.xp6(1),A.Oqu(t.name)}}let el=(()=>{class i{constructor(t){this.router=t,this.faChartBar=E.koM,this.links=[{link:"routingfees",name:"Routing Fees"},{link:"transactions",name:"Transactions"}],this.activeLink=this.links[0].link,this.unSubs=[new c.x,new c.x,new c.x,new c.x]}ngOnInit(){const t=this.links.find(B=>this.router.url.includes(B.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(B=>B instanceof Ae.Av)).subscribe(B=>{const k=this.links.find(FA=>B.urlAfterRedirects.includes(FA.link));this.activeLink=k?k.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-reports"]],decls:10,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A._UZ(1,"fa-icon",1),A.TgZ(2,"span",2),A._uU(3,"Reports"),A.qZA(),A.qZA(),A.TgZ(4,"div",3),A.TgZ(5,"mat-card"),A.TgZ(6,"mat-card-content",4),A.TgZ(7,"nav",5),A.YNc(8,tl,2,3,"div",6),A.qZA(),A._UZ(9,"router-outlet"),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(1),A.Q6J("icon",B.faChartBar),A.xp6(7),A.Q6J("ngForOf",B.links))},directives:[Qt.xw,Qt.Wh,f.BN,w.a8,w.dn,yA.BU,ht.sg,Ae.lC,yA.Nj,Ae.rH],styles:[""]}),i})();var Hc=St(7772),Jc=St(7671),Oc=St(6046);function nl(i,U){1&i&&(A.TgZ(0,"div",9),A._UZ(1,"mat-progress-bar",10),A.TgZ(2,"p"),A._uU(3,"Getting fee report..."),A.qZA(),A.qZA())}function rl(i,U){if(1&i&&(A.TgZ(0,"div",11),A._uU(1),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Oqu(t.errorMessage)}}function il(i,U){if(1&i&&(A.TgZ(0,"div",12),A._uU(1),A.ALo(2,"number"),A.ALo(3,"number"),A.qZA()),2&i){const t=A.oxw();A.Q6J("@fadeIn",t.totalFeeMsat),A.xp6(1),A.AsE("",A.xi3(2,3,t.totalFeeMsat/1e3||0,"1.0-2")," Sats/",A.lcZ(3,6,t.filteredEventsBySelectedPeriod.length||0)," Events")}}function al(i,U){1&i&&(A.TgZ(0,"div",9),A._uU(1,"No fee report for the selected period"),A.qZA())}function ol(i,U){if(1&i&&(A.TgZ(0,"span"),A.TgZ(1,"span",15),A._uU(2),A.ALo(3,"number"),A.qZA(),A.TgZ(4,"span",15),A._uU(5),A.ALo(6,"number"),A.qZA(),A.qZA()),2&i){const t=U.model;A.xp6(2),A.hij("Events: ",A.lcZ(3,2,t.extra.totalEvents||0),""),A.xp6(3),A.hij("Fee: ",A.xi3(6,4,t.value||0,"1.0-2"),"")}}function sl(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"ngx-charts-bar-vertical",13),A.NdJ("select",function(k){return A.CHM(t),A.oxw().onChartBarSelected(k)})("mouseup",function(k){return A.CHM(t),A.oxw().onChartMouseUp(k)}),A.YNc(1,ol,7,7,"ng-template",null,14,A.W1O),A.qZA()}if(2&i){const t=A.oxw();A.Q6J("view",t.view)("results",t.feeReportData)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",t.showYAxisLabel)("xAxisLabel",t.xAxisLabel)("yAxisLabel",t.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)}}function cl(i,U){if(1&i&&A._UZ(0,"rtl-cl-forwarding-history",16),2&i){const t=A.oxw();A.Q6J("eventsData",t.filteredEventsBySelectedPeriod)("filterValue",t.eventFilterValue)}}let gl=(()=>{class i{constructor(t,B,k){this.logger=t,this.commonService=B,this.store=k,this.reportPeriod=o.op[0],this.secondsInADay=86400,this.events=[],this.filteredEventsBySelectedPeriod=[],this.eventFilterValue="",this.totalFeeMsat=null,this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.feeReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Fee (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===o.cu.XS||this.screenSize===o.cu.SM),this.store.select(l.Bo).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.events=t.forwardingHistory||[],this.filterForwardingEvents(this.startDate,this.endDate),this.logger.info(t)}),this.commonService.containerSizeUpdated.pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{switch(this.screenSize){case o.cu.MD:this.screenPaddingX=t.width/10;break;case o.cu.LG:this.screenPaddingX=t.width/16;break;default:this.screenPaddingX=t.width/20}this.view=[t.width-this.screenPaddingX,t.height/2.2],this.logger.info("Container Size: "+JSON.stringify(t)),this.logger.info("View: "+JSON.stringify(this.view))})}filterForwardingEvents(t,B){const k=Math.round(t.getTime()/1e3),FA=Math.round(B.getTime()/1e3);this.filteredEventsBySelectedPeriod=[],this.feeReportData=[],this.totalFeeMsat=null,this.events&&this.events.length>0&&(this.events.forEach(pt=>{pt.received_time>=k&&pt.received_time0&&"ngx-charts"===t.srcElement.classList[0]&&(this.eventFilterValue="")}onChartBarSelected(t){this.eventFilterValue=this.reportPeriod===o.op[1]?t.name+"/"+this.startDate.getFullYear():t.name.toString().padStart(2,"0")+"/"+o.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}prepareFeeReport(t){const B=Math.round(t.getTime()/1e3),k=[];if(this.reportPeriod===o.op[1]){for(let FA=0;FA<12;FA++)k.push({name:o.gg[FA].name,value:0,extra:{totalEvents:0}});this.filteredEventsBySelectedPeriod.map(FA=>{const pt=new Date(1e3*+FA.received_time).getMonth();return k[pt].value=k[pt].value+ +FA.fee/1e3,k[pt].extra.totalEvents=k[pt].extra.totalEvents+1,this.totalFeeMsat=(this.totalFeeMsat?this.totalFeeMsat:0)+ +FA.fee,this.filteredEventsBySelectedPeriod})}else{for(let FA=0;FA{const pt=Math.floor((+FA.received_time-B)/this.secondsInADay);return k[pt].value=k[pt].value+ +FA.fee/1e3,k[pt].extra.totalEvents=k[pt].extra.totalEvents+1,this.totalFeeMsat=(this.totalFeeMsat?this.totalFeeMsat:0)+ +FA.fee,this.filteredEventsBySelectedPeriod})}return k}onSelectionChange(t){const B=t.selDate.getMonth(),k=t.selDate.getFullYear();this.reportPeriod=t.selScrollRange,this.reportPeriod===o.op[1]?(this.startDate=new Date(k,0,1,0,0,0),this.endDate=new Date(k,11,31,23,59,59)):(this.startDate=new Date(k,B,1,0,0,0),this.endDate=new Date(k,B,this.getMonthDays(B,k),23,59,59)),this.filterForwardingEvents(this.startDate,this.endDate),this.eventFilterValue=""}getMonthDays(t,B){return 1===t&&B%4==0?o.gg[t].days+1:o.gg[t].days}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(e.v),A.Y36(u.yh))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-fee-report"]],hostBindings:function(t,B){1&t&&A.NdJ("mouseup",function(FA){return B.onChartMouseUp(FA)})},decls:11,vars:6,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1 error-border",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],[1,"mt-1"],["class","one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup",4,"ngIf"],[3,"eventsData","filterValue",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],["mode","indeterminate"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1","error-border"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],[1,"one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"eventsData","filterValue"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"rtl-horizontal-scroller",1),A.NdJ("stepChanged",function(FA){return B.onSelectionChange(FA)}),A.qZA(),A.TgZ(2,"div",2),A.YNc(3,nl,4,0,"div",3),A.YNc(4,rl,2,1,"div",4),A.YNc(5,il,4,8,"div",5),A.YNc(6,al,2,0,"div",3),A.TgZ(7,"div",6),A.YNc(8,sl,3,11,"ngx-charts-bar-vertical",7),A.qZA(),A.TgZ(9,"div",6),A.YNc(10,cl,1,2,"rtl-cl-forwarding-history",8),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(3),A.Q6J("ngIf",(null==B.apiCallStatus?null:B.apiCallStatus.status)===B.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(null==B.apiCallStatus?null:B.apiCallStatus.status)===B.apiCallStatusEnum.ERROR),A.xp6(1),A.Q6J("ngIf",(null==B.apiCallStatus?null:B.apiCallStatus.status)===B.apiCallStatusEnum.COMPLETED&&B.feeReportData.length>0&&B.filteredEventsBySelectedPeriod.length>0),A.xp6(1),A.Q6J("ngIf",(null==B.apiCallStatus?null:B.apiCallStatus.status)===B.apiCallStatusEnum.COMPLETED&&(B.feeReportData.length<=0||B.filteredEventsBySelectedPeriod.length<=0)),A.xp6(2),A.Q6J("ngIf",B.feeReportData.length>0&&B.filteredEventsBySelectedPeriod.length>0),A.xp6(2),A.Q6J("ngIf",B.filteredEventsBySelectedPeriod&&B.filteredEventsBySelectedPeriod.length>0))},directives:[Qt.xw,Qt.Wh,Qt.yH,Jc.D,ht.O5,Y.pW,Oc.K$,br],pipes:[ht.JJ],styles:[""],data:{animation:[Hc.J]}}),i})();var ll=St(165);function Bl(i,U){if(1&i&&(A.TgZ(0,"div",10),A._uU(1),A.ALo(2,"number"),A.ALo(3,"number"),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.AsE(" Paid ",A.xi3(2,2,t.transactionsReportSummary.amountPaidSelectedPeriod/1e3||0,"1.0-2")," Sats/",A.lcZ(3,5,t.transactionsReportSummary.paymentsSelectedPeriod)," Payments ")}}function ul(i,U){if(1&i&&(A.TgZ(0,"div",10),A._uU(1),A.ALo(2,"number"),A.ALo(3,"number"),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.AsE(" Received ",A.xi3(2,2,t.transactionsReportSummary.amountReceivedSelectedPeriod/1e3||0,"1.0-2")," Sats/",A.lcZ(3,5,t.transactionsReportSummary.invoicesSelectedPeriod)," Invoices ")}}function fl(i,U){if(1&i&&(A.TgZ(0,"div",8),A.YNc(1,Bl,4,7,"div",9),A.YNc(2,ul,4,7,"div",9),A.qZA()),2&i){const t=A.oxw();A.Q6J("@fadeIn",t.transactionsReportSummary),A.xp6(1),A.Q6J("ngIf",t.transactionsReportSummary.paymentsSelectedPeriod),A.xp6(1),A.Q6J("ngIf",t.transactionsReportSummary.invoicesSelectedPeriod)}}function El(i,U){1&i&&(A.TgZ(0,"div",11),A._uU(1,"No transactions report for the selected period"),A.qZA())}function hl(i,U){if(1&i&&(A.TgZ(0,"span",14),A._uU(1),A.ALo(2,"number"),A.ALo(3,"number"),A.qZA()),2&i){const t=U.model;A.xp6(1),A.HOy("",t.name,": ",A.xi3(2,4,t.value||0,"1.0-2"),"/# ","Paid"===t.name?"Payments":"Invoices",": ",A.lcZ(3,7,(null==t.extra?null:t.extra.total)||0),"")}}function wl(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"ngx-charts-bar-vertical-2d",12),A.NdJ("select",function(k){return A.CHM(t),A.oxw().onChartBarSelected(k)})("mouseup",function(k){return A.CHM(t),A.oxw().onChartMouseUp(k)}),A.YNc(1,hl,4,9,"ng-template",null,13,A.W1O),A.qZA()}if(2&i){const t=A.oxw();A.Q6J("view",t.view)("results",t.transactionsReportData)("noBarWhenZero",!1)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",t.showYAxisLabel)("xAxisLabel",t.xAxisLabel)("yAxisLabel",t.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)("groupPadding",t.reportPeriod===t.scrollRanges[0]?2:4)}}function Cl(i,U){if(1&i&&A._UZ(0,"rtl-transactions-report-table",15),2&i){const t=A.oxw();A.Q6J("dataList",t.transactionsNonZeroReportData)("dataRange",t.reportPeriod)("filterValue",t.transactionFilterValue)}}let Ql=(()=>{class i{constructor(t,B,k){this.logger=t,this.commonService=B,this.store=k,this.scrollRanges=o.op,this.reportPeriod=o.op[0],this.secondsInADay=86400,this.payments=[],this.invoices=[],this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0},this.transactionFilterValue="",this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.transactionsReportData=[],this.transactionsNonZeroReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Amount (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=o.cu,this.unSubs=[new c.x,new c.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===o.cu.XS||this.screenSize===o.cu.SM),this.store.select(l.PP).pipe((0,r.R)(this.unSubs[0]),(0,a.M)(this.store.select(l.gc))).subscribe(([t,B])=>{this.payments=t.payments,this.invoices=B.listInvoices.invoices,this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData()}),this.commonService.containerSizeUpdated.pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{switch(this.screenSize){case o.cu.MD:this.screenPaddingX=t.width/10;break;case o.cu.LG:this.screenPaddingX=t.width/16;break;default:this.screenPaddingX=t.width/20}this.view=[t.width-this.screenPaddingX,t.height/2.2],this.logger.info("Container Size: "+JSON.stringify(t)),this.logger.info("View: "+JSON.stringify(this.view))})}onChartMouseUp(t){"svg"===t.srcElement.tagName&&t.srcElement.classList.length>0&&"ngx-charts"===t.srcElement.classList[0]&&(this.transactionFilterValue="")}onChartBarSelected(t){this.transactionFilterValue=this.reportPeriod===o.op[1]?t.series+"/"+this.startDate.getFullYear():t.series.toString().padStart(2,"0")+"/"+o.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}filterTransactionsForSelectedPeriod(t,B){const k=Math.round(t.getTime()/1e3),FA=Math.round(B.getTime()/1e3),pt=[];this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0};const Ye=this.payments.filter(Ie=>"complete"===Ie.status&&Ie.created_at>=k&&Ie.created_at"paid"===Ie.status&&Ie.paid_at>=k&&Ie.paid_at{const fn=new Date(1e3*Ie.created_at).getMonth();return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+Ie.msatoshi_sent,pt[fn].series[0].value=pt[fn].series[0].value+Ie.msatoshi_sent/1e3,pt[fn].series[0].extra.total=pt[fn].series[0].extra.total+1,this.transactionsReportSummary}),vn.map(Ie=>{const fn=new Date(1e3*+Ie.paid_at).getMonth();return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+Ie.msatoshi_received,pt[fn].series[1].value=pt[fn].series[1].value+Ie.msatoshi_received/1e3,pt[fn].series[1].extra.total=pt[fn].series[1].extra.total+1,this.transactionsReportSummary})}else{for(let Ie=0;Ie{const fn=Math.floor((+Ie.created_at-k)/this.secondsInADay);return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+Ie.msatoshi_sent,pt[fn].series[0].value=pt[fn].series[0].value+Ie.msatoshi_sent/1e3,pt[fn].series[0].extra.total=pt[fn].series[0].extra.total+1,this.transactionsReportSummary}),vn.map(Ie=>{const fn=Math.floor((+Ie.paid_at-k)/this.secondsInADay);return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+Ie.msatoshi_received,pt[fn].series[1].value=pt[fn].series[1].value+Ie.msatoshi_received/1e3,pt[fn].series[1].extra.total=pt[fn].series[1].extra.total+1,this.transactionsReportSummary})}return pt}prepareTableData(){return this.transactionsReportData.reduce((t,B)=>B.series[0].extra.total>0||B.series[1].extra.total>0?t.concat({date:B.date,amount_paid:B.series[0].value,num_payments:B.series[0].extra.total,amount_received:B.series[1].value,num_invoices:B.series[1].extra.total}):t,[])}onSelectionChange(t){const B=t.selDate.getMonth(),k=t.selDate.getFullYear();this.reportPeriod=t.selScrollRange,this.reportPeriod===o.op[1]?(this.startDate=new Date(k,0,1,0,0,0),this.endDate=new Date(k,11,31,23,59,59)):(this.startDate=new Date(k,B,1,0,0,0),this.endDate=new Date(k,B,this.getMonthDays(B,k),23,59,59)),this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData(),this.transactionFilterValue=""}getMonthDays(t,B){return 1===t&&B%4==0?o.gg[t].days+1:o.gg[t].days}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(e.v),A.Y36(u.yh))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-transactions-report"]],hostBindings:function(t,B){1&t&&A.NdJ("mouseup",function(FA){return B.onChartMouseUp(FA)})},decls:9,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],[1,"mt-1"],["class","two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup",4,"ngIf"],[3,"dataList","dataRange","filterValue",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],[1,"two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"dataList","dataRange","filterValue"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"rtl-horizontal-scroller",1),A.NdJ("stepChanged",function(FA){return B.onSelectionChange(FA)}),A.qZA(),A.TgZ(2,"div",2),A.YNc(3,fl,3,3,"div",3),A.YNc(4,El,2,0,"div",4),A.TgZ(5,"div",5),A.YNc(6,wl,3,13,"ngx-charts-bar-vertical-2d",6),A.qZA(),A.TgZ(7,"div",5),A.YNc(8,Cl,1,3,"rtl-transactions-report-table",7),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(3),A.Q6J("ngIf",B.transactionsNonZeroReportData.length>0),A.xp6(1),A.Q6J("ngIf",B.transactionsNonZeroReportData.length<=0),A.xp6(2),A.Q6J("ngIf",B.transactionsNonZeroReportData.length>0),A.xp6(2),A.Q6J("ngIf",B.transactionsNonZeroReportData.length>0))},directives:[Qt.xw,Qt.Wh,Qt.yH,Jc.D,ht.O5,Oc.H5,ll.g],pipes:[ht.JJ],styles:[""],data:{animation:[Hc.J]}}),i})();var Ke=St(1643),Ml=St(9442);function dl(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"div",8),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().activeLink=FA.link}),A._uU(1),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw();A.s9C("routerLink",t.link),A.Q6J("active",B.activeLink===t.link),A.xp6(1),A.Oqu(t.name)}}let pl=(()=>{class i{constructor(t){this.router=t,this.faSearch=E.wn1,this.links=[{link:"lookups",name:"Lookup"},{link:"queryroutes",name:"Query Routes"}],this.activeLink=this.links[0].link,this.unSubs=[new c.x,new c.x,new c.x,new c.x]}ngOnInit(){const t=this.links.find(B=>this.router.url.includes(B.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,r.R)(this.unSubs[0]),(0,_A.h)(B=>B instanceof Ae.Av)).subscribe(B=>{const k=this.links.find(FA=>B.urlAfterRedirects.includes(FA.link));this.activeLink=k?k.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(Ae.F0))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-graph"]],decls:11,vars:2,consts:[["fxLayout","row wrap","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A._UZ(1,"fa-icon",1),A.TgZ(2,"span",2),A._uU(3,"Graph Lookups"),A.qZA(),A.qZA(),A.TgZ(4,"div",3),A.TgZ(5,"mat-card"),A.TgZ(6,"mat-card-content",4),A.TgZ(7,"nav",5),A.YNc(8,dl,2,3,"div",6),A.qZA(),A.TgZ(9,"div",7),A._UZ(10,"router-outlet"),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(1),A.Q6J("icon",B.faSearch),A.xp6(7),A.Q6J("ngForOf",B.links))},directives:[Qt.xw,Qt.Wh,f.BN,w.a8,w.dn,yA.BU,ht.sg,Qt.yH,Ae.lC,yA.Nj,Ae.rH],styles:[""]}),i})();var Il=St(4641),Dl=St(8493);function vl(i,U){if(1&i&&(A.TgZ(0,"span"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.offerError)}}function ml(i,U){if(1&i&&(A.TgZ(0,"div",21),A._UZ(1,"fa-icon",22),A.YNc(2,vl,2,1,"span",23),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("icon",t.faExclamationTriangle),A.xp6(1),A.Q6J("ngIf",""!==t.offerError)}}let yl=(()=>{class i{constructor(t,B,k,FA,pt,Ye){this.dialogRef=t,this.data=B,this.store=k,this.decimalPipe=FA,this.commonService=pt,this.actions=Ye,this.faExclamationTriangle=E.eHv,this.selNode={},this.description="",this.vendor="",this.offerValueHint="",this.information={},this.pageSize=o.IV,this.offerError="",this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x]}ngOnInit(){this.pageSize=this.data.pageSize,this.store.select(l.Jo).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(l.W3).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.information=t,this.vendor=this.information.alias}),this.actions.pipe((0,r.R)(this.unSubs[2]),(0,_A.h)(t=>t.type===o.sW.UPDATE_API_CALL_STATUS_CL)).subscribe(t=>{t.type===o.sW.UPDATE_API_CALL_STATUS_CL&&"SaveNewOffer"===t.payload.action&&(t.payload.status===o.Bn.ERROR&&(this.offerError=t.payload.message),t.payload.status===o.Bn.COMPLETED&&this.dialogRef.close())})}onAddOffer(){this.offerError="",this.store.dispatch((0,WA.dh)({payload:{amount:this.offerValue?this.offerValue+"sats":"any",description:this.description,vendor:this.vendor}}))}resetData(){this.description="",this.vendor=this.information.alias,this.offerValue=null,this.offerValueHint="",this.offerError=""}onOfferValueChange(){this.selNode.fiatConversion&&this.offerValue>99&&(this.offerValueHint="",this.commonService.convertCurrency(this.offerValue,o.NT.SATS,o.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,r.R)(this.unSubs[3])).subscribe({next:t=>{this.offerValueHint="= "+t.symbol+this.decimalPipe.transform(t.OTHER,o.Xz.OTHER)+" "+t.unit},error:t=>{this.offerValueHint="Conversion Error: "+t}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(OA.so),A.Y36(OA.WI),A.Y36(u.yh),A.Y36(ht.JJ),A.Y36(e.v),A.Y36(C.eX))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-create-offer"]],decls:28,vars:8,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","6","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","start space-between","fxFlex","100"],["addOfferForm","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","autoFocus","","placeholder","Description","tabindex","1","name","description",3,"ngModel","ngModelChange"],["fxLayout","row","fxLayoutAlign","space-between start","fxFlex","100"],["fxFlex","40"],["matInput","","placeholder","Amount","type","number","tabindex","2","name","offerValue",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxFlex","58","fxLayoutAlign","start end"],["matInput","","placeholder","Vendor","tabindex","3","name","vendor",3,"ngModel","ngModelChange"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-1"],["mat-button","","color","primary","tabindex","4","type","reset",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","5",3,"click"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[4,"ngIf"]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"mat-card-header",2),A.TgZ(3,"div",3),A.TgZ(4,"span",4),A._uU(5,"Create Offer"),A.qZA(),A.qZA(),A.TgZ(6,"button",5),A._uU(7,"X"),A.qZA(),A.qZA(),A.TgZ(8,"mat-card-content",6),A.TgZ(9,"form",7,8),A.TgZ(11,"mat-form-field",9),A.TgZ(12,"input",10),A.NdJ("ngModelChange",function(FA){return B.description=FA}),A.qZA(),A.qZA(),A.TgZ(13,"div",11),A.TgZ(14,"mat-form-field",12),A.TgZ(15,"input",13),A.NdJ("ngModelChange",function(FA){return B.offerValue=FA})("keyup",function(){return B.onOfferValueChange()}),A.qZA(),A.TgZ(16,"span",14),A._uU(17," Sats "),A.qZA(),A.TgZ(18,"mat-hint"),A._uU(19),A.qZA(),A.qZA(),A.TgZ(20,"mat-form-field",15),A.TgZ(21,"input",16),A.NdJ("ngModelChange",function(FA){return B.vendor=FA}),A.qZA(),A.qZA(),A.qZA(),A.YNc(22,ml,3,2,"div",17),A.TgZ(23,"div",18),A.TgZ(24,"button",19),A.NdJ("click",function(){return B.resetData()}),A._uU(25,"Clear Field"),A.qZA(),A.TgZ(26,"button",20),A.NdJ("click",function(){return B.onAddOffer()}),A._uU(27,"Create Offer"),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA(),A.qZA()),2&t&&(A.xp6(6),A.Q6J("mat-dialog-close",!1),A.xp6(6),A.Q6J("ngModel",B.description),A.xp6(3),A.Q6J("ngModel",B.offerValue)("step",100)("min",1),A.xp6(4),A.Oqu(B.offerValueHint),A.xp6(2),A.Q6J("ngModel",B.vendor),A.xp6(1),A.Q6J("ngIf",""!==B.offerError))},directives:[Qt.xw,Qt.yH,w.dk,Qt.Wh,F.lW,OA.ZT,w.dn,zA._Y,zA.JL,zA.F,V.KE,ot.Nt,zA.Fj,It.h,zA.JJ,zA.On,zA.wV,zA.qQ,dt.q,V.R9,V.bx,ht.O5,f.BN],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),i})();var kc=St(1189);function xl(i,U){1&i&&A._UZ(0,"mat-progress-bar",28)}function Fl(i,U){1&i&&(A.TgZ(0,"th",29),A._uU(1," Offer ID "),A.qZA())}const jc=function(i){return{"mr-0":i}};function Yl(i,U){if(1&i&&A._UZ(0,"span",35),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,jc,t.screenSize===t.screenSizeEnum.XS))}}function Tl(i,U){if(1&i&&A._UZ(0,"span",36),2&i){const t=A.oxw(2);A.Q6J("ngClass",A.VKq(1,jc,t.screenSize===t.screenSizeEnum.XS))}}const Sl=function(i){return{"max-width":i}};function Ul(i,U){if(1&i&&(A.TgZ(0,"td",30),A.TgZ(1,"div",31),A.TgZ(2,"span",32),A.YNc(3,Yl,1,3,"span",33),A.YNc(4,Tl,1,3,"span",34),A._uU(5),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.xp6(1),A.Q6J("ngStyle",A.VKq(4,Sl,B.screenSize===B.screenSizeEnum.XS?"25rem":"45rem")),A.xp6(2),A.Q6J("ngIf",t.active),A.xp6(1),A.Q6J("ngIf",!t.active),A.xp6(1),A.hij(" ",t.offer_id," ")}}function Pl(i,U){1&i&&(A.TgZ(0,"th",29),A._uU(1," Single Use "),A.qZA())}function zl(i,U){if(1&i&&(A.TgZ(0,"td",30),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(t.single_use?"Yes":"No")}}function Rl(i,U){1&i&&(A.TgZ(0,"th",29),A._uU(1," Used "),A.qZA())}function Nl(i,U){if(1&i&&(A.TgZ(0,"td",30),A._uU(1),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.hij(" ",t.used?"Yes":"No"," ")}}function bl(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",37),A.TgZ(1,"div",38),A.TgZ(2,"mat-select",39),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",40),A.NdJ("click",function(){return A.CHM(t),A.oxw().onDownloadCSV()}),A._uU(5,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}function Ll(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-option",40),A.NdJ("click",function(){A.CHM(t);const k=A.oxw().$implicit;return A.oxw().onDisableOffer(k)}),A._uU(1,"Disable Offer"),A.qZA()}}function Gl(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"mat-option",40),A.NdJ("click",function(){A.CHM(t);const k=A.oxw().$implicit;return A.oxw().onPrintOffer(k)}),A._uU(1,"Export QR code"),A.qZA()}}const Hl=function(i){return{"px-3":i}};function Jl(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",41),A.TgZ(1,"div",42),A.TgZ(2,"mat-select",43),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",40),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().onOfferClick(FA)}),A._uU(5,"View Info"),A.qZA(),A.YNc(6,Ll,2,0,"mat-option",44),A.YNc(7,Gl,2,0,"mat-option",44),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=U.$implicit,B=A.oxw();A.Q6J("ngClass",A.VKq(3,Hl,B.screenSize!==B.screenSizeEnum.XS)),A.xp6(6),A.Q6J("ngIf",t.active),A.xp6(1),A.Q6J("ngIf",t.active)}}function Ol(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No offer available."),A.qZA())}function kl(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting offers..."),A.qZA())}function jl(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.errorMessage)}}function Zl(i,U){if(1&i&&(A.TgZ(0,"td",45),A.YNc(1,Ol,2,0,"p",46),A.YNc(2,kl,2,0,"p",46),A.YNc(3,jl,2,1,"p",46),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngIf",(!(null!=t.offers&&t.offers.data)||(null==t.offers||null==t.offers.data?null:t.offers.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.offers&&t.offers.data)||(null==t.offers||null==t.offers.data?null:t.offers.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.offers&&t.offers.data)||(null==t.offers||null==t.offers.data?null:t.offers.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.ERROR)}}const Kl=function(i){return{"display-none":i}};function Wl(i,U){if(1&i&&A._UZ(0,"tr",47),2&i){const t=A.oxw();A.Q6J("ngClass",A.VKq(1,Kl,(null==t.offers?null:t.offers.data)&&(null==t.offers||null==t.offers.data?null:t.offers.data.length)>0))}}function Vl(i,U){1&i&&A._UZ(0,"tr",48)}function Xl(i,U){1&i&&A._UZ(0,"tr",49)}const ql=function(i){return{"overflow-auto error-border":i,"overflow-auto":!0}},_l=function(){return["no_offer"]};function AB(i,U){1&i&&A._UZ(0,"mat-progress-bar",30)}function tB(i,U){1&i&&(A.TgZ(0,"th",31),A._uU(1," Updated At "),A.qZA())}function eB(i,U){if(1&i&&(A.TgZ(0,"td",32),A._uU(1),A.ALo(2,"date"),A.qZA()),2&i){const t=U.$implicit;A.xp6(1),A.Oqu(A.xi3(2,1,t.lastUpdatedAt,"dd/MMM/YYYY HH:mm"))}}function nB(i,U){1&i&&(A.TgZ(0,"th",31),A._uU(1," Title "),A.qZA())}const Zc=function(i){return{"max-width":i}};function rB(i,U){if(1&i&&(A.TgZ(0,"td",32),A.TgZ(1,"div",33),A.TgZ(2,"span",34),A._uU(3),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.xp6(1),A.Q6J("ngStyle",A.VKq(2,Zc,B.screenSize===B.screenSizeEnum.XS?"20rem":"35rem")),A.xp6(2),A.Oqu(t.title)}}function iB(i,U){1&i&&(A.TgZ(0,"th",35),A._uU(1," Amount (Sats) "),A.qZA())}function aB(i,U){if(1&i&&(A.TgZ(0,"td",36),A.TgZ(1,"span",37),A._uU(2),A.ALo(3,"number"),A.qZA(),A.qZA()),2&i){const t=U.$implicit;A.xp6(2),A.Oqu(0===t.amountmSat?"Open":A.lcZ(3,1,t.amountmSat/1e3))}}function oB(i,U){1&i&&(A.TgZ(0,"th",31),A._uU(1," Description "),A.qZA())}function sB(i,U){if(1&i&&(A.TgZ(0,"td",32),A.TgZ(1,"div",33),A.TgZ(2,"span",34),A._uU(3),A.qZA(),A.qZA(),A.qZA()),2&i){const t=U.$implicit,B=A.oxw();A.xp6(1),A.Q6J("ngStyle",A.VKq(2,Zc,B.screenSize===B.screenSizeEnum.XS?"20rem":"35rem")),A.xp6(2),A.Oqu(t.description)}}function cB(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"th",38),A.TgZ(1,"div",39),A.TgZ(2,"mat-select",40),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",41),A.NdJ("click",function(){return A.CHM(t),A.oxw().onDownloadCSV()}),A._uU(5,"Download CSV"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}}const gB=function(i){return{"px-3":i}};function lB(i,U){if(1&i){const t=A.EpF();A.TgZ(0,"td",42),A.TgZ(1,"div",43),A.TgZ(2,"mat-select",44),A._UZ(3,"mat-select-trigger"),A.TgZ(4,"mat-option",41),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().onOfferBookmarkClick(FA)}),A._uU(5,"View Info"),A.qZA(),A.TgZ(6,"mat-option",41),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().onDeleteBookmark(FA)}),A._uU(7,"Delete Bookmark"),A.qZA(),A.TgZ(8,"mat-option",41),A.NdJ("click",function(){const FA=A.CHM(t).$implicit;return A.oxw().onRePayOffer(FA)}),A._uU(9,"Pay Again"),A.qZA(),A.qZA(),A.qZA(),A.qZA()}if(2&i){const t=A.oxw();A.Q6J("ngClass",A.VKq(1,gB,t.screenSize!==t.screenSizeEnum.XS))}}function BB(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"No offer bookmarked."),A.qZA())}function uB(i,U){1&i&&(A.TgZ(0,"p"),A._uU(1,"Getting offer bookmarks..."),A.qZA())}function fB(i,U){if(1&i&&(A.TgZ(0,"p"),A._uU(1),A.qZA()),2&i){const t=A.oxw(2);A.xp6(1),A.Oqu(t.errorMessage)}}function EB(i,U){if(1&i&&(A.TgZ(0,"td",45),A.YNc(1,BB,2,0,"p",46),A.YNc(2,uB,2,0,"p",46),A.YNc(3,fB,2,1,"p",46),A.qZA()),2&i){const t=A.oxw();A.xp6(1),A.Q6J("ngIf",(!(null!=t.offersBookmarks&&t.offersBookmarks.data)||(null==t.offersBookmarks||null==t.offersBookmarks.data?null:t.offersBookmarks.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.COMPLETED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.offersBookmarks&&t.offersBookmarks.data)||(null==t.offersBookmarks||null==t.offersBookmarks.data?null:t.offersBookmarks.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("ngIf",(!(null!=t.offersBookmarks&&t.offersBookmarks.data)||(null==t.offersBookmarks||null==t.offersBookmarks.data?null:t.offersBookmarks.data.length)<1)&&(null==t.apiCallStatus?null:t.apiCallStatus.status)===t.apiCallStatusEnum.ERROR)}}const hB=function(i){return{"display-none":i}};function wB(i,U){if(1&i&&A._UZ(0,"tr",47),2&i){const t=A.oxw();A.Q6J("ngClass",A.VKq(1,hB,(null==t.offersBookmarks?null:t.offersBookmarks.data)&&(null==t.offersBookmarks||null==t.offersBookmarks.data?null:t.offersBookmarks.data.length)>0))}}function CB(i,U){1&i&&A._UZ(0,"tr",48)}function QB(i,U){1&i&&A._UZ(0,"tr",49)}const MB=function(i){return{"overflow-auto error-border":i,"overflow-auto":!0}},dB=function(){return["no_offer"]},DB=Ae.Bz.forChild([{path:"",component:n,children:[{path:"",pathMatch:"full",redirectTo:"home"},{path:"home",component:wo,canActivate:[Ke.lB]},{path:"onchain",component:cs,canActivate:[Ke.lB],children:[{path:"",pathMatch:"full",redirectTo:"receive/utxos"},{path:"receive/:selTab",component:qs,canActivate:[Ke.lB]},{path:"send/:selTab",component:da,data:{sweepAll:!1},canActivate:[Ke.lB]},{path:"sweep/:selTab",component:da,data:{sweepAll:!0},canActivate:[Ke.lB]}]},{path:"connections",component:fa,canActivate:[Ke.lB],children:[{path:"",pathMatch:"full",redirectTo:"channels"},{path:"channels",component:l0,canActivate:[Ke.lB],children:[{path:"",pathMatch:"full",redirectTo:"open"},{path:"open",component:P0,canActivate:[Ke.lB]},{path:"pending",component:ic,canActivate:[Ke.lB]}]},{path:"peers",component:Za,data:{sweepAll:!1},canActivate:[Ke.lB]}]},{path:"transactions",component:ls,canActivate:[Ke.lB],children:[{path:"",pathMatch:"full",redirectTo:"payments"},{path:"payments",component:Sr,canActivate:[Ke.lB]},{path:"invoices",component:nr,canActivate:[Ke.lB]},{path:"offers",component:(()=>{class i{constructor(t,B,k,FA,pt,Ye,vn){this.logger=t,this.store=B,this.commonService=k,this.rtlEffects=FA,this.dataService=pt,this.decimalPipe=Ye,this.datePipe=vn,this.faHistory=E.qO$,this.selNode={},this.newlyAddedOfferMemo="",this.newlyAddedOfferValue=0,this.description="",this.offerValue=null,this.offerValueHint="",this.displayedColumns=[],this.offerPaymentReq="",this.offerJSONArr=[],this.information={},this.flgSticky=!1,this.private=!1,this.expiryStep=100,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x,new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS?(this.flgSticky=!1,this.displayedColumns=["offer_id","single_use","actions"]):this.screenSize===o.cu.SM||this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["offer_id","single_use","used","actions"]):(this.flgSticky=!0,this.displayedColumns=["offer_id","single_use","used","actions"])}ngOnInit(){this.store.select(l.Jo).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(l.W3).pipe((0,r.R)(this.unSubs[1])).subscribe(t=>{this.information=t}),this.store.select(l.Y_).pipe((0,r.R)(this.unSubs[2])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.offerJSONArr=t.offers||[],this.offerJSONArr&&this.offerJSONArr.length>0&&this.sort&&this.paginator&&this.loadOffersTable(this.offerJSONArr),this.logger.info(t)})}ngAfterViewInit(){this.offerJSONArr&&this.offerJSONArr.length>0&&this.sort&&this.paginator&&this.loadOffersTable(this.offerJSONArr)}openCreateOfferModal(){this.store.dispatch((0,eA.qR)({payload:{data:{pageSize:this.pageSize,component:yl}}}))}onOfferClick(t){this.store.dispatch((0,eA.qR)({payload:{data:{offer:{used:t.used,single_use:t.single_use,active:t.active,offer_id:t.offer_id,bolt12:t.bolt12,bolt12_unsigned:t.bolt12_unsigned},newlyAdded:!1,component:kc.V}}}))}onDisableOffer(t){this.store.dispatch((0,eA.c1)({payload:{data:{type:o.n_.CONFIRM,alertTitle:"Disable Offer",titleMessage:"Disabling Offer: "+(t.offer_id||t.bolt12),noBtnText:"Cancel",yesBtnText:"Disable"}}})),this.rtlEffects.closeConfirm.pipe((0,r.R)(this.unSubs[3])).subscribe(B=>{B&&this.store.dispatch((0,WA.i9)({payload:{offer_id:t.offer_id}}))})}onPrintOffer(t){this.dataService.decodePayment(t.bolt12,!1).pipe((0,nn.q)(1)).subscribe(B=>{B.offer_id&&!B.amount_msat?(B.amount_msat="0msat",B.amount=0):B.amount=+(B.amount||B.amount_msat.slice(0,-4));const k={pageSize:"A5",pageOrientation:"portrait",pageMargins:[10,50,10,50],background:{svg:'\n \n \n \n \n \n ',width:249,height:333,absolutePosition:{x:84,y:160}},header:{text:B.vendor||B.issuer||"",alignment:"center",fontSize:25,color:"#272727",margin:[0,20,0,0]},content:[{svg:'',width:249,height:40,alignment:"center"},{text:B.description?B.description.substring(0,165):"",alignment:"center",fontSize:16,color:"#5C5C5C"},{qr:t.bolt12,eccLevel:"M",fit:"259",alignment:"center",absolutePosition:{x:7,y:195}},{text:(null==B?void 0:B.amount_msat)&&0!==(null==B?void 0:B.amount)?this.decimalPipe.transform(B.amount/1e3)+" SATS":"Open amount",fontSize:20,bold:!1,color:"white",alignment:"center",absolutePosition:{x:0,y:430}},{text:"SCAN TO PAY",fontSize:22,bold:!0,color:"white",alignment:"center",absolutePosition:{x:0,y:455}}],footer:{svg:'\n \n \n \n \n ',alignment:"center"}};Il.createPdf(k,null,null,Dl.I.vfs).download("Offer-"+(B&&B.description?B.description:t.bolt12))})}applyFilter(){this.offers.filter=this.selFilter.trim().toLowerCase()}loadOffersTable(t){this.offers=new SA.by(t?[...t]:[]),this.offers.sortingDataAccessor=(B,k)=>B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null,this.offers.sort=this.sort,this.offers.filterPredicate=(B,k)=>(("active"===k||"inactive"===k||"used"===k||"unused"===k||"single"===k||"multiple"===k)&&(k=" "+k),((B.active?" active":" inactive")+(B.used?" used":" unused")+(B.single_use?" single":" multiple")+JSON.stringify(B).toLowerCase()).includes(k)),this.offers.paginator=this.paginator,this.applyFilter()}onDownloadCSV(){this.offers.data&&this.offers.data.length>0&&this.commonService.downloadFile(this.offers.data,"Offers")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh),A.Y36(e.v),A.Y36(at.V),A.Y36(KA.D),A.Y36(ht.JJ),A.Y36(ht.uU))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-offers-table"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Offers")}])],decls:34,vars:15,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap"],["fxLayout","row"],["mat-flat-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","offer_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","single_use"],["matColumnDef","used"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass",4,"matCellDef"],["matColumnDef","no_offer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["class","dot green","matTooltip","Active","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Inactive","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Active","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Inactive","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","4",1,"mr-0"],[3,"click",4,"ngIf"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A.TgZ(1,"div",1),A.TgZ(2,"button",2),A.NdJ("click",function(){return B.openCreateOfferModal()}),A._uU(3,"Create Offer"),A.qZA(),A.qZA(),A.TgZ(4,"div",3),A.TgZ(5,"div",4),A.TgZ(6,"div",5),A._UZ(7,"fa-icon",6),A.TgZ(8,"span",7),A._uU(9,"Offers History"),A.qZA(),A.qZA(),A.TgZ(10,"mat-form-field",8),A.TgZ(11,"input",9),A.NdJ("keyup",function(){return B.applyFilter()})("ngModelChange",function(FA){return B.selFilter=FA}),A.qZA(),A.qZA(),A.qZA(),A.TgZ(12,"div",10),A.YNc(13,xl,1,0,"mat-progress-bar",11),A.TgZ(14,"table",12,13),A.ynx(16,14),A.YNc(17,Fl,2,0,"th",15),A.YNc(18,Ul,6,6,"td",16),A.BQk(),A.ynx(19,17),A.YNc(20,Pl,2,0,"th",15),A.YNc(21,zl,2,1,"td",16),A.BQk(),A.ynx(22,18),A.YNc(23,Rl,2,0,"th",15),A.YNc(24,Nl,2,1,"td",16),A.BQk(),A.ynx(25,19),A.YNc(26,bl,6,0,"th",20),A.YNc(27,Jl,8,5,"td",21),A.BQk(),A.ynx(28,22),A.YNc(29,Zl,4,3,"td",23),A.BQk(),A.YNc(30,Wl,1,3,"tr",24),A.YNc(31,Vl,1,0,"tr",25),A.YNc(32,Xl,1,0,"tr",26),A.qZA(),A.qZA(),A._UZ(33,"mat-paginator",27),A.qZA(),A.qZA()),2&t&&(A.xp6(7),A.Q6J("icon",B.faHistory),A.xp6(4),A.Q6J("ngModel",B.selFilter),A.xp6(2),A.Q6J("ngIf",(null==B.apiCallStatus?null:B.apiCallStatus.status)===B.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",B.offers)("ngClass",A.VKq(12,ql,""!==B.errorMessage)),A.xp6(16),A.Q6J("matFooterRowDef",A.DdM(14,_l)),A.xp6(1),A.Q6J("matHeaderRowDef",B.displayedColumns)("matHeaderRowDefSticky",B.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",B.displayedColumns),A.xp6(1),A.Q6J("pageSize",B.pageSize)("pageSizeOptions",B.pageSizeOptions)("showFirstLastButtons",B.screenSize!==B.screenSizeEnum.XS))},directives:[Qt.xw,Qt.yH,Qt.Wh,F.lW,f.BN,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,gA.$V,ht.O5,SA.BZ,lt.YE,ht.mk,d.oO,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,ft.NW,Y.pW,SA.ge,lt.nU,SA.ev,ht.PC,d.Zl,aA.gM,vt.gD,vt.$L,G.ey,SA.yh,SA.Q2,SA.XQ,SA.Gk],styles:[".mat-column-offer_id[_ngcontent-%COMP%]{flex:0 0 65%;width:65%}.mat-column-offer_id[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),i})(),canActivate:[Ke.lB]},{path:"offrBookmarks",component:(()=>{class i{constructor(t,B,k,FA){this.logger=t,this.store=B,this.commonService=k,this.rtlEffects=FA,this.faHistory=E.qO$,this.displayedColumns=[],this.offersBookmarksJSONArr=[],this.flgSticky=!1,this.pageSize=o.IV,this.pageSizeOptions=o.TJ,this.screenSize="",this.screenSizeEnum=o.cu,this.selFilter="",this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=o.Bn,this.unSubs=[new c.x,new c.x,new c.x,new c.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===o.cu.XS||this.screenSize===o.cu.SM?(this.flgSticky=!1,this.displayedColumns=["lastUpdatedAt","title","amountmSat","actions"]):this.screenSize===o.cu.MD?(this.flgSticky=!1,this.displayedColumns=["lastUpdatedAt","title","amountmSat","description","actions"]):(this.flgSticky=!0,this.displayedColumns=["lastUpdatedAt","title","amountmSat","description","actions"])}ngOnInit(){this.store.select(l.EQ).pipe((0,r.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===o.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.offersBookmarksJSONArr=t.offersBookmarks||[],this.offersBookmarksJSONArr&&this.offersBookmarksJSONArr.length>0&&this.sort&&this.paginator&&this.loadOffersTable(this.offersBookmarksJSONArr),this.logger.info(t)})}ngAfterViewInit(){this.offersBookmarksJSONArr&&this.offersBookmarksJSONArr.length>0&&this.sort&&this.paginator&&this.loadOffersTable(this.offersBookmarksJSONArr)}onOfferBookmarkClick(t){this.store.dispatch((0,eA.qR)({payload:{data:{offer:{bolt12:t.bolt12},newlyAdded:!1,component:kc.V}}}))}onDeleteBookmark(t){this.store.dispatch((0,eA.c1)({payload:{data:{type:o.n_.CONFIRM,alertTitle:"Delete Bookmark",titleMessage:"Deleting Bookmark: "+(t.title||t.description),noBtnText:"Cancel",yesBtnText:"Delete"}}})),this.rtlEffects.closeConfirm.pipe((0,r.R)(this.unSubs[1])).subscribe(B=>{B&&this.store.dispatch((0,WA._9)({payload:{bolt12:t.bolt12}}))})}onRePayOffer(t){this.store.dispatch((0,eA.qR)({payload:{data:{paymentType:o.IX.OFFER,bolt12:t.bolt12,offerTitle:t.title,component:Te}}}))}applyFilter(){this.offersBookmarks.filter=this.selFilter.trim().toLowerCase()}loadOffersTable(t){this.offersBookmarks=new SA.by(t?[...t]:[]),this.offersBookmarks.sortingDataAccessor=(B,k)=>B[k]&&isNaN(B[k])?B[k].toLocaleLowerCase():B[k]?+B[k]:null,this.offersBookmarks.sort=this.sort,this.offersBookmarks.filterPredicate=(B,k)=>JSON.stringify(B).toLowerCase().includes(k),this.offersBookmarks.paginator=this.paginator,this.applyFilter()}onDownloadCSV(){this.offersBookmarks.data&&this.offersBookmarks.data.length>0&&this.commonService.downloadFile(this.offersBookmarks.data,"OfferBookmarks")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return i.\u0275fac=function(t){return new(t||i)(A.Y36(h.mQ),A.Y36(u.yh),A.Y36(e.v),A.Y36(at.V))},i.\u0275cmp=A.Xpm({type:i,selectors:[["rtl-cl-offer-bookmarks-table"]],viewQuery:function(t,B){if(1&t&&(A.Gf(lt.YE,5),A.Gf(ft.NW,5)),2&t){let k;A.iGM(k=A.CRH())&&(B.sort=k.first),A.iGM(k=A.CRH())&&(B.paginator=k.first)}},features:[A._Bn([{provide:ft.ye,useValue:(0,o.pt)("Offer Bookmarks")}])],decls:35,vars:15,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap"],["fxLayout","row"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","lastUpdatedAt"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","title"],["matColumnDef","amountmSat"],["mat-header-cell","","mat-sort-header","","arrowPosition","before","class","pr-2",4,"matHeaderCellDef"],["mat-cell","","class","pr-2",4,"matCellDef"],["matColumnDef","description"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass",4,"matCellDef"],["matColumnDef","no_offer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",1,"pr-2"],["mat-cell","",1,"pr-2"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","4",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,B){1&t&&(A.TgZ(0,"div",0),A._UZ(1,"div",1),A.TgZ(2,"div",2),A.TgZ(3,"div",3),A.TgZ(4,"div",4),A._UZ(5,"fa-icon",5),A.TgZ(6,"span",6),A._uU(7,"Offer Bookmarks"),A.qZA(),A.qZA(),A.TgZ(8,"mat-form-field",7),A.TgZ(9,"input",8),A.NdJ("keyup",function(){return B.applyFilter()})("ngModelChange",function(FA){return B.selFilter=FA}),A.qZA(),A.qZA(),A.qZA(),A.TgZ(10,"div",9),A.YNc(11,AB,1,0,"mat-progress-bar",10),A.TgZ(12,"table",11,12),A.ynx(14,13),A.YNc(15,tB,2,0,"th",14),A.YNc(16,eB,3,4,"td",15),A.BQk(),A.ynx(17,16),A.YNc(18,nB,2,0,"th",14),A.YNc(19,rB,4,4,"td",15),A.BQk(),A.ynx(20,17),A.YNc(21,iB,2,0,"th",18),A.YNc(22,aB,4,3,"td",19),A.BQk(),A.ynx(23,20),A.YNc(24,oB,2,0,"th",14),A.YNc(25,sB,4,4,"td",15),A.BQk(),A.ynx(26,21),A.YNc(27,cB,6,0,"th",22),A.YNc(28,lB,10,3,"td",23),A.BQk(),A.ynx(29,24),A.YNc(30,EB,4,3,"td",25),A.BQk(),A.YNc(31,wB,1,3,"tr",26),A.YNc(32,CB,1,0,"tr",27),A.YNc(33,QB,1,0,"tr",28),A.qZA(),A.qZA(),A._UZ(34,"mat-paginator",29),A.qZA(),A.qZA()),2&t&&(A.xp6(5),A.Q6J("icon",B.faHistory),A.xp6(4),A.Q6J("ngModel",B.selFilter),A.xp6(2),A.Q6J("ngIf",(null==B.apiCallStatus?null:B.apiCallStatus.status)===B.apiCallStatusEnum.INITIATED),A.xp6(1),A.Q6J("dataSource",B.offersBookmarks)("ngClass",A.VKq(12,MB,""!==B.errorMessage)),A.xp6(19),A.Q6J("matFooterRowDef",A.DdM(14,dB)),A.xp6(1),A.Q6J("matHeaderRowDef",B.displayedColumns)("matHeaderRowDefSticky",B.flgSticky),A.xp6(1),A.Q6J("matRowDefColumns",B.displayedColumns),A.xp6(1),A.Q6J("pageSize",B.pageSize)("pageSizeOptions",B.pageSizeOptions)("showFirstLastButtons",B.screenSize!==B.screenSizeEnum.XS))},directives:[Qt.xw,Qt.yH,Qt.Wh,f.BN,V.KE,ot.Nt,zA.Fj,zA.JJ,zA.On,gA.$V,ht.O5,SA.BZ,lt.YE,ht.mk,d.oO,SA.w1,SA.fO,SA.Dz,SA.mD,SA.Ke,SA.as,SA.nj,ft.NW,Y.pW,SA.ge,lt.nU,SA.ev,ht.PC,d.Zl,vt.gD,vt.$L,G.ey,SA.yh,SA.Q2,SA.XQ,SA.Gk],pipes:[ht.uU,ht.JJ],styles:[".mat-column-title[_ngcontent-%COMP%], .mat-column-description[_ngcontent-%COMP%]{flex:0 0 30%;width:30%}.mat-column-title[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%], .mat-column-description[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),i})(),canActivate:[Ke.lB]}]},{path:"messages",component:Ws,canActivate:[Ke.lB],children:[{path:"",pathMatch:"full",redirectTo:"sign"},{path:"sign",component:Ge,canActivate:[Ke.lB]},{path:"verify",component:_e,canActivate:[Ke.lB]}]},{path:"routing",component:Bs,canActivate:[Ke.lB],children:[{path:"",pathMatch:"full",redirectTo:"forwardinghistory"},{path:"forwardinghistory",component:br,canActivate:[Ke.lB]},{path:"failedtransactions",component:og,canActivate:[Ke.lB]},{path:"routingpeers",component:Al,canActivate:[Ke.lB]}]},{path:"reports",component:el,canActivate:[Ke.lB],children:[{path:"",pathMatch:"full",redirectTo:"routingfees"},{path:"routingfees",component:gl,canActivate:[Ke.lB]},{path:"transactions",component:Ql,canActivate:[Ke.lB]}]},{path:"graph",component:pl,canActivate:[Ke.lB],children:[{path:"",pathMatch:"full",redirectTo:"lookups"},{path:"lookups",component:wi,canActivate:[Ke.lB]},{path:"queryroutes",component:he,canActivate:[Ke.lB]}]},{path:"rates",component:Zs,canActivate:[Ke.lB]},{path:"**",component:Ml.w},{path:"network",redirectTo:"rates"},{path:"wallet",redirectTo:"home"},{path:"backup",redirectTo:"home"}]}]);var vB=St(8750);let mB=(()=>{class i{}return i.\u0275fac=function(t){return new(t||i)},i.\u0275mod=A.oAB({type:i,bootstrap:[n]}),i.\u0275inj=A.cJS({providers:[Ke.lB],imports:[[ht.ez,vB.m,DB]]}),i})()},4641:function(ci,Fr,St){var ht=St(7757);"undefined"!=typeof self&&self,ci.exports=function(){var Ae={9282:function(Y,I,n){"use strict";var c=n(4155);function r($){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(EA){return typeof EA}:function(EA){return EA&&"function"==typeof Symbol&&EA.constructor===Symbol&&EA!==Symbol.prototype?"symbol":typeof EA})($)}var D,v,E=n(2136).codes,o=E.ERR_AMBIGUOUS_ARGUMENT,l=E.ERR_INVALID_ARG_TYPE,h=E.ERR_INVALID_ARG_VALUE,u=E.ERR_INVALID_RETURN_VALUE,C=E.ERR_MISSING_ARGS,e=n(5961),g=n(9539).inspect,w=n(9539).types,Q=w.isPromise,d=w.isRegExp,F=Object.assign?Object.assign:n(8091).assign,m=Object.is?Object.is:n(609);function R(){var $=n(9158);D=$.isDeepEqual,v=$.isDeepStrictEqual}var AA=!1,gA=Y.exports=vA,MA={};function cA($){throw $.message instanceof Error?$.message:new e($)}function BA($,W,EA,DA){if(!EA){var rA=!1;if(0===W)rA=!0,DA="No value argument passed to `assert.ok()`";else if(DA instanceof Error)throw DA;var hA=new e({actual:EA,expected:!0,message:DA,operator:"==",stackStartFn:$});throw hA.generatedMessage=rA,hA}}function vA(){for(var $=arguments.length,W=new Array($),EA=0;EA<$;EA++)W[EA]=arguments[EA];BA.apply(void 0,[vA,W.length].concat(W))}gA.fail=function lA($,W,EA,DA,rA){var HA,hA=arguments.length;if(0===hA?HA="Failed":1===hA?(EA=$,$=void 0):(!1===AA&&(AA=!0,(c.emitWarning?c.emitWarning:console.warn.bind(console))("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")),2===hA&&(DA="!=")),EA instanceof Error)throw EA;var st={actual:$,expected:W,operator:void 0===DA?"fail":DA,stackStartFn:rA||lA};void 0!==EA&&(st.message=EA);var yA=new e(st);throw HA&&(yA.message=HA,yA.generatedMessage=!0),yA},gA.AssertionError=e,gA.ok=vA,gA.equal=function $(W,EA,DA){if(arguments.length<2)throw new C("actual","expected");W!=EA&&cA({actual:W,expected:EA,message:DA,operator:"==",stackStartFn:$})},gA.notEqual=function $(W,EA,DA){if(arguments.length<2)throw new C("actual","expected");W==EA&&cA({actual:W,expected:EA,message:DA,operator:"!=",stackStartFn:$})},gA.deepEqual=function $(W,EA,DA){if(arguments.length<2)throw new C("actual","expected");void 0===D&&R(),D(W,EA)||cA({actual:W,expected:EA,message:DA,operator:"deepEqual",stackStartFn:$})},gA.notDeepEqual=function $(W,EA,DA){if(arguments.length<2)throw new C("actual","expected");void 0===D&&R(),D(W,EA)&&cA({actual:W,expected:EA,message:DA,operator:"notDeepEqual",stackStartFn:$})},gA.deepStrictEqual=function $(W,EA,DA){if(arguments.length<2)throw new C("actual","expected");void 0===D&&R(),v(W,EA)||cA({actual:W,expected:EA,message:DA,operator:"deepStrictEqual",stackStartFn:$})},gA.notDeepStrictEqual=function xA($,W,EA){if(arguments.length<2)throw new C("actual","expected");void 0===D&&R(),v($,W)&&cA({actual:$,expected:W,message:EA,operator:"notDeepStrictEqual",stackStartFn:xA})},gA.strictEqual=function $(W,EA,DA){if(arguments.length<2)throw new C("actual","expected");m(W,EA)||cA({actual:W,expected:EA,message:DA,operator:"strictEqual",stackStartFn:$})},gA.notStrictEqual=function $(W,EA,DA){if(arguments.length<2)throw new C("actual","expected");m(W,EA)&&cA({actual:W,expected:EA,message:DA,operator:"notStrictEqual",stackStartFn:$})};var _=function $(W,EA,DA){var rA=this;(function($,W){if(!($ instanceof W))throw new TypeError("Cannot call a class as a function")})(this,$),EA.forEach(function(hA){hA in W&&(rA[hA]=void 0!==DA&&"string"==typeof DA[hA]&&d(W[hA])&&W[hA].test(DA[hA])?DA[hA]:W[hA])})};function QA($,W,EA,DA,rA,hA){if(!(EA in $)||!v($[EA],W[EA])){if(!DA){var HA=new _($,rA),nt=new _(W,rA,$),st=new e({actual:HA,expected:nt,operator:"deepStrictEqual",stackStartFn:hA});throw st.actual=$,st.expected=W,st.operator=hA.name,st}cA({actual:$,expected:W,message:DA,operator:hA.name,stackStartFn:hA})}}function uA($,W,EA,DA){if("function"!=typeof W){if(d(W))return W.test($);if(2===arguments.length)throw new l("expected",["Function","RegExp"],W);if("object"!==r($)||null===$){var rA=new e({actual:$,expected:W,message:EA,operator:"deepStrictEqual",stackStartFn:DA});throw rA.operator=DA.name,rA}var hA=Object.keys(W);if(W instanceof Error)hA.push("name","message");else if(0===hA.length)throw new h("error",W,"may not be an empty object");return void 0===D&&R(),hA.forEach(function(HA){"string"==typeof $[HA]&&d(W[HA])&&W[HA].test($[HA])||QA($,W,HA,EA,hA,DA)}),!0}return void 0!==W.prototype&&$ instanceof W||!Error.isPrototypeOf(W)&&!0===W.call({},$)}function CA($){if("function"!=typeof $)throw new l("fn","Function",$);try{$()}catch(W){return W}return MA}function TA($){return Q($)||null!==$&&"object"===r($)&&"function"==typeof $.then&&"function"==typeof $.catch}function GA($){return Promise.resolve().then(function(){var W;if("function"==typeof $){if(!TA(W=$()))throw new u("instance of Promise","promiseFn",W)}else{if(!TA($))throw new l("promiseFn",["Function","Promise"],$);W=$}return Promise.resolve().then(function(){return W}).then(function(){return MA}).catch(function(EA){return EA})})}function VA($,W,EA,DA){if("string"==typeof EA){if(4===arguments.length)throw new l("error",["Object","Error","Function","RegExp"],EA);if("object"===r(W)&&null!==W){if(W.message===EA)throw new o("error/message",'The error message "'.concat(W.message,'" is identical to the message.'))}else if(W===EA)throw new o("error/message",'The error "'.concat(W,'" is identical to the message.'));DA=EA,EA=void 0}else if(null!=EA&&"object"!==r(EA)&&"function"!=typeof EA)throw new l("error",["Object","Error","Function","RegExp"],EA);if(W===MA){var rA="";EA&&EA.name&&(rA+=" (".concat(EA.name,")")),rA+=DA?": ".concat(DA):".",cA({actual:void 0,expected:EA,operator:$.name,message:"Missing expected ".concat("rejects"===$.name?"rejection":"exception").concat(rA),stackStartFn:$})}if(EA&&!uA(W,EA,DA,$))throw W}function q($,W,EA,DA){if(W!==MA){if("string"==typeof EA&&(DA=EA,EA=void 0),!EA||uA(W,EA)){var rA=DA?": ".concat(DA):".";cA({actual:W,expected:EA,operator:$.name,message:"Got unwanted ".concat("doesNotReject"===$.name?"rejection":"exception").concat(rA,"\n")+'Actual message: "'.concat(W&&W.message,'"'),stackStartFn:$})}throw W}}function J(){for(var $=arguments.length,W=new Array($),EA=0;EA<$;EA++)W[EA]=arguments[EA];BA.apply(void 0,[J,W.length].concat(W))}gA.throws=function $(W){for(var EA=arguments.length,DA=new Array(EA>1?EA-1:0),rA=1;rA1?EA-1:0),rA=1;rA1?EA-1:0),rA=1;rA1?EA-1:0),rA=1;rAlA.length)&&(vA=lA.length),lA.substring(vA-BA.length,vA)===BA}var T="",x="",R="",N="",V={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function AA(lA){var BA=Object.keys(lA),vA=Object.create(Object.getPrototypeOf(lA));return BA.forEach(function(xA){vA[xA]=lA[xA]}),Object.defineProperty(vA,"message",{value:lA.message}),vA}function gA(lA){return m(lA,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function MA(lA,BA,vA){var xA="",_="",QA=0,uA="",CA=!1,TA=gA(lA),GA=TA.split("\n"),VA=gA(BA).split("\n"),q=0,J="";if("strictEqual"===vA&&"object"===d(lA)&&"object"===d(BA)&&null!==lA&&null!==BA&&(vA="strictEqualObject"),1===GA.length&&1===VA.length&&GA[0]!==VA[0]){var $=GA[0].length+VA[0].length;if($<=10){if(!("object"===d(lA)&&null!==lA||"object"===d(BA)&&null!==BA||0===lA&&0===BA))return"".concat(V[vA],"\n\n")+"".concat(GA[0]," !== ").concat(VA[0],"\n")}else if("strictEqualObject"!==vA&&$<(c.stderr&&c.stderr.isTTY?c.stderr.columns:80)){for(;GA[0][q]===VA[0][q];)q++;q>2&&(J="\n ".concat(function(lA,BA){if(BA=Math.floor(BA),0==lA.length||0==BA)return"";var vA=lA.length*BA;for(BA=Math.floor(Math.log(BA)/Math.log(2));BA;)lA+=lA,BA--;return lA+lA.substring(0,vA-lA.length)}(" ",q),"^"),q=0)}}for(var EA=GA[GA.length-1],DA=VA[VA.length-1];EA===DA&&(q++<2?uA="\n ".concat(EA).concat(uA):xA=EA,GA.pop(),VA.pop(),0!==GA.length&&0!==VA.length);)EA=GA[GA.length-1],DA=VA[VA.length-1];var rA=Math.max(GA.length,VA.length);if(0===rA){var hA=TA.split("\n");if(hA.length>30)for(hA[26]="".concat(T,"...").concat(N);hA.length>27;)hA.pop();return"".concat(V.notIdentical,"\n\n").concat(hA.join("\n"),"\n")}q>3&&(uA="\n".concat(T,"...").concat(N).concat(uA),CA=!0),""!==xA&&(uA="\n ".concat(xA).concat(uA),xA="");var HA=0,nt=V[vA]+"\n".concat(x,"+ actual").concat(N," ").concat(R,"- expected").concat(N),st=" ".concat(T,"...").concat(N," Lines skipped");for(q=0;q1&&q>2&&(yA>4?(_+="\n".concat(T,"...").concat(N),CA=!0):yA>3&&(_+="\n ".concat(VA[q-2]),HA++),_+="\n ".concat(VA[q-1]),HA++),QA=q,xA+="\n".concat(R,"-").concat(N," ").concat(VA[q]),HA++;else if(VA.length1&&q>2&&(yA>4?(_+="\n".concat(T,"...").concat(N),CA=!0):yA>3&&(_+="\n ".concat(GA[q-2]),HA++),_+="\n ".concat(GA[q-1]),HA++),QA=q,_+="\n".concat(x,"+").concat(N," ").concat(GA[q]),HA++;else{var _A=VA[q],ft=GA[q],lt=ft!==_A&&(!v(ft,",")||ft.slice(0,-1)!==_A);lt&&v(_A,",")&&_A.slice(0,-1)===ft&&(lt=!1,ft+=","),lt?(yA>1&&q>2&&(yA>4?(_+="\n".concat(T,"...").concat(N),CA=!0):yA>3&&(_+="\n ".concat(GA[q-2]),HA++),_+="\n ".concat(GA[q-1]),HA++),QA=q,_+="\n".concat(x,"+").concat(N," ").concat(ft),xA+="\n".concat(R,"-").concat(N," ").concat(_A),HA+=2):(_+=xA,xA="",(1===yA||0===q)&&(_+="\n ".concat(ft),HA++))}if(HA>20&&q30)for(q[26]="".concat(T,"...").concat(N);q.length>27;)q.pop();xA=l(this,1===q.length?Q(BA).call(this,"".concat(VA," ").concat(q[0])):Q(BA).call(this,"".concat(VA,"\n\n").concat(q.join("\n"),"\n")))}else{var J=gA(CA),$="",W=V[QA];"notDeepEqual"===QA||"notEqual"===QA?(J="".concat(V[QA],"\n\n").concat(J)).length>1024&&(J="".concat(J.slice(0,1021),"...")):($="".concat(gA(TA)),J.length>512&&(J="".concat(J.slice(0,509),"...")),$.length>512&&($="".concat($.slice(0,509),"...")),"deepEqual"===QA||"equal"===QA?J="".concat(W,"\n\n").concat(J,"\n\nshould equal\n\n"):$=" ".concat(QA," ").concat($)),xA=l(this,Q(BA).call(this,"".concat(J).concat($)))}return Error.stackTraceLimit=GA,xA.generatedMessage=!_,Object.defineProperty(h(xA),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),xA.code="ERR_ASSERTION",xA.actual=CA,xA.expected=TA,xA.operator=QA,Error.captureStackTrace&&Error.captureStackTrace(h(xA),uA),xA.name="AssertionError",l(xA)}return function(lA,BA){if("function"!=typeof BA&&null!==BA)throw new TypeError("Super expression must either be null or a function");lA.prototype=Object.create(BA&&BA.prototype,{constructor:{value:lA,writable:!0,configurable:!0}}),BA&&w(lA,BA)}(BA,lA),function(lA,BA,vA){BA&&E(lA.prototype,BA),vA&&E(lA,vA)}(BA,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:m.custom,value:function(xA,_){return m(this,function(lA){for(var BA=1;BA2?"one of ".concat(F," ").concat(d.slice(0,m-1).join(", "),", or ")+d[m-1]:2===m?"one of ".concat(F," ").concat(d[0]," or ").concat(d[1]):"of ".concat(F," ").concat(d[0])}return"of ".concat(F," ").concat(String(d))}e("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),e("ERR_INVALID_ARG_TYPE",function(d,F,m){var p,D;if(void 0===u&&(u=n(9282)),u("string"==typeof d,"'name' must be a string"),"string"==typeof F&&function(d,F,m){return d.substr(!m||m<0?0:+m,F.length)===F}(F,"not ")?(p="must not be",F=F.replace(/^not /,"")):p="must be",function(d,F,m){return(void 0===m||m>d.length)&&(m=d.length),d.substring(m-F.length,m)===F}(d," argument"))D="The ".concat(d," ").concat(p," ").concat(f(F,"type"));else{var v=function(d,F,m){return"number"!=typeof m&&(m=0),!(m+F.length>d.length)&&-1!==d.indexOf(F,m)}(d,".")?"property":"argument";D='The "'.concat(d,'" ').concat(v," ").concat(p," ").concat(f(F,"type"))}return D+". Received type ".concat(c(m))},TypeError),e("ERR_INVALID_ARG_VALUE",function(d,F){var m=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===C&&(C=n(9539));var p=C.inspect(F);return p.length>128&&(p="".concat(p.slice(0,128),"...")),"The argument '".concat(d,"' ").concat(m,". Received ").concat(p)},TypeError,RangeError),e("ERR_INVALID_RETURN_VALUE",function(d,F,m){var p;return p=m&&m.constructor&&m.constructor.name?"instance of ".concat(m.constructor.name):"type ".concat(c(m)),"Expected ".concat(d,' to be returned from the "').concat(F,'"')+" function but got ".concat(p,".")},TypeError),e("ERR_MISSING_ARGS",function(){for(var d=arguments.length,F=new Array(d),m=0;m0,"At least one arg needs to be specified");var p="The ",D=F.length;switch(F=F.map(function(v){return'"'.concat(v,'"')}),D){case 1:p+="".concat(F[0]," argument");break;case 2:p+="".concat(F[0]," and ").concat(F[1]," arguments");break;default:p+=F.slice(0,D-1).join(", "),p+=", and ".concat(F[D-1]," arguments")}return"".concat(p," must be specified")},TypeError),Y.exports.codes=h},9158:function(Y,I,n){"use strict";function c(OA,WA){return function(OA){if(Array.isArray(OA))return OA}(OA)||function(OA,WA){var zA=[],ot=!0,It=!1,dt=void 0;try{for(var Pt,vt=OA[Symbol.iterator]();!(ot=(Pt=vt.next()).done)&&(zA.push(Pt.value),!WA||zA.length!==WA);ot=!0);}catch(G){It=!0,dt=G}finally{try{!ot&&null!=vt.return&&vt.return()}finally{if(It)throw dt}}return zA}(OA,WA)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function E(OA){return(E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(zA){return typeof zA}:function(zA){return zA&&"function"==typeof Symbol&&zA.constructor===Symbol&&zA!==Symbol.prototype?"symbol":typeof zA})(OA)}var o=void 0!==/a/g.flags,l=function(WA){var zA=[];return WA.forEach(function(ot){return zA.push(ot)}),zA},h=function(WA){var zA=[];return WA.forEach(function(ot,It){return zA.push([It,ot])}),zA},u=Object.is?Object.is:n(609),C=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},e=Number.isNaN?Number.isNaN:n(360);function f(OA){return OA.call.bind(OA)}var g=f(Object.prototype.hasOwnProperty),w=f(Object.prototype.propertyIsEnumerable),Q=f(Object.prototype.toString),d=n(9539).types,F=d.isAnyArrayBuffer,m=d.isArrayBufferView,p=d.isDate,D=d.isMap,v=d.isRegExp,P=d.isSet,T=d.isNativeError,x=d.isBoxedPrimitive,R=d.isNumberObject,N=d.isStringObject,V=d.isBooleanObject,aA=d.isBigIntObject,AA=d.isSymbolObject,gA=d.isFloat32Array,MA=d.isFloat64Array;function cA(OA){if(0===OA.length||OA.length>10)return!0;for(var WA=0;WA57)return!0}return 10===OA.length&&OA>=Math.pow(2,32)}function lA(OA){return Object.keys(OA).filter(cA).concat(C(OA).filter(Object.prototype.propertyIsEnumerable.bind(OA)))}function BA(OA,WA){if(OA===WA)return 0;for(var zA=OA.length,ot=WA.length,It=0,dt=Math.min(zA,ot);It=h.length?{done:!0}:{done:!1,value:h[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(h,u){(null==u||u>h.length)&&(u=h.length);for(var C=0,e=new Array(u);Cthis.buffer.length)return this.flush()},f.flush=function(){if(this.bufferOffset>0)return this.push(c.from(this.buffer.slice(0,this.bufferOffset))),this.bufferOffset=0},f.writeBuffer=function(w){return this.flush(),this.push(w),this.pos+=w.length},f.writeString=function(w,Q){switch(void 0===Q&&(Q="ascii"),Q){case"utf16le":case"ucs2":case"utf8":case"ascii":return this.writeBuffer(c.from(w,Q));case"utf16be":for(var d=c.from(w,"utf16le"),F=0,m=d.length-1;F>>16&255,this.buffer[this.bufferOffset++]=w>>>8&255,this.buffer[this.bufferOffset++]=255&w,this.pos+=3},f.writeUInt24LE=function(w){return this.ensure(3),this.buffer[this.bufferOffset++]=255&w,this.buffer[this.bufferOffset++]=w>>>8&255,this.buffer[this.bufferOffset++]=w>>>16&255,this.pos+=3},f.writeInt24BE=function(w){return this.writeUInt24BE(w>=0?w:w+16777215+1)},f.writeInt24LE=function(w){return this.writeUInt24LE(w>=0?w:w+16777215+1)},f.fill=function(w,Q){if(Q=this.length)){if(null==this.items[w]){var Q=this.stream.pos;this.stream.pos=this.base+this.type.size(null,this.ctx)*w,this.items[w]=this.type.decode(this.stream,this.ctx),this.stream.pos=Q}return this.items[w]}},f.toArray=function(){for(var w=[],Q=0,d=this.length;Q>1),(f=o.call(this,"Int"+u,C)||this)._point=1<u)throw new RangeError('The value "'+G+'" is invalid for option "size"');var O=new Uint8Array(G);return Object.setPrototypeOf(O,f.prototype),O}function f(G,O,L){if("number"==typeof G){if("string"==typeof O)throw new TypeError('The "string" argument must be of type string. Received type number');return d(G)}return g(G,O,L)}function g(G,O,L){if("string"==typeof G)return function(G,O){if(("string"!=typeof O||""===O)&&(O="utf8"),!f.isEncoding(O))throw new TypeError("Unknown encoding: "+O);var L=0|x(G,O),dA=e(L),wA=dA.write(G,O);return wA!==L&&(dA=dA.slice(0,wA)),dA}(G,O);if(ArrayBuffer.isView(G))return function(G){if(ot(G,Uint8Array)){var O=new Uint8Array(G);return D(O.buffer,O.byteOffset,O.byteLength)}return m(G)}(G);if(null==G)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof G);if(ot(G,ArrayBuffer)||G&&ot(G.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(ot(G,SharedArrayBuffer)||G&&ot(G.buffer,SharedArrayBuffer)))return D(G,O,L);if("number"==typeof G)throw new TypeError('The "value" argument must not be of type number. Received type number');var dA=G.valueOf&&G.valueOf();if(null!=dA&&dA!==G)return f.from(dA,O,L);var wA=function(G){if(f.isBuffer(G)){var O=0|P(G.length),L=e(O);return 0===L.length||G.copy(L,0,0,O),L}return void 0!==G.length?"number"!=typeof G.length||It(G.length)?e(0):m(G):"Buffer"===G.type&&Array.isArray(G.data)?m(G.data):void 0}(G);if(wA)return wA;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof G[Symbol.toPrimitive])return f.from(G[Symbol.toPrimitive]("string"),O,L);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof G)}function w(G){if("number"!=typeof G)throw new TypeError('"size" argument must be of type number');if(G<0)throw new RangeError('The value "'+G+'" is invalid for option "size"')}function d(G){return w(G),e(G<0?0:0|P(G))}function m(G){for(var O=G.length<0?0:0|P(G.length),L=e(O),dA=0;dA=u)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+u.toString(16)+" bytes");return 0|G}function x(G,O){if(f.isBuffer(G))return G.length;if(ArrayBuffer.isView(G)||ot(G,ArrayBuffer))return G.byteLength;if("string"!=typeof G)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof G);var L=G.length,dA=arguments.length>2&&!0===arguments[2];if(!dA&&0===L)return 0;for(var wA=!1;;)switch(O){case"ascii":case"latin1":case"binary":return L;case"utf8":case"utf-8":return lt(G).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*L;case"hex":return L>>>1;case"base64":return WA(G).length;default:if(wA)return dA?-1:lt(G).length;O=(""+O).toLowerCase(),wA=!0}}function R(G,O,L){var dA=!1;if((void 0===O||O<0)&&(O=0),O>this.length||((void 0===L||L>this.length)&&(L=this.length),L<=0)||(L>>>=0)<=(O>>>=0))return"";for(G||(G="utf8");;)switch(G){case"hex":return CA(this,O,L);case"utf8":case"utf-8":return vA(this,O,L);case"ascii":return QA(this,O,L);case"latin1":case"binary":return uA(this,O,L);case"base64":return BA(this,O,L);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return TA(this,O,L);default:if(dA)throw new TypeError("Unknown encoding: "+G);G=(G+"").toLowerCase(),dA=!0}}function N(G,O,L){var dA=G[O];G[O]=G[L],G[L]=dA}function V(G,O,L,dA,wA){if(0===G.length)return-1;if("string"==typeof L?(dA=L,L=0):L>2147483647?L=2147483647:L<-2147483648&&(L=-2147483648),It(L=+L)&&(L=wA?0:G.length-1),L<0&&(L=G.length+L),L>=G.length){if(wA)return-1;L=G.length-1}else if(L<0){if(!wA)return-1;L=0}if("string"==typeof O&&(O=f.from(O,dA)),f.isBuffer(O))return 0===O.length?-1:aA(G,O,L,dA,wA);if("number"==typeof O)return O&=255,"function"==typeof Uint8Array.prototype.indexOf?wA?Uint8Array.prototype.indexOf.call(G,O,L):Uint8Array.prototype.lastIndexOf.call(G,O,L):aA(G,[O],L,dA,wA);throw new TypeError("val must be string, number or Buffer")}function aA(G,O,L,dA,wA){var j,RA=1,eA=G.length,at=O.length;if(void 0!==dA&&("ucs2"===(dA=String(dA).toLowerCase())||"ucs-2"===dA||"utf16le"===dA||"utf-16le"===dA)){if(G.length<2||O.length<2)return-1;RA=2,eA/=2,at/=2,L/=2}function Ft(jA,ct){return 1===RA?jA[ct]:jA.readUInt16BE(ct*RA)}if(wA){var XA=-1;for(j=L;jeA&&(L=eA-at),j=L;j>=0;j--){for(var et=!0,mA=0;mAwA&&(dA=wA):dA=wA;var eA,RA=O.length;for(dA>RA/2&&(dA=RA/2),eA=0;eA>8,RA.push(L%256),RA.push(dA);return RA}(O,G.length-L),G,L,dA)}function BA(G,O,L){return o.fromByteArray(0===O&&L===G.length?G:G.slice(O,L))}function vA(G,O,L){L=Math.min(G.length,L);for(var dA=[],wA=O;wA239?4:RA>223?3:RA>191?2:1;if(wA+at<=L){var Ft=void 0,j=void 0,XA=void 0,et=void 0;switch(at){case 1:RA<128&&(eA=RA);break;case 2:128==(192&(Ft=G[wA+1]))&&(et=(31&RA)<<6|63&Ft)>127&&(eA=et);break;case 3:j=G[wA+2],128==(192&(Ft=G[wA+1]))&&128==(192&j)&&(et=(15&RA)<<12|(63&Ft)<<6|63&j)>2047&&(et<55296||et>57343)&&(eA=et);break;case 4:j=G[wA+2],XA=G[wA+3],128==(192&(Ft=G[wA+1]))&&128==(192&j)&&128==(192&XA)&&(et=(15&RA)<<18|(63&Ft)<<12|(63&j)<<6|63&XA)>65535&&et<1114112&&(eA=et)}}null===eA?(eA=65533,at=1):eA>65535&&(dA.push((eA-=65536)>>>10&1023|55296),eA=56320|1023&eA),dA.push(eA),wA+=at}return function(G){var O=G.length;if(O<=4096)return String.fromCharCode.apply(String,G);for(var L="",dA=0;dAwA.length?(f.isBuffer(eA)||(eA=f.from(eA)),eA.copy(wA,RA)):Uint8Array.prototype.set.call(wA,eA,RA);else{if(!f.isBuffer(eA))throw new TypeError('"list" argument must be an Array of Buffers');eA.copy(wA,RA)}RA+=eA.length}return wA},f.byteLength=x,f.prototype._isBuffer=!0,f.prototype.swap16=function(){var O=this.length;if(O%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var L=0;LL&&(O+=" ... "),""},h&&(f.prototype[h]=f.prototype.inspect),f.prototype.compare=function(O,L,dA,wA,RA){if(ot(O,Uint8Array)&&(O=f.from(O,O.offset,O.byteLength)),!f.isBuffer(O))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof O);if(void 0===L&&(L=0),void 0===dA&&(dA=O?O.length:0),void 0===wA&&(wA=0),void 0===RA&&(RA=this.length),L<0||dA>O.length||wA<0||RA>this.length)throw new RangeError("out of range index");if(wA>=RA&&L>=dA)return 0;if(wA>=RA)return-1;if(L>=dA)return 1;if(this===O)return 0;for(var eA=(RA>>>=0)-(wA>>>=0),at=(dA>>>=0)-(L>>>=0),Ft=Math.min(eA,at),j=this.slice(wA,RA),XA=O.slice(L,dA),et=0;et>>=0,isFinite(dA)?(dA>>>=0,void 0===wA&&(wA="utf8")):(wA=dA,dA=void 0)}var RA=this.length-L;if((void 0===dA||dA>RA)&&(dA=RA),O.length>0&&(dA<0||L<0)||L>this.length)throw new RangeError("Attempt to write outside buffer bounds");wA||(wA="utf8");for(var eA=!1;;)switch(wA){case"hex":return AA(this,O,L,dA);case"utf8":case"utf-8":return gA(this,O,L,dA);case"ascii":case"latin1":case"binary":return MA(this,O,L,dA);case"base64":return cA(this,O,L,dA);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return lA(this,O,L,dA);default:if(eA)throw new TypeError("Unknown encoding: "+wA);wA=(""+wA).toLowerCase(),eA=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function QA(G,O,L){var dA="";L=Math.min(G.length,L);for(var wA=O;wAdA)&&(L=dA);for(var wA="",RA=O;RAL)throw new RangeError("Trying to access beyond buffer length")}function VA(G,O,L,dA,wA,RA){if(!f.isBuffer(G))throw new TypeError('"buffer" argument must be a Buffer instance');if(O>wA||OG.length)throw new RangeError("Index out of range")}function q(G,O,L,dA,wA){nt(O,dA,wA,G,L,7);var RA=Number(O&BigInt(4294967295));G[L++]=RA,G[L++]=RA>>=8,G[L++]=RA>>=8,G[L++]=RA>>=8;var eA=Number(O>>BigInt(32)&BigInt(4294967295));return G[L++]=eA,G[L++]=eA>>=8,G[L++]=eA>>=8,G[L++]=eA>>=8,L}function J(G,O,L,dA,wA){nt(O,dA,wA,G,L,7);var RA=Number(O&BigInt(4294967295));G[L+7]=RA,G[L+6]=RA>>=8,G[L+5]=RA>>=8,G[L+4]=RA>>=8;var eA=Number(O>>BigInt(32)&BigInt(4294967295));return G[L+3]=eA,G[L+2]=eA>>=8,G[L+1]=eA>>=8,G[L]=eA>>=8,L+8}function $(G,O,L,dA,wA,RA){if(L+dA>G.length)throw new RangeError("Index out of range");if(L<0)throw new RangeError("Index out of range")}function W(G,O,L,dA,wA){return O=+O,L>>>=0,wA||$(G,0,L,4),l.write(G,O,L,dA,23,4),L+4}function EA(G,O,L,dA,wA){return O=+O,L>>>=0,wA||$(G,0,L,8),l.write(G,O,L,dA,52,8),L+8}f.prototype.slice=function(O,L){var dA=this.length;(O=~~O)<0?(O+=dA)<0&&(O=0):O>dA&&(O=dA),(L=void 0===L?dA:~~L)<0?(L+=dA)<0&&(L=0):L>dA&&(L=dA),L>>=0,L>>>=0,dA||GA(O,L,this.length);for(var wA=this[O],RA=1,eA=0;++eA>>=0,L>>>=0,dA||GA(O,L,this.length);for(var wA=this[O+--L],RA=1;L>0&&(RA*=256);)wA+=this[O+--L]*RA;return wA},f.prototype.readUint8=f.prototype.readUInt8=function(O,L){return O>>>=0,L||GA(O,1,this.length),this[O]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(O,L){return O>>>=0,L||GA(O,2,this.length),this[O]|this[O+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(O,L){return O>>>=0,L||GA(O,2,this.length),this[O]<<8|this[O+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(O,L){return O>>>=0,L||GA(O,4,this.length),(this[O]|this[O+1]<<8|this[O+2]<<16)+16777216*this[O+3]},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(O,L){return O>>>=0,L||GA(O,4,this.length),16777216*this[O]+(this[O+1]<<16|this[O+2]<<8|this[O+3])},f.prototype.readBigUInt64LE=vt(function(O){st(O>>>=0,"offset");var L=this[O],dA=this[O+7];(void 0===L||void 0===dA)&&yA(O,this.length-8);var wA=L+this[++O]*Math.pow(2,8)+this[++O]*Math.pow(2,16)+this[++O]*Math.pow(2,24),RA=this[++O]+this[++O]*Math.pow(2,8)+this[++O]*Math.pow(2,16)+dA*Math.pow(2,24);return BigInt(wA)+(BigInt(RA)<>>=0,"offset");var L=this[O],dA=this[O+7];(void 0===L||void 0===dA)&&yA(O,this.length-8);var wA=L*Math.pow(2,24)+this[++O]*Math.pow(2,16)+this[++O]*Math.pow(2,8)+this[++O],RA=this[++O]*Math.pow(2,24)+this[++O]*Math.pow(2,16)+this[++O]*Math.pow(2,8)+dA;return(BigInt(wA)<>>=0,L>>>=0,dA||GA(O,L,this.length);for(var wA=this[O],RA=1,eA=0;++eA=(RA*=128)&&(wA-=Math.pow(2,8*L)),wA},f.prototype.readIntBE=function(O,L,dA){O>>>=0,L>>>=0,dA||GA(O,L,this.length);for(var wA=L,RA=1,eA=this[O+--wA];wA>0&&(RA*=256);)eA+=this[O+--wA]*RA;return eA>=(RA*=128)&&(eA-=Math.pow(2,8*L)),eA},f.prototype.readInt8=function(O,L){return O>>>=0,L||GA(O,1,this.length),128&this[O]?-1*(255-this[O]+1):this[O]},f.prototype.readInt16LE=function(O,L){O>>>=0,L||GA(O,2,this.length);var dA=this[O]|this[O+1]<<8;return 32768&dA?4294901760|dA:dA},f.prototype.readInt16BE=function(O,L){O>>>=0,L||GA(O,2,this.length);var dA=this[O+1]|this[O]<<8;return 32768&dA?4294901760|dA:dA},f.prototype.readInt32LE=function(O,L){return O>>>=0,L||GA(O,4,this.length),this[O]|this[O+1]<<8|this[O+2]<<16|this[O+3]<<24},f.prototype.readInt32BE=function(O,L){return O>>>=0,L||GA(O,4,this.length),this[O]<<24|this[O+1]<<16|this[O+2]<<8|this[O+3]},f.prototype.readBigInt64LE=vt(function(O){st(O>>>=0,"offset");var L=this[O],dA=this[O+7];(void 0===L||void 0===dA)&&yA(O,this.length-8);var wA=this[O+4]+this[O+5]*Math.pow(2,8)+this[O+6]*Math.pow(2,16)+(dA<<24);return(BigInt(wA)<>>=0,"offset");var L=this[O],dA=this[O+7];(void 0===L||void 0===dA)&&yA(O,this.length-8);var wA=(L<<24)+this[++O]*Math.pow(2,16)+this[++O]*Math.pow(2,8)+this[++O];return(BigInt(wA)<>>=0,L||GA(O,4,this.length),l.read(this,O,!0,23,4)},f.prototype.readFloatBE=function(O,L){return O>>>=0,L||GA(O,4,this.length),l.read(this,O,!1,23,4)},f.prototype.readDoubleLE=function(O,L){return O>>>=0,L||GA(O,8,this.length),l.read(this,O,!0,52,8)},f.prototype.readDoubleBE=function(O,L){return O>>>=0,L||GA(O,8,this.length),l.read(this,O,!1,52,8)},f.prototype.writeUintLE=f.prototype.writeUIntLE=function(O,L,dA,wA){O=+O,L>>>=0,dA>>>=0,wA||VA(this,O,L,dA,Math.pow(2,8*dA)-1,0);var eA=1,at=0;for(this[L]=255&O;++at>>=0,dA>>>=0,wA||VA(this,O,L,dA,Math.pow(2,8*dA)-1,0);var eA=dA-1,at=1;for(this[L+eA]=255&O;--eA>=0&&(at*=256);)this[L+eA]=O/at&255;return L+dA},f.prototype.writeUint8=f.prototype.writeUInt8=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,1,255,0),this[L]=255&O,L+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,2,65535,0),this[L]=255&O,this[L+1]=O>>>8,L+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,2,65535,0),this[L]=O>>>8,this[L+1]=255&O,L+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,4,4294967295,0),this[L+3]=O>>>24,this[L+2]=O>>>16,this[L+1]=O>>>8,this[L]=255&O,L+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,4,4294967295,0),this[L]=O>>>24,this[L+1]=O>>>16,this[L+2]=O>>>8,this[L+3]=255&O,L+4},f.prototype.writeBigUInt64LE=vt(function(O,L){return void 0===L&&(L=0),q(this,O,L,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeBigUInt64BE=vt(function(O,L){return void 0===L&&(L=0),J(this,O,L,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeIntLE=function(O,L,dA,wA){if(O=+O,L>>>=0,!wA){var RA=Math.pow(2,8*dA-1);VA(this,O,L,dA,RA-1,-RA)}var eA=0,at=1,Ft=0;for(this[L]=255&O;++eA>0)-Ft&255;return L+dA},f.prototype.writeIntBE=function(O,L,dA,wA){if(O=+O,L>>>=0,!wA){var RA=Math.pow(2,8*dA-1);VA(this,O,L,dA,RA-1,-RA)}var eA=dA-1,at=1,Ft=0;for(this[L+eA]=255&O;--eA>=0&&(at*=256);)O<0&&0===Ft&&0!==this[L+eA+1]&&(Ft=1),this[L+eA]=(O/at>>0)-Ft&255;return L+dA},f.prototype.writeInt8=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,1,127,-128),O<0&&(O=255+O+1),this[L]=255&O,L+1},f.prototype.writeInt16LE=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,2,32767,-32768),this[L]=255&O,this[L+1]=O>>>8,L+2},f.prototype.writeInt16BE=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,2,32767,-32768),this[L]=O>>>8,this[L+1]=255&O,L+2},f.prototype.writeInt32LE=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,4,2147483647,-2147483648),this[L]=255&O,this[L+1]=O>>>8,this[L+2]=O>>>16,this[L+3]=O>>>24,L+4},f.prototype.writeInt32BE=function(O,L,dA){return O=+O,L>>>=0,dA||VA(this,O,L,4,2147483647,-2147483648),O<0&&(O=4294967295+O+1),this[L]=O>>>24,this[L+1]=O>>>16,this[L+2]=O>>>8,this[L+3]=255&O,L+4},f.prototype.writeBigInt64LE=vt(function(O,L){return void 0===L&&(L=0),q(this,O,L,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeBigInt64BE=vt(function(O,L){return void 0===L&&(L=0),J(this,O,L,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeFloatLE=function(O,L,dA){return W(this,O,L,!0,dA)},f.prototype.writeFloatBE=function(O,L,dA){return W(this,O,L,!1,dA)},f.prototype.writeDoubleLE=function(O,L,dA){return EA(this,O,L,!0,dA)},f.prototype.writeDoubleBE=function(O,L,dA){return EA(this,O,L,!1,dA)},f.prototype.copy=function(O,L,dA,wA){if(!f.isBuffer(O))throw new TypeError("argument should be a Buffer");if(dA||(dA=0),!wA&&0!==wA&&(wA=this.length),L>=O.length&&(L=O.length),L||(L=0),wA>0&&wA=this.length)throw new RangeError("Index out of range");if(wA<0)throw new RangeError("sourceEnd out of bounds");wA>this.length&&(wA=this.length),O.length-L>>=0,dA=void 0===dA?this.length:dA>>>0,O||(O=0),"number"==typeof O)for(eA=L;eA=dA+4;L-=3)O="_"+G.slice(L-3,L)+O;return""+G.slice(0,L)+O}function nt(G,O,L,dA,wA,RA){if(G>L||G3?0===O||O===BigInt(0)?">= 0"+eA+" and < 2"+eA+" ** "+8*(RA+1)+eA:">= -(2"+eA+" ** "+(8*(RA+1)-1)+eA+") and < 2 ** "+(8*(RA+1)-1)+eA:">= "+O+eA+" and <= "+L+eA,new DA.ERR_OUT_OF_RANGE("value",at,G)}!function(G,O,L){st(O,"offset"),(void 0===G[O]||void 0===G[O+L])&&yA(O,G.length-(L+1))}(dA,wA,RA)}function st(G,O){if("number"!=typeof G)throw new DA.ERR_INVALID_ARG_TYPE(O,"number",G)}function yA(G,O,L){throw Math.floor(G)!==G?(st(G,L),new DA.ERR_OUT_OF_RANGE(L||"offset","an integer",G)):O<0?new DA.ERR_BUFFER_OUT_OF_BOUNDS:new DA.ERR_OUT_OF_RANGE(L||"offset",">= "+(L?1:0)+" and <= "+O,G)}rA("ERR_BUFFER_OUT_OF_BOUNDS",function(G){return G?G+" is outside of buffer bounds":"Attempt to access memory outside buffer bounds"},RangeError),rA("ERR_INVALID_ARG_TYPE",function(G,O){return'The "'+G+'" argument must be of type number. Received type '+typeof O},TypeError),rA("ERR_OUT_OF_RANGE",function(G,O,L){var dA='The value of "'+G+'" is out of range.',wA=L;return Number.isInteger(L)&&Math.abs(L)>Math.pow(2,32)?wA=hA(String(L)):"bigint"==typeof L&&(wA=String(L),(L>Math.pow(BigInt(2),BigInt(32))||L<-Math.pow(BigInt(2),BigInt(32)))&&(wA=hA(wA)),wA+="n"),dA+" It must be "+O+". Received "+wA},RangeError);var _A=/[^+/0-9A-Za-z-_]/g;function lt(G,O){O=O||1/0;for(var L,dA=G.length,wA=null,RA=[],eA=0;eA55295&&L<57344){if(!wA){if(L>56319){(O-=3)>-1&&RA.push(239,191,189);continue}if(eA+1===dA){(O-=3)>-1&&RA.push(239,191,189);continue}wA=L;continue}if(L<56320){(O-=3)>-1&&RA.push(239,191,189),wA=L;continue}L=65536+(wA-55296<<10|L-56320)}else wA&&(O-=3)>-1&&RA.push(239,191,189);if(wA=null,L<128){if((O-=1)<0)break;RA.push(L)}else if(L<2048){if((O-=2)<0)break;RA.push(L>>6|192,63&L|128)}else if(L<65536){if((O-=3)<0)break;RA.push(L>>12|224,L>>6&63|128,63&L|128)}else{if(!(L<1114112))throw new Error("Invalid code point");if((O-=4)<0)break;RA.push(L>>18|240,L>>12&63|128,L>>6&63|128,63&L|128)}}return RA}function WA(G){return o.toByteArray(function(G){if((G=(G=G.split("=")[0]).trim().replace(_A,"")).length<2)return"";for(;G.length%4!=0;)G+="=";return G}(G))}function zA(G,O,L,dA){var wA;for(wA=0;wA=O.length||wA>=G.length);++wA)O[wA+L]=G[wA];return wA}function ot(G,O){return G instanceof O||null!=G&&null!=G.constructor&&null!=G.constructor.name&&G.constructor.name===O.name}function It(G){return G!=G}var dt=function(){for(var G="0123456789abcdef",O=new Array(256),L=0;L<16;++L)for(var dA=16*L,wA=0;wA<16;++wA)O[dA+wA]=G[L]+G[wA];return O}();function vt(G){return"undefined"==typeof BigInt?Pt:G}function Pt(){throw new Error("BigInt not supported")}},477:function(Y,I,n){"use strict";n(7803),n(1539),Y.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},2094:function(Y,I,n){"use strict";var gA,MA,cA,c=n(477),r=n(9781),a=n(7854),s=n(614),E=n(111),o=n(2597),l=n(648),h=n(6330),u=n(8880),C=n(1320),e=n(3070).f,f=n(7976),g=n(9518),w=n(7674),Q=n(5112),d=n(9711),F=a.Int8Array,m=F&&F.prototype,p=a.Uint8ClampedArray,D=p&&p.prototype,v=F&&g(F),P=m&&g(m),T=Object.prototype,x=a.TypeError,R=Q("toStringTag"),N=d("TYPED_ARRAY_TAG"),V=d("TYPED_ARRAY_CONSTRUCTOR"),aA=c&&!!w&&"Opera"!==l(a.opera),AA=!1,lA={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},BA={BigInt64Array:8,BigUint64Array:8},xA=function(GA){if(!E(GA))return!1;var VA=l(GA);return o(lA,VA)||o(BA,VA)};for(gA in lA)(cA=(MA=a[gA])&&MA.prototype)?u(cA,V,MA):aA=!1;for(gA in BA)(cA=(MA=a[gA])&&MA.prototype)&&u(cA,V,MA);if((!aA||!s(v)||v===Function.prototype)&&(v=function(){throw x("Incorrect invocation")},aA))for(gA in lA)a[gA]&&w(a[gA],v);if((!aA||!P||P===T)&&(P=v.prototype,aA))for(gA in lA)a[gA]&&w(a[gA].prototype,P);if(aA&&g(D)!==P&&w(D,P),r&&!o(P,R))for(gA in AA=!0,e(P,R,{get:function(){return E(this)?this[N]:void 0}}),lA)a[gA]&&u(a[gA],N,gA);Y.exports={NATIVE_ARRAY_BUFFER_VIEWS:aA,TYPED_ARRAY_CONSTRUCTOR:V,TYPED_ARRAY_TAG:AA&&N,aTypedArray:function(GA){if(xA(GA))return GA;throw x("Target is not a typed array")},aTypedArrayConstructor:function(GA){if(s(GA)&&(!w||f(v,GA)))return GA;throw x(h(GA)+" is not a typed array constructor")},exportTypedArrayMethod:function(GA,VA,q){if(r){if(q)for(var J in lA){var $=a[J];if($&&o($.prototype,GA))try{delete $.prototype[GA]}catch(W){}}(!P[GA]||q)&&C(P,GA,q?VA:aA&&m[GA]||VA)}},exportTypedArrayStaticMethod:function(GA,VA,q){var J,$;if(r){if(w){if(q)for(J in lA)if(($=a[J])&&o($,GA))try{delete $[GA]}catch(W){}if(v[GA]&&!q)return;try{return C(v,GA,q?VA:aA&&v[GA]||VA)}catch(W){}}for(J in lA)($=a[J])&&(!$[GA]||q)&&C($,GA,VA)}},isView:function(GA){if(!E(GA))return!1;var VA=l(GA);return"DataView"===VA||o(lA,VA)||o(BA,VA)},isTypedArray:xA,TypedArray:v,TypedArrayPrototype:P}},2091:function(Y,I,n){"use strict";n(8309);var c=n(7854),r=n(1702),a=n(9781),s=n(477),E=n(6530),o=n(8880),l=n(2248),h=n(7293),u=n(5787),C=n(9303),e=n(7466),f=n(7067),g=n(1179),w=n(9518),Q=n(7674),d=n(8006).f,F=n(3070).f,m=n(1285),p=n(206),D=n(8003),v=n(9909),P=E.PROPER,T=E.CONFIGURABLE,x=v.get,R=v.set,N="ArrayBuffer",V="DataView",aA="prototype",gA="Wrong index",MA=c[N],cA=MA,lA=cA&&cA[aA],BA=c[V],vA=BA&&BA[aA],xA=Object.prototype,_=c.Array,QA=c.RangeError,uA=r(m),CA=r([].reverse),TA=g.pack,GA=g.unpack,VA=function(SA){return[255&SA]},q=function(SA){return[255&SA,SA>>8&255]},J=function(SA){return[255&SA,SA>>8&255,SA>>16&255,SA>>24&255]},$=function(SA){return SA[3]<<24|SA[2]<<16|SA[1]<<8|SA[0]},W=function(SA){return TA(SA,23,4)},EA=function(SA){return TA(SA,52,8)},DA=function(SA,OA){F(SA[aA],OA,{get:function(){return x(this)[OA]}})},rA=function(SA,OA,WA,zA){var ot=f(WA),It=x(SA);if(ot+OA>It.byteLength)throw QA(gA);var dt=x(It.buffer).bytes,vt=ot+It.byteOffset,Pt=p(dt,vt,vt+OA);return zA?Pt:CA(Pt)},hA=function(SA,OA,WA,zA,ot,It){var dt=f(WA),vt=x(SA);if(dt+OA>vt.byteLength)throw QA(gA);for(var Pt=x(vt.buffer).bytes,G=dt+vt.byteOffset,O=zA(+ot),L=0;Lst;)(yA=nt[st++])in cA||o(cA,yA,MA[yA]);lA.constructor=cA}Q&&w(vA)!==xA&&Q(vA,xA);var _A=new BA(new cA(2)),ft=r(vA.setInt8);_A.setInt8(0,2147483648),_A.setInt8(1,2147483649),(_A.getInt8(0)||!_A.getInt8(1))&&l(vA,{setInt8:function(SA,OA){ft(this,SA,OA<<24>>24)},setUint8:function(SA,OA){ft(this,SA,OA<<24>>24)}},{unsafe:!0})}else lA=(cA=function(SA){u(this,lA);var OA=f(SA);R(this,{bytes:uA(_(OA),0),byteLength:OA}),a||(this.byteLength=OA)})[aA],vA=(BA=function(SA,OA,WA){u(this,vA),u(SA,lA);var zA=x(SA).byteLength,ot=C(OA);if(ot<0||ot>zA)throw QA("Wrong offset");if(ot+(WA=void 0===WA?zA-ot:e(WA))>zA)throw QA("Wrong length");R(this,{buffer:SA,byteLength:WA,byteOffset:ot}),a||(this.buffer=SA,this.byteLength=WA,this.byteOffset=ot)})[aA],a&&(DA(cA,"byteLength"),DA(BA,"buffer"),DA(BA,"byteLength"),DA(BA,"byteOffset")),l(vA,{getInt8:function(SA){return rA(this,1,SA)[0]<<24>>24},getUint8:function(SA){return rA(this,1,SA)[0]},getInt16:function(SA){var OA=rA(this,2,SA,arguments.length>1?arguments[1]:void 0);return(OA[1]<<8|OA[0])<<16>>16},getUint16:function(SA){var OA=rA(this,2,SA,arguments.length>1?arguments[1]:void 0);return OA[1]<<8|OA[0]},getInt32:function(SA){return $(rA(this,4,SA,arguments.length>1?arguments[1]:void 0))},getUint32:function(SA){return $(rA(this,4,SA,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(SA){return GA(rA(this,4,SA,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(SA){return GA(rA(this,8,SA,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(SA,OA){hA(this,1,SA,VA,OA)},setUint8:function(SA,OA){hA(this,1,SA,VA,OA)},setInt16:function(SA,OA){hA(this,2,SA,q,OA,arguments.length>2?arguments[2]:void 0)},setUint16:function(SA,OA){hA(this,2,SA,q,OA,arguments.length>2?arguments[2]:void 0)},setInt32:function(SA,OA){hA(this,4,SA,J,OA,arguments.length>2?arguments[2]:void 0)},setUint32:function(SA,OA){hA(this,4,SA,J,OA,arguments.length>2?arguments[2]:void 0)},setFloat32:function(SA,OA){hA(this,4,SA,W,OA,arguments.length>2?arguments[2]:void 0)},setFloat64:function(SA,OA){hA(this,8,SA,EA,OA,arguments.length>2?arguments[2]:void 0)}});D(cA,N),D(BA,V),Y.exports={ArrayBuffer:cA,DataView:BA}},7803:function(Y,I,n){"use strict";var c=n(2109),r=n(7854),a=n(2091),s=n(6340),E="ArrayBuffer",o=a[E];c({global:!0,forced:r[E]!==o},{ArrayBuffer:o}),s(E)},194:function(Y,I,n){"use strict";Y.exports=function(c){return function(){var r=c,s=r.lib.BlockCipher,E=r.algo,o=[],l=[],h=[],u=[],C=[],e=[],f=[],g=[],w=[],Q=[];!function(){for(var m=[],p=0;p<256;p++)m[p]=p<128?p<<1:p<<1^283;var D=0,v=0;for(p=0;p<256;p++){var P=v^v<<1^v<<2^v<<3^v<<4;o[D]=P=P>>>8^255&P^99,l[P]=D;var N,T=m[D],x=m[T],R=m[x];h[D]=(N=257*m[P]^16843008*P)<<24|N>>>8,u[D]=N<<16|N>>>16,C[D]=N<<8|N>>>24,e[D]=N,f[P]=(N=16843009*R^65537*x^257*T^16843008*D)<<24|N>>>8,g[P]=N<<16|N>>>16,w[P]=N<<8|N>>>24,Q[P]=N,D?(D=T^m[m[m[R^T]]],v^=m[m[v]]):D=v=1}}();var d=[0,1,2,4,8,16,32,64,128,27,54],F=E.AES=s.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var D=this._keyPriorReset=this._key,v=D.words,P=D.sigBytes/4,x=4*((this._nRounds=P+6)+1),R=this._keySchedule=[],N=0;N6&&N%P==4&&(p=o[p>>>24]<<24|o[p>>>16&255]<<16|o[p>>>8&255]<<8|o[255&p]):(p=o[(p=p<<8|p>>>24)>>>24]<<24|o[p>>>16&255]<<16|o[p>>>8&255]<<8|o[255&p],p^=d[N/P|0]<<24),R[N]=R[N-P]^p);for(var V=this._invKeySchedule=[],aA=0;aA>>24]]^g[o[p>>>16&255]]^w[o[p>>>8&255]]^Q[o[255&p]]}}},encryptBlock:function(p,D){this._doCryptBlock(p,D,this._keySchedule,h,u,C,e,o)},decryptBlock:function(p,D){var v=p[D+1];p[D+1]=p[D+3],p[D+3]=v,this._doCryptBlock(p,D,this._invKeySchedule,f,g,w,Q,l),v=p[D+1],p[D+1]=p[D+3],p[D+3]=v},_doCryptBlock:function(p,D,v,P,T,x,R,N){for(var V=this._nRounds,aA=p[D]^v[0],AA=p[D+1]^v[1],gA=p[D+2]^v[2],MA=p[D+3]^v[3],cA=4,lA=1;lA>>24]^T[AA>>>16&255]^x[gA>>>8&255]^R[255&MA]^v[cA++],vA=P[AA>>>24]^T[gA>>>16&255]^x[MA>>>8&255]^R[255&aA]^v[cA++],xA=P[gA>>>24]^T[MA>>>16&255]^x[aA>>>8&255]^R[255&AA]^v[cA++],_=P[MA>>>24]^T[aA>>>16&255]^x[AA>>>8&255]^R[255&gA]^v[cA++];aA=BA,AA=vA,gA=xA,MA=_}BA=(N[aA>>>24]<<24|N[AA>>>16&255]<<16|N[gA>>>8&255]<<8|N[255&MA])^v[cA++],vA=(N[AA>>>24]<<24|N[gA>>>16&255]<<16|N[MA>>>8&255]<<8|N[255&aA])^v[cA++],xA=(N[gA>>>24]<<24|N[MA>>>16&255]<<16|N[aA>>>8&255]<<8|N[255&AA])^v[cA++],_=(N[MA>>>24]<<24|N[aA>>>16&255]<<16|N[AA>>>8&255]<<8|N[255&gA])^v[cA++],p[D]=BA,p[D+1]=vA,p[D+2]=xA,p[D+3]=_},keySize:8});r.AES=s._createHelper(F)}(),c.AES}(n(757),n(7508),n(3440),n(3839),n(1582))},1582:function(Y,I,n){"use strict";n(7042),n(2222),n(1539),n(9714),n(561),Y.exports=function(c){var a,s,E,o,l,C,f,g,Q,d,F,p,v,T,x,N,V;c.lib.Cipher||(o=(s=(a=c).lib).WordArray,C=a.enc.Base64,f=a.algo.EvpKDF,g=s.Cipher=(l=s.BufferedBlockAlgorithm).extend({cfg:(E=s.Base).extend(),createEncryptor:function(AA,gA){return this.create(this._ENC_XFORM_MODE,AA,gA)},createDecryptor:function(AA,gA){return this.create(this._DEC_XFORM_MODE,AA,gA)},init:function(AA,gA,MA){this.cfg=this.cfg.extend(MA),this._xformMode=AA,this._key=gA,this.reset()},reset:function(){l.reset.call(this),this._doReset()},process:function(AA){return this._append(AA),this._process()},finalize:function(AA){return AA&&this._append(AA),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function aA(AA){return"string"==typeof AA?V:x}return function(AA){return{encrypt:function(MA,cA,lA){return aA(cA).encrypt(AA,MA,cA,lA)},decrypt:function(MA,cA,lA){return aA(cA).decrypt(AA,MA,cA,lA)}}}}()}),s.StreamCipher=g.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),Q=a.mode={},d=s.BlockCipherMode=E.extend({createEncryptor:function(AA,gA){return this.Encryptor.create(AA,gA)},createDecryptor:function(AA,gA){return this.Decryptor.create(AA,gA)},init:function(AA,gA){this._cipher=AA,this._iv=gA}}),F=Q.CBC=function(){var aA=d.extend();function AA(gA,MA,cA){var lA,BA=this._iv;BA?(lA=BA,this._iv=undefined):lA=this._prevBlock;for(var vA=0;vA>>2]}},s.BlockCipher=g.extend({cfg:g.cfg.extend({mode:F,padding:p}),reset:function(){var AA;g.reset.call(this);var gA=this.cfg,MA=gA.iv,cA=gA.mode;this._xformMode==this._ENC_XFORM_MODE?AA=cA.createEncryptor:(AA=cA.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==AA?this._mode.init(this,MA&&MA.words):(this._mode=AA.call(cA,this,MA&&MA.words),this._mode.__creator=AA)},_doProcessBlock:function(AA,gA){this._mode.processBlock(AA,gA)},_doFinalize:function(){var AA,gA=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(gA.pad(this._data,this.blockSize),AA=this._process(!0)):(AA=this._process(!0),gA.unpad(AA)),AA},blockSize:4}),v=s.CipherParams=E.extend({init:function(AA){this.mixIn(AA)},toString:function(AA){return(AA||this.formatter).stringify(this)}}),T=(a.format={}).OpenSSL={stringify:function(AA){var MA=AA.ciphertext,cA=AA.salt;return(cA?o.create([1398893684,1701076831]).concat(cA).concat(MA):MA).toString(C)},parse:function(AA){var gA,MA=C.parse(AA),cA=MA.words;return 1398893684==cA[0]&&1701076831==cA[1]&&(gA=o.create(cA.slice(2,4)),cA.splice(0,4),MA.sigBytes-=16),v.create({ciphertext:MA,salt:gA})}},x=s.SerializableCipher=E.extend({cfg:E.extend({format:T}),encrypt:function(AA,gA,MA,cA){cA=this.cfg.extend(cA);var lA=AA.createEncryptor(MA,cA),BA=lA.finalize(gA),vA=lA.cfg;return v.create({ciphertext:BA,key:MA,iv:vA.iv,algorithm:AA,mode:vA.mode,padding:vA.padding,blockSize:AA.blockSize,formatter:cA.format})},decrypt:function(AA,gA,MA,cA){return cA=this.cfg.extend(cA),gA=this._parse(gA,cA.format),AA.createDecryptor(MA,cA).finalize(gA.ciphertext)},_parse:function(AA,gA){return"string"==typeof AA?gA.parse(AA,this):AA}}),N=(a.kdf={}).OpenSSL={execute:function(AA,gA,MA,cA){cA||(cA=o.random(8));var lA=f.create({keySize:gA+MA}).compute(AA,cA),BA=o.create(lA.words.slice(gA),4*MA);return lA.sigBytes=4*gA,v.create({key:lA,iv:BA,salt:cA})}},V=s.PasswordBasedCipher=x.extend({cfg:x.cfg.extend({kdf:N}),encrypt:function(AA,gA,MA,cA){var lA=(cA=this.cfg.extend(cA)).kdf.execute(MA,AA.keySize,AA.ivSize);cA.iv=lA.iv;var BA=x.encrypt.call(this,AA,gA,lA.key,cA);return BA.mixIn(lA),BA},decrypt:function(AA,gA,MA,cA){cA=this.cfg.extend(cA),gA=this._parse(gA,cA.format);var lA=cA.kdf.execute(MA,AA.keySize,AA.ivSize,gA.salt);return cA.iv=lA.iv,x.decrypt.call(this,AA,gA,lA.key,cA)}}))}(n(757),n(3839))},757:function(Y,I,n){"use strict";var r;n(5743),n(6992),n(1539),n(9135),n(2990),n(8927),n(3105),n(5035),n(4345),n(7174),n(2846),n(4731),n(7209),n(6319),n(8867),n(7789),n(3739),n(9368),n(4483),n(2056),n(3462),n(678),n(7462),n(3824),n(5021),n(2974),n(5016),n(9714),n(7042),n(9600),n(2222),n(561),r=function(){var c=c||function(r,a){var s;if("undefined"!=typeof window&&window.crypto&&(s=window.crypto),"undefined"!=typeof self&&self.crypto&&(s=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(s=globalThis.crypto),!s&&"undefined"!=typeof window&&window.msCrypto&&(s=window.msCrypto),!s&&void 0!==n.g&&n.g.crypto&&(s=n.g.crypto),!s)try{s=n(2480)}catch(m){}var E=function(){if(s){if("function"==typeof s.getRandomValues)try{return s.getRandomValues(new Uint32Array(1))[0]}catch(p){}if("function"==typeof s.randomBytes)try{return s.randomBytes(4).readInt32LE()}catch(p){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function m(){}return function(p){var D;return m.prototype=p,D=new m,m.prototype=null,D}}(),l={},h=l.lib={},u=h.Base={extend:function(p){var D=o(this);return p&&D.mixIn(p),(!D.hasOwnProperty("init")||this.init===D.init)&&(D.init=function(){D.$super.init.apply(this,arguments)}),D.init.prototype=D,D.$super=this,D},create:function(){var p=this.extend();return p.init.apply(p,arguments),p},init:function(){},mixIn:function(p){for(var D in p)p.hasOwnProperty(D)&&(this[D]=p[D]);p.hasOwnProperty("toString")&&(this.toString=p.toString)},clone:function(){return this.init.prototype.extend(this)}},C=h.WordArray=u.extend({init:function(p,D){p=this.words=p||[],this.sigBytes=null!=D?D:4*p.length},toString:function(p){return(p||f).stringify(this)},concat:function(p){var D=this.words,v=p.words,P=this.sigBytes,T=p.sigBytes;if(this.clamp(),P%4)for(var x=0;x>>2]|=(v[x>>>2]>>>24-x%4*8&255)<<24-(P+x)%4*8;else for(var N=0;N>>2]=v[N>>>2];return this.sigBytes+=T,this},clamp:function(){var p=this.words,D=this.sigBytes;p[D>>>2]&=4294967295<<32-D%4*8,p.length=r.ceil(D/4)},clone:function(){var p=u.clone.call(this);return p.words=this.words.slice(0),p},random:function(p){for(var D=[],v=0;v>>2]>>>24-T%4*8&255;P.push((x>>>4).toString(16)),P.push((15&x).toString(16))}return P.join("")},parse:function(p){for(var D=p.length,v=[],P=0;P>>3]|=parseInt(p.substr(P,2),16)<<24-P%8*4;return new C.init(v,D/2)}},g=e.Latin1={stringify:function(p){for(var D=p.words,v=p.sigBytes,P=[],T=0;T>>2]>>>24-T%4*8&255));return P.join("")},parse:function(p){for(var D=p.length,v=[],P=0;P>>2]|=(255&p.charCodeAt(P))<<24-P%4*8;return new C.init(v,D)}},w=e.Utf8={stringify:function(p){try{return decodeURIComponent(escape(g.stringify(p)))}catch(D){throw new Error("Malformed UTF-8 data")}},parse:function(p){return g.parse(unescape(encodeURIComponent(p)))}},Q=h.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new C.init,this._nDataBytes=0},_append:function(p){"string"==typeof p&&(p=w.parse(p)),this._data.concat(p),this._nDataBytes+=p.sigBytes},_process:function(p){var D,v=this._data,P=v.words,T=v.sigBytes,x=this.blockSize,N=T/(4*x),V=(N=p?r.ceil(N):r.max((0|N)-this._minBufferSize,0))*x,aA=r.min(4*V,T);if(V){for(var AA=0;AA>>2]>>>24-w%4*8&255)<<16|(C[w+1>>>2]>>>24-(w+1)%4*8&255)<<8|C[w+2>>>2]>>>24-(w+2)%4*8&255,p=0;p<4&&w+.75*p>>6*(3-p)&63));var D=f.charAt(64);if(D)for(;g.length%4;)g.push(D);return g.join("")},parse:function(u){var C=u.length,e=this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var g=0;g>>6-g%4*2;e[f>>>2]|=(w|Q)<<24-f%4*8,f++}return s.create(e,f)}(u,C,f)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},c.enc.Base64;var s}(n(757))},7590:function(Y,I,n){"use strict";n(9600),Y.exports=function(c){return s=c.lib.WordArray,c.enc.Base64url={stringify:function(u,C){void 0===C&&(C=!0);var e=u.words,f=u.sigBytes,g=C?this._safe_map:this._map;u.clamp();for(var w=[],Q=0;Q>>2]>>>24-Q%4*8&255)<<16|(e[Q+1>>>2]>>>24-(Q+1)%4*8&255)<<8|e[Q+2>>>2]>>>24-(Q+2)%4*8&255,D=0;D<4&&Q+.75*D>>6*(3-D)&63));var v=g.charAt(64);if(v)for(;w.length%4;)w.push(v);return w.join("")},parse:function(u,C){void 0===C&&(C=!0);var e=u.length,f=C?this._safe_map:this._map,g=this._reverseMap;if(!g){g=this._reverseMap=[];for(var w=0;w>>6-g%4*2;e[f>>>2]|=(w|Q)<<24-f%4*8,f++}return s.create(e,f)}(u,e,g)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},c.enc.Base64url;var s}(n(757))},4978:function(Y,I,n){"use strict";n(9600),Y.exports=function(c){return function(){var s=c.lib.WordArray,E=c.enc;function l(h){return h<<8&4278255360|h>>>8&16711935}E.Utf16=E.Utf16BE={stringify:function(u){for(var C=u.words,e=u.sigBytes,f=[],g=0;g>>2]>>>16-g%4*8&65535));return f.join("")},parse:function(u){for(var C=u.length,e=[],f=0;f>>1]|=u.charCodeAt(f)<<16-f%2*16;return s.create(e,2*C)}},E.Utf16LE={stringify:function(u){for(var C=u.words,e=u.sigBytes,f=[],g=0;g>>2]>>>16-g%4*8&65535);f.push(String.fromCharCode(w))}return f.join("")},parse:function(u){for(var C=u.length,e=[],f=0;f>>1]|=l(u.charCodeAt(f)<<16-f%2*16);return s.create(e,2*C)}}}(),c.enc.Utf16}(n(757))},3839:function(Y,I,n){"use strict";n(2222),Y.exports=function(c){return E=(a=(r=c).lib).WordArray,h=(o=r.algo).EvpKDF=(s=a.Base).extend({cfg:s.extend({keySize:4,hasher:o.MD5,iterations:1}),init:function(C){this.cfg=this.cfg.extend(C)},compute:function(C,e){for(var f,g=this.cfg,w=g.hasher.create(),Q=E.create(),d=Q.words,F=g.keySize,m=g.iterations;d.lengthg&&(e=C.finalize(e)),e.clamp();for(var w=this._oKey=e.clone(),Q=this._iKey=e.clone(),d=w.words,F=Q.words,m=0;m>>2]|=l[C]<<24-C%4*8;E.call(this,u,h)}else E.apply(this,arguments)};o.prototype=s}}(),c.lib.WordArray},Y.exports=r(n(757))},3440:function(Y,I,n){"use strict";Y.exports=function(c){return function(r){var a=c,s=a.lib,E=s.WordArray,o=s.Hasher,l=a.algo,h=[];!function(){for(var w=0;w<64;w++)h[w]=4294967296*r.abs(r.sin(w+1))|0}();var u=l.MD5=o.extend({_doReset:function(){this._hash=new E.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(Q,d){for(var F=0;F<16;F++){var m=d+F,p=Q[m];Q[m]=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8)}var D=this._hash.words,v=Q[d+0],P=Q[d+1],T=Q[d+2],x=Q[d+3],R=Q[d+4],N=Q[d+5],V=Q[d+6],aA=Q[d+7],AA=Q[d+8],gA=Q[d+9],MA=Q[d+10],cA=Q[d+11],lA=Q[d+12],BA=Q[d+13],vA=Q[d+14],xA=Q[d+15],_=D[0],QA=D[1],uA=D[2],CA=D[3];_=C(_,QA,uA,CA,v,7,h[0]),CA=C(CA,_,QA,uA,P,12,h[1]),uA=C(uA,CA,_,QA,T,17,h[2]),QA=C(QA,uA,CA,_,x,22,h[3]),_=C(_,QA,uA,CA,R,7,h[4]),CA=C(CA,_,QA,uA,N,12,h[5]),uA=C(uA,CA,_,QA,V,17,h[6]),QA=C(QA,uA,CA,_,aA,22,h[7]),_=C(_,QA,uA,CA,AA,7,h[8]),CA=C(CA,_,QA,uA,gA,12,h[9]),uA=C(uA,CA,_,QA,MA,17,h[10]),QA=C(QA,uA,CA,_,cA,22,h[11]),_=C(_,QA,uA,CA,lA,7,h[12]),CA=C(CA,_,QA,uA,BA,12,h[13]),uA=C(uA,CA,_,QA,vA,17,h[14]),_=e(_,QA=C(QA,uA,CA,_,xA,22,h[15]),uA,CA,P,5,h[16]),CA=e(CA,_,QA,uA,V,9,h[17]),uA=e(uA,CA,_,QA,cA,14,h[18]),QA=e(QA,uA,CA,_,v,20,h[19]),_=e(_,QA,uA,CA,N,5,h[20]),CA=e(CA,_,QA,uA,MA,9,h[21]),uA=e(uA,CA,_,QA,xA,14,h[22]),QA=e(QA,uA,CA,_,R,20,h[23]),_=e(_,QA,uA,CA,gA,5,h[24]),CA=e(CA,_,QA,uA,vA,9,h[25]),uA=e(uA,CA,_,QA,x,14,h[26]),QA=e(QA,uA,CA,_,AA,20,h[27]),_=e(_,QA,uA,CA,BA,5,h[28]),CA=e(CA,_,QA,uA,T,9,h[29]),uA=e(uA,CA,_,QA,aA,14,h[30]),_=f(_,QA=e(QA,uA,CA,_,lA,20,h[31]),uA,CA,N,4,h[32]),CA=f(CA,_,QA,uA,AA,11,h[33]),uA=f(uA,CA,_,QA,cA,16,h[34]),QA=f(QA,uA,CA,_,vA,23,h[35]),_=f(_,QA,uA,CA,P,4,h[36]),CA=f(CA,_,QA,uA,R,11,h[37]),uA=f(uA,CA,_,QA,aA,16,h[38]),QA=f(QA,uA,CA,_,MA,23,h[39]),_=f(_,QA,uA,CA,BA,4,h[40]),CA=f(CA,_,QA,uA,v,11,h[41]),uA=f(uA,CA,_,QA,x,16,h[42]),QA=f(QA,uA,CA,_,V,23,h[43]),_=f(_,QA,uA,CA,gA,4,h[44]),CA=f(CA,_,QA,uA,lA,11,h[45]),uA=f(uA,CA,_,QA,xA,16,h[46]),_=g(_,QA=f(QA,uA,CA,_,T,23,h[47]),uA,CA,v,6,h[48]),CA=g(CA,_,QA,uA,aA,10,h[49]),uA=g(uA,CA,_,QA,vA,15,h[50]),QA=g(QA,uA,CA,_,N,21,h[51]),_=g(_,QA,uA,CA,lA,6,h[52]),CA=g(CA,_,QA,uA,x,10,h[53]),uA=g(uA,CA,_,QA,MA,15,h[54]),QA=g(QA,uA,CA,_,P,21,h[55]),_=g(_,QA,uA,CA,AA,6,h[56]),CA=g(CA,_,QA,uA,xA,10,h[57]),uA=g(uA,CA,_,QA,V,15,h[58]),QA=g(QA,uA,CA,_,BA,21,h[59]),_=g(_,QA,uA,CA,R,6,h[60]),CA=g(CA,_,QA,uA,cA,10,h[61]),uA=g(uA,CA,_,QA,T,15,h[62]),QA=g(QA,uA,CA,_,gA,21,h[63]),D[0]=D[0]+_|0,D[1]=D[1]+QA|0,D[2]=D[2]+uA|0,D[3]=D[3]+CA|0},_doFinalize:function(){var Q=this._data,d=Q.words,F=8*this._nDataBytes,m=8*Q.sigBytes;d[m>>>5]|=128<<24-m%32;var p=r.floor(F/4294967296),D=F;d[15+(m+64>>>9<<4)]=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),d[14+(m+64>>>9<<4)]=16711935&(D<<8|D>>>24)|4278255360&(D<<24|D>>>8),Q.sigBytes=4*(d.length+1),this._process();for(var v=this._hash,P=v.words,T=0;T<4;T++){var x=P[T];P[T]=16711935&(x<<8|x>>>24)|4278255360&(x<<24|x>>>8)}return v},clone:function(){var Q=o.clone.call(this);return Q._hash=this._hash.clone(),Q}});function C(w,Q,d,F,m,p,D){var v=w+(Q&d|~Q&F)+m+D;return(v<>>32-p)+Q}function e(w,Q,d,F,m,p,D){var v=w+(Q&F|d&~F)+m+D;return(v<>>32-p)+Q}function f(w,Q,d,F,m,p,D){var v=w+(Q^d^F)+m+D;return(v<>>32-p)+Q}function g(w,Q,d,F,m,p,D){var v=w+(d^(Q|~F))+m+D;return(v<>>32-p)+Q}a.MD5=o._createHelper(u),a.HmacMD5=o._createHmacHelper(u)}(Math),c.MD5}(n(757))},702:function(Y,I,n){"use strict";n(7042),Y.exports=function(c){return c.mode.CFB=function(){var r=c.lib.BlockCipherMode.extend();function a(s,E,o,l){var h,u=this._iv;u?(h=u.slice(0),this._iv=void 0):h=this._prevBlock,l.encryptBlock(h,0);for(var C=0;C>24&255)){var l=o>>16&255,h=o>>8&255,u=255&o;255===l?(l=0,255===h?(h=0,255===u?u=0:++u):++h):++l,o=0,o+=l<<16,o+=h<<8,o+=u}else o+=1<<24;return o}var E=r.Encryptor=r.extend({processBlock:function(l,h){var o,u=this._cipher,C=u.blockSize,e=this._iv,f=this._counter;e&&(f=this._counter=e.slice(0),this._iv=void 0),0===((o=f)[0]=a(o[0]))&&(o[1]=a(o[1]));var g=f.slice(0);u.encryptBlock(g,0);for(var w=0;w>>2]|=l<<24-h%4*8,a.sigBytes+=l},unpad:function(a){a.sigBytes-=255&a.words[a.sigBytes-1>>>2]}},c.pad.Ansix923}(n(757),n(1582))},4431:function(Y,I,n){"use strict";n(2222),Y.exports=function(c){return c.pad.Iso10126={pad:function(a,s){var E=4*s,o=E-a.sigBytes%E;a.concat(c.lib.WordArray.random(o-1)).concat(c.lib.WordArray.create([o<<24],1))},unpad:function(a){a.sigBytes-=255&a.words[a.sigBytes-1>>>2]}},c.pad.Iso10126}(n(757),n(1582))},8800:function(Y,I,n){"use strict";n(2222),Y.exports=function(c){return c.pad.Iso97971={pad:function(a,s){a.concat(c.lib.WordArray.create([2147483648],1)),c.pad.ZeroPadding.pad(a,s)},unpad:function(a){c.pad.ZeroPadding.unpad(a),a.sigBytes--}},c.pad.Iso97971}(n(757),n(1582))},649:function(Y,I,n){"use strict";Y.exports=function(c){return c.pad.NoPadding={pad:function(){},unpad:function(){}},c.pad.NoPadding}(n(757),n(1582))},3992:function(Y,I,n){"use strict";Y.exports=function(c){return c.pad.ZeroPadding={pad:function(a,s){var E=4*s;a.clamp(),a.sigBytes+=E-(a.sigBytes%E||E)},unpad:function(a){var s=a.words,E=a.sigBytes-1;for(E=a.sigBytes-1;E>=0;E--)if(s[E>>>2]>>>24-E%4*8&255){a.sigBytes=E+1;break}}},c.pad.ZeroPadding}(n(757),n(1582))},3486:function(Y,I,n){"use strict";n(2222),Y.exports=function(c){return E=(a=(r=c).lib).WordArray,h=(o=r.algo).HMAC,u=o.PBKDF2=(s=a.Base).extend({cfg:s.extend({keySize:4,hasher:o.SHA1,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,f){for(var g=this.cfg,w=h.create(g.hasher,e),Q=E.create(),d=E.create([1]),F=Q.words,m=d.words,p=g.keySize,D=g.iterations;F.length>>16,f[1],f[0]<<16|f[3]>>>16,f[2],f[1]<<16|f[0]>>>16,f[3],f[2]<<16|f[1]>>>16],Q=this._C=[f[2]<<16|f[2]>>>16,4294901760&f[0]|65535&f[1],f[3]<<16|f[3]>>>16,4294901760&f[1]|65535&f[2],f[0]<<16|f[0]>>>16,4294901760&f[2]|65535&f[3],f[1]<<16|f[1]>>>16,4294901760&f[3]|65535&f[0]];this._b=0;for(var d=0;d<4;d++)C.call(this);for(d=0;d<8;d++)Q[d]^=w[d+4&7];if(g){var F=g.words,m=F[0],p=F[1],D=16711935&(m<<8|m>>>24)|4278255360&(m<<24|m>>>8),v=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),P=D>>>16|4294901760&v,T=v<<16|65535&D;for(Q[0]^=D,Q[1]^=P,Q[2]^=v,Q[3]^=T,Q[4]^=D,Q[5]^=P,Q[6]^=v,Q[7]^=T,d=0;d<4;d++)C.call(this)}},_doProcessBlock:function(f,g){var w=this._X;C.call(this),o[0]=w[0]^w[5]>>>16^w[3]<<16,o[1]=w[2]^w[7]>>>16^w[5]<<16,o[2]=w[4]^w[1]>>>16^w[7]<<16,o[3]=w[6]^w[3]>>>16^w[1]<<16;for(var Q=0;Q<4;Q++)o[Q]=16711935&(o[Q]<<8|o[Q]>>>24)|4278255360&(o[Q]<<24|o[Q]>>>8),f[g+Q]^=o[Q]},blockSize:4,ivSize:2});function C(){for(var e=this._X,f=this._C,g=0;g<8;g++)l[g]=f[g];for(f[0]=f[0]+1295307597+this._b|0,f[1]=f[1]+3545052371+(f[0]>>>0>>0?1:0)|0,f[2]=f[2]+886263092+(f[1]>>>0>>0?1:0)|0,f[3]=f[3]+1295307597+(f[2]>>>0>>0?1:0)|0,f[4]=f[4]+3545052371+(f[3]>>>0>>0?1:0)|0,f[5]=f[5]+886263092+(f[4]>>>0>>0?1:0)|0,f[6]=f[6]+1295307597+(f[5]>>>0>>0?1:0)|0,f[7]=f[7]+3545052371+(f[6]>>>0>>0?1:0)|0,this._b=f[7]>>>0>>0?1:0,g=0;g<8;g++){var w=e[g]+f[g],Q=65535&w,d=w>>>16;h[g]=((Q*Q>>>17)+Q*d>>>15)+d*d^((4294901760&w)*w|0)+((65535&w)*w|0)}e[0]=h[0]+(h[7]<<16|h[7]>>>16)+(h[6]<<16|h[6]>>>16)|0,e[1]=h[1]+(h[0]<<8|h[0]>>>24)+h[7]|0,e[2]=h[2]+(h[1]<<16|h[1]>>>16)+(h[0]<<16|h[0]>>>16)|0,e[3]=h[3]+(h[2]<<8|h[2]>>>24)+h[1]|0,e[4]=h[4]+(h[3]<<16|h[3]>>>16)+(h[2]<<16|h[2]>>>16)|0,e[5]=h[5]+(h[4]<<8|h[4]>>>24)+h[3]|0,e[6]=h[6]+(h[5]<<16|h[5]>>>16)+(h[4]<<16|h[4]>>>16)|0,e[7]=h[7]+(h[6]<<8|h[6]>>>24)+h[5]|0}r.RabbitLegacy=s._createHelper(u)}(),c.RabbitLegacy}(n(757),n(7508),n(3440),n(3839),n(1582))},5323:function(Y,I,n){"use strict";Y.exports=function(c){return function(){var r=c,s=r.lib.StreamCipher,o=[],l=[],h=[],u=r.algo.Rabbit=s.extend({_doReset:function(){for(var f=this._key.words,g=this.cfg.iv,w=0;w<4;w++)f[w]=16711935&(f[w]<<8|f[w]>>>24)|4278255360&(f[w]<<24|f[w]>>>8);var Q=this._X=[f[0],f[3]<<16|f[2]>>>16,f[1],f[0]<<16|f[3]>>>16,f[2],f[1]<<16|f[0]>>>16,f[3],f[2]<<16|f[1]>>>16],d=this._C=[f[2]<<16|f[2]>>>16,4294901760&f[0]|65535&f[1],f[3]<<16|f[3]>>>16,4294901760&f[1]|65535&f[2],f[0]<<16|f[0]>>>16,4294901760&f[2]|65535&f[3],f[1]<<16|f[1]>>>16,4294901760&f[3]|65535&f[0]];for(this._b=0,w=0;w<4;w++)C.call(this);for(w=0;w<8;w++)d[w]^=Q[w+4&7];if(g){var F=g.words,m=F[0],p=F[1],D=16711935&(m<<8|m>>>24)|4278255360&(m<<24|m>>>8),v=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),P=D>>>16|4294901760&v,T=v<<16|65535&D;for(d[0]^=D,d[1]^=P,d[2]^=v,d[3]^=T,d[4]^=D,d[5]^=P,d[6]^=v,d[7]^=T,w=0;w<4;w++)C.call(this)}},_doProcessBlock:function(f,g){var w=this._X;C.call(this),o[0]=w[0]^w[5]>>>16^w[3]<<16,o[1]=w[2]^w[7]>>>16^w[5]<<16,o[2]=w[4]^w[1]>>>16^w[7]<<16,o[3]=w[6]^w[3]>>>16^w[1]<<16;for(var Q=0;Q<4;Q++)o[Q]=16711935&(o[Q]<<8|o[Q]>>>24)|4278255360&(o[Q]<<24|o[Q]>>>8),f[g+Q]^=o[Q]},blockSize:4,ivSize:2});function C(){for(var e=this._X,f=this._C,g=0;g<8;g++)l[g]=f[g];for(f[0]=f[0]+1295307597+this._b|0,f[1]=f[1]+3545052371+(f[0]>>>0>>0?1:0)|0,f[2]=f[2]+886263092+(f[1]>>>0>>0?1:0)|0,f[3]=f[3]+1295307597+(f[2]>>>0>>0?1:0)|0,f[4]=f[4]+3545052371+(f[3]>>>0>>0?1:0)|0,f[5]=f[5]+886263092+(f[4]>>>0>>0?1:0)|0,f[6]=f[6]+1295307597+(f[5]>>>0>>0?1:0)|0,f[7]=f[7]+3545052371+(f[6]>>>0>>0?1:0)|0,this._b=f[7]>>>0>>0?1:0,g=0;g<8;g++){var w=e[g]+f[g],Q=65535&w,d=w>>>16;h[g]=((Q*Q>>>17)+Q*d>>>15)+d*d^((4294901760&w)*w|0)+((65535&w)*w|0)}e[0]=h[0]+(h[7]<<16|h[7]>>>16)+(h[6]<<16|h[6]>>>16)|0,e[1]=h[1]+(h[0]<<8|h[0]>>>24)+h[7]|0,e[2]=h[2]+(h[1]<<16|h[1]>>>16)+(h[0]<<16|h[0]>>>16)|0,e[3]=h[3]+(h[2]<<8|h[2]>>>24)+h[1]|0,e[4]=h[4]+(h[3]<<16|h[3]>>>16)+(h[2]<<16|h[2]>>>16)|0,e[5]=h[5]+(h[4]<<8|h[4]>>>24)+h[3]|0,e[6]=h[6]+(h[5]<<16|h[5]>>>16)+(h[4]<<16|h[4]>>>16)|0,e[7]=h[7]+(h[6]<<8|h[6]>>>24)+h[5]|0}r.Rabbit=s._createHelper(u)}(),c.Rabbit}(n(757),n(7508),n(3440),n(3839),n(1582))},4640:function(Y,I,n){"use strict";n(1539),n(8674),Y.exports=function(c){return function(){var r=c,s=r.lib.StreamCipher,E=r.algo,o=E.RC4=s.extend({_doReset:function(){for(var C=this._key,e=C.words,f=C.sigBytes,g=this._S=[],w=0;w<256;w++)g[w]=w;w=0;for(var Q=0;w<256;w++){var d=w%f,m=g[w];g[w]=g[Q=(Q+g[w]+(e[d>>>2]>>>24-d%4*8&255))%256],g[Q]=m}this._i=this._j=0},_doProcessBlock:function(C,e){C[e]^=l.call(this)},keySize:8,ivSize:0});function l(){for(var u=this._S,C=this._i,e=this._j,f=0,g=0;g<4;g++){var w=u[C=(C+1)%256];u[C]=u[e=(e+u[C])%256],u[e]=w,f|=u[(u[C]+u[e])%256]<<24-8*g}return this._i=C,this._j=e,f}r.RC4=s._createHelper(o);var h=E.RC4Drop=o.extend({cfg:o.cfg.extend({drop:192}),_doReset:function(){o._doReset.call(this);for(var C=this.cfg.drop;C>0;C--)l.call(this)}});r.RC4Drop=s._createHelper(h)}(),c.RC4}(n(757),n(7508),n(3440),n(3839),n(1582))},8714:function(Y,I,n){"use strict";Y.exports=function(c){return function(r){var a=c,s=a.lib,E=s.WordArray,o=s.Hasher,l=a.algo,h=E.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),u=E.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),C=E.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),e=E.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),f=E.create([0,1518500249,1859775393,2400959708,2840853838]),g=E.create([1352829926,1548603684,1836072691,2053994217,0]),w=l.RIPEMD160=o.extend({_doReset:function(){this._hash=E.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(P,T){for(var x=0;x<16;x++){var R=T+x,N=P[R];P[R]=16711935&(N<<8|N>>>24)|4278255360&(N<<24|N>>>8)}var BA,vA,xA,_,QA,uA,CA,TA,GA,VA,q,V=this._hash.words,aA=f.words,AA=g.words,gA=h.words,MA=u.words,cA=C.words,lA=e.words;for(uA=BA=V[0],CA=vA=V[1],TA=xA=V[2],GA=_=V[3],VA=QA=V[4],x=0;x<80;x+=1)q=BA+P[T+gA[x]]|0,q+=x<16?Q(vA,xA,_)+aA[0]:x<32?d(vA,xA,_)+aA[1]:x<48?F(vA,xA,_)+aA[2]:x<64?m(vA,xA,_)+aA[3]:p(vA,xA,_)+aA[4],q=(q=D(q|=0,cA[x]))+QA|0,BA=QA,QA=_,_=D(xA,10),xA=vA,vA=q,q=uA+P[T+MA[x]]|0,q+=x<16?p(CA,TA,GA)+AA[0]:x<32?m(CA,TA,GA)+AA[1]:x<48?F(CA,TA,GA)+AA[2]:x<64?d(CA,TA,GA)+AA[3]:Q(CA,TA,GA)+AA[4],q=(q=D(q|=0,lA[x]))+VA|0,uA=VA,VA=GA,GA=D(TA,10),TA=CA,CA=q;q=V[1]+xA+GA|0,V[1]=V[2]+_+VA|0,V[2]=V[3]+QA+uA|0,V[3]=V[4]+BA+CA|0,V[4]=V[0]+vA+TA|0,V[0]=q},_doFinalize:function(){var P=this._data,T=P.words,x=8*this._nDataBytes,R=8*P.sigBytes;T[R>>>5]|=128<<24-R%32,T[14+(R+64>>>9<<4)]=16711935&(x<<8|x>>>24)|4278255360&(x<<24|x>>>8),P.sigBytes=4*(T.length+1),this._process();for(var N=this._hash,V=N.words,aA=0;aA<5;aA++){var AA=V[aA];V[aA]=16711935&(AA<<8|AA>>>24)|4278255360&(AA<<24|AA>>>8)}return N},clone:function(){var P=o.clone.call(this);return P._hash=this._hash.clone(),P}});function Q(v,P,T){return v^P^T}function d(v,P,T){return v&P|~v&T}function F(v,P,T){return(v|~P)^T}function m(v,P,T){return v&T|P&~T}function p(v,P,T){return v^(P|~T)}function D(v,P){return v<>>32-P}a.RIPEMD160=o._createHelper(w),a.HmacRIPEMD160=o._createHmacHelper(w)}(Math),c.RIPEMD160}(n(757))},9865:function(Y,I,n){"use strict";Y.exports=function(c){return s=(a=(r=c).lib).WordArray,l=[],h=r.algo.SHA1=(E=a.Hasher).extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(C,e){for(var f=this._hash.words,g=f[0],w=f[1],Q=f[2],d=f[3],F=f[4],m=0;m<80;m++){if(m<16)l[m]=0|C[e+m];else{var p=l[m-3]^l[m-8]^l[m-14]^l[m-16];l[m]=p<<1|p>>>31}var D=(g<<5|g>>>27)+F+l[m];D+=m<20?1518500249+(w&Q|~w&d):m<40?1859775393+(w^Q^d):m<60?(w&Q|w&d|Q&d)-1894007588:(w^Q^d)-899497514,F=d,d=Q,Q=w<<30|w>>>2,w=g,g=D}f[0]=f[0]+g|0,f[1]=f[1]+w|0,f[2]=f[2]+Q|0,f[3]=f[3]+d|0,f[4]=f[4]+F|0},_doFinalize:function(){var C=this._data,e=C.words,f=8*this._nDataBytes,g=8*C.sigBytes;return e[g>>>5]|=128<<24-g%32,e[14+(g+64>>>9<<4)]=Math.floor(f/4294967296),e[15+(g+64>>>9<<4)]=f,C.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var C=E.clone.call(this);return C._hash=this._hash.clone(),C}}),r.SHA1=E._createHelper(h),r.HmacSHA1=E._createHmacHelper(h),c.SHA1;var r,a,s,E,l,h}(n(757))},6876:function(Y,I,n){"use strict";Y.exports=function(c){return s=(r=c).lib.WordArray,l=(E=r.algo).SHA224=(o=E.SHA256).extend({_doReset:function(){this._hash=new s.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var u=o._doFinalize.call(this);return u.sigBytes-=4,u}}),r.SHA224=o._createHelper(l),r.HmacSHA224=o._createHmacHelper(l),c.SHA224;var r,s,E,o,l}(n(757),n(8921))},8921:function(Y,I,n){"use strict";n(7042),Y.exports=function(c){return function(r){var a=c,s=a.lib,E=s.WordArray,o=s.Hasher,l=a.algo,h=[],u=[];!function(){function f(d){for(var F=r.sqrt(d),m=2;m<=F;m++)if(!(d%m))return!1;return!0}function g(d){return 4294967296*(d-(0|d))|0}for(var w=2,Q=0;Q<64;)f(w)&&(Q<8&&(h[Q]=g(r.pow(w,.5))),u[Q]=g(r.pow(w,1/3)),Q++),w++}();var C=[],e=l.SHA256=o.extend({_doReset:function(){this._hash=new E.init(h.slice(0))},_doProcessBlock:function(g,w){for(var Q=this._hash.words,d=Q[0],F=Q[1],m=Q[2],p=Q[3],D=Q[4],v=Q[5],P=Q[6],T=Q[7],x=0;x<64;x++){if(x<16)C[x]=0|g[w+x];else{var R=C[x-15],V=C[x-2];C[x]=((R<<25|R>>>7)^(R<<14|R>>>18)^R>>>3)+C[x-7]+((V<<15|V>>>17)^(V<<13|V>>>19)^V>>>10)+C[x-16]}var gA=d&F^d&m^F&m,lA=T+((D<<26|D>>>6)^(D<<21|D>>>11)^(D<<7|D>>>25))+(D&v^~D&P)+u[x]+C[x];T=P,P=v,v=D,D=p+lA|0,p=m,m=F,F=d,d=lA+(((d<<30|d>>>2)^(d<<19|d>>>13)^(d<<10|d>>>22))+gA)|0}Q[0]=Q[0]+d|0,Q[1]=Q[1]+F|0,Q[2]=Q[2]+m|0,Q[3]=Q[3]+p|0,Q[4]=Q[4]+D|0,Q[5]=Q[5]+v|0,Q[6]=Q[6]+P|0,Q[7]=Q[7]+T|0},_doFinalize:function(){var g=this._data,w=g.words,Q=8*this._nDataBytes,d=8*g.sigBytes;return w[d>>>5]|=128<<24-d%32,w[14+(d+64>>>9<<4)]=r.floor(Q/4294967296),w[15+(d+64>>>9<<4)]=Q,g.sigBytes=4*w.length,this._process(),this._hash},clone:function(){var g=o.clone.call(this);return g._hash=this._hash.clone(),g}});a.SHA256=o._createHelper(e),a.HmacSHA256=o._createHmacHelper(e)}(Math),c.SHA256}(n(757))},8342:function(Y,I,n){"use strict";n(7042),Y.exports=function(c){return function(r){var a=c,s=a.lib,E=s.WordArray,o=s.Hasher,h=a.x64.Word,u=a.algo,C=[],e=[],f=[];!function(){for(var Q=1,d=0,F=0;F<24;F++){C[Q+5*d]=(F+1)*(F+2)/2%64;var p=(2*Q+3*d)%5;Q=d%5,d=p}for(Q=0;Q<5;Q++)for(d=0;d<5;d++)e[Q+5*d]=d+(2*Q+3*d)%5*5;for(var D=1,v=0;v<24;v++){for(var P=0,T=0,x=0;x<7;x++){if(1&D){var R=(1<>>24)|4278255360&(v<<24|v>>>8),(T=m[D]).high^=P=16711935&(P<<8|P>>>24)|4278255360&(P<<24|P>>>8),T.low^=v}for(var x=0;x<24;x++){for(var R=0;R<5;R++){for(var N=0,V=0,aA=0;aA<5;aA++)N^=(T=m[R+5*aA]).high,V^=T.low;var AA=g[R];AA.high=N,AA.low=V}for(R=0;R<5;R++){var gA=g[(R+4)%5],MA=g[(R+1)%5],cA=MA.high,lA=MA.low;for(N=gA.high^(cA<<1|lA>>>31),V=gA.low^(lA<<1|cA>>>31),aA=0;aA<5;aA++)(T=m[R+5*aA]).high^=N,T.low^=V}for(var BA=1;BA<25;BA++){var vA=(T=m[BA]).high,xA=T.low,_=C[BA];_<32?(N=vA<<_|xA>>>32-_,V=xA<<_|vA>>>32-_):(N=xA<<_-32|vA>>>64-_,V=vA<<_-32|xA>>>64-_);var QA=g[e[BA]];QA.high=N,QA.low=V}var uA=g[0],CA=m[0];for(uA.high=CA.high,uA.low=CA.low,R=0;R<5;R++)for(aA=0;aA<5;aA++){var TA=g[BA=R+5*aA],GA=g[(R+1)%5+5*aA],VA=g[(R+2)%5+5*aA];(T=m[BA]).high=TA.high^~GA.high&VA.high,T.low=TA.low^~GA.low&VA.low}var T,q=f[x];(T=m[0]).high^=q.high,T.low^=q.low}},_doFinalize:function(){var d=this._data,F=d.words,p=8*d.sigBytes,D=32*this.blockSize;F[p>>>5]|=1<<24-p%32,F[(r.ceil((p+1)/D)*D>>>5)-1]|=128,d.sigBytes=4*F.length,this._process();for(var v=this._state,P=this.cfg.outputLength/8,T=P/8,x=[],R=0;R>>24)|4278255360&(V<<24|V>>>8),x.push(aA=16711935&(aA<<8|aA>>>24)|4278255360&(aA<<24|aA>>>8)),x.push(V)}return new E.init(x,P)},clone:function(){for(var d=o.clone.call(this),F=d._state=this._state.slice(0),m=0;m<25;m++)F[m]=F[m].clone();return d}});a.SHA3=o._createHelper(w),a.HmacSHA3=o._createHmacHelper(w)}(Math),c.SHA3}(n(757),n(2601))},8122:function(Y,I,n){"use strict";Y.exports=function(c){return s=(a=(r=c).x64).Word,E=a.WordArray,h=(o=r.algo).SHA384=(l=o.SHA512).extend({_doReset:function(){this._hash=new E.init([new s.init(3418070365,3238371032),new s.init(1654270250,914150663),new s.init(2438529370,812702999),new s.init(355462360,4144912697),new s.init(1731405415,4290775857),new s.init(2394180231,1750603025),new s.init(3675008525,1694076839),new s.init(1203062813,3204075428)])},_doFinalize:function(){var C=l._doFinalize.call(this);return C.sigBytes-=16,C}}),r.SHA384=l._createHelper(h),r.HmacSHA384=l._createHmacHelper(h),c.SHA384;var r,a,s,E,o,l,h}(n(757),n(2601),n(7991))},7991:function(Y,I,n){"use strict";var r;r=function(c){return function(){var r=c,s=r.lib.Hasher,E=r.x64,o=E.Word,l=E.WordArray,h=r.algo;function u(){return o.create.apply(o,arguments)}var C=[u(1116352408,3609767458),u(1899447441,602891725),u(3049323471,3964484399),u(3921009573,2173295548),u(961987163,4081628472),u(1508970993,3053834265),u(2453635748,2937671579),u(2870763221,3664609560),u(3624381080,2734883394),u(310598401,1164996542),u(607225278,1323610764),u(1426881987,3590304994),u(1925078388,4068182383),u(2162078206,991336113),u(2614888103,633803317),u(3248222580,3479774868),u(3835390401,2666613458),u(4022224774,944711139),u(264347078,2341262773),u(604807628,2007800933),u(770255983,1495990901),u(1249150122,1856431235),u(1555081692,3175218132),u(1996064986,2198950837),u(2554220882,3999719339),u(2821834349,766784016),u(2952996808,2566594879),u(3210313671,3203337956),u(3336571891,1034457026),u(3584528711,2466948901),u(113926993,3758326383),u(338241895,168717936),u(666307205,1188179964),u(773529912,1546045734),u(1294757372,1522805485),u(1396182291,2643833823),u(1695183700,2343527390),u(1986661051,1014477480),u(2177026350,1206759142),u(2456956037,344077627),u(2730485921,1290863460),u(2820302411,3158454273),u(3259730800,3505952657),u(3345764771,106217008),u(3516065817,3606008344),u(3600352804,1432725776),u(4094571909,1467031594),u(275423344,851169720),u(430227734,3100823752),u(506948616,1363258195),u(659060556,3750685593),u(883997877,3785050280),u(958139571,3318307427),u(1322822218,3812723403),u(1537002063,2003034995),u(1747873779,3602036899),u(1955562222,1575990012),u(2024104815,1125592928),u(2227730452,2716904306),u(2361852424,442776044),u(2428436474,593698344),u(2756734187,3733110249),u(3204031479,2999351573),u(3329325298,3815920427),u(3391569614,3928383900),u(3515267271,566280711),u(3940187606,3454069534),u(4118630271,4000239992),u(116418474,1914138554),u(174292421,2731055270),u(289380356,3203993006),u(460393269,320620315),u(685471733,587496836),u(852142971,1086792851),u(1017036298,365543100),u(1126000580,2618297676),u(1288033470,3409855158),u(1501505948,4234509866),u(1607167915,987167468),u(1816402316,1246189591)],e=[];!function(){for(var g=0;g<80;g++)e[g]=u()}();var f=h.SHA512=s.extend({_doReset:function(){this._hash=new l.init([new o.init(1779033703,4089235720),new o.init(3144134277,2227873595),new o.init(1013904242,4271175723),new o.init(2773480762,1595750129),new o.init(1359893119,2917565137),new o.init(2600822924,725511199),new o.init(528734635,4215389547),new o.init(1541459225,327033209)])},_doProcessBlock:function(w,Q){for(var d=this._hash.words,F=d[0],m=d[1],p=d[2],D=d[3],v=d[4],P=d[5],T=d[6],x=d[7],R=F.high,N=F.low,V=m.high,aA=m.low,AA=p.high,gA=p.low,MA=D.high,cA=D.low,lA=v.high,BA=v.low,vA=P.high,xA=P.low,_=T.high,QA=T.low,uA=x.high,CA=x.low,TA=R,GA=N,VA=V,q=aA,J=AA,$=gA,W=MA,EA=cA,DA=lA,rA=BA,hA=vA,HA=xA,nt=_,st=QA,yA=uA,_A=CA,ft=0;ft<80;ft++){var lt,SA,OA=e[ft];if(ft<16)SA=OA.high=0|w[Q+2*ft],lt=OA.low=0|w[Q+2*ft+1];else{var WA=e[ft-15],zA=WA.high,ot=WA.low,dt=(ot>>>1|zA<<31)^(ot>>>8|zA<<24)^(ot>>>7|zA<<25),vt=e[ft-2],Pt=vt.high,G=vt.low,L=(G>>>19|Pt<<13)^(G<<3|Pt>>>29)^(G>>>6|Pt<<26),dA=e[ft-7],eA=e[ft-16],Ft=eA.low;OA.high=SA=(SA=(SA=((zA>>>1|ot<<31)^(zA>>>8|ot<<24)^zA>>>7)+dA.high+((lt=dt+dA.low)>>>0
>>0?1:0))+((Pt>>>19|G<<13)^(Pt<<3|G>>>29)^Pt>>>6)+((lt+=L)>>>0>>0?1:0))+eA.high+((lt+=Ft)>>>0>>0?1:0),OA.low=lt}var ie,j=DA&hA^~DA&nt,XA=rA&HA^~rA&st,et=TA&VA^TA&J^VA&J,ct=(GA>>>28|TA<<4)^(GA<<30|TA>>>2)^(GA<<25|TA>>>7),Rt=C[ft],Ne=Rt.low,$t=yA+((DA>>>14|rA<<18)^(DA>>>18|rA<<14)^(DA<<23|rA>>>9))+((ie=_A+((rA>>>14|DA<<18)^(rA>>>18|DA<<14)^(rA<<23|DA>>>9)))>>>0<_A>>>0?1:0),me=ct+(GA&q^GA&$^q&$);yA=nt,_A=st,nt=hA,st=HA,hA=DA,HA=rA,DA=W+($t=($t=($t=$t+j+((ie+=XA)>>>0>>0?1:0))+Rt.high+((ie+=Ne)>>>0>>0?1:0))+SA+((ie+=lt)>>>0>>0?1:0))+((rA=EA+ie|0)>>>0>>0?1:0)|0,W=J,EA=$,J=VA,$=q,VA=TA,q=GA,TA=$t+(((TA>>>28|GA<<4)^(TA<<30|GA>>>2)^(TA<<25|GA>>>7))+et+(me>>>0>>0?1:0))+((GA=ie+me|0)>>>0>>0?1:0)|0}N=F.low=N+GA,F.high=R+TA+(N>>>0>>0?1:0),aA=m.low=aA+q,m.high=V+VA+(aA>>>0>>0?1:0),gA=p.low=gA+$,p.high=AA+J+(gA>>>0<$>>>0?1:0),cA=D.low=cA+EA,D.high=MA+W+(cA>>>0>>0?1:0),BA=v.low=BA+rA,v.high=lA+DA+(BA>>>0>>0?1:0),xA=P.low=xA+HA,P.high=vA+hA+(xA>>>0>>0?1:0),QA=T.low=QA+st,T.high=_+nt+(QA>>>0>>0?1:0),CA=x.low=CA+_A,x.high=uA+yA+(CA>>>0<_A>>>0?1:0)},_doFinalize:function(){var w=this._data,Q=w.words,d=8*this._nDataBytes,F=8*w.sigBytes;return Q[F>>>5]|=128<<24-F%32,Q[30+(F+128>>>10<<5)]=Math.floor(d/4294967296),Q[31+(F+128>>>10<<5)]=d,w.sigBytes=4*Q.length,this._process(),this._hash.toX32()},clone:function(){var w=s.clone.call(this);return w._hash=this._hash.clone(),w},blockSize:32});r.SHA512=s._createHelper(f),r.HmacSHA512=s._createHmacHelper(f)}(),c.SHA512},Y.exports=r(n(757),n(2601))},8437:function(Y,I,n){"use strict";n(7042),Y.exports=function(c){return function(){var r=c,a=r.lib,s=a.WordArray,E=a.BlockCipher,o=r.algo,l=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],h=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],u=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],C=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],e=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],f=o.DES=E.extend({_doReset:function(){for(var m=this._key.words,p=[],D=0;D<56;D++){var v=l[D]-1;p[D]=m[v>>>5]>>>31-v%32&1}for(var P=this._subKeys=[],T=0;T<16;T++){var x=P[T]=[],R=u[T];for(D=0;D<24;D++)x[D/6|0]|=p[(h[D]-1+R)%28]<<31-D%6,x[4+(D/6|0)]|=p[28+(h[D+24]-1+R)%28]<<31-D%6;for(x[0]=x[0]<<1|x[0]>>>31,D=1;D<7;D++)x[D]=x[D]>>>4*(D-1)+3;x[7]=x[7]<<5|x[7]>>>27}var N=this._invSubKeys=[];for(D=0;D<16;D++)N[D]=P[15-D]},encryptBlock:function(F,m){this._doCryptBlock(F,m,this._subKeys)},decryptBlock:function(F,m){this._doCryptBlock(F,m,this._invSubKeys)},_doCryptBlock:function(F,m,p){this._lBlock=F[m],this._rBlock=F[m+1],g.call(this,4,252645135),g.call(this,16,65535),w.call(this,2,858993459),w.call(this,8,16711935),g.call(this,1,1431655765);for(var D=0;D<16;D++){for(var v=p[D],P=this._lBlock,T=this._rBlock,x=0,R=0;R<8;R++)x|=C[R][((T^v[R])&e[R])>>>0];this._lBlock=T,this._rBlock=P^x}var N=this._lBlock;this._lBlock=this._rBlock,this._rBlock=N,g.call(this,1,1431655765),w.call(this,8,16711935),w.call(this,2,858993459),g.call(this,16,65535),g.call(this,4,252645135),F[m]=this._lBlock,F[m+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function g(d,F){var m=(this._lBlock>>>d^this._rBlock)&F;this._rBlock^=m,this._lBlock^=m<>>d^this._lBlock)&F;this._lBlock^=m,this._rBlock^=m<192.");var p=m.slice(0,2),D=m.length<4?m.slice(0,2):m.slice(2,4),v=m.length<6?m.slice(0,2):m.slice(4,6);this._des1=f.createEncryptor(s.create(p)),this._des2=f.createEncryptor(s.create(D)),this._des3=f.createEncryptor(s.create(v))},encryptBlock:function(F,m){this._des1.encryptBlock(F,m),this._des2.decryptBlock(F,m),this._des3.encryptBlock(F,m)},decryptBlock:function(F,m){this._des3.decryptBlock(F,m),this._des2.encryptBlock(F,m),this._des1.decryptBlock(F,m)},keySize:6,ivSize:2,blockSize:2});r.TripleDES=E._createHelper(Q)}(),c.TripleDES}(n(757),n(7508),n(3440),n(3839),n(1582))},2601:function(Y,I,n){"use strict";n(7042),Y.exports=function(c){return E=(s=c.lib).Base,o=s.WordArray,(l=c.x64={}).Word=E.extend({init:function(e,f){this.high=e,this.low=f}}),l.WordArray=E.extend({init:function(e,f){e=this.words=e||[],this.sigBytes=null!=f?f:8*e.length},toX32:function(){for(var e=this.words,f=e.length,g=[],w=0;w=l.length?{done:!0}:{done:!1,value:l[C++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(l,h){(null==h||h>l.length)&&(h=l.length);for(var u=0,C=new Array(h);u=Q)){v.next=13;break}return v.next=13,[Q,d,f.tags[F]];case 13:w=f.stateTable[1][p],Q=null;case 15:0!==w&&null==Q&&(Q=m),f.accepting[w]&&(d=m),0===w&&(w=1);case 18:m++,v.next=5;break;case 21:if(!(null!=Q&&null!=d&&d>=Q)){v.next=24;break}return v.next=24,[Q,d,f.tags[w]];case 24:case"end":return v.stop()}},g)}),e},h.apply=function(C,e){for(var g,f=c(this.match(C));!(g=f()).done;)for(var p,w=g.value,Q=w[0],d=w[1],m=c(w[2]);!(p=m()).done;){var D=p.value;"function"==typeof e[D]&&e[D](Q,d,C.slice(Q,d+1))}},l}()},8478:function(Y,I,n){"use strict";var c=n(8823).Buffer;n(7042),n(6699);var r=n(3857),a=n(2635);Y.exports=function(){function s(o){var l;for(this.data=o,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.text={};;){var h=this.readUInt32(),u="";for(l=0;l<4;l++)u+=String.fromCharCode(this.data[this.pos++]);switch(u){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"PLTE":this.palette=this.read(h);break;case"IDAT":for(l=0;l0)for(l=0;lthis.data.length)throw new Error("Incomplete or corrupt PNG file")}}s.decode=function(l,h){return r.readFile(l,function(u,C){return new s(C).decode(function(f){return h(f)})})},s.load=function(l){return new s(r.readFileSync(l))};var E=s.prototype;return E.read=function(l){for(var h=new Array(l),u=0;u=2*(1<<30))throw new RangeError('The value "'+l+'" is invalid for option "size"');var C=a(l);return h&&0!==h.length?"string"==typeof u?C.fill(h,u):C.fill(h):C.fill(0),C}),!s.kStringMaxLength)try{s.kStringMaxLength=c.binding("buffer").kStringMaxLength}catch(l){}s.constants||(s.constants={MAX_LENGTH:s.kMaxLength},s.kStringMaxLength&&(s.constants.MAX_STRING_LENGTH=s.kStringMaxLength)),Y.exports=s},3361:function(Y,I,n){"use strict";function c(g,w){var Q=Object.keys(g);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(g);w&&(d=d.filter(function(F){return Object.getOwnPropertyDescriptor(g,F).enumerable})),Q.push.apply(Q,d)}return Q}function a(g,w,Q){return w in g?Object.defineProperty(g,w,{value:Q,enumerable:!0,configurable:!0,writable:!0}):g[w]=Q,g}function E(g,w){for(var Q=0;Q0?this.tail.next=d:this.head=d,this.tail=d,++this.length}},{key:"unshift",value:function(Q){var d={data:Q,next:this.head};0===this.length&&(this.tail=d),this.head=d,++this.length}},{key:"shift",value:function(){if(0!==this.length){var Q=this.head.data;return this.head=1===this.length?this.tail=null:this.head.next,--this.length,Q}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(Q){if(0===this.length)return"";for(var d=this.head,F=""+d.data;d=d.next;)F+=Q+d.data;return F}},{key:"concat",value:function(Q){if(0===this.length)return h.alloc(0);for(var d=h.allocUnsafe(Q>>>0),F=this.head,m=0;F;)f(F.data,d,m),m+=F.data.length,F=F.next;return d}},{key:"consume",value:function(Q,d){var F;return Qp.length?p.length:Q;if(m+=D===p.length?p:p.slice(0,Q),0==(Q-=D)){D===p.length?(++F,this.head=d.next?d.next:this.tail=null):(this.head=d,d.data=p.slice(D));break}++F}return this.length-=F,m}},{key:"_getBuffer",value:function(Q){var d=h.allocUnsafe(Q),F=this.head,m=1;for(F.data.copy(d),Q-=F.data.length;F=F.next;){var p=F.data,D=Q>p.length?p.length:Q;if(p.copy(d,d.length-Q,0,D),0==(Q-=D)){D===p.length?(++m,this.head=F.next?F.next:this.tail=null):(this.head=F,F.data=p.slice(D));break}++m}return this.length-=m,d}},{key:e,value:function(Q,d){return C(this,function(g){for(var w=1;wIA.length)&&(H=IA.length);for(var S=0,X=new Array(H);S=IA.length?{done:!0}:{done:!1,value:IA[X++]}},e:function(ut){throw ut},f:Z}}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,fA=!0,pA=!1;return{s:function(){S=IA[Symbol.iterator]()},n:function(){var ut=S.next();return fA=ut.done,ut},e:function(ut){pA=!0,$A=ut},f:function(){try{!fA&&null!=S.return&&S.return()}finally{if(pA)throw $A}}}}var xA=function(){function IA(){f(this,IA)}return w(IA,[{key:"toString",value:function(){throw new Error("Must be implemented by subclasses")}}]),IA}(),_=function(){function IA(){var H=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f(this,IA),this._items={},this.limits="boolean"!=typeof H.limits||H.limits}return w(IA,[{key:"add",value:function(S,X){return this._items[S]=X}},{key:"get",value:function(S){return this._items[S]}},{key:"toString",value:function(){var S=this,X=Object.keys(this._items).sort(function(wt,Dt){return S._compareKeys(wt,Dt)}),Z=["<<"];if(this.limits&&X.length>1){var pA=X[X.length-1];Z.push(" /Limits ".concat(GA.convert([this._dataForKey(X[0]),this._dataForKey(pA)])))}Z.push(" /".concat(this._keysName()," ["));var rt,$A=vA(X);try{for($A.s();!(rt=$A.n()).done;){var ut=rt.value;Z.push(" ".concat(GA.convert(this._dataForKey(ut))," ").concat(GA.convert(this._items[ut])))}}catch(wt){$A.e(wt)}finally{$A.f()}return Z.push("]"),Z.push(">>"),Z.join("\n")}},{key:"_compareKeys",value:function(){throw new Error("Must be implemented by subclasses")}},{key:"_keysName",value:function(){throw new Error("Must be implemented by subclasses")}},{key:"_dataForKey",value:function(){throw new Error("Must be implemented by subclasses")}}]),IA}(),QA=function(H,S){return(Array(S+1).join("0")+H).slice(-S)},uA=/[\n\r\t\b\f()\\]/g,CA={"\n":"\\n","\r":"\\r","\t":"\\t","\b":"\\b","\f":"\\f","\\":"\\\\","(":"\\(",")":"\\)"},TA=function(H){var S=H.length;if(1&S)throw new Error("Buffer length must be even");for(var X=0,Z=S-1;X1&&void 0!==arguments[1]?arguments[1]:null;if("string"==typeof S)return"/".concat(S);if(S instanceof String){for(var Z=S,fA=!1,pA=0,$A=Z.length;pA<$A;pA++)if(Z.charCodeAt(pA)>127){fA=!0;break}var rt;return rt=fA?TA(r.from("\ufeff".concat(Z),"utf16le")):r.from(Z.valueOf(),"ascii"),Z=(Z=X?X(rt).toString("binary"):rt.toString("binary")).replace(uA,function(Ot){return CA[Ot]}),"(".concat(Z,")")}if(r.isBuffer(S))return"<".concat(S.toString("hex"),">");if(S instanceof xA||S instanceof _)return S.toString();if(S instanceof Date){var ut="D:".concat(QA(S.getUTCFullYear(),4))+QA(S.getUTCMonth()+1,2)+QA(S.getUTCDate(),2)+QA(S.getUTCHours(),2)+QA(S.getUTCMinutes(),2)+QA(S.getUTCSeconds(),2)+"Z";return X&&(ut=(ut=X(r.from(ut,"ascii")).toString("binary")).replace(uA,function(Ot){return CA[Ot]})),"(".concat(ut,")")}if(Array.isArray(S)){var wt=S.map(function(Ot){return IA.convert(Ot,X)}).join(" ");return"[".concat(wt,"]")}if("[object Object]"==={}.toString.call(S)){var Dt=["<<"];for(var xt in S){var Yt=S[xt];Dt.push("/".concat(xt," ").concat(IA.convert(Yt,X)))}return Dt.push(">>"),Dt.join("\n")}return"number"==typeof S?IA.number(S):"".concat(S)}},{key:"number",value:function(S){if(S>-1e21&&S<1e21)return Math.round(1e6*S)/1e6;throw new Error("unsupported number: ".concat(S))}}]),IA}(),VA=function(IA){m(S,IA);var H=x(S);function S(X,Z){var fA,pA=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return f(this,S),(fA=H.call(this)).document=X,fA.id=Z,fA.data=pA,fA.gen=0,fA.compress=fA.document.compress&&!fA.data.Filter,fA.uncompressedLength=0,fA.buffer=[],fA}return w(S,[{key:"write",value:function(Z){if(r.isBuffer(Z)||(Z=r.from(Z+"\n","binary")),this.uncompressedLength+=Z.length,null==this.data.Length&&(this.data.Length=0),this.buffer.push(Z),this.data.Length+=Z.length,this.compress)return this.data.Filter="FlateDecode"}},{key:"end",value:function(Z){return Z&&this.write(Z),this.finalize()}},{key:"finalize",value:function(){this.offset=this.document._offset;var Z=this.document._security?this.document._security.getEncryptFn(this.id,this.gen):null;this.buffer.length&&(this.buffer=r.concat(this.buffer),this.compress&&(this.buffer=s.default.deflateSync(this.buffer)),Z&&(this.buffer=Z(this.buffer)),this.data.Length=this.buffer.length),this.document._write("".concat(this.id," ").concat(this.gen," obj")),this.document._write(GA.convert(this.data,Z)),this.buffer.length&&(this.document._write("stream"),this.document._write(this.buffer),this.buffer=[],this.document._write("\nendstream")),this.document._write("endobj"),this.document._refEnd(this)}},{key:"toString",value:function(){return"".concat(this.id," ").concat(this.gen," R")}}]),S}(xA),q={top:72,left:72,bottom:72,right:72},J={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]},$=function(){function IA(H){var S=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};f(this,IA),this.document=H,this.size=S.size||"letter",this.layout=S.layout||"portrait",this.margins="number"==typeof S.margin?{top:S.margin,left:S.margin,bottom:S.margin,right:S.margin}:S.margins||q;var X=Array.isArray(this.size)?this.size:J[this.size.toUpperCase()];this.width=X["portrait"===this.layout?0:1],this.height=X["portrait"===this.layout?1:0],this.content=this.document.ref(),this.resources=this.document.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"]}),this.dictionary=this.document.ref({Type:"Page",Parent:this.document._root.data.Pages,MediaBox:[0,0,this.width,this.height],Contents:this.content,Resources:this.resources}),this.markings=[]}return w(IA,[{key:"maxY",value:function(){return this.height-this.margins.bottom}},{key:"write",value:function(S){return this.content.write(S)}},{key:"end",value:function(){return this.dictionary.end(),this.resources.end(),this.content.end()}},{key:"fonts",get:function(){var S=this.resources.data;return null!=S.Font?S.Font:S.Font={}}},{key:"xobjects",get:function(){var S=this.resources.data;return null!=S.XObject?S.XObject:S.XObject={}}},{key:"ext_gstates",get:function(){var S=this.resources.data;return null!=S.ExtGState?S.ExtGState:S.ExtGState={}}},{key:"patterns",get:function(){var S=this.resources.data;return null!=S.Pattern?S.Pattern:S.Pattern={}}},{key:"colorSpaces",get:function(){var S=this.resources.data;return S.ColorSpace||(S.ColorSpace={})}},{key:"annotations",get:function(){var S=this.dictionary.data;return null!=S.Annots?S.Annots:S.Annots=[]}},{key:"structParentTreeKey",get:function(){var S=this.dictionary.data;return null!=S.StructParents?S.StructParents:S.StructParents=this.document.createStructParentTreeNextKey()}}]),IA}(),W=function(IA){m(S,IA);var H=x(S);function S(){return f(this,S),H.apply(this,arguments)}return w(S,[{key:"_compareKeys",value:function(Z,fA){return Z.localeCompare(fA)}},{key:"_keysName",value:function(){return"Names"}},{key:"_dataForKey",value:function(Z){return new String(Z)}}]),S}(_);function EA(IA,H){if(IA=H[fA]&&IA<=H[fA+1])return!0;IA>H[fA+1]?S=Z+1:X=Z-1}return!1}var DA=[545,545,564,591,686,687,751,767,848,863,880,883,886,889,891,893,895,899,907,907,909,909,930,930,975,975,1015,1023,1159,1159,1231,1231,1270,1271,1274,1279,1296,1328,1367,1368,1376,1376,1416,1416,1419,1424,1442,1442,1466,1466,1477,1487,1515,1519,1525,1547,1549,1562,1564,1566,1568,1568,1595,1599,1622,1631,1774,1775,1791,1791,1806,1806,1837,1839,1867,1919,1970,2304,2308,2308,2362,2363,2382,2383,2389,2391,2417,2432,2436,2436,2445,2446,2449,2450,2473,2473,2481,2481,2483,2485,2490,2491,2493,2493,2501,2502,2505,2506,2510,2518,2520,2523,2526,2526,2532,2533,2555,2561,2563,2564,2571,2574,2577,2578,2601,2601,2609,2609,2612,2612,2615,2615,2618,2619,2621,2621,2627,2630,2633,2634,2638,2648,2653,2653,2655,2661,2677,2688,2692,2692,2700,2700,2702,2702,2706,2706,2729,2729,2737,2737,2740,2740,2746,2747,2758,2758,2762,2762,2766,2767,2769,2783,2785,2789,2800,2816,2820,2820,2829,2830,2833,2834,2857,2857,2865,2865,2868,2869,2874,2875,2884,2886,2889,2890,2894,2901,2904,2907,2910,2910,2914,2917,2929,2945,2948,2948,2955,2957,2961,2961,2966,2968,2971,2971,2973,2973,2976,2978,2981,2983,2987,2989,2998,2998,3002,3005,3011,3013,3017,3017,3022,3030,3032,3046,3059,3072,3076,3076,3085,3085,3089,3089,3113,3113,3124,3124,3130,3133,3141,3141,3145,3145,3150,3156,3159,3167,3170,3173,3184,3201,3204,3204,3213,3213,3217,3217,3241,3241,3252,3252,3258,3261,3269,3269,3273,3273,3278,3284,3287,3293,3295,3295,3298,3301,3312,3329,3332,3332,3341,3341,3345,3345,3369,3369,3386,3389,3396,3397,3401,3401,3406,3414,3416,3423,3426,3429,3440,3457,3460,3460,3479,3481,3506,3506,3516,3516,3518,3519,3527,3529,3531,3534,3541,3541,3543,3543,3552,3569,3573,3584,3643,3646,3676,3712,3715,3715,3717,3718,3721,3721,3723,3724,3726,3731,3736,3736,3744,3744,3748,3748,3750,3750,3752,3753,3756,3756,3770,3770,3774,3775,3781,3781,3783,3783,3790,3791,3802,3803,3806,3839,3912,3912,3947,3952,3980,3983,3992,3992,4029,4029,4045,4046,4048,4095,4130,4130,4136,4136,4139,4139,4147,4149,4154,4159,4186,4255,4294,4303,4345,4346,4348,4351,4442,4446,4515,4519,4602,4607,4615,4615,4679,4679,4681,4681,4686,4687,4695,4695,4697,4697,4702,4703,4743,4743,4745,4745,4750,4751,4783,4783,4785,4785,4790,4791,4799,4799,4801,4801,4806,4807,4815,4815,4823,4823,4847,4847,4879,4879,4881,4881,4886,4887,4895,4895,4935,4935,4955,4960,4989,5023,5109,5120,5751,5759,5789,5791,5873,5887,5901,5901,5909,5919,5943,5951,5972,5983,5997,5997,6001,6001,6004,6015,6109,6111,6122,6143,6159,6159,6170,6175,6264,6271,6314,7679,7836,7839,7930,7935,7958,7959,7966,7967,8006,8007,8014,8015,8024,8024,8026,8026,8028,8028,8030,8030,8062,8063,8117,8117,8133,8133,8148,8149,8156,8156,8176,8177,8181,8181,8191,8191,8275,8278,8280,8286,8292,8297,8306,8307,8335,8351,8370,8399,8427,8447,8507,8508,8524,8530,8580,8591,9167,9215,9255,9279,9291,9311,9471,9471,9748,9749,9752,9752,9854,9855,9866,9984,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10079,10080,10133,10135,10160,10160,10175,10191,10220,10223,11008,11903,11930,11930,12020,12031,12246,12271,12284,12287,12352,12352,12439,12440,12544,12548,12589,12592,12687,12687,12728,12783,12829,12831,12868,12880,12924,12926,13004,13007,13055,13055,13175,13178,13278,13279,13311,13311,19894,19967,40870,40959,42125,42127,42183,44031,55204,55295,64046,64047,64107,64255,64263,64274,64280,64284,64311,64311,64317,64317,64319,64319,64322,64322,64325,64325,64434,64466,64832,64847,64912,64913,64968,64975,65021,65023,65040,65055,65060,65071,65095,65096,65107,65107,65127,65127,65132,65135,65141,65141,65277,65278,65280,65280,65471,65473,65480,65481,65488,65489,65496,65497,65501,65503,65511,65511,65519,65528,65536,66303,66335,66335,66340,66351,66379,66559,66598,66599,66638,118783,119030,119039,119079,119081,119262,119807,119893,119893,119965,119965,119968,119969,119971,119972,119975,119976,119981,119981,119994,119994,119996,119996,120001,120001,120004,120004,120070,120070,120075,120076,120085,120085,120093,120093,120122,120122,120127,120127,120133,120133,120135,120137,120145,120145,120484,120487,120778,120781,120832,131069,173783,194559,195102,196605,196608,262141,262144,327677,327680,393213,393216,458749,458752,524285,524288,589821,589824,655357,655360,720893,720896,786429,786432,851965,851968,917501,917504,917504,917506,917535,917632,983037],rA=function(H){return EA(H,DA)},hA=[173,173,847,847,6150,6150,6155,6155,6156,6156,6157,6157,8203,8203,8204,8204,8205,8205,8288,8288,65024,65024,65025,65025,65026,65026,65027,65027,65028,65028,65029,65029,65030,65030,65031,65031,65032,65032,65033,65033,65034,65034,65035,65035,65036,65036,65037,65037,65038,65038,65039,65039,65279,65279],nt=[160,160,5760,5760,8192,8192,8193,8193,8194,8194,8195,8195,8196,8196,8197,8197,8198,8198,8199,8199,8200,8200,8201,8201,8202,8202,8203,8203,8239,8239,8287,8287,12288,12288],yA=[128,159,1757,1757,1807,1807,6158,6158,8204,8204,8205,8205,8232,8232,8233,8233,8288,8288,8289,8289,8290,8290,8291,8291,8298,8303,65279,65279,65529,65532,119155,119162],_A=[64976,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1114110,1114111],ft=[0,31,127,127,832,832,833,833,8206,8206,8207,8207,8234,8234,8235,8235,8236,8236,8237,8237,8238,8238,8298,8298,8299,8299,8300,8300,8301,8301,8302,8302,8303,8303,12272,12283,55296,57343,57344,63743,65529,65529,65530,65530,65531,65531,65532,65532,65533,65533,917505,917505,917536,917631,983040,1048573,1048576,1114109],lt=function(H){return EA(H,nt)||EA(H,ft)||EA(H,yA)||EA(H,_A)},SA=[1470,1470,1472,1472,1475,1475,1488,1514,1520,1524,1563,1563,1567,1567,1569,1594,1600,1610,1645,1647,1649,1749,1757,1757,1765,1766,1786,1790,1792,1805,1808,1808,1810,1836,1920,1957,1969,1969,8207,8207,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65020,65136,65140,65142,65276],OA=function(H){return EA(H,SA)},WA=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,544,546,563,592,685,688,696,699,705,720,721,736,740,750,750,890,890,902,902,904,906,908,908,910,929,931,974,976,1013,1024,1154,1162,1230,1232,1269,1272,1273,1280,1295,1329,1366,1369,1375,1377,1415,1417,1417,2307,2307,2309,2361,2365,2368,2377,2380,2384,2384,2392,2401,2404,2416,2434,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2494,2496,2503,2504,2507,2508,2519,2519,2524,2525,2527,2529,2534,2545,2548,2554,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2622,2624,2649,2652,2654,2654,2662,2671,2674,2676,2691,2691,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2752,2761,2761,2763,2764,2768,2768,2784,2784,2790,2799,2818,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2877,2878,2880,2880,2887,2888,2891,2892,2903,2903,2908,2909,2911,2913,2918,2928,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3006,3007,3009,3010,3014,3016,3018,3020,3031,3031,3047,3058,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3137,3140,3168,3169,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3262,3262,3264,3268,3271,3272,3274,3275,3285,3286,3294,3294,3296,3297,3302,3311,3330,3331,3333,3340,3342,3344,3346,3368,3370,3385,3390,3392,3398,3400,3402,3404,3415,3415,3424,3425,3430,3439,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3535,3537,3544,3551,3570,3572,3585,3632,3634,3635,3648,3654,3663,3675,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3792,3801,3804,3805,3840,3863,3866,3892,3894,3894,3896,3896,3902,3911,3913,3946,3967,3967,3973,3973,3976,3979,4030,4037,4039,4044,4047,4047,4096,4129,4131,4135,4137,4138,4140,4140,4145,4145,4152,4152,4160,4183,4256,4293,4304,4344,4347,4347,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,4961,4988,5024,5108,5121,5750,5761,5786,5792,5872,5888,5900,5902,5905,5920,5937,5941,5942,5952,5969,5984,5996,5998,6e3,6016,6070,6078,6085,6087,6088,6100,6106,6108,6108,6112,6121,6160,6169,6176,6263,6272,6312,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8206,8206,8305,8305,8319,8319,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8509,8511,8517,8521,8544,8579,9014,9082,9109,9109,9372,9449,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12588,12593,12686,12688,12727,12784,12828,12832,12867,12896,12923,12927,12976,12992,13003,13008,13054,13056,13174,13179,13277,13280,13310,13312,19893,19968,40869,40960,42124,44032,55203,55296,64045,64048,64106,64256,64262,64275,64279,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,66304,66334,66336,66339,66352,66378,66560,66597,66600,66637,118784,119029,119040,119078,119082,119142,119146,119154,119171,119172,119180,119209,119214,119261,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,12e4,120002,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120483,120488,120777,131072,173782,194560,195101,983040,1048573,1048576,1114109],zA=function(H){return EA(H,WA)},ot=function(H){return EA(H,nt)},It=function(H){return EA(H,hA)},dt=function(H){return H.codePointAt(0)},vt=function(H){return H[0]},Pt=function(H){return H[H.length-1]};function G(IA){for(var H=[],S=IA.length,X=0;X=55296&&Z<=56319&&S>X+1){var fA=IA.charCodeAt(X+1);if(fA>=56320&&fA<=57343){H.push(1024*(Z-55296)+fA-56320+65536),X+=1;continue}}H.push(Z)}return H}function O(IA){var H=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"!=typeof IA)throw new TypeError("Expected string.");if(0===IA.length)return"";var S=G(IA).map(function(Dt){return ot(Dt)?32:Dt}).filter(function(Dt){return!It(Dt)}),X=String.fromCodePoint.apply(null,S).normalize("NFKC"),Z=G(X);if(Z.some(lt))throw new Error("Prohibited character, see https://tools.ietf.org/html/rfc4013#section-2.3");if(!0!==H.allowUnassigned&&Z.some(rA))throw new Error("Unassigned code point, see https://tools.ietf.org/html/rfc4013#section-2.5");var $A=Z.some(OA),rt=Z.some(zA);if($A&&rt)throw new Error("String must not contain RandALCat and LCat at the same time, see https://tools.ietf.org/html/rfc3454#section-6");var ut=OA(dt(vt(X))),wt=OA(dt(Pt(X)));if($A&&(!ut||!wt))throw new Error("Bidirectional RandALCat character must be the first and the last character of the string, see https://tools.ietf.org/html/rfc3454#section-6");return X}var L=function(){function IA(H){var S=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(f(this,IA),!S.ownerPassword&&!S.userPassword)throw new Error("None of owner password and user password is defined.");this.document=H,this._setupEncryption(S)}return w(IA,null,[{key:"generateFileID",value:function(){var S=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},X="".concat(S.CreationDate.getTime(),"\n");for(var Z in S)!S.hasOwnProperty(Z)||(X+="".concat(Z,": ").concat(S[Z].valueOf(),"\n"));return Kt(E.default.MD5(X))}},{key:"generateRandomWordArray",value:function(S){return E.default.lib.WordArray.random(S)}},{key:"create",value:function(S){var X=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return X.ownerPassword||X.userPassword?new IA(S,X):null}}]),w(IA,[{key:"_setupEncryption",value:function(S){switch(S.pdfVersion){case"1.4":case"1.5":this.version=2;break;case"1.6":case"1.7":this.version=4;break;case"1.7ext3":this.version=5;break;default:this.version=1}var X={Filter:"Standard"};switch(this.version){case 1:case 2:case 4:this._setupEncryptionV1V2V4(this.version,X,S);break;case 5:this._setupEncryptionV5(X,S)}this.dictionary=this.document.ref(X)}},{key:"_setupEncryptionV1V2V4",value:function(S,X,Z){var fA,pA;switch(S){case 1:fA=2,this.keyBits=40,pA=function(){var IA=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},H=-64;return IA.printing&&(H|=4),IA.modifying&&(H|=8),IA.copying&&(H|=16),IA.annotating&&(H|=32),H}(Z.permissions);break;case 2:fA=3,this.keyBits=128,pA=wA(Z.permissions);break;case 4:fA=4,this.keyBits=128,pA=wA(Z.permissions)}var wt,$A=bt(Z.userPassword),rt=Z.ownerPassword?bt(Z.ownerPassword):$A,ut=function(IA,H,S,X){for(var Z=X,fA=IA>=3?51:1,pA=0;pA=3?20:1;for(var ut=0;ut=3?51:1,rt=0;rt<$A;rt++)(pA=E.default.MD5(pA)).sigBytes=H/8;return pA}(fA,this.keyBits,this.document._id,$A,ut,pA),wt=2===fA?function(IA){return E.default.RC4.encrypt(bt(),IA).ciphertext}(this.encryptionKey):function(IA,H){for(var S=H.clone(),X=E.default.MD5(bt().concat(E.default.lib.WordArray.create(IA))),Z=0;Z<20;Z++){for(var fA=Math.ceil(S.sigBytes/4),pA=0;pA=2&&(X.Length=this.keyBits),4===S&&(X.CF={StdCF:{AuthEvent:"DocOpen",CFM:"AESV2",Length:this.keyBits/8}},X.StmF="StdCF",X.StrF="StdCF"),X.R=fA,X.O=Kt(ut),X.U=Kt(wt),X.P=pA}},{key:"_setupEncryptionV5",value:function(S,X){this.keyBits=256;var Z=wA(X.permissions),fA=yt(X.userPassword),pA=X.ownerPassword?yt(X.ownerPassword):fA;this.encryptionKey=function(IA){return IA(32)}(IA.generateRandomWordArray);var $A=function(IA,H){var S=H(8),X=H(8);return E.default.SHA256(IA.clone().concat(S)).concat(S).concat(X)}(fA,IA.generateRandomWordArray),ut=function(IA,H,S){var X=E.default.SHA256(IA.clone().concat(H)),Z={mode:E.default.mode.CBC,padding:E.default.pad.NoPadding,iv:E.default.lib.WordArray.create(null,16)};return E.default.AES.encrypt(S,X,Z).ciphertext}(fA,E.default.lib.WordArray.create($A.words.slice(10,12),8),this.encryptionKey),wt=function(IA,H,S){var X=S(8),Z=S(8);return E.default.SHA256(IA.clone().concat(X).concat(H)).concat(X).concat(Z)}(pA,$A,IA.generateRandomWordArray),xt=function(IA,H,S,X){var Z=E.default.SHA256(IA.clone().concat(H).concat(S)),fA={mode:E.default.mode.CBC,padding:E.default.pad.NoPadding,iv:E.default.lib.WordArray.create(null,16)};return E.default.AES.encrypt(X,Z,fA).ciphertext}(pA,E.default.lib.WordArray.create(wt.words.slice(10,12),8),$A,this.encryptionKey),Yt=function(IA,H,S){var X=E.default.lib.WordArray.create([Rt(IA),4294967295,1415668834],12).concat(S(4));return E.default.AES.encrypt(X,H,{mode:E.default.mode.ECB,padding:E.default.pad.NoPadding}).ciphertext}(Z,this.encryptionKey,IA.generateRandomWordArray);S.V=5,S.Length=this.keyBits,S.CF={StdCF:{AuthEvent:"DocOpen",CFM:"AESV3",Length:this.keyBits/8}},S.StmF="StdCF",S.StrF="StdCF",S.R=5,S.O=Kt(wt),S.OE=Kt(xt),S.U=Kt($A),S.UE=Kt(ut),S.P=Z,S.Perms=Kt(Yt)}},{key:"getEncryptFn",value:function(S,X){var Z,pA;if(this.version<5&&(Z=this.encryptionKey.clone().concat(E.default.lib.WordArray.create([(255&S)<<24|(65280&S)<<8|S>>8&65280|255&X,(65280&X)<<16],5))),1===this.version||2===this.version){var fA=E.default.MD5(Z);return fA.sigBytes=Math.min(16,this.keyBits/8+5),function(ut){return Kt(E.default.RC4.encrypt(E.default.lib.WordArray.create(ut),fA).ciphertext)}}pA=4===this.version?E.default.MD5(Z.concat(E.default.lib.WordArray.create([1933667412],4))):this.encryptionKey;var $A=IA.generateRandomWordArray(16),rt={mode:E.default.mode.CBC,padding:E.default.pad.Pkcs7,iv:$A};return function(ut){return Kt($A.clone().concat(E.default.AES.encrypt(E.default.lib.WordArray.create(ut),pA,rt).ciphertext))}}},{key:"end",value:function(){this.dictionary.end()}}]),IA}();function wA(){var IA=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},H=-3904;return"lowResolution"===IA.printing&&(H|=4),"highResolution"===IA.printing&&(H|=2052),IA.modifying&&(H|=8),IA.copying&&(H|=16),IA.annotating&&(H|=32),IA.fillingForms&&(H|=256),IA.contentAccessibility&&(H|=512),IA.documentAssembly&&(H|=1024),H}function bt(){for(var IA=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",H=r.alloc(32),S=IA.length,X=0;X255)throw new Error("Password contains one or more invalid characters.");H[X]=Z,X++}for(;X<32;)H[X]=Ne[X-S],X++;return E.default.lib.WordArray.create(H)}function yt(){var IA=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";IA=unescape(encodeURIComponent(O(IA)));for(var H=Math.min(127,IA.length),S=r.alloc(H),X=0;X>8&65280|IA>>24&255}function Kt(IA){for(var H=[],S=0;S>8*(3-S%4)&255);return r.from(H)}var Jt,Lt,Xt,oe,In,Mn,Ne=[40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122],ie=GA.number,$t=function(){function IA(H){f(this,IA),this.doc=H,this.stops=[],this.embedded=!1,this.transform=[1,0,0,1,0,0]}return w(IA,[{key:"stop",value:function(S,X,Z){if(null==Z&&(Z=1),X=this.doc._normalizeColor(X),0===this.stops.length)if(3===X.length)this._colorSpace="DeviceRGB";else if(4===X.length)this._colorSpace="DeviceCMYK";else{if(1!==X.length)throw new Error("Unknown color space");this._colorSpace="DeviceGray"}else if("DeviceRGB"===this._colorSpace&&3!==X.length||"DeviceCMYK"===this._colorSpace&&4!==X.length||"DeviceGray"===this._colorSpace&&1!==X.length)throw new Error("All gradient stops must use the same color space");return Z=Math.max(0,Math.min(1,Z)),this.stops.push([S,X,Z]),this}},{key:"setTransform",value:function(S,X,Z,fA,pA,$A){return this.transform=[S,X,Z,fA,pA,$A],this}},{key:"embed",value:function(S){var X,Z=this.stops.length;if(0!==Z){this.embedded=!0,this.matrix=S;var fA=this.stops[Z-1];fA[0]<1&&this.stops.push([1,fA[1],fA[2]]);for(var pA=[],$A=[],rt=[],ut=0;ut>16,S>>8&255,255&S]}else Gn[H]&&(H=Gn[H]);return Array.isArray(H)?(3===H.length?H=H.map(function(X){return X/255}):4===H.length&&(H=H.map(function(X){return X/100})),H):null},_setColor:function(H,S){return H instanceof An?(H.apply(S),!0):Array.isArray(H)&&H[0]instanceof qe?(H[0].apply(S,H[1]),!0):this._setColorCore(H,S)},_setColorCore:function(H,S){if(!(H=this._normalizeColor(H)))return!1;var X=S?"SCN":"scn",Z=this._getColorSpace(H);return this._setColorSpace(Z,S),H=H.join(" "),this.addContent("".concat(H," ").concat(X)),!0},_setColorSpace:function(H,S){var X=S?"CS":"cs";return this.addContent("/".concat(H," ").concat(X))},_getColorSpace:function(H){return 4===H.length?"DeviceCMYK":"DeviceRGB"},fillColor:function(H,S){return this._setColor(H,!1)&&this.fillOpacity(S),this._fillColor=[H,S],this},strokeColor:function(H,S){return this._setColor(H,!0)&&this.strokeOpacity(S),this},opacity:function(H){return this._doOpacity(H,H),this},fillOpacity:function(H){return this._doOpacity(H,null),this},strokeOpacity:function(H){return this._doOpacity(null,H),this},_doOpacity:function(H,S){var X,Z;if(null!=H||null!=S){null!=H&&(H=Math.max(0,Math.min(1,H))),null!=S&&(S=Math.max(0,Math.min(1,S)));var fA="".concat(H,"_").concat(S);if(this._opacityRegistry[fA]){var pA=R(this._opacityRegistry[fA],2);X=pA[0],Z=pA[1]}else{X={Type:"ExtGState"},null!=H&&(X.ca=H),null!=S&&(X.CA=S),(X=this.ref(X)).end();var $A=++this._opacityCount;Z="Gs".concat($A),this._opacityRegistry[fA]=[X,Z]}return this.page.ext_gstates[Z]=X,this.addContent("/".concat(Z," gs"))}},linearGradient:function(H,S,X,Z){return new Se(this,H,S,X,Z)},radialGradient:function(H,S,X,Z,fA,pA){return new tn(this,H,S,X,Z,fA,pA)},pattern:function(H,S,X,Z){return new qe(this,H,S,X,Z)}},Gn={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};Jt=Lt=Xt=oe=In=Mn=0;var Fn={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0},nn={M:function(H,S){return Xt=oe=null,In=Jt=S[0],Mn=Lt=S[1],H.moveTo(Jt,Lt)},m:function(H,S){return Xt=oe=null,In=Jt+=S[0],Mn=Lt+=S[1],H.moveTo(Jt,Lt)},C:function(H,S){return Jt=S[4],Lt=S[5],Xt=S[2],oe=S[3],H.bezierCurveTo.apply(H,N(S))},c:function(H,S){return H.bezierCurveTo(S[0]+Jt,S[1]+Lt,S[2]+Jt,S[3]+Lt,S[4]+Jt,S[5]+Lt),Xt=Jt+S[2],oe=Lt+S[3],Jt+=S[4],Lt+=S[5]},S:function(H,S){return null===Xt&&(Xt=Jt,oe=Lt),H.bezierCurveTo(Jt-(Xt-Jt),Lt-(oe-Lt),S[0],S[1],S[2],S[3]),Xt=S[0],oe=S[1],Jt=S[2],Lt=S[3]},s:function(H,S){return null===Xt&&(Xt=Jt,oe=Lt),H.bezierCurveTo(Jt-(Xt-Jt),Lt-(oe-Lt),Jt+S[0],Lt+S[1],Jt+S[2],Lt+S[3]),Xt=Jt+S[0],oe=Lt+S[1],Jt+=S[2],Lt+=S[3]},Q:function(H,S){return Xt=S[0],oe=S[1],H.quadraticCurveTo(S[0],S[1],Jt=S[2],Lt=S[3])},q:function(H,S){return H.quadraticCurveTo(S[0]+Jt,S[1]+Lt,S[2]+Jt,S[3]+Lt),Xt=Jt+S[0],oe=Lt+S[1],Jt+=S[2],Lt+=S[3]},T:function(H,S){return null===Xt?(Xt=Jt,oe=Lt):(Xt=Jt-(Xt-Jt),oe=Lt-(oe-Lt)),H.quadraticCurveTo(Xt,oe,S[0],S[1]),Xt=Jt-(Xt-Jt),oe=Lt-(oe-Lt),Jt=S[0],Lt=S[1]},t:function(H,S){return null===Xt?(Xt=Jt,oe=Lt):(Xt=Jt-(Xt-Jt),oe=Lt-(oe-Lt)),H.quadraticCurveTo(Xt,oe,Jt+S[0],Lt+S[1]),Jt+=S[0],Lt+=S[1]},A:function(H,S){return KA(H,Jt,Lt,S),Jt=S[5],Lt=S[6]},a:function(H,S){return S[5]+=Jt,S[6]+=Lt,KA(H,Jt,Lt,S),Jt=S[5],Lt=S[6]},L:function(H,S){return Xt=oe=null,H.lineTo(Jt=S[0],Lt=S[1])},l:function(H,S){return Xt=oe=null,H.lineTo(Jt+=S[0],Lt+=S[1])},H:function(H,S){return Xt=oe=null,H.lineTo(Jt=S[0],Lt)},h:function(H,S){return Xt=oe=null,H.lineTo(Jt+=S[0],Lt)},V:function(H,S){return Xt=oe=null,H.lineTo(Jt,Lt=S[0])},v:function(H,S){return Xt=oe=null,H.lineTo(Jt,Lt+=S[0])},Z:function(H){return H.closePath(),Jt=In,Lt=Mn},z:function(H){return H.closePath(),Jt=In,Lt=Mn}},KA=function(H,S,X,Z){var Zt,fA=R(Z,7),Ot=vA(YA(fA[5],fA[6],fA[0],fA[1],fA[3],fA[4],fA[2],S,X));try{for(Ot.s();!(Zt=Ot.n()).done;){var Ee=tt.apply(void 0,N(Zt.value));H.bezierCurveTo.apply(H,N(Ee))}}catch(Me){Ot.e(Me)}finally{Ot.f()}},YA=function(H,S,X,Z,fA,pA,$A,rt,ut){var wt=$A*(Math.PI/180),Dt=Math.sin(wt),xt=Math.cos(wt);X=Math.abs(X),Z=Math.abs(Z);var Yt=(Xt=xt*(rt-H)*.5+Dt*(ut-S)*.5)*Xt/(X*X)+(oe=xt*(ut-S)*.5-Dt*(rt-H)*.5)*oe/(Z*Z);Yt>1&&(X*=Yt=Math.sqrt(Yt),Z*=Yt);var Ot=xt/X,Zt=Dt/X,ue=-Dt/Z,Ee=xt/Z,Me=Ot*rt+Zt*ut,en=ue*rt+Ee*ut,Qe=Ot*H+Zt*S,je=ue*H+Ee*S,Ze=1/((Qe-Me)*(Qe-Me)+(je-en)*(je-en))-.25;Ze<0&&(Ze=0);var Cn=Math.sqrt(Ze);pA===fA&&(Cn=-Cn);var Wn=.5*(Me+Qe)-Cn*(je-en),$n=.5*(en+je)+Cn*(Qe-Me),Un=Math.atan2(en-$n,Me-Wn),On=Math.atan2(je-$n,Qe-Wn)-Un;On<0&&1===pA?On+=2*Math.PI:On>0&&0===pA&&(On-=2*Math.PI);for(var ir=Math.ceil(Math.abs(On/(.5*Math.PI+.001))),Mr=[],Ar=0;Ar0&&(Z[Z.length]=+fA),X[X.length]={cmd:S,args:Z},Z=[],fA="",pA=!1),S=wt;else if([" ",","].includes(wt)||"-"===wt&&fA.length>0&&"e"!==fA[fA.length-1]||"."===wt&&pA){if(0===fA.length)continue;Z.length===$A?(X[X.length]={cmd:S,args:Z},Z=[+fA],"M"===S&&(S="L"),"m"===S&&(S="l")):Z[Z.length]=+fA,pA="."===wt,fA=["-","."].includes(wt)?wt:""}else fA+=wt,"."===wt&&(pA=!0)}}catch(Dt){rt.e(Dt)}finally{rt.f()}return fA.length>0&&(Z.length===$A?(X[X.length]={cmd:S,args:Z},Z=[+fA],"M"===S&&(S="L"),"m"===S&&(S="l")):Z[Z.length]=+fA),X[X.length]={cmd:S,args:Z},X}(X);!function(H,S){Jt=Lt=Xt=oe=In=Mn=0;for(var X=0;X1&&void 0!==arguments[1]?arguments[1]:{},X=H;if(Array.isArray(H)||(H=[H,S.space||H]),!H.every(function(fA){return Number.isFinite(fA)&&fA>0}))throw new Error("dash(".concat(JSON.stringify(X),", ").concat(JSON.stringify(S),") invalid, lengths must be numeric and greater than zero"));return H=H.map(NA).join(" "),this.addContent("[".concat(H,"] ").concat(NA(S.phase||0)," d"))},undash:function(){return this.addContent("[] 0 d")},moveTo:function(H,S){return this.addContent("".concat(NA(H)," ").concat(NA(S)," m"))},lineTo:function(H,S){return this.addContent("".concat(NA(H)," ").concat(NA(S)," l"))},bezierCurveTo:function(H,S,X,Z,fA,pA){return this.addContent("".concat(NA(H)," ").concat(NA(S)," ").concat(NA(X)," ").concat(NA(Z)," ").concat(NA(fA)," ").concat(NA(pA)," c"))},quadraticCurveTo:function(H,S,X,Z){return this.addContent("".concat(NA(H)," ").concat(NA(S)," ").concat(NA(X)," ").concat(NA(Z)," v"))},rect:function(H,S,X,Z){return this.addContent("".concat(NA(H)," ").concat(NA(S)," ").concat(NA(X)," ").concat(NA(Z)," re"))},roundedRect:function(H,S,X,Z,fA){null==fA&&(fA=0);var pA=(fA=Math.min(fA,.5*X,.5*Z))*(1-bA);return this.moveTo(H+fA,S),this.lineTo(H+X-fA,S),this.bezierCurveTo(H+X-pA,S,H+X,S+pA,H+X,S+fA),this.lineTo(H+X,S+Z-fA),this.bezierCurveTo(H+X,S+Z-pA,H+X-pA,S+Z,H+X-fA,S+Z),this.lineTo(H+fA,S+Z),this.bezierCurveTo(H+pA,S+Z,H,S+Z-pA,H,S+Z-fA),this.lineTo(H,S+fA),this.bezierCurveTo(H,S+pA,H+pA,S,H+fA,S),this.closePath()},ellipse:function(H,S,X,Z){null==Z&&(Z=X);var fA=X*bA,pA=Z*bA,$A=(H-=X)+2*X,rt=(S-=Z)+2*Z,ut=H+X,wt=S+Z;return this.moveTo(H,wt),this.bezierCurveTo(H,wt-pA,ut-fA,S,ut,S),this.bezierCurveTo(ut+fA,S,$A,wt-pA,$A,wt),this.bezierCurveTo($A,wt+pA,ut+fA,rt,ut,rt),this.bezierCurveTo(ut-fA,rt,H,wt+pA,H,wt),this.closePath()},circle:function(H,S,X){return this.ellipse(H,S,X)},arc:function(H,S,X,Z,fA,pA){null==pA&&(pA=!1);var $A=2*Math.PI,rt=.5*Math.PI,ut=fA-Z;Math.abs(ut)>$A?ut=$A:0!==ut&&pA!==ut<0&&(ut=(pA?-1:1)*$A+ut);var Dt=Math.ceil(Math.abs(ut)/rt),xt=ut/Dt,Yt=xt/rt*bA*X,Ot=Z,Zt=-Math.sin(Ot)*Yt,ue=Math.cos(Ot)*Yt,Ee=H+Math.cos(Ot)*X,Me=S+Math.sin(Ot)*X;this.moveTo(Ee,Me);for(var en=0;en1&&void 0!==arguments[1]?arguments[1]:{},Z=H*Math.PI/180,fA=Math.cos(Z),pA=Math.sin(Z),$A=X=0;if(null!=S.origin){var rt=R(S.origin,2),wt=($A=rt[0])*pA+(X=rt[1])*fA;$A-=$A*fA-X*pA,X-=wt}return this.transform(fA,pA,-pA,fA,$A,X)},scale:function(H,S){var Z,X=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};null==S&&(S=H),"object"==typeof S&&(X=S,S=H);var fA=Z=0;if(null!=X.origin){var pA=R(X.origin,2);fA=pA[0],Z=pA[1],fA-=H*fA,Z-=S*Z}return this.transform(H,0,0,S,fA,Z)}},At={402:131,8211:150,8212:151,8216:145,8217:146,8218:130,8220:147,8221:148,8222:132,8224:134,8225:135,8226:149,8230:133,8364:128,8240:137,8249:139,8250:155,710:136,8482:153,338:140,339:156,732:152,352:138,353:154,376:159,381:142,382:158},LA=".notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n \nspace exclam quotedbl numbersign\ndollar percent ampersand quotesingle\nparenleft parenright asterisk plus\ncomma hyphen period slash\nzero one two three\nfour five six seven\neight nine colon semicolon\nless equal greater question\n \nat A B C\nD E F G\nH I J K\nL M N O\nP Q R S\nT U V W\nX Y Z bracketleft\nbackslash bracketright asciicircum underscore\n \ngrave a b c\nd e f g\nh i j k\nl m n o\np q r s\nt u v w\nx y z braceleft\nbar braceright asciitilde .notdef\n \nEuro .notdef quotesinglbase florin\nquotedblbase ellipsis dagger daggerdbl\ncircumflex perthousand Scaron guilsinglleft\nOE .notdef Zcaron .notdef\n.notdef quoteleft quoteright quotedblleft\nquotedblright bullet endash emdash\ntilde trademark scaron guilsinglright\noe .notdef zcaron ydieresis\n \nspace exclamdown cent sterling\ncurrency yen brokenbar section\ndieresis copyright ordfeminine guillemotleft\nlogicalnot hyphen registered macron\ndegree plusminus twosuperior threesuperior\nacute mu paragraph periodcentered\ncedilla onesuperior ordmasculine guillemotright\nonequarter onehalf threequarters questiondown\n \nAgrave Aacute Acircumflex Atilde\nAdieresis Aring AE Ccedilla\nEgrave Eacute Ecircumflex Edieresis\nIgrave Iacute Icircumflex Idieresis\nEth Ntilde Ograve Oacute\nOcircumflex Otilde Odieresis multiply\nOslash Ugrave Uacute Ucircumflex\nUdieresis Yacute Thorn germandbls\n \nagrave aacute acircumflex atilde\nadieresis aring ae ccedilla\negrave eacute ecircumflex edieresis\nigrave iacute icircumflex idieresis\neth ntilde ograve oacute\nocircumflex otilde odieresis divide\noslash ugrave uacute ucircumflex\nudieresis yacute thorn ydieresis".split(/\s+/),it=function(){function IA(H){f(this,IA),this.contents=H,this.attributes={},this.glyphWidths={},this.boundingBoxes={},this.kernPairs={},this.parse(),this.charWidths=new Array(256);for(var S=0;S<=255;S++)this.charWidths[S]=this.glyphWidths[LA[S]];this.bbox=this.attributes.FontBBox.split(/\s+/).map(function(X){return+X}),this.ascender=+(this.attributes.Ascender||0),this.descender=+(this.attributes.Descender||0),this.xHeight=+(this.attributes.XHeight||0),this.capHeight=+(this.attributes.CapHeight||0),this.lineGap=this.bbox[3]-this.bbox[1]-(this.ascender-this.descender)}return w(IA,null,[{key:"open",value:function(S){return new IA(e.readFileSync(S,"utf8"))}}]),w(IA,[{key:"parse",value:function(){var Z,S="",X=vA(this.contents.split("\n"));try{for(X.s();!(Z=X.n()).done;){var pA,$A,fA=Z.value;if(pA=fA.match(/^Start(\w+)/))S=pA[1];else if(pA=fA.match(/^End(\w+)/))S="";else switch(S){case"FontMetrics":var rt=(pA=fA.match(/(^\w+)\s+(.*)/))[1],ut=pA[2];($A=this.attributes[rt])?(Array.isArray($A)||($A=this.attributes[rt]=[$A]),$A.push(ut)):this.attributes[rt]=ut;break;case"CharMetrics":if(!/^CH?\s/.test(fA))continue;var wt=fA.match(/\bN\s+(\.?\w+)\s*;/)[1];this.glyphWidths[wt]=+fA.match(/\bWX\s+(\d+)\s*;/)[1];break;case"KernPairs":(pA=fA.match(/^KPX\s+(\.?\w+)\s+(\.?\w+)\s+(-?\d+)/))&&(this.kernPairs[pA[1]+"\0"+pA[2]]=parseInt(pA[3]))}}}catch(Dt){X.e(Dt)}finally{X.f()}}},{key:"encodeText",value:function(S){for(var X=[],Z=0,fA=S.length;Z>8,rt=0;this.font.post.isFixedPitch&&(rt|=1),1<=$A&&$A<=7&&(rt|=2),rt|=4,10===$A&&(rt|=8),this.font.head.macStyle.italic&&(rt|=64);var wt=[1,2,3,4,5,6].map(function(Zt){return String.fromCharCode((Z.id.charCodeAt(Zt)||73)+17)}).join("")+"+"+this.font.postscriptName,Dt=this.font.bbox,xt=this.document.ref({Type:"FontDescriptor",FontName:wt,Flags:rt,FontBBox:[Dt.minX*this.scale,Dt.minY*this.scale,Dt.maxX*this.scale,Dt.maxY*this.scale],ItalicAngle:this.font.italicAngle,Ascent:this.ascender,Descent:this.descender,CapHeight:(this.font.capHeight||this.font.ascent)*this.scale,XHeight:(this.font.xHeight||0)*this.scale,StemV:0});fA?xt.data.FontFile3=pA:xt.data.FontFile2=pA,xt.end();var Yt={Type:"Font",Subtype:"CIDFontType0",BaseFont:wt,CIDSystemInfo:{Registry:new String("Adobe"),Ordering:new String("Identity"),Supplement:0},FontDescriptor:xt,W:[0,this.widths]};fA||(Yt.Subtype="CIDFontType2",Yt.CIDToGIDMap="Identity");var Ot=this.document.ref(Yt);return Ot.end(),this.dictionary.data={Type:"Font",Subtype:"Type0",BaseFont:wt,Encoding:"Identity-H",DescendantFonts:[Ot],ToUnicode:this.toUnicodeCmap()},this.dictionary.end()}},{key:"toUnicodeCmap",value:function(){var $A,Z=this.document.ref(),fA=[],pA=vA(this.unicode);try{for(pA.s();!($A=pA.n()).done;){var Dt,ut=[],wt=vA($A.value);try{for(wt.s();!(Dt=wt.n()).done;){var xt=Dt.value;xt>65535&&(ut.push(Ut((xt-=65536)>>>10&1023|55296)),xt=56320|1023&xt),ut.push(Ut(xt))}}catch(Yt){wt.e(Yt)}finally{wt.f()}fA.push("<".concat(ut.join(" "),">"))}}catch(Yt){pA.e(Yt)}finally{pA.f()}return Z.end("/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n /Registry (Adobe)\n /Ordering (UCS)\n /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000>\nendcodespacerange\n1 beginbfrange\n<0000> <".concat(Ut(fA.length-1),"> [").concat(fA.join(" "),"]\nendbfrange\nendcmap\nCMapName currentdict /CMap defineresource pop\nend\nend")),Z}}]),S}(ZA),Wt=function(){function IA(){f(this,IA)}return w(IA,null,[{key:"open",value:function(S,X,Z,fA){var pA;if("string"==typeof X){if(Tt.isStandardFont(X))return new Tt(S,X,fA);X=e.readFileSync(X)}if(r.isBuffer(X)?pA=o.default.create(X,Z):X instanceof Uint8Array?pA=o.default.create(r.from(X),Z):X instanceof ArrayBuffer&&(pA=o.default.create(r.from(new Uint8Array(X)),Z)),null==pA)throw new Error("Not a supported font format or standard PDF font.");return new kt(S,pA,fA)}}]),IA}(),te={initFonts:function(){var H=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Helvetica";this._fontFamilies={},this._fontCount=0,this._fontSize=12,this._font=null,this._registeredFonts={},H&&this.font(H)},font:function(H,S,X){var Z,fA;if("number"==typeof S&&(X=S,S=null),"string"==typeof H&&this._registeredFonts[H]){Z=H;var pA=this._registeredFonts[H];H=pA.src,S=pA.family}else"string"!=typeof(Z=S||H)&&(Z=null);if(null!=X&&this.fontSize(X),fA=this._fontFamilies[Z])return this._font=fA,this;var $A="F".concat(++this._fontCount);return this._font=Wt.open(this,H,S,$A),(fA=this._fontFamilies[this._font.name])?(this._font=fA,this):(Z&&(this._fontFamilies[Z]=this._font),this._font.name&&(this._fontFamilies[this._font.name]=this._font),this)},fontSize:function(H){return this._fontSize=H,this},currentLineHeight:function(H){return null==H&&(H=!1),this._font.lineHeight(this._fontSize,H)},registerFont:function(H,S,X){return this._registeredFonts[H]={src:S,family:X},this}},Et=function(IA){m(S,IA);var H=x(S);function S(X,Z){var fA;return f(this,S),(fA=H.call(this)).document=X,fA.indent=Z.indent||0,fA.characterSpacing=Z.characterSpacing||0,fA.wordSpacing=0===Z.wordSpacing,fA.columns=Z.columns||1,fA.columnGap=null!=Z.columnGap?Z.columnGap:18,fA.lineWidth=(Z.width-fA.columnGap*(fA.columns-1))/fA.columns,fA.spaceLeft=fA.lineWidth,fA.startX=fA.document.x,fA.startY=fA.document.y,fA.column=1,fA.ellipsis=Z.ellipsis,fA.continuedX=0,fA.features=Z.features,null!=Z.height?(fA.height=Z.height,fA.maxY=fA.startY+Z.height):fA.maxY=fA.document.page.maxY(),fA.on("firstLine",function(pA){var $A=fA.continuedX||fA.indent;return fA.document.x+=$A,fA.lineWidth-=$A,fA.once("line",function(){if(fA.document.x-=$A,fA.lineWidth+=$A,pA.continued&&!fA.continuedX&&(fA.continuedX=fA.indent),!pA.continued)return fA.continuedX=0})}),fA.on("lastLine",function(pA){var $A=pA.align;return"justify"===$A&&(pA.align="left"),fA.lastLine=!0,fA.once("line",function(){return fA.document.y+=pA.paragraphGap||0,pA.align=$A,fA.lastLine=!1})}),fA}return w(S,[{key:"wordWidth",value:function(Z){return this.document.widthOfString(Z,this)+this.characterSpacing+this.wordSpacing}},{key:"eachWord",value:function(Z,fA){for(var pA,$A=new h.default(Z),rt=null,ut=Object.create(null);pA=$A.nextBreak();){var wt,Dt=Z.slice((null!=rt?rt.position:void 0)||0,pA.position),xt=null!=ut[Dt]?ut[Dt]:ut[Dt]=this.wordWidth(Dt);if(xt>this.lineWidth+this.continuedX)for(var Yt=rt,Ot={};Dt.length;){var Zt,ue;xt>this.spaceLeft?(Zt=Math.ceil(this.spaceLeft/(xt/Dt.length)),ue=(xt=this.wordWidth(Dt.slice(0,Zt)))<=this.spaceLeft&&Ztthis.spaceLeft&&Zt>0;Ee||ue;)Ee?Ee=(xt=this.wordWidth(Dt.slice(0,--Zt)))>this.spaceLeft&&Zt>0:(Ee=(xt=this.wordWidth(Dt.slice(0,++Zt)))>this.spaceLeft&&Zt>0,ue=xt<=this.spaceLeft&&Ztthis.maxY||$A>this.maxY)&&this.nextSection();var rt="",ut=0,wt=0,Dt=0,xt=this.document.y,Yt=function(){return fA.textWidth=ut+pA.wordSpacing*(wt-1),fA.wordCount=wt,fA.lineWidth=pA.lineWidth,xt=pA.document.y,pA.emit("line",rt,fA,pA),Dt++};return this.emit("sectionStart",fA,this),this.eachWord(Z,function(Ot,Zt,ue,Ee){if((null==Ee||Ee.required)&&(pA.emit("firstLine",fA,pA),pA.spaceLeft=pA.lineWidth),Zt<=pA.spaceLeft&&(rt+=Ot,ut+=Zt,wt++),ue.required||Zt>pA.spaceLeft){var Me=pA.document.currentLineHeight(!0);if(null!=pA.height&&pA.ellipsis&&pA.document.y+2*Me>pA.maxY&&pA.column>=pA.columns){for(!0===pA.ellipsis&&(pA.ellipsis="\u2026"),rt=rt.replace(/\s+$/,""),ut=pA.wordWidth(rt+pA.ellipsis);rt&&ut>pA.lineWidth;)rt=rt.slice(0,-1).replace(/\s+$/,""),ut=pA.wordWidth(rt+pA.ellipsis);ut<=pA.lineWidth&&(rt+=pA.ellipsis),ut=pA.wordWidth(rt)}return ue.required&&(Zt>pA.spaceLeft&&(Yt(),rt=Ot,ut=Zt,wt=1),pA.emit("lastLine",fA,pA)),Yt(),pA.document.y+Me>pA.maxY&&!pA.nextSection()?(wt=0,rt="",!1):ue.required?(pA.spaceLeft=pA.lineWidth,rt="",ut=0,wt=0):(pA.spaceLeft=pA.lineWidth-Zt,rt=Ot,ut=Zt,wt=1)}return pA.spaceLeft-=Zt}),wt>0&&(this.emit("lastLine",fA,this),Yt()),this.emit("sectionEnd",fA,this),!0===fA.continued?(Dt>1&&(this.continuedX=0),this.continuedX+=fA.textWidth||0,this.document.y=xt):this.document.x=this.startX}},{key:"nextSection",value:function(Z){if(this.emit("sectionEnd",Z,this),++this.column>this.columns){if(null!=this.height)return!1;var fA;this.document.continueOnNewPage(),this.column=1,this.startY=this.document.page.margins.top,this.maxY=this.document.page.maxY(),this.document.x=this.startX,this.document._fillColor&&(fA=this.document).fillColor.apply(fA,N(this.document._fillColor)),this.emit("pageBreak",Z,this)}else this.document.x+=this.lineWidth+this.columnGap,this.document.y=this.startY,this.emit("columnBreak",Z,this);return this.emit("sectionStart",Z,this),!0}}]),S}(l.EventEmitter),zt=GA.number,jt={initText:function(){return this._line=this._line.bind(this),this.x=0,this.y=0,this._lineGap=0},lineGap:function(H){return this._lineGap=H,this},moveDown:function(H){return null==H&&(H=1),this.y+=this.currentLineHeight(!0)*H+this._lineGap,this},moveUp:function(H){return null==H&&(H=1),this.y-=this.currentLineHeight(!0)*H+this._lineGap,this},_text:function(H,S,X,Z,fA){var pA=this;Z=this._initOptions(S,X,Z),H=null==H?"":"".concat(H),Z.wordSpacing&&(H=H.replace(/\s{2,}/g," "));var $A=function(){Z.structParent&&Z.structParent.add(pA.struct(Z.structType||"P",[pA.markStructureContent(Z.structType||"P")]))};if(Z.width){var rt=this._wrapper;rt||((rt=new Et(this,Z)).on("line",fA),rt.on("firstLine",$A)),this._wrapper=Z.continued?rt:null,this._textOptions=Z.continued?Z:null,rt.wrap(H,Z)}else{var wt,ut=vA(H.split("\n"));try{for(ut.s();!(wt=ut.n()).done;){var Dt=wt.value;$A(),fA(Dt,Z)}}catch(xt){ut.e(xt)}finally{ut.f()}}return this},text:function(H,S,X,Z){return this._text(H,S,X,Z,this._line)},widthOfString:function(H){var S=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._font.widthOfString(H,this._fontSize,S.features)+(S.characterSpacing||0)*(H.length-1)},heightOfString:function(H,S){var X=this,Z=this.x,fA=this.y;(S=this._initOptions(S)).height=1/0;var pA=S.lineGap||this._lineGap||0;this._text(H,this.x,this.y,S,function(){return X.y+=X.currentLineHeight(!0)+pA});var $A=this.y-fA;return this.x=Z,this.y=fA,$A},list:function(H,S,X,Z,fA){var pA=this,$A=(Z=this._initOptions(S,X,Z)).listType||"bullet",rt=Math.round(this._font.ascender/1e3*this._fontSize),ut=rt/2,wt=Z.bulletRadius||rt/3,Dt=Z.textIndent||("bullet"===$A?5*wt:2*rt),xt=Z.bulletIndent||("bullet"===$A?8*wt:2*rt),Yt=1,Ot=[],Zt=[],ue=[];!function Qe(je){for(var wn=1,Ze=0;Ze0&&void 0!==arguments[0]?arguments[0]:{},S=arguments.length>1?arguments[1]:void 0,X=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"object"==typeof H&&(X=H,H=null);var Z=Object.assign({},X);if(this._textOptions)for(var fA in this._textOptions)"continued"!==fA&&void 0===Z[fA]&&(Z[fA]=this._textOptions[fA]);return null!=H&&(this.x=H),null!=S&&(this.y=S),!1!==Z.lineBreak&&(null==Z.width&&(Z.width=this.page.width-this.x-this.page.margins.right),Z.width=Math.max(Z.width,0)),Z.columns||(Z.columns=0),null==Z.columnGap&&(Z.columnGap=18),Z},_line:function(H){var S=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},X=arguments.length>2?arguments[2]:void 0;this._fragment(H,this.x,this.y,S);var Z=S.lineGap||this._lineGap||0;return X?this.y+=this.currentLineHeight(!0)+Z:this.x+=this.widthOfString(H)},_fragment:function(H,S,X,Z){var pA,$A,rt,ut,wt,Dt,fA=this;if(0!==(H="".concat(H).replace(/\n/g,"")).length){var Yt=Z.wordSpacing||0,Ot=Z.characterSpacing||0;if(Z.width)switch(Z.align||"left"){case"right":wt=this.widthOfString(H.replace(/\s+$/,""),Z),S+=Z.lineWidth-wt;break;case"center":S+=Z.lineWidth/2-Z.textWidth/2;break;case"justify":Dt=H.trim().split(/\s+/),wt=this.widthOfString(H.replace(/\s+/g,""),Z);var Zt=this.widthOfString(" ")+Ot;Yt=Math.max(0,(Z.lineWidth-wt)/Math.max(1,Dt.length-1)-Zt)}if("number"==typeof Z.baseline)pA=-Z.baseline;else{switch(Z.baseline){case"svg-middle":pA=.5*this._font.xHeight;break;case"middle":case"svg-central":pA=.5*(this._font.descender+this._font.ascender);break;case"bottom":case"ideographic":pA=this._font.descender;break;case"alphabetic":pA=0;break;case"mathematical":pA=.5*this._font.ascender;break;case"hanging":pA=.8*this._font.ascender;break;default:pA=this._font.ascender}pA=pA/1e3*this._fontSize}var je,ue=Z.textWidth+Yt*(Z.wordCount-1)+Ot*(H.length-1);if(null!=Z.link&&this.link(S,X,ue,this.currentLineHeight(),Z.link),null!=Z.goTo&&this.goTo(S,X,ue,this.currentLineHeight(),Z.goTo),null!=Z.destination&&this.addNamedDestination(Z.destination,"XYZ",S,X,null),Z.underline){this.save(),Z.stroke||this.strokeColor.apply(this,N(this._fillColor||[]));var Ee=this._fontSize<10?.5:Math.floor(this._fontSize/10);this.lineWidth(Ee);var Me=X+this.currentLineHeight()-Ee;this.moveTo(S,Me),this.lineTo(S+ue,Me),this.stroke(),this.restore()}if(Z.strike){this.save(),Z.stroke||this.strokeColor.apply(this,N(this._fillColor||[]));var en=this._fontSize<10?.5:Math.floor(this._fontSize/10);this.lineWidth(en);var Qe=X+this.currentLineHeight()/2;this.moveTo(S,Qe),this.lineTo(S+ue,Qe),this.stroke(),this.restore()}this.save(),Z.oblique&&(je="number"==typeof Z.oblique?-Math.tan(Z.oblique*Math.PI/180):-.25,this.transform(1,0,0,1,S,X),this.transform(1,0,je,1,-je*pA,0),this.transform(1,0,0,1,-S,-X)),this.transform(1,0,0,-1,0,this.page.height),X=this.page.height-X-pA,null==this.page.fonts[this._font.id]&&(this.page.fonts[this._font.id]=this._font.ref()),this.addContent("BT"),this.addContent("1 0 0 1 ".concat(zt(S)," ").concat(zt(X)," Tm")),this.addContent("/".concat(this._font.id," ").concat(zt(this._fontSize)," Tf"));var wn=Z.fill&&Z.stroke?2:Z.stroke?1:0;if(wn&&this.addContent("".concat(wn," Tr")),Ot&&this.addContent("".concat(zt(Ot)," Tc")),Yt){Dt=H.trim().split(/\s+/),Yt+=this.widthOfString(" ")+Ot,Yt*=1e3/this._fontSize,$A=[],ut=[];var Cn,Ze=vA(Dt);try{for(Ze.s();!(Cn=Ze.n()).done;){var Un=R(this._font.encode(Cn.value,Z.features),2),On=Un[1];$A=$A.concat(Un[0]),ut=ut.concat(On);var ir={},Mr=ut[ut.length-1];for(var Ar in Mr)ir[Ar]=Mr[Ar];ir.xAdvance+=Yt,ut[ut.length-1]=ir}}catch(Sr){Ze.e(Sr)}finally{Ze.f()}}else{var Vn=R(this._font.encode(H,Z.features),2);$A=Vn[0],ut=Vn[1]}var Hr=this._fontSize/1e3,dr=[],Jr=0,Or=!1,gi=function(Xn){if(Jr ").concat(zt(-Pi)))}return Jr=Xn},kr=function(Xn){if(gi(Xn),dr.length>0)return fA.addContent("[".concat(dr.join(" "),"] TJ")),dr.length=0};for(rt=0;rt3&&void 0!==arguments[3]?arguments[3]:{};"object"==typeof S&&(Z=S,S=null),S=null!=(wt=null!=S?S:Z.x)?wt:this.x,X=null!=(Dt=null!=X?X:Z.y)?Dt:this.y,"string"==typeof H&&(rt=this._imageRegistry[H]),rt||(rt=H.width&&H.height?H:this.openImage(H)),rt.obj||rt.embed(this),null==this.page.xobjects[rt.label]&&(this.page.xobjects[rt.label]=rt.obj);var xt=Z.width||rt.width,Yt=Z.height||rt.height;if(Z.width&&!Z.height){var Ot=xt/rt.width;xt=rt.width*Ot,Yt=rt.height*Ot}else if(Z.height&&!Z.width){var Zt=Yt/rt.height;xt=rt.width*Zt,Yt=rt.height*Zt}else if(Z.scale)xt=rt.width*Z.scale,Yt=rt.height*Z.scale;else if(Z.fit){var ue=R(Z.fit,2);(ut=rt.width/rt.height)>($A=ue[0])/(fA=ue[1])?(xt=$A,Yt=$A/ut):(Yt=fA,xt=fA*ut)}else if(Z.cover){var Ee=R(Z.cover,2);(ut=rt.width/rt.height)>($A=Ee[0])/(fA=Ee[1])?(Yt=fA,xt=fA*ut):(xt=$A,Yt=$A/ut)}return(Z.fit||Z.cover)&&("center"===Z.align?S=S+$A/2-xt/2:"right"===Z.align&&(S=S+$A-xt),"center"===Z.valign?X=X+fA/2-Yt/2:"bottom"===Z.valign&&(X=X+fA-Yt)),null!=Z.link&&this.link(S,X,xt,Yt,Z.link),null!=Z.goTo&&this.goTo(S,X,xt,Yt,Z.goTo),null!=Z.destination&&this.addNamedDestination(Z.destination,"XYZ",S,X,null),this.y===X&&(this.y+=Yt),this.save(),this.transform(xt,0,0,-Yt,S,X+Yt),this.addContent("/".concat(rt.label," Do")),this.restore(),this},openImage:function(H){var S;return"string"==typeof H&&(S=this._imageRegistry[H]),S||(S=ge.open(H,"I".concat(++this._imageCount)),"string"==typeof H&&(this._imageRegistry[H]=S)),S}},Le={annotate:function(H,S,X,Z,fA){for(var pA in fA.Type="Annot",fA.Rect=this._convertRect(H,S,X,Z),fA.Border=[0,0,0],"Link"===fA.Subtype&&void 0===fA.F&&(fA.F=4),"Link"!==fA.Subtype&&null==fA.C&&(fA.C=this._normalizeColor(fA.color||[0,0,0])),delete fA.color,"string"==typeof fA.Dest&&(fA.Dest=new String(fA.Dest)),fA){var $A=fA[pA];fA[pA[0].toUpperCase()+pA.slice(1)]=$A}var rt=this.ref(fA);return this.page.annotations.push(rt),rt.end(),this},note:function(H,S,X,Z,fA){var pA=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return pA.Subtype="Text",pA.Contents=new String(fA),pA.Name="Comment",null==pA.color&&(pA.color=[243,223,92]),this.annotate(H,S,X,Z,pA)},goTo:function(H,S,X,Z,fA){var pA=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return pA.Subtype="Link",pA.A=this.ref({S:"GoTo",D:new String(fA)}),pA.A.end(),this.annotate(H,S,X,Z,pA)},link:function(H,S,X,Z,fA){var pA=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(pA.Subtype="Link","number"==typeof fA){var $A=this._root.data.Pages.data;if(!(fA>=0&&fA<$A.Kids.length))throw new Error("The document has no page ".concat(fA));pA.A=this.ref({S:"GoTo",D:[$A.Kids[fA],"XYZ",null,null,null]}),pA.A.end()}else pA.A=this.ref({S:"URI",URI:new String(fA)}),pA.A.end();return this.annotate(H,S,X,Z,pA)},_markup:function(H,S,X,Z){var fA=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},$A=R(this._convertRect(H,S,X,Z),4),rt=$A[0],ut=$A[1],wt=$A[2],Dt=$A[3];return fA.QuadPoints=[rt,Dt,wt,Dt,rt,ut,wt,ut],fA.Contents=new String,this.annotate(H,S,X,Z,fA)},highlight:function(H,S,X,Z){var fA=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return fA.Subtype="Highlight",null==fA.color&&(fA.color=[241,238,148]),this._markup(H,S,X,Z,fA)},underline:function(H,S,X,Z){var fA=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return fA.Subtype="Underline",this._markup(H,S,X,Z,fA)},strike:function(H,S,X,Z){var fA=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return fA.Subtype="StrikeOut",this._markup(H,S,X,Z,fA)},lineAnnotation:function(H,S,X,Z){var fA=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return fA.Subtype="Line",fA.Contents=new String,fA.L=[H,this.page.height-S,X,this.page.height-Z],this.annotate(H,S,X,Z,fA)},rectAnnotation:function(H,S,X,Z){var fA=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return fA.Subtype="Square",fA.Contents=new String,this.annotate(H,S,X,Z,fA)},ellipseAnnotation:function(H,S,X,Z){var fA=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return fA.Subtype="Circle",fA.Contents=new String,this.annotate(H,S,X,Z,fA)},textAnnotation:function(H,S,X,Z,fA){var pA=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return pA.Subtype="FreeText",pA.Contents=new String(fA),pA.DA=new String,this.annotate(H,S,X,Z,pA)},fileAnnotation:function(H,S,X,Z){var fA=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},pA=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},$A=this.file(fA.src,Object.assign({hidden:!0},fA));return pA.Subtype="FileAttachment",pA.FS=$A,pA.Contents?pA.Contents=new String(pA.Contents):$A.data.Desc&&(pA.Contents=$A.data.Desc),this.annotate(H,S,X,Z,pA)},_convertRect:function(H,S,X,Z){var fA=S;S+=Z;var pA=H+X,$A=R(this._ctm,6),rt=$A[0],ut=$A[1],wt=$A[2],Dt=$A[3],xt=$A[4],Yt=$A[5];return[H=rt*H+wt*S+xt,S=ut*H+Dt*S+Yt,pA=rt*pA+wt*fA+xt,fA=ut*pA+Dt*fA+Yt]}},Ue=function(){function IA(H,S,X,Z){var fA=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{expanded:!1};f(this,IA),this.document=H,this.options=fA,this.outlineData={},null!==Z&&(this.outlineData.Dest=[Z.dictionary,"Fit"]),null!==S&&(this.outlineData.Parent=S),null!==X&&(this.outlineData.Title=new String(X)),this.dictionary=this.document.ref(this.outlineData),this.children=[]}return w(IA,[{key:"addItem",value:function(S){var Z=new IA(this.document,this.dictionary,S,this.document.page,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{expanded:!1});return this.children.push(Z),Z}},{key:"endOutline",value:function(){if(this.children.length>0){this.options.expanded&&(this.outlineData.Count=this.children.length);var X=this.children[this.children.length-1];this.outlineData.First=this.children[0].dictionary,this.outlineData.Last=X.dictionary;for(var Z=0,fA=this.children.length;Z0&&(pA.outlineData.Prev=this.children[Z-1].dictionary),Z0)return this._root.data.Outlines=this.outline.dictionary,this._root.data.PageMode="UseOutlines"}},Te=function(){function IA(H,S){f(this,IA),this.refs=[{pageRef:H,mcid:S}]}return w(IA,[{key:"push",value:function(S){var X=this;S.refs.forEach(function(Z){return X.refs.push(Z)})}}]),IA}(),ke=function(){function IA(H,S){var X=this,Z=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},fA=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;f(this,IA),this.document=H,this._attached=!1,this._ended=!1,this._flushed=!1,this.dictionary=H.ref({S});var pA=this.dictionary.data;(Array.isArray(Z)||this._isValidChild(Z))&&(fA=Z,Z={}),void 0!==Z.title&&(pA.T=new String(Z.title)),void 0!==Z.lang&&(pA.Lang=new String(Z.lang)),void 0!==Z.alt&&(pA.Alt=new String(Z.alt)),void 0!==Z.expanded&&(pA.E=new String(Z.expanded)),void 0!==Z.actual&&(pA.ActualText=new String(Z.actual)),this._children=[],fA&&(Array.isArray(fA)||(fA=[fA]),fA.forEach(function($A){return X.add($A)}),this.end())}return w(IA,[{key:"add",value:function(S){if(this._ended)throw new Error("Cannot add child to already-ended structure element");if(!this._isValidChild(S))throw new Error("Invalid structure element child");return S instanceof IA&&(S.setParent(this.dictionary),this._attached&&S.setAttached()),S instanceof Te&&this._addContentToParentTree(S),"function"==typeof S&&this._attached&&(S=this._contentForClosure(S)),this._children.push(S),this}},{key:"_addContentToParentTree",value:function(S){var X=this;S.refs.forEach(function(Z){var fA=Z.pageRef,pA=Z.mcid;X.document.getStructParentTree().get(fA.data.StructParents)[pA]=X.dictionary})}},{key:"setParent",value:function(S){if(this.dictionary.data.P)throw new Error("Structure element added to more than one parent");this.dictionary.data.P=S,this._flush()}},{key:"setAttached",value:function(){var S=this;this._attached||(this._children.forEach(function(X,Z){X instanceof IA&&X.setAttached(),"function"==typeof X&&(S._children[Z]=S._contentForClosure(X))}),this._attached=!0,this._flush())}},{key:"end",value:function(){this._ended||(this._children.filter(function(S){return S instanceof IA}).forEach(function(S){return S.end()}),this._ended=!0,this._flush())}},{key:"_isValidChild",value:function(S){return S instanceof IA||S instanceof Te||"function"==typeof S}},{key:"_contentForClosure",value:function(S){var X=this.document.markStructureContent(this.dictionary.data.S);return S(),this.document.endMarkedContent(),this._addContentToParentTree(X),X}},{key:"_isFlushable",value:function(){return!(!this.dictionary.data.P||!this._ended)&&this._children.every(function(S){return"function"!=typeof S&&(!(S instanceof IA)||S._isFlushable())})}},{key:"_flush",value:function(){var S=this;this._flushed||!this._isFlushable()||(this.dictionary.data.K=[],this._children.forEach(function(X){return S._flushChild(X)}),this.dictionary.end(),this._children=[],this.dictionary.data.K=null,this._flushed=!0)}},{key:"_flushChild",value:function(S){var X=this;S instanceof IA&&this.dictionary.data.K.push(S.dictionary),S instanceof Te&&S.refs.forEach(function(Z){var fA=Z.pageRef,pA=Z.mcid;X.dictionary.data.Pg||(X.dictionary.data.Pg=fA),X.dictionary.data.K.push(X.dictionary.data.Pg===fA?pA:{Type:"MCR",Pg:fA,MCID:pA})})}}]),IA}(),xn=function(IA){m(S,IA);var H=x(S);function S(){return f(this,S),H.apply(this,arguments)}return w(S,[{key:"_compareKeys",value:function(Z,fA){return parseInt(Z)-parseInt(fA)}},{key:"_keysName",value:function(){return"Nums"}},{key:"_dataForKey",value:function(Z){return parseInt(Z)}}]),S}(_),rn={initMarkings:function(H){this.structChildren=[],H.tagged&&(this.getMarkInfoDictionary().data.Marked=!0,this.getStructTreeRoot())},markContent:function(H){var S=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if("Artifact"===H||S&&S.mcid){var X=0;for(this.page.markings.forEach(function(fA){(X||fA.structContent||"Artifact"===fA.tag)&&X++});X--;)this.endMarkedContent()}if(!S)return this.page.markings.push({tag:H}),this.addContent("/".concat(H," BMC")),this;this.page.markings.push({tag:H,options:S});var Z={};return void 0!==S.mcid&&(Z.MCID=S.mcid),"Artifact"===H&&("string"==typeof S.type&&(Z.Type=S.type),Array.isArray(S.bbox)&&(Z.BBox=[S.bbox[0],this.page.height-S.bbox[3],S.bbox[2],this.page.height-S.bbox[1]]),Array.isArray(S.attached)&&S.attached.every(function(fA){return"string"==typeof fA})&&(Z.Attached=S.attached)),"Span"===H&&(S.lang&&(Z.Lang=new String(S.lang)),S.alt&&(Z.Alt=new String(S.alt)),S.expanded&&(Z.E=new String(S.expanded)),S.actual&&(Z.ActualText=new String(S.actual))),this.addContent("/".concat(H," ").concat(GA.convert(Z)," BDC")),this},markStructureContent:function(H){var S=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},X=this.getStructParentTree().get(this.page.structParentTreeKey),Z=X.length;X.push(null),this.markContent(H,F(F({},S),{},{mcid:Z}));var fA=new Te(this.page.dictionary,Z);return this.page.markings.slice(-1)[0].structContent=fA,fA},endMarkedContent:function(){return this.page.markings.pop(),this.addContent("EMC"),this},struct:function(H){return new ke(this,H,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:null)},addStructure:function(H){var S=this.getStructTreeRoot();return H.setParent(S),H.setAttached(),this.structChildren.push(H),S.data.K||(S.data.K=[]),S.data.K.push(H.dictionary),this},initPageMarkings:function(H){var S=this;H.forEach(function(X){if(X.structContent){var Z=X.structContent,fA=S.markStructureContent(X.tag,X.options);Z.push(fA),S.page.markings.slice(-1)[0].structContent=Z}else S.markContent(X.tag,X.options)})},endPageMarkings:function(H){var S=H.markings;return S.forEach(function(){return H.write("EMC")}),H.markings=[],S},getMarkInfoDictionary:function(){return this._root.data.MarkInfo||(this._root.data.MarkInfo=this.ref({})),this._root.data.MarkInfo},getStructTreeRoot:function(){return this._root.data.StructTreeRoot||(this._root.data.StructTreeRoot=this.ref({Type:"StructTreeRoot",ParentTree:new xn,ParentTreeNextKey:0})),this._root.data.StructTreeRoot},getStructParentTree:function(){return this.getStructTreeRoot().data.ParentTree},createStructParentTreeNextKey:function(){this.getMarkInfoDictionary();var H=this.getStructTreeRoot(),S=H.data.ParentTreeNextKey++;return H.data.ParentTree.add(S,[]),S},endMarkings:function(){var H=this._root.data.StructTreeRoot;H&&(H.end(),this.structChildren.forEach(function(S){return S.end()})),this._root.data.MarkInfo&&this._root.data.MarkInfo.end()}},dn={readOnly:1,required:2,noExport:4,multiline:4096,password:8192,toggleToOffButton:16384,radioButton:32768,pushButton:65536,combo:131072,edit:262144,sort:524288,multiSelect:2097152,noSpell:4194304},Yn={left:0,center:1,right:2},an={value:"V",defaultValue:"DV"},En={zip:"0",zipPlus4:"1",zip4:"1",phone:"2",ssn:"3"},gn_number={nDec:0,sepComma:!1,negStyle:"MinusBlack",currency:"",currencyPrepend:!0},gn_percent={nDec:0,sepComma:!1},Tn={initForm:function(){if(!this._font)throw new Error("Must set a font before calling initForm method");this._acroform={fonts:{},defaultFont:this._font.name},this._acroform.fonts[this._font.id]=this._font.ref();var H={Fields:[],NeedAppearances:!0,DA:new String("/".concat(this._font.id," 0 Tf 0 g")),DR:{Font:{}}};H.DR.Font[this._font.id]=this._font.ref();var S=this.ref(H);return this._root.data.AcroForm=S,this},endAcroForm:function(){var H=this;if(this._root.data.AcroForm){if(!Object.keys(this._acroform.fonts).length&&!this._acroform.defaultFont)throw new Error("No fonts specified for PDF form");var S=this._root.data.AcroForm.data.DR.Font;Object.keys(this._acroform.fonts).forEach(function(X){S[X]=H._acroform.fonts[X]}),this._root.data.AcroForm.data.Fields.forEach(function(X){H._endChild(X)}),this._root.data.AcroForm.end()}return this},_endChild:function(H){var S=this;return Array.isArray(H.data.Kids)&&(H.data.Kids.forEach(function(X){S._endChild(X)}),H.end()),this},formField:function(H){var X=this._fieldDict(H,null,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),Z=this.ref(X);return this._addToParent(Z),Z},formAnnotation:function(H,S,X,Z,fA,pA){var rt=this._fieldDict(H,S,arguments.length>6&&void 0!==arguments[6]?arguments[6]:{});return rt.Subtype="Widget",void 0===rt.F&&(rt.F=4),this.annotate(X,Z,fA,pA,rt),this._addToParent(this.page.annotations[this.page.annotations.length-1])},formText:function(H,S,X,Z,fA){return this.formAnnotation(H,"text",S,X,Z,fA,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formPushButton:function(H,S,X,Z,fA){return this.formAnnotation(H,"pushButton",S,X,Z,fA,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formCombo:function(H,S,X,Z,fA){return this.formAnnotation(H,"combo",S,X,Z,fA,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formList:function(H,S,X,Z,fA){return this.formAnnotation(H,"list",S,X,Z,fA,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formRadioButton:function(H,S,X,Z,fA){return this.formAnnotation(H,"radioButton",S,X,Z,fA,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},formCheckbox:function(H,S,X,Z,fA){return this.formAnnotation(H,"checkbox",S,X,Z,fA,arguments.length>5&&void 0!==arguments[5]?arguments[5]:{})},_addToParent:function(H){var S=H.data.Parent;return S?(S.data.Kids||(S.data.Kids=[]),S.data.Kids.push(H)):this._root.data.AcroForm.data.Fields.push(H),this},_fieldDict:function(H,S){var X=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!this._acroform)throw new Error("Call document.initForms() method before adding form elements to document");var Z=Object.assign({},X);return null!==S&&(Z=this._resolveType(S,X)),Z=this._resolveFlags(Z),Z=this._resolveJustify(Z),Z=this._resolveFont(Z),Z=this._resolveStrings(Z),Z=this._resolveColors(Z),(Z=this._resolveFormat(Z)).T=new String(H),Z.parent&&(Z.Parent=Z.parent,delete Z.parent),Z},_resolveType:function(H,S){if("text"===H)S.FT="Tx";else if("pushButton"===H)S.FT="Btn",S.pushButton=!0;else if("radioButton"===H)S.FT="Btn",S.radioButton=!0;else if("checkbox"===H)S.FT="Btn";else if("combo"===H)S.FT="Ch",S.combo=!0;else{if("list"!==H)throw new Error("Invalid form annotation type '".concat(H,"'"));S.FT="Ch"}return S},_resolveFormat:function(H){var S=H.format;if(S&&S.type){var X,Z,fA="";if(void 0!==En[S.type])X="AFSpecial_Keystroke",Z="AFSpecial_Format",fA=En[S.type];else{var pA=S.type.charAt(0).toUpperCase()+S.type.slice(1);if(X="AF".concat(pA,"_Keystroke"),Z="AF".concat(pA,"_Format"),"date"===S.type)X+="Ex",fA=String(S.param);else if("time"===S.type)fA=String(S.param);else if("number"===S.type){var $A=Object.assign({},gn_number,S);fA=String([String($A.nDec),$A.sepComma?"0":"1",'"'+$A.negStyle+'"',"null",'"'+$A.currency+'"',String($A.currencyPrepend)].join(","))}else if("percent"===S.type){var rt=Object.assign({},gn_percent,S);fA=String([String(rt.nDec),rt.sepComma?"0":"1"].join(","))}}H.AA=H.AA?H.AA:{},H.AA.K={S:"JavaScript",JS:new String("".concat(X,"(").concat(fA,");"))},H.AA.F={S:"JavaScript",JS:new String("".concat(Z,"(").concat(fA,");"))}}return delete H.format,H},_resolveColors:function(H){var S=this._normalizeColor(H.backgroundColor);return S&&(H.MK||(H.MK={}),H.MK.BG=S),(S=this._normalizeColor(H.borderColor))&&(H.MK||(H.MK={}),H.MK.BC=S),delete H.backgroundColor,delete H.borderColor,H},_resolveFlags:function(H){var S=0;return Object.keys(H).forEach(function(X){dn[X]&&(S|=dn[X],delete H[X])}),0!==S&&(H.Ff=H.Ff?H.Ff:0,H.Ff|=S),H},_resolveJustify:function(H){var S=0;return void 0!==H.align&&("number"==typeof Yn[H.align]&&(S=Yn[H.align]),delete H.align),0!==S&&(H.Q=S),H},_resolveFont:function(H){if(null===this._acroform.fonts[this._font.id]&&(this._acroform.fonts[this._font.id]=this._font.ref()),this._acroform.defaultFont!==this._font.name){H.DR={Font:{}};var S=H.fontSize||0;H.DR.Font[this._font.id]=this._font.ref(),H.DA=new String("/".concat(this._font.id," ").concat(S," Tf 0 g"))}return H},_resolveStrings:function(H){var S=[];function X(Z){if(Array.isArray(Z))for(var fA=0;fA1&&void 0!==arguments[1]?arguments[1]:{};S.name=S.name||H;var Z,X={Type:"EmbeddedFile",Params:{}};if(!H)throw new Error("No src specified");if(r.isBuffer(H))Z=H;else if(H instanceof ArrayBuffer)Z=r.from(new Uint8Array(H));else{var fA;if(fA=/^data:(.*);base64,(.*)$/.exec(H))fA[1]&&(X.Subtype=fA[1].replace("/","#2F")),Z=r.from(fA[2],"base64");else{if(!(Z=e.readFileSync(H)))throw new Error("Could not read contents of file at filepath ".concat(H));var pA=e.statSync(H),rt=pA.ctime;X.Params.CreationDate=pA.birthtime,X.Params.ModDate=rt}}S.creationDate instanceof Date&&(X.Params.CreationDate=S.creationDate),S.modifiedDate instanceof Date&&(X.Params.ModDate=S.modifiedDate),S.type&&(X.Subtype=S.type.replace("/","#2F"));var wt,ut=E.default.MD5(E.default.lib.WordArray.create(new Uint8Array(Z)));X.Params.CheckSum=new String(ut),X.Params.Size=Z.byteLength,this._fileRegistry||(this._fileRegistry={});var Dt=this._fileRegistry[S.name];Dt&&Tr(X,Dt)?wt=Dt.ref:((wt=this.ref(X)).end(Z),this._fileRegistry[S.name]=F(F({},X),{},{ref:wt}));var xt={Type:"Filespec",F:new String(S.name),EF:{F:wt},UF:new String(S.name)};S.description&&(xt.Desc=new String(S.description));var Yt=this.ref(xt);return Yt.end(),S.hidden||this.addNamedEmbeddedFile(S.name,Yt),Yt}};function Tr(IA,H){return IA.Subtype===H.Subtype&&IA.Params.CheckSum.toString()===H.Params.CheckSum.toString()&&IA.Params.Size===H.Params.Size&&IA.Params.CreationDate===H.Params.CreationDate&&IA.Params.ModDate===H.Params.ModDate}var rr=function(IA){m(S,IA);var H=x(S);function S(){var X,Z=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch(f(this,S),(X=H.call(this,Z)).options=Z,Z.pdfVersion){case"1.4":X.version=1.4;break;case"1.5":X.version=1.5;break;case"1.6":X.version=1.6;break;case"1.7":case"1.7ext3":X.version=1.7;break;default:X.version=1.3}X.compress=null==X.options.compress||X.options.compress,X._pageBuffer=[],X._pageBufferStart=0,X._offsets=[],X._waiting=0,X._ended=!1,X._offset=0;var fA=X.ref({Type:"Pages",Count:0,Kids:[]}),pA=X.ref({Dests:new W});if(X._root=X.ref({Type:"Catalog",Pages:fA,Names:pA}),X.options.lang&&(X._root.data.Lang=new String(X.options.lang)),X.page=null,X.initColor(),X.initVector(),X.initFonts(Z.font),X.initText(),X.initImages(),X.initOutline(),X.initMarkings(Z),X.info={Producer:"PDFKit",Creator:"PDFKit",CreationDate:new Date},X.options.info)for(var $A in X.options.info)X.info[$A]=X.options.info[$A];return X.options.displayTitle&&(X._root.data.ViewerPreferences=X.ref({DisplayDocTitle:!0})),X._id=L.generateFileID(X.info),X._security=L.create(P(X),Z),X._write("%PDF-".concat(X.version)),X._write("%\xff\xff\xff\xff"),!1!==X.options.autoFirstPage&&X.addPage(),X}return w(S,[{key:"addPage",value:function(Z){null==Z&&(Z=this.options),this.options.bufferPages||this.flushPages(),this.page=new $(this,Z),this._pageBuffer.push(this.page);var fA=this._root.data.Pages.data;return fA.Kids.push(this.page.dictionary),fA.Count++,this.x=this.page.margins.left,this.y=this.page.margins.top,this._ctm=[1,0,0,1,0,0],this.transform(1,0,0,-1,0,this.page.height),this.emit("pageAdded"),this}},{key:"continueOnNewPage",value:function(Z){var fA=this.endPageMarkings(this.page);return this.addPage(Z),this.initPageMarkings(fA),this}},{key:"bufferedPageRange",value:function(){return{start:this._pageBufferStart,count:this._pageBuffer.length}}},{key:"switchToPage",value:function(Z){var fA;if(!(fA=this._pageBuffer[Z-this._pageBufferStart]))throw new Error("switchToPage(".concat(Z,") out of bounds, current buffer covers pages ").concat(this._pageBufferStart," to ").concat(this._pageBufferStart+this._pageBuffer.length-1));return this.page=fA}},{key:"flushPages",value:function(){var Z=this._pageBuffer;this._pageBuffer=[],this._pageBufferStart+=Z.length;var pA,fA=vA(Z);try{for(fA.s();!(pA=fA.n()).done;){var $A=pA.value;this.endPageMarkings($A),$A.end()}}catch(rt){fA.e(rt)}finally{fA.f()}}},{key:"addNamedDestination",value:function(Z){for(var fA=arguments.length,pA=new Array(fA>1?fA-1:0),$A=1;$A>R&AA]},getCombiningClass:function(DA){var rA=p.get(DA);return m.combiningClasses[rA>>N&gA]},getScript:function(DA){var rA=p.get(DA);return m.scripts[rA>>V&MA]},getEastAsianWidth:function(DA){var rA=p.get(DA);return m.eaw[rA>>10&cA]},getNumericValue:function(DA){var rA=p.get(DA),hA=1023&rA;if(0===hA)return null;if(hA<=50)return hA-1;if(hA<480)return((hA>>4)-12)/(1+(15&hA));if(hA<768){rA=(hA>>5)-14;for(var st=2+(31&hA);st>0;)rA*=10,st--;return rA}rA=(hA>>2)-191;for(var yA=1+(3&hA);yA>0;)rA*=60,yA--;return rA},isAlphabetic:uA,isDigit:CA,isPunctuation:TA,isLowerCase:GA,isUpperCase:VA,isTitleCase:q,isWhiteSpace:J,isBaseForm:$,isMark:W});I.default=Q},4781:function(Y,I,n){"use strict";n(7042),n(6992),n(1539),n(2472),n(2990),n(8927),n(3105),n(5035),n(4345),n(7174),n(2846),n(4731),n(7209),n(6319),n(8867),n(7789),n(3739),n(9368),n(4483),n(2056),n(3462),n(678),n(7462),n(3824),n(5021),n(2974),n(5016),n(9135);var c=n(311),a=n(1753).swap32LE;Y.exports=function(){function v(T){var x="function"==typeof T.readUInt32BE&&"function"==typeof T.slice;if(x||T instanceof Uint8Array){var R;if(x)this.highStart=T.readUInt32LE(0),this.errorValue=T.readUInt32LE(4),R=T.readUInt32LE(8),T=T.slice(12);else{var N=new DataView(T.buffer);this.highStart=N.getUint32(0,!0),this.errorValue=N.getUint32(4,!0),R=N.getUint32(8,!0),T=T.subarray(12)}T=c(T,new Uint8Array(R)),T=c(T,new Uint8Array(R)),a(T),this.data=new Uint32Array(T.buffer)}else{var V=T;this.data=V.data,this.highStart=V.highStart,this.errorValue=V.errorValue}}return v.prototype.get=function(x){return x<0||x>1114111?this.errorValue:x<55296||x>56319&&x<=65535?this.data[(this.data[x>>5]<<2)+(31&x)]:x<=65535?this.data[(this.data[2048+(x-55296>>5)]<<2)+(31&x)]:x>11)]+(x>>5&63)]<<2)+(31&x)]:this.data[this.data.length-4]},v}()},1753:function(Y,I,n){"use strict";n(6992),n(1539),n(2472),n(2990),n(8927),n(3105),n(5035),n(4345),n(7174),n(2846),n(4731),n(7209),n(6319),n(8867),n(7789),n(3739),n(9368),n(4483),n(2056),n(3462),n(678),n(7462),n(3824),n(5021),n(2974),n(5016),n(9135);var c=18===new Uint8Array(new Uint32Array([305419896]).buffer)[0],r=function(o,l,h){var u=o[l];o[l]=o[h],o[h]=u};Y.exports={swap32LE:function(o){c&&function(o){for(var l=o.length,h=0;h/)){for(;it=At();)ZA.childNodes.push(it),it.parentNode=ZA,ZA.textContent+=3===it.nodeType||4===it.nodeType?it.nodeValue:it.textContent;return(LA=tt.match(/^<\/([\w:.-]+)\s*>/,!0))?(LA[1]===ZA.nodeName||(ne('parseXml: tag not matching, opening "'+ZA.nodeName+'" & closing "'+LA[1]+'"'),bA=!0),ZA):(ne('parseXml: tag not matching, opening "'+ZA.nodeName+'" & not closing'),bA=!0,ZA)}if(tt.match(/^\/>/))return ZA;ne('parseXml: tag could not be parsed "'+ZA.nodeName+'"'),bA=!0}else{if(LA=tt.match(/^/))return new YA(null,8,LA,bA);if(LA=tt.match(/^<\?[\s\S]*?\?>/))return new YA(null,7,LA,bA);if(LA=tt.match(/^/))return new YA(null,10,LA,bA);if(LA=tt.match(/^/,!0))return new YA("#cdata-section",4,LA[1],bA);if(LA=tt.match(/^([^<]+)/,!0))return new YA("#text",3,AA(LA[1]),bA)}};NA=JA();)1!==NA.nodeType||PA?(1===NA.nodeType||3===NA.nodeType&&""!==NA.nodeValue.trim())&&ne("parseXml: data after document end has been discarded"):PA=NA;return tt.matchAll()&&ne("parseXml: parsing error"),PA}function AA(KA){return KA.replace(/&(?:#([0-9]+)|#[xX]([0-9A-Fa-f]+)|([0-9A-Za-z]+));/g,function(YA,tt,PA,NA){return tt?String.fromCharCode(parseInt(tt,10)):PA?String.fromCharCode(parseInt(PA,16)):NA&&C[NA]?String.fromCharCode(C[NA]):YA})}function gA(KA){var YA,tt;return KA=(KA||"").trim(),(YA=h[KA])?tt=[YA.slice(),1]:(YA=KA.match(/^rgba\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9.]+)\s*\)$/i))?(YA[1]=parseInt(YA[1]),YA[2]=parseInt(YA[2]),YA[3]=parseInt(YA[3]),YA[4]=parseFloat(YA[4]),YA[1]<256&&YA[2]<256&&YA[3]<256&&YA[4]<=1&&(tt=[YA.slice(1,4),YA[4]])):(YA=KA.match(/^rgb\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)$/i))?(YA[1]=parseInt(YA[1]),YA[2]=parseInt(YA[2]),YA[3]=parseInt(YA[3]),YA[1]<256&&YA[2]<256&&YA[3]<256&&(tt=[YA.slice(1,4),1])):(YA=KA.match(/^rgb\(\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/i))?(YA[1]=2.55*parseFloat(YA[1]),YA[2]=2.55*parseFloat(YA[2]),YA[3]=2.55*parseFloat(YA[3]),YA[1]<256&&YA[2]<256&&YA[3]<256&&(tt=[YA.slice(1,4),1])):(YA=KA.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i))?tt=[[parseInt(YA[1],16),parseInt(YA[2],16),parseInt(YA[3],16)],1]:(YA=KA.match(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i))&&(tt=[[17*parseInt(YA[1],16),17*parseInt(YA[2],16),17*parseInt(YA[3],16)],1]),tn?tn(tt,KA):tt}function MA(KA,YA,tt){var PA=KA[0].slice(),NA=KA[1]*YA;if(tt){for(var bA=0;bA=0;YA--)KA=cA(Gn[YA].savedMatrix,KA);return KA}function vA(){return(new WA).M(0,0).L(a.page.width,0).L(a.page.width,a.page.height).L(0,a.page.height).transform(xA(BA())).getBoundingBox()}function xA(KA){var YA=KA[0]*KA[3]-KA[1]*KA[2];return[KA[3]/YA,-KA[1]/YA,-KA[2]/YA,KA[0]/YA,(KA[2]*KA[5]-KA[3]*KA[4])/YA,(KA[1]*KA[4]-KA[0]*KA[5])/YA]}function _(KA){var YA=GA(KA[0]),tt=GA(KA[1]),PA=GA(KA[2]),NA=GA(KA[3]),bA=GA(KA[4]),JA=GA(KA[5]);if(TA(YA*NA-tt*PA,0))return[YA,tt,PA,NA,bA,JA]}function QA(KA){var YA=KA[2]||0,tt=KA[1]||0,PA=KA[0]||0;if(CA(YA,0)&&CA(tt,0))return[];if(CA(YA,0))return[-PA/tt];var NA=tt*tt-4*YA*PA;return TA(NA,0)&&NA>0?[(-tt+Math.sqrt(NA))/(2*YA),(-tt-Math.sqrt(NA))/(2*YA)]:CA(NA,0)?[-tt/(2*YA)]:[]}function uA(KA,YA){return(YA[0]||0)+(YA[1]||0)*KA+(YA[2]||0)*KA*KA+(YA[3]||0)*KA*KA*KA}function CA(KA,YA){return Math.abs(KA-YA)<1e-10}function TA(KA,YA){return Math.abs(KA-YA)>=1e-10}function GA(KA){return KA>-1e21&&KA<1e21?Math.round(1e6*KA)/1e6:0}function q(KA){for(var PA,YA=new lt((KA||"").trim()),tt=[1,0,0,1,0,0];PA=YA.match(/^([A-Za-z]+)\s*[(]([^(]+)[)]/,!0);){for(var NA=PA[1],bA=[],JA=new lt(PA[2].trim()),At=void 0;At=JA.matchNumber();)bA.push(Number(At)),JA.matchSeparator();if("matrix"===NA&&6===bA.length)tt=cA(tt,[bA[0],bA[1],bA[2],bA[3],bA[4],bA[5]]);else if("translate"===NA&&2===bA.length)tt=cA(tt,[1,0,0,1,bA[0],bA[1]]);else if("translate"===NA&&1===bA.length)tt=cA(tt,[1,0,0,1,bA[0],0]);else if("scale"===NA&&2===bA.length)tt=cA(tt,[bA[0],0,0,bA[1],0,0]);else if("scale"===NA&&1===bA.length)tt=cA(tt,[bA[0],0,0,bA[0],0,0]);else if("rotate"===NA&&3===bA.length){var LA=bA[0]*Math.PI/180;tt=cA(tt,[1,0,0,1,bA[1],bA[2]],[Math.cos(LA),Math.sin(LA),-Math.sin(LA),Math.cos(LA),0,0],[1,0,0,1,-bA[1],-bA[2]])}else if("rotate"===NA&&1===bA.length){var it=bA[0]*Math.PI/180;tt=cA(tt,[Math.cos(it),Math.sin(it),-Math.sin(it),Math.cos(it),0,0])}else if("skewX"===NA&&1===bA.length){var ZA=bA[0]*Math.PI/180;tt=cA(tt,[1,0,Math.tan(ZA),1,0,0])}else{if("skewY"!==NA||1!==bA.length)return;var Ct=bA[0]*Math.PI/180;tt=cA(tt,[1,Math.tan(Ct),0,1,0,0])}YA.matchSeparator()}if(!YA.matchAll())return tt}function J(KA,YA,tt,PA,NA,bA){var JA=(KA||"").trim().match(/^(none)$|^x(Min|Mid|Max)Y(Min|Mid|Max)(?:\s+(meet|slice))?$/)||[],At=JA[1]||JA[4]||"meet",ZA=YA/PA,Ct=tt/NA,Tt={Min:0,Mid:.5,Max:1}[JA[2]||"Mid"]-(bA||0),Ut={Min:0,Mid:.5,Max:1}[JA[3]||"Mid"]-(bA||0);return"slice"===At?Ct=ZA=Math.max(ZA,Ct):"meet"===At&&(Ct=ZA=Math.min(ZA,Ct)),[ZA,0,0,Ct,Tt*(YA-PA*ZA),Ut*(tt-NA*Ct)]}function $(KA){var YA=Object.create(null);KA=(KA||"").trim().split(/;/);for(var tt=0;ttBe&&(Ht=Be,Be=ce,ce=Ht),Vt>ge&&(Ht=ge,ge=Vt,Vt=Ht);for(var De=QA(Tt),Le=0;Le=0&&De[Le]<=1){var Ue=uA(De[Le],ZA);UeBe&&(Be=Ue)}for(var ye=QA(Ut),Te=0;Te=0&&ye[Te]<=1){var ke=uA(ye[Te],Ct);kege&&(ge=ke)}return[ce,Vt,Be,ge]},this.getPointAtLength=function(Ht){if(CA(Ht,0))return this.startPoint;if(CA(Ht,this.totalLength))return this.endPoint;if(!(Ht<0||Ht>this.totalLength))for(var ce=1;ce<=it;ce++){var Vt=kt[ce-1],Be=kt[ce];if(Vt<=Ht&&Ht<=Be){var ge=(ce-(Be-Ht)/(Be-Vt))/it,De=uA(ge,ZA),Le=uA(ge,Ct),Ue=uA(ge,Tt),ye=uA(ge,Ut);return[De,Le,Math.atan2(ye,Ue)]}}}},OA=function(YA,tt,PA,NA){this.totalLength=Math.sqrt((PA-YA)*(PA-YA)+(NA-tt)*(NA-tt)),this.startPoint=[YA,tt,Math.atan2(NA-tt,PA-YA)],this.endPoint=[PA,NA,Math.atan2(NA-tt,PA-YA)],this.getBoundingBox=function(){return[Math.min(this.startPoint[0],this.endPoint[0]),Math.min(this.startPoint[1],this.endPoint[1]),Math.max(this.startPoint[0],this.endPoint[0]),Math.max(this.startPoint[1],this.endPoint[1])]},this.getPointAtLength=function(bA){if(bA>=0&&bA<=this.totalLength){var JA=bA/this.totalLength||0;return[this.startPoint[0]+JA*(this.endPoint[0]-this.startPoint[0]),this.startPoint[1]+JA*(this.endPoint[1]-this.startPoint[1]),this.startPoint[2]]}}},WA=function KA(){this.pathCommands=[],this.pathSegments=[],this.startPoint=null,this.endPoint=null,this.totalLength=0;var bA,JA,At,YA=0,tt=0,PA=0,NA=0;this.move=function(LA,it){return YA=PA=LA,tt=NA=it,null},this.line=function(LA,it){var ZA=new OA(PA,NA,LA,it);return PA=LA,NA=it,ZA},this.curve=function(LA,it,ZA,Ct,Tt,Ut){var kt=new SA(PA,NA,LA,it,ZA,Ct,Tt,Ut);return PA=Tt,NA=Ut,kt},this.close=function(){var LA=new OA(PA,NA,YA,tt);return PA=YA,NA=tt,LA},this.addCommand=function(LA){this.pathCommands.push(LA);var it=this[LA[0]].apply(this,LA.slice(3));it&&(it.hasStart=LA[1],it.hasEnd=LA[2],this.startPoint=this.startPoint||it.startPoint,this.endPoint=it.endPoint,this.pathSegments.push(it),this.totalLength+=it.totalLength)},this.M=function(LA,it){return this.addCommand(["move",!0,!0,LA,it]),bA="M",this},this.m=function(LA,it){return this.M(PA+LA,NA+it)},this.Z=this.z=function(){return this.addCommand(["close",!0,!0]),bA="Z",this},this.L=function(LA,it){return this.addCommand(["line",!0,!0,LA,it]),bA="L",this},this.l=function(LA,it){return this.L(PA+LA,NA+it)},this.H=function(LA){return this.L(LA,NA)},this.h=function(LA){return this.L(PA+LA,NA)},this.V=function(LA){return this.L(PA,LA)},this.v=function(LA){return this.L(PA,NA+LA)},this.C=function(LA,it,ZA,Ct,Tt,Ut){return this.addCommand(["curve",!0,!0,LA,it,ZA,Ct,Tt,Ut]),bA="C",JA=ZA,At=Ct,this},this.c=function(LA,it,ZA,Ct,Tt,Ut){return this.C(PA+LA,NA+it,PA+ZA,NA+Ct,PA+Tt,NA+Ut)},this.S=function(LA,it,ZA,Ct){return this.C(PA+("C"===bA?PA-JA:0),NA+("C"===bA?NA-At:0),LA,it,ZA,Ct)},this.s=function(LA,it,ZA,Ct){return this.C(PA+("C"===bA?PA-JA:0),NA+("C"===bA?NA-At:0),PA+LA,NA+it,PA+ZA,NA+Ct)},this.Q=function(LA,it,ZA,Ct){return this.addCommand(["curve",!0,!0,PA+2/3*(LA-PA),NA+2/3*(it-NA),ZA+2/3*(LA-ZA),Ct+2/3*(it-Ct),ZA,Ct]),bA="Q",JA=LA,At=it,this},this.q=function(LA,it,ZA,Ct){return this.Q(PA+LA,NA+it,PA+ZA,NA+Ct)},this.T=function(LA,it){return this.Q(PA+("Q"===bA?PA-JA:0),NA+("Q"===bA?NA-At:0),LA,it)},this.t=function(LA,it){return this.Q(PA+("Q"===bA?PA-JA:0),NA+("Q"===bA?NA-At:0),PA+LA,NA+it)},this.A=function(LA,it,ZA,Ct,Tt,Ut,kt){if(CA(LA,0)||CA(it,0))this.addCommand(["line",!0,!0,Ut,kt]);else{ZA*=Math.PI/180,LA=Math.abs(LA),it=Math.abs(it),Ct=1*!!Ct,Tt=1*!!Tt;var Wt=Math.cos(ZA)*(PA-Ut)/2+Math.sin(ZA)*(NA-kt)/2,te=Math.cos(ZA)*(NA-kt)/2-Math.sin(ZA)*(PA-Ut)/2,Et=Wt*Wt/(LA*LA)+te*te/(it*it);Et>1&&(LA*=Math.sqrt(Et),it*=Math.sqrt(Et));var zt=Math.sqrt(Math.max(0,LA*LA*it*it-LA*LA*te*te-it*it*Wt*Wt)/(LA*LA*te*te+it*it*Wt*Wt)),jt=(Ct===Tt?-1:1)*zt*LA*te/it,Ht=(Ct===Tt?1:-1)*zt*it*Wt/LA,ce=Math.cos(ZA)*jt-Math.sin(ZA)*Ht+(PA+Ut)/2,Vt=Math.sin(ZA)*jt+Math.cos(ZA)*Ht+(NA+kt)/2,Be=Math.atan2((te-Ht)/it,(Wt-jt)/LA),ge=Math.atan2((-te-Ht)/it,(-Wt-jt)/LA);0===Tt&&ge-Be>0?ge-=2*Math.PI:1===Tt&&ge-Be<0&&(ge+=2*Math.PI);for(var De=Math.ceil(Math.abs(ge-Be)/(Math.PI/Ln)),Le=0;LeLA[2]&&(LA[2]=Ct[2]),Ct[1]LA[3]&&(LA[3]=Ct[3]);return LA[0]===1/0&&(LA[0]=0),LA[1]===1/0&&(LA[1]=0),LA[2]===-1/0&&(LA[2]=0),LA[3]===-1/0&&(LA[3]=0),LA},this.getPointAtLength=function(LA){if(LA>=0&&LA<=this.totalLength){for(var it,ZA=0;ZANA.selector.specificity||(YA[bA]=NA.css[bA],tt[bA]=NA.selector.specificity)}return YA}(YA),this.allowedChildren=[],this.attr=function(bA){if("function"==typeof YA.getAttribute)return YA.getAttribute(bA)},this.resolveUrl=function(bA){var KA,JA=(bA||"").match(/^\s*(?:url\("(.*)#(.*)"\)|url\('(.*)#(.*)'\)|url\((.*)#(.*)\)|(.*)#(.*))\s*$/)||[],At=JA[1]||JA[3]||JA[5]||JA[7],LA=JA[2]||JA[4]||JA[6]||JA[8];if(LA){if(!At){var it=s.getElementById(LA);if(it)return-1===this.stack.indexOf(it)?it:void ne('SVGtoPDF: loop of circular references for id "'+LA+'"')}if(qe){var ZA=Jt[At];if(!ZA){"object"==typeof(KA=ZA=qe(At))&&null!==KA&&"number"==typeof KA.length||(ZA=[ZA]);for(var Ct=0;Ct=0&&At[3]>=0?At:JA},this.getPercent=function(bA,JA){var At=this.attr(bA),LA=new lt((At||"").trim()),Ct=LA.matchNumber();return!Ct||(LA.match("%")&&(Ct*=.01),LA.matchAll())?JA:Math.max(0,Math.min(1,Ct))},this.chooseValue=function(bA){for(var JA=0;JA=0&&(LA=ZA);break;case"stroke-miterlimit":null!=(ZA=parseFloat(At))&&ZA>=1&&(LA=ZA);break;case"word-spacing":case"letter-spacing":LA=this.computeLength(At,this.getViewport());break;case"stroke-dashoffset":if(null!=(LA=this.computeLength(At,this.getViewport()))&&LA<0)for(var te=this.get("stroke-dasharray"),Et=0;Et0?JA:this.ref?this.ref.getChildren():[]},this.getPaint=function(JA,At,LA,it){var ZA="userSpaceOnUse"!==this.attr("patternUnits"),Ct="objectBoundingBox"===this.attr("patternContentUnits"),Tt=this.getLength("x",ZA?1:this.getParentVWidth(),0),Ut=this.getLength("y",ZA?1:this.getParentVHeight(),0),kt=this.getLength("width",ZA?1:this.getParentVWidth(),0),Wt=this.getLength("height",ZA?1:this.getParentVHeight(),0);Ct&&!ZA?(Tt=(Tt-JA[0])/(JA[2]-JA[0])||0,Ut=(Ut-JA[1])/(JA[3]-JA[1])||0,kt=kt/(JA[2]-JA[0])||0,Wt=Wt/(JA[3]-JA[1])||0):!Ct&&ZA&&(Tt=JA[0]+Tt*(JA[2]-JA[0]),Ut=JA[1]+Ut*(JA[3]-JA[1]),kt*=JA[2]-JA[0],Wt*=JA[3]-JA[1]);var te=this.getViewbox("viewBox",[0,0,kt,Wt]),zt=cA(J((this.attr("preserveAspectRatio")||"").trim(),kt,Wt,te[2],te[3],0),[1,0,0,1,-te[0],-te[1]]),jt=q(this.attr("patternTransform"));if(Ct&&(jt=cA([JA[2]-JA[0],0,0,JA[3]-JA[1],JA[0],JA[1]],jt)),(jt=_(jt=cA(jt,[1,0,0,1,Tt,Ut])))&&(zt=_(zt))&&(kt=GA(kt))&&(Wt=GA(Wt))){var Ht=w([0,0,kt,Wt]);return a.transform.apply(a,zt),this.drawChildren(LA,it),Q(Ht),[m(Ht,kt,Wt,jt),At]}return PA?[PA[0],PA[1]*At]:void 0},this.getVWidth=function(){var JA="userSpaceOnUse"!==this.attr("patternUnits"),At=this.getLength("width",JA?1:this.getParentVWidth(),0);return this.getViewbox("viewBox",[0,0,At,0])[2]},this.getVHeight=function(){var JA="userSpaceOnUse"!==this.attr("patternUnits"),At=this.getLength("height",JA?1:this.getParentVHeight(),0);return this.getViewbox("viewBox",[0,0,0,At])[3]}},RA=function KA(YA,tt,PA){zA.call(this,YA,tt),this.allowedChildren=["stop"],this.ref=function(){var JA=this.getUrl("href")||this.getUrl("xlink:href");if(JA&&JA.nodeName===YA.nodeName)return new KA(JA,tt,PA)}.call(this);var NA=this.attr;this.attr=function(JA){var At=NA.call(this,JA);return null!=At||"href"===JA||"xlink:href"===JA?At:this.ref?this.ref.attr(JA):null};var bA=this.getChildren;this.getChildren=function(){var JA=bA.call(this);return JA.length>0?JA:this.ref?this.ref.getChildren():[]},this.getPaint=function(JA,At,LA,it){var ZA=this.getChildren();if(0!==ZA.length){if(1===ZA.length){var Ct=ZA[0],Tt=Ct.get("stop-color");return"none"===Tt?void 0:MA(Tt,Ct.get("stop-opacity")*At,it)}var te,Et,zt,jt,Ht,ce,Ut="userSpaceOnUse"!==this.attr("gradientUnits"),kt=q(this.attr("gradientTransform")),Wt=this.attr("spreadMethod"),Vt=0,Be=0,ge=1;if(Ut&&(kt=cA([JA[2]-JA[0],0,0,JA[3]-JA[1],JA[0],JA[1]],kt)),kt=_(kt)){if("linearGradient"===this.name)Et=this.getLength("x1",Ut?1:this.getVWidth(),0),zt=this.getLength("x2",Ut?1:this.getVWidth(),Ut?1:this.getVWidth()),jt=this.getLength("y1",Ut?1:this.getVHeight(),0),Ht=this.getLength("y2",Ut?1:this.getVHeight(),0);else{zt=this.getLength("cx",Ut?1:this.getVWidth(),Ut?.5:.5*this.getVWidth()),Ht=this.getLength("cy",Ut?1:this.getVHeight(),Ut?.5:.5*this.getVHeight()),ce=this.getLength("r",Ut?1:this.getViewport(),Ut?.5:.5*this.getViewport()),Et=this.getLength("fx",Ut?1:this.getVWidth(),zt),jt=this.getLength("fy",Ut?1:this.getVHeight(),Ht),ce<0&&ne("SvgElemGradient: negative r value");var De=Math.sqrt(Math.pow(zt-Et,2)+Math.pow(Ht-jt,2)),Le=1;De>ce&&(Et=zt+(Et-zt)*(Le=ce/De),jt=Ht+(jt-Ht)*Le),ce=Math.max(ce,De*Le*1.000001)}if("reflect"===Wt||"repeat"===Wt){var Ue=xA(kt),ye=lA([JA[0],JA[1]],Ue),Te=lA([JA[2],JA[1]],Ue),ke=lA([JA[2],JA[3]],Ue),xn=lA([JA[0],JA[3]],Ue);"linearGradient"===this.name?(Vt=Math.max((ye[0]-zt)*(zt-Et)+(ye[1]-Ht)*(Ht-jt),(Te[0]-zt)*(zt-Et)+(Te[1]-Ht)*(Ht-jt),(ke[0]-zt)*(zt-Et)+(ke[1]-Ht)*(Ht-jt),(xn[0]-zt)*(zt-Et)+(xn[1]-Ht)*(Ht-jt))/(Math.pow(zt-Et,2)+Math.pow(Ht-jt,2)),Be=Math.max((ye[0]-Et)*(Et-zt)+(ye[1]-jt)*(jt-Ht),(Te[0]-Et)*(Et-zt)+(Te[1]-jt)*(jt-Ht),(ke[0]-Et)*(Et-zt)+(ke[1]-jt)*(jt-Ht),(xn[0]-Et)*(Et-zt)+(xn[1]-jt)*(jt-Ht))/(Math.pow(zt-Et,2)+Math.pow(Ht-jt,2))):Vt=Math.sqrt(Math.max(Math.pow(ye[0]-zt,2)+Math.pow(ye[1]-Ht,2),Math.pow(Te[0]-zt,2)+Math.pow(Te[1]-Ht,2),Math.pow(ke[0]-zt,2)+Math.pow(ke[1]-Ht,2),Math.pow(xn[0]-zt,2)+Math.pow(xn[1]-Ht,2)))/ce-1,Vt=Math.ceil(Vt+.5),ge=(Be=Math.ceil(Be+.5))+1+Vt}te="linearGradient"===this.name?a.linearGradient(Et-Be*(zt-Et),jt-Be*(Ht-jt),zt+Vt*(zt-Et),Ht+Vt*(Ht-jt)):a.radialGradient(Et,jt,0,zt,Ht,ce+Vt*ce);for(var rn=0;rn0&&te.stop((rn+0)/ge,gn[0],gn[1]),te.stop((rn+dn)/(Vt+Be+1),gn[0],gn[1]),an===ZA.length-1&&dn<1&&te.stop((rn+1)/ge,gn[0],gn[1])}return te.setTransform.apply(te,kt),[te,1]}return PA?[PA[0],PA[1]*At]:void 0}}},eA=function(YA,tt){ot.call(this,YA,tt),this.dashScale=1,this.getBoundingShape=function(){return this.shape},this.getTransformation=function(){return this.get("transform")},this.drawInDocument=function(PA,NA){if("hidden"!==this.get("visibility")&&this.shape){if(a.save(),this.transform(),this.clip(),PA)this.shape.insertInDocument(),R(u.white),a.fill(this.get("clip-rule"));else{var JA;this.mask()&&(JA=w(vA()));var At=this.shape.getSubPaths(),LA=this.getFill(PA,NA),it=this.getStroke(PA,NA),ZA=this.get("stroke-width"),Ct=this.get("stroke-linecap");if(LA||it){if(LA&&R(LA),it){for(var Tt=0;Tt0&&At[Tt].startPoint&&At[Tt].startPoint.length>1){var Ut=At[Tt].startPoint[0],kt=At[Tt].startPoint[1];R(it),"square"===Ct?a.rect(Ut-.5*ZA,kt-.5*ZA,ZA,ZA):"round"===Ct&&a.circle(Ut,kt,.5*ZA),a.fill()}var Wt=this.get("stroke-dasharray"),te=this.get("stroke-dashoffset");if(TA(this.dashScale,1)){for(var Et=0;Et0&&At[zt].insertInDocument();LA&&it?a.fillAndStroke(this.get("fill-rule")):LA?a.fill(this.get("fill-rule")):it&&a.stroke()}var jt=this.get("marker-start"),Ht=this.get("marker-mid"),ce=this.get("marker-end");if("none"!==jt||"none"!==Ht||"none"!==ce){var Vt=this.shape.getMarkers();if("none"!==jt&&new ct(jt,null).drawMarker(!1,NA,Vt[0],ZA),"none"!==Ht)for(var ge=1;ge0&&JA>0?At&&LA?(At=Math.min(At,.5*bA),LA=Math.min(LA,.5*JA),this.shape=(new WA).M(PA+At,NA).L(PA+bA-At,NA).A(At,LA,0,0,1,PA+bA,NA+LA).L(PA+bA,NA+JA-LA).A(At,LA,0,0,1,PA+bA-At,NA+JA).L(PA+At,NA+JA).A(At,LA,0,0,1,PA,NA+JA-LA).L(PA,NA+LA).A(At,LA,0,0,1,PA+At,NA).Z()):this.shape=(new WA).M(PA,NA).L(PA+bA,NA).L(PA+bA,NA+JA).L(PA,NA+JA).Z():this.shape=new WA},Ft=function(YA,tt){eA.call(this,YA,tt);var PA=this.getLength("cx",this.getVWidth(),0),NA=this.getLength("cy",this.getVHeight(),0),bA=this.getLength("r",this.getViewport(),0);this.shape=bA>0?(new WA).M(PA+bA,NA).A(bA,bA,0,0,1,PA-bA,NA).A(bA,bA,0,0,1,PA+bA,NA).Z():new WA},j=function(YA,tt){eA.call(this,YA,tt);var PA=this.getLength("cx",this.getVWidth(),0),NA=this.getLength("cy",this.getVHeight(),0),bA=this.getLength("rx",this.getVWidth(),0),JA=this.getLength("ry",this.getVHeight(),0);this.shape=bA>0&&JA>0?(new WA).M(PA+bA,NA).A(bA,JA,0,0,1,PA-bA,NA).A(bA,JA,0,0,1,PA+bA,NA).Z():new WA},XA=function(YA,tt){eA.call(this,YA,tt);var PA=this.getLength("x1",this.getVWidth(),0),NA=this.getLength("y1",this.getVHeight(),0),bA=this.getLength("x2",this.getVWidth(),0),JA=this.getLength("y2",this.getVHeight(),0);this.shape=(new WA).M(PA,NA).L(bA,JA)},et=function(YA,tt){eA.call(this,YA,tt);var PA=this.getNumberList("points");this.shape=new WA;for(var NA=0;NA0?PA:void 0,this.dashScale=void 0!==this.pathLength?this.shape.totalLength/this.pathLength:1},ct=function(YA,tt){It.call(this,YA,tt);var PA=this.getLength("markerWidth",this.getParentVWidth(),3),NA=this.getLength("markerHeight",this.getParentVHeight(),3),bA=this.getViewbox("viewBox",[0,0,PA,NA]);this.getVWidth=function(){return bA[2]},this.getVHeight=function(){return bA[3]},this.drawMarker=function(JA,At,LA,it){a.save();var ZA=this.attr("orient"),Ct=this.attr("markerUnits"),Tt="auto"===ZA?LA[2]:(parseFloat(ZA)||0)*Math.PI/180,Ut="userSpaceOnUse"===Ct?1:it;a.transform(Math.cos(Tt)*Ut,Math.sin(Tt)*Ut,-Math.sin(Tt)*Ut,Math.cos(Tt)*Ut,LA[0],LA[1]);var Et,kt=this.getLength("refX",this.getVWidth(),0),Wt=this.getLength("refY",this.getVHeight(),0),te=J(this.attr("preserveAspectRatio"),PA,NA,bA[2],bA[3],.5);"hidden"===this.get("overflow")&&a.rect(te[0]*(bA[0]+bA[2]/2-kt)-PA/2,te[3]*(bA[1]+bA[3]/2-Wt)-NA/2,PA,NA).clip(),a.transform.apply(a,te),a.translate(-kt,-Wt),this.get("opacity")<1&&!JA&&(Et=w(vA())),this.drawChildren(JA,At),Et&&(Q(Et),a.fillOpacity(this.get("opacity")),d(Et)),a.restore()}},bt=function(YA,tt){It.call(this,YA,tt),this.useMask=function(PA){var NA=w(vA());a.save(),"objectBoundingBox"===this.attr("clipPathUnits")&&a.transform(PA[2]-PA[0],0,0,PA[3]-PA[1],PA[0],PA[1]),this.clip(),this.drawChildren(!0,!1),a.restore(),Q(NA),F(NA,!0)}},yt=function(YA,tt){It.call(this,YA,tt),this.useMask=function(PA){var bA,JA,At,LA,NA=w(vA());a.save(),"userSpaceOnUse"===this.attr("maskUnits")?(bA=this.getLength("x",this.getVWidth(),-.1*(PA[2]-PA[0])+PA[0]),JA=this.getLength("y",this.getVHeight(),-.1*(PA[3]-PA[1])+PA[1]),At=this.getLength("width",this.getVWidth(),1.2*(PA[2]-PA[0])),LA=this.getLength("height",this.getVHeight(),1.2*(PA[3]-PA[1]))):(bA=this.getLength("x",this.getVWidth(),-.1)*(PA[2]-PA[0])+PA[0],JA=this.getLength("y",this.getVHeight(),-.1)*(PA[3]-PA[1])+PA[1],At=this.getLength("width",this.getVWidth(),1.2)*(PA[2]-PA[0]),LA=this.getLength("height",this.getVHeight(),1.2)*(PA[3]-PA[1])),a.rect(bA,JA,At,LA).clip(),"objectBoundingBox"===this.attr("maskContentUnits")&&a.transform(PA[2]-PA[0],0,0,PA[3]-PA[1],PA[0],PA[1]),this.clip(),this.drawChildren(!1,!0),a.restore(),Q(NA),F(NA,!0)}},Rt=function(YA,tt){ot.call(this,YA,tt),this.allowedChildren=["tspan","#text","#cdata-section","a"],this.isText=!0,this.getBoundingShape=function(){for(var PA=new WA,NA=0;NA Tj")}a.addContent("ET")}}}"line-through"===this.get("text-decoration")&&this.decorate(.05*this._font.size,.5*(HA(this._font.font,this._font.size)+nt(this._font.font,this._font.size)),PA,NA)},this.decorate=function(PA,NA,bA,JA){var At=this.getFill(bA,JA),LA=this.getStroke(bA,JA);At&&R(At),LA&&(N(LA),a.lineWidth(this.get("stroke-width")).miterLimit(this.get("stroke-miterlimit")).lineJoin(this.get("stroke-linejoin")).lineCap(this.get("stroke-linecap")).dash(this.get("stroke-dasharray"),{phase:this.get("stroke-dashoffset")}));for(var it=0,ZA=this._pos;it0?JA:this.pathObject.totalLength,this.pathScale=this.pathObject.totalLength/this.pathLength}else if((bA=this.getUrl("href")||this.getUrl("xlink:href"))&&"path"===bA.nodeName){var At=new jA(bA,this);this.pathObject=At.shape.clone().transform(At.get("transform")),this.pathLength=this.chooseValue(At.pathLength,this.pathObject.totalLength),this.pathScale=this.pathObject.totalLength/this.pathLength}},$t=function(YA,tt){Rt.call(this,YA,tt),this.allowedChildren=["textPath","tspan","#text","#cdata-section","a"],function(PA){var LA,it,NA="",bA=YA.textContent,JA=[],At=[],ZA=0,Ct=0;function Tt(){if(At.length)for(var Et=At[At.length-1],Ht={startltr:0,middleltr:.5,endltr:1,startrtl:1,middlertl:.5,endrtl:0}[LA+it]*(Et.x+Et.width-At[0].x)||0,ce=0;cejt||Be<0)Et._pos[Vt].hidden=!0;else{var ge=zt.getPointAtLength(Be*Ht);TA(Ht,1)&&(Et._pos[Vt].scale*=Ht,Et._pos[Vt].width*=Ht),Et._pos[Vt].x=ge[0]-.5*Et._pos[Vt].width*Math.cos(ge[2])-Et._pos[Vt].y*Math.sin(ge[2]),Et._pos[Vt].y=ge[1]-.5*Et._pos[Vt].width*Math.sin(ge[2])+Et._pos[Vt].y*Math.cos(ge[2]),Et._pos[Vt].rotate=ge[2]+Et._pos[Vt].rotate,Et._pos[Vt].continuous=!1}}else for(var De=0;De0&&ge<1/0)for(var De=0;De=2)for(var Le=(zt-(Be-Vt))/(Et.length-1),Ue=0;Ue0?d-4:d;for(v=0;v>16&255,m[p++]=w>>8&255,m[p++]=255&w;return 2===F&&(w=c[g.charCodeAt(v)]<<2|c[g.charCodeAt(v+1)]>>4,m[p++]=255&w),1===F&&(w=c[g.charCodeAt(v)]<<10|c[g.charCodeAt(v+1)]<<4|c[g.charCodeAt(v+2)]>>2,m[p++]=w>>8&255,m[p++]=255&w),m},I.fromByteArray=function(g){for(var w,Q=g.length,d=Q%3,F=[],m=16383,p=0,D=Q-d;pD?D:p+m));return 1===d?F.push(n[(w=g[Q-1])>>2]+n[w<<4&63]+"=="):2===d&&F.push(n[(w=(g[Q-2]<<8)+g[Q-1])>>10]+n[w>>4&63]+n[w<<2&63]+"="),F.join("")};for(var n=[],c=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,E=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var Q=g.indexOf("=");return-1===Q&&(Q=w),[Q,Q===w?0:4-Q%4]}function C(g){return n[g>>18&63]+n[g>>12&63]+n[g>>6&63]+n[63&g]}function e(g,w,Q){for(var F=[],m=w;m0},a.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{var s=this.buf_ptr_,E=this.input_.read(this.buf_,s,I);if(E<0)throw new Error("Unexpected end of input");if(E=8;)this.val_>>>=8,this.val_|=this.buf_[8191&this.pos_]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},a.prototype.readBits=function(s){32-this.bit_pos_>>this.bit_pos_&r[s];return this.bit_pos_+=s,E},Y.exports=a},7080:function(Y,I){I.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),I.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512])},6450:function(Y,I,n){var r=n(6154).g,a=n(6154).j,s=n(4181),E=n(5139),o=n(966).h,l=n(966).g,h=n(7080),u=n(8435),C=n(2973),D=1080,P=new Uint8Array([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),x=new Uint8Array([3,2,1,0,3,3,3,3,3,3,2,2,2,2,2,2]),R=new Int8Array([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),N=new Uint16Array([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]);function V($){var W;return 0===$.readBits(1)?16:(W=$.readBits(3))>0?17+W:(W=$.readBits(3))>0?8+W:17}function aA($){if($.readBits(1)){var W=$.readBits(3);return 0===W?1:$.readBits(W)+(1<1&&0===hA)throw new Error("Invalid size byte");W.meta_block_length|=hA<<8*rA}}else for(rA=0;rA4&&0===HA)throw new Error("Invalid size nibble");W.meta_block_length|=HA<<4*rA}return++W.meta_block_length,!W.input_end&&!W.is_metadata&&(W.is_uncompressed=$.readBits(1)),W}function MA($,W,EA){var rA;return EA.fillBitWindow(),(rA=$[W+=EA.val_>>>EA.bit_pos_&255].bits-8)>0&&(EA.bit_pos_+=8,W+=$[W].value,W+=EA.val_>>>EA.bit_pos_&(1<>=1,++yA;for(nt=0;nt0;++nt){var It,zA=P[nt],ot=0;DA.fillBitWindow(),DA.bit_pos_+=WA[ot+=DA.val_>>>DA.bit_pos_&15].bits,lt[zA]=It=WA[ot].value,0!==It&&(SA-=32>>It,++OA)}if(1!==OA&&0!==SA)throw new Error("[ReadHuffmanCode] invalid num_codes or space");!function($,W,EA,DA){for(var rA=0,hA=8,HA=0,nt=0,st=32768,yA=[],_A=0;_A<32;_A++)yA.push(new o(0,0));for(l(yA,0,5,$,18);rA0;){var lt,ft=0;if(DA.readMoreInput(),DA.fillBitWindow(),DA.bit_pos_+=yA[ft+=DA.val_>>>DA.bit_pos_&31].bits,(lt=255&yA[ft].value)<16)HA=0,EA[rA++]=lt,0!==lt&&(hA=lt,st-=32768>>lt);else{var OA,WA,SA=lt-14,zA=0;if(16===lt&&(zA=hA),nt!==zA&&(HA=0,nt=zA),OA=HA,HA>0&&(HA-=2,HA<<=SA),rA+(WA=(HA+=DA.readBits(SA)+3)-OA)>W)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var ot=0;ot>>5]),this.htrees=new Uint32Array(W)}function uA($,W){var hA,HA,EA={num_htrees:null,context_map:null},rA=0;W.readMoreInput();var nt=EA.num_htrees=aA(W)+1,st=EA.context_map=new Uint8Array($);if(nt<=1)return EA;for(W.readBits(1)&&(rA=W.readBits(4)+1),hA=[],HA=0;HA=$)throw new Error("[DecodeContextMap] i >= context_map_size");st[HA]=0,++HA}else st[HA]=yA-rA,++HA}return W.readBits(1)&&function($,W){var DA,EA=new Uint8Array(256);for(DA=0;DA<256;++DA)EA[DA]=DA;for(DA=0;DA=$&&(_A-=$),DA[EA]=_A,rA[nt+(1&hA[st])]=_A,++hA[st]}function TA($,W,EA,DA,rA,hA){var yA,HA=rA+1,nt=EA&rA,st=hA.pos_&s.IBUF_MASK;if(W<8||hA.bit_pos_+(W<<3)0;)hA.readMoreInput(),DA[nt++]=hA.readBits(8),nt===HA&&($.write(DA,HA),nt=0);else{if(hA.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;hA.bit_pos_<32;)DA[nt]=hA.val_>>>hA.bit_pos_,hA.bit_pos_+=8,++nt,--W;if(st+(yA=hA.bit_end_pos_-hA.bit_pos_>>3)>s.IBUF_MASK){for(var _A=s.IBUF_MASK+1-st,ft=0;ft<_A;ft++)DA[nt+ft]=hA.buf_[st+ft];yA-=_A,nt+=_A,W-=_A,st=0}for(ft=0;ft=HA)for($.write(DA,HA),nt-=HA,ft=0;ft=HA;){if(hA.input_.read(DA,nt,yA=HA-nt)W.buffer.length){var ne=new Uint8Array(DA+G);ne.set(W.buffer),W.buffer=ne}if(rA=yn.input_end,O=yn.is_uncompressed,yn.is_metadata)for(GA(dt);G>0;--G)dt.readMoreInput(),dt.readBits(8);else if(0!==G){if(O){dt.bit_pos_=dt.bit_pos_+7&-8,TA(W,G,DA,_A,yA,dt),DA+=G;continue}for(EA=0;EA<3;++EA)wA[EA]=aA(dt)+1,wA[EA]>=2&&(lA(wA[EA]+2,ot,EA*D,dt),lA(26,It,EA*D,dt),L[EA]=BA(It,EA*D,dt),eA[EA]=1);for(dt.readMoreInput(),j=(1<<(at=dt.readBits(2)))-1,XA=(Ft=16+(dt.readBits(4)<0;){var tn,qe,Ln,Gn,Jt,Lt,Xt,oe,Mn,Fn,Kn,nr;for(dt.readMoreInput(),0===L[1]&&(CA(wA[1],ot,1,dA,RA,eA,dt),L[1]=BA(It,D,dt),mn=zA[1].htrees[dA[1]]),--L[1],(qe=(tn=MA(zA[1].codes,mn,dt))>>6)>=2?(qe-=2,Xt=-1):Xt=0,Gn=u.kCopyRangeLut[qe]+(7&tn),Jt=u.kInsertLengthPrefixCode[Ln=u.kInsertRangeLut[qe]+(tn>>3&7)].offset+dt.readBits(u.kInsertLengthPrefixCode[Ln].nbits),Lt=u.kCopyLengthPrefixCode[Gn].offset+dt.readBits(u.kCopyLengthPrefixCode[Gn].nbits),OA=_A[DA-1&yA],WA=_A[DA-2&yA],Mn=0;Mn4?3:Lt-2))]],dt))>=Ft&&(nr=(Xt-=Ft)&j,Xt=Ft+((nn=(2+(1&(Xt>>=at))<<(Kn=1+(Xt>>1)))-4)+dt.readBits(Kn)<(nt=DA=E.minDictionaryWordLength&&Lt<=E.maxDictionaryWordLength))throw new Error("Invalid backward reference. pos: "+DA+" distance: "+oe+" len: "+Lt+" bytes left: "+G);var nn=E.offsetsByLength[Lt],KA=oe-nt-1,YA=E.sizeBitsByLength[Lt],NA=KA>>YA;if(nn+=(KA&(1<=ft){W.write(_A,st);for(var JA=0;JA0&&(lt[3&SA]=oe,++SA),Lt>G)throw new Error("Invalid backward reference. pos: "+DA+" distance: "+oe+" len: "+Lt+" bytes left: "+G);for(Mn=0;Mn>=1;return(E&l-1)+l}function a(E,o,l,h,u){do{E[o+(h-=l)]=new n(u.bits,u.value)}while(h>0)}function s(E,o,l){for(var h=1<0;--P[f])a(E,o+w,Q,p,new n(255&f,65535&v[g++])),w=r(w,f);for(F=D-1,d=-1,f=l+1,Q=2;f<=c;++f,Q<<=1)for(;P[f]>0;--P[f])(w&F)!==d&&(o+=p,D+=p=1<<(m=s(P,f,l)),E[C+(d=w&F)]=new n(m+l&255,o-C-d&65535)),a(E,o+(w>>l),Q,p,new n(f-l&255,65535&v[g++])),w=r(w,f);return D}},8435:function(Y,I){function n(c,r){this.offset=c,this.nbits=r}I.kBlockLengthPrefixCode=[new n(1,2),new n(5,2),new n(9,2),new n(13,2),new n(17,3),new n(25,3),new n(33,3),new n(41,3),new n(49,4),new n(65,4),new n(81,4),new n(97,4),new n(113,5),new n(145,5),new n(177,5),new n(209,5),new n(241,6),new n(305,6),new n(369,7),new n(497,8),new n(753,9),new n(1265,10),new n(2289,11),new n(4337,12),new n(8433,13),new n(16625,24)],I.kInsertLengthPrefixCode=[new n(0,0),new n(1,0),new n(2,0),new n(3,0),new n(4,0),new n(5,0),new n(6,1),new n(8,1),new n(10,2),new n(14,2),new n(18,3),new n(26,3),new n(34,4),new n(50,4),new n(66,5),new n(98,5),new n(130,6),new n(194,7),new n(322,8),new n(578,9),new n(1090,10),new n(2114,12),new n(6210,14),new n(22594,24)],I.kCopyLengthPrefixCode=[new n(2,0),new n(3,0),new n(4,0),new n(5,0),new n(6,0),new n(7,0),new n(8,0),new n(9,0),new n(10,1),new n(12,1),new n(14,2),new n(18,2),new n(22,3),new n(30,3),new n(38,4),new n(54,4),new n(70,5),new n(102,5),new n(134,6),new n(198,7),new n(326,8),new n(582,9),new n(1094,10),new n(2118,24)],I.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],I.kCopyRangeLut=[0,8,0,8,16,0,16,8,16]},6154:function(Y,I){function n(r){this.buffer=r,this.pos=0}function c(r){this.buffer=r,this.pos=0}n.prototype.read=function(r,a,s){this.pos+s>this.buffer.length&&(s=this.buffer.length-this.pos);for(var E=0;Ethis.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(r.subarray(0,a),this.pos),this.pos+=a,a},I.j=c},2973:function(Y,I,n){var c=n(5139),f=10,g=11;function T(N,V,aA){this.prefix=new Uint8Array(N.length),this.transform=V,this.suffix=new Uint8Array(aA.length);for(var AA=0;AA'),new T("",0,"\n"),new T("",3,""),new T("",0,"]"),new T("",0," for "),new T("",14,""),new T("",2,""),new T("",0," a "),new T("",0," that "),new T(" ",f,""),new T("",0,". "),new T(".",0,""),new T(" ",0,", "),new T("",15,""),new T("",0," with "),new T("",0,"'"),new T("",0," from "),new T("",0," by "),new T("",16,""),new T("",17,""),new T(" the ",0,""),new T("",4,""),new T("",0,". The "),new T("",g,""),new T("",0," on "),new T("",0," as "),new T("",0," is "),new T("",7,""),new T("",1,"ing "),new T("",0,"\n\t"),new T("",0,":"),new T(" ",0,". "),new T("",0,"ed "),new T("",20,""),new T("",18,""),new T("",6,""),new T("",0,"("),new T("",f,", "),new T("",8,""),new T("",0," at "),new T("",0,"ly "),new T(" the ",0," of "),new T("",5,""),new T("",9,""),new T(" ",f,", "),new T("",f,'"'),new T(".",0,"("),new T("",g," "),new T("",f,'">'),new T("",0,'="'),new T(" ",0,"."),new T(".com/",0,""),new T(" the ",0," of the "),new T("",f,"'"),new T("",0,". This "),new T("",0,","),new T(".",0," "),new T("",f,"("),new T("",f,"."),new T("",0," not "),new T(" ",0,'="'),new T("",0,"er "),new T(" ",g," "),new T("",0,"al "),new T(" ",g,""),new T("",0,"='"),new T("",g,'"'),new T("",f,". "),new T(" ",0,"("),new T("",0,"ful "),new T(" ",f,". "),new T("",0,"ive "),new T("",0,"less "),new T("",g,"'"),new T("",0,"est "),new T(" ",f,"."),new T("",g,'">'),new T(" ",0,"='"),new T("",f,","),new T("",0,"ize "),new T("",g,"."),new T("\xc2\xa0",0,""),new T(" ",0,","),new T("",f,'="'),new T("",g,'="'),new T("",0,"ous "),new T("",g,", "),new T("",f,"='"),new T(" ",f,","),new T(" ",g,'="'),new T(" ",g,", "),new T("",g,","),new T("",g,"("),new T("",g,". "),new T(" ",g,"."),new T("",g,"='"),new T(" ",g,". "),new T(" ",f,'="'),new T(" ",g,"='"),new T(" ",f,"='")];function R(N,V){return N[V]<192?(N[V]>=97&&N[V]<=122&&(N[V]^=32),1):N[V]<224?(N[V+1]^=32,2):(N[V+2]^=5,3)}I.kTransforms=x,I.kNumTransforms=x.length,I.transformDictionaryWord=function(N,V,aA,AA,gA){var _,MA=x[gA].prefix,cA=x[gA].suffix,lA=x[gA].transform,BA=lA<12?0:lA-11,vA=0,xA=V;BA>AA&&(BA=AA);for(var QA=0;QA0;){var uA=R(N,_);_+=uA,AA-=uA}for(var CA=0;CAI.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=f,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}e.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,a(this.init_done,"close before init"),a(this.mode<=I.UNZIP),this.mode===I.DEFLATE||this.mode===I.GZIP||this.mode===I.DEFLATERAW?E.deflateEnd(this.strm):(this.mode===I.INFLATE||this.mode===I.GUNZIP||this.mode===I.INFLATERAW||this.mode===I.UNZIP)&&o.inflateEnd(this.strm),this.mode=I.NONE,this.dictionary=null)},e.prototype.write=function(f,g,w,Q,d,F,m){return this._write(!0,f,g,w,Q,d,F,m)},e.prototype.writeSync=function(f,g,w,Q,d,F,m){return this._write(!1,f,g,w,Q,d,F,m)},e.prototype._write=function(f,g,w,Q,d,F,m,p){if(a.equal(arguments.length,8),a(this.init_done,"write before init"),a(this.mode!==I.NONE,"already finalized"),a.equal(!1,this.write_in_progress,"write already in progress"),a.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,a.equal(!1,void 0===g,"must provide flush value"),this.write_in_progress=!0,g!==I.Z_NO_FLUSH&&g!==I.Z_PARTIAL_FLUSH&&g!==I.Z_SYNC_FLUSH&&g!==I.Z_FULL_FLUSH&&g!==I.Z_FINISH&&g!==I.Z_BLOCK)throw new Error("Invalid flush value");if(null==w&&(w=c.alloc(0),d=0,Q=0),this.strm.avail_in=d,this.strm.input=w,this.strm.next_in=Q,this.strm.avail_out=p,this.strm.output=F,this.strm.next_out=m,this.flush=g,!f)return this._process(),this._checkError()?this._afterSync():void 0;var D=this;return r.nextTick(function(){D._process(),D._after()}),this},e.prototype._afterSync=function(){var f=this.strm.avail_out,g=this.strm.avail_in;return this.write_in_progress=!1,[g,f]},e.prototype._process=function(){var f=null;switch(this.mode){case I.DEFLATE:case I.GZIP:case I.DEFLATERAW:this.err=E.deflate(this.strm,this.flush);break;case I.UNZIP:switch(this.strm.avail_in>0&&(f=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(null===f)break;if(31!==this.strm.input[f]){this.mode=I.INFLATE;break}if(this.gzip_id_bytes_read=1,f++,1===this.strm.avail_in)break;case 1:if(null===f)break;139===this.strm.input[f]?(this.gzip_id_bytes_read=2,this.mode=I.GUNZIP):this.mode=I.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case I.INFLATE:case I.GUNZIP:case I.INFLATERAW:for(this.err=o.inflate(this.strm,this.flush),this.err===I.Z_NEED_DICT&&this.dictionary&&(this.err=o.inflateSetDictionary(this.strm,this.dictionary),this.err===I.Z_OK?this.err=o.inflate(this.strm,this.flush):this.err===I.Z_DATA_ERROR&&(this.err=I.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===I.GUNZIP&&this.err===I.Z_STREAM_END&&0!==this.strm.next_in[0];)this.reset(),this.err=o.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},e.prototype._checkError=function(){switch(this.err){case I.Z_OK:case I.Z_BUF_ERROR:if(0!==this.strm.avail_out&&this.flush===I.Z_FINISH)return this._error("unexpected end of file"),!1;break;case I.Z_STREAM_END:break;case I.Z_NEED_DICT:return this._error(null==this.dictionary?"Missing dictionary":"Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},e.prototype._after=function(){if(this._checkError()){var f=this.strm.avail_out,g=this.strm.avail_in;this.write_in_progress=!1,this.callback(g,f),this.pending_close&&this.close()}},e.prototype._error=function(f){this.strm.msg&&(f=this.strm.msg),this.onerror(f,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},e.prototype.init=function(f,g,w,Q,d){a(4===arguments.length||5===arguments.length,"init(windowBits, level, memLevel, strategy, [dictionary])"),a(f>=8&&f<=15,"invalid windowBits"),a(g>=-1&&g<=9,"invalid compression level"),a(w>=1&&w<=9,"invalid memlevel"),a(Q===I.Z_FILTERED||Q===I.Z_HUFFMAN_ONLY||Q===I.Z_RLE||Q===I.Z_FIXED||Q===I.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(g,f,w,Q,d),this._setDictionary()},e.prototype.params=function(){throw new Error("deflateParams Not supported")},e.prototype.reset=function(){this._reset(),this._setDictionary()},e.prototype._init=function(f,g,w,Q,d){switch(this.level=f,this.windowBits=g,this.memLevel=w,this.strategy=Q,this.flush=I.Z_NO_FLUSH,this.err=I.Z_OK,(this.mode===I.GZIP||this.mode===I.GUNZIP)&&(this.windowBits+=16),this.mode===I.UNZIP&&(this.windowBits+=32),(this.mode===I.DEFLATERAW||this.mode===I.INFLATERAW)&&(this.windowBits=-1*this.windowBits),this.strm=new s,this.mode){case I.DEFLATE:case I.GZIP:case I.DEFLATERAW:this.err=E.deflateInit2(this.strm,this.level,I.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case I.INFLATE:case I.GUNZIP:case I.INFLATERAW:case I.UNZIP:this.err=o.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==I.Z_OK&&this._error("Init error"),this.dictionary=d,this.write_in_progress=!1,this.init_done=!0},e.prototype._setDictionary=function(){if(null!=this.dictionary){switch(this.err=I.Z_OK,this.mode){case I.DEFLATE:case I.DEFLATERAW:this.err=E.deflateSetDictionary(this.strm,this.dictionary)}this.err!==I.Z_OK&&this._error("Failed to set dictionary")}},e.prototype._reset=function(){switch(this.err=I.Z_OK,this.mode){case I.DEFLATE:case I.DEFLATERAW:case I.GZIP:this.err=E.deflateReset(this.strm);break;case I.INFLATE:case I.INFLATERAW:case I.GUNZIP:this.err=o.inflateReset(this.strm)}this.err!==I.Z_OK&&this._error("Failed to reset stream")},I.Zlib=e},2635:function(Y,I,n){"use strict";var c=n(4155),r=n(8823).Buffer,a=n(2830).Transform,s=n(4505),E=n(9539),o=n(9282).ok,l=n(8823).kMaxLength,h="Cannot create final Buffer. It would be larger than 0x"+l.toString(16)+" bytes";s.Z_MIN_WINDOWBITS=8,s.Z_MAX_WINDOWBITS=15,s.Z_DEFAULT_WINDOWBITS=15,s.Z_MIN_CHUNK=64,s.Z_MAX_CHUNK=1/0,s.Z_DEFAULT_CHUNK=16384,s.Z_MIN_MEMLEVEL=1,s.Z_MAX_MEMLEVEL=9,s.Z_DEFAULT_MEMLEVEL=8,s.Z_MIN_LEVEL=-1,s.Z_MAX_LEVEL=9,s.Z_DEFAULT_LEVEL=s.Z_DEFAULT_COMPRESSION;for(var u=Object.keys(s),C=0;C=l?QA=new RangeError(h):_=r.concat(cA,lA),cA=[],AA.close(),MA(QA,_)}AA.on("error",function(_){AA.removeListener("end",xA),AA.removeListener("readable",BA),MA(_)}),AA.on("end",xA),AA.end(gA),BA()}function F(AA,gA){if("string"==typeof gA&&(gA=r.from(gA)),!r.isBuffer(gA))throw new TypeError("Not a string or buffer");return AA._processChunk(gA,AA._finishFlushFlag)}function m(AA){if(!(this instanceof m))return new m(AA);N.call(this,AA,s.DEFLATE)}function p(AA){if(!(this instanceof p))return new p(AA);N.call(this,AA,s.INFLATE)}function D(AA){if(!(this instanceof D))return new D(AA);N.call(this,AA,s.GZIP)}function v(AA){if(!(this instanceof v))return new v(AA);N.call(this,AA,s.GUNZIP)}function P(AA){if(!(this instanceof P))return new P(AA);N.call(this,AA,s.DEFLATERAW)}function T(AA){if(!(this instanceof T))return new T(AA);N.call(this,AA,s.INFLATERAW)}function x(AA){if(!(this instanceof x))return new x(AA);N.call(this,AA,s.UNZIP)}function R(AA){return AA===s.Z_NO_FLUSH||AA===s.Z_PARTIAL_FLUSH||AA===s.Z_SYNC_FLUSH||AA===s.Z_FULL_FLUSH||AA===s.Z_FINISH||AA===s.Z_BLOCK}function N(AA,gA){var MA=this;if(this._opts=AA=AA||{},this._chunkSize=AA.chunkSize||I.Z_DEFAULT_CHUNK,a.call(this,AA),AA.flush&&!R(AA.flush))throw new Error("Invalid flush flag: "+AA.flush);if(AA.finishFlush&&!R(AA.finishFlush))throw new Error("Invalid flush flag: "+AA.finishFlush);if(this._flushFlag=AA.flush||s.Z_NO_FLUSH,this._finishFlushFlag=void 0!==AA.finishFlush?AA.finishFlush:s.Z_FINISH,AA.chunkSize&&(AA.chunkSizeI.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+AA.chunkSize);if(AA.windowBits&&(AA.windowBitsI.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+AA.windowBits);if(AA.level&&(AA.levelI.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+AA.level);if(AA.memLevel&&(AA.memLevelI.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+AA.memLevel);if(AA.strategy&&AA.strategy!=I.Z_FILTERED&&AA.strategy!=I.Z_HUFFMAN_ONLY&&AA.strategy!=I.Z_RLE&&AA.strategy!=I.Z_FIXED&&AA.strategy!=I.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+AA.strategy);if(AA.dictionary&&!r.isBuffer(AA.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new s.Zlib(gA);var cA=this;this._hadError=!1,this._handle.onerror=function(vA,xA){V(cA),cA._hadError=!0;var _=new Error(vA);_.errno=xA,_.code=I.codes[xA],cA.emit("error",_)};var lA=I.Z_DEFAULT_COMPRESSION;"number"==typeof AA.level&&(lA=AA.level);var BA=I.Z_DEFAULT_STRATEGY;"number"==typeof AA.strategy&&(BA=AA.strategy),this._handle.init(AA.windowBits||I.Z_DEFAULT_WINDOWBITS,lA,AA.memLevel||I.Z_DEFAULT_MEMLEVEL,BA,AA.dictionary),this._buffer=r.allocUnsafe(this._chunkSize),this._offset=0,this._level=lA,this._strategy=BA,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!MA._handle},configurable:!0,enumerable:!0})}function V(AA,gA){gA&&c.nextTick(gA),AA._handle&&(AA._handle.close(),AA._handle=null)}function aA(AA){AA.emit("close")}Object.defineProperty(I,"codes",{enumerable:!0,value:Object.freeze(f),writable:!1}),I.Deflate=m,I.Inflate=p,I.Gzip=D,I.Gunzip=v,I.DeflateRaw=P,I.InflateRaw=T,I.Unzip=x,I.createDeflate=function(AA){return new m(AA)},I.createInflate=function(AA){return new p(AA)},I.createDeflateRaw=function(AA){return new P(AA)},I.createInflateRaw=function(AA){return new T(AA)},I.createGzip=function(AA){return new D(AA)},I.createGunzip=function(AA){return new v(AA)},I.createUnzip=function(AA){return new x(AA)},I.deflate=function(AA,gA,MA){return"function"==typeof gA&&(MA=gA,gA={}),d(new m(gA),AA,MA)},I.deflateSync=function(AA,gA){return F(new m(gA),AA)},I.gzip=function(AA,gA,MA){return"function"==typeof gA&&(MA=gA,gA={}),d(new D(gA),AA,MA)},I.gzipSync=function(AA,gA){return F(new D(gA),AA)},I.deflateRaw=function(AA,gA,MA){return"function"==typeof gA&&(MA=gA,gA={}),d(new P(gA),AA,MA)},I.deflateRawSync=function(AA,gA){return F(new P(gA),AA)},I.unzip=function(AA,gA,MA){return"function"==typeof gA&&(MA=gA,gA={}),d(new x(gA),AA,MA)},I.unzipSync=function(AA,gA){return F(new x(gA),AA)},I.inflate=function(AA,gA,MA){return"function"==typeof gA&&(MA=gA,gA={}),d(new p(gA),AA,MA)},I.inflateSync=function(AA,gA){return F(new p(gA),AA)},I.gunzip=function(AA,gA,MA){return"function"==typeof gA&&(MA=gA,gA={}),d(new v(gA),AA,MA)},I.gunzipSync=function(AA,gA){return F(new v(gA),AA)},I.inflateRaw=function(AA,gA,MA){return"function"==typeof gA&&(MA=gA,gA={}),d(new T(gA),AA,MA)},I.inflateRawSync=function(AA,gA){return F(new T(gA),AA)},E.inherits(N,a),N.prototype.params=function(AA,gA,MA){if(AAI.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+AA);if(gA!=I.Z_FILTERED&&gA!=I.Z_HUFFMAN_ONLY&&gA!=I.Z_RLE&&gA!=I.Z_FIXED&&gA!=I.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+gA);if(this._level!==AA||this._strategy!==gA){var cA=this;this.flush(s.Z_SYNC_FLUSH,function(){o(cA._handle,"zlib binding closed"),cA._handle.params(AA,gA),cA._hadError||(cA._level=AA,cA._strategy=gA,MA&&MA())})}else c.nextTick(MA)},N.prototype.reset=function(){return o(this._handle,"zlib binding closed"),this._handle.reset()},N.prototype._flush=function(AA){this._transform(r.alloc(0),"",AA)},N.prototype.flush=function(AA,gA){var MA=this,cA=this._writableState;("function"==typeof AA||void 0===AA&&!gA)&&(gA=AA,AA=s.Z_FULL_FLUSH),cA.ended?gA&&c.nextTick(gA):cA.ending?gA&&this.once("end",gA):cA.needDrain?gA&&this.once("drain",function(){return MA.flush(AA,gA)}):(this._flushFlag=AA,this.write(r.alloc(0),"",gA))},N.prototype.close=function(AA){V(this,AA),c.nextTick(aA,this)},N.prototype._transform=function(AA,gA,MA){var cA,lA=this._writableState,vA=(lA.ending||lA.ended)&&(!AA||lA.length===AA.length);return null===AA||r.isBuffer(AA)?this._handle?(vA?cA=this._finishFlushFlag:(cA=this._flushFlag,AA.length>=lA.length&&(this._flushFlag=this._opts.flush||s.Z_NO_FLUSH)),void this._processChunk(AA,cA,MA)):MA(new Error("zlib binding closed")):MA(new Error("invalid input"))},N.prototype._processChunk=function(AA,gA,MA){var cA=AA&&AA.length,lA=this._chunkSize-this._offset,BA=0,vA=this,xA="function"==typeof MA;if(!xA){var uA,_=[],QA=0;this.on("error",function(q){uA=q}),o(this._handle,"zlib binding closed");do{var CA=this._handle.writeSync(gA,AA,BA,cA,this._buffer,this._offset,lA)}while(!this._hadError&&VA(CA[0],CA[1]));if(this._hadError)throw uA;if(QA>=l)throw V(this),new RangeError(h);var TA=r.concat(_,QA);return V(this),TA}o(this._handle,"zlib binding closed");var GA=this._handle.write(gA,AA,BA,cA,this._buffer,this._offset,lA);function VA(q,J){if(this&&(this.buffer=null,this.callback=null),!vA._hadError){var $=lA-J;if(o($>=0,"have should not go down"),$>0){var W=vA._buffer.slice(vA._offset,vA._offset+$);vA._offset+=$,xA?vA.push(W):(_.push(W),QA+=W.length)}if((0===J||vA._offset>=vA._chunkSize)&&(lA=vA._chunkSize,vA._offset=0,vA._buffer=r.allocUnsafe(vA._chunkSize)),0===J){if(BA+=cA-q,cA=q,!xA)return!0;var EA=vA._handle.write(gA,AA,BA,cA,vA._buffer,vA._offset,vA._chunkSize);return EA.callback=VA,void(EA.buffer=AA)}if(!xA)return!1;MA()}}GA.buffer=AA,GA.callback=VA},E.inherits(m,N),E.inherits(p,N),E.inherits(D,N),E.inherits(v,N),E.inherits(P,N),E.inherits(T,N),E.inherits(x,N)},6907:function(Y,I){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function c(s,E){return Object.prototype.hasOwnProperty.call(s,E)}I.assign=function(s){for(var E=Array.prototype.slice.call(arguments,1);E.length;){var o=E.shift();if(o){if("object"!=typeof o)throw new TypeError(o+"must be non-object");for(var l in o)c(o,l)&&(s[l]=o[l])}}return s},I.shrinkBuf=function(s,E){return s.length===E?s:s.subarray?s.subarray(0,E):(s.length=E,s)};var r={arraySet:function(s,E,o,l,h){if(E.subarray&&s.subarray)s.set(E.subarray(o,o+l),h);else for(var u=0;u>>16&65535|0,o=0;0!==r;){r-=o=r>2e3?2e3:r;do{E=E+(s=s+c[a++]|0)|0}while(--o);s%=65521,E%=65521}return s|E<<16|0}},7162:function(Y){"use strict";Y.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},3415:function(Y){"use strict";var n=function(){for(var r,a=[],s=0;s<256;s++){r=s;for(var E=0;E<8;E++)r=1&r?3988292384^r>>>1:r>>>1;a[s]=r}return a}();Y.exports=function(r,a,s,E){var o=n,l=E+s;r^=-1;for(var h=E;h>>8^o[255&(r^a[h])];return-1^r}},2233:function(Y,I,n){"use strict";var vt,c=n(6907),r=n(1339),a=n(7575),s=n(3415),E=n(9364),g=-2,vA=258,xA=262,q=666;function rA(j,XA){return j.msg=E[XA],XA}function hA(j){return(j<<1)-(j>4?9:0)}function HA(j){for(var XA=j.length;--XA>=0;)j[XA]=0}function nt(j){var XA=j.state,et=XA.pending;et>j.avail_out&&(et=j.avail_out),0!==et&&(c.arraySet(j.output,XA.pending_buf,XA.pending_out,et,j.next_out),j.next_out+=et,XA.pending_out+=et,j.total_out+=et,j.avail_out-=et,XA.pending-=et,0===XA.pending&&(XA.pending_out=0))}function st(j,XA){r._tr_flush_block(j,j.block_start>=0?j.block_start:-1,j.strstart-j.block_start,XA),j.block_start=j.strstart,nt(j.strm)}function yA(j,XA){j.pending_buf[j.pending++]=XA}function _A(j,XA){j.pending_buf[j.pending++]=XA>>>8&255,j.pending_buf[j.pending++]=255&XA}function ft(j,XA,et,mA){var jA=j.avail_in;return jA>mA&&(jA=mA),0===jA?0:(j.avail_in-=jA,c.arraySet(XA,j.input,j.next_in,jA,et),1===j.state.wrap?j.adler=a(j.adler,XA,jA,et):2===j.state.wrap&&(j.adler=s(j.adler,XA,jA,et)),j.next_in+=jA,j.total_in+=jA,jA)}function lt(j,XA){var jA,ct,et=j.max_chain_length,mA=j.strstart,bt=j.prev_length,yt=j.nice_match,Rt=j.strstart>j.w_size-xA?j.strstart-(j.w_size-xA):0,Kt=j.window,Ne=j.w_mask,ie=j.prev,$t=j.strstart+vA,me=Kt[mA+bt-1],be=Kt[mA+bt];j.prev_length>=j.good_match&&(et>>=2),yt>j.lookahead&&(yt=j.lookahead);do{if(Kt[(jA=XA)+bt]===be&&Kt[jA+bt-1]===me&&Kt[jA]===Kt[mA]&&Kt[++jA]===Kt[mA+1]){mA+=2,jA++;do{}while(Kt[++mA]===Kt[++jA]&&Kt[++mA]===Kt[++jA]&&Kt[++mA]===Kt[++jA]&&Kt[++mA]===Kt[++jA]&&Kt[++mA]===Kt[++jA]&&Kt[++mA]===Kt[++jA]&&Kt[++mA]===Kt[++jA]&&Kt[++mA]===Kt[++jA]&&mA<$t);if(ct=vA-($t-mA),mA=$t-vA,ct>bt){if(j.match_start=XA,bt=ct,ct>=yt)break;me=Kt[mA+bt-1],be=Kt[mA+bt]}}}while((XA=ie[XA&Ne])>Rt&&0!=--et);return bt<=j.lookahead?bt:j.lookahead}function SA(j){var et,mA,jA,ct,bt,XA=j.w_size;do{if(ct=j.window_size-j.lookahead-j.strstart,j.strstart>=XA+(XA-xA)){c.arraySet(j.window,j.window,XA,XA,0),j.match_start-=XA,j.strstart-=XA,j.block_start-=XA,et=mA=j.hash_size;do{jA=j.head[--et],j.head[et]=jA>=XA?jA-XA:0}while(--mA);et=mA=XA;do{jA=j.prev[--et],j.prev[et]=jA>=XA?jA-XA:0}while(--mA);ct+=XA}if(0===j.strm.avail_in)break;if(mA=ft(j.strm,j.window,j.strstart+j.lookahead,ct),j.lookahead+=mA,j.lookahead+j.insert>=3)for(j.ins_h=j.window[bt=j.strstart-j.insert],j.ins_h=(j.ins_h<=3&&(j.ins_h=(j.ins_h<=3)if(mA=r._tr_tally(j,j.strstart-j.match_start,j.match_length-3),j.lookahead-=j.match_length,j.match_length<=j.max_lazy_match&&j.lookahead>=3){j.match_length--;do{j.strstart++,j.ins_h=(j.ins_h<=3&&(j.ins_h=(j.ins_h<4096)&&(j.match_length=2)),j.prev_length>=3&&j.match_length<=j.prev_length){jA=j.strstart+j.lookahead-3,mA=r._tr_tally(j,j.strstart-1-j.prev_match,j.prev_length-3),j.lookahead-=j.prev_length-1,j.prev_length-=2;do{++j.strstart<=jA&&(j.ins_h=(j.ins_h<15&&(bt=2,mA-=16),jA<1||jA>9||8!==et||mA<8||mA>15||XA<0||XA>9||ct<0||ct>4)return rA(j,g);8===mA&&(mA=9);var yt=new G;return j.state=yt,yt.strm=j,yt.wrap=bt,yt.gzhead=null,yt.w_bits=mA,yt.w_size=1<j.pending_buf_size-5&&(et=j.pending_buf_size-5);;){if(j.lookahead<=1){if(SA(j),0===j.lookahead&&0===XA)return 1;if(0===j.lookahead)break}j.strstart+=j.lookahead,j.lookahead=0;var mA=j.block_start+et;if((0===j.strstart||j.strstart>=mA)&&(j.lookahead=j.strstart-mA,j.strstart=mA,st(j,!1),0===j.strm.avail_out)||j.strstart-j.block_start>=j.w_size-xA&&(st(j,!1),0===j.strm.avail_out))return 1}return j.insert=0,4===XA?(st(j,!0),0===j.strm.avail_out?3:4):(j.strstart>j.block_start&&st(j,!1),1)}),new dt(4,4,8,4,WA),new dt(4,5,16,8,WA),new dt(4,6,32,32,WA),new dt(4,4,16,16,zA),new dt(8,16,32,32,zA),new dt(8,16,128,128,zA),new dt(8,32,128,256,zA),new dt(32,128,258,1024,zA),new dt(32,258,258,4096,zA)],I.deflateInit=function(j,XA){return wA(j,XA,8,15,8,0)},I.deflateInit2=wA,I.deflateReset=L,I.deflateResetKeep=O,I.deflateSetHeader=function(j,XA){return j&&j.state&&2===j.state.wrap?(j.state.gzhead=XA,0):g},I.deflate=function(j,XA){var et,mA,jA,ct;if(!j||!j.state||XA>5||XA<0)return j?rA(j,g):g;if(mA=j.state,!j.output||!j.input&&0!==j.avail_in||mA.status===q&&4!==XA)return rA(j,0===j.avail_out?-5:g);if(mA.strm=j,et=mA.last_flush,mA.last_flush=XA,42===mA.status)if(2===mA.wrap)j.adler=0,yA(mA,31),yA(mA,139),yA(mA,8),mA.gzhead?(yA(mA,(mA.gzhead.text?1:0)+(mA.gzhead.hcrc?2:0)+(mA.gzhead.extra?4:0)+(mA.gzhead.name?8:0)+(mA.gzhead.comment?16:0)),yA(mA,255&mA.gzhead.time),yA(mA,mA.gzhead.time>>8&255),yA(mA,mA.gzhead.time>>16&255),yA(mA,mA.gzhead.time>>24&255),yA(mA,9===mA.level?2:mA.strategy>=2||mA.level<2?4:0),yA(mA,255&mA.gzhead.os),mA.gzhead.extra&&mA.gzhead.extra.length&&(yA(mA,255&mA.gzhead.extra.length),yA(mA,mA.gzhead.extra.length>>8&255)),mA.gzhead.hcrc&&(j.adler=s(j.adler,mA.pending_buf,mA.pending,0)),mA.gzindex=0,mA.status=69):(yA(mA,0),yA(mA,0),yA(mA,0),yA(mA,0),yA(mA,0),yA(mA,9===mA.level?2:mA.strategy>=2||mA.level<2?4:0),yA(mA,3),mA.status=113);else{var bt=8+(mA.w_bits-8<<4)<<8;bt|=(mA.strategy>=2||mA.level<2?0:mA.level<6?1:6===mA.level?2:3)<<6,0!==mA.strstart&&(bt|=32),bt+=31-bt%31,mA.status=113,_A(mA,bt),0!==mA.strstart&&(_A(mA,j.adler>>>16),_A(mA,65535&j.adler)),j.adler=1}if(69===mA.status)if(mA.gzhead.extra){for(jA=mA.pending;mA.gzindex<(65535&mA.gzhead.extra.length)&&(mA.pending!==mA.pending_buf_size||(mA.gzhead.hcrc&&mA.pending>jA&&(j.adler=s(j.adler,mA.pending_buf,mA.pending-jA,jA)),nt(j),jA=mA.pending,mA.pending!==mA.pending_buf_size));)yA(mA,255&mA.gzhead.extra[mA.gzindex]),mA.gzindex++;mA.gzhead.hcrc&&mA.pending>jA&&(j.adler=s(j.adler,mA.pending_buf,mA.pending-jA,jA)),mA.gzindex===mA.gzhead.extra.length&&(mA.gzindex=0,mA.status=73)}else mA.status=73;if(73===mA.status)if(mA.gzhead.name){jA=mA.pending;do{if(mA.pending===mA.pending_buf_size&&(mA.gzhead.hcrc&&mA.pending>jA&&(j.adler=s(j.adler,mA.pending_buf,mA.pending-jA,jA)),nt(j),jA=mA.pending,mA.pending===mA.pending_buf_size)){ct=1;break}ct=mA.gzindexjA&&(j.adler=s(j.adler,mA.pending_buf,mA.pending-jA,jA)),0===ct&&(mA.gzindex=0,mA.status=91)}else mA.status=91;if(91===mA.status)if(mA.gzhead.comment){jA=mA.pending;do{if(mA.pending===mA.pending_buf_size&&(mA.gzhead.hcrc&&mA.pending>jA&&(j.adler=s(j.adler,mA.pending_buf,mA.pending-jA,jA)),nt(j),jA=mA.pending,mA.pending===mA.pending_buf_size)){ct=1;break}ct=mA.gzindexjA&&(j.adler=s(j.adler,mA.pending_buf,mA.pending-jA,jA)),0===ct&&(mA.status=103)}else mA.status=103;if(103===mA.status&&(mA.gzhead.hcrc?(mA.pending+2>mA.pending_buf_size&&nt(j),mA.pending+2<=mA.pending_buf_size&&(yA(mA,255&j.adler),yA(mA,j.adler>>8&255),j.adler=0,mA.status=113)):mA.status=113),0!==mA.pending){if(nt(j),0===j.avail_out)return mA.last_flush=-1,0}else if(0===j.avail_in&&hA(XA)<=hA(et)&&4!==XA)return rA(j,-5);if(mA.status===q&&0!==j.avail_in)return rA(j,-5);if(0!==j.avail_in||0!==mA.lookahead||0!==XA&&mA.status!==q){var Rt=2===mA.strategy?function(j,XA){for(var et;;){if(0===j.lookahead&&(SA(j),0===j.lookahead)){if(0===XA)return 1;break}if(j.match_length=0,et=r._tr_tally(j,0,j.window[j.strstart]),j.lookahead--,j.strstart++,et&&(st(j,!1),0===j.strm.avail_out))return 1}return j.insert=0,4===XA?(st(j,!0),0===j.strm.avail_out?3:4):j.last_lit&&(st(j,!1),0===j.strm.avail_out)?1:2}(mA,XA):3===mA.strategy?function(j,XA){for(var et,mA,jA,ct,bt=j.window;;){if(j.lookahead<=vA){if(SA(j),j.lookahead<=vA&&0===XA)return 1;if(0===j.lookahead)break}if(j.match_length=0,j.lookahead>=3&&j.strstart>0&&(mA=bt[jA=j.strstart-1])===bt[++jA]&&mA===bt[++jA]&&mA===bt[++jA]){ct=j.strstart+vA;do{}while(mA===bt[++jA]&&mA===bt[++jA]&&mA===bt[++jA]&&mA===bt[++jA]&&mA===bt[++jA]&&mA===bt[++jA]&&mA===bt[++jA]&&mA===bt[++jA]&&jAj.lookahead&&(j.match_length=j.lookahead)}if(j.match_length>=3?(et=r._tr_tally(j,1,j.match_length-3),j.lookahead-=j.match_length,j.strstart+=j.match_length,j.match_length=0):(et=r._tr_tally(j,0,j.window[j.strstart]),j.lookahead--,j.strstart++),et&&(st(j,!1),0===j.strm.avail_out))return 1}return j.insert=0,4===XA?(st(j,!0),0===j.strm.avail_out?3:4):j.last_lit&&(st(j,!1),0===j.strm.avail_out)?1:2}(mA,XA):vt[mA.level].func(mA,XA);if((3===Rt||4===Rt)&&(mA.status=q),1===Rt||3===Rt)return 0===j.avail_out&&(mA.last_flush=-1),0;if(2===Rt&&(1===XA?r._tr_align(mA):5!==XA&&(r._tr_stored_block(mA,0,0,!1),3===XA&&(HA(mA.head),0===mA.lookahead&&(mA.strstart=0,mA.block_start=0,mA.insert=0))),nt(j),0===j.avail_out))return mA.last_flush=-1,0}return 4!==XA?0:mA.wrap<=0?1:(2===mA.wrap?(yA(mA,255&j.adler),yA(mA,j.adler>>8&255),yA(mA,j.adler>>16&255),yA(mA,j.adler>>24&255),yA(mA,255&j.total_in),yA(mA,j.total_in>>8&255),yA(mA,j.total_in>>16&255),yA(mA,j.total_in>>24&255)):(_A(mA,j.adler>>>16),_A(mA,65535&j.adler)),nt(j),mA.wrap>0&&(mA.wrap=-mA.wrap),0!==mA.pending?0:1)},I.deflateEnd=function(j){var XA;return j&&j.state?42!==(XA=j.state.status)&&69!==XA&&73!==XA&&91!==XA&&103!==XA&&113!==XA&&XA!==q?rA(j,g):(j.state=null,113===XA?rA(j,-3):0):g},I.deflateSetDictionary=function(j,XA){var mA,jA,ct,bt,yt,Rt,Kt,Ne,et=XA.length;if(!j||!j.state||2===(bt=(mA=j.state).wrap)||1===bt&&42!==mA.status||mA.lookahead)return g;for(1===bt&&(j.adler=a(j.adler,XA,et,0)),mA.wrap=0,et>=mA.w_size&&(0===bt&&(HA(mA.head),mA.strstart=0,mA.block_start=0,mA.insert=0),Ne=new c.Buf8(mA.w_size),c.arraySet(Ne,XA,et-mA.w_size,mA.w_size,0),XA=Ne,et=mA.w_size),yt=j.avail_in,Rt=j.next_in,Kt=j.input,j.avail_in=et,j.next_in=0,j.input=XA,SA(mA);mA.lookahead>=3;){jA=mA.strstart,ct=mA.lookahead-2;do{mA.ins_h=(mA.ins_h<>>=P=v>>>24,d-=P,0==(P=v>>>16&255))aA[l++]=65535&v;else{if(!(16&P)){if(0==(64&P)){v=F[(65535&v)+(Q&(1<>>=P,d-=P),d<15&&(Q+=V[E++]<>>=P=v>>>24,d-=P,!(16&(P=v>>>16&255))){if(0==(64&P)){v=m[(65535&v)+(Q&(1<C){r.msg="invalid distance too far back",s.mode=30;break A}if(Q>>>=P,d-=P,x>(P=l-h)){if((P=x-P)>f&&s.sane){r.msg="invalid distance too far back",s.mode=30;break A}if(R=0,N=w,0===g){if(R+=e-P,P2;)aA[l++]=N[R++],aA[l++]=N[R++],aA[l++]=N[R++],T-=3;T&&(aA[l++]=N[R++],T>1&&(aA[l++]=N[R++]))}else{R=l-x;do{aA[l++]=aA[R++],aA[l++]=aA[R++],aA[l++]=aA[R++],T-=3}while(T>2);T&&(aA[l++]=aA[R++],T>1&&(aA[l++]=aA[R++]))}break}}break}}while(E>3)<<3))-1,r.next_in=E-=T,r.next_out=l,r.avail_in=E>>24&255)+(wA>>>8&65280)+((65280&wA)<<8)+((255&wA)<<24)}function ft(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new c.Buf16(320),this.work=new c.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lt(wA){var RA;return wA&&wA.state?(wA.total_in=wA.total_out=(RA=wA.state).total=0,wA.msg="",RA.wrap&&(wA.adler=1&RA.wrap),RA.mode=1,RA.last=0,RA.havedict=0,RA.dmax=32768,RA.head=null,RA.hold=0,RA.bits=0,RA.lencode=RA.lendyn=new c.Buf32(852),RA.distcode=RA.distdyn=new c.Buf32(592),RA.sane=1,RA.back=-1,0):Q}function SA(wA){var RA;return wA&&wA.state?((RA=wA.state).wsize=0,RA.whave=0,RA.wnext=0,lt(wA)):Q}function OA(wA,RA){var eA,at;return!wA||!wA.state||(at=wA.state,RA<0?(eA=0,RA=-RA):(eA=1+(RA>>4),RA<48&&(RA&=15)),RA&&(RA<8||RA>15))?Q:(null!==at.window&&at.wbits!==RA&&(at.window=null),at.wrap=eA,at.wbits=RA,SA(wA))}function WA(wA,RA){var eA,at;return wA?(at=new ft,wA.state=at,at.window=null,0!==(eA=OA(wA,RA))&&(wA.state=null),eA):Q}var It,dt,ot=!0;function vt(wA){if(ot){var RA;for(It=new c.Buf32(512),dt=new c.Buf32(32),RA=0;RA<144;)wA.lens[RA++]=8;for(;RA<256;)wA.lens[RA++]=9;for(;RA<280;)wA.lens[RA++]=7;for(;RA<288;)wA.lens[RA++]=8;for(E(1,wA.lens,0,288,It,0,wA.work,{bits:9}),RA=0;RA<32;)wA.lens[RA++]=5;E(2,wA.lens,0,32,dt,0,wA.work,{bits:5}),ot=!1}wA.lencode=It,wA.lenbits=9,wA.distcode=dt,wA.distbits=5}function Pt(wA,RA,eA,at){var Ft,j=wA.state;return null===j.window&&(j.wsize=1<=j.wsize?(c.arraySet(j.window,RA,eA-j.wsize,j.wsize,0),j.wnext=0,j.whave=j.wsize):((Ft=j.wsize-j.wnext)>at&&(Ft=at),c.arraySet(j.window,RA,eA-at,Ft,j.wnext),(at-=Ft)?(c.arraySet(j.window,RA,eA-at,at,0),j.wnext=at,j.whave=j.wsize):(j.wnext+=Ft,j.wnext===j.wsize&&(j.wnext=0),j.whave>>8&255,eA.check=a(eA.check,Se,2,0),jA=0,ct=0,eA.mode=2;break}if(eA.flags=0,eA.head&&(eA.head.done=!1),!(1&eA.wrap)||(((255&jA)<<8)+(jA>>8))%31){wA.msg="incorrect header check",eA.mode=30;break}if(8!=(15&jA)){wA.msg="unknown compression method",eA.mode=30;break}if(ct-=4,ne=8+(15&(jA>>>=4)),0===eA.wbits)eA.wbits=ne;else if(ne>eA.wbits){wA.msg="invalid window size",eA.mode=30;break}eA.dmax=1<>8&1),512&eA.flags&&(Se[0]=255&jA,Se[1]=jA>>>8&255,eA.check=a(eA.check,Se,2,0)),jA=0,ct=0,eA.mode=3;case 3:for(;ct<32;){if(0===et)break A;et--,jA+=at[j++]<>>8&255,Se[2]=jA>>>16&255,Se[3]=jA>>>24&255,eA.check=a(eA.check,Se,4,0)),jA=0,ct=0,eA.mode=4;case 4:for(;ct<16;){if(0===et)break A;et--,jA+=at[j++]<>8),512&eA.flags&&(Se[0]=255&jA,Se[1]=jA>>>8&255,eA.check=a(eA.check,Se,2,0)),jA=0,ct=0,eA.mode=5;case 5:if(1024&eA.flags){for(;ct<16;){if(0===et)break A;et--,jA+=at[j++]<>>8&255,eA.check=a(eA.check,Se,2,0)),jA=0,ct=0}else eA.head&&(eA.head.extra=null);eA.mode=6;case 6:if(1024&eA.flags&&((Rt=eA.length)>et&&(Rt=et),Rt&&(eA.head&&(ne=eA.head.extra_len-eA.length,eA.head.extra||(eA.head.extra=new Array(eA.head.extra_len)),c.arraySet(eA.head.extra,at,j,Rt,ne)),512&eA.flags&&(eA.check=a(eA.check,at,Rt,j)),et-=Rt,j+=Rt,eA.length-=Rt),eA.length))break A;eA.length=0,eA.mode=7;case 7:if(2048&eA.flags){if(0===et)break A;Rt=0;do{ne=at[j+Rt++],eA.head&&ne&&eA.length<65536&&(eA.head.name+=String.fromCharCode(ne))}while(ne&&Rt>9&1,eA.head.done=!0),wA.adler=eA.check=0,eA.mode=12;break;case 10:for(;ct<32;){if(0===et)break A;et--,jA+=at[j++]<>>=7&ct,ct-=7&ct,eA.mode=27;break}for(;ct<3;){if(0===et)break A;et--,jA+=at[j++]<>>=1)){case 0:eA.mode=14;break;case 1:if(vt(eA),eA.mode=20,6===RA){jA>>>=2,ct-=2;break A}break;case 2:eA.mode=17;break;case 3:wA.msg="invalid block type",eA.mode=30}jA>>>=2,ct-=2;break;case 14:for(jA>>>=7&ct,ct-=7&ct;ct<32;){if(0===et)break A;et--,jA+=at[j++]<>>16^65535)){wA.msg="invalid stored block lengths",eA.mode=30;break}if(eA.length=65535&jA,jA=0,ct=0,eA.mode=15,6===RA)break A;case 15:eA.mode=16;case 16:if(Rt=eA.length){if(Rt>et&&(Rt=et),Rt>mA&&(Rt=mA),0===Rt)break A;c.arraySet(Ft,at,j,Rt,XA),et-=Rt,j+=Rt,mA-=Rt,XA+=Rt,eA.length-=Rt;break}eA.mode=12;break;case 17:for(;ct<14;){if(0===et)break A;et--,jA+=at[j++]<>>=5)),ct-=5,eA.ncode=4+(15&(jA>>>=5)),jA>>>=4,ct-=4,eA.nlen>286||eA.ndist>30){wA.msg="too many length or distance symbols",eA.mode=30;break}eA.have=0,eA.mode=18;case 18:for(;eA.have>>=3,ct-=3}for(;eA.have<19;)eA.lens[Ln[eA.have++]]=0;if(eA.lencode=eA.lendyn,eA.lenbits=7,An=E(0,eA.lens,0,19,eA.lencode,0,eA.work,tn={bits:eA.lenbits}),eA.lenbits=tn.bits,An){wA.msg="invalid code lengths set",eA.mode=30;break}eA.have=0,eA.mode=19;case 19:for(;eA.have>>16&255,be=65535&ie,!(($t=ie>>>24)<=ct);){if(0===et)break A;et--,jA+=at[j++]<>>=$t,ct-=$t,eA.lens[eA.have++]=be;else{if(16===be){for(qe=$t+2;ct>>=$t,ct-=$t,0===eA.have){wA.msg="invalid bit length repeat",eA.mode=30;break}ne=eA.lens[eA.have-1],Rt=3+(3&jA),jA>>>=2,ct-=2}else if(17===be){for(qe=$t+3;ct>>=$t)),jA>>>=3,ct-=3}else{for(qe=$t+7;ct>>=$t)),jA>>>=7,ct-=7}if(eA.have+Rt>eA.nlen+eA.ndist){wA.msg="invalid bit length repeat",eA.mode=30;break}for(;Rt--;)eA.lens[eA.have++]=ne}}if(30===eA.mode)break;if(0===eA.lens[256]){wA.msg="invalid code -- missing end-of-block",eA.mode=30;break}if(eA.lenbits=9,An=E(1,eA.lens,0,eA.nlen,eA.lencode,0,eA.work,tn={bits:eA.lenbits}),eA.lenbits=tn.bits,An){wA.msg="invalid literal/lengths set",eA.mode=30;break}if(eA.distbits=6,eA.distcode=eA.distdyn,An=E(2,eA.lens,eA.nlen,eA.ndist,eA.distcode,0,eA.work,tn={bits:eA.distbits}),eA.distbits=tn.bits,An){wA.msg="invalid distances set",eA.mode=30;break}if(eA.mode=20,6===RA)break A;case 20:eA.mode=21;case 21:if(et>=6&&mA>=258){wA.next_out=XA,wA.avail_out=mA,wA.next_in=j,wA.avail_in=et,eA.hold=jA,eA.bits=ct,s(wA,yt),XA=wA.next_out,Ft=wA.output,mA=wA.avail_out,j=wA.next_in,at=wA.input,et=wA.avail_in,jA=eA.hold,ct=eA.bits,12===eA.mode&&(eA.back=-1);break}for(eA.back=0;me=(ie=eA.lencode[jA&(1<>>16&255,be=65535&ie,!(($t=ie>>>24)<=ct);){if(0===et)break A;et--,jA+=at[j++]<>Re)])>>>16&255,be=65535&ie,!(Re+($t=ie>>>24)<=ct);){if(0===et)break A;et--,jA+=at[j++]<>>=Re,ct-=Re,eA.back+=Re}if(jA>>>=$t,ct-=$t,eA.back+=$t,eA.length=be,0===me){eA.mode=26;break}if(32&me){eA.back=-1,eA.mode=12;break}if(64&me){wA.msg="invalid literal/length code",eA.mode=30;break}eA.extra=15&me,eA.mode=22;case 22:if(eA.extra){for(qe=eA.extra;ct>>=eA.extra,ct-=eA.extra,eA.back+=eA.extra}eA.was=eA.length,eA.mode=23;case 23:for(;me=(ie=eA.distcode[jA&(1<>>16&255,be=65535&ie,!(($t=ie>>>24)<=ct);){if(0===et)break A;et--,jA+=at[j++]<>Re)])>>>16&255,be=65535&ie,!(Re+($t=ie>>>24)<=ct);){if(0===et)break A;et--,jA+=at[j++]<>>=Re,ct-=Re,eA.back+=Re}if(jA>>>=$t,ct-=$t,eA.back+=$t,64&me){wA.msg="invalid distance code",eA.mode=30;break}eA.offset=be,eA.extra=15&me,eA.mode=24;case 24:if(eA.extra){for(qe=eA.extra;ct>>=eA.extra,ct-=eA.extra,eA.back+=eA.extra}if(eA.offset>eA.dmax){wA.msg="invalid distance too far back",eA.mode=30;break}eA.mode=25;case 25:if(0===mA)break A;if(eA.offset>(Rt=yt-mA)){if((Rt=eA.offset-Rt)>eA.whave&&eA.sane){wA.msg="invalid distance too far back",eA.mode=30;break}Kt=Rt>eA.wnext?eA.wsize-(Rt-=eA.wnext):eA.wnext-Rt,Rt>eA.length&&(Rt=eA.length),Ne=eA.window}else Ne=Ft,Kt=XA-eA.offset,Rt=eA.length;Rt>mA&&(Rt=mA),mA-=Rt,eA.length-=Rt;do{Ft[XA++]=Ne[Kt++]}while(--Rt);0===eA.length&&(eA.mode=21);break;case 26:if(0===mA)break A;Ft[XA++]=eA.length,mA--,eA.mode=21;break;case 27:if(eA.wrap){for(;ct<32;){if(0===et)break A;et--,jA|=at[j++]<=1&&0===CA[R];R--);if(N>R&&(N=R),0===R)return F[m++]=20971520,F[m++]=20971520,D.bits=1,0;for(x=1;x0&&(0===g||1!==R))return-1;for(TA[1]=0,P=1;P852||2===g&&gA>592)return 1;for(;;){q=P-aA,p[T]uA?(J=GA[VA+p[T]],$=_[QA+p[T]]):(J=96,$=0),cA=1<>aA)+(lA-=cA)]=q<<24|J<<16|$|0}while(0!==lA);for(cA=1<>=1;if(0!==cA?(MA&=cA-1,MA+=cA):MA=0,T++,0==--CA[P]){if(P===R)break;P=w[Q+p[T]]}if(P>N&&(MA&vA)!==BA){for(0===aA&&(aA=N),xA+=x,AA=1<<(V=P-aA);V+aA852||2===g&&gA>592)return 1;F[BA=MA&vA]=N<<24|V<<16|xA-m|0}}return 0!==MA&&(F[xA+MA]=P-aA<<24|64<<16|0),D.bits=N,0}},9364:function(Y){"use strict";Y.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},1339:function(Y,I,n){"use strict";var c=n(6907);function o(G){for(var O=G.length;--O>=0;)G[O]=0}var g=256,w=286,Q=30,m=15,R=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],N=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],V=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],aA=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],gA=new Array(576);o(gA);var MA=new Array(60);o(MA);var cA=new Array(512);o(cA);var lA=new Array(256);o(lA);var BA=new Array(29);o(BA);var _,QA,uA,vA=new Array(Q);function xA(G,O,L,dA,wA){this.static_tree=G,this.extra_bits=O,this.extra_base=L,this.elems=dA,this.max_length=wA,this.has_stree=G&&G.length}function CA(G,O){this.dyn_tree=G,this.max_code=0,this.stat_desc=O}function TA(G){return G<256?cA[G]:cA[256+(G>>>7)]}function GA(G,O){G.pending_buf[G.pending++]=255&O,G.pending_buf[G.pending++]=O>>>8&255}function VA(G,O,L){G.bi_valid>16-L?(G.bi_buf|=O<>16-G.bi_valid,G.bi_valid+=L-16):(G.bi_buf|=O<>>=1,L<<=1}while(--O>0);return L>>>1}function EA(G,O,L){var RA,eA,dA=new Array(16),wA=0;for(RA=1;RA<=m;RA++)dA[RA]=wA=wA+L[RA-1]<<1;for(eA=0;eA<=O;eA++){var at=G[2*eA+1];0!==at&&(G[2*eA]=J(dA[at]++,at))}}function rA(G){var O;for(O=0;O8?GA(G,G.bi_buf):G.bi_valid>0&&(G.pending_buf[G.pending++]=G.bi_buf),G.bi_buf=0,G.bi_valid=0}function nt(G,O,L,dA){var wA=2*O,RA=2*L;return G[wA]>1;eA>=1;eA--)st(G,L,eA);j=RA;do{eA=G.heap[1],G.heap[1]=G.heap[G.heap_len--],st(G,L,1),at=G.heap[1],G.heap[--G.heap_max]=eA,G.heap[--G.heap_max]=at,L[2*j]=L[2*eA]+L[2*at],G.depth[j]=(G.depth[eA]>=G.depth[at]?G.depth[eA]:G.depth[at])+1,L[2*eA+1]=L[2*at+1]=j,G.heap[1]=j++,st(G,L,1)}while(G.heap_len>=2);G.heap[--G.heap_max]=G.heap[1],function(G,O){var j,XA,et,mA,jA,ct,L=O.dyn_tree,dA=O.max_code,wA=O.stat_desc.static_tree,RA=O.stat_desc.has_stree,eA=O.stat_desc.extra_bits,at=O.stat_desc.extra_base,Ft=O.stat_desc.max_length,bt=0;for(mA=0;mA<=m;mA++)G.bl_count[mA]=0;for(L[2*G.heap[G.heap_max]+1]=0,j=G.heap_max+1;j<573;j++)(mA=L[2*L[2*(XA=G.heap[j])+1]+1]+1)>Ft&&(mA=Ft,bt++),L[2*XA+1]=mA,!(XA>dA)&&(G.bl_count[mA]++,jA=0,XA>=at&&(jA=eA[XA-at]),G.opt_len+=(ct=L[2*XA])*(mA+jA),RA&&(G.static_len+=ct*(wA[2*XA+1]+jA)));if(0!==bt){do{for(mA=Ft-1;0===G.bl_count[mA];)mA--;G.bl_count[mA]--,G.bl_count[mA+1]+=2,G.bl_count[Ft]--,bt-=2}while(bt>0);for(mA=Ft;0!==mA;mA--)for(XA=G.bl_count[mA];0!==XA;)!((et=G.heap[--j])>dA)&&(L[2*et+1]!==mA&&(G.opt_len+=(mA-L[2*et+1])*L[2*et],L[2*et+1]=mA),XA--)}}(G,O),EA(L,Ft,G.bl_count)}function ft(G,O,L){var dA,RA,wA=-1,eA=O[1],at=0,Ft=7,j=4;for(0===eA&&(Ft=138,j=3),O[2*(L+1)+1]=65535,dA=0;dA<=L;dA++)RA=eA,eA=O[2*(dA+1)+1],!(++at>=7;dA0?(2===G.strm.data_type&&(G.strm.data_type=function(G){var L,O=4093624447;for(L=0;L<=31;L++,O>>>=1)if(1&O&&0!==G.dyn_ltree[2*L])return 0;if(0!==G.dyn_ltree[18]||0!==G.dyn_ltree[20]||0!==G.dyn_ltree[26])return 1;for(L=32;L=3&&0===G.bl_tree[2*aA[O]+1];O--);return G.opt_len+=3*(O+1)+5+5+4,O}(G),(RA=G.static_len+3+7>>>3)<=(wA=G.opt_len+3+7>>>3)&&(wA=RA)):wA=RA=L+5,L+4<=wA&&-1!==O?It(G,O,L,dA):4===G.strategy||RA===wA?(VA(G,2+(dA?1:0),3),yA(G,gA,MA)):(VA(G,4+(dA?1:0),3),function(G,O,L,dA){var wA;for(VA(G,O-257,5),VA(G,L-1,5),VA(G,dA-4,4),wA=0;wA>>8&255,G.pending_buf[G.d_buf+2*G.last_lit+1]=255&O,G.pending_buf[G.l_buf+G.last_lit]=255&L,G.last_lit++,0===O?G.dyn_ltree[2*L]++:(G.matches++,O--,G.dyn_ltree[2*(lA[L]+g+1)]++,G.dyn_dtree[2*TA(O)]++),G.last_lit===G.lit_bufsize-1},I._tr_align=function(G){VA(G,2,3),q(G,256,gA),function(G){16===G.bi_valid?(GA(G,G.bi_buf),G.bi_buf=0,G.bi_valid=0):G.bi_valid>=8&&(G.pending_buf[G.pending++]=255&G.bi_buf,G.bi_buf>>=8,G.bi_valid-=8)}(G)}},4860:function(Y){"use strict";Y.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},1924:function(Y,I,n){"use strict";var c=n(210),r=n(5559),a=r(c("String.prototype.indexOf"));Y.exports=function(E,o){var l=c(E,!!o);return"function"==typeof l&&a(E,".prototype.")>-1?r(l):l}},5559:function(Y,I,n){"use strict";var c=n(8612),r=n(210),a=r("%Function.prototype.apply%"),s=r("%Function.prototype.call%"),E=r("%Reflect.apply%",!0)||c.call(s,a),o=r("%Object.getOwnPropertyDescriptor%",!0),l=r("%Object.defineProperty%",!0),h=r("%Math.max%");if(l)try{l({},"a",{value:1})}catch(C){l=null}Y.exports=function(e){var f=E(c,s,arguments);return o&&l&&o(f,"length").configurable&&l(f,"length",{value:1+h(0,e.length-(arguments.length-1))}),f};var u=function(){return E(c,a,arguments)};l?l(Y.exports,"apply",{value:u}):Y.exports.apply=u},6313:function(Y,I,n){var c=n(8823).Buffer,r=function(){"use strict";function a(u,C,e,f){"object"==typeof C&&(e=C.depth,f=C.prototype,C=C.circular);var w=[],Q=[],d=void 0!==c;return void 0===C&&(C=!0),void 0===e&&(e=1/0),function F(m,p){if(null===m)return null;if(0==p)return m;var D,v;if("object"!=typeof m)return m;if(a.__isArray(m))D=[];else if(a.__isRegExp(m))D=new RegExp(m.source,h(m)),m.lastIndex&&(D.lastIndex=m.lastIndex);else if(a.__isDate(m))D=new Date(m.getTime());else{if(d&&c.isBuffer(m))return D=c.allocUnsafe?c.allocUnsafe(m.length):new c(m.length),m.copy(D),D;void 0===f?(v=Object.getPrototypeOf(m),D=Object.create(v)):(D=Object.create(f),v=f)}if(C){var P=w.indexOf(m);if(-1!=P)return Q[P];w.push(m),Q.push(D)}for(var T in m){var x;v&&(x=Object.getOwnPropertyDescriptor(v,T)),(!x||null!=x.set)&&(D[T]=F(m[T],p-1))}return D}(u,e)}function s(u){return Object.prototype.toString.call(u)}function h(u){var C="";return u.global&&(C+="g"),u.ignoreCase&&(C+="i"),u.multiline&&(C+="m"),C}return a.clonePrototype=function(C){if(null===C)return null;var e=function(){};return e.prototype=C,new e},a.__objToStr=s,a.__isDate=function(u){return"object"==typeof u&&"[object Date]"===s(u)},a.__isArray=function(u){return"object"==typeof u&&"[object Array]"===s(u)},a.__isRegExp=function(u){return"object"==typeof u&&"[object RegExp]"===s(u)},a.__getRegExpFlags=h,a}();Y.exports&&(Y.exports=r)},4667:function(Y,I,n){n(2479);var c=n(857);Y.exports=c.Object.values},7633:function(Y,I,n){n(9170),n(6992),n(1539),n(8674),n(7922),n(4668),n(7727),n(8783);var c=n(857);Y.exports=c.Promise},3867:function(Y,I,n){var c=n(1150);n(8628),n(7314),n(7479),n(6290),Y.exports=c},9662:function(Y,I,n){var c=n(7854),r=n(614),a=n(6330),s=c.TypeError;Y.exports=function(E){if(r(E))return E;throw s(a(E)+" is not a function")}},9483:function(Y,I,n){var c=n(7854),r=n(4411),a=n(6330),s=c.TypeError;Y.exports=function(E){if(r(E))return E;throw s(a(E)+" is not a constructor")}},6077:function(Y,I,n){var c=n(7854),r=n(614),a=c.String,s=c.TypeError;Y.exports=function(E){if("object"==typeof E||r(E))return E;throw s("Can't set "+a(E)+" as a prototype")}},1223:function(Y,I,n){var c=n(5112),r=n(30),a=n(3070),s=c("unscopables"),E=Array.prototype;null==E[s]&&a.f(E,s,{configurable:!0,value:r(null)}),Y.exports=function(o){E[s][o]=!0}},1530:function(Y,I,n){"use strict";var c=n(8710).charAt;Y.exports=function(r,a,s){return a+(s?c(r,a).length:1)}},5787:function(Y,I,n){var c=n(7854),r=n(7976),a=c.TypeError;Y.exports=function(s,E){if(r(E,s))return s;throw a("Incorrect invocation")}},9670:function(Y,I,n){var c=n(7854),r=n(111),a=c.String,s=c.TypeError;Y.exports=function(E){if(r(E))return E;throw s(a(E)+" is not an object")}},1048:function(Y,I,n){"use strict";var c=n(7908),r=n(1400),a=n(6244),s=Math.min;Y.exports=[].copyWithin||function(o,l){var h=c(this),u=a(h),C=r(o,u),e=r(l,u),f=arguments.length>2?arguments[2]:void 0,g=s((void 0===f?u:r(f,u))-e,u-C),w=1;for(e0;)e in h?h[C]=h[e]:delete h[C],C+=w,e+=w;return h}},1285:function(Y,I,n){"use strict";var c=n(7908),r=n(1400),a=n(6244);Y.exports=function(E){for(var o=c(this),l=a(o),h=arguments.length,u=r(h>1?arguments[1]:void 0,l),C=h>2?arguments[2]:void 0,e=void 0===C?l:r(C,l);e>u;)o[u++]=E;return o}},8533:function(Y,I,n){"use strict";var c=n(2092).forEach,a=n(9341)("forEach");Y.exports=a?[].forEach:function(E){return c(this,E,arguments.length>1?arguments[1]:void 0)}},7745:function(Y){Y.exports=function(I,n){for(var c=0,r=n.length,a=new I(r);r>c;)a[c]=n[c++];return a}},8457:function(Y,I,n){"use strict";var c=n(7854),r=n(9974),a=n(6916),s=n(7908),E=n(3411),o=n(7659),l=n(4411),h=n(6244),u=n(6135),C=n(8554),e=n(1246),f=c.Array;Y.exports=function(w){var Q=s(w),d=l(this),F=arguments.length,m=F>1?arguments[1]:void 0,p=void 0!==m;p&&(m=r(m,F>2?arguments[2]:void 0));var P,T,x,R,N,V,D=e(Q),v=0;if(!D||this==f&&o(D))for(P=h(Q),T=d?new this(P):f(P);P>v;v++)V=p?m(Q[v],v):Q[v],u(T,v,V);else for(N=(R=C(Q,D)).next,T=d?new this:[];!(x=a(N,R)).done;v++)V=p?E(R,m,[x.value,v],!0):x.value,u(T,v,V);return T.length=v,T}},1318:function(Y,I,n){var c=n(5656),r=n(1400),a=n(6244),s=function(E){return function(o,l,h){var f,u=c(o),C=a(u),e=r(h,C);if(E&&l!=l){for(;C>e;)if((f=u[e++])!=f)return!0}else for(;C>e;e++)if((E||e in u)&&u[e]===l)return E||e||0;return!E&&-1}};Y.exports={includes:s(!0),indexOf:s(!1)}},2092:function(Y,I,n){var c=n(9974),r=n(1702),a=n(8361),s=n(7908),E=n(6244),o=n(5417),l=r([].push),h=function(u){var C=1==u,e=2==u,f=3==u,g=4==u,w=6==u,Q=7==u,d=5==u||w;return function(F,m,p,D){for(var aA,AA,v=s(F),P=a(v),T=c(m,p),x=E(P),R=0,N=D||o,V=C?N(F,x):e||Q?N(F,0):void 0;x>R;R++)if((d||R in P)&&(AA=T(aA=P[R],R,v),u))if(C)V[R]=AA;else if(AA)switch(u){case 3:return!0;case 5:return aA;case 6:return R;case 2:l(V,aA)}else switch(u){case 4:return!1;case 7:l(V,aA)}return w?-1:f||g?g:V}};Y.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6),filterReject:h(7)}},6583:function(Y,I,n){"use strict";var c=n(2104),r=n(5656),a=n(9303),s=n(6244),E=n(9341),o=Math.min,l=[].lastIndexOf,h=!!l&&1/[1].lastIndexOf(1,-0)<0,u=E("lastIndexOf");Y.exports=h||!u?function(f){if(h)return c(l,this,arguments)||0;var g=r(this),w=s(g),Q=w-1;for(arguments.length>1&&(Q=o(Q,a(arguments[1]))),Q<0&&(Q=w+Q);Q>=0;Q--)if(Q in g&&g[Q]===f)return Q||0;return-1}:l},1194:function(Y,I,n){var c=n(7293),r=n(5112),a=n(7392),s=r("species");Y.exports=function(E){return a>=51||!c(function(){var o=[];return(o.constructor={})[s]=function(){return{foo:1}},1!==o[E](Boolean).foo})}},9341:function(Y,I,n){"use strict";var c=n(7293);Y.exports=function(r,a){var s=[][r];return!!s&&c(function(){s.call(null,a||function(){throw 1},1)})}},3671:function(Y,I,n){var c=n(7854),r=n(9662),a=n(7908),s=n(8361),E=n(6244),o=c.TypeError,l=function(h){return function(u,C,e,f){r(C);var g=a(u),w=s(g),Q=E(g),d=h?Q-1:0,F=h?-1:1;if(e<2)for(;;){if(d in w){f=w[d],d+=F;break}if(d+=F,h?d<0:Q<=d)throw o("Reduce of empty array with no initial value")}for(;h?d>=0:Q>d;d+=F)d in w&&(f=C(f,w[d],d,g));return f}};Y.exports={left:l(!1),right:l(!0)}},206:function(Y,I,n){var c=n(1702);Y.exports=c([].slice)},4362:function(Y,I,n){var c=n(206),r=Math.floor,a=function(o,l){var h=o.length,u=r(h/2);return h<8?s(o,l):E(o,a(c(o,0,u),l),a(c(o,u),l),l)},s=function(o,l){for(var C,e,h=o.length,u=1;u0;)o[e]=o[--e];e!==u++&&(o[e]=C)}return o},E=function(o,l,h,u){for(var C=l.length,e=h.length,f=0,g=0;f1?arguments[1]:void 0);V=V?V.next:R.first;)for(N(V.value,V.key,this);V&&V.removed;)V=V.previous},has:function(x){return!!P(this,x)}}),a(p,d?{get:function(x){var R=P(this,x);return R&&R.value},set:function(x,R){return v(this,0===x?0:x,R)}}:{add:function(x){return v(this,x=0===x?0:x,x)}}),u&&c(p,"size",{get:function(){return D(this).size}}),m},setStrong:function(w,Q,d){var F=Q+" Iterator",m=g(Q),p=g(F);l(w,Q,function(D,v){f(this,{type:F,target:D,state:m(D),kind:v,last:void 0})},function(){for(var D=p(this),v=D.kind,P=D.last;P&&P.removed;)P=P.previous;return D.target&&(D.last=P=P?P.next:D.state.first)?"keys"==v?{value:P.key,done:!1}:"values"==v?{value:P.value,done:!1}:{value:[P.key,P.value],done:!1}:(D.target=void 0,{value:void 0,done:!0})},d?"entries":"values",!d,!0),h(Q)}}},7710:function(Y,I,n){"use strict";var c=n(2109),r=n(7854),a=n(1702),s=n(4705),E=n(1320),o=n(2423),l=n(408),h=n(5787),u=n(614),C=n(111),e=n(7293),f=n(7072),g=n(8003),w=n(9587);Y.exports=function(Q,d,F){var m=-1!==Q.indexOf("Map"),p=-1!==Q.indexOf("Weak"),D=m?"set":"add",v=r[Q],P=v&&v.prototype,T=v,x={},R=function(cA){var lA=a(P[cA]);E(P,cA,"add"==cA?function(vA){return lA(this,0===vA?0:vA),this}:"delete"==cA?function(BA){return!(p&&!C(BA))&&lA(this,0===BA?0:BA)}:"get"==cA?function(vA){return p&&!C(vA)?void 0:lA(this,0===vA?0:vA)}:"has"==cA?function(vA){return!(p&&!C(vA))&&lA(this,0===vA?0:vA)}:function(vA,xA){return lA(this,0===vA?0:vA,xA),this})};if(s(Q,!u(v)||!(p||P.forEach&&!e(function(){(new v).entries().next()}))))T=F.getConstructor(d,Q,m,D),o.enable();else if(s(Q,!0)){var V=new T,aA=V[D](p?{}:-0,1)!=V,AA=e(function(){V.has(1)}),gA=f(function(cA){new v(cA)}),MA=!p&&e(function(){for(var cA=new v,lA=5;lA--;)cA[D](lA,lA);return!cA.has(-0)});gA||((T=d(function(cA,lA){h(cA,P);var BA=w(new v,cA,T);return null!=lA&&l(lA,BA[D],{that:BA,AS_ENTRIES:m}),BA})).prototype=P,P.constructor=T),(AA||MA)&&(R("delete"),R("has"),m&&R("get")),(MA||aA)&&R(D),p&&P.clear&&delete P.clear}return x[Q]=T,c({global:!0,forced:T!=v},x),g(T,Q),p||F.setStrong(T,Q,m),T}},9920:function(Y,I,n){var c=n(2597),r=n(3887),a=n(1236),s=n(3070);Y.exports=function(E,o){for(var l=r(o),h=s.f,u=a.f,C=0;C"+C+""}},4994:function(Y,I,n){"use strict";var c=n(3383).IteratorPrototype,r=n(30),a=n(9114),s=n(8003),E=n(7497),o=function(){return this};Y.exports=function(l,h,u){var C=h+" Iterator";return l.prototype=r(c,{next:a(1,u)}),s(l,C,!1,!0),E[C]=o,l}},8880:function(Y,I,n){var c=n(9781),r=n(3070),a=n(9114);Y.exports=c?function(s,E,o){return r.f(s,E,a(1,o))}:function(s,E,o){return s[E]=o,s}},9114:function(Y){Y.exports=function(I,n){return{enumerable:!(1&I),configurable:!(2&I),writable:!(4&I),value:n}}},6135:function(Y,I,n){"use strict";var c=n(4948),r=n(3070),a=n(9114);Y.exports=function(s,E,o){var l=c(E);l in s?r.f(s,l,a(0,o)):s[l]=o}},8709:function(Y,I,n){"use strict";var c=n(7854),r=n(9670),a=n(2140),s=c.TypeError;Y.exports=function(E){if(r(this),"string"===E||"default"===E)E="string";else if("number"!==E)throw s("Incorrect hint");return a(this,E)}},654:function(Y,I,n){"use strict";var c=n(2109),r=n(6916),a=n(1913),s=n(6530),E=n(614),o=n(4994),l=n(9518),h=n(7674),u=n(8003),C=n(8880),e=n(1320),f=n(5112),g=n(7497),w=n(3383),Q=s.PROPER,d=s.CONFIGURABLE,F=w.IteratorPrototype,m=w.BUGGY_SAFARI_ITERATORS,p=f("iterator"),D="keys",v="values",P="entries",T=function(){return this};Y.exports=function(x,R,N,V,aA,AA,gA){o(N,R,V);var QA,uA,CA,MA=function(TA){if(TA===aA&&xA)return xA;if(!m&&TA in BA)return BA[TA];switch(TA){case D:case v:case P:return function(){return new N(this,TA)}}return function(){return new N(this)}},cA=R+" Iterator",lA=!1,BA=x.prototype,vA=BA[p]||BA["@@iterator"]||aA&&BA[aA],xA=!m&&vA||MA(aA),_="Array"==R&&BA.entries||vA;if(_&&(QA=l(_.call(new x)))!==Object.prototype&&QA.next&&(!a&&l(QA)!==F&&(h?h(QA,F):E(QA[p])||e(QA,p,T)),u(QA,cA,!0,!0),a&&(g[cA]=T)),Q&&aA==v&&vA&&vA.name!==v&&(!a&&d?C(BA,"name",v):(lA=!0,xA=function(){return r(vA,this)})),aA)if(uA={values:MA(v),keys:AA?xA:MA(D),entries:MA(P)},gA)for(CA in uA)(m||lA||!(CA in BA))&&e(BA,CA,uA[CA]);else c({target:R,proto:!0,forced:m||lA},uA);return(!a||gA)&&BA[p]!==xA&&e(BA,p,xA,{name:aA}),g[R]=xA,uA}},7235:function(Y,I,n){var c=n(857),r=n(2597),a=n(6061),s=n(3070).f;Y.exports=function(E){var o=c.Symbol||(c.Symbol={});r(o,E)||s(o,E,{value:a.f(E)})}},9781:function(Y,I,n){var c=n(7293);Y.exports=!c(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},317:function(Y,I,n){var c=n(7854),r=n(111),a=c.document,s=r(a)&&r(a.createElement);Y.exports=function(E){return s?a.createElement(E):{}}},8324:function(Y){Y.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},8509:function(Y,I,n){var r=n(317)("span").classList,a=r&&r.constructor&&r.constructor.prototype;Y.exports=a===Object.prototype?void 0:a},8886:function(Y,I,n){var r=n(8113).match(/firefox\/(\d+)/i);Y.exports=!!r&&+r[1]},7871:function(Y){Y.exports="object"==typeof window},256:function(Y,I,n){var c=n(8113);Y.exports=/MSIE|Trident/.test(c)},1528:function(Y,I,n){var c=n(8113),r=n(7854);Y.exports=/ipad|iphone|ipod/i.test(c)&&void 0!==r.Pebble},6833:function(Y,I,n){var c=n(8113);Y.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(c)},5268:function(Y,I,n){var c=n(4326),r=n(7854);Y.exports="process"==c(r.process)},1036:function(Y,I,n){var c=n(8113);Y.exports=/web0s(?!.*chrome)/i.test(c)},8113:function(Y,I,n){var c=n(5005);Y.exports=c("navigator","userAgent")||""},7392:function(Y,I,n){var l,h,c=n(7854),r=n(8113),a=c.process,s=c.Deno,E=a&&a.versions||s&&s.version,o=E&&E.v8;o&&(h=(l=o.split("."))[0]>0&&l[0]<4?1:+(l[0]+l[1])),!h&&r&&(!(l=r.match(/Edge\/(\d+)/))||l[1]>=74)&&(l=r.match(/Chrome\/(\d+)/))&&(h=+l[1]),Y.exports=h},8008:function(Y,I,n){var r=n(8113).match(/AppleWebKit\/(\d+)\./);Y.exports=!!r&&+r[1]},748:function(Y){Y.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2914:function(Y,I,n){var c=n(7293),r=n(9114);Y.exports=!c(function(){var a=Error("a");return!("stack"in a)||(Object.defineProperty(a,"stack",r(1,7)),7!==a.stack)})},2109:function(Y,I,n){var c=n(7854),r=n(1236).f,a=n(8880),s=n(1320),E=n(3505),o=n(9920),l=n(4705);Y.exports=function(h,u){var w,Q,d,F,m,C=h.target,e=h.global,f=h.stat;if(w=e?c:f?c[C]||E(C,{}):(c[C]||{}).prototype)for(Q in u){if(F=u[Q],d=h.noTargetGet?(m=r(w,Q))&&m.value:w[Q],!l(e?Q:C+(f?".":"#")+Q,h.forced)&&void 0!==d){if(typeof F==typeof d)continue;o(F,d)}(h.sham||d&&d.sham)&&a(F,"sham",!0),s(w,Q,F,h)}}},7293:function(Y){Y.exports=function(I){try{return!!I()}catch(n){return!0}}},7007:function(Y,I,n){"use strict";n(4916);var c=n(1702),r=n(1320),a=n(2261),s=n(7293),E=n(5112),o=n(8880),l=E("species"),h=RegExp.prototype;Y.exports=function(u,C,e,f){var g=E(u),w=!s(function(){var m={};return m[g]=function(){return 7},7!=""[u](m)}),Q=w&&!s(function(){var m=!1,p=/a/;return"split"===u&&((p={}).constructor={},p.constructor[l]=function(){return p},p.flags="",p[g]=/./[g]),p.exec=function(){return m=!0,null},p[g](""),!m});if(!w||!Q||e){var d=c(/./[g]),F=C(g,""[u],function(m,p,D,v,P){var T=c(m),x=p.exec;return x===a||x===h.exec?w&&!P?{done:!0,value:d(p,D,v)}:{done:!0,value:T(D,p,v)}:{done:!1}});r(String.prototype,u,F[0]),r(h,g,F[1])}f&&o(h[g],"sham",!0)}},6677:function(Y,I,n){var c=n(7293);Y.exports=!c(function(){return Object.isExtensible(Object.preventExtensions({}))})},2104:function(Y){var I=Function.prototype,n=I.apply,r=I.call;Y.exports="object"==typeof Reflect&&Reflect.apply||(I.bind?r.bind(n):function(){return r.apply(n,arguments)})},9974:function(Y,I,n){var c=n(1702),r=n(9662),a=c(c.bind);Y.exports=function(s,E){return r(s),void 0===E?s:a?a(s,E):function(){return s.apply(E,arguments)}}},7065:function(Y,I,n){"use strict";var c=n(7854),r=n(1702),a=n(9662),s=n(111),E=n(2597),o=n(206),l=c.Function,h=r([].concat),u=r([].join),C={},e=function(f,g,w){if(!E(C,g)){for(var Q=[],d=0;d]*>)/g,h=/\$([$&'`]|\d{1,2})/g;Y.exports=function(u,C,e,f,g,w){var Q=e+u.length,d=f.length,F=h;return void 0!==g&&(g=r(g),F=l),E(w,F,function(m,p){var D;switch(s(p,0)){case"$":return"$";case"&":return u;case"`":return o(C,0,e);case"'":return o(C,Q);case"<":D=g[o(p,1,-1)];break;default:var v=+p;if(0===v)return m;if(v>d){var P=a(v/10);return 0===P?m:P<=d?void 0===f[P-1]?s(p,1):f[P-1]+s(p,1):m}D=f[v-1]}return void 0===D?"":D})}},7854:function(Y,I,n){var c=function(r){return r&&r.Math==Math&&r};Y.exports=c("object"==typeof globalThis&&globalThis)||c("object"==typeof window&&window)||c("object"==typeof self&&self)||c("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},2597:function(Y,I,n){var c=n(1702),r=n(7908),a=c({}.hasOwnProperty);Y.exports=Object.hasOwn||function(E,o){return a(r(E),o)}},3501:function(Y){Y.exports={}},842:function(Y,I,n){var c=n(7854);Y.exports=function(r,a){var s=c.console;s&&s.error&&(1==arguments.length?s.error(r):s.error(r,a))}},490:function(Y,I,n){var c=n(5005);Y.exports=c("document","documentElement")},4664:function(Y,I,n){var c=n(9781),r=n(7293),a=n(317);Y.exports=!c&&!r(function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a})},1179:function(Y,I,n){var r=n(7854).Array,a=Math.abs,s=Math.pow,E=Math.floor,o=Math.log,l=Math.LN2;Y.exports={pack:function(C,e,f){var D,v,P,g=r(f),w=8*f-e-1,Q=(1<>1,F=23===e?s(2,-24)-s(2,-77):0,m=C<0||0===C&&1/C<0?1:0,p=0;for((C=a(C))!=C||C===1/0?(v=C!=C?1:0,D=Q):(D=E(o(C)/l),C*(P=s(2,-D))<1&&(D--,P*=2),(C+=D+d>=1?F/P:F*s(2,1-d))*P>=2&&(D++,P/=2),D+d>=Q?(v=0,D=Q):D+d>=1?(v=(C*P-1)*s(2,e),D+=d):(v=C*s(2,d-1)*s(2,e),D=0));e>=8;g[p++]=255&v,v/=256,e-=8);for(D=D<0;g[p++]=255&D,D/=256,w-=8);return g[--p]|=128*m,g},unpack:function(C,e){var D,f=C.length,g=8*f-e-1,w=(1<>1,d=g-7,F=f-1,m=C[F--],p=127&m;for(m>>=7;d>0;p=256*p+C[F],F--,d-=8);for(D=p&(1<<-d)-1,p>>=-d,d+=e;d>0;D=256*D+C[F],F--,d-=8);if(0===p)p=1-Q;else{if(p===w)return D?NaN:m?-1/0:1/0;D+=s(2,e),p-=Q}return(m?-1:1)*D*s(2,p-e)}}},8361:function(Y,I,n){var c=n(7854),r=n(1702),a=n(7293),s=n(4326),E=c.Object,o=r("".split);Y.exports=a(function(){return!E("z").propertyIsEnumerable(0)})?function(l){return"String"==s(l)?o(l,""):E(l)}:E},9587:function(Y,I,n){var c=n(614),r=n(111),a=n(7674);Y.exports=function(s,E,o){var l,h;return a&&c(l=E.constructor)&&l!==o&&r(h=l.prototype)&&h!==o.prototype&&a(s,h),s}},2788:function(Y,I,n){var c=n(1702),r=n(614),a=n(5465),s=c(Function.toString);r(a.inspectSource)||(a.inspectSource=function(E){return s(E)}),Y.exports=a.inspectSource},8340:function(Y,I,n){var c=n(111),r=n(8880);Y.exports=function(a,s){c(s)&&"cause"in s&&r(a,"cause",s.cause)}},2423:function(Y,I,n){var c=n(2109),r=n(1702),a=n(3501),s=n(111),E=n(2597),o=n(3070).f,l=n(8006),h=n(1156),u=n(9711),C=n(6677),e=!1,f=u("meta"),g=0,w=Object.isExtensible||function(){return!0},Q=function(v){o(v,f,{value:{objectID:"O"+g++,weakData:{}}})},D=Y.exports={enable:function(){D.enable=function(){},e=!0;var v=l.f,P=r([].splice),T={};T[f]=1,v(T).length&&(l.f=function(x){for(var R=v(x),N=0,V=R.length;NR;R++)if((V=MA(Q[R]))&&h(w,V))return V;return new g(!1)}T=u(Q,x)}for(aA=T.next;!(AA=a(aA,T)).done;){try{V=MA(AA.value)}catch(cA){e(T,"throw",cA)}if("object"==typeof V&&V&&h(w,V))return V}return new g(!1)}},9212:function(Y,I,n){var c=n(6916),r=n(9670),a=n(8173);Y.exports=function(s,E,o){var l,h;r(s);try{if(!(l=a(s,"return"))){if("throw"===E)throw o;return o}l=c(l,s)}catch(u){h=!0,l=u}if("throw"===E)throw o;if(h)throw l;return r(l),o}},3383:function(Y,I,n){"use strict";var C,e,f,c=n(7293),r=n(614),a=n(30),s=n(9518),E=n(1320),o=n(5112),l=n(1913),h=o("iterator"),u=!1;[].keys&&("next"in(f=[].keys())?(e=s(s(f)))!==Object.prototype&&(C=e):u=!0),null==C||c(function(){var w={};return C[h].call(w)!==w})?C={}:l&&(C=a(C)),r(C[h])||E(C,h,function(){return this}),Y.exports={IteratorPrototype:C,BUGGY_SAFARI_ITERATORS:u}},7497:function(Y){Y.exports={}},6244:function(Y,I,n){var c=n(7466);Y.exports=function(r){return c(r.length)}},5948:function(Y,I,n){var Q,d,F,m,p,D,v,P,c=n(7854),r=n(9974),a=n(1236).f,s=n(261).set,E=n(6833),o=n(1528),l=n(1036),h=n(5268),u=c.MutationObserver||c.WebKitMutationObserver,C=c.document,e=c.process,f=c.Promise,g=a(c,"queueMicrotask"),w=g&&g.value;w||(Q=function(){var T,x;for(h&&(T=e.domain)&&T.exit();d;){x=d.fn,d=d.next;try{x()}catch(R){throw d?m():F=void 0,R}}F=void 0,T&&T.enter()},E||h||l||!u||!C?!o&&f&&f.resolve?((v=f.resolve(void 0)).constructor=f,P=r(v.then,v),m=function(){P(Q)}):h?m=function(){e.nextTick(Q)}:(s=r(s,c),m=function(){s(Q)}):(p=!0,D=C.createTextNode(""),new u(Q).observe(D,{characterData:!0}),m=function(){D.data=p=!p})),Y.exports=w||function(T){var x={fn:T,next:void 0};F&&(F.next=x),d||(d=x,m()),F=x}},3366:function(Y,I,n){var c=n(7854);Y.exports=c.Promise},133:function(Y,I,n){var c=n(7392),r=n(7293);Y.exports=!!Object.getOwnPropertySymbols&&!r(function(){var a=Symbol();return!String(a)||!(Object(a)instanceof Symbol)||!Symbol.sham&&c&&c<41})},8536:function(Y,I,n){var c=n(7854),r=n(614),a=n(2788),s=c.WeakMap;Y.exports=r(s)&&/native code/.test(a(s))},8523:function(Y,I,n){"use strict";var c=n(9662),r=function(a){var s,E;this.promise=new a(function(o,l){if(void 0!==s||void 0!==E)throw TypeError("Bad Promise constructor");s=o,E=l}),this.resolve=c(s),this.reject=c(E)};Y.exports.f=function(a){return new r(a)}},6277:function(Y,I,n){var c=n(1340);Y.exports=function(r,a){return void 0===r?arguments.length<2?"":a:c(r)}},3929:function(Y,I,n){var c=n(7854),r=n(7850),a=c.TypeError;Y.exports=function(s){if(r(s))throw a("The method doesn't accept regular expressions");return s}},7023:function(Y,I,n){var r=n(7854).isFinite;Y.exports=Number.isFinite||function(s){return"number"==typeof s&&r(s)}},1574:function(Y,I,n){"use strict";var c=n(9781),r=n(1702),a=n(6916),s=n(7293),E=n(1956),o=n(5181),l=n(5296),h=n(7908),u=n(8361),C=Object.assign,e=Object.defineProperty,f=r([].concat);Y.exports=!C||s(function(){if(c&&1!==C({b:1},C(e({},"a",{enumerable:!0,get:function(){e(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var g={},w={},Q=Symbol(),d="abcdefghijklmnopqrst";return g[Q]=7,d.split("").forEach(function(F){w[F]=F}),7!=C({},g)[Q]||E(C({},w)).join("")!=d})?function(w,Q){for(var d=h(w),F=arguments.length,m=1,p=o.f,D=l.f;F>m;)for(var R,v=u(arguments[m++]),P=p?f(E(v),p(v)):E(v),T=P.length,x=0;T>x;)R=P[x++],(!c||a(D,v,R))&&(d[R]=v[R]);return d}:C},30:function(Y,I,n){var F,c=n(9670),r=n(6048),a=n(748),s=n(3501),E=n(490),o=n(317),l=n(6200),C="prototype",e="script",f=l("IE_PROTO"),g=function(){},w=function(p){return"<"+e+">"+p+""},Q=function(p){p.write(w("")),p.close();var D=p.parentWindow.Object;return p=null,D},m=function(){try{F=new ActiveXObject("htmlfile")}catch(D){}m="undefined"!=typeof document?document.domain&&F?Q(F):function(){var v,p=o("iframe");return p.style.display="none",E.appendChild(p),p.src=String("javascript:"),(v=p.contentWindow.document).open(),v.write(w("document.F=Object")),v.close(),v.F}():Q(F);for(var p=a.length;p--;)delete m[C][a[p]];return m()};s[f]=!0,Y.exports=Object.create||function(D,v){var P;return null!==D?(g[C]=c(D),P=new g,g[C]=null,P[f]=D):P=m(),void 0===v?P:r(P,v)}},6048:function(Y,I,n){var c=n(9781),r=n(3070),a=n(9670),s=n(5656),E=n(1956);Y.exports=c?Object.defineProperties:function(l,h){a(l);for(var g,u=s(h),C=E(h),e=C.length,f=0;e>f;)r.f(l,g=C[f++],u[g]);return l}},3070:function(Y,I,n){var c=n(7854),r=n(9781),a=n(4664),s=n(9670),E=n(4948),o=c.TypeError,l=Object.defineProperty;I.f=r?l:function(u,C,e){if(s(u),C=E(C),s(e),a)try{return l(u,C,e)}catch(f){}if("get"in e||"set"in e)throw o("Accessors not supported");return"value"in e&&(u[C]=e.value),u}},1236:function(Y,I,n){var c=n(9781),r=n(6916),a=n(5296),s=n(9114),E=n(5656),o=n(4948),l=n(2597),h=n(4664),u=Object.getOwnPropertyDescriptor;I.f=c?u:function(e,f){if(e=E(e),f=o(f),h)try{return u(e,f)}catch(g){}if(l(e,f))return s(!r(a.f,e,f),e[f])}},1156:function(Y,I,n){var c=n(4326),r=n(5656),a=n(8006).f,s=n(206),E="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];Y.exports.f=function(h){return E&&"Window"==c(h)?function(l){try{return a(l)}catch(h){return s(E)}}(h):a(r(h))}},8006:function(Y,I,n){var c=n(6324),a=n(748).concat("length","prototype");I.f=Object.getOwnPropertyNames||function(E){return c(E,a)}},5181:function(Y,I){I.f=Object.getOwnPropertySymbols},9518:function(Y,I,n){var c=n(7854),r=n(2597),a=n(614),s=n(7908),E=n(6200),o=n(8544),l=E("IE_PROTO"),h=c.Object,u=h.prototype;Y.exports=o?h.getPrototypeOf:function(C){var e=s(C);if(r(e,l))return e[l];var f=e.constructor;return a(f)&&e instanceof f?f.prototype:e instanceof h?u:null}},7976:function(Y,I,n){var c=n(1702);Y.exports=c({}.isPrototypeOf)},6324:function(Y,I,n){var c=n(1702),r=n(2597),a=n(5656),s=n(1318).indexOf,E=n(3501),o=c([].push);Y.exports=function(l,h){var f,u=a(l),C=0,e=[];for(f in u)!r(E,f)&&r(u,f)&&o(e,f);for(;h.length>C;)r(u,f=h[C++])&&(~s(e,f)||o(e,f));return e}},1956:function(Y,I,n){var c=n(6324),r=n(748);Y.exports=Object.keys||function(s){return c(s,r)}},5296:function(Y,I){"use strict";var n={}.propertyIsEnumerable,c=Object.getOwnPropertyDescriptor,r=c&&!n.call({1:2},1);I.f=r?function(s){var E=c(this,s);return!!E&&E.enumerable}:n},7674:function(Y,I,n){var c=n(1702),r=n(9670),a=n(6077);Y.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var o,s=!1,E={};try{(o=c(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(E,[]),s=E instanceof Array}catch(l){}return function(h,u){return r(h),a(u),s?o(h,u):h.__proto__=u,h}}():void 0)},4699:function(Y,I,n){var c=n(9781),r=n(1702),a=n(1956),s=n(5656),o=r(n(5296).f),l=r([].push),h=function(u){return function(C){for(var d,e=s(C),f=a(e),g=f.length,w=0,Q=[];g>w;)d=f[w++],(!c||o(e,d))&&l(Q,u?[d,e[d]]:e[d]);return Q}};Y.exports={entries:h(!0),values:h(!1)}},288:function(Y,I,n){"use strict";var c=n(1694),r=n(648);Y.exports=c?{}.toString:function(){return"[object "+r(this)+"]"}},2140:function(Y,I,n){var c=n(7854),r=n(6916),a=n(614),s=n(111),E=c.TypeError;Y.exports=function(o,l){var h,u;if("string"===l&&a(h=o.toString)&&!s(u=r(h,o))||a(h=o.valueOf)&&!s(u=r(h,o))||"string"!==l&&a(h=o.toString)&&!s(u=r(h,o)))return u;throw E("Can't convert object to primitive value")}},3887:function(Y,I,n){var c=n(5005),r=n(1702),a=n(8006),s=n(5181),E=n(9670),o=r([].concat);Y.exports=c("Reflect","ownKeys")||function(h){var u=a.f(E(h)),C=s.f;return C?o(u,C(h)):u}},857:function(Y,I,n){var c=n(7854);Y.exports=c},2534:function(Y){Y.exports=function(I){try{return{error:!1,value:I()}}catch(n){return{error:!0,value:n}}}},9478:function(Y,I,n){var c=n(9670),r=n(111),a=n(8523);Y.exports=function(s,E){if(c(s),r(E)&&E.constructor===s)return E;var o=a.f(s);return(0,o.resolve)(E),o.promise}},2248:function(Y,I,n){var c=n(1320);Y.exports=function(r,a,s){for(var E in a)c(r,E,a[E],s);return r}},1320:function(Y,I,n){var c=n(7854),r=n(614),a=n(2597),s=n(8880),E=n(3505),o=n(2788),l=n(9909),h=n(6530).CONFIGURABLE,u=l.get,C=l.enforce,e=String(String).split("String");(Y.exports=function(f,g,w,Q){var D,d=!!Q&&!!Q.unsafe,F=!!Q&&!!Q.enumerable,m=!!Q&&!!Q.noTargetGet,p=Q&&void 0!==Q.name?Q.name:g;r(w)&&("Symbol("===String(p).slice(0,7)&&(p="["+String(p).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!a(w,"name")||h&&w.name!==p)&&s(w,"name",p),(D=C(w)).source||(D.source=e.join("string"==typeof p?p:""))),f!==c?(d?!m&&f[g]&&(F=!0):delete f[g],F?f[g]=w:s(f,g,w)):F?f[g]=w:E(g,w)})(Function.prototype,"toString",function(){return r(this)&&u(this).source||o(this)})},7651:function(Y,I,n){var c=n(7854),r=n(6916),a=n(9670),s=n(614),E=n(4326),o=n(2261),l=c.TypeError;Y.exports=function(h,u){var C=h.exec;if(s(C)){var e=r(C,h,u);return null!==e&&a(e),e}if("RegExp"===E(h))return r(o,h,u);throw l("RegExp#exec called on incompatible receiver")}},2261:function(Y,I,n){"use strict";var P,T,c=n(6916),r=n(1702),a=n(1340),s=n(7066),E=n(2999),o=n(2309),l=n(30),h=n(9909).get,u=n(9441),C=n(7168),e=o("native-string-replace",String.prototype.replace),f=RegExp.prototype.exec,g=f,w=r("".charAt),Q=r("".indexOf),d=r("".replace),F=r("".slice),m=(T=/b*/g,c(f,P=/a/,"a"),c(f,T,"a"),0!==P.lastIndex||0!==T.lastIndex),p=E.UNSUPPORTED_Y||E.BROKEN_CARET,D=void 0!==/()??/.exec("")[1];(m||D||p||u||C)&&(g=function(T){var aA,AA,gA,MA,cA,lA,BA,x=this,R=h(x),N=a(T),V=R.raw;if(V)return V.lastIndex=x.lastIndex,aA=c(g,V,N),x.lastIndex=V.lastIndex,aA;var vA=R.groups,xA=p&&x.sticky,_=c(s,x),QA=x.source,uA=0,CA=N;if(xA&&(_=d(_,"y",""),-1===Q(_,"g")&&(_+="g"),CA=F(N,x.lastIndex),x.lastIndex>0&&(!x.multiline||x.multiline&&"\n"!==w(N,x.lastIndex-1))&&(QA="(?: "+QA+")",CA=" "+CA,uA++),AA=new RegExp("^(?:"+QA+")",_)),D&&(AA=new RegExp("^"+QA+"$(?!\\s)",_)),m&&(gA=x.lastIndex),MA=c(f,xA?AA:x,CA),xA?MA?(MA.input=F(MA.input,uA),MA[0]=F(MA[0],uA),MA.index=x.lastIndex,x.lastIndex+=MA[0].length):x.lastIndex=0:m&&MA&&(x.lastIndex=x.global?MA.index+MA[0].length:gA),D&&MA&&MA.length>1&&c(e,MA[0],AA,function(){for(cA=1;cAb)","g");return"b"!==s.exec("b").groups.a||"bc"!=="b".replace(s,"$c")})},4488:function(Y,I,n){var r=n(7854).TypeError;Y.exports=function(a){if(null==a)throw r("Can't call method on "+a);return a}},3505:function(Y,I,n){var c=n(7854),r=Object.defineProperty;Y.exports=function(a,s){try{r(c,a,{value:s,configurable:!0,writable:!0})}catch(E){c[a]=s}return s}},6340:function(Y,I,n){"use strict";var c=n(5005),r=n(3070),a=n(5112),s=n(9781),E=a("species");Y.exports=function(o){var l=c(o);s&&l&&!l[E]&&(0,r.f)(l,E,{configurable:!0,get:function(){return this}})}},8003:function(Y,I,n){var c=n(3070).f,r=n(2597),s=n(5112)("toStringTag");Y.exports=function(E,o,l){E&&!r(E=l?E:E.prototype,s)&&c(E,s,{configurable:!0,value:o})}},6200:function(Y,I,n){var c=n(2309),r=n(9711),a=c("keys");Y.exports=function(s){return a[s]||(a[s]=r(s))}},5465:function(Y,I,n){var c=n(7854),r=n(3505),a="__core-js_shared__",s=c[a]||r(a,{});Y.exports=s},2309:function(Y,I,n){var c=n(1913),r=n(5465);(Y.exports=function(a,s){return r[a]||(r[a]=void 0!==s?s:{})})("versions",[]).push({version:"3.19.0",mode:c?"pure":"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})},6707:function(Y,I,n){var c=n(9670),r=n(9483),s=n(5112)("species");Y.exports=function(E,o){var h,l=c(E).constructor;return void 0===l||null==(h=c(l)[s])?o:r(h)}},3429:function(Y,I,n){var c=n(7293);Y.exports=function(r){return c(function(){var a=""[r]('"');return a!==a.toLowerCase()||a.split('"').length>3})}},8710:function(Y,I,n){var c=n(1702),r=n(9303),a=n(1340),s=n(4488),E=c("".charAt),o=c("".charCodeAt),l=c("".slice),h=function(u){return function(C,e){var Q,d,f=a(s(C)),g=r(e),w=f.length;return g<0||g>=w?u?"":void 0:(Q=o(f,g))<55296||Q>56319||g+1===w||(d=o(f,g+1))<56320||d>57343?u?E(f,g):Q:u?l(f,g,g+2):d-56320+(Q-55296<<10)+65536}};Y.exports={codeAt:h(!1),charAt:h(!0)}},8415:function(Y,I,n){"use strict";var c=n(7854),r=n(9303),a=n(1340),s=n(4488),E=c.RangeError;Y.exports=function(l){var h=a(s(this)),u="",C=r(l);if(C<0||C==1/0)throw E("Wrong number of repetitions");for(;C>0;(C>>>=1)&&(h+=h))1&C&&(u+=h);return u}},6091:function(Y,I,n){var c=n(6530).PROPER,r=n(7293),a=n(1361);Y.exports=function(E){return r(function(){return!!a[E]()||"\u200b\x85\u180e"!=="\u200b\x85\u180e"[E]()||c&&a[E].name!==E})}},3111:function(Y,I,n){var c=n(1702),r=n(4488),a=n(1340),s=n(1361),E=c("".replace),o="["+s+"]",l=RegExp("^"+o+o+"*"),h=RegExp(o+o+"*$"),u=function(C){return function(e){var f=a(r(e));return 1&C&&(f=E(f,l,"")),2&C&&(f=E(f,h,"")),f}};Y.exports={start:u(1),end:u(2),trim:u(3)}},261:function(Y,I,n){var P,T,x,R,c=n(7854),r=n(2104),a=n(9974),s=n(614),E=n(2597),o=n(7293),l=n(490),h=n(206),u=n(317),C=n(6833),e=n(5268),f=c.setImmediate,g=c.clearImmediate,w=c.process,Q=c.Dispatch,d=c.Function,F=c.MessageChannel,m=c.String,p=0,D={},v="onreadystatechange";try{P=c.location}catch(gA){}var N=function(gA){if(E(D,gA)){var MA=D[gA];delete D[gA],MA()}},V=function(gA){return function(){N(gA)}},aA=function(gA){N(gA.data)},AA=function(gA){c.postMessage(m(gA),P.protocol+"//"+P.host)};(!f||!g)&&(f=function(MA){var cA=h(arguments,1);return D[++p]=function(){r(s(MA)?MA:d(MA),void 0,cA)},T(p),p},g=function(MA){delete D[MA]},e?T=function(gA){w.nextTick(V(gA))}:Q&&Q.now?T=function(gA){Q.now(V(gA))}:F&&!C?(R=(x=new F).port2,x.port1.onmessage=aA,T=a(R.postMessage,R)):c.addEventListener&&s(c.postMessage)&&!c.importScripts&&P&&"file:"!==P.protocol&&!o(AA)?(T=AA,c.addEventListener("message",aA,!1)):T=v in u("script")?function(gA){l.appendChild(u("script"))[v]=function(){l.removeChild(this),N(gA)}}:function(gA){setTimeout(V(gA),0)}),Y.exports={set:f,clear:g}},863:function(Y,I,n){var c=n(1702);Y.exports=c(1..valueOf)},1400:function(Y,I,n){var c=n(9303),r=Math.max,a=Math.min;Y.exports=function(s,E){var o=c(s);return o<0?r(o+E,0):a(o,E)}},7067:function(Y,I,n){var c=n(7854),r=n(9303),a=n(7466),s=c.RangeError;Y.exports=function(E){if(void 0===E)return 0;var o=r(E),l=a(o);if(o!==l)throw s("Wrong length or index");return l}},5656:function(Y,I,n){var c=n(8361),r=n(4488);Y.exports=function(a){return c(r(a))}},9303:function(Y){var I=Math.ceil,n=Math.floor;Y.exports=function(c){var r=+c;return r!=r||0===r?0:(r>0?n:I)(r)}},7466:function(Y,I,n){var c=n(9303),r=Math.min;Y.exports=function(a){return a>0?r(c(a),9007199254740991):0}},7908:function(Y,I,n){var c=n(7854),r=n(4488),a=c.Object;Y.exports=function(s){return a(r(s))}},4590:function(Y,I,n){var c=n(7854),r=n(3002),a=c.RangeError;Y.exports=function(s,E){var o=r(s);if(o%E)throw a("Wrong offset");return o}},3002:function(Y,I,n){var c=n(7854),r=n(9303),a=c.RangeError;Y.exports=function(s){var E=r(s);if(E<0)throw a("The argument can't be less than 0");return E}},7593:function(Y,I,n){var c=n(7854),r=n(6916),a=n(111),s=n(2190),E=n(8173),o=n(2140),l=n(5112),h=c.TypeError,u=l("toPrimitive");Y.exports=function(C,e){if(!a(C)||s(C))return C;var g,f=E(C,u);if(f){if(void 0===e&&(e="default"),g=r(f,C,e),!a(g)||s(g))return g;throw h("Can't convert object to primitive value")}return void 0===e&&(e="number"),o(C,e)}},4948:function(Y,I,n){var c=n(7593),r=n(2190);Y.exports=function(a){var s=c(a,"string");return r(s)?s:s+""}},1694:function(Y,I,n){var a={};a[n(5112)("toStringTag")]="z",Y.exports="[object z]"===String(a)},1340:function(Y,I,n){var c=n(7854),r=n(648),a=c.String;Y.exports=function(s){if("Symbol"===r(s))throw TypeError("Cannot convert a Symbol value to a string");return a(s)}},6330:function(Y,I,n){var r=n(7854).String;Y.exports=function(a){try{return r(a)}catch(s){return"Object"}}},9843:function(Y,I,n){"use strict";var c=n(2109),r=n(7854),a=n(6916),s=n(9781),E=n(3832),o=n(2094),l=n(2091),h=n(5787),u=n(9114),C=n(8880),e=n(5988),f=n(7466),g=n(7067),w=n(4590),Q=n(4948),d=n(2597),F=n(648),m=n(111),p=n(2190),D=n(30),v=n(7976),P=n(7674),T=n(8006).f,x=n(7321),R=n(2092).forEach,N=n(6340),V=n(3070),aA=n(1236),AA=n(9909),gA=n(9587),MA=AA.get,cA=AA.set,lA=V.f,BA=aA.f,vA=Math.round,xA=r.RangeError,_=l.ArrayBuffer,QA=_.prototype,uA=l.DataView,CA=o.NATIVE_ARRAY_BUFFER_VIEWS,TA=o.TYPED_ARRAY_CONSTRUCTOR,GA=o.TYPED_ARRAY_TAG,VA=o.TypedArray,q=o.TypedArrayPrototype,J=o.aTypedArrayConstructor,$=o.isTypedArray,W="BYTES_PER_ELEMENT",EA="Wrong length",DA=function(yA,_A){J(yA);for(var ft=0,lt=_A.length,SA=new yA(lt);lt>ft;)SA[ft]=_A[ft++];return SA},rA=function(yA,_A){lA(yA,_A,{get:function(){return MA(this)[_A]}})},hA=function(yA){var _A;return v(QA,yA)||"ArrayBuffer"==(_A=F(yA))||"SharedArrayBuffer"==_A},HA=function(yA,_A){return $(yA)&&!p(_A)&&_A in yA&&e(+_A)&&_A>=0},nt=function(_A,ft){return ft=Q(ft),HA(_A,ft)?u(2,_A[ft]):BA(_A,ft)},st=function(_A,ft,lt){return ft=Q(ft),!(HA(_A,ft)&&m(lt)&&d(lt,"value"))||d(lt,"get")||d(lt,"set")||lt.configurable||d(lt,"writable")&&!lt.writable||d(lt,"enumerable")&&!lt.enumerable?lA(_A,ft,lt):(_A[ft]=lt.value,_A)};s?(CA||(aA.f=nt,V.f=st,rA(q,"buffer"),rA(q,"byteOffset"),rA(q,"byteLength"),rA(q,"length")),c({target:"Object",stat:!0,forced:!CA},{getOwnPropertyDescriptor:nt,defineProperty:st}),Y.exports=function(yA,_A,ft){var lt=yA.match(/\d+$/)[0]/8,SA=yA+(ft?"Clamped":"")+"Array",OA="get"+yA,WA="set"+yA,zA=r[SA],ot=zA,It=ot&&ot.prototype,dt={},G=function(O,L){lA(O,L,{get:function(){return function(O,L){var dA=MA(O);return dA.view[OA](L*lt+dA.byteOffset,!0)}(this,L)},set:function(dA){return function(O,L,dA){var wA=MA(O);ft&&(dA=(dA=vA(dA))<0?0:dA>255?255:255&dA),wA.view[WA](L*lt+wA.byteOffset,dA,!0)}(this,L,dA)},enumerable:!0})};CA?E&&(ot=_A(function(O,L,dA,wA){return h(O,It),gA(m(L)?hA(L)?void 0!==wA?new zA(L,w(dA,lt),wA):void 0!==dA?new zA(L,w(dA,lt)):new zA(L):$(L)?DA(ot,L):a(x,ot,L):new zA(g(L)),O,ot)}),P&&P(ot,VA),R(T(zA),function(O){O in ot||C(ot,O,zA[O])}),ot.prototype=It):(ot=_A(function(O,L,dA,wA){h(O,It);var at,Ft,j,RA=0,eA=0;if(m(L)){if(!hA(L))return $(L)?DA(ot,L):a(x,ot,L);at=L,eA=w(dA,lt);var XA=L.byteLength;if(void 0===wA){if(XA%lt||(Ft=XA-eA)<0)throw xA(EA)}else if((Ft=f(wA)*lt)+eA>XA)throw xA(EA);j=Ft/lt}else j=g(L),at=new _(Ft=j*lt);for(cA(O,{buffer:at,byteOffset:eA,byteLength:Ft,length:j,view:new uA(at)});RA1?arguments[1]:void 0,d=void 0!==Q,F=l(g);if(F&&!h(F))for(T=(P=o(g,F)).next,g=[];!(v=r(T,P)).done;)g.push(v.value);for(d&&w>2&&(Q=c(Q,arguments[2])),p=E(g),D=new(u(f))(p),m=0;p>m;m++)D[m]=d?Q(g[m],m):g[m];return D}},6304:function(Y,I,n){var c=n(2094),r=n(6707),a=c.TYPED_ARRAY_CONSTRUCTOR,s=c.aTypedArrayConstructor;Y.exports=function(E){return s(r(E,E[a]))}},9711:function(Y,I,n){var c=n(1702),r=0,a=Math.random(),s=c(1..toString);Y.exports=function(E){return"Symbol("+(void 0===E?"":E)+")_"+s(++r+a,36)}},3307:function(Y,I,n){var c=n(133);Y.exports=c&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},6061:function(Y,I,n){var c=n(5112);I.f=c},5112:function(Y,I,n){var c=n(7854),r=n(2309),a=n(2597),s=n(9711),E=n(133),o=n(3307),l=r("wks"),h=c.Symbol,u=h&&h.for,C=o?h:h&&h.withoutSetter||s;Y.exports=function(e){if(!a(l,e)||!E&&"string"!=typeof l[e]){var f="Symbol."+e;l[e]=E&&a(h,e)?h[e]:o&&u?u(f):C(f)}return l[e]}},1361:function(Y){Y.exports="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},9170:function(Y,I,n){"use strict";var c=n(2109),r=n(7854),a=n(7976),s=n(9518),E=n(7674),o=n(9920),l=n(30),h=n(8880),u=n(9114),C=n(7741),e=n(8340),f=n(408),g=n(6277),w=n(2914),Q=r.Error,d=[].push,F=function(D,v){var P=a(m,this)?this:l(m),T=arguments.length>2?arguments[2]:void 0;E&&(P=E(new Q(void 0),s(P))),h(P,"message",g(v,"")),w&&h(P,"stack",C(P.stack,1)),e(P,T);var x=[];return f(D,d,{that:x}),h(P,"errors",x),P};E?E(F,Q):o(F,Q);var m=F.prototype=l(Q.prototype,{constructor:u(1,F),message:u(1,""),name:u(1,"AggregateError")});c({global:!0},{AggregateError:F})},2222:function(Y,I,n){"use strict";var c=n(2109),r=n(7854),a=n(7293),s=n(3157),E=n(111),o=n(7908),l=n(6244),h=n(6135),u=n(5417),C=n(1194),e=n(5112),f=n(7392),g=e("isConcatSpreadable"),w=9007199254740991,Q="Maximum allowed index exceeded",d=r.TypeError,F=f>=51||!a(function(){var v=[];return v[g]=!1,v.concat()[0]!==v}),m=C("concat"),p=function(v){if(!E(v))return!1;var P=v[g];return void 0!==P?!!P:s(v)};c({target:"Array",proto:!0,forced:!F||!m},{concat:function(P){var N,V,aA,AA,gA,T=o(this),x=u(T,0),R=0;for(N=-1,aA=arguments.length;Nw)throw d(Q);for(V=0;V=w)throw d(Q);h(x,R++,gA)}return x.length=R,x}})},545:function(Y,I,n){var c=n(2109),r=n(1048),a=n(1223);c({target:"Array",proto:!0},{copyWithin:r}),a("copyWithin")},3290:function(Y,I,n){var c=n(2109),r=n(1285),a=n(1223);c({target:"Array",proto:!0},{fill:r}),a("fill")},7327:function(Y,I,n){"use strict";var c=n(2109),r=n(2092).filter;c({target:"Array",proto:!0,forced:!n(1194)("filter")},{filter:function(o){return r(this,o,arguments.length>1?arguments[1]:void 0)}})},1038:function(Y,I,n){var c=n(2109),r=n(8457);c({target:"Array",stat:!0,forced:!n(7072)(function(E){Array.from(E)})},{from:r})},6699:function(Y,I,n){"use strict";var c=n(2109),r=n(1318).includes,a=n(1223);c({target:"Array",proto:!0},{includes:function(E){return r(this,E,arguments.length>1?arguments[1]:void 0)}}),a("includes")},6992:function(Y,I,n){"use strict";var c=n(5656),r=n(1223),a=n(7497),s=n(9909),E=n(654),o="Array Iterator",l=s.set,h=s.getterFor(o);Y.exports=E(Array,"Array",function(u,C){l(this,{type:o,target:c(u),index:0,kind:C})},function(){var u=h(this),C=u.target,e=u.kind,f=u.index++;return!C||f>=C.length?(u.target=void 0,{value:void 0,done:!0}):"keys"==e?{value:f,done:!1}:"values"==e?{value:C[f],done:!1}:{value:[f,C[f]],done:!1}},"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},9600:function(Y,I,n){"use strict";var c=n(2109),r=n(1702),a=n(8361),s=n(5656),E=n(9341),o=r([].join),l=a!=Object,h=E("join",",");c({target:"Array",proto:!0,forced:l||!h},{join:function(C){return o(s(this),void 0===C?",":C)}})},1249:function(Y,I,n){"use strict";var c=n(2109),r=n(2092).map;c({target:"Array",proto:!0,forced:!n(1194)("map")},{map:function(o){return r(this,o,arguments.length>1?arguments[1]:void 0)}})},7042:function(Y,I,n){"use strict";var c=n(2109),r=n(7854),a=n(3157),s=n(4411),E=n(111),o=n(1400),l=n(6244),h=n(5656),u=n(6135),C=n(5112),e=n(1194),f=n(206),g=e("slice"),w=C("species"),Q=r.Array,d=Math.max;c({target:"Array",proto:!0,forced:!g},{slice:function(m,p){var x,R,N,D=h(this),v=l(D),P=o(m,v),T=o(void 0===p?v:p,v);if(a(D)&&((s(x=D.constructor)&&(x===Q||a(x.prototype))||E(x)&&null===(x=x[w]))&&(x=void 0),x===Q||void 0===x))return f(D,P,T);for(R=new(void 0===x?Q:x)(d(T-P,0)),N=0;P3)){if(e)return!0;if(g)return g<603;var x,R,N,V,T="";for(x=65;x<76;x++){switch(R=String.fromCharCode(x),x){case 66:case 69:case 70:case 72:N=3;break;case 68:case 71:N=4;break;default:N=2}for(V=0;V<47;V++)w.push({k:R+V,v:N})}for(w.sort(function(aA,AA){return AA.v-aA.v}),V=0;Vo(R)?1:-1}}(x)),aA=N.length,AA=0;AAw)throw e(Q);for(R=l(p,x),N=0;ND-x+T;N--)delete p[N-1]}else if(T>x)for(N=D-x;N>v;N--)aA=N+T-1,(V=N+x-1)in p?p[aA]=p[V]:delete p[aA];for(N=0;N2)if(gA=d(gA),43===(MA=P(gA,0))||45===MA){if(88===(cA=P(gA,2))||120===cA)return NaN}else if(48===MA){switch(P(gA,1)){case 66:case 98:lA=2,BA=49;break;case 79:case 111:lA=8,BA=55;break;default:return+gA}for(xA=(vA=v(gA,2)).length,_=0;_BA)return NaN;return parseInt(vA,lA)}return+gA};if(s(F,!m(" 0o1")||!m("0b1")||m("+0x1"))){for(var aA,R=function(gA){var MA=arguments.length<1?0:m(T(gA)),cA=this;return h(p,cA)&&e(function(){Q(cA)})?l(Object(MA),cA,R):MA},N=c?f(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),V=0;N.length>V;V++)o(m,aA=N[V])&&!o(R,aA)&&w(R,aA,g(m,aA));R.prototype=p,p.constructor=R,E(r,F,R)}},3299:function(Y,I,n){n(2109)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},5192:function(Y,I,n){n(2109)({target:"Number",stat:!0},{isFinite:n(7023)})},3161:function(Y,I,n){n(2109)({target:"Number",stat:!0},{isInteger:n(5988)})},6977:function(Y,I,n){"use strict";var c=n(2109),r=n(7854),a=n(1702),s=n(9303),E=n(863),o=n(8415),l=n(7293),h=r.RangeError,u=r.String,C=Math.floor,e=a(o),f=a("".slice),g=a(1..toFixed),w=function(D,v,P){return 0===v?P:v%2==1?w(D,v-1,P*D):w(D*D,v/2,P)},d=function(D,v,P){for(var T=-1,x=P;++T<6;)D[T]=(x+=v*D[T])%1e7,x=C(x/1e7)},F=function(D,v){for(var P=6,T=0;--P>=0;)D[P]=C((T+=D[P])/v),T=T%v*1e7},m=function(D){for(var v=6,P="";--v>=0;)if(""!==P||0===v||0!==D[v]){var T=u(D[v]);P=""===P?T:P+e("0",7-T.length)+T}return P};c({target:"Number",proto:!0,forced:l(function(){return"0.000"!==g(8e-5,3)||"1"!==g(.9,0)||"1.25"!==g(1.255,2)||"1000000000000000128"!==g(0xde0b6b3a7640080,0)})||!l(function(){g({})})},{toFixed:function(v){var V,aA,AA,gA,P=E(this),T=s(v),x=[0,0,0,0,0,0],R="",N="0";if(T<0||T>20)throw h("Incorrect fraction digits");if(P!=P)return"NaN";if(P<=-1e21||P>=1e21)return u(P);if(P<0&&(R="-",P=-P),P>1e-21)if(aA=(V=function(D){for(var v=0,P=D;P>=4096;)v+=12,P/=4096;for(;P>=2;)v+=1,P/=2;return v}(P*w(2,69,1))-69)<0?P*w(2,-V,1):P/w(2,V,1),aA*=4503599627370496,(V=52-V)>0){for(d(x,0,aA),AA=T;AA>=7;)d(x,1e7,0),AA-=7;for(d(x,w(10,AA,1),0),AA=V-1;AA>=23;)F(x,1<<23),AA-=23;F(x,1<0?R+((gA=N.length)<=T?"0."+e("0",T-gA)+N:f(N,0,gA-T)+"."+f(N,gA-T)):R+N}})},9601:function(Y,I,n){var c=n(2109),r=n(1574);c({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},3371:function(Y,I,n){var c=n(2109),r=n(6677),a=n(7293),s=n(111),E=n(2423).onFreeze,o=Object.freeze;c({target:"Object",stat:!0,forced:a(function(){o(1)}),sham:!r},{freeze:function(u){return o&&s(u)?o(E(u)):u}})},5003:function(Y,I,n){var c=n(2109),r=n(7293),a=n(5656),s=n(1236).f,E=n(9781),o=r(function(){s(1)});c({target:"Object",stat:!0,forced:!E||o,sham:!E},{getOwnPropertyDescriptor:function(u,C){return s(a(u),C)}})},9337:function(Y,I,n){var c=n(2109),r=n(9781),a=n(3887),s=n(5656),E=n(1236),o=n(6135);c({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(h){for(var w,Q,u=s(h),C=E.f,e=a(u),f={},g=0;e.length>g;)void 0!==(Q=C(u,w=e[g++]))&&o(f,w,Q);return f}})},489:function(Y,I,n){var c=n(2109),r=n(7293),a=n(7908),s=n(9518),E=n(8544);c({target:"Object",stat:!0,forced:r(function(){s(1)}),sham:!E},{getPrototypeOf:function(h){return s(a(h))}})},7941:function(Y,I,n){var c=n(2109),r=n(7908),a=n(1956);c({target:"Object",stat:!0,forced:n(7293)(function(){a(1)})},{keys:function(l){return a(r(l))}})},1539:function(Y,I,n){var c=n(1694),r=n(1320),a=n(288);c||r(Object.prototype,"toString",a,{unsafe:!0})},2479:function(Y,I,n){var c=n(2109),r=n(4699).values;c({target:"Object",stat:!0},{values:function(s){return r(s)}})},7922:function(Y,I,n){"use strict";var c=n(2109),r=n(6916),a=n(9662),s=n(8523),E=n(2534),o=n(408);c({target:"Promise",stat:!0},{allSettled:function(h){var u=this,C=s.f(u),e=C.resolve,f=C.reject,g=E(function(){var w=a(u.resolve),Q=[],d=0,F=1;o(h,function(m){var p=d++,D=!1;F++,r(w,u,m).then(function(v){D||(D=!0,Q[p]={status:"fulfilled",value:v},--F||e(Q))},function(v){D||(D=!0,Q[p]={status:"rejected",reason:v},--F||e(Q))})}),--F||e(Q)});return g.error&&f(g.value),C.promise}})},4668:function(Y,I,n){"use strict";var c=n(2109),r=n(9662),a=n(5005),s=n(6916),E=n(8523),o=n(2534),l=n(408),h="No one promise resolved";c({target:"Promise",stat:!0},{any:function(C){var e=this,f=a("AggregateError"),g=E.f(e),w=g.resolve,Q=g.reject,d=o(function(){var F=r(e.resolve),m=[],p=0,D=1,v=!1;l(C,function(P){var T=p++,x=!1;D++,s(F,e,P).then(function(R){x||v||(v=!0,w(R))},function(R){x||v||(x=!0,m[T]=R,--D||Q(new f(m,h)))})}),--D||Q(new f(m,h))});return d.error&&Q(d.value),g.promise}})},7727:function(Y,I,n){"use strict";var c=n(2109),r=n(1913),a=n(3366),s=n(7293),E=n(5005),o=n(614),l=n(6707),h=n(9478),u=n(1320);if(c({target:"Promise",proto:!0,real:!0,forced:!!a&&s(function(){a.prototype.finally.call({then:function(){}},function(){})})},{finally:function(f){var g=l(this,E("Promise")),w=o(f);return this.then(w?function(Q){return h(g,f()).then(function(){return Q})}:f,w?function(Q){return h(g,f()).then(function(){throw Q})}:f)}}),!r&&o(a)){var e=E("Promise").prototype.finally;a.prototype.finally!==e&&u(a.prototype,"finally",e,{unsafe:!0})}},8674:function(Y,I,n){"use strict";var yA,_A,ft,lt,c=n(2109),r=n(1913),a=n(7854),s=n(5005),E=n(6916),o=n(3366),l=n(1320),h=n(2248),u=n(7674),C=n(8003),e=n(6340),f=n(9662),g=n(614),w=n(111),Q=n(5787),d=n(2788),F=n(408),m=n(7072),p=n(6707),D=n(261).set,v=n(5948),P=n(9478),T=n(842),x=n(8523),R=n(2534),N=n(9909),V=n(4705),aA=n(5112),AA=n(7871),gA=n(5268),MA=n(7392),cA=aA("species"),lA="Promise",BA=N.get,vA=N.set,xA=N.getterFor(lA),_=o&&o.prototype,QA=o,uA=_,CA=a.TypeError,TA=a.document,GA=a.process,VA=x.f,q=VA,J=!!(TA&&TA.createEvent&&a.dispatchEvent),$=g(a.PromiseRejectionEvent),W="unhandledrejection",st=!1,SA=V(lA,function(){var L=d(QA),dA=L!==String(QA);if(!dA&&66===MA||r&&!uA.finally)return!0;if(MA>=51&&/native code/.test(L))return!1;var wA=new QA(function(at){at(1)}),RA=function(at){at(function(){},function(){})};return(wA.constructor={})[cA]=RA,!(st=wA.then(function(){})instanceof RA)||!dA&&AA&&!$}),OA=SA||!m(function(L){QA.all(L).catch(function(){})}),WA=function(L){var dA;return!(!w(L)||!g(dA=L.then))&&dA},zA=function(L,dA){if(!L.notified){L.notified=!0;var wA=L.reactions;v(function(){for(var RA=L.value,eA=1==L.state,at=0;wA.length>at;){var jA,ct,bt,Ft=wA[at++],j=eA?Ft.ok:Ft.fail,XA=Ft.resolve,et=Ft.reject,mA=Ft.domain;try{j?(eA||(2===L.rejection&&vt(L),L.rejection=1),!0===j?jA=RA:(mA&&mA.enter(),jA=j(RA),mA&&(mA.exit(),bt=!0)),jA===Ft.promise?et(CA("Promise-chain cycle")):(ct=WA(jA))?E(ct,jA,XA,et):XA(jA)):et(RA)}catch(yt){mA&&!bt&&mA.exit(),et(yt)}}L.reactions=[],L.notified=!1,dA&&!L.rejection&&It(L)})}},ot=function(L,dA,wA){var RA,eA;J?((RA=TA.createEvent("Event")).promise=dA,RA.reason=wA,RA.initEvent(L,!1,!0),a.dispatchEvent(RA)):RA={promise:dA,reason:wA},!$&&(eA=a["on"+L])?eA(RA):L===W&&T("Unhandled promise rejection",wA)},It=function(L){E(D,a,function(){var eA,dA=L.facade,wA=L.value;if(dt(L)&&(eA=R(function(){gA?GA.emit("unhandledRejection",wA,dA):ot(W,dA,wA)}),L.rejection=gA||dt(L)?2:1,eA.error))throw eA.value})},dt=function(L){return 1!==L.rejection&&!L.parent},vt=function(L){E(D,a,function(){var dA=L.facade;gA?GA.emit("rejectionHandled",dA):ot("rejectionhandled",dA,L.value)})},Pt=function(L,dA,wA){return function(RA){L(dA,RA,wA)}},G=function(L,dA,wA){L.done||(L.done=!0,wA&&(L=wA),L.value=dA,L.state=2,zA(L,!0))},O=function(L,dA,wA){if(!L.done){L.done=!0,wA&&(L=wA);try{if(L.facade===dA)throw CA("Promise can't be resolved itself");var RA=WA(dA);RA?v(function(){var eA={done:!1};try{E(RA,dA,Pt(O,eA,L),Pt(G,eA,L))}catch(at){G(eA,at,L)}}):(L.value=dA,L.state=1,zA(L,!1))}catch(eA){G({done:!1},eA,L)}}};if(SA&&(QA=function(dA){Q(this,uA),f(dA),E(yA,this);var wA=BA(this);try{dA(Pt(O,wA),Pt(G,wA))}catch(RA){G(wA,RA)}},(yA=function(dA){vA(this,{type:lA,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(uA=QA.prototype,{then:function(dA,wA){var RA=xA(this),eA=RA.reactions,at=VA(p(this,QA));return at.ok=!g(dA)||dA,at.fail=g(wA)&&wA,at.domain=gA?GA.domain:void 0,RA.parent=!0,eA[eA.length]=at,0!=RA.state&&zA(RA,!1),at.promise},catch:function(L){return this.then(void 0,L)}}),_A=function(){var L=new yA,dA=BA(L);this.promise=L,this.resolve=Pt(O,dA),this.reject=Pt(G,dA)},x.f=VA=function(L){return L===QA||L===ft?new _A(L):q(L)},!r&&g(o)&&_!==Object.prototype)){lt=_.then,st||(l(_,"then",function(dA,wA){var RA=this;return new QA(function(eA,at){E(lt,RA,eA,at)}).then(dA,wA)},{unsafe:!0}),l(_,"catch",uA.catch,{unsafe:!0}));try{delete _.constructor}catch(L){}u&&u(_,uA)}c({global:!0,wrap:!0,forced:SA},{Promise:QA}),C(QA,lA,!1,!0),e(lA),ft=s(lA),c({target:lA,stat:!0,forced:SA},{reject:function(dA){var wA=VA(this);return E(wA.reject,void 0,dA),wA.promise}}),c({target:lA,stat:!0,forced:r||SA},{resolve:function(dA){return P(r&&this===ft?QA:this,dA)}}),c({target:lA,stat:!0,forced:OA},{all:function(dA){var wA=this,RA=VA(wA),eA=RA.resolve,at=RA.reject,Ft=R(function(){var j=f(wA.resolve),XA=[],et=0,mA=1;F(dA,function(jA){var ct=et++,bt=!1;mA++,E(j,wA,jA).then(function(yt){bt||(bt=!0,XA[ct]=yt,--mA||eA(XA))},at)}),--mA||eA(XA)});return Ft.error&&at(Ft.value),RA.promise},race:function(dA){var wA=this,RA=VA(wA),eA=RA.reject,at=R(function(){var Ft=f(wA.resolve);F(dA,function(j){E(Ft,wA,j).then(RA.resolve,eA)})});return at.error&&eA(at.value),RA.promise}})},2419:function(Y,I,n){var c=n(2109),r=n(5005),a=n(2104),s=n(7065),E=n(9483),o=n(9670),l=n(111),h=n(30),u=n(7293),C=r("Reflect","construct"),e=Object.prototype,f=[].push,g=u(function(){function d(){}return!(C(function(){},[],d)instanceof d)}),w=!u(function(){C(function(){})}),Q=g||w;c({target:"Reflect",stat:!0,forced:Q,sham:Q},{construct:function(F,m){E(F),o(m);var p=arguments.length<3?F:E(arguments[2]);if(w&&!g)return C(F,m,p);if(F==p){switch(m.length){case 0:return new F;case 1:return new F(m[0]);case 2:return new F(m[0],m[1]);case 3:return new F(m[0],m[1],m[2]);case 4:return new F(m[0],m[1],m[2],m[3])}var D=[null];return a(f,D,m),new(a(s,F,D))}var v=p.prototype,P=h(l(v)?v:e),T=a(F,P,m);return l(T)?T:P}})},4916:function(Y,I,n){"use strict";var c=n(2109),r=n(2261);c({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},2087:function(Y,I,n){var c=n(9781),r=n(3070),a=n(7066),s=n(7293),E=RegExp.prototype;c&&s(function(){return"sy"!==Object.getOwnPropertyDescriptor(E,"flags").get.call({dotAll:!0,sticky:!0})})&&r.f(E,"flags",{configurable:!0,get:a})},9714:function(Y,I,n){"use strict";var c=n(1702),r=n(6530).PROPER,a=n(1320),s=n(9670),E=n(7976),o=n(1340),l=n(7293),h=n(7066),u="toString",C=RegExp.prototype,e=C[u],f=c(h);(l(function(){return"/a/b"!=e.call({source:"a",flags:"b"})})||r&&e.name!=u)&&a(RegExp.prototype,u,function(){var d=s(this),F=o(d.source),m=d.flags;return"/"+F+"/"+o(void 0===m&&E(C,d)&&!("flags"in C)?f(d):m)},{unsafe:!0})},189:function(Y,I,n){"use strict";n(7710)("Set",function(a){return function(){return a(this,arguments.length?arguments[0]:void 0)}},n(5631))},9841:function(Y,I,n){"use strict";var c=n(2109),r=n(8710).codeAt;c({target:"String",proto:!0},{codePointAt:function(s){return r(this,s)}})},4953:function(Y,I,n){var c=n(2109),r=n(7854),a=n(1702),s=n(1400),E=r.RangeError,o=String.fromCharCode,l=String.fromCodePoint,h=a([].join);c({target:"String",stat:!0,forced:!!l&&1!=l.length},{fromCodePoint:function(e){for(var Q,f=[],g=arguments.length,w=0;g>w;){if(Q=+arguments[w++],s(Q,1114111)!==Q)throw E(Q+" is not a valid code point");f[w]=Q<65536?o(Q):o(55296+((Q-=65536)>>10),Q%1024+56320)}return h(f,"")}})},2023:function(Y,I,n){"use strict";var c=n(2109),r=n(1702),a=n(3929),s=n(4488),E=n(1340),o=n(4964),l=r("".indexOf);c({target:"String",proto:!0,forced:!o("includes")},{includes:function(u){return!!~l(E(s(this)),E(a(u)),arguments.length>1?arguments[1]:void 0)}})},8734:function(Y,I,n){"use strict";var c=n(2109),r=n(4230);c({target:"String",proto:!0,forced:n(3429)("italics")},{italics:function(){return r(this,"i","","")}})},8783:function(Y,I,n){"use strict";var c=n(8710).charAt,r=n(1340),a=n(9909),s=n(654),E="String Iterator",o=a.set,l=a.getterFor(E);s(String,"String",function(h){o(this,{type:E,string:r(h),index:0})},function(){var f,u=l(this),C=u.string,e=u.index;return e>=C.length?{value:void 0,done:!0}:(f=c(C,e),u.index+=f.length,{value:f,done:!1})})},9254:function(Y,I,n){"use strict";var c=n(2109),r=n(4230);c({target:"String",proto:!0,forced:n(3429)("link")},{link:function(E){return r(this,"a","href",E)}})},6373:function(Y,I,n){"use strict";var c=n(2109),r=n(7854),a=n(6916),s=n(1702),E=n(4994),o=n(4488),l=n(7466),h=n(1340),u=n(9670),C=n(4326),e=n(7976),f=n(7850),g=n(7066),w=n(8173),Q=n(1320),d=n(7293),F=n(5112),m=n(6707),p=n(1530),D=n(7651),v=n(9909),P=n(1913),T=F("matchAll"),x="RegExp String",R=x+" Iterator",N=v.set,V=v.getterFor(R),aA=RegExp.prototype,AA=r.TypeError,gA=s(g),MA=s("".indexOf),cA=s("".matchAll),lA=!!cA&&!d(function(){cA("a",/./)}),BA=E(function(_,QA,uA,CA){N(this,{type:R,regexp:_,string:QA,global:uA,unicode:CA,done:!1})},x,function(){var _=V(this);if(_.done)return{value:void 0,done:!0};var QA=_.regexp,uA=_.string,CA=D(QA,uA);return null===CA?{value:void 0,done:_.done=!0}:_.global?(""===h(CA[0])&&(QA.lastIndex=p(uA,l(QA.lastIndex),_.unicode)),{value:CA,done:!1}):(_.done=!0,{value:CA,done:!1})}),vA=function(xA){var uA,CA,TA,GA,VA,q,_=u(this),QA=h(xA);return uA=m(_,RegExp),void 0===(CA=_.flags)&&e(aA,_)&&!("flags"in aA)&&(CA=gA(_)),TA=void 0===CA?"":h(CA),GA=new uA(uA===RegExp?_.source:_,TA),VA=!!~MA(TA,"g"),q=!!~MA(TA,"u"),GA.lastIndex=l(_.lastIndex),new BA(GA,QA,VA,q)};c({target:"String",proto:!0,forced:lA},{matchAll:function(_){var uA,CA,TA,GA,QA=o(this);if(null!=_){if(f(_)&&(uA=h(o("flags"in aA?_.flags:gA(_))),!~MA(uA,"g")))throw AA("`.matchAll` does not allow non-global regexes");if(lA)return cA(QA,_);if(void 0===(TA=w(_,T))&&P&&"RegExp"==C(_)&&(TA=vA),TA)return a(TA,_,QA)}else if(lA)return cA(QA,_);return CA=h(QA),GA=new RegExp(_,"g"),P?a(vA,GA,CA):GA[T](CA)}}),P||T in aA||Q(aA,T,vA)},4723:function(Y,I,n){"use strict";var c=n(6916),r=n(7007),a=n(9670),s=n(7466),E=n(1340),o=n(4488),l=n(8173),h=n(1530),u=n(7651);r("match",function(C,e,f){return[function(w){var Q=o(this),d=null==w?void 0:l(w,C);return d?c(d,w,Q):new RegExp(w)[C](E(Q))},function(g){var w=a(this),Q=E(g),d=f(e,w,Q);if(d.done)return d.value;if(!w.global)return u(w,Q);var F=w.unicode;w.lastIndex=0;for(var D,m=[],p=0;null!==(D=u(w,Q));){var v=E(D[0]);m[p]=v,""===v&&(w.lastIndex=h(Q,s(w.lastIndex),F)),p++}return 0===p?null:m}]})},2481:function(Y,I,n){n(2109)({target:"String",proto:!0},{repeat:n(8415)})},5306:function(Y,I,n){"use strict";var c=n(2104),r=n(6916),a=n(1702),s=n(7007),E=n(7293),o=n(9670),l=n(614),h=n(9303),u=n(7466),C=n(1340),e=n(4488),f=n(1530),g=n(8173),w=n(647),Q=n(7651),F=n(5112)("replace"),m=Math.max,p=Math.min,D=a([].concat),v=a([].push),P=a("".indexOf),T=a("".slice),x=function(aA){return void 0===aA?aA:String(aA)},R="$0"==="a".replace(/./,"$0"),N=!!/./[F]&&""===/./[F]("a","$0");s("replace",function(aA,AA,gA){var MA=N?"$":"$0";return[function(lA,BA){var vA=e(this),xA=null==lA?void 0:g(lA,F);return xA?r(xA,lA,vA,BA):r(AA,C(vA),lA,BA)},function(cA,lA){var BA=o(this),vA=C(cA);if("string"==typeof lA&&-1===P(lA,MA)&&-1===P(lA,"$<")){var xA=gA(AA,BA,vA,lA);if(xA.done)return xA.value}var _=l(lA);_||(lA=C(lA));var QA=BA.global;if(QA){var uA=BA.unicode;BA.lastIndex=0}for(var CA=[];;){var TA=Q(BA,vA);if(null===TA||(v(CA,TA),!QA))break;""===C(TA[0])&&(BA.lastIndex=f(vA,u(BA.lastIndex),uA))}for(var VA="",q=0,J=0;J=q&&(VA+=T(vA,q,W)+HA,q=W+$.length)}return VA+T(vA,q)}]},!!E(function(){var aA=/./;return aA.exec=function(){var AA=[];return AA.groups={a:"7"},AA},"7"!=="".replace(aA,"$")})||!R||N)},3123:function(Y,I,n){"use strict";var c=n(2104),r=n(6916),a=n(1702),s=n(7007),E=n(7850),o=n(9670),l=n(4488),h=n(6707),u=n(1530),C=n(7466),e=n(1340),f=n(8173),g=n(206),w=n(7651),Q=n(2261),d=n(2999),F=n(7293),m=d.UNSUPPORTED_Y,p=4294967295,D=Math.min,v=[].push,P=a(/./.exec),T=a(v),x=a("".slice),R=!F(function(){var N=/(?:)/,V=N.exec;N.exec=function(){return V.apply(this,arguments)};var aA="ab".split(N);return 2!==aA.length||"a"!==aA[0]||"b"!==aA[1]});s("split",function(N,V,aA){var AA;return AA="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(gA,MA){var cA=e(l(this)),lA=void 0===MA?p:MA>>>0;if(0===lA)return[];if(void 0===gA)return[cA];if(!E(gA))return r(V,cA,gA,lA);for(var QA,uA,CA,BA=[],xA=0,_=new RegExp(gA.source,(gA.ignoreCase?"i":"")+(gA.multiline?"m":"")+(gA.unicode?"u":"")+(gA.sticky?"y":"")+"g");(QA=r(Q,_,cA))&&!((uA=_.lastIndex)>xA&&(T(BA,x(cA,xA,QA.index)),QA.length>1&&QA.index=lA));)_.lastIndex===QA.index&&_.lastIndex++;return xA===cA.length?(CA||!P(_,""))&&T(BA,""):T(BA,x(cA,xA)),BA.length>lA?g(BA,0,lA):BA}:"0".split(void 0,0).length?function(gA,MA){return void 0===gA&&0===MA?[]:r(V,this,gA,MA)}:V,[function(MA,cA){var lA=l(this),BA=null==MA?void 0:f(MA,N);return BA?r(BA,MA,lA,cA):r(AA,e(lA),MA,cA)},function(gA,MA){var cA=o(this),lA=e(gA),BA=aA(AA,cA,lA,MA,AA!==V);if(BA.done)return BA.value;var vA=h(cA,RegExp),xA=cA.unicode,QA=new vA(m?"^(?:"+cA.source+")":cA,(cA.ignoreCase?"i":"")+(cA.multiline?"m":"")+(cA.unicode?"u":"")+(m?"g":"y")),uA=void 0===MA?p:MA>>>0;if(0===uA)return[];if(0===lA.length)return null===w(QA,lA)?[lA]:[];for(var CA=0,TA=0,GA=[];TA2?arguments[2]:void 0)})},8927:function(Y,I,n){"use strict";var c=n(2094),r=n(2092).every,a=c.aTypedArray;(0,c.exportTypedArrayMethod)("every",function(o){return r(a(this),o,arguments.length>1?arguments[1]:void 0)})},3105:function(Y,I,n){"use strict";var c=n(2094),r=n(6916),a=n(1285),s=c.aTypedArray;(0,c.exportTypedArrayMethod)("fill",function(l){var h=arguments.length;return r(a,s(this),l,h>1?arguments[1]:void 0,h>2?arguments[2]:void 0)})},5035:function(Y,I,n){"use strict";var c=n(2094),r=n(2092).filter,a=n(3074),s=c.aTypedArray;(0,c.exportTypedArrayMethod)("filter",function(l){var h=r(s(this),l,arguments.length>1?arguments[1]:void 0);return a(this,h)})},7174:function(Y,I,n){"use strict";var c=n(2094),r=n(2092).findIndex,a=c.aTypedArray;(0,c.exportTypedArrayMethod)("findIndex",function(o){return r(a(this),o,arguments.length>1?arguments[1]:void 0)})},4345:function(Y,I,n){"use strict";var c=n(2094),r=n(2092).find,a=c.aTypedArray;(0,c.exportTypedArrayMethod)("find",function(o){return r(a(this),o,arguments.length>1?arguments[1]:void 0)})},4197:function(Y,I,n){n(9843)("Float32",function(r){return function(s,E,o){return r(this,s,E,o)}})},6495:function(Y,I,n){n(9843)("Float64",function(r){return function(s,E,o){return r(this,s,E,o)}})},2846:function(Y,I,n){"use strict";var c=n(2094),r=n(2092).forEach,a=c.aTypedArray;(0,c.exportTypedArrayMethod)("forEach",function(o){r(a(this),o,arguments.length>1?arguments[1]:void 0)})},8145:function(Y,I,n){"use strict";var c=n(3832);(0,n(2094).exportTypedArrayStaticMethod)("from",n(7321),c)},4731:function(Y,I,n){"use strict";var c=n(2094),r=n(1318).includes,a=c.aTypedArray;(0,c.exportTypedArrayMethod)("includes",function(o){return r(a(this),o,arguments.length>1?arguments[1]:void 0)})},7209:function(Y,I,n){"use strict";var c=n(2094),r=n(1318).indexOf,a=c.aTypedArray;(0,c.exportTypedArrayMethod)("indexOf",function(o){return r(a(this),o,arguments.length>1?arguments[1]:void 0)})},5109:function(Y,I,n){n(9843)("Int16",function(r){return function(s,E,o){return r(this,s,E,o)}})},5125:function(Y,I,n){n(9843)("Int32",function(r){return function(s,E,o){return r(this,s,E,o)}})},7145:function(Y,I,n){n(9843)("Int8",function(r){return function(s,E,o){return r(this,s,E,o)}})},6319:function(Y,I,n){"use strict";var c=n(7854),r=n(1702),a=n(6530).PROPER,s=n(2094),E=n(6992),l=n(5112)("iterator"),h=c.Uint8Array,u=r(E.values),C=r(E.keys),e=r(E.entries),f=s.aTypedArray,g=s.exportTypedArrayMethod,w=h&&h.prototype[l],Q=!!w&&"values"===w.name,d=function(){return u(f(this))};g("entries",function(){return e(f(this))}),g("keys",function(){return C(f(this))}),g("values",d,a&&!Q),g(l,d,a&&!Q)},8867:function(Y,I,n){"use strict";var c=n(2094),r=n(1702),a=c.aTypedArray,s=c.exportTypedArrayMethod,E=r([].join);s("join",function(l){return E(a(this),l)})},7789:function(Y,I,n){"use strict";var c=n(2094),r=n(2104),a=n(6583),s=c.aTypedArray;(0,c.exportTypedArrayMethod)("lastIndexOf",function(l){var h=arguments.length;return r(a,s(this),h>1?[l,arguments[1]]:[l])})},3739:function(Y,I,n){"use strict";var c=n(2094),r=n(2092).map,a=n(6304),s=c.aTypedArray;(0,c.exportTypedArrayMethod)("map",function(l){return r(s(this),l,arguments.length>1?arguments[1]:void 0,function(h,u){return new(a(h))(u)})})},4483:function(Y,I,n){"use strict";var c=n(2094),r=n(3671).right,a=c.aTypedArray;(0,c.exportTypedArrayMethod)("reduceRight",function(o){var l=arguments.length;return r(a(this),o,l,l>1?arguments[1]:void 0)})},9368:function(Y,I,n){"use strict";var c=n(2094),r=n(3671).left,a=c.aTypedArray;(0,c.exportTypedArrayMethod)("reduce",function(o){var l=arguments.length;return r(a(this),o,l,l>1?arguments[1]:void 0)})},2056:function(Y,I,n){"use strict";var c=n(2094),r=c.aTypedArray,s=Math.floor;(0,c.exportTypedArrayMethod)("reverse",function(){for(var C,o=this,l=r(o).length,h=s(l/2),u=0;u1?arguments[1]:void 0,1),w=this.length,Q=E(f),d=a(Q),F=0;if(d+g>w)throw l("Wrong length");for(;Fg;)Q[g]=e[g++];return Q},a(function(){new Int8Array(1).slice()}))},7462:function(Y,I,n){"use strict";var c=n(2094),r=n(2092).some,a=c.aTypedArray;(0,c.exportTypedArrayMethod)("some",function(o){return r(a(this),o,arguments.length>1?arguments[1]:void 0)})},3824:function(Y,I,n){"use strict";var c=n(7854),r=n(1702),a=n(7293),s=n(9662),E=n(4362),o=n(2094),l=n(8886),h=n(256),u=n(7392),C=n(8008),e=c.Array,f=o.aTypedArray,g=o.exportTypedArrayMethod,w=c.Uint16Array,Q=w&&r(w.prototype.sort),d=!(!Q||a(function(){Q(new w(2),null)})&&a(function(){Q(new w(2),{})})),F=!!Q&&!a(function(){if(u)return u<74;if(l)return l<67;if(h)return!0;if(C)return C<602;var v,P,p=new w(516),D=e(516);for(v=0;v<516;v++)P=v%4,p[v]=515-v,D[v]=v-2*P+3;for(Q(p,function(T,x){return(T/4|0)-(x/4|0)}),v=0;v<516;v++)if(p[v]!==D[v])return!0});g("sort",function(D){return void 0!==D&&s(D),F?Q(this,D):E(f(this),(p=D,function(D,v){return void 0!==p?+p(D,v)||0:v!=v?-1:D!=D?1:0===D&&0===v?1/D>0&&1/v<0?1:-1:D>v}));var p},!F||d)},5021:function(Y,I,n){"use strict";var c=n(2094),r=n(7466),a=n(1400),s=n(6304),E=c.aTypedArray;(0,c.exportTypedArrayMethod)("subarray",function(h,u){var C=E(this),e=C.length,f=a(h,e);return new(s(C))(C.buffer,C.byteOffset+f*C.BYTES_PER_ELEMENT,r((void 0===u?e:a(u,e))-f))})},2974:function(Y,I,n){"use strict";var c=n(7854),r=n(2104),a=n(2094),s=n(7293),E=n(206),o=c.Int8Array,l=a.aTypedArray,h=a.exportTypedArrayMethod,u=[].toLocaleString,C=!!o&&s(function(){u.call(new o(1))});h("toLocaleString",function(){return r(u,C?E(l(this)):l(this),E(arguments))},s(function(){return[1,2].toLocaleString()!=new o([1,2]).toLocaleString()})||!s(function(){o.prototype.toLocaleString.call([1,2])}))},5016:function(Y,I,n){"use strict";var c=n(2094).exportTypedArrayMethod,r=n(7293),a=n(7854),s=n(1702),E=a.Uint8Array,o=E&&E.prototype||{},l=[].toString,h=s([].join);r(function(){l.call({})})&&(l=function(){return h(this)}),c("toString",l,o.toString!=l)},8255:function(Y,I,n){n(9843)("Uint16",function(r){return function(s,E,o){return r(this,s,E,o)}})},9135:function(Y,I,n){n(9843)("Uint32",function(r){return function(s,E,o){return r(this,s,E,o)}})},2472:function(Y,I,n){n(9843)("Uint8",function(r){return function(s,E,o){return r(this,s,E,o)}})},9743:function(Y,I,n){n(9843)("Uint8",function(r){return function(s,E,o){return r(this,s,E,o)}},!0)},8628:function(Y,I,n){n(9170)},5743:function(Y,I,n){n(5837)},7314:function(Y,I,n){n(7922)},6290:function(Y,I,n){n(4668)},7479:function(Y,I,n){"use strict";var c=n(2109),r=n(8523),a=n(2534);c({target:"Promise",stat:!0},{try:function(s){var E=r.f(this),o=a(s);return(o.error?E.reject:E.resolve)(o.value),E.promise}})},3728:function(Y,I,n){n(6373)},4747:function(Y,I,n){var c=n(7854),r=n(8324),a=n(8509),s=n(8533),E=n(8880),o=function(h){if(h&&h.forEach!==s)try{E(h,"forEach",s)}catch(u){h.forEach=s}};for(var l in r)r[l]&&o(c[l]&&c[l].prototype);o(a)},3948:function(Y,I,n){var c=n(7854),r=n(8324),a=n(8509),s=n(6992),E=n(8880),o=n(5112),l=o("iterator"),h=o("toStringTag"),u=s.values,C=function(f,g){if(f){if(f[l]!==u)try{E(f,l,u)}catch(Q){f[l]=u}if(f[h]||E(f,h,g),r[g])for(var w in s)if(f[w]!==s[w])try{E(f,w,s[w])}catch(Q){f[w]=s[w]}}};for(var e in r)C(c[e]&&c[e].prototype,e);C(a,"DOMTokenList")},3753:function(Y,I,n){"use strict";var c=n(2109),r=n(6916);c({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return r(URL.prototype.toString,this)}})},1150:function(Y,I,n){var c=n(7633);n(3948),Y.exports=c},251:function(Y,I,n){var c=n(2215),r=n(2584),a=n(609),s=n(8420),E=n(2847),o=n(8923),l=Date.prototype.getTime;function h(f,g,w){var Q=w||{};return!!(Q.strict?a(f,g):f===g)||(!f||!g||"object"!=typeof f&&"object"!=typeof g?Q.strict?a(f,g):f==g:function(f,g,w){var Q,d;if(typeof f!=typeof g||u(f)||u(g)||f.prototype!==g.prototype||r(f)!==r(g))return!1;var F=s(f),m=s(g);if(F!==m)return!1;if(F||m)return f.source===g.source&&E(f)===E(g);if(o(f)&&o(g))return l.call(f)===l.call(g);var p=C(f),D=C(g);if(p!==D)return!1;if(p||D){if(f.length!==g.length)return!1;for(Q=0;Q=0;Q--)if(v[Q]!=P[Q])return!1;for(Q=v.length-1;Q>=0;Q--)if(!h(f[d=v[Q]],g[d],w))return!1;return!0}(f,g,Q))}function u(f){return null==f}function C(f){return!(!f||"object"!=typeof f||"number"!=typeof f.length||"function"!=typeof f.copy||"function"!=typeof f.slice||f.length>0&&"number"!=typeof f[0])}Y.exports=h},4289:function(Y,I,n){"use strict";var c=n(2215),r="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),a=Object.prototype.toString,s=Array.prototype.concat,E=Object.defineProperty,h=E&&function(){var e={};try{for(var f in E(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(g){return!1}}(),u=function(e,f,g,w){f in e&&(!function(e){return"function"==typeof e&&"[object Function]"===a.call(e)}(w)||!w())||(h?E(e,f,{configurable:!0,enumerable:!1,value:g,writable:!0}):e[f]=g)},C=function(e,f){var g=arguments.length>2?arguments[2]:{},w=c(f);r&&(w=s.call(w,Object.getOwnPropertySymbols(f)));for(var Q=0;Q0&&R.length>T&&!R.warned){R.warned=!0;var N=new Error("Possible EventEmitter memory leak detected. "+R.length+" "+String(D)+" listeners added. Use emitter.setMaxListeners() to increase limit");N.name="MaxListenersExceededWarning",N.emitter=p,N.type=D,N.count=R.length,function(p){console&&console.warn&&console.warn(p)}(N)}return p}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C(p,D,v){var P={fired:!1,wrapFn:void 0,target:p,type:D,listener:v},T=u.bind(P);return T.listener=v,P.wrapFn=T,T}function e(p,D,v){var P=p._events;if(void 0===P)return[];var T=P[D];return void 0===T?[]:"function"==typeof T?v?[T.listener||T]:[T]:v?function(p){for(var D=new Array(p.length),v=0;v0&&(R=v[0]),R instanceof Error)throw R;var N=new Error("Unhandled error."+(R?" ("+R.message+")":""));throw N.context=R,N}var V=x[D];if(void 0===V)return!1;if("function"==typeof V)n(V,this,v);else{var aA=V.length,AA=g(V,aA);for(P=0;P=0;R--)if(P[R]===v||P[R].listener===v){N=P[R].listener,x=R;break}if(x<0)return this;0===x?P.shift():function(p,D){for(;D+1=0;T--)this.removeListener(D,v[T]);return this},s.prototype.listeners=function(D){return e(this,D,!0)},s.prototype.rawListeners=function(D){return e(this,D,!1)},s.listenerCount=function(p,D){return"function"==typeof p.listenerCount?p.listenerCount(D):f.call(p,D)},s.prototype.listenerCount=f,s.prototype.eventNames=function(){return this._eventsCount>0?c(this._events):[]}},2536:function(Y,I,n){var c=n(4275),r=n(7672);void 0===r.pdfMake&&(r.pdfMake=c),Y.exports=c},7672:function(Y,I,n){"use strict";Y.exports=function(){if("object"==typeof globalThis)return globalThis;var c;try{c=this||new Function("return this")()}catch(r){if("object"==typeof window)return window;if("object"==typeof self)return self;if(void 0!==n.g)return n.g}return c}()},9804:function(Y){var I=Object.prototype.hasOwnProperty,n=Object.prototype.toString;Y.exports=function(r,a,s){if("[object Function]"!==n.call(a))throw new TypeError("iterator must be a function");var E=r.length;if(E===+E)for(var o=0;o1&&"boolean"!=typeof aA)throw new s('"allowMissing" argument must be a boolean');var AA=x(V),gA=AA.length>0?AA[0]:"",MA=R("%"+gA+"%",aA),cA=MA.name,lA=MA.value,BA=!1,vA=MA.alias;vA&&(gA=vA[0],p(AA,m([0,1],vA)));for(var xA=1,_=!0;xA=AA.length){var TA=o(lA,QA);lA=(_=!!TA)&&"get"in TA&&!("originalValue"in TA.get)?TA.get:lA[QA]}else _=F(lA,QA),lA=lA[QA];_&&!BA&&(g[cA]=lA)}}return lA}},1405:function(Y,I,n){"use strict";var c="undefined"!=typeof Symbol&&Symbol,r=n(5419);Y.exports=function(){return"function"==typeof c&&"function"==typeof Symbol&&"symbol"==typeof c("foo")&&"symbol"==typeof Symbol("bar")&&r()}},5419:function(Y){"use strict";Y.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var n={},c=Symbol("test"),r=Object(c);if("string"==typeof c||"[object Symbol]"!==Object.prototype.toString.call(c)||"[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(c in n[c]=42,n)return!1;if("function"==typeof Object.keys&&0!==Object.keys(n).length||"function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(n).length)return!1;var s=Object.getOwnPropertySymbols(n);if(1!==s.length||s[0]!==c||!Object.prototype.propertyIsEnumerable.call(n,c))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var E=Object.getOwnPropertyDescriptor(n,c);if(42!==E.value||!0!==E.enumerable)return!1}return!0}},6410:function(Y,I,n){"use strict";var c=n(5419);Y.exports=function(){return c()&&!!Symbol.toStringTag}},7642:function(Y,I,n){"use strict";var c=n(8612);Y.exports=c.call(Function.call,Object.prototype.hasOwnProperty)},688:function(Y,I,n){"use strict";var c=n(7103).Buffer;I._dbcs=u;for(var r=-1,s=-10,E=-1e3,o=new Array(256),h=0;h<256;h++)o[h]=r;function u(g,w){if(this.encodingName=g.encodingName,!g)throw new Error("DBCS codec is called without the data.");if(!g.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var Q=g.table();this.decodeTables=[],this.decodeTables[0]=o.slice(0),this.decodeTableSeq=[];for(var d=0;dE)throw new Error("gb18030 decode tables conflict at byte 2");for(var P=this.decodeTables[E-D[v]],T=129;T<=254;T++){if(P[T]===r)P[T]=E-m;else{if(P[T]===E-m)continue;if(P[T]>E)throw new Error("gb18030 decode tables conflict at byte 3")}for(var x=this.decodeTables[E-P[T]],R=48;R<=57;R++)x[R]===r&&(x[R]=-2)}}}this.defaultCharUnicode=w.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var N={};if(g.encodeSkipVals)for(d=0;dw)return-1;for(var Q=0,d=g.length;Q>1);g[F]<=w?Q=F:d=F}return Q}u.prototype.encoder=C,u.prototype.decoder=e,u.prototype._getDecodeTrieNode=function(g){for(var w=[];g>0;g>>>=8)w.push(255&g);0==w.length&&w.push(0);for(var Q=this.decodeTables[0],d=w.length-1;d>0;d--){var F=Q[w[d]];if(F==r)Q[w[d]]=E-this.decodeTables.length,this.decodeTables.push(Q=o.slice(0));else{if(!(F<=E))throw new Error("Overwrite byte in "+this.encodingName+", addr: "+g.toString(16));Q=this.decodeTables[E-F]}}return Q},u.prototype._addDecodeChunk=function(g){var w=parseInt(g[0],16),Q=this._getDecodeTrieNode(w);w&=255;for(var d=1;d255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+g[0]+": too long"+w)},u.prototype._getEncodeBucket=function(g){var w=g>>8;return void 0===this.encodeTable[w]&&(this.encodeTable[w]=o.slice(0)),this.encodeTable[w]},u.prototype._setEncodeChar=function(g,w){var Q=this._getEncodeBucket(g),d=255&g;Q[d]<=s?this.encodeTableSeq[s-Q[d]][-1]=w:Q[d]==r&&(Q[d]=w)},u.prototype._setEncodeSequence=function(g,w){var m,Q=g[0],d=this._getEncodeBucket(Q),F=255&Q;d[F]<=s?m=this.encodeTableSeq[s-d[F]]:(m={},d[F]!==r&&(m[-1]=d[F]),d[F]=s-this.encodeTableSeq.length,this.encodeTableSeq.push(m));for(var p=1;p=0)this._setEncodeChar(D,v),F=!0;else if(D<=E){var P=E-D;m[P]||(this._fillEncodeTable(P,v<<8>>>0,Q)?F=!0:m[P]=!0)}else D<=s&&(this._setEncodeSequence(this.decodeTableSeq[s-D],v),F=!0)}return F},C.prototype.write=function(g){for(var w=c.alloc(g.length*(this.gb18030?4:3)),Q=this.leadSurrogate,d=this.seqObj,F=-1,m=0,p=0;;){if(-1===F){if(m==g.length)break;var D=g.charCodeAt(m++)}else D=F,F=-1;if(55296<=D&&D<57344)if(D<56320){if(-1===Q){Q=D;continue}Q=D,D=r}else-1!==Q?(D=65536+1024*(Q-55296)+(D-56320),Q=-1):D=r;else-1!==Q&&(F=D,D=r,Q=-1);var v=r;if(void 0!==d&&D!=r){var P=d[D];if("object"==typeof P){d=P;continue}"number"==typeof P?v=P:null==P&&void 0!==(P=d[-1])&&(v=P,F=D),d=void 0}else if(D>=0){var T=this.encodeTable[D>>8];if(void 0!==T&&(v=T[255&D]),v<=s){d=this.encodeTableSeq[s-v];continue}if(v==r&&this.gb18030){var x=f(this.gb18030.uChars,D);if(-1!=x){v=this.gb18030.gbChars[x]+(D-this.gb18030.uChars[x]),w[p++]=129+Math.floor(v/12600),v%=12600,w[p++]=48+Math.floor(v/1260),v%=1260,w[p++]=129+Math.floor(v/10),w[p++]=48+(v%=10);continue}}}v===r&&(v=this.defaultCharSingleByte),v<256?w[p++]=v:v<65536?(w[p++]=v>>8,w[p++]=255&v):v<16777216?(w[p++]=v>>16,w[p++]=v>>8&255,w[p++]=255&v):(w[p++]=v>>>24,w[p++]=v>>>16&255,w[p++]=v>>>8&255,w[p++]=255&v)}return this.seqObj=d,this.leadSurrogate=Q,w.slice(0,p)},C.prototype.end=function(){if(-1!==this.leadSurrogate||void 0!==this.seqObj){var g=c.alloc(10),w=0;if(this.seqObj){var Q=this.seqObj[-1];void 0!==Q&&(Q<256?g[w++]=Q:(g[w++]=Q>>8,g[w++]=255&Q)),this.seqObj=void 0}return-1!==this.leadSurrogate&&(g[w++]=this.defaultCharSingleByte,this.leadSurrogate=-1),g.slice(0,w)}},C.prototype.findIdx=f,e.prototype.write=function(g){for(var w=c.alloc(2*g.length),Q=this.nodeIdx,d=this.prevBytes,F=this.prevBytes.length,m=-this.prevBytes.length,D=0,v=0;D=0?g[D]:d[D+F];if(!((p=this.decodeTables[Q][P])>=0))if(p===r)p=this.defaultCharUnicode.charCodeAt(0),D=m;else if(-2===p){if(D>=3)var T=12600*(g[D-3]-129)+1260*(g[D-2]-48)+10*(g[D-1]-129)+(P-48);else T=12600*(d[D-3+F]-129)+1260*((D-2>=0?g[D-2]:d[D-2+F])-48)+10*((D-1>=0?g[D-1]:d[D-1+F])-129)+(P-48);var x=f(this.gb18030.gbChars,T);p=this.gb18030.uChars[x]+T-this.gb18030.gbChars[x]}else{if(p<=E){Q=E-p;continue}if(!(p<=s))throw new Error("iconv-lite internal error: invalid decoding table value "+p+" at "+Q+"/"+P);for(var R=this.decodeTableSeq[s-p],N=0;N>8;p=R[R.length-1]}if(p>=65536){var V=55296|(p-=65536)>>10;w[v++]=255&V,w[v++]=V>>8,p=56320|1023&p}w[v++]=255&p,w[v++]=p>>8,Q=0,m=D+1}return this.nodeIdx=Q,this.prevBytes=m>=0?Array.prototype.slice.call(g,m):d.slice(m+F).concat(Array.prototype.slice.call(g)),w.slice(0,v).toString("ucs2")},e.prototype.end=function(){for(var g="";this.prevBytes.length>0;){g+=this.defaultCharUnicode;var w=this.prevBytes.slice(1);this.prevBytes=[],this.nodeIdx=0,w.length>0&&(g+=this.write(w))}return this.prevBytes=[],this.nodeIdx=0,g}},5990:function(Y,I,n){"use strict";Y.exports={shiftjis:{type:"_dbcs",table:function(){return n(7014)},encodeAdd:{"\xa5":92,"\u203e":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return n(5633)},encodeAdd:{"\xa5":92,"\u203e":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return n(3336)}},gbk:{type:"_dbcs",table:function(){return n(3336).concat(n(4346))}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return n(3336).concat(n(4346))},gb18030:function(){return n(6258)},encodeSkipVals:[128],encodeAdd:{"\u20ac":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return n(7348)}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return n(4284)}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return n(4284).concat(n(3480))},encodeSkipVals:[36457,36463,36478,36523,36532,36557,36560,36695,36713,36718,36811,36862,36973,36986,37060,37084,37105,37311,37551,37552,37553,37554,37585,37959,38090,38361,38652,39285,39798,39800,39803,39878,39902,39916,39926,40002,40019,40034,40040,40043,40055,40124,40125,40144,40279,40282,40388,40431,40443,40617,40687,40701,40800,40907,41079,41180,41183,36812,37576,38468,38637,41636,41637,41639,41638,41676,41678]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}},6934:function(Y,I,n){"use strict";for(var c=[n(1025),n(7688),n(1279),n(758),n(9068),n(3769),n(7018),n(688),n(5990)],r=0;r>>6),C[e++]=128+(63&g)):(C[e++]=224+(g>>>12),C[e++]=128+(g>>>6&63),C[e++]=128+(63&g))}return C.slice(0,e)},l.prototype.end=function(){},h.prototype.write=function(u){for(var C=this.acc,e=this.contBytes,f=this.accBytes,g="",w=0;w0&&(g+=this.defaultCharUnicode,e=0),Q<128?g+=String.fromCharCode(Q):Q<224?(C=31&Q,e=1,f=1):Q<240?(C=15&Q,e=2,f=1):g+=this.defaultCharUnicode):e>0?(C=C<<6|63&Q,f++,0==--e&&(g+=2===f&&C<128&&C>0||3===f&&C<2048?this.defaultCharUnicode:String.fromCharCode(C))):g+=this.defaultCharUnicode}return this.acc=C,this.contBytes=e,this.accBytes=f,g},h.prototype.end=function(){var u=0;return this.contBytes>0&&(u+=this.defaultCharUnicode),u}},9068:function(Y,I,n){"use strict";var c=n(7103).Buffer;function r(E,o){if(!E)throw new Error("SBCS codec is called without the data.");if(!E.chars||128!==E.chars.length&&256!==E.chars.length)throw new Error("Encoding '"+E.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(128===E.chars.length){for(var l="",h=0;h<128;h++)l+=String.fromCharCode(h);E.chars=l+E.chars}this.decodeBuf=c.from(E.chars,"ucs2");var u=c.alloc(65536,o.defaultCharSingleByte.charCodeAt(0));for(h=0;h?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\xb0\xb7\u2219\u221a\u2592\u2500\u2502\u253c\u2524\u252c\u251c\u2534\u2510\u250c\u2514\u2518\u03b2\u221e\u03c6\xb1\xbd\xbc\u2248\xab\xbb\ufef7\ufef8\ufffd\ufffd\ufefb\ufefc\ufffd\xa0\xad\ufe82\xa3\xa4\ufe84\ufffd\ufffd\ufe8e\ufe8f\ufe95\ufe99\u060c\ufe9d\ufea1\ufea5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\ufed1\u061b\ufeb1\ufeb5\ufeb9\u061f\xa2\ufe80\ufe81\ufe83\ufe85\ufeca\ufe8b\ufe8d\ufe91\ufe93\ufe97\ufe9b\ufe9f\ufea3\ufea7\ufea9\ufeab\ufead\ufeaf\ufeb3\ufeb7\ufebb\ufebf\ufec1\ufec5\ufecb\ufecf\xa6\xac\xf7\xd7\ufec9\u0640\ufed3\ufed7\ufedb\ufedf\ufee3\ufee7\ufeeb\ufeed\ufeef\ufef3\ufebd\ufecc\ufece\ufecd\ufee1\ufe7d\u0651\ufee5\ufee9\ufeec\ufef0\ufef2\ufed0\ufed5\ufef5\ufef6\ufedd\ufed9\ufef1\u25a0\ufffd"},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xf8\xa3\xd8\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xa4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0404\u0454\u0407\u0457\u040e\u045e\xb0\u2219\xb7\u221a\u2116\xa4\u25a0\xa0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0386\ufffd\xb7\xac\xa6\u2018\u2019\u0388\u2015\u0389\u038a\u03aa\u038c\ufffd\ufffd\u038e\u03ab\xa9\u038f\xb2\xb3\u03ac\xa3\u03ad\u03ae\u03af\u03ca\u0390\u03cc\u03cd\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xbd\u0398\u0399\xab\xbb\u2591\u2592\u2593\u2502\u2524\u039a\u039b\u039c\u039d\u2563\u2551\u2557\u255d\u039e\u039f\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u03a0\u03a1\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03b1\u03b2\u03b3\u2518\u250c\u2588\u2584\u03b4\u03b5\u2580\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c3\u03c2\u03c4\u0384\xad\xb1\u03c5\u03c6\u03c7\xa7\u03c8\u0385\xb0\xa8\u03c9\u03cb\u03b0\u03ce\u25a0\xa0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\u203e\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\u0160\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\u017d\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\u0161\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\u017e\xff"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\ufe88\xd7\xf7\uf8f6\uf8f5\uf8f4\uf8f7\ufe71\x88\u25a0\u2502\u2500\u2510\u250c\u2514\u2518\ufe79\ufe7b\ufe7d\ufe7f\ufe77\ufe8a\ufef0\ufef3\ufef2\ufece\ufecf\ufed0\ufef6\ufef8\ufefa\ufefc\xa0\uf8fa\uf8f9\uf8f8\xa4\uf8fb\ufe8b\ufe91\ufe97\ufe9b\ufe9f\ufea3\u060c\xad\ufea7\ufeb3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\ufeb7\u061b\ufebb\ufebf\ufeca\u061f\ufecb\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\ufec7\u0639\u063a\ufecc\ufe82\ufe84\ufe8e\ufed3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\ufed7\ufedb\ufedf\uf8fc\ufef5\ufef7\ufef9\ufefb\ufee3\ufee7\ufeec\ufee9\ufffd"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040a\u040b\u040c\xad\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045a\u045b\u045c\xa7\u045e\u045f"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xb7\u221a\u2116\xa4\u25a0\xa0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\u0153\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\u0178\xb5\xb6\xb7\u0152\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\u0102\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\u0300\xcd\xce\xcf\u0110\xd1\u0309\xd3\xd4\u01a0\xd6\xd7\xd8\xd9\xda\xdb\xdc\u01af\u0303\xdf\xe0\xe1\xe2\u0103\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\u0301\xed\xee\xef\u0111\xf1\u0323\xf3\xf4\u01a1\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u01b0\u20ab\xff"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0e81\u0e82\u0e84\u0e87\u0e88\u0eaa\u0e8a\u0e8d\u0e94\u0e95\u0e96\u0e97\u0e99\u0e9a\u0e9b\u0e9c\u0e9d\u0e9e\u0e9f\u0ea1\u0ea2\u0ea3\u0ea5\u0ea7\u0eab\u0ead\u0eae\ufffd\ufffd\ufffd\u0eaf\u0eb0\u0eb2\u0eb3\u0eb4\u0eb5\u0eb6\u0eb7\u0eb8\u0eb9\u0ebc\u0eb1\u0ebb\u0ebd\ufffd\ufffd\ufffd\u0ec0\u0ec1\u0ec2\u0ec3\u0ec4\u0ec8\u0ec9\u0eca\u0ecb\u0ecc\u0ecd\u0ec6\ufffd\u0edc\u0edd\u20ad\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0ed0\u0ed1\u0ed2\u0ed3\u0ed4\u0ed5\u0ed6\u0ed7\u0ed8\u0ed9\ufffd\ufffd\xa2\xac\xa6\ufffd"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0e48\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\u0e49\u0e4a\u0e4b\u20ac\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\xa2\xac\xa6\xa0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20ac\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\u20ac\xa5\xa6\xa7\u0153\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\u0178\xb5\xb6\xb7\u0152\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\u0102\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\u0300\xcd\xce\xcf\u0110\xd1\u0309\xd3\xd4\u01a0\xd6\xd7\xd8\xd9\xda\xdb\xdc\u01af\u0303\xdf\xe0\xe1\xe2\u0103\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\u0301\xed\xee\xef\u0111\xf1\u0323\xf3\xf4\u01a1\xf6\xf7\xf8\xf9\xfa\xfb\xfc\u01b0\u20ab\xff"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\u0160\u2122\xb4\xa8\u2260\u017d\xd8\u221e\xb1\u2264\u2265\u2206\xb5\u2202\u2211\u220f\u0161\u222b\xaa\xba\u2126\u017e\xf8\xbf\xa1\xac\u221a\u0192\u2248\u0106\xab\u010c\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u0110\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\ufffd\xa9\u2044\xa4\u2039\u203a\xc6\xbb\u2013\xb7\u201a\u201e\u2030\xc2\u0107\xc1\u010d\xc8\xcd\xce\xcf\xcc\xd3\xd4\u0111\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u03c0\xcb\u02da\xb8\xca\xe6\u02c7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\xa2\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\xa4"},macgreek:{type:"_sbcs",chars:"\xc4\xb9\xb2\xc9\xb3\xd6\xdc\u0385\xe0\xe2\xe4\u0384\xa8\xe7\xe9\xe8\xea\xeb\xa3\u2122\xee\xef\u2022\xbd\u2030\xf4\xf6\xa6\xad\xf9\xfb\xfc\u2020\u0393\u0394\u0398\u039b\u039e\u03a0\xdf\xae\xa9\u03a3\u03aa\xa7\u2260\xb0\u0387\u0391\xb1\u2264\u2265\xa5\u0392\u0395\u0396\u0397\u0399\u039a\u039c\u03a6\u03ab\u03a8\u03a9\u03ac\u039d\xac\u039f\u03a1\u2248\u03a4\xab\xbb\u2026\xa0\u03a5\u03a7\u0386\u0388\u0153\u2013\u2015\u201c\u201d\u2018\u2019\xf7\u0389\u038a\u038c\u038e\u03ad\u03ae\u03af\u03cc\u038f\u03cd\u03b1\u03b2\u03c8\u03b4\u03b5\u03c6\u03b3\u03b7\u03b9\u03be\u03ba\u03bb\u03bc\u03bd\u03bf\u03c0\u03ce\u03c1\u03c3\u03c4\u03b8\u03c9\u03c2\u03c7\u03c5\u03b6\u03ca\u03cb\u0390\u03b0\ufffd"},maciceland:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\xdd\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\xd0\xf0\xde\xfe\xfd\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macroman:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macromania:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\u0102\u015e\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\u0103\u015f\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\u0162\u0163\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macthai:{type:"_sbcs",chars:"\xab\xbb\u2026\uf88c\uf88f\uf892\uf895\uf898\uf88b\uf88e\uf891\uf894\uf897\u201c\u201d\uf899\ufffd\u2022\uf884\uf889\uf885\uf886\uf887\uf888\uf88a\uf88d\uf890\uf893\uf896\u2018\u2019\ufffd\xa0\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufeff\u200b\u2013\u2014\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u2122\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\xae\xa9\ufffd\ufffd\ufffd\ufffd"},macturkish:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u011e\u011f\u0130\u0131\u015e\u015f\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\ufffd\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\u0490\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\xa4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255a\u255b\u255c\u255d\u255e\u255f\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256a\u256b\u256c\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255a\u255b\u0491\u255d\u255e\u255f\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256a\u0490\u256c\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\xa0\u2321\xb0\xb2\xb7\xf7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255a\u255b\u0491\u045e\u255e\u255f\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256a\u0490\u040e\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},koi8t:{type:"_sbcs",chars:"\u049b\u0493\u201a\u0492\u201e\u2026\u2020\u2021\ufffd\u2030\u04b3\u2039\u04b2\u04b7\u04b6\ufffd\u049a\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\ufffd\u203a\ufffd\ufffd\ufffd\ufffd\ufffd\u04ef\u04ee\u0451\xa4\u04e3\xa6\xa7\ufffd\ufffd\ufffd\xab\xac\xad\xae\ufffd\xb0\xb1\xb2\u0401\ufffd\u04e2\xb6\xb7\ufffd\u2116\ufffd\xbb\ufffd\ufffd\ufffd\xa9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u044f\u0440\u0441\u0442\u0443\u0436\u0432\u044c\u044b\u0437\u0448\u044d\u0449\u0447\u044a\u042e\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u042f\u0420\u0421\u0422\u0423\u0416\u0412\u042c\u042b\u0417\u0428\u042d\u0429\u0427\u042a"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\ufffd\u0587\u0589)(\xbb\xab\u2014.\u055d,-\u058a\u2026\u055c\u055b\u055e\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053a\u056a\u053b\u056b\u053c\u056c\u053d\u056d\u053e\u056e\u053f\u056f\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054a\u057a\u054b\u057b\u054c\u057c\u054d\u057d\u054e\u057e\u054f\u057f\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055a\ufffd"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201a\u0453\u201e\u2026\u2020\u2021\u20ac\u2030\u0409\u2039\u040a\u049a\u04ba\u040f\u0452\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\u0459\u203a\u045a\u049b\u04bb\u045f\xa0\u04b0\u04b1\u04d8\xa4\u04e8\xa6\xa7\u0401\xa9\u0492\xab\xac\xad\xae\u04ae\xb0\xb1\u0406\u0456\u04e9\xb5\xb6\xb7\u0451\u2116\u0493\xbb\u04d9\u04a2\u04a3\u04af\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f"},tcvn:{type:"_sbcs",chars:"\0\xda\u1ee4\x03\u1eea\u1eec\u1eee\x07\b\t\n\v\f\r\x0e\x0f\x10\u1ee8\u1ef0\u1ef2\u1ef6\u1ef8\xdd\u1ef4\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\xc0\u1ea2\xc3\xc1\u1ea0\u1eb6\u1eac\xc8\u1eba\u1ebc\xc9\u1eb8\u1ec6\xcc\u1ec8\u0128\xcd\u1eca\xd2\u1ece\xd5\xd3\u1ecc\u1ed8\u1edc\u1ede\u1ee0\u1eda\u1ee2\xd9\u1ee6\u0168\xa0\u0102\xc2\xca\xd4\u01a0\u01af\u0110\u0103\xe2\xea\xf4\u01a1\u01b0\u0111\u1eb0\u0300\u0309\u0303\u0301\u0323\xe0\u1ea3\xe3\xe1\u1ea1\u1eb2\u1eb1\u1eb3\u1eb5\u1eaf\u1eb4\u1eae\u1ea6\u1ea8\u1eaa\u1ea4\u1ec0\u1eb7\u1ea7\u1ea9\u1eab\u1ea5\u1ead\xe8\u1ec2\u1ebb\u1ebd\xe9\u1eb9\u1ec1\u1ec3\u1ec5\u1ebf\u1ec7\xec\u1ec9\u1ec4\u1ebe\u1ed2\u0129\xed\u1ecb\xf2\u1ed4\u1ecf\xf5\xf3\u1ecd\u1ed3\u1ed5\u1ed7\u1ed1\u1ed9\u1edd\u1edf\u1ee1\u1edb\u1ee3\xf9\u1ed6\u1ee7\u0169\xfa\u1ee5\u1eeb\u1eed\u1eef\u1ee9\u1ef1\u1ef3\u1ef7\u1ef9\xfd\u1ef5\u1ed0"},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\x9d\x9e\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10e3\u10e4\u10e5\u10e6\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10ef\u10f0\u10f1\u10f2\u10f3\u10f4\u10f5\u10f6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\x8d\x8e\x8f\x90\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\x9d\x9e\u0178\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6\u10f1\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10f2\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10f3\u10e3\u10e4\u10e5\u10e6\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10f4\u10ef\u10f0\u10f5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04ee\u0493\u201e\u2026\u04b6\u04ae\u04b2\u04af\u04a0\u04e2\u04a2\u049a\u04ba\u04b8\u0497\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u04b3\u04b7\u04a1\u04e3\u04a3\u049b\u04bb\u04b9\xa0\u040e\u045e\u0408\u04e8\u0498\u04b0\xa7\u0401\xa9\u04d8\xab\xac\u04ef\xae\u049c\xb0\u04b1\u0406\u0456\u0499\u04e9\xb6\xb7\u0451\u2116\u04d9\xbb\u0458\u04aa\u04ab\u049d\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f"},viscii:{type:"_sbcs",chars:"\0\x01\u1eb2\x03\x04\u1eb4\u1eaa\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\u1ef6\x15\x16\x17\x18\u1ef8\x1a\x1b\x1c\x1d\u1ef4\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\u1ea0\u1eae\u1eb0\u1eb6\u1ea4\u1ea6\u1ea8\u1eac\u1ebc\u1eb8\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1ee2\u1eda\u1edc\u1ede\u1eca\u1ece\u1ecc\u1ec8\u1ee6\u0168\u1ee4\u1ef2\xd5\u1eaf\u1eb1\u1eb7\u1ea5\u1ea7\u1ea9\u1ead\u1ebd\u1eb9\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ed1\u1ed3\u1ed5\u1ed7\u1ee0\u01a0\u1ed9\u1edd\u1edf\u1ecb\u1ef0\u1ee8\u1eea\u1eec\u01a1\u1edb\u01af\xc0\xc1\xc2\xc3\u1ea2\u0102\u1eb3\u1eb5\xc8\xc9\xca\u1eba\xcc\xcd\u0128\u1ef3\u0110\u1ee9\xd2\xd3\xd4\u1ea1\u1ef7\u1eeb\u1eed\xd9\xda\u1ef9\u1ef5\xdd\u1ee1\u01b0\xe0\xe1\xe2\xe3\u1ea3\u0103\u1eef\u1eab\xe8\xe9\xea\u1ebb\xec\xed\u0129\u1ec9\u0111\u1ef1\xf2\xf3\xf4\xf5\u1ecf\u1ecd\u1ee5\xf9\xfa\u0169\u1ee7\xfd\u1ee3\u1eee"},iso646cn:{type:"_sbcs",chars:"\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#\xa5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203e\x7f\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},iso646jp:{type:"_sbcs",chars:"\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xa5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203e\x7f\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xc0\xc2\xc8\xca\xcb\xce\xcf\xb4\u02cb\u02c6\xa8\u02dc\xd9\xdb\u20a4\xaf\xdd\xfd\xb0\xc7\xe7\xd1\xf1\xa1\xbf\xa4\xa3\xa5\xa7\u0192\xa2\xe2\xea\xf4\xfb\xe1\xe9\xf3\xfa\xe0\xe8\xf2\xf9\xe4\xeb\xf6\xfc\xc5\xee\xd8\xc6\xe5\xed\xf8\xe6\xc4\xec\xd6\xdc\xc9\xef\xdf\xd4\xc1\xc3\xe3\xd0\xf0\xcd\xcc\xd3\xd2\xd5\xf5\u0160\u0161\xda\u0178\xff\xde\xfe\xb7\xb5\xb6\xbe\u2014\xbc\xbd\xaa\xba\xab\u25a0\xbb\xb1\ufffd"},macintosh:{type:"_sbcs",chars:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u2126\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026\xa0\xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\xa4\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\ufffd\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"},ascii:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd"},tis620:{type:"_sbcs",chars:"\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0e01\u0e02\u0e03\u0e04\u0e05\u0e06\u0e07\u0e08\u0e09\u0e0a\u0e0b\u0e0c\u0e0d\u0e0e\u0e0f\u0e10\u0e11\u0e12\u0e13\u0e14\u0e15\u0e16\u0e17\u0e18\u0e19\u0e1a\u0e1b\u0e1c\u0e1d\u0e1e\u0e1f\u0e20\u0e21\u0e22\u0e23\u0e24\u0e25\u0e26\u0e27\u0e28\u0e29\u0e2a\u0e2b\u0e2c\u0e2d\u0e2e\u0e2f\u0e30\u0e31\u0e32\u0e33\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39\u0e3a\ufffd\ufffd\ufffd\ufffd\u0e3f\u0e40\u0e41\u0e42\u0e43\u0e44\u0e45\u0e46\u0e47\u0e48\u0e49\u0e4a\u0e4b\u0e4c\u0e4d\u0e4e\u0e4f\u0e50\u0e51\u0e52\u0e53\u0e54\u0e55\u0e56\u0e57\u0e58\u0e59\u0e5a\u0e5b\ufffd\ufffd\ufffd\ufffd"}}},3769:function(Y){"use strict";Y.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xc4\u0100\u0101\xc9\u0104\xd6\xdc\xe1\u0105\u010c\xe4\u010d\u0106\u0107\xe9\u0179\u017a\u010e\xed\u010f\u0112\u0113\u0116\xf3\u0117\xf4\xf6\xf5\xfa\u011a\u011b\xfc\u2020\xb0\u0118\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\u0119\xa8\u2260\u0123\u012e\u012f\u012a\u2264\u2265\u012b\u0136\u2202\u2211\u0142\u013b\u013c\u013d\u013e\u0139\u013a\u0145\u0146\u0143\xac\u221a\u0144\u0147\u2206\xab\xbb\u2026\xa0\u0148\u0150\xd5\u0151\u014c\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\u014d\u0154\u0155\u0158\u2039\u203a\u0159\u0156\u0157\u0160\u201a\u201e\u0161\u015a\u015b\xc1\u0164\u0165\xcd\u017d\u017e\u016a\xd3\xd4\u016b\u016e\xda\u016f\u0170\u0171\u0172\u0173\xdd\xfd\u0137\u017b\u0141\u017c\u0122\u02c7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u0401\u0451\u0404\u0454\u0407\u0457\u040e\u045e\xb0\u2219\xb7\u221a\u2116\u20ac\u25a0\xa0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f\u2514\u2534\u252c\u251c\u2500\u253c\u2563\u2551\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xa7\u2557\u255d\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},cp720:{type:"_sbcs",chars:"\x80\x81\xe9\xe2\x84\xe0\x86\xe7\xea\xeb\xe8\xef\xee\x8d\x8e\x8f\x90\u0651\u0652\xf4\xa4\u0640\xfb\xf9\u0621\u0622\u0623\u0624\xa3\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u0636\u0637\u0638\u0639\u063a\u0641\xb5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u2261\u064b\u064c\u064d\u064e\u064f\u0650\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}},1279:function(Y,I,n){"use strict";var c=n(7103).Buffer;function r(){}function a(){}function s(){this.overflowByte=-1}function E(u,C){this.iconv=C}function o(u,C){void 0===(u=u||{}).addBOM&&(u.addBOM=!0),this.encoder=C.iconv.getEncoder("utf-16le",u)}function l(u,C){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=u||{},this.iconv=C.iconv}function h(u,C){var e=[],f=0,g=0,w=0;A:for(var Q=0;Q=100)break A}return w>g?"utf-16be":w1114111)&&(f=g),f>=65536){var w=55296|(f-=65536)>>10;C[e++]=255&w,C[e++]=w>>8,f=56320|1023&f}return C[e++]=255&f,C[e++]=f>>8,e}function o(C,e){this.iconv=e}function l(C,e){void 0===(C=C||{}).addBOM&&(C.addBOM=!0),this.encoder=e.iconv.getEncoder(C.defaultEncoding||"utf-32le",C)}function h(C,e){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=C||{},this.iconv=e.iconv}function u(C,e){var f=[],g=0,w=0,Q=0,d=0,F=0;A:for(var m=0;m16)&&Q++,(0!==f[3]||f[2]>16)&&w++,0===f[0]&&0===f[1]&&(0!==f[2]||0!==f[3])&&F++,(0!==f[0]||0!==f[1])&&0===f[2]&&0===f[3]&&d++,f.length=0,++g>=100)break A}return F-Q>d-w?"utf-32be":F-Q0){for(;e0&&(d=this.iconv.decode(c.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",d},I.utf7imap=f,f.prototype.encoder=g,f.prototype.decoder=w,f.prototype.bomAware=!0,g.prototype.write=function(d){for(var F=this.inBase64,m=this.base64Accum,p=this.base64AccumIdx,D=c.alloc(5*d.length+10),v=0,P=0;P0&&(v+=D.write(m.slice(0,p).toString("base64").replace(/\//g,",").replace(/=+$/,""),v),p=0),D[v++]=C,F=!1),F||(D[v++]=T,T===e&&(D[v++]=C))):(F||(D[v++]=e,F=!0),F&&(m[p++]=T>>8,m[p++]=255&T,p==m.length&&(v+=D.write(m.toString("base64").replace(/\//g,","),v),p=0)))}return this.inBase64=F,this.base64AccumIdx=p,D.slice(0,v)},g.prototype.end=function(){var d=c.alloc(10),F=0;return this.inBase64&&(this.base64AccumIdx>0&&(F+=d.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),F),this.base64AccumIdx=0),d[F++]=C,this.inBase64=!1),d.slice(0,F)};var Q=l.slice();Q[",".charCodeAt(0)]=!0,w.prototype.write=function(d){for(var F="",m=0,p=this.inBase64,D=this.base64Accum,v=0;v0&&(d=this.iconv.decode(c.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",d}},5395:function(Y,I){"use strict";function c(a,s){this.encoder=a,this.addBOM=!0}function r(a,s){this.decoder=a,this.pass=!1,this.options=s||{}}I.PrependBOM=c,c.prototype.write=function(a){return this.addBOM&&(a="\ufeff"+a,this.addBOM=!1),this.encoder.write(a)},c.prototype.end=function(){return this.encoder.end()},I.StripBOM=r,r.prototype.write=function(a){var s=this.decoder.write(a);return this.pass||!s||("\ufeff"===s[0]&&(s=s.slice(1),"function"==typeof this.options.stripBOM&&this.options.stripBOM()),this.pass=!0),s},r.prototype.end=function(){return this.decoder.end()}},4914:function(Y,I,n){"use strict";var s,c=n(7103).Buffer,r=n(5395),a=Y.exports;a.encodings=null,a.defaultCharUnicode="\ufffd",a.defaultCharSingleByte="?",a.encode=function(o,l,h){o=""+(o||"");var u=a.getEncoder(l,h),C=u.write(o),e=u.end();return e&&e.length>0?c.concat([C,e]):C},a.decode=function(o,l,h){"string"==typeof o&&(a.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),a.skipDecodeWarning=!0),o=c.from(""+(o||""),"binary"));var u=a.getDecoder(l,h),C=u.write(o),e=u.end();return e?C+e:C},a.encodingExists=function(o){try{return a.getCodec(o),!0}catch(l){return!1}},a.toEncoding=a.encode,a.fromEncoding=a.decode,a._codecDataCache={},a.getCodec=function(o){a.encodings||(a.encodings=n(6934));for(var l=a._canonicalizeEncoding(o),h={};;){var u=a._codecDataCache[l];if(u)return u;var C=a.encodings[l];switch(typeof C){case"string":l=C;break;case"object":for(var e in C)h[e]=C[e];h.encodingName||(h.encodingName=l),l=C.type;break;case"function":return h.encodingName||(h.encodingName=l),u=new C(h,a),a._codecDataCache[h.encodingName]=u,u;default:throw new Error("Encoding not recognized: '"+o+"' (searched as: '"+l+"')")}}},a._canonicalizeEncoding=function(E){return(""+E).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")},a.getEncoder=function(o,l){var h=a.getCodec(o),u=new h.encoder(l,h);return h.bomAware&&l&&l.addBOM&&(u=new r.PrependBOM(u,l)),u},a.getDecoder=function(o,l){var h=a.getCodec(o),u=new h.decoder(l,h);return h.bomAware&&!(l&&!1===l.stripBOM)&&(u=new r.StripBOM(u,l)),u},a.enableStreamingAPI=function(o){if(!a.supportsStreams){var l=n(8044)(o);a.IconvLiteEncoderStream=l.IconvLiteEncoderStream,a.IconvLiteDecoderStream=l.IconvLiteDecoderStream,a.encodeStream=function(u,C){return new a.IconvLiteEncoderStream(a.getEncoder(u,C),C)},a.decodeStream=function(u,C){return new a.IconvLiteDecoderStream(a.getDecoder(u,C),C)},a.supportsStreams=!0}};try{s=n(5832)}catch(E){}s&&s.Transform?a.enableStreamingAPI(s):a.encodeStream=a.decodeStream=function(){throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.")}},8044:function(Y,I,n){"use strict";var c=n(7103).Buffer;Y.exports=function(r){var a=r.Transform;function s(o,l){this.conv=o,(l=l||{}).decodeStrings=!1,a.call(this,l)}function E(o,l){this.conv=o,(l=l||{}).encoding=this.encoding="utf8",a.call(this,l)}return(s.prototype=Object.create(a.prototype,{constructor:{value:s}}))._transform=function(o,l,h){if("string"!=typeof o)return h(new Error("Iconv encoding stream needs strings as its input."));try{var u=this.conv.write(o);u&&u.length&&this.push(u),h()}catch(C){h(C)}},s.prototype._flush=function(o){try{var l=this.conv.end();l&&l.length&&this.push(l),o()}catch(h){o(h)}},s.prototype.collect=function(o){var l=[];return this.on("error",o),this.on("data",function(h){l.push(h)}),this.on("end",function(){o(null,c.concat(l))}),this},(E.prototype=Object.create(a.prototype,{constructor:{value:E}}))._transform=function(o,l,h){if(!(c.isBuffer(o)||o instanceof Uint8Array))return h(new Error("Iconv decoding stream needs buffers as its input."));try{var u=this.conv.write(o);u&&u.length&&this.push(u,this.encoding),h()}catch(C){h(C)}},E.prototype._flush=function(o){try{var l=this.conv.end();l&&l.length&&this.push(l,this.encoding),o()}catch(h){o(h)}},E.prototype.collect=function(o){var l="";return this.on("error",o),this.on("data",function(h){l+=h}),this.on("end",function(){o(null,l)}),this},{IconvLiteEncoderStream:s,IconvLiteDecoderStream:E}}},645:function(Y,I){I.read=function(n,c,r,a,s){var E,o,l=8*s-a-1,h=(1<>1,C=-7,e=r?s-1:0,f=r?-1:1,g=n[c+e];for(e+=f,E=g&(1<<-C)-1,g>>=-C,C+=l;C>0;E=256*E+n[c+e],e+=f,C-=8);for(o=E&(1<<-C)-1,E>>=-C,C+=a;C>0;o=256*o+n[c+e],e+=f,C-=8);if(0===E)E=1-u;else{if(E===h)return o?NaN:1/0*(g?-1:1);o+=Math.pow(2,a),E-=u}return(g?-1:1)*o*Math.pow(2,E-a)},I.write=function(n,c,r,a,s,E){var o,l,h,u=8*E-s-1,C=(1<>1,f=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,g=a?0:E-1,w=a?1:-1,Q=c<0||0===c&&1/c<0?1:0;for(c=Math.abs(c),isNaN(c)||c===1/0?(l=isNaN(c)?1:0,o=C):(o=Math.floor(Math.log(c)/Math.LN2),c*(h=Math.pow(2,-o))<1&&(o--,h*=2),(c+=o+e>=1?f/h:f*Math.pow(2,1-e))*h>=2&&(o++,h/=2),o+e>=C?(l=0,o=C):o+e>=1?(l=(c*h-1)*Math.pow(2,s),o+=e):(l=c*Math.pow(2,e-1)*Math.pow(2,s),o=0));s>=8;n[r+g]=255&l,g+=w,l/=256,s-=8);for(o=o<0;n[r+g]=255&o,g+=w,o/=256,u-=8);n[r+g-w]|=128*Q}},5717:function(Y){Y.exports="function"==typeof Object.create?function(n,c){c&&(n.super_=c,n.prototype=Object.create(c.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}))}:function(n,c){if(c){n.super_=c;var r=function(){};r.prototype=c.prototype,n.prototype=new r,n.prototype.constructor=n}}},2584:function(Y,I,n){"use strict";var c=n(6410)(),a=n(1924)("Object.prototype.toString"),s=function(h){return!(c&&h&&"object"==typeof h&&Symbol.toStringTag in h)&&"[object Arguments]"===a(h)},E=function(h){return!!s(h)||null!==h&&"object"==typeof h&&"number"==typeof h.length&&h.length>=0&&"[object Array]"!==a(h)&&"[object Function]"===a(h.callee)},o=function(){return s(arguments)}();s.isLegacyArguments=E,Y.exports=o?s:E},8923:function(Y,I,n){"use strict";var c=Date.prototype.getDay,a=Object.prototype.toString,E=n(6410)();Y.exports=function(l){return"object"==typeof l&&null!==l&&(E?function(l){try{return c.call(l),!0}catch(h){return!1}}(l):"[object Date]"===a.call(l))}},8662:function(Y,I,n){"use strict";var l,c=Object.prototype.toString,r=Function.prototype.toString,a=/^\s*(?:function)?\*/,s=n(6410)(),E=Object.getPrototypeOf;Y.exports=function(u){if("function"!=typeof u)return!1;if(a.test(r.call(u)))return!0;if(!s)return"[object GeneratorFunction]"===c.call(u);if(!E)return!1;if(void 0===l){var e=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(h){}}();l=!!e&&E(e)}return E(u)===l}},8611:function(Y){"use strict";Y.exports=function(n){return n!=n}},360:function(Y,I,n){"use strict";var c=n(5559),r=n(4289),a=n(8611),s=n(9415),E=n(6743),o=c(s(),Number);r(o,{getPolyfill:s,implementation:a,shim:E}),Y.exports=o},9415:function(Y,I,n){"use strict";var c=n(8611);Y.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:c}},6743:function(Y,I,n){"use strict";var c=n(4289),r=n(9415);Y.exports=function(){var s=r();return c(Number,{isNaN:s},{isNaN:function(){return Number.isNaN!==s}}),s}},8420:function(Y,I,n){"use strict";var a,s,E,o,c=n(1924),r=n(6410)();if(r){a=c("Object.prototype.hasOwnProperty"),s=c("RegExp.prototype.exec"),E={};var l=function(){throw E};o={toString:l,valueOf:l},"symbol"==typeof Symbol.toPrimitive&&(o[Symbol.toPrimitive]=l)}var h=c("Object.prototype.toString"),u=Object.getOwnPropertyDescriptor;Y.exports=r?function(f){if(!f||"object"!=typeof f)return!1;var g=u(f,"lastIndex");if(!g||!a(g,"value"))return!1;try{s(f,o)}catch(Q){return Q===E}}:function(f){return!(!f||"object"!=typeof f&&"function"!=typeof f)&&"[object RegExp]"===h(f)}},5692:function(Y,I,n){"use strict";var c=n(9804),r=n(3083),a=n(1924),s=a("Object.prototype.toString"),E=n(6410)(),o="undefined"==typeof globalThis?n.g:globalThis,l=r(),h=a("Array.prototype.indexOf",!0)||function(Q,d){for(var F=0;F-1}return!!e&&function(Q){var d=!1;return c(C,function(F,m){if(!d)try{d=F.call(Q)===m}catch(p){}}),d}(Q)}},4244:function(Y){"use strict";var I=function(n){return n!=n};Y.exports=function(c,r){return 0===c&&0===r?1/c==1/r:!!(c===r||I(c)&&I(r))}},609:function(Y,I,n){"use strict";var c=n(4289),r=n(5559),a=n(4244),s=n(5624),E=n(2281),o=r(s(),Object);c(o,{getPolyfill:s,implementation:a,shim:E}),Y.exports=o},5624:function(Y,I,n){"use strict";var c=n(4244);Y.exports=function(){return"function"==typeof Object.is?Object.is:c}},2281:function(Y,I,n){"use strict";var c=n(5624),r=n(4289);Y.exports=function(){var s=c();return r(Object,{is:s},{is:function(){return Object.is!==s}}),s}},8987:function(Y,I,n){"use strict";var c;if(!Object.keys){var r=Object.prototype.hasOwnProperty,a=Object.prototype.toString,s=n(1414),E=Object.prototype.propertyIsEnumerable,o=!E.call({toString:null},"toString"),l=E.call(function(){},"prototype"),h=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(g){var w=g.constructor;return w&&w.prototype===g},C={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},e=function(){if("undefined"==typeof window)return!1;for(var g in window)try{if(!C["$"+g]&&r.call(window,g)&&null!==window[g]&&"object"==typeof window[g])try{u(window[g])}catch(w){return!0}}catch(w){return!0}return!1}();c=function(w){var Q=null!==w&&"object"==typeof w,d="[object Function]"===a.call(w),F=s(w),m=Q&&"[object String]"===a.call(w),p=[];if(!Q&&!d&&!F)throw new TypeError("Object.keys called on a non-object");var D=l&&d;if(m&&w.length>0&&!r.call(w,0))for(var v=0;v0)for(var P=0;P=0&&"[object Function]"===I.call(c.callee)),a}},4155:function(Y){var n,c,I=Y.exports={};function r(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(w){if(n===setTimeout)return setTimeout(w,0);if((n===r||!n)&&setTimeout)return n=setTimeout,setTimeout(w,0);try{return n(w,0)}catch(Q){try{return n.call(null,w,0)}catch(d){return n.call(this,w,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:r}catch(w){n=r}try{c="function"==typeof clearTimeout?clearTimeout:a}catch(w){c=a}}();var h,o=[],l=!1,u=-1;function C(){!l||!h||(l=!1,h.length?o=h.concat(o):u=-1,o.length&&e())}function e(){if(!l){var w=s(C);l=!0;for(var Q=o.length;Q;){for(h=o,o=[];++u1)for(var d=1;d=0;--vA){var xA=this.tryEntries[vA],_=xA.completion;if("root"===xA.tryLoc)return BA("end");if(xA.tryLoc<=this.prev){var QA=r.call(xA,"catchLoc"),uA=r.call(xA,"finallyLoc");if(QA&&uA){if(this.prev=0;--BA){var vA=this.tryEntries[BA];if(vA.tryLoc<=this.prev&&r.call(vA,"finallyLoc")&&this.prev=0;--lA){var BA=this.tryEntries[lA];if(BA.finallyLoc===cA)return this.complete(BA.completion,BA.afterLoc),aA(BA),Q}},catch:function(cA){for(var lA=this.tryEntries.length-1;lA>=0;--lA){var BA=this.tryEntries[lA];if(BA.tryLoc===cA){var vA=BA.completion;if("throw"===vA.type){var xA=vA.arg;aA(BA)}return xA}}throw new Error("illegal catch attempt")},delegateYield:function(cA,lA,BA){return this.delegate={iterator:gA(cA),resultName:lA,nextLoc:BA},"next"===this.method&&(this.arg=a),Q}},n}(Y.exports);try{regeneratorRuntime=I}catch(n){"object"==typeof globalThis?globalThis.regeneratorRuntime=I:Function("r","regeneratorRuntime = r")(I)}},3697:function(Y){"use strict";var I=Object,n=TypeError;Y.exports=function(){if(null!=this&&this!==I(this))throw new n("RegExp.prototype.flags getter called on non-object");var r="";return this.global&&(r+="g"),this.ignoreCase&&(r+="i"),this.multiline&&(r+="m"),this.dotAll&&(r+="s"),this.unicode&&(r+="u"),this.sticky&&(r+="y"),r}},2847:function(Y,I,n){"use strict";var c=n(4289),r=n(5559),a=n(3697),s=n(1721),E=n(2753),o=r(a);c(o,{getPolyfill:s,implementation:a,shim:E}),Y.exports=o},1721:function(Y,I,n){"use strict";var c=n(3697),r=n(4289).supportsDescriptors,a=Object.getOwnPropertyDescriptor,s=TypeError;Y.exports=function(){if(!r)throw new s("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");if("gim"===/a/gim.flags){var o=a(RegExp.prototype,"flags");if(o&&"function"==typeof o.get&&"boolean"==typeof/a/.dotAll)return o.get}return c}},2753:function(Y,I,n){"use strict";var c=n(4289).supportsDescriptors,r=n(1721),a=Object.getOwnPropertyDescriptor,s=Object.defineProperty,E=TypeError,o=Object.getPrototypeOf,l=/a/;Y.exports=function(){if(!c||!o)throw new E("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var u=r(),C=o(l),e=a(C,"flags");return(!e||e.get!==u)&&s(C,"flags",{configurable:!0,enumerable:!1,get:u}),u}},6099:function(Y,I,n){var c=n(8823).Buffer;!function(r){r.parser=function(q,J){return new s(q,J)},r.SAXParser=s,r.SAXStream=e,r.createStream=function(q,J){return new e(q,J)},r.MAX_BUFFER_LENGTH=65536;var h,a=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];function s(q,J){if(!(this instanceof s))return new s(q,J);var $=this;(function(q){for(var J=0,$=a.length;J<$;J++)q[a[J]]=""})($),$.q=$.c="",$.bufferCheckPosition=r.MAX_BUFFER_LENGTH,$.opt=J||{},$.opt.lowercase=$.opt.lowercase||$.opt.lowercasetags,$.looseCase=$.opt.lowercase?"toLowerCase":"toUpperCase",$.tags=[],$.closed=$.closedRoot=$.sawRoot=!1,$.tag=$.error=null,$.strict=!!q,$.noscript=!(!q&&!$.opt.noscript),$.state=N.BEGIN,$.strictEntities=$.opt.strictEntities,$.ENTITIES=Object.create($.strictEntities?r.XML_ENTITIES:r.ENTITIES),$.attribList=[],$.opt.xmlns&&($.ns=Object.create(d)),$.trackPosition=!1!==$.opt.position,$.trackPosition&&($.position=$.line=$.column=0),aA($,"onready")}r.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"],Object.create||(Object.create=function(q){function J(){}return J.prototype=q,new J}),Object.keys||(Object.keys=function(q){var J=[];for(var $ in q)q.hasOwnProperty($)&&J.push($);return J}),s.prototype={end:function(){lA(this)},write:function(q){var J=this;if(this.error)throw this.error;if(J.closed)return cA(J,"Cannot write after close. Assign an onready handler.");if(null===q)return lA(J);"object"==typeof q&&(q=q.toString());for(var $=0,W="";W=GA(q,$++),J.c=W,W;)switch(J.trackPosition&&(J.position++,"\n"===W?(J.line++,J.column=0):J.column++),J.state){case N.BEGIN:if(J.state=N.BEGIN_WHITESPACE,"\ufeff"===W)continue;TA(J,W);continue;case N.BEGIN_WHITESPACE:TA(J,W);continue;case N.TEXT:if(J.sawRoot&&!J.closedRoot){for(var EA=$-1;W&&"<"!==W&&"&"!==W;)(W=GA(q,$++))&&J.trackPosition&&(J.position++,"\n"===W?(J.line++,J.column=0):J.column++);J.textNode+=q.substring(EA,$-1)}"<"!==W||J.sawRoot&&J.closedRoot&&!J.strict?(!v(W)&&(!J.sawRoot||J.closedRoot)&&BA(J,"Text data outside of root node."),"&"===W?J.state=N.TEXT_ENTITY:J.textNode+=W):(J.state=N.OPEN_WAKA,J.startTagPosition=J.position);continue;case N.SCRIPT:"<"===W?J.state=N.SCRIPT_ENDING:J.script+=W;continue;case N.SCRIPT_ENDING:"/"===W?J.state=N.CLOSE_TAG:(J.script+="<"+W,J.state=N.SCRIPT);continue;case N.OPEN_WAKA:"!"===W?(J.state=N.SGML_DECL,J.sgmlDecl=""):v(W)||(x(F,W)?(J.state=N.OPEN_TAG,J.tagName=W):"/"===W?(J.state=N.CLOSE_TAG,J.tagName=""):"?"===W?(J.state=N.PROC_INST,J.procInstName=J.procInstBody=""):(BA(J,"Unencoded <"),J.startTagPosition+1"===W?(AA(J,"onsgmldeclaration",J.sgmlDecl),J.sgmlDecl="",J.state=N.TEXT):(P(W)&&(J.state=N.SGML_DECL_QUOTED),J.sgmlDecl+=W);continue;case N.SGML_DECL_QUOTED:W===J.q&&(J.state=N.SGML_DECL,J.q=""),J.sgmlDecl+=W;continue;case N.DOCTYPE:">"===W?(J.state=N.TEXT,AA(J,"ondoctype",J.doctype),J.doctype=!0):(J.doctype+=W,"["===W?J.state=N.DOCTYPE_DTD:P(W)&&(J.state=N.DOCTYPE_QUOTED,J.q=W));continue;case N.DOCTYPE_QUOTED:J.doctype+=W,W===J.q&&(J.q="",J.state=N.DOCTYPE);continue;case N.DOCTYPE_DTD:J.doctype+=W,"]"===W?J.state=N.DOCTYPE:P(W)&&(J.state=N.DOCTYPE_DTD_QUOTED,J.q=W);continue;case N.DOCTYPE_DTD_QUOTED:J.doctype+=W,W===J.q&&(J.state=N.DOCTYPE_DTD,J.q="");continue;case N.COMMENT:"-"===W?J.state=N.COMMENT_ENDING:J.comment+=W;continue;case N.COMMENT_ENDING:"-"===W?(J.state=N.COMMENT_ENDED,J.comment=MA(J.opt,J.comment),J.comment&&AA(J,"oncomment",J.comment),J.comment=""):(J.comment+="-"+W,J.state=N.COMMENT);continue;case N.COMMENT_ENDED:">"!==W?(BA(J,"Malformed comment"),J.comment+="--"+W,J.state=N.COMMENT):J.state=N.TEXT;continue;case N.CDATA:"]"===W?J.state=N.CDATA_ENDING:J.cdata+=W;continue;case N.CDATA_ENDING:"]"===W?J.state=N.CDATA_ENDING_2:(J.cdata+="]"+W,J.state=N.CDATA);continue;case N.CDATA_ENDING_2:">"===W?(J.cdata&&AA(J,"oncdata",J.cdata),AA(J,"onclosecdata"),J.cdata="",J.state=N.TEXT):"]"===W?J.cdata+="]":(J.cdata+="]]"+W,J.state=N.CDATA);continue;case N.PROC_INST:"?"===W?J.state=N.PROC_INST_ENDING:v(W)?J.state=N.PROC_INST_BODY:J.procInstName+=W;continue;case N.PROC_INST_BODY:if(!J.procInstBody&&v(W))continue;"?"===W?J.state=N.PROC_INST_ENDING:J.procInstBody+=W;continue;case N.PROC_INST_ENDING:">"===W?(AA(J,"onprocessinginstruction",{name:J.procInstName,body:J.procInstBody}),J.procInstName=J.procInstBody="",J.state=N.TEXT):(J.procInstBody+="?"+W,J.state=N.PROC_INST_BODY);continue;case N.OPEN_TAG:x(m,W)?J.tagName+=W:(vA(J),">"===W?QA(J):"/"===W?J.state=N.OPEN_TAG_SLASH:(v(W)||BA(J,"Invalid character in tag name"),J.state=N.ATTRIB));continue;case N.OPEN_TAG_SLASH:">"===W?(QA(J,!0),uA(J)):(BA(J,"Forward-slash in opening tag not followed by >"),J.state=N.ATTRIB);continue;case N.ATTRIB:if(v(W))continue;">"===W?QA(J):"/"===W?J.state=N.OPEN_TAG_SLASH:x(F,W)?(J.attribName=W,J.attribValue="",J.state=N.ATTRIB_NAME):BA(J,"Invalid attribute name");continue;case N.ATTRIB_NAME:"="===W?J.state=N.ATTRIB_VALUE:">"===W?(BA(J,"Attribute without value"),J.attribValue=J.attribName,_(J),QA(J)):v(W)?J.state=N.ATTRIB_NAME_SAW_WHITE:x(m,W)?J.attribName+=W:BA(J,"Invalid attribute name");continue;case N.ATTRIB_NAME_SAW_WHITE:if("="===W)J.state=N.ATTRIB_VALUE;else{if(v(W))continue;BA(J,"Attribute without value"),J.tag.attributes[J.attribName]="",J.attribValue="",AA(J,"onattribute",{name:J.attribName,value:""}),J.attribName="",">"===W?QA(J):x(F,W)?(J.attribName=W,J.state=N.ATTRIB_NAME):(BA(J,"Invalid attribute name"),J.state=N.ATTRIB)}continue;case N.ATTRIB_VALUE:if(v(W))continue;P(W)?(J.q=W,J.state=N.ATTRIB_VALUE_QUOTED):(BA(J,"Unquoted attribute value"),J.state=N.ATTRIB_VALUE_UNQUOTED,J.attribValue=W);continue;case N.ATTRIB_VALUE_QUOTED:if(W!==J.q){"&"===W?J.state=N.ATTRIB_VALUE_ENTITY_Q:J.attribValue+=W;continue}_(J),J.q="",J.state=N.ATTRIB_VALUE_CLOSED;continue;case N.ATTRIB_VALUE_CLOSED:v(W)?J.state=N.ATTRIB:">"===W?QA(J):"/"===W?J.state=N.OPEN_TAG_SLASH:x(F,W)?(BA(J,"No whitespace between attributes"),J.attribName=W,J.attribValue="",J.state=N.ATTRIB_NAME):BA(J,"Invalid attribute name");continue;case N.ATTRIB_VALUE_UNQUOTED:if(!T(W)){"&"===W?J.state=N.ATTRIB_VALUE_ENTITY_U:J.attribValue+=W;continue}_(J),">"===W?QA(J):J.state=N.ATTRIB;continue;case N.CLOSE_TAG:if(J.tagName)">"===W?uA(J):x(m,W)?J.tagName+=W:J.script?(J.script+=""===W?uA(J):BA(J,"Invalid characters in closing tag");continue;case N.TEXT_ENTITY:case N.ATTRIB_VALUE_ENTITY_Q:case N.ATTRIB_VALUE_ENTITY_U:var rA,hA;switch(J.state){case N.TEXT_ENTITY:rA=N.TEXT,hA="textNode";break;case N.ATTRIB_VALUE_ENTITY_Q:rA=N.ATTRIB_VALUE_QUOTED,hA="attribValue";break;case N.ATTRIB_VALUE_ENTITY_U:rA=N.ATTRIB_VALUE_UNQUOTED,hA="attribValue"}";"===W?(J[hA]+=CA(J),J.entity="",J.state=rA):x(J.entity.length?D:p,W)?J.entity+=W:(BA(J,"Invalid character in entity name"),J[hA]+="&"+J.entity+W,J.entity="",J.state=rA);continue;default:throw new Error(J,"Unknown state: "+J.state)}return J.position>=J.bufferCheckPosition&&function(q){for(var J=Math.max(r.MAX_BUFFER_LENGTH,10),$=0,W=0,EA=a.length;WJ)switch(a[W]){case"textNode":gA(q);break;case"cdata":AA(q,"oncdata",q.cdata),q.cdata="";break;case"script":AA(q,"onscript",q.script),q.script="";break;default:cA(q,"Max buffer length exceeded: "+a[W])}$=Math.max($,DA)}q.bufferCheckPosition=r.MAX_BUFFER_LENGTH-$+q.position}(J),J},resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){!function(q){gA(q),""!==q.cdata&&(AA(q,"oncdata",q.cdata),q.cdata=""),""!==q.script&&(AA(q,"onscript",q.script),q.script="")}(this)}};try{h=n(2830).Stream}catch(q){h=function(){}}var u=r.EVENTS.filter(function(q){return"error"!==q&&"end"!==q});function e(q,J){if(!(this instanceof e))return new e(q,J);h.apply(this),this._parser=new s(q,J),this.writable=!0,this.readable=!0;var $=this;this._parser.onend=function(){$.emit("end")},this._parser.onerror=function(W){$.emit("error",W),$._parser.error=null},this._decoder=null,u.forEach(function(W){Object.defineProperty($,"on"+W,{get:function(){return $._parser["on"+W]},set:function(EA){if(!EA)return $.removeAllListeners(W),$._parser["on"+W]=EA,EA;$.on(W,EA)},enumerable:!0,configurable:!1})})}(e.prototype=Object.create(h.prototype,{constructor:{value:e}})).write=function(q){if("function"==typeof c&&"function"==typeof c.isBuffer&&c.isBuffer(q)){if(!this._decoder){var J=n(2553).s;this._decoder=new J("utf8")}q=this._decoder.write(q)}return this._parser.write(q.toString()),this.emit("data",q),!0},e.prototype.end=function(q){return q&&q.length&&this.write(q),this._parser.end(),!0},e.prototype.on=function(q,J){var $=this;return!$._parser["on"+q]&&-1!==u.indexOf(q)&&($._parser["on"+q]=function(){var W=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);W.splice(0,0,q),$.emit.apply($,W)}),h.prototype.on.call($,q,J)};var w="http://www.w3.org/XML/1998/namespace",Q="http://www.w3.org/2000/xmlns/",d={xml:w,xmlns:Q},F=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,m=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,p=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,D=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function v(q){return" "===q||"\n"===q||"\r"===q||"\t"===q}function P(q){return'"'===q||"'"===q}function T(q){return">"===q||v(q)}function x(q,J){return q.test(J)}function R(q,J){return!x(q,J)}var q,J,$,N=0;for(var V in r.STATE={BEGIN:N++,BEGIN_WHITESPACE:N++,TEXT:N++,TEXT_ENTITY:N++,OPEN_WAKA:N++,SGML_DECL:N++,SGML_DECL_QUOTED:N++,DOCTYPE:N++,DOCTYPE_QUOTED:N++,DOCTYPE_DTD:N++,DOCTYPE_DTD_QUOTED:N++,COMMENT_STARTING:N++,COMMENT:N++,COMMENT_ENDING:N++,COMMENT_ENDED:N++,CDATA:N++,CDATA_ENDING:N++,CDATA_ENDING_2:N++,PROC_INST:N++,PROC_INST_BODY:N++,PROC_INST_ENDING:N++,OPEN_TAG:N++,OPEN_TAG_SLASH:N++,ATTRIB:N++,ATTRIB_NAME:N++,ATTRIB_NAME_SAW_WHITE:N++,ATTRIB_VALUE:N++,ATTRIB_VALUE_QUOTED:N++,ATTRIB_VALUE_CLOSED:N++,ATTRIB_VALUE_UNQUOTED:N++,ATTRIB_VALUE_ENTITY_Q:N++,ATTRIB_VALUE_ENTITY_U:N++,CLOSE_TAG:N++,CLOSE_TAG_SAW_WHITE:N++,SCRIPT:N++,SCRIPT_ENDING:N++},r.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},r.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(r.ENTITIES).forEach(function(q){var J=r.ENTITIES[q],$="number"==typeof J?String.fromCharCode(J):J;r.ENTITIES[q]=$}),r.STATE)r.STATE[r.STATE[V]]=V;function aA(q,J,$){q[J]&&q[J]($)}function AA(q,J,$){q.textNode&&gA(q),aA(q,J,$)}function gA(q){q.textNode=MA(q.opt,q.textNode),q.textNode&&aA(q,"ontext",q.textNode),q.textNode=""}function MA(q,J){return q.trim&&(J=J.trim()),q.normalize&&(J=J.replace(/\s+/g," ")),J}function cA(q,J){return gA(q),q.trackPosition&&(J+="\nLine: "+q.line+"\nColumn: "+q.column+"\nChar: "+q.c),J=new Error(J),q.error=J,aA(q,"onerror",J),q}function lA(q){return q.sawRoot&&!q.closedRoot&&BA(q,"Unclosed root tag"),q.state!==N.BEGIN&&q.state!==N.BEGIN_WHITESPACE&&q.state!==N.TEXT&&cA(q,"Unexpected end"),gA(q),q.c="",q.closed=!0,aA(q,"onend"),s.call(q,q.strict,q.opt),q}function BA(q,J){if("object"!=typeof q||!(q instanceof s))throw new Error("bad call to strictFail");q.strict&&cA(q,J)}function vA(q){q.strict||(q.tagName=q.tagName[q.looseCase]());var J=q.tags[q.tags.length-1]||q,$=q.tag={name:q.tagName,attributes:{}};q.opt.xmlns&&($.ns=J.ns),q.attribList.length=0,AA(q,"onopentagstart",$)}function xA(q,J){var W=q.indexOf(":")<0?["",q]:q.split(":"),EA=W[0],DA=W[1];return J&&"xmlns"===q&&(EA="xmlns",DA=""),{prefix:EA,local:DA}}function _(q){if(q.strict||(q.attribName=q.attribName[q.looseCase]()),-1!==q.attribList.indexOf(q.attribName)||q.tag.attributes.hasOwnProperty(q.attribName))q.attribName=q.attribValue="";else{if(q.opt.xmlns){var J=xA(q.attribName,!0),W=J.local;if("xmlns"===J.prefix)if("xml"===W&&q.attribValue!==w)BA(q,"xml: prefix must be bound to "+w+"\nActual: "+q.attribValue);else if("xmlns"===W&&q.attribValue!==Q)BA(q,"xmlns: prefix must be bound to "+Q+"\nActual: "+q.attribValue);else{var EA=q.tag,DA=q.tags[q.tags.length-1]||q;EA.ns===DA.ns&&(EA.ns=Object.create(DA.ns)),EA.ns[W]=q.attribValue}q.attribList.push([q.attribName,q.attribValue])}else q.tag.attributes[q.attribName]=q.attribValue,AA(q,"onattribute",{name:q.attribName,value:q.attribValue});q.attribName=q.attribValue=""}}function QA(q,J){if(q.opt.xmlns){var $=q.tag,W=xA(q.tagName);$.prefix=W.prefix,$.local=W.local,$.uri=$.ns[W.prefix]||"",$.prefix&&!$.uri&&(BA(q,"Unbound namespace prefix: "+JSON.stringify(q.tagName)),$.uri=W.prefix),$.ns&&(q.tags[q.tags.length-1]||q).ns!==$.ns&&Object.keys($.ns).forEach(function(SA){AA(q,"onopennamespace",{prefix:SA,uri:$.ns[SA]})});for(var DA=0,rA=q.attribList.length;DA",q.tagName="",void(q.state=N.SCRIPT);AA(q,"onscript",q.script),q.script=""}var J=q.tags.length,$=q.tagName;q.strict||($=$[q.looseCase]());for(var W=$;J--&&q.tags[J].name!==W;)BA(q,"Unexpected close tag");if(J<0)return BA(q,"Unmatched closing tag: "+q.tagName),q.textNode+="",void(q.state=N.TEXT);q.tagName=$;for(var DA=q.tags.length;DA-- >J;){var rA=q.tag=q.tags.pop();q.tagName=q.tag.name,AA(q,"onclosetag",q.tagName);var hA={};for(var HA in rA.ns)hA[HA]=rA.ns[HA];q.opt.xmlns&&rA.ns!==(q.tags[q.tags.length-1]||q).ns&&Object.keys(rA.ns).forEach(function(st){AA(q,"onclosenamespace",{prefix:st,uri:rA.ns[st]})})}0===J&&(q.closedRoot=!0),q.tagName=q.attribValue=q.attribName="",q.attribList.length=0,q.state=N.TEXT}function CA(q){var W,J=q.entity,$=J.toLowerCase(),EA="";return q.ENTITIES[J]?q.ENTITIES[J]:q.ENTITIES[$]?q.ENTITIES[$]:("#"===(J=$).charAt(0)&&("x"===J.charAt(1)?(J=J.slice(2),EA=(W=parseInt(J,16)).toString(16)):(J=J.slice(1),EA=(W=parseInt(J,10)).toString(10))),J=J.replace(/^0+/,""),isNaN(W)||EA.toLowerCase()!==J?(BA(q,"Invalid character entity"),"&"+q.entity+";"):String.fromCodePoint(W))}function TA(q,J){"<"===J?(q.state=N.OPEN_WAKA,q.startTagPosition=q.position):v(J)||(BA(q,"Non-whitespace before first tag."),q.textNode=J,q.state=N.TEXT)}function GA(q,J){var $="";return J1114111||J(st)!==st)throw RangeError("Invalid code point: "+st);st<=65535?EA.push(st):EA.push(55296+((st-=65536)>>10),st%1024+56320),(hA+1===HA||EA.length>W)&&(nt+=q.apply(null,EA),EA.length=0)}return nt},Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:$,configurable:!0,writable:!0}):String.fromCodePoint=$)}(I)},2830:function(Y,I,n){Y.exports=a;var c=n(7187).EventEmitter;function a(){c.call(this)}n(5717)(a,c),a.Readable=n(6577),a.Writable=n(323),a.Duplex=n(8656),a.Transform=n(4473),a.PassThrough=n(2366),a.finished=n(1086),a.pipeline=n(6472),a.Stream=a,a.prototype.pipe=function(s,E){var o=this;function l(w){s.writable&&!1===s.write(w)&&o.pause&&o.pause()}function h(){o.readable&&o.resume&&o.resume()}o.on("data",l),s.on("drain",h),!s._isStdio&&(!E||!1!==E.end)&&(o.on("end",C),o.on("close",e));var u=!1;function C(){u||(u=!0,s.end())}function e(){u||(u=!0,"function"==typeof s.destroy&&s.destroy())}function f(w){if(g(),0===c.listenerCount(this,"error"))throw w}function g(){o.removeListener("data",l),s.removeListener("drain",h),o.removeListener("end",C),o.removeListener("close",e),o.removeListener("error",f),s.removeListener("error",f),o.removeListener("end",g),o.removeListener("close",g),s.removeListener("close",g)}return o.on("error",f),s.on("error",f),o.on("end",g),o.on("close",g),s.on("close",g),s.emit("pipe",o),s}},8106:function(Y){"use strict";var n={};function c(o,l,h){h||(h=Error);var C=function(e){function f(g,w,Q){return e.call(this,function(e,f,g){return"string"==typeof l?l:l(e,f,g)}(g,w,Q))||this}return function(o,l){o.prototype=Object.create(l.prototype),o.prototype.constructor=o,o.__proto__=l}(f,e),f}(h);C.prototype.name=h.name,C.prototype.code=o,n[o]=C}function r(o,l){if(Array.isArray(o)){var h=o.length;return o=o.map(function(u){return String(u)}),h>2?"one of ".concat(l," ").concat(o.slice(0,h-1).join(", "),", or ")+o[h-1]:2===h?"one of ".concat(l," ").concat(o[0]," or ").concat(o[1]):"of ".concat(l," ").concat(o[0])}return"of ".concat(l," ").concat(String(o))}c("ERR_INVALID_OPT_VALUE",function(o,l){return'The value "'+l+'" is invalid for option "'+o+'"'},TypeError),c("ERR_INVALID_ARG_TYPE",function(o,l,h){var u,C;if("string"==typeof l&&function(o,l,h){return o.substr(!h||h<0?0:+h,l.length)===l}(l,"not ")?(u="must not be",l=l.replace(/^not /,"")):u="must be",function(o,l,h){return(void 0===h||h>o.length)&&(h=o.length),o.substring(h-l.length,h)===l}(o," argument"))C="The ".concat(o," ").concat(u," ").concat(r(l,"type"));else{var e=function(o,l,h){return"number"!=typeof h&&(h=0),!(h+l.length>o.length)&&-1!==o.indexOf(l,h)}(o,".")?"property":"argument";C='The "'.concat(o,'" ').concat(e," ").concat(u," ").concat(r(l,"type"))}return C+". Received type ".concat(typeof h)},TypeError),c("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),c("ERR_METHOD_NOT_IMPLEMENTED",function(o){return"The "+o+" method is not implemented"}),c("ERR_STREAM_PREMATURE_CLOSE","Premature close"),c("ERR_STREAM_DESTROYED",function(o){return"Cannot call "+o+" after a stream was destroyed"}),c("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),c("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),c("ERR_STREAM_WRITE_AFTER_END","write after end"),c("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),c("ERR_UNKNOWN_ENCODING",function(o){return"Unknown encoding: "+o},TypeError),c("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Y.exports.q=n},8656:function(Y,I,n){"use strict";var c=n(4155),r=Object.keys||function(e){var f=[];for(var g in e)f.push(g);return f};Y.exports=h;var a=n(6577),s=n(323);n(5717)(h,a);for(var E=r(s.prototype),o=0;o0)if("string"!=typeof hA&&!yA.objectMode&&Object.getPrototypeOf(hA)!==o.prototype&&(hA=function(rA){return o.from(rA)}(hA)),nt)yA.endEmitted?x(rA,new D):gA(rA,yA,hA,!0);else if(yA.ended)x(rA,new m);else{if(yA.destroyed)return!1;yA.reading=!1,yA.decoder&&!HA?(hA=yA.decoder.write(hA),yA.objectMode||0!==hA.length?gA(rA,yA,hA,!1):QA(rA,yA)):gA(rA,yA,hA,!1)}else nt||(yA.reading=!1,QA(rA,yA));return!yA.ended&&(yA.lengthhA.highWaterMark&&(hA.highWaterMark=function(rA){return rA>=cA?rA=cA:(rA--,rA|=rA>>>1,rA|=rA>>>2,rA|=rA>>>4,rA|=rA>>>8,rA|=rA>>>16,rA++),rA}(rA)),rA<=hA.length?rA:hA.ended?hA.length:(hA.needReadable=!0,0))}function xA(rA){var hA=rA._readableState;e("emitReadable",hA.needReadable,hA.emittedReadable),hA.needReadable=!1,hA.emittedReadable||(e("emitReadable",hA.flowing),hA.emittedReadable=!0,c.nextTick(_,rA))}function _(rA){var hA=rA._readableState;e("emitReadable_",hA.destroyed,hA.length,hA.ended),!hA.destroyed&&(hA.length||hA.ended)&&(rA.emit("readable"),hA.emittedReadable=!1),hA.needReadable=!hA.flowing&&!hA.ended&&hA.length<=hA.highWaterMark,J(rA)}function QA(rA,hA){hA.readingMore||(hA.readingMore=!0,c.nextTick(uA,rA,hA))}function uA(rA,hA){for(;!hA.reading&&!hA.ended&&(hA.length0,hA.resumeScheduled&&!hA.paused?hA.flowing=!0:rA.listenerCount("data")>0&&rA.resume()}function GA(rA){e("readable nexttick read 0"),rA.read(0)}function q(rA,hA){e("resume",hA.reading),hA.reading||rA.read(0),hA.resumeScheduled=!1,rA.emit("resume"),J(rA),hA.flowing&&!hA.reading&&rA.read(0)}function J(rA){var hA=rA._readableState;for(e("flow",hA.flowing);hA.flowing&&null!==rA.read(););}function $(rA,hA){return 0===hA.length?null:(hA.objectMode?HA=hA.buffer.shift():!rA||rA>=hA.length?(HA=hA.decoder?hA.buffer.join(""):1===hA.buffer.length?hA.buffer.first():hA.buffer.concat(hA.length),hA.buffer.clear()):HA=hA.buffer.consume(rA,hA.decoder),HA);var HA}function W(rA){var hA=rA._readableState;e("endReadable",hA.endEmitted),hA.endEmitted||(hA.ended=!0,c.nextTick(EA,hA,rA))}function EA(rA,hA){if(e("endReadableNT",rA.endEmitted,rA.length),!rA.endEmitted&&0===rA.length&&(rA.endEmitted=!0,hA.readable=!1,hA.emit("end"),rA.autoDestroy)){var HA=hA._writableState;(!HA||HA.autoDestroy&&HA.finished)&&hA.destroy()}}function DA(rA,hA){for(var HA=0,nt=rA.length;HA=hA.highWaterMark:hA.length>0)||hA.ended))return e("read: emitReadable",hA.length,hA.ended),0===hA.length&&hA.ended?W(this):xA(this),null;if(0===(rA=BA(rA,hA))&&hA.ended)return 0===hA.length&&W(this),null;var st,nt=hA.needReadable;return e("need readable",nt),(0===hA.length||hA.length-rA0?$(rA,hA):null)?(hA.needReadable=hA.length<=hA.highWaterMark,rA=0):(hA.length-=rA,hA.awaitDrain=0),0===hA.length&&(hA.ended||(hA.needReadable=!0),HA!==rA&&hA.ended&&W(this)),null!==st&&this.emit("data",st),st},aA.prototype._read=function(rA){x(this,new p("_read()"))},aA.prototype.pipe=function(rA,hA){var HA=this,nt=this._readableState;switch(nt.pipesCount){case 0:nt.pipes=rA;break;case 1:nt.pipes=[nt.pipes,rA];break;default:nt.pipes.push(rA)}nt.pipesCount+=1,e("pipe count=%d opts=%j",nt.pipesCount,hA);var yA=hA&&!1===hA.end||rA===c.stdout||rA===c.stderr?dt:ft;function _A(vt,Pt){e("onunpipe"),vt===HA&&Pt&&!1===Pt.hasUnpiped&&(Pt.hasUnpiped=!0,e("cleanup"),rA.removeListener("close",ot),rA.removeListener("finish",It),rA.removeListener("drain",lt),rA.removeListener("error",zA),rA.removeListener("unpipe",_A),HA.removeListener("end",ft),HA.removeListener("end",dt),HA.removeListener("data",WA),SA=!0,nt.awaitDrain&&(!rA._writableState||rA._writableState.needDrain)&<())}function ft(){e("onend"),rA.end()}nt.endEmitted?c.nextTick(yA):HA.once("end",yA),rA.on("unpipe",_A);var lt=function(rA){return function(){var HA=rA._readableState;e("pipeOnDrain",HA.awaitDrain),HA.awaitDrain&&HA.awaitDrain--,0===HA.awaitDrain&&s(rA,"data")&&(HA.flowing=!0,J(rA))}}(HA);rA.on("drain",lt);var SA=!1;function WA(vt){e("ondata");var Pt=rA.write(vt);e("dest.write",Pt),!1===Pt&&((1===nt.pipesCount&&nt.pipes===rA||nt.pipesCount>1&&-1!==DA(nt.pipes,rA))&&!SA&&(e("false write response, pause",nt.awaitDrain),nt.awaitDrain++),HA.pause())}function zA(vt){e("onerror",vt),dt(),rA.removeListener("error",zA),0===s(rA,"error")&&x(rA,vt)}function ot(){rA.removeListener("finish",It),dt()}function It(){e("onfinish"),rA.removeListener("close",ot),dt()}function dt(){e("unpipe"),HA.unpipe(rA)}return HA.on("data",WA),function(rA,hA,HA){if("function"==typeof rA.prependListener)return rA.prependListener(hA,HA);rA._events&&rA._events[hA]?Array.isArray(rA._events[hA])?rA._events[hA].unshift(HA):rA._events[hA]=[HA,rA._events[hA]]:rA.on(hA,HA)}(rA,"error",zA),rA.once("close",ot),rA.once("finish",It),rA.emit("pipe",HA),nt.flowing||(e("pipe resume"),HA.resume()),rA},aA.prototype.unpipe=function(rA){var hA=this._readableState,HA={hasUnpiped:!1};if(0===hA.pipesCount)return this;if(1===hA.pipesCount)return rA&&rA!==hA.pipes||(rA||(rA=hA.pipes),hA.pipes=null,hA.pipesCount=0,hA.flowing=!1,rA&&rA.emit("unpipe",this,HA)),this;if(!rA){var nt=hA.pipes,st=hA.pipesCount;hA.pipes=null,hA.pipesCount=0,hA.flowing=!1;for(var yA=0;yA0,!1!==nt.flowing&&this.resume()):"readable"===rA&&!nt.endEmitted&&!nt.readableListening&&(nt.readableListening=nt.needReadable=!0,nt.flowing=!1,nt.emittedReadable=!1,e("on readable",nt.length,nt.reading),nt.length?xA(this):nt.reading||c.nextTick(GA,this)),HA},aA.prototype.removeListener=function(rA,hA){var HA=E.prototype.removeListener.call(this,rA,hA);return"readable"===rA&&c.nextTick(TA,this),HA},aA.prototype.removeAllListeners=function(rA){var hA=E.prototype.removeAllListeners.apply(this,arguments);return("readable"===rA||void 0===rA)&&c.nextTick(TA,this),hA},aA.prototype.resume=function(){var rA=this._readableState;return rA.flowing||(e("resume"),rA.flowing=!rA.readableListening,function(rA,hA){hA.resumeScheduled||(hA.resumeScheduled=!0,c.nextTick(q,rA,hA))}(this,rA)),rA.paused=!1,this},aA.prototype.pause=function(){return e("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(e("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},aA.prototype.wrap=function(rA){var hA=this,HA=this._readableState,nt=!1;for(var st in rA.on("end",function(){if(e("wrapped end"),HA.decoder&&!HA.ended){var _A=HA.decoder.end();_A&&_A.length&&hA.push(_A)}hA.push(null)}),rA.on("data",function(_A){e("wrapped data"),HA.decoder&&(_A=HA.decoder.write(_A)),HA.objectMode&&null==_A||!(HA.objectMode||_A&&_A.length)||hA.push(_A)||(nt=!0,rA.pause())}),rA)void 0===this[st]&&"function"==typeof rA[st]&&(this[st]=function(ft){return function(){return rA[ft].apply(rA,arguments)}}(st));for(var yA=0;yA-1))throw new P($);return this._writableState.defaultEncoding=$,this},Object.defineProperty(V.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(V.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),V.prototype._write=function(J,$,W){W(new d("_write()"))},V.prototype._writev=null,V.prototype.end=function(J,$,W){var EA=this._writableState;return"function"==typeof J?(W=J,J=null,$=null):"function"==typeof $&&(W=$,$=null),null!=J&&this.write(J,$),EA.corked&&(EA.corked=1,this.uncork()),EA.ending||function(J,$,W){$.ending=!0,GA(J,$),W&&($.finished?c.nextTick(W):J.once("finish",W)),$.ended=!0,J.writable=!1}(this,EA,W),this},Object.defineProperty(V.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(V.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function($){!this._writableState||(this._writableState.destroyed=$)}}),V.prototype.destroy=e.destroy,V.prototype._undestroy=e.undestroy,V.prototype._destroy=function(J,$){$(J)}},828:function(Y,I,n){"use strict";var r,c=n(4155);function a(p,D,v){return D in p?Object.defineProperty(p,D,{value:v,enumerable:!0,configurable:!0,writable:!0}):p[D]=v,p}var s=n(1086),E=Symbol("lastResolve"),o=Symbol("lastReject"),l=Symbol("error"),h=Symbol("ended"),u=Symbol("lastPromise"),C=Symbol("handlePromise"),e=Symbol("stream");function f(p,D){return{value:p,done:D}}function g(p){var D=p[E];if(null!==D){var v=p[e].read();null!==v&&(p[u]=null,p[E]=null,p[o]=null,D(f(v,!1)))}}function w(p){c.nextTick(g,p)}var d=Object.getPrototypeOf(function(){}),F=Object.setPrototypeOf((a(r={get stream(){return this[e]},next:function(){var D=this,v=this[l];if(null!==v)return Promise.reject(v);if(this[h])return Promise.resolve(f(void 0,!0));if(this[e].destroyed)return new Promise(function(R,N){c.nextTick(function(){D[l]?N(D[l]):R(f(void 0,!0))})});var T,P=this[u];if(P)T=new Promise(function(p,D){return function(v,P){p.then(function(){D[h]?v(f(void 0,!0)):D[C](v,P)},P)}}(P,this));else{var x=this[e].read();if(null!==x)return Promise.resolve(f(x,!1));T=new Promise(this[C])}return this[u]=T,T}},Symbol.asyncIterator,function(){return this}),a(r,"return",function(){var D=this;return new Promise(function(v,P){D[e].destroy(null,function(T){T?P(T):v(f(void 0,!0))})})}),r),d);Y.exports=function(D){var v,P=Object.create(F,(a(v={},e,{value:D,writable:!0}),a(v,E,{value:null,writable:!0}),a(v,o,{value:null,writable:!0}),a(v,l,{value:null,writable:!0}),a(v,h,{value:D._readableState.endEmitted,writable:!0}),a(v,C,{value:function(x,R){var N=P[e].read();N?(P[u]=null,P[E]=null,P[o]=null,x(f(N,!1))):(P[E]=x,P[o]=R)},writable:!0}),v));return P[u]=null,s(D,function(T){if(T&&"ERR_STREAM_PREMATURE_CLOSE"!==T.code){var x=P[o];return null!==x&&(P[u]=null,P[E]=null,P[o]=null,x(T)),void(P[l]=T)}var R=P[E];null!==R&&(P[u]=null,P[E]=null,P[o]=null,R(f(void 0,!0))),P[h]=!0}),D.on("readable",w.bind(null,P)),P}},1029:function(Y,I,n){"use strict";var c=n(4155);function a(h,u){o(h,u),s(h)}function s(h){h._writableState&&!h._writableState.emitClose||h._readableState&&!h._readableState.emitClose||h.emit("close")}function o(h,u){h.emit("error",u)}Y.exports={destroy:function(h,u){var C=this;return this._readableState&&this._readableState.destroyed||this._writableState&&this._writableState.destroyed?(u?u(h):h&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,c.nextTick(o,this,h)):c.nextTick(o,this,h)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(h||null,function(g){!u&&g?C._writableState?C._writableState.errorEmitted?c.nextTick(s,C):(C._writableState.errorEmitted=!0,c.nextTick(a,C,g)):c.nextTick(a,C,g):u?(c.nextTick(s,C),u(g)):c.nextTick(s,C)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(h,u){var C=h._readableState,e=h._writableState;C&&C.autoDestroy||e&&e.autoDestroy?h.destroy(u):h.emit("error",u)}}},1086:function(Y,I,n){"use strict";var c=n(8106).q.ERR_STREAM_PREMATURE_CLOSE;function a(){}Y.exports=function E(o,l,h){if("function"==typeof l)return E(o,null,l);l||(l={}),h=function(o){var l=!1;return function(){if(!l){l=!0;for(var h=arguments.length,u=new Array(h),C=0;C0,function(T){F||(F=T),T&&m.forEach(u),!v&&(m.forEach(u),d(F))})});return w.reduce(C)}},94:function(Y,I,n){"use strict";var c=n(8106).q.ERR_INVALID_OPT_VALUE;Y.exports={getHighWaterMark:function(s,E,o,l){var h=function(s,E,o){return null!=s.highWaterMark?s.highWaterMark:E?s[o]:null}(E,l,o);if(null!=h){if(!isFinite(h)||Math.floor(h)!==h||h<0)throw new c(l?o:"highWaterMark",h);return Math.floor(h)}return s.objectMode?16:16384}}},3194:function(Y,I,n){Y.exports=n(7187).EventEmitter},4896:function(Y,I,n){var c,a;void 0!==(a="function"==typeof(c=function(){"use strict";function E(e,f,g){var w=new XMLHttpRequest;w.open("GET",e),w.responseType="blob",w.onload=function(){C(w.response,f,g)},w.onerror=function(){console.error("could not download file")},w.send()}function o(e){var f=new XMLHttpRequest;f.open("HEAD",e,!1);try{f.send()}catch(g){}return 200<=f.status&&299>=f.status}function l(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(g){var f=document.createEvent("MouseEvents");f.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(f)}}var h="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof n.g&&n.g.global===n.g?n.g:void 0,u=h.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),C=h.saveAs||("object"!=typeof window||window!==h?function(){}:"undefined"!=typeof HTMLAnchorElement&&"download"in HTMLAnchorElement.prototype&&!u?function(e,f,g){var w=h.URL||h.webkitURL,Q=document.createElement("a");Q.download=f=f||e.name||"download",Q.rel="noopener","string"==typeof e?(Q.href=e,Q.origin===location.origin?l(Q):o(Q.href)?E(e,f,g):l(Q,Q.target="_blank")):(Q.href=w.createObjectURL(e),setTimeout(function(){w.revokeObjectURL(Q.href)},4e4),setTimeout(function(){l(Q)},0))}:"msSaveOrOpenBlob"in navigator?function(e,f,g){if(f=f||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(function(e,f){return void 0===f?f={autoBom:!1}:"object"!=typeof f&&(console.warn("Deprecated: Expected third argument to be a object"),f={autoBom:!f}),f.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}(e,g),f);else if(o(e))E(e,f,g);else{var w=document.createElement("a");w.href=e,w.target="_blank",setTimeout(function(){l(w)})}}:function(e,f,g,w){if((w=w||open("","_blank"))&&(w.document.title=w.document.body.innerText="downloading..."),"string"==typeof e)return E(e,f,g);var Q="application/octet-stream"===e.type,d=/constructor/i.test(h.HTMLElement)||h.safari,F=/CriOS\/[\d]+/.test(navigator.userAgent);if((F||Q&&d||u)&&"undefined"!=typeof FileReader){var m=new FileReader;m.onloadend=function(){var v=m.result;v=F?v:v.replace(/^data:[^;]*;/,"data:attachment/file;"),w?w.location.href=v:location=v,w=null},m.readAsDataURL(e)}else{var p=h.URL||h.webkitURL,D=p.createObjectURL(e);w?w.location=D:location.href=D,w=null,setTimeout(function(){p.revokeObjectURL(D)},4e4)}});h.saveAs=C.saveAs=C,Y.exports=C})?c.apply(I,[]):c)&&(Y.exports=a)},2553:function(Y,I,n){"use strict";var c=n(1750).Buffer,r=c.isEncoding||function(m){switch((m=""+m)&&m.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function E(m){var p;switch(this.encoding=function(m){var p=function(m){if(!m)return"utf8";for(var p;;)switch(m){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return m;default:if(p)return;m=(""+m).toLowerCase(),p=!0}}(m);if("string"!=typeof p&&(c.isEncoding===r||!r(m)))throw new Error("Unknown encoding: "+m);return p||m}(m),this.encoding){case"utf16le":this.text=f,this.end=g,p=4;break;case"utf8":this.fillLast=u,p=4;break;case"base64":this.text=w,this.end=Q,p=3;break;default:return this.write=d,void(this.end=F)}this.lastNeed=0,this.lastTotal=0,this.lastChar=c.allocUnsafe(p)}function o(m){return m<=127?0:m>>5==6?2:m>>4==14?3:m>>3==30?4:m>>6==2?-1:-2}function u(m){var p=this.lastTotal-this.lastNeed,D=function(m,p,D){if(128!=(192&p[0]))return m.lastNeed=0,"\ufffd";if(m.lastNeed>1&&p.length>1){if(128!=(192&p[1]))return m.lastNeed=1,"\ufffd";if(m.lastNeed>2&&p.length>2&&128!=(192&p[2]))return m.lastNeed=2,"\ufffd"}}(this,m);return void 0!==D?D:this.lastNeed<=m.length?(m.copy(this.lastChar,p,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(m.copy(this.lastChar,p,0,m.length),void(this.lastNeed-=m.length))}function f(m,p){if((m.length-p)%2==0){var D=m.toString("utf16le",p);if(D){var v=D.charCodeAt(D.length-1);if(v>=55296&&v<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=m[m.length-2],this.lastChar[1]=m[m.length-1],D.slice(0,-1)}return D}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=m[m.length-1],m.toString("utf16le",p,m.length-1)}function g(m){var p=m&&m.length?this.write(m):"";return this.lastNeed?p+this.lastChar.toString("utf16le",0,this.lastTotal-this.lastNeed):p}function w(m,p){var D=(m.length-p)%3;return 0===D?m.toString("base64",p):(this.lastNeed=3-D,this.lastTotal=3,1===D?this.lastChar[0]=m[m.length-1]:(this.lastChar[0]=m[m.length-2],this.lastChar[1]=m[m.length-1]),m.toString("base64",p,m.length-D))}function Q(m){var p=m&&m.length?this.write(m):"";return this.lastNeed?p+this.lastChar.toString("base64",0,3-this.lastNeed):p}function d(m){return m.toString(this.encoding)}function F(m){return m&&m.length?this.write(m):""}I.s=E,E.prototype.write=function(m){if(0===m.length)return"";var p,D;if(this.lastNeed){if(void 0===(p=this.fillLast(m)))return"";D=this.lastNeed,this.lastNeed=0}else D=0;return D=0?(P>0&&(m.lastNeed=P-1),P):--v=0?(P>0&&(m.lastNeed=P-2),P):--v=0?(P>0&&(2===P?P=0:m.lastNeed=P-3),P):0}(this,m,p);if(!this.lastNeed)return m.toString("utf8",p);this.lastTotal=D;var v=m.length-(D-this.lastNeed);return m.copy(this.lastChar,0,v),m.toString("utf8",p,v)},E.prototype.fillLast=function(m){if(this.lastNeed<=m.length)return m.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);m.copy(this.lastChar,this.lastTotal-this.lastNeed,0,m.length),this.lastNeed-=m.length}},311:function(Y){function c(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function r(T,x){this.source=T,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=x,this.destLen=0,this.ltree=new c,this.dtree=new c}var a=new c,s=new c,E=new Uint8Array(30),o=new Uint16Array(30),l=new Uint8Array(30),h=new Uint16Array(30),u=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),C=new c,e=new Uint8Array(320);function f(T,x,R,N){var V,aA;for(V=0;V>>=1,x}function F(T,x,R){if(!x)return R;for(;T.bitcount<24;)T.tag|=T.source[T.sourceIndex++]<>>16-x;return T.tag>>>=x,T.bitcount-=x,N+R}function m(T,x){for(;T.bitcount<24;)T.tag|=T.source[T.sourceIndex++]<>>=1,++V,R+=x.table[V],N-=x.table[V]}while(N>=0);return T.tag=aA,T.bitcount-=V,x.trans[R+N]}function p(T,x,R){var N,V,aA,AA,gA,MA;for(N=F(T,5,257),V=F(T,5,1),aA=F(T,4,4),AA=0;AA<19;++AA)e[AA]=0;for(AA=0;AA8;)T.sourceIndex--,T.bitcount-=8;if((x=256*(x=T.source[T.sourceIndex+1])+T.source[T.sourceIndex])!==(65535&~(256*T.source[T.sourceIndex+3]+T.source[T.sourceIndex+2])))return-3;for(T.sourceIndex+=4,N=x;N;--N)T.dest[T.destLen++]=T.source[T.sourceIndex++];return T.bitcount=0,0}(function(T,x){var R;for(R=0;R<7;++R)T.table[R]=0;for(T.table[7]=24,T.table[8]=152,T.table[9]=112,R=0;R<24;++R)T.trans[R]=256+R;for(R=0;R<144;++R)T.trans[24+R]=R;for(R=0;R<8;++R)T.trans[168+R]=280+R;for(R=0;R<112;++R)T.trans[176+R]=144+R;for(R=0;R<5;++R)x.table[R]=0;for(x.table[5]=32,R=0;R<32;++R)x.trans[R]=R})(a,s),f(E,o,4,3),f(l,h,2,1),E[28]=0,o[28]=258,Y.exports=function(T,x){var N,aA,R=new r(T,x);do{switch(N=d(R),F(R,2,0)){case 0:aA=v(R);break;case 1:aA=D(R,a,s);break;case 2:p(R,R.ltree,R.dtree),aA=D(R,R.ltree,R.dtree);break;default:aA=-3}if(0!==aA)throw new Error("Data error")}while(!N);return R.destLen=nA.length?{done:!0}:{done:!1,value:nA[M++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function u(nA,b){(null==b||b>nA.length)&&(b=nA.length);for(var K=0,M=new Array(b);K0?iA[0]:"value";if(tA.has(kA))return tA.get(kA);var gt=y.apply(this,iA);return tA.set(kA,gt),gt}return Object.defineProperty(this,b,{value:oA}),oA}}}}v.registerFormat=function(nA){P.push(nA)},v.openSync=function(nA,b){var K=D.readFileSync(nA);return v.create(K,b)},v.open=function(nA,b,K){"function"==typeof b&&(K=b,b=null),D.readFile(nA,function(M,y){if(M)return K(M);try{var z=v.create(y,b)}catch(tA){return K(tA)}return K(null,z)})},v.create=function(nA,b){for(var K=0;K>1},searchRange:e.uint16,entrySelector:e.uint16,rangeShift:e.uint16,endCode:new e.LazyArray(e.uint16,"segCount"),reservedPad:new e.Reserved(e.uint16),startCode:new e.LazyArray(e.uint16,"segCount"),idDelta:new e.LazyArray(e.int16,"segCount"),idRangeOffset:new e.LazyArray(e.uint16,"segCount"),glyphIndexArray:new e.LazyArray(e.uint16,function(nA){return(nA.length-nA._currentOffset)/2})},6:{length:e.uint16,language:e.uint16,firstCode:e.uint16,entryCount:e.uint16,glyphIndices:new e.LazyArray(e.uint16,"entryCount")},8:{reserved:new e.Reserved(e.uint16),length:e.uint32,language:e.uint16,is32:new e.LazyArray(e.uint8,8192),nGroups:e.uint32,groups:new e.LazyArray(V,"nGroups")},10:{reserved:new e.Reserved(e.uint16),length:e.uint32,language:e.uint32,firstCode:e.uint32,entryCount:e.uint32,glyphIndices:new e.LazyArray(e.uint16,"numChars")},12:{reserved:new e.Reserved(e.uint16),length:e.uint32,language:e.uint32,nGroups:e.uint32,groups:new e.LazyArray(V,"nGroups")},13:{reserved:new e.Reserved(e.uint16),length:e.uint32,language:e.uint32,nGroups:e.uint32,groups:new e.LazyArray(V,"nGroups")},14:{length:e.uint32,numRecords:e.uint32,varSelectors:new e.LazyArray(cA,"numRecords")}}),BA=new e.Struct({platformID:e.uint16,encodingID:e.uint16,table:new e.Pointer(e.uint32,lA,{type:"parent",lazy:!0})}),vA=new e.Struct({version:e.uint16,numSubtables:e.uint16,tables:new e.Array(BA,"numSubtables")}),xA=new e.Struct({version:e.int32,revision:e.int32,checkSumAdjustment:e.uint32,magicNumber:e.uint32,flags:e.uint16,unitsPerEm:e.uint16,created:new e.Array(e.int32,2),modified:new e.Array(e.int32,2),xMin:e.int16,yMin:e.int16,xMax:e.int16,yMax:e.int16,macStyle:new e.Bitfield(e.uint16,["bold","italic","underline","outline","shadow","condensed","extended"]),lowestRecPPEM:e.uint16,fontDirectionHint:e.int16,indexToLocFormat:e.int16,glyphDataFormat:e.int16}),_=new e.Struct({version:e.int32,ascent:e.int16,descent:e.int16,lineGap:e.int16,advanceWidthMax:e.uint16,minLeftSideBearing:e.int16,minRightSideBearing:e.int16,xMaxExtent:e.int16,caretSlopeRise:e.int16,caretSlopeRun:e.int16,caretOffset:e.int16,reserved:new e.Reserved(e.int16,4),metricDataFormat:e.int16,numberOfMetrics:e.uint16}),QA=new e.Struct({advance:e.uint16,bearing:e.int16}),uA=new e.Struct({metrics:new e.LazyArray(QA,function(nA){return nA.parent.hhea.numberOfMetrics}),bearings:new e.LazyArray(e.int16,function(nA){return nA.parent.maxp.numGlyphs-nA.parent.hhea.numberOfMetrics})}),CA=new e.Struct({version:e.int32,numGlyphs:e.uint16,maxPoints:e.uint16,maxContours:e.uint16,maxComponentPoints:e.uint16,maxComponentContours:e.uint16,maxZones:e.uint16,maxTwilightPoints:e.uint16,maxStorage:e.uint16,maxFunctionDefs:e.uint16,maxInstructionDefs:e.uint16,maxStackElements:e.uint16,maxSizeOfInstructions:e.uint16,maxComponentElements:e.uint16,maxComponentDepth:e.uint16});function TA(nA,b,K){return void 0===K&&(K=0),1===nA&&VA[K]?VA[K]:GA[nA][b]}var GA=[["utf16be","utf16be","utf16be","utf16be","utf16be","utf16be"],["macroman","shift-jis","big5","euc-kr","iso-8859-6","iso-8859-8","macgreek","maccyrillic","symbol","Devanagari","Gurmukhi","Gujarati","Oriya","Bengali","Tamil","Telugu","Kannada","Malayalam","Sinhalese","Burmese","Khmer","macthai","Laotian","Georgian","Armenian","gb-2312-80","Tibetan","Mongolian","Geez","maccenteuro","Vietnamese","Sindhi"],["ascii"],["symbol","utf16be","shift-jis","gb18030","big5","wansung","johab",null,null,null,"utf16be"]],VA={15:"maciceland",17:"macturkish",18:"maccroatian",24:"maccenteuro",25:"maccenteuro",26:"maccenteuro",27:"maccenteuro",28:"maccenteuro",30:"maciceland",37:"macromania",38:"maccenteuro",39:"maccenteuro",40:"maccenteuro",143:"macinuit",146:"macgaelic"},q=[[],{0:"en",30:"fo",60:"ks",90:"rw",1:"fr",31:"fa",61:"ku",91:"rn",2:"de",32:"ru",62:"sd",92:"ny",3:"it",33:"zh",63:"bo",93:"mg",4:"nl",34:"nl-BE",64:"ne",94:"eo",5:"sv",35:"ga",65:"sa",128:"cy",6:"es",36:"sq",66:"mr",129:"eu",7:"da",37:"ro",67:"bn",130:"ca",8:"pt",38:"cz",68:"as",131:"la",9:"no",39:"sk",69:"gu",132:"qu",10:"he",40:"si",70:"pa",133:"gn",11:"ja",41:"yi",71:"or",134:"ay",12:"ar",42:"sr",72:"ml",135:"tt",13:"fi",43:"mk",73:"kn",136:"ug",14:"el",44:"bg",74:"ta",137:"dz",15:"is",45:"uk",75:"te",138:"jv",16:"mt",46:"be",76:"si",139:"su",17:"tr",47:"uz",77:"my",140:"gl",18:"hr",48:"kk",78:"km",141:"af",19:"zh-Hant",49:"az-Cyrl",79:"lo",142:"br",20:"ur",50:"az-Arab",80:"vi",143:"iu",21:"hi",51:"hy",81:"id",144:"gd",22:"th",52:"ka",82:"tl",145:"gv",23:"ko",53:"mo",83:"ms",146:"ga",24:"lt",54:"ky",84:"ms-Arab",147:"to",25:"pl",55:"tg",85:"am",148:"el-polyton",26:"hu",56:"tk",86:"ti",149:"kl",27:"es",57:"mn-CN",87:"om",150:"az",28:"lv",58:"mn",88:"so",151:"nn",29:"se",59:"ps",89:"sw"},[],{1078:"af",16393:"en-IN",1159:"rw",1074:"tn",1052:"sq",6153:"en-IE",1089:"sw",1115:"si",1156:"gsw",8201:"en-JM",1111:"kok",1051:"sk",1118:"am",17417:"en-MY",1042:"ko",1060:"sl",5121:"ar-DZ",5129:"en-NZ",1088:"ky",11274:"es-AR",15361:"ar-BH",13321:"en-PH",1108:"lo",16394:"es-BO",3073:"ar",18441:"en-SG",1062:"lv",13322:"es-CL",2049:"ar-IQ",7177:"en-ZA",1063:"lt",9226:"es-CO",11265:"ar-JO",11273:"en-TT",2094:"dsb",5130:"es-CR",13313:"ar-KW",2057:"en-GB",1134:"lb",7178:"es-DO",12289:"ar-LB",1033:"en",1071:"mk",12298:"es-EC",4097:"ar-LY",12297:"en-ZW",2110:"ms-BN",17418:"es-SV",6145:"ary",1061:"et",1086:"ms",4106:"es-GT",8193:"ar-OM",1080:"fo",1100:"ml",18442:"es-HN",16385:"ar-QA",1124:"fil",1082:"mt",2058:"es-MX",1025:"ar-SA",1035:"fi",1153:"mi",19466:"es-NI",10241:"ar-SY",2060:"fr-BE",1146:"arn",6154:"es-PA",7169:"aeb",3084:"fr-CA",1102:"mr",15370:"es-PY",14337:"ar-AE",1036:"fr",1148:"moh",10250:"es-PE",9217:"ar-YE",5132:"fr-LU",1104:"mn",20490:"es-PR",1067:"hy",6156:"fr-MC",2128:"mn-CN",3082:"es",1101:"as",4108:"fr-CH",1121:"ne",1034:"es",2092:"az-Cyrl",1122:"fy",1044:"nb",21514:"es-US",1068:"az",1110:"gl",2068:"nn",14346:"es-UY",1133:"ba",1079:"ka",1154:"oc",8202:"es-VE",1069:"eu",3079:"de-AT",1096:"or",2077:"sv-FI",1059:"be",1031:"de",1123:"ps",1053:"sv",2117:"bn",5127:"de-LI",1045:"pl",1114:"syr",1093:"bn-IN",4103:"de-LU",1046:"pt",1064:"tg",8218:"bs-Cyrl",2055:"de-CH",2070:"pt-PT",2143:"tzm",5146:"bs",1032:"el",1094:"pa",1097:"ta",1150:"br",1135:"kl",1131:"qu-BO",1092:"tt",1026:"bg",1095:"gu",2155:"qu-EC",1098:"te",1027:"ca",1128:"ha",3179:"qu",1054:"th",3076:"zh-HK",1037:"he",1048:"ro",1105:"bo",5124:"zh-MO",1081:"hi",1047:"rm",1055:"tr",2052:"zh",1038:"hu",1049:"ru",1090:"tk",4100:"zh-SG",1039:"is",9275:"smn",1152:"ug",1028:"zh-TW",1136:"ig",4155:"smj-NO",1058:"uk",1155:"co",1057:"id",5179:"smj",1070:"hsb",1050:"hr",1117:"iu",3131:"se-FI",1056:"ur",4122:"hr-BA",2141:"iu-Latn",1083:"se",2115:"uz-Cyrl",1029:"cs",2108:"ga",2107:"se-SE",1091:"uz",1030:"da",1076:"xh",8251:"sms",1066:"vi",1164:"prs",1077:"zu",6203:"sma-NO",1106:"cy",1125:"dv",1040:"it",7227:"sms",1160:"wo",2067:"nl-BE",2064:"it-CH",1103:"sa",1157:"sah",1043:"nl",1041:"ja",7194:"sr-Cyrl-BA",1144:"ii",3081:"en-AU",1099:"kn",3098:"sr",1130:"yo",10249:"en-BZ",1087:"kk",6170:"sr-Latn-BA",4105:"en-CA",1107:"km",2074:"sr-Latn",9225:"en-029",1158:"quc",1132:"nso"}],J=new e.Struct({platformID:e.uint16,encodingID:e.uint16,languageID:e.uint16,nameID:e.uint16,length:e.uint16,string:new e.Pointer(e.uint16,new e.String("length",function(nA){return TA(nA.platformID,nA.encodingID,nA.languageID)}),{type:"parent",relativeTo:function(b){return b.parent.stringOffset},allowNull:!1})}),$=new e.Struct({length:e.uint16,tag:new e.Pointer(e.uint16,new e.String("length","utf16be"),{type:"parent",relativeTo:function(b){return b.stringOffset}})}),W=new e.VersionedStruct(e.uint16,{0:{count:e.uint16,stringOffset:e.uint16,records:new e.Array(J,"count")},1:{count:e.uint16,stringOffset:e.uint16,records:new e.Array(J,"count"),langTagCount:e.uint16,langTags:new e.Array($,"langTagCount")}}),EA=["copyright","fontFamily","fontSubfamily","uniqueSubfamily","fullName","version","postscriptName","trademark","manufacturer","designer","description","vendorURL","designerURL","license","licenseURL",null,"preferredFamily","preferredSubfamily","compatibleFull","sampleText","postscriptCIDFontName","wwsFamilyName","wwsSubfamilyName"];W.process=function(nA){for(var M,b={},K=l(this.records);!(M=K()).done;){var y=M.value,z=q[y.platformID][y.languageID];null==z&&null!=this.langTags&&y.languageID>=32768&&(z=this.langTags[y.languageID-32768].tag),null==z&&(z=y.platformID+"-"+y.languageID);var tA=y.nameID>=256?"fontFeatures":EA[y.nameID]||y.nameID;null==b[tA]&&(b[tA]={});var oA=b[tA];y.nameID>=256&&(oA=oA[y.nameID]||(oA[y.nameID]={})),("string"==typeof y.string||"string"!=typeof oA[z])&&(oA[z]=y.string)}this.records=b},W.preEncode=function(){if(!Array.isArray(this.records)){this.version=0;var nA=[];for(var b in this.records){var K=this.records[b];"fontFeatures"!==b&&(nA.push({platformID:3,encodingID:1,languageID:1033,nameID:EA.indexOf(b),length:c.byteLength(K.en,"utf16le"),string:K.en}),"postscriptName"===b&&nA.push({platformID:1,encodingID:0,languageID:0,nameID:EA.indexOf(b),length:K.en.length,string:K.en}))}this.records=nA,this.count=nA.length,this.stringOffset=W.size(this,null,!1)}};var DA=new e.VersionedStruct(e.uint16,{header:{xAvgCharWidth:e.int16,usWeightClass:e.uint16,usWidthClass:e.uint16,fsType:new e.Bitfield(e.uint16,[null,"noEmbedding","viewOnly","editable",null,null,null,null,"noSubsetting","bitmapOnly"]),ySubscriptXSize:e.int16,ySubscriptYSize:e.int16,ySubscriptXOffset:e.int16,ySubscriptYOffset:e.int16,ySuperscriptXSize:e.int16,ySuperscriptYSize:e.int16,ySuperscriptXOffset:e.int16,ySuperscriptYOffset:e.int16,yStrikeoutSize:e.int16,yStrikeoutPosition:e.int16,sFamilyClass:e.int16,panose:new e.Array(e.uint8,10),ulCharRange:new e.Array(e.uint32,4),vendorID:new e.String(4),fsSelection:new e.Bitfield(e.uint16,["italic","underscore","negative","outlined","strikeout","bold","regular","useTypoMetrics","wws","oblique"]),usFirstCharIndex:e.uint16,usLastCharIndex:e.uint16},0:{},1:{typoAscender:e.int16,typoDescender:e.int16,typoLineGap:e.int16,winAscent:e.uint16,winDescent:e.uint16,codePageRange:new e.Array(e.uint32,2)},2:{typoAscender:e.int16,typoDescender:e.int16,typoLineGap:e.int16,winAscent:e.uint16,winDescent:e.uint16,codePageRange:new e.Array(e.uint32,2),xHeight:e.int16,capHeight:e.int16,defaultChar:e.uint16,breakChar:e.uint16,maxContent:e.uint16},5:{typoAscender:e.int16,typoDescender:e.int16,typoLineGap:e.int16,winAscent:e.uint16,winDescent:e.uint16,codePageRange:new e.Array(e.uint32,2),xHeight:e.int16,capHeight:e.int16,defaultChar:e.uint16,breakChar:e.uint16,maxContent:e.uint16,usLowerOpticalPointSize:e.uint16,usUpperOpticalPointSize:e.uint16}}),rA=DA.versions;rA[3]=rA[4]=rA[2];var hA=new e.VersionedStruct(e.fixed32,{header:{italicAngle:e.fixed32,underlinePosition:e.int16,underlineThickness:e.int16,isFixedPitch:e.uint32,minMemType42:e.uint32,maxMemType42:e.uint32,minMemType1:e.uint32,maxMemType1:e.uint32},1:{},2:{numberOfGlyphs:e.uint16,glyphNameIndex:new e.Array(e.uint16,"numberOfGlyphs"),names:new e.Array(new e.String(e.uint8))},2.5:{numberOfGlyphs:e.uint16,offsets:new e.Array(e.uint8,"numberOfGlyphs")},3:{},4:{map:new e.Array(e.uint32,function(nA){return nA.parent.maxp.numGlyphs})}}),HA=new e.Struct({controlValues:new e.Array(e.int16)}),nt=new e.Struct({instructions:new e.Array(e.uint8)}),st=new e.VersionedStruct("head.indexToLocFormat",{0:{offsets:new e.Array(e.uint16)},1:{offsets:new e.Array(e.uint32)}});st.process=function(){if(0===this.version)for(var nA=0;nA>>=1};var yA=new e.Struct({controlValueProgram:new e.Array(e.uint8)}),_A=new e.Array(new e.Buffer),ft=function(){function nA(K){this.type=K}var b=nA.prototype;return b.getCFFVersion=function(M){for(;M&&!M.hdrSize;)M=M.parent;return M?M.version:-1},b.decode=function(M,y){var tA=this.getCFFVersion(y)>=2?M.readUInt32BE():M.readUInt16BE();if(0===tA)return[];var sA,oA=M.readUInt8();if(1===oA)sA=e.uint8;else if(2===oA)sA=e.uint16;else if(3===oA)sA=e.uint24;else{if(4!==oA)throw new Error("Bad offset size in CFFIndex: ".concat(oA," ").concat(M.pos));sA=e.uint32}for(var iA=[],UA=M.pos+(tA+1)*oA-1,kA=sA.decode(M),gt=0;gt>4;if(15===tA)break;y+=SA[tA];var oA=15&z;if(15===oA)break;y+=SA[oA]}return parseFloat(y)}return null},nA.size=function(K){return K.forceLarge&&(K=32768),(0|K)!==K?1+Math.ceil(((""+K).length+1)/2):-107<=K&&K<=107?1:108<=K&&K<=1131||-1131<=K&&K<=-108?2:-32768<=K&&K<=32767?3:5},nA.encode=function(K,M){var y=Number(M);if(M.forceLarge)return K.writeUInt8(29),K.writeInt32BE(y);if((0|y)===y)return-107<=y&&y<=107?K.writeUInt8(y+139):108<=y&&y<=1131?(K.writeUInt8(247+((y-=108)>>8)),K.writeUInt8(255&y)):-1131<=y&&y<=-108?(K.writeUInt8(251+((y=-y-108)>>8)),K.writeUInt8(255&y)):-32768<=y&&y<=32767?(K.writeUInt8(28),K.writeInt16BE(y)):(K.writeUInt8(29),K.writeInt32BE(y));K.writeUInt8(30);for(var z=""+y,tA=0;tAz;)y.pop()},nA}(),null],[19,"Subrs",new ot(new ft,{type:"local"}),null]]),Pt=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],G=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],L=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],RA=new e.Struct({reserved:new e.Reserved(e.uint16),reqFeatureIndex:e.uint16,featureCount:e.uint16,featureIndexes:new e.Array(e.uint16,"featureCount")}),eA=new e.Struct({tag:new e.String(4),langSys:new e.Pointer(e.uint16,RA,{type:"parent"})}),at=new e.Struct({defaultLangSys:new e.Pointer(e.uint16,RA),count:e.uint16,langSysRecords:new e.Array(eA,"count")}),Ft=new e.Struct({tag:new e.String(4),script:new e.Pointer(e.uint16,at,{type:"parent"})}),j=new e.Array(Ft,e.uint16),XA=new e.Struct({featureParams:e.uint16,lookupCount:e.uint16,lookupListIndexes:new e.Array(e.uint16,"lookupCount")}),et=new e.Struct({tag:new e.String(4),feature:new e.Pointer(e.uint16,XA,{type:"parent"})}),mA=new e.Array(et,e.uint16),jA=new e.Struct({markAttachmentType:e.uint8,flags:new e.Bitfield(e.uint8,["rightToLeft","ignoreBaseGlyphs","ignoreLigatures","ignoreMarks","useMarkFilteringSet"])});function ct(nA){var b=new e.Struct({lookupType:e.uint16,flags:jA,subTableCount:e.uint16,subTables:new e.Array(new e.Pointer(e.uint16,nA),"subTableCount"),markFilteringSet:new e.Optional(e.uint16,function(K){return K.flags.flags.useMarkFilteringSet})});return new e.LazyArray(new e.Pointer(e.uint16,b),e.uint16)}var bt=new e.Struct({start:e.uint16,end:e.uint16,startCoverageIndex:e.uint16}),yt=new e.VersionedStruct(e.uint16,{1:{glyphCount:e.uint16,glyphs:new e.Array(e.uint16,"glyphCount")},2:{rangeCount:e.uint16,rangeRecords:new e.Array(bt,"rangeCount")}}),Rt=new e.Struct({start:e.uint16,end:e.uint16,class:e.uint16}),Kt=new e.VersionedStruct(e.uint16,{1:{startGlyph:e.uint16,glyphCount:e.uint16,classValueArray:new e.Array(e.uint16,"glyphCount")},2:{classRangeCount:e.uint16,classRangeRecord:new e.Array(Rt,"classRangeCount")}}),Ne=new e.Struct({a:e.uint16,b:e.uint16,deltaFormat:e.uint16}),ie=new e.Struct({sequenceIndex:e.uint16,lookupListIndex:e.uint16}),$t=new e.Struct({glyphCount:e.uint16,lookupCount:e.uint16,input:new e.Array(e.uint16,function(nA){return nA.glyphCount-1}),lookupRecords:new e.Array(ie,"lookupCount")}),me=new e.Array(new e.Pointer(e.uint16,$t),e.uint16),be=new e.Struct({glyphCount:e.uint16,lookupCount:e.uint16,classes:new e.Array(e.uint16,function(nA){return nA.glyphCount-1}),lookupRecords:new e.Array(ie,"lookupCount")}),Re=new e.Array(new e.Pointer(e.uint16,be),e.uint16),mn=new e.VersionedStruct(e.uint16,{1:{coverage:new e.Pointer(e.uint16,yt),ruleSetCount:e.uint16,ruleSets:new e.Array(new e.Pointer(e.uint16,me),"ruleSetCount")},2:{coverage:new e.Pointer(e.uint16,yt),classDef:new e.Pointer(e.uint16,Kt),classSetCnt:e.uint16,classSet:new e.Array(new e.Pointer(e.uint16,Re),"classSetCnt")},3:{glyphCount:e.uint16,lookupCount:e.uint16,coverages:new e.Array(new e.Pointer(e.uint16,yt),"glyphCount"),lookupRecords:new e.Array(ie,"lookupCount")}}),yn=new e.Struct({backtrackGlyphCount:e.uint16,backtrack:new e.Array(e.uint16,"backtrackGlyphCount"),inputGlyphCount:e.uint16,input:new e.Array(e.uint16,function(nA){return nA.inputGlyphCount-1}),lookaheadGlyphCount:e.uint16,lookahead:new e.Array(e.uint16,"lookaheadGlyphCount"),lookupCount:e.uint16,lookupRecords:new e.Array(ie,"lookupCount")}),ne=new e.Array(new e.Pointer(e.uint16,yn),e.uint16),An=new e.VersionedStruct(e.uint16,{1:{coverage:new e.Pointer(e.uint16,yt),chainCount:e.uint16,chainRuleSets:new e.Array(new e.Pointer(e.uint16,ne),"chainCount")},2:{coverage:new e.Pointer(e.uint16,yt),backtrackClassDef:new e.Pointer(e.uint16,Kt),inputClassDef:new e.Pointer(e.uint16,Kt),lookaheadClassDef:new e.Pointer(e.uint16,Kt),chainCount:e.uint16,chainClassSet:new e.Array(new e.Pointer(e.uint16,ne),"chainCount")},3:{backtrackGlyphCount:e.uint16,backtrackCoverage:new e.Array(new e.Pointer(e.uint16,yt),"backtrackGlyphCount"),inputGlyphCount:e.uint16,inputCoverage:new e.Array(new e.Pointer(e.uint16,yt),"inputGlyphCount"),lookaheadGlyphCount:e.uint16,lookaheadCoverage:new e.Array(new e.Pointer(e.uint16,yt),"lookaheadGlyphCount"),lookupCount:e.uint16,lookupRecords:new e.Array(ie,"lookupCount")}}),Se=new e.Fixed(16,"BE",14),tn=new e.Struct({startCoord:Se,peakCoord:Se,endCoord:Se}),qe=new e.Struct({axisCount:e.uint16,regionCount:e.uint16,variationRegions:new e.Array(new e.Array(tn,"axisCount"),"regionCount")}),Ln=new e.Struct({shortDeltas:new e.Array(e.int16,function(nA){return nA.parent.shortDeltaCount}),regionDeltas:new e.Array(e.int8,function(nA){return nA.parent.regionIndexCount-nA.parent.shortDeltaCount}),deltas:function(b){return b.shortDeltas.concat(b.regionDeltas)}}),Gn=new e.Struct({itemCount:e.uint16,shortDeltaCount:e.uint16,regionIndexCount:e.uint16,regionIndexes:new e.Array(e.uint16,"regionIndexCount"),deltaSets:new e.Array(Ln,"itemCount")}),Jt=new e.Struct({format:e.uint16,variationRegionList:new e.Pointer(e.uint32,qe),variationDataCount:e.uint16,itemVariationData:new e.Array(new e.Pointer(e.uint32,Gn),"variationDataCount")}),Lt=new e.VersionedStruct(e.uint16,{1:(r={axisIndex:e.uint16},r.axisIndex=e.uint16,r.filterRangeMinValue=Se,r.filterRangeMaxValue=Se,r)}),Xt=new e.Struct({conditionCount:e.uint16,conditionTable:new e.Array(new e.Pointer(e.uint32,Lt),"conditionCount")}),oe=new e.Struct({featureIndex:e.uint16,alternateFeatureTable:new e.Pointer(e.uint32,XA,{type:"parent"})}),In=new e.Struct({version:e.fixed32,substitutionCount:e.uint16,substitutions:new e.Array(oe,"substitutionCount")}),Mn=new e.Struct({conditionSet:new e.Pointer(e.uint32,Xt,{type:"parent"}),featureTableSubstitution:new e.Pointer(e.uint32,In,{type:"parent"})}),Fn=new e.Struct({majorVersion:e.uint16,minorVersion:e.uint16,featureVariationRecordCount:e.uint32,featureVariationRecords:new e.Array(Mn,"featureVariationRecordCount")}),Kn=function(){function nA(K,M){this.predefinedOps=K,this.type=M}var b=nA.prototype;return b.decode=function(M,y,z){return this.predefinedOps[z[0]]?this.predefinedOps[z[0]]:this.type.decode(M,y,z)},b.size=function(M,y){return this.type.size(M,y)},b.encode=function(M,y,z){var tA=this.predefinedOps.indexOf(y);return-1!==tA?tA:this.type.encode(M,y,z)},nA}(),nr=function(nA){function b(){return nA.call(this,"UInt8")||this}return E(b,nA),b.prototype.decode=function(y){return 127&e.uint8.decode(y)},b}(e.Number),nn=new e.Struct({first:e.uint16,nLeft:e.uint8}),KA=new e.Struct({first:e.uint16,nLeft:e.uint16}),tt=new Kn([G,["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"]],new ot(new e.VersionedStruct(new nr,{0:{nCodes:e.uint8,codes:new e.Array(e.uint8,"nCodes")},1:{nRanges:e.uint8,ranges:new e.Array(nn,"nRanges")}}),{lazy:!0})),PA=function(nA){function b(){return nA.apply(this,arguments)||this}return E(b,nA),b.prototype.decode=function(y,z){for(var tA=f.resolveLength(this.length,y,z),oA=0,sA=[];oA=2?null:M=2||this.isCIDFont)return null;var y=this.topDict.charset;if(Array.isArray(y))return y[M];if(0===M)return".notdef";switch(M-=1,y.version){case 0:return this.string(y.glyphs[M]);case 1:case 2:for(var z=0;z>1;if(M=y[oA+1].first))return y[oA].fd;z=oA+1}}default:throw new Error("Unknown FDSelect version: ".concat(this.topDict.FDSelect.version))}},b.privateDictForGlyph=function(M){if(this.topDict.FDSelect){var y=this.fdForGlyph(M);return this.topDict.FDArray[y]?this.topDict.FDArray[y].Private:null}return this.version<2?this.topDict.Private:this.topDict.FDArray[0].Private},s(nA,[{key:"postscriptName",get:function(){return this.version<2?this.nameIndex[0]:null}},{key:"fullName",get:function(){return this.string(this.topDict.FullName)}},{key:"familyName",get:function(){return this.string(this.topDict.FamilyName)}}]),nA}(),Et=new e.Struct({glyphIndex:e.uint16,vertOriginY:e.int16}),zt=new e.Struct({majorVersion:e.uint16,minorVersion:e.uint16,defaultVertOriginY:e.int16,numVertOriginYMetrics:e.uint16,metrics:new e.Array(Et,"numVertOriginYMetrics")}),jt=new e.Struct({height:e.uint8,width:e.uint8,horiBearingX:e.int8,horiBearingY:e.int8,horiAdvance:e.uint8,vertBearingX:e.int8,vertBearingY:e.int8,vertAdvance:e.uint8}),Ht=new e.Struct({height:e.uint8,width:e.uint8,bearingX:e.int8,bearingY:e.int8,advance:e.uint8}),ce=new e.Struct({glyph:e.uint16,xOffset:e.int8,yOffset:e.int8}),Vt=function(){},Be=function(){},De=(new e.VersionedStruct("version",{1:{metrics:Ht,data:Vt},2:{metrics:Ht,data:Be},5:{data:Be},6:{metrics:jt,data:Vt},7:{metrics:jt,data:Be},8:{metrics:Ht,pad:new e.Reserved(e.uint8),numComponents:e.uint16,components:new e.Array(ce,"numComponents")},9:{metrics:jt,pad:new e.Reserved(e.uint8),numComponents:e.uint16,components:new e.Array(ce,"numComponents")},17:{metrics:Ht,dataLen:e.uint32,data:new e.Buffer("dataLen")},18:{metrics:jt,dataLen:e.uint32,data:new e.Buffer("dataLen")},19:{dataLen:e.uint32,data:new e.Buffer("dataLen")}}),new e.Struct({ascender:e.int8,descender:e.int8,widthMax:e.uint8,caretSlopeNumerator:e.int8,caretSlopeDenominator:e.int8,caretOffset:e.int8,minOriginSB:e.int8,minAdvanceSB:e.int8,maxBeforeBL:e.int8,minAfterBL:e.int8,pad:new e.Reserved(e.int8,2)})),Le=new e.Struct({glyphCode:e.uint16,offset:e.uint16}),Ue=new e.VersionedStruct(e.uint16,{header:{imageFormat:e.uint16,imageDataOffset:e.uint32},1:{offsetArray:new e.Array(e.uint32,function(nA){return nA.parent.lastGlyphIndex-nA.parent.firstGlyphIndex+1})},2:{imageSize:e.uint32,bigMetrics:jt},3:{offsetArray:new e.Array(e.uint16,function(nA){return nA.parent.lastGlyphIndex-nA.parent.firstGlyphIndex+1})},4:{numGlyphs:e.uint32,glyphArray:new e.Array(Le,function(nA){return nA.numGlyphs+1})},5:{imageSize:e.uint32,bigMetrics:jt,numGlyphs:e.uint32,glyphCodeArray:new e.Array(e.uint16,"numGlyphs")}}),ye=new e.Struct({firstGlyphIndex:e.uint16,lastGlyphIndex:e.uint16,subtable:new e.Pointer(e.uint32,Ue)}),Te=new e.Struct({indexSubTableArray:new e.Pointer(e.uint32,new e.Array(ye,1),{type:"parent"}),indexTablesSize:e.uint32,numberOfIndexSubTables:e.uint32,colorRef:e.uint32,hori:De,vert:De,startGlyphIndex:e.uint16,endGlyphIndex:e.uint16,ppemX:e.uint8,ppemY:e.uint8,bitDepth:e.uint8,flags:new e.Bitfield(e.uint8,["horizontal","vertical"])}),ke=new e.Struct({version:e.uint32,numSizes:e.uint32,sizes:new e.Array(Te,"numSizes")}),xn=new e.Struct({ppem:e.uint16,resolution:e.uint16,imageOffsets:new e.Array(new e.Pointer(e.uint32,"void"),function(nA){return nA.parent.parent.maxp.numGlyphs+1})}),rn=new e.Struct({version:e.uint16,flags:new e.Bitfield(e.uint16,["renderOutlines"]),numImgTables:e.uint32,imageTables:new e.Array(new e.Pointer(e.uint32,xn),"numImgTables")}),dn=new e.Struct({gid:e.uint16,paletteIndex:e.uint16}),Yn=new e.Struct({gid:e.uint16,firstLayerIndex:e.uint16,numLayers:e.uint16}),an=new e.Struct({version:e.uint16,numBaseGlyphRecords:e.uint16,baseGlyphRecord:new e.Pointer(e.uint32,new e.Array(Yn,"numBaseGlyphRecords")),layerRecords:new e.Pointer(e.uint32,new e.Array(dn,"numLayerRecords"),{lazy:!0}),numLayerRecords:e.uint16}),En=new e.Struct({blue:e.uint8,green:e.uint8,red:e.uint8,alpha:e.uint8}),gn=new e.VersionedStruct(e.uint16,{header:{numPaletteEntries:e.uint16,numPalettes:e.uint16,numColorRecords:e.uint16,colorRecords:new e.Pointer(e.uint32,new e.Array(En,"numColorRecords")),colorRecordIndices:new e.Array(e.uint16,"numPalettes")},0:{},1:{offsetPaletteTypeArray:new e.Pointer(e.uint32,new e.Array(e.uint32,"numPalettes")),offsetPaletteLabelArray:new e.Pointer(e.uint32,new e.Array(e.uint16,"numPalettes")),offsetPaletteEntryLabelArray:new e.Pointer(e.uint32,new e.Array(e.uint16,"numPaletteEntries"))}}),Tn=new e.VersionedStruct(e.uint16,{1:{coordinate:e.int16},2:{coordinate:e.int16,referenceGlyph:e.uint16,baseCoordPoint:e.uint16},3:{coordinate:e.int16,deviceTable:new e.Pointer(e.uint16,Ne)}}),Yr=new e.Struct({defaultIndex:e.uint16,baseCoordCount:e.uint16,baseCoords:new e.Array(new e.Pointer(e.uint16,Tn),"baseCoordCount")}),Tr=new e.Struct({tag:new e.String(4),minCoord:new e.Pointer(e.uint16,Tn,{type:"parent"}),maxCoord:new e.Pointer(e.uint16,Tn,{type:"parent"})}),rr=new e.Struct({minCoord:new e.Pointer(e.uint16,Tn),maxCoord:new e.Pointer(e.uint16,Tn),featMinMaxCount:e.uint16,featMinMaxRecords:new e.Array(Tr,"featMinMaxCount")}),Sn=new e.Struct({tag:new e.String(4),minMax:new e.Pointer(e.uint16,rr,{type:"parent"})}),_n=new e.Struct({baseValues:new e.Pointer(e.uint16,Yr),defaultMinMax:new e.Pointer(e.uint16,rr),baseLangSysCount:e.uint16,baseLangSysRecords:new e.Array(Sn,"baseLangSysCount")}),IA=new e.Struct({tag:new e.String(4),script:new e.Pointer(e.uint16,_n,{type:"parent"})}),H=new e.Array(IA,e.uint16),S=new e.Array(new e.String(4),e.uint16),X=new e.Struct({baseTagList:new e.Pointer(e.uint16,S),baseScriptList:new e.Pointer(e.uint16,H)}),Z=new e.VersionedStruct(e.uint32,{header:{horizAxis:new e.Pointer(e.uint16,X),vertAxis:new e.Pointer(e.uint16,X)},65536:{},65537:{itemVariationStore:new e.Pointer(e.uint32,Jt)}}),fA=new e.Array(e.uint16,e.uint16),pA=new e.Struct({coverage:new e.Pointer(e.uint16,yt),glyphCount:e.uint16,attachPoints:new e.Array(new e.Pointer(e.uint16,fA),"glyphCount")}),$A=new e.VersionedStruct(e.uint16,{1:{coordinate:e.int16},2:{caretValuePoint:e.uint16},3:{coordinate:e.int16,deviceTable:new e.Pointer(e.uint16,Ne)}}),rt=new e.Array(new e.Pointer(e.uint16,$A),e.uint16),ut=new e.Struct({coverage:new e.Pointer(e.uint16,yt),ligGlyphCount:e.uint16,ligGlyphs:new e.Array(new e.Pointer(e.uint16,rt),"ligGlyphCount")}),wt=new e.Struct({markSetTableFormat:e.uint16,markSetCount:e.uint16,coverage:new e.Array(new e.Pointer(e.uint32,yt),"markSetCount")}),Dt=new e.VersionedStruct(e.uint32,{header:{glyphClassDef:new e.Pointer(e.uint16,Kt),attachList:new e.Pointer(e.uint16,pA),ligCaretList:new e.Pointer(e.uint16,ut),markAttachClassDef:new e.Pointer(e.uint16,Kt)},65536:{},65538:{markGlyphSetsDef:new e.Pointer(e.uint16,wt)},65539:{markGlyphSetsDef:new e.Pointer(e.uint16,wt),itemVariationStore:new e.Pointer(e.uint32,Jt)}}),xt=new e.Bitfield(e.uint16,["xPlacement","yPlacement","xAdvance","yAdvance","xPlaDevice","yPlaDevice","xAdvDevice","yAdvDevice"]),Yt={xPlacement:e.int16,yPlacement:e.int16,xAdvance:e.int16,yAdvance:e.int16,xPlaDevice:new e.Pointer(e.uint16,Ne,{type:"global",relativeTo:function(b){return b.rel}}),yPlaDevice:new e.Pointer(e.uint16,Ne,{type:"global",relativeTo:function(b){return b.rel}}),xAdvDevice:new e.Pointer(e.uint16,Ne,{type:"global",relativeTo:function(b){return b.rel}}),yAdvDevice:new e.Pointer(e.uint16,Ne,{type:"global",relativeTo:function(b){return b.rel}})},Ot=function(){function nA(K){void 0===K&&(K="valueFormat"),this.key=K}var b=nA.prototype;return b.buildStruct=function(M){for(var y=M;!y[this.key]&&y.parent;)y=y.parent;if(y[this.key]){var z={rel:function(){return y._startOffset}},tA=y[this.key];for(var oA in tA)tA[oA]&&(z[oA]=Yt[oA]);return new e.Struct(z)}},b.size=function(M,y){return this.buildStruct(y).size(M,y)},b.decode=function(M,y){var z=this.buildStruct(y).decode(M,y);return delete z.rel,z},nA}(),Zt=new e.Struct({secondGlyph:e.uint16,value1:new Ot("valueFormat1"),value2:new Ot("valueFormat2")}),ue=new e.Array(Zt,e.uint16),Ee=new e.Struct({value1:new Ot("valueFormat1"),value2:new Ot("valueFormat2")}),Me=new e.VersionedStruct(e.uint16,{1:{xCoordinate:e.int16,yCoordinate:e.int16},2:{xCoordinate:e.int16,yCoordinate:e.int16,anchorPoint:e.uint16},3:{xCoordinate:e.int16,yCoordinate:e.int16,xDeviceTable:new e.Pointer(e.uint16,Ne),yDeviceTable:new e.Pointer(e.uint16,Ne)}}),en=new e.Struct({entryAnchor:new e.Pointer(e.uint16,Me,{type:"parent"}),exitAnchor:new e.Pointer(e.uint16,Me,{type:"parent"})}),Qe=new e.Struct({class:e.uint16,markAnchor:new e.Pointer(e.uint16,Me,{type:"parent"})}),je=new e.Array(Qe,e.uint16),wn=new e.Array(new e.Pointer(e.uint16,Me),function(nA){return nA.parent.classCount}),Ze=new e.Array(wn,e.uint16),Cn=new e.Array(new e.Pointer(e.uint16,Me),function(nA){return nA.parent.parent.classCount}),Wn=new e.Array(Cn,e.uint16),$n=new e.Array(new e.Pointer(e.uint16,Wn),e.uint16),Un=new e.VersionedStruct("lookupType",{1:new e.VersionedStruct(e.uint16,{1:{coverage:new e.Pointer(e.uint16,yt),valueFormat:xt,value:new Ot},2:{coverage:new e.Pointer(e.uint16,yt),valueFormat:xt,valueCount:e.uint16,values:new e.LazyArray(new Ot,"valueCount")}}),2:new e.VersionedStruct(e.uint16,{1:{coverage:new e.Pointer(e.uint16,yt),valueFormat1:xt,valueFormat2:xt,pairSetCount:e.uint16,pairSets:new e.LazyArray(new e.Pointer(e.uint16,ue),"pairSetCount")},2:{coverage:new e.Pointer(e.uint16,yt),valueFormat1:xt,valueFormat2:xt,classDef1:new e.Pointer(e.uint16,Kt),classDef2:new e.Pointer(e.uint16,Kt),class1Count:e.uint16,class2Count:e.uint16,classRecords:new e.LazyArray(new e.LazyArray(Ee,"class2Count"),"class1Count")}}),3:{format:e.uint16,coverage:new e.Pointer(e.uint16,yt),entryExitCount:e.uint16,entryExitRecords:new e.Array(en,"entryExitCount")},4:{format:e.uint16,markCoverage:new e.Pointer(e.uint16,yt),baseCoverage:new e.Pointer(e.uint16,yt),classCount:e.uint16,markArray:new e.Pointer(e.uint16,je),baseArray:new e.Pointer(e.uint16,Ze)},5:{format:e.uint16,markCoverage:new e.Pointer(e.uint16,yt),ligatureCoverage:new e.Pointer(e.uint16,yt),classCount:e.uint16,markArray:new e.Pointer(e.uint16,je),ligatureArray:new e.Pointer(e.uint16,$n)},6:{format:e.uint16,mark1Coverage:new e.Pointer(e.uint16,yt),mark2Coverage:new e.Pointer(e.uint16,yt),classCount:e.uint16,mark1Array:new e.Pointer(e.uint16,je),mark2Array:new e.Pointer(e.uint16,Ze)},7:mn,8:An,9:{posFormat:e.uint16,lookupType:e.uint16,extension:new e.Pointer(e.uint32,Un)}});Un.versions[9].extension.type=Un;var Lr=new e.VersionedStruct(e.uint32,{header:{scriptList:new e.Pointer(e.uint16,j),featureList:new e.Pointer(e.uint16,mA),lookupList:new e.Pointer(e.uint16,new ct(Un))},65536:{},65537:{featureVariations:new e.Pointer(e.uint32,Fn)}}),On=new e.Array(e.uint16,e.uint16),ir=On,Mr=new e.Struct({glyph:e.uint16,compCount:e.uint16,components:new e.Array(e.uint16,function(nA){return nA.compCount-1})}),Ar=new e.Array(new e.Pointer(e.uint16,Mr),e.uint16),ur=new e.VersionedStruct("lookupType",{1:new e.VersionedStruct(e.uint16,{1:{coverage:new e.Pointer(e.uint16,yt),deltaGlyphID:e.int16},2:{coverage:new e.Pointer(e.uint16,yt),glyphCount:e.uint16,substitute:new e.LazyArray(e.uint16,"glyphCount")}}),2:{substFormat:e.uint16,coverage:new e.Pointer(e.uint16,yt),count:e.uint16,sequences:new e.LazyArray(new e.Pointer(e.uint16,On),"count")},3:{substFormat:e.uint16,coverage:new e.Pointer(e.uint16,yt),count:e.uint16,alternateSet:new e.LazyArray(new e.Pointer(e.uint16,ir),"count")},4:{substFormat:e.uint16,coverage:new e.Pointer(e.uint16,yt),count:e.uint16,ligatureSets:new e.LazyArray(new e.Pointer(e.uint16,Ar),"count")},5:mn,6:An,7:{substFormat:e.uint16,lookupType:e.uint16,extension:new e.Pointer(e.uint32,ur)},8:{substFormat:e.uint16,coverage:new e.Pointer(e.uint16,yt),backtrackCoverage:new e.Array(new e.Pointer(e.uint16,yt),"backtrackGlyphCount"),lookaheadGlyphCount:e.uint16,lookaheadCoverage:new e.Array(new e.Pointer(e.uint16,yt),"lookaheadGlyphCount"),glyphCount:e.uint16,substitutes:new e.Array(e.uint16,"glyphCount")}});ur.versions[7].extension.type=ur;var Gr=new e.VersionedStruct(e.uint32,{header:{scriptList:new e.Pointer(e.uint16,j),featureList:new e.Pointer(e.uint16,mA),lookupList:new e.Pointer(e.uint16,new ct(ur))},65536:{},65537:{featureVariations:new e.Pointer(e.uint32,Fn)}}),Vn=new e.Array(e.uint16,e.uint16),Hr=new e.Struct({shrinkageEnableGSUB:new e.Pointer(e.uint16,Vn),shrinkageDisableGSUB:new e.Pointer(e.uint16,Vn),shrinkageEnableGPOS:new e.Pointer(e.uint16,Vn),shrinkageDisableGPOS:new e.Pointer(e.uint16,Vn),shrinkageJstfMax:new e.Pointer(e.uint16,new ct(Un)),extensionEnableGSUB:new e.Pointer(e.uint16,Vn),extensionDisableGSUB:new e.Pointer(e.uint16,Vn),extensionEnableGPOS:new e.Pointer(e.uint16,Vn),extensionDisableGPOS:new e.Pointer(e.uint16,Vn),extensionJstfMax:new e.Pointer(e.uint16,new ct(Un))}),dr=new e.Array(new e.Pointer(e.uint16,Hr),e.uint16),Jr=new e.Struct({tag:new e.String(4),jstfLangSys:new e.Pointer(e.uint16,dr)}),Or=new e.Struct({extenderGlyphs:new e.Pointer(e.uint16,new e.Array(e.uint16,e.uint16)),defaultLangSys:new e.Pointer(e.uint16,dr),langSysCount:e.uint16,langSysRecords:new e.Array(Jr,"langSysCount")}),gi=new e.Struct({tag:new e.String(4),script:new e.Pointer(e.uint16,Or,{type:"parent"})}),kr=new e.Struct({version:e.uint32,scriptCount:e.uint16,scriptList:new e.Array(gi,"scriptCount")}),Sr=new e.Struct({entry:new(function(){function nA(K){this._size=K}var b=nA.prototype;return b.decode=function(M,y){switch(this.size(0,y)){case 1:return M.readUInt8();case 2:return M.readUInt16BE();case 3:return M.readUInt24BE();case 4:return M.readUInt32BE()}},b.size=function(M,y){return f.resolveLength(this._size,null,y)},nA}())(function(nA){return 1+((48&nA.parent.entryFormat)>>4)}),outerIndex:function(b){return b.entry>>1+(15&b.parent.entryFormat)},innerIndex:function(b){return b.entry&(1<<1+(15&b.parent.entryFormat))-1}}),Xn=new e.Struct({entryFormat:e.uint16,mapCount:e.uint16,mapData:new e.Array(Sr,"mapCount")}),Ui=new e.Struct({majorVersion:e.uint16,minorVersion:e.uint16,itemVariationStore:new e.Pointer(e.uint32,Jt),advanceWidthMapping:new e.Pointer(e.uint32,Xn),LSBMapping:new e.Pointer(e.uint32,Xn),RSBMapping:new e.Pointer(e.uint32,Xn)}),Pi=new e.Struct({format:e.uint32,length:e.uint32,offset:e.uint32}),_a=new e.Struct({reserved:new e.Reserved(e.uint16,2),cbSignature:e.uint32,signature:new e.Buffer("cbSignature")}),$a=new e.Struct({ulVersion:e.uint32,usNumSigs:e.uint16,usFlag:e.uint16,signatures:new e.Array(Pi,"usNumSigs"),signatureBlocks:new e.Array(_a,"usNumSigs")}),Ao=new e.Struct({rangeMaxPPEM:e.uint16,rangeGaspBehavior:new e.Bitfield(e.uint16,["grayscale","gridfit","symmetricSmoothing","symmetricGridfit"])}),to=new e.Struct({version:e.uint16,numRanges:e.uint16,gaspRanges:new e.Array(Ao,"numRanges")}),eo=new e.Struct({pixelSize:e.uint8,maximumWidth:e.uint8,widths:new e.Array(e.uint8,function(nA){return nA.parent.parent.maxp.numGlyphs})}),no=new e.Struct({version:e.uint16,numRecords:e.int16,sizeDeviceRecord:e.int32,records:new e.Array(eo,"numRecords")}),ro=new e.Struct({left:e.uint16,right:e.uint16,value:e.int16}),zi=new e.Struct({firstGlyph:e.uint16,nGlyphs:e.uint16,offsets:new e.Array(e.uint16,"nGlyphs"),max:function(b){return b.offsets.length&&Math.max.apply(Math,b.offsets)}}),io=new e.Struct({off:function(b){return b._startOffset-b.parent.parent._startOffset},len:function(b){return b.parent.rowWidth/2*((b.parent.leftTable.max-b.off)/b.parent.rowWidth+1)},values:new e.LazyArray(e.int16,"len")}),ea=new e.VersionedStruct("format",{0:{nPairs:e.uint16,searchRange:e.uint16,entrySelector:e.uint16,rangeShift:e.uint16,pairs:new e.Array(ro,"nPairs")},2:{rowWidth:e.uint16,leftTable:new e.Pointer(e.uint16,zi,{type:"parent"}),rightTable:new e.Pointer(e.uint16,zi,{type:"parent"}),array:new e.Pointer(e.uint16,io,{type:"parent"})},3:{glyphCount:e.uint16,kernValueCount:e.uint8,leftClassCount:e.uint8,rightClassCount:e.uint8,flags:e.uint8,kernValue:new e.Array(e.int16,"kernValueCount"),leftClass:new e.Array(e.uint8,"glyphCount"),rightClass:new e.Array(e.uint8,"glyphCount"),kernIndex:new e.Array(e.uint8,function(nA){return nA.leftClassCount*nA.rightClassCount})}}),na=new e.VersionedStruct("version",{0:{subVersion:e.uint16,length:e.uint16,format:e.uint8,coverage:new e.Bitfield(e.uint8,["horizontal","minimum","crossStream","override"]),subtable:ea,padding:new e.Reserved(e.uint8,function(nA){return nA.length-nA._currentOffset})},1:{length:e.uint32,coverage:new e.Bitfield(e.uint8,[null,null,null,null,null,"variation","crossStream","vertical"]),format:e.uint8,tupleIndex:e.uint16,subtable:ea,padding:new e.Reserved(e.uint8,function(nA){return nA.length-nA._currentOffset})}}),ao=new e.VersionedStruct(e.uint16,{0:{nTables:e.uint16,tables:new e.Array(na,"nTables")},1:{reserved:new e.Reserved(e.uint16),nTables:e.uint32,tables:new e.Array(na,"nTables")}}),oo=new e.Struct({version:e.uint16,numGlyphs:e.uint16,yPels:new e.Array(e.uint8,"numGlyphs")}),so=new e.Struct({version:e.uint16,fontNumber:e.uint32,pitch:e.uint16,xHeight:e.uint16,style:e.uint16,typeFamily:e.uint16,capHeight:e.uint16,symbolSet:e.uint16,typeface:new e.String(16),characterComplement:new e.String(8),fileName:new e.String(6),strokeWeight:new e.String(1),widthType:new e.String(1),serifStyle:e.uint8,reserved:new e.Reserved(e.uint8)}),co=new e.Struct({bCharSet:e.uint8,xRatio:e.uint8,yStartRatio:e.uint8,yEndRatio:e.uint8}),go=new e.Struct({yPelHeight:e.uint16,yMax:e.int16,yMin:e.int16}),lo=new e.Struct({recs:e.uint16,startsz:e.uint8,endsz:e.uint8,entries:new e.Array(go,"recs")}),Bo=new e.Struct({version:e.uint16,numRecs:e.uint16,numRatios:e.uint16,ratioRanges:new e.Array(co,"numRatios"),offsets:new e.Array(e.uint16,"numRatios"),groups:new e.Array(lo,"numRecs")}),uo=new e.Struct({version:e.uint16,ascent:e.int16,descent:e.int16,lineGap:e.int16,advanceHeightMax:e.int16,minTopSideBearing:e.int16,minBottomSideBearing:e.int16,yMaxExtent:e.int16,caretSlopeRise:e.int16,caretSlopeRun:e.int16,caretOffset:e.int16,reserved:new e.Reserved(e.int16,4),metricDataFormat:e.int16,numberOfMetrics:e.uint16}),fo=new e.Struct({advance:e.uint16,bearing:e.int16}),Eo=new e.Struct({metrics:new e.LazyArray(fo,function(nA){return nA.parent.vhea.numberOfMetrics}),bearings:new e.LazyArray(e.int16,function(nA){return nA.parent.maxp.numGlyphs-nA.parent.vhea.numberOfMetrics})}),ra=new e.Fixed(16,"BE",14),ho=new e.Struct({fromCoord:ra,toCoord:ra}),wo=new e.Struct({pairCount:e.uint16,correspondence:new e.Array(ho,"pairCount")}),Co=new e.Struct({version:e.fixed32,axisCount:e.uint32,segment:new e.Array(wo,"axisCount")}),Qo=function(){function nA(K,M,y){this.type=K,this.stream=M,this.parent=y,this.base=this.stream.pos,this._items=[]}var b=nA.prototype;return b.getItem=function(M){if(null==this._items[M]){var y=this.stream.pos;this.stream.pos=this.base+this.type.size(null,this.parent)*M,this._items[M]=this.type.decode(this.stream,this.parent),this.stream.pos=y}return this._items[M]},b.inspect=function(){return"[UnboundedArray ".concat(this.type.constructor.name,"]")},nA}(),qn=function(nA){function b(M){return nA.call(this,M,0)||this}return E(b,nA),b.prototype.decode=function(y,z){return new Qo(this.type,y,z)},b}(e.Array),Hn=function(b){void 0===b&&(b=e.uint16),b=new(function(){function oA(iA){this.type=iA}var sA=oA.prototype;return sA.decode=function(UA,kA){return this.type.decode(UA,kA=kA.parent.parent)},sA.size=function(UA,kA){return this.type.size(UA,kA=kA.parent.parent)},sA.encode=function(UA,kA,gt){return this.type.encode(UA,kA,gt=gt.parent.parent)},oA}())(b);var M=new e.Struct({unitSize:e.uint16,nUnits:e.uint16,searchRange:e.uint16,entrySelector:e.uint16,rangeShift:e.uint16}),y=new e.Struct({lastGlyph:e.uint16,firstGlyph:e.uint16,value:b}),z=new e.Struct({lastGlyph:e.uint16,firstGlyph:e.uint16,values:new e.Pointer(e.uint16,new e.Array(b,function(oA){return oA.lastGlyph-oA.firstGlyph+1}),{type:"parent"})}),tA=new e.Struct({glyph:e.uint16,value:b});return new e.VersionedStruct(e.uint16,{0:{values:new qn(b)},2:{binarySearchHeader:M,segments:new e.Array(y,function(oA){return oA.binarySearchHeader.nUnits})},4:{binarySearchHeader:M,segments:new e.Array(z,function(oA){return oA.binarySearchHeader.nUnits})},6:{binarySearchHeader:M,segments:new e.Array(tA,function(oA){return oA.binarySearchHeader.nUnits})},8:{firstGlyph:e.uint16,count:e.uint16,values:new e.Array(b,"count")}})};function or(nA,b){void 0===nA&&(nA={}),void 0===b&&(b=e.uint16);var K=Object.assign({newState:e.uint16,flags:e.uint16},nA),M=new e.Struct(K),y=new qn(new e.Array(e.uint16,function(tA){return tA.nClasses}));return new e.Struct({nClasses:e.uint32,classTable:new e.Pointer(e.uint32,new Hn(b)),stateArray:new e.Pointer(e.uint32,y),entryTable:new e.Pointer(e.uint32,new qn(M))})}var Mo=new e.VersionedStruct("format",{0:{deltas:new e.Array(e.int16,32)},1:{deltas:new e.Array(e.int16,32),mappingData:new Hn(e.uint16)},2:{standardGlyph:e.uint16,controlPoints:new e.Array(e.uint16,32)},3:{standardGlyph:e.uint16,controlPoints:new e.Array(e.uint16,32),mappingData:new Hn(e.uint16)}}),po=new e.Struct({version:e.fixed32,format:e.uint16,defaultBaseline:e.uint16,subtable:Mo}),Io=new e.Struct({setting:e.uint16,nameIndex:e.int16,name:function(b){return b.parent.parent.parent.name.records.fontFeatures[b.nameIndex]}}),Do=new e.Struct({feature:e.uint16,nSettings:e.uint16,settingTable:new e.Pointer(e.uint32,new e.Array(Io,"nSettings"),{type:"parent"}),featureFlags:new e.Bitfield(e.uint8,[null,null,null,null,null,null,"hasDefault","exclusive"]),defaultSetting:e.uint8,nameIndex:e.int16,name:function(b){return b.parent.parent.name.records.fontFeatures[b.nameIndex]}}),vo=new e.Struct({version:e.fixed32,featureNameCount:e.uint16,reserved1:new e.Reserved(e.uint16),reserved2:new e.Reserved(e.uint32),featureNames:new e.Array(Do,"featureNameCount")}),mo=new e.Struct({axisTag:new e.String(4),minValue:e.fixed32,defaultValue:e.fixed32,maxValue:e.fixed32,flags:e.uint16,nameID:e.uint16,name:function(b){return b.parent.parent.name.records.fontFeatures[b.nameID]}}),yo=new e.Struct({nameID:e.uint16,name:function(b){return b.parent.parent.name.records.fontFeatures[b.nameID]},flags:e.uint16,coord:new e.Array(e.fixed32,function(nA){return nA.parent.axisCount}),postscriptNameID:new e.Optional(e.uint16,function(nA){return nA.parent.instanceSize-nA._currentOffset>0})}),xo=new e.Struct({version:e.fixed32,offsetToData:e.uint16,countSizePairs:e.uint16,axisCount:e.uint16,axisSize:e.uint16,instanceCount:e.uint16,instanceSize:e.uint16,axis:new e.Array(mo,"axisCount"),instance:new e.Array(yo,"instanceCount")}),Fo=new e.Fixed(16,"BE",14),Yo=function(){function nA(){}return nA.decode=function(K,M){return M.flags?K.readUInt32BE():2*K.readUInt16BE()},nA}(),To=new e.Struct({version:e.uint16,reserved:new e.Reserved(e.uint16),axisCount:e.uint16,globalCoordCount:e.uint16,globalCoords:new e.Pointer(e.uint32,new e.Array(new e.Array(Fo,"axisCount"),"globalCoordCount")),glyphCount:e.uint16,flags:e.uint16,offsetToData:e.uint32,offsets:new e.Array(new e.Pointer(Yo,"void",{relativeTo:function(b){return b.offsetToData},allowNull:!1}),function(nA){return nA.glyphCount+1})}),So=new e.Struct({length:e.uint16,coverage:e.uint16,subFeatureFlags:e.uint32,stateTable:new function(nA,b){void 0===nA&&(nA={}),void 0===b&&(b=e.uint16);var K=new e.Struct({version:function(){return 8},firstGlyph:e.uint16,values:new e.Array(e.uint8,e.uint16)}),M=Object.assign({newStateOffset:e.uint16,newState:function(sA){return(sA.newStateOffset-(sA.parent.stateArray.base-sA.parent._startOffset))/sA.parent.nClasses},flags:e.uint16},nA),y=new e.Struct(M),z=new qn(new e.Array(e.uint8,function(oA){return oA.nClasses}));return new e.Struct({nClasses:e.uint16,classTable:new e.Pointer(e.uint16,K),stateArray:new e.Pointer(e.uint16,z),entryTable:new e.Pointer(e.uint16,new qn(y))})}}),Uo=new e.Struct({justClass:e.uint32,beforeGrowLimit:e.fixed32,beforeShrinkLimit:e.fixed32,afterGrowLimit:e.fixed32,afterShrinkLimit:e.fixed32,growFlags:e.uint16,shrinkFlags:e.uint16}),Po=new e.Array(Uo,e.uint32),zo=new e.VersionedStruct("actionType",{0:{lowerLimit:e.fixed32,upperLimit:e.fixed32,order:e.uint16,glyphs:new e.Array(e.uint16,e.uint16)},1:{addGlyph:e.uint16},2:{substThreshold:e.fixed32,addGlyph:e.uint16,substGlyph:e.uint16},3:{},4:{variationAxis:e.uint32,minimumLimit:e.fixed32,noStretchValue:e.fixed32,maximumLimit:e.fixed32},5:{flags:e.uint16,glyph:e.uint16}}),ia=new e.Struct({actionClass:e.uint16,actionType:e.uint16,actionLength:e.uint32,actionData:zo,padding:new e.Reserved(e.uint8,function(nA){return nA.actionLength-nA._currentOffset})}),Ro=new e.Array(ia,e.uint32),No=new e.Struct({lookupTable:new Hn(new e.Pointer(e.uint16,Ro))}),aa=new e.Struct({classTable:new e.Pointer(e.uint16,So,{type:"parent"}),wdcOffset:e.uint16,postCompensationTable:new e.Pointer(e.uint16,No,{type:"parent"}),widthDeltaClusters:new Hn(new e.Pointer(e.uint16,Po,{type:"parent",relativeTo:function(b){return b.wdcOffset}}))}),bo=new e.Struct({version:e.uint32,format:e.uint16,horizontal:new e.Pointer(e.uint16,aa),vertical:new e.Pointer(e.uint16,aa)}),Lo={action:e.uint16},Go={markIndex:e.uint16,currentIndex:e.uint16},Ho={currentInsertIndex:e.uint16,markedInsertIndex:e.uint16},Jo=new e.Struct({items:new qn(new e.Pointer(e.uint32,new Hn))}),Oo=new e.VersionedStruct("type",{0:{stateTable:new or},1:{stateTable:new or(Go),substitutionTable:new e.Pointer(e.uint32,Jo)},2:{stateTable:new or(Lo),ligatureActions:new e.Pointer(e.uint32,new qn(e.uint32)),components:new e.Pointer(e.uint32,new qn(e.uint16)),ligatureList:new e.Pointer(e.uint32,new qn(e.uint16))},4:{lookupTable:new Hn},5:{stateTable:new or(Ho),insertionActions:new e.Pointer(e.uint32,new qn(e.uint16))}}),ko=new e.Struct({length:e.uint32,coverage:e.uint24,type:e.uint8,subFeatureFlags:e.uint32,table:Oo,padding:new e.Reserved(e.uint8,function(nA){return nA.length-nA._currentOffset})}),jo=new e.Struct({featureType:e.uint16,featureSetting:e.uint16,enableFlags:e.uint32,disableFlags:e.uint32}),Zo=new e.Struct({defaultFlags:e.uint32,chainLength:e.uint32,nFeatureEntries:e.uint32,nSubtables:e.uint32,features:new e.Array(jo,"nFeatureEntries"),subtables:new e.Array(ko,"nSubtables")}),Ko=new e.Struct({version:e.uint16,unused:new e.Reserved(e.uint16),nChains:e.uint32,chains:new e.Array(Zo,"nChains")}),Wo=new e.Struct({left:e.int16,top:e.int16,right:e.int16,bottom:e.int16}),oa=new e.Struct({version:e.fixed32,format:e.uint16,lookupTable:new Hn(Wo)}),re={};re.cmap=vA,re.head=xA,re.hhea=_,re.hmtx=uA,re.maxp=CA,re.name=W,re["OS/2"]=DA,re.post=hA,re.fpgm=nt,re.loca=st,re.prep=yA,re["cvt "]=HA,re.glyf=_A,re["CFF "]=te,re.CFF2=te,re.VORG=zt,re.EBLC=ke,re.CBLC=re.EBLC,re.sbix=rn,re.COLR=an,re.CPAL=gn,re.BASE=Z,re.GDEF=Dt,re.GPOS=Lr,re.GSUB=Gr,re.JSTF=kr,re.HVAR=Ui,re.DSIG=$a,re.gasp=to,re.hdmx=no,re.kern=ao,re.LTSH=oo,re.PCLT=so,re.VDMX=Bo,re.vhea=uo,re.vmtx=Eo,re.avar=Co,re.bsln=po,re.feat=vo,re.fvar=xo,re.gvar=To,re.just=bo,re.morx=Ko,re.opbd=oa;var fr,Vo=new e.Struct({tag:new e.String(4),checkSum:e.uint32,offset:new e.Pointer(e.uint32,"void",{type:"global"}),length:e.uint32}),li=new e.Struct({tag:new e.String(4),numTables:e.uint16,searchRange:e.uint16,entrySelector:e.uint16,rangeShift:e.uint16,tables:new e.Array(Vo,"numTables")});function Bi(nA,b){for(var K=0,M=nA.length-1;K<=M;){var y=K+M>>1,z=b(nA[y]);if(z<0)M=y-1;else{if(!(z>0))return y;K=y+1}}return-1}function Ur(nA,b){for(var K=[];nA>1;if(MsA.endCode.get(kA))){var gt=sA.idRangeOffset.get(kA),qA=void 0;if(0===gt)qA=M+sA.idDelta.get(kA);else{var Bt=gt/2+(M-sA.startCode.get(kA))-(sA.segCount-kA);0!==(qA=sA.glyphIndexArray.get(Bt)||0)&&(qA+=sA.idDelta.get(kA))}return 65535&qA}iA=kA+1}}return 0;case 8:throw new Error("TODO: cmap format 8");case 6:case 10:return sA.glyphIndices.get(M-sA.firstCode)||0;case 12:case 13:for(var Mt=0,mt=sA.nGroups-1;Mt<=mt;){var Gt=Mt+mt>>1,_t=sA.groups.get(Gt);if(M<_t.startCharCode)mt=Gt-1;else{if(!(M>_t.endCharCode))return 12===sA.version?_t.glyphID+(M-_t.startCharCode):_t.glyphID;Mt=Gt+1}}return 0;case 14:throw new Error("TODO: cmap format 14");default:throw new Error("Unknown cmap format ".concat(sA.version))}},b.getVariationSelector=function(M,y){if(!this.uvs)return 0;var z=this.uvs.varSelectors.toArray(),tA=Bi(z,function(sA){return y-sA.varSelector}),oA=z[tA];return-1!==tA&&oA.defaultUVS&&(tA=Bi(oA.defaultUVS,function(sA){return MsA.startUnicodeValue+sA.additionalCount?1:0})),-1!==tA&&oA.nonDefaultUVS&&-1!==(tA=Bi(oA.nonDefaultUVS,function(sA){return M-sA.unicodeValue}))?oA.nonDefaultUVS[tA].glyphID:0},b.getCharacterSet=function(){var M=this.cmap;switch(M.version){case 0:return Ur(0,M.codeMap.length);case 4:for(var y=[],z=M.endCode.toArray(),tA=0;tA=qt.glyphID&&M<=qt.glyphID+(qt.endCharCode-qt.startCharCode)&&mt.push(qt.startCharCode+(M-qt.glyphID))}return mt;case 13:for(var he,ae=[],le=l(y.groups.toArray());!(he=le()).done;){var we=he.value;M===we.glyphID&&ae.push.apply(ae,Ur(we.startCharCode,we.endCharCode+1))}return ae;default:throw new Error("Unknown cmap format ".concat(y.version))}},nA}()).prototype,"getCharacterSet",[R],Object.getOwnPropertyDescriptor(fr.prototype,"getCharacterSet"),fr.prototype),x(fr.prototype,"codePointsForGlyph",[R],Object.getOwnPropertyDescriptor(fr.prototype,"codePointsForGlyph"),fr.prototype),fr),qo=function(){function nA(K){this.kern=K.kern}var b=nA.prototype;return b.process=function(M,y){for(var z=0;z=0&&(iA=UA.pairs[kA].value);break;case 2:var qA=0;y>=UA.rightTable.firstGlyph&&y=UA.leftTable.firstGlyph&&M=UA.glyphCount||y>=UA.glyphCount)return 0;iA=UA.kernValue[UA.kernIndex[UA.leftClass[M]*UA.rightClassCount+UA.rightClass[y]]];break;default:throw new Error("Unsupported kerning sub-table format ".concat(sA.format))}sA.coverage.override?z=iA:z+=iA}}return z},nA}(),_o=function(){function nA(K){this.font=K}var b=nA.prototype;return b.positionGlyphs=function(M,y){for(var z=0,tA=0,oA=0;oA1&&(sA.minX+=(oA.codePoints.length-1)*sA.width/oA.codePoints.length);for(var iA=-y[z].xAdvance,UA=0,kA=this.font.unitsPerEm/16,gt=z+1;gt<=tA;gt++){var qA=M[gt],Bt=qA.cbox,Mt=y[gt],mt=this.getCombiningClass(qA.codePoints[0]);if("Not_Reordered"!==mt){switch(Mt.xOffset=Mt.yOffset=0,mt){case"Double_Above":case"Double_Below":Mt.xOffset+=sA.minX-Bt.width/2-Bt.minX;break;case"Attached_Below_Left":case"Below_Left":case"Above_Left":Mt.xOffset+=sA.minX-Bt.minX;break;case"Attached_Above_Right":case"Below_Right":case"Above_Right":Mt.xOffset+=sA.maxX-Bt.width-Bt.minX;break;default:Mt.xOffset+=sA.minX+(sA.width-Bt.width)/2-Bt.minX}switch(mt){case"Double_Below":case"Below_Left":case"Below":case"Below_Right":case"Attached_Below_Left":case"Attached_Below":("Attached_Below_Left"===mt||"Attached_Below"===mt)&&(sA.minY+=kA),Mt.yOffset=-sA.minY-Bt.maxY,sA.minY+=Bt.height;break;case"Double_Above":case"Above_Left":case"Above":case"Above_Right":case"Attached_Above":case"Attached_Above_Right":("Attached_Above"===mt||"Attached_Above_Right"===mt)&&(sA.maxY+=kA),Mt.yOffset=sA.maxY-Bt.minY,sA.maxY+=Bt.height}Mt.xAdvance=Mt.yAdvance=0,Mt.xOffset+=iA,Mt.yOffset+=UA}else iA-=Mt.xAdvance,UA-=Mt.yAdvance}},b.getCombiningClass=function(M){var y=w.getCombiningClass(M);if(3584==(-256&M))if("Not_Reordered"===y)switch(M){case 3633:case 3636:case 3637:case 3638:case 3639:case 3655:case 3660:case 3645:case 3662:return"Above_Right";case 3761:case 3764:case 3765:case 3766:case 3767:case 3771:case 3788:case 3789:return"Above";case 3772:return"Below"}else if(3642===M)return"Below_Right";switch(y){case"CCC10":case"CCC11":case"CCC12":case"CCC13":case"CCC14":case"CCC15":case"CCC16":case"CCC17":case"CCC18":case"CCC20":case"CCC22":case"CCC29":case"CCC32":case"CCC118":case"CCC129":case"CCC132":return"Below";case"CCC23":return"Attached_Above";case"CCC24":case"CCC107":return"Above_Right";case"CCC25":case"CCC19":return"Above_Left";case"CCC26":case"CCC27":case"CCC28":case"CCC30":case"CCC31":case"CCC33":case"CCC34":case"CCC35":case"CCC36":case"CCC122":case"CCC130":return"Above";case"CCC21":break;case"CCC103":return"Below_Right"}return y},nA}(),Pr=function(){function nA(K,M,y,z){void 0===K&&(K=1/0),void 0===M&&(M=1/0),void 0===y&&(y=-1/0),void 0===z&&(z=-1/0),this.minX=K,this.minY=M,this.maxX=y,this.maxY=z}var b=nA.prototype;return b.addPoint=function(M,y){Math.abs(M)!==1/0&&(Mthis.maxX&&(this.maxX=M)),Math.abs(y)!==1/0&&(ythis.maxY&&(this.maxY=y))},b.copy=function(){return new nA(this.minX,this.minY,this.maxX,this.maxY)},s(nA,[{key:"width",get:function(){return this.maxX-this.minX}},{key:"height",get:function(){return this.maxY-this.minY}}]),nA}(),zr={Caucasian_Albanian:"aghb",Arabic:"arab",Imperial_Aramaic:"armi",Armenian:"armn",Avestan:"avst",Balinese:"bali",Bamum:"bamu",Bassa_Vah:"bass",Batak:"batk",Bengali:["bng2","beng"],Bopomofo:"bopo",Brahmi:"brah",Braille:"brai",Buginese:"bugi",Buhid:"buhd",Chakma:"cakm",Canadian_Aboriginal:"cans",Carian:"cari",Cham:"cham",Cherokee:"cher",Coptic:"copt",Cypriot:"cprt",Cyrillic:"cyrl",Devanagari:["dev2","deva"],Deseret:"dsrt",Duployan:"dupl",Egyptian_Hieroglyphs:"egyp",Elbasan:"elba",Ethiopic:"ethi",Georgian:"geor",Glagolitic:"glag",Gothic:"goth",Grantha:"gran",Greek:"grek",Gujarati:["gjr2","gujr"],Gurmukhi:["gur2","guru"],Hangul:"hang",Han:"hani",Hanunoo:"hano",Hebrew:"hebr",Hiragana:"hira",Pahawh_Hmong:"hmng",Katakana_Or_Hiragana:"hrkt",Old_Italic:"ital",Javanese:"java",Kayah_Li:"kali",Katakana:"kana",Kharoshthi:"khar",Khmer:"khmr",Khojki:"khoj",Kannada:["knd2","knda"],Kaithi:"kthi",Tai_Tham:"lana",Lao:"lao ",Latin:"latn",Lepcha:"lepc",Limbu:"limb",Linear_A:"lina",Linear_B:"linb",Lisu:"lisu",Lycian:"lyci",Lydian:"lydi",Mahajani:"mahj",Mandaic:"mand",Manichaean:"mani",Mende_Kikakui:"mend",Meroitic_Cursive:"merc",Meroitic_Hieroglyphs:"mero",Malayalam:["mlm2","mlym"],Modi:"modi",Mongolian:"mong",Mro:"mroo",Meetei_Mayek:"mtei",Myanmar:["mym2","mymr"],Old_North_Arabian:"narb",Nabataean:"nbat",Nko:"nko ",Ogham:"ogam",Ol_Chiki:"olck",Old_Turkic:"orkh",Oriya:["ory2","orya"],Osmanya:"osma",Palmyrene:"palm",Pau_Cin_Hau:"pauc",Old_Permic:"perm",Phags_Pa:"phag",Inscriptional_Pahlavi:"phli",Psalter_Pahlavi:"phlp",Phoenician:"phnx",Miao:"plrd",Inscriptional_Parthian:"prti",Rejang:"rjng",Runic:"runr",Samaritan:"samr",Old_South_Arabian:"sarb",Saurashtra:"saur",Shavian:"shaw",Sharada:"shrd",Siddham:"sidd",Khudawadi:"sind",Sinhala:"sinh",Sora_Sompeng:"sora",Sundanese:"sund",Syloti_Nagri:"sylo",Syriac:"syrc",Tagbanwa:"tagb",Takri:"takr",Tai_Le:"tale",New_Tai_Lue:"talu",Tamil:["tml2","taml"],Tai_Viet:"tavt",Telugu:["tel2","telu"],Tifinagh:"tfng",Tagalog:"tglg",Thaana:"thaa",Thai:"thai",Tibetan:"tibt",Tirhuta:"tirh",Ugaritic:"ugar",Vai:"vai ",Warang_Citi:"wara",Old_Persian:"xpeo",Cuneiform:"xsux",Yi:"yi ",Inherited:"zinh",Common:"zyyy",Unknown:"zzzz"},Ni={};for(var bi in zr){var Li=zr[bi];if(Array.isArray(Li))for(var sa,$o=l(Li);!(sa=$o()).done;)Ni[sa.value]=bi;else Ni[Li]=bi}var rs={arab:!0,hebr:!0,syrc:!0,thaa:!0,cprt:!0,khar:!0,phnx:!0,"nko ":!0,lydi:!0,avst:!0,armi:!0,phli:!0,prti:!0,sarb:!0,orkh:!0,samr:!0,mand:!0,merc:!0,mero:!0,mani:!0,mend:!0,nbat:!0,narb:!0,palm:!0,phlp:!0};function ca(nA){return rs[nA]?"rtl":"ltr"}for(var is=function(){function nA(b,K,M,y,z){if(this.glyphs=b,this.positions=null,this.script=M,this.language=y||null,this.direction=z||ca(M),this.features={},Array.isArray(K))for(var oA,tA=l(K);!(oA=tA()).done;)this.features[oA.value]=!0;else"object"==typeof K&&(this.features=K)}return s(nA,[{key:"advanceWidth",get:function(){for(var y,K=0,M=l(this.positions);!(y=M()).done;)K+=y.value.xAdvance;return K}},{key:"advanceHeight",get:function(){for(var y,K=0,M=l(this.positions);!(y=M()).done;)K+=y.value.yAdvance;return K}},{key:"bbox",get:function(){for(var K=new Pr,M=0,y=0,z=0;z>1]).firstGlyph)return null;if(MoA.lastGlyph))return 2===this.table.version?oA.value:oA.values[M-oA.firstGlyph];y=tA+1}}return null;case 6:for(var sA=0,iA=this.table.binarySearchHeader.nUnits-1;sA<=iA;){var tA,oA;if(65535===(oA=this.table.segments[tA=sA+iA>>1]).glyph)return null;if(MoA.glyph))return oA.value;sA=tA+1}}return null;case 8:return this.table.values[M-this.table.firstGlyph];default:throw new Error("Unknown lookup table format: ".concat(this.table.version))}},b.glyphsForValue=function(M){var y=[];switch(this.table.version){case 2:case 4:for(var tA,z=l(this.table.segments);!(tA=z()).done;){var oA=tA.value;if(2===this.table.version&&oA.value===M)y.push.apply(y,Ur(oA.firstGlyph,oA.lastGlyph+1));else for(var sA=0;sA=-1;){var iA=null,UA=1,kA=!0;oA===M.length||-1===oA?UA=0:65535===(iA=M[oA]).id?UA=2:null==(UA=this.lookupTable.lookup(iA.id))&&(UA=1);var gt=this.stateTable.stateArray.getItem(tA),Bt=this.stateTable.entryTable.getItem(gt[UA]);0!==UA&&2!==UA&&(z(iA,Bt,oA),kA=!(16384&Bt.flags)),tA=Bt.newState,kA&&(oA+=sA)}return M},b.traverse=function(M,y,z){if(void 0===y&&(y=0),void 0===z&&(z=new Set),!z.has(y)){z.add(y);for(var tA=this.stateTable,oA=tA.nClasses,iA=tA.entryTable,UA=tA.stateArray.getItem(y),kA=4;kA=0;)65535===M[mt].id&&M.splice(mt,1),mt--;return M},b.processSubtable=function(M,y){if(this.subtable=M,this.glyphs=y,4!==this.subtable.type){this.ligatureStack=[],this.markedGlyph=null,this.firstGlyph=null,this.lastGlyph=null,this.markedIndex=null;var z=this.getStateMachine(M),tA=this.getProcessor();return z.process(this.glyphs,!!(4194304&this.subtable.coverage),tA)}this.processNoncontextualSubstitutions(this.subtable,this.glyphs)},b.getStateMachine=function(M){return new ls(M.table.stateTable)},b.getProcessor=function(){switch(this.subtable.type){case 0:return this.processIndicRearragement;case 1:return this.processContextualSubstitution;case 2:return this.processLigature;case 4:return this.processNoncontextualSubstitutions;case 5:return this.processGlyphInsertion;default:throw new Error("Invalid morx subtable type: ".concat(this.subtable.type))}},b.processIndicRearragement=function(M,y,z){32768&y.flags&&(this.firstGlyph=z),8192&y.flags&&(this.lastGlyph=z),function(nA,b,K,M){switch(b){case 0:return nA;case 1:return Pn(nA,[K,1],[M,0]);case 2:return Pn(nA,[K,0],[M,1]);case 3:return Pn(nA,[K,1],[M,1]);case 4:return Pn(nA,[K,2],[M,0]);case 5:return Pn(nA,[K,2],[M,0],!0,!1);case 6:return Pn(nA,[K,0],[M,2]);case 7:return Pn(nA,[K,0],[M,2],!1,!0);case 8:return Pn(nA,[K,1],[M,2]);case 9:return Pn(nA,[K,1],[M,2],!1,!0);case 10:return Pn(nA,[K,2],[M,1]);case 11:return Pn(nA,[K,2],[M,1],!0,!1);case 12:return Pn(nA,[K,2],[M,2]);case 13:return Pn(nA,[K,2],[M,2],!0,!1);case 14:return Pn(nA,[K,2],[M,2],!1,!0);case 15:return Pn(nA,[K,2],[M,2],!0,!0);default:throw new Error("Unknown verb: ".concat(b))}}(this.glyphs,15&y.flags,this.firstGlyph,this.lastGlyph)},b.processContextualSubstitution=function(M,y,z){var tA=this.subtable.table.substitutionTable.items;if(65535!==y.markIndex){var oA=tA.getItem(y.markIndex);(iA=new Ei(oA).lookup((M=this.glyphs[this.markedGlyph]).id))&&(this.glyphs[this.markedGlyph]=this.font.getGlyph(iA,M.codePoints))}if(65535!==y.currentIndex){var iA,UA=tA.getItem(y.currentIndex);(iA=new Ei(UA).lookup((M=this.glyphs[z]).id))&&(this.glyphs[z]=this.font.getGlyph(iA,M.codePoints))}32768&y.flags&&(this.markedGlyph=z)},b.processLigature=function(M,y,z){if(32768&y.flags&&this.ligatureStack.push(z),8192&y.flags){for(var tA,oA=this.subtable.table.ligatureActions,sA=this.subtable.table.components,iA=this.subtable.table.ligatureList,UA=y.action,kA=!1,gt=0,qA=[],Bt=[];!kA;){var Mt,mt=this.ligatureStack.pop();(Mt=qA).unshift.apply(Mt,this.glyphs[mt].codePoints);var Gt=oA.getItem(UA++);kA=!!(2147483648&Gt);var _t=!!(1073741824&Gt),qt=(1073741823&Gt)<<2>>2;if(gt+=sA.getItem(qt+=this.glyphs[mt].id),kA||_t){var le=iA.getItem(gt);this.glyphs[mt]=this.font.getGlyph(le,qA),Bt.push(mt),gt=0,qA=[]}else this.glyphs[mt]=this.font.getGlyph(65535)}(tA=this.ligatureStack).push.apply(tA,Bt)}},b.processNoncontextualSubstitutions=function(M,y,z){var tA=new Ei(M.table.lookupTable);for(z=0;z>>5,!!(1024&y.flags)),65535!==y.currentInsertIndex&&this._insertGlyphs(z,y.currentInsertIndex,(992&y.flags)>>>5,!!(2048&y.flags))},b.getSupportedFeatures=function(){for(var z,M=[],y=l(this.morx.chains);!(z=y()).done;)for(var sA,oA=l(z.value.features);!(sA=oA()).done;){var iA=sA.value;M.push([iA.featureType,iA.featureSetting])}return M},b.generateInputs=function(M){return this.inputCache||this.generateInputCache(),this.inputCache[M]||[]},b.generateInputCache=function(){this.inputCache={};for(var y,M=l(this.morx.chains);!(y=M()).done;)for(var sA,z=y.value,tA=z.defaultFlags,oA=l(z.subtables);!(sA=oA()).done;){var iA=sA.value;iA.subFeatureFlags&tA&&this.generateInputsForSubtable(iA)}},b.generateInputsForSubtable=function(M){var y=this;if(2===M.type){if(4194304&M.coverage)throw new Error("Reverse subtable, not supported.");this.subtable=M,this.ligatureStack=[];var tA=this.getStateMachine(M),oA=this.getProcessor(),sA=[],iA=[];this.glyphs=[],tA.traverse({enter:function(kA,gt){var qA=y.glyphs;iA.push({glyphs:qA.slice(),ligatureStack:y.ligatureStack.slice()});var Bt=y.font.getGlyph(kA);sA.push(Bt),qA.push(sA[sA.length-1]),oA(qA[qA.length-1],gt,qA.length-1);for(var Mt=0,mt=0,Gt=0;Gt0&&M.applyFeatures(sA,y,z)}},nA}(),ys=["rvrn"],xs=["ccmp","locl","rlig","mark","mkmk"],Fs=["frac","numr","dnom"],Ys=["calt","clig","liga","rclt","curs","kern"],Ts={ltr:["ltra","ltrm"],rtl:["rtla","rtlm"]},Er=function(){function nA(){}return nA.plan=function(K,M,y){this.planPreprocessing(K),this.planFeatures(K),this.planPostprocessing(K,y),K.assignGlobalFeatures(M),this.assignFeatures(K,M)},nA.planPreprocessing=function(K){K.add({global:[].concat(ys,Ts[K.direction]),local:Fs})},nA.planFeatures=function(K){},nA.planPostprocessing=function(K,M){K.add([].concat(xs,Ys)),K.setFeatureOverrides(M)},nA.assignFeatures=function(K,M){for(var y=0;y0&&w.isDigit(M[tA-1].codePoints[0]);)M[tA-1].features.numr=!0,M[tA-1].features.frac=!0,tA--;for(;oAthis.index||this.index>=this.glyphs.length?null:this.glyphs[this.index]},b.next=function(){return this.move(1)},b.prev=function(){return this.move(-1)},b.peek=function(M){void 0===M&&(M=1);var y=this.index,z=this.increment(M);return this.index=y,z},b.peekIndex=function(M){void 0===M&&(M=1);var y=this.index;this.increment(M);var z=this.index;return this.index=y,z},b.increment=function(M){void 0===M&&(M=1);var y=M<0?-1:1;for(M=Math.abs(M);M--;)this.move(y);return this.glyphs[this.index]},s(nA,[{key:"cur",get:function(){return this.glyphs[this.index]||null}}]),nA}(),Ns=["DFLT","dflt","latn"],Ci=function(){function nA(K,M){this.font=K,this.table=M,this.script=null,this.scriptTag=null,this.language=null,this.languageTag=null,this.features={},this.lookups={},this.variationsIndex=K._variationProcessor?this.findVariationsIndex(K._variationProcessor.normalizedCoords):-1,this.selectScript(),this.glyphs=[],this.positions=[],this.ligatureID=1,this.currentFeature=null}var b=nA.prototype;return b.findScript=function(M){if(null==this.table.scriptList)return null;Array.isArray(M)||(M=[M]);for(var z,y=l(M);!(z=y()).done;)for(var sA,tA=z.value,oA=l(this.table.scriptList);!(sA=oA()).done;){var iA=sA.value;if(iA.tag===tA)return iA}return null},b.selectScript=function(M,y,z){var oA,tA=!1;if(!this.script||M!==this.scriptTag){if((oA=this.findScript(M))||(oA=this.findScript(Ns)),!oA)return this.scriptTag;this.scriptTag=oA.tag,this.script=oA.script,this.language=null,this.languageTag=null,tA=!0}if((!z||z!==this.direction)&&(this.direction=z||ca(M)),y&&y.length<4&&(y+=" ".repeat(4-y.length)),!y||y!==this.languageTag){this.language=null;for(var iA,sA=l(this.script.langSysRecords);!(iA=sA()).done;){var UA=iA.value;if(UA.tag===y){this.language=UA.langSys,this.languageTag=UA.tag;break}}this.language||(this.language=this.script.defaultLangSys,this.languageTag=null),tA=!0}if(tA&&(this.features={},this.language))for(var gt,kA=l(this.language.featureIndexes);!(gt=kA()).done;){var qA=gt.value,Bt=this.table.featureList[qA],Mt=this.substituteFeatureForVariations(qA);this.features[Bt.tag]=Mt||Bt.feature}return this.scriptTag},b.lookupsForFeatures=function(M,y){void 0===M&&(M=[]);for(var oA,z=[],tA=l(M);!(oA=tA()).done;){var sA=oA.value,iA=this.features[sA];if(iA)for(var kA,UA=l(iA.lookupListIndexes);!(kA=UA()).done;){var gt=kA.value;y&&-1!==y.indexOf(gt)||z.push({feature:sA,index:gt,lookup:this.table.lookupList.get(gt)})}}return z.sort(function(qA,Bt){return qA.index-Bt.index}),z},b.substituteFeatureForVariations=function(M){if(-1===this.variationsIndex)return null;for(var oA,tA=l(this.table.featureVariations.featureVariationRecords[this.variationsIndex].featureTableSubstitution.substitutions);!(oA=tA()).done;){var sA=oA.value;if(sA.featureIndex===M)return sA.alternateFeatureTable}return null},b.findVariationsIndex=function(M){var y=this.table.featureVariations;if(!y)return-1;for(var z=y.featureVariationRecords,tA=0;tA=0})},b.getClassID=function(M,y){switch(y.version){case 1:var z=M-y.startGlyph;if(z>=0&&z0&&this.codePoints.every(w.isMark),this.isBase=!this.isMark,this.isLigature=this.codePoints.length>1,this.markAttachmentType=0}}]),nA}(),Ca=function(nA){function b(){return nA.apply(this,arguments)||this}return E(b,nA),b.planFeatures=function(M){M.add(["ljmo","vjmo","tjmo"],!1)},b.assignFeatures=function(M,y){for(var z=0,tA=0;tAvr){var gt=_r(K,tA,M.features);gt.features.tjmo=!0,kA.push(gt)}return nA.splice.apply(nA,[b,1].concat(kA)),b+kA.length-1}function t0(nA,b,K){var sA,iA,UA,kA,M=nA[b],z=di(nA[b].codePoints[0]),tA=nA[b-1].codePoints[0],oA=di(tA);if(4===oA&&3===z)sA=tA,kA=M;else{2===z?(iA=nA[b-1],UA=M):(iA=nA[b-2],UA=nA[b-1],kA=M);var gt=iA.codePoints[0],qA=UA.codePoints[0];(function(b){return 4352<=b&&b<=4370})(gt)&&function(b){return 4449<=b&&b<=4469}(qA)&&(sA=Nr+28*(21*(gt-4352)+(qA-4449)))}var Bt=kA&&kA.codePoints[0]||vr;if(null!=sA&&(Bt===vr||function(b){return 1<=b&&b<=4546}(Bt))){var Mt=sA+(Bt-vr);if(K.hasGlyphForCodePoint(Mt)){var mt=2===oA?3:2;return nA.splice(b-mt+1,mt,_r(K,Mt,M.features)),b-mt+1}}return iA&&(iA.features.ljmo=!0),UA&&(UA.features.vjmo=!0),kA&&(kA.features.tjmo=!0),4===oA?(Ia(nA,b-1,K),b+1):b}function n0(nA,b,K){var M=nA[b];if(0!==K.glyphForCodePoint(nA[b].codePoints[0]).advanceWidth){var tA=function(nA){switch(di(nA)){case 4:case 5:return 1;case 2:return 2;case 3:return 3}}(nA[b-1].codePoints[0]);return nA.splice(b,1),nA.splice(b-tA,0,M)}}function r0(nA,b,K){var M=nA[b],y=nA[b].codePoints[0];if(K.hasGlyphForCodePoint(9676)){var z=_r(K,9676,M.features),tA=0===K.glyphForCodePoint(y).advanceWidth?b:b+1;nA.splice(tA,0,z),b++}return b}var pi={categories:["O","IND","S","GB","B","FM","CGJ","VMAbv","VMPst","VAbv","VPst","CMBlw","VPre","VBlw","H","VMBlw","CMAbv","MBlw","CS","R","SUB","MPst","MPre","FAbv","FPst","FBlw","null","SMAbv","SMBlw","VMPre","ZWNJ","ZWJ","WJ","M","VS","N","HN","MAbv"],decompositions:{2507:[2503,2494],2508:[2503,2519],2888:[2887,2902],2891:[2887,2878],2892:[2887,2903],3018:[3014,3006],3019:[3015,3006],3020:[3014,3031],3144:[3142,3158],3264:[3263,3285],3271:[3270,3285],3272:[3270,3286],3274:[3270,3266],3275:[3270,3266,3285],3402:[3398,3390],3403:[3399,3390],3404:[3398,3415],3546:[3545,3530],3548:[3545,3535],3549:[3545,3535,3530],3550:[3545,3551],3635:[3661,3634],3763:[3789,3762],3955:[3953,3954],3957:[3953,3956],3958:[4018,3968],3959:[4018,3953,3968],3960:[4019,3968],3961:[4019,3953,3968],3969:[3953,3968],6971:[6970,6965],6973:[6972,6965],6976:[6974,6965],6977:[6975,6965],6979:[6978,6965],69934:[69937,69927],69935:[69938,69927],70475:[70471,70462],70476:[70471,70487],70843:[70841,70842],70844:[70841,70832],70846:[70841,70845],71098:[71096,71087],71099:[71097,71087]},stateTable:[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],accepting:[!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0],tags:[[],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["symbol_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["virama_terminated_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["number_joiner_terminated_cluster"],["standard_cluster"],["standard_cluster"],["numeral_cluster"]]},de_X=1,de_N=8,de_H=16,de_ZWNJ=32,de_ZWJ=64,de_M=128,de_RS=8192,de_Repha=32768,de_Ra=65536,de_CM=1<<17,ee={Start:1,Ra_To_Become_Reph:2,Pre_M:4,Pre_C:8,Base_C:16,After_Main:32,Above_C:64,Before_Sub:128,Below_C:256,After_Sub:512,Before_Post:1024,Post_C:2048,After_Post:4096,Final_C:8192,SMVD:16384,End:32768},u0=2|de_Ra|de_CM|4|2048|4096,va=de_ZWJ|de_ZWNJ,$r=de_H|16384,Zi={Default:{hasOldSpec:!1,virama:0,basePos:"Last",rephPos:ee.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Devanagari:{hasOldSpec:!0,virama:2381,basePos:"Last",rephPos:ee.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Bengali:{hasOldSpec:!0,virama:2509,basePos:"Last",rephPos:ee.After_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gurmukhi:{hasOldSpec:!0,virama:2637,basePos:"Last",rephPos:ee.Before_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gujarati:{hasOldSpec:!0,virama:2765,basePos:"Last",rephPos:ee.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Oriya:{hasOldSpec:!0,virama:2893,basePos:"Last",rephPos:ee.After_Main,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Tamil:{hasOldSpec:!0,virama:3021,basePos:"Last",rephPos:ee.After_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Telugu:{hasOldSpec:!0,virama:3149,basePos:"Last",rephPos:ee.After_Post,rephMode:"Explicit",blwfMode:"Post_Only"},Kannada:{hasOldSpec:!0,virama:3277,basePos:"Last",rephPos:ee.After_Post,rephMode:"Implicit",blwfMode:"Post_Only"},Malayalam:{hasOldSpec:!0,virama:3405,basePos:"Last",rephPos:ee.After_Main,rephMode:"Log_Repha",blwfMode:"Pre_And_Post"},Khmer:{hasOldSpec:!1,virama:6098,basePos:"First",rephPos:ee.Ra_To_Become_Reph,rephMode:"Vis_Repha",blwfMode:"Pre_And_Post"}},f0={6078:[6081,6078],6079:[6081,6079],6080:[6081,6080],6084:[6081,6084],6085:[6081,6085]},E0=pi.decompositions,ma=new Q(c("AAARAAAAAABg2AAAAWYPmfDtnXuMXFUdx+/uzs7M7szudAtECGJRIMRQbUAithQWkGAKiVhNpFVRRAmIQVCDkDYICGotIA9BTCz8IeUviv7BQ2PBtBIRLBBQIWAUsKg1BKxRAqIgfs/cc+aeOXPej3tnZX7JJ/dxzj3nd36/8753Z5fUsuxgsAwcAU4Gp4BPgM+Cd4P3RjieDs4GXwLrHJ5bDy4DG8A14LvgZrAZbAF3gns0z18ALgY/B78C94NHwBPgabAE/AX8DbwM5sF/QX0yD5vFcU/wVnAgWAoOAyvAceBE8CGwBpwGzgJfAF8BXwXfAFeC68EmsBlsAXeCreA+8CB4DDwF/gh2gd3gFfAGmKxn2QzYC+wHDgRLweFgJTgWrKrnuq/GcQ04jV6fheN54EJwEbgcXAG+Q8O/j+Mt4DZwB9haz8t9Hz3a8iCN/xiOvwRP0evH6fE68AzOH+Ke2eWYhw3PcGnuxvkr4A3QaGRZB7wFLAEHg2XgiEZ/fHKcp/ceBh/A+cngFPCpRm6vM3E8l8a5gN67GMdvgqsbeX2ap9yI601gM7gN3AG20mfuo8cdOP6GpvdUg9oKxz839GV90RDO2/glxN1B790NXsN1rZll7WYRdw+c70uvTwIHNAfTO0RyL5TDmnnbc3lmRQI9UnM0dD5eovfz4FpJ/BNpXNYWV+N6Lfg0hY97JK1vn+Pur9DoQur2F7m436bHDUK8C5t5/8vruo4+97WmXG+GLmzEiBF+PDwEOowYMWLEiBEjRoxYeBw5BDqIPEfXut9yWN+vVNxfrnnmWqR/PdgENoMt4E5wD9gOHgCPgifBs2BXM99b2o3jP8F/wMRUlrXAHNgHvH0q3895J46HguXgWHAGLctmLv9VuL96qnp7jxgxYsSbCbJvuRZ97/tqxT59VVRtixEjRsThBG7OSt5zzoPT0M+cBc4T5noXOs79TqLHeZrHUeCSqeJ96gacXy2kecNU8V6Hh7yXuQlhtw7B/PO1RTkr52Aj8JNFZjYg3gOKuC/g/v6Ls2wNuAY8urg//PcIb+6RZXuDNeCS6SzbBrJWlh0DLiFHco8ed9IjzzvaWfa9sZzTcf6D9mCcnbg3PlNcH4fzS8F2MDaLdQG4dLZIJxbbaZqv4ri8k58f3+mPs66T6/TTzqDeI0aMGDGiHP5dcR8ce/xxYcWi6vOfr725uRzcjnngXVOD61Hync+9uL+Nmyfej/NHpvL56A5Jeuz7uyfo+pqcPz2Vf1NH0ttJ03pekt8SmuY/EPYy9zzbN319ym/9TL6ZIt9MHCXRdxJtoAkWTRdz472n87D9cTwYLJvuz++I6WIePo/zE8AHp4v8WLyP0nufnM6/+zoDx8+DL08P6r9+urheRtO+jD6/cdrsx3mqu8w+xH4PScKIXa5D2jeCm8Et4DbwI/BjcC/4BXgI/Bb8DuwEu8Bu8Ap4A9RaRZptnO8J9gUHgEPAoWA5OLY1qMO90GEV7q+mYWtxPBWcIYnL4p+DsPNbxfVFOP86uAr8DNc34HgTDb8Vx9sVaRFI/LtagzYjnCqpb908EX87eBA8Bh4Hf2jle/9/wvGFVv787rrZZy8h7qtgDOuFOmiBuXYRvg/O9wMHgXeB97SLspk4sq0OI/q9v13+ek+sh3zYSRp9jrYorw9ll1/GRzR+KotYZSHf8laVP2lvpA/8OGdPMk59hqtXZ+L8nHbxvWwqO65ryu+fT3VZz+l4dET7L0R072ljsMyzTpaJqQxsbL8M9WajY789DO85XMp/Dcp3Qztdn+9qf/a97ZWK8PXc3G+TpC/nv8Mncy7ZvICF302P5O+aNiOtLdTXd+D4Q7DVwfcvWvx9zTEJ/o5iG3R8YAjGNFseha5PGuZKz7b7xxXbOrXMcu5eJSo//rXdH/73Enz6L1q/X+fyIu8wZGtNBmkjkzNZNgP2AvuBg2bysKUzduXn/66JtNeN4PCZvO0/x7Ujdn4VnYOvRJzjZ/I+9sQZeftX2Tc1RPcPz/Tf4/si0g+t5Mq+kfZjZL34Mc5ul3PPnE7TOxvHK2qDaZ+L++db2HyYqMo/qVnb/P8uH8/rmnFxR0k6DCu/rjj/RxT7KGUSWgbd+LMQuEgYB1zsk2qtvJD8v5AhdfdttbEunSxbcJD9Zf7chqp1Hlbe7FK1/aPVTfp7FgtC1yGGiSncFK/DhZvi+epZta0WWjlsfDZMyPRdSPrryqSSKnXx1bkq/Ye9TlRpk7Lrjq1UrfdC9X+MtKqwP6+3a/4pJFUZF0pZZpv91MYjMBaRRXbxpho5zQmUY3F+Pt4o7rvQrBXPdm00TaE24uMadaM2meLSI7iu071t3er3b6ZLi8JEde3qw+6zGv+ycF5kaRBh/m1T/7Yl/mMyTuMwadP4xL9ifjJpNwbvDZRJ8G8vnqV/Wf12aa/kyOdl69+BspTsXzGueE6E+JfZnvmXIfNPW+FfXkjb1YmqPNpnLP3b61fHCj/X5tzGANf2y3yqvC7Jv7btV4TVbdammI9l/g0dS5lNxLrk2j9r8xjjxhBQnygg0lgg/bOrfyct+udJi/Yrk0lFnxC7f+5kRbsNmcexfrubt0X/rGvLqrGSnYv3ZPHEe8r7lvMvUfi2LOu/2dg8LrRtQt2yfcv8r5IU70VkIs6nbebUXf0M/o7Znl39Sdoz+X1oEb5N8ffF67qhPfPP6eoUbxf+GRf/6sRnvaSdmw+Bf1VxmbD+2sa//DU7t/Gv2PfKpKdrBP92Ojk+IvqX16ks/2qxbL8EZnc2HqsgYuqPuzZV+I3RbujbDm+T0PmWCVO/5jqftp1zy+wSA6s0JWtp2z5e1oZV+yMsjB3ZXolsv0Ulrv01v3/iKrF94Qtbt9siCnmeb6fjjf59KnLk1xaEbvtvFnFirGvEOqmycQrbm/IMsXd3P28uh4nM3swXRER717OiX8kc7K2qqyn2p3maFGU/aruP5VCv+PraoTYU8yUmmbDwcYo6pusnM486xdoga4dkPCb1pK7Sfc6ebvkd4qeAtQcd/N63bB3lU3dlUnUf38VyvqCqK7JxlNSd7lydrDlm+/uqHiRvl30Nrp/n9zpkZRjoJ3V1diyP05rIYXHYs+w+D5+WMS8b5gZtKcuX0KT5d/WwtB97VnyvY6rjMukI56HI0rFJPwt8PjT/1OXzSbcMeEmdh294qvKK4rNu7j4n3LNZg8TKXwafv025U+XvKjHsT8Q7/7LGaJt9lAh7Asz3uv0XEX6t0duDoWN/93wmh92XpUHmCKb9GALbG+rZP3AfNbQPKKv/jpF/bP0JXfuW1QYk7dhljcyvk5mw+933Hpo1g26PQ2ZP6zVmTJt47P25jncD9vPwGS+q9QS/V6RaY8j8K8LmvUr9HfYCpH5OWL9lZY+Sv6pesHCJHbtrf9k6etZvf0G1L0ja4cAe1UT/s3zdCe3/Q5/n372wMc97/E1Qh0Tbmfwh3m/V9On72tNnrCF1sJkVe1EyXMdBa7+lHMsk44zMF6St9e2djNnbm8ybpHkq+gbbemMaH0UZmD8obKGrk7r+nt+3bE7o83YZp/vqOKdv6PzJNN6mTJsI/51XR7i2ZrGA5B6zFwnjzxmqPjaGfW3tZNrz1eljq29mOOqeCfF/irRt87PNw0uXSVAvrmOMNT569MptsYaV0sic/wbY13e8hPrb9K2ySUJ0j6G/Lu0U4qpTrR23jMp6m5hU+YTaWCeh9aIsm/rqUHV4bFv42kgnZdfH1PUj1D7DVH9d8khRN1zFRl/+/TW//qxL1uH83+mk3H+SvRtS2TDU90nX2TpM6/1xzZpZtoYdK763dqlz0f6uNeFehcs+H/nbGP77MpX06n/ofpzP+tVmTUvRtVuX/cjS67OE5kRBrxyJ+w/dPo7r+9cO1160e3gqu0S2uW7PjN/L6ns/UfMf10Lai87frJ+3KndAfc8yTf1M3T4s6qm4/yh7/2GSkG8UMw//DvRLgbYZSEOxr0LCWvRdjfh9XGzfqN4NivfZd7rsmFp08zmbssrKJEuTfVMZopdpbuwSrhNv3/N2s+0PDG3KNB6RMrFvJHv6B85HXObAoWsd3zm3i+6uZYytv+5+pohbpo6+tpZJFfmGlrcMf4c8b1Pe2OUIsaXJrinCTfaxtZOt+NYnU3hIfQlN20Z/1+dt7JaqLsbIzycNWZmrlNg2Dc2/LJ1T+T6WrrYSml4Ku7ik7yIx2opJD51vU9UfVRmrqL8u/olZj0PyCLV5irxcdKoi/6rKb8qTrHsnhW9jyZH/nSpeWDzxd9769uQ016lgUuf2pAfKPhu2FpfZL2Yb9snLNl/fNIepXaUsj4vNXCXUZ75px8ojNP8UPvAta2g6fb+F1ckZuneshv1vGXXDeyRRrN/bBPS1Jul+l+7zW86R7Wv63WXyDpt/RxraRjvC+TC3O61/Sqj/prag8x372yQivn+XwudrI2X2E2KdtJEov52e0L+uv4FO3p/rvssgsL8F4d/z9PzlWS94m8fqS3361Fi+6qaVYHwi9Yz4iH2fobIj+45cpz/TUaarr/4+z+vaWtVtyAX2d1LG8W9C3f+F1mnf36/k4w3YPrLv+XBVXCJs3cr+n4MKJuLv/fN9GhNdXVP5pJMN9vFi3rpv3/r8Ywg3SYp66zNOsO8QGcxPpnmRS/1mvmJjju3v7absI2xspQrvs1dNbjOj/wP7h1RlZyKGy8occ408UL8En4v6xfC/K3z52XzJd62T8vuZGGsxo/6O46ntmNqqFb/jps2/hHV4rPKH0svT4pstU7t2tZ9u/ZdqbJL1MwP6O86Fyt4jYaIrGz9mjEt8lFL4PtVE6votG2P6fpdf/GZRse7s3bf4BtSl/DIbKMctx++Z+8o6K6z9FPOwKsRmXiaNl7C+6NYRpjlbqG1j72f49qsuY4brd/amb4ZVc8TQ+sSH985LrEe8iPWJnfPrJRbWbb+dwn4x6o+r/aS2S7w3qWt//LnYz2ntE0vH1uDcyKatx1rH+EiMPEN1SZG/iz6+9o01Rob6O7Q+xLZ1jHobK61U+pWVvo2EpuWqzzD6Poa+pvhli0wn8Zq/72Mzm2d90o5VN1x9ZKuzbTgvqWwUIin8FSpl1CXXvFRxU0iozVPYJDRtF3uFphn6XAyJUUdD7SjTJ8v6n9fVbVObkKWp001lc9VRlqdOf5v0ZM+bymdbfp1NfG0bq27Y5JMyfxeJkU6o/inKH8O2Zfgidb6h/g3VJ7QcVbWL0Pxt6rlrPqa4KfQ25a2zl4/E8GdM/4fK/wA=","base64")),h0=new d({stateTable:[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],accepting:[!1,!0,!0,!0,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!1,!0,!1,!0,!0,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!0,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!1,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!0,!1,!1,!0,!1,!0,!0,!1,!0,!0,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!1,!0,!1,!0,!0,!0,!0,!1,!1,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!0,!1,!0,!1,!0,!0,!1,!1,!0,!0,!1,!1,!0,!0,!0,!1,!0,!1,!0,!0,!0,!0,!1,!1,!1,!0,!1,!0,!0,!0,!0,!1,!1,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!1,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!1,!1,!0,!0,!1,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!1,!0,!0,!1,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!0,!0,!0,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1,!0,!0,!1,!0,!0,!0],tags:[[],["broken_cluster"],["consonant_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],[],["broken_cluster"],["symbol_cluster"],[],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["symbol_cluster"],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],[],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],[],[],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],["consonant_syllable"],["vowel_syllable"],["standalone_cluster"]]}),ln=function(nA){function b(){return nA.apply(this,arguments)||this}return E(b,nA),b.planFeatures=function(M){M.addStage(w0),M.addStage(["locl","ccmp"]),M.addStage(Q0),M.addStage("nukt"),M.addStage("akhn"),M.addStage("rphf",!1),M.addStage("rkrf"),M.addStage("pref",!1),M.addStage("blwf",!1),M.addStage("abvf",!1),M.addStage("half",!1),M.addStage("pstf",!1),M.addStage("vatu"),M.addStage("cjct"),M.addStage("cfar",!1),M.addStage(M0),M.addStage({local:["init"],global:["pres","abvs","blws","psts","haln","dist","abvm","blwm","calt","clig"]}),M.unicodeScript=function(nA){return Ni[nA]}(M.script),M.indicConfig=Zi[M.unicodeScript]||Zi.Default,M.isOldSpec=M.indicConfig.hasOldSpec&&"2"!==M.script[M.script.length-1]},b.assignFeatures=function(M,y){for(var z=function(sA){var iA=y[sA].codePoints[0],UA=f0[iA]||E0[iA];if(UA){var kA=UA.map(function(gt){var qA=M.font.glyphForCodePoint(gt);return new sr(M.font,qA.id,[gt],y[sA].features)});y.splice.apply(y,[sA,1].concat(kA))}},tA=y.length-1;tA>=0;tA--)z(tA)},b}(Er);function Ki(nA){return ma.get(nA.codePoints[0])>>8}function ya(nA){return 1<<(255&ma.get(nA.codePoints[0]))}T(ln,"zeroMarkWidths","NONE");var Ii=function(b,K,M,y){this.category=b,this.position=K,this.syllableType=M,this.syllable=y};function w0(nA,b){for(var z,K=0,M=0,y=l(h0.match(b.map(Ki)));!(z=y()).done;){var tA=z.value,oA=tA[0],sA=tA[1],iA=tA[2];if(oA>M){++K;for(var UA=M;UAGt);break;case"First":for(var we=(mt=iA)+1;weVe&&!(mr(b[Je])||cn&&b[Je].shaperInfo.category===de_H);Je--);if(b[Je].shaperInfo.category!==de_H&&Je>Ve){var fe=b[Ve];b.splice.apply(b,[Ve,0].concat(b.splice(Ve+1,Je-Ve))),b[Je]=fe}break}for(var _e=ee.Start,Pe=iA;PeiA;$e--)if(b[$e-1].shaperInfo.position!==ee.Pre_M){xe.position=b[$e-1].shaperInfo.position;break}}else xe.position!==ee.SMVD&&(_e=xe.position)}for(var Nn=mt,Bn=mt+1;BniA&&!mr(b[bn]))}}}}function M0(nA,b,K){for(var M=K.indicConfig,y=nA._layoutEngine.engine.GSUBProcessor.features,z=0,tA=Di(b,0);z=ee.Base_C){if(oA&&sA+1ee.Base_C&&sA--;break}if(sA===tA&&zz&&!(b[kA].shaperInfo.category&(de_M|$r));)kA--;gr(b[kA])&&b[kA].shaperInfo.position!==ee.Pre_M?kA+1z;gt--)if(b[gt-1].shaperInfo.position===ee.Pre_M){var qA=gt-1;qAz&&b[Mt].shaperInfo.position===ee.SMVD;)Mt--;if(gr(b[Mt]))for(var _t=sA+1;_tz&&!(b[le-1].shaperInfo.category&(de_M|$r));)le--;if(le>z&&b[le-1].shaperInfo.category===de_M)for(var he=ae,we=sA+1;wez&&gr(b[le-1])&&le=nA.length)return b;for(var K=nA[b].shaperInfo.syllable;++b=0;tA--)z(tA)},b}(Er);function Fa(nA){return p0.get(nA.codePoints[0])}T(Ce,"zeroMarkWidths","BEFORE_GPOS");var D0=function(b,K,M){this.category=b,this.syllableType=K,this.syllable=M};function v0(nA,b){for(var y,K=0,M=l(I0.match(b.map(Fa)));!(y=M()).done;){var z=y.value,tA=z[0],oA=z[1],sA=z[2];++K;for(var iA=tA;iA<=oA;iA++)b[iA].shaperInfo=new D0(d0[Fa(b[iA])],sA[0],K);for(var UA="R"===b[tA].shaperInfo.category?1:Math.min(3,oA-tA),kA=tA;kA1)for(z=M+1;z=nA.length)return b;for(var K=nA[b].shaperInfo.syllable;++b=0;Jn--)this.glyphs.splice(le[Jn],1);return this.glyphs[this.glyphIterator.index]=se,!0}}return!1;case 5:return this.applyContext(z);case 6:return this.applyChainingContext(z);case 7:return this.applyLookup(z.lookupType,z.extension);default:throw new Error("GSUB lookupType ".concat(y," is not supported"))}},b}(Ci),S0=function(nA){function b(){return nA.apply(this,arguments)||this}E(b,nA);var K=b.prototype;return K.applyPositionValue=function(y,z){var tA=this.positions[this.glyphIterator.peekIndex(y)];null!=z.xAdvance&&(tA.xAdvance+=z.xAdvance),null!=z.yAdvance&&(tA.yAdvance+=z.yAdvance),null!=z.xPlacement&&(tA.xOffset+=z.xPlacement),null!=z.yPlacement&&(tA.yOffset+=z.yPlacement);var oA=this.font._variationProcessor,sA=this.font.GDEF&&this.font.GDEF.itemVariationStore;oA&&sA&&(z.xPlaDevice&&(tA.xOffset+=oA.getDelta(sA,z.xPlaDevice.a,z.xPlaDevice.b)),z.yPlaDevice&&(tA.yOffset+=oA.getDelta(sA,z.yPlaDevice.a,z.yPlaDevice.b)),z.xAdvDevice&&(tA.xAdvance+=oA.getDelta(sA,z.xAdvDevice.a,z.xAdvDevice.b)),z.yAdvDevice&&(tA.yAdvance+=oA.getDelta(sA,z.yAdvDevice.a,z.yAdvDevice.b)))},K.applyLookup=function(y,z){switch(y){case 1:var tA=this.coverageIndex(z.coverage);if(-1===tA)return!1;switch(z.version){case 1:this.applyPositionValue(0,z.value);break;case 2:this.applyPositionValue(0,z.values.get(tA))}return!0;case 2:var oA=this.glyphIterator.peek();if(!oA)return!1;var sA=this.coverageIndex(z.coverage);if(-1===sA)return!1;switch(z.version){case 1:for(var kA,UA=l(z.pairSets.get(sA));!(kA=UA()).done;){var gt=kA.value;if(gt.secondGlyph===oA.id)return this.applyPositionValue(0,gt.value1),this.applyPositionValue(1,gt.value2),!0}return!1;case 2:var qA=this.getClassID(this.glyphIterator.cur.id,z.classDef1),Bt=this.getClassID(oA.id,z.classDef2);if(-1===qA||-1===Bt)return!1;var Mt=z.classRecords.get(qA).get(Bt);return this.applyPositionValue(0,Mt.value1),this.applyPositionValue(1,Mt.value2),!0}case 3:var mt=this.glyphIterator.peekIndex(),Gt=this.glyphs[mt];if(!Gt)return!1;var _t=z.entryExitRecords[this.coverageIndex(z.coverage)];if(!_t||!_t.exitAnchor)return!1;var qt=z.entryExitRecords[this.coverageIndex(z.coverage,Gt.id)];if(!qt||!qt.entryAnchor)return!1;var ae=this.getAnchor(qt.entryAnchor),le=this.getAnchor(_t.exitAnchor),he=this.positions[this.glyphIterator.index],we=this.positions[mt];switch(this.direction){case"ltr":he.xAdvance=le.x+he.xOffset;var Ge=ae.x+we.xOffset;we.xAdvance-=Ge,we.xOffset-=Ge;break;case"rtl":he.xAdvance-=Ge=le.x+he.xOffset,he.xOffset-=Ge,we.xAdvance=ae.x+we.xOffset}return this.glyphIterator.flags.rightToLeft?(this.glyphIterator.cur.cursiveAttachment=mt,he.yOffset=ae.y-le.y):(Gt.cursiveAttachment=this.glyphIterator.index,he.yOffset=le.y-ae.y),!0;case 4:var sn=this.coverageIndex(z.markCoverage);if(-1===sn)return!1;for(var He=this.glyphIterator.index;--He>=0&&(this.glyphs[He].isMark||this.glyphs[He].ligatureComponent>0););if(He<0)return!1;var se=this.coverageIndex(z.baseCoverage,this.glyphs[He].id);if(-1===se)return!1;var cn=z.markArray[sn];return this.applyAnchor(cn,z.baseArray[se][cn.class],He),!0;case 5:var Je=this.coverageIndex(z.markCoverage);if(-1===Je)return!1;for(var fe=this.glyphIterator.index;--fe>=0&&this.glyphs[fe].isMark;);if(fe<0)return!1;var _e=this.coverageIndex(z.ligatureCoverage,this.glyphs[fe].id);if(-1===_e)return!1;var Pe=z.ligatureArray[_e],xe=this.glyphIterator.cur,$e=this.glyphs[fe],Nn=$e.ligatureID&&$e.ligatureID===xe.ligatureID&&xe.ligatureComponent>0?Math.min(xe.ligatureComponent,$e.codePoints.length)-1:$e.codePoints.length-1,Bn=z.markArray[Je];return this.applyAnchor(Bn,Pe[Nn][Bn.class],fe),!0;case 6:var Jn=this.coverageIndex(z.mark1Coverage);if(-1===Jn)return!1;var kn=this.glyphIterator.peekIndex(-1),Dn=this.glyphs[kn];if(!Dn||!Dn.isMark)return!1;var Qn=this.glyphIterator.cur,jn=!1;if(Qn.ligatureID===Dn.ligatureID?Qn.ligatureID?Qn.ligatureComponent===Dn.ligatureComponent&&(jn=!0):jn=!0:(Qn.ligatureID&&!Qn.ligatureComponent||Dn.ligatureID&&!Dn.ligatureComponent)&&(jn=!0),!jn)return!1;var Zn=this.coverageIndex(z.mark2Coverage,Dn.id);if(-1===Zn)return!1;var pe=z.mark1Array[Jn];return this.applyAnchor(pe,z.mark2Array[Zn][pe.class],kn),!0;case 7:return this.applyContext(z);case 8:return this.applyChainingContext(z);case 9:return this.applyLookup(z.lookupType,z.extension);default:throw new Error("Unsupported GPOS table: ".concat(y))}},K.applyAnchor=function(y,z,tA){var oA=this.getAnchor(z),sA=this.getAnchor(y.markAnchor),UA=this.positions[this.glyphIterator.index];UA.xOffset=oA.x-sA.x,UA.yOffset=oA.y-sA.y,this.glyphIterator.cur.markAttachment=tA},K.getAnchor=function(y){var z=y.xCoordinate,tA=y.yCoordinate,oA=this.font._variationProcessor,sA=this.font.GDEF&&this.font.GDEF.itemVariationStore;return oA&&sA&&(y.xDeviceTable&&(z+=oA.getDelta(sA,y.xDeviceTable.a,y.xDeviceTable.b)),y.yDeviceTable&&(tA+=oA.getDelta(sA,y.yDeviceTable.a,y.yDeviceTable.b))),{x:z,y:tA}},K.applyFeatures=function(y,z,tA){nA.prototype.applyFeatures.call(this,y,z,tA);for(var oA=0;oA>16;if(0===y)switch(M>>8){case 0:return 173===M;case 3:return 847===M;case 6:return 1564===M;case 23:return 6068<=M&&M<=6069;case 24:return 6155<=M&&M<=6158;case 32:return 8203<=M&&M<=8207||8234<=M&&M<=8238||8288<=M&&M<=8303;case 254:return 65024<=M&&M<=65039||65279===M;case 255:return 65520<=M&&M<=65528;default:return!1}else switch(y){case 1:return 113824<=M&&M<=113827||119155<=M&&M<=119162;case 14:return 917504<=M&&M<=921599;default:return!1}},b.getAvailableFeatures=function(M,y){var z=[];return this.engine&&z.push.apply(z,this.engine.getAvailableFeatures(M,y)),this.font.kern&&-1===z.indexOf("kern")&&z.push("kern"),z},b.stringsForGlyph=function(M){for(var oA,y=new Set,tA=l(this.font._cmapProcessor.codePointsForGlyph(M));!(oA=tA()).done;)y.add(String.fromCodePoint(oA.value));if(this.engine&&this.engine.stringsForGlyph)for(var UA,iA=l(this.engine.stringsForGlyph(M));!(UA=iA()).done;)y.add(UA.value);return Array.from(y)},nA}(),z0={moveTo:"M",lineTo:"L",quadraticCurveTo:"Q",bezierCurveTo:"C",closePath:"Z"},mi=function(){function nA(){this.commands=[],this._bbox=null,this._cbox=null}var b=nA.prototype;return b.toFunction=function(){var M=this;return function(y){M.commands.forEach(function(z){return y[z.command].apply(y,z.args)})}},b.toSVG=function(){return this.commands.map(function(y){var z=y.args.map(function(tA){return Math.round(100*tA)/100});return"".concat(z0[y.command]).concat(z.join(" "))}).join("")},b.mapPoints=function(M){for(var tA,y=new nA,z=l(this.commands);!(tA=z()).done;){for(var oA=tA.value,sA=[],iA=0;iA0&&this.codePoints.every(w.isMark),this.isLigature=this.codePoints.length>1}var b=nA.prototype;return b._getPath=function(){return new mi},b._getCBox=function(){return this.path.cbox},b._getBBox=function(){return this.path.bbox},b._getTableMetrics=function(M){if(this.id0)sA=Math.abs(UA.typoAscender-UA.typoDescender),iA=UA.typoAscender-M.maxY;else{var kA=this._font.hhea;sA=Math.abs(kA.ascent-kA.descent),iA=kA.ascent-M.maxY}return this._font._variationProcessor&&this._font.HVAR&&(z+=this._font._variationProcessor.getAdvanceAdjustment(this.id,this._font.HVAR)),this._metrics={advanceWidth:z,advanceHeight:sA,leftBearing:tA,topBearing:iA}},b.getScaledPath=function(M){return this.path.scale(1/this._font.unitsPerEm*M)},b._getName=function(){var M=this._font.post;if(!M)return null;switch(M.version){case 1:return Ai[this.id];case 2:var y=M.glyphNameIndex[this.id];return y0?this._decodeSimple(sA,tA):sA.numberOfContours<0&&this._decodeComposite(sA,tA,oA),sA},K._decodeSimple=function(y,z){y.points=[];var tA=new e.Array(e.uint16,y.numberOfContours).decode(z);y.instructions=new e.Array(e.uint8,e.uint16).decode(z);for(var oA=[],sA=tA[tA.length-1]+1;oA.length=0,0,0);y.points.push(qA)}var Bt=0;for(gt=0;gt>1,iA.length=0}function cn(Je,fe){Gt&&sA.closePath(),sA.moveTo(Je,fe),Gt=!0}return function Je(){for(;z.pos1&&He(),Bt+=iA.shift(),cn(qA,Bt);break;case 5:for(;iA.length>=2;)qA+=iA.shift(),Bt+=iA.shift(),sA.lineTo(qA,Bt);break;case 6:case 7:for(var _e=6===fe;iA.length>=1;)_e?qA+=iA.shift():Bt+=iA.shift(),sA.lineTo(qA,Bt),_e=!_e;break;case 8:for(;iA.length>0;){var pe=qA+iA.shift(),ze=Bt+iA.shift(),Fe=pe+iA.shift(),Xe=ze+iA.shift();qA=Fe+iA.shift(),Bt=Xe+iA.shift(),sA.bezierCurveTo(pe,ze,Fe,Xe,qA,Bt)}break;case 10:var Pe=iA.pop()+he,xe=le[Pe];if(xe){mt[Pe]=!0;var $e=z.pos,Nn=oA;z.pos=xe.offset,oA=xe.offset+xe.length,Je(),z.pos=$e,oA=Nn}break;case 11:if(y.version>=2)break;return;case 14:if(y.version>=2)break;iA.length>0&&He(),Gt&&(sA.closePath(),Gt=!1);break;case 15:if(y.version<2)throw new Error("vsindex operator not supported in CFF v1");Ge=iA.pop();break;case 16:if(y.version<2)throw new Error("blend operator not supported in CFF v1");if(!sn)throw new Error("blend operator in non-variation font");for(var Bn=sn.getBlendVector(we,Ge),pn=iA.pop(),Jn=pn*Bn.length,kn=iA.length-Jn,Dn=kn-pn,Qn=0;Qn>3;break;case 21:iA.length>2&&He(),qA+=iA.shift(),Bt+=iA.shift(),cn(qA,Bt);break;case 22:iA.length>1&&He(),cn(qA+=iA.shift(),Bt);break;case 24:for(;iA.length>=8;)pe=qA+iA.shift(),ze=Bt+iA.shift(),Fe=pe+iA.shift(),Xe=ze+iA.shift(),qA=Fe+iA.shift(),Bt=Xe+iA.shift(),sA.bezierCurveTo(pe,ze,Fe,Xe,qA,Bt);qA+=iA.shift(),Bt+=iA.shift(),sA.lineTo(qA,Bt);break;case 25:for(;iA.length>=8;)qA+=iA.shift(),Bt+=iA.shift(),sA.lineTo(qA,Bt);pe=qA+iA.shift(),ze=Bt+iA.shift(),Fe=pe+iA.shift(),Xe=ze+iA.shift(),qA=Fe+iA.shift(),Bt=Xe+iA.shift(),sA.bezierCurveTo(pe,ze,Fe,Xe,qA,Bt);break;case 26:for(iA.length%2&&(qA+=iA.shift());iA.length>=4;)pe=qA,ze=Bt+iA.shift(),Fe=pe+iA.shift(),Xe=ze+iA.shift(),qA=Fe,Bt=Xe+iA.shift(),sA.bezierCurveTo(pe,ze,Fe,Xe,qA,Bt);break;case 27:for(iA.length%2&&(Bt+=iA.shift());iA.length>=4;)pe=qA+iA.shift(),ze=Bt,Fe=pe+iA.shift(),Xe=ze+iA.shift(),qA=Fe+iA.shift(),sA.bezierCurveTo(pe,ze,Fe,Xe,qA,Bt=Xe);break;case 28:iA.push(z.readInt16BE());break;case 29:Pe=iA.pop()+qt,(xe=_t[Pe])&&(Mt[Pe]=!0,$e=z.pos,Nn=oA,z.pos=xe.offset,oA=xe.offset+xe.length,Je(),z.pos=$e,oA=Nn);break;case 30:case 31:for(_e=31===fe;iA.length>=4;)_e?(pe=qA+iA.shift(),ze=Bt,Fe=pe+iA.shift(),Xe=ze+iA.shift(),Bt=Xe+iA.shift(),qA=Fe+(1===iA.length?iA.shift():0)):(pe=qA,ze=Bt+iA.shift(),Fe=pe+iA.shift(),Xe=ze+iA.shift(),qA=Fe+iA.shift(),Bt=Xe+(1===iA.length?iA.shift():0)),sA.bezierCurveTo(pe,ze,Fe,Xe,qA,Bt),_e=!_e;break;case 12:switch(fe=z.readUInt8()){case 3:var Oe=iA.pop(),un=iA.pop();iA.push(Oe&&un?1:0);break;case 4:Oe=iA.pop(),un=iA.pop(),iA.push(Oe||un?1:0);break;case 5:Oe=iA.pop(),iA.push(Oe?0:1);break;case 9:Oe=iA.pop(),iA.push(Math.abs(Oe));break;case 10:Oe=iA.pop(),un=iA.pop(),iA.push(Oe+un);break;case 11:Oe=iA.pop(),un=iA.pop(),iA.push(Oe-un);break;case 12:Oe=iA.pop(),un=iA.pop(),iA.push(Oe/un);break;case 14:Oe=iA.pop(),iA.push(-Oe);break;case 15:Oe=iA.pop(),un=iA.pop(),iA.push(Oe===un?1:0);break;case 18:iA.pop();break;case 20:var qi=iA.pop(),bn=iA.pop();UA[bn]=qi;break;case 21:bn=iA.pop(),iA.push(UA[bn]||0);break;case 22:var _i=iA.pop(),$i=iA.pop(),Nc=iA.pop(),bc=iA.pop();iA.push(Nc<=bc?_i:$i);break;case 23:iA.push(Math.random());break;case 24:Oe=iA.pop(),un=iA.pop(),iA.push(Oe*un);break;case 26:Oe=iA.pop(),iA.push(Math.sqrt(Oe));break;case 27:Oe=iA.pop(),iA.push(Oe,Oe);break;case 28:Oe=iA.pop(),un=iA.pop(),iA.push(un,Oe);break;case 29:(bn=iA.pop())<0?bn=0:bn>iA.length-1&&(bn=iA.length-1),iA.push(iA[bn]);break;case 30:var Yi=iA.pop(),ti=iA.pop();if(ti>=0)for(;ti>0;){for(var Aa=iA[Yi-1],Ti=Yi-2;Ti>=0;Ti--)iA[Ti+1]=iA[Ti];iA[0]=Aa,ti--}else for(;ti<0;){Aa=iA[0];for(var Si=0;Si<=Yi;Si++)iA[Si]=iA[Si+1];iA[Yi-1]=Aa,ti++}break;case 34:pe=qA+iA.shift(),ze=Bt,Fe=pe+iA.shift(),Xe=ze+iA.shift();var ei=Fe+iA.shift(),ni=Xe,ri=ei+iA.shift(),br=ni,ii=ri+iA.shift(),ai=br,oi=ii+iA.shift(),si=ai;qA=oi,Bt=si,sA.bezierCurveTo(pe,ze,Fe,Xe,ei,ni),sA.bezierCurveTo(ri,br,ii,ai,oi,si);break;case 35:for(var Qr=[],Ka=0;Ka<=5;Ka++)qA+=iA.shift(),Bt+=iA.shift(),Qr.push(qA,Bt);sA.bezierCurveTo.apply(sA,Qr.slice(0,6)),sA.bezierCurveTo.apply(sA,Qr.slice(6)),iA.shift();break;case 36:pe=qA+iA.shift(),ze=Bt+iA.shift(),Fe=pe+iA.shift(),br=ni=Xe=ze+iA.shift(),ii=(ri=(ei=Fe+iA.shift())+iA.shift())+iA.shift(),ai=br+iA.shift(),oi=ii+iA.shift(),qA=oi,Bt=si=ai,sA.bezierCurveTo(pe,ze,Fe,Xe,ei,ni),sA.bezierCurveTo(ri,br,ii,ai,oi,si);break;case 37:var Wa=qA,Va=Bt;Qr=[];for(var Xa=0;Xa<=4;Xa++)qA+=iA.shift(),Bt+=iA.shift(),Qr.push(qA,Bt);Math.abs(qA-Wa)>Math.abs(Bt-Va)?(qA+=iA.shift(),Bt=Va):(qA=Wa,Bt+=iA.shift()),Qr.push(qA,Bt),sA.bezierCurveTo.apply(sA,Qr.slice(0,6)),sA.bezierCurveTo.apply(sA,Qr.slice(6));break;default:throw new Error("Unknown op: 12 ".concat(fe))}break;default:throw new Error("Unknown op: ".concat(fe))}else if(fe<247)iA.push(fe-139);else if(fe<251){var ta=z.readUInt8();iA.push(256*(fe-247)+ta+108)}else fe<255?(ta=z.readUInt8(),iA.push(256*-(fe-251)-ta-108)):iA.push(z.readInt32BE()/65536)}}(),Gt&&sA.closePath(),sA},b}(yi),q0=new e.Struct({originX:e.uint16,originY:e.uint16,type:new e.String(4),data:new e.Buffer(function(nA){return nA.parent.buflen-nA._currentOffset})}),_0=function(nA){function b(){return nA.apply(this,arguments)||this}E(b,nA);var K=b.prototype;return K.getImageForSize=function(y){for(var z=0;z=y)break}var oA=tA.imageOffsets,sA=oA[this.id],iA=oA[this.id+1];return sA===iA?null:(this._font.stream.pos=sA,q0.decode(this._font.stream,{buflen:iA-sA}))},K.render=function(y,z){var tA=this.getImageForSize(z);null!=tA&&y.image(tA.data,{height:z,x:tA.originX,y:z/this._font.unitsPerEm*(this.bbox.minY-tA.originY)}),this._font.sbix.flags.renderOutlines&&nA.prototype.render.call(this,y,z)},b}(xi),Ra=function(b,K){this.glyph=b,this.color=K},$0=function(nA){function b(){return nA.apply(this,arguments)||this}E(b,nA);var K=b.prototype;return K._getBBox=function(){for(var y=new Pr,z=0;z>1;if(this.id<(iA=z.baseGlyphRecord[sA]).gid)oA=sA-1;else{if(!(this.id>iA.gid)){var UA=iA;break}tA=sA+1}}if(null==UA){var kA=this._font._getBaseGlyph(this.id);return[new Ra(kA,gt={red:0,green:0,blue:0,alpha:255})]}for(var qA=[],Bt=UA.firstLayerIndex;Bt=1&&y[z]=z.glyphCount)){var tA=z.offsets[M];if(tA!==z.offsets[M+1]){var oA=this.font.stream;if(oA.pos=tA,!(oA.pos>=oA.length)){var sA=oA.readUInt16BE(),iA=tA+oA.readUInt16BE();if(32768&sA){var UA=oA.pos;oA.pos=iA;var kA=this.decodePoints();iA=oA.pos,oA.pos=UA}var gt=y.map(function(Bn){return Bn.copy()});sA&=4095;for(var qA=0;qA=z.globalCoordCount)throw new Error("Invalid gvar table");mt=z.globalCoords[4095&Mt]}if(16384&Mt){for(var _t=[],qt=0;qtMath.max(0,y[UA]))return 0;iA=(iA*oA[UA]+Number.EPSILON)/(y[UA]+Number.EPSILON)}else{if(oA[UA]tA[UA])return 0;iA=oA[UA]sA)){var UA=tA,kA=tA;for(tA++;tA<=sA;)z[tA]&&(this.deltaInterpolate(kA+1,tA-1,kA,tA,y,M),kA=tA),tA++;kA===UA?this.deltaShift(oA,sA,kA,y,M):(this.deltaInterpolate(kA+1,sA,kA,UA,y,M),UA>0&&this.deltaInterpolate(oA,UA-1,kA,UA,y,M)),tA=sA+1}}},b.deltaInterpolate=function(M,y,z,tA,oA,sA){if(!(M>y))for(var iA=["x","y"],UA=0;UAoA[tA][kA]){var gt=z;z=tA,tA=gt}var qA=oA[z][kA],Bt=oA[tA][kA],Mt=sA[z][kA],mt=sA[tA][kA];if(qA!==Bt||Mt===mt)for(var Gt=qA===Bt?0:(mt-Mt)/(Bt-qA),_t=M;_t<=y;_t++){var qt=oA[_t][kA];qt<=qA?qt+=Mt-qA:qt>=Bt?qt+=mt-Bt:qt=Mt+(qt-qA)*Gt,sA[_t][kA]=qt}}},b.deltaShift=function(M,y,z,tA,oA){var sA=oA[z].x-tA[z].x,iA=oA[z].y-tA[z].y;if(0!==sA||0!==iA)for(var UA=M;UA<=y;UA++)UA!==z&&(oA[UA].x+=sA,oA[UA].y+=iA)},b.getAdvanceAdjustment=function(M,y){var z,tA;if(y.advanceWidthMapping){var oA=M;oA>=y.advanceWidthMapping.mapCount&&(oA=y.advanceWidthMapping.mapCount-1);var iA=y.advanceWidthMapping.mapData[oA];z=iA.outerIndex,tA=iA.innerIndex}else z=0,tA=M;return this.getDelta(y.itemVariationStore,z,tA)},b.getDelta=function(M,y,z){if(y>=M.itemVariationData.length)return 0;var tA=M.itemVariationData[y];if(z>=tA.deltaSets.length)return 0;for(var oA=tA.deltaSets[z],sA=this.getBlendVector(M,y),iA=0,UA=0;UAqA.peakCoord||qA.peakCoord>qA.endCoord||qA.startCoord<0&&qA.endCoord>0&&0!==qA.peakCoord||0===qA.peakCoord?1:tA[gt]qA.endCoord?0:tA[gt]===qA.peakCoord?1:tA[gt]=0&&K<=255?1:2},nA.encode=function(K,M){M>=0&&M<=255?K.writeUInt8(M):K.writeInt16BE(M)},nA}(),Oa=new e.Struct({numberOfContours:e.int16,xMin:e.int16,yMin:e.int16,xMax:e.int16,yMax:e.int16,endPtsOfContours:new e.Array(e.uint16,"numberOfContours"),instructions:new e.Array(e.uint8,e.uint16),flags:new e.Array(e.uint8,0),xPoints:new e.Array(Ja,0),yPoints:new e.Array(Ja,0)}),Ec=function(){function nA(){}var b=nA.prototype;return b.encodeSimple=function(M,y){void 0===y&&(y=[]);for(var z=[],tA=[],oA=[],sA=[],iA=0,UA=0,kA=0,gt=0,qA=0,Bt=0;Bt0&&(sA.push(iA),iA=0),sA.push(qt),gt=qt),UA=Gt,kA=_t,qA++}"closePath"===Mt.command&&z.push(qA-1)}M.commands.length>1&&"closePath"!==M.commands[M.commands.length-1].command&&z.push(qA-1);var we=M.bbox,Ge={numberOfContours:z.length,xMin:we.minX,yMin:we.minY,xMax:we.maxX,yMax:we.maxY,endPtsOfContours:z,instructions:y,flags:sA,xPoints:tA,yPoints:oA},sn=Oa.size(Ge),He=4-sn%4,se=new e.EncodeStream(sn+He);return Oa.encode(se,Ge),0!==He&&se.fill(0,He),se.buffer},b._encodePoint=function(M,y,z,tA,oA,sA){var iA=M-y;return M===y?tA|=sA:(-255<=iA&&iA<=255&&(tA|=oA,iA<0?iA=-iA:tA|=sA),z.push(iA)),tA},nA}(),hc=function(nA){function b(M){var y;return(y=nA.call(this,M)||this).glyphEncoder=new Ec,y}E(b,nA);var K=b.prototype;return K._addGlyph=function(y){var z=this.font.getGlyph(y),tA=z._decode(),oA=this.font.loca.offsets[y],sA=this.font.loca.offsets[y+1],iA=this.font._getTableStream("glyf");iA.pos+=oA;var UA=iA.readBuffer(sA-oA);if(tA&&tA.numberOfContours<0){UA=c.from(UA);for(var gt,kA=l(tA.components);!(gt=kA()).done;){var qA=gt.value;y=this.includeGlyph(qA.glyphID),UA.writeUInt16BE(y,qA.pos)}}else tA&&this.font._variationProcessor&&(UA=this.glyphEncoder.encodeSimple(z.path,tA.instructions));return this.glyf.push(UA),this.loca.offsets.push(this.offset),this.hmtx.metrics.push({advance:z.advanceWidth,bearing:z._getMetrics().leftBearing}),this.offset+=UA.length,this.glyf.length-1},K.encode=function(y){this.glyf=[],this.offset=0,this.loca={offsets:[],version:this.font.loca.version},this.hmtx={metrics:[],bearings:[]};for(var z=0;z255?2:1,ranges:[{first:1,nLeft:this.charstrings.length-2}]},tA=Object.assign({},this.cff.topDict);tA.Private=null,tA.charset=z,tA.Encoding=null,tA.CharStrings=this.charstrings;for(var oA=0,sA=["version","Notice","Copyright","FullName","FamilyName","Weight","PostScript","BaseFontName","FontName"];oA0&&Object.defineProperty(this,y,{get:this._getTable.bind(this,z)})}}nA.probe=function(M){var y=M.toString("ascii",0,4);return"true"===y||"OTTO"===y||y===String.fromCharCode(0,1,0,0)};var b=nA.prototype;return b.setDefaultLanguage=function(M){void 0===M&&(M=null),this.defaultLanguage=M},b._getTable=function(M){if(!(M.tag in this._tables))try{this._tables[M.tag]=this._decodeTable(M)}catch(y){v.logErrors&&(console.error("Error decoding table ".concat(M.tag)),console.error(y.stack))}return this._tables[M.tag]},b._getTableStream=function(M){var y=this.directory.tables[M];return y?(this.stream.pos=y.offset,this.stream):null},b._decodeDirectory=function(){return this.directory=li.decode(this.stream,{_startOffset:0})},b._decodeTable=function(M){var y=this.stream.pos,z=this._getTableStream(M.tag),tA=re[M.tag].decode(z,this,M.length);return this.stream.pos=y,tA},b.getName=function(M,y){void 0===y&&(y=this.defaultLanguage||v.defaultLanguage);var z=this.name&&this.name.records[M];return z&&(z[y]||z[this.defaultLanguage]||z[v.defaultLanguage]||z.en||z[Object.keys(z)[0]])||null},b.hasGlyphForCodePoint=function(M){return!!this._cmapProcessor.lookup(M)},b.glyphForCodePoint=function(M){return this.getGlyph(this._cmapProcessor.lookup(M),[M])},b.glyphsForString=function(M){for(var y=[],z=M.length,tA=0,oA=-1,sA=-1;tA<=z;){var iA=0,UA=0;if(tA>>6&3},transformed:function(b){return"glyf"===b.tag||"loca"===b.tag?0===b.transformVersion:0!==b.transformVersion},transformLength:new e.Optional(Fi,function(nA){return nA.transformed})}),ka=new e.Struct({tag:new e.String(4),flavor:e.uint32,length:e.uint32,numTables:e.uint16,reserved:new e.Reserved(e.uint16),totalSfntSize:e.uint32,totalCompressedSize:e.uint32,majorVersion:e.uint16,minorVersion:e.uint16,metaOffset:e.uint32,metaLength:e.uint32,metaOrigLength:e.uint32,privOffset:e.uint32,privLength:e.uint32,tables:new e.Array(pc,"numTables")});ka.process=function(){for(var nA={},b=0;b0){for(var iA=[],UA=0,kA=0;kA>7);if((iA&=127)<10)oA=0,sA=er(iA,((14&iA)<<7)+b.readUInt8());else if(iA<20)oA=er(iA,((iA-10&14)<<7)+b.readUInt8()),sA=0;else if(iA<84)oA=er(iA,1+(48&(kA=iA-20))+((gt=b.readUInt8())>>4)),sA=er(iA>>1,1+((12&kA)<<2)+(15>));else if(iA<120){var kA;oA=er(iA,1+((kA=iA-84)/12<<8)+b.readUInt8()),sA=er(iA>>1,1+(kA%12>>2<<8)+b.readUInt8())}else if(iA<124){var gt=b.readUInt8(),qA=b.readUInt8();oA=er(iA,(gt<<4)+(qA>>4)),sA=er(iA>>1,((15&qA)<<8)+b.readUInt8())}else oA=er(iA,b.readUInt16BE()),sA=er(iA>>1,b.readUInt16BE());z.push(new Br(UA,!1,y+=oA,M+=sA))}return z}var Fc=new e.VersionedStruct(e.uint32,{65536:{numFonts:e.uint32,offsets:new e.Array(e.uint32,"numFonts")},131072:{numFonts:e.uint32,offsets:new e.Array(e.uint32,"numFonts"),dsigTag:e.uint32,dsigLength:e.uint32,dsigOffset:e.uint32}}),Yc=function(){function nA(K){if(this.stream=K,"ttcf"!==K.readString(4))throw new Error("Not a TrueType collection");this.header=Fc.decode(K)}return nA.probe=function(M){return"ttcf"===M.toString("ascii",0,4)},nA.prototype.getFont=function(M){for(var z,y=l(this.header.offsets);!(z=y()).done;){var tA=z.value,oA=new e.DecodeStream(this.stream.buffer);oA.pos=tA;var sA=new yr(oA);if(sA.postscriptName===M)return sA}return null},s(nA,[{key:"fonts",get:function(){for(var z,M=[],y=l(this.header.offsets);!(z=y()).done;){var tA=z.value,oA=new e.DecodeStream(this.stream.buffer);oA.pos=tA,M.push(new yr(oA))}return M}}]),nA}(),Tc=new e.String(e.uint8),Sc=(new e.Struct({len:e.uint32,buf:new e.Buffer("len")}),new e.Struct({id:e.uint16,nameOffset:e.int16,attr:e.uint8,dataOffset:e.uint24,handle:e.uint32})),Uc=new e.Struct({name:new e.String(4),maxTypeIndex:e.uint16,refList:new e.Pointer(e.uint16,new e.Array(Sc,function(nA){return nA.maxTypeIndex+1}),{type:"parent"})}),Pc=new e.Struct({length:e.uint16,types:new e.Array(Uc,function(nA){return nA.length+1})}),zc=new e.Struct({reserved:new e.Reserved(e.uint8,24),typeList:new e.Pointer(e.uint16,Pc),nameListOffset:new e.Pointer(e.uint16,"void")}),Za=new e.Struct({dataOffset:e.uint32,map:new e.Pointer(e.uint32,zc),dataLength:e.uint32,mapLength:e.uint32}),Rc=function(){function nA(K){this.stream=K,this.header=Za.decode(this.stream);for(var y,M=l(this.header.map.typeList.types);!(y=M()).done;){for(var oA,z=y.value,tA=l(z.refList);!(oA=tA()).done;){var sA=oA.value;sA.nameOffset>=0?(this.stream.pos=sA.nameOffset+this.header.map.nameListOffset,sA.name=Tc.decode(this.stream)):sA.name=null}"sfnt"===z.name&&(this.sfnt=z)}}return nA.probe=function(M){var y=new e.DecodeStream(M);try{var z=Za.decode(y)}catch(iA){return!1}for(var oA,tA=l(z.map.typeList.types);!(oA=tA()).done;)if("sfnt"===oA.value.name)return!0;return!1},nA.prototype.getFont=function(M){if(!this.sfnt)return null;for(var z,y=l(this.sfnt.refList);!(z=y()).done;){var sA=new e.DecodeStream(this.stream.buffer.slice(this.header.dataOffset+z.value.dataOffset+4)),iA=new yr(sA);if(iA.postscriptName===M)return iA}return null},s(nA,[{key:"fonts",get:function(){for(var z,M=[],y=l(this.sfnt.refList);!(z=y()).done;){var sA=new e.DecodeStream(this.stream.buffer.slice(this.header.dataOffset+z.value.dataOffset+4));M.push(new yr(sA))}return M}}]),nA}();v.registerFormat(yr),v.registerFormat(Qc),v.registerFormat(Ic),v.registerFormat(Yc),v.registerFormat(Rc),Y.exports=v},7337:function(Y,I,n){"use strict";var c=n(4781),r=n(9742),a=n(2055),s=a.BK,E=a.CR,o=a.LF,l=a.NL,h=a.SG,u=a.WJ,C=a.SP,e=a.ZWJ,f=a.BA,g=a.HY,w=a.NS,Q=a.AI,d=a.AL,F=a.CJ,m=a.HL,p=a.RI,D=a.SA,v=a.XX,P=n(8383),T=P.DI_BRK,x=P.IN_BRK,R=P.CI_BRK,N=P.CP_BRK,aA=P.pairTable,gA=new c(r.toByteArray("AAgOAAAAAACA3QAAAe0OEvHtnXuMXUUdx+d2d2/33r237V3YSoFC11r6IGgbRFBEfFF5KCVCMYKFaKn8AYqmwUeqECFabUGQipUiNCkgSRElUkKwJRWtwSpJrZpCI4E2NQqiBsFGwWL8Tu6Md3Z23o9zbund5JM5c+b1m9/85nnOuXtTHyFrwXpwL9gBngTPgj+Dv4H9Ae4B0N9PSAMcDqaB0X57urmIs8AQ72SEnQ4+ABaBxWAJWAquENJ9BtdfANeCleBGcCv4NvgeuBv8AGwCm8FWlpbzOPw7wC7wFNgDngMvgpfAq2DCACF10ACHgaPAzIF2+PFwT2Th1P8OuO8FZ4MPggvAxWAp+A6VHe5ysILFvx7u6oF2+Wvg3g7uYvlT+TbC/TH4CdgCtoGtfW3/E2An8++Gu5eleR7uP8B+8BoLf4LFH6i23Vp1rB5a1Q7TGMeCUYYY18RcxF0gxT8H5b3dIw8X3iPkdxauPwQWgyVgWbVT30/h+mrwZan8r8L/FcEWVsJ/E1grpKXcwdLdI9y/H9cPgUerbbun0PadCHcbjQd+D55mafcx9y9wXwKvCLJUJiLdRH09ef4xupqE/KeCY8Bx4M3gbeBdYCE4G3wYXASWgGXgSibTcuaugHs9WA3WgNvBBha2Ee4D4GFNPTYL9x/D9XaJXwnXvwW7wDPgTzQd2A9eAwODhDTBCJgOZoETwEngtEFmF3DPAouY/0K4Swb9dbaMpbkS7nKP9CsCyrpOSrNK8K9kNnYL7q0DGwbb/XnjoDv3gQfBZvBz8GvwO/AHdr3Pkv4F4fplj3J79OgRBx8HypajR48ePXr06NGjx8HFv7pABhX/HRx7HqKjr9Y+y6PXg7X2WRoPm1Kzpz8CcWaweLPhHt/fPq95C65PZnmfDnchOLfWPo/7OLgQ15ewdJ+E++na2PMhyudw72bDGc01CP8aWAm+Dr4BVoHV4IZeWC+sF9YL64UlD1sD1oE7au0z0zK5p1YuZde/R49uJnYdez/62EPgkVr4c7pHkfYXivTbcW8n2A32gOekOH+F/5/gAOivE9IArXpbrmlwR+vljz9bJrV552RCvgQ2GXgRzJ9CyGVTxofdLd17Gv6jW4RcAG5ote/9FO4B8NZhQs4DN4O9kOFY6OFSsB48C/qGCFkAyERCzh9q+0WuA2sqHX4m+Smv4t6RjXYelItwvQ7sBtOahHwU3NYcn+5Q4pFmRz89evTocajxStM898/FfLSgrg8/sT5+zcLDTkXY+6S0C+E/l907SXO+Rt/Lujrxe1kmztPU70JDvSmXILwJWS9TxLuC3VtuycPGCoV+VfD41yvKW6W4d1O9/S5YtZ+Qtbi+k/m/D/eHYBPzb4G7DfyS+enZ42/qnXPFp+pjZdgD/yX0XcV6+93DF+H+G5AhtcxPIs/BoY5cg0g7RRGXx/8Ewo8Y6vhp/Bnwz2F5zId7CgunZ6Dv1uTF0585pNY7P9NdhPCPDI1Ncyn8l4OrwHKwguVB12WrNPnpoPW5BWluA3eCuxRl3cfyfFCom43NBjkeQ9h2Tzlzs7PL5CmD3UwHew26+KMm7AVHu8hJaL1fTtj29L3E/wi6oPvWvkY7bAjucKOYtpymKWdGo/3e5KxGR8YTGvmfZ4XW46RGmnMIG6excs6Ae46nPuh7pGXbvm/fOB91vLhRXvkmlkKuK8BnFTb8xYL6TyqugbzXJZCZ9tlVrO9+C+53G5134A8G1htsjdbvXoT/KEBPmwq04dS2v6UxNnxbAXV5gul4Z6J+tMtBZtv4+Qzy2Ndof+fwPHP/zsbg/QFz02tIM4B9ZRO0mp379NxxBpgD5gv3T8H16eAMcCZYxMIWw/2YEG8pri9n/qvgfr45fm67VtjPzmbpVrJ7NzL3VrjvF/Jdh+sN3M/cB+A+LOV/bVNdX13b0G9KtmrSHCo8jvqfGjFu7WiWP37E8s2+yv8ZwVbYRgvMAm9kvMkhjStzAZbIBGIR+ngAy2NSZ9f0Hv2bIIShCckU5k5sb+OdGGQ0BKqSPzeE1WFCgWXK5dO2rDD/COn9zTvEUfXJ4zT3c9DP2oH2+ZoAtc9RBr/mY0SLdGyap+Nxh6W0In2Sn5C8/W00c/7dXn63we1DtAHud9WZbFNimmFL2iIoqt8eDPQHptERIkNoO8prFVvblm13OaG6oGM+n7P4/RrRz2HdTktotxHFdZW5tvm72UWEtm9dQF6n++hU1FmVFL++L2Nsdt3/1IVrWaacda4Se91t+pHDVXF5HFd9pG7X14NNyePr6wkfPTRI+H6qDPvLqRM5DR2beZ8W95Divq0IWXXyy/d18Yq09ZhyY/fyPjafY37yta8ybD9l3W15+crXYhQ5rsj2Wkb7iDadon1c+tKI4p5NR6HjPl/vqvLm92uK8lTjWNntkwJTu9hkiJmHVf3S1V5UOii6PWL1nVqOkP5QI/b2L2o+Kqr/h9i0bHNl9HudnKn0btKBbZzItQ7n47Drmutg6P+ubZK7/5va0PU8XZS56DP4Isci07gUo3/fscdlfMyp6xR6dy0vt/275K1bJ8qkHI99bdK3v4vt4Gtzs7sEWa5aZH4NDz3yfWG368bXLlQ6GZYQ7/UL1y3mryroZ+nkZwK28SD1vlt+7sNd+lcR3Ji1RKq1WcvhftFzousYxftH7Ngu2pZubcGfD8eMizp5Y/uha/m69NNK5siSOapkcq2lTOOGvE4y9aPclFl20eXTvwoZO374ymob90Jx3Zfk2h/I849q7VNE+WXsj+ZFlJ96Xcd1PyD4ue2J69/Q9V+u9uPrQC7/sHRftjE+n+eQP2Ztl5Kc+0TX/WND8vP2iF23xO7lfO3XtKfLhUm/PE6Ze78RD/3Fknr8i907yWsoUx+M3S+0SNjcHyu7qg6+aYvqF671TLXfTzU+2uaTnOOzbFc+7yHoZE59npIL175kay/ZxlKMH6a+NSJdl90XKXytpbMpTr/kP5zJfqxQDzneYWTstxh9pPPdYJ/CL8alTBag+fFvHFXtQMutWxBloOUMMHS6GWSyVYS4pvgmexXtVjc/TFWk9ZnnZLt3+caI10/8Xkb+hsYlfeh+QOyPNQN1S7hv2nqivEVSj/Ex+1lu73Ib1olbu4jpfN4ddbWbHN+/mcpWfUem+g7RhK4833SuepHbN0d5PjKF1kUll3xPFc5d+btTW9uqdCHXwaQ7kw252ENIW9vKTdEfTLox+VPYT6r8XXUWq7tYuXyZnEAG+ic+pwyVdRLDp8wcOp0kEZNXzLyqw3f+yEkjMI1sFznk8ulDKcoKlcFVlz75qPyu9+U8YuvnqnfXNDn6t6neNr3xfHj4JEU500ma8SSkjjodptBlTLurbI7rTxUnhcxF6d9W76KRbd6G3DdVNj2qia/qD3KY2O90elLJocpHJc90Q7kqVLqaLlGUjYj+Pg00jD8Xk+Wnf5UAN8c8HGrvXKYi+4irnsoo09ctU29Fll2UraSyaxnTOar8DFw+w60St+cRNlzfm9E9y9CNUTZM5/7iOTWR6imOgaKf/pn6hJw/f8dDdS6u0tNhDN1ZOlGUoauTrqyQNvCd21Mjy8N/T7AixBkQrm3tRKS0tngDwrWYzobuLFwXV3WfP5uR9TGTXdvc3BRVjq18l3rbwmaS8c9QByR4m3Sb/lPVX2V/M4naDkV79GFmJDad2NaLOdpBpxsbvs+/YubgVPO5bn3h+75BahnEOU/EVb+yTL7vQeTQp04GH/twfTYaCv9ehe8XXdZ0Ic+IY94Hcik/9h0Zk35c7MdWXo737HM/y6dllPENj9zeuvq7vMMYam88fZnfU7nOHznf6/AdP+W8ffXv2q6uelDlE1N/Wx+Prb/MG8ARBVJ0eb7rz5Tf6sl5l/G9nizDnJLJudZoaNqU/hbsCPH73dhu+03aWPiZhW9/yLHf8IGvT1OtzwZJ56yG/7YvX5sSdn+yof6x5av2ebxcV1dOZ9pDVgSXys/36uLzG1s5Nvj7pKo9axm2zsueylxeT1lWlQ4rkuuzx5f3+VXPPGIhgbLnKp/rtiJdcz2lOtMpAtMZV27E/kRttyaF83dFbf3NdYwXx6sZpH0uVkZ/VslmOrspa24V1+O56u3TdmXpQdaJy36wLPm4LZVR7jyp/CLOmULtzeWZoqstuLS9rhzTmqwIe3LVia0f2OSP3c/71Ec8V0itv6JtONbOXdb3Oc5YdcTaQVFzRWg7+z6HydnHy+qPoWO+j1yq8anofifWl7ri97chNiq/z6KyM37t8333sJR/SF/3bUvd+z+8nV3KNPWfIvt3mfNZijFAZT8xfXSekLfOtl3rHCuPzxrEdT7U9UvRjn3HKV5/XTuo2i3n+E3L5L+3yN+TkH+z07ZGDlkviuXLcX3aL7b+8m+duhCzJonp/yF9wabPItZhJmJ/N8pVfvn31Fok7PeiYsalFON4bPnyuOO7Ru2G+S52fqB5DAt55bJtXf2LtJdQParCVevHlqcufduvKJuQ5yxxvA/Zw6W0l5D3+nz7a4wdieXxd+FS2SjPN7Z9XXDRp62/dMv4GTM22uwx1/iTe7zTUSfjf1Mqld36EHv2xvPoprMnGfGvIiDHk+/x+EQTP7fMOjl928f0/855OTnaJ5XeQsevVHNojO5147ePXLH681mDqOBhqef/Ivp+7PMF1Vxs02kMITLK30zp/k+FbX1RdP/w1b2OMt9hiR1bKLHfZ+XWT+4+ahqzVM8iUug81r5tfTf3+JB6DPFpk1zllLUu9523cpPLdlR6zTVP+bShGFd1lh/Td33rVdT44WqTtjqktOtc87osc8x5hM9vyLrK49v+Pvmp7De0/vyvLJvk1C3+1OOyLyG/aSSud1L/TlLq/BoZ5M2xNj66IFRlT9fcT4GqDYosQ3df/G0zlR5U4UVzjAJZPpW8NlLI5lOejzwq+eS4rnWZbsjTx7ZUrq4sXdrQPmAa82Pb0HVuyZl3rrrZ7Nal/ULzdy0zBUXrMaQcU18v6ncmxd9eM/1fkdQ24Tvu+paZ2q5S6z13+anlTyVfrv4aWz/desfFfn3WEj727rNGKHJdlqsM1VompjzT+shXv7F75dj3J3K3qY7QM7DcZ2L/Aw==")),MA=function(xA){switch(xA){case Q:case D:case h:case v:return d;case F:return w;default:return xA}},cA=function(xA){switch(xA){case o:case l:return s;case C:return u;default:return xA}},lA=function(xA,_){void 0===_&&(_=!1),this.position=xA,this.required=_};Y.exports=function(){function vA(_){this.string=_,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}var xA=vA.prototype;return xA.nextCodePoint=function(){var QA=this.string.charCodeAt(this.pos++),uA=this.string.charCodeAt(this.pos);return 55296<=QA&&QA<=56319&&56320<=uA&&uA<=57343?(this.pos++,1024*(QA-55296)+(uA-56320)+65536):QA},xA.nextCharClass=function(){return MA(gA.get(this.nextCodePoint()))},xA.getSimpleBreak=function(){switch(this.nextClass){case C:return!1;case s:case o:case l:return this.curClass=s,!1;case E:return this.curClass=E,!1}return null},xA.getPairTableBreak=function(QA){var uA=!1;switch(aA[this.curClass][this.nextClass]){case T:uA=!0;break;case x:uA=QA===C;break;case R:if(!(uA=QA===C))return!1;break;case N:if(QA!==C)return uA}return this.LB8a&&(uA=!1),!this.LB21a||this.curClass!==g&&this.curClass!==f?this.LB21a=this.curClass===m:(uA=!1,this.LB21a=!1),this.curClass===p?(this.LB30a++,2==this.LB30a&&this.nextClass===p&&(uA=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,uA},xA.nextBreak=function(){if(null==this.curClass){var QA=this.nextCharClass();this.curClass=cA(QA),this.nextClass=QA,this.LB8a=QA===e,this.LB30a=0}for(;this.pos=VA)return $;switch($){case"%s":return String(GA[TA++]);case"%d":return Number(GA[TA++]);case"%j":try{return JSON.stringify(GA[TA++])}catch(W){return"[Circular]"}default:return $}}),J=GA[TA];TA=3&&(TA.depth=arguments[2]),arguments.length>=4&&(TA.colors=arguments[3]),m(CA)?TA.showHidden=CA:CA&&I._extend(TA,CA),x(TA.showHidden)&&(TA.showHidden=!1),x(TA.depth)&&(TA.depth=2),x(TA.colors)&&(TA.colors=!1),x(TA.customInspect)&&(TA.customInspect=!0),TA.colors&&(TA.stylize=h),e(TA,uA,TA.depth)}function h(uA,CA){var TA=l.styles[CA];return TA?"\x1b["+l.colors[TA][0]+"m"+uA+"\x1b["+l.colors[TA][1]+"m":uA}function u(uA,CA){return uA}function e(uA,CA,TA){if(uA.customInspect&&CA&&AA(CA.inspect)&&CA.inspect!==I.inspect&&(!CA.constructor||CA.constructor.prototype!==CA)){var GA=CA.inspect(TA,uA);return P(GA)||(GA=e(uA,GA,TA)),GA}var VA=function(uA,CA){if(x(CA))return uA.stylize("undefined","undefined");if(P(CA)){var TA="'"+JSON.stringify(CA).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return uA.stylize(TA,"string")}return v(CA)?uA.stylize(""+CA,"number"):m(CA)?uA.stylize(""+CA,"boolean"):p(CA)?uA.stylize("null","null"):void 0}(uA,CA);if(VA)return VA;var q=Object.keys(CA),J=function(uA){var CA={};return uA.forEach(function(TA,GA){CA[TA]=!0}),CA}(q);if(uA.showHidden&&(q=Object.getOwnPropertyNames(CA)),aA(CA)&&(q.indexOf("message")>=0||q.indexOf("description")>=0))return g(CA);if(0===q.length){if(AA(CA))return uA.stylize("[Function"+(CA.name?": "+CA.name:"")+"]","special");if(R(CA))return uA.stylize(RegExp.prototype.toString.call(CA),"regexp");if(V(CA))return uA.stylize(Date.prototype.toString.call(CA),"date");if(aA(CA))return g(CA)}var hA,W="",EA=!1,DA=["{","}"];return F(CA)&&(EA=!0,DA=["[","]"]),AA(CA)&&(W=" [Function"+(CA.name?": "+CA.name:"")+"]"),R(CA)&&(W=" "+RegExp.prototype.toString.call(CA)),V(CA)&&(W=" "+Date.prototype.toUTCString.call(CA)),aA(CA)&&(W=" "+g(CA)),0!==q.length||EA&&0!=CA.length?TA<0?R(CA)?uA.stylize(RegExp.prototype.toString.call(CA),"regexp"):uA.stylize("[Object]","special"):(uA.seen.push(CA),hA=EA?function(uA,CA,TA,GA,VA){for(var q=[],J=0,$=CA.length;J<$;++J)vA(CA,String(J))?q.push(Q(uA,CA,TA,GA,String(J),!0)):q.push("");return VA.forEach(function(W){W.match(/^\d+$/)||q.push(Q(uA,CA,TA,GA,W,!0))}),q}(uA,CA,TA,J,q):q.map(function(HA){return Q(uA,CA,TA,J,HA,EA)}),uA.seen.pop(),function(uA,CA,TA){return uA.reduce(function(q,J){return J.indexOf("\n"),q+J.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?TA[0]+(""===CA?"":CA+"\n ")+" "+uA.join(",\n ")+" "+TA[1]:TA[0]+CA+" "+uA.join(", ")+" "+TA[1]}(hA,W,DA)):DA[0]+W+DA[1]}function g(uA){return"["+Error.prototype.toString.call(uA)+"]"}function Q(uA,CA,TA,GA,VA,q){var J,$,W;if((W=Object.getOwnPropertyDescriptor(CA,VA)||{value:CA[VA]}).get?$=uA.stylize(W.set?"[Getter/Setter]":"[Getter]","special"):W.set&&($=uA.stylize("[Setter]","special")),vA(GA,VA)||(J="["+VA+"]"),$||(uA.seen.indexOf(W.value)<0?($=p(TA)?e(uA,W.value,null):e(uA,W.value,TA-1)).indexOf("\n")>-1&&($=q?$.split("\n").map(function(EA){return" "+EA}).join("\n").substr(2):"\n"+$.split("\n").map(function(EA){return" "+EA}).join("\n")):$=uA.stylize("[Circular]","special")),x(J)){if(q&&VA.match(/^\d+$/))return $;(J=JSON.stringify(""+VA)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(J=J.substr(1,J.length-2),J=uA.stylize(J,"name")):(J=J.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),J=uA.stylize(J,"string"))}return J+": "+$}function F(uA){return Array.isArray(uA)}function m(uA){return"boolean"==typeof uA}function p(uA){return null===uA}function v(uA){return"number"==typeof uA}function P(uA){return"string"==typeof uA}function x(uA){return void 0===uA}function R(uA){return N(uA)&&"[object RegExp]"===MA(uA)}function N(uA){return"object"==typeof uA&&null!==uA}function V(uA){return N(uA)&&"[object Date]"===MA(uA)}function aA(uA){return N(uA)&&("[object Error]"===MA(uA)||uA instanceof Error)}function AA(uA){return"function"==typeof uA}function MA(uA){return Object.prototype.toString.call(uA)}function cA(uA){return uA<10?"0"+uA.toString(10):uA.toString(10)}I.debuglog=function(uA){if(uA=uA.toUpperCase(),!s[uA])if(E.test(uA)){var CA=c.pid;s[uA]=function(){var TA=I.format.apply(I,arguments);console.error("%s %d: %s",uA,CA,TA)}}else s[uA]=function(){};return s[uA]},I.inspect=l,l.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},l.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},I.types=n(5955),I.isArray=F,I.isBoolean=m,I.isNull=p,I.isNullOrUndefined=function(uA){return null==uA},I.isNumber=v,I.isString=P,I.isSymbol=function(uA){return"symbol"==typeof uA},I.isUndefined=x,I.isRegExp=R,I.types.isRegExp=R,I.isObject=N,I.isDate=V,I.types.isDate=V,I.isError=aA,I.types.isNativeError=aA,I.isFunction=AA,I.isPrimitive=function(uA){return null===uA||"boolean"==typeof uA||"number"==typeof uA||"string"==typeof uA||"symbol"==typeof uA||void 0===uA},I.isBuffer=n(384);var lA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function BA(){var uA=new Date,CA=[cA(uA.getHours()),cA(uA.getMinutes()),cA(uA.getSeconds())].join(":");return[uA.getDate(),lA[uA.getMonth()],CA].join(" ")}function vA(uA,CA){return Object.prototype.hasOwnProperty.call(uA,CA)}I.log=function(){console.log("%s - %s",BA(),I.format.apply(I,arguments))},I.inherits=n(5717),I._extend=function(uA,CA){if(!CA||!N(CA))return uA;for(var TA=Object.keys(CA),GA=TA.length;GA--;)uA[TA[GA]]=CA[TA[GA]];return uA};var xA="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function _(uA,CA){if(!uA){var TA=new Error("Promise was rejected with a falsy value");TA.reason=uA,uA=TA}return CA(uA)}I.promisify=function(CA){if("function"!=typeof CA)throw new TypeError('The "original" argument must be of type Function');if(xA&&CA[xA]){var TA;if("function"!=typeof(TA=CA[xA]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(TA,xA,{value:TA,enumerable:!1,writable:!1,configurable:!0}),TA}function TA(){for(var GA,VA,q=new Promise(function(W,EA){GA=W,VA=EA}),J=[],$=0;$1?v.attr[D[1]]:v.val},r.prototype.toString=function(p){return this.toStringWithIndent("",p)},r.prototype.toStringWithIndent=function(p,D){var v=p+"<"+this.name,P=D&&D.compressed?"":"\n";for(var x in this.attr)Object.prototype.hasOwnProperty.call(this.attr,x)&&(v+=" "+x+'="'+F(this.attr[x])+'"');if(1===this.children.length&&"element"!==this.children[0].type)v+=">"+this.children[0].toString(D)+"";else if(this.children.length){v+=">"+P;for(var R=p+(D&&D.compressed?"":" "),N=0,V=this.children.length;N"}else D&&D.html?-1!==["area","base","br","col","embed","frame","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"].indexOf(this.name)?v+="/>":v+=">":v+="/>";return v},a.prototype.toString=function(p){return m(F(this.text),p)},a.prototype.toStringWithIndent=function(p,D){return p+this.toString(D)},s.prototype.toString=function(p){return""},s.prototype.toStringWithIndent=function(p,D){return p+this.toString(D)},E.prototype.toString=function(p){return"\x3c!--"+m(F(this.comment),p)+"--\x3e"},E.prototype.toStringWithIndent=function(p,D){return p+this.toString(D)},r.prototype.type="element",a.prototype.type="text",s.prototype.type="cdata",E.prototype.type="comment",function(p,D){for(var v in D)D.hasOwnProperty(v)&&(p[v]=D[v])}(o.prototype,r.prototype),o.prototype._opentag=function(p){void 0===this.children?r.call(this,p):r.prototype._opentag.apply(this,arguments)},o.prototype._doctype=function(p){this.doctype+=p};var l=null;function u(){l[0]&&l[0]._opentag.apply(l[0],arguments)}function C(){l[0]&&l[0]._closetag.apply(l[0],arguments)}function e(){l[0]&&l[0]._text.apply(l[0],arguments)}function f(){l[0]&&l[0]._cdata.apply(l[0],arguments)}function g(){l[0]&&l[0]._comment.apply(l[0],arguments)}function w(){l[0]&&l[0]._doctype.apply(l[0],arguments)}function Q(){l[0]&&l[0]._error.apply(l[0],arguments)}function F(p){return p.toString().replace(/&/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")}function m(p,D){var v=p;return D&&D.trimmed&&p.length>25&&(v=v.substring(0,25).trim()+"\u2026"),D&&D.preserveWhitespace||(v=v.trim()),v}Y.exports&&!n.g.xmldocAssumeBrowser?Y.exports.XmlDocument=o:this.XmlDocument=o}()},6255:function(Y,I,n){"use strict";"undefined"!=typeof window&&!window.Promise&&n(3867),n(4667);function r(a){this.fs=a,this.resolving={}}r.prototype.resolve=function(a){if(!this.resolving[a]){var s=this;this.resolving[a]=new Promise(function(E,o){0===a.toLowerCase().indexOf("https://")||0===a.toLowerCase().indexOf("http://")?function(a){return new Promise(function(s,E){var o=new XMLHttpRequest;o.open("GET",a,!0),o.responseType="arraybuffer",o.onreadystatechange=function(){4===o.readyState&&(o.status>=200&&o.status<300||setTimeout(function(){E(new TypeError('Failed to fetch (url: "'+a+'")'))},0))},o.onload=function(){o.status>=200&&o.status<300&&s(o.response)},o.onerror=function(){setTimeout(function(){E(new TypeError('Network request failed (url: "'+a+'")'))},0)},o.ontimeout=function(){setTimeout(function(){E(new TypeError('Network request failed (url: "'+a+'")'))},0)},o.send()})}(a).then(function(l){s.fs.writeFileSync(a,l),E()},function(l){o(l)}):E()})}return this.resolving[a]},r.prototype.resolved=function(){var a=this;return new Promise(function(s,E){Promise.all(Object.values(a.resolving)).then(function(){s()},function(o){E(o)})})},Y.exports=r},4275:function(Y,I,n){"use strict";var c=n(8823).Buffer,r=n(6225).isFunction,a=n(6225).isUndefined,o=(n(6225),n(4896).saveAs),l={Roboto:{normal:"Roboto-Regular.ttf",bold:"Roboto-Medium.ttf",italics:"Roboto-Italic.ttf",bolditalics:"Roboto-MediumItalic.ttf"}};function h(C,e,f,g){this.docDefinition=C,this.tableLayouts=e||null,this.fonts=f||l,this.vfs=g}h.prototype._createDoc=function(C,e){C=C||{},this.tableLayouts&&(C.tableLayouts=this.tableLayouts);var g=new(n(8617))(this.fonts);if(n(3857).bindFS(this.vfs),!r(e))return g.createPdfKitDocument(this.docDefinition,C);var d=new(n(6255))(n(3857));for(var F in this.fonts)this.fonts.hasOwnProperty(F)&&(this.fonts[F].normal&&d.resolve(this.fonts[F].normal),this.fonts[F].bold&&d.resolve(this.fonts[F].bold),this.fonts[F].italics&&d.resolve(this.fonts[F].italics),this.fonts[F].bolditalics&&d.resolve(this.fonts[F].bolditalics));if(this.docDefinition.images)for(var m in this.docDefinition.images)this.docDefinition.images.hasOwnProperty(m)&&d.resolve(this.docDefinition.images[m]);var p=this;d.resolved().then(function(){var D=g.createPdfKitDocument(p.docDefinition,C);e(D)},function(D){throw D})},h.prototype._flushDoc=function(C,e){var g,f=[];C.on("readable",function(){for(var w;null!==(w=C.read(9007199254740991));)f.push(w)}),C.on("end",function(){g=c.concat(f),e(g,C._pdfMakePages)}),C.end()},h.prototype._getPages=function(C,e){if(!e)throw"_getPages is an async method and needs a callback argument";var f=this;this._createDoc(C,function(g){f._flushDoc(g,function(w,Q){e(Q)})})},h.prototype._bufferToBlob=function(C){var e;try{e=new Blob([C],{type:"application/pdf"})}catch(g){if("InvalidStateError"===g.name){var f=new Uint8Array(C);e=new Blob([f.buffer],{type:"application/pdf"})}}if(!e)throw"Could not generate blob";return e},h.prototype._openWindow=function(){var C=window.open("","_blank");if(null===C)throw"Open PDF in new window blocked by browser";return C},h.prototype._openPdf=function(C,e){e||(e=this._openWindow());try{this.getBlob(function(f){var w=(window.URL||window.webkitURL).createObjectURL(f);e.location.href=w},C)}catch(f){throw e.close(),f}},h.prototype.open=function(C,e){(C=C||{}).autoPrint=!1,this._openPdf(C,e=e||null)},h.prototype.print=function(C,e){(C=C||{}).autoPrint=!0,this._openPdf(C,e=e||null)},h.prototype.download=function(C,e,f){r(C)&&(a(e)||(f=e),e=C,C=null),C=C||"file.pdf",this.getBlob(function(g){o(g,C),r(e)&&e()},f)},h.prototype.getBase64=function(C,e){if(!C)throw"getBase64 is an async method and needs a callback argument";this.getBuffer(function(f){C(f.toString("base64"))},e)},h.prototype.getDataUrl=function(C,e){if(!C)throw"getDataUrl is an async method and needs a callback argument";this.getBuffer(function(f){C("data:application/pdf;base64,"+f.toString("base64"))},e)},h.prototype.getBlob=function(C,e){if(!C)throw"getBlob is an async method and needs a callback argument";var f=this;this.getBuffer(function(g){var w=f._bufferToBlob(g);C(w)},e)},h.prototype.getBuffer=function(C,e){if(!C)throw"getBuffer is an async method and needs a callback argument";var f=this;this._createDoc(e,function(g){f._flushDoc(g,function(w){C(w)})})},h.prototype.getStream=function(C,e){if(!r(e))return this._createDoc(C);this._createDoc(C,function(g){e(g)})},Y.exports={createPdf:function(C,e,f,g){if(!function(){try{var C=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(C,e),42===C.foo()}catch(f){return!1}}())throw"Your browser does not provide the level of support needed";return new h(C,e||n.g.pdfMake.tableLayouts,f||n.g.pdfMake.fonts,g||n.g.pdfMake.vfs)}}},3857:function(Y,I,n){"use strict";var r=n(8823).Buffer;function a(){this.fileSystem={},this.dataSystem={}}function s(E){return 0===E.indexOf("/")&&(E=E.substring("/".length)),0===E.indexOf("/")&&(E=E.substring(1)),E}a.prototype.existsSync=function(E){return E=s(E),void 0!==this.fileSystem[E]||void 0!==this.dataSystem[E]},a.prototype.readFileSync=function(E,o){E=s(E);var l=this.dataSystem[E];if("string"==typeof l&&"utf8"===o)return l;if(l)return new r(l,"string"==typeof l?"base64":void 0);var h=this.fileSystem[E];if(h)return h;throw"File '"+E+"' not found in virtual file system"},a.prototype.writeFileSync=function(E,o){this.fileSystem[s(E)]=o},a.prototype.bindFS=function(E){this.dataSystem=E||{}},Y.exports=new a},4498:function(Y,I,n){"use strict";var c=n(6225).isString;function a(o){return"auto"===o.width}function s(o){return null==o.width||"*"===o.width||"star"===o.width}Y.exports={buildColumnWidths:function(o,l){var h=[],u=0,C=0,e=[],f=0,g=0,w=[],Q=l;o.forEach(function(v){a(v)?(h.push(v),u+=v._minWidth,C+=v._maxWidth):s(v)?(e.push(v),f=Math.max(f,v._minWidth),g=Math.max(g,v._maxWidth)):w.push(v)}),w.forEach(function(v){c(v.width)&&/\d+%/.test(v.width)&&(v.width=parseFloat(v.width)*Q/100),v._calcWidth=v.width=l)h.forEach(function(v){v._calcWidth=v._minWidth}),e.forEach(function(v){v._calcWidth=f});else{if(F0){var D=l/e.length;e.forEach(function(v){v._calcWidth=D})}}},measureMinMax:function(o){for(var l={min:0,max:0},h={min:0,max:0},u=0,C=0,e=o.length;C=0;R--){var V=w.styleStack.styleDictionary[T[R]];for(var aA in V)V.hasOwnProperty(aA)&&(x[aA]=V[aA])}return x}function p(T){return E(T)?T=[T,T,T,T]:l(T)&&2===T.length&&(T=[T[0],T[1],T[0],T[1]]),T}var D=[void 0,void 0,void 0,void 0];if(g.style){var P=m(l(g.style)?g.style:[g.style]);P&&(D=F(P,D)),P.margin&&(D=p(P.margin))}return D=F(g,D),g.margin&&(D=p(g.margin)),void 0===D[0]&&void 0===D[1]&&void 0===D[2]&&void 0===D[3]?null:D}(),g.columns)return Q(w.measureColumns(g));if(g.stack)return Q(w.measureVerticalContainer(g));if(g.ul)return Q(w.measureUnorderedList(g));if(g.ol)return Q(w.measureOrderedList(g));if(g.table)return Q(w.measureTable(g));if(void 0!==g.text)return Q(w.measureLeaf(g));if(g.toc)return Q(w.measureToc(g));if(g.image)return Q(w.measureImage(g));if(g.svg)return Q(w.measureSVG(g));if(g.canvas)return Q(w.measureCanvas(g));if(g.qr)return Q(w.measureQr(g));throw"Unrecognized document structure: "+JSON.stringify(g,h)});function Q(F){var m=F._margin;return m&&(F._minWidth+=m[0]+m[2],F._maxWidth+=m[0]+m[2]),F}},f.prototype.convertIfBase64Image=function(g){if(/^data:image\/(jpeg|jpg|png);base64,/.test(g.image)){var w="$$pdfmake$$"+this.autoImageIndex++;this.images[w]=g.image,g.image=w}},f.prototype.measureImageWithDimensions=function(g,w){if(g.fit){var Q=w.width/w.height>g.fit[0]/g.fit[1]?g.fit[0]/w.width:g.fit[1]/w.height;g._width=g._minWidth=g._maxWidth=w.width*Q,g._height=w.height*Q}else g._width=g._minWidth=g._maxWidth=g.width||w.width,g._height=g.height||w.height*g._width/w.width,E(g.maxWidth)&&g.maxWidthg._width&&(g._width=g._minWidth=g._maxWidth=g.minWidth,g._height=g._width*w.height/w.width),E(g.minHeight)&&g.minHeight>g._height&&(g._height=g.minHeight,g._width=g._minWidth=g._maxWidth=g._height*w.width/w.height);g._alignment=this.styleStack.getProperty("alignment")},f.prototype.measureImage=function(g){this.images&&this.convertIfBase64Image(g);var w=this.imageMeasure.measureImage(g.image);return this.measureImageWithDimensions(g,w),g},f.prototype.measureSVG=function(g){var w=this.svgMeasure.measureSVG(g.svg);return this.measureImageWithDimensions(g,w),g.font=this.styleStack.getProperty("font"),g.svg=this.svgMeasure.writeDimensions(g.svg,{width:g._width,height:g._height}),g},f.prototype.measureLeaf=function(g){g._textRef&&g._textRef._textNodeRef.text&&(g.text=g._textRef._textNodeRef.text);var w=this.styleStack.clone();w.push(g);var Q=this.textTools.buildInlines(g.text,w);return g._inlines=Q.items,g._minWidth=Q.minWidth,g._maxWidth=Q.maxWidth,g},f.prototype.measureToc=function(g){if(g.toc.title&&(g.toc.title=this.measureNode(g.toc.title)),g.toc._items.length>0){for(var w=[],Q=g.toc.textStyle||{},d=g.toc.numberStyle||Q,F=g.toc.textMargin||[0,0,0,0],m=0,p=g.toc._items.length;m=26?x((R/26>>0)-1):"")+"abcdefghijklmnopqrstuvwxyz"[R%26>>0]}(T-1)}function m(T){if(T<1||T>4999)return T.toString();var V,x=T,R={M:1e3,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1},N="";for(V in R)for(;x>=R[V];)N+=V,x-=R[V];return N}var D;switch(Q){case"none":D=null;break;case"upper-alpha":D=F(g).toUpperCase();break;case"lower-alpha":D=F(g);break;case"upper-roman":D=m(g);break;case"lower-roman":D=m(g).toLowerCase();break;default:D=g.toString()}if(null===D)return{};d&&(l(d)?(d[0]&&(D=d[0]+D),d[1]&&(D+=d[1]),D+=" "):D+=d+" ");var v={text:D},P=w.getProperty("markerColor");return P&&(v.color=P),{_inlines:this.textTools.buildInlines(v,w).items}},f.prototype.measureUnorderedList=function(g){var w=this.styleStack.clone(),Q=g.ul;g.type=g.type||"disc",g._gapSize=this.gapSizeForList(),g._minWidth=0,g._maxWidth=0;for(var d=0,F=Q.length;d0?w.length-1:0;return g._minWidth=F.min+g._gap*m,g._maxWidth=F.max+g._gap*m,g},f.prototype.measureTable=function(g){var MA,cA;(function(MA){if(MA.table.widths||(MA.table.widths="auto"),s(MA.table.widths))for(MA.table.widths=[MA.table.widths];MA.table.widths.length1?(aA(D,Q,v.colSpan),w.push({col:Q,span:v.colSpan,minWidth:v._minWidth,maxWidth:v._maxWidth})):(p._minWidth=Math.max(p._minWidth,v._minWidth),p._maxWidth=Math.max(p._maxWidth,v._maxWidth))),v.rowSpan&&v.rowSpan>1&&AA(g.table,d,Q,v.rowSpan)}}!function(){for(var MA,cA,lA=0,BA=w.length;lA0)for(MA=_/vA.span,cA=0;cA0)for(MA=QA/vA.span,cA=0;cAh.page?l:h.page>l.page?h:l.y>h.y?l:h).page,x:u.x,y:u.y,availableHeight:u.availableHeight,availableWidth:u.availableWidth}}(this,l.bottomMost)},a.prototype.markEnding=function(l){this.page=l._columnEndingContext.page,this.x=l._columnEndingContext.x,this.y=l._columnEndingContext.y,this.availableWidth=l._columnEndingContext.availableWidth,this.availableHeight=l._columnEndingContext.availableHeight,this.lastColumnWidth=l._columnEndingContext.lastColumnWidth},a.prototype.saveContextInEndingCell=function(l){l._columnEndingContext={page:this.page,x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,lastColumnWidth:this.lastColumnWidth}},a.prototype.completeColumnGroup=function(l){var h=this.snapshots.pop();this.calculateBottomMost(h),this.endingCell=null,this.x=h.x;var u=h.bottomMost.y;l&&(h.page===h.bottomMost.page?h.y+l>u&&(u=h.y+l):u+=l),this.y=u,this.page=h.bottomMost.page,this.availableWidth=h.availableWidth,this.availableHeight=h.bottomMost.availableHeight,l&&(this.availableHeight-=u-h.bottomMost.y),this.lastColumnWidth=h.lastColumnWidth},a.prototype.addMargin=function(l,h){this.x+=l,this.availableWidth-=l+(h||0)},a.prototype.moveDown=function(l){return this.y+=l,this.availableHeight-=l,this.availableHeight>0},a.prototype.initializePage=function(){this.y=this.pageMargins.top,this.availableHeight=this.getCurrentPage().pageSize.height-this.pageMargins.top-this.pageMargins.bottom,this.pageSnapshot().availableWidth=this.getCurrentPage().pageSize.width-this.pageMargins.left-this.pageMargins.right},a.prototype.pageSnapshot=function(){return this.snapshots[0]?this.snapshots[0]:this},a.prototype.moveTo=function(l,h){null!=l&&(this.x=l,this.availableWidth=this.getCurrentPage().pageSize.width-this.x-this.pageMargins.right),null!=h&&(this.y=h,this.availableHeight=this.getCurrentPage().pageSize.height-this.y-this.pageMargins.bottom)},a.prototype.moveToRelative=function(l,h){null!=l&&(this.x=this.x+l),null!=h&&(this.y=this.y+h)},a.prototype.beginDetachedBlock=function(){this.snapshots.push({x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,page:this.page,endingCell:this.endingCell,lastColumnWidth:this.lastColumnWidth})},a.prototype.endDetachedBlock=function(){var l=this.snapshots.pop();this.x=l.x,this.y=l.y,this.availableWidth=l.availableWidth,this.availableHeight=l.availableHeight,this.page=l.page,this.endingCell=l.endingCell,this.lastColumnWidth=l.lastColumnWidth};var E=function(l,h){return(h=function(l,h){return void 0===l?h:r(l)&&"landscape"===l.toLowerCase()?"landscape":"portrait"}(h,l.pageSize.orientation))!==l.pageSize.orientation?{orientation:h,width:l.pageSize.height,height:l.pageSize.width}:{orientation:l.pageSize.orientation,width:l.pageSize.width,height:l.pageSize.height}};a.prototype.moveToNextPage=function(l){var h=this.page+1,u=this.page,C=this.y,e=h>=this.pages.length;if(e){var f=this.availableWidth,g=this.getCurrentPage().pageSize.orientation,w=E(this.getCurrentPage(),l);this.addPage(w),g===w.orientation&&(this.availableWidth=f)}else this.page=h,this.initializePage();return{newPageCreated:e,prevPage:u,prevY:C,y:this.y}},a.prototype.addPage=function(l){var h={items:[],pageSize:l};return this.pages.push(h),this.backgroundLength.push(0),this.page=this.pages.length-1,this.initializePage(),this.tracker.emit("pageAdded"),h},a.prototype.getCurrentPage=function(){return this.page<0||this.page>=this.pages.length?null:this.pages[this.page]},a.prototype.getCurrentPosition=function(){var l=this.getCurrentPage().pageSize,h=l.height-this.pageMargins.top-this.pageMargins.bottom,u=l.width-this.pageMargins.left-this.pageMargins.right;return{pageNumber:this.page+1,pageOrientation:l.orientation,pageInnerHeight:h,pageInnerWidth:u,left:this.x,top:this.y,verticalRatio:(this.y-this.pageMargins.top)/h,horizontalRatio:(this.x-this.pageMargins.left)/u}},Y.exports=a},1196:function(Y,I,n){"use strict";var c=n(4775),r=n(6225).isNumber,a=n(6225).pack,s=n(6225).offsetVector,E=n(3858);function o(u,C){this.context=u,this.contextStack=[],this.tracker=C}function l(u,C,e){null==e||e<0||e>u.items.length?u.items.push(C):u.items.splice(e,0,C)}o.prototype.addLine=function(u,C,e){var f=u.getHeight(),g=this.context,w=g.getCurrentPage(),Q=this.getCurrentPositionOnPage();return!(g.availableHeight0&&u.inlines[0].alignment,g=0;switch(f){case"right":g=C-e;break;case"center":g=(C-e)/2}if(g&&(u.x=(u.x||0)+g),"justify"===f&&!u.newLineForced&&!u.lastLineInParagraph&&u.inlines.length>1)for(var w=(C-e)/(u.inlines.length-1),Q=1,d=u.inlines.length;Q0)&&(void 0===u._x&&(u._x=u.x||0),u.x=f.x+u._x,u.y=f.y,this.alignImage(u),l(g,{type:e||"image",item:u},C),f.moveDown(u._height),w)},o.prototype.addSVG=function(u,C){return this.addImage(u,C,"svg")},o.prototype.addQr=function(u,C){var e=this.context,f=e.getCurrentPage(),g=this.getCurrentPositionOnPage();if(!f||void 0===u.absolutePosition&&e.availableHeightg.availableHeight||(u.items.forEach(function(Q){switch(Q.type){case"line":var d=function(u){var C=new c(u.maxWidth);for(var e in u)u.hasOwnProperty(e)&&(C[e]=u[e]);return C}(Q.item);d._node&&(d._node.positions[0].pageNumber=g.page+1),d.x=(d.x||0)+(C?u.xOffset||0:g.x),d.y=(d.y||0)+(e?u.yOffset||0:g.y),w.items.push({type:"line",item:d});break;case"vector":var F=a(Q.item);s(F,C?u.xOffset||0:g.x,e?u.yOffset||0:g.y),w.items.push({type:"vector",item:F});break;case"image":case"svg":var m=a(Q.item);m.x=(m.x||0)+(C?u.xOffset||0:g.x),m.y=(m.y||0)+(e?u.yOffset||0:g.y),w.items.push({type:Q.type,item:m})}}),f||g.moveDown(u.height),0))},o.prototype.pushContext=function(u,C){void 0===u&&(C=this.context.getCurrentPage().height-this.context.pageMargins.top-this.context.pageMargins.bottom,u=this.context.availableWidth),r(u)&&(u=new E({width:u,height:C},{left:0,right:0,top:0,bottom:0})),this.contextStack.push(this.context),this.context=u},o.prototype.popContext=function(){this.context=this.contextStack.pop()},o.prototype.getCurrentPositionOnPage=function(){return(this.contextStack[0]||this.context).getCurrentPosition()},Y.exports=o},2249:function(Y,I,n){"use strict";var c=n(6225).isArray;function a(s,E){for(var o in this.fonts={},this.pdfKitDoc=E,this.fontCache={},s)if(s.hasOwnProperty(o)){var l=s[o];this.fonts[o]={normal:l.normal,bold:l.bold,italics:l.italics,bolditalics:l.bolditalics}}}a.prototype.getFontType=function(s,E){return function(s,E){var o="normal";return s&&E?o="bolditalics":s?o="bold":E&&(o="italics"),o}(s,E)},a.prototype.getFontFile=function(s,E,o){var l=this.getFontType(E,o);return this.fonts[s]&&this.fonts[s][l]?this.fonts[s][l]:null},a.prototype.provideFont=function(s,E,o){var l=this.getFontType(E,o);if(null===this.getFontFile(s,E,o))throw new Error("Font '"+s+"' in style '"+l+"' is not defined in the font section of the document definition.");if(this.fontCache[s]=this.fontCache[s]||{},!this.fontCache[s][l]){var h=this.fonts[s][l];c(h)||(h=[h]),this.fontCache[s][l]=this.pdfKitDoc.font.apply(this.pdfKitDoc,h)._font}return this.fontCache[s][l]},Y.exports=a},6225:function(Y){"use strict";function r(g){return Array.isArray(g)}Y.exports={isString:function(g){return"string"==typeof g||g instanceof String},isNumber:function(g){return"number"==typeof g||g instanceof Number},isBoolean:function(g){return"boolean"==typeof g},isArray:r,isFunction:function(g){return"function"==typeof g},isObject:function(g){return null!==g&&"object"==typeof g},isNull:function(g){return null===g},isUndefined:function(g){return void 0===g},pack:function(){for(var g={},w=0,Q=arguments.length;w0})).forEach(function(W){var EA={};["id","text","ul","ol","table","image","qr","canvas","svg","columns","headlineLevel","style","pageBreak","pageOrientation","width","height"].forEach(function(DA){void 0!==W[DA]&&(EA[DA]=W[DA])}),EA.startPosition=W.positions[0],EA.pageNumbers=Array.from(new Set(W.positions.map(function(DA){return DA.pageNumber}))),EA.pages=QA.length,EA.stack=C(W.stack),W.nodeInfo=EA});for(var uA=0;uA<_.length;uA++){var CA=_[uA];if("before"!==CA.pageBreak&&!CA.pageBreakCalculated){CA.pageBreakCalculated=!0;var TA=CA.nodeInfo.pageNumbers[0],GA=[],VA=[],q=[];if(lA.length>1)for(var J=uA+1,$=_.length;J<$;J++)_[J].nodeInfo.pageNumbers.indexOf(TA)>-1&&GA.push(_[J].nodeInfo),lA.length>2&&_[J].nodeInfo.pageNumbers.indexOf(TA+1)>-1&&VA.push(_[J].nodeInfo);if(lA.length>3)for(J=0;J-1&&q.push(_[J].nodeInfo);if(lA(CA.nodeInfo,GA,VA,q))return CA.pageBreak="before",!0}}return!1}this.docPreprocessor=new r,this.docMeasure=new a(R,N,V,this.imageMeasure,this.svgMeasure,this.tableLayouts,MA);for(var xA=this.tryLayoutDocument(x,R,N,V,aA,AA,gA,MA,cA);BA(xA.linearNodeList,xA.pages);)xA.linearNodeList.forEach(function(QA){QA.resetXY()}),xA=this.tryLayoutDocument(x,R,N,V,aA,AA,gA,MA,cA);return xA.pages},P.prototype.tryLayoutDocument=function(x,R,N,V,aA,AA,gA,MA,cA,lA){this.linearNodeList=[],x=this.docPreprocessor.preprocessDocument(x),x=this.docMeasure.measureDocument(x),this.writer=new E(new s(this.pageSize,this.pageMargins),this.tracker);var BA=this;return this.writer.context().tracker.startTracking("pageAdded",function(){BA.addBackground(aA)}),this.addBackground(aA),this.processNode(x),this.addHeadersAndFooters(AA,gA),null!=cA&&this.addWatermark(cA,R,V),{pages:this.writer.context().pages,linearNodeList:this.linearNodeList}},P.prototype.addBackground=function(x){var R=F(x)?x:function(){return x},N=this.writer.context(),V=N.getCurrentPage().pageSize,aA=R(N.page+1,V);aA&&(this.writer.beginUnbreakableBlock(V.width,V.height),aA=this.docPreprocessor.preprocessDocument(aA),this.processNode(this.docMeasure.measureDocument(aA)),this.writer.commitUnbreakableBlock(0,0),N.backgroundLength[N.page]+=aA.positions.length)},P.prototype.addStaticRepeatable=function(x,R){this.addDynamicRepeatable(function(){return JSON.parse(JSON.stringify(x))},R)},P.prototype.addDynamicRepeatable=function(x,R){for(var V=0,aA=this.writer.context().pages.length;V1;)_.push({fontSize:TA}),(QA=xA.sizeOfRotatedText(BA.text,BA.angle,_)).width>lA.width?TA=(uA+(CA=TA))/2:QA.widthlA.height?(uA+(CA=TA))/2:((uA=TA)+CA)/2),_.pop();return TA}(this.pageSize,x,R));var V={text:x.text,font:R.provideFont(x.font,x.bold,x.italics),fontSize:x.fontSize,color:x.color,opacity:x.opacity,angle:x.angle};V._size=(lA=x,vA=new m(R),(xA=new p(null,{font:lA.font,bold:lA.bold,italics:lA.italics})).push({fontSize:lA.fontSize}),{size:vA.sizeOfString(lA.text,xA),rotatedSize:vA.sizeOfRotatedText(lA.text,lA.angle,xA)});for(var aA=this.writer.context().pages,AA=0,gA=aA.length;AA0;cA--)MA.push(gA);return MA}(x._gap);V&&(N-=(V.length-1)*x._gap),o.buildColumnWidths(R,N);var aA=this.processRow(R,R,V);v(x.positions,aA.positions)},P.prototype.processRow=function(x,R,N,V,aA,AA){var gA=this,MA=[],cA=[];return this.tracker.auto("pageChanged",function(xA){for(var _,QA=0,uA=MA.length;QA1)for(var TA=1;TAxA?N[xA]:0}function vA(xA,_){if(xA.rowSpan&&xA.rowSpan>1){var QA=aA+xA.rowSpan-1;if(QA>=V.length)throw"Row span for column "+_+" (with indexes starting from 0) exceeded row count";return V[QA][_]}return null}},P.prototype.processList=function(x,R){var AA,N=this,V=x?R.ol:R.ul,aA=R._gapSize;this.writer.context().addMargin(aA.width),this.tracker.auto("lineAdded",function(MA){if(AA){var cA=AA;if(AA=null,cA.canvas){var lA=cA.canvas[0];w(lA,-cA._minWidth,0),N.writer.addVector(lA)}else if(cA._inlines){var BA=new h(N.pageSize.width);BA.addInline(cA._inlines[0]),BA.x=-cA._minWidth,BA.y=MA.getAscenderHeight()-BA.getAscenderHeight(),N.writer.addLine(BA,!0)}}},function(){V.forEach(function(MA){AA=MA.listMarker,N.processNode(MA),v(R.positions,MA.positions)})}),this.writer.context().addMargin(-aA.width)},P.prototype.processTable=function(x){var R=new l(x);R.beginTable(this.writer);for(var N=x.table.heights,V=0,aA=x.table.body.length;V0&&(N.hasEnoughSpaceForInline(x._inlines[0],x._inlines.slice(1))||aA);){var AA=!1,gA=x._inlines.shift();if(aA=!1,!gA.noWrap&&gA.text.length>1&&gA.width>N.getAvailableWidth()){var MA=gA.width/gA.text.length,cA=Math.floor(N.getAvailableWidth()/MA);if(cA<1&&(cA=1),cA0){var u=l.pages[0];if(u.xOffset=E,u.yOffset=o,h>1)if(void 0!==E||void 0!==o)u.height=l.getCurrentPage().pageSize.height-l.pageMargins.top-l.pageMargins.bottom;else{u.height=this.writer.context.getCurrentPage().pageSize.height-this.writer.context.pageMargins.top-this.writer.context.pageMargins.bottom;for(var C=0,e=this.repeatables.length;CVA.item.y2?VA.item.y1:VA.item.y2:0}(VA)}var TA=T(QA||40),GA=TA.top;return _.forEach(function(VA){VA.items.forEach(function(q){var J=CA(q);J>GA&&(GA=J)})}),GA+=TA.bottom}function P(_,QA){_&&"auto"===_.height&&(_.height=1/0);var TA,CA=function(_){if(C(_)){var QA=s[_.toUpperCase()];if(!QA)throw"Page size "+_+" not recognized";return{width:QA[0],height:QA[1]}}return _}(_||"A4");return!!C(TA=QA)&&("portrait"===(TA=TA.toLowerCase())&&CA.width>CA.height||"landscape"===TA&&CA.widthCA.height?"landscape":"portrait",CA}function T(_){if(e(_))_={left:_,right:_,top:_,bottom:_};else if(g(_))if(2===_.length)_={left:_[0],top:_[1],right:_[0],bottom:_[1]};else{if(4!==_.length)throw"Invalid pageMargins definition";_={left:_[0],top:_[1],right:_[2],bottom:_[3]}}return _}function N(_,QA){_.pageSize.orientation!==(QA.options.size[0]>QA.options.size[1]?"landscape":"portrait")&&(QA.options.size=[QA.options.size[1],QA.options.size[0]])}function aA(_,QA){var uA=_;return QA.sup&&(uA-=.75*QA.fontSize),QA.sub&&(uA+=.35*QA.fontSize),uA}function AA(_,QA,uA,CA,TA){function GA(st,yA){var _A,ft,lt=new h(null);if(w(st.positions))throw"Page reference id not found";var SA=st.positions[0].pageNumber.toString();switch(yA.text=SA,_A=lt.widthOfString(yA.text,yA.font,yA.fontSize,yA.characterSpacing,yA.fontFeatures),ft=yA.width-_A,yA.width=_A,yA.alignment){case"right":yA.x+=ft;break;case"center":yA.x+=ft/2}}_._pageNodeRef&&GA(_._pageNodeRef,_.inlines[0]),QA=QA||0,uA=uA||0;var VA=_.getHeight(),J=VA-_.getAscenderHeight();l.drawBackground(_,QA,uA,CA,TA);for(var $=0,W=_.inlines.length;$1){var VA=_.points[0],q=_.points[_.points.length-1];(_.closePath||VA.x===q.x&&VA.y===q.y)&&uA.closePath()}break;case"path":uA.path(_.d)}if(_.linearGradient&&CA){var J=1/(_.linearGradient.length-1);for(TA=0;TA<_.linearGradient.length;TA++)CA.stop(TA*J,_.linearGradient[TA]);_.color=CA}Q(_.color)&&(_.color=d(_.color,QA));var $=e(_.fillOpacity)?_.fillOpacity:1,W=e(_.strokeOpacity)?_.strokeOpacity:1;_.color&&_.lineColor?(uA.fillColor(_.color,$),uA.strokeColor(_.lineColor,W),uA.fillAndStroke()):_.color?(uA.fillColor(_.color,$),uA.fill()):(uA.strokeColor(_.lineColor||"black",W),uA.stroke())}function cA(_,QA,uA,CA){var TA=e(_.opacity)?_.opacity:1;if(CA.opacity(TA),_.cover){var GA=_.cover.align||"center",VA=_.cover.valign||"center",q=_.cover.width?_.cover.width:_.width,J=_.cover.height?_.cover.height:_.height;CA.save(),CA.rect(_.x,_.y,q,J).clip(),CA.image(_.image,_.x,_.y,{cover:[q,J],align:GA,valign:VA}),CA.restore()}else CA.image(_.image,_.x,_.y,{width:_._width,height:_._height});_.link&&CA.link(_.x,_.y,_._width,_._height,_.link),_.linkToPage&&(CA.ref({Type:"Action",S:"GoTo",D:[_.linkToPage,0,0]}).end(),CA.annotate(_.x,_.y,_._width,_._height,{Subtype:"Link",Dest:[_.linkToPage-1,"XYZ",null,null,null]})),_.linkToDestination&&CA.goTo(_.x,_.y,_._width,_._height,_.linkToDestination)}function lA(_,QA,uA,CA,TA){var GA=Object.assign({width:_._width,height:_._height,assumePt:!0},_.options);GA.fontCallback=function(VA,q,J){var $=VA.split(",").map(function(rA){return rA.trim().replace(/('|")/g,"")}),W=function(_,QA,uA){for(var CA=0;CA-1&&(GA=GA.slice(0,VA)),uA.height===1/0){var q=v(GA,_.pageMargins);this.pdfKitDoc.options.size=[uA.width,q]}var J=function(_,QA){var uA={};return Object.keys(_).forEach(function(CA){var TA=_[CA];uA[CA]=QA.pattern(TA.boundingBox,TA.xStep,TA.yStep,TA.pattern,TA.colored)}),uA}(_.patterns||{},this.pdfKitDoc);if(function(_,QA,uA,CA,TA){uA._pdfMakePages=_,uA.addPage();var GA=0;TA&&_.forEach(function(DA){GA+=DA.items.length});var VA=0;TA=TA||function(){};for(var q=0;q<_.length;q++){q>0&&(N(_[q],uA),uA.addPage(uA.options));for(var J=_[q],$=0,W=J.items.length;$=128?285:0);var d=[[]];for(w=0;w<30;++w){for(var F=d[w],m=[],p=0;p<=w;++p)m.push(g[(p6},V=function(q,J){var $=-8&function(q){var J=I[q],$=16*q*q+128*q+64;return x(q)&&($-=36),J[2].length&&($-=25*J[2].length*J[2].length-10*J[2].length-55),$}(q),W=I[q];return $-8*W[0][J]*W[1][J]},aA=function(q,J){switch(J){case 1:return q<10?10:q<27?12:14;case 2:return q<10?9:q<27?11:13;case 4:return q<10?8:16;case 8:return q<10?8:q<27?10:12}},AA=function(q,J,$){var W=V(q,$)-4-aA(q,J);switch(J){case 1:return 3*(W/10|0)+(W%10<4?0:W%10<7?1:2);case 2:return 2*(W/11|0)+(W%11<6?0:1);case 4:return W/8|0;case 8:return W/13|0}},cA=function(q,J){for(var $=q.slice(0),W=q.length,EA=J.length,DA=0;DA=0)for(var hA=0;hA=0;--DA)EA>>W+DA&1&&(EA^=$<>rA&1;return q},uA=function(q){for(var DA=function(OA){for(var WA=0,zA=0;zA=5&&(WA+=OA[zA]-5+3);for(zA=5;zA=4*ot||OA[zA+1]>=4*ot)&&(WA+=40)}return WA},rA=q.length,hA=0,HA=0,nt=0;nt=rA){for(EA.push(DA|yA>>(_A-=rA));_A>=8;)EA.push(yA>>(_A-=8)&255);DA=0,rA=8}_A>0&&(DA|=(yA&(1<<_A)-1)<<(rA-=_A))},nt=aA(q,J);switch(HA(J,4),HA(hA,nt),J){case 1:for(var st=2;st>3);rA=function(q,J,$){for(var W=[],EA=q.length/J|0,DA=0,rA=J-q.length%J,hA=0;hA>It&1,EA[lt+ot][SA+It]=1};for(rA(0,0,9,9,[127,65,93,93,93,65,383,0,64]),rA($-8,0,8,9,[256,127,65,93,93,93,65,127]),rA(0,$-8,9,8,[254,130,186,186,186,130,254,0,0]),DA=9;DA<$-8;++DA)W[6][DA]=W[DA][6]=1&~DA,EA[6][DA]=EA[DA][6]=1;var hA=J[2],HA=hA.length;for(DA=0;DA>ft++&1,EA[DA][$-11+yA]=EA[$-11+yA][DA]=1}return{matrix:W,reserved:EA}}(J),HA=hA.matrix,nt=hA.reserved;if(function(q,J,$){for(var W=q.length,EA=0,DA=-1,rA=W-1;rA>=0;rA-=2){6==rA&&--rA;for(var hA=DA<0?W-1:0,HA=0;HArA-2;--nt)J[hA][nt]||(q[hA][nt]=$[EA>>3]>>(7&~EA)&1,++EA);hA+=DA}DA=-DA}}(HA,nt,rA),EA<0){_(HA,nt,0),QA(HA,0,W,0);var st=0,yA=uA(HA);for(_(HA,nt,0),EA=1;EA<8;++EA){_(HA,nt,EA),QA(HA,0,W,EA);var _A=uA(HA);yA>_A&&(yA=_A,st=EA),_(HA,nt,EA)}EA=st}return _(HA,nt,EA),QA(HA,0,W,EA),HA};function TA(q,J){var $={numeric:1,alphanumeric:2,octet:4},EA=(J=J||{}).version||-1,DA={L:1,M:0,Q:3,H:2}[(J.eccLevel||"L").toUpperCase()],rA=J.mode?$[J.mode.toLowerCase()]:-1,hA="mask"in J?J.mask:-1;if(rA<0)rA="string"==typeof q?q.match(E)?1:q.match(l)?2:4:4;else if(1!=rA&&2!=rA&&4!=rA)throw"invalid or unsupported mode";if(null===(q=function(q,J){switch(q){case 1:return J.match(E)?J:null;case 2:return J.match(o)?J.toUpperCase():null;case 4:if("string"==typeof J){for(var $=[],W=0;W>6,128|63&EA):EA<65536?$.push(224|EA>>12,128|EA>>6&63,128|63&EA):$.push(240|EA>>18,128|EA>>12&63,128|EA>>6&63,128|63&EA)}return $}return J}}(rA,q)))throw"invalid data format";if(DA<0||DA>3)throw"invalid ECC level";if(EA<0){for(EA=1;EA<=40&&!(q.length<=AA(EA,rA,DA));++EA);if(EA>40)throw"too large data for the Qr format"}else if(EA<1||EA>40)throw"invalid Qr version! should be between 1 and 40";if(-1!=hA&&(hA<0||hA>8))throw"invalid mask";return CA(q,EA,rA,DA,hA)}Y.exports={measure:function(q){var J=function(q,J){var $=[],W=J.background||"#fff",EA=J.foreground||"#000",DA=TA(q,J),rA=DA.length,hA=Math.floor(J.fit?J.fit/rA:5),HA=rA*hA;$.push({type:"rect",x:0,y:0,w:HA,h:HA,lineWidth:0,color:W});for(var nt=0;nt0;)this.styleOverrides.pop()},E.prototype.autopush=function(o){if(c(o))return 0;var l=[];o.style&&(l=r(o.style)?o.style:[o.style]);for(var h=0,u=l.length;h0&&this.pop(h),u},E.prototype.getProperty=function(o){if(this.styleOverrides)for(var l=this.styleOverrides.length-1;l>=0;l--){var h=this.styleOverrides[l];if(c(h)){var u=this.styleDictionary[h];if(u&&!a(u[o])&&!s(u[o]))return u[o]}else if(!a(h[o])&&!s(h[o]))return h[o]}return this.defaultStyle&&this.defaultStyle[o]},Y.exports=E},7601:function(Y,I,n){"use strict";var c=n(6513);function r(E){var o=parseFloat(E);if("number"==typeof o&&!isNaN(o))return o}function a(E){var o;try{o=new c.XmlDocument(E)}catch(l){throw new Error("SVGMeasure: "+l)}if("svg"!==o.name)throw new Error("SVGMeasure: expected document");return o}function s(){}s.prototype.measureSVG=function(E){var o=a(E),l=r(o.attr.width),h=r(o.attr.height);if((null==l||null==h)&&"string"==typeof o.attr.viewBox){var u=o.attr.viewBox.split(/[,\s]+/);if(4!==u.length)throw new Error("Unexpected svg viewbox format, should have 4 entries but found: '"+o.attr.viewBox+"'");null==l&&(l=r(u[2])),null==h&&(h=r(u[3]))}return{width:l,height:h}},s.prototype.writeDimensions=function(E,o){var l=a(E);return l.attr.width=""+o.width,l.attr.height=""+o.height,l.toString()},Y.exports=s},9342:function(Y,I,n){"use strict";var c=n(4498),r=n(6225).isFunction,a=n(6225).isNumber;function s(E){this.tableNode=E}s.prototype.beginTable=function(E){var o,l,f,h=this;this.offsets=(o=this.tableNode)._offsets,this.layout=o._layout,l=E.context().availableWidth-this.offsets.total,c.buildColumnWidths(o.table.widths,l),this.tableWidth=o._offsets.total+(f=0,o.table.widths.forEach(function(g){f+=g._calcWidth}),f),this.rowSpanData=function(){var f=[],g=0,w=0;f.push({left:0,rowSpan:0});for(var Q=0,d=h.tableNode.table.body[0].length;Q0&&v(g+p,Q,0,d.border[0]),void 0!==d.border[2]&&v(g+p,Q+m-1,2,d.border[2]);for(var D=0;D0&&v(g,Q+D,1,d.border[1]),void 0!==d.border[3]&&v(g+F-1,Q+D,3,d.border[3])}}function v(P,T,x,R){var N=f[P][T];N.border=N.border||{},N.border[x]=R}}(this.tableNode.table.body),this.drawHorizontalLine(0,E)},s.prototype.onRowBreak=function(E,o){var l=this;return function(){var h=l.rowPaddingTop+(l.headerRows?0:l.topLineWidth);o.context().availableHeight-=l.reservedAtBottom,o.context().moveDown(h)}},s.prototype.beginRow=function(E,o){this.topLineWidth=this.layout.hLineWidth(E,this.tableNode),this.rowPaddingTop=this.layout.paddingTop(E,this.tableNode),this.bottomLineWidth=this.layout.hLineWidth(E+1,this.tableNode),this.rowPaddingBottom=this.layout.paddingBottom(E,this.tableNode),this.rowCallback=this.onRowBreak(E,o),o.tracker.startTracking("pageChanged",this.rowCallback),this.dontBreakRows&&o.beginUnbreakableBlock(),this.rowTopY=o.context().y,this.reservedAtBottom=this.bottomLineWidth+this.rowPaddingBottom,o.context().availableHeight-=this.reservedAtBottom,o.context().moveDown(this.rowPaddingTop)},s.prototype.drawHorizontalLine=function(E,o,l){var h=this.layout.hLineWidth(E,this.tableNode);if(h){var C,u=this.layout.hLineStyle(E,this.tableNode);u&&u.dash&&(C=u.dash);for(var w,Q,d,e=h/2,f=null,g=this.tableNode.table.body,F=0,m=this.rowSpanData.length;F0&&(T=(w=g[E-1][F]).border?w.border[3]:this.layout.defaultBorder)&&w.borderColor&&(v=w.borderColor[3]),ER;)f.width+=this.rowSpanData[F+R++].width||0;F+=R-1}else if(w&&w.colSpan&&T){for(;w.colSpan>R;)f.width+=this.rowSpanData[F+R++].width||0;F+=R-1}else if(Q&&Q.colSpan&&P){for(;Q.colSpan>R;)f.width+=this.rowSpanData[F+R++].width||0;F+=R-1}else f.width+=this.rowSpanData[F].width||0}var N=(l||0)+e;D&&f&&f.width&&(o.addVector({type:"line",x1:f.left,x2:f.left+f.width,y1:N,y2:N,lineWidth:h,dash:C,lineColor:v},!1,l),f=null,v=null,w=null,Q=null,d=null)}o.context().moveDown(h)}},s.prototype.drawVerticalLine=function(E,o,l,h,u,C,e){var f=this.layout.vLineWidth(h,this.tableNode);if(0!==f){var w,g=this.layout.vLineStyle(h,this.tableNode);g&&g.dash&&(w=g.dash);var d,F,m,Q=this.tableNode.table.body;if(h>0&&(d=Q[C][e])&&d.borderColor&&(d.border?d.border[2]:this.layout.defaultBorder)&&(m=d.borderColor[2]),null==m&&h0&&$--}return J.push({x:C.rowSpanData[C.rowSpanData.length-1].left,index:C.rowSpanData.length-1}),J}(),w=[],Q=l&&l.length>0,d=this.tableNode.table.body;if(w.push({y0:this.rowTopY,page:Q?l[0].prevPage:e}),Q)for(u=0,h=l.length;u0&&!this.headerRows,T=P?0:this.topLineWidth,x=w[p].y0,R=w[p].y1;for(v&&(R+=this.rowPaddingBottom),o.context().page!=w[p].page&&(o.context().page=w[p].page,this.reservedAtBottom=0),u=0,h=g.length;u0&&!N&&(N=(AA=d[E][aA-1]).border?AA.border[2]:this.layout.defaultBorder),aA+11)for(var VA=1;VA1)for(VA=1;VA0&&this.rowSpanData[u].rowSpan--}this.drawHorizontalLine(E+1,o),this.headerRows&&E===this.headerRows-1&&(this.headerRepeatable=o.currentBlockToRepeatable()),this.dontBreakRows&&o.tracker.auto("pageChanged",function(){!C.headerRows&&!1!==C.layout.hLineWhenBroken&&C.drawHorizontalLine(E,o)},function(){o.commitUnbreakableBlock()}),this.headerRepeatable&&(E===this.rowsWithoutPageBreak-1||E===this.tableNode.table.body.length-1)&&(o.commitUnbreakableBlock(),o.pushToRepeatables(this.headerRepeatable),this.cleanUpRepeatables=!0,this.headerRepeatable=null)},Y.exports=s},3497:function(Y,I,n){"use strict";var c=n(6225).isArray,r=n(6225).isPattern,a=n(6225).getPattern;function E(h,u,C,e){var w=h.inlines[0],Q=function(){for(var BA=0,vA=0,xA=h.inlines.length;vABA?vA:BA;return h.inlines[BA]}(),d=function(){for(var BA=0,vA=0,xA=h.inlines.length;vA=0&&r.splice(a,1)}},I.prototype.emit=function(n){var c=Array.prototype.slice.call(arguments,1),r=this.events[n];!r||r.forEach(function(a){a.apply(this,c)})},I.prototype.auto=function(n,c,r){this.startTracking(n,c),r(),this.stopTracking(n,c)},Y.exports=I},2480:function(){},5832:function(){},9862:function(){},964:function(){},3083:function(Y,I,n){"use strict";var c=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],r="undefined"==typeof globalThis?n.g:globalThis;Y.exports=function(){for(var s=[],E=0;E{var Fr=function(St){"use strict";var zn,ht=Object.prototype,Ae=ht.hasOwnProperty,A="function"==typeof Symbol?Symbol:{},Qt=A.iterator||"@@iterator",Y=A.asyncIterator||"@@asyncIterator",I=A.toStringTag||"@@toStringTag";function n(x,R,N){return Object.defineProperty(x,R,{value:N,enumerable:!0,configurable:!0,writable:!0}),x[R]}try{n({},"")}catch(x){n=function(R,N,V){return R[N]=V}}function c(x,R,N,V){var AA=Object.create((R&&R.prototype instanceof h?R:h).prototype),gA=new v(V||[]);return AA._invoke=function(x,R,N){var V=a;return function(AA,gA){if(V===E)throw new Error("Generator is already running");if(V===o){if("throw"===AA)throw gA;return T()}for(N.method=AA,N.arg=gA;;){var MA=N.delegate;if(MA){var cA=m(MA,N);if(cA){if(cA===l)continue;return cA}}if("next"===N.method)N.sent=N._sent=N.arg;else if("throw"===N.method){if(V===a)throw V=o,N.arg;N.dispatchException(N.arg)}else"return"===N.method&&N.abrupt("return",N.arg);V=E;var lA=r(x,R,N);if("normal"===lA.type){if(V=N.done?o:s,lA.arg===l)continue;return{value:lA.arg,done:N.done}}"throw"===lA.type&&(V=o,N.method="throw",N.arg=lA.arg)}}}(x,N,gA),AA}function r(x,R,N){try{return{type:"normal",arg:x.call(R,N)}}catch(V){return{type:"throw",arg:V}}}St.wrap=c;var a="suspendedStart",s="suspendedYield",E="executing",o="completed",l={};function h(){}function u(){}function C(){}var e={};n(e,Qt,function(){return this});var f=Object.getPrototypeOf,g=f&&f(f(P([])));g&&g!==ht&&Ae.call(g,Qt)&&(e=g);var w=C.prototype=h.prototype=Object.create(e);function Q(x){["next","throw","return"].forEach(function(R){n(x,R,function(N){return this._invoke(R,N)})})}function d(x,R){function N(AA,gA,MA,cA){var lA=r(x[AA],x,gA);if("throw"!==lA.type){var BA=lA.arg,vA=BA.value;return vA&&"object"==typeof vA&&Ae.call(vA,"__await")?R.resolve(vA.__await).then(function(xA){N("next",xA,MA,cA)},function(xA){N("throw",xA,MA,cA)}):R.resolve(vA).then(function(xA){BA.value=xA,MA(BA)},function(xA){return N("throw",xA,MA,cA)})}cA(lA.arg)}var V;this._invoke=function(AA,gA){function MA(){return new R(function(cA,lA){N(AA,gA,cA,lA)})}return V=V?V.then(MA,MA):MA()}}function m(x,R){var N=x.iterator[R.method];if(N===zn){if(R.delegate=null,"throw"===R.method){if(x.iterator.return&&(R.method="return",R.arg=zn,m(x,R),"throw"===R.method))return l;R.method="throw",R.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var V=r(N,x.iterator,R.arg);if("throw"===V.type)return R.method="throw",R.arg=V.arg,R.delegate=null,l;var aA=V.arg;return aA?aA.done?(R[x.resultName]=aA.value,R.next=x.nextLoc,"return"!==R.method&&(R.method="next",R.arg=zn),R.delegate=null,l):aA:(R.method="throw",R.arg=new TypeError("iterator result is not an object"),R.delegate=null,l)}function p(x){var R={tryLoc:x[0]};1 in x&&(R.catchLoc=x[1]),2 in x&&(R.finallyLoc=x[2],R.afterLoc=x[3]),this.tryEntries.push(R)}function D(x){var R=x.completion||{};R.type="normal",delete R.arg,x.completion=R}function v(x){this.tryEntries=[{tryLoc:"root"}],x.forEach(p,this),this.reset(!0)}function P(x){if(x){var R=x[Qt];if(R)return R.call(x);if("function"==typeof x.next)return x;if(!isNaN(x.length)){var N=-1,V=function aA(){for(;++N=0;--V){var aA=this.tryEntries[V],AA=aA.completion;if("root"===aA.tryLoc)return N("end");if(aA.tryLoc<=this.prev){var gA=Ae.call(aA,"catchLoc"),MA=Ae.call(aA,"finallyLoc");if(gA&&MA){if(this.prev=0;--N){var V=this.tryEntries[N];if(V.tryLoc<=this.prev&&Ae.call(V,"finallyLoc")&&this.prev=0;--R){var N=this.tryEntries[R];if(N.finallyLoc===x)return this.complete(N.completion,N.afterLoc),D(N),l}},catch:function(x){for(var R=this.tryEntries.length-1;R>=0;--R){var N=this.tryEntries[R];if(N.tryLoc===x){var V=N.completion;if("throw"===V.type){var aA=V.arg;D(N)}return aA}}throw new Error("illegal catch attempt")},delegateYield:function(x,R,N){return this.delegate={iterator:P(x),resultName:R,nextLoc:N},"next"===this.method&&(this.arg=zn),l}},St}(ci.exports);try{regeneratorRuntime=Fr}catch(St){"object"==typeof globalThis?globalThis.regeneratorRuntime=Fr:Function("r","regeneratorRuntime = r")(Fr)}},7757:(ci,Fr,St)=>{ci.exports=St(4979)}}]); \ No newline at end of file diff --git a/frontend/637.e548399381b6dbfd.js b/frontend/637.e548399381b6dbfd.js new file mode 100644 index 00000000..06e7955f --- /dev/null +++ b/frontend/637.e548399381b6dbfd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkRTLApp=self.webpackChunkRTLApp||[]).push([[637],{8637:(kc,lt,g)=>{g.r(lt),g.d(lt,{ECLModule:()=>Nc});var u=g(9808),y=g(9291),kt=g(8878),t=g(5e3),p=g(7093),M=g(5899);function Pt(n,a){1&n&&t._UZ(0,"mat-progress-bar",3)}let rt=(()=>{class n{constructor(e){this.router=e,this.loading=!1,this.router.events.subscribe(i=>{switch(!0){case i instanceof y.OD:this.loading=!0;break;case i instanceof y.m2:case i instanceof y.gk:case i instanceof y.Q3:this.loading=!1}})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-root"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"inner-sidenav-content"],["color","primary","mode","indeterminate",4,"ngIf"],["outlet","outlet"],["color","primary","mode","indeterminate"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Pt,1,0,"mat-progress-bar",1),t._UZ(2,"router-outlet",null,2),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf",i.loading))},directives:[p.xw,p.yH,p.Wh,u.O5,y.lC,M.pW],styles:[""],data:{animation:[kt.g]}}),n})();var d=g(7579),h=g(2722),tt=g(1365),ct=g(534),Z=g(801),l=g(7731),_=g(2501),F=g(5043),b=g(5620),O=g(62),I=g(9444),ut=g(3954),A=g(9224),et=g(2181),S=g(3322),q=g(7423),pt=g(5245);const mt=function(n){return{backgroundColor:n}};function Dt(n,a){if(1&n&&t._UZ(0,"span",6),2&n){const e=t.oxw();t.Q6J("ngStyle",t.VKq(1,mt,null==e.information?null:e.information.color))}}function Ut(n,a){if(1&n&&(t.TgZ(0,"div"),t.TgZ(1,"h4",1),t._uU(2,"Color"),t.qZA(),t.TgZ(3,"div",2),t._UZ(4,"span",7),t._uU(5),t.ALo(6,"uppercase"),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(4),t.Q6J("ngStyle",t.VKq(4,mt,null==e.information?null:e.information.color)),t.xp6(1),t.hij(" ",t.lcZ(6,2,null==e.information?null:e.information.color)," ")}}function Mt(n,a){if(1&n&&(t.TgZ(0,"span",2),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Oqu(e)}}let Jt=(()=>{class n{constructor(e){this.commonService=e,this.chains=[""]}ngOnChanges(){this.chains=[],this.chains.push("Bitcoin "+(this.information.network?this.commonService.titleCase(this.information.network):"Testnet"))}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(O.v))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-node-info"]],inputs:{information:"information",showColorFieldSeparately:"showColorFieldSeparately"},features:[t.TTD],decls:17,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["class","dashboard-node-dot dot",3,"ngStyle",4,"ngIf"],[4,"ngIf"],["class","overflow-wrap dashboard-info-value",4,"ngFor","ngForOf"],[1,"dashboard-node-dot","dot",3,"ngStyle"],[1,"dashboard-node-square",3,"ngStyle"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div"),t.TgZ(2,"h4",1),t._uU(3,"Alias"),t.qZA(),t.TgZ(4,"div",2),t._uU(5),t.YNc(6,Dt,1,3,"span",3),t.qZA(),t.qZA(),t.YNc(7,Ut,7,6,"div",4),t.TgZ(8,"div"),t.TgZ(9,"h4",1),t._uU(10,"Implementation"),t.qZA(),t.TgZ(11,"div",2),t._uU(12),t.qZA(),t.qZA(),t.TgZ(13,"div"),t.TgZ(14,"h4",1),t._uU(15,"Chain"),t.qZA(),t.YNc(16,Mt,2,1,"span",5),t.qZA(),t.qZA()),2&e&&(t.xp6(5),t.hij(" ",null==i.information?null:i.information.alias," "),t.xp6(1),t.Q6J("ngIf",!i.showColorFieldSeparately),t.xp6(1),t.Q6J("ngIf",i.showColorFieldSeparately),t.xp6(5),t.Oqu(null!=i.information&&i.information.lnImplementation||null!=i.information&&i.information.version?(null==i.information?null:i.information.lnImplementation)+" "+(null==i.information?null:i.information.version):""),t.xp6(4),t.Q6J("ngForOf",i.chains))},directives:[p.xw,p.yH,p.Wh,u.O5,u.sg,u.PC,S.Zl],pipes:[u.gd],styles:[""]}),n})();function Yt(n,a){if(1&n&&(t.TgZ(0,"div",2),t.TgZ(1,"div"),t.TgZ(2,"h4",3),t._uU(3,"Lightning"),t.qZA(),t.TgZ(4,"div",4),t._uU(5),t.ALo(6,"number"),t.qZA(),t._UZ(7,"mat-progress-bar",5),t.qZA(),t.TgZ(8,"div"),t.TgZ(9,"h4",3),t._uU(10,"On-chain"),t.qZA(),t.TgZ(11,"div",4),t._uU(12),t.ALo(13,"number"),t.qZA(),t._UZ(14,"mat-progress-bar",5),t.qZA(),t.TgZ(15,"div"),t.TgZ(16,"h4",3),t._uU(17,"Total"),t.qZA(),t.TgZ(18,"div",4),t._uU(19),t.ALo(20,"number"),t.qZA(),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(5),t.hij("",t.lcZ(6,5,e.balances.lightning)," Sats"),t.xp6(2),t.s9C("value",e.balances.lightning/e.balances.total*100),t.xp6(5),t.hij("",t.lcZ(13,7,e.balances.onchain)," Sats"),t.xp6(2),t.s9C("value",e.balances.onchain/e.balances.total*100),t.xp6(5),t.hij("",t.lcZ(20,9,e.balances.total)," Sats")}}function Qt(n,a){if(1&n&&(t.TgZ(0,"div",6),t.TgZ(1,"p"),t._uU(2),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Oqu(e.errorMessage)}}let Ht=(()=>{class n{constructor(){this.balances={onchain:0,lightning:0,total:0}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-balances-info"]],inputs:{balances:"balances",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,i){if(1&e&&(t.YNc(0,Yt,21,11,"div",0),t.YNc(1,Qt,3,1,"ng-template",null,1,t.W1O)),2&e){const o=t.MAs(2);t.Q6J("ngIf",""===(null==i.errorMessage?null:i.errorMessage.trim()))("ngIfElse",o)}},directives:[u.O5,p.xw,p.yH,p.Wh,M.pW],pipes:[u.JJ],styles:[""]}),n})();var x=g(7322),z=g(7238),G=g(4834),Y=g(644);function Bt(n,a){if(1&n&&(t.TgZ(0,"div",19),t.TgZ(1,"span",20),t._uU(2),t.ALo(3,"slice"),t.qZA(),t.TgZ(4,"div",6),t.TgZ(5,"mat-hint",21),t.TgZ(6,"strong",8),t._uU(7,"Local:"),t.qZA(),t._uU(8),t.ALo(9,"number"),t.qZA(),t.TgZ(10,"mat-hint",22),t._UZ(11,"fa-icon",23),t._uU(12),t.ALo(13,"number"),t.qZA(),t.TgZ(14,"mat-hint",24),t.TgZ(15,"strong",8),t._uU(16,"Remote:"),t.qZA(),t._uU(17),t.ALo(18,"number"),t.qZA(),t.qZA(),t._UZ(19,"mat-progress-bar",25),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(3);t.xp6(1),t.s9C("matTooltip",e.alias||e.shortChannelId),t.s9C("matTooltipDisabled",(e.alias||e.shortChannelId).length<26),t.xp6(1),t.AsE("",t.Dn7(3,9,(null==e?null:e.alias)||(null==e?null:e.shortChannelId),0,24),"",((null==e?null:e.alias)||(null==e?null:e.shortChannelId)).length>25?"...":"",""),t.xp6(6),t.hij("",t.xi3(9,13,(null==e?null:e.toLocal)||0,"1.0-0")," Sats"),t.xp6(3),t.Q6J("icon",i.faBalanceScale),t.xp6(1),t.hij(" (",t.lcZ(13,16,(null==e?null:e.balancedness)||0),") "),t.xp6(5),t.hij("",t.xi3(18,18,(null==e?null:e.toRemote)||0,"1.0-0")," Sats"),t.xp6(2),t.s9C("value",e.toLocal&&e.toLocal>0?+e.toLocal/(+e.toLocal+ +e.toRemote)*100:0)}}function zt(n,a){if(1&n&&(t.TgZ(0,"div",17),t.YNc(1,Bt,20,21,"div",18),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngForOf",e.allChannels)}}function Vt(n,a){if(1&n&&(t.TgZ(0,"div",3),t.TgZ(1,"div",4),t.TgZ(2,"span",5),t._uU(3,"Total Capacity"),t.qZA(),t.TgZ(4,"div",6),t.TgZ(5,"mat-hint",7),t.TgZ(6,"strong",8),t._uU(7,"Local:"),t.qZA(),t._uU(8),t.ALo(9,"number"),t.qZA(),t.TgZ(10,"mat-hint",9),t._UZ(11,"fa-icon",10),t._uU(12),t.ALo(13,"number"),t.qZA(),t.TgZ(14,"mat-hint",11),t.TgZ(15,"strong",8),t._uU(16,"Remote:"),t.qZA(),t._uU(17),t.ALo(18,"number"),t.qZA(),t.qZA(),t._UZ(19,"mat-progress-bar",12),t.qZA(),t.TgZ(20,"div",13),t._UZ(21,"mat-divider",14),t.qZA(),t.TgZ(22,"div",15),t.YNc(23,zt,2,1,"div",16),t.qZA(),t.qZA()),2&n){const e=t.oxw(),i=t.MAs(2);t.xp6(8),t.hij("",t.xi3(9,7,(null==e.channelBalances?null:e.channelBalances.localBalance)||0,"1.0-0")," Sats"),t.xp6(3),t.Q6J("icon",e.faBalanceScale),t.xp6(1),t.hij(" (",t.lcZ(13,10,(null==e.channelBalances?null:e.channelBalances.balancedness)||0),") "),t.xp6(5),t.hij("",t.xi3(18,12,(null==e.channelBalances?null:e.channelBalances.remoteBalance)||0,"1.0-0")," Sats"),t.xp6(2),t.s9C("value",null!=e.channelBalances&&e.channelBalances.localBalance&&(null==e.channelBalances?null:e.channelBalances.localBalance)>0?+(null==e.channelBalances?null:e.channelBalances.localBalance)/(+(null==e.channelBalances?null:e.channelBalances.localBalance)+ +(null==e.channelBalances?null:e.channelBalances.remoteBalance))*100:0),t.xp6(4),t.Q6J("ngIf",e.allChannels&&(null==e.allChannels?null:e.allChannels.length)>0)("ngIfElse",i)}}function Gt(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",26),t._uU(1," No channels available. "),t.TgZ(2,"button",27),t.NdJ("click",function(){return t.CHM(e),t.oxw().goToChannels()}),t._uU(3,"Open Channel"),t.qZA(),t.qZA()}}function Xt(n,a){if(1&n&&(t.TgZ(0,"div",28),t.TgZ(1,"p"),t._uU(2),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Oqu(e.errorMessage)}}let $t=(()=>{class n{constructor(e){this.router=e,this.faBalanceScale=Z.DL8,this.faDumbbell=Z.FlN,this.sortBy="Balance Score"}goToChannels(){this.router.navigateByUrl("/ecl/connections")}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-channel-capacity-info"]],inputs:{channelBalances:"channelBalances",allChannels:"allChannels",sortBy:"sortBy",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90"],[1,"font-weight-900","mr-5px"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90"],["matTooltip","Balance Score",1,"mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90"],["mode","determinate","color","accent",1,"dashboard-progress-bar","this-channel-bar",3,"value"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],[1,"channels-capacity-scroll",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90","color-primary"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90","color-primary"],["matTooltip","Balance Score",1,"color-primary","mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90","color-primary"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start",1,"mt-1","w-100"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,i){if(1&e&&(t.YNc(0,Vt,24,15,"div",0),t.YNc(1,Gt,4,0,"ng-template",null,1,t.W1O),t.YNc(3,Xt,3,1,"ng-template",null,2,t.W1O)),2&e){const o=t.MAs(4);t.Q6J("ngIf",""===(null==i.errorMessage?null:i.errorMessage.trim()))("ngIfElse",o)}},directives:[u.O5,p.xw,p.Wh,p.yH,x.bx,I.BN,z.gM,M.pW,G.d,Y.$V,u.sg,q.lW],pipes:[u.JJ,u.OU],styles:[".channels-capacity-scroll[_ngcontent-%COMP%]{width:100%;height:100%;overflow-y:hidden}"]}),n})();function Wt(n,a){if(1&n&&(t.TgZ(0,"div",2),t.TgZ(1,"div",3),t.TgZ(2,"div"),t.TgZ(3,"h4",4),t._uU(4,"Daily"),t.qZA(),t.TgZ(5,"div",5),t._uU(6),t.ALo(7,"number"),t.qZA(),t.qZA(),t.TgZ(8,"div"),t.TgZ(9,"h4",4),t._uU(10,"Weekly"),t.qZA(),t.TgZ(11,"div",5),t._uU(12),t.ALo(13,"number"),t.qZA(),t.qZA(),t.TgZ(14,"div"),t.TgZ(15,"h4",4),t._uU(16,"Monthly"),t.qZA(),t.TgZ(17,"div",5),t._uU(18),t.ALo(19,"number"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(20,"div",3),t.TgZ(21,"div"),t.TgZ(22,"h4",4),t._uU(23,"Transactions"),t.qZA(),t.TgZ(24,"div",5),t._uU(25),t.ALo(26,"number"),t.qZA(),t.qZA(),t.TgZ(27,"div"),t.TgZ(28,"h4",4),t._uU(29,"Transactions"),t.qZA(),t.TgZ(30,"div",5),t._uU(31),t.ALo(32,"number"),t.qZA(),t.qZA(),t.TgZ(33,"div"),t.TgZ(34,"h4",4),t._uU(35,"Transactions"),t.qZA(),t.TgZ(36,"div",5),t._uU(37),t.ALo(38,"number"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(6),t.hij("",t.lcZ(7,6,null==e.fees?null:e.fees.daily_fee)," Sats"),t.xp6(6),t.hij("",t.lcZ(13,8,null==e.fees?null:e.fees.weekly_fee)," Sats"),t.xp6(6),t.hij("",t.lcZ(19,10,null==e.fees?null:e.fees.monthly_fee)," Sats"),t.xp6(7),t.Oqu(t.lcZ(26,12,null==e.fees?null:e.fees.daily_txs)),t.xp6(6),t.Oqu(t.lcZ(32,14,null==e.fees?null:e.fees.weekly_txs)),t.xp6(6),t.Oqu(t.lcZ(38,16,null==e.fees?null:e.fees.monthly_txs))}}function Kt(n,a){if(1&n&&(t.TgZ(0,"div",6),t.TgZ(1,"p"),t._uU(2),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Oqu(e.errorMessage)}}let jt=(()=>{class n{constructor(){this.totalFees=[{name:"Monthly",value:0},{name:"Weekly",value:0},{name:"Daily",value:0}],this.maxFeeValue=100}ngOnChanges(){var e;if(null===(e=this.fees)||void 0===e?void 0:e.monthly_fee){this.totalFees=[{name:"Monthly",value:this.fees.monthly_fee},{name:"Weekly",value:this.fees.weekly_fee},{name:"Daily ",value:this.fees.daily_fee}];const i=Math.ceil(Math.log(this.fees.monthly_fee+1)/Math.LN10),o=Math.pow(10,i-1);this.maxFeeValue=Math.ceil(this.fees.monthly_fee/o)*o/5||100,Object.assign(this,this.totalFees)}else this.totalFees=[{name:"Monthly",value:0},{name:"Weekly",value:0},{name:"Daily",value:0}],this.maxFeeValue=100,Object.assign(this,this.totalFees)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-fee-info"]],inputs:{fees:"fees",errorMessage:"errorMessage"},features:[t.TTD],decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,i){if(1&e&&(t.YNc(0,Wt,39,18,"div",0),t.YNc(1,Kt,3,1,"ng-template",null,1,t.W1O)),2&e){const o=t.MAs(2);t.Q6J("ngIf",""===(null==i.errorMessage?null:i.errorMessage.trim()))("ngIfElse",o)}},directives:[u.O5,p.xw,p.yH,p.Wh],pipes:[u.JJ],styles:[""]}),n})();function te(n,a){if(1&n&&(t.TgZ(0,"div",2),t.TgZ(1,"div",3),t.TgZ(2,"div"),t.TgZ(3,"h4",4),t._uU(4,"Active"),t.qZA(),t.TgZ(5,"div",5),t._UZ(6,"span",6),t._uU(7),t.ALo(8,"number"),t.qZA(),t.qZA(),t.TgZ(9,"div"),t.TgZ(10,"h4",4),t._uU(11,"Pending"),t.qZA(),t.TgZ(12,"div",5),t._UZ(13,"span",7),t._uU(14),t.ALo(15,"number"),t.qZA(),t.qZA(),t.TgZ(16,"div"),t.TgZ(17,"h4",4),t._uU(18,"Inactive"),t.qZA(),t.TgZ(19,"div",5),t._UZ(20,"span",8),t._uU(21),t.ALo(22,"number"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(23,"div",3),t.TgZ(24,"div"),t.TgZ(25,"h4",4),t._uU(26,"Capacity"),t.qZA(),t.TgZ(27,"div",5),t._uU(28),t.ALo(29,"number"),t.qZA(),t.qZA(),t.TgZ(30,"div"),t.TgZ(31,"h4",4),t._uU(32,"Capacity"),t.qZA(),t.TgZ(33,"div",5),t._uU(34),t.ALo(35,"number"),t.qZA(),t.qZA(),t.TgZ(36,"div"),t.TgZ(37,"h4",4),t._uU(38,"Capacity"),t.qZA(),t.TgZ(39,"div",5),t._uU(40),t.ALo(41,"number"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(7),t.Oqu(t.lcZ(8,6,(null==e.channelsStatus.active?null:e.channelsStatus.active.channels)||0)),t.xp6(7),t.Oqu(t.lcZ(15,8,(null==e.channelsStatus.pending?null:e.channelsStatus.pending.channels)||0)),t.xp6(7),t.Oqu(t.lcZ(22,10,(null==e.channelsStatus.inactive?null:e.channelsStatus.inactive.channels)||0)),t.xp6(7),t.hij("",t.lcZ(29,12,(null==e.channelsStatus.active?null:e.channelsStatus.active.capacity)||0)," Sats"),t.xp6(6),t.hij("",t.lcZ(35,14,(null==e.channelsStatus.pending?null:e.channelsStatus.pending.capacity)||0)," Sats"),t.xp6(6),t.hij("",t.lcZ(41,16,(null==e.channelsStatus.inactive?null:e.channelsStatus.inactive.capacity)||0)," Sats")}}function ee(n,a){if(1&n&&(t.TgZ(0,"div",9),t.TgZ(1,"p"),t._uU(2),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Oqu(e.errorMessage)}}let ne=(()=>{class n{constructor(){this.channelsStatus={}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-channel-status-info"]],inputs:{channelsStatus:"channelsStatus",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],[1,"dot","tiny-dot","green"],[1,"dot","tiny-dot","yellow"],[1,"dot","tiny-dot","grey"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,i){if(1&e&&(t.YNc(0,te,42,18,"div",0),t.YNc(1,ee,3,1,"ng-template",null,1,t.W1O)),2&e){const o=t.MAs(2);t.Q6J("ngIf",""===(null==i.errorMessage?null:i.errorMessage.trim()))("ngIfElse",o)}},directives:[u.O5,p.xw,p.yH,p.Wh],pipes:[u.JJ],styles:[""]}),n})();function ie(n,a){if(1&n&&(t.TgZ(0,"mat-hint",19),t.TgZ(1,"strong",20),t._uU(2,"Capacity: "),t.qZA(),t._uU(3),t.ALo(4,"number"),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(3),t.hij("",t.xi3(4,1,e.toRemote||0,"1.0-0")," Sats")}}function ae(n,a){if(1&n&&(t.TgZ(0,"mat-hint",19),t.TgZ(1,"strong",20),t._uU(2,"Capacity: "),t.qZA(),t._uU(3),t.ALo(4,"number"),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(3),t.hij("",t.xi3(4,1,e.toLocal||0,"1.0-0")," Sats")}}function oe(n,a){if(1&n&&t._UZ(0,"mat-progress-bar",21),2&n){const e=t.oxw().$implicit,i=t.oxw(3);t.s9C("value",i.totalLiquidity>0?(+e.toRemote||0)/i.totalLiquidity*100:0)}}function se(n,a){if(1&n&&t._UZ(0,"mat-progress-bar",21),2&n){const e=t.oxw().$implicit,i=t.oxw(3);t.s9C("value",i.totalLiquidity>0?(+e.toLocal||0)/i.totalLiquidity*100:0)}}function le(n,a){if(1&n&&(t.TgZ(0,"div",14),t.TgZ(1,"span",15),t._uU(2),t.ALo(3,"slice"),t.qZA(),t.TgZ(4,"div",16),t.YNc(5,ie,5,4,"mat-hint",17),t.YNc(6,ae,5,4,"mat-hint",17),t.qZA(),t.YNc(7,oe,1,1,"mat-progress-bar",18),t.YNc(8,se,1,1,"mat-progress-bar",18),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(3);t.xp6(1),t.s9C("matTooltip",e.alias||e.shortChannelId),t.s9C("matTooltipDisabled",(e.alias||e.shortChannelId).length<26),t.xp6(1),t.AsE("",t.Dn7(3,8,e.alias||e.shortChannelId,0,24),"",(e.alias||e.shortChannelId).length>25?"...":"",""),t.xp6(3),t.Q6J("ngIf","In"===i.direction),t.xp6(1),t.Q6J("ngIf","Out"===i.direction),t.xp6(1),t.Q6J("ngIf","In"===i.direction),t.xp6(1),t.Q6J("ngIf","Out"===i.direction)}}function re(n,a){if(1&n&&(t.TgZ(0,"div",12),t.YNc(1,le,9,12,"div",13),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngForOf",e.allChannels)}}const ce=function(n,a,e){return{"mb-4":n,"mb-2":a,"mb-1":e}};function ue(n,a){if(1&n&&(t.TgZ(0,"div",3),t.TgZ(1,"div",4),t.TgZ(2,"span",5),t._uU(3,"Total Capacity"),t.qZA(),t.TgZ(4,"mat-hint",6),t._uU(5),t.ALo(6,"number"),t.qZA(),t._UZ(7,"mat-progress-bar",7),t.qZA(),t.TgZ(8,"div",8),t._UZ(9,"mat-divider",9),t.qZA(),t.TgZ(10,"div",10),t.YNc(11,re,2,1,"div",11),t.qZA(),t.qZA()),2&n){const e=t.oxw(),i=t.MAs(2);t.Q6J("ngClass",t.kEZ(7,ce,e.screenSize===e.screenSizeEnum.XS||e.screenSize===e.screenSizeEnum.SM,e.screenSize===e.screenSizeEnum.MD,e.screenSize===e.screenSizeEnum.LG||e.screenSize===e.screenSizeEnum.XL)),t.xp6(5),t.hij("",t.xi3(6,4,e.totalLiquidity,"1.0-0")," Sats"),t.xp6(6),t.Q6J("ngIf",e.allChannels&&e.allChannels.length>0)("ngIfElse",i)}}function pe(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"button",24),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).goToChannels()}),t._uU(1,"Open Channel"),t.qZA()}}function me(n,a){if(1&n&&(t.TgZ(0,"div",22),t._uU(1," No channels available. "),t.YNc(2,pe,2,0,"button",23),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Q6J("ngIf","Out"===e.direction)}}function de(n,a){if(1&n&&(t.TgZ(0,"div",25),t.TgZ(1,"p"),t._uU(2),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Oqu(e.errorMessage)}}let he=(()=>{class n{constructor(e,i){this.router=e,this.commonService=i,this.screenSize="",this.screenSizeEnum=l.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}goToChannels(){this.router.navigateByUrl("/ecl/connections")}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(y.F0),t.Y36(O.v))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-channel-liquidity-info"]],inputs:{direction:"direction",totalLiquidity:"totalLiquidity",allChannels:"allChannels",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",3,"ngClass",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",3,"ngClass"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],[1,"font-size-90"],["mode","determinate","color","accent","value","100",1,"dashboard-progress-bar","this-channel-bar"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],["fxLayout","column","fxFlex.gt-sm","88","fxFlex","84","fxLayoutAlign","start start",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100","class","w-100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100",1,"w-100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","100","fxLayoutAlign","start center","class","font-size-90 color-primary",4,"ngIf"],["class","dashboard-progress-bar","mode","determinate",3,"value",4,"ngIf"],["fxFlex","100","fxLayoutAlign","start center",1,"font-size-90","color-primary"],[1,"font-weight-900","mr-5px"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","1",3,"click",4,"ngIf"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(e,i){if(1&e&&(t.YNc(0,ue,12,11,"div",0),t.YNc(1,me,3,1,"ng-template",null,1,t.W1O),t.YNc(3,de,3,1,"ng-template",null,2,t.W1O)),2&e){const o=t.MAs(4);t.Q6J("ngIf",""===(null==i.errorMessage?null:i.errorMessage.trim()))("ngIfElse",o)}},directives:[u.O5,p.xw,p.Wh,p.yH,u.mk,S.oO,x.bx,M.pW,G.d,Y.$V,u.sg,z.gM,q.lW],pipes:[u.JJ,u.OU],styles:[""]}),n})();var N=g(3251),J=g(9300),L=g(6087),T=g(4847),r=g(2075),D=g(8966),R=g(2994),B=g(6642),m=g(3075),U=g(7531),X=g(3390),$=g(6534),k=g(4107),Q=g(508);function ge(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Description is required."),t.qZA())}function fe(n,a){if(1&n&&(t.TgZ(0,"mat-option",25),t._uU(1),t.ALo(2,"titlecase"),t.qZA()),2&n){const e=a.$implicit;t.Q6J("value",e),t.xp6(1),t.Oqu(t.lcZ(2,2,e))}}function _e(n,a){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.invoiceError)}}function Ce(n,a){if(1&n&&(t.TgZ(0,"div",26),t._UZ(1,"fa-icon",27),t.YNc(2,_e,2,1,"span",11),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("icon",e.faExclamationTriangle),t.xp6(1),t.Q6J("ngIf",""!==e.invoiceError)}}let xe=(()=>{class n{constructor(e,i,o,s,c,f){this.dialogRef=e,this.data=i,this.store=o,this.decimalPipe=s,this.commonService=c,this.actions=f,this.faExclamationTriangle=Z.eHv,this.selNode={},this.description="",this.invoiceValue=null,this.invoiceValueHint="",this.invoicePaymentReq="",this.information={},this.private=!1,this.expiryStep=100,this.pageSize=l.IV,this.timeUnitEnum=l.Qk,this.timeUnits=l.LO,this.selTimeUnit=l.Qk.SECS,this.invoiceError="",this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.pageSize=this.data.pageSize,this.store.select(_.LR).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.selNode=e}),this.store.select(_.yD).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.information=e}),this.actions.pipe((0,h.R)(this.unSubs[2]),(0,J.h)(e=>e.type===l.lr.UPDATE_API_CALL_STATUS_ECL)).subscribe(e=>{e.type===l.lr.UPDATE_API_CALL_STATUS_ECL&&"CreateInvoice"===e.payload.action&&(e.payload.status===l.Bn.ERROR&&(this.invoiceError=e.payload.message),e.payload.status===l.Bn.COMPLETED&&this.dialogRef.close())})}onAddInvoice(e){if(this.invoiceError="",!this.description)return!0;let i=this.expiry?this.expiry:3600;this.selTimeUnit!==l.Qk.SECS&&(i=this.commonService.convertTime(this.expiry,this.selTimeUnit,l.Qk.SECS));let o=null;o=this.invoiceValue?{description:this.description,expireIn:i,amountMsat:1e3*this.invoiceValue}:{description:this.description,expireIn:i},this.store.dispatch((0,R.Z$)({payload:o}))}resetData(){this.description="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint="",this.selTimeUnit=l.Qk.SECS,this.invoiceError=""}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,l.NT.SATS,l.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,h.R)(this.unSubs[3])).subscribe({next:e=>{this.invoiceValueHint="= "+e.symbol+this.decimalPipe.transform(e.OTHER,l.Xz.OTHER)+" "+e.unit},error:e=>{this.invoiceValueHint="Conversion Error: "+e}}))}onTimeUnitChange(e){this.expiry&&this.selTimeUnit!==e.value&&(this.expiry=this.commonService.convertTime(this.expiry,this.selTimeUnit,e.value)),this.selTimeUnit=e.value}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(D.so),t.Y36(D.WI),t.Y36(b.yh),t.Y36(u.JJ),t.Y36(O.v),t.Y36(B.eX))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-create-invoices"]],decls:35,vars:16,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","start space-between","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","autoFocus","","placeholder","Description","tabindex","2","name","description","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","space-between start","fxFlex","100"],["fxFlex","40"],["matInput","","placeholder","Amount","type","number","tabindex","3","name","invValue",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxFlex","30"],["matInput","","placeholder","Expiry","type","number","name","exp","tabindex","4",3,"ngModel","step","min","ngModelChange"],["fxFlex","26"],["tabindex","5","name","timeUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","7","type","reset",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","8",3,"click"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(e,i){if(1&e){const o=t.EpF();t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t.TgZ(4,"span",4),t._uU(5,"Create Invoice"),t.qZA(),t.qZA(),t.TgZ(6,"button",5),t._uU(7,"X"),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",6),t.TgZ(9,"form",7,8),t.TgZ(11,"mat-form-field",9),t.TgZ(12,"input",10),t.NdJ("ngModelChange",function(c){return i.description=c}),t.qZA(),t.YNc(13,ge,2,0,"mat-error",11),t.qZA(),t.TgZ(14,"div",12),t.TgZ(15,"mat-form-field",13),t.TgZ(16,"input",14),t.NdJ("ngModelChange",function(c){return i.invoiceValue=c})("keyup",function(){return i.onInvoiceValueChange()}),t.qZA(),t.TgZ(17,"span",15),t._uU(18," Sats "),t.qZA(),t.TgZ(19,"mat-hint"),t._uU(20),t.qZA(),t.qZA(),t.TgZ(21,"mat-form-field",16),t.TgZ(22,"input",17),t.NdJ("ngModelChange",function(c){return i.expiry=c}),t.qZA(),t.TgZ(23,"span",15),t._uU(24),t.ALo(25,"titlecase"),t.qZA(),t.qZA(),t.TgZ(26,"mat-form-field",18),t.TgZ(27,"mat-select",19),t.NdJ("selectionChange",function(c){return i.onTimeUnitChange(c)}),t.YNc(28,fe,3,4,"mat-option",20),t.qZA(),t.qZA(),t.qZA(),t.YNc(29,Ce,3,2,"div",21),t.TgZ(30,"div",22),t.TgZ(31,"button",23),t.NdJ("click",function(){return i.resetData()}),t._uU(32,"Clear Field"),t.qZA(),t.TgZ(33,"button",24),t.NdJ("click",function(){t.CHM(o);const c=t.MAs(10);return i.onAddInvoice(c)}),t._uU(34,"Create Invoice"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()}2&e&&(t.xp6(6),t.Q6J("mat-dialog-close",!1),t.xp6(6),t.Q6J("ngModel",i.description),t.xp6(1),t.Q6J("ngIf",!i.description),t.xp6(3),t.Q6J("ngModel",i.invoiceValue)("step",100)("min",1),t.xp6(4),t.Oqu(i.invoiceValueHint),t.xp6(2),t.Q6J("ngModel",i.expiry)("step",i.selTimeUnit===i.timeUnitEnum.SECS?300:i.selTimeUnit===i.timeUnitEnum.MINS?10:i.selTimeUnit===i.timeUnitEnum.HOURS?2:1)("min",1),t.xp6(2),t.hij(" ",t.lcZ(25,14,i.selTimeUnit)," "),t.xp6(3),t.Q6J("value",i.selTimeUnit),t.xp6(1),t.Q6J("ngForOf",i.timeUnits),t.xp6(1),t.Q6J("ngIf",""!==i.invoiceError))},directives:[p.xw,p.yH,A.dk,p.Wh,q.lW,D.ZT,A.dn,m._Y,m.JL,m.F,x.KE,U.Nt,m.Fj,X.h,m.Q7,m.JJ,m.On,u.O5,m.wV,m.qQ,$.q,x.R9,x.bx,k.gD,u.sg,x.TO,Q.ey,I.BN],pipes:[u.rS],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();var ye=g(7766),v=g(7861);function Ze(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Description is required."),t.qZA())}function Te(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"form",4,5),t.TgZ(2,"mat-form-field",6),t.TgZ(3,"input",7),t.NdJ("ngModelChange",function(o){return t.CHM(e),t.oxw().description=o}),t.qZA(),t.YNc(4,Ze,2,0,"mat-error",8),t.qZA(),t.TgZ(5,"mat-form-field",9),t.TgZ(6,"input",10,11),t.NdJ("ngModelChange",function(o){return t.CHM(e),t.oxw().invoiceValue=o})("keyup",function(){return t.CHM(e),t.oxw().onInvoiceValueChange()}),t.qZA(),t.TgZ(8,"span",12),t._uU(9," Sats "),t.qZA(),t.TgZ(10,"mat-hint"),t._uU(11),t.qZA(),t.qZA(),t.TgZ(12,"div",13),t.TgZ(13,"button",14),t.NdJ("click",function(){return t.CHM(e),t.oxw().resetData()}),t._uU(14,"Clear Field"),t.qZA(),t.TgZ(15,"button",15),t.NdJ("click",function(){t.CHM(e);const o=t.MAs(1);return t.oxw().onAddInvoice(o)}),t._uU(16,"Create Invoice"),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=t.oxw();t.xp6(3),t.Q6J("ngModel",e.description),t.xp6(1),t.Q6J("ngIf",!e.description),t.xp6(2),t.Q6J("ngModel",e.invoiceValue)("step",100)("min",1),t.xp6(5),t.Oqu(e.invoiceValueHint)}}function Ae(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",16),t.TgZ(1,"button",17),t.NdJ("click",function(){return t.CHM(e),t.oxw().openCreateInvoiceModal()}),t._uU(2,"Create Invoice"),t.qZA(),t.qZA()}}function Le(n,a){1&n&&t._UZ(0,"mat-progress-bar",47)}function ve(n,a){1&n&&(t.TgZ(0,"th",48),t._uU(1," Date Created "),t.qZA())}const nt=function(n){return{"mr-0":n}};function be(n,a){if(1&n&&t._UZ(0,"span",53),2&n){const e=t.oxw(3);t.Q6J("ngClass",t.VKq(1,nt,e.screenSize===e.screenSizeEnum.XS))}}function Se(n,a){if(1&n&&t._UZ(0,"span",54),2&n){const e=t.oxw(3);t.Q6J("ngClass",t.VKq(1,nt,e.screenSize===e.screenSizeEnum.XS))}}function we(n,a){if(1&n&&t._UZ(0,"span",55),2&n){const e=t.oxw(3);t.Q6J("ngClass",t.VKq(1,nt,e.screenSize===e.screenSizeEnum.XS))}}function Ee(n,a){if(1&n&&(t.TgZ(0,"td",49),t.YNc(1,be,1,3,"span",50),t.YNc(2,Se,1,3,"span",51),t.YNc(3,we,1,3,"span",52),t._uU(4),t.ALo(5,"date"),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Q6J("ngIf","received"===e.status),t.xp6(1),t.Q6J("ngIf","unpaid"===e.status),t.xp6(1),t.Q6J("ngIf",!e.status||"expired"===e.status||"unknown"===e.status),t.xp6(1),t.hij(" ",t.xi3(5,4,1e3*e.timestamp,"dd/MMM/YYYY HH:mm")," ")}}function qe(n,a){1&n&&(t.TgZ(0,"th",48),t._uU(1," Date Settled "),t.qZA())}function Ie(n,a){if(1&n&&(t.TgZ(0,"td",49),t._uU(1),t.ALo(2,"date"),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Oqu(t.xi3(2,1,1e3*e.receivedAt,"dd/MMM/YYYY HH:mm")||"-")}}function Fe(n,a){1&n&&(t.TgZ(0,"th",48),t._uU(1," Description "),t.qZA())}const Oe=function(n){return{"max-width":n}};function Re(n,a){if(1&n&&(t.TgZ(0,"td",49),t.TgZ(1,"div",56),t.TgZ(2,"span",57),t._uU(3),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("ngStyle",t.VKq(2,Oe,i.screenSize===i.screenSizeEnum.XS?"10rem":"32rem")),t.xp6(2),t.Oqu(e.description)}}function Ne(n,a){1&n&&(t.TgZ(0,"th",58),t._uU(1," Amount (Sats) "),t.qZA())}function ke(n,a){if(1&n&&(t.TgZ(0,"td",59),t.TgZ(1,"span",60),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",e.amount?t.xi3(3,1,e.amount,"1.0-0"):"-","")}}function Pe(n,a){1&n&&(t.TgZ(0,"th",58),t._uU(1," Amount Settled (Sats) "),t.qZA())}function De(n,a){if(1&n&&(t.TgZ(0,"td",59),t.TgZ(1,"span",60),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",e.amountSettled?t.xi3(3,1,e.amountSettled,"1.0-0"):"-","")}}function Ue(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"th",61),t.TgZ(1,"div",62),t.TgZ(2,"mat-select",63),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",64),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).onDownloadCSV()}),t._uU(5,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}const Me=function(n){return{"px-3":n}};function Je(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",65),t.TgZ(1,"div",66),t.TgZ(2,"mat-select",67),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",64),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw(2).onInvoiceClick(s)}),t._uU(5,"View Info"),t.qZA(),t.TgZ(6,"mat-option",64),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw(2).onRefreshInvoice(s)}),t._uU(7,"Refresh"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=t.oxw(2);t.Q6J("ngClass",t.VKq(1,Me,e.screenSize!==e.screenSizeEnum.XS))}}function Ye(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No invoice available."),t.qZA())}function Qe(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting invoices..."),t.qZA())}function He(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Oqu(e.errorMessage)}}function Be(n,a){if(1&n&&(t.TgZ(0,"td",68),t.YNc(1,Ye,2,0,"p",8),t.YNc(2,Qe,2,0,"p",8),t.YNc(3,He,2,1,"p",8),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",(!(null!=e.invoices&&e.invoices.data)||(null==e.invoices||null==e.invoices.data?null:e.invoices.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.invoices&&e.invoices.data)||(null==e.invoices||null==e.invoices.data?null:e.invoices.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.invoices&&e.invoices.data)||(null==e.invoices||null==e.invoices.data?null:e.invoices.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}const ze=function(n){return{"display-none":n}};function Ve(n,a){if(1&n&&t._UZ(0,"tr",69),2&n){const e=t.oxw(2);t.Q6J("ngClass",t.VKq(1,ze,(null==e.invoices?null:e.invoices.data)&&(null==e.invoices||null==e.invoices.data?null:e.invoices.data.length)>0))}}function Ge(n,a){1&n&&t._UZ(0,"tr",70)}function Xe(n,a){1&n&&t._UZ(0,"tr",71)}const $e=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},We=function(){return["no_invoice"]};function Ke(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",18),t.TgZ(1,"div",19),t.TgZ(2,"div",20),t._UZ(3,"fa-icon",21),t.TgZ(4,"span",22),t._uU(5,"Invoices History"),t.qZA(),t.qZA(),t.TgZ(6,"mat-form-field",23),t.TgZ(7,"input",24),t.NdJ("keyup",function(){return t.CHM(e),t.oxw().applyFilter()})("ngModelChange",function(o){return t.CHM(e),t.oxw().selFilter=o}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"div",25),t.YNc(9,Le,1,0,"mat-progress-bar",26),t.TgZ(10,"table",27,28),t.ynx(12,29),t.YNc(13,ve,2,0,"th",30),t.YNc(14,Ee,6,7,"td",31),t.BQk(),t.ynx(15,32),t.YNc(16,qe,2,0,"th",30),t.YNc(17,Ie,3,4,"td",31),t.BQk(),t.ynx(18,33),t.YNc(19,Fe,2,0,"th",30),t.YNc(20,Re,4,4,"td",31),t.BQk(),t.ynx(21,34),t.YNc(22,Ne,2,0,"th",35),t.YNc(23,ke,4,4,"td",36),t.BQk(),t.ynx(24,37),t.YNc(25,Pe,2,0,"th",35),t.YNc(26,De,4,4,"td",36),t.BQk(),t.ynx(27,38),t.YNc(28,Ue,6,0,"th",39),t.YNc(29,Je,8,3,"td",40),t.BQk(),t.ynx(30,41),t.YNc(31,Be,4,3,"td",42),t.BQk(),t.YNc(32,Ve,1,3,"tr",43),t.YNc(33,Ge,1,0,"tr",44),t.YNc(34,Xe,1,0,"tr",45),t.qZA(),t.qZA(),t._UZ(35,"mat-paginator",46),t.qZA()}if(2&n){const e=t.oxw();t.xp6(3),t.Q6J("icon",e.faHistory),t.xp6(4),t.Q6J("ngModel",e.selFilter),t.xp6(2),t.Q6J("ngIf",e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",e.invoices)("ngClass",t.VKq(12,$e,""!==e.errorMessage)),t.xp6(22),t.Q6J("matFooterRowDef",t.DdM(14,We)),t.xp6(1),t.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",e.displayedColumns),t.xp6(1),t.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS)}}let dt=(()=>{class n{constructor(e,i,o,s,c,f){this.logger=e,this.store=i,this.decimalPipe=o,this.commonService=s,this.datePipe=c,this.actions=f,this.calledFrom="transactions",this.faHistory=Z.qO$,this.selNode={},this.newlyAddedInvoiceMemo="",this.newlyAddedInvoiceValue=0,this.description="",this.invoiceValue=null,this.invoiceValueHint="",this.displayedColumns=[],this.invoicePaymentReq="",this.invoiceJSONArr=[],this.information={},this.flgSticky=!1,this.selFilter="",this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","actions"]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","amountSettled","actions"]):(this.flgSticky=!0,this.displayedColumns=["timestamp","receivedAt","description","amount","amountSettled","actions"])}ngOnInit(){this.store.select(_.LR).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.selNode=e}),this.store.select(_.yD).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.information=e}),this.store.select(_.Ef).pipe((0,h.R)(this.unSubs[2])).subscribe(e=>{this.errorMessage="",this.apiCallStatus=e.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.invoiceJSONArr=e.invoices&&e.invoices.length>0?e.invoices:[],this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoiceJSONArr),this.logger.info(e)}),this.actions.pipe((0,h.R)(this.unSubs[3]),(0,J.h)(e=>e.type===l.lr.SET_LOOKUP_ECL||e.type===l.lr.UPDATE_API_CALL_STATUS_ECL)).subscribe(e=>{e.type===l.lr.SET_LOOKUP_ECL&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&e.payload&&(this.updateInvoicesData(JSON.parse(JSON.stringify(e.payload))),this.loadInvoicesTable(this.invoiceJSONArr))})}ngAfterViewInit(){this.invoiceJSONArr&&this.invoiceJSONArr.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoiceJSONArr)}openCreateInvoiceModal(){this.store.dispatch((0,v.qR)({payload:{data:{pageSize:this.pageSize,component:xe}}}))}onAddInvoice(e){if(!this.description)return!0;const i=this.expiry?this.expiry:3600;this.newlyAddedInvoiceMemo="ulbl"+Math.random().toString(36).slice(2)+Date.now(),this.newlyAddedInvoiceValue=this.invoiceValue;let o=null;o=this.invoiceValue?{description:this.description,expireIn:i,amountMsat:1e3*this.invoiceValue}:{description:this.description,expireIn:i},this.store.dispatch((0,R.Z$)({payload:o})),this.resetData()}onInvoiceClick(e){this.store.dispatch((0,v.qR)({payload:{data:{invoice:e,newlyAdded:!1,component:ye.R}}}))}onRefreshInvoice(e){this.store.dispatch((0,R.n7)({payload:e.paymentHash}))}updateInvoicesData(e){this.invoiceJSONArr=this.invoiceJSONArr.map(i=>i.paymentHash===e.paymentHash?e:i)}loadInvoicesTable(e){this.invoices=new r.by(e?[...e]:[]),this.invoices.sortingDataAccessor=(i,o)=>i[o]&&isNaN(i[o])?i[o].toLocaleLowerCase():i[o]?+i[o]:null,this.invoices.sort=this.sort,this.invoices.filterPredicate=(i,o)=>((i.timestamp?this.datePipe.transform(new Date(1e3*i.timestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(i).toLowerCase()).includes(o),this.invoices.paginator=this.paginator,this.applyFilter()}resetData(){this.description="",this.invoiceValue=null,this.expiry=null,this.invoiceValueHint=""}applyFilter(){this.invoices.filter=this.selFilter.trim().toLowerCase()}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,l.NT.SATS,l.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,h.R)(this.unSubs[4])).subscribe({next:e=>{this.invoiceValueHint="= "+e.symbol+this.decimalPipe.transform(e.OTHER,l.Xz.OTHER)+" "+e.unit},error:e=>{this.invoiceValueHint="Conversion Error: "+e}}))}onDownloadCSV(){this.invoices.data&&this.invoices.data.length>0&&this.commonService.downloadFile(this.invoices.data,"Invoices")}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(b.yh),t.Y36(u.JJ),t.Y36(O.v),t.Y36(u.uU),t.Y36(B.eX))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-lightning-invoices"]],viewQuery:function(e,i){if(1&e&&(t.Gf(T.YE,5),t.Gf(L.NW,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.sort=o.first),t.iGM(o=t.CRH())&&(i.paginator=o.first)}},inputs:{calledFrom:"calledFrom"},features:[t._Bn([{provide:L.ye,useValue:(0,l.pt)("Invoices")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","space-between stretch"],["matInput","","placeholder","Description","tabindex","2","name","description","required","true",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","3","name","invValue",3,"ngModel","step","min","ngModelChange","keyup"],["invcVal","ngModel"],["matSuffix",""],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","9","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","10",3,"click"],["fxLayout","row"],["mat-flat-button","","color","primary","tabindex","8",3,"click"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","timestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","receivedAt"],["matColumnDef","description"],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before","class","pr-3",4,"matHeaderCellDef"],["mat-cell","","class","pr-3",4,"matCellDef"],["matColumnDef","amountSettled"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass",4,"matCellDef"],["matColumnDef","no_invoice"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot green","matTooltip","Received","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Unpaid","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Expired/Unknown","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Received","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Unpaid","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],["matTooltip","Expired/Unknown","matTooltipPosition","right",1,"dot","red",3,"ngClass"],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",1,"pr-3"],["mat-cell","",1,"pr-3"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","4",1,"mr-0"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Te,17,6,"form",1),t.YNc(2,Ae,3,0,"div",2),t.YNc(3,Ke,36,15,"div",3),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf","home"===i.calledFrom),t.xp6(1),t.Q6J("ngIf","transactions"===i.calledFrom),t.xp6(1),t.Q6J("ngIf","transactions"===i.calledFrom))},directives:[p.xw,p.yH,p.Wh,u.O5,m._Y,m.JL,m.F,x.KE,U.Nt,m.Fj,m.Q7,m.JJ,m.On,m.wV,m.qQ,$.q,x.R9,x.bx,q.lW,x.TO,I.BN,Y.$V,r.BZ,T.YE,u.mk,S.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,L.NW,M.pW,r.ge,T.nU,r.ev,z.gM,u.PC,S.Zl,k.gD,k.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk],pipes:[u.uU,u.JJ],styles:[".mat-column-description[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-description[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();var H=g(5698),it=g(3289),ht=g(8104);const je=["paymentReq"];function tn(n,a){if(1&n&&(t.TgZ(0,"mat-hint"),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Oqu(e.paymentDecodedHint)}}function en(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Payment request is required."),t.qZA())}function nn(n,a){if(1&n&&(t.TgZ(0,"mat-error"),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Oqu(e.paymentDecodedHint)}}function an(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Payment amount is required."),t.qZA())}function on(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"mat-form-field",1),t.TgZ(1,"input",17,18),t.NdJ("ngModelChange",function(o){return t.CHM(e),t.oxw().paymentAmount=o})("change",function(o){return t.CHM(e),t.oxw().onAmountChange(o)}),t.qZA(),t.TgZ(3,"mat-hint"),t._uU(4,"It is a zero amount invoice, enter amount to be paid."),t.qZA(),t.YNc(5,an,2,0,"mat-error",11),t.qZA()}if(2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngModel",e.paymentAmount),t.xp6(4),t.Q6J("ngIf",!e.paymentAmount)}}function sn(n,a){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.paymentError)}}function ln(n,a){if(1&n&&(t.TgZ(0,"div",19),t._UZ(1,"fa-icon",20),t.YNc(2,sn,2,1,"span",11),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("icon",e.faExclamationTriangle),t.xp6(1),t.Q6J("ngIf",""!==e.paymentError)}}let rn=(()=>{class n{constructor(e,i,o,s,c,f,P,C){this.dialogRef=e,this.store=i,this.eclEffects=o,this.logger=s,this.commonService=c,this.decimalPipe=f,this.actions=P,this.dataService=C,this.faExclamationTriangle=Z.eHv,this.selNode={},this.paymentDecoded={},this.zeroAmtInvoice=!1,this.paymentAmount=null,this.paymentRequest="",this.paymentDecodedHint="",this.selActiveChannel={},this.activeChannels={},this.feeLimit=null,this.selFeeLimitType=l.Vc[0],this.feeLimitTypes=l.Vc,this.paymentError="",this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.store.select(_.LR).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.selNode=e}),this.store.select(_.Xz).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.activeChannels=e.activeChannels,this.logger.info(e)}),this.actions.pipe((0,h.R)(this.unSubs[1]),(0,J.h)(e=>e.type===l.lr.UPDATE_API_CALL_STATUS_ECL||e.type===l.lr.SEND_PAYMENT_STATUS_ECL)).subscribe(e=>{e.type===l.lr.SEND_PAYMENT_STATUS_ECL&&this.dialogRef.close(),e.type===l.lr.UPDATE_API_CALL_STATUS_ECL&&e.payload.status===l.Bn.ERROR&&"SendPayment"===e.payload.action&&(delete this.paymentDecoded.amount,this.paymentError=e.payload.message)})}onSendPayment(){if(!this.paymentRequest)return!0;this.paymentDecoded.timestamp?this.sendPayment():(this.paymentAmount=null,this.paymentError="",this.paymentDecodedHint="",this.paymentReq.control.setErrors(null),this.dataService.decodePayment(this.paymentRequest,!0).pipe((0,H.q)(1)).subscribe({next:e=>{this.paymentDecoded=e,this.paymentDecoded.timestamp&&!this.paymentDecoded.amount?(this.paymentDecoded.amount=0,this.zeroAmtInvoice=!0,this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description):(this.zeroAmtInvoice=!1,this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.amount,l.NT.SATS,l.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,h.R)(this.unSubs[2])).subscribe({next:i=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats ("+i.symbol+this.decimalPipe.transform(i.OTHER?i.OTHER:0,l.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:i=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount/1e3:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description)},error:e=>{this.logger.error(e),this.paymentDecodedHint="ERROR: "+(e.message?e.message:"string"==typeof e?e:JSON.stringify(e)),this.paymentReq.control.setErrors({decodeError:!0})}}))}sendPayment(){this.store.dispatch((0,R.oV)(this.zeroAmtInvoice?{payload:{invoice:this.paymentRequest,amountMsat:1e3*this.paymentAmount,fromDialog:!0}}:{payload:{invoice:this.paymentRequest,fromDialog:!0}}))}onPaymentRequestEntry(e){this.paymentRequest=e&&"string"==typeof e?e.trim():e,this.paymentError="",this.paymentDecodedHint="",this.zeroAmtInvoice=!1,this.paymentRequest&&this.paymentRequest.length>100&&(this.paymentReq.control.setErrors(null),this.zeroAmtInvoice=!1,this.dataService.decodePayment(this.paymentRequest,!0).pipe((0,H.q)(1)).subscribe({next:i=>{this.paymentDecoded=i,this.paymentDecoded.timestamp&&!this.paymentDecoded.amount?(this.paymentDecoded.amount=0,this.zeroAmtInvoice=!0,this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description):(this.zeroAmtInvoice=!1,this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.amount,l.NT.SATS,l.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,h.R)(this.unSubs[3])).subscribe({next:o=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats ("+o.symbol+this.decimalPipe.transform(o.OTHER?o.OTHER:0,l.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:o=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description)},error:i=>{this.logger.error(i),this.paymentDecodedHint="ERROR: "+(i.message?i.message:"string"==typeof i?i:JSON.stringify(i)),this.paymentReq.control.setErrors({decodeError:!0})}}))}onAmountChange(e){delete this.paymentDecoded.amount,this.paymentDecoded.amount=e}resetData(){this.paymentDecoded={},this.paymentRequest="",this.selActiveChannel=null,this.feeLimit=null,this.selFeeLimitType=l.Vc[0],this.paymentReq.control.setErrors(null),this.paymentError="",this.paymentDecodedHint="",this.zeroAmtInvoice=!1}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(D.so),t.Y36(b.yh),t.Y36(it.o),t.Y36(F.mQ),t.Y36(O.v),t.Y36(u.JJ),t.Y36(B.eX),t.Y36(ht.D))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-lightning-send-payments"]],viewQuery:function(e,i){if(1&e&&t.Gf(je,5),2&e){let o;t.iGM(o=t.CRH())&&(i.paymentReq=o.first)}},decls:24,vars:7,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayoutAlign","space-between stretch","fxLayout","column"],["sendPaymentForm","ngForm"],["autoFocus","","matInput","","placeholder","Payment Request","name","paymentRequest","rows","4","tabindex","1","required","",3,"ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","3",3,"click"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","required","",3,"ngModel","ngModelChange","change"],["paymentAmt","ngModel"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(e,i){if(1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t.TgZ(4,"span",4),t._uU(5,"Send Payment"),t.qZA(),t.qZA(),t.TgZ(6,"button",5),t._uU(7,"X"),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",6),t.TgZ(9,"form",7,8),t.TgZ(11,"mat-form-field",1),t.TgZ(12,"textarea",9,10),t.NdJ("ngModelChange",function(s){return i.onPaymentRequestEntry(s)})("matTextareaAutosize",function(){return!0}),t.qZA(),t.YNc(14,tn,2,1,"mat-hint",11),t.YNc(15,en,2,0,"mat-error",11),t.YNc(16,nn,2,1,"mat-error",11),t.qZA(),t.YNc(17,on,6,2,"mat-form-field",12),t.YNc(18,ln,3,2,"div",13),t.TgZ(19,"div",14),t.TgZ(20,"button",15),t.NdJ("click",function(){return i.resetData()}),t._uU(21,"Clear Fields"),t.qZA(),t.TgZ(22,"button",16),t.NdJ("click",function(){return i.onSendPayment()}),t._uU(23,"Send Payment"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e){const o=t.MAs(13);t.xp6(6),t.Q6J("mat-dialog-close",!1),t.xp6(6),t.Q6J("ngModel",i.paymentRequest),t.xp6(2),t.Q6J("ngIf",i.paymentRequest&&""!==i.paymentDecodedHint),t.xp6(1),t.Q6J("ngIf",!i.paymentRequest),t.xp6(1),t.Q6J("ngIf",null==o.errors?null:o.errors.decodeError),t.xp6(1),t.Q6J("ngIf",i.zeroAmtInvoice),t.xp6(1),t.Q6J("ngIf",""!==i.paymentError)}},directives:[p.xw,p.yH,A.dk,p.Wh,q.lW,D.ZT,A.dn,m._Y,m.JL,m.F,x.KE,U.Nt,m.Fj,X.h,m.Q7,m.JJ,m.On,u.O5,x.bx,x.TO,I.BN],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-payment_hash[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();var V=g(1125);const cn=["scrollContainer"];function un(n,a){if(1&n&&(t.TgZ(0,"div",9),t.TgZ(1,"div",1),t.TgZ(2,"h4",11),t._uU(3,"Description"),t.qZA(),t.TgZ(4,"span",12),t._uU(5),t.qZA(),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(5),t.Oqu(e.description)}}function pn(n,a){1&n&&t._UZ(0,"mat-divider",14)}function mn(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"mat-expansion-panel",23),t.NdJ("opened",function(){return t.CHM(e),t.oxw().onExpansionOpen(!0)})("closed",function(){return t.CHM(e),t.oxw().onExpansionOpen(!1)}),t.TgZ(1,"mat-expansion-panel-header"),t.TgZ(2,"mat-panel-title"),t.TgZ(3,"h4",24),t._uU(4),t.qZA(),t.TgZ(5,"h4",25),t._uU(6),t.ALo(7,"number"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"div",8),t.TgZ(9,"div",9),t.TgZ(10,"div",26),t.TgZ(11,"h4",11),t._uU(12,"Fees (mSats)"),t.qZA(),t.TgZ(13,"span",12),t._uU(14),t.ALo(15,"number"),t.qZA(),t.qZA(),t.TgZ(16,"div",26),t.TgZ(17,"h4",11),t._uU(18,"Date/Time"),t.qZA(),t.TgZ(19,"span",12),t._uU(20),t.ALo(21,"date"),t.qZA(),t.qZA(),t.qZA(),t._UZ(22,"mat-divider",14),t.TgZ(23,"div",9),t.TgZ(24,"div",1),t.TgZ(25,"h4",11),t._uU(26,"ID"),t.qZA(),t.TgZ(27,"span",27),t._uU(28),t.qZA(),t.qZA(),t.qZA(),t._UZ(29,"mat-divider",14),t.TgZ(30,"div",9),t.TgZ(31,"div",1),t.TgZ(32,"h4",11),t._uU(33,"To Channel"),t.qZA(),t.TgZ(34,"span",27),t._uU(35),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=a.$implicit,i=a.index,o=t.oxw();t.Q6J("expanded",o.expansionOpen),t.xp6(4),t.hij("Part ",i+1,""),t.xp6(2),t.hij("",t.lcZ(7,7,e.amount)," (Sats)"),t.xp6(8),t.Oqu(t.lcZ(15,9,e.feesPaid)),t.xp6(6),t.Oqu(t.xi3(21,11,e.timestamp,"dd/MMM/YYYY HH:mm")),t.xp6(8),t.Oqu(e.id),t.xp6(7),t.Oqu(e.toChannelAlias)}}let dn=(()=>{class n{constructor(e,i){this.dialogRef=e,this.data=i,this.description=null,this.shouldScroll=!0,this.expansionOpen=!0}ngOnInit(){this.payment=this.data.payment,this.data.sentPaymentInfo.length>0&&this.data.sentPaymentInfo[0].paymentRequest&&this.data.sentPaymentInfo[0].paymentRequest.description&&""!==this.data.sentPaymentInfo[0].paymentRequest.description&&(this.description=this.data.sentPaymentInfo[0].paymentRequest.description)}ngAfterViewChecked(){this.shouldScroll=this.scrollContainer.nativeElement.classList.value.includes("ps--active-y")}onScrollDown(){this.scrollContainer.nativeElement.scrollTop=this.scrollContainer.nativeElement.scrollTop+62.6}onExpansionOpen(e){this.expansionOpen=e}onClose(){this.dialogRef.close(!1)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(D.so),t.Y36(D.WI))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-payment-information"]],viewQuery:function(e,i){if(1&e&&t.Gf(cn,5),2&e){let o;t.iGM(o=t.CRH())&&(i.scrollContainer=o.first)}},decls:66,vars:15,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"h-40","padding-gap-x-large",3,"perfectScrollbar"],["scrollContainer",""],["fxLayout","column"],["fxLayout","row"],["fxFlex","30"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],["fxFlex","70"],[1,"w-100","my-1"],["fxLayout","row",4,"ngIf"],["class","w-100 my-1",4,"ngIf"],["class","flat-expansion-panel my-1",3,"expanded","opened","closed",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start end",1,"btn-sticky-container","padding-gap-x-large"],["mat-mini-fab","","aria-label","Scroll Down","fxLayoutAlign","center center",3,"click"],["fxLayoutAlign","center center"],["fxLayout","row","fxLayoutAlign","end center",1,"padding-gap-x-large","padding-gap-bottom-large"],["fxLayoutAlign","center center","tabindex","1","mat-button","","color","primary","type","button","default","",1,"mr-1",3,"mat-dialog-close"],[1,"flat-expansion-panel","my-1",3,"expanded","opened","closed"],["fxFlex","30","fxLayoutAlign","start",1,"font-bold-500"],["fxFlex","70","fxLayoutAlign","start",1,"font-bold-500"],["fxFlex","50"],[1,"overflow-wrap","foreground-secondary-text"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t.TgZ(4,"span",4),t._uU(5,"Payment Information"),t.qZA(),t.qZA(),t.TgZ(6,"button",5),t.NdJ("click",function(){return i.onClose()}),t._uU(7,"X"),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",6,7),t.TgZ(10,"div",8),t.TgZ(11,"div",9),t.TgZ(12,"div",10),t.TgZ(13,"h4",11),t._uU(14,"Amount (Sats)"),t.qZA(),t.TgZ(15,"span",12),t._uU(16),t.ALo(17,"number"),t.qZA(),t.qZA(),t.TgZ(18,"div",13),t.TgZ(19,"h4",11),t._uU(20,"Date/Time"),t.qZA(),t.TgZ(21,"span",12),t._uU(22),t.ALo(23,"date"),t.qZA(),t.qZA(),t.qZA(),t._UZ(24,"mat-divider",14),t.TgZ(25,"div",9),t.TgZ(26,"div",1),t.TgZ(27,"h4",11),t._uU(28,"ID"),t.qZA(),t.TgZ(29,"span",12),t._uU(30),t.qZA(),t.qZA(),t.qZA(),t._UZ(31,"mat-divider",14),t.TgZ(32,"div",9),t.TgZ(33,"div",1),t.TgZ(34,"h4",11),t._uU(35,"Payment Hash"),t.qZA(),t.TgZ(36,"span",12),t._uU(37),t.qZA(),t.qZA(),t.qZA(),t._UZ(38,"mat-divider",14),t.TgZ(39,"div",9),t.TgZ(40,"div",1),t.TgZ(41,"h4",11),t._uU(42,"Payment Preimage"),t.qZA(),t.TgZ(43,"span",12),t._uU(44),t.qZA(),t.qZA(),t.qZA(),t._UZ(45,"mat-divider",14),t.TgZ(46,"div",9),t.TgZ(47,"div",1),t.TgZ(48,"h4",11),t._uU(49,"Recipient Node"),t.qZA(),t.TgZ(50,"span",12),t._uU(51),t.qZA(),t.qZA(),t.qZA(),t._UZ(52,"mat-divider",14),t.YNc(53,un,6,1,"div",15),t.YNc(54,pn,1,0,"mat-divider",16),t.TgZ(55,"div",9),t.TgZ(56,"div",1),t.TgZ(57,"mat-accordion"),t.YNc(58,mn,36,14,"mat-expansion-panel",17),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.TgZ(59,"div",18),t.TgZ(60,"button",19),t.NdJ("click",function(){return i.onScrollDown()}),t.TgZ(61,"mat-icon",20),t._uU(62,"arrow_downward"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(63,"div",21),t.TgZ(64,"button",22),t._uU(65,"OK"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(16),t.Oqu(t.lcZ(17,10,i.payment.recipientAmount)),t.xp6(6),t.Oqu(t.xi3(23,12,i.payment.firstPartTimestamp,"dd/MMM/YYYY HH:mm")),t.xp6(8),t.Oqu(i.payment.id),t.xp6(7),t.Oqu(i.payment.paymentHash),t.xp6(7),t.Oqu(i.payment.paymentPreimage),t.xp6(7),t.Oqu(i.payment.recipientNodeAlias),t.xp6(2),t.Q6J("ngIf",i.description),t.xp6(1),t.Q6J("ngIf",i.description),t.xp6(4),t.Q6J("ngForOf",i.payment.parts),t.xp6(6),t.Q6J("mat-dialog-close",!1))},directives:[p.xw,p.Wh,p.yH,A.dk,q.lW,A.dn,Y.$V,G.d,u.O5,V.pp,u.sg,pt.Hw,D.ZT,V.ib,V.yz,V.yK],pipes:[u.JJ,u.uU],styles:[""]}),n})();var K=g(3093);const hn=["sendPaymentForm"];function gn(n,a){if(1&n&&(t.TgZ(0,"mat-hint"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.paymentDecodedHint)}}function fn(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Payment request is required."),t.qZA())}function _n(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"form",4,5),t.TgZ(2,"mat-form-field",6),t.TgZ(3,"textarea",7,8),t.NdJ("ngModelChange",function(o){return t.CHM(e),t.oxw().onPaymentRequestEntry(o)})("matTextareaAutosize",function(){return!0}),t.qZA(),t.YNc(5,gn,2,1,"mat-hint",9),t.YNc(6,fn,2,0,"mat-error",9),t.qZA(),t.TgZ(7,"div",10),t.TgZ(8,"button",11),t.NdJ("click",function(){return t.CHM(e),t.oxw().resetData()}),t._uU(9,"Clear Field"),t.qZA(),t.TgZ(10,"button",12),t.NdJ("click",function(){return t.CHM(e),t.oxw().onSendPayment()}),t._uU(11,"Send Payment"),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=t.oxw();t.xp6(3),t.Q6J("ngModel",e.paymentRequest),t.xp6(2),t.Q6J("ngIf",e.paymentRequest&&""!==e.paymentDecodedHint),t.xp6(1),t.Q6J("ngIf",!e.paymentRequest)}}function Cn(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",13),t.TgZ(1,"button",12),t.NdJ("click",function(){return t.CHM(e),t.oxw().openSendPaymentModal()}),t._uU(2,"Send Payment"),t.qZA(),t.qZA()}}function xn(n,a){1&n&&t._UZ(0,"mat-progress-bar",49)}function yn(n,a){1&n&&(t.TgZ(0,"th",50),t._uU(1,"Date/Time"),t.qZA())}function Zn(n,a){if(1&n&&(t.TgZ(0,"td",51),t._uU(1),t.ALo(2,"date"),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Oqu(t.xi3(2,1,null==e?null:e.firstPartTimestamp,"dd/MMM/YYYY HH:mm"))}}function Tn(n,a){1&n&&(t.TgZ(0,"th",50),t._uU(1,"ID"),t.qZA())}const W=function(n){return{"max-width":n}};function An(n,a){if(1&n&&(t.TgZ(0,"td",51),t.TgZ(1,"div",52),t.TgZ(2,"span",53),t._uU(3),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("ngStyle",t.VKq(2,W,i.screenSize===i.screenSizeEnum.XS?"10rem":"22rem")),t.xp6(2),t.Oqu(e.id)}}function Ln(n,a){1&n&&(t.TgZ(0,"th",50),t._uU(1,"Destination"),t.qZA())}function vn(n,a){if(1&n&&(t.TgZ(0,"td",51),t.TgZ(1,"div",52),t.TgZ(2,"span",53),t._uU(3),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("ngStyle",t.VKq(2,W,i.screenSize===i.screenSizeEnum.XS?"10rem":"22rem")),t.xp6(2),t.Oqu(e.recipientNodeAlias)}}function bn(n,a){1&n&&(t.TgZ(0,"th",54),t._uU(1,"Amount (Sats)"),t.qZA())}function Sn(n,a){if(1&n&&(t.TgZ(0,"td",51),t.TgZ(1,"span",55),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,null==e?null:e.recipientAmount))}}function wn(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"th",56),t.TgZ(1,"div",57),t.TgZ(2,"mat-select",58),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",59),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).onDownloadCSV()}),t._uU(5,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function En(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",60),t.TgZ(1,"button",61),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw(2).onPaymentClick(s)}),t._uU(2,"View Info"),t.qZA(),t.qZA()}}function qn(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No payment available."),t.qZA())}function In(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting payments..."),t.qZA())}function Fn(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Oqu(e.errorMessage)}}function On(n,a){if(1&n&&(t.TgZ(0,"td",62),t.YNc(1,qn,2,0,"p",9),t.YNc(2,In,2,0,"p",9),t.YNc(3,Fn,2,1,"p",9),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",(!(null!=e.payments&&e.payments.data)||(null==e.payments||null==e.payments.data?null:e.payments.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.payments&&e.payments.data)||(null==e.payments||null==e.payments.data?null:e.payments.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.payments&&e.payments.data)||(null==e.payments||null==e.payments.data?null:e.payments.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}function Rn(n,a){if(1&n&&(t.TgZ(0,"span",65),t._uU(1),t.ALo(2,"date"),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.hij(" ",t.xi3(2,1,e.timestamp,"dd/MMM/YYYY HH:mm")," ")}}function Nn(n,a){if(1&n&&(t.ynx(0),t.YNc(1,Rn,3,4,"span",64),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngForOf",null==e?null:e.parts)}}function kn(n,a){if(1&n&&(t.TgZ(0,"td",51),t.TgZ(1,"span",63),t._uU(2),t.qZA(),t.YNc(3,Nn,2,1,"ng-container",9),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" Total Attempts: ",null==e||null==e.parts?null:e.parts.length," "),t.xp6(1),t.Q6J("ngIf",e.is_expanded)}}function Pn(n,a){if(1&n&&(t.TgZ(0,"span",63),t.TgZ(1,"span",66),t.TgZ(2,"span",53),t._uU(3),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(4);t.xp6(1),t.Q6J("ngStyle",t.VKq(2,W,i.screenSize===i.screenSizeEnum.XS?"10rem":"22rem")),t.xp6(2),t.Oqu(e.id)}}function Dn(n,a){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Pn,4,4,"span",67),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngForOf",null==e?null:e.parts)}}function Un(n,a){if(1&n&&(t.TgZ(0,"td",51),t.TgZ(1,"div",66),t.TgZ(2,"span",53),t._uU(3),t.qZA(),t.qZA(),t.YNc(4,Dn,2,1,"span",9),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("ngStyle",t.VKq(3,W,i.screenSize===i.screenSizeEnum.XS?"10rem":"22rem")),t.xp6(2),t.Oqu(e.id),t.xp6(1),t.Q6J("ngIf",e.is_expanded)}}function Mn(n,a){if(1&n&&(t.TgZ(0,"span",63),t.TgZ(1,"span",66),t.TgZ(2,"span",53),t._uU(3),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(4);t.xp6(1),t.Q6J("ngStyle",t.VKq(2,W,i.screenSize===i.screenSizeEnum.XS?"10rem":"22rem")),t.xp6(2),t.Oqu(e.toChannelAlias)}}function Jn(n,a){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Mn,4,4,"span",67),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngForOf",null==e?null:e.parts)}}function Yn(n,a){if(1&n&&(t.TgZ(0,"td",51),t.TgZ(1,"div",66),t.TgZ(2,"span",53),t._uU(3),t.qZA(),t.qZA(),t.YNc(4,Jn,2,1,"span",9),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("ngStyle",t.VKq(3,W,i.screenSize===i.screenSizeEnum.XS?"10rem":"22rem")),t.xp6(2),t.Oqu(null==e?null:e.recipientNodeAlias),t.xp6(1),t.Q6J("ngIf",e.is_expanded)}}function Qn(n,a){if(1&n&&(t.TgZ(0,"span",68),t._uU(1),t.ALo(2,"number"),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.hij(" ",t.xi3(2,1,e.amount,"1.0-0")," ")}}function Hn(n,a){if(1&n&&(t.TgZ(0,"span"),t.YNc(1,Qn,3,4,"span",69),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngForOf",null==e?null:e.parts)}}function Bn(n,a){if(1&n&&(t.TgZ(0,"td",51),t.TgZ(1,"span",68),t._uU(2),t.ALo(3,"number"),t.qZA(),t.YNc(4,Hn,2,1,"span",9),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.xi3(3,2,null==e?null:e.recipientAmount,"1.0-0")),t.xp6(2),t.Q6J("ngIf",e.is_expanded)}}function zn(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",71),t.TgZ(1,"button",74),t.NdJ("click",function(){const s=t.CHM(e).$implicit,c=t.oxw(2).$implicit;return t.oxw(2).onPartClick(s,c)}),t._uU(2),t.qZA(),t.qZA()}if(2&n){const e=a.index;t.xp6(2),t.hij("View ",e+1,"")}}function Vn(n,a){if(1&n&&(t.TgZ(0,"div"),t.YNc(1,zn,3,1,"div",73),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngForOf",null==e?null:e.parts)}}function Gn(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",70),t.TgZ(1,"span",71),t.TgZ(2,"button",72),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return s.is_expanded=!s.is_expanded}),t._uU(3),t.qZA(),t.qZA(),t.YNc(4,Vn,2,1,"div",9),t.qZA()}if(2&n){const e=a.$implicit;t.xp6(3),t.Oqu(e.is_expanded?"Hide":"Show"),t.xp6(1),t.Q6J("ngIf",e.is_expanded)}}function Xn(n,a){1&n&&t._UZ(0,"tr",75)}const $n=function(n){return{"display-none":n}};function Wn(n,a){if(1&n&&t._UZ(0,"tr",76),2&n){const e=t.oxw(2);t.Q6J("ngClass",t.VKq(1,$n,(null==e.payments?null:e.payments.data)&&(null==e.payments||null==e.payments.data?null:e.payments.data.length)>0))}}function Kn(n,a){1&n&&t._UZ(0,"tr",77)}function jn(n,a){1&n&&t._UZ(0,"tr",75)}const ti=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},ei=function(){return["no_payment"]};function ni(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",14),t.TgZ(1,"div",15),t.TgZ(2,"div",16),t._UZ(3,"fa-icon",17),t.TgZ(4,"span",18),t._uU(5,"Payments History"),t.qZA(),t.qZA(),t.TgZ(6,"mat-form-field",19),t.TgZ(7,"input",20),t.NdJ("keyup",function(){return t.CHM(e),t.oxw().applyFilter()})("ngModelChange",function(o){return t.CHM(e),t.oxw().selFilter=o}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"div",21),t.TgZ(9,"div",22),t.YNc(10,xn,1,0,"mat-progress-bar",23),t.TgZ(11,"table",24,25),t.ynx(13,26),t.YNc(14,yn,2,0,"th",27),t.YNc(15,Zn,3,4,"td",28),t.BQk(),t.ynx(16,29),t.YNc(17,Tn,2,0,"th",27),t.YNc(18,An,4,4,"td",28),t.BQk(),t.ynx(19,30),t.YNc(20,Ln,2,0,"th",27),t.YNc(21,vn,4,4,"td",28),t.BQk(),t.ynx(22,31),t.YNc(23,bn,2,0,"th",32),t.YNc(24,Sn,4,3,"td",28),t.BQk(),t.ynx(25,33),t.YNc(26,wn,6,0,"th",34),t.YNc(27,En,3,0,"td",35),t.BQk(),t.ynx(28,36),t.YNc(29,On,4,3,"td",37),t.BQk(),t.ynx(30,38),t.YNc(31,kn,4,2,"td",28),t.BQk(),t.ynx(32,39),t.YNc(33,Un,5,5,"td",28),t.BQk(),t.ynx(34,40),t.YNc(35,Yn,5,5,"td",28),t.BQk(),t.ynx(36,41),t.YNc(37,Bn,5,5,"td",28),t.BQk(),t.ynx(38,42),t.YNc(39,Gn,5,2,"td",43),t.BQk(),t.YNc(40,Xn,1,0,"tr",44),t.YNc(41,Wn,1,3,"tr",45),t.YNc(42,Kn,1,0,"tr",46),t.YNc(43,jn,1,0,"tr",47),t.qZA(),t.qZA(),t.qZA(),t._UZ(44,"mat-paginator",48),t.qZA()}if(2&n){const e=t.oxw();t.xp6(3),t.Q6J("icon",e.faHistory),t.xp6(4),t.Q6J("ngModel",e.selFilter),t.xp6(3),t.Q6J("ngIf",e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",e.payments)("ngClass",t.VKq(14,ti,""!==e.errorMessage)),t.xp6(29),t.Q6J("matRowDefColumns",e.partColumns)("matRowDefWhen",e.is_group),t.xp6(1),t.Q6J("matFooterRowDef",t.DdM(16,ei)),t.xp6(1),t.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",e.displayedColumns),t.xp6(1),t.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS)}}let gt=(()=>{class n{constructor(e,i,o,s,c,f,P){this.logger=e,this.commonService=i,this.store=o,this.rtlEffects=s,this.decimalPipe=c,this.dataService=f,this.datePipe=P,this.calledFrom="transactions",this.faHistory=Z.qO$,this.newlyAddedPayment="",this.selNode={},this.information={},this.paymentJSONArr=[],this.paymentDecoded={},this.displayedColumns=[],this.partColumns=[],this.paymentRequest="",this.paymentDecodedHint="",this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["firstPartTimestamp","actions"],this.partColumns=["groupTotal","groupAction"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["firstPartTimestamp","recipientAmount","actions"],this.partColumns=["groupTotal","groupAmount","groupAction"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["firstPartTimestamp","id","recipientAmount","actions"],this.partColumns=["groupTotal","groupId","groupAmount","groupAction"]):(this.flgSticky=!0,this.displayedColumns=["firstPartTimestamp","id","recipientNodeAlias","recipientAmount","actions"],this.partColumns=["groupTotal","groupId","groupChannelAlias","groupAmount","groupAction"])}ngOnInit(){this.store.select(_.LR).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.selNode=e}),this.store.select(_.yD).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.information=e}),this.store.select(_.PP).pipe((0,h.R)(this.unSubs[2])).subscribe(e=>{this.errorMessage="",this.apiCallStatus=e.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.paymentJSONArr=e.payments&&e.payments.sent&&e.payments.sent.length>0?e.payments.sent:[],this.loadPaymentsTable(this.paymentJSONArr),this.logger.info(e)})}ngAfterViewInit(){this.loadPaymentsTable(this.paymentJSONArr)}loadPaymentsTable(e){this.payments=new r.by(e?[...e]:[]),this.payments.sort=this.sort,this.payments.sortingDataAccessor=(i,o)=>{switch(o){case"firstPartTimestamp":return this.commonService.sortByKey(i.parts,"timestamp","number",this.sort.direction),i.firstPartTimestamp;case"id":return this.commonService.sortByKey(i.parts,"id","string",this.sort.direction),i.id;case"recipientNodeAlias":return this.commonService.sortByKey(i.parts,"toChannelAlias","string",this.sort.direction),i.recipientNodeAlias;case"recipientAmount":return this.commonService.sortByKey(i.parts,"amount","number",this.sort.direction),i.recipientAmount;default:return i[o]&&isNaN(i[o])?i[o].toLocaleLowerCase():i[o]?+i[o]:null}},this.payments.filterPredicate=(i,o)=>((i.firstPartTimestamp?this.datePipe.transform(new Date(i.firstPartTimestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(i).toLowerCase()).includes(o),this.payments.paginator=this.paginator,this.applyFilter()}onSendPayment(){if(!this.paymentRequest)return!0;this.paymentDecoded.timestamp?this.sendPayment():this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,H.q)(1)).subscribe(e=>{this.paymentDecoded=e,this.paymentDecoded.timestamp?(this.paymentDecoded.amount||(this.paymentDecoded.amount=0),this.sendPayment()):this.resetData()})}sendPayment(){this.newlyAddedPayment=this.paymentDecoded.paymentHash,this.paymentDecoded.amount&&0!==this.paymentDecoded.amount?(this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Confirm Send Payment",noBtnText:"Cancel",yesBtnText:"Send Payment",message:[[{key:"paymentHash",value:this.paymentDecoded.paymentHash,title:"Payment Hash",width:100}],[{key:"nodeId",value:this.paymentDecoded.nodeId,title:"Payee",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"timestamp",value:this.paymentDecoded.timestamp,title:"Creation Date",width:50,type:l.Gi.DATE_TIME},{key:"amount",value:this.paymentDecoded.amount,title:"Amount (Sats)",width:50,type:l.Gi.NUMBER}],[{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:50,type:l.Gi.NUMBER},{key:"minFinalCltvExpiry",value:this.paymentDecoded.minFinalCltvExpiry,title:"CLTV Expiry",width:50}]]}}})),this.rtlEffects.closeConfirm.pipe((0,H.q)(1)).subscribe(i=>{i&&(this.store.dispatch((0,R.oV)({payload:{invoice:this.paymentRequest,fromDialog:!1}})),this.resetData())})):(this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Enter Amount and Confirm Send Payment",message:[[{key:"paymentHash",value:this.paymentDecoded.paymentHash,title:"Payment Hash",width:100}],[{key:"nodeId",value:this.paymentDecoded.nodeId,title:"Payee",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"timestamp",value:this.paymentDecoded.timestamp,title:"Creation Date",width:40,type:l.Gi.DATE_TIME},{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:30,type:l.Gi.NUMBER},{key:"minFinalCltvExpiry",value:this.paymentDecoded.minFinalCltvExpiry,title:"CLTV Expiry",width:30}]],noBtnText:"Cancel",yesBtnText:"Send Payment",flgShowInput:!0,titleMessage:"It is a zero amount invoice. Enter the amount (Sats) to pay.",getInputs:[{placeholder:"Amount (Sats)",inputType:l.Gi.NUMBER.toLowerCase(),inputValue:"",width:30}]}}})),this.rtlEffects.closeConfirm.pipe((0,H.q)(1)).subscribe(o=>{o&&(this.paymentDecoded.amount=o[0].inputValue,this.store.dispatch((0,R.oV)({payload:{invoice:this.paymentRequest,amountMsat:1e3*o[0].inputValue,fromDialog:!1}})),this.resetData())}))}onPaymentRequestEntry(e){this.paymentRequest=e,this.paymentDecodedHint="",this.paymentRequest&&this.paymentRequest.length>100&&this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,H.q)(1)).subscribe(i=>{this.paymentDecoded=i,this.paymentDecoded.amount?this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.amount,l.NT.SATS,l.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,h.R)(this.unSubs[3])).subscribe({next:o=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats ("+o.symbol+this.decimalPipe.transform(o.OTHER?o.OTHER:0,l.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:o=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.amount?this.paymentDecoded.amount:0)+" Sats | Memo: "+this.paymentDecoded.description:this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description})}openSendPaymentModal(){this.store.dispatch((0,v.qR)({payload:{data:{component:rn}}}))}resetData(){this.paymentDecoded={},this.paymentRequest="",this.form.resetForm()}is_group(e,i){return i.parts&&i.parts.length>1}onPaymentClick(e){e.paymentHash&&""!==e.paymentHash.trim()?this.dataService.decodePayments(e.paymentHash).pipe((0,H.q)(1)).subscribe({next:i=>{setTimeout(()=>{this.showPaymentView(e,i.length&&i.length>0?i[0]:[])},0)},error:i=>{this.showPaymentView(e,[])}}):this.showPaymentView(e,[])}showPaymentView(e,i){this.store.dispatch((0,v.qR)({payload:{data:{sentPaymentInfo:i,payment:e,component:dn}}}))}onPartClick(e,i){i.paymentHash&&""!==i.paymentHash.trim()?this.dataService.decodePayments(i.paymentHash).pipe((0,H.q)(1)).subscribe({next:o=>{setTimeout(()=>{this.showPartView(e,i,o.length&&o.length>0?o[0]:[])},0)},error:o=>{this.showPartView(e,i,[])}}):this.showPartView(e,i,[])}showPartView(e,i,o){const s=[[{key:"paymentHash",value:i.paymentHash,title:"Payment Hash",width:100,type:l.Gi.STRING}],[{key:"paymentPreimage",value:i.paymentPreimage,title:"Payment Preimage",width:100,type:l.Gi.STRING}],[{key:"toChannelId",value:e.toChannelId,title:"Channel",width:100,type:l.Gi.STRING}],[{key:"id",value:e.id,title:"Part ID",width:50,type:l.Gi.STRING},{key:"timestamp",value:e.timestamp,title:"Time",width:50,type:l.Gi.DATE_TIME}],[{key:"amount",value:e.amount,title:"Amount (Sats)",width:50,type:l.Gi.NUMBER},{key:"feesPaid",value:e.feesPaid,title:"Fee (Sats)",width:50,type:l.Gi.NUMBER}]];o.length>0&&o[0].paymentRequest&&o[0].paymentRequest.description&&""!==o[0].paymentRequest.description&&s.splice(3,0,[{key:"description",value:o[0].paymentRequest.description,title:"Description",width:100,type:l.Gi.STRING}]),this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Payment Part Information",message:s}}}))}applyFilter(){this.payments.filter=this.selFilter.trim().toLowerCase()}onDownloadCSV(){if(this.payments.data&&this.payments.data.length>0){const e=JSON.parse(JSON.stringify(this.payments.data)),i=e.reduce((o,s)=>(s.paymentHash&&""!==s.paymentHash.trim()&&(o=""===o?s.paymentHash:o+","+s.paymentHash),o),"");this.dataService.decodePayments(i).pipe((0,h.R)(this.unSubs[4])).subscribe(o=>{o.forEach((c,f)=>{c.length>0&&c[0].paymentRequest&&c[0].paymentRequest.description&&""!==c[0].paymentRequest.description&&(e[f].description=c[0].paymentRequest.description)});const s=e.reduce((c,f)=>c.concat(f),[]);this.commonService.downloadFile(s,"Payments")})}}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(O.v),t.Y36(b.yh),t.Y36(K.V),t.Y36(u.JJ),t.Y36(ht.D),t.Y36(u.uU))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-lightning-payments"]],viewQuery:function(e,i){if(1&e&&(t.Gf(hn,5),t.Gf(T.YE,5),t.Gf(L.NW,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.form=o.first),t.iGM(o=t.CRH())&&(i.sort=o.first),t.iGM(o=t.CRH())&&(i.paginator=o.first)}},inputs:{calledFrom:"calledFrom"},features:[t._Bn([{provide:L.ye,useValue:(0,l.pt)("Payments")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["sendPaymentForm","ngForm"],["fxFlex","100"],["matInput","","placeholder","Payment Request","name","paymentRequest","tabindex","1","required","",3,"perfectScrollbar","ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["fxLayout","row"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","firstPartTimestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","id"],["matColumnDef","recipientNodeAlias"],["matColumnDef","recipientAmount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_payment"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["matColumnDef","groupTotal"],["matColumnDef","groupId"],["matColumnDef","groupChannelAlias"],["matColumnDef","groupAmount"],["matColumnDef","groupAction"],["mat-cell","","class","px-3",4,"matCellDef"],["mat-row","",4,"matRowDef","matRowDefColumns","matRowDefWhen"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],["fxLayoutAlign","start center",1,"part-row-span"],["fxLayoutAlign","start center","class","part-row-span pl-3",4,"ngFor","ngForOf"],["fxLayoutAlign","start center",1,"part-row-span","pl-3"],["fxLayoutAlign","start center",1,"ellipsis-parent","part-row-span",3,"ngStyle"],["fxLayoutAlign","start center","class","part-row-span",4,"ngFor","ngForOf"],["fxLayoutAlign","end center",1,"part-row-span"],["fxLayoutAlign","end center","class","part-row-span",4,"ngFor","ngForOf"],["mat-cell","",1,"px-3"],["fxLayoutAlign","end start"],["mat-flat-button","","color","primary","type","button","tabindex","5",1,"btn-part-expand",3,"click"],["fxLayoutAlign","end start",4,"ngFor","ngForOf"],["mat-stroked-button","","color","primary","type","button","tabindex","6",1,"btn-part-info",3,"click"],["mat-row",""],["mat-footer-row","",3,"ngClass"],["mat-header-row",""]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.YNc(1,_n,12,3,"form",1),t.YNc(2,Cn,3,0,"div",2),t.YNc(3,ni,45,17,"div",3),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf","home"===i.calledFrom),t.xp6(1),t.Q6J("ngIf","transactions"===i.calledFrom),t.xp6(1),t.Q6J("ngIf","transactions"===i.calledFrom))},directives:[p.xw,p.yH,p.Wh,u.O5,m._Y,m.JL,m.F,x.KE,U.Nt,m.Fj,m.Q7,Y.$V,m.JJ,m.On,q.lW,x.bx,x.TO,I.BN,r.BZ,T.YE,u.mk,S.oO,r.w1,r.fO,r.Dz,r.mD,r.nj,r.Ke,r.as,L.NW,M.pW,r.ge,T.nU,r.ev,u.PC,S.Zl,k.gD,k.$L,Q.ey,r.yh,u.sg,r.Gk,r.Q2,r.XQ],pipes:[u.uU,u.JJ],styles:[".mat-column-id[_ngcontent-%COMP%], .mat-column-recipientNodeAlias[_ngcontent-%COMP%], .mat-column-groupId[_ngcontent-%COMP%], .mat-column-groupChannelAlias[_ngcontent-%COMP%]{padding:0 1rem;flex:0 0 25%;width:25%}.mat-column-id[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%], .mat-column-recipientNodeAlias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%], .mat-column-groupId[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%], .mat-column-groupChannelAlias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%], .mat-column-groupAction[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-part-expand[_ngcontent-%COMP%]{width:9rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-part-info[_ngcontent-%COMP%]{margin-top:.5rem;width:9rem}.part-row-span[_ngcontent-%COMP%]{min-height:4.2rem;place-content:center flex-start;align-items:center}.mat-column-groupTotal[_ngcontent-%COMP%]{min-width:15rem}"]}),n})();function ii(n,a){if(1&n&&(t.TgZ(0,"button",26),t.TgZ(1,"mat-icon"),t._uU(2,"more_vert"),t.qZA(),t.qZA()),2&n){t.oxw();const e=t.MAs(11);t.Q6J("matMenuTriggerFor",e)}}function ai(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"button",15),t.NdJ("click",function(){return t.CHM(e),t.oxw(3).onNavigateTo("/ecl/reports")}),t._uU(1,"Fees Summary"),t.qZA()}}function oi(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"button",15),t.NdJ("click",function(){return t.CHM(e),t.oxw(3).onsortChannelsBy()}),t._uU(1),t.qZA()}if(2&n){const e=t.oxw(3);t.xp6(1),t.hij("Sort By ","Balance Score"===e.sortField?"Capacity":"Balance Score","")}}function si(n,a){1&n&&t._UZ(0,"mat-progress-bar",27)}function li(n,a){if(1&n&&t._UZ(0,"rtl-ecl-node-info",28),2&n){const e=t.oxw(3);t.Q6J("information",e.information)("showColorFieldSeparately",!1)}}function ri(n,a){if(1&n&&t._UZ(0,"rtl-ecl-balances-info",29),2&n){const e=t.oxw(3);t.Q6J("balances",e.balances)("errorMessage",e.errorMessages[2]+" "+e.errorMessages[3])}}function ci(n,a){if(1&n&&t._UZ(0,"rtl-ecl-channel-capacity-info",30),2&n){const e=t.oxw(3);t.Q6J("sortBy",e.sortField)("channelBalances",e.channelBalances)("allChannels",e.allChannelsCapacity)("errorMessage",e.errorMessages[2])}}function ui(n,a){if(1&n&&t._UZ(0,"rtl-ecl-fee-info",31),2&n){const e=t.oxw(3);t.Q6J("fees",e.fees)("errorMessage",e.errorMessages[1])}}function pi(n,a){if(1&n&&t._UZ(0,"rtl-ecl-channel-status-info",32),2&n){const e=t.oxw(3);t.Q6J("channelsStatus",e.channelsStatus)("errorMessage",e.errorMessages[2])}}function mi(n,a){1&n&&(t.TgZ(0,"h3"),t._uU(1,"Error! Unable to find information!"),t.qZA())}const ft=function(n){return{"dashboard-card-content":!0,"error-border":n}};function di(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"mat-grid-tile",8),t.TgZ(1,"mat-card",9),t.TgZ(2,"mat-card-header"),t.TgZ(3,"mat-card-title",10),t.TgZ(4,"div"),t._UZ(5,"fa-icon",11),t.TgZ(6,"span"),t._uU(7),t.qZA(),t.qZA(),t.TgZ(8,"div"),t.YNc(9,ii,3,1,"button",12),t.TgZ(10,"mat-menu",13,14),t.TgZ(12,"button",15),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw(2).onNavigateTo(s.link)}),t._uU(13),t.qZA(),t.YNc(14,ai,2,0,"button",16),t.YNc(15,oi,2,1,"button",16),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.TgZ(16,"mat-card-content",17),t.YNc(17,si,1,0,"mat-progress-bar",18),t.TgZ(18,"div",19),t.YNc(19,li,1,2,"rtl-ecl-node-info",20),t.YNc(20,ri,1,2,"rtl-ecl-balances-info",21),t.YNc(21,ci,1,4,"rtl-ecl-channel-capacity-info",22),t.YNc(22,ui,1,2,"rtl-ecl-fee-info",23),t.YNc(23,pi,1,2,"rtl-ecl-channel-status-info",24),t.YNc(24,mi,2,0,"h3",25),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=a.$implicit,i=t.oxw(2);t.Q6J("colspan",e.cols)("rowspan",e.rows),t.xp6(5),t.Q6J("icon",e.icon),t.xp6(2),t.Oqu(e.title),t.xp6(2),t.Q6J("ngIf",e.link),t.xp6(4),t.hij("Go To ",e.goTo,""),t.xp6(1),t.Q6J("ngIf","fee"===e.id),t.xp6(1),t.Q6J("ngIf","capacity"===e.id),t.xp6(1),t.s9C("fxFlex","capacity"===e.id?90:70),t.Q6J("ngClass",t.VKq(17,ft,"node"===e.id&&i.apiCallStatusNodeInfo.status===i.apiCallStatusEnum.ERROR||"balance"===e.id&&(i.apiCallStatusAllChannels.status===i.apiCallStatusEnum.ERROR||i.apiCallStatusOCBal.status===i.apiCallStatusEnum.ERROR)||("capacity"===e.id||"status"===e.id)&&i.apiCallStatusAllChannels.status===i.apiCallStatusEnum.ERROR||"fee"===e.id&&i.apiCallStatusFees.status===i.apiCallStatusEnum.ERROR)),t.xp6(1),t.Q6J("ngIf","node"===e.id&&i.apiCallStatusNodeInfo.status===i.apiCallStatusEnum.INITIATED||"balance"===e.id&&(i.apiCallStatusAllChannels.status===i.apiCallStatusEnum.INITIATED||i.apiCallStatusOCBal.status===i.apiCallStatusEnum.INITIATED)||("capacity"===e.id||"status"===e.id)&&i.apiCallStatusAllChannels.status===i.apiCallStatusEnum.INITIATED||"fee"===e.id&&i.apiCallStatusFees.status===i.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngSwitch",e.id),t.xp6(1),t.Q6J("ngSwitchCase","node"),t.xp6(1),t.Q6J("ngSwitchCase","balance"),t.xp6(1),t.Q6J("ngSwitchCase","capacity"),t.xp6(1),t.Q6J("ngSwitchCase","fee"),t.xp6(1),t.Q6J("ngSwitchCase","status")}}function hi(n,a){if(1&n&&(t.TgZ(0,"div",2),t.TgZ(1,"div",3),t._UZ(2,"fa-icon",4),t.TgZ(3,"span",5),t._uU(4),t.qZA(),t.qZA(),t.TgZ(5,"mat-grid-list",6),t.YNc(6,di,25,19,"mat-grid-tile",7),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Q6J("icon",e.apiCallStatusNodeInfo.status===e.apiCallStatusEnum.ERROR?e.faFrown:e.faSmile),t.xp6(2),t.Oqu(e.apiCallStatusNodeInfo.status===e.apiCallStatusEnum.COMPLETED?"Welcome "+e.information.alias+"! Your node is up and running.":e.apiCallStatusNodeInfo.status===e.apiCallStatusEnum.INITIATED?"Wait! Getting your node information...":"Error! Please check the server connection."),t.xp6(1),t.Q6J("rowHeight",e.operatorCardHeight),t.xp6(1),t.Q6J("ngForOf",e.operatorCards)}}function gi(n,a){if(1&n&&(t.TgZ(0,"button",26),t.TgZ(1,"mat-icon"),t._uU(2,"more_vert"),t.qZA(),t.qZA()),2&n){t.oxw();const e=t.MAs(9);t.Q6J("matMenuTriggerFor",e)}}function fi(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"mat-card-header"),t.TgZ(1,"mat-card-title",10),t.TgZ(2,"div"),t._UZ(3,"fa-icon",11),t.TgZ(4,"span"),t._uU(5),t.qZA(),t.qZA(),t.TgZ(6,"div"),t.YNc(7,gi,3,1,"button",12),t.TgZ(8,"mat-menu",13,41),t.TgZ(10,"button",15),t.NdJ("click",function(){t.CHM(e);const o=t.oxw().$implicit;return t.oxw(2).onNavigateTo(o.link)}),t._uU(11),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=t.oxw().$implicit;t.xp6(3),t.Q6J("icon",e.icon),t.xp6(2),t.Oqu(e.title),t.xp6(2),t.Q6J("ngIf",e.link),t.xp6(4),t.hij("Go To ",e.goTo,"")}}function _i(n,a){1&n&&t._UZ(0,"mat-progress-bar",27)}function Ci(n,a){if(1&n&&t._UZ(0,"rtl-ecl-node-info",42),2&n){const e=t.oxw(3);t.Q6J("information",e.information)}}function xi(n,a){if(1&n&&t._UZ(0,"rtl-ecl-balances-info",29),2&n){const e=t.oxw(3);t.Q6J("balances",e.balances)("errorMessage",e.errorMessages[2]+" "+e.errorMessages[3])}}function yi(n,a){if(1&n&&t._UZ(0,"rtl-ecl-channel-liquidity-info",43),2&n){const e=t.oxw(3);t.Q6J("direction","In")("totalLiquidity",e.totalInboundLiquidity)("allChannels",e.allInboundChannels)("errorMessage",e.errorMessages[2])}}function Zi(n,a){if(1&n&&t._UZ(0,"rtl-ecl-channel-liquidity-info",43),2&n){const e=t.oxw(3);t.Q6J("direction","Out")("totalLiquidity",e.totalOutboundLiquidity)("allChannels",e.allOutboundChannels)("errorMessage",e.errorMessages[2])}}function Ti(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"button",52),t.TgZ(1,"mat-icon"),t._uU(2,"more_vert"),t.qZA(),t.qZA(),t.TgZ(3,"mat-menu",13,53),t.TgZ(5,"button",15),t.NdJ("click",function(){t.CHM(e);const o=t.oxw(2).$implicit;return t.oxw(2).onNavigateTo(o.link)}),t._uU(6),t.qZA(),t.TgZ(7,"button",15),t.NdJ("click",function(){return t.CHM(e),t.oxw(4).onNavigateTo("/ecl/reports/transactions")}),t._uU(8,"Transactions Summary"),t.qZA(),t.qZA()}if(2&n){const e=t.MAs(4),i=t.oxw(2).$implicit;t.Q6J("matMenuTriggerFor",e),t.xp6(6),t.hij("Go To ",i.goTo,"")}}function Ai(n,a){1&n&&(t.TgZ(0,"span",44),t.TgZ(1,"mat-tab-group",45),t.TgZ(2,"mat-tab",46),t._UZ(3,"rtl-ecl-lightning-invoices",47),t.qZA(),t.TgZ(4,"mat-tab",48),t._UZ(5,"rtl-ecl-lightning-payments",49),t.qZA(),t.TgZ(6,"mat-tab",50),t.YNc(7,Ti,9,2,"ng-template",51),t.qZA(),t.qZA(),t.qZA()),2&n&&(t.xp6(3),t.Q6J("calledFrom","home"),t.xp6(2),t.Q6J("calledFrom","home"),t.xp6(1),t.Q6J("disabled",!0))}function Li(n,a){1&n&&(t.TgZ(0,"h3"),t._uU(1,"Error! Unable to find information!"),t.qZA())}const vi=function(n){return{"p-0":n}};function bi(n,a){if(1&n&&(t.TgZ(0,"mat-grid-tile",8),t.TgZ(1,"mat-card",35),t.YNc(2,fi,12,4,"mat-card-header",36),t.TgZ(3,"mat-card-content",37),t.YNc(4,_i,1,0,"mat-progress-bar",18),t.TgZ(5,"div",19),t.YNc(6,Ci,1,1,"rtl-ecl-node-info",38),t.YNc(7,xi,1,2,"rtl-ecl-balances-info",21),t.YNc(8,yi,1,4,"rtl-ecl-channel-liquidity-info",39),t.YNc(9,Zi,1,4,"rtl-ecl-channel-liquidity-info",39),t.YNc(10,Ai,8,3,"span",40),t.YNc(11,Li,2,0,"h3",25),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.Q6J("colspan",e.cols)("rowspan",e.rows),t.xp6(1),t.Q6J("ngClass",t.VKq(13,vi,"transactions"===e.id)),t.xp6(1),t.Q6J("ngIf","transactions"!==e.id),t.xp6(1),t.s9C("fxFlex","transactions"===e.id?100:"balance"===e.id?70:90),t.Q6J("ngClass",t.VKq(15,ft,"node"===e.id&&i.apiCallStatusNodeInfo.status===i.apiCallStatusEnum.ERROR||"balance"===e.id&&(i.apiCallStatusAllChannels.status===i.apiCallStatusEnum.ERROR||i.apiCallStatusOCBal.status===i.apiCallStatusEnum.ERROR)||("inboundLiq"===e.id||"outboundLiq"===e.id)&&i.apiCallStatusAllChannels.status===i.apiCallStatusEnum.ERROR)),t.xp6(1),t.Q6J("ngIf","node"===e.id&&i.apiCallStatusNodeInfo.status===i.apiCallStatusEnum.INITIATED||"balance"===e.id&&(i.apiCallStatusAllChannels.status===i.apiCallStatusEnum.INITIATED||i.apiCallStatusOCBal.status===i.apiCallStatusEnum.INITIATED)||("inboundLiq"===e.id||"outboundLiq"===e.id)&&i.apiCallStatusAllChannels.status===i.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngSwitch",e.id),t.xp6(1),t.Q6J("ngSwitchCase","node"),t.xp6(1),t.Q6J("ngSwitchCase","balance"),t.xp6(1),t.Q6J("ngSwitchCase","inboundLiq"),t.xp6(1),t.Q6J("ngSwitchCase","outboundLiq"),t.xp6(1),t.Q6J("ngSwitchCase","transactions")}}function Si(n,a){if(1&n&&(t.TgZ(0,"div",33),t._UZ(1,"fa-icon",4),t.TgZ(2,"span",5),t._uU(3),t.qZA(),t.qZA(),t.TgZ(4,"mat-grid-list",34),t.YNc(5,bi,12,17,"mat-grid-tile",7),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("icon",e.faSmile),t.xp6(2),t.hij("Welcome ",e.information.alias,"! Your node is up and running."),t.xp6(1),t.Q6J("rowHeight",e.merchantCardHeight),t.xp6(1),t.Q6J("ngForOf",e.merchantCards)}}let wi=(()=>{class n{constructor(e,i,o,s){this.logger=e,this.store=i,this.commonService=o,this.router=s,this.faSmile=ct.I3,this.faFrown=ct.Kf,this.faAngleDoubleDown=Z.Sbq,this.faAngleDoubleUp=Z.Vfw,this.faChartPie=Z.OS1,this.faBolt=Z.BDt,this.faServer=Z.xf3,this.faNetworkWired=Z.kXW,this.userPersonaEnum=l.ol,this.channelBalances={localBalance:0,remoteBalance:0,balancedness:0},this.selNode={},this.information={},this.channels=[],this.onchainBalance={},this.balances={onchain:-1,lightning:-1,total:0},this.channelsStatus={},this.allChannelsCapacity=[],this.allInboundChannels=[],this.allOutboundChannels=[],this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.operatorCards=[],this.merchantCards=[],this.screenSize="",this.operatorCardHeight="330px",this.merchantCardHeight="65px",this.sortField="Balance Score",this.errorMessages=["","","",""],this.apiCallStatusNodeInfo={status:l.Bn.COMPLETED},this.apiCallStatusFees={status:l.Bn.COMPLETED},this.apiCallStatusOCBal={status:l.Bn.COMPLETED},this.apiCallStatusAllChannels={status:l.Bn.COMPLETED},this.apiCallStatusEnum=l.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:10,rows:1},{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:10,rows:1},{id:"fee",goTo:"Routing",link:"/ecl/routing",icon:this.faBolt,title:"Routing Fee",cols:10,rows:1},{id:"status",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels",cols:10,rows:1},{id:"capacity",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:6,rows:4},{id:"transactions",goTo:"Transactions",link:"/ecl/transactions",title:"",cols:6,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:6,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:6,rows:8}]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:5,rows:1},{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:5,rows:1},{id:"fee",goTo:"Routing",link:"/ecl/routing",icon:this.faBolt,title:"Routing Fee",cols:5,rows:1},{id:"status",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels",cols:5,rows:1},{id:"capacity",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:4},{id:"transactions",goTo:"Transactions",link:"/ecl/transactions",title:"",cols:3,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:3,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:3,rows:8}]):(this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:3,rows:1},{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:1},{id:"capacity",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:4,rows:2},{id:"fee",goTo:"Routing",link:"/ecl/routing",icon:this.faBolt,title:"Routing Fee",cols:3,rows:1},{id:"status",goTo:"Channels",link:"/ecl/connections",icon:this.faNetworkWired,title:"Channels",cols:3,rows:1}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/ecl/onchain",icon:this.faChartPie,title:"Balances",cols:2,rows:5},{id:"inboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:2,rows:10},{id:"outboundLiq",goTo:"Channels",link:"/ecl/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:2,rows:10},{id:"transactions",goTo:"Transactions",link:"/ecl/transactions",title:"",cols:2,rows:5}])}ngOnInit(){this.store.select(_.LR).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.selNode=e}),this.store.select(_.T$).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.errorMessages[0]="",this.apiCallStatusNodeInfo=e.apiCallStatus,this.apiCallStatusNodeInfo.status===l.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apiCallStatusNodeInfo.message?JSON.stringify(this.apiCallStatusNodeInfo.message):this.apiCallStatusNodeInfo.message),this.information=e.information}),this.store.select(_.JG).pipe((0,h.R)(this.unSubs[2])).subscribe(e=>{this.errorMessages[1]="",this.apiCallStatusFees=e.apiCallStatus,this.apiCallStatusFees.status===l.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apiCallStatusFees.message?JSON.stringify(this.apiCallStatusFees.message):this.apiCallStatusFees.message),this.fees=e.fees}),this.store.select(_.Xz).pipe((0,h.R)(this.unSubs[3]),(0,tt.M)(this.store.select(_.kY))).subscribe(([e,i])=>{this.errorMessages[2]="",this.errorMessages[3]="",this.apiCallStatusAllChannels=e.apiCallStatus,this.apiCallStatusOCBal=i.apiCallStatus,this.apiCallStatusAllChannels.status===l.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apiCallStatusAllChannels.message?JSON.stringify(this.apiCallStatusAllChannels.message):this.apiCallStatusAllChannels.message),this.apiCallStatusOCBal.status===l.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apiCallStatusOCBal.message?JSON.stringify(this.apiCallStatusOCBal.message):this.apiCallStatusOCBal.message),this.channels=e.activeChannels,this.onchainBalance=i.onchainBalance,this.balances.onchain=this.onchainBalance.total,this.balances.lightning=e.lightningBalance.localBalance,this.balances.total=this.balances.lightning+this.balances.onchain,this.balances=Object.assign({},this.balances);const o=e.lightningBalance.localBalance?+e.lightningBalance.localBalance:0,s=e.lightningBalance.remoteBalance?+e.lightningBalance.remoteBalance:0;this.channelBalances={localBalance:o,remoteBalance:s,balancedness:+(1-Math.abs((o-s)/(o+s))).toFixed(3)},this.channelsStatus=e.channelsStatus,this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.allChannelsCapacity=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.channels,"balancedness"))),this.allInboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.channels.filter(f=>f.toRemote>0),"toRemote"))),this.allOutboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.channels.filter(f=>f.toLocal>0),"toLocal"))),this.channels.forEach(f=>{this.totalInboundLiquidity=this.totalInboundLiquidity+Math.ceil(f.toRemote),this.totalOutboundLiquidity=this.totalOutboundLiquidity+Math.floor(f.toLocal)}),this.logger.info(e)})}onNavigateTo(e){this.router.navigateByUrl(e)}onsortChannelsBy(){"Balance Score"===this.sortField?(this.sortField="Capacity",this.allChannelsCapacity=this.channels.sort((e,i)=>{const o=+e.toLocal+ +e.toRemote,s=+i.toLocal+ +i.toRemote;return o>s?-1:o{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(b.yh),t.Y36(O.v),t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-home"]],decls:3,vars:2,consts:[["fxLayout","column",4,"ngIf","ngIfElse"],["merchantDashboard",""],["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","mb-0"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["cols","10",3,"rowHeight"],[3,"colspan","rowspan",4,"ngFor","ngForOf"],[3,"colspan","rowspan"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4"],["fxLayoutAlign","space-between center"],[1,"mr-1",3,"icon"],["mat-icon-button","","class","more-button","aria-label","Toggle menu",3,"matMenuTriggerFor",4,"ngIf"],["xPosition","before",1,"dashboard-vert-menu"],["menuOperator","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngIf"],["fxLayout","column",3,"fxFlex","ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"balances","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],[4,"ngSwitchDefault"],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",3,"matMenuTriggerFor"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"balances","errorMessage"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container","mb-0"],["cols","6",3,"rowHeight"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4",3,"ngClass"],[4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",3,"fxFlex","ngClass"],["fxFlex","100",3,"information",4,"ngSwitchCase"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage",4,"ngSwitchCase"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start",4,"ngSwitchCase"],["menuMerchant","matMenu"],["fxFlex","100",3,"information"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start"],["fxLayout","column",1,"w-100","dashboard-tabs-group"],["label","Receive"],[1,"h-100",3,"calledFrom"],["label","Pay"],[3,"calledFrom"],[3,"disabled"],["mat-tab-label",""],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",2,"max-width","20px",3,"matMenuTriggerFor"],["menuTransactions","matMenu"]],template:function(e,i){if(1&e&&(t.YNc(0,hi,7,4,"div",0),t.YNc(1,Si,6,4,"ng-template",null,1,t.W1O)),2&e){const o=t.MAs(2);t.Q6J("ngIf",(null==i.selNode?null:i.selNode.userPersona)===i.userPersonaEnum.OPERATOR)("ngIfElse",o)}},directives:[u.O5,p.xw,p.Wh,I.BN,ut.Il,u.sg,ut.DX,A.a8,p.yH,A.dk,A.n5,et.VK,et.OP,A.dn,u.mk,S.oO,u.RF,u.n9,u.ED,q.lW,et.p6,pt.Hw,M.pW,Jt,Ht,$t,jt,ne,he,N.SP,N.uX,dt,gt,N.uD],styles:[""]}),n})();var Ei=g(8377);const qi=["form"];function Ii(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Bitcoin address is required."),t.qZA())}function Fi(n,a){if(1&n&&(t.TgZ(0,"mat-error"),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Oqu(e.amountError)}}function Oi(n,a){if(1&n&&(t.TgZ(0,"mat-option",29),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.Q6J("value",e),t.xp6(1),t.Oqu(e)}}function Ri(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Target Confirmation Blocks is required."),t.qZA())}function Ni(n,a){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.sendFundError)}}function ki(n,a){if(1&n&&(t.TgZ(0,"div",30),t._UZ(1,"fa-icon",31),t.YNc(2,Ni,2,1,"span",12),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("icon",e.faExclamationTriangle),t.xp6(1),t.Q6J("ngIf",""!==e.sendFundError)}}let _t=(()=>{class n{constructor(e,i,o,s,c,f){this.dialogRef=e,this.logger=i,this.store=o,this.commonService=s,this.decimalPipe=c,this.actions=f,this.faExclamationTriangle=Z.eHv,this.selNode={},this.addressTypes=[],this.selectedAddress=l._t[1],this.blockchainBalance={},this.information={},this.newAddress="",this.transaction={},this.sendFundError="",this.fiatConversion=!1,this.amountUnits=l.uA,this.selAmountUnit=l.uA[0],this.currConvertorRate={},this.unitConversionValue=0,this.currencyUnitFormats=l.Xz,this.amountError="Amount is Required.",this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.store.select(Ei.dT).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.fiatConversion=e.settings.fiatConversion,this.amountUnits=e.settings.currencyUnits,this.logger.info(e)}),this.actions.pipe((0,h.R)(this.unSubs[1]),(0,J.h)(e=>e.type===l.lr.UPDATE_API_CALL_STATUS_ECL||e.type===l.lr.SEND_ONCHAIN_FUNDS_RES_ECL)).subscribe(e=>{e.type===l.lr.SEND_ONCHAIN_FUNDS_RES_ECL&&(this.store.dispatch((0,v.jW)({payload:"Fund Sent Successfully!"})),this.dialogRef.close()),e.type===l.lr.UPDATE_API_CALL_STATUS_ECL&&e.payload.status===l.Bn.ERROR&&"SendOnchainFunds"===e.payload.action&&(this.sendFundError=e.payload.message)})}onSendFunds(){if(this.invalidValues)return!0;this.sendFundError="",this.transaction.amount&&this.selAmountUnit!==l.NT.SATS?this.commonService.convertCurrency(this.transaction.amount,this.selAmountUnit===this.amountUnits[2]?l.NT.OTHER:this.selAmountUnit,l.NT.SATS,this.amountUnits[2],this.fiatConversion).pipe((0,h.R)(this.unSubs[2])).subscribe({next:e=>{this.transaction.amount=parseInt(e[l.NT.SATS]),this.selAmountUnit=l.NT.SATS,this.store.dispatch((0,R.Iy)({payload:this.transaction}))},error:e=>{this.transaction.amount=null,this.selAmountUnit=l.NT.SATS,this.amountError="Conversion Error: "+e}}):this.store.dispatch((0,R.Iy)({payload:this.transaction}))}get invalidValues(){return!this.transaction.address||""===this.transaction.address||!this.transaction.amount||this.transaction.amount<=0||!this.transaction.blocks||this.transaction.blocks<=0}resetData(){this.sendFundError="",this.transaction={}}onAmountUnitChange(e){const i=this,o=this.selAmountUnit===this.amountUnits[2]?l.NT.OTHER:this.selAmountUnit;let s=e.value===this.amountUnits[2]?l.NT.OTHER:e.value;this.transaction.amount&&this.selAmountUnit!==e.value&&this.commonService.convertCurrency(this.transaction.amount,o,s,this.amountUnits[2],this.fiatConversion).pipe((0,h.R)(this.unSubs[3])).subscribe({next:c=>{this.selAmountUnit=e.value,i.transaction.amount=+i.decimalPipe.transform(c[s],i.currencyUnitFormats[s]).replace(/,/g,"")},error:c=>{i.transaction.amount=null,this.amountError="Conversion Error: "+c,this.selAmountUnit=o,s=o}})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(D.so),t.Y36(F.mQ),t.Y36(b.yh),t.Y36(O.v),t.Y36(u.JJ),t.Y36(B.eX))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-on-chain-send-modal"]],viewQuery:function(e,i){if(1&e&&t.Gf(qi,7),2&e){let o;t.iGM(o=t.CRH())&&(i.form=o.first)}},decls:36,vars:15,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between start",1,"overflow-x-hidden",3,"submit","reset"],["form","ngForm"],["fxFlex","55"],["matInput","","autoFocus","","placeholder","Bitcoin Address","tabindex","1","name","addr","required","",3,"ngModel","ngModelChange"],["addrs","ngModel"],[4,"ngIf"],["fxFlex","30"],["matInput","","placeholder","Amount","name","amt","type","number","tabindex","2","required","",3,"ngModel","step","min","ngModelChange"],["amnt","ngModel"],["matSuffix",""],["fxFlex","10","fxLayoutAlign","start end"],["tabindex","3","required","","name","amountUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","60","fxLayoutAlign","space-between stretch","fxLayout","row wrap"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["matInput","","placeholder","Target Confirmation Blocks","type","number","name","blocks","tabindex","8","required","true",3,"ngModel","step","min","ngModelChange"],["blocks","ngModel"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["mat-button","","color","primary","type","submit","tabindex","8"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t.TgZ(4,"span",4),t._uU(5,"Send Payment"),t.qZA(),t.qZA(),t.TgZ(6,"button",5),t._uU(7,"X"),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",6),t.TgZ(9,"form",7,8),t.NdJ("submit",function(){return i.onSendFunds()})("reset",function(){return i.resetData()}),t.TgZ(11,"mat-form-field",9),t.TgZ(12,"input",10,11),t.NdJ("ngModelChange",function(s){return i.transaction.address=s}),t.qZA(),t.YNc(14,Ii,2,0,"mat-error",12),t.qZA(),t.TgZ(15,"mat-form-field",13),t.TgZ(16,"input",14,15),t.NdJ("ngModelChange",function(s){return i.transaction.amount=s}),t.qZA(),t.TgZ(18,"span",16),t._uU(19),t.qZA(),t.YNc(20,Fi,2,1,"mat-error",12),t.qZA(),t.TgZ(21,"mat-form-field",17),t.TgZ(22,"mat-select",18),t.NdJ("selectionChange",function(s){return i.onAmountUnitChange(s)}),t.YNc(23,Oi,2,2,"mat-option",19),t.qZA(),t.qZA(),t.TgZ(24,"div",20),t.TgZ(25,"mat-form-field",21),t.TgZ(26,"input",22,23),t.NdJ("ngModelChange",function(s){return i.transaction.blocks=s}),t.qZA(),t.YNc(28,Ri,2,0,"mat-error",12),t.qZA(),t.qZA(),t._UZ(29,"div",24),t.YNc(30,ki,3,2,"div",25),t.TgZ(31,"div",26),t.TgZ(32,"button",27),t._uU(33,"Clear Fields"),t.qZA(),t.TgZ(34,"button",28),t._uU(35,"Send Funds"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(6),t.Q6J("mat-dialog-close",!1),t.xp6(6),t.Q6J("ngModel",i.transaction.address),t.xp6(2),t.Q6J("ngIf",!i.transaction.address),t.xp6(2),t.Q6J("ngModel",i.transaction.amount)("step",100)("min",0),t.xp6(3),t.hij(" ",i.selAmountUnit," "),t.xp6(1),t.Q6J("ngIf",!i.transaction.amount),t.xp6(2),t.Q6J("value",i.selAmountUnit),t.xp6(1),t.Q6J("ngForOf",i.amountUnits),t.xp6(3),t.Q6J("ngModel",i.transaction.blocks)("step",1)("min",0),t.xp6(2),t.Q6J("ngIf",!i.transaction.blocks),t.xp6(2),t.Q6J("ngIf",""!==i.sendFundError))},directives:[p.xw,p.yH,A.dk,p.Wh,q.lW,D.ZT,A.dn,m._Y,m.JL,m.F,x.KE,U.Nt,m.Fj,X.h,m.Q7,m.JJ,m.On,u.O5,m.wV,m.qQ,$.q,x.R9,k.gD,u.sg,x.TO,Q.ey,I.BN],styles:[""]}),n})();var at=g(1203);function Pi(n,a){1&n&&t._UZ(0,"mat-progress-bar",31)}function Di(n,a){1&n&&(t.TgZ(0,"th",32),t._uU(1," Date/Time "),t.qZA())}function Ui(n,a){if(1&n&&(t.TgZ(0,"td",33),t._uU(1),t.ALo(2,"date"),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Oqu(t.xi3(2,1,1e3*e.timestamp,"dd/MMM/YYYY HH:mm"))}}function Mi(n,a){1&n&&(t.TgZ(0,"th",34),t._uU(1," Amount (Sats) "),t.qZA())}function Ji(n,a){if(1&n&&(t.TgZ(0,"span",37),t._uU(1),t.ALo(2,"number"),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(t.lcZ(2,1,e.amount))}}function Yi(n,a){if(1&n&&(t.TgZ(0,"span",38),t._uU(1),t.ALo(2,"number"),t.qZA()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.hij("(",t.lcZ(2,1,-1*e.amount),")")}}function Qi(n,a){if(1&n&&(t.TgZ(0,"td",33),t.YNc(1,Ji,3,3,"span",35),t.YNc(2,Yi,3,3,"span",36),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Q6J("ngIf",e.amount>0||0===e.amount),t.xp6(1),t.Q6J("ngIf",e.amount<0)}}function Hi(n,a){1&n&&(t.TgZ(0,"th",34),t._uU(1," Fees (Sats) "),t.qZA())}function Bi(n,a){if(1&n&&(t.TgZ(0,"td",33),t.TgZ(1,"span",37),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,e.fees))}}function zi(n,a){1&n&&(t.TgZ(0,"th",39),t._uU(1," Confirmations "),t.qZA())}function Vi(n,a){if(1&n&&(t.TgZ(0,"td",40),t.TgZ(1,"span",37),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",t.lcZ(3,1,null==e?null:e.confirmations)," ")}}function Gi(n,a){1&n&&(t.TgZ(0,"th",32),t._uU(1," Address "),t.qZA())}function Xi(n,a){if(1&n&&(t.TgZ(0,"td",33),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Oqu(e.address)}}function $i(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"th",41),t.TgZ(1,"div",42),t.TgZ(2,"mat-select",43),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",44),t.NdJ("click",function(){return t.CHM(e),t.oxw().onDownloadCSV()}),t._uU(5,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function Wi(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",45),t.TgZ(1,"button",46),t.NdJ("click",function(o){const c=t.CHM(e).$implicit;return t.oxw().onTransactionClick(c,o)}),t._uU(2,"View Info"),t.qZA(),t.qZA()}}function Ki(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No transaction available."),t.qZA())}function ji(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting transactions..."),t.qZA())}function ta(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.errorMessage)}}function ea(n,a){if(1&n&&(t.TgZ(0,"td",47),t.YNc(1,Ki,2,0,"p",48),t.YNc(2,ji,2,0,"p",48),t.YNc(3,ta,2,1,"p",48),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",(!(null!=e.listTransactions&&e.listTransactions.data)||(null==e.listTransactions||null==e.listTransactions.data?null:e.listTransactions.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.listTransactions&&e.listTransactions.data)||(null==e.listTransactions||null==e.listTransactions.data?null:e.listTransactions.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.listTransactions&&e.listTransactions.data)||(null==e.listTransactions||null==e.listTransactions.data?null:e.listTransactions.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}const na=function(n){return{"display-none":n}};function ia(n,a){if(1&n&&t._UZ(0,"tr",49),2&n){const e=t.oxw();t.Q6J("ngClass",t.VKq(1,na,(null==e.listTransactions?null:e.listTransactions.data)&&(null==e.listTransactions||null==e.listTransactions.data?null:e.listTransactions.data.length)>0))}}function aa(n,a){1&n&&t._UZ(0,"tr",50)}function oa(n,a){1&n&&t._UZ(0,"tr",51)}const sa=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},la=function(){return["no_transaction"]};let ra=(()=>{class n{constructor(e,i,o,s){this.logger=e,this.commonService=i,this.store=o,this.datePipe=s,this.faHistory=Z.qO$,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unsub=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","confirmations","fees","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["timestamp","amount","fees","confirmations","address","actions"]):(this.flgSticky=!0,this.displayedColumns=["timestamp","amount","fees","confirmations","address","actions"])}ngOnInit(){this.store.dispatch((0,R.mC)()),this.store.select(_.dx).pipe((0,h.R)(this.unsub[0])).subscribe(e=>{this.errorMessage="",this.apiCallStatus=e.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),e.transactions&&this.loadTransactionsTable(e.transactions),this.logger.info(e)})}applyFilter(){this.listTransactions.filter=this.selFilter.trim().toLowerCase()}onTransactionClick(e,i){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Transaction Information",message:[[{key:"blockHash",value:e.blockHash,title:"Block Hash",width:100}],[{key:"txid",value:e.txid,title:"Transaction ID",width:100}],[{key:"timestamp",value:e.timestamp,title:"Date/Time",width:50,type:l.Gi.DATE_TIME},{key:"confirmations",value:e.confirmations,title:"Number of Confirmations",width:50,type:l.Gi.NUMBER}],[{key:"fees",value:e.fees,title:"Fees (Sats)",width:50,type:l.Gi.NUMBER},{key:"amount",value:e.amount,title:"Amount (Sats)",width:50,type:l.Gi.NUMBER}],[{key:"address",value:e.address,title:"Address",width:100,type:l.Gi.STRING}]]}}}))}loadTransactionsTable(e){this.listTransactions=new r.by([...e]),this.listTransactions.sort=this.sort,this.listTransactions.sortingDataAccessor=(i,o)=>i[o]&&isNaN(i[o])?i[o].toLocaleLowerCase():i[o]?+i[o]:null,this.listTransactions.filterPredicate=(i,o)=>((i.timestamp?this.datePipe.transform(new Date(1e3*i.timestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(i).toLowerCase()).includes(o),this.listTransactions.paginator=this.paginator,this.applyFilter(),this.logger.info(this.listTransactions)}onDownloadCSV(){this.listTransactions.data&&this.listTransactions.data.length>0&&this.commonService.downloadFile(this.listTransactions.data,"Transactions")}ngOnDestroy(){this.unsub.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(O.v),t.Y36(b.yh),t.Y36(u.uU))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-on-chain-transaction-history"]],viewQuery:function(e,i){if(1&e&&(t.Gf(T.YE,5),t.Gf(L.NW,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.sort=o.first),t.iGM(o=t.CRH())&&(i.paginator=o.first)}},features:[t._Bn([{provide:L.ye,useValue:(0,l.pt)("Transactions")}])],decls:37,vars:15,consts:[["fxLayout","row wrap","fxLayoutAlign","start start","fxLayout.gt-sm","column","fxFlex","100","fxLayoutAlign.gt-sm","start stretch"],["fxLayout","column","fxLayout.gt-xs","row wrap","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","timestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","fees"],["matColumnDef","confirmations"],["mat-header-cell","","mat-sort-header","","arrowPosition","before","class","pr-2",4,"matHeaderCellDef"],["mat-cell","","class","pr-2",4,"matCellDef"],["matColumnDef","address"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_transaction"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center",4,"ngIf"],["fxLayoutAlign","end center","class","red",4,"ngIf"],["fxLayoutAlign","end center"],["fxLayoutAlign","end center",1,"red"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",1,"pr-2"],["mat-cell","",1,"pr-2"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"div",2),t._UZ(3,"fa-icon",3),t.TgZ(4,"span",4),t._uU(5,"Transaction History"),t.qZA(),t.qZA(),t.TgZ(6,"mat-form-field",5),t.TgZ(7,"input",6),t.NdJ("keyup",function(){return i.applyFilter()})("ngModelChange",function(s){return i.selFilter=s}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"div",7),t.TgZ(9,"div",8),t.YNc(10,Pi,1,0,"mat-progress-bar",9),t.TgZ(11,"table",10,11),t.ynx(13,12),t.YNc(14,Di,2,0,"th",13),t.YNc(15,Ui,3,4,"td",14),t.BQk(),t.ynx(16,15),t.YNc(17,Mi,2,0,"th",16),t.YNc(18,Qi,3,2,"td",14),t.BQk(),t.ynx(19,17),t.YNc(20,Hi,2,0,"th",16),t.YNc(21,Bi,4,3,"td",14),t.BQk(),t.ynx(22,18),t.YNc(23,zi,2,0,"th",19),t.YNc(24,Vi,4,3,"td",20),t.BQk(),t.ynx(25,21),t.YNc(26,Gi,2,0,"th",13),t.YNc(27,Xi,2,1,"td",14),t.BQk(),t.ynx(28,22),t.YNc(29,$i,6,0,"th",23),t.YNc(30,Wi,3,0,"td",24),t.BQk(),t.ynx(31,25),t.YNc(32,ea,4,3,"td",26),t.BQk(),t.YNc(33,ia,1,3,"tr",27),t.YNc(34,aa,1,0,"tr",28),t.YNc(35,oa,1,0,"tr",29),t.qZA(),t._UZ(36,"mat-paginator",30),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(3),t.Q6J("icon",i.faHistory),t.xp6(4),t.Q6J("ngModel",i.selFilter),t.xp6(3),t.Q6J("ngIf",i.apiCallStatus.status===i.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",i.listTransactions)("ngClass",t.VKq(12,sa,""!==i.errorMessage)),t.xp6(22),t.Q6J("matFooterRowDef",t.DdM(14,la)),t.xp6(1),t.Q6J("matHeaderRowDef",i.displayedColumns)("matHeaderRowDefSticky",i.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",i.displayedColumns),t.xp6(1),t.Q6J("pageSize",i.pageSize)("pageSizeOptions",i.pageSizeOptions)("showFirstLastButtons",i.screenSize!==i.screenSizeEnum.XS))},directives:[p.xw,p.Wh,p.yH,I.BN,x.KE,U.Nt,m.Fj,m.JJ,m.On,Y.$V,u.O5,r.BZ,T.YE,u.mk,S.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,L.NW,M.pW,r.ge,T.nU,r.ev,k.gD,k.$L,Q.ey,q.lW,r.yh,r.Q2,r.XQ,r.Gk],pipes:[u.uU,u.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();function ca(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",12),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().activeLink=s.link}),t._uU(1),t.qZA()}if(2&n){const e=a.$implicit,i=t.oxw();t.s9C("routerLink",e.link),t.Q6J("active",i.activeLink===e.link),t.xp6(1),t.Oqu(e.name)}}let ua=(()=>{class n{constructor(e,i){this.store=e,this.router=i,this.selNode={},this.faExchangeAlt=Z.Ssp,this.faChartPie=Z.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"receive",name:"Receive"},{link:"send",name:"Send"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const e=this.links.find(i=>this.router.url.includes(i.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,h.R)(this.unSubs[0]),(0,J.h)(i=>i instanceof y.Av)).subscribe(i=>{const o=this.links.find(s=>i.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link}),this.store.select(_.LR).pipe((0,h.R)(this.unSubs[1])).subscribe(i=>{this.selNode=i}),this.store.select(_.kY).pipe((0,h.R)(this.unSubs[2])).subscribe(i=>{this.balances=[{title:"Total Balance",dataValue:i.onchainBalance.total||0},{title:"Confirmed",dataValue:i.onchainBalance.confirmed},{title:"Unconfirmed",dataValue:i.onchainBalance.unconfirmed}]})}openSendFundsModal(){this.store.dispatch((0,v.qR)({payload:{data:{component:_t}}}))}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(b.yh),t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-on-chain"]],decls:21,vars:4,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large","mt-2"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["fxLayout","row","fxFlex","100"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"On-chain Balance"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t._UZ(7,"rtl-currency-unit-converter",5),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"div",0),t._UZ(9,"fa-icon",1),t.TgZ(10,"span",2),t._uU(11,"On-chain Transactions"),t.qZA(),t.qZA(),t.TgZ(12,"div",6),t.TgZ(13,"mat-card"),t.TgZ(14,"mat-card-content",4),t.TgZ(15,"nav",7),t.YNc(16,ca,2,3,"div",8),t.qZA(),t.TgZ(17,"div",9),t._UZ(18,"router-outlet"),t.qZA(),t.TgZ(19,"div",10),t._UZ(20,"rtl-ecl-on-chain-transaction-history",11),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(1),t.Q6J("icon",i.faChartPie),t.xp6(6),t.Q6J("values",i.balances),t.xp6(2),t.Q6J("icon",i.faExchangeAlt),t.xp6(7),t.Q6J("ngForOf",i.links))},directives:[p.xw,p.Wh,I.BN,A.a8,A.dn,at.D,N.BU,u.sg,p.yH,y.lC,ra,N.Nj,y.rH],styles:[""]}),n})();var Ct=g(7544);function pa(n,a){if(1&n&&(t.TgZ(0,"span",10),t._uU(1,"Channels"),t.qZA()),2&n){const e=t.oxw();t.s9C("matBadge",e.activeChannels)}}function ma(n,a){if(1&n&&(t.TgZ(0,"span",10),t._uU(1,"Peers"),t.qZA()),2&n){const e=t.oxw();t.s9C("matBadge",e.activePeers)}}let da=(()=>{class n{constructor(e,i){this.store=e,this.router=i,this.activePeers=0,this.activeChannels=0,this.faUsers=Z.FVb,this.faChartPie=Z.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"channels",name:"Channels"},{link:"peers",name:"Peers"}],this.activeLink=0,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.activeLink=this.links.findIndex(e=>e.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,h.R)(this.unSubs[0]),(0,J.h)(e=>e instanceof y.Av)).subscribe(e=>{this.activeLink=this.links.findIndex(i=>i.link===e.urlAfterRedirects.substring(e.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select(_.Bo).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.activePeers=e.peers&&e.peers.length?e.peers.length:0}),this.store.select(_.Xz).pipe((0,h.R)(this.unSubs[2])).subscribe(e=>{this.activeChannels=e.channelsStatus&&e.channelsStatus.active&&e.channelsStatus.active.channels?e.channelsStatus.active.channels:0}),this.store.select(_.kY).pipe((0,h.R)(this.unSubs[3])).subscribe(e=>{this.balances=[{title:"Total Balance",dataValue:e.onchainBalance.total||0},{title:"Confirmed",dataValue:e.onchainBalance.confirmed},{title:"Unconfirmed",dataValue:e.onchainBalance.unconfirmed}]})}onSelectedTabChange(e){this.router.navigateByUrl("/ecl/connections/"+this.links[e.index].link)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(b.yh),t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-connections"]],decls:22,vars:4,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"On-chain Balance"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t._UZ(7,"rtl-currency-unit-converter",5),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"div",0),t._UZ(9,"fa-icon",1),t.TgZ(10,"span",2),t._uU(11,"Connections"),t.qZA(),t.qZA(),t.TgZ(12,"div",6),t.TgZ(13,"mat-card"),t.TgZ(14,"mat-card-content",4),t.TgZ(15,"mat-tab-group",7),t.NdJ("selectedIndexChange",function(s){return i.activeLink=s})("selectedTabChange",function(s){return i.onSelectedTabChange(s)}),t.TgZ(16,"mat-tab"),t.YNc(17,pa,2,1,"ng-template",8),t.qZA(),t.TgZ(18,"mat-tab"),t.YNc(19,ma,2,1,"ng-template",8),t.qZA(),t.qZA(),t.TgZ(20,"div",9),t._UZ(21,"router-outlet"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(1),t.Q6J("icon",i.faChartPie),t.xp6(6),t.Q6J("values",i.balances),t.xp6(2),t.Q6J("icon",i.faUsers),t.xp6(6),t.Q6J("selectedIndex",i.activeLink))},directives:[p.xw,p.Wh,I.BN,A.a8,A.dn,at.D,N.SP,N.uX,N.uD,p.yH,y.lC,Ct.k],styles:[""]}),n})();function ha(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",11),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().activeLink=s.link}),t._uU(1),t.qZA()}if(2&n){const e=a.$implicit,i=t.oxw();t.s9C("routerLink",e.link),t.Q6J("active",i.activeLink===e.link),t.xp6(1),t.Oqu(e.name)}}let ga=(()=>{class n{constructor(e,i,o){this.logger=e,this.store=i,this.router=o,this.faExchangeAlt=Z.Ssp,this.faChartPie=Z.OS1,this.currencyUnits=[],this.balances=[{title:"Local Capacity",dataValue:0,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:0,tooltip:"Amount you can receive"}],this.links=[{link:"payments",name:"Payments"},{link:"invoices",name:"Invoices"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const e=this.links.find(i=>this.router.url.includes(i.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,h.R)(this.unSubs[0]),(0,J.h)(i=>i instanceof y.Av)).subscribe(i=>{const o=this.links.find(s=>i.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link}),this.store.select(_.Xz).pipe((0,h.R)(this.unSubs[1]),(0,tt.M)(this.store.select(_.LR))).subscribe(([i,o])=>{this.currencyUnits=o.currencyUnits,this.balances=o.userPersona===l.ol.OPERATOR?[{title:"Local Capacity",dataValue:i.lightningBalance.localBalance,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:i.lightningBalance.remoteBalance,tooltip:"Amount you can receive"}]:[{title:"Outbound Capacity",dataValue:i.lightningBalance.localBalance,tooltip:"Amount you can send"},{title:"Inbound Capacity",dataValue:i.lightningBalance.remoteBalance,tooltip:"Amount you can receive"}],this.logger.info(i)})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(b.yh),t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-transactions"]],decls:19,vars:4,consts:[["fxLayout","row wrap","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"Lightning Balance"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t._UZ(7,"rtl-currency-unit-converter",5),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"div",6),t._UZ(9,"fa-icon",1),t.TgZ(10,"span",2),t._uU(11,"Lightning Transactions"),t.qZA(),t.qZA(),t.TgZ(12,"div",7),t.TgZ(13,"mat-card"),t.TgZ(14,"mat-card-content",4),t.TgZ(15,"nav",8),t.YNc(16,ha,2,3,"div",9),t.qZA(),t.TgZ(17,"div",10),t._UZ(18,"router-outlet"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(1),t.Q6J("icon",i.faChartPie),t.xp6(6),t.Q6J("values",i.balances),t.xp6(2),t.Q6J("icon",i.faExchangeAlt),t.xp6(7),t.Q6J("ngForOf",i.links))},directives:[p.xw,p.Wh,I.BN,A.a8,A.dn,at.D,N.BU,u.sg,p.yH,y.lC,N.Nj,y.rH],styles:[""]}),n})();function fa(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",11),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().activeLink=s.link}),t._uU(1),t.qZA()}if(2&n){const e=a.$implicit,i=t.oxw();t.s9C("routerLink",e.link),t.Q6J("active",i.activeLink===e.link),t.xp6(1),t.Oqu(e.name)}}let _a=(()=>{class n{constructor(e){this.router=e,this.faMapSigns=Z.SuH,this.events=[],this.flgLoading=[!0],this.errorMessage="",this.links=[{link:"forwardinghistory",name:"Forwarding History"},{link:"peers",name:"Routing Peers"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x]}ngOnInit(){const e=this.links.find(i=>this.router.url.includes(i.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,h.R)(this.unSubs[0]),(0,J.h)(i=>i instanceof y.Av)).subscribe(i=>{const o=this.links.find(s=>i.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-routing"]],decls:13,vars:2,consts:[["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap-x"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","row","fxFlex","100"],["mat-tab-nav-bar","","fxFlex","100"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t._UZ(2,"fa-icon",2),t.TgZ(3,"span",3),t._uU(4,"Routing"),t.qZA(),t.qZA(),t.TgZ(5,"div",4),t.TgZ(6,"mat-card",5),t.TgZ(7,"mat-card-content",6),t.TgZ(8,"div",7),t.TgZ(9,"nav",8),t.YNc(10,fa,2,3,"div",9),t.qZA(),t.qZA(),t.TgZ(11,"div",10),t._UZ(12,"router-outlet"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(2),t.Q6J("icon",i.faMapSigns),t.xp6(8),t.Q6J("ngForOf",i.links))},directives:[p.xw,p.Wh,I.BN,p.yH,A.a8,A.dn,N.BU,u.sg,y.lC,N.Nj,y.rH],styles:[""]}),n})();var xt=g(9814),yt=g(7261),Zt=g(6895);function Ca(n,a){if(1&n&&(t.TgZ(0,"span",9),t.TgZ(1,"div"),t._uU(2),t.ALo(3,"titlecase"),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.xp6(2),t.AsE("",i.nodeFeaturesEnum[e.key]||e.key,": ",t.lcZ(3,2,e.value),"")}}function xa(n,a){1&n&&(t.TgZ(0,"th",24),t._uU(1,"Address"),t.qZA())}function ya(n,a){if(1&n&&(t.TgZ(0,"td",25),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.hij(" ",e," ")}}function Za(n,a){1&n&&(t.TgZ(0,"th",26),t.TgZ(1,"span",27),t._uU(2,"Actions"),t.qZA(),t.qZA())}function Ta(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",28),t.TgZ(1,"span",27),t.TgZ(2,"button",29),t.NdJ("copied",function(o){return t.CHM(e),t.oxw(2).onCopyNodeURI(o)}),t._uU(3,"Copy Node URI"),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=a.$implicit,i=t.oxw(2);t.xp6(2),t.Q6J("payload",(null==i.lookupResult?null:i.lookupResult.nodeId)+"@"+e)}}function Aa(n,a){1&n&&t._UZ(0,"tr",30)}function La(n,a){1&n&&t._UZ(0,"tr",31)}const va=function(n){return{"background-color":n}};function ba(n,a){if(1&n&&(t.TgZ(0,"div",1),t._UZ(1,"mat-divider",2),t.TgZ(2,"div",3),t.TgZ(3,"div",4),t.TgZ(4,"h4",5),t._uU(5,"Alias"),t.qZA(),t.TgZ(6,"span",6),t._uU(7),t.TgZ(8,"span",7),t._uU(9),t.qZA(),t.qZA(),t.qZA(),t.TgZ(10,"div",8),t.TgZ(11,"h4",5),t._uU(12,"Pub Key"),t.qZA(),t.TgZ(13,"span",9),t._uU(14),t.qZA(),t.qZA(),t.qZA(),t._UZ(15,"mat-divider",2),t.TgZ(16,"div",3),t.TgZ(17,"div",4),t.TgZ(18,"h4",5),t._uU(19,"Date/Time"),t.qZA(),t.TgZ(20,"span",6),t._uU(21),t.ALo(22,"date"),t.qZA(),t.qZA(),t.TgZ(23,"div",8),t.TgZ(24,"h4",5),t._uU(25,"Features"),t.qZA(),t.YNc(26,Ca,4,4,"span",10),t.ALo(27,"keyvalue"),t.qZA(),t.qZA(),t._UZ(28,"mat-divider",2),t.TgZ(29,"div",3),t.TgZ(30,"div",11),t.TgZ(31,"h4",5),t._uU(32,"Signature"),t.qZA(),t.TgZ(33,"span",6),t._uU(34),t.qZA(),t.qZA(),t.qZA(),t._UZ(35,"mat-divider",2),t.TgZ(36,"div",1),t.TgZ(37,"h4",12),t._uU(38,"Addresses"),t.qZA(),t.TgZ(39,"div",13),t.TgZ(40,"table",14,15),t.ynx(42,16),t.YNc(43,xa,2,0,"th",17),t.YNc(44,ya,2,1,"td",18),t.BQk(),t.ynx(45,19),t.YNc(46,Za,3,0,"th",20),t.YNc(47,Ta,4,1,"td",21),t.BQk(),t.YNc(48,Aa,1,0,"tr",22),t.YNc(49,La,1,0,"tr",23),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("inset",!0),t.xp6(6),t.Oqu(null==e.lookupResult?null:e.lookupResult.alias),t.xp6(1),t.Q6J("ngStyle",t.VKq(19,va,null==e.lookupResult?null:e.lookupResult.rgbColor)),t.xp6(1),t.Oqu(null!=e.lookupResult&&e.lookupResult.rgbColor?null==e.lookupResult?null:e.lookupResult.rgbColor:""),t.xp6(5),t.Oqu(null==e.lookupResult?null:e.lookupResult.nodeId),t.xp6(1),t.Q6J("inset",!0),t.xp6(6),t.Oqu(t.xi3(22,14,1e3*(null==e.lookupResult?null:e.lookupResult.timestamp),"dd/MMM/YYYY HH:mm")),t.xp6(5),t.Q6J("ngForOf",t.lcZ(27,17,null==e.lookupResult?null:e.lookupResult.features.activated)),t.xp6(2),t.Q6J("inset",!0),t.xp6(6),t.Oqu(null==e.lookupResult?null:e.lookupResult.signature),t.xp6(1),t.Q6J("inset",!0),t.xp6(5),t.Q6J("dataSource",e.addresses),t.xp6(8),t.Q6J("matHeaderRowDef",e.displayedColumns),t.xp6(1),t.Q6J("matRowDefColumns",e.displayedColumns)}}let Sa=(()=>{class n{constructor(e,i){this.logger=e,this.snackBar=i,this.lookupResult={},this.displayedColumns=["address","actions"],this.nodeFeaturesEnum=l.H_}ngOnInit(){this.addresses=new r.by(this.lookupResult.addresses?[...this.lookupResult.addresses]:[]),this.addresses.data=this.lookupResult.addresses||[],this.addresses.sort=this.sort,this.addresses.sortingDataAccessor=(e,i)=>e[i]&&isNaN(e[i])?e[i].toLocaleLowerCase():e[i]?+e[i]:null}onCopyNodeURI(e){this.snackBar.open("Node URI copied."),this.logger.info("Copied Text: "+e)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(yt.ux))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-node-lookup"]],viewQuery:function(e,i){if(1&e&&t.Gf(T.YE,5),2&e){let o;t.iGM(o=t.CRH())&&(i.sort=o.first)}},inputs:{lookupResult:"lookupResult"},decls:1,vars:1,consts:[["fxLayout","column",4,"ngIf"],["fxLayout","column"],[1,"my-1",3,"inset"],["fxLayout","row"],["fxFlex","30"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"ml-2",3,"ngStyle"],["fxFlex","70"],[1,"foreground-secondary-text","w-100"],["class","foreground-secondary-text w-100",4,"ngFor","ngForOf"],["fxFlex","100"],["fxFlex","100","fxLayoutAlign","start",1,"font-bold-500","mb-1"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","address"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","",1,"pl-1"],["fxLayoutAlign","end center"],["mat-cell","",1,"pl-1"],["mat-stroked-button","","color","primary","type","button","tabindex","1","rtlClipboard","",3,"payload","copied"],["mat-header-row",""],["mat-row",""]],template:function(e,i){1&e&&t.YNc(0,ba,50,21,"div",0),2&e&&t.Q6J("ngIf",i.lookupResult)},directives:[u.O5,p.xw,G.d,p.yH,p.Wh,u.PC,S.Zl,u.sg,Y.$V,r.BZ,T.YE,r.w1,r.fO,r.Dz,r.as,r.nj,r.ge,T.nU,r.ev,q.lW,Zt.y,r.XQ,r.Gk],pipes:[u.uU,u.Nd,u.rS],styles:[""]}),n})();const wa=["form"];function Ea(n,a){if(1&n&&(t.TgZ(0,"mat-error"),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.hij("",null==e.lookupFields[e.selectedFieldId]?null:e.lookupFields[e.selectedFieldId].placeholder," is required.")}}function qa(n,a){if(1&n&&(t.TgZ(0,"mat-error"),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.hij("Invalid ",null==e.lookupFields[e.selectedFieldId]?null:e.lookupFields[e.selectedFieldId].placeholder,".")}}function Ia(n,a){if(1&n&&(t.TgZ(0,"div"),t._UZ(1,"rtl-ecl-node-lookup",25),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("lookupResult",e.nodeLookupValue)}}function Fa(n,a){if(1&n&&(t.TgZ(0,"span",23),t.YNc(1,Ia,2,1,"div",24),t.qZA()),2&n){const e=t.oxw(2),i=t.MAs(21);t.xp6(1),t.Q6J("ngIf",e.nodeLookupValue.nodeId)("ngIfElse",i)}}function Oa(n,a){1&n&&(t.TgZ(0,"span",23),t.TgZ(1,"h3"),t._uU(2,"Error! Unable to find details!"),t.qZA(),t.qZA())}function Ra(n,a){if(1&n&&(t.TgZ(0,"div",17),t.TgZ(1,"div",18),t.TgZ(2,"span",19),t._uU(3),t.qZA(),t.qZA(),t.TgZ(4,"div",20),t.YNc(5,Fa,2,2,"span",21),t.YNc(6,Oa,3,0,"span",22),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(3),t.hij("",e.lookupFields[e.selectedFieldId].name," Details"),t.xp6(1),t.Q6J("ngSwitch",e.selectedFieldId),t.xp6(1),t.Q6J("ngSwitchCase",0)}}function Na(n,a){1&n&&(t.TgZ(0,"h3"),t._uU(1,"Error! Unable to find details!"),t.qZA())}const ka=function(n){return{"mt-1":!0,"mt-2":n}};let Pa=(()=>{class n{constructor(e,i,o,s){this.logger=e,this.commonService=i,this.store=o,this.actions=s,this.lookupKeyCtrl=new m.NI,this.nodeLookupValue={},this.channelLookupValue=[],this.flgSetLookupValue=!1,this.messageObj=[],this.selectedFieldId=0,this.lookupFields=[{id:0,name:"Node",placeholder:"Node ID"},{id:1,name:"Channel",placeholder:"Short Channel ID"}],this.flgLoading=[!0],this.faSearch=Z.wn1,this.screenSize="",this.screenSizeEnum=l.cu,this.unSubs=[new d.x,new d.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.actions.pipe((0,h.R)(this.unSubs[0]),(0,J.h)(e=>e.type===l.lr.SET_LOOKUP_ECL||e.type===l.lr.UPDATE_API_CALL_STATUS_ECL)).subscribe(e=>{if(e.type===l.lr.SET_LOOKUP_ECL){switch(this.flgLoading[0]=!0,this.selectedFieldId){case 0:this.nodeLookupValue=e.payload[0]?JSON.parse(JSON.stringify(e.payload[0])):{nodeid:""};break;case 1:this.channelLookupValue=JSON.parse(JSON.stringify(e.payload))||[]}this.flgSetLookupValue=!0,this.logger.info(this.nodeLookupValue),this.logger.info(this.channelLookupValue)}e.type===l.lr.UPDATE_API_CALL_STATUS_ECL&&e.payload.status===l.Bn.ERROR&&"Lookup"===e.payload.action&&(this.flgLoading[0]="error")}),this.lookupKeyCtrl.valueChanges.pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.nodeLookupValue={},this.channelLookupValue=[],this.flgSetLookupValue=!1})}onLookup(){return this.lookupKeyCtrl.value?this.lookupKeyCtrl.value&&(this.lookupKeyCtrl.value.includes("@")||this.lookupKeyCtrl.value.includes(","))?(this.lookupKeyCtrl.setErrors({invalid:!0}),!0):void(0===(this.selectedFieldId||(this.selectedFieldId=0),this.flgSetLookupValue=!1,this.nodeLookupValue={},this.channelLookupValue=[],this.selectedFieldId)&&this.store.dispatch((0,R.Sf)({payload:this.lookupKeyCtrl.value.trim()}))):(this.lookupKeyCtrl.setErrors({required:!0}),!0)}onSelectChange(e){this.resetData(),this.selectedFieldId=e.value}resetData(){this.flgSetLookupValue=!1,this.nodeLookupValue={},this.channelLookupValue=[],this.lookupKeyCtrl.setValue(""),this.lookupKeyCtrl.setErrors(null),this.form.resetForm()}clearLookupValue(){this.nodeLookupValue={},this.channelLookupValue=[],this.flgSetLookupValue=!1}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(O.v),t.Y36(b.yh),t.Y36(B.eX))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-lookups"]],viewQuery:function(e,i){if(1&e&&t.Gf(wa,7),2&e){let o;t.iGM(o=t.CRH())&&(i.form=o.first)}},decls:22,vars:9,consts:[["fxLayout","column"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start space-between",1,"w-100"],["form","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["color","primary","tabindex","1","name","lookupField"],["checked","",1,"mr-4",3,"value"],["fxFlex","100","fxLayoutAlign","start end",3,"ngClass"],["matInput","","name","lookupKey","tabindex","2","required","",3,"formControl","placeholder"],["key",""],[4,"ngIf"],["fxLayout","row","fxFlex","100",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","3","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch","class","w-100 mt-2",4,"ngIf"],["errorBlock",""],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"w-100","mt-2"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],[1,"page-title","font-bold-500"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",3,"ngSwitch"],["fxFlex","100",4,"ngSwitchCase"],["fxFlex","100",4,"ngSwitchDefault"],["fxFlex","100"],[4,"ngIf","ngIfElse"],[3,"lookupResult"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-content",2),t.TgZ(3,"form",3,4),t.TgZ(5,"div",5),t.TgZ(6,"mat-radio-group",6),t.TgZ(7,"mat-radio-button",7),t._uU(8,"Node"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(9,"mat-form-field",8),t._UZ(10,"input",9,10),t.YNc(12,Ea,2,1,"mat-error",11),t.YNc(13,qa,2,1,"mat-error",11),t.qZA(),t.TgZ(14,"div",12),t.TgZ(15,"button",13),t.NdJ("click",function(){return i.resetData()}),t._uU(16,"Clear"),t.qZA(),t.TgZ(17,"button",14),t.NdJ("click",function(){return i.onLookup()}),t._uU(18,"Lookup"),t.qZA(),t.qZA(),t.qZA(),t.YNc(19,Ra,7,3,"div",15),t.qZA(),t.qZA(),t.qZA(),t.YNc(20,Na,2,0,"ng-template",null,16,t.W1O)),2&e&&(t.xp6(7),t.Q6J("value",0),t.xp6(2),t.Q6J("ngClass",t.VKq(7,ka,i.screenSize===i.screenSizeEnum.XS||i.screenSize===i.screenSizeEnum.SM)),t.xp6(1),t.Q6J("formControl",i.lookupKeyCtrl)("placeholder",(null==i.lookupFields[i.selectedFieldId]?null:i.lookupFields[i.selectedFieldId].placeholder)||"Lookup Key"),t.xp6(2),t.Q6J("ngIf",null==i.lookupKeyCtrl.errors?null:i.lookupKeyCtrl.errors.required),t.xp6(1),t.Q6J("ngIf",null==i.lookupKeyCtrl.errors?null:i.lookupKeyCtrl.errors.invalid),t.xp6(6),t.Q6J("ngIf",i.flgSetLookupValue))},directives:[p.xw,p.yH,p.Wh,A.dn,m._Y,m.JL,m.F,xt.VQ,xt.U0,x.KE,u.mk,S.oO,U.Nt,m.Fj,m.Q7,m.JJ,m.oH,u.O5,q.lW,x.TO,u.RF,u.n9,u.ED,Sa],styles:[".tree-invisible[_ngcontent-%COMP%]{display:none}.lookup-tree[_ngcontent-%COMP%] ul[_ngcontent-%COMP%], .lookup-tree[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0;list-style-type:none}.pl-3[_ngcontent-%COMP%]{padding-left:3rem}"]}),n})();var Da=g(9122);let Ua=(()=>{class n{constructor(e,i){this.store=e,this.eclEffects=i,this.newAddress=""}onGenerateAddress(){this.store.dispatch((0,R._E)()),this.eclEffects.setNewAddress.pipe((0,H.q)(1)).subscribe(e=>{this.newAddress=e,setTimeout(()=>{this.store.dispatch((0,v.qR)({payload:{data:{address:this.newAddress,addressType:"",component:Da.n}}}))},0)})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(b.yh),t.Y36(it.o))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-on-chain-receive"]],decls:4,vars:0,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","tabindex","1",3,"click"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"button",2),t.NdJ("click",function(){return i.onGenerateAddress()}),t._uU(3,"Generate Address"),t.qZA(),t.qZA(),t.qZA())},directives:[p.xw,p.yH,p.Wh,q.lW],styles:[""]}),n})(),Ma=(()=>{class n{constructor(e,i){this.store=e,this.activatedRoute=i,this.sweepAll=!1,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.activatedRoute.data.pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.sweepAll=e.sweepAll})}openSendFundsModal(){this.store.dispatch((0,v.qR)({payload:{data:{sweepAll:this.sweepAll,component:_t}}}))}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(b.yh),t.Y36(y.gz))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-on-chain-send"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"button",2),t.NdJ("click",function(){return i.openSendFundsModal()}),t._uU(3),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(3),t.Oqu(i.sweepAll?"Sweep All":"Send Funds"))},directives:[p.xw,p.yH,p.Wh,q.lW],styles:[""]}),n})();var Ja=g(8675),Tt=g(4004),Ya=g(9843),At=g(2368),Lt=g(1079);const Qa=["form"];function Ha(n,a){if(1&n&&(t.TgZ(0,"mat-option",34),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.Q6J("value",e),t.xp6(1),t.Oqu(e.alias?e.alias:e.nodeId?e.nodeId:"")}}function Ba(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Peer alias is required."),t.qZA())}function za(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Peer not found in the list."),t.qZA())}function Va(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"mat-form-field",1),t.TgZ(1,"input",30),t.NdJ("change",function(){return t.CHM(e),t.oxw().onSelectedPeerChanged()}),t.qZA(),t.TgZ(2,"mat-autocomplete",31,32),t.NdJ("optionSelected",function(){return t.CHM(e),t.oxw().onSelectedPeerChanged()}),t.YNc(4,Ha,2,2,"mat-option",33),t.ALo(5,"async"),t.qZA(),t.YNc(6,Ba,2,0,"mat-error",17),t.YNc(7,za,2,0,"mat-error",17),t.qZA()}if(2&n){const e=t.MAs(3),i=t.oxw();t.xp6(1),t.Q6J("formControl",i.selectedPeer)("matAutocomplete",e),t.xp6(1),t.Q6J("displayWith",i.displayFn),t.xp6(2),t.Q6J("ngForOf",t.lcZ(5,6,i.filteredPeers)),t.xp6(2),t.Q6J("ngIf",null==i.selectedPeer.errors?null:i.selectedPeer.errors.required),t.xp6(1),t.Q6J("ngIf",null==i.selectedPeer.errors?null:i.selectedPeer.errors.notfound)}}function Ga(n,a){1&n&&t.GkF(0)}function Xa(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Amount is required."),t.qZA())}function $a(n,a){if(1&n&&(t.TgZ(0,"mat-error"),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.hij("Amount must be less than or equal to ",e.totalBalance,".")}}function Wa(n,a){if(1&n&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.channelConnectionError)}}function Ka(n,a){if(1&n&&(t.TgZ(0,"div",35),t._UZ(1,"fa-icon",36),t.YNc(2,Wa,2,1,"span",17),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("icon",e.faExclamationTriangle),t.xp6(1),t.Q6J("ngIf",""!==e.channelConnectionError)}}function ja(n,a){if(1&n&&(t.TgZ(0,"mat-expansion-panel",38),t.TgZ(1,"mat-expansion-panel-header"),t.TgZ(2,"mat-panel-title"),t.TgZ(3,"span"),t._uU(4,"Peer: \xa0"),t.qZA(),t.TgZ(5,"strong",39),t._uU(6),t.qZA(),t.qZA(),t.qZA(),t.TgZ(7,"div",9),t.TgZ(8,"div",0),t.TgZ(9,"div",1),t.TgZ(10,"h4",40),t._uU(11,"Pubkey"),t.qZA(),t.TgZ(12,"span",41),t._uU(13),t.qZA(),t.qZA(),t.qZA(),t._UZ(14,"mat-divider",42),t.TgZ(15,"div",0),t.TgZ(16,"div",43),t.TgZ(17,"h4",40),t._uU(18,"Address"),t.qZA(),t.TgZ(19,"span",44),t._uU(20),t.qZA(),t.qZA(),t.TgZ(21,"div",43),t.TgZ(22,"h4",40),t._uU(23,"State"),t.qZA(),t.TgZ(24,"span",44),t._uU(25),t.ALo(26,"titlecase"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&n){const e=t.oxw(2);t.xp6(6),t.Oqu((null==e.peer?null:e.peer.alias)||(null==e.peer?null:e.peer.nodeId)),t.xp6(7),t.Oqu(e.peer.nodeId),t.xp6(7),t.Oqu(null==e.peer?null:e.peer.address),t.xp6(5),t.Oqu(t.lcZ(26,4,null==e.peer?null:e.peer.state))}}function to(n,a){if(1&n&&t.YNc(0,ja,27,6,"mat-expansion-panel",37),2&n){const e=t.oxw();t.Q6J("ngIf",e.peer)}}let vt=(()=>{class n{constructor(e,i,o,s){this.dialogRef=e,this.data=i,this.store=o,this.actions=s,this.selectedPeer=new m.NI,this.faExclamationTriangle=Z.eHv,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.totalBalance=0,this.selectedPubkey="",this.isPrivate=!1,this.feeRate=null,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.information=this.data.message.information,this.totalBalance=this.data.message.balance,this.alertTitle=this.data.alertTitle,this.peer=this.data.message.peer||null,this.peers=this.data.message.peers||[],this.actions.pipe((0,h.R)(this.unSubs[0]),(0,J.h)(o=>o.type===l.lr.UPDATE_API_CALL_STATUS_ECL||o.type===l.lr.FETCH_CHANNELS_ECL)).subscribe(o=>{o.type===l.lr.UPDATE_API_CALL_STATUS_ECL&&o.payload.status===l.Bn.ERROR&&"SaveNewChannel"===o.payload.action&&(this.channelConnectionError=o.payload.message),o.type===l.lr.FETCH_CHANNELS_ECL&&this.dialogRef.close()});let e="",i="";this.sortedPeers=this.peers.sort((o,s)=>(e=o.alias?o.alias.toLowerCase():o.nodeId?o.nodeId.toLowerCase():"",i=s.alias?s.alias.toLowerCase():o.nodeId.toLowerCase(),ei?1:0)),this.filteredPeers=this.selectedPeer.valueChanges.pipe((0,h.R)(this.unSubs[1]),(0,Ja.O)(""),(0,Tt.U)(o=>"string"==typeof o?o:o.alias?o.alias:o.nodeId),(0,Tt.U)(o=>o?this.filterPeers(o):this.sortedPeers.slice()))}filterPeers(e){return this.sortedPeers.filter(i=>0===i.alias.toLowerCase().indexOf(e?e.toLowerCase():""))}displayFn(e){return e&&e.alias?e.alias:e&&e.nodeId?e.nodeId:""}onSelectedPeerChanged(){if(this.channelConnectionError="",this.selectedPubkey=this.selectedPeer.value&&this.selectedPeer.value.nodeId?this.selectedPeer.value.nodeId:null,"string"==typeof this.selectedPeer.value){const e=this.peers.filter(i=>i.alias.length===this.selectedPeer.value.length&&0===i.alias.toLowerCase().indexOf(this.selectedPeer.value?this.selectedPeer.value.toLowerCase():""));1===e.length&&e[0].nodeId&&(this.selectedPubkey=e[0].nodeId)}this.selectedPeer.setErrors(this.selectedPeer.value&&!this.selectedPubkey?{notfound:!0}:null)}onClose(){this.dialogRef.close(!1)}resetData(){this.feeRate=null,this.selectedPeer.setValue(""),this.fundingAmount=null,this.isPrivate=!1,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.form.resetForm()}onAdvancedPanelToggle(e){this.advancedTitle=e&&this.feeRate&&this.feeRate>0?"Advanced Options | Fee (Sats/vByte): "+this.feeRate:"Advanced Options"}onOpenChannel(){if(!this.peer&&!this.selectedPubkey||!this.fundingAmount||this.totalBalance-this.fundingAmount<0)return!0;this.store.dispatch((0,R.YX)({payload:{nodeId:this.peer&&this.peer.nodeId?this.peer.nodeId:this.selectedPubkey,amount:this.fundingAmount,private:this.isPrivate,feeRate:this.feeRate}}))}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(D.so),t.Y36(D.WI),t.Y36(b.yh),t.Y36(B.eX))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-open-channel"]],viewQuery:function(e,i){if(1&e&&t.Gf(Qa,7),2&e){let o;t.iGM(o=t.CRH())&&(i.form=o.first)}},decls:48,vars:18,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column",3,"submit","reset"],["form","ngForm"],["fxLayout","column"],["fxFlex","100",4,"ngIf"],[4,"ngTemplateOutlet"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","70","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","1","required","","name","amount",3,"ngModel","step","min","max","ngModelChange"],["amount","ngModel"],["matSuffix",""],[4,"ngIf"],["fxFlex","25","fxLayoutAlign","start center"],["tabindex","2","color","primary","name","isPrivate",3,"ngModel","ngModelChange"],["expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["matInput","","placeholder","Fee (Sats/vByte)","type","number","name","fee","tabindex","7",3,"ngModel","step","min","ngModelChange"],["fee","ngModel"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["autoFocus","","mat-button","","color","primary","type","submit","tabindex","9"],["peerDetailsExpansionBlock",""],["type","text","placeholder","Peer Alias","aria-label","Peers","matInput","","tabindex","1","required","",3,"formControl","matAutocomplete","change"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["class","flat-expansion-panel my-1","expanded","false",4,"ngIf"],["expanded","false",1,"flat-expansion-panel","my-1"],[1,"font-weight-900"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"],["fxFlex","50"],[1,"overflow-wrap","foreground-secondary-text"]],template:function(e,i){if(1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t.TgZ(4,"span",4),t._uU(5),t.qZA(),t.qZA(),t.TgZ(6,"button",5),t.NdJ("click",function(){return i.onClose()}),t._uU(7,"X"),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",6),t.TgZ(9,"form",7,8),t.NdJ("submit",function(){return i.onOpenChannel()})("reset",function(){return i.resetData()}),t.TgZ(11,"div",9),t.YNc(12,Va,8,8,"mat-form-field",10),t.qZA(),t.YNc(13,Ga,1,0,"ng-container",11),t.TgZ(14,"div",9),t.TgZ(15,"div",12),t.TgZ(16,"mat-form-field",13),t.TgZ(17,"input",14,15),t.NdJ("ngModelChange",function(s){return i.fundingAmount=s}),t.qZA(),t.TgZ(19,"mat-hint"),t._uU(20),t.ALo(21,"number"),t.qZA(),t.TgZ(22,"span",16),t._uU(23," Sats "),t.qZA(),t.YNc(24,Xa,2,0,"mat-error",17),t.YNc(25,$a,2,1,"mat-error",17),t.qZA(),t.TgZ(26,"div",18),t.TgZ(27,"mat-slide-toggle",19),t.NdJ("ngModelChange",function(s){return i.isPrivate=s}),t._uU(28,"Private Channel"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(29,"mat-expansion-panel",20),t.NdJ("closed",function(){return i.onAdvancedPanelToggle(!0)})("opened",function(){return i.onAdvancedPanelToggle(!1)}),t.TgZ(30,"mat-expansion-panel-header"),t.TgZ(31,"mat-panel-title"),t.TgZ(32,"span"),t._uU(33),t.qZA(),t.qZA(),t.qZA(),t.TgZ(34,"div",21),t.TgZ(35,"div",12),t.TgZ(36,"div",22),t.TgZ(37,"mat-form-field",1),t.TgZ(38,"input",23,24),t.NdJ("ngModelChange",function(s){return i.feeRate=s}),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.YNc(40,Ka,3,2,"div",25),t.TgZ(41,"div",26),t.TgZ(42,"button",27),t._uU(43,"Clear Fields"),t.qZA(),t.TgZ(44,"button",28),t._uU(45,"Open Channel"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.YNc(46,to,1,1,"ng-template",null,29,t.W1O)),2&e){const o=t.MAs(18),s=t.MAs(47);t.xp6(5),t.Oqu(i.alertTitle),t.xp6(7),t.Q6J("ngIf",!i.peer&&i.peers&&i.peers.length>0),t.xp6(1),t.Q6J("ngTemplateOutlet",s),t.xp6(4),t.Q6J("ngModel",i.fundingAmount)("step",1e3)("min",1)("max",i.totalBalance),t.xp6(3),t.hij("Remaining Bal: ",t.lcZ(21,16,i.totalBalance-(i.fundingAmount?i.fundingAmount:0)),""),t.xp6(4),t.Q6J("ngIf",null==o.errors?null:o.errors.required),t.xp6(1),t.Q6J("ngIf",null==o.errors?null:o.errors.max),t.xp6(2),t.Q6J("ngModel",i.isPrivate),t.xp6(6),t.Oqu(i.advancedTitle),t.xp6(5),t.Q6J("ngModel",i.feeRate)("step",1)("min",0),t.xp6(2),t.Q6J("ngIf",""!==i.channelConnectionError)}},directives:[p.xw,p.yH,A.dk,p.Wh,q.lW,A.dn,m._Y,m.JL,m.F,u.O5,u.tP,x.KE,U.Nt,m.wV,m.qQ,m.Fd,m.Fj,$.q,Ya.F,m.Q7,m.JJ,m.On,x.bx,x.R9,At.Rr,V.ib,V.yz,V.yK,X.h,Lt.ZL,m.oH,Lt.XC,u.sg,Q.ey,x.TO,I.BN,G.d],pipes:[u.JJ,u.Ov,u.rS],styles:[".open-inputs-box[_ngcontent-%COMP%]{padding:1.2rem 2.4rem .8rem!important}"]}),n})();function eo(n,a){if(1&n&&(t.TgZ(0,"span",7),t._uU(1,"Open"),t.qZA()),2&n){const e=t.oxw();t.s9C("matBadge",e.numOfOpenChannels)}}function no(n,a){if(1&n&&(t.TgZ(0,"span",7),t._uU(1,"Pending"),t.qZA()),2&n){const e=t.oxw();t.s9C("matBadge",e.numOfPendingChannels)}}function io(n,a){if(1&n&&(t.TgZ(0,"span",7),t._uU(1,"Inactive"),t.qZA()),2&n){const e=t.oxw();t.s9C("matBadge",e.numOfInactiveChannels)}}let ao=(()=>{class n{constructor(e,i,o){this.logger=e,this.store=i,this.router=o,this.numOfOpenChannels=0,this.numOfPendingChannels=0,this.numOfInactiveChannels=0,this.selNode={},this.information={},this.peers=[],this.totalBalance=0,this.links=[{link:"open",name:"Open"},{link:"pending",name:"Pending"},{link:"inactive",name:"Inactive"}],this.activeLink=0,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x]}ngOnInit(){this.activeLink=this.links.findIndex(e=>e.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,h.R)(this.unSubs[0]),(0,J.h)(e=>e instanceof y.Av)).subscribe(e=>{this.activeLink=this.links.findIndex(i=>i.link===e.urlAfterRedirects.substring(e.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select(_.Xz).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.numOfOpenChannels=e.channelsStatus&&e.channelsStatus.active&&e.channelsStatus.active.channels?e.channelsStatus.active.channels:0,this.numOfPendingChannels=e.channelsStatus&&e.channelsStatus.pending&&e.channelsStatus.pending.channels?e.channelsStatus.pending.channels:0,this.numOfInactiveChannels=e.channelsStatus&&e.channelsStatus.inactive&&e.channelsStatus.inactive.channels?e.channelsStatus.inactive.channels:0,this.logger.info(e)}),this.store.select(_.LR).pipe((0,h.R)(this.unSubs[2])).subscribe(e=>{this.selNode=e}),this.store.select(_.yD).pipe((0,h.R)(this.unSubs[3])).subscribe(e=>{this.information=e}),this.store.select(_.Bo).pipe((0,h.R)(this.unSubs[4])).subscribe(e=>{this.peers=e.peers}),this.store.select(_.kY).pipe((0,h.R)(this.unSubs[5])).subscribe(e=>{this.totalBalance=e.onchainBalance.total})}onOpenChannel(){this.store.dispatch((0,v.qR)({payload:{data:{alertTitle:"Open Channel",message:{peers:this.peers,information:this.information,balance:this.totalBalance},component:vt}}}))}onSelectedTabChange(e){this.router.navigateByUrl("/ecl/connections/channels/"+this.links[e.index].link)}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(b.yh),t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-channels-tables"]],decls:14,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100",1,"my-2","bordered-box"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"button",2),t.NdJ("click",function(){return i.onOpenChannel()}),t._uU(3,"Open Channel"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-tab-group",4),t.NdJ("selectedIndexChange",function(s){return i.activeLink=s})("selectedTabChange",function(s){return i.onSelectedTabChange(s)}),t.TgZ(6,"mat-tab"),t.YNc(7,eo,2,1,"ng-template",5),t.qZA(),t.TgZ(8,"mat-tab"),t.YNc(9,no,2,1,"ng-template",5),t.qZA(),t.TgZ(10,"mat-tab"),t.YNc(11,io,2,1,"ng-template",5),t.qZA(),t.qZA(),t.TgZ(12,"div",6),t._UZ(13,"router-outlet"),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(5),t.Q6J("selectedIndex",i.activeLink))},directives:[p.xw,p.yH,p.Wh,q.lW,N.SP,N.uX,N.uD,y.lC,Ct.k],styles:[""]}),n})();function oo(n,a){if(1&n&&(t.TgZ(0,"div",11),t.TgZ(1,"h4",12),t._uU(2,"Short Channel ID"),t.qZA(),t.TgZ(3,"span",13),t._uU(4),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(4),t.Oqu(e.channel.shortChannelId)}}function so(n,a){if(1&n&&(t.TgZ(0,"div",11),t.TgZ(1,"h4",12),t._uU(2,"State"),t.qZA(),t.TgZ(3,"span",15),t._uU(4),t.ALo(5,"titlecase"),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(4),t.Oqu(t.lcZ(5,1,e.channel.state))}}function lo(n,a){if(1&n&&(t.TgZ(0,"div"),t.TgZ(1,"div",9),t.TgZ(2,"div",11),t.TgZ(3,"h4",12),t._uU(4,"Local Balance (Sats)"),t.qZA(),t.TgZ(5,"span",15),t._uU(6),t.ALo(7,"number"),t.qZA(),t.qZA(),t.TgZ(8,"div",11),t.TgZ(9,"h4",12),t._uU(10,"Remote Balance (Sats)"),t.qZA(),t.TgZ(11,"span",15),t._uU(12),t.ALo(13,"number"),t.qZA(),t.qZA(),t.qZA(),t._UZ(14,"mat-divider",14),t.TgZ(15,"div",9),t.TgZ(16,"div",11),t.TgZ(17,"h4",12),t._uU(18,"Base Fee (mSats)"),t.qZA(),t.TgZ(19,"span",15),t._uU(20),t.ALo(21,"number"),t.qZA(),t.qZA(),t.TgZ(22,"div",11),t.TgZ(23,"h4",12),t._uU(24,"Fee Rate (mili mSats)"),t.qZA(),t.TgZ(25,"span",15),t._uU(26),t.ALo(27,"number"),t.qZA(),t.qZA(),t.qZA(),t._UZ(28,"mat-divider",14),t.qZA()),2&n){const e=t.oxw();t.xp6(6),t.Oqu(t.lcZ(7,6,e.channel.toLocal)),t.xp6(6),t.Oqu(t.lcZ(13,8,e.channel.toRemote)),t.xp6(2),t.Q6J("inset",!0),t.xp6(6),t.Oqu(t.lcZ(21,10,e.channel.feeBaseMsat)),t.xp6(6),t.Oqu(t.lcZ(27,12,e.channel.feeProportionalMillionths)),t.xp6(2),t.Q6J("inset",!0)}}function ro(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Show Advanced"),t.qZA())}function co(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Hide Advanced"),t.qZA())}function uo(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"button",21),t.NdJ("click",function(){return t.CHM(e),t.oxw().onShowAdvanced()}),t.YNc(1,ro,2,0,"p",22),t.YNc(2,co,2,0,"ng-template",null,23,t.W1O),t.qZA()}if(2&n){const e=t.MAs(3),i=t.oxw();t.xp6(1),t.Q6J("ngIf",!i.showAdvanced)("ngIfElse",e)}}function po(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"button",24),t.NdJ("copied",function(o){return t.CHM(e),t.oxw().onCopyChanID(o)}),t._uU(1,"Copy Short Channel ID"),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("payload",e.channel.shortChannelId)}}function mo(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"button",25),t.NdJ("copied",function(o){return t.CHM(e),t.oxw().onCopyChanID(o)}),t._uU(1,"Copy Channel ID"),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("payload",e.channel.channelId)}}const ho=function(n){return{"xs-scroll-y":n}},go=function(n,a){return{"mt-2":n,"mt-1":a}};let ot=(()=>{class n{constructor(e,i,o,s,c){this.dialogRef=e,this.data=i,this.logger=o,this.commonService=s,this.snackBar=c,this.faReceipt=Z.dLy,this.showAdvanced=!1,this.channelsType="open",this.screenSize="",this.screenSizeEnum=l.cu}ngOnInit(){this.channel=this.data.channel,this.channelsType=this.data.channelsType,this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyChanID(e){this.snackBar.open("open"===this.channelsType?"Short channel ID "+e+" copied.":"Channel ID copied."),this.logger.info("Copied Text: "+e)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(D.so),t.Y36(D.WI),t.Y36(F.mQ),t.Y36(O.v),t.Y36(yt.ux))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-channel-information"]],decls:64,vars:28,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxLayout","row"],["fxFlex","50",4,"ngIf"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"my-1",3,"inset"],[1,"overflow-wrap","foreground-secondary-text"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","100",3,"ngClass"],["mat-button","","color","primary","type","reset","tabindex","1","class","mr-1",3,"click",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","3","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["mat-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-button","","color","primary","tabindex","3","type","submit","rtlClipboard","",3,"payload","copied"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t._UZ(4,"fa-icon",4),t.TgZ(5,"span",5),t._uU(6,"Channel Information"),t.qZA(),t.qZA(),t.TgZ(7,"button",6),t.NdJ("click",function(){return i.onClose()}),t._uU(8,"X"),t.qZA(),t.qZA(),t.TgZ(9,"mat-card-content",7),t.TgZ(10,"div",8),t.TgZ(11,"div",9),t.YNc(12,oo,5,1,"div",10),t.TgZ(13,"div",11),t.TgZ(14,"h4",12),t._uU(15,"Peer Alias"),t.qZA(),t.TgZ(16,"span",13),t._uU(17),t.qZA(),t.qZA(),t.YNc(18,so,6,3,"div",10),t.qZA(),t._UZ(19,"mat-divider",14),t.TgZ(20,"div",9),t.TgZ(21,"div",1),t.TgZ(22,"h4",12),t._uU(23,"Channel ID"),t.qZA(),t.TgZ(24,"span",13),t._uU(25),t.qZA(),t.qZA(),t.qZA(),t._UZ(26,"mat-divider",14),t.TgZ(27,"div",9),t.TgZ(28,"div",1),t.TgZ(29,"h4",12),t._uU(30,"Peer Public Key"),t.qZA(),t.TgZ(31,"span",13),t._uU(32),t.qZA(),t.qZA(),t.qZA(),t._UZ(33,"mat-divider",14),t.TgZ(34,"div",9),t.TgZ(35,"div",11),t.TgZ(36,"h4",12),t._uU(37,"Private"),t.qZA(),t.TgZ(38,"span",15),t._uU(39),t.qZA(),t.qZA(),t.TgZ(40,"div",11),t.TgZ(41,"h4",12),t._uU(42,"Funder"),t.qZA(),t.TgZ(43,"span",15),t._uU(44),t.qZA(),t.qZA(),t.qZA(),t._UZ(45,"mat-divider",14),t.TgZ(46,"div",9),t.TgZ(47,"div",11),t.TgZ(48,"h4",12),t._uU(49,"State"),t.qZA(),t.TgZ(50,"span",15),t._uU(51),t.ALo(52,"titlecase"),t.qZA(),t.qZA(),t.TgZ(53,"div",11),t.TgZ(54,"h4",12),t._uU(55,"Buried"),t.qZA(),t.TgZ(56,"span",15),t._uU(57),t.qZA(),t.qZA(),t.qZA(),t._UZ(58,"mat-divider",14),t.YNc(59,lo,29,14,"div",16),t.TgZ(60,"div",17),t.YNc(61,uo,4,2,"button",18),t.YNc(62,po,2,1,"button",19),t.YNc(63,mo,2,1,"button",20),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(4),t.Q6J("icon",i.faReceipt),t.xp6(5),t.Q6J("ngClass",t.VKq(23,ho,i.screenSize===i.screenSizeEnum.XS)),t.xp6(3),t.Q6J("ngIf","open"===i.channelsType),t.xp6(5),t.Oqu(i.channel.alias),t.xp6(1),t.Q6J("ngIf","open"!==i.channelsType),t.xp6(1),t.Q6J("inset",!0),t.xp6(6),t.Oqu(i.channel.channelId),t.xp6(1),t.Q6J("inset",!0),t.xp6(6),t.Oqu(i.channel.nodeId),t.xp6(1),t.Q6J("inset",!0),t.xp6(6),t.Oqu(0===i.channel.channelFlags?"Yes":"No"),t.xp6(5),t.Oqu(i.channel.isFunder?"Yes":"No"),t.xp6(1),t.Q6J("inset",!0),t.xp6(6),t.Oqu(t.lcZ(52,21,i.channel.state)),t.xp6(6),t.Oqu(i.channel.buried?"Yes":"No"),t.xp6(1),t.Q6J("inset",!0),t.xp6(1),t.Q6J("ngIf",i.showAdvanced&&"open"===i.channelsType),t.xp6(1),t.Q6J("ngClass",t.WLB(25,go,!i.showAdvanced,i.showAdvanced)),t.xp6(1),t.Q6J("ngIf","open"===i.channelsType),t.xp6(1),t.Q6J("ngIf","open"===i.channelsType),t.xp6(1),t.Q6J("ngIf","open"!==i.channelsType))},directives:[p.xw,p.Wh,p.yH,A.dk,I.BN,q.lW,A.dn,u.mk,S.oO,u.O5,G.d,X.h,Zt.y],pipes:[u.rS,u.JJ],styles:[""]}),n})();function fo(n,a){1&n&&t._UZ(0,"mat-progress-bar",30)}function _o(n,a){1&n&&(t.TgZ(0,"th",31),t._uU(1," Short Channel ID "),t.qZA())}function Co(n,a){if(1&n&&(t.TgZ(0,"span",37),t._UZ(1,"fa-icon",38),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("icon",e.faEyeSlash)}}function xo(n,a){if(1&n&&(t.TgZ(0,"span",39),t._UZ(1,"fa-icon",38),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("icon",e.faEye)}}const bt=function(n){return{"max-width":n}};function yo(n,a){if(1&n&&(t.TgZ(0,"td",32),t.TgZ(1,"div",33),t.YNc(2,Co,2,1,"span",34),t.YNc(3,xo,2,1,"span",35),t.TgZ(4,"span",36),t._uU(5),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw();t.xp6(1),t.Q6J("ngStyle",t.VKq(4,bt,i.screenSize===i.screenSizeEnum.XS?"12rem":"22rem")),t.xp6(1),t.Q6J("ngIf",0===e.channelFlags),t.xp6(1),t.Q6J("ngIf",0!==e.channelFlags),t.xp6(2),t.Oqu(null==e?null:e.shortChannelId)}}function Zo(n,a){1&n&&(t.TgZ(0,"th",31),t._uU(1," Alias "),t.qZA())}function To(n,a){if(1&n&&(t.TgZ(0,"td",32),t.TgZ(1,"div",33),t.TgZ(2,"span",36),t._uU(3),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw();t.xp6(1),t.Q6J("ngStyle",t.VKq(2,bt,i.screenSize===i.screenSizeEnum.XS?"12rem":"22rem")),t.xp6(2),t.Oqu(e.alias)}}function Ao(n,a){1&n&&(t.TgZ(0,"th",40),t._uU(1," Base Fee (mSats) "),t.qZA())}function Lo(n,a){if(1&n&&(t.TgZ(0,"td",32),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",t.xi3(3,1,null==e?null:e.feeBaseMsat,"1.0-0")," ")}}function vo(n,a){1&n&&(t.TgZ(0,"th",40),t._uU(1," Fee Rate (mili mSats) "),t.qZA())}function bo(n,a){if(1&n&&(t.TgZ(0,"td",32),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",t.xi3(3,1,null==e?null:e.feeProportionalMillionths,"1.0-0")," ")}}function So(n,a){1&n&&(t.TgZ(0,"th",40),t._uU(1," Local Balance (Sats) "),t.qZA())}function wo(n,a){if(1&n&&(t.TgZ(0,"td",32),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",t.xi3(3,1,null==e?null:e.toLocal,"1.0-0")," ")}}function Eo(n,a){1&n&&(t.TgZ(0,"th",40),t._uU(1," Remote Balance (Sats) "),t.qZA())}function qo(n,a){if(1&n&&(t.TgZ(0,"td",32),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",t.xi3(3,1,null==e?null:e.toRemote,"1.0-0")," ")}}function Io(n,a){1&n&&(t.TgZ(0,"th",42),t._uU(1,"Balance Score "),t.qZA())}function Fo(n,a){if(1&n&&(t.TgZ(0,"td",43),t.TgZ(1,"div",44),t.TgZ(2,"mat-hint",45),t._uU(3),t.ALo(4,"number"),t.qZA(),t.qZA(),t._UZ(5,"mat-progress-bar",46),t.qZA()),2&n){const e=a.$implicit;t.xp6(3),t.Oqu(t.lcZ(4,2,(null==e?null:e.balancedness)||0)),t.xp6(2),t.s9C("value",e.toLocal&&e.toLocal>0?+e.toLocal/(+e.toLocal+ +e.toRemote)*100:0)}}function Oo(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"th",47),t.TgZ(1,"div",48),t.TgZ(2,"mat-select",49),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",50),t.NdJ("click",function(){return t.CHM(e),t.oxw().onChannelUpdate("all")}),t._uU(5,"Update Fee Policy"),t.qZA(),t.TgZ(6,"mat-option",50),t.NdJ("click",function(){return t.CHM(e),t.oxw().onDownloadCSV()}),t._uU(7,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function Ro(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",51),t.TgZ(1,"div",52),t.TgZ(2,"mat-select",53),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",50),t.NdJ("click",function(o){const c=t.CHM(e).$implicit;return t.oxw().onChannelClick(c,o)}),t._uU(5,"View Info"),t.qZA(),t.TgZ(6,"mat-option",50),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().onChannelUpdate(s)}),t._uU(7,"Update Fee Policy"),t.qZA(),t.TgZ(8,"mat-option",50),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().onChannelClose(s,!1)}),t._uU(9,"Close Channel"),t.qZA(),t.TgZ(10,"mat-option",50),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().onChannelClose(s,!0)}),t._uU(11,"Force Close"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function No(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No peers connected. Add a peer in order to open a channel."),t.qZA())}function ko(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No channel available."),t.qZA())}function Po(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting channels..."),t.qZA())}function Do(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.errorMessage)}}function Uo(n,a){if(1&n&&(t.TgZ(0,"td",54),t.YNc(1,No,2,0,"p",55),t.YNc(2,ko,2,0,"p",55),t.YNc(3,Po,2,0,"p",55),t.YNc(4,Do,2,1,"p",55),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",e.numPeers<1&&(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",e.numPeers>0&&(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}const Mo=function(n){return{"display-none":n}};function Jo(n,a){if(1&n&&t._UZ(0,"tr",56),2&n){const e=t.oxw();t.Q6J("ngClass",t.VKq(1,Mo,e.numPeers>0&&(null==e.channels?null:e.channels.data)&&(null==e.channels||null==e.channels.data?null:e.channels.data.length)>0))}}function Yo(n,a){1&n&&t._UZ(0,"tr",57)}function Qo(n,a){1&n&&t._UZ(0,"tr",58)}const Ho=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},Bo=function(){return["no_peer"]};let zo=(()=>{class n{constructor(e,i,o,s){this.logger=e,this.store=i,this.rtlEffects=o,this.commonService=s,this.faEye=Z.Mdf,this.faEyeSlash=Z.Aq,this.totalBalance=0,this.displayedColumns=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=l.vn,this.selFilter="",this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","toLocal","toRemote","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["shortChannelId","alias","toLocal","toRemote","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["shortChannelId","alias","feeBaseMsat","feeProportionalMillionths","toLocal","toRemote","actions"]):(this.flgSticky=!0,this.displayedColumns=["shortChannelId","alias","feeBaseMsat","feeProportionalMillionths","toLocal","toRemote","balancedness","actions"])}ngOnInit(){this.store.select(_.Xz).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apiCallStatus=e.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.activeChannels=e.activeChannels,this.activeChannels.length>0&&this.sort&&this.paginator&&this.loadChannelsTable(),this.logger.info(e)}),this.store.select(_.yD).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.information=e}),this.store.select(_.Bo).pipe((0,h.R)(this.unSubs[2])).subscribe(e=>{this.numPeers=e.peers&&e.peers.length?e.peers.length:0}),this.store.select(_.kY).pipe((0,h.R)(this.unSubs[3])).subscribe(e=>{this.totalBalance=e.onchainBalance.total})}ngAfterViewInit(){this.activeChannels.length>0&&this.sort&&this.paginator&&this.loadChannelsTable()}onChannelUpdate(e){"all"!==e&&"NORMAL"!==e.state||(this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Update Fee Policy",noBtnText:"Cancel",yesBtnText:"Update",message:[],titleMessage:"all"===e?"Update fee policy for all channels":"Update fee policy for Channel: "+(e.alias||e.shortChannelId?e.alias&&e.shortChannelId?e.alias+" ("+e.shortChannelId+")":e.alias?e.alias:e.shortChannelId:e.channelId),flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSats)",inputType:"number",inputValue:e&&void 0!==e.feeBaseMsat?e.feeBaseMsat:1e3,width:48},{placeholder:"Fee Rate (mili mSats)",inputType:"number",inputValue:e&&void 0!==e.feeProportionalMillionths?e.feeProportionalMillionths:100,min:1,width:48,hintFunction:this.percentHintFunction}]}}})),this.rtlEffects.closeConfirm.pipe((0,h.R)(this.unSubs[4])).subscribe(s=>{if(s){const c=s[0].inputValue,f=s[1].inputValue;let P=null;if(this.commonService.isVersionCompatible(this.information.version,"0.6.2")){let C="";"all"===e?(this.activeChannels.forEach(E=>{C=C+","+E.nodeId}),C=C.substring(1),P={baseFeeMsat:c,feeRate:f,nodeIds:C}):P={baseFeeMsat:c,feeRate:f,nodeId:e.nodeId}}else{let C="";"all"===e?(this.activeChannels.forEach(E=>{C=C+","+E.channelId}),C=C.substring(1),P={baseFeeMsat:c,feeRate:f,channelIds:C}):P={baseFeeMsat:c,feeRate:f,channelId:e.channelId}}this.store.dispatch((0,R.pW)({payload:P}))}}),this.applyFilter())}percentHintFunction(e){return(e/1e4).toString()+"%"}onChannelClose(e,i){this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:i?"Force Close Channel":"Close Channel",titleMessage:i?"Force closing channel: "+(e.alias||e.shortChannelId?e.alias&&e.shortChannelId?e.alias+" ("+e.shortChannelId+")":e.alias?e.alias:e.shortChannelId:e.channelId):"Closing channel: "+(e.alias||e.shortChannelId?e.alias&&e.shortChannelId?e.alias+" ("+e.shortChannelId+")":e.alias?e.alias:e.shortChannelId:e.channelId),noBtnText:"Cancel",yesBtnText:i?"Force Close":"Close Channel"}}})),this.rtlEffects.closeConfirm.pipe((0,h.R)(this.unSubs[5])).subscribe(f=>{f&&this.store.dispatch((0,R.BL)({payload:{channelId:e.channelId,force:i}}))})}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onChannelClick(e,i){this.store.dispatch((0,v.qR)({payload:{data:{channel:e,channelsType:"open",component:ot}}}))}loadChannelsTable(){this.activeChannels.sort((e,i)=>e.alias===i.alias?0:i.alias?1:-1),this.channels=new r.by([...this.activeChannels]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(e,i)=>e[i]&&isNaN(e[i])?e[i].toLocaleLowerCase():e[i]?+e[i]:null,this.channels.filterPredicate=(e,i)=>JSON.stringify(e).toLowerCase().includes(i),this.channels.paginator=this.paginator,this.applyFilter(),this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"ActiveChannels")}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(b.yh),t.Y36(K.V),t.Y36(O.v))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-channel-open-table"]],viewQuery:function(e,i){if(1&e&&(t.Gf(T.YE,5),t.Gf(L.NW,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.sort=o.first),t.iGM(o=t.CRH())&&(i.paginator=o.first)}},features:[t._Bn([{provide:L.ye,useValue:(0,l.pt)("Channels")}])],decls:39,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","shortChannelId"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","feeBaseMsat"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","feeProportionalMillionths"],["matColumnDef","toLocal"],["matColumnDef","toRemote"],["matColumnDef","balancedness"],["mat-header-cell","","mat-sort-header","","class","pl-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pl-1",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],["class","mr-1","matTooltip","Private","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Public","matTooltipPosition","right",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Private","matTooltipPosition","right",1,"mr-1"],[3,"icon"],["matTooltip","Public","matTooltipPosition","right",1,"mr-1"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-3"],["mat-cell","",1,"pl-3"],["fxLayout","row"],["fxFlex","100","fxLayoutAlign","center center",1,"font-size-80"],["mode","determinate",3,"value"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","2",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t._UZ(2,"div",2),t.TgZ(3,"mat-form-field",3),t.TgZ(4,"input",4),t.NdJ("keyup",function(){return i.applyFilter()})("ngModelChange",function(s){return i.selFilter=s}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(5,"div",5),t.YNc(6,fo,1,0,"mat-progress-bar",6),t.TgZ(7,"table",7,8),t.ynx(9,9),t.YNc(10,_o,2,0,"th",10),t.YNc(11,yo,6,6,"td",11),t.BQk(),t.ynx(12,12),t.YNc(13,Zo,2,0,"th",10),t.YNc(14,To,4,4,"td",11),t.BQk(),t.ynx(15,13),t.YNc(16,Ao,2,0,"th",14),t.YNc(17,Lo,4,4,"td",11),t.BQk(),t.ynx(18,15),t.YNc(19,vo,2,0,"th",14),t.YNc(20,bo,4,4,"td",11),t.BQk(),t.ynx(21,16),t.YNc(22,So,2,0,"th",14),t.YNc(23,wo,4,4,"td",11),t.BQk(),t.ynx(24,17),t.YNc(25,Eo,2,0,"th",14),t.YNc(26,qo,4,4,"td",11),t.BQk(),t.ynx(27,18),t.YNc(28,Io,2,0,"th",19),t.YNc(29,Fo,6,4,"td",20),t.BQk(),t.ynx(30,21),t.YNc(31,Oo,8,0,"th",22),t.YNc(32,Ro,12,0,"td",23),t.BQk(),t.ynx(33,24),t.YNc(34,Uo,5,4,"td",25),t.BQk(),t.YNc(35,Jo,1,3,"tr",26),t.YNc(36,Yo,1,0,"tr",27),t.YNc(37,Qo,1,0,"tr",28),t.qZA(),t.qZA(),t._UZ(38,"mat-paginator",29),t.qZA()),2&e&&(t.xp6(4),t.Q6J("ngModel",i.selFilter),t.xp6(2),t.Q6J("ngIf",i.apiCallStatus.status===i.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",i.channels)("ngClass",t.VKq(11,Ho,""!==i.errorMessage)),t.xp6(28),t.Q6J("matFooterRowDef",t.DdM(13,Bo)),t.xp6(1),t.Q6J("matHeaderRowDef",i.displayedColumns)("matHeaderRowDefSticky",i.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",i.displayedColumns),t.xp6(1),t.Q6J("pageSize",i.pageSize)("pageSizeOptions",i.pageSizeOptions)("showFirstLastButtons",i.screenSize!==i.screenSizeEnum.XS))},directives:[p.xw,p.Wh,p.yH,x.KE,U.Nt,m.Fj,m.JJ,m.On,Y.$V,u.O5,r.BZ,T.YE,u.mk,S.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,L.NW,M.pW,r.ge,T.nU,r.ev,u.PC,S.Zl,z.gM,I.BN,x.bx,k.gD,k.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk],pipes:[u.JJ],styles:[".mat-column-shortChannelId[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-shortChannelId[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-alias[_ngcontent-%COMP%]{padding-left:1rem;flex:0 0 15%;width:15%}.mat-column-alias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-balancedness[_ngcontent-%COMP%]{padding-left:2rem;flex:0 0 17%;width:17%}.mat-column-state[_ngcontent-%COMP%], .mat-column-feeBaseMsat[_ngcontent-%COMP%], .mat-column-feeProportionalMillionths[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{flex:1 1 10%;width:10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width: 56.25em){.mat-column-state[_ngcontent-%COMP%], .mat-column-feeBaseMsat[_ngcontent-%COMP%], .mat-column-feeProportionalMillionths[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{white-space:unset;flex:1 1 20%;width:20%}}@media only screen and (max-width: 37.5em){.mat-column-state[_ngcontent-%COMP%], .mat-column-feeBaseMsat[_ngcontent-%COMP%], .mat-column-feeProportionalMillionths[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{white-space:unset}}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 100%}@media only screen and (max-width: 56.25em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 90%}}@media only screen and (max-width: 37.5em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 80%}}"]}),n})();function Vo(n,a){1&n&&t._UZ(0,"mat-progress-bar",25)}function Go(n,a){1&n&&(t.TgZ(0,"th",26),t._uU(1," State "),t.qZA())}function Xo(n,a){if(1&n&&(t.TgZ(0,"td",27),t._uU(1),t.ALo(2,"titlecase"),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.hij(" ",t.lcZ(2,1,null==e?null:e.state),"")}}function $o(n,a){1&n&&(t.TgZ(0,"th",26),t._uU(1," Alias "),t.qZA())}function Wo(n,a){if(1&n&&(t.TgZ(0,"td",27),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Oqu(null==e?null:e.alias)}}function Ko(n,a){1&n&&(t.TgZ(0,"th",28),t._uU(1," Local Balance (Sats) "),t.qZA())}function jo(n,a){if(1&n&&(t.TgZ(0,"td",27),t.TgZ(1,"span",29),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",t.xi3(3,1,null==e?null:e.toLocal,"1.0-0")," ")}}function ts(n,a){1&n&&(t.TgZ(0,"th",28),t._uU(1," Remote Balance (Sats) "),t.qZA())}function es(n,a){if(1&n&&(t.TgZ(0,"td",27),t.TgZ(1,"span",29),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",t.xi3(3,1,null==e?null:e.toRemote,"1.0-0")," ")}}function ns(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"th",30),t.TgZ(1,"div",31),t.TgZ(2,"mat-select",32),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",33),t.NdJ("click",function(){return t.CHM(e),t.oxw().onDownloadCSV()}),t._uU(5,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function is(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",34),t.TgZ(1,"button",35),t.NdJ("click",function(o){const c=t.CHM(e).$implicit;return t.oxw().onChannelClick(c,o)}),t._uU(2,"View Info"),t.qZA(),t.qZA()}}function as(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No pending channel available."),t.qZA())}function os(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting pending channels..."),t.qZA())}function ss(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.errorMessage)}}function ls(n,a){if(1&n&&(t.TgZ(0,"td",36),t.YNc(1,as,2,0,"p",37),t.YNc(2,os,2,0,"p",37),t.YNc(3,ss,2,1,"p",37),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}const rs=function(n){return{"display-none":n}};function cs(n,a){if(1&n&&t._UZ(0,"tr",38),2&n){const e=t.oxw();t.Q6J("ngClass",t.VKq(1,rs,(null==e.channels?null:e.channels.data)&&(null==e.channels||null==e.channels.data?null:e.channels.data.length)>0))}}function us(n,a){1&n&&t._UZ(0,"tr",39)}function ps(n,a){1&n&&t._UZ(0,"tr",40)}const ms=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},ds=function(){return["no_channel"]};let hs=(()=>{class n{constructor(e,i,o){this.logger=e,this.store=i,this.commonService=o,this.totalBalance=0,this.displayedColumns=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=l.vn,this.selFilter="",this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["state","alias","actions"]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["state","alias","toLocal","toRemote","actions"]):(this.flgSticky=!0,this.displayedColumns=["state","alias","toLocal","toRemote","actions"])}ngOnInit(){this.store.select(_.Xz).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apiCallStatus=e.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.pendingChannels=e.pendingChannels,this.loadChannelsTable(),this.logger.info(e)}),this.store.select(_.yD).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.information=e}),this.store.select(_.Bo).pipe((0,h.R)(this.unSubs[4])).subscribe(e=>{this.numPeers=e.peers&&e.peers.length?e.peers.length:0}),this.store.select(_.kY).pipe((0,h.R)(this.unSubs[5])).subscribe(e=>{this.totalBalance=e.onchainBalance.total})}ngAfterViewInit(){this.pendingChannels.length>0&&this.loadChannelsTable()}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onChannelClick(e,i){this.store.dispatch((0,v.qR)({payload:{data:{channel:e,channelsType:"pending",component:ot}}}))}loadChannelsTable(){this.pendingChannels.sort((e,i)=>e.alias===i.alias?0:i.alias?1:-1),this.channels=new r.by([...this.pendingChannels]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(e,i)=>e[i]&&isNaN(e[i])?e[i].toLocaleLowerCase():e[i]?+e[i]:null,this.channels.filterPredicate=(e,i)=>JSON.stringify(e).toLowerCase().includes(i),this.channels.paginator=this.paginator,this.applyFilter(),this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"PendingChannels")}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(b.yh),t.Y36(O.v))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-channel-pending-table"]],viewQuery:function(e,i){if(1&e&&(t.Gf(T.YE,5),t.Gf(L.NW,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.sort=o.first),t.iGM(o=t.CRH())&&(i.paginator=o.first)}},features:[t._Bn([{provide:L.ye,useValue:(0,l.pt)("Channels")}])],decls:30,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","state"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","toLocal"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","toRemote"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t._UZ(2,"div",2),t.TgZ(3,"mat-form-field",3),t.TgZ(4,"input",4),t.NdJ("keyup",function(){return i.applyFilter()})("ngModelChange",function(s){return i.selFilter=s}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(5,"div",5),t.YNc(6,Vo,1,0,"mat-progress-bar",6),t.TgZ(7,"table",7,8),t.ynx(9,9),t.YNc(10,Go,2,0,"th",10),t.YNc(11,Xo,3,3,"td",11),t.BQk(),t.ynx(12,12),t.YNc(13,$o,2,0,"th",10),t.YNc(14,Wo,2,1,"td",11),t.BQk(),t.ynx(15,13),t.YNc(16,Ko,2,0,"th",14),t.YNc(17,jo,4,4,"td",11),t.BQk(),t.ynx(18,15),t.YNc(19,ts,2,0,"th",14),t.YNc(20,es,4,4,"td",11),t.BQk(),t.ynx(21,16),t.YNc(22,ns,6,0,"th",17),t.YNc(23,is,3,0,"td",18),t.BQk(),t.ynx(24,19),t.YNc(25,ls,4,3,"td",20),t.BQk(),t.YNc(26,cs,1,3,"tr",21),t.YNc(27,us,1,0,"tr",22),t.YNc(28,ps,1,0,"tr",23),t.qZA(),t.qZA(),t._UZ(29,"mat-paginator",24),t.qZA()),2&e&&(t.xp6(4),t.Q6J("ngModel",i.selFilter),t.xp6(2),t.Q6J("ngIf",i.apiCallStatus.status===i.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",i.channels)("ngClass",t.VKq(11,ms,""!==i.errorMessage)),t.xp6(19),t.Q6J("matFooterRowDef",t.DdM(13,ds)),t.xp6(1),t.Q6J("matHeaderRowDef",i.displayedColumns)("matHeaderRowDefSticky",i.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",i.displayedColumns),t.xp6(1),t.Q6J("pageSize",i.pageSize)("pageSizeOptions",i.pageSizeOptions)("showFirstLastButtons",i.screenSize!==i.screenSizeEnum.XS))},directives:[p.xw,p.Wh,p.yH,x.KE,U.Nt,m.Fj,m.JJ,m.On,Y.$V,u.O5,r.BZ,T.YE,u.mk,S.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,L.NW,M.pW,r.ge,T.nU,r.ev,k.gD,k.$L,Q.ey,q.lW,r.yh,r.Q2,r.XQ,r.Gk],pipes:[u.rS,u.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();var st=g(5615);const gs=["peersForm"],fs=["stepper"];function _s(n,a){if(1&n&&t._uU(0),2&n){const e=t.oxw();t.Oqu(e.peerFormLabel)}}function Cs(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Address is required."),t.qZA())}function xs(n,a){if(1&n&&(t.TgZ(0,"div",33),t._UZ(1,"fa-icon",34),t.TgZ(2,"span"),t._uU(3),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("icon",e.faExclamationTriangle),t.xp6(2),t.Oqu(e.peerConnectionError)}}function ys(n,a){if(1&n&&t._uU(0),2&n){const e=t.oxw();t.Oqu(e.channelFormLabel)}}function Zs(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Amount is required."),t.qZA())}function Ts(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Amount must be a positive number."),t.qZA())}function As(n,a){if(1&n&&(t.TgZ(0,"mat-error"),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.hij("Amount must be less than or equal to ",e.totalBalance,".")}}function Ls(n,a){if(1&n&&(t.TgZ(0,"div",33),t._UZ(1,"fa-icon",34),t.TgZ(2,"span"),t._uU(3),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("icon",e.faExclamationTriangle),t.xp6(2),t.Oqu(e.channelConnectionError)}}let vs=(()=>{class n{constructor(e,i,o,s,c,f){this.dialogRef=e,this.data=i,this.store=o,this.formBuilder=s,this.actions=c,this.logger=f,this.faExclamationTriangle=Z.eHv,this.peerAddress="",this.totalBalance=0,this.flgChannelOpened=!1,this.channelOpenStatus=null,this.newlyAddedPeer=null,this.flgEditable=!0,this.peerConnectionError="",this.channelConnectionError="",this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)",this.unSubs=[new d.x,new d.x]}ngOnInit(){this.totalBalance=this.data.message.balance,this.peerAddress=this.data.message.peer&&this.data.message.peer.nodeId&&this.data.message.peer.address?this.data.message.peer.nodeId+"@"+this.data.message.peer.address:this.data.message.peer&&this.data.message.peer.nodeId&&!this.data.message.peer.address?this.data.message.peer.nodeId:"",this.peerFormGroup=this.formBuilder.group({hiddenAddress:["",[m.kI.required]],peerAddress:[this.peerAddress,[m.kI.required]]}),this.channelFormGroup=this.formBuilder.group({fundingAmount:["",[m.kI.required,m.kI.min(1),m.kI.max(this.totalBalance)]],isPrivate:[!1],feeRate:[null],hiddenAmount:["",[m.kI.required]]}),this.statusFormGroup=this.formBuilder.group({}),this.actions.pipe((0,h.R)(this.unSubs[1]),(0,J.h)(e=>e.type===l.lr.NEWLY_ADDED_PEER_ECL||e.type===l.lr.FETCH_CHANNELS_ECL||e.type===l.lr.UPDATE_API_CALL_STATUS_ECL)).subscribe(e=>{e.type===l.lr.NEWLY_ADDED_PEER_ECL&&(this.logger.info(e.payload),this.flgEditable=!1,this.newlyAddedPeer=e.payload.peer,this.peerFormGroup.controls.hiddenAddress.setValue(this.peerFormGroup.controls.peerAddress.value),this.stepper.next()),e.type===l.lr.FETCH_CHANNELS_ECL&&this.dialogRef.close(),e.type===l.lr.UPDATE_API_CALL_STATUS_ECL&&e.payload.status===l.Bn.ERROR&&("SaveNewPeer"===e.payload.action?this.peerConnectionError=e.payload.message:"SaveNewChannel"===e.payload.action&&(this.channelConnectionError=e.payload.message))})}onConnectPeer(){if(!this.peerFormGroup.controls.peerAddress.value)return!0;this.peerConnectionError="",this.store.dispatch((0,R.El)({payload:{id:this.peerFormGroup.controls.peerAddress.value}}))}onOpenChannel(){if(!this.channelFormGroup.controls.fundingAmount.value||this.totalBalance-this.channelFormGroup.controls.fundingAmount.value<0)return!0;this.channelConnectionError="",this.store.dispatch((0,R.YX)({payload:{nodeId:this.newlyAddedPeer.nodeId,amount:this.channelFormGroup.controls.fundingAmount.value,private:this.channelFormGroup.controls.isPrivate.value,feeRate:this.channelFormGroup.controls.feeRate.value}}))}onClose(){this.dialogRef.close(!1)}stepSelectionChanged(e){switch(e.selectedIndex){case 0:default:this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 1:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+(this.newlyAddedPeer.alias?this.newlyAddedPeer.alias:this.newlyAddedPeer.nodeId):"Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 2:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+(this.newlyAddedPeer.alias?this.newlyAddedPeer.alias:this.newlyAddedPeer.nodeId):"Peer Details",this.channelFormLabel=this.channelFormGroup.controls.fundingAmount.value?"Opening Channel for "+this.channelFormGroup.controls.fundingAmount.value+" Sats":"Open Channel (Optional)"}e.selectedIndex{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(D.so),t.Y36(D.WI),t.Y36(b.yh),t.Y36(m.qu),t.Y36(B.eX),t.Y36(F.mQ))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-connect-peer"]],viewQuery:function(e,i){if(1&e&&(t.Gf(gs,5),t.Gf(fs,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.form=o.first),t.iGM(o=t.CRH())&&(i.stepper=o.first)}},decls:50,vars:20,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["autoFocus","","matInput","","placeholder","Lightning Address (pubkey OR pubkey@ip:port)","formControlName","peerAddress","tabindex","1","required",""],[4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-button","","color","primary","tabindex","3","type","button",3,"click"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mb-1",3,"formGroup"],["matStepLabel","","disabled","true"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","60","fxLayoutAlign","start end"],["matInput","","autoFocus","","formControlName","fundingAmount","placeholder","Amount","type","number","tabindex","1","required","",3,"step"],["matSuffix",""],["fxFlex","35","fxLayoutAlign","start center"],["tabindex","2","color","primary","formControlName","isPrivate","name","isPrivate"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["fxFlex","48","fxLayout","row","fxLayoutAlign","start center"],["matInput","","formControlName","feeRate","placeholder","Fee (Sats/vByte)","type","number","name","feeRate","tabindex","7",3,"step","min"],["mat-button","","color","primary","tabindex","8","type","button",3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-button","","color","primary","tabindex","12","type","button","default","",3,"click"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t.TgZ(4,"span",4),t._uU(5,"Connect to a new peer"),t.qZA(),t.qZA(),t.TgZ(6,"button",5),t.NdJ("click",function(){return i.onClose()}),t._uU(7,"X"),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",6),t.TgZ(9,"div",7),t.TgZ(10,"mat-vertical-stepper",8,9),t.NdJ("selectionChange",function(s){return i.stepSelectionChanged(s)}),t.TgZ(12,"mat-step",10),t.TgZ(13,"form",11),t.YNc(14,_s,1,1,"ng-template",12),t.TgZ(15,"mat-form-field",1),t._UZ(16,"input",13),t.YNc(17,Cs,2,0,"mat-error",14),t.qZA(),t.YNc(18,xs,4,2,"div",15),t.TgZ(19,"div",16),t.TgZ(20,"button",17),t.NdJ("click",function(){return i.onConnectPeer()}),t._uU(21),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.TgZ(22,"mat-step",10),t.TgZ(23,"form",18),t.YNc(24,ys,1,1,"ng-template",19),t.TgZ(25,"div",20),t.TgZ(26,"div",21),t.TgZ(27,"mat-form-field",22),t._UZ(28,"input",23),t.TgZ(29,"mat-hint"),t._uU(30),t.qZA(),t.TgZ(31,"span",24),t._uU(32," Sats "),t.qZA(),t.YNc(33,Zs,2,0,"mat-error",14),t.YNc(34,Ts,2,0,"mat-error",14),t.YNc(35,As,2,1,"mat-error",14),t.qZA(),t.TgZ(36,"div",25),t.TgZ(37,"mat-slide-toggle",26),t._uU(38,"Private Channel"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(39,"div",27),t.TgZ(40,"div",28),t.TgZ(41,"mat-form-field",1),t._UZ(42,"input",29),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.YNc(43,Ls,4,2,"div",15),t.TgZ(44,"div",16),t.TgZ(45,"button",30),t.NdJ("click",function(){return i.onOpenChannel()}),t._uU(46),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.TgZ(47,"div",31),t.TgZ(48,"button",32),t.NdJ("click",function(){return i.onClose()}),t._uU(49),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(10),t.Q6J("linear",!0),t.xp6(2),t.Q6J("stepControl",i.peerFormGroup)("editable",i.flgEditable),t.xp6(1),t.Q6J("formGroup",i.peerFormGroup),t.xp6(4),t.Q6J("ngIf",null==i.peerFormGroup.controls.peerAddress.errors?null:i.peerFormGroup.controls.peerAddress.errors.required),t.xp6(1),t.Q6J("ngIf",""!==i.peerConnectionError),t.xp6(3),t.Oqu(""!==i.peerConnectionError?"Retry":"Add Peer"),t.xp6(1),t.Q6J("stepControl",i.channelFormGroup)("editable",i.flgEditable),t.xp6(1),t.Q6J("formGroup",i.channelFormGroup),t.xp6(5),t.Q6J("step",1e3),t.xp6(2),t.hij("Remaining Bal: ",i.totalBalance-(i.channelFormGroup.controls.fundingAmount.value?i.channelFormGroup.controls.fundingAmount.value:0),""),t.xp6(3),t.Q6J("ngIf",null==i.channelFormGroup.controls.fundingAmount.errors?null:i.channelFormGroup.controls.fundingAmount.errors.required),t.xp6(1),t.Q6J("ngIf",null==i.channelFormGroup.controls.fundingAmount.errors?null:i.channelFormGroup.controls.fundingAmount.errors.min),t.xp6(1),t.Q6J("ngIf",null==i.channelFormGroup.controls.fundingAmount.errors?null:i.channelFormGroup.controls.fundingAmount.errors.max),t.xp6(7),t.Q6J("step",1)("min",0),t.xp6(1),t.Q6J("ngIf",""!==i.channelConnectionError),t.xp6(3),t.Oqu(""!==i.channelConnectionError?"Retry":"Open Channel"),t.xp6(3),t.Oqu(null!=i.newlyAddedPeer&&i.newlyAddedPeer.nodeId?"Do It Later":"Close"))},directives:[p.xw,p.yH,A.dk,p.Wh,q.lW,A.dn,st.Vq,st.C0,m._Y,m.JL,m.sg,st.VY,x.KE,U.Nt,m.Fj,X.h,m.JJ,m.u,m.Q7,u.O5,m.wV,x.bx,x.R9,At.Rr,m.qQ,$.q,x.TO,I.BN],styles:[""]}),n})();function bs(n,a){1&n&&t._UZ(0,"mat-progress-bar",35)}function Ss(n,a){1&n&&(t.TgZ(0,"th",36),t._uU(1," ID "),t.qZA())}const St=function(n){return{"max-width":n}};function ws(n,a){if(1&n&&(t.TgZ(0,"td",37),t._uU(1),t.qZA()),2&n){const e=a.$implicit,i=t.oxw();t.Q6J("ngStyle",t.VKq(2,St,i.screenSize===i.screenSizeEnum.XS?"10rem":"30rem")),t.xp6(1),t.hij(" ",null==e?null:e.nodeId," ")}}function Es(n,a){1&n&&(t.TgZ(0,"th",38),t._uU(1," Alias "),t.qZA())}const wt=function(n){return{"mr-0":n}};function qs(n,a){if(1&n&&t._UZ(0,"span",42),2&n){const e=t.oxw(2);t.Q6J("ngClass",t.VKq(1,wt,e.screenSize===e.screenSizeEnum.XS))}}function Is(n,a){if(1&n&&t._UZ(0,"span",43),2&n){const e=t.oxw(2);t.Q6J("ngClass",t.VKq(1,wt,e.screenSize===e.screenSizeEnum.XS))}}function Fs(n,a){if(1&n&&(t.TgZ(0,"td",39),t.YNc(1,qs,1,3,"span",40),t.YNc(2,Is,1,3,"span",41),t._uU(3),t.qZA()),2&n){const e=a.$implicit,i=t.oxw();t.Q6J("ngStyle",t.VKq(4,St,i.screenSize===i.screenSizeEnum.XS?"10rem":"25rem")),t.xp6(1),t.Q6J("ngIf","CONNECTED"===e.state),t.xp6(1),t.Q6J("ngIf","DISCONNECTED"===e.state),t.xp6(1),t.hij(" ",null==e?null:e.alias," ")}}function Os(n,a){1&n&&(t.TgZ(0,"th",36),t._uU(1," State "),t.qZA())}function Rs(n,a){if(1&n&&(t.TgZ(0,"td",44),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.hij(" ",null==e?null:e.state," ")}}function Ns(n,a){1&n&&(t.TgZ(0,"th",36),t._uU(1," Network Address "),t.qZA())}function ks(n,a){if(1&n&&(t.TgZ(0,"td",44),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.hij(" ",null==e?null:e.address," ")}}function Ps(n,a){1&n&&(t.TgZ(0,"th",36),t._uU(1," Channels "),t.qZA())}function Ds(n,a){if(1&n&&(t.TgZ(0,"td",44),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.hij(" ",null==e?null:e.channels," ")}}function Us(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"th",45),t.TgZ(1,"div",46),t.TgZ(2,"mat-select",47),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",48),t.NdJ("click",function(){return t.CHM(e),t.oxw().onDownloadCSV()}),t._uU(5,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function Ms(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"mat-option",48),t.NdJ("click",function(){t.CHM(e);const o=t.oxw().$implicit;return t.oxw().onPeerDetach(o)}),t._uU(1,"Disconnect"),t.qZA()}}function Js(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"mat-option",48),t.NdJ("click",function(){t.CHM(e);const o=t.oxw().$implicit;return t.oxw().onConnectPeer(o)}),t._uU(1,"Reconnect"),t.qZA()}}function Ys(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",49),t.TgZ(1,"div",46),t.TgZ(2,"mat-select",47),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",48),t.NdJ("click",function(o){const c=t.CHM(e).$implicit;return t.oxw().onPeerClick(c,o)}),t._uU(5,"View Info"),t.qZA(),t.TgZ(6,"mat-option",48),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().onOpenChannel(s)}),t._uU(7,"Open Channel"),t.qZA(),t.YNc(8,Ms,2,0,"mat-option",50),t.YNc(9,Js,2,0,"mat-option",50),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=a.$implicit;t.xp6(8),t.Q6J("ngIf","CONNECTED"===e.state),t.xp6(1),t.Q6J("ngIf","DISCONNECTED"===e.state)}}function Qs(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No connected peer."),t.qZA())}function Hs(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting peers..."),t.qZA())}function Bs(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.errorMessage)}}function zs(n,a){if(1&n&&(t.TgZ(0,"td",51),t.YNc(1,Qs,2,0,"p",52),t.YNc(2,Hs,2,0,"p",52),t.YNc(3,Bs,2,1,"p",52),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",(!(null!=e.peers&&e.peers.data)||(null==e.peers||null==e.peers.data?null:e.peers.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.peers&&e.peers.data)||(null==e.peers||null==e.peers.data?null:e.peers.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.peers&&e.peers.data)||(null==e.peers||null==e.peers.data?null:e.peers.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}const Vs=function(n){return{"display-none":n}};function Gs(n,a){if(1&n&&t._UZ(0,"tr",53),2&n){const e=t.oxw();t.Q6J("ngClass",t.VKq(1,Vs,(null==e.peers?null:e.peers.data)&&(null==e.peers||null==e.peers.data?null:e.peers.data.length)>0))}}function Xs(n,a){1&n&&t._UZ(0,"tr",54)}function $s(n,a){1&n&&t._UZ(0,"tr",55)}const Ws=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},Ks=function(){return["no_peer"]};let js=(()=>{class n{constructor(e,i,o,s,c){this.logger=e,this.store=i,this.rtlEffects=o,this.actions=s,this.commonService=c,this.faUsers=Z.FVb,this.newlyAddedPeer="",this.displayedColumns=[],this.peerAddress="",this.peersData=[],this.information={},this.availableBalance=0,this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","nodeId","address","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","nodeId","address","channels","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","nodeId","address","channels","actions"])}ngOnInit(){this.store.select(_.yD).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.information=e}),this.store.select(_.Bo).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.errorMessage="",this.apiCallStatus=e.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.peersData=e.peers,this.loadPeersTable(this.peersData),this.logger.info(e)}),this.store.select(_.kY).pipe((0,h.R)(this.unSubs[2])).subscribe(e=>{this.availableBalance=e.onchainBalance.total||0}),this.actions.pipe((0,h.R)(this.unSubs[3]),(0,J.h)(e=>e.type===l.lr.SET_PEERS_ECL)).subscribe(e=>{this.peerAddress=null})}ngAfterViewInit(){this.peersData.length>0&&this.loadPeersTable(this.peersData)}onPeerClick(e,i){const o=[[{key:"nodeId",value:e.nodeId,title:"Public Key",width:100}],[{key:"address",value:e.address,title:"Address",width:50},{key:"alias",value:e.alias,title:"Alias",width:50}],[{key:"state",value:this.commonService.titleCase(e.state),title:"State",width:50},{key:"channels",value:e.channels,title:"Channels",width:50}]];this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Peer Information",showQRName:"Public Key",showQRField:e.nodeId,message:o}}}))}onConnectPeer(e){this.store.dispatch((0,v.qR)({payload:{data:{message:{peer:e.nodeId?e:null,information:this.information,balance:this.availableBalance},component:vs}}}))}onOpenChannel(e){this.store.dispatch((0,v.qR)({payload:{data:{alertTitle:"Open Channel",message:{peer:e,information:this.information,balance:this.availableBalance},newlyAdded:!1,component:vt}}}))}onPeerDetach(e){this.store.dispatch(e.channels>0?(0,v.qR)({payload:{data:{type:l.n_.ERROR,alertTitle:"Disconnect Not Allowed",titleMessage:"Channel active with this peer."}}}):(0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Disconnect Peer",titleMessage:"Disconnect peer: "+(e.alias?e.alias:e.nodeId),noBtnText:"Cancel",yesBtnText:"Disconnect"}}})),this.rtlEffects.closeConfirm.pipe((0,h.R)(this.unSubs[4])).subscribe(i=>{i&&this.store.dispatch((0,R.GD)({payload:{nodeId:e.nodeId}}))})}applyFilter(){this.peers.filter=this.selFilter.trim().toLowerCase()}loadPeersTable(e){this.peers=new r.by(e?[...e]:[]),this.peers.sort=this.sort,this.peers.sortingDataAccessor=(i,o)=>i[o]&&isNaN(i[o])?i[o].toLocaleLowerCase():i[o]?+i[o]:null,this.peers.filterPredicate=(i,o)=>JSON.stringify(i).toLowerCase().includes(o),this.peers.paginator=this.paginator,this.applyFilter()}onDownloadCSV(){this.peers.data&&this.peers.data.length>0&&this.commonService.downloadFile(this.peers.data,"Peers")}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(b.yh),t.Y36(K.V),t.Y36(B.eX),t.Y36(O.v))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-peers"]],viewQuery:function(e,i){if(1&e&&(t.Gf(T.YE,5),t.Gf(L.NW,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.sort=o.first),t.iGM(o=t.CRH())&&(i.paginator=o.first)}},features:[t._Bn([{provide:L.ye,useValue:(0,l.pt)("Peers")}])],decls:42,vars:15,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["peersForm","ngForm"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["fxLayout","row","fxLayoutAlign","start start"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","nodeId"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","alias"],["mat-header-cell","","mat-sort-header","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3",3,"ngStyle",4,"matCellDef"],["matColumnDef","state"],["mat-cell","",4,"matCellDef"],["matColumnDef","address"],["matColumnDef","channels"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","px-3",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","",1,"px-3"],["mat-cell","",1,"px-3",3,"ngStyle"],["class","dot green","matTooltip","Connected","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Disconnected","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Connected","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Disconnected","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["mat-cell",""],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],[3,"click",4,"ngIf"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"form",1,2),t.TgZ(3,"button",3),t.NdJ("click",function(){return i.onConnectPeer({})}),t._uU(4,"Add Peer"),t.qZA(),t.qZA(),t.TgZ(5,"div",4),t.TgZ(6,"div",5),t.TgZ(7,"div",6),t._UZ(8,"fa-icon",7),t.TgZ(9,"span",8),t._uU(10,"Peers"),t.qZA(),t.qZA(),t.TgZ(11,"mat-form-field",9),t.TgZ(12,"div",10),t.TgZ(13,"input",11),t.NdJ("keyup",function(){return i.applyFilter()})("ngModelChange",function(s){return i.selFilter=s}),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.TgZ(14,"div",12),t.YNc(15,bs,1,0,"mat-progress-bar",13),t.TgZ(16,"table",14,15),t.ynx(18,16),t.YNc(19,Ss,2,0,"th",17),t.YNc(20,ws,2,4,"td",18),t.BQk(),t.ynx(21,19),t.YNc(22,Es,2,0,"th",20),t.YNc(23,Fs,4,6,"td",21),t.BQk(),t.ynx(24,22),t.YNc(25,Os,2,0,"th",17),t.YNc(26,Rs,2,1,"td",23),t.BQk(),t.ynx(27,24),t.YNc(28,Ns,2,0,"th",17),t.YNc(29,ks,2,1,"td",23),t.BQk(),t.ynx(30,25),t.YNc(31,Ps,2,0,"th",17),t.YNc(32,Ds,2,1,"td",23),t.BQk(),t.ynx(33,26),t.YNc(34,Us,6,0,"th",27),t.YNc(35,Ys,10,2,"td",28),t.BQk(),t.ynx(36,29),t.YNc(37,zs,4,3,"td",30),t.BQk(),t.YNc(38,Gs,1,3,"tr",31),t.YNc(39,Xs,1,0,"tr",32),t.YNc(40,$s,1,0,"tr",33),t.qZA(),t.qZA(),t._UZ(41,"mat-paginator",34),t.qZA(),t.qZA()),2&e&&(t.xp6(8),t.Q6J("icon",i.faUsers),t.xp6(5),t.Q6J("ngModel",i.selFilter),t.xp6(2),t.Q6J("ngIf",i.apiCallStatus.status===i.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",i.peers)("ngClass",t.VKq(12,Ws,""!==i.errorMessage)),t.xp6(22),t.Q6J("matFooterRowDef",t.DdM(14,Ks)),t.xp6(1),t.Q6J("matHeaderRowDef",i.displayedColumns)("matHeaderRowDefSticky",i.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",i.displayedColumns),t.xp6(1),t.Q6J("pageSize",i.pageSize)("pageSizeOptions",i.pageSizeOptions)("showFirstLastButtons",i.screenSize!==i.screenSizeEnum.XS))},directives:[p.xw,p.yH,p.Wh,m._Y,m.JL,m.F,q.lW,I.BN,x.KE,U.Nt,m.Fj,m.JJ,m.On,Y.$V,u.O5,r.BZ,T.YE,u.mk,S.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,L.NW,M.pW,r.ge,T.nU,r.ev,u.PC,S.Zl,z.gM,k.gD,k.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk],styles:[".mat-column-alias[_ngcontent-%COMP%]{flex:1 1 10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-nodeId[_ngcontent-%COMP%]{flex:1 1 10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:2rem}.mat-column-address[_ngcontent-%COMP%]{flex:1 1 15%;width:15%}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();const tl=["queryRoutesForm"];function el(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Destination Node ID is required."),t.qZA())}function nl(n,a){1&n&&(t.TgZ(0,"mat-error"),t._uU(1,"Amount is required."),t.qZA())}function il(n,a){1&n&&t._UZ(0,"mat-progress-bar",31)}function al(n,a){1&n&&(t.TgZ(0,"th",32),t._uU(1," Alias "),t.qZA())}function ol(n,a){if(1&n&&(t.TgZ(0,"td",33),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.hij(" ",null==e?null:e.alias," ")}}function sl(n,a){1&n&&(t.TgZ(0,"th",32),t._uU(1," ID "),t.qZA())}function ll(n,a){if(1&n&&(t.TgZ(0,"td",33),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.hij(" ",null==e?null:e.nodeId," ")}}function rl(n,a){1&n&&(t.TgZ(0,"th",34),t.TgZ(1,"span",35),t._uU(2,"Actions"),t.qZA(),t.qZA())}function cl(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",36),t.TgZ(1,"button",37),t.NdJ("click",function(o){const c=t.CHM(e).$implicit;return t.oxw().onHopClick(c,o)}),t._uU(2,"View Info"),t.qZA(),t.qZA()}}function ul(n,a){1&n&&t._UZ(0,"tr",38)}function pl(n,a){1&n&&t._UZ(0,"tr",39)}const ml=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}};let dl=(()=>{class n{constructor(e,i,o){this.store=e,this.eclEffects=i,this.commonService=o,this.nodeId="",this.amount=0,this.flgSticky=!1,this.displayedColumns=[],this.flgLoading=[!1],this.faRoute=Z.FpQ,this.faExclamationTriangle=Z.eHv,this.screenSize="",this.screenSizeEnum=l.cu,this.unSubs=[new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","actions"]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","nodeId","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","nodeId","actions"])}ngOnInit(){this.qrHops=new r.by([]),this.eclEffects.setQueryRoutes.pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.qrHops.data=[],e&&e.length&&e.length>0?(this.flgLoading[0]=!1,this.qrHops=new r.by([...e]),this.qrHops.data=e):this.flgLoading[0]="error",this.qrHops.sort=this.sort,this.qrHops.sortingDataAccessor=(i,o)=>i[o]&&isNaN(i[o])?i[o].toLocaleLowerCase():i[o]?+i[o]:null})}onQueryRoutes(){if(!this.nodeId||!this.amount)return!0;this.qrHops.data=[],this.flgLoading[0]=!0,this.store.dispatch((0,R.WO)({payload:{nodeId:this.nodeId,amount:1e3*this.amount}}))}resetData(){this.nodeId="",this.amount=0,this.flgLoading[0]=!1,this.qrHops.data=[],this.form.resetForm()}onHopClick(e,i){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Route Information",message:[[{key:"alias",value:e.alias,title:"Alias",width:100,type:l.Gi.STRING}],[{key:"nodeId",value:e.nodeId,title:"Node ID",width:100,type:l.Gi.STRING}]]}}}))}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(b.yh),t.Y36(it.o),t.Y36(O.v))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-query-routes"]],viewQuery:function(e,i){if(1&e&&(t.Gf(T.YE,5),t.Gf(tl,7)),2&e){let o;t.iGM(o=t.CRH())&&(i.sort=o.first),t.iGM(o=t.CRH())&&(i.form=o.first)}},decls:39,vars:16,consts:[["fxLayout","column","fxFlex","100"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",3,"ngSubmit"],["queryRoutesForm","ngForm"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","69","fxLayoutAlign","start end"],["matInput","","placeholder","Destination Node ID","name","nodeId","tabindex","1","required","",3,"ngModel","ngModelChange"],["destPubkey","ngModel"],[4,"ngIf"],["fxFlex","29","fxLayoutAlign","start end"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","type","number","required","",3,"ngModel","step","min","ngModelChange"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","4"],["fxLayout","row","fxLayoutAlign","start center",1,"page-sub-title-container","mt-2","mb-1"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],[1,"table-container","mb-6",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","alias"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","nodeId"],["matColumnDef","actions"],["mat-header-cell","","class","pl-4 pr-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-4",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","",1,"pl-4","pr-3"],["fxLayoutAlign","end center"],["mat-cell","",1,"pl-4"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-header-row",""],["mat-row",""]],template:function(e,i){if(1&e){const o=t.EpF();t.TgZ(0,"div",0),t.TgZ(1,"form",1,2),t.NdJ("ngSubmit",function(){return t.CHM(o),t.MAs(2).form.valid&&i.onQueryRoutes()}),t.TgZ(3,"div",3),t._UZ(4,"fa-icon",4),t.TgZ(5,"span"),t._uU(6,"The actual routing fee on a payment can be different from the fee shown on query routes."),t.qZA(),t.qZA(),t.TgZ(7,"mat-form-field",5),t.TgZ(8,"input",6,7),t.NdJ("ngModelChange",function(c){return i.nodeId=c}),t.qZA(),t.YNc(10,el,2,0,"mat-error",8),t.qZA(),t.TgZ(11,"mat-form-field",9),t.TgZ(12,"input",10),t.NdJ("ngModelChange",function(c){return i.amount=c}),t.qZA(),t.YNc(13,nl,2,0,"mat-error",8),t.qZA(),t.TgZ(14,"div",11),t.TgZ(15,"button",12),t.NdJ("click",function(){return i.resetData()}),t._uU(16,"Clear"),t.qZA(),t.TgZ(17,"button",13),t._uU(18,"Query Route"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(19,"div",14),t.TgZ(20,"div",15),t._UZ(21,"fa-icon",16),t.TgZ(22,"span",17),t._uU(23,"Transaction Route"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(24,"div",18),t.YNc(25,il,1,0,"mat-progress-bar",19),t.TgZ(26,"table",20,21),t.ynx(28,22),t.YNc(29,al,2,0,"th",23),t.YNc(30,ol,2,1,"td",24),t.BQk(),t.ynx(31,25),t.YNc(32,sl,2,0,"th",23),t.YNc(33,ll,2,1,"td",24),t.BQk(),t.ynx(34,26),t.YNc(35,rl,3,0,"th",27),t.YNc(36,cl,3,0,"td",28),t.BQk(),t.YNc(37,ul,1,0,"tr",29),t.YNc(38,pl,1,0,"tr",30),t.qZA(),t.qZA(),t.qZA()}2&e&&(t.xp6(4),t.Q6J("icon",i.faExclamationTriangle),t.xp6(4),t.Q6J("ngModel",i.nodeId),t.xp6(2),t.Q6J("ngIf",!i.nodeId),t.xp6(2),t.Q6J("ngModel",i.amount)("step",1e3)("min",0),t.xp6(1),t.Q6J("ngIf",!i.amount),t.xp6(8),t.Q6J("icon",i.faRoute),t.xp6(4),t.Q6J("ngIf",!0===i.flgLoading[0]),t.xp6(1),t.Q6J("dataSource",i.qrHops)("ngClass",t.VKq(14,ml,"error"===i.flgLoading[0])),t.xp6(11),t.Q6J("matHeaderRowDef",i.displayedColumns)("matHeaderRowDefSticky",i.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",i.displayedColumns))},directives:[p.xw,p.yH,m._Y,m.JL,m.F,p.Wh,I.BN,x.KE,U.Nt,m.Fj,m.Q7,m.JJ,m.On,u.O5,m.wV,m.qQ,$.q,q.lW,Y.$V,r.BZ,T.YE,u.mk,S.oO,r.w1,r.fO,r.Dz,r.as,r.nj,x.TO,M.pW,r.ge,T.nU,r.ev,r.XQ,r.Gk],styles:[".mat-column-actions[_ngcontent-%COMP%]{flex:0 0 5%;width:5%}.mat-column-pubkey_alias[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();function hl(n,a){1&n&&t._UZ(0,"mat-progress-bar",29)}function gl(n,a){1&n&&(t.TgZ(0,"th",30),t._uU(1," State "),t.qZA())}function fl(n,a){if(1&n&&(t.TgZ(0,"span",36),t._UZ(1,"fa-icon",37),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("icon",e.faEyeSlash)}}function _l(n,a){if(1&n&&(t.TgZ(0,"span",38),t._UZ(1,"fa-icon",37),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("icon",e.faEye)}}const Et=function(n){return{"max-width":n}};function Cl(n,a){if(1&n&&(t.TgZ(0,"td",31),t.TgZ(1,"div",32),t.YNc(2,fl,2,1,"span",33),t.YNc(3,_l,2,1,"span",34),t.TgZ(4,"span",35),t._uU(5),t.ALo(6,"titlecase"),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw();t.xp6(1),t.Q6J("ngStyle",t.VKq(6,Et,i.screenSize===i.screenSizeEnum.XS?"10rem":"20rem")),t.xp6(1),t.Q6J("ngIf",0===e.channelFlags),t.xp6(1),t.Q6J("ngIf",0!==e.channelFlags),t.xp6(2),t.Oqu(t.lcZ(6,4,null==e?null:e.state))}}function xl(n,a){1&n&&(t.TgZ(0,"th",30),t._uU(1," Short Channel ID "),t.qZA())}function yl(n,a){if(1&n&&(t.TgZ(0,"td",31),t._uU(1),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Oqu(null==e?null:e.shortChannelId)}}function Zl(n,a){1&n&&(t.TgZ(0,"th",30),t._uU(1," Alias "),t.qZA())}function Tl(n,a){if(1&n&&(t.TgZ(0,"td",31),t.TgZ(1,"div",32),t.TgZ(2,"span",35),t._uU(3),t.qZA(),t.qZA(),t.qZA()),2&n){const e=a.$implicit,i=t.oxw();t.xp6(1),t.Q6J("ngStyle",t.VKq(2,Et,i.screenSize===i.screenSizeEnum.XS?"10rem":"20rem")),t.xp6(2),t.Oqu(e.alias)}}function Al(n,a){1&n&&(t.TgZ(0,"th",39),t._uU(1," Local Balance (Sats) "),t.qZA())}function Ll(n,a){if(1&n&&(t.TgZ(0,"td",31),t.TgZ(1,"span",40),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",t.xi3(3,1,null==e?null:e.toLocal,"1.0-0")," ")}}function vl(n,a){1&n&&(t.TgZ(0,"th",39),t._uU(1," Remote Balance (Sats) "),t.qZA())}function bl(n,a){if(1&n&&(t.TgZ(0,"td",31),t.TgZ(1,"span",40),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.hij(" ",t.xi3(3,1,null==e?null:e.toRemote,"1.0-0")," ")}}function Sl(n,a){1&n&&(t.TgZ(0,"th",41),t._uU(1,"Balance Score "),t.qZA())}function wl(n,a){if(1&n&&(t.TgZ(0,"td",42),t.TgZ(1,"div",43),t.TgZ(2,"mat-hint",44),t._uU(3),t.ALo(4,"number"),t.qZA(),t.qZA(),t._UZ(5,"mat-progress-bar",45),t.qZA()),2&n){const e=a.$implicit;t.xp6(3),t.Oqu(t.lcZ(4,2,(null==e?null:e.balancedness)||0)),t.xp6(2),t.s9C("value",e.toLocal&&e.toLocal>0?+e.toLocal/(+e.toLocal+ +e.toRemote)*100:0)}}function El(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"th",46),t.TgZ(1,"div",47),t.TgZ(2,"mat-select",48),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",49),t.NdJ("click",function(){return t.CHM(e),t.oxw().onDownloadCSV()}),t._uU(5,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function ql(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",50),t.TgZ(1,"div",51),t.TgZ(2,"mat-select",52),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",49),t.NdJ("click",function(o){const c=t.CHM(e).$implicit;return t.oxw().onChannelClick(c,o)}),t._uU(5,"View Info"),t.qZA(),t.TgZ(6,"mat-option",49),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().onChannelClose(s,!0)}),t._uU(7,"Force Close"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function Il(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No inactive channel available."),t.qZA())}function Fl(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting inactive channels..."),t.qZA())}function Ol(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.errorMessage)}}function Rl(n,a){if(1&n&&(t.TgZ(0,"td",53),t.YNc(1,Il,2,0,"p",54),t.YNc(2,Fl,2,0,"p",54),t.YNc(3,Ol,2,1,"p",54),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.channels&&e.channels.data)||(null==e.channels||null==e.channels.data?null:e.channels.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}const Nl=function(n){return{"display-none":n}};function kl(n,a){if(1&n&&t._UZ(0,"tr",55),2&n){const e=t.oxw();t.Q6J("ngClass",t.VKq(1,Nl,(null==e.channels?null:e.channels.data)&&(null==e.channels||null==e.channels.data?null:e.channels.data.length)>0))}}function Pl(n,a){1&n&&t._UZ(0,"tr",56)}function Dl(n,a){1&n&&t._UZ(0,"tr",57)}const Ul=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},Ml=function(){return["no_channel"]};let Jl=(()=>{class n{constructor(e,i,o,s){this.logger=e,this.store=i,this.rtlEffects=o,this.commonService=s,this.faEye=Z.Mdf,this.faEyeSlash=Z.Aq,this.totalBalance=0,this.displayedColumns=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.feeRateTypes=l.vn,this.selFilter="",this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new d.x,new d.x,new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS||this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["state","alias","toLocal","toRemote","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["state","shortChannelId","alias","toLocal","toRemote","actions"]):(this.flgSticky=!0,this.displayedColumns=["state","shortChannelId","alias","toLocal","toRemote","balancedness","actions"])}ngOnInit(){this.store.select(_.Xz).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apiCallStatus=e.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.inactiveChannels=e.inactiveChannels,this.loadChannelsTable(),this.logger.info(e)}),this.store.select(_.yD).pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{this.information=e}),this.store.select(_.Bo).pipe((0,h.R)(this.unSubs[2])).subscribe(e=>{this.numPeers=e.peers&&e.peers.length?e.peers.length:0}),this.store.select(_.kY).pipe((0,h.R)(this.unSubs[3])).subscribe(e=>{this.totalBalance=e.onchainBalance.total})}ngAfterViewInit(){this.inactiveChannels.length>0&&this.loadChannelsTable()}onChannelClose(e,i){this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:i?"Force Close Channel":"Close Channel",titleMessage:i?"Force closing channel: "+(e.alias||e.shortChannelId?e.alias&&e.shortChannelId?e.alias+" ("+e.shortChannelId+")":e.alias?e.alias:e.shortChannelId:e.channelId):"Closing channel: "+(e.alias||e.shortChannelId?e.alias&&e.shortChannelId?e.alias+" ("+e.shortChannelId+")":e.alias?e.alias:e.shortChannelId:e.channelId),noBtnText:"Cancel",yesBtnText:i?"Force Close":"Close Channel"}}})),this.rtlEffects.closeConfirm.pipe((0,h.R)(this.unSubs[4])).subscribe(f=>{f&&this.store.dispatch((0,R.BL)({payload:{channelId:e.channelId,force:i}}))})}applyFilter(){this.channels.filter=this.selFilter.trim().toLocaleLowerCase()}onChannelClick(e,i){this.store.dispatch((0,v.qR)({payload:{data:{channel:e,channelsType:"inactive",component:ot}}}))}loadChannelsTable(){this.inactiveChannels.sort((e,i)=>e.alias===i.alias?0:i.alias?1:-1),this.channels=new r.by([...this.inactiveChannels]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(e,i)=>e[i]&&isNaN(e[i])?e[i].toLocaleLowerCase():e[i]?+e[i]:null,this.channels.filterPredicate=(e,i)=>JSON.stringify(e).toLowerCase().includes(i),this.channels.paginator=this.paginator,this.applyFilter(),this.logger.info(this.channels)}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"InactiveChannels")}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(b.yh),t.Y36(K.V),t.Y36(O.v))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-channel-inactive-table"]],viewQuery:function(e,i){if(1&e&&(t.Gf(T.YE,5),t.Gf(L.NW,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.sort=o.first),t.iGM(o=t.CRH())&&(i.paginator=o.first)}},features:[t._Bn([{provide:L.ye,useValue:(0,l.pt)("Channels")}])],decls:36,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","state"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","shortChannelId"],["matColumnDef","alias"],["matColumnDef","toLocal"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","toRemote"],["matColumnDef","balancedness"],["mat-header-cell","","mat-sort-header","","class","pl-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],["class","mr-1","matTooltip","Private","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Public","matTooltipPosition","right",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Private","matTooltipPosition","right",1,"mr-1"],[3,"icon"],["matTooltip","Public","matTooltipPosition","right",1,"mr-1"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-3"],["mat-cell","",1,"pl-3"],["fxLayout","row"],["fxFlex","100","fxLayoutAlign","center center",1,"font-size-80"],["mode","determinate",3,"value"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","2",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t._UZ(2,"div",2),t.TgZ(3,"mat-form-field",3),t.TgZ(4,"input",4),t.NdJ("keyup",function(){return i.applyFilter()})("ngModelChange",function(s){return i.selFilter=s}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(5,"div",5),t.YNc(6,hl,1,0,"mat-progress-bar",6),t.TgZ(7,"table",7,8),t.ynx(9,9),t.YNc(10,gl,2,0,"th",10),t.YNc(11,Cl,7,8,"td",11),t.BQk(),t.ynx(12,12),t.YNc(13,xl,2,0,"th",10),t.YNc(14,yl,2,1,"td",11),t.BQk(),t.ynx(15,13),t.YNc(16,Zl,2,0,"th",10),t.YNc(17,Tl,4,4,"td",11),t.BQk(),t.ynx(18,14),t.YNc(19,Al,2,0,"th",15),t.YNc(20,Ll,4,4,"td",11),t.BQk(),t.ynx(21,16),t.YNc(22,vl,2,0,"th",15),t.YNc(23,bl,4,4,"td",11),t.BQk(),t.ynx(24,17),t.YNc(25,Sl,2,0,"th",18),t.YNc(26,wl,6,4,"td",19),t.BQk(),t.ynx(27,20),t.YNc(28,El,6,0,"th",21),t.YNc(29,ql,8,0,"td",22),t.BQk(),t.ynx(30,23),t.YNc(31,Rl,4,3,"td",24),t.BQk(),t.YNc(32,kl,1,3,"tr",25),t.YNc(33,Pl,1,0,"tr",26),t.YNc(34,Dl,1,0,"tr",27),t.qZA(),t.qZA(),t._UZ(35,"mat-paginator",28),t.qZA()),2&e&&(t.xp6(4),t.Q6J("ngModel",i.selFilter),t.xp6(2),t.Q6J("ngIf",i.apiCallStatus.status===i.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",i.channels)("ngClass",t.VKq(11,Ul,""!==i.errorMessage)),t.xp6(25),t.Q6J("matFooterRowDef",t.DdM(13,Ml)),t.xp6(1),t.Q6J("matHeaderRowDef",i.displayedColumns)("matHeaderRowDefSticky",i.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",i.displayedColumns),t.xp6(1),t.Q6J("pageSize",i.pageSize)("pageSizeOptions",i.pageSizeOptions)("showFirstLastButtons",i.screenSize!==i.screenSizeEnum.XS))},directives:[p.xw,p.Wh,p.yH,x.KE,U.Nt,m.Fj,m.JJ,m.On,Y.$V,u.O5,r.BZ,T.YE,u.mk,S.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,L.NW,M.pW,r.ge,T.nU,r.ev,u.PC,S.Zl,z.gM,I.BN,x.bx,k.gD,k.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk],pipes:[u.rS,u.JJ],styles:[".mat-column-state[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-state[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-alias[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-alias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-balancedness[_ngcontent-%COMP%]{padding-left:3rem;flex:0 0 20%;width:20%}.mat-column-shortChannelId[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{flex:1 1 15%;width:15%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width: 37.5em){.mat-column-shortChannelId[_ngcontent-%COMP%], .mat-column-toLocal[_ngcontent-%COMP%], .mat-column-toRemote[_ngcontent-%COMP%]{white-space:unset}}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 100%}@media only screen and (max-width: 37.5em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 80%}}"]}),n})(),Yl=(()=>{class n{transform(e,i){return e.replace(/(?:^\w|[A-Z]|\b\w)/g,(o,s)=>o.toUpperCase()).replace(/\s+/g,"").replace(/-/g," ")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275pipe=t.Yjl({name:"camelcase",type:n,pure:!0}),n})();function Ql(n,a){if(1&n&&(t.TgZ(0,"div",5),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Oqu(e.errorMessage)}}function Hl(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",6),t._UZ(1,"div",7),t.TgZ(2,"mat-form-field",8),t.TgZ(3,"input",9),t.NdJ("ngModelChange",function(o){return t.CHM(e),t.oxw().filterValue=o})("input",function(){return t.CHM(e),t.oxw().applyFilter()})("keyup",function(){return t.CHM(e),t.oxw().applyFilter()}),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=t.oxw();t.xp6(3),t.Q6J("ngModel",e.filterValue)}}function Bl(n,a){1&n&&t._UZ(0,"mat-progress-bar",32)}function zl(n,a){1&n&&(t.TgZ(0,"th",33),t._uU(1,"Date/Time"),t.qZA())}const Vl=function(n){return{"ml-0":n}};function Gl(n,a){if(1&n&&(t._UZ(0,"span",36),t.ALo(1,"camelcase")),2&n){const e=t.oxw().$implicit,i=t.oxw(2);t.s9C("matTooltip",t.lcZ(1,2,null==e?null:e.type)),t.Q6J("ngClass",t.VKq(4,Vl,i.screenSize===i.screenSizeEnum.XS))}}function Xl(n,a){if(1&n&&(t.TgZ(0,"td",34),t.YNc(1,Gl,2,6,"span",35),t._uU(2),t.ALo(3,"date"),t.qZA()),2&n){const e=a.$implicit;t.xp6(1),t.Q6J("ngIf","payment-relayed"!==(null==e?null:e.type)),t.xp6(1),t.hij(" ",t.xi3(3,2,null==e?null:e.timestamp,"dd/MMM/YYYY HH:mm")," ")}}function $l(n,a){1&n&&(t.TgZ(0,"th",33),t._uU(1,"In Channel"),t.qZA())}const qt=function(n){return{"max-width":n}};function Wl(n,a){if(1&n&&(t.TgZ(0,"td",37),t._uU(1),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.Q6J("ngStyle",t.VKq(2,qt,i.screenSize===i.screenSizeEnum.XS?"10rem":"20rem")),t.xp6(1),t.Oqu(null==e?null:e.fromChannelAlias)}}function Kl(n,a){1&n&&(t.TgZ(0,"th",33),t._uU(1,"Out Channel"),t.qZA())}function jl(n,a){if(1&n&&(t.TgZ(0,"td",37),t._uU(1),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.Q6J("ngStyle",t.VKq(2,qt,i.screenSize===i.screenSizeEnum.XS?"10rem":"20rem")),t.xp6(1),t.Oqu(null==e?null:e.toChannelAlias)}}function tr(n,a){1&n&&(t.TgZ(0,"th",38),t._uU(1,"Amount In (Sats)"),t.qZA())}function er(n,a){if(1&n&&(t.TgZ(0,"td",34),t.TgZ(1,"span",39),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,null==e?null:e.amountIn))}}function nr(n,a){1&n&&(t.TgZ(0,"th",38),t._uU(1,"Amount Out (Sats)"),t.qZA())}function ir(n,a){if(1&n&&(t.TgZ(0,"td",34),t.TgZ(1,"span",39),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,null==e?null:e.amountOut))}}function ar(n,a){1&n&&(t.TgZ(0,"th",38),t._uU(1,"Fee Earned (Sats)"),t.qZA())}function or(n,a){if(1&n&&(t.TgZ(0,"td",34),t.TgZ(1,"span",39),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,(null==e?null:e.amountIn)-(null==e?null:e.amountOut)))}}function sr(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"th",40),t.TgZ(1,"div",41),t.TgZ(2,"mat-select",42),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",43),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).onDownloadCSV()}),t._uU(5,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function lr(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"td",44),t.TgZ(1,"button",45),t.NdJ("click",function(o){const c=t.CHM(e).$implicit;return t.oxw(2).onForwardingEventClick(c,o)}),t._uU(2,"View Info"),t.qZA(),t.qZA()}}function rr(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No forwarding history available."),t.qZA())}function cr(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting forwarding history..."),t.qZA())}function ur(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Oqu(e.errorMessage)}}function pr(n,a){if(1&n&&(t.TgZ(0,"td",46),t.YNc(1,rr,2,0,"p",47),t.YNc(2,cr,2,0,"p",47),t.YNc(3,ur,2,1,"p",47),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",(!(null!=e.forwardingHistoryEvents&&e.forwardingHistoryEvents.data)||(null==e.forwardingHistoryEvents||null==e.forwardingHistoryEvents.data?null:e.forwardingHistoryEvents.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.forwardingHistoryEvents&&e.forwardingHistoryEvents.data)||(null==e.forwardingHistoryEvents||null==e.forwardingHistoryEvents.data?null:e.forwardingHistoryEvents.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.forwardingHistoryEvents&&e.forwardingHistoryEvents.data)||(null==e.forwardingHistoryEvents||null==e.forwardingHistoryEvents.data?null:e.forwardingHistoryEvents.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}const mr=function(n){return{"display-none":n}};function dr(n,a){if(1&n&&t._UZ(0,"tr",48),2&n){const e=t.oxw(2);t.Q6J("ngClass",t.VKq(1,mr,(null==e.forwardingHistoryEvents?null:e.forwardingHistoryEvents.data)&&(null==e.forwardingHistoryEvents||null==e.forwardingHistoryEvents.data?null:e.forwardingHistoryEvents.data.length)>0))}}function hr(n,a){1&n&&t._UZ(0,"tr",49)}function gr(n,a){1&n&&t._UZ(0,"tr",50)}const fr=function(){return["no_event"]};function _r(n,a){if(1&n&&(t.TgZ(0,"div",10),t.YNc(1,Bl,1,0,"mat-progress-bar",11),t.TgZ(2,"table",12,13),t.ynx(4,14),t.YNc(5,zl,2,0,"th",15),t.YNc(6,Xl,4,5,"td",16),t.BQk(),t.ynx(7,17),t.YNc(8,$l,2,0,"th",15),t.YNc(9,Wl,2,4,"td",18),t.BQk(),t.ynx(10,19),t.YNc(11,Kl,2,0,"th",15),t.YNc(12,jl,2,4,"td",18),t.BQk(),t.ynx(13,20),t.YNc(14,tr,2,0,"th",21),t.YNc(15,er,4,3,"td",16),t.BQk(),t.ynx(16,22),t.YNc(17,nr,2,0,"th",21),t.YNc(18,ir,4,3,"td",16),t.BQk(),t.ynx(19,23),t.YNc(20,ar,2,0,"th",21),t.YNc(21,or,4,3,"td",16),t.BQk(),t.ynx(22,24),t.YNc(23,sr,6,0,"th",25),t.YNc(24,lr,3,0,"td",26),t.BQk(),t.ynx(25,27),t.YNc(26,pr,4,3,"td",28),t.BQk(),t.YNc(27,dr,1,3,"tr",29),t.YNc(28,hr,1,0,"tr",30),t.YNc(29,gr,1,0,"tr",31),t.qZA(),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",e.forwardingHistoryEvents),t.xp6(25),t.Q6J("matFooterRowDef",t.DdM(6,fr)),t.xp6(1),t.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",e.displayedColumns)}}function Cr(n,a){if(1&n&&t._UZ(0,"mat-paginator",51),2&n){const e=t.oxw();t.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS)}}let It=(()=>{class n{constructor(e,i,o,s){this.logger=e,this.commonService=i,this.store=o,this.datePipe=s,this.eventsData=[],this.filterValue="",this.displayedColumns=[],this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["timestamp","amountIn","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["timestamp","amountIn","fee","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["timestamp","amountIn","amountOut","fee","actions"]):(this.flgSticky=!0,this.displayedColumns=["timestamp","fromChannelAlias","toChannelAlias","amountIn","amountOut","fee","actions"])}ngOnInit(){this.store.select(_.PP).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{0===this.eventsData.length&&(this.errorMessage="",this.apiCallStatus=e.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.eventsData=e.payments&&e.payments.relayed?e.payments.relayed:[],this.eventsData.length>0&&this.sort&&this.paginator&&this.loadForwardingEventsTable(this.eventsData),this.logger.info(this.eventsData))})}ngAfterViewInit(){this.eventsData.length>0&&this.loadForwardingEventsTable(this.eventsData)}ngOnChanges(e){e.eventsData&&(this.apiCallStatus={status:l.Bn.COMPLETED,action:"FetchPayments"},this.eventsData=e.eventsData.currentValue,e.eventsData.firstChange||this.loadForwardingEventsTable(this.eventsData)),e.filterValue&&!e.filterValue.firstChange&&this.applyFilter()}onForwardingEventClick(e,i){const o=[[{key:"paymentHash",value:e.paymentHash,title:"Payment Hash",width:100,type:l.Gi.STRING}],[{key:"timestamp",value:Math.round(e.timestamp/1e3),title:"Date/Time",width:50,type:l.Gi.DATE_TIME},{key:"fee",value:e.amountIn-e.amountOut,title:"Fee Earned (Sats)",width:50,type:l.Gi.NUMBER}],[{key:"amountIn",value:e.amountIn,title:"Amount In (Sats)",width:50,type:l.Gi.NUMBER},{key:"amountOut",value:e.amountOut,title:"Amount Out (Sats)",width:50,type:l.Gi.NUMBER}],[{key:"fromChannelAlias",value:e.fromChannelAlias,title:"From Channel Alias",width:50,type:l.Gi.STRING},{key:"fromShortChannelId",value:e.fromShortChannelId,title:"From Short Channel ID",width:50,type:l.Gi.STRING}],[{key:"fromChannelId",value:e.fromChannelId,title:"From Channel Id",width:100,type:l.Gi.STRING}],[{key:"toChannelAlias",value:e.toChannelAlias,title:"To Channel Alias",width:50,type:l.Gi.STRING},{key:"toShortChannelId",value:e.toShortChannelId,title:"To Short Channel ID",width:50,type:l.Gi.STRING}],[{key:"toChannelId",value:e.toChannelId,title:"To Channel Id",width:100,type:l.Gi.STRING}]];"payment-relayed"!==e.type&&o.unshift([{key:"type",value:this.commonService.camelCase(e.type),title:"Relay Type",width:100,type:l.Gi.STRING}]),this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Event Information",message:o}}}))}loadForwardingEventsTable(e){this.forwardingHistoryEvents=new r.by([...e]),this.forwardingHistoryEvents.sort=this.sort,this.forwardingHistoryEvents.sortingDataAccessor=(i,o)=>"fee"===o?i.amountIn-i.amountOut:i[o]&&isNaN(i[o])?i[o].toLocaleLowerCase():i[o]?+i[o]:null,this.forwardingHistoryEvents.filterPredicate=(i,o)=>((i.timestamp?this.datePipe.transform(new Date(i.timestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(i).toLowerCase()).includes(o),this.forwardingHistoryEvents.paginator=this.paginator,this.applyFilter(),this.logger.info(this.forwardingHistoryEvents)}onDownloadCSV(){this.forwardingHistoryEvents&&this.forwardingHistoryEvents.data&&this.forwardingHistoryEvents.data.length>0&&this.commonService.downloadFile(this.forwardingHistoryEvents.data,"Forwarding-history")}applyFilter(){this.forwardingHistoryEvents&&(this.forwardingHistoryEvents.filter=this.filterValue.trim().toLowerCase())}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(O.v),t.Y36(b.yh),t.Y36(u.uU))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-forwarding-history"]],viewQuery:function(e,i){if(1&e&&(t.Gf(T.YE,5),t.Gf(L.NW,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.sort=o.first),t.iGM(o=t.CRH())&&(i.paginator=o.first)}},inputs:{eventsData:"eventsData",filterValue:"filterValue"},features:[t._Bn([{provide:L.ye,useValue:(0,l.pt)("Events")}]),t.TTD],decls:5,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","class","page-sub-title-container",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100","class","table-container",3,"perfectScrollbar",4,"ngIf"],["class","mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","ngModelChange","input","keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","timestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","fromChannelAlias"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","toChannelAlias"],["matColumnDef","amountIn"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","amountOut"],["matColumnDef","fee"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot yellow","matTooltipPosition","right",3,"matTooltip","ngClass",4,"ngIf"],["matTooltipPosition","right",1,"dot","yellow",3,"matTooltip","ngClass"],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Ql,2,1,"div",1),t.YNc(2,Hl,4,1,"div",2),t.YNc(3,_r,30,7,"div",3),t.YNc(4,Cr,1,3,"mat-paginator",4),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf",""!==i.errorMessage),t.xp6(1),t.Q6J("ngIf",""===i.errorMessage),t.xp6(1),t.Q6J("ngIf",""===i.errorMessage),t.xp6(1),t.Q6J("ngIf",""===i.errorMessage))},directives:[p.xw,p.Wh,u.O5,p.yH,x.KE,U.Nt,m.Fj,m.JJ,m.On,Y.$V,r.BZ,T.YE,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,M.pW,r.ge,T.nU,r.ev,z.gM,u.mk,S.oO,u.PC,S.Zl,k.gD,k.$L,Q.ey,q.lW,r.yh,r.Q2,r.XQ,r.Gk,L.NW],pipes:[u.uU,Yl,u.JJ],styles:[".mat-column-fromAlias[_ngcontent-%COMP%]{padding-left:2rem;flex:1 1 20%;width:20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-toAlias[_ngcontent-%COMP%]{padding-left:1rem;flex:1 1 20%;width:20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();const xr=["tableIn"],yr=["tableOut"],Zr=["paginatorIn"],Tr=["paginatorOut"];function Ar(n,a){if(1&n&&(t.TgZ(0,"div",3),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Oqu(e.errorMessage)}}function Lr(n,a){1&n&&t._UZ(0,"mat-progress-bar",36)}function vr(n,a){1&n&&(t.TgZ(0,"th",37),t._uU(1,"Channel ID"),t.qZA())}const j=function(n){return{"max-width":n}};function br(n,a){if(1&n&&(t.TgZ(0,"td",38),t._uU(1),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.Q6J("ngStyle",t.VKq(2,j,i.screenSize===i.screenSizeEnum.XS?"5rem":"10rem")),t.xp6(1),t.Oqu(e.channelId)}}function Sr(n,a){1&n&&(t.TgZ(0,"th",37),t._uU(1,"Peer Alias"),t.qZA())}function wr(n,a){if(1&n&&(t.TgZ(0,"td",38),t._uU(1),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.Q6J("ngStyle",t.VKq(2,j,i.screenSize===i.screenSizeEnum.XS?"5rem":"10rem")),t.xp6(1),t.Oqu(e.alias)}}function Er(n,a){1&n&&(t.TgZ(0,"th",39),t._uU(1,"Events"),t.qZA())}function qr(n,a){if(1&n&&(t.TgZ(0,"td",40),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,e.events))}}function Ir(n,a){1&n&&(t.TgZ(0,"th",39),t._uU(1,"Amount (Sats)"),t.qZA())}function Fr(n,a){if(1&n&&(t.TgZ(0,"td",40),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,e.totalAmount))}}function Or(n,a){1&n&&(t.TgZ(0,"th",39),t._uU(1,"Fee (Sats)"),t.qZA())}function Rr(n,a){if(1&n&&(t.TgZ(0,"td",40),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,e.totalFee))}}function Nr(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No incoming routing peer available."),t.qZA())}function kr(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting incoming routing peers..."),t.qZA())}function Pr(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Oqu(e.errorMessage)}}function Dr(n,a){if(1&n&&(t.TgZ(0,"td",42),t.YNc(1,Nr,2,0,"p",43),t.YNc(2,kr,2,0,"p",43),t.YNc(3,Pr,2,1,"p",43),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",(!(null!=e.RoutingPeersIncoming&&e.RoutingPeersIncoming.data)||(null==e.RoutingPeersIncoming||null==e.RoutingPeersIncoming.data?null:e.RoutingPeersIncoming.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.RoutingPeersIncoming&&e.RoutingPeersIncoming.data)||(null==e.RoutingPeersIncoming||null==e.RoutingPeersIncoming.data?null:e.RoutingPeersIncoming.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.RoutingPeersIncoming&&e.RoutingPeersIncoming.data)||(null==e.RoutingPeersIncoming||null==e.RoutingPeersIncoming.data?null:e.RoutingPeersIncoming.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}const Ft=function(n){return{"display-none":n}};function Ur(n,a){if(1&n&&t._UZ(0,"tr",44),2&n){const e=t.oxw(2);t.Q6J("ngClass",t.VKq(1,Ft,(null==e.RoutingPeersIncoming?null:e.RoutingPeersIncoming.data)&&(null==e.RoutingPeersIncoming||null==e.RoutingPeersIncoming.data?null:e.RoutingPeersIncoming.data.length)>0))}}function Mr(n,a){1&n&&t._UZ(0,"tr",45)}function Jr(n,a){1&n&&t._UZ(0,"tr",46)}function Yr(n,a){1&n&&t._UZ(0,"mat-progress-bar",36)}function Qr(n,a){1&n&&(t.TgZ(0,"th",37),t._uU(1,"Channel ID"),t.qZA())}function Hr(n,a){if(1&n&&(t.TgZ(0,"td",38),t._uU(1),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.Q6J("ngStyle",t.VKq(2,j,i.screenSize===i.screenSizeEnum.XS?"5rem":"10rem")),t.xp6(1),t.Oqu(e.channelId)}}function Br(n,a){1&n&&(t.TgZ(0,"th",37),t._uU(1,"Peer Alias"),t.qZA())}function zr(n,a){if(1&n&&(t.TgZ(0,"td",38),t._uU(1),t.qZA()),2&n){const e=a.$implicit,i=t.oxw(2);t.Q6J("ngStyle",t.VKq(2,j,i.screenSize===i.screenSizeEnum.XS?"5rem":"10rem")),t.xp6(1),t.Oqu(e.alias)}}function Vr(n,a){1&n&&(t.TgZ(0,"th",39),t._uU(1,"Events"),t.qZA())}function Gr(n,a){if(1&n&&(t.TgZ(0,"td",40),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,e.events))}}function Xr(n,a){1&n&&(t.TgZ(0,"th",39),t._uU(1,"Amount (Sats)"),t.qZA())}function $r(n,a){if(1&n&&(t.TgZ(0,"td",40),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,e.totalAmount))}}function Wr(n,a){1&n&&(t.TgZ(0,"th",39),t._uU(1,"Fee (Sats)"),t.qZA())}function Kr(n,a){if(1&n&&(t.TgZ(0,"td",40),t.TgZ(1,"span",41),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&n){const e=a.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,e.totalFee))}}function jr(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"No outgoing routing peer available."),t.qZA())}function tc(n,a){1&n&&(t.TgZ(0,"p"),t._uU(1,"Getting outgoing routing peers..."),t.qZA())}function ec(n,a){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Oqu(e.errorMessage)}}function nc(n,a){if(1&n&&(t.TgZ(0,"td",42),t.YNc(1,jr,2,0,"p",43),t.YNc(2,tc,2,0,"p",43),t.YNc(3,ec,2,1,"p",43),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",(!(null!=e.RoutingPeersOutgoing&&e.RoutingPeersOutgoing.data)||(null==e.RoutingPeersOutgoing||null==e.RoutingPeersOutgoing.data?null:e.RoutingPeersOutgoing.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.COMPLETED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.RoutingPeersOutgoing&&e.RoutingPeersOutgoing.data)||(null==e.RoutingPeersOutgoing||null==e.RoutingPeersOutgoing.data?null:e.RoutingPeersOutgoing.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("ngIf",(!(null!=e.RoutingPeersOutgoing&&e.RoutingPeersOutgoing.data)||(null==e.RoutingPeersOutgoing||null==e.RoutingPeersOutgoing.data?null:e.RoutingPeersOutgoing.data.length)<1)&&e.apiCallStatus.status===e.apiCallStatusEnum.ERROR)}}function ic(n,a){if(1&n&&t._UZ(0,"tr",44),2&n){const e=t.oxw(2);t.Q6J("ngClass",t.VKq(1,Ft,(null==e.RoutingPeersOutgoing?null:e.RoutingPeersOutgoing.data)&&(null==e.RoutingPeersOutgoing||null==e.RoutingPeersOutgoing.data?null:e.RoutingPeersOutgoing.data.length)>0))}}function ac(n,a){1&n&&t._UZ(0,"tr",45)}function oc(n,a){1&n&&t._UZ(0,"tr",46)}const sc=function(n,a){return{"mt-2":n,"mt-1":a}},lc=function(){return["no_incoming_event"]},rc=function(n){return{"mt-2":n}},cc=function(){return["no_outgoing_event"]};function uc(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",4),t.TgZ(1,"div",5),t.TgZ(2,"div",6),t.TgZ(3,"div",7),t._uU(4,"Incoming"),t.qZA(),t.TgZ(5,"mat-form-field",8),t.TgZ(6,"input",9),t.NdJ("keyup",function(){return t.CHM(e),t.oxw().applyIncomingFilter()})("ngModelChange",function(o){return t.CHM(e),t.oxw().filterIn=o}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(7,"div",10),t.YNc(8,Lr,1,0,"mat-progress-bar",11),t.TgZ(9,"table",12,13),t.ynx(11,14),t.YNc(12,vr,2,0,"th",15),t.YNc(13,br,2,4,"td",16),t.BQk(),t.ynx(14,17),t.YNc(15,Sr,2,0,"th",15),t.YNc(16,wr,2,4,"td",16),t.BQk(),t.ynx(17,18),t.YNc(18,Er,2,0,"th",19),t.YNc(19,qr,4,3,"td",20),t.BQk(),t.ynx(20,21),t.YNc(21,Ir,2,0,"th",19),t.YNc(22,Fr,4,3,"td",20),t.BQk(),t.ynx(23,22),t.YNc(24,Or,2,0,"th",19),t.YNc(25,Rr,4,3,"td",20),t.BQk(),t.ynx(26,23),t.YNc(27,Dr,4,3,"td",24),t.BQk(),t.YNc(28,Ur,1,3,"tr",25),t.YNc(29,Mr,1,0,"tr",26),t.YNc(30,Jr,1,0,"tr",27),t.qZA(),t.qZA(),t._UZ(31,"mat-paginator",28,29),t.qZA(),t.TgZ(33,"div",30),t.TgZ(34,"div",6),t.TgZ(35,"div",7),t._uU(36,"Outgoing"),t.qZA(),t.TgZ(37,"mat-form-field",8),t.TgZ(38,"input",9),t.NdJ("keyup",function(){return t.CHM(e),t.oxw().applyOutgoingFilter()})("ngModelChange",function(o){return t.CHM(e),t.oxw().filterOut=o}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(39,"div",31),t.YNc(40,Yr,1,0,"mat-progress-bar",11),t.TgZ(41,"table",32,33),t.ynx(43,14),t.YNc(44,Qr,2,0,"th",15),t.YNc(45,Hr,2,4,"td",16),t.BQk(),t.ynx(46,17),t.YNc(47,Br,2,0,"th",15),t.YNc(48,zr,2,4,"td",16),t.BQk(),t.ynx(49,18),t.YNc(50,Vr,2,0,"th",19),t.YNc(51,Gr,4,3,"td",20),t.BQk(),t.ynx(52,21),t.YNc(53,Xr,2,0,"th",19),t.YNc(54,$r,4,3,"td",20),t.BQk(),t.ynx(55,22),t.YNc(56,Wr,2,0,"th",19),t.YNc(57,Kr,4,3,"td",20),t.BQk(),t.ynx(58,34),t.YNc(59,nc,4,3,"td",24),t.BQk(),t.YNc(60,ic,1,3,"tr",25),t.YNc(61,ac,1,0,"tr",26),t.YNc(62,oc,1,0,"tr",27),t.qZA(),t._UZ(63,"mat-paginator",28,35),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=t.oxw();t.xp6(2),t.Q6J("ngClass",t.WLB(22,sc,e.screenSize===e.screenSizeEnum.XS,e.screenSize===e.screenSizeEnum.SM)),t.xp6(4),t.Q6J("ngModel",e.filterIn),t.xp6(2),t.Q6J("ngIf",e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",e.RoutingPeersIncoming),t.xp6(19),t.Q6J("matFooterRowDef",t.DdM(25,lc)),t.xp6(1),t.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",e.displayedColumns),t.xp6(1),t.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS),t.xp6(3),t.Q6J("ngClass",t.VKq(26,rc,e.screenSize!==e.screenSizeEnum.LG)),t.xp6(4),t.Q6J("ngModel",e.filterOut),t.xp6(2),t.Q6J("ngIf",e.apiCallStatus.status===e.apiCallStatusEnum.INITIATED),t.xp6(1),t.Q6J("dataSource",e.RoutingPeersOutgoing),t.xp6(19),t.Q6J("matFooterRowDef",t.DdM(28,cc)),t.xp6(1),t.Q6J("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",e.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",e.displayedColumns),t.xp6(1),t.Q6J("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)("showFirstLastButtons",e.screenSize!==e.screenSizeEnum.XS)}}let pc=(()=>{class n{constructor(e,i,o){this.logger=e,this.commonService=i,this.store=o,this.routingPeersData=[],this.displayedColumns=[],this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.filterIn="",this.filterOut="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new d.x,new d.x,new d.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","totalFee"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","events","totalFee"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","events","totalAmount","totalFee"]):(this.flgSticky=!0,this.displayedColumns=["channelId","alias","events","totalAmount","totalFee"])}ngOnInit(){this.store.select(_.PP).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.errorMessage="",this.apiCallStatus=e.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.routingPeersData=e.payments&&e.payments.relayed?e.payments.relayed:[],this.routingPeersData.length>0&&this.sortIn&&this.paginatorIn&&this.sortOut&&this.paginatorOut&&this.loadRoutingPeersTable(this.routingPeersData),this.logger.info(e)})}ngAfterViewInit(){this.routingPeersData.length>0&&this.sortIn&&this.paginatorIn&&this.sortOut&&this.paginatorOut&&this.loadRoutingPeersTable(this.routingPeersData)}loadRoutingPeersTable(e){if(e.length>0){const i=this.groupRoutingPeers(e);this.RoutingPeersIncoming=new r.by(i[0]),this.RoutingPeersIncoming.sort=this.sortIn,this.RoutingPeersIncoming.filterPredicate=(o,s)=>JSON.stringify(o).toLowerCase().includes(s),this.RoutingPeersIncoming.paginator=this.paginatorIn,this.logger.info(this.RoutingPeersIncoming),this.RoutingPeersOutgoing=new r.by(i[1]),this.RoutingPeersOutgoing.sort=this.sortOut,this.RoutingPeersOutgoing.filterPredicate=(o,s)=>JSON.stringify(o).toLowerCase().includes(s),this.RoutingPeersOutgoing.paginator=this.paginatorOut,this.logger.info(this.RoutingPeersOutgoing)}else this.RoutingPeersIncoming=new r.by([]),this.RoutingPeersOutgoing=new r.by([]);this.applyIncomingFilter(),this.applyOutgoingFilter()}groupRoutingPeers(e){const i=[],o=[];return e.forEach(s=>{const c=i.find(P=>P.channelId===s.fromChannelId),f=o.find(P=>P.channelId===s.toChannelId);c?(c.events++,c.totalAmount=+c.totalAmount+ +s.amountIn,c.totalFee=s.amountIn-s.amountOut+ +c.totalFee):i.push({channelId:s.fromChannelId,alias:s.fromChannelAlias,events:1,totalAmount:+s.amountIn,totalFee:s.amountIn-s.amountOut}),f?(f.events++,f.totalAmount=+f.totalAmount+ +s.amountOut,f.totalFee=s.amountIn-s.amountOut+ +f.totalFee):o.push({channelId:s.toChannelId,alias:s.toChannelAlias,events:1,totalAmount:+s.amountOut,totalFee:s.amountIn-s.amountOut})}),[this.commonService.sortDescByKey(i,"totalFee"),this.commonService.sortDescByKey(o,"totalFee")]}applyIncomingFilter(){this.RoutingPeersIncoming.filter=this.filterIn.toLowerCase()}applyOutgoingFilter(){this.RoutingPeersOutgoing.filter=this.filterOut.toLowerCase()}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(O.v),t.Y36(b.yh))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-routing-peers"]],viewQuery:function(e,i){if(1&e&&(t.Gf(xr,5,T.YE),t.Gf(yr,5,T.YE),t.Gf(Zr,5),t.Gf(Tr,5)),2&e){let o;t.iGM(o=t.CRH())&&(i.sortIn=o.first),t.iGM(o=t.CRH())&&(i.sortOut=o.first),t.iGM(o=t.CRH())&&(i.paginatorIn=o.first),t.iGM(o=t.CRH())&&(i.paginatorOut=o.first)}},features:[t._Bn([{provide:L.ye,useValue:(0,l.pt)("Peers")}])],decls:3,vars:2,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between stretch","class","page-sub-title-container",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between stretch",1,"page-sub-title-container"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start stretch",1,"mb-4"],["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"page-sub-title-container","w-100",3,"ngClass"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start start","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",1,"overflow-auto","incoming-table",3,"dataSource"],["tableIn",""],["matColumnDef","channelId"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","events"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","totalAmount"],["matColumnDef","totalFee"],["matColumnDef","no_incoming_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["paginatorIn",""],["fxLayout","column","fxFlex","49","fxLayoutAlign","end stretch",1,"mb-4"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","matSort","",1,"overflow-auto","outgoing-table",3,"dataSource"],["tableOut",""],["matColumnDef","no_outgoing_event"],["paginatorOut",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Ar,2,1,"div",1),t.YNc(2,uc,65,29,"div",2),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf",""!==i.errorMessage),t.xp6(1),t.Q6J("ngIf",""===i.errorMessage))},directives:[p.xw,p.Wh,u.O5,p.yH,u.mk,S.oO,x.KE,U.Nt,m.Fj,m.JJ,m.On,Y.$V,r.BZ,T.YE,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,L.NW,M.pW,r.ge,T.nU,r.ev,u.PC,S.Zl,r.yh,r.Q2,r.XQ,r.Gk],pipes:[u.JJ],styles:[".mat-column-channelId[_ngcontent-%COMP%], .mat-column-alias[_ngcontent-%COMP%]{flex:1 1 10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();function mc(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",7),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().activeLink=s.link}),t._uU(1),t.qZA()}if(2&n){const e=a.$implicit,i=t.oxw();t.s9C("routerLink",e.link),t.Q6J("active",i.activeLink===e.link),t.xp6(1),t.Oqu(e.name)}}let dc=(()=>{class n{constructor(e){this.router=e,this.faChartBar=Z.koM,this.links=[{link:"routingfees",name:"Routing Fees"},{link:"transactions",name:"Transactions"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const e=this.links.find(i=>this.router.url.includes(i.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,h.R)(this.unSubs[0]),(0,J.h)(i=>i instanceof y.Av)).subscribe(i=>{const o=this.links.find(s=>i.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-reports"]],decls:10,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"Reports"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t.TgZ(7,"nav",5),t.YNc(8,mc,2,3,"div",6),t.qZA(),t._UZ(9,"router-outlet"),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(1),t.Q6J("icon",i.faChartBar),t.xp6(7),t.Q6J("ngForOf",i.links))},directives:[p.xw,p.Wh,I.BN,A.a8,A.dn,N.BU,u.sg,y.lC,N.Nj,y.rH],styles:[""]}),n})();var Ot=g(7772),Rt=g(7671),Nt=g(6046);function hc(n,a){if(1&n&&(t.TgZ(0,"div",8),t._uU(1),t.ALo(2,"number"),t.ALo(3,"number"),t.qZA()),2&n){const e=t.oxw();t.Q6J("@fadeIn",e.totalFeeSat),t.xp6(1),t.AsE("",t.xi3(2,3,e.totalFeeSat||0,"1.0-2")," Sats/",t.lcZ(3,6,e.filteredEventsBySelectedPeriod.length||0)," Events")}}function gc(n,a){1&n&&(t.TgZ(0,"div",9),t._uU(1,"No fee report for the selected period"),t.qZA())}function fc(n,a){if(1&n&&(t.TgZ(0,"span"),t.TgZ(1,"span",12),t._uU(2),t.ALo(3,"number"),t.qZA(),t.TgZ(4,"span",12),t._uU(5),t.ALo(6,"number"),t.qZA(),t.qZA()),2&n){const e=a.model;t.xp6(2),t.hij("Events: ",t.lcZ(3,2,e.extra.totalEvents||0),""),t.xp6(3),t.hij("Fee: ",t.xi3(6,4,e.value||0,"1.0-2"),"")}}function _c(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"ngx-charts-bar-vertical",10),t.NdJ("select",function(o){return t.CHM(e),t.oxw().onChartBarSelected(o)})("mouseup",function(o){return t.CHM(e),t.oxw().onChartMouseUp(o)}),t.YNc(1,fc,7,7,"ng-template",null,11,t.W1O),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("view",e.view)("results",e.feeReportData)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",e.showYAxisLabel)("xAxisLabel",e.xAxisLabel)("yAxisLabel",e.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)}}function Cc(n,a){if(1&n&&t._UZ(0,"rtl-ecl-forwarding-history",13),2&n){const e=t.oxw();t.Q6J("eventsData",e.filteredEventsBySelectedPeriod)("filterValue",e.eventFilterValue)}}let xc=(()=>{class n{constructor(e,i,o){this.logger=e,this.commonService=i,this.store=o,this.reportPeriod=l.op[0],this.secondsInADay=86400,this.events=[],this.filteredEventsBySelectedPeriod=[],this.eventFilterValue="",this.totalFeeSat=null,this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.feeReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Fee (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=l.cu,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===l.cu.XS||this.screenSize===l.cu.SM),this.store.select(_.PP).pipe((0,h.R)(this.unSubs[0])).subscribe(e=>{this.events=e.payments&&e.payments.relayed?e.payments.relayed:[],this.filterForwardingEvents(this.startDate,this.endDate),this.logger.info(e)}),this.commonService.containerSizeUpdated.pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{switch(this.screenSize){case l.cu.MD:this.screenPaddingX=e.width/10;break;case l.cu.LG:this.screenPaddingX=e.width/16;break;default:this.screenPaddingX=e.width/20}this.view=[e.width-this.screenPaddingX,e.height/2.2],this.logger.info("Container Size: "+JSON.stringify(e)),this.logger.info("View: "+JSON.stringify(this.view))})}filterForwardingEvents(e,i){const o=Math.round(e.getTime()/1e3),s=Math.round(i.getTime()/1e3);this.logger.info("Filtering Forwarding Events Starting at "+new Date(Date.now()).toLocaleString()+" From "+e.toLocaleString()+" To "+i.toLocaleString()),this.filteredEventsBySelectedPeriod=[],this.feeReportData=[],this.totalFeeSat=null,this.events&&this.events.length>0&&(this.events.forEach(c=>{Math.floor(c.timestamp/1e3)>=o&&Math.floor(c.timestamp/1e3)0&&"ngx-charts"===e.srcElement.classList[0]&&(this.eventFilterValue="")}onChartBarSelected(e){this.eventFilterValue=this.reportPeriod===l.op[1]?e.name+"/"+this.startDate.getFullYear():e.name.toString().padStart(2,"0")+"/"+l.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}prepareFeeReport(e){const i=Math.round(e.getTime()/1e3),o=[];if(this.logger.info("Fee Report Prepare Starting at "+new Date(Date.now()).toLocaleString()+" From "+e.toLocaleString()),this.reportPeriod===l.op[1]){for(let s=0;s<12;s++)o.push({name:l.gg[s].name,value:0,extra:{totalEvents:0}});this.filteredEventsBySelectedPeriod.map(s=>{const c=new Date(s.timestamp).getMonth();return o[c].value=o[c].value+(s.amountIn-s.amountOut),o[c].extra.totalEvents=o[c].extra.totalEvents+1,this.totalFeeSat=(this.totalFeeSat?this.totalFeeSat:0)+(s.amountIn-s.amountOut),this.filteredEventsBySelectedPeriod})}else{for(let s=0;s{const c=Math.floor((Math.floor(s.timestamp/1e3)-i)/this.secondsInADay);return o[c].value=o[c].value+(s.amountIn-s.amountOut),o[c].extra.totalEvents=o[c].extra.totalEvents+1,this.totalFeeSat=(this.totalFeeSat?this.totalFeeSat:0)+(s.amountIn-s.amountOut),this.filteredEventsBySelectedPeriod})}return this.logger.info("Fee Report Prepare Finished at "+new Date(Date.now()).toLocaleString()),o}onSelectionChange(e){const i=e.selDate.getMonth(),o=e.selDate.getFullYear();this.reportPeriod=e.selScrollRange,this.reportPeriod===l.op[1]?(this.startDate=new Date(o,0,1,0,0,0),this.endDate=new Date(o,11,31,23,59,59)):(this.startDate=new Date(o,i,1,0,0,0),this.endDate=new Date(o,i,this.getMonthDays(i,o),23,59,59)),this.filterForwardingEvents(this.startDate,this.endDate),this.eventFilterValue=""}getMonthDays(e,i){return 1===e&&i%4==0?l.gg[e].days+1:l.gg[e].days}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(O.v),t.Y36(b.yh))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-fee-report"]],hostBindings:function(e,i){1&e&&t.NdJ("mouseup",function(s){return i.onChartMouseUp(s)})},decls:9,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],[1,"mt-1"],["class","one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup",4,"ngIf"],[3,"eventsData","filterValue",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],[1,"one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"eventsData","filterValue"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"rtl-horizontal-scroller",1),t.NdJ("stepChanged",function(s){return i.onSelectionChange(s)}),t.qZA(),t.TgZ(2,"div",2),t.YNc(3,hc,4,8,"div",3),t.YNc(4,gc,2,0,"div",4),t.TgZ(5,"div",5),t.YNc(6,_c,3,11,"ngx-charts-bar-vertical",6),t.qZA(),t.TgZ(7,"div",5),t.YNc(8,Cc,1,2,"rtl-ecl-forwarding-history",7),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(3),t.Q6J("ngIf",i.feeReportData.length>0&&i.filteredEventsBySelectedPeriod.length>0),t.xp6(1),t.Q6J("ngIf",i.feeReportData.length<=0||i.filteredEventsBySelectedPeriod.length<=0),t.xp6(2),t.Q6J("ngIf",i.feeReportData.length>0&&i.filteredEventsBySelectedPeriod.length>0),t.xp6(2),t.Q6J("ngIf",i.filteredEventsBySelectedPeriod.length>0))},directives:[p.xw,p.Wh,p.yH,Rt.D,u.O5,Nt.K$,It],pipes:[u.JJ],styles:[""],data:{animation:[Ot.J]}}),n})();var yc=g(165);function Zc(n,a){if(1&n&&(t.TgZ(0,"div",10),t._uU(1),t.ALo(2,"number"),t.ALo(3,"number"),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.AsE(" Paid ",t.xi3(2,2,e.transactionsReportSummary.amountPaidSelectedPeriod||0,"1.0-2")," Sats/",t.lcZ(3,5,e.transactionsReportSummary.paymentsSelectedPeriod)," Payments ")}}function Tc(n,a){if(1&n&&(t.TgZ(0,"div",10),t._uU(1),t.ALo(2,"number"),t.ALo(3,"number"),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.AsE(" Received ",t.xi3(2,2,e.transactionsReportSummary.amountReceivedSelectedPeriod||0,"1.0-2")," Sats/",t.lcZ(3,5,e.transactionsReportSummary.invoicesSelectedPeriod)," Invoices ")}}function Ac(n,a){if(1&n&&(t.TgZ(0,"div",8),t.YNc(1,Zc,4,7,"div",9),t.YNc(2,Tc,4,7,"div",9),t.qZA()),2&n){const e=t.oxw();t.Q6J("@fadeIn",e.transactionsReportSummary),t.xp6(1),t.Q6J("ngIf",e.transactionsReportSummary.paymentsSelectedPeriod),t.xp6(1),t.Q6J("ngIf",e.transactionsReportSummary.invoicesSelectedPeriod)}}function Lc(n,a){1&n&&(t.TgZ(0,"div",11),t._uU(1,"No transactions report for the selected period"),t.qZA())}function vc(n,a){if(1&n&&(t.TgZ(0,"span",14),t._uU(1),t.ALo(2,"number"),t.ALo(3,"number"),t.qZA()),2&n){const e=a.model;t.xp6(1),t.HOy("",e.name,": ",t.xi3(2,4,e.value||0,"1.0-2"),"/# ","Paid"===e.name?"Payments":"Invoices",": ",t.lcZ(3,7,(null==e.extra?null:e.extra.total)||0),"")}}function bc(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"ngx-charts-bar-vertical-2d",12),t.NdJ("select",function(o){return t.CHM(e),t.oxw().onChartBarSelected(o)})("mouseup",function(o){return t.CHM(e),t.oxw().onChartMouseUp(o)}),t.YNc(1,vc,4,9,"ng-template",null,13,t.W1O),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("view",e.view)("results",e.transactionsReportData)("noBarWhenZero",!1)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",e.showYAxisLabel)("xAxisLabel",e.xAxisLabel)("yAxisLabel",e.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)("groupPadding",e.reportPeriod===e.scrollRanges[0]?2:8)}}function Sc(n,a){if(1&n&&t._UZ(0,"rtl-transactions-report-table",15),2&n){const e=t.oxw();t.Q6J("dataList",e.transactionsNonZeroReportData)("dataRange",e.reportPeriod)("filterValue",e.transactionFilterValue)}}let wc=(()=>{class n{constructor(e,i,o){this.logger=e,this.commonService=i,this.store=o,this.scrollRanges=l.op,this.reportPeriod=l.op[0],this.secondsInADay=86400,this.payments=[],this.invoices=[],this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0},this.transactionFilterValue="",this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.transactionsReportData=[],this.transactionsNonZeroReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Amount (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=l.cu,this.unSubs=[new d.x,new d.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===l.cu.XS||this.screenSize===l.cu.SM),this.store.select(_.PP).pipe((0,h.R)(this.unSubs[0]),(0,tt.M)(this.store.select(_.Ef))).subscribe(([e,i])=>{this.payments=e.payments.sent?e.payments.sent:[],this.invoices=i.invoices?i.invoices:[],(this.payments.length>0||this.invoices.length>0)&&(this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData())}),this.commonService.containerSizeUpdated.pipe((0,h.R)(this.unSubs[1])).subscribe(e=>{switch(this.screenSize){case l.cu.MD:this.screenPaddingX=e.width/10;break;case l.cu.LG:this.screenPaddingX=e.width/16;break;default:this.screenPaddingX=e.width/20}this.view=[e.width-this.screenPaddingX,e.height/2.2],this.logger.info("Container Size: "+JSON.stringify(e)),this.logger.info("View: "+JSON.stringify(this.view))})}onChartMouseUp(e){"svg"===e.srcElement.tagName&&e.srcElement.classList.length>0&&"ngx-charts"===e.srcElement.classList[0]&&(this.transactionFilterValue="")}onChartBarSelected(e){this.transactionFilterValue=this.reportPeriod===l.op[1]?e.series.toString()+"/"+this.startDate.getFullYear():e.series.toString().padStart(2,"0")+"/"+l.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}filterTransactionsForSelectedPeriod(e,i){const o=Math.round(e.getTime()/1e3),s=Math.round(i.getTime()/1e3),c=[];this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0};const f=this.payments.filter(C=>Math.floor(C.firstPartTimestamp/1e3)>=o&&Math.floor(C.firstPartTimestamp/1e3)"received"===C.status&&C.timestamp>=o&&C.timestamp{const E=new Date(C.firstPartTimestamp).getMonth();return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+C.recipientAmount,c[E].series[0].value=c[E].series[0].value+C.recipientAmount,c[E].series[0].extra.total=c[E].series[0].extra.total+1,this.transactionsReportSummary}),P.map(C=>{const E=new Date(1e3*C.timestamp).getMonth();return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+C.amountSettled,c[E].series[1].value=c[E].series[1].value+C.amountSettled,c[E].series[1].extra.total=c[E].series[1].extra.total+1,this.transactionsReportSummary})}else{for(let C=0;C{const E=Math.floor((Math.floor(C.firstPartTimestamp/1e3)-o)/this.secondsInADay);return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+C.recipientAmount,c[E].series[0].value=c[E].series[0].value+C.recipientAmount,c[E].series[0].extra.total=c[E].series[0].extra.total+1,this.transactionsReportSummary}),P.map(C=>{const E=Math.floor((C.timestamp-o)/this.secondsInADay);return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+C.amountSettled,c[E].series[1].value=c[E].series[1].value+C.amountSettled,c[E].series[1].extra.total=c[E].series[1].extra.total+1,this.transactionsReportSummary})}return c}prepareTableData(){return this.transactionsReportData.reduce((e,i)=>i.series[0].extra.total>0||i.series[1].extra.total>0?e.concat({date:i.date,amount_paid:i.series[0].value,num_payments:i.series[0].extra.total,amount_received:i.series[1].value,num_invoices:i.series[1].extra.total}):e,[])}onSelectionChange(e){const i=e.selDate.getMonth(),o=e.selDate.getFullYear();this.reportPeriod=e.selScrollRange,this.reportPeriod===l.op[1]?(this.startDate=new Date(o,0,1,0,0,0),this.endDate=new Date(o,11,31,23,59,59)):(this.startDate=new Date(o,i,1,0,0,0),this.endDate=new Date(o,i,this.getMonthDays(i,o),23,59,59)),this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData(),this.transactionFilterValue=""}getMonthDays(e,i){return 1===e&&i%4==0?l.gg[e].days+1:l.gg[e].days}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(F.mQ),t.Y36(O.v),t.Y36(b.yh))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-transactions-report"]],hostBindings:function(e,i){1&e&&t.NdJ("mouseup",function(s){return i.onChartMouseUp(s)})},decls:9,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],[1,"mt-1"],["class","two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup",4,"ngIf"],[3,"dataList","dataRange","filterValue",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],[1,"two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"dataList","dataRange","filterValue"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.TgZ(1,"rtl-horizontal-scroller",1),t.NdJ("stepChanged",function(s){return i.onSelectionChange(s)}),t.qZA(),t.TgZ(2,"div",2),t.YNc(3,Ac,3,3,"div",3),t.YNc(4,Lc,2,0,"div",4),t.TgZ(5,"div",5),t.YNc(6,bc,3,13,"ngx-charts-bar-vertical-2d",6),t.qZA(),t.TgZ(7,"div",5),t.YNc(8,Sc,1,3,"rtl-transactions-report-table",7),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(3),t.Q6J("ngIf",i.transactionsNonZeroReportData.length>0),t.xp6(1),t.Q6J("ngIf",i.transactionsNonZeroReportData.length<=0),t.xp6(2),t.Q6J("ngIf",i.transactionsNonZeroReportData.length>0),t.xp6(2),t.Q6J("ngIf",i.transactionsNonZeroReportData.length>0))},directives:[p.xw,p.Wh,p.yH,Rt.D,u.O5,Nt.H5,yc.g],pipes:[u.JJ],styles:[""],data:{animation:[Ot.J]}}),n})();var w=g(1643),Ec=g(9442);function qc(n,a){if(1&n){const e=t.EpF();t.TgZ(0,"div",8),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw().activeLink=s.link}),t._uU(1),t.qZA()}if(2&n){const e=a.$implicit,i=t.oxw();t.s9C("routerLink",e.link),t.Q6J("active",i.activeLink===e.link),t.xp6(1),t.Oqu(e.name)}}const Oc=y.Bz.forChild([{path:"",component:rt,children:[{path:"",pathMatch:"full",redirectTo:"home"},{path:"home",component:wi,canActivate:[w.fY]},{path:"onchain",component:ua,canActivate:[w.fY],children:[{path:"",pathMatch:"full",redirectTo:"receive"},{path:"receive",component:Ua,canActivate:[w.fY]},{path:"send",component:Ma,canActivate:[w.fY]}]},{path:"connections",component:da,canActivate:[w.fY],children:[{path:"",pathMatch:"full",redirectTo:"channels"},{path:"channels",component:ao,canActivate:[w.fY],children:[{path:"",pathMatch:"full",redirectTo:"open"},{path:"open",component:zo,canActivate:[w.fY]},{path:"pending",component:hs,canActivate:[w.fY]},{path:"inactive",component:Jl,canActivate:[w.fY]}]},{path:"peers",component:js,data:{sweepAll:!1},canActivate:[w.fY]}]},{path:"transactions",component:ga,canActivate:[w.fY],children:[{path:"",pathMatch:"full",redirectTo:"payments"},{path:"payments",component:gt,canActivate:[w.fY]},{path:"invoices",component:dt,canActivate:[w.fY]}]},{path:"routing",component:_a,canActivate:[w.fY],children:[{path:"",pathMatch:"full",redirectTo:"forwardinghistory"},{path:"forwardinghistory",component:It,canActivate:[w.fY]},{path:"peers",component:pc,canActivate:[w.fY]}]},{path:"reports",component:dc,canActivate:[w.fY],children:[{path:"",pathMatch:"full",redirectTo:"routingfees"},{path:"routingfees",component:xc,canActivate:[w.fY]},{path:"transactions",component:wc,canActivate:[w.fY]}]},{path:"graph",component:(()=>{class n{constructor(e){this.router=e,this.faSearch=Z.wn1,this.links=[{link:"lookups",name:"Lookup"},{link:"queryroutes",name:"Query Routes"}],this.activeLink=this.links[0].link,this.unSubs=[new d.x,new d.x,new d.x,new d.x]}ngOnInit(){const e=this.links.find(i=>this.router.url.includes(i.link));this.activeLink=e?e.link:this.links[0].link,this.router.events.pipe((0,h.R)(this.unSubs[0]),(0,J.h)(i=>i instanceof y.Av)).subscribe(i=>{const o=this.links.find(s=>i.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(e=>{e.next(null),e.complete()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(y.F0))},n.\u0275cmp=t.Xpm({type:n,selectors:[["rtl-ecl-graph"]],decls:11,vars:2,consts:[["fxLayout","row wrap","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"Graph Lookups"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t.TgZ(7,"nav",5),t.YNc(8,qc,2,3,"div",6),t.qZA(),t.TgZ(9,"div",7),t._UZ(10,"router-outlet"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(1),t.Q6J("icon",i.faSearch),t.xp6(7),t.Q6J("ngForOf",i.links))},directives:[p.xw,p.Wh,I.BN,A.a8,A.dn,N.BU,u.sg,p.yH,y.lC,N.Nj,y.rH],styles:[""]}),n})(),canActivate:[w.fY],children:[{path:"",pathMatch:"full",redirectTo:"lookups"},{path:"lookups",component:Pa,canActivate:[w.fY]},{path:"queryroutes",component:dl,canActivate:[w.fY]}]},{path:"**",component:Ec.w}]}]);var Rc=g(8750);let Nc=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n,bootstrap:[rt]}),n.\u0275inj=t.cJS({providers:[w.fY],imports:[[u.ez,Rc.m,Oc]]}),n})()}}]); \ No newline at end of file diff --git a/frontend/859.6444145916be9067.js b/frontend/859.6444145916be9067.js new file mode 100644 index 00000000..419576f4 --- /dev/null +++ b/frontend/859.6444145916be9067.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkRTLApp=self.webpackChunkRTLApp||[]).push([[859],{1859:(Gh,Te,h)=>{h.r(Te),h.d(Te,{LNDModule:()=>Bh});var m=h(9808),Z=h(9291),Ve=h(8878),e=h(5e3),d=h(7093),J=h(5899);function We(n,i){1&n&&e._UZ(0,"mat-progress-bar",3)}let ye=(()=>{class n{constructor(t){this.router=t,this.loading=!1,this.router.events.subscribe(a=>{switch(!0){case a instanceof Z.OD:this.loading=!0;break;case a instanceof Z.m2:case a instanceof Z.gk:case a instanceof Z.Q3:this.loading=!1}})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-lnd-root"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"inner-sidenav-content"],["color","primary","mode","indeterminate",4,"ngIf"],["outlet","outlet"],["color","primary","mode","indeterminate"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.YNc(1,We,1,0,"mat-progress-bar",1),e._UZ(2,"router-outlet",null,2),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngIf",a.loading))},directives:[d.xw,d.yH,d.Wh,m.O5,Z.lC,J.pW],styles:[""],data:{animation:[Ve.g]}}),n})();var p=h(7579),_=h(2722),E=h(9300),Ze=h(534),x=h(801),l=h(7731),C=h(6529),F=h(5043),w=h(5620),z=h(6642),M=h(62),R=h(9444),se=h(3954),b=h(9224),me=h(2181),L=h(3322),q=h(7423),te=h(5245);const be=function(n){return{backgroundColor:n}};function Xe(n,i){if(1&n&&e._UZ(0,"span",6),2&n){const t=e.oxw();e.Q6J("ngStyle",e.VKq(1,be,null==t.information?null:t.information.color))}}function $e(n,i){if(1&n&&(e.TgZ(0,"div"),e.TgZ(1,"h4",1),e._uU(2,"Color"),e.qZA(),e.TgZ(3,"div",2),e._UZ(4,"span",7),e._uU(5),e.ALo(6,"uppercase"),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(4),e.Q6J("ngStyle",e.VKq(4,be,null==t.information?null:t.information.color)),e.xp6(1),e.hij(" ",e.lcZ(6,2,null==t.information?null:t.information.color)," ")}}function je(n,i){if(1&n&&(e.TgZ(0,"span",2),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(t)}}let Ae=(()=>{class n{constructor(t){this.commonService=t,this.chains=[""]}ngOnChanges(){this.information&&this.information.chains&&this.information.chains.length>0&&(this.chains=[""],this.information.chains.forEach(t=>{this.chains.push(this.commonService.titleCase(t.chain)+" "+this.commonService.titleCase(t.network))}))}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(M.v))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-node-info"]],inputs:{information:"information",showColorFieldSeparately:"showColorFieldSeparately"},features:[e.TTD],decls:17,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["class","dashboard-node-dot dot",3,"ngStyle",4,"ngIf"],[4,"ngIf"],["class","overflow-wrap dashboard-info-value",4,"ngFor","ngForOf"],[1,"dashboard-node-dot","dot",3,"ngStyle"],[1,"dashboard-node-square",3,"ngStyle"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div"),e.TgZ(2,"h4",1),e._uU(3,"Alias"),e.qZA(),e.TgZ(4,"div",2),e._uU(5),e.YNc(6,Xe,1,3,"span",3),e.qZA(),e.qZA(),e.YNc(7,$e,7,6,"div",4),e.TgZ(8,"div"),e.TgZ(9,"h4",1),e._uU(10,"Implementation"),e.qZA(),e.TgZ(11,"div",2),e._uU(12),e.qZA(),e.qZA(),e.TgZ(13,"div"),e.TgZ(14,"h4",1),e._uU(15,"Chain"),e.qZA(),e.YNc(16,je,2,1,"span",5),e.qZA(),e.qZA()),2&t&&(e.xp6(5),e.hij(" ",null==a.information?null:a.information.alias," "),e.xp6(1),e.Q6J("ngIf",!a.showColorFieldSeparately),e.xp6(1),e.Q6J("ngIf",a.showColorFieldSeparately),e.xp6(5),e.Oqu(null!=a.information&&a.information.lnImplementation||null!=a.information&&a.information.version?(null==a.information?null:a.information.lnImplementation)+" "+(null==a.information?null:a.information.version):""),e.xp6(4),e.Q6J("ngForOf",a.chains))},directives:[d.xw,d.yH,d.Wh,m.O5,m.sg,m.PC,L.Zl],pipes:[m.gd],styles:[""]}),n})();function Ke(n,i){if(1&n&&(e.TgZ(0,"div",2),e.TgZ(1,"div"),e.TgZ(2,"h4",3),e._uU(3,"Lightning"),e.qZA(),e.TgZ(4,"div",4),e._uU(5),e.ALo(6,"number"),e.qZA(),e._UZ(7,"mat-progress-bar",5),e.qZA(),e.TgZ(8,"div"),e.TgZ(9,"h4",3),e._uU(10,"On-chain"),e.qZA(),e.TgZ(11,"div",4),e._uU(12),e.ALo(13,"number"),e.qZA(),e._UZ(14,"mat-progress-bar",5),e.qZA(),e.TgZ(15,"div"),e.TgZ(16,"h4",3),e._uU(17,"Total"),e.qZA(),e.TgZ(18,"div",4),e._uU(19),e.ALo(20,"number"),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(5),e.hij("",e.lcZ(6,5,null==t.balances?null:t.balances.lightning)," Sats"),e.xp6(2),e.s9C("value",(null==t.balances?null:t.balances.lightning)/(null==t.balances?null:t.balances.total)*100),e.xp6(5),e.hij("",e.lcZ(13,7,null==t.balances?null:t.balances.onchain)," Sats"),e.xp6(2),e.s9C("value",(null==t.balances?null:t.balances.onchain)/(null==t.balances?null:t.balances.total)*100),e.xp6(5),e.hij("",e.lcZ(20,9,null==t.balances?null:t.balances.total)," Sats")}}function et(n,i){if(1&n&&(e.TgZ(0,"div",6),e.TgZ(1,"p"),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Oqu(t.errorMessage)}}let tt=(()=>{class n{constructor(){this.balances={onchain:0,lightning:0,total:0}}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-balances-info"]],inputs:{balances:"balances",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,a){if(1&t&&(e.YNc(0,Ke,21,11,"div",0),e.YNc(1,et,3,1,"ng-template",null,1,e.W1O)),2&t){const o=e.MAs(2);e.Q6J("ngIf"," "===a.errorMessage)("ngIfElse",o)}},directives:[m.O5,d.xw,d.yH,d.Wh,J.pW],pipes:[m.JJ],styles:[""]}),n})();var f=h(7322),W=h(7238),X=h(4834),Y=h(644);function nt(n,i){if(1&n&&(e.TgZ(0,"div",19),e.TgZ(1,"span",20),e._uU(2),e.ALo(3,"slice"),e.qZA(),e.TgZ(4,"div",6),e.TgZ(5,"mat-hint",21),e.TgZ(6,"strong",8),e._uU(7,"Local:"),e.qZA(),e._uU(8),e.ALo(9,"number"),e.qZA(),e.TgZ(10,"mat-hint",22),e._UZ(11,"fa-icon",23),e._uU(12),e.ALo(13,"number"),e.qZA(),e.TgZ(14,"mat-hint",24),e.TgZ(15,"strong",8),e._uU(16,"Remote:"),e.qZA(),e._uU(17),e.ALo(18,"number"),e.qZA(),e.qZA(),e._UZ(19,"mat-progress-bar",25),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(3);e.xp6(1),e.s9C("matTooltip",t.remote_alias||t.remote_pubkey),e.s9C("matTooltipDisabled",(t.remote_alias||t.remote_pubkey).length<26),e.xp6(1),e.AsE("",e.Dn7(3,9,t.remote_alias||t.remote_pubkey,0,24),"",(t.remote_alias||t.remote_pubkey).length>25?"...":"",""),e.xp6(6),e.hij("",e.lcZ(9,13,t.local_balance||0)," Sats"),e.xp6(3),e.Q6J("icon",a.faBalanceScale),e.xp6(1),e.hij(" (",e.lcZ(13,15,t.balancedness||0),") "),e.xp6(5),e.hij("",e.lcZ(18,17,t.remote_balance||0)," Sats"),e.xp6(2),e.s9C("value",t.local_balance&&t.local_balance>0?+t.local_balance/(+t.local_balance+ +t.remote_balance)*100:0)}}function at(n,i){if(1&n&&(e.TgZ(0,"div",17),e.YNc(1,nt,20,19,"div",18),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngForOf",t.allChannels)}}function it(n,i){if(1&n&&(e.TgZ(0,"div",3),e.TgZ(1,"div",4),e.TgZ(2,"span",5),e._uU(3,"Total Capacity"),e.qZA(),e.TgZ(4,"div",6),e.TgZ(5,"mat-hint",7),e.TgZ(6,"strong",8),e._uU(7,"Local:"),e.qZA(),e._uU(8),e.ALo(9,"number"),e.qZA(),e.TgZ(10,"mat-hint",9),e._UZ(11,"fa-icon",10),e._uU(12),e.ALo(13,"number"),e.qZA(),e.TgZ(14,"mat-hint",11),e.TgZ(15,"strong",8),e._uU(16,"Remote:"),e.qZA(),e._uU(17),e.ALo(18,"number"),e.qZA(),e.qZA(),e._UZ(19,"mat-progress-bar",12),e.qZA(),e.TgZ(20,"div",13),e._UZ(21,"mat-divider",14),e.qZA(),e.TgZ(22,"div",15),e.YNc(23,at,2,1,"div",16),e.qZA(),e.qZA()),2&n){const t=e.oxw(),a=e.MAs(2);e.xp6(8),e.hij("",e.lcZ(9,7,(null==t.channelBalances?null:t.channelBalances.localBalance)||0)," Sats"),e.xp6(3),e.Q6J("icon",t.faBalanceScale),e.xp6(1),e.hij(" (",e.lcZ(13,9,(null==t.channelBalances?null:t.channelBalances.balancedness)||0),") "),e.xp6(5),e.hij("",e.lcZ(18,11,(null==t.channelBalances?null:t.channelBalances.remoteBalance)||0)," Sats"),e.xp6(2),e.s9C("value",null!=t.channelBalances&&t.channelBalances.localBalance&&(null==t.channelBalances?null:t.channelBalances.localBalance)>0?+(null==t.channelBalances?null:t.channelBalances.localBalance)/(+(null==t.channelBalances?null:t.channelBalances.localBalance)+ +(null==t.channelBalances?null:t.channelBalances.remoteBalance))*100:0),e.xp6(4),e.Q6J("ngIf",t.allChannels&&t.allChannels.length>0)("ngIfElse",a)}}function ot(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",26),e._uU(1," No channels available. "),e.TgZ(2,"button",27),e.NdJ("click",function(){return e.CHM(t),e.oxw().goToChannels()}),e._uU(3,"Open Channel"),e.qZA(),e.qZA()}}function st(n,i){if(1&n&&(e.TgZ(0,"div",28),e.TgZ(1,"p"),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Oqu(t.errorMessage)}}let lt=(()=>{class n{constructor(t){this.router=t,this.faBalanceScale=x.DL8,this.faDumbbell=x.FlN,this.sortBy="Balance Score"}goToChannels(){this.router.navigateByUrl("/lnd/connections")}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-capacity-info"]],inputs:{channelBalances:"channelBalances",allChannels:"allChannels",sortBy:"sortBy",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","space-between stretch","fxFlex","100"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],["fxLayout","row","fxLayoutAlign","space-between start",1,"w-100"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90"],[1,"font-weight-900","mr-5px"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90"],["matTooltip","Balance Score",1,"mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90"],["mode","determinate","color","accent",1,"dashboard-progress-bar","this-channel-bar",3,"value"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],[1,"channels-capacity-scroll",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100",4,"ngIf","ngIfElse"],["fxLayout","column","fxFlex","100"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],[1,"dashboard-capacity-header",3,"matTooltip","matTooltipDisabled"],["fxFlex","40","fxLayoutAlign","start center",1,"font-size-90","color-primary"],["fxFlex","20","fxLayoutAlign","center center",1,"font-size-90","color-primary"],["matTooltip","Balance Score",1,"color-primary","mr-3px",3,"icon"],["fxFlex","40","fxLayoutAlign","end center",1,"font-size-90","color-primary"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start",1,"mt-1","w-100"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,a){if(1&t&&(e.YNc(0,it,24,13,"div",0),e.YNc(1,ot,4,0,"ng-template",null,1,e.W1O),e.YNc(3,st,3,1,"ng-template",null,2,e.W1O)),2&t){const o=e.MAs(4);e.Q6J("ngIf",""===(null==a.errorMessage?null:a.errorMessage.trim()))("ngIfElse",o)}},directives:[m.O5,d.xw,d.Wh,d.yH,f.bx,R.BN,W.gM,J.pW,X.d,Y.$V,m.sg,q.lW],pipes:[m.JJ,m.OU],styles:[".channels-capacity-scroll[_ngcontent-%COMP%]{width:100%;height:100%;overflow-y:hidden}"]}),n})();function rt(n,i){if(1&n&&(e.TgZ(0,"div",2),e.TgZ(1,"div",3),e.TgZ(2,"div"),e.TgZ(3,"h4",4),e._uU(4,"Daily"),e.qZA(),e.TgZ(5,"div",5),e._uU(6),e.ALo(7,"number"),e.qZA(),e.qZA(),e.TgZ(8,"div"),e.TgZ(9,"h4",4),e._uU(10,"Weekly"),e.qZA(),e.TgZ(11,"div",5),e._uU(12),e.ALo(13,"number"),e.qZA(),e.qZA(),e.TgZ(14,"div"),e.TgZ(15,"h4",4),e._uU(16,"Monthly"),e.qZA(),e.TgZ(17,"div",5),e._uU(18),e.ALo(19,"number"),e.qZA(),e.qZA(),e.TgZ(20,"div",6),e._UZ(21,"h4",7),e._UZ(22,"span",5),e.qZA(),e.qZA(),e.TgZ(23,"div",3),e.TgZ(24,"div"),e.TgZ(25,"h4",4),e._uU(26,"Transactions"),e.qZA(),e.TgZ(27,"div",5),e._uU(28),e.ALo(29,"number"),e.qZA(),e.qZA(),e.TgZ(30,"div"),e.TgZ(31,"h4",4),e._uU(32,"Transactions"),e.qZA(),e.TgZ(33,"div",5),e._uU(34),e.ALo(35,"number"),e.qZA(),e.qZA(),e.TgZ(36,"div"),e.TgZ(37,"h4",4),e._uU(38,"Transactions"),e.qZA(),e.TgZ(39,"div",5),e._uU(40),e.ALo(41,"number"),e.qZA(),e.qZA(),e.TgZ(42,"div",6),e._UZ(43,"h4",7),e._UZ(44,"span",5),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(6),e.hij("",e.lcZ(7,6,null==t.fees?null:t.fees.day_fee_sum)," Sats"),e.xp6(6),e.hij("",e.lcZ(13,8,null==t.fees?null:t.fees.week_fee_sum)," Sats"),e.xp6(6),e.hij("",e.lcZ(19,10,null==t.fees?null:t.fees.month_fee_sum)," Sats"),e.xp6(10),e.Oqu(e.lcZ(29,12,null==t.fees?null:t.fees.daily_tx_count)),e.xp6(6),e.Oqu(e.lcZ(35,14,null==t.fees?null:t.fees.weekly_tx_count)),e.xp6(6),e.Oqu(e.lcZ(41,16,null==t.fees?null:t.fees.monthly_tx_count))}}function ct(n,i){if(1&n&&(e.TgZ(0,"div",8),e.TgZ(1,"p"),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Oqu(t.errorMessage)}}let ve=(()=>{class n{constructor(){this.totalFees=[{name:"Monthly",value:0},{name:"Weekly",value:0},{name:"Daily",value:0}],this.maxFeeValue=100}ngOnChanges(){if(this.fees.month_fee_sum){this.totalFees=[{name:"Monthly",value:this.fees.month_fee_sum},{name:"Weekly",value:this.fees.week_fee_sum},{name:"Daily ",value:this.fees.day_fee_sum}];const t=Math.ceil(Math.log(this.fees.month_fee_sum+1)/Math.LN10),a=Math.pow(10,t-1);this.maxFeeValue=Math.ceil(this.fees.month_fee_sum/a)*a/5||100,Object.assign(this,this.totalFees)}else this.totalFees=[{name:"Monthly",value:0},{name:"Weekly",value:0},{name:"Daily",value:0}],this.maxFeeValue=100,Object.assign(this,this.totalFees)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-fee-info"]],inputs:{fees:"fees",errorMessage:"errorMessage"},features:[e.TTD],decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["fxFlex","20"],[1,"dashboard-info-title"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,a){if(1&t&&(e.YNc(0,rt,45,18,"div",0),e.YNc(1,ct,3,1,"ng-template",null,1,e.W1O)),2&t){const o=e.MAs(2);e.Q6J("ngIf",""===(null==a.errorMessage?null:a.errorMessage.trim()))("ngIfElse",o)}},directives:[m.O5,d.xw,d.yH,d.Wh],pipes:[m.JJ],styles:[""]}),n})();function ut(n,i){if(1&n&&(e.TgZ(0,"div",2),e.TgZ(1,"div",3),e.TgZ(2,"div"),e.TgZ(3,"h4",4),e._uU(4,"Active"),e.qZA(),e.TgZ(5,"div",5),e._UZ(6,"span",6),e._uU(7),e.ALo(8,"number"),e.qZA(),e.qZA(),e.TgZ(9,"div"),e.TgZ(10,"h4",4),e._uU(11,"Pending"),e.qZA(),e.TgZ(12,"div",5),e._UZ(13,"span",7),e._uU(14),e.ALo(15,"number"),e.qZA(),e.qZA(),e.TgZ(16,"div"),e.TgZ(17,"h4",4),e._uU(18,"Inactive"),e.qZA(),e.TgZ(19,"div",5),e._UZ(20,"span",8),e._uU(21),e.ALo(22,"number"),e.qZA(),e.qZA(),e.TgZ(23,"div"),e.TgZ(24,"h4",4),e._uU(25,"Closing"),e.qZA(),e.TgZ(26,"div",5),e._UZ(27,"span",9),e._uU(28),e.ALo(29,"number"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(30,"div",3),e.TgZ(31,"div"),e.TgZ(32,"h4",4),e._uU(33,"Capacity"),e.qZA(),e.TgZ(34,"div",5),e._uU(35),e.ALo(36,"number"),e.qZA(),e.qZA(),e.TgZ(37,"div"),e.TgZ(38,"h4",4),e._uU(39,"Capacity"),e.qZA(),e.TgZ(40,"div",5),e._uU(41),e.ALo(42,"number"),e.qZA(),e.qZA(),e.TgZ(43,"div"),e.TgZ(44,"h4",4),e._uU(45,"Capacity"),e.qZA(),e.TgZ(46,"div",5),e._uU(47),e.ALo(48,"number"),e.qZA(),e.qZA(),e.TgZ(49,"div"),e.TgZ(50,"h4",4),e._uU(51,"Capacity"),e.qZA(),e.TgZ(52,"div",5),e._uU(53),e.ALo(54,"number"),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(7),e.Oqu(e.lcZ(8,8,(null==t.channelsStatus||null==t.channelsStatus.active?null:t.channelsStatus.active.num_channels)||0)),e.xp6(7),e.Oqu(e.lcZ(15,10,(null==t.channelsStatus||null==t.channelsStatus.pending?null:t.channelsStatus.pending.num_channels)||0)),e.xp6(7),e.Oqu(e.lcZ(22,12,(null==t.channelsStatus||null==t.channelsStatus.inactive?null:t.channelsStatus.inactive.num_channels)||0)),e.xp6(7),e.Oqu(e.lcZ(29,14,(null==t.channelsStatus||null==t.channelsStatus.closing?null:t.channelsStatus.closing.num_channels)||0)),e.xp6(7),e.hij("",e.lcZ(36,16,(null==t.channelsStatus||null==t.channelsStatus.active?null:t.channelsStatus.active.capacity)||0)," Sats"),e.xp6(6),e.hij("",e.lcZ(42,18,(null==t.channelsStatus||null==t.channelsStatus.pending?null:t.channelsStatus.pending.capacity)||0)," Sats"),e.xp6(6),e.hij("",e.lcZ(48,20,(null==t.channelsStatus||null==t.channelsStatus.inactive?null:t.channelsStatus.inactive.capacity)||0)," Sats"),e.xp6(6),e.hij("",e.lcZ(54,22,(null==t.channelsStatus||null==t.channelsStatus.closing?null:t.channelsStatus.closing.capacity)||0)," Sats")}}function pt(n,i){if(1&n&&(e.TgZ(0,"div",10),e.TgZ(1,"p"),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Oqu(t.errorMessage)}}let we=(()=>{class n{constructor(){this.channelsStatus={}}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-status-info"]],inputs:{channelsStatus:"channelsStatus",errorMessage:"errorMessage"},decls:3,vars:2,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf","ngIfElse"],["errorBlock",""],["fxLayout","row","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","50","fxLayoutAlign","space-between stretch"],["fxLayoutAlign","start",1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],[1,"dot","tiny-dot","green"],[1,"dot","tiny-dot","yellow"],[1,"dot","tiny-dot","grey"],[1,"dot","tiny-dot","red"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,a){if(1&t&&(e.YNc(0,ut,55,24,"div",0),e.YNc(1,pt,3,1,"ng-template",null,1,e.W1O)),2&t){const o=e.MAs(2);e.Q6J("ngIf"," "===a.errorMessage)("ngIfElse",o)}},directives:[m.O5,d.xw,d.yH,d.Wh],pipes:[m.JJ],styles:[""]}),n})();var qe=h(8213),v=h(7861),Se=h(9107);function mt(n,i){if(1&n&&(e.TgZ(0,"mat-hint",19),e.TgZ(1,"strong",20),e._uU(2,"Capacity: "),e.qZA(),e._uU(3),e.ALo(4,"number"),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(3),e.hij("",e.lcZ(4,1,t.remote_balance||0)," Sats")}}function dt(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",24),e.NdJ("click",function(){e.CHM(t);const o=e.oxw(2).$implicit;return e.oxw(3).onLoopOut(o)}),e._uU(1,"Loop Out"),e.qZA()}}function _t(n,i){if(1&n&&(e.TgZ(0,"div",21),e.TgZ(1,"mat-hint",22),e.TgZ(2,"strong",20),e._uU(3,"Capacity: "),e.qZA(),e._uU(4),e.ALo(5,"number"),e.qZA(),e.YNc(6,dt,2,0,"button",23),e.qZA()),2&n){const t=e.oxw().$implicit,a=e.oxw(3);e.xp6(4),e.hij("",e.lcZ(5,2,t.local_balance||0)," Sats"),e.xp6(2),e.Q6J("ngIf",a.showLoop)}}function ht(n,i){if(1&n&&e._UZ(0,"mat-progress-bar",25),2&n){const t=e.oxw().$implicit,a=e.oxw(3);e.s9C("value",a.totalLiquidity>0?(+t.remote_balance||0)/a.totalLiquidity*100:0)}}function gt(n,i){if(1&n&&e._UZ(0,"mat-progress-bar",25),2&n){const t=e.oxw().$implicit,a=e.oxw(3);e.s9C("value",a.totalLiquidity>0?(+t.local_balance||0)/a.totalLiquidity*100:0)}}function ft(n,i){if(1&n&&(e.TgZ(0,"div",13),e.TgZ(1,"span",14),e._uU(2),e.ALo(3,"slice"),e.qZA(),e.TgZ(4,"div",15),e.YNc(5,mt,5,3,"mat-hint",16),e.YNc(6,_t,7,4,"div",17),e.qZA(),e.YNc(7,ht,1,1,"mat-progress-bar",18),e.YNc(8,gt,1,1,"mat-progress-bar",18),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(3);e.xp6(1),e.s9C("matTooltip",t.remote_alias||t.remote_pubkey),e.s9C("matTooltipDisabled",(t.remote_alias||t.remote_pubkey).length<26),e.xp6(1),e.AsE("",e.Dn7(3,8,t.remote_alias||t.remote_pubkey,0,24),"",(t.remote_alias||t.remote_pubkey).length>25?"...":"",""),e.xp6(3),e.Q6J("ngIf","In"===a.direction),e.xp6(1),e.Q6J("ngIf","Out"===a.direction),e.xp6(1),e.Q6J("ngIf","In"===a.direction),e.xp6(1),e.Q6J("ngIf","Out"===a.direction)}}function Ct(n,i){if(1&n&&(e.TgZ(0,"div",11),e.YNc(1,ft,9,12,"div",12),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngForOf",t.allChannels)}}const xt=function(n,i,t){return{"mb-4":n,"mb-2":i,"mb-1":t}};function Tt(n,i){if(1&n&&(e.TgZ(0,"div",3),e.TgZ(1,"div",4),e.TgZ(2,"span",5),e._uU(3,"Total Capacity"),e.qZA(),e.TgZ(4,"mat-hint",6),e._uU(5),e.ALo(6,"number"),e.qZA(),e._UZ(7,"mat-progress-bar",7),e.qZA(),e.TgZ(8,"div",8),e._UZ(9,"mat-divider",9),e.qZA(),e.YNc(10,Ct,2,1,"div",10),e.qZA()),2&n){const t=e.oxw(),a=e.MAs(2);e.Q6J("ngClass",e.kEZ(6,xt,t.screenSize===t.screenSizeEnum.XS||t.screenSize===t.screenSizeEnum.SM,t.screenSize===t.screenSizeEnum.MD,t.screenSize===t.screenSizeEnum.LG||t.screenSize===t.screenSizeEnum.XL)),e.xp6(5),e.hij("",e.lcZ(6,4,t.totalLiquidity)," Sats"),e.xp6(5),e.Q6J("ngIf",t.allChannels&&t.allChannels.length>0)("ngIfElse",a)}}function yt(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",28),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).goToChannels()}),e._uU(1,"Open Channel"),e.qZA()}}function Zt(n,i){if(1&n&&(e.TgZ(0,"div",26),e._uU(1," No channels available. "),e.YNc(2,yt,2,0,"button",27),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Q6J("ngIf","Out"===t.direction)}}function bt(n,i){if(1&n&&(e.TgZ(0,"div",29),e.TgZ(1,"p"),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Oqu(t.errorMessage)}}let At=(()=>{class n{constructor(t,a,o,s){this.router=t,this.loopService=a,this.commonService=o,this.store=s,this.targetConf=6,this.screenSize="",this.screenSizeEnum=l.cu,this.unSubs=[new p.x,new p.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.store.select(C.$k).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.showLoop=!(!t.swapServerUrl||""===t.swapServerUrl.trim())})}goToChannels(){this.router.navigateByUrl("/lnd/connections")}onLoopOut(t){this.loopService.getLoopOutTermsAndQuotes(this.targetConf).pipe((0,_.R)(this.unSubs[1])).subscribe(a=>{this.store.dispatch((0,v.qR)({payload:{minHeight:"56rem",data:{channel:t,minQuote:a[0],maxQuote:a[1],direction:l.$I.LOOP_OUT,component:qe.a}}}))})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(Z.F0),e.Y36(Se.W),e.Y36(M.v),e.Y36(w.yh))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-liquidity-info"]],inputs:{direction:"direction",totalLiquidity:"totalLiquidity",allChannels:"allChannels",errorMessage:"errorMessage"},decls:5,vars:2,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",3,"ngClass",4,"ngIf","ngIfElse"],["noChannelBlock",""],["errorBlock",""],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",3,"ngClass"],["fxLayout","column","fxFlex","9","fxLayoutAlign","end start"],[1,"dashboard-capacity-header","this-channel-capacity"],[1,"font-size-90"],["mode","determinate","color","accent","value","100",1,"dashboard-progress-bar","this-channel-bar"],["fxLayout","column","fxFlex","3","fxLayoutAlign","end stretch"],[1,"dashboard-divider"],[3,"perfectScrollbar",4,"ngIf","ngIfElse"],[3,"perfectScrollbar"],["fxLayout","column",4,"ngFor","ngForOf"],["fxLayout","column"],[1,"dashboard-capacity-header","mt-2",3,"matTooltip","matTooltipDisabled"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start"],["class","font-size-90 color-primary",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",4,"ngIf"],["class","dashboard-progress-bar","mode","determinate",3,"value",4,"ngIf"],[1,"font-size-90","color-primary"],[1,"font-weight-900","mr-5px"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxFlex","85","fxLayoutAlign","start start",1,"font-size-90","color-primary"],["fxFlex","15","fxLayoutAlign","end start","class","button-link-dashboard","color","primary","mat-button","","aria-label","Loop Out",3,"click",4,"ngIf"],["fxFlex","15","fxLayoutAlign","end start","color","primary","mat-button","","aria-label","Loop Out",1,"button-link-dashboard",3,"click"],["mode","determinate",1,"dashboard-progress-bar",3,"value"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","1",3,"click",4,"ngIf"],["mat-stroked-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"]],template:function(t,a){if(1&t&&(e.YNc(0,Tt,11,10,"div",0),e.YNc(1,Zt,3,1,"ng-template",null,1,e.W1O),e.YNc(3,bt,3,1,"ng-template",null,2,e.W1O)),2&t){const o=e.MAs(4);e.Q6J("ngIf",""===(null==a.errorMessage?null:a.errorMessage.trim()))("ngIfElse",o)}},directives:[m.O5,d.xw,d.Wh,d.yH,m.mk,L.oO,f.bx,J.pW,X.d,Y.$V,m.sg,W.gM,q.lW],pipes:[m.JJ,m.OU],styles:[""]}),n})();var I=h(3251),S=h(6087),A=h(4847),r=h(2075),P=h(8966),y=h(6523),c=h(3075),D=h(7531),V=h(3390),$=h(6534),N=h(4107),le=h(2368),Q=h(508);function vt(n,i){if(1&n&&(e.TgZ(0,"mat-option",24),e._uU(1),e.ALo(2,"titlecase"),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t),e.xp6(1),e.Oqu(e.lcZ(2,2,t))}}function wt(n,i){if(1&n&&(e.TgZ(0,"span"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.invoiceError)}}function qt(n,i){if(1&n&&(e.TgZ(0,"div",25),e._UZ(1,"fa-icon",26),e.YNc(2,wt,2,1,"span",27),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("icon",t.faExclamationTriangle),e.xp6(1),e.Q6J("ngIf",""!==t.invoiceError)}}let St=(()=>{class n{constructor(t,a,o,s,u,g){this.dialogRef=t,this.data=a,this.store=o,this.decimalPipe=s,this.commonService=u,this.actions=g,this.faExclamationTriangle=x.eHv,this.selNode={},this.memo="",this.invoiceValueHint="",this.invoicePaymentReq="",this.information={},this.private=!1,this.expiryStep=100,this.pageSize=l.IV,this.timeUnitEnum=l.Qk,this.timeUnits=l.LO,this.selTimeUnit=l.Qk.SECS,this.invoiceError="",this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.pageSize=this.data.pageSize,this.store.select(C.$k).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(C.Q5).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.information=t}),this.actions.pipe((0,_.R)(this.unSubs[2]),(0,E.h)(t=>t.type===l.uR.UPDATE_API_CALL_STATUS_LND)).subscribe(t=>{t.type===l.uR.UPDATE_API_CALL_STATUS_LND&&"SaveNewInvoice"===t.payload.action&&(this.invoiceError=t.payload.message,t.payload.status===l.Bn.ERROR&&(this.invoiceError=t.payload.message),t.payload.status===l.Bn.COMPLETED&&this.dialogRef.close())})}onAddInvoice(t){this.invoiceError="";let a=this.expiry?this.expiry:3600;this.selTimeUnit!==l.Qk.SECS&&(a=this.commonService.convertTime(this.expiry,this.selTimeUnit,l.Qk.SECS)),this.store.dispatch((0,y.Rd)({payload:{uiMessage:l.m6.ADD_INVOICE,memo:this.memo,invoiceValue:this.invoiceValue,private:this.private,expiry:a,pageSize:this.pageSize,openModal:!0}}))}resetData(){this.memo="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint="",this.selTimeUnit=l.Qk.SECS,this.invoiceError=""}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,l.NT.SATS,l.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,_.R)(this.unSubs[3])).subscribe({next:t=>{this.invoiceValueHint="= "+t.symbol+this.decimalPipe.transform(t.OTHER,l.Xz.OTHER)+" "+t.unit},error:t=>{this.invoiceValueHint="Conversion Error: "+t}}))}onTimeUnitChange(t){this.expiry&&this.selTimeUnit!==t.value&&(this.expiry=this.commonService.convertTime(this.expiry,this.selTimeUnit,t.value)),this.selTimeUnit=t.value}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(P.WI),e.Y36(w.yh),e.Y36(m.JJ),e.Y36(M.v),e.Y36(z.eX))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-create-invoices"]],decls:36,vars:17,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","end start"],["matInput","","autoFocus","","placeholder","Memo","tabindex","1","name","memo",3,"ngModel","ngModelChange"],["fxFlex","50","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","2","name","invoiceValue",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxFlex","24","fxLayoutAlign","start end"],["matInput","","placeholder","Expiry","type","number","tabindex","3","name","expiry",3,"ngModel","step","min","ngModelChange"],["tabindex","4","name","timeUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",1,"mt-1"],["tabindex","4","color","primary","matTooltip","Include routing hints for private channels","name","private",3,"ngModel","matTooltipPosition","ngModelChange"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-1"],["mat-button","","color","primary","tabindex","5","type","reset",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","6",3,"click"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[4,"ngIf"]],template:function(t,a){if(1&t){const o=e.EpF();e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e.TgZ(4,"span",4),e._uU(5,"Create Invoice"),e.qZA(),e.qZA(),e.TgZ(6,"button",5),e._uU(7,"X"),e.qZA(),e.qZA(),e.TgZ(8,"mat-card-content",6),e.TgZ(9,"form",7,8),e.TgZ(11,"mat-form-field",9),e.TgZ(12,"input",10),e.NdJ("ngModelChange",function(u){return a.memo=u}),e.qZA(),e.qZA(),e.TgZ(13,"mat-form-field",11),e.TgZ(14,"input",12),e.NdJ("ngModelChange",function(u){return a.invoiceValue=u})("keyup",function(){return a.onInvoiceValueChange()}),e.qZA(),e.TgZ(15,"span",13),e._uU(16," Sats "),e.qZA(),e.TgZ(17,"mat-hint"),e._uU(18),e.qZA(),e.qZA(),e.TgZ(19,"mat-form-field",14),e.TgZ(20,"input",15),e.NdJ("ngModelChange",function(u){return a.expiry=u}),e.qZA(),e.TgZ(21,"span",13),e._uU(22),e.ALo(23,"titlecase"),e.qZA(),e.qZA(),e.TgZ(24,"mat-form-field",14),e.TgZ(25,"mat-select",16),e.NdJ("selectionChange",function(u){return a.onTimeUnitChange(u)}),e.YNc(26,vt,3,4,"mat-option",17),e.qZA(),e.qZA(),e.TgZ(27,"div",18),e.TgZ(28,"mat-slide-toggle",19),e.NdJ("ngModelChange",function(u){return a.private=u}),e._uU(29,"Private Routing Hints"),e.qZA(),e.qZA(),e.YNc(30,qt,3,2,"div",20),e.TgZ(31,"div",21),e.TgZ(32,"button",22),e.NdJ("click",function(){return a.resetData()}),e._uU(33,"Clear Field"),e.qZA(),e.TgZ(34,"button",23),e.NdJ("click",function(){e.CHM(o);const u=e.MAs(10);return a.onAddInvoice(u)}),e._uU(35,"Create Invoice"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()}2&t&&(e.xp6(6),e.Q6J("mat-dialog-close",!1),e.xp6(6),e.Q6J("ngModel",a.memo),e.xp6(2),e.Q6J("ngModel",a.invoiceValue)("step",100)("min",1),e.xp6(4),e.Oqu(a.invoiceValueHint),e.xp6(2),e.Q6J("ngModel",a.expiry)("step",a.selTimeUnit===a.timeUnitEnum.SECS?300:a.selTimeUnit===a.timeUnitEnum.MINS?10:a.selTimeUnit===a.timeUnitEnum.HOURS?2:1)("min",1),e.xp6(2),e.hij(" ",e.lcZ(23,15,a.selTimeUnit)," "),e.xp6(3),e.Q6J("value",a.selTimeUnit),e.xp6(1),e.Q6J("ngForOf",a.timeUnits),e.xp6(2),e.Q6J("ngModel",a.private)("matTooltipPosition","above"),e.xp6(2),e.Q6J("ngIf",""!==a.invoiceError))},directives:[d.xw,d.yH,b.dk,d.Wh,q.lW,P.ZT,b.dn,c._Y,c.JL,c.F,f.KE,D.Nt,c.Fj,V.h,c.JJ,c.On,c.wV,c.qQ,$.q,f.R9,f.bx,N.gD,m.sg,le.Rr,W.gM,m.O5,Q.ey,R.BN],pipes:[m.rS],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();var Lt=h(8627);function kt(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"form",4,5),e.TgZ(2,"mat-form-field",6),e.TgZ(3,"input",7),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw().memo=o}),e.qZA(),e.qZA(),e.TgZ(4,"mat-form-field",8),e.TgZ(5,"input",9),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw().invoiceValue=o})("keyup",function(){return e.CHM(t),e.oxw().onInvoiceValueChange()}),e.qZA(),e.TgZ(6,"span",10),e._uU(7," Sats "),e.qZA(),e.TgZ(8,"mat-hint"),e._uU(9),e.qZA(),e.qZA(),e.TgZ(10,"div",11),e.TgZ(11,"button",12),e.NdJ("click",function(){return e.CHM(t),e.oxw().resetData()}),e._uU(12,"Clear Field"),e.qZA(),e.TgZ(13,"button",13),e.NdJ("click",function(){e.CHM(t);const o=e.MAs(1);return e.oxw().onAddInvoice(o)}),e._uU(14,"Create Invoice"),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(3),e.Q6J("ngModel",t.memo),e.xp6(2),e.Q6J("ngModel",t.invoiceValue)("step",100)("min",1),e.xp6(4),e.Oqu(t.invoiceValueHint)}}function Ft(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",14),e.TgZ(1,"button",15),e.NdJ("click",function(){return e.CHM(t),e.oxw().openCreateInvoiceModal()}),e._uU(2,"Create Invoice"),e.qZA(),e.qZA()}}function Nt(n,i){1&n&&e._UZ(0,"mat-progress-bar",46)}function Ut(n,i){1&n&&(e.TgZ(0,"th",47),e._uU(1," Date Created "),e.qZA())}const re=function(n){return{"mr-0":n}};function Ot(n,i){if(1&n&&e._UZ(0,"span",53),2&n){const t=e.oxw(3);e.Q6J("ngClass",e.VKq(1,re,t.screenSize===t.screenSizeEnum.XS))}}function Rt(n,i){if(1&n&&e._UZ(0,"span",54),2&n){const t=e.oxw(3);e.Q6J("ngClass",e.VKq(1,re,t.screenSize===t.screenSizeEnum.XS))}}function It(n,i){if(1&n&&e._UZ(0,"span",55),2&n){const t=e.oxw(3);e.Q6J("ngClass",e.VKq(1,re,t.screenSize===t.screenSizeEnum.XS))}}function Dt(n,i){if(1&n&&e._UZ(0,"span",56),2&n){const t=e.oxw(3);e.Q6J("ngClass",e.VKq(1,re,t.screenSize===t.screenSizeEnum.XS))}}function Mt(n,i){if(1&n&&(e.TgZ(0,"td",48),e.YNc(1,Ot,1,3,"span",49),e.YNc(2,Rt,1,3,"span",50),e.YNc(3,It,1,3,"span",51),e.YNc(4,Dt,1,3,"span",52),e._uU(5),e.ALo(6,"date"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Q6J("ngIf","OPEN"===t.state),e.xp6(1),e.Q6J("ngIf","SETTLED"===t.state),e.xp6(1),e.Q6J("ngIf","ACCEPTED"===t.state),e.xp6(1),e.Q6J("ngIf","CANCELED"===t.state),e.xp6(1),e.hij(" ",e.xi3(6,5,1e3*t.creation_date,"dd/MMM/YYYY HH:mm"),"")}}function Pt(n,i){1&n&&(e.TgZ(0,"th",57),e._uU(1," Date Settled "),e.qZA())}function Jt(n,i){if(1&n&&(e.TgZ(0,"td",58),e._uU(1),e.ALo(2,"date"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(0!=+t.settle_date?e.xi3(2,1,1e3*+t.settle_date,"dd/MMM/YYYY HH:mm"):"-")}}function Et(n,i){1&n&&(e.TgZ(0,"th",47),e._uU(1," Memo "),e.qZA())}const Qt=function(n){return{"max-width":n}};function Yt(n,i){if(1&n&&(e.TgZ(0,"td",48),e.TgZ(1,"div",59),e.TgZ(2,"span",60),e._uU(3),e.qZA(),e.qZA(),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.xp6(1),e.Q6J("ngStyle",e.VKq(2,Qt,a.screenSize===a.screenSizeEnum.XS?"10rem":"22rem")),e.xp6(2),e.Oqu(t.memo)}}function Bt(n,i){1&n&&(e.TgZ(0,"th",61),e._uU(1," Amount (Sats) "),e.qZA())}function Ht(n,i){if(1&n&&(e.TgZ(0,"td",48),e.TgZ(1,"span",62),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,null==t?null:t.value)," ")}}function Gt(n,i){1&n&&(e.TgZ(0,"th",61),e._uU(1," Amount Settled (Sats) "),e.qZA())}function zt(n,i){if(1&n&&(e.TgZ(0,"td",48),e.TgZ(1,"span",62),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,null==t?null:t.amt_paid_sat)," ")}}function Vt(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"th",63),e.TgZ(1,"div",64),e.TgZ(2,"mat-select",65),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",66),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).onDownloadCSV()}),e._uU(5,"Download CSV"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}const Wt=function(n){return{"pl-3":n}};function Xt(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",67),e.TgZ(1,"div",68),e.TgZ(2,"mat-select",69),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",66),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw(2).onInvoiceClick(s)}),e._uU(5,"View Info"),e.qZA(),e.TgZ(6,"mat-option",66),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw(2).onRefreshInvoice(s)}),e._uU(7,"Refresh"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw(2);e.Q6J("ngClass",e.VKq(1,Wt,t.screenSize!==t.screenSizeEnum.XS))}}function $t(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No invoice available."),e.qZA())}function jt(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting invoices..."),e.qZA())}function Kt(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(3);e.xp6(1),e.Oqu(t.errorMessage)}}function en(n,i){if(1&n&&(e.TgZ(0,"td",70),e.YNc(1,$t,2,0,"p",71),e.YNc(2,jt,2,0,"p",71),e.YNc(3,Kt,2,1,"p",71),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.invoices&&t.invoices.data)||(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const tn=function(n){return{"display-none":n}};function nn(n,i){if(1&n&&e._UZ(0,"tr",72),2&n){const t=e.oxw(2);e.Q6J("ngClass",e.VKq(1,tn,(null==t.invoices?null:t.invoices.data)&&(null==t.invoices||null==t.invoices.data?null:t.invoices.data.length)>0))}}function an(n,i){1&n&&e._UZ(0,"tr",73)}function on(n,i){1&n&&e._UZ(0,"tr",74)}const sn=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},ln=function(){return["no_invoice"]};function rn(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",16),e.TgZ(1,"div",17),e.TgZ(2,"div",18),e._UZ(3,"fa-icon",19),e.TgZ(4,"span",20),e._uU(5,"Invoices History"),e.qZA(),e.qZA(),e.TgZ(6,"mat-form-field",21),e.TgZ(7,"input",22),e.NdJ("keyup",function(){return e.CHM(t),e.oxw().applyFilter()})("ngModelChange",function(o){return e.CHM(t),e.oxw().selFilter=o}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(8,"div",23),e.YNc(9,Nt,1,0,"mat-progress-bar",24),e.TgZ(10,"table",25,26),e.ynx(12,27),e.YNc(13,Ut,2,0,"th",28),e.YNc(14,Mt,7,8,"td",29),e.BQk(),e.ynx(15,30),e.YNc(16,Pt,2,0,"th",31),e.YNc(17,Jt,3,4,"td",32),e.BQk(),e.ynx(18,33),e.YNc(19,Et,2,0,"th",28),e.YNc(20,Yt,4,4,"td",29),e.BQk(),e.ynx(21,34),e.YNc(22,Bt,2,0,"th",35),e.YNc(23,Ht,4,3,"td",29),e.BQk(),e.ynx(24,36),e.YNc(25,Gt,2,0,"th",35),e.YNc(26,zt,4,3,"td",29),e.BQk(),e.ynx(27,37),e.YNc(28,Vt,6,0,"th",38),e.YNc(29,Xt,8,3,"td",39),e.BQk(),e.ynx(30,40),e.YNc(31,en,4,3,"td",41),e.BQk(),e.YNc(32,nn,1,3,"tr",42),e.YNc(33,an,1,0,"tr",43),e.YNc(34,on,1,0,"tr",44),e.qZA(),e.TgZ(35,"mat-paginator",45),e.NdJ("page",function(o){return e.CHM(t),e.oxw().onPageChange(o)}),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(3),e.Q6J("icon",t.faHistory),e.xp6(4),e.Q6J("ngModel",t.selFilter),e.xp6(2),e.Q6J("ngIf",t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",t.invoices)("ngClass",e.VKq(13,sn,""!==t.errorMessage)),e.xp6(22),e.Q6J("matFooterRowDef",e.DdM(15,ln)),e.xp6(1),e.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns),e.xp6(1),e.Q6J("length",t.totalInvoices)("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let Le=(()=>{class n{constructor(t,a,o,s,u,g){this.logger=t,this.store=a,this.decimalPipe=o,this.commonService=s,this.datePipe=u,this.actions=g,this.calledFrom="transactions",this.faHistory=x.qO$,this.selNode={},this.newlyAddedInvoiceMemo=null,this.newlyAddedInvoiceValue=null,this.memo="",this.invoiceValueHint="",this.displayedColumns=[],this.invoicePaymentReq="",this.invoicesData=[],this.information={},this.flgSticky=!1,this.selFilter="",this.private=!1,this.expiryStep=100,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.firstOffset=-1,this.lastOffset=-1,this.totalInvoices=100,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["creation_date","value","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["creation_date","settle_date","value","amt_paid_sat","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["creation_date","settle_date","memo","value","actions"]):(this.flgSticky=!0,this.displayedColumns=["creation_date","settle_date","memo","value","amt_paid_sat","actions"])}ngOnInit(){this.store.select(C.$k).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(C.Q5).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.information=t}),this.store.select(C.Ef).pipe((0,_.R)(this.unSubs[2])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.totalInvoices=t.listInvoices.total_invoices,this.firstOffset=+t.listInvoices.first_index_offset,this.lastOffset=+t.listInvoices.last_index_offset,this.invoicesData=t.listInvoices.invoices||[],this.invoicesData.length>0&&this.sort&&this.paginator&&this.loadInvoicesTable(this.invoicesData),this.logger.info(t)}),this.actions.pipe((0,_.R)(this.unSubs[3]),(0,E.h)(t=>t.type===l.uR.SET_LOOKUP_LND||t.type===l.uR.UPDATE_API_CALL_STATUS_LND)).subscribe(t=>{t.type===l.uR.SET_LOOKUP_LND&&this.invoicesData.length>0&&this.sort&&this.paginator&&t.payload&&(this.updateInvoicesData(JSON.parse(JSON.stringify(t.payload))),this.loadInvoicesTable(this.invoicesData))})}ngAfterViewInit(){this.invoicesData.length>0&&this.loadInvoicesTable(this.invoicesData)}onAddInvoice(t){const a=this.expiry?this.expiry:3600;this.newlyAddedInvoiceMemo=this.memo,this.newlyAddedInvoiceValue=this.invoiceValue,this.store.dispatch((0,y.Rd)({payload:{uiMessage:l.m6.ADD_INVOICE,memo:this.memo,invoiceValue:this.invoiceValue,private:this.private,expiry:a,pageSize:this.pageSize,openModal:!0}})),this.resetData()}onInvoiceClick(t){this.store.dispatch((0,v.qR)({payload:{data:{invoice:t,newlyAdded:!1,component:Lt.v}}}))}onRefreshInvoice(t){this.store.dispatch((0,y.n7)({payload:t.r_hash}))}updateInvoicesData(t){this.invoicesData=this.invoicesData.map(a=>a.r_hash===t.r_hash?t:a)}loadInvoicesTable(t){this.invoices=new r.by(t?[...t]:[]),this.invoices.sort=this.sort,this.invoices.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.invoices.filterPredicate=(a,o)=>((a.creation_date?this.datePipe.transform(new Date(1e3*a.creation_date),"dd/MMM/YYYY HH:mm").toLowerCase():"")+(a.settle_date?this.datePipe.transform(new Date(1e3*a.settle_date),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(a).toLowerCase()).includes(o),this.applyFilter(),this.logger.info(this.invoices)}resetData(){this.memo="",this.invoiceValue=null,this.private=!1,this.expiry=null,this.invoiceValueHint=""}applyFilter(){this.invoices.filter=this.selFilter.trim().toLowerCase()}onPageChange(t){let a=!0,o=this.lastOffset,s=t.pageSize;0===t.pageIndex?(a=!0,o=0):t.pageIndext.previousPageIndex&&t.length>(t.pageIndex+1)*t.pageSize?(a=!0,o=this.firstOffset):t.length<=(t.pageIndex+1)*t.pageSize&&(a=!1,o=0,s=t.length-t.pageIndex*t.pageSize),this.store.dispatch((0,y.WM)({payload:{num_max_invoices:t.pageSize,index_offset:o,reversed:a}}))}onInvoiceValueChange(){this.selNode.fiatConversion&&this.invoiceValue>99&&(this.invoiceValueHint="",this.commonService.convertCurrency(this.invoiceValue,l.NT.SATS,l.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,_.R)(this.unSubs[4])).subscribe({next:t=>{this.invoiceValueHint="= "+t.symbol+this.decimalPipe.transform(t.OTHER,l.Xz.OTHER)+" "+t.unit},error:t=>{this.invoiceValueHint="Conversion Error: "+t}}))}onDownloadCSV(){this.invoices.data&&this.invoices.data.length>0&&this.commonService.downloadFile(this.invoices.data,"Invoices")}openCreateInvoiceModal(){this.store.dispatch((0,v.qR)({payload:{data:{pageSize:this.pageSize,component:St}}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(m.JJ),e.Y36(M.v),e.Y36(m.uU),e.Y36(z.eX))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-lightning-invoices"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},inputs:{calledFrom:"calledFrom"},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Invoices")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayout","row wrap","fxLayoutAlign","stretch start","fxFlex","100"],["addInvoiceForm","ngForm"],["fxFlex","100","fxLayoutAlign","end start"],["matInput","","placeholder","Memo","tabindex","1","name","memo",3,"ngModel","ngModelChange"],["fxFlex","100","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","2","name","invValue",3,"ngModel","step","min","ngModelChange","keyup"],["matSuffix",""],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4",3,"click"],["fxLayout","row"],["mat-flat-button","","color","primary","tabindex","5",3,"click"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","tabindex","6","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","creation_date"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","settle_date"],["mat-header-cell","","mat-sort-header","","class","pl-4",4,"matHeaderCellDef"],["mat-cell","","class","pl-4",4,"matCellDef"],["matColumnDef","memo"],["matColumnDef","value"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","amt_paid_sat"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass",4,"matCellDef"],["matColumnDef","no_invoice"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"length","pageSize","pageSizeOptions","showFirstLastButtons","page"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot grey","matTooltip","Open","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot green","matTooltip","Settled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Accepted","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Cancelled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Open","matTooltipPosition","right",1,"dot","grey",3,"ngClass"],["matTooltip","Settled","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Accepted","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],["matTooltip","Cancelled","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["mat-header-cell","","mat-sort-header","",1,"pl-4"],["mat-cell","",1,"pl-4"],[1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",3,"ngClass"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","4",1,"mr-0"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.YNc(1,kt,15,5,"form",1),e.YNc(2,Ft,3,0,"div",2),e.YNc(3,rn,36,16,"div",3),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngIf","home"===a.calledFrom),e.xp6(1),e.Q6J("ngIf","transactions"===a.calledFrom),e.xp6(1),e.Q6J("ngIf","transactions"===a.calledFrom))},directives:[d.xw,d.yH,d.Wh,m.O5,c._Y,c.JL,c.F,f.KE,D.Nt,c.Fj,c.JJ,c.On,c.wV,c.qQ,$.q,f.R9,f.bx,q.lW,R.BN,Y.$V,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,J.pW,r.ge,A.nU,r.ev,W.gM,m.PC,L.Zl,N.gD,N.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk],pipes:[m.uU,m.JJ],styles:[".mat-column-memo[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-memo[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();var G=h(5698),j=h(8104),H=h(1125),ne=h(1079);const cn=["paymentReq"];function un(n,i){if(1&n&&(e.TgZ(0,"mat-hint"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Oqu(t.paymentDecodedHint)}}function pn(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Payment request is required."),e.qZA())}function mn(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Oqu(t.paymentDecodedHint)}}function dn(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Payment amount is required."),e.qZA())}function _n(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-form-field",1),e.TgZ(1,"input",29,30),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw().paymentAmount=o})("change",function(o){return e.CHM(t),e.oxw().onAmountChange(o)}),e.qZA(),e.TgZ(3,"mat-hint"),e._uU(4,"It is a zero amount invoice, enter amount to be paid."),e.qZA(),e.YNc(5,dn,2,0,"mat-error",11),e.qZA()}if(2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngModel",t.paymentAmount),e.xp6(4),e.Q6J("ngIf",!t.paymentAmount)}}function hn(n,i){if(1&n&&(e.TgZ(0,"mat-option",31),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",null==t?null:t.name," ")}}function gn(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("",null==t.selFeeLimitType?null:t.selFeeLimitType.placeholder," is required.")}}function fn(n,i){if(1&n&&(e.TgZ(0,"mat-option",31),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t),e.xp6(1),e.Oqu((null==t?null:t.remote_alias)||(null==t?null:t.chan_id))}}function Cn(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Channel not found in the list."),e.qZA())}function xn(n,i){if(1&n&&(e.TgZ(0,"span"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.paymentError)}}function Tn(n,i){if(1&n&&(e.TgZ(0,"div",32),e._UZ(1,"fa-icon",33),e.YNc(2,xn,2,1,"span",11),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("icon",t.faExclamationTriangle),e.xp6(1),e.Q6J("ngIf",""!==t.paymentError)}}let yn=(()=>{class n{constructor(t,a,o,s,u,g,U){this.dialogRef=t,this.store=a,this.logger=o,this.commonService=s,this.decimalPipe=u,this.actions=g,this.dataService=U,this.faExclamationTriangle=x.eHv,this.selNode={},this.paymentDecoded={},this.zeroAmtInvoice=!1,this.paymentAmount=null,this.paymentRequest="",this.paymentDecodedHint="",this.showAdvanced=!1,this.activeChannels=[],this.filteredMinAmtActvChannels=[],this.selectedChannelCtrl=new c.NI,this.feeLimit=null,this.selFeeLimitType=l.Vc[0],this.feeLimitTypes=l.Vc,this.advancedTitle="Advanced Options",this.paymentError="",this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.store.select(C.$k).pipe((0,_.R)(this.unSubs[0])).subscribe(o=>{this.selNode=o}),this.store.select(C.ZW).pipe((0,_.R)(this.unSubs[1])).subscribe(o=>{this.activeChannels=o.channels.filter(s=>s.active),this.filteredMinAmtActvChannels=this.activeChannels,this.filteredMinAmtActvChannels.length&&this.filteredMinAmtActvChannels.length>0?this.selectedChannelCtrl.enable():this.selectedChannelCtrl.disable(),this.logger.info(o)}),this.actions.pipe((0,_.R)(this.unSubs[2]),(0,E.h)(o=>o.type===l.uR.UPDATE_API_CALL_STATUS_LND||o.type===l.uR.SEND_PAYMENT_STATUS_LND)).subscribe(o=>{o.type===l.uR.SEND_PAYMENT_STATUS_LND&&this.dialogRef.close(),o.type===l.uR.UPDATE_API_CALL_STATUS_LND&&o.payload.status===l.Bn.ERROR&&"SendPayment"===o.payload.action&&(delete this.paymentDecoded.num_satoshis,this.paymentError=o.payload.message)});let t="",a="";this.activeChannels=this.activeChannels.sort((o,s)=>(t=o.remote_alias?o.remote_alias.toLowerCase():o.chan_id?o.chan_id.toLowerCase():"",a=s.remote_alias?s.remote_alias.toLowerCase():s.chan_id?s.chan_id.toLowerCase():"",ta?1:0)),this.selectedChannelCtrl.valueChanges.pipe((0,_.R)(this.unSubs[3])).subscribe(o=>{"string"==typeof o&&(this.filteredMinAmtActvChannels=this.filterChannels())})}filterChannels(){return this.activeChannels.filter(t=>0===(t.remote_alias?t.remote_alias.toLowerCase():t.chan_id?t.chan_id.toLowerCase():"").indexOf(this.selectedChannelCtrl.value?this.selectedChannelCtrl.value.toLowerCase():"")&&t.local_balance>=+(this.paymentDecoded.num_satoshis?this.paymentDecoded.num_satoshis:0))}displayFn(t){return t&&t.remote_alias?t.remote_alias:t&&t.chan_id?t.chan_id:""}onSelectedChannelChanged(){if(this.selectedChannelCtrl.value&&this.selectedChannelCtrl.value.length>0&&"string"==typeof this.selectedChannelCtrl.value){const t=this.activeChannels.filter(a=>{const o=a.remote_alias?a.remote_alias.toLowerCase():a.chan_id?a.chan_id.toLowerCase():"";return o.length===this.selectedChannelCtrl.value.length&&0===o.indexOf(this.selectedChannelCtrl.value?this.selectedChannelCtrl.value.toLowerCase():"")});t&&t.length>0?(this.selectedChannelCtrl.setValue(t[0]),this.selectedChannelCtrl.setErrors(null)):this.selectedChannelCtrl.setErrors({notfound:!0})}}onSendPayment(){if(this.selectedChannelCtrl.value&&"string"==typeof this.selectedChannelCtrl.value&&this.onSelectedChannelChanged(),!this.paymentRequest||this.zeroAmtInvoice&&(!this.paymentAmount||this.paymentAmount<=0)||"string"==typeof this.selectedChannelCtrl.value)return!0;this.paymentDecoded.timestamp?this.sendPayment():this.onPaymentRequestEntry(this.paymentRequest)}sendPayment(){if(this.selFeeLimitType!==this.feeLimitTypes[0]&&!this.feeLimit)return!0;this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis&&(this.paymentDecoded.num_satoshis=(+this.paymentDecoded.num_msat/1e3).toString()),this.paymentDecoded.num_satoshis&&""!==this.paymentDecoded.num_satoshis&&"0"!==this.paymentDecoded.num_satoshis?(this.zeroAmtInvoice=!1,this.store.dispatch((0,y.oV)({payload:{uiMessage:l.m6.SEND_PAYMENT,paymentReq:this.paymentRequest,outgoingChannel:this.selectedChannelCtrl.value,feeLimitType:this.selFeeLimitType.id,feeLimit:this.feeLimit,fromDialog:!0}}))):(this.zeroAmtInvoice=!0,this.paymentDecoded.num_satoshis=this.paymentAmount,this.store.dispatch((0,y.oV)({payload:{uiMessage:l.m6.SEND_PAYMENT,paymentReq:this.paymentRequest,paymentAmount:this.paymentAmount,outgoingChannel:this.selectedChannelCtrl.value,feeLimitType:this.selFeeLimitType.id,feeLimit:this.feeLimit,fromDialog:!0}})))}onAmountChange(t){delete this.paymentDecoded.num_satoshis}onPaymentRequestEntry(t){this.paymentRequest=t,this.paymentAmount=null,this.paymentError="",this.paymentDecodedHint="",this.zeroAmtInvoice=!1,this.paymentRequest&&this.paymentRequest.length>100&&(this.paymentReq.control.setErrors(null),this.zeroAmtInvoice=!1,this.dataService.decodePayment(this.paymentRequest,!0).pipe((0,G.q)(1)).subscribe({next:a=>{this.paymentDecoded=a,this.selectedChannelCtrl.setValue(null),this.onAdvancedPanelToggle(!0,!0),this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis&&(this.paymentDecoded.num_satoshis=(+this.paymentDecoded.num_msat/1e3).toString()),this.paymentDecoded.num_satoshis&&""!==this.paymentDecoded.num_satoshis&&"0"!==this.paymentDecoded.num_satoshis?(this.filteredMinAmtActvChannels=this.filterChannels(),this.filteredMinAmtActvChannels.length&&this.filteredMinAmtActvChannels.length>0?this.selectedChannelCtrl.enable():this.selectedChannelCtrl.disable(),this.zeroAmtInvoice=!1,this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.num_satoshis,l.NT.SATS,l.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,_.R)(this.unSubs[4])).subscribe({next:o=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis)+" Sats ("+o.symbol+" "+this.decimalPipe.transform(o.OTHER?o.OTHER:0,l.Xz.OTHER)+") | Memo: "+(this.paymentDecoded.description?this.paymentDecoded.description:"None")},error:o=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis)+" Sats | Memo: "+(this.paymentDecoded.description?this.paymentDecoded.description:"None")+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis)+" Sats | Memo: "+(this.paymentDecoded.description?this.paymentDecoded.description:"None")):(this.zeroAmtInvoice=!0,this.filteredMinAmtActvChannels=this.activeChannels,this.filteredMinAmtActvChannels.length&&this.filteredMinAmtActvChannels.length>0?this.selectedChannelCtrl.enable():this.selectedChannelCtrl.disable(),this.paymentDecodedHint="Memo: "+(this.paymentDecoded.description?this.paymentDecoded.description:"None"))},error:a=>{this.logger.error(a),this.paymentDecodedHint="ERROR: "+a.message,this.paymentReq.control.setErrors({decodeError:!0})}}))}onAdvancedPanelToggle(t,a){if(t&&!a){const o=this.selectedChannelCtrl.value&&this.selectedChannelCtrl.value.remote_alias?this.selectedChannelCtrl.value.remote_alias:this.selectedChannelCtrl.value&&this.selectedChannelCtrl.value.chan_id?this.selectedChannelCtrl.value.chan_id:"";this.advancedTitle="Advanced Options | "+this.selFeeLimitType.name+("none"===this.selFeeLimitType.id?"":": "+this.feeLimit)+(""!==o?" | First Outgoing Channel: "+o:"")}else this.advancedTitle="Advanced Options"}resetData(){this.paymentDecoded={},this.paymentRequest="",this.selectedChannelCtrl.setValue(null),this.filteredMinAmtActvChannels=this.activeChannels,this.filteredMinAmtActvChannels.length&&this.filteredMinAmtActvChannels.length>0?this.selectedChannelCtrl.enable():this.selectedChannelCtrl.disable(),this.feeLimit=null,this.selFeeLimitType=l.Vc[0],this.advancedTitle="Advanced Options",this.zeroAmtInvoice=!1,this.paymentReq.control.setErrors(null),this.paymentError="",this.paymentDecodedHint=""}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(w.yh),e.Y36(F.mQ),e.Y36(M.v),e.Y36(m.JJ),e.Y36(z.eX),e.Y36(j.D))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-lightning-send-payments"]],viewQuery:function(t,a){if(1&t&&e.Gf(cn,5),2&t){let o;e.iGM(o=e.CRH())&&(a.paymentReq=o.first)}},decls:43,vars:21,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayoutAlign","space-between stretch","fxLayout","column"],["sendPaymentForm","ngForm"],["autoFocus","","matInput","","placeholder","Payment Request","name","paymentRequest","rows","4","tabindex","1","required","",3,"ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxFlex","100","expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxFlex","100","fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["fxFlex","30","fxLayoutAlign","start end"],["tabindex","5","Placeholder","Fee Limits",3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","26"],["matInput","","type","number","name","feeLmt","required","","tabindex","6",3,"ngModel","placeholder","step","min","disabled","ngModelChange"],["fLmt","ngModel"],["fxFlex","40","fxLayoutAlign","start end"],["type","text","placeholder","First Outgoing Channel","aria-label","First Outgoing Channel","matInput","","tabindex","7",3,"formControl","matAutocomplete"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-button","","id","sendBtn","color","primary","tabindex","3",3,"click"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","required","",3,"ngModel","ngModelChange","change"],["paymentAmt","ngModel"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(t,a){if(1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e.TgZ(4,"span",4),e._uU(5,"Send Payment"),e.qZA(),e.qZA(),e.TgZ(6,"button",5),e._uU(7,"X"),e.qZA(),e.qZA(),e.TgZ(8,"mat-card-content",6),e.TgZ(9,"form",7,8),e.TgZ(11,"mat-form-field",1),e.TgZ(12,"textarea",9,10),e.NdJ("ngModelChange",function(s){return a.onPaymentRequestEntry(s)})("matTextareaAutosize",function(){return!0}),e.qZA(),e.YNc(14,un,2,1,"mat-hint",11),e.YNc(15,pn,2,0,"mat-error",11),e.YNc(16,mn,2,1,"mat-error",11),e.qZA(),e.YNc(17,_n,6,2,"mat-form-field",12),e.TgZ(18,"mat-expansion-panel",13),e.NdJ("closed",function(){return a.onAdvancedPanelToggle(!0,!1)})("opened",function(){return a.onAdvancedPanelToggle(!1,!1)}),e.TgZ(19,"mat-expansion-panel-header"),e.TgZ(20,"mat-panel-title"),e.TgZ(21,"span"),e._uU(22),e.qZA(),e.qZA(),e.qZA(),e.TgZ(23,"div",14),e.TgZ(24,"mat-form-field",15),e.TgZ(25,"mat-select",16),e.NdJ("valueChange",function(s){return a.selFeeLimitType=s}),e.YNc(26,hn,2,2,"mat-option",17),e.qZA(),e.qZA(),e.TgZ(27,"mat-form-field",18),e.TgZ(28,"input",19,20),e.NdJ("ngModelChange",function(s){return a.feeLimit=s}),e.qZA(),e.YNc(30,gn,2,1,"mat-error",11),e.qZA(),e.TgZ(31,"mat-form-field",21),e._UZ(32,"input",22),e.TgZ(33,"mat-autocomplete",23,24),e.NdJ("optionSelected",function(){return a.onSelectedChannelChanged()}),e.YNc(35,fn,2,2,"mat-option",17),e.qZA(),e.YNc(36,Cn,2,0,"mat-error",11),e.qZA(),e.qZA(),e.qZA(),e.YNc(37,Tn,3,2,"div",25),e.TgZ(38,"div",26),e.TgZ(39,"button",27),e.NdJ("click",function(){return a.resetData()}),e._uU(40,"Clear Fields"),e.qZA(),e.TgZ(41,"button",28),e.NdJ("click",function(){return a.onSendPayment()}),e._uU(42,"Send Payment"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t){const o=e.MAs(13),s=e.MAs(34);e.xp6(6),e.Q6J("mat-dialog-close",!1),e.xp6(6),e.Q6J("ngModel",a.paymentRequest),e.xp6(2),e.Q6J("ngIf",a.paymentRequest&&""!==a.paymentDecodedHint),e.xp6(1),e.Q6J("ngIf",!a.paymentRequest),e.xp6(1),e.Q6J("ngIf",null==o.errors?null:o.errors.decodeError),e.xp6(1),e.Q6J("ngIf",a.zeroAmtInvoice),e.xp6(5),e.Oqu(a.advancedTitle),e.xp6(3),e.Q6J("value",a.selFeeLimitType),e.xp6(1),e.Q6J("ngForOf",a.feeLimitTypes),e.xp6(2),e.Q6J("ngModel",a.feeLimit)("placeholder",null==a.selFeeLimitType?null:a.selFeeLimitType.placeholder)("step",1)("min",0)("disabled",a.selFeeLimitType===a.feeLimitTypes[0]),e.xp6(2),e.Q6J("ngIf",a.selFeeLimitType!==a.feeLimitTypes[0]&&!a.feeLimit),e.xp6(2),e.Q6J("formControl",a.selectedChannelCtrl)("matAutocomplete",s),e.xp6(1),e.Q6J("displayWith",a.displayFn),e.xp6(2),e.Q6J("ngForOf",a.filteredMinAmtActvChannels),e.xp6(1),e.Q6J("ngIf",null==a.selectedChannelCtrl.errors?null:a.selectedChannelCtrl.errors.notfound),e.xp6(1),e.Q6J("ngIf",""!==a.paymentError)}},directives:[d.xw,d.yH,b.dk,d.Wh,q.lW,P.ZT,b.dn,c._Y,c.JL,c.F,f.KE,D.Nt,c.Fj,V.h,c.Q7,c.JJ,c.On,m.O5,H.ib,H.yz,H.yK,N.gD,m.sg,c.wV,c.qQ,$.q,ne.ZL,c.oH,ne.XC,f.bx,f.TO,Q.ey,R.BN],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-payment_hash[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();var ie=h(3093),K=h(711);const Zn=["sendPaymentForm"];function bn(n,i){if(1&n&&(e.TgZ(0,"mat-hint"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.paymentDecodedHint)}}function An(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Payment request is required."),e.qZA())}function vn(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"form",4,5),e.TgZ(2,"mat-form-field",6),e.TgZ(3,"textarea",7,8),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw().onPaymentRequestEntry(o)})("matTextareaAutosize",function(){return!0}),e.qZA(),e.YNc(5,bn,2,1,"mat-hint",9),e.YNc(6,An,2,0,"mat-error",9),e.qZA(),e.TgZ(7,"div",10),e.TgZ(8,"button",11),e.NdJ("click",function(){return e.CHM(t),e.oxw().resetData()}),e._uU(9,"Clear Field"),e.qZA(),e.TgZ(10,"button",12),e.NdJ("click",function(){return e.CHM(t),e.oxw().onSendPayment()}),e._uU(11,"Send Payment"),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(3),e.Q6J("ngModel",t.paymentRequest),e.xp6(2),e.Q6J("ngIf",t.paymentRequest&&""!==t.paymentDecodedHint),e.xp6(1),e.Q6J("ngIf",!t.paymentRequest)}}function wn(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",13),e.TgZ(1,"button",14),e.NdJ("click",function(){return e.CHM(t),e.oxw().openSendPaymentModal()}),e._uU(2,"Send Payment"),e.qZA(),e.qZA()}}function qn(n,i){1&n&&e._UZ(0,"mat-progress-bar",52)}function Sn(n,i){1&n&&(e.TgZ(0,"th",53),e._uU(1,"Creation Date"),e.qZA())}const ae=function(n){return{"mr-0":n}};function Ln(n,i){if(1&n&&e._UZ(0,"span",57),2&n){const t=e.oxw(3);e.Q6J("ngClass",e.VKq(1,ae,t.screenSize===t.screenSizeEnum.XS))}}function kn(n,i){if(1&n&&e._UZ(0,"span",58),2&n){const t=e.oxw(3);e.Q6J("ngClass",e.VKq(1,ae,t.screenSize===t.screenSizeEnum.XS))}}function Fn(n,i){if(1&n&&(e.TgZ(0,"td",54),e.YNc(1,Ln,1,3,"span",55),e.YNc(2,kn,1,3,"span",56),e._uU(3),e.ALo(4,"date"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Q6J("ngIf","SUCCEEDED"===t.status),e.xp6(1),e.Q6J("ngIf","SUCCEEDED"!==t.status),e.xp6(1),e.hij(" ",e.xi3(4,3,1e3*(null==t?null:t.creation_date),"dd/MMM/YYYY HH:mm")," ")}}function Nn(n,i){1&n&&(e.TgZ(0,"th",53),e._uU(1,"Payment Hash"),e.qZA())}const ke=function(n){return{"max-width":n}};function Un(n,i){if(1&n&&(e.TgZ(0,"td",54),e.TgZ(1,"span",59),e.TgZ(2,"span",60),e._uU(3),e.qZA(),e.qZA(),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.xp6(1),e.Q6J("ngStyle",e.VKq(2,ke,a.screenSize===a.screenSizeEnum.XS?"10rem":"30rem")),e.xp6(2),e.Oqu(null==t?null:t.payment_hash)}}function On(n,i){1&n&&(e.TgZ(0,"th",61),e._uU(1,"Fee (Sats)"),e.qZA())}function Rn(n,i){if(1&n&&(e.TgZ(0,"td",54),e.TgZ(1,"span",62),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,null==t?null:t.fee))}}function In(n,i){1&n&&(e.TgZ(0,"th",61),e._uU(1,"Value (Sats)"),e.qZA())}function Dn(n,i){if(1&n&&(e.TgZ(0,"td",54),e.TgZ(1,"span",62),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,null==t?null:t.value))}}function Mn(n,i){1&n&&(e.TgZ(0,"th",61),e._uU(1,"#Hops"),e.qZA())}function Pn(n,i){if(1&n&&(e.TgZ(0,"td",54),e.TgZ(1,"span",62),e._uU(2),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu((null==t||null==t.htlcs[0]||null==t.htlcs[0].route||null==t.htlcs[0].route.hops?null:t.htlcs[0].route.hops.length)||0)}}function Jn(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"th",63),e.TgZ(1,"div",64),e.TgZ(2,"mat-select",65),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",66),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).onDownloadCSV()}),e._uU(5,"Download CSV"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function En(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",67),e.TgZ(1,"button",68),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw(2).onPaymentClick(s)}),e._uU(2,"View Info"),e.qZA(),e.qZA()}}function Qn(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No payment available."),e.qZA())}function Yn(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting payments..."),e.qZA())}function Bn(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(3);e.xp6(1),e.Oqu(t.errorMessage)}}function Hn(n,i){if(1&n&&(e.TgZ(0,"td",69),e.YNc(1,Qn,2,0,"p",9),e.YNc(2,Yn,2,0,"p",9),e.YNc(3,Bn,2,1,"p",9),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.payments&&t.payments.data)||(null==t.payments||null==t.payments.data?null:t.payments.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}function Gn(n,i){if(1&n&&e._UZ(0,"span",57),2&n){const t=e.oxw(3);e.Q6J("ngClass",e.VKq(1,ae,t.screenSize===t.screenSizeEnum.XS))}}function zn(n,i){if(1&n&&e._UZ(0,"span",58),2&n){const t=e.oxw(3);e.Q6J("ngClass",e.VKq(1,ae,t.screenSize===t.screenSizeEnum.XS))}}function Vn(n,i){if(1&n&&e._UZ(0,"span",57),2&n){const t=e.oxw(5);e.Q6J("ngClass",e.VKq(1,ae,t.screenSize===t.screenSizeEnum.XS))}}function Wn(n,i){if(1&n&&e._UZ(0,"span",58),2&n){const t=e.oxw(5);e.Q6J("ngClass",e.VKq(1,ae,t.screenSize===t.screenSizeEnum.XS))}}function Xn(n,i){if(1&n&&(e.TgZ(0,"span",72),e.YNc(1,Vn,1,3,"span",55),e.YNc(2,Wn,1,3,"span",56),e._uU(3),e.ALo(4,"date"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Q6J("ngIf","SUCCEEDED"===t.status),e.xp6(1),e.Q6J("ngIf","SUCCEEDED"!==t.status),e.xp6(1),e.hij(" ",e.xi3(4,3,1e3*t.attempt_time,"dd/MMM/YYYY HH:mm")," ")}}function $n(n,i){if(1&n&&(e.ynx(0),e.YNc(1,Xn,5,6,"span",71),e.BQk()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.htlcs)}}function jn(n,i){if(1&n&&(e.TgZ(0,"td",54),e.TgZ(1,"span",70),e.YNc(2,Gn,1,3,"span",55),e.YNc(3,zn,1,3,"span",56),e._uU(4),e.qZA(),e.YNc(5,$n,2,1,"ng-container",9),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Q6J("ngIf","SUCCEEDED"===t.status),e.xp6(1),e.Q6J("ngIf","SUCCEEDED"!==t.status),e.xp6(1),e.hij(" Total Attempts: ",null==t||null==t.htlcs?null:t.htlcs.length," "),e.xp6(1),e.Q6J("ngIf",t.is_expanded)}}function Kn(n,i){if(1&n&&(e.TgZ(0,"span",70),e._uU(1),e.qZA()),2&n){const t=i.index;e.xp6(1),e.hij(" HTLC ",t+1," ")}}function ea(n,i){if(1&n&&(e.TgZ(0,"span"),e.YNc(1,Kn,2,1,"span",73),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.htlcs)}}function ta(n,i){if(1&n&&(e.TgZ(0,"td",54),e.TgZ(1,"span",59),e.TgZ(2,"span",60),e._uU(3),e.qZA(),e.qZA(),e.YNc(4,ea,2,1,"span",9),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.xp6(1),e.Q6J("ngStyle",e.VKq(3,ke,a.screenSize===a.screenSizeEnum.XS?"10rem":"30rem")),e.xp6(2),e.Oqu(null==t?null:t.payment_hash),e.xp6(1),e.Q6J("ngIf",t.is_expanded)}}function na(n,i){if(1&n&&(e.TgZ(0,"span",74),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",e.xi3(2,1,null==t.route?null:t.route.total_fees,"1.0-0")," ")}}function aa(n,i){if(1&n&&(e.TgZ(0,"span"),e.YNc(1,na,3,4,"span",75),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.htlcs)}}function ia(n,i){if(1&n&&(e.TgZ(0,"td",54),e.TgZ(1,"span",74),e._uU(2),e.ALo(3,"number"),e.qZA(),e.YNc(4,aa,2,1,"span",9),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.xi3(3,2,null==t?null:t.fee,"1.0-0")),e.xp6(2),e.Q6J("ngIf",t.is_expanded)}}function oa(n,i){if(1&n&&(e.TgZ(0,"span",74),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",e.xi3(2,1,null==t.route?null:t.route.total_amt,"1.0-0")," ")}}function sa(n,i){if(1&n&&(e.TgZ(0,"span"),e.YNc(1,oa,3,4,"span",75),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.htlcs)}}function la(n,i){if(1&n&&(e.TgZ(0,"td",54),e.TgZ(1,"span",74),e._uU(2),e.ALo(3,"number"),e.qZA(),e.YNc(4,sa,2,1,"span",9),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.xi3(3,2,null==t?null:t.value,"1.0-0")),e.xp6(2),e.Q6J("ngIf",t.is_expanded)}}function ra(n,i){if(1&n&&(e.TgZ(0,"span",74),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",e.xi3(2,1,(null==t.route||null==t.route.hops?null:t.route.hops.length)||0,"1.0-0")," ")}}function ca(n,i){if(1&n&&(e.TgZ(0,"span"),e.YNc(1,ra,3,4,"span",75),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.htlcs)}}function ua(n,i){if(1&n&&(e.TgZ(0,"td",54),e.TgZ(1,"span",74),e._uU(2,"-"),e.qZA(),e.YNc(3,ca,2,1,"span",9),e.qZA()),2&n){const t=i.$implicit;e.xp6(3),e.Q6J("ngIf",t.is_expanded)}}function pa(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",62),e.TgZ(1,"button",79),e.NdJ("click",function(){const s=e.CHM(t).$implicit,u=e.oxw(2).$implicit;return e.oxw(2).onHTLCClick(s,u)}),e._uU(2),e.qZA(),e.qZA()}if(2&n){const t=i.index;e.xp6(2),e.hij("View ",t+1,"")}}function ma(n,i){if(1&n&&(e.TgZ(0,"div"),e.YNc(1,pa,3,1,"div",78),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.htlcs)}}function da(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",76),e.TgZ(1,"span",62),e.TgZ(2,"button",77),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return s.is_expanded=!s.is_expanded}),e._uU(3),e.qZA(),e.qZA(),e.YNc(4,ma,2,1,"div",9),e.qZA()}if(2&n){const t=i.$implicit;e.xp6(3),e.Oqu(t.is_expanded?"Hide":"Show"),e.xp6(1),e.Q6J("ngIf",t.is_expanded)}}function _a(n,i){1&n&&e._UZ(0,"tr",80)}const ha=function(n){return{"display-none":n}};function ga(n,i){if(1&n&&e._UZ(0,"tr",81),2&n){const t=e.oxw(2);e.Q6J("ngClass",e.VKq(1,ha,(null==t.payments?null:t.payments.data)&&(null==t.payments||null==t.payments.data?null:t.payments.data.length)>0))}}function fa(n,i){1&n&&e._UZ(0,"tr",82)}function Ca(n,i){1&n&&e._UZ(0,"tr",80)}const xa=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},Ta=function(){return["no_payment"]};function ya(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",15),e.TgZ(1,"div",16),e.TgZ(2,"div",17),e._UZ(3,"fa-icon",18),e.TgZ(4,"span",19),e._uU(5,"Payments History"),e.qZA(),e.qZA(),e.TgZ(6,"mat-form-field",20),e.TgZ(7,"input",21),e.NdJ("keyup",function(){return e.CHM(t),e.oxw().applyFilter()})("ngModelChange",function(o){return e.CHM(t),e.oxw().selFilter=o}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(8,"div",22),e.TgZ(9,"div",23),e.YNc(10,qn,1,0,"mat-progress-bar",24),e.TgZ(11,"table",25,26),e.ynx(13,27),e.YNc(14,Sn,2,0,"th",28),e.YNc(15,Fn,5,6,"td",29),e.BQk(),e.ynx(16,30),e.YNc(17,Nn,2,0,"th",28),e.YNc(18,Un,4,4,"td",29),e.BQk(),e.ynx(19,31),e.YNc(20,On,2,0,"th",32),e.YNc(21,Rn,4,3,"td",29),e.BQk(),e.ynx(22,33),e.YNc(23,In,2,0,"th",32),e.YNc(24,Dn,4,3,"td",29),e.BQk(),e.ynx(25,34),e.YNc(26,Mn,2,0,"th",32),e.YNc(27,Pn,3,1,"td",29),e.BQk(),e.ynx(28,35),e.YNc(29,Jn,6,0,"th",36),e.YNc(30,En,3,0,"td",37),e.BQk(),e.ynx(31,38),e.YNc(32,Hn,4,3,"td",39),e.BQk(),e.ynx(33,40),e.YNc(34,jn,6,4,"td",29),e.BQk(),e.ynx(35,41),e.YNc(36,ta,5,5,"td",29),e.BQk(),e.ynx(37,42),e.YNc(38,ia,5,5,"td",29),e.BQk(),e.ynx(39,43),e.YNc(40,la,5,5,"td",29),e.BQk(),e.ynx(41,44),e.YNc(42,ua,4,1,"td",29),e.BQk(),e.ynx(43,45),e.YNc(44,da,5,2,"td",46),e.BQk(),e.YNc(45,_a,1,0,"tr",47),e.YNc(46,ga,1,3,"tr",48),e.YNc(47,fa,1,0,"tr",49),e.YNc(48,Ca,1,0,"tr",50),e.qZA(),e.TgZ(49,"mat-paginator",51),e.NdJ("page",function(o){return e.CHM(t),e.oxw().onPageChange(o)}),e.qZA(),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(3),e.Q6J("icon",t.faHistory),e.xp6(4),e.Q6J("ngModel",t.selFilter),e.xp6(3),e.Q6J("ngIf",t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",t.payments)("ngClass",e.VKq(15,xa,""!==t.errorMessage)),e.xp6(34),e.Q6J("matRowDefColumns",t.htlcColumns)("matRowDefWhen",t.is_group),e.xp6(1),e.Q6J("matFooterRowDef",e.DdM(17,Ta)),e.xp6(1),e.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns),e.xp6(1),e.Q6J("length",t.totalPayments)("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let Fe=(()=>{class n{constructor(t,a,o,s,u,g,U,T){this.logger=t,this.commonService=a,this.dataService=o,this.store=s,this.rtlEffects=u,this.lndEffects=g,this.decimalPipe=U,this.datePipe=T,this.calledFrom="transactions",this.faHistory=x.qO$,this.newlyAddedPayment="",this.selNode={},this.information={},this.peers=[],this.totalPayments=100,this.paymentJSONArr=[],this.displayedColumns=[],this.htlcColumns=[],this.paymentDecoded={},this.paymentRequest="",this.paymentDecodedHint="",this.flgSticky=!1,this.firstOffset=-1,this.lastOffset=-1,this.selFilter="",this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["creation_date","fee","actions"],this.htlcColumns=["groupTotal","groupFee","groupAction"]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["creation_date","fee","value","hops","actions"],this.htlcColumns=["groupTotal","groupFee","groupValue","groupHops","groupAction"]):(this.flgSticky=!0,this.displayedColumns=["creation_date","payment_hash","fee","value","hops","actions"],this.htlcColumns=["groupTotal","groupHash","groupFee","groupValue","groupHops","groupAction"])}ngOnInit(){this.store.select(C.$k).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(C.Q5).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.information=t}),this.store.select(C.Wi).pipe((0,_.R)(this.unSubs[2])).subscribe(t=>{this.peers=t.peers}),this.store.select(C.l5).pipe((0,_.R)(this.unSubs[3])).subscribe(t=>{this.totalPayments=t.allLightningTransactions.listPaymentsAll&&t.allLightningTransactions.listPaymentsAll.payments&&t.allLightningTransactions.listPaymentsAll.payments.length?t.allLightningTransactions.listPaymentsAll.payments.length:0}),this.store.select(C.PP).pipe((0,_.R)(this.unSubs[4])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.paymentJSONArr=t.listPayments.payments||[],this.firstOffset=+t.listPayments.first_index_offset,this.lastOffset=+t.listPayments.last_index_offset,this.paymentJSONArr&&this.paymentJSONArr.length>0&&this.sort&&this.paginator&&this.loadPaymentsTable(this.paymentJSONArr),this.logger.info(t)})}ngAfterViewInit(){this.paymentJSONArr&&this.paymentJSONArr.length>0&&this.loadPaymentsTable(this.paymentJSONArr)}onSendPayment(){if(!this.paymentRequest)return!0;this.paymentDecoded.timestamp?this.sendPayment():this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,G.q)(1)).subscribe(t=>{this.paymentDecoded=t,this.paymentDecoded.timestamp?(this.paymentDecoded.num_satoshis=this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis?(+this.paymentDecoded.num_msat/1e3).toString():"0",this.sendPayment()):this.resetData()})}sendPayment(){this.newlyAddedPayment=this.paymentDecoded.payment_hash,this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis&&(this.paymentDecoded.num_satoshis=(+this.paymentDecoded.num_msat/1e3).toString()),this.paymentDecoded.num_satoshis&&""!==this.paymentDecoded.num_satoshis&&"0"!==this.paymentDecoded.num_satoshis?(this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Confirm Send Payment",noBtnText:"Cancel",yesBtnText:"Send Payment",message:[[{key:"payment_hash",value:this.paymentDecoded.payment_hash,title:"Payment Hash",width:100}],[{key:"destination",value:this.paymentDecoded.destination,title:"Destination",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"timestamp",value:this.paymentDecoded.timestamp,title:"Creation Date",width:50,type:l.Gi.DATE_TIME},{key:"num_satoshis",value:this.paymentDecoded.num_satoshis,title:"Amount (Sats)",width:50,type:l.Gi.NUMBER}],[{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:50,type:l.Gi.NUMBER},{key:"cltv_expiry",value:this.paymentDecoded.cltv_expiry,title:"CLTV Expiry",width:50}]]}}})),this.rtlEffects.closeConfirm.pipe((0,G.q)(1)).subscribe(a=>{a&&(this.store.dispatch((0,y.oV)({payload:{uiMessage:l.m6.SEND_PAYMENT,paymentReq:this.paymentRequest,fromDialog:!1}})),this.resetData())})):(this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Enter Amount and Confirm Send Payment",titleMessage:"It is a zero amount invoice. Enter the amount (Sats) to pay.",message:[[{key:"payment_hash",value:this.paymentDecoded.payment_hash,title:"Payment Hash",width:100}],[{key:"destination",value:this.paymentDecoded.destination,title:"Destination",width:100}],[{key:"description",value:this.paymentDecoded.description,title:"Description",width:100}],[{key:"timestamp",value:this.paymentDecoded.timestamp,title:"Creation Date",width:40,type:l.Gi.DATE_TIME},{key:"expiry",value:this.paymentDecoded.expiry,title:"Expiry",width:30,type:l.Gi.NUMBER},{key:"cltv_expiry",value:this.paymentDecoded.cltv_expiry,title:"CLTV Expiry",width:30}]],noBtnText:"Cancel",yesBtnText:"Send Payment",flgShowInput:!0,getInputs:[{placeholder:"Amount (Sats)",inputType:l.Gi.NUMBER.toLowerCase(),inputValue:"",width:30}]}}})),this.rtlEffects.closeConfirm.pipe((0,G.q)(1)).subscribe(o=>{o&&(this.paymentDecoded.num_satoshis=o[0].inputValue,this.store.dispatch((0,y.oV)({payload:{uiMessage:l.m6.SEND_PAYMENT,paymentReq:this.paymentRequest,paymentAmount:o[0].inputValue,fromDialog:!1}})),this.resetData())}))}openSendPaymentModal(){this.store.dispatch((0,v.qR)({payload:{data:{component:yn}}}))}onPaymentRequestEntry(t){this.paymentRequest=t,this.paymentDecodedHint="",this.paymentRequest&&this.paymentRequest.length>100&&this.dataService.decodePayment(this.paymentRequest,!1).pipe((0,G.q)(1)).subscribe(a=>{this.paymentDecoded=a,this.paymentDecoded.num_msat&&!this.paymentDecoded.num_satoshis&&(this.paymentDecoded.num_satoshis=(+this.paymentDecoded.num_msat/1e3).toString()),this.paymentDecoded.num_satoshis?this.selNode.fiatConversion?this.commonService.convertCurrency(+this.paymentDecoded.num_satoshis,l.NT.SATS,l.NT.OTHER,this.selNode.currencyUnits[2],this.selNode.fiatConversion).pipe((0,_.R)(this.unSubs[5])).subscribe({next:o=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis?this.paymentDecoded.num_satoshis:0)+" Sats ("+o.symbol+this.decimalPipe.transform(o.OTHER?o.OTHER:0,l.Xz.OTHER)+") | Memo: "+this.paymentDecoded.description},error:o=>{this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis?this.paymentDecoded.num_satoshis:0)+" Sats | Memo: "+this.paymentDecoded.description+". Unable to convert currency."}}):this.paymentDecodedHint="Sending: "+this.decimalPipe.transform(this.paymentDecoded.num_satoshis?this.paymentDecoded.num_satoshis:0)+" Sats | Memo: "+this.paymentDecoded.description:this.paymentDecodedHint="Zero Amount Invoice | Memo: "+this.paymentDecoded.description})}onPageChange(t){let a=!0,o=this.lastOffset,s=t.pageSize;0===t.pageIndex?(a=!0,o=0):t.pageIndext.previousPageIndex&&t.length>(t.pageIndex+1)*t.pageSize?(a=!0,o=this.firstOffset):t.length<=(t.pageIndex+1)*t.pageSize&&(a=!1,o=0,s=t.length-t.pageIndex*t.pageSize),this.store.dispatch((0,y.cQ)({payload:{max_payments:s,index_offset:o,reversed:a}}))}is_group(t,a){return a.htlcs&&a.htlcs.length>1}resetData(){this.paymentDecoded={},this.paymentRequest="",this.form.resetForm()}getHopDetails(t){const a=this;return t.reduce((o,s)=>{const u=a.peers.find(g=>g.pub_key===s.pub_key);return u&&u.alias?o.push("
Channel: "+u.alias.padEnd(20)+"			Amount (Sats): "+a.decimalPipe.transform(s.amt_to_forward)+"
"):a.dataService.getAliasesFromPubkeys(s.pub_key,!1).pipe((0,_.R)(a.unSubs[6])).subscribe(g=>{o.push("
Channel: "+(g.node&&g.node.alias?g.node.alias.padEnd(20):s.pub_key.substring(0,17)+"...")+"			Amount (Sats): "+a.decimalPipe.transform(s.amt_to_forward)+"
")}),o},[])}onHTLCClick(t,a){a.payment_request&&""!==a.payment_request.trim()?this.dataService.decodePayment(a.payment_request,!1).pipe((0,G.q)(1)).subscribe({next:o=>{this.showHTLCView(t,a,o)},error:o=>{this.showHTLCView(t,a,null)}}):this.showHTLCView(t,a,null)}showHTLCView(t,a,o){const s=[[{key:"payment_hash",value:a.payment_hash,title:"Payment Hash",width:100,type:l.Gi.STRING}],[{key:"preimage",value:t.preimage,title:"Preimage",width:100,type:l.Gi.STRING}],[{key:"payment_request",value:a.payment_request,title:"Payment Request",width:100,type:l.Gi.STRING}],[{key:"status",value:t.status,title:"Status",width:33,type:l.Gi.STRING},{key:"attempt_time_ns",value:+t.attempt_time_ns/1e9,title:"Attempt Time",width:33,type:l.Gi.DATE_TIME},{key:"resolve_time_ns",value:+t.resolve_time_ns/1e9,title:"Resolve Time",width:34,type:l.Gi.DATE_TIME}],[{key:"total_amt",value:t.route.total_amt,title:"Amount (Sats)",width:33,type:l.Gi.NUMBER},{key:"total_fees",value:t.route.total_fees,title:"Fee (Sats)",width:33,type:l.Gi.NUMBER},{key:"total_time_lock",value:t.route.total_time_lock,title:"Total Time Lock",width:34,type:l.Gi.NUMBER}],[{key:"hops",value:this.getHopDetails(t.route.hops),title:"Hops",width:100,type:l.Gi.ARRAY}]];o&&o.description&&""!==o.description&&s.splice(3,0,[{key:"description",value:o.description,title:"Description",width:100,type:l.Gi.STRING}]),this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"HTLC Information",message:s,scrollable:t.route&&t.route.hops&&t.route.hops.length>1}}}))}onPaymentClick(t){if(t.htlcs&&t.htlcs[0]&&t.htlcs[0].route&&t.htlcs[0].route.hops&&t.htlcs[0].route.hops.length>0){const a=t.htlcs[0].route.hops.reduce((o,s)=>""===o?s.pub_key:o+","+s.pub_key,"");this.dataService.getAliasesFromPubkeys(a,!0).pipe((0,_.R)(this.unSubs[7])).subscribe(o=>{this.showPaymentView(t,o.reduce((s,u)=>""===s?u:s+"\n"+u,""))})}else this.showPaymentView(t,"")}showPaymentView(t,a){const o=[[{key:"payment_hash",value:t.payment_hash,title:"Payment Hash",width:100,type:l.Gi.STRING}],[{key:"payment_preimage",value:t.payment_preimage,title:"Payment Preimage",width:100,type:l.Gi.STRING}],[{key:"payment_request",value:t.payment_request,title:"Payment Request",width:100,type:l.Gi.STRING}],[{key:"status",value:t.status,title:"Status",width:50,type:l.Gi.STRING},{key:"creation_date",value:t.creation_date,title:"Creation Date",width:50,type:l.Gi.DATE_TIME}],[{key:"value_msat",value:t.value_msat,title:"Value (mSats)",width:50,type:l.Gi.NUMBER},{key:"fee_msat",value:t.fee_msat,title:"Fee (mSats)",width:50,type:l.Gi.NUMBER}],[{key:"path",value:a,title:"Path",width:100,type:l.Gi.STRING}]];t.payment_request&&""!==t.payment_request.trim()?this.dataService.decodePayment(t.payment_request,!1).pipe((0,G.q)(1)).subscribe(s=>{s&&s.description&&""!==s.description&&o.splice(3,0,[{key:"description",value:s.description,title:"Description",width:100,type:l.Gi.STRING}]),this.openPaymentAlert(o,t.htlcs&&t.htlcs[0]&&t.htlcs[0].route&&t.htlcs[0].route.hops&&t.htlcs[0].route.hops.length>1)}):this.openPaymentAlert(o,!1)}openPaymentAlert(t,a){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Payment Information",message:t,scrollable:a}}}))}applyFilter(){this.payments.filter=this.selFilter.trim().toLowerCase()}loadPaymentsTable(t){this.payments=new r.by(t?[...t]:[]),this.payments.sortingDataAccessor=(a,o)=>"hops"===o?a.htlcs.length&&a.htlcs[0]&&a.htlcs[0].route&&a.htlcs[0].route.hops&&a.htlcs[0].route.hops.length?a.htlcs[0].route.hops.length:0:a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.payments.sort=this.sort,this.payments.filterPredicate=(a,o)=>((a.creation_date?this.datePipe.transform(new Date(1e3*a.creation_date),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(a).toLowerCase()).includes(o),this.applyFilter()}onDownloadCSV(){if(this.payments.data&&this.payments.data.length>0){const t=JSON.parse(JSON.stringify(this.payments.data)),a=t.reduce((o,s)=>(s.payment_request&&""!==s.payment_request.trim()&&(o=""===o?s.payment_request:o+","+s.payment_request),o),"");this.dataService.decodePayments(a).pipe((0,_.R)(this.unSubs[8])).subscribe(o=>{let s=0;o.forEach((g,U)=>{if(g){for(;t[U+s].payment_hash!==g.payment_hash;)s+=1;t[U+s].description=g.description}});const u=t.reduce((g,U)=>g.concat(U),[]);this.commonService.downloadFile(u,"Payments")})}}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(M.v),e.Y36(j.D),e.Y36(w.yh),e.Y36(ie.V),e.Y36(K.l),e.Y36(m.JJ),e.Y36(m.uU))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-lightning-payments"]],viewQuery:function(t,a){if(1&t&&(e.Gf(Zn,5),e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.form=o.first),e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},inputs:{calledFrom:"calledFrom"},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Payments")}])],decls:4,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayoutAlign","space-between stretch","fxLayout","row wrap",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",4,"ngIf"],["fxLayoutAlign","space-between stretch","fxLayout","row wrap"],["sendPaymentForm","ngForm"],["fxFlex","100"],["matInput","","placeholder","Payment Request","name","paymentRequest","tabindex","1","required","",3,"perfectScrollbar","ngModel","ngModelChange","matTextareaAutosize"],["paymentReq","ngModel"],[4,"ngIf"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["fxLayout","row"],["mat-flat-button","","color","primary","tabindex","4",3,"click"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","creation_date"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","payment_hash"],["matColumnDef","fee"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","value"],["matColumnDef","hops"],["matColumnDef","actions"],["mat-header-cell","","class","px-2",4,"matHeaderCellDef"],["mat-cell","","class","px-2","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_payment"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["matColumnDef","groupTotal"],["matColumnDef","groupHash"],["matColumnDef","groupFee"],["matColumnDef","groupValue"],["matColumnDef","groupHops"],["matColumnDef","groupAction"],["mat-cell","","class","px-2",4,"matCellDef"],["mat-row","",4,"matRowDef","matRowDefColumns","matRowDefWhen"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"length","pageSize","pageSizeOptions","showFirstLastButtons","page"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["class","dot green","matTooltip","Succeeded","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Failed","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["matTooltip","Succeeded","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Failed","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["fxLayout","row",1,"ellipsis-parent",3,"ngStyle"],[1,"ellipsis-child"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-2"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-2"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],["fxLayoutAlign","start center",1,"htlc-row-span"],["fxLayoutAlign","start center","class","htlc-row-span pl-3",4,"ngFor","ngForOf"],["fxLayoutAlign","start center",1,"htlc-row-span","pl-3"],["fxLayoutAlign","start center","class","htlc-row-span",4,"ngFor","ngForOf"],["fxLayoutAlign","end center",1,"htlc-row-span"],["fxLayoutAlign","end center","class","htlc-row-span",4,"ngFor","ngForOf"],["mat-cell","",1,"px-2"],["mat-flat-button","","color","primary","type","button","tabindex","5",1,"btn-htlc-expand",3,"click"],["fxLayoutAlign","end center",4,"ngFor","ngForOf"],["mat-stroked-button","","color","primary","type","button","tabindex","6",1,"btn-htlc-info",3,"click"],["mat-row",""],["mat-footer-row","",3,"ngClass"],["mat-header-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.YNc(1,vn,12,3,"form",1),e.YNc(2,wn,3,0,"div",2),e.YNc(3,ya,50,18,"div",3),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngIf","home"===a.calledFrom),e.xp6(1),e.Q6J("ngIf","transactions"===a.calledFrom),e.xp6(1),e.Q6J("ngIf","transactions"===a.calledFrom))},directives:[d.xw,d.yH,d.Wh,m.O5,c._Y,c.JL,c.F,f.KE,D.Nt,c.Fj,c.Q7,Y.$V,c.JJ,c.On,q.lW,f.bx,f.TO,R.BN,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.nj,r.Ke,r.as,S.NW,J.pW,r.ge,A.nU,r.ev,W.gM,m.PC,L.Zl,N.gD,N.$L,Q.ey,r.yh,m.sg,r.Gk,r.Q2,r.XQ],pipes:[m.uU,m.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-payment_hash[_ngcontent-%COMP%]{flex:0 0 20%;width:20%}.mat-column-payment_hash[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-groupAction[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-htlc-expand[_ngcontent-%COMP%]{width:9rem}.mat-column-groupAction[_ngcontent-%COMP%] .btn-htlc-info[_ngcontent-%COMP%]{margin-top:.5rem;width:9rem}.htlc-row-span[_ngcontent-%COMP%]{min-height:4.2rem;place-content:center flex-start;align-items:center}.mat-column-groupTotal[_ngcontent-%COMP%]{min-width:17rem}"]}),n})();function Za(n,i){if(1&n&&(e.TgZ(0,"button",26),e.TgZ(1,"mat-icon"),e._uU(2,"more_vert"),e.qZA(),e.qZA()),2&n){e.oxw();const t=e.MAs(11);e.Q6J("matMenuTriggerFor",t)}}function ba(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",15),e.NdJ("click",function(){return e.CHM(t),e.oxw(3).onNavigateTo("/lnd/reports")}),e._uU(1,"Fees Summary"),e.qZA()}}function Aa(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",15),e.NdJ("click",function(){return e.CHM(t),e.oxw(3).onsortChannelsBy()}),e._uU(1),e.qZA()}if(2&n){const t=e.oxw(3);e.xp6(1),e.hij("Sort By ","Balance Score"===t.sortField?"Capacity":"Balance Score","")}}function va(n,i){1&n&&e._UZ(0,"mat-progress-bar",27)}function wa(n,i){if(1&n&&e._UZ(0,"rtl-node-info",28),2&n){const t=e.oxw(3);e.Q6J("information",t.information)("showColorFieldSeparately",!1)}}function qa(n,i){if(1&n&&e._UZ(0,"rtl-balances-info",29),2&n){const t=e.oxw(3);e.Q6J("balances",t.balances)("errorMessage",t.errorMessages[3]+" "+t.errorMessages[2])}}function Sa(n,i){if(1&n&&e._UZ(0,"rtl-channel-capacity-info",30),2&n){const t=e.oxw(3);e.Q6J("sortBy",t.sortField)("channelBalances",t.channelBalances)("allChannels",t.allChannelsCapacity)("errorMessage",t.errorMessages[3])}}function La(n,i){if(1&n&&e._UZ(0,"rtl-fee-info",31),2&n){const t=e.oxw(3);e.Q6J("fees",t.fees)("errorMessage",t.errorMessages[1])}}function ka(n,i){if(1&n&&e._UZ(0,"rtl-channel-status-info",32),2&n){const t=e.oxw(3);e.Q6J("channelsStatus",t.channelsStatus)("errorMessage",t.errorMessages[3]+" "+t.errorMessages[4])}}function Fa(n,i){1&n&&(e.TgZ(0,"h3"),e._uU(1,"Error! Unable to find information!"),e.qZA())}const Ne=function(n){return{"dashboard-card-content":!0,"error-border":n}};function Na(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-grid-tile",8),e.TgZ(1,"mat-card",9),e.TgZ(2,"mat-card-header"),e.TgZ(3,"mat-card-title",10),e.TgZ(4,"div"),e._UZ(5,"fa-icon",11),e.TgZ(6,"span"),e._uU(7),e.qZA(),e.qZA(),e.TgZ(8,"div"),e.YNc(9,Za,3,1,"button",12),e.TgZ(10,"mat-menu",13,14),e.TgZ(12,"button",15),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw(2).onNavigateTo(s.link)}),e._uU(13),e.qZA(),e.YNc(14,ba,2,0,"button",16),e.YNc(15,Aa,2,1,"button",16),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(16,"mat-card-content",17),e.YNc(17,va,1,0,"mat-progress-bar",18),e.TgZ(18,"div",19),e.YNc(19,wa,1,2,"rtl-node-info",20),e.YNc(20,qa,1,2,"rtl-balances-info",21),e.YNc(21,Sa,1,4,"rtl-channel-capacity-info",22),e.YNc(22,La,1,2,"rtl-fee-info",23),e.YNc(23,ka,1,2,"rtl-channel-status-info",24),e.YNc(24,Fa,2,0,"h3",25),e.qZA(),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=i.$implicit,a=e.oxw(2);e.Q6J("colspan",t.cols)("rowspan",t.rows),e.xp6(5),e.Q6J("icon",t.icon),e.xp6(2),e.Oqu(t.title),e.xp6(2),e.Q6J("ngIf",t.link),e.xp6(4),e.hij("Go To ",t.goTo,""),e.xp6(1),e.Q6J("ngIf","fee"===t.id),e.xp6(1),e.Q6J("ngIf","capacity"===t.id),e.xp6(1),e.s9C("fxFlex","node"===t.id||"balance"===t.id?70:"fee"===t.id||"status"===t.id?78:90),e.Q6J("ngClass",e.VKq(17,Ne,"node"===t.id&&a.apiCallStatusNodeInfo.status===a.apiCallStatusEnum.ERROR||"balance"===t.id&&(a.apiCallStatusChannels.status===a.apiCallStatusEnum.ERROR||a.apiCallStatusBlockchainBalance.status===a.apiCallStatusEnum.ERROR)||"capacity"===t.id&&a.apiCallStatusChannels.status===a.apiCallStatusEnum.ERROR||"fee"===t.id&&a.apiCallStatusFees.status===a.apiCallStatusEnum.ERROR||"status"===t.id&&(a.apiCallStatusChannels.status===a.apiCallStatusEnum.ERROR||a.apiCallStatusPendingChannels.status===a.apiCallStatusEnum.ERROR))),e.xp6(1),e.Q6J("ngIf","node"===t.id&&a.apiCallStatusNodeInfo.status===a.apiCallStatusEnum.INITIATED||"balance"===t.id&&(a.apiCallStatusChannels.status===a.apiCallStatusEnum.INITIATED||a.apiCallStatusBlockchainBalance.status===a.apiCallStatusEnum.INITIATED)||"capacity"===t.id&&a.apiCallStatusChannels.status===a.apiCallStatusEnum.INITIATED||"fee"===t.id&&a.apiCallStatusFees.status===a.apiCallStatusEnum.INITIATED||"status"===t.id&&(a.apiCallStatusChannels.status===a.apiCallStatusEnum.INITIATED||a.apiCallStatusPendingChannels.status===a.apiCallStatusEnum.INITIATED)),e.xp6(1),e.Q6J("ngSwitch",t.id),e.xp6(1),e.Q6J("ngSwitchCase","node"),e.xp6(1),e.Q6J("ngSwitchCase","balance"),e.xp6(1),e.Q6J("ngSwitchCase","capacity"),e.xp6(1),e.Q6J("ngSwitchCase","fee"),e.xp6(1),e.Q6J("ngSwitchCase","status")}}function Ua(n,i){if(1&n&&(e.TgZ(0,"div",2),e.TgZ(1,"div",3),e._UZ(2,"fa-icon",4),e.TgZ(3,"span",5),e._uU(4),e.qZA(),e.qZA(),e.TgZ(5,"mat-grid-list",6),e.YNc(6,Na,25,19,"mat-grid-tile",7),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Q6J("icon",t.apiCallStatusNodeInfo.status===t.apiCallStatusEnum.ERROR?t.faFrown:t.faSmile),e.xp6(2),e.Oqu(t.apiCallStatusNodeInfo.status===t.apiCallStatusEnum.COMPLETED?"Welcome "+t.information.alias+"! Your node is up and running.":t.apiCallStatusNodeInfo.status===t.apiCallStatusEnum.INITIATED?"Wait! Getting your node information...":"Error! Please check the server connection."),e.xp6(1),e.Q6J("rowHeight",t.operatorCardHeight),e.xp6(1),e.Q6J("ngForOf",t.operatorCards)}}function Oa(n,i){if(1&n&&(e.TgZ(0,"button",26),e.TgZ(1,"mat-icon"),e._uU(2,"more_vert"),e.qZA(),e.qZA()),2&n){e.oxw();const t=e.MAs(9);e.Q6J("matMenuTriggerFor",t)}}function Ra(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-card-header"),e.TgZ(1,"mat-card-title",10),e.TgZ(2,"div"),e._UZ(3,"fa-icon",11),e.TgZ(4,"span"),e._uU(5),e.qZA(),e.qZA(),e.TgZ(6,"div"),e.YNc(7,Oa,3,1,"button",12),e.TgZ(8,"mat-menu",13,42),e.TgZ(10,"button",15),e.NdJ("click",function(){e.CHM(t);const o=e.oxw().$implicit;return e.oxw(2).onNavigateTo(o.link)}),e._uU(11),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw().$implicit;e.xp6(3),e.Q6J("icon",t.icon),e.xp6(2),e.Oqu(t.title),e.xp6(2),e.Q6J("ngIf",t.link),e.xp6(4),e.hij("Go To ",t.goTo,"")}}function Ia(n,i){1&n&&e._UZ(0,"mat-progress-bar",27)}function Da(n,i){if(1&n&&e._UZ(0,"rtl-node-info",43),2&n){const t=e.oxw(3);e.Q6J("information",t.information)}}function Ma(n,i){if(1&n&&e._UZ(0,"rtl-balances-info",29),2&n){const t=e.oxw(3);e.Q6J("balances",t.balances)("errorMessage",t.errorMessages[3]+" "+t.errorMessages[2])}}function Pa(n,i){if(1&n&&e._UZ(0,"rtl-channel-liquidity-info",44),2&n){const t=e.oxw(3);e.Q6J("direction","In")("totalLiquidity",t.totalInboundLiquidity)("allChannels",t.allInboundChannels)("errorMessage",t.errorMessages[3])}}function Ja(n,i){if(1&n&&e._UZ(0,"rtl-channel-liquidity-info",44),2&n){const t=e.oxw(3);e.Q6J("direction","Out")("totalLiquidity",t.totalOutboundLiquidity)("allChannels",t.allOutboundChannels)("errorMessage",t.errorMessages[3])}}function Ea(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",26),e.TgZ(1,"mat-icon"),e._uU(2,"more_vert"),e.qZA(),e.qZA(),e.TgZ(3,"mat-menu",13,52),e.TgZ(5,"button",15),e.NdJ("click",function(){e.CHM(t);const o=e.oxw(2).$implicit;return e.oxw(2).onNavigateTo(o.link)}),e._uU(6),e.qZA(),e.TgZ(7,"button",15),e.NdJ("click",function(){return e.CHM(t),e.oxw(4).onNavigateTo("/lnd/reports/transactions")}),e._uU(8,"Transactions Summary"),e.qZA(),e.qZA()}if(2&n){const t=e.MAs(4),a=e.oxw(2).$implicit;e.Q6J("matMenuTriggerFor",t),e.xp6(6),e.hij("Go To ",a.goTo,"")}}function Qa(n,i){1&n&&(e.TgZ(0,"span",45),e.TgZ(1,"mat-tab-group",46),e.TgZ(2,"mat-tab",47),e._UZ(3,"rtl-lightning-invoices",48),e.qZA(),e.TgZ(4,"mat-tab",49),e._UZ(5,"rtl-lightning-payments",48),e.qZA(),e.TgZ(6,"mat-tab",50),e.YNc(7,Ea,9,2,"ng-template",51),e.qZA(),e.qZA(),e.qZA()),2&n&&(e.xp6(3),e.Q6J("calledFrom","home"),e.xp6(2),e.Q6J("calledFrom","home"),e.xp6(1),e.Q6J("disabled",!0))}function Ya(n,i){1&n&&(e.TgZ(0,"h3"),e._uU(1,"Error! Unable to find information!"),e.qZA())}const Ba=function(n){return{"p-0":n}};function Ha(n,i){if(1&n&&(e.TgZ(0,"mat-grid-tile",8),e.TgZ(1,"mat-card",35),e.YNc(2,Ra,12,4,"mat-card-header",36),e.TgZ(3,"mat-card-content",37),e.YNc(4,Ia,1,0,"mat-progress-bar",18),e.TgZ(5,"div",38),e.YNc(6,Da,1,1,"rtl-node-info",39),e.YNc(7,Ma,1,2,"rtl-balances-info",21),e.YNc(8,Pa,1,4,"rtl-channel-liquidity-info",40),e.YNc(9,Ja,1,4,"rtl-channel-liquidity-info",40),e.YNc(10,Qa,8,3,"span",41),e.YNc(11,Ya,2,0,"h3",25),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.Q6J("colspan",t.cols)("rowspan",t.rows),e.xp6(1),e.Q6J("ngClass",e.VKq(13,Ba,"transactions"===t.id)),e.xp6(1),e.Q6J("ngIf","transactions"!==t.id),e.xp6(1),e.s9C("fxFlex","transactions"===t.id?100:"balance"===t.id?70:90),e.Q6J("ngClass",e.VKq(15,Ne,"node"===t.id&&a.apiCallStatusNodeInfo.status===a.apiCallStatusEnum.ERROR||"balance"===t.id&&(a.apiCallStatusChannels.status===a.apiCallStatusEnum.ERROR||a.apiCallStatusBlockchainBalance.status===a.apiCallStatusEnum.ERROR)||("inboundLiq"===t.id||"outboundLiq"===t.id)&&a.apiCallStatusChannels.status===a.apiCallStatusEnum.ERROR)),e.xp6(1),e.Q6J("ngIf","node"===t.id&&a.apiCallStatusNodeInfo.status===a.apiCallStatusEnum.INITIATED||"balance"===t.id&&(a.apiCallStatusChannels.status===a.apiCallStatusEnum.INITIATED||a.apiCallStatusBlockchainBalance.status===a.apiCallStatusEnum.INITIATED)||("inboundLiq"===t.id||"outboundLiq"===t.id)&&a.apiCallStatusChannels.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngSwitch",t.id),e.xp6(1),e.Q6J("ngSwitchCase","node"),e.xp6(1),e.Q6J("ngSwitchCase","balance"),e.xp6(1),e.Q6J("ngSwitchCase","inboundLiq"),e.xp6(1),e.Q6J("ngSwitchCase","outboundLiq"),e.xp6(1),e.Q6J("ngSwitchCase","transactions")}}function Ga(n,i){if(1&n&&(e.TgZ(0,"div",33),e._UZ(1,"fa-icon",4),e.TgZ(2,"span",5),e._uU(3),e.qZA(),e.qZA(),e.TgZ(4,"mat-grid-list",34),e.YNc(5,Ha,12,17,"mat-grid-tile",7),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("icon",t.faSmile),e.xp6(2),e.hij("Welcome ",t.information.alias,"! Your node is up and running."),e.xp6(1),e.Q6J("rowHeight",t.merchantCardHeight),e.xp6(1),e.Q6J("ngForOf",t.merchantCards)}}let za=(()=>{class n{constructor(t,a,o,s,u){switch(this.logger=t,this.store=a,this.actions=o,this.commonService=s,this.router=u,this.faSmile=Ze.I3,this.faFrown=Ze.Kf,this.faAngleDoubleDown=x.Sbq,this.faAngleDoubleUp=x.Vfw,this.faChartPie=x.OS1,this.faBolt=x.BDt,this.faServer=x.xf3,this.faNetworkWired=x.kXW,this.flgChildInfoUpdated=!1,this.userPersonaEnum=l.ol,this.activeChannels=0,this.inactiveChannels=0,this.channelBalances={localBalance:0,remoteBalance:0,balancedness:0},this.selNode={},this.information={},this.balances={onchain:-1,lightning:-1,total:0},this.allChannels=[],this.channelsStatus={},this.allChannelsCapacity=[],this.allInboundChannels=[],this.allOutboundChannels=[],this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.operatorCards=[],this.merchantCards=[],this.screenSize="",this.operatorCardHeight="330px",this.merchantCardHeight="65px",this.sortField="Balance Score",this.screenSizeEnum=l.cu,this.errorMessages=["","","","",""],this.apiCallStatusNodeInfo=null,this.apiCallStatusFees=null,this.apiCallStatusBlockchainBalance=null,this.apiCallStatusChannels=null,this.apiCallStatusPendingChannels=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize){case l.cu.XS:this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:10,rows:1},{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:10,rows:1},{id:"fee",goTo:"Routing",link:"/lnd/routing",icon:this.faBolt,title:"Routing Fee",cols:10,rows:1},{id:"status",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels",cols:10,rows:1},{id:"capacity",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:6,rows:4},{id:"transactions",goTo:"Transactions",link:"/lnd/transactions",title:"",cols:6,rows:6},{id:"inboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:6,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:6,rows:8}];break;case l.cu.SM:case l.cu.MD:this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:5,rows:1},{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:5,rows:1},{id:"fee",goTo:"Routing",link:"/lnd/routing",icon:this.faBolt,title:"Routing Fee",cols:5,rows:1},{id:"status",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels",cols:5,rows:1},{id:"capacity",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:10,rows:2}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:4},{id:"transactions",goTo:"Transactions",link:"/lnd/transactions",title:"",cols:3,rows:4},{id:"inboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:3,rows:8},{id:"outboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:3,rows:8}];break;default:this.operatorCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:3,rows:1},{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:3,rows:1},{id:"capacity",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels Capacity",cols:4,rows:2},{id:"fee",goTo:"Routing",link:"/lnd/routing",icon:this.faBolt,title:"Routing Fee",cols:3,rows:1},{id:"status",goTo:"Channels",link:"/lnd/connections",icon:this.faNetworkWired,title:"Channels",cols:3,rows:1}],this.merchantCards=[{id:"balance",goTo:"On-Chain",link:"/lnd/onchain",icon:this.faChartPie,title:"Balances",cols:2,rows:5},{id:"inboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleDown,title:"In-Bound Liquidity",cols:2,rows:10},{id:"outboundLiq",goTo:"Channels",link:"/lnd/connections",icon:this.faAngleDoubleUp,title:"Out-Bound Liquidity",cols:2,rows:10},{id:"transactions",goTo:"Transactions",link:"/lnd/transactions",title:"",cols:2,rows:5}]}}ngOnInit(){this.store.select(C.bx).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.errorMessages[0]="",this.apiCallStatusNodeInfo=t.apiCallStatus,this.apiCallStatusNodeInfo.status===l.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apiCallStatusNodeInfo.message?JSON.stringify(this.apiCallStatusNodeInfo.message):this.apiCallStatusNodeInfo.message),this.selNode=t.nodeSettings,this.information=t.information}),this.store.select(C.JG).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.errorMessages[1]="",this.apiCallStatusFees=t.apiCallStatus,this.apiCallStatusFees.status===l.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apiCallStatusFees.message?JSON.stringify(this.apiCallStatusFees.message):this.apiCallStatusFees.message),this.fees=t.fees}),this.store.select(C.qU).pipe((0,_.R)(this.unSubs[2])).subscribe(t=>{this.errorMessages[2]="",this.apiCallStatusBlockchainBalance=t.apiCallStatus,this.apiCallStatusBlockchainBalance.status===l.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apiCallStatusBlockchainBalance.message?JSON.stringify(this.apiCallStatusBlockchainBalance.message):this.apiCallStatusBlockchainBalance.message),this.balances.onchain=+t.blockchainBalance.total_balance>=0?+t.blockchainBalance.total_balance:0,this.balances.total=this.balances.lightning+this.balances.onchain,this.balances=Object.assign({},this.balances)}),this.store.select(C.ni).pipe((0,_.R)(this.unSubs[3])).subscribe(t=>{this.errorMessages[4]="",this.apiCallStatusPendingChannels=t.apiCallStatus,this.apiCallStatusPendingChannels.status===l.Bn.ERROR&&(this.errorMessages[4]="object"==typeof this.apiCallStatusPendingChannels.message?JSON.stringify(this.apiCallStatusPendingChannels.message):this.apiCallStatusPendingChannels.message),this.channelsStatus.pending={num_channels:t.pendingChannelsSummary.open.num_channels,capacity:t.pendingChannelsSummary.open.limbo_balance},this.channelsStatus.closing={num_channels:t.pendingChannelsSummary.closing.num_channels+t.pendingChannelsSummary.force_closing.num_channels+t.pendingChannelsSummary.waiting_close.num_channels,capacity:t.pendingChannelsSummary.total_limbo_balance}}),this.store.select(C.ZW).pipe((0,_.R)(this.unSubs[4])).subscribe(t=>{this.errorMessages[3]="",this.apiCallStatusChannels=t.apiCallStatus,this.apiCallStatusChannels.status===l.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apiCallStatusChannels.message?JSON.stringify(this.apiCallStatusChannels.message):this.apiCallStatusChannels.message);const a=t.lightningBalance&&t.lightningBalance.local?+t.lightningBalance.local:0,o=t.lightningBalance&&t.lightningBalance.remote?+t.lightningBalance.remote:0;this.channelBalances={localBalance:a,remoteBalance:o,balancedness:+(1-Math.abs((a-o)/(a+o))).toFixed(3)},this.balances.lightning=t.lightningBalance.local,this.balances.total=this.balances.lightning+this.balances.onchain,this.balances=Object.assign({},this.balances),this.activeChannels=t.channelsSummary.active.num_channels,this.inactiveChannels=t.channelsSummary.inactive.num_channels,this.channelsStatus.active=t.channelsSummary.active,this.channelsStatus.inactive=t.channelsSummary.inactive,this.totalInboundLiquidity=0,this.totalOutboundLiquidity=0,this.allChannels=t.channels.filter(u=>!0===u.active),this.allChannelsCapacity=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels,"balancedness"))),this.allInboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter(u=>u.remote_balance>0),"remote_balance"))),this.allOutboundChannels=JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter(u=>u.local_balance>0),"local_balance"))),this.allChannels.forEach(u=>{this.totalInboundLiquidity=this.totalInboundLiquidity+ +u.remote_balance,this.totalOutboundLiquidity=this.totalOutboundLiquidity+ +u.local_balance}),this.flgChildInfoUpdated=this.balances.lightning>=0&&this.balances.onchain>=0&&this.fees.month_fee_sum>=0,this.logger.info(t)}),this.actions.pipe((0,_.R)(this.unSubs[5]),(0,E.h)(t=>t.type===l.uR.FETCH_FEES_LND||t.type===l.uR.SET_FEES_LND)).subscribe(t=>{t.type===l.uR.FETCH_FEES_LND&&(this.flgChildInfoUpdated=!1),t.type===l.uR.SET_FEES_LND&&(this.flgChildInfoUpdated=!0)})}onNavigateTo(t){this.router.navigateByUrl(t)}onsortChannelsBy(){"Balance Score"===this.sortField?(this.sortField="Capacity",this.allChannelsCapacity=this.allChannels.sort((t,a)=>{const o=+t.local_balance+ +t.remote_balance,s=+a.local_balance+ +a.remote_balance;return o>s?-1:o{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(z.eX),e.Y36(M.v),e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-home"]],decls:3,vars:2,consts:[["fxLayout","column",4,"ngIf","ngIfElse"],["merchantDashboard",""],["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container","mb-0"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["cols","10",3,"rowHeight"],[3,"colspan","rowspan",4,"ngFor","ngForOf"],[3,"colspan","rowspan"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4"],["fxLayoutAlign","space-between center"],[1,"mr-1",3,"icon"],["mat-icon-button","","class","more-button","aria-label","Toggle menu",3,"matMenuTriggerFor",4,"ngIf"],["xPosition","before",1,"dashboard-vert-menu"],["menuOperator","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngIf"],["fxLayout","column",3,"fxFlex","ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"balances","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],[4,"ngSwitchDefault"],["mat-icon-button","","aria-label","Toggle menu",1,"more-button",3,"matMenuTriggerFor"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"balances","errorMessage"],["fxFlex","100",3,"sortBy","channelBalances","allChannels","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container","mb-0"],["cols","6",3,"rowHeight"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch",1,"h-100","dashboard-card","mt-4",3,"ngClass"],[4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch",3,"fxFlex","ngClass"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",3,"ngSwitch"],["fxFlex","100",3,"information",4,"ngSwitchCase"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage",4,"ngSwitchCase"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",3,"perfectScrollbar",4,"ngSwitchCase"],["menuMerchant","matMenu"],["fxFlex","100",3,"information"],["fxFlex","100",3,"direction","totalLiquidity","allChannels","errorMessage"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100",1,"w-100","dashboard-tabs-group"],["label","Receive"],[3,"calledFrom"],["label","Pay"],[3,"disabled"],["mat-tab-label",""],["menuTransactions","matMenu"]],template:function(t,a){if(1&t&&(e.YNc(0,Ua,7,4,"div",0),e.YNc(1,Ga,6,4,"ng-template",null,1,e.W1O)),2&t){const o=e.MAs(2);e.Q6J("ngIf",(null==a.selNode?null:a.selNode.userPersona)===a.userPersonaEnum.OPERATOR)("ngIfElse",o)}},directives:[m.O5,d.xw,d.Wh,R.BN,se.Il,m.sg,se.DX,b.a8,d.yH,b.dk,b.n5,me.VK,me.OP,b.dn,m.mk,L.oO,m.RF,m.n9,m.ED,q.lW,me.p6,te.Hw,J.pW,Ae,tt,lt,ve,we,At,Y.$V,I.SP,I.uX,Le,Fe,I.uD],styles:[""]}),n})();var de=h(1203),_e=h(7544);function Va(n,i){if(1&n&&(e.TgZ(0,"span",10),e._uU(1,"Channels"),e.qZA()),2&n){const t=e.oxw();e.s9C("matBadge",t.activeChannels)}}function Wa(n,i){if(1&n&&(e.TgZ(0,"span",10),e._uU(1,"Peers"),e.qZA()),2&n){const t=e.oxw();e.s9C("matBadge",t.activePeers)}}let Xa=(()=>{class n{constructor(t,a,o){this.store=t,this.logger=a,this.router=o,this.selNode={},this.activePeers=0,this.activeChannels=0,this.faUsers=x.FVb,this.faChartPie=x.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"channels",name:"Channels"},{link:"peers",name:"Peers"}],this.activeLink=0,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.activeLink=this.links.findIndex(t=>t.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(t=>t instanceof Z.Av)).subscribe(t=>{this.activeLink=this.links.findIndex(a=>a.link===t.urlAfterRedirects.substring(t.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select(C.$k).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.selNode=t}),this.store.select(C.Wi).pipe((0,_.R)(this.unSubs[2])).subscribe(t=>{this.activePeers=t.peers&&t.peers.length?t.peers.length:0,this.logger.info(t)}),this.store.select(C.ZW).pipe((0,_.R)(this.unSubs[3])).subscribe(t=>{this.activeChannels=t.channelsSummary.active.num_channels,this.logger.info(t)}),this.store.select(C.qU).pipe((0,_.R)(this.unSubs[4])).subscribe(t=>{this.balances=[{title:"Total Balance",dataValue:t.blockchainBalance.total_balance||0},{title:"Confirmed",dataValue:t.blockchainBalance.confirmed_balance},{title:"Unconfirmed",dataValue:t.blockchainBalance.unconfirmed_balance}],this.logger.info(t)})}onSelectedTabChange(t){this.router.navigateByUrl("/lnd/connections/"+this.links[t.index].link)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(w.yh),e.Y36(F.mQ),e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-connections"]],decls:22,vars:4,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e._UZ(1,"fa-icon",1),e.TgZ(2,"span",2),e._uU(3,"On-chain Balance"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"mat-card"),e.TgZ(6,"mat-card-content",4),e._UZ(7,"rtl-currency-unit-converter",5),e.qZA(),e.qZA(),e.qZA(),e.TgZ(8,"div",0),e._UZ(9,"fa-icon",1),e.TgZ(10,"span",2),e._uU(11,"Connections"),e.qZA(),e.qZA(),e.TgZ(12,"div",6),e.TgZ(13,"mat-card"),e.TgZ(14,"mat-card-content",4),e.TgZ(15,"mat-tab-group",7),e.NdJ("selectedIndexChange",function(s){return a.activeLink=s})("selectedTabChange",function(s){return a.onSelectedTabChange(s)}),e.TgZ(16,"mat-tab"),e.YNc(17,Va,2,1,"ng-template",8),e.qZA(),e.TgZ(18,"mat-tab"),e.YNc(19,Wa,2,1,"ng-template",8),e.qZA(),e.qZA(),e.TgZ(20,"div",9),e._UZ(21,"router-outlet"),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("icon",a.faChartPie),e.xp6(6),e.Q6J("values",a.balances),e.xp6(2),e.Q6J("icon",a.faUsers),e.xp6(6),e.Q6J("selectedIndex",a.activeLink))},directives:[d.xw,d.Wh,R.BN,b.a8,b.dn,de.D,I.SP,I.uX,I.uD,d.yH,Z.lC,_e.k],styles:[""]}),n})();var he=h(8675),Ue=h(4004),Oe=h(9843);const $a=["form"];function ja(n,i){if(1&n&&(e.TgZ(0,"mat-option",37),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t),e.xp6(1),e.Oqu(t.alias?t.alias:t.pub_key?t.pub_key:"")}}function Ka(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Peer alias is required."),e.qZA())}function ei(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Peer not found in the list."),e.qZA())}function ti(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-form-field",1),e._UZ(1,"input",34),e.TgZ(2,"mat-autocomplete",35,36),e.NdJ("optionSelected",function(){return e.CHM(t),e.oxw().onSelectedPeerChanged()}),e.YNc(4,ja,2,2,"mat-option",24),e.ALo(5,"async"),e.qZA(),e.YNc(6,Ka,2,0,"mat-error",17),e.YNc(7,ei,2,0,"mat-error",17),e.qZA()}if(2&n){const t=e.MAs(3),a=e.oxw();e.xp6(1),e.Q6J("formControl",a.selectedPeer)("matAutocomplete",t),e.xp6(1),e.Q6J("displayWith",a.displayFn),e.xp6(2),e.Q6J("ngForOf",e.lcZ(5,6,a.filteredPeers)),e.xp6(2),e.Q6J("ngIf",null==a.selectedPeer.errors?null:a.selectedPeer.errors.required),e.xp6(1),e.Q6J("ngIf",null==a.selectedPeer.errors?null:a.selectedPeer.errors.notfound)}}function ni(n,i){1&n&&e.GkF(0)}function ai(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Amount is required."),e.qZA())}function ii(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("Amount must be less than or equal to ",t.totalBalance,".")}}function oi(n,i){if(1&n&&(e.TgZ(0,"mat-option",37),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function si(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("","1"===t.selTransType?"Target Confirmation Blocks":"Fee"," is required.")}}function li(n,i){if(1&n&&(e.TgZ(0,"span"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.channelConnectionError)}}function ri(n,i){if(1&n&&(e.TgZ(0,"div",38),e._UZ(1,"fa-icon",39),e.YNc(2,li,2,1,"span",17),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("icon",t.faExclamationTriangle),e.xp6(1),e.Q6J("ngIf",""!==t.channelConnectionError)}}function ci(n,i){if(1&n&&(e.TgZ(0,"mat-expansion-panel",41),e.TgZ(1,"mat-expansion-panel-header"),e.TgZ(2,"mat-panel-title"),e.TgZ(3,"span"),e._uU(4,"Peer: \xa0"),e.qZA(),e.TgZ(5,"strong",42),e._uU(6),e.qZA(),e.qZA(),e.qZA(),e.TgZ(7,"div",9),e.TgZ(8,"div",0),e.TgZ(9,"div",1),e.TgZ(10,"h4",43),e._uU(11,"Pubkey"),e.qZA(),e.TgZ(12,"span",44),e._uU(13),e.qZA(),e.qZA(),e.qZA(),e._UZ(14,"mat-divider",45),e.TgZ(15,"div",0),e.TgZ(16,"div",46),e.TgZ(17,"h4",43),e._uU(18,"Address"),e.qZA(),e.TgZ(19,"span",47),e._uU(20),e.qZA(),e.qZA(),e.TgZ(21,"div",46),e.TgZ(22,"h4",43),e._uU(23,"Inbound"),e.qZA(),e.TgZ(24,"span",47),e._uU(25),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw(2);e.xp6(6),e.Oqu((null==t.peer?null:t.peer.alias)||(null==t.peer?null:t.peer.address)),e.xp6(7),e.Oqu(t.peer.pub_key),e.xp6(7),e.Oqu(null==t.peer?null:t.peer.address),e.xp6(5),e.Oqu(null!=t.peer&&t.peer.inbound?"True":"False")}}function ui(n,i){if(1&n&&e.YNc(0,ci,26,4,"mat-expansion-panel",40),2&n){const t=e.oxw();e.Q6J("ngIf",t.peer)}}let Re=(()=>{class n{constructor(t,a,o,s){this.dialogRef=t,this.data=a,this.store=o,this.actions=s,this.selectedPeer=new c.NI,this.amount=new c.NI,this.faExclamationTriangle=x.eHv,this.channelConnectionError="",this.advancedTitle="Advanced Options",this.totalBalance=0,this.selectedPubkey="",this.isPrivate=!1,this.selTransType="0",this.spendUnconfirmed=!1,this.transTypeValue="",this.transTypes=l.Dr,this.unSubs=[new p.x,new p.x]}ngOnInit(){this.information=this.data.message.information,this.totalBalance=this.data.message.balance,this.alertTitle=this.data.alertTitle,this.peer=this.data.message.peer||null,this.peers=this.data.message.peers||[],this.actions.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(o=>o.type===l.uR.UPDATE_API_CALL_STATUS_LND||o.type===l.uR.FETCH_CHANNELS_LND)).subscribe(o=>{o.type===l.uR.UPDATE_API_CALL_STATUS_LND&&o.payload.status===l.Bn.ERROR&&"SaveNewChannel"===o.payload.action&&(this.channelConnectionError=o.payload.message),o.type===l.uR.FETCH_CHANNELS_LND&&this.dialogRef.close()});let t="",a="";this.sortedPeers=this.peers.sort((o,s)=>(t=o.alias?o.alias.toLowerCase():o.pub_key?o.pub_key.toLowerCase():"",a=s.alias?s.alias.toLowerCase():o.pub_key.toLowerCase(),ta?1:0)),this.filteredPeers=this.selectedPeer.valueChanges.pipe((0,_.R)(this.unSubs[1]),(0,he.O)(""),(0,Ue.U)(o=>"string"==typeof o?o:o.alias?o.alias:o.pub_key),(0,Ue.U)(o=>o?this.filterPeers(o):this.sortedPeers.slice()))}filterPeers(t){return this.sortedPeers.filter(a=>0===a.alias.toLowerCase().indexOf(t?t.toLowerCase():""))}displayFn(t){return t&&t.alias?t.alias:t&&t.pub_key?t.pub_key:""}onSelectedPeerChanged(){if(this.channelConnectionError="",this.selectedPubkey=this.selectedPeer.value&&this.selectedPeer.value.pub_key?this.selectedPeer.value.pub_key:null,"string"==typeof this.selectedPeer.value){const t=this.peers.filter(a=>a.alias.length===this.selectedPeer.value.length&&0===a.alias.toLowerCase().indexOf(this.selectedPeer.value?this.selectedPeer.value.toLowerCase():""));1===t.length&&t[0].pub_key&&(this.selectedPubkey=t[0].pub_key)}this.selectedPeer.setErrors(this.selectedPeer.value&&!this.selectedPubkey?{notfound:!0}:null)}onClose(){this.dialogRef.close(!1)}resetData(){this.selectedPeer.setValue(""),this.fundingAmount=null,this.isPrivate=!1,this.spendUnconfirmed=!1,this.selTransType="0",this.transTypeValue="",this.channelConnectionError="",this.advancedTitle="Advanced Options",this.form.resetForm()}onOpenChannel(){if(!this.peer&&!this.selectedPubkey||!this.fundingAmount||this.totalBalance-this.fundingAmount<0||("1"===this.selTransType||"2"===this.selTransType)&&!this.transTypeValue)return!0;this.store.dispatch((0,y.YX)({payload:{selectedPeerPubkey:this.peer&&this.peer.pub_key?this.peer.pub_key:this.selectedPubkey,fundingAmount:this.fundingAmount,private:this.isPrivate,transType:this.selTransType,transTypeValue:this.transTypeValue,spendUnconfirmed:this.spendUnconfirmed}}))}onAdvancedPanelToggle(t){this.advancedTitle=t?"Advanced Options | "+("1"===this.selTransType?"Target Confirmation Blocks: ":"2"===this.selTransType?"Fee (Sats/vByte): ":"Default")+("1"===this.selTransType||"2"===this.selTransType?this.transTypeValue:"")+" | Spend Unconfirmed Output: "+(this.spendUnconfirmed?"Yes":"No"):"Advanced Options"}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(P.WI),e.Y36(w.yh),e.Y36(z.eX))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-open-channel"]],viewQuery:function(t,a){if(1&t&&e.Gf($a,7),2&t){let o;e.iGM(o=e.CRH())&&(a.form=o.first)}},decls:55,vars:25,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column",3,"submit","reset"],["form","ngForm"],["fxLayout","column"],["fxFlex","100",4,"ngIf"],[4,"ngTemplateOutlet"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","60","fxLayoutAlign","start end"],["matInput","","placeholder","Amount","type","number","tabindex","1","required","","name","amnt",3,"ngModel","step","min","max","ngModelChange"],["amt","ngModel"],["matSuffix",""],[4,"ngIf"],["fxFlex","35","fxLayoutAlign","start center"],["tabindex","2","color","primary","name","isPrivate",3,"ngModel","ngModelChange"],["expanded","false",1,"flat-expansion-panel","mt-2",3,"closed","opened"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","49"],["tabindex","3",3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","type","number","tabindex","4","name","transTpValue",3,"ngModel","required","disabled","placeholder","step","min","ngModelChange"],["transTypeVal","ngModel"],["fxFlex","50","fxLayoutAlign","start center"],["tabindex","6","color","primary","name","spendUnconfirmed",3,"ngModel","ngModelChange"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["autoFocus","","mat-button","","color","primary","type","submit","tabindex","9"],["peerDetailsExpansionBlock",""],["type","text","placeholder","Peer Alias","aria-label","Peers","matInput","","tabindex","1","required","",3,"formControl","matAutocomplete"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],[3,"value"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["class","flat-expansion-panel my-1","expanded","false",4,"ngIf"],["expanded","false",1,"flat-expansion-panel","my-1"],[1,"font-weight-900"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"],["fxFlex","50"],[1,"overflow-wrap","foreground-secondary-text"]],template:function(t,a){if(1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e.TgZ(4,"span",4),e._uU(5),e.qZA(),e.qZA(),e.TgZ(6,"button",5),e.NdJ("click",function(){return a.onClose()}),e._uU(7,"X"),e.qZA(),e.qZA(),e.TgZ(8,"mat-card-content",6),e.TgZ(9,"form",7,8),e.NdJ("submit",function(){return a.onOpenChannel()})("reset",function(){return a.resetData()}),e.TgZ(11,"div",9),e.YNc(12,ti,8,8,"mat-form-field",10),e.qZA(),e.YNc(13,ni,1,0,"ng-container",11),e.TgZ(14,"div",9),e.TgZ(15,"div",12),e.TgZ(16,"mat-form-field",13),e.TgZ(17,"input",14,15),e.NdJ("ngModelChange",function(s){return a.fundingAmount=s}),e.qZA(),e.TgZ(19,"mat-hint"),e._uU(20),e.ALo(21,"number"),e.qZA(),e.TgZ(22,"span",16),e._uU(23," Sats "),e.qZA(),e.YNc(24,ai,2,0,"mat-error",17),e.YNc(25,ii,2,1,"mat-error",17),e.qZA(),e.TgZ(26,"div",18),e.TgZ(27,"mat-slide-toggle",19),e.NdJ("ngModelChange",function(s){return a.isPrivate=s}),e._uU(28,"Private Channel"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(29,"mat-expansion-panel",20),e.NdJ("closed",function(){return a.onAdvancedPanelToggle(!0)})("opened",function(){return a.onAdvancedPanelToggle(!1)}),e.TgZ(30,"mat-expansion-panel-header"),e.TgZ(31,"mat-panel-title"),e.TgZ(32,"span"),e._uU(33),e.qZA(),e.qZA(),e.qZA(),e.TgZ(34,"div",21),e.TgZ(35,"div",12),e.TgZ(36,"mat-form-field",22),e.TgZ(37,"mat-select",23),e.NdJ("valueChange",function(s){return a.selTransType=s}),e.YNc(38,oi,2,2,"mat-option",24),e.qZA(),e.qZA(),e.TgZ(39,"mat-form-field",22),e.TgZ(40,"input",25,26),e.NdJ("ngModelChange",function(s){return a.transTypeValue=s}),e.qZA(),e.YNc(42,si,2,1,"mat-error",17),e.qZA(),e.qZA(),e.TgZ(43,"div",12),e.TgZ(44,"div",27),e.TgZ(45,"mat-slide-toggle",28),e.NdJ("ngModelChange",function(s){return a.spendUnconfirmed=s}),e._uU(46,"Spend Unconfirmed Output"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.YNc(47,ri,3,2,"div",29),e.TgZ(48,"div",30),e.TgZ(49,"button",31),e._uU(50,"Clear Fields"),e.qZA(),e.TgZ(51,"button",32),e._uU(52,"Open Channel"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.YNc(53,ui,1,1,"ng-template",null,33,e.W1O)),2&t){const o=e.MAs(54);e.xp6(5),e.Oqu(a.alertTitle),e.xp6(7),e.Q6J("ngIf",!a.peer&&a.peers&&a.peers.length>0),e.xp6(1),e.Q6J("ngTemplateOutlet",o),e.xp6(4),e.Q6J("ngModel",a.fundingAmount)("step",1e3)("min",1)("max",a.totalBalance),e.xp6(3),e.hij("(Remaining Bal: ",e.lcZ(21,23,a.totalBalance-(a.fundingAmount?a.fundingAmount:0)),")"),e.xp6(4),e.Q6J("ngIf",null==a.amount.errors?null:a.amount.errors.required),e.xp6(1),e.Q6J("ngIf",null==a.amount.errors?null:a.amount.errors.max),e.xp6(2),e.Q6J("ngModel",a.isPrivate),e.xp6(6),e.Oqu(a.advancedTitle),e.xp6(4),e.Q6J("value",a.selTransType),e.xp6(1),e.Q6J("ngForOf",a.transTypes),e.xp6(2),e.Q6J("ngModel",a.transTypeValue)("required","0"!==a.selTransType)("disabled","0"===a.selTransType)("placeholder","0"===a.selTransType?"Default":"1"===a.selTransType?"Target Confirmation Blocks":"Fee (Sats/vByte)")("step",1)("min",0),e.xp6(2),e.Q6J("ngIf","0"!==a.selTransType&&!a.transTypeValue),e.xp6(3),e.Q6J("ngModel",a.spendUnconfirmed),e.xp6(2),e.Q6J("ngIf",""!==a.channelConnectionError)}},directives:[d.xw,d.yH,b.dk,d.Wh,q.lW,b.dn,c._Y,c.JL,c.F,m.O5,m.tP,f.KE,D.Nt,c.wV,c.qQ,c.Fd,c.Fj,$.q,Oe.F,c.Q7,c.JJ,c.On,f.bx,f.R9,le.Rr,H.ib,H.yz,H.yK,N.gD,m.sg,V.h,ne.ZL,c.oH,ne.XC,Q.ey,f.TO,R.BN,X.d],pipes:[m.JJ,m.Ov],styles:[".open-inputs-box[_ngcontent-%COMP%]{padding:1.2rem 2.4rem .8rem!important}"]}),n})();var B=h(5615);const pi=["peersForm"],mi=["stepper"];function di(n,i){if(1&n&&e._uU(0),2&n){const t=e.oxw();e.Oqu(t.peerFormLabel)}}function _i(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Address is required."),e.qZA())}function hi(n,i){if(1&n&&(e.TgZ(0,"div",37),e._UZ(1,"fa-icon",38),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("icon",t.faExclamationTriangle),e.xp6(2),e.Oqu(t.peerConnectionError)}}function gi(n,i){if(1&n&&e._uU(0),2&n){const t=e.oxw();e.Oqu(t.channelFormLabel)}}function fi(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Amount is required."),e.qZA())}function Ci(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Amount must be a positive number."),e.qZA())}function xi(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("Amount must be less than or equal to ",t.totalBalance,".")}}function Ti(n,i){if(1&n&&(e.TgZ(0,"mat-option",39),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function yi(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("","0"===t.channelFormGroup.controls.selTransType.value?"Default":"1"===t.channelFormGroup.controls.selTransType.value?"Target Confirmation Blocks":"Fee (Sats/vByte)"," is required.")}}function Zi(n,i){if(1&n&&(e.TgZ(0,"div",37),e._UZ(1,"fa-icon",38),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("icon",t.faExclamationTriangle),e.xp6(2),e.Oqu(t.channelConnectionError)}}let bi=(()=>{class n{constructor(t,a,o,s,u,g,U){this.dialogRef=t,this.data=a,this.store=o,this.lndEffects=s,this.formBuilder=u,this.actions=g,this.logger=U,this.faExclamationTriangle=x.eHv,this.peerAddress="",this.totalBalance=0,this.transTypes=l.Dr,this.flgChannelOpened=!1,this.channelOpenStatus=null,this.newlyAddedPeer=null,this.flgEditable=!0,this.peerConnectionError="",this.channelConnectionError="",this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)",this.unSubs=[new p.x,new p.x]}ngOnInit(){this.totalBalance=this.data.message.balance,this.peerFormGroup=this.formBuilder.group({hiddenAddress:["",[c.kI.required]],peerAddress:["",[c.kI.required]]}),this.channelFormGroup=this.formBuilder.group({fundingAmount:["",[c.kI.required,c.kI.min(1),c.kI.max(this.totalBalance)]],isPrivate:[!1],selTransType:[l.Dr[0].id],transTypeValue:[{value:"",disabled:!0}],spendUnconfirmed:[!1],hiddenAmount:["",[c.kI.required]]}),this.statusFormGroup=this.formBuilder.group({}),this.channelFormGroup.controls.selTransType.valueChanges.pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{t===l.Dr[0].id?(this.channelFormGroup.controls.transTypeValue.setValue(""),this.channelFormGroup.controls.transTypeValue.disable(),this.channelFormGroup.controls.transTypeValue.setValidators(null),this.channelFormGroup.controls.transTypeValue.setErrors(null)):(this.channelFormGroup.controls.transTypeValue.setValue(""),this.channelFormGroup.controls.transTypeValue.enable(),this.channelFormGroup.controls.transTypeValue.setValidators([c.kI.required]))}),this.actions.pipe((0,_.R)(this.unSubs[1]),(0,E.h)(t=>t.type===l.uR.NEWLY_ADDED_PEER_LND||t.type===l.uR.FETCH_PENDING_CHANNELS_LND||t.type===l.uR.UPDATE_API_CALL_STATUS_LND)).subscribe(t=>{t.type===l.uR.NEWLY_ADDED_PEER_LND&&(this.logger.info(t.payload),this.flgEditable=!1,this.newlyAddedPeer=t.payload.peer,this.peerFormGroup.controls.hiddenAddress.setValue(this.peerFormGroup.controls.peerAddress.value),this.stepper.next()),t.type===l.uR.FETCH_PENDING_CHANNELS_LND&&this.dialogRef.close(),t.type===l.uR.UPDATE_API_CALL_STATUS_LND&&t.payload.status===l.Bn.ERROR&&("SaveNewPeer"===t.payload.action||"FetchGraphNode"===t.payload.action?this.peerConnectionError=t.payload.message:"SaveNewChannel"===t.payload.action&&(this.channelConnectionError=t.payload.message))})}onConnectPeer(){if(!this.peerFormGroup.controls.peerAddress.value)return!0;this.peerConnectionError="";const t=this.peerFormGroup.controls.peerAddress.value.search("@");let a="",o="";t>-1?(a=this.peerFormGroup.controls.peerAddress.value.substring(0,t),o=this.peerFormGroup.controls.peerAddress.value.substring(t+1),this.connectPeerWithParams(a,o)):(this.store.dispatch((0,y.dV)({payload:{pubkey:this.peerFormGroup.controls.peerAddress.value}})),this.lndEffects.setGraphNode.pipe((0,G.q)(1)).subscribe(s=>{o=s.node.addresses&&s.node.addresses.length&&s.node.addresses.length>0&&s.node.addresses[0].addr?s.node.addresses[0].addr:"",this.connectPeerWithParams(this.peerFormGroup.controls.peerAddress.value,o)}))}connectPeerWithParams(t,a){this.store.dispatch((0,y.El)({payload:{pubkey:t,host:a,perm:!1}}))}onOpenChannel(){if(!this.channelFormGroup.controls.fundingAmount.value||this.totalBalance-this.channelFormGroup.controls.fundingAmount.value<0||"1"===this.channelFormGroup.controls.selTransType.value&&!this.channelFormGroup.controls.transTypeValue.value||"2"===this.channelFormGroup.controls.selTransType.value&&!this.channelFormGroup.controls.transTypeValue.value)return!0;this.channelConnectionError="",this.store.dispatch((0,y.YX)({payload:{selectedPeerPubkey:this.newlyAddedPeer.pub_key,fundingAmount:this.channelFormGroup.controls.fundingAmount.value,private:this.channelFormGroup.controls.isPrivate.value,transType:this.channelFormGroup.controls.selTransType.value,transTypeValue:this.channelFormGroup.controls.transTypeValue.value,spendUnconfirmed:this.channelFormGroup.controls.spendUnconfirmed.value}}))}onClose(){this.dialogRef.close(!1)}stepSelectionChanged(t){switch(t.selectedIndex){case 0:default:this.peerFormLabel="Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 1:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+this.newlyAddedPeer.alias:"Peer Details",this.channelFormLabel="Open Channel (Optional)";break;case 2:this.peerFormLabel=this.peerFormGroup.controls.peerAddress.value?"Peer Added: "+this.newlyAddedPeer.alias:"Peer Details",this.channelFormLabel=this.channelFormGroup.controls.fundingAmount.value?"Opening Channel for "+this.channelFormGroup.controls.fundingAmount.value+" Sats":"Open Channel (Optional)"}t.selectedIndex{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(P.WI),e.Y36(w.yh),e.Y36(K.l),e.Y36(c.qu),e.Y36(z.eX),e.Y36(F.mQ))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-connect-peer"]],viewQuery:function(t,a){if(1&t&&(e.Gf(pi,5),e.Gf(mi,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.form=o.first),e.iGM(o=e.CRH())&&(a.stepper=o.first)}},decls:56,vars:24,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["autoFocus","","matInput","","placeholder","Lightning Address (pubkey OR pubkey@ip:port)","formControlName","peerAddress","tabindex","1","required",""],[4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-button","","color","primary","tabindex","3","type","button",3,"click"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mb-1",3,"formGroup"],["matStepLabel","","disabled","true"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex","60","fxLayoutAlign","start end"],["matInput","","formControlName","fundingAmount","placeholder","Amount","type","number","tabindex","1","required","",3,"step"],["matSuffix",""],["fxFlex","35","fxLayoutAlign","start center"],["tabindex","2","color","primary","formControlName","isPrivate","name","isPrivate"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["fxFlex","30","fxLayoutAlign","start end"],["tabindex","3","formControlName","selTransType","placeholder","Transaction Type"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","30"],["matInput","","formControlName","transTypeValue","type","number","name","transTypeValue","tabindex","4",3,"placeholder","step","required"],["tabindex","6","color","primary","formControlName","spendUnconfirmed","name","spendUnconfirmed"],["mat-button","","color","primary","tabindex","8","type","button",3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],[3,"value"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e.TgZ(4,"span",4),e._uU(5,"Connect to a new peer"),e.qZA(),e.qZA(),e.TgZ(6,"button",5),e.NdJ("click",function(){return a.onClose()}),e._uU(7,"X"),e.qZA(),e.qZA(),e.TgZ(8,"mat-card-content",6),e.TgZ(9,"div",7),e.TgZ(10,"mat-vertical-stepper",8,9),e.NdJ("selectionChange",function(s){return a.stepSelectionChanged(s)}),e.TgZ(12,"mat-step",10),e.TgZ(13,"form",11),e.YNc(14,di,1,1,"ng-template",12),e.TgZ(15,"mat-form-field",1),e._UZ(16,"input",13),e.YNc(17,_i,2,0,"mat-error",14),e.qZA(),e.YNc(18,hi,4,2,"div",15),e.TgZ(19,"div",16),e.TgZ(20,"button",17),e.NdJ("click",function(){return a.onConnectPeer()}),e._uU(21),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(22,"mat-step",10),e.TgZ(23,"form",18),e.YNc(24,gi,1,1,"ng-template",19),e.TgZ(25,"div",20),e.TgZ(26,"div",21),e.TgZ(27,"mat-form-field",22),e._UZ(28,"input",23),e.TgZ(29,"mat-hint"),e._uU(30),e.qZA(),e.TgZ(31,"span",24),e._uU(32," Sats "),e.qZA(),e.YNc(33,fi,2,0,"mat-error",14),e.YNc(34,Ci,2,0,"mat-error",14),e.YNc(35,xi,2,1,"mat-error",14),e.qZA(),e.TgZ(36,"div",25),e.TgZ(37,"mat-slide-toggle",26),e._uU(38,"Private Channel"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(39,"div",27),e.TgZ(40,"mat-form-field",28),e.TgZ(41,"mat-select",29),e.YNc(42,Ti,2,2,"mat-option",30),e.qZA(),e.qZA(),e.TgZ(43,"mat-form-field",31),e._UZ(44,"input",32),e.YNc(45,yi,2,1,"mat-error",14),e.qZA(),e.TgZ(46,"div",25),e.TgZ(47,"mat-slide-toggle",33),e._uU(48,"Spend Unconfirmed Output"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.YNc(49,Zi,4,2,"div",15),e.TgZ(50,"div",16),e.TgZ(51,"button",34),e.NdJ("click",function(){return a.onOpenChannel()}),e._uU(52),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(53,"div",35),e.TgZ(54,"button",36),e._uU(55),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(10),e.Q6J("linear",!0),e.xp6(2),e.Q6J("stepControl",a.peerFormGroup)("editable",a.flgEditable),e.xp6(1),e.Q6J("formGroup",a.peerFormGroup),e.xp6(4),e.Q6J("ngIf",null==a.peerFormGroup.controls.peerAddress.errors?null:a.peerFormGroup.controls.peerAddress.errors.required),e.xp6(1),e.Q6J("ngIf",""!==a.peerConnectionError),e.xp6(3),e.Oqu(""!==a.peerConnectionError?"Retry":"Add Peer"),e.xp6(1),e.Q6J("stepControl",a.channelFormGroup)("editable",a.flgEditable),e.xp6(1),e.Q6J("formGroup",a.channelFormGroup),e.xp6(5),e.Q6J("step",1e3),e.xp6(2),e.hij("Remaining Bal: ",a.totalBalance-(a.channelFormGroup.controls.fundingAmount.value?a.channelFormGroup.controls.fundingAmount.value:0),""),e.xp6(3),e.Q6J("ngIf",null==a.channelFormGroup.controls.fundingAmount.errors?null:a.channelFormGroup.controls.fundingAmount.errors.required),e.xp6(1),e.Q6J("ngIf",null==a.channelFormGroup.controls.fundingAmount.errors?null:a.channelFormGroup.controls.fundingAmount.errors.min),e.xp6(1),e.Q6J("ngIf",null==a.channelFormGroup.controls.fundingAmount.errors?null:a.channelFormGroup.controls.fundingAmount.errors.max),e.xp6(7),e.Q6J("ngForOf",a.transTypes),e.xp6(2),e.Q6J("placeholder","0"===a.channelFormGroup.controls.selTransType.value?"Default":"1"===a.channelFormGroup.controls.selTransType.value?"Target Confirmation Blocks":"Fee (Sats/vByte)")("step",1)("required","0"!==a.channelFormGroup.controls.selTransType.value),e.xp6(1),e.Q6J("ngIf",null==a.channelFormGroup.controls.transTypeValue.errors?null:a.channelFormGroup.controls.transTypeValue.errors.required),e.xp6(4),e.Q6J("ngIf",""!==a.channelConnectionError),e.xp6(3),e.Oqu(""!==a.channelConnectionError?"Retry":"Open Channel"),e.xp6(2),e.Q6J("mat-dialog-close",!1),e.xp6(1),e.Oqu(null!=a.newlyAddedPeer&&a.newlyAddedPeer.pub_key?"Do It Later":"Close"))},directives:[d.xw,d.yH,b.dk,d.Wh,q.lW,b.dn,B.Vq,B.C0,c._Y,c.JL,c.sg,B.VY,f.KE,D.Nt,c.Fj,V.h,c.JJ,c.u,c.Q7,m.O5,c.wV,f.bx,f.R9,le.Rr,N.gD,m.sg,P.ZT,f.TO,R.BN,Q.ey],styles:[""]}),n})();function Ai(n,i){1&n&&e._UZ(0,"mat-progress-bar",32)}function vi(n,i){1&n&&(e.TgZ(0,"th",33),e._uU(1," Alias "),e.qZA())}const Ie=function(n){return{"max-width":n}};function wi(n,i){if(1&n&&(e.TgZ(0,"td",34),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,Ie,a.screenSize===a.screenSizeEnum.XS?"12rem":"25rem")),e.xp6(1),e.hij(" ",null==t?null:t.alias," ")}}function qi(n,i){1&n&&(e.TgZ(0,"th",33),e._uU(1," Public Key "),e.qZA())}function Si(n,i){if(1&n&&(e.TgZ(0,"td",34),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,Ie,a.screenSize===a.screenSizeEnum.XS?"5rem":"35rem")),e.xp6(1),e.hij(" ",null==t?null:t.pub_key," ")}}function Li(n,i){1&n&&(e.TgZ(0,"th",35),e._uU(1," Sats Sent "),e.qZA())}function ki(n,i){if(1&n&&(e.TgZ(0,"td",36),e.TgZ(1,"span",37),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,null==t?null:t.sat_sent)," ")}}function Fi(n,i){1&n&&(e.TgZ(0,"th",35),e._uU(1," Sats Received "),e.qZA())}function Ni(n,i){if(1&n&&(e.TgZ(0,"td",36),e.TgZ(1,"span",37),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,null==t?null:t.sat_recv)," ")}}function Ui(n,i){1&n&&(e.TgZ(0,"th",35),e._uU(1," Ping "),e.qZA())}function Oi(n,i){if(1&n&&(e.TgZ(0,"td",36),e.TgZ(1,"span",37),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,null==t?null:t.ping_time)," ")}}function Ri(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"th",38),e.TgZ(1,"div",39),e.TgZ(2,"mat-select",40),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",41),e.NdJ("click",function(){return e.CHM(t),e.oxw().onDownloadCSV()}),e._uU(5,"Download CSV"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function Ii(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",42),e.TgZ(1,"div",39),e.TgZ(2,"mat-select",40),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",41),e.NdJ("click",function(o){const u=e.CHM(t).$implicit;return e.oxw().onPeerClick(u,o)}),e._uU(5,"View Info"),e.qZA(),e.TgZ(6,"mat-option",41),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onOpenChannel(s)}),e._uU(7,"Open Channel"),e.qZA(),e.TgZ(8,"mat-option",41),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onPeerDetach(s)}),e._uU(9,"Disconnect"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function Di(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No connected peer."),e.qZA())}function Mi(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting peers..."),e.qZA())}function Pi(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function Ji(n,i){if(1&n&&(e.TgZ(0,"td",43),e.YNc(1,Di,2,0,"p",44),e.YNc(2,Mi,2,0,"p",44),e.YNc(3,Pi,2,1,"p",44),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers.data?null:t.peers.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers.data?null:t.peers.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.peers&&t.peers.data)||(null==t.peers.data?null:t.peers.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const Ei=function(n){return{"display-none":n}};function Qi(n,i){if(1&n&&e._UZ(0,"tr",45),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,Ei,(null==t.peers?null:t.peers.data)&&(null==t.peers||null==t.peers.data?null:t.peers.data.length)>0))}}function Yi(n,i){1&n&&e._UZ(0,"tr",46)}function Bi(n,i){1&n&&e._UZ(0,"tr",47)}const Hi=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},Gi=function(){return["no_peer"]};let zi=(()=>{class n{constructor(t,a,o,s){this.logger=t,this.store=a,this.rtlEffects=o,this.commonService=s,this.availableBalance=0,this.faUsers=x.FVb,this.displayedColumns=[],this.peersData=[],this.information={},this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["alias","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["alias","sat_sent","sat_recv","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["alias","sat_sent","sat_recv","ping_time","actions"]):(this.flgSticky=!0,this.displayedColumns=["alias","pub_key","sat_sent","sat_recv","ping_time","actions"])}ngOnInit(){this.store.select(C.Q5).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.information=t}),this.store.select(C.qU).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.availableBalance=t.blockchainBalance.total_balance||0}),this.store.select(C.Wi).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.peersData=t.peers,this.peersData.length>0&&this.loadPeersTable(this.peersData),this.logger.info(t)})}ngAfterViewInit(){this.peersData.length>0&&this.loadPeersTable(this.peersData)}onPeerClick(t,a){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Peer Information",showQRName:"Public Key",showQRField:t.pub_key,message:[[{key:"pub_key",value:t.pub_key,title:"Public Key",width:100}],[{key:"address",value:t.address,title:"Address",width:100}],[{key:"alias",value:t.alias,title:"Alias",width:40},{key:"inbound",value:t.inbound?"True":"False",title:"Inbound",width:30},{key:"ping_time",value:t.ping_time,title:"Ping Time",width:30,type:l.Gi.NUMBER}],[{key:"sat_sent",value:t.sat_sent,title:"Satoshis Sent",width:50,type:l.Gi.NUMBER},{key:"sat_recv",value:t.sat_recv,title:"Satoshis Received",width:50,type:l.Gi.NUMBER}],[{key:"bytes_sent",value:t.bytes_sent,title:"Bytes Sent",width:50,type:l.Gi.NUMBER},{key:"bytes_recv",value:t.bytes_recv,title:"Bytes Received",width:50,type:l.Gi.NUMBER}]]}}}))}onConnectPeer(){this.store.dispatch((0,v.qR)({payload:{data:{message:{peer:null,information:this.information,balance:this.availableBalance},component:bi}}}))}onOpenChannel(t){this.store.dispatch((0,v.qR)({payload:{data:{alertTitle:"Open Channel",message:{peer:t,information:this.information,balance:this.availableBalance},component:Re}}}))}onPeerDetach(t){this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Disconnect Peer",titleMessage:"Disconnect peer: "+(t.alias?t.alias:t.pub_key),noBtnText:"Cancel",yesBtnText:"Disconnect"}}})),this.rtlEffects.closeConfirm.pipe((0,_.R)(this.unSubs[3])).subscribe(o=>{o&&this.store.dispatch((0,y.z)({payload:{pubkey:t.pub_key}}))})}applyFilter(){this.peers.filter=this.selFilter.trim().toLowerCase()}loadPeersTable(t){this.peers=new r.by(t?[...t]:[]),this.peers.sort=this.sort,this.peers.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.peers.filterPredicate=(a,o)=>JSON.stringify(a).toLowerCase().includes(o),this.peers.paginator=this.paginator,this.applyFilter()}onDownloadCSV(){this.peers.data&&this.peers.data.length>0&&this.commonService.downloadFile(this.peers.data,"Peers")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(ie.V),e.Y36(M.v))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-peers"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Peers")}])],decls:40,vars:15,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayout","row"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70","fxLayoutAlign","start start","fxLayoutAlign.gt-sm","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","alias"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","pub_key"],["matColumnDef","sat_sent"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","sat_recv"],["matColumnDef","ping_time"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","px-3",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"button",2),e.NdJ("click",function(){return a.onConnectPeer()}),e._uU(3,"Add Peer"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"div",4),e.TgZ(6,"div",5),e._UZ(7,"fa-icon",6),e.TgZ(8,"span",7),e._uU(9,"Connected Peers"),e.qZA(),e.qZA(),e.TgZ(10,"mat-form-field",8),e.TgZ(11,"input",9),e.NdJ("keyup",function(){return a.applyFilter()})("ngModelChange",function(s){return a.selFilter=s}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(12,"div",10),e.YNc(13,Ai,1,0,"mat-progress-bar",11),e.TgZ(14,"table",12,13),e.ynx(16,14),e.YNc(17,vi,2,0,"th",15),e.YNc(18,wi,2,4,"td",16),e.BQk(),e.ynx(19,17),e.YNc(20,qi,2,0,"th",15),e.YNc(21,Si,2,4,"td",16),e.BQk(),e.ynx(22,18),e.YNc(23,Li,2,0,"th",19),e.YNc(24,ki,4,3,"td",20),e.BQk(),e.ynx(25,21),e.YNc(26,Fi,2,0,"th",19),e.YNc(27,Ni,4,3,"td",20),e.BQk(),e.ynx(28,22),e.YNc(29,Ui,2,0,"th",19),e.YNc(30,Oi,4,3,"td",20),e.BQk(),e.ynx(31,23),e.YNc(32,Ri,6,0,"th",24),e.YNc(33,Ii,10,0,"td",25),e.BQk(),e.ynx(34,26),e.YNc(35,Ji,4,3,"td",27),e.BQk(),e.YNc(36,Qi,1,3,"tr",28),e.YNc(37,Yi,1,0,"tr",29),e.YNc(38,Bi,1,0,"tr",30),e.qZA(),e.qZA(),e._UZ(39,"mat-paginator",31),e.qZA(),e.qZA()),2&t&&(e.xp6(7),e.Q6J("icon",a.faUsers),e.xp6(4),e.Q6J("ngModel",a.selFilter),e.xp6(2),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",a.peers)("ngClass",e.VKq(12,Hi,""!==a.errorMessage)),e.xp6(22),e.Q6J("matFooterRowDef",e.DdM(14,Gi)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedColumns)("matHeaderRowDefSticky",a.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedColumns),e.xp6(1),e.Q6J("pageSize",a.pageSize)("pageSizeOptions",a.pageSizeOptions)("showFirstLastButtons",a.screenSize!==a.screenSizeEnum.XS))},directives:[d.xw,d.yH,d.Wh,q.lW,R.BN,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,m.O5,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,J.pW,r.ge,A.nU,r.ev,m.PC,L.Zl,N.gD,N.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk],pipes:[m.JJ],styles:[".mat-column-alias[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-pub_key[_ngcontent-%COMP%]{flex:1 1 35%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:2rem}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem;flex:1 1 10%}.mat-column-sat_sent[_ngcontent-%COMP%], .mat-column-sat_recv[_ngcontent-%COMP%], .mat-column-ping_time[_ngcontent-%COMP%]{flex:1 1 13%;width:13%}"]}),n})();function Vi(n,i){if(1&n&&(e.TgZ(0,"span",7),e._uU(1,"Open"),e.qZA()),2&n){const t=e.oxw();e.s9C("matBadge",t.numOpenChannels)}}function Wi(n,i){if(1&n&&(e.TgZ(0,"span",7),e._uU(1,"Pending"),e.qZA()),2&n){const t=e.oxw();e.s9C("matBadge",t.numPendingChannels)}}function Xi(n,i){if(1&n&&(e.TgZ(0,"span",7),e._uU(1,"Closed"),e.qZA()),2&n){const t=e.oxw();e.s9C("matBadge",t.numClosedChannels)}}function $i(n,i){if(1&n&&(e.TgZ(0,"span",7),e._uU(1,"Active HTLCs"),e.qZA()),2&n){const t=e.oxw();e.s9C("matBadge",t.numActiveHTLCs)}}let ji=(()=>{class n{constructor(t,a,o){this.logger=t,this.store=a,this.router=o,this.numOpenChannels=0,this.numPendingChannels=0,this.numClosedChannels=0,this.numActiveHTLCs=0,this.peers=[],this.information={},this.totalBalance=0,this.links=[{link:"open",name:"Open"},{link:"pending",name:"Pending"},{link:"closed",name:"Closed"},{link:"activehtlcs",name:"Active HTLCs"}],this.activeLink=0,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.activeLink=this.links.findIndex(t=>t.link===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(t=>t instanceof Z.Av)).subscribe(t=>{this.activeLink=this.links.findIndex(a=>a.link===t.urlAfterRedirects.substring(t.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select(C.Q5).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.information=t}),this.store.select(C.ZW).pipe((0,_.R)(this.unSubs[2])).subscribe(t=>{this.numOpenChannels=t.channels&&t.channels.length?t.channels.length:0,this.numActiveHTLCs=t.channels.reduce((a,o)=>a+(o.pending_htlcs&&o.pending_htlcs.length>0?o.pending_htlcs.length:0),0),this.logger.info(t)}),this.store.select(C.ni).pipe((0,_.R)(this.unSubs[3])).subscribe(t=>{this.numPendingChannels=t.pendingChannelsSummary.total_channels?t.pendingChannelsSummary.total_channels:0}),this.store.select(C.P2).pipe((0,_.R)(this.unSubs[4])).subscribe(t=>{this.numClosedChannels=t.closedChannels&&t.closedChannels.length?t.closedChannels.length:0}),this.store.select(C.qU).pipe((0,_.R)(this.unSubs[5])).subscribe(t=>{this.totalBalance=+t.blockchainBalance.total_balance}),this.store.select(C.Wi).pipe((0,_.R)(this.unSubs[6])).subscribe(t=>{this.peers=t.peers,this.peers.forEach(a=>{(!a.alias||""===a.alias)&&(a.alias=a.pub_key.substring(0,15)+"...")}),this.logger.info(t)})}onOpenChannel(){this.store.dispatch((0,v.qR)({payload:{data:{alertTitle:"Open Channel",message:{peers:this.peers,information:this.information,balance:this.totalBalance},component:Re}}}))}onSelectedTabChange(t){this.router.navigateByUrl("/lnd/connections/channels/"+this.links[t.index].link)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channels-tables"]],decls:16,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayout","row"],["mat-flat-button","","color","primary","type","submit","tabindex","1",3,"click"],["fxLayout","column","fxFlex","100",1,"my-2","bordered-box"],[3,"selectedIndex","selectedIndexChange","selectedTabChange"],["mat-tab-label",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"button",2),e.NdJ("click",function(){return a.onOpenChannel()}),e._uU(3,"Open Channel"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"mat-tab-group",4),e.NdJ("selectedIndexChange",function(s){return a.activeLink=s})("selectedTabChange",function(s){return a.onSelectedTabChange(s)}),e.TgZ(6,"mat-tab"),e.YNc(7,Vi,2,1,"ng-template",5),e.qZA(),e.TgZ(8,"mat-tab"),e.YNc(9,Wi,2,1,"ng-template",5),e.qZA(),e.TgZ(10,"mat-tab"),e.YNc(11,Xi,2,1,"ng-template",5),e.qZA(),e.TgZ(12,"mat-tab"),e.YNc(13,$i,2,1,"ng-template",5),e.qZA(),e.qZA(),e.TgZ(14,"div",6),e._UZ(15,"router-outlet"),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(5),e.Q6J("selectedIndex",a.activeLink))},directives:[d.xw,d.yH,d.Wh,q.lW,I.SP,I.uX,I.uD,Z.lC,_e.k],styles:[""]}),n})();var ee=h(7261),oe=h(6895);function Ki(n,i){if(1&n&&(e.TgZ(0,"div"),e.TgZ(1,"div",9),e.TgZ(2,"div",14),e.TgZ(3,"h4",11),e._uU(4,"Commit Fee"),e.qZA(),e.TgZ(5,"span",15),e._uU(6),e.ALo(7,"number"),e.qZA(),e.qZA(),e.TgZ(8,"div",14),e.TgZ(9,"h4",11),e._uU(10,"Commit Weight"),e.qZA(),e.TgZ(11,"span",15),e._uU(12),e.ALo(13,"number"),e.qZA(),e.qZA(),e.TgZ(14,"div",14),e.TgZ(15,"h4",11),e._uU(16,"Fee/KW"),e.qZA(),e.TgZ(17,"span",15),e._uU(18),e.ALo(19,"number"),e.qZA(),e.qZA(),e.TgZ(20,"div",14),e.TgZ(21,"h4",11),e._uU(22,"Static Remote Key"),e.qZA(),e.TgZ(23,"span",15),e._uU(24),e.qZA(),e.qZA(),e.qZA(),e._UZ(25,"mat-divider",13),e.TgZ(26,"div",9),e.TgZ(27,"div",14),e.TgZ(28,"h4",11),e._uU(29),e.qZA(),e.TgZ(30,"span",15),e._uU(31),e.ALo(32,"number"),e.qZA(),e.qZA(),e.TgZ(33,"div",14),e.TgZ(34,"h4",11),e._uU(35),e.qZA(),e.TgZ(36,"span",15),e._uU(37),e.ALo(38,"number"),e.qZA(),e.qZA(),e.TgZ(39,"div",14),e.TgZ(40,"h4",11),e._uU(41,"Unsettled Balance"),e.qZA(),e.TgZ(42,"span",15),e._uU(43),e.ALo(44,"number"),e.qZA(),e.qZA(),e.TgZ(45,"div",14),e.TgZ(46,"h4",11),e._uU(47,"CSV Delay"),e.qZA(),e.TgZ(48,"span",15),e._uU(49),e.ALo(50,"number"),e.qZA(),e.qZA(),e.qZA(),e._UZ(51,"mat-divider",13),e.TgZ(52,"div",9),e.TgZ(53,"div",14),e.TgZ(54,"h4",11),e._uU(55,"Local Reserve (Sats)"),e.qZA(),e.TgZ(56,"span",15),e._uU(57),e.ALo(58,"number"),e.qZA(),e.qZA(),e.TgZ(59,"div",14),e.TgZ(60,"h4",11),e._uU(61,"Remote Reserve (Sats)"),e.qZA(),e.TgZ(62,"span",15),e._uU(63),e.ALo(64,"number"),e.qZA(),e.qZA(),e.TgZ(65,"div",14),e.TgZ(66,"h4",11),e._uU(67,"Lifetime (Seconds)"),e.qZA(),e.TgZ(68,"span",15),e._uU(69),e.ALo(70,"number"),e.qZA(),e.qZA(),e.TgZ(71,"div",14),e.TgZ(72,"h4",11),e._uU(73,"Pending HTLCs"),e.qZA(),e.TgZ(74,"span",15),e._uU(75),e.ALo(76,"number"),e.qZA(),e.qZA(),e.qZA(),e._UZ(77,"mat-divider",13),e.qZA()),2&n){const t=e.oxw();e.xp6(6),e.Oqu(e.lcZ(7,17,t.channel.commit_fee)),e.xp6(6),e.Oqu(e.lcZ(13,19,t.channel.commit_weight)),e.xp6(6),e.Oqu(e.lcZ(19,21,t.channel.fee_per_kw)),e.xp6(6),e.Oqu(t.channel.static_remote_key?"Yes":"No"),e.xp6(1),e.Q6J("inset",!0),e.xp6(4),e.Oqu(t.screenSize===t.screenSizeEnum.XS?"Total Sats Sent":"Total Satoshis Sent"),e.xp6(2),e.Oqu(e.lcZ(32,23,t.channel.total_satoshis_sent)),e.xp6(4),e.Oqu(t.screenSize===t.screenSizeEnum.XS?"Total Sats Recv":"Total Satoshis Received"),e.xp6(2),e.Oqu(e.lcZ(38,25,t.channel.total_satoshis_received)),e.xp6(6),e.Oqu(e.lcZ(44,27,t.channel.unsettled_balance)),e.xp6(6),e.Oqu(e.lcZ(50,29,t.channel.csv_delay)),e.xp6(2),e.Q6J("inset",!0),e.xp6(6),e.Oqu(e.lcZ(58,31,t.channel.local_chan_reserve_sat)),e.xp6(6),e.Oqu(e.lcZ(64,33,t.channel.remote_chan_reserve_sat)),e.xp6(6),e.Oqu(e.lcZ(70,35,t.channel.lifetime)),e.xp6(6),e.Oqu(e.lcZ(76,37,null==t.channel||null==t.channel.pending_htlcs?null:t.channel.pending_htlcs.length)),e.xp6(2),e.Q6J("inset",!0)}}function eo(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Show Advanced"),e.qZA())}function to(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Hide Advanced"),e.qZA())}function no(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",23),e.NdJ("copied",function(o){return e.CHM(t),e.oxw().onCopyChanID(o)}),e._uU(1,"Copy Channel ID"),e.qZA()}if(2&n){const t=e.oxw();e.Q6J("payload",t.channel.chan_id)}}function ao(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",24),e.NdJ("click",function(){return e.CHM(t),e.oxw().onClose()}),e._uU(1,"OK"),e.qZA()}}const io=function(n){return{"xs-scroll-y":n}};let ge=(()=>{class n{constructor(t,a,o,s,u){this.dialogRef=t,this.data=a,this.logger=o,this.commonService=s,this.snackBar=u,this.faReceipt=x.dLy,this.showAdvanced=!1,this.showCopy=!0,this.showCopyField=null,this.screenSize="",this.screenSizeEnum=l.cu}ngOnInit(){this.channel=this.data.channel,this.showCopy=this.data.showCopy,this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyChanID(t){this.snackBar.open("Channel ID "+t+" copied."),this.logger.info("Copied Text: "+t)}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(P.WI),e.Y36(F.mQ),e.Y36(M.v),e.Y36(ee.ux))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-information"]],decls:94,vars:36,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"my-1",3,"inset"],["fxFlex","25"],[1,"overflow-wrap","foreground-secondary-text"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","100",1,"mt-1"],["mat-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(t,a){if(1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e._UZ(4,"fa-icon",4),e.TgZ(5,"span",5),e._uU(6,"Channel Information"),e.qZA(),e.qZA(),e.TgZ(7,"button",6),e.NdJ("click",function(){return a.onClose()}),e._uU(8,"X"),e.qZA(),e.qZA(),e.TgZ(9,"mat-card-content",7),e.TgZ(10,"div",8),e.TgZ(11,"div",9),e.TgZ(12,"div",10),e.TgZ(13,"h4",11),e._uU(14,"Channel ID"),e.qZA(),e.TgZ(15,"span",12),e._uU(16),e.qZA(),e.qZA(),e.TgZ(17,"div",10),e.TgZ(18,"h4",11),e._uU(19,"Peer Alias"),e.qZA(),e.TgZ(20,"span",12),e._uU(21),e.qZA(),e.qZA(),e.qZA(),e._UZ(22,"mat-divider",13),e.TgZ(23,"div",9),e.TgZ(24,"div",1),e.TgZ(25,"h4",11),e._uU(26,"Channel Point"),e.qZA(),e.TgZ(27,"span",12),e._uU(28),e.qZA(),e.qZA(),e.qZA(),e._UZ(29,"mat-divider",13),e.TgZ(30,"div",9),e.TgZ(31,"div",1),e.TgZ(32,"h4",11),e._uU(33,"Peer Public Key"),e.qZA(),e.TgZ(34,"span",12),e._uU(35),e.qZA(),e.qZA(),e.qZA(),e._UZ(36,"mat-divider",13),e.TgZ(37,"div",9),e.TgZ(38,"div",14),e.TgZ(39,"h4",11),e._uU(40,"Local Balance"),e.qZA(),e.TgZ(41,"span",15),e._uU(42),e.ALo(43,"number"),e.qZA(),e.qZA(),e.TgZ(44,"div",14),e.TgZ(45,"h4",11),e._uU(46,"Remote Balance"),e.qZA(),e.TgZ(47,"span",15),e._uU(48),e.ALo(49,"number"),e.qZA(),e.qZA(),e.TgZ(50,"div",14),e.TgZ(51,"h4",11),e._uU(52,"Capacity"),e.qZA(),e.TgZ(53,"span",15),e._uU(54),e.ALo(55,"number"),e.qZA(),e.qZA(),e.TgZ(56,"div",14),e.TgZ(57,"h4",11),e._uU(58,"Uptime (Seconds)"),e.qZA(),e.TgZ(59,"span",15),e._uU(60),e.ALo(61,"number"),e.qZA(),e.qZA(),e.qZA(),e._UZ(62,"mat-divider",13),e.TgZ(63,"div",9),e.TgZ(64,"div",14),e.TgZ(65,"h4",11),e._uU(66,"Active"),e.qZA(),e.TgZ(67,"span",15),e._uU(68),e.qZA(),e.qZA(),e.TgZ(69,"div",14),e.TgZ(70,"h4",11),e._uU(71,"Private"),e.qZA(),e.TgZ(72,"span",15),e._uU(73),e.qZA(),e.qZA(),e.TgZ(74,"div",14),e.TgZ(75,"h4",11),e._uU(76,"Initiator"),e.qZA(),e.TgZ(77,"span",15),e._uU(78),e.qZA(),e.qZA(),e.TgZ(79,"div",14),e.TgZ(80,"h4",11),e._uU(81,"Number of Updates"),e.qZA(),e.TgZ(82,"span",15),e._uU(83),e.ALo(84,"number"),e.qZA(),e.qZA(),e.qZA(),e._UZ(85,"mat-divider",13),e.YNc(86,Ki,78,39,"div",16),e.TgZ(87,"div",17),e.TgZ(88,"button",18),e.NdJ("click",function(){return a.onShowAdvanced()}),e.YNc(89,eo,2,0,"p",19),e.YNc(90,to,2,0,"ng-template",null,20,e.W1O),e.qZA(),e.YNc(92,no,2,1,"button",21),e.YNc(93,ao,2,0,"button",22),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t){const o=e.MAs(91);e.xp6(4),e.Q6J("icon",a.faReceipt),e.xp6(5),e.Q6J("ngClass",e.VKq(34,io,a.screenSize===a.screenSizeEnum.XS)),e.xp6(7),e.Oqu(a.channel.chan_id),e.xp6(5),e.Oqu(a.channel.remote_alias),e.xp6(1),e.Q6J("inset",!0),e.xp6(6),e.Oqu(a.channel.channel_point),e.xp6(1),e.Q6J("inset",!0),e.xp6(6),e.Oqu(a.channel.remote_pubkey),e.xp6(1),e.Q6J("inset",!0),e.xp6(6),e.Oqu(e.lcZ(43,24,a.channel.local_balance)),e.xp6(6),e.Oqu(e.lcZ(49,26,a.channel.remote_balance)),e.xp6(6),e.Oqu(e.lcZ(55,28,a.channel.capacity)),e.xp6(6),e.Oqu(e.lcZ(61,30,a.channel.uptime)),e.xp6(2),e.Q6J("inset",!0),e.xp6(6),e.Oqu(a.channel.active?"Yes":"No"),e.xp6(5),e.Oqu(a.channel.private?"Yes":"No"),e.xp6(5),e.Oqu(a.channel.initiator?"Yes":"No"),e.xp6(5),e.Oqu(e.lcZ(84,32,a.channel.num_updates)),e.xp6(2),e.Q6J("inset",!0),e.xp6(1),e.Q6J("ngIf",a.showAdvanced),e.xp6(3),e.Q6J("ngIf",!a.showAdvanced)("ngIfElse",o),e.xp6(3),e.Q6J("ngIf",a.showCopy),e.xp6(1),e.Q6J("ngIf",!a.showCopy)}},directives:[d.xw,d.Wh,d.yH,b.dk,R.BN,q.lW,b.dn,m.mk,L.oO,X.d,m.O5,V.h,oe.y],pipes:[m.JJ],styles:[""]}),n})();var fe=h(9646);const oo=["stepper"];function so(n,i){if(1&n&&e._uU(0),2&n){const t=e.oxw();e.Oqu(t.inputFormLabel)}}function lo(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Amount is required."),e.qZA())}function ro(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Amount must be a positive number."),e.qZA())}function co(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("Amount must be less than or equal to ",null==t.selChannel?null:t.selChannel.local_balance,".")}}function uo(n,i){if(1&n&&(e.TgZ(0,"mat-option",52),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t),e.xp6(1),e.Oqu(t.remote_alias||t.chan_id)}}function po(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Receive from Peer is required."),e.qZA())}function mo(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Receive from Peer not found in the list."),e.qZA())}function _o(n,i){if(1&n&&e._uU(0),2&n){const t=e.oxw();e.Oqu(t.feeFormLabel)}}function ho(n,i){if(1&n&&(e.TgZ(0,"mat-option",52),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t.name," ")}}function go(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("",t.feeFormGroup.controls.selFeeLimitType.value?t.feeFormGroup.controls.selFeeLimitType.value.placeholder:t.feeLimitTypes[0].placeholder," is required.")}}function fo(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("",t.feeFormGroup.controls.selFeeLimitType.value?t.feeFormGroup.controls.selFeeLimitType.value.placeholder:t.feeLimitTypes[0].placeholder," must be a positive number.")}}function Co(n,i){1&n&&e._uU(0,"Invoice/Payment")}function xo(n,i){1&n&&(e.TgZ(0,"mat-icon",53),e._uU(1,"check"),e.qZA())}function To(n,i){1&n&&e._UZ(0,"mat-progress-bar",54)}function yo(n,i){if(1&n&&(e.TgZ(0,"mat-icon",53),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Oqu(null!=t.paymentStatus&&t.paymentStatus.error?"close":"check")}}function Zo(n,i){1&n&&e._UZ(0,"div",7)}function bo(n,i){1&n&&e._UZ(0,"mat-progress-bar",54)}function Ao(n,i){if(1&n&&(e.TgZ(0,"h4",55),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Oqu(t.paymentStatus&&t.paymentStatus.payment_hash?"Rebalance Successful.":"Rebalance Failed.")}}function vo(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",56),e.NdJ("click",function(){return e.CHM(t),e.oxw().onRestart()}),e._uU(1,"Start Again"),e.qZA()}}function wo(n,i){1&n&&e.GkF(0)}function qo(n,i){if(1&n&&e.YNc(0,wo,1,0,"ng-container",57),2&n){const t=e.oxw(),a=e.MAs(98),o=e.MAs(100);e.Q6J("ngTemplateOutlet",t.paymentStatus.error?a:o)}}function So(n,i){if(1&n&&(e.TgZ(0,"div",7),e.TgZ(1,"span",40),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.hij("Error: ",t.paymentStatus.error,"")}}function Lo(n,i){if(1&n&&(e.TgZ(0,"div",7),e.TgZ(1,"div",0),e.TgZ(2,"div",1),e.TgZ(3,"h4",58),e._uU(4,"Payment Hash"),e.qZA(),e.TgZ(5,"span",40),e._uU(6),e.qZA(),e.qZA(),e.qZA(),e._UZ(7,"mat-divider",59),e.TgZ(8,"div",0),e.TgZ(9,"div",60),e.TgZ(10,"h4",58),e._uU(11),e.qZA(),e.TgZ(12,"span",40),e._uU(13),e.qZA(),e.qZA(),e.TgZ(14,"div",60),e.TgZ(15,"h4",58),e._uU(16,"Number of Hops"),e.qZA(),e.TgZ(17,"span",40),e._uU(18),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(6),e.Oqu(t.paymentStatus.payment_hash),e.xp6(5),e.hij("Total Fees (",t.paymentStatus.payment_route.total_fees_msat?"mSats":"Sats",")"),e.xp6(2),e.Oqu(t.paymentStatus.payment_route.total_fees_msat?t.paymentStatus.payment_route.total_fees_msat:t.paymentStatus.payment_route.total_fees?t.paymentStatus.payment_route.total_fees:0),e.xp6(5),e.Oqu(t.paymentStatus&&t.paymentStatus.payment_route&&t.paymentStatus.payment_route.hops&&t.paymentStatus.payment_route.hops.length?t.paymentStatus.payment_route.hops.length:0)}}let ko=(()=>{class n{constructor(t,a,o,s,u,g,U){this.dialogRef=t,this.data=a,this.logger=o,this.store=s,this.actions=u,this.formBuilder=g,this.decimalPipe=U,this.faInfoCircle=x.sqG,this.invoices={},this.selChannel={},this.activeChannels=[],this.feeLimitTypes=[],this.queryRoute={},this.paymentRequest="",this.paymentStatus=null,this.flgReusingInvoice=!1,this.flgInvoiceGenerated=!1,this.flgPaymentSent=!1,this.inputFormLabel="Amount to rebalance",this.feeFormLabel="Select rebalance fee",this.flgEditable=!0,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){let t="",a="";this.selChannel=this.data.message.selChannel,this.activeChannels=this.data.message.channels.filter(o=>o.active&&o.chan_id!==this.selChannel.chan_id&&o.remote_balance>0),this.activeChannels=this.activeChannels.sort((o,s)=>(t=o.remote_alias?o.remote_alias.toLowerCase():o.chan_id?o.chan_id.toLowerCase():"",a=s.remote_alias?s.remote_alias.toLowerCase():o.chan_id.toLowerCase(),ta?1:0)),l.Vc.forEach((o,s)=>{s>0&&this.feeLimitTypes.push(o)}),this.inputFormGroup=this.formBuilder.group({hiddenAmount:["",[c.kI.required]],rebalanceAmount:["",[c.kI.required,c.kI.min(1),c.kI.max(this.selChannel.local_balance)]],selRebalancePeer:[null,c.kI.required]}),this.feeFormGroup=this.formBuilder.group({selFeeLimitType:[this.feeLimitTypes[0],c.kI.required],feeLimit:["",[c.kI.required,c.kI.min(0)]],hiddenFeeLimit:["",[c.kI.required]]}),this.statusFormGroup=this.formBuilder.group({}),this.store.select(C.Ef).pipe((0,_.R)(this.unSubs[0])).subscribe(o=>{this.invoices=o.listInvoices,this.logger.info(o)}),this.actions.pipe((0,_.R)(this.unSubs[1]),(0,E.h)(o=>o.type===l.uR.SET_QUERY_ROUTES_LND||o.type===l.uR.SEND_PAYMENT_STATUS_LND||o.type===l.uR.NEWLY_SAVED_INVOICE_LND)).subscribe(o=>{o.type===l.uR.SET_QUERY_ROUTES_LND&&(this.queryRoute=o.payload),o.type===l.uR.SEND_PAYMENT_STATUS_LND&&(this.logger.info(o.payload),this.flgPaymentSent=!0,this.paymentStatus=o.payload,this.flgEditable=!0),o.type===l.uR.NEWLY_SAVED_INVOICE_LND&&(this.logger.info(o.payload),this.flgInvoiceGenerated=!0,this.sendPayment(o.payload.paymentRequest))}),this.inputFormGroup.get("rebalanceAmount").valueChanges.pipe((0,_.R)(this.unSubs[2]),(0,he.O)(0)).subscribe(o=>{this.inputFormGroup.controls.selRebalancePeer.setValue(""),this.inputFormGroup.controls.selRebalancePeer.setErrors(null),this.filteredActiveChannels=(0,fe.of)(o?this.filterActiveChannels():this.activeChannels.slice())}),this.inputFormGroup.get("selRebalancePeer").valueChanges.pipe((0,_.R)(this.unSubs[3]),(0,he.O)("")).subscribe(o=>{"string"==typeof o&&(this.filteredActiveChannels=(0,fe.of)(this.filterActiveChannels()))})}onSelectFee(){return this.inputFormGroup.controls.selRebalancePeer.value&&"string"==typeof this.inputFormGroup.controls.selRebalancePeer.value&&this.onSelectedPeerChanged(),this.inputFormGroup.controls.selRebalancePeer.value&&"string"!=typeof this.inputFormGroup.controls.selRebalancePeer.value?!this.inputFormGroup.controls.rebalanceAmount.value||(0===this.stepper.selectedIndex&&(this.inputFormGroup.controls.hiddenAmount.setValue(this.inputFormGroup.controls.rebalanceAmount.value),this.stepper.next()),this.queryRoute=null,this.feeFormGroup.reset(),void this.feeFormGroup.controls.selFeeLimitType.setValue(this.feeLimitTypes[0])):(this.inputFormGroup.controls.selRebalancePeer.setErrors({required:!0}),!0)}stepSelectionChanged(t){switch(t.selectedIndex){case 0:default:this.inputFormLabel="Amount to rebalance",this.feeFormLabel="Select rebalance fee";break;case 1:this.inputFormLabel=this.inputFormGroup.controls.rebalanceAmount.value||this.inputFormGroup.controls.selRebalancePeer.value.remote_alias?"Rebalancing Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.rebalanceAmount.value?this.inputFormGroup.controls.rebalanceAmount.value:0)+" Sats | Peer: "+(this.inputFormGroup.controls.selRebalancePeer.value.remote_alias?this.inputFormGroup.controls.selRebalancePeer.value.remote_alias:this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey.substring(0,15)+"..."):"Amount to rebalance",this.feeFormLabel="Select rebalance fee";break;case 2:this.inputFormLabel=this.inputFormGroup.controls.rebalanceAmount.value||this.inputFormGroup.controls.selRebalancePeer.value.remote_alias?"Rebalancing Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.rebalanceAmount.value?this.inputFormGroup.controls.rebalanceAmount.value:0)+" Sats | Peer: "+(this.inputFormGroup.controls.selRebalancePeer.value.remote_alias?this.inputFormGroup.controls.selRebalancePeer.value.remote_alias:this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey.substring(0,15)+"..."):"Amount to rebalance",this.feeFormLabel=this.queryRoute&&this.queryRoute.routes&&this.queryRoute.routes.length>0&&(this.queryRoute.routes[0].total_fees_msat||this.queryRoute.routes[0].hops&&this.queryRoute.routes[0].hops.length)?this.feeFormGroup.controls.selFeeLimitType.value.placeholder+": "+this.decimalPipe.transform(this.feeFormGroup.controls.feeLimit.value?this.feeFormGroup.controls.feeLimit.value:0)+" | Hops: "+this.queryRoute.routes[0].hops.length:"Select rebalance fee"}t.selectedIndex+this.selChannel.local_balance||!this.feeFormGroup.controls.feeLimit.value||this.feeFormGroup.controls.feeLimit.value<0||!this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey)return!0;this.feeFormGroup.controls.hiddenFeeLimit.setValue(this.feeFormGroup.controls.feeLimit.value),this.stepper.next(),this.flgEditable=!1,this.paymentRequest="",this.paymentStatus=null,this.flgReusingInvoice=!1,this.flgInvoiceGenerated=!1,this.flgPaymentSent=!1;const t=this.findUnsettledInvoice();t?(this.flgReusingInvoice=!0,this.sendPayment(t.payment_request)):this.store.dispatch((0,y.Rd)({payload:{uiMessage:l.m6.NO_SPINNER,memo:"Local-Rebalance-"+this.inputFormGroup.controls.rebalanceAmount.value+"-Sats",invoiceValue:this.inputFormGroup.controls.rebalanceAmount.value,private:!1,expiry:3600,pageSize:l.IV,openModal:!1}}))}findUnsettledInvoice(){return this.invoices.invoices.find(t=>(0==+t.settle_date||!t.settle_date)&&t.memo==="Local-Rebalance-"+this.inputFormGroup.controls.rebalanceAmount.value+"-Sats"&&"CANCELED"!==t.state)}sendPayment(t){this.flgInvoiceGenerated=!0,this.paymentRequest=t,this.store.dispatch((0,y.oV)({payload:{uiMessage:l.m6.NO_SPINNER,paymentReq:t,outgoingChannel:this.selChannel,feeLimitType:this.feeFormGroup.controls.selFeeLimitType.value.id,feeLimit:this.feeFormGroup.controls.feeLimit.value,allowSelfPayment:!0,lastHopPubkey:this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey,fromDialog:!0}}))}filterActiveChannels(){return this.activeChannels.filter(t=>t.remote_balance>=this.inputFormGroup.controls.rebalanceAmount.value&&t.chan_id!==this.selChannel.chan_id&&(0===t.remote_alias.toLowerCase().indexOf(this.inputFormGroup.controls.selRebalancePeer.value?this.inputFormGroup.controls.selRebalancePeer.value.toLowerCase():"")||0===t.chan_id.toLowerCase().indexOf(this.inputFormGroup.controls.selRebalancePeer.value?this.inputFormGroup.controls.selRebalancePeer.value.toLowerCase():"")))}onSelectedPeerChanged(){if(this.inputFormGroup.controls.selRebalancePeer.value&&this.inputFormGroup.controls.selRebalancePeer.value.length>0&&"string"==typeof this.inputFormGroup.controls.selRebalancePeer.value){const t=this.activeChannels.filter(a=>a.remote_alias.length===this.inputFormGroup.controls.selRebalancePeer.value.length&&0===a.remote_alias.toLowerCase().indexOf(this.inputFormGroup.controls.selRebalancePeer.value?this.inputFormGroup.controls.selRebalancePeer.value.toLowerCase():""));t&&t.length>0?(this.inputFormGroup.controls.selRebalancePeer.setValue(t[0]),this.inputFormGroup.controls.selRebalancePeer.setErrors(null)):this.inputFormGroup.controls.selRebalancePeer.setErrors({notfound:!0})}}displayFn(t){return t&&t.remote_alias?t.remote_alias:t&&t.chan_id?t.chan_id:""}onClose(){this.dialogRef.close(!1)}onRestart(){this.flgInvoiceGenerated=!1,this.flgPaymentSent=!1,this.flgEditable=!0,this.stepper.reset(),this.inputFormGroup.reset(),this.feeFormGroup.reset(),this.statusFormGroup.reset(),this.inputFormGroup.controls.hiddenAmount.setValue(""),this.inputFormGroup.controls.hiddenAmount.setErrors(null),this.inputFormGroup.controls.rebalanceAmount.setValue(""),this.inputFormGroup.controls.rebalanceAmount.setErrors(null),this.inputFormGroup.controls.selRebalancePeer.setValue(""),this.inputFormGroup.controls.selRebalancePeer.setErrors(null),this.filteredActiveChannels=(0,fe.of)(this.activeChannels)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(P.WI),e.Y36(F.mQ),e.Y36(w.yh),e.Y36(z.eX),e.Y36(c.qu),e.Y36(m.JJ))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-rebalance"]],viewQuery:function(t,a){if(1&t&&e.Gf(oo,5),2&t){let o;e.iGM(o=e.CRH())&&(a.stepper=o.first)}},decls:101,vars:45,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","15","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","space-between stretch",1,"padding-gap-large"],["fxFlex","40"],["fxFlex","30"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["fxLayout","column","fxLayout.gt-sm","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","48"],["autoFocus","","matInput","","placeholder","Amount","type","number","tabindex","1","formControlName","rebalanceAmount","required","",3,"step"],["matSuffix",""],[4,"ngIf"],["fxFlex","48","fxLayoutAlign","start end"],["type","text","placeholder","Receive from Peer","aria-label","Receive from Peer","matInput","","formControlName","selRebalancePeer","tabindex","2","required","",3,"matAutocomplete","change"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],[3,"value",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-button","","color","primary","tabindex","3","type","submit",3,"click"],["matStepLabel","","disabled","true"],["tabindex","6","formControlName","selFeeLimitType","Placeholder","Fee Limits","required",""],["matInput","","formControlName","feeLimit","type","number","tabindex","7","required","",3,"placeholder","step"],["mat-button","","color","primary","tabindex","8","type","submit",3,"click"],[3,"stepControl"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"flat-expansion-panel","mb-2"],["fxLayoutAlign","start center","fxFlex","100"],["class","ml-1 icon-small",4,"ngIf"],[1,"foreground-secondary-text"],["fxFlex","100","color","primary","mode","indeterminate",4,"ngIf"],["fxFlex","100",1,"flat-expansion-panel",3,"expanded"],["fxLayout","column",4,"ngIf","ngIfElse"],["fxLayoutAlign","start","class","font-bold-500 mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-1"],["mat-button","","color","primary","tabindex","11","type","button",3,"click",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["paymentStatusBlock",""],["paymentFailedBlock",""],["paymentSuccessfulBlock",""],[3,"value"],[1,"ml-1","icon-small"],["fxFlex","100","color","primary","mode","indeterminate"],["fxLayoutAlign","start",1,"font-bold-500","mt-1"],["mat-button","","color","primary","tabindex","11","type","button",3,"click"],[4,"ngTemplateOutlet"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"w-100","my-1"],["fxFlex","50"]],template:function(t,a){if(1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e.TgZ(4,"span",4),e._uU(5,"Channel Rebalance"),e.qZA(),e.qZA(),e.TgZ(6,"button",5),e.NdJ("click",function(){return a.onClose()}),e._uU(7,"X"),e.qZA(),e.qZA(),e.TgZ(8,"mat-card-content",6),e.TgZ(9,"div",7),e.TgZ(10,"div",8),e.TgZ(11,"div",9),e._UZ(12,"fa-icon",10),e.TgZ(13,"span"),e._uU(14,"Circular Rebalance is a payment you make to *yourselves* to affect a relative change in the balances of two channels. This is accomplished by sending payment out from the selected channel and receiving it back on the channel with the selected peer. Please note, you will be paying routing fee to balance the channels in this manner."),e.qZA(),e.qZA(),e.qZA(),e.TgZ(15,"div",11),e.TgZ(16,"p",12),e.TgZ(17,"strong"),e._uU(18,"Channel Peer:\xa0"),e.qZA(),e._uU(19),e.ALo(20,"titlecase"),e.qZA(),e.TgZ(21,"p",13),e.TgZ(22,"strong"),e._uU(23,"Channel ID:\xa0"),e.qZA(),e._uU(24),e.qZA(),e._UZ(25,"p",13),e.qZA(),e.TgZ(26,"mat-vertical-stepper",14,15),e.NdJ("selectionChange",function(s){return a.stepSelectionChanged(s)}),e.TgZ(28,"mat-step",16),e.TgZ(29,"form",17),e.YNc(30,so,1,1,"ng-template",18),e.TgZ(31,"div",19),e.TgZ(32,"mat-form-field",20),e._UZ(33,"input",21),e.TgZ(34,"mat-hint"),e._uU(35),e.qZA(),e.TgZ(36,"span",22),e._uU(37,"Sats"),e.qZA(),e.YNc(38,lo,2,0,"mat-error",23),e.YNc(39,ro,2,0,"mat-error",23),e.YNc(40,co,2,1,"mat-error",23),e.qZA(),e.TgZ(41,"mat-form-field",24),e.TgZ(42,"input",25),e.NdJ("change",function(){return a.onSelectedPeerChanged()}),e.qZA(),e.TgZ(43,"mat-autocomplete",26,27),e.NdJ("optionSelected",function(){return a.onSelectedPeerChanged()}),e.YNc(45,uo,2,2,"mat-option",28),e.ALo(46,"async"),e.qZA(),e.YNc(47,po,2,0,"mat-error",23),e.YNc(48,mo,2,0,"mat-error",23),e.qZA(),e.qZA(),e.TgZ(49,"div",29),e.TgZ(50,"button",30),e.NdJ("click",function(){return a.onSelectFee()}),e._uU(51,"Select Fee"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(52,"mat-step",16),e.TgZ(53,"form",17),e.YNc(54,_o,1,1,"ng-template",31),e.TgZ(55,"div",19),e.TgZ(56,"div",19),e.TgZ(57,"mat-form-field",24),e.TgZ(58,"mat-select",32),e.YNc(59,ho,2,2,"mat-option",28),e.qZA(),e.qZA(),e.TgZ(60,"mat-form-field",20),e._UZ(61,"input",33),e.YNc(62,go,2,1,"mat-error",23),e.YNc(63,fo,2,1,"mat-error",23),e.qZA(),e.qZA(),e.qZA(),e.TgZ(64,"div",29),e.TgZ(65,"button",34),e.NdJ("click",function(){return a.onRebalance()}),e._uU(66,"Rebalance"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(67,"mat-step",35),e.TgZ(68,"form",17),e.YNc(69,Co,1,0,"ng-template",18),e.TgZ(70,"div",36),e.TgZ(71,"mat-expansion-panel",37),e.TgZ(72,"mat-expansion-panel-header"),e.TgZ(73,"mat-panel-title"),e.TgZ(74,"span",38),e._uU(75),e.YNc(76,xo,2,0,"mat-icon",39),e.qZA(),e.qZA(),e.qZA(),e.TgZ(77,"div",7),e.TgZ(78,"span",40),e._uU(79),e.qZA(),e.qZA(),e.qZA(),e.YNc(80,To,1,0,"mat-progress-bar",41),e.TgZ(81,"mat-expansion-panel",42),e.TgZ(82,"mat-expansion-panel-header"),e.TgZ(83,"mat-panel-title"),e.TgZ(84,"span",38),e._uU(85),e.YNc(86,yo,2,1,"mat-icon",39),e.qZA(),e.qZA(),e.qZA(),e.YNc(87,Zo,1,0,"div",43),e.qZA(),e.YNc(88,bo,1,0,"mat-progress-bar",41),e.qZA(),e.YNc(89,Ao,2,1,"h4",44),e.TgZ(90,"div",45),e.YNc(91,vo,2,0,"button",46),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(92,"div",47),e.TgZ(93,"button",48),e._uU(94,"Close"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.YNc(95,qo,1,1,"ng-template",null,49,e.W1O),e.YNc(97,So,3,1,"ng-template",null,50,e.W1O),e.YNc(99,Lo,19,4,"ng-template",null,51,e.W1O)),2&t){const o=e.MAs(44),s=e.MAs(96);e.xp6(12),e.Q6J("icon",a.faInfoCircle),e.xp6(7),e.Oqu(e.lcZ(20,41,a.selChannel.remote_alias)),e.xp6(5),e.Oqu(a.selChannel.chan_id),e.xp6(2),e.Q6J("linear",!0),e.xp6(2),e.Q6J("stepControl",a.inputFormGroup)("editable",a.flgEditable),e.xp6(1),e.Q6J("formGroup",a.inputFormGroup),e.xp6(4),e.Q6J("step",100),e.xp6(2),e.AsE("(Local Bal: ",null==a.selChannel?null:a.selChannel.local_balance,", Remaining: ",(null==a.selChannel?null:a.selChannel.local_balance)-(a.inputFormGroup.controls.rebalanceAmount.value?a.inputFormGroup.controls.rebalanceAmount.value:0),")"),e.xp6(3),e.Q6J("ngIf",null==a.inputFormGroup.controls.rebalanceAmount.errors?null:a.inputFormGroup.controls.rebalanceAmount.errors.required),e.xp6(1),e.Q6J("ngIf",null==a.inputFormGroup.controls.rebalanceAmount.errors?null:a.inputFormGroup.controls.rebalanceAmount.errors.min),e.xp6(1),e.Q6J("ngIf",null==a.inputFormGroup.controls.rebalanceAmount.errors?null:a.inputFormGroup.controls.rebalanceAmount.errors.max),e.xp6(2),e.Q6J("matAutocomplete",o),e.xp6(1),e.Q6J("displayWith",a.displayFn),e.xp6(2),e.Q6J("ngForOf",e.lcZ(46,43,a.filteredActiveChannels)),e.xp6(2),e.Q6J("ngIf",null==a.inputFormGroup.controls.selRebalancePeer.errors?null:a.inputFormGroup.controls.selRebalancePeer.errors.required),e.xp6(1),e.Q6J("ngIf",null==a.inputFormGroup.controls.selRebalancePeer.errors?null:a.inputFormGroup.controls.selRebalancePeer.errors.notfound),e.xp6(4),e.Q6J("stepControl",a.feeFormGroup)("editable",a.flgEditable),e.xp6(1),e.Q6J("formGroup",a.feeFormGroup),e.xp6(6),e.Q6J("ngForOf",a.feeLimitTypes),e.xp6(2),e.s9C("placeholder",a.feeFormGroup.controls.selFeeLimitType.value?a.feeFormGroup.controls.selFeeLimitType.value.placeholder:a.feeLimitTypes[0].placeholder),e.Q6J("step",1),e.xp6(1),e.Q6J("ngIf",null==a.feeFormGroup.controls.feeLimit.errors?null:a.feeFormGroup.controls.feeLimit.errors.required),e.xp6(1),e.Q6J("ngIf",null==a.feeFormGroup.controls.feeLimit.errors?null:a.feeFormGroup.controls.feeLimit.errors.min),e.xp6(4),e.Q6J("stepControl",a.statusFormGroup),e.xp6(1),e.Q6J("formGroup",a.statusFormGroup),e.xp6(7),e.Oqu(a.flgInvoiceGenerated?a.flgReusingInvoice?"Invoice re-used":"Invoice generated":"Generating invoice..."),e.xp6(1),e.Q6J("ngIf",a.flgInvoiceGenerated),e.xp6(3),e.Oqu(a.paymentRequest),e.xp6(1),e.Q6J("ngIf",!a.flgInvoiceGenerated),e.xp6(1),e.Q6J("expanded",(a.flgInvoiceGenerated||a.flgReusingInvoice)&&a.flgPaymentSent),e.xp6(4),e.Oqu(a.flgInvoiceGenerated||a.flgPaymentSent?a.flgPaymentSent?null!=a.paymentStatus&&a.paymentStatus.error?"Payment failed":"Payment successful":"Processing payment...":"Payment waiting for Invoice"),e.xp6(1),e.Q6J("ngIf",a.flgPaymentSent),e.xp6(1),e.Q6J("ngIf",!a.paymentStatus)("ngIfElse",s),e.xp6(1),e.Q6J("ngIf",a.flgInvoiceGenerated&&!a.flgPaymentSent),e.xp6(1),e.Q6J("ngIf",a.flgInvoiceGenerated&&a.flgPaymentSent),e.xp6(2),e.Q6J("ngIf",a.paymentStatus&&a.paymentStatus.error),e.xp6(2),e.Q6J("mat-dialog-close",!1)}},directives:[d.xw,d.yH,b.dk,d.Wh,q.lW,b.dn,R.BN,B.Vq,B.C0,c._Y,c.JL,c.sg,B.VY,f.KE,D.Nt,c.wV,c.Fj,V.h,c.JJ,c.u,c.Q7,f.bx,f.R9,m.O5,ne.ZL,ne.XC,m.sg,N.gD,H.ib,H.yz,H.yK,P.ZT,f.TO,Q.ey,te.Hw,J.pW,m.tP,X.d],pipes:[m.rS,m.Ov],styles:[""]}),n})();function Fo(n,i){if(1&n&&(e.TgZ(0,"div",16),e.TgZ(1,"p",17),e.TgZ(2,"mat-icon",18),e._uU(3,"close"),e.qZA(),e._uU(4),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(4),e.Oqu(t.errorMsg)}}function No(n,i){if(1&n&&(e.TgZ(0,"div",27),e._UZ(1,"fa-icon",28),e.TgZ(2,"span"),e._uU(3,"Priority/Fee for force closing inactive channels cannot be modified."),e.qZA(),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("icon",t.faInfoCircle)}}function Uo(n,i){if(1&n&&(e.TgZ(0,"mat-option",29),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function Oo(n,i){1&n&&(e.TgZ(0,"mat-form-field",30),e._UZ(1,"input",31),e.qZA())}function Ro(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Number of blocks is required."),e.qZA())}function Io(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-form-field",32),e.TgZ(1,"input",33,34),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw(2).blocks=o}),e.qZA(),e.YNc(3,Ro,2,0,"mat-error",35),e.qZA()}if(2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngModel",t.blocks)("step",1)("min",0),e.xp6(2),e.Q6J("ngIf",!t.blocks)}}function Do(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Fees is required."),e.qZA())}function Mo(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-form-field",32),e.TgZ(1,"input",36,37),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw(2).fees=o}),e.qZA(),e.YNc(3,Do,2,0,"mat-error",35),e.qZA()}if(2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngModel",t.fees)("step",1)("min",0),e.xp6(2),e.Q6J("ngIf",!t.fees)}}function Po(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",19),e.YNc(1,No,4,1,"div",20),e.TgZ(2,"div",21),e.TgZ(3,"mat-form-field",22),e.TgZ(4,"mat-select",23),e.NdJ("valueChange",function(o){return e.CHM(t),e.oxw().selTransType=o}),e.YNc(5,Uo,2,2,"mat-option",24),e.qZA(),e.qZA(),e.YNc(6,Oo,2,0,"mat-form-field",25),e.YNc(7,Io,4,4,"mat-form-field",26),e.YNc(8,Mo,4,4,"mat-form-field",26),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",!t.channelToClose.active),e.xp6(3),e.Q6J("value",t.selTransType)("disabled",!t.channelToClose.active),e.xp6(1),e.Q6J("ngForOf",t.transTypes),e.xp6(1),e.Q6J("ngIf","0"===t.selTransType),e.xp6(1),e.Q6J("ngIf","1"===t.selTransType),e.xp6(1),e.Q6J("ngIf","2"===t.selTransType)}}function Jo(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",38),e.NdJ("click",function(){return e.CHM(t),e.oxw().resetData()}),e._uU(1,"Clear"),e.qZA()}}function Eo(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",39),e.NdJ("click",function(){return e.CHM(t),e.oxw().onCloseChannel()}),e._uU(1),e.qZA()}if(2&n){const t=e.oxw();e.xp6(1),e.Oqu(t.channelToClose.active?"Close Channel":"Force Close")}}function Qo(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"button",40),e.NdJ("click",function(){return e.CHM(t),e.oxw().onClose()}),e._uU(1,"Ok"),e.qZA()}}let Yo=(()=>{class n{constructor(t,a,o,s,u){this.dialogRef=t,this.data=a,this.store=o,this.actions=s,this.logger=u,this.transTypes=l.Dr,this.selTransType="0",this.blocks=null,this.fees=null,this.faExclamationTriangle=x.eHv,this.faInfoCircle=x.sqG,this.flgPendingHtlcs=!1,this.errorMsg="Please wait for pending HTLCs to settle before attempting channel closure.",this.unSubs=[new p.x,new p.x]}ngOnInit(){this.channelToClose=this.data.channel,this.actions.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(t=>t.type===l.uR.UPDATE_API_CALL_STATUS_LND||t.type===l.uR.SET_CHANNELS_LND)).subscribe(t=>{if(t.type===l.uR.SET_CHANNELS_LND){const a=t.payload.find(o=>o.chan_id===this.data.channel.chan_id);a&&a.pending_htlcs&&a.pending_htlcs.length&&a.pending_htlcs.length>0&&(this.flgPendingHtlcs=!0)}t.type===l.uR.UPDATE_API_CALL_STATUS_LND&&t.payload.status===l.Bn.ERROR&&"FetchAllChannels"===t.payload.action&&this.logger.error("Fetching latest channel information failed!\n"+t.payload.message)})}onCloseChannel(){if("1"===this.selTransType&&(!this.blocks||0===this.blocks)||"2"===this.selTransType&&(!this.fees||0===this.fees))return!0;const t={channelPoint:this.channelToClose.channel_point,forcibly:!this.channelToClose.active};this.blocks&&(t.targetConf=this.blocks),this.fees&&(t.satPerByte=this.fees),this.store.dispatch((0,y.BL)({payload:t})),this.dialogRef.close(!1)}resetData(){this.selTransType="0",this.blocks=null,this.fees=null}onClose(){this.dialogRef.close(!1)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(P.WI),e.Y36(w.yh),e.Y36(z.eX),e.Y36(F.mQ))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-close-channel"]],decls:19,vars:7,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxLayout","column",1,"bordered-box","mb-1","p-2"],["fxLayoutAlign","start center",1,"pb-1","word-break"],["fxLayoutAlign","start center",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center"],["mat-button","","color","primary","type","reset","class","mr-1","tabindex","3","default","",3,"click",4,"ngIf"],["mat-button","","color","primary","type","submit","tabindex","4",3,"click",4,"ngIf"],["mat-button","","color","primary","type","submit","tabindex","5",3,"click",4,"ngIf"],["fxLayoutAlign","start center"],["fxFlex","100","fxLayoutAlign","start center",1,"color-warn"],[1,"mr-1","icon-small"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100","class","alert alert-info",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex.gt-sm","48"],["tabindex","1",3,"value","disabled","valueChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","48",4,"ngIf"],["fxFlex.gt-sm","48","fxLayoutAlign","start end",4,"ngIf"],["fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],[3,"value"],["fxFlex","48"],["matInput","","placeholder","Default","disabled",""],["fxFlex.gt-sm","48","fxLayoutAlign","start end"],["matInput","","placeholder","Number of Blocks","type","number","name","blocks","required","","tabindex","2",3,"ngModel","step","min","ngModelChange"],["blcks","ngModel"],[4,"ngIf"],["matInput","","placeholder","Fees (Sats/vByte)","type","number","name","ccfees","required","","tabindex","3",3,"ngModel","step","min","ngModelChange"],["clchfee","ngModel"],["mat-button","","color","primary","type","reset","tabindex","3","default","",1,"mr-1",3,"click"],["mat-button","","color","primary","type","submit","tabindex","4",3,"click"],["mat-button","","color","primary","type","submit","tabindex","5",3,"click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e.TgZ(4,"span",4),e._uU(5),e.qZA(),e.qZA(),e.TgZ(6,"button",5),e.NdJ("click",function(){return a.onClose()}),e._uU(7,"X"),e.qZA(),e.qZA(),e.TgZ(8,"mat-card-content",6),e.TgZ(9,"form",7),e.TgZ(10,"div",8),e.TgZ(11,"p",9),e._uU(12),e.qZA(),e.YNc(13,Fo,5,1,"div",10),e.YNc(14,Po,9,7,"div",11),e.qZA(),e.TgZ(15,"div",12),e.YNc(16,Jo,2,0,"button",13),e.YNc(17,Eo,2,1,"button",14),e.YNc(18,Qo,2,0,"button",15),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(5),e.Oqu(a.channelToClose.active?"Close Channel":"Force Close Channel"),e.xp6(7),e.hij("",a.channelToClose.active?"Closing channel: "+(a.channelToClose.remote_alias||a.channelToClose.chan_id?a.channelToClose.remote_alias&&a.channelToClose.chan_id?a.channelToClose.remote_alias+" ("+a.channelToClose.chan_id+")":a.channelToClose.remote_alias?a.channelToClose.remote_alias:a.channelToClose.chan_id:a.channelToClose.channel_point):"Force closing channel: "+(a.channelToClose.remote_alias||a.channelToClose.chan_id?a.channelToClose.remote_alias&&a.channelToClose.chan_id?a.channelToClose.remote_alias+" ("+a.channelToClose.chan_id+")":a.channelToClose.remote_alias?a.channelToClose.remote_alias:a.channelToClose.chan_id:a.channelToClose.channel_point)," "),e.xp6(1),e.Q6J("ngIf",a.flgPendingHtlcs),e.xp6(1),e.Q6J("ngIf",!a.flgPendingHtlcs),e.xp6(2),e.Q6J("ngIf",a.channelToClose.active&&!a.flgPendingHtlcs),e.xp6(1),e.Q6J("ngIf",!a.flgPendingHtlcs),e.xp6(1),e.Q6J("ngIf",a.flgPendingHtlcs))},directives:[d.xw,d.yH,b.dk,d.Wh,q.lW,b.dn,c._Y,c.JL,c.F,m.O5,te.Hw,f.KE,N.gD,m.sg,R.BN,Q.ey,D.Nt,c.wV,c.qQ,c.Fj,$.q,c.Q7,c.JJ,c.On,f.TO],styles:[""]}),n})();function Bo(n,i){1&n&&e._UZ(0,"mat-progress-bar",30)}function Ho(n,i){1&n&&(e.TgZ(0,"th",31),e._uU(1," Peer "),e.qZA())}function Go(n,i){1&n&&e._UZ(0,"span",39)}function zo(n,i){1&n&&e._UZ(0,"span",40)}function Vo(n,i){if(1&n&&(e.TgZ(0,"span",41),e._UZ(1,"fa-icon",42),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("icon",t.faEyeSlash)}}function Wo(n,i){if(1&n&&(e.TgZ(0,"span",43),e._UZ(1,"fa-icon",42),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("icon",t.faEye)}}const Xo=function(n){return{"max-width":n}};function $o(n,i){if(1&n&&(e.TgZ(0,"td",32),e.TgZ(1,"div",33),e.YNc(2,Go,1,0,"span",34),e.YNc(3,zo,1,0,"span",35),e.YNc(4,Vo,2,1,"span",36),e.YNc(5,Wo,2,1,"span",37),e.TgZ(6,"span",38),e._uU(7),e.qZA(),e.qZA(),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.xp6(1),e.Q6J("ngStyle",e.VKq(6,Xo,a.screenSize===a.screenSizeEnum.XS?"10rem":a.screenSize===a.screenSizeEnum.MD?"15rem":"22rem")),e.xp6(1),e.Q6J("ngIf",t.active),e.xp6(1),e.Q6J("ngIf",!t.active),e.xp6(1),e.Q6J("ngIf",t.private),e.xp6(1),e.Q6J("ngIf",!t.private),e.xp6(2),e.Oqu(t.remote_alias||t.remote_pubkey)}}function jo(n,i){if(1&n&&(e.TgZ(0,"th",44),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("Uptime (",t.timeUnit,")")}}function Ko(n,i){if(1&n&&(e.TgZ(0,"td",32),e.TgZ(1,"span",45),e._uU(2),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij("",t.uptime_str," ")}}function es(n,i){1&n&&(e.TgZ(0,"th",44),e._uU(1,"Sats Sent "),e.qZA())}function ts(n,i){if(1&n&&(e.TgZ(0,"td",32),e.TgZ(1,"span",45),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij("",e.lcZ(3,1,t.total_satoshis_sent)," ")}}function ns(n,i){1&n&&(e.TgZ(0,"th",44),e._uU(1,"Sats Received "),e.qZA())}function as(n,i){if(1&n&&(e.TgZ(0,"td",32),e.TgZ(1,"span",45),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij("",e.lcZ(3,1,t.total_satoshis_received)," ")}}function is(n,i){1&n&&(e.TgZ(0,"th",44),e._uU(1,"Local Balance (Sats) "),e.qZA())}function os(n,i){if(1&n&&(e.TgZ(0,"td",32),e.TgZ(1,"span",45),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij("",e.lcZ(3,1,t.local_balance)," ")}}function ss(n,i){1&n&&(e.TgZ(0,"th",44),e._uU(1,"Remote Balance (Sats) "),e.qZA())}function ls(n,i){if(1&n&&(e.TgZ(0,"td",32),e.TgZ(1,"span",45),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij("",e.lcZ(3,1,t.remote_balance)," ")}}function rs(n,i){1&n&&(e.TgZ(0,"th",46),e._uU(1,"Balance Score "),e.qZA())}function cs(n,i){if(1&n&&(e.TgZ(0,"td",47),e.TgZ(1,"div",48),e.TgZ(2,"mat-hint",49),e._uU(3),e.ALo(4,"number"),e.qZA(),e.qZA(),e._UZ(5,"mat-progress-bar",50),e.qZA()),2&n){const t=i.$implicit;e.xp6(3),e.Oqu(e.lcZ(4,2,t.balancedness||0)),e.xp6(2),e.s9C("value",t.local_balance&&t.local_balance>0?+t.local_balance/(+t.local_balance+ +t.remote_balance)*100:0)}}function us(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"th",51),e.TgZ(1,"div",52),e.TgZ(2,"mat-select",53),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",54),e.NdJ("click",function(){return e.CHM(t),e.oxw().onChannelUpdate("all")}),e._uU(5,"Update Fee Policy"),e.qZA(),e.TgZ(6,"mat-option",54),e.NdJ("click",function(){return e.CHM(t),e.oxw().onDownloadCSV()}),e._uU(7,"Download CSV"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function ps(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-option",54),e.NdJ("click",function(){e.CHM(t);const o=e.oxw().$implicit;return e.oxw().onCircularRebalance(o)}),e._uU(1,"Circular Rebalance"),e.qZA()}}function ms(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-option",54),e.NdJ("click",function(){e.CHM(t);const o=e.oxw().$implicit;return e.oxw().onLoopOut(o)}),e._uU(1,"Loop Out"),e.qZA()}}function ds(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",55),e.TgZ(1,"div",52),e.TgZ(2,"mat-select",56),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",54),e.NdJ("click",function(o){const u=e.CHM(t).$implicit;return e.oxw().onChannelClick(u,o)}),e._uU(5,"View Info"),e.qZA(),e.TgZ(6,"mat-option",54),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onViewRemotePolicy(s)}),e._uU(7,"View Remote Fee "),e.qZA(),e.TgZ(8,"mat-option",54),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onChannelUpdate(s)}),e._uU(9,"Update Fee Policy"),e.qZA(),e.YNc(10,ps,2,0,"mat-option",57),e.YNc(11,ms,2,0,"mat-option",57),e.TgZ(12,"mat-option",54),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onChannelClose(s)}),e._uU(13,"Close Channel"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(10),e.Q6J("ngIf",+t.versionsArr[0]>0||+t.versionsArr[1]>=9),e.xp6(1),e.Q6J("ngIf",t.selNode.swapServerUrl)}}function _s(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No peers connected. Add a peer in order to open a channel."),e.qZA())}function hs(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No channel available."),e.qZA())}function gs(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting channels..."),e.qZA())}function fs(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function Cs(n,i){if(1&n&&(e.TgZ(0,"td",58),e.YNc(1,_s,2,0,"p",59),e.YNc(2,hs,2,0,"p",59),e.YNc(3,gs,2,0,"p",59),e.YNc(4,fs,2,1,"p",59),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.numPeers<1&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",t.numPeers>0&&(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const xs=function(n){return{"display-none":n}};function Ts(n,i){if(1&n&&e._UZ(0,"tr",60),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,xs,t.numPeers>0&&(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function ys(n,i){1&n&&e._UZ(0,"tr",61)}function Zs(n,i){1&n&&e._UZ(0,"tr",62)}const bs=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},As=function(){return["no_peer"]};let vs=(()=>{class n{constructor(t,a,o,s,u,g,U){this.logger=t,this.store=a,this.lndEffects=o,this.commonService=s,this.rtlEffects=u,this.decimalPipe=g,this.loopService=U,this.timeUnit="mins:secs",this.userPersonaEnum=l.ol,this.selNode={},this.totalBalance=0,this.displayedColumns=[],this.channelsData=[],this.myChanPolicy={},this.information={},this.numPeers=-1,this.selFilter="",this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.versionsArr=[],this.faEye=x.Mdf,this.faEyeSlash=x.Aq,this.targetConf=6,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["remote_alias","local_balance","remote_balance","actions"]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["remote_alias","local_balance","remote_balance","balancedness","actions"]):(this.flgSticky=!0,this.displayedColumns=["remote_alias","uptime","total_satoshis_sent","total_satoshis_received","local_balance","remote_balance","balancedness","actions"])}ngOnInit(){this.store.select(C.$k).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(C.Q5).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.information=t,this.information&&this.information.version&&(this.versionsArr=this.information.version.split("."))}),this.store.select(C.Wi).pipe((0,_.R)(this.unSubs[2])).subscribe(t=>{this.numPeers=t.peers&&t.peers.length?t.peers.length:0}),this.store.select(C.qU).pipe((0,_.R)(this.unSubs[3])).subscribe(t=>{this.totalBalance=+t.blockchainBalance.total_balance}),this.store.select(C.ZW).pipe((0,_.R)(this.unSubs[4])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.channelsData=this.calculateUptime(t.channels),this.channelsData.length>0&&this.loadChannelsTable(this.channelsData),this.logger.info(t)})}ngAfterViewInit(){this.channelsData.length>0&&this.loadChannelsTable(this.channelsData)}onViewRemotePolicy(t){this.store.dispatch((0,y.$A)({payload:{uiMessage:l.m6.GET_REMOTE_POLICY,channelID:t.chan_id.toString()+"/"+this.information.identity_pubkey}})),this.lndEffects.setLookup.pipe((0,G.q)(1)).subscribe(a=>{if(!a.fee_base_msat&&!a.fee_rate_milli_msat&&!a.time_lock_delta)return!1;const o=[[{key:"fee_base_msat",value:a.fee_base_msat,title:"Base Fees (mSats)",width:25,type:l.Gi.NUMBER},{key:"fee_rate_milli_msat",value:a.fee_rate_milli_msat,title:"Fee Rate (milli mSats)",width:25,type:l.Gi.NUMBER},{key:"fee_rate_milli_msat",value:a.fee_rate_milli_msat/1e4,title:"Fee Rate (%)",width:25,type:l.Gi.NUMBER,digitsInfo:"1.0-8"},{key:"time_lock_delta",value:a.time_lock_delta,title:"Time Lock Delta",width:25,type:l.Gi.NUMBER}]],s="Remote policy for Channel: "+(t.remote_alias||t.chan_id?t.remote_alias&&t.chan_id?t.remote_alias+" ("+t.chan_id+")":t.remote_alias?t.remote_alias:t.chan_id:t.channel_point);setTimeout(()=>{this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Remote Channel Policy",titleMessage:s,message:o}}}))},0)})}onCircularRebalance(t){this.store.dispatch((0,v.qR)({payload:{data:{message:{channels:this.channelsData,selChannel:t},component:ko}}}))}onChannelUpdate(t){"all"===t?(this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Update Fee Policy",noBtnText:"Cancel",yesBtnText:"Update All Channels",message:[],titleMessage:"Update fee policy for all channels",flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSat)",inputType:l.Gi.NUMBER.toLowerCase(),inputValue:1e3,width:32},{placeholder:"Fee Rate (mili mSat)",inputType:l.Gi.NUMBER.toLowerCase(),inputValue:1,min:1,width:32,hintFunction:this.percentHintFunction},{placeholder:"Time Lock Delta",inputType:l.Gi.NUMBER.toLowerCase(),inputValue:40,width:32}]}}})),this.rtlEffects.closeConfirm.pipe((0,_.R)(this.unSubs[5])).subscribe(o=>{o&&this.store.dispatch((0,y.pW)({payload:{baseFeeMsat:o[0].inputValue,feeRate:o[1].inputValue,timeLockDelta:o[2].inputValue,chanPoint:"all"}}))})):(this.myChanPolicy={fee_base_msat:0,fee_rate_milli_msat:0,time_lock_delta:0},this.store.dispatch((0,y.$A)({payload:{uiMessage:l.m6.GET_CHAN_POLICY,channelID:t.chan_id.toString()}})),this.lndEffects.setLookup.pipe((0,G.q)(1)).subscribe(a=>{this.myChanPolicy=a.node1_pub===this.information.identity_pubkey?a.node1_policy:a.node2_pub===this.information.identity_pubkey?a.node2_policy:{fee_base_msat:0,fee_rate_milli_msat:0,time_lock_delta:0},this.logger.info(this.myChanPolicy);const o="Update fee policy for Channel: "+(t.remote_alias||t.chan_id?t.remote_alias&&t.chan_id?t.remote_alias+" ("+t.chan_id+")":t.remote_alias?t.remote_alias:t.chan_id:t.channel_point),s=[];setTimeout(()=>{this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Update Fee Policy",titleMessage:o,noBtnText:"Cancel",yesBtnText:"Update Channel",message:s,flgShowInput:!0,getInputs:[{placeholder:"Base Fee (mSat)",inputType:l.Gi.NUMBER.toLowerCase(),inputValue:""===this.myChanPolicy.fee_base_msat?0:this.myChanPolicy.fee_base_msat,width:32},{placeholder:"Fee Rate (mili mSat)",inputType:l.Gi.NUMBER.toLowerCase(),inputValue:this.myChanPolicy.fee_rate_milli_msat,min:1,width:32,hintFunction:this.percentHintFunction},{placeholder:"Time Lock Delta",inputType:l.Gi.NUMBER.toLowerCase(),inputValue:this.myChanPolicy.time_lock_delta,width:32}]}}}))},0)}),this.rtlEffects.closeConfirm.pipe((0,_.R)(this.unSubs[6])).subscribe(a=>{a&&this.store.dispatch((0,y.pW)({payload:{baseFeeMsat:a[0].inputValue,feeRate:a[1].inputValue,timeLockDelta:a[2].inputValue,chanPoint:t.channel_point}}))})),this.applyFilter()}onChannelClose(t){t.active&&this.store.dispatch((0,y.UR)()),this.store.dispatch((0,v.qR)({payload:{data:{channel:t,component:Yo}}}))}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}onChannelClick(t,a){this.store.dispatch((0,v.qR)({payload:{data:{channel:t,showCopy:!0,component:ge}}}))}loadChannelsTable(t){t.sort((a,o)=>a.active===o.active?0:o.active?1:-1),this.channels=new r.by([...t]),this.channels.filterPredicate=(a,o)=>((a.active?"active":"inactive")+(a.chan_id?a.chan_id.toLowerCase():"")+(a.remote_pubkey?a.remote_pubkey.toLowerCase():"")+(a.remote_alias?a.remote_alias.toLowerCase():"")+(a.capacity?a.capacity:"")+(a.local_balance?a.local_balance:"")+(a.remote_balance?a.remote_balance:"")+(a.total_satoshis_sent?a.total_satoshis_sent:"")+(a.total_satoshis_received?a.total_satoshis_received:"")+(a.commit_fee?a.commit_fee:"")+(a.private?"private":"public")).includes(o),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.channels.paginator=this.paginator,this.logger.info(this.channels)}calculateUptime(t){const o=3600,s=24*o,u=365*s;let g=60,U=1,T=0;switch(t.forEach(O=>{O.uptime&&+O.uptime>T&&(T=+O.uptime)}),!0){case T=o&&T=s&&Tu:this.timeUnit="Yrs:Days",g=u,U=s;break;default:this.timeUnit="Mins:Secs",g=60,U=1}return t.forEach(O=>{O.uptime_str=O.uptime?this.decimalPipe.transform(Math.floor(+O.uptime/g),"2.0-0")+":"+this.decimalPipe.transform(Math.round(+O.uptime%g/U),"2.0-0"):"---"}),t}onLoopOut(t){this.loopService.getLoopOutTermsAndQuotes(this.targetConf).pipe((0,_.R)(this.unSubs[7])).subscribe(a=>{this.store.dispatch((0,v.qR)({payload:{minHeight:"56rem",data:{channel:t,minQuote:a[0],maxQuote:a[1],direction:l.$I.LOOP_OUT,component:qe.a}}}))})}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.channels.data,"Open-channels")}percentHintFunction(t){return(t/1e4).toString()+"%"}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(K.l),e.Y36(M.v),e.Y36(ie.V),e.Y36(m.JJ),e.Y36(Se.W))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-open-table"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Channels")}])],decls:39,vars:14,consts:[["fxLayout","column",1,"padding-gap-x"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","remote_alias"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","uptime"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","total_satoshis_sent"],["matColumnDef","total_satoshis_received"],["matColumnDef","local_balance"],["matColumnDef","remote_balance"],["matColumnDef","balancedness"],["mat-header-cell","","mat-sort-header","","class","pl-2",4,"matHeaderCellDef"],["mat-cell","","class","pl-2",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pl-1",4,"matCellDef"],["matColumnDef","no_peer"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],[1,"ellipsis-parent",3,"ngStyle"],["class","dot green","matTooltip","Active","matTooltipPosition","right",4,"ngIf"],["class","dot yellow","matTooltip","Inactive","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Private","matTooltipPosition","right",4,"ngIf"],["class","mr-1","matTooltip","Public","matTooltipPosition","right",4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Active","matTooltipPosition","right",1,"dot","green"],["matTooltip","Inactive","matTooltipPosition","right",1,"dot","yellow"],["matTooltip","Private","matTooltipPosition","right",1,"mr-1"],[3,"icon"],["matTooltip","Public","matTooltipPosition","right",1,"mr-1"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","","mat-sort-header","",1,"pl-2"],["mat-cell","",1,"pl-2"],["fxLayout","row"],["fxFlex","100","fxLayoutAlign","center center",1,"font-size-80"],["mode","determinate",3,"value"],["mat-header-cell","",1,"pl-1"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-1"],["placeholder","Actions","tabindex","2",1,"mr-0"],[3,"click",4,"ngIf"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e._UZ(2,"div",2),e.TgZ(3,"mat-form-field",3),e.TgZ(4,"input",4),e.NdJ("keyup",function(){return a.applyFilter()})("ngModelChange",function(s){return a.selFilter=s}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(5,"div",5),e.YNc(6,Bo,1,0,"mat-progress-bar",6),e.TgZ(7,"table",7,8),e.ynx(9,9),e.YNc(10,Ho,2,0,"th",10),e.YNc(11,$o,8,8,"td",11),e.BQk(),e.ynx(12,12),e.YNc(13,jo,2,1,"th",13),e.YNc(14,Ko,3,1,"td",11),e.BQk(),e.ynx(15,14),e.YNc(16,es,2,0,"th",13),e.YNc(17,ts,4,3,"td",11),e.BQk(),e.ynx(18,15),e.YNc(19,ns,2,0,"th",13),e.YNc(20,as,4,3,"td",11),e.BQk(),e.ynx(21,16),e.YNc(22,is,2,0,"th",13),e.YNc(23,os,4,3,"td",11),e.BQk(),e.ynx(24,17),e.YNc(25,ss,2,0,"th",13),e.YNc(26,ls,4,3,"td",11),e.BQk(),e.ynx(27,18),e.YNc(28,rs,2,0,"th",19),e.YNc(29,cs,6,4,"td",20),e.BQk(),e.ynx(30,21),e.YNc(31,us,8,0,"th",22),e.YNc(32,ds,14,2,"td",23),e.BQk(),e.ynx(33,24),e.YNc(34,Cs,5,4,"td",25),e.BQk(),e.YNc(35,Ts,1,3,"tr",26),e.YNc(36,ys,1,0,"tr",27),e.YNc(37,Zs,1,0,"tr",28),e.qZA(),e.qZA(),e._UZ(38,"mat-paginator",29),e.qZA()),2&t&&(e.xp6(4),e.Q6J("ngModel",a.selFilter),e.xp6(2),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",a.channels)("ngClass",e.VKq(11,bs,""!==a.errorMessage)),e.xp6(28),e.Q6J("matFooterRowDef",e.DdM(13,As)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedColumns)("matHeaderRowDefSticky",a.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedColumns),e.xp6(1),e.Q6J("pageSize",a.pageSize)("pageSizeOptions",a.pageSizeOptions)("showFirstLastButtons",a.screenSize!==a.screenSizeEnum.XS))},directives:[d.xw,d.Wh,d.yH,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,m.O5,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,J.pW,r.ge,A.nU,r.ev,m.PC,L.Zl,W.gM,R.BN,f.bx,N.gD,N.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk],pipes:[m.JJ],styles:[".mat-column-remote_alias[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}.mat-column-remote_alias[_ngcontent-%COMP%] .ellipsis-parent[_ngcontent-%COMP%]{display:flex}.mat-column-balancedness[_ngcontent-%COMP%]{flex:0 0 20%;width:20%}@media only screen and (max-width: 75em){.mat-column-balancedness[_ngcontent-%COMP%]{flex:0 0 35%;width:35%}}@media only screen and (max-width: 56.25em){.mat-column-balancedness[_ngcontent-%COMP%]{flex:0 0 25%;width:25%}}.mat-column-uptime[_ngcontent-%COMP%], .mat-column-local_balance[_ngcontent-%COMP%], .mat-column-remote_balance[_ngcontent-%COMP%], .mat-column-total_satoshis_sent[_ngcontent-%COMP%], .mat-column-total_satoshis_received[_ngcontent-%COMP%]{flex:1 1 10%;width:10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width: 75em){.mat-column-uptime[_ngcontent-%COMP%], .mat-column-local_balance[_ngcontent-%COMP%], .mat-column-remote_balance[_ngcontent-%COMP%], .mat-column-total_satoshis_sent[_ngcontent-%COMP%], .mat-column-total_satoshis_received[_ngcontent-%COMP%]{white-space:unset;flex:1 1 25%;width:25%}}@media only screen and (max-width: 56.25em){.mat-column-uptime[_ngcontent-%COMP%], .mat-column-local_balance[_ngcontent-%COMP%], .mat-column-remote_balance[_ngcontent-%COMP%], .mat-column-total_satoshis_sent[_ngcontent-%COMP%], .mat-column-total_satoshis_received[_ngcontent-%COMP%]{flex:0 0 15%;width:15%}}@media only screen and (max-width: 37.5em){.mat-column-uptime[_ngcontent-%COMP%], .mat-column-local_balance[_ngcontent-%COMP%], .mat-column-remote_balance[_ngcontent-%COMP%], .mat-column-total_satoshis_sent[_ngcontent-%COMP%], .mat-column-total_satoshis_received[_ngcontent-%COMP%]{white-space:unset}}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 100%}@media only screen and (max-width: 56.25em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 90%}}@media only screen and (max-width: 37.5em){.mat-column-actions[_ngcontent-%COMP%] .bordered-box.table-actions-select[_ngcontent-%COMP%]{flex:0 0 80%}}"]}),n})();const ws=["outputIdx"];function qs(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Index for change output is required."),e.qZA())}function Ss(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Invalid index value."),e.qZA())}function Ls(n,i){if(1&n&&(e.TgZ(0,"mat-option",29),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function ks(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Number of blocks is required."),e.qZA())}function Fs(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-form-field",17),e.TgZ(1,"input",30,31),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw().blocks=o}),e.qZA(),e.YNc(3,ks,2,0,"mat-error",20),e.qZA()}if(2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngModel",t.blocks)("step",1)("min",0),e.xp6(2),e.Q6J("ngIf",!t.blocks)}}function Ns(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Fees is required."),e.qZA())}function Us(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-form-field",17),e.TgZ(1,"input",32,33),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw().fees=o}),e.qZA(),e.YNc(3,Ns,2,0,"mat-error",20),e.qZA()}if(2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngModel",t.fees)("step",1)("min",0),e.xp6(2),e.Q6J("ngIf",!t.fees)}}function Os(n,i){if(1&n&&(e.TgZ(0,"div",34),e._UZ(1,"fa-icon",13),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("icon",t.faExclamationTriangle),e.xp6(2),e.Oqu(t.bumpFeeError)}}let Rs=(()=>{class n{constructor(t,a,o,s,u){this.dialogRef=t,this.data=a,this.logger=o,this.dataService=s,this.snackBar=u,this.transTypes=[...l.Dr],this.selTransType="2",this.blocks=null,this.fees=null,this.outputIndex=null,this.faCopy=x.kZ_,this.faInfoCircle=x.sqG,this.faExclamationTriangle=x.eHv,this.bumpFeeError="",this.unSubs=[new p.x,new p.x]}set payReq(t){t&&(this.outputIdx=t)}ngOnInit(){this.transTypes=this.transTypes.splice(1),this.bumpFeeChannel=this.data.pendingChannel;const t=this.bumpFeeChannel.channel.channel_point.split(":")||[];this.bumpFeeChannel.channel.txid_str=t[0]||(this.bumpFeeChannel.channel&&this.bumpFeeChannel.channel.channel_point?this.bumpFeeChannel.channel.channel_point:""),this.bumpFeeChannel.channel.output_index=+t[1]||null}onBumpFee(){return this.outputIndex===this.bumpFeeChannel.channel.output_index?(this.outputIdx.control.setErrors({pendingChannelOutputIndex:!0}),!0):!this.outputIndex&&0!==this.outputIndex||!("1"!==this.selTransType||this.blocks&&0!==this.blocks)||!("2"!==this.selTransType||this.fees&&0!==this.fees)||void this.dataService.bumpFee(this.bumpFeeChannel.channel.txid_str,this.outputIndex,this.blocks,this.fees).pipe((0,_.R)(this.unSubs[0])).subscribe({next:t=>{this.dialogRef.close(!1)},error:t=>{this.logger.error(t),this.bumpFeeError=t.message?t.message:t}})}onCopyID(t){this.snackBar.open("Transaction ID copied.")}resetData(){this.bumpFeeError="",this.selTransType="2",this.blocks=null,this.fees=null,this.outputIdx.control.setErrors(null)}onClose(){this.dialogRef.close(!1)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(P.WI),e.Y36(F.mQ),e.Y36(j.D),e.Y36(ee.ux))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-bump-fee"]],viewQuery:function(t,a){if(1&t&&e.Gf(ws,5),2&t){let o;e.iGM(o=e.CRH())&&(a.payReq=o.first)}},decls:48,vars:15,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxLayout","column",1,"bordered-box","mb-1","p-2"],["fxLayoutAlign","start center",1,"pb-1","word-break"],["matSuffix","","rtlClipboard","","matTooltip","Copy transaction ID",1,"ml-1",3,"icon","payload","copied"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column","fxFlex","100"],[1,"pl-1"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between center"],["fxFlex.gt-sm","32","fxLayoutAlign","start end"],["matInput","","placeholder","Index for Change Output","type","number","tabindex","1","required","","name","outputIdx",3,"ngModel","step","min","ngModelChange"],["outputIdx","ngModel"],[4,"ngIf"],["fxFlex.gt-sm","32"],["tabindex","2",3,"value","valueChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex.gt-sm","32","fxLayoutAlign","start end",4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center"],["mat-button","","color","primary","type","reset","tabindex","5","default","",1,"mr-1",3,"click"],["mat-button","","color","primary","type","submit","tabindex","6",3,"click"],[3,"value"],["matInput","","placeholder","Number of Blocks","type","number","name","blocks","required","","tabindex","3",3,"ngModel","step","min","ngModelChange"],["blcks","ngModel"],["matInput","","placeholder","Fees (Sats/vByte)","type","number","name","fees","required","","tabindex","4",3,"ngModel","step","min","ngModelChange"],["fee","ngModel"],["fxFlex","100",1,"alert","alert-danger","mt-1"]],template:function(t,a){if(1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e.TgZ(4,"span",4),e._uU(5,"Bump Fee"),e.qZA(),e.qZA(),e.TgZ(6,"button",5),e.NdJ("click",function(){return a.onClose()}),e._uU(7,"X"),e.qZA(),e.qZA(),e.TgZ(8,"mat-card-content",6),e.TgZ(9,"form",7),e.TgZ(10,"div",8),e.TgZ(11,"p",9),e._uU(12),e.TgZ(13,"fa-icon",10),e.NdJ("copied",function(s){return a.onCopyID(s)}),e.qZA(),e.qZA(),e.TgZ(14,"div",11),e.TgZ(15,"div",12),e._UZ(16,"fa-icon",13),e.TgZ(17,"span",14),e._uU(18,"Bumping fee on pending open channels is an advanced feature, attempt it only if you are familiar with the functionality of Bitcoin transactions. "),e.TgZ(19,"div"),e._uU(20,"Before attempting fee bump ensure the following:"),e.qZA(),e.TgZ(21,"div",15),e._uU(22,"1: Use a Bitcoin block explorer to ensure that channel opening transaction is not confirmed."),e.qZA(),e.TgZ(23,"div",15),e._uU(24,"2: The channel opening transaction must have a sizable change output, which can be spent further. The fee cannot be bumped without the change output."),e.qZA(),e.TgZ(25,"div",15),e._uU(26,"3: Find the index value of the change output via a block explorer."),e.qZA(),e.TgZ(27,"div",15),e._uU(28,"4: Enter the index value of the change output in the form below and the desired fee rate."),e.qZA(),e.TgZ(29,"div",15),e._uU(30,"5: Upon successful fee bump, use your block explorer to track the child transaction in the mempool, which should be linked with the change output transaction."),e.qZA(),e.qZA(),e.qZA(),e.TgZ(31,"div",16),e.TgZ(32,"mat-form-field",17),e.TgZ(33,"input",18,19),e.NdJ("ngModelChange",function(s){return a.outputIndex=s}),e.qZA(),e.YNc(35,qs,2,0,"mat-error",20),e.YNc(36,Ss,2,0,"mat-error",20),e.qZA(),e.TgZ(37,"mat-form-field",21),e.TgZ(38,"mat-select",22),e.NdJ("valueChange",function(s){return a.selTransType=s})("selectionChange",function(){return a.blocks=null,a.fees=null}),e.YNc(39,Ls,2,2,"mat-option",23),e.qZA(),e.qZA(),e.YNc(40,Fs,4,4,"mat-form-field",24),e.YNc(41,Us,4,4,"mat-form-field",24),e.qZA(),e.YNc(42,Os,4,2,"div",25),e.qZA(),e.qZA(),e.TgZ(43,"div",26),e.TgZ(44,"button",27),e.NdJ("click",function(){return a.resetData()}),e._uU(45,"Clear"),e.qZA(),e.TgZ(46,"button",28),e.NdJ("click",function(){return a.onBumpFee()}),e._uU(47),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t){const o=e.MAs(34);e.xp6(12),e.hij("Bump fee for channel point: ",null==a.bumpFeeChannel||null==a.bumpFeeChannel.channel?null:a.bumpFeeChannel.channel.channel_point," "),e.xp6(1),e.Q6J("icon",a.faCopy)("payload",null==a.bumpFeeChannel||null==a.bumpFeeChannel.channel?null:a.bumpFeeChannel.channel.txid_str),e.xp6(3),e.Q6J("icon",a.faInfoCircle),e.xp6(17),e.Q6J("ngModel",a.outputIndex)("step",1)("min",0),e.xp6(2),e.Q6J("ngIf",null==o.errors?null:o.errors.required),e.xp6(1),e.Q6J("ngIf",null==o.errors?null:o.errors.pendingChannelOutputIndex),e.xp6(2),e.Q6J("value",a.selTransType),e.xp6(1),e.Q6J("ngForOf",a.transTypes),e.xp6(1),e.Q6J("ngIf","1"===a.selTransType),e.xp6(1),e.Q6J("ngIf","2"===a.selTransType),e.xp6(1),e.Q6J("ngIf",""!==a.bumpFeeError),e.xp6(5),e.Oqu(""!==a.bumpFeeError?"Retry Bump Fee":"Bump Fee")}},directives:[d.xw,d.yH,b.dk,d.Wh,q.lW,b.dn,c._Y,c.JL,c.F,R.BN,f.R9,oe.y,W.gM,f.KE,D.Nt,c.wV,c.qQ,c.Fj,$.q,c.Q7,c.JJ,c.On,m.O5,N.gD,m.sg,f.TO,Q.ey],styles:[""]}),n})();function Is(n,i){1&n&&e._UZ(0,"mat-progress-bar",36)}function Ds(n,i){1&n&&e._UZ(0,"mat-progress-bar",36)}function Ms(n,i){1&n&&(e.TgZ(0,"mat-header-cell",37),e._uU(1," Peer "),e.qZA())}const ce=function(n){return{"max-width":n}};function Ps(n,i){if(1&n&&(e.TgZ(0,"mat-cell",38),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,ce,a.screenSize===a.screenSizeEnum.XS?"10rem":"30rem")),e.xp6(1),e.Oqu(t.channel.remote_alias)}}function Js(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1,"Commit Fee (Sats) "),e.qZA())}function Es(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.commit_fee))}}function Qs(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1,"Commit Weight "),e.qZA())}function Ys(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.commit_weight))}}function Bs(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1,"Capacity (Sats)"),e.qZA())}function Hs(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.channel.capacity))}}function Gs(n,i){1&n&&(e.TgZ(0,"mat-header-cell",41),e._uU(1,"Actions"),e.qZA())}function zs(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-cell",42),e.TgZ(1,"div",43),e.TgZ(2,"mat-select",44),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",45),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onOpenClick(s)}),e._uU(5,"View Info"),e.qZA(),e.TgZ(6,"mat-option",45),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onBumpFee(s)}),e._uU(7,"Bump Fee"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function Vs(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No pending channel."),e.qZA())}function Ws(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting pending channels..."),e.qZA())}function Xs(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function $s(n,i){if(1&n&&(e.TgZ(0,"td",46),e.YNc(1,Vs,2,0,"p",47),e.YNc(2,Ws,2,0,"p",47),e.YNc(3,Xs,2,1,"p",47),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!t.pendingOpenChannels||!(null!=t.pendingOpenChannels&&t.pendingOpenChannels.data)||(null==t.pendingOpenChannels||null==t.pendingOpenChannels.data?null:t.pendingOpenChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!t.pendingOpenChannels||!(null!=t.pendingOpenChannels&&t.pendingOpenChannels.data)||(null==t.pendingOpenChannels||null==t.pendingOpenChannels.data?null:t.pendingOpenChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!t.pendingOpenChannels||!(null!=t.pendingOpenChannels&&t.pendingOpenChannels.data)||(null==t.pendingOpenChannels||null==t.pendingOpenChannels.data?null:t.pendingOpenChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const Ce=function(n){return{"display-none":n}};function js(n,i){if(1&n&&e._UZ(0,"tr",48),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,Ce,t.pendingOpenChannels&&(null==t.pendingOpenChannels?null:t.pendingOpenChannels.data)&&(null==t.pendingOpenChannels||null==t.pendingOpenChannels.data?null:t.pendingOpenChannels.data.length)>0))}}function Ks(n,i){1&n&&e._UZ(0,"mat-header-row")}function el(n,i){1&n&&e._UZ(0,"mat-row",49)}function tl(n,i){1&n&&e._UZ(0,"mat-progress-bar",36)}function nl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",37),e._uU(1," Peer "),e.qZA())}function al(n,i){if(1&n&&(e.TgZ(0,"mat-cell",38),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,ce,a.screenSize===a.screenSizeEnum.XS?"10rem":"30rem")),e.xp6(1),e.Oqu(t.channel.remote_alias)}}function il(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1,"Recovered Balance (Sats) "),e.qZA())}function ol(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.recovered_balance))}}function sl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1,"Limbo Balance (Sats) "),e.qZA())}function ll(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.limbo_balance))}}function rl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1,"Capacity (Sats) "),e.qZA())}function cl(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.channel.capacity))}}function ul(n,i){1&n&&(e.TgZ(0,"mat-header-cell",50),e._uU(1,"Actions"),e.qZA())}function pl(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-cell",51),e.TgZ(1,"button",52),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onForceClosingClick(s)}),e._uU(2,"View Info"),e.qZA(),e.qZA()}}function ml(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No pending channel."),e.qZA())}function dl(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting pending channels..."),e.qZA())}function _l(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function hl(n,i){if(1&n&&(e.TgZ(0,"td",46),e.YNc(1,ml,2,0,"p",47),e.YNc(2,dl,2,0,"p",47),e.YNc(3,_l,2,1,"p",47),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!t.pendingForceClosingChannels||!(null!=t.pendingForceClosingChannels&&t.pendingForceClosingChannels.data)||(null==t.pendingForceClosingChannels||null==t.pendingForceClosingChannels.data?null:t.pendingForceClosingChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!t.pendingForceClosingChannels||!(null!=t.pendingForceClosingChannels&&t.pendingForceClosingChannels.data)||(null==t.pendingForceClosingChannels||null==t.pendingForceClosingChannels.data?null:t.pendingForceClosingChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!t.pendingForceClosingChannels||!(null!=t.pendingForceClosingChannels&&t.pendingForceClosingChannels.data)||(null==t.pendingForceClosingChannels||null==t.pendingForceClosingChannels.data?null:t.pendingForceClosingChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}function gl(n,i){if(1&n&&e._UZ(0,"tr",48),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,Ce,t.pendingForceClosingChannels&&(null==t.pendingForceClosingChannels?null:t.pendingForceClosingChannels.data)&&(null==t.pendingForceClosingChannels||null==t.pendingForceClosingChannels.data?null:t.pendingForceClosingChannels.data.length)>0))}}function fl(n,i){1&n&&e._UZ(0,"mat-header-row")}function Cl(n,i){1&n&&e._UZ(0,"mat-row",49)}function xl(n,i){1&n&&e._UZ(0,"mat-progress-bar",36)}function Tl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",53),e._uU(1," Peer "),e.qZA())}function yl(n,i){if(1&n&&(e.TgZ(0,"mat-cell",54),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,ce,a.screenSize===a.screenSizeEnum.XS?"10rem":"30rem")),e.xp6(1),e.Oqu(t.channel.remote_alias)}}function Zl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1," Local Balance (Sats) "),e.qZA())}function bl(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.channel.local_balance))}}function Al(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1," Remote Balance (Sats) "),e.qZA())}function vl(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.channel.remote_balance))}}function wl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1," Capacity (Sats) "),e.qZA())}function ql(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.channel.capacity))}}function Sl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",50),e._uU(1,"Actions"),e.qZA())}function Ll(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-cell",51),e.TgZ(1,"button",55),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onClosingClick(s)}),e._uU(2,"View Info"),e.qZA(),e.qZA()}}function kl(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No pending channel."),e.qZA())}function Fl(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting pending channels..."),e.qZA())}function Nl(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function Ul(n,i){if(1&n&&(e.TgZ(0,"td",46),e.YNc(1,kl,2,0,"p",47),e.YNc(2,Fl,2,0,"p",47),e.YNc(3,Nl,2,1,"p",47),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!t.pendingClosingChannels||!(null!=t.pendingClosingChannels&&t.pendingClosingChannels.data)||(null==t.pendingClosingChannels||null==t.pendingClosingChannels.data?null:t.pendingClosingChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!t.pendingClosingChannels||!(null!=t.pendingClosingChannels&&t.pendingClosingChannels.data)||(null==t.pendingClosingChannels||null==t.pendingClosingChannels.data?null:t.pendingClosingChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!t.pendingClosingChannels||!(null!=t.pendingClosingChannels&&t.pendingClosingChannels.data)||(null==t.pendingClosingChannels||null==t.pendingClosingChannels.data?null:t.pendingClosingChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}function Ol(n,i){if(1&n&&e._UZ(0,"tr",48),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,Ce,t.pendingClosingChannels&&(null==t.pendingClosingChannels?null:t.pendingClosingChannels.data)&&(null==t.pendingClosingChannels||null==t.pendingClosingChannels.data?null:t.pendingClosingChannels.data.length)>0))}}function Rl(n,i){1&n&&e._UZ(0,"mat-header-row")}function Il(n,i){1&n&&e._UZ(0,"mat-row",49)}function Dl(n,i){1&n&&e._UZ(0,"mat-progress-bar",36)}function Ml(n,i){1&n&&(e.TgZ(0,"mat-header-cell",53),e._uU(1," Peer "),e.qZA())}function Pl(n,i){if(1&n&&(e.TgZ(0,"mat-cell",54),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,ce,a.screenSize===a.screenSizeEnum.XS?"10rem":"30rem")),e.xp6(1),e.Oqu(t.channel.remote_alias)}}function Jl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1," Limbo Balance (Sats) "),e.qZA())}function El(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij("",e.lcZ(2,1,t.limbo_balance)," ")}}function Ql(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1," Local Balance (Sats) "),e.qZA())}function Yl(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.channel.local_balance))}}function Bl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1," Remote Balance (Sats) "),e.qZA())}function Hl(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.channel.remote_balance))}}function Gl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",39),e._uU(1," Capacity (Sats) "),e.qZA())}function zl(n,i){if(1&n&&(e.TgZ(0,"mat-cell",40),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.channel.capacity))}}function Vl(n,i){1&n&&(e.TgZ(0,"mat-header-cell",50),e._uU(1,"Actions"),e.qZA())}function Wl(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-cell",51),e.TgZ(1,"button",56),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onWaitClosingClick(s)}),e._uU(2,"View Info"),e.qZA(),e.qZA()}}function Xl(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No pending channel."),e.qZA())}function $l(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting pending channels..."),e.qZA())}function jl(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function Kl(n,i){if(1&n&&(e.TgZ(0,"td",46),e.YNc(1,Xl,2,0,"p",47),e.YNc(2,$l,2,0,"p",47),e.YNc(3,jl,2,1,"p",47),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!t.pendingWaitClosingChannels||!(null!=t.pendingWaitClosingChannels&&t.pendingWaitClosingChannels.data)||(null==t.pendingWaitClosingChannels||null==t.pendingWaitClosingChannels.data?null:t.pendingWaitClosingChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!t.pendingWaitClosingChannels||!(null!=t.pendingWaitClosingChannels&&t.pendingWaitClosingChannels.data)||(null==t.pendingWaitClosingChannels||null==t.pendingWaitClosingChannels.data?null:t.pendingWaitClosingChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!t.pendingWaitClosingChannels||!(null!=t.pendingWaitClosingChannels&&t.pendingWaitClosingChannels.data)||(null==t.pendingWaitClosingChannels||null==t.pendingWaitClosingChannels.data?null:t.pendingWaitClosingChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const er=function(n){return{"py-0":!0,"display-none":n}};function tr(n,i){if(1&n&&e._UZ(0,"tr",48),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,er,t.pendingWaitClosingChannels&&(null==t.pendingWaitClosingChannels?null:t.pendingWaitClosingChannels.data)&&(null==t.pendingWaitClosingChannels||null==t.pendingWaitClosingChannels.data?null:t.pendingWaitClosingChannels.data.length)>0))}}function nr(n,i){1&n&&e._UZ(0,"mat-header-row")}function ar(n,i){1&n&&e._UZ(0,"mat-row",49)}const ue=function(n){return{"error-border bordered-box":n,"bordered-box":!0}},ir=function(){return["no_pending_open"]},or=function(){return["no_pending_force_closing"]},sr=function(){return["no_pending_closing"]},lr=function(){return["no_pending_wait_closing"]};let rr=(()=>{class n{constructor(t,a,o){this.logger=t,this.store=a,this.commonService=o,this.selNode={},this.selectedFilter="",this.information={},this.pendingChannels={},this.displayedOpenColumns=["remote_alias","commit_fee","commit_weight","capacity","actions"],this.pendingOpenChannelsLength=0,this.displayedForceClosingColumns=["remote_alias","recovered_balance","limbo_balance","capacity","actions"],this.pendingForceClosingChannelsLength=0,this.displayedClosingColumns=["remote_alias","local_balance","remote_balance","capacity","actions"],this.pendingClosingChannelsLength=0,this.displayedWaitClosingColumns=["remote_alias","limbo_balance","local_balance","remote_balance","actions"],this.pendingWaitClosingChannelsLength=0,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.displayedOpenColumns=["remote_alias","actions"],this.displayedForceClosingColumns=["remote_alias","actions"],this.displayedClosingColumns=["remote_alias","actions"],this.displayedWaitClosingColumns=["remote_alias","actions"]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.displayedOpenColumns=["remote_alias","commit_fee","actions"],this.displayedForceClosingColumns=["remote_alias","limbo_balance","actions"],this.displayedClosingColumns=["remote_alias","remote_balance","actions"],this.displayedWaitClosingColumns=["remote_alias","limbo_balance","actions"]):(this.displayedOpenColumns=["remote_alias","commit_fee","commit_weight","capacity","actions"],this.displayedForceClosingColumns=["remote_alias","recovered_balance","limbo_balance","capacity","actions"],this.displayedClosingColumns=["remote_alias","local_balance","remote_balance","capacity","actions"],this.displayedWaitClosingColumns=["remote_alias","limbo_balance","local_balance","remote_balance","actions"])}ngOnInit(){this.store.select(C.$k).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(C.Q5).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.information=t}),this.store.select(C.ni).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.pendingChannels=t.pendingChannels,this.pendingChannels.pending_open_channels&&this.pendingChannels.pending_open_channels.length&&this.pendingChannels.pending_open_channels.length>0&&this.loadOpenChannelsTable(this.pendingChannels.pending_open_channels),this.pendingChannels.pending_force_closing_channels&&this.pendingChannels.pending_force_closing_channels.length&&this.pendingChannels.pending_force_closing_channels.length>0&&this.loadForceClosingChannelsTable(this.pendingChannels.pending_force_closing_channels),this.pendingChannels.pending_closing_channels&&this.pendingChannels.pending_closing_channels.length&&this.pendingChannels.pending_closing_channels.length>0&&this.loadClosingChannelsTable(this.pendingChannels.pending_closing_channels),this.pendingChannels.waiting_close_channels&&this.pendingChannels.waiting_close_channels.length&&this.pendingChannels.waiting_close_channels.length>0&&this.loadWaitClosingChannelsTable(this.pendingChannels.waiting_close_channels),this.logger.info(t)})}ngAfterViewInit(){this.pendingChannels.pending_open_channels&&this.pendingChannels.pending_open_channels.length&&this.pendingChannels.pending_open_channels.length>0&&this.loadOpenChannelsTable(this.pendingChannels.pending_open_channels),this.pendingChannels.pending_force_closing_channels&&this.pendingChannels.pending_force_closing_channels.length&&this.pendingChannels.pending_force_closing_channels.length>0&&this.loadForceClosingChannelsTable(this.pendingChannels.pending_force_closing_channels),this.pendingChannels.pending_closing_channels&&this.pendingChannels.pending_closing_channels.length&&this.pendingChannels.pending_closing_channels.length>0&&this.loadClosingChannelsTable(this.pendingChannels.pending_closing_channels),this.pendingChannels.waiting_close_channels&&this.pendingChannels.waiting_close_channels.length&&this.pendingChannels.waiting_close_channels.length>0&&this.loadWaitClosingChannelsTable(this.pendingChannels.waiting_close_channels)}onOpenClick(t){const a=JSON.parse(JSON.stringify(t,["commit_weight","confirmation_height","fee_per_kw","commit_fee"],2)),o=JSON.parse(JSON.stringify(t.channel,["remote_alias","channel_point","remote_balance","local_balance","remote_node_pub","capacity"],2)),s={};Object.assign(s,a,o),this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Opening Channel Information",message:[[{key:"channel_point",value:s.channel_point,title:"Channel Point",width:100,type:l.Gi.STRING}],[{key:"remote_alias",value:s.remote_alias,title:"Peer Alias",width:25,type:l.Gi.STRING},{key:"remote_node_pub",value:s.remote_node_pub,title:"Peer Node Pubkey",width:75,type:l.Gi.STRING}],[{key:"capacity",value:s.capacity,title:"Capacity",width:25,type:l.Gi.NUMBER},{key:"confirmation_height",value:s.confirmation_height,title:"Confirmation Height",width:25,type:l.Gi.NUMBER},{key:"local_balance",value:s.local_balance,title:"Local Balance",width:25,type:l.Gi.NUMBER},{key:"remote_balance",value:s.remote_balance,title:"Remote Balance",width:25,type:l.Gi.NUMBER}],[{key:"fee_per_kw",value:s.fee_per_kw,title:"Fee/KW",width:25,type:l.Gi.NUMBER},{key:"commit_weight",value:s.commit_weight,title:"Commit Weight",width:25,type:l.Gi.NUMBER},{key:"commit_fee",value:s.commit_fee,title:"Commit Fee",width:50,type:l.Gi.NUMBER}]]}}}))}onBumpFee(t){this.store.dispatch((0,v.qR)({payload:{data:{pendingChannel:t,component:Rs}}}))}onForceClosingClick(t){const a=JSON.parse(JSON.stringify(t,["closing_txid","limbo_balance","maturity_height","blocks_til_maturity","recovered_balance"],2)),o=JSON.parse(JSON.stringify(t.channel,["remote_alias","channel_point","remote_balance","local_balance","remote_node_pub","capacity"],2)),s={};Object.assign(s,a,o),this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Force Closing Channel Information",message:[[{key:"closing_txid",value:s.closing_txid,title:"Closing Transaction ID",width:100,type:l.Gi.STRING}],[{key:"channel_point",value:s.channel_point,title:"Channel Point",width:100,type:l.Gi.STRING}],[{key:"remote_alias",value:s.remote_alias,title:"Peer Alias",width:25,type:l.Gi.STRING},{key:"remote_node_pub",value:s.remote_node_pub,title:"Peer Node Pubkey",width:75,type:l.Gi.STRING}],[{key:"capacity",value:s.capacity,title:"Capacity",width:25,type:l.Gi.NUMBER},{key:"limbo_balance",value:s.limbo_balance,title:"Limbo Balance",width:25,type:l.Gi.NUMBER},{key:"local_balance",value:s.local_balance,title:"Local Balance",width:25,type:l.Gi.NUMBER},{key:"remote_balance",value:s.remote_balance,title:"Remote Balance",width:25,type:l.Gi.NUMBER}],[{key:"maturity_height",value:s.maturity_height,title:"Maturity Height",width:25,type:l.Gi.NUMBER},{key:"blocks_til_maturity",value:s.blocks_til_maturity,title:"Blocks Till Maturity",width:25,type:l.Gi.NUMBER},{key:"recovered_balance",value:s.recovered_balance,title:"Recovered Balance",width:50,type:l.Gi.NUMBER}]]}}}))}onClosingClick(t){const a=JSON.parse(JSON.stringify(t,["closing_txid"],2)),o=JSON.parse(JSON.stringify(t.channel,["remote_alias","channel_point","remote_balance","local_balance","remote_node_pub","capacity"],2)),s={};Object.assign(s,a,o),this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Closing Channel Information",message:[[{key:"closing_txid",value:s.closing_txid,title:"Closing Transaction ID",width:50,type:l.Gi.STRING}],[{key:"channel_point",value:s.channel_point,title:"Channel Point",width:100,type:l.Gi.STRING}],[{key:"remote_alias",value:s.remote_alias,title:"Peer Alias",width:25,type:l.Gi.STRING},{key:"remote_node_pub",value:s.remote_node_pub,title:"Peer Node Pubkey",width:75,type:l.Gi.STRING}],[{key:"capacity",value:s.capacity,title:"Capacity",width:25,type:l.Gi.NUMBER},{key:"local_balance",value:s.local_balance,title:"Local Balance",width:25,type:l.Gi.NUMBER},{key:"remote_balance",value:s.remote_balance,title:"Remote Balance",width:50,type:l.Gi.NUMBER}]]}}}))}onWaitClosingClick(t){const a=JSON.parse(JSON.stringify(t,["limbo_balance"],2)),o=JSON.parse(JSON.stringify(t.channel,["remote_alias","channel_point","remote_balance","local_balance","remote_node_pub","capacity"],2)),s=JSON.parse(JSON.stringify(t.commitments,["local_txid"],2)),u={};Object.assign(u,a,o,s),this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Wait Closing Channel Information",message:[[{key:"local_txid",value:u.local_txid,title:"Transaction ID",width:100,type:l.Gi.STRING}],[{key:"channel_point",value:u.channel_point,title:"Channel Point",width:100,type:l.Gi.STRING}],[{key:"remote_alias",value:u.remote_alias,title:"Peer Alias",width:25,type:l.Gi.STRING},{key:"remote_node_pub",value:u.remote_node_pub,title:"Peer Node Pubkey",width:75,type:l.Gi.STRING}],[{key:"capacity",value:u.capacity,title:"Capacity",width:25,type:l.Gi.NUMBER},{key:"limbo_balance",value:u.limbo_balance,title:"Limbo Balance",width:25,type:l.Gi.NUMBER},{key:"local_balance",value:u.local_balance,title:"Local Balance",width:25,type:l.Gi.NUMBER},{key:"remote_balance",value:u.remote_balance,title:"Remote Balance",width:25,type:l.Gi.NUMBER}]]}}}))}loadOpenChannelsTable(t){t.sort((a,o)=>a.active===o.active?0:o.active?-1:1),this.pendingOpenChannelsLength=t.length?t.length:0,this.pendingOpenChannels=new r.by([...t]),this.pendingOpenChannels.sort=this.sort,this.pendingOpenChannels.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.pendingOpenChannels.filterPredicate=(a,o)=>JSON.stringify(a).toLowerCase().includes(o),this.logger.info(this.pendingOpenChannels)}loadForceClosingChannelsTable(t){t.sort((a,o)=>a.active===o.active?0:o.active?-1:1),this.pendingForceClosingChannelsLength=t.length?t.length:0,this.pendingForceClosingChannels=new r.by([...t]),this.pendingForceClosingChannels.sort=this.sort,this.pendingForceClosingChannels.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.pendingForceClosingChannels.filterPredicate=(a,o)=>JSON.stringify(a).toLowerCase().includes(o),this.logger.info(this.pendingForceClosingChannels)}loadClosingChannelsTable(t){t.sort((a,o)=>a.active===o.active?0:o.active?-1:1),this.pendingClosingChannelsLength=t.length?t.length:0,this.pendingClosingChannels=new r.by([...t]),this.pendingClosingChannels.sort=this.sort,this.pendingClosingChannels.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.pendingClosingChannels.filterPredicate=(a,o)=>JSON.stringify(a).toLowerCase().includes(o),this.logger.info(this.pendingClosingChannels)}loadWaitClosingChannelsTable(t){t.sort((a,o)=>a.active===o.active?0:o.active?-1:1),this.pendingWaitClosingChannelsLength=t.length?t.length:0,this.pendingWaitClosingChannels=new r.by([...t]),this.pendingWaitClosingChannels.sort=this.sort,this.pendingWaitClosingChannels.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.pendingWaitClosingChannels.filterPredicate=(a,o)=>JSON.stringify(a).toLowerCase().includes(o),this.logger.info(this.pendingWaitClosingChannels)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(M.v))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-pending-table"]],viewQuery:function(t,a){if(1&t&&e.Gf(A.YE,5),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first)}},decls:121,vars:44,consts:[["fxLayout","column",1,"mb-2"],[1,"page-title"],["displayMode","flat",1,"mt-1"],["mode","indeterminate",4,"ngIf"],["fxLayout","column",1,"flat-expansion-panel"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","remote_alias"],["mat-sort-header","",4,"matHeaderCellDef"],[3,"ngStyle",4,"matCellDef"],["matColumnDef","commit_fee"],["fxLayoutAlign","end center","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","commit_weight"],["matColumnDef","capacity"],["matColumnDef","actions"],["fxLayoutAlign","end center","class","pl-3 pr-4",4,"matHeaderCellDef"],["fxLayoutAlign","end center","class","px-3",4,"matCellDef"],["matColumnDef","no_pending_open"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","","fxLayoutAlign","start center",3,"ngClass",4,"matFooterRowDef"],[4,"matHeaderRowDef"],["fxLayoutAlign","stretch stretch",4,"matRowDef","matRowDefColumns"],["mat-table","","matSort","",3,"dataSource","ngClass"],["matColumnDef","recovered_balance"],["matColumnDef","limbo_balance"],["fxLayoutAlign","end center","class","pl-4 pr-3",4,"matHeaderCellDef"],["fxLayoutAlign","end center","class","pl-4",4,"matCellDef"],["matColumnDef","no_pending_force_closing"],["class","pl-2","mat-sort-header","",4,"matHeaderCellDef"],["class","pl-2",3,"ngStyle",4,"matCellDef"],["matColumnDef","local_balance"],["matColumnDef","remote_balance"],["matColumnDef","no_pending_closing"],["matColumnDef","no_pending_wait_closing"],["mode","indeterminate"],["mat-sort-header",""],[3,"ngStyle"],["fxLayoutAlign","end center","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["fxLayoutAlign","end center",1,"pl-3","pr-4"],["fxLayoutAlign","end center",1,"px-3"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","","fxLayoutAlign","start center",3,"ngClass"],["fxLayoutAlign","stretch stretch"],["fxLayoutAlign","end center",1,"pl-4","pr-3"],["fxLayoutAlign","end center",1,"pl-4"],["mat-stroked-button","","color","primary","type","button","tabindex","2",3,"click"],["mat-sort-header","",1,"pl-2"],[1,"pl-2",3,"ngStyle"],["mat-stroked-button","","color","primary","type","button","tabindex","3",3,"click"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"span",1),e._uU(2),e.ALo(3,"number"),e.qZA(),e.TgZ(4,"mat-accordion",2),e.YNc(5,Is,1,0,"mat-progress-bar",3),e.TgZ(6,"mat-expansion-panel",4),e.TgZ(7,"mat-expansion-panel-header"),e.TgZ(8,"mat-panel-title"),e._uU(9),e.qZA(),e.qZA(),e.TgZ(10,"div",5),e.YNc(11,Ds,1,0,"mat-progress-bar",3),e.TgZ(12,"table",6,7),e.ynx(14,8),e.YNc(15,Ms,2,0,"mat-header-cell",9),e.YNc(16,Ps,2,4,"mat-cell",10),e.BQk(),e.ynx(17,11),e.YNc(18,Js,2,0,"mat-header-cell",12),e.YNc(19,Es,3,3,"mat-cell",13),e.BQk(),e.ynx(20,14),e.YNc(21,Qs,2,0,"mat-header-cell",12),e.YNc(22,Ys,3,3,"mat-cell",13),e.BQk(),e.ynx(23,15),e.YNc(24,Bs,2,0,"mat-header-cell",12),e.YNc(25,Hs,3,3,"mat-cell",13),e.BQk(),e.ynx(26,16),e.YNc(27,Gs,2,0,"mat-header-cell",17),e.YNc(28,zs,8,0,"mat-cell",18),e.BQk(),e.ynx(29,19),e.YNc(30,$s,4,3,"td",20),e.BQk(),e.YNc(31,js,1,3,"tr",21),e.YNc(32,Ks,1,0,"mat-header-row",22),e.YNc(33,el,1,0,"mat-row",23),e.qZA(),e.qZA(),e.qZA(),e.YNc(34,tl,1,0,"mat-progress-bar",3),e.TgZ(35,"mat-expansion-panel",4),e.TgZ(36,"mat-expansion-panel-header"),e.TgZ(37,"mat-panel-title"),e._uU(38),e.qZA(),e.qZA(),e.TgZ(39,"div",5),e.TgZ(40,"table",24,7),e.ynx(42,8),e.YNc(43,nl,2,0,"mat-header-cell",9),e.YNc(44,al,2,4,"mat-cell",10),e.BQk(),e.ynx(45,25),e.YNc(46,il,2,0,"mat-header-cell",12),e.YNc(47,ol,3,3,"mat-cell",13),e.BQk(),e.ynx(48,26),e.YNc(49,sl,2,0,"mat-header-cell",12),e.YNc(50,ll,3,3,"mat-cell",13),e.BQk(),e.ynx(51,15),e.YNc(52,rl,2,0,"mat-header-cell",12),e.YNc(53,cl,3,3,"mat-cell",13),e.BQk(),e.ynx(54,16),e.YNc(55,ul,2,0,"mat-header-cell",27),e.YNc(56,pl,3,0,"mat-cell",28),e.BQk(),e.ynx(57,29),e.YNc(58,hl,4,3,"td",20),e.BQk(),e.YNc(59,gl,1,3,"tr",21),e.YNc(60,fl,1,0,"mat-header-row",22),e.YNc(61,Cl,1,0,"mat-row",23),e.qZA(),e.qZA(),e.qZA(),e.YNc(62,xl,1,0,"mat-progress-bar",3),e.TgZ(63,"mat-expansion-panel",4),e.TgZ(64,"mat-expansion-panel-header"),e.TgZ(65,"mat-panel-title"),e._uU(66),e.qZA(),e.qZA(),e.TgZ(67,"div",5),e.TgZ(68,"table",24,7),e.ynx(70,8),e.YNc(71,Tl,2,0,"mat-header-cell",30),e.YNc(72,yl,2,4,"mat-cell",31),e.BQk(),e.ynx(73,32),e.YNc(74,Zl,2,0,"mat-header-cell",12),e.YNc(75,bl,3,3,"mat-cell",13),e.BQk(),e.ynx(76,33),e.YNc(77,Al,2,0,"mat-header-cell",12),e.YNc(78,vl,3,3,"mat-cell",13),e.BQk(),e.ynx(79,15),e.YNc(80,wl,2,0,"mat-header-cell",12),e.YNc(81,ql,3,3,"mat-cell",13),e.BQk(),e.ynx(82,16),e.YNc(83,Sl,2,0,"mat-header-cell",27),e.YNc(84,Ll,3,0,"mat-cell",28),e.BQk(),e.ynx(85,34),e.YNc(86,Ul,4,3,"td",20),e.BQk(),e.YNc(87,Ol,1,3,"tr",21),e.YNc(88,Rl,1,0,"mat-header-row",22),e.YNc(89,Il,1,0,"mat-row",23),e.qZA(),e.qZA(),e.qZA(),e.YNc(90,Dl,1,0,"mat-progress-bar",3),e.TgZ(91,"mat-expansion-panel",4),e.TgZ(92,"mat-expansion-panel-header"),e.TgZ(93,"mat-panel-title"),e._uU(94),e.qZA(),e.qZA(),e.TgZ(95,"div",5),e.TgZ(96,"table",24,7),e.ynx(98,8),e.YNc(99,Ml,2,0,"mat-header-cell",30),e.YNc(100,Pl,2,4,"mat-cell",31),e.BQk(),e.ynx(101,26),e.YNc(102,Jl,2,0,"mat-header-cell",12),e.YNc(103,El,3,3,"mat-cell",13),e.BQk(),e.ynx(104,32),e.YNc(105,Ql,2,0,"mat-header-cell",12),e.YNc(106,Yl,3,3,"mat-cell",13),e.BQk(),e.ynx(107,33),e.YNc(108,Bl,2,0,"mat-header-cell",12),e.YNc(109,Hl,3,3,"mat-cell",13),e.BQk(),e.ynx(110,15),e.YNc(111,Gl,2,0,"mat-header-cell",12),e.YNc(112,zl,3,3,"mat-cell",13),e.BQk(),e.ynx(113,16),e.YNc(114,Vl,2,0,"mat-header-cell",27),e.YNc(115,Wl,3,0,"mat-cell",28),e.BQk(),e.ynx(116,35),e.YNc(117,Kl,4,3,"td",20),e.BQk(),e.YNc(118,tr,1,3,"tr",21),e.YNc(119,nr,1,0,"mat-header-row",22),e.YNc(120,ar,1,0,"mat-row",23),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(2),e.hij("Total Limbo Balance: ",e.lcZ(3,30,a.pendingChannels.total_limbo_balance)," Sats"),e.xp6(3),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(4),e.hij("Pending Open (",a.pendingOpenChannelsLength,")"),e.xp6(2),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",a.pendingOpenChannels)("ngClass",e.VKq(32,ue,""!==a.errorMessage)),e.xp6(19),e.Q6J("matFooterRowDef",e.DdM(34,ir)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedOpenColumns),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedOpenColumns),e.xp6(1),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(4),e.hij("Pending Force Closing (",a.pendingForceClosingChannelsLength,")"),e.xp6(2),e.Q6J("dataSource",a.pendingForceClosingChannels)("ngClass",e.VKq(35,ue,""!==a.errorMessage)),e.xp6(19),e.Q6J("matFooterRowDef",e.DdM(37,or)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedForceClosingColumns),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedForceClosingColumns),e.xp6(1),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(4),e.hij("Pending Closing (",a.pendingClosingChannelsLength,")"),e.xp6(2),e.Q6J("dataSource",a.pendingClosingChannels)("ngClass",e.VKq(38,ue,""!==a.errorMessage)),e.xp6(19),e.Q6J("matFooterRowDef",e.DdM(40,sr)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedClosingColumns),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedClosingColumns),e.xp6(1),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(4),e.hij("Waiting Close (",a.pendingWaitClosingChannelsLength,")"),e.xp6(2),e.Q6J("dataSource",a.pendingWaitClosingChannels)("ngClass",e.VKq(41,ue,""!==a.errorMessage)),e.xp6(22),e.Q6J("matFooterRowDef",e.DdM(43,lr)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedWaitClosingColumns),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedWaitClosingColumns))},directives:[d.xw,H.pp,m.O5,H.ib,H.yz,H.yK,d.Wh,d.yH,Y.$V,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,J.pW,r.ge,A.nU,r.ev,m.PC,L.Zl,N.gD,N.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk,q.lW],pipes:[m.JJ],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 10%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}tr.mat-footer-row[_ngcontent-%COMP%] td.mat-footer-cell[_ngcontent-%COMP%]{border-bottom:none}"]}),n})();function cr(n,i){1&n&&e._UZ(0,"mat-progress-bar",28)}function ur(n,i){1&n&&(e.TgZ(0,"th",29),e._uU(1," Close Type "),e.qZA())}function pr(n,i){if(1&n&&(e.TgZ(0,"td",30),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("matTooltip",a.channelClosureType[t.close_type].tooltip),e.xp6(1),e.hij("",a.channelClosureType[t.close_type].name," ")}}function mr(n,i){1&n&&(e.TgZ(0,"th",29),e._uU(1," Peer "),e.qZA())}const dr=function(n){return{"max-width":n}};function _r(n,i){if(1&n&&(e.TgZ(0,"td",31),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,dr,a.screenSize===a.screenSizeEnum.XS?"10rem":"20rem")),e.xp6(1),e.hij(" ",t.remote_alias," ")}}function hr(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1," Capacity "),e.qZA())}function gr(n,i){if(1&n&&(e.TgZ(0,"td",33),e.TgZ(1,"span",34),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,t.capacity)," ")}}function fr(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1," Close Height "),e.qZA())}function Cr(n,i){if(1&n&&(e.TgZ(0,"td",33),e.TgZ(1,"span",34),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,t.close_height)," ")}}function xr(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1," Settled Balance "),e.qZA())}function Tr(n,i){if(1&n&&(e.TgZ(0,"td",33),e.TgZ(1,"span",34),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,t.settled_balance)," ")}}function yr(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"th",35),e.TgZ(1,"div",36),e.TgZ(2,"mat-select",37),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",38),e.NdJ("click",function(){return e.CHM(t),e.oxw().onDownloadCSV()}),e._uU(5,"Download CSV"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function Zr(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",39),e.TgZ(1,"span",34),e.TgZ(2,"button",40),e.NdJ("click",function(o){const u=e.CHM(t).$implicit;return e.oxw().onClosedChannelClick(u,o)}),e._uU(3,"View Info"),e.qZA(),e.qZA(),e.qZA()}}function br(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No closed channel available."),e.qZA())}function Ar(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting closed channels..."),e.qZA())}function vr(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function wr(n,i){if(1&n&&(e.TgZ(0,"td",41),e.YNc(1,br,2,0,"p",42),e.YNc(2,Ar,2,0,"p",42),e.YNc(3,vr,2,1,"p",42),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!(null!=t.closedChannels&&t.closedChannels.data)||(null==t.closedChannels||null==t.closedChannels.data?null:t.closedChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.closedChannels&&t.closedChannels.data)||(null==t.closedChannels||null==t.closedChannels.data?null:t.closedChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.closedChannels&&t.closedChannels.data)||(null==t.closedChannels||null==t.closedChannels.data?null:t.closedChannels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const qr=function(n){return{"display-none":n}};function Sr(n,i){if(1&n&&e._UZ(0,"tr",43),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,qr,(null==t.closedChannels?null:t.closedChannels.data)&&(null==t.closedChannels||null==t.closedChannels.data?null:t.closedChannels.data.length)>0))}}function Lr(n,i){1&n&&e._UZ(0,"tr",44)}function kr(n,i){1&n&&e._UZ(0,"tr",45)}const Fr=function(n){return{"error-border":n,"overflow-auto":!0}},Nr=function(){return["no_closed_channel"]};let Ur=(()=>{class n{constructor(t,a,o){this.logger=t,this.store=a,this.commonService=o,this.channelClosureType=l.HW,this.faHistory=x.qO$,this.displayedColumns=[],this.closedChannelsData=[],this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unsub=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["remote_alias","actions"]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["close_type","remote_alias","settled_balance","actions"]):(this.flgSticky=!0,this.displayedColumns=["close_type","remote_alias","capacity","close_height","settled_balance","actions"])}ngOnInit(){this.store.select(C.P2).pipe((0,_.R)(this.unsub[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.closedChannelsData=t.closedChannels,this.closedChannelsData.length>0&&this.loadClosedChannelsTable(this.closedChannelsData),this.logger.info(t)})}ngAfterViewInit(){this.closedChannelsData.length>0&&this.loadClosedChannelsTable(this.closedChannelsData)}applyFilter(){this.closedChannels.filter=this.selFilter.trim().toLowerCase()}onClosedChannelClick(t,a){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Closed Channel Information",message:[[{key:"close_type",value:this.channelClosureType[t.close_type].name,title:"Close Type",width:30,type:l.Gi.STRING},{key:"settled_balance",value:t.settled_balance,title:"Settled Balance",width:30,type:l.Gi.NUMBER},{key:"time_locked_balance",value:t.time_locked_balance,title:"Time Locked Balance",width:40,type:l.Gi.NUMBER}],[{key:"chan_id",value:t.chan_id,title:"Channel ID",width:30},{key:"capacity",value:t.capacity,title:"Capacity",width:30,type:l.Gi.NUMBER},{key:"close_height",value:t.close_height,title:"Close Height",width:40,type:l.Gi.NUMBER}],[{key:"remote_alias",value:t.remote_alias,title:"Peer Alias",width:30},{key:"remote_pubkey",value:t.remote_pubkey,title:"Peer Public Key",width:70}],[{key:"channel_point",value:t.channel_point,title:"Channel Point",width:100}],[{key:"closing_tx_hash",value:t.closing_tx_hash,title:"Closing Transaction Hash",width:100,type:l.Gi.STRING}]]}}}))}loadClosedChannelsTable(t){this.closedChannels=new r.by([...t]),this.closedChannels.sort=this.sort,this.closedChannels.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.closedChannels.filterPredicate=(a,o)=>JSON.stringify(a).toLowerCase().includes(o),this.closedChannels.paginator=this.paginator,this.applyFilter(),this.logger.info(this.closedChannels)}onDownloadCSV(){this.closedChannels.data&&this.closedChannels.data.length>0&&this.commonService.downloadFile(this.closedChannels.data,"Closed-channels")}ngOnDestroy(){this.unsub.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(M.v))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-closed-table"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Channels")}])],decls:33,vars:14,consts:[["fxLayout","column"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","close_type"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"matTooltip",4,"matCellDef"],["matColumnDef","remote_alias"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","capacity"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","close_height"],["matColumnDef","settled_balance"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1",4,"matCellDef"],["matColumnDef","no_closed_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"matTooltip"],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pl-1"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","",1,"pl-1"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e._UZ(2,"div",2),e.TgZ(3,"mat-form-field",3),e.TgZ(4,"input",4),e.NdJ("keyup",function(){return a.applyFilter()})("ngModelChange",function(s){return a.selFilter=s}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(5,"div",5),e.YNc(6,cr,1,0,"mat-progress-bar",6),e.TgZ(7,"table",7,8),e.ynx(9,9),e.YNc(10,ur,2,0,"th",10),e.YNc(11,pr,2,2,"td",11),e.BQk(),e.ynx(12,12),e.YNc(13,mr,2,0,"th",10),e.YNc(14,_r,2,4,"td",13),e.BQk(),e.ynx(15,14),e.YNc(16,hr,2,0,"th",15),e.YNc(17,gr,4,3,"td",16),e.BQk(),e.ynx(18,17),e.YNc(19,fr,2,0,"th",15),e.YNc(20,Cr,4,3,"td",16),e.BQk(),e.ynx(21,18),e.YNc(22,xr,2,0,"th",15),e.YNc(23,Tr,4,3,"td",16),e.BQk(),e.ynx(24,19),e.YNc(25,yr,6,0,"th",20),e.YNc(26,Zr,4,0,"td",21),e.BQk(),e.ynx(27,22),e.YNc(28,wr,4,3,"td",23),e.BQk(),e.YNc(29,Sr,1,3,"tr",24),e.YNc(30,Lr,1,0,"tr",25),e.YNc(31,kr,1,0,"tr",26),e.qZA(),e.qZA(),e._UZ(32,"mat-paginator",27),e.qZA()),2&t&&(e.xp6(4),e.Q6J("ngModel",a.selFilter),e.xp6(2),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",a.closedChannels)("ngClass",e.VKq(11,Fr,""!==a.errorMessage)),e.xp6(22),e.Q6J("matFooterRowDef",e.DdM(13,Nr)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedColumns)("matHeaderRowDefSticky",a.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedColumns),e.xp6(1),e.Q6J("pageSize",a.pageSize)("pageSizeOptions",a.pageSizeOptions)("showFirstLastButtons",a.screenSize!==a.screenSizeEnum.XS))},directives:[d.xw,d.Wh,d.yH,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,m.O5,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,J.pW,r.ge,A.nU,r.ev,W.gM,m.PC,L.Zl,N.gD,N.$L,Q.ey,q.lW,r.yh,r.Q2,r.XQ,r.Gk],pipes:[m.JJ],styles:[".mat-column-close_type[_ngcontent-%COMP%]{flex:0 0 16%;min-width:5rem}.mat-column-remote_alias[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();function Or(n,i){1&n&&e._UZ(0,"mat-progress-bar",27)}function Rr(n,i){1&n&&(e.TgZ(0,"th",28),e._uU(1,"Amount (Sats)"),e.qZA())}function Ir(n,i){if(1&n&&(e.TgZ(0,"span",33),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",e.lcZ(2,1,null==t?null:t.amount)," ")}}function Dr(n,i){if(1&n&&(e.TgZ(0,"span"),e.YNc(1,Ir,3,3,"span",32),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.pending_htlcs)}}function Mr(n,i){if(1&n&&(e.TgZ(0,"td",29),e.TgZ(1,"span",30),e._uU(2),e.qZA(),e.YNc(3,Dr,2,1,"span",31),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" Active HTLCs: ",null==t||null==t.pending_htlcs?null:t.pending_htlcs.length," "),e.xp6(1),e.Q6J("ngIf",t.is_expanded)}}function Pr(n,i){1&n&&(e.TgZ(0,"th",28),e._uU(1,"Alias/Incoming"),e.qZA())}function Jr(n,i){if(1&n&&(e.TgZ(0,"span",30),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",null!=t&&t.incoming?"Yes":"No"," ")}}function Er(n,i){if(1&n&&(e.ynx(0),e.YNc(1,Jr,2,1,"span",34),e.BQk()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.pending_htlcs)}}function Qr(n,i){if(1&n&&(e.TgZ(0,"td",29),e.TgZ(1,"span",30),e._uU(2),e.qZA(),e.YNc(3,Er,2,1,"ng-container",31),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(null==t?null:t.remote_alias),e.xp6(1),e.Q6J("ngIf",t.is_expanded)}}function Yr(n,i){1&n&&(e.TgZ(0,"th",35),e.TgZ(1,"span",36),e._uU(2,"Expiration Height"),e.qZA(),e.qZA())}function Br(n,i){if(1&n&&(e.TgZ(0,"span",36),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",e.xi3(2,1,null==t?null:t.expiration_height,"1.0-0")," ")}}function Hr(n,i){if(1&n&&(e.TgZ(0,"span"),e.YNc(1,Br,3,4,"span",37),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.pending_htlcs)}}function Gr(n,i){if(1&n&&(e.TgZ(0,"td",29),e.TgZ(1,"span",36),e._uU(2),e.qZA(),e.YNc(3,Hr,2,1,"span",31),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(" "),e.xp6(1),e.Q6J("ngIf",t.is_expanded)}}function zr(n,i){1&n&&(e.TgZ(0,"th",38),e.TgZ(1,"span",36),e._uU(2,"Hash Lock"),e.qZA(),e.qZA())}function Vr(n,i){if(1&n&&(e.TgZ(0,"span",36),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",null==t?null:t.hash_lock," ")}}function Wr(n,i){if(1&n&&(e.TgZ(0,"span"),e.YNc(1,Vr,2,1,"span",37),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.pending_htlcs)}}function Xr(n,i){if(1&n&&(e.TgZ(0,"td",39),e.TgZ(1,"span",36),e._uU(2),e.qZA(),e.YNc(3,Wr,2,1,"span",31),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(" "),e.xp6(1),e.Q6J("ngIf",t.is_expanded)}}function $r(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"th",40),e.TgZ(1,"div",41),e.TgZ(2,"mat-select",42),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",43),e.NdJ("click",function(){return e.CHM(t),e.oxw().onDownloadCSV()}),e._uU(5,"Download CSV"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function jr(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",45),e.TgZ(1,"button",48),e.NdJ("click",function(){const s=e.CHM(t).$implicit,u=e.oxw(2).$implicit;return e.oxw().onHTLCClick(s,u)}),e._uU(2),e.qZA(),e.qZA()}if(2&n){const t=i.index;e.xp6(2),e.hij("View ",t+1,"")}}function Kr(n,i){if(1&n&&(e.TgZ(0,"div"),e.YNc(1,jr,3,1,"div",47),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngForOf",null==t?null:t.pending_htlcs)}}function ec(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",44),e.TgZ(1,"span",45),e.TgZ(2,"button",46),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return s.is_expanded=!s.is_expanded}),e._uU(3),e.qZA(),e.qZA(),e.YNc(4,Kr,2,1,"div",31),e.qZA()}if(2&n){const t=i.$implicit;e.xp6(3),e.Oqu(t.is_expanded?"Hide":"Show"),e.xp6(1),e.Q6J("ngIf",t.is_expanded)}}function tc(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No active htlc available."),e.qZA())}function nc(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting active htlcs..."),e.qZA())}function ac(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function ic(n,i){if(1&n&&(e.TgZ(0,"td",49),e.YNc(1,tc,2,0,"p",31),e.YNc(2,nc,2,0,"p",31),e.YNc(3,ac,2,1,"p",31),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const oc=function(n){return{"display-none":n}};function sc(n,i){if(1&n&&e._UZ(0,"tr",50),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,oc,(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function lc(n,i){1&n&&e._UZ(0,"tr",51)}function rc(n,i){1&n&&e._UZ(0,"tr",52)}const cc=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},uc=function(){return["no_channel"]};let pc=(()=>{class n{constructor(t,a,o){this.logger=t,this.commonService=a,this.store=o,this.channelsJSONArr=[],this.displayedColumns=[],this.htlcColumns=[],this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["amount","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["amount","incoming","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["amount","incoming","expiration_height","actions"]):(this.flgSticky=!0,this.displayedColumns=["amount","incoming","expiration_height","hash_lock","actions"])}ngOnInit(){this.store.select(C.ZW).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.channelsJSONArr=t.channels.filter(a=>a.pending_htlcs&&a.pending_htlcs.length>0)||[],this.loadHTLCsTable(this.channelsJSONArr),this.logger.info(t)})}ngAfterViewInit(){this.loadHTLCsTable(this.channelsJSONArr)}onHTLCClick(t,a){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"HTLC Information",message:[[{key:"remote_alias",value:a.remote_alias,title:"Alias",width:100,type:l.Gi.STRING}],[{key:"amount",value:t.amount,title:"Amount (Sats)",width:50,type:l.Gi.NUMBER},{key:"incoming",value:t.incoming?"Yes":"No",title:"Incoming",width:50,type:l.Gi.STRING}],[{key:"expiration_height",value:t.expiration_height,title:"Expiration Height",width:50,type:l.Gi.NUMBER},{key:"hash_lock",value:t.hash_lock,title:"Hash Lock",width:50,type:l.Gi.STRING}]]}}}))}onChannelClick(t,a){this.store.dispatch((0,v.qR)({payload:{data:{channel:t,showCopy:!0,component:ge}}}))}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}loadHTLCsTable(t){this.channels=new r.by(t?[...t]:[]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(a,o)=>{switch(o){case"amount":return this.commonService.sortByKey(a.pending_htlcs,o,"number",this.sort.direction),a.pending_htlcs&&a.pending_htlcs.length?a.pending_htlcs.length:null;case"incoming":return this.commonService.sortByKey(a.pending_htlcs,o,"boolean",this.sort.direction),a.remote_alias?a.remote_alias:a.remote_pubkey?a.remote_pubkey:null;case"expiration_height":case"hash_lock":return this.commonService.sortByKey(a.pending_htlcs,o,"number",this.sort.direction),a;default:return a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null}},this.channels.paginator=this.paginator,this.channels.filterPredicate=(a,o)=>((a.remote_alias?a.remote_alias.toLowerCase():"")+a.pending_htlcs.map(u=>JSON.stringify(u)+(u.incoming?"yes":"no"))).includes(o),this.applyFilter()}onDownloadCSV(){this.channels.data&&this.channels.data.length>0&&this.commonService.downloadFile(this.flattenHTLCs(),"ActiveHTLCs")}flattenHTLCs(){return JSON.parse(JSON.stringify(this.channels.data)).reduce((o,s)=>o.concat(s.pending_htlcs?s.pending_htlcs:s),[])}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(M.v),e.Y36(w.yh))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-active-htlcs-table"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("HTLCs")}])],decls:30,vars:14,consts:[["fxLayout","column",1,"padding-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","incoming"],["matColumnDef","expiration_height"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","hash_lock"],["mat-header-cell","","mat-sort-header","","arrowPosition","before","class","pl-3 htlc-row-span",4,"matHeaderCellDef"],["mat-cell","","class","pl-3",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","px-2",4,"matHeaderCellDef"],["mat-cell","","class","px-2",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["fxLayoutAlign","start center",1,"htlc-row-span"],[4,"ngIf"],["fxLayoutAlign","start center","class","htlc-row-span pl-3",4,"ngFor","ngForOf"],["fxLayoutAlign","start center",1,"htlc-row-span","pl-3"],["fxLayoutAlign","start center","class","htlc-row-span",4,"ngFor","ngForOf"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center",1,"htlc-row-span"],["fxLayoutAlign","end center","class","htlc-row-span",4,"ngFor","ngForOf"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",1,"pl-3","htlc-row-span"],["mat-cell","",1,"pl-3"],["mat-header-cell","",1,"px-2"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","",1,"px-2"],["fxLayoutAlign","end center"],["mat-flat-button","","color","primary","type","button","tabindex","5",1,"btn-htlc-expand",3,"click"],["fxLayoutAlign","end center",4,"ngFor","ngForOf"],["mat-stroked-button","","color","primary","type","button","tabindex","6",1,"btn-htlc-info",3,"click"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e._UZ(2,"div",2),e.TgZ(3,"mat-form-field",3),e.TgZ(4,"input",4),e.NdJ("keyup",function(){return a.applyFilter()})("ngModelChange",function(s){return a.selFilter=s}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(5,"div",5),e.YNc(6,Or,1,0,"mat-progress-bar",6),e.TgZ(7,"table",7,8),e.ynx(9,9),e.YNc(10,Rr,2,0,"th",10),e.YNc(11,Mr,4,2,"td",11),e.BQk(),e.ynx(12,12),e.YNc(13,Pr,2,0,"th",10),e.YNc(14,Qr,4,2,"td",11),e.BQk(),e.ynx(15,13),e.YNc(16,Yr,3,0,"th",14),e.YNc(17,Gr,4,2,"td",11),e.BQk(),e.ynx(18,15),e.YNc(19,zr,3,0,"th",16),e.YNc(20,Xr,4,2,"td",17),e.BQk(),e.ynx(21,18),e.YNc(22,$r,6,0,"th",19),e.YNc(23,ec,5,2,"td",20),e.BQk(),e.ynx(24,21),e.YNc(25,ic,4,3,"td",22),e.BQk(),e.YNc(26,sc,1,3,"tr",23),e.YNc(27,lc,1,0,"tr",24),e.YNc(28,rc,1,0,"tr",25),e.qZA(),e.qZA(),e._UZ(29,"mat-paginator",26),e.qZA()),2&t&&(e.xp6(4),e.Q6J("ngModel",a.selFilter),e.xp6(2),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",a.channels)("ngClass",e.VKq(11,cc,""!==a.errorMessage)),e.xp6(19),e.Q6J("matFooterRowDef",e.DdM(13,uc)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedColumns)("matHeaderRowDefSticky",a.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedColumns),e.xp6(1),e.Q6J("pageSize",a.pageSize)("pageSizeOptions",a.pageSizeOptions)("showFirstLastButtons",a.screenSize!==a.screenSizeEnum.XS))},directives:[d.xw,d.Wh,d.yH,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,m.O5,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,J.pW,r.ge,A.nU,r.ev,m.sg,N.gD,N.$L,Q.ey,q.lW,r.yh,r.Q2,r.XQ,r.Gk],pipes:[m.JJ],styles:[".mat-column-amount[_ngcontent-%COMP%], .mat-column-expiration_height[_ngcontent-%COMP%]{flex:0 0 30%;width:30%}.mat-column-incoming[_ngcontent-%COMP%], .mat-column-hash_lock[_ngcontent-%COMP%]{flex:0 0 25%;width:25%;text-overflow:ellipsis}.htlc-row-span[_ngcontent-%COMP%]{min-height:4.2rem;place-content:center flex-start;align-items:center}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}.mat-column-actions[_ngcontent-%COMP%] .btn-htlc-expand[_ngcontent-%COMP%]{width:9rem}.mat-column-actions[_ngcontent-%COMP%] .btn-htlc-info[_ngcontent-%COMP%]{margin-top:.5rem;width:9rem}"]}),n})();function mc(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Wallet password is required."),e.qZA())}let dc=(()=>{class n{constructor(t){this.store=t,this.walletPassword=""}ngOnInit(){this.walletPassword=""}onUnlockWallet(){if(!this.walletPassword)return!0;this.store.dispatch((0,y.xG)({payload:{pwd:window.btoa(this.walletPassword)}}))}resetData(){this.walletPassword=""}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(w.yh))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-unlock-wallet"]],decls:12,vars:2,consts:[["fxLayout","column",1,"padding-gap","mb-2"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between"],["fxFlex","100","fxLayoutAlign","start"],["autoFocus","","matInput","","type","password","placeholder","Password","name","walletPassword","tabindex","1","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","3",3,"click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"form",1),e.TgZ(2,"mat-form-field",2),e.TgZ(3,"input",3),e.NdJ("ngModelChange",function(s){return a.walletPassword=s}),e.qZA(),e.TgZ(4,"mat-hint"),e._uU(5,"Enter Wallet Password"),e.qZA(),e.YNc(6,mc,2,0,"mat-error",4),e.qZA(),e.TgZ(7,"div",5),e.TgZ(8,"button",6),e.NdJ("click",function(){return a.resetData()}),e._uU(9,"Clear Field"),e.qZA(),e.TgZ(10,"button",7),e.NdJ("click",function(){return a.onUnlockWallet()}),e._uU(11,"Unlock Wallet"),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(3),e.Q6J("ngModel",a.walletPassword),e.xp6(3),e.Q6J("ngIf",!a.walletPassword))},directives:[d.xw,c._Y,c.JL,c.F,d.Wh,f.KE,d.yH,D.Nt,c.Fj,V.h,c.Q7,c.JJ,c.On,f.bx,m.O5,q.lW,f.TO],styles:[""]}),n})();var _c=h(1555);function hc(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div"),e.TgZ(1,"form",4),e.TgZ(2,"div",5),e._uU(3,"Warning: Your connection is unsecure, it's not safe to generate private keys over this connection.Are you sure you want to proceed?"),e.qZA(),e.TgZ(4,"div",6),e.TgZ(5,"button",7),e.NdJ("click",function(){e.CHM(t);const o=e.oxw();return o.proceed=!1,o.warnRes=!0}),e._uU(6,"Do Not Proceed"),e.qZA(),e.TgZ(7,"button",8),e.NdJ("click",function(){e.CHM(t);const o=e.oxw();return o.proceed=!0,o.warnRes=!0}),e._uU(8,"Proceed"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function gc(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",9),e.TgZ(1,"div",10),e._uU(2,"Please re-configure & re-start RTL after securing your LND connction. You can close this window now."),e.qZA(),e.TgZ(3,"div",6),e.TgZ(4,"button",11),e.NdJ("click",function(){return e.CHM(t),e.oxw().warnRes=!1}),e._uU(5,"Go Back"),e.qZA(),e.qZA(),e.qZA()}}function fc(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Password is required."),e.qZA())}function Cc(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Password must be at least 8 characters in length."),e.qZA())}function xc(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Confirm password is required."),e.qZA())}function Tc(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Confirm password must be at least 8 characters in length."),e.qZA())}function yc(n,i){1&n&&(e.TgZ(0,"div",41),e.TgZ(1,"mat-icon",42),e._uU(2,"cancel"),e.qZA(),e._uU(3,"Passwords do not match. "),e.qZA())}function Zc(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Cipher seed is required."),e.qZA())}function bc(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Invalid Cipher. Enter comma separated 24 words cipher seed."),e.qZA())}function Ac(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Passphrase is required."),e.qZA())}function vc(n,i){1&n&&(e.TgZ(0,"mat-icon"),e._uU(1,"vpn_key"),e.qZA())}function wc(n,i){1&n&&(e.TgZ(0,"mat-icon"),e._uU(1,"swap_calls"),e.qZA())}function qc(n,i){1&n&&(e.TgZ(0,"mat-icon"),e._uU(1,"fingerprint"),e.qZA())}function Sc(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-vertical-stepper",12,13),e.TgZ(2,"mat-step",14),e.TgZ(3,"form",15),e.TgZ(4,"mat-form-field",16),e._UZ(5,"input",17),e.TgZ(6,"mat-hint"),e._uU(7,"Enter Wallet Password"),e.qZA(),e.YNc(8,fc,2,0,"mat-error",1),e.YNc(9,Cc,2,0,"mat-error",1),e.qZA(),e.TgZ(10,"mat-form-field",16),e._UZ(11,"input",18),e.TgZ(12,"mat-hint"),e._uU(13,"Confirm Wallet Password"),e.qZA(),e.YNc(14,xc,2,0,"mat-error",1),e.YNc(15,Tc,2,0,"mat-error",1),e.qZA(),e.YNc(16,yc,4,0,"div",19),e.TgZ(17,"div",20),e.TgZ(18,"button",21),e._uU(19,"Next"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(20,"mat-step",22),e.TgZ(21,"form",23),e.TgZ(22,"div",24),e.TgZ(23,"mat-slide-toggle",25),e._uU(24,"Existing Cipher"),e.qZA(),e.TgZ(25,"mat-form-field",26),e._UZ(26,"input",27),e.TgZ(27,"mat-hint"),e._uU(28,"Cipher Seed"),e.qZA(),e.YNc(29,Zc,2,0,"mat-error",1),e.YNc(30,bc,2,0,"mat-error",1),e.qZA(),e.qZA(),e.TgZ(31,"div",28),e.TgZ(32,"button",29),e._uU(33,"Back"),e.qZA(),e.TgZ(34,"button",30),e._uU(35,"Next"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(36,"mat-step",31),e.TgZ(37,"form",23),e.TgZ(38,"div",24),e.TgZ(39,"mat-slide-toggle",32),e._uU(40,"Existing Passphrase"),e.qZA(),e.TgZ(41,"mat-form-field",33),e._UZ(42,"input",34),e.TgZ(43,"mat-hint"),e._uU(44,"Enter Passphrase"),e.qZA(),e.YNc(45,Ac,2,0,"mat-error",1),e.qZA(),e.qZA(),e.TgZ(46,"div",28),e.TgZ(47,"button",35),e.NdJ("click",function(){return e.CHM(t),e.oxw().resetData()}),e._uU(48,"Clear"),e.qZA(),e.TgZ(49,"button",36),e._uU(50,"Back"),e.qZA(),e.TgZ(51,"button",37),e.NdJ("click",function(){return e.CHM(t),e.oxw().onInitWallet()}),e._uU(52,"Initialize Wallet"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.YNc(53,vc,2,0,"ng-template",38),e.YNc(54,wc,2,0,"ng-template",39),e.YNc(55,qc,2,0,"ng-template",40),e.qZA()}if(2&n){const t=e.oxw();e.Q6J("linear",!0),e.xp6(2),e.Q6J("stepControl",t.passwordFormGroup),e.xp6(1),e.Q6J("formGroup",t.passwordFormGroup),e.xp6(5),e.Q6J("ngIf",null==t.passwordFormGroup.controls.initWalletPassword.errors?null:t.passwordFormGroup.controls.initWalletPassword.errors.required),e.xp6(1),e.Q6J("ngIf",null==t.passwordFormGroup.controls.initWalletPassword.errors?null:t.passwordFormGroup.controls.initWalletPassword.errors.minlength),e.xp6(5),e.Q6J("ngIf",null==t.passwordFormGroup.controls.initWalletConfirmPassword.errors?null:t.passwordFormGroup.controls.initWalletConfirmPassword.errors.required),e.xp6(1),e.Q6J("ngIf",null==t.passwordFormGroup.controls.initWalletConfirmPassword.errors?null:t.passwordFormGroup.controls.initWalletConfirmPassword.errors.minlength),e.xp6(1),e.Q6J("ngIf",(null==t.passwordFormGroup.errors?null:t.passwordFormGroup.errors.unmatchedPasswords)&&(t.passwordFormGroup.controls.initWalletPassword.touched||t.passwordFormGroup.controls.initWalletPassword.dirty)&&(t.passwordFormGroup.controls.initWalletConfirmPassword.touched||t.passwordFormGroup.controls.initWalletConfirmPassword.dirty)),e.xp6(4),e.Q6J("stepControl",t.cipherFormGroup),e.xp6(1),e.Q6J("formGroup",t.cipherFormGroup),e.xp6(2),e.Q6J("labelPosition","before"),e.xp6(6),e.Q6J("ngIf",null==t.cipherFormGroup.controls.cipherSeed.errors?null:t.cipherFormGroup.controls.cipherSeed.errors.required),e.xp6(1),e.Q6J("ngIf",!(null!=t.cipherFormGroup.controls.cipherSeed.errors&&t.cipherFormGroup.controls.cipherSeed.errors.required)&&(null==t.cipherFormGroup.controls.cipherSeed.errors?null:t.cipherFormGroup.controls.cipherSeed.errors.invalidCipher)),e.xp6(6),e.Q6J("stepControl",t.passphraseFormGroup),e.xp6(1),e.Q6J("formGroup",t.passphraseFormGroup),e.xp6(2),e.Q6J("labelPosition","before"),e.xp6(6),e.Q6J("ngIf",null==t.passphraseFormGroup.controls.passphrase.errors?null:t.passphraseFormGroup.controls.passphrase.errors.required)}}function Lc(n,i){if(1&n&&(e.TgZ(0,"span",48),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(t)}}function kc(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div"),e.TgZ(1,"form",4),e.TgZ(2,"div",43),e._uU(3,"YOU MUST WRITE DOWN THIS SEED TO BE ABLE TO RESTORE THE WALLET!"),e.qZA(),e.TgZ(4,"div",44),e.YNc(5,Lc,2,1,"span",45),e.qZA(),e.TgZ(6,"div",46),e._uU(7,"Wallet initialization is done."),e.qZA(),e.TgZ(8,"div",46),e._uU(9,"The node will be usable only after LND has synced completely with the network."),e.qZA(),e.TgZ(10,"div",46),e._uU(11,"Click continue only after writing down the seed."),e.qZA(),e.TgZ(12,"div",6),e.TgZ(13,"button",47),e.NdJ("click",function(){return e.CHM(t),e.oxw().onGoToHome()}),e._uU(14,"Go To Home"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(5),e.Q6J("ngForOf",t.genSeedResponse)}}function Fc(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div"),e.TgZ(1,"form",4),e.TgZ(2,"div",46),e._uU(3,"Something went wrong! Unable to initialize wallet!"),e.qZA(),e.TgZ(4,"div",6),e.TgZ(5,"button",49),e.NdJ("click",function(){return e.CHM(t),e.oxw().resetData()}),e._uU(6,"Restart"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function Nc(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div"),e.TgZ(1,"form",4),e.TgZ(2,"div",46),e._uU(3,"Wallet recovery is done."),e.qZA(),e.TgZ(4,"div",46),e._uU(5,"The node will be usable only after LND has synced completely with the network."),e.qZA(),e.TgZ(6,"div",6),e.TgZ(7,"button",50),e.NdJ("click",function(){return e.CHM(t),e.oxw().onGoToHome()}),e._uU(8,"Go To Home"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function Uc(n){const i=n.get("initWalletPassword"),t=n.get("initWalletConfirmPassword");return i&&t&&i.value!==t.value?{unmatchedPasswords:!0}:null}function Oc(n){const i=n.value.toString().trim().split(",")||[];return i&&24!==i.length?{invalidCipher:!0}:null}let Rc=(()=>{class n{constructor(t,a,o){this.store=t,this.formBuilder=a,this.lndEffects=o,this.insecureLND=!1,this.genSeedResponse=[],this.initWalletResponse="",this.proceed=!0,this.warnRes=!1,this.unsubs=[new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.passwordFormGroup=this.formBuilder.group({initWalletPassword:["",[c.kI.required,c.kI.minLength(8)]],initWalletConfirmPassword:["",[c.kI.required,c.kI.minLength(8)]]},{validators:Uc}),this.cipherFormGroup=this.formBuilder.group({existingCipher:[!1],cipherSeed:[{value:"",disabled:!0},[Oc]]}),this.passphraseFormGroup=this.formBuilder.group({enterPassphrase:[!1],passphrase:[{value:"",disabled:!0}]}),this.cipherFormGroup.controls.existingCipher.valueChanges.pipe((0,_.R)(this.unsubs[0])).subscribe(t=>{t?(this.cipherFormGroup.controls.cipherSeed.setValue(""),this.cipherFormGroup.controls.cipherSeed.enable()):(this.cipherFormGroup.controls.cipherSeed.setValue(""),this.cipherFormGroup.controls.cipherSeed.disable())}),this.passphraseFormGroup.controls.enterPassphrase.valueChanges.pipe((0,_.R)(this.unsubs[1])).subscribe(t=>{t?(this.passphraseFormGroup.controls.passphrase.setValue(""),this.passphraseFormGroup.controls.passphrase.enable()):(this.passphraseFormGroup.controls.passphrase.setValue(""),this.passphraseFormGroup.controls.passphrase.disable())}),this.insecureLND=!window.location.protocol.includes("https:"),this.lndEffects.initWalletRes.pipe((0,_.R)(this.unsubs[2])).subscribe(t=>{this.initWalletResponse=t}),this.lndEffects.genSeedResponse.pipe((0,_.R)(this.unsubs[3])).subscribe(t=>{this.genSeedResponse=t,this.store.dispatch((0,y.y2)(this.passphraseFormGroup.controls.enterPassphrase.value?{payload:{pwd:window.btoa(this.passwordFormGroup.controls.initWalletPassword.value),cipher:this.genSeedResponse,passphrase:window.btoa(this.passphraseFormGroup.controls.passphrase.value)}}:{payload:{pwd:window.btoa(this.passwordFormGroup.controls.initWalletPassword.value),cipher:this.genSeedResponse}}))})}onInitWallet(){if(this.passwordFormGroup.invalid||this.cipherFormGroup.invalid||this.passphraseFormGroup.invalid)return!0;if(this.cipherFormGroup.controls.existingCipher.value){const t=this.cipherFormGroup.controls.cipherSeed.value.toString().trim().split(",");this.store.dispatch((0,y.y2)(this.passphraseFormGroup.controls.enterPassphrase.value?{payload:{pwd:window.btoa(this.passwordFormGroup.controls.initWalletPassword.value),cipher:t,passphrase:window.btoa(this.passphraseFormGroup.controls.passphrase.value)}}:{payload:{pwd:window.btoa(this.passwordFormGroup.controls.initWalletPassword.value),cipher:t}}))}else this.store.dispatch((0,y.fu)(this.passphraseFormGroup.controls.enterPassphrase.value?{payload:window.btoa(this.passphraseFormGroup.controls.passphrase.value)}:{payload:""}))}onGoToHome(){setTimeout(()=>{this.store.dispatch((0,v.tw)()),this.store.dispatch((0,y.sQ)({payload:{loadPage:"HOME"}}))},1e3)}resetData(){this.genSeedResponse=[],this.initWalletResponse=""}ngOnDestroy(){this.unsubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(w.yh),e.Y36(c.qu),e.Y36(K.l))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-initialize-wallet"]],viewQuery:function(t,a){if(1&t&&e.Gf(B.Vq,5),2&t){let o;e.iGM(o=e.CRH())&&(a.stepper=o.first)}},features:[e._Bn([{provide:_c.gx,useValue:{displayDefaultIndicatorType:!1}}])],decls:7,vars:6,consts:[["fxLayout","column",1,"padding-gap","mb-4"],[4,"ngIf"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","stretch stretch",4,"ngIf"],[3,"linear",4,"ngIf"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mt-2"],["fxFlex","100","fxLayoutAlign","start"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","1","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","2",3,"click"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","stretch stretch"],["fxFlex","100",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",3,"click"],[3,"linear"],["stepper",""],["label","Wallet Password","state","password",3,"stepControl"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"mt-1",3,"formGroup"],["fxFlex","49","fxLayoutAlign","start"],["matInput","","type","password","placeholder","Password","name","initWalletPassword","formControlName","initWalletPassword","tabindex","5","required",""],["matInput","","type","password","placeholder","Confirm Password","name","initWalletConfirmPassword","formControlName","initWalletConfirmPassword","tabindex","6","required",""],["class","validation-error-message",4,"ngIf"],["fxLayout","row",1,"my-2"],["mat-flat-button","","color","primary","tabindex","7","type","submit","matStepperNext",""],["label","Cipher","state","cipher",3,"stepControl"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start stretch","fxLayoutAlign.gt-sm","space-between start",1,"mt-1",3,"formGroup"],["fxFlex","100","fxLayout","column","fxLayoutAlign","start stretch"],["fxFlex","20","tabindex","8","color","primary","formControlName","existingCipher","name","existingCipher",1,"chkbox-wallet",3,"labelPosition"],["fxFlex","75","fxLayoutAlign","start",1,"my-1"],["autofocus","","matInput","","type","input","placeholder","Comma separated array of 24 words cipher seed","name","cipherSeed","formControlName","cipherSeed","tabindex","9","required",""],["fxLayout","row",1,"mb-2"],["mat-stroked-button","","color","primary","type","reset","tabindex","10","matStepperPrevious","",1,"mr-1","mt-1"],["mat-flat-button","","color","primary","tabindex","11","type","submit","matStepperNext","",1,"mt-1"],["label","Passphrase","state","passphrase",3,"stepControl"],["fxFlex","20","tabindex","10","color","primary","formControlName","enterPassphrase","name","enterPassphrase",1,"chkbox-wallet",3,"labelPosition"],["fxFlex","75","fxLayoutAlign","start"],["matInput","","type","password","placeholder","Passphrase","name","passphrase","formControlName","passphrase","tabindex","12","required",""],["mat-stroked-button","","color","warn","tabindex","13","type","reset",1,"mr-1","mt-1",3,"click"],["mat-stroked-button","","tabindex","14","color","primary","type","button","matStepperPrevious","",1,"mr-1","mt-1"],["mat-flat-button","","color","primary","tabindex","15","type","submit",1,"mt-1",3,"click"],["matStepperIcon","password"],["matStepperIcon","cipher"],["matStepperIcon","passphrase"],[1,"validation-error-message"],[1,"validation-error-icon","red"],["fxFlex","100","fxLayoutAlign","start",1,"blinker"],["fxFlex","40","fxLayout","row wrap",1,"mt-2"],["fxFlex","25","fxLayoutAlign","start","class","genseed-message",4,"ngFor","ngForOf"],["fxFlex","100","fxLayoutAlign","start",1,"mt-2"],["mat-flat-button","","color","primary","type","submit","tabindex","16",3,"click"],["fxFlex","25","fxLayoutAlign","start",1,"genseed-message"],["mat-stroked-button","","color","primary","tabindex","17","type","reset",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","18",3,"click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.YNc(1,hc,9,0,"div",1),e.YNc(2,gc,6,0,"div",2),e.YNc(3,Sc,56,17,"mat-vertical-stepper",3),e.YNc(4,kc,15,1,"div",1),e.YNc(5,Fc,7,0,"div",1),e.YNc(6,Nc,9,0,"div",1),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngIf",a.insecureLND&&!a.warnRes),e.xp6(1),e.Q6J("ngIf",a.warnRes&&!a.proceed),e.xp6(1),e.Q6J("ngIf",(!a.insecureLND||a.warnRes&&a.proceed)&&a.genSeedResponse.length<=0&&""===a.initWalletResponse),e.xp6(1),e.Q6J("ngIf",a.genSeedResponse.length>0&&""!==a.initWalletResponse),e.xp6(1),e.Q6J("ngIf",a.genSeedResponse.length>0&&""===a.initWalletResponse),e.xp6(1),e.Q6J("ngIf",a.genSeedResponse.length<=0&&""!==a.initWalletResponse))},directives:[d.xw,m.O5,c._Y,c.JL,c.F,d.Wh,d.yH,q.lW,B.Vq,B.C0,c.sg,f.KE,D.Nt,c.Fj,c.JJ,c.u,c.Q7,f.bx,B.Ic,le.Rr,B.fd,B.z9,f.TO,te.Hw,m.sg],styles:[""]}),n})(),Ic=(()=>{class n{constructor(){this.faWallet=x.X5K}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-wallet"]],decls:12,vars:1,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["label","Unlock"],["label","Initialize"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e._UZ(1,"fa-icon",1),e.TgZ(2,"span",2),e._uU(3,"Wallet"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"mat-card"),e.TgZ(6,"mat-card-content",4),e.TgZ(7,"mat-tab-group"),e.TgZ(8,"mat-tab",5),e._UZ(9,"rtl-unlock-wallet"),e.qZA(),e.TgZ(10,"mat-tab",6),e._UZ(11,"rtl-initialize-wallet"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("icon",a.faWallet))},directives:[d.xw,d.Wh,R.BN,b.a8,b.dn,I.SP,I.uX,dc,Rc],styles:[""]}),n})();var Dc=h(1365);function Mc(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",11),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().activeLink=s.link}),e._uU(1),e.qZA()}if(2&n){const t=i.$implicit,a=e.oxw();e.s9C("routerLink",t.link),e.Q6J("active",a.activeLink===t.link),e.xp6(1),e.Oqu(t.name)}}let Pc=(()=>{class n{constructor(t,a,o){this.logger=t,this.store=a,this.router=o,this.faExchangeAlt=x.Ssp,this.faChartPie=x.OS1,this.currencyUnits=[],this.balances=[{title:"Local Capacity",dataValue:0,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:0,tooltip:"Amount you can receive"}],this.links=[{link:"payments",name:"Payments"},{link:"invoices",name:"Invoices"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){const t=this.links.find(a=>this.router.url.includes(a.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(a=>a instanceof Z.Av)).subscribe(a=>{const o=this.links.find(s=>a.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link}),this.store.select(C.ZW).pipe((0,_.R)(this.unSubs[1]),(0,Dc.M)(this.store.select(C.$k))).subscribe(([a,o])=>{this.currencyUnits=o.currencyUnits,this.balances=o.userPersona===l.ol.OPERATOR?[{title:"Local Capacity",dataValue:a.lightningBalance.local,tooltip:"Amount you can send"},{title:"Remote Capacity",dataValue:a.lightningBalance.remote,tooltip:"Amount you can receive"}]:[{title:"Outbound Capacity",dataValue:a.lightningBalance.local,tooltip:"Amount you can send"},{title:"Inbound Capacity",dataValue:a.lightningBalance.remote,tooltip:"Amount you can receive"}],this.logger.info(a)})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-transactions"]],decls:19,vars:4,consts:[["fxLayout","row wrap","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e._UZ(1,"fa-icon",1),e.TgZ(2,"span",2),e._uU(3,"Lightning Balance"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"mat-card"),e.TgZ(6,"mat-card-content",4),e._UZ(7,"rtl-currency-unit-converter",5),e.qZA(),e.qZA(),e.qZA(),e.TgZ(8,"div",6),e._UZ(9,"fa-icon",1),e.TgZ(10,"span",2),e._uU(11,"Lightning Transactions"),e.qZA(),e.qZA(),e.TgZ(12,"div",7),e.TgZ(13,"mat-card"),e.TgZ(14,"mat-card-content",4),e.TgZ(15,"nav",8),e.YNc(16,Mc,2,3,"div",9),e.qZA(),e.TgZ(17,"div",10),e._UZ(18,"router-outlet"),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("icon",a.faChartPie),e.xp6(6),e.Q6J("values",a.balances),e.xp6(2),e.Q6J("icon",a.faExchangeAlt),e.xp6(7),e.Q6J("ngForOf",a.links))},directives:[d.xw,d.Wh,R.BN,b.a8,b.dn,de.D,I.BU,m.sg,d.yH,Z.lC,I.Nj,Z.rH],styles:[""]}),n})();function Jc(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",8),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().activeLink=s.link}),e._uU(1),e.qZA()}if(2&n){const t=i.$implicit,a=e.oxw();e.s9C("routerLink",t.link),e.Q6J("active",a.activeLink===t.link),e.xp6(1),e.Oqu(t.name)}}let Ec=(()=>{class n{constructor(t){this.router=t,this.faSearch=x.wn1,this.links=[{link:"lookups",name:"Lookup"},{link:"queryroutes",name:"Query Routes"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){const t=this.links.find(a=>this.router.url.includes(a.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(a=>a instanceof Z.Av)).subscribe(a=>{const o=this.links.find(s=>a.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-graph"]],decls:11,vars:2,consts:[["fxLayout","row wrap","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e._UZ(1,"fa-icon",1),e.TgZ(2,"span",2),e._uU(3,"Graph Lookups"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"mat-card"),e.TgZ(6,"mat-card-content",4),e.TgZ(7,"nav",5),e.YNc(8,Jc,2,3,"div",6),e.qZA(),e.TgZ(9,"div",7),e._UZ(10,"router-outlet"),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("icon",a.faSearch),e.xp6(7),e.Q6J("ngForOf",a.links))},directives:[d.xw,d.Wh,R.BN,b.a8,b.dn,I.BU,m.sg,d.yH,Z.lC,I.Nj,Z.rH],styles:[""]}),n})();function Qc(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Destination pubkey is required."),e.qZA())}function Yc(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Amount is required."),e.qZA())}function Bc(n,i){1&n&&e._UZ(0,"mat-progress-bar",37)}function Hc(n,i){1&n&&(e.TgZ(0,"th",38),e._uU(1," Hop "),e.qZA())}function Gc(n,i){if(1&n&&(e.TgZ(0,"td",39),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",null==t?null:t.hop_sequence," ")}}function zc(n,i){1&n&&(e.TgZ(0,"th",38),e._uU(1," Peer "),e.qZA())}const Vc=function(n){return{"max-width":n}};function Wc(n,i){if(1&n&&(e.TgZ(0,"td",40),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,Vc,a.screenSize===a.screenSizeEnum.XS?"10rem":"28rem")),e.xp6(1),e.hij(" ",null==t?null:t.pubkey_alias," ")}}function Xc(n,i){1&n&&(e.TgZ(0,"th",38),e._uU(1," Channel "),e.qZA())}function $c(n,i){if(1&n&&(e.TgZ(0,"td",39),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",null==t?null:t.chan_id," ")}}function jc(n,i){1&n&&(e.TgZ(0,"th",41),e._uU(1," Capacity (Sats) "),e.qZA())}function Kc(n,i){if(1&n&&(e.TgZ(0,"td",39),e.TgZ(1,"span",42),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,null==t?null:t.chan_capacity),"")}}function eu(n,i){1&n&&(e.TgZ(0,"th",41),e._uU(1," Amount To Fwd (Sats) "),e.qZA())}function tu(n,i){if(1&n&&(e.TgZ(0,"td",39),e.TgZ(1,"span",42),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,null==t?null:t.amt_to_forward)," ")}}function nu(n,i){1&n&&(e.TgZ(0,"th",41),e._uU(1," Fee (mSats) "),e.qZA())}function au(n,i){if(1&n&&(e.TgZ(0,"td",39),e.TgZ(1,"span",42),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,null==t?null:t.fee_msat)," ")}}function iu(n,i){1&n&&(e.TgZ(0,"th",43),e.TgZ(1,"span",42),e._uU(2,"Actions"),e.qZA(),e.qZA())}function ou(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",44),e.TgZ(1,"button",45),e.NdJ("click",function(o){const u=e.CHM(t).$implicit;return e.oxw().onHopClick(u,o)}),e._uU(2,"View Info"),e.qZA(),e.qZA()}}function su(n,i){1&n&&e._UZ(0,"tr",46)}function lu(n,i){1&n&&e._UZ(0,"tr",47)}const ru=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}};let cu=(()=>{class n{constructor(t,a,o){this.store=t,this.lndEffects=a,this.commonService=o,this.destinationPubkey="",this.amount=null,this.flgSticky=!1,this.displayedColumns=[],this.flgLoading=[!1],this.faRoute=x.FpQ,this.faExclamationTriangle=x.eHv,this.screenSize="",this.screenSizeEnum=l.cu,this.unSubs=[new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["pubkey_alias","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["hop_sequence","pubkey_alias","fee_msat","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["hop_sequence","pubkey_alias","chan_capacity","amt_to_forward_msat","fee_msat","actions"]):(this.flgSticky=!0,this.displayedColumns=["hop_sequence","pubkey_alias","chan_capacity","amt_to_forward_msat","fee_msat","actions"])}ngOnInit(){this.lndEffects.setQueryRoutes.pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.qrHops=new r.by([]),t.routes&&t.routes.length&&t.routes.length>0&&t.routes[0].hops?(this.flgLoading[0]=!1,this.qrHops=new r.by([...t.routes[0].hops]),this.qrHops.data=t.routes[0].hops):this.flgLoading[0]="error",this.qrHops.sort=this.sort,this.qrHops.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null})}onQueryRoutes(){if(!this.destinationPubkey||!this.amount)return!0;this.qrHops=new r.by([]),this.flgLoading[0]=!0,this.store.dispatch((0,y.WO)({payload:{destPubkey:this.destinationPubkey,amount:this.amount}}))}resetData(){this.destinationPubkey="",this.amount=null,this.flgLoading[0]=!1}onHopClick(t,a){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Route Information",message:[[{key:"hop_sequence",value:t.hop_sequence,title:"Sequence",width:33,type:l.Gi.NUMBER},{key:"amt_to_forward",value:t.amt_to_forward,title:"Amount To Forward (Sats)",width:33,type:l.Gi.NUMBER},{key:"fee_msat",value:t.fee_msat,title:"Fee (mSats)",width:34,type:l.Gi.NUMBER}],[{key:"chan_capacity",value:t.chan_capacity,title:"Channel Capacity (Sats)",width:50,type:l.Gi.NUMBER},{key:"expiry",value:t.expiry,title:"Expiry",width:50,type:l.Gi.NUMBER}],[{key:"pubkey_alias",value:t.pubkey_alias,title:"Peer Alias",width:50,type:l.Gi.STRING},{key:"chan_id",value:t.chan_id,title:"Channel ID",width:50,type:l.Gi.STRING}],[{key:"pub_key",value:t.pub_key,title:"Peer Pubkey",width:100,type:l.Gi.STRING}]]}}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(w.yh),e.Y36(K.l),e.Y36(M.v))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-query-routes"]],viewQuery:function(t,a){if(1&t&&e.Gf(A.YE,5),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first)}},decls:51,vars:16,consts:[["fxLayout","column","fxFlex","100",1,"padding-gap"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",3,"ngSubmit"],["queryRoutesForm","ngForm"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","69","fxLayoutAlign","start end"],["matInput","","placeholder","Destination Pubkey","name","destinationPubkey","tabindex","1","required","",3,"ngModel","ngModelChange"],["destPubkey","ngModel"],[4,"ngIf"],["fxFlex","29","fxLayoutAlign","start end"],["matInput","","placeholder","Amount (Sats)","name","amount","tabindex","2","type","number","required","",3,"ngModel","step","min","ngModelChange"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","4"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-3","mb-1"],["fxFlex","70","fxLayoutAlign","start center"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],[1,"table-container","mb-6",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","hop_sequence"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","pubkey_alias"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","chan_id"],["matColumnDef","chan_capacity"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","amt_to_forward_msat"],["matColumnDef","fee_msat"],["matColumnDef","actions"],["mat-header-cell","","class","pl-4 pr-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-4",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pl-4","pr-3"],["mat-cell","",1,"pl-4"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-header-row",""],["mat-row",""]],template:function(t,a){if(1&t){const o=e.EpF();e.TgZ(0,"div",0),e.TgZ(1,"form",1,2),e.NdJ("ngSubmit",function(){return e.CHM(o),e.MAs(2).form.valid&&a.onQueryRoutes()}),e.TgZ(3,"div",3),e._UZ(4,"fa-icon",4),e.TgZ(5,"span"),e._uU(6,"The actual routing fee on a payment can be different from the fee shown on query routes."),e.qZA(),e.qZA(),e.TgZ(7,"mat-form-field",5),e.TgZ(8,"input",6,7),e.NdJ("ngModelChange",function(u){return a.destinationPubkey=u}),e.qZA(),e.YNc(10,Qc,2,0,"mat-error",8),e.qZA(),e.TgZ(11,"mat-form-field",9),e.TgZ(12,"input",10),e.NdJ("ngModelChange",function(u){return a.amount=u}),e.qZA(),e.YNc(13,Yc,2,0,"mat-error",8),e.qZA(),e.TgZ(14,"div",11),e.TgZ(15,"button",12),e.NdJ("click",function(){return a.resetData()}),e._uU(16,"Clear"),e.qZA(),e.TgZ(17,"button",13),e._uU(18,"Query Route"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(19,"div",14),e.TgZ(20,"div",15),e._UZ(21,"fa-icon",16),e.TgZ(22,"span",17),e._uU(23,"Transaction Route"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(24,"div",18),e.YNc(25,Bc,1,0,"mat-progress-bar",19),e.TgZ(26,"table",20,21),e.ynx(28,22),e.YNc(29,Hc,2,0,"th",23),e.YNc(30,Gc,2,1,"td",24),e.BQk(),e.ynx(31,25),e.YNc(32,zc,2,0,"th",23),e.YNc(33,Wc,2,4,"td",26),e.BQk(),e.ynx(34,27),e.YNc(35,Xc,2,0,"th",23),e.YNc(36,$c,2,1,"td",24),e.BQk(),e.ynx(37,28),e.YNc(38,jc,2,0,"th",29),e.YNc(39,Kc,4,3,"td",24),e.BQk(),e.ynx(40,30),e.YNc(41,eu,2,0,"th",29),e.YNc(42,tu,4,3,"td",24),e.BQk(),e.ynx(43,31),e.YNc(44,nu,2,0,"th",29),e.YNc(45,au,4,3,"td",24),e.BQk(),e.ynx(46,32),e.YNc(47,iu,3,0,"th",33),e.YNc(48,ou,3,0,"td",34),e.BQk(),e.YNc(49,su,1,0,"tr",35),e.YNc(50,lu,1,0,"tr",36),e.qZA(),e.qZA(),e.qZA()}2&t&&(e.xp6(4),e.Q6J("icon",a.faExclamationTriangle),e.xp6(4),e.Q6J("ngModel",a.destinationPubkey),e.xp6(2),e.Q6J("ngIf",!a.destinationPubkey),e.xp6(2),e.Q6J("ngModel",a.amount)("step",1e3)("min",0),e.xp6(1),e.Q6J("ngIf",!a.amount),e.xp6(8),e.Q6J("icon",a.faRoute),e.xp6(4),e.Q6J("ngIf",!0===a.flgLoading[0]),e.xp6(1),e.Q6J("dataSource",a.qrHops)("ngClass",e.VKq(14,ru,"error"===a.flgLoading[0])),e.xp6(23),e.Q6J("matHeaderRowDef",a.displayedColumns)("matHeaderRowDefSticky",a.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedColumns))},directives:[d.xw,d.yH,c._Y,c.JL,c.F,d.Wh,R.BN,f.KE,D.Nt,c.Fj,c.Q7,c.JJ,c.On,m.O5,c.wV,c.qQ,$.q,q.lW,Y.$V,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.as,r.nj,f.TO,J.pW,r.ge,A.nU,r.ev,m.PC,L.Zl,r.XQ,r.Gk],pipes:[m.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{flex:0 0 5%;width:5%}.mat-column-pubkey_alias[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();var De=h(9814);function uu(n,i){if(1&n&&(e.TgZ(0,"span",9),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.xp6(1),e.AsE("",a.nodeFeaturesEnum[t.value.name]||t.value.name,": ",t.value.is_required?"Mandatory":"Optional","")}}function pu(n,i){1&n&&(e.TgZ(0,"th",27),e._uU(1,"Network"),e.qZA())}function mu(n,i){if(1&n&&(e.TgZ(0,"td",28),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",null==t?null:t.network," ")}}function du(n,i){1&n&&(e.TgZ(0,"th",27),e._uU(1,"Address"),e.qZA())}function _u(n,i){if(1&n&&(e.TgZ(0,"td",28),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.hij(" ",null==t?null:t.addr," ")}}function hu(n,i){1&n&&(e.TgZ(0,"th",29),e.TgZ(1,"span",30),e._uU(2,"Actions"),e.qZA(),e.qZA())}function gu(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",31),e.TgZ(1,"span",30),e.TgZ(2,"button",32),e.NdJ("copied",function(o){return e.CHM(t),e.oxw(2).onCopyNodeURI(o)}),e._uU(3,"Copy Node URI"),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=i.$implicit,a=e.oxw(2);e.xp6(2),e.Q6J("payload",a.lookupResult.node.pub_key+"@"+t.addr)}}function fu(n,i){1&n&&e._UZ(0,"tr",33)}function Cu(n,i){1&n&&e._UZ(0,"tr",34)}const xu=function(n){return{"background-color":n}};function Tu(n,i){if(1&n&&(e.TgZ(0,"div",1),e._UZ(1,"mat-divider",2),e.TgZ(2,"div",3),e.TgZ(3,"div",4),e.TgZ(4,"h4",5),e._uU(5,"Alias"),e.qZA(),e.TgZ(6,"span",6),e._uU(7),e.TgZ(8,"span",7),e._uU(9),e.qZA(),e.qZA(),e.qZA(),e.TgZ(10,"div",8),e.TgZ(11,"h4",5),e._uU(12,"Pub Key"),e.qZA(),e.TgZ(13,"span",9),e._uU(14),e.qZA(),e.qZA(),e.qZA(),e._UZ(15,"mat-divider",10),e.TgZ(16,"div",3),e.TgZ(17,"div",4),e.TgZ(18,"h4",5),e._uU(19,"Last Update"),e.qZA(),e.TgZ(20,"span",6),e._uU(21),e.ALo(22,"date"),e.qZA(),e.qZA(),e.TgZ(23,"div",8),e.TgZ(24,"h4",5),e._uU(25,"Total Capacity (Sats)"),e.qZA(),e.TgZ(26,"span",6),e._uU(27),e.ALo(28,"number"),e.qZA(),e.qZA(),e.qZA(),e._UZ(29,"mat-divider",10),e.TgZ(30,"div",3),e.TgZ(31,"div",4),e.TgZ(32,"h4",5),e._uU(33,"Number of Channels"),e.qZA(),e.TgZ(34,"span",6),e._uU(35),e.ALo(36,"number"),e.qZA(),e.qZA(),e.TgZ(37,"div",11),e.TgZ(38,"h4",5),e._uU(39,"Features"),e.qZA(),e.YNc(40,uu,2,2,"span",12),e.ALo(41,"keyvalue"),e.qZA(),e.qZA(),e._UZ(42,"mat-divider",10),e.TgZ(43,"div",13),e.TgZ(44,"h4",14),e._uU(45,"Addresses"),e.qZA(),e.TgZ(46,"div",15),e.TgZ(47,"table",16,17),e.ynx(49,18),e.YNc(50,pu,2,0,"th",19),e.YNc(51,mu,2,1,"td",20),e.BQk(),e.ynx(52,21),e.YNc(53,du,2,0,"th",19),e.YNc(54,_u,2,1,"td",20),e.BQk(),e.ynx(55,22),e.YNc(56,hu,3,0,"th",23),e.YNc(57,gu,4,1,"td",24),e.BQk(),e.YNc(58,fu,1,0,"tr",25),e.YNc(59,Cu,1,0,"tr",26),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("inset",!0),e.xp6(6),e.Oqu(t.lookupResult.node.alias),e.xp6(1),e.Q6J("ngStyle",e.VKq(24,xu,null==t.lookupResult.node?null:t.lookupResult.node.color)),e.xp6(1),e.Oqu(null==t.lookupResult.node?null:t.lookupResult.node.color),e.xp6(5),e.Oqu(t.lookupResult.node.pub_key),e.xp6(1),e.Q6J("inset",!0),e.xp6(6),e.Oqu(e.xi3(22,15,1e3*t.lookupResult.node.last_update,"dd/MMM/YYYY HH:mm")),e.xp6(6),e.Oqu(e.lcZ(28,18,t.lookupResult.total_capacity)),e.xp6(2),e.Q6J("inset",!0),e.xp6(6),e.Oqu(e.lcZ(36,20,t.lookupResult.num_channels)),e.xp6(5),e.Q6J("ngForOf",e.lcZ(41,22,t.lookupResult.node.features)),e.xp6(2),e.Q6J("inset",!0),e.xp6(5),e.Q6J("dataSource",t.lookupResult.node.addresses),e.xp6(11),e.Q6J("matHeaderRowDef",t.displayedColumns),e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns)}}let yu=(()=>{class n{constructor(t,a){this.logger=t,this.snackBar=a,this.nodeFeaturesEnum=l.hZ,this.displayedColumns=["network","addr","actions"]}onCopyNodeURI(t){this.snackBar.open("Node URI copied."),this.logger.info("Copied Text: "+t)}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(ee.ux))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-node-lookup"]],inputs:{lookupResult:"lookupResult"},decls:1,vars:1,consts:[["fxLayout","column","class","mt-1",4,"ngIf"],["fxLayout","column",1,"mt-1"],[1,"mb-1",3,"inset"],["fxLayout","row"],["fxFlex","30"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"ml-2",3,"ngStyle"],["fxFlex","70"],[1,"foreground-secondary-text","w-100"],[1,"my-1",3,"inset"],["fxLayout","column","fxFlex","70","fxLayoutAlign","end start",1,"my-1"],["class","foreground-secondary-text w-100",4,"ngFor","ngForOf"],["fxLayout","column"],["fxFlex","100","fxLayoutAlign","start",1,"font-bold-500","mb-1"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","matSort","",3,"dataSource"],["table",""],["matColumnDef","network"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","addr"],["matColumnDef","actions"],["mat-header-cell","","class","pl-1",4,"matHeaderCellDef"],["mat-cell","","class","pl-1",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","",1,"pl-1"],["fxLayoutAlign","end center"],["mat-cell","",1,"pl-1"],["mat-stroked-button","","color","primary","type","button","tabindex","1","rtlClipboard","",3,"payload","copied"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&e.YNc(0,Tu,60,26,"div",0),2&t&&e.Q6J("ngIf",a.lookupResult)},directives:[m.O5,d.xw,X.d,d.yH,d.Wh,m.PC,L.Zl,m.sg,Y.$V,r.BZ,A.YE,r.w1,r.fO,r.Dz,r.as,r.nj,r.ge,A.nU,r.ev,q.lW,oe.y,r.XQ,r.Gk],pipes:[m.uU,m.JJ,m.Nd],styles:[""]}),n})();function Zu(n,i){1&n&&(e.TgZ(0,"h3",15),e._uU(1,"Node 1"),e.qZA())}function bu(n,i){1&n&&(e.TgZ(0,"h3",15),e._uU(1,"Node 1 (Your Node)"),e.qZA())}function Au(n,i){1&n&&(e.TgZ(0,"h3",15),e._uU(1,"Node 2"),e.qZA())}function vu(n,i){1&n&&(e.TgZ(0,"h3",15),e._uU(1,"Node 2 (Your Node)"),e.qZA())}function wu(n,i){if(1&n&&(e.TgZ(0,"div",1),e._UZ(1,"mat-divider",2),e.TgZ(2,"div",3),e.TgZ(3,"div",4),e.TgZ(4,"h4",5),e._uU(5,"Channel Id"),e.qZA(),e.TgZ(6,"span",6),e._uU(7),e.qZA(),e.qZA(),e.TgZ(8,"div",7),e.TgZ(9,"h4",5),e._uU(10,"Channel Point"),e.qZA(),e.TgZ(11,"span",6),e._uU(12),e.qZA(),e.qZA(),e.qZA(),e._UZ(13,"mat-divider",8),e.TgZ(14,"div",3),e.TgZ(15,"div",4),e.TgZ(16,"h4",5),e._uU(17,"Last Update"),e.qZA(),e.TgZ(18,"span",6),e._uU(19),e.ALo(20,"date"),e.qZA(),e.qZA(),e.TgZ(21,"div",7),e.TgZ(22,"h4",5),e._uU(23,"Capacity (Sats)"),e.qZA(),e.TgZ(24,"span",6),e._uU(25),e.ALo(26,"number"),e.qZA(),e.qZA(),e.qZA(),e._UZ(27,"mat-divider",8),e.TgZ(28,"div",9),e.TgZ(29,"div",10),e.TgZ(30,"div",11),e.YNc(31,Zu,2,0,"h3",12),e.YNc(32,bu,2,0,"h3",12),e.qZA(),e._UZ(33,"mat-divider",8),e.TgZ(34,"div",13),e.TgZ(35,"h4",5),e._uU(36,"Pubkey"),e.qZA(),e.TgZ(37,"span",6),e._uU(38),e.qZA(),e.qZA(),e._UZ(39,"mat-divider",8),e.TgZ(40,"div",14),e.TgZ(41,"h4",5),e._uU(42,"Time Lock Delta"),e.qZA(),e.TgZ(43,"span",6),e._uU(44),e.qZA(),e.qZA(),e._UZ(45,"mat-divider",8),e.TgZ(46,"div",14),e.TgZ(47,"h4",5),e._uU(48,"Min HTLC"),e.qZA(),e.TgZ(49,"span",6),e._uU(50),e.qZA(),e.qZA(),e._UZ(51,"mat-divider",8),e.TgZ(52,"div",14),e.TgZ(53,"h4",5),e._uU(54,"Fee Base Msat"),e.qZA(),e.TgZ(55,"span",6),e._uU(56),e.qZA(),e.qZA(),e._UZ(57,"mat-divider",8),e.TgZ(58,"div",14),e.TgZ(59,"h4",5),e._uU(60,"Fee Rate Milli Msat"),e.qZA(),e.TgZ(61,"span",6),e._uU(62),e.qZA(),e.qZA(),e._UZ(63,"mat-divider",8),e.TgZ(64,"div",14),e.TgZ(65,"h4",5),e._uU(66,"Disabled"),e.qZA(),e.TgZ(67,"span",6),e._uU(68),e.qZA(),e.qZA(),e.qZA(),e.TgZ(69,"div",10),e.TgZ(70,"div"),e.YNc(71,Au,2,0,"h3",12),e.YNc(72,vu,2,0,"h3",12),e.qZA(),e._UZ(73,"mat-divider",8),e.TgZ(74,"div",13),e.TgZ(75,"h4",5),e._uU(76,"Pubkey"),e.qZA(),e.TgZ(77,"span",6),e._uU(78),e.qZA(),e.qZA(),e._UZ(79,"mat-divider",8),e.TgZ(80,"div",14),e.TgZ(81,"h4",5),e._uU(82,"Time Lock Delta"),e.qZA(),e.TgZ(83,"span",6),e._uU(84),e.qZA(),e.qZA(),e._UZ(85,"mat-divider",8),e.TgZ(86,"div",14),e.TgZ(87,"h4",5),e._uU(88,"Min HTLC"),e.qZA(),e.TgZ(89,"span",6),e._uU(90),e.qZA(),e.qZA(),e._UZ(91,"mat-divider",8),e.TgZ(92,"div",14),e.TgZ(93,"h4",5),e._uU(94,"Fee Base Msat"),e.qZA(),e.TgZ(95,"span",6),e._uU(96),e.qZA(),e.qZA(),e._UZ(97,"mat-divider",8),e.TgZ(98,"div",14),e.TgZ(99,"h4",5),e._uU(100,"Fee Rate Milli Msat"),e.qZA(),e.TgZ(101,"span",6),e._uU(102),e.qZA(),e.qZA(),e._UZ(103,"mat-divider",8),e.TgZ(104,"div",14),e.TgZ(105,"h4",5),e._uU(106,"Disabled"),e.qZA(),e.TgZ(107,"span",6),e._uU(108),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("inset",!0),e.xp6(6),e.Oqu(t.lookupResult.channel_id),e.xp6(5),e.Oqu(t.lookupResult.chan_point),e.xp6(1),e.Q6J("inset",!0),e.xp6(6),e.Oqu(e.xi3(20,35,1e3*t.lookupResult.last_update,"dd/MMM/YYYY HH:mm")),e.xp6(6),e.Oqu(e.lcZ(26,38,t.lookupResult.capacity)),e.xp6(2),e.Q6J("inset",!0),e.xp6(4),e.Q6J("ngIf",!t.node1_match),e.xp6(1),e.Q6J("ngIf",t.node1_match),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(t.lookupResult.node1_pub),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null==t.lookupResult.node1_policy?null:t.lookupResult.node1_policy.time_lock_delta),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null==t.lookupResult.node1_policy?null:t.lookupResult.node1_policy.min_htlc),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null==t.lookupResult.node1_policy?null:t.lookupResult.node1_policy.fee_base_msat),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null==t.lookupResult.node1_policy?null:t.lookupResult.node1_policy.fee_rate_milli_msat),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null!=t.lookupResult.node1_policy&&t.lookupResult.node1_policy.disabled?"Yes":"No"),e.xp6(3),e.Q6J("ngIf",!t.node2_match),e.xp6(1),e.Q6J("ngIf",t.node2_match),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(t.lookupResult.node2_pub),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null==t.lookupResult.node2_policy?null:t.lookupResult.node2_policy.time_lock_delta),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null==t.lookupResult.node2_policy?null:t.lookupResult.node2_policy.min_htlc),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null==t.lookupResult.node2_policy?null:t.lookupResult.node2_policy.fee_base_msat),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null==t.lookupResult.node2_policy?null:t.lookupResult.node2_policy.fee_rate_milli_msat),e.xp6(1),e.Q6J("inset",!0),e.xp6(5),e.Oqu(null!=t.lookupResult.node2_policy&&t.lookupResult.node2_policy.disabled?"Yes":"No")}}let qu=(()=>{class n{constructor(t){this.store=t,this.node1_match=!1,this.node2_match=!1,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.store.select(C.Q5).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.lookupResult.node1_pub===t.identity_pubkey&&(this.node1_match=!0),this.lookupResult.node2_pub===t.identity_pubkey&&(this.node2_match=!0)})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(w.yh))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-lookup"]],inputs:{lookupResult:"lookupResult"},decls:1,vars:1,consts:[["fxLayout","column","class","mt-1",4,"ngIf"],["fxLayout","column",1,"mt-1"],[1,"mb-1",3,"inset"],["fxLayout","row"],["fxLayout","column","fxFlex","30","fxLayoutAlign","end start"],[1,"font-bold-500"],[1,"foreground-secondary-text"],["fxLayout","column","fxFlex","70","fxLayoutAlign","end start"],[1,"my-1",3,"inset"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start start",1,"mt-1","bordered-box","padding-gap-large"],["fxLayout","column"],["class","page-title font-bold-500",4,"ngIf"],["fxLayout","column","fxFlex","20"],["fxLayout","column","fxFlex","10"],[1,"page-title","font-bold-500"]],template:function(t,a){1&t&&e.YNc(0,wu,109,40,"div",0),2&t&&e.Q6J("ngIf",a.lookupResult)},directives:[m.O5,d.xw,X.d,d.yH,d.Wh],pipes:[m.uU,m.JJ],styles:[".mat-list-base[_ngcontent-%COMP%] .mat-list-item[_ngcontent-%COMP%], .mat-list-base[_ngcontent-%COMP%] .mat-list-option[_ngcontent-%COMP%]{height:38px!important}"]}),n})();function Su(n,i){if(1&n&&(e.TgZ(0,"mat-radio-button",17),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("value",t.id)("checked",a.selectedFieldId===t.id),e.xp6(1),e.hij(" ",t.name," ")}}function Lu(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.hij("",null==t.lookupFields[t.selectedFieldId]?null:t.lookupFields[t.selectedFieldId].placeholder," is required.")}}function ku(n,i){1&n&&e._UZ(0,"mat-progress-bar",20)}const Fu=function(n){return{"w-100 mt-2 p-2 error-border":n,"w-100 my-2 p-2":!0}};function Nu(n,i){if(1&n&&(e.TgZ(0,"div",18),e.YNc(1,ku,1,0,"mat-progress-bar",19),e._uU(2),e.qZA()),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(3,Fu,""!==t.errorMessage&&"Getting lookup details..."!==t.errorMessage)),e.xp6(1),e.Q6J("ngIf","Getting lookup details..."===t.errorMessage),e.xp6(1),e.hij(" ",t.errorMessage," ")}}function Uu(n,i){if(1&n&&(e.TgZ(0,"span",27),e._UZ(1,"rtl-node-lookup",28),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("lookupResult",t.lookupValue)}}function Ou(n,i){if(1&n&&(e.TgZ(0,"span",27),e._UZ(1,"rtl-channel-lookup",28),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("lookupResult",t.lookupValue)}}function Ru(n,i){1&n&&(e.TgZ(0,"span",27),e.TgZ(1,"h3"),e._uU(2,"Error! Unable to find details!"),e.qZA(),e.qZA())}function Iu(n,i){if(1&n&&(e.TgZ(0,"div",21),e.TgZ(1,"div",22),e.TgZ(2,"span",23),e._uU(3),e.qZA(),e.qZA(),e.TgZ(4,"div",24),e.YNc(5,Uu,2,1,"span",25),e.YNc(6,Ou,2,1,"span",25),e.YNc(7,Ru,3,0,"span",26),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(3),e.hij("",t.lookupFields[t.selectedFieldId].name," Details"),e.xp6(1),e.Q6J("ngSwitch",t.selectedFieldId),e.xp6(1),e.Q6J("ngSwitchCase",0),e.xp6(1),e.Q6J("ngSwitchCase",1)}}const Du=function(n){return{"mt-1":!0,"mt-2":n}};let Me=(()=>{class n{constructor(t,a,o,s){this.logger=t,this.commonService=a,this.store=o,this.actions=s,this.lookupKey="",this.lookupValue={},this.flgSetLookupValue=!1,this.messageObj=[],this.selectedFieldId=0,this.lookupFields=[{id:0,name:"Node",placeholder:"Pubkey"},{id:1,name:"Channel",placeholder:"Channel ID"}],this.faSearch=x.wn1,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.actions.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(t=>t.type===l.uR.SET_LOOKUP_LND||t.type===l.uR.UPDATE_API_CALL_STATUS_LND)).subscribe(t=>{t.type===l.uR.SET_LOOKUP_LND&&(this.errorMessage=0===this.selectedFieldId&&t.payload.hasOwnProperty("node")||1===this.selectedFieldId&&t.payload.hasOwnProperty("channel_id")?"":this.errorMessage,this.lookupValue=JSON.parse(JSON.stringify(t.payload)),this.flgSetLookupValue=!(0!==this.selectedFieldId||!t.payload.hasOwnProperty("node"))||!(1!==this.selectedFieldId||!t.payload.hasOwnProperty("channel_id")),this.logger.info(this.lookupValue)),t.type===l.uR.UPDATE_API_CALL_STATUS_LND&&"Lookup"===t.payload.action&&(this.errorMessage="",t.payload.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof t.payload.message?JSON.stringify(t.payload.message):t.payload.message),t.payload.status===l.Bn.INITIATED&&(this.errorMessage=l.m6.GET_LOOKUP_DETAILS))})}onLookup(){if(!this.lookupKey)return!0;switch(this.flgSetLookupValue=!1,this.lookupValue={},this.selectedFieldId){case 0:this.store.dispatch((0,y.Sf)({payload:this.lookupKey.trim()}));break;case 1:this.store.dispatch((0,y.$A)({payload:{uiMessage:l.m6.SEARCHING_CHANNEL,channelID:this.lookupKey.trim()}}))}}onSelectChange(t){this.resetData(),this.selectedFieldId=t.value}resetData(){this.flgSetLookupValue=!1,this.selectedFieldId=0,this.lookupKey="",this.lookupValue={},this.errorMessage=""}clearLookupValue(){this.lookupValue={},this.flgSetLookupValue=!1}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(M.v),e.Y36(w.yh),e.Y36(z.eX))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-lookups"]],decls:19,vars:10,consts:[["fxLayout","column"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start space-between",1,"w-100"],["form","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["color","primary","tabindex","1","name","lookupField",3,"ngModel","ngModelChange","change"],["class","mr-4",3,"value","checked",4,"ngFor","ngForOf"],["fxFlex","100","fxLayoutAlign","start end",3,"ngClass"],["matInput","","name","lookupKey","tabindex","2","required","",3,"placeholder","ngModel","change","ngModelChange"],["key",""],[4,"ngIf"],["fxLayout","row","fxFlex","100",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","3","type","button",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxFlex","100","fxLayout","row wrap","fxLayoutAlign","space-between center",3,"ngClass",4,"ngIf"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch","class","w-100 mt-2",4,"ngIf"],[1,"mr-4",3,"value","checked"],["fxFlex","100","fxLayout","row wrap","fxLayoutAlign","space-between center",3,"ngClass"],["mode","indeterminate",4,"ngIf"],["mode","indeterminate"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"w-100","mt-2"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],[1,"page-title","font-bold-500"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",3,"ngSwitch"],["fxFlex","100",4,"ngSwitchCase"],["fxFlex","100",4,"ngSwitchDefault"],["fxFlex","100"],[3,"lookupResult"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-content",2),e.TgZ(3,"form",3,4),e.TgZ(5,"div",5),e.TgZ(6,"mat-radio-group",6),e.NdJ("ngModelChange",function(s){return a.selectedFieldId=s})("change",function(s){return a.onSelectChange(s)}),e.YNc(7,Su,2,3,"mat-radio-button",7),e.qZA(),e.qZA(),e.TgZ(8,"mat-form-field",8),e.TgZ(9,"input",9,10),e.NdJ("change",function(){return a.clearLookupValue()})("ngModelChange",function(s){return a.lookupKey=s}),e.qZA(),e.YNc(11,Lu,2,1,"mat-error",11),e.qZA(),e.TgZ(12,"div",12),e.TgZ(13,"button",13),e.NdJ("click",function(){return a.resetData()}),e._uU(14,"Clear"),e.qZA(),e.TgZ(15,"button",14),e.NdJ("click",function(){return a.onLookup()}),e._uU(16,"Lookup"),e.qZA(),e.qZA(),e.qZA(),e.YNc(17,Nu,3,5,"div",15),e.YNc(18,Iu,8,4,"div",16),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(6),e.Q6J("ngModel",a.selectedFieldId),e.xp6(1),e.Q6J("ngForOf",a.lookupFields),e.xp6(1),e.Q6J("ngClass",e.VKq(8,Du,a.screenSize===a.screenSizeEnum.XS||a.screenSize===a.screenSizeEnum.SM)),e.xp6(1),e.Q6J("placeholder",(null==a.lookupFields[a.selectedFieldId]?null:a.lookupFields[a.selectedFieldId].placeholder)||"Lookup Key")("ngModel",a.lookupKey),e.xp6(2),e.Q6J("ngIf",!a.lookupKey),e.xp6(6),e.Q6J("ngIf",""!==a.errorMessage),e.xp6(1),e.Q6J("ngIf",""===a.errorMessage&&a.lookupValue&&a.flgSetLookupValue))},directives:[d.xw,d.yH,d.Wh,b.dn,c._Y,c.JL,c.F,De.VQ,c.JJ,c.On,m.sg,f.KE,m.mk,L.oO,D.Nt,c.Fj,c.Q7,m.O5,q.lW,De.U0,f.TO,J.pW,m.RF,m.n9,m.ED,yu,qu],styles:[".tree-invisible[_ngcontent-%COMP%]{display:none}.lookup-tree[_ngcontent-%COMP%] ul[_ngcontent-%COMP%], .lookup-tree[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0;list-style-type:none}.pl-3[_ngcontent-%COMP%]{padding-left:3rem}"]}),n})();var xe=h(6856);function Mu(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Invalid date format."),e.qZA())}function Pu(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Invalid date format."),e.qZA())}function Ju(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",27),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().activeLink=s.link}),e._uU(1),e.qZA()}if(2&n){const t=i.$implicit,a=e.oxw();e.s9C("routerLink",t.link),e.Q6J("active",a.activeLink===t.link),e.xp6(1),e.Oqu(t.name)}}let Eu=(()=>{class n{constructor(t,a){this.store=t,this.router=a,this.faMapSigns=x.SuH,this.today=new Date(Date.now()),this.lastMonthDay=new Date(this.today.getFullYear(),this.today.getMonth()-1,this.today.getDate()+1,0,0,0),this.yesterday=new Date(this.today.getFullYear(),this.today.getMonth(),this.today.getDate()-1,0,0,0),this.endDate=this.today,this.startDate=this.lastMonthDay,this.links=[{link:"forwardinghistory",name:"Forwarding History"},{link:"peers",name:"Routing Peers"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x,new p.x]}ngOnInit(){this.onEventsFetch();const t=this.links.find(a=>this.router.url.includes(a.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(a=>a instanceof Z.Av)).subscribe(a=>{const o=this.links.find(s=>a.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link})}onEventsFetch(){this.store.dispatch((0,y.QJ)({payload:{forwarding_events:[]}})),this.endDate||(this.endDate=this.today),this.startDate||(this.startDate=new Date(this.endDate.getFullYear(),this.endDate.getMonth()-1,this.endDate.getDate()+1,0,0,0)),this.store.dispatch((0,y.u0)({payload:{end_time:Math.round(this.endDate.getTime()/1e3).toString(),start_time:Math.round(this.startDate.getTime()/1e3).toString()}}))}resetData(){this.endDate=this.today,this.startDate=this.lastMonthDay}ngOnDestroy(){this.resetData(),this.store.dispatch((0,y.QJ)({payload:{forwarding_events:[]}})),this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(w.yh),e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-routing"]],decls:35,vars:15,consts:[["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap-x"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"card-content-gap","mt-1"],["fxFlex","100","fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"w-100","mb-1",3,"ngSubmit"],["routingForm","ngForm"],["fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","49","fxLayoutAlign","start"],["matInput","","placeholder","Start Date","name","startDate","tabindex","1",3,"matDatepicker","max","ngModel","ngModelChange"],["strtDate","ngModel"],["matSuffix","",3,"for"],[3,"startAt"],["startDatepicker",""],[4,"ngIf"],["matInput","","placeholder","End Date","name","endDate","tabindex","2",3,"matDatepicker","min","max","ngModel","ngModelChange"],["enDate","ngModel"],["endDatepicker",""],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","4"],["fxLayout","row","fxFlex","100"],["mat-tab-nav-bar","","fxFlex","100"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,a){if(1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e._UZ(2,"fa-icon",2),e.TgZ(3,"span",3),e._uU(4,"Routing"),e.qZA(),e.qZA(),e.TgZ(5,"div",4),e.TgZ(6,"mat-card",5),e.TgZ(7,"mat-card-content",6),e.TgZ(8,"form",7,8),e.NdJ("ngSubmit",function(){return a.onEventsFetch()}),e.TgZ(10,"div",9),e.TgZ(11,"mat-form-field",10),e.TgZ(12,"input",11,12),e.NdJ("ngModelChange",function(s){return a.startDate=s}),e.qZA(),e._UZ(14,"mat-datepicker-toggle",13),e._UZ(15,"mat-datepicker",14,15),e.YNc(17,Mu,2,0,"mat-error",16),e.qZA(),e.TgZ(18,"mat-form-field",10),e.TgZ(19,"input",17,18),e.NdJ("ngModelChange",function(s){return a.endDate=s}),e.qZA(),e._UZ(21,"mat-datepicker-toggle",13),e._UZ(22,"mat-datepicker",14,19),e.YNc(24,Pu,2,0,"mat-error",16),e.qZA(),e.qZA(),e.TgZ(25,"div",20),e.TgZ(26,"button",21),e.NdJ("click",function(){return a.resetData()}),e._uU(27,"Clear"),e.qZA(),e.TgZ(28,"button",22),e._uU(29,"Fetch Events"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(30,"div",23),e.TgZ(31,"nav",24),e.YNc(32,Ju,2,3,"div",25),e.qZA(),e.qZA(),e.TgZ(33,"div",26),e._UZ(34,"router-outlet"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t){const o=e.MAs(13),s=e.MAs(16),u=e.MAs(20),g=e.MAs(23);e.xp6(2),e.Q6J("icon",a.faMapSigns),e.xp6(10),e.Q6J("matDatepicker",s)("max",a.today)("ngModel",a.startDate),e.xp6(2),e.Q6J("for",s),e.xp6(1),e.Q6J("startAt",a.startDate),e.xp6(2),e.Q6J("ngIf",o.errors),e.xp6(2),e.Q6J("matDatepicker",g)("min",a.startDate)("max",a.today)("ngModel",a.endDate),e.xp6(2),e.Q6J("for",g),e.xp6(1),e.Q6J("startAt",a.endDate),e.xp6(2),e.Q6J("ngIf",u.errors),e.xp6(8),e.Q6J("ngForOf",a.links)}},directives:[d.xw,d.Wh,R.BN,d.yH,b.a8,b.dn,c._Y,c.JL,c.F,f.KE,D.Nt,xe.hl,Oe.F,c.Fj,c.JJ,c.On,xe.nW,f.R9,xe.Mq,m.O5,$.q,q.lW,I.BU,m.sg,Z.lC,f.TO,I.Nj,Z.rH],styles:[""]}),n})();function Qu(n,i){if(1&n&&(e.TgZ(0,"div",5),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Oqu(t.errorMessage)}}function Yu(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",6),e._UZ(1,"div",7),e.TgZ(2,"mat-form-field",8),e.TgZ(3,"input",9),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw().filterValue=o})("input",function(){return e.CHM(t),e.oxw().applyFilter()})("keyup",function(){return e.CHM(t),e.oxw().applyFilter()}),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(3),e.Q6J("ngModel",t.filterValue)}}function Bu(n,i){1&n&&e._UZ(0,"mat-progress-bar",31)}function Hu(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1,"Timestamp"),e.qZA())}function Gu(n,i){if(1&n&&(e.TgZ(0,"td",33),e._uU(1),e.ALo(2,"date"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.xi3(2,1,1e3*t.timestamp,"dd/MMM/YYYY HH:mm"))}}function zu(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1,"Inbound Channel"),e.qZA())}function Vu(n,i){if(1&n&&(e.TgZ(0,"td",33),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(t.alias_in)}}function Wu(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1,"Outbound Channel"),e.qZA())}function Xu(n,i){if(1&n&&(e.TgZ(0,"td",33),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(t.alias_out)}}function $u(n,i){1&n&&(e.TgZ(0,"th",34),e._uU(1,"Inbound Amount (Sats)"),e.qZA())}function ju(n,i){if(1&n&&(e.TgZ(0,"td",33),e.TgZ(1,"span",35),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.amt_in))}}function Ku(n,i){1&n&&(e.TgZ(0,"th",34),e._uU(1,"Outbound Amount (Sats)"),e.qZA())}function ep(n,i){if(1&n&&(e.TgZ(0,"td",33),e.TgZ(1,"span",35),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.amt_out))}}function tp(n,i){1&n&&(e.TgZ(0,"th",34),e._uU(1,"Fee (mSats)"),e.qZA())}function np(n,i){if(1&n&&(e.TgZ(0,"td",33),e.TgZ(1,"span",35),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.fee_msat))}}function ap(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"th",36),e.TgZ(1,"div",37),e.TgZ(2,"mat-select",38),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",39),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).onDownloadCSV()}),e._uU(5,"Download CSV"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function ip(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",40),e.TgZ(1,"button",41),e.NdJ("click",function(o){const u=e.CHM(t).$implicit;return e.oxw(2).onForwardingEventClick(u,o)}),e._uU(2,"View Info"),e.qZA(),e.qZA()}}function op(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No forwarding history available."),e.qZA())}function sp(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting forwarding history..."),e.qZA())}function lp(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(3);e.xp6(1),e.Oqu(t.errorMessage)}}function rp(n,i){if(1&n&&(e.TgZ(0,"td",42),e.YNc(1,op,2,0,"p",43),e.YNc(2,sp,2,0,"p",43),e.YNc(3,lp,2,1,"p",43),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.forwardingHistoryEvents&&t.forwardingHistoryEvents.data)||(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const cp=function(n){return{"display-none":n}};function up(n,i){if(1&n&&e._UZ(0,"tr",44),2&n){const t=e.oxw(2);e.Q6J("ngClass",e.VKq(1,cp,(null==t.forwardingHistoryEvents?null:t.forwardingHistoryEvents.data)&&(null==t.forwardingHistoryEvents||null==t.forwardingHistoryEvents.data?null:t.forwardingHistoryEvents.data.length)>0))}}function pp(n,i){1&n&&e._UZ(0,"tr",45)}function mp(n,i){1&n&&e._UZ(0,"tr",46)}const dp=function(){return["no_event"]};function _p(n,i){if(1&n&&(e.TgZ(0,"div",10),e.YNc(1,Bu,1,0,"mat-progress-bar",11),e.TgZ(2,"table",12,13),e.ynx(4,14),e.YNc(5,Hu,2,0,"th",15),e.YNc(6,Gu,3,4,"td",16),e.BQk(),e.ynx(7,17),e.YNc(8,zu,2,0,"th",15),e.YNc(9,Vu,2,1,"td",16),e.BQk(),e.ynx(10,18),e.YNc(11,Wu,2,0,"th",15),e.YNc(12,Xu,2,1,"td",16),e.BQk(),e.ynx(13,19),e.YNc(14,$u,2,0,"th",20),e.YNc(15,ju,4,3,"td",16),e.BQk(),e.ynx(16,21),e.YNc(17,Ku,2,0,"th",20),e.YNc(18,ep,4,3,"td",16),e.BQk(),e.ynx(19,22),e.YNc(20,tp,2,0,"th",20),e.YNc(21,np,4,3,"td",16),e.BQk(),e.ynx(22,23),e.YNc(23,ap,6,0,"th",24),e.YNc(24,ip,3,0,"td",25),e.BQk(),e.ynx(25,26),e.YNc(26,rp,4,3,"td",27),e.BQk(),e.YNc(27,up,1,3,"tr",28),e.YNc(28,pp,1,0,"tr",29),e.YNc(29,mp,1,0,"tr",30),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",t.forwardingHistoryEvents),e.xp6(25),e.Q6J("matFooterRowDef",e.DdM(6,dp)),e.xp6(1),e.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns)}}function hp(n,i){if(1&n&&e._UZ(0,"mat-paginator",47),2&n){const t=e.oxw();e.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let Pe=(()=>{class n{constructor(t,a,o,s){this.logger=t,this.commonService=a,this.store=o,this.datePipe=s,this.eventsData=[],this.filterValue="",this.forwardingHistoryData=[],this.displayedColumns=[],this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["timestamp","fee_msat","actions"]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["timestamp","amt_in","amt_out","fee_msat","actions"]):(this.flgSticky=!0,this.displayedColumns=["timestamp","alias_in","alias_out","amt_in","amt_out","fee_msat","actions"])}ngOnInit(){this.store.select(C.Bo).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{var a;this.eventsData.length<=0&&(this.errorMessage="",this.apiCallStatus=t.apiCallStatus,(null===(a=t.apiCallStatus)||void 0===a?void 0:a.status)===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.forwardingHistoryData=t.forwardingHistory.forwarding_events||[],this.loadForwardingEventsTable(this.forwardingHistoryData),this.logger.info(t.apiCallStatus),this.logger.info(t.forwardingHistory))})}ngAfterViewInit(){this.forwardingHistoryData.length>0&&this.loadForwardingEventsTable(this.forwardingHistoryData)}ngOnChanges(t){t.eventsData&&(this.apiCallStatus={status:l.Bn.COMPLETED,action:"FetchForwardingHistory"},this.eventsData=t.eventsData.currentValue,this.forwardingHistoryData=this.eventsData,t.eventsData.firstChange||this.loadForwardingEventsTable(this.forwardingHistoryData)),t.filterValue&&!t.filterValue.firstChange&&this.applyFilter()}onForwardingEventClick(t,a){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Event Information",message:[[{key:"timestamp",value:t.timestamp,title:"Timestamp",width:25,type:l.Gi.DATE_TIME},{key:"amt_in",value:t.amt_in,title:"Inbound Amount (Sats)",width:25,type:l.Gi.NUMBER},{key:"amt_out",value:t.amt_out,title:"Outbound Amount (Sats)",width:25,type:l.Gi.NUMBER},{key:"fee_msat",value:t.fee_msat,title:"Fee (mSats)",width:25,type:l.Gi.NUMBER}],[{key:"alias_in",value:t.alias_in,title:"Inbound Peer Alias",width:25,type:l.Gi.STRING},{key:"chan_id_in",value:t.chan_id_in,title:"Inbound Channel ID",width:25,type:l.Gi.STRING},{key:"alias_out",value:t.alias_out,title:"Outbound Peer Alias",width:25,type:l.Gi.STRING},{key:"chan_id_out",value:t.chan_id_out,title:"Outbound Channel ID",width:25,type:l.Gi.STRING}]]}}}))}loadForwardingEventsTable(t){this.forwardingHistoryEvents=new r.by(t?[...t]:[]),this.forwardingHistoryEvents.sort=this.sort,this.forwardingHistoryEvents.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.forwardingHistoryEvents.filterPredicate=(a,o)=>((a.timestamp?this.datePipe.transform(new Date(1e3*a.timestamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(a).toLowerCase()).includes(o),this.forwardingHistoryEvents.paginator=this.paginator,this.logger.info(this.forwardingHistoryEvents)}onDownloadCSV(){this.forwardingHistoryEvents&&this.forwardingHistoryEvents.data&&this.forwardingHistoryEvents.data.length>0&&this.commonService.downloadFile(this.forwardingHistoryEvents.data,"Forwarding-history")}applyFilter(){this.forwardingHistoryEvents&&(this.forwardingHistoryEvents.filter=this.filterValue.trim().toLowerCase())}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(M.v),e.Y36(w.yh),e.Y36(m.uU))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-forwarding-history"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},inputs:{eventsData:"eventsData",filterValue:"filterValue"},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Events")}]),e.TTD],decls:5,vars:4,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","class","page-sub-title-container",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100","class","table-container",3,"perfectScrollbar",4,"ngIf"],["class","mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","70"],["fxFlex","30"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","ngModelChange","input","keyup"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","timestamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","alias_in"],["matColumnDef","alias_out"],["matColumnDef","amt_in"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","amt_out"],["matColumnDef","fee_msat"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.YNc(1,Qu,2,1,"div",1),e.YNc(2,Yu,4,1,"div",2),e.YNc(3,_p,30,7,"div",3),e.YNc(4,hp,1,3,"mat-paginator",4),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngIf",""!==a.errorMessage),e.xp6(1),e.Q6J("ngIf",""===a.errorMessage),e.xp6(1),e.Q6J("ngIf",""===a.errorMessage),e.xp6(1),e.Q6J("ngIf",""===a.errorMessage))},directives:[d.xw,d.Wh,m.O5,d.yH,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,r.BZ,A.YE,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,J.pW,r.ge,A.nU,r.ev,N.gD,N.$L,Q.ey,q.lW,r.yh,r.Q2,m.mk,L.oO,r.XQ,r.Gk,S.NW],pipes:[m.uU,m.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();const gp=["tableIn"],fp=["tableOut"],Cp=["paginatorIn"],xp=["paginatorOut"];function Tp(n,i){if(1&n&&(e.TgZ(0,"div",3),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Oqu(t.errorMessage)}}function yp(n,i){1&n&&e._UZ(0,"mat-progress-bar",37)}function Zp(n,i){1&n&&(e.TgZ(0,"th",38),e._uU(1,"Channel ID"),e.qZA())}const pe=function(n){return{"max-width":n}};function bp(n,i){if(1&n&&(e.TgZ(0,"td",39),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.Q6J("ngStyle",e.VKq(2,pe,a.screenSize===a.screenSizeEnum.XS?"10rem":"28rem")),e.xp6(1),e.Oqu(t.chan_id)}}function Ap(n,i){1&n&&(e.TgZ(0,"th",38),e._uU(1,"Peer Alias"),e.qZA())}function vp(n,i){if(1&n&&(e.TgZ(0,"td",39),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.Q6J("ngStyle",e.VKq(2,pe,a.screenSize===a.screenSizeEnum.XS?"10rem":"28rem")),e.xp6(1),e.Oqu(t.alias)}}function wp(n,i){1&n&&(e.TgZ(0,"th",40),e._uU(1,"Events"),e.qZA())}function qp(n,i){if(1&n&&(e.TgZ(0,"td",41),e.TgZ(1,"span",42),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.events))}}function Sp(n,i){1&n&&(e.TgZ(0,"th",40),e._uU(1,"Total Amount (Sats)"),e.qZA())}function Lp(n,i){if(1&n&&(e.TgZ(0,"td",41),e.TgZ(1,"span",42),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.total_amount))}}function kp(n,i){1&n&&(e.TgZ(0,"th",43),e.TgZ(1,"span",42),e._uU(2,"Actions"),e.qZA(),e.qZA())}function Fp(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",44),e.TgZ(1,"button",45),e.NdJ("click",function(o){const u=e.CHM(t).$implicit;return e.oxw(2).onRoutingPeerClick(u,o,"in")}),e._uU(2,"View Info"),e.qZA(),e.qZA()}}function Np(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No incoming routing peer available."),e.qZA())}function Up(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting incoming routing peers..."),e.qZA())}function Op(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(3);e.xp6(1),e.Oqu(t.errorMessage)}}function Rp(n,i){if(1&n&&(e.TgZ(0,"td",46),e.YNc(1,Np,2,0,"p",47),e.YNc(2,Up,2,0,"p",47),e.YNc(3,Op,2,1,"p",47),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.RoutingPeersIncoming&&t.RoutingPeersIncoming.data)||(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const Je=function(n){return{"display-none":n}};function Ip(n,i){if(1&n&&e._UZ(0,"tr",48),2&n){const t=e.oxw(2);e.Q6J("ngClass",e.VKq(1,Je,(null==t.RoutingPeersIncoming||null==t.RoutingPeersIncoming.data?null:t.RoutingPeersIncoming.data.length)>0))}}function Dp(n,i){1&n&&e._UZ(0,"tr",49)}function Mp(n,i){1&n&&e._UZ(0,"tr",50)}function Pp(n,i){1&n&&e._UZ(0,"mat-progress-bar",37)}function Jp(n,i){1&n&&(e.TgZ(0,"th",38),e._uU(1,"Channel ID"),e.qZA())}function Ep(n,i){if(1&n&&(e.TgZ(0,"td",39),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.Q6J("ngStyle",e.VKq(2,pe,a.screenSize===a.screenSizeEnum.XS?"10rem":"28rem")),e.xp6(1),e.Oqu(t.chan_id)}}function Qp(n,i){1&n&&(e.TgZ(0,"th",38),e._uU(1,"Peer Alias"),e.qZA())}function Yp(n,i){if(1&n&&(e.TgZ(0,"td",39),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.Q6J("ngStyle",e.VKq(2,pe,a.screenSize===a.screenSizeEnum.XS?"10rem":"28rem")),e.xp6(1),e.Oqu(t.alias)}}function Bp(n,i){1&n&&(e.TgZ(0,"th",40),e._uU(1,"Events"),e.qZA())}function Hp(n,i){if(1&n&&(e.TgZ(0,"td",41),e.TgZ(1,"span",42),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.events))}}function Gp(n,i){1&n&&(e.TgZ(0,"th",40),e._uU(1,"Total Amount (Sats)"),e.qZA())}function zp(n,i){if(1&n&&(e.TgZ(0,"td",41),e.TgZ(1,"span",42),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.total_amount))}}function Vp(n,i){1&n&&(e.TgZ(0,"th",43),e.TgZ(1,"span",42),e._uU(2,"Actions"),e.qZA(),e.qZA())}function Wp(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",51),e.TgZ(1,"button",52),e.NdJ("click",function(o){const u=e.CHM(t).$implicit;return e.oxw(2).onRoutingPeerClick(u,o,"out")}),e._uU(2,"View Info"),e.qZA(),e.qZA()}}function Xp(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No outgoing routing peer available."),e.qZA())}function $p(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting outgoing routing peers..."),e.qZA())}function jp(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(3);e.xp6(1),e.Oqu(t.errorMessage)}}function Kp(n,i){if(1&n&&(e.TgZ(0,"td",46),e.YNc(1,Xp,2,0,"p",47),e.YNc(2,$p,2,0,"p",47),e.YNc(3,jp,2,1,"p",47),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.RoutingPeersOutgoing&&t.RoutingPeersOutgoing.data)||(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}function em(n,i){if(1&n&&e._UZ(0,"tr",48),2&n){const t=e.oxw(2);e.Q6J("ngClass",e.VKq(1,Je,(null==t.RoutingPeersOutgoing||null==t.RoutingPeersOutgoing.data?null:t.RoutingPeersOutgoing.data.length)>0))}}function tm(n,i){1&n&&e._UZ(0,"tr",49)}function nm(n,i){1&n&&e._UZ(0,"tr",50)}const am=function(n,i){return{"mt-2":n,"mt-1":i}},im=function(){return["no_incoming_event"]},om=function(n){return{"mt-2":n}},sm=function(){return["no_outgoing_event"]};function lm(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",4),e.TgZ(1,"div",5),e.TgZ(2,"div",6),e.TgZ(3,"div",7),e._uU(4,"Incoming"),e.qZA(),e.TgZ(5,"mat-form-field",8),e.TgZ(6,"input",9),e.NdJ("keyup",function(){return e.CHM(t),e.oxw().applyIncomingFilter()})("ngModelChange",function(o){return e.CHM(t),e.oxw().filterIn=o}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(7,"div",10),e.YNc(8,yp,1,0,"mat-progress-bar",11),e.TgZ(9,"table",12,13),e.ynx(11,14),e.YNc(12,Zp,2,0,"th",15),e.YNc(13,bp,2,4,"td",16),e.BQk(),e.ynx(14,17),e.YNc(15,Ap,2,0,"th",15),e.YNc(16,vp,2,4,"td",16),e.BQk(),e.ynx(17,18),e.YNc(18,wp,2,0,"th",19),e.YNc(19,qp,4,3,"td",20),e.BQk(),e.ynx(20,21),e.YNc(21,Sp,2,0,"th",19),e.YNc(22,Lp,4,3,"td",20),e.BQk(),e.ynx(23,22),e.YNc(24,kp,3,0,"th",23),e.YNc(25,Fp,3,0,"td",24),e.BQk(),e.ynx(26,25),e.YNc(27,Rp,4,3,"td",26),e.BQk(),e.YNc(28,Ip,1,3,"tr",27),e.YNc(29,Dp,1,0,"tr",28),e.YNc(30,Mp,1,0,"tr",29),e.qZA(),e.qZA(),e._UZ(31,"mat-paginator",30,31),e.qZA(),e.TgZ(33,"div",5),e.TgZ(34,"div",6),e.TgZ(35,"div",7),e._uU(36,"Outgoing"),e.qZA(),e.TgZ(37,"mat-form-field",8),e.TgZ(38,"input",9),e.NdJ("keyup",function(){return e.CHM(t),e.oxw().applyOutgoingFilter()})("ngModelChange",function(o){return e.CHM(t),e.oxw().filterOut=o}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(39,"div",10),e.YNc(40,Pp,1,0,"mat-progress-bar",11),e.TgZ(41,"table",32,33),e.ynx(43,14),e.YNc(44,Jp,2,0,"th",15),e.YNc(45,Ep,2,4,"td",16),e.BQk(),e.ynx(46,17),e.YNc(47,Qp,2,0,"th",15),e.YNc(48,Yp,2,4,"td",16),e.BQk(),e.ynx(49,18),e.YNc(50,Bp,2,0,"th",19),e.YNc(51,Hp,4,3,"td",20),e.BQk(),e.ynx(52,21),e.YNc(53,Gp,2,0,"th",19),e.YNc(54,zp,4,3,"td",20),e.BQk(),e.ynx(55,22),e.YNc(56,Vp,3,0,"th",23),e.YNc(57,Wp,3,0,"td",34),e.BQk(),e.ynx(58,35),e.YNc(59,Kp,4,3,"td",26),e.BQk(),e.YNc(60,em,1,3,"tr",27),e.YNc(61,tm,1,0,"tr",28),e.YNc(62,nm,1,0,"tr",29),e.qZA(),e.qZA(),e._UZ(63,"mat-paginator",30,36),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(2),e.Q6J("ngClass",e.WLB(22,am,t.screenSize===t.screenSizeEnum.XS,t.screenSize===t.screenSizeEnum.SM)),e.xp6(4),e.Q6J("ngModel",t.filterIn),e.xp6(2),e.Q6J("ngIf",t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",t.RoutingPeersIncoming),e.xp6(19),e.Q6J("matFooterRowDef",e.DdM(25,im)),e.xp6(1),e.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns),e.xp6(1),e.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS),e.xp6(3),e.Q6J("ngClass",e.VKq(26,om,t.screenSize!==t.screenSizeEnum.LG)),e.xp6(4),e.Q6J("ngModel",t.filterOut),e.xp6(2),e.Q6J("ngIf",t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",t.RoutingPeersOutgoing),e.xp6(19),e.Q6J("matFooterRowDef",e.DdM(28,sm)),e.xp6(1),e.Q6J("matHeaderRowDef",t.displayedColumns)("matHeaderRowDefSticky",t.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",t.displayedColumns),e.xp6(1),e.Q6J("pageSize",t.pageSize)("pageSizeOptions",t.pageSizeOptions)("showFirstLastButtons",t.screenSize!==t.screenSizeEnum.XS)}}let rm=(()=>{class n{constructor(t,a,o){this.logger=t,this.commonService=a,this.store=o,this.routingPeersData=[],this.displayedColumns=[],this.RoutingPeersIncoming=new r.by([]),this.RoutingPeersOutgoing=new r.by([]),this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.filterIn="",this.filterOut="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["chan_id","events","actions"]):this.screenSize===l.cu.SM||this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["chan_id","alias","events","total_amount"]):(this.flgSticky=!0,this.displayedColumns=["chan_id","alias","events","total_amount"])}ngOnInit(){this.store.select(C.Bo).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{var a;this.errorMessage="",this.apiCallStatus=t.apiCallStatus,(null===(a=t.apiCallStatus)||void 0===a?void 0:a.status)===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.routingPeersData=t.forwardingHistory.forwarding_events?t.forwardingHistory.forwarding_events:[],this.routingPeersData.length>0&&this.sortIn&&this.paginatorIn&&this.sortOut&&this.paginatorOut&&this.loadRoutingPeersTable(this.routingPeersData),this.logger.info(t.apiCallStatus),this.logger.info(t.forwardingHistory)})}ngAfterViewInit(){this.routingPeersData.length>0&&this.loadRoutingPeersTable(this.routingPeersData)}onRoutingPeerClick(t,a,o){let s=" Routing Information";s="in"===o?"Incoming"+s:"Outgoing"+s,this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:s,message:[[{key:"chan_id",value:t.chan_id,title:"Channel ID",width:50,type:l.Gi.STRING},{key:"alias",value:t.alias,title:"Peer Alias",width:50,type:l.Gi.STRING}],[{key:"events",value:t.events,title:"Events",width:50,type:l.Gi.NUMBER},{key:"total_amount",value:t.total_amount,title:"Total Amount (Sats)",width:50,type:l.Gi.NUMBER}]]}}}))}loadRoutingPeersTable(t){if(t.length>0){const a=this.groupRoutingPeers(t);this.RoutingPeersIncoming=new r.by(a[0]),this.RoutingPeersIncoming.sort=this.sortIn,this.RoutingPeersIncoming.filterPredicate=(o,s)=>JSON.stringify(o).toLowerCase().includes(s),this.RoutingPeersIncoming.paginator=this.paginatorIn,this.logger.info(this.RoutingPeersIncoming),this.RoutingPeersOutgoing=new r.by(a[1]),this.RoutingPeersOutgoing.sort=this.sortOut,this.RoutingPeersOutgoing.filterPredicate=(o,s)=>JSON.stringify(o).toLowerCase().includes(s),this.RoutingPeersOutgoing.paginator=this.paginatorOut,this.logger.info(this.RoutingPeersOutgoing)}else this.RoutingPeersIncoming=new r.by([]),this.RoutingPeersOutgoing=new r.by([]);this.applyIncomingFilter(),this.applyOutgoingFilter()}groupRoutingPeers(t){const a=[],o=[];return t.forEach(s=>{const u=a.find(U=>U.chan_id===s.chan_id_in),g=o.find(U=>U.chan_id===s.chan_id_out);u?(u.events++,u.total_amount=+u.total_amount+ +s.amt_in):a.push({chan_id:s.chan_id_in,alias:s.alias_in,events:1,total_amount:+s.amt_in}),g?(g.events++,g.total_amount=+g.total_amount+ +s.amt_out):o.push({chan_id:s.chan_id_out,alias:s.alias_out,events:1,total_amount:+s.amt_out})}),[this.commonService.sortDescByKey(a,"total_amount"),this.commonService.sortDescByKey(o,"total_amount")]}applyIncomingFilter(){this.RoutingPeersIncoming.filter=this.filterIn.toLowerCase()}applyOutgoingFilter(){this.RoutingPeersOutgoing.filter=this.filterOut.toLowerCase()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(M.v),e.Y36(w.yh))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-routing-peers"]],viewQuery:function(t,a){if(1&t&&(e.Gf(gp,5,A.YE),e.Gf(fp,5,A.YE),e.Gf(Cp,5),e.Gf(xp,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sortIn=o.first),e.iGM(o=e.CRH())&&(a.sortOut=o.first),e.iGM(o=e.CRH())&&(a.paginatorIn=o.first),e.iGM(o=e.CRH())&&(a.paginatorOut=o.first)}},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Peers")}])],decls:3,vars:2,consts:[["fxLayout","column","fxLayoutAlign","start stretch",1,"padding-gap-x"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between start","class","page-sub-title-container",4,"ngIf"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayout.gt-md","row","fxFlex","100","fxLayoutAlign","space-between start",1,"page-sub-title-container"],["fxLayout","column","fxFlex","49","fxLayoutAlign","start stretch",1,"mb-4"],["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","space-between center","fxLayoutAlign","start stretch",1,"page-sub-title-container","w-100",3,"ngClass"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start start","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",1,"overflow-auto","incoming-table",3,"dataSource"],["tableIn",""],["matColumnDef","chan_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","alias"],["matColumnDef","events"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","total_amount"],["matColumnDef","actions"],["mat-header-cell","","class","pr-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-2","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_incoming_event"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["paginatorIn",""],["mat-table","","matSort","",1,"overflow-auto","outgoing-table",3,"dataSource"],["tableOut",""],["mat-cell","","class","pl-2",4,"matCellDef"],["matColumnDef","no_outgoing_event"],["paginatorOut",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-header-cell","",1,"pr-3"],["mat-cell","","fxLayoutAlign","end center",1,"pl-2"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""],["mat-cell","",1,"pl-2"],["mat-stroked-button","","color","primary","type","button","tabindex","5",3,"click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.YNc(1,Tp,2,1,"div",1),e.YNc(2,lm,65,29,"div",2),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngIf",""!==a.errorMessage),e.xp6(1),e.Q6J("ngIf",""===a.errorMessage))},directives:[d.xw,d.Wh,m.O5,d.yH,m.mk,L.oO,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,r.BZ,A.YE,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,J.pW,r.ge,A.nU,r.ev,m.PC,L.Zl,q.lW,r.yh,r.Q2,r.XQ,r.Gk],pipes:[m.JJ],styles:[".mat-column-chan_id[_ngcontent-%COMP%], .mat-column-alias[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();function cm(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",7),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().activeLink=s.link}),e._uU(1),e.qZA()}if(2&n){const t=i.$implicit,a=e.oxw();e.s9C("routerLink",t.link),e.Q6J("active",a.activeLink===t.link),e.xp6(1),e.Oqu(t.name)}}let um=(()=>{class n{constructor(t){this.router=t,this.faChartBar=x.koM,this.links=[{link:"routingfees",name:"Routing Fees"},{link:"transactions",name:"Transactions"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){const t=this.links.find(a=>this.router.url.includes(a.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(a=>a instanceof Z.Av)).subscribe(a=>{const o=this.links.find(s=>a.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-reports"]],decls:10,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e._UZ(1,"fa-icon",1),e.TgZ(2,"span",2),e._uU(3,"Reports"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"mat-card"),e.TgZ(6,"mat-card-content",4),e.TgZ(7,"nav",5),e.YNc(8,cm,2,3,"div",6),e.qZA(),e._UZ(9,"router-outlet"),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("icon",a.faChartBar),e.xp6(7),e.Q6J("ngForOf",a.links))},directives:[d.xw,d.Wh,R.BN,b.a8,b.dn,I.BU,m.sg,Z.lC,I.Nj,Z.rH],styles:[""]}),n})();var Ee=h(7772),Qe=h(7671),Ye=h(6046);function pm(n,i){1&n&&e._UZ(0,"mat-progress-bar",10)}function mm(n,i){if(1&n&&(e.TgZ(0,"div",11),e._uU(1),e.ALo(2,"number"),e.ALo(3,"number"),e.qZA()),2&n){const t=e.oxw();e.Q6J("@fadeIn",t.events.total_fee_msat),e.xp6(1),e.AsE("",e.xi3(2,3,t.events.total_fee_msat/1e3||0,"1.0-2")," Sats/",e.lcZ(3,6,(null==t.events||null==t.events.forwarding_events?null:t.events.forwarding_events.length)||0)," Events")}}function dm(n,i){1&n&&(e.TgZ(0,"div",12),e._uU(1,"No fee report for the selected period"),e.qZA())}const _m=function(n){return{"error-border":n}};function hm(n,i){if(1&n&&(e.TgZ(0,"div",13),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(2,_m,"Getting fee report..."!==t.errorMessage&&""!==t.errorMessage)),e.xp6(1),e.Oqu(t.errorMessage)}}function gm(n,i){if(1&n&&(e.TgZ(0,"span"),e.TgZ(1,"span",16),e._uU(2),e.ALo(3,"number"),e.qZA(),e.TgZ(4,"span",16),e._uU(5),e.ALo(6,"number"),e.qZA(),e.qZA()),2&n){const t=i.model;e.xp6(2),e.hij("Events: ",e.lcZ(3,2,t.extra.totalEvents||0),""),e.xp6(3),e.hij("Fee: ",e.xi3(6,4,t.value||0,"1.0-2"),"")}}function fm(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"ngx-charts-bar-vertical",14),e.NdJ("select",function(o){return e.CHM(t),e.oxw().onChartBarSelected(o)})("mouseup",function(o){return e.CHM(t),e.oxw().onChartMouseUp(o)}),e.YNc(1,gm,7,7,"ng-template",null,15,e.W1O),e.qZA()}if(2&n){const t=e.oxw();e.Q6J("view",t.view)("results",t.feeReportData)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",t.showYAxisLabel)("xAxisLabel",t.xAxisLabel)("yAxisLabel",t.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)}}function Cm(n,i){if(1&n&&e._UZ(0,"rtl-forwarding-history",17),2&n){const t=e.oxw();e.Q6J("eventsData",null==t.events?null:t.events.forwarding_events)("filterValue",t.eventFilterValue)}}let xm=(()=>{class n{constructor(t,a,o,s){this.logger=t,this.dataService=a,this.commonService=o,this.store=s,this.reportPeriod=l.op[0],this.secondsInADay=86400,this.events={},this.eventFilterValue="",this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.feeReportData=[],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Fee (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.unSubs=[new p.x,new p.x,new p.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===l.cu.XS||this.screenSize===l.cu.SM),this.store.select(C.Q5).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{t.identity_pubkey&&this.fetchEvents(this.startDate,this.endDate)}),this.commonService.containerSizeUpdated.pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{switch(this.screenSize){case l.cu.MD:this.screenPaddingX=t.width/10;break;case l.cu.LG:this.screenPaddingX=t.width/16;break;default:this.screenPaddingX=t.width/20}this.view=[t.width-this.screenPaddingX,t.height/2.2],this.logger.info("Container Size: "+JSON.stringify(t)),this.logger.info("View: "+JSON.stringify(this.view))})}fetchEvents(t,a){this.errorMessage=l.m6.GET_FEE_REPORT;const o=Math.round(t.getTime()/1e3).toString(),s=Math.round(a.getTime()/1e3).toString();this.dataService.getForwardingHistory(o,s).pipe((0,_.R)(this.unSubs[2])).subscribe({next:u=>{this.errorMessage="",u.forwarding_events&&u.forwarding_events.length?(u.forwarding_events=u.forwarding_events.reverse(),this.events=u,this.feeReportData=this.prepareFeeReport(t)):(this.events={},this.feeReportData=[])},error:u=>{this.errorMessage=u}})}onChartMouseUp(t){"svg"===t.srcElement.tagName&&t.srcElement.classList.length>0&&"ngx-charts"===t.srcElement.classList[0]&&(this.eventFilterValue="")}onChartBarSelected(t){this.eventFilterValue=this.reportPeriod===l.op[1]?t.name+"/"+this.startDate.getFullYear():t.name.toString().padStart(2,"0")+"/"+l.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}prepareFeeReport(t){const a=Math.round(t.getTime()/1e3),o=[];if(this.reportPeriod===l.op[1]){for(let s=0;s<12;s++)o.push({name:l.gg[s].name,value:0,extra:{totalEvents:0}});this.events.forwarding_events.map(s=>{const u=new Date(1e3*+s.timestamp).getMonth();return o[u].value=o[u].value+ +s.fee_msat/1e3,o[u].extra.totalEvents=o[u].extra.totalEvents+1,this.events.total_fee_msat=(this.events.total_fee_msat?this.events.total_fee_msat:0)+ +s.fee_msat,this.events})}else{for(let s=0;s{const u=Math.floor((+s.timestamp-a)/this.secondsInADay);return o[u].value=o[u].value+ +s.fee_msat/1e3,o[u].extra.totalEvents=o[u].extra.totalEvents+1,this.events.total_fee_msat=(this.events.total_fee_msat?this.events.total_fee_msat:0)+ +s.fee_msat,this.events})}return o}onSelectionChange(t){const a=t.selDate.getMonth(),o=t.selDate.getFullYear();this.reportPeriod=t.selScrollRange,this.reportPeriod===l.op[1]?(this.startDate=new Date(o,0,1,0,0,0),this.endDate=new Date(o,11,31,23,59,59)):(this.startDate=new Date(o,a,1,0,0,0),this.endDate=new Date(o,a,this.getMonthDays(a,o),23,59,59)),this.fetchEvents(this.startDate,this.endDate),this.eventFilterValue=""}getMonthDays(t,a){return 1===t&&a%4==0?l.gg[t].days+1:l.gg[t].days}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(j.D),e.Y36(M.v),e.Y36(w.yh))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-fee-report"]],hostBindings:function(t,a){1&t&&e.NdJ("mouseup",function(s){return a.onChartMouseUp(s)})},decls:11,vars:6,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],[3,"stepChanged"],["mode","indeterminate","class","mt-2",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",3,"ngClass",4,"ngIf"],[1,"mt-1"],["class","one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup",4,"ngIf"],[3,"eventsData","filterValue",4,"ngIf"],["mode","indeterminate",1,"mt-2"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1",3,"ngClass"],[1,"one-color",3,"view","results","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"eventsData","filterValue"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"rtl-horizontal-scroller",1),e.NdJ("stepChanged",function(s){return a.onSelectionChange(s)}),e.qZA(),e.YNc(2,pm,1,0,"mat-progress-bar",2),e.TgZ(3,"div",3),e.YNc(4,mm,4,8,"div",4),e.YNc(5,dm,2,0,"div",5),e.YNc(6,hm,2,4,"div",6),e.TgZ(7,"div",7),e.YNc(8,fm,3,11,"ngx-charts-bar-vertical",8),e.qZA(),e.TgZ(9,"div",7),e.YNc(10,Cm,1,2,"rtl-forwarding-history",9),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(2),e.Q6J("ngIf","Getting fee report..."===a.errorMessage),e.xp6(2),e.Q6J("ngIf",a.feeReportData.length>0&&a.events.forwarding_events),e.xp6(1),e.Q6J("ngIf",(a.feeReportData.length<=0||!a.events.forwarding_events)&&""===a.errorMessage),e.xp6(1),e.Q6J("ngIf",""!==a.errorMessage),e.xp6(2),e.Q6J("ngIf",a.feeReportData.length>0&&a.events.forwarding_events),e.xp6(2),e.Q6J("ngIf",a.events&&(null==a.events?null:a.events.forwarding_events)))},directives:[d.xw,d.Wh,d.yH,Qe.D,m.O5,J.pW,m.mk,L.oO,Ye.K$,Pe],pipes:[m.JJ],styles:[""],data:{animation:[Ee.J]}}),n})();var Tm=h(165);function ym(n,i){1&n&&(e.TgZ(0,"div",11),e._UZ(1,"mat-progress-bar",12),e.TgZ(2,"span"),e._uU(3,"Getting transactions data..."),e.qZA(),e.qZA())}function Zm(n,i){if(1&n&&(e.TgZ(0,"div",13),e._uU(1),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Oqu(t.errorMessage)}}function bm(n,i){if(1&n&&(e.TgZ(0,"div",16),e._uU(1),e.ALo(2,"number"),e.ALo(3,"number"),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.AsE(" Paid ",e.xi3(2,2,t.transactionsReportSummary.amountPaidSelectedPeriod/1e3||0,"1.0-2")," Sats/",e.lcZ(3,5,t.transactionsReportSummary.paymentsSelectedPeriod)," Payments ")}}function Am(n,i){if(1&n&&(e.TgZ(0,"div",16),e._uU(1),e.ALo(2,"number"),e.ALo(3,"number"),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.AsE(" Received ",e.xi3(2,2,t.transactionsReportSummary.amountReceivedSelectedPeriod/1e3||0,"1.0-2")," Sats/",e.lcZ(3,5,t.transactionsReportSummary.invoicesSelectedPeriod)," Invoices ")}}function vm(n,i){if(1&n&&(e.TgZ(0,"div",14),e.YNc(1,bm,4,7,"div",15),e.YNc(2,Am,4,7,"div",15),e.qZA()),2&n){const t=e.oxw();e.Q6J("@fadeIn",t.transactionsReportSummary),e.xp6(1),e.Q6J("ngIf",t.transactionsReportSummary.paymentsSelectedPeriod>0),e.xp6(1),e.Q6J("ngIf",t.transactionsReportSummary.invoicesSelectedPeriod)}}function wm(n,i){1&n&&(e.TgZ(0,"div",17),e._uU(1,"No transactions report for the selected period"),e.qZA())}function qm(n,i){if(1&n&&(e.TgZ(0,"span",21),e._uU(1),e.ALo(2,"number"),e.ALo(3,"number"),e.qZA()),2&n){const t=i.model;e.xp6(1),e.HOy("",t.name,": ",e.xi3(2,4,t.value||0,"1.0-2"),"/# ","Paid"===t.name?"Payments":"Invoices",": ",e.lcZ(3,7,(null==t.extra?null:t.extra.total)||0),"")}}function Sm(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"ngx-charts-bar-vertical-2d",19),e.NdJ("select",function(o){return e.CHM(t),e.oxw(2).onChartBarSelected(o)})("mouseup",function(o){return e.CHM(t),e.oxw(2).onChartMouseUp(o)}),e.YNc(1,qm,4,9,"ng-template",null,20,e.W1O),e.qZA()}if(2&n){const t=e.oxw(2);e.Q6J("view",t.view)("results",t.transactionsReportData)("noBarWhenZero",!1)("gradient",!1)("xAxis",!0)("yAxis",!0)("showXAxisLabel",!0)("showYAxisLabel",t.showYAxisLabel)("xAxisLabel",t.xAxisLabel)("yAxisLabel",t.yAxisLabel)("showGridLines",!1)("showDataLabel",!1)("groupPadding",t.reportPeriod===t.scrollRanges[0]?2:8)}}function Lm(n,i){if(1&n&&(e.TgZ(0,"div",9),e.YNc(1,Sm,3,13,"ngx-charts-bar-vertical-2d",18),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.transactionsReportData.length>0&&t.transactionsNonZeroReportData.length>0)}}function km(n,i){if(1&n&&e._UZ(0,"rtl-transactions-report-table",22),2&n){const t=e.oxw();e.Q6J("dataList",t.transactionsNonZeroReportData)("dataRange",t.reportPeriod)("filterValue",t.transactionFilterValue)}}let Fm=(()=>{class n{constructor(t,a,o){this.logger=t,this.commonService=a,this.store=o,this.scrollRanges=l.op,this.reportPeriod=l.op[0],this.secondsInADay=86400,this.payments=[],this.invoices=[],this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0},this.transactionFilterValue="",this.today=new Date(Date.now()),this.startDate=new Date(this.today.getFullYear(),this.today.getMonth(),1,0,0,0),this.endDate=new Date(this.today.getFullYear(),this.today.getMonth(),this.getMonthDays(this.today.getMonth(),this.today.getFullYear()),23,59,59),this.transactionsReportData=[{date:"",name:"1",series:[{extra:{total:0},name:"Paid",value:0},{extra:{total:0},name:"Received",value:0}]}],this.transactionsNonZeroReportData=[{amount_paid:0,amount_received:0,date:"",num_invoices:0,num_payments:0}],this.view=[350,350],this.screenPaddingX=100,this.gradient=!0,this.xAxisLabel="Date",this.yAxisLabel="Amount (Sats)",this.showYAxisLabel=!0,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.showYAxisLabel=!(this.screenSize===l.cu.XS||this.screenSize===l.cu.SM),this.store.select(C.l5).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.payments=t.allLightningTransactions.listPaymentsAll.payments||[],this.invoices=t.allLightningTransactions.listInvoicesAll.invoices||[],(this.payments.length>0||this.invoices.length>0)&&(this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData()),this.logger.info(t)}),this.commonService.containerSizeUpdated.pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{switch(this.screenSize){case l.cu.MD:this.screenPaddingX=t.width/10;break;case l.cu.LG:this.screenPaddingX=t.width/16;break;default:this.screenPaddingX=t.width/20}this.view=[t.width-this.screenPaddingX,t.height/2.2],this.logger.info("Container Size: "+JSON.stringify(t)),this.logger.info("View: "+JSON.stringify(this.view))})}onChartMouseUp(t){"svg"===t.srcElement.tagName&&t.srcElement.classList.length>0&&"ngx-charts"===t.srcElement.classList[0]&&(this.transactionFilterValue="")}onChartBarSelected(t){this.transactionFilterValue=this.reportPeriod===l.op[1]?t.series+"/"+this.startDate.getFullYear():t.series.toString().padStart(2,"0")+"/"+l.gg[this.startDate.getMonth()].name+"/"+this.startDate.getFullYear()}filterTransactionsForSelectedPeriod(t,a){const o=Math.round(t.getTime()/1e3),s=Math.round(a.getTime()/1e3),u=[];this.transactionsNonZeroReportData=[],this.transactionsReportSummary={paymentsSelectedPeriod:0,invoicesSelectedPeriod:0,amountPaidSelectedPeriod:0,amountReceivedSelectedPeriod:0};const g=this.payments.filter(T=>"SUCCEEDED"===T.status&&T.creation_date>=o&&T.creation_dateT.settled&&+T.creation_date>=o&&+T.creation_date{const O=new Date(1e3*+T.creation_date).getMonth();return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+ +T.value_msat+ +T.fee_msat,u[O].series[0].value=u[O].series[0].value+(+T.value_msat+ +T.fee_msat)/1e3,u[O].series[0].extra.total=u[O].series[0].extra.total+1,this.transactionsReportSummary}),U.map(T=>{const O=new Date(1e3*+T.creation_date).getMonth();return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+ +T.amt_paid_msat,u[O].series[1].value=u[O].series[1].value+ +T.amt_paid_msat/1e3,u[O].series[1].extra.total=u[O].series[1].extra.total+1,this.transactionsReportSummary})}else{for(let T=0;T{const O=Math.floor((+T.creation_date-o)/this.secondsInADay);return this.transactionsReportSummary.amountPaidSelectedPeriod=this.transactionsReportSummary.amountPaidSelectedPeriod+ +T.value_msat+ +T.fee_msat,u[O].series[0].value=u[O].series[0].value+(+T.value_msat+ +T.fee_msat)/1e3,u[O].series[0].extra.total=u[O].series[0].extra.total+1,this.transactionsReportSummary}),U.map(T=>{const O=Math.floor((+T.creation_date-o)/this.secondsInADay);return this.transactionsReportSummary.amountReceivedSelectedPeriod=this.transactionsReportSummary.amountReceivedSelectedPeriod+ +T.amt_paid_msat,u[O].series[1].value=u[O].series[1].value+ +T.amt_paid_msat/1e3,u[O].series[1].extra.total=u[O].series[1].extra.total+1,this.transactionsReportSummary})}return u}prepareTableData(){return this.transactionsReportData.reduce((t,a)=>a.series[0].extra.total>0||a.series[1].extra.total>0?t.concat({date:a.date,amount_paid:a.series[0].value,num_payments:a.series[0].extra.total,amount_received:a.series[1].value,num_invoices:a.series[1].extra.total}):t,[])}onSelectionChange(t){const a=t.selDate.getMonth(),o=t.selDate.getFullYear();this.reportPeriod=t.selScrollRange,this.reportPeriod===l.op[1]?(this.startDate=new Date(o,0,1,0,0,0),this.endDate=new Date(o,11,31,23,59,59)):(this.startDate=new Date(o,a,1,0,0,0),this.endDate=new Date(o,a,this.getMonthDays(a,o),23,59,59)),this.transactionsReportData=this.filterTransactionsForSelectedPeriod(this.startDate,this.endDate),this.transactionsNonZeroReportData=this.prepareTableData(),this.transactionFilterValue=""}getMonthDays(t,a){return 1===t&&a%4==0?l.gg[t].days+1:l.gg[t].days}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(M.v),e.Y36(w.yh))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-transactions-report"]],hostBindings:function(t,a){1&t&&e.NdJ("mouseup",function(s){return a.onChartMouseUp(s)})},decls:11,vars:6,consts:[["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x-large"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100"],[3,"stepChanged"],["class","p-2",4,"ngIf"],["class","p-2 error-border my-2",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 font-bold-700 mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100","class","font-size-120 mt-1",4,"ngIf"],["class","mt-1",4,"ngIf"],[1,"mt-1"],[3,"dataList","dataRange","filterValue",4,"ngIf"],[1,"p-2"],["mode","indeterminate"],[1,"p-2","error-border","my-2"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","font-bold-700","mt-1"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","column","fxLayoutAlign","center center","fxFlex","100",1,"font-size-120","mt-1"],["class","two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup",4,"ngIf"],[1,"two-color",3,"view","results","noBarWhenZero","gradient","xAxis","yAxis","showXAxisLabel","showYAxisLabel","xAxisLabel","yAxisLabel","showGridLines","showDataLabel","groupPadding","select","mouseup"],["tooltipTemplate",""],[1,"tooltip-label"],[3,"dataList","dataRange","filterValue"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"div",2),e.TgZ(3,"rtl-horizontal-scroller",3),e.NdJ("stepChanged",function(s){return a.onSelectionChange(s)}),e.qZA(),e.YNc(4,ym,4,0,"div",4),e.YNc(5,Zm,2,1,"div",5),e.YNc(6,vm,3,3,"div",6),e.YNc(7,wm,2,0,"div",7),e.YNc(8,Lm,2,1,"div",8),e.TgZ(9,"div",9),e.YNc(10,km,1,3,"rtl-transactions-report-table",10),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(4),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.ERROR),e.xp6(1),e.Q6J("ngIf",a.transactionsNonZeroReportData.length>0&&a.apiCallStatus.status===a.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",a.transactionsNonZeroReportData.length<=0&&a.apiCallStatus.status===a.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",a.transactionsNonZeroReportData.length>0&&a.apiCallStatus.status===a.apiCallStatusEnum.COMPLETED),e.xp6(2),e.Q6J("ngIf",a.transactionsNonZeroReportData.length>0&&a.apiCallStatus.status===a.apiCallStatusEnum.COMPLETED))},directives:[d.xw,d.Wh,d.yH,Qe.D,m.O5,J.pW,Ye.H5,Tm.g],pipes:[m.JJ],styles:[""],data:{animation:[Ee.J]}}),n})();const Nm=["form"];function Um(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"UTXO Label is required."),e.qZA())}function Om(n,i){if(1&n&&(e.TgZ(0,"span"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.labelError)}}function Rm(n,i){if(1&n&&(e.TgZ(0,"div",16),e._UZ(1,"fa-icon",17),e.YNc(2,Om,2,1,"span",11),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("icon",t.faExclamationTriangle),e.xp6(1),e.Q6J("ngIf",""!==t.labelError)}}let Im=(()=>{class n{constructor(t,a,o,s,u,g){this.dialogRef=t,this.data=a,this.dataService=o,this.store=s,this.snackBar=u,this.commonService=g,this.faExclamationTriangle=x.eHv,this.utxo=null,this.label="",this.labelError="",this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.utxo=this.data.utxo,this.label=this.utxo.label}onLabelUTXO(){if(!this.label||""===this.label)return!0;this.labelError="",this.dataService.labelUTXO(this.utxo.outpoint.txid_bytes,this.label,!0).pipe((0,_.R)(this.unSubs[0])).subscribe({next:t=>{this.store.dispatch((0,y.mC)()),this.store.dispatch((0,y.Ly)()),this.snackBar.open("Successfully labelled the UTXO."),this.dialogRef.close()},error:t=>{this.labelError=t}})}resetData(){this.labelError="",this.label=""}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(P.WI),e.Y36(j.D),e.Y36(w.yh),e.Y36(ee.ux),e.Y36(M.v))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-on-chain-lebel-modal"]],viewQuery:function(t,a){if(1&t&&e.Gf(Nm,7),2&t){let o;e.iGM(o=e.CRH())&&(a.form=o.first)}},decls:20,vars:4,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100",1,"overflow-x-hidden",3,"submit","reset"],["form","ngForm"],["fxFlex.gt-sm","100"],["autoFocus","","matInput","","placeholder","UTXO Label","name","label","tabindex","1","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["mat-button","","color","primary","type","submit","tabindex","8"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e.TgZ(4,"span",4),e._uU(5,"Label UTXO"),e.qZA(),e.qZA(),e.TgZ(6,"button",5),e._uU(7,"X"),e.qZA(),e.qZA(),e.TgZ(8,"mat-card-content",6),e.TgZ(9,"form",7,8),e.NdJ("submit",function(){return a.onLabelUTXO()})("reset",function(){return a.resetData()}),e.TgZ(11,"mat-form-field",9),e.TgZ(12,"input",10),e.NdJ("ngModelChange",function(s){return a.label=s}),e.qZA(),e.YNc(13,Um,2,0,"mat-error",11),e.qZA(),e.YNc(14,Rm,3,2,"div",12),e.TgZ(15,"div",13),e.TgZ(16,"button",14),e._uU(17,"Clear"),e.qZA(),e.TgZ(18,"button",15),e._uU(19,"Label UTXO"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(6),e.Q6J("mat-dialog-close",!1),e.xp6(6),e.Q6J("ngModel",a.label),e.xp6(1),e.Q6J("ngIf",!a.label),e.xp6(1),e.Q6J("ngIf",""!==a.labelError))},directives:[d.xw,d.yH,b.dk,d.Wh,q.lW,P.ZT,b.dn,c._Y,c.JL,c.F,f.KE,D.Nt,c.Fj,V.h,c.Q7,c.JJ,c.On,m.O5,f.TO,R.BN],styles:[""]}),n})();function Dm(n,i){1&n&&e._UZ(0,"mat-progress-bar",28)}function Mm(n,i){1&n&&(e.TgZ(0,"th",29),e._uU(1," Transaction ID "),e.qZA())}function Pm(n,i){1&n&&(e.TgZ(0,"span",35),e.TgZ(1,"mat-icon",36),e._uU(2,"warning"),e.qZA(),e.qZA())}function Jm(n,i){if(1&n&&(e.TgZ(0,"span"),e.YNc(1,Pm,3,0,"span",34),e.qZA()),2&n){const t=e.oxw().$implicit;e.oxw();const a=e.MAs(34);e.xp6(1),e.Q6J("ngIf",t.amount_sat<1e3)("ngIfElse",a)}}const Be=function(n){return{"max-width":n}};function Em(n,i){if(1&n&&(e.TgZ(0,"td",30),e.TgZ(1,"span",31),e.YNc(2,Jm,2,2,"span",32),e.TgZ(3,"span",33),e._uU(4),e.qZA(),e.qZA(),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(3,Be,a.screenSize===a.screenSizeEnum.XS?"12rem":"25rem")),e.xp6(2),e.Q6J("ngIf",a.utxos.length>0&&a.dustUtxos.length>0&&!a.isDustUTXO),e.xp6(2),e.Oqu(t.outpoint.txid_str)}}function Qm(n,i){1&n&&(e.TgZ(0,"th",37),e._uU(1," Output "),e.qZA())}function Ym(n,i){if(1&n&&(e.TgZ(0,"td",38),e.TgZ(1,"span",39),e._uU(2),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(t.outpoint.output_index)}}function Bm(n,i){1&n&&(e.TgZ(0,"th",29),e._uU(1," Label "),e.qZA())}function Hm(n,i){if(1&n&&(e.TgZ(0,"td",30),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,Be,a.screenSize===a.screenSizeEnum.XS?"12rem":"25rem")),e.xp6(1),e.hij(" ",null==t?null:t.label," ")}}function Gm(n,i){1&n&&(e.TgZ(0,"th",37),e._uU(1," Amount (Sats) "),e.qZA())}function zm(n,i){if(1&n&&(e.TgZ(0,"td",38),e.TgZ(1,"span",39),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.amount_sat||0))}}function Vm(n,i){1&n&&(e.TgZ(0,"th",37),e._uU(1," Confirmations "),e.qZA())}function Wm(n,i){if(1&n&&(e.TgZ(0,"td",38),e.TgZ(1,"span",39),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.confirmations||0))}}function Xm(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"th",40),e.TgZ(1,"div",41),e.TgZ(2,"mat-select",42),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",43),e.NdJ("click",function(){return e.CHM(t),e.oxw().onDownloadCSV()}),e._uU(5,"Download CSV"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function $m(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",44),e.TgZ(1,"div",45),e.TgZ(2,"mat-select",46),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",43),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onUTXOClick(s)}),e._uU(5,"View Info"),e.qZA(),e.TgZ(6,"mat-option",43),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onLabelUTXO(s)}),e._uU(7,"Label"),e.qZA(),e.TgZ(8,"mat-option",43),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onLeaseUTXO(s)}),e._uU(9,"Lease"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function jm(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No UTXO available."),e.qZA())}function Km(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting UTXOs..."),e.qZA())}function ed(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function td(n,i){if(1&n&&(e.TgZ(0,"td",47),e.YNc(1,jm,2,0,"p",32),e.YNc(2,Km,2,0,"p",32),e.YNc(3,ed,2,1,"p",32),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!(null!=t.listUTXOs&&t.listUTXOs.data)||(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.listUTXOs&&t.listUTXOs.data)||(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.listUTXOs&&t.listUTXOs.data)||(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const nd=function(n){return{"display-none":n}};function ad(n,i){if(1&n&&e._UZ(0,"tr",48),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,nd,(null==t.listUTXOs?null:t.listUTXOs.data)&&(null==t.listUTXOs||null==t.listUTXOs.data?null:t.listUTXOs.data.length)>0))}}function id(n,i){1&n&&e._UZ(0,"tr",49)}function od(n,i){1&n&&e._UZ(0,"tr",50)}function sd(n,i){1&n&&e._UZ(0,"mat-icon",36)}const ld=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},rd=function(){return["no_utxo"]};let cd=(()=>{class n{constructor(t,a,o,s,u,g){this.logger=t,this.commonService=a,this.dataService=o,this.store=s,this.rtlEffects=u,this.decimalPipe=g,this.isDustUTXO=!1,this.addressType=l.x$,this.faMoneyBillWave=x.aj4,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["amount_sat","confirmations","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["tx_id","output","amount_sat","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["tx_id","output","label","amount_sat","confirmations","actions"]):(this.flgSticky=!0,this.displayedColumns=["tx_id","output","label","amount_sat","confirmations","actions"])}ngOnInit(){this.store.select(C.T4).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),t.utxos&&t.utxos.length>0&&(this.dustUtxos=t.utxos.filter(a=>+a.amount_sat<1e3),this.utxos=t.utxos,this.loadUTXOsTable(this.isDustUTXO?this.dustUtxos:this.utxos)),this.logger.info(t)})}ngOnChanges(){!this.isDustUTXO&&this.utxos&&this.utxos.length>0&&this.loadUTXOsTable(this.utxos),this.isDustUTXO&&this.dustUtxos&&this.dustUtxos.length>0&&this.loadUTXOsTable(this.dustUtxos)}applyFilter(){this.listUTXOs.filter=this.selFilter.trim().toLowerCase()}onUTXOClick(t){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"UTXO Information",message:[[{key:"txid",value:t.outpoint.txid_str,title:"Transaction ID",width:100,type:l.Gi.STRING}],[{key:"label",value:t.label,title:"Label",width:100,type:l.Gi.STRING}],[{key:"output_index",value:t.outpoint.output_index,title:"Output Index",width:34,type:l.Gi.NUMBER},{key:"amount_sat",value:t.amount_sat,title:"Amount (Sats)",width:33,type:l.Gi.NUMBER},{key:"confirmations",value:t.confirmations,title:"Confirmations",width:33,type:l.Gi.NUMBER}],[{key:"address_type",value:this.addressType[t.address_type].name,title:"Address Type",width:34},{key:"address",value:t.address,title:"Address",width:66}],[{key:"pk_script",value:t.pk_script,title:"PK Script",width:100,type:l.Gi.STRING}]]}}}))}loadUTXOsTable(t){this.listUTXOs=new r.by([...t]),this.listUTXOs.filterPredicate=(a,o)=>((a.label?a.label.toLowerCase():"")+(a.outpoint.txid_str?a.outpoint.txid_str.toLowerCase():"")+(a.outpoint.output_index?a.outpoint.output_index:"")+(a.outpoint.txid_bytes?a.outpoint.txid_bytes.toLowerCase():"")+(a.address?a.address.toLowerCase():"")+(a.address_type?a.address_type.toLowerCase():"")+(a.amount_sat?a.amount_sat:"")+(a.confirmations?a.confirmations:"")+(a.pk_script?a.pk_script.toLowerCase():"")).includes(o),this.listUTXOs.sortingDataAccessor=(a,o)=>{switch(o){case"tx_id":return a.outpoint.txid_str.toLocaleLowerCase();case"output":return+a.outpoint.output_index;default:return a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null}},this.listUTXOs.sort=this.sort,this.listUTXOs.filterPredicate=(a,o)=>JSON.stringify(a).toLowerCase().includes(o),this.listUTXOs.paginator=this.paginator,this.applyFilter(),this.logger.info(this.listUTXOs)}onLabelUTXO(t){this.store.dispatch((0,v.qR)({payload:{data:{utxo:t,component:Im}}}))}onLeaseUTXO(t){const a=[[{key:"txid_str",value:t.outpoint.txid_str,title:"Transaction ID",width:100}],[{key:"amount_sat",value:this.decimalPipe.transform(t.amount_sat),title:"Amount (Sats)",width:100}]];t.label&&a.splice(1,0,[{key:"label",value:t.label,title:"Label",width:100}]),this.store.dispatch((0,v.c1)({payload:{data:{type:l.n_.CONFIRM,alertTitle:"Lease UTXO",informationMessage:"The UTXO will be leased for 10 minutes.",message:a,noBtnText:"Cancel",yesBtnText:"Lease UTXO"}}})),this.rtlEffects.closeConfirm.pipe((0,_.R)(this.unSubs[0])).subscribe(o=>{o&&this.dataService.leaseUTXO(t.outpoint.txid_bytes,t.outpoint.output_index)})}onDownloadCSV(){this.listUTXOs.data&&this.listUTXOs.data.length>0&&this.commonService.downloadFile(this.listUTXOs.data,"UTXOs")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(M.v),e.Y36(j.D),e.Y36(w.yh),e.Y36(ie.V),e.Y36(m.JJ))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-on-chain-utxos"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},inputs:{isDustUTXO:"isDustUTXO"},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("UTXOs")}]),e.TTD],decls:35,vars:14,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["fxLayout","column","fxLayout.gt-xs","row wrap","fxLayoutAlign.gt-xs","end stretch","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","tx_id"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","output"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","label"],["matColumnDef","amount_sat"],["matColumnDef","confirmations"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center","class","pl-3",4,"matCellDef"],["matColumnDef","no_utxo"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["emptySpace",""],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["fxLayout","row"],[4,"ngIf"],[1,"ellipsis-child"],["matTooltip","Risk of dust attack","matTooltipPosition","right",4,"ngIf","ngIfElse"],["matTooltip","Risk of dust attack","matTooltipPosition","right"],["fxLayoutAlign","start center","color","warn",1,"small-icon"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["mat-cell",""],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["fxLayoutAlign","center center",1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","2",1,"mr-0"],["mat-footer-cell","","colspan","4"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-form-field",2),e.TgZ(3,"input",3),e.NdJ("keyup",function(){return a.applyFilter()})("ngModelChange",function(s){return a.selFilter=s}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(4,"div",4),e.TgZ(5,"div",5),e.YNc(6,Dm,1,0,"mat-progress-bar",6),e.TgZ(7,"table",7,8),e.ynx(9,9),e.YNc(10,Mm,2,0,"th",10),e.YNc(11,Em,5,5,"td",11),e.BQk(),e.ynx(12,12),e.YNc(13,Qm,2,0,"th",13),e.YNc(14,Ym,3,1,"td",14),e.BQk(),e.ynx(15,15),e.YNc(16,Bm,2,0,"th",10),e.YNc(17,Hm,2,4,"td",11),e.BQk(),e.ynx(18,16),e.YNc(19,Gm,2,0,"th",13),e.YNc(20,zm,4,3,"td",14),e.BQk(),e.ynx(21,17),e.YNc(22,Vm,2,0,"th",13),e.YNc(23,Wm,4,3,"td",14),e.BQk(),e.ynx(24,18),e.YNc(25,Xm,6,0,"th",19),e.YNc(26,$m,10,0,"td",20),e.BQk(),e.ynx(27,21),e.YNc(28,td,4,3,"td",22),e.BQk(),e.YNc(29,ad,1,3,"tr",23),e.YNc(30,id,1,0,"tr",24),e.YNc(31,od,1,0,"tr",25),e.qZA(),e._UZ(32,"mat-paginator",26),e.qZA(),e.qZA(),e.qZA(),e.YNc(33,sd,1,0,"ng-template",null,27,e.W1O)),2&t&&(e.xp6(3),e.Q6J("ngModel",a.selFilter),e.xp6(3),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",a.listUTXOs)("ngClass",e.VKq(11,ld,""!==a.errorMessage)),e.xp6(22),e.Q6J("matFooterRowDef",e.DdM(13,rd)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedColumns)("matHeaderRowDefSticky",a.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedColumns),e.xp6(1),e.Q6J("pageSize",a.pageSize)("pageSizeOptions",a.pageSizeOptions)("showFirstLastButtons",a.screenSize!==a.screenSizeEnum.XS))},directives:[d.xw,d.yH,d.Wh,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,m.O5,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,J.pW,r.ge,A.nU,r.ev,m.PC,L.Zl,W.gM,te.Hw,N.gD,N.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk],pipes:[m.JJ],styles:[".mat-column-label[_ngcontent-%COMP%]{padding-left:1rem;flex:1 1 15%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-tx_id[_ngcontent-%COMP%]{flex:1 1 15%}.mat-column-tx_id[_ngcontent-%COMP%] .ellipsis-child[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();function ud(n,i){1&n&&e._UZ(0,"mat-progress-bar",28)}function pd(n,i){1&n&&(e.TgZ(0,"th",29),e._uU(1," Date/Time "),e.qZA())}function md(n,i){if(1&n&&(e.TgZ(0,"td",30),e._uU(1),e.ALo(2,"date"),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Oqu(e.xi3(2,1,1e3*t.time_stamp,"dd/MMM/YYYY HH:mm"))}}function dd(n,i){1&n&&(e.TgZ(0,"th",29),e._uU(1," Label "),e.qZA())}const _d=function(n){return{"max-width":n}};function hd(n,i){if(1&n&&(e.TgZ(0,"td",31),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,_d,a.screenSize===a.screenSizeEnum.XS?"12rem":"25rem")),e.xp6(1),e.hij(" ",null==t?null:t.label," ")}}function gd(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1," Amount (Sats) "),e.qZA())}function fd(n,i){if(1&n&&(e.TgZ(0,"span",35),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.Oqu(e.lcZ(2,1,t.amount))}}function Cd(n,i){if(1&n&&(e.TgZ(0,"span",36),e._uU(1),e.ALo(2,"number"),e.qZA()),2&n){const t=e.oxw().$implicit;e.xp6(1),e.hij("(",e.lcZ(2,1,-1*t.amount),")")}}function xd(n,i){if(1&n&&(e.TgZ(0,"td",30),e.YNc(1,fd,3,3,"span",33),e.YNc(2,Cd,3,3,"span",34),e.qZA()),2&n){const t=i.$implicit;e.xp6(1),e.Q6J("ngIf",t.amount>0||0===t.amount),e.xp6(1),e.Q6J("ngIf",t.amount<0)}}function Td(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1," Fees (Sats) "),e.qZA())}function yd(n,i){if(1&n&&(e.TgZ(0,"td",30),e.TgZ(1,"span",35),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.total_fees))}}function Zd(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1," Block Height "),e.qZA())}function bd(n,i){if(1&n&&(e.TgZ(0,"td",30),e.TgZ(1,"span",35),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.Oqu(e.lcZ(3,1,t.block_height))}}function Ad(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1," Confirmations "),e.qZA())}function vd(n,i){if(1&n&&(e.TgZ(0,"td",30),e.TgZ(1,"span",35),e._uU(2),e.ALo(3,"number"),e.qZA(),e.qZA()),2&n){const t=i.$implicit;e.xp6(2),e.hij(" ",e.lcZ(3,1,null==t?null:t.num_confirmations)," ")}}function wd(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"th",37),e.TgZ(1,"div",38),e.TgZ(2,"mat-select",39),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",40),e.NdJ("click",function(){return e.CHM(t),e.oxw().onDownloadCSV()}),e._uU(5,"Download CSV"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function qd(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",41),e.TgZ(1,"button",42),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onTransactionClick(s)}),e._uU(2,"View Info"),e.qZA(),e.qZA()}}function Sd(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No transaction available."),e.qZA())}function Ld(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting transactions..."),e.qZA())}function kd(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function Fd(n,i){if(1&n&&(e.TgZ(0,"td",43),e.YNc(1,Sd,2,0,"p",44),e.YNc(2,Ld,2,0,"p",44),e.YNc(3,kd,2,1,"p",44),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!(null!=t.listTransactions&&t.listTransactions.data)||(null==t.listTransactions||null==t.listTransactions.data?null:t.listTransactions.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.listTransactions&&t.listTransactions.data)||(null==t.listTransactions||null==t.listTransactions.data?null:t.listTransactions.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.listTransactions&&t.listTransactions.data)||(null==t.listTransactions||null==t.listTransactions.data?null:t.listTransactions.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const Nd=function(n){return{"display-none":n}};function Ud(n,i){if(1&n&&e._UZ(0,"tr",45),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,Nd,(null==t.listTransactions?null:t.listTransactions.data)&&(null==t.listTransactions||null==t.listTransactions.data?null:t.listTransactions.data.length)>0))}}function Od(n,i){1&n&&e._UZ(0,"tr",46)}function Rd(n,i){1&n&&e._UZ(0,"tr",47)}const Id=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},Dd=function(){return["no_transaction"]};let Md=(()=>{class n{constructor(t,a,o,s){this.logger=t,this.commonService=a,this.store=o,this.datePipe=s,this.faHistory=x.qO$,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.flgSticky=!1,this.displayedColumns=["time_stamp","amount","actions"]):this.screenSize===l.cu.SM?(this.flgSticky=!1,this.displayedColumns=["time_stamp","amount","num_confirmations","total_fees","actions"]):this.screenSize===l.cu.MD?(this.flgSticky=!1,this.displayedColumns=["time_stamp","label","amount","total_fees","num_confirmations","actions"]):(this.flgSticky=!0,this.displayedColumns=["time_stamp","label","amount","total_fees","block_height","num_confirmations","actions"])}ngOnInit(){this.store.select(C.dx).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),t.transactions&&t.transactions.length>0&&(this.transactions=t.transactions,this.loadTransactionsTable(this.transactions)),this.logger.info(t)})}ngOnChanges(){this.transactions&&this.transactions.length>0&&this.loadTransactionsTable(this.transactions)}applyFilter(){this.listTransactions.filter=this.selFilter.trim().toLowerCase()}onTransactionClick(t){this.store.dispatch((0,v.qR)({payload:{data:{type:l.n_.INFORMATION,alertTitle:"Transaction Information",message:[[{key:"block_hash",value:t.block_hash,title:"Block Hash",width:100}],[{key:"tx_hash",value:t.tx_hash,title:"Transaction Hash",width:100}],[{key:"label",value:t.label,title:"Label",width:100,type:l.Gi.STRING}],[{key:"time_stamp",value:t.time_stamp,title:"Date/Time",width:50,type:l.Gi.DATE_TIME},{key:"block_height",value:t.block_height,title:"Block Height",width:50,type:l.Gi.NUMBER}],[{key:"num_confirmations",value:t.num_confirmations,title:"Number of Confirmations",width:34,type:l.Gi.NUMBER},{key:"total_fees",value:t.total_fees,title:"Total Fees (Sats)",width:33,type:l.Gi.NUMBER},{key:"amount",value:t.amount,title:"Amount (Sats)",width:33,type:l.Gi.NUMBER}],[{key:"dest_addresses",value:t.dest_addresses,title:"Destination Addresses",width:100,type:l.Gi.ARRAY}]],scrollable:t.dest_addresses&&t.dest_addresses.length>5}}}))}loadTransactionsTable(t){this.listTransactions=new r.by([...t]),this.listTransactions.sort=this.sort,this.listTransactions.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.listTransactions.filterPredicate=(a,o)=>((a.time_stamp?this.datePipe.transform(new Date(1e3*a.time_stamp),"dd/MMM/YYYY HH:mm").toLowerCase():"")+JSON.stringify(a).toLowerCase()).includes(o),this.listTransactions.paginator=this.paginator,this.applyFilter(),this.logger.info(this.listTransactions)}onDownloadCSV(){this.listTransactions.data&&this.listTransactions.data.length>0&&this.commonService.downloadFile(this.listTransactions.data,"Transactions")}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(M.v),e.Y36(w.yh),e.Y36(m.uU))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-on-chain-transaction-history"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Transactions")}]),e.TTD],decls:36,vars:14,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["fxLayout","column","fxLayout.gt-xs","row wrap","fxLayoutAlign.gt-xs","end stretch","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start end","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","time_stamp"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","label"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","total_fees"],["matColumnDef","block_height"],["matColumnDef","num_confirmations"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_transaction"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center",4,"ngIf"],["fxLayoutAlign","end center","class","red",4,"ngIf"],["fxLayoutAlign","end center"],["fxLayoutAlign","end center",1,"red"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-form-field",2),e.TgZ(3,"input",3),e.NdJ("keyup",function(){return a.applyFilter()})("ngModelChange",function(s){return a.selFilter=s}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(4,"div",4),e.TgZ(5,"div",5),e.YNc(6,ud,1,0,"mat-progress-bar",6),e.TgZ(7,"table",7,8),e.ynx(9,9),e.YNc(10,pd,2,0,"th",10),e.YNc(11,md,3,4,"td",11),e.BQk(),e.ynx(12,12),e.YNc(13,dd,2,0,"th",10),e.YNc(14,hd,2,4,"td",13),e.BQk(),e.ynx(15,14),e.YNc(16,gd,2,0,"th",15),e.YNc(17,xd,3,2,"td",11),e.BQk(),e.ynx(18,16),e.YNc(19,Td,2,0,"th",15),e.YNc(20,yd,4,3,"td",11),e.BQk(),e.ynx(21,17),e.YNc(22,Zd,2,0,"th",15),e.YNc(23,bd,4,3,"td",11),e.BQk(),e.ynx(24,18),e.YNc(25,Ad,2,0,"th",15),e.YNc(26,vd,4,3,"td",11),e.BQk(),e.ynx(27,19),e.YNc(28,wd,6,0,"th",20),e.YNc(29,qd,3,0,"td",21),e.BQk(),e.ynx(30,22),e.YNc(31,Fd,4,3,"td",23),e.BQk(),e.YNc(32,Ud,1,3,"tr",24),e.YNc(33,Od,1,0,"tr",25),e.YNc(34,Rd,1,0,"tr",26),e.qZA(),e._UZ(35,"mat-paginator",27),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(3),e.Q6J("ngModel",a.selFilter),e.xp6(3),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",a.listTransactions)("ngClass",e.VKq(11,Id,""!==a.errorMessage)),e.xp6(25),e.Q6J("matFooterRowDef",e.DdM(13,Dd)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedColumns)("matHeaderRowDefSticky",a.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedColumns),e.xp6(1),e.Q6J("pageSize",a.pageSize)("pageSizeOptions",a.pageSizeOptions)("showFirstLastButtons",a.screenSize!==a.screenSizeEnum.XS))},directives:[d.xw,d.yH,d.Wh,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,m.O5,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,J.pW,r.ge,A.nU,r.ev,m.PC,L.Zl,N.gD,N.$L,Q.ey,q.lW,r.yh,r.Q2,r.XQ,r.Gk],pipes:[m.uU,m.JJ],styles:[".mat-column-label[_ngcontent-%COMP%]{flex:1 1 20%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})();function Pd(n,i){if(1&n&&(e.TgZ(0,"span",5),e._uU(1,"UTXOs"),e.qZA()),2&n){const t=e.oxw();e.s9C("matBadge",t.numUtxos)}}function Jd(n,i){if(1&n&&(e.TgZ(0,"span",5),e._uU(1,"Transactions"),e.qZA()),2&n){const t=e.oxw();e.s9C("matBadge",t.numTransactions)}}function Ed(n,i){if(1&n&&(e.TgZ(0,"span",5),e._uU(1,"Dust UTXOs"),e.qZA()),2&n){const t=e.oxw();e.s9C("matBadge",t.numDustUtxos)}}let Qd=(()=>{class n{constructor(t,a){this.logger=t,this.store=a,this.selectedTableIndex=0,this.selectedTableIndexChange=new e.vpe,this.numTransactions=0,this.numUtxos=0,this.numDustUtxos=0,this.unSubs=[new p.x,new p.x,new p.x]}ngOnInit(){this.store.dispatch((0,y.mC)()),this.store.dispatch((0,y.Ly)()),this.store.select(C.T4).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{t.utxos&&t.utxos.length>0&&(this.numUtxos=t.utxos.length,this.numDustUtxos=t.utxos.filter(a=>+a.amount_sat<1e3).length),this.logger.info(t)}),this.store.select(C.dx).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{t.transactions&&t.transactions.length>0&&(this.numTransactions=t.transactions.length),this.logger.info(t)})}onSelectedIndexChanged(t){this.selectedTableIndexChange.emit(t)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-utxo-tables"]],inputs:{selectedTableIndex:"selectedTableIndex"},outputs:{selectedTableIndexChange:"selectedTableIndexChange"},decls:11,vars:3,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"bordered-box"],[3,"selectedIndex","selectedIndexChange"],["mat-tab-label",""],["fxLayout","row","fxFlex","100",3,"isDustUTXO"],["fxLayout","row","fxFlex","100"],["matBadgeOverlap","false",1,"tab-badge",3,"matBadge"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"mat-tab-group",1),e.NdJ("selectedIndexChange",function(s){return a.onSelectedIndexChanged(s)}),e.TgZ(2,"mat-tab"),e.YNc(3,Pd,2,1,"ng-template",2),e._UZ(4,"rtl-on-chain-utxos",3),e.qZA(),e.TgZ(5,"mat-tab"),e.YNc(6,Jd,2,1,"ng-template",2),e._UZ(7,"rtl-on-chain-transaction-history",4),e.qZA(),e.TgZ(8,"mat-tab"),e.YNc(9,Ed,2,1,"ng-template",2),e._UZ(10,"rtl-on-chain-utxos",3),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("selectedIndex",a.selectedTableIndex),e.xp6(3),e.Q6J("isDustUTXO",!1),e.xp6(6),e.Q6J("isDustUTXO",!0))},directives:[d.xw,d.yH,d.Wh,I.SP,I.uX,I.uD,cd,Md,_e.k],styles:[""]}),n})();const Yd=function(n,i){return[n,i]};function Bd(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",12),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().activeLink=null==s?null:s.link}),e._uU(1),e.qZA()}if(2&n){const t=i.$implicit,a=e.oxw();e.Q6J("active",a.activeLink===(null==t?null:t.link))("routerLink",e.WLB(3,Yd,null==t?null:t.link,null==a.selectedTable?null:a.selectedTable.name)),e.xp6(1),e.Oqu(null==t?null:t.name)}}let Hd=(()=>{class n{constructor(t,a,o){this.store=t,this.router=a,this.activatedRoute=o,this.selNode={},this.faExchangeAlt=x.Ssp,this.faChartPie=x.OS1,this.balances=[{title:"Total Balance",dataValue:0},{title:"Confirmed",dataValue:0},{title:"Unconfirmed",dataValue:0}],this.links=[{link:"receive",name:"Receive"},{link:"send",name:"Send"},{link:"sweep",name:"Sweep All"}],this.activeLink=this.links[0].link,this.tables=[{id:0,name:"utxos"},{id:1,name:"trans"},{id:2,name:"dustUtxos"}],this.selectedTable=this.tables[0],this.unSubs=[new p.x,new p.x,new p.x,new p.x]}ngOnInit(){const t=this.links.find(a=>this.router.url.includes(a.link));this.activeLink=t?t.link:this.links[0].link,this.selectedTable=this.tables.find(a=>a.name===this.router.url.substring(this.router.url.lastIndexOf("/")+1)),this.router.events.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(a=>a instanceof Z.Av)).subscribe(a=>{const o=this.links.find(s=>a.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link,this.selectedTable=this.tables.find(s=>s.name===a.urlAfterRedirects.substring(a.urlAfterRedirects.lastIndexOf("/")+1))}),this.store.select(C.$k).pipe((0,_.R)(this.unSubs[1])).subscribe(a=>{this.selNode=a}),this.store.select(C.qU).pipe((0,_.R)(this.unSubs[2])).subscribe(a=>{this.balances=[{title:"Total Balance",dataValue:a.blockchainBalance.total_balance||0},{title:"Confirmed",dataValue:a.blockchainBalance.confirmed_balance},{title:"Unconfirmed",dataValue:a.blockchainBalance.unconfirmed_balance}]})}onSelectedTableIndexChanged(t){this.selectedTable=this.tables.find(a=>a.id===t),this.router.navigate(["./",this.activeLink,this.selectedTable.name],{relativeTo:this.activatedRoute})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(w.yh),e.Y36(Z.F0),e.Y36(Z.gz))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-on-chain"]],decls:21,vars:5,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x","mb-4"],["fxLayout","column"],[3,"values"],["fxLayout","column",1,"padding-gap-x"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x-large"],["fxLayout","row","fxFlex","100",3,"selectedTableIndex","selectedTableIndexChange"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e._UZ(1,"fa-icon",1),e.TgZ(2,"span",2),e._uU(3,"On-chain Balance"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"mat-card"),e.TgZ(6,"mat-card-content",4),e._UZ(7,"rtl-currency-unit-converter",5),e.qZA(),e.qZA(),e.qZA(),e.TgZ(8,"div",0),e._UZ(9,"fa-icon",1),e.TgZ(10,"span",2),e._uU(11,"On-chain Transactions"),e.qZA(),e.qZA(),e.TgZ(12,"div",6),e.TgZ(13,"mat-card"),e.TgZ(14,"mat-card-content",4),e.TgZ(15,"nav",7),e.YNc(16,Bd,2,6,"div",8),e.qZA(),e.TgZ(17,"div",9),e._UZ(18,"router-outlet"),e.qZA(),e.TgZ(19,"div",10),e.TgZ(20,"rtl-utxo-tables",11),e.NdJ("selectedTableIndexChange",function(s){return a.onSelectedTableIndexChanged(s)}),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("icon",a.faChartPie),e.xp6(6),e.Q6J("values",a.balances),e.xp6(2),e.Q6J("icon",a.faExchangeAlt),e.xp6(7),e.Q6J("ngForOf",a.links),e.xp6(4),e.Q6J("selectedTableIndex",null==a.selectedTable?null:a.selectedTable.id))},directives:[d.xw,d.Wh,R.BN,b.a8,b.dn,de.D,I.BU,m.sg,d.yH,Z.lC,Qd,I.Nj,Z.rH],styles:[""]}),n})();var Gd=h(9122);function zd(n,i){if(1&n&&(e.TgZ(0,"mat-option",7),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t),e.xp6(1),e.hij(" ",t.addressTp," ")}}let Vd=(()=>{class n{constructor(t,a){this.store=t,this.lndEffects=a,this.addressTypes=l._t,this.selectedAddressType=l._t[0],this.newAddress=""}onGenerateAddress(){this.store.dispatch((0,y._E)({payload:this.selectedAddressType})),this.lndEffects.setNewAddress.pipe((0,G.q)(1)).subscribe(t=>{this.newAddress=t,setTimeout(()=>{this.store.dispatch((0,v.qR)({payload:{data:{address:this.newAddress,addressType:this.selectedAddressType.addressTp,component:Gd.n}}}))},0)})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(w.yh),e.Y36(K.l))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-on-chain-receive"]],decls:8,vars:2,consts:[["fxLayout","column"],["fxLayout","row","fxLayoutAlign","start end"],["fxFlex","48","fxFlex.gt-md","25","fxLayoutAlign","start end",1,"mr-2"],["placeholder","Address Type","name","address_type","tabindex","1",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],[1,"mt-2"],["mat-flat-button","","color","primary","tabindex","2",1,"top-minus-15px",3,"click"],[3,"value"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-form-field",2),e.TgZ(3,"mat-select",3),e.NdJ("ngModelChange",function(s){return a.selectedAddressType=s}),e.YNc(4,zd,2,2,"mat-option",4),e.qZA(),e.qZA(),e.TgZ(5,"div",5),e.TgZ(6,"button",6),e.NdJ("click",function(){return a.onGenerateAddress()}),e._uU(7,"Generate Address"),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(3),e.Q6J("ngModel",a.selectedAddressType),e.xp6(1),e.Q6J("ngForOf",a.addressTypes))},directives:[d.xw,d.Wh,f.KE,d.yH,N.gD,c.JJ,c.On,m.sg,q.lW,Q.ey],styles:[""]}),n})();var Wd=h(8012),He=h(8377);const Xd=["form"],$d=["formSweepAll"],jd=["stepper"];function Kd(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Bitcoin address is required."),e.qZA())}function e_(n,i){if(1&n&&(e.TgZ(0,"mat-error"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.amountError)}}function t_(n,i){if(1&n&&(e.TgZ(0,"mat-option",31),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t),e.xp6(1),e.Oqu(t)}}function n_(n,i){if(1&n&&(e.TgZ(0,"mat-option",31),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function a_(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Number of blocks is required."),e.qZA())}function i_(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-form-field",23),e.TgZ(1,"input",32,33),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw(2).transactionBlocks=o}),e.qZA(),e.YNc(3,a_,2,0,"mat-error",14),e.qZA()}if(2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngModel",t.transactionBlocks)("step",1)("min",0),e.xp6(2),e.Q6J("ngIf",!t.transactionBlocks)}}function o_(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Fees is required."),e.qZA())}function s_(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-form-field",23),e.TgZ(1,"input",34,35),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw(2).transactionFees=o}),e.qZA(),e.YNc(3,o_,2,0,"mat-error",14),e.qZA()}if(2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngModel",t.transactionFees)("step",1)("min",0),e.xp6(2),e.Q6J("ngIf",!t.transactionFees)}}function l_(n,i){if(1&n&&(e.TgZ(0,"span"),e._uU(1),e.qZA()),2&n){const t=e.oxw(3);e.xp6(1),e.Oqu(t.sendFundError)}}function r_(n,i){if(1&n&&(e.TgZ(0,"div",36),e._UZ(1,"fa-icon",37),e.YNc(2,l_,2,1,"span",14),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("icon",t.faExclamationTriangle),e.xp6(1),e.Q6J("ngIf",""!==t.sendFundError)}}function c_(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"form",9,10),e.NdJ("submit",function(){return e.CHM(t),e.oxw().onSendFunds()})("reset",function(){return e.CHM(t),e.oxw().resetData()}),e.TgZ(2,"mat-form-field",11),e.TgZ(3,"input",12,13),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw().transactionAddress=o}),e.qZA(),e.YNc(5,Kd,2,0,"mat-error",14),e.qZA(),e.TgZ(6,"mat-form-field",15),e.TgZ(7,"input",16,17),e.NdJ("ngModelChange",function(o){return e.CHM(t),e.oxw().transactionAmount=o}),e.qZA(),e.TgZ(9,"span",18),e._uU(10),e.qZA(),e.YNc(11,e_,2,1,"mat-error",14),e.qZA(),e.TgZ(12,"mat-form-field",19),e.TgZ(13,"mat-select",20),e.NdJ("selectionChange",function(o){return e.CHM(t),e.oxw().onAmountUnitChange(o)}),e.YNc(14,t_,2,2,"mat-option",21),e.qZA(),e.qZA(),e.TgZ(15,"div",22),e.TgZ(16,"mat-form-field",23),e.TgZ(17,"mat-select",24),e.NdJ("valueChange",function(o){return e.CHM(t),e.oxw().selTransType=o}),e.YNc(18,n_,2,2,"mat-option",21),e.qZA(),e.qZA(),e.YNc(19,i_,4,4,"mat-form-field",25),e.YNc(20,s_,4,4,"mat-form-field",25),e.qZA(),e._UZ(21,"div",26),e.YNc(22,r_,3,2,"div",27),e.TgZ(23,"div",28),e.TgZ(24,"button",29),e._uU(25,"Clear Fields"),e.qZA(),e.TgZ(26,"button",30),e._uU(27,"Send Funds"),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(3),e.Q6J("ngModel",t.transactionAddress),e.xp6(2),e.Q6J("ngIf",!t.transactionAddress),e.xp6(2),e.Q6J("ngModel",t.transactionAmount)("step",100)("min",0),e.xp6(3),e.hij(" ",t.selAmountUnit," "),e.xp6(1),e.Q6J("ngIf",!t.transactionAmount),e.xp6(2),e.Q6J("value",t.selAmountUnit),e.xp6(1),e.Q6J("ngForOf",t.amountUnits),e.xp6(3),e.Q6J("value",t.selTransType),e.xp6(1),e.Q6J("ngForOf",t.transTypes),e.xp6(1),e.Q6J("ngIf","1"===t.selTransType),e.xp6(1),e.Q6J("ngIf","2"===t.selTransType),e.xp6(2),e.Q6J("ngIf",""!==t.sendFundError)}}function u_(n,i){if(1&n&&e._uU(0),2&n){const t=e.oxw(3);e.Oqu(t.passwordFormLabel)}}function p_(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Password is required."),e.qZA())}function m_(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"mat-step",42),e.TgZ(1,"form",61),e.YNc(2,u_,1,1,"ng-template",55),e.TgZ(3,"div",0),e.TgZ(4,"mat-form-field",1),e._UZ(5,"input",62),e.YNc(6,p_,2,0,"mat-error",14),e.qZA(),e.qZA(),e.TgZ(7,"div",63),e.TgZ(8,"button",64),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).onAuthenticate()}),e._uU(9,"Confirm"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw(2);e.Q6J("stepControl",t.passwordFormGroup)("editable",t.flgEditable),e.xp6(1),e.Q6J("formGroup",t.passwordFormGroup),e.xp6(5),e.Q6J("ngIf",null==t.passwordFormGroup.controls.password.errors?null:t.passwordFormGroup.controls.password.errors.required)}}function d_(n,i){if(1&n&&e._uU(0),2&n){const t=e.oxw(2);e.Oqu(t.sendFundFormLabel)}}function __(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Bitcoin address is required."),e.qZA())}function h_(n,i){if(1&n&&(e.TgZ(0,"mat-option",31),e._uU(1),e.qZA()),2&n){const t=i.$implicit;e.Q6J("value",t.id),e.xp6(1),e.hij(" ",t.name," ")}}function g_(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Number of blocks is required."),e.qZA())}function f_(n,i){if(1&n&&(e.TgZ(0,"mat-form-field",65),e._UZ(1,"input",66),e.YNc(2,g_,2,0,"mat-error",14),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("step",1)("min",0),e.xp6(1),e.Q6J("ngIf",null==t.sendFundFormGroup.controls.transactionBlocks.errors?null:t.sendFundFormGroup.controls.transactionBlocks.errors.required)}}function C_(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Fees is required."),e.qZA())}function x_(n,i){if(1&n&&(e.TgZ(0,"mat-form-field",65),e._UZ(1,"input",67),e.YNc(2,C_,2,0,"mat-error",14),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("step",1)("min",0),e.xp6(1),e.Q6J("ngIf",null==t.sendFundFormGroup.controls.transactionFees.errors?null:t.sendFundFormGroup.controls.transactionFees.errors.required)}}function T_(n,i){if(1&n&&e._uU(0),2&n){const t=e.oxw(2);e.Oqu(t.confirmFormLabel)}}function y_(n,i){if(1&n&&(e.TgZ(0,"span"),e._uU(1),e.qZA()),2&n){const t=e.oxw(3);e.xp6(1),e.Oqu(t.sendFundError)}}function Z_(n,i){if(1&n&&(e.TgZ(0,"div",36),e._UZ(1,"fa-icon",37),e.YNc(2,y_,2,1,"span",14),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("icon",t.faExclamationTriangle),e.xp6(1),e.Q6J("ngIf",""!==t.sendFundError)}}function b_(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",38),e.TgZ(1,"mat-vertical-stepper",39,40),e.NdJ("selectionChange",function(o){return e.CHM(t),e.oxw().stepSelectionChanged(o)}),e.YNc(3,m_,10,4,"mat-step",41),e.TgZ(4,"mat-step",42),e.TgZ(5,"form",43),e.YNc(6,d_,1,1,"ng-template",44),e.TgZ(7,"div",45),e.TgZ(8,"mat-form-field",46),e._UZ(9,"input",47),e.YNc(10,__,2,0,"mat-error",14),e.qZA(),e.TgZ(11,"mat-form-field",48),e.TgZ(12,"mat-select",49),e.YNc(13,h_,2,2,"mat-option",21),e.qZA(),e.qZA(),e.YNc(14,f_,3,3,"mat-form-field",50),e.YNc(15,x_,3,3,"mat-form-field",50),e.qZA(),e.TgZ(16,"div",51),e.TgZ(17,"button",52),e._uU(18,"Next"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(19,"mat-step",53),e.TgZ(20,"form",54),e.YNc(21,T_,1,1,"ng-template",55),e.TgZ(22,"div",38),e.TgZ(23,"div",56),e._UZ(24,"fa-icon",57),e.TgZ(25,"span"),e._uU(26,"You are about to sweep all funds from RTL. Are you sure?"),e.qZA(),e.qZA(),e.YNc(27,Z_,3,2,"div",27),e.TgZ(28,"div",51),e.TgZ(29,"button",58),e.NdJ("click",function(){return e.CHM(t),e.oxw().onSendFunds()}),e._uU(30,"Sweep All Funds"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(31,"div",59),e.TgZ(32,"button",60),e._uU(33),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(1),e.Q6J("linear",!0),e.xp6(2),e.Q6J("ngIf",!t.appConfig.sso.rtlSSO),e.xp6(1),e.Q6J("stepControl",t.sendFundFormGroup)("editable",t.flgEditable),e.xp6(1),e.Q6J("formGroup",t.sendFundFormGroup),e.xp6(5),e.Q6J("ngIf",null==t.sendFundFormGroup.controls.transactionAddress.errors?null:t.sendFundFormGroup.controls.transactionAddress.errors.required),e.xp6(3),e.Q6J("ngForOf",t.transTypes),e.xp6(1),e.Q6J("ngIf","1"===t.sendFundFormGroup.controls.selTransType.value),e.xp6(1),e.Q6J("ngIf","2"===t.sendFundFormGroup.controls.selTransType.value),e.xp6(4),e.Q6J("stepControl",t.confirmFormGroup),e.xp6(1),e.Q6J("formGroup",t.confirmFormGroup),e.xp6(4),e.Q6J("icon",t.faExclamationTriangle),e.xp6(3),e.Q6J("ngIf",""!==t.sendFundError),e.xp6(5),e.Q6J("mat-dialog-close",!1),e.xp6(1),e.Oqu(t.flgValidated?"Close":"Cancel")}}let A_=(()=>{class n{constructor(t,a,o,s,u,g,U,T,O,Hh){this.dialogRef=t,this.data=a,this.logger=o,this.store=s,this.rtlEffects=u,this.commonService=g,this.decimalPipe=U,this.snackBar=T,this.actions=O,this.formBuilder=Hh,this.faExclamationTriangle=x.eHv,this.sweepAll=!1,this.selNode={},this.addressTypes=[],this.selectedAddress={},this.blockchainBalance={},this.information={},this.newAddress="",this.transactionAddress="",this.transactionAmount=null,this.transactionFees=null,this.transactionBlocks=null,this.transTypes=[{id:"1",name:"Target Confirmation Blocks"},{id:"2",name:"Fee"}],this.selTransType="1",this.fiatConversion=!1,this.amountUnits=l.uA,this.selAmountUnit=l.uA[0],this.currConvertorRate={},this.unitConversionValue=0,this.currencyUnitFormats=l.Xz,this.sendFundError="",this.flgValidated=!1,this.flgEditable=!0,this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds",this.confirmFormLabel="Confirm sweep",this.amountError="Amount is Required.",this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x]}ngOnInit(){this.sweepAll=this.data.sweepAll,this.passwordFormGroup=this.formBuilder.group({hiddenPassword:["",[c.kI.required]],password:["",[c.kI.required]]}),this.sendFundFormGroup=this.formBuilder.group({transactionAddress:["",c.kI.required],transactionBlocks:[null],transactionFees:[null],selTransType:["1",c.kI.required]}),this.confirmFormGroup=this.formBuilder.group({}),this.sendFundFormGroup.controls.selTransType.valueChanges.pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{"1"===t?(this.sendFundFormGroup.controls.transactionBlocks.setValidators([c.kI.required]),this.sendFundFormGroup.controls.transactionBlocks.setValue(null),this.sendFundFormGroup.controls.transactionFees.setValidators(null),this.sendFundFormGroup.controls.transactionFees.setValue(null)):(this.sendFundFormGroup.controls.transactionBlocks.setValidators(null),this.sendFundFormGroup.controls.transactionBlocks.setValue(null),this.sendFundFormGroup.controls.transactionFees.setValidators([c.kI.required]),this.sendFundFormGroup.controls.transactionFees.setValue(null))}),this.store.select(He.Yj).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.appConfig=t}),this.store.select(He.dT).pipe((0,_.R)(this.unSubs[2])).subscribe(t=>{this.fiatConversion=t.settings.fiatConversion,this.amountUnits=t.settings.currencyUnits,this.logger.info(t)}),this.actions.pipe((0,_.R)(this.unSubs[3]),(0,E.h)(t=>t.type===l.uR.UPDATE_API_CALL_STATUS_LND||t.type===l.uR.SET_CHANNEL_TRANSACTION_RES_LND)).subscribe(t=>{t.type===l.uR.SET_CHANNEL_TRANSACTION_RES_LND&&(this.store.dispatch((0,v.jW)({payload:this.sweepAll?"All Funds Sent Successfully!":"Fund Sent Successfully!"})),this.dialogRef.close()),t.type===l.uR.UPDATE_API_CALL_STATUS_LND&&t.payload.status===l.Bn.ERROR&&"SetChannelTransaction"===t.payload.action&&(this.sendFundError=t.payload.message)})}onAuthenticate(){if(!this.passwordFormGroup.controls.password.value)return!0;this.flgValidated=!1,this.store.dispatch((0,v.QO)({payload:Wd(this.passwordFormGroup.controls.password.value).toString()})),this.rtlEffects.isAuthorizedRes.pipe((0,G.q)(1)).subscribe(t=>{"ERROR"!==t?(this.passwordFormGroup.controls.hiddenPassword.setValue(this.passwordFormGroup.controls.password.value),this.stepper.next()):(this.dialogRef.close(),this.snackBar.open("Unauthorized User. Logging out from RTL."))})}onSendFunds(){if(this.invalidValues)return!0;this.sendFundError="";const t={amount:this.transactionAmount?this.transactionAmount:0,sendAll:this.sweepAll};this.sweepAll?(t.address=this.sendFundFormGroup.controls.transactionAddress.value,"1"===this.sendFundFormGroup.controls.selTransType.value&&(t.blocks=this.sendFundFormGroup.controls.transactionBlocks.value),"2"===this.sendFundFormGroup.controls.selTransType.value&&(t.fees=this.sendFundFormGroup.controls.transactionFees.value)):(t.address=this.transactionAddress,"1"===this.selTransType&&(t.blocks=this.transactionBlocks),"2"===this.selTransType&&(t.fees=this.transactionFees)),this.transactionAmount&&this.selAmountUnit!==l.NT.SATS?this.commonService.convertCurrency(this.transactionAmount,this.selAmountUnit===this.amountUnits[2]?l.NT.OTHER:this.selAmountUnit,l.NT.SATS,this.amountUnits[2],this.fiatConversion).pipe((0,_.R)(this.unSubs[4])).subscribe({next:a=>{this.selAmountUnit=l.NT.SATS,t.amount=+this.decimalPipe.transform(a[this.amountUnits[0]],this.currencyUnitFormats[this.amountUnits[0]]).replace(/,/g,""),this.store.dispatch((0,y.Wi)({payload:t}))},error:a=>{this.transactionAmount=null,this.selAmountUnit=l.NT.SATS,this.amountError="Conversion Error: "+a}}):this.store.dispatch((0,y.Wi)({payload:t}))}get invalidValues(){return this.sweepAll?!this.sendFundFormGroup.controls.transactionAddress.value||""===this.sendFundFormGroup.controls.transactionAddress.value||"1"===this.sendFundFormGroup.controls.selTransType.value&&(!this.sendFundFormGroup.controls.transactionBlocks.value||this.sendFundFormGroup.controls.transactionBlocks.value<=0)||"2"===this.sendFundFormGroup.controls.selTransType.value&&(!this.sendFundFormGroup.controls.transactionFees.value||this.sendFundFormGroup.controls.transactionFees.value<=0):!this.transactionAddress||""===this.transactionAddress||!this.transactionAmount||this.transactionAmount<=0||"1"===this.selTransType&&(!this.transactionBlocks||this.transactionBlocks<=0)||"2"===this.selTransType&&(!this.transactionFees||this.transactionFees<=0)}resetData(){this.sendFundError="",this.selTransType="1",this.transactionAddress="",this.transactionBlocks=null,this.transactionFees=null,this.sweepAll||(this.transactionAmount=null)}stepSelectionChanged(t){switch(this.sendFundError="",t.selectedIndex){case 0:default:this.passwordFormLabel="Authenticate with your RTL password",this.sendFundFormLabel="Sweep funds";break;case 1:this.passwordFormLabel="User authenticated successfully",this.sendFundFormLabel="Sweep funds";break;case 2:this.passwordFormLabel="User authenticated successfully",this.sendFundFormLabel="Sweep funds | Address: "+this.sendFundFormGroup.controls.transactionAddress.value+" | "+this.transTypes[this.sendFundFormGroup.controls.selTransType.value-1].name+("2"===this.sendFundFormGroup.controls.selTransType.value?" (Sats/vByte)":"")+": "+("1"===this.sendFundFormGroup.controls.selTransType.value?this.sendFundFormGroup.controls.transactionBlocks.value:this.sendFundFormGroup.controls.transactionFees.value)}t.selectedIndex{this.selAmountUnit=t.value,a.transactionAmount=+a.decimalPipe.transform(g[s],a.currencyUnitFormats[s]).replace(/,/g,"")},error:g=>{a.transactionAmount=null,this.amountError="Conversion Error: "+g,this.selAmountUnit=o,s=o}})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(P.so),e.Y36(P.WI),e.Y36(F.mQ),e.Y36(w.yh),e.Y36(ie.V),e.Y36(M.v),e.Y36(m.JJ),e.Y36(ee.ux),e.Y36(z.eX),e.Y36(c.qu))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-on-chain-send-modal"]],viewQuery:function(t,a){if(1&t&&(e.Gf(Xd,7),e.Gf($d,5),e.Gf(jd,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.form=o.first),e.iGM(o=e.CRH())&&(a.formSweepAll=o.first),e.iGM(o=e.CRH())&&(a.stepper=o.first)}},decls:12,vars:4,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","default","","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100","class","overflow-x-hidden",3,"submit","reset",4,"ngIf","ngIfElse"],["sweepAllBlock",""],["fxLayout","row wrap","fxLayoutAlign","space-between start","fxFlex","100",1,"overflow-x-hidden",3,"submit","reset"],["form","ngForm"],["fxFlex.gt-sm","55"],["autoFocus","","matInput","","placeholder","Bitcoin Address","tabindex","1","name","address","required","",3,"ngModel","ngModelChange"],["address","ngModel"],[4,"ngIf"],["fxFlex.gt-sm","30"],["matInput","","placeholder","Amount","name","amt","type","number","tabindex","2","required","",3,"ngModel","step","min","ngModelChange"],["amnt","ngModel"],["matSuffix",""],["fxFlex.gt-sm","10","fxLayoutAlign","start end"],["tabindex","3","required","","name","amountUnit",3,"value","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxFlex.gt-sm","60","fxLayout.gt-sm","row wrap","fxLayoutAlign","start stretch","fxLayoutAlign.gt-sm","space-between start"],["fxFlex","48"],["tabindex","4",3,"value","valueChange"],["fxFlex","48",4,"ngIf"],["fxLayout","column","fxFlex","100","fxFlex.gt-sm","40","fxLayout.gt-sm","row wrap","fxLayoutAlign","start stretch","fxLayoutAlign.gt-sm","space-between start"],["fxFlex","100","class","alert alert-danger mt-1",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-button","","color","primary","tabindex","7","type","reset",1,"mr-1"],["mat-button","","color","primary","type","submit","tabindex","8"],[3,"value"],["matInput","","placeholder","Number of Blocks","type","number","name","blcks","required","","tabindex","5",3,"ngModel","step","min","ngModelChange"],["blocks","ngModel"],["matInput","","placeholder","Fees (Sats/vByte)","type","number","name","chainFees","required","","tabindex","6",3,"ngModel","step","min","ngModelChange"],["fees","ngModel"],["fxFlex","100",1,"alert","alert-danger","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl","editable"],["fxLayout","column",1,"my-1","pr-1",3,"formGroup"],["matStepLabel","","disabled","true"],["fxLayout","column","fxFlex","98","fxLayout.gt-sm","row wrap","fxLayoutAlign","start stretch","fxLayoutAlign.gt-sm","space-between start"],["fxFlex.gt-sm","45"],["matInput","","formControlName","transactionAddress","placeholder","Bitcoin Address","tabindex","4","name","address","required",""],["fxFlex.gt-sm","25"],["formControlName","selTransType","tabindex","5"],["fxFlex.gt-sm","25","fxLayoutAlign","start end",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-button","","color","primary","tabindex","8","type","button","matStepperNext",""],[3,"stepControl"],["fxLayout","column","fxLayoutAlign","start",1,"my-1","pr-1",3,"formGroup"],["matStepLabel",""],["fxFlex","100",1,"w-100","alert","alert-warn"],[1,"mt-1","mr-1","alert-icon",3,"icon"],["mat-button","","color","primary","tabindex","9","type","button",3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxLayout","column","fxLayoutAlign","space-between",1,"my-1","pr-1",3,"formGroup"],["autoFocus","","matInput","","placeholder","Password","type","password","tabindex","1","formControlName","password","required",""],["fxLayout","row",1,"mt-2"],["mat-button","","color","primary","tabindex","3","type","button",3,"click"],["fxFlex.gt-sm","25","fxLayoutAlign","start end"],["matInput","","formControlName","transactionBlocks","placeholder","Number of Blocks","type","number","name","blcks","required","","tabindex","6",3,"step","min"],["matInput","","formControlName","transactionFees","placeholder","Fees (Sats/vByte)","type","number","name","chainFees","required","","tabindex","7",3,"step","min"]],template:function(t,a){if(1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"mat-card-header",2),e.TgZ(3,"div",3),e.TgZ(4,"span",4),e._uU(5),e.qZA(),e.qZA(),e.TgZ(6,"button",5),e._uU(7,"X"),e.qZA(),e.qZA(),e.TgZ(8,"mat-card-content",6),e.YNc(9,c_,28,14,"form",7),e.qZA(),e.qZA(),e.qZA(),e.YNc(10,b_,34,15,"ng-template",null,8,e.W1O)),2&t){const o=e.MAs(11);e.xp6(5),e.Oqu(a.sweepAll?"Sweep All Funds":"Send Funds"),e.xp6(1),e.Q6J("mat-dialog-close",!1),e.xp6(3),e.Q6J("ngIf",!a.sweepAll)("ngIfElse",o)}},directives:[d.xw,d.yH,b.dk,d.Wh,q.lW,P.ZT,b.dn,m.O5,c._Y,c.JL,c.F,f.KE,D.Nt,c.Fj,V.h,c.Q7,c.JJ,c.On,c.wV,c.qQ,$.q,f.R9,N.gD,m.sg,f.TO,Q.ey,R.BN,B.Vq,B.C0,c.sg,B.VY,c.u,B.Ic],styles:[""]}),n})(),Ge=(()=>{class n{constructor(t,a){this.store=t,this.activatedRoute=a,this.sweepAll=!1,this.unSubs=[new p.x,new p.x]}ngOnInit(){this.activatedRoute.data.pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.sweepAll=t.sweepAll})}openSendFundsModal(){this.store.dispatch((0,v.qR)({payload:{data:{sweepAll:this.sweepAll,component:A_}}}))}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(w.yh),e.Y36(Z.gz))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-on-chain-send"]],decls:4,vars:1,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"button",2),e.NdJ("click",function(){return a.openSendFundsModal()}),e._uU(3),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(3),e.Oqu(a.sweepAll?"Sweep All":"Send Funds"))},directives:[d.xw,d.yH,d.Wh,q.lW],styles:[""]}),n})();function v_(n,i){1&n&&e._UZ(0,"mat-progress-bar",26)}function w_(n,i){if(1&n&&e._UZ(0,"rtl-node-info",27),2&n){const t=e.oxw(3);e.Q6J("information",t.information)("showColorFieldSeparately",!0)}}function q_(n,i){if(1&n&&e._UZ(0,"rtl-channel-status-info",28),2&n){const t=e.oxw(3);e.Q6J("channelsStatus",t.channelsStatus)("errorMessage",t.errorMessages[3]+" "+t.errorMessages[4])}}function S_(n,i){if(1&n&&e._UZ(0,"rtl-fee-info",29),2&n){const t=e.oxw(3);e.Q6J("fees",t.fees)("errorMessage",t.errorMessages[2])}}const ze=function(n){return{"dashboard-card-content":!0,"error-border":n}};function L_(n,i){if(1&n&&(e.TgZ(0,"mat-grid-tile",13),e.TgZ(1,"div",14),e.TgZ(2,"div",15),e.TgZ(3,"div",16),e._UZ(4,"fa-icon",17),e.TgZ(5,"span"),e._uU(6),e.qZA(),e.qZA(),e.qZA(),e.TgZ(7,"div",18),e.TgZ(8,"mat-card",19),e.TgZ(9,"mat-card-content",20),e.YNc(10,v_,1,0,"mat-progress-bar",21),e.TgZ(11,"div",22),e.YNc(12,w_,1,2,"rtl-node-info",23),e.YNc(13,q_,1,2,"rtl-channel-status-info",24),e.YNc(14,S_,1,2,"rtl-fee-info",25),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&n){const t=i.$implicit,a=e.oxw(2);e.Q6J("colspan",t.cols)("rowspan",t.rows),e.xp6(4),e.Q6J("icon",t.icon),e.xp6(2),e.Oqu(t.title),e.xp6(3),e.Q6J("ngClass",e.VKq(10,ze,"node"===t.id&&a.apiCallStatusNodeInfo.status===a.apiCallStatusEnum.ERROR||"status"===t.id&&(a.apiCallStatusChannels.status===a.apiCallStatusEnum.ERROR||a.apiCallStatusPendingChannels.status===a.apiCallStatusEnum.ERROR)||"fee"===t.id&&a.apiCallStatusFees.status===a.apiCallStatusEnum.ERROR)),e.xp6(1),e.Q6J("ngIf","node"===t.id&&a.apiCallStatusNodeInfo.status===a.apiCallStatusEnum.INITIATED||"status"===t.id&&(a.apiCallStatusChannels.status===a.apiCallStatusEnum.INITIATED||a.apiCallStatusPendingChannels.status===a.apiCallStatusEnum.INITIATED)||"fee"===t.id&&a.apiCallStatusFees.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngSwitch",t.id),e.xp6(1),e.Q6J("ngSwitchCase","node"),e.xp6(1),e.Q6J("ngSwitchCase","status"),e.xp6(1),e.Q6J("ngSwitchCase","fee")}}function k_(n,i){if(1&n&&(e.TgZ(0,"mat-grid-list",11),e.YNc(1,L_,15,12,"mat-grid-tile",12),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngForOf",t.nodeCards)}}function F_(n,i){1&n&&e._UZ(0,"mat-progress-bar",26)}function N_(n,i){1&n&&e.GkF(0)}function U_(n,i){if(1&n&&(e.TgZ(0,"div",33),e.YNc(1,N_,1,0,"ng-container",34),e.qZA()),2&n){const t=e.oxw(2),a=e.MAs(9),o=e.MAs(11);e.xp6(1),e.Q6J("ngTemplateOutlet",t.apiCallStatusNetwork.status===t.apiCallStatusEnum.ERROR?a:o)}}function O_(n,i){1&n&&e.GkF(0)}function R_(n,i){if(1&n&&(e.TgZ(0,"div",33),e.YNc(1,O_,1,0,"ng-container",34),e.qZA()),2&n){const t=e.oxw(2),a=e.MAs(9),o=e.MAs(13);e.xp6(1),e.Q6J("ngTemplateOutlet",t.apiCallStatusNetwork.status===t.apiCallStatusEnum.ERROR?a:o)}}function I_(n,i){1&n&&e.GkF(0)}function D_(n,i){if(1&n&&(e.TgZ(0,"div",33),e.YNc(1,I_,1,0,"ng-container",34),e.qZA()),2&n){const t=e.oxw(2),a=e.MAs(9),o=e.MAs(15);e.xp6(1),e.Q6J("ngTemplateOutlet",t.apiCallStatusNetwork.status===t.apiCallStatusEnum.ERROR?a:o)}}function M_(n,i){if(1&n&&(e.TgZ(0,"mat-grid-tile",30),e.TgZ(1,"mat-card",31),e.TgZ(2,"mat-card-content",20),e.YNc(3,F_,1,0,"mat-progress-bar",21),e.TgZ(4,"div",22),e.YNc(5,U_,2,1,"div",32),e.YNc(6,R_,2,1,"div",32),e.YNc(7,D_,2,1,"div",32),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("colspan",t.cols)("rowspan",t.rows),e.xp6(2),e.Q6J("ngClass",e.VKq(8,ze,a.apiCallStatusNetwork.status===a.apiCallStatusEnum.ERROR)),e.xp6(1),e.Q6J("ngIf",a.apiCallStatusNetwork.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngSwitch",t.id),e.xp6(1),e.Q6J("ngSwitchCase","general"),e.xp6(1),e.Q6J("ngSwitchCase","channels"),e.xp6(1),e.Q6J("ngSwitchCase","degrees")}}function P_(n,i){if(1&n&&(e.TgZ(0,"div",35),e.TgZ(1,"p"),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Oqu(t.errorMessages[1])}}function J_(n,i){if(1&n&&(e.TgZ(0,"div",36),e.TgZ(1,"div"),e.TgZ(2,"h4",37),e._uU(3,"Network Capacity"),e.qZA(),e.TgZ(4,"div",38),e._uU(5),e.ALo(6,"number"),e.qZA(),e.qZA(),e.TgZ(7,"div"),e.TgZ(8,"h4",37),e._uU(9,"Number of Nodes"),e.qZA(),e.TgZ(10,"div",38),e._uU(11),e.ALo(12,"number"),e.qZA(),e.qZA(),e.TgZ(13,"div"),e.TgZ(14,"h4",37),e._uU(15,"Number of Channels"),e.qZA(),e.TgZ(16,"span",38),e._uU(17),e.ALo(18,"number"),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(5),e.hij("",e.lcZ(6,3,t.networkInfo.total_network_capacity)," Sats"),e.xp6(6),e.Oqu(e.lcZ(12,5,t.networkInfo.num_nodes)),e.xp6(6),e.Oqu(e.lcZ(18,7,t.networkInfo.num_channels))}}function E_(n,i){if(1&n&&(e.TgZ(0,"div",36),e.TgZ(1,"div"),e.TgZ(2,"h4",37),e._uU(3,"Max Channel Size"),e.qZA(),e.TgZ(4,"div",38),e._uU(5),e.ALo(6,"number"),e.qZA(),e.qZA(),e.TgZ(7,"div"),e.TgZ(8,"h4",37),e._uU(9,"Avg Channel Size"),e.qZA(),e.TgZ(10,"div",38),e._uU(11),e.ALo(12,"number"),e.qZA(),e.qZA(),e.TgZ(13,"div"),e.TgZ(14,"h4",37),e._uU(15,"Min Channel Size"),e.qZA(),e.TgZ(16,"span",38),e._uU(17),e.ALo(18,"number"),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(5),e.Oqu(e.lcZ(6,3,t.networkInfo.max_channel_size)),e.xp6(6),e.Oqu(e.lcZ(12,5,t.networkInfo.avg_channel_size)),e.xp6(6),e.Oqu(e.lcZ(18,7,t.networkInfo.min_channel_size))}}function Q_(n,i){if(1&n&&(e.TgZ(0,"div",36),e.TgZ(1,"div"),e.TgZ(2,"h4",37),e._uU(3,"Max Out Degree"),e.qZA(),e.TgZ(4,"div",38),e._uU(5),e.ALo(6,"number"),e.qZA(),e.qZA(),e.TgZ(7,"div"),e.TgZ(8,"h4",37),e._uU(9,"Avg Out Degree"),e.qZA(),e.TgZ(10,"div",38),e._uU(11),e.ALo(12,"number"),e.qZA(),e.qZA(),e.TgZ(13,"div",39),e._UZ(14,"h4",37),e._UZ(15,"span",38),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(5),e.Oqu(e.lcZ(6,2,t.networkInfo.max_out_degree)),e.xp6(6),e.Oqu(e.xi3(12,4,t.networkInfo.avg_out_degree,"1.0-2"))}}const Y_=function(n){return{"mt-1":n}};let B_=(()=>{class n{constructor(t,a,o){this.logger=t,this.commonService=a,this.store=o,this.faProjectDiagram=x.o4t,this.faBolt=x.BDt,this.faServer=x.xf3,this.faNetworkWired=x.kXW,this.selNode={},this.information={},this.channelsStatus={},this.networkInfo={},this.networkCards=[],this.nodeCards=[],this.screenSize="",this.screenSizeEnum=l.cu,this.userPersonaEnum=l.ol,this.errorMessages=["","","","",""],this.apiCallStatusNodeInfo=null,this.apiCallStatusNetwork=null,this.apiCallStatusFees=null,this.apiCallStatusChannels=null,this.apiCallStatusPendingChannels=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===l.cu.XS?(this.networkCards=[{id:"general",cols:3,rows:1},{id:"channels",cols:3,rows:1},{id:"degrees",cols:3,rows:1}],this.nodeCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:3,rows:1},{id:"status",icon:this.faNetworkWired,title:"Channels",cols:3,rows:1},{id:"fee",icon:this.faBolt,title:"Routing Fee",cols:3,rows:1}]):(this.networkCards=[{id:"general",cols:1,rows:1},{id:"channels",cols:1,rows:1},{id:"degrees",cols:1,rows:1}],this.nodeCards=[{id:"node",icon:this.faServer,title:"Node Information",cols:1,rows:1},{id:"status",icon:this.faNetworkWired,title:"Channels",cols:1,rows:1},{id:"fee",icon:this.faBolt,title:"Routing Fee",cols:1,rows:1}])}ngOnInit(){this.store.select(C.bx).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.errorMessages[0]="",this.apiCallStatusNodeInfo=t.apiCallStatus,this.apiCallStatusNodeInfo.status===l.Bn.ERROR&&(this.errorMessages[0]="object"==typeof this.apiCallStatusNodeInfo.message?JSON.stringify(this.apiCallStatusNodeInfo.message):this.apiCallStatusNodeInfo.message),this.selNode=t.nodeSettings,this.information=t.information}),this.store.select(C.N7).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.errorMessages[1]="",this.apiCallStatusNetwork=t.apiCallStatus,this.apiCallStatusNetwork.status===l.Bn.ERROR&&(this.errorMessages[1]="object"==typeof this.apiCallStatusNetwork.message?JSON.stringify(this.apiCallStatusNetwork.message):this.apiCallStatusNetwork.message),this.networkInfo=t.networkInfo}),this.store.select(C.JG).pipe((0,_.R)(this.unSubs[2])).subscribe(t=>{this.errorMessages[2]="",this.apiCallStatusFees=t.apiCallStatus,this.apiCallStatusFees.status===l.Bn.ERROR&&(this.errorMessages[2]="object"==typeof this.apiCallStatusFees.message?JSON.stringify(this.apiCallStatusFees.message):this.apiCallStatusFees.message),this.fees=t.fees}),this.store.select(C.ni).pipe((0,_.R)(this.unSubs[3])).subscribe(t=>{this.errorMessages[4]="",this.apiCallStatusPendingChannels=t.apiCallStatus,this.apiCallStatusPendingChannels.status===l.Bn.ERROR&&(this.errorMessages[4]="object"==typeof this.apiCallStatusPendingChannels.message?JSON.stringify(this.apiCallStatusPendingChannels.message):this.apiCallStatusPendingChannels.message),this.channelsStatus.pending={num_channels:t.pendingChannelsSummary.open.num_channels,capacity:t.pendingChannelsSummary.open.limbo_balance},this.channelsStatus.closing={num_channels:t.pendingChannelsSummary.closing.num_channels+t.pendingChannelsSummary.force_closing.num_channels+t.pendingChannelsSummary.waiting_close.num_channels,capacity:t.pendingChannelsSummary.total_limbo_balance}}),this.store.select(C.ZW).pipe((0,_.R)(this.unSubs[4])).subscribe(t=>{this.errorMessages[3]="",this.apiCallStatusChannels=t.apiCallStatus,this.apiCallStatusChannels.status===l.Bn.ERROR&&(this.errorMessages[3]="object"==typeof this.apiCallStatusChannels.message?JSON.stringify(this.apiCallStatusChannels.message):this.apiCallStatusChannels.message),this.channelsStatus.active=t.channelsSummary.active,this.channelsStatus.inactive=t.channelsSummary.inactive,this.logger.info(t)})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(M.v),e.Y36(w.yh))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-network-info"]],decls:16,vars:6,consts:[["fxLayout","column","fxLayoutAlign","space-between stretch",1,"mb-4"],["cols","3","rowHeight","330px",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start end",1,"page-title-container",3,"ngClass"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["cols","3","rowHeight","250px"],["fxLayout","row",3,"colspan","rowspan",4,"ngFor","ngForOf"],["errorBlock",""],["generalBlock",""],["channelsBlock",""],["degreesBlock",""],["cols","3","rowHeight","330px"],["class","node-grid-tile",3,"colspan","rowspan",4,"ngFor","ngForOf"],[1,"node-grid-tile",3,"colspan","rowspan"],["fxLayout","column","fxLayoutAlign","stretch start","fxFlex","100",1,"h-100"],["fxLayout","row","fxLayoutAlign","start start",1,"w-100"],["fxLayout","row","fxLayoutAlign","start start",1,"page-title-container"],[1,"mr-1",3,"icon"],["fxLayout","column","fxLayoutAlign","stretch center","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","center stretch",1,"w-100","h-93"],["fxLayout","row","fxFlex","95","fxLayoutAlign","start stretch",1,"dashboard-card","w-96","h-93"],["fxLayout","column","fxFlex","100",3,"ngClass"],["mode","indeterminate",4,"ngIf"],["fxLayout","column","fxFlex","100",3,"ngSwitch"],["fxFlex","100",3,"information","showColorFieldSeparately",4,"ngSwitchCase"],["fxFlex","100",3,"channelsStatus","errorMessage",4,"ngSwitchCase"],["fxFlex","100",3,"fees","errorMessage",4,"ngSwitchCase"],["mode","indeterminate"],["fxFlex","100",3,"information","showColorFieldSeparately"],["fxFlex","100",3,"channelsStatus","errorMessage"],["fxFlex","100",3,"fees","errorMessage"],["fxLayout","row",3,"colspan","rowspan"],["fxLayout","row","fxFlex","95","fxLayoutAlign","start stretch",1,"dashboard-card","h-93"],["fxFlex","100",4,"ngSwitchCase"],["fxFlex","100"],[4,"ngTemplateOutlet"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between",1,"p-2"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between"],[1,"dashboard-info-title"],[1,"overflow-wrap","dashboard-info-value"],["fxFlex","20"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.YNc(1,k_,2,1,"mat-grid-list",1),e.TgZ(2,"div",2),e._UZ(3,"fa-icon",3),e.TgZ(4,"span",4),e._uU(5,"Network"),e.qZA(),e.qZA(),e.TgZ(6,"mat-grid-list",5),e.YNc(7,M_,8,10,"mat-grid-tile",6),e.qZA(),e.qZA(),e.YNc(8,P_,3,1,"ng-template",null,7,e.W1O),e.YNc(10,J_,19,9,"ng-template",null,8,e.W1O),e.YNc(12,E_,19,9,"ng-template",null,9,e.W1O),e.YNc(14,Q_,16,7,"ng-template",null,10,e.W1O)),2&t&&(e.xp6(1),e.Q6J("ngIf",a.selNode.userPersona!==a.userPersonaEnum.OPERATOR),e.xp6(1),e.Q6J("ngClass",e.VKq(4,Y_,a.screenSize!==a.screenSizeEnum.XS)),e.xp6(1),e.Q6J("icon",a.faProjectDiagram),e.xp6(4),e.Q6J("ngForOf",a.networkCards))},directives:[d.xw,d.Wh,m.O5,m.mk,L.oO,R.BN,se.Il,m.sg,se.DX,d.yH,b.a8,b.dn,m.RF,m.n9,J.pW,Ae,we,ve,m.tP],pipes:[m.JJ],styles:[""]}),n})();function H_(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",8),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().activeLink=s.link}),e._uU(1),e.qZA()}if(2&n){const t=i.$implicit,a=e.oxw();e.s9C("routerLink",t.link),e.Q6J("active",a.activeLink===t.link),e.xp6(1),e.Oqu(t.name)}}let G_=(()=>{class n{constructor(t){this.router=t,this.faDownload=x.q7m,this.links=[{link:"bckup",name:"Backup"},{link:"restore",name:"Restore"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x]}ngOnInit(){const t=this.links.find(a=>this.router.url.includes(a.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(a=>a instanceof Z.Av)).subscribe(a=>{const o=this.links.find(s=>a.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-backup"]],decls:11,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e._UZ(1,"fa-icon",1),e.TgZ(2,"span",2),e._uU(3,"Channels Backup"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"mat-card"),e.TgZ(6,"mat-card-content",4),e.TgZ(7,"nav",5),e.YNc(8,H_,2,3,"div",6),e.qZA(),e.TgZ(9,"div",7),e._UZ(10,"router-outlet"),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("icon",a.faDownload),e.xp6(7),e.Q6J("ngForOf",a.links))},directives:[d.xw,d.Wh,R.BN,b.a8,b.dn,I.BU,m.sg,d.yH,Z.lC,I.Nj,Z.rH],styles:[""]}),n})();function z_(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",23),e.TgZ(1,"h4",24),e._uU(2),e.qZA(),e.TgZ(3,"div",25),e.TgZ(4,"button",26),e.NdJ("click",function(){return e.CHM(t),e.oxw().onRestoreChannels({})}),e._uU(5,"Restore All"),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.xp6(2),e.hij("Restore folder location: ",t.selNode.channelBackupPath,"/restore")}}function V_(n,i){if(1&n&&(e.TgZ(0,"div",27),e.TgZ(1,"h4",24),e._uU(2),e.qZA(),e.TgZ(3,"h4",28),e._uU(4,"All channel backup file not found! To perform channel restoration, channel backup file/s must be placed at the above location."),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.hij("Restore folder location: ",t.selNode.channelBackupPath,"/restore")}}function W_(n,i){if(1&n&&(e.TgZ(0,"div",27),e.TgZ(1,"h4",24),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.hij("Restore folder location: ",t.selNode.channelBackupPath,"/restore")}}function X_(n,i){1&n&&e._UZ(0,"mat-progress-bar",29)}function $_(n,i){1&n&&(e.TgZ(0,"th",30),e._uU(1," Channel Point "),e.qZA())}const j_=function(n){return{"max-width":n}};function K_(n,i){if(1&n&&(e.TgZ(0,"td",31),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,j_,a.screenSize===a.screenSizeEnum.XS?"10rem":"45rem")),e.xp6(1),e.Oqu(null==t?null:t.channel_point)}}function eh(n,i){1&n&&(e.TgZ(0,"th",32),e.TgZ(1,"span",33),e._uU(2,"Actions"),e.qZA(),e.qZA())}function th(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",34),e.TgZ(1,"span",33),e.TgZ(2,"button",35),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onRestoreChannels(s)}),e._uU(3,"Restore"),e.qZA(),e.qZA(),e.qZA()}}function nh(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No singular channel backups available."),e.qZA())}function ah(n,i){if(1&n&&(e.TgZ(0,"td",36),e.YNc(1,nh,2,0,"p",37),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",!t.channels||!t.channels.data||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)}}const ih=function(n){return{"display-none":n}};function oh(n,i){if(1&n&&e._UZ(0,"tr",38),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,ih,t.channels&&t.channels.data&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function sh(n,i){1&n&&e._UZ(0,"tr",39)}function lh(n,i){1&n&&e._UZ(0,"tr",40)}const rh=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},ch=function(){return["no_channel"]};let uh=(()=>{class n{constructor(t,a,o,s){this.logger=t,this.store=a,this.lndEffects=o,this.commonService=s,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.selNode={},this.displayedColumns=["channel_point","actions"],this.channelsData=[],this.allRestoreExists=!1,this.flgLoading=[!0],this.flgSticky=!1,this.selFilter="",this.screenSize="",this.screenSizeEnum=l.cu,this.unSubs=[new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.store.dispatch((0,y.tb)()),this.store.select(C.$k).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.lndEffects.setRestoreChannelList.pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.allRestoreExists=t.all_restore_exists,this.channelsData=t.files,this.channelsData.length>0&&this.loadRestoreTable(this.channelsData),("error"!==this.flgLoading[0]||t&&t.files)&&(this.flgLoading[0]=!1),this.logger.info(t)})}ngAfterViewInit(){this.channelsData&&this.channelsData.length>0&&this.loadRestoreTable(this.channelsData)}onRestoreChannels(t){this.store.dispatch((0,y.vV)({payload:{channelPoint:t.channel_point?t.channel_point:"ALL"}}))}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}loadRestoreTable(t){this.channels=new r.by([...t]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.channels.filterPredicate=(a,o)=>JSON.stringify(a).toLowerCase().includes(o),this.channels.paginator=this.paginator,this.applyFilter()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(K.l),e.Y36(M.v))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-restore-table"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Channels")}])],decls:24,vars:17,consts:[["fxLayout","column",1,"mt-2"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxLayout","column","fxLayoutAlign","space-between start","fxLayout.gt-md","row wrap",4,"ngIf"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container","mt-2"],["fxFlex","70"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","channel_point"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pr-3",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["fxFlex","100"],["fxLayout","row",1,"mt-2"],["mat-flat-button","","color","primary","tabindex","1",3,"click"],["fxLayout","column","fxLayoutAlign","space-between start","fxLayout.gt-md","row wrap"],["fxFlex","100",1,"mt-1"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","",1,"pr-3"],["fxLayoutAlign","end center"],["mat-cell",""],["mat-stroked-button","","color","primary","type","button","tabindex","1",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.YNc(1,z_,6,1,"div",1),e.YNc(2,V_,5,1,"div",2),e.YNc(3,W_,3,1,"div",2),e.TgZ(4,"div",3),e._UZ(5,"div",4),e.TgZ(6,"mat-form-field",5),e.TgZ(7,"input",6),e.NdJ("keyup",function(){return a.applyFilter()})("ngModelChange",function(s){return a.selFilter=s}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(8,"div",7),e.YNc(9,X_,1,0,"mat-progress-bar",8),e.TgZ(10,"table",9,10),e.ynx(12,11),e.YNc(13,$_,2,0,"th",12),e.YNc(14,K_,2,4,"td",13),e.BQk(),e.ynx(15,14),e.YNc(16,eh,3,0,"th",15),e.YNc(17,th,4,0,"td",16),e.BQk(),e.ynx(18,17),e.YNc(19,ah,2,1,"td",18),e.BQk(),e.YNc(20,oh,1,3,"tr",19),e.YNc(21,sh,1,0,"tr",20),e.YNc(22,lh,1,0,"tr",21),e.qZA(),e.qZA(),e._UZ(23,"mat-paginator",22),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngIf",a.allRestoreExists),e.xp6(1),e.Q6J("ngIf",!a.allRestoreExists&&(!a.channels||(null==a.channels||null==a.channels.data?null:a.channels.data.length)<=0)),e.xp6(1),e.Q6J("ngIf",!a.allRestoreExists&&a.channels&&(null==a.channels||null==a.channels.data?null:a.channels.data.length)&&(null==a.channels||null==a.channels.data?null:a.channels.data.length)>0),e.xp6(4),e.Q6J("ngModel",a.selFilter),e.xp6(2),e.Q6J("ngIf",!0===a.flgLoading[0]),e.xp6(1),e.Q6J("dataSource",a.channels)("ngClass",e.VKq(14,rh,"error"===a.flgLoading[0])),e.xp6(10),e.Q6J("matFooterRowDef",e.DdM(16,ch)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedColumns)("matHeaderRowDefSticky",a.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedColumns),e.xp6(1),e.Q6J("pageSize",a.pageSize)("pageSizeOptions",a.pageSizeOptions)("showFirstLastButtons",a.screenSize!==a.screenSizeEnum.XS))},directives:[d.xw,m.O5,d.Wh,d.yH,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,q.lW,J.pW,r.ge,A.nU,r.ev,m.PC,L.Zl,r.yh,r.Q2,r.XQ,r.Gk],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();function ph(n,i){1&n&&e._UZ(0,"mat-progress-bar",31)}function mh(n,i){1&n&&(e.TgZ(0,"th",32),e._uU(1," Channel Point "),e.qZA())}const dh=function(n){return{"max-width":n}};function _h(n,i){if(1&n&&(e.TgZ(0,"td",33),e._uU(1),e.qZA()),2&n){const t=i.$implicit,a=e.oxw();e.Q6J("ngStyle",e.VKq(2,dh,a.screenSize===a.screenSizeEnum.XS?"10rem":"28rem")),e.xp6(1),e.Oqu(null==t?null:t.channel_point)}}function hh(n,i){1&n&&(e.TgZ(0,"th",34),e.TgZ(1,"span",35),e._uU(2,"Actions"),e.qZA(),e.qZA())}function gh(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"td",36),e.TgZ(1,"div",37),e.TgZ(2,"mat-select",38),e._UZ(3,"mat-select-trigger"),e.TgZ(4,"mat-option",39),e.NdJ("click",function(o){const u=e.CHM(t).$implicit;return e.oxw().onChannelClick(u,o)}),e._uU(5,"View Info"),e.qZA(),e.TgZ(6,"mat-option",39),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onBackupChannels(s)}),e._uU(7,"Backup"),e.qZA(),e.TgZ(8,"mat-option",39),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onDownloadBackup(s)}),e._uU(9,"Download Backup"),e.qZA(),e.TgZ(10,"mat-option",39),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().onVerifyChannels(s)}),e._uU(11,"Verify"),e.qZA(),e.qZA(),e.qZA(),e.qZA()}}function fh(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"No channel available."),e.qZA())}function Ch(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Getting channels..."),e.qZA())}function xh(n,i){if(1&n&&(e.TgZ(0,"p"),e._uU(1),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.errorMessage)}}function Th(n,i){if(1&n&&(e.TgZ(0,"td",40),e.YNc(1,fh,2,0,"p",41),e.YNc(2,Ch,2,0,"p",41),e.YNc(3,xh,2,1,"p",41),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.COMPLETED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("ngIf",(!(null!=t.channels&&t.channels.data)||(null==t.channels||null==t.channels.data?null:t.channels.data.length)<1)&&t.apiCallStatus.status===t.apiCallStatusEnum.ERROR)}}const yh=function(n){return{"display-none":n}};function Zh(n,i){if(1&n&&e._UZ(0,"tr",42),2&n){const t=e.oxw();e.Q6J("ngClass",e.VKq(1,yh,(null==t.channels?null:t.channels.data)&&(null==t.channels||null==t.channels.data?null:t.channels.data.length)>0))}}function bh(n,i){1&n&&e._UZ(0,"tr",43)}function Ah(n,i){1&n&&e._UZ(0,"tr",44)}const vh=function(n){return{"overflow-auto error-border":n,"overflow-auto":!0}},wh=function(){return["no_channel"]};let qh=(()=>{class n{constructor(t,a,o,s){this.logger=t,this.store=a,this.actions=o,this.commonService=s,this.faInfoCircle=x.sqG,this.faExclamationTriangle=x.eHv,this.faArchive=x.N2j,this.pageSize=l.IV,this.pageSizeOptions=l.TJ,this.selNode={},this.displayedColumns=["channel_point","actions"],this.channelsData=[],this.flgSticky=!1,this.screenSize="",this.screenSizeEnum=l.cu,this.errorMessage="",this.selFilter="",this.apiCallStatus=null,this.apiCallStatusEnum=l.Bn,this.unSubs=[new p.x,new p.x,new p.x,new p.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.store.select(C.$k).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.selNode=t}),this.store.select(C.ZW).pipe((0,_.R)(this.unSubs[1])).subscribe(t=>{this.errorMessage="",this.apiCallStatus=t.apiCallStatus,this.apiCallStatus.status===l.Bn.ERROR&&(this.errorMessage="object"==typeof this.apiCallStatus.message?JSON.stringify(this.apiCallStatus.message):this.apiCallStatus.message),this.channelsData=t.channels,this.channelsData.length>0&&this.loadBackupTable(this.channelsData),this.logger.info(t)}),this.actions.pipe((0,_.R)(this.unSubs[2]),(0,E.h)(t=>t.type===l.uR.SET_CHANNELS_LND||t.type===l.pg.SHOW_FILE)).subscribe(t=>{t.type===l.uR.SET_CHANNELS_LND&&(this.selectedChannel=null),t.type===l.pg.SHOW_FILE&&(this.commonService.downloadFile(t.payload,"channel-"+(this.selectedChannel.channel_point?this.selectedChannel.channel_point:"all"),".bak",".bak"),this.selectedChannel=null)})}ngAfterViewInit(){this.channelsData.length>0&&this.loadBackupTable(this.channelsData)}onBackupChannels(t){this.store.dispatch((0,y.Vv)({payload:{uiMessage:l.m6.BACKUP_CHANNEL,channelPoint:t.channel_point?t.channel_point:"ALL",showMessage:""}}))}onVerifyChannels(t){this.store.dispatch((0,y.Cp)({payload:{channelPoint:t.channel_point?t.channel_point:"ALL"}}))}onDownloadBackup(t){this.selectedChannel=t,this.store.dispatch((0,v.dc)({payload:{channelPoint:t.channel_point?t.channel_point:"all"}}))}onChannelClick(t,a){this.store.dispatch((0,v.qR)({payload:{data:{channel:t,showCopy:!1,component:ge}}}))}applyFilter(){this.channels.filter=this.selFilter.trim().toLowerCase()}loadBackupTable(t){this.channels=new r.by(t?[...t]:[]),this.channels.sort=this.sort,this.channels.sortingDataAccessor=(a,o)=>a[o]&&isNaN(a[o])?a[o].toLocaleLowerCase():a[o]?+a[o]:null,this.channels.paginator=this.paginator,this.channels.filterPredicate=(a,o)=>((a.active?"active":"inactive")+(a.channel_point?a.channel_point.toLowerCase():"")+(a.chan_id?a.chan_id.toLowerCase():"")+(a.remote_pubkey?a.remote_pubkey.toLowerCase():"")+(a.remote_alias?a.remote_alias.toLowerCase():"")+(a.capacity?a.capacity:"")+(a.local_balance?a.local_balance:"")+(a.remote_balance?a.remote_balance:"")+(a.total_satoshis_sent?a.total_satoshis_sent:"")+(a.total_satoshis_received?a.total_satoshis_received:"")+(a.commit_fee?a.commit_fee:"")+(a.private?"private":"public")).includes(o),this.applyFilter()}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.mQ),e.Y36(w.yh),e.Y36(z.eX),e.Y36(M.v))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-channel-backup-table"]],viewQuery:function(t,a){if(1&t&&(e.Gf(A.YE,5),e.Gf(S.NW,5)),2&t){let o;e.iGM(o=e.CRH())&&(a.sort=o.first),e.iGM(o=e.CRH())&&(a.paginator=o.first)}},features:[e._Bn([{provide:S.ye,useValue:(0,l.pt)("Channels")}])],decls:42,vars:18,consts:[["fxLayout","column"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","100",1,"alert","alert-info"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","1",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","2",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch",1,"page-sub-title-container","mt-2"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","column","fxLayoutAlign","start center","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","fxFlex","100","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","channel_point"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",3,"ngStyle",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","pr-3",4,"matHeaderCellDef"],["mat-cell","","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_channel"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"ngStyle"],["mat-header-cell","",1,"pr-3"],["fxLayoutAlign","end center"],["mat-cell","","fxLayoutAlign","end center"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"div",2),e._UZ(3,"fa-icon",3),e.TgZ(4,"span"),e._uU(5,"Save your backup files in a redundant location."),e.qZA(),e.qZA(),e.TgZ(6,"div",4),e._UZ(7,"fa-icon",3),e.TgZ(8,"span"),e.TgZ(9,"strong"),e._uU(10,"Backup Folder Location: "),e.qZA(),e._uU(11),e.qZA(),e.qZA(),e.TgZ(12,"div",5),e.TgZ(13,"button",6),e.NdJ("click",function(){return a.onVerifyChannels({})}),e._uU(14,"Verify All"),e.qZA(),e.TgZ(15,"button",7),e.NdJ("click",function(){return a.onBackupChannels({})}),e._uU(16,"Backup All"),e.qZA(),e.TgZ(17,"button",8),e.NdJ("click",function(){return a.onDownloadBackup({})}),e._uU(18,"Download Backup"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(19,"div",9),e.TgZ(20,"div",10),e._UZ(21,"fa-icon",11),e.TgZ(22,"span",12),e._uU(23,"Backups"),e.qZA(),e.qZA(),e.TgZ(24,"mat-form-field",13),e.TgZ(25,"input",14),e.NdJ("keyup",function(){return a.applyFilter()})("ngModelChange",function(s){return a.selFilter=s}),e.qZA(),e.qZA(),e.qZA(),e.TgZ(26,"div",15),e.YNc(27,ph,1,0,"mat-progress-bar",16),e.TgZ(28,"table",17,18),e.ynx(30,19),e.YNc(31,mh,2,0,"th",20),e.YNc(32,_h,2,4,"td",21),e.BQk(),e.ynx(33,22),e.YNc(34,hh,3,0,"th",23),e.YNc(35,gh,12,0,"td",24),e.BQk(),e.ynx(36,25),e.YNc(37,Th,4,3,"td",26),e.BQk(),e.YNc(38,Zh,1,3,"tr",27),e.YNc(39,bh,1,0,"tr",28),e.YNc(40,Ah,1,0,"tr",29),e.qZA(),e.qZA(),e._UZ(41,"mat-paginator",30),e.qZA()),2&t&&(e.xp6(3),e.Q6J("icon",a.faExclamationTriangle),e.xp6(4),e.Q6J("icon",a.faInfoCircle),e.xp6(4),e.hij("",a.selNode.channelBackupPath,"."),e.xp6(10),e.Q6J("icon",a.faArchive),e.xp6(4),e.Q6J("ngModel",a.selFilter),e.xp6(2),e.Q6J("ngIf",a.apiCallStatus.status===a.apiCallStatusEnum.INITIATED),e.xp6(1),e.Q6J("dataSource",a.channels)("ngClass",e.VKq(15,vh,""!==a.errorMessage)),e.xp6(10),e.Q6J("matFooterRowDef",e.DdM(17,wh)),e.xp6(1),e.Q6J("matHeaderRowDef",a.displayedColumns)("matHeaderRowDefSticky",a.flgSticky),e.xp6(1),e.Q6J("matRowDefColumns",a.displayedColumns),e.xp6(1),e.Q6J("pageSize",a.pageSize)("pageSizeOptions",a.pageSizeOptions)("showFirstLastButtons",a.screenSize!==a.screenSizeEnum.XS))},directives:[d.xw,d.Wh,d.yH,R.BN,q.lW,f.KE,D.Nt,c.Fj,c.JJ,c.On,Y.$V,m.O5,r.BZ,A.YE,m.mk,L.oO,r.w1,r.fO,r.Dz,r.mD,r.Ke,r.as,r.nj,S.NW,J.pW,r.ge,A.nU,r.ev,m.PC,L.Zl,N.gD,N.$L,Q.ey,r.yh,r.Q2,r.XQ,r.Gk],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();function Sh(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",8),e.NdJ("click",function(){const s=e.CHM(t).$implicit;return e.oxw().activeLink=s.link}),e._uU(1),e.qZA()}if(2&n){const t=i.$implicit,a=e.oxw();e.s9C("routerLink",t.link),e.Q6J("active",a.activeLink===t.link),e.xp6(1),e.Oqu(t.name)}}let Lh=(()=>{class n{constructor(t){this.router=t,this.faUserCheck=x.hkK,this.links=[{link:"sign",name:"Sign"},{link:"verify",name:"Verify"}],this.activeLink=this.links[0].link,this.unSubs=[new p.x,new p.x]}ngOnInit(){const t=this.links.find(a=>this.router.url.includes(a.link));this.activeLink=t?t.link:this.links[0].link,this.router.events.pipe((0,_.R)(this.unSubs[0]),(0,E.h)(a=>a instanceof Z.Av)).subscribe(a=>{const o=this.links.find(s=>a.urlAfterRedirects.includes(s.link));this.activeLink=o?o.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(Z.F0))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-sign-verify-message"]],decls:11,vars:2,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e._UZ(1,"fa-icon",1),e.TgZ(2,"span",2),e._uU(3,"Sign/Verify Message"),e.qZA(),e.qZA(),e.TgZ(4,"div",3),e.TgZ(5,"mat-card"),e.TgZ(6,"mat-card-content",4),e.TgZ(7,"nav",5),e.YNc(8,Sh,2,3,"div",6),e.qZA(),e.TgZ(9,"div",7),e._UZ(10,"router-outlet"),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("icon",a.faUserCheck),e.xp6(7),e.Q6J("ngForOf",a.links))},directives:[d.xw,d.Wh,R.BN,b.a8,b.dn,I.BU,m.sg,d.yH,Z.lC,I.Nj,Z.rH],styles:[""]}),n})();function kh(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Message is required."),e.qZA())}let Fh=(()=>{class n{constructor(t,a,o){this.dataService=t,this.snackBar=a,this.logger=o,this.message="",this.signedMessage="",this.signature="",this.unSubs=[new p.x,new p.x]}onSign(){if(!this.message||""===this.message)return!0;this.dataService.signMessage(this.message).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.signedMessage=this.message,this.signature=t.signature})}onMessageChange(){this.signedMessage!==this.message&&(this.signature="")}onCopyField(t){this.snackBar.open("Signature copied."),this.logger.info("Copied Text: "+t)}resetData(){this.message="",this.signature="",this.signedMessage=""}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(j.D),e.Y36(ee.ux),e.Y36(F.mQ))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-sign"]],decls:20,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["form","ngForm"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start end"],["autoFocus","","matInput","","rows","1","placeholder","Message to sign","required","","tabindex","1","name","message",3,"ngModel","ngModelChange","keyup"],[4,"ngIf"],["fxLayout","row",1,"my-1"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3","type","submit",3,"click"],[1,"my-2",3,"inset"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center",1,"bordered-box","read-only","h-4","padding-gap"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","4","rtlClipboard","","type","button",3,"payload","copied"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"form",1,2),e.TgZ(3,"mat-form-field",3),e.TgZ(4,"textarea",4),e.NdJ("ngModelChange",function(s){return a.message=s})("keyup",function(){return a.onMessageChange()}),e.qZA(),e.YNc(5,kh,2,0,"mat-error",5),e.qZA(),e.TgZ(6,"div",6),e.TgZ(7,"button",7),e.NdJ("click",function(){return a.resetData()}),e._uU(8,"Clear Field"),e.qZA(),e.TgZ(9,"button",8),e.NdJ("click",function(){return a.onSign()}),e._uU(10,"Sign"),e.qZA(),e.qZA(),e._UZ(11,"mat-divider",9),e.TgZ(12,"div",10),e.TgZ(13,"p"),e._uU(14,"Generated Signature"),e.qZA(),e.qZA(),e.TgZ(15,"div",11),e._uU(16),e.qZA(),e.TgZ(17,"div",12),e.TgZ(18,"button",13),e.NdJ("copied",function(s){return a.onCopyField(s)}),e._uU(19,"Copy Signature"),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&t&&(e.xp6(4),e.Q6J("ngModel",a.message),e.xp6(1),e.Q6J("ngIf",!a.message),e.xp6(6),e.Q6J("inset",!0),e.xp6(5),e.Oqu(a.signature),e.xp6(2),e.Q6J("payload",a.signature))},directives:[d.xw,d.yH,d.Wh,c._Y,c.JL,c.F,f.KE,D.Nt,c.Fj,V.h,c.Q7,c.JJ,c.On,m.O5,q.lW,X.d,oe.y,f.TO],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();function Nh(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Message is required."),e.qZA())}function Uh(n,i){1&n&&(e.TgZ(0,"mat-error"),e._uU(1,"Signature is required."),e.qZA())}function Oh(n,i){1&n&&(e.TgZ(0,"p",13),e.TgZ(1,"mat-icon",14),e._uU(2,"close"),e.qZA(),e._uU(3,"Verification failed, please double check message and signature"),e.qZA())}function Rh(n,i){1&n&&(e.TgZ(0,"p"),e._uU(1,"Pubkey Used"),e.qZA())}function Ih(n,i){if(1&n&&(e.TgZ(0,"div",20),e.TgZ(1,"p"),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw(2);e.xp6(2),e.Oqu(null==t.verifyRes?null:t.verifyRes.pubkey)}}function Dh(n,i){if(1&n){const t=e.EpF();e.TgZ(0,"div",21),e.TgZ(1,"button",22),e.NdJ("copied",function(o){return e.CHM(t),e.oxw(2).onCopyField(o)}),e._uU(2,"Copy Pubkey"),e.qZA(),e.qZA()}if(2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("payload",null==t.verifyRes?null:t.verifyRes.pubkey)}}function Mh(n,i){if(1&n&&(e.TgZ(0,"div",15),e._UZ(1,"mat-divider",16),e.TgZ(2,"div",17),e.YNc(3,Rh,2,0,"p",5),e.qZA(),e.YNc(4,Ih,3,1,"div",18),e.YNc(5,Dh,3,1,"div",19),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("inset",!0),e.xp6(2),e.Q6J("ngIf",t.verifyRes.valid),e.xp6(1),e.Q6J("ngIf",t.verifyRes.valid),e.xp6(1),e.Q6J("ngIf",t.verifyRes.valid)}}let Ph=(()=>{class n{constructor(t,a,o){this.dataService=t,this.snackBar=a,this.logger=o,this.message="",this.verifiedMessage="",this.signature="",this.verifiedSignature="",this.showVerifyStatus=!1,this.verifyRes={pubkey:"",valid:null},this.unSubs=[new p.x,new p.x]}onVerify(){if(!this.message||""===this.message||!this.signature||""===this.signature)return!0;this.dataService.verifyMessage(this.message,this.signature).pipe((0,_.R)(this.unSubs[0])).subscribe(t=>{this.verifyRes=t,this.showVerifyStatus=!0,this.verifiedMessage=this.message,this.verifiedSignature=this.signature})}onChange(){(this.verifiedMessage!==this.message||this.verifiedSignature!==this.signature)&&(this.showVerifyStatus=!1,this.verifyRes={pubkey:"",valid:null})}resetData(){this.message="",this.signature="",this.verifyRes=null,this.showVerifyStatus=!1}onCopyField(t){this.snackBar.open("Pubkey copied."),this.logger.info("Copied Text: "+t)}ngOnDestroy(){this.unSubs.forEach(t=>{t.next(null),t.complete()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(j.D),e.Y36(ee.ux),e.Y36(F.mQ))},n.\u0275cmp=e.Xpm({type:n,selectors:[["rtl-verify"]],decls:17,vars:6,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","column","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],["form","ngForm"],["fxFlex","100","fxLayoutAlign","start end"],["autoFocus","","matInput","","rows","1","placeholder","Message to verify","required","","tabindex","1","name","message",3,"ngModel","ngModelChange","keyup"],[4,"ngIf"],["matInput","","placeholder","Signature provided","name","signature","tabindex","2","required","",3,"ngModel","ngModelChange","keyup"],["sign","ngModel"],["fxFlex","100","class","color-warn","fxLayoutAlign","start center",4,"ngIf"],["fxLayout","row",1,"my-1"],["mat-stroked-button","","color","primary","tabindex","3","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","4","type","submit",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap",4,"ngIf"],["fxFlex","100","fxLayoutAlign","start center",1,"color-warn"],[1,"mr-1","icon-small"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayout.gt-sm","row wrap"],[1,"my-2",3,"inset"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start","class","bordered-box read-only h-4 padding-gap",4,"ngIf"],["fxLayout","row","class","mt-2",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",1,"bordered-box","read-only","h-4","padding-gap"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","5","rtlClipboard","","type","button",3,"payload","copied"]],template:function(t,a){1&t&&(e.TgZ(0,"div",0),e.TgZ(1,"form",1,2),e.TgZ(3,"mat-form-field",3),e.TgZ(4,"textarea",4),e.NdJ("ngModelChange",function(s){return a.message=s})("keyup",function(){return a.onChange()}),e.qZA(),e.YNc(5,Nh,2,0,"mat-error",5),e.qZA(),e.TgZ(6,"mat-form-field",3),e.TgZ(7,"input",6,7),e.NdJ("ngModelChange",function(s){return a.signature=s})("keyup",function(){return a.onChange()}),e.qZA(),e.YNc(9,Uh,2,0,"mat-error",5),e.qZA(),e.YNc(10,Oh,4,0,"p",8),e.TgZ(11,"div",9),e.TgZ(12,"button",10),e.NdJ("click",function(){return a.resetData()}),e._uU(13,"Clear Fields"),e.qZA(),e.TgZ(14,"button",11),e.NdJ("click",function(){return a.onVerify()}),e._uU(15,"Verify"),e.qZA(),e.qZA(),e.YNc(16,Mh,6,4,"div",12),e.qZA(),e.qZA()),2&t&&(e.xp6(4),e.Q6J("ngModel",a.message),e.xp6(1),e.Q6J("ngIf",!a.message),e.xp6(2),e.Q6J("ngModel",a.signature),e.xp6(2),e.Q6J("ngIf",!a.signature),e.xp6(1),e.Q6J("ngIf",a.showVerifyStatus&&!a.verifyRes.valid),e.xp6(6),e.Q6J("ngIf",a.showVerifyStatus&&a.verifyRes.valid))},directives:[d.xw,d.yH,d.Wh,c._Y,c.JL,c.F,f.KE,D.Nt,c.Fj,V.h,c.Q7,c.JJ,c.On,m.O5,q.lW,f.TO,te.Hw,X.d,oe.y],styles:[".mat-column-channel_point[_ngcontent-%COMP%]{flex:1 1 25%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]}),n})();var Jh=h(9442),k=h(1643);const Qh=Z.Bz.forChild([{path:"",component:ye,children:[{path:"",pathMatch:"full",redirectTo:"home"},{path:"home",component:za,canActivate:[k.QM]},{path:"wallet",component:Ic,canActivate:[k.a1]},{path:"onchain",component:Hd,canActivate:[k.QM],children:[{path:"",pathMatch:"full",redirectTo:"receive/utxos"},{path:"receive/:selTab",component:Vd,canActivate:[k.QM]},{path:"send/:selTab",component:Ge,data:{sweepAll:!1},canActivate:[k.QM]},{path:"sweep/:selTab",component:Ge,data:{sweepAll:!0},canActivate:[k.QM]}]},{path:"connections",component:Xa,canActivate:[k.QM],children:[{path:"",pathMatch:"full",redirectTo:"channels"},{path:"channels",component:ji,canActivate:[k.QM],children:[{path:"",pathMatch:"full",redirectTo:"open"},{path:"open",component:vs,canActivate:[k.QM]},{path:"pending",component:rr,canActivate:[k.QM]},{path:"closed",component:Ur,canActivate:[k.QM]},{path:"activehtlcs",component:pc,canActivate:[k.QM]}]},{path:"peers",component:zi,data:{sweepAll:!1},canActivate:[k.QM]}]},{path:"transactions",component:Pc,canActivate:[k.QM],children:[{path:"",pathMatch:"full",redirectTo:"payments"},{path:"payments",component:Fe,canActivate:[k.QM]},{path:"invoices",component:Le,canActivate:[k.QM]}]},{path:"messages",component:Lh,canActivate:[k.QM],children:[{path:"",pathMatch:"full",redirectTo:"sign"},{path:"sign",component:Fh,canActivate:[k.QM]},{path:"verify",component:Ph,canActivate:[k.QM]}]},{path:"channelbackup",component:G_,canActivate:[k.QM],children:[{path:"",pathMatch:"full",redirectTo:"bckup"},{path:"bckup",component:qh,canActivate:[k.QM]},{path:"restore",component:uh,canActivate:[k.QM]}]},{path:"routing",component:Eu,canActivate:[k.QM],children:[{path:"",pathMatch:"full",redirectTo:"forwardinghistory"},{path:"forwardinghistory",component:Pe,canActivate:[k.QM]},{path:"peers",component:rm,canActivate:[k.QM]}]},{path:"reports",component:um,canActivate:[k.QM],children:[{path:"",pathMatch:"full",redirectTo:"routingfees"},{path:"routingfees",component:xm,canActivate:[k.QM]},{path:"transactions",component:Fm,canActivate:[k.QM]}]},{path:"graph",component:Ec,canActivate:[k.QM],children:[{path:"",pathMatch:"full",redirectTo:"lookups"},{path:"lookups",component:Me,canActivate:[k.QM]},{path:"queryroutes",component:cu,canActivate:[k.QM]}]},{path:"lookups",component:Me,canActivate:[k.QM]},{path:"network",component:B_,canActivate:[k.QM]},{path:"**",component:Jh.w},{path:"rates",redirectTo:"network"}]}]);var Yh=h(8750);let Bh=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n,bootstrap:[ye]}),n.\u0275inj=e.cJS({providers:[k.QM],imports:[[m.ez,Yh.m,Qh]]}),n})()}}]); \ No newline at end of file diff --git a/frontend/893.a44950223f73d9f3.js b/frontend/893.a44950223f73d9f3.js new file mode 100644 index 00000000..ad456bbc --- /dev/null +++ b/frontend/893.a44950223f73d9f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkRTLApp=self.webpackChunkRTLApp||[]).push([[893],{534:(Y,N,i)=>{i.d(N,{Kf:()=>G,I3:()=>K});var G={prefix:"far",iconName:"frown",icon:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"]},K={prefix:"far",iconName:"smile",icon:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"]}},1203:(Y,N,i)=>{i.d(N,{D:()=>Z});var e=i(7579),x=i(2722),f=i(7731),a=i(8377),t=i(5e3),c=i(62),O=i(5620),S=i(3251),H=i(9808),T=i(7093),V=i(7238);function D(z,M){if(1&z&&(t.TgZ(0,"span",8),t._uU(1),t.ALo(2,"number"),t.qZA()),2&z){const v=t.oxw().$implicit;t.xp6(1),t.Oqu(t.lcZ(2,1,v.dataValue))}}function A(z,M){if(1&z&&(t.TgZ(0,"span",8),t._uU(1),t.ALo(2,"number"),t.qZA()),2&z){const v=t.oxw().$implicit,h=t.oxw(2);t.xp6(1),t.Oqu(t.xi3(2,1,v[h.currencyUnitEnum.BTC],h.currencyUnitFormats.BTC))}}function R(z,M){if(1&z&&(t.TgZ(0,"span",8),t._uU(1),t.ALo(2,"number"),t.qZA()),2&z){const v=t.oxw().$implicit,h=t.oxw(2);t.xp6(1),t.Oqu(t.xi3(2,1,v[h.currencyUnitEnum.OTHER],h.currencyUnitFormats.OTHER))}}function E(z,M){if(1&z&&(t.TgZ(0,"div",5),t.TgZ(1,"div",6),t._uU(2),t.qZA(),t.YNc(3,D,3,3,"span",7),t.YNc(4,A,3,4,"span",7),t.YNc(5,R,3,4,"span",7),t.qZA()),2&z){const v=M.$implicit,h=t.oxw().$implicit,C=t.oxw();t.Q6J("matTooltip",v.tooltip)("matTooltipPosition","below"),t.xp6(2),t.Oqu(v.title),t.xp6(1),t.Q6J("ngIf",h===C.currencyUnitEnum.SATS),t.xp6(1),t.Q6J("ngIf",h===C.currencyUnitEnum.BTC),t.xp6(1),t.Q6J("ngIf",C.fiatConversion&&h!==C.currencyUnitEnum.SATS&&h!==C.currencyUnitEnum.BTC&&""===C.conversionErrorMsg)}}function b(z,M){if(1&z&&(t.TgZ(0,"div",9),t.TgZ(1,"div",10),t._uU(2),t.qZA(),t.qZA()),2&z){const v=t.oxw(2);t.xp6(2),t.Oqu(v.conversionErrorMsg)}}function w(z,M){if(1&z&&(t.TgZ(0,"mat-tab",1),t.TgZ(1,"div",2),t.YNc(2,E,6,6,"div",3),t.qZA(),t.YNc(3,b,3,1,"div",4),t.qZA()),2&z){const v=M.$implicit,h=t.oxw();t.s9C("label",v),t.xp6(2),t.Q6J("ngForOf",h.values),t.xp6(1),t.Q6J("ngIf",h.fiatConversion&&v!==h.currencyUnitEnum.SATS&&v!==h.currencyUnitEnum.BTC&&""!==h.conversionErrorMsg)}}let Z=(()=>{class z{constructor(v,h){this.commonService=v,this.store=h,this.values=[],this.currencyUnitEnum=f.NT,this.currencyUnitFormats=f.Xz,this.currencyUnits=[],this.fiatConversion=!1,this.conversionErrorMsg="",this.unSubs=[new e.x,new e.x,new e.x]}ngOnInit(){this.store.select(a.dT).pipe((0,x.R)(this.unSubs[0])).subscribe(v=>{this.fiatConversion=v.settings.fiatConversion,this.currencyUnits=v.settings.currencyUnits,this.fiatConversion||this.currencyUnits.splice(2,1),this.currencyUnits.length>1&&this.values[0]&&this.values[0].dataValue>=0&&this.getCurrencyValues(this.values)})}ngOnChanges(){this.currencyUnits.length>1&&this.values[0]&&this.values[0].dataValue>=0&&this.getCurrencyValues(this.values)}getCurrencyValues(v){v.forEach(h=>{h.dataValue>0?(this.commonService.convertCurrency(h.dataValue,f.NT.SATS,f.NT.BTC,"",!0).pipe((0,x.R)(this.unSubs[1])).subscribe(C=>{h[f.NT.BTC]=C.BTC}),this.commonService.convertCurrency(h.dataValue,f.NT.SATS,f.NT.OTHER,this.currencyUnits[2],this.fiatConversion).pipe((0,x.R)(this.unSubs[2])).subscribe({next:C=>{h[f.NT.OTHER]=C.OTHER},error:C=>{this.conversionErrorMsg="Conversion Error: "+C}})):(h[f.NT.BTC]=h.dataValue,""===this.conversionErrorMsg&&(h[f.NT.OTHER]=h.dataValue))})}ngOnDestroy(){this.unSubs.forEach(v=>{v.next(null),v.complete()})}}return z.\u0275fac=function(v){return new(v||z)(t.Y36(c.v),t.Y36(O.yh))},z.\u0275cmp=t.Xpm({type:z,selectors:[["rtl-currency-unit-converter"]],inputs:{values:"values"},features:[t.TTD],decls:2,vars:1,consts:[[3,"label",4,"ngFor","ngForOf"],[3,"label"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxLayout","column","fxLayoutAlign","start start","class","cc-data-block",3,"matTooltip","matTooltipPosition",4,"ngFor","ngForOf"],["fxLayout","row","fxFlex","100","class","p-1 error-border mt-1",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start start",1,"cc-data-block",3,"matTooltip","matTooltipPosition"],[1,"cc-data-title"],["class","cc-data-value",4,"ngIf"],[1,"cc-data-value"],["fxLayout","row","fxFlex","100",1,"p-1","error-border","mt-1"],[1,"cc-data-block"]],template:function(v,h){1&v&&(t.TgZ(0,"mat-tab-group"),t.YNc(1,w,4,3,"mat-tab",0),t.qZA()),2&v&&(t.xp6(1),t.Q6J("ngForOf",h.currencyUnits))},directives:[S.SP,H.sg,S.uX,T.xw,T.yH,T.Wh,H.O5,V.gM],pipes:[H.JJ],styles:[""]}),z})()},9122:(Y,N,i)=>{i.d(N,{n:()=>C});var e=i(8966),x=i(801),f=i(7731),a=i(5e3),t=i(5043),c=i(62),O=i(7261),S=i(7093),H=i(9808),T=i(9224),V=i(9444),D=i(7423),A=i(4834),R=i(3390),E=i(6895),b=i(3322),w=i(159);const Z=function(u){return{"display-none":u}};function z(u,L){if(1&u&&(a.TgZ(0,"div",20),a._UZ(1,"qr-code",21),a.qZA()),2&u){const p=a.oxw();a.Q6J("ngClass",a.VKq(4,Z,p.screenSize===p.screenSizeEnum.XS||p.screenSize===p.screenSizeEnum.SM)),a.xp6(1),a.Q6J("value",p.address)("size",p.qrWidth)("errorCorrectionLevel","L")}}function M(u,L){if(1&u&&(a.TgZ(0,"div",22),a._UZ(1,"qr-code",21),a.qZA()),2&u){const p=a.oxw();a.Q6J("ngClass",a.VKq(4,Z,p.screenSize!==p.screenSizeEnum.XS&&p.screenSize!==p.screenSizeEnum.SM)),a.xp6(1),a.Q6J("value",p.address)("size",p.qrWidth)("errorCorrectionLevel","L")}}function v(u,L){if(1&u&&(a.TgZ(0,"div",13),a.TgZ(1,"div",14),a.TgZ(2,"h4",15),a._uU(3,"Address Type"),a.qZA(),a.TgZ(4,"span",23),a._uU(5),a.qZA(),a.qZA(),a.qZA()),2&u){const p=a.oxw();a.xp6(5),a.Oqu(p.addressType)}}function h(u,L){1&u&&a._UZ(0,"mat-divider",17)}let C=(()=>{class u{constructor(p,g,P,U,F){this.dialogRef=p,this.data=g,this.logger=P,this.commonService=U,this.snackBar=F,this.faReceipt=x.dLy,this.address="",this.addressType="",this.qrWidth=230,this.screenSize="",this.screenSizeEnum=f.cu}ngOnInit(){this.address=this.data.address,this.addressType=this.data.addressType,this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onCopyAddress(p){this.snackBar.open("Generated address copied."),this.logger.info("Copied Text: "+p)}}return u.\u0275fac=function(p){return new(p||u)(a.Y36(e.so),a.Y36(e.WI),a.Y36(t.mQ),a.Y36(c.v),a.Y36(O.ux))},u.\u0275cmp=a.Xpm({type:u,selectors:[["rtl-on-chain-generated-address"]],decls:25,vars:8,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","35","fxLayoutAlign","center start","class","modal-qr-code-container padding-gap-large",3,"ngClass",4,"ngIf"],["fxFlex","65"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","2","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxFlex","50","fxLayoutAlign","center start","class","modal-qr-code-container padding-gap-large",3,"ngClass",4,"ngIf"],["fxLayout","row",4,"ngIf"],["class","w-100 my-1",4,"ngIf"],["fxLayout","row"],["fxFlex","100"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"overflow-wrap","foreground-secondary-text"],[1,"w-100","my-1"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-1"],["autoFocus","","mat-button","","color","primary","tabindex","1","type","submit","rtlClipboard","",3,"payload","copied"],["fxFlex","35","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],[3,"value","size","errorCorrectionLevel"],["fxFlex","50","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],[1,"foreground-secondary-text"]],template:function(p,g){1&p&&(a.TgZ(0,"div",0),a.YNc(1,z,2,6,"div",1),a.TgZ(2,"div",2),a.TgZ(3,"mat-card-header",3),a.TgZ(4,"div",4),a._UZ(5,"fa-icon",5),a.TgZ(6,"span",6),a._uU(7),a.qZA(),a.qZA(),a.TgZ(8,"button",7),a.NdJ("click",function(){return g.onClose()}),a._uU(9,"X"),a.qZA(),a.qZA(),a.TgZ(10,"mat-card-content",8),a.TgZ(11,"div",9),a.YNc(12,M,2,6,"div",10),a.YNc(13,v,6,1,"div",11),a.YNc(14,h,1,0,"mat-divider",12),a.TgZ(15,"div",13),a.TgZ(16,"div",14),a.TgZ(17,"h4",15),a._uU(18,"Address"),a.qZA(),a.TgZ(19,"span",16),a._uU(20),a.qZA(),a.qZA(),a.qZA(),a._UZ(21,"mat-divider",17),a.TgZ(22,"div",18),a.TgZ(23,"button",19),a.NdJ("copied",function(U){return g.onCopyAddress(U)}),a._uU(24,"Copy Address"),a.qZA(),a.qZA(),a.qZA(),a.qZA(),a.qZA(),a.qZA()),2&p&&(a.xp6(1),a.Q6J("ngIf",g.address),a.xp6(4),a.Q6J("icon",g.faReceipt),a.xp6(2),a.Oqu(g.screenSize===g.screenSizeEnum.XS?"Address":"Generated Address"),a.xp6(5),a.Q6J("ngIf",g.address),a.xp6(1),a.Q6J("ngIf",""!==g.addressType),a.xp6(1),a.Q6J("ngIf",""!==g.addressType),a.xp6(6),a.Oqu(g.address),a.xp6(3),a.Q6J("payload",g.address))},directives:[S.xw,S.Wh,H.O5,S.yH,T.dk,V.BN,D.lW,T.dn,A.d,R.h,E.y,H.mk,b.oO,w.uU],styles:[""]}),u})()},7671:(Y,N,i)=>{i.d(N,{D:()=>q});var e=i(5e3),x=i(113),f=i(7731),a=i(5043),t=i(7093),c=i(7423),O=i(5245),S=i(9808),H=i(4107),T=i(3075),V=i(508),D=i(7322);let A=(()=>{class l extends V.LF{format(r,s){return"MMM YYYY"===s?f.gg[r.getMonth()].name+", "+r.getFullYear():"YYYY"===s?r.getFullYear().toString():r.getDate()+"/"+f.gg[r.getMonth()].name+"/"+r.getFullYear()}}return l.\u0275fac=function(){let _;return function(s){return(_||(_=e.n5z(l)))(s||l)}}(),l.\u0275prov=e.Yz7({token:l,factory:l.\u0275fac}),l})();const R={parse:{dateInput:"LL"},display:{dateInput:"MMM YYYY",monthYearLabel:"YYYY",dateA11yLabel:"LL",monthYearA11yLabel:"YYYY"}},E={parse:{dateInput:"LL"},display:{dateInput:"YYYY",monthYearLabel:"YYYY",dateA11yLabel:"LL",monthYearA11yLabel:"YYYY"}};let b=(()=>{class l{}return l.\u0275fac=function(r){return new(r||l)},l.\u0275dir=e.lG2({type:l,selectors:[["","monthlyDate",""]],features:[e._Bn([{provide:V._A,useClass:A},{provide:V.sG,useValue:R}])]}),l})(),w=(()=>{class l{}return l.\u0275fac=function(r){return new(r||l)},l.\u0275dir=e.lG2({type:l,selectors:[["","yearlyDate",""]],features:[e._Bn([{provide:V._A,useClass:A},{provide:V.sG,useValue:E}])]}),l})();var Z=i(7531),z=i(6856),M=i(6534),v=i(9843);const h=["monthlyDatepicker"],C=["yearlyDatepicker"],u=function(){return{animationDirection:"forward"}};function L(l,_){if(1&l&&e.GkF(0,9),2&l){e.oxw();const r=e.MAs(19);e.Q6J("ngTemplateOutlet",r)("ngTemplateOutletContext",e.DdM(2,u))}}const p=function(){return{animationDirection:"backward"}};function g(l,_){if(1&l&&e.GkF(0,9),2&l){e.oxw();const r=e.MAs(19);e.Q6J("ngTemplateOutlet",r)("ngTemplateOutletContext",e.DdM(2,p))}}const P=function(){return{animationDirection:""}};function U(l,_){if(1&l&&e.GkF(0,9),2&l){e.oxw();const r=e.MAs(19);e.Q6J("ngTemplateOutlet",r)("ngTemplateOutletContext",e.DdM(2,P))}}function F(l,_){if(1&l&&(e.TgZ(0,"mat-option",17),e._uU(1),e.ALo(2,"titlecase"),e.qZA()),2&l){const r=_.$implicit;e.Q6J("value",r),e.xp6(1),e.hij(" ",e.lcZ(2,2,r)," ")}}function B(l,_){if(1&l){const r=e.EpF();e.TgZ(0,"mat-form-field",18),e.TgZ(1,"input",19,20),e.NdJ("ngModelChange",function(n){return e.CHM(r),e.oxw(2).selectedValue=n}),e.qZA(),e._UZ(3,"mat-datepicker-toggle",21),e.TgZ(4,"mat-datepicker",22,23),e.NdJ("monthSelected",function(n){return e.CHM(r),e.oxw(2).onMonthSelected(n)})("dateSelected",function(n){return e.CHM(r),e.oxw(2).onMonthSelected(n)}),e.qZA(),e.qZA()}if(2&l){const r=e.MAs(5),s=e.oxw(2);e.xp6(1),e.Q6J("matDatepicker",r)("min",s.first)("max",s.last)("ngModel",s.selectedValue),e.xp6(2),e.Q6J("for",r),e.xp6(1),e.Q6J("startAt",s.selectedValue)}}function k(l,_){if(1&l){const r=e.EpF();e.TgZ(0,"mat-form-field",24),e.TgZ(1,"input",25,26),e.NdJ("ngModelChange",function(n){return e.CHM(r),e.oxw(2).selectedValue=n}),e.qZA(),e._UZ(3,"mat-datepicker-toggle",21),e.TgZ(4,"mat-datepicker",27,28),e.NdJ("yearSelected",function(n){return e.CHM(r),e.oxw(2).onYearSelected(n)})("monthSelected",function(n){return e.CHM(r),e.oxw(2).onYearSelected(n)})("dateSelected",function(n){return e.CHM(r),e.oxw(2).onYearSelected(n)}),e.qZA(),e.qZA()}if(2&l){const r=e.MAs(5),s=e.oxw(2);e.xp6(1),e.Q6J("matDatepicker",r)("min",s.first)("max",s.last)("ngModel",s.selectedValue),e.xp6(2),e.Q6J("for",r),e.xp6(1),e.Q6J("startAt",s.selectedValue)}}function I(l,_){if(1&l){const r=e.EpF();e.TgZ(0,"div",10),e.TgZ(1,"div",11),e.TgZ(2,"mat-select",12),e.NdJ("ngModelChange",function(n){return e.CHM(r),e.oxw().selScrollRange=n})("selectionChange",function(n){return e.CHM(r),e.oxw().onRangeChanged(n)}),e.YNc(3,F,3,4,"mat-option",13),e.qZA(),e.qZA(),e.TgZ(4,"div",14),e.YNc(5,B,6,6,"mat-form-field",15),e.YNc(6,k,6,6,"mat-form-field",16),e.qZA(),e.qZA()}if(2&l){const r=e.oxw();e.Q6J("@sliderAnimation",r.animationDirection),e.xp6(2),e.Q6J("ngModel",r.selScrollRange),e.xp6(1),e.Q6J("ngForOf",r.scrollRanges),e.xp6(2),e.Q6J("ngIf",r.selScrollRange===r.scrollRanges[0]),e.xp6(1),e.Q6J("ngIf",r.selScrollRange===r.scrollRanges[1])}}let q=(()=>{class l{constructor(r){this.logger=r,this.scrollRanges=f.op,this.selScrollRange=this.scrollRanges[0],this.today=new Date(Date.now()),this.first=new Date(2018,0,1,0,0,0),this.last=new Date(this.today.getFullYear(),this.today.getMonth(),this.today.getDate(),0,0,0),this.disablePrev=!1,this.disableNext=!0,this.animationDirection="",this.selectedValue=this.last,this.stepChanged=new e.vpe}onRangeChanged(r){this.selScrollRange=r.value,this.onStepChange("LAST")}onMonthSelected(r){this.selectedValue=r,this.onStepChange("SELECTED"),this.monthlyDatepicker.close()}onYearSelected(r){this.selectedValue=r,this.onStepChange("SELECTED"),this.yearlyDatepicker.close()}onStepChange(r){switch(this.logger.info(r),r){case"FIRST":this.animationDirection="backward",this.selectedValue!==this.first&&(this.selectedValue=this.first,this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange}));break;case"PREVIOUS":this.selectedValue=this.selScrollRange===f.op[1]?new Date(this.selectedValue.getFullYear()-1,0,1,0,0,0):new Date(this.selectedValue.getFullYear(),this.selectedValue.getMonth()-1,1,0,0,0),this.animationDirection="backward",this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange});break;case"NEXT":this.selectedValue=this.selScrollRange===f.op[1]?new Date(this.selectedValue.getFullYear()+1,0,1,0,0,0):new Date(this.selectedValue.getFullYear(),this.selectedValue.getMonth()+1,1,0,0,0),this.animationDirection="forward",this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange});break;case"LAST":this.animationDirection="forward",this.selectedValue=this.last,this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange});break;default:this.animationDirection="",this.stepChanged.emit({selDate:this.selectedValue,selScrollRange:this.selScrollRange})}this.disablePrev=this.selScrollRange===f.op[1]?this.selectedValue.getFullYear()<=this.first.getFullYear():this.selectedValue.getFullYear()<=this.first.getFullYear()&&this.selectedValue.getMonth()<=this.first.getMonth(),this.disableNext=this.selScrollRange===f.op[1]?this.selectedValue.getFullYear()>=this.last.getFullYear():this.selectedValue.getFullYear()>=this.last.getFullYear()&&this.selectedValue.getMonth()>=this.last.getMonth(),this.logger.info(this.disablePrev),this.logger.info(this.disableNext),setTimeout(()=>{this.animationDirection=""},800)}onChartMouseUp(r){"monthlyDate"===r.srcElement.name?this.monthlyDatepicker.open():"yearlyDate"===r.srcElement.name&&this.yearlyDatepicker.open()}}return l.\u0275fac=function(r){return new(r||l)(e.Y36(a.mQ))},l.\u0275cmp=e.Xpm({type:l,selectors:[["rtl-horizontal-scroller"]],viewQuery:function(r,s){if(1&r&&(e.Gf(h,5),e.Gf(C,5)),2&r){let n;e.iGM(n=e.CRH())&&(s.monthlyDatepicker=n.first),e.iGM(n=e.CRH())&&(s.yearlyDatepicker=n.first)}},hostBindings:function(r,s){1&r&&e.NdJ("click",function(m){return s.onChartMouseUp(m)})},outputs:{stepChanged:"stepChanged"},decls:20,vars:5,consts:[["fxLayout","row","fxLayoutAlign","space-between stretch","fxFlex","100",1,"padding-gap-x"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","22"],["mat-icon-button","","color","primary","type","button","tabindex","1",1,"pr-4",3,"click"],["mat-icon-button","","color","primary","type","button","tabindex","2",3,"disabled","click"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","22"],["mat-icon-button","","color","primary","type","button","tabindex","5",1,"pr-4",3,"disabled","click"],["mat-icon-button","","color","primary","type","button","tabindex","6",3,"click"],["controlsPanel",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["fxLayout","row","fxLayoutAlign","center center","fxFlex","56"],["fxFlex","50","fxLayoutAlign","center center","fxLayoutAlign.gt-xs","end center",1,"font-bold-700"],["fxFlex","80","fxFlex.gt-md","30","name","selScrlRange","placeholder","Range","tabindex","3",1,"font-bold-700",3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],["fxFlex","50","fxLayout","row","fxLayoutAlign","center center","fxLayoutAlign.gt-xs","start center"],["monthlyDate","","fxFlex","80","fxFlex.gt-md","30","fxLayoutAlign","center center",4,"ngIf"],["yearlyDate","","fxFlex","80","fxFlex.gt-md","30","fxLayoutAlign","center center",4,"ngIf"],[3,"value"],["monthlyDate","","fxFlex","80","fxFlex.gt-md","30","fxLayoutAlign","center center"],["matInput","","name","monthlyDate","tabindex","4","readonly","",3,"matDatepicker","min","max","ngModel","ngModelChange"],["monthlyDt","ngModel"],["matSuffix","",3,"for"],["startView","year",3,"startAt","monthSelected","dateSelected"],["monthlyDatepicker",""],["yearlyDate","","fxFlex","80","fxFlex.gt-md","30","fxLayoutAlign","center center"],["matInput","","name","yearlyDate","tabindex","4","readonly","",3,"matDatepicker","min","max","ngModel","ngModelChange"],["yearlyDt","ngModel"],["startView","multi-year",3,"startAt","yearSelected","monthSelected","dateSelected"],["yearlyDatepicker",""]],template:function(r,s){1&r&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"button",2),e.NdJ("click",function(){return s.onStepChange("FIRST")}),e.TgZ(3,"mat-icon"),e._uU(4,"skip_previous"),e.qZA(),e.qZA(),e.TgZ(5,"button",3),e.NdJ("click",function(){return s.onStepChange("PREVIOUS")}),e.TgZ(6,"mat-icon"),e._uU(7,"navigate_before"),e.qZA(),e.qZA(),e.qZA(),e.YNc(8,L,1,3,"ng-container",4),e.YNc(9,g,1,3,"ng-container",4),e.YNc(10,U,1,3,"ng-container",4),e.TgZ(11,"div",5),e.TgZ(12,"button",6),e.NdJ("click",function(){return s.onStepChange("NEXT")}),e.TgZ(13,"mat-icon"),e._uU(14,"navigate_next"),e.qZA(),e.qZA(),e.TgZ(15,"button",7),e.NdJ("click",function(){return s.onStepChange("LAST")}),e.TgZ(16,"mat-icon"),e._uU(17,"skip_next"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.YNc(18,I,7,5,"ng-template",null,8,e.W1O)),2&r&&(e.xp6(5),e.Q6J("disabled",s.disablePrev),e.xp6(3),e.Q6J("ngIf","forward"===s.animationDirection),e.xp6(1),e.Q6J("ngIf","backward"===s.animationDirection),e.xp6(1),e.Q6J("ngIf",""===s.animationDirection),e.xp6(2),e.Q6J("disabled",s.disableNext))},directives:[t.xw,t.Wh,t.yH,c.lW,O.Hw,S.O5,S.tP,H.gD,T.JJ,T.On,S.sg,V.ey,D.KE,b,Z.Nt,z.hl,M.q,v.F,T.Fj,z.nW,D.R9,z.Mq,w],pipes:[S.rS],styles:[""],data:{animation:[x.l]}}),l})()},165:(Y,N,i)=>{i.d(N,{g:()=>s});var e=i(6087),x=i(4847),f=i(2075),a=i(7731),t=i(7861),c=i(5e3),O=i(62),S=i(5620),H=i(9808),T=i(7093),V=i(7322),D=i(7531),A=i(3075),R=i(644),E=i(4107),b=i(508),w=i(7423),Z=i(3322);function z(n,m){1&n&&(c.TgZ(0,"th",27),c._uU(1,"Date"),c.qZA())}function M(n,m){if(1&n&&(c.TgZ(0,"td",28),c._uU(1),c.ALo(2,"date"),c.qZA()),2&n){const o=m.$implicit,d=c.oxw();c.xp6(1),c.Oqu(c.xi3(2,1,null==o?null:o.date,d.dataRange===d.scrollRanges[1]?"MMM/yyyy":"dd/MMM/yyyy"))}}function v(n,m){1&n&&(c.TgZ(0,"th",29),c._uU(1,"Amount Paid (Sats)"),c.qZA())}function h(n,m){if(1&n&&(c.TgZ(0,"td",28),c.TgZ(1,"span",30),c._uU(2),c.ALo(3,"number"),c.qZA(),c.qZA()),2&n){const o=m.$implicit;c.xp6(2),c.Oqu(c.xi3(3,1,null==o?null:o.amount_paid,"1.0-2"))}}function C(n,m){1&n&&(c.TgZ(0,"th",29),c._uU(1,"# Payments"),c.qZA())}function u(n,m){if(1&n&&(c.TgZ(0,"td",28),c.TgZ(1,"span",30),c._uU(2),c.ALo(3,"number"),c.qZA(),c.qZA()),2&n){const o=m.$implicit;c.xp6(2),c.Oqu(c.lcZ(3,1,null==o?null:o.num_payments))}}function L(n,m){1&n&&(c.TgZ(0,"th",29),c._uU(1,"Amount Received (Sats)"),c.qZA())}function p(n,m){if(1&n&&(c.TgZ(0,"td",28),c.TgZ(1,"span",30),c._uU(2),c.ALo(3,"number"),c.qZA(),c.qZA()),2&n){const o=m.$implicit;c.xp6(2),c.Oqu(c.xi3(3,1,null==o?null:o.amount_received,"1.0-2"))}}function g(n,m){1&n&&(c.TgZ(0,"th",29),c._uU(1,"# Invoices"),c.qZA())}function P(n,m){if(1&n&&(c.TgZ(0,"td",28),c.TgZ(1,"span",30),c._uU(2),c.ALo(3,"number"),c.qZA(),c.qZA()),2&n){const o=m.$implicit;c.xp6(2),c.Oqu(c.lcZ(3,1,null==o?null:o.num_invoices))}}function U(n,m){if(1&n){const o=c.EpF();c.TgZ(0,"th",31),c.TgZ(1,"div",32),c.TgZ(2,"mat-select",33),c._UZ(3,"mat-select-trigger"),c.TgZ(4,"mat-option",34),c.NdJ("click",function(){return c.CHM(o),c.oxw().onDownloadCSV()}),c._uU(5,"Download CSV"),c.qZA(),c.qZA(),c.qZA(),c.qZA()}}function F(n,m){if(1&n){const o=c.EpF();c.TgZ(0,"td",35),c.TgZ(1,"button",36),c.NdJ("click",function(){const W=c.CHM(o).$implicit;return c.oxw().onTransactionClick(W)}),c._uU(2,"View Info"),c.qZA(),c.qZA()}}function B(n,m){1&n&&(c.TgZ(0,"p"),c._uU(1,"No transaction available."),c.qZA())}function k(n,m){if(1&n&&(c.TgZ(0,"td",37),c.YNc(1,B,2,0,"p",38),c.qZA()),2&n){const o=c.oxw();c.xp6(1),c.Q6J("ngIf",!(null!=o.transactions&&o.transactions.data)||(null==o.transactions||null==o.transactions.data?null:o.transactions.data.length)<1)}}const I=function(n){return{"display-none":n}};function q(n,m){if(1&n&&c._UZ(0,"tr",39),2&n){const o=c.oxw();c.Q6J("ngClass",c.VKq(1,I,(null==o.transactions?null:o.transactions.data)&&(null==o.transactions||null==o.transactions.data?null:o.transactions.data.length)>0))}}function l(n,m){1&n&&c._UZ(0,"tr",40)}function _(n,m){1&n&&c._UZ(0,"tr",41)}const r=function(){return["no_transaction"]};let s=(()=>{class n{constructor(o,d,y){this.commonService=o,this.store=d,this.datePipe=y,this.dataRange=a.op[0],this.dataList=[],this.filterValue="",this.timezoneOffset=60*new Date(Date.now()).getTimezoneOffset(),this.scrollRanges=a.op,this.displayedColumns=[],this.flgSticky=!1,this.pageSize=a.IV,this.pageSizeOptions=a.TJ,this.screenSize="",this.screenSizeEnum=a.cu,this.screenSize=this.commonService.getScreenSize(),this.screenSize===a.cu.XS||this.screenSize===a.cu.SM?(this.flgSticky=!1,this.displayedColumns=["date","amount_paid","amount_received","actions"]):this.screenSize===a.cu.MD?(this.flgSticky=!1,this.displayedColumns=["date","amount_paid","num_payments","amount_received","num_invoices","actions"]):(this.flgSticky=!0,this.displayedColumns=["date","amount_paid","num_payments","amount_received","num_invoices","actions"])}ngOnInit(){this.dataList&&this.dataList.length>0&&this.loadTransactionsTable(this.dataList)}ngAfterViewInit(){this.setTableWidgets()}ngOnChanges(o){o.dataList&&!o.dataList.firstChange&&this.loadTransactionsTable(this.dataList),o.filterValue&&!o.filterValue.firstChange&&this.applyFilter()}onTransactionClick(o){const d=[[{key:"date",value:this.datePipe.transform(o.date,this.dataRange===a.op[1]?"MMM/yyyy":"dd/MMM/yyyy"),title:"Date",width:100,type:a.Gi.DATE}],[{key:"amount_paid",value:Math.round(o.amount_paid),title:"Amount Paid (Sats)",width:50,type:a.Gi.NUMBER},{key:"num_payments",value:o.num_payments,title:"# Payments",width:50,type:a.Gi.NUMBER}],[{key:"amount_received",value:Math.round(o.amount_received),title:"Amount Received (Sats)",width:50,type:a.Gi.NUMBER},{key:"num_invoices",value:o.num_invoices,title:"# Invoices",width:50,type:a.Gi.NUMBER}]];this.store.dispatch((0,t.qR)({payload:{data:{type:a.n_.INFORMATION,alertTitle:"Transaction Summary",message:d}}}))}applyFilter(){this.transactions&&(this.transactions.filter=this.filterValue.trim().toLowerCase())}loadTransactionsTable(o){this.transactions=new f.by(o?[...o]:[]),this.setTableWidgets()}setTableWidgets(){this.transactions&&this.transactions.data&&this.transactions.data.length>0&&(this.transactions.sortingDataAccessor=(o,d)=>o[d]&&isNaN(o[d])?o[d].toLocaleLowerCase():o[d]?+o[d]:null,this.transactions.sort=this.sort,this.transactions.filterPredicate=(o,d)=>((o.date?(this.datePipe.transform(o.date,"dd/MMM")+"/"+o.date.getFullYear()).toLowerCase():"")+JSON.stringify(o).toLowerCase()).includes(d),this.transactions.paginator=this.paginator)}onDownloadCSV(){this.transactions.data&&this.transactions.data.length>0&&this.commonService.downloadFile(this.dataList,"Transactions-report-"+this.dataRange.toLowerCase())}}return n.\u0275fac=function(o){return new(o||n)(c.Y36(O.v),c.Y36(S.yh),c.Y36(H.uU))},n.\u0275cmp=c.Xpm({type:n,selectors:[["rtl-transactions-report-table"]],viewQuery:function(o,d){if(1&o&&(c.Gf(x.YE,5),c.Gf(e.NW,5)),2&o){let y;c.iGM(y=c.CRH())&&(d.sort=y.first),c.iGM(y=c.CRH())&&(d.paginator=y.first)}},inputs:{dataRange:"dataRange",dataList:"dataList",filterValue:"filterValue"},features:[c._Bn([{provide:e.ye,useValue:(0,a.pt)("Transactions")}]),c.TTD],decls:34,vars:10,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"padding-gap-x"],["fxLayout","column","fxLayoutAlign","start stretch"],["fxLayout","column","fxLayoutAlign","start stretch","fxLayout.gt-sm","row wrap",1,"page-sub-title-container","mt-1"],["fxFlex","70"],["fxFlex","30","fxLayoutAlign","start end"],["matInput","","name","filter","placeholder","Filter",3,"ngModel","ngModelChange","input","keyup"],["fxLayout","row","fxLayoutAlign","start start"],["fxLayout","column","fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mat-table","","fxFlex","100","matSort","",1,"overflow-auto",3,"dataSource"],["table",""],["matColumnDef","date"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","amount_paid"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","num_payments"],["matColumnDef","amount_received"],["matColumnDef","num_invoices"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","px-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_transaction"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"px-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(o,d){1&o&&(c.TgZ(0,"div",0),c.TgZ(1,"div",1),c.TgZ(2,"div",2),c._UZ(3,"div",3),c.TgZ(4,"mat-form-field",4),c.TgZ(5,"input",5),c.NdJ("ngModelChange",function(W){return d.filterValue=W})("input",function(){return d.applyFilter()})("keyup",function(){return d.applyFilter()}),c.qZA(),c.qZA(),c.qZA(),c.TgZ(6,"div",6),c.TgZ(7,"div",7),c.TgZ(8,"table",8,9),c.ynx(10,10),c.YNc(11,z,2,0,"th",11),c.YNc(12,M,3,4,"td",12),c.BQk(),c.ynx(13,13),c.YNc(14,v,2,0,"th",14),c.YNc(15,h,4,4,"td",12),c.BQk(),c.ynx(16,15),c.YNc(17,C,2,0,"th",14),c.YNc(18,u,4,3,"td",12),c.BQk(),c.ynx(19,16),c.YNc(20,L,2,0,"th",14),c.YNc(21,p,4,4,"td",12),c.BQk(),c.ynx(22,17),c.YNc(23,g,2,0,"th",14),c.YNc(24,P,4,3,"td",12),c.BQk(),c.ynx(25,18),c.YNc(26,U,6,0,"th",19),c.YNc(27,F,3,0,"td",20),c.BQk(),c.ynx(28,21),c.YNc(29,k,2,1,"td",22),c.BQk(),c.YNc(30,q,1,3,"tr",23),c.YNc(31,l,1,0,"tr",24),c.YNc(32,_,1,0,"tr",25),c.qZA(),c._UZ(33,"mat-paginator",26),c.qZA(),c.qZA(),c.qZA(),c.qZA()),2&o&&(c.xp6(5),c.Q6J("ngModel",d.filterValue),c.xp6(3),c.Q6J("dataSource",d.transactions),c.xp6(22),c.Q6J("matFooterRowDef",c.DdM(9,r)),c.xp6(1),c.Q6J("matHeaderRowDef",d.displayedColumns)("matHeaderRowDefSticky",d.flgSticky),c.xp6(1),c.Q6J("matRowDefColumns",d.displayedColumns),c.xp6(1),c.Q6J("pageSize",d.pageSize)("pageSizeOptions",d.pageSizeOptions)("showFirstLastButtons",d.screenSize!==d.screenSizeEnum.XS))},directives:[T.xw,T.yH,T.Wh,V.KE,D.Nt,A.Fj,A.JJ,A.On,R.$V,f.BZ,x.YE,f.w1,f.fO,f.Dz,f.mD,f.Ke,f.as,f.nj,e.NW,f.ge,x.nU,f.ev,E.gD,E.$L,b.ey,w.lW,f.yh,H.O5,f.Q2,H.mk,Z.oO,f.XQ,f.Gk],pipes:[H.uU,H.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),n})()},9843:(Y,N,i)=>{i.d(N,{F:()=>f});var e=i(3075),x=i(5e3);let f=(()=>{class a{validate(c){return this.max?e.kI.max(+this.max)(c):null}}return a.\u0275fac=function(c){return new(c||a)},a.\u0275dir=x.lG2({type:a,selectors:[["input","max",""]],inputs:{max:"max"},features:[x._Bn([{provide:e.Cf,useExisting:a,multi:!0}])]}),a})()}}]); \ No newline at end of file diff --git a/angular/MaterialIcons-Regular.5e7382c63da0098d634a.ttf b/frontend/MaterialIcons-Regular.196fa4a92dd6fa73.ttf similarity index 100% rename from angular/MaterialIcons-Regular.5e7382c63da0098d634a.ttf rename to frontend/MaterialIcons-Regular.196fa4a92dd6fa73.ttf diff --git a/angular/MaterialIcons-Regular.4674f8ded773cb03e824.eot b/frontend/MaterialIcons-Regular.1e50f5c2ffa6aba4.eot similarity index 100% rename from angular/MaterialIcons-Regular.4674f8ded773cb03e824.eot rename to frontend/MaterialIcons-Regular.1e50f5c2ffa6aba4.eot diff --git a/angular/MaterialIcons-Regular.cff684e59ffb052d72cb.woff2 b/frontend/MaterialIcons-Regular.7ea2023eeca07427.woff2 similarity index 100% rename from angular/MaterialIcons-Regular.cff684e59ffb052d72cb.woff2 rename to frontend/MaterialIcons-Regular.7ea2023eeca07427.woff2 diff --git a/angular/MaterialIcons-Regular.83bebaf37c09c7e1c3ee.woff b/frontend/MaterialIcons-Regular.db852539204b1a34.woff similarity index 100% rename from angular/MaterialIcons-Regular.83bebaf37c09c7e1c3ee.woff rename to frontend/MaterialIcons-Regular.db852539204b1a34.woff diff --git a/angular/Roboto-Black.41ed1105a6ebb8ffe34e.woff2 b/frontend/Roboto-Black.2eaa390d458c877d.woff2 similarity index 100% rename from angular/Roboto-Black.41ed1105a6ebb8ffe34e.woff2 rename to frontend/Roboto-Black.2eaa390d458c877d.woff2 diff --git a/angular/Roboto-Black.937491dfcbe64ca9a9f1.woff b/frontend/Roboto-Black.b25f67ad8583da68.woff similarity index 100% rename from angular/Roboto-Black.937491dfcbe64ca9a9f1.woff rename to frontend/Roboto-Black.b25f67ad8583da68.woff diff --git a/angular/Roboto-BlackItalic.50ca4c51ebc27e7e7d2f.woff2 b/frontend/Roboto-BlackItalic.7dc03ee444552bc5.woff2 similarity index 100% rename from angular/Roboto-BlackItalic.50ca4c51ebc27e7e7d2f.woff2 rename to frontend/Roboto-BlackItalic.7dc03ee444552bc5.woff2 diff --git a/angular/Roboto-BlackItalic.2e1ee657996854c6f427.woff b/frontend/Roboto-BlackItalic.c8dc642467cb3099.woff similarity index 100% rename from angular/Roboto-BlackItalic.2e1ee657996854c6f427.woff rename to frontend/Roboto-BlackItalic.c8dc642467cb3099.woff diff --git a/angular/Roboto-Bold.92fbd4e93cf0a5dbebaa.woff2 b/frontend/Roboto-Bold.447291a88c067396.woff2 similarity index 100% rename from angular/Roboto-Bold.92fbd4e93cf0a5dbebaa.woff2 rename to frontend/Roboto-Bold.447291a88c067396.woff2 diff --git a/angular/Roboto-Bold.73288d91c325e82a5b92.woff b/frontend/Roboto-Bold.fc482e6133cf5e26.woff similarity index 100% rename from angular/Roboto-Bold.73288d91c325e82a5b92.woff rename to frontend/Roboto-Bold.fc482e6133cf5e26.woff diff --git a/angular/Roboto-BoldItalic.5f600d98a73d800ae575.woff2 b/frontend/Roboto-BoldItalic.1b15168ef6fa4e16.woff2 similarity index 100% rename from angular/Roboto-BoldItalic.5f600d98a73d800ae575.woff2 rename to frontend/Roboto-BoldItalic.1b15168ef6fa4e16.woff2 diff --git a/angular/Roboto-BoldItalic.6d89acbd21d7e3fbecb2.woff b/frontend/Roboto-BoldItalic.e26ba339b06f09f7.woff similarity index 100% rename from angular/Roboto-BoldItalic.6d89acbd21d7e3fbecb2.woff rename to frontend/Roboto-BoldItalic.e26ba339b06f09f7.woff diff --git a/angular/Roboto-Light.c27d89ac77468ae18f28.woff2 b/frontend/Roboto-Light.0e01b6cd13b3857f.woff2 similarity index 100% rename from angular/Roboto-Light.c27d89ac77468ae18f28.woff2 rename to frontend/Roboto-Light.0e01b6cd13b3857f.woff2 diff --git a/angular/Roboto-Light.d923dfafc0c5183b59aa.woff b/frontend/Roboto-Light.603ca9a537b88428.woff similarity index 100% rename from angular/Roboto-Light.d923dfafc0c5183b59aa.woff rename to frontend/Roboto-Light.603ca9a537b88428.woff diff --git a/angular/Roboto-LightItalic.d4b8c137518d9d92bb28.woff b/frontend/Roboto-LightItalic.1b5e142f787151c8.woff similarity index 100% rename from angular/Roboto-LightItalic.d4b8c137518d9d92bb28.woff rename to frontend/Roboto-LightItalic.1b5e142f787151c8.woff diff --git a/angular/Roboto-LightItalic.506274c7228cf81cae4d.woff2 b/frontend/Roboto-LightItalic.232ef4b20215f720.woff2 similarity index 100% rename from angular/Roboto-LightItalic.506274c7228cf81cae4d.woff2 rename to frontend/Roboto-LightItalic.232ef4b20215f720.woff2 diff --git a/angular/Roboto-Medium.1d3bced88509b0838984.woff2 b/frontend/Roboto-Medium.457532032ceb0168.woff2 similarity index 100% rename from angular/Roboto-Medium.1d3bced88509b0838984.woff2 rename to frontend/Roboto-Medium.457532032ceb0168.woff2 diff --git a/angular/Roboto-Medium.092c6130df8fd2199888.woff b/frontend/Roboto-Medium.6e1ae5f0b324a0aa.woff similarity index 100% rename from angular/Roboto-Medium.092c6130df8fd2199888.woff rename to frontend/Roboto-Medium.6e1ae5f0b324a0aa.woff diff --git a/angular/Roboto-MediumItalic.d620b8f53f75966fe42e.woff2 b/frontend/Roboto-MediumItalic.872f7060602d55d2.woff2 similarity index 100% rename from angular/Roboto-MediumItalic.d620b8f53f75966fe42e.woff2 rename to frontend/Roboto-MediumItalic.872f7060602d55d2.woff2 diff --git a/angular/Roboto-MediumItalic.18ff1628c628080166c1.woff b/frontend/Roboto-MediumItalic.e06fb533801cbb08.woff similarity index 100% rename from angular/Roboto-MediumItalic.18ff1628c628080166c1.woff rename to frontend/Roboto-MediumItalic.e06fb533801cbb08.woff diff --git a/angular/Roboto-Regular.64cfb66c866ea50cad47.woff2 b/frontend/Roboto-Regular.475ba9e4e2d63456.woff2 similarity index 100% rename from angular/Roboto-Regular.64cfb66c866ea50cad47.woff2 rename to frontend/Roboto-Regular.475ba9e4e2d63456.woff2 diff --git a/angular/Roboto-Regular.e02e9d6ff5547f7e9962.woff b/frontend/Roboto-Regular.bcefbfee882bc1cb.woff similarity index 100% rename from angular/Roboto-Regular.e02e9d6ff5547f7e9962.woff rename to frontend/Roboto-Regular.bcefbfee882bc1cb.woff diff --git a/angular/Roboto-RegularItalic.5ea38fff9eebef99c5df.woff b/frontend/Roboto-RegularItalic.0668fae6af0cf8c2.woff similarity index 100% rename from angular/Roboto-RegularItalic.5ea38fff9eebef99c5df.woff rename to frontend/Roboto-RegularItalic.0668fae6af0cf8c2.woff diff --git a/angular/Roboto-RegularItalic.4dd2af1e8df532f41db8.woff2 b/frontend/Roboto-RegularItalic.e3a9ebdaac06bbc4.woff2 similarity index 100% rename from angular/Roboto-RegularItalic.4dd2af1e8df532f41db8.woff2 rename to frontend/Roboto-RegularItalic.e3a9ebdaac06bbc4.woff2 diff --git a/angular/Roboto-Thin.e7f7c82374bd0ebef14b.woff b/frontend/Roboto-Thin.c13c157cb81e8ebb.woff similarity index 100% rename from angular/Roboto-Thin.e7f7c82374bd0ebef14b.woff rename to frontend/Roboto-Thin.c13c157cb81e8ebb.woff diff --git a/angular/Roboto-Thin.dbd56bd3357dc3617fe5.woff2 b/frontend/Roboto-Thin.f7a95c9c5999532c.woff2 similarity index 100% rename from angular/Roboto-Thin.dbd56bd3357dc3617fe5.woff2 rename to frontend/Roboto-Thin.f7a95c9c5999532c.woff2 diff --git a/angular/Roboto-ThinItalic.5dd9349c940073834e9a.woff b/frontend/Roboto-ThinItalic.1111028df6cea564.woff similarity index 100% rename from angular/Roboto-ThinItalic.5dd9349c940073834e9a.woff rename to frontend/Roboto-ThinItalic.1111028df6cea564.woff diff --git a/angular/Roboto-ThinItalic.a8cef84f735ef887abdc.woff2 b/frontend/Roboto-ThinItalic.b0e084abf689f393.woff2 similarity index 100% rename from angular/Roboto-ThinItalic.a8cef84f735ef887abdc.woff2 rename to frontend/Roboto-ThinItalic.b0e084abf689f393.woff2 diff --git a/angular/assets/images/RTL-Horse-BY.pdf b/frontend/assets/images/RTL-Horse-BY.pdf similarity index 100% rename from angular/assets/images/RTL-Horse-BY.pdf rename to frontend/assets/images/RTL-Horse-BY.pdf diff --git a/angular/assets/images/RTL-Horse-BY.svg b/frontend/assets/images/RTL-Horse-BY.svg similarity index 100% rename from angular/assets/images/RTL-Horse-BY.svg rename to frontend/assets/images/RTL-Horse-BY.svg diff --git a/angular/assets/images/RTL-Horse-Dark-BY.svg b/frontend/assets/images/RTL-Horse-Dark-BY.svg similarity index 100% rename from angular/assets/images/RTL-Horse-Dark-BY.svg rename to frontend/assets/images/RTL-Horse-Dark-BY.svg diff --git a/angular/assets/images/RTL-Horse-with-text-BY.svg b/frontend/assets/images/RTL-Horse-with-text-BY.svg similarity index 100% rename from angular/assets/images/RTL-Horse-with-text-BY.svg rename to frontend/assets/images/RTL-Horse-with-text-BY.svg diff --git a/angular/assets/images/favicon-dark/android-chrome-192x192.png b/frontend/assets/images/favicon-dark/android-chrome-192x192.png similarity index 100% rename from angular/assets/images/favicon-dark/android-chrome-192x192.png rename to frontend/assets/images/favicon-dark/android-chrome-192x192.png diff --git a/angular/assets/images/favicon-dark/android-chrome-512x512.png b/frontend/assets/images/favicon-dark/android-chrome-512x512.png similarity index 100% rename from angular/assets/images/favicon-dark/android-chrome-512x512.png rename to frontend/assets/images/favicon-dark/android-chrome-512x512.png diff --git a/angular/assets/images/favicon-dark/apple-touch-icon.png b/frontend/assets/images/favicon-dark/apple-touch-icon.png similarity index 100% rename from angular/assets/images/favicon-dark/apple-touch-icon.png rename to frontend/assets/images/favicon-dark/apple-touch-icon.png diff --git a/angular/assets/images/favicon-dark/browserconfig.xml b/frontend/assets/images/favicon-dark/browserconfig.xml similarity index 100% rename from angular/assets/images/favicon-dark/browserconfig.xml rename to frontend/assets/images/favicon-dark/browserconfig.xml diff --git a/angular/assets/images/favicon-dark/favicon-16x16.png b/frontend/assets/images/favicon-dark/favicon-16x16.png similarity index 100% rename from angular/assets/images/favicon-dark/favicon-16x16.png rename to frontend/assets/images/favicon-dark/favicon-16x16.png diff --git a/angular/assets/images/favicon-dark/favicon-32x32.png b/frontend/assets/images/favicon-dark/favicon-32x32.png similarity index 100% rename from angular/assets/images/favicon-dark/favicon-32x32.png rename to frontend/assets/images/favicon-dark/favicon-32x32.png diff --git a/angular/assets/images/favicon-dark/favicon.ico b/frontend/assets/images/favicon-dark/favicon.ico similarity index 100% rename from angular/assets/images/favicon-dark/favicon.ico rename to frontend/assets/images/favicon-dark/favicon.ico diff --git a/angular/assets/images/favicon-dark/mstile-150x150.png b/frontend/assets/images/favicon-dark/mstile-150x150.png similarity index 100% rename from angular/assets/images/favicon-dark/mstile-150x150.png rename to frontend/assets/images/favicon-dark/mstile-150x150.png diff --git a/angular/assets/images/favicon-dark/safari-pinned-tab.svg b/frontend/assets/images/favicon-dark/safari-pinned-tab.svg similarity index 100% rename from angular/assets/images/favicon-dark/safari-pinned-tab.svg rename to frontend/assets/images/favicon-dark/safari-pinned-tab.svg diff --git a/angular/assets/images/favicon-dark/site.webmanifest b/frontend/assets/images/favicon-dark/site.webmanifest similarity index 100% rename from angular/assets/images/favicon-dark/site.webmanifest rename to frontend/assets/images/favicon-dark/site.webmanifest diff --git a/angular/assets/images/favicon-light/android-chrome-192x192.png b/frontend/assets/images/favicon-light/android-chrome-192x192.png similarity index 100% rename from angular/assets/images/favicon-light/android-chrome-192x192.png rename to frontend/assets/images/favicon-light/android-chrome-192x192.png diff --git a/angular/assets/images/favicon-light/android-chrome-512x512.png b/frontend/assets/images/favicon-light/android-chrome-512x512.png similarity index 100% rename from angular/assets/images/favicon-light/android-chrome-512x512.png rename to frontend/assets/images/favicon-light/android-chrome-512x512.png diff --git a/angular/assets/images/favicon-light/apple-touch-icon.png b/frontend/assets/images/favicon-light/apple-touch-icon.png similarity index 100% rename from angular/assets/images/favicon-light/apple-touch-icon.png rename to frontend/assets/images/favicon-light/apple-touch-icon.png diff --git a/angular/assets/images/favicon-light/browserconfig.xml b/frontend/assets/images/favicon-light/browserconfig.xml similarity index 100% rename from angular/assets/images/favicon-light/browserconfig.xml rename to frontend/assets/images/favicon-light/browserconfig.xml diff --git a/angular/assets/images/favicon-light/favicon-16x16.png b/frontend/assets/images/favicon-light/favicon-16x16.png similarity index 100% rename from angular/assets/images/favicon-light/favicon-16x16.png rename to frontend/assets/images/favicon-light/favicon-16x16.png diff --git a/angular/assets/images/favicon-light/favicon-32x32.png b/frontend/assets/images/favicon-light/favicon-32x32.png similarity index 100% rename from angular/assets/images/favicon-light/favicon-32x32.png rename to frontend/assets/images/favicon-light/favicon-32x32.png diff --git a/angular/assets/images/favicon-light/favicon.ico b/frontend/assets/images/favicon-light/favicon.ico similarity index 100% rename from angular/assets/images/favicon-light/favicon.ico rename to frontend/assets/images/favicon-light/favicon.ico diff --git a/angular/assets/images/favicon-light/mstile-150x150.png b/frontend/assets/images/favicon-light/mstile-150x150.png similarity index 100% rename from angular/assets/images/favicon-light/mstile-150x150.png rename to frontend/assets/images/favicon-light/mstile-150x150.png diff --git a/angular/assets/images/favicon-light/safari-pinned-tab.svg b/frontend/assets/images/favicon-light/safari-pinned-tab.svg similarity index 100% rename from angular/assets/images/favicon-light/safari-pinned-tab.svg rename to frontend/assets/images/favicon-light/safari-pinned-tab.svg diff --git a/angular/assets/images/favicon-light/site.webmanifest b/frontend/assets/images/favicon-light/site.webmanifest similarity index 100% rename from angular/assets/images/favicon-light/site.webmanifest rename to frontend/assets/images/favicon-light/site.webmanifest diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 00000000..1609c02e --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,18 @@ + + + RTL + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/main.a3e8391c76b05ce6.js b/frontend/main.a3e8391c76b05ce6.js new file mode 100644 index 00000000..caf462a2 --- /dev/null +++ b/frontend/main.a3e8391c76b05ce6.js @@ -0,0 +1 @@ +var w5=Object.defineProperty,A5=Object.defineProperties,E5=Object.getOwnPropertyDescriptors,m8=Object.getOwnPropertySymbols,T5=Object.prototype.hasOwnProperty,S5=Object.prototype.propertyIsEnumerable,g8=(Ue,K,m)=>K in Ue?w5(Ue,K,{enumerable:!0,configurable:!0,writable:!0,value:m}):Ue[K]=m,ro=(Ue,K)=>{for(var m in K||(K={}))T5.call(K,m)&&g8(Ue,m,K[m]);if(m8)for(var m of m8(K))S5.call(K,m)&&g8(Ue,m,K[m]);return Ue},_8=(Ue,K)=>A5(Ue,E5(K));(self.webpackChunkRTLApp=self.webpackChunkRTLApp||[]).push([[179],{801:(Ue,K,m)=>{"use strict";m.d(K,{Sbq:()=>w,Vfw:()=>W,N2j:()=>oe,DL8:()=>X,BDt:()=>rt,koM:()=>Pr,OS1:()=>Mr,dT$:()=>Kt,mh3:()=>Jt,b7W:()=>Ai,kZ_:()=>Ar,q7m:()=>Ot,FlN:()=>Xn,KOR:()=>Ba,Ssp:()=>Fo,eHv:()=>Gr,Mdf:()=>Fl,Aq:()=>aa,qO$:()=>Th,vqe:()=>cs,sqG:()=>w1,Krp:()=>gl,uli:()=>H0,nNP:()=>S1,byT:()=>U0,SuH:()=>R1,co4:()=>J0,aj4:()=>Pc,kXW:()=>Ja,XsY:()=>bl,USL:()=>Hc,r8p:()=>pd,o4t:()=>xd,Psp:()=>j1,dLy:()=>g2,FpQ:()=>b2,wn1:()=>vr,xf3:()=>Pd,HLz:()=>$1,NBC:()=>U2,CgH:()=>$a,B$L:()=>jr,hkK:()=>X2,hnx:()=>Eu,gNZ:()=>Kc,FJU:()=>l0,FVb:()=>Qc,X5K:()=>ih,wyP:()=>ah});var w={prefix:"fas",iconName:"angle-double-down",icon:[320,512,[],"f103","M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"]},W={prefix:"fas",iconName:"angle-double-up",icon:[320,512,[],"f102","M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"]},oe={prefix:"fas",iconName:"archive",icon:[512,512,[],"f187","M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"]},X={prefix:"fas",iconName:"balance-scale",icon:[640,512,[],"f24e","M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},rt={prefix:"fas",iconName:"bolt",icon:[320,512,[],"f0e7","M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z"]},Pr={prefix:"fas",iconName:"chart-bar",icon:[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},Mr={prefix:"fas",iconName:"chart-pie",icon:[544,512,[],"f200","M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"]},Kt={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"]},Jt={prefix:"fas",iconName:"code-branch",icon:[384,512,[],"f126","M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"]},Ai={prefix:"fas",iconName:"cog",icon:[512,512,[],"f013","M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},Ar={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"]},Ot={prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]},Xn={prefix:"fas",iconName:"dumbbell",icon:[640,512,[],"f44b","M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"]},Ba={prefix:"fas",iconName:"eject",icon:[448,512,[],"f052","M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"]},Fo={prefix:"fas",iconName:"exchange-alt",icon:[512,512,[],"f362","M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"]},Gr={prefix:"fas",iconName:"exclamation-triangle",icon:[576,512,[],"f071","M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},Fl={prefix:"fas",iconName:"eye",icon:[576,512,[],"f06e","M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"]},aa={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"]},Th={prefix:"fas",iconName:"history",icon:[512,512,[],"f1da","M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"]},cs={prefix:"fas",iconName:"infinity",icon:[640,512,[],"f534","M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"]},w1={prefix:"fas",iconName:"info-circle",icon:[512,512,[],"f05a","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"]},gl={prefix:"fas",iconName:"layer-group",icon:[512,512,[],"f5fd","M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"]},H0={prefix:"fas",iconName:"life-ring",icon:[512,512,[],"f1cd","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"]},S1={prefix:"fas",iconName:"link",icon:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"]},U0={prefix:"fas",iconName:"lock",icon:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"]},R1={prefix:"fas",iconName:"map-signs",icon:[512,512,[],"f277","M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"]},J0={prefix:"fas",iconName:"money-bill-alt",icon:[640,512,[],"f3d1","M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]},Pc={prefix:"fas",iconName:"money-bill-wave",icon:[640,512,[],"f53a","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"]},Ja={prefix:"fas",iconName:"network-wired",icon:[640,512,[],"f6ff","M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"]},bl={prefix:"fas",iconName:"paint-brush",icon:[512,512,[],"f1fc","M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"]},Hc={prefix:"fas",iconName:"percentage",icon:[384,512,[],"f541","M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"]},pd={prefix:"fas",iconName:"plus",icon:[448,512,[],"f067","M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},xd={prefix:"fas",iconName:"project-diagram",icon:[640,512,[],"f542","M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"]},j1={prefix:"fas",iconName:"question",icon:[384,512,[],"f128","M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"]},g2={prefix:"fas",iconName:"receipt",icon:[384,512,[],"f543","M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"]},b2={prefix:"fas",iconName:"route",icon:[512,512,[],"f4d7","M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},vr={prefix:"fas",iconName:"search",icon:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"]},Pd={prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"]},$1={prefix:"fas",iconName:"tachometer-alt",icon:[576,512,[],"f3fd","M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},U2={prefix:"fas",iconName:"times",icon:[352,512,[],"f00d","M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"]},$a={prefix:"fas",iconName:"tools",icon:[512,512,[],"f7d9","M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"]},jr={prefix:"fas",iconName:"unlock-alt",icon:[448,512,[],"f13e","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"]},X2={prefix:"fas",iconName:"user-check",icon:[640,512,[],"f4fc","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"]},Eu={prefix:"fas",iconName:"user-clock",icon:[640,512,[],"f4fd","M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"]},Kc={prefix:"fas",iconName:"user-cog",icon:[640,512,[],"f4fe","M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"]},l0={prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"]},Qc={prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]},ih={prefix:"fas",iconName:"wallet",icon:[512,512,[],"f555","M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},ah={prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"]}},1443:(Ue,K,m)=>{"use strict";m.d(K,{Ni:()=>v,xH:()=>M,oo:()=>s,CN:()=>C,CX:()=>c,SN:()=>P,RX:()=>o,HJ:()=>O,I8:()=>T,EG:()=>R,Lu:()=>S,g3:()=>D,xS:()=>w,_E:()=>U,$W:()=>W,Z8:()=>ee,El:()=>ie,X3:()=>fe,z:()=>de,EK:()=>ne,cQ:()=>se,HI:()=>oe,oV:()=>y,TM:()=>i,WO:()=>a,kL:()=>p,UR:()=>u,as:()=>_,pW:()=>L,YX:()=>I,BL:()=>x,OG:()=>r,Sf:()=>b,$A:()=>J,n7:()=>F,v_:()=>B,u0:()=>te,QJ:()=>xe,Ip:()=>Re,M7:()=>Fe,WM:()=>q,Nr:()=>j,Rd:()=>we,YP:()=>Ae,aL:()=>le,g6:()=>We,Wi:()=>yt,Ly:()=>Ve,UH:()=>ue,eM:()=>Te,VD:()=>ke,yl:()=>Y,Zu:()=>X,dh:()=>he,ZH:()=>Me,i9:()=>ze,JK:()=>ht,uT:()=>it,d7:()=>ft,e9:()=>nt,_9:()=>st,en:()=>wt});var e=m(5620),t=m(7731);const v=(0,e.PH)(t.sW.UPDATE_API_CALL_STATUS_CL,(0,e.Ky)()),M=(0,e.PH)(t.sW.RESET_CL_STORE,(0,e.Ky)()),s=(0,e.PH)(t.sW.SET_CHILD_NODE_SETTINGS_CL,(0,e.Ky)()),C=(0,e.PH)(t.sW.FETCH_INFO_CL,(0,e.Ky)()),c=(0,e.PH)(t.sW.SET_INFO_CL,(0,e.Ky)()),P=(0,e.PH)(t.sW.FETCH_FEES_CL),o=(0,e.PH)(t.sW.SET_FEES_CL,(0,e.Ky)()),O=(0,e.PH)(t.sW.FETCH_FEE_RATES_CL,(0,e.Ky)()),T=(0,e.PH)(t.sW.SET_FEE_RATES_CL,(0,e.Ky)()),R=(0,e.PH)(t.sW.FETCH_BALANCE_CL),S=(0,e.PH)(t.sW.SET_BALANCE_CL,(0,e.Ky)()),D=(0,e.PH)(t.sW.FETCH_LOCAL_REMOTE_BALANCE_CL),w=(0,e.PH)(t.sW.SET_LOCAL_REMOTE_BALANCE_CL,(0,e.Ky)()),U=(0,e.PH)(t.sW.GET_NEW_ADDRESS_CL,(0,e.Ky)()),W=((0,e.PH)(t.sW.SET_NEW_ADDRESS_CL,(0,e.Ky)()),(0,e.PH)(t.sW.FETCH_PEERS_CL)),ee=(0,e.PH)(t.sW.SET_PEERS_CL,(0,e.Ky)()),ie=(0,e.PH)(t.sW.SAVE_NEW_PEER_CL,(0,e.Ky)()),fe=((0,e.PH)(t.sW.NEWLY_ADDED_PEER_CL,(0,e.Ky)()),(0,e.PH)(t.sW.ADD_PEER_CL,(0,e.Ky)())),de=(0,e.PH)(t.sW.DETACH_PEER_CL,(0,e.Ky)()),ne=(0,e.PH)(t.sW.REMOVE_PEER_CL,(0,e.Ky)()),se=(0,e.PH)(t.sW.FETCH_PAYMENTS_CL),oe=(0,e.PH)(t.sW.SET_PAYMENTS_CL,(0,e.Ky)()),y=(0,e.PH)(t.sW.SEND_PAYMENT_CL,(0,e.Ky)()),i=(0,e.PH)(t.sW.SEND_PAYMENT_STATUS_CL,(0,e.Ky)()),a=(0,e.PH)(t.sW.GET_QUERY_ROUTES_CL,(0,e.Ky)()),p=(0,e.PH)(t.sW.SET_QUERY_ROUTES_CL,(0,e.Ky)()),u=(0,e.PH)(t.sW.FETCH_CHANNELS_CL),_=(0,e.PH)(t.sW.SET_CHANNELS_CL,(0,e.Ky)()),L=(0,e.PH)(t.sW.UPDATE_CHANNEL_CL,(0,e.Ky)()),I=(0,e.PH)(t.sW.SAVE_NEW_CHANNEL_CL,(0,e.Ky)()),x=(0,e.PH)(t.sW.CLOSE_CHANNEL_CL,(0,e.Ky)()),r=(0,e.PH)(t.sW.REMOVE_CHANNEL_CL,(0,e.Ky)()),b=(0,e.PH)(t.sW.PEER_LOOKUP_CL,(0,e.Ky)()),J=(0,e.PH)(t.sW.CHANNEL_LOOKUP_CL,(0,e.Ky)()),F=(0,e.PH)(t.sW.INVOICE_LOOKUP_CL,(0,e.Ky)()),B=(0,e.PH)(t.sW.SET_LOOKUP_CL,(0,e.Ky)()),te=(0,e.PH)(t.sW.GET_FORWARDING_HISTORY_CL,(0,e.Ky)()),xe=(0,e.PH)(t.sW.SET_FORWARDING_HISTORY_CL,(0,e.Ky)()),Re=(0,e.PH)(t.sW.GET_FAILED_FORWARDING_HISTORY_CL),Fe=(0,e.PH)(t.sW.SET_FAILED_FORWARDING_HISTORY_CL,(0,e.Ky)()),q=(0,e.PH)(t.sW.FETCH_INVOICES_CL,(0,e.Ky)()),j=(0,e.PH)(t.sW.SET_INVOICES_CL,(0,e.Ky)()),we=(0,e.PH)(t.sW.SAVE_NEW_INVOICE_CL,(0,e.Ky)()),Ae=(0,e.PH)(t.sW.ADD_INVOICE_CL,(0,e.Ky)()),le=(0,e.PH)(t.sW.UPDATE_INVOICE_CL,(0,e.Ky)()),We=(0,e.PH)(t.sW.DELETE_EXPIRED_INVOICE_CL,(0,e.Ky)()),yt=(0,e.PH)(t.sW.SET_CHANNEL_TRANSACTION_CL,(0,e.Ky)()),Ve=((0,e.PH)(t.sW.SET_CHANNEL_TRANSACTION_RES_CL,(0,e.Ky)()),(0,e.PH)(t.sW.FETCH_UTXOS_CL)),ue=(0,e.PH)(t.sW.SET_UTXOS_CL,(0,e.Ky)()),Te=(0,e.PH)(t.sW.FETCH_OFFER_INVOICE_CL,(0,e.Ky)()),ke=(0,e.PH)(t.sW.SET_OFFER_INVOICE_CL,(0,e.Ky)()),Y=(0,e.PH)(t.sW.FETCH_OFFERS_CL),X=(0,e.PH)(t.sW.SET_OFFERS_CL,(0,e.Ky)()),he=(0,e.PH)(t.sW.SAVE_NEW_OFFER_CL,(0,e.Ky)()),Me=(0,e.PH)(t.sW.ADD_OFFER_CL,(0,e.Ky)()),ze=(0,e.PH)(t.sW.DISABLE_OFFER_CL,(0,e.Ky)()),ht=(0,e.PH)(t.sW.UPDATE_OFFER_CL,(0,e.Ky)()),it=(0,e.PH)(t.sW.FETCH_OFFER_BOOKMARKS_CL),ft=(0,e.PH)(t.sW.SET_OFFER_BOOKMARKS_CL,(0,e.Ky)()),nt=(0,e.PH)(t.sW.ADD_UPDATE_OFFER_BOOKMARK_CL,(0,e.Ky)()),st=(0,e.PH)(t.sW.DELETE_OFFER_BOOKMARK_CL,(0,e.Ky)()),wt=(0,e.PH)(t.sW.REMOVE_OFFER_BOOKMARK_CL,(0,e.Ky)())},3504:(Ue,K,m)=>{"use strict";m.d(K,{s:()=>i});var e=m(6642),t=m(7579),v=m(9646),M=m(8306),s=m(4128),C=m(5577),c=m(2722),P=m(4004),o=m(262),O=m(1365),T=m(2340),R=m(1786),S=m(1954),D=m(7731),w=m(7861),U=m(1443),G=m(7080),W=m(1189),ee=m(5e3),ie=m(8138),_e=m(5620),fe=m(5986),de=m(62),ne=m(5043),se=m(9291),oe=m(7998),y=m(9808);let i=(()=>{class a{constructor(u,_,L,I,x,r,b,J,F){this.actions=u,this.httpClient=_,this.store=L,this.sessionService=I,this.commonService=x,this.logger=r,this.router=b,this.wsService=J,this.location=F,this.CHILD_API_URL=T.T5+"/cl",this.flgInitialized=!1,this.unSubs=[new t.x,new t.x,new t.x],this.infoFetchCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_INFO_CL),(0,C.z)(B=>(this.flgInitialized=!1,this.store.dispatch((0,w.lC)({payload:this.CHILD_API_URL})),this.store.dispatch((0,U.Ni)({payload:{action:"FetchInfo",status:D.Bn.INITIATED}})),this.store.dispatch((0,w.ac)({payload:D.m6.GET_NODE_INFO})),this.httpClient.get(this.CHILD_API_URL+T.NZ.GETINFO_API).pipe((0,c.R)(this.actions.pipe((0,e.l4)(D.pg.SET_SELECTED_NODE))),(0,P.U)(te=>(this.logger.info(te),te.chains&&te.chains.length&&te.chains[0]&&"object"==typeof te.chains[0]&&te.chains[0].hasOwnProperty("chain")&&te.chains[0].chain.toLowerCase().indexOf("bitcoin")<0?(this.store.dispatch((0,U.Ni)({payload:{action:"FetchInfo",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.GET_NODE_INFO})),this.store.dispatch((0,w.ts)()),this.store.dispatch((0,w.qR)({payload:{data:{type:D.n_.ERROR,alertTitle:"Shitcoin Found",titleMessage:"Sorry Not Sorry, RTL is Bitcoin Only!"}}})),{type:D.pg.LOGOUT}):(this.initializeRemainingData(te,B.payload.loadPage),this.store.dispatch((0,U.Ni)({payload:{action:"FetchInfo",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.GET_NODE_INFO})),{type:D.sW.SET_INFO_CL,payload:te||{}}))),(0,o.K)(te=>{const xe=this.commonService.extractErrorCode(te),Re="ETIMEDOUT"===xe?"Unable to Connect to C-Lightning Server.":this.commonService.extractErrorMessage(te);return this.router.navigate(["/error"],{state:{errorCode:xe,errorMessage:Re}}),this.handleErrorWithoutAlert("FetchInfo",D.m6.GET_NODE_INFO,"Fetching Node Info Failed.",{status:xe,error:Re}),(0,v.of)({type:D.pg.VOID})})))))),this.fetchFeesCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_FEES_CL),(0,C.z)(()=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchFees",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.FEES_API))),(0,P.U)(B=>(this.logger.info(B),this.store.dispatch((0,U.Ni)({payload:{action:"FetchFees",status:D.Bn.COMPLETED}})),{type:D.sW.SET_FEES_CL,payload:B||{}})),(0,o.K)(B=>(this.handleErrorWithoutAlert("FetchFees",D.m6.NO_SPINNER,"Fetching Fees Failed.",B),(0,v.of)({type:D.pg.VOID}))))),this.fetchFeeRatesCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_FEE_RATES_CL),(0,C.z)(B=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchFeeRates"+B.payload,status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.NETWORK_API+"/feeRates/"+B.payload).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"FetchFeeRates"+B.payload,status:D.Bn.COMPLETED}})),{type:D.sW.SET_FEE_RATES_CL,payload:te||{}})),(0,o.K)(te=>(this.handleErrorWithoutAlert("FetchFeeRates"+B.payload,D.m6.NO_SPINNER,"Fetching Fee Rates Failed.",te),(0,v.of)({type:D.pg.VOID})))))))),this.fetchBalanceCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_BALANCE_CL),(0,C.z)(()=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchBalance",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.BALANCE_API))),(0,P.U)(B=>(this.logger.info(B),this.store.dispatch((0,U.Ni)({payload:{action:"FetchBalance",status:D.Bn.COMPLETED}})),{type:D.sW.SET_BALANCE_CL,payload:B||{}})),(0,o.K)(B=>(this.handleErrorWithoutAlert("FetchBalance",D.m6.NO_SPINNER,"Fetching Balances Failed.",B),(0,v.of)({type:D.pg.VOID}))))),this.fetchLocalRemoteBalanceCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_LOCAL_REMOTE_BALANCE_CL),(0,C.z)(()=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchLocalRemoteBalance",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.CHANNELS_API+"/localremotebalance"))),(0,P.U)(B=>(this.logger.info(B),this.store.dispatch((0,U.Ni)({payload:{action:"FetchLocalRemoteBalance",status:D.Bn.COMPLETED}})),{type:D.sW.SET_LOCAL_REMOTE_BALANCE_CL,payload:B||{}})),(0,o.K)(B=>(this.handleErrorWithoutAlert("FetchLocalRemoteBalance",D.m6.NO_SPINNER,"Fetching Balances Failed.",B),(0,v.of)({type:D.pg.VOID}))))),this.getNewAddressCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.GET_NEW_ADDRESS_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.GENERATE_NEW_ADDRESS})),this.httpClient.get(this.CHILD_API_URL+T.NZ.ON_CHAIN_API+"?type="+B.payload.addressCode).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,w.uO)({payload:D.m6.GENERATE_NEW_ADDRESS})),{type:D.sW.SET_NEW_ADDRESS_CL,payload:te&&te.address?te.address:{}})),(0,o.K)(te=>(this.handleErrorWithAlert("GenerateNewAddress",D.m6.GENERATE_NEW_ADDRESS,"Generate New Address Failed",this.CHILD_API_URL+T.NZ.ON_CHAIN_API+"?type="+B.payload.addressId,te),(0,v.of)({type:D.pg.VOID})))))))),this.setNewAddressCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SET_NEW_ADDRESS_CL),(0,P.U)(B=>(this.logger.info(B.payload),B.payload))),{dispatch:!1}),this.peersFetchCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_PEERS_CL),(0,C.z)(()=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchPeers",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.PEERS_API).pipe((0,P.U)(B=>(this.logger.info(B),this.store.dispatch((0,U.Ni)({payload:{action:"FetchPeers",status:D.Bn.COMPLETED}})),{type:D.sW.SET_PEERS_CL,payload:B||[]})),(0,o.K)(B=>(this.handleErrorWithoutAlert("FetchPeers",D.m6.NO_SPINNER,"Fetching Peers Failed.",B),(0,v.of)({type:D.pg.VOID})))))))),this.saveNewPeerCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SAVE_NEW_PEER_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.CONNECT_PEER})),this.store.dispatch((0,U.Ni)({payload:{action:"SaveNewPeer",status:D.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+T.NZ.PEERS_API,{id:B.payload.id}).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"SaveNewPeer",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.CONNECT_PEER})),this.store.dispatch((0,U.Z8)({payload:te||[]})),{type:D.sW.NEWLY_ADDED_PEER_CL,payload:{peer:te.find(xe=>0===B.payload.id.indexOf(xe.id))}})),(0,o.K)(te=>(this.handleErrorWithoutAlert("SaveNewPeer",D.m6.CONNECT_PEER,"Peer Connection Failed.",te),(0,v.of)({type:D.pg.VOID})))))))),this.detachPeerCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.DETACH_PEER_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.DISCONNECT_PEER})),this.httpClient.delete(this.CHILD_API_URL+T.NZ.PEERS_API+"/"+B.payload.id+"?force="+B.payload.force).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,w.uO)({payload:D.m6.DISCONNECT_PEER})),this.store.dispatch((0,w.jW)({payload:"Peer Disconnected Successfully!"})),{type:D.sW.REMOVE_PEER_CL,payload:{id:B.payload.id}})),(0,o.K)(te=>(this.handleErrorWithAlert("PeerDisconnect",D.m6.DISCONNECT_PEER,"Unable to Detach Peer. Try again later.",this.CHILD_API_URL+T.NZ.PEERS_API+"/"+B.payload.id,te),(0,v.of)({type:D.pg.VOID})))))))),this.channelsFetchCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_CHANNELS_CL),(0,C.z)(()=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchChannels",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.CHANNELS_API+"/listChannels"))),(0,P.U)(B=>{this.logger.info(B),this.store.dispatch((0,U.Ni)({payload:{action:"FetchChannels",status:D.Bn.COMPLETED}})),this.store.dispatch((0,U.u0)({payload:{status:"settled"}}));const te={activeChannels:[],pendingChannels:[],inactiveChannels:[]};return B.forEach(xe=>{"CHANNELD_NORMAL"===xe.state?xe.connected?te.activeChannels.push(xe):te.inactiveChannels.push(xe):te.pendingChannels.push(xe)}),{type:D.sW.SET_CHANNELS_CL,payload:te}}),(0,o.K)(B=>(this.handleErrorWithoutAlert("FetchChannels",D.m6.NO_SPINNER,"Fetching Channels Failed.",B),(0,v.of)({type:D.pg.VOID}))))),this.openNewChannelCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SAVE_NEW_CHANNEL_CL),(0,C.z)(B=>{this.store.dispatch((0,w.ac)({payload:D.m6.OPEN_CHANNEL})),this.store.dispatch((0,U.Ni)({payload:{action:"SaveNewChannel",status:D.Bn.INITIATED}}));const te={id:B.payload.peerId,satoshis:B.payload.satoshis,feeRate:B.payload.feeRate,announce:B.payload.announce,minconf:B.payload.minconf?B.payload.minconf:null};return B.payload.utxos&&(te.utxos=B.payload.utxos),this.httpClient.post(this.CHILD_API_URL+T.NZ.CHANNELS_API,te).pipe((0,P.U)(xe=>(this.logger.info(xe),this.store.dispatch((0,U.Ni)({payload:{action:"SaveNewChannel",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.OPEN_CHANNEL})),this.store.dispatch((0,w.jW)({payload:"Channel Added Successfully!"})),this.store.dispatch((0,U.EG)()),this.store.dispatch((0,U.Ly)()),{type:D.sW.FETCH_CHANNELS_CL})),(0,o.K)(xe=>(this.handleErrorWithoutAlert("SaveNewChannel",D.m6.OPEN_CHANNEL,"Opening Channel Failed.",xe),(0,v.of)({type:D.pg.VOID}))))}))),this.updateChannelCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.UPDATE_CHANNEL_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.UPDATE_CHAN_POLICY})),this.httpClient.post(this.CHILD_API_URL+T.NZ.CHANNELS_API+"/setChannelFee",{id:B.payload.channelId,base:B.payload.baseFeeMsat,ppm:B.payload.feeRate}).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,w.uO)({payload:D.m6.UPDATE_CHAN_POLICY})),this.store.dispatch((0,w.jW)("all"===B.payload.channelId?{payload:{message:"All Channels Updated Successfully. Fee policy updates may take some time to reflect on the channel.",duration:5e3}}:{payload:{message:"Channel Updated Successfully. Fee policy updates may take some time to reflect on the channel.",duration:5e3}})),{type:D.sW.FETCH_CHANNELS_CL})),(0,o.K)(te=>(this.handleErrorWithAlert("UpdateChannel",D.m6.UPDATE_CHAN_POLICY,"Update Channel Failed",this.CHILD_API_URL+T.NZ.CHANNELS_API,te),(0,v.of)({type:D.pg.VOID})))))))),this.closeChannelCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.CLOSE_CHANNEL_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:B.payload.force?D.m6.FORCE_CLOSE_CHANNEL:D.m6.CLOSE_CHANNEL})),this.httpClient.delete(this.CHILD_API_URL+T.NZ.CHANNELS_API+"/"+B.payload.channelId+(B.payload.force?"?force="+B.payload.force:"")).pipe((0,P.U)(xe=>(this.logger.info(xe),this.store.dispatch((0,w.uO)({payload:B.payload.force?D.m6.FORCE_CLOSE_CHANNEL:D.m6.CLOSE_CHANNEL})),this.store.dispatch((0,U.UR)()),this.store.dispatch((0,U.g3)()),this.store.dispatch((0,w.jW)({payload:"Channel Closed Successfully!"})),{type:D.sW.REMOVE_CHANNEL_CL,payload:B.payload})),(0,o.K)(xe=>(this.handleErrorWithAlert("CloseChannel",B.payload.force?D.m6.FORCE_CLOSE_CHANNEL:D.m6.CLOSE_CHANNEL,"Unable to Close Channel. Try again later.",this.CHILD_API_URL+T.NZ.CHANNELS_API,xe),(0,v.of)({type:D.pg.VOID})))))))),this.paymentsFetchCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_PAYMENTS_CL),(0,C.z)(()=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchPayments",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.PAYMENTS_API))),(0,P.U)(B=>(this.logger.info(B),this.store.dispatch((0,U.Ni)({payload:{action:"FetchPayments",status:D.Bn.COMPLETED}})),{type:D.sW.SET_PAYMENTS_CL,payload:B||[]})),(0,o.K)(B=>(this.handleErrorWithoutAlert("FetchPayments",D.m6.NO_SPINNER,"Fetching Payments Failed.",B),(0,v.of)({type:D.pg.VOID}))))),this.fetchOfferInvoiceCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_OFFER_INVOICE_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.FETCH_INVOICE})),this.store.dispatch((0,U.Ni)({payload:{action:"FetchOfferInvoice",status:D.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+T.NZ.OFFERS_API+"/fetchOfferInvoice",B.payload).pipe((0,P.U)(te=>{this.logger.info(te),setTimeout(()=>{this.store.dispatch((0,U.Ni)({payload:{action:"FetchOfferInvoice",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.FETCH_INVOICE})),this.store.dispatch((0,U.VD)({payload:te||{}}))},500)}),(0,o.K)(te=>(this.handleErrorWithoutAlert("FetchOfferInvoice",D.m6.FETCH_INVOICE,"Offer Invoice Fetch Failed",te),(0,v.of)({type:D.pg.VOID}))))))),{dispatch:!1}),this.setOfferInvoiceCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SET_OFFER_INVOICE_CL),(0,P.U)(B=>(this.logger.info(B.payload),B.payload))),{dispatch:!1}),this.sendPaymentCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SEND_PAYMENT_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:B.payload.uiMessage})),this.store.dispatch((0,U.Ni)({payload:{action:"SendPayment",status:D.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+T.NZ.PAYMENTS_API,B.payload).pipe((0,P.U)(te=>{this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"SendPayment",status:D.Bn.COMPLETED}}));let xe="Payment Sent Successfully!";te.saveToDBError&&(xe="Payment Sent Successfully but Offer Saving to Database Failed."),te.saveToDBResponse&&"NA"!==te.saveToDBResponse&&(this.store.dispatch((0,U.e9)({payload:te.saveToDBResponse})),xe="Payment Sent Successfully and Offer Saved to Database."),setTimeout(()=>{this.store.dispatch((0,U.UR)()),this.store.dispatch((0,U.EG)()),this.store.dispatch((0,U.cQ)()),this.store.dispatch((0,w.uO)({payload:B.payload.uiMessage})),this.store.dispatch((0,w.jW)({payload:xe})),this.store.dispatch((0,U.TM)({payload:te.paymentResponse}))},1e3)}),(0,o.K)(te=>(this.logger.error("Error: "+JSON.stringify(te)),B.payload.fromDialog?this.handleErrorWithoutAlert("SendPayment",B.payload.uiMessage,"Send Payment Failed.",te):this.handleErrorWithAlert("SendPayment",B.payload.uiMessage,"Send Payment Failed",this.CHILD_API_URL+T.NZ.PAYMENTS_API,te),(0,v.of)({type:D.pg.VOID}))))))),{dispatch:!1}),this.queryRoutesFetchCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.GET_QUERY_ROUTES_CL),(0,C.z)(B=>(this.store.dispatch((0,U.Ni)({payload:{action:"GetQueryRoutes",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.NETWORK_API+"/getRoute/"+B.payload.destPubkey+"/"+B.payload.amount).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"GetQueryRoutes",status:D.Bn.COMPLETED}})),{type:D.sW.SET_QUERY_ROUTES_CL,payload:te})),(0,o.K)(te=>(this.store.dispatch((0,U.kL)({payload:{routes:[]}})),this.handleErrorWithAlert("GetQueryRoutes",D.m6.NO_SPINNER,"Get Query Routes Failed",this.CHILD_API_URL+T.NZ.NETWORK_API+"/getRoute/"+B.payload.destPubkey+"/"+B.payload.amount,te),(0,v.of)({type:D.pg.VOID})))))))),this.setQueryRoutesCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SET_QUERY_ROUTES_CL),(0,P.U)(B=>B.payload)),{dispatch:!1}),this.peerLookupCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.PEER_LOOKUP_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.SEARCHING_NODE})),this.store.dispatch((0,U.Ni)({payload:{action:"Lookup",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.NETWORK_API+"/listNode/"+B.payload).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"Lookup",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.SEARCHING_NODE})),{type:D.sW.SET_LOOKUP_CL,payload:te})),(0,o.K)(te=>(this.handleErrorWithAlert("Lookup",D.m6.SEARCHING_NODE,"Peer Lookup Failed",this.CHILD_API_URL+T.NZ.NETWORK_API+"/listNode/"+B.payload,te),(0,v.of)({type:D.pg.VOID})))))))),this.channelLookupCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.CHANNEL_LOOKUP_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:B.payload.uiMessage})),this.store.dispatch((0,U.Ni)({payload:{action:"Lookup",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.NETWORK_API+"/listChannel/"+B.payload.shortChannelID).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"Lookup",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:B.payload.uiMessage})),{type:D.sW.SET_LOOKUP_CL,payload:te})),(0,o.K)(te=>(B.payload.showError?this.handleErrorWithAlert("Lookup",B.payload.uiMessage,"Channel Lookup Failed",this.CHILD_API_URL+T.NZ.NETWORK_API+"/listChannel/"+B.payload.shortChannelID,te):this.store.dispatch((0,w.uO)({payload:B.payload.uiMessage})),this.store.dispatch((0,U.v_)({payload:[]})),(0,v.of)({type:D.pg.VOID})))))))),this.invoiceLookupCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.INVOICE_LOOKUP_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.SEARCHING_INVOICE})),this.store.dispatch((0,U.Ni)({payload:{action:"Lookup",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.INVOICES_API+"?label="+B.payload).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"Lookup",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.SEARCHING_INVOICE})),te.invoices&&te.invoices.length&&te.invoices.length>0&&this.store.dispatch((0,U.aL)({payload:te.invoices[0]})),{type:D.sW.SET_LOOKUP_CL,payload:te.invoices&&te.invoices.length&&te.invoices.length>0?te.invoices[0]:te})),(0,o.K)(te=>(this.handleErrorWithoutAlert("Lookup",D.m6.SEARCHING_INVOICE,"Invoice Lookup Failed",te),this.store.dispatch((0,w.jW)({payload:{message:"Invoice Refresh Failed.",type:"ERROR"}})),(0,v.of)({type:D.pg.VOID})))))))),this.setLookupCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SET_LOOKUP_CL),(0,P.U)(B=>(this.logger.info(B.payload),B.payload))),{dispatch:!1}),this.fetchForwardingHistoryCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.GET_FORWARDING_HISTORY_CL),(0,O.M)(this.store.select(G.W3)),(0,C.z)(([B,te])=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchForwardingHistory",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.CHANNELS_API+"/listForwards?status="+B.payload.status).pipe((0,P.U)(xe=>{if(this.logger.info(xe),this.store.dispatch((0,U.Ni)({payload:{action:"FetchForwardingHistory",status:D.Bn.COMPLETED}})),!te.api_version||!this.commonService.isVersionCompatible(te.api_version,"0.5.0")){const Fe=[],q=[];xe.forEach(j=>{"settled"===j.status?q.push(j):("failed"===j.status||"local_failed"===j.status)&&Fe.push(j)}),xe=JSON.parse(JSON.stringify(q)),this.store.dispatch((0,U.M7)({payload:Fe}))}return{type:D.sW.SET_FORWARDING_HISTORY_CL,payload:xe}}),(0,o.K)(xe=>(this.handleErrorWithAlert("FetchForwardingHistory",D.m6.NO_SPINNER,"Get Forwarding History Failed",this.CHILD_API_URL+T.NZ.CHANNELS_API+"/listForwards?status="+B.payload.status,xe),(0,v.of)({type:D.pg.VOID})))))))),this.fetchFailedForwardingHistoryCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.GET_FAILED_FORWARDING_HISTORY_CL),(0,O.M)(this.store.select(G.W3)),(0,C.z)(([B,te])=>{if(this.store.dispatch((0,U.Ni)({payload:{action:"FetchFailedForwardingHistory",status:D.Bn.INITIATED}})),!te.api_version||!this.commonService.isVersionCompatible(te.api_version,"0.5.0"))return this.store.dispatch((0,U.Ni)({payload:{action:"FetchFailedForwardingHistory",status:D.Bn.COMPLETED}})),(0,v.of)({type:D.pg.VOID});let Re=new M.y;const Fe=this.httpClient.get(this.CHILD_API_URL+T.NZ.CHANNELS_API+"/listForwards?status=failed"),q=this.httpClient.get(this.CHILD_API_URL+T.NZ.CHANNELS_API+"/listForwards?status=local_failed");return Re=(0,s.D)([Fe,q]),Re.pipe((0,P.U)(j=>(this.logger.info(j),this.store.dispatch((0,U.Ni)({payload:{action:"FetchFailedForwardingHistory",status:D.Bn.COMPLETED}})),{type:D.sW.SET_FAILED_FORWARDING_HISTORY_CL,payload:this.commonService.sortDescByKey([...j[0],...j[1]],"received_time")})),(0,o.K)(j=>(this.handleErrorWithAlert("FetchFailedForwardingHistory",D.m6.NO_SPINNER,"Get Failed Forwarding History Failed",this.CHILD_API_URL+T.NZ.CHANNELS_API+"/listForwards?status=failed",j),(0,v.of)({type:D.pg.VOID}))))}))),this.deleteExpiredInvoiceCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.DELETE_EXPIRED_INVOICE_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.DELETE_INVOICE})),this.httpClient.delete(this.CHILD_API_URL+T.NZ.INVOICES_API+(B.payload?"?maxexpiry="+B.payload:"")).pipe((0,P.U)(xe=>(this.logger.info(xe),this.store.dispatch((0,w.uO)({payload:D.m6.DELETE_INVOICE})),this.store.dispatch((0,w.jW)({payload:"Invoices Deleted Successfully!"})),{type:D.sW.FETCH_INVOICES_CL,payload:{num_max_invoices:1e6,reversed:!0}})),(0,o.K)(xe=>(this.handleErrorWithAlert("DeleteInvoices",D.m6.DELETE_INVOICE,"Delete Invoice Failed",this.CHILD_API_URL+T.NZ.INVOICES_API,xe),(0,v.of)({type:D.pg.VOID})))))))),this.saveNewInvoiceCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SAVE_NEW_INVOICE_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.ADD_INVOICE})),this.store.dispatch((0,U.Ni)({payload:{action:"SaveNewInvoice",status:D.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+T.NZ.INVOICES_API,{label:B.payload.label,amount:B.payload.amount,description:B.payload.description,expiry:B.payload.expiry,private:B.payload.private}).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"SaveNewInvoice",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.ADD_INVOICE})),te.msatoshi=B.payload.amount,te.label=B.payload.label,te.expires_at=Math.round((new Date).getTime()/1e3+B.payload.expiry),te.description=B.payload.description,te.status="unpaid",setTimeout(()=>{this.store.dispatch((0,w.qR)({payload:{data:{invoice:te,newlyAdded:!0,component:S.$}}}))},100),{type:D.sW.ADD_INVOICE_CL,payload:te})),(0,o.K)(te=>(this.handleErrorWithoutAlert("SaveNewInvoice",D.m6.ADD_INVOICE,"Add Invoice Failed.",te),(0,v.of)({type:D.pg.VOID})))))))),this.saveNewOfferCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SAVE_NEW_OFFER_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.CREATE_OFFER})),this.store.dispatch((0,U.Ni)({payload:{action:"SaveNewOffer",status:D.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+T.NZ.OFFERS_API,{amount:B.payload.amount,description:B.payload.description,vendor:B.payload.vendor}).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"SaveNewOffer",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.CREATE_OFFER})),setTimeout(()=>{this.store.dispatch((0,w.qR)({payload:{data:{offer:te,newlyAdded:!0,component:W.V}}}))},100),{type:D.sW.ADD_OFFER_CL,payload:te})),(0,o.K)(te=>(this.handleErrorWithoutAlert("SaveNewOffer",D.m6.CREATE_OFFER,"Create Offer Failed.",te),(0,v.of)({type:D.pg.VOID})))))))),this.invoicesFetchCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_INVOICES_CL),(0,C.z)(B=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchInvoices",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.INVOICES_API+"?num_max_invoices="+(B.payload.num_max_invoices?B.payload.num_max_invoices:1e6)+"&index_offset="+(B.payload.index_offset?B.payload.index_offset:0)+"&reversed="+(!B.payload.reversed||B.payload.reversed)).pipe((0,P.U)(Fe=>(this.logger.info(Fe),this.store.dispatch((0,U.Ni)({payload:{action:"FetchInvoices",status:D.Bn.COMPLETED}})),{type:D.sW.SET_INVOICES_CL,payload:Fe})),(0,o.K)(Fe=>(this.handleErrorWithoutAlert("FetchInvoices",D.m6.NO_SPINNER,"Fetching Invoices Failed.",Fe),(0,v.of)({type:D.pg.VOID})))))))),this.offersFetchCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_OFFERS_CL),(0,C.z)(B=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchOffers",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.OFFERS_API).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"FetchOffers",status:D.Bn.COMPLETED}})),{type:D.sW.SET_OFFERS_CL,payload:te.offers?te.offers:[]})),(0,o.K)(te=>(this.handleErrorWithoutAlert("FetchOffers",D.m6.NO_SPINNER,"Fetching Offers Failed.",te),(0,v.of)({type:D.pg.VOID})))))))),this.offersDisableCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.DISABLE_OFFER_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.DISABLE_OFFER})),this.store.dispatch((0,U.Ni)({payload:{action:"DisableOffer",status:D.Bn.INITIATED}})),this.httpClient.delete(this.CHILD_API_URL+T.NZ.OFFERS_API+"/"+B.payload.offer_id).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"DisableOffer",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.DISABLE_OFFER})),this.store.dispatch((0,w.jW)({payload:"Offer Disabled Successfully!"})),{type:D.sW.UPDATE_OFFER_CL,payload:{offer:te}})),(0,o.K)(te=>(this.handleErrorWithoutAlert("DisableOffer",D.m6.DISABLE_OFFER,"Disabling Offer Failed.",te),(0,v.of)({type:D.pg.VOID})))))))),this.offerBookmarksFetchCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_OFFER_BOOKMARKS_CL),(0,C.z)(B=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchOfferBookmarks",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.OFFERS_API+"/offerbookmarks").pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"FetchOfferBookmarks",status:D.Bn.COMPLETED}})),{type:D.sW.SET_OFFER_BOOKMARKS_CL,payload:te||[]})),(0,o.K)(te=>(this.handleErrorWithoutAlert("FetchOfferBookmarks",D.m6.NO_SPINNER,"Fetching Offer Bookmarks Failed.",te),(0,v.of)({type:D.pg.VOID})))))))),this.peidOffersDeleteCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.DELETE_OFFER_BOOKMARK_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.DELETE_OFFER_BOOKMARK})),this.store.dispatch((0,U.Ni)({payload:{action:"DeleteOfferBookmark",status:D.Bn.INITIATED}})),this.httpClient.delete(this.CHILD_API_URL+T.NZ.OFFERS_API+"/offerbookmark/"+B.payload.bolt12).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"DeleteOfferBookmark",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.DELETE_OFFER_BOOKMARK})),this.store.dispatch((0,w.jW)({payload:"Offer Bookmark Deleted Successfully!"})),{type:D.sW.REMOVE_OFFER_BOOKMARK_CL,payload:{bolt12:B.payload.bolt12}})),(0,o.K)(te=>(this.handleErrorWithAlert("DeleteOfferBookmark",D.m6.DELETE_OFFER_BOOKMARK,"Deleting Offer Bookmark Failed.",this.CHILD_API_URL+T.NZ.OFFERS_API+"/offerbookmark/"+B.payload.bolt12,te),(0,v.of)({type:D.pg.VOID})))))))),this.SetChannelTransactionCL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.SET_CHANNEL_TRANSACTION_CL),(0,C.z)(B=>(this.store.dispatch((0,w.ac)({payload:D.m6.SEND_FUNDS})),this.store.dispatch((0,U.Ni)({payload:{action:"SetChannelTransaction",status:D.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+T.NZ.ON_CHAIN_API,B.payload).pipe((0,P.U)(te=>(this.logger.info(te),this.store.dispatch((0,U.Ni)({payload:{action:"SetChannelTransaction",status:D.Bn.COMPLETED}})),this.store.dispatch((0,w.uO)({payload:D.m6.SEND_FUNDS})),this.store.dispatch((0,U.EG)()),this.store.dispatch((0,U.Ly)()),{type:D.sW.SET_CHANNEL_TRANSACTION_RES_CL,payload:te})),(0,o.K)(te=>(this.handleErrorWithoutAlert("SetChannelTransaction",D.m6.SEND_FUNDS,"Sending Fund Failed.",te),(0,v.of)({type:D.pg.VOID})))))))),this.utxosFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(D.sW.FETCH_UTXOS_CL),(0,C.z)(()=>(this.store.dispatch((0,U.Ni)({payload:{action:"FetchUTXOs",status:D.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+T.NZ.ON_CHAIN_API+"/utxos"))),(0,P.U)(B=>(this.logger.info(B),this.store.dispatch((0,U.Ni)({payload:{action:"FetchUTXOs",status:D.Bn.COMPLETED}})),{type:D.sW.SET_UTXOS_CL,payload:B.outputs||[]})),(0,o.K)(B=>(this.handleErrorWithoutAlert("FetchUTXOs",D.m6.NO_SPINNER,"Fetching UTXOs Failed.",B),(0,v.of)({type:D.pg.VOID}))))),this.store.select(G.yA).pipe((0,c.R)(this.unSubs[0])).subscribe(B=>{B.FetchInfo.status!==D.Bn.COMPLETED&&B.FetchInfo.status!==D.Bn.ERROR||B.FetchFees.status!==D.Bn.COMPLETED&&B.FetchFees.status!==D.Bn.ERROR||B.FetchChannels.status!==D.Bn.COMPLETED&&B.FetchChannels.status!==D.Bn.ERROR||B.FetchBalance.status!==D.Bn.COMPLETED&&B.FetchBalance.status!==D.Bn.ERROR||B.FetchLocalRemoteBalance.status!==D.Bn.COMPLETED&&B.FetchLocalRemoteBalance.status!==D.Bn.ERROR||this.flgInitialized||(this.store.dispatch((0,w.uO)({payload:D.m6.INITALIZE_NODE_DATA})),this.flgInitialized=!0)}),this.wsService.clWSMessages.pipe((0,c.R)(this.unSubs[1])).subscribe(B=>{if(this.logger.info("Received new message from the service: "+JSON.stringify(B)),B)switch(B.event){case D.U5.INVOICE:this.logger.info(B),B&&B.data&&B.data.label&&this.store.dispatch((0,U.aL)({payload:B.data}));break;case D.U5.SEND_PAYMENT:case D.U5.BLOCK_HEIGHT:this.logger.info(B);break;default:this.logger.info("Received Event from WS: "+JSON.stringify(B))}})}initializeRemainingData(u,_){this.sessionService.setItem("clUnlocked","true");const L={identity_pubkey:u.id,alias:u.alias,testnet:"testnet"===u.network.toLowerCase(),chains:u.chains,uris:u.uris,version:u.version,api_version:u.api_version,numberOfPendingChannels:u.num_pending_channels};this.store.dispatch((0,w.ac)({payload:D.m6.INITALIZE_NODE_DATA})),this.store.dispatch((0,w._V)({payload:L}));let I=this.location.path();I.includes("/lnd/")?I=I.replace("/lnd/","/cl/"):I.includes("/ecl/")&&(I=I.replace("/ecl/","/cl/")),(I.includes("/login")||I.includes("/error")||""===I||"HOME"===_||I.includes("?access-key="))&&(I="/cl/home"),this.router.navigate([I]),this.store.dispatch((0,U.WM)({payload:{num_max_invoices:1e6,index_offset:0,reversed:!0}})),this.store.dispatch((0,U.SN)()),this.store.dispatch((0,U.UR)()),this.store.dispatch((0,U.EG)()),this.store.dispatch((0,U.g3)()),this.store.dispatch((0,U.HJ)({payload:"perkw"})),this.store.dispatch((0,U.HJ)({payload:"perkb"})),this.store.dispatch((0,U.$W)()),this.store.dispatch((0,U.Ly)()),this.store.dispatch((0,U.cQ)())}handleErrorWithoutAlert(u,_,L,I){if(this.logger.error("ERROR IN: "+u+"\n"+JSON.stringify(I)),401===I.status)this.logger.info("Redirecting to Login"),this.store.dispatch((0,w.ts)()),this.store.dispatch((0,w.kS)()),this.store.dispatch((0,w.jW)({payload:"Authentication Failed. Redirecting to Login."}));else{this.store.dispatch((0,w.uO)({payload:_}));const x=this.commonService.extractErrorMessage(I,L);this.store.dispatch((0,U.Ni)({payload:{action:u,status:D.Bn.ERROR,statusCode:I.status.toString(),message:x}}))}}handleErrorWithAlert(u,_,L,I,x){if(this.logger.error(x),401===x.status)this.logger.info("Redirecting to Login"),this.store.dispatch((0,w.ts)()),this.store.dispatch((0,w.kS)()),this.store.dispatch((0,w.jW)({payload:"Authentication Failed. Redirecting to Login."}));else{this.store.dispatch((0,w.uO)({payload:_}));const r=this.commonService.extractErrorMessage(x);this.store.dispatch((0,w.qR)({payload:{data:{type:"ERROR",alertTitle:L,message:{code:x.status,message:r,URL:I},component:R.H}}})),this.store.dispatch((0,U.Ni)({payload:{action:u,status:D.Bn.ERROR,statusCode:x.status.toString(),message:r,URL:I}}))}}ngOnDestroy(){this.unSubs.forEach(u=>{u.next(null),u.complete()})}}return a.\u0275fac=function(u){return new(u||a)(ee.LFG(e.eX),ee.LFG(ie.eN),ee.LFG(_e.yh),ee.LFG(fe.m),ee.LFG(de.v),ee.LFG(ne.mQ),ee.LFG(se.F0),ee.LFG(oe.d),ee.LFG(y.Ye))},a.\u0275prov=ee.Yz7({token:a,factory:a.\u0275fac}),a})()},7080:(Ue,K,m)=>{"use strict";m.d(K,{Jo:()=>v,W3:()=>M,yA:()=>C,PP:()=>c,Wi:()=>P,JG:()=>o,zm:()=>O,hx:()=>T,gc:()=>R,T4:()=>S,ZW:()=>D,Rn:()=>w,Wj:()=>U,Bo:()=>G,xQ:()=>W,OL:()=>ee,jK:()=>ie,Ao:()=>_e,Hz:()=>fe,Y_:()=>de,EQ:()=>ne});var e=m(5620);const t=(0,e.ZF)("cl"),v=(0,e.P1)(t,oe=>oe.nodeSettings),M=(0,e.P1)(t,oe=>oe.information),C=((0,e.P1)(t,oe=>oe.apisCallStatus.FetchInfo),(0,e.P1)(t,oe=>oe.apisCallStatus)),c=(0,e.P1)(t,oe=>({payments:oe.payments,apiCallStatus:oe.apisCallStatus.FetchPayments})),P=(0,e.P1)(t,oe=>({peers:oe.peers,apiCallStatus:oe.apisCallStatus.FetchPeers})),o=(0,e.P1)(t,oe=>({fees:oe.fees,apiCallStatus:oe.apisCallStatus.FetchFees})),O=(0,e.P1)(t,oe=>({feeRatesPerKB:oe.feeRatesPerKB,apiCallStatus:oe.apisCallStatus.FetchFeeRatesperkb})),T=(0,e.P1)(t,oe=>({feeRatesPerKW:oe.feeRatesPerKW,apiCallStatus:oe.apisCallStatus.FetchFeeRatesperkw})),R=(0,e.P1)(t,oe=>({listInvoices:oe.invoices,apiCallStatus:oe.apisCallStatus.FetchInvoices})),S=(0,e.P1)(t,oe=>({utxos:oe.utxos,apiCallStatus:oe.apisCallStatus.FetchUTXOs})),D=(0,e.P1)(t,oe=>({activeChannels:oe.activeChannels,pendingChannels:oe.pendingChannels,inactiveChannels:oe.inactiveChannels,apiCallStatus:oe.apisCallStatus.FetchChannels})),w=(0,e.P1)(t,oe=>({balance:oe.balance,apiCallStatus:oe.apisCallStatus.FetchBalance})),U=(0,e.P1)(t,oe=>({localRemoteBalance:oe.localRemoteBalance,apiCallStatus:oe.apisCallStatus.FetchLocalRemoteBalance})),G=(0,e.P1)(t,oe=>({forwardingHistory:oe.forwardingHistory,apiCallStatus:oe.apisCallStatus.FetchForwardingHistory})),W=(0,e.P1)(t,oe=>({failedForwardingHistory:oe.failedForwardingHistory,apiCallStatus:oe.apisCallStatus.FetchFailedForwardingHistory})),ee=(0,e.P1)(t,oe=>({information:oe.information,nodeSettings:oe.nodeSettings,balance:oe.balance})),ie=(0,e.P1)(t,oe=>({information:oe.information,balance:oe.balance,numPeers:oe.peers.length})),_e=(0,e.P1)(t,oe=>({information:oe.information,balance:oe.balance})),fe=(0,e.P1)(t,oe=>({information:oe.information,nodeSettings:oe.nodeSettings,apisCallStatus:[oe.apisCallStatus.FetchInfo,oe.apisCallStatus.FetchForwardingHistory]})),de=(0,e.P1)(t,oe=>({offers:oe.offers,apiCallStatus:oe.apisCallStatus.FetchOffers})),ne=(0,e.P1)(t,oe=>({offersBookmarks:oe.offersBookmarks,apiCallStatus:oe.apisCallStatus.FetchOfferBookmarks}))},1954:(Ue,K,m)=>{"use strict";m.d(K,{$:()=>yt});var e=m(8966),t=m(801),v=m(7579),M=m(2722),s=m(7731),C=m(7080),c=m(5e3),P=m(5043),o=m(62),O=m(7261),T=m(5620),R=m(7093),S=m(9808),D=m(3322),w=m(9224),U=m(9444),G=m(7423),W=m(4834),ee=m(159),ie=m(7238),_e=m(773),fe=m(3390),de=m(6895);function ne(Ne,Ve){if(1&Ne&&c._UZ(0,"qr-code",33),2&Ne){const ue=c.oxw();c.Q6J("value",(null==ue.invoice?null:ue.invoice.bolt11)||(null==ue.invoice?null:ue.invoice.bolt12))("size",ue.qrWidth)("errorCorrectionLevel","L")}}function se(Ne,Ve){1&Ne&&(c.TgZ(0,"span",34),c._uU(1,"N/A"),c.qZA())}const oe=function(Ne){return{"mr-0":Ne}};function y(Ne,Ve){if(1&Ne&&c._UZ(0,"span",35),2&Ne){const ue=c.oxw();c.Q6J("ngClass",c.VKq(1,oe,ue.screenSize===ue.screenSizeEnum.XS))}}function i(Ne,Ve){if(1&Ne&&c._UZ(0,"span",36),2&Ne){const ue=c.oxw();c.Q6J("ngClass",c.VKq(1,oe,ue.screenSize===ue.screenSizeEnum.XS))}}function a(Ne,Ve){if(1&Ne&&c._UZ(0,"span",37),2&Ne){const ue=c.oxw();c.Q6J("ngClass",c.VKq(1,oe,ue.screenSize===ue.screenSizeEnum.XS))}}function p(Ne,Ve){if(1&Ne&&c._UZ(0,"qr-code",33),2&Ne){const ue=c.oxw();c.Q6J("value",(null==ue.invoice?null:ue.invoice.bolt11)||(null==ue.invoice?null:ue.invoice.bolt12))("size",ue.qrWidth)("errorCorrectionLevel","L")}}function u(Ne,Ve){1&Ne&&(c.TgZ(0,"span",38),c._uU(1,"QR Code Not Applicable"),c.qZA())}function _(Ne,Ve){1&Ne&&c._UZ(0,"mat-divider",39),2&Ne&&c.Q6J("inset",!0)}function L(Ne,Ve){if(1&Ne&&(c.TgZ(0,"div",19),c.TgZ(1,"div",40),c._UZ(2,"fa-icon",41),c.TgZ(3,"span"),c._uU(4),c.qZA(),c.qZA(),c.qZA()),2&Ne){const ue=c.oxw();c.xp6(2),c.Q6J("icon",ue.faExclamationTriangle),c.xp6(2),c.Oqu(null==ue.invoice?null:ue.invoice.warning_capacity)}}function I(Ne,Ve){1&Ne&&(c.ynx(0),c._uU(1," (zero amount) "),c.BQk())}function x(Ne,Ve){1&Ne&&c._UZ(0,"span",47)}const r=function(){return[]};function b(Ne,Ve){if(1&Ne&&(c.TgZ(0,"div",43),c.TgZ(1,"div",44),c.TgZ(2,"span",45),c._uU(3),c.ALo(4,"number"),c.qZA(),c.YNc(5,x,1,0,"span",46),c.qZA(),c.qZA()),2&Ne){const ue=c.oxw(2);c.xp6(3),c.hij("",c.lcZ(4,2,(null==ue.invoice?null:ue.invoice.msatoshi_received)/1e3)," Sats"),c.xp6(2),c.Q6J("ngForOf",c.DdM(4,r).constructor(35))}}function J(Ne,Ve){if(1&Ne&&(c.TgZ(0,"div"),c._uU(1),c.ALo(2,"number"),c.qZA()),2&Ne){const ue=c.oxw(2);c.xp6(1),c.hij("",c.lcZ(2,1,(null==ue.invoice?null:ue.invoice.msatoshi_received)/1e3)," Sats")}}function F(Ne,Ve){if(1&Ne&&(c.ynx(0),c.YNc(1,b,6,5,"div",42),c.YNc(2,J,3,3,"div",23),c.BQk()),2&Ne){const ue=c.oxw();c.xp6(1),c.Q6J("ngIf",ue.flgInvoicePaid),c.xp6(1),c.Q6J("ngIf",!ue.flgInvoicePaid)}}function B(Ne,Ve){1&Ne&&(c.TgZ(0,"span"),c._uU(1,"-"),c.qZA())}function te(Ne,Ve){1&Ne&&c._UZ(0,"mat-spinner",49),2&Ne&&c.Q6J("diameter",20)}function xe(Ne,Ve){if(1&Ne&&(c.ynx(0),c.YNc(1,B,2,0,"span",23),c.YNc(2,te,1,1,"mat-spinner",48),c.BQk()),2&Ne){const ue=c.oxw();c.xp6(1),c.Q6J("ngIf","unpaid"!==(null==ue.invoice?null:ue.invoice.status)||!ue.flgVersionCompatible),c.xp6(1),c.Q6J("ngIf","unpaid"===(null==ue.invoice?null:ue.invoice.status)&&ue.flgVersionCompatible)}}function Re(Ne,Ve){if(1&Ne&&(c.TgZ(0,"div"),c._UZ(1,"mat-divider",25),c.TgZ(2,"div",19),c.TgZ(3,"div",26),c.TgZ(4,"h4",21),c._uU(5,"Payment Hash"),c.qZA(),c.TgZ(6,"span",24),c._uU(7),c.qZA(),c.qZA(),c.qZA(),c._UZ(8,"mat-divider",25),c.TgZ(9,"div",19),c.TgZ(10,"div",26),c.TgZ(11,"h4",21),c._uU(12,"Label"),c.qZA(),c.TgZ(13,"span",24),c._uU(14),c.qZA(),c.qZA(),c.qZA(),c._UZ(15,"mat-divider",25),c.qZA()),2&Ne){const ue=c.oxw();c.xp6(7),c.Oqu(null==ue.invoice?null:ue.invoice.payment_hash),c.xp6(7),c.Oqu(null==ue.invoice?null:ue.invoice.label)}}function Fe(Ne,Ve){1&Ne&&(c.TgZ(0,"p"),c._uU(1,"Show Advanced"),c.qZA())}function q(Ne,Ve){1&Ne&&(c.TgZ(0,"p"),c._uU(1,"Hide Advanced"),c.qZA())}function j(Ne,Ve){if(1&Ne){const ue=c.EpF();c.TgZ(0,"button",50),c.NdJ("copied",function(ke){return c.CHM(ue),c.oxw().onCopyPayment(ke)}),c._uU(1,"Copy Invoice"),c.qZA()}if(2&Ne){const ue=c.oxw();c.Q6J("payload",(null==ue.invoice?null:ue.invoice.bolt11)||(null==ue.invoice?null:ue.invoice.bolt12))}}function we(Ne,Ve){if(1&Ne){const ue=c.EpF();c.TgZ(0,"button",51),c.NdJ("click",function(){return c.CHM(ue),c.oxw().onClose()}),c._uU(1,"OK"),c.qZA()}}const Ae=function(Ne){return{"display-none":Ne}},le=function(Ne){return{"xs-scroll-y":Ne}},We=function(Ne,Ve){return{"mt-2":Ne,"mt-1":Ve}};let yt=(()=>{class Ne{constructor(ue,Te,ke,Y,X,he){this.dialogRef=ue,this.data=Te,this.logger=ke,this.commonService=Y,this.snackBar=X,this.store=he,this.faReceipt=t.dLy,this.faExclamationTriangle=t.eHv,this.showAdvanced=!1,this.newlyAdded=!1,this.qrWidth=240,this.screenSize="",this.screenSizeEnum=s.cu,this.flgInvoicePaid=!1,this.flgVersionCompatible=!0,this.unSubs=[new v.x,new v.x,new v.x,new v.x,new v.x]}ngOnInit(){this.invoice=this.data.invoice,this.newlyAdded=this.data.newlyAdded,this.screenSize=this.commonService.getScreenSize(),this.screenSize===s.cu.XS&&(this.qrWidth=220),this.store.select(C.W3).pipe((0,M.R)(this.unSubs[0])).subscribe(ue=>{this.flgVersionCompatible=this.commonService.isVersionCompatible(ue.api_version,"0.6.0")}),this.store.select(C.gc).pipe((0,M.R)(this.unSubs[1])).subscribe(ue=>{const Te=this.invoice.status;this.invoice=(ue.listInvoices.invoices||[]).find(Y=>Y.payment_hash===this.invoice.payment_hash),Te!==this.invoice.status&&"paid"===this.invoice.status&&(this.flgInvoicePaid=!0,setTimeout(()=>{this.flgInvoicePaid=!1},4e3)),this.logger.info(ue)})}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyPayment(ue){this.snackBar.open("Invoice copied."),this.logger.info("Copied Text: "+ue)}ngOnDestroy(){this.unSubs.forEach(ue=>{ue.next(null),ue.complete()})}}return Ne.\u0275fac=function(ue){return new(ue||Ne)(c.Y36(e.so),c.Y36(e.WI),c.Y36(P.mQ),c.Y36(o.v),c.Y36(O.ux),c.Y36(T.yh))},Ne.\u0275cmp=c.Xpm({type:Ne,selectors:[["rtl-cl-invoice-information"]],decls:72,vars:49,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","35",1,"modal-qr-code-container","padding-gap-large",3,"fxLayoutAlign","ngClass"],[3,"value","size","errorCorrectionLevel",4,"ngIf"],["class","font-size-300",4,"ngIf"],["fxFlex","65"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["class","dot green ml-1","matTooltip","Paid","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow ml-1","matTooltip","Unpaid","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red ml-1","matTooltip","Expired","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxFlex","30",1,"modal-qr-code-container","padding-gap",3,"fxLayoutAlign","ngClass"],["class","font-size-120",4,"ngIf"],["class","my-1",3,"inset",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[4,"ngIf"],[1,"overflow-wrap","foreground-secondary-text"],[1,"w-100","my-1"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","end center",3,"ngClass"],["mat-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],[3,"value","size","errorCorrectionLevel"],[1,"font-size-300"],["matTooltip","Paid","matTooltipPosition","right",1,"dot","green","ml-1",3,"ngClass"],["matTooltip","Unpaid","matTooltipPosition","right",1,"dot","yellow","ml-1",3,"ngClass"],["matTooltip","Expired","matTooltipPosition","right",1,"dot","red","ml-1",3,"ngClass"],[1,"font-size-120"],[1,"my-1",3,"inset"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["class","invoice-animation-container",4,"ngIf"],[1,"invoice-animation-container"],[1,"invoice-animation-div"],[1,"wiggle"],["class","particles-circle",4,"ngFor","ngForOf"],[1,"particles-circle"],[3,"diameter",4,"ngIf"],[3,"diameter"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(ue,Te){if(1&ue&&(c.TgZ(0,"div",0),c.TgZ(1,"div",1),c.YNc(2,ne,1,3,"qr-code",2),c.YNc(3,se,2,0,"span",3),c.qZA(),c.TgZ(4,"div",4),c.TgZ(5,"mat-card-header",5),c.TgZ(6,"div",6),c._UZ(7,"fa-icon",7),c.TgZ(8,"span",8),c._uU(9),c.YNc(10,y,1,3,"span",9),c.YNc(11,i,1,3,"span",10),c.YNc(12,a,1,3,"span",11),c.qZA(),c.qZA(),c.TgZ(13,"button",12),c.NdJ("click",function(){return Te.onClose()}),c._uU(14,"X"),c.qZA(),c.qZA(),c.TgZ(15,"mat-card-content",13),c.TgZ(16,"div",14),c.TgZ(17,"div",15),c.YNc(18,p,1,3,"qr-code",2),c.YNc(19,u,2,0,"span",16),c.qZA(),c.YNc(20,_,1,1,"mat-divider",17),c.YNc(21,L,5,2,"div",18),c.TgZ(22,"div",19),c.TgZ(23,"div",20),c.TgZ(24,"h4",21),c._uU(25),c.qZA(),c.TgZ(26,"span",22),c._uU(27),c.ALo(28,"number"),c.YNc(29,I,2,0,"ng-container",23),c.qZA(),c.qZA(),c.TgZ(30,"div",20),c.TgZ(31,"h4",21),c._uU(32,"Amount Received"),c.qZA(),c.TgZ(33,"span",24),c.YNc(34,F,3,2,"ng-container",23),c.YNc(35,xe,3,2,"ng-container",23),c.qZA(),c.qZA(),c.qZA(),c._UZ(36,"mat-divider",25),c.TgZ(37,"div",19),c.TgZ(38,"div",20),c.TgZ(39,"h4",21),c._uU(40,"Date Expiry"),c.qZA(),c.TgZ(41,"span",22),c._uU(42),c.ALo(43,"date"),c.qZA(),c.qZA(),c.TgZ(44,"div",20),c.TgZ(45,"h4",21),c._uU(46,"Date Settled"),c.qZA(),c.TgZ(47,"span",22),c._uU(48),c.ALo(49,"date"),c.qZA(),c.qZA(),c.qZA(),c._UZ(50,"mat-divider",25),c.TgZ(51,"div",19),c.TgZ(52,"div",26),c.TgZ(53,"h4",21),c._uU(54,"Description"),c.qZA(),c.TgZ(55,"span",22),c._uU(56),c.qZA(),c.qZA(),c.qZA(),c._UZ(57,"mat-divider",25),c.TgZ(58,"div",19),c.TgZ(59,"div",26),c.TgZ(60,"h4",21),c._uU(61),c.qZA(),c.TgZ(62,"span",24),c._uU(63),c.qZA(),c.qZA(),c.qZA(),c.YNc(64,Re,16,2,"div",23),c.TgZ(65,"div",27),c.TgZ(66,"button",28),c.NdJ("click",function(){return Te.onShowAdvanced()}),c.YNc(67,Fe,2,0,"p",29),c.YNc(68,q,2,0,"ng-template",null,30,c.W1O),c.qZA(),c.YNc(70,j,2,1,"button",31),c.YNc(71,we,2,0,"button",32),c.qZA(),c.qZA(),c.qZA(),c.qZA(),c.qZA()),2&ue){const ke=c.MAs(69);c.xp6(1),c.Q6J("fxLayoutAlign",null!=Te.invoice&&Te.invoice.bolt11&&""!==(null==Te.invoice?null:Te.invoice.bolt11)||null!=Te.invoice&&Te.invoice.bolt12&&""!==(null==Te.invoice?null:Te.invoice.bolt12)?"center start":"center center")("ngClass",c.VKq(40,Ae,Te.screenSize===Te.screenSizeEnum.XS||Te.screenSize===Te.screenSizeEnum.SM)),c.xp6(1),c.Q6J("ngIf",(null==Te.invoice?null:Te.invoice.bolt11)&&""!==(null==Te.invoice?null:Te.invoice.bolt11)||(null==Te.invoice?null:Te.invoice.bolt12)&&""!==(null==Te.invoice?null:Te.invoice.bolt12)),c.xp6(1),c.Q6J("ngIf",!(null!=Te.invoice&&Te.invoice.bolt11||null!=Te.invoice&&Te.invoice.bolt12)),c.xp6(4),c.Q6J("icon",Te.faReceipt),c.xp6(2),c.hij(" ",Te.screenSize===Te.screenSizeEnum.XS?Te.newlyAdded?"Created":"Invoice":Te.newlyAdded?"Invoice Created":"Invoice Information"," "),c.xp6(1),c.Q6J("ngIf","paid"===(null==Te.invoice?null:Te.invoice.status)),c.xp6(1),c.Q6J("ngIf","unpaid"===(null==Te.invoice?null:Te.invoice.status)),c.xp6(1),c.Q6J("ngIf","expired"===(null==Te.invoice?null:Te.invoice.status)),c.xp6(3),c.Q6J("ngClass",c.VKq(42,le,Te.screenSize===Te.screenSizeEnum.XS)),c.xp6(2),c.Q6J("fxLayoutAlign",null!=Te.invoice&&Te.invoice.bolt11&&""!==(null==Te.invoice?null:Te.invoice.bolt11)||null!=Te.invoice&&Te.invoice.bolt12&&""!==(null==Te.invoice?null:Te.invoice.bolt12)?"center start":"center center")("ngClass",c.VKq(44,Ae,Te.screenSize!==Te.screenSizeEnum.XS&&Te.screenSize!==Te.screenSizeEnum.SM)),c.xp6(1),c.Q6J("ngIf",(null==Te.invoice?null:Te.invoice.bolt11)&&""!==(null==Te.invoice?null:Te.invoice.bolt11)||(null==Te.invoice?null:Te.invoice.bolt12)&&""!==(null==Te.invoice?null:Te.invoice.bolt12)),c.xp6(1),c.Q6J("ngIf",!(null!=Te.invoice&&Te.invoice.bolt11||null!=Te.invoice&&Te.invoice.bolt12)),c.xp6(1),c.Q6J("ngIf",Te.screenSize===Te.screenSizeEnum.XS||Te.screenSize===Te.screenSizeEnum.SM),c.xp6(1),c.Q6J("ngIf",null==Te.invoice?null:Te.invoice.warning_capacity),c.xp6(4),c.Oqu(Te.screenSize===Te.screenSizeEnum.XS?"Amount":"Amount Requested"),c.xp6(2),c.hij(" ",c.lcZ(28,32,(null==Te.invoice?null:Te.invoice.msatoshi)/1e3||0)," Sats"),c.xp6(2),c.Q6J("ngIf",!(null!=Te.invoice&&Te.invoice.msatoshi)||"0"===(null==Te.invoice?null:Te.invoice.msatoshi)),c.xp6(5),c.Q6J("ngIf","paid"===(null==Te.invoice?null:Te.invoice.status)),c.xp6(1),c.Q6J("ngIf","paid"!==(null==Te.invoice?null:Te.invoice.status)),c.xp6(7),c.Oqu(c.xi3(43,34,1e3*(null==Te.invoice?null:Te.invoice.expires_at),"dd/MMM/YYYY HH:mm")),c.xp6(6),c.Oqu(c.xi3(49,37,1e3*(null==Te.invoice?null:Te.invoice.paid_at),"dd/MMM/YYYY HH:mm")||"-"),c.xp6(8),c.Oqu((null==Te.invoice?null:Te.invoice.description)||"-"),c.xp6(5),c.hij("",null!=Te.invoice&&Te.invoice.bolt12?"Bolt12":null!=Te.invoice&&Te.invoice.bolt11&&!Te.invoice.label.includes("keysend-")?"Bolt11":"Keysend"," Invoice"),c.xp6(2),c.Oqu((null==Te.invoice?null:Te.invoice.bolt11)||(null==Te.invoice?null:Te.invoice.bolt12)),c.xp6(1),c.Q6J("ngIf",Te.showAdvanced),c.xp6(1),c.Q6J("ngClass",c.WLB(46,We,!Te.showAdvanced,Te.showAdvanced)),c.xp6(2),c.Q6J("ngIf",!Te.showAdvanced)("ngIfElse",ke),c.xp6(3),c.Q6J("ngIf",(null==Te.invoice?null:Te.invoice.bolt11)&&""!==(null==Te.invoice?null:Te.invoice.bolt11)||(null==Te.invoice?null:Te.invoice.bolt12)&&""!==(null==Te.invoice?null:Te.invoice.bolt12)),c.xp6(1),c.Q6J("ngIf",!(null!=Te.invoice&&Te.invoice.bolt11||null!=Te.invoice&&Te.invoice.bolt12))}},directives:[R.xw,R.Wh,R.yH,S.mk,D.oO,S.O5,w.dk,U.BN,G.lW,w.dn,W.d,ee.uU,ie.gM,S.sg,_e.$g,fe.h,de.y],pipes:[S.JJ,S.uU],styles:[""]}),Ne})()},1189:(Ue,K,m)=>{"use strict";m.d(K,{V:()=>B});var e=m(8966),t=m(801),v=m(7579),M=m(2722),s=m(7731),C=m(7080),c=m(5e3),P=m(5043),o=m(62),O=m(7261),T=m(5620),R=m(8104),S=m(7093),D=m(9808),w=m(3322),U=m(9224),G=m(9444),W=m(7423),ee=m(4834),ie=m(159),_e=m(3390),fe=m(6895);function de(te,xe){if(1&te&&c._UZ(0,"qr-code",28),2&te){const Re=c.oxw();c.Q6J("value",null==Re.offer?null:Re.offer.bolt12)("size",Re.qrWidth)("errorCorrectionLevel","L")}}function ne(te,xe){1&te&&(c.TgZ(0,"span",29),c._uU(1,"N/A"),c.qZA())}function se(te,xe){if(1&te&&c._UZ(0,"qr-code",28),2&te){const Re=c.oxw();c.Q6J("value",null==Re.offer?null:Re.offer.bolt12)("size",Re.qrWidth)("errorCorrectionLevel","L")}}function oe(te,xe){1&te&&(c.TgZ(0,"span",30),c._uU(1,"QR Code Not Applicable"),c.qZA())}function y(te,xe){1&te&&c._UZ(0,"mat-divider",31),2&te&&c.Q6J("inset",!0)}function i(te,xe){1&te&&c._UZ(0,"mat-divider",19)}function a(te,xe){if(1&te&&(c.TgZ(0,"div",15),c.TgZ(1,"div",16),c.TgZ(2,"h4",17),c._uU(3,"Used"),c.qZA(),c.TgZ(4,"span",18),c._uU(5),c.qZA(),c.qZA(),c.TgZ(6,"div",16),c.TgZ(7,"h4",17),c._uU(8,"Single Use"),c.qZA(),c.TgZ(9,"span",18),c._uU(10),c.qZA(),c.qZA(),c.qZA()),2&te){const Re=c.oxw(2);c.xp6(5),c.hij(" ",null!=Re.offer&&Re.offer.used?null!=Re.offer&&Re.offer.used?"Yes":"No":"N/K"," "),c.xp6(5),c.hij(" ",null!=Re.offer&&Re.offer.single_use?null!=Re.offer&&Re.offer.single_use?"Yes":"No":"N/K"," ")}}function p(te,xe){1&te&&c._UZ(0,"mat-divider",19)}function u(te,xe){if(1&te&&(c.TgZ(0,"div",15),c.TgZ(1,"div",20),c.TgZ(2,"h4",17),c._uU(3,"Vendor"),c.qZA(),c.TgZ(4,"span",34),c._uU(5),c.qZA(),c.qZA(),c.qZA()),2&te){const Re=c.oxw(2);c.xp6(5),c.Oqu((null==Re.offerDecoded?null:Re.offerDecoded.vendor)||(null==Re.offerDecoded?null:Re.offerDecoded.issuer))}}function _(te,xe){if(1&te&&(c.TgZ(0,"div"),c.YNc(1,i,1,0,"mat-divider",32),c.YNc(2,a,11,2,"div",33),c.YNc(3,p,1,0,"mat-divider",32),c.YNc(4,u,6,1,"div",33),c._UZ(5,"mat-divider",19),c.TgZ(6,"div",15),c.TgZ(7,"div",20),c.TgZ(8,"h4",17),c._uU(9,"Offer ID"),c.qZA(),c.TgZ(10,"span",18),c._uU(11),c.qZA(),c.qZA(),c.qZA(),c._UZ(12,"mat-divider",19),c.qZA()),2&te){const Re=c.oxw();c.xp6(1),c.Q6J("ngIf",(null==Re.offer?null:Re.offer.used)||(null==Re.offer?null:Re.offer.single_use)),c.xp6(1),c.Q6J("ngIf",(null==Re.offer?null:Re.offer.used)||(null==Re.offer?null:Re.offer.single_use)),c.xp6(1),c.Q6J("ngIf",(null==Re.offerDecoded?null:Re.offerDecoded.vendor)||(null==Re.offerDecoded?null:Re.offerDecoded.issuer)),c.xp6(1),c.Q6J("ngIf",(null==Re.offerDecoded?null:Re.offerDecoded.vendor)||(null==Re.offerDecoded?null:Re.offerDecoded.issuer)),c.xp6(7),c.Oqu(Re.offerDecoded.offer_id)}}function L(te,xe){1&te&&(c.TgZ(0,"p"),c._uU(1,"Show Advanced"),c.qZA())}function I(te,xe){1&te&&(c.TgZ(0,"p"),c._uU(1,"Hide Advanced"),c.qZA())}function x(te,xe){if(1&te){const Re=c.EpF();c.TgZ(0,"button",35),c.NdJ("copied",function(q){return c.CHM(Re),c.oxw().onCopyOffer(q)}),c._uU(1,"Copy Offer"),c.qZA()}if(2&te){const Re=c.oxw();c.Q6J("payload",null==Re.offer?null:Re.offer.bolt12)}}function r(te,xe){if(1&te){const Re=c.EpF();c.TgZ(0,"button",36),c.NdJ("click",function(){return c.CHM(Re),c.oxw().onClose()}),c._uU(1,"OK"),c.qZA()}}const b=function(te){return{"display-none":te}},J=function(te){return{"xs-scroll-y":te}},F=function(te,xe){return{"mt-2":te,"mt-1":xe}};let B=(()=>{class te{constructor(Re,Fe,q,j,we,Ae,le){this.dialogRef=Re,this.data=Fe,this.logger=q,this.commonService=j,this.snackBar=we,this.store=Ae,this.dataService=le,this.faReceipt=t.dLy,this.faExclamationTriangle=t.eHv,this.showAdvanced=!1,this.newlyAdded=!1,this.offerDecoded={},this.qrWidth=240,this.screenSize="",this.screenSizeEnum=s.cu,this.flgOfferPaid=!1,this.flgVersionCompatible=!0,this.unSubs=[new v.x,new v.x,new v.x,new v.x,new v.x]}ngOnInit(){this.offer=this.data.offer,this.newlyAdded=this.data.newlyAdded,this.screenSize=this.commonService.getScreenSize(),this.screenSize===s.cu.XS&&(this.qrWidth=220),this.store.select(C.W3).pipe((0,M.R)(this.unSubs[0])).subscribe(Re=>{this.flgVersionCompatible=this.commonService.isVersionCompatible(Re.api_version,"0.6.0")}),this.dataService.decodePayment(this.offer.bolt12,!0).pipe((0,M.R)(this.unSubs[1])).subscribe(Re=>{this.offerDecoded=Re,this.offerDecoded.offer_id&&!this.offerDecoded.amount_msat?(this.offerDecoded.amount_msat="0msat",this.offerDecoded.amount=0):this.offerDecoded.amount=+(this.offerDecoded.amount||this.offerDecoded.amount_msat.slice(0,-4))})}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyOffer(Re){this.snackBar.open("Offer copied."),this.logger.info("Copied Text: "+Re)}ngOnDestroy(){this.unSubs.forEach(Re=>{Re.next(null),Re.complete()})}}return te.\u0275fac=function(Re){return new(Re||te)(c.Y36(e.so),c.Y36(e.WI),c.Y36(P.mQ),c.Y36(o.v),c.Y36(O.ux),c.Y36(T.yh),c.Y36(R.D))},te.\u0275cmp=c.Xpm({type:te,selectors:[["rtl-cl-offer-information"]],decls:52,vars:33,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","35",1,"modal-qr-code-container","padding-gap-large",3,"fxLayoutAlign","ngClass"],[3,"value","size","errorCorrectionLevel",4,"ngIf"],["class","font-size-300",4,"ngIf"],["fxFlex","65"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxFlex","30",1,"modal-qr-code-container","padding-gap",3,"fxLayoutAlign","ngClass"],["class","font-size-120",4,"ngIf"],["class","my-1",3,"inset",4,"ngIf"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"],["fxFlex","100"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",3,"ngClass"],["mat-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],[3,"value","size","errorCorrectionLevel"],[1,"font-size-300"],[1,"font-size-120"],[1,"my-1",3,"inset"],["class","w-100 my-1",4,"ngIf"],["fxLayout","row",4,"ngIf"],[1,"overflow-wrap","foreground-secondary-text"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(Re,Fe){if(1&Re&&(c.TgZ(0,"div",0),c.TgZ(1,"div",1),c.YNc(2,de,1,3,"qr-code",2),c.YNc(3,ne,2,0,"span",3),c.qZA(),c.TgZ(4,"div",4),c.TgZ(5,"mat-card-header",5),c.TgZ(6,"div",6),c._UZ(7,"fa-icon",7),c.TgZ(8,"span",8),c._uU(9),c.qZA(),c.qZA(),c.TgZ(10,"button",9),c.NdJ("click",function(){return Fe.onClose()}),c._uU(11,"X"),c.qZA(),c.qZA(),c.TgZ(12,"mat-card-content",10),c.TgZ(13,"div",11),c.TgZ(14,"div",12),c.YNc(15,se,1,3,"qr-code",2),c.YNc(16,oe,2,0,"span",13),c.qZA(),c.YNc(17,y,1,1,"mat-divider",14),c.TgZ(18,"div",15),c.TgZ(19,"div",16),c.TgZ(20,"h4",17),c._uU(21,"Amount Requested (Sats)"),c.qZA(),c.TgZ(22,"span",18),c._uU(23),c.ALo(24,"number"),c.qZA(),c.qZA(),c.TgZ(25,"div",16),c.TgZ(26,"h4",17),c._uU(27,"Active"),c.qZA(),c.TgZ(28,"span",18),c._uU(29),c.qZA(),c.qZA(),c.qZA(),c._UZ(30,"mat-divider",19),c.TgZ(31,"div",15),c.TgZ(32,"div",20),c.TgZ(33,"h4",17),c._uU(34,"Description"),c.qZA(),c.TgZ(35,"span",18),c._uU(36),c.qZA(),c.qZA(),c.qZA(),c._UZ(37,"mat-divider",19),c.TgZ(38,"div",15),c.TgZ(39,"div",20),c.TgZ(40,"h4",17),c._uU(41,"Offer Request"),c.qZA(),c.TgZ(42,"span",18),c._uU(43),c.qZA(),c.qZA(),c.qZA(),c.YNc(44,_,13,5,"div",21),c.TgZ(45,"div",22),c.TgZ(46,"button",23),c.NdJ("click",function(){return Fe.onShowAdvanced()}),c.YNc(47,L,2,0,"p",24),c.YNc(48,I,2,0,"ng-template",null,25,c.W1O),c.qZA(),c.YNc(50,x,2,1,"button",26),c.YNc(51,r,2,0,"button",27),c.qZA(),c.qZA(),c.qZA(),c.qZA(),c.qZA()),2&Re){const q=c.MAs(49);c.xp6(1),c.Q6J("fxLayoutAlign",null!=Fe.offer&&Fe.offer.bolt12&&""!==(null==Fe.offer?null:Fe.offer.bolt12)?"center start":"center center")("ngClass",c.VKq(24,b,Fe.screenSize===Fe.screenSizeEnum.XS||Fe.screenSize===Fe.screenSizeEnum.SM)),c.xp6(1),c.Q6J("ngIf",(null==Fe.offer?null:Fe.offer.bolt12)&&""!==(null==Fe.offer?null:Fe.offer.bolt12)),c.xp6(1),c.Q6J("ngIf",!(null!=Fe.offer&&Fe.offer.bolt12)||""===(null==Fe.offer?null:Fe.offer.bolt12)),c.xp6(4),c.Q6J("icon",Fe.faReceipt),c.xp6(2),c.Oqu(Fe.screenSize===Fe.screenSizeEnum.XS?Fe.newlyAdded?"Created":"Offer":Fe.newlyAdded?"Offer Created":"Offer Information"),c.xp6(3),c.Q6J("ngClass",c.VKq(26,J,Fe.screenSize===Fe.screenSizeEnum.XS)),c.xp6(2),c.Q6J("fxLayoutAlign",null!=Fe.offer&&Fe.offer.bolt12&&""!==(null==Fe.offer?null:Fe.offer.bolt12)?"center start":"center center")("ngClass",c.VKq(28,b,Fe.screenSize!==Fe.screenSizeEnum.XS&&Fe.screenSize!==Fe.screenSizeEnum.SM)),c.xp6(1),c.Q6J("ngIf",(null==Fe.offer?null:Fe.offer.bolt12)&&""!==(null==Fe.offer?null:Fe.offer.bolt12)),c.xp6(1),c.Q6J("ngIf",!(null!=Fe.offer&&Fe.offer.bolt12)||""===(null==Fe.offer?null:Fe.offer.bolt12)),c.xp6(1),c.Q6J("ngIf",Fe.screenSize===Fe.screenSizeEnum.XS||Fe.screenSize===Fe.screenSizeEnum.SM),c.xp6(6),c.hij(" ",null!=Fe.offerDecoded&&Fe.offerDecoded.amount_msat&&0!==(null==Fe.offerDecoded?null:Fe.offerDecoded.amount)?c.lcZ(24,22,(null==Fe.offerDecoded?null:Fe.offerDecoded.amount)/1e3):"Open Offer"," "),c.xp6(6),c.hij(" ",null!=Fe.offer&&Fe.offer.active?null!=Fe.offer&&Fe.offer.active?"Active":"Inactive":"N/K"," "),c.xp6(7),c.hij(" ",null==Fe.offerDecoded?null:Fe.offerDecoded.description," "),c.xp6(7),c.Oqu(null==Fe.offer?null:Fe.offer.bolt12),c.xp6(1),c.Q6J("ngIf",Fe.showAdvanced),c.xp6(1),c.Q6J("ngClass",c.WLB(30,F,!Fe.showAdvanced,Fe.showAdvanced)),c.xp6(2),c.Q6J("ngIf",!Fe.showAdvanced)("ngIfElse",q),c.xp6(3),c.Q6J("ngIf",(null==Fe.offer?null:Fe.offer.bolt12)&&""!==(null==Fe.offer?null:Fe.offer.bolt12)),c.xp6(1),c.Q6J("ngIf",!(null!=Fe.offer&&Fe.offer.bolt12)||""===(null==Fe.offer?null:Fe.offer.bolt12))}},directives:[S.xw,S.Wh,S.yH,D.mk,w.oO,D.O5,U.dk,G.BN,W.lW,U.dn,ee.d,ie.uU,_e.h,fe.y],pipes:[D.JJ],styles:[""]}),te})()},2994:(Ue,K,m)=>{"use strict";m.d(K,{QZ:()=>v,Fd:()=>M,Zr:()=>s,iz:()=>C,CX:()=>c,SN:()=>P,RX:()=>o,UR:()=>O,eN:()=>T,TW:()=>R,i:()=>S,iL:()=>D,Bw:()=>w,On:()=>U,HG:()=>G,$W:()=>W,Z8:()=>ee,El:()=>ie,GD:()=>de,EK:()=>ne,_E:()=>se,YX:()=>y,pW:()=>i,BL:()=>a,OG:()=>p,cQ:()=>u,HI:()=>_,WO:()=>L,kL:()=>I,oV:()=>x,TM:()=>r,mC:()=>b,Lf:()=>J,Iy:()=>F,WM:()=>te,Nr:()=>xe,Z$:()=>Re,YP:()=>Fe,aL:()=>q,Sf:()=>j,n7:()=>we,DJ:()=>le,ti:()=>We});var e=m(5620),t=m(7731);const v=(0,e.PH)(t.lr.UPDATE_API_CALL_STATUS_ECL,(0,e.Ky)()),M=(0,e.PH)(t.lr.RESET_ECL_STORE,(0,e.Ky)()),s=(0,e.PH)(t.lr.SET_CHILD_NODE_SETTINGS_ECL,(0,e.Ky)()),C=(0,e.PH)(t.lr.FETCH_INFO_ECL,(0,e.Ky)()),c=(0,e.PH)(t.lr.SET_INFO_ECL,(0,e.Ky)()),P=(0,e.PH)(t.lr.FETCH_FEES_ECL),o=(0,e.PH)(t.lr.SET_FEES_ECL,(0,e.Ky)()),O=(0,e.PH)(t.lr.FETCH_CHANNELS_ECL,(0,e.Ky)()),T=(0,e.PH)(t.lr.SET_ACTIVE_CHANNELS_ECL,(0,e.Ky)()),R=(0,e.PH)(t.lr.SET_PENDING_CHANNELS_ECL,(0,e.Ky)()),S=(0,e.PH)(t.lr.SET_INACTIVE_CHANNELS_ECL,(0,e.Ky)()),D=(0,e.PH)(t.lr.FETCH_ONCHAIN_BALANCE_ECL),w=(0,e.PH)(t.lr.SET_ONCHAIN_BALANCE_ECL,(0,e.Ky)()),U=(0,e.PH)(t.lr.SET_LIGHTNING_BALANCE_ECL,(0,e.Ky)()),G=(0,e.PH)(t.lr.SET_CHANNELS_STATUS_ECL,(0,e.Ky)()),W=(0,e.PH)(t.lr.FETCH_PEERS_ECL),ee=(0,e.PH)(t.lr.SET_PEERS_ECL,(0,e.Ky)()),ie=(0,e.PH)(t.lr.SAVE_NEW_PEER_ECL,(0,e.Ky)()),de=((0,e.PH)(t.lr.NEWLY_ADDED_PEER_ECL,(0,e.Ky)()),(0,e.PH)(t.lr.ADD_PEER_ECL,(0,e.Ky)()),(0,e.PH)(t.lr.DETACH_PEER_ECL,(0,e.Ky)())),ne=(0,e.PH)(t.lr.REMOVE_PEER_ECL,(0,e.Ky)()),se=(0,e.PH)(t.lr.GET_NEW_ADDRESS_ECL),y=((0,e.PH)(t.lr.SET_NEW_ADDRESS_ECL,(0,e.Ky)()),(0,e.PH)(t.lr.SAVE_NEW_CHANNEL_ECL,(0,e.Ky)())),i=(0,e.PH)(t.lr.UPDATE_CHANNEL_ECL,(0,e.Ky)()),a=(0,e.PH)(t.lr.CLOSE_CHANNEL_ECL,(0,e.Ky)()),p=(0,e.PH)(t.lr.REMOVE_CHANNEL_ECL,(0,e.Ky)()),u=(0,e.PH)(t.lr.FETCH_PAYMENTS_ECL),_=(0,e.PH)(t.lr.SET_PAYMENTS_ECL,(0,e.Ky)()),L=(0,e.PH)(t.lr.GET_QUERY_ROUTES_ECL,(0,e.Ky)()),I=(0,e.PH)(t.lr.SET_QUERY_ROUTES_ECL,(0,e.Ky)()),x=(0,e.PH)(t.lr.SEND_PAYMENT_ECL,(0,e.Ky)()),r=(0,e.PH)(t.lr.SEND_PAYMENT_STATUS_ECL,(0,e.Ky)()),b=(0,e.PH)(t.lr.FETCH_TRANSACTIONS_ECL),J=(0,e.PH)(t.lr.SET_TRANSACTIONS_ECL,(0,e.Ky)()),F=(0,e.PH)(t.lr.SEND_ONCHAIN_FUNDS_ECL,(0,e.Ky)()),te=((0,e.PH)(t.lr.SEND_ONCHAIN_FUNDS_RES_ECL,(0,e.Ky)()),(0,e.PH)(t.lr.FETCH_INVOICES_ECL)),xe=(0,e.PH)(t.lr.SET_INVOICES_ECL,(0,e.Ky)()),Re=(0,e.PH)(t.lr.CREATE_INVOICE_ECL,(0,e.Ky)()),Fe=(0,e.PH)(t.lr.ADD_INVOICE_ECL,(0,e.Ky)()),q=(0,e.PH)(t.lr.UPDATE_INVOICE_ECL,(0,e.Ky)()),j=(0,e.PH)(t.lr.PEER_LOOKUP_ECL,(0,e.Ky)()),we=(0,e.PH)(t.lr.INVOICE_LOOKUP_ECL,(0,e.Ky)()),le=((0,e.PH)(t.lr.SET_LOOKUP_ECL,(0,e.Ky)()),(0,e.PH)(t.lr.UPDATE_CHANNEL_STATE_ECL,(0,e.Ky)())),We=(0,e.PH)(t.lr.UPDATE_RELAYED_PAYMENT_ECL,(0,e.Ky)())},3289:(Ue,K,m)=>{"use strict";m.d(K,{o:()=>ne});var e=m(6642),t=m(7579),v=m(9646),M=m(5577),s=m(2722),C=m(4004),c=m(262),P=m(2340),o=m(1786),O=m(7731),T=m(7861),R=m(7766),S=m(2994),D=m(2501),w=m(5e3),U=m(8138),G=m(5620),W=m(5986),ee=m(62),ie=m(5043),_e=m(9291),fe=m(7998),de=m(9808);let ne=(()=>{class se{constructor(y,i,a,p,u,_,L,I,x){this.actions=y,this.httpClient=i,this.store=a,this.sessionService=p,this.commonService=u,this.logger=_,this.router=L,this.wsService=I,this.location=x,this.CHILD_API_URL=P.T5+"/ecl",this.flgInitialized=!1,this.flgReceivedPaymentUpdateFromWS=!1,this.latestPaymentRes="",this.rawChannelsList=[],this.unSubs=[new t.x,new t.x,new t.x],this.infoFetchECL=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.FETCH_INFO_ECL),(0,M.z)(r=>(this.flgInitialized=!1,this.store.dispatch((0,T.lC)({payload:this.CHILD_API_URL})),this.store.dispatch((0,T.ac)({payload:O.m6.GET_NODE_INFO})),this.store.dispatch((0,S.QZ)({payload:{action:"FetchInfo",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.GETINFO_API).pipe((0,s.R)(this.actions.pipe((0,e.l4)(O.pg.SET_SELECTED_NODE))),(0,C.U)(b=>(this.logger.info(b),this.initializeRemainingData(b,r.payload.loadPage),this.store.dispatch((0,S.QZ)({payload:{action:"FetchInfo",status:O.Bn.COMPLETED}})),this.store.dispatch((0,T.uO)({payload:O.m6.GET_NODE_INFO})),{type:O.lr.SET_INFO_ECL,payload:b||{}})),(0,c.K)(b=>{const J=this.commonService.extractErrorCode(b),F=503===J?"Unable to Connect to Eclair Server.":this.commonService.extractErrorMessage(b);return this.router.navigate(["/error"],{state:{errorCode:J,errorMessage:F}}),this.handleErrorWithoutAlert("FetchInfo",O.m6.GET_NODE_INFO,"Fetching Node Info Failed.",{status:J,error:F}),(0,v.of)({type:O.pg.VOID})})))))),this.fetchFees=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.FETCH_FEES_ECL),(0,M.z)(()=>(this.store.dispatch((0,S.QZ)({payload:{action:"FetchFees",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.FEES_API+"/fees").pipe((0,C.U)(r=>(this.logger.info(r),this.store.dispatch((0,S.QZ)({payload:{action:"FetchFees",status:O.Bn.COMPLETED}})),{type:O.lr.SET_FEES_ECL,payload:r||{}})),(0,c.K)(r=>(this.handleErrorWithoutAlert("FetchFees",O.m6.NO_SPINNER,"Fetching Fees Failed.",r),(0,v.of)({type:O.pg.VOID})))))))),this.fetchPayments=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.FETCH_PAYMENTS_ECL),(0,M.z)(()=>(this.store.dispatch((0,S.QZ)({payload:{action:"FetchPayments",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.FEES_API+"/payments").pipe((0,C.U)(r=>(this.logger.info(r),this.store.dispatch((0,S.QZ)({payload:{action:"FetchPayments",status:O.Bn.COMPLETED}})),{type:O.lr.SET_PAYMENTS_ECL,payload:r||{}})),(0,c.K)(r=>(this.handleErrorWithoutAlert("FetchPayments",O.m6.NO_SPINNER,"Fetching Payments Failed.",r),(0,v.of)({type:O.pg.VOID})))))))),this.channelsFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.FETCH_CHANNELS_ECL),(0,M.z)(r=>(this.store.dispatch((0,S.QZ)({payload:{action:"FetchChannels",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.CHANNELS_API).pipe((0,C.U)(b=>(this.logger.info(b),this.rawChannelsList=b,this.setChannelsAndStatusAndBalances(),this.store.dispatch((0,S.QZ)({payload:{action:"FetchChannels",status:O.Bn.COMPLETED}})),r.payload&&r.payload.fetchPayments&&this.store.dispatch((0,S.cQ)()),{type:O.pg.VOID})),(0,c.K)(b=>(this.handleErrorWithoutAlert("FetchChannels",O.m6.NO_SPINNER,"Fetching Channels Failed.",b),(0,v.of)({type:O.pg.VOID})))))))),this.fetchOnchainBalance=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.FETCH_ONCHAIN_BALANCE_ECL),(0,M.z)(()=>(this.store.dispatch((0,S.QZ)({payload:{action:"FetchOnchainBalance",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.ON_CHAIN_API+"/balance"))),(0,C.U)(r=>(this.logger.info(r),this.store.dispatch((0,S.QZ)({payload:{action:"FetchOnchainBalance",status:O.Bn.COMPLETED}})),{type:O.lr.SET_ONCHAIN_BALANCE_ECL,payload:r||{}})),(0,c.K)(r=>(this.handleErrorWithoutAlert("FetchOnchainBalance",O.m6.NO_SPINNER,"Fetching Onchain Balances Failed.",r),(0,v.of)({type:O.pg.VOID}))))),this.peersFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.FETCH_PEERS_ECL),(0,M.z)(()=>(this.store.dispatch((0,S.QZ)({payload:{action:"FetchPeers",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.PEERS_API).pipe((0,C.U)(r=>(this.logger.info(r),this.store.dispatch((0,S.QZ)({payload:{action:"FetchPeers",status:O.Bn.COMPLETED}})),{type:O.lr.SET_PEERS_ECL,payload:r||[]})),(0,c.K)(r=>(this.handleErrorWithoutAlert("FetchPeers",O.m6.NO_SPINNER,"Fetching Peers Failed.",r),(0,v.of)({type:O.pg.VOID})))))))),this.getNewAddress=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.GET_NEW_ADDRESS_ECL),(0,M.z)(()=>(this.store.dispatch((0,T.ac)({payload:O.m6.GENERATE_NEW_ADDRESS})),this.httpClient.get(this.CHILD_API_URL+P.NZ.ON_CHAIN_API).pipe((0,C.U)(r=>(this.logger.info(r),this.store.dispatch((0,T.uO)({payload:O.m6.GENERATE_NEW_ADDRESS})),{type:O.lr.SET_NEW_ADDRESS_ECL,payload:r})),(0,c.K)(r=>(this.handleErrorWithAlert("GetNewAddress",O.m6.GENERATE_NEW_ADDRESS,"Generate New Address Failed",this.CHILD_API_URL+P.NZ.ON_CHAIN_API,r),(0,v.of)({type:O.pg.VOID})))))))),this.setNewAddress=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.SET_NEW_ADDRESS_ECL),(0,C.U)(r=>(this.logger.info(r.payload),r.payload))),{dispatch:!1}),this.saveNewPeer=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.SAVE_NEW_PEER_ECL),(0,M.z)(r=>(this.store.dispatch((0,T.ac)({payload:O.m6.CONNECT_PEER})),this.store.dispatch((0,S.QZ)({payload:{action:"SaveNewPeer",status:O.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+P.NZ.PEERS_API+(r.payload.id.includes("@")?"?uri=":"?nodeId=")+r.payload.id,{}).pipe((0,C.U)(b=>(this.logger.info(b),this.store.dispatch((0,S.QZ)({payload:{action:"SaveNewPeer",status:O.Bn.COMPLETED}})),b=b||[],this.store.dispatch((0,T.uO)({payload:O.m6.CONNECT_PEER})),this.store.dispatch((0,S.Z8)({payload:b})),{type:O.lr.NEWLY_ADDED_PEER_ECL,payload:{peer:b.find(J=>J.nodeId===(r.payload.id.includes("@")?r.payload.id.substring(0,r.payload.id.indexOf("@")):r.payload.id))}})),(0,c.K)(b=>(this.handleErrorWithoutAlert("SaveNewPeer",O.m6.CONNECT_PEER,"Peer Connection Failed.",b),(0,v.of)({type:O.pg.VOID})))))))),this.detachPeer=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.DETACH_PEER_ECL),(0,M.z)(r=>(this.store.dispatch((0,T.ac)({payload:O.m6.DISCONNECT_PEER})),this.httpClient.delete(this.CHILD_API_URL+P.NZ.PEERS_API+"/"+r.payload.nodeId).pipe((0,C.U)(b=>(this.logger.info(b),this.store.dispatch((0,T.uO)({payload:O.m6.DISCONNECT_PEER})),this.store.dispatch((0,T.jW)({payload:"Disconnecting Peer!"})),{type:O.lr.REMOVE_PEER_ECL,payload:{nodeId:r.payload.nodeId}})),(0,c.K)(b=>(this.handleErrorWithAlert("DisconnectPeer",O.m6.DISCONNECT_PEER,"Unable to Detach Peer. Try again later.",this.CHILD_API_URL+P.NZ.PEERS_API+"/"+r.payload.nodeId,b),(0,v.of)({type:O.pg.VOID})))))))),this.openNewChannel=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.SAVE_NEW_CHANNEL_ECL),(0,M.z)(r=>(this.store.dispatch((0,T.ac)({payload:O.m6.OPEN_CHANNEL})),this.store.dispatch((0,S.QZ)({payload:{action:"SaveNewChannel",status:O.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+P.NZ.CHANNELS_API,r.payload.feeRate&&r.payload.feeRate>0?{nodeId:r.payload.nodeId,fundingSatoshis:r.payload.amount,channelFlags:+!r.payload.private,fundingFeerateSatByte:r.payload.feeRate}:{nodeId:r.payload.nodeId,fundingSatoshis:r.payload.amount,channelFlags:+!r.payload.private}).pipe((0,C.U)(J=>(this.logger.info(J),this.store.dispatch((0,S.QZ)({payload:{action:"SaveNewChannel",status:O.Bn.COMPLETED}})),this.store.dispatch((0,S.$W)()),this.store.dispatch((0,S.iL)()),this.store.dispatch((0,T.uO)({payload:O.m6.OPEN_CHANNEL})),this.store.dispatch((0,T.jW)({payload:"Channel Added Successfully!"})),{type:O.lr.FETCH_CHANNELS_ECL,payload:{fetchPayments:!1}})),(0,c.K)(J=>(this.handleErrorWithoutAlert("SaveNewChannel",O.m6.OPEN_CHANNEL,"Opening Channel Failed.",J),(0,v.of)({type:O.pg.VOID})))))))),this.updateChannel=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.UPDATE_CHANNEL_ECL),(0,M.z)(r=>{this.store.dispatch((0,T.ac)({payload:O.m6.UPDATE_CHAN_POLICY}));let b="?feeBaseMsat="+r.payload.baseFeeMsat+"&feeProportionalMillionths="+r.payload.feeRate;return b=r.payload.nodeIds?b+"&nodeIds="+r.payload.nodeIds:r.payload.nodeId?b+"&nodeId="+r.payload.nodeId:r.payload.channelIds?b+"&channelIds="+r.payload.channelIds:b+"&channelId="+r.payload.channelId,this.httpClient.post(this.CHILD_API_URL+P.NZ.CHANNELS_API+"/updateRelayFee"+b,{}).pipe((0,C.U)(J=>(this.logger.info(J),this.store.dispatch((0,T.uO)({payload:O.m6.UPDATE_CHAN_POLICY})),this.store.dispatch((0,T.jW)(r.payload.nodeIds||r.payload.channelIds?{payload:"Channels Updated Successfully."}:{payload:"Channel Updated Successfully!"})),{type:O.lr.FETCH_CHANNELS_ECL,payload:{fetchPayments:!1}})),(0,c.K)(J=>(this.handleErrorWithAlert("UpdateChannels",O.m6.UPDATE_CHAN_POLICY,"Update Channel Failed",this.CHILD_API_URL+P.NZ.CHANNELS_API,J),(0,v.of)({type:O.pg.VOID}))))}))),this.closeChannel=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.CLOSE_CHANNEL_ECL),(0,M.z)(r=>(this.store.dispatch((0,T.ac)({payload:r.payload.force?O.m6.FORCE_CLOSE_CHANNEL:O.m6.CLOSE_CHANNEL})),this.httpClient.delete(this.CHILD_API_URL+P.NZ.CHANNELS_API+"?channelId="+r.payload.channelId+"&force="+r.payload.force).pipe((0,C.U)(b=>(this.logger.info(b),setTimeout(()=>{this.store.dispatch((0,T.uO)({payload:r.payload.force?O.m6.FORCE_CLOSE_CHANNEL:O.m6.CLOSE_CHANNEL})),this.store.dispatch((0,S.UR)({payload:{fetchPayments:!1}})),this.store.dispatch((0,T.jW)({payload:r.payload.force?"Channel Force Closed Successfully!":"Channel Closed Successfully!"}))},2e3),{type:O.pg.VOID})),(0,c.K)(b=>(this.handleErrorWithAlert("CloseChannel",r.payload.force?O.m6.FORCE_CLOSE_CHANNEL:O.m6.CLOSE_CHANNEL,"Unable to Close Channel. Try again later.",this.CHILD_API_URL+P.NZ.CHANNELS_API,b),(0,v.of)({type:O.pg.VOID})))))))),this.queryRoutesFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.GET_QUERY_ROUTES_ECL),(0,M.z)(r=>this.httpClient.get(this.CHILD_API_URL+P.NZ.PAYMENTS_API+"/route?nodeId="+r.payload.nodeId+"&amountMsat="+r.payload.amount).pipe((0,C.U)(b=>(this.logger.info(b),{type:O.lr.SET_QUERY_ROUTES_ECL,payload:b})),(0,c.K)(b=>(this.store.dispatch((0,S.kL)({payload:[]})),this.handleErrorWithAlert("GetQueryRoutes",O.m6.NO_SPINNER,"Get Query Routes Failed",this.CHILD_API_URL+P.NZ.PAYMENTS_API+"/route?nodeId="+r.payload.nodeId+"&amountMsat="+r.payload.amount,b),(0,v.of)({type:O.pg.VOID}))))))),this.setQueryRoutes=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.SET_QUERY_ROUTES_ECL),(0,C.U)(r=>r.payload)),{dispatch:!1}),this.sendPayment=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.SEND_PAYMENT_ECL),(0,M.z)(r=>(this.flgReceivedPaymentUpdateFromWS=!1,this.latestPaymentRes="",this.store.dispatch((0,T.ac)({payload:O.m6.SEND_PAYMENT})),this.store.dispatch((0,S.QZ)({payload:{action:"SendPayment",status:O.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+P.NZ.PAYMENTS_API,r.payload).pipe((0,C.U)(b=>(this.logger.info(b),this.latestPaymentRes=b,setTimeout(()=>{this.flgReceivedPaymentUpdateFromWS||this.handleSendPaymentStatus("Payment Submitted!")},3e3),{type:O.pg.VOID})),(0,c.K)(b=>(this.logger.error("Error: "+JSON.stringify(b)),r.payload.fromDialog?this.handleErrorWithoutAlert("SendPayment",O.m6.SEND_PAYMENT,"Send Payment Failed.",b):this.handleErrorWithAlert("SendPayment",O.m6.SEND_PAYMENT,"Send Payment Failed",this.CHILD_API_URL+P.NZ.PAYMENTS_API,b),(0,v.of)({type:O.pg.VOID})))))))),this.transactionsFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.FETCH_TRANSACTIONS_ECL),(0,M.z)(()=>(this.store.dispatch((0,S.QZ)({payload:{action:"FetchTransactions",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.ON_CHAIN_API+"/transactions?count=1000&skip=0"))),(0,C.U)(r=>(this.logger.info(r),this.store.dispatch((0,S.QZ)({payload:{action:"FetchTransactions",status:O.Bn.COMPLETED}})),{type:O.lr.SET_TRANSACTIONS_ECL,payload:r||[]})),(0,c.K)(r=>(this.handleErrorWithoutAlert("FetchTransactions",O.m6.NO_SPINNER,"Fetching Transactions Failed.",r),(0,v.of)({type:O.pg.VOID}))))),this.SendOnchainFunds=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.SEND_ONCHAIN_FUNDS_ECL),(0,M.z)(r=>(this.store.dispatch((0,T.ac)({payload:O.m6.SEND_FUNDS})),this.store.dispatch((0,S.QZ)({payload:{action:"SendOnchainFunds",status:O.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+P.NZ.ON_CHAIN_API,r.payload).pipe((0,C.U)(b=>(this.logger.info(b),this.store.dispatch((0,S.QZ)({payload:{action:"SendOnchainFunds",status:O.Bn.COMPLETED}})),this.store.dispatch((0,T.uO)({payload:O.m6.SEND_FUNDS})),this.store.dispatch((0,S.iL)()),{type:O.lr.SEND_ONCHAIN_FUNDS_RES_ECL,payload:b})),(0,c.K)(b=>(this.handleErrorWithoutAlert("SendOnchainFunds",O.m6.SEND_FUNDS,"Sending Fund Failed.",b),(0,v.of)({type:O.pg.VOID})))))))),this.createInvoice=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.CREATE_INVOICE_ECL),(0,M.z)(r=>(this.store.dispatch((0,T.ac)({payload:O.m6.CREATE_INVOICE})),this.store.dispatch((0,S.QZ)({payload:{action:"CreateInvoice",status:O.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+P.NZ.INVOICES_API,r.payload).pipe((0,C.U)(b=>(this.logger.info(b),this.store.dispatch((0,S.QZ)({payload:{action:"CreateInvoice",status:O.Bn.COMPLETED}})),this.store.dispatch((0,T.uO)({payload:O.m6.CREATE_INVOICE})),b.timestamp=Math.round((new Date).getTime()/1e3),b.expiresAt=Math.round(b.timestamp+r.payload.expireIn),b.description=r.payload.description,b.status="unpaid",setTimeout(()=>{this.store.dispatch((0,T.qR)({payload:{data:{invoice:b,newlyAdded:!0,component:R.R}}}))},100),{type:O.lr.ADD_INVOICE_ECL,payload:b})),(0,c.K)(b=>(this.handleErrorWithoutAlert("CreateInvoice",O.m6.CREATE_INVOICE,"Create Invoice Failed.",b),(0,v.of)({type:O.pg.VOID})))))))),this.invoicesFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.FETCH_INVOICES_ECL),(0,M.z)(()=>(this.store.dispatch((0,S.QZ)({payload:{action:"FetchInvoices",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.INVOICES_API).pipe((0,C.U)(r=>(this.logger.info(r),this.store.dispatch((0,S.QZ)({payload:{action:"FetchInvoices",status:O.Bn.COMPLETED}})),{type:O.lr.SET_INVOICES_ECL,payload:r})),(0,c.K)(r=>(this.handleErrorWithoutAlert("FetchInvoices",O.m6.NO_SPINNER,"Fetching Invoices Failed.",r),(0,v.of)({type:O.pg.VOID})))))))),this.peerLookup=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.PEER_LOOKUP_ECL),(0,M.z)(r=>(this.store.dispatch((0,T.ac)({payload:O.m6.SEARCHING_NODE})),this.store.dispatch((0,S.QZ)({payload:{action:"Lookup",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.NETWORK_API+"/nodes/"+r.payload).pipe((0,C.U)(b=>(this.logger.info(b),this.store.dispatch((0,S.QZ)({payload:{action:"Lookup",status:O.Bn.COMPLETED}})),this.store.dispatch((0,T.uO)({payload:O.m6.SEARCHING_NODE})),{type:O.lr.SET_LOOKUP_ECL,payload:b})),(0,c.K)(b=>(this.handleErrorWithAlert("Lookup",O.m6.SEARCHING_NODE,"Peer Lookup Failed",this.CHILD_API_URL+P.NZ.NETWORK_API+"/nodes/"+r.payload,b),(0,v.of)({type:O.pg.VOID})))))))),this.invoiceLookup=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.INVOICE_LOOKUP_ECL),(0,M.z)(r=>(this.store.dispatch((0,T.ac)({payload:O.m6.SEARCHING_INVOICE})),this.store.dispatch((0,S.QZ)({payload:{action:"Lookup",status:O.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+P.NZ.INVOICES_API+"/"+r.payload).pipe((0,C.U)(b=>(this.logger.info(b),this.store.dispatch((0,S.QZ)({payload:{action:"Lookup",status:O.Bn.COMPLETED}})),this.store.dispatch((0,T.uO)({payload:O.m6.SEARCHING_INVOICE})),this.store.dispatch((0,S.aL)({payload:b})),{type:O.lr.SET_LOOKUP_ECL,payload:b})),(0,c.K)(b=>(this.handleErrorWithoutAlert("Lookup",O.m6.SEARCHING_INVOICE,"Invoice Lookup Failed",b),this.store.dispatch((0,T.jW)({payload:{message:"Invoice Refresh Failed.",type:"ERROR"}})),(0,v.of)({type:O.pg.VOID})))))))),this.setLookup=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(O.lr.SET_LOOKUP_ECL),(0,C.U)(r=>(this.logger.info(r.payload),r.payload))),{dispatch:!1}),this.handleSendPaymentStatus=r=>{this.store.dispatch((0,S.QZ)({payload:{action:"SendPayment",status:O.Bn.COMPLETED}})),this.store.dispatch((0,T.uO)({payload:O.m6.SEND_PAYMENT})),this.store.dispatch((0,S.TM)({payload:this.latestPaymentRes})),this.store.dispatch((0,S.UR)({payload:{fetchPayments:!0}})),this.store.dispatch((0,T.jW)({payload:r}))},this.store.select(D.yA).pipe((0,s.R)(this.unSubs[0])).subscribe(r=>{r.FetchInfo.status!==O.Bn.COMPLETED&&r.FetchInfo.status!==O.Bn.ERROR||r.FetchFees.status!==O.Bn.COMPLETED&&r.FetchFees.status!==O.Bn.ERROR||r.FetchOnchainBalance.status!==O.Bn.COMPLETED&&r.FetchOnchainBalance.status!==O.Bn.ERROR||r.FetchChannels.status!==O.Bn.COMPLETED&&r.FetchChannels.status!==O.Bn.ERROR||this.flgInitialized||(this.store.dispatch((0,T.uO)({payload:O.m6.INITALIZE_NODE_DATA})),this.flgInitialized=!0)}),this.wsService.eclWSMessages.pipe((0,s.R)(this.unSubs[1])).subscribe(r=>{this.logger.info("Received new message from the service: "+JSON.stringify(r));let b="";if(r)switch(r.type){case O.$v.PAYMENT_SENT:r&&r.id&&this.latestPaymentRes===r.id&&(this.flgReceivedPaymentUpdateFromWS=!0,b="Payment Sent: "+(r.paymentHash?"with payment hash "+r.paymentHash:JSON.stringify(r)),this.handleSendPaymentStatus(b));break;case O.$v.PAYMENT_FAILED:r&&r.id&&this.latestPaymentRes===r.id&&(this.flgReceivedPaymentUpdateFromWS=!0,b="Payment Failed: "+(r.failures&&r.failures.length&&r.failures.length>0&&r.failures[0].t?r.failures[0].t:r.failures&&r.failures.length&&r.failures.length>0&&r.failures[0].e&&r.failures[0].e.failureMessage?r.failures[0].e.failureMessage:JSON.stringify(r)),this.handleSendPaymentStatus(b));break;case O.$v.PAYMENT_RECEIVED:this.store.dispatch((0,S.aL)({payload:r}));break;case O.$v.PAYMENT_RELAYED:delete r.source,this.store.dispatch((0,S.ti)({payload:r}));break;case O.$v.CHANNEL_STATE_CHANGED:"NORMAL"===r.currentState||"CLOSED"===r.currentState?(this.rawChannelsList=this.rawChannelsList.map(J=>(J.channelId===r.channelId&&J.nodeId===r.remoteNodeId&&(J.state=r.currentState),J)),this.setChannelsAndStatusAndBalances()):this.store.dispatch((0,S.DJ)({payload:r}));break;default:this.logger.info("Received Event from WS: "+JSON.stringify(r))}})}setChannelsAndStatusAndBalances(){let y=0,i=0,a=0,p={localBalance:0,remoteBalance:0},u=[];const _=[],L=[],I={active:{channels:0,capacity:0},inactive:{channels:0,capacity:0},pending:{channels:0,capacity:0}};this.rawChannelsList.forEach((x,r)=>{"NORMAL"===x.state?(y=x.toLocal+x.toRemote,i+=x.toLocal,a+=x.toRemote,x.balancedness=0===y?1:+(1-Math.abs((x.toLocal-x.toRemote)/y)).toFixed(3),u.push(x),I.active.channels=I.active.channels+1,I.active.capacity=I.active.capacity+x.toLocal):x.state.includes("WAIT")||x.state.includes("CLOSING")||x.state.includes("SYNCING")?(x.state=x.state.replace(/_/g," "),_.push(x),I.pending.channels=I.pending.channels+1,I.pending.capacity=I.pending.capacity+x.toLocal):(x.state=x.state.replace(/_/g," "),L.push(x),I.inactive.channels=I.inactive.channels+1,I.inactive.capacity=I.inactive.capacity+x.toLocal)}),p={localBalance:i,remoteBalance:a},u=this.commonService.sortDescByKey(u,"balancedness"),this.logger.info("Active Channels: "+JSON.stringify(u)),this.logger.info("Pending Channels: "+JSON.stringify(_)),this.logger.info("Inactive Channels: "+JSON.stringify(L)),this.logger.info("Lightning Balances: "+JSON.stringify(p)),this.logger.info("Channels Status: "+JSON.stringify(I)),this.logger.info("Channel, status and balances: "+JSON.stringify({active:u,pending:_,inactive:L,balances:p,status:I})),this.store.dispatch((0,S.eN)({payload:u})),this.store.dispatch((0,S.TW)({payload:_})),this.store.dispatch((0,S.i)({payload:L})),this.store.dispatch((0,S.On)({payload:p})),this.store.dispatch((0,S.HG)({payload:I}))}initializeRemainingData(y,i){this.sessionService.setItem("eclUnlocked","true");const a={identity_pubkey:y.nodeId,alias:y.alias,testnet:"testnet"===y.network,chains:y.publicAddresses,uris:y.uris,version:y.version,numberOfPendingChannels:0};this.store.dispatch((0,T.ac)({payload:O.m6.INITALIZE_NODE_DATA})),this.store.dispatch((0,T._V)({payload:a}));let p=this.location.path();p.includes("/lnd/")?p=p.replace("/lnd/","/ecl/"):p.includes("/cl/")&&(p=p.replace("/cl/","/ecl/")),(p.includes("/login")||p.includes("/error")||""===p||"HOME"===i||p.includes("?access-key="))&&(p="/ecl/home"),this.router.navigate([p]),this.store.dispatch((0,S.WM)()),this.store.dispatch((0,S.UR)({payload:{fetchPayments:!0}})),this.store.dispatch((0,S.SN)()),this.store.dispatch((0,S.iL)()),this.store.dispatch((0,S.$W)())}handleErrorWithoutAlert(y,i,a,p){this.logger.error("ERROR IN: "+y+"\n"+JSON.stringify(p)),401===p.status?(this.logger.info("Redirecting to Login"),this.store.dispatch((0,T.ts)()),this.store.dispatch((0,T.kS)()),this.store.dispatch((0,T.jW)({payload:"Authentication Failed. Redirecting to Login."}))):(this.store.dispatch((0,T.uO)({payload:i})),this.store.dispatch((0,S.QZ)({payload:{action:y,status:O.Bn.ERROR,statusCode:p.status.toString(),message:this.commonService.extractErrorMessage(p,a)}})))}handleErrorWithAlert(y,i,a,p,u){if(this.logger.error(u),401===u.status)this.logger.info("Redirecting to Login"),this.store.dispatch((0,T.ts)()),this.store.dispatch((0,T.kS)()),this.store.dispatch((0,T.jW)({payload:"Authentication Failed. Redirecting to Login."}));else{this.store.dispatch((0,T.uO)({payload:i}));const _=this.commonService.extractErrorMessage(u);this.store.dispatch((0,T.qR)({payload:{data:{type:"ERROR",alertTitle:a,message:{code:u.status,message:_,URL:p},component:o.H}}})),this.store.dispatch((0,S.QZ)({payload:{action:y,status:O.Bn.ERROR,statusCode:u.status.toString(),message:_,URL:p}}))}}ngOnDestroy(){this.unSubs.forEach(y=>{y.next(null),y.complete()})}}return se.\u0275fac=function(y){return new(y||se)(w.LFG(e.eX),w.LFG(U.eN),w.LFG(G.yh),w.LFG(W.m),w.LFG(ee.v),w.LFG(ie.mQ),w.LFG(_e.F0),w.LFG(fe.d),w.LFG(de.Ye))},se.\u0275prov=w.Yz7({token:se,factory:se.\u0275fac}),se})()},2501:(Ue,K,m)=>{"use strict";m.d(K,{LR:()=>v,yD:()=>M,T$:()=>s,yA:()=>c,PP:()=>P,JG:()=>o,Xz:()=>O,dx:()=>T,Ef:()=>R,Bo:()=>S,kY:()=>D});var e=m(5620);const t=(0,e.ZF)("ecl"),v=(0,e.P1)(t,w=>w.nodeSettings),M=(0,e.P1)(t,w=>w.information),s=(0,e.P1)(t,w=>({information:w.information,apiCallStatus:w.apisCallStatus.FetchInfo})),c=((0,e.P1)(t,w=>w.apisCallStatus.FetchInfo),(0,e.P1)(t,w=>w.apisCallStatus)),P=(0,e.P1)(t,w=>({payments:w.payments,apiCallStatus:w.apisCallStatus.FetchPayments})),o=(0,e.P1)(t,w=>({fees:w.fees,apiCallStatus:w.apisCallStatus.FetchFees})),O=(0,e.P1)(t,w=>({activeChannels:w.activeChannels,pendingChannels:w.pendingChannels,inactiveChannels:w.inactiveChannels,lightningBalance:w.lightningBalance,channelsStatus:w.channelsStatus,apiCallStatus:w.apisCallStatus.FetchChannels})),T=(0,e.P1)(t,w=>({transactions:w.transactions,apiCallStatus:w.apisCallStatus.FetchTransactions})),R=(0,e.P1)(t,w=>({invoices:w.invoices,apiCallStatus:w.apisCallStatus.FetchInvoices})),S=(0,e.P1)(t,w=>({peers:w.peers,apiCallStatus:w.apisCallStatus.FetchPeers})),D=(0,e.P1)(t,w=>({onchainBalance:w.onchainBalance,apiCallStatus:w.apisCallStatus.FetchOnchainBalance}))},7766:(Ue,K,m)=>{"use strict";m.d(K,{R:()=>q});var e=m(8966),t=m(801),v=m(7579),M=m(2722),s=m(7731),C=m(2501),c=m(5e3),P=m(5043),o=m(62),O=m(7261),T=m(5620),R=m(7093),S=m(9808),D=m(3322),w=m(9224),U=m(9444),G=m(7423),W=m(4834),ee=m(159),ie=m(773),_e=m(3390),fe=m(6895);function de(j,we){if(1&j&&c._UZ(0,"qr-code",29),2&j){const Ae=c.oxw();c.Q6J("value",null==Ae.invoice?null:Ae.invoice.serialized)("size",Ae.qrWidth)("errorCorrectionLevel","L")}}function ne(j,we){1&j&&(c.TgZ(0,"span",30),c._uU(1,"N/A"),c.qZA())}function se(j,we){if(1&j&&c._UZ(0,"qr-code",29),2&j){const Ae=c.oxw();c.Q6J("value",null==Ae.invoice?null:Ae.invoice.serialized)("size",Ae.qrWidth)("errorCorrectionLevel","L")}}function oe(j,we){1&j&&(c.TgZ(0,"span",31),c._uU(1,"QR Code Not Applicable"),c.qZA())}function y(j,we){1&j&&c._UZ(0,"mat-divider",32),2&j&&c.Q6J("inset",!0)}function i(j,we){1&j&&(c.ynx(0),c._uU(1," (zero amount) "),c.BQk())}function a(j,we){1&j&&c._UZ(0,"span",38)}const p=function(){return[]};function u(j,we){if(1&j&&(c.TgZ(0,"div",34),c.TgZ(1,"div",35),c.TgZ(2,"span",36),c._uU(3),c.ALo(4,"number"),c.qZA(),c.YNc(5,a,1,0,"span",37),c.qZA(),c.qZA()),2&j){const Ae=c.oxw(2);c.xp6(3),c.hij("",c.lcZ(4,2,null==Ae.invoice?null:Ae.invoice.amountSettled)," Sats"),c.xp6(2),c.Q6J("ngForOf",c.DdM(4,p).constructor(35))}}function _(j,we){if(1&j&&(c.TgZ(0,"div"),c._uU(1),c.ALo(2,"number"),c.qZA()),2&j){const Ae=c.oxw(2);c.xp6(1),c.hij("",c.lcZ(2,1,null==Ae.invoice?null:Ae.invoice.amountSettled)," Sats")}}function L(j,we){if(1&j&&(c.ynx(0),c.YNc(1,u,6,5,"div",33),c.YNc(2,_,3,3,"div",19),c.BQk()),2&j){const Ae=c.oxw();c.xp6(1),c.Q6J("ngIf",Ae.flgInvoicePaid),c.xp6(1),c.Q6J("ngIf",!Ae.flgInvoicePaid)}}function I(j,we){1&j&&(c.TgZ(0,"span"),c._uU(1,"-"),c.qZA())}function x(j,we){1&j&&c._UZ(0,"mat-spinner",40),2&j&&c.Q6J("diameter",20)}function r(j,we){if(1&j&&(c.ynx(0),c.YNc(1,I,2,0,"span",19),c.YNc(2,x,1,1,"mat-spinner",39),c.BQk()),2&j){const Ae=c.oxw();c.xp6(1),c.Q6J("ngIf","unpaid"!==(null==Ae.invoice?null:Ae.invoice.status)||!Ae.flgVersionCompatible),c.xp6(1),c.Q6J("ngIf","unpaid"===(null==Ae.invoice?null:Ae.invoice.status)&&Ae.flgVersionCompatible)}}function b(j,we){if(1&j&&(c.TgZ(0,"div"),c._UZ(1,"mat-divider",20),c.TgZ(2,"div",15),c.TgZ(3,"div",41),c.TgZ(4,"h4",17),c._uU(5,"Date Expiry"),c.qZA(),c.TgZ(6,"span",18),c._uU(7),c.ALo(8,"date"),c.qZA(),c.qZA(),c.TgZ(9,"div",42),c.TgZ(10,"h4",17),c._uU(11,"Date Settled"),c.qZA(),c.TgZ(12,"span",21),c._uU(13),c.ALo(14,"date"),c.qZA(),c.qZA(),c.qZA(),c._UZ(15,"mat-divider",20),c.TgZ(16,"div",15),c.TgZ(17,"div",22),c.TgZ(18,"h4",17),c._uU(19,"Payment Hash"),c.qZA(),c.TgZ(20,"span",21),c._uU(21),c.qZA(),c.qZA(),c.qZA(),c._UZ(22,"mat-divider",20),c.TgZ(23,"div",15),c.TgZ(24,"div",22),c.TgZ(25,"h4",17),c._uU(26,"Node Id"),c.qZA(),c.TgZ(27,"span",21),c._uU(28),c.qZA(),c.qZA(),c.qZA(),c._UZ(29,"mat-divider",20),c.qZA()),2&j){const Ae=c.oxw();c.xp6(7),c.Oqu(c.xi3(8,4,1e3*(null==Ae.invoice?null:Ae.invoice.expiresAt),"dd/MMM/YYYY HH:mm")),c.xp6(6),c.Oqu(c.xi3(14,7,1e3*(null==Ae.invoice?null:Ae.invoice.receivedAt),"dd/MMM/YYYY HH:mm")),c.xp6(8),c.Oqu(null==Ae.invoice?null:Ae.invoice.paymentHash),c.xp6(7),c.Oqu(null==Ae.invoice?null:Ae.invoice.nodeId)}}function J(j,we){1&j&&(c.TgZ(0,"p"),c._uU(1,"Show Advanced"),c.qZA())}function F(j,we){1&j&&(c.TgZ(0,"p"),c._uU(1,"Hide Advanced"),c.qZA())}function B(j,we){if(1&j){const Ae=c.EpF();c.TgZ(0,"button",43),c.NdJ("copied",function(We){return c.CHM(Ae),c.oxw().onCopyPayment(We)}),c._uU(1,"Copy Invoice"),c.qZA()}if(2&j){const Ae=c.oxw();c.Q6J("payload",null==Ae.invoice?null:Ae.invoice.serialized)}}function te(j,we){if(1&j){const Ae=c.EpF();c.TgZ(0,"button",44),c.NdJ("click",function(){return c.CHM(Ae),c.oxw().onClose()}),c._uU(1,"OK"),c.qZA()}}const xe=function(j){return{"display-none":j}},Re=function(j){return{"xs-scroll-y":j}},Fe=function(j,we){return{"mt-2":j,"mt-1":we}};let q=(()=>{class j{constructor(Ae,le,We,yt,Ne,Ve){this.dialogRef=Ae,this.data=le,this.logger=We,this.commonService=yt,this.snackBar=Ne,this.store=Ve,this.faReceipt=t.dLy,this.faExclamationTriangle=t.eHv,this.showAdvanced=!1,this.newlyAdded=!1,this.qrWidth=240,this.screenSize="",this.screenSizeEnum=s.cu,this.flgInvoicePaid=!1,this.flgVersionCompatible=!0,this.unSubs=[new v.x,new v.x,new v.x,new v.x,new v.x]}ngOnInit(){this.invoice=this.data.invoice,this.newlyAdded=this.data.newlyAdded,this.screenSize=this.commonService.getScreenSize(),this.screenSize===s.cu.XS&&(this.qrWidth=220),this.store.select(C.yD).pipe((0,M.R)(this.unSubs[0])).subscribe(Ae=>{this.flgVersionCompatible=this.commonService.isVersionCompatible(Ae.version,"0.5.0")}),this.store.select(C.Ef).pipe((0,M.R)(this.unSubs[1])).subscribe(Ae=>{const le=this.invoice.status;this.invoice=(Ae.invoices&&Ae.invoices.length>0?Ae.invoices:[]).find(yt=>yt.paymentHash===this.invoice.paymentHash),le!==this.invoice.status&&"received"===this.invoice.status&&(this.flgInvoicePaid=!0,setTimeout(()=>{this.flgInvoicePaid=!1},4e3)),this.logger.info(Ae)})}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced}onCopyPayment(Ae){this.snackBar.open("Invoice copied."),this.logger.info("Copied Text: "+Ae)}ngOnDestroy(){this.unSubs.forEach(Ae=>{Ae.next(null),Ae.complete()})}}return j.\u0275fac=function(Ae){return new(Ae||j)(c.Y36(e.so),c.Y36(e.WI),c.Y36(P.mQ),c.Y36(o.v),c.Y36(O.ux),c.Y36(T.yh))},j.\u0275cmp=c.Xpm({type:j,selectors:[["rtl-ecl-invoice-information"]],decls:68,vars:42,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","35",1,"modal-qr-code-container","padding-gap-large",3,"fxLayoutAlign","ngClass"],[3,"value","size","errorCorrectionLevel",4,"ngIf"],["class","font-size-300",4,"ngIf"],["fxFlex","65"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxFlex","30",1,"modal-qr-code-container","padding-gap",3,"fxLayoutAlign","ngClass"],["class","font-size-120",4,"ngIf"],["class","my-1",3,"inset",4,"ngIf"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[4,"ngIf"],[1,"w-100","my-1"],[1,"overflow-wrap","foreground-secondary-text"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","end center",3,"ngClass"],["mat-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],[3,"value","size","errorCorrectionLevel"],[1,"font-size-300"],[1,"font-size-120"],[1,"my-1",3,"inset"],["class","invoice-animation-container",4,"ngIf"],[1,"invoice-animation-container"],[1,"invoice-animation-div"],[1,"wiggle"],["class","particles-circle",4,"ngFor","ngForOf"],[1,"particles-circle"],[3,"diameter",4,"ngIf"],[3,"diameter"],["fxFlex","40"],["fxFlex","60"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(Ae,le){if(1&Ae&&(c.TgZ(0,"div",0),c.TgZ(1,"div",1),c.YNc(2,de,1,3,"qr-code",2),c.YNc(3,ne,2,0,"span",3),c.qZA(),c.TgZ(4,"div",4),c.TgZ(5,"mat-card-header",5),c.TgZ(6,"div",6),c._UZ(7,"fa-icon",7),c.TgZ(8,"span",8),c._uU(9),c.qZA(),c.qZA(),c.TgZ(10,"button",9),c.NdJ("click",function(){return le.onClose()}),c._uU(11,"X"),c.qZA(),c.qZA(),c.TgZ(12,"mat-card-content",10),c.TgZ(13,"div",11),c.TgZ(14,"div",12),c.YNc(15,se,1,3,"qr-code",2),c.YNc(16,oe,2,0,"span",13),c.qZA(),c.YNc(17,y,1,1,"mat-divider",14),c.TgZ(18,"div",15),c.TgZ(19,"div",16),c.TgZ(20,"h4",17),c._uU(21,"Amount Requested"),c.qZA(),c.TgZ(22,"span",18),c._uU(23),c.ALo(24,"number"),c.YNc(25,i,2,0,"ng-container",19),c.qZA(),c.qZA(),c.TgZ(26,"div",16),c.TgZ(27,"h4",17),c._uU(28,"Amount Settled"),c.qZA(),c.TgZ(29,"span",18),c.YNc(30,L,3,2,"ng-container",19),c.YNc(31,r,3,2,"ng-container",19),c.qZA(),c.qZA(),c.qZA(),c._UZ(32,"mat-divider",20),c.TgZ(33,"div",15),c.TgZ(34,"div",16),c.TgZ(35,"h4",17),c._uU(36,"Date Created"),c.qZA(),c.TgZ(37,"span",21),c._uU(38),c.ALo(39,"date"),c.qZA(),c.qZA(),c.TgZ(40,"div",16),c.TgZ(41,"h4",17),c._uU(42,"Status"),c.qZA(),c.TgZ(43,"span",21),c._uU(44),c.ALo(45,"titlecase"),c.qZA(),c.qZA(),c.qZA(),c._UZ(46,"mat-divider",20),c.TgZ(47,"div",15),c.TgZ(48,"div",22),c.TgZ(49,"h4",17),c._uU(50,"Description"),c.qZA(),c.TgZ(51,"span",18),c._uU(52),c.qZA(),c.qZA(),c.qZA(),c._UZ(53,"mat-divider",20),c.TgZ(54,"div",15),c.TgZ(55,"div",22),c.TgZ(56,"h4",17),c._uU(57,"Invoice"),c.qZA(),c.TgZ(58,"span",21),c._uU(59),c.qZA(),c.qZA(),c.qZA(),c.YNc(60,b,30,10,"div",19),c.TgZ(61,"div",23),c.TgZ(62,"button",24),c.NdJ("click",function(){return le.onShowAdvanced()}),c.YNc(63,J,2,0,"p",25),c.YNc(64,F,2,0,"ng-template",null,26,c.W1O),c.qZA(),c.YNc(66,B,2,1,"button",27),c.YNc(67,te,2,0,"button",28),c.qZA(),c.qZA(),c.qZA(),c.qZA(),c.qZA()),2&Ae){const We=c.MAs(65);c.xp6(1),c.Q6J("fxLayoutAlign",null!=le.invoice&&le.invoice.serialized&&""!==(null==le.invoice?null:le.invoice.serialized)?"center start":"center center")("ngClass",c.VKq(33,xe,le.screenSize===le.screenSizeEnum.XS||le.screenSize===le.screenSizeEnum.SM)),c.xp6(1),c.Q6J("ngIf",(null==le.invoice?null:le.invoice.serialized)&&""!==(null==le.invoice?null:le.invoice.serialized)),c.xp6(1),c.Q6J("ngIf",!(null!=le.invoice&&le.invoice.serialized)||""===(null==le.invoice?null:le.invoice.serialized)),c.xp6(4),c.Q6J("icon",le.faReceipt),c.xp6(2),c.Oqu(le.screenSize===le.screenSizeEnum.XS?le.newlyAdded?"Created":"Invoice":le.newlyAdded?"Invoice Created":"Invoice Information"),c.xp6(3),c.Q6J("ngClass",c.VKq(35,Re,le.screenSize===le.screenSizeEnum.XS)),c.xp6(2),c.Q6J("fxLayoutAlign",null!=le.invoice&&le.invoice.serialized&&""!==(null==le.invoice?null:le.invoice.serialized)?"center start":"center center")("ngClass",c.VKq(37,xe,le.screenSize!==le.screenSizeEnum.XS&&le.screenSize!==le.screenSizeEnum.SM)),c.xp6(1),c.Q6J("ngIf",(null==le.invoice?null:le.invoice.serialized)&&""!==(null==le.invoice?null:le.invoice.serialized)),c.xp6(1),c.Q6J("ngIf",!(null!=le.invoice&&le.invoice.serialized)||""===(null==le.invoice?null:le.invoice.serialized)),c.xp6(1),c.Q6J("ngIf",le.screenSize===le.screenSizeEnum.XS||le.screenSize===le.screenSizeEnum.SM),c.xp6(6),c.hij("",c.lcZ(24,26,(null==le.invoice?null:le.invoice.amount)||0)," Sats"),c.xp6(2),c.Q6J("ngIf",!(null!=le.invoice&&le.invoice.amount)||"0"===(null==le.invoice?null:le.invoice.amount)),c.xp6(5),c.Q6J("ngIf",null==le.invoice?null:le.invoice.amountSettled),c.xp6(1),c.Q6J("ngIf",!(null!=le.invoice&&le.invoice.amountSettled)),c.xp6(7),c.Oqu(c.xi3(39,28,1e3*(null==le.invoice?null:le.invoice.timestamp),"dd/MMM/YYYY HH:mm")),c.xp6(6),c.Oqu(c.lcZ(45,31,null==le.invoice?null:le.invoice.status)),c.xp6(8),c.Oqu((null==le.invoice?null:le.invoice.description)||"-"),c.xp6(7),c.Oqu((null==le.invoice?null:le.invoice.serialized)||"N/A"),c.xp6(1),c.Q6J("ngIf",le.showAdvanced),c.xp6(1),c.Q6J("ngClass",c.WLB(39,Fe,!le.showAdvanced,le.showAdvanced)),c.xp6(2),c.Q6J("ngIf",!le.showAdvanced)("ngIfElse",We),c.xp6(3),c.Q6J("ngIf",(null==le.invoice?null:le.invoice.serialized)&&""!==(null==le.invoice?null:le.invoice.serialized)),c.xp6(1),c.Q6J("ngIf",!(null!=le.invoice&&le.invoice.serialized)||""===(null==le.invoice?null:le.invoice.serialized))}},directives:[R.xw,R.Wh,R.yH,S.mk,D.oO,S.O5,w.dk,U.BN,G.lW,w.dn,W.d,ee.uU,S.sg,ie.$g,_e.h,fe.y],pipes:[S.JJ,S.uU,S.rS],styles:[""]}),j})()},6523:(Ue,K,m)=>{"use strict";m.d(K,{PC:()=>v,Ll:()=>M,JT:()=>s,sQ:()=>C,CX:()=>c,$W:()=>P,Z8:()=>o,El:()=>O,z:()=>R,EK:()=>S,Rd:()=>D,YP:()=>U,SN:()=>G,RX:()=>W,Bl:()=>ee,Jl:()=>ie,Rv:()=>_e,ks:()=>fe,UR:()=>de,as:()=>ne,Z7:()=>se,TW:()=>oe,Zh:()=>y,_L:()=>i,pW:()=>a,YX:()=>p,BL:()=>u,OG:()=>_,Vv:()=>L,Cp:()=>I,tb:()=>b,B_:()=>J,vV:()=>F,WM:()=>te,Nr:()=>xe,aL:()=>Re,mC:()=>Fe,Lf:()=>q,Ly:()=>j,UH:()=>we,cQ:()=>Ae,HI:()=>le,oV:()=>We,dV:()=>Ne,_E:()=>ue,Wi:()=>ke,fu:()=>X,y2:()=>Me,xG:()=>ht,Sf:()=>it,$A:()=>ft,n7:()=>nt,v_:()=>st,u0:()=>wt,QJ:()=>Bt,WO:()=>Nt,kL:()=>Vt,Jo:()=>Oi,Fr:()=>jt});var e=m(5620),t=m(7731);const v=(0,e.PH)(t.uR.UPDATE_API_CALL_STATUS_LND,(0,e.Ky)()),M=(0,e.PH)(t.uR.RESET_LND_STORE,(0,e.Ky)()),s=(0,e.PH)(t.uR.SET_CHILD_NODE_SETTINGS_LND,(0,e.Ky)()),C=(0,e.PH)(t.uR.FETCH_INFO_LND,(0,e.Ky)()),c=(0,e.PH)(t.uR.SET_INFO_LND,(0,e.Ky)()),P=(0,e.PH)(t.uR.FETCH_PEERS_LND),o=(0,e.PH)(t.uR.SET_PEERS_LND,(0,e.Ky)()),O=(0,e.PH)(t.uR.SAVE_NEW_PEER_LND,(0,e.Ky)()),R=((0,e.PH)(t.uR.NEWLY_ADDED_PEER_LND,(0,e.Ky)()),(0,e.PH)(t.uR.DETACH_PEER_LND,(0,e.Ky)())),S=(0,e.PH)(t.uR.REMOVE_PEER_LND,(0,e.Ky)()),D=(0,e.PH)(t.uR.SAVE_NEW_INVOICE_LND,(0,e.Ky)()),U=((0,e.PH)(t.uR.NEWLY_SAVED_INVOICE_LND,(0,e.Ky)()),(0,e.PH)(t.uR.ADD_INVOICE_LND,(0,e.Ky)())),G=(0,e.PH)(t.uR.FETCH_FEES_LND),W=(0,e.PH)(t.uR.SET_FEES_LND,(0,e.Ky)()),ee=(0,e.PH)(t.uR.FETCH_BLOCKCHAIN_BALANCE_LND),ie=(0,e.PH)(t.uR.SET_BLOCKCHAIN_BALANCE_LND,(0,e.Ky)()),_e=(0,e.PH)(t.uR.FETCH_NETWORK_LND),fe=(0,e.PH)(t.uR.SET_NETWORK_LND,(0,e.Ky)()),de=(0,e.PH)(t.uR.FETCH_CHANNELS_LND),ne=(0,e.PH)(t.uR.SET_CHANNELS_LND,(0,e.Ky)()),se=(0,e.PH)(t.uR.FETCH_PENDING_CHANNELS_LND),oe=(0,e.PH)(t.uR.SET_PENDING_CHANNELS_LND,(0,e.Ky)()),y=(0,e.PH)(t.uR.FETCH_CLOSED_CHANNELS_LND),i=(0,e.PH)(t.uR.SET_CLOSED_CHANNELS_LND,(0,e.Ky)()),a=(0,e.PH)(t.uR.UPDATE_CHANNEL_LND,(0,e.Ky)()),p=(0,e.PH)(t.uR.SAVE_NEW_CHANNEL_LND,(0,e.Ky)()),u=(0,e.PH)(t.uR.CLOSE_CHANNEL_LND,(0,e.Ky)()),_=(0,e.PH)(t.uR.REMOVE_CHANNEL_LND,(0,e.Ky)()),L=(0,e.PH)(t.uR.BACKUP_CHANNELS_LND,(0,e.Ky)()),I=(0,e.PH)(t.uR.VERIFY_CHANNEL_LND,(0,e.Ky)()),b=((0,e.PH)(t.uR.BACKUP_CHANNELS_RES_LND,(0,e.Ky)()),(0,e.PH)(t.uR.VERIFY_CHANNEL_RES_LND,(0,e.Ky)()),(0,e.PH)(t.uR.RESTORE_CHANNELS_LIST_LND)),J=(0,e.PH)(t.uR.SET_RESTORE_CHANNELS_LIST_LND,(0,e.Ky)()),F=(0,e.PH)(t.uR.RESTORE_CHANNELS_LND,(0,e.Ky)()),te=((0,e.PH)(t.uR.RESTORE_CHANNELS_RES_LND,(0,e.Ky)()),(0,e.PH)(t.uR.FETCH_INVOICES_LND,(0,e.Ky)())),xe=(0,e.PH)(t.uR.SET_INVOICES_LND,(0,e.Ky)()),Re=(0,e.PH)(t.uR.UPDATE_INVOICE_LND,(0,e.Ky)()),Fe=(0,e.PH)(t.uR.FETCH_TRANSACTIONS_LND),q=(0,e.PH)(t.uR.SET_TRANSACTIONS_LND,(0,e.Ky)()),j=(0,e.PH)(t.uR.FETCH_UTXOS_LND),we=(0,e.PH)(t.uR.SET_UTXOS_LND,(0,e.Ky)()),Ae=(0,e.PH)(t.uR.FETCH_PAYMENTS_LND,(0,e.Ky)()),le=(0,e.PH)(t.uR.SET_PAYMENTS_LND,(0,e.Ky)()),We=(0,e.PH)(t.uR.SEND_PAYMENT_LND,(0,e.Ky)()),Ne=((0,e.PH)(t.uR.SEND_PAYMENT_STATUS_LND,(0,e.Ky)()),(0,e.PH)(t.uR.FETCH_GRAPH_NODE_LND,(0,e.Ky)())),ue=((0,e.PH)(t.uR.SET_GRAPH_NODE_LND,(0,e.Ky)()),(0,e.PH)(t.uR.GET_NEW_ADDRESS_LND,(0,e.Ky)())),ke=((0,e.PH)(t.uR.SET_NEW_ADDRESS_LND,(0,e.Ky)()),(0,e.PH)(t.uR.SET_CHANNEL_TRANSACTION_LND,(0,e.Ky)())),X=((0,e.PH)(t.uR.SET_CHANNEL_TRANSACTION_RES_LND,(0,e.Ky)()),(0,e.PH)(t.uR.GEN_SEED_LND,(0,e.Ky)())),Me=((0,e.PH)(t.uR.GEN_SEED_RESPONSE_LND,(0,e.Ky)()),(0,e.PH)(t.uR.INIT_WALLET_LND,(0,e.Ky)())),ht=((0,e.PH)(t.uR.INIT_WALLET_RESPONSE_LND,(0,e.Ky)()),(0,e.PH)(t.uR.UNLOCK_WALLET_LND,(0,e.Ky)())),it=(0,e.PH)(t.uR.PEER_LOOKUP_LND,(0,e.Ky)()),ft=(0,e.PH)(t.uR.CHANNEL_LOOKUP_LND,(0,e.Ky)()),nt=(0,e.PH)(t.uR.INVOICE_LOOKUP_LND,(0,e.Ky)()),st=(0,e.PH)(t.uR.SET_LOOKUP_LND,(0,e.Ky)()),wt=(0,e.PH)(t.uR.GET_FORWARDING_HISTORY_LND,(0,e.Ky)()),Bt=(0,e.PH)(t.uR.SET_FORWARDING_HISTORY_LND,(0,e.Ky)()),Nt=(0,e.PH)(t.uR.GET_QUERY_ROUTES_LND,(0,e.Ky)()),Vt=(0,e.PH)(t.uR.SET_QUERY_ROUTES_LND,(0,e.Ky)()),Oi=(0,e.PH)(t.uR.GET_ALL_LIGHTNING_TRANSATIONS_LND),jt=(0,e.PH)(t.uR.SET_ALL_LIGHTNING_TRANSATIONS_LND,(0,e.Ky)())},711:(Ue,K,m)=>{"use strict";m.d(K,{l:()=>oe});var e=m(6642),t=m(7579),v=m(9646),M=m(5577),s=m(2722),C=m(4004),c=m(262),P=m(1365),o=m(2340),O=m(8627),T=m(1786),R=m(7731),S=m(7861),D=m(6523),w=m(6529),U=m(5e3),G=m(8138),W=m(5620),ee=m(5043),ie=m(62),_e=m(5986),fe=m(8966),de=m(9291),ne=m(7998),se=m(9808);let oe=(()=>{class y{constructor(a,p,u,_,L,I,x,r,b,J){this.actions=a,this.httpClient=p,this.store=u,this.logger=_,this.commonService=L,this.sessionService=I,this.dialog=x,this.router=r,this.wsService=b,this.location=J,this.CHILD_API_URL=o.T5+"/lnd",this.flgInitialized=!1,this.unSubs=[new t.x,new t.x],this.infoFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_INFO_LND),(0,M.z)(F=>(this.flgInitialized=!1,this.store.dispatch((0,S.lC)({payload:this.CHILD_API_URL})),this.store.dispatch((0,S.ts)()),this.store.dispatch((0,S.ac)({payload:R.m6.GET_NODE_INFO})),this.store.dispatch((0,D.PC)({payload:{action:"FetchInfo",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.GETINFO_API).pipe((0,s.R)(this.actions.pipe((0,e.l4)(R.pg.SET_SELECTED_NODE))),(0,C.U)(B=>(this.logger.info(B),B.chains&&B.chains.length&&B.chains[0]&&("string"==typeof B.chains[0]&&B.chains[0].toLowerCase().indexOf("bitcoin")<0||"object"==typeof B.chains[0]&&B.chains[0].hasOwnProperty("chain")&&B.chains[0].chain.toLowerCase().indexOf("bitcoin")<0)?(this.store.dispatch((0,D.PC)({payload:{action:"FetchInfo",status:R.Bn.COMPLETED}})),this.store.dispatch((0,S.ts)()),this.store.dispatch((0,S.qR)({payload:{data:{type:R.n_.ERROR,alertTitle:"Shitcoin Found",titleMessage:"Sorry Not Sorry, RTL is Bitcoin Only!"}}})),{type:R.pg.LOGOUT}):B.identity_pubkey?(B.lnImplementation="LND",this.initializeRemainingData(B,F.payload.loadPage),this.store.dispatch((0,D.PC)({payload:{action:"FetchInfo",status:R.Bn.COMPLETED}})),this.store.dispatch((0,S.ts)()),{type:R.uR.SET_INFO_LND,payload:B||{}}):(this.store.dispatch((0,D.PC)({payload:{action:"FetchInfo",status:R.Bn.COMPLETED}})),this.store.dispatch((0,S.ts)()),this.sessionService.removeItem("lndUnlocked"),this.logger.info("Redirecting to Unlock"),this.router.navigate(["/lnd/wallet"]),{type:R.uR.SET_INFO_LND,payload:{}}))),(0,c.K)(B=>{if("string"==typeof B.error.error&&B.error.error.includes("Not Found")||"string"==typeof B.error.error&&B.error.error.includes("wallet locked")||502===B.status&&!B.error.message.includes("Bad or Missing Macaroon"))this.sessionService.removeItem("lndUnlocked"),this.logger.info("Redirecting to Unlock"),this.router.navigate(["/lnd/wallet"]),this.handleErrorWithoutAlert("FetchInfo",R.m6.GET_NODE_INFO,"Fetching Node Info Failed.",B);else if("string"==typeof B.error.error&&B.error.error.includes("starting up")&&500===B.status)setTimeout(()=>{this.store.dispatch((0,D.sQ)({payload:{loadPage:"HOME"}}))},2e3);else{const te=this.commonService.extractErrorCode(B),xe=503===te?"Unable to Connect to LND Server.":this.commonService.extractErrorMessage(B);this.router.navigate(["/error"],{state:{errorCode:te,errorMessage:xe}}),this.handleErrorWithoutAlert("FetchInfo",R.m6.GET_NODE_INFO,"Fetching Node Info Failed.",{status:te,error:xe})}return(0,v.of)({type:R.pg.VOID})})))))),this.peersFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_PEERS_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchPeers",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.PEERS_API).pipe((0,C.U)(F=>(this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"FetchPeers",status:R.Bn.COMPLETED}})),{type:R.uR.SET_PEERS_LND,payload:F||[]})),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchPeers",R.m6.NO_SPINNER,"Fetching Peers Failed.",F),(0,v.of)({type:R.pg.VOID})))))))),this.saveNewPeer=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SAVE_NEW_PEER_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.CONNECT_PEER})),this.store.dispatch((0,D.PC)({payload:{action:"SaveNewPeer",status:R.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+o.NZ.PEERS_API,{pubkey:F.payload.pubkey,host:F.payload.host,perm:F.payload.perm}).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,D.PC)({payload:{action:"SaveNewPeer",status:R.Bn.COMPLETED}})),this.store.dispatch((0,S.uO)({payload:R.m6.CONNECT_PEER})),this.store.dispatch((0,D.Z8)({payload:B||[]})),{type:R.uR.NEWLY_ADDED_PEER_LND,payload:{peer:B[0]}})),(0,c.K)(B=>(this.handleErrorWithoutAlert("SaveNewPeer",R.m6.CONNECT_PEER,"Peer Connection Failed.",B),(0,v.of)({type:R.pg.VOID})))))))),this.detachPeer=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.DETACH_PEER_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.DISCONNECT_PEER})),this.httpClient.delete(this.CHILD_API_URL+o.NZ.PEERS_API+"/"+F.payload.pubkey).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,S.uO)({payload:R.m6.DISCONNECT_PEER})),this.store.dispatch((0,S.jW)({payload:"Peer Disconnected Successfully."})),{type:R.uR.REMOVE_PEER_LND,payload:{pubkey:F.payload.pubkey}})),(0,c.K)(B=>(this.handleErrorWithAlert("DetachPeer",R.m6.DISCONNECT_PEER,"Unable to Detach Peer. Try again later.",this.CHILD_API_URL+o.NZ.PEERS_API+"/"+F.payload.pubkey,B),(0,v.of)({type:R.pg.VOID})))))))),this.saveNewInvoice=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SAVE_NEW_INVOICE_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:F.payload.uiMessage})),this.store.dispatch((0,D.PC)({payload:{action:"SaveNewInvoice",status:R.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+o.NZ.INVOICES_API,{memo:F.payload.memo,amount:F.payload.invoiceValue,private:F.payload.private,expiry:F.payload.expiry}).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,D.PC)({payload:{action:"SaveNewInvoice",status:R.Bn.COMPLETED}})),this.store.dispatch((0,D.WM)({payload:{num_max_invoices:F.payload.pageSize,reversed:!0}})),F.payload.openModal?(B.memo=F.payload.memo,B.value=F.payload.invoiceValue,B.expiry=F.payload.expiry,B.cltv_expiry="144",B.private=F.payload.private,B.creation_date=Math.round((new Date).getTime()/1e3).toString(),setTimeout(()=>{this.store.dispatch((0,S.qR)({payload:{data:{invoice:B,newlyAdded:!0,component:O.v}}}))},100),{type:R.pg.CLOSE_SPINNER,payload:F.payload.uiMessage}):{type:R.uR.NEWLY_SAVED_INVOICE_LND,payload:{paymentRequest:B.payment_request}})),(0,c.K)(B=>(this.handleErrorWithoutAlert("SaveNewInvoice",F.payload.uiMessage,"Add Invoice Failed.",B),(0,v.of)({type:R.pg.VOID})))))))),this.openNewChannel=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SAVE_NEW_CHANNEL_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.OPEN_CHANNEL})),this.store.dispatch((0,D.PC)({payload:{action:"SaveNewChannel",status:R.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+o.NZ.CHANNELS_API,{node_pubkey:F.payload.selectedPeerPubkey,local_funding_amount:F.payload.fundingAmount,private:F.payload.private,trans_type:F.payload.transType,trans_type_value:F.payload.transTypeValue,spend_unconfirmed:F.payload.spendUnconfirmed}).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,D.PC)({payload:{action:"SaveNewChannel",status:R.Bn.COMPLETED}})),this.store.dispatch((0,S.uO)({payload:R.m6.OPEN_CHANNEL})),this.store.dispatch((0,D.Bl)()),this.store.dispatch((0,D.UR)()),this.store.dispatch((0,D.Vv)({payload:{uiMessage:R.m6.NO_SPINNER,channelPoint:"ALL",showMessage:"Channel Added Successfully!"}})),{type:R.uR.FETCH_PENDING_CHANNELS_LND})),(0,c.K)(B=>(this.handleErrorWithoutAlert("SaveNewChannel",R.m6.OPEN_CHANNEL,"Opening Channel Failed.",B),(0,v.of)({type:R.pg.VOID})))))))),this.updateChannel=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.UPDATE_CHANNEL_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.UPDATE_CHAN_POLICY})),this.httpClient.post(this.CHILD_API_URL+o.NZ.CHANNELS_API+"/chanPolicy",{baseFeeMsat:F.payload.baseFeeMsat,feeRate:F.payload.feeRate,timeLockDelta:F.payload.timeLockDelta,chanPoint:F.payload.chanPoint}).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,S.uO)({payload:R.m6.UPDATE_CHAN_POLICY})),this.store.dispatch((0,S.jW)("all"===F.payload.chanPoint?{payload:"All Channels Updated Successfully."}:{payload:"Channel Updated Successfully!"})),{type:R.uR.FETCH_CHANNELS_LND})),(0,c.K)(B=>(this.handleErrorWithAlert("UpdateChannels",R.m6.UPDATE_CHAN_POLICY,"Update Channel Failed",this.CHILD_API_URL+o.NZ.CHANNELS_API+"/chanPolicy",B),(0,v.of)({type:R.pg.VOID})))))))),this.closeChannel=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.CLOSE_CHANNEL_LND),(0,M.z)(F=>{this.store.dispatch((0,S.ac)({payload:F.payload.forcibly?R.m6.FORCE_CLOSE_CHANNEL:R.m6.CLOSE_CHANNEL}));let B=this.CHILD_API_URL+o.NZ.CHANNELS_API+"/"+F.payload.channelPoint+"?force="+F.payload.forcibly;return F.payload.targetConf&&(B=B+"&target_conf="+F.payload.targetConf),F.payload.satPerByte&&(B=B+"&sat_per_byte="+F.payload.satPerByte),this.httpClient.delete(B).pipe((0,C.U)(te=>(this.logger.info(te),this.store.dispatch((0,S.uO)({payload:F.payload.forcibly?R.m6.FORCE_CLOSE_CHANNEL:R.m6.CLOSE_CHANNEL})),this.store.dispatch((0,D.UR)()),this.store.dispatch((0,D.Z7)()),this.store.dispatch((0,D.Vv)({payload:{uiMessage:R.m6.NO_SPINNER,channelPoint:"ALL",showMessage:te.message}})),{type:R.pg.VOID})),(0,c.K)(te=>(this.handleErrorWithAlert("CloseChannel",F.payload.forcibly?R.m6.FORCE_CLOSE_CHANNEL:R.m6.CLOSE_CHANNEL,"Unable to Close Channel. Try again later.",this.CHILD_API_URL+o.NZ.CHANNELS_API+"/"+F.payload.channelPoint+"?force="+F.payload.forcibly,te),(0,v.of)({type:R.pg.VOID}))))}))),this.backupChannels=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.BACKUP_CHANNELS_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:F.payload.uiMessage})),this.store.dispatch((0,D.PC)({payload:{action:"BackupChannels",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.CHANNELS_BACKUP_API+"/"+F.payload.channelPoint).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,D.PC)({payload:{action:"BackupChannels",status:R.Bn.COMPLETED}})),this.store.dispatch((0,S.uO)({payload:F.payload.uiMessage})),this.store.dispatch((0,S.jW)({payload:F.payload.showMessage+" "+B.message})),{type:R.uR.BACKUP_CHANNELS_RES_LND,payload:B.message})),(0,c.K)(B=>(this.handleErrorWithAlert("BackupChannels",F.payload.uiMessage,F.payload.showMessage+" Unable to Backup Channel. Try again later.",this.CHILD_API_URL+o.NZ.CHANNELS_BACKUP_API+"/"+F.payload.channelPoint,B),(0,v.of)({type:R.pg.VOID})))))))),this.verifyChannel=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.VERIFY_CHANNEL_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.VERIFY_CHANNEL})),this.store.dispatch((0,D.PC)({payload:{action:"VerifyChannel",status:R.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+o.NZ.CHANNELS_BACKUP_API+"/verify/"+F.payload.channelPoint,{}).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,D.PC)({payload:{action:"VerifyChannel",status:R.Bn.COMPLETED}})),this.store.dispatch((0,S.uO)({payload:R.m6.VERIFY_CHANNEL})),this.store.dispatch((0,S.jW)({payload:B.message})),{type:R.uR.VERIFY_CHANNEL_RES_LND,payload:B.message})),(0,c.K)(B=>(this.handleErrorWithAlert("VerifyChannel",R.m6.VERIFY_CHANNEL,"Unable to Verify Channel. Try again later.",this.CHILD_API_URL+o.NZ.CHANNELS_BACKUP_API+"/verify/"+F.payload.channelPoint,B),(0,v.of)({type:R.pg.VOID})))))))),this.restoreChannels=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.RESTORE_CHANNELS_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.RESTORE_CHANNEL})),this.store.dispatch((0,D.PC)({payload:{action:"RestoreChannels",status:R.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+o.NZ.CHANNELS_BACKUP_API+"/restore/"+F.payload.channelPoint,{}).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,D.PC)({payload:{action:"RestoreChannels",status:R.Bn.COMPLETED}})),this.store.dispatch((0,S.uO)({payload:R.m6.RESTORE_CHANNEL})),this.store.dispatch((0,S.jW)({payload:B.message})),this.store.dispatch((0,D.B_)({payload:B.list})),{type:R.uR.RESTORE_CHANNELS_RES_LND,payload:B.message})),(0,c.K)(B=>(this.handleErrorWithAlert("RestoreChannels",R.m6.RESTORE_CHANNEL,"Unable to Restore Channel. Try again later.",this.CHILD_API_URL+o.NZ.CHANNELS_BACKUP_API+"/restore/"+F.payload.channelPoint,B),(0,v.of)({type:R.pg.VOID})))))))),this.fetchFees=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_FEES_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchFees",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.FEES_API))),(0,C.U)(F=>(this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"FetchFees",status:R.Bn.COMPLETED}})),F.forwarding_events_history&&(this.store.dispatch((0,D.QJ)({payload:F.forwarding_events_history})),delete F.forwarding_events_history),{type:R.uR.SET_FEES_LND,payload:F||{}})),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchFees",R.m6.NO_SPINNER,"Fetching Fees Failed.",F),(0,v.of)({type:R.pg.VOID}))))),this.balanceBlockchainFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_BLOCKCHAIN_BALANCE_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchBalance",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.BALANCE_API))),(0,C.U)(F=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchBalance",status:R.Bn.COMPLETED}})),this.logger.info(F),{type:R.uR.SET_BLOCKCHAIN_BALANCE_LND,payload:F||{total_balance:""}})),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchBalance",R.m6.NO_SPINNER,"Fetching Blockchain Balance Failed.",F),(0,v.of)({type:R.pg.VOID}))))),this.networkInfoFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_NETWORK_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchNetwork",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.NETWORK_API+"/info"))),(0,C.U)(F=>(this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"FetchNetwork",status:R.Bn.COMPLETED}})),{type:R.uR.SET_NETWORK_LND,payload:F||{}})),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchNetwork",R.m6.NO_SPINNER,"Fetching Network Failed.",F),(0,v.of)({type:R.pg.VOID}))))),this.channelsFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_CHANNELS_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchChannels",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.CHANNELS_API).pipe((0,C.U)(F=>(this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"FetchChannels",status:R.Bn.COMPLETED}})),{type:R.uR.SET_CHANNELS_LND,payload:F.channels||[]})),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchChannels",R.m6.NO_SPINNER,"Fetching Channels Failed.",F),(0,v.of)({type:R.pg.VOID})))))))),this.channelsPendingFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_PENDING_CHANNELS_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchPendingChannels",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.CHANNELS_API+"/pending").pipe((0,C.U)(F=>{this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"FetchPendingChannels",status:R.Bn.COMPLETED}}));const B={open:{num_channels:0,limbo_balance:0},closing:{num_channels:0,limbo_balance:0},force_closing:{num_channels:0,limbo_balance:0},waiting_close:{num_channels:0,limbo_balance:0},total_channels:0,total_limbo_balance:0};return F&&(B.total_limbo_balance=F.total_limbo_balance,F.pending_closing_channels&&(B.closing.num_channels=F.pending_closing_channels.length,B.total_channels=B.total_channels+F.pending_closing_channels.length,F.pending_closing_channels.forEach(te=>{B.closing.limbo_balance=+B.closing.limbo_balance+(te.channel.local_balance?+te.channel.local_balance:0)})),F.pending_force_closing_channels&&(B.force_closing.num_channels=F.pending_force_closing_channels.length,B.total_channels=B.total_channels+F.pending_force_closing_channels.length,F.pending_force_closing_channels.forEach(te=>{B.force_closing.limbo_balance=+B.force_closing.limbo_balance+(te.channel.local_balance?+te.channel.local_balance:0)})),F.pending_open_channels&&(B.open.num_channels=F.pending_open_channels.length,B.total_channels=B.total_channels+F.pending_open_channels.length,F.pending_open_channels.forEach(te=>{B.open.limbo_balance=+B.open.limbo_balance+(te.channel.local_balance?+te.channel.local_balance:0)})),F.waiting_close_channels&&(B.waiting_close.num_channels=F.waiting_close_channels.length,B.total_channels=B.total_channels+F.waiting_close_channels.length,F.waiting_close_channels.forEach(te=>{B.waiting_close.limbo_balance=+B.waiting_close.limbo_balance+(te.channel.local_balance?+te.channel.local_balance:0)}))),{type:R.uR.SET_PENDING_CHANNELS_LND,payload:F?{pendingChannels:F,pendingChannelsSummary:B}:{pendingChannels:{},pendingChannelsSummary:B}}}),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchPendingChannels",R.m6.NO_SPINNER,"Fetching Pending Channels Failed.",F),(0,v.of)({type:R.pg.VOID})))))))),this.channelsClosedFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_CLOSED_CHANNELS_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchClosedChannels",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.CHANNELS_API+"/closed").pipe((0,C.U)(F=>(this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"FetchClosedChannels",status:R.Bn.COMPLETED}})),{type:R.uR.SET_CLOSED_CHANNELS_LND,payload:F.channels||[]})),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchClosedChannels",R.m6.NO_SPINNER,"Fetching Closed Channels Failed.",F),(0,v.of)({type:R.pg.VOID})))))))),this.invoicesFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_INVOICES_LND),(0,M.z)(F=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchInvoices",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.INVOICES_API+"?num_max_invoices="+(F.payload.num_max_invoices?F.payload.num_max_invoices:100)+"&index_offset="+(F.payload.index_offset?F.payload.index_offset:0)+"&reversed="+(!!F.payload.reversed&&F.payload.reversed)).pipe((0,C.U)(Re=>(this.logger.info(Re),this.store.dispatch((0,D.PC)({payload:{action:"FetchInvoices",status:R.Bn.COMPLETED}})),F.payload.reversed&&!F.payload.index_offset&&(Re.total_invoices=+Re.last_index_offset),{type:R.uR.SET_INVOICES_LND,payload:Re})),(0,c.K)(Re=>(this.handleErrorWithoutAlert("FetchInvoices",R.m6.NO_SPINNER,"Fetching Invoices Failed.",Re),(0,v.of)({type:R.pg.VOID})))))))),this.transactionsFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_TRANSACTIONS_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchTransactions",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.TRANSACTIONS_API))),(0,C.U)(F=>(this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"FetchTransactions",status:R.Bn.COMPLETED}})),{type:R.uR.SET_TRANSACTIONS_LND,payload:F||[]})),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchTransactions",R.m6.NO_SPINNER,"Fetching Transactions Failed.",F),(0,v.of)({type:R.pg.VOID}))))),this.utxosFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_UTXOS_LND),(0,P.M)(this.store.select(w.Q5)),(0,M.z)(([F,B])=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchUTXOs",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.WALLET_API+"/getUTXOs?max_confs="+(B&&B.block_height?B.block_height:1e9)))),(0,C.U)(F=>(this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"FetchUTXOs",status:R.Bn.COMPLETED}})),{type:R.uR.SET_UTXOS_LND,payload:F||[]})),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchUTXOs",R.m6.NO_SPINNER,"Fetching UTXOs Failed.",F),(0,v.of)({type:R.pg.VOID}))))),this.paymentsFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_PAYMENTS_LND),(0,M.z)(F=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchPayments",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.PAYMENTS_API+"?max_payments="+(F.payload.max_payments?F.payload.max_payments:100)+"&index_offset="+(F.payload.index_offset?F.payload.index_offset:0)+"&reversed="+(!!F.payload.reversed&&F.payload.reversed)).pipe((0,C.U)(Re=>(this.logger.info(Re),this.store.dispatch((0,D.PC)({payload:{action:"FetchPayments",status:R.Bn.COMPLETED}})),{type:R.uR.SET_PAYMENTS_LND,payload:Re})),(0,c.K)(Re=>(this.handleErrorWithoutAlert("FetchPayments",R.m6.NO_SPINNER,"Fetching Payments Failed.",Re),(0,v.of)({type:R.uR.SET_PAYMENTS_LND,payload:{payments:[]}})))))))),this.sendPayment=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SEND_PAYMENT_LND),(0,M.z)(F=>{this.store.dispatch((0,S.ac)({payload:F.payload.uiMessage})),this.store.dispatch((0,D.PC)({payload:{action:"SendPayment",status:R.Bn.INITIATED}}));const B={};return B.paymentReq=F.payload.paymentReq,F.payload.paymentAmount&&(B.paymentAmount=F.payload.paymentAmount),F.payload.outgoingChannel&&(B.outgoingChannel=F.payload.outgoingChannel.chan_id),F.payload.allowSelfPayment&&(B.allowSelfPayment=F.payload.allowSelfPayment),F.payload.lastHopPubkey&&(B.lastHopPubkey=F.payload.lastHopPubkey),F.payload.feeLimitType&&F.payload.feeLimitType!==R.Vc[0].id&&(B.feeLimit={},B.feeLimit[F.payload.feeLimitType]=F.payload.feeLimit),this.httpClient.post(this.CHILD_API_URL+o.NZ.CHANNELS_API+"/transactions",B).pipe((0,C.U)(te=>{if(this.logger.info(te),this.store.dispatch((0,S.uO)({payload:F.payload.uiMessage})),this.store.dispatch((0,D.PC)({payload:{action:"SendPayment",status:R.Bn.COMPLETED}})),te.payment_error)return F.payload.allowSelfPayment?(this.store.dispatch((0,D.WM)({payload:{num_max_invoices:R.IV,reversed:!0}})),{type:R.uR.SEND_PAYMENT_STATUS_LND,payload:te}):(F.payload.fromDialog?this.handleErrorWithoutAlert("SendPayment",F.payload.uiMessage,"Send Payment Failed.",te.payment_error):this.handleErrorWithAlert("SendPayment",F.payload.uiMessage,"Send Payment Failed",this.CHILD_API_URL+o.NZ.CHANNELS_API+"/transactions",te.payment_error),{type:R.pg.VOID});if(this.store.dispatch((0,S.uO)({payload:F.payload.uiMessage})),this.store.dispatch((0,D.PC)({payload:{action:"SendPayment",status:R.Bn.COMPLETED}})),this.store.dispatch((0,D.UR)()),this.store.dispatch((0,D.cQ)({payload:{max_payments:R.IV,reversed:!0}})),F.payload.allowSelfPayment)this.store.dispatch((0,D.WM)({payload:{num_max_invoices:R.IV,reversed:!0}}));else{let xe="Payment Sent Successfully.";te.payment_route&&te.payment_route.total_fees_msat&&(xe="Payment sent successfully with the total fee "+te.payment_route.total_fees_msat+" (mSats)."),this.store.dispatch((0,S.jW)({payload:xe}))}return{type:R.uR.SEND_PAYMENT_STATUS_LND,payload:te}}),(0,c.K)(te=>(this.logger.error("Error: "+JSON.stringify(te)),F.payload.allowSelfPayment?(this.handleErrorWithoutAlert("SendPayment",F.payload.uiMessage,"Send Payment Failed.",te),this.store.dispatch((0,D.WM)({payload:{num_max_invoices:R.IV,reversed:!0}})),(0,v.of)({type:R.uR.SEND_PAYMENT_STATUS_LND,payload:{error:this.commonService.extractErrorMessage(te)}})):(F.payload.fromDialog?this.handleErrorWithoutAlert("SendPayment",F.payload.uiMessage,"Send Payment Failed.",te):this.handleErrorWithAlert("SendPayment",F.payload.uiMessage,"Send Payment Failed",this.CHILD_API_URL+o.NZ.CHANNELS_API+"/transactions",te),(0,v.of)({type:R.pg.VOID})))))}))),this.graphNodeFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.FETCH_GRAPH_NODE_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.GET_NODE_ADDRESS})),this.store.dispatch((0,D.PC)({payload:{action:"FetchGraphNode",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.NETWORK_API+"/node/"+F.payload.pubkey).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,S.uO)({payload:R.m6.GET_NODE_ADDRESS})),this.store.dispatch((0,D.PC)({payload:{action:"FetchGraphNode",status:R.Bn.COMPLETED}})),{type:R.uR.SET_GRAPH_NODE_LND,payload:B&&B.node?{node:B.node}:{node:null}})),(0,c.K)(B=>(this.handleErrorWithoutAlert("FetchGraphNode",R.m6.GET_NODE_ADDRESS,"Fetching Graph Node Failed.",B),(0,v.of)({type:R.pg.VOID})))))))),this.setGraphNode=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SET_GRAPH_NODE_LND),(0,C.U)(F=>(this.logger.info(F.payload),F.payload))),{dispatch:!1}),this.getNewAddress=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.GET_NEW_ADDRESS_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.GENERATE_NEW_ADDRESS})),this.httpClient.get(this.CHILD_API_URL+o.NZ.NEW_ADDRESS_API+"?type="+F.payload.addressId).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,S.uO)({payload:R.m6.GENERATE_NEW_ADDRESS})),{type:R.uR.SET_NEW_ADDRESS_LND,payload:B&&B.address?B.address:{}})),(0,c.K)(B=>(this.handleErrorWithAlert("GetNewAddress",R.m6.GENERATE_NEW_ADDRESS,"Generate New Address Failed",this.CHILD_API_URL+o.NZ.NEW_ADDRESS_API+"?type="+F.payload.addressId,B),(0,v.of)({type:R.pg.VOID})))))))),this.setNewAddress=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SET_NEW_ADDRESS_LND),(0,C.U)(F=>(this.logger.info(F.payload),F.payload))),{dispatch:!1}),this.SetChannelTransaction=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SET_CHANNEL_TRANSACTION_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.SEND_FUNDS})),this.store.dispatch((0,D.PC)({payload:{action:"SetChannelTransaction",status:R.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+o.NZ.TRANSACTIONS_API,{amount:F.payload.amount,address:F.payload.address,sendAll:F.payload.sendAll,fees:F.payload.fees,blocks:F.payload.blocks}).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,D.PC)({payload:{action:"SetChannelTransaction",status:R.Bn.COMPLETED}})),this.store.dispatch((0,S.uO)({payload:R.m6.SEND_FUNDS})),this.store.dispatch((0,D.mC)()),this.store.dispatch((0,D.Bl)()),this.store.dispatch((0,D.UR)()),{type:R.uR.SET_CHANNEL_TRANSACTION_RES_LND,payload:B})),(0,c.K)(B=>(this.handleErrorWithoutAlert("SetChannelTransaction",R.m6.SEND_FUNDS,"Sending Fund Failed.",B),(0,v.of)({type:R.pg.VOID})))))))),this.fetchForwardingHistory=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.GET_FORWARDING_HISTORY_LND),(0,M.z)(F=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchForwardingHistory",status:R.Bn.INITIATED}})),this.httpClient.post(this.CHILD_API_URL+o.NZ.SWITCH_API,{num_max_events:F.payload.num_max_events,index_offset:F.payload.index_offset,end_time:F.payload.end_time,start_time:F.payload.start_time}).pipe((0,C.U)(te=>(this.logger.info(te),this.store.dispatch((0,D.PC)({payload:{action:"FetchForwardingHistory",status:R.Bn.COMPLETED}})),{type:R.uR.SET_FORWARDING_HISTORY_LND,payload:te})),(0,c.K)(te=>(this.handleErrorWithAlert("FetchForwardingHistory",R.m6.NO_SPINNER,"Get Forwarding History Failed",this.CHILD_API_URL+o.NZ.SWITCH_API,te),(0,v.of)({type:R.pg.VOID})))))))),this.queryRoutesFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.GET_QUERY_ROUTES_LND),(0,M.z)(F=>{let B=this.CHILD_API_URL+o.NZ.NETWORK_API+"/routes/"+F.payload.destPubkey+"/"+F.payload.amount;return F.payload.outgoingChanId&&(B=B+"?outgoing_chan_id="+F.payload.outgoingChanId),this.httpClient.get(B).pipe((0,C.U)(te=>(this.logger.info(te),{type:R.uR.SET_QUERY_ROUTES_LND,payload:te})),(0,c.K)(te=>(this.store.dispatch((0,D.kL)({payload:{routes:[]}})),this.handleErrorWithAlert("GetQueryRoutes",R.m6.NO_SPINNER,"Get Query Routes Failed",this.CHILD_API_URL+o.NZ.NETWORK_API,te),(0,v.of)({type:R.pg.VOID}))))}))),this.setQueryRoutes=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SET_QUERY_ROUTES_LND),(0,C.U)(F=>F.payload)),{dispatch:!1}),this.genSeed=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.GEN_SEED_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.GEN_SEED})),this.httpClient.get(this.CHILD_API_URL+o.NZ.WALLET_API+"/genseed/"+F.payload).pipe((0,C.U)(B=>(this.logger.info("Generated GenSeed!"),this.logger.info(B),this.store.dispatch((0,S.uO)({payload:R.m6.GEN_SEED})),{type:R.uR.GEN_SEED_RESPONSE_LND,payload:B.cipher_seed_mnemonic})),(0,c.K)(B=>(this.handleErrorWithAlert("GenSeed",R.m6.GEN_SEED,"Genseed Generation Failed",this.CHILD_API_URL+o.NZ.WALLET_API+"/genseed/"+F.payload,B),(0,v.of)({type:R.pg.VOID})))))))),this.updateSelNodeOptions=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.pg.UPDATE_SELECTED_NODE_OPTIONS),(0,M.z)(()=>this.httpClient.get(this.CHILD_API_URL+o.NZ.WALLET_API+"/updateSelNodeOptions").pipe((0,C.U)(F=>(this.logger.info("Update Sel Node Successfull"),this.logger.info(F),{type:R.pg.VOID})),(0,c.K)(F=>(this.handleErrorWithAlert("UpdateSelectedNodeOptions",R.m6.NO_SPINNER,"Update macaroon for newly initialized node failed! Please check the macaroon path and restart the server!","Update Macaroon",F),(0,v.of)({type:R.pg.VOID}))))))),this.genSeedResponse=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.GEN_SEED_RESPONSE_LND),(0,C.U)(F=>F.payload)),{dispatch:!1}),this.initWalletRes=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.INIT_WALLET_RESPONSE_LND),(0,C.U)(F=>F.payload)),{dispatch:!1}),this.initWallet=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.INIT_WALLET_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.INITIALIZE_WALLET})),this.httpClient.post(this.CHILD_API_URL+o.NZ.WALLET_API+"/wallet/initwallet",{wallet_password:F.payload.pwd,cipher_seed_mnemonic:F.payload.cipher?F.payload.cipher:"",aezeed_passphrase:F.payload.passphrase?F.payload.passphrase:""}).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,S.uO)({payload:R.m6.INITIALIZE_WALLET})),{type:R.uR.INIT_WALLET_RESPONSE_LND,payload:B})),(0,c.K)(B=>(this.handleErrorWithAlert("InitWallet",R.m6.INITIALIZE_WALLET,"Wallet Initialization Failed",this.CHILD_API_URL+o.NZ.WALLET_API+"/initwallet",B),(0,v.of)({type:R.pg.VOID})))))))),this.unlockWallet=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.UNLOCK_WALLET_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.UNLOCK_WALLET})),this.httpClient.post(this.CHILD_API_URL+o.NZ.WALLET_API+"/wallet/unlockwallet",{wallet_password:F.payload.pwd}).pipe((0,C.U)(B=>(this.logger.info(B),this.logger.info("Successfully Unlocked!"),this.sessionService.setItem("lndUnlocked","true"),this.store.dispatch((0,S.uO)({payload:R.m6.UNLOCK_WALLET})),this.store.dispatch((0,S.ac)({payload:R.m6.WAIT_SYNC_NODE})),setTimeout(()=>{this.store.dispatch((0,S.uO)({payload:R.m6.WAIT_SYNC_NODE})),this.store.dispatch((0,D.sQ)({payload:{loadPage:"HOME"}}))},5e3),{type:R.pg.VOID})),(0,c.K)(B=>(this.handleErrorWithAlert("UnlockWallet",R.m6.UNLOCK_WALLET,"Unlock Wallet Failed",this.CHILD_API_URL+o.NZ.WALLET_API+"/unlockwallet",B),(0,v.of)({type:R.pg.VOID}))))))),{dispatch:!1}),this.peerLookup=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.PEER_LOOKUP_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.SEARCHING_NODE})),this.store.dispatch((0,D.PC)({payload:{action:"Lookup",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.NETWORK_API+"/node/"+F.payload).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,S.uO)({payload:R.m6.SEARCHING_NODE})),this.store.dispatch((0,D.PC)({payload:{action:"Lookup",status:R.Bn.COMPLETED}})),{type:R.uR.SET_LOOKUP_LND,payload:B})),(0,c.K)(B=>(this.handleErrorWithAlert("Lookup",R.m6.SEARCHING_NODE,"Peer Lookup Failed",this.CHILD_API_URL+o.NZ.NETWORK_API+"/node/"+F.payload,B),(0,v.of)({type:R.pg.VOID})))))))),this.channelLookup=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.CHANNEL_LOOKUP_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:F.payload.uiMessage})),this.store.dispatch((0,D.PC)({payload:{action:"Lookup",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.NETWORK_API+"/edge/"+F.payload.channelID).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,S.uO)({payload:F.payload.uiMessage})),this.store.dispatch((0,D.PC)({payload:{action:"Lookup",status:R.Bn.COMPLETED}})),{type:R.uR.SET_LOOKUP_LND,payload:B})),(0,c.K)(B=>(this.handleErrorWithAlert("Lookup",F.payload.uiMessage,"Channel Lookup Failed",this.CHILD_API_URL+o.NZ.NETWORK_API+"/edge/"+F.payload.channelID,B),this.store.dispatch((0,D.v_)({payload:{}})),(0,v.of)({type:R.pg.VOID})))))))),this.invoiceLookup=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.INVOICE_LOOKUP_LND),(0,M.z)(F=>(this.store.dispatch((0,S.ac)({payload:R.m6.SEARCHING_INVOICE})),this.store.dispatch((0,D.PC)({payload:{action:"Lookup",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.INVOICES_API+"/"+F.payload).pipe((0,C.U)(B=>(this.logger.info(B),this.store.dispatch((0,S.uO)({payload:R.m6.SEARCHING_INVOICE})),this.store.dispatch((0,D.PC)({payload:{action:"Lookup",status:R.Bn.COMPLETED}})),this.store.dispatch((0,D.aL)({payload:B})),{type:R.uR.SET_LOOKUP_LND,payload:B})),(0,c.K)(B=>(this.handleErrorWithoutAlert("Lookup",R.m6.SEARCHING_INVOICE,"Invoice Lookup Failed",B),this.store.dispatch((0,S.jW)({payload:{message:"Invoice Refresh Failed.",type:"ERROR"}})),(0,v.of)({type:R.pg.VOID})))))))),this.setLookup=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SET_LOOKUP_LND),(0,C.U)(F=>(this.logger.info(F.payload),F.payload))),{dispatch:!1}),this.getRestoreChannelList=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.RESTORE_CHANNELS_LIST_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"RestoreChannelsList",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.CHANNELS_BACKUP_API+"/restore/list").pipe((0,C.U)(F=>(this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"RestoreChannelsList",status:R.Bn.COMPLETED}})),{type:R.uR.SET_RESTORE_CHANNELS_LIST_LND,payload:F||{all_restore_exists:!1,files:[]}})),(0,c.K)(F=>(this.handleErrorWithAlert("RestoreChannelsList",R.m6.NO_SPINNER,"Restore Channels List Failed",this.CHILD_API_URL+o.NZ.CHANNELS_BACKUP_API,F),(0,v.of)({type:R.pg.VOID})))))))),this.setRestoreChannelList=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.SET_RESTORE_CHANNELS_LIST_LND),(0,C.U)(F=>(this.logger.info(F.payload),F.payload))),{dispatch:!1}),this.allLightningTransactionsFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(R.uR.GET_ALL_LIGHTNING_TRANSATIONS_LND),(0,M.z)(()=>(this.store.dispatch((0,D.PC)({payload:{action:"FetchLightningTransactions",status:R.Bn.INITIATED}})),this.httpClient.get(this.CHILD_API_URL+o.NZ.PAYMENTS_API+"/alltransactions").pipe((0,C.U)(F=>(this.logger.info(F),this.store.dispatch((0,D.PC)({payload:{action:"FetchLightningTransactions",status:R.Bn.COMPLETED}})),{type:R.uR.SET_ALL_LIGHTNING_TRANSATIONS_LND,payload:F})),(0,c.K)(F=>(this.handleErrorWithoutAlert("FetchLightningTransactions",R.m6.NO_SPINNER,"Fetching All Lightning Transaction Failed.",F),(0,v.of)({type:R.pg.VOID})))))))),this.store.select(w.yA).pipe((0,s.R)(this.unSubs[0])).subscribe(F=>{F.FetchInfo.status!==R.Bn.COMPLETED&&F.FetchInfo.status!==R.Bn.ERROR||F.FetchFees.status!==R.Bn.COMPLETED&&F.FetchFees.status!==R.Bn.ERROR||F.FetchBalanceBlockchain.status!==R.Bn.COMPLETED&&F.FetchBalanceBlockchain.status!==R.Bn.ERROR||F.FetchAllChannels.status!==R.Bn.COMPLETED&&F.FetchAllChannels.status!==R.Bn.ERROR||F.FetchPendingChannels.status!==R.Bn.COMPLETED&&F.FetchPendingChannels.status!==R.Bn.ERROR||this.flgInitialized||(this.store.dispatch((0,S.uO)({payload:R.m6.INITALIZE_NODE_DATA})),this.flgInitialized=!0)}),this.wsService.lndWSMessages.pipe((0,s.R)(this.unSubs[1])).subscribe(F=>{this.logger.info("Received new message from the service: "+JSON.stringify(F)),F&&(F.type===R.g8.INVOICE?(this.logger.info(F),F&&F.result&&F.result.payment_request&&this.store.dispatch((0,D.aL)({payload:F.result}))):this.logger.info("Received Event from WS: "+JSON.stringify(F)))})}initializeRemainingData(a,p){this.sessionService.setItem("lndUnlocked","true");const u={identity_pubkey:a.identity_pubkey,alias:a.alias,testnet:a.testnet,chains:a.chains,uris:a.uris,version:a.version?a.version.split(" ")[0]:""};this.store.dispatch((0,S.ac)({payload:R.m6.INITALIZE_NODE_DATA})),this.store.dispatch((0,S._V)({payload:u}));let _=this.location.path();_.includes("/cl/")?_=_.replace("/cl/","/lnd/"):_.includes("/ecl/")&&(_=_.replace("/ecl/","/lnd/")),(_.includes("/unlock")||_.includes("/login")||_.includes("/error")||""===_||"HOME"===p||_.includes("?access-key="))&&(_="/lnd/home"),this.router.navigate([_]),this.store.dispatch((0,D.SN)()),this.store.dispatch((0,D.Bl)()),this.store.dispatch((0,D.UR)()),this.store.dispatch((0,D.Z7)()),this.store.dispatch((0,D.Zh)()),this.store.dispatch((0,D.$W)()),this.store.dispatch((0,D.Rv)()),this.store.dispatch((0,D.Jo)()),this.store.dispatch((0,D.WM)({payload:{num_max_invoices:10,reversed:!0}})),this.store.dispatch((0,D.cQ)({payload:{max_payments:10,reversed:!0}}))}handleErrorWithoutAlert(a,p,u,_){this.logger.error("ERROR IN: "+a+"\n"+JSON.stringify(_)),401===_.status?(this.logger.info("Redirecting to Login"),this.store.dispatch((0,S.ts)()),this.store.dispatch((0,S.kS)()),this.store.dispatch((0,S.jW)({payload:"Authentication Failed. Redirecting to Login."}))):(this.store.dispatch((0,S.uO)({payload:p})),this.store.dispatch((0,D.PC)({payload:{action:a,status:R.Bn.ERROR,statusCode:_.status.toString(),message:this.commonService.extractErrorMessage(_,u)}})))}handleErrorWithAlert(a,p,u,_,L){if(this.logger.error(L),401===L.status)this.logger.info("Redirecting to Login"),this.store.dispatch((0,S.ts)()),this.store.dispatch((0,S.kS)()),this.store.dispatch((0,S.jW)({payload:"Authentication Failed. Redirecting to Login."}));else{this.store.dispatch((0,S.uO)({payload:p}));const I=this.commonService.extractErrorMessage(L);this.store.dispatch((0,S.qR)({payload:{data:{type:"ERROR",alertTitle:u,message:{code:L.status,message:I,URL:_},component:T.H}}})),this.store.dispatch((0,D.PC)({payload:{action:a,status:R.Bn.ERROR,statusCode:L.status.toString(),message:I,URL:_}}))}}ngOnDestroy(){this.unSubs.forEach(a=>{a.next(null),a.complete()})}}return y.\u0275fac=function(a){return new(a||y)(U.LFG(e.eX),U.LFG(G.eN),U.LFG(W.yh),U.LFG(ee.mQ),U.LFG(ie.v),U.LFG(_e.m),U.LFG(fe.uw),U.LFG(de.F0),U.LFG(ne.d),U.LFG(se.Ye))},y.\u0275prov=U.Yz7({token:y,factory:y.\u0275fac}),y})()},6529:(Ue,K,m)=>{"use strict";m.d(K,{$k:()=>v,Q5:()=>M,yA:()=>C,Bo:()=>c,PP:()=>P,JG:()=>o,Wi:()=>O,dx:()=>T,Ef:()=>R,ZW:()=>S,ni:()=>w,P2:()=>U,qU:()=>G,T4:()=>ee,N7:()=>ie,l5:()=>_e,_f:()=>fe,bx:()=>de});var e=m(5620);const t=(0,e.ZF)("lnd"),v=(0,e.P1)(t,ne=>ne.nodeSettings),M=(0,e.P1)(t,ne=>ne.information),C=((0,e.P1)(t,ne=>({information:ne.information,apiCallStatus:ne.apisCallStatus.FetchInfo})),(0,e.P1)(t,ne=>ne.apisCallStatus)),c=(0,e.P1)(t,ne=>({forwardingHistory:ne.forwardingHistory,apiCallStatus:ne.apisCallStatus.FetchForwardingHistory})),P=(0,e.P1)(t,ne=>({listPayments:ne.listPayments,apiCallStatus:ne.apisCallStatus.FetchPayments})),o=(0,e.P1)(t,ne=>({fees:ne.fees,apiCallStatus:ne.apisCallStatus.FetchFees})),O=(0,e.P1)(t,ne=>({peers:ne.peers,apiCallStatus:ne.apisCallStatus.FetchPeers})),T=(0,e.P1)(t,ne=>({transactions:ne.transactions,apiCallStatus:ne.apisCallStatus.FetchTransactions})),R=(0,e.P1)(t,ne=>({listInvoices:ne.listInvoices,apiCallStatus:ne.apisCallStatus.FetchInvoices})),S=(0,e.P1)(t,ne=>({channels:ne.channels,channelsSummary:ne.channelsSummary,lightningBalance:ne.lightningBalance,apiCallStatus:ne.apisCallStatus.FetchAllChannels})),w=((0,e.P1)(t,ne=>({channelsSummary:ne.channelsSummary,pendingChannels:ne.pendingChannels,closedChannels:ne.closedChannels,apiCallStatus:ne.apisCallStatus.FetchAllChannels})),(0,e.P1)(t,ne=>({pendingChannels:ne.pendingChannels,pendingChannelsSummary:ne.pendingChannelsSummary,apiCallStatus:ne.apisCallStatus.FetchPendingChannels}))),U=(0,e.P1)(t,ne=>({closedChannels:ne.closedChannels,apiCallStatus:ne.apisCallStatus.FetchClosedChannels})),G=(0,e.P1)(t,ne=>({blockchainBalance:ne.blockchainBalance,apiCallStatus:ne.apisCallStatus.FetchBalanceBlockchain})),ee=((0,e.P1)(t,ne=>({lightningBalance:ne.lightningBalance,apiCallStatus:ne.apisCallStatus.FetchAllChannels})),(0,e.P1)(t,ne=>({utxos:ne.utxos,apiCallStatus:ne.apisCallStatus.FetchUTXOs}))),ie=(0,e.P1)(t,ne=>({networkInfo:ne.networkInfo,apiCallStatus:ne.apisCallStatus.FetchNetwork})),_e=(0,e.P1)(t,ne=>({allLightningTransactions:ne.allLightningTransactions,apiCallStatus:ne.apisCallStatus.FetchLightningTransactions})),fe=(0,e.P1)(t,ne=>({channels:ne.channels,pendingChannels:ne.pendingChannels,closedChannels:ne.closedChannels})),de=(0,e.P1)(t,ne=>({information:ne.information,nodeSettings:ne.nodeSettings,apiCallStatus:ne.apisCallStatus.FetchInfo}))},8627:(Ue,K,m)=>{"use strict";m.d(K,{v:()=>X});var e=m(8966),t=m(801),v=m(7579),M=m(2722),s=m(7731),C=m(6529),c=m(5e3),P=m(5043),o=m(62),O=m(7261),T=m(5620),R=m(7093),S=m(9808),D=m(3322),w=m(9224),U=m(9444),G=m(7423),W=m(644),ee=m(4834),ie=m(159),_e=m(773),fe=m(1125),de=m(7238),ne=m(5245),se=m(3390),oe=m(6895);const y=["scrollContainer"];function i(he,Me){if(1&he&&c._UZ(0,"qr-code",32),2&he){const ze=c.oxw();c.Q6J("value",null==ze.invoice?null:ze.invoice.payment_request)("size",ze.qrWidth)("errorCorrectionLevel","L")}}function a(he,Me){1&he&&(c.TgZ(0,"span",33),c._uU(1,"N/A"),c.qZA())}function p(he,Me){if(1&he&&c._UZ(0,"qr-code",32),2&he){const ze=c.oxw();c.Q6J("value",null==ze.invoice?null:ze.invoice.payment_request)("size",ze.qrWidth)("errorCorrectionLevel","L")}}function u(he,Me){1&he&&(c.TgZ(0,"span",34),c._uU(1,"QR Code Not Applicable"),c.qZA())}function _(he,Me){1&he&&c._UZ(0,"mat-divider",22),2&he&&c.Q6J("inset",!0)}function L(he,Me){1&he&&(c.ynx(0),c._uU(1," (zero amount) "),c.BQk())}function I(he,Me){1&he&&c._UZ(0,"span",40)}const x=function(){return[]};function r(he,Me){if(1&he&&(c.TgZ(0,"div",36),c.TgZ(1,"div",37),c.TgZ(2,"span",38),c._uU(3),c.ALo(4,"number"),c.qZA(),c.YNc(5,I,1,0,"span",39),c.qZA(),c.qZA()),2&he){const ze=c.oxw(2);c.xp6(3),c.hij("",c.lcZ(4,2,null==ze.invoice?null:ze.invoice.amt_paid_sat)," Sats"),c.xp6(2),c.Q6J("ngForOf",c.DdM(4,x).constructor(35))}}function b(he,Me){if(1&he&&(c.TgZ(0,"div"),c._uU(1),c.ALo(2,"number"),c.qZA()),2&he){const ze=c.oxw(2);c.xp6(1),c.hij("",c.lcZ(2,1,null==ze.invoice?null:ze.invoice.amt_paid_sat)," Sats")}}function J(he,Me){if(1&he&&(c.ynx(0),c.YNc(1,r,6,5,"div",35),c.YNc(2,b,3,3,"div",21),c.BQk()),2&he){const ze=c.oxw();c.xp6(1),c.Q6J("ngIf",ze.flgInvoicePaid),c.xp6(1),c.Q6J("ngIf",!ze.flgInvoicePaid)}}function F(he,Me){1&he&&(c.TgZ(0,"span"),c._uU(1,"-"),c.qZA())}function B(he,Me){1&he&&c._UZ(0,"mat-spinner",42),2&he&&c.Q6J("diameter",20)}function te(he,Me){if(1&he&&(c.ynx(0),c.YNc(1,F,2,0,"span",21),c.YNc(2,B,1,1,"mat-spinner",41),c.BQk()),2&he){const ze=c.oxw();c.xp6(1),c.Q6J("ngIf","OPEN"!==(null==ze.invoice?null:ze.invoice.state)||!ze.flgVersionCompatible),c.xp6(1),c.Q6J("ngIf","OPEN"===(null==ze.invoice?null:ze.invoice.state)&&ze.flgVersionCompatible)}}const xe=function(he){return{"mr-0":he}};function Re(he,Me){if(1&he&&c._UZ(0,"span",59),2&he){const ze=c.oxw(4);c.Q6J("ngClass",c.VKq(1,xe,ze.screenSize===ze.screenSizeEnum.XS))}}function Fe(he,Me){if(1&he&&c._UZ(0,"span",60),2&he){const ze=c.oxw(4);c.Q6J("ngClass",c.VKq(1,xe,ze.screenSize===ze.screenSizeEnum.XS))}}function q(he,Me){if(1&he&&c._UZ(0,"span",61),2&he){const ze=c.oxw(4);c.Q6J("ngClass",c.VKq(1,xe,ze.screenSize===ze.screenSizeEnum.XS))}}function j(he,Me){if(1&he&&(c.TgZ(0,"div",48),c.TgZ(1,"div",53),c.TgZ(2,"span",54),c.YNc(3,Re,1,3,"span",55),c.YNc(4,Fe,1,3,"span",56),c.YNc(5,q,1,3,"span",57),c._uU(6),c.qZA(),c.TgZ(7,"span",58),c._uU(8),c.ALo(9,"number"),c.qZA(),c.qZA(),c._UZ(10,"mat-divider",22),c.qZA()),2&he){const ze=Me.$implicit,ht=c.oxw(3);c.xp6(3),c.Q6J("ngIf","SETTLED"===ze.state),c.xp6(1),c.Q6J("ngIf","ACCEPTED"===ze.state),c.xp6(1),c.Q6J("ngIf","CANCELED"===ze.state),c.xp6(1),c.hij(" ",ze.chan_id," "),c.xp6(2),c.Oqu(c.xi3(9,6,+ze.amt_msat/1e3||0,ht.getDecimalFormat(ze))),c.xp6(2),c.Q6J("inset",!0)}}function we(he,Me){if(1&he){const ze=c.EpF();c.TgZ(0,"div",17),c.TgZ(1,"mat-expansion-panel",46),c.NdJ("opened",function(){return c.CHM(ze),c.oxw(2).flgOpened=!0})("closed",function(){return c.CHM(ze),c.oxw(2).onExpansionClosed()}),c.TgZ(2,"mat-expansion-panel-header"),c.TgZ(3,"mat-panel-title"),c.TgZ(4,"h4",47),c._uU(5,"HTLCs"),c.qZA(),c.qZA(),c.qZA(),c.TgZ(6,"div",48),c.TgZ(7,"div",49),c.TgZ(8,"span",50),c._uU(9,"Channel ID"),c.qZA(),c.TgZ(10,"span",51),c._uU(11,"Amount (Sats)"),c.qZA(),c.qZA(),c._UZ(12,"mat-divider",22),c.YNc(13,j,11,9,"div",52),c.qZA(),c.qZA(),c.qZA()}if(2&he){const ze=c.oxw(2);c.xp6(12),c.Q6J("inset",!0),c.xp6(1),c.Q6J("ngForOf",null==ze.invoice?null:ze.invoice.htlcs)}}function Ae(he,Me){1&he&&c._UZ(0,"mat-divider",22),2&he&&c.Q6J("inset",!0)}function le(he,Me){if(1&he&&(c.TgZ(0,"div"),c._UZ(1,"mat-divider",22),c.TgZ(2,"div",17),c.TgZ(3,"div",23),c.TgZ(4,"h4",19),c._uU(5,"R Preimage"),c.qZA(),c.TgZ(6,"span",24),c._uU(7),c.qZA(),c.qZA(),c.qZA(),c._UZ(8,"mat-divider",22),c.TgZ(9,"div",17),c.TgZ(10,"div",43),c.TgZ(11,"h4",19),c._uU(12,"State"),c.qZA(),c.TgZ(13,"span",24),c._uU(14),c.qZA(),c.qZA(),c.TgZ(15,"div",44),c.TgZ(16,"h4",19),c._uU(17,"Expiry"),c.qZA(),c.TgZ(18,"span",24),c._uU(19),c.qZA(),c.qZA(),c.TgZ(20,"div",44),c.TgZ(21,"h4",19),c._uU(22,"Private Routing Hints"),c.qZA(),c.TgZ(23,"span",24),c._uU(24),c.qZA(),c.qZA(),c.qZA(),c._UZ(25,"mat-divider",22),c.YNc(26,we,14,2,"div",45),c.YNc(27,Ae,1,1,"mat-divider",14),c.qZA()),2&he){const ze=c.oxw();c.xp6(1),c.Q6J("inset",!0),c.xp6(6),c.Oqu((null==ze.invoice?null:ze.invoice.r_preimage)||"-"),c.xp6(1),c.Q6J("inset",!0),c.xp6(6),c.Oqu(null==ze.invoice?null:ze.invoice.state),c.xp6(5),c.Oqu(null==ze.invoice?null:ze.invoice.expiry),c.xp6(5),c.Oqu(null!=ze.invoice&&ze.invoice.private?"Yes":"No"),c.xp6(1),c.Q6J("inset",!0),c.xp6(1),c.Q6J("ngIf",(null==ze.invoice?null:ze.invoice.htlcs)&&(null==ze.invoice?null:ze.invoice.htlcs.length)>0),c.xp6(1),c.Q6J("ngIf",(null==ze.invoice?null:ze.invoice.htlcs)&&(null==ze.invoice?null:ze.invoice.htlcs.length)>0)}}function We(he,Me){if(1&he){const ze=c.EpF();c.TgZ(0,"div",62),c.TgZ(1,"button",63),c.NdJ("click",function(){return c.CHM(ze),c.oxw().onScrollDown()}),c.TgZ(2,"mat-icon",64),c._uU(3,"arrow_downward"),c.qZA(),c.qZA(),c.qZA()}}function yt(he,Me){1&he&&(c.TgZ(0,"p"),c._uU(1,"Show Advanced"),c.qZA())}function Ne(he,Me){1&he&&(c.TgZ(0,"p"),c._uU(1,"Hide Advanced"),c.qZA())}function Ve(he,Me){if(1&he){const ze=c.EpF();c.TgZ(0,"button",65),c.NdJ("copied",function(it){return c.CHM(ze),c.oxw().onCopyPayment(it)}),c._uU(1),c.qZA()}if(2&he){const ze=c.oxw();c.Q6J("payload",null==ze.invoice?null:ze.invoice.payment_request),c.xp6(1),c.Oqu(ze.screenSize===ze.screenSizeEnum.XS?"Copy Payment":"Copy Payment Request")}}function ue(he,Me){if(1&he){const ze=c.EpF();c.TgZ(0,"button",66),c.NdJ("click",function(){return c.CHM(ze),c.oxw().onClose()}),c._uU(1,"OK"),c.qZA()}}const Te=function(he){return{"display-none":he}},ke=function(he){return{"xs-scroll-y":he}},Y=function(he){return{"h-46":he}};let X=(()=>{class he{constructor(ze,ht,it,ft,nt,st){this.dialogRef=ze,this.data=ht,this.logger=it,this.commonService=ft,this.snackBar=nt,this.store=st,this.faReceipt=t.dLy,this.showAdvanced=!1,this.newlyAdded=!1,this.qrWidth=240,this.screenSize="",this.screenSizeEnum=s.cu,this.flgOpened=!1,this.flgInvoicePaid=!1,this.flgVersionCompatible=!0,this.unSubs=[new v.x,new v.x,new v.x,new v.x,new v.x]}set container(ze){ze&&(this.scrollContainer=ze)}ngOnInit(){this.invoice=JSON.parse(JSON.stringify(this.data.invoice)),this.newlyAdded=this.data.newlyAdded,this.screenSize=this.commonService.getScreenSize(),this.screenSize===s.cu.XS&&(this.qrWidth=220),this.store.select(C.Q5).pipe((0,M.R)(this.unSubs[0])).subscribe(ht=>{this.flgVersionCompatible=this.commonService.isVersionCompatible(ht.version,"0.11.0")});const ze=JSON.parse(JSON.stringify(this.invoice));this.store.select(C.Ef).pipe((0,M.R)(this.unSubs[1])).subscribe(ht=>{const it=this.invoice.state,nt=(ht.listInvoices.invoices||[]).find(st=>st.r_hash===ze.r_hash);this.invoice=nt,it!==this.invoice.state&&"SETTLED"===this.invoice.state&&(this.flgInvoicePaid=!0,setTimeout(()=>{this.flgInvoicePaid=!1},4e3)),this.logger.info(ht)})}onClose(){this.dialogRef.close(!1)}onShowAdvanced(){this.showAdvanced=!this.showAdvanced,this.flgOpened=!1}onScrollDown(){this.scrollContainer.nativeElement.scrollTop=this.scrollContainer.nativeElement.scrollTop+60}onExpansionClosed(){this.flgOpened=!1,this.scrollContainer.nativeElement.scrollTop=0}onCopyPayment(ze){this.snackBar.open("Payment request copied."),this.logger.info("Copied Text: "+ze)}getDecimalFormat(ze){return ze.amt_msat<1e3?"1.0-4":"1.0-0"}ngOnDestroy(){this.unSubs.forEach(ze=>{ze.next(null),ze.complete()})}}return he.\u0275fac=function(ze){return new(ze||he)(c.Y36(e.so),c.Y36(e.WI),c.Y36(P.mQ),c.Y36(o.v),c.Y36(O.ux),c.Y36(T.yh))},he.\u0275cmp=c.Xpm({type:he,selectors:[["rtl-invoice-information"]],viewQuery:function(ze,ht){if(1&ze&&c.Gf(y,5),2&ze){let it;c.iGM(it=c.CRH())&&(ht.container=it.first)}},decls:71,vars:47,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign.gt-sm","space-between stretch"],["fxFlex","35",1,"modal-qr-code-container","padding-gap-large",3,"fxLayoutAlign","ngClass"],[3,"value","size","errorCorrectionLevel",4,"ngIf"],["class","font-size-300",4,"ngIf"],["fxLayout","column","fxFlex","65"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large",3,"ngClass"],["fxLayout","column"],["fxFlex","30",1,"modal-qr-code-container","padding-gap",3,"fxLayoutAlign","ngClass"],["class","font-size-120",4,"ngIf"],["class","my-1",3,"inset",4,"ngIf"],[3,"perfectScrollbar","ngClass"],["scrollContainer",""],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[4,"ngIf"],[1,"my-1",3,"inset"],["fxFlex","100"],[1,"overflow-wrap","foreground-secondary-text"],["fxLayout","row","fxLayoutAlign","start end","class","btn-sticky-container padding-gap-x-large",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center","fxFlex","100",1,"padding-gap-x-large","padding-gap-bottom-large"],["mat-button","","color","primary","type","reset","tabindex","1",1,"mr-1",3,"click"],[4,"ngIf","ngIfElse"],["hideAdvancedText",""],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click",4,"ngIf"],[3,"value","size","errorCorrectionLevel"],[1,"font-size-300"],[1,"font-size-120"],["class","invoice-animation-container",4,"ngIf"],[1,"invoice-animation-container"],[1,"invoice-animation-div"],[1,"wiggle"],["class","particles-circle",4,"ngFor","ngForOf"],[1,"particles-circle"],[3,"diameter",4,"ngIf"],[3,"diameter"],["fxFlex","34"],["fxFlex","33"],["fxLayout","row",4,"ngIf"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",1,"flat-expansion-panel",3,"opened","closed"],["fxLayoutAlign","start center","fxFlex","100",1,"font-bold-500"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","row","fxLayoutAlign","start start","fxFlex","100",1,"mt-minus-1"],["fxFlex","60",1,"foreground-secondary-text","font-bold-500"],["fxFlex","40",1,"foreground-secondary-text","font-bold-500"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start start","fxFlex","100"],["fxFlex","60",1,"foreground-secondary-text"],["class","dot green","matTooltip","Settled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot yellow","matTooltip","Accepted","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["class","dot red","matTooltip","Cancelled","matTooltipPosition","right",3,"ngClass",4,"ngIf"],["fxFlex","40",1,"foreground-secondary-text"],["matTooltip","Settled","matTooltipPosition","right",1,"dot","green",3,"ngClass"],["matTooltip","Accepted","matTooltipPosition","right",1,"dot","yellow",3,"ngClass"],["matTooltip","Cancelled","matTooltipPosition","right",1,"dot","red",3,"ngClass"],["fxLayout","row","fxLayoutAlign","start end",1,"btn-sticky-container","padding-gap-x-large"],["mat-mini-fab","","aria-label","Scroll Down","fxLayoutAlign","center center",3,"click"],["fxLayoutAlign","center center"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","button",3,"click"]],template:function(ze,ht){if(1&ze&&(c.TgZ(0,"div",0),c.TgZ(1,"div",1),c.YNc(2,i,1,3,"qr-code",2),c.YNc(3,a,2,0,"span",3),c.qZA(),c.TgZ(4,"div",4),c.TgZ(5,"mat-card-header",5),c.TgZ(6,"div",6),c._UZ(7,"fa-icon",7),c.TgZ(8,"span",8),c._uU(9),c.qZA(),c.qZA(),c.TgZ(10,"button",9),c.NdJ("click",function(){return ht.onClose()}),c._uU(11,"X"),c.qZA(),c.qZA(),c.TgZ(12,"mat-card-content",10),c.TgZ(13,"div",11),c.TgZ(14,"div",12),c.YNc(15,p,1,3,"qr-code",2),c.YNc(16,u,2,0,"span",13),c.qZA(),c.YNc(17,_,1,1,"mat-divider",14),c.TgZ(18,"div",15,16),c.TgZ(20,"div",17),c.TgZ(21,"div",18),c.TgZ(22,"h4",19),c._uU(23),c.qZA(),c.TgZ(24,"span",20),c._uU(25),c.ALo(26,"number"),c.YNc(27,L,2,0,"ng-container",21),c.qZA(),c.qZA(),c.TgZ(28,"div",18),c.TgZ(29,"h4",19),c._uU(30,"Amount Settled"),c.qZA(),c.TgZ(31,"span",20),c.YNc(32,J,3,2,"ng-container",21),c.YNc(33,te,3,2,"ng-container",21),c.qZA(),c.qZA(),c.qZA(),c._UZ(34,"mat-divider",22),c.TgZ(35,"div",17),c.TgZ(36,"div",18),c.TgZ(37,"h4",19),c._uU(38,"Date Created"),c.qZA(),c.TgZ(39,"span",20),c._uU(40),c.ALo(41,"date"),c.qZA(),c.qZA(),c.TgZ(42,"div",18),c.TgZ(43,"h4",19),c._uU(44,"Date Settled"),c.qZA(),c.TgZ(45,"span",20),c._uU(46),c.ALo(47,"date"),c.qZA(),c.qZA(),c.qZA(),c._UZ(48,"mat-divider",22),c.TgZ(49,"div",17),c.TgZ(50,"div",23),c.TgZ(51,"h4",19),c._uU(52,"Memo"),c.qZA(),c.TgZ(53,"span",20),c._uU(54),c.qZA(),c.qZA(),c.qZA(),c._UZ(55,"mat-divider",22),c.TgZ(56,"div",17),c.TgZ(57,"div",23),c.TgZ(58,"h4",19),c._uU(59,"Payment Request"),c.qZA(),c.TgZ(60,"span",24),c._uU(61),c.qZA(),c.qZA(),c.qZA(),c.YNc(62,le,28,9,"div",21),c.qZA(),c.qZA(),c.qZA(),c.YNc(63,We,4,0,"div",25),c.TgZ(64,"div",26),c.TgZ(65,"button",27),c.NdJ("click",function(){return ht.onShowAdvanced()}),c.YNc(66,yt,2,0,"p",28),c.YNc(67,Ne,2,0,"ng-template",null,29,c.W1O),c.qZA(),c.YNc(69,Ve,2,2,"button",30),c.YNc(70,ue,2,0,"button",31),c.qZA(),c.qZA(),c.qZA()),2&ze){const it=c.MAs(68);c.xp6(1),c.Q6J("fxLayoutAlign",null!=ht.invoice&&ht.invoice.payment_request&&""!==(null==ht.invoice?null:ht.invoice.payment_request)?"center start":"center center")("ngClass",c.VKq(39,Te,ht.screenSize===ht.screenSizeEnum.XS||ht.screenSize===ht.screenSizeEnum.SM)),c.xp6(1),c.Q6J("ngIf",(null==ht.invoice?null:ht.invoice.payment_request)&&""!==(null==ht.invoice?null:ht.invoice.payment_request)),c.xp6(1),c.Q6J("ngIf",!(null!=ht.invoice&&ht.invoice.payment_request)||""===(null==ht.invoice?null:ht.invoice.payment_request)),c.xp6(4),c.Q6J("icon",ht.faReceipt),c.xp6(2),c.Oqu(ht.screenSize===ht.screenSizeEnum.XS?ht.newlyAdded?"Created":"Invoice":ht.newlyAdded?"Invoice Created":"Invoice Information"),c.xp6(3),c.Q6J("ngClass",c.VKq(41,ke,ht.screenSize===ht.screenSizeEnum.XS)),c.xp6(2),c.Q6J("fxLayoutAlign",null!=ht.invoice&&ht.invoice.payment_request&&""!==(null==ht.invoice?null:ht.invoice.payment_request)?"center start":"center center")("ngClass",c.VKq(43,Te,ht.screenSize!==ht.screenSizeEnum.XS&&ht.screenSize!==ht.screenSizeEnum.SM)),c.xp6(1),c.Q6J("ngIf",(null==ht.invoice?null:ht.invoice.payment_request)&&""!==(null==ht.invoice?null:ht.invoice.payment_request)),c.xp6(1),c.Q6J("ngIf",!(null!=ht.invoice&&ht.invoice.payment_request)||""===(null==ht.invoice?null:ht.invoice.payment_request)),c.xp6(1),c.Q6J("ngIf",ht.screenSize===ht.screenSizeEnum.XS||ht.screenSize===ht.screenSizeEnum.SM),c.xp6(1),c.Q6J("ngClass",c.VKq(45,Y,(null==ht.invoice?null:ht.invoice.htlcs)&&(null==ht.invoice?null:ht.invoice.htlcs.length)>0&&ht.showAdvanced)),c.xp6(5),c.Oqu(ht.screenSize===ht.screenSizeEnum.XS?"Amount":"Amount Requested"),c.xp6(2),c.hij("",c.lcZ(26,31,(null==ht.invoice?null:ht.invoice.value)||0)," Sats"),c.xp6(2),c.Q6J("ngIf",!(null!=ht.invoice&&ht.invoice.value)||"0"===(null==ht.invoice?null:ht.invoice.value)),c.xp6(5),c.Q6J("ngIf",(null==ht.invoice?null:ht.invoice.amt_paid_sat)&&"OPEN"!==(null==ht.invoice?null:ht.invoice.state)),c.xp6(1),c.Q6J("ngIf",!(null!=ht.invoice&&ht.invoice.amt_paid_sat)||"0"===(null==ht.invoice?null:ht.invoice.amt_paid_sat)),c.xp6(1),c.Q6J("inset",!0),c.xp6(6),c.Oqu(c.xi3(41,33,1e3*(null==ht.invoice?null:ht.invoice.creation_date),"dd/MMM/YYYY HH:mm")),c.xp6(6),c.Oqu(0!=+(null==ht.invoice?null:ht.invoice.settle_date)?c.xi3(47,36,1e3*+(null==ht.invoice?null:ht.invoice.settle_date),"dd/MMM/YYYY HH:mm"):"-"),c.xp6(2),c.Q6J("inset",!0),c.xp6(6),c.Oqu(null==ht.invoice?null:ht.invoice.memo),c.xp6(1),c.Q6J("inset",!0),c.xp6(6),c.Oqu((null==ht.invoice?null:ht.invoice.payment_request)||"N/A"),c.xp6(1),c.Q6J("ngIf",ht.showAdvanced),c.xp6(1),c.Q6J("ngIf",(null==ht.invoice?null:ht.invoice.htlcs)&&(null==ht.invoice?null:ht.invoice.htlcs.length)>0&&ht.showAdvanced&&ht.flgOpened),c.xp6(3),c.Q6J("ngIf",!ht.showAdvanced)("ngIfElse",it),c.xp6(3),c.Q6J("ngIf",(null==ht.invoice?null:ht.invoice.payment_request)&&""!==(null==ht.invoice?null:ht.invoice.payment_request)),c.xp6(1),c.Q6J("ngIf",!(null!=ht.invoice&&ht.invoice.payment_request)||""===(null==ht.invoice?null:ht.invoice.payment_request))}},directives:[R.xw,R.Wh,R.yH,S.mk,D.oO,S.O5,w.dk,U.BN,G.lW,w.dn,W.$V,ee.d,ie.uU,S.sg,_e.$g,fe.ib,fe.yz,fe.yK,de.gM,ne.Hw,se.h,oe.y],pipes:[S.JJ,S.uU],styles:[""]}),he})()},7772:(Ue,K,m)=>{"use strict";m.d(K,{_:()=>t,J:()=>v});var e=m(1777);const t=[(0,e.X$)("opacityAnimation",[(0,e.eR)(":enter",[(0,e.oB)({opacity:0}),(0,e.jt)("1000ms ease-in",(0,e.oB)({opacity:1}))]),(0,e.eR)(":leave",[(0,e.jt)("0ms",(0,e.oB)({opacity:0}))])])],v=[(0,e.X$)("fadeIn",[(0,e.eR)("void => *",[]),(0,e.eR)("* => void",[]),(0,e.eR)("* => *",[(0,e.jt)(800,(0,e.F4)([(0,e.oB)({opacity:0,transform:"translateY(100%)"}),(0,e.oB)({opacity:1,transform:"translateY(0%)"})]))])])]},8878:(Ue,K,m)=>{"use strict";m.d(K,{g:()=>t});var e=m(1777);const t=(0,e.X$)("routeAnimation",[(0,e.eR)("* => *",[(0,e.IO)(":enter, :leave",(0,e.oB)({position:"fixed",width:"100%"}),{optional:!0}),(0,e.ru)([(0,e.IO)(":enter",[(0,e.oB)({transform:"translateX(100%)"}),(0,e.jt)("1000ms ease-in-out",(0,e.oB)({transform:"translateX(0%)"}))],{optional:!0}),(0,e.IO)(":leave",[(0,e.oB)({transform:"translateX(0%)"}),(0,e.jt)("1000ms ease-in-out",(0,e.oB)({transform:"translateX(-100%)"}))],{optional:!0})])])])},113:(Ue,K,m)=>{"use strict";m.d(K,{l:()=>t});var e=m(1777);const t=[(0,e.X$)("sliderAnimation",[(0,e.SB)("*",(0,e.oB)({transform:"translateX(0)"})),(0,e.eR)("void => backward",[(0,e.oB)({transform:"translateX(-100%"}),(0,e.jt)("800ms")]),(0,e.eR)("backward => void",[(0,e.jt)("0ms",(0,e.oB)({transform:"translateX(100%)"}))]),(0,e.eR)("void => forward",[(0,e.oB)({transform:"translateX(100%"}),(0,e.jt)("800ms")]),(0,e.eR)("forward => void",[(0,e.jt)("0ms",(0,e.oB)({transform:"translateX(-100%)"}))])])]},1786:(Ue,K,m)=>{"use strict";m.d(K,{H:()=>T});var e=m(8966),t=m(5e3),v=m(5043),M=m(7093),s=m(9224),C=m(7423),c=m(9808),P=m(4834),o=m(3390);function O(R,S){if(1&R&&(t.TgZ(0,"p",14),t._uU(1),t.qZA()),2&R){const D=t.oxw();t.xp6(1),t.Oqu(D.data.titleMessage)}}let T=(()=>{class R{constructor(D,w,U){this.dialogRef=D,this.data=w,this.logger=U,this.errorMessage=""}ngOnInit(){this.errorMessage="object"==typeof this.data.message.message?JSON.stringify(this.data.message.message):this.data.message.message,!this.data.message&&!this.data.titleMessage&&!this.data.message&&(this.data.titleMessage="Please Check Server Connection"),this.logger.info(this.data.message)}onClose(){this.dialogRef.close(!1)}}return R.\u0275fac=function(D){return new(D||R)(t.Y36(e.so),t.Y36(e.WI),t.Y36(v.mQ))},R.\u0275cmp=t.Xpm({type:R,selectors:[["rtl-error-message"]],decls:29,vars:6,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large","error-alert-block"],["fxLayout","column"],["fxLayoutAlign","start center","class","pb-1",4,"ngIf"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"w-100","my-1"],[1,"word-break"],["fxLayout","row","fxLayoutAlign","end center"],["tabindex","1","autoFocus","","mat-button","","color","primary","type","submit","default","",3,"mat-dialog-close"],["fxLayoutAlign","start center",1,"pb-1"]],template:function(D,w){1&D&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t.TgZ(4,"span",4),t._uU(5),t.qZA(),t.qZA(),t.TgZ(6,"button",5),t.NdJ("click",function(){return w.onClose()}),t._uU(7,"X"),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",6),t.TgZ(9,"div",7),t.YNc(10,O,2,1,"p",8),t.TgZ(11,"h4",9),t._uU(12,"Error Code"),t.qZA(),t.TgZ(13,"span"),t._uU(14),t.qZA(),t._UZ(15,"mat-divider",10),t.TgZ(16,"h4",9),t._uU(17,"Error Message"),t.qZA(),t.TgZ(18,"span",11),t._uU(19),t.qZA(),t._UZ(20,"mat-divider",10),t.TgZ(21,"h4",9),t._uU(22,"API URL"),t.qZA(),t.TgZ(23,"span",11),t._uU(24),t.qZA(),t._UZ(25,"mat-divider",10),t.TgZ(26,"div",12),t.TgZ(27,"button",13),t._uU(28,"OK"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&D&&(t.xp6(5),t.Oqu(w.data.alertTitle||"ERROR"),t.xp6(5),t.Q6J("ngIf",w.data.titleMessage),t.xp6(4),t.Oqu(w.data.message.code),t.xp6(5),t.Oqu(w.errorMessage),t.xp6(5),t.Oqu(w.data.message.URL),t.xp6(3),t.Q6J("mat-dialog-close",!1))},directives:[M.xw,M.yH,s.dk,M.Wh,C.lW,s.dn,c.O5,P.d,o.h,e.ZT],styles:[".display-block[_ngcontent-%COMP%]{display:block}"]}),R})()},9442:(Ue,K,m)=>{"use strict";m.d(K,{w:()=>P});var e=m(801),t=m(5e3),v=m(9291),M=m(7093),s=m(9444),C=m(9224),c=m(7423);let P=(()=>{class o{constructor(T){this.router=T,this.faTimes=e.NBC}goToHelp(){this.router.navigate(["/help"])}}return o.\u0275fac=function(T){return new(T||o)(t.Y36(v.F0))},o.\u0275cmp=t.Xpm({type:o,selectors:[["rtl-not-found"]],decls:13,vars:1,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column",1,"padding-gap-large"],["fxLayout","column","fxLayoutAlign","start start"],[1,"box-text"],["fxLayout","row","fxLayoutAlign","center","fxFlex","80"],["mat-flat-button","","color","primary","type","button",1,"mt-2",3,"click"]],template:function(T,R){1&T&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"Page Not Found"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t.TgZ(7,"div",5),t.TgZ(8,"div",6),t._uU(9,"This page does not exist!"),t.qZA(),t.TgZ(10,"span",7),t.TgZ(11,"button",8),t.NdJ("click",function(){return R.goToHelp()}),t._uU(12,"Go To Help"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&T&&(t.xp6(1),t.Q6J("icon",R.faTimes))},directives:[M.xw,M.Wh,s.BN,C.a8,C.dn,M.yH,c.lW],encapsulation:2}),o})()},8213:(Ue,K,m)=>{"use strict";m.d(K,{a:()=>Xi});var e=m(3075),t=m(7579),v=m(2722),M=m(8966),s=m(801),C=m(7772),c=m(7731),P=m(6529),o=m(5e3),O=m(5620),T=m(9107),R=m(9808),S=m(5043),D=m(9291),w=m(62),U=m(7093),G=m(9224),W=m(7423),ee=m(5615),ie=m(1125),_e=m(3322),fe=m(7238),de=m(4834);function ne(Ke,mt){1&Ke&&o.GkF(0)}function se(Ke,mt){1&Ke&&o.GkF(0)}const oe=function(Ke){return{"h-5":Ke}};function y(Ke,mt){if(1&Ke&&(o.TgZ(0,"mat-expansion-panel",3),o.TgZ(1,"mat-expansion-panel-header"),o.TgZ(2,"mat-panel-title"),o.TgZ(3,"span",4),o._uU(4),o.ALo(5,"number"),o.qZA(),o.qZA(),o.qZA(),o.YNc(6,se,1,0,"ng-container",0),o.qZA()),2&Ke){const be=o.oxw(),qe=o.MAs(4);o.Q6J("expanded",be.panelExpanded)("ngClass",o.VKq(7,oe,!be.flgShowPanel)),o.xp6(4),o.AsE("Quote for ",be.termCaption," amount (",o.lcZ(5,5,be.quote.amount)," Sats)"),o.xp6(2),o.Q6J("ngTemplateOutlet",qe)}}function i(Ke,mt){if(1&Ke&&(o.TgZ(0,"div",17),o.TgZ(1,"h4",8),o._uU(2,"Prepay Amount (Sats)"),o.qZA(),o.TgZ(3,"span",9),o._uU(4),o.ALo(5,"number"),o.qZA(),o.qZA()),2&Ke){const be=o.oxw(2);o.xp6(4),o.Oqu(o.lcZ(5,1,null==be.quote?null:be.quote.prepay_amt_sat))}}function a(Ke,mt){1&Ke&&o._UZ(0,"mat-divider",12)}function p(Ke,mt){if(1&Ke&&(o.TgZ(0,"div",6),o.TgZ(1,"div",18),o.TgZ(2,"h4",8),o._uU(3,"Swap Server Node Pubkey"),o.qZA(),o.TgZ(4,"span",9),o._uU(5),o.qZA(),o.qZA(),o.qZA()),2&Ke){const be=o.oxw(2);o.xp6(5),o.Oqu(null==be.quote?null:be.quote.swap_payment_dest)}}function u(Ke,mt){if(1&Ke&&(o.TgZ(0,"div",5),o.TgZ(1,"div",6),o.TgZ(2,"div",7),o.TgZ(3,"h4",8),o._uU(4,"Swap Fee (Sats)"),o.qZA(),o.TgZ(5,"span",9),o._uU(6),o.ALo(7,"number"),o.qZA(),o.qZA(),o.TgZ(8,"div",10),o.TgZ(9,"h4",8),o._uU(10),o.qZA(),o.TgZ(11,"span",9),o._uU(12),o.ALo(13,"number"),o.qZA(),o.qZA(),o.YNc(14,i,6,3,"div",11),o.qZA(),o._UZ(15,"mat-divider",12),o.TgZ(16,"div",6),o.TgZ(17,"div",13),o.TgZ(18,"h4",8),o._uU(19,"Max Off-chain Swap Routing Fee (Sats)"),o.qZA(),o.TgZ(20,"span",9),o._uU(21),o.ALo(22,"number"),o.qZA(),o.qZA(),o.TgZ(23,"div",14),o.TgZ(24,"h4",8),o._uU(25,"Max Off-chain Prepay Routing Fee (Sats)"),o.qZA(),o.TgZ(26,"span",9),o._uU(27,"36"),o.qZA(),o.qZA(),o.qZA(),o.YNc(28,a,1,0,"mat-divider",15),o.YNc(29,p,6,1,"div",16),o.qZA()),2&Ke){const be=o.oxw();o.xp6(2),o.Q6J("fxFlex",null!=be.quote&&be.quote.prepay_amt_sat?"30":"50"),o.xp6(4),o.Oqu(o.lcZ(7,9,null==be.quote?null:be.quote.swap_fee_sat)),o.xp6(2),o.Q6J("fxFlex",null!=be.quote&&be.quote.prepay_amt_sat?"30":"50"),o.xp6(2),o.Oqu(null!=be.quote&&be.quote.htlc_sweep_fee_sat?"HTLC Sweep Fee (Sats)":null!=be.quote&&be.quote.htlc_publish_fee_sat?"HTLC Publish Fee (Sats)":""),o.xp6(2),o.Oqu(o.lcZ(13,11,null!=be.quote&&be.quote.htlc_sweep_fee_sat?be.quote.htlc_sweep_fee_sat:null!=be.quote&&be.quote.htlc_publish_fee_sat?be.quote.htlc_publish_fee_sat:0)),o.xp6(2),o.Q6J("ngIf",null==be.quote?null:be.quote.prepay_amt_sat),o.xp6(7),o.Oqu(o.lcZ(22,13,(null==be.quote?null:be.quote.amount)*((null!=be.quote&&be.quote.off_chain_swap_routing_fee_percentage?null==be.quote?null:be.quote.off_chain_swap_routing_fee_percentage:2)/100))),o.xp6(7),o.Q6J("ngIf",""!==(null==be.quote?null:be.quote.swap_payment_dest)),o.xp6(1),o.Q6J("ngIf",""!==(null==be.quote?null:be.quote.swap_payment_dest))}}let _=(()=>{class Ke{constructor(){this.quote={},this.termCaption="",this.showPanel=!0,this.panelExpanded=!1,this.flgShowPanel=!1}ngOnInit(){setTimeout(()=>{this.flgShowPanel=!0},1200)}}return Ke.\u0275fac=function(be){return new(be||Ke)},Ke.\u0275cmp=o.Xpm({type:Ke,selectors:[["rtl-loop-quote"]],inputs:{quote:"quote",termCaption:"termCaption",showPanel:"showPanel",panelExpanded:"panelExpanded"},decls:5,vars:1,consts:[[4,"ngTemplateOutlet"],["informationBlock",""],["quoteDetailsBlock",""],["fxFlex","100",1,"flat-expansion-panel","mb-1",3,"expanded","ngClass"],["fxLayoutAlign","start center","fxFlex","100"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["matTooltip","Estimated fee charged by the loop server for the swap",3,"fxFlex"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],["matTooltip","An estimate of the on-chain fee that needs to be paid to sweep the HTLC",3,"fxFlex"],["fxFlex","40","matTooltip","The part of the swap fee that is requested as a prepayment",4,"ngIf"],[1,"w-100","my-1"],["fxFlex","50","matTooltip","Maximum off-chain fee that may be paid for routing the payment amount to the server"],["fxFlex","50","matTooltip","Maximum off-chain fee that may be paid for routing the pre-payment amount to the server"],["class","w-100 my-1",4,"ngIf"],["fxLayout","row",4,"ngIf"],["fxFlex","40","matTooltip","The part of the swap fee that is requested as a prepayment"],["fxFlex","100","matTooltip","The node pubkey, where the swap payments will be sent"]],template:function(be,qe){if(1&be&&(o.YNc(0,ne,1,0,"ng-container",0),o.YNc(1,y,7,9,"ng-template",null,1,o.W1O),o.YNc(3,u,30,15,"ng-template",null,2,o.W1O)),2&be){const vt=o.MAs(2),me=o.MAs(4);o.Q6J("ngTemplateOutlet",qe.showPanel?vt:me)}},directives:[R.tP,ie.ib,U.yH,R.mk,_e.oO,ie.yz,ie.yK,U.Wh,U.xw,fe.gM,R.O5,de.d],pipes:[R.JJ],styles:[""]}),Ke})();var L=m(7322),I=m(7531),x=m(3390),r=m(2368),b=m(5245),J=m(9814),F=m(5899);function B(Ke,mt){1&Ke&&o.GkF(0)}function te(Ke,mt){if(1&Ke&&(o.TgZ(0,"div",3),o.TgZ(1,"span",4),o._uU(2),o.qZA(),o.qZA()),2&Ke){const be=o.oxw();o.xp6(2),o.Oqu(null!=be.loopStatus&&be.loopStatus.error?null==be.loopStatus?null:be.loopStatus.error:"Unknown Error.")}}function xe(Ke,mt){if(1&Ke&&(o.TgZ(0,"div",3),o.TgZ(1,"div",5),o.TgZ(2,"div",6),o.TgZ(3,"h4",7),o._uU(4,"ID"),o.qZA(),o.TgZ(5,"span",4),o._uU(6),o.qZA(),o.qZA(),o.qZA(),o._UZ(7,"mat-divider",8),o.TgZ(8,"div",5),o.TgZ(9,"div",6),o.TgZ(10,"h4",7),o._uU(11,"HTLC Address"),o.qZA(),o.TgZ(12,"span",4),o._uU(13),o.qZA(),o.qZA(),o.qZA(),o.qZA()),2&Ke){const be=o.oxw();o.xp6(6),o.Oqu(null==be.loopStatus?null:be.loopStatus.id_bytes),o.xp6(7),o.Oqu(null==be.loopStatus?null:be.loopStatus.htlc_address)}}let Re=(()=>{class Ke{constructor(){}}return Ke.\u0275fac=function(be){return new(be||Ke)},Ke.\u0275cmp=o.Xpm({type:Ke,selectors:[["rtl-loop-status"]],inputs:{loopStatus:"loopStatus"},decls:5,vars:1,consts:[[4,"ngTemplateOutlet"],["loopFailedBlock",""],["loopSuccessfulBlock",""],["fxLayout","column"],[1,"foreground-secondary-text"],["fxLayout","row"],["fxFlex","100"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"w-100","my-1"]],template:function(be,qe){if(1&be&&(o.YNc(0,B,1,0,"ng-container",0),o.YNc(1,te,3,1,"ng-template",null,1,o.W1O),o.YNc(3,xe,14,2,"ng-template",null,2,o.W1O)),2&be){const vt=o.MAs(2),me=o.MAs(4);o.Q6J("ngTemplateOutlet",null!=qe.loopStatus&&qe.loopStatus.error?vt:me)}},directives:[R.tP,U.xw,U.yH,U.Wh,de.d],styles:[""]}),Ke})();var Fe=m(113);function q(Ke,mt){1&Ke&&o.GkF(0)}const j=function(Ke,mt){return{"small-svg":Ke,"large-svg":mt}};function we(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",7),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"g",8),o.TgZ(5,"g",9),o.TgZ(6,"g",10),o.TgZ(7,"g",11),o._UZ(8,"circle",12),o._UZ(9,"path",13),o.qZA(),o.TgZ(10,"g",14),o._UZ(11,"ellipse",15),o._UZ(12,"ellipse",16),o._UZ(13,"rect",17),o._UZ(14,"rect",18),o._UZ(15,"rect",19),o._UZ(16,"rect",20),o._UZ(17,"rect",21),o._UZ(18,"rect",22),o._UZ(19,"rect",23),o._UZ(20,"rect",24),o._UZ(21,"rect",25),o._UZ(22,"rect",26),o._UZ(23,"rect",27),o._UZ(24,"rect",28),o._UZ(25,"rect",29),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(26,"div",30),o.TgZ(27,"mat-card-title"),o._uU(28,"Loop Out explained."),o.qZA(),o.qZA(),o.TgZ(29,"div",31),o.TgZ(30,"mat-card-subtitle",32),o._uU(31," Lightning Loop is a non custodial service offered by Lightning Labs to bridge on-chain and off-chain Bitcoin using Submarine swaps. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,j,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}function Ae(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",33),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"defs"),o.TgZ(5,"linearGradient",34),o._UZ(6,"stop",35),o._UZ(7,"stop",36),o._UZ(8,"stop",37),o.qZA(),o.qZA(),o.TgZ(9,"g",8),o.TgZ(10,"g",38),o.TgZ(11,"g",39),o.TgZ(12,"g",40),o.TgZ(13,"g",41),o.TgZ(14,"g",42),o._UZ(15,"rect",43),o._UZ(16,"rect",44),o._UZ(17,"rect",45),o._UZ(18,"circle",46),o._UZ(19,"rect",47),o._UZ(20,"rect",48),o._UZ(21,"circle",49),o._UZ(22,"rect",50),o._UZ(23,"rect",51),o._UZ(24,"rect",52),o._UZ(25,"rect",53),o._UZ(26,"circle",54),o._UZ(27,"circle",55),o.qZA(),o.TgZ(28,"g",56),o._UZ(29,"path",57),o._UZ(30,"rect",58),o._UZ(31,"polygon",59),o._UZ(32,"circle",60),o._UZ(33,"path",61),o._UZ(34,"rect",62),o._UZ(35,"rect",63),o._UZ(36,"rect",64),o._UZ(37,"rect",65),o._UZ(38,"rect",66),o._UZ(39,"rect",67),o._UZ(40,"rect",68),o._UZ(41,"path",69),o._UZ(42,"path",70),o.qZA(),o._UZ(43,"path",71),o.qZA(),o.qZA(),o._UZ(44,"circle",72),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(45,"div",30),o.TgZ(46,"mat-card-title"),o._uU(47,"Step 1: Deciding to Loop Out"),o.qZA(),o.qZA(),o.TgZ(48,"div",31),o.TgZ(49,"mat-card-subtitle",32),o._uU(50," You have a channel with a local balance amount and you want to gain inbound liquidity. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,j,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}function le(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",73),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"defs"),o.TgZ(5,"linearGradient",74),o._UZ(6,"stop",35),o._UZ(7,"stop",36),o._UZ(8,"stop",37),o.qZA(),o.qZA(),o.TgZ(9,"g",8),o.TgZ(10,"g",75),o.TgZ(11,"g",76),o._UZ(12,"circle",77),o._UZ(13,"path",78),o.TgZ(14,"g",79),o._UZ(15,"polygon",80),o._UZ(16,"polygon",81),o._UZ(17,"path",82),o.qZA(),o.TgZ(18,"g",83),o._UZ(19,"polygon",84),o._UZ(20,"path",85),o._UZ(21,"rect",86),o._UZ(22,"path",87),o._UZ(23,"rect",88),o._UZ(24,"rect",89),o._UZ(25,"rect",90),o._UZ(26,"rect",91),o._UZ(27,"circle",92),o._UZ(28,"path",93),o.TgZ(29,"g",94),o.TgZ(30,"g",95),o._UZ(31,"g",96),o.qZA(),o._UZ(32,"g",97),o.qZA(),o._UZ(33,"path",98),o.qZA(),o.TgZ(34,"g",99),o.TgZ(35,"g",41),o.TgZ(36,"g",42),o._UZ(37,"rect",43),o._UZ(38,"rect",44),o._UZ(39,"rect",45),o._UZ(40,"circle",46),o._UZ(41,"rect",47),o._UZ(42,"rect",48),o._UZ(43,"circle",49),o._UZ(44,"rect",50),o._UZ(45,"rect",51),o._UZ(46,"rect",52),o._UZ(47,"rect",53),o._UZ(48,"circle",100),o._UZ(49,"circle",54),o._UZ(50,"circle",55),o._UZ(51,"circle",101),o.qZA(),o.TgZ(52,"g",56),o._UZ(53,"path",57),o._UZ(54,"rect",102),o._UZ(55,"polygon",103),o._UZ(56,"circle",104),o._UZ(57,"path",61),o._UZ(58,"rect",105),o._UZ(59,"rect",106),o._UZ(60,"rect",107),o._UZ(61,"rect",108),o._UZ(62,"rect",109),o._UZ(63,"rect",110),o._UZ(64,"rect",68),o._UZ(65,"path",69),o._UZ(66,"path",70),o.qZA(),o._UZ(67,"path",111),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(68,"div",30),o.TgZ(69,"mat-card-title"),o._uU(70,"Step 2: Send lightning payment"),o.qZA(),o.qZA(),o.TgZ(71,"div",31),o.TgZ(72,"mat-card-subtitle",32),o._uU(73," Your node pays a lightning invoice for the amount requested via the loop service. This moves the local balance, for the amount paid, to the remote side of the channel. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,j,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}function We(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",112),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"g",8),o.TgZ(5,"g",113),o.TgZ(6,"g",114),o.TgZ(7,"g",115),o.TgZ(8,"g",116),o._UZ(9,"circle",12),o._UZ(10,"path",117),o.qZA(),o.TgZ(11,"g",14),o._UZ(12,"ellipse",118),o._UZ(13,"ellipse",16),o._UZ(14,"rect",17),o._UZ(15,"rect",18),o._UZ(16,"rect",19),o._UZ(17,"rect",20),o._UZ(18,"rect",21),o._UZ(19,"rect",22),o._UZ(20,"rect",23),o._UZ(21,"rect",24),o._UZ(22,"rect",25),o._UZ(23,"rect",26),o._UZ(24,"rect",27),o._UZ(25,"rect",28),o._UZ(26,"rect",29),o.qZA(),o.qZA(),o.TgZ(27,"g",119),o._UZ(28,"polygon",80),o._UZ(29,"polygon",120),o._UZ(30,"path",82),o.qZA(),o.TgZ(31,"g",121),o._UZ(32,"polygon",84),o._UZ(33,"path",85),o._UZ(34,"rect",86),o._UZ(35,"path",87),o._UZ(36,"rect",88),o._UZ(37,"rect",89),o._UZ(38,"rect",90),o._UZ(39,"rect",91),o._UZ(40,"circle",122),o._UZ(41,"path",93),o.TgZ(42,"g",94),o.TgZ(43,"g",95),o._UZ(44,"g",96),o.qZA(),o._UZ(45,"g",97),o.qZA(),o._UZ(46,"path",123),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(47,"div",30),o.TgZ(48,"mat-card-title"),o._uU(49,"Step 3: Receive funds back"),o.qZA(),o.qZA(),o.TgZ(50,"div",31),o.TgZ(51,"mat-card-subtitle",32),o._uU(52," Loop service then sends you a payment on-chain for the amount same as the lightning payment minus the fee. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,j,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}function yt(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",124),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"defs"),o.TgZ(5,"linearGradient",34),o._UZ(6,"stop",35),o._UZ(7,"stop",36),o._UZ(8,"stop",37),o.qZA(),o.qZA(),o.TgZ(9,"g",8),o.TgZ(10,"g",125),o.TgZ(11,"g",126),o.TgZ(12,"g",42),o._UZ(13,"rect",127),o._UZ(14,"rect",128),o._UZ(15,"rect",129),o._UZ(16,"circle",130),o._UZ(17,"rect",131),o._UZ(18,"rect",132),o._UZ(19,"circle",133),o._UZ(20,"rect",134),o._UZ(21,"rect",135),o._UZ(22,"rect",136),o._UZ(23,"rect",137),o._UZ(24,"rect",138),o._UZ(25,"circle",139),o._UZ(26,"circle",140),o._UZ(27,"circle",141),o.qZA(),o.TgZ(28,"g",142),o.TgZ(29,"g",143),o.TgZ(30,"g",144),o._UZ(31,"path",145),o._UZ(32,"rect",146),o._UZ(33,"polygon",147),o.TgZ(34,"g",148),o._UZ(35,"path",149),o.qZA(),o._UZ(36,"rect",150),o._UZ(37,"rect",151),o._UZ(38,"rect",152),o._UZ(39,"rect",153),o._UZ(40,"rect",154),o._UZ(41,"rect",155),o._UZ(42,"rect",156),o._UZ(43,"path",157),o._UZ(44,"path",158),o.qZA(),o.TgZ(45,"g",159),o._UZ(46,"path",160),o._UZ(47,"path",161),o._UZ(48,"path",162),o._UZ(49,"path",163),o._UZ(50,"path",164),o._UZ(51,"path",165),o._UZ(52,"path",166),o._UZ(53,"path",167),o._UZ(54,"path",168),o._UZ(55,"path",169),o._UZ(56,"path",170),o._UZ(57,"circle",171),o._UZ(58,"circle",172),o.qZA(),o._UZ(59,"path",173),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(60,"div",30),o.TgZ(61,"mat-card-title"),o._uU(62,"Done!"),o.qZA(),o.qZA(),o.TgZ(63,"div",31),o.TgZ(64,"mat-card-subtitle",32),o._uU(65," Final settlement occurs when your node sweeps the on-chain payment and the loop server settles the lightning invoice. You receive the payment on-chain in your wallet and also move local balance to the remote side of the channel, gaining inbound capacity. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,j,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}let Ne=(()=>{class Ke{constructor(be){this.commonService=be,this.animationDirection="forward",this.stepNumber=1,this.stepNumberChange=new o.vpe,this.screenSize="",this.screenSizeEnum=c.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}onSwipe(be){2===be.direction&&this.stepNumber<5?(this.stepNumber++,this.animationDirection="forward",this.stepNumberChange.emit(this.stepNumber)):4===be.direction&&this.stepNumber>1&&(this.stepNumber--,this.animationDirection="backward",this.stepNumberChange.emit(this.stepNumber))}}return Ke.\u0275fac=function(be){return new(be||Ke)(o.Y36(w.v))},Ke.\u0275cmp=o.Xpm({type:Ke,selectors:[["rtl-loop-out-info-graphics"]],inputs:{animationDirection:"animationDirection",stepNumber:"stepNumber"},outputs:{stepNumberChange:"stepNumberChange"},decls:11,vars:1,consts:[[4,"ngTemplateOutlet"],["loopStepBlock1",""],["loopStepBlock2",""],["loopStepBlock3",""],["loopStepBlock4",""],["loopStepBlock5",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",3,"swipe"],["fxFlex","30","viewBox","0 0 108 118","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","Loopv0.2","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","LoopOut_Step01","transform","translate(-594.000000, -215.000000)","fill-rule","nonzero"],["id","Loop_Step01","transform","translate(594.000000, 215.000000)"],["id","Group-16","transform","translate(23.000000, 0.000000)"],["id","Oval","cx","42.4877419","cy","42.4877419","r","42.4877419",1,"fill-color-2"],["d","M56.0827415,28.5000036 C60.4468211,28.5000036 63.9999285,25.1343958 63.9999285,21.0000215 C63.9999285,16.8656472 60.4468211,13.5000393 56.0827415,13.5000393 C52.9843297,13.5000393 50.5608889,15.4359631 48.9999642,17.1843872 C47.4390396,15.4359631 45.0155987,13.5000393 41.9171869,13.5000393 C37.5531074,13.5000393 34,16.8656472 34,21.0000215 C34,25.1343958 37.5531074,28.5000036 41.9171869,28.5000036 C45.0155987,28.5000036 47.4390396,26.5640798 48.9999642,24.8156557 C50.5608889,26.5640798 52.9843297,28.5000036 56.0827415,28.5000036 Z M41.9171869,24.0000143 C40.0328073,24.0000143 38.4999893,22.6546959 38.4999893,21.0000286 C38.4999893,19.3453471 40.0328073,18.0000286 41.9171869,18.0000286 C43.707771,18.0000286 45.3577763,19.6921938 46.3234264,21.0000286 C45.3671604,22.2937501 43.7031019,24.0000143 41.9171869,24.0000143 Z M56.0827415,24.0000143 C54.2921574,24.0000143 52.6421522,22.3078492 51.676502,21.0000286 C52.6327681,19.7062929 54.2968266,18.0000286 56.0827415,18.0000286 C57.9671212,18.0000286 59.4999392,19.3453471 59.4999392,21.0000286 C59.4999392,22.6546959 57.9671212,24.0000143 56.0827415,24.0000143 Z","id","i",1,"fill-color-primary"],["id","Group-21","transform","translate(0.000000, 36.000000)"],["id","Oval","cx","48.644129","cy","75.1589677","rx","48.644129","ry","6.61766437",1,"fill-color-7"],["id","Oval","opacity","0.1","cx","48.644129","cy","75.1589677","rx","40.8402581","ry","5.55600756",1,"fill-color-27"],["id","Rectangle","x","25.2325161","y","6.09470968","width","54.1068387","height","62.9512258",1,"fill-color-26"],["id","Rectangle","x","20","y","1.24344979e-14","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","20","y","26","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","19.7698065","y","52.9179355","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","67.6335484","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","67.6335484","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","67.6335484","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["fxFlex","20","fxLayoutAlign","center end"],["fxFlex","40"],[1,"font-size-120"],["fxFlex","30","viewBox","0 0 205 121","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["x1","50%","y1","100%","x2","50%","y2","0%","id","linearGradient-1"],["stop-color","#808080","stop-opacity","0.25","offset","0%"],["stop-color","#808080","stop-opacity","0.12","offset","54%"],["stop-color","#808080","stop-opacity","0.1","offset","100%"],["id","LoopOut_Step02","transform","translate(-540.000000, -210.000000)","fill-rule","nonzero"],["id","Loop_Step02","transform","translate(540.000000, 210.000000)"],["id","Illustration_Step02"],["id","Group-31"],["id","Group-2"],["id","Rectangle","x","0","y","0","width","90.1490688","height","100.616012",1,"fill-color-10"],["id","Rectangle","x","1.48932403","y","67.1775068","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","74.5890324","width","51.2","height","16.0118784",1,"fill-color-primary-lighter"],["id","Oval","cx","76.317438","cy","82.4918815","r","8.15070413",1,"fill-color-primary-darker"],["id","Rectangle","x","1.48932403","y","34.712875","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","42.1244006","width","51.2","height","16.0118784",1,"fill-color-primary-lighter"],["id","Oval","cx","76.317438","cy","50.0294431","r","8.15070413",1,"fill-color-primary-darker"],["id","Rectangle","x","1.48932403","y","2.2482432","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","74.5890324","width","24","height","16.0118784",1,"fill-color-primary"],["id","Rectangle","x","8.64422093","y","42.1244006","width","36.8","height","16.0118784",1,"fill-color-primary"],["id","Rectangle","x","8.64422093","y","9.66196224","width","51.2","height","16.0118784",1,"fill-color-primary"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","50.2465905","r","8.78679245"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","82.7090289","r","8.78679245"],["id","Group","transform","translate(60.115627, 35.744427)"],["d","M133.318807,1.04548939 L82.5936439,1.04548939 L82.5936439,0 L59.5928852,0 L59.5928852,1.04548939 L8.65861943,1.04548939 C7.74861523,1.04548887 6.87588228,1.4069864 6.23241214,2.05045654 C5.58894199,2.69392669 5.22744498,3.56665964 5.22744498,4.47666384 L5.22744498,73.9350108 C5.22744498,74.8450173 5.5889387,75.7177532 6.23240879,76.3612266 C6.87587888,77.0047 7.74861298,77.3662028 8.65861943,77.3662028 L133.318807,77.3662028 C135.213795,77.3662028 136.749981,75.8300048 136.749981,73.9350167 L136.749981,4.47666384 C136.749981,3.56665964 136.388484,2.69392669 135.745014,2.05045654 C135.101544,1.4069864 134.228811,1.04548887 133.318807,1.04548939 Z","id","Path",1,"fill-color-20"],["id","Rectangle","x","9.82759671","y","7.10932665","width","122.322231","height","69.0022838",1,"fill-color-25"],["id","Path","opacity","0.257273065","points","97.1677755 76.1116475 9.82763376 76.1116475 9.82763376 7.10937149",1,"fill-color-24"],["id","Oval","cx","28.9673627","cy","59.1901502","r","11.7579927",1,"fill-color-25"],["d","M31.5848237,68.0274261 C25.669241,68.0274261 20.3361447,64.4639649 18.0723494,58.9986791 C15.808554,53.5333932 17.0598755,47.2425772 21.2428244,43.0596288 C25.4257733,38.8766804 31.7165895,37.6253598 37.1818751,39.8891559 C42.6471607,42.1529519 46.2106203,47.4860487 46.2106203,53.4016314 C46.2014756,61.4754447 39.6586369,68.0182825 31.5848237,68.0274261 L31.5848237,68.0274261 Z M31.5848237,38.967022 C23.612809,38.967022 17.1502143,45.4296168 17.1502143,53.4016314 C17.1502143,61.3736461 23.612809,67.8362409 31.5848237,67.8362409 C39.5568383,67.8362409 46.0194331,61.3736461 46.0194331,53.4016314 C46.010427,45.4333502 39.5531049,38.9760281 31.5848237,38.967022 L31.5848237,38.967022 Z","id","Shape",1,"fill-color-primary"],["id","Rectangle","x","99.4252759","y","44.3228077","width","11.4262324","height","2.38757043",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","25.733862","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","28.9741379","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","32.2144137","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","35.4546875","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","38.6949634","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","119.89017","y","8.50924347","width","4.7751428","height","4.7751428",1,"fill-color-6"],["d","M126.882344,15.5014148 L121.083948,15.5014148 L121.083948,9.70301894 L126.882344,9.70301894 L126.882344,15.5014148 Z M121.336061,15.2493191 L126.63024,15.2493191 L126.63024,9.95513218 L121.336061,9.95513218 L121.336061,15.2493191 Z","id","Shape",1,"fill-color-19"],["d","M140.184525,74.8570201 L128.246669,74.8570201 L128.246669,73.9969059 C128.246671,73.9516751 128.228704,73.9082962 128.196721,73.876313 C128.164738,73.8443298 128.12136,73.826364 128.076129,73.826364 L123.98315,73.826364 C123.937919,73.826364 123.89454,73.8443305 123.862558,73.8763135 C123.830575,73.9082966 123.812608,73.9516752 123.81261,73.9969059 L123.81261,74.8570201 L121.254497,74.8570201 L121.254497,73.9969059 C121.254499,73.9516752 121.236532,73.9082966 121.204549,73.8763135 C121.172566,73.8443305 121.129188,73.826364 121.083957,73.826364 L116.990978,73.826364 C116.945747,73.826364 116.902368,73.8443297 116.870385,73.8763129 C116.838402,73.908296 116.820435,73.9516749 116.820436,73.9969059 L116.820436,74.8570201 L114.262326,74.8570201 L114.262326,73.9969059 C114.262328,73.9516749 114.24436,73.908296 114.212377,73.8763129 C114.180394,73.8443297 114.137015,73.826364 114.091784,73.826364 L109.998805,73.826364 C109.953574,73.826364 109.910196,73.8443305 109.878213,73.8763135 C109.84623,73.9082966 109.828263,73.9516752 109.828265,73.9969059 L109.828265,74.8570201 L107.270153,74.8570201 L107.270153,73.9969059 C107.270154,73.9516752 107.252187,73.9082966 107.220204,73.8763135 C107.188222,73.8443305 107.144843,73.826364 107.099613,73.826364 L103.00663,73.826364 C102.961399,73.826364 102.91802,73.8443298 102.886037,73.876313 C102.854054,73.9082962 102.836088,73.9516751 102.83609,73.9969059 L102.83609,74.8570201 L100.277981,74.8570201 L100.277981,73.9969059 C100.277983,73.9516749 100.260016,73.908296 100.228032,73.8763129 C100.196049,73.8443297 100.15267,73.826364 100.107439,73.826364 L96.0144621,73.826364 C95.9692311,73.826364 95.9258522,73.8443297 95.8938691,73.8763129 C95.861886,73.908296 95.8439187,73.9516749 95.8439202,73.9969059 L95.8439202,74.8570201 L93.285808,74.8570201 L93.285808,73.9969059 C93.2858095,73.9516752 93.2678425,73.9082966 93.2358598,73.8763135 C93.2038771,73.8443305 93.1604987,73.826364 93.1152681,73.826364 L89.0222888,73.826364 C88.9770581,73.826364 88.9336797,73.8443305 88.901697,73.8763135 C88.8697143,73.9082966 88.8517473,73.9516752 88.8517489,73.9969059 L88.8517489,74.8570201 L86.2936405,74.8570201 L86.2936405,73.9969059 C86.293642,73.9516752 86.2756751,73.9082966 86.2436923,73.8763135 C86.2117096,73.8443305 86.1683312,73.826364 86.1231006,73.826364 L54.061428,73.826364 C54.0161974,73.826364 53.972819,73.8443305 53.9408363,73.8763135 C53.9088536,73.9082966 53.8908866,73.9516752 53.8908881,73.9969059 L53.8908881,74.8570201 L51.3327759,74.8570201 L51.3327759,73.9969059 C51.3327774,73.9516749 51.3148102,73.908296 51.282827,73.8763129 C51.2508439,73.8443297 51.207465,73.826364 51.162234,73.826364 L47.0692664,73.826364 C47.0240354,73.826364 46.9806565,73.8443297 46.9486734,73.8763129 C46.9166903,73.908296 46.898723,73.9516749 46.8987246,73.9969059 L46.8987246,74.8570201 L44.3406025,74.8570201 L44.3406025,73.9969059 C44.3406046,73.9516751 44.3226378,73.9082962 44.290655,73.876313 C44.2586721,73.8443298 44.2152934,73.826364 44.1700626,73.826364 L40.0770834,73.826364 C40.0318527,73.826364 39.9884743,73.8443305 39.9564916,73.8763135 C39.9245089,73.9082966 39.9065419,73.9516752 39.9065435,73.9969059 L39.9065435,74.8570201 L37.3484312,74.8570201 L37.3484312,73.9969059 C37.3484327,73.9516752 37.3304657,73.9082966 37.298483,73.8763135 C37.2665003,73.8443305 37.2231219,73.826364 37.1778913,73.826364 L33.084912,73.826364 C33.039681,73.826364 32.9963021,73.8443297 32.964319,73.8763129 C32.9323358,73.908296 32.9143686,73.9516749 32.9143701,73.9969059 L32.9143701,74.8570201 L30.3562598,74.8570201 L30.3562598,73.9969059 C30.3562614,73.9516749 30.3382941,73.908296 30.306311,73.8763129 C30.2743278,73.8443297 30.2309489,73.826364 30.1857179,73.826364 L26.0927387,73.826364 C26.047508,73.826364 26.0041296,73.8443305 25.9721469,73.8763135 C25.9401642,73.9082966 25.9221972,73.9516752 25.9221988,73.9969059 L25.9221988,74.8570201 L23.3640826,74.8570201 L23.3640826,73.9969059 C23.3640841,73.9516752 23.3461171,73.9082966 23.3141344,73.8763135 C23.2821517,73.8443305 23.2387733,73.826364 23.1935427,73.826364 L19.1005673,73.826364 C19.0553365,73.826364 19.0119578,73.8443298 18.979975,73.876313 C18.9479921,73.9082962 18.9300253,73.9516751 18.9300274,73.9969059 L18.9300274,74.8570201 L16.3719151,74.8570201 L16.3719151,73.9969059 C16.3719167,73.9516749 16.3539494,73.908296 16.3219663,73.8763129 C16.2899831,73.8443297 16.2466042,73.826364 16.2013733,73.826364 L12.1083959,73.826364 C12.0631649,73.826364 12.0197861,73.8443297 11.9878029,73.8763129 C11.9558198,73.908296 11.9378525,73.9516749 11.9378541,73.9969059 L11.9378541,74.8570201 L4.09297732,74.8570201 C1.83248849,74.8570223 0,76.6895106 0,78.9499994 L0,80.8007483 C0,83.061233 1.83249262,84.8937159 4.09297732,84.8937159 L140.184525,84.8937159 C142.44501,84.8937159 144.277504,83.0612333 144.277504,80.8007483 L144.277504,78.9499994 C144.277504,76.6895102 142.445014,74.8570223 140.184525,74.8570201 Z","id","Path",1,"fill-color-20"],["d","M88.0406297,103.870828 C88.3071704,103.870828 88.5610365,103.731189 88.7006752,103.490029 L94.2857286,93.8431185 C94.5808417,93.3385473 94.2159092,92.7007212 93.6288439,92.7007212 L89.9668136,92.7007212 L91.318669,88.5817505 C91.445602,88.0993988 91.0806695,87.6234 90.5824512,87.6234 L86.0128621,87.6234 C85.632063,87.6234 85.3083776,87.9058383 85.2576168,88.2834455 L84.2421525,95.8994274 C84.1818469,96.3563987 84.5372656,96.7625782 84.9973979,96.7625782 L88.7641417,96.7625782 L87.30122,102.934697 C87.1869926,103.417048 87.555086,103.870828 88.0406297,103.870828 Z","id","b","transform","translate(89.312846, 95.747114) rotate(14.000000) translate(-89.312846, -95.747114) ",1,"fill-color-21"],["id","Oval","cx","74.1507041","cy","17.5648113","r","8.15070413",1,"fill-color-primary"],["fxFlex","30","viewBox","0 0 373 121","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["x1","50%","y1","100%","x2","50%","y2","8.86848147e-15%","id","linearGradient-1"],["id","LoopOut_Step03","transform","translate(-460.000000, -210.000000)"],["id","Loop_Step03","transform","translate(460.000000, 210.000000)"],["id","Oval","fill-rule","nonzero","cx","330.487742","cy","57.4877419","r","42.4877419",1,"fill-color-2"],["d","M345.082742,43.5000036 C349.446821,43.5000036 352.999928,40.1343958 352.999928,36.0000215 C352.999928,31.8656472 349.446821,28.5000393 345.082742,28.5000393 C341.98433,28.5000393 339.560889,30.4359631 337.999964,32.1843872 C336.43904,30.4359631 334.015599,28.5000393 330.917187,28.5000393 C326.553107,28.5000393 323,31.8656472 323,36.0000215 C323,40.1343958 326.553107,43.5000036 330.917187,43.5000036 C334.015599,43.5000036 336.43904,41.5640798 337.999964,39.8156557 C339.560889,41.5640798 341.98433,43.5000036 345.082742,43.5000036 Z M330.917187,39.0000143 C329.032807,39.0000143 327.499989,37.6546959 327.499989,36.0000286 C327.499989,34.3453471 329.032807,33.0000286 330.917187,33.0000286 C332.707771,33.0000286 334.357776,34.6921938 335.323426,36.0000286 C334.36716,37.2937501 332.703102,39.0000143 330.917187,39.0000143 Z M345.082742,39.0000143 C343.292157,39.0000143 341.642152,37.3078492 340.676502,36.0000286 C341.632768,34.7062929 343.296827,33.0000286 345.082742,33.0000286 C346.967121,33.0000286 348.499939,34.3453471 348.499939,36.0000286 C348.499939,37.6546959 346.967121,39.0000143 345.082742,39.0000143 Z","id","i","fill-rule","nonzero",1,"fill-color-primary"],["id","Group-44","transform","translate(113.000000, 79.000000)","fill-rule","nonzero"],["id","Path","transform","translate(118.400000, 7.089946) scale(-1, 1) translate(-118.400000, -7.089946) ","points","234.731878 6.60770626 8.52651283e-14 6.60770626 8.52651283e-14 7.57218541 236.8 7.57218541",1,"fill-color-19"],["id","Path","transform","translate(118.400000, 8.960000) scale(-1, 1) translate(-118.400000, -8.960000) ","points","113.024 5.376 123.776 5.376 123.776 12.544 113.024 12.544",1,"fill-color-22"],["d","M120.192,8.96 L105.856,8.96 L105.856,1.86517468e-14 L120.192,1.86517468e-14 L120.192,8.96 Z M106.479304,8.57043501 L119.568696,8.57043501 L119.568696,0.389564988 L106.479304,0.389564988 L106.479304,8.57043501 Z","id","Shape","transform","translate(113.024000, 4.480000) scale(-1, 1) translate(-113.024000, -4.480000) ",1,"fill-color-19"],["id","Group-43","transform","translate(265.000000, 50.000000)"],["id","Path","fill-rule","nonzero","points","-9.84073267e-14 7.36243469 92.3919279 7.36243469 92.3919279 70.3073253 -1.13686838e-13 70.3073253",1,"fill-color-23"],["d","M97.5448374,1.70530257e-13 L6.62592538,1.70530257e-13 C6.01615907,0.000922175294 5.52114394,0.495001701 5.52114394,1.104768 L5.52114394,62.57664 C5.52114394,62.8696481 5.63752746,63.150658 5.84471672,63.3578447 C6.05190598,63.5650315 6.3329173,63.681408 6.62592538,63.681408 L97.5448374,63.681408 C97.8378436,63.681408 98.1188523,63.5650282 98.3260389,63.3578415 C98.5332256,63.1506549 98.6496054,62.8696462 98.6496054,62.57664 L98.6496054,1.104768 C98.6496054,0.495005713 98.1545997,0.000926622272 97.5448374,1.70530257e-13 L97.5448374,1.70530257e-13 Z M97.9130952,62.57664 C97.9130952,62.6744022 97.8747043,62.7682496 97.8055756,62.8373783 C97.736447,62.9065069 97.6425996,62.9448978 97.5448374,62.9448978 L6.62592538,62.9448978 C6.52816341,62.9448978 6.4343164,62.906506 6.3651879,62.8373775 C6.29605941,62.768249 6.25766754,62.674402 6.25766754,62.57664 L6.25766754,1.104768 C6.25766754,0.901512883 6.42267026,0.736512 6.62592538,0.736512 L97.5448374,0.736512 C97.7480931,0.736512 97.9130952,0.901512271 97.9130952,1.104768 L97.9130952,62.57664 Z","id","Shape","fill-rule","nonzero",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","10.3066764","y","43.4358624","width","41.5947948","height","4.78524211","rx","0.5376",1,"fill-color-19"],["d","M89.8141359,39.3872559 L76.5649839,39.3872559 C76.2719769,39.3872559 75.9909677,39.5036372 75.7837792,39.7108232 C75.5765907,39.9180091 75.4602025,40.1990169 75.4602025,40.4920239 L75.4602025,50.7978159 C75.4602025,51.090824 75.576586,51.3718339 75.7837753,51.5790207 C75.9909645,51.7862074 76.2719759,51.9025839 76.5649839,51.9025839 L89.8141359,51.9025839 C90.107143,51.9025839 90.3881533,51.7862079 90.5953406,51.5790206 C90.8025279,51.3718333 90.9189039,51.090823 90.9189039,50.7978159 L90.9189039,40.4920239 C90.9189039,40.199018 90.8025232,39.9180097 90.5953367,39.7108232 C90.3881502,39.5036367 90.1071419,39.3872559 89.8141359,39.3872559 Z M90.1823938,50.7978159 C90.182087,51.0010717 90.0173917,51.165767 89.8141359,51.1660719 L76.5649839,51.1660719 C76.3617256,51.165767 76.1970256,51.0010743 76.19671,50.7978159 L76.19671,40.4920239 C76.1964064,40.3942603 76.2351088,40.3004129 76.30424,40.2312847 C76.3733712,40.1621565 76.4672203,40.1234582 76.5649839,40.1237661 L89.8141359,40.1237661 C89.9118981,40.1234582 90.0057456,40.162157 90.0748742,40.2312857 C90.1440029,40.3004143 90.1827017,40.3942617 90.1823938,40.4920239 L90.1823938,50.7978159 Z","id","Shape","fill-rule","nonzero",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","41.7652758","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","44.7100416","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","47.6548047","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","11.4109632","y","4.41773875","width","19.1409684","height","8.09810266","rx","0.5376",1,"fill-color-19"],["id","Oval","fill-rule","nonzero","cx","47.2929593","cy","42.2294561","r","12.9683743",1,"fill-color-3"],["d","M50.1798649,51.9764517 C43.6553251,51.9764517 37.7732336,48.0461636 35.2764005,42.0182748 C32.7795674,35.990386 34.1597014,29.0519859 38.773248,24.4384399 C43.3867946,19.824894 50.3251948,18.4447609 56.3530833,20.9415948 C62.3809718,23.4384287 66.3112582,29.3205207 66.3112582,35.8450605 C66.3011721,44.7500015 59.0848059,51.9663668 50.1798649,51.9764517 L50.1798649,51.9764517 Z M50.1798649,19.9245354 C41.3872016,19.9245354 34.2593397,27.0523972 34.2593397,35.8450605 C34.2593397,44.6377237 41.3872016,51.7655856 50.1798649,51.7655856 C58.9725281,51.7655856 66.10039,44.6377237 66.10039,35.8450605 C66.0904567,27.056515 58.9684103,19.9344686 50.1798649,19.9245354 L50.1798649,19.9245354 Z","id","Shape","fill-rule","nonzero",1,"fill-color-primary"],["id","Group-23","transform","translate(5.000000, 0.001193)"],["id","Group-22"],["id","Group","transform","translate(0.378134, 0.000000)"],["id","Group-24","transform","translate(29.048000, 19.712000)"],["d","M46.60483,51.432122 C46.8713708,51.432122 47.1252368,51.2924832 47.2648756,51.0513229 L52.8499289,41.4044125 C53.145042,40.8998413 52.7801095,40.2620153 52.1930443,40.2620153 L48.5310139,40.2620153 L49.8828693,36.1430446 C50.0098023,35.6606929 49.6448699,35.184694 49.1466515,35.184694 L44.5770624,35.184694 C44.1962633,35.184694 43.8725779,35.4671324 43.8218171,35.8447396 L42.8063528,43.4607214 C42.7460473,43.9176927 43.1014659,44.3238722 43.5615982,44.3238722 L47.3283421,44.3238722 L45.8654203,50.4959909 C45.751193,50.9783426 46.1192864,51.432122 46.60483,51.432122 Z","id","b","fill-rule","nonzero","transform","translate(47.877046, 43.308408) rotate(14.000000) translate(-47.877046, -43.308408) ",1,"fill-color-12"],["id","Group-34","fill-rule","nonzero"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","17.5648113","r","8.78679245"],["id","Oval","cx","76.317438","cy","17.5648113","r","8.15070413",1,"fill-color-primary"],["id","Rectangle","x","9.82759671","y","7.10932665","width","122.322231","height","69.0022838",1,"fill-color-8"],["id","Path","opacity","0.222721354","points","97.1677755 76.1116475 9.82763376 76.1116475 9.82763376 7.10937149",1,"fill-color-18"],["id","Oval","cx","28.9673627","cy","59.1901502","r","11.7579927",1,"fill-color-8"],["id","Rectangle","x","99.4252759","y","44.3228077","width","11.4262324","height","2.38757043",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","25.733862","width","39.05384","height","1.0232453",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","28.9741379","width","39.05384","height","1.0232453",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","32.2144137","width","39.05384","height","1.0232453",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","35.4546875","width","39.05384","height","1.0232453",1,"fill-color-14"],["id","Rectangle","x","85.6114731","y","38.6949634","width","39.05384","height","1.0232453",1,"fill-color-14"],["d","M88.0406297,103.870828 C88.3071704,103.870828 88.5610365,103.731189 88.7006752,103.490029 L94.2857286,93.8431185 C94.5808417,93.3385473 94.2159092,92.7007212 93.6288439,92.7007212 L89.9668136,92.7007212 L91.318669,88.5817505 C91.445602,88.0993988 91.0806695,87.6234 90.5824512,87.6234 L86.0128621,87.6234 C85.632063,87.6234 85.3083776,87.9058383 85.2576168,88.2834455 L84.2421525,95.8994274 C84.1818469,96.3563987 84.5372656,96.7625782 84.9973979,96.7625782 L88.7641417,96.7625782 L87.30122,102.934697 C87.1869926,103.417048 87.555086,103.870828 88.0406297,103.870828 Z","id","b","transform","translate(89.312846, 95.747114) rotate(14.000000) translate(-89.312846, -95.747114) ",1,"fill-color-12"],["fxFlex","30","viewBox","0 0 278 118","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","LoopOut_Step04","transform","translate(-503.000000, -212.000000)"],["id","Loop_Step04","transform","translate(503.000000, 212.000000)"],["id","Loop","fill-rule","nonzero"],["id","Group-16","transform","translate(24.000000, 0.000000)"],["d","M55.0827415,28.5000036 C59.4468211,28.5000036 62.9999285,25.1343958 62.9999285,21.0000215 C62.9999285,16.8656472 59.4468211,13.5000393 55.0827415,13.5000393 C51.9843297,13.5000393 49.5608889,15.4359631 47.9999642,17.1843872 C46.4390396,15.4359631 44.0155987,13.5000393 40.9171869,13.5000393 C36.5531074,13.5000393 33,16.8656472 33,21.0000215 C33,25.1343958 36.5531074,28.5000036 40.9171869,28.5000036 C44.0155987,28.5000036 46.4390396,26.5640798 47.9999642,24.8156557 C49.5608889,26.5640798 51.9843297,28.5000036 55.0827415,28.5000036 Z M40.9171869,24.0000143 C39.0328073,24.0000143 37.4999893,22.6546959 37.4999893,21.0000286 C37.4999893,19.3453471 39.0328073,18.0000286 40.9171869,18.0000286 C42.707771,18.0000286 44.3577763,19.6921938 45.3234264,21.0000286 C44.3671604,22.2937501 42.7031019,24.0000143 40.9171869,24.0000143 Z M55.0827415,24.0000143 C53.2921574,24.0000143 51.6421522,22.3078492 50.676502,21.0000286 C51.6327681,19.7062929 53.2968266,18.0000286 55.0827415,18.0000286 C56.9671212,18.0000286 58.4999392,19.3453471 58.4999392,21.0000286 C58.4999392,22.6546959 56.9671212,24.0000143 55.0827415,24.0000143 Z","id","i",1,"fill-color-primary"],["id","Oval","cx","48.644129","cy","75.1589677","rx","48.644129","ry","6.61766437",1,"fill-color-2"],["id","Group-44","transform","translate(27.000000, 69.000000)","fill-rule","nonzero"],["id","Path","transform","translate(118.400000, 8.960000) scale(-1, 1) translate(-118.400000, -8.960000) ","points","113.024 5.376 123.776 5.376 123.776 12.544 113.024 12.544",1,"fill-color-23"],["id","Group-43","transform","translate(179.000000, 40.000000)"],["id","Oval","fill-rule","nonzero","cx","47.2929593","cy","42.2294561","r","12.9683743",1,"fill-color-4"],["d","M46.519593,50.6740439 L46.519593,48.5460252 C46.9395628,48.5560039 47.349554,48.5560039 47.739557,48.5560039 L47.739557,50.6740439 L49.2794877,50.6740439 L49.2794877,48.5160274 C51.8593644,48.3760168 53.5840235,47.7260428 53.8140277,45.2961554 C53.9939838,43.3462645 53.0739982,42.476265 51.6140824,42.1263004 C52.4940295,41.6763328 53.054041,40.8763386 52.92404,39.5463928 C52.7540005,37.7264719 51.2593765,37.1164744 49.2794567,36.9465279 L49.2794567,34.4266159 L47.739526,34.4266159 L47.739526,36.8765226 C47.3395134,36.8765226 46.9295222,36.8865012 46.519562,36.8965108 L46.519562,34.4266159 L44.9796003,34.4266159 L44.9796003,36.9465279 C44.413422,36.9636341 43.7539962,36.9552669 41.8897293,36.9465279 L41.8897293,38.5864308 C43.1055717,38.564924 43.7434908,38.4867995 43.8896683,39.2663716 L43.8896683,46.1661239 C43.7968547,46.7846435 43.3018283,46.6955796 42.1997174,46.6760872 L41.8897293,48.5060178 C44.6975648,48.5060178 44.9796313,48.5160274 44.9796313,48.5160274 L44.9796313,50.6740439 L46.519593,50.6740439 Z M46.5495908,41.7662953 L46.5495908,38.6964125 C47.4195593,38.6964125 50.1394466,38.4264629 50.1394466,40.2363742 C50.1394466,41.9663016 47.4195903,41.7662953 46.5495908,41.7662953 Z M46.5495908,46.6860969 L46.5495908,43.306257 C47.5895368,43.306257 50.7741427,43.0162572 50.7741427,44.9962079 C50.7741427,46.9060914 47.5895368,46.6860969 46.5495908,46.6860969 Z","id","B","fill-rule","nonzero","transform","translate(47.863077, 42.550330) rotate(14.000000) translate(-47.863077, -42.550330) ",1,"fill-color-29"],["fxFlex","30","viewBox","0 0 200 120","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","LoopOut_Step05","transform","translate(-542.000000, -210.000000)","fill-rule","nonzero"],["id","Loop_Step05","transform","translate(542.000000, 210.000000)"],["id","Rectangle","x","0","y","0","width","81.4032636","height","90.8547569",1,"fill-color-11"],["id","Rectangle","x","1.34483737","y","60.660286","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","67.352783","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Oval","cx","68.9135074","cy","74.4889377","r","7.35996418",1,"fill-color-primary-darker"],["id","Rectangle","x","1.34483737","y","31.345208","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","38.0377051","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Oval","cx","68.9135074","cy","45.1758404","r","7.35996418",1,"fill-color-primary-darker"],["id","Rectangle","x","1.34483737","y","2.03013005","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","8.72460769","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Rectangle","x","7.80560248","y","67.352783","width","23.1164179","height","14.4584872",1,"fill-color-primary"],["id","Rectangle","x","7.80560248","y","38.0377051","width","33.2298507","height","14.4584872",1,"fill-color-primary"],["id","Rectangle","x","7.80560248","y","8.72460769","width","23.1164179","height","14.4584872",1,"fill-color-primary"],["id","Oval","cx","68.9135074","cy","15.8607624","r","7.93434243",1,"fill-color-31"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","45.3719212","r","7.93434243"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","74.6850186","r","7.93434243"],["id","Group-16","transform","translate(55.804478, 34.674627)"],["id","Group-29","transform","translate(0.310627, 0.751284)"],["id","Group"],["d","M132.777455,1.04124409 L82.2582659,1.04124409 L82.2582659,0 L59.3509036,0 L59.3509036,1.04124409 L8.62346042,1.04124409 C7.71715136,1.04124358 6.84796221,1.40127322 6.20710493,2.0421305 C5.56624765,2.68298778 5.20621852,3.55217693 5.20621852,4.45848599 L5.20621852,73.6347918 C5.20621852,74.5411031 5.56624437,75.4102953 6.2071016,76.0511558 C6.84795882,76.6920163 7.71714912,77.0520512 8.62346042,77.0520512 L132.777455,77.0520512 C134.664749,77.0520512 136.194697,75.522091 136.194697,73.6347977 L136.194697,4.45848599 C136.194697,3.55217693 135.834668,2.68298778 135.193811,2.0421305 C134.552953,1.40127322 133.683764,1.04124358 132.777455,1.04124409 Z","id","Path",1,"fill-color-20"],["id","Rectangle","x","9.78769098","y","7.08045867","width","121.825532","height","68.7220946",1,"fill-color-7"],["id","Path","opacity","0.306775484","points","96.7732181 75.8025901 9.78772787 75.8025901 9.78772787 7.08050333",1,"fill-color-27"],["id","Group-24","transform","translate(16.889738, 38.617955)",1,"fill-color-primary-darker"],["d","M14.5668332,29.1332406 C8.67527117,29.1332406 3.36383033,25.5842492 1.10922733,20.1411555 C-1.14537566,14.6980619 0.100864684,8.43279022 4.26682842,4.26682704 C8.43279215,0.100863866 14.698064,-1.14537564 20.1411573,1.10922807 C25.5842507,3.36383179 29.1332406,8.67527311 29.1332406,14.5668351 C29.124133,22.607864 22.6078621,29.1241341 14.5668332,29.1332406 L14.5668332,29.1332406 Z M14.5668332,0.190838576 C6.62718953,0.190838576 0.190836635,6.62719147 0.190836635,14.5668351 C0.190836635,22.5064788 6.62718953,28.9428317 14.5668332,28.9428317 C22.5064768,28.9428317 28.9428297,22.5064788 28.9428297,14.5668351 C28.9338602,6.63090975 22.5027586,0.199808125 14.5668332,0.190838576 L14.5668332,0.190838576 Z","id","Shape"],["id","Rectangle","x","99.0215517","y","44.1428314","width","11.3798353","height","2.37787551",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","25.6293676","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","28.8564861","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","32.0836045","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","35.310721","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","38.5378394","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","119.403347","y","8.47469101","width","4.75575295","height","4.75575295",1,"fill-color-5"],["d","M126.367128,15.4384701 L120.592277,15.4384701 L120.592277,9.66361906 L126.367128,9.66361906 L126.367128,15.4384701 Z M120.843366,15.1873981 L126.116048,15.1873981 L126.116048,9.91470857 L120.843366,9.91470857 L120.843366,15.1873981 Z","id","Shape",1,"fill-color-19"],["d","M139.615294,74.5530572 L127.725913,74.5530572 L127.725913,73.6964356 C127.725915,73.6513884 127.708021,73.6081857 127.676168,73.5763323 C127.644315,73.544479 127.601113,73.5265862 127.556065,73.5265862 L123.479706,73.5265862 C123.434659,73.5265862 123.391457,73.5444797 123.359604,73.5763329 C123.327751,73.6081861 123.309857,73.6513886 123.309859,73.6964356 L123.309859,74.5530572 L120.762134,74.5530572 L120.762134,73.6964356 C120.762135,73.6513886 120.744241,73.6081861 120.712388,73.5763329 C120.680536,73.5444797 120.637333,73.5265862 120.592286,73.5265862 L116.515927,73.5265862 C116.47088,73.5265862 116.427677,73.5444789 116.395824,73.5763322 C116.36397,73.6081855 116.346076,73.6513882 116.346078,73.6964356 L116.346078,74.5530572 L113.798355,74.5530572 L113.798355,73.6964356 C113.798356,73.6513882 113.780462,73.6081855 113.748609,73.5763322 C113.716755,73.5444789 113.673553,73.5265862 113.628505,73.5265862 L109.552146,73.5265862 C109.507099,73.5265862 109.463897,73.5444797 109.432044,73.5763329 C109.400191,73.6081861 109.382297,73.6513886 109.382299,73.6964356 L109.382299,74.5530572 L106.834574,74.5530572 L106.834574,73.6964356 C106.834575,73.6513886 106.816681,73.6081861 106.784828,73.5763329 C106.752975,73.5444797 106.709773,73.5265862 106.664726,73.5265862 L102.588363,73.5265862 C102.543316,73.5265862 102.500113,73.544479 102.46826,73.5763323 C102.436407,73.6081857 102.418513,73.6513884 102.418516,73.6964356 L102.418516,74.5530572 L99.8707946,74.5530572 L99.8707946,73.6964356 C99.8707961,73.6513882 99.8529018,73.6081855 99.8210486,73.5763322 C99.7891953,73.5444789 99.7459925,73.5265862 99.7009452,73.5265862 L95.6245878,73.5265862 C95.5795404,73.5265862 95.5363377,73.5444789 95.5044844,73.5763322 C95.4726311,73.6081855 95.4547369,73.6513882 95.4547384,73.6964356 L95.4547384,74.5530572 L92.9070135,74.5530572 L92.9070135,73.6964356 C92.9070151,73.6513886 92.889121,73.6081861 92.8572682,73.5763329 C92.8254153,73.5444797 92.7822131,73.5265862 92.7371661,73.5265862 L88.6608067,73.5265862 C88.6157597,73.5265862 88.5725575,73.5444797 88.5407046,73.5763329 C88.5088518,73.6081861 88.4909577,73.6513886 88.4909593,73.6964356 L88.4909593,74.5530572 L85.9432383,74.5530572 L85.9432383,73.6964356 C85.9432399,73.6513886 85.9253458,73.6081861 85.893493,73.5763329 C85.8616401,73.5444797 85.8184379,73.5265862 85.7733909,73.5265862 L53.8419073,73.5265862 C53.7968603,73.5265862 53.7536581,73.5444797 53.7218052,73.5763329 C53.6899524,73.6081861 53.6720584,73.6513886 53.6720599,73.6964356 L53.6720599,74.5530572 L51.124335,74.5530572 L51.124335,73.6964356 C51.1243366,73.6513882 51.1064423,73.6081855 51.074589,73.5763322 C51.0427358,73.5444789 50.999533,73.5265862 50.9544857,73.5265862 L46.8781379,73.5265862 C46.8330906,73.5265862 46.7898879,73.5444789 46.7580346,73.5763322 C46.7261813,73.6081855 46.708287,73.6513882 46.7082886,73.6964356 L46.7082886,74.5530572 L44.160554,74.5530572 L44.160554,73.6964356 C44.1605561,73.6513884 44.1426622,73.6081857 44.1108092,73.5763323 C44.0789563,73.544479 44.0357537,73.5265862 43.9907066,73.5265862 L39.9143472,73.5265862 C39.8693002,73.5265862 39.8260979,73.5444797 39.7942451,73.5763329 C39.7623922,73.6081861 39.7444982,73.6513886 39.7444998,73.6964356 L39.7444998,74.5530572 L37.1967749,74.5530572 L37.1967749,73.6964356 C37.1967764,73.6513886 37.1788824,73.6081861 37.1470296,73.5763329 C37.1151767,73.5444797 37.0719745,73.5265862 37.0269275,73.5265862 L32.9505681,73.5265862 C32.9055208,73.5265862 32.862318,73.5444789 32.8304647,73.5763322 C32.7986115,73.6081855 32.7807172,73.6513882 32.7807187,73.6964356 L32.7807187,74.5530572 L30.2329958,74.5530572 L30.2329958,73.6964356 C30.2329973,73.6513882 30.215103,73.6081855 30.1832498,73.5763322 C30.1513965,73.5444789 30.1081938,73.5265862 30.0631464,73.5265862 L25.986787,73.5265862 C25.94174,73.5265862 25.8985378,73.5444797 25.866685,73.5763329 C25.8348321,73.6081861 25.8169381,73.6513886 25.8169396,73.6964356 L25.8169396,74.5530572 L23.2692109,74.5530572 L23.2692109,73.6964356 C23.2692124,73.6513886 23.2513184,73.6081861 23.2194655,73.5763329 C23.1876127,73.5444797 23.1444104,73.5265862 23.0993634,73.5265862 L19.0230079,73.5265862 C18.9779608,73.5265862 18.9347582,73.544479 18.9029053,73.5763323 C18.8710523,73.6081857 18.8531585,73.6513884 18.8531605,73.6964356 L18.8531605,74.5530572 L16.3054357,74.5530572 L16.3054357,73.6964356 C16.3054372,73.6513882 16.2875429,73.6081855 16.2556896,73.5763322 C16.2238364,73.5444789 16.1806336,73.5265862 16.1355863,73.5265862 L12.0592288,73.5265862 C12.0141815,73.5265862 11.9709788,73.5444789 11.9391255,73.5763322 C11.9072722,73.6081855 11.8893779,73.6513882 11.8893795,73.6964356 L11.8893795,74.5530572 L4.07635746,74.5530572 C1.82504753,74.5530594 0,76.3781067 0,78.6294166 L0,80.4726504 C0,82.7239563 1.82505163,84.5489982 4.07635746,84.5489982 L139.615294,84.5489982 C141.8666,84.5489982 143.691654,82.7239566 143.691654,80.4726504 L143.691654,78.6294166 C143.691654,76.3781064 141.866605,74.5530594 139.615294,74.5530572 Z","id","Path",1,"fill-color-20"],["id","Group","transform","translate(14.563343, 25.890388)"],["d","M34.1898756,18.6935074 C34.8335754,18.7760331 35.5015474,18.8284611 36.1180622,18.6284578 C36.2151512,18.5983603 36.321949,18.5313689 36.3122401,18.4342799 C36.3052976,18.3990002 36.2903506,18.3657846 36.2685501,18.337191 C36.0361522,17.9886397 35.8409087,17.6167008 35.6860164,17.2274642 C35.6798777,17.2071636 35.6672606,17.1894314 35.6500935,17.176978 C35.6300188,17.1697099 35.6080312,17.1697099 35.5879565,17.176978 C35.3034859,17.2517365 35.0578508,17.4352346 34.775322,17.5138766 C34.6312683,17.5533966 34.4809179,17.5646069 34.3325963,17.5468869 C34.2044389,17.5323235 34.0296788,17.4264966 33.9131721,17.440089 C33.9791925,17.8643678 34.1403602,18.2604907 34.1898756,18.6935074 Z","id","Path",1,"fill-color-primary-darker"],["d","M46.3638597,17.6187327 C46.7881384,17.3274658 47.2279514,17.0216356 47.4784409,16.5721138 C47.4963243,16.5452282 47.5067138,16.5140596 47.5085385,16.481821 C47.5042662,16.4500929 47.4918946,16.4199997 47.4726155,16.394441 C47.2340087,16.0151166 46.9268212,15.6835648 46.5667756,15.4167552 C46.3789189,15.549458 46.2091963,15.7061249 46.061913,15.8827822 C45.9551152,15.9954054 45.6599648,16.1740491 45.6570521,16.3458965 C45.6570521,16.4429855 45.7696753,16.5556086 45.8221033,16.6371634 C45.8929782,16.7420194 45.9599696,16.8488173 46.0240483,16.9575569 C46.0609421,17.0109558 46.3978408,17.5973731 46.3638597,17.6187327 Z","id","Path",1,"fill-color-primary-darker"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2730042,20.0320475 30.3444715,19.9740213 30.423795,19.9284789 L30.7548683,19.7148832 C30.9101158,19.6051008 31.0788103,19.515696 31.2568182,19.4488595 C31.3878883,19.4061404 31.5267255,19.3876935 31.6597374,19.3517706 C32.1247935,19.215846 32.4801391,18.846908 32.8102415,18.4925333 L33.2607343,18.011943 C33.3028503,17.9590638 33.3562578,17.9162715 33.4170475,17.8866982 C33.4795282,17.8658617 33.5459388,17.8595527 33.6112254,17.8682513 C34.0488232,17.8994947 34.4713668,18.041122 34.8394007,18.2799085 C34.9334629,18.3504651 35.0350556,18.4103788 35.1423182,18.4585522 C35.4064002,18.5614665 35.7452406,18.4837953 35.9889339,18.3536961 C36.1044698,18.2915592 36.0792267,18.2566071 36.1277711,18.1459257 C36.1763156,18.0352443 36.2947641,17.9643694 36.3976784,18.0653419 C36.4287289,18.1002598 36.4507324,18.1422664 36.4617571,18.187674 C36.5588461,18.5080675 36.5219523,18.8527333 36.5219523,19.1886611 C36.519104,19.2411857 36.5256803,19.2937961 36.5413701,19.3440034 C36.566144,19.3946232 36.5957307,19.4427421 36.629721,19.4876951 C36.6366398,19.4995928 36.642801,19.5119152 36.6481679,19.5245889 C36.7075588,19.673314 36.7298837,19.8342531 36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary-darker"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2645691,20.2100369 30.3024338,20.3556704 30.3354441,20.4080984 C30.4256618,20.5652773 30.5791886,20.6760005 30.7568101,20.7119868 C30.8882242,20.7200556 31.0199808,20.7032567 31.1451659,20.6624715 C31.9607132,20.4605264 32.8277175,20.4576138 33.6112254,20.1517835 C33.8801618,20.0459566 34.1364767,19.9051776 34.4190055,19.8410989 C34.7015344,19.7770202 35.0015392,19.7944962 35.2928061,19.770224 C35.7530078,19.7333301 36.1986461,19.5944929 36.6520515,19.5216762 C36.7105975,19.6716231 36.7315958,19.83361 36.7132175,19.9935285 L36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary-darker"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.3279723,20.332004 43.3179103,20.2563656 43.3356552,20.1847938 C43.3626747,20.1059564 43.4090817,20.0351774 43.4706088,19.9789652 C43.5770067,19.8683202 43.6912186,19.7654647 43.8123619,19.6711932 C43.9785829,19.5639234 44.1283649,19.4331094 44.2570293,19.2828374 C44.335968,19.1640934 44.3940832,19.0327597 44.4288768,18.8944816 C44.4976483,18.652227 44.5396476,18.4031617 44.5541216,18.1517511 C44.5535898,17.9846963 44.5708393,17.8180593 44.6055787,17.6546556 C44.6774245,17.3983408 44.8677189,17.1692108 44.8463593,16.904158 C44.8377185,16.866204 44.8411119,16.8265011 44.8560682,16.7905639 C44.8786704,16.7624825 44.9101823,16.7429588 44.94539,16.7352232 C45.0937604,16.6760869 45.2502282,16.6397523 45.4094752,16.6274545 C45.571226,16.6162976 45.7294484,16.6783037 45.8405502,16.7963893 C45.9065707,16.8760022 45.9502607,16.9905672 46.0473497,17.0216356 C46.0954598,17.0347655 46.1459295,17.0367577 46.1949249,17.027461 C46.4337637,17.0031887 46.686195,16.9730912 46.8745476,16.8187197 C47.0505482,16.6608586 47.152616,16.4366614 47.1561056,16.2002631 C47.1561056,16.1119121 47.1162991,16.0196776 47.2531945,16.0060852 C47.3561088,15.9924927 47.4376635,16.1031741 47.4900916,16.1711364 C47.679415,16.4245386 47.8735929,16.6895914 47.9444679,16.9983343 C47.9720312,16.9876362 48.0013112,16.9820434 48.030877,16.9818292 C48.1537854,16.9807475 48.2694521,17.0398499 48.3405908,17.1400842 C48.4179108,17.2653269 48.447872,17.4140998 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary-darker"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.4548211,20.3526902 43.5541213,20.3288581 43.6550778,20.3265437 C43.86479,20.3381943 44.0181905,20.5362558 44.2191647,20.5974219 C44.5055771,20.683831 44.7910186,20.481886 45.0813146,20.4129528 C45.270638,20.3682919 45.4696704,20.3799426 45.6570521,20.3158639 C45.8132081,20.2555144 45.9574928,20.168089 46.0832726,20.0576073 C46.2556706,19.9343474 46.4090818,19.786497 46.5386198,19.6187652 C46.646198,19.4510234 46.735696,19.2723528 46.8056144,19.0857468 C46.9589198,18.7281302 47.1393856,18.3827784 47.345429,18.0527203 C47.375905,18.0004629 47.4127576,17.9521958 47.4551395,17.9090287 C47.5007713,17.8672804 47.5522285,17.8381537 47.6036856,17.8012599 C47.7978635,17.6546556 47.8784474,17.4129041 47.9464096,17.1760071 C47.9648208,17.1040024 47.9905203,17.0340608 48.0231099,16.9672512 C48.1460183,16.9661841 48.2616849,17.0252865 48.3328237,17.1255208 C48.4163608,17.2537243 48.4492363,17.4084124 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary-darker"],["d","M54.316416,4.55250111 L54.316416,3.34665629 C54.316416,1.49819202 52.8172532,0 50.9687888,0 L3.34762718,0 C1.49916283,0 0,1.49819202 0,3.34665629 L0,5.56999336 L54.316416,4.55250111 Z","id","Path",1,"fill-color-16"],["d","M55.6018738,5.73601547 L55.6018738,39.231705 C55.6018738,39.9999836 55.2966099,40.7367813 54.7532639,41.2799452 C54.2099179,41.8231092 53.4730179,42.1278687 52.7047393,42.1278687 L2.89810531,42.1278687 C1.29897753,42.1273325 0.00291266866,40.8308329 0.00291266866,39.231705 L0.00291266866,2.35926161 C1.43012031,2.88936731 1.43012031,2.88936731 2.89810531,2.84470639 L52.7047393,2.84470639 C54.3025103,2.84470316 55.5986611,4.13824772 55.6018738,5.73601547 Z","id","Path","opacity","0.1",1,"fill-color-27"],["d","M55.6018738,6.16223599 L55.6018738,39.6579255 C55.6018738,41.2575895 54.3044034,42.5540891 52.7047393,42.5540891 L2.89810531,42.5540891 C1.29897753,42.553553 0.00291266866,41.2570534 0.00291266866,39.6579255 L0.00291266866,2.78451124 C1.43012031,3.31364604 1.43012031,3.31364604 2.89810531,3.26995601 L52.7047393,3.26995601 C54.3028886,3.26995377 55.5991959,4.56408894 55.6018738,6.16223599 Z","id","Path",1,"fill-color-19"],["d","M55.4601239,18.5459322 L55.4601239,29.2577567 L45.0716057,29.2577567 C42.141738,29.2183086 39.7873207,26.8319777 39.7873207,23.9018444 C39.7873207,20.9717112 42.141738,18.5853803 45.0716057,18.5459322 L55.4601239,18.5459322 Z","id","Path","opacity","0.1",1,"fill-color-27"],["d","M55.6018738,18.2604907 L55.6018738,28.9742569 L45.2133556,28.9742569 C42.2834879,28.9348088 39.9290706,26.5484779 39.9290706,23.6183447 C39.9290706,20.6882114 42.2834879,18.3018806 45.2133556,18.2624325 L55.6018738,18.2604907 Z","id","Path",1,"fill-color-17"],["id","Oval","opacity","0.1","cx","45.7114219","cy","23.9023299","r","2.08838343",1,"fill-color-27"],["id","Oval","cx","45.8531718","cy","23.6188301","r","2.08838343",1,"fill-color-28"],["d","M37.114137,56.485738 L37.114137,54.3663604 C37.5324015,54.3762985 37.9407279,54.3762985 38.3291472,54.3762985 L38.3291472,56.485738 L39.8628249,56.485738 L39.8628249,54.3364843 C42.4322258,54.1970423 44.1498818,53.5497076 44.378952,51.1296869 C44.5581774,49.1877136 43.6419275,48.3212469 42.1879398,47.9727034 C43.0643138,47.5245628 43.6220513,46.7278171 43.4925782,45.4032717 C43.3232292,43.5907407 41.8346742,42.9832201 39.8627941,42.8139637 L39.8627941,40.3042841 L38.3291164,40.3042841 L38.3291164,42.7442427 C37.9307281,42.7442427 37.5224017,42.7541808 37.1141061,42.7641498 L37.1141061,40.3042841 L35.5803975,40.3042841 L35.5803975,42.8139637 C35.0165182,42.8310005 34.3597701,42.8226673 32.5030732,42.8139637 L32.5030732,44.4472076 C33.7139786,44.4257882 34.3493073,44.3479809 34.4948913,45.1243875 L34.4948913,51.9961228 C34.4024546,52.6121309 33.9094382,52.5234287 32.8118025,52.5040154 L32.5030732,54.3265154 L33.46474,54.3269705 C35.3673259,54.328922 35.5804284,54.3364843 35.5804284,54.3364843 L35.5804284,56.485738 L37.114137,56.485738 Z M37.144013,47.6141601 L37.144013,44.5567428 C38.0104489,44.5567428 40.7192919,44.2878893 40.7192919,46.0904514 C40.7192919,47.8133542 38.0104798,47.6141601 37.144013,47.6141601 Z M37.144013,52.5139844 L37.144013,49.1478686 C38.1797362,49.1478686 41.3514108,48.8590464 41.3514108,50.8309574 C41.3514108,52.7330856 38.1797362,52.5139844 37.144013,52.5139844 Z","id","b","transform","translate(38.452166, 48.395011) rotate(14.000000) translate(-38.452166, -48.395011) ",1,"fill-color-30"]],template:function(be,qe){if(1&be&&(o.YNc(0,q,1,0,"ng-container",0),o.YNc(1,we,32,5,"ng-template",null,1,o.W1O),o.YNc(3,Ae,51,5,"ng-template",null,2,o.W1O),o.YNc(5,le,74,5,"ng-template",null,3,o.W1O),o.YNc(7,We,53,5,"ng-template",null,4,o.W1O),o.YNc(9,yt,66,5,"ng-template",null,5,o.W1O)),2&be){const vt=o.MAs(2),me=o.MAs(4),$e=o.MAs(6),St=o.MAs(8),Rt=o.MAs(10);o.Q6J("ngTemplateOutlet",1===qe.stepNumber?vt:2===qe.stepNumber?me:3===qe.stepNumber?$e:4===qe.stepNumber?St:Rt)}},directives:[R.tP,U.xw,U.yH,U.Wh,R.mk,_e.oO,G.n5,G.$j],styles:["svg.small-svg[_ngcontent-%COMP%]{height:50%;min-height:50%;max-width:100%}svg.large-svg[_ngcontent-%COMP%]{height:60%;min-height:60%;max-width:100%}"],data:{animation:[Fe.l]}}),Ke})();function Ve(Ke,mt){1&Ke&&o.GkF(0)}const ue=function(Ke,mt){return{"small-svg":Ke,"large-svg":mt}};function Te(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",7),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"g",8),o.TgZ(5,"g",9),o.TgZ(6,"g",10),o.TgZ(7,"g",11),o._UZ(8,"circle",12),o._UZ(9,"path",13),o.qZA(),o.TgZ(10,"g",14),o._UZ(11,"ellipse",15),o._UZ(12,"ellipse",16),o._UZ(13,"rect",17),o._UZ(14,"rect",18),o._UZ(15,"rect",19),o._UZ(16,"rect",20),o._UZ(17,"rect",21),o._UZ(18,"rect",22),o._UZ(19,"rect",23),o._UZ(20,"rect",24),o._UZ(21,"rect",25),o._UZ(22,"rect",26),o._UZ(23,"rect",27),o._UZ(24,"rect",28),o._UZ(25,"rect",29),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(26,"div",30),o.TgZ(27,"mat-card-title"),o._uU(28,"Loop In explained."),o.qZA(),o.qZA(),o.TgZ(29,"div",31),o.TgZ(30,"mat-card-subtitle",32),o._uU(31," Lightning Loop is a non custodial service offered by Lightning Labs to bridge on-chain and off-chain Bitcoin using Submarine swaps. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,ue,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}function ke(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",33),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"defs"),o.TgZ(5,"linearGradient",34),o._UZ(6,"stop",35),o._UZ(7,"stop",36),o._UZ(8,"stop",37),o.qZA(),o.qZA(),o.TgZ(9,"g",8),o.TgZ(10,"g",38),o.TgZ(11,"g",39),o.TgZ(12,"g",40),o._UZ(13,"rect",41),o._UZ(14,"rect",42),o._UZ(15,"rect",43),o._UZ(16,"circle",44),o._UZ(17,"rect",45),o._UZ(18,"rect",46),o._UZ(19,"circle",47),o._UZ(20,"rect",48),o._UZ(21,"rect",49),o._UZ(22,"rect",50),o._UZ(23,"rect",51),o._UZ(24,"rect",52),o._UZ(25,"circle",53),o._UZ(26,"circle",54),o._UZ(27,"circle",55),o.qZA(),o.TgZ(28,"g",56),o.TgZ(29,"g",57),o.TgZ(30,"g",58),o._UZ(31,"path",59),o._UZ(32,"rect",60),o._UZ(33,"polygon",61),o.TgZ(34,"g",62),o._UZ(35,"path",63),o.qZA(),o._UZ(36,"rect",64),o._UZ(37,"rect",65),o._UZ(38,"rect",66),o._UZ(39,"rect",67),o._UZ(40,"rect",68),o._UZ(41,"rect",69),o._UZ(42,"rect",70),o._UZ(43,"path",71),o._UZ(44,"path",72),o.qZA(),o.TgZ(45,"g",73),o._UZ(46,"path",74),o._UZ(47,"path",75),o._UZ(48,"path",76),o._UZ(49,"path",77),o._UZ(50,"path",78),o._UZ(51,"path",79),o._UZ(52,"path",80),o._UZ(53,"path",81),o._UZ(54,"path",82),o._UZ(55,"path",83),o._UZ(56,"path",84),o._UZ(57,"circle",85),o._UZ(58,"circle",86),o.qZA(),o._UZ(59,"path",87),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(60,"div",30),o.TgZ(61,"mat-card-title"),o._uU(62,"Step 1: Deciding to Loop In"),o.qZA(),o.qZA(),o.TgZ(63,"div",31),o.TgZ(64,"mat-card-subtitle",32),o._uU(65," Your outgoing capacity is depleted and you want to regain it without opening new channels. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,ue,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}function Y(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",88),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"defs"),o.TgZ(5,"linearGradient",89),o._UZ(6,"stop",35),o._UZ(7,"stop",36),o._UZ(8,"stop",37),o.qZA(),o.qZA(),o.TgZ(9,"g",90),o.TgZ(10,"g",91),o.TgZ(11,"g",92),o.TgZ(12,"g",93),o.TgZ(13,"g",94),o._UZ(14,"circle",95),o._UZ(15,"path",96),o.TgZ(16,"g",97),o._UZ(17,"polygon",98),o._UZ(18,"polygon",99),o._UZ(19,"path",100),o.qZA(),o.TgZ(20,"g",101),o._UZ(21,"polygon",102),o._UZ(22,"path",103),o._UZ(23,"rect",104),o._UZ(24,"path",105),o._UZ(25,"rect",106),o._UZ(26,"rect",107),o._UZ(27,"rect",108),o._UZ(28,"rect",109),o._UZ(29,"circle",110),o._UZ(30,"path",111),o.TgZ(31,"g",112),o.TgZ(32,"g",113),o._UZ(33,"g",114),o.qZA(),o._UZ(34,"g",115),o.qZA(),o.qZA(),o.qZA(),o.TgZ(35,"g",116),o.TgZ(36,"g",40),o._UZ(37,"rect",117),o._UZ(38,"rect",42),o._UZ(39,"rect",43),o._UZ(40,"circle",118),o._UZ(41,"rect",45),o._UZ(42,"rect",46),o._UZ(43,"circle",119),o._UZ(44,"rect",48),o._UZ(45,"rect",49),o._UZ(46,"rect",50),o._UZ(47,"rect",51),o._UZ(48,"rect",52),o._UZ(49,"circle",120),o._UZ(50,"circle",54),o._UZ(51,"circle",55),o._UZ(52,"circle",121),o.qZA(),o.TgZ(53,"g",56),o.TgZ(54,"g",57),o.TgZ(55,"g",58),o._UZ(56,"path",59),o._UZ(57,"rect",60),o._UZ(58,"polygon",61),o.TgZ(59,"g",122),o._UZ(60,"path",63),o.qZA(),o._UZ(61,"rect",123),o._UZ(62,"rect",124),o._UZ(63,"rect",125),o._UZ(64,"rect",126),o._UZ(65,"rect",127),o._UZ(66,"rect",128),o._UZ(67,"rect",129),o._UZ(68,"path",130),o._UZ(69,"path",72),o.qZA(),o.TgZ(70,"g",73),o._UZ(71,"path",131),o._UZ(72,"path",132),o._UZ(73,"path",133),o._UZ(74,"path",134),o._UZ(75,"path",135),o._UZ(76,"path",136),o._UZ(77,"path",80),o._UZ(78,"path",81),o._UZ(79,"path",137),o._UZ(80,"path",83),o._UZ(81,"path",138),o._UZ(82,"circle",85),o._UZ(83,"circle",86),o.qZA(),o._UZ(84,"path",139),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o._UZ(85,"path",140),o._UZ(86,"path",141),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(87,"div",30),o.TgZ(88,"mat-card-title"),o._uU(89,"Step 2: Send payment out"),o.qZA(),o.qZA(),o.TgZ(90,"div",31),o.TgZ(91,"mat-card-subtitle",32),o._uU(92," Your node sends funds on-chain to loop server to be swapped with off-chain liquidity. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,ue,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}function X(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",142),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"g",90),o.TgZ(5,"g",143),o.TgZ(6,"g",144),o.TgZ(7,"g"),o.TgZ(8,"g",145),o.TgZ(9,"g",146),o._UZ(10,"circle",12),o._UZ(11,"path",147),o.qZA(),o.TgZ(12,"g",14),o._UZ(13,"ellipse",148),o._UZ(14,"ellipse",16),o._UZ(15,"rect",17),o._UZ(16,"rect",18),o._UZ(17,"rect",19),o._UZ(18,"rect",20),o._UZ(19,"rect",21),o._UZ(20,"rect",22),o._UZ(21,"rect",23),o._UZ(22,"rect",24),o._UZ(23,"rect",25),o._UZ(24,"rect",26),o._UZ(25,"rect",27),o._UZ(26,"rect",28),o._UZ(27,"rect",29),o.qZA(),o.qZA(),o.TgZ(28,"g",149),o._UZ(29,"polygon",150),o._UZ(30,"polygon",99),o._UZ(31,"path",151),o.qZA(),o.TgZ(32,"g",152),o._UZ(33,"polygon",102),o._UZ(34,"path",103),o._UZ(35,"rect",104),o._UZ(36,"path",105),o._UZ(37,"rect",106),o._UZ(38,"rect",107),o._UZ(39,"rect",108),o._UZ(40,"rect",109),o._UZ(41,"circle",110),o._UZ(42,"path",111),o.TgZ(43,"g",112),o.TgZ(44,"g",113),o._UZ(45,"g",114),o.qZA(),o._UZ(46,"g",115),o.qZA(),o.qZA(),o.qZA(),o._UZ(47,"path",153),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(48,"div",30),o.TgZ(49,"mat-card-title"),o._uU(50,"Step 3: Recieve Funds Off-chain"),o.qZA(),o.qZA(),o.TgZ(51,"div",31),o.TgZ(52,"mat-card-subtitle",32),o._uU(53," Loop server sends equivalent funds off-chain to your node by making a lightning payment to you. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,ue,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}function he(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",6),o.NdJ("swipe",function(vt){return o.CHM(be),o.oxw().onSwipe(vt)}),o.O4$(),o.TgZ(1,"svg",154),o.TgZ(2,"desc"),o._uU(3,"Created with Sketch."),o.qZA(),o.TgZ(4,"defs"),o.TgZ(5,"linearGradient",34),o._UZ(6,"stop",35),o._UZ(7,"stop",36),o._UZ(8,"stop",37),o.qZA(),o.qZA(),o.TgZ(9,"g",90),o.TgZ(10,"g",155),o.TgZ(11,"g",156),o.TgZ(12,"g",157),o.TgZ(13,"g",158),o.TgZ(14,"g",40),o._UZ(15,"rect",159),o._UZ(16,"rect",160),o._UZ(17,"rect",161),o._UZ(18,"circle",162),o._UZ(19,"rect",163),o._UZ(20,"rect",164),o._UZ(21,"circle",165),o._UZ(22,"rect",166),o._UZ(23,"rect",167),o._UZ(24,"rect",168),o._UZ(25,"rect",169),o._UZ(26,"circle",170),o._UZ(27,"circle",171),o.qZA(),o.TgZ(28,"g",172),o._UZ(29,"path",173),o._UZ(30,"rect",174),o._UZ(31,"polygon",175),o._UZ(32,"circle",176),o._UZ(33,"path",177),o._UZ(34,"rect",178),o._UZ(35,"rect",179),o._UZ(36,"rect",180),o._UZ(37,"rect",181),o._UZ(38,"rect",182),o._UZ(39,"rect",183),o._UZ(40,"rect",184),o._UZ(41,"path",185),o._UZ(42,"path",186),o.qZA(),o._UZ(43,"path",187),o.qZA(),o.qZA(),o._UZ(44,"circle",188),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.kcU(),o.TgZ(45,"div",30),o.TgZ(46,"mat-card-title"),o._uU(47,"Done!"),o.qZA(),o.qZA(),o.TgZ(48,"div",31),o.TgZ(49,"mat-card-subtitle",32),o._uU(50," You send the payment on-chain from your wallet and also move remote balance to the local side of the node, gaining outgoing capacity. "),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@sliderAnimation",be.animationDirection),o.xp6(1),o.Q6J("ngClass",o.WLB(2,ue,be.screenSize===be.screenSizeEnum.XS,be.screenSize!==be.screenSizeEnum.XS))}}let Me=(()=>{class Ke{constructor(be){this.commonService=be,this.animationDirection="forward",this.stepNumber=1,this.stepNumberChange=new o.vpe,this.screenSize="",this.screenSizeEnum=c.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}onSwipe(be){2===be.direction&&this.stepNumber<5?(this.stepNumber++,this.animationDirection="forward",this.stepNumberChange.emit(this.stepNumber)):4===be.direction&&this.stepNumber>1&&(this.stepNumber--,this.animationDirection="backward",this.stepNumberChange.emit(this.stepNumber))}}return Ke.\u0275fac=function(be){return new(be||Ke)(o.Y36(w.v))},Ke.\u0275cmp=o.Xpm({type:Ke,selectors:[["rtl-loop-in-info-graphics"]],inputs:{animationDirection:"animationDirection",stepNumber:"stepNumber"},outputs:{stepNumberChange:"stepNumberChange"},decls:11,vars:1,consts:[[4,"ngTemplateOutlet"],["loopStepBlock1",""],["loopStepBlock2",""],["loopStepBlock3",""],["loopStepBlock4",""],["loopStepBlock5",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",3,"swipe"],["fxFlex","30","viewBox","0 0 108 118","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","Loopv0.2","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","LoopIn_Step01","transform","translate(-594.000000, -215.000000)","fill-rule","nonzero"],["id","Loop_Step01","transform","translate(594.000000, 215.000000)"],["id","Group-16","transform","translate(23.000000, 0.000000)"],["id","Oval","cx","42.4877419","cy","42.4877419","r","42.4877419",1,"fill-color-2"],["d","M56.0827415,28.5000036 C60.4468211,28.5000036 63.9999285,25.1343958 63.9999285,21.0000215 C63.9999285,16.8656472 60.4468211,13.5000393 56.0827415,13.5000393 C52.9843297,13.5000393 50.5608889,15.4359631 48.9999642,17.1843872 C47.4390396,15.4359631 45.0155987,13.5000393 41.9171869,13.5000393 C37.5531074,13.5000393 34,16.8656472 34,21.0000215 C34,25.1343958 37.5531074,28.5000036 41.9171869,28.5000036 C45.0155987,28.5000036 47.4390396,26.5640798 48.9999642,24.8156557 C50.5608889,26.5640798 52.9843297,28.5000036 56.0827415,28.5000036 Z M41.9171869,24.0000143 C40.0328073,24.0000143 38.4999893,22.6546959 38.4999893,21.0000286 C38.4999893,19.3453471 40.0328073,18.0000286 41.9171869,18.0000286 C43.707771,18.0000286 45.3577763,19.6921938 46.3234264,21.0000286 C45.3671604,22.2937501 43.7031019,24.0000143 41.9171869,24.0000143 Z M56.0827415,24.0000143 C54.2921574,24.0000143 52.6421522,22.3078492 51.676502,21.0000286 C52.6327681,19.7062929 54.2968266,18.0000286 56.0827415,18.0000286 C57.9671212,18.0000286 59.4999392,19.3453471 59.4999392,21.0000286 C59.4999392,22.6546959 57.9671212,24.0000143 56.0827415,24.0000143 Z","id","i",1,"fill-color-primary"],["id","Group-21","transform","translate(0.000000, 36.000000)"],["id","Oval","cx","48.644129","cy","75.1589677","rx","48.644129","ry","6.61766437",1,"fill-color-7"],["id","Oval","opacity","0.1","cx","48.644129","cy","75.1589677","rx","40.8402581","ry","5.55600756",1,"fill-color-27"],["id","Rectangle","x","25.2325161","y","6.09470968","width","54.1068387","height","62.9512258",1,"fill-color-26"],["id","Rectangle","x","20","y","1.24344979e-14","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","20","y","26","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","19.7698065","y","52.9179355","width","65.0322581","height","22.3710968",1,"fill-color-19"],["id","Rectangle","x","67.6335484","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","3.75354839","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","67.6335484","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","30.0265806","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","67.6335484","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","73.6165161","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["id","Rectangle","x","79.5994839","y","56.2996129","width","4.16206452","height","4.16206452",1,"fill-color-green-light"],["fxFlex","20","fxLayoutAlign","center end"],["fxFlex","40"],[1,"font-size-120"],["fxFlex","30","viewBox","0 0 200 120","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["x1","50%","y1","100%","x2","50%","y2","0%","id","linearGradient-1"],["stop-color","#808080","stop-opacity","0.25","offset","0%"],["stop-color","#808080","stop-opacity","0.12","offset","54%"],["stop-color","#808080","stop-opacity","0.1","offset","100%"],["id","LoopIn_Step02","transform","translate(-542.000000, -210.000000)","fill-rule","nonzero"],["id","Loop_Step02","transform","translate(542.000000, 210.000000)"],["id","Group-2"],["id","Rectangle","x","0","y","0","width","81.4032636","height","90.8547569",1,"fill-color-11"],["id","Rectangle","x","1.34483737","y","60.660286","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","67.352783","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Oval","cx","68.9135074","cy","74.4889377","r","7.35996418",1,"fill-color-primary-darker"],["id","Rectangle","x","1.34483737","y","31.345208","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","38.0377051","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Oval","cx","68.9135074","cy","45.1758404","r","7.35996418",1,"fill-color-primary-darker"],["id","Rectangle","x","1.34483737","y","2.03013005","width","78.7116083","height","28.2158368",1,"fill-color-9"],["id","Rectangle","x","7.80560248","y","8.72460769","width","46.2328358","height","14.4584872",1,"fill-color-primary-lighter"],["id","Rectangle","x","7.80560248","y","67.352783","width","23.1164179","height","14.4584872",1,"fill-color-primary"],["id","Rectangle","x","7.80560248","y","38.0377051","width","33.2298507","height","14.4584872",1,"fill-color-primary"],["id","Rectangle","x","7.80560248","y","8.72460769","width","23.1164179","height","14.4584872",1,"fill-color-primary"],["id","Oval","cx","68.9135074","cy","15.8607624","r","7.93434243",1,"fill-color-31"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","45.3719212","r","7.93434243"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","74.6850186","r","7.93434243"],["id","Group-16","transform","translate(55.804478, 34.674627)"],["id","Group-29","transform","translate(0.310627, 0.751284)"],["id","Group"],["d","M132.777455,1.04124409 L82.2582659,1.04124409 L82.2582659,0 L59.3509036,0 L59.3509036,1.04124409 L8.62346042,1.04124409 C7.71715136,1.04124358 6.84796221,1.40127322 6.20710493,2.0421305 C5.56624765,2.68298778 5.20621852,3.55217693 5.20621852,4.45848599 L5.20621852,73.6347918 C5.20621852,74.5411031 5.56624437,75.4102953 6.2071016,76.0511558 C6.84795882,76.6920163 7.71714912,77.0520512 8.62346042,77.0520512 L132.777455,77.0520512 C134.664749,77.0520512 136.194697,75.522091 136.194697,73.6347977 L136.194697,4.45848599 C136.194697,3.55217693 135.834668,2.68298778 135.193811,2.0421305 C134.552953,1.40127322 133.683764,1.04124358 132.777455,1.04124409 Z","id","Path",1,"fill-color-20"],["id","Rectangle","x","9.78769098","y","7.08045867","width","121.825532","height","68.7220946",1,"fill-color-7"],["id","Path","opacity","0.306775484","points","96.7732181 75.8025901 9.78772787 75.8025901 9.78772787 7.08050333",1,"fill-color-27"],["id","Group-24","transform","translate(16.889738, 38.617955)",1,"fill-color-primary-darker"],["d","M14.5668332,29.1332406 C8.67527117,29.1332406 3.36383033,25.5842492 1.10922733,20.1411555 C-1.14537566,14.6980619 0.100864684,8.43279022 4.26682842,4.26682704 C8.43279215,0.100863866 14.698064,-1.14537564 20.1411573,1.10922807 C25.5842507,3.36383179 29.1332406,8.67527311 29.1332406,14.5668351 C29.124133,22.607864 22.6078621,29.1241341 14.5668332,29.1332406 L14.5668332,29.1332406 Z M14.5668332,0.190838576 C6.62718953,0.190838576 0.190836635,6.62719147 0.190836635,14.5668351 C0.190836635,22.5064788 6.62718953,28.9428317 14.5668332,28.9428317 C22.5064768,28.9428317 28.9428297,22.5064788 28.9428297,14.5668351 C28.9338602,6.63090975 22.5027586,0.199808125 14.5668332,0.190838576 L14.5668332,0.190838576 Z","id","Shape"],["id","Rectangle","x","99.0215517","y","44.1428314","width","11.3798353","height","2.37787551",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","25.6293676","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","28.8564861","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","32.0836045","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","35.310721","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","85.2638409","y","38.5378394","width","38.8952588","height","1.01909033",1,"fill-color-15"],["id","Rectangle","x","119.403347","y","8.47469101","width","4.75575295","height","4.75575295",1,"fill-color-5"],["d","M126.367128,15.4384701 L120.592277,15.4384701 L120.592277,9.66361906 L126.367128,9.66361906 L126.367128,15.4384701 Z M120.843366,15.1873981 L126.116048,15.1873981 L126.116048,9.91470857 L120.843366,9.91470857 L120.843366,15.1873981 Z","id","Shape",1,"fill-color-19"],["d","M139.615294,74.5530572 L127.725913,74.5530572 L127.725913,73.6964356 C127.725915,73.6513884 127.708021,73.6081857 127.676168,73.5763323 C127.644315,73.544479 127.601113,73.5265862 127.556065,73.5265862 L123.479706,73.5265862 C123.434659,73.5265862 123.391457,73.5444797 123.359604,73.5763329 C123.327751,73.6081861 123.309857,73.6513886 123.309859,73.6964356 L123.309859,74.5530572 L120.762134,74.5530572 L120.762134,73.6964356 C120.762135,73.6513886 120.744241,73.6081861 120.712388,73.5763329 C120.680536,73.5444797 120.637333,73.5265862 120.592286,73.5265862 L116.515927,73.5265862 C116.47088,73.5265862 116.427677,73.5444789 116.395824,73.5763322 C116.36397,73.6081855 116.346076,73.6513882 116.346078,73.6964356 L116.346078,74.5530572 L113.798355,74.5530572 L113.798355,73.6964356 C113.798356,73.6513882 113.780462,73.6081855 113.748609,73.5763322 C113.716755,73.5444789 113.673553,73.5265862 113.628505,73.5265862 L109.552146,73.5265862 C109.507099,73.5265862 109.463897,73.5444797 109.432044,73.5763329 C109.400191,73.6081861 109.382297,73.6513886 109.382299,73.6964356 L109.382299,74.5530572 L106.834574,74.5530572 L106.834574,73.6964356 C106.834575,73.6513886 106.816681,73.6081861 106.784828,73.5763329 C106.752975,73.5444797 106.709773,73.5265862 106.664726,73.5265862 L102.588363,73.5265862 C102.543316,73.5265862 102.500113,73.544479 102.46826,73.5763323 C102.436407,73.6081857 102.418513,73.6513884 102.418516,73.6964356 L102.418516,74.5530572 L99.8707946,74.5530572 L99.8707946,73.6964356 C99.8707961,73.6513882 99.8529018,73.6081855 99.8210486,73.5763322 C99.7891953,73.5444789 99.7459925,73.5265862 99.7009452,73.5265862 L95.6245878,73.5265862 C95.5795404,73.5265862 95.5363377,73.5444789 95.5044844,73.5763322 C95.4726311,73.6081855 95.4547369,73.6513882 95.4547384,73.6964356 L95.4547384,74.5530572 L92.9070135,74.5530572 L92.9070135,73.6964356 C92.9070151,73.6513886 92.889121,73.6081861 92.8572682,73.5763329 C92.8254153,73.5444797 92.7822131,73.5265862 92.7371661,73.5265862 L88.6608067,73.5265862 C88.6157597,73.5265862 88.5725575,73.5444797 88.5407046,73.5763329 C88.5088518,73.6081861 88.4909577,73.6513886 88.4909593,73.6964356 L88.4909593,74.5530572 L85.9432383,74.5530572 L85.9432383,73.6964356 C85.9432399,73.6513886 85.9253458,73.6081861 85.893493,73.5763329 C85.8616401,73.5444797 85.8184379,73.5265862 85.7733909,73.5265862 L53.8419073,73.5265862 C53.7968603,73.5265862 53.7536581,73.5444797 53.7218052,73.5763329 C53.6899524,73.6081861 53.6720584,73.6513886 53.6720599,73.6964356 L53.6720599,74.5530572 L51.124335,74.5530572 L51.124335,73.6964356 C51.1243366,73.6513882 51.1064423,73.6081855 51.074589,73.5763322 C51.0427358,73.5444789 50.999533,73.5265862 50.9544857,73.5265862 L46.8781379,73.5265862 C46.8330906,73.5265862 46.7898879,73.5444789 46.7580346,73.5763322 C46.7261813,73.6081855 46.708287,73.6513882 46.7082886,73.6964356 L46.7082886,74.5530572 L44.160554,74.5530572 L44.160554,73.6964356 C44.1605561,73.6513884 44.1426622,73.6081857 44.1108092,73.5763323 C44.0789563,73.544479 44.0357537,73.5265862 43.9907066,73.5265862 L39.9143472,73.5265862 C39.8693002,73.5265862 39.8260979,73.5444797 39.7942451,73.5763329 C39.7623922,73.6081861 39.7444982,73.6513886 39.7444998,73.6964356 L39.7444998,74.5530572 L37.1967749,74.5530572 L37.1967749,73.6964356 C37.1967764,73.6513886 37.1788824,73.6081861 37.1470296,73.5763329 C37.1151767,73.5444797 37.0719745,73.5265862 37.0269275,73.5265862 L32.9505681,73.5265862 C32.9055208,73.5265862 32.862318,73.5444789 32.8304647,73.5763322 C32.7986115,73.6081855 32.7807172,73.6513882 32.7807187,73.6964356 L32.7807187,74.5530572 L30.2329958,74.5530572 L30.2329958,73.6964356 C30.2329973,73.6513882 30.215103,73.6081855 30.1832498,73.5763322 C30.1513965,73.5444789 30.1081938,73.5265862 30.0631464,73.5265862 L25.986787,73.5265862 C25.94174,73.5265862 25.8985378,73.5444797 25.866685,73.5763329 C25.8348321,73.6081861 25.8169381,73.6513886 25.8169396,73.6964356 L25.8169396,74.5530572 L23.2692109,74.5530572 L23.2692109,73.6964356 C23.2692124,73.6513886 23.2513184,73.6081861 23.2194655,73.5763329 C23.1876127,73.5444797 23.1444104,73.5265862 23.0993634,73.5265862 L19.0230079,73.5265862 C18.9779608,73.5265862 18.9347582,73.544479 18.9029053,73.5763323 C18.8710523,73.6081857 18.8531585,73.6513884 18.8531605,73.6964356 L18.8531605,74.5530572 L16.3054357,74.5530572 L16.3054357,73.6964356 C16.3054372,73.6513882 16.2875429,73.6081855 16.2556896,73.5763322 C16.2238364,73.5444789 16.1806336,73.5265862 16.1355863,73.5265862 L12.0592288,73.5265862 C12.0141815,73.5265862 11.9709788,73.5444789 11.9391255,73.5763322 C11.9072722,73.6081855 11.8893779,73.6513882 11.8893795,73.6964356 L11.8893795,74.5530572 L4.07635746,74.5530572 C1.82504753,74.5530594 0,76.3781067 0,78.6294166 L0,80.4726504 C0,82.7239563 1.82505163,84.5489982 4.07635746,84.5489982 L139.615294,84.5489982 C141.8666,84.5489982 143.691654,82.7239566 143.691654,80.4726504 L143.691654,78.6294166 C143.691654,76.3781064 141.866605,74.5530594 139.615294,74.5530572 Z","id","Path",1,"fill-color-20"],["id","Group","transform","translate(14.563343, 25.890388)"],["d","M34.1898756,18.6935074 C34.8335754,18.7760331 35.5015474,18.8284611 36.1180622,18.6284578 C36.2151512,18.5983603 36.321949,18.5313689 36.3122401,18.4342799 C36.3052976,18.3990002 36.2903506,18.3657846 36.2685501,18.337191 C36.0361522,17.9886397 35.8409087,17.6167008 35.6860164,17.2274642 C35.6798777,17.2071636 35.6672606,17.1894314 35.6500935,17.176978 C35.6300188,17.1697099 35.6080312,17.1697099 35.5879565,17.176978 C35.3034859,17.2517365 35.0578508,17.4352346 34.775322,17.5138766 C34.6312683,17.5533966 34.4809179,17.5646069 34.3325963,17.5468869 C34.2044389,17.5323235 34.0296788,17.4264966 33.9131721,17.440089 C33.9791925,17.8643678 34.1403602,18.2604907 34.1898756,18.6935074 Z","id","Path",1,"fill-color-primary-darker"],["d","M46.3638597,17.6187327 C46.7881384,17.3274658 47.2279514,17.0216356 47.4784409,16.5721138 C47.4963243,16.5452282 47.5067138,16.5140596 47.5085385,16.481821 C47.5042662,16.4500929 47.4918946,16.4199997 47.4726155,16.394441 C47.2340087,16.0151166 46.9268212,15.6835648 46.5667756,15.4167552 C46.3789189,15.549458 46.2091963,15.7061249 46.061913,15.8827822 C45.9551152,15.9954054 45.6599648,16.1740491 45.6570521,16.3458965 C45.6570521,16.4429855 45.7696753,16.5556086 45.8221033,16.6371634 C45.8929782,16.7420194 45.9599696,16.8488173 46.0240483,16.9575569 C46.0609421,17.0109558 46.3978408,17.5973731 46.3638597,17.6187327 Z","id","Path",1,"fill-color-primary-darker"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2730042,20.0320475 30.3444715,19.9740213 30.423795,19.9284789 L30.7548683,19.7148832 C30.9101158,19.6051008 31.0788103,19.515696 31.2568182,19.4488595 C31.3878883,19.4061404 31.5267255,19.3876935 31.6597374,19.3517706 C32.1247935,19.215846 32.4801391,18.846908 32.8102415,18.4925333 L33.2607343,18.011943 C33.3028503,17.9590638 33.3562578,17.9162715 33.4170475,17.8866982 C33.4795282,17.8658617 33.5459388,17.8595527 33.6112254,17.8682513 C34.0488232,17.8994947 34.4713668,18.041122 34.8394007,18.2799085 C34.9334629,18.3504651 35.0350556,18.4103788 35.1423182,18.4585522 C35.4064002,18.5614665 35.7452406,18.4837953 35.9889339,18.3536961 C36.1044698,18.2915592 36.0792267,18.2566071 36.1277711,18.1459257 C36.1763156,18.0352443 36.2947641,17.9643694 36.3976784,18.0653419 C36.4287289,18.1002598 36.4507324,18.1422664 36.4617571,18.187674 C36.5588461,18.5080675 36.5219523,18.8527333 36.5219523,19.1886611 C36.519104,19.2411857 36.5256803,19.2937961 36.5413701,19.3440034 C36.566144,19.3946232 36.5957307,19.4427421 36.629721,19.4876951 C36.6366398,19.4995928 36.642801,19.5119152 36.6481679,19.5245889 C36.7075588,19.673314 36.7298837,19.8342531 36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary-darker"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2645691,20.2100369 30.3024338,20.3556704 30.3354441,20.4080984 C30.4256618,20.5652773 30.5791886,20.6760005 30.7568101,20.7119868 C30.8882242,20.7200556 31.0199808,20.7032567 31.1451659,20.6624715 C31.9607132,20.4605264 32.8277175,20.4576138 33.6112254,20.1517835 C33.8801618,20.0459566 34.1364767,19.9051776 34.4190055,19.8410989 C34.7015344,19.7770202 35.0015392,19.7944962 35.2928061,19.770224 C35.7530078,19.7333301 36.1986461,19.5944929 36.6520515,19.5216762 C36.7105975,19.6716231 36.7315958,19.83361 36.7132175,19.9935285 L36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary-darker"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.3279723,20.332004 43.3179103,20.2563656 43.3356552,20.1847938 C43.3626747,20.1059564 43.4090817,20.0351774 43.4706088,19.9789652 C43.5770067,19.8683202 43.6912186,19.7654647 43.8123619,19.6711932 C43.9785829,19.5639234 44.1283649,19.4331094 44.2570293,19.2828374 C44.335968,19.1640934 44.3940832,19.0327597 44.4288768,18.8944816 C44.4976483,18.652227 44.5396476,18.4031617 44.5541216,18.1517511 C44.5535898,17.9846963 44.5708393,17.8180593 44.6055787,17.6546556 C44.6774245,17.3983408 44.8677189,17.1692108 44.8463593,16.904158 C44.8377185,16.866204 44.8411119,16.8265011 44.8560682,16.7905639 C44.8786704,16.7624825 44.9101823,16.7429588 44.94539,16.7352232 C45.0937604,16.6760869 45.2502282,16.6397523 45.4094752,16.6274545 C45.571226,16.6162976 45.7294484,16.6783037 45.8405502,16.7963893 C45.9065707,16.8760022 45.9502607,16.9905672 46.0473497,17.0216356 C46.0954598,17.0347655 46.1459295,17.0367577 46.1949249,17.027461 C46.4337637,17.0031887 46.686195,16.9730912 46.8745476,16.8187197 C47.0505482,16.6608586 47.152616,16.4366614 47.1561056,16.2002631 C47.1561056,16.1119121 47.1162991,16.0196776 47.2531945,16.0060852 C47.3561088,15.9924927 47.4376635,16.1031741 47.4900916,16.1711364 C47.679415,16.4245386 47.8735929,16.6895914 47.9444679,16.9983343 C47.9720312,16.9876362 48.0013112,16.9820434 48.030877,16.9818292 C48.1537854,16.9807475 48.2694521,17.0398499 48.3405908,17.1400842 C48.4179108,17.2653269 48.447872,17.4140998 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary-darker"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.4548211,20.3526902 43.5541213,20.3288581 43.6550778,20.3265437 C43.86479,20.3381943 44.0181905,20.5362558 44.2191647,20.5974219 C44.5055771,20.683831 44.7910186,20.481886 45.0813146,20.4129528 C45.270638,20.3682919 45.4696704,20.3799426 45.6570521,20.3158639 C45.8132081,20.2555144 45.9574928,20.168089 46.0832726,20.0576073 C46.2556706,19.9343474 46.4090818,19.786497 46.5386198,19.6187652 C46.646198,19.4510234 46.735696,19.2723528 46.8056144,19.0857468 C46.9589198,18.7281302 47.1393856,18.3827784 47.345429,18.0527203 C47.375905,18.0004629 47.4127576,17.9521958 47.4551395,17.9090287 C47.5007713,17.8672804 47.5522285,17.8381537 47.6036856,17.8012599 C47.7978635,17.6546556 47.8784474,17.4129041 47.9464096,17.1760071 C47.9648208,17.1040024 47.9905203,17.0340608 48.0231099,16.9672512 C48.1460183,16.9661841 48.2616849,17.0252865 48.3328237,17.1255208 C48.4163608,17.2537243 48.4492363,17.4084124 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary-darker"],["d","M54.316416,4.55250111 L54.316416,3.34665629 C54.316416,1.49819202 52.8172532,0 50.9687888,0 L3.34762718,0 C1.49916283,0 0,1.49819202 0,3.34665629 L0,5.56999336 L54.316416,4.55250111 Z","id","Path",1,"fill-color-16"],["d","M55.6018738,5.73601547 L55.6018738,39.231705 C55.6018738,39.9999836 55.2966099,40.7367813 54.7532639,41.2799452 C54.2099179,41.8231092 53.4730179,42.1278687 52.7047393,42.1278687 L2.89810531,42.1278687 C1.29897753,42.1273325 0.00291266866,40.8308329 0.00291266866,39.231705 L0.00291266866,2.35926161 C1.43012031,2.88936731 1.43012031,2.88936731 2.89810531,2.84470639 L52.7047393,2.84470639 C54.3025103,2.84470316 55.5986611,4.13824772 55.6018738,5.73601547 Z","id","Path","opacity","0.1",1,"fill-color-27"],["d","M55.6018738,6.16223599 L55.6018738,39.6579255 C55.6018738,41.2575895 54.3044034,42.5540891 52.7047393,42.5540891 L2.89810531,42.5540891 C1.29897753,42.553553 0.00291266866,41.2570534 0.00291266866,39.6579255 L0.00291266866,2.78451124 C1.43012031,3.31364604 1.43012031,3.31364604 2.89810531,3.26995601 L52.7047393,3.26995601 C54.3028886,3.26995377 55.5991959,4.56408894 55.6018738,6.16223599 Z","id","Path",1,"fill-color-19"],["d","M55.4601239,18.5459322 L55.4601239,29.2577567 L45.0716057,29.2577567 C42.141738,29.2183086 39.7873207,26.8319777 39.7873207,23.9018444 C39.7873207,20.9717112 42.141738,18.5853803 45.0716057,18.5459322 L55.4601239,18.5459322 Z","id","Path","opacity","0.1",1,"fill-color-27"],["d","M55.6018738,18.2604907 L55.6018738,28.9742569 L45.2133556,28.9742569 C42.2834879,28.9348088 39.9290706,26.5484779 39.9290706,23.6183447 C39.9290706,20.6882114 42.2834879,18.3018806 45.2133556,18.2624325 L55.6018738,18.2604907 Z","id","Path",1,"fill-color-17"],["id","Oval","opacity","0.1","cx","45.7114219","cy","23.9023299","r","2.08838343",1,"fill-color-27"],["id","Oval","cx","45.8531718","cy","23.6188301","r","2.08838343",1,"fill-color-28"],["d","M37.114137,56.485738 L37.114137,54.3663604 C37.5324015,54.3762985 37.9407279,54.3762985 38.3291472,54.3762985 L38.3291472,56.485738 L39.8628249,56.485738 L39.8628249,54.3364843 C42.4322258,54.1970423 44.1498818,53.5497076 44.378952,51.1296869 C44.5581774,49.1877136 43.6419275,48.3212469 42.1879398,47.9727034 C43.0643138,47.5245628 43.6220513,46.7278171 43.4925782,45.4032717 C43.3232292,43.5907407 41.8346742,42.9832201 39.8627941,42.8139637 L39.8627941,40.3042841 L38.3291164,40.3042841 L38.3291164,42.7442427 C37.9307281,42.7442427 37.5224017,42.7541808 37.1141061,42.7641498 L37.1141061,40.3042841 L35.5803975,40.3042841 L35.5803975,42.8139637 C35.0165182,42.8310005 34.3597701,42.8226673 32.5030732,42.8139637 L32.5030732,44.4472076 C33.7139786,44.4257882 34.3493073,44.3479809 34.4948913,45.1243875 L34.4948913,51.9961228 C34.4024546,52.6121309 33.9094382,52.5234287 32.8118025,52.5040154 L32.5030732,54.3265154 L33.46474,54.3269705 C35.3673259,54.328922 35.5804284,54.3364843 35.5804284,54.3364843 L35.5804284,56.485738 L37.114137,56.485738 Z M37.144013,47.6141601 L37.144013,44.5567428 C38.0104489,44.5567428 40.7192919,44.2878893 40.7192919,46.0904514 C40.7192919,47.8133542 38.0104798,47.6141601 37.144013,47.6141601 Z M37.144013,52.5139844 L37.144013,49.1478686 C38.1797362,49.1478686 41.3514108,48.8590464 41.3514108,50.8309574 C41.3514108,52.7330856 38.1797362,52.5139844 37.144013,52.5139844 Z","id","b","transform","translate(38.452166, 48.395011) rotate(14.000000) translate(-38.452166, -48.395011) ",1,"fill-color-30"],["fxFlex","30","viewBox","0 0 364 120","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["x1","50%","y1","100%","x2","50%","y2","8.86848147e-15%","id","linearGradient-1"],["id","Loopv0.3","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","LoopIn_Step03","transform","translate(-1127.000000, -164.000000)"],["id","LoopIn_Step03","transform","translate(1127.000000, 164.000000)"],["id","Group-21"],["id","Group-35","transform","translate(107.000000, 10.000000)"],["id","Oval","fill-rule","nonzero","cx","214.487742","cy","42.4877419","r","42.4877419",1,"fill-color-2"],["d","M232.082742,28.5000036 C236.446821,28.5000036 239.999928,25.1343958 239.999928,21.0000215 C239.999928,16.8656472 236.446821,13.5000393 232.082742,13.5000393 C228.98433,13.5000393 226.560889,15.4359631 224.999964,17.1843872 C223.43904,15.4359631 221.015599,13.5000393 217.917187,13.5000393 C213.553107,13.5000393 210,16.8656472 210,21.0000215 C210,25.1343958 213.553107,28.5000036 217.917187,28.5000036 C221.015599,28.5000036 223.43904,26.5640798 224.999964,24.8156557 C226.560889,26.5640798 228.98433,28.5000036 232.082742,28.5000036 Z M217.917187,24.0000143 C216.032807,24.0000143 214.499989,22.6546959 214.499989,21.0000286 C214.499989,19.3453471 216.032807,18.0000286 217.917187,18.0000286 C219.707771,18.0000286 221.357776,19.6921938 222.323426,21.0000286 C221.36716,22.2937501 219.703102,24.0000143 217.917187,24.0000143 Z M232.082742,24.0000143 C230.292157,24.0000143 228.642152,22.3078492 227.676502,21.0000286 C228.632768,19.7062929 230.296827,18.0000286 232.082742,18.0000286 C233.967121,18.0000286 235.499939,19.3453471 235.499939,21.0000286 C235.499939,22.6546959 233.967121,24.0000143 232.082742,24.0000143 Z","id","i","fill-rule","nonzero",1,"fill-color-primary"],["id","Group-44","transform","translate(0.000000, 64.000000)","fill-rule","nonzero"],["id","Path","transform","translate(118.400000, 7.089946) scale(-1, 1) translate(-118.400000, -7.089946) ","points","234.731878 6.60770626 8.52651283e-14 6.60770626 8.52651283e-14 7.57218541 236.8 7.57218541",1,"fill-color-20"],["id","Path","transform","translate(118.400000, 8.960000) scale(-1, 1) translate(-118.400000, -8.960000) ","points","113.024 5.376 123.776 5.376 123.776 12.544 113.024 12.544",1,"fill-color-23"],["d","M120.192,8.96 L105.856,8.96 L105.856,1.86517468e-14 L120.192,1.86517468e-14 L120.192,8.96 Z M106.479304,8.57043501 L119.568696,8.57043501 L119.568696,0.389564988 L106.479304,0.389564988 L106.479304,8.57043501 Z","id","Shape","transform","translate(113.024000, 4.480000) scale(-1, 1) translate(-113.024000, -4.480000) ",1,"fill-color-20"],["id","Group-43","transform","translate(152.000000, 35.000000)"],["id","Path","fill-rule","nonzero","points","-9.84073267e-14 7.36243469 92.3919279 7.36243469 92.3919279 70.3073253 -1.13686838e-13 70.3073253",1,"fill-color-23"],["d","M97.5448374,1.70530257e-13 L6.62592538,1.70530257e-13 C6.01615907,0.000922175294 5.52114394,0.495001701 5.52114394,1.104768 L5.52114394,62.57664 C5.52114394,62.8696481 5.63752746,63.150658 5.84471672,63.3578447 C6.05190598,63.5650315 6.3329173,63.681408 6.62592538,63.681408 L97.5448374,63.681408 C97.8378436,63.681408 98.1188523,63.5650282 98.3260389,63.3578415 C98.5332256,63.1506549 98.6496054,62.8696462 98.6496054,62.57664 L98.6496054,1.104768 C98.6496054,0.495005713 98.1545997,0.000926622272 97.5448374,1.70530257e-13 L97.5448374,1.70530257e-13 Z M97.9130952,62.57664 C97.9130952,62.6744022 97.8747043,62.7682496 97.8055756,62.8373783 C97.736447,62.9065069 97.6425996,62.9448978 97.5448374,62.9448978 L6.62592538,62.9448978 C6.52816341,62.9448978 6.4343164,62.906506 6.3651879,62.8373775 C6.29605941,62.768249 6.25766754,62.674402 6.25766754,62.57664 L6.25766754,1.104768 C6.25766754,0.901512883 6.42267026,0.736512 6.62592538,0.736512 L97.5448374,0.736512 C97.7480931,0.736512 97.9130952,0.901512271 97.9130952,1.104768 L97.9130952,62.57664 Z","id","Shape","fill-rule","nonzero",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","10.3066764","y","43.4358624","width","41.5947948","height","4.78524211","rx","0.5376",1,"fill-color-19"],["d","M89.8141359,39.3872559 L76.5649839,39.3872559 C76.2719769,39.3872559 75.9909677,39.5036372 75.7837792,39.7108232 C75.5765907,39.9180091 75.4602025,40.1990169 75.4602025,40.4920239 L75.4602025,50.7978159 C75.4602025,51.090824 75.576586,51.3718339 75.7837753,51.5790207 C75.9909645,51.7862074 76.2719759,51.9025839 76.5649839,51.9025839 L89.8141359,51.9025839 C90.107143,51.9025839 90.3881533,51.7862079 90.5953406,51.5790206 C90.8025279,51.3718333 90.9189039,51.090823 90.9189039,50.7978159 L90.9189039,40.4920239 C90.9189039,40.199018 90.8025232,39.9180097 90.5953367,39.7108232 C90.3881502,39.5036367 90.1071419,39.3872559 89.8141359,39.3872559 Z M90.1823938,50.7978159 C90.182087,51.0010717 90.0173917,51.165767 89.8141359,51.1660719 L76.5649839,51.1660719 C76.3617256,51.165767 76.1970256,51.0010743 76.19671,50.7978159 L76.19671,40.4920239 C76.1964064,40.3942603 76.2351088,40.3004129 76.30424,40.2312847 C76.3733712,40.1621565 76.4672203,40.1234582 76.5649839,40.1237661 L89.8141359,40.1237661 C89.9118981,40.1234582 90.0057456,40.162157 90.0748742,40.2312857 C90.1440029,40.3004143 90.1827017,40.3942617 90.1823938,40.4920239 L90.1823938,50.7978159 Z","id","Shape","fill-rule","nonzero",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","41.7652758","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","44.7100416","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","78.6733409","y","47.6548047","width","9.03249715","height","1.86879168","rx","0.5376",1,"fill-color-19"],["id","Rectangle","fill-rule","nonzero","x","11.4109632","y","4.41773875","width","19.1409684","height","8.09810266","rx","0.5376",1,"fill-color-19"],["id","Oval","fill-rule","nonzero","cx","47.2929593","cy","42.2294561","r","12.9683743",1,"fill-color-4"],["d","M50.1798649,51.9764517 C43.6553251,51.9764517 37.7732336,48.0461636 35.2764005,42.0182748 C32.7795674,35.990386 34.1597014,29.0519859 38.773248,24.4384399 C43.3867946,19.824894 50.3251948,18.4447609 56.3530833,20.9415948 C62.3809718,23.4384287 66.3112582,29.3205207 66.3112582,35.8450605 C66.3011721,44.7500015 59.0848059,51.9663668 50.1798649,51.9764517 L50.1798649,51.9764517 Z M50.1798649,19.9245354 C41.3872016,19.9245354 34.2593397,27.0523972 34.2593397,35.8450605 C34.2593397,44.6377237 41.3872016,51.7655856 50.1798649,51.7655856 C58.9725281,51.7655856 66.10039,44.6377237 66.10039,35.8450605 C66.0904567,27.056515 58.9684103,19.9344686 50.1798649,19.9245354 L50.1798649,19.9245354 Z","id","Shape","fill-rule","nonzero",1,"fill-color-primary"],["id","Group-23","transform","translate(5.000000, 0.001193)"],["id","Group-22"],["id","Group","transform","translate(0.378134, 0.000000)"],["id","Group-24","transform","translate(29.048000, 19.712000)"],["id","LoopIn_Step03","fill-rule","nonzero"],["id","Rectangle","x","0","y","0","width","81.4032636","height","90.8547569",1,"fill-color-10"],["id","Oval","cx","68.9135074","cy","74.4889377","r","7.35996418",1,"fill-color-primary"],["id","Oval","cx","68.9135074","cy","45.1758404","r","7.35996418",1,"fill-color-primary"],["id","Oval","fill","url(#linearGradient-1)","cx","68.9135074","cy","15.8607624","r","7.93434243"],["id","Oval","cx","68.9135074","cy","15.8607624","r","7.35996418",1,"fill-color-31"],["id","Group-24","transform","translate(16.889738, 38.617955)",1,"fill-color-primary"],["id","Rectangle","x","99.0215517","y","44.1428314","width","11.3798353","height","2.37787551",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","25.6293676","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","28.8564861","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","32.0836045","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","35.310721","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","85.2638409","y","38.5378394","width","38.8952588","height","1.01909033",1,"fill-color-20"],["id","Rectangle","x","119.403347","y","8.47469101","width","4.75575295","height","4.75575295",1,"fill-color-4"],["d","M126.367128,15.4384701 L120.592277,15.4384701 L120.592277,9.66361906 L126.367128,9.66361906 L126.367128,15.4384701 Z M120.843366,15.1873981 L126.116048,15.1873981 L126.116048,9.91470857 L120.843366,9.91470857 L120.843366,15.1873981 Z","id","Shape",1,"fill-color-20"],["d","M34.1898756,18.6935074 C34.8335754,18.7760331 35.5015474,18.8284611 36.1180622,18.6284578 C36.2151512,18.5983603 36.321949,18.5313689 36.3122401,18.4342799 C36.3052976,18.3990002 36.2903506,18.3657846 36.2685501,18.337191 C36.0361522,17.9886397 35.8409087,17.6167008 35.6860164,17.2274642 C35.6798777,17.2071636 35.6672606,17.1894314 35.6500935,17.176978 C35.6300188,17.1697099 35.6080312,17.1697099 35.5879565,17.176978 C35.3034859,17.2517365 35.0578508,17.4352346 34.775322,17.5138766 C34.6312683,17.5533966 34.4809179,17.5646069 34.3325963,17.5468869 C34.2044389,17.5323235 34.0296788,17.4264966 33.9131721,17.440089 C33.9791925,17.8643678 34.1403602,18.2604907 34.1898756,18.6935074 Z","id","Path",1,"fill-color-primary"],["d","M46.3638597,17.6187327 C46.7881384,17.3274658 47.2279514,17.0216356 47.4784409,16.5721138 C47.4963243,16.5452282 47.5067138,16.5140596 47.5085385,16.481821 C47.5042662,16.4500929 47.4918946,16.4199997 47.4726155,16.394441 C47.2340087,16.0151166 46.9268212,15.6835648 46.5667756,15.4167552 C46.3789189,15.549458 46.2091963,15.7061249 46.061913,15.8827822 C45.9551152,15.9954054 45.6599648,16.1740491 45.6570521,16.3458965 C45.6570521,16.4429855 45.7696753,16.5556086 45.8221033,16.6371634 C45.8929782,16.7420194 45.9599696,16.8488173 46.0240483,16.9575569 C46.0609421,17.0109558 46.3978408,17.5973731 46.3638597,17.6187327 Z","id","Path",1,"fill-color-primary"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2730042,20.0320475 30.3444715,19.9740213 30.423795,19.9284789 L30.7548683,19.7148832 C30.9101158,19.6051008 31.0788103,19.515696 31.2568182,19.4488595 C31.3878883,19.4061404 31.5267255,19.3876935 31.6597374,19.3517706 C32.1247935,19.215846 32.4801391,18.846908 32.8102415,18.4925333 L33.2607343,18.011943 C33.3028503,17.9590638 33.3562578,17.9162715 33.4170475,17.8866982 C33.4795282,17.8658617 33.5459388,17.8595527 33.6112254,17.8682513 C34.0488232,17.8994947 34.4713668,18.041122 34.8394007,18.2799085 C34.9334629,18.3504651 35.0350556,18.4103788 35.1423182,18.4585522 C35.4064002,18.5614665 35.7452406,18.4837953 35.9889339,18.3536961 C36.1044698,18.2915592 36.0792267,18.2566071 36.1277711,18.1459257 C36.1763156,18.0352443 36.2947641,17.9643694 36.3976784,18.0653419 C36.4287289,18.1002598 36.4507324,18.1422664 36.4617571,18.187674 C36.5588461,18.5080675 36.5219523,18.8527333 36.5219523,19.1886611 C36.519104,19.2411857 36.5256803,19.2937961 36.5413701,19.3440034 C36.566144,19.3946232 36.5957307,19.4427421 36.629721,19.4876951 C36.6366398,19.4995928 36.642801,19.5119152 36.6481679,19.5245889 C36.7075588,19.673314 36.7298837,19.8342531 36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary"],["d","M36.7132175,19.9935285 C36.7207976,20.0935521 36.6933371,20.1930963 36.6355464,20.2750865 C36.5902231,20.3206727 36.5341172,20.3540691 36.4724369,20.3721755 C35.5724223,20.6945108 34.5306578,20.2925625 33.632585,20.6100434 C33.448116,20.675093 33.2733558,20.7692693 33.0879159,20.8314062 C32.8668382,20.8978733 32.6387504,20.9382775 32.4082933,20.9517965 C32.0908124,20.9818941 31.7713897,21.0013119 31.4529379,21.0100499 C31.2109788,21.0271812 30.9678332,21.0058814 30.7325379,20.9469421 C30.494578,20.8860354 30.29373,20.7268395 30.1801017,20.5090709 C30.1312849,20.4125511 30.1215484,20.3009295 30.1529168,20.1974154 C30.1669968,20.1619216 30.1870252,20.1290882 30.2121411,20.1003264 C30.2645691,20.2100369 30.3024338,20.3556704 30.3354441,20.4080984 C30.4256618,20.5652773 30.5791886,20.6760005 30.7568101,20.7119868 C30.8882242,20.7200556 31.0199808,20.7032567 31.1451659,20.6624715 C31.9607132,20.4605264 32.8277175,20.4576138 33.6112254,20.1517835 C33.8801618,20.0459566 34.1364767,19.9051776 34.4190055,19.8410989 C34.7015344,19.7770202 35.0015392,19.7944962 35.2928061,19.770224 C35.7530078,19.7333301 36.1986461,19.5944929 36.6520515,19.5216762 C36.7105975,19.6716231 36.7315958,19.83361 36.7132175,19.9935285 L36.7132175,19.9935285 Z","id","Path",1,"fill-color-primary"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.3279723,20.332004 43.3179103,20.2563656 43.3356552,20.1847938 C43.3626747,20.1059564 43.4090817,20.0351774 43.4706088,19.9789652 C43.5770067,19.8683202 43.6912186,19.7654647 43.8123619,19.6711932 C43.9785829,19.5639234 44.1283649,19.4331094 44.2570293,19.2828374 C44.335968,19.1640934 44.3940832,19.0327597 44.4288768,18.8944816 C44.4976483,18.652227 44.5396476,18.4031617 44.5541216,18.1517511 C44.5535898,17.9846963 44.5708393,17.8180593 44.6055787,17.6546556 C44.6774245,17.3983408 44.8677189,17.1692108 44.8463593,16.904158 C44.8377185,16.866204 44.8411119,16.8265011 44.8560682,16.7905639 C44.8786704,16.7624825 44.9101823,16.7429588 44.94539,16.7352232 C45.0937604,16.6760869 45.2502282,16.6397523 45.4094752,16.6274545 C45.571226,16.6162976 45.7294484,16.6783037 45.8405502,16.7963893 C45.9065707,16.8760022 45.9502607,16.9905672 46.0473497,17.0216356 C46.0954598,17.0347655 46.1459295,17.0367577 46.1949249,17.027461 C46.4337637,17.0031887 46.686195,16.9730912 46.8745476,16.8187197 C47.0505482,16.6608586 47.152616,16.4366614 47.1561056,16.2002631 C47.1561056,16.1119121 47.1162991,16.0196776 47.2531945,16.0060852 C47.3561088,15.9924927 47.4376635,16.1031741 47.4900916,16.1711364 C47.679415,16.4245386 47.8735929,16.6895914 47.9444679,16.9983343 C47.9720312,16.9876362 48.0013112,16.9820434 48.030877,16.9818292 C48.1537854,16.9807475 48.2694521,17.0398499 48.3405908,17.1400842 C48.4179108,17.2653269 48.447872,17.4140998 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary"],["d","M48.4250582,17.5595084 C48.3823391,17.9012616 48.1658307,18.1954411 47.9279627,18.4449597 C47.6900948,18.6944783 47.4211584,18.9187538 47.2318349,19.2061371 C46.9988214,19.5624536 46.8939654,20.0042083 46.5910478,20.3051841 C46.4747693,20.4146353 46.3441148,20.5077266 46.202692,20.5818876 C46.0442646,20.6753601 45.8767312,20.752458 45.7026839,20.8119884 C45.2502494,20.956651 44.7628628,20.9236407 44.2900396,20.8886887 C44.1365309,20.8872131 43.9845596,20.8579372 43.8414886,20.8022795 C43.7763574,20.7691922 43.7140162,20.7308783 43.6550778,20.6877146 C43.5365551,20.6147292 43.4367964,20.5149704 43.363811,20.3964477 C43.4548211,20.3526902 43.5541213,20.3288581 43.6550778,20.3265437 C43.86479,20.3381943 44.0181905,20.5362558 44.2191647,20.5974219 C44.5055771,20.683831 44.7910186,20.481886 45.0813146,20.4129528 C45.270638,20.3682919 45.4696704,20.3799426 45.6570521,20.3158639 C45.8132081,20.2555144 45.9574928,20.168089 46.0832726,20.0576073 C46.2556706,19.9343474 46.4090818,19.786497 46.5386198,19.6187652 C46.646198,19.4510234 46.735696,19.2723528 46.8056144,19.0857468 C46.9589198,18.7281302 47.1393856,18.3827784 47.345429,18.0527203 C47.375905,18.0004629 47.4127576,17.9521958 47.4551395,17.9090287 C47.5007713,17.8672804 47.5522285,17.8381537 47.6036856,17.8012599 C47.7978635,17.6546556 47.8784474,17.4129041 47.9464096,17.1760071 C47.9648208,17.1040024 47.9905203,17.0340608 48.0231099,16.9672512 C48.1460183,16.9661841 48.2616849,17.0252865 48.3328237,17.1255208 C48.4163608,17.2537243 48.4492363,17.4084124 48.4250582,17.5595084 L48.4250582,17.5595084 Z","id","Path",1,"fill-color-primary"],["d","M55.6018738,6.16223599 L55.6018738,39.6579255 C55.6018738,41.2575895 54.3044034,42.5540891 52.7047393,42.5540891 L2.89810531,42.5540891 C1.29897753,42.553553 0.00291266866,41.2570534 0.00291266866,39.6579255 L0.00291266866,2.78451124 C1.43012031,3.31364604 1.43012031,3.31364604 2.89810531,3.26995601 L52.7047393,3.26995601 C54.3028886,3.26995377 55.5991959,4.56408894 55.6018738,6.16223599 Z","id","Path",1,"fill-color-20"],["d","M55.6018738,18.2604907 L55.6018738,28.9742569 L45.2133556,28.9742569 C42.2834879,28.9348088 39.9290706,26.5484779 39.9290706,23.6183447 C39.9290706,20.6882114 42.2834879,18.3018806 45.2133556,18.2624325 L55.6018738,18.2604907 Z","id","Path",1,"fill-color-16"],["d","M37.114137,56.485738 L37.114137,54.3663604 C37.5324015,54.3762985 37.9407279,54.3762985 38.3291472,54.3762985 L38.3291472,56.485738 L39.8628249,56.485738 L39.8628249,54.3364843 C42.4322258,54.1970423 44.1498818,53.5497076 44.378952,51.1296869 C44.5581774,49.1877136 43.6419275,48.3212469 42.1879398,47.9727034 C43.0643138,47.5245628 43.6220513,46.7278171 43.4925782,45.4032717 C43.3232292,43.5907407 41.8346742,42.9832201 39.8627941,42.8139637 L39.8627941,40.3042841 L38.3291164,40.3042841 L38.3291164,42.7442427 C37.9307281,42.7442427 37.5224017,42.7541808 37.1141061,42.7641498 L37.1141061,40.3042841 L35.5803975,40.3042841 L35.5803975,42.8139637 C35.0165182,42.8310005 34.3597701,42.8226673 32.5030732,42.8139637 L32.5030732,44.4472076 C33.7139786,44.4257882 34.3493073,44.3479809 34.4948913,45.1243875 L34.4948913,51.9961228 C34.4024546,52.6121309 33.9094382,52.5234287 32.8118025,52.5040154 L32.5030732,54.3265154 L33.46474,54.3269705 C35.3673259,54.328922 35.5804284,54.3364843 35.5804284,54.3364843 L35.5804284,56.485738 L37.114137,56.485738 Z M37.144013,47.6141601 L37.144013,44.5567428 C38.0104489,44.5567428 40.7192919,44.2878893 40.7192919,46.0904514 C40.7192919,47.8133542 38.0104798,47.6141601 37.144013,47.6141601 Z M37.144013,52.5139844 L37.144013,49.1478686 C38.1797362,49.1478686 41.3514108,48.8590464 41.3514108,50.8309574 C41.3514108,52.7330856 38.1797362,52.5139844 37.144013,52.5139844 Z","id","b","transform","translate(38.452166, 48.395011) rotate(14.000000) translate(-38.452166, -48.395011) ",1,"fill-color-9"],["d","M93.2292414,91.9116485 L93.2292414,89.7922708 C93.647506,89.8022089 94.0558324,89.8022089 94.4442517,89.8022089 L94.4442517,91.9116485 L95.9779294,91.9116485 L95.9779294,89.7623948 C98.5473303,89.6229527 100.264986,88.975618 100.494057,86.5555973 C100.673282,84.6136241 99.757032,83.7471573 98.3030443,83.3986138 C99.1794183,82.9504733 99.7371558,82.1537275 99.6076827,80.8291821 C99.4383337,79.0166511 97.9497787,78.4091306 95.9778985,78.2398742 L95.9778985,75.7301945 L94.4442208,75.7301945 L94.4442208,78.1701531 C94.0458325,78.1701531 93.6375061,78.1800912 93.2292106,78.1900602 L93.2292106,75.7301945 L91.695502,75.7301945 L91.695502,78.2398742 C91.1316227,78.2569109 90.4748746,78.2485777 88.6181777,78.2398742 L88.6181777,79.8731181 C89.8290831,79.8516987 90.4644118,79.7738914 90.6099957,80.5502979 L90.6099957,87.4220333 C90.517559,88.0380413 90.0245427,87.9493391 88.926907,87.9299259 L88.6181777,89.7524258 L89.5798445,89.7528809 C91.4824304,89.7548325 91.6955329,89.7623948 91.6955329,89.7623948 L91.6955329,91.9116485 L93.2292414,91.9116485 Z M93.2591175,83.0400705 L93.2591175,79.9826533 C94.1255534,79.9826533 96.8343964,79.7137998 96.8343964,81.5163618 C96.8343964,83.2392647 94.1255843,83.0400705 93.2591175,83.0400705 Z M93.2591175,87.9398948 L93.2591175,84.5737791 C94.2948407,84.5737791 97.4665153,84.2849568 97.4665153,86.2568678 C97.4665153,88.1589961 94.2948407,87.9398948 93.2591175,87.9398948 Z","id","b","fill-rule","nonzero","transform","translate(94.567271, 83.820921) rotate(14.000000) translate(-94.567271, -83.820921) ",1,"fill-color-9"],["d","M305.611064,96.181454 L305.611064,94.0620763 C306.029328,94.0720144 306.437655,94.0720144 306.826074,94.0720144 L306.826074,96.181454 L308.359752,96.181454 L308.359752,94.0322003 C310.929153,93.8927582 312.646809,93.2454235 312.875879,90.8254028 C313.055104,88.8834296 312.138854,88.0169628 310.684867,87.6684193 C311.561241,87.2202788 312.118978,86.423533 311.989505,85.0989876 C311.820156,83.2864566 310.331601,82.678936 308.359721,82.5096797 L308.359721,80 L306.826043,80 L306.826043,82.4399586 C306.427655,82.4399586 306.019328,82.4498967 305.611033,82.4598657 L305.611033,80 L304.077324,80 L304.077324,82.5096797 C303.513445,82.5267164 302.856697,82.5183832 301,82.5096797 L301,84.1429236 C302.210905,84.1215042 302.846234,84.0436969 302.991818,84.8201034 L302.991818,91.6918387 C302.899381,92.3078468 302.406365,92.2191446 301.308729,92.1997314 L301,94.0222313 L301.961667,94.0226864 C303.864253,94.024638 304.077355,94.0322003 304.077355,94.0322003 L304.077355,96.181454 L305.611064,96.181454 Z M305.64094,87.309876 L305.64094,84.2524587 C306.507376,84.2524587 309.216219,83.9836053 309.216219,85.7861673 C309.216219,87.5090702 306.507407,87.309876 305.64094,87.309876 Z M305.64094,92.2097003 L305.64094,88.8435846 C306.676663,88.8435846 309.848338,88.5547623 309.848338,90.5266733 C309.848338,92.4288016 306.676663,92.2097003 305.64094,92.2097003 Z","id","b","fill-rule","nonzero","transform","translate(306.949093, 88.090727) rotate(14.000000) translate(-306.949093, -88.090727) ",1,"fill-color-26"],["fxFlex","30","viewBox","0 0 278 118","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","LoopIn_Step04","transform","translate(-1799.000000, -756.000000)"],["id","LoopIn_Step04","transform","translate(1799.000000, 756.000000)"],["id","Loop","fill-rule","nonzero"],["id","Group-16","transform","translate(24.000000, 0.000000)"],["d","M55.0827415,28.5000036 C59.4468211,28.5000036 62.9999285,25.1343958 62.9999285,21.0000215 C62.9999285,16.8656472 59.4468211,13.5000393 55.0827415,13.5000393 C51.9843297,13.5000393 49.5608889,15.4359631 47.9999642,17.1843872 C46.4390396,15.4359631 44.0155987,13.5000393 40.9171869,13.5000393 C36.5531074,13.5000393 33,16.8656472 33,21.0000215 C33,25.1343958 36.5531074,28.5000036 40.9171869,28.5000036 C44.0155987,28.5000036 46.4390396,26.5640798 47.9999642,24.8156557 C49.5608889,26.5640798 51.9843297,28.5000036 55.0827415,28.5000036 Z M40.9171869,24.0000143 C39.0328073,24.0000143 37.4999893,22.6546959 37.4999893,21.0000286 C37.4999893,19.3453471 39.0328073,18.0000286 40.9171869,18.0000286 C42.707771,18.0000286 44.3577763,19.6921938 45.3234264,21.0000286 C44.3671604,22.2937501 42.7031019,24.0000143 40.9171869,24.0000143 Z M55.0827415,24.0000143 C53.2921574,24.0000143 51.6421522,22.3078492 50.676502,21.0000286 C51.6327681,19.7062929 53.2968266,18.0000286 55.0827415,18.0000286 C56.9671212,18.0000286 58.4999392,19.3453471 58.4999392,21.0000286 C58.4999392,22.6546959 56.9671212,24.0000143 55.0827415,24.0000143 Z","id","i",1,"fill-color-primary"],["id","Oval","cx","48.644129","cy","75.1589677","rx","48.644129","ry","6.61766437",1,"fill-color-2"],["id","Group-44","transform","translate(27.000000, 69.000000)","fill-rule","nonzero"],["id","Path","transform","translate(118.400000, 7.089946) scale(-1, 1) translate(-118.400000, -7.089946) ","points","234.731878 6.60770626 8.52651283e-14 6.60770626 8.52651283e-14 7.57218541 236.8 7.57218541",1,"fill-color-19"],["d","M120.192,8.96 L105.856,8.96 L105.856,1.86517468e-14 L120.192,1.86517468e-14 L120.192,8.96 Z M106.479304,8.57043501 L119.568696,8.57043501 L119.568696,0.389564988 L106.479304,0.389564988 L106.479304,8.57043501 Z","id","Shape","transform","translate(113.024000, 4.480000) scale(-1, 1) translate(-113.024000, -4.480000) ",1,"fill-color-19"],["id","Group-43","transform","translate(179.000000, 40.000000)"],["d","M225.805162,92.2474279 C226.071703,92.2474279 226.325569,92.1077892 226.465207,91.8666288 L232.050261,82.2197185 C232.345374,81.7151473 231.980441,81.0773212 231.393376,81.0773212 L227.731346,81.0773212 L229.083201,76.9583506 C229.210134,76.4759989 228.845202,76 228.346983,76 L223.777394,76 C223.396595,76 223.07291,76.2824384 223.022149,76.6600456 L222.006685,84.2760274 C221.946379,84.7329987 222.301798,85.1391782 222.76193,85.1391782 L226.528674,85.1391782 L225.065752,91.3112968 C224.951525,91.7936485 225.319618,92.2474279 225.805162,92.2474279 Z","id","b","fill-rule","nonzero","transform","translate(227.077378, 84.123714) rotate(14.000000) translate(-227.077378, -84.123714) ",1,"fill-color-12"],["fxFlex","30","viewBox","0 0 205 121","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["id","LoopIn_Step05","transform","translate(-2386.000000, -764.000000)","fill-rule","nonzero"],["id","LoopIn_Step05","transform","translate(2386.000000, 764.000000)"],["id","Illustration_Step02"],["id","Group-31"],["id","Rectangle","x","0","y","0","width","90.1490688","height","100.616012",1,"fill-color-10"],["id","Rectangle","x","1.48932403","y","67.1775068","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","74.5890324","width","51.2","height","16.0118784",1,"fill-color-primary-lighter"],["id","Oval","cx","76.317438","cy","82.4918815","r","8.15070413",1,"fill-color-primary-darker"],["id","Rectangle","x","1.48932403","y","34.712875","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","42.1244006","width","51.2","height","16.0118784",1,"fill-color-primary-lighter"],["id","Oval","cx","76.317438","cy","50.0294431","r","8.15070413",1,"fill-color-primary-darker"],["id","Rectangle","x","1.48932403","y","2.2482432","width","87.1682273","height","31.2472904",1,"fill-color-1"],["id","Rectangle","x","8.64422093","y","74.5890324","width","24","height","16.0118784",1,"fill-color-primary"],["id","Rectangle","x","8.64422093","y","42.1244006","width","36.8","height","16.0118784",1,"fill-color-primary"],["id","Rectangle","x","8.64422093","y","9.66196224","width","51.2","height","16.0118784",1,"fill-color-primary"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","50.2465905","r","8.78679245"],["id","Oval","fill","url(#linearGradient-1)","cx","76.317438","cy","82.7090289","r","8.78679245"],["id","Group","transform","translate(60.115627, 35.744427)"],["d","M133.318807,1.04548939 L82.5936439,1.04548939 L82.5936439,0 L59.5928852,0 L59.5928852,1.04548939 L8.65861943,1.04548939 C7.74861523,1.04548887 6.87588228,1.4069864 6.23241214,2.05045654 C5.58894199,2.69392669 5.22744498,3.56665964 5.22744498,4.47666384 L5.22744498,73.9350108 C5.22744498,74.8450173 5.5889387,75.7177532 6.23240879,76.3612266 C6.87587888,77.0047 7.74861298,77.3662028 8.65861943,77.3662028 L133.318807,77.3662028 C135.213795,77.3662028 136.749981,75.8300048 136.749981,73.9350167 L136.749981,4.47666384 C136.749981,3.56665964 136.388484,2.69392669 135.745014,2.05045654 C135.101544,1.4069864 134.228811,1.04548887 133.318807,1.04548939 Z","id","Path",1,"fill-color-20"],["id","Rectangle","x","9.82759671","y","7.10932665","width","122.322231","height","69.0022838",1,"fill-color-25"],["id","Path","opacity","0.257273065","points","97.1677755 76.1116475 9.82763376 76.1116475 9.82763376 7.10937149",1,"fill-color-24"],["id","Oval","cx","28.9673627","cy","59.1901502","r","11.7579927",1,"fill-color-25"],["d","M31.5848237,68.0274261 C25.669241,68.0274261 20.3361447,64.4639649 18.0723494,58.9986791 C15.808554,53.5333932 17.0598755,47.2425772 21.2428244,43.0596288 C25.4257733,38.8766804 31.7165895,37.6253598 37.1818751,39.8891559 C42.6471607,42.1529519 46.2106203,47.4860487 46.2106203,53.4016314 C46.2014756,61.4754447 39.6586369,68.0182825 31.5848237,68.0274261 L31.5848237,68.0274261 Z M31.5848237,38.967022 C23.612809,38.967022 17.1502143,45.4296168 17.1502143,53.4016314 C17.1502143,61.3736461 23.612809,67.8362409 31.5848237,67.8362409 C39.5568383,67.8362409 46.0194331,61.3736461 46.0194331,53.4016314 C46.010427,45.4333502 39.5531049,38.9760281 31.5848237,38.967022 L31.5848237,38.967022 Z","id","Shape",1,"fill-color-primary"],["id","Rectangle","x","99.4252759","y","44.3228077","width","11.4262324","height","2.38757043",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","25.733862","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","28.9741379","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","32.2144137","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","35.4546875","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","85.6114731","y","38.6949634","width","39.05384","height","1.0232453",1,"fill-color-13"],["id","Rectangle","x","119.89017","y","8.50924347","width","4.7751428","height","4.7751428",1,"fill-color-6"],["d","M126.882344,15.5014148 L121.083948,15.5014148 L121.083948,9.70301894 L126.882344,9.70301894 L126.882344,15.5014148 Z M121.336061,15.2493191 L126.63024,15.2493191 L126.63024,9.95513218 L121.336061,9.95513218 L121.336061,15.2493191 Z","id","Shape",1,"fill-color-19"],["d","M140.184525,74.8570201 L128.246669,74.8570201 L128.246669,73.9969059 C128.246671,73.9516751 128.228704,73.9082962 128.196721,73.876313 C128.164738,73.8443298 128.12136,73.826364 128.076129,73.826364 L123.98315,73.826364 C123.937919,73.826364 123.89454,73.8443305 123.862558,73.8763135 C123.830575,73.9082966 123.812608,73.9516752 123.81261,73.9969059 L123.81261,74.8570201 L121.254497,74.8570201 L121.254497,73.9969059 C121.254499,73.9516752 121.236532,73.9082966 121.204549,73.8763135 C121.172566,73.8443305 121.129188,73.826364 121.083957,73.826364 L116.990978,73.826364 C116.945747,73.826364 116.902368,73.8443297 116.870385,73.8763129 C116.838402,73.908296 116.820435,73.9516749 116.820436,73.9969059 L116.820436,74.8570201 L114.262326,74.8570201 L114.262326,73.9969059 C114.262328,73.9516749 114.24436,73.908296 114.212377,73.8763129 C114.180394,73.8443297 114.137015,73.826364 114.091784,73.826364 L109.998805,73.826364 C109.953574,73.826364 109.910196,73.8443305 109.878213,73.8763135 C109.84623,73.9082966 109.828263,73.9516752 109.828265,73.9969059 L109.828265,74.8570201 L107.270153,74.8570201 L107.270153,73.9969059 C107.270154,73.9516752 107.252187,73.9082966 107.220204,73.8763135 C107.188222,73.8443305 107.144843,73.826364 107.099613,73.826364 L103.00663,73.826364 C102.961399,73.826364 102.91802,73.8443298 102.886037,73.876313 C102.854054,73.9082962 102.836088,73.9516751 102.83609,73.9969059 L102.83609,74.8570201 L100.277981,74.8570201 L100.277981,73.9969059 C100.277983,73.9516749 100.260016,73.908296 100.228032,73.8763129 C100.196049,73.8443297 100.15267,73.826364 100.107439,73.826364 L96.0144621,73.826364 C95.9692311,73.826364 95.9258522,73.8443297 95.8938691,73.8763129 C95.861886,73.908296 95.8439187,73.9516749 95.8439202,73.9969059 L95.8439202,74.8570201 L93.285808,74.8570201 L93.285808,73.9969059 C93.2858095,73.9516752 93.2678425,73.9082966 93.2358598,73.8763135 C93.2038771,73.8443305 93.1604987,73.826364 93.1152681,73.826364 L89.0222888,73.826364 C88.9770581,73.826364 88.9336797,73.8443305 88.901697,73.8763135 C88.8697143,73.9082966 88.8517473,73.9516752 88.8517489,73.9969059 L88.8517489,74.8570201 L86.2936405,74.8570201 L86.2936405,73.9969059 C86.293642,73.9516752 86.2756751,73.9082966 86.2436923,73.8763135 C86.2117096,73.8443305 86.1683312,73.826364 86.1231006,73.826364 L54.061428,73.826364 C54.0161974,73.826364 53.972819,73.8443305 53.9408363,73.8763135 C53.9088536,73.9082966 53.8908866,73.9516752 53.8908881,73.9969059 L53.8908881,74.8570201 L51.3327759,74.8570201 L51.3327759,73.9969059 C51.3327774,73.9516749 51.3148102,73.908296 51.282827,73.8763129 C51.2508439,73.8443297 51.207465,73.826364 51.162234,73.826364 L47.0692664,73.826364 C47.0240354,73.826364 46.9806565,73.8443297 46.9486734,73.8763129 C46.9166903,73.908296 46.898723,73.9516749 46.8987246,73.9969059 L46.8987246,74.8570201 L44.3406025,74.8570201 L44.3406025,73.9969059 C44.3406046,73.9516751 44.3226378,73.9082962 44.290655,73.876313 C44.2586721,73.8443298 44.2152934,73.826364 44.1700626,73.826364 L40.0770834,73.826364 C40.0318527,73.826364 39.9884743,73.8443305 39.9564916,73.8763135 C39.9245089,73.9082966 39.9065419,73.9516752 39.9065435,73.9969059 L39.9065435,74.8570201 L37.3484312,74.8570201 L37.3484312,73.9969059 C37.3484327,73.9516752 37.3304657,73.9082966 37.298483,73.8763135 C37.2665003,73.8443305 37.2231219,73.826364 37.1778913,73.826364 L33.084912,73.826364 C33.039681,73.826364 32.9963021,73.8443297 32.964319,73.8763129 C32.9323358,73.908296 32.9143686,73.9516749 32.9143701,73.9969059 L32.9143701,74.8570201 L30.3562598,74.8570201 L30.3562598,73.9969059 C30.3562614,73.9516749 30.3382941,73.908296 30.306311,73.8763129 C30.2743278,73.8443297 30.2309489,73.826364 30.1857179,73.826364 L26.0927387,73.826364 C26.047508,73.826364 26.0041296,73.8443305 25.9721469,73.8763135 C25.9401642,73.9082966 25.9221972,73.9516752 25.9221988,73.9969059 L25.9221988,74.8570201 L23.3640826,74.8570201 L23.3640826,73.9969059 C23.3640841,73.9516752 23.3461171,73.9082966 23.3141344,73.8763135 C23.2821517,73.8443305 23.2387733,73.826364 23.1935427,73.826364 L19.1005673,73.826364 C19.0553365,73.826364 19.0119578,73.8443298 18.979975,73.876313 C18.9479921,73.9082962 18.9300253,73.9516751 18.9300274,73.9969059 L18.9300274,74.8570201 L16.3719151,74.8570201 L16.3719151,73.9969059 C16.3719167,73.9516749 16.3539494,73.908296 16.3219663,73.8763129 C16.2899831,73.8443297 16.2466042,73.826364 16.2013733,73.826364 L12.1083959,73.826364 C12.0631649,73.826364 12.0197861,73.8443297 11.9878029,73.8763129 C11.9558198,73.908296 11.9378525,73.9516749 11.9378541,73.9969059 L11.9378541,74.8570201 L4.09297732,74.8570201 C1.83248849,74.8570223 0,76.6895106 0,78.9499994 L0,80.8007483 C0,83.061233 1.83249262,84.8937159 4.09297732,84.8937159 L140.184525,84.8937159 C142.44501,84.8937159 144.277504,83.0612333 144.277504,80.8007483 L144.277504,78.9499994 C144.277504,76.6895102 142.445014,74.8570223 140.184525,74.8570201 Z","id","Path",1,"fill-color-20"],["d","M88.0406297,103.870828 C88.3071704,103.870828 88.5610365,103.731189 88.7006752,103.490029 L94.2857286,93.8431185 C94.5808417,93.3385473 94.2159092,92.7007212 93.6288439,92.7007212 L89.9668136,92.7007212 L91.318669,88.5817505 C91.445602,88.0993988 91.0806695,87.6234 90.5824512,87.6234 L86.0128621,87.6234 C85.632063,87.6234 85.3083776,87.9058383 85.2576168,88.2834455 L84.2421525,95.8994274 C84.1818469,96.3563987 84.5372656,96.7625782 84.9973979,96.7625782 L88.7641417,96.7625782 L87.30122,102.934697 C87.1869926,103.417048 87.555086,103.870828 88.0406297,103.870828 Z","id","b","transform","translate(89.312846, 95.747114) rotate(14.000000) translate(-89.312846, -95.747114) ",1,"fill-color-21"],["id","Oval","cx","74.1507041","cy","17.5648113","r","8.15070413",1,"fill-color-primary"]],template:function(be,qe){if(1&be&&(o.YNc(0,Ve,1,0,"ng-container",0),o.YNc(1,Te,32,5,"ng-template",null,1,o.W1O),o.YNc(3,ke,66,5,"ng-template",null,2,o.W1O),o.YNc(5,Y,93,5,"ng-template",null,3,o.W1O),o.YNc(7,X,54,5,"ng-template",null,4,o.W1O),o.YNc(9,he,51,5,"ng-template",null,5,o.W1O)),2&be){const vt=o.MAs(2),me=o.MAs(4),$e=o.MAs(6),St=o.MAs(8),Rt=o.MAs(10);o.Q6J("ngTemplateOutlet",1===qe.stepNumber?vt:2===qe.stepNumber?me:3===qe.stepNumber?$e:4===qe.stepNumber?St:Rt)}},directives:[R.tP,U.xw,U.yH,U.Wh,R.mk,_e.oO,G.n5,G.$j],styles:["svg.small-svg[_ngcontent-%COMP%]{height:50%;min-height:50%;max-width:100%}svg.large-svg[_ngcontent-%COMP%]{height:60%;min-height:60%;max-width:100%}"],data:{animation:[Fe.l]}}),Ke})();const ze=["stepper"];function ht(Ke,mt){if(1&Ke&&(o.TgZ(0,"div",48),o.TgZ(1,"p",49),o.TgZ(2,"strong"),o._uU(3,"Channel Peer:\xa0"),o.qZA(),o._uU(4),o.ALo(5,"titlecase"),o.qZA(),o.TgZ(6,"p",50),o.TgZ(7,"strong"),o._uU(8,"Channel ID:\xa0"),o.qZA(),o._uU(9),o.qZA(),o._UZ(10,"p",50),o.qZA()),2&Ke){const be=o.oxw(2);o.xp6(4),o.Oqu(o.lcZ(5,2,be.channel.remote_alias)),o.xp6(5),o.Oqu(be.channel.chan_id)}}function it(Ke,mt){if(1&Ke&&o._uU(0),2&Ke){const be=o.oxw(2);o.Oqu(be.inputFormLabel)}}function ft(Ke,mt){1&Ke&&(o.TgZ(0,"mat-error"),o._uU(1,"Amount is required."),o.qZA())}function nt(Ke,mt){if(1&Ke&&(o.TgZ(0,"mat-error"),o._uU(1),o.ALo(2,"number"),o.qZA()),2&Ke){const be=o.oxw(2);o.xp6(1),o.hij("Amount must be greater than or equal to ",o.lcZ(2,1,be.minQuote.amount),".")}}function st(Ke,mt){if(1&Ke&&(o.TgZ(0,"mat-error"),o._uU(1),o.ALo(2,"number"),o.qZA()),2&Ke){const be=o.oxw(2);o.xp6(1),o.hij("Amount must be less than or equal to ",o.lcZ(2,1,be.maxQuote.amount),".")}}function wt(Ke,mt){1&Ke&&(o.TgZ(0,"mat-error"),o._uU(1,"Confirmation target is required."),o.qZA())}function Bt(Ke,mt){1&Ke&&(o.TgZ(0,"mat-error"),o._uU(1,"Confirmation target must be a positive number."),o.qZA())}function Nt(Ke,mt){1&Ke&&(o.TgZ(0,"mat-error"),o._uU(1,"Percentage is required."),o.qZA())}function Vt(Ke,mt){1&Ke&&(o.TgZ(0,"mat-error"),o._uU(1,"Percentage must be a positive number."),o.qZA())}function Oi(Ke,mt){if(1&Ke&&(o.TgZ(0,"mat-form-field",50),o._UZ(1,"input",51),o.YNc(2,Nt,2,0,"mat-error",25),o.YNc(3,Vt,2,0,"mat-error",25),o.qZA()),2&Ke){const be=o.oxw(2);o.xp6(1),o.Q6J("step",1),o.xp6(1),o.Q6J("ngIf",null==be.inputFormGroup.controls.routingFeePercent.errors?null:be.inputFormGroup.controls.routingFeePercent.errors.required),o.xp6(1),o.Q6J("ngIf",null==be.inputFormGroup.controls.routingFeePercent.errors?null:be.inputFormGroup.controls.routingFeePercent.errors.min)}}function jt(Ke,mt){1&Ke&&(o.TgZ(0,"mat-slide-toggle",52),o._uU(1,"Fast"),o.qZA())}function ti(Ke,mt){if(1&Ke&&o._uU(0),2&Ke){const be=o.oxw(2);o.Oqu(be.quoteFormLabel)}}function Pi(Ke,mt){1&Ke&&(o.TgZ(0,"p",53),o.TgZ(1,"mat-icon",54),o._uU(2,"close"),o.qZA(),o._uU(3,"Local balance amount is insufficient for swap."),o.qZA())}function si(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",55),o.NdJ("click",function(){return o.CHM(be),o.oxw(2).onValidateAmount()}),o._uU(1,"Next"),o.qZA()}}function di(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",56),o.NdJ("click",function(){return o.CHM(be),o.oxw(2).onLoop()}),o._uU(1),o.qZA()}if(2&Ke){const be=o.oxw(2);o.xp6(1),o.hij("Initiate ",be.loopDirectionCaption,"")}}function He(Ke,mt){if(1&Ke&&o._uU(0),2&Ke){const be=o.oxw(3);o.Oqu(be.addressFormLabel)}}function Se(Ke,mt){1&Ke&&(o.TgZ(0,"mat-error"),o._uU(1,"Address is required."),o.qZA())}function V(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"mat-step",16),o.TgZ(1,"form",17),o.YNc(2,He,1,1,"ng-template",18),o.TgZ(3,"div",57),o.TgZ(4,"mat-radio-group",58),o.NdJ("change",function(vt){return o.CHM(be),o.oxw(2).onAddressTypeChange(vt)}),o.TgZ(5,"mat-radio-button",59),o._uU(6,"Node Local Address"),o.qZA(),o.TgZ(7,"mat-radio-button",60),o._uU(8,"External Address"),o.qZA(),o.qZA(),o.TgZ(9,"mat-form-field",61),o._UZ(10,"input",62),o.YNc(11,Se,2,0,"mat-error",25),o.qZA(),o.qZA(),o.TgZ(12,"div",29),o.TgZ(13,"button",63),o.NdJ("click",function(){return o.CHM(be),o.oxw(2).onLoop()}),o._uU(14),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw(2);o.Q6J("stepControl",be.addressFormGroup)("editable",be.flgEditable),o.xp6(1),o.Q6J("formGroup",be.addressFormGroup),o.xp6(9),o.Q6J("required","external"===be.addressFormGroup.controls.addressType.value),o.xp6(1),o.Q6J("ngIf",null==be.addressFormGroup.controls.address.errors?null:be.addressFormGroup.controls.address.errors.required),o.xp6(3),o.hij("Initiate ",be.loopDirectionCaption,"")}}function ve(Ke,mt){if(1&Ke&&o._uU(0),2&Ke){const be=o.oxw(2);o.hij("",be.loopDirectionCaption," Status")}}function Ee(Ke,mt){if(1&Ke&&(o.TgZ(0,"mat-icon",64),o._uU(1),o.qZA()),2&Ke){const be=o.oxw(2);o.xp6(1),o.Oqu(be.loopStatus&&null!=be.loopStatus&&be.loopStatus.id_bytes?"check":"close")}}function et(Ke,mt){1&Ke&&o._UZ(0,"div")}function $t(Ke,mt){1&Ke&&o._UZ(0,"mat-progress-bar",65)}function Pt(Ke,mt){if(1&Ke&&(o.TgZ(0,"h4",66),o._uU(1),o.qZA()),2&Ke){const be=o.oxw(2);o.xp6(1),o.Oqu(be.loopStatus&&be.loopStatus.error?be.loopDirectionCaption+" failed.":be.loopStatus&&be.loopStatus.id_bytes&&be.channel?be.loopDirectionCaption+" request placed successfully. You can check the status of the request on the 'Loop' menu.":be.loopDirectionCaption+" request placed successfully.")}}function Xt(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",67),o.NdJ("click",function(){return o.CHM(be),o.oxw(2).goToLoop()}),o._uU(1,"Check Status"),o.qZA()}}function lt(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",68),o.NdJ("click",function(){return o.CHM(be),o.oxw(2).onRestart()}),o._uU(1,"Start Again"),o.qZA()}}function Pe(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",3),o.TgZ(1,"div",4),o.TgZ(2,"mat-card-header",5),o.TgZ(3,"div",6),o.TgZ(4,"span",7),o._uU(5),o.qZA(),o.qZA(),o.TgZ(6,"div",8),o.TgZ(7,"button",9),o.NdJ("click",function(){return o.CHM(be),o.oxw().showInfo()}),o._uU(8,"?"),o.qZA(),o.TgZ(9,"button",10),o.NdJ("click",function(){return o.CHM(be),o.oxw().onClose()}),o._uU(10,"X"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(11,"mat-card-content",11),o.TgZ(12,"div",12),o.YNc(13,ht,11,4,"div",13),o.TgZ(14,"mat-vertical-stepper",14,15),o.NdJ("selectionChange",function(vt){return o.CHM(be),o.oxw().stepSelectionChanged(vt)}),o.TgZ(16,"mat-step",16),o.TgZ(17,"form",17),o.YNc(18,it,1,1,"ng-template",18),o.TgZ(19,"div",19),o._UZ(20,"rtl-loop-quote",20),o._UZ(21,"rtl-loop-quote",20),o.qZA(),o.TgZ(22,"div",21),o.TgZ(23,"mat-form-field",22),o._UZ(24,"input",23),o.TgZ(25,"mat-hint"),o._uU(26),o.ALo(27,"number"),o.ALo(28,"number"),o.qZA(),o.TgZ(29,"span",24),o._uU(30,"Sats"),o.qZA(),o.YNc(31,ft,2,0,"mat-error",25),o.YNc(32,nt,3,3,"mat-error",25),o.YNc(33,st,3,3,"mat-error",25),o.qZA(),o.TgZ(34,"mat-form-field",22),o._UZ(35,"input",26),o.YNc(36,wt,2,0,"mat-error",25),o.YNc(37,Bt,2,0,"mat-error",25),o.qZA(),o.YNc(38,Oi,4,3,"mat-form-field",27),o.YNc(39,jt,2,0,"mat-slide-toggle",28),o.qZA(),o.TgZ(40,"div",29),o.TgZ(41,"button",30),o.NdJ("click",function(){return o.CHM(be),o.oxw().onEstimateQuote()}),o._uU(42,"Estimate Quote"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(43,"mat-step",16),o.TgZ(44,"form",17),o.YNc(45,ti,1,1,"ng-template",18),o._UZ(46,"rtl-loop-quote",31),o.YNc(47,Pi,4,0,"p",32),o.TgZ(48,"div",29),o.YNc(49,si,2,0,"button",33),o.YNc(50,di,2,1,"button",34),o.qZA(),o.qZA(),o.qZA(),o.YNc(51,V,15,6,"mat-step",35),o.TgZ(52,"mat-step",36),o.TgZ(53,"form",17),o.YNc(54,ve,1,1,"ng-template",18),o.TgZ(55,"div",37),o.TgZ(56,"mat-expansion-panel",38),o.TgZ(57,"mat-expansion-panel-header"),o.TgZ(58,"mat-panel-title"),o.TgZ(59,"span",39),o._uU(60),o.YNc(61,Ee,2,1,"mat-icon",40),o.qZA(),o.qZA(),o.qZA(),o.YNc(62,et,1,0,"div",41),o.qZA(),o.YNc(63,$t,1,0,"mat-progress-bar",42),o.qZA(),o.YNc(64,Pt,2,1,"h4",43),o.TgZ(65,"div",29),o.YNc(66,Xt,2,0,"button",44),o.YNc(67,lt,2,0,"button",45),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.TgZ(68,"div",46),o.TgZ(69,"button",47),o._uU(70,"Close"),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw(),qe=o.MAs(2);o.Q6J("@opacityAnimation",void 0),o.xp6(3),o.Q6J("fxFlex",be.screenSize===be.screenSizeEnum.XS||be.screenSize===be.screenSizeEnum.SM?"83":"91"),o.xp6(2),o.Oqu(be.channel?"Channel "+be.loopDirectionCaption:be.loopDirectionCaption),o.xp6(1),o.Q6J("fxFlex",be.screenSize===be.screenSizeEnum.XS||be.screenSize===be.screenSizeEnum.SM?"17":"9"),o.xp6(7),o.Q6J("ngIf",be.channel),o.xp6(1),o.Q6J("linear",!0),o.xp6(2),o.Q6J("stepControl",be.inputFormGroup)("editable",be.flgEditable),o.xp6(1),o.Q6J("formGroup",be.inputFormGroup),o.xp6(3),o.Q6J("quote",be.minQuote)("termCaption","min")("panelExpanded",!1)("showPanel",!0),o.xp6(1),o.Q6J("quote",be.maxQuote)("termCaption","max")("panelExpanded",!1)("showPanel",!0),o.xp6(2),o.Q6J("fxFlex",be.direction===be.LoopTypeEnum.LOOP_OUT?"30":"48"),o.xp6(1),o.Q6J("step",1e3),o.xp6(2),o.AsE("Range: ",o.lcZ(27,51,be.minQuote.amount),"-",o.lcZ(28,53,be.maxQuote.amount),""),o.xp6(5),o.Q6J("ngIf",null==be.inputFormGroup.controls.amount.errors?null:be.inputFormGroup.controls.amount.errors.required),o.xp6(1),o.Q6J("ngIf",null==be.inputFormGroup.controls.amount.errors?null:be.inputFormGroup.controls.amount.errors.min),o.xp6(1),o.Q6J("ngIf",null==be.inputFormGroup.controls.amount.errors?null:be.inputFormGroup.controls.amount.errors.max),o.xp6(1),o.Q6J("fxFlex",be.direction===be.LoopTypeEnum.LOOP_OUT?"20":"48"),o.xp6(1),o.Q6J("step",1),o.xp6(1),o.Q6J("ngIf",null==be.inputFormGroup.controls.sweepConfTarget.errors?null:be.inputFormGroup.controls.sweepConfTarget.errors.required),o.xp6(1),o.Q6J("ngIf",null==be.inputFormGroup.controls.sweepConfTarget.errors?null:be.inputFormGroup.controls.sweepConfTarget.errors.min),o.xp6(1),o.Q6J("ngIf",be.direction===be.LoopTypeEnum.LOOP_OUT),o.xp6(1),o.Q6J("ngIf",be.direction===be.LoopTypeEnum.LOOP_OUT),o.xp6(4),o.Q6J("stepControl",be.quoteFormGroup)("editable",be.flgEditable),o.xp6(1),o.Q6J("formGroup",be.quoteFormGroup),o.xp6(2),o.Q6J("quote",be.quote)("showPanel",!1),o.xp6(1),o.Q6J("ngIf",be.inputFormGroup.controls.amount.value>be.localBalanceToCompare),o.xp6(2),o.Q6J("ngIf",be.direction===be.LoopTypeEnum.LOOP_OUT),o.xp6(1),o.Q6J("ngIf",be.direction===be.LoopTypeEnum.LOOP_IN),o.xp6(1),o.Q6J("ngIf",be.direction===be.LoopTypeEnum.LOOP_OUT),o.xp6(1),o.Q6J("stepControl",be.statusFormGroup),o.xp6(1),o.Q6J("formGroup",be.statusFormGroup),o.xp6(3),o.Q6J("expanded",!!be.loopStatus),o.xp6(4),o.Oqu(be.loopStatus?be.loopStatus.id_bytes?be.loopDirectionCaption+" request details":be.loopDirectionCaption+" error details":"Waiting for "+be.loopDirectionCaption+" request..."),o.xp6(1),o.Q6J("ngIf",be.loopStatus),o.xp6(1),o.Q6J("ngIf",!be.loopStatus)("ngIfElse",qe),o.xp6(1),o.Q6J("ngIf",!be.loopStatus),o.xp6(1),o.Q6J("ngIf",be.loopStatus),o.xp6(2),o.Q6J("ngIf",be.loopStatus&&be.loopStatus.id_bytes&&be.channel),o.xp6(1),o.Q6J("ngIf",be.loopStatus&&(be.loopStatus.error||!be.loopStatus.id_bytes)),o.xp6(2),o.Q6J("mat-dialog-close",!1)}}function Be(Ke,mt){if(1&Ke&&o._UZ(0,"rtl-loop-status",69),2&Ke){const be=o.oxw();o.Q6J("loopStatus",be.loopStatus)}}function rt(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"rtl-loop-out-info-graphics",86),o.NdJ("stepNumberChange",function(vt){return o.CHM(be),o.oxw(2).stepNumber=vt}),o.qZA()}if(2&Ke){const be=o.oxw(2);o.Q6J("stepNumber",be.stepNumber)("animationDirection",be.animationDirection)}}function ot(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"rtl-loop-in-info-graphics",86),o.NdJ("stepNumberChange",function(vt){return o.CHM(be),o.oxw(2).stepNumber=vt}),o.qZA()}if(2&Ke){const be=o.oxw(2);o.Q6J("stepNumber",be.stepNumber)("animationDirection",be.animationDirection)}}const At=function(Ke,mt){return{"dot-primary":Ke,"dot-primary-lighter":mt}};function li(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"span",87),o.NdJ("click",function(){const me=o.CHM(be).$implicit;return o.oxw(2).onStepChanged(me)}),o._UZ(1,"p",88),o.qZA()}if(2&Ke){const be=mt.$implicit,qe=o.oxw(2);o.xp6(1),o.Q6J("ngClass",o.WLB(1,At,qe.stepNumber===be,qe.stepNumber!==be))}}function Ut(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",89),o.NdJ("click",function(){return o.CHM(be),o.oxw(2).onReadMore()}),o._uU(1,"Read More"),o.qZA()}}function Ft(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",90),o.NdJ("click",function(){return o.CHM(be),o.oxw(2).onStepChanged(4)}),o._uU(1,"Back"),o.qZA()}}function Si(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",91),o.NdJ("click",function(){o.CHM(be);const vt=o.oxw(2);return vt.flgShowInfo=!1,vt.stepNumber=1}),o._uU(1,"Close"),o.qZA()}}function ai(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",92),o.NdJ("click",function(){o.CHM(be);const vt=o.oxw(2);return vt.flgShowInfo=!1,vt.stepNumber=1}),o._uU(1,"Close"),o.qZA()}}function ci(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",93),o.NdJ("click",function(){o.CHM(be);const vt=o.oxw(2);return vt.onStepChanged(vt.stepNumber-1)}),o._uU(1,"Back"),o.qZA()}}function rn(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"button",94),o.NdJ("click",function(){o.CHM(be);const vt=o.oxw(2);return vt.onStepChanged(vt.stepNumber+1)}),o._uU(1,"Next"),o.qZA()}}const Vi=function(){return[1,2,3,4,5]};function Di(Ke,mt){if(1&Ke){const be=o.EpF();o.TgZ(0,"div",70),o.TgZ(1,"div",19),o.TgZ(2,"mat-card-header",71),o.TgZ(3,"div",72),o._UZ(4,"span",7),o.qZA(),o.TgZ(5,"div",73),o.TgZ(6,"button",74),o.NdJ("click",function(){o.CHM(be);const vt=o.oxw();return vt.flgShowInfo=!1,vt.stepNumber=1}),o._uU(7,"X"),o.qZA(),o.qZA(),o.qZA(),o.TgZ(8,"mat-card-content",75),o.YNc(9,rt,1,2,"rtl-loop-out-info-graphics",76),o.YNc(10,ot,1,2,"rtl-loop-in-info-graphics",76),o.qZA(),o.TgZ(11,"div",77),o.YNc(12,li,2,4,"span",78),o.qZA(),o.TgZ(13,"div",79),o.YNc(14,Ut,2,0,"button",80),o.YNc(15,Ft,2,0,"button",81),o.YNc(16,Si,2,0,"button",82),o.YNc(17,ai,2,0,"button",83),o.YNc(18,ci,2,0,"button",84),o.YNc(19,rn,2,0,"button",85),o.qZA(),o.qZA(),o.qZA()}if(2&Ke){const be=o.oxw();o.Q6J("@opacityAnimation",void 0),o.xp6(9),o.Q6J("ngIf",be.direction===be.LoopTypeEnum.LOOP_OUT),o.xp6(1),o.Q6J("ngIf",be.direction===be.LoopTypeEnum.LOOP_IN),o.xp6(2),o.Q6J("ngForOf",o.DdM(10,Vi)),o.xp6(2),o.Q6J("ngIf",5===be.stepNumber),o.xp6(1),o.Q6J("ngIf",5===be.stepNumber),o.xp6(1),o.Q6J("ngIf",5===be.stepNumber),o.xp6(1),o.Q6J("ngIf",be.stepNumber<5),o.xp6(1),o.Q6J("ngIf",be.stepNumber>1&&be.stepNumber<5),o.xp6(1),o.Q6J("ngIf",be.stepNumber<5)}}let Xi=(()=>{class Ke{constructor(be,qe,vt,me,$e,St,Rt,yi,Ri){this.dialogRef=be,this.data=qe,this.store=vt,this.loopService=me,this.formBuilder=$e,this.decimalPipe=St,this.logger=Rt,this.router=yi,this.commonService=Ri,this.faInfoCircle=s.sqG,this.LoopTypeEnum=c.$I,this.direction=c.$I.LOOP_OUT,this.loopDirectionCaption="Loop out",this.loopStatus=null,this.inputFormLabel="Amount to loop out",this.quoteFormLabel="Confirm Quote",this.addressFormLabel="Withdrawal Address",this.prepayRoutingFee=36,this.flgShowInfo=!1,this.stepNumber=1,this.screenSize="",this.screenSizeEnum=c.cu,this.animationDirection="forward",this.flgEditable=!0,this.localBalanceToCompare=null,this.unSubs=[new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.channel=this.data.channel,this.minQuote=this.data.minQuote?this.data.minQuote:{},this.maxQuote=this.data.maxQuote?this.data.maxQuote:{},this.direction=this.data.direction,this.loopDirectionCaption=this.direction===c.$I.LOOP_IN?"Loop in":"Loop out",this.inputFormLabel="Amount to "+this.loopDirectionCaption,this.inputFormGroup=this.formBuilder.group({amount:[this.minQuote.amount,[e.kI.required,e.kI.min(this.minQuote.amount),e.kI.max(this.maxQuote.amount)]],sweepConfTarget:[6,[e.kI.required,e.kI.min(1)]],routingFeePercent:[2,[e.kI.required,e.kI.min(0)]],fast:[!1,[e.kI.required]]}),this.quoteFormGroup=this.formBuilder.group({}),this.addressFormGroup=this.formBuilder.group({addressType:["local",[e.kI.required]],address:[{value:"",disabled:!0}]}),this.statusFormGroup=this.formBuilder.group({}),this.onFormValueChanges(),this.store.select(P.ZW).pipe((0,v.R)(this.unSubs[6])).subscribe(be=>{this.localBalanceToCompare=this.channel?+this.channel.local_balance:+be.lightningBalance.local})}ngAfterViewInit(){this.inputFormGroup.setErrors({Invalid:!0}),this.direction===c.$I.LOOP_OUT&&this.addressFormGroup.setErrors({Invalid:!0})}onFormValueChanges(){this.inputFormGroup.valueChanges.pipe((0,v.R)(this.unSubs[4])).subscribe(be=>{this.inputFormGroup.setErrors({Invalid:!0})}),this.direction===c.$I.LOOP_OUT&&this.addressFormGroup.valueChanges.pipe((0,v.R)(this.unSubs[5])).subscribe(be=>{this.addressFormGroup.setErrors({Invalid:!0})})}onAddressTypeChange(be){"external"===be.value?(this.addressFormGroup.controls.address.setValidators([e.kI.required]),this.addressFormGroup.controls.address.markAsTouched(),this.addressFormGroup.controls.address.enable()):(this.addressFormGroup.controls.address.setValidators(null),this.addressFormGroup.controls.address.markAsPristine(),this.addressFormGroup.controls.address.disable(),this.addressFormGroup.controls.address.setValue("")),this.addressFormGroup.setErrors({Invalid:!0})}onValidateAmount(){this.inputFormGroup.controls.amount.value<=this.localBalanceToCompare&&this.stepper.next()}onLoop(){if(!this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.amount.valuethis.maxQuote.amount||!this.inputFormGroup.controls.sweepConfTarget.value||this.inputFormGroup.controls.sweepConfTarget.value<2||this.direction===c.$I.LOOP_OUT&&(!this.inputFormGroup.controls.routingFeePercent.value||this.inputFormGroup.controls.routingFeePercent.value<0)||this.direction===c.$I.LOOP_OUT&&"external"===this.addressFormGroup.controls.addressType.value&&(!this.addressFormGroup.controls.address.value||""===this.addressFormGroup.controls.address.value.trim()))return!0;if(this.flgEditable=!1,this.stepper.selected.stepControl.setErrors(null),this.stepper.next(),this.direction===c.$I.LOOP_IN)this.loopService.loopIn(this.inputFormGroup.controls.amount.value,+this.quote.swap_fee_sat,+this.quote.htlc_publish_fee_sat,"",!0).pipe((0,v.R)(this.unSubs[0])).subscribe({next:be=>{this.loopStatus=be,this.loopService.listSwaps(),this.flgEditable=!0},error:be=>{this.loopStatus={error:be},this.flgEditable=!0,this.logger.error(be)}});else{const be=Math.ceil(this.inputFormGroup.controls.amount.value*(this.inputFormGroup.controls.routingFeePercent.value/100)),qe="external"===this.addressFormGroup.controls.addressType.value?this.addressFormGroup.controls.address.value:"",vt=this.inputFormGroup.controls.fast.value?0:(new Date).getTime()+18e5;this.loopService.loopOut(this.inputFormGroup.controls.amount.value,this.channel&&this.channel.chan_id?this.channel.chan_id:"",this.inputFormGroup.controls.sweepConfTarget.value,be,+this.quote.htlc_sweep_fee_sat,this.prepayRoutingFee,+this.quote.prepay_amt_sat,+this.quote.swap_fee_sat,vt,qe).pipe((0,v.R)(this.unSubs[1])).subscribe({next:me=>{this.loopStatus=me,this.loopService.listSwaps(),this.flgEditable=!0},error:me=>{this.loopStatus={error:me},this.flgEditable=!0,this.logger.error(me)}})}}onEstimateQuote(){if(!this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.amount.valuethis.maxQuote.amount||!this.inputFormGroup.controls.sweepConfTarget.value||this.inputFormGroup.controls.sweepConfTarget.value<2)return!0;const be=this.inputFormGroup.controls.fast.value?0:(new Date).getTime()+18e5;this.direction===c.$I.LOOP_IN?this.loopService.getLoopInQuote(this.inputFormGroup.controls.amount.value,this.inputFormGroup.controls.sweepConfTarget.value,be).pipe((0,v.R)(this.unSubs[2])).subscribe(qe=>{this.quote=qe,this.quote.off_chain_swap_routing_fee_percentage=this.inputFormGroup.controls.routingFeePercent.value?this.inputFormGroup.controls.routingFeePercent.value:2}):this.loopService.getLoopOutQuote(this.inputFormGroup.controls.amount.value,this.inputFormGroup.controls.sweepConfTarget.value,be).pipe((0,v.R)(this.unSubs[3])).subscribe(qe=>{this.quote=qe,this.quote.off_chain_swap_routing_fee_percentage=this.inputFormGroup.controls.routingFeePercent.value?this.inputFormGroup.controls.routingFeePercent.value:2}),this.stepper.selected.stepControl.setErrors(null),this.stepper.next()}stepSelectionChanged(be){switch(be.selectedIndex){case 0:default:this.inputFormLabel="Amount to "+this.loopDirectionCaption,this.quoteFormLabel="Confirm Quote",this.addressFormLabel="Withdrawal Address";break;case 1:this.inputFormLabel=this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.sweepConfTarget.value?this.direction===c.$I.LOOP_IN?this.loopDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats | Target Confirmation: "+(this.inputFormGroup.controls.sweepConfTarget.value?this.inputFormGroup.controls.sweepConfTarget.value:6):this.loopDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats | Target Confirmation: "+(this.inputFormGroup.controls.sweepConfTarget.value?this.inputFormGroup.controls.sweepConfTarget.value:6)+" | Percentage: "+(this.inputFormGroup.controls.routingFeePercent.value?this.inputFormGroup.controls.routingFeePercent.value:"2")+" | Fast: "+(this.inputFormGroup.controls.fast.value?"Enabled":"Disabled"):"Amount to "+this.loopDirectionCaption,this.quoteFormLabel="Confirm Quote",this.addressFormLabel="Withdrawal Address";break;case 2:this.inputFormLabel=this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.sweepConfTarget.value?this.direction===c.$I.LOOP_IN?this.loopDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats | Target Confirmation: "+(this.inputFormGroup.controls.sweepConfTarget.value?this.inputFormGroup.controls.sweepConfTarget.value:6):this.loopDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats | Target Confirmation: "+(this.inputFormGroup.controls.sweepConfTarget.value?this.inputFormGroup.controls.sweepConfTarget.value:6)+" | Fast: "+(this.inputFormGroup.controls.fast.value?"Enabled":"Disabled"):"Amount to "+this.loopDirectionCaption,this.quoteFormLabel=this.quote&&this.quote.swap_fee_sat&&(this.quote.htlc_sweep_fee_sat||this.quote.htlc_publish_fee_sat)&&this.quote.prepay_amt_sat?"Quote confirmed | Estimated Fees: "+this.decimalPipe.transform(+this.quote.swap_fee_sat+ +(this.quote.htlc_sweep_fee_sat?this.quote.htlc_sweep_fee_sat:this.quote.htlc_publish_fee_sat?this.quote.htlc_publish_fee_sat:0))+" Sats":"Quote confirmed",this.addressFormLabel=this.addressFormGroup.controls.addressType.value?"Withdrawal Address | Type: "+this.addressFormGroup.controls.addressType.value:"Withdrawal Address"}(this.direction===c.$I.LOOP_OUT&&1!==be.selectedIndex&&be.selectedIndex{be.next(null),be.complete()})}}return Ke.\u0275fac=function(be){return new(be||Ke)(o.Y36(M.so),o.Y36(M.WI),o.Y36(O.yh),o.Y36(T.W),o.Y36(e.qu),o.Y36(R.JJ),o.Y36(S.mQ),o.Y36(D.F0),o.Y36(w.v))},Ke.\u0275cmp=o.Xpm({type:Ke,selectors:[["rtl-loop-modal"]],viewQuery:function(be,qe){if(1&be&&o.Gf(ze,5),2&be){let vt;o.iGM(vt=o.CRH())&&(qe.stepper=vt.first)}},decls:4,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf"],["loopStatusBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch","class","info-graphics-container",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxLayoutAlign","start start",3,"fxFlex"],[1,"page-title"],["fxLayoutAlign","space-between end",3,"fxFlex"],["tabindex","21","mat-button","",1,"btn-close-x","p-0",3,"click"],["tabindex","22","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["class","padding-gap-large","fxLayout","row wrap","fxLayoutAlign","space-between stretch",4,"ngIf"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[3,"quote","termCaption","panelExpanded","showPanel"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],[3,"fxFlex"],["autoFocus","","matInput","","placeholder","Amount","type","number","tabindex","1","formControlName","amount","required","",3,"step"],["matSuffix",""],[4,"ngIf"],["matInput","","placeholder","Sweep Confirmation Target","type","number","tabindex","2","formControlName","sweepConfTarget","required","",3,"step"],["fxFlex","30",4,"ngIf"],["matTooltip","Swap immediately (Might end up paying a higher on-chain fee)","fxFlex","15","tabindex","4","color","primary","formControlName","fast",4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-button","","color","primary","tabindex","5","type","button",3,"click"],[3,"quote","showPanel"],["fxFlex","100","class","color-warn mt-2","fxLayoutAlign","start center",4,"ngIf"],["mat-button","","color","primary","tabindex","6","type","button",3,"click",4,"ngIf"],["mat-button","","color","primary","tabindex","7","type","button",3,"click",4,"ngIf"],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"flat-expansion-panel",3,"expanded"],["fxLayoutAlign","start center","fxFlex","100"],["class","ml-1 icon-small",4,"ngIf"],[4,"ngIf","ngIfElse"],["fxFlex","100","color","primary","mode","indeterminate",4,"ngIf"],["fxLayoutAlign","start","class","font-bold-500 mt-2",4,"ngIf"],["mat-button","","color","primary","tabindex","12","type","button",3,"click",4,"ngIf"],["mat-button","","color","primary","tabindex","13","type","button",3,"click",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end end"],["mat-button","","color","primary","tabindex","14","type","button","default","",3,"mat-dialog-close"],["fxLayout","row wrap","fxLayoutAlign","space-between stretch",1,"padding-gap-large"],["fxFlex","40"],["fxFlex","30"],["matInput","","placeholder","Max Off-chain Routing Fee (%)","type","number","tabindex","3","formControlName","routingFeePercent","required","",3,"step"],["matTooltip","Swap immediately (Might end up paying a higher on-chain fee)","fxFlex","15","tabindex","4","color","primary","formControlName","fast"],["fxFlex","100","fxLayoutAlign","start center",1,"color-warn","mt-2"],[1,"mr-1","icon-small"],["mat-button","","color","primary","tabindex","6","type","button",3,"click"],["mat-button","","color","primary","tabindex","7","type","button",3,"click"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mt-1"],["color","primary","name","addressType","formControlName","addressType","fxFlex","100","fxLayoutAlign","space-between stretch",3,"change"],["fxFlex","48","tabindex","8","value","local"],["fxFlex","48","tabindex","9","value","external"],["fxFlex","100",1,"mt-1"],["matInput","","placeholder","Address","tabindex","10","formControlName","address",3,"required"],["mat-button","","color","primary","tabindex","11","type","button",3,"click"],[1,"ml-1","icon-small"],["fxFlex","100","color","primary","mode","indeterminate"],["fxLayoutAlign","start",1,"font-bold-500","mt-2"],["mat-button","","color","primary","tabindex","12","type","button",3,"click"],["mat-button","","color","primary","tabindex","13","type","button",3,"click"],["fxLayout","column",3,"loopStatus"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"info-graphics-container"],["fxLayout","row","fxFlex","8","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],["fxFlex","5","fxLayoutAlign","end center"],["tabindex","19","mat-button","",1,"btn-close-x","p-0",3,"click"],["fxLayout","column","fxFlex","70","fxLayoutAlign","space-between center",1,"padding-gap-x-large"],["fxFlex","100",3,"stepNumber","animationDirection","stepNumberChange",4,"ngIf"],["fxLayout","row","fxFlex","10","fxLayoutAlign","center end",1,"padding-gap-x-large","padding-gap-bottom-large"],["fxLayoutAlign","center center","class","dots-stepper-block",3,"click",4,"ngFor","ngForOf"],["fxLayout","row","fxFlex","10","fxLayoutAlign","end end",1,"padding-gap-x-large","padding-gap-bottom-large"],["mat-button","","class","mr-1","color","primary","tabindex","15","type","button",3,"click",4,"ngIf"],["mat-button","","class","mr-1","color","primary","tabindex","16","type","button",3,"click",4,"ngIf"],["mat-button","","color","primary","tabindex","17","type","button",3,"click",4,"ngIf"],["mat-button","","class","mr-1","color","primary","tabindex","18","type","button",3,"click",4,"ngIf"],["mat-button","","class","mr-1","color","primary","tabindex","19","type","button",3,"click",4,"ngIf"],["mat-button","","color","primary","tabindex","20","type","button",3,"click",4,"ngIf"],["fxFlex","100",3,"stepNumber","animationDirection","stepNumberChange"],["fxLayoutAlign","center center",1,"dots-stepper-block",3,"click"],[1,"dot","tiny-dot","mr-0",3,"ngClass"],["mat-button","","color","primary","tabindex","15","type","button",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","16","type","button",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","17","type","button",3,"click"],["mat-button","","color","primary","tabindex","18","type","button",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","19","type","button",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","20","type","button",3,"click"]],template:function(be,qe){1&be&&(o.YNc(0,Pe,71,55,"div",0),o.YNc(1,Be,1,1,"ng-template",null,1,o.W1O),o.YNc(3,Di,20,11,"div",2)),2&be&&(o.Q6J("ngIf",!qe.flgShowInfo),o.xp6(3),o.Q6J("ngIf",qe.flgShowInfo))},directives:[R.O5,U.xw,U.yH,U.Wh,G.dk,W.lW,G.dn,ee.Vq,ee.C0,e._Y,e.JL,e.sg,ee.VY,_,L.KE,I.Nt,e.wV,e.Fj,x.h,e.JJ,e.u,e.Q7,L.bx,L.R9,ie.ib,ie.yz,ie.yK,M.ZT,L.TO,r.Rr,fe.gM,b.Hw,J.VQ,J.U0,F.pW,Re,R.sg,Ne,Me,R.mk,_e.oO],pipes:[R.JJ,R.rS],styles:[".dots-stepper-block[_ngcontent-%COMP%]{width:3rem}.info-graphics-container[_ngcontent-%COMP%]{max-height:60rem;min-height:60rem}"],data:{animation:[C._]}}),Ke})()},3390:(Ue,K,m)=>{"use strict";m.d(K,{h:()=>t});var e=m(5e3);let t=(()=>{class v{constructor(s){this.el=s}ngAfterContentInit(){setTimeout(()=>{this.el.nativeElement.focus()},500)}}return v.\u0275fac=function(s){return new(s||v)(e.Y36(e.SBq))},v.\u0275dir=e.lG2({type:v,selectors:[["","autoFocus",""]],inputs:{appAutoFocus:"appAutoFocus"}}),v})()},6895:(Ue,K,m)=>{"use strict";m.d(K,{y:()=>t});var e=m(5e3);let t=(()=>{class v{constructor(){this.copied=new e.vpe}onClick(s){s.preventDefault(),this.payload&&navigator.clipboard&&navigator.clipboard.writeText(this.payload.toString()).then(()=>{this.copied.emit(this.payload.toString())},C=>{this.copied.emit("Error could not copy text: "+JSON.stringify(C))})}}return v.\u0275fac=function(s){return new(s||v)},v.\u0275dir=e.lG2({type:v,selectors:[["","rtlClipboard",""]],hostBindings:function(s,C){1&s&&e.NdJ("click",function(P){return C.onClick(P)})},inputs:{payload:"payload"},outputs:{copied:"copied"}}),v})()},6534:(Ue,K,m)=>{"use strict";m.d(K,{q:()=>v});var e=m(3075),t=m(5e3);let v=(()=>{class M{validate(C){return this.min?e.kI.min(+this.min)(C):null}}return M.\u0275fac=function(C){return new(C||M)},M.\u0275dir=t.lG2({type:M,selectors:[["input","min",""]],inputs:{min:"min"},features:[t._Bn([{provide:e.Cf,useExisting:M,multi:!0}])]}),M})()},1643:(Ue,K,m)=>{"use strict";m.d(K,{a1:()=>s,QM:()=>C,lB:()=>c,fY:()=>P});var e=m(4004),t=m(5e3),v=m(9291),M=m(5986);let s=(()=>{class o{constructor(T,R){this.router=T,this.sessionService=R}canActivate(T){return!(!this.sessionService.getItem("token")||"settings"!==T.url[0].path&&"auth"!==T.url[0].path&&"true"===this.sessionService.getItem("defaultPassword")&&(this.router.navigate(["/settings/auth"]),1))}}return o.\u0275fac=function(T){return new(T||o)(t.LFG(v.F0),t.LFG(M.m))},o.\u0275prov=t.Yz7({token:o,factory:o.\u0275fac}),o})(),C=(()=>{class o{constructor(T){this.sessionService=T}canActivate(){return!!this.sessionService.watchSession().pipe((0,e.U)(T=>T.lndUnlocked))}}return o.\u0275fac=function(T){return new(T||o)(t.LFG(M.m))},o.\u0275prov=t.Yz7({token:o,factory:o.\u0275fac}),o})(),c=(()=>{class o{constructor(T){this.sessionService=T}canActivate(){return!!this.sessionService.watchSession().pipe((0,e.U)(T=>T.clUnlocked))}}return o.\u0275fac=function(T){return new(T||o)(t.LFG(M.m))},o.\u0275prov=t.Yz7({token:o,factory:o.\u0275fac}),o})(),P=(()=>{class o{constructor(T){this.sessionService=T}canActivate(){return!!this.sessionService.watchSession().pipe((0,e.U)(T=>T.eclUnlocked))}}return o.\u0275fac=function(T){return new(T||o)(t.LFG(M.m))},o.\u0275prov=t.Yz7({token:o,factory:o.\u0275fac}),o})()},62:(Ue,K,m)=>{"use strict";m.d(K,{v:()=>T});var e=m(1135),t=m(9646),v=m(2843),M=m(5698),s=m(4004),C=m(262),c=m(7731),P=m(5e3),o=m(8104),O=m(5043);let T=(()=>{class R{constructor(D,w){this.dataService=D,this.logger=w,this.currencyUnits=[],this.CurrencyUnitEnum=c.NT,this.conversionData={data:null,last_fetched:null},this.ratesAPIStatus=c.Bn.UN_INITIATED,this.screenSize=c.cu.MD,this.containerSize={width:0,height:0},this.containerSizeUpdated=new e.X(this.containerSize)}getScreenSize(){return this.screenSize}setScreenSize(D){this.screenSize=D}getContainerSize(){return this.containerSize}setContainerSize(D,w){this.containerSize={width:D,height:w},this.containerSizeUpdated.next(this.containerSize)}sortByKey(D,w,U,G="asc"){return D.sort("number"===U?"desc"===G?(W,ee)=>+W[w]>+ee[w]?-1:1:(W,ee)=>+W[w]>+ee[w]?1:-1:"desc"===G?(W,ee)=>W[w]>ee[w]?-1:1:(W,ee)=>W[w]>ee[w]?1:-1)}sortDescByKey(D,w){return D.sort((U,G)=>{const W=+U[w],ee=+G[w];return W>ee?-1:W{const W=+U[w],ee=+G[w];return Wee?1:0})}camelCase(D){return D.replace(/(?:^\w|[A-Z]|\b\w)/g,(w,U)=>w.toUpperCase()).replace(/\s+/g,"").replace(/-/g," ")}titleCase(D){return D.indexOf("!\n")>0||D.indexOf(".\n")>0?D.split("\n").reduce((w,U)=>w+U.charAt(0).toUpperCase()+U.substring(1).toLowerCase()+"\n",""):D.charAt(0).toUpperCase()+D.substring(1).toLowerCase()}convertCurrency(D,w,U,G,W){const ee=(new Date).valueOf();return W&&G&&this.ratesAPIStatus!==c.Bn.INITIATED&&(w===c.NT.OTHER||U===c.NT.OTHER)?this.conversionData.data&&this.conversionData.last_fetched&&ee(this.ratesAPIStatus=c.Bn.COMPLETED,this.conversionData.data=ie&&"object"==typeof ie?ie:ie&&"string"==typeof ie?JSON.parse(ie):{},this.conversionData.last_fetched=ee,this.convertWithFiat(D,w,G))),(0,C.K)(ie=>(this.ratesAPIStatus=c.Bn.ERROR,(0,v._)(()=>this.extractErrorMessage(ie,"Currency Conversion Error.")))))):(0,t.of)(this.convertWithoutFiat(D,w))}convertWithoutFiat(D,w){const U={};switch(U[c.NT.SATS]=0,U[c.NT.BTC]=0,w){case c.NT.SATS:U[c.NT.SATS]=D,U[c.NT.BTC]=1e-8*D;break;case c.NT.BTC:U[c.NT.SATS]=1e8*D,U[c.NT.BTC]=D}return U}convertWithFiat(D,w,U){const G={unit:U,symbol:this.conversionData.data[U].symbol};switch(G[c.NT.SATS]=0,G[c.NT.BTC]=0,G[c.NT.OTHER]=0,w){case c.NT.SATS:G[c.NT.SATS]=D,G[c.NT.BTC]=1e-8*D,G[c.NT.OTHER]=1e-8*D*this.conversionData.data[U].last;break;case c.NT.BTC:G[c.NT.SATS]=1e8*D,G[c.NT.BTC]=D,G[c.NT.OTHER]=D*this.conversionData.data[U].last;break;case c.NT.OTHER:G[c.NT.SATS]=D/this.conversionData.data[U].last*1e8,G[c.NT.BTC]=D/this.conversionData.data[U].last,G[c.NT.OTHER]=D}return G}convertTime(D,w,U){switch(w){case c.Qk.SECS:switch(U){case c.Qk.MINS:D/=60;break;case c.Qk.HOURS:D/=3600;break;case c.Qk.DAYS:D/=86400}break;case c.Qk.MINS:switch(U){case c.Qk.SECS:D*=60;break;case c.Qk.HOURS:D/=60;break;case c.Qk.DAYS:D/=1440}break;case c.Qk.HOURS:switch(U){case c.Qk.SECS:D*=3600;break;case c.Qk.MINS:D*=60;break;case c.Qk.DAYS:D/=24}break;case c.Qk.DAYS:switch(U){case c.Qk.SECS:D=3600*D*24;break;case c.Qk.MINS:D=60*D*24;break;case c.Qk.HOURS:D*=24}}return D}downloadFile(D,w,U=".json",G=".csv"){let W=new Blob;W=".json"===U?new Blob(["\ufeff"+this.convertToCSV(D)],{type:"text/csv;charset=utf-8;"}):new Blob([D.toString()],{type:"text/plain;charset=utf-8"});const ee=document.createElement("a"),ie=URL.createObjectURL(W);-1!==navigator.userAgent.indexOf("Safari")&&-1===navigator.userAgent.indexOf("Chrome")&&ee.setAttribute("target","_blank"),ee.setAttribute("href",ie),ee.setAttribute("download",w+G),ee.style.visibility="hidden",document.body.appendChild(ee),ee.click(),document.body.removeChild(ee)}convertToCSV(D){const w=[];let U="",G="",W="";return"object"!=typeof D&&(D=JSON.parse(D)),D.forEach((ie,_e)=>{for(const fe in ie)w.findIndex(de=>de===fe)<0&&w.push(fe)}),W=w.join(",")+"\r\n",D.forEach(ie=>{U="",w.forEach(_e=>{ie.hasOwnProperty(_e)?Array.isArray(ie[_e])?(G="",ie[_e].forEach((fe,de)=>{G+="object"==typeof fe?"("+JSON.stringify(fe).replace(/\,/g,";")+")":"("+fe+")"}),U+=G+","):U+="object"==typeof ie[_e]?JSON.stringify(ie[_e]).replace(/\,/g,";")+",":ie[_e]+",":U+=","}),W+=U.slice(0,-1)+"\r\n"}),W}isVersionCompatible(D,w){if(D){const U=D.trim().replace("v","").split("-")[0].split(".")||[],G=w.split(".");return+U[0]>+G[0]||+U[0]==+G[0]&&+U[1]>+G[1]||+U[0]==+G[0]&&+U[1]==+G[1]&&+U[2]>=+G[2]}return!1}extractErrorMessage(D,w="Unknown Error."){const U=this.titleCase(D.error&&D.error.error&&D.error.error.error&&D.error.error.error.error&&D.error.error.error.error.error&&"string"==typeof D.error.error.error.error.error?D.error.error.error.error.error:D.error&&D.error.error&&D.error.error.error&&D.error.error.error.error&&"string"==typeof D.error.error.error.error?D.error.error.error.error:D.error&&D.error.error&&D.error.error.error&&"string"==typeof D.error.error.error?D.error.error.error:D.error&&D.error.error&&"string"==typeof D.error.error?D.error.error:D.error&&"string"==typeof D.error?D.error:D.error&&D.error.error&&D.error.error.error&&D.error.error.error.error&&D.error.error.error.error.message&&"string"==typeof D.error.error.error.error.message?D.error.error.error.error.message:D.error&&D.error.error&&D.error.error.error&&D.error.error.error.message&&"string"==typeof D.error.error.error.message?D.error.error.error.message:D.error&&D.error.error&&D.error.error.message&&"string"==typeof D.error.error.message?D.error.error.message:D.error&&D.error.message&&"string"==typeof D.error.message?D.error.message:D.message&&"string"==typeof D.message?D.message:w);return this.logger.info("Error Message: "+U),U}extractErrorCode(D,w=500){const U=D.error&&D.error.error&&D.error.error.message&&D.error.error.message.code?D.error.error.message.code:D.error&&D.error.error&&D.error.error.code?D.error.error.code:D.error&&D.error.code?D.error.code:D.code?D.code:D.status?D.status:w;return this.logger.info("Error Code: "+U),U}extractErrorNumber(D,w=500){const U=D.error&&D.error.error&&D.error.error.errno?D.error.error.errno:D.error&&D.error.errno?D.error.errno:D.errno?D.errno:D.status?D.status:w;return this.logger.info("Error Number: "+U),U}ngOnDestroy(){this.containerSizeUpdated.next(null),this.containerSizeUpdated.complete()}}return R.\u0275fac=function(D){return new(D||R)(P.LFG(o.D),P.LFG(O.mQ))},R.\u0275prov=P.Yz7({token:R,factory:R.\u0275fac}),R})()},7731:(Ue,K,m)=>{"use strict";m.d(K,{pt:()=>t,uA:()=>v,Xz:()=>M,Er:()=>s,LO:()=>C,IV:()=>c,TJ:()=>P,_t:()=>o,Dr:()=>O,Vc:()=>T,vn:()=>R,wZ:()=>S,$v:()=>D,U5:()=>w,g8:()=>U,ol:()=>G,n_:()=>W,OJ:()=>ee,Qk:()=>ie,NT:()=>_e,Gi:()=>fe,cu:()=>de,HW:()=>ne,x$:()=>se,uX:()=>oe,Fq:()=>y,$I:()=>i,hc:()=>a,Qw:()=>p,gg:()=>u,op:()=>_,JX:()=>L,kO:()=>I,Bn:()=>x,m6:()=>r,IX:()=>b,pg:()=>J,uR:()=>F,sW:()=>B,lr:()=>te,_C:()=>xe,H_:()=>Re,hZ:()=>Fe});var e=m(6087);function t(q){const j=new e.ye;return j.itemsPerPageLabel=q+" per page:",j}const v=["Sats","BTC"],M={Sats:"1.0-0",BTC:"1.6-6",OTHER:"1.2-2"},s=[{id:"USD",name:"USD"},{id:"AUD",name:"AUD"},{id:"BRL",name:"BRL"},{id:"CAD",name:"CAD"},{id:"CHF",name:"CHF"},{id:"CLP",name:"CLP"},{id:"CNY",name:"CNY"},{id:"DKK",name:"DKK"},{id:"EUR",name:"EUR"},{id:"GBP",name:"GBP"},{id:"HKD",name:"HKD"},{id:"INR",name:"INR"},{id:"ISK",name:"ISK"},{id:"JPY",name:"JPY"},{id:"KRW",name:"KRW"},{id:"NZD",name:"NZD"},{id:"PLN",name:"PLN"},{id:"RUB",name:"RUB"},{id:"SEK",name:"SEK"},{id:"SGD",name:"SGD"},{id:"THB",name:"THB"},{id:"TWD",name:"TWD"}],C=["SECS","MINS","HOURS","DAYS"],c=10,P=[5,10,25,100],o=[{addressId:"0",addressCode:"bech32",addressTp:"Bech32 (P2WKH)",addressDetails:"Pay to witness key hash"},{addressId:"1",addressCode:"p2sh-segwit",addressTp:"P2SH (NP2WKH)",addressDetails:"Pay to nested witness key hash (default)"}],O=[{id:"0",name:"Priority (Default)"},{id:"1",name:"Target Confirmation Blocks"},{id:"2",name:"Fee"}],T=[{id:"none",name:"No Fee Limit",placeholder:"No Limit"},{id:"fixed",name:"Fixed Limit (Sats)",placeholder:"Fixed Limit in Sats"},{id:"percent",name:"Percentage of Payment Amount",placeholder:"Percentage Limit"}],R=[{feeRateId:"urgent",feeRateType:"Urgent"},{feeRateId:"normal",feeRateType:"Normal"},{feeRateId:"slow",feeRateType:"Slow"},{feeRateId:"customperkb",feeRateType:"Custom (Sats/vB)"}],S={themes:[{id:"PURPLE",name:"Diogo"},{id:"TEAL",name:"My2Sats"},{id:"INDIGO",name:"RTL"},{id:"PINK",name:"BK"},{id:"YELLOW",name:"Gold"}],modes:[{id:"DAY",name:"Day"},{id:"NIGHT",name:"Night"}]};var D=(()=>{return(q=D||(D={})).PAYMENT_RECEIVED="payment-received",q.PAYMENT_RELAYED="payment-relayed",q.PAYMENT_SENT="payment-sent",q.PAYMENT_SETTLING_ONCHAIN="payment-settling-onchain",q.PAYMENT_FAILED="payment-failed",q.CHANNEL_OPENED="channel-opened",q.CHANNEL_STATE_CHANGED="channel-state-changed",q.CHANNEL_CLOSED="channel-closed",D;var q})(),w=(()=>{return(q=w||(w={})).INVOICE="invoice",q.BLOCK_HEIGHT="block-height",q.SEND_PAYMENT="send-payment",w;var q})(),U=(()=>((U||(U={})).INVOICE="invoice",U))(),G=(()=>{return(q=G||(G={})).OPERATOR="OPERATOR",q.MERCHANT="MERCHANT",q.ALL="ALL",G;var q})(),W=(()=>{return(q=W||(W={})).INFORMATION="Information",q.WARNING="Warning",q.ERROR="Error",q.SUCCESS="Success",q.CONFIRM="Confirm",W;var q})(),ee=(()=>{return(q=ee||(ee={})).JWT="JWT",q.PASSWORD="PASSWORD",ee;var q})(),ie=(()=>{return(q=ie||(ie={})).SECS="SECS",q.MINS="MINS",q.HOURS="HOURS",q.DAYS="DAYS",ie;var q})(),_e=(()=>{return(q=_e||(_e={})).SATS="Sats",q.BTC="BTC",q.OTHER="OTHER",_e;var q})(),fe=(()=>{return(q=fe||(fe={})).ARRAY="ARRAY",q.NUMBER="NUMBER",q.STRING="STRING",q.BOOLEAN="BOOLEAN",q.PASSWORD="PASSWORD",q.DATE="DATE",q.DATE_TIME="DATE_TIME",fe;var q})(),de=(()=>{return(q=de||(de={})).XS="XS",q.SM="SM",q.MD="MD",q.LG="LG",q.XL="XL",de;var q})();const ne={COOPERATIVE_CLOSE:{name:"Co-operative Close",tooltip:"Channel closed cooperatively"},LOCAL_FORCE_CLOSE:{name:"Local Force Close",tooltip:"Channel force-closed by the local node"},REMOTE_FORCE_CLOSE:{name:"Remote Force Close",tooltip:"Channel force-closed by the remote node"},BREACH_CLOSE:{name:"Breach Close",tooltip:"Remote node attempted to broadcast a prior revoked channel state"},FUNDING_CANCELED:{name:"Funding Canceled",tooltip:"Channel never fully opened"},ABANDONED:{name:"Abandoned",tooltip:"Channel abandoned by the local node"}},se={WITNESS_PUBKEY_HASH:{name:"Witness Pubkey Hash",tooltip:""},NESTED_PUBKEY_HASH:{name:"Nested Pubkey Hash",tooltip:""},UNUSED_WITNESS_PUBKEY_HASH:{name:"Unused Witness Pubkey Hash",tooltip:""},UNUSED_NESTED_PUBKEY_HASH:{name:"Unused Nested Pubkey Hash",tooltip:""}};var oe=(()=>{return(q=oe||(oe={})).CHANNELD_NORMAL="Active",q.OPENINGD="Opening",q.CHANNELD_AWAITING_LOCKIN="Pending Open",q.CHANNELD_SHUTTING_DOWN="Shutting Down",q.CLOSINGD_SIGEXCHANGE="Closing: Sig Exchange",q.CLOSINGD_COMPLETE="Closed",q.AWAITING_UNILATERAL="Awaiting Unilateral Close",q.FUNDING_SPEND_SEEN="Funding Spend Seen",q.ONCHAIN="Onchain",q.DUALOPEND_OPEN_INIT="Dual Open Initialized",q.DUALOPEND_AWAITING_LOCKIN="Dual Pending Open",oe;var q})(),y=(()=>{return(q=y||(y={})).INITIATED="Initiated",q.PREIMAGE_REVEALED="Preimage Revealed",q.HTLC_PUBLISHED="HTLC Published",q.SUCCESS="Successful",q.FAILED="Failed",q.INVOICE_SETTLED="Invoice Settled",y;var q})(),i=(()=>{return(q=i||(i={})).LOOP_OUT="LOOP_OUT",q.LOOP_IN="LOOP_IN",i;var q})(),a=(()=>{return(q=a||(a={})).SWAP_OUT="SWAP_OUT",q.SWAP_IN="SWAP_IN",a;var q})(),p=(()=>{return(q=p||(p={}))["swap.created"]="Swap Created",q["swap.expired"]="Swap Expired",q["invoice.set"]="Invoice Set",q["invoice.paid"]="Invoice Paid",q["invoice.pending"]="Invoice Pending",q["invoice.settled"]="Invoice Settled",q["invoice.failedToPay"]="Invoice Failed To Pay",q["channel.created"]="Channel Created",q["transaction.failed"]="Transaction Failed",q["transaction.mempool"]="Transaction Mempool",q["transaction.claimed"]="Transaction Claimed",q["transaction.refunded"]="Transaction Refunded",q["transaction.confirmed"]="Transaction Confirmed",q["swap.refunded"]="Swap Refunded",q["swap.abandoned"]="Swap Abandoned",p;var q})();const u=[{name:"Jan",days:31},{name:"Feb",days:28},{name:"Mar",days:31},{name:"Apr",days:30},{name:"May",days:31},{name:"Jun",days:30},{name:"Jul",days:31},{name:"Aug",days:31},{name:"Sep",days:30},{name:"Oct",days:31},{name:"Nov",days:30},{name:"Dec",days:31}],_=["MONTHLY","YEARLY"];var L=(()=>{return(q=L||(L={})).LOOP="LOOP",q.BOLTZ="BOLTZ",q.OFFERS="OFFERS",L;var q})();const I=["password","changeme","moneyprintergobrrr"];var x=(()=>{return(q=x||(x={})).UN_INITIATED="UN_INITIATED",q.INITIATED="INITIATED",q.COMPLETED="COMPLETED",q.ERROR="ERROR",x;var q})();const r={NO_SPINNER:"No Spinner...",GET_NODE_INFO:"Getting Node Information...",INITALIZE_NODE_DATA:"Initializing Node Data...",GENERATE_NEW_ADDRESS:"Getting New Address...",SEND_FUNDS:"Sending Funds...",UPDATE_CHAN_POLICY:"Updating Channel Policy...",GET_CHAN_POLICY:"Fetching Channel Policy...",GET_REMOTE_POLICY:"Fetching Remote Policy...",CLOSE_CHANNEL:"Closing Channel...",FORCE_CLOSE_CHANNEL:"Force Closing Channel...",OPEN_CHANNEL:"Opening Channel...",CONNECT_PEER:"Connecting Peer...",DISCONNECT_PEER:"Disconnecting Peer...",ADD_INVOICE:"Adding Invoice...",CREATE_INVOICE:"Creating Invoice...",DELETE_INVOICE:"Deleting Invoices...",DECODE_PAYMENT:"Decoding Payment...",DECODE_OFFER:"Decoding Offer...",DECODE_PAYMENTS:"Decoding Payments...",FETCH_INVOICE:"Fetching Invoice...",GET_SENT_PAYMENTS:"Getting Sent Payments...",SEND_PAYMENT:"Sending Payment...",SEND_KEYSEND:"Sending Keysend Payment...",SEARCHING_NODE:"Searching Node...",SEARCHING_CHANNEL:"Searching Channel...",SEARCHING_INVOICE:"Searching Invoice...",BACKUP_CHANNEL:"Backup Channels...",VERIFY_CHANNEL:"Verify Channel...",DOWNLOAD_BACKUP_FILE:"Downloading Backup File...",RESTORE_CHANNEL:"Restoring Channels...",GET_TERMS_QUOTES:"Getting Terms and Quotes...",LABEL_UTXO:"Labelling UTXO...",GET_NODE_ADDRESS:"Getting Node Address...",GEN_SEED:"Generating Seed...",INITIALIZE_WALLET:"Initializing Wallet...",UNLOCK_WALLET:"Unlocking Wallet...",WAIT_SYNC_NODE:"Waiting for Node Sync...",UPDATE_BOLTZ_SETTINGS:"Updating Boltz Service Settings...",UPDATE_LOOP_SETTINGS:"Updating Loop Service Settings...",UPDATE_SETTING:"Updating Setting...",UPDATE_UI_SETTINGS:"Updating Settings...",UPDATE_NODE_SETTINGS:"Updating Node Settings...",UPDATE_SELECTED_NODE:"Updating Selected Node...",OPEN_CONFIG_FILE:"Opening Config File...",GET_SERVICE_INFO:"Getting Service Info...",GET_QUOTE:"Getting Quotes...",UPDATE_DEFAULT_NODE_SETTING:"Updating Defaule Node Settings...",GET_BOLTZ_SWAPS:"Getting Boltz Swaps...",SIGN_MESSAGE:"Signing Message...",VERIFY_MESSAGE:"Verifying Message...",BUMP_FEE:"Bumping Fee...",LEASE_UTXO:"Leasing UTXO...",GET_LOOP_SWAPS:"Getting List Swaps...",GET_FEE_REPORT:"Getting fee report...",GET_LOOKUP_DETAILS:"Getting lookup details...",GET_RTL_CONFIG:"Getting RTL Config...",VERIFY_TOKEN:"Verify Token...",DISABLE_OFFER:"Disabling Offer...",CREATE_OFFER:"Creating Offer...",DELETE_OFFER_BOOKMARK:"Deleting Bookmark...",LOG_OUT:"Logging Out..."};var b=(()=>{return(q=b||(b={})).INVOICE="INVOICE",q.OFFER="OFFER",q.KEYSEND="KEYSEND",b;var q})(),J=(()=>{return(q=J||(J={})).VOID="VOID",q.SET_API_URL_ECL="SET_API_URL_ECL",q.UPDATE_SELECTED_NODE_OPTIONS="UPDATE_SELECTED_NODE_OPTIONS",q.UPDATE_API_CALL_STATUS_ROOT="UPDATE_API_CALL_STATUS_ROOT",q.RESET_ROOT_STORE="RESET_ROOT_STORE",q.CLOSE_ALL_DIALOGS="CLOSE_ALL_DIALOGS",q.OPEN_SNACK_BAR="OPEN_SNACKBAR",q.OPEN_SPINNER="OPEN_SPINNER",q.CLOSE_SPINNER="CLOSE_SPINNER",q.OPEN_ALERT="OPEN_ALERT",q.CLOSE_ALERT="CLOSE_ALERT",q.OPEN_CONFIRMATION="OPEN_CONFIRMATION",q.CLOSE_CONFIRMATION="CLOSE_CONFIRMATION",q.SHOW_PUBKEY="SHOW_PUBKEY",q.FETCH_CONFIG="FETCH_CONFIG",q.SHOW_CONFIG="SHOW_CONFIG",q.FETCH_STORE="FETCH_STORE",q.SET_STORE="SET_STORE",q.FETCH_RTL_CONFIG="FETCH_RTL_CONFIG",q.SET_RTL_CONFIG="SET_RTL_CONFIG",q.SAVE_SSO="SAVE_SSO",q.SAVE_SETTINGS="SAVE_SETTINGS",q.TWO_FA_SAVE_SETTINGS="TWO_FA_SAVE_SETTINGS",q.SET_SELECTED_NODE="SET_SELECTED_NODE",q.UPDATE_ROOT_NODE_SETTINGS="UPDATE_ROOT_NODE_SETTINGS",q.UPDATE_SERVICE_SETTINGS="UPDATE_SERVICE_SETTINGS",q.SET_NODE_DATA="SET_NODE_DATA",q.IS_AUTHORIZED="IS_AUTHORIZED",q.IS_AUTHORIZED_RES="IS_AUTHORIZED_RES",q.LOGIN="LOGIN",q.VERIFY_TWO_FA="VERIFY_TWO_FA",q.LOGOUT="LOGOUT",q.RESET_PASSWORD="RESET_PASSWORD",q.RESET_PASSWORD_RES="RESET_PASSWORD_RES",q.FETCH_FILE="FETCH_FILE",q.SHOW_FILE="SHOW_FILE",J;var q})(),F=(()=>{return(q=F||(F={})).RESET_LND_STORE="RESET_LND_STORE",q.UPDATE_API_CALL_STATUS_LND="UPDATE_API_CALL_STATUS_LND",q.SET_CHILD_NODE_SETTINGS_LND="SET_CHILD_NODE_SETTINGS_LND",q.FETCH_INFO_LND="FETCH_INFO_LND",q.SET_INFO_LND="SET_INFO_LND",q.FETCH_PEERS_LND="FETCH_PEERS_LND",q.SET_PEERS_LND="SET_PEERS_LND",q.SAVE_NEW_PEER_LND="SAVE_NEW_PEER_LND",q.NEWLY_ADDED_PEER_LND="NEWLY_ADDED_PEER_LND",q.DETACH_PEER_LND="DETACH_PEER_LND",q.REMOVE_PEER_LND="REMOVE_PEER_LND",q.SAVE_NEW_INVOICE_LND="SAVE_NEW_INVOICE_LND",q.NEWLY_SAVED_INVOICE_LND="NEWLY_SAVED_INVOICE_LND",q.ADD_INVOICE_LND="ADD_INVOICE_LND",q.FETCH_FEES_LND="FETCH_FEES_LND",q.SET_FEES_LND="SET_FEES_LND",q.FETCH_BLOCKCHAIN_BALANCE_LND="FETCH_BLOCKCHAIN_BALANCE_LND",q.SET_BLOCKCHAIN_BALANCE_LND="SET_BLOCKCHAIN_BALANCE_LND",q.FETCH_NETWORK_LND="FETCH_NETWORK_LND",q.SET_NETWORK_LND="SET_NETWORK_LND",q.FETCH_CHANNELS_LND="FETCH_CHANNELS_LND",q.FETCH_PENDING_CHANNELS_LND="FETCH_PENDING_CHANNELS_LND",q.FETCH_CLOSED_CHANNELS_LND="FETCH_CLOSED_CHANNELS_LND",q.SET_CHANNELS_LND="SET_CHANNELS_LND",q.SET_PENDING_CHANNELS_LND="SET_PENDING_CHANNELS_LND",q.SET_CLOSED_CHANNELS_LND="SET_CLOSED_CHANNELS_LND",q.UPDATE_CHANNEL_LND="UPDATE_CHANNEL_LND",q.SAVE_NEW_CHANNEL_LND="SAVE_NEW_CHANNEL_LND",q.CLOSE_CHANNEL_LND="CLOSE_CHANNEL_LND",q.REMOVE_CHANNEL_LND="REMOVE_CHANNEL_LND",q.BACKUP_CHANNELS_LND="BACKUP_CHANNELS_LND",q.VERIFY_CHANNEL_LND="VERIFY_CHANNEL_LND",q.BACKUP_CHANNELS_RES_LND="BACKUP_CHANNELS_RES_LND",q.VERIFY_CHANNEL_RES_LND="VERIFY_CHANNEL_RES_LND",q.RESTORE_CHANNELS_LIST_LND="RESTORE_CHANNELS_LIST_LND",q.SET_RESTORE_CHANNELS_LIST_LND="SET_RESTORE_CHANNELS_LIST_LND",q.RESTORE_CHANNELS_LND="RESTORE_CHANNELS_LND",q.RESTORE_CHANNELS_RES_LND="RESTORE_CHANNELS_RES_LND",q.FETCH_INVOICES_LND="FETCH_INVOICES_LND",q.SET_INVOICES_LND="SET_INVOICES_LND",q.UPDATE_INVOICE_LND="UPDATE_INVOICE_LND",q.SET_TOTAL_INVOICES_LND="SET_TOTAL_INVOICES_LND",q.FETCH_TRANSACTIONS_LND="FETCH_TRANSACTIONS_LND",q.SET_TRANSACTIONS_LND="SET_TRANSACTIONS_LND",q.FETCH_UTXOS_LND="FETCH_UTXOS_LND",q.SET_UTXOS_LND="SET_UTXOS_LND",q.FETCH_PAYMENTS_LND="FETCH_PAYMENTS_LND",q.SET_PAYMENTS_LND="SET_PAYMENTS_LND",q.SEND_PAYMENT_LND="SEND_PAYMENT_LND",q.SEND_PAYMENT_STATUS_LND="SEND_PAYMENT_STATUS_LND",q.FETCH_GRAPH_NODE_LND="FETCH_GRAPH_NODE_LND",q.SET_GRAPH_NODE_LND="SET_GRAPH_NODE_LND",q.GET_NEW_ADDRESS_LND="GET_NEW_ADDRESS_LND",q.SET_NEW_ADDRESS_LND="SET_NEW_ADDRESS_LND",q.SET_CHANNEL_TRANSACTION_LND="SET_CHANNEL_TRANSACTION_LND",q.SET_CHANNEL_TRANSACTION_RES_LND="SET_CHANNEL_TRANSACTION_RES_LND",q.GEN_SEED_LND="GEN_SEED_LND",q.GEN_SEED_RESPONSE_LND="GEN_SEED_RESPONSE_LND",q.INIT_WALLET_LND="INIT_WALLET_LND",q.INIT_WALLET_RESPONSE_LND="INIT_WALLET_RESPONSE_LND",q.UNLOCK_WALLET_LND="UNLOCK_WALLET_LND",q.PEER_LOOKUP_LND="PEER_LOOKUP_LND",q.CHANNEL_LOOKUP_LND="CHANNEL_LOOKUP_LND",q.INVOICE_LOOKUP_LND="INVOICE_LOOKUP_LND",q.SET_LOOKUP_LND="SET_LOOKUP_LND",q.GET_FORWARDING_HISTORY_LND="GET_FORWARDING_HISTORY_LND",q.SET_FORWARDING_HISTORY_LND="SET_FORWARDING_HISTORY_LND",q.GET_QUERY_ROUTES_LND="GET_QUERY_ROUTES_LND",q.SET_QUERY_ROUTES_LND="SET_QUERY_ROUTES_LND",q.GET_ALL_LIGHTNING_TRANSATIONS_LND="GET_ALL_LIGHTNING_TRANSATIONS_LND",q.SET_ALL_LIGHTNING_TRANSATIONS_LND="SET_ALL_LIGHTNING_TRANSATIONS_LND",F;var q})(),B=(()=>{return(q=B||(B={})).RESET_CL_STORE="RESET_CL_STORE",q.UPDATE_API_CALL_STATUS_CL="UPDATE_API_CALL_STATUS_CL",q.SET_CHILD_NODE_SETTINGS_CL="SET_CHILD_NODE_SETTINGS_CL",q.FETCH_INFO_CL="FETCH_INFO_CL_CL",q.SET_INFO_CL="SET_INFO_CL",q.FETCH_FEES_CL="FETCH_FEES_CL",q.SET_FEES_CL="SET_FEES_CL",q.FETCH_FEE_RATES_CL="FETCH_FEE_RATES_CL",q.SET_FEE_RATES_CL="SET_FEE_RATES_CL",q.FETCH_BALANCE_CL="FETCH_BALANCE_CL",q.SET_BALANCE_CL="SET_BALANCE_CL",q.FETCH_LOCAL_REMOTE_BALANCE_CL="FETCH_LOCAL_REMOTE_BALANCE_CL",q.SET_LOCAL_REMOTE_BALANCE_CL="SET_LOCAL_REMOTE_BALANCE_CL",q.GET_NEW_ADDRESS_CL="GET_NEW_ADDRESS_CL",q.SET_NEW_ADDRESS_CL="SET_NEW_ADDRESS_CL",q.FETCH_UTXOS_CL="FETCH_UTXOS_CL",q.SET_UTXOS_CL="SET_UTXOS_CL",q.FETCH_PEERS_CL="FETCH_PEERS_CL",q.SET_PEERS_CL="SET_PEERS_CL",q.SAVE_NEW_PEER_CL="SAVE_NEW_PEER_CL",q.NEWLY_ADDED_PEER_CL="NEWLY_ADDED_PEER_CL",q.ADD_PEER_CL="ADD_PEER_CL",q.DETACH_PEER_CL="DETACH_PEER_CL",q.REMOVE_PEER_CL="REMOVE_PEER_CL",q.FETCH_CHANNELS_CL="FETCH_CHANNELS_CL",q.SET_CHANNELS_CL="SET_CHANNELS_CL",q.UPDATE_CHANNEL_CL="UPDATE_CHANNEL_CL",q.SAVE_NEW_CHANNEL_CL="SAVE_NEW_CHANNEL_CL",q.CLOSE_CHANNEL_CL="CLOSE_CHANNEL_CL",q.REMOVE_CHANNEL_CL="REMOVE_CHANNEL_CL",q.FETCH_PAYMENTS_CL="FETCH_PAYMENTS_CL",q.SET_PAYMENTS_CL="SET_PAYMENTS_CL",q.SEND_PAYMENT_CL="SEND_PAYMENT_CL",q.SEND_PAYMENT_STATUS_CL="SEND_PAYMENT_STATUS_CL",q.GET_QUERY_ROUTES_CL="GET_QUERY_ROUTES_CL",q.SET_QUERY_ROUTES_CL="SET_QUERY_ROUTES_CL",q.PEER_LOOKUP_CL="PEER_LOOKUP_CL",q.CHANNEL_LOOKUP_CL="CHANNEL_LOOKUP_CL",q.INVOICE_LOOKUP_CL="INVOICE_LOOKUP_CL",q.SET_LOOKUP_CL="SET_LOOKUP_CL",q.GET_FORWARDING_HISTORY_CL="GET_FORWARDING_HISTORY_CL",q.SET_FORWARDING_HISTORY_CL="SET_FORWARDING_HISTORY_CL",q.GET_FAILED_FORWARDING_HISTORY_CL="GET_FAILED_FORWARDING_HISTORY_CL",q.SET_FAILED_FORWARDING_HISTORY_CL="SET_FAILED_FORWARDING_HISTORY_CL",q.FETCH_INVOICES_CL="FETCH_INVOICES_CL",q.SET_INVOICES_CL="SET_INVOICES_CL",q.SAVE_NEW_INVOICE_CL="SAVE_NEW_INVOICE_CL",q.ADD_INVOICE_CL="ADD_INVOICE_CL",q.UPDATE_INVOICE_CL="UPDATE_INVOICE_CL",q.DELETE_EXPIRED_INVOICE_CL="DELETE_EXPIRED_INVOICE_CL",q.SET_CHANNEL_TRANSACTION_CL="SET_CHANNEL_TRANSACTION_CL",q.SET_CHANNEL_TRANSACTION_RES_CL="SET_CHANNEL_TRANSACTION_RES_CL",q.FETCH_OFFER_INVOICE_CL="FETCH_OFFER_INVOICE_CL",q.SET_OFFER_INVOICE_CL="SET_OFFER_INVOICE_CL",q.FETCH_OFFERS_CL="FETCH_OFFERS_CL",q.SET_OFFERS_CL="SET_OFFERS_CL",q.SAVE_NEW_OFFER_CL="SAVE_NEW_OFFER_CL",q.ADD_OFFER_CL="ADD_OFFER_CL",q.DISABLE_OFFER_CL="DISABLE_OFFER_CL",q.UPDATE_OFFER_CL="UPDATE_OFFER_CL",q.FETCH_OFFER_BOOKMARKS_CL="FETCH_OFFER_BOOKMARKS_CL",q.SET_OFFER_BOOKMARKS_CL="SET_OFFER_BOOKMARKS_CL",q.ADD_UPDATE_OFFER_BOOKMARK_CL="ADD_UPDATE_OFFER_BOOKMARK_CL",q.DELETE_OFFER_BOOKMARK_CL="DELETE_OFFER_BOOKMARK_CL",q.REMOVE_OFFER_BOOKMARK_CL="REMOVE_OFFER_BOOKMARK_CL",B;var q})(),te=(()=>{return(q=te||(te={})).RESET_ECL_STORE="RESET_ECL_STORE",q.UPDATE_API_CALL_STATUS_ECL="UPDATE_API_CALL_STATUS_ECL",q.SET_CHILD_NODE_SETTINGS_ECL="SET_CHILD_NODE_SETTINGS_ECL",q.FETCH_INFO_ECL="FETCH_INFO_ECL",q.SET_INFO_ECL="SET_INFO_ECL",q.FETCH_FEES_ECL="FETCH_FEES_ECL",q.SET_FEES_ECL="SET_FEES_ECL",q.FETCH_CHANNELS_ECL="FETCH_CHANNELS_ECL",q.SET_ACTIVE_CHANNELS_ECL="SET_ACTIVE_CHANNELS_ECL",q.SET_PENDING_CHANNELS_ECL="SET_PENDING_CHANNELS_ECL",q.SET_INACTIVE_CHANNELS_ECL="SET_INACTIVE_CHANNELS_ECL",q.FETCH_ONCHAIN_BALANCE_ECL="FETCH_ONCHAIN_BALANCE_ECL",q.SET_ONCHAIN_BALANCE_ECL="SET_ONCHAIN_BALANCE_ECL",q.FETCH_LIGHTNING_BALANCE_ECL="FETCH_LIGHTNING_BALANCE_ECL",q.SET_LIGHTNING_BALANCE_ECL="SET_LIGHTNING_BALANCE_ECL",q.SET_CHANNELS_STATUS_ECL="SET_CHANNELS_STATUS_ECL",q.FETCH_PEERS_ECL="FETCH_PEERS_ECL",q.SET_PEERS_ECL="SET_PEERS_ECL",q.SAVE_NEW_PEER_ECL="SAVE_NEW_PEER_ECL",q.NEWLY_ADDED_PEER_ECL="NEWLY_ADDED_PEER_ECL",q.ADD_PEER_ECL="ADD_PEER_ECL",q.DETACH_PEER_ECL="DETACH_PEER_ECL",q.REMOVE_PEER_ECL="REMOVE_PEER_ECL",q.GET_NEW_ADDRESS_ECL="GET_NEW_ADDRESS_ECL",q.SET_NEW_ADDRESS_ECL="SET_NEW_ADDRESS_ECL",q.SAVE_NEW_CHANNEL_ECL="SAVE_NEW_CHANNEL_ECL",q.UPDATE_CHANNEL_ECL="UPDATE_CHANNEL_ECL",q.CLOSE_CHANNEL_ECL="CLOSE_CHANNEL_ECL",q.REMOVE_CHANNEL_ECL="REMOVE_CHANNEL_ECL",q.FETCH_PAYMENTS_ECL="FETCH_PAYMENTS_ECL",q.SET_PAYMENTS_ECL="SET_PAYMENTS_ECL",q.GET_QUERY_ROUTES_ECL="GET_QUERY_ROUTES_ECL",q.SET_QUERY_ROUTES_ECL="SET_QUERY_ROUTES_ECL",q.SEND_PAYMENT_ECL="SEND_PAYMENT_ECL",q.SEND_PAYMENT_STATUS_ECL="SEND_PAYMENT_STATUS_ECL",q.FETCH_TRANSACTIONS_ECL="FETCH_TRANSACTIONS_ECL",q.SET_TRANSACTIONS_ECL="SET_TRANSACTIONS_ECL",q.SEND_ONCHAIN_FUNDS_ECL="SEND_ONCHAIN_FUNDS_ECL",q.SEND_ONCHAIN_FUNDS_RES_ECL="SEND_ONCHAIN_FUNDS_RES_ECL",q.FETCH_INVOICES_ECL="FETCH_INVOICES_ECL",q.SET_INVOICES_ECL="SET_INVOICES_ECL",q.SET_TOTAL_INVOICES_ECL="SET_TOTAL_INVOICES_ECL",q.CREATE_INVOICE_ECL="CREATE_INVOICE_ECL",q.ADD_INVOICE_ECL="ADD_INVOICE_ECL",q.UPDATE_INVOICE_ECL="UPDATE_INVOICE_ECL",q.PEER_LOOKUP_ECL="PEER_LOOKUP_ECL",q.INVOICE_LOOKUP_ECL="INVOICE_LOOKUP_ECL",q.SET_LOOKUP_ECL="SET_LOOKUP_ECL",q.UPDATE_CHANNEL_STATE_ECL="UPDATE_CHANNEL_STATE_ECL",q.UPDATE_RELAYED_PAYMENT_ECL="UPDATE_RELAYED_PAYMENT_ECL",te;var q})();const xe=[{range:{min:0,max:1},description:"Requires or supports extra channel re-establish fields"},{range:{min:4,max:5},description:"Commits to a shutdown script pubkey when opening channel"},{range:{min:6,max:7},description:"More sophisticated gossip control"},{range:{min:8,max:9},description:"Requires/supports variable-length routing onion payloads"},{range:{min:10,max:11},description:"Gossip queries can include additional information"},{range:{min:12,max:13},description:"Static key for remote output"},{range:{min:14,max:15},description:"Node supports payment secret field"},{range:{min:16,max:17},description:"Node can receive basic multi-part payments"},{range:{min:18,max:19},description:"Node can create large channels"},{range:{min:20,max:21},description:"Anchor outputs"},{range:{min:22,max:23},description:"Anchor commitment type with zero fee HTLC transactions"},{range:{min:26,max:27},description:"Future segwit versions allowed in shutdown"}];var Re=(()=>{return(q=Re||(Re={})).gossip_queries_ex="Gossip queries including additional information",q.option_anchor_outputs="Anchor outputs",q.option_data_loss_protect="Extra channel re-establish fields",q.var_onion_optin="Variable-length routing onion payloads",q.option_static_remotekey="Static key for remote output",q.option_support_large_channel="Create large channels",q.option_anchors_zero_fee_htlc_tx="Anchor commitment type with zero fee HTLC transactions",q.payment_secret="Payment secret field",q.option_shutdown_anysegwit="Future segwit versions allowed in shutdown",q.basic_mpp="Basic multi-part payments",q.gossip_queries="More sophisticated gossip control",q.option_upfront_shutdown_script="Shutdown script pubkey when opening channel",q.anchors_zero_fee_htlc_tx="Anchor commitment type with zero fee HTLC transactions",q.amp="AMP",Re;var q})(),Fe=(()=>{return(q=Fe||(Fe={}))["data-loss-protect"]="Extra channel re-establish fields",q["upfront-shutdown-script"]="Shutdown script pubkey when opening channel",q["gossip-queries"]="More sophisticated gossip control",q["tlv-onion"]="Variable-length routing onion payloads",q["ext-gossip-queries"]="Gossip queries can include additional information",q["static-remote-key"]="Static key for remote output",q["payment-addr"]="Payment secret field",q["multi-path-payments"]="Basic multi-part payments",q["wumbo-channels"]="Wumbo Channels",q.anchors="Anchor outputs",q["anchors-zero-fee-htlc-tx"]="Anchor commitment type with zero fee HTLC transactions",q.amp="AMP",Fe;var q})()},8104:(Ue,K,m)=>{"use strict";m.d(K,{D:()=>_e});var e=m(8138),t=m(7579),v=m(2843),M=m(9646),s=m(2722),C=m(4004),c=m(262),P=m(1365),o=m(5577),O=m(2340),T=m(7731),R=m(1786),S=m(7861),D=m(6523),w=m(6529),U=m(5e3),G=m(5620),W=m(5043),ee=m(7261),ie=m(9808);let _e=(()=>{class fe{constructor(ne,se,oe,y,i){this.httpClient=ne,this.store=se,this.logger=oe,this.snackBar=y,this.titleCasePipe=i,this.lnImplementation="LND",this.childAPIUrl=O.T5,this.unSubs=[new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x]}getChildAPIUrl(){return this.childAPIUrl}getLnImplementation(){return this.lnImplementation}setChildAPIUrl(ne){switch(this.lnImplementation=ne,ne){case"CLT":this.childAPIUrl=O.T5+"/cl";break;case"ECL":this.childAPIUrl=O.T5+"/ecl";break;default:this.childAPIUrl=O.T5+"/lnd"}}getFiatRates(){return this.httpClient.get(O.NZ.CONF_API+"/rates")}decodePayment(ne,se){const oe=this.childAPIUrl+O.NZ.PAYMENTS_API+"/decode/"+ne;return this.store.dispatch((0,S.ac)({payload:T.m6.DECODE_PAYMENT})),this.httpClient.get(oe).pipe((0,s.R)(this.unSubs[0]),(0,C.U)(y=>(this.store.dispatch((0,S.uO)({payload:T.m6.DECODE_PAYMENT})),y)),(0,c.K)(y=>(se?this.handleErrorWithoutAlert("Decode Payment",T.m6.DECODE_PAYMENT,y):this.handleErrorWithAlert("decodePaymentData",T.m6.DECODE_PAYMENT,"Decode Payment Failed",this.childAPIUrl+O.NZ.PAYMENTS_API+"/decode/",y),(0,v._)(()=>new Error(this.extractErrorMessage(y))))))}decodePayments(ne){let se=this.childAPIUrl+O.NZ.PAYMENTS_API,oe=T.m6.DECODE_PAYMENTS;return"ECL"===this.getLnImplementation()&&(se=this.childAPIUrl+O.NZ.PAYMENTS_API+"/getsentinfos",oe=T.m6.GET_SENT_PAYMENTS),this.store.dispatch((0,S.ac)({payload:oe})),this.httpClient.post(se,{payments:ne}).pipe((0,s.R)(this.unSubs[1]),(0,C.U)(y=>(this.store.dispatch((0,S.uO)({payload:oe})),y)),(0,c.K)(y=>(this.handleErrorWithAlert("decodePaymentsData",oe,oe+" Failed",se,y),(0,v._)(()=>new Error(this.extractErrorMessage(y))))))}getAliasesFromPubkeys(ne,se){if(se){const oe=(new e.LE).set("pubkeys",ne);return this.httpClient.get(this.childAPIUrl+O.NZ.NETWORK_API+"/nodes",{params:oe})}return this.httpClient.get(this.childAPIUrl+O.NZ.NETWORK_API+"/node/"+ne)}signMessage(ne){return this.store.dispatch((0,S.ac)({payload:T.m6.SIGN_MESSAGE})),this.httpClient.post(this.childAPIUrl+O.NZ.MESSAGE_API+"/sign",{message:ne}).pipe((0,s.R)(this.unSubs[2]),(0,C.U)(se=>(this.store.dispatch((0,S.uO)({payload:T.m6.SIGN_MESSAGE})),se)),(0,c.K)(se=>(this.handleErrorWithAlert("signMessageData",T.m6.SIGN_MESSAGE,"Sign Message Failed",this.childAPIUrl+O.NZ.MESSAGE_API+"/sign",se),(0,v._)(()=>new Error(this.extractErrorMessage(se))))))}verifyMessage(ne,se){return this.store.dispatch((0,S.ac)({payload:T.m6.VERIFY_MESSAGE})),this.httpClient.post(this.childAPIUrl+O.NZ.MESSAGE_API+"/verify",{message:ne,signature:se}).pipe((0,s.R)(this.unSubs[3]),(0,C.U)(oe=>(this.store.dispatch((0,S.uO)({payload:T.m6.VERIFY_MESSAGE})),oe)),(0,c.K)(oe=>(this.handleErrorWithAlert("verifyMessageData",T.m6.VERIFY_MESSAGE,"Verify Message Failed",this.childAPIUrl+O.NZ.MESSAGE_API+"/verify",oe),(0,v._)(()=>new Error(this.extractErrorMessage(oe))))))}bumpFee(ne,se,oe,y){const i={txid:ne,outputIndex:se};return oe&&(i.targetConf=oe),y&&(i.satPerByte=y),this.store.dispatch((0,S.ac)({payload:T.m6.BUMP_FEE})),this.httpClient.post(this.childAPIUrl+O.NZ.WALLET_API+"/bumpfee",i).pipe((0,s.R)(this.unSubs[4]),(0,C.U)(a=>(this.store.dispatch((0,S.uO)({payload:T.m6.BUMP_FEE})),this.snackBar.open("Successfully bumped the fee. Use the block explorer to verify transaction."),a)),(0,c.K)(a=>(this.handleErrorWithoutAlert("Bump Fee",T.m6.BUMP_FEE,a),(0,v._)(()=>new Error(this.extractErrorMessage(a))))))}labelUTXO(ne,se,oe=!0){const y={txid:ne,label:se,overwrite:oe};return this.store.dispatch((0,S.ac)({payload:T.m6.LABEL_UTXO})),this.httpClient.post(this.childAPIUrl+O.NZ.WALLET_API+"/label",y).pipe((0,s.R)(this.unSubs[5]),(0,C.U)(i=>(this.store.dispatch((0,S.uO)({payload:T.m6.LABEL_UTXO})),i)),(0,c.K)(i=>(this.handleErrorWithoutAlert("Lease UTXO",T.m6.LABEL_UTXO,i),(0,v._)(()=>new Error(this.extractErrorMessage(i))))))}leaseUTXO(ne,se){const oe={txid:ne,outputIndex:se};return this.store.dispatch((0,S.ac)({payload:T.m6.LEASE_UTXO})),this.httpClient.post(this.childAPIUrl+O.NZ.WALLET_API+"/lease",oe).pipe((0,s.R)(this.unSubs[6])).subscribe({next:y=>{this.store.dispatch((0,S.uO)({payload:T.m6.LEASE_UTXO})),this.store.dispatch((0,D.mC)()),this.store.dispatch((0,D.Ly)());const i=new Date(1e3*y.expiration),a=Math.round(i.getTime())-60*i.getTimezoneOffset();this.snackBar.open("The UTXO has been leased till "+new Date(a).toString().substring(4,21).replace(" ","/").replace(" ","/").toUpperCase()+".")},error:y=>(this.handleErrorWithoutAlert("Lease UTXO",T.m6.LEASE_UTXO,y),(0,v._)(()=>new Error(this.extractErrorMessage(y))))})}getForwardingHistory(ne,se){const oe={end_time:se,start_time:ne};return this.store.dispatch((0,S.ac)({payload:T.m6.GET_FEE_REPORT})),this.httpClient.post(this.childAPIUrl+O.NZ.SWITCH_API,oe).pipe((0,s.R)(this.unSubs[7]),(0,P.M)(this.store.select(w._f)),(0,o.z)(([y,i])=>{if(y.forwarding_events){const a=[...i.channels,...i.closedChannels];y.forwarding_events.forEach(p=>{if(a&&a.length>0)for(let u=0;u(this.handleErrorWithAlert("getForwardingHistoryData",T.m6.GET_FEE_REPORT,"Forwarding History Failed",this.childAPIUrl+O.NZ.SWITCH_API,y),(0,v._)(()=>new Error(this.extractErrorMessage(y))))))}extractErrorMessage(ne,se="Unknown Error."){return this.titleCasePipe.transform(ne.error&&ne.error.error&&ne.error.error.error&&ne.error.error.error.error&&ne.error.error.error.error.error&&"string"==typeof ne.error.error.error.error.error?ne.error.error.error.error.error:ne.error&&ne.error.error&&ne.error.error.error&&ne.error.error.error.error&&"string"==typeof ne.error.error.error.error?ne.error.error.error.error:ne.error&&ne.error.error&&ne.error.error.error&&"string"==typeof ne.error.error.error?ne.error.error.error:ne.error&&ne.error.error&&"string"==typeof ne.error.error?ne.error.error:ne.error&&"string"==typeof ne.error?ne.error:ne.error&&ne.error.error&&ne.error.error.error&&ne.error.error.error.error&&ne.error.error.error.error.message&&"string"==typeof ne.error.error.error.error.message?ne.error.error.error.error.message:ne.error&&ne.error.error&&ne.error.error.error&&ne.error.error.error.message&&"string"==typeof ne.error.error.error.message?ne.error.error.error.message:ne.error&&ne.error.error&&ne.error.error.message&&"string"==typeof ne.error.error.message?ne.error.error.message:ne.error&&ne.error.message&&"string"==typeof ne.error.message?ne.error.message:ne.message&&"string"==typeof ne.message?ne.message:se)}handleErrorWithoutAlert(ne,se,oe){this.logger.error("ERROR IN: "+ne+"\n"+JSON.stringify(oe)),401===oe.status?(this.logger.info("Redirecting to Login"),this.store.dispatch((0,S.ts)()),this.store.dispatch((0,S.kS)()),this.store.dispatch((0,S.jW)({payload:"Authentication Failed. Redirecting to Login."}))):(this.store.dispatch((0,S.uO)({payload:se})),this.store.dispatch((0,S.qi)({payload:{action:ne,status:T.Bn.ERROR,statusCode:oe.status.toString(),message:this.extractErrorMessage(oe)}})))}handleErrorWithAlert(ne,se,oe,y,i){if(this.logger.error(i),401===i.status)this.logger.info("Redirecting to Login"),this.store.dispatch((0,S.ts)()),this.store.dispatch((0,S.kS)()),this.store.dispatch((0,S.jW)({payload:"Authentication Failed. Redirecting to Login."}));else{this.store.dispatch((0,S.uO)({payload:se}));const a=this.extractErrorMessage(i);this.store.dispatch((0,S.qR)({payload:{data:{type:"ERROR",alertTitle:oe,message:{code:i.status?i.status:"Unknown Error",message:a,URL:y},component:R.H}}})),this.store.dispatch((0,S.qi)({payload:{action:ne,status:T.Bn.ERROR,statusCode:i.status.toString(),message:a,URL:y}}))}}ngOnDestroy(){this.unSubs.forEach(ne=>{ne.next(null),ne.complete()})}}return fe.\u0275fac=function(ne){return new(ne||fe)(U.LFG(e.eN),U.LFG(G.yh),U.LFG(W.mQ),U.LFG(ee.ux),U.LFG(ie.rS))},fe.\u0275prov=U.Yz7({token:fe,factory:fe.\u0275fac}),fe})()},5043:(Ue,K,m)=>{"use strict";m.d(K,{mQ:()=>C,LG:()=>c});var e=m(2340),t=m(5e3);const{isDebugMode:v}=e.NZ,M=()=>null;let C=(()=>{class P{invokeConsoleMethod(O,T){}}return P.\u0275fac=function(O){return new(O||P)},P.\u0275prov=t.Yz7({token:P,factory:P.\u0275fac}),P})(),c=(()=>{class P{get info(){return v?console.log.bind(console):M}get warn(){return v?console.warn.bind(console):M}get error(){return v?console.error.bind(console):M}invokeConsoleMethod(O,T){(console[O]||console.log||M).apply(console,[T])}}return P.\u0275fac=function(O){return new(O||P)},P.\u0275prov=t.Yz7({token:P,factory:P.\u0275fac}),P})()},9107:(Ue,K,m)=>{"use strict";m.d(K,{W:()=>U});var e=m(8138),t=m(1135),v=m(7579),M=m(2843),s=m(2722),C=m(262),c=m(4004),P=m(2340),o=m(7731),O=m(1786),T=m(7861),R=m(5e3),S=m(5043),D=m(5620),w=m(62);let U=(()=>{class G{constructor(ee,ie,_e,fe){this.httpClient=ee,this.logger=ie,this.store=_e,this.commonService=fe,this.loopUrl="",this.swaps=[],this.swapsChanged=new t.X([]),this.unSubs=[new v.x,new v.x,new v.x,new v.x,new v.x]}getSwapsList(){return this.swaps}listSwaps(){this.store.dispatch((0,T.ac)({payload:o.m6.GET_LOOP_SWAPS})),this.loopUrl=P.T5+P.NZ.LOOP_API+"/swaps",this.httpClient.get(this.loopUrl).pipe((0,s.R)(this.unSubs[0])).subscribe({next:ee=>{this.store.dispatch((0,T.uO)({payload:o.m6.GET_LOOP_SWAPS})),this.swaps=ee,this.swapsChanged.next(this.swaps)},error:ee=>this.handleErrorWithAlert(o.m6.GET_LOOP_SWAPS,this.loopUrl,ee)})}loopOut(ee,ie,_e,fe,de,ne,se,oe,y,i){const a={amount:ee,targetConf:_e,swapRoutingFee:fe,minerFee:de,prepayRoutingFee:ne,prepayAmt:se,swapFee:oe,swapPublicationDeadline:y,destAddress:i};return""!==ie&&(a.chanId=ie),this.loopUrl=P.T5+P.NZ.LOOP_API+"/out",this.httpClient.post(this.loopUrl,a).pipe((0,C.K)(p=>this.handleErrorWithoutAlert("Loop Out for Channel: "+ie,o.m6.NO_SPINNER,p)))}getLoopOutTerms(){return this.loopUrl=P.T5+P.NZ.LOOP_API+"/out/terms",this.httpClient.get(this.loopUrl).pipe((0,C.K)(ee=>this.handleErrorWithoutAlert("Loop Out Terms",o.m6.NO_SPINNER,ee)))}getLoopOutQuote(ee,ie,_e){let fe=new e.LE;return fe=fe.append("targetConf",ie.toString()),fe=fe.append("swapPublicationDeadline",_e.toString()),this.loopUrl=P.T5+P.NZ.LOOP_API+"/out/quote/"+ee,this.store.dispatch((0,T.ac)({payload:o.m6.GET_QUOTE})),this.httpClient.get(this.loopUrl,{params:fe}).pipe((0,s.R)(this.unSubs[1]),(0,c.U)(de=>(this.store.dispatch((0,T.uO)({payload:o.m6.GET_QUOTE})),de)),(0,C.K)(de=>this.handleErrorWithoutAlert("Loop Out Quote",o.m6.GET_QUOTE,de)))}getLoopOutTermsAndQuotes(ee){let ie=new e.LE;return ie=ie.append("targetConf",ee.toString()),ie=ie.append("swapPublicationDeadline",((new Date).getTime()+18e5).toString()),this.loopUrl=P.T5+P.NZ.LOOP_API+"/out/termsAndQuotes",this.store.dispatch((0,T.ac)({payload:o.m6.GET_TERMS_QUOTES})),this.httpClient.get(this.loopUrl,{params:ie}).pipe((0,s.R)(this.unSubs[2]),(0,c.U)(_e=>(this.store.dispatch((0,T.uO)({payload:o.m6.GET_TERMS_QUOTES})),_e)),(0,C.K)(_e=>this.handleErrorWithAlert(o.m6.GET_TERMS_QUOTES,this.loopUrl,_e)))}loopIn(ee,ie,_e,fe,de){const ne={amount:ee,swapFee:ie,minerFee:_e,lastHop:fe,externalHtlc:de};return this.loopUrl=P.T5+P.NZ.LOOP_API+"/in",this.httpClient.post(this.loopUrl,ne).pipe((0,C.K)(se=>this.handleErrorWithoutAlert("Loop In",o.m6.NO_SPINNER,se)))}getLoopInTerms(){return this.loopUrl=P.T5+P.NZ.LOOP_API+"/in/terms",this.httpClient.get(this.loopUrl).pipe((0,C.K)(ee=>this.handleErrorWithoutAlert("Loop In Terms",o.m6.NO_SPINNER,ee)))}getLoopInQuote(ee,ie,_e){let fe=new e.LE;return fe=fe.append("targetConf",ie.toString()),fe=fe.append("swapPublicationDeadline",_e.toString()),this.loopUrl=P.T5+P.NZ.LOOP_API+"/in/quote/"+ee,this.store.dispatch((0,T.ac)({payload:o.m6.GET_QUOTE})),this.httpClient.get(this.loopUrl,{params:fe}).pipe((0,s.R)(this.unSubs[3]),(0,c.U)(de=>(this.store.dispatch((0,T.uO)({payload:o.m6.GET_QUOTE})),de)),(0,C.K)(de=>this.handleErrorWithoutAlert("Loop In Qoute",o.m6.GET_QUOTE,de)))}getLoopInTermsAndQuotes(ee){let ie=new e.LE;return ie=ie.append("targetConf",ee.toString()),ie=ie.append("swapPublicationDeadline",((new Date).getTime()+18e5).toString()),this.loopUrl=P.T5+P.NZ.LOOP_API+"/in/termsAndQuotes",this.store.dispatch((0,T.ac)({payload:o.m6.GET_TERMS_QUOTES})),this.httpClient.get(this.loopUrl,{params:ie}).pipe((0,s.R)(this.unSubs[4]),(0,c.U)(_e=>(this.store.dispatch((0,T.uO)({payload:o.m6.GET_TERMS_QUOTES})),_e)),(0,C.K)(_e=>this.handleErrorWithAlert(o.m6.GET_TERMS_QUOTES,this.loopUrl,_e)))}getSwap(ee){return this.loopUrl=P.T5+P.NZ.LOOP_API+"/swap/"+ee,this.httpClient.get(this.loopUrl).pipe((0,C.K)(ie=>this.handleErrorWithoutAlert("Loop Get Swap for ID: "+ee,o.m6.NO_SPINNER,ie)))}handleErrorWithoutAlert(ee,ie,_e){let fe="";return this.logger.error("ERROR IN: "+ee+"\n"+JSON.stringify(_e)),this.store.dispatch((0,T.uO)({payload:ie})),401===_e.status?(fe="Unauthorized User.",this.logger.info("Redirecting to Login"),this.store.dispatch((0,T.kS)())):503===_e.status?(fe="Unable to Connect to Loop Server.",this.store.dispatch((0,T.qR)({payload:{data:{type:"ERROR",alertTitle:"Loop Not Connected",message:{code:_e.status,message:"Unable to Connect to Loop Server",URL:ee},component:O.H}}}))):fe=this.commonService.extractErrorMessage(_e),(0,M._)(()=>new Error(fe))}handleErrorWithAlert(ee,ie,_e){let fe="";return this.logger.error(_e),this.store.dispatch((0,T.uO)({payload:ee})),401===_e.status?(fe="Unauthorized User.",this.logger.info("Redirecting to Login"),this.store.dispatch((0,T.kS)())):503===_e.status?(fe="Unable to Connect to Loop Server.",this.store.dispatch((0,T.qR)({payload:{data:{type:"ERROR",alertTitle:"Loop Not Connected",message:{code:_e.status,message:"Unable to Connect to Loop Server",URL:ie},component:O.H}}}))):(fe=this.commonService.extractErrorMessage(_e),this.store.dispatch((0,T.qR)({payload:{data:{type:o.n_.ERROR,alertTitle:"ERROR",message:{code:_e.error&&_e.error.error&&_e.error.error.code?_e.error.error.code:_e.error&&_e.error.code?_e.error.code:_e.code?_e.code:_e.status,message:fe,URL:ie},component:O.H}}}))),(0,M._)(()=>new Error(fe))}ngOnDestroy(){this.unSubs.forEach(ee=>{ee.next(null),ee.complete()})}}return G.\u0275fac=function(ee){return new(ee||G)(R.LFG(e.eN),R.LFG(S.mQ),R.LFG(D.yh),R.LFG(w.v))},G.\u0275prov=R.Yz7({token:G,factory:G.\u0275fac}),G})()},5986:(Ue,K,m)=>{"use strict";m.d(K,{m:()=>v});var e=m(7579),t=m(5e3);let v=(()=>{class M{constructor(){this.sessionSub=new e.x}watchSession(){return this.sessionSub.asObservable()}getItem(C){return sessionStorage.getItem(C)}getAllItems(){return sessionStorage}setItem(C,c){sessionStorage.setItem(C,c),this.sessionSub.next(sessionStorage)}removeItem(C){sessionStorage.removeItem(C),this.sessionSub.next(sessionStorage)}clearAll(){sessionStorage.clear(),this.sessionSub.next(sessionStorage)}}return M.\u0275fac=function(C){return new(C||M)},M.\u0275prov=t.Yz7({token:M,factory:M.\u0275fac}),M})()},7998:(Ue,K,m)=>{"use strict";m.d(K,{d:()=>D});var e=m(1135),t=m(7579),v=m(2722),M=m(930),s=m(8306),C=m(727),c=m(4707);const P={url:"",deserializer:w=>JSON.parse(w.data),serializer:w=>JSON.stringify(w)};class O extends t.u{constructor(U,G){if(super(),this._socket=null,U instanceof s.y)this.destination=G,this.source=U;else{const W=this._config=Object.assign({},P);if(this._output=new t.x,"string"==typeof U)W.url=U;else for(const ee in U)U.hasOwnProperty(ee)&&(W[ee]=U[ee]);if(!W.WebSocketCtor&&WebSocket)W.WebSocketCtor=WebSocket;else if(!W.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new c.t}}lift(U){const G=new O(this._config,this.destination);return G.operator=U,G.source=this,G}_resetState(){this._socket=null,this.source||(this.destination=new c.t),this._output=new t.x}multiplex(U,G,W){const ee=this;return new s.y(ie=>{try{ee.next(U())}catch(fe){ie.error(fe)}const _e=ee.subscribe(fe=>{try{W(fe)&&ie.next(fe)}catch(de){ie.error(de)}},fe=>ie.error(fe),()=>ie.complete());return()=>{try{ee.next(G())}catch(fe){ie.error(fe)}_e.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:U,protocol:G,url:W,binaryType:ee}=this._config,ie=this._output;let _e=null;try{_e=G?new U(W,G):new U(W),this._socket=_e,ee&&(this._socket.binaryType=ee)}catch(de){return void ie.error(de)}const fe=new C.w0(()=>{this._socket=null,_e&&1===_e.readyState&&_e.close()});_e.onopen=de=>{const{_socket:ne}=this;if(!ne)return _e.close(),void this._resetState();const{openObserver:se}=this._config;se&&se.next(de);const oe=this.destination;this.destination=M.Lv.create(y=>{if(1===_e.readyState)try{const{serializer:i}=this._config;_e.send(i(y))}catch(i){this.destination.error(i)}},y=>{const{closingObserver:i}=this._config;i&&i.next(void 0),y&&y.code?_e.close(y.code,y.reason):ie.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:y}=this._config;y&&y.next(void 0),_e.close(),this._resetState()}),oe&&oe instanceof c.t&&fe.add(oe.subscribe(this.destination))},_e.onerror=de=>{this._resetState(),ie.error(de)},_e.onclose=de=>{this._resetState();const{closeObserver:ne}=this._config;ne&&ne.next(de),de.wasClean?ie.complete():ie.error(de)},_e.onmessage=de=>{try{const{deserializer:ne}=this._config;ie.next(ne(de))}catch(ne){ie.error(ne)}}}_subscribe(U){const{source:G}=this;return G?G.subscribe(U):(this._socket||this._connectSocket(),this._output.subscribe(U),U.add(()=>{const{_socket:W}=this;0===this._output.observers.length&&(W&&(1===W.readyState||0===W.readyState)&&W.close(),this._resetState())}),U)}unsubscribe(){const{_socket:U}=this;U&&(1===U.readyState||0===U.readyState)&&U.close(),this._resetState(),super.unsubscribe()}}var T=m(5e3),R=m(5043),S=m(5986);let D=(()=>{class w{constructor(G,W){this.logger=G,this.sessionService=W,this.clWSMessages=new e.X(null),this.eclWSMessages=new e.X(null),this.lndWSMessages=new e.X(null),this.wsUrl="",this.nodeIndex="",this.RETRY_SECONDS=5,this.RECONNECT_TIMEOUT=null,this.unSubs=[new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x,new t.x]}connectWebSocket(G,W){(!this.socket||this.socket.closed)&&(this.wsUrl=G,this.nodeIndex=W,this.logger.info("Websocket Url: "+this.wsUrl),this.socket=new O({url:G,protocol:[this.sessionService.getItem("token"),W]}),this.subscribeToMessages())}reconnectOnError(){this.RECONNECT_TIMEOUT||this.socket&&!this.socket.closed||(this.RETRY_SECONDS=this.RETRY_SECONDS>=160?160:2*this.RETRY_SECONDS,this.RECONNECT_TIMEOUT=setTimeout(()=>{this.logger.info("Reconnecting Web Socket."),this.connectWebSocket(this.wsUrl,this.nodeIndex),this.RECONNECT_TIMEOUT=null},1e3*this.RETRY_SECONDS))}closeConnection(){this.socket&&(this.socket.complete(),this.socket=null)}subscribeToMessages(){this.socket.pipe((0,v.R)(this.unSubs[1])).subscribe({next:G=>{if((G="string"==typeof G?JSON.parse(G):G).error)this.handleError(G.error);else switch(this.logger.info("Next Message from WS:"+JSON.stringify(G)),G.source){case"LND":this.lndWSMessages.next(G);break;case"CLT":this.clWSMessages.next(G);break;case"ECL":this.eclWSMessages.next(G)}},error:G=>this.handleError(G),complete:()=>{this.logger.info("Web Socket Closed")}})}handleError(G){this.logger.error(G),this.clWSMessages.error(G),this.eclWSMessages.error(G),this.lndWSMessages.error(G),this.reconnectOnError()}ngOnDestroy(){this.closeConnection(),this.clWSMessages.next(null),this.clWSMessages.complete(),this.eclWSMessages.next(null),this.eclWSMessages.complete(),this.lndWSMessages.next(null),this.lndWSMessages.complete()}}return w.\u0275fac=function(G){return new(G||w)(T.LFG(R.mQ),T.LFG(S.m))},w.\u0275prov=T.Yz7({token:w,factory:w.\u0275fac}),w})()},8750:(Ue,K,m)=>{"use strict";m.d(K,{m:()=>mi});var e=m(9808),t=m(9291),v=m(3075),M=m(8138),s=m(9444),C=m(5e3),c=m(3270),P=m(3322),o=m(7093);m(3191);let qe=(()=>{class Ct{}return Ct.\u0275fac=function(bt){return new(bt||Ct)},Ct.\u0275mod=C.oAB({type:Ct}),Ct.\u0275inj=C.cJS({imports:[[c.IR]]}),Ct})(),me=(()=>{class Ct{constructor(bt,Wt){(0,e.PM)(Wt)&&!bt&&console.warn("Warning: Flex Layout loaded on the server without FlexLayoutServerModule")}static withConfig(bt,Wt=[]){return{ngModule:Ct,providers:bt.serverLoaded?[{provide:c.WU,useValue:Object.assign(Object.assign({},c.g5),bt)},{provide:c.Bs,useValue:Wt,multi:!0},{provide:c.wY,useValue:!0}]:[{provide:c.WU,useValue:Object.assign(Object.assign({},c.g5),bt)},{provide:c.Bs,useValue:Wt,multi:!0}]}}}return Ct.\u0275fac=function(bt){return new(bt||Ct)(C.LFG(c.wY),C.LFG(C.Lbi))},Ct.\u0275mod=C.oAB({type:Ct}),Ct.\u0275inj=C.cJS({imports:[[o.ae,P.aT,qe],o.ae,P.aT,qe]}),Ct})();var $e=m(5113),St=m(508),Rt=m(8966),yi=m(1079),Ri=m(7544),Ii=m(7423);m(449),m(5664);let Pn=(()=>{class Ct{}return Ct.\u0275fac=function(bt){return new(bt||Ct)},Ct.\u0275mod=C.oAB({type:Ct}),Ct.\u0275inj=C.cJS({imports:[[St.BQ,St.si],St.BQ]}),Ct})();var xr=m(9224),wi=m(7446),zi=m(6856),sn=m(1125),Sr=m(3954),ya=m(5245),qn=m(7531),kr=m(4623),ba=m(2181),xa=m(6087),Va=m(5899),zr=m(773),is=m(9814),rr=m(4107),ua=m(2638),la=m(2368);m(1159),m(6360),m(925),m(727),m(226);let Sa=(()=>{class Ct{}return Ct.\u0275fac=function(bt){return new(bt||Ct)},Ct.\u0275mod=C.oAB({type:Ct}),Ct.\u0275inj=C.cJS({imports:[[e.ez,St.BQ],St.BQ]}),Ct})();var Pr=m(7261),na=m(4847),Mr=m(5615),ns=m(2075),Wa=m(3251),mr=m(4594),fa=m(7238),ra=m(149),pa=m(6046),Zn=m(159),rs=m(644),Ya=m(9776);let Xe=(()=>{class Ct extends Ya.Xj{_createContainer(){const bt=document.createElement("div");bt.classList.add("cdk-overlay-container"),document.getElementById("rtl-container").appendChild(bt),this._containerElement=bt}}return Ct.\u0275fac=function(){let ei;return function(Wt){return(ei||(ei=C.n5z(Ct)))(Wt||Ct)}}(),Ct.\u0275prov=C.Yz7({token:Ct,factory:Ct.\u0275fac}),Ct})();var ye=m(5043),Q=m(7731);const ae={suppressScrollX:!1,suppressScrollY:!1};let Qe=(()=>{class Ct extends St.LF{format(bt,Wt){if("input"===Wt){let xi=bt.getDate().toString();return xi=+xi<10?"0"+xi:xi,xi+"/"+Q.gg[bt.getMonth()].name.toUpperCase()+"/"+bt.getFullYear()}return Q.gg[bt.getMonth()].name.toUpperCase()+" "+bt.getFullYear()}}return Ct.\u0275fac=function(){let ei;return function(Wt){return(ei||(ei=C.n5z(Ct)))(Wt||Ct)}}(),Ct.\u0275prov=C.Yz7({token:Ct,factory:Ct.\u0275fac}),Ct})();const Yt={parse:{dateInput:{day:"numeric",month:"short",year:"numeric"}},display:{dateInput:"input",monthYearLabel:{month:"short",year:"numeric"},dateA11yLabel:{day:"numeric",month:"short",year:"numeric"},monthYearA11yLabel:{month:"short",year:"numeric"}}};let mi=(()=>{class Ct{}return Ct.\u0275fac=function(bt){return new(bt||Ct)},Ct.\u0275mod=C.oAB({type:Ct}),Ct.\u0275inj=C.cJS({providers:[{provide:ye.mQ,useClass:ye.LG},{provide:rs.op,useValue:ae},{provide:Pr.Ve,useValue:{duration:2e3,verticalPosition:"bottom",panelClass:"rtl-snack-bar"}},{provide:Rt.Bq,useValue:{hasBackdrop:!0,autoFocus:!0,disableClose:!0,role:"dialog",width:"45%"}},{provide:St._A,useClass:Qe},{provide:St.sG,useValue:Yt},{provide:Ya.Xj,useClass:Xe},e.JJ,e.rS,e.uU],imports:[[e.ez,v.u5,v.UX,s.uH,me,$e.xu,Rt.Is,Ii.ot,Pn,xr.QW,wi.p9,sn.To,Sr.N6,zi.FA,St.XK,ya.Ps,qn.c,kr.ie,ba.Tx,Va.Cv,zr.Cq,is.Fk,ra.dp,rr.LD,ua.SJ,la.rP,na.JX,ns.p0,mr.g0,fa.AV,Ri.g,xa.TU,Mr.T5,Sa,Wa.Nh,Pr.ZX,yi.Bb,pa.a4,Zn.OF,t.Bz,M.JF,rs.Xd],v.u5,v.UX,s.uH,me,$e.xu,Rt.Is,Ii.ot,Pn,xr.QW,wi.p9,sn.To,Sr.N6,zi.FA,St.XK,ya.Ps,qn.c,kr.ie,ba.Tx,Va.Cv,zr.Cq,is.Fk,ra.dp,rr.LD,ua.SJ,la.rP,na.JX,ns.p0,mr.g0,fa.AV,Ri.g,xa.TU,Mr.T5,Sa,Wa.Nh,Pr.ZX,yi.Bb,pa.a4,Zn.OF,rs.Xd]}),Ct})()},7861:(Ue,K,m)=>{"use strict";m.d(K,{lC:()=>M,qi:()=>s,ts:()=>C,jW:()=>c,ac:()=>P,uO:()=>o,qR:()=>O,M6:()=>T,c1:()=>R,yb:()=>S,tj:()=>D,Q2:()=>w,tw:()=>G,vI:()=>W,ey:()=>ee,XT:()=>ie,zQ:()=>_e,Uy:()=>fe,fk:()=>de,Tm:()=>ne,jS:()=>se,_V:()=>oe,kS:()=>i,c0:()=>a,QO:()=>u,x4:()=>L,dc:()=>x});var e=m(5620),t=m(7731);(0,e.PH)(t.pg.VOID);const M=(0,e.PH)(t.pg.SET_API_URL_ECL,(0,e.Ky)()),s=(0,e.PH)(t.pg.UPDATE_API_CALL_STATUS_ROOT,(0,e.Ky)()),C=(0,e.PH)(t.pg.CLOSE_ALL_DIALOGS),c=(0,e.PH)(t.pg.OPEN_SNACK_BAR,(0,e.Ky)()),P=(0,e.PH)(t.pg.OPEN_SPINNER,(0,e.Ky)()),o=(0,e.PH)(t.pg.CLOSE_SPINNER,(0,e.Ky)()),O=(0,e.PH)(t.pg.OPEN_ALERT,(0,e.Ky)()),T=(0,e.PH)(t.pg.CLOSE_ALERT,(0,e.Ky)()),R=(0,e.PH)(t.pg.OPEN_CONFIRMATION,(0,e.Ky)()),S=(0,e.PH)(t.pg.CLOSE_CONFIRMATION,(0,e.Ky)()),D=(0,e.PH)(t.pg.SHOW_PUBKEY),w=(0,e.PH)(t.pg.FETCH_CONFIG,(0,e.Ky)()),G=((0,e.PH)(t.pg.SHOW_CONFIG,(0,e.Ky)()),(0,e.PH)(t.pg.UPDATE_SELECTED_NODE_OPTIONS)),W=(0,e.PH)(t.pg.RESET_ROOT_STORE,(0,e.Ky)()),ee=(0,e.PH)(t.pg.FETCH_RTL_CONFIG),ie=(0,e.PH)(t.pg.SET_RTL_CONFIG,(0,e.Ky)()),_e=(0,e.PH)(t.pg.SAVE_SETTINGS,(0,e.Ky)()),fe=(0,e.PH)(t.pg.TWO_FA_SAVE_SETTINGS,(0,e.Ky)()),de=(0,e.PH)(t.pg.SET_SELECTED_NODE,(0,e.Ky)()),ne=(0,e.PH)(t.pg.UPDATE_ROOT_NODE_SETTINGS,(0,e.Ky)()),se=(0,e.PH)(t.pg.UPDATE_SERVICE_SETTINGS,(0,e.Ky)()),oe=(0,e.PH)(t.pg.SET_NODE_DATA,(0,e.Ky)()),i=((0,e.PH)(t.pg.SAVE_SSO,(0,e.Ky)()),(0,e.PH)(t.pg.LOGOUT)),a=(0,e.PH)(t.pg.RESET_PASSWORD,(0,e.Ky)()),u=((0,e.PH)(t.pg.RESET_PASSWORD_RES,(0,e.Ky)()),(0,e.PH)(t.pg.IS_AUTHORIZED,(0,e.Ky)())),L=((0,e.PH)(t.pg.IS_AUTHORIZED_RES,(0,e.Ky)()),(0,e.PH)(t.pg.LOGIN,(0,e.Ky)())),x=((0,e.PH)(t.pg.VERIFY_TWO_FA,(0,e.Ky)()),(0,e.PH)(t.pg.FETCH_FILE,(0,e.Ky)()));(0,e.PH)(t.pg.SHOW_FILE,(0,e.Ky)())},3093:(Ue,K,m)=>{"use strict";m.d(K,{V:()=>Ki});var e=m(6642),t=m(7579),v=m(9646),M=m(8306),s=m(4128),C=m(4004),c=m(5698),P=m(1365),o=m(5577),O=m(262),T=m(2722),R=m(2340),S=m(7731),D=m(8966),w=m(5e3),U=m(7093),G=m(773);let W=(()=>{class at{constructor(gt,Lt){this.dialogRef=gt,this.data=Lt}}return at.\u0275fac=function(gt){return new(gt||at)(w.Y36(D.so),w.Y36(D.WI))},at.\u0275cmp=w.Xpm({type:at,selectors:[["rtl-spinner-dialog"]],decls:5,vars:1,consts:[[1,"spinner-container"],["fxLayout","column","fxLayoutAlign","center center",1,"spinner-circle"]],template:function(gt,Lt){1>&&(w.TgZ(0,"div",0),w.TgZ(1,"div",1),w._UZ(2,"mat-spinner"),w.TgZ(3,"h1"),w._uU(4),w.qZA(),w.qZA(),w.qZA()),2>&&(w.xp6(4),w.Oqu(Lt.data.titleMessage))},directives:[U.xw,U.Wh,G.$g],styles:[".spinner-container[_ngcontent-%COMP%]{position:absolute;left:40%;top:35%}"]}),at})();var ee=m(5043),ie=m(7261),_e=m(62),fe=m(9808),de=m(3322),ne=m(9224),se=m(7423),oe=m(159),y=m(644),i=m(5245),a=m(3390),p=m(6895),u=m(4834);const _=["scrollContainer"];function L(at,Qt){if(1&at&&w._UZ(0,"qr-code",15),2&at){const gt=w.oxw();w.Q6J("value",gt.showQRField)("size",240)("errorCorrectionLevel","L")}}function I(at,Qt){1&at&&w.GkF(0)}const x=function(at){return{"h-40":at}};function r(at,Qt){if(1&at&&(w.ynx(0),w.TgZ(1,"mat-card-content",16,17),w.YNc(3,I,1,0,"ng-container",18),w.qZA(),w.BQk()),2&at){const gt=w.oxw(),Lt=w.MAs(20);w.xp6(1),w.Q6J("ngClass",w.VKq(2,x,gt.data.scrollable)),w.xp6(2),w.Q6J("ngTemplateOutlet",Lt)}}function b(at,Qt){1&at&&w.GkF(0)}function J(at,Qt){if(1&at&&(w.ynx(0),w.TgZ(1,"mat-card-content",19),w.YNc(2,b,1,0,"ng-container",18),w.qZA(),w.BQk()),2&at){w.oxw();const gt=w.MAs(20);w.xp6(2),w.Q6J("ngTemplateOutlet",gt)}}function F(at,Qt){1&at&&(w.TgZ(0,"mat-icon",23),w._uU(1,"arrow_downward"),w.qZA())}function B(at,Qt){1&at&&(w.TgZ(0,"mat-icon",23),w._uU(1,"arrow_upward"),w.qZA())}function te(at,Qt){if(1&at){const gt=w.EpF();w.TgZ(0,"div",20),w.TgZ(1,"button",21),w.NdJ("click",function(){return w.CHM(gt),w.oxw().onScroll()}),w.YNc(2,F,2,0,"mat-icon",22),w.YNc(3,B,2,0,"mat-icon",22),w.qZA(),w.qZA()}if(2&at){const gt=w.oxw();w.xp6(2),w.Q6J("ngIf","DOWN"===gt.scrollDirection),w.xp6(1),w.Q6J("ngIf","UP"===gt.scrollDirection)}}function xe(at,Qt){1&at&&(w.TgZ(0,"button",24),w._uU(1,"OK"),w.qZA()),2&at&&w.Q6J("mat-dialog-close",!1)}function Re(at,Qt){1&at&&(w.TgZ(0,"button",25),w._uU(1,"Close"),w.qZA()),2&at&&w.Q6J("mat-dialog-close",!1)}function Fe(at,Qt){if(1&at){const gt=w.EpF();w.TgZ(0,"button",26),w.NdJ("copied",function(ui){return w.CHM(gt),w.oxw().onCopyField(ui)}),w._uU(1),w.qZA()}if(2&at){const gt=w.oxw();w.Q6J("payload",gt.showCopyField),w.xp6(1),w.hij("Copy ",gt.showCopyName,"")}}function q(at,Qt){1&at&&(w.TgZ(0,"button",25),w._uU(1,"Close"),w.qZA()),2&at&&w.Q6J("mat-dialog-close",!1)}function j(at,Qt){if(1&at){const gt=w.EpF();w.TgZ(0,"button",26),w.NdJ("copied",function(ui){return w.CHM(gt),w.oxw().onCopyField(ui)}),w._uU(1),w.qZA()}if(2&at){const gt=w.oxw();w.Q6J("payload",gt.showQRField),w.xp6(1),w.hij("Copy ",gt.showQRName,"")}}function we(at,Qt){if(1&at&&w._UZ(0,"qr-code",15),2&at){const gt=w.oxw(2);w.Q6J("value",gt.showQRField)("size",240)("errorCorrectionLevel","L")}}function Ae(at,Qt){if(1&at&&(w.TgZ(0,"p",32),w._uU(1),w.qZA()),2&at){const gt=w.oxw(2);w.xp6(1),w.Oqu(gt.data.titleMessage)}}function le(at,Qt){1&at&&w._UZ(0,"span",46),2&at&&w.Q6J("innerHTML",Qt.$implicit,w.oJD)}function We(at,Qt){if(1&at&&(w.ynx(0),w.YNc(1,le,1,1,"span",45),w.BQk()),2&at){const gt=w.oxw(2).$implicit;w.xp6(1),w.Q6J("ngForOf",gt.value)}}function yt(at,Qt){if(1&at&&(w.ynx(0),w._uU(1),w.ALo(2,"date"),w.BQk()),2&at){const gt=w.oxw(2).$implicit;w.xp6(1),w.Oqu(w.xi3(2,1,1e3*gt.value,"dd/MMM/YYYY HH:mm"))}}function Ne(at,Qt){if(1&at&&(w.ynx(0),w._uU(1),w.ALo(2,"number"),w.BQk()),2&at){const gt=w.oxw(2).$implicit;w.xp6(1),w.Oqu(w.xi3(2,1,gt.value,gt.digitsInfo?gt.digitsInfo:"1.0-3"))}}function Ve(at,Qt){if(1&at&&(w.ynx(0),w._uU(1),w.BQk()),2&at){const gt=w.oxw(2).$implicit;w.xp6(1),w.Oqu(gt.value?"True":"False")}}function ue(at,Qt){1&at&&(w.TgZ(0,"mat-icon",51),w._uU(1,"info"),w.qZA())}const Te=function(at){return{"failed-status":at}};function ke(at,Qt){if(1&at&&(w.TgZ(0,"p",49),w._uU(1),w.YNc(2,ue,2,0,"mat-icon",50),w.qZA()),2&at){const gt=w.oxw(3).$implicit,Lt=w.oxw(4);w.Q6J("ngClass",w.VKq(3,Te,gt.value===Lt.LoopStateEnum.FAILED)),w.xp6(1),w.hij(" ",gt.value," "),w.xp6(1),w.Q6J("ngIf",gt.value===Lt.LoopStateEnum.FAILED)}}function Y(at,Qt){if(1&at&&w._uU(0),2&at){const gt=w.oxw(3).$implicit;w.Oqu(gt.value)}}function X(at,Qt){if(1&at&&(w.ynx(0),w.YNc(1,ke,3,5,"p",47),w.YNc(2,Y,1,1,"ng-template",null,48,w.W1O),w.BQk()),2&at){const gt=w.MAs(3),Lt=w.oxw(2).$implicit,ui=w.oxw(4);w.xp6(1),w.Q6J("ngIf","SWAP"===ui.data.openedBy&&"state"===Lt.key)("ngIfElse",gt)}}function he(at,Qt){if(1&at&&(w.TgZ(0,"span"),w.TgZ(1,"span",42),w.YNc(2,We,2,1,"ng-container",43),w.YNc(3,yt,3,4,"ng-container",43),w.YNc(4,Ne,3,4,"ng-container",43),w.YNc(5,Ve,2,1,"ng-container",43),w.YNc(6,X,4,2,"ng-container",44),w.qZA(),w.qZA()),2&at){const gt=w.oxw().$implicit,Lt=w.oxw(4);w.xp6(1),w.Q6J("ngSwitch",gt.type),w.xp6(1),w.Q6J("ngSwitchCase",Lt.dataTypeEnum.ARRAY),w.xp6(1),w.Q6J("ngSwitchCase",Lt.dataTypeEnum.DATE_TIME),w.xp6(1),w.Q6J("ngSwitchCase",Lt.dataTypeEnum.NUMBER),w.xp6(1),w.Q6J("ngSwitchCase",Lt.dataTypeEnum.BOOLEAN)}}function Me(at,Qt){1&at&&(w.TgZ(0,"span",52),w._uU(1,"\xa0"),w.qZA())}function ze(at,Qt){if(1&at&&(w.TgZ(0,"div",37),w.TgZ(1,"h4",38),w._uU(2),w.qZA(),w.YNc(3,he,7,5,"span",39),w.YNc(4,Me,2,0,"ng-template",null,40,w.W1O),w._UZ(6,"mat-divider",41),w.qZA()),2&at){const gt=Qt.$implicit,Lt=w.MAs(5);w.s9C("fxFlex.gt-md",gt.width),w.xp6(2),w.Oqu(gt.title),w.xp6(1),w.Q6J("ngIf",gt&&(!!gt.value||0===gt.value))("ngIfElse",Lt)}}function ht(at,Qt){if(1&at&&(w.TgZ(0,"div"),w.TgZ(1,"div",35),w.YNc(2,ze,7,4,"div",36),w.qZA(),w.qZA()),2&at){const gt=Qt.$implicit;w.xp6(2),w.Q6J("ngForOf",gt)}}function it(at,Qt){if(1&at&&(w.TgZ(0,"div",33),w.YNc(1,ht,3,1,"div",34),w.qZA()),2&at){const gt=w.oxw(2);w.xp6(1),w.Q6J("ngForOf",gt.messageObjs)}}const ft=function(at){return{"display-none":at}};function nt(at,Qt){if(1&at&&(w.TgZ(0,"div",27),w.TgZ(1,"div",28),w.YNc(2,we,1,3,"qr-code",2),w.qZA(),w.TgZ(3,"div",29),w.YNc(4,Ae,2,1,"p",30),w.YNc(5,it,2,1,"div",31),w.qZA(),w.qZA()),2&at){const gt=w.oxw();w.xp6(1),w.Q6J("ngClass",w.VKq(4,ft,""===gt.showQRField||gt.screenSize!==gt.screenSizeEnum.XS&>.screenSize!==gt.screenSizeEnum.SM)),w.xp6(1),w.Q6J("ngIf",""!==gt.showQRField),w.xp6(2),w.Q6J("ngIf",gt.data.titleMessage),w.xp6(1),w.Q6J("ngIf",(null==gt.messageObjs?null:gt.messageObjs.length)>0)}}let st=(()=>{class at{constructor(gt,Lt,ui,Ci,Wi,$i){this.dialogRef=gt,this.data=Lt,this.logger=ui,this.snackBar=Ci,this.commonService=Wi,this.renderer=$i,this.LoopStateEnum=S.Fq,this.showQRField="",this.showQRName="",this.showCopyName="",this.showCopyField="",this.errorMessage="",this.messageObjs=[],this.alertTypeEnum=S.n_,this.dataTypeEnum=S.Gi,this.screenSize="",this.screenSizeEnum=S.cu,this.scrollDirection="DOWN",this.shouldScroll=!0}set container(gt){gt&&(this.scrollContainer=gt,this.scrollContainer&&this.scrollContainer.nativeElement&&(this.unlistenEnd=this.renderer.listen(this.scrollContainer.nativeElement,"ps-y-reach-end",Lt=>{this.scrollDirection="UP"}),this.unlistenStart=this.renderer.listen(this.scrollContainer.nativeElement,"ps-y-reach-start",Lt=>{this.scrollDirection="DOWN"})))}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.messageObjs=this.data.message,this.showQRField=this.data.showQRField?this.data.showQRField:"",this.showQRName=this.data.showQRName?this.data.showQRName:"",this.showCopyName=this.data.showCopyName?this.data.showCopyName:"",this.showCopyField=this.data.showCopyField?this.data.showCopyField:"",this.data.type===S.n_.ERROR&&!this.data.message&&!this.data.titleMessage&&this.messageObjs.length<=0&&(this.data.titleMessage="Please Check Server Connection"),this.logger.info(this.messageObjs)}ngAfterViewChecked(){setTimeout(()=>{this.shouldScroll=this.scrollContainer&&this.scrollContainer.nativeElement&&this.scrollContainer.nativeElement.classList.value.includes("ps--active-y")},500)}onScroll(){this.scrollContainer.nativeElement.scrollTop="DOWN"===this.scrollDirection?this.scrollContainer.nativeElement.scrollTop+62.6:this.scrollContainer.nativeElement.scrollTop-62.6}onCopyField(gt){this.snackBar.open((this.showQRName?this.showQRName:this.showCopyName)+" copied."),this.logger.info("Copied Text: "+gt)}onClose(){this.dialogRef.close(!1)}ngOnDestroy(){this.unlistenStart&&this.unlistenStart(),this.unlistenEnd&&this.unlistenEnd()}}return at.\u0275fac=function(gt){return new(gt||at)(w.Y36(D.so),w.Y36(D.WI),w.Y36(ee.mQ),w.Y36(ie.ux),w.Y36(_e.v),w.Y36(w.Qsj))},at.\u0275cmp=w.Xpm({type:at,selectors:[["rtl-alert-message"]],viewQuery:function(gt,Lt){if(1>&&w.Gf(_,5),2>){let ui;w.iGM(ui=w.CRH())&&(Lt.container=ui.first)}},decls:21,vars:14,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","30","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],[3,"value","size","errorCorrectionLevel",4,"ngIf"],[3,"fxFlex"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","start end","class","btn-sticky-container padding-gap-x-large",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center",1,"padding-gap-x-large","padding-gap-bottom-large"],["tabindex","1","autoFocus","","mat-button","","color","primary","type","submit","default","",3,"mat-dialog-close",4,"ngIf"],["class","mr-1","fxLayoutAlign","center center","tabindex","1","mat-button","","color","primary","type","button","default","",3,"mat-dialog-close",4,"ngIf"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied",4,"ngIf"],["contentBlock",""],[3,"value","size","errorCorrectionLevel"],[1,"padding-gap-x-large",3,"perfectScrollbar","ngClass"],["scrollContainer",""],[4,"ngTemplateOutlet"],[1,"padding-gap-x-large"],["fxLayout","row","fxLayoutAlign","start end",1,"btn-sticky-container","padding-gap-x-large"],["mat-mini-fab","","aria-label","Scroll","fxLayoutAlign","center center",3,"click"],["fxLayoutAlign","center center",4,"ngIf"],["fxLayoutAlign","center center"],["tabindex","1","autoFocus","","mat-button","","color","primary","type","submit","default","",3,"mat-dialog-close"],["fxLayoutAlign","center center","tabindex","1","mat-button","","color","primary","type","button","default","",1,"mr-1",3,"mat-dialog-close"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["fxLayout","column"],["fxFlex","50","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large","mb-1",3,"ngClass"],["fxLayout","column","fxFlex","100"],["fxLayoutAlign","start center","class","pb-2",4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxLayoutAlign","start center",1,"pb-2"],["fxFlex","100"],[4,"ngFor","ngForOf"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","start center","fxLayoutAlign.gt-md","space-between start"],["fxLayout","column","fxFlex","100",3,"fxFlex.gt-md",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100",3,"fxFlex.gt-md"],["fxLayoutAlign","start",1,"font-bold-500"],[4,"ngIf","ngIfElse"],["emptyField",""],[1,"w-100","my-1"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"foreground-secondary-text",3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],["class","display-block w-100",3,"innerHTML",4,"ngFor","ngForOf"],[1,"display-block","w-100",3,"innerHTML"],["fxLayout","row",3,"ngClass",4,"ngIf","ngIfElse"],["noStyleBlock",""],["fxLayout","row",3,"ngClass"],["fxLayoutAlign","end end","class","icon-failed-status",4,"ngIf"],["fxLayoutAlign","end end",1,"icon-failed-status"],["fxFlex","100",1,"foreground-secondary-text"]],template:function(gt,Lt){1>&&(w.TgZ(0,"div",0),w.TgZ(1,"div",1),w.YNc(2,L,1,3,"qr-code",2),w.qZA(),w.TgZ(3,"div",3),w.TgZ(4,"mat-card-header",4),w.TgZ(5,"div",5),w.TgZ(6,"span",6),w._uU(7),w.qZA(),w.qZA(),w.TgZ(8,"button",7),w.NdJ("click",function(){return Lt.onClose()}),w._uU(9,"X"),w.qZA(),w.qZA(),w.YNc(10,r,4,4,"ng-container",8),w.YNc(11,J,3,1,"ng-container",8),w.YNc(12,te,4,2,"div",9),w.TgZ(13,"div",10),w.YNc(14,xe,2,1,"button",11),w.YNc(15,Re,2,1,"button",12),w.YNc(16,Fe,2,2,"button",13),w.YNc(17,q,2,1,"button",12),w.YNc(18,j,2,2,"button",13),w.qZA(),w.qZA(),w.qZA(),w.YNc(19,nt,6,6,"ng-template",null,14,w.W1O)),2>&&(w.xp6(1),w.Q6J("ngClass",w.VKq(12,ft,""===Lt.showQRField||Lt.screenSize===Lt.screenSizeEnum.XS||Lt.screenSize===Lt.screenSizeEnum.SM)),w.xp6(1),w.Q6J("ngIf",""!==Lt.showQRField),w.xp6(1),w.Q6J("fxFlex",""===Lt.showQRField||Lt.screenSize===Lt.screenSizeEnum.XS||Lt.screenSize===Lt.screenSizeEnum.SM?"100":"70"),w.xp6(4),w.Oqu(Lt.data.alertTitle||Lt.alertTypeEnum[Lt.data.type]),w.xp6(3),w.Q6J("ngIf",Lt.data.scrollable),w.xp6(1),w.Q6J("ngIf",!Lt.data.scrollable),w.xp6(1),w.Q6J("ngIf",Lt.data.scrollable&&Lt.shouldScroll),w.xp6(2),w.Q6J("ngIf",(!Lt.showQRField||""===Lt.showQRField)&&""===Lt.showCopyName),w.xp6(1),w.Q6J("ngIf",""!==Lt.showCopyName),w.xp6(1),w.Q6J("ngIf",""!==Lt.showCopyName),w.xp6(1),w.Q6J("ngIf",""!==Lt.showQRField),w.xp6(1),w.Q6J("ngIf",""!==Lt.showQRField))},directives:[U.xw,U.Wh,U.yH,fe.mk,de.oO,fe.O5,ne.dk,se.lW,oe.uU,ne.dn,y.$V,fe.tP,i.Hw,a.h,D.ZT,p.y,fe.sg,u.d,fe.RF,fe.n9,fe.ED],pipes:[fe.uU,fe.JJ],styles:[".display-block[_ngcontent-%COMP%]{display:block}"]}),at})();var wt=m(801),Bt=m(7861),Nt=m(5620),Vt=m(3075),Oi=m(9444),jt=m(7322),ti=m(7531),Pi=m(6534);function si(at,Qt){if(1&at&&(w.TgZ(0,"div",17),w._UZ(1,"fa-icon",18),w.TgZ(2,"span"),w._uU(3),w.qZA(),w.qZA()),2&at){const gt=w.oxw();w.xp6(1),w.Q6J("icon",gt.faExclamationTriangle),w.xp6(2),w.Oqu(gt.warningMessage)}}function di(at,Qt){if(1&at&&(w.TgZ(0,"div",19),w._UZ(1,"fa-icon",18),w.TgZ(2,"span"),w._uU(3),w.qZA(),w.qZA()),2&at){const gt=w.oxw();w.xp6(1),w.Q6J("icon",gt.faInfoCircle),w.xp6(2),w.Oqu(gt.informationMessage)}}function He(at,Qt){if(1&at&&(w.TgZ(0,"p",20),w._uU(1),w.qZA()),2&at){const gt=w.oxw();w.xp6(1),w.Oqu(gt.data.titleMessage)}}function Se(at,Qt){if(1&at&&(w.TgZ(0,"span",33),w._uU(1),w.qZA()),2&at){const gt=Qt.$implicit;w.xp6(1),w.Oqu(gt)}}function V(at,Qt){if(1&at&&(w.ynx(0),w.YNc(1,Se,2,1,"span",32),w.BQk()),2&at){const gt=w.oxw(2).$implicit;w.xp6(1),w.Q6J("ngForOf",gt.value)}}function ve(at,Qt){if(1&at&&(w.ynx(0),w._uU(1),w.ALo(2,"date"),w.BQk()),2&at){const gt=w.oxw(2).$implicit;w.xp6(1),w.Oqu(w.xi3(2,1,1e3*gt.value,"dd/MMM/YYYY HH:mm"))}}function Ee(at,Qt){if(1&at&&(w.ynx(0),w._uU(1),w.ALo(2,"number"),w.BQk()),2&at){const gt=w.oxw(2).$implicit;w.xp6(1),w.Oqu(w.xi3(2,1,gt.value,"1.0-3"))}}function et(at,Qt){if(1&at&&(w.ynx(0),w._uU(1),w.BQk()),2&at){const gt=w.oxw(2).$implicit;w.xp6(1),w.Oqu(!0===gt.value?"True":"False")}}function $t(at,Qt){if(1&at&&(w.ynx(0),w._uU(1),w.BQk()),2&at){const gt=w.oxw(2).$implicit;w.xp6(1),w.Oqu(gt.value)}}function Pt(at,Qt){if(1&at&&(w.TgZ(0,"span"),w.TgZ(1,"span",29),w.YNc(2,V,2,1,"ng-container",30),w.YNc(3,ve,3,4,"ng-container",30),w.YNc(4,Ee,3,4,"ng-container",30),w.YNc(5,et,2,1,"ng-container",30),w.YNc(6,$t,2,1,"ng-container",31),w.qZA(),w.qZA()),2&at){const gt=w.oxw().$implicit,Lt=w.oxw(3);w.xp6(1),w.Q6J("ngSwitch",gt.type),w.xp6(1),w.Q6J("ngSwitchCase",Lt.dataTypeEnum.ARRAY),w.xp6(1),w.Q6J("ngSwitchCase",Lt.dataTypeEnum.DATE_TIME),w.xp6(1),w.Q6J("ngSwitchCase",Lt.dataTypeEnum.NUMBER),w.xp6(1),w.Q6J("ngSwitchCase",Lt.dataTypeEnum.BOOLEAN)}}function Xt(at,Qt){1&at&&(w.TgZ(0,"span",34),w._uU(1,"\xa0"),w.qZA())}function lt(at,Qt){if(1&at&&(w.TgZ(0,"div",24),w.TgZ(1,"h4",25),w._uU(2),w.qZA(),w.YNc(3,Pt,7,5,"span",26),w.YNc(4,Xt,2,0,"ng-template",null,27,w.W1O),w._UZ(6,"mat-divider",28),w.qZA()),2&at){const gt=Qt.$implicit,Lt=w.MAs(5);w.s9C("fxFlex.gt-md",gt.width),w.xp6(2),w.Oqu(gt.title),w.xp6(1),w.Q6J("ngIf",gt&>.value)("ngIfElse",Lt)}}function Pe(at,Qt){if(1&at&&(w.TgZ(0,"div"),w.TgZ(1,"div",22),w.YNc(2,lt,7,4,"div",23),w.qZA(),w.qZA()),2&at){const gt=Qt.$implicit;w.xp6(2),w.Q6J("ngForOf",gt)}}function Be(at,Qt){if(1&at&&(w.TgZ(0,"div"),w.YNc(1,Pe,3,1,"div",21),w.qZA()),2&at){const gt=w.oxw();w.xp6(1),w.Q6J("ngForOf",gt.messageObjs)}}function rt(at,Qt){if(1&at&&(w.TgZ(0,"p",20),w._uU(1),w.qZA()),2&at){const gt=w.oxw(2);w.xp6(1),w.Oqu(gt.data.titleMessage)}}function ot(at,Qt){if(1&at){const gt=w.EpF();w.TgZ(0,"input",41),w.NdJ("ngModelChange",function(ui){return w.CHM(gt),w.oxw().$implicit.inputValue=ui}),w.ALo(1,"lowercase"),w.qZA()}if(2&at){const gt=w.oxw(),Lt=gt.index,ui=gt.$implicit;w.MGl("name","input",Lt,""),w.Q6J("placeholder",ui.placeholder)("min",ui.min)("step",ui.step)("type",w.lcZ(1,7,ui.inputType))("ngModel",ui.inputValue)("tabindex",Lt+1)}}function At(at,Qt){if(1&at){const gt=w.EpF();w.TgZ(0,"input",42),w.NdJ("ngModelChange",function(ui){return w.CHM(gt),w.oxw().$implicit.inputValue=ui}),w.ALo(1,"lowercase"),w.qZA()}if(2&at){const gt=w.oxw(),Lt=gt.index,ui=gt.$implicit;w.MGl("name","input",Lt,""),w.Q6J("placeholder",ui.placeholder)("min",ui.min)("step",ui.step)("type",w.lcZ(1,7,ui.inputType))("ngModel",ui.inputValue)("tabindex",Lt+1)}}function li(at,Qt){if(1&at&&(w.TgZ(0,"mat-error"),w._uU(1),w.qZA()),2&at){const gt=w.oxw().$implicit;w.xp6(1),w.hij("",gt.placeholder," is required.")}}function Ut(at,Qt){if(1&at&&(w.TgZ(0,"mat-form-field",38),w.YNc(1,ot,2,9,"input",39),w.YNc(2,At,2,9,"input",40),w.YNc(3,li,2,1,"mat-error",11),w.TgZ(4,"mat-hint"),w._uU(5),w.qZA(),w.qZA()),2&at){const gt=Qt.$implicit,Lt=Qt.index;w.Q6J("fxFlex",gt.width),w.xp6(1),w.Q6J("ngIf",0===Lt),w.xp6(1),w.Q6J("ngIf",0!==Lt),w.xp6(1),w.Q6J("ngIf",!gt.inputValue),w.xp6(2),w.Oqu(gt.hintFunction?gt.hintFunction(gt.inputValue):gt.hintText)}}function Ft(at,Qt){if(1&at&&(w.TgZ(0,"div",35),w.YNc(1,rt,2,1,"p",10),w.TgZ(2,"div",36),w.YNc(3,Ut,6,5,"mat-form-field",37),w.qZA(),w.qZA()),2&at){const gt=w.oxw();w.xp6(1),w.Q6J("ngIf",gt.data.titleMessage),w.xp6(2),w.Q6J("ngForOf",gt.getInputs)}}function Si(at,Qt){if(1&at){const gt=w.EpF();w.TgZ(0,"button",43),w.NdJ("click",function(){w.CHM(gt);const ui=w.oxw();return ui.onClose(ui.getInputs)}),w._uU(1),w.qZA()}if(2&at){const gt=w.oxw();w.xp6(1),w.Oqu(gt.yesBtnText)}}function ai(at,Qt){if(1&at){const gt=w.EpF();w.TgZ(0,"button",44),w.NdJ("click",function(){return w.CHM(gt),w.oxw().onClose(!0)}),w._uU(1),w.qZA()}if(2&at){const gt=w.oxw();w.xp6(1),w.Oqu(gt.yesBtnText)}}let ci=(()=>{class at{constructor(gt,Lt,ui,Ci){this.dialogRef=gt,this.data=Lt,this.logger=ui,this.store=Ci,this.faInfoCircle=wt.sqG,this.faExclamationTriangle=wt.eHv,this.informationMessage="",this.warningMessage="",this.noBtnText="No",this.yesBtnText="Yes",this.messageObjs=[],this.flgShowInput=!1,this.alertTypeEnum=S.n_,this.dataTypeEnum=S.Gi,this.getInputs=[{placeholder:"",inputType:"text",inputValue:"",hintText:"",hintFunction:null}]}ngOnInit(){this.informationMessage=this.data.informationMessage,this.warningMessage=this.data.warningMessage,this.flgShowInput=this.data.flgShowInput,this.getInputs=this.data.getInputs,this.noBtnText=this.data.noBtnText?this.data.noBtnText:"No",this.yesBtnText=this.data.yesBtnText?this.data.yesBtnText:"Yes",this.messageObjs=this.data.message,this.data.type===S.n_.ERROR&&!this.data.message&&!this.data.titleMessage&&this.messageObjs.length<=0&&(this.data.titleMessage="Please Check Server Connection")}onClose(gt){if(gt&&this.getInputs&&this.getInputs.some(Lt=>!Lt.inputValue))return!0;this.store.dispatch((0,Bt.yb)({payload:gt}))}}return at.\u0275fac=function(gt){return new(gt||at)(w.Y36(D.so),w.Y36(D.WI),w.Y36(ee.mQ),w.Y36(Nt.yh))},at.\u0275cmp=w.Xpm({type:at,selectors:[["rtl-confirmation-message"]],decls:20,vars:9,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","8","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxFlex","100","class","alert alert-warn",4,"ngIf"],["fxFlex","100","class","alert alert-info",4,"ngIf"],["fxLayoutAlign","start center","class","pb-1",4,"ngIf"],[4,"ngIf"],["fxLayout","column","class","bordered-box my-2 p-2",4,"ngIf"],["fxLayout","row","fxLayoutAlign","end center"],["mat-button","","color","primary","type","reset","tabindex","2",1,"mr-1",3,"click"],["autoFocus","","mat-button","","color","primary","type","submit","tabindex","3","default","",3,"click",4,"ngIf"],["autoFocus","","mat-button","","color","primary","type","submit","tabindex","4","default","",3,"click",4,"ngIf"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["fxFlex","100",1,"alert","alert-info"],["fxLayoutAlign","start center",1,"pb-1"],[4,"ngFor","ngForOf"],["fxLayout","row wrap","fxLayoutAlign","start center","fxLayoutAlign.gt-md","space-between start"],["fxLayout","column","fxFlex","100",3,"fxFlex.gt-md",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex","100",3,"fxFlex.gt-md"],["fxLayoutAlign","start",1,"font-bold-500"],[4,"ngIf","ngIfElse"],["emptyField",""],[1,"w-100","my-1"],[1,"foreground-secondary-text",3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],["class","display-block",4,"ngFor","ngForOf"],[1,"display-block"],["fxFlex","100",1,"foreground-secondary-text"],["fxLayout","column",1,"bordered-box","my-2","p-2"],["fxLayoutAlign","space-between center"],[3,"fxFlex",4,"ngFor","ngForOf"],[3,"fxFlex"],["autoFocus","","matInput","","required","",3,"placeholder","name","min","step","type","ngModel","tabindex","ngModelChange",4,"ngIf"],["matInput","","required","",3,"placeholder","name","min","step","type","ngModel","tabindex","ngModelChange",4,"ngIf"],["autoFocus","","matInput","","required","",3,"placeholder","name","min","step","type","ngModel","tabindex","ngModelChange"],["matInput","","required","",3,"placeholder","name","min","step","type","ngModel","tabindex","ngModelChange"],["autoFocus","","mat-button","","color","primary","type","submit","tabindex","3","default","",3,"click"],["autoFocus","","mat-button","","color","primary","type","submit","tabindex","4","default","",3,"click"]],template:function(gt,Lt){1>&&(w.TgZ(0,"div",0),w.TgZ(1,"div",1),w.TgZ(2,"mat-card-header",2),w.TgZ(3,"div",3),w.TgZ(4,"span",4),w._uU(5),w.qZA(),w.qZA(),w.TgZ(6,"button",5),w.NdJ("click",function(){return Lt.onClose(!1)}),w._uU(7,"X"),w.qZA(),w.qZA(),w.TgZ(8,"mat-card-content",6),w.TgZ(9,"form",7),w.YNc(10,si,4,2,"div",8),w.YNc(11,di,4,2,"div",9),w.YNc(12,He,2,1,"p",10),w.YNc(13,Be,2,1,"div",11),w.YNc(14,Ft,4,2,"div",12),w.TgZ(15,"div",13),w.TgZ(16,"button",14),w.NdJ("click",function(){return Lt.onClose(!1)}),w._uU(17),w.qZA(),w.YNc(18,Si,2,1,"button",15),w.YNc(19,ai,2,1,"button",16),w.qZA(),w.qZA(),w.qZA(),w.qZA(),w.qZA()),2>&&(w.xp6(5),w.Oqu(Lt.data.alertTitle||Lt.alertTypeEnum[Lt.data.type]),w.xp6(5),w.Q6J("ngIf",Lt.warningMessage&&""!==Lt.warningMessage),w.xp6(1),w.Q6J("ngIf",Lt.informationMessage&&""!==Lt.informationMessage),w.xp6(1),w.Q6J("ngIf",Lt.data.titleMessage&&!Lt.flgShowInput),w.xp6(1),w.Q6J("ngIf",(null==Lt.messageObjs?null:Lt.messageObjs.length)>0),w.xp6(1),w.Q6J("ngIf",Lt.flgShowInput),w.xp6(3),w.Oqu(Lt.noBtnText),w.xp6(1),w.Q6J("ngIf",Lt.flgShowInput),w.xp6(1),w.Q6J("ngIf",!Lt.flgShowInput))},directives:[U.xw,U.yH,ne.dk,U.Wh,se.lW,ne.dn,Vt._Y,Vt.JL,Vt.F,fe.O5,Oi.BN,fe.sg,u.d,fe.RF,fe.n9,fe.ED,jt.KE,jt.bx,ti.Nt,Pi.q,Vt.Fj,a.h,Vt.Q7,Vt.JJ,Vt.On,jt.TO],pipes:[fe.uU,fe.JJ,fe.i8],styles:[""]}),at})();var rn=m(1786),Vi=m(4107),Di=m(508);function Xi(at,Qt){if(1&at&&(w.TgZ(0,"mat-option",23),w._uU(1),w.qZA()),2&at){const gt=Qt.$implicit;w.Q6J("value",gt),w.xp6(1),w.hij(" ",gt.infoName," ")}}function Ke(at,Qt){if(1&at){const gt=w.EpF();w.TgZ(0,"div",13),w.TgZ(1,"mat-form-field",20),w.TgZ(2,"mat-select",21),w.NdJ("valueChange",function(ui){return w.CHM(gt),w.oxw().selInfoType=ui}),w.YNc(3,Xi,2,2,"mat-option",22),w.qZA(),w.qZA(),w.qZA()}if(2&at){const gt=w.oxw();w.xp6(2),w.Q6J("value",gt.selInfoType),w.xp6(1),w.Q6J("ngForOf",gt.infoTypes)}}const mt=function(at){return{"display-none":at}};let be=(()=>{class at{constructor(gt,Lt,ui,Ci,Wi){this.dialogRef=gt,this.data=Lt,this.logger=ui,this.snackBar=Ci,this.commonService=Wi,this.faReceipt=wt.dLy,this.infoTypes=[{infoID:0,infoKey:"node pubkey",infoName:"Node pubkey"}],this.selInfoType=this.infoTypes[0],this.qrWidth=210,this.screenSize="",this.screenSizeEnum=S.cu}ngOnInit(){this.information=this.data.information,this.information.uris&&(1===this.information.uris.length?this.infoTypes.push({infoID:1,infoKey:"node URI",infoName:"Node URI"}):this.information.uris.length>1&&this.information.uris.forEach((gt,Lt)=>{this.infoTypes.push({infoID:Lt+1,infoKey:"node URI "+(Lt+1),infoName:"Node URI "+(Lt+1)})})),this.screenSize=this.commonService.getScreenSize()}onClose(){this.dialogRef.close(!1)}onCopyPubkey(gt){this.snackBar.open(this.selInfoType.infoName+" copied."),this.logger.info("Copied Text: "+gt)}}return at.\u0275fac=function(gt){return new(gt||at)(w.Y36(D.so),w.Y36(D.WI),w.Y36(ee.mQ),w.Y36(ie.ux),w.Y36(_e.v))},at.\u0275cmp=w.Xpm({type:at,selectors:[["rtl-show-pubkey"]],decls:26,vars:19,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","30","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],[3,"value","size","errorCorrectionLevel"],["fxFlex","100","fxFlex.gt-sm","70"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],["fxFlex","50","fxLayoutAlign","center start",1,"modal-qr-code-container","padding-gap-large",3,"ngClass"],["fxLayout","row",4,"ngIf"],["fxLayout","row"],["fxFlex","100"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"],["fxLayout","row","fxLayoutAlign","end center",1,"mt-2"],["autoFocus","","mat-button","","color","primary","tabindex","2","type","submit","rtlClipboard","",3,"payload","copied"],["fxFlex","100","fxFlex.gt-sm","40","fxLayoutAlign","start end"],["tabindex","1",3,"value","valueChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(gt,Lt){1>&&(w.TgZ(0,"div",0),w.TgZ(1,"div",1),w._UZ(2,"qr-code",2),w.qZA(),w.TgZ(3,"div",3),w.TgZ(4,"mat-card-header",4),w.TgZ(5,"div",5),w._UZ(6,"fa-icon",6),w.TgZ(7,"span",7),w._uU(8),w.qZA(),w.qZA(),w.TgZ(9,"button",8),w.NdJ("click",function(){return Lt.onClose()}),w._uU(10,"X"),w.qZA(),w.qZA(),w.TgZ(11,"mat-card-content",9),w.TgZ(12,"div",10),w.TgZ(13,"div",11),w._UZ(14,"qr-code",2),w.qZA(),w.YNc(15,Ke,4,2,"div",12),w.TgZ(16,"div",13),w.TgZ(17,"div",14),w.TgZ(18,"h4",15),w._uU(19),w.qZA(),w.TgZ(20,"span",16),w._uU(21),w.qZA(),w.qZA(),w.qZA(),w._UZ(22,"mat-divider",17),w.TgZ(23,"div",18),w.TgZ(24,"button",19),w.NdJ("copied",function(Ci){return Lt.onCopyPubkey(Ci)}),w._uU(25),w.qZA(),w.qZA(),w.qZA(),w.qZA(),w.qZA(),w.qZA()),2>&&(w.xp6(1),w.Q6J("ngClass",w.VKq(15,mt,Lt.screenSize===Lt.screenSizeEnum.XS||Lt.screenSize===Lt.screenSizeEnum.SM)),w.xp6(1),w.s9C("value",0===Lt.selInfoType.infoID?Lt.information.identity_pubkey:Lt.information.uris[Lt.selInfoType.infoID-1]),w.Q6J("size",Lt.qrWidth)("errorCorrectionLevel","L"),w.xp6(4),w.Q6J("icon",Lt.faReceipt),w.xp6(2),w.Oqu(Lt.selInfoType.infoName),w.xp6(5),w.Q6J("ngClass",w.VKq(17,mt,Lt.screenSize!==Lt.screenSizeEnum.XS&&Lt.screenSize!==Lt.screenSizeEnum.SM)),w.xp6(1),w.s9C("value",0===Lt.selInfoType.infoID?Lt.information.identity_pubkey:Lt.information.uris[Lt.selInfoType.infoID-1]),w.Q6J("size",Lt.qrWidth)("errorCorrectionLevel","L"),w.xp6(1),w.Q6J("ngIf",Lt.information.uris&&Lt.information.uris.length>0),w.xp6(4),w.Oqu(Lt.selInfoType.infoName),w.xp6(2),w.Oqu(0===Lt.selInfoType.infoID?Lt.information.identity_pubkey:Lt.information.uris[Lt.selInfoType.infoID-1]),w.xp6(3),w.s9C("payload",0===Lt.selInfoType.infoID?Lt.information.identity_pubkey:Lt.information.uris[Lt.selInfoType.infoID-1]),w.xp6(1),w.hij("Copy ",Lt.selInfoType.infoKey,""))},directives:[U.xw,U.Wh,U.yH,fe.mk,de.oO,oe.uU,ne.dk,Oi.BN,se.lW,ne.dn,fe.O5,u.d,a.h,p.y,jt.KE,Vi.gD,fe.sg,Di.ey],styles:[""]}),at})();var qe=m(6523),vt=m(1443),me=m(2994),$e=m(8377),St=m(8138),Rt=m(7998),yi=m(5986),Ri=m(8104),Ii=m(9291);let Ki=(()=>{class at{constructor(gt,Lt,ui,Ci,Wi,$i,An,Ln,pn,Pn,xr){this.actions=gt,this.httpClient=Lt,this.store=ui,this.logger=Ci,this.wsService=Wi,this.sessionService=$i,this.commonService=An,this.dataService=Ln,this.dialog=pn,this.snackBar=Pn,this.router=xr,this.screenSize="",this.alertWidth="55%",this.confirmWidth="70%",this.unSubs=[new t.x,new t.x],this.closeAllDialogs=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.CLOSE_ALL_DIALOGS),(0,C.U)(()=>{this.dialog.closeAll()})),{dispatch:!1}),this.openSnackBar=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.OPEN_SNACK_BAR),(0,C.U)(wi=>{"string"==typeof wi.payload?this.snackBar.open(wi.payload):this.snackBar.open(wi.payload.message,"","ERROR"===wi.payload.type?{duration:wi.payload.duration?wi.payload.duration:2e3,panelClass:"rtl-warn-snack-bar"}:"WARN"===wi.payload.type?{duration:wi.payload.duration?wi.payload.duration:2e3,panelClass:"rtl-accent-snack-bar"}:{duration:wi.payload.duration?wi.payload.duration:2e3,panelClass:"rtl-snack-bar"})})),{dispatch:!1}),this.openSpinner=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.OPEN_SPINNER),(0,C.U)(wi=>{wi.payload!==S.m6.NO_SPINNER&&(this.dialogRef=this.dialog.open(W,{data:{titleMessage:wi.payload}}))})),{dispatch:!1}),this.closeSpinner=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.CLOSE_SPINNER),(0,C.U)(wi=>{if(wi.payload!==S.m6.NO_SPINNER)try{this.dialogRef&&this.dialogRef.componentInstance&&this.dialogRef.componentInstance.data&&this.dialogRef.componentInstance.data.titleMessage&&this.dialogRef.componentInstance.data.titleMessage===wi.payload?this.dialogRef.close():this.dialog.openDialogs.forEach(zi=>{zi.componentInstance&&zi.componentInstance.data&&zi.componentInstance.data.titleMessage&&zi.componentInstance.data.titleMessage===wi.payload&&zi.close()})}catch(zi){this.logger.error(zi)}})),{dispatch:!1}),this.openAlert=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.OPEN_ALERT),(0,C.U)(wi=>{const zi=JSON.parse(JSON.stringify(wi.payload));zi.width||(zi.width=this.alertWidth),this.dialogRef=this.dialog.open(wi.payload.data.component?wi.payload.data.component:st,zi)})),{dispatch:!1}),this.closeAlert=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.CLOSE_ALERT),(0,C.U)(wi=>(this.dialogRef&&this.dialogRef.close(),wi.payload))),{dispatch:!1}),this.openConfirm=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.OPEN_CONFIRMATION),(0,C.U)(wi=>{const zi=JSON.parse(JSON.stringify(wi.payload));zi.width||(zi.width=this.confirmWidth),this.dialogRef=this.dialog.open(ci,zi)})),{dispatch:!1}),this.closeConfirm=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.CLOSE_CONFIRMATION),(0,c.q)(1),(0,C.U)(wi=>(this.dialogRef&&this.dialogRef.close(),this.logger.info(wi.payload),wi.payload))),{dispatch:!1}),this.showNodePubkey=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.SHOW_PUBKEY),(0,P.M)(this.store.select($e.R4)),(0,o.z)(([wi,zi])=>(this.sessionService.getItem("token")&&zi.identity_pubkey?this.store.dispatch((0,Bt.qR)({payload:{data:{information:zi,component:be}}})):this.snackBar.open("Node Pubkey does not exist."),(0,v.of)({type:S.pg.VOID}))))),this.appConfigFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.FETCH_RTL_CONFIG),(0,o.z)(()=>(this.screenSize=this.commonService.getScreenSize(),this.screenSize===S.cu.XS||this.screenSize===S.cu.SM?(this.alertWidth="95%",this.confirmWidth="95%"):this.screenSize===S.cu.MD?(this.alertWidth="80%",this.confirmWidth="80%"):(this.alertWidth="45%",this.confirmWidth="50%"),this.store.dispatch((0,Bt.ac)({payload:S.m6.GET_RTL_CONFIG})),this.store.dispatch((0,Bt.qi)({payload:{action:"FetchRTLConfig",status:S.Bn.INITIATED}})),this.sessionService.getItem("token")?this.httpClient.get(R.NZ.CONF_API+"/rtlconf"):this.httpClient.get(R.NZ.CONF_API+"/rtlconfinit"))),(0,C.U)(wi=>{let zi;return this.logger.info(wi),this.store.dispatch((0,Bt.uO)({payload:S.m6.GET_RTL_CONFIG})),this.store.dispatch((0,Bt.qi)({payload:{action:"FetchRTLConfig",status:S.Bn.COMPLETED}})),wi.nodes.forEach(sn=>{sn.settings.currencyUnits=[...S.uA,sn.settings.currencyUnit],+sn.index===wi.selectedNodeIndex&&(zi=sn)}),zi?(this.store.dispatch((0,Bt.fk)({payload:{uiMessage:S.m6.NO_SPINNER,prevLnNodeIndex:-1,currentLnNode:zi,isInitialSetup:!0}})),{type:S.pg.SET_RTL_CONFIG,payload:wi}):{type:S.pg.VOID}}),(0,O.K)(wi=>(this.handleErrorWithAlert("FetchRTLConfig",S.m6.GET_RTL_CONFIG,"Fetch RTL Config Failed!",R.NZ.CONF_API,wi),(0,v.of)({type:S.pg.VOID}))))),this.settingSave=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.SAVE_SETTINGS),(0,o.z)(wi=>{this.store.dispatch((0,Bt.ac)({payload:wi.payload.uiMessage})),this.store.dispatch((0,Bt.qi)({payload:{action:"UpdateSettings",status:S.Bn.INITIATED}}));let zi=new M.y;if(wi.payload.settings&&wi.payload.defaultNodeIndex){const sn=this.httpClient.post(R.NZ.CONF_API,{updatedSettings:wi.payload.settings}),Sr=this.httpClient.post(R.NZ.CONF_API+"/updateDefaultNode",{defaultNodeIndex:wi.payload.defaultNodeIndex});zi=(0,s.D)([sn,Sr])}else wi.payload.settings&&!wi.payload.defaultNodeIndex?zi=this.httpClient.post(R.NZ.CONF_API,{updatedSettings:wi.payload.settings}):!wi.payload.settings&&wi.payload.defaultNodeIndex&&(zi=this.httpClient.post(R.NZ.CONF_API+"/updateDefaultNode",{defaultNodeIndex:wi.payload.defaultNodeIndex}));return zi.pipe((0,C.U)(sn=>(this.logger.info(sn),this.store.dispatch((0,Bt.qi)({payload:{action:"UpdateSettings",status:S.Bn.COMPLETED}})),this.store.dispatch((0,Bt.uO)({payload:wi.payload.uiMessage})),{type:S.pg.OPEN_SNACK_BAR,payload:sn.length?sn[0].message+".":sn.message+"."})),(0,O.K)(sn=>(this.handleErrorWithAlert("UpdateSettings",wi.payload.uiMessage,"Update Settings Failed!",R.NZ.CONF_API,sn.length?sn[0]:sn),(0,v.of)({type:S.pg.VOID}))))}))),this.updateServicesettings=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.UPDATE_SERVICE_SETTINGS),(0,o.z)(wi=>(this.store.dispatch((0,Bt.ac)({payload:wi.payload.uiMessage})),this.store.dispatch((0,Bt.qi)({payload:{action:"UpdateServiceSettings",status:S.Bn.INITIATED}})),this.httpClient.post(R.NZ.CONF_API+"/updateServiceSettings",wi.payload).pipe((0,C.U)(zi=>(this.logger.info(zi),this.store.dispatch((0,Bt.qi)({payload:{action:"UpdateServiceSettings",status:S.Bn.COMPLETED}})),this.store.dispatch((0,Bt.uO)({payload:wi.payload.uiMessage})),this.store.dispatch((0,Bt.Tm)({payload:wi.payload})),{type:S.pg.OPEN_SNACK_BAR,payload:zi.message+"."})),(0,O.K)(zi=>(this.handleErrorWithAlert("UpdateServiceSettings",wi.payload.uiMessage,"Update Service Settings Failed!",R.NZ.CONF_API,zi),(0,v.of)({type:S.pg.VOID})))))))),this.twoFASettingSave=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.TWO_FA_SAVE_SETTINGS),(0,o.z)(wi=>(this.store.dispatch((0,Bt.ac)({payload:S.m6.UPDATE_UI_SETTINGS})),this.store.dispatch((0,Bt.qi)({payload:{action:"Update2FASettings",status:S.Bn.INITIATED}})),this.httpClient.post(R.NZ.CONF_API+"/update2FA",{secret2fa:wi.payload.secret2fa}))),(0,C.U)(wi=>(this.logger.info(wi),this.store.dispatch((0,Bt.qi)({payload:{action:"Update2FASettings",status:S.Bn.COMPLETED}})),this.store.dispatch((0,Bt.uO)({payload:S.m6.UPDATE_UI_SETTINGS})),{type:S.pg.VOID})),(0,O.K)(wi=>(this.handleErrorWithAlert("Update2FASettings",S.m6.UPDATE_UI_SETTINGS,"Update 2FA Settings Failed!",R.NZ.CONF_API,wi),(0,v.of)({type:S.pg.VOID}))))),this.configFetch=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.FETCH_CONFIG),(0,o.z)(wi=>(this.store.dispatch((0,Bt.ac)({payload:S.m6.OPEN_CONFIG_FILE})),this.store.dispatch((0,Bt.qi)({payload:{action:"fetchConfig",status:S.Bn.INITIATED}})),this.httpClient.get(R.NZ.CONF_API+"/config/"+wi.payload).pipe((0,C.U)(zi=>(this.store.dispatch((0,Bt.qi)({payload:{action:"fetchConfig",status:S.Bn.COMPLETED}})),this.store.dispatch((0,Bt.uO)({payload:S.m6.OPEN_CONFIG_FILE})),{type:S.pg.SHOW_CONFIG,payload:zi})),(0,O.K)(zi=>(this.handleErrorWithAlert("fetchConfig",S.m6.OPEN_CONFIG_FILE,"Fetch Config Failed!",R.NZ.CONF_API+"/config/"+wi.payload,zi),(0,v.of)({type:S.pg.VOID})))))))),this.showLnConfig=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.SHOW_CONFIG),(0,C.U)(wi=>wi.payload)),{dispatch:!1}),this.isAuthorized=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.IS_AUTHORIZED),(0,o.z)(wi=>(this.store.dispatch((0,Bt.qi)({payload:{action:"IsAuthorized",status:S.Bn.INITIATED}})),this.httpClient.post(R.NZ.AUTHENTICATE_API,{authenticateWith:wi.payload&&""!==wi.payload.trim()?S.OJ.PASSWORD:S.OJ.JWT,authenticationValue:wi.payload&&""!==wi.payload.trim()?wi.payload:this.sessionService.getItem("token")?this.sessionService.getItem("token"):""}).pipe((0,C.U)(zi=>(this.logger.info(zi),this.store.dispatch((0,Bt.qi)({payload:{action:"IsAuthorized",status:S.Bn.COMPLETED}})),this.logger.info("Successfully Authorized!"),{type:S.pg.IS_AUTHORIZED_RES,payload:zi})),(0,O.K)(zi=>(this.handleErrorWithAlert("IsAuthorized",S.m6.NO_SPINNER,"Authorization Failed",R.NZ.AUTHENTICATE_API,zi),(0,v.of)({type:S.pg.IS_AUTHORIZED_RES,payload:"ERROR"})))))))),this.isAuthorizedRes=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.IS_AUTHORIZED_RES),(0,C.U)(wi=>wi.payload)),{dispatch:!1}),this.authLogin=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.LOGIN),(0,P.M)(this.store.select($e.Yj)),(0,o.z)(([wi,zi])=>(this.store.dispatch((0,qe.Ll)({payload:null})),this.store.dispatch((0,vt.xH)({payload:null})),this.store.dispatch((0,me.Fd)({payload:null})),this.store.dispatch((0,Bt.qi)({payload:{action:"Login",status:S.Bn.INITIATED}})),this.httpClient.post(R.NZ.AUTHENTICATE_API,{authenticateWith:wi.payload.password?S.OJ.PASSWORD:S.OJ.JWT,authenticationValue:wi.payload.password?wi.payload.password:this.sessionService.getItem("token")?this.sessionService.getItem("token"):"",twoFAToken:wi.payload.twoFAToken?wi.payload.twoFAToken:""}).pipe((0,C.U)(sn=>{this.logger.info(sn),this.store.dispatch((0,Bt.qi)({payload:{action:"Login",status:S.Bn.COMPLETED}})),this.setLoggedInDetails(wi.payload.defaultPassword,sn)}),(0,O.K)(sn=>(this.logger.info("Redirecting to Login Error Page"),this.handleErrorWithoutAlert("Login",S.m6.NO_SPINNER,sn),+zi.sso.rtlSSO?this.router.navigate(["/error"],{state:{errorCode:"406",errorMessage:sn.error&&sn.error.error?sn.error.error:"Single Sign On Failed!"}}):this.router.navigate(["./login"]),(0,v.of)({type:S.pg.VOID}))))))),{dispatch:!1}),this.tokenVerify=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.VERIFY_TWO_FA),(0,o.z)(wi=>(this.store.dispatch((0,Bt.ac)({payload:S.m6.VERIFY_TOKEN})),this.store.dispatch((0,Bt.qi)({payload:{action:"VerifyToken",status:S.Bn.INITIATED}})),this.httpClient.post(R.NZ.AUTHENTICATE_API+"/token",{authentication2FA:wi.payload.token}).pipe((0,C.U)(zi=>{this.logger.info(zi),this.store.dispatch((0,Bt.uO)({payload:S.m6.VERIFY_TOKEN})),this.store.dispatch((0,Bt.qi)({payload:{action:"VerifyToken",status:S.Bn.COMPLETED}})),this.logger.info("Token Successfully Verified!"),this.setLoggedInDetails(!1,wi.payload.authResponse)}),(0,O.K)(zi=>(this.handleErrorWithAlert("VerifyToken",S.m6.VERIFY_TOKEN,"Authorization Failed!",R.NZ.AUTHENTICATE_API+"/token",zi),(0,v.of)({type:S.pg.VOID}))))))),{dispatch:!1}),this.logOut=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.LOGOUT),(0,P.M)(this.store.select($e.Yj)),(0,o.z)(([wi,zi])=>(this.store.dispatch((0,Bt.ac)({payload:S.m6.LOG_OUT})),this.httpClient.get(R.NZ.AUTHENTICATE_API+"/logout").pipe((0,C.U)(sn=>{this.logger.info(sn),this.store.dispatch((0,Bt.uO)({payload:S.m6.LOG_OUT})),+zi.sso.rtlSSO?window.location.href=zi.sso.logoutRedirectLink:this.router.navigate(["./login"]),this.sessionService.clearAll(),this.store.dispatch((0,Bt._V)({payload:{}})),this.logger.warn("LOGGED OUT")}))))),{dispatch:!1}),this.resetPassword=(0,e.GW)(()=>this.actions.pipe((0,T.R)(this.unSubs[1]),(0,e.l4)(S.pg.RESET_PASSWORD),(0,o.z)(wi=>(this.store.dispatch((0,Bt.qi)({payload:{action:"ResetPassword",status:S.Bn.INITIATED}})),this.httpClient.post(R.NZ.AUTHENTICATE_API+"/reset",{currPassword:wi.payload.currPassword,newPassword:wi.payload.newPassword}).pipe((0,T.R)(this.unSubs[0]),(0,C.U)(zi=>(this.logger.info(zi),this.store.dispatch((0,Bt.qi)({payload:{action:"ResetPassword",status:S.Bn.COMPLETED}})),this.sessionService.setItem("defaultPassword",!1),this.logger.info("Password Reset Successful!"),this.store.dispatch((0,Bt.jW)({payload:"Password Reset Successful!"})),this.SetToken(zi.token),{type:S.pg.RESET_PASSWORD_RES,payload:zi.token})),(0,O.K)(zi=>(this.handleErrorWithAlert("ResetPassword",S.m6.NO_SPINNER,"Password Reset Failed!",R.NZ.AUTHENTICATE_API+"/reset",zi),(0,v.of)({type:S.pg.VOID})))))))),this.setSelectedNode=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.SET_SELECTED_NODE),(0,o.z)(wi=>(this.store.dispatch((0,Bt.ac)({payload:wi.payload.uiMessage})),this.store.dispatch((0,Bt.qi)({payload:{action:"UpdateSelNode",status:S.Bn.INITIATED}})),this.httpClient.post(R.NZ.CONF_API+"/updateSelNode",{prevNodeIndex:wi.payload.prevLnNodeIndex,currNodeIndex:wi.payload.currentLnNode.index}).pipe((0,C.U)(zi=>(this.logger.info(zi),this.store.dispatch((0,Bt.qi)({payload:{action:"UpdateSelNode",status:S.Bn.COMPLETED}})),this.store.dispatch((0,Bt.uO)({payload:wi.payload.uiMessage})),this.initializeNode(wi.payload.currentLnNode,wi.payload.isInitialSetup),{type:S.pg.VOID})),(0,O.K)(zi=>(this.handleErrorWithAlert("UpdateSelNode",wi.payload.uiMessage,"Update Selected Node Failed!",R.NZ.CONF_API+"/updateSelNode",zi),(0,v.of)({type:S.pg.VOID})))))))),this.fetchFile=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.FETCH_FILE),(0,o.z)(wi=>{this.store.dispatch((0,Bt.ac)({payload:S.m6.DOWNLOAD_BACKUP_FILE})),this.store.dispatch((0,Bt.qi)({payload:{action:"FetchFile",status:S.Bn.INITIATED}}));const zi="?channel="+wi.payload.channelPoint+(wi.payload.path?"&path="+wi.payload.path:"");return this.httpClient.get(R.NZ.CONF_API+"/file"+zi).pipe((0,C.U)(sn=>(this.store.dispatch((0,Bt.qi)({payload:{action:"FetchFile",status:S.Bn.COMPLETED}})),this.store.dispatch((0,Bt.uO)({payload:S.m6.DOWNLOAD_BACKUP_FILE})),{type:S.pg.SHOW_FILE,payload:sn})),(0,O.K)(sn=>(this.handleErrorWithAlert("fetchFile",S.m6.DOWNLOAD_BACKUP_FILE,"Download Backup File Failed!",R.NZ.CONF_API+"/file"+zi,{status:this.commonService.extractErrorNumber(sn),error:{error:this.commonService.extractErrorCode(sn)}}),(0,v.of)({type:S.pg.VOID}))))}))),this.showFile=(0,e.GW)(()=>this.actions.pipe((0,e.l4)(S.pg.SHOW_FILE),(0,C.U)(wi=>wi.payload)),{dispatch:!1})}initializeNode(gt,Lt){this.logger.info("Initializing node from RTL Effects.");const ui=Lt?"":"HOME";let Ci={};if(Ci=gt.settings.fiatConversion&>.settings.currencyUnit?{userPersona:gt.settings.userPersona,channelBackupPath:gt.settings.channelBackupPath,selCurrencyUnit:gt.settings.currencyUnit,currencyUnits:[...S.uA,gt.settings.currencyUnit],fiatConversion:gt.settings.fiatConversion,lnImplementation:gt.lnImplementation,swapServerUrl:gt.settings.swapServerUrl,boltzServerUrl:gt.settings.boltzServerUrl,enableOffers:gt.settings.enableOffers}:{userPersona:gt.settings.userPersona,channelBackupPath:gt.settings.channelBackupPath,selCurrencyUnit:gt.settings.currencyUnit,currencyUnits:S.uA,fiatConversion:gt.settings.fiatConversion,lnImplementation:gt.lnImplementation,swapServerUrl:gt.settings.swapServerUrl,boltzServerUrl:gt.settings.boltzServerUrl,enableOffers:gt.settings.enableOffers},this.sessionService.removeItem("lndUnlocked"),this.sessionService.removeItem("clUnlocked"),this.sessionService.removeItem("eclUnlocked"),this.store.dispatch((0,Bt.vI)({payload:gt})),this.store.dispatch((0,qe.Ll)({payload:Ci})),this.store.dispatch((0,vt.xH)({payload:Ci})),this.store.dispatch((0,me.Fd)({payload:Ci})),this.sessionService.getItem("token")){const Wi=gt.lnImplementation?gt.lnImplementation.toUpperCase():"LND";this.dataService.setChildAPIUrl(Wi);const $i=R.NZ.production&&window.location.origin?window.location.origin+"/rtl/api":R.T5;switch(this.wsService.connectWebSocket($i.replace(/^http/,"ws")+R.NZ.Web_SOCKET_API,gt.index.toString()),Wi){case"CLT":this.store.dispatch((0,vt.CN)({payload:{loadPage:ui}}));break;case"ECL":this.store.dispatch((0,me.iz)({payload:{loadPage:ui}}));break;default:this.store.dispatch((0,qe.sQ)({payload:{loadPage:ui}}))}}}SetToken(gt){gt?(this.sessionService.setItem("lndUnlocked","true"),this.sessionService.setItem("token",gt)):(this.sessionService.removeItem("lndUnlocked"),this.sessionService.removeItem("token"))}setLoggedInDetails(gt,Lt){this.logger.info("Successfully Authorized!"),this.SetToken(Lt.token),this.store.dispatch((0,Bt.ey)()),this.sessionService.setItem("defaultPassword",gt),gt&&(this.sessionService.setItem("defaultPassword","true"),this.store.dispatch((0,Bt.jW)({payload:"Reset your password."})),this.router.navigate(["/settings/auth"]))}handleErrorWithoutAlert(gt,Lt,ui){this.logger.error("ERROR IN: "+gt+"\n"+JSON.stringify(ui)),401===ui.status&&"Login"!==gt?(this.logger.info("Redirecting to Login"),this.store.dispatch((0,Bt.ts)()),this.store.dispatch((0,Bt.kS)()),this.store.dispatch((0,Bt.jW)({payload:"Authentication Failed. Redirecting to Login."}))):(this.store.dispatch((0,Bt.uO)({payload:Lt})),this.store.dispatch((0,Bt.qi)({payload:{action:gt,status:S.Bn.ERROR,statusCode:ui.status?ui.status.toString():"",message:this.commonService.extractErrorMessage(ui)}})))}handleErrorWithAlert(gt,Lt,ui,Ci,Wi){if(this.logger.error(Wi),0===Wi.status&&Wi.statusText&&"Unknown Error"===Wi.statusText&&(Wi={status:400,error:{message:"Unknown Error / CORS Origin Not Allowed"}}),401===Wi.status&&"Login"!==gt)this.logger.info("Redirecting to Login"),this.store.dispatch((0,Bt.ts)()),this.store.dispatch((0,Bt.kS)()),this.store.dispatch((0,Bt.jW)({payload:"Authentication Failed. Redirecting to Login."}));else{this.store.dispatch((0,Bt.uO)({payload:Lt}));const $i=this.commonService.extractErrorMessage(Wi);this.store.dispatch((0,Bt.qR)({payload:{data:{type:"ERROR",alertTitle:ui,message:{code:Wi.status?Wi.status:"Unknown Error",message:$i,URL:Ci},component:rn.H}}})),this.store.dispatch((0,Bt.qi)({payload:{action:gt,status:S.Bn.ERROR,statusCode:Wi.status?Wi.status.toString():"",message:$i,URL:Ci}}))}}ngOnDestroy(){this.unSubs.forEach(gt=>{gt.next(null),gt.complete()})}}return at.\u0275fac=function(gt){return new(gt||at)(w.LFG(e.eX),w.LFG(St.eN),w.LFG(Nt.yh),w.LFG(ee.mQ),w.LFG(Rt.d),w.LFG(yi.m),w.LFG(_e.v),w.LFG(Ri.D),w.LFG(D.uw),w.LFG(ie.ux),w.LFG(Ii.F0))},at.\u0275prov=w.Yz7({token:at,factory:at.\u0275fac}),at})()},8377:(Ue,K,m)=>{"use strict";m.d(K,{dT:()=>M,Yj:()=>s,R4:()=>C,ul:()=>c,Sr:()=>P,gW:()=>o});var e=m(5620);const t=(0,e.ZF)("root"),M=((0,e.P1)(t,O=>O.apiURL),(0,e.P1)(t,O=>O.selNode)),s=(0,e.P1)(t,O=>O.appConfig),C=(0,e.P1)(t,O=>O.nodeData),c=(0,e.P1)(t,O=>O.apisCallStatus.Login),P=(0,e.P1)(t,O=>O.apisCallStatus.IsAuthorized),o=(0,e.P1)(t,O=>({nodeDate:O.nodeData,selNode:O.selNode}))},2340:(Ue,K,m)=>{"use strict";m.d(K,{T5:()=>e,NZ:()=>t,q4:()=>v});const e="./api",t={production:!0,isDebugMode:!1,AUTHENTICATE_API:e+"/authenticate",CONF_API:e+"/conf",BALANCE_API:"/balance",FEES_API:"/fees",PEERS_API:"/peers",CHANNELS_API:"/channels",CHANNELS_BACKUP_API:"/channels/backup",GETINFO_API:"/getinfo",WALLET_API:"/wallet",NETWORK_API:"/network",NEW_ADDRESS_API:"/newaddress",TRANSACTIONS_API:"/transactions",PAYMENTS_API:"/payments",INVOICES_API:"/invoices",SWITCH_API:"/switch",ON_CHAIN_API:"/onchain",MESSAGE_API:"/message",OFFERS_API:"/offers",LOOP_API:"/loop",BOLTZ_API:"/boltz",Web_SOCKET_API:"/ws"},v="0.12.0-beta"},8990:(Ue,K,m)=>{"use strict";var e=m(2313),t=m(5e3),v=m(6360),M=m(8138),s=m(5113),C=m(5620),c=m(6642),P=m(9565),o=m(7579),O=m(6451),T=m(4968),R=m(457),S=m(4986),D=m(2805);function w($=0,Ze=S.z){return $<0&&($=0),(0,D.H)($,$,Ze)}var U=m(9646),G=m(727),W=m(4482),ee=m(5403),ie=m(8737),_e=m(3269),fe=m(9672),ne=m(9300),se=m(8505),oe=m(3900),y=m(2722),i=m(8746),a=m(1884),p=m(4004);class u{}class _{constructor(Ze,z){this._ngZone=z,this.timerStart$=new o.x,this.idleDetected$=new o.x,this.timeout$=new o.x,this.idleMillisec=6e5,this.idleSensitivityMillisec=1e3,this.timeout=300,this.pingMillisec=12e4,Ze&&this.setConfig(Ze)}startWatching(){this.activityEvents$||(this.activityEvents$=(0,O.T)((0,T.R)(window,"mousemove"),(0,T.R)(window,"resize"),(0,T.R)(document,"keydown"))),this.idle$=(0,R.D)(this.activityEvents$),this.idleSubscription&&this.idleSubscription.unsubscribe(),this.idleSubscription=this.idle$.pipe(function($,...Ze){var z,Oe;const _t=null!==(z=(0,_e.yG)(Ze))&&void 0!==z?z:S.z,pi=null!==(Oe=Ze[0])&&void 0!==Oe?Oe:null,On=Ze[1]||1/0;return(0,W.e)((hr,Un)=>{let ur=[],ka=!1;const Nr=Js=>{const{buffer:Go,subs:ho}=Js;ho.unsubscribe(),(0,ie.P)(ur,Js),Un.next(Go),ka&&ws()},ws=()=>{if(ur){const Js=new G.w0;Un.add(Js);const ho={buffer:[],subs:Js};ur.push(ho),(0,fe.f)(Js,_t,()=>Nr(ho),$)}};null!==pi&&pi>=0?(0,fe.f)(Un,_t,ws,pi,!0):ka=!0,ws();const Qs=new ee.Q(Un,Js=>{const Go=ur.slice();for(const ho of Go){const{buffer:v1}=ho;v1.push(Js),On<=v1.length&&Nr(ho)}},()=>{for(;null==ur?void 0:ur.length;)Un.next(ur.shift().buffer);null==Qs||Qs.unsubscribe(),Un.complete(),Un.unsubscribe()},void 0,()=>ur=null);hr.subscribe(Qs)})}(this.idleSensitivityMillisec),(0,ne.h)(Ze=>!Ze.length&&!this.isIdleDetected&&!this.isInactivityTimer),(0,se.b)(()=>{this.isIdleDetected=!0,this.idleDetected$.next(!0)}),(0,oe.w)(()=>this._ngZone.runOutsideAngular(()=>w(1e3).pipe((0,y.R)((0,O.T)(this.activityEvents$,(0,D.H)(this.idleMillisec).pipe((0,se.b)(()=>{this.isInactivityTimer=!0,this.timerStart$.next(!0)})))),(0,i.x)(()=>{this.isIdleDetected=!1,this.idleDetected$.next(!1)}))))).subscribe(),this.setupTimer(this.timeout),this.setupPing(this.pingMillisec)}stopWatching(){this.stopTimer(),this.idleSubscription&&this.idleSubscription.unsubscribe()}stopTimer(){this.isInactivityTimer=!1,this.timerStart$.next(!1)}resetTimer(){this.stopTimer(),this.isTimeout=!1}onTimerStart(){return this.timerStart$.pipe((0,a.x)(),(0,oe.w)(Ze=>Ze?this.timer$:(0,U.of)(null)))}onIdleStatusChanged(){return this.idleDetected$.asObservable()}onTimeout(){return this.timeout$.pipe((0,ne.h)(Ze=>!!Ze),(0,se.b)(()=>this.isTimeout=!0),(0,p.U)(()=>!0))}getConfigValue(){return{idle:this.idleMillisec/1e3,idleSensitivity:this.idleSensitivityMillisec/1e3,timeout:this.timeout,ping:this.pingMillisec/1e3}}setConfigValues(Ze){!this.idleSubscription||this.idleSubscription.closed?this.setConfig(Ze):console.error("Call stopWatching() before set config values")}setConfig(Ze){Ze.idle&&(this.idleMillisec=1e3*Ze.idle),Ze.ping&&(this.pingMillisec=1e3*Ze.ping),Ze.idleSensitivity&&(this.idleSensitivityMillisec=1e3*Ze.idleSensitivity),Ze.timeout&&(this.timeout=Ze.timeout)}setCustomActivityEvents(Ze){!this.idleSubscription||this.idleSubscription.closed?this.activityEvents$=Ze:console.error("Call stopWatching() before set custom activity events")}setupTimer(Ze){this._ngZone.runOutsideAngular(()=>{this.timer$=(0,U.of)(()=>new Date).pipe((0,p.U)(z=>z()),(0,oe.w)(z=>w(1e3).pipe((0,p.U)(()=>Math.round(((new Date).valueOf()-z.valueOf())/1e3)),(0,se.b)(Oe=>{Oe>=Ze&&this.timeout$.next(!0)}))))})}setupPing(Ze){this.ping$=w(Ze).pipe((0,ne.h)(()=>!this.isTimeout))}}_.\u0275fac=function(Ze){return new(Ze||_)(t.LFG(u,8),t.LFG(t.R0b))},_.\u0275prov=t.Yz7({token:_,factory:_.\u0275fac,providedIn:"root"}),_.ngInjectableDef=(0,t.Ez6)({factory:function(){return new _((0,t.f3M)(u,8),(0,t.f3M)(t.R0b))},token:_,providedIn:"root"});let L=(()=>{class ${static forRoot(z){return{ngModule:$,providers:[{provide:u,useValue:z}]}}}return $.\u0275fac=function(z){return new(z||$)},$.\u0275mod=t.oAB({type:$}),$.\u0275inj=t.cJS({imports:[[]]}),$})();var I=m(9291),x=m(801),r=m(8377),b=m(7093),J=m(9444),F=m(9224),B=m(3251),te=m(9808);const xe=function(){return{initial:!1}};function Re($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",10),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw();return _t.activeLink=_t.links[1].link}),t._uU(1),t.qZA()}if(2&$){const z=t.oxw();t.s9C("routerLink",z.links[1].link),t.Q6J("active",z.activeLink===z.links[1].link)("state",t.DdM(4,xe)),t.xp6(1),t.Oqu(z.links[1].name)}}function Fe($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw();return _t.activeLink=_t.links[2].link}),t._uU(1),t.qZA()}if(2&$){const z=t.oxw();t.s9C("routerLink",z.links[2].link),t.Q6J("active",z.activeLink===z.links[2].link),t.xp6(1),t.Oqu(z.links[2].name)}}let q=(()=>{class ${constructor(z,Oe){this.store=z,this.router=Oe,this.faUserCog=x.gNZ,this.showBitcoind=!1,this.links=[{link:"app",name:"Application"},{link:"auth",name:"Authentication"},{link:"bconfig",name:"BitcoinD Config"}],this.activeLink="",this.unSubs=[new o.x,new o.x,new o.x]}ngOnInit(){const z=this.links.find(Oe=>this.router.url.includes(Oe.link));this.activeLink=z?z.link:this.links[0].link,this.router.events.pipe((0,y.R)(this.unSubs[0]),(0,ne.h)(Oe=>Oe instanceof I.Av)).subscribe(Oe=>{const _t=this.links.find(pi=>Oe.urlAfterRedirects.includes(pi.link));this.activeLink=_t?_t.link:this.links[0].link}),this.store.select(r.Yj).pipe((0,y.R)(this.unSubs[1])).subscribe(Oe=>{this.appConfig=Oe}),this.store.select(r.dT).pipe((0,y.R)(this.unSubs[2])).subscribe(Oe=>{this.showBitcoind=!1,this.selNode=Oe,this.selNode.settings&&this.selNode.settings.bitcoindConfigPath&&""!==this.selNode.settings.bitcoindConfigPath.trim()&&(this.showBitcoind=!0)})}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(C.yh),t.Y36(I.F0))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-settings"]],decls:14,vars:6,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","state","click",4,"ngIf"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","state","click"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"Settings"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t.TgZ(7,"nav",5),t.TgZ(8,"div",6),t.NdJ("click",function(){return Oe.activeLink=Oe.links[0].link}),t._uU(9),t.qZA(),t.YNc(10,Re,2,5,"div",7),t.YNc(11,Fe,2,3,"div",8),t.qZA(),t.TgZ(12,"div",9),t._UZ(13,"router-outlet"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(1),t.Q6J("icon",Oe.faUserCog),t.xp6(7),t.s9C("routerLink",Oe.links[0].link),t.Q6J("active",Oe.activeLink===Oe.links[0].link),t.xp6(1),t.Oqu(Oe.links[0].name),t.xp6(1),t.Q6J("ngIf",!+Oe.appConfig.sso.rtlSSO),t.xp6(1),t.Q6J("ngIf",Oe.showBitcoind))},directives:[b.xw,b.Wh,J.BN,F.a8,F.dn,B.BU,B.Nj,I.rH,te.O5,b.yH,I.lC],styles:[""]}),$})();var j=m(7731),we=m(7861),Ae=m(5043),le=m(644),We=m(3075),yt=m(7322),Ne=m(4107),Ve=m(3390),ue=m(7423),Te=m(508);function ke($,Ze){if(1&$&&(t.TgZ(0,"mat-option",16),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit;t.Q6J("value",z.index),t.xp6(1),t.AsE(" ",z.lnNode," (",z.lnImplementation,") ")}}function Y($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"form",2,3),t.TgZ(2,"div",4),t._UZ(3,"fa-icon",5),t.TgZ(4,"span",6),t._uU(5,"Default Node"),t.qZA(),t.qZA(),t.TgZ(6,"div",7),t.TgZ(7,"div",8),t._UZ(8,"fa-icon",9),t.TgZ(9,"span"),t._uU(10,"The setting will apply after RTL server restarts."),t.qZA(),t.qZA(),t.TgZ(11,"div",10),t.TgZ(12,"mat-form-field",10),t.TgZ(13,"mat-select",11),t.NdJ("ngModelChange",function(_t){return t.CHM(z),t.oxw().appConfig.defaultNodeIndex=_t}),t.YNc(14,ke,2,3,"mat-option",12),t.qZA(),t.qZA(),t.qZA(),t.TgZ(15,"div",13),t.TgZ(16,"div",10),t.TgZ(17,"button",14),t.NdJ("click",function(){return t.CHM(z),t.oxw().onResetSettings()}),t._uU(18,"Reset"),t.qZA(),t.TgZ(19,"button",15),t.NdJ("click",function(){return t.CHM(z),t.oxw().onUpdateSettings()}),t._uU(20,"Update"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.xp6(3),t.Q6J("icon",z.faWindowRestore),t.xp6(5),t.Q6J("icon",z.faInfoCircle),t.xp6(5),t.Q6J("ngModel",z.appConfig.defaultNodeIndex),t.xp6(1),t.Q6J("ngForOf",z.appConfig.nodes)}}let X=(()=>{class ${constructor(z,Oe){this.logger=z,this.store=Oe,this.faInfoCircle=x.sqG,this.faWindowRestore=x.wyP,this.faPlus=x.r8p,this.previousDefaultNode=0,this.unSubs=[new o.x,new o.x]}ngOnInit(){this.store.select(r.Yj).pipe((0,y.R)(this.unSubs[0])).subscribe(z=>{this.appConfig=z,this.previousDefaultNode=this.appConfig.defaultNodeIndex,this.logger.info(z)})}onAddNewNode(){this.logger.warn("ADD NEW NODE")}onUpdateSettings(){this.store.dispatch((0,we.zQ)({payload:{uiMessage:j.m6.UPDATE_DEFAULT_NODE_SETTING,defaultNodeIndex:this.appConfig.defaultNodeIndex?this.appConfig.defaultNodeIndex:+this.appConfig.nodes[0].index}}))}onResetSettings(){this.appConfig.defaultNodeIndex=this.previousDefaultNode}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(C.yh))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-app-settings"]],decls:2,vars:1,consts:[["fxLayout","column","fxFlex","100",1,"padding-gap-x-large",3,"perfectScrollbar"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch","class","settings-container page-sub-title-container mt-1",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"settings-container","page-sub-title-container","mt-1"],["form","ngForm"],["fxLayout","row"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"my-2"],["fxLayout","row","fxFlex","100",1,"alert","alert-info"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","row","fxLayoutAlign","start start"],["autoFocus","","tabindex","1","name","defaultNode",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start start",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","2",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3",3,"click"],[3,"value"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.YNc(1,Y,21,4,"form",1),t.qZA()),2&z&&(t.xp6(1),t.Q6J("ngIf",Oe.appConfig.nodes&&Oe.appConfig.nodes.length&&Oe.appConfig.nodes.length>0))},directives:[b.xw,b.yH,le.$V,te.O5,We._Y,We.JL,We.F,b.Wh,J.BN,yt.KE,Ne.gD,Ve.h,We.JJ,We.On,te.sg,ue.lW,Te.ey],styles:[""]}),$})();var he=m(8012),Me=m(5698),ze=m(8966),ht=m(5768),it=m(3093),ft=m(7261),nt=m(5615),st=m(7531),wt=m(6895),Bt=m(159);const Nt=["stepper"];function Vt($,Ze){if(1&$&&t._uU(0),2&$){const z=t.oxw();t.Oqu(z.passwordFormLabel)}}function Oi($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Password is required."),t.qZA())}function jt($,Ze){if(1&$&&t._uU(0),2&$){const z=t.oxw(2);t.Oqu(z.secretFormLabel)}}function ti($,Ze){if(1&$&&t._UZ(0,"qr-code",32),2&$){const z=t.oxw(2);t.Q6J("value",z.otpauth)("size",180)("errorCorrectionLevel","L")}}function Pi($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Secret Code is required."),t.qZA())}function si($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"mat-step",10),t.TgZ(1,"form",21),t.YNc(2,jt,1,1,"ng-template",22),t.TgZ(3,"div",23),t.YNc(4,ti,1,3,"qr-code",24),t.qZA(),t.TgZ(5,"div",25),t._UZ(6,"fa-icon",26),t.TgZ(7,"span"),t._uU(8,"You can use a compatible authentication app to get an authentication code when you log in to RTL. e.g.: Google Authenticator."),t.qZA(),t.qZA(),t.TgZ(9,"div",27),t.TgZ(10,"mat-form-field",1),t._UZ(11,"input",28),t.TgZ(12,"fa-icon",29),t.NdJ("copied",function(_t){return t.CHM(z),t.oxw().onCopySecret(_t)}),t.qZA(),t.YNc(13,Pi,2,0,"mat-error",14),t.qZA(),t.qZA(),t.TgZ(14,"div",30),t.TgZ(15,"button",31),t._uU(16,"Next"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("stepControl",z.secretFormGroup)("editable",z.flgEditable),t.xp6(1),t.Q6J("formGroup",z.secretFormGroup),t.xp6(3),t.Q6J("ngIf",z.otpauth),t.xp6(2),t.Q6J("icon",z.faInfoCircle),t.xp6(6),t.Q6J("icon",z.faCopy)("payload",null==z.secretFormGroup||null==z.secretFormGroup.controls||null==z.secretFormGroup.controls.secret?null:z.secretFormGroup.controls.secret.value),t.xp6(1),t.Q6J("ngIf",null==z.secretFormGroup||null==z.secretFormGroup.controls||null==z.secretFormGroup.controls.secret||null==z.secretFormGroup.controls.secret.errors?null:z.secretFormGroup.controls.secret.errors.required)}}function di($,Ze){if(1&$&&t._uU(0),2&$){const z=t.oxw(2);t.Oqu(z.tokenFormLabel)}}function He($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Token is required."),t.qZA())}function Se($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Token is invalid."),t.qZA())}function V($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",7),t.TgZ(1,"div",27),t.TgZ(2,"mat-form-field",1),t._UZ(3,"input",36),t.YNc(4,He,2,0,"mat-error",14),t.YNc(5,Se,2,0,"mat-error",14),t.qZA(),t.qZA(),t.TgZ(6,"div",30),t.TgZ(7,"button",37),t.NdJ("click",function(){return t.CHM(z),t.oxw(2).onVerifyToken()}),t._uU(8),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw(2);t.xp6(4),t.Q6J("ngIf",null==z.tokenFormGroup||null==z.tokenFormGroup.controls||null==z.tokenFormGroup.controls.token||null==z.tokenFormGroup.controls.token.errors?null:z.tokenFormGroup.controls.token.errors.required),t.xp6(1),t.Q6J("ngIf",null==z.tokenFormGroup||null==z.tokenFormGroup.controls||null==z.tokenFormGroup.controls.token||null==z.tokenFormGroup.controls.token.errors?null:z.tokenFormGroup.controls.token.errors.notValid),t.xp6(3),t.Oqu(null!=z.tokenFormGroup&&null!=z.tokenFormGroup.controls&&null!=z.tokenFormGroup.controls.token&&null!=z.tokenFormGroup.controls.token.errors&&z.tokenFormGroup.controls.token.errors.notValid?"Retry":"Verify")}}function ve($,Ze){1&$&&(t.TgZ(0,"div"),t.TgZ(1,"strong"),t._uU(2,"Success! You are all set."),t.qZA(),t.qZA())}function Ee($,Ze){if(1&$&&(t.TgZ(0,"mat-step",33),t.TgZ(1,"form",34),t.YNc(2,di,1,1,"ng-template",12),t.YNc(3,V,9,3,"div",35),t.YNc(4,ve,3,0,"div",14),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.Q6J("stepControl",z.tokenFormGroup),t.xp6(1),t.Q6J("formGroup",z.tokenFormGroup),t.xp6(2),t.Q6J("ngIf",!z.flgValidated||!z.isTokenValid),t.xp6(1),t.Q6J("ngIf",z.flgValidated&&z.isTokenValid)}}function et($,Ze){if(1&$&&t._uU(0),2&$){const z=t.oxw(2);t.Oqu(z.disableFormLabel)}}function $t($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",7),t.TgZ(1,"div",38),t._UZ(2,"fa-icon",26),t.TgZ(3,"span"),t._uU(4,"You are about to disable two-factor authentication security from RTL. Are you sure you want to turn it off?"),t.qZA(),t.qZA(),t.TgZ(5,"div",30),t.TgZ(6,"button",37),t.NdJ("click",function(){return t.CHM(z),t.oxw(2).onVerifyToken()}),t._uU(7,"Disable"),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw(2);t.xp6(2),t.Q6J("icon",z.faExclamationTriangle)}}function Pt($,Ze){1&$&&(t.TgZ(0,"div"),t.TgZ(1,"strong"),t._uU(2,"Two factor authentication removed from RTL."),t.qZA(),t.qZA())}function Xt($,Ze){if(1&$&&(t.TgZ(0,"mat-step",33),t.TgZ(1,"form",34),t.YNc(2,et,1,1,"ng-template",12),t.YNc(3,$t,8,1,"div",35),t.YNc(4,Pt,3,0,"div",14),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.Q6J("stepControl",z.disableFormGroup),t.xp6(1),t.Q6J("formGroup",z.disableFormGroup),t.xp6(2),t.Q6J("ngIf",!z.flgValidated||!z.isTokenValid),t.xp6(1),t.Q6J("ngIf",z.flgValidated&&z.isTokenValid)}}let lt=(()=>{class ${constructor(z,Oe,_t,pi,On,hr){this.dialogRef=z,this.data=Oe,this.store=_t,this.formBuilder=pi,this.rtlEffects=On,this.snackBar=hr,this.faExclamationTriangle=x.eHv,this.faCopy=x.kZ_,this.faInfoCircle=x.sqG,this.flgValidated=!1,this.isTokenValid=!0,this.otpauth="",this.flgEditable=!0,this.showDisableStepper=!1,this.passwordFormLabel="Authenticate with your RTL password",this.secretFormLabel="Scan or copy the secret",this.tokenFormLabel="Verify your authentication is working",this.disableFormLabel="Disable two factor authentication",this.passwordFormGroup=this.formBuilder.group({hiddenPassword:["",[We.kI.required]],password:["",[We.kI.required]]}),this.secretFormGroup=this.formBuilder.group({secret:[{value:"",disabled:!0},We.kI.required]}),this.tokenFormGroup=this.formBuilder.group({token:["",We.kI.required]}),this.disableFormGroup=this.formBuilder.group({}),this.unSubs=[new o.x,new o.x]}ngOnInit(){this.appConfig=this.data.appConfig,this.showDisableStepper=!!this.appConfig.enable2FA,this.secretFormGroup=this.formBuilder.group({secret:[{value:this.appConfig.enable2FA?"":this.generateSecret(),disabled:!0},We.kI.required]})}generateSecret(){const z=ht.authenticator.generateSecret();return this.otpauth=ht.authenticator.keyuri("","Ride The Lightning (RTL)",z),z}onAuthenticate(){if(!this.passwordFormGroup.controls.password.value)return!0;this.flgValidated=!1,this.store.dispatch((0,we.QO)({payload:he(this.passwordFormGroup.controls.password.value).toString()})),this.rtlEffects.isAuthorizedRes.pipe((0,Me.q)(1)).subscribe(z=>{"ERROR"!==z?(this.passwordFormGroup.controls.hiddenPassword.setValue(this.passwordFormGroup.controls.password.value),this.stepper.next()):(this.dialogRef.close(),this.snackBar.open("Unauthorized User. Logging out from RTL."))})}onCopySecret(z){this.snackBar.open("Secret code "+this.secretFormGroup.controls.secret.value+" copied.")}onVerifyToken(){if(this.appConfig.enable2FA)this.store.dispatch((0,we.Uy)({payload:{secret2fa:""}})),this.generateSecret(),this.isTokenValid=!0;else{if(!this.tokenFormGroup.controls.token.value)return!0;if(this.isTokenValid=ht.authenticator.check(this.tokenFormGroup.controls.token.value,this.secretFormGroup.controls.secret.value),!this.isTokenValid)return this.tokenFormGroup.controls.token.setErrors({notValid:!0}),!0;this.store.dispatch((0,we.Uy)({payload:{secret2fa:this.secretFormGroup.controls.secret.value}})),this.tokenFormGroup.controls.token.setValue("")}this.flgValidated=!0,this.appConfig.enable2FA=!this.appConfig.enable2FA}stepSelectionChanged(z){switch(z.selectedIndex){case 0:default:this.passwordFormLabel="Authenticate with your RTL password";break;case 1:case 2:this.passwordFormLabel="User authenticated successfully"}z.selectedIndex{z.next(),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(ze.so),t.Y36(ze.WI),t.Y36(C.yh),t.Y36(We.qu),t.Y36(it.V),t.Y36(ft.ux))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-two-factor-auth"]],viewQuery:function(z,Oe){if(1&z&&t.Gf(Nt,5),2&z){let _t;t.iGM(_t=t.CRH())&&(Oe.stepper=_t.first)}},decls:28,vars:11,consts:[["fxLayout","row"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","15","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"mat-dialog-close"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayoutAlign","space-between",1,"my-1","pr-1",3,"formGroup"],["matStepLabel",""],["autoFocus","","matInput","","placeholder","Password","type","password","tabindex","1","formControlName","password","required",""],[4,"ngIf"],["fxLayout","row",1,"mt-2"],["mat-button","","color","primary","tabindex","3","type","button",3,"click"],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center"],["mat-button","","color","primary","tabindex","12","type","button","default","",3,"mat-dialog-close"],["fxLayout","column",1,"my-1","pr-1",3,"formGroup"],["matStepLabel","","disabled","true"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start"],[3,"value","size","errorCorrectionLevel",4,"ngIf"],["fxFlex","100",1,"w-100","alert","alert-info"],[1,"mt-1","mr-1","alert-icon",3,"icon"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between stretch"],["autoFocus","","matInput","","placeholder","Secret Code","type","text","tabindex","4","formControlName","secret","required",""],["matSuffix","","rtlClipboard","",3,"icon","payload","copied"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-button","","color","primary","tabindex","6","type","button","matStepperNext",""],[3,"value","size","errorCorrectionLevel"],[3,"stepControl"],["fxLayout","column","fxLayoutAlign","start",1,"my-1","pr-1",3,"formGroup"],["fxLayout","column",4,"ngIf"],["autoFocus","","matInput","","placeholder","Token","type","text","tabindex","7","formControlName","token","required",""],["mat-button","","color","primary","tabindex","8","type","button",3,"click"],["fxFlex","100",1,"w-100","alert","alert-warn"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t.TgZ(4,"span",4),t._uU(5,"Setup Two Factor Authentication"),t.qZA(),t.qZA(),t.TgZ(6,"button",5),t._uU(7,"X"),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",6),t.TgZ(9,"div",7),t.TgZ(10,"mat-vertical-stepper",8,9),t.NdJ("selectionChange",function(pi){return Oe.stepSelectionChanged(pi)}),t.TgZ(12,"mat-step",10),t.TgZ(13,"form",11),t.YNc(14,Vt,1,1,"ng-template",12),t.TgZ(15,"div",0),t.TgZ(16,"mat-form-field",1),t._UZ(17,"input",13),t.YNc(18,Oi,2,0,"mat-error",14),t.qZA(),t.qZA(),t.TgZ(19,"div",15),t.TgZ(20,"button",16),t.NdJ("click",function(){return Oe.onAuthenticate()}),t._uU(21,"Confirm"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.YNc(22,si,17,8,"mat-step",17),t.YNc(23,Ee,5,4,"mat-step",18),t.YNc(24,Xt,5,4,"mat-step",18),t.qZA(),t.TgZ(25,"div",19),t.TgZ(26,"button",20),t._uU(27),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(6),t.Q6J("mat-dialog-close",!1),t.xp6(4),t.Q6J("linear",!0),t.xp6(2),t.Q6J("stepControl",Oe.passwordFormGroup)("editable",Oe.flgEditable),t.xp6(1),t.Q6J("formGroup",Oe.passwordFormGroup),t.xp6(5),t.Q6J("ngIf",null==Oe.passwordFormGroup||null==Oe.passwordFormGroup.controls||null==Oe.passwordFormGroup.controls.password||null==Oe.passwordFormGroup.controls.password.errors?null:Oe.passwordFormGroup.controls.password.errors.required),t.xp6(4),t.Q6J("ngIf",!Oe.showDisableStepper),t.xp6(1),t.Q6J("ngIf",!Oe.showDisableStepper),t.xp6(1),t.Q6J("ngIf",Oe.showDisableStepper),t.xp6(2),t.Q6J("mat-dialog-close",!1),t.xp6(1),t.Oqu(Oe.flgValidated&&Oe.isTokenValid?"Close":"Cancel"))},directives:[b.xw,b.yH,F.dk,b.Wh,ue.lW,ze.ZT,F.dn,nt.Vq,nt.C0,We._Y,We.JL,We.sg,nt.VY,yt.KE,st.Nt,We.Fj,Ve.h,We.JJ,We.u,We.Q7,te.O5,yt.TO,J.BN,yt.R9,wt.y,nt.Ic,Bt.uU],styles:[""]}),$})();var Pe=m(5986),Be=m(4834);const rt=["authForm"];function ot($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Current password is required."),t.qZA())}function At($,Ze){if(1&$&&(t.TgZ(0,"mat-error"),t._uU(1),t.qZA()),2&$){const z=t.oxw(2);t.xp6(1),t.Oqu(z.errorMsg)}}function li($,Ze){if(1&$&&(t.TgZ(0,"mat-error"),t._uU(1),t.qZA()),2&$){const z=t.oxw(2);t.xp6(1),t.Oqu(z.errorConfirmMsg)}}function Ut($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"form",10,11),t.TgZ(2,"div",12),t._UZ(3,"fa-icon",4),t.TgZ(4,"span",5),t._uU(5,"Password"),t.qZA(),t.qZA(),t.TgZ(6,"mat-form-field"),t.TgZ(7,"input",13),t.NdJ("ngModelChange",function(_t){return t.CHM(z),t.oxw().currPassword=_t}),t.qZA(),t.YNc(8,ot,2,0,"mat-error",14),t.qZA(),t.TgZ(9,"mat-form-field"),t.TgZ(10,"input",15),t.NdJ("ngModelChange",function(_t){return t.CHM(z),t.oxw().newPassword=_t}),t.qZA(),t.YNc(11,At,2,1,"mat-error",14),t.qZA(),t.TgZ(12,"mat-form-field"),t.TgZ(13,"input",16),t.NdJ("ngModelChange",function(_t){return t.CHM(z),t.oxw().confirmPassword=_t}),t.qZA(),t.YNc(14,li,2,1,"mat-error",14),t.qZA(),t.TgZ(15,"div",17),t.TgZ(16,"button",18),t.NdJ("click",function(){return t.CHM(z),t.oxw().onResetPassword()}),t._uU(17,"Reset"),t.qZA(),t.TgZ(18,"button",19),t.NdJ("click",function(){return t.CHM(z),t.oxw().onChangePassword()}),t._uU(19,"Change Password"),t.qZA(),t.qZA(),t.TgZ(20,"div",20),t._UZ(21,"mat-divider",21),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.xp6(3),t.Q6J("icon",z.faLock),t.xp6(4),t.Q6J("ngModel",z.currPassword),t.xp6(1),t.Q6J("ngIf",!z.currPassword),t.xp6(2),t.Q6J("ngModel",z.newPassword),t.xp6(1),t.Q6J("ngIf",z.matchOldAndNewPasswords()),t.xp6(2),t.Q6J("ngModel",z.confirmPassword),t.xp6(1),t.Q6J("ngIf",z.matchNewPasswords()),t.xp6(7),t.Q6J("inset",!0)}}let Ft=(()=>{class ${constructor(z,Oe,_t,pi){this.store=z,this.actions=Oe,this.router=_t,this.sessionService=pi,this.faInfoCircle=x.sqG,this.faUserLock=x.FJU,this.faUserClock=x.hnx,this.faLock=x.byT,this.currPassword="",this.newPassword="",this.confirmPassword="",this.errorMsg="",this.errorConfirmMsg="",this.initializeNodeData=!1,this.unSubs=[new o.x,new o.x,new o.x]}ngOnInit(){this.initializeNodeData="true"===this.sessionService.getItem("defaultPassword"),this.store.select(r.Yj).pipe((0,y.R)(this.unSubs[0])).subscribe(z=>{this.appConfig=z}),this.store.select(r.dT).pipe((0,y.R)(this.unSubs[1])).subscribe(z=>{this.selNode=z}),this.actions.pipe((0,y.R)(this.unSubs[2]),(0,ne.h)(z=>z.type===j.pg.RESET_PASSWORD_RES)).subscribe(z=>{if(j.kO.includes(this.currPassword.toLowerCase()))switch(this.selNode.lnImplementation.toUpperCase()){case"CLT":this.router.navigate(["/cl/home"]);break;case"ECL":this.router.navigate(["/ecl/home"]);break;default:this.router.navigate(["/lnd/home"])}this.form&&this.form.resetForm()})}onChangePassword(){if(!this.currPassword||!this.newPassword||!this.confirmPassword||this.currPassword===this.newPassword||this.newPassword!==this.confirmPassword||j.kO.includes(this.newPassword.toLowerCase()))return!0;this.store.dispatch((0,we.c0)({payload:{currPassword:he(this.currPassword).toString(),newPassword:he(this.newPassword).toString()}}))}matchOldAndNewPasswords(){let z=!1;return this.form&&this.form.controls&&this.form.controls.newpassword&&(this.newPassword?""!==this.currPassword&&""!==this.newPassword&&this.currPassword===this.newPassword?(this.form.controls.newpassword.setErrors({invalid:!0}),this.errorMsg="Old and New password cannot be same.",z=!0):j.kO.includes(this.newPassword.toLowerCase())?(this.form.controls.newpassword.setErrors({invalid:!0}),this.errorMsg=j.kO.reduce((Oe,_t,pi)=>pi{z.next(),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(C.yh),t.Y36(c.eX),t.Y36(I.F0),t.Y36(Pe.m))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-auth-settings"]],viewQuery:function(z,Oe){if(1&z&&t.Gf(rt,5),2&z){let _t;t.iGM(_t=t.CRH())&&(Oe.form=_t.first)}},decls:14,vars:4,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"padding-gap-x-large"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch","class","page-sub-title-container mt-1",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],[1,"mb-1","settings-container","page-sub-title-container","mt-1"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],[1,"alert","alert-info"],[1,"mt-1","mr-1","alert-icon",3,"icon"],[1,"mt-1"],["mat-flat-button","","color","primary","tabindex","11",1,"mb-2",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"page-sub-title-container","mt-1"],["authForm","ngForm"],["fxLayout","row","fxLayoutAlign","start start",1,"mb-2"],["matInput","","placeholder","Current Password","type","password","id","currpassword","name","currpassword","tabindex","6","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["matInput","","placeholder","New Password","type","password","id","newpassword","name","newpassword","tabindex","7","required","",3,"ngModel","ngModelChange"],["matInput","","placeholder","Confirm New Password","type","password","id","confirmpassword","name","confirmpassword","tabindex","8","required","",3,"ngModel","ngModelChange"],["fxLayout","row","fxLayoutAlign","start start",1,"mt-1"],["mat-stroked-button","","color","primary","type","reset","tabindex","9",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","10","type","button",3,"click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","end stretch",1,"my-2"],[3,"inset"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.YNc(1,Ut,22,8,"form",1),t.TgZ(2,"div",2),t.TgZ(3,"div",3),t._UZ(4,"fa-icon",4),t.TgZ(5,"span",5),t._uU(6,"Two Factor Authentication"),t.qZA(),t.qZA(),t.TgZ(7,"div",6),t._UZ(8,"fa-icon",7),t.TgZ(9,"span"),t._uU(10,"Protect your account from unauthorized access by requiring a second authentication method in addition to your password."),t.qZA(),t.qZA(),t.TgZ(11,"div",8),t.TgZ(12,"button",9),t.NdJ("click",function(){return Oe.on2FAuth()}),t._uU(13),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(1),t.Q6J("ngIf",null==Oe.appConfig?null:Oe.appConfig.allowPasswordUpdate),t.xp6(3),t.Q6J("icon",Oe.faUserClock),t.xp6(4),t.Q6J("icon",Oe.faInfoCircle),t.xp6(5),t.Oqu(Oe.appConfig.enable2FA?"Disable 2FA":"Enable 2FA"))},directives:[b.xw,b.yH,b.Wh,te.O5,J.BN,ue.lW,We._Y,We.JL,We.F,yt.KE,st.Nt,We.Fj,We.Q7,We.JJ,We.On,Be.d,yt.TO],styles:[""]}),$})();var Si=m(4623);function ai($,Ze){1&$&&t._UZ(0,"mat-divider",7)}function ci($,Ze){if(1&$&&(t.TgZ(0,"div",4),t.TgZ(1,"pre",5),t._uU(2),t.ALo(3,"json"),t.qZA(),t.YNc(4,ai,1,0,"mat-divider",6),t.qZA()),2&$){const z=t.oxw();t.xp6(2),t.Oqu(t.lcZ(3,2,z.configData)),t.xp6(2),t.Q6J("ngIf",""!==z.configData)}}function rn($,Ze){if(1&$&&(t.TgZ(0,"h2"),t._uU(1),t.qZA()),2&$){const z=t.oxw().$implicit;t.xp6(1),t.Oqu(z)}}function Vi($,Ze){if(1&$&&(t.TgZ(0,"h4",14),t._uU(1),t.qZA()),2&$){const z=t.oxw().$implicit;t.xp6(1),t.Oqu(z)}}function Di($,Ze){1&$&&t._UZ(0,"mat-divider",15),2&$&&t.Q6J("inset",!0)}function Xi($,Ze){if(1&$&&(t.TgZ(0,"mat-list-item"),t.TgZ(1,"mat-card-subtitle",7),t.YNc(2,rn,2,1,"h2",10),t.qZA(),t.TgZ(3,"mat-card-subtitle",11),t.YNc(4,Vi,2,1,"h4",12),t.qZA(),t.YNc(5,Di,1,1,"mat-divider",13),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.Q6J("ngIf",z.indexOf("[")>=0),t.xp6(2),t.Q6J("ngIf",z.indexOf("[")<0),t.xp6(1),t.Q6J("ngIf",z.indexOf("[")<0)}}function Ke($,Ze){if(1&$&&(t.TgZ(0,"div",8),t.TgZ(1,"mat-list"),t.YNc(2,Xi,6,3,"mat-list-item",9),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.xp6(2),t.Q6J("ngForOf",z.configData)}}let mt=(()=>{class ${constructor(z,Oe,_t){this.store=z,this.rtlEffects=Oe,this.router=_t,this.selectedNodeType="",this.configData="",this.fileFormat="INI",this.faCog=x.b7W,this.unSubs=[new o.x,new o.x]}ngOnInit(){this.selectedNodeType=this.router.url.includes("bconfig")?"bitcoind":"ln",this.router.events.pipe((0,y.R)(this.unSubs[0]),(0,ne.h)(z=>z instanceof I.Av)).subscribe(z=>{this.selectedNodeType=z.urlAfterRedirects.includes("bconfig")?"bitcoind":"ln"}),this.store.dispatch((0,we.Q2)({payload:this.selectedNodeType})),this.rtlEffects.showLnConfig.pipe((0,y.R)(this.unSubs[1])).subscribe(z=>{const Oe=z.data;this.fileFormat=z.format,this.configData=""===Oe||!Oe||"INI"!==this.fileFormat&&"HOCON"!==this.fileFormat?""!==Oe&&Oe&&"JSON"===this.fileFormat?Oe:"":Oe.split("\n")})}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(C.yh),t.Y36(it.V),t.Y36(I.F0))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-bitcoin-config"]],decls:4,vars:2,consts:[["fxLayout","column","fxFlex","100"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxFlex","100","class","mb-6",4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxFlex","100",1,"mb-6"],[1,"pre-wrap"],["class","my-1",4,"ngIf"],[1,"my-1"],["fxFlex","100"],[4,"ngFor","ngForOf"],[4,"ngIf"],[1,"m-0"],["class","ml-4",4,"ngIf"],[3,"inset",4,"ngIf"],[1,"ml-4"],[3,"inset"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.YNc(2,ci,5,4,"div",2),t.YNc(3,Ke,3,1,"div",3),t.qZA(),t.qZA()),2&z&&(t.xp6(2),t.Q6J("ngIf",""!==Oe.configData&&"JSON"===Oe.fileFormat),t.xp6(1),t.Q6J("ngIf",""!==Oe.configData&&("INI"===Oe.fileFormat||"HOCON"===Oe.fileFormat)))},directives:[b.xw,b.yH,b.Wh,te.O5,Be.d,Si.i$,te.sg,Si.Tg,F.$j],pipes:[te.Ts],styles:["h4[_ngcontent-%COMP%]{word-break:break-word}"]}),$})();const be=function(){return{initial:!1}};function qe($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",10),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw();return _t.activeLink=_t.links[1].link}),t._uU(1),t.qZA()}if(2&$){const z=t.oxw();t.s9C("routerLink",z.links[1].link),t.Q6J("active",z.activeLink===z.links[1].link)("state",t.DdM(4,be)),t.xp6(1),t.Oqu(z.links[1].name)}}function vt($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw();return _t.activeLink=_t.links[2].link}),t._uU(1),t.qZA()}if(2&$){const z=t.oxw();t.s9C("routerLink",z.links[2].link),t.Q6J("active",z.activeLink===z.links[2].link),t.xp6(1),t.Oqu(z.links[2].name)}}function me($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw();return _t.activeLink=_t.links[3].link}),t._uU(1),t.qZA()}if(2&$){const z=t.oxw();t.s9C("routerLink",z.links[3].link),t.Q6J("active",z.activeLink===z.links[3].link),t.xp6(1),t.Oqu(z.links[3].name)}}let $e=(()=>{class ${constructor(z,Oe){this.store=z,this.router=Oe,this.faTools=x.CgH,this.showLnConfig=!1,this.lnImplementationStr="",this.links=[{link:"layout",name:"Layout"},{link:"services",name:"Services"},{link:"experimental",name:"Experimental"},{link:"lnconfig",name:this.lnImplementationStr}],this.activeLink="",this.unSubs=[new o.x,new o.x,new o.x]}ngOnInit(){const z=this.links.find(Oe=>this.router.url.includes(Oe.link));this.activeLink=z?z.link:this.links[0].link,this.router.events.pipe((0,y.R)(this.unSubs[0]),(0,ne.h)(Oe=>Oe instanceof I.Av)).subscribe(Oe=>{const _t=this.links.find(pi=>Oe.urlAfterRedirects.includes(pi.link));this.activeLink=_t?_t.link:this.links[0].link}),this.store.select(r.dT).pipe((0,y.R)(this.unSubs[1])).subscribe(Oe=>{switch(this.showLnConfig=!1,this.selNode=Oe,this.selNode.lnImplementation.toUpperCase()){case"CLT":this.lnImplementationStr="C-Lightning Config";break;case"ECL":this.lnImplementationStr="Eclair Config";break;default:this.lnImplementationStr="LND Config"}this.selNode.authentication&&this.selNode.authentication.configPath&&""!==this.selNode.authentication.configPath.trim()&&(this.links[3].name=this.lnImplementationStr,this.showLnConfig=!0)})}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(C.yh),t.Y36(I.F0))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-node-config"]],decls:15,vars:7,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","state","click",4,"ngIf"],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","state","click"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"Node Config"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t.TgZ(7,"nav",5),t.TgZ(8,"div",6),t.NdJ("click",function(){return Oe.activeLink=Oe.links[0].link}),t._uU(9),t.qZA(),t.YNc(10,qe,2,5,"div",7),t.YNc(11,vt,2,3,"div",8),t.YNc(12,me,2,3,"div",8),t.qZA(),t.TgZ(13,"div",9),t._UZ(14,"router-outlet"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(1),t.Q6J("icon",Oe.faTools),t.xp6(7),t.s9C("routerLink",Oe.links[0].link),t.Q6J("active",Oe.activeLink===Oe.links[0].link),t.xp6(1),t.Oqu(Oe.links[0].name),t.xp6(1),t.Q6J("ngIf","LND"===(null==Oe.selNode||null==Oe.selNode.lnImplementation?null:Oe.selNode.lnImplementation.toUpperCase())),t.xp6(1),t.Q6J("ngIf","CLT"===(null==Oe.selNode||null==Oe.selNode.lnImplementation?null:Oe.selNode.lnImplementation.toUpperCase())),t.xp6(1),t.Q6J("ngIf",Oe.showLnConfig))},directives:[b.xw,b.Wh,J.BN,F.a8,F.dn,B.BU,B.Nj,I.rH,te.O5,b.yH,I.lC],styles:[""]}),$})();function St($,Ze){1&$&&t._UZ(0,"mat-divider",7)}function Rt($,Ze){if(1&$&&(t.TgZ(0,"div",4),t.TgZ(1,"pre",5),t._uU(2),t.ALo(3,"json"),t.qZA(),t.YNc(4,St,1,0,"mat-divider",6),t.qZA()),2&$){const z=t.oxw();t.xp6(2),t.Oqu(t.lcZ(3,2,z.configData)),t.xp6(2),t.Q6J("ngIf",""!==z.configData)}}function yi($,Ze){if(1&$&&(t.TgZ(0,"h2"),t._uU(1),t.qZA()),2&$){const z=t.oxw().$implicit;t.xp6(1),t.Oqu(z)}}function Ri($,Ze){if(1&$&&(t.TgZ(0,"h4",14),t._uU(1),t.qZA()),2&$){const z=t.oxw().$implicit;t.xp6(1),t.Oqu(z)}}function Ii($,Ze){1&$&&t._UZ(0,"mat-divider",15),2&$&&t.Q6J("inset",!0)}function Ki($,Ze){if(1&$&&(t.TgZ(0,"mat-list-item"),t.TgZ(1,"mat-card-subtitle",7),t.YNc(2,yi,2,1,"h2",10),t.qZA(),t.TgZ(3,"mat-card-subtitle",11),t.YNc(4,Ri,2,1,"h4",12),t.qZA(),t.YNc(5,Ii,1,1,"mat-divider",13),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.Q6J("ngIf",z.indexOf("[")>=0),t.xp6(2),t.Q6J("ngIf",z.indexOf("[")<0),t.xp6(1),t.Q6J("ngIf",z.indexOf("[")<0)}}function at($,Ze){if(1&$&&(t.TgZ(0,"div",8),t.TgZ(1,"mat-list"),t.YNc(2,Ki,6,3,"mat-list-item",9),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.xp6(2),t.Q6J("ngForOf",z.configData)}}let Qt=(()=>{class ${constructor(z,Oe,_t){this.store=z,this.rtlEffects=Oe,this.router=_t,this.selectedNodeType="",this.configData="",this.fileFormat="INI",this.faCog=x.b7W,this.unSubs=[new o.x,new o.x]}ngOnInit(){this.selectedNodeType=this.router.url.includes("bconfig")?"bitcoind":"ln",this.router.events.pipe((0,y.R)(this.unSubs[0]),(0,ne.h)(z=>z instanceof I.Av)).subscribe(z=>{this.selectedNodeType=z.urlAfterRedirects.includes("bconfig")?"bitcoind":"ln"}),this.store.dispatch((0,we.Q2)({payload:this.selectedNodeType})),this.rtlEffects.showLnConfig.pipe((0,y.R)(this.unSubs[1])).subscribe(z=>{const Oe=z.data;this.fileFormat=z.format,this.configData=""===Oe||!Oe||"INI"!==this.fileFormat&&"HOCON"!==this.fileFormat?""!==Oe&&Oe&&"JSON"===this.fileFormat?Oe:"":Oe.split("\n")})}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(C.yh),t.Y36(it.V),t.Y36(I.F0))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-lnp-config"]],decls:4,vars:2,consts:[["fxLayout","column","fxFlex","100"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start"],["fxFlex","100","class","mb-6",4,"ngIf"],["fxFlex","100",4,"ngIf"],["fxFlex","100",1,"mb-6"],[1,"pre-wrap"],["class","my-1",4,"ngIf"],[1,"my-1"],["fxFlex","100"],[4,"ngFor","ngForOf"],[4,"ngIf"],[1,"m-0"],["class","ml-4",4,"ngIf"],[3,"inset",4,"ngIf"],[1,"ml-4"],[3,"inset"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.YNc(2,Rt,5,4,"div",2),t.YNc(3,at,3,1,"div",3),t.qZA(),t.qZA()),2&z&&(t.xp6(2),t.Q6J("ngIf",""!==Oe.configData&&"JSON"===Oe.fileFormat),t.xp6(1),t.Q6J("ngIf",""!==Oe.configData&&("INI"===Oe.fileFormat||"HOCON"===Oe.fileFormat)))},directives:[b.xw,b.yH,b.Wh,te.O5,Be.d,Si.i$,te.sg,Si.Tg,F.$j],pipes:[te.Ts],styles:["h4[_ngcontent-%COMP%]{word-break:break-word}"]}),$})();var gt=m(2994),Lt=m(1443),ui=m(6523),Ci=m(62),Wi=m(2368),$i=m(9814),An=m(3322);function Ln($,Ze){if(1&$&&(t.TgZ(0,"mat-option",35),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit;t.Q6J("value",z.id),t.xp6(1),t.hij(" ",z.id," ")}}function pn($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Currency unit is required."),t.qZA())}function Pn($,Ze){if(1&$&&(t.TgZ(0,"mat-radio-button",36),t._uU(1),t.ALo(2,"titlecase"),t.qZA()),2&$){const z=Ze.$implicit,Oe=t.oxw();t.Q6J("value",z)("checked",Oe.selNode.settings.userPersona===z),t.xp6(1),t.hij(" ",t.lcZ(2,3,z)," ")}}const xr=function($){return{"mr-4":$}};function wi($,Ze){if(1&$&&(t.TgZ(0,"mat-radio-button",37),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit,Oe=t.oxw();t.Q6J("value",z)("ngClass",t.VKq(3,xr,Oe.screenSize===Oe.screenSizeEnum.XS||Oe.screenSize===Oe.screenSizeEnum.SM)),t.xp6(1),t.hij("",z.name," ")}}const zi=function($){return{skin:!0,"selected-color":$}};function sn($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"span",38),t.TgZ(1,"div",39),t.NdJ("click",function(){const pi=t.CHM(z).$implicit;return t.oxw().changeThemeColor(pi.id)}),t.ALo(2,"lowercase"),t.qZA(),t._uU(3),t.qZA()}if(2&$){const z=Ze.$implicit,Oe=t.oxw();t.xp6(1),t.Tol(t.lcZ(2,4,z.id)),t.Q6J("ngClass",t.VKq(6,zi,Oe.selectedThemeColor===z.id)),t.xp6(2),t.hij(" ",z.name," ")}}let Sr=(()=>{class ${constructor(z,Oe,_t){this.logger=z,this.commonService=Oe,this.store=_t,this.faExclamationTriangle=x.eHv,this.faMoneyBillAlt=x.co4,this.faPaintBrush=x.XsY,this.faInfoCircle=x.sqG,this.userPersonas=[j.ol.OPERATOR,j.ol.MERCHANT],this.currencyUnits=j.Er,this.themeModes=j.wZ.modes,this.themeColors=j.wZ.themes,this.selectedThemeMode=j.wZ.modes[0],this.selectedThemeColor=j.wZ.themes[0].id,this.currencyUnit="BTC",this.smallerCurrencyUnit="Sats",this.showSettingOption=!0,this.screenSize="",this.screenSizeEnum=j.cu,this.unSubs=[new o.x,new o.x],this.screenSize=this.commonService.getScreenSize()}ngOnInit(){this.store.select(r.dT).pipe((0,y.R)(this.unSubs[0])).subscribe(z=>{this.selNode=z,this.selectedThemeMode=this.themeModes.find(Oe=>this.selNode.settings.themeMode===Oe.id),this.selectedThemeColor=this.selNode.settings.themeColor,this.selNode.settings.fiatConversion||(this.selNode.settings.currencyUnit=null),this.previousSettings=JSON.parse(JSON.stringify(this.selNode.settings)),this.logger.info(z)})}onCurrencyChange(z){this.selNode.settings.currencyUnits=[...j.uA,z.value],this.store.dispatch((0,ui.JT)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:z.value,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl}})),this.store.dispatch((0,Lt.oo)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:z.value,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl}})),this.store.dispatch((0,gt.Zr)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:z.value,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl}}))}toggleSettings(z,Oe){this.selNode.settings[z]=!this.selNode.settings[z]}changeThemeColor(z){this.selectedThemeColor=z,this.selNode.settings.themeColor=z}chooseThemeMode(){this.selNode.settings.themeMode=this.selectedThemeMode.id}onUpdateSettings(){if(this.selNode.settings.fiatConversion&&!this.selNode.settings.currencyUnit)return!0;this.logger.info(this.selNode.settings),this.store.dispatch((0,we.zQ)({payload:{uiMessage:j.m6.UPDATE_NODE_SETTINGS,settings:this.selNode.settings}})),this.store.dispatch((0,ui.JT)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl}})),this.store.dispatch((0,Lt.oo)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl}})),this.store.dispatch((0,gt.Zr)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl}}))}onResetSettings(){const z=this.selNode.index;this.selNode.settings=this.previousSettings,this.selectedThemeMode=this.themeModes.find(Oe=>Oe.id===this.previousSettings.themeMode),this.selectedThemeColor=this.previousSettings.themeColor,this.store.dispatch((0,we.fk)({payload:{uiMessage:j.m6.NO_SPINNER,prevLnNodeIndex:+z,currentLnNode:this.selNode,isInitialSetup:!0}}))}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(Ci.v),t.Y36(C.yh))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-node-settings"]],decls:60,vars:17,consts:[["fxLayout","column","fxFlex","100",3,"perfectScrollbar"],["fxLayout","column","fxLayoutAlign","start stretch",1,"settings-container","page-sub-title-container","mt-1"],["form","ngForm"],["fxLayout","row"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column","fxLayoutAlign","start stretch",1,"mt-1","bordered-box","padding-gap-large"],["fxFlex","100",1,"alert","alert-warn"],[1,"mr-1","alert-icon",3,"icon"],["href","https://www.blockchain.com/api/exchange_rates_api","target","blank"],["fxLayout","row wrap","fxLayoutAlign","start center"],["tabindex","2","color","primary","name","fiatConversion",3,"ngModel","ngModelChange","change"],["autoFocus","","placeholder","Fiat Currency","tabindex","3","name","currencyUnit",3,"ngModel","disabled","required","ngModelChange","selectionChange"],["currencyUnit","ngModel"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","row wrap","fxLayoutAlign","start start","fxLayout.gt-sm","column","fxFlex","100","fxLayoutAlign.gt-sm","space-between stretch",1,"settings-container","page-sub-title-container","mt-1"],[1,"mt-1"],["fxLayout","column","fxLayoutAlign","start stretch","fxFlex","100"],["fxLayout","row","fxFlex","100",1,"alert","alert-info","mb-0"],["fxLayout","column","fxLayoutAlign","start start","fxFlex","100"],["color","primary","tabindex","1","name","userPersona",3,"ngModel","ngModelChange"],["class","mr-4",3,"value","checked",4,"ngFor","ngForOf"],[1,"mt-1",3,"inset"],["fxLayout","column","fxLayout.gt-xs","row","fxFlex","100","fxLayoutAlign","space-between stretch","fxLayoutAlign.gt-xs","start stretch"],["fxFlex.gt-xs","20","fxFlex.gt-md","15","fxLayout","column","fxLayoutAlign","space-between stretch"],["color","primary","name","themeMode",3,"ngModel","ngModelChange","change"],["tabindex","5",3,"value","ngClass",4,"ngFor","ngForOf"],["fxLayout","column","fxFlex.gt-xs","50","fxFlex.gt-md","40","fxLayoutAlign","space-between stretch"],["fxLayout","row","fxFlex","100","fxLayoutAlign","space-between start"],["fxLayout","row","class","theme-name",4,"ngFor","ngForOf"],["fxLayout","row",1,"mt-1"],["mat-stroked-button","","color","primary","tabindex","10",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","11",3,"click"],[3,"value"],[1,"mr-4",3,"value","checked"],["tabindex","5",3,"value","ngClass"],["fxLayout","row",1,"theme-name"],["tabindex","9",3,"ngClass","click"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"form",1,2),t.TgZ(3,"div",3),t._UZ(4,"fa-icon",4),t.TgZ(5,"span",5),t._uU(6,"Balance Display"),t.qZA(),t.qZA(),t.TgZ(7,"div",6),t.TgZ(8,"div",7),t._UZ(9,"fa-icon",8),t.TgZ(10,"span"),t._uU(11,"Fiat conversion calls "),t.TgZ(12,"strong"),t.TgZ(13,"a",9),t._uU(14,"Blockchain.com"),t.qZA(),t.qZA(),t._uU(15," API to get conversion rates."),t.qZA(),t.qZA(),t.TgZ(16,"div",10),t.TgZ(17,"mat-slide-toggle",11),t.NdJ("ngModelChange",function(pi){return Oe.selNode.settings.fiatConversion=pi})("change",function(pi){return Oe.selNode.settings.currencyUnit=pi.checked?Oe.selNode.settings.currencyUnit:null}),t._uU(18,"Enable Fiat Conversion"),t.qZA(),t.TgZ(19,"mat-form-field"),t.TgZ(20,"mat-select",12,13),t.NdJ("ngModelChange",function(pi){return Oe.selNode.settings.currencyUnit=pi})("selectionChange",function(pi){return Oe.onCurrencyChange(pi)}),t.YNc(22,Ln,2,2,"mat-option",14),t.qZA(),t.YNc(23,pn,2,0,"mat-error",15),t.qZA(),t.qZA(),t.qZA(),t.TgZ(24,"div",16),t.TgZ(25,"div",17),t.TgZ(26,"div",18),t._UZ(27,"fa-icon",4),t.TgZ(28,"span",5),t._uU(29,"Customization"),t.qZA(),t.qZA(),t.TgZ(30,"div",6),t.TgZ(31,"div",19),t.TgZ(32,"div",20),t._UZ(33,"fa-icon",8),t.TgZ(34,"span"),t._uU(35,"Dashboard layout will be tailored based on the role selected to better serve its needs."),t.qZA(),t.qZA(),t.TgZ(36,"div",21),t.TgZ(37,"h4"),t._uU(38,"Dashboard Layout"),t.qZA(),t.TgZ(39,"mat-radio-group",22),t.NdJ("ngModelChange",function(pi){return Oe.selNode.settings.userPersona=pi}),t.YNc(40,Pn,3,5,"mat-radio-button",23),t.qZA(),t.qZA(),t.qZA(),t._UZ(41,"mat-divider",24),t.TgZ(42,"div",25),t.TgZ(43,"div",26),t.TgZ(44,"h4"),t._uU(45,"Mode"),t.qZA(),t.TgZ(46,"mat-radio-group",27),t.NdJ("ngModelChange",function(pi){return Oe.selectedThemeMode=pi})("change",function(){return Oe.chooseThemeMode()}),t.YNc(47,wi,2,5,"mat-radio-button",28),t.qZA(),t.qZA(),t.qZA(),t._UZ(48,"mat-divider",24),t.TgZ(49,"div",25),t.TgZ(50,"div",29),t.TgZ(51,"h4"),t._uU(52,"Themes"),t.qZA(),t.TgZ(53,"div",30),t.YNc(54,sn,4,8,"span",31),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.TgZ(55,"div",32),t.TgZ(56,"button",33),t.NdJ("click",function(){return Oe.onResetSettings()}),t._uU(57,"Reset"),t.qZA(),t.TgZ(58,"button",34),t.NdJ("click",function(){return Oe.onUpdateSettings()}),t._uU(59,"Update"),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(4),t.Q6J("icon",Oe.faMoneyBillAlt),t.xp6(5),t.Q6J("icon",Oe.faExclamationTriangle),t.xp6(8),t.Q6J("ngModel",Oe.selNode.settings.fiatConversion),t.xp6(3),t.Q6J("ngModel",Oe.selNode.settings.currencyUnit)("disabled",!Oe.selNode.settings.fiatConversion)("required",Oe.selNode.settings.fiatConversion),t.xp6(2),t.Q6J("ngForOf",Oe.currencyUnits),t.xp6(1),t.Q6J("ngIf",Oe.selNode.settings.fiatConversion&&!Oe.selNode.settings.currencyUnit),t.xp6(4),t.Q6J("icon",Oe.faPaintBrush),t.xp6(6),t.Q6J("icon",Oe.faInfoCircle),t.xp6(6),t.Q6J("ngModel",Oe.selNode.settings.userPersona),t.xp6(1),t.Q6J("ngForOf",Oe.userPersonas),t.xp6(1),t.Q6J("inset",!0),t.xp6(5),t.Q6J("ngModel",Oe.selectedThemeMode),t.xp6(1),t.Q6J("ngForOf",Oe.themeModes),t.xp6(1),t.Q6J("inset",!0),t.xp6(6),t.Q6J("ngForOf",Oe.themeColors))},directives:[b.xw,b.yH,le.$V,We._Y,We.JL,We.F,b.Wh,J.BN,Wi.Rr,We.JJ,We.On,yt.KE,Ne.gD,Ve.h,We.Q7,te.sg,te.O5,$i.VQ,Be.d,ue.lW,Te.ey,yt.TO,$i.U0,te.mk,An.oO],pipes:[te.rS,te.i8],styles:[""]}),$})();const ya=function(){return{initial:!1}};let qn=(()=>{class ${constructor(z){this.router=z,this.faLayerGroup=x.Krp,this.links=[{link:"loop",name:"Loop"},{link:"boltz",name:"Boltz"}],this.activeLink="",this.unSubs=[new o.x,new o.x,new o.x]}ngOnInit(){const z=this.links.find(Oe=>this.router.url.includes(Oe.link));this.activeLink=z?z.link:this.links[0].link,this.router.events.pipe((0,y.R)(this.unSubs[0]),(0,ne.h)(Oe=>Oe instanceof I.Av)).subscribe(Oe=>{const _t=this.links.find(pi=>Oe.urlAfterRedirects.includes(pi.link));this.activeLink=_t?_t.link:this.links[0].link})}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(I.F0))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-services-settings"]],decls:14,vars:9,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container","mt-1"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","state","click"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mat-tab-body-wrapper"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"Services"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t.TgZ(7,"nav",5),t.TgZ(8,"div",6),t.NdJ("click",function(){return Oe.activeLink=Oe.links[0].link}),t._uU(9),t.qZA(),t.TgZ(10,"div",7),t.NdJ("click",function(){return Oe.activeLink=Oe.links[1].link}),t._uU(11),t.qZA(),t.qZA(),t.TgZ(12,"div",8),t._UZ(13,"router-outlet"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(1),t.Q6J("icon",Oe.faLayerGroup),t.xp6(7),t.s9C("routerLink",Oe.links[0].link),t.Q6J("active",Oe.activeLink===Oe.links[0].link),t.xp6(1),t.Oqu(Oe.links[0].name),t.xp6(1),t.s9C("routerLink",Oe.links[1].link),t.Q6J("active",Oe.activeLink===Oe.links[1].link)("state",t.DdM(8,ya)),t.xp6(1),t.Oqu(Oe.links[1].name))},directives:[b.xw,b.Wh,J.BN,F.a8,F.dn,B.BU,B.Nj,I.rH,b.yH,I.lC],styles:[""]}),$})();const kr=["form"];function ba($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Loop server URL is required."),t.qZA())}function xa($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Specify the loop server url with 'https://'."),t.qZA())}function Va($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Loop macaroon path is required."),t.qZA())}let zr=(()=>{class ${constructor(z,Oe){this.logger=z,this.store=Oe,this.faInfoCircle=x.sqG,this.enableLoop=!1,this.unSubs=[new o.x,new o.x]}ngOnInit(){this.store.select(r.dT).pipe((0,y.R)(this.unSubs[0])).subscribe(z=>{this.selNode=z,this.enableLoop=z.settings.swapServerUrl&&""!==z.settings.swapServerUrl.trim(),this.previousSelNode=JSON.parse(JSON.stringify(this.selNode)),this.logger.info(z)})}onEnableServiceChanged(z){this.enableLoop=z.checked,this.enableLoop||(this.selNode.authentication.swapMacaroonPath="",this.selNode.settings.swapServerUrl="")}onUpdateService(){if(this.selNode.settings.swapServerUrl&&""!==this.selNode.settings.swapServerUrl.trim()&&!this.form.controls.srvrUrl.value.includes("https://")&&this.form.controls.srvrUrl.setErrors({invalid:!0}),this.enableLoop&&(!this.selNode.settings.swapServerUrl||""===this.selNode.settings.swapServerUrl.trim()||!this.selNode.authentication.swapMacaroonPath||""===this.selNode.authentication.swapMacaroonPath.trim()))return!0;this.logger.info(this.selNode),this.store.dispatch((0,we.jS)({payload:{uiMessage:j.m6.UPDATE_LOOP_SETTINGS,service:j.JX.LOOP,settings:{enable:this.enableLoop,serverUrl:this.selNode.settings.swapServerUrl,macaroonPath:this.selNode.authentication.swapMacaroonPath}}})),this.store.dispatch((0,ui.JT)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl,enableOffers:this.selNode.settings.enableOffers}})),this.store.dispatch((0,Lt.oo)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl,enableOffers:this.selNode.settings.enableOffers}})),this.store.dispatch((0,gt.Zr)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl,enableOffers:this.selNode.settings.enableOffers}}))}onReset(){this.selNode=JSON.parse(JSON.stringify(this.previousSelNode)),this.enableLoop=this.selNode.settings.swapServerUrl&&""!==this.selNode.settings.swapServerUrl.trim()}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(C.yh))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-loop-service-settings"]],viewQuery:function(z,Oe){if(1&z&&t.Gf(kr,7),2&z){let _t;t.iGM(_t=t.CRH())&&(Oe.form=_t.first)}},decls:34,vars:11,consts:[["fxLayout","column","fxFlex","100",3,"perfectScrollbar"],["fxFlex","100",1,"alert","alert-info","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["href","https://github.com/lightninglabs/loop","target","_blank"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"settings-container","page-sub-title-container","mt-1"],["form","ngForm"],["fxLayout","column","fxFlex","50","fxLayoutAlign","start stretch"],["autoFocus","","tabindex","1","color","primary","name","loop",1,"mb-1",3,"ngModel","ngModelChange","change"],[1,"mb-2"],["matInput","","placeholder","Loop Server URL","type","text","id","swapServerUrl","name","srvrUrl","tabindex","2",3,"ngModel","required","disabled","ngModelChange"],["srvrUrl","ngModel"],[4,"ngIf"],["matInput","","placeholder","Loop Macaroon Path","type","text","id","swapMacaroonPath","name","swapMacaroonPath","tabindex","3",3,"ngModel","required","disabled","ngModelChange"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","type","reset","tabindex","4",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","5",3,"click"]],template:function(z,Oe){if(1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t._UZ(2,"fa-icon",2),t.TgZ(3,"span"),t._uU(4,"Please ensure that "),t.TgZ(5,"strong"),t._uU(6,"loopd"),t.qZA(),t._uU(7," is running and accessible to RTL before enabling this service. Click "),t.TgZ(8,"strong"),t.TgZ(9,"a",3),t._uU(10,"here"),t.qZA(),t.qZA(),t._uU(11," to learn more about the installation."),t.qZA(),t.qZA(),t.TgZ(12,"form",4,5),t.TgZ(14,"div",6),t.TgZ(15,"mat-slide-toggle",7),t.NdJ("ngModelChange",function(pi){return Oe.enableLoop=pi})("change",function(pi){return Oe.onEnableServiceChanged(pi)}),t._uU(16,"Enable Loop Service"),t.qZA(),t.TgZ(17,"mat-form-field",8),t.TgZ(18,"input",9,10),t.NdJ("ngModelChange",function(pi){return Oe.selNode.settings.swapServerUrl=pi}),t.qZA(),t.TgZ(20,"mat-hint"),t._uU(21,"Service url for loop server REST APIs, eg. https://localhost:8081"),t.qZA(),t.YNc(22,ba,2,0,"mat-error",11),t.YNc(23,xa,2,0,"mat-error",11),t.qZA(),t.TgZ(24,"mat-form-field"),t.TgZ(25,"input",12),t.NdJ("ngModelChange",function(pi){return Oe.selNode.authentication.swapMacaroonPath=pi}),t.qZA(),t.TgZ(26,"mat-hint"),t._uU(27,"Path for the folder containing service 'loop.macaroon', eg. D:\\\\xyz\\\\AppData\\\\Local\\\\Loop\\\\testnet"),t.qZA(),t.YNc(28,Va,2,0,"mat-error",11),t.qZA(),t.qZA(),t.qZA(),t.TgZ(29,"div",13),t.TgZ(30,"button",14),t.NdJ("click",function(){return Oe.onReset()}),t._uU(31,"Reset"),t.qZA(),t.TgZ(32,"button",15),t.NdJ("click",function(){return Oe.onUpdateService()}),t._uU(33,"Update"),t.qZA(),t.qZA(),t.qZA()),2&z){const _t=t.MAs(19);t.xp6(2),t.Q6J("icon",Oe.faInfoCircle),t.xp6(13),t.Q6J("ngModel",Oe.enableLoop),t.xp6(3),t.Q6J("ngModel",Oe.selNode.settings.swapServerUrl)("required",Oe.enableLoop)("disabled",!Oe.enableLoop),t.xp6(4),t.Q6J("ngIf",!Oe.selNode.settings.swapServerUrl&&Oe.enableLoop),t.xp6(1),t.Q6J("ngIf",(null==_t||null==_t.errors?null:_t.errors.invalid)&&Oe.enableLoop),t.xp6(2),t.Q6J("ngModel",Oe.selNode.authentication.swapMacaroonPath)("required",Oe.enableLoop)("disabled",!Oe.enableLoop),t.xp6(3),t.Q6J("ngIf",!Oe.selNode.authentication.swapMacaroonPath&&Oe.enableLoop)}},directives:[b.xw,b.yH,le.$V,J.BN,We._Y,We.JL,We.F,b.Wh,Wi.Rr,Ve.h,We.JJ,We.On,yt.KE,st.Nt,We.Fj,We.Q7,yt.bx,te.O5,ue.lW,yt.TO],styles:["h4[_ngcontent-%COMP%]{word-break:break-word}"]}),$})();const is=["form"];function rr($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Boltz server URL is required."),t.qZA())}function ua($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Specify the boltz server url with 'https://'."),t.qZA())}function la($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Boltz macaroon path is required."),t.qZA())}let Ur=(()=>{class ${constructor(z,Oe){this.logger=z,this.store=Oe,this.faInfoCircle=x.sqG,this.enableBoltz=!1,this.serverUrl="",this.macaroonPath="",this.unSubs=[new o.x,new o.x]}ngOnInit(){this.store.select(r.dT).pipe((0,y.R)(this.unSubs[0])).subscribe(z=>{this.selNode=z,this.enableBoltz=z.settings.boltzServerUrl&&""!==z.settings.boltzServerUrl.trim(),this.serverUrl=this.selNode.settings.boltzServerUrl,this.macaroonPath=this.selNode.authentication.boltzMacaroonPath,this.previousSelNode=JSON.parse(JSON.stringify(this.selNode)),this.logger.info(z)})}onEnableServiceChanged(z){this.enableBoltz=z.checked,this.enableBoltz||(this.macaroonPath="",this.serverUrl="")}onUpdateService(){if(this.serverUrl&&""!==this.serverUrl.trim()&&!this.form.controls.srvrUrl.value.includes("https://")&&this.form.controls.srvrUrl.setErrors({invalid:!0}),this.enableBoltz&&(!this.serverUrl||""===this.serverUrl.trim()||!this.serverUrl.includes("https://")||!this.macaroonPath||""===this.macaroonPath.trim()))return!0;this.logger.info(this.selNode),this.selNode.settings.boltzServerUrl=this.serverUrl,this.selNode.authentication.boltzMacaroonPath=this.macaroonPath,this.store.dispatch((0,we.jS)({payload:{uiMessage:j.m6.UPDATE_BOLTZ_SETTINGS,service:j.JX.BOLTZ,settings:{enable:this.enableBoltz,serverUrl:this.serverUrl,macaroonPath:this.macaroonPath}}})),this.store.dispatch((0,ui.JT)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.serverUrl,enableOffers:this.selNode.settings.enableOffers}})),this.store.dispatch((0,Lt.oo)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.serverUrl,enableOffers:this.selNode.settings.enableOffers}})),this.store.dispatch((0,gt.Zr)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.serverUrl,enableOffers:this.selNode.settings.enableOffers}}))}onReset(){this.selNode=JSON.parse(JSON.stringify(this.previousSelNode)),this.serverUrl=this.selNode.settings.boltzServerUrl,this.macaroonPath=this.selNode.authentication.boltzMacaroonPath,this.enableBoltz=this.serverUrl&&""!==this.serverUrl.trim()}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(C.yh))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-boltz-service-settings"]],viewQuery:function(z,Oe){if(1&z&&t.Gf(is,7),2&z){let _t;t.iGM(_t=t.CRH())&&(Oe.form=_t.first)}},decls:34,vars:11,consts:[["fxLayout","column","fxFlex","100",3,"perfectScrollbar"],["fxFlex","100",1,"alert","alert-info","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["href","https://lnd.docs.boltz.exchange/en/latest/","target","_blank"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"settings-container","page-sub-title-container","mt-1"],["form","ngForm"],["fxLayout","column","fxFlex","50","fxLayoutAlign","start stretch"],["autoFocus","","tabindex","1","color","primary","name","boltz",1,"mb-1",3,"ngModel","ngModelChange","change"],[1,"mb-2"],["matInput","","placeholder","Boltz Server URL","type","text","id","boltzServerUrl","name","srvrUrl","tabindex","2",3,"ngModel","required","disabled","ngModelChange"],["srvrUrl","ngModel"],[4,"ngIf"],["matInput","","placeholder","Boltz Macaroon Path","type","text","id","boltzMacaroonPath","name","boltzMacaroonPath","tabindex","3",3,"ngModel","required","disabled","ngModelChange"],["fxLayout","row",1,"mt-2"],["mat-stroked-button","","color","primary","type","reset","tabindex","4",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","type","submit","tabindex","5",3,"click"]],template:function(z,Oe){if(1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t._UZ(2,"fa-icon",2),t.TgZ(3,"span"),t._uU(4,"Please ensure that "),t.TgZ(5,"strong"),t._uU(6,"boltzd"),t.qZA(),t._uU(7," is running and accessible to RTL before enabling this service. Click "),t.TgZ(8,"strong"),t.TgZ(9,"a",3),t._uU(10,"here"),t.qZA(),t.qZA(),t._uU(11," to learn more about the installation."),t.qZA(),t.qZA(),t.TgZ(12,"form",4,5),t.TgZ(14,"div",6),t.TgZ(15,"mat-slide-toggle",7),t.NdJ("ngModelChange",function(pi){return Oe.enableBoltz=pi})("change",function(pi){return Oe.onEnableServiceChanged(pi)}),t._uU(16,"Enable Boltz Service"),t.qZA(),t.TgZ(17,"mat-form-field",8),t.TgZ(18,"input",9,10),t.NdJ("ngModelChange",function(pi){return Oe.serverUrl=pi}),t.qZA(),t.TgZ(20,"mat-hint"),t._uU(21,"Service url for boltz server REST APIs, eg. https://localhost:9003"),t.qZA(),t.YNc(22,rr,2,0,"mat-error",11),t.YNc(23,ua,2,0,"mat-error",11),t.qZA(),t.TgZ(24,"mat-form-field"),t.TgZ(25,"input",12),t.NdJ("ngModelChange",function(pi){return Oe.macaroonPath=pi}),t.qZA(),t.TgZ(26,"mat-hint"),t._uU(27,"Path for the folder containing boltz 'admin.macaroon', eg. D:\\\\xyz\\\\AppData\\\\Boltz\\\\testnet"),t.qZA(),t.YNc(28,la,2,0,"mat-error",11),t.qZA(),t.qZA(),t.qZA(),t.TgZ(29,"div",13),t.TgZ(30,"button",14),t.NdJ("click",function(){return Oe.onReset()}),t._uU(31,"Reset"),t.qZA(),t.TgZ(32,"button",15),t.NdJ("click",function(){return Oe.onUpdateService()}),t._uU(33,"Update"),t.qZA(),t.qZA(),t.qZA()),2&z){const _t=t.MAs(19);t.xp6(2),t.Q6J("icon",Oe.faInfoCircle),t.xp6(13),t.Q6J("ngModel",Oe.enableBoltz),t.xp6(3),t.Q6J("ngModel",Oe.serverUrl)("required",Oe.enableBoltz)("disabled",!Oe.enableBoltz),t.xp6(4),t.Q6J("ngIf",(!Oe.serverUrl||""===Oe.serverUrl.trim())&&Oe.enableBoltz),t.xp6(1),t.Q6J("ngIf",(null==_t||null==_t.errors?null:_t.errors.invalid)&&Oe.enableBoltz),t.xp6(2),t.Q6J("ngModel",Oe.macaroonPath)("required",Oe.enableBoltz)("disabled",!Oe.enableBoltz),t.xp6(3),t.Q6J("ngIf",!Oe.macaroonPath&&Oe.enableBoltz)}},directives:[b.xw,b.yH,le.$V,J.BN,We._Y,We.JL,We.F,b.Wh,Wi.Rr,Ve.h,We.JJ,We.On,yt.KE,st.Nt,We.Fj,We.Q7,yt.bx,te.O5,ue.lW,yt.TO],styles:["h4[_ngcontent-%COMP%]{word-break:break-word}"]}),$})(),Ra=(()=>{class ${constructor(z,Oe){this.store=z,this.router=Oe,this.faLayerGroup=x.Krp,this.showLnConfig=!1,this.showBitcoind=!1,this.lnImplementationStr="",this.links=[{link:"layout",name:"Layout"},{link:"auth",name:"Authentication"},{link:"lnconfig",name:this.lnImplementationStr},{link:"bconfig",name:"BitcoinD Config"}],this.activeLink="",this.unSubs=[new o.x,new o.x,new o.x]}ngOnInit(){const z=this.links.find(Oe=>this.router.url.includes(Oe.link));this.activeLink=z?z.link:this.links[0].link,this.router.events.pipe((0,y.R)(this.unSubs[0]),(0,ne.h)(Oe=>Oe instanceof I.Av)).subscribe(Oe=>{const _t=this.links.find(pi=>Oe.urlAfterRedirects.includes(pi.link));this.activeLink=_t?_t.link:this.links[0].link}),this.store.select(r.dT).pipe((0,y.R)(this.unSubs[1])).subscribe(Oe=>{switch(this.showLnConfig=!1,this.showBitcoind=!1,this.selNode=Oe,this.selNode.lnImplementation.toUpperCase()){case"CLT":this.lnImplementationStr="C-Lightning Config";break;case"ECL":this.lnImplementationStr="Eclair Config";break;default:this.lnImplementationStr="LND Config"}this.selNode.authentication&&this.selNode.authentication.configPath&&""!==this.selNode.authentication.configPath.trim()&&(this.links[2].name=this.lnImplementationStr,this.showLnConfig=!0),this.selNode.settings&&this.selNode.settings.bitcoindConfigPath&&""!==this.selNode.settings.bitcoindConfigPath.trim()&&(this.showBitcoind=!0)})}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(C.yh),t.Y36(I.F0))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-services"]],decls:1,vars:0,template:function(z,Oe){1&z&&t._UZ(0,"router-outlet")},directives:[I.lC],styles:[""]}),$})();var Pa=m(8213),Zr=m(9107),Qr=m(6087),Cr=m(4847),_n=m(2075),Kn=m(5899);function Dr($,Ze){1&$&&t._UZ(0,"mat-progress-bar",34)}function Jr($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," Initiation Time "),t.qZA())}function Ga($,Ze){if(1&$&&(t.TgZ(0,"td",36),t._uU(1),t.ALo(2,"date"),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(1),t.Oqu(t.xi3(2,1,z.initiation_time/1e6,"dd/MMM/YYYY HH:mm"))}}function Rr($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," Last Update Time "),t.qZA())}function Na($,Ze){if(1&$&&(t.TgZ(0,"td",36),t._uU(1),t.ALo(2,"date"),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(1),t.Oqu(t.xi3(2,1,z.last_update_time/1e6,"dd/MMM/YYYY HH:mm"))}}function Ca($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," ID "),t.qZA())}function Vr($,Ze){if(1&$&&(t.TgZ(0,"td",36),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(1),t.Oqu(z.id)}}function er($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," ID (Bytes) "),t.qZA())}function Fa($,Ze){if(1&$&&(t.TgZ(0,"td",36),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(1),t.Oqu(z.id_bytes)}}function dr($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," State "),t.qZA())}function ia($,Ze){if(1&$&&(t.TgZ(0,"td",36),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit,Oe=t.oxw();t.xp6(1),t.Oqu(Oe.LoopStateEnum[z.state])}}function Sa($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," HTLC Address "),t.qZA())}function Pr($,Ze){if(1&$&&(t.TgZ(0,"td",36),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(1),t.Oqu(z.htlc_address)}}function na($,Ze){1&$&&(t.TgZ(0,"th",37),t._uU(1," Amount (Sats) "),t.qZA())}function Mr($,Ze){if(1&$&&(t.TgZ(0,"td",36),t.TgZ(1,"span",38),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,z.amt))}}function ns($,Ze){1&$&&(t.TgZ(0,"th",37),t._uU(1," Cost Server (Sats) "),t.qZA())}function Wa($,Ze){if(1&$&&(t.TgZ(0,"td",36),t.TgZ(1,"span",38),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,z.cost_server))}}function mr($,Ze){1&$&&(t.TgZ(0,"th",37),t._uU(1," Cost Offchain (Sats) "),t.qZA())}function fa($,Ze){if(1&$&&(t.TgZ(0,"td",36),t.TgZ(1,"span",38),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,z.cost_offchain))}}function ra($,Ze){1&$&&(t.TgZ(0,"th",37),t._uU(1," Cost Onchain (Sats) "),t.qZA())}function pa($,Ze){if(1&$&&(t.TgZ(0,"td",36),t.TgZ(1,"span",38),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.hij(" ",t.lcZ(3,1,null==z?null:z.cost_onchain)," ")}}function Zn($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"th",39),t.TgZ(1,"div",40),t.TgZ(2,"mat-select",41),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",42),t.NdJ("click",function(){return t.CHM(z),t.oxw().onDownloadCSV()}),t._uU(5,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function rs($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"td",43),t.TgZ(1,"button",44),t.NdJ("click",function(_t){const On=t.CHM(z).$implicit;return t.oxw().onSwapClick(On,_t)}),t._uU(2,"View Info"),t.qZA(),t.qZA()}}function Ya($,Ze){if(1&$&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&$){const z=t.oxw(2);t.xp6(1),t.Oqu(z.emptyTableMessage)}}function Xe($,Ze){if(1&$&&(t.TgZ(0,"td",45),t.YNc(1,Ya,2,1,"p",46),t.qZA()),2&$){const z=t.oxw();t.xp6(1),t.Q6J("ngIf",!(null!=z.listSwaps&&z.listSwaps.data)||(null==z.listSwaps||null==z.listSwaps.data?null:z.listSwaps.data.length)<1)}}const ye=function($){return{"display-none":$}};function Q($,Ze){if(1&$&&t._UZ(0,"tr",47),2&$){const z=t.oxw();t.Q6J("ngClass",t.VKq(1,ye,(null==z.listSwaps?null:z.listSwaps.data)&&(null==z.listSwaps||null==z.listSwaps.data?null:z.listSwaps.data.length)>0))}}function ae($,Ze){1&$&&t._UZ(0,"tr",48)}function Qe($,Ze){1&$&&t._UZ(0,"tr",49)}const Yt=function($){return{"overflow-auto error-border":$,"overflow-auto":!0}},mi=function(){return["no_swap"]};let Ct=(()=>{class ${constructor(z,Oe,_t,pi){this.logger=z,this.commonService=Oe,this.store=_t,this.loopService=pi,this.selectedSwapType=j.$I.LOOP_OUT,this.swapsData=[],this.flgLoading=[!0],this.emptyTableMessage="No swaps available.",this.LoopStateEnum=j.Fq,this.faHistory=x.qO$,this.swapCaption="Loop Out",this.displayedColumns=[],this.selFilter="",this.flgSticky=!1,this.pageSize=j.IV,this.pageSizeOptions=j.TJ,this.screenSize="",this.screenSizeEnum=j.cu,this.unSubs=[new o.x,new o.x,new o.x],this.screenSize=this.commonService.getScreenSize(),this.screenSize===j.cu.XS||this.screenSize===j.cu.SM?(this.flgSticky=!1,this.displayedColumns=["state","amt","actions"]):this.screenSize===j.cu.MD?(this.flgSticky=!1,this.displayedColumns=["state","initiation_time","amt","actions"]):(this.flgSticky=!0,this.displayedColumns=["state","initiation_time","amt","cost_server","cost_offchain","cost_onchain","actions"])}ngAfterViewInit(){this.swapsData&&this.swapsData.length>0&&this.loadSwapsTable(this.swapsData)}ngOnChanges(z){this.swapCaption=this.selectedSwapType===j.$I.LOOP_IN?"Loop In":"Loop Out",this.loadSwapsTable(this.swapsData)}applyFilter(){this.listSwaps.filter=this.selFilter.trim().toLowerCase()}onSwapClick(z,Oe){this.loopService.getSwap(z.id_bytes.replace(/\//g,"_").replace(/\+/g,"-")).pipe((0,y.R)(this.unSubs[2])).subscribe(_t=>{this.store.dispatch((0,we.qR)({payload:{data:{type:j.n_.INFORMATION,alertTitle:this.swapCaption+" Status",message:[[{key:"state",value:j.Fq[_t.state],title:"Status",width:50,type:j.Gi.STRING},{key:"amt",value:_t.amt,title:"Amount (Sats)",width:50,type:j.Gi.NUMBER}],[{key:"initiation_time",value:_t.initiation_time/1e9,title:"Initiation Time",width:50,type:j.Gi.DATE_TIME},{key:"last_update_time",value:_t.last_update_time/1e9,title:"Last Update Time",width:50,type:j.Gi.DATE_TIME}],[{key:"cost_server",value:_t.cost_server,title:"Server Cost (Sats)",width:33,type:j.Gi.NUMBER},{key:"cost_offchain",value:_t.cost_offchain,title:"Offchain Cost (Sats)",width:33,type:j.Gi.NUMBER},{key:"cost_onchain",value:_t.cost_onchain,title:"Onchain Cost (Sats)",width:34,type:j.Gi.NUMBER}],[{key:"id_bytes",value:_t.id_bytes,title:"ID",width:100,type:j.Gi.STRING}],[{key:"htlc_address",value:_t.htlc_address,title:"HTLC Address",width:100,type:j.Gi.STRING}]],openedBy:"SWAP"}}}))})}loadSwapsTable(z){this.listSwaps=new _n.by([...z]),this.listSwaps.sort=this.sort,this.listSwaps.sortingDataAccessor=(Oe,_t)=>Oe[_t]&&isNaN(Oe[_t])?Oe[_t].toLocaleLowerCase():Oe[_t]?+Oe[_t]:null,this.listSwaps.filterPredicate=(Oe,_t)=>JSON.stringify(Oe).toLowerCase().includes(_t),this.listSwaps.paginator=this.paginator,this.applyFilter(),this.logger.info(this.listSwaps)}onDownloadCSV(){this.listSwaps.data&&this.listSwaps.data.length>0&&this.commonService.downloadFile(this.listSwaps.data,this.selectedSwapType===j.$I.LOOP_IN?"Loop in":"Loop out")}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(Ci.v),t.Y36(C.yh),t.Y36(Zr.W))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-swaps"]],viewQuery:function(z,Oe){if(1&z&&(t.Gf(Cr.YE,5),t.Gf(Qr.NW,5)),2&z){let _t;t.iGM(_t=t.CRH())&&(Oe.sort=_t.first),t.iGM(_t=t.CRH())&&(Oe.paginator=_t.first)}},inputs:{selectedSwapType:"selectedSwapType",swapsData:"swapsData",flgLoading:"flgLoading",emptyTableMessage:"emptyTableMessage"},features:[t._Bn([{provide:Qr.ye,useValue:(0,j.pt)("Swaps")}]),t.TTD],decls:52,vars:16,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",1,"card-content-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","fxFlex","100",1,"page-sub-title-container","w-100"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start center",1,"w-100"],["fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","initiation_time"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","last_update_time"],["matColumnDef","id"],["matColumnDef","id_bytes"],["matColumnDef","state"],["matColumnDef","htlc_address"],["matColumnDef","amt"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","cost_server"],["matColumnDef","cost_offchain"],["matColumnDef","cost_onchain"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_swap"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"div",2),t._UZ(3,"fa-icon",3),t.TgZ(4,"span",4),t._uU(5),t.qZA(),t.qZA(),t.TgZ(6,"mat-form-field",5),t.TgZ(7,"input",6),t.NdJ("keyup",function(){return Oe.applyFilter()})("ngModelChange",function(pi){return Oe.selFilter=pi}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"div",7),t.TgZ(9,"div",8),t.YNc(10,Dr,1,0,"mat-progress-bar",9),t.TgZ(11,"table",10,11),t.ynx(13,12),t.YNc(14,Jr,2,0,"th",13),t.YNc(15,Ga,3,4,"td",14),t.BQk(),t.ynx(16,15),t.YNc(17,Rr,2,0,"th",13),t.YNc(18,Na,3,4,"td",14),t.BQk(),t.ynx(19,16),t.YNc(20,Ca,2,0,"th",13),t.YNc(21,Vr,2,1,"td",14),t.BQk(),t.ynx(22,17),t.YNc(23,er,2,0,"th",13),t.YNc(24,Fa,2,1,"td",14),t.BQk(),t.ynx(25,18),t.YNc(26,dr,2,0,"th",13),t.YNc(27,ia,2,1,"td",14),t.BQk(),t.ynx(28,19),t.YNc(29,Sa,2,0,"th",13),t.YNc(30,Pr,2,1,"td",14),t.BQk(),t.ynx(31,20),t.YNc(32,na,2,0,"th",21),t.YNc(33,Mr,4,3,"td",14),t.BQk(),t.ynx(34,22),t.YNc(35,ns,2,0,"th",21),t.YNc(36,Wa,4,3,"td",14),t.BQk(),t.ynx(37,23),t.YNc(38,mr,2,0,"th",21),t.YNc(39,fa,4,3,"td",14),t.BQk(),t.ynx(40,24),t.YNc(41,ra,2,0,"th",21),t.YNc(42,pa,4,3,"td",14),t.BQk(),t.ynx(43,25),t.YNc(44,Zn,6,0,"th",26),t.YNc(45,rs,3,0,"td",27),t.BQk(),t.ynx(46,28),t.YNc(47,Xe,2,1,"td",29),t.BQk(),t.YNc(48,Q,1,3,"tr",30),t.YNc(49,ae,1,0,"tr",31),t.YNc(50,Qe,1,0,"tr",32),t.qZA(),t._UZ(51,"mat-paginator",33),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(3),t.Q6J("icon",Oe.faHistory),t.xp6(2),t.hij("",Oe.swapCaption," History"),t.xp6(2),t.Q6J("ngModel",Oe.selFilter),t.xp6(3),t.Q6J("ngIf",!0===Oe.flgLoading[0]),t.xp6(1),t.Q6J("dataSource",Oe.listSwaps)("ngClass",t.VKq(13,Yt,"error"===Oe.flgLoading[0])),t.xp6(37),t.Q6J("matFooterRowDef",t.DdM(15,mi)),t.xp6(1),t.Q6J("matHeaderRowDef",Oe.displayedColumns)("matHeaderRowDefSticky",Oe.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",Oe.displayedColumns),t.xp6(1),t.Q6J("pageSize",Oe.pageSize)("pageSizeOptions",Oe.pageSizeOptions)("showFirstLastButtons",Oe.screenSize!==Oe.screenSizeEnum.XS))},directives:[b.xw,b.yH,b.Wh,J.BN,yt.KE,st.Nt,We.Fj,We.JJ,We.On,le.$V,te.O5,_n.BZ,Cr.YE,te.mk,An.oO,_n.w1,_n.fO,_n.Dz,_n.mD,_n.Ke,_n.as,_n.nj,Qr.NW,Kn.pW,_n.ge,Cr.nU,_n.ev,Ne.gD,Ne.$L,Te.ey,ue.lW,_n.yh,_n.Q2,_n.XQ,_n.Gk],pipes:[te.uU,te.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),$})();const ei=function($){return["../",$]};function bt($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",10),t.NdJ("click",function(){const pi=t.CHM(z).$implicit;return t.oxw().onSelectedIndexChange(pi)}),t._uU(1),t.qZA()}if(2&$){const z=Ze.$implicit,Oe=t.oxw();t.Q6J("active",Oe.activeTab.link===z.link)("routerLink",t.VKq(3,ei,z.link)),t.xp6(1),t.Oqu(z.name)}}let Wt=(()=>{class ${constructor(z,Oe,_t){this.router=z,this.loopService=Oe,this.store=_t,this.faInfinity=x.vqe,this.targetConf=2,this.inAmount=25e4,this.quotes=[],this.LoopTypeEnum=j.$I,this.selectedSwapType=j.$I.LOOP_OUT,this.storedSwaps=[],this.filteredSwaps=[],this.emptyTableMessage="No swap data available.",this.flgLoading=[!0],this.links=[{link:"loopout",name:"Loop Out"},{link:"loopin",name:"Loop In"}],this.activeTab=this.links[0],this.unSubs=[new o.x,new o.x,new o.x,new o.x]}ngOnInit(){this.loopService.listSwaps();const z=this.links.find(Oe=>this.router.url.includes(Oe.link));this.activeTab=z||this.links[0],this.selectedSwapType=z&&"loopin"===z.link?j.$I.LOOP_IN:j.$I.LOOP_OUT,this.router.events.pipe((0,y.R)(this.unSubs[0]),(0,ne.h)(Oe=>Oe instanceof I.Av)).subscribe(Oe=>{const _t=this.links.find(pi=>Oe.urlAfterRedirects.includes(pi.link));this.activeTab=_t||this.links[0],this.selectedSwapType=_t&&"loopin"===_t.link?j.$I.LOOP_IN:j.$I.LOOP_OUT}),this.loopService.swapsChanged.pipe((0,y.R)(this.unSubs[1])).subscribe({next:Oe=>{this.flgLoading[0]=!1,this.storedSwaps=Oe,this.filteredSwaps=this.storedSwaps.filter(_t=>_t.type===this.selectedSwapType)},error:Oe=>{this.flgLoading[0]="error",this.emptyTableMessage=Oe.message?Oe.message:"No loop "+(this.selectedSwapType===j.$I.LOOP_IN?"in":"out")+" available."}})}onSelectedIndexChange(z){this.selectedSwapType="loopin"===z.link?j.$I.LOOP_IN:j.$I.LOOP_OUT,this.filteredSwaps=this.storedSwaps.filter(Oe=>Oe.type===this.selectedSwapType)}onLoop(z){z===j.$I.LOOP_IN?this.loopService.getLoopInTermsAndQuotes(this.targetConf).pipe((0,y.R)(this.unSubs[2])).subscribe(Oe=>{this.store.dispatch((0,we.qR)({payload:{data:{minQuote:Oe[0],maxQuote:Oe[1],direction:z,component:Pa.a}}}))}):this.loopService.getLoopOutTermsAndQuotes(this.targetConf).pipe((0,y.R)(this.unSubs[3])).subscribe(Oe=>{this.store.dispatch((0,we.qR)({payload:{data:{minQuote:Oe[0],maxQuote:Oe[1],direction:z,component:Pa.a}}}))})}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(I.F0),t.Y36(Zr.W),t.Y36(C.yh))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-loop"]],decls:13,vars:7,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start start",1,"padding-gap-x-large","mt-1"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"],["fxLayout","row","fxFlex","100",3,"selectedSwapType","swapsData","flgLoading","emptyTableMessage"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t._UZ(1,"fa-icon",1),t.TgZ(2,"span",2),t._uU(3,"Loop"),t.qZA(),t.qZA(),t.TgZ(4,"div",3),t.TgZ(5,"mat-card"),t.TgZ(6,"mat-card-content",4),t.TgZ(7,"nav",5),t.YNc(8,bt,2,5,"div",6),t.qZA(),t.TgZ(9,"div",7),t.TgZ(10,"button",8),t.NdJ("click",function(){return Oe.onLoop(Oe.selectedSwapType)}),t._uU(11),t.qZA(),t.qZA(),t._UZ(12,"rtl-swaps",9),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(1),t.Q6J("icon",Oe.faInfinity),t.xp6(7),t.Q6J("ngForOf",Oe.links),t.xp6(3),t.hij("Start ",Oe.activeTab.name,""),t.xp6(1),t.Q6J("selectedSwapType",Oe.selectedSwapType)("swapsData",Oe.filteredSwaps)("flgLoading",Oe.flgLoading)("emptyTableMessage",Oe.emptyTableMessage))},directives:[b.xw,b.Wh,J.BN,F.a8,F.dn,B.BU,te.sg,ue.lW,Ct,b.yH,B.Nj,I.rH],styles:[""]}),$})();var xi=m(7772),Hi=m(1135),vn=m(2843),wn=m(262),Qi=m(2340),gr=m(1786);let Fn=(()=>{class ${constructor(z,Oe,_t,pi){this.httpClient=z,this.logger=Oe,this.store=_t,this.commonService=pi,this.swapUrl="",this.swaps={},this.swapsChanged=new Hi.X({}),this.unSubs=[new o.x,new o.x,new o.x]}getSwapsList(){return this.swaps}listSwaps(){this.store.dispatch((0,we.ac)({payload:j.m6.GET_BOLTZ_SWAPS})),this.swapUrl=Qi.T5+Qi.NZ.BOLTZ_API+"/listSwaps",this.httpClient.get(this.swapUrl).pipe((0,y.R)(this.unSubs[0])).subscribe({next:z=>{this.store.dispatch((0,we.uO)({payload:j.m6.GET_BOLTZ_SWAPS})),this.swaps=z,this.swapsChanged.next(this.swaps)},error:z=>this.handleErrorWithAlert(j.m6.GET_BOLTZ_SWAPS,this.swapUrl,z)})}swapInfo(z){return this.swapUrl=Qi.T5+Qi.NZ.BOLTZ_API+"/swapInfo/"+z,this.httpClient.get(this.swapUrl).pipe((0,wn.K)(Oe=>this.handleErrorWithAlert(j.m6.NO_SPINNER,this.swapUrl,Oe)))}serviceInfo(){return this.store.dispatch((0,we.ac)({payload:j.m6.GET_SERVICE_INFO})),this.swapUrl=Qi.T5+Qi.NZ.BOLTZ_API+"/serviceInfo",this.httpClient.get(this.swapUrl).pipe((0,y.R)(this.unSubs[1]),(0,p.U)(z=>(this.store.dispatch((0,we.uO)({payload:j.m6.GET_SERVICE_INFO})),z)),(0,wn.K)(z=>this.handleErrorWithAlert(j.m6.GET_SERVICE_INFO,this.swapUrl,z)))}swapOut(z,Oe){const _t={amount:z,address:Oe};return this.swapUrl=Qi.T5+Qi.NZ.BOLTZ_API+"/createreverseswap",this.httpClient.post(this.swapUrl,_t).pipe((0,wn.K)(pi=>this.handleErrorWithoutAlert("Swap Out for Address: "+Oe,j.m6.NO_SPINNER,pi)))}swapIn(z){const Oe={amount:z};return this.swapUrl=Qi.T5+Qi.NZ.BOLTZ_API+"/createswap",this.httpClient.post(this.swapUrl,Oe).pipe((0,wn.K)(_t=>this.handleErrorWithoutAlert("Swap In for Amount: "+z,j.m6.NO_SPINNER,_t)))}handleErrorWithoutAlert(z,Oe,_t){let pi="";return this.logger.error("ERROR IN: "+z+"\n"+JSON.stringify(_t)),this.store.dispatch((0,we.uO)({payload:Oe})),401===_t.status?(pi="Unauthorized User.",this.logger.info("Redirecting to Login"),this.store.dispatch((0,we.kS)())):503===_t.status?(pi="Unable to Connect to Boltz Server.",this.store.dispatch((0,we.qR)({payload:{data:{type:"ERROR",alertTitle:"Boltz Not Connected",message:{code:_t.status,message:"Unable to Connect to Boltz Server",URL:z},component:gr.H}}}))):pi=this.commonService.extractErrorMessage(_t),(0,vn._)(()=>new Error(pi))}handleErrorWithAlert(z,Oe,_t){let pi="";return 401===_t.status&&(this.logger.info("Redirecting to Login"),this.store.dispatch((0,we.kS)())),this.logger.error(_t),this.store.dispatch((0,we.uO)({payload:z})),401===_t.status?(pi="Unauthorized User.",this.logger.info("Redirecting to Login"),this.store.dispatch((0,we.kS)())):503===_t.status?(pi="Unable to Connect to Boltz Server.",this.store.dispatch((0,we.qR)({payload:{data:{type:"ERROR",alertTitle:"Boltz Not Connected",message:{code:_t.status,message:"Unable to Connect to Boltz Server",URL:Oe},component:gr.H}}}))):(pi=this.commonService.extractErrorMessage(_t),this.store.dispatch((0,we.qR)({payload:{data:{type:j.n_.ERROR,alertTitle:"ERROR",message:{code:_t.error&&_t.error.error&&_t.error.error.code?_t.error.error.code:_t.error&&_t.error.code?_t.error.code:_t.code?_t.code:_t.status,message:pi,URL:Oe},component:gr.H}}}))),(0,vn._)(()=>new Error(pi))}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.LFG(M.eN),t.LFG(Ae.mQ),t.LFG(C.yh),t.LFG(Ci.v))},$.\u0275prov=t.Yz7({token:$,factory:$.\u0275fac}),$})();var Gn=m(1125);let ma=(()=>{class ${constructor(){this.serviceInfo={},this.direction=j.hc.SWAP_OUT,this.swapTypeEnum=j.hc}}return $.\u0275fac=function(z){return new(z||$)},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-boltz-service-info"]],inputs:{serviceInfo:"serviceInfo",direction:"direction"},decls:33,vars:13,consts:[["fxFlex","100",1,"flat-expansion-panel","mb-1",3,"expanded"],["fxLayoutAlign","start center","fxFlex","100"],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"foreground-secondary-text"],[1,"w-100","my-1"]],template:function(z,Oe){1&z&&(t.TgZ(0,"mat-expansion-panel",0),t.TgZ(1,"mat-expansion-panel-header"),t.TgZ(2,"mat-panel-title"),t.TgZ(3,"span",1),t._uU(4,"Service Information"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(5,"div",2),t.TgZ(6,"div",3),t.TgZ(7,"div",4),t.TgZ(8,"h4",5),t._uU(9,"Minimum Amount (Sats)"),t.qZA(),t.TgZ(10,"span",6),t._uU(11),t.ALo(12,"number"),t.qZA(),t.qZA(),t.TgZ(13,"div",4),t.TgZ(14,"h4",5),t._uU(15,"Maximum Amount (Sats)"),t.qZA(),t.TgZ(16,"span",6),t._uU(17),t.ALo(18,"number"),t.qZA(),t.qZA(),t.qZA(),t._UZ(19,"mat-divider",7),t.TgZ(20,"div",3),t.TgZ(21,"div",4),t.TgZ(22,"h4",5),t._uU(23,"Fee Percentage"),t.qZA(),t.TgZ(24,"span",6),t._uU(25),t.ALo(26,"number"),t.qZA(),t.qZA(),t.TgZ(27,"div",4),t.TgZ(28,"h4",5),t._uU(29,"Miner Fee (Sats)"),t.qZA(),t.TgZ(30,"span",6),t._uU(31),t.ALo(32,"number"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.Q6J("expanded",!0),t.xp6(11),t.Oqu(t.lcZ(12,5,null==Oe.serviceInfo||null==Oe.serviceInfo.limits?null:Oe.serviceInfo.limits.minimal)),t.xp6(6),t.Oqu(t.lcZ(18,7,null==Oe.serviceInfo||null==Oe.serviceInfo.limits?null:Oe.serviceInfo.limits.maximal)),t.xp6(8),t.Oqu(t.lcZ(26,9,null==Oe.serviceInfo||null==Oe.serviceInfo.fees?null:Oe.serviceInfo.fees.percentage)),t.xp6(6),t.Oqu(t.lcZ(32,11,Oe.direction===Oe.swapTypeEnum.SWAP_OUT?null==Oe.serviceInfo||null==Oe.serviceInfo.fees||null==Oe.serviceInfo.fees.miner?null:Oe.serviceInfo.fees.miner.reverse:null==Oe.serviceInfo||null==Oe.serviceInfo.fees||null==Oe.serviceInfo.fees.miner?null:Oe.serviceInfo.fees.miner.normal)))},directives:[Gn.ib,b.yH,Gn.yz,Gn.yK,b.Wh,b.xw,Be.d],pipes:[te.JJ],styles:[""]}),$})();var Lr=m(5245);function us($,Ze){1&$&&t.GkF(0)}function ja($,Ze){if(1&$&&(t.TgZ(0,"div",4),t.TgZ(1,"span",5),t._uU(2),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.xp6(2),t.Oqu(null!=z.swapStatus&&z.swapStatus.error?null==z.swapStatus?null:z.swapStatus.error:"Unknown Error.")}}function ki($,Ze){if(1&$&&(t.TgZ(0,"div",4),t.TgZ(1,"div",6),t.TgZ(2,"div",7),t.TgZ(3,"h4",8),t._uU(4,"ID"),t.qZA(),t.TgZ(5,"span",5),t._uU(6),t.qZA(),t.qZA(),t.TgZ(7,"div",7),t.TgZ(8,"h4",8),t._uU(9,"Routing Fee (mSats)"),t.qZA(),t.TgZ(10,"span",5),t._uU(11),t.ALo(12,"number"),t.qZA(),t.qZA(),t.qZA(),t._UZ(13,"mat-divider",9),t.TgZ(14,"div",6),t.TgZ(15,"div",7),t.TgZ(16,"h4",8),t._uU(17,"Claim Transaction ID"),t.qZA(),t.TgZ(18,"span",5),t._uU(19),t.qZA(),t.qZA(),t.TgZ(20,"div",7),t.TgZ(21,"h4",8),t._uU(22,"Lockup Address"),t.qZA(),t.TgZ(23,"span",5),t._uU(24),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.xp6(6),t.Oqu(null==z.swapStatus?null:z.swapStatus.id),t.xp6(5),t.Oqu(t.lcZ(12,4,null==z.swapStatus?null:z.swapStatus.routingFeeMilliSat)),t.xp6(8),t.Oqu(null==z.swapStatus?null:z.swapStatus.claimTransactionId),t.xp6(5),t.Oqu(null==z.swapStatus?null:z.swapStatus.lockupAddress)}}function Nn($,Ze){if(1&$&&(t.TgZ(0,"div",4),t.TgZ(1,"div",6),t.TgZ(2,"div",7),t.TgZ(3,"h4",8),t._uU(4,"ID"),t.qZA(),t.TgZ(5,"span",5),t._uU(6),t.qZA(),t.qZA(),t.TgZ(7,"div",7),t.TgZ(8,"h4",8),t._uU(9,"Expected Amount (Sats)"),t.qZA(),t.TgZ(10,"span",5),t._uU(11),t.ALo(12,"number"),t.qZA(),t.qZA(),t.qZA(),t._UZ(13,"mat-divider",9),t.TgZ(14,"div",6),t.TgZ(15,"div",10),t.TgZ(16,"h4",8),t._uU(17,"Address"),t.qZA(),t.TgZ(18,"span",5),t._uU(19),t.qZA(),t.qZA(),t.qZA(),t._UZ(20,"mat-divider",9),t.TgZ(21,"div",6),t.TgZ(22,"div",10),t.TgZ(23,"h4",8),t._uU(24,"BIP 21"),t.qZA(),t.TgZ(25,"span",5),t._uU(26),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.xp6(6),t.Oqu(null==z.swapStatus?null:z.swapStatus.id),t.xp6(5),t.Oqu(t.lcZ(12,4,null==z.swapStatus?null:z.swapStatus.expectedAmount)),t.xp6(8),t.Oqu(null==z.swapStatus?null:z.swapStatus.address),t.xp6(7),t.Oqu(null==z.swapStatus?null:z.swapStatus.bip21)}}let fs=(()=>{class ${constructor(){this.swapStatus=null,this.direction=j.hc.SWAP_OUT,this.swapTypeEnum=j.hc}}return $.\u0275fac=function(z){return new(z||$)},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-boltz-swap-status"]],inputs:{swapStatus:"swapStatus",direction:"direction"},decls:7,vars:1,consts:[[4,"ngTemplateOutlet"],["swapFailedBlock",""],["swapOutBlock",""],["swapInBlock",""],["fxLayout","column"],[1,"foreground-secondary-text"],["fxLayout","row"],["fxFlex","50"],["fxLayoutAlign","start",1,"font-bold-500"],[1,"w-100","my-1"],["fxFlex","100"]],template:function(z,Oe){if(1&z&&(t.YNc(0,us,1,0,"ng-container",0),t.YNc(1,ja,3,1,"ng-template",null,1,t.W1O),t.YNc(3,ki,25,6,"ng-template",null,2,t.W1O),t.YNc(5,Nn,27,6,"ng-template",null,3,t.W1O)),2&z){const _t=t.MAs(2),pi=t.MAs(4),On=t.MAs(6);t.Q6J("ngTemplateOutlet",null!=Oe.swapStatus&&Oe.swapStatus.error?_t:Oe.direction===Oe.swapTypeEnum.SWAP_OUT?pi:On)}},directives:[te.tP,b.xw,b.yH,b.Wh,Be.d],pipes:[te.JJ],styles:[""]}),$})();var cr=m(113);function Ys($,Ze){1&$&&t.GkF(0)}const as=function($,Ze){return{"small-svg":$,"large-svg":Ze}};function xt($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",7),t._UZ(2,"path",8),t._UZ(3,"path",9),t._UZ(4,"path",10),t._UZ(5,"path",11),t._UZ(6,"path",12),t._UZ(7,"path",13),t._UZ(8,"path",14),t._UZ(9,"path",15),t._UZ(10,"path",16),t._UZ(11,"path",17),t.qZA(),t.kcU(),t.TgZ(12,"div",18),t.TgZ(13,"mat-card-title"),t._uU(14,"Boltz Reverse Submarine Swap explained."),t.qZA(),t.qZA(),t.TgZ(15,"div",19),t.TgZ(16,"mat-card-subtitle",20),t._uU(17," Boltz is a privacy-first account free exchange and a Lightning Service Provider. By doing a Reverse Submarine Swap on Boltz, you can swap your Lightning Bitcoin for on-chain Bitcoin. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,as,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}function re($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",21),t.TgZ(2,"g",22),t._UZ(3,"path",23),t._UZ(4,"path",24),t._UZ(5,"path",25),t._UZ(6,"path",26),t._UZ(7,"path",27),t._UZ(8,"path",28),t.qZA(),t._UZ(9,"path",29),t.TgZ(10,"defs"),t.TgZ(11,"clipPath",30),t._UZ(12,"rect",31),t.qZA(),t.qZA(),t.qZA(),t.kcU(),t.TgZ(13,"div",18),t.TgZ(14,"mat-card-title"),t._uU(15,"Step 1: Deciding to Reverse Submarine Swap"),t.qZA(),t.qZA(),t.TgZ(16,"div",19),t.TgZ(17,"mat-card-subtitle",20),t._uU(18," You have one or more channels that are running low on inbound capacity or you want to move some of your Lightning Bitcoin to your onchain wallet. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,as,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}function pe($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",32),t._UZ(2,"path",33),t._UZ(3,"path",34),t._UZ(4,"path",35),t._UZ(5,"path",36),t._UZ(6,"path",37),t._UZ(7,"circle",38),t._UZ(8,"rect",39),t.TgZ(9,"defs"),t.TgZ(10,"pattern",40),t._UZ(11,"use",41),t.qZA(),t._UZ(12,"image",42),t.qZA(),t.qZA(),t.kcU(),t.TgZ(13,"div",18),t.TgZ(14,"mat-card-title"),t._uU(15,"Step 2: Paying the Lightning Invoice"),t.qZA(),t.qZA(),t.TgZ(16,"div",19),t.TgZ(17,"mat-card-subtitle",20),t._uU(18," Your Boltz client generates a secret which is sent to Boltz. In return Boltz sends a Lightning invoice based on that secret. Your Lightning node pays that invoice which moves some of your local balance to the other side of the channel. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,as,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}function je($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",43),t.TgZ(2,"g",22),t._UZ(3,"path",44),t._UZ(4,"path",45),t._UZ(5,"path",46),t._UZ(6,"path",47),t._UZ(7,"path",48),t.qZA(),t.TgZ(8,"defs"),t.TgZ(9,"clipPath",30),t._UZ(10,"rect",49),t.qZA(),t.qZA(),t.qZA(),t.kcU(),t.TgZ(11,"div",18),t.TgZ(12,"mat-card-title"),t._uU(13,"Step 3: Receiving the funds on-chain"),t.qZA(),t.qZA(),t.TgZ(14,"div",19),t.TgZ(15,"mat-card-subtitle",20),t._uU(16," In return for paying the invoice, Boltz locks on-chain BTC. Your node claims that onchain BTC to your wallet and by doing that, reveals the secret. With that secret Boltz can settle the Lightning invoice paid by your node. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,as,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}function Mt($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",50),t._UZ(2,"path",51),t._UZ(3,"path",52),t._UZ(4,"path",53),t._UZ(5,"path",54),t._UZ(6,"path",55),t.qZA(),t.kcU(),t.TgZ(7,"div",18),t.TgZ(8,"mat-card-title"),t._uU(9,"Done!"),t.qZA(),t.qZA(),t.TgZ(10,"div",19),t.TgZ(11,"mat-card-subtitle",20),t._uU(12," You have now successfully received your funds in your on-chain wallet and also spent your local balance to increase the inbound capacity of your node - all in a non-custodial manner. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,as,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}let kt=(()=>{class ${constructor(z){this.commonService=z,this.animationDirection="forward",this.stepNumber=1,this.stepNumberChange=new t.vpe,this.screenSize="",this.screenSizeEnum=j.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}onSwipe(z){2===z.direction&&this.stepNumber<5?(this.stepNumber++,this.animationDirection="forward",this.stepNumberChange.emit(this.stepNumber)):4===z.direction&&this.stepNumber>1&&(this.stepNumber--,this.animationDirection="backward",this.stepNumberChange.emit(this.stepNumber))}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ci.v))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-boltz-swapout-info-graphics"]],inputs:{animationDirection:"animationDirection",stepNumber:"stepNumber"},outputs:{stepNumberChange:"stepNumberChange"},decls:11,vars:1,consts:[[4,"ngTemplateOutlet"],["swapStepBlock1",""],["swapStepBlock2",""],["swapStepBlock3",""],["swapStepBlock4",""],["swapStepBlock5",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between center",3,"swipe"],["fxFlex","30","width","368","height","368","viewBox","0 0 368 368","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M306.667 153.333H276L260.667 184L233.797 153.763C229.441 148.861 224.595 144.24 218.529 141.746C212.54 139.284 206.099 138 199.561 138H92C41.19 138 1.52588e-05 179.19 1.52588e-05 230C1.52588e-05 280.81 41.19 322 92 322H199.561C206.099 322 212.54 320.715 218.529 318.254C224.595 315.761 229.441 311.139 233.797 306.237L260.667 276L276 306.667H306.667L291.333 260.667L306.667 230L291.333 199.333L306.667 153.333Z",1,"fill-color-0"],["d","M337.333 122.667H306.667L291.333 153.333L264.464 123.097C260.107 118.194 255.261 113.573 249.195 111.079C243.206 108.618 236.766 107.333 230.228 107.333H122.667C71.8566 107.333 30.6667 148.523 30.6667 199.333C30.6667 250.143 71.8566 291.333 122.667 291.333H230.228C236.766 291.333 243.206 290.048 249.195 287.587C255.261 285.094 260.107 280.473 264.464 275.571L291.333 245.333L306.667 276H337.333L322 230L337.333 199.333L322 168.667L337.333 122.667Z",1,"stroke-color-thicker"],["d","M214.667 245.333C206.198 245.333 199.333 238.468 199.333 230C199.333 221.532 206.198 214.667 214.667 214.667C223.135 214.667 230 221.532 230 230C230 238.468 223.135 245.333 214.667 245.333Z",1,"fill-color-15"],["d","M245.333 214.667C236.865 214.667 230 207.802 230 199.333C230 190.865 236.865 184 245.333 184C253.802 184 260.667 190.865 260.667 199.333C260.667 207.802 253.802 214.667 245.333 214.667Z",1,"stroke-color-thicker"],["d","M138 245.333C129.532 245.333 122.667 238.468 122.667 230C122.667 221.532 129.532 214.667 138 214.667C146.468 214.667 153.333 221.532 153.333 230C153.333 238.468 146.468 245.333 138 245.333Z",1,"fill-color-15"],["d","M168.667 214.667C160.198 214.667 153.333 207.802 153.333 199.333C153.333 190.865 160.198 184 168.667 184C177.135 184 184 190.865 184 199.333C184 207.802 177.135 214.667 168.667 214.667Z",1,"stroke-color-thicker"],["d","M61.3334 245.333C52.865 245.333 46 238.468 46 230C46 221.532 52.865 214.667 61.3334 214.667C69.8017 214.667 76.6667 221.532 76.6667 230C76.6667 238.468 69.8017 245.333 61.3334 245.333Z",1,"fill-color-15"],["d","M92 214.667C83.5316 214.667 76.6666 207.802 76.6666 199.333C76.6666 190.865 83.5316 184 92 184C100.468 184 107.333 190.865 107.333 199.333C107.333 207.802 100.468 214.667 92 214.667Z",1,"stroke-color-thicker"],["d","M239.077 111C241.796 111 244 113.204 244 115.923V126.077C244 128.796 241.796 131 239.077 131H191.923C189.204 131 187 128.796 187 126.077V115.923C187 113.204 189.204 111 191.923 111H239.077Z",1,"fill-color-15"],["d","M184 76.6666V107.333H122.667V76.6666H184Z",1,"stroke-color-thicker"],["fxFlex","20","fxLayoutAlign","center end"],["fxFlex","40"],[1,"font-size-120"],["fxFlex","30","width","383","height","279","viewBox","0 0 383 279","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["clip-path","url(#clip0)"],["d","M267.882 220.417V104.583C267.882 98.2125 263.809 93 258.832 93H114.029C109.051 93 104.978 98.2125 104.978 104.583V220.417C104.978 226.787 109.051 232 114.029 232H258.832C263.809 232 267.882 226.787 267.882 220.417Z",1,"fill-color-0"],["d","M357.75 197.625V81.375C357.75 74.9812 352.069 69.75 345.125 69.75H143.125C136.181 69.75 130.5 74.9812 130.5 81.375V197.625C130.5 204.019 136.181 209.25 143.125 209.25H345.125C352.069 209.25 357.75 204.019 357.75 197.625Z",1,"stroke-color-thin"],["d","M86.3125 186H105.25V139.5H86.3125C82.7775 139.5 80 142.057 80 145.312V180.188C80 183.443 82.7775 186 86.3125 186Z",1,"fill-color-15"],["d","M111.562 162.75H130.5V116.25H111.562C108.027 116.25 105.25 118.807 105.25 122.062V156.938C105.25 160.193 108.027 162.75 111.562 162.75Z",1,"stroke-color-thin"],["d","M205.979 116V150.875",1,"stroke-color-thin"],["d","M205.979 185.634V185.749",1,"stroke-color-thin"],["d","M2.44963 159.45C0.488815 161.41 0.488815 164.59 2.44963 166.55L34.403 198.504C36.3638 200.465 39.5429 200.465 41.5037 198.504C43.4645 196.543 43.4645 193.364 41.5037 191.403L13.1007 163L41.5037 134.597C43.4645 132.636 43.4645 129.457 41.5037 127.496C39.5429 125.535 36.3638 125.535 34.403 127.496L2.44963 159.45ZM65 157.979H6V168.021H65V157.979Z",1,"fill-color-15"],["id","clip0"],["width","303","height","279","transform","matrix(-1 0 0 1 383 0)",1,"fill-color-30"],["fxFlex","30","width","454","height","243","viewBox","0 0 454 243","fill","none","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["d","M141.75 172.125C178.098 172.125 207.562 142.66 207.562 106.312C207.562 69.9653 178.098 40.5 141.75 40.5C105.403 40.5 75.9375 69.9653 75.9375 106.312C75.9375 142.66 105.403 172.125 141.75 172.125Z",1,"fill-color-0"],["d","M121.5 151.875C157.848 151.875 187.312 122.41 187.312 86.0625C187.312 49.7153 157.848 20.25 121.5 20.25C85.1528 20.25 55.6875 49.7153 55.6875 86.0625C55.6875 122.41 85.1528 151.875 121.5 151.875Z",1,"stroke-color-thiner"],["d","M20.25 192.375H222.75",1,"stroke-color-thiner"],["d","M192.375 222.75L222.75 192.375L192.375 162",1,"stroke-color-thiner"],["d","M138.762 67C136.099 73.913 133.436 81.3578 130.24 88.8025C130.24 88.8025 130.24 89.8661 131.305 89.8661H153.143C153.143 89.8661 153.143 90.3979 153.676 90.9296L121.718 126.558C121.185 126.026 121.185 125.495 121.185 124.963L132.371 101.033V98.9062H110V96.7791L137.164 67H138.762Z",1,"fill-color-15"],["cx","371.815","cy","95.815","r","81.815",1,"fill-color-boltz-bk"],["x","317","y","81","width","110.745","height","30.1472","fill","url(#pattern0)"],["id","pattern0","patternContentUnits","objectBoundingBox","width","1","height","1"],[0,"xlink","href","#image0","transform","scale(0.00185185 0.00680272)"],["id","image0","width","540","height","147",0,"xlink","href","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhwAAACTCAYAAADFh8BYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACHKADAAQAAAABAAAAkwAAAABS37hiAABAAElEQVR4Aex9CaAkVXV2VfebfWWG1QWQRYddNgmCO6CiIGrAKC6gUWOIUROz/CYm+OdP/P9f82viEmNUcCFRUVFQlMUIgpIoCgwO2ww7IjLMMMub5b3XXfWf75z7Vd2urn69vK5+/d7Ufa/qnDr33HPPdm/drqquDoNdvMTxhSPBE5vODuL6BUEcHiDumBcE8Y+DYORT4V4fu3YXd09pfumB0gOlB0oPlB7oiwfCvkiZoULiDe9eGtSCH8RxfCJMCOUvlj/AIAyjoBL/abjHJz4+Q80r1S49UHqg9EDpgdIDQ+OBXXbBEW/8i2XB+ParZYHxHDohlrAAB0QJw2AiCOccGu75sXVGKfelB0oPlB4oPVB6oPRALx6o9NJopreJ469Xg4ltX8NiA8sLLDD8xQYWHbrwiOM5QVC7YKbbW+pfeqD0QOmB0gOlB6bbAyPTrcC09P/bH39EbqO8NF1mRKoGbqbYAgRQCkAU47mOspQeKD1QeqD0QOmB0gNT8MAud4UjfvyCt8Rx9D5dbMg9kwT6OK95xHrtY/EU/Fs2LT1QeqD0QOmB0gOlB8QDu9SCI37sghPievyvSeR1QSFHgD7uGPRmSxj8POEvkdIDpQdKD5QeKD1QeqAnD+wyt1TiJ9731Hhi52WytJinFzDy3OUueOitFNTjAkcU3ZDHWtJKD5QeKD3QLw/Ej55/TL0e7tcveamcmqCY5gGDoFqdf0P4lM8+oQflrvTAgD2wSyw45F0b84PHHr9MntvYJ5RbJ/aYqHgat1FwZUNvp7gHRYWEdQdKWAk3BXvt+UM7KvelB0oPlB4oxgMT9VjeAxS9FXMTv56vPeFDDz8IAW2cspLpixdos/XWGIsNm9XiaOeL5eBHspWl9MDAPbBLLDii3zz2OfHs8fCuLDpSJxN3kDUpjP+9Gl64M21QYqUHSg+UHijAA3Gkc5N+IBIcEAVzkbfeUJq/c2z8zJSzAJEljAgJQ85qfusSLz0wWA/M+gVH/Ngf/GW9Hp8Lt+av/jmkwUHcBmclnnMRqGUpPVB6oPRAoR6QVYVe2ZDVgS06bA5Cn/xcZP1z+eEWJBl+tk0WLNl6d6WjUFtK4aUHWnhgVi844t+883T5sPD3/BQAH/i4fFvFDW77WqwNVqMJfke4zydvbuG3klx6oPRA6YH+eUDWF7z6Sgjh7RYQ4PH5iRNm24O/LKUHpssDs/ZbKvGj71glnxX+I4qj1EZ+VAD0ced9DlLAOIi+MF1BKfstPVB6YNfzgLtmwactxAG4HYIrHQZ9HDRsfhvDcaUkLfhQhQJIPK0tsdIDg/VAejIebL+F9hY/+d7lcRxeHkX1pRh8HGxYRigO6AYrIQcpoFwFqVeqI5cUqmQpvPRA6YHSA4kHbE7CIbC0ELcFhtFJw9xmuH5I8hYnkGKbzoCC68yWii2x0gPT4IFZd0sFry2v/+bar8lgOxj+bBi8GIMcf6jDg1T45wNVimuj74d7fvoxwcrSgwfih9940EQU/lleU/mcJS9/CQNAFOKARRR8vsOq2j7npThX2j3rE8by6H+4Qz447qxUgh0y4T8hv/b368pI8Os54fyHy68eFhHNXVAmhok3ZyV4h8MFCxF7ds3GmwnbBf1YmjwUHph1C47oNz/8R3l3xmnwbu5YFWIyVjkGCW1kBtVK9aKhiM4MVaIWB/vIQu8deerb3MlLwRKjzHM0CEXD/CoxsUkziVqDWNYBorAtubP3sPP5PX2kYSiyYiegiZ/6JD3JzTcwY2IP6kFcC4PxeFsw/uCbHpeF7K2ShLdVK+F/VaPFPwr3+5cnG5QvD0oP0AO6IraPR0i9dErKyX+Xm2iKFv7XaN1nKMlhE4z819wELEvpgWn2wKxacNQeeft5UVR7j/68vDhWx5gMPH+sNQw7DEoQ3ODEya8ShhuCffb57jTHZeZ37xYAGRc32WXzoUyaLjCMD6Gd8DFnWpAYLtarQFfXJFwI2t7BpN7jt/7THMntT/iT/og7GWqf4C6FbLGCjuJoTyGeJvTT5FtSQT3cUh974I03i6Dvz60El4RP/8q6RJ8SKT2AS26SLMwzwtx8FFbWq+NcLuY5MTf/8xhLWumBAXhg1iw44kfeeWI9qH/GX+0nZwF3NsAgBcrBqrjsXLW6Wz5oXCLv3hgfgO/LLsQDmBAREYNwSWOU9EhY0phlPtGhrfxxkWnS/JhaLSnMD/Ij+CobDbUIopc3SGjUh32lSwxKZvtGflLFzKpwniD9nTBWDy4ce+Dcm8KwctGcfatfDsOLy3e90FG7KIwj3NxDzjXmjx4JGRAlm3/ZfPYl+C2yWWp15b70wGA9wFvZg+21z73FG37/aVFY+5YMxnkNA4srf0DZ9KTmoL/yx2DmgB4JRi7us3q7pDhMjPiz5YBB4IgDIXAthDggDigb/ggVBwtorUqmvbKRJgdsC6h/rg/kAxc9hGgLHkIfV6LsmDfMIfAABzQ8hbRbfRLHJ8pDzZ8de3Di/rEHz/3zeP1bl1BmCXdhDzBXAV1uEiKTUAhzvZRpbw388YK3jpal9MD0eGDGLzji+H0Lajvib0dRvLcORR1wGGCy6XV6B5Nr9jxFpAPXTgloE94ePvUzt0xPKGZnrzx5Jyd0cb/S3BlaoyE7d6gIaQ1n8xbuwW0wFP32keISTQc1B6xW9z3tMhO46iY06qtZg/7dhj6As7S3P95beP7PxLaxdeMPveE8wbULti/hruEB5hMSSxMgIYj9Ssj3Q+H5n99tSS090JMHZvyCo/7o5s/LGeZYWN80ucuJR2k4AelJCEx2gsrjr5Tv3oBbBlqyMcOxv8mBi6Gcxj2cPFCWMlRxf2HpP6AhbdG+adOn7IQO6OPk9WUIrn05SB182KSPKtV6R93lfTF7RvX4op0PnnvD2P2vX9W6RVkzGz0gjx5rbvm5pLnh5Txy16cxdwjVL8hXFEBsyGNC4OUFDvNPuZ8WD8zoZzgmHnnrB+Iofr0MIy0YajIkGz4QuOGn9awDRPH55WnuWmVk7r9rRbnrgwfMx00+F7LSGDT0hInQFcaLEEHSJ+4dgXRChFLnWIqgLELI9XF21ClkW8K28hJFtIeu7Y/jk8Tmn8szHu+ct/8lZT52GqdZwse8Jpz2/J9mv8oPb86dePjeI+WL7cfJkuy4MIqPkxl+N3m4/6Nz97vkE9OsXtl9lx6YsQuO2iPnv1Im878zeznJY5gCt+GKlT+/Fgk+4vpVMRCkJAM7Dr4b7v2Zx41a7qfqAX7q0ofaEAfGROLDB93QB/FW9RpOMDLEwLPFq2snrzFDbC2iNCdD20+ib7brqcrL01ceWl0s32u5ZOcDb3juvP2e+cdheGF6WS6rQHk8qzxgC1R9ysfsYm4T5lnr1eXlE2nWNJnx8iRNKw3vUBp/5LLDwnrluCiMj5c55LixB+46UsybS8XMVHgpWEZaCWeOB2bkgiP+zfmH1iaiS+TUJbeEkIJuEOklcRxaWloYUtzud+KyOOfv9HQRVoOLjb/c98MDnNZs0YcTu8XBru5iIWi9NF0BEDJpnejB6HtRds1SiuVIvjTqSZjVF6mlujsGAPZJiWyLY+KEWXld2R9HF4w/ePfKOH7Hm8PwsxPsr4Sz0wPMe8JOrGQuptlOjBBSfLwTqcXzyJWLyvgDdz8zrITHy92k4+phdNzYg986WlRdEMn7bDCFcwwRFq9V2UPRHphxC45407t2m9i6/TvimKXpQLIB5c5p3hV0d889Sd2sO62dnATWV58y58psbXncuwe4wMDKwk7Y3rSRg5JkJ2jGLad/O2PLbORaSNBj0oSd32jlo5f8dAeIgogDs8gDEcxrn70KppO/1AOiaI6JAOZa0tbTJ6GhAdqyDxyjONV9lKSs/XL8e2MPbFkon/5eE4bn1LV9uZuVHtC8lFxhDuYayVz18q2b/J+uRzh2PvSWA8OgJrdEouPltTTHyWLjGBlTS+SWuJrJz4jZ/G/ygbPfv0rdxFMShtYDM2rBgUtuEw999+syIg+CR/VkILM3TwbZkws4rPBkYZ+s9QQgFRzYMtC/Un6CdK7qC5BpLT2DGu7O0I0RyelM2ml8kvYIlGyuIdGkWhClJYRG/uzr67M5ArHaXmBPhSsPQhUmUhN9HD4F+yW/zxy7/5v/LPpd0JOOZaPh94DkB/OeUJXOJChzNUkvQZSWEKSVEszkbP4PYsKXH85cOD6++WVRGB4X1oPj5LcFjotrO3eDKSy8xszjBIrundif8JfIjPLAIPKvbw6pP/Ldj8kq4ZTk7KODUXbM5MwtFczx/EBAJTSZeeDgSDjn4gypPJyqB5KYiCDgLSbEpm7YjhCNedkCopSOyZktudx0BAY8+QTo+nbV+DYAlDEIGbgCYTQcEfdvu7EN6pPJvJU91IsQfMBb8UOmX9iO0NkvVv7hzvted9f8A75WPijn+2u24Yw7YZ/zvxYWf41jorbtMHmP2TeR+Dp00+GVjoXEvkwASSdsYX8QcUBl2peHQ+2BGfO12PGH3vzWehS/GycCLBq4cCCEl4m3quc5CNDOSxGucvwyfPrnVg91lGagclgG4E+CkkDgWgjlQHkcNNzxoy02DZqDPs56E6h7Q70+0I+e8B3kHEWYtmqJNenXZI/IVnvQb6q7YVanMsCjfGADr5Um+Z4MyGu0P/jo2MPnHsG2JZw9HojwtVjEe9L4azKnOaH88EGaT0luMd/y8r9wt9WcFaKX6NG//Pftb3mNpHDryg5698CMWHBM/Pr858oPav0LzGw8V3Cg2UA1N5CGcWk4IDYsRAi5OJGnky7q3X1lyzwP4DMU4uSmhwRaNGxatUlS4qECDOby64QlTG4C1biB5jY0T2Kpshp3eGU0ir46Wl8f7XDQrCaBoJh2BrE3nVL90MR01saurcmCPN8GH0ddXn8mK5Xvy1B+z36xc259fOJieeBuRl2ZNE+V+8k8gIk4N1+8+GMMTDX/J9Ohn3WwJdceN8I4YrrJf9/+crnRz2gNTtbQLzjiX5//9Hhi4luRTLZ6QpBBx2RFAioOqDgOdZpWD/JEBJi3SbKPzwmD/1Dmctc3D/hnQ5tQbPLRCUhiQagxwQSE+Lg/rRMc0MeTernKARzP3yTP4IDmYgwjgLOAB4X8yBejudzR2pRfDyfZUTb7Ux2dTdaT6U0RPs3nZXu1qyv7g2N2PHjHeyi/hLPDAziBal57UPMF+epozHvC3vJ/sP7qf/7b+B/6E9dg3TxjehvquMUPv2/BRG3i23I62CvXo9lslsGpoxNQN7TyTybErV72V4RP+9KGXNklsWcP1OQSR3JCdQsBHkMo8NaFdRYjC5/gyaHheqJ2sQWeFuLWwPoSDqeHTt6CA/o46yFK21hzE0uROMrknPIKje3bQYjQNkByCztzCuih7JJDQerBX8aPn704t3lJnOEe0ICLDUnADU8OBdF/GwEwtpv8B3/hRb7A3WocoO8p57/YX17hKDyKhXQw1AuOiejxi+TKxjE6wjCs9ESVnjyyyctEbpXs/gnG4RcV4tVSqJ2Yxcl6gcFB4NkNk6fyCNSJFDHGv1sgZGOMuKEAGm6LhzRHUIscgQyTTYh+iLNeuYWPRXWRA+qJZ4asHZ4dElzqCPP6N6XQMYSYHELK9GFv9se7j28P/5g6l3CWeEBzFjvkGOc7w2mh5VySXkLuLv8pp3BYaP4H8sWXssxEDwxt3MYeOvev5Cvar8OAkvGnG3IYuMvlZOK3B0ndvXr9xoGFonlwWltX+9i8/Q66yvBy33cPuDO6LgLd5MlJ1IcaX/C6KPN2R6tbICpPeCkDehuNFkAWisls5udEnvZJXsBm/kb57AvQx61PdOv6BySPg2zjQ79P4J3aX69H7ymf5Ui8PgsQu6nSafyZQzCceWhOcPnXMv8H5KqC8x8P2ZZl5nlgKBcctYfeeKY8JCqvLc+u3u0k0fFg46ATmP2Th0W/LK+MLv47YjMvJ6ZVY06erWM8repJ540TumlD2tR168L+PcfuX3P61HssJQyTB7qI/zCp3TdddnX7++bIIRU0dAuOsQffclg9ir4it1L0AgUWCmkhDujjKUcDhlU2ilttN8Bg5ItWWe6L8ECrBUO7CaW5nlcSGPMshPbMBYTa8LT/ydsbv/H4uMnM9sV+CJs919x/qpNq2qRfu/rW+ssYOa9Zg5Iykz3QnD+t4285CmvTfGzffjDegR6+LuzVp/l463rKyY5FtijhTPLAUC044offtiKOJy6XRFyCMYRbJYSKi2cJ4WQ/YRVnkmNSx4YlC6F3f0W+3/Czeft9cQ1klKUID9S82152lQrxwWbPQxgELgFSGqCP8zkHcBgfsObSlAPCQlozd/cUpA8KoI8bVWsc6vTXI7PZ0s/wIuwXv7w8jt89L9WlxGa2B9KxMCz536s/kftF53+vupXtps8D/jcYp08L6Rn3o8cevPtSQQ7gkxZ6PpI6QijYiGOSt5dVo86ODOJYCR60AYAHjsKLQS5LgR5wgdJXoQjuXomiHfoxtEWIfa21F200+ljIMDM0yCKJnaAOs7dbLWRzBHXUAf0TB0RpV69M3i7LX6T9ouP8nQ/85kTp/jpPhRKdgR6I8JsiLue6Ub/b/A+C4u8i41cGMeRQisp/ueVuHZT7GeWBoVlwjD14z8fl5Uwv1kz1HvxMVw2WxHZCMB8Tb3VyyEYCfJUwHJtTCb6arSuP++0BmxCw5xpAe+A84aDWSVzc/NS0aGRb1ifChCAn97rE9F91cvMnoITZdQ6pjsYqQsyIirsVEfGkXtpCvkxwc+VHslbIBL+b4PuKxAPzPdZoII4gi9QEcQSt69F+7T+WMVMuONQVM3mHS81IiWy+MHcAtWQJyB1LIq3GMPAOHZ6OLydlAMASPGtP3/J/qK7ND8Cds6SLoVhw7Hjg9b8fx/ULbOZ3IwYObsrWyb0uF+2VgbCpvYxEuUnz7XC/f39yckll7VQ94J//fbw5qE0zqHRNmnFDF4ushxhhYuGB35qWHzSL7z977x1x/WR51Oj8MIjk1oZO+8mHVN9mH++z/dJf+Bz4pyyzxQONkx7znjAZCAlB7PZwveIhBF7xw1xIGjxEetHe8nPex/uV/2H5WypFh7AQ+dO+4Jh48PUny0Oin9Ixg8zEvJ1kKHGcgGSxoO9BkOndXQEBVR6c09OTMigGScZvNG8P3rBysUcp0cI84GZBhsMdWojkwIWIi0NCqOPjWfU4eQIOavLM6oDj8BmXPibgG9jG1r3u8CisfVqutjwvO8HryQC2FmC/SIUfn6mw3M1oD/hf8+w0/2FwNt/YlhB5x1+MHZSD5khHE0x45H0B+T8oW8p++uuBab0wFT/65n0narVvykQ9N1lkJIsNGMpZGpALC4NcUhAqt2uLWyfYdDg6qLLC8NF5+7/6GvCWpWAPmPvTyQaBYrAI81RoDLmETQgqCxDTaAqTSTVPzgBp8w762q/mH3AEbm18QtWznekNW6F/QfZLnu8Xx2fLa//LMis8gFxBAdRNdglszn+d64RBoRsrwJP2efmnHRS3m5DlxqT992H8F6d9KblID0zbgiN+9B0Lx8Z2fkeM25MG6kCRAw6eLAQfeXycfPqWfRlsgNhQCPUgir4UhufUFS93xXqAJ1hMfjrpYRK0iZGQcfMheDXGbA8tgQ95wTtdFh70rT+W50q+1qB/8fZXxu6L9hty95TqtfMAvpDncoUwyftJ8h8PKaMAYsOShBC4jjUHgQ+scPwWn/8DM6nsaOoemLZbKmM7N10st0OebXdQ0oGgg83ZZXUYTEawwSRjCAPIFR8njRBfodXB527ByAOjF7OuhAV7gJMbYsdJR9C8p9Z9TRB/a5LG2J8o8XQ6aob1KfUFixe9bcfW0ZPEjqepXQXbD1/Uw2CZ78OZiss31So7fr36KSPj8cpaVF1UqdQX1aPKokoYLZKoy53UyrZKpbItrkTbqlF129xKsN7d2pqpJjfozbwnTCo5loSQzX8dC0LnaGFbQJRs/QC+pOI6dhqZQqK4kfs1/stfUzF/zrT9tCw4xu4754PyyxRn5wyHBv9xnBGikgMrYfQI5CNUfncgC4+b5h9w6d1JuxIp1APJQpDxSeYf+RQmMeHzF+ADTn7irNeJCm3dhKVt8UlO40rhhZrSlfBw7y9v237vWR+V0+PHtSFVLMR+U60S1WfUD7lJ7MLxB1+zKqoFJ8s8cKRYcYDE/8Dt627ZXwI9b1xzIg7quBYZ1oMIb7FG/MMoqEd1OemGwURcDyaEvm3dq7ZLBt0nGXGfpMS91aB6SzCneuOC/S+9X1rMoIIRkI6FzvLfzGOK2ZGe4QW1AaMf1oSBH9oG5RCOZzHJioM6vvsw/pESZZl5Hhj4gmPs/nPOiuL6h/R8If6yEwcd1zhYSE0hspY8oBK3wdW8gPHrw4tSOSVWrAcmJDIWk8YFgkQIH3Hwn3wN1RYbCb836UJHx65QdUYKqAA9GsrdgiVzPr9jc+0jMunOKdp+nEiiOBz6BceO+16zX1yPXytxf/62ta8+WQK6EsHTE5CLOY79k67WW7pMFv+FMokcLoIOR8bV5S+cqAfb1r7qUfni0I3ybYYfLawE3woPuuxxyBveYiOgW/sRf8ylXFBYe/Oj2srFGs/QHd5E37b2LDyPdHpWftZ/GI7wuw5LxWU8R/V5yXjG4kKEcJ7v1/iX/v5k2z1nnZ/VL6uPKtaooCkLmuqbHoqm/2/RwZd9ymo63+9Yd9YH5TUq56FFUz5n7E+clfTfZv4TmbQJ8hlrQJR+2g957eSDxy/UzamTb381+OeFB377n9BuoAuOsYded3h9vP5l1crXOsGptsF845HA1sAmczjJ+M35ab15TwfEjvlx/PWkmxIp3AOY+FA0JoI3xsybgBwf+cGob5N1DRozAgJtAOrAdXmgHQ3RLtzz0tFt6866WfLyxELtF5t1DFT1GsAQecBUGZWvDlfqE2dLDF8vJ6HfERjKlR8JcZ/i7+y3nHGZQtlh+BRxzjlygjtnexB+cnTtWf8ZVsKvLqzE3wqf8e1NQ+csGQfMe0LoOGn+T26/mcgxQmjUTvZ7ie/kypMUjjngOZOyzr/JeG3UuLD8D4LdRL/d2LdC1dXlltNH5wmlY+dKxhfUuBIGu5GlG1iP4t2lnwPQhvMYIdSQq3iTzH/WE3Xoav5Dfy4e/bBf9Xe+sR8WcfnXQ/x9++WJhhVm5QAXHPEjb165c2z75TLlLOYoglJcEUIhTkSAVhAG4AwH8U7rnZggviw88BubeVTCAXjALQIZOUL0nAyOTtTITnCdtBkCHrH3Z2LoibSbEKr12/5KUNkyBCYnKoze9+qjglr0l2Ft/Gx5TquqNie1/bdfHOpJz6BSJ7VV4TlV7sKcKvdfPiW3YS6uzhn5yPz9vnlfhnv4DjvJ/zb269mOPGGnbxqVSyLiuOycDE9zFlZnUS5hxoOMDCGq+53/7eLfaD8UkM2dQlRtwQEjd9UVOnZdZoH9tNmPVT/in57P8ZbvARS8tnzHztFL5amvZ2D1jinAFhuIPRYdLonxkKfgyuMe9NTVvtORiQqIzXj99ilNebC2NL6LBmBm2UWeBxAkFAY5C1mnTBZ7oK1yQOWwDWW7tsME5OE+u4RPHbN285i2OOWZ753aj/FTCYdjwbHj3lefvG3tmVcGtfqtEsHfk7FXbYoX7Sbsg/3oA37AnyROAoFr/4TgiwK52Bn/QX28ds/oPWf++9h9r8UzJENTeol/N/Z3ZSj85XwH6OPqV8QQhdCOGvesA8zbwE0eQQu3H2dT9AeIDYXQjrrfT3YWpW15tvt1rtdpt9/XSXA/5j6exBJ6s02e5zJ1A7mlsuO+1bh/8yJE1r+iwTgTQl+dNBLFWUMI7YGbFeaA9PIsyBgfqQO0t4fnHXDkfwbBNxOpJTIID1jMONdrXHK61QhJJSCKroalKVfFiDFX2VovdRpiE69thnMXy9tsMUlbOhZpfxTWp/UKx7aHznxKPBZ8rFavndM4Qm08Kq1FvPoS/1bOlcTQ/JHc0rmCiSK6SGRw5eX1ovPrtq494zOLR6p/NQy3WnrK/y7sryVXj+mMfKiPfIhcxs5Gp/DqtXY40CiYr/EQL+dt5Rc28kM1pQ1Z/Gm15h9sSDRmTRdQLwaZgTPd/ux4YewYz57i7105mmxt1oXHW7PKvex3iBF/iISEMQlEJuLfQeBaCPNEuqse+Jiim3pDcEDFPQg5wiep9EV5R4KOnzyRJa1YDzBRGaIsRD5Y6Cw3JCGEoomB5LBpwEHjS0M9WaoUa1V76TKvLwQXdEbJ2s3jqdoPOfNrizZqJwPeyQvHqqNrz3hvtCO4S8bxOXndD8J+5AH9KUnjfK4TgFMpzZSsPvKJsiLz4R9uq0V37Vh75hvzbBgELdY7/aJnl/kPe7qxf6qfMHW+Rp/QUzYUQj3I7LL+ZpwI+5H/3dif1QfeM5rZklG/w8PWp5dsf7SbcLjspw8Im81nrLuNPyUVuuCQJ9OfL6vfT7IzLq4BsamzHQSeHWzgAE0hcC2E7tAHXEkBygbO6rzqF32WEh+MB1olZDZhJfw6YQH6ONtnIXLBZCC6k+TCYMxs2YvcPlzp20pGnwbct9nHUZe3Ze2XNr8OD75k4Fc4tq99zdO2rxu7UULwsTCMl0D3PP1hN232cdrmt/Fx1mdh1n7I9POAfbGdL1NxUZgQM4TyAUbRXrUo+rIsoC6P7z9ruckd3B46+bpS/yycqv2dPsFBy+EjFPWV7P15W+dxqUsg+LycBo5C6OO0y7fZx1mfhVO1H3ZoP7QI4wx/0HUKz15DZp7+vs0+Trv8Nj7O+iws0n71gShJqPqKbwjVd6IkYRJ3oUH3PP3R1ndrYQsOfA0uqsffkN8ImCMWwAozxEEY5SuouJhCCKPU2YSQIaXBGe6KB+576b0v7QZXP8AoD6iEwQ3zn37pOm1Y7qbFA4yXxjInhk1KIQFQAGVDUhMqjkPyCD6sJY7CQ6Fb0faLS28ftA+2rjvjxVEw8UuxTb554sYlxqmHU6fi7Xf9iyP8vti/TQY4sknBUsfmGaYRobaJ4zNGJ+o364OvqZDBYVQGULZ2+e/b7OOpwuYf2t/pFY6K+As3SvBPqC6EYIpU1A4s+inO/n2dfJz1TbBg+038JPFvUqgzwmyxX2MtJgMy7oRJ3HuIP71YyIIjfuxNi6J69B25TLgHAtwyGM4C1pMX0BIjhaYwLQX0cVebWYDI9/AvtppyP1APTMjnqFZB9AMruC4UHbRFo2QD4ojFiZ5ERHMHQSLO+oHa1WFnMrHKLeH4eblJ3G/7w3CgC47Re854v1w8vFq+3rqHnkA0NhYrjQnsQ6AAfVvpO58meF/ir4lhHXAxCohNVXEQOHROIRLKaNba4XF8YFCbuElsfQPpRUP4gXlPCEWhK6GPa4USrJ76tbO/0ysc+IFMja/6Lo2nT5uN8acfu4aIBTbxVwKBoxD6OGiyDWX+i2o2Tswextz0TWkdx99bZXgovDH1IkqE27du/aIMlaPgeFHPApAzODQwXr1vgI8rnycLMimXUHm8GUa+c7994dLdLoX4skynBzRCooCLmuaB4IB5OdFWVY5eN2Lb8g+eYdu6M0+VXt13z4u2P75lUBbKw5V/LxPkR+T2gzxw6eKpndPGPE1Y5/j7Hn/IRS6YfJ03BAf0cdabhtTJNQXRTyfBpe0CuRj8lW33vOId1mZY9lAUhQr3Yr9J6Gjvj1E/drMx/j2fDb18anIq6wBl833o+7apXStCP+JPnaSPrDh0SxpwX0df967jD2EFfC12+7pX/Y1MSq9tUNT6EuXdwzX6CdbDWU9DAX2c9WokDlzwlO45r8E5wTfCPb6wNWlaIoP1AGLhx8P17pagEkH7A5m0fAUZX4s5Hq6zFngg2OVQfsPpo8bx/1DbC7ZfrqLUFy2Yf9UgDB295xUfkZuxH2CsWsbPt9nHnZJt2zcZ0z7+k+WBLTqQitKz04dQu/J19HGplEM8DfaZrXe/8o+a1BoYof/2T0X1tvHzfejjrtO27ZuU67/9LePf43RCDVV132Yfnwn25+ibDUfb+PkyiHsPcfS8pssqguPt9575GgF/C6VMsRSmpxXWmAQ/WEwEQMNTqO3VAKMpD3oBb9Jf2os8en6x9VDup9MDFkdM3hYrrCOBp2tKwxE526CtnxU4Tgu/vgZIPK2dfmzb2jPeJva9kJoUbP8N4dMvLfwbKlvufsVHxY73Iy7mc4P0PyFt9mHB9ktXqU5p3rTOH1+3PDyrrxzLK1WiTxS/6Og1//trf+ITOfmaL2zcmm/TvhBzxp0waeshWX/2f/ynOvUj/p7qHaP8bJzXYKbZn9UXPmUeALdYG2TcCSezn3WdPkNE/pZw9L4zj4xr8ZfkzYLyVfI0BCkmTbFg4G0PHFr28SvdYoyapxAdYQgaDUcp3iDTqnSP+2H2Pfb4gfkHXn5depnEYyrRgXiAiWvhlgT1gubjWWXQjm2ydTi2OoN59dNJ27H2jBfUorr+FgNSHYW2+Db7uHGl++7sD7+dtiwG23L3K98eBtGf0h4blejLDMzGIzPEC7ZftMjNF+d80TLr/3z+1HfN/My1+OOjd52+bvGqK3+Qcvcf60w/6tS9/fi1mY6KfBTF5Z1sPBl3wtkU/17fNKoX7uEsKVl/ZfMJPKC1KkXHvzP56XydtYdxJ+wk/r6tfbnCET/6+t3ljbnfkcXGIpzwYZRubnUkR/qHjoGlhTigtSFEe0SPEDjqEpjHDw600XdvuAxIOyuxAXlgQvpBIloypgsIjY2LaSvcbwMcMSfU+KsNyIXhKqP3nP4eeYnUNaLVPNgGnX1bWtmbpfttaDehb7/QxoKRyleL9MKOe05/fiWIdAEFHagHIfSB/oS0mxB8xAE72fw27IfQt59288MNoOHwPRKHeoETfUMXxsQg5RLmy2dPcTWuBF/ded+ZzyKlnzCSy86+r6AT9SLM1w+2grcz+7vV2fpu7S/obP61+IKfdvh4J7FnO0Lre/Lxb7Hu3H7TqZU93XqH/BY76k048+xHLFEIzU+gwJa8eMDWdvFHe5YpX+GI43fMGV376Dcky/aHRrjK4DRD5hmuSqFLzUaDOFQ6aSBISW0VMbZ4YVI1idOJRNqzkfCjRXVu/EWVVe6mzQOWiAh/NoZ2QmB9VkHSCVGfh/u0rIxBHcuLr+Zuu3v7OfJR8M+jKD5C+3W5Tv0KtP+LSw64/LdF2brj3jP2rdXq3xQ75vh9tLOHdhO24/dlA2c7Qp/m43496H5prOOEYpBTESHa+fzECX25Ms0sm5ioXR6vPff4ot59wn4Ju9LPKeu3TeZGzpHJ9eMGy5oP5Ef28Jct7eLJvgnb8Wflsx0h6vNwn9ZKhtFpQ2fxz8rq5DisyJeII7tyRL0IZ5r91Jswa387e9iOEPzy8HUiZsoLDlls/LMsMl4AiXoJTpK04dqCP7KTBGbwbfXqKwfclEwTjfUG7QSm/enJzN1GAQF9heH1C/a/4n4clmU6PcAYQwf7hEltGE87Bp+3aExw0NIaO4KklCb34iryfMHzlLHFDmdLXHHhWZM4YDelEtTnxpVwtyCurJCHJ/eVtieN3rPtBLFsQZLWKrBBQ03JfttfCcNoZKTy0W7075ZXFhuflzjtnvF41/bY8C8o/h0YxczKzZ8O2ufY/8zRaCN8X8C3V/zc6SD/O9A/a38HTTIsvk7iDRx2MZ675U9HdzH2N1qTMbXHQ/nWlteysYeZb//U7IH9uuZwHprSgmPb2le8Sz7Z/QEHM2T6eM5g1c4tCKZB48nHadUjUFmVcK3odaaKkKWn5EJVf66yA5lYo4KXdzmJd9q+XRe+fFmkPb5k4cI1g3jor51exdS7TGDGMeggM4e14wwhwy9PBOkspxBNXT2g/M2Va1o/Bs5Faiocnchiw/WlEAQRRxoOmwp1s+Y2WkR+BD00MbBzOkOXpuLqOBLA42xQ1kx1IqsFf579ssT+4vwDv7u2qes+EbbcffrvyyR6iukrCtMGJWQdlO00YyDb0leZ6l7shz81D6Tr7CeubPy1W2eC2WPm0N1Z7ZPcZGgZO0AtWDyFb5dv7Xx98TO/d21T+ykRnKLsU2TlxX8q9tOK9mrKSVRD7emkjWZz/Dv3TqP//AUHZNBHQAX34smpI82/yfn7HX/0yzHRaIM7ouqAKNTdy/90zBpL476FPY6p5wWHfCf/BVG99k/UK+3UpxAn5EQBpZptsRMHHEJ+QBoAfrRPr2gQBzR5Ul+vv11ODm/HcSy/Rw0/1SguSQQjZCcrdFsXfnZPHNDk2Ykt1c/o6Z66ugaZ/mBLLaEFwej2bcHWu1/x9cqC6vsW7Xv5o6mc2YA5p6srBG/lEvUH7PX4EQDyg04ZwmV5b1fGtJXwgsaYEDc+NACXFEJ0A9x1l+CsB29DIaNBVU0u4TFHrD/qhYaN/Nav0Cgf1X7/efyT2F+phOsXL5r3Zw0q9vFg+92vfGotqHlXTxrtmW77La7TH/96VP+3+PGzjwj3vHS0b+5n3AlVMHPH4jBl+zt981di1K4e/8QRHSKN/ur3+J9y/KGeP/8Q5/zUZGWjPb2N/1RoTw+N7rj/rP2DqP4NUYVXqp1EXzlOCgYbHQU+TNop9HGbtH1ZqcKTYTzpAPYmz++zUYYvu7UOje19m32c9pme0Tn17RM/ie89e1lruTOtRpZVjIEHcZbGH6HiSoHfuMFW+hGshreSp7zK02F7GVgqEwPMwylfNXR6mn7oIdVHlrRQUJpKXqNGeAkTGWjvNkGsP4GKoz1o7s+kQyY3SAduBXJQKE/WOu8Ln3bZBqvt/34invhHeYvoslQ/05A9Tbf96jvnS+DqK8LEb63958fcx+lftVvk8Q92A2dJ7Jdn1rZt2PpXpE8d4kMT+yEUitpmUHHoBho3tFEetGE7QmsH3Whf0OFHTJNmcnLtl76Y94Tsw4fQzddXZYHm/qCz0mTfkf4ZedqmG/u9MZ+Nf8OPfsBpXRTfZh+fSfar3ohGQ3wsQnRFkv/Cx7gT+nYTh/14IJql6wUHXlteGxu/XAS6+7sQxWRphOhU1YUBHp7ysy2gFOVx0Me1EtWmOKCPu2o0JKfhrk+V2w95Kp194IC42WnHKe7b7OMpXyJj/9Hatn9Q8bNk587nelIHjsGNjbg7VA8CT7wmcVIcUDatc9BvS3kQbUIV0zbA0FbbSyNCLPqIJ/WOF7LzNuX35IEJtIRZ6vz+IQOFsoAozRGIu8Pu7A+DLyxe9f1LrIf+70fvfuVRMiHoT8wn+nkxoN2Eid1qlOlDlO37aj+6EMHaR9KB0ax3Fxs5gI7Y/Jj7eFLveCkuC1WGJw+dg6YwDP5YXgewF/ueKkzy3usP+lAH4FO1Xy6xdlToB/YNmNjt7LdAmE4Uqjo6Up6+Pg04bCYchP1qj3RIe7Rv5AkNmCKkHEDFZUcIhDggtmGynzr5UP0FPacQf3+R4eMidvIinYajm5/4sqxZ5Il8uAqF0I6627MtoI9Tik/zcav3Fx0+ztYWXTmiB9EHcO0rT57REueCE4MrKcQBfTxh6BLxZUQv7rLxULPTQ+pL0ZQ+lWnLcED5QzgINUyyS6AgWuegthDBCVT3yZGDqEFbQuDol9BiCf5EO+UGPwtko2gfHs76hJUiQNAmRlBUCHZk/SsufaoPUAfc/aluggPqJrsECgI+vToWxj9Z8qyl70r0KACJ4trf4T06EE39iCfdmYFms+KyI9RWaQuQzVYHaTchbAOPg4ndQoPNukBAneDUR5oaDuj6JUQNZBACR/+EwFFHCNwKodYqif3hAHhSiAoUOQvj8Z0fSOqmiEBPtZtQCOi7v/Z3tuLoxH5zCxwBw7GjpwwqRXyeQMXlmFBqNDYODsZ+65/6QnNngKE972eH/RYti6SPJ26BmShmriFKa21/en0j6PQCm3YRyLsGLpRkebUdSZ+SOHwOgjQfWjLZBAo6VCINx8QBtejIEi5AFJFvow0tc9oLH3UwBtNH2+XxS49wIr48i0KcjlV90KXWYqdfs1WYkDyEfQPmFZUnFZQHLtLAT9zBfUCbLaWVzVn76HtCTRIwOZeqb5BnrqHFzGKXykr9TzmEJiqtt4i2zoFm/jTvtC6b86KYxt8pqPoKY6pvGme0zxbqSUi7CVVOHKwJ5yx6TRheOp5t36/jzfecfkJcr50BeYkugjfZMwD7ZU65TZT4mSx9HpdPRL+Vr709XonDqiizRxQGe1biYC+ZxE4Sv68y+9P4UnfCZnsmnwOa+dvFP3zn9nWnfXThQVc/bLr0vledaYqD6v8+5n+XU/60xF89WJD9k41/nhe6jqC78o52TePFo+XJZZ4SctwT9jv+k9lP/RJdPN2hB0rTOU8q2s1/Fe97qx3e0QuCrXee/to4rn3QPgBZNqjy4mwGClQ6XLXjgdNWvy4rOL8228QvA0uLg9rcG2xW6e8dP6NjjT2Gxh7oSEJz/iT6Z/RJpx7rt5/2i6yB/QiX56DCUF5xwoJR8RaLyGRB2aLelhqIGJMICS5qu8MmA1AJWYwdcSefsScEH994q7La8UM08s3v38Npax/tvzWszj11yUGXPdFkax8JYX3C3iY6TfbLF8puFDdeUh2Jv7fwoKs6OnnvvOcVB0zEtdPlm3LniSuOVXcMOP4y2c6r1cI/kr7/Qvuf6i6jf7/zXx6h70jDyrzqH4/U6+7qjZfgSeL7tFTk+ER8thz9Qx/zX8RhxLn+BMBF8vD0x+eMBPpSurT3TjFfd+JhMG9Otbdno0aq/2teGH0i7Z0yQSFOmHINCpOYnCQuuxj9cd4jLHr+kx9R/fXI3MpFtLWjBcfo3S89qh7VvmhRF9VdodKEIKe1lhhKIzELJQZIniQmYPYK6xSCnuEnnVCbsg9ln/zTDPUmtAUIUtuSA3TSVHamA7YjRLXXvdkGGolZ6NsTB9eo+Nm2o/GEsM/Hs/aa61vmhHpYFw/OmQBoQ99C3mTyUd9NgSyehNGOuOoAQq4CqLBCXQhB9XHHloAG+8Nrls5feE74jG9vSuoLQLaue/We8fjoWbmii7Y/DO6vBJU/W7Lqqm/m9j8Jcf4zv3efVH9STvqf2nLPy94YRtGHJRpPndS/k8jLrerI/uA8eQncB/tyBaoh/nkauXxkwuemH4hTK4ufceVjvUjYctdpv23wP3OdEEJ9PNtJ5/ZvmH/Q1euyzafjeMnB318v/WIbuhLff9by8Yntf9KzYh3lf9MErN3JFLkhrMw5dcEB33uQ/bd9hmPr2pfvUY+C70iDRUmiQAkmDaEw+Lni4+zMJmccYUBwUBCmXAnmC/HxhCGDUBenn66yBQfkiptQWzbxm124RKSXiYSJMI+/gSYHvoo+rnzG7NCM/TLpLlm89GMp3yzGfMcIrv51kH73oTAYD2Ll4eSBp1QGXZaRjza2IGF7uRivcvJzgvmR5IzqJm0gF1uTPMptkTPUizCjn+qufVh7s0WvI3546arnvqzoxQbUqo+Pni9W6DfOBmm/vKDxn5ZWq4csOaT7xQbdCSi3YOJlz7rqy0uWzX+m4F/UOvgZW1O8+h9/+VbPnpvvfjJ/wabKtN/JVRpRtXmzXLUc83HyQrLljOsDNqO0sN8qi9036JPtKqOf8gqN9mShb7OPSxTL0sYD8aNnLNy6c/uVklVHwnfmv/7nP+PCuFtMw63VcM7Lljzze3f6ak664MBry6OJ+jflva37qcJIFg5glyRI7CRJZBGhOKCPu4FE3laDQRX1Bh36Ig249GT9Azr5hMrn6ZT0AZ25QQZwQMW1gdAEygadCRUXHkLjd22dPL9P4PpHiCPigLKhb0LqEcpbcQW/QF4AtkOkz7oCn6Cob3J8AlfCJ86lTRBtUcfCq0+APs569a8cAPo469tB9kV9oL7SYIaZksJ2wrRJ9/bLPZ4nlyyc+5EwvLDweVV8hMx/O00ZlP0SnP+1ZNU17w0P/v4Y+54qDJ9yxXa5UnJ+UAk/PfD4R+GU3jyKiZg550P4hDEx3I6Kyn/00c9S1Pif9MTVTwNmqCz87MKWzTsvk3FwIufBTkxhrjEHe5n/ZNE/Jm9DftWiVVfenO1z0rhtvuu+T8rs+rxOTxYyibjJWSZZD6fyMBx4q8kgayz6VX6BmrgQK3/4x4YlAqGPs14dDZZWJx+hawF0uhGyX0LVAHLwB+j4CVV3TwblEKocrw3aoch8/z+XPevq7+vBLNo5TyXxg/3qIw+auS4GLmjOKwyh+VsYKU99jyPxXwPuONTPgrM/8CjN8aNP0FggF4XyiSvR0UlTHsjBX4fysvpAFmhpoS6AkIwSrdiybXzd5jtOex8mDiUVtNt892nHSp8HOqu0F2qBA+Ksb/C58+Nk/syzX57+/Jtlh177wSJM0qsdq66+oFqpfJxxJ6SehHn2+TQfb2e/rNpehKvBvduEtaXvbRwZJYVSn8k/1Ys0aZH1N/iz9veuY+ct6a+sPpAAWlos41NrUWN+SO2mH1L7vVc7pKJKTD0QxxdWtt616RJJltPy4l9E/ieuD+XdmWHldbLw/1FC85CWC47Nd5x6QRDF79DQY2LBhkJoB7pHOlhK4LB1sqS1wFCcTLZX2S6pBOdAATQcD3hKK3eLRHsFnkiyvk2uL1sYwCO8hCoDump7tGv+g634A9TNGqsM2/l9KKeQDaLGtXbQeMmF9rJI+vbSVVd9CPhsK2nM0jgy0Qlhc6MHXZyFzvbgAc6Ci1EogD5u1GZ5jIfV+L1ZC8oGxNZugPp9qg5oB11c+yxsJ8/XCLjqIFA0WSELj/+3+a5Nd2258zT99oiS+7yrxvErIJJ6t9N3qvbLguCaJYde83d9NqNJ3OJnLXu/PAz8y0HFXxKnEtfqpzcp0iHBlhtp/BkPNAfOkvU/6KQBz+ZTvv3gLK5Qd8B2+ZTVV9tIO8qAlsBZaKvcjitLCw9svuunn5Gvt/+u+ZZnHBz53rbG9C393S5e9D+gbiKGsIJP/XHlrXJOwyMYuSU3bFvveumLpO3HIUkVUomC4cQL3J2AoRxwQMXRH2hqmJ1ogEOGypE6Qm0HPrR1fyoa/MJk3RieyBe6yocQFeRB9Kp9GwQOFsIcdtTKhmI6G4+1U1yUIEzsNsUg2Ppz0Pruwv4guH3J7ru9CZ/ITIfZtYc/zCcWA1rnxwF4dmO8kvaUI1B9jliB5v6IA+Zt4l+lA/o4eVVH14fiyi6yqBjkAnfys/yqB9rzjzgg2mhTg8AhCoXisxBtrDvXPoqeEUX1yzff8ZKPF3G1Qx4deCVsQ7+qr3ROmNhtCqkPtM7jl1bWthP7w2DHvOrcPzAPFLuXBzjrc6Lg9yuVSl0U1NgXHf8oiHTx1otlmIgZd0Lf17ABG/4IfZz1WejbrHgvynXTRh74Uy1djqCp2uFkwDYUwLwNvJ3YL75WOeWu0QOb7jjlf8tbwN/OPGiKP/w72TlMnK/xYnCE3wXE8g7HsoFHN0QbOP7C8H3LDr3qS40aNR41LTh23HWaTHC1S6M4GpFnN0SYBJabZoIcO2WgN3BAxaVjQmmoihCqEU45ESgNoTiUcRBA+zGouNQROmbjRzMU8BP6uFGtf8HpHMigHiqvXf8iswj7xUcb5lUqr+rr7zA4m4cC1OSrdy43VB/grlg8ERPzbRainfK0aE85CaTshF+CqjQEN413kgNSpzmQ8Aub8icSGxHWJfyN8kWY9qMQOPgI/bZOaq/2i8j3bL7zyZ9uuueUAxoV7P1o9P7T9xZljx2U/fJtlAvdN0t6V7qLlosOu/YWyTJ5GNvygHEnTOxmnPJksw5Q8Unj/1I895Ynph1N9JS0sbmVsB/6qa2+/e0UmWo9fumygPyfqlq7QvtNd57yl3JO/IskTwc4/4Vx+KFlq675p3Z+blhwyI8RLR6LIry2fGVuQyQSCqBsmswOWmKD7HiMUfdCRSMPd2gDLa8+M9pVttAA2Q8hRXpQNNQjQB/3WLpD2Zfrvxf75cpRTR6o+d0Fq66+v7vOZxi385FqTb91YgJ5k/aMNWLp4a6+OQbiYZXBMwTaAbf2VifZIDw+znrLK9cPdfAhVtQ4BtTVNcRDviuoQ2Eb4krsYNfU3umitkfHhrX4xi13vuSZHUhqy1LfOf5i8UFIP6gPtP8i7JcHYeeMtJ2Q2irdJUN1ZM7/lWtbE4wvbQX0cdZPKf5xvHTrXfce16WKjeyTxb8P+S8/zNfYX7+P9BeVRSjs8G3ptB+/jeKUI9C3333W7FTsbOfbdOdL3im/8PxhzHWW15iTsMFvhI0536/8l3fofGLZYddeKB21LcmCQzoPNz+x8ctxVD+crUwh5A0VNbxVvXAZL6AaCnNhcH5pJ1/uYbuGgPhEDFkG/bapdPYFaJfmCHlKIESb7KdNn2a4yeur/WH4niWHXHsd5M/mkvrMcgJxsA1WM06IweQ+bucjxhPQ8DTuaT9pf838bJffU5N+HAvQ2+meQFjWZE9/7Rf5+0gXP9q87qUH5WvcBTWO9ORIn+S1bLJHOlca7HS2JnAS+8Mw+mo/v5GSp2seTd+REAZXso62Avo467Owa/ujuLcFh7rT8pR9ZnXJO/ZtMHzy/O/oxUt5HXVIqwe24oANZkcK88YjbU350zHUYZe7PNumNaecIzfmP91J/JvzJR0HeY5sig/j6sa/3J75ytJV17wnr20eLVlwbFrzkv8pKyT9Lnnr4NuAsMQRXLV3UHA9dFBx76SPNqa8Qd+QVLGMfK0gLeVKMdYB5slPaYnOerIzfpNDGcLhJtCi7Jf+/mXZoT/8dKr/7MVwnxAbfEno+5eWow6lU35fho9TnkRcUUD9wwDBH2DOBmbK8XHyUnfqBx7q3Ak/5FAG+yH0ZVF+O37Uy/aUaOf4j7avffnTIKPXIs9v6Ns5fX2Iu34S3akf+urFfgnBxb3qOdV28nHlYtqThZBNm32cfIxdp/aLc3pbcGDe7GC8UFfq5+usuDiaMMl7L/8Lvr4RVOUPutFfxFvpCz6UTvkhxwo/jLrDXRRsvuslLwvi+lfEL3ouR8xRNPaMO6HNHRqfVvGgf1nv56QfK/QhM/wVSw953vlCZ1BAnrSokpvXvPjlouJfQ00rgEgaHBkEDiUIVTFngFSgUusJqbAPIUvbaT/t5fttrZ3pYDqmOPmoG6CPsz4L1TronhTiBdgfBNcvO/SgjleCiUozFunMh9mY+HHzcfL5NB9nPdwFnAU8KIA+blTsyWv6Gp205nqTbXkM3NfB5Kd5Ddk+zeelvlno8/g4+Tza08YndspEc2HyocF072xv7eJjBmG/uP7OZYf9588606z/XMsPOfB78q2GJ+A7FEI7Yqz7Fn97xboJ73wv3eflk0/zcdjg5YK2RT0KIXDaSn7Qii31JOeLzP9ibZgZ0rfc+eLnRrX4m3Lmn4OYM+6EsCIv/qSZlT3mfxBfv3Th08+RdwV1tYatxA+fvUB+/VXeSc8Bl0JTPJ1coaBvjCnc+56yAH28tcTJnePL8PHO5aW2wx8mow/2h+GDI3Pnnx2Gn5V7ybtGge9ss5zBXIjN/GoQuBVCd9gAWAcImag06OMmS07w2tYgcOhAaPE0mrK5euDUF3KMz/ozPupgR/7el0kZjZCyAdEytQG4FUJ32ABYB5i2hSx5xvAFm++4vqff8Nh69/UHi7jFWf2tD+urE/2y7RttN33lJui0vrYf4070utHXlS72aYZPOf6HYE6l/KnDSeKvVWlOIF6d5P/UdWotATdU4Md04zEg2jXqa5Joox017lkH6Ldt5NrVjkbvftFRUT3+njxisJB+hX86iT9zHj4jzniZj83XwK0QusMw+MXy6pIzwmdcvNNROgaVzVvX/4l0HVEB2gAAPCxJREFU9ow84c3KpAqih+Z6SzSTleKJMS4RNfPMSxCSKNtOnvEKP9qwHaEpZLJcvcoTPOlfExb9tdpUiMkAl5Odtk9pytlUn9qMPlz7bXG1cqZ7334ie1dBuJr2P2GRZj5ALFAsJuYzP2aNPmfbVvKaYiaMSksaSD8qhDnAvlWJpl2TPGjq4t7EnEPQroSedO/wlHWK9sfxhzbd+aKuP1XH9fAA8zk0oQ6pVsRoK6CPs74dNPun/4cJw0r1liTuBcZffFQZ3fHk/u380lyPWwT0cZH539xzkZSi8r9InYdd9uY1Lz2oXguvktXFcuhKHwP3x6jiUknYj/yXBc1dleril4WrLt+K/rotFXkG8xQ2yioLQ0AD9HHQSCdEPQqhj7O9TwOeTnSc/LPQ5xHc9aFQdZNB6qD/AChaoVCX1v0bH/ewBaWVfbS1VT3ask/gchlXflQ7fMuKVT9cjeNdsWR9ipgbjbGGV8zv+f5hnfGzLWPQVh6+aogCqLjIIUz6ZR/KqOyQa5tP83HWZ6HPIxIyOQWZtCFfPtr7hbpZP2xL+0XanKAef8Rv0QkuVzX3ze+/sT+TRRqOiJs+duzjPo/Uiv1zRuJbTM707WXavSWJe8Hxr9ejp/fP0kZ/Z+MP/5PWGBungdoqOCDx/inXQhJ1li4Lyv8WHc968va7X/zUOBi7Rl5bsRfjTthZ/CU2veZ/GD40d978U5c+64qef7m6Im8kOxoK+4nRKmp8NgQQG9oQUsak0A0OaWl/6Jc0lZU+ZOg/rNJKJtYfqoNAxUUWYSLXk99KDumwG3ir0rX9QXDh8kN+1PWvYLbqf2bS6U9AH6c1Po08PrSIWoR9nDw+zcdZj36As4AHBdDHldh2x/zoNGfSvlvpQ91Yn4W+TT5OPhkzQfyiLWtOObmt8g0MoSw4irdfFuBji5558B0NXU/DwchI5BY9vs0+3plSHcU/xmKu2yILAs1TxpXQj7mPd1oPPcA7XYV9U1/oQZqPsz4LfZt9HP7atYp8HX7lWK1+tZyi9k9zxfeJj9OP8JHvb/CgAPq4Elvu5AHRx+XnAk5dePD3H2nJ1EGFfEsq/o3wLTNeKEalpcadfAlVbzyQSv1lNpFfSpQmVLyxvSgprFgEWH1jLXpspFh30gJkKaqJHKTSTRZkWlEOx+lIDaBRfkOVHmTbN/LTbkJTV3iS7lvbLwumby0/9Dp5hTO1b+59NlPoM6QGcKaI4eI3F2R/YQl/gGxt6B0626BFzHJC8kqeUAsu8n0MLkYVErI5aFLTmDA/mVPt+MNKuESU3COoBHsI7x5ix960DbJpa2pfSkvr+2O/2uLGYxRO/I0cn6a0DnYybuWkCKsbx5TFQ35CgEZpQERgEi/DWY2ufDzH/juG4dmlhQdf98imX73gSdFvN0sQy6ci7Jdrm+Lb3ko3+a89cD4GlNLsf8u1JJ5dPeKnInvaFZ3/QZSO4Z4UnGGN4jUvXLypVv+BqH2o5awzoNv4Z8ZzR/lfCTcL30uXHvLDe6bqthF5//l/ylWOVakgS9z02MMYY8KM8saZtpdXCmFOk/sKjqa4cLnDZOC3kEc2QvBrIjt+4kxuqxf5lKcKJa1NvYY96whR6eMNzKlcym9hv0zAty3fff6bZZBPIiwje9YdmulwEQqh4a3dQtcSWo5Iq4TgoWEwsfyw65JfOoXsQZcda07ZdyysnSYGnio2vlIsXWgaDsB+MRa5j5OJ/Lz5qXiWQ66o/aITH8ivFON9Hpbu8G2LkDRNSBII0vL7gaBUoHweWZ/PNw3UMMCl4N20Z+ZTo7pNStFWQJT8BanfTOIRxfv4lG5wqkWYuDIhePkvghn/ZA50tJZ9Fv0iDn0PB5Q1f3HcE0IvX9esnjSTsKX9PX03K9vbzDiO17583uax7ZeLL5rem9N1/OlYwvb5v2MkGDlj6WE/vLUf3hqJFsz9QLBt7HQZUPtDB/avwvHRBZniPsJkjVN+VFOTDH/StiHbyJwDtZ+0v+b2WQ2pLaBT1UEcZ7lB80tj6xz+jD2d2C99PhGMVM8K9756m9/XroTjbYbMiXY+Vp+KcwCT4qFu3rLETBgM8dkyVQM7XHDYtQ9JZ5/DNrrmhXtPBPFfibLvEPv1V16LtJ9G0ndRPTpHaB0tOGSBIgsj8yDbQx5xQhsCWNRYb6CTZpTGPdiUJyGHWxJ0mhG5dY1Pak1a0FZUECekrd3YL9/KEd92V3BbPdHNV5E4YY5Y6ooqLD5xzCsaxMkT4mcHCi7ap+sDamtOuGPiLp2SXKF+yubbSpzQyYl2kSsc8vtJ1U2/evyrkhsvcqY3Ad937eLf1FgIfnvigBKjiWo1+N2lh/7whrx2vdAqKw68dvO8ufNPkjz9OhJeB5imvkRYOtVBIBC4DjoHyUdIPkK/rUkRGWKB1iPbgCOJHLQu8BZR0AFlk+oEwjqpBA3Q8BSihroAYkMhBK5tHQRu/AYNT2VoT9qf9YH+VJaDefzyjuiJoBq+drdDrntAxJdFPdDodYsg9vYHFqN15i4XVqSN3NUYrrL4sOse2+3wH79bHhY+XD4J323aFWe/7wv0Jcev7tQj8uZPXXCYDMlta6/NKRcHGGqEPm5UrXEoGH1bHTmMNzts+kEYy+LH19HsBq2f9ocxfFtMYWxa6ysrFymcQ4krcWA7+lh7d71afthY5+g3vl7G/7CN/SJcKyf9cNOa335e/KMv5EQfU48/Y2PxMHnN+S/nt0h+guMtyw79cfKW3n7YqBfYFq265lER9jr5us276sHOw6pxtGcqnCY6in+oZ2ChEypLA0NzI5+XrIQN7nRNE5oMokiu11XkC31yI12uIZ8pE+DbyAXor84SOv0rBHSDQ3aHCVRpjkcvlwoREAUDgZdQHUGBChHM2lqwUCH8715x6I9/bEy79t6fRHxcfaeOc/4hbi5HEMWxcgCIkqlXsqt2HMY3RHsZpGs3PfiKE4MtWy4TtV5QlP1qMl2lMD546x0vPHzJodf9qgN36LsiqBshHG44HI8CLwN33s4cukFgLMplfJQnNxWH5gqH5JTpojkmyubo2xf7w7D393CobgyqKEjXu3D4+a8GkNXV5zZoGE8JozYvasf4Q76PZ9Mpa1+n439X+LVYeeboY+K7tyQ+gy/d+FMI53YdfyfEpQFjQ5jkf1z5o2VHXP8f6KKfpeGO3rLDrtoowvt2+aSfimZlbVx90vvh/dRR4ioZWHopyC1qsnOjLkgcD+XZ9GhHMYIAmRyTxBldDlwnnzIAZWHyqd2OvPFffVqJw52yIPN8ThzQikRAURcJ4qwGUx4Omk83YUOzX77f956Ue69nPrljK97/cAAXw321n9Z6fqjZzxO0XXDIh6fklgrFAOKTselon5SJJ/FiX4Ro5OM49koUD88tFZksNqe5lq90P+wXyT1c4UD+e2PBVy8Pz6Op39040rMUCNljZRrYrrDxPzALpqejJ9c8/2/lwe73aO95sc6jKXM23tljNATNF6ANrbWO/+pfrTji+n9Jqf3DGhYc/RNbrKRNq08+QFa4J6vPPN/ZggKTpnOy+FTRBt8yAKJjk++lTnnT9hoctocwbWP1jkto4XXLjxh5b7FWzzDpLgbmzvQqEKygO3MtUh8Lh2sPH6vLHTPxSWXkCh48UX6sbMum21/4ujiu/VR6T362fFLdu7S/2T/xczqyNI70qnRTe7c4TBYYoo/iLh5NsrMByQisVMLiHxpoUqoFIZRvNcmEKga1zq8+2C8fWKotNGhPnnL8dcZKxxhtBRxE0XWqJAHyQIr2ihyyw5TmHTegndo/KHsalBvMwZNrXvDuuF6/EL1lhlMyF9Kf7eqTXKe/2vi3Elb+cbcjrv+HoiydkbfC6kF0PnKYCwtAw1OoodKklx2gAsNxVQR/Pk1xBAP/Tl4WagKAh0WiLlc27h+ZN0deW37d8Eys1G86IUaEbOotB4GrTwnVz3heB3Gz53agMnAWiEFx4hRRWkKw+mHdLz/iupuDSniJ2i5K9tt+nUfEF4DY5MpF8mvPk/lEvqWyQ50KJvgyKcxvaowK0lKMtRgOigMCUR0MGh4vhYShKHG0RG2ForCZdhOqkjACBdDHldhAUQ7ZJRAI7I/i7cbd+R63CJj3hGhN1QAVlx0hkKb4g0/oqhMEYGw5aAHCQYFFzijMA+infXv69C3/CzRhOkVvvP15b4yj2j9RB3GdFkDFZUfYU/zRuFX+h+FFyw+//s+sx2L2M27BIQmLL5u+yaUyvNfSMxy4gD6eNmBbQK7CDSIu2Q1DV+Ml0A3j0SCsvmrps67r+c1rqS6zDDOX2uAQnL70/Wy4eRTPyuDPfGzQvNy4FwbzvZM/E7w2Uqn+Y1H2YwJXn+DEIpsMjv3xnf12fpGT4g7lF0ZCjQRkOJrKdjjloQ6llT3QxRQyIMLdO35An94ShfEy2KR/9Jeo1G/75YS/o1tLMRH3kv8aI6RAK3vEWo2nWd2tWt3z+1c4RC/NFwctd0wfzRHVzbTrevx3r9nQt9j4qxecIYG8SO7pyyku/0/IWgOouMSdkHlMyLgTJnkPCZl8kaciv7Xi8L3fLlczIbmwMuMWHBtuP/El8lrX/eAwdb2DPk5nItuVDx6XDYAQOOoITZ7jB58Un+bzoo0ESJY+8ZtXHPnj25W53DV4AP7SjckNKH/qbwfpe0Lf3xSGiQil1YREvmGG+hBnGN9alP2QyyLv1JGHJuqH8rgVlDnNfQpnWxtPxk9a8xjQKCK27g/8fv9+DBUPg6G5whHGoerCnGq0tZ/293CFQ7r3fWe6Wd4Dnyz/G/zvcoHxQTvgbE+5xUG7OglbdEPvXr70a/zLj5YVZ8I0SH5y9fNeEEd1fFN0hHkANZirjB9jCYg/FEIfZ31e/ClTG6uM8Nrl85e8IQwvxW/vFVpm3IJDTvXntfYIJ0qbPOxUZSc5TXRJfEIGlRAy/asgPp72l8qXoP3N7kfchG8hlCXrAfmuPy7r6uVe+NycDgfbEHEQ3kQdIfkIjV9qld+GEHFA3bJ9D+mxaH+96S4K9tF+uBbyABUXKFNx2wWHfHVzB/UgRByIA2JjLAAVRz/syPEDtOQfoiscEoOlah9u2Tn7fJt9nPW92C+iu7/CQf96PlddMTqExj/iiX7O9wgJw0JoVVwA8CrvAO78Oht831Ff38fAwUOYz9/C/lm03pBnEo+Nw+gKWRrOh5/oBz/WfYs/cqkh/8P/XlEdebU8bzaGfCm6zKiHRuO7TlqyYWctfdeAZq+4iBDeEoeycDGRQK1P2TEwwe0P0LTWMQO4DjzR31h+xE/+PttSWctdEIyMBHF9wjwhoweDJTlLwYk6y1icbE8PSxNMQMrjHEmcztegQYbxOq6hB2E88vNYnlnU/OyX/WI1fcUch1/kpV4r2zlELoRs8Lzekl1jh37cGACwb3O5JrQFkHyCk18u0eovWjru6Qami+ZQZ6rQDsJO7A/Date3WOWqrYVDdGNMVcPJ8l8YyOvHX4eKhcPGCZTmcWdmT43Liz/GuvrO5Uff8r86SIOm5o7JWm9Z/cJVtXjiBxK/JcpXdPwx4cJ1mhLhmmp10enhYVeNTqZjP+tm1BWOjeP13xNPeV85g/dQAH1cic07nrQAfdxxctACGp5Cypfhc+uKPfZ8S9H3upqVn0EUvM2QIVFfi+7O5zr5wL/uD1YprVPz/DAT77TtNPJVwvrj8IHa2m/7s36IApu8JrM3DB5CtX8lz8cna+rX+W3sk5OTmcQ/8H42wW85WHzjvacsk7G7j/bq+atJf2EgrRMNyQuouMiW1wU93EnbnnioO/0LIaTlCWSdz5/H10ca/aB66biHjqJAP/N/Flzh2Ljm5H0ngvFr5IHh3Tt2f148ScsTwjpAD5cr9PfPmxec5l6FkdeyENqMWnDE9eg8eCFdEBhOz2QXDOQjZNtW/FiEgxfQ8BRivEjt+nDO3FeFT7mi66fQ2eeuDnn/ENBw3A5wS26cjtXRBg1vjLGywologm2GlDAc2QRVzVaDtJtQLO3afl3AiB8AFYf/Qvk2RtsSy0kRvkcxSHcSao0lfssxR15AH0dbFInhbpvuev4z7Gj69uG2sWeLKaKiN+sWZH81jnUx1721EsEu819jrlal8U/ywMVOhHavyhRaMA/yRPQt/2fUmavZE1vXnbZnXIuuldg8rd/jf/L4Y34IH6tU4lMXrfoJXvg50DJjbqlsvuOEgyfG4+diQOp7AcRNxG2Qmt/8sQU+8uR6FeMQo8ONR+UVQp48YZuQV72+dsVhN/Y4meRqMIuJ5tSMi5vsNffzxNd80sLgIQ8a4xlqlWnim+QNKyEOJ5boRJBRkLYBomRhW/vVD84pFBB38qBm/DDGir+wRvOm/jwa6sFhOloATIa0skORZzgfdldyrXaMNLxfm0/TTm5ZHA3bkuRJ9BWS4PADSj/sl9dw9HyFo0/xTxIpa09SYeYWsJdXnag/zcHYwyY7au7O6phTqXb0Q1Z/jn+5b9gsbIZQcLVtfHT0KrHt4F7thx+0KJQdj+ls58Am/wXhk5Kfpy0/4sf3Toe7Zsw6cWIM796wJEsuX4rHSMtzHhcOgLkbphfUuT/IAM7CpAeU7YIVR/3sBtaVsDcPZHyq/gaNMYD3DQdMJysXgyb+3rQYfKt6LViBXvttvy4YxCuAhmsfba9wjFSrD/EkS6hewdkCBdDHjarjxaolSqjXBYZBXQ2iMpkNrVFUj481bPr28lsIRyOjzNbUX9Co3/ZX5o082L2lHAHQEn+AGssEIndQQ6i4HBDCDm3jIHCrNWi1Six2l4m/3xl0RwHElrXH7AbV2eJBn7/wr1NIv0WU+OGzF8Sj278r1j3btwcW25/5pJ395LaYp/mMdswD4CbNoODbxOmvmM5vVs6IBUccX1gRL75J/TfpzlwMJ+umE6bgnDyzUOPANnrgpFt7nVAhK44/ufLon/+bqyxBBx7gAk+uF+mJCdDHWQ9R5mcnVGOmRI2b1gkt4ddwYAce12YGAPmxtAMKs9/3A3zVwZsul9YWyuvP5W0cnm/V1zILEuKMQJx8Pg04Jk1C4OAjNDzGt2aeO90hkicsToQOao+DtMmHUF55YISHk8enAQcbIXAx/9EpvZdHBGgBlE11cdBwpx/YGHdCNMy0T2QpUvwukpWA+SEd99C77+O/eFP63kMcv2POxo0Pf0Oe8jk5ySfpRePK3jLxs5i3mf86iL8sQsbDSuU1K4/86U3sajrgjFhwbLztylOjqP40OMi/okG85RUPnQ2kEaCPQ5AWRgrQx121AAnUj1Yevfh9KaXEuvEAB1OrAeaHxceTPnyijycMMwOJ4uAk3xfU2jfJx1nfkLc5DM1jQPI4jrYl7Vsg4VFX49PO3Zr3KrfVGPDHhS0m0AZNsGF+JPTnSnYLm+Vk8/wn73jufqQNGj6x5kS87v1g7VdtFYwGYNwrDXZiQyH0cau35pPYHwa/UBE97HzVkuY+0ccdQ178jdbKnkRyYQjzAB34Oe/j7Nw3ycdZb7GRI1R6DJJTyU8FJLxDjOBD88bVq78kvjmdfoC6nkkNeGJKG4ZO4i+3N2W9XTl35RE/vTqRO03IjFhwRFF0nvmHE0H+YGIgAfM2TCTGY+2J5/FqXRjcN3depXxteYHJaTGwiUnj4GIkkdI/nNHwB6gbcUDdClSuT6LxyUbmjZPzxPXHfvjCFVkhy1HbBQe4ZRqykyN8y0I88bdorjTMfCLb4RorwfWP0MVD40V5AqU6jCY4hr2KQaG14Hy1AbpnN+gAGgtx8uE0oLTO7BcP9bjgwLdccvzpaIne8LHqA52pN6GQcD0dBRAbeAm1nVUXuc/Gf7K+es7/OBqaF8pNZh/rNqz+wafEVvmWZWPp2X6NPeNOKLLz4h+E71x51E/lysr0l6FfcGy899hlksBnYXDZeDHo4zbw7FMHcJsaxPfwv7dhIOAY0MfJw7YqL4xHq5XgVUsP+dmG6Q/TTNQAg8D8TIgj4upjPYZt6YBBLFDSmBhu1Jm537D69tfLQ4srBmK/DAw56XW04JCHqjs4OTI2FjuLAGlpbNJ4pePQj7VMrOfJxvAOLJDx/S+cLx/wmib6zhWgrZ3ZL28z7cCnrXung1J/pj5u3cqr4aIC0Mc9lqJRs8H85ee8j095/Mfh0Lwyv50/N972O38vVyL+oK/2t+rUj7ng8mNsf77yqP/6XCv2QdOHfsFR3xq8XpJzPhwjE6n6B9DH6TQLKKc5ORKH6x+gCwQh2qCO0MdlkRhXgsobVxx1s9znLkv3HsBLv2zC4Ve+APEH/xMyFoTohzig4SnUiGkcjUbe7vUbXAtcSpUHFt9flP30EyEsk9s3v+3EwmqlcqPvY/qTEDKIA+ZtfkyAZzfYbbRg/w2/eq58cBhseWLz9reIVsupe1Zfsy+1DdoZzfQkzvZZ6MsTS+vVOQF+Gbjnku3Pl+/jWT14jI4pw8fTenlHTqEFD/anecD49z3/g2jfQs3ok/ANt534fvmw8YG+299yPHrxr1T+94qjbvpIn0zpi5ihX3DI15/OZwLLE25itDyEJlBxD8ooM4cQ6pGjuQFgA9GbXIRXaWjjbXL017sfffN3+uLhXVwIJz9OeHZ1VxYdMjv7eKt6uA98LMTZnvRhhRtXX/lBse2IVvaBTj/4uG8fbYaNxFvVY3yEQeW+Tvyx7PAbfxFWQl2cUJ6vg4+zPgt9nfL6hAwUhfXoExvWnjCwS+Gja164t0z0H4ZPWhXYg0K7fJt9nPVZyLYqJAj+a9lhN210eFcAX8DL6y8jv6P4W8ewmXYTdqVSX5g17tBE8iDPPp/m4/QzlADOQlxIxwq/V0OO4YEbbj3hrfLsoZ7wYVuefT7Nx9vaL5YnvmjwgsVaSP+6+5E3/Y/h8YZpMtQLjidWH7tK3Pcct17Qz0rA4V/6mBDmND1AI5VKcw2UV3buUD2gNMVkp3Xh1/c8+pf/QFIJe/MABxhaA29V/EED3B90lNEIjQciJxHbqruB0jeu/p2Xi45/U6z9mMhgFnY2qVWq0b2dGKpvy42D75svO5sQG2NhfRvN4pHiJk81c4GSuqfK0yUD+8S1c3z7J0Sr3aATJ3CoYnmWr6+fgz5udplNjTjkOD+Ewfc68XseTygzcdf9ubibe9P4i0ZOp3QxC9nY8BLgogv0oY/QF/BWBTqhUD/wAmf7Zmh1chVv+cbbTm77m0EmffD7Dbed8FrR/bPoGTa0Kr3abz5W6SLfoPRkfYXx11Yc9fI/bNXndNKHesERT9Tf6idc4lBOrh4UV6sfCe3ABdpFR+sE55/KczKAS7Ru2X2f8PzpDMhs6RvziM0l+MSNgliI53V0GPRjS1w5bQQBbSrZAdrEMCSEjbcd/664Xv+O2CW3VFCKsV/9LDuF0ov4J96tsqCjKxzQSvi/x9uTOO6+uDHm7KOt1Ad2k6bxD6K3r7/td87svp/uWjxx23PeLFn2u5Zv0jPGvWywlZB2E3bXA7lT+yuV3hcc8gVlNzZMV0rPwmz+q59ll/rbcLbL2l/0mx7lF7Tli7EWc8adUOPfx/EfhLXfp53DBDfcfsKp8kT2v4u9VfoCsN/2Ixc07oRwQhj+YPejjn5TGF4o18yGrwztgiOOz5ZghW+UUagrXjgXISPUYY5JBD5FEoPP4RoEJRuNkw14dAA6frBrW8AweLw6d468tvwX5WvL4Y8pFsRFY+PB3kT6UjgpG+Rk2pvcYlqtv+2kZ62/9fiv1qPg0zLi9at7tKC3HtkasNl+oWhOK4TH4/DO8LDrRjvua2FwtbRKft206SohenUv3OtEZqO21oI0HGGYhlH9Gxtuec7ZncjrhWfDrce9VTq6KK8t/ISS+MvhSgTubAX0cdZPAu9dccR/r56kvscqeg/QYk2o85qjtbIn22nRFzjkMcUn0adpa73TgqwunR2zdZ790Xmb15yoL9TrTFbxXHJl43eienSZrB/n+pr33rMvpU38w/gnu++512vD8LPulzN777WolkO74HjiF2tfJg/b7APDO1owOL4Gfo8Guq1IHMQCBgsPXcjE43I38DUrj/h5z68kVvnlLvFAEjNvkrRpCCwcREAdniwC5VhpoGPD8pHQx1kv1dNcnrzlhcs33vqcVz5x6/HfCKKxO0T/1w3WfvjCinzCvJF4J3Dlwf+9Rbz69Va8OkaksrU9jINB47eJ0ccthqan1M4R7D823Pact7Xqt1f6hluOe6/I/pz0LXOb9ZfC7qWaDe3tlw9CU/smAD6PMu8Jk7yHHcj9VvlPO2EfcUAfR13xpRoF8q2+yeOf6iX6qK0O0m7CNvZLbJZPjE98oXirOuth423HHS6vcLhSbFqEvLHcSWFqN+MyNfsb5YW3jcSLXznsv/NV9BW2ziKVwyUhOa+ZjEBx0KGWOCBKpl4vhwgNMKda+WWlEVbiP9zz6Nt+Ykzlvh8eSFwuA4+/aQO5FhLQXC8KESM7xlxjPHbc9NscKk8iBxjH1fWrn/OGoC5XcatyQQxF0AAooJYsgZWOP3OYyIJMFMj15FfqMpmEoXyqimSr7C56HFsPR4+QD8S2eIcdfsoVaD/Uo28B9TgIblCki10lqP5bPai9BU3UryLKJstm+eBJYqcNQJBNbEbRug7slzdzVMVnn5NF2tmVMH7/VL8Rtn71CccG9egf5WHyF6giTh+85xTfEND3nUI/hwNqwWu4wetex92L/eL72vw5wcUmsMc9sgeqyNZp/qOnbPzNFpOF+ib78bBIgSWqhhsCuYzCHDF/iv9hmBSzrT/j3wl81eO3HPfJPZ69+L1heF3RF3C0y7zdptXHHzBRi6+WPNoNMRiU/S7+6xbOqb508RHX6Q9E5uk3LLShXHDgMtnOndvOwH1NDig4zHCZQFw0ccmTtPx6aS8VTHYdzaAkyY+JKP7nvY5Z/Xm0L0v/PcBYEWYnoGyPFk+Lu9a5E7YfM+BO3py4Vr9E29RsgaAnlBrizhMK4i0fH5Ocqbuccfx1mwxDgdaf7OV+iE7cINTw0TOF8tNUMqdo3gjRZEUuT5UPOydKUddvQfaLK8wXBoNowdwFP0z06BBZcfR//eSJW46/Q8bCoVSdUCdPyLHzhQDzLSBKU7yUqFW6o92Evr5gkOOXisRT1t963MVBFH5596MX/aTTE0e85uy5G8YeeL4s9d4S12vnqivE+dqHC4L2qycAsyjbvy1AzCboQ7sJYabik9gvi5zLFx9282No33ORHyNT30q+UEeVxVwXiGL2WMxxTF5AFLUHbZwlWfsloZWvqN28BSMbdo6mV/QZd8Ksvlk9wEcerevM/gvW3zr67A23HP/n8hMUXX0tGeeasfHxl4Rh5Qj5APNb+Xbip7I6tTtef8ex+0yMB9eIy/WKvHO9NqPdhLSN8crK7sX+kcrI+YsOf/n6OH55savJrLIdH/+tfEazFf1QLjjGdm5/g2TdPLPHjfQ84zgrEGZmB5IJIYmnChUXBj/c65gVf5onuqT17gGd0twE2CxFplUNKeOK6FhkjJd0g1bD05vETxorzZfv402fWDFJY2I26dqbHCQ54fCGCYDM0iR7hcV1bipDc8dLaL1Mti/U/usXHXrDbybrfZI6vAnRJtsB2y+fwquy2HibePNtG24d3fL4L4+7RmL233Ll8fGoHj4ezqmsD+tRRZ4P2LMSxHvEUbSXROa5T4zf92IJ66LQWx/qlQpLEDUVphQdf5lM5dsw/SouUTXRLM38OWvK+c/E75e6GTmLD9p7485b78NwaNFTYfl/knwYkIXzcT+X24o/qFbCm+TK2T2VkeqmJavqWzbfvmDxRLxzz5Ew3GuiHu1ViStHSq6cNj4+fpxMGRV9ZicIbhdzul5wBGPBp6X9ARlXtDjsv/31qHbD+luu0P6Y64AoufkvdAZHhwr4wJxT2snLadJECoMr7hLiIagYygWHBO88m8BttUv3ICmAG8REYjggima50lq6T3kgQ9junT9/0TmdfprSDspdhx6owcMteEl3MZNU109lnGBd6NJzXmMONAttHDL21XwMapOPvQ4617CR24h+tii/kK21yyk5snzUzFGc9klPDfrTFta7bj1AyQaz7Wk3IXrkWPCEeGiDRf/hVXSFrpy7/+eeGLvvL6TRvpQIATqmEh2Kt1+uFuA9HfKVQtnsIlQQT9TUy7iihBnA9JM9EHfkDkRfi+Cg4i8K/OceR998HTSZWrEraYw7YZfxb2v/1HRs3zoML62v/+Wxj0gUnp7PXWj+46V3x4sTjueFyXCiHuy8BV6056InXCZFyCTNn3wtu6HKFc8ljbfsbE7Il1Gs/YPO/+z8lTf/0WL4Y+guwWy87cjDZZI71oLFjAD0cVfrRiUmRZuUhSsdqcbk753lstjYKpehzuz1JT2+yBLP9wASMfcPscJfi5jxRA1oOAev5QDaIhf4h0OlGVnrQLN8Ma5GfkdDnmiueBCSHK2VftqXp0G2f62HyFZ/sBt/gNoX1FCFobSz2WB39ofb51QX9vx7CeFhl45L539nurTWD7qjACrubFWyh7O+CRZmvyplO1URO6ejg6avo8Hn6ncPgs/RABkXQhGokgghSZ5/+Wsc96tYzHuJv2hAuwlVWxyYzdgPqNyQ9pjB4Ff8tfBv4fa7/jX2gqvTCHt0ji42KAo+1v+M3Wa12T209ltcNF9axAdWodA6HCoNZA9nvUFtoruhW3BMTNTPT9Uz49QSmOUSo1WyGh9aO+uzUNrjl/MqYXjuymNuuSPtp8QG5gEudwGxIVSEOQkLvTShgaA0pkTalvLAA5ylW/6mDiCIQoA6HNDH2V87SN2oL8QBB4RI2ymk3YQqGnwojp9tK9Xgc8uPvFG/kmgM3e93f/aSi0XeOmvJDnDEToE6fMjsVz/4vjUjUtVpDn1N/4OP7bQNbWUDEEkD6nCBcu3pypXH/OwmbdaPnYjuNf4d298PPdvJiOPrW7LQ1/Q/3AkccBD2sy/2D0WBD6qwL/Y/dPZDIRQXkARXRMiuvsfxP1QLjjh+4Ugchee2NNbZnILJnZP1jS5UovCv9zh2td3wSgWVWL890CIhbdGIvJWpFTwy8Ah9PKknXyJP2gBvMSBUFmrZTm7Qmnz05doSksdBv23iDu1LBVq/mChA44SRhawD9Ns6gX4fppfpSnk+TXGRQWjyKFeg+kBVmQirlY+6LnoGuL0orvkT7Y9SfBuAD6H99ANUpu6AihcV/0owFo5U/pRu6gsU35rOBhWnHfA9Nj0rM/aAKITWTilsl7Vf+YvdhXPCH6uuqi/Um0w/p7MbR4XbD13ajP+evMN5QOU7m2k3oZLNF7DTt3Uq47+r+Kt+ogMgdXBQ9fF0VD+AD8XxT3X8D9WC47c3rz9dkmEvBiML5ROFBgnQx8nnOxC4PtrhIHDZvrr3c371YfNguR+IBzIJi3GpsRGguMZSiahooGk94oZq7BTxoKD+IPFxqcovvgzB9dBBv4qN3XATzaCdFUI9ytjXQMNBpl77QE5KlfWX2tyz/WHwhX69Q2aPY395hbwaVd6SaIW2DrX9omoyBzjcqd8M/CALrocO+lVs2Mp++XHHD+1+5C/wMFwfS5oL0MXXzUsYJo726+e8j/dRqa5FqV9C9wOCg8h/0bCf8e/aYDSAnb6tFOLTBNeYOmj5lsZcBFi9g4XE3zq1HBLc78OvStR3yJTHv5MzVA+NysLzPHw5jIbDSOAc9E7nlkCWI9rCIBsKTcnhL/bee+lbWzYuKwrygMUkjSIjalHGRIH7tpwsVQk0YSFOCLqHN0qTOqwsMch1tQlekU+aa8o2cpj0zXvHyB3Vx3VCPKlvo2+W35Rt7DGlQb0p2h+G6+fOm/cB2NKvMm9R5T07tkXyeuZ4j6w97fTN8qe2Mmj0BWAf7IcM2UwaEMEKjr8sNn658tlL+vqbMPqlWOiNQlf5eB5N6hu9CcLk9kPkIIpo8UNR+Q1pdGhAo8bt8inxBZtDeQ9vlCZ1bexHU7aBKM1XNwZx3EtB7KjUrpD/9Fniq4Z46KUA9avV0+N2NDRXOLbcfOzuMtm/EoFDEmLDxEGoOAILmvsjDqgbUgm4phTTCu4Jfjt3bvWs8Ok3Ja9wTpxVIgV5AHFA/CDeoIaJuIuhRQknXYsauIGzEGd9FoKPPMA1Xxz0cdTlF1VQqkxf4yENR8St3vpqrW+Wv2j7ZQC/v98PPy991i+eEMPf1eiL4bQfOg42/uEOeRXc+f3+dhsmYtpB6NsGWt7m8wD3c97HUTfIUqniq8Izdfx356nGk2jjfFH0+Iemfr74Mffx1hY16mt8pOGIOKDNe4Tsl7CxrfHTfqsbom+pbI+2nyvpqb89kYwsGKvWmPKNBuEIdBTWZyCsDYNx+bnu16w8avUjxlvuB+EBiaX+IX7AkphaTIQoNMvGFEIxnya4tnVQj4gD5mxIF9ABfZy81gXyxIo/KNmOMK895RBCCnAW1Rc091ek/dLLFbsfc8uX2Hc/4V7H3PJNuTL0YfqC9mYh+pwu+7O64NiPmY+Tt0lfFzvW+218PKkPg7euOPb/t3etMXZVVfieM3f6VCxtZ4YpD1tUhLRAOzNtobwMglhNeBiRYtSUABHjDxOj+E78YQw+0R8S+SMxEiQSFDUgjxgaUAq10047FJGBQqEPoEUstPIovcfvW2uvc/Y9c2/n0XvPnal7z9zzrbPPfq1vrb3Pvvuex4YmvDPFWc98iYiP+JND2TOZWOPjt9mXLa2rpekw5/QNj8IYDzXT/00nH32dfdnSHNr+emvyWMnBKzjSLGIv7ImtsJ1c+o/cf4xHw2F8Uudh+mf8VE/OJGnLNquphJjKdSS2ROO0TSabspKaaSWXpE7VZTkSktJ1XcseH9PT5zRj2DaEAbEpSiLyo6NAOgERmyLObCod1NIxLYMhRS6ZOvRlicRmWIf34jSN8wvzGinOtQvysPYwv+nAAlz9gpAlu0NtWVVzmdlVCzS9DGvV58WlelvBUr3uxHE8VJ5V/qwW3pxtx5JLvg3V/jwR9afti7Y/6vt+R8/G25vBNk9avu+J7c3uhp79x69/c5806nMDE/2wWf4/fv0P3f/99o9axuPiaSIzk6Hkb1L/b5b+vg9avzcUfWDUFNkHuePQ9DaUdKa/7EyQFY6X1y1cjA63mA2lckSRcVIwtGmFIVKqsg79vCxDyomin3Uve+IWp2uAohjgmMZ+7fftenXTcAxENXaGUgY2KapdOYiZjekPIhOZUP4tT67MUZTPprD8usGOEV07DNkOqd8hZQmGtQodh/542uTrcVy5bPb7+vfWKrJRcXzFdTTzXbhrTJ7AqMVSNwbRUbkvWn+/PrE62mJ/TbN/FP0Bk42GPnNDiXTbovy/uPlGae7ijfegM29J+0GVwp7eFIvSn+5r4wDltK9ix3yb7RlLcJPFovp/S/zf+DCOhLex9/8JscLxTkmfvSEGg2JyAskpRJJlbHYoPgNDG9rTRw0x63qga+mirxhPAVvFgDtByahjndohbKmdVNG3/2hb6+bY8AP9g/eIRJQP/YgyUWTuMq5OECfDMaIvu+Q8sTEQVc6QsRoMNWUWh/hce8aqP75M7Eva4pVzFm/a4iprKnSc/PfXZ8Qx3jURbVJtWqt/Xtli7B/d1TntA6vAgW/YfFMOax9PyIRrOG4P5Z+5Wsalf66MZu2SL7z78FtaPnUTJTOEnmP1/3xbx6X/GPjN11d73+lWQP/P199w/f0xz5ddxTrm0ZLZuKdxxgETUrbgyxNghSNZ39sOr+O7U9BCfAwpy/KNQ8iimENVUhU31QxhhKdnTGu/go/ZtbiARTPg7CnVUq4dfJ+mTLsaUtZSDFmGykSRnb9w4Ko1YFvNmho5+G2EOeVbif62mE5SJV5zZOVZuVqCtlfb6LcdWV3Q/NY+jbQ4S5OhX4bpbUhNtVZFELMviaOPdi0ZKPTNxu/u2bh76rTp5+P80a/tbY3+yqLjwphpsv2h7x2dPbMulyexZmZruMRvfmZ3w7z9G6F/wxs+QoFzlwz8EX7z83rJ1J+y+T11bqb+I/X/eu0cfbz1de25ms/ihpcy0fT3x1CVYRHvnKztHX//b/kKx64K3gqbVHiHiljDUHecoaiwnVAc+sSkZsQxzEdeS8rli2edNnhYT11MywzCuBigfeQDu6ZYw8a+HSnLYOOQcv7DE7k5vZzU5Usn/INoX0ANXX4qkJYDQWQiBR5zKLJrI6e3MsWVtjgdqBP/DF1axlnI6zPW9GyK8UDZ+zwfJ+3nFT3ZML14J0w5af8wGvRwi/QXLoq0P17+9auO3pOubPQdKcapjxW+Ldb5vaFn+9QPDld/v86i5I6k/avoIY9ZPzFk/dTV0PQ2bIb+7OtSLpECgqHuHd42r08D+3/h/t+o8U+/4imvLZ9wJMnB1ZmJbeAm1vowpaXxZZcWjy3H8U/P6338nzwaQqsYwMvb0Iv5obkMKctg45CyJlEUmYMus/GkLoNRhpKbpmYpLAMfjhmGKnOiwDjNNxztmObDVvITfTktX9qigxLbxbJTdPX49VFX1tlQ/UulB6eX2ns7+vo3oMqWhdl9/Xs7e2afH8XxjcIDWiK6OjS9Dc3uhqQYbAvVRP6JrR2KLNxpuSxHcjhUmeojJ4vBR7l3dnHt8O3BMqo/zJflt7KIqRwlb2Px9wudvYNXF7VKGmMkLkJ/sld0iPr6D0wptX8KFL9Cm+s/pYlm//EzYz7WlP5PRydpZIzgkHJT/N8vHxVIPUD6J+tLkS3BQcYdSn+9pBaJEFo64XhpcFEX3rS3UpRAY8QBHYo7QpkUPcXS9F6cKh5/s3v50N1ULITWMpA5oHNKGI2OSu81pMx0hiIjjSE9mYcNfVk9P0tr9VFryU8BQepyqLKrH56FlEyCYKh7/lbqZAok0Q/bTFnbzjIpE3253nFmlnZoIZKXcZZedUUFKA8J38At3d/o6p39kaP65NkYftNaIvPbflfvpi+jeTiBJK/7Ovuy6ePHmd6Gprch81Trr5xrXLWs/Cj3lkfyi61QjgtSF2SiyiPYPyo939YWn9PVt+mXVkYRiAUO8QHTJdOPjVfdSY/J2fGMs9HpX4Q2w+vAZPX59nLblVDyzQlt/+FNHzkGF+CYf9EGlIm+bMcRqX5IY7o0hmI/lzezL6pvqP1H8P+ctmwmg2sucOzj34RZ4ajsf/szeNNe2YyjijkNRc38xo4RfZk2iW7rXv6vH+RzhP1WMaA2kk4EW43axr5ZRcbGkIL0AId+b6ijptbPbNoGJrM4X86OWzpWmnXOdMBALGULVla9/Hp87PpjIv7XqNR+amffphuKWNI3fUaLnX2Dd5SiqUtA0b3M02j9xeZmd8Mm2h8a8Ar0m6dNKS2eu3jTutHy0PB0oisJdR/RmbW4iAb4P0trRZizZOCBtlJ5JZzl9br1F6C/9Vm2wWTrp3XbNcKBye7/9dqvY52OgzbuGeb5Mw4N6bMqZ+S1dIUD126sRouy1phM9DuW62ymCFFkNxvEbdDru4859uqsoCBNXgb0Qs5SiejLtTUyh059InVyN0BLNs/HahdTN9YuKJWLzfiLHYLF1c10GAfwg8wjUdR2UdfSzRd09fU/cxhFNT0r29e1dHAlXhz3SVT2QmMq9G3uy7VLb4T98WVlY1spXtHVO3hd66/98nX25ebpX7vk5sR2LB1YE5XL5+KkNVS7Bl9nX66duhH2r11yq2J9nX25dnuarb+NdY0a/1o24dj52Af7MG1YpDTqyQH72OVW/3hM4zRVfptgHRKO++KUg/Gl0YI1b+aPh/1WMuBO+P7E0SaKDv3OkrXUlg+Iej2EoaaHR1iZ8A4NhlkpqSRpsUd09RrWqt+P8+W0vJzgp1E51z5r6yHqhxrv4KT3p6gturBr6eNnYTn//lw1E3q3q2fznaUp8Sm4aPc7MNlu44G9V3g3HAX/tLWG5tsfbRvCe1Gu6ew7eencvs2PTQySm6v/O6UCH8RRh9DOJQMD0fS5PfCO3zCJ9SFN3lz9pS7nh1avYZ3mjiqaZWg5GU50/ze9DamoyURfrkeCn0Zly8cx2ev/roCWvbwtOXhgNZvkB/+CG43HUo4MQJoSHLjfx/Qo0r+FC1Ium7viqR1+OUGeQAz44wealdsVp+YSnTmuympnasF9Oq6iiCo755F45xdMmaV1PoMYudpajml55kcaZWW7AiXSl11GB5zpq5/atw9OiiibZtXp02h32FLhjaxsNS8C/W1pWunWrlMHX8rlnFS7x5y+eT8a/L3khTN/8vKu164Cq3gGTrKgnv7GA+2uNlfOVVY7kQC1u9kIEWSNmZ2JTNZ0zGFpNQG3w+xfivqxonFDR98nfs+Hm5VKzXtSOVs0uqADNfXw/VP1Mp1Q0mHq37IBP0dC58I1+xD1uV3rF94SR9GNlUpyOpM0W/98+Xl/yTVzVLu48YEtr53Woh3mdv9/xj/HTkv8Lxl6/9Sdeyq8gAgOxgHbDQ4C7HjaOnUOr7PJKEOTaYI4jj5/zPKnH61t6RDbSgbMpmZfIoOeYDKbj3S8pg7OP3iME1J4jCD3h5XP4/Qz/KXHXZxE5DZS3iHS549LsQnK1uKH1+/8G77Ka6eextntMTyW/L4ZUfl+Pt8iV/2k33UvSLwpSS6/eff6Jy+CbVZhQnYJOvpRVG6YfRw/9fyjJiHjsD++mLwIL/gdVpFuP6ZncK2WOxEmGpmG2XiX9Y/sqCeNQ3/z/9avb3h6QOzu2/Jgkny356X+O1fhJ9QvJZVkmY0J1Sm9vcPQ38YCYqOCcDtC/6/n36ZrveM12+g1XcajSTD+mR4tmXDs2H3wYjRgNhtRbXhjUtF8wtBPj1nxT7uXP/NrxoUwcRkw+xqypb48Ust1ENZvPpKWrsHO7VyFZcmu5yTV5Vf7FMtDA/RbsorptyrsMkYhRT8OstVNlIDljTh+Az/v4Se96A0Utg9ZdwJ3YBDZjju1t0Xlts1JW7TZrQJYxiMa3e2keLR16Z7k2Q9Ne/nfe1biW+ylGCDPgX0WjFb58dof+WjILcCHYIs7O3suX6OrGaOtufB0qUf5NY9X/6yMan8u28w4S9ByydnlNjTkthf7TzsjqhzEzQTRJeiLxzVaf5ZX1f9L0au4ruBhfBG4v9xevmtcZKBMf8ypJdeKG01dTdcf7mF1aHuq/aU6DnvCn0MA9bJJk6atwYWQrkdrOrllbBZuXzv/bgwHHxvW+mEVUnnTkAdVxqB137wz+z5e1D3yw5oVIgIDgYFxM7B7fW837o48C9357EqSLER/PhED1wlYDSnLNKGqy2OHk8l00Ko5JrxZiuLnkHBrFMWb4iT6G27BfOToJQP/GXcjQ8aWMgB/iF75x6K+g3FyLqb0y9CYZbD8fNgYYpWDYN/isiNMwWBHkijCs1VKz+ILwBB85IlSnGzGz2ob5vQMPokTJpOFUAADZpcCqtIqdq8/pfvtt994ARZuy7xBj9nSOJEhv1xEP8Ptgk/NmPGe5WEwUc7CNjBwJDCAn2DaXhwYOj6qHDgRPz4dDZ1morPPEMQr5JK4UsEzSf6Lycd+DA/7S23xfuzviduirXNOH9gZThpHghccWgeulO3Z++oJlQMH34s5wjxMRGZiSgEfiWbgiVI8acA3nH/QV+LSPlwUvKcytbKjc9Hgy8FHDs1vEUcLn3DsWDv/eiytyvMyWDm9JG2Ere24bzP55Ro84XBvnCRnzFvx3JNFkBPqCAwEBgIDgYHAQGCgMQwUflssVkdX6zRDVzFUVmX0an/EYOrqyzyKOQie51a5Mkw2lKuwDQwEBgIDgYHAwGRioNAJxwtr5y/HTOIUWdbAfEN+OnGoP6doHFc8dNVDLwhkLPa/fvyZ2/4ymcgNbQ0MBAYCA4GBwEBgQBko9C6V6GDlKt5ByAmEBu5QdtMLd3EYf0qxIEej6NZjV2z7kcUFDAwEBgIDgYHAQGBgcjFQ2ApH8uz8aZg8XIEVjowhk4m+bCk4D4lK646dF19rUQEDA4GBwEBgIDAQGJh8DBQ24dixq3IBZhWz7A4UUmUrGUSVM+TKB6J3YZZyWbTgufDY8snnW6HFgYHAQGAgMBAYSBko7CcV3P/Me+7dQ0L4KGgGPlGPsv6kIlHpJnqrPU4u7VixfWcaFYTAQGAgMBAYCAwEBiYlA4WtcOAWk6VkyFY1KNuzfIj88FiGlWu7V2xv3Wui2cAQAgOBgcBAYCAwEBhoCAOFTTiSKOHLeqoWM/xbX30ZD2j58XFn7ZA3CTZEy1BIYCAwEBgIDAQGAgMtZaCwCQcuydjK6zfkeg0i/hgMReYKR6l073FnXfM1ORg2gYHAQGAgMBAYCAwcEQwUNuGIytFNmE0c0Ks1ONmwu1UMufiRrJs5fdqqCf6SpSPC8EGJwEBgIDAQGAgMFMlAYROO48/YPoRJxvX48DGiAF3tMMTu2plTZl44u2/r3iIJCHUFBgIDgYHAQGAgMNB8BnTBofn1pDVse3jeBaj0i5hynIe5x1t4y+Mz2P/F8WefdEcUrXknTRiEwEBgIDAQGAgMBAaOGAb+B5nwCpLPLNx7AAAAAElFTkSuQmCC"],["fxFlex","30","width","295","height","295","viewBox","0 0 295 295","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M182.629 183.635C213.842 170.774 228.719 135.046 215.857 103.833C202.996 72.6204 167.268 57.7435 136.055 70.6048C104.843 83.4659 89.966 119.195 102.827 150.407C115.688 181.62 151.417 196.496 182.629 183.635Z",1,"fill-color-0"],["fill-rule","evenodd","clip-rule","evenodd","d","M169.522 122.093C171.059 115.241 166.054 111.136 159.022 108.13L162.04 98.916L156.431 97.0797L153.493 106.051C152.019 105.569 150.502 105.104 148.995 104.643L151.953 95.613L146.348 93.7769L143.329 102.988C142.106 102.615 140.906 102.247 139.743 101.867L139.752 101.838L132.017 99.3019L130.057 105.293C130.057 105.293 134.224 106.57 134.131 106.624C136.402 107.369 136.71 108.93 136.552 110.138L133.115 120.635C133.271 120.687 133.473 120.761 133.695 120.869C133.66 120.857 133.626 120.846 133.591 120.834C133.562 120.825 133.534 120.816 133.505 120.806C133.375 120.763 133.24 120.719 133.102 120.675L128.284 135.38C127.95 136.062 127.157 137.065 125.569 136.548C125.62 136.635 121.492 135.211 121.492 135.211L118.184 141.544L125.483 143.935C126.298 144.203 127.103 144.476 127.899 144.746L127.901 144.747C128.431 144.927 128.956 145.105 129.479 145.28L126.429 154.6L132.031 156.436L135.051 147.215C136.579 147.75 138.064 148.25 139.517 148.725L136.509 157.902L142.118 159.739L145.166 150.437C154.773 152.984 162.15 152.77 165.87 144.183C168.867 137.27 166.555 132.99 161.623 129.952C165.417 129.361 168.406 127.109 169.522 122.093ZM155.149 139.449C153.059 145.84 143.068 142.413 138.496 140.845L138.496 140.845C138.085 140.704 137.718 140.578 137.404 140.476L141.449 128.129C141.831 128.254 142.299 128.395 142.829 128.555L142.829 128.555C147.571 129.985 157.289 132.916 155.149 139.449ZM144.22 122.79C148.031 124.108 156.343 126.982 158.247 121.175C160.192 115.234 152.086 112.815 148.127 111.634C147.682 111.501 147.289 111.383 146.969 111.279L143.301 122.477C143.565 122.563 143.874 122.67 144.22 122.79Z",1,"fill-color-15"],["d","M158.075 173.411C189.288 160.55 204.164 124.822 191.303 93.6088C178.442 62.3964 142.714 47.5195 111.501 60.3808C80.2885 73.2419 65.4118 108.971 78.2729 140.183C91.1342 171.396 126.863 186.272 158.075 173.411Z",1,"stroke-color-thinest"],["d","M259.352 172.363L85.4595 244.016",1,"stroke-color-thinest"],["d","M122.291 259.352L85.4593 244.016L100.795 207.184",1,"stroke-color-thinest"],["width","225.692","height","225.692","transform","translate(0 85.983) rotate(-22.3941)",1,"fill-color-30"],["fxFlex","30","width","298","height","300","viewBox","0 0 298 300","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M248.333 237.5V112.5C248.333 105.625 242.746 100 235.917 100H37.2501C30.421 100 24.8335 105.625 24.8335 112.5V237.5C24.8335 244.375 30.421 250 37.2501 250H235.917C242.746 250 248.333 244.375 248.333 237.5Z",1,"fill-color-0"],["d","M273.167 212.5V87.5C273.167 80.625 267.579 75 260.75 75H62.0832C55.254 75 49.6665 80.625 49.6665 87.5V212.5C49.6665 219.375 55.254 225 62.0832 225H260.75C267.579 225 273.167 219.375 273.167 212.5Z",1,"stroke-color"],["d","M6.20851 200H24.8335V150H6.20851C2.73185 150 0.000183105 152.75 0.000183105 156.25V193.75C0.000183105 197.25 2.73185 200 6.20851 200Z",1,"fill-color-0"],["d","M31.0415 175H49.6665V125H31.0415C27.5648 125 24.8331 127.75 24.8331 131.25V168.75C24.8331 172.25 27.5648 175 31.0415 175Z",1,"stroke-color"],["d","M161.417 187.5L142.792 150H180.042L161.417 112.5",1,"stroke-color"]],template:function(z,Oe){if(1&z&&(t.YNc(0,Ys,1,0,"ng-container",0),t.YNc(1,xt,18,5,"ng-template",null,1,t.W1O),t.YNc(3,re,19,5,"ng-template",null,2,t.W1O),t.YNc(5,pe,19,5,"ng-template",null,3,t.W1O),t.YNc(7,je,17,5,"ng-template",null,4,t.W1O),t.YNc(9,Mt,13,5,"ng-template",null,5,t.W1O)),2&z){const _t=t.MAs(2),pi=t.MAs(4),On=t.MAs(6),hr=t.MAs(8),Un=t.MAs(10);t.Q6J("ngTemplateOutlet",1===Oe.stepNumber?_t:2===Oe.stepNumber?pi:3===Oe.stepNumber?On:4===Oe.stepNumber?hr:Un)}},directives:[te.tP,b.xw,b.yH,b.Wh,te.mk,An.oO,F.n5,F.$j],styles:["svg.small-svg[_ngcontent-%COMP%]{height:50%;min-height:50%;max-width:100%}svg.large-svg[_ngcontent-%COMP%]{height:60%;min-height:60%;max-width:100%}"],data:{animation:[cr.l]}}),$})();function Kt($,Ze){1&$&&t.GkF(0)}const Jt=function($,Ze){return{"small-svg":$,"large-svg":Ze}};function fi($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",7),t._UZ(2,"path",8),t._UZ(3,"path",9),t._UZ(4,"path",10),t._UZ(5,"path",11),t._UZ(6,"path",12),t._UZ(7,"path",13),t._UZ(8,"path",14),t._UZ(9,"path",15),t._UZ(10,"path",16),t._UZ(11,"path",17),t.qZA(),t.kcU(),t.TgZ(12,"div",18),t.TgZ(13,"mat-card-title"),t._uU(14,"Boltz Submarine Swaps explained."),t.qZA(),t.qZA(),t.TgZ(15,"div",19),t.TgZ(16,"mat-card-subtitle",20),t._uU(17," Boltz is a privacy-first account free exchange and a Lightning service provider. By doing a Submarine Swap on Boltz, you can swap your on-chain Bitcoin for Lightning Bitcoin. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,Jt,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}function Ai($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",21),t._UZ(2,"path",22),t._UZ(3,"path",23),t._UZ(4,"path",24),t._UZ(5,"path",25),t._UZ(6,"path",26),t._UZ(7,"path",27),t._UZ(8,"path",28),t.qZA(),t.kcU(),t.TgZ(9,"div",18),t.TgZ(10,"mat-card-title"),t._uU(11,"Step 1: Deciding to Submarine Swap"),t.qZA(),t.qZA(),t.TgZ(12,"div",19),t.TgZ(13,"mat-card-subtitle",20),t._uU(14," You have one or more Lightning channels that are running low on outbound liquidity and you want to fund it using your on-chain Bitcoin. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,Jt,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}function Zi($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",29),t._UZ(2,"path",30),t._UZ(3,"path",31),t._UZ(4,"path",32),t._UZ(5,"path",33),t._UZ(6,"path",34),t._UZ(7,"circle",35),t._UZ(8,"rect",36),t.TgZ(9,"defs"),t.TgZ(10,"pattern",37),t._UZ(11,"use",38),t.qZA(),t._UZ(12,"image",39),t.qZA(),t.qZA(),t.kcU(),t.TgZ(13,"div",18),t.TgZ(14,"mat-card-title"),t._uU(15,"Step 2: Sending the on-chain funds"),t.qZA(),t.qZA(),t.TgZ(16,"div",19),t.TgZ(17,"mat-card-subtitle",20),t._uU(18," You send the on-chain funds to an address which can only be spent by Boltz when it pays a Lightning invoice to your node. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,Jt,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}function en($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",40),t.TgZ(2,"g",41),t._UZ(3,"path",42),t._UZ(4,"path",43),t._UZ(5,"path",44),t._UZ(6,"path",45),t._UZ(7,"path",46),t.qZA(),t.TgZ(8,"defs"),t.TgZ(9,"clipPath",47),t._UZ(10,"rect",48),t.qZA(),t.qZA(),t.qZA(),t.kcU(),t.TgZ(11,"div",18),t.TgZ(12,"mat-card-title"),t._uU(13,"Step 3: Receiving the funds on Lightning"),t.qZA(),t.qZA(),t.TgZ(14,"div",19),t.TgZ(15,"mat-card-subtitle",20),t._uU(16," Boltz pays the Lightning invoice to your node and claims the on-chain funds locked in the previous step. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,Jt,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}function Cn($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",6),t.NdJ("swipe",function(_t){return t.CHM(z),t.oxw().onSwipe(_t)}),t.O4$(),t.TgZ(1,"svg",49),t._UZ(2,"path",50),t._UZ(3,"path",51),t._UZ(4,"path",52),t._UZ(5,"path",53),t._UZ(6,"path",54),t.qZA(),t.kcU(),t.TgZ(7,"div",18),t.TgZ(8,"mat-card-title"),t._uU(9,"Done!"),t.qZA(),t.qZA(),t.TgZ(10,"div",19),t.TgZ(11,"mat-card-subtitle",20),t._uU(12," You swapped your on-chain Bitcoin for Lightning Bitcoin, while also adding outbound capacity for your channels in the process - all in a non-custodial manner. "),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@sliderAnimation",z.animationDirection),t.xp6(1),t.Q6J("ngClass",t.WLB(2,Jt,z.screenSize===z.screenSizeEnum.XS,z.screenSize!==z.screenSizeEnum.XS))}}let In=(()=>{class ${constructor(z){this.commonService=z,this.animationDirection="forward",this.stepNumber=1,this.stepNumberChange=new t.vpe,this.screenSize="",this.screenSizeEnum=j.cu}ngOnInit(){this.screenSize=this.commonService.getScreenSize()}onSwipe(z){2===z.direction&&this.stepNumber<5?(this.stepNumber++,this.animationDirection="forward",this.stepNumberChange.emit(this.stepNumber)):4===z.direction&&this.stepNumber>1&&(this.stepNumber--,this.animationDirection="backward",this.stepNumberChange.emit(this.stepNumber))}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ci.v))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-boltz-swapin-info-graphics"]],inputs:{animationDirection:"animationDirection",stepNumber:"stepNumber"},outputs:{stepNumberChange:"stepNumberChange"},decls:11,vars:1,consts:[[4,"ngTemplateOutlet"],["swapStepBlock1",""],["swapStepBlock2",""],["swapStepBlock3",""],["swapStepBlock4",""],["swapStepBlock5",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between center",3,"swipe"],["fxFlex","30","width","323","height","323","viewBox","0 0 323 323","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M53.8333 134.583H80.75L94.2083 161.5L117.792 134.961C121.616 130.658 125.869 126.602 131.194 124.413C136.45 122.252 142.103 121.125 147.842 121.125H242.25C286.847 121.125 323 157.278 323 201.875C323 246.472 286.847 282.625 242.25 282.625H147.842C142.103 282.625 136.45 281.497 131.194 279.337C125.869 277.149 121.616 273.092 117.792 268.79L94.2083 242.25L80.75 269.167H53.8333L67.2917 228.792L53.8333 201.875L67.2917 174.958L53.8333 134.583Z",1,"fill-color-0"],["d","M26.9167 107.667H53.8333L67.2917 134.583L90.8755 108.044C94.6993 103.741 98.9527 99.6849 104.277 97.4963C109.534 95.3357 115.187 94.2083 120.925 94.2083H215.333C259.93 94.2083 296.083 130.361 296.083 174.958C296.083 219.555 259.93 255.708 215.333 255.708H120.925C115.187 255.708 109.534 254.581 104.277 252.42C98.9527 250.232 94.6993 246.176 90.8755 241.873L67.2917 215.333L53.8333 242.25H26.9167L40.375 201.875L26.9167 174.958L40.375 148.042L26.9167 107.667Z",1,"stroke-color-thick"],["d","M134.583 215.333C142.016 215.333 148.042 209.308 148.042 201.875C148.042 194.442 142.016 188.417 134.583 188.417C127.151 188.417 121.125 194.442 121.125 201.875C121.125 209.308 127.151 215.333 134.583 215.333Z",1,"fill-color-15"],["d","M107.667 188.417C115.1 188.417 121.125 182.391 121.125 174.958C121.125 167.526 115.1 161.5 107.667 161.5C100.234 161.5 94.2083 167.526 94.2083 174.958C94.2083 182.391 100.234 188.417 107.667 188.417Z",1,"stroke-color-thick"],["d","M201.875 215.333C209.308 215.333 215.333 209.308 215.333 201.875C215.333 194.442 209.308 188.417 201.875 188.417C194.442 188.417 188.417 194.442 188.417 201.875C188.417 209.308 194.442 215.333 201.875 215.333Z",1,"fill-color-15"],["d","M174.958 188.417C182.391 188.417 188.417 182.391 188.417 174.958C188.417 167.526 182.391 161.5 174.958 161.5C167.526 161.5 161.5 167.526 161.5 174.958C161.5 182.391 167.526 188.417 174.958 188.417Z",1,"stroke-color-thick"],["d","M269.167 215.333C276.599 215.333 282.625 209.308 282.625 201.875C282.625 194.442 276.599 188.417 269.167 188.417C261.734 188.417 255.708 194.442 255.708 201.875C255.708 209.308 261.734 215.333 269.167 215.333Z",1,"fill-color-15"],["d","M242.25 188.417C249.683 188.417 255.708 182.391 255.708 174.958C255.708 167.526 249.683 161.5 242.25 161.5C234.817 161.5 228.792 167.526 228.792 174.958C228.792 182.391 234.817 188.417 242.25 188.417Z",1,"stroke-color-thick"],["d","M189.321 97C186.935 97 185 98.9345 185 101.321V112.679C185 115.065 186.935 117 189.321 117H237.679C240.065 117 242 115.065 242 112.679V101.321C242 98.9345 240.065 97 237.679 97H189.321Z",1,"fill-color-15"],["d","M161.5 67.2917V94.2083H215.333V67.2917H161.5Z",1,"stroke-color-thick"],["fxFlex","20","fxLayoutAlign","center end"],["fxFlex","40"],[1,"font-size-120"],["fxFlex","30","width","347","height","169","viewBox","0 0 347 169","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M89 157.417V41.5833C89 35.2125 92.75 30 97.3333 30H230.667C235.25 30 239 35.2125 239 41.5833V157.417C239 163.787 235.25 169 230.667 169H97.3333C92.75 169 89 163.787 89 157.417Z",1,"fill-color-0"],["d","M6.25 134.625V18.375C6.25 11.9812 11.4812 6.75 17.875 6.75H203.875C210.269 6.75 215.5 11.9812 215.5 18.375V134.625C215.5 141.019 210.269 146.25 203.875 146.25H17.875C11.4812 146.25 6.25 141.019 6.25 134.625Z",1,"stroke-color-thin"],["d","M256.188 123H238.75V76.5H256.188C259.442 76.5 262 79.0575 262 82.3125V117.188C262 120.443 259.442 123 256.188 123Z",1,"fill-color-15"],["d","M232.938 99.75H215.5V53.25H232.938C236.193 53.25 238.75 55.8075 238.75 59.0625V93.9375C238.75 97.1925 236.193 99.75 232.938 99.75Z",1,"stroke-color-thin"],["d","M146 53V87.875",1,"stroke-color-thin"],["d","M146 122.634V122.749",1,"stroke-color-thin"],["d","M344.698 95.3022C346.74 97.3445 346.74 100.656 344.698 102.698L311.418 135.978C309.376 138.02 306.065 138.02 304.022 135.978C301.98 133.935 301.98 130.624 304.022 128.582L333.604 99L304.022 69.418C301.98 67.3758 301.98 64.0647 304.022 62.0225C306.065 59.9803 309.376 59.9803 311.418 62.0225L344.698 95.3022ZM277 93.7706L341 93.7706V104.229L277 104.229V93.7706Z",1,"fill-color-15"],["fxFlex","30","width","454","height","243","viewBox","0 0 454 243","fill","none","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",3,"ngClass"],["d","M141.75 172.125C178.098 172.125 207.562 142.66 207.562 106.312C207.562 69.9653 178.098 40.5 141.75 40.5C105.403 40.5 75.9375 69.9653 75.9375 106.312C75.9375 142.66 105.403 172.125 141.75 172.125Z",1,"fill-color-0"],["d","M121.5 151.875C157.848 151.875 187.312 122.41 187.312 86.0625C187.312 49.7153 157.848 20.25 121.5 20.25C85.1528 20.25 55.6875 49.7153 55.6875 86.0625C55.6875 122.41 85.1528 151.875 121.5 151.875Z",1,"stroke-color-thiner"],["d","M20.25 192.375H222.75",1,"stroke-color-thiner"],["d","M192.375 222.75L222.75 192.375L192.375 162",1,"stroke-color-thiner"],["fill-rule","evenodd","clip-rule","evenodd","d","M161.033 82.5635C162.307 74.0523 155.826 69.4769 146.965 66.4247L149.84 54.8952L142.822 53.1462L140.023 64.3718C138.178 63.9121 136.283 63.4783 134.4 63.0486L137.219 51.749L130.205 50L127.328 61.5255C125.801 61.1777 124.302 60.8338 122.847 60.4721L122.855 60.4361L113.177 58.0194L111.31 65.5152C111.31 65.5152 116.517 66.7085 116.407 66.7825C119.249 67.4921 119.763 69.373 119.677 70.8641L116.403 83.9987C116.599 84.0487 116.852 84.1206 117.132 84.2326C117.096 84.2236 117.06 84.2146 117.023 84.2054C116.981 84.1948 116.938 84.184 116.894 84.1731C116.732 84.1323 116.563 84.09 116.391 84.0487L111.801 102.448C111.453 103.312 110.572 104.607 108.585 104.115C108.655 104.217 103.484 102.842 103.484 102.842L100 110.875L109.133 113.152C110.152 113.408 111.16 113.67 112.156 113.93L112.158 113.931L112.159 113.931C112.823 114.104 113.481 114.276 114.136 114.443L111.232 126.105L118.242 127.854L121.118 116.316C123.033 116.836 124.892 117.316 126.711 117.768L123.844 129.251L130.862 131L133.767 119.361C145.734 121.625 154.733 120.712 158.521 109.888C161.573 101.173 158.369 96.1458 152.072 92.8677C156.658 91.8103 160.112 88.794 161.033 82.5635ZM144.998 105.049C143.008 113.044 130.493 109.739 124.766 108.226L124.766 108.226C124.251 108.09 123.791 107.969 123.398 107.871L127.252 92.4219C127.73 92.5412 128.314 92.6723 128.976 92.8208L128.976 92.8208C134.899 94.1498 147.037 96.8734 144.998 105.049ZM130.167 85.6513C134.942 86.9255 145.356 89.7047 147.17 82.4376C149.022 75.0044 138.901 72.7637 133.957 71.6694C133.401 71.5463 132.911 71.4377 132.51 71.3379L129.016 85.3499C129.346 85.4322 129.733 85.5356 130.167 85.6513Z",1,"fill-color-15"],["cx","371.815","cy","95.815","r","81.815",1,"fill-color-boltz-bk"],["x","313.615","y","82.836","width","110.745","height","30.1472","fill","url(#pattern0)"],["id","pattern0","patternContentUnits","objectBoundingBox","width","1","height","1"],[0,"xlink","href","#image0","transform","scale(0.00185185 0.00680272)"],["id","image0","width","540","height","147",0,"xlink","href","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhwAAACTCAYAAADFh8BYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACHKADAAQAAAABAAAAkwAAAABS37hiAABAAElEQVR4Aex9CaAkVXV2VfebfWWG1QWQRYddNgmCO6CiIGrAKC6gUWOIUROz/CYm+OdP/P9f82viEmNUcCFRUVFQlMUIgpIoCgwO2ww7IjLMMMub5b3XXfWf75z7Vd2urn69vK5+/d7Ufa/qnDr33HPPdm/drqquDoNdvMTxhSPBE5vODuL6BUEcHiDumBcE8Y+DYORT4V4fu3YXd09pfumB0gOlB0oPlB7oiwfCvkiZoULiDe9eGtSCH8RxfCJMCOUvlj/AIAyjoBL/abjHJz4+Q80r1S49UHqg9EDpgdIDQ+OBXXbBEW/8i2XB+ParZYHxHDohlrAAB0QJw2AiCOccGu75sXVGKfelB0oPlB4oPVB6oPRALx6o9NJopreJ469Xg4ltX8NiA8sLLDD8xQYWHbrwiOM5QVC7YKbbW+pfeqD0QOmB0gOlB6bbAyPTrcC09P/bH39EbqO8NF1mRKoGbqbYAgRQCkAU47mOspQeKD1QeqD0QOmB0gNT8MAud4UjfvyCt8Rx9D5dbMg9kwT6OK95xHrtY/EU/Fs2LT1QeqD0QOmB0gOlB8QDu9SCI37sghPievyvSeR1QSFHgD7uGPRmSxj8POEvkdIDpQdKD5QeKD1QeqAnD+wyt1TiJ9731Hhi52WytJinFzDy3OUueOitFNTjAkcU3ZDHWtJKD5QeKD3QLw/Ej55/TL0e7tcveamcmqCY5gGDoFqdf0P4lM8+oQflrvTAgD2wSyw45F0b84PHHr9MntvYJ5RbJ/aYqHgat1FwZUNvp7gHRYWEdQdKWAk3BXvt+UM7KvelB0oPlB4oxgMT9VjeAxS9FXMTv56vPeFDDz8IAW2cspLpixdos/XWGIsNm9XiaOeL5eBHspWl9MDAPbBLLDii3zz2OfHs8fCuLDpSJxN3kDUpjP+9Gl64M21QYqUHSg+UHijAA3Gkc5N+IBIcEAVzkbfeUJq/c2z8zJSzAJEljAgJQ85qfusSLz0wWA/M+gVH/Ngf/GW9Hp8Lt+av/jmkwUHcBmclnnMRqGUpPVB6oPRAoR6QVYVe2ZDVgS06bA5Cn/xcZP1z+eEWJBl+tk0WLNl6d6WjUFtK4aUHWnhgVi844t+883T5sPD3/BQAH/i4fFvFDW77WqwNVqMJfke4zydvbuG3klx6oPRA6YH+eUDWF7z6Sgjh7RYQ4PH5iRNm24O/LKUHpssDs/ZbKvGj71glnxX+I4qj1EZ+VAD0ced9DlLAOIi+MF1BKfstPVB6YNfzgLtmwactxAG4HYIrHQZ9HDRsfhvDcaUkLfhQhQJIPK0tsdIDg/VAejIebL+F9hY/+d7lcRxeHkX1pRh8HGxYRigO6AYrIQcpoFwFqVeqI5cUqmQpvPRA6YHSA4kHbE7CIbC0ELcFhtFJw9xmuH5I8hYnkGKbzoCC68yWii2x0gPT4IFZd0sFry2v/+bar8lgOxj+bBi8GIMcf6jDg1T45wNVimuj74d7fvoxwcrSgwfih9940EQU/lleU/mcJS9/CQNAFOKARRR8vsOq2j7npThX2j3rE8by6H+4Qz447qxUgh0y4T8hv/b368pI8Os54fyHy68eFhHNXVAmhok3ZyV4h8MFCxF7ds3GmwnbBf1YmjwUHph1C47oNz/8R3l3xmnwbu5YFWIyVjkGCW1kBtVK9aKhiM4MVaIWB/vIQu8deerb3MlLwRKjzHM0CEXD/CoxsUkziVqDWNYBorAtubP3sPP5PX2kYSiyYiegiZ/6JD3JzTcwY2IP6kFcC4PxeFsw/uCbHpeF7K2ShLdVK+F/VaPFPwr3+5cnG5QvD0oP0AO6IraPR0i9dErKyX+Xm2iKFv7XaN1nKMlhE4z819wELEvpgWn2wKxacNQeeft5UVR7j/68vDhWx5gMPH+sNQw7DEoQ3ODEya8ShhuCffb57jTHZeZ37xYAGRc32WXzoUyaLjCMD6Gd8DFnWpAYLtarQFfXJFwI2t7BpN7jt/7THMntT/iT/og7GWqf4C6FbLGCjuJoTyGeJvTT5FtSQT3cUh974I03i6Dvz60El4RP/8q6RJ8SKT2AS26SLMwzwtx8FFbWq+NcLuY5MTf/8xhLWumBAXhg1iw44kfeeWI9qH/GX+0nZwF3NsAgBcrBqrjsXLW6Wz5oXCLv3hgfgO/LLsQDmBAREYNwSWOU9EhY0phlPtGhrfxxkWnS/JhaLSnMD/Ij+CobDbUIopc3SGjUh32lSwxKZvtGflLFzKpwniD9nTBWDy4ce+Dcm8KwctGcfatfDsOLy3e90FG7KIwj3NxDzjXmjx4JGRAlm3/ZfPYl+C2yWWp15b70wGA9wFvZg+21z73FG37/aVFY+5YMxnkNA4srf0DZ9KTmoL/yx2DmgB4JRi7us3q7pDhMjPiz5YBB4IgDIXAthDggDigb/ggVBwtorUqmvbKRJgdsC6h/rg/kAxc9hGgLHkIfV6LsmDfMIfAABzQ8hbRbfRLHJ8pDzZ8de3Di/rEHz/3zeP1bl1BmCXdhDzBXAV1uEiKTUAhzvZRpbw388YK3jpal9MD0eGDGLzji+H0Lajvib0dRvLcORR1wGGCy6XV6B5Nr9jxFpAPXTgloE94ePvUzt0xPKGZnrzx5Jyd0cb/S3BlaoyE7d6gIaQ1n8xbuwW0wFP32keISTQc1B6xW9z3tMhO46iY06qtZg/7dhj6As7S3P95beP7PxLaxdeMPveE8wbULti/hruEB5hMSSxMgIYj9Ssj3Q+H5n99tSS090JMHZvyCo/7o5s/LGeZYWN80ucuJR2k4AelJCEx2gsrjr5Tv3oBbBlqyMcOxv8mBi6Gcxj2cPFCWMlRxf2HpP6AhbdG+adOn7IQO6OPk9WUIrn05SB182KSPKtV6R93lfTF7RvX4op0PnnvD2P2vX9W6RVkzGz0gjx5rbvm5pLnh5Txy16cxdwjVL8hXFEBsyGNC4OUFDvNPuZ8WD8zoZzgmHnnrB+Iofr0MIy0YajIkGz4QuOGn9awDRPH55WnuWmVk7r9rRbnrgwfMx00+F7LSGDT0hInQFcaLEEHSJ+4dgXRChFLnWIqgLELI9XF21ClkW8K28hJFtIeu7Y/jk8Tmn8szHu+ct/8lZT52GqdZwse8Jpz2/J9mv8oPb86dePjeI+WL7cfJkuy4MIqPkxl+N3m4/6Nz97vkE9OsXtl9lx6YsQuO2iPnv1Im878zeznJY5gCt+GKlT+/Fgk+4vpVMRCkJAM7Dr4b7v2Zx41a7qfqAX7q0ofaEAfGROLDB93QB/FW9RpOMDLEwLPFq2snrzFDbC2iNCdD20+ib7brqcrL01ceWl0s32u5ZOcDb3juvP2e+cdheGF6WS6rQHk8qzxgC1R9ysfsYm4T5lnr1eXlE2nWNJnx8iRNKw3vUBp/5LLDwnrluCiMj5c55LixB+46UsybS8XMVHgpWEZaCWeOB2bkgiP+zfmH1iaiS+TUJbeEkIJuEOklcRxaWloYUtzud+KyOOfv9HQRVoOLjb/c98MDnNZs0YcTu8XBru5iIWi9NF0BEDJpnejB6HtRds1SiuVIvjTqSZjVF6mlujsGAPZJiWyLY+KEWXld2R9HF4w/ePfKOH7Hm8PwsxPsr4Sz0wPMe8JOrGQuptlOjBBSfLwTqcXzyJWLyvgDdz8zrITHy92k4+phdNzYg986WlRdEMn7bDCFcwwRFq9V2UPRHphxC45407t2m9i6/TvimKXpQLIB5c5p3hV0d889Sd2sO62dnATWV58y58psbXncuwe4wMDKwk7Y3rSRg5JkJ2jGLad/O2PLbORaSNBj0oSd32jlo5f8dAeIgogDs8gDEcxrn70KppO/1AOiaI6JAOZa0tbTJ6GhAdqyDxyjONV9lKSs/XL8e2MPbFkon/5eE4bn1LV9uZuVHtC8lFxhDuYayVz18q2b/J+uRzh2PvSWA8OgJrdEouPltTTHyWLjGBlTS+SWuJrJz4jZ/G/ygbPfv0rdxFMShtYDM2rBgUtuEw999+syIg+CR/VkILM3TwbZkws4rPBkYZ+s9QQgFRzYMtC/Un6CdK7qC5BpLT2DGu7O0I0RyelM2ml8kvYIlGyuIdGkWhClJYRG/uzr67M5ArHaXmBPhSsPQhUmUhN9HD4F+yW/zxy7/5v/LPpd0JOOZaPh94DkB/OeUJXOJChzNUkvQZSWEKSVEszkbP4PYsKXH85cOD6++WVRGB4X1oPj5LcFjotrO3eDKSy8xszjBIrundif8JfIjPLAIPKvbw6pP/Ldj8kq4ZTk7KODUXbM5MwtFczx/EBAJTSZeeDgSDjn4gypPJyqB5KYiCDgLSbEpm7YjhCNedkCopSOyZktudx0BAY8+QTo+nbV+DYAlDEIGbgCYTQcEfdvu7EN6pPJvJU91IsQfMBb8UOmX9iO0NkvVv7hzvted9f8A75WPijn+2u24Yw7YZ/zvxYWf41jorbtMHmP2TeR+Dp00+GVjoXEvkwASSdsYX8QcUBl2peHQ+2BGfO12PGH3vzWehS/GycCLBq4cCCEl4m3quc5CNDOSxGucvwyfPrnVg91lGagclgG4E+CkkDgWgjlQHkcNNzxoy02DZqDPs56E6h7Q70+0I+e8B3kHEWYtmqJNenXZI/IVnvQb6q7YVanMsCjfGADr5Um+Z4MyGu0P/jo2MPnHsG2JZw9HojwtVjEe9L4azKnOaH88EGaT0luMd/y8r9wt9WcFaKX6NG//Pftb3mNpHDryg5698CMWHBM/Pr858oPav0LzGw8V3Cg2UA1N5CGcWk4IDYsRAi5OJGnky7q3X1lyzwP4DMU4uSmhwRaNGxatUlS4qECDOby64QlTG4C1biB5jY0T2Kpshp3eGU0ir46Wl8f7XDQrCaBoJh2BrE3nVL90MR01saurcmCPN8GH0ddXn8mK5Xvy1B+z36xc259fOJieeBuRl2ZNE+V+8k8gIk4N1+8+GMMTDX/J9Ohn3WwJdceN8I4YrrJf9/+crnRz2gNTtbQLzjiX5//9Hhi4luRTLZ6QpBBx2RFAioOqDgOdZpWD/JEBJi3SbKPzwmD/1Dmctc3D/hnQ5tQbPLRCUhiQagxwQSE+Lg/rRMc0MeTernKARzP3yTP4IDmYgwjgLOAB4X8yBejudzR2pRfDyfZUTb7Ux2dTdaT6U0RPs3nZXu1qyv7g2N2PHjHeyi/hLPDAziBal57UPMF+epozHvC3vJ/sP7qf/7b+B/6E9dg3TxjehvquMUPv2/BRG3i23I62CvXo9lslsGpoxNQN7TyTybErV72V4RP+9KGXNklsWcP1OQSR3JCdQsBHkMo8NaFdRYjC5/gyaHheqJ2sQWeFuLWwPoSDqeHTt6CA/o46yFK21hzE0uROMrknPIKje3bQYjQNkByCztzCuih7JJDQerBX8aPn704t3lJnOEe0ICLDUnADU8OBdF/GwEwtpv8B3/hRb7A3WocoO8p57/YX17hKDyKhXQw1AuOiejxi+TKxjE6wjCs9ESVnjyyyctEbpXs/gnG4RcV4tVSqJ2Yxcl6gcFB4NkNk6fyCNSJFDHGv1sgZGOMuKEAGm6LhzRHUIscgQyTTYh+iLNeuYWPRXWRA+qJZ4asHZ4dElzqCPP6N6XQMYSYHELK9GFv9se7j28P/5g6l3CWeEBzFjvkGOc7w2mh5VySXkLuLv8pp3BYaP4H8sWXssxEDwxt3MYeOvev5Cvar8OAkvGnG3IYuMvlZOK3B0ndvXr9xoGFonlwWltX+9i8/Q66yvBy33cPuDO6LgLd5MlJ1IcaX/C6KPN2R6tbICpPeCkDehuNFkAWisls5udEnvZJXsBm/kb57AvQx61PdOv6BySPg2zjQ79P4J3aX69H7ymf5Ui8PgsQu6nSafyZQzCceWhOcPnXMv8H5KqC8x8P2ZZl5nlgKBcctYfeeKY8JCqvLc+u3u0k0fFg46ATmP2Th0W/LK+MLv47YjMvJ6ZVY06erWM8repJ540TumlD2tR168L+PcfuX3P61HssJQyTB7qI/zCp3TdddnX7++bIIRU0dAuOsQffclg9ir4it1L0AgUWCmkhDujjKUcDhlU2ilttN8Bg5ItWWe6L8ECrBUO7CaW5nlcSGPMshPbMBYTa8LT/ydsbv/H4uMnM9sV+CJs919x/qpNq2qRfu/rW+ssYOa9Zg5Iykz3QnD+t4285CmvTfGzffjDegR6+LuzVp/l463rKyY5FtijhTPLAUC044offtiKOJy6XRFyCMYRbJYSKi2cJ4WQ/YRVnkmNSx4YlC6F3f0W+3/Czeft9cQ1klKUID9S82152lQrxwWbPQxgELgFSGqCP8zkHcBgfsObSlAPCQlozd/cUpA8KoI8bVWsc6vTXI7PZ0s/wIuwXv7w8jt89L9WlxGa2B9KxMCz536s/kftF53+vupXtps8D/jcYp08L6Rn3o8cevPtSQQ7gkxZ6PpI6QijYiGOSt5dVo86ODOJYCR60AYAHjsKLQS5LgR5wgdJXoQjuXomiHfoxtEWIfa21F200+ljIMDM0yCKJnaAOs7dbLWRzBHXUAf0TB0RpV69M3i7LX6T9ouP8nQ/85kTp/jpPhRKdgR6I8JsiLue6Ub/b/A+C4u8i41cGMeRQisp/ueVuHZT7GeWBoVlwjD14z8fl5Uwv1kz1HvxMVw2WxHZCMB8Tb3VyyEYCfJUwHJtTCb6arSuP++0BmxCw5xpAe+A84aDWSVzc/NS0aGRb1ifChCAn97rE9F91cvMnoITZdQ6pjsYqQsyIirsVEfGkXtpCvkxwc+VHslbIBL+b4PuKxAPzPdZoII4gi9QEcQSt69F+7T+WMVMuONQVM3mHS81IiWy+MHcAtWQJyB1LIq3GMPAOHZ6OLydlAMASPGtP3/J/qK7ND8Cds6SLoVhw7Hjg9b8fx/ULbOZ3IwYObsrWyb0uF+2VgbCpvYxEuUnz7XC/f39yckll7VQ94J//fbw5qE0zqHRNmnFDF4ushxhhYuGB35qWHzSL7z977x1x/WR51Oj8MIjk1oZO+8mHVN9mH++z/dJf+Bz4pyyzxQONkx7znjAZCAlB7PZwveIhBF7xw1xIGjxEetHe8nPex/uV/2H5WypFh7AQ+dO+4Jh48PUny0Oin9Ixg8zEvJ1kKHGcgGSxoO9BkOndXQEBVR6c09OTMigGScZvNG8P3rBysUcp0cI84GZBhsMdWojkwIWIi0NCqOPjWfU4eQIOavLM6oDj8BmXPibgG9jG1r3u8CisfVqutjwvO8HryQC2FmC/SIUfn6mw3M1oD/hf8+w0/2FwNt/YlhB5x1+MHZSD5khHE0x45H0B+T8oW8p++uuBab0wFT/65n0narVvykQ9N1lkJIsNGMpZGpALC4NcUhAqt2uLWyfYdDg6qLLC8NF5+7/6GvCWpWAPmPvTyQaBYrAI81RoDLmETQgqCxDTaAqTSTVPzgBp8w762q/mH3AEbm18QtWznekNW6F/QfZLnu8Xx2fLa//LMis8gFxBAdRNdglszn+d64RBoRsrwJP2efmnHRS3m5DlxqT992H8F6d9KblID0zbgiN+9B0Lx8Z2fkeM25MG6kCRAw6eLAQfeXycfPqWfRlsgNhQCPUgir4UhufUFS93xXqAJ1hMfjrpYRK0iZGQcfMheDXGbA8tgQ95wTtdFh70rT+W50q+1qB/8fZXxu6L9hty95TqtfMAvpDncoUwyftJ8h8PKaMAYsOShBC4jjUHgQ+scPwWn/8DM6nsaOoemLZbKmM7N10st0OebXdQ0oGgg83ZZXUYTEawwSRjCAPIFR8njRBfodXB527ByAOjF7OuhAV7gJMbYsdJR9C8p9Z9TRB/a5LG2J8o8XQ6aob1KfUFixe9bcfW0ZPEjqepXQXbD1/Uw2CZ78OZiss31So7fr36KSPj8cpaVF1UqdQX1aPKokoYLZKoy53UyrZKpbItrkTbqlF129xKsN7d2pqpJjfozbwnTCo5loSQzX8dC0LnaGFbQJRs/QC+pOI6dhqZQqK4kfs1/stfUzF/zrT9tCw4xu4754PyyxRn5wyHBv9xnBGikgMrYfQI5CNUfncgC4+b5h9w6d1JuxIp1APJQpDxSeYf+RQmMeHzF+ADTn7irNeJCm3dhKVt8UlO40rhhZrSlfBw7y9v237vWR+V0+PHtSFVLMR+U60S1WfUD7lJ7MLxB1+zKqoFJ8s8cKRYcYDE/8Dt627ZXwI9b1xzIg7quBYZ1oMIb7FG/MMoqEd1OemGwURcDyaEvm3dq7ZLBt0nGXGfpMS91aB6SzCneuOC/S+9X1rMoIIRkI6FzvLfzGOK2ZGe4QW1AaMf1oSBH9oG5RCOZzHJioM6vvsw/pESZZl5Hhj4gmPs/nPOiuL6h/R8If6yEwcd1zhYSE0hspY8oBK3wdW8gPHrw4tSOSVWrAcmJDIWk8YFgkQIH3Hwn3wN1RYbCb836UJHx65QdUYKqAA9GsrdgiVzPr9jc+0jMunOKdp+nEiiOBz6BceO+16zX1yPXytxf/62ta8+WQK6EsHTE5CLOY79k67WW7pMFv+FMokcLoIOR8bV5S+cqAfb1r7qUfni0I3ybYYfLawE3woPuuxxyBveYiOgW/sRf8ylXFBYe/Oj2srFGs/QHd5E37b2LDyPdHpWftZ/GI7wuw5LxWU8R/V5yXjG4kKEcJ7v1/iX/v5k2z1nnZ/VL6uPKtaooCkLmuqbHoqm/2/RwZd9ymo63+9Yd9YH5TUq56FFUz5n7E+clfTfZv4TmbQJ8hlrQJR+2g957eSDxy/UzamTb381+OeFB377n9BuoAuOsYded3h9vP5l1crXOsGptsF845HA1sAmczjJ+M35ab15TwfEjvlx/PWkmxIp3AOY+FA0JoI3xsybgBwf+cGob5N1DRozAgJtAOrAdXmgHQ3RLtzz0tFt6866WfLyxELtF5t1DFT1GsAQecBUGZWvDlfqE2dLDF8vJ6HfERjKlR8JcZ/i7+y3nHGZQtlh+BRxzjlygjtnexB+cnTtWf8ZVsKvLqzE3wqf8e1NQ+csGQfMe0LoOGn+T26/mcgxQmjUTvZ7ie/kypMUjjngOZOyzr/JeG3UuLD8D4LdRL/d2LdC1dXlltNH5wmlY+dKxhfUuBIGu5GlG1iP4t2lnwPQhvMYIdSQq3iTzH/WE3Xoav5Dfy4e/bBf9Xe+sR8WcfnXQ/x9++WJhhVm5QAXHPEjb165c2z75TLlLOYoglJcEUIhTkSAVhAG4AwH8U7rnZggviw88BubeVTCAXjALQIZOUL0nAyOTtTITnCdtBkCHrH3Z2LoibSbEKr12/5KUNkyBCYnKoze9+qjglr0l2Ft/Gx5TquqNie1/bdfHOpJz6BSJ7VV4TlV7sKcKvdfPiW3YS6uzhn5yPz9vnlfhnv4DjvJ/zb269mOPGGnbxqVSyLiuOycDE9zFlZnUS5hxoOMDCGq+53/7eLfaD8UkM2dQlRtwQEjd9UVOnZdZoH9tNmPVT/in57P8ZbvARS8tnzHztFL5amvZ2D1jinAFhuIPRYdLonxkKfgyuMe9NTVvtORiQqIzXj99ilNebC2NL6LBmBm2UWeBxAkFAY5C1mnTBZ7oK1yQOWwDWW7tsME5OE+u4RPHbN285i2OOWZ753aj/FTCYdjwbHj3lefvG3tmVcGtfqtEsHfk7FXbYoX7Sbsg/3oA37AnyROAoFr/4TgiwK52Bn/QX28ds/oPWf++9h9r8UzJENTeol/N/Z3ZSj85XwH6OPqV8QQhdCOGvesA8zbwE0eQQu3H2dT9AeIDYXQjrrfT3YWpW15tvt1rtdpt9/XSXA/5j6exBJ6s02e5zJ1A7mlsuO+1bh/8yJE1r+iwTgTQl+dNBLFWUMI7YGbFeaA9PIsyBgfqQO0t4fnHXDkfwbBNxOpJTIID1jMONdrXHK61QhJJSCKroalKVfFiDFX2VovdRpiE69thnMXy9tsMUlbOhZpfxTWp/UKx7aHznxKPBZ8rFavndM4Qm08Kq1FvPoS/1bOlcTQ/JHc0rmCiSK6SGRw5eX1ovPrtq494zOLR6p/NQy3WnrK/y7sryVXj+mMfKiPfIhcxs5Gp/DqtXY40CiYr/EQL+dt5Rc28kM1pQ1Z/Gm15h9sSDRmTRdQLwaZgTPd/ux4YewYz57i7105mmxt1oXHW7PKvex3iBF/iISEMQlEJuLfQeBaCPNEuqse+Jiim3pDcEDFPQg5wiep9EV5R4KOnzyRJa1YDzBRGaIsRD5Y6Cw3JCGEoomB5LBpwEHjS0M9WaoUa1V76TKvLwQXdEbJ2s3jqdoPOfNrizZqJwPeyQvHqqNrz3hvtCO4S8bxOXndD8J+5AH9KUnjfK4TgFMpzZSsPvKJsiLz4R9uq0V37Vh75hvzbBgELdY7/aJnl/kPe7qxf6qfMHW+Rp/QUzYUQj3I7LL+ZpwI+5H/3dif1QfeM5rZklG/w8PWp5dsf7SbcLjspw8Im81nrLuNPyUVuuCQJ9OfL6vfT7IzLq4BsamzHQSeHWzgAE0hcC2E7tAHXEkBygbO6rzqF32WEh+MB1olZDZhJfw6YQH6ONtnIXLBZCC6k+TCYMxs2YvcPlzp20pGnwbct9nHUZe3Ze2XNr8OD75k4Fc4tq99zdO2rxu7UULwsTCMl0D3PP1hN232cdrmt/Fx1mdh1n7I9POAfbGdL1NxUZgQM4TyAUbRXrUo+rIsoC6P7z9ruckd3B46+bpS/yycqv2dPsFBy+EjFPWV7P15W+dxqUsg+LycBo5C6OO0y7fZx1mfhVO1H3ZoP7QI4wx/0HUKz15DZp7+vs0+Trv8Nj7O+iws0n71gShJqPqKbwjVd6IkYRJ3oUH3PP3R1ndrYQsOfA0uqsffkN8ImCMWwAozxEEY5SuouJhCCKPU2YSQIaXBGe6KB+576b0v7QZXP8AoD6iEwQ3zn37pOm1Y7qbFA4yXxjInhk1KIQFQAGVDUhMqjkPyCD6sJY7CQ6Fb0faLS28ftA+2rjvjxVEw8UuxTb554sYlxqmHU6fi7Xf9iyP8vti/TQY4sknBUsfmGaYRobaJ4zNGJ+o364OvqZDBYVQGULZ2+e/b7OOpwuYf2t/pFY6K+As3SvBPqC6EYIpU1A4s+inO/n2dfJz1TbBg+038JPFvUqgzwmyxX2MtJgMy7oRJ3HuIP71YyIIjfuxNi6J69B25TLgHAtwyGM4C1pMX0BIjhaYwLQX0cVebWYDI9/AvtppyP1APTMjnqFZB9AMruC4UHbRFo2QD4ojFiZ5ERHMHQSLO+oHa1WFnMrHKLeH4eblJ3G/7w3CgC47Re854v1w8vFq+3rqHnkA0NhYrjQnsQ6AAfVvpO58meF/ir4lhHXAxCohNVXEQOHROIRLKaNba4XF8YFCbuElsfQPpRUP4gXlPCEWhK6GPa4USrJ76tbO/0ysc+IFMja/6Lo2nT5uN8acfu4aIBTbxVwKBoxD6OGiyDWX+i2o2Tswextz0TWkdx99bZXgovDH1IkqE27du/aIMlaPgeFHPApAzODQwXr1vgI8rnycLMimXUHm8GUa+c7994dLdLoX4skynBzRCooCLmuaB4IB5OdFWVY5eN2Lb8g+eYdu6M0+VXt13z4u2P75lUBbKw5V/LxPkR+T2gzxw6eKpndPGPE1Y5/j7Hn/IRS6YfJ03BAf0cdabhtTJNQXRTyfBpe0CuRj8lW33vOId1mZY9lAUhQr3Yr9J6Gjvj1E/drMx/j2fDb18anIq6wBl833o+7apXStCP+JPnaSPrDh0SxpwX0df967jD2EFfC12+7pX/Y1MSq9tUNT6EuXdwzX6CdbDWU9DAX2c9WokDlzwlO45r8E5wTfCPb6wNWlaIoP1AGLhx8P17pagEkH7A5m0fAUZX4s5Hq6zFngg2OVQfsPpo8bx/1DbC7ZfrqLUFy2Yf9UgDB295xUfkZuxH2CsWsbPt9nHnZJt2zcZ0z7+k+WBLTqQitKz04dQu/J19HGplEM8DfaZrXe/8o+a1BoYof/2T0X1tvHzfejjrtO27ZuU67/9LePf43RCDVV132Yfnwn25+ibDUfb+PkyiHsPcfS8pssqguPt9575GgF/C6VMsRSmpxXWmAQ/WEwEQMNTqO3VAKMpD3oBb9Jf2os8en6x9VDup9MDFkdM3hYrrCOBp2tKwxE526CtnxU4Tgu/vgZIPK2dfmzb2jPeJva9kJoUbP8N4dMvLfwbKlvufsVHxY73Iy7mc4P0PyFt9mHB9ktXqU5p3rTOH1+3PDyrrxzLK1WiTxS/6Og1//trf+ITOfmaL2zcmm/TvhBzxp0waeshWX/2f/ynOvUj/p7qHaP8bJzXYKbZn9UXPmUeALdYG2TcCSezn3WdPkNE/pZw9L4zj4xr8ZfkzYLyVfI0BCkmTbFg4G0PHFr28SvdYoyapxAdYQgaDUcp3iDTqnSP+2H2Pfb4gfkHXn5depnEYyrRgXiAiWvhlgT1gubjWWXQjm2ydTi2OoN59dNJ27H2jBfUorr+FgNSHYW2+Db7uHGl++7sD7+dtiwG23L3K98eBtGf0h4blejLDMzGIzPEC7ZftMjNF+d80TLr/3z+1HfN/My1+OOjd52+bvGqK3+Qcvcf60w/6tS9/fi1mY6KfBTF5Z1sPBl3wtkU/17fNKoX7uEsKVl/ZfMJPKC1KkXHvzP56XydtYdxJ+wk/r6tfbnCET/6+t3ljbnfkcXGIpzwYZRubnUkR/qHjoGlhTigtSFEe0SPEDjqEpjHDw600XdvuAxIOyuxAXlgQvpBIloypgsIjY2LaSvcbwMcMSfU+KsNyIXhKqP3nP4eeYnUNaLVPNgGnX1bWtmbpfttaDehb7/QxoKRyleL9MKOe05/fiWIdAEFHagHIfSB/oS0mxB8xAE72fw27IfQt59288MNoOHwPRKHeoETfUMXxsQg5RLmy2dPcTWuBF/ded+ZzyKlnzCSy86+r6AT9SLM1w+2grcz+7vV2fpu7S/obP61+IKfdvh4J7FnO0Lre/Lxb7Hu3H7TqZU93XqH/BY76k048+xHLFEIzU+gwJa8eMDWdvFHe5YpX+GI43fMGV376Dcky/aHRrjK4DRD5hmuSqFLzUaDOFQ6aSBISW0VMbZ4YVI1idOJRNqzkfCjRXVu/EWVVe6mzQOWiAh/NoZ2QmB9VkHSCVGfh/u0rIxBHcuLr+Zuu3v7OfJR8M+jKD5C+3W5Tv0KtP+LSw64/LdF2brj3jP2rdXq3xQ75vh9tLOHdhO24/dlA2c7Qp/m43496H5prOOEYpBTESHa+fzECX25Ms0sm5ioXR6vPff4ot59wn4Ju9LPKeu3TeZGzpHJ9eMGy5oP5Ef28Jct7eLJvgnb8Wflsx0h6vNwn9ZKhtFpQ2fxz8rq5DisyJeII7tyRL0IZ5r91Jswa387e9iOEPzy8HUiZsoLDlls/LMsMl4AiXoJTpK04dqCP7KTBGbwbfXqKwfclEwTjfUG7QSm/enJzN1GAQF9heH1C/a/4n4clmU6PcAYQwf7hEltGE87Bp+3aExw0NIaO4KklCb34iryfMHzlLHFDmdLXHHhWZM4YDelEtTnxpVwtyCurJCHJ/eVtieN3rPtBLFsQZLWKrBBQ03JfttfCcNoZKTy0W7075ZXFhuflzjtnvF41/bY8C8o/h0YxczKzZ8O2ufY/8zRaCN8X8C3V/zc6SD/O9A/a38HTTIsvk7iDRx2MZ675U9HdzH2N1qTMbXHQ/nWlteysYeZb//U7IH9uuZwHprSgmPb2le8Sz7Z/QEHM2T6eM5g1c4tCKZB48nHadUjUFmVcK3odaaKkKWn5EJVf66yA5lYo4KXdzmJd9q+XRe+fFmkPb5k4cI1g3jor51exdS7TGDGMeggM4e14wwhwy9PBOkspxBNXT2g/M2Va1o/Bs5Faiocnchiw/WlEAQRRxoOmwp1s+Y2WkR+BD00MbBzOkOXpuLqOBLA42xQ1kx1IqsFf579ssT+4vwDv7u2qes+EbbcffrvyyR6iukrCtMGJWQdlO00YyDb0leZ6l7shz81D6Tr7CeubPy1W2eC2WPm0N1Z7ZPcZGgZO0AtWDyFb5dv7Xx98TO/d21T+ykRnKLsU2TlxX8q9tOK9mrKSVRD7emkjWZz/Dv3TqP//AUHZNBHQAX34smpI82/yfn7HX/0yzHRaIM7ouqAKNTdy/90zBpL476FPY6p5wWHfCf/BVG99k/UK+3UpxAn5EQBpZptsRMHHEJ+QBoAfrRPr2gQBzR5Ul+vv11ODm/HcSy/Rw0/1SguSQQjZCcrdFsXfnZPHNDk2Ykt1c/o6Z66ugaZ/mBLLaEFwej2bcHWu1/x9cqC6vsW7Xv5o6mc2YA5p6srBG/lEvUH7PX4EQDyg04ZwmV5b1fGtJXwgsaYEDc+NACXFEJ0A9x1l+CsB29DIaNBVU0u4TFHrD/qhYaN/Nav0Cgf1X7/efyT2F+phOsXL5r3Zw0q9vFg+92vfGotqHlXTxrtmW77La7TH/96VP+3+PGzjwj3vHS0b+5n3AlVMHPH4jBl+zt981di1K4e/8QRHSKN/ur3+J9y/KGeP/8Q5/zUZGWjPb2N/1RoTw+N7rj/rP2DqP4NUYVXqp1EXzlOCgYbHQU+TNop9HGbtH1ZqcKTYTzpAPYmz++zUYYvu7UOje19m32c9pme0Tn17RM/ie89e1lruTOtRpZVjIEHcZbGH6HiSoHfuMFW+hGshreSp7zK02F7GVgqEwPMwylfNXR6mn7oIdVHlrRQUJpKXqNGeAkTGWjvNkGsP4GKoz1o7s+kQyY3SAduBXJQKE/WOu8Ln3bZBqvt/34invhHeYvoslQ/05A9Tbf96jvnS+DqK8LEb63958fcx+lftVvk8Q92A2dJ7Jdn1rZt2PpXpE8d4kMT+yEUitpmUHHoBho3tFEetGE7QmsH3Whf0OFHTJNmcnLtl76Y94Tsw4fQzddXZYHm/qCz0mTfkf4ZedqmG/u9MZ+Nf8OPfsBpXRTfZh+fSfar3ohGQ3wsQnRFkv/Cx7gT+nYTh/14IJql6wUHXlteGxu/XAS6+7sQxWRphOhU1YUBHp7ysy2gFOVx0Me1EtWmOKCPu2o0JKfhrk+V2w95Kp194IC42WnHKe7b7OMpXyJj/9Hatn9Q8bNk587nelIHjsGNjbg7VA8CT7wmcVIcUDatc9BvS3kQbUIV0zbA0FbbSyNCLPqIJ/WOF7LzNuX35IEJtIRZ6vz+IQOFsoAozRGIu8Pu7A+DLyxe9f1LrIf+70fvfuVRMiHoT8wn+nkxoN2Eid1qlOlDlO37aj+6EMHaR9KB0ax3Fxs5gI7Y/Jj7eFLveCkuC1WGJw+dg6YwDP5YXgewF/ueKkzy3usP+lAH4FO1Xy6xdlToB/YNmNjt7LdAmE4Uqjo6Up6+Pg04bCYchP1qj3RIe7Rv5AkNmCKkHEDFZUcIhDggtmGynzr5UP0FPacQf3+R4eMidvIinYajm5/4sqxZ5Il8uAqF0I6627MtoI9Tik/zcav3Fx0+ztYWXTmiB9EHcO0rT57REueCE4MrKcQBfTxh6BLxZUQv7rLxULPTQ+pL0ZQ+lWnLcED5QzgINUyyS6AgWuegthDBCVT3yZGDqEFbQuDol9BiCf5EO+UGPwtko2gfHs76hJUiQNAmRlBUCHZk/SsufaoPUAfc/aluggPqJrsECgI+vToWxj9Z8qyl70r0KACJ4trf4T06EE39iCfdmYFms+KyI9RWaQuQzVYHaTchbAOPg4ndQoPNukBAneDUR5oaDuj6JUQNZBACR/+EwFFHCNwKodYqif3hAHhSiAoUOQvj8Z0fSOqmiEBPtZtQCOi7v/Z3tuLoxH5zCxwBw7GjpwwqRXyeQMXlmFBqNDYODsZ+65/6QnNngKE972eH/RYti6SPJ26BmShmriFKa21/en0j6PQCm3YRyLsGLpRkebUdSZ+SOHwOgjQfWjLZBAo6VCINx8QBtejIEi5AFJFvow0tc9oLH3UwBtNH2+XxS49wIr48i0KcjlV90KXWYqdfs1WYkDyEfQPmFZUnFZQHLtLAT9zBfUCbLaWVzVn76HtCTRIwOZeqb5BnrqHFzGKXykr9TzmEJiqtt4i2zoFm/jTvtC6b86KYxt8pqPoKY6pvGme0zxbqSUi7CVVOHKwJ5yx6TRheOp5t36/jzfecfkJcr50BeYkugjfZMwD7ZU65TZT4mSx9HpdPRL+Vr709XonDqiizRxQGe1biYC+ZxE4Sv68y+9P4UnfCZnsmnwOa+dvFP3zn9nWnfXThQVc/bLr0vledaYqD6v8+5n+XU/60xF89WJD9k41/nhe6jqC78o52TePFo+XJZZ4SctwT9jv+k9lP/RJdPN2hB0rTOU8q2s1/Fe97qx3e0QuCrXee/to4rn3QPgBZNqjy4mwGClQ6XLXjgdNWvy4rOL8228QvA0uLg9rcG2xW6e8dP6NjjT2Gxh7oSEJz/iT6Z/RJpx7rt5/2i6yB/QiX56DCUF5xwoJR8RaLyGRB2aLelhqIGJMICS5qu8MmA1AJWYwdcSefsScEH994q7La8UM08s3v38Npax/tvzWszj11yUGXPdFkax8JYX3C3iY6TfbLF8puFDdeUh2Jv7fwoKs6OnnvvOcVB0zEtdPlm3LniSuOVXcMOP4y2c6r1cI/kr7/Qvuf6i6jf7/zXx6h70jDyrzqH4/U6+7qjZfgSeL7tFTk+ER8thz9Qx/zX8RhxLn+BMBF8vD0x+eMBPpSurT3TjFfd+JhMG9Otbdno0aq/2teGH0i7Z0yQSFOmHINCpOYnCQuuxj9cd4jLHr+kx9R/fXI3MpFtLWjBcfo3S89qh7VvmhRF9VdodKEIKe1lhhKIzELJQZIniQmYPYK6xSCnuEnnVCbsg9ln/zTDPUmtAUIUtuSA3TSVHamA7YjRLXXvdkGGolZ6NsTB9eo+Nm2o/GEsM/Hs/aa61vmhHpYFw/OmQBoQ99C3mTyUd9NgSyehNGOuOoAQq4CqLBCXQhB9XHHloAG+8Nrls5feE74jG9vSuoLQLaue/We8fjoWbmii7Y/DO6vBJU/W7Lqqm/m9j8Jcf4zv3efVH9STvqf2nLPy94YRtGHJRpPndS/k8jLrerI/uA8eQncB/tyBaoh/nkauXxkwuemH4hTK4ufceVjvUjYctdpv23wP3OdEEJ9PNtJ5/ZvmH/Q1euyzafjeMnB318v/WIbuhLff9by8Yntf9KzYh3lf9MErN3JFLkhrMw5dcEB33uQ/bd9hmPr2pfvUY+C70iDRUmiQAkmDaEw+Lni4+zMJmccYUBwUBCmXAnmC/HxhCGDUBenn66yBQfkiptQWzbxm124RKSXiYSJMI+/gSYHvoo+rnzG7NCM/TLpLlm89GMp3yzGfMcIrv51kH73oTAYD2Ll4eSBp1QGXZaRjza2IGF7uRivcvJzgvmR5IzqJm0gF1uTPMptkTPUizCjn+qufVh7s0WvI3546arnvqzoxQbUqo+Pni9W6DfOBmm/vKDxn5ZWq4csOaT7xQbdCSi3YOJlz7rqy0uWzX+m4F/UOvgZW1O8+h9/+VbPnpvvfjJ/wabKtN/JVRpRtXmzXLUc83HyQrLljOsDNqO0sN8qi9036JPtKqOf8gqN9mShb7OPSxTL0sYD8aNnLNy6c/uVklVHwnfmv/7nP+PCuFtMw63VcM7Lljzze3f6ak664MBry6OJ+jflva37qcJIFg5glyRI7CRJZBGhOKCPu4FE3laDQRX1Bh36Ig249GT9Azr5hMrn6ZT0AZ25QQZwQMW1gdAEygadCRUXHkLjd22dPL9P4PpHiCPigLKhb0LqEcpbcQW/QF4AtkOkz7oCn6Cob3J8AlfCJ86lTRBtUcfCq0+APs569a8cAPo469tB9kV9oL7SYIaZksJ2wrRJ9/bLPZ4nlyyc+5EwvLDweVV8hMx/O00ZlP0SnP+1ZNU17w0P/v4Y+54qDJ9yxXa5UnJ+UAk/PfD4R+GU3jyKiZg550P4hDEx3I6Kyn/00c9S1Pif9MTVTwNmqCz87MKWzTsvk3FwIufBTkxhrjEHe5n/ZNE/Jm9DftWiVVfenO1z0rhtvuu+T8rs+rxOTxYyibjJWSZZD6fyMBx4q8kgayz6VX6BmrgQK3/4x4YlAqGPs14dDZZWJx+hawF0uhGyX0LVAHLwB+j4CVV3TwblEKocrw3aoch8/z+XPevq7+vBLNo5TyXxg/3qIw+auS4GLmjOKwyh+VsYKU99jyPxXwPuONTPgrM/8CjN8aNP0FggF4XyiSvR0UlTHsjBX4fysvpAFmhpoS6AkIwSrdiybXzd5jtOex8mDiUVtNt892nHSp8HOqu0F2qBA+Ksb/C58+Nk/syzX57+/Jtlh177wSJM0qsdq66+oFqpfJxxJ6SehHn2+TQfb2e/rNpehKvBvduEtaXvbRwZJYVSn8k/1Ys0aZH1N/iz9veuY+ct6a+sPpAAWlos41NrUWN+SO2mH1L7vVc7pKJKTD0QxxdWtt616RJJltPy4l9E/ieuD+XdmWHldbLw/1FC85CWC47Nd5x6QRDF79DQY2LBhkJoB7pHOlhK4LB1sqS1wFCcTLZX2S6pBOdAATQcD3hKK3eLRHsFnkiyvk2uL1sYwCO8hCoDump7tGv+g634A9TNGqsM2/l9KKeQDaLGtXbQeMmF9rJI+vbSVVd9CPhsK2nM0jgy0Qlhc6MHXZyFzvbgAc6Ci1EogD5u1GZ5jIfV+L1ZC8oGxNZugPp9qg5oB11c+yxsJ8/XCLjqIFA0WSELj/+3+a5Nd2258zT99oiS+7yrxvErIJJ6t9N3qvbLguCaJYde83d9NqNJ3OJnLXu/PAz8y0HFXxKnEtfqpzcp0iHBlhtp/BkPNAfOkvU/6KQBz+ZTvv3gLK5Qd8B2+ZTVV9tIO8qAlsBZaKvcjitLCw9svuunn5Gvt/+u+ZZnHBz53rbG9C393S5e9D+gbiKGsIJP/XHlrXJOwyMYuSU3bFvveumLpO3HIUkVUomC4cQL3J2AoRxwQMXRH2hqmJ1ogEOGypE6Qm0HPrR1fyoa/MJk3RieyBe6yocQFeRB9Kp9GwQOFsIcdtTKhmI6G4+1U1yUIEzsNsUg2Ppz0Pruwv4guH3J7ru9CZ/ITIfZtYc/zCcWA1rnxwF4dmO8kvaUI1B9jliB5v6IA+Zt4l+lA/o4eVVH14fiyi6yqBjkAnfys/yqB9rzjzgg2mhTg8AhCoXisxBtrDvXPoqeEUX1yzff8ZKPF3G1Qx4deCVsQ7+qr3ROmNhtCqkPtM7jl1bWthP7w2DHvOrcPzAPFLuXBzjrc6Lg9yuVSl0U1NgXHf8oiHTx1otlmIgZd0Lf17ABG/4IfZz1WejbrHgvynXTRh74Uy1djqCp2uFkwDYUwLwNvJ3YL75WOeWu0QOb7jjlf8tbwN/OPGiKP/w72TlMnK/xYnCE3wXE8g7HsoFHN0QbOP7C8H3LDr3qS40aNR41LTh23HWaTHC1S6M4GpFnN0SYBJabZoIcO2WgN3BAxaVjQmmoihCqEU45ESgNoTiUcRBA+zGouNQROmbjRzMU8BP6uFGtf8HpHMigHiqvXf8iswj7xUcb5lUqr+rr7zA4m4cC1OSrdy43VB/grlg8ERPzbRainfK0aE85CaTshF+CqjQEN413kgNSpzmQ8Aub8icSGxHWJfyN8kWY9qMQOPgI/bZOaq/2i8j3bL7zyZ9uuueUAxoV7P1o9P7T9xZljx2U/fJtlAvdN0t6V7qLlosOu/YWyTJ5GNvygHEnTOxmnPJksw5Q8Unj/1I895Ynph1N9JS0sbmVsB/6qa2+/e0UmWo9fumygPyfqlq7QvtNd57yl3JO/IskTwc4/4Vx+KFlq675p3Z+blhwyI8RLR6LIry2fGVuQyQSCqBsmswOWmKD7HiMUfdCRSMPd2gDLa8+M9pVttAA2Q8hRXpQNNQjQB/3WLpD2Zfrvxf75cpRTR6o+d0Fq66+v7vOZxi385FqTb91YgJ5k/aMNWLp4a6+OQbiYZXBMwTaAbf2VifZIDw+znrLK9cPdfAhVtQ4BtTVNcRDviuoQ2Eb4krsYNfU3umitkfHhrX4xi13vuSZHUhqy1LfOf5i8UFIP6gPtP8i7JcHYeeMtJ2Q2irdJUN1ZM7/lWtbE4wvbQX0cdZPKf5xvHTrXfce16WKjeyTxb8P+S8/zNfYX7+P9BeVRSjs8G3ptB+/jeKUI9C3333W7FTsbOfbdOdL3im/8PxhzHWW15iTsMFvhI0536/8l3fofGLZYddeKB21LcmCQzoPNz+x8ctxVD+crUwh5A0VNbxVvXAZL6AaCnNhcH5pJ1/uYbuGgPhEDFkG/bapdPYFaJfmCHlKIESb7KdNn2a4yeur/WH4niWHXHsd5M/mkvrMcgJxsA1WM06IweQ+bucjxhPQ8DTuaT9pf838bJffU5N+HAvQ2+meQFjWZE9/7Rf5+0gXP9q87qUH5WvcBTWO9ORIn+S1bLJHOlca7HS2JnAS+8Mw+mo/v5GSp2seTd+REAZXso62Avo467Owa/ujuLcFh7rT8pR9ZnXJO/ZtMHzy/O/oxUt5HXVIqwe24oANZkcK88YjbU350zHUYZe7PNumNaecIzfmP91J/JvzJR0HeY5sig/j6sa/3J75ytJV17wnr20eLVlwbFrzkv8pKyT9Lnnr4NuAsMQRXLV3UHA9dFBx76SPNqa8Qd+QVLGMfK0gLeVKMdYB5slPaYnOerIzfpNDGcLhJtCi7Jf+/mXZoT/8dKr/7MVwnxAbfEno+5eWow6lU35fho9TnkRcUUD9wwDBH2DOBmbK8XHyUnfqBx7q3Ak/5FAG+yH0ZVF+O37Uy/aUaOf4j7avffnTIKPXIs9v6Ns5fX2Iu34S3akf+urFfgnBxb3qOdV28nHlYtqThZBNm32cfIxdp/aLc3pbcGDe7GC8UFfq5+usuDiaMMl7L/8Lvr4RVOUPutFfxFvpCz6UTvkhxwo/jLrDXRRsvuslLwvi+lfEL3ouR8xRNPaMO6HNHRqfVvGgf1nv56QfK/QhM/wVSw953vlCZ1BAnrSokpvXvPjlouJfQ00rgEgaHBkEDiUIVTFngFSgUusJqbAPIUvbaT/t5fttrZ3pYDqmOPmoG6CPsz4L1TronhTiBdgfBNcvO/SgjleCiUozFunMh9mY+HHzcfL5NB9nPdwFnAU8KIA+blTsyWv6Gp205nqTbXkM3NfB5Kd5Ddk+zeelvlno8/g4+Tza08YndspEc2HyocF072xv7eJjBmG/uP7OZYf9588606z/XMsPOfB78q2GJ+A7FEI7Yqz7Fn97xboJ73wv3eflk0/zcdjg5YK2RT0KIXDaSn7Qii31JOeLzP9ibZgZ0rfc+eLnRrX4m3Lmn4OYM+6EsCIv/qSZlT3mfxBfv3Th08+RdwV1tYatxA+fvUB+/VXeSc8Bl0JTPJ1coaBvjCnc+56yAH28tcTJnePL8PHO5aW2wx8mow/2h+GDI3Pnnx2Gn5V7ybtGge9ss5zBXIjN/GoQuBVCd9gAWAcImag06OMmS07w2tYgcOhAaPE0mrK5euDUF3KMz/ozPupgR/7el0kZjZCyAdEytQG4FUJ32ABYB5i2hSx5xvAFm++4vqff8Nh69/UHi7jFWf2tD+urE/2y7RttN33lJui0vrYf4070utHXlS72aYZPOf6HYE6l/KnDSeKvVWlOIF6d5P/UdWotATdU4Md04zEg2jXqa5Joox017lkH6Ldt5NrVjkbvftFRUT3+njxisJB+hX86iT9zHj4jzniZj83XwK0QusMw+MXy6pIzwmdcvNNROgaVzVvX/4l0HVEB2gAAPCxJREFU9ow84c3KpAqih+Z6SzSTleKJMS4RNfPMSxCSKNtOnvEKP9qwHaEpZLJcvcoTPOlfExb9tdpUiMkAl5Odtk9pytlUn9qMPlz7bXG1cqZ7334ie1dBuJr2P2GRZj5ALFAsJuYzP2aNPmfbVvKaYiaMSksaSD8qhDnAvlWJpl2TPGjq4t7EnEPQroSedO/wlHWK9sfxhzbd+aKuP1XH9fAA8zk0oQ6pVsRoK6CPs74dNPun/4cJw0r1liTuBcZffFQZ3fHk/u380lyPWwT0cZH539xzkZSi8r9InYdd9uY1Lz2oXguvktXFcuhKHwP3x6jiUknYj/yXBc1dleril4WrLt+K/rotFXkG8xQ2yioLQ0AD9HHQSCdEPQqhj7O9TwOeTnSc/LPQ5xHc9aFQdZNB6qD/AChaoVCX1v0bH/ewBaWVfbS1VT3ask/gchlXflQ7fMuKVT9cjeNdsWR9ipgbjbGGV8zv+f5hnfGzLWPQVh6+aogCqLjIIUz6ZR/KqOyQa5tP83HWZ6HPIxIyOQWZtCFfPtr7hbpZP2xL+0XanKAef8Rv0QkuVzX3ze+/sT+TRRqOiJs+duzjPo/Uiv1zRuJbTM707WXavSWJe8Hxr9ejp/fP0kZ/Z+MP/5PWGBungdoqOCDx/inXQhJ1li4Lyv8WHc968va7X/zUOBi7Rl5bsRfjTthZ/CU2veZ/GD40d978U5c+64qef7m6Im8kOxoK+4nRKmp8NgQQG9oQUsak0A0OaWl/6Jc0lZU+ZOg/rNJKJtYfqoNAxUUWYSLXk99KDumwG3ir0rX9QXDh8kN+1PWvYLbqf2bS6U9AH6c1Po08PrSIWoR9nDw+zcdZj36As4AHBdDHldh2x/zoNGfSvlvpQ91Yn4W+TT5OPhkzQfyiLWtOObmt8g0MoSw4irdfFuBji5558B0NXU/DwchI5BY9vs0+3plSHcU/xmKu2yILAs1TxpXQj7mPd1oPPcA7XYV9U1/oQZqPsz4LfZt9HP7atYp8HX7lWK1+tZyi9k9zxfeJj9OP8JHvb/CgAPq4Elvu5AHRx+XnAk5dePD3H2nJ1EGFfEsq/o3wLTNeKEalpcadfAlVbzyQSv1lNpFfSpQmVLyxvSgprFgEWH1jLXpspFh30gJkKaqJHKTSTRZkWlEOx+lIDaBRfkOVHmTbN/LTbkJTV3iS7lvbLwumby0/9Dp5hTO1b+59NlPoM6QGcKaI4eI3F2R/YQl/gGxt6B0626BFzHJC8kqeUAsu8n0MLkYVErI5aFLTmDA/mVPt+MNKuESU3COoBHsI7x5ix960DbJpa2pfSkvr+2O/2uLGYxRO/I0cn6a0DnYybuWkCKsbx5TFQ35CgEZpQERgEi/DWY2ufDzH/juG4dmlhQdf98imX73gSdFvN0sQy6ci7Jdrm+Lb3ko3+a89cD4GlNLsf8u1JJ5dPeKnInvaFZ3/QZSO4Z4UnGGN4jUvXLypVv+BqH2o5awzoNv4Z8ZzR/lfCTcL30uXHvLDe6bqthF5//l/ylWOVakgS9z02MMYY8KM8saZtpdXCmFOk/sKjqa4cLnDZOC3kEc2QvBrIjt+4kxuqxf5lKcKJa1NvYY96whR6eMNzKlcym9hv0zAty3fff6bZZBPIiwje9YdmulwEQqh4a3dQtcSWo5Iq4TgoWEwsfyw65JfOoXsQZcda07ZdyysnSYGnio2vlIsXWgaDsB+MRa5j5OJ/Lz5qXiWQ66o/aITH8ivFON9Hpbu8G2LkDRNSBII0vL7gaBUoHweWZ/PNw3UMMCl4N20Z+ZTo7pNStFWQJT8BanfTOIRxfv4lG5wqkWYuDIhePkvghn/ZA50tJZ9Fv0iDn0PB5Q1f3HcE0IvX9esnjSTsKX9PX03K9vbzDiO17583uax7ZeLL5rem9N1/OlYwvb5v2MkGDlj6WE/vLUf3hqJFsz9QLBt7HQZUPtDB/avwvHRBZniPsJkjVN+VFOTDH/StiHbyJwDtZ+0v+b2WQ2pLaBT1UEcZ7lB80tj6xz+jD2d2C99PhGMVM8K9756m9/XroTjbYbMiXY+Vp+KcwCT4qFu3rLETBgM8dkyVQM7XHDYtQ9JZ5/DNrrmhXtPBPFfibLvEPv1V16LtJ9G0ndRPTpHaB0tOGSBIgsj8yDbQx5xQhsCWNRYb6CTZpTGPdiUJyGHWxJ0mhG5dY1Pak1a0FZUECekrd3YL9/KEd92V3BbPdHNV5E4YY5Y6ooqLD5xzCsaxMkT4mcHCi7ap+sDamtOuGPiLp2SXKF+yubbSpzQyYl2kSsc8vtJ1U2/evyrkhsvcqY3Ad937eLf1FgIfnvigBKjiWo1+N2lh/7whrx2vdAqKw68dvO8ufNPkjz9OhJeB5imvkRYOtVBIBC4DjoHyUdIPkK/rUkRGWKB1iPbgCOJHLQu8BZR0AFlk+oEwjqpBA3Q8BSihroAYkMhBK5tHQRu/AYNT2VoT9qf9YH+VJaDefzyjuiJoBq+drdDrntAxJdFPdDodYsg9vYHFqN15i4XVqSN3NUYrrL4sOse2+3wH79bHhY+XD4J323aFWe/7wv0Jcev7tQj8uZPXXCYDMlta6/NKRcHGGqEPm5UrXEoGH1bHTmMNzts+kEYy+LH19HsBq2f9ocxfFtMYWxa6ysrFymcQ4krcWA7+lh7d71afthY5+g3vl7G/7CN/SJcKyf9cNOa335e/KMv5EQfU48/Y2PxMHnN+S/nt0h+guMtyw79cfKW3n7YqBfYFq265lER9jr5us276sHOw6pxtGcqnCY6in+oZ2ChEypLA0NzI5+XrIQN7nRNE5oMokiu11XkC31yI12uIZ8pE+DbyAXor84SOv0rBHSDQ3aHCVRpjkcvlwoREAUDgZdQHUGBChHM2lqwUCH8715x6I9/bEy79t6fRHxcfaeOc/4hbi5HEMWxcgCIkqlXsqt2HMY3RHsZpGs3PfiKE4MtWy4TtV5QlP1qMl2lMD546x0vPHzJodf9qgN36LsiqBshHG44HI8CLwN33s4cukFgLMplfJQnNxWH5gqH5JTpojkmyubo2xf7w7D393CobgyqKEjXu3D4+a8GkNXV5zZoGE8JozYvasf4Q76PZ9Mpa1+n439X+LVYeeboY+K7tyQ+gy/d+FMI53YdfyfEpQFjQ5jkf1z5o2VHXP8f6KKfpeGO3rLDrtoowvt2+aSfimZlbVx90vvh/dRR4ioZWHopyC1qsnOjLkgcD+XZ9GhHMYIAmRyTxBldDlwnnzIAZWHyqd2OvPFffVqJw52yIPN8ThzQikRAURcJ4qwGUx4Omk83YUOzX77f956Ue69nPrljK97/cAAXw321n9Z6fqjZzxO0XXDIh6fklgrFAOKTselon5SJJ/FiX4Ro5OM49koUD88tFZksNqe5lq90P+wXyT1c4UD+e2PBVy8Pz6Op39040rMUCNljZRrYrrDxPzALpqejJ9c8/2/lwe73aO95sc6jKXM23tljNATNF6ANrbWO/+pfrTji+n9Jqf3DGhYc/RNbrKRNq08+QFa4J6vPPN/ZggKTpnOy+FTRBt8yAKJjk++lTnnT9hoctocwbWP1jkto4XXLjxh5b7FWzzDpLgbmzvQqEKygO3MtUh8Lh2sPH6vLHTPxSWXkCh48UX6sbMum21/4ujiu/VR6T362fFLdu7S/2T/xczqyNI70qnRTe7c4TBYYoo/iLh5NsrMByQisVMLiHxpoUqoFIZRvNcmEKga1zq8+2C8fWKotNGhPnnL8dcZKxxhtBRxE0XWqJAHyQIr2ihyyw5TmHTegndo/KHsalBvMwZNrXvDuuF6/EL1lhlMyF9Kf7eqTXKe/2vi3Elb+cbcjrv+HoiydkbfC6kF0PnKYCwtAw1OoodKklx2gAsNxVQR/Pk1xBAP/Tl4WagKAh0WiLlc27h+ZN0deW37d8Eys1G86IUaEbOotB4GrTwnVz3heB3Gz53agMnAWiEFx4hRRWkKw+mHdLz/iupuDSniJ2i5K9tt+nUfEF4DY5MpF8mvPk/lEvqWyQ50KJvgyKcxvaowK0lKMtRgOigMCUR0MGh4vhYShKHG0RG2ForCZdhOqkjACBdDHldhAUQ7ZJRAI7I/i7cbd+R63CJj3hGhN1QAVlx0hkKb4g0/oqhMEYGw5aAHCQYFFzijMA+infXv69C3/CzRhOkVvvP15b4yj2j9RB3GdFkDFZUfYU/zRuFX+h+FFyw+//s+sx2L2M27BIQmLL5u+yaUyvNfSMxy4gD6eNmBbQK7CDSIu2Q1DV+Ml0A3j0SCsvmrps67r+c1rqS6zDDOX2uAQnL70/Wy4eRTPyuDPfGzQvNy4FwbzvZM/E7w2Uqn+Y1H2YwJXn+DEIpsMjv3xnf12fpGT4g7lF0ZCjQRkOJrKdjjloQ6llT3QxRQyIMLdO35An94ShfEy2KR/9Jeo1G/75YS/o1tLMRH3kv8aI6RAK3vEWo2nWd2tWt3z+1c4RC/NFwctd0wfzRHVzbTrevx3r9nQt9j4qxecIYG8SO7pyyku/0/IWgOouMSdkHlMyLgTJnkPCZl8kaciv7Xi8L3fLlczIbmwMuMWHBtuP/El8lrX/eAwdb2DPk5nItuVDx6XDYAQOOoITZ7jB58Un+bzoo0ESJY+8ZtXHPnj25W53DV4AP7SjckNKH/qbwfpe0Lf3xSGiQil1YREvmGG+hBnGN9alP2QyyLv1JGHJuqH8rgVlDnNfQpnWxtPxk9a8xjQKCK27g/8fv9+DBUPg6G5whHGoerCnGq0tZ/293CFQ7r3fWe6Wd4Dnyz/G/zvcoHxQTvgbE+5xUG7OglbdEPvXr70a/zLj5YVZ8I0SH5y9fNeEEd1fFN0hHkANZirjB9jCYg/FEIfZ31e/ClTG6uM8Nrl85e8IQwvxW/vFVpm3IJDTvXntfYIJ0qbPOxUZSc5TXRJfEIGlRAy/asgPp72l8qXoP3N7kfchG8hlCXrAfmuPy7r6uVe+NycDgfbEHEQ3kQdIfkIjV9qld+GEHFA3bJ9D+mxaH+96S4K9tF+uBbyABUXKFNx2wWHfHVzB/UgRByIA2JjLAAVRz/syPEDtOQfoiscEoOlah9u2Tn7fJt9nPW92C+iu7/CQf96PlddMTqExj/iiX7O9wgJw0JoVVwA8CrvAO78Oht831Ff38fAwUOYz9/C/lm03pBnEo+Nw+gKWRrOh5/oBz/WfYs/cqkh/8P/XlEdebU8bzaGfCm6zKiHRuO7TlqyYWctfdeAZq+4iBDeEoeycDGRQK1P2TEwwe0P0LTWMQO4DjzR31h+xE/+PttSWctdEIyMBHF9wjwhoweDJTlLwYk6y1icbE8PSxNMQMrjHEmcztegQYbxOq6hB2E88vNYnlnU/OyX/WI1fcUch1/kpV4r2zlELoRs8Lzekl1jh37cGACwb3O5JrQFkHyCk18u0eovWjru6Qami+ZQZ6rQDsJO7A/Date3WOWqrYVDdGNMVcPJ8l8YyOvHX4eKhcPGCZTmcWdmT43Liz/GuvrO5Uff8r86SIOm5o7JWm9Z/cJVtXjiBxK/JcpXdPwx4cJ1mhLhmmp10enhYVeNTqZjP+tm1BWOjeP13xNPeV85g/dQAH1cic07nrQAfdxxctACGp5Cypfhc+uKPfZ8S9H3upqVn0EUvM2QIVFfi+7O5zr5wL/uD1YprVPz/DAT77TtNPJVwvrj8IHa2m/7s36IApu8JrM3DB5CtX8lz8cna+rX+W3sk5OTmcQ/8H42wW85WHzjvacsk7G7j/bq+atJf2EgrRMNyQuouMiW1wU93EnbnnioO/0LIaTlCWSdz5/H10ca/aB66biHjqJAP/N/Flzh2Ljm5H0ngvFr5IHh3Tt2f148ScsTwjpAD5cr9PfPmxec5l6FkdeyENqMWnDE9eg8eCFdEBhOz2QXDOQjZNtW/FiEgxfQ8BRivEjt+nDO3FeFT7mi66fQ2eeuDnn/ENBw3A5wS26cjtXRBg1vjLGywologm2GlDAc2QRVzVaDtJtQLO3afl3AiB8AFYf/Qvk2RtsSy0kRvkcxSHcSao0lfssxR15AH0dbFInhbpvuev4z7Gj69uG2sWeLKaKiN+sWZH81jnUx1721EsEu819jrlal8U/ywMVOhHavyhRaMA/yRPQt/2fUmavZE1vXnbZnXIuuldg8rd/jf/L4Y34IH6tU4lMXrfoJXvg50DJjbqlsvuOEgyfG4+diQOp7AcRNxG2Qmt/8sQU+8uR6FeMQo8ONR+UVQp48YZuQV72+dsVhN/Y4meRqMIuJ5tSMi5vsNffzxNd80sLgIQ8a4xlqlWnim+QNKyEOJ5boRJBRkLYBomRhW/vVD84pFBB38qBm/DDGir+wRvOm/jwa6sFhOloATIa0skORZzgfdldyrXaMNLxfm0/TTm5ZHA3bkuRJ9BWS4PADSj/sl9dw9HyFo0/xTxIpa09SYeYWsJdXnag/zcHYwyY7au7O6phTqXb0Q1Z/jn+5b9gsbIZQcLVtfHT0KrHt4F7thx+0KJQdj+ls58Am/wXhk5Kfpy0/4sf3Toe7Zsw6cWIM796wJEsuX4rHSMtzHhcOgLkbphfUuT/IAM7CpAeU7YIVR/3sBtaVsDcPZHyq/gaNMYD3DQdMJysXgyb+3rQYfKt6LViBXvttvy4YxCuAhmsfba9wjFSrD/EkS6hewdkCBdDHjarjxaolSqjXBYZBXQ2iMpkNrVFUj481bPr28lsIRyOjzNbUX9Co3/ZX5o082L2lHAHQEn+AGssEIndQQ6i4HBDCDm3jIHCrNWi1Six2l4m/3xl0RwHElrXH7AbV2eJBn7/wr1NIv0WU+OGzF8Sj278r1j3btwcW25/5pJ395LaYp/mMdswD4CbNoODbxOmvmM5vVs6IBUccX1gRL75J/TfpzlwMJ+umE6bgnDyzUOPANnrgpFt7nVAhK44/ufLon/+bqyxBBx7gAk+uF+mJCdDHWQ9R5mcnVGOmRI2b1gkt4ddwYAce12YGAPmxtAMKs9/3A3zVwZsul9YWyuvP5W0cnm/V1zILEuKMQJx8Pg04Jk1C4OAjNDzGt2aeO90hkicsToQOao+DtMmHUF55YISHk8enAQcbIXAx/9EpvZdHBGgBlE11cdBwpx/YGHdCNMy0T2QpUvwukpWA+SEd99C77+O/eFP63kMcv2POxo0Pf0Oe8jk5ySfpRePK3jLxs5i3mf86iL8sQsbDSuU1K4/86U3sajrgjFhwbLztylOjqP40OMi/okG85RUPnQ2kEaCPQ5AWRgrQx121AAnUj1Yevfh9KaXEuvEAB1OrAeaHxceTPnyijycMMwOJ4uAk3xfU2jfJx1nfkLc5DM1jQPI4jrYl7Vsg4VFX49PO3Zr3KrfVGPDHhS0m0AZNsGF+JPTnSnYLm+Vk8/wn73jufqQNGj6x5kS87v1g7VdtFYwGYNwrDXZiQyH0cau35pPYHwa/UBE97HzVkuY+0ccdQ178jdbKnkRyYQjzAB34Oe/j7Nw3ycdZb7GRI1R6DJJTyU8FJLxDjOBD88bVq78kvjmdfoC6nkkNeGJKG4ZO4i+3N2W9XTl35RE/vTqRO03IjFhwRFF0nvmHE0H+YGIgAfM2TCTGY+2J5/FqXRjcN3depXxteYHJaTGwiUnj4GIkkdI/nNHwB6gbcUDdClSuT6LxyUbmjZPzxPXHfvjCFVkhy1HbBQe4ZRqykyN8y0I88bdorjTMfCLb4RorwfWP0MVD40V5AqU6jCY4hr2KQaG14Hy1AbpnN+gAGgtx8uE0oLTO7BcP9bjgwLdccvzpaIne8LHqA52pN6GQcD0dBRAbeAm1nVUXuc/Gf7K+es7/OBqaF8pNZh/rNqz+wafEVvmWZWPp2X6NPeNOKLLz4h+E71x51E/lysr0l6FfcGy899hlksBnYXDZeDHo4zbw7FMHcJsaxPfwv7dhIOAY0MfJw7YqL4xHq5XgVUsP+dmG6Q/TTNQAg8D8TIgj4upjPYZt6YBBLFDSmBhu1Jm537D69tfLQ4srBmK/DAw56XW04JCHqjs4OTI2FjuLAGlpbNJ4pePQj7VMrOfJxvAOLJDx/S+cLx/wmib6zhWgrZ3ZL28z7cCnrXung1J/pj5u3cqr4aIC0Mc9lqJRs8H85ee8j095/Mfh0Lwyv50/N972O38vVyL+oK/2t+rUj7ng8mNsf77yqP/6XCv2QdOHfsFR3xq8XpJzPhwjE6n6B9DH6TQLKKc5ORKH6x+gCwQh2qCO0MdlkRhXgsobVxx1s9znLkv3HsBLv2zC4Ve+APEH/xMyFoTohzig4SnUiGkcjUbe7vUbXAtcSpUHFt9flP30EyEsk9s3v+3EwmqlcqPvY/qTEDKIA+ZtfkyAZzfYbbRg/w2/eq58cBhseWLz9reIVsupe1Zfsy+1DdoZzfQkzvZZ6MsTS+vVOQF+Gbjnku3Pl+/jWT14jI4pw8fTenlHTqEFD/anecD49z3/g2jfQs3ok/ANt534fvmw8YG+299yPHrxr1T+94qjbvpIn0zpi5ihX3DI15/OZwLLE25itDyEJlBxD8ooM4cQ6pGjuQFgA9GbXIRXaWjjbXL017sfffN3+uLhXVwIJz9OeHZ1VxYdMjv7eKt6uA98LMTZnvRhhRtXX/lBse2IVvaBTj/4uG8fbYaNxFvVY3yEQeW+Tvyx7PAbfxFWQl2cUJ6vg4+zPgt9nfL6hAwUhfXoExvWnjCwS+Gja164t0z0H4ZPWhXYg0K7fJt9nPVZyLYqJAj+a9lhN210eFcAX8DL6y8jv6P4W8ewmXYTdqVSX5g17tBE8iDPPp/m4/QzlADOQlxIxwq/V0OO4YEbbj3hrfLsoZ7wYVuefT7Nx9vaL5YnvmjwgsVaSP+6+5E3/Y/h8YZpMtQLjidWH7tK3Pcct17Qz0rA4V/6mBDmND1AI5VKcw2UV3buUD2gNMVkp3Xh1/c8+pf/QFIJe/MABxhaA29V/EED3B90lNEIjQciJxHbqruB0jeu/p2Xi45/U6z9mMhgFnY2qVWq0b2dGKpvy42D75svO5sQG2NhfRvN4pHiJk81c4GSuqfK0yUD+8S1c3z7J0Sr3aATJ3CoYnmWr6+fgz5udplNjTjkOD+Ewfc68XseTygzcdf9ubibe9P4i0ZOp3QxC9nY8BLgogv0oY/QF/BWBTqhUD/wAmf7Zmh1chVv+cbbTm77m0EmffD7Dbed8FrR/bPoGTa0Kr3abz5W6SLfoPRkfYXx11Yc9fI/bNXndNKHesERT9Tf6idc4lBOrh4UV6sfCe3ABdpFR+sE55/KczKAS7Ru2X2f8PzpDMhs6RvziM0l+MSNgliI53V0GPRjS1w5bQQBbSrZAdrEMCSEjbcd/664Xv+O2CW3VFCKsV/9LDuF0ov4J96tsqCjKxzQSvi/x9uTOO6+uDHm7KOt1Ad2k6bxD6K3r7/td87svp/uWjxx23PeLFn2u5Zv0jPGvWywlZB2E3bXA7lT+yuV3hcc8gVlNzZMV0rPwmz+q59ll/rbcLbL2l/0mx7lF7Tli7EWc8adUOPfx/EfhLXfp53DBDfcfsKp8kT2v4u9VfoCsN/2Ixc07oRwQhj+YPejjn5TGF4o18yGrwztgiOOz5ZghW+UUagrXjgXISPUYY5JBD5FEoPP4RoEJRuNkw14dAA6frBrW8AweLw6d468tvwX5WvL4Y8pFsRFY+PB3kT6UjgpG+Rk2pvcYlqtv+2kZ62/9fiv1qPg0zLi9at7tKC3HtkasNl+oWhOK4TH4/DO8LDrRjvua2FwtbRKft206SohenUv3OtEZqO21oI0HGGYhlH9Gxtuec7ZncjrhWfDrce9VTq6KK8t/ISS+MvhSgTubAX0cdZPAu9dccR/r56kvscqeg/QYk2o85qjtbIn22nRFzjkMcUn0adpa73TgqwunR2zdZ790Xmb15yoL9TrTFbxXHJl43eienSZrB/n+pr33rMvpU38w/gnu++512vD8LPulzN777WolkO74HjiF2tfJg/b7APDO1owOL4Gfo8Guq1IHMQCBgsPXcjE43I38DUrj/h5z68kVvnlLvFAEjNvkrRpCCwcREAdniwC5VhpoGPD8pHQx1kv1dNcnrzlhcs33vqcVz5x6/HfCKKxO0T/1w3WfvjCinzCvJF4J3Dlwf+9Rbz69Va8OkaksrU9jINB47eJ0ccthqan1M4R7D823Pact7Xqt1f6hluOe6/I/pz0LXOb9ZfC7qWaDe3tlw9CU/smAD6PMu8Jk7yHHcj9VvlPO2EfcUAfR13xpRoF8q2+yeOf6iX6qK0O0m7CNvZLbJZPjE98oXirOuth423HHS6vcLhSbFqEvLHcSWFqN+MyNfsb5YW3jcSLXznsv/NV9BW2ziKVwyUhOa+ZjEBx0KGWOCBKpl4vhwgNMKda+WWlEVbiP9zz6Nt+Ykzlvh8eSFwuA4+/aQO5FhLQXC8KESM7xlxjPHbc9NscKk8iBxjH1fWrn/OGoC5XcatyQQxF0AAooJYsgZWOP3OYyIJMFMj15FfqMpmEoXyqimSr7C56HFsPR4+QD8S2eIcdfsoVaD/Uo28B9TgIblCki10lqP5bPai9BU3UryLKJstm+eBJYqcNQJBNbEbRug7slzdzVMVnn5NF2tmVMH7/VL8Rtn71CccG9egf5WHyF6giTh+85xTfEND3nUI/hwNqwWu4wetex92L/eL72vw5wcUmsMc9sgeqyNZp/qOnbPzNFpOF+ib78bBIgSWqhhsCuYzCHDF/iv9hmBSzrT/j3wl81eO3HPfJPZ69+L1heF3RF3C0y7zdptXHHzBRi6+WPNoNMRiU/S7+6xbOqb508RHX6Q9E5uk3LLShXHDgMtnOndvOwH1NDig4zHCZQFw0ccmTtPx6aS8VTHYdzaAkyY+JKP7nvY5Z/Xm0L0v/PcBYEWYnoGyPFk+Lu9a5E7YfM+BO3py4Vr9E29RsgaAnlBrizhMK4i0fH5Ocqbuccfx1mwxDgdaf7OV+iE7cINTw0TOF8tNUMqdo3gjRZEUuT5UPOydKUddvQfaLK8wXBoNowdwFP0z06BBZcfR//eSJW46/Q8bCoVSdUCdPyLHzhQDzLSBKU7yUqFW6o92Evr5gkOOXisRT1t963MVBFH5596MX/aTTE0e85uy5G8YeeL4s9d4S12vnqivE+dqHC4L2qycAsyjbvy1AzCboQ7sJYabik9gvi5zLFx9282No33ORHyNT30q+UEeVxVwXiGL2WMxxTF5AFLUHbZwlWfsloZWvqN28BSMbdo6mV/QZd8Ksvlk9wEcerevM/gvW3zr67A23HP/n8hMUXX0tGeeasfHxl4Rh5Qj5APNb+Xbip7I6tTtef8ex+0yMB9eIy/WKvHO9NqPdhLSN8crK7sX+kcrI+YsOf/n6OH55savJrLIdH/+tfEazFf1QLjjGdm5/g2TdPLPHjfQ84zgrEGZmB5IJIYmnChUXBj/c65gVf5onuqT17gGd0twE2CxFplUNKeOK6FhkjJd0g1bD05vETxorzZfv402fWDFJY2I26dqbHCQ54fCGCYDM0iR7hcV1bipDc8dLaL1Mti/U/usXHXrDbybrfZI6vAnRJtsB2y+fwquy2HibePNtG24d3fL4L4+7RmL233Ll8fGoHj4ezqmsD+tRRZ4P2LMSxHvEUbSXROa5T4zf92IJ66LQWx/qlQpLEDUVphQdf5lM5dsw/SouUTXRLM38OWvK+c/E75e6GTmLD9p7485b78NwaNFTYfl/knwYkIXzcT+X24o/qFbCm+TK2T2VkeqmJavqWzbfvmDxRLxzz5Ew3GuiHu1ViStHSq6cNj4+fpxMGRV9ZicIbhdzul5wBGPBp6X9ARlXtDjsv/31qHbD+luu0P6Y64AoufkvdAZHhwr4wJxT2snLadJECoMr7hLiIagYygWHBO88m8BttUv3ICmAG8REYjggima50lq6T3kgQ9junT9/0TmdfprSDspdhx6owcMteEl3MZNU109lnGBd6NJzXmMONAttHDL21XwMapOPvQ4617CR24h+tii/kK21yyk5snzUzFGc9klPDfrTFta7bj1AyQaz7Wk3IXrkWPCEeGiDRf/hVXSFrpy7/+eeGLvvL6TRvpQIATqmEh2Kt1+uFuA9HfKVQtnsIlQQT9TUy7iihBnA9JM9EHfkDkRfi+Cg4i8K/OceR998HTSZWrEraYw7YZfxb2v/1HRs3zoML62v/+Wxj0gUnp7PXWj+46V3x4sTjueFyXCiHuy8BV6056InXCZFyCTNn3wtu6HKFc8ljbfsbE7Il1Gs/YPO/+z8lTf/0WL4Y+guwWy87cjDZZI71oLFjAD0cVfrRiUmRZuUhSsdqcbk753lstjYKpehzuz1JT2+yBLP9wASMfcPscJfi5jxRA1oOAev5QDaIhf4h0OlGVnrQLN8Ma5GfkdDnmiueBCSHK2VftqXp0G2f62HyFZ/sBt/gNoX1FCFobSz2WB39ofb51QX9vx7CeFhl45L539nurTWD7qjACrubFWyh7O+CRZmvyplO1URO6ejg6avo8Hn6ncPgs/RABkXQhGokgghSZ5/+Wsc96tYzHuJv2hAuwlVWxyYzdgPqNyQ9pjB4Ff8tfBv4fa7/jX2gqvTCHt0ji42KAo+1v+M3Wa12T209ltcNF9axAdWodA6HCoNZA9nvUFtoruhW3BMTNTPT9Uz49QSmOUSo1WyGh9aO+uzUNrjl/MqYXjuymNuuSPtp8QG5gEudwGxIVSEOQkLvTShgaA0pkTalvLAA5ylW/6mDiCIQoA6HNDH2V87SN2oL8QBB4RI2ymk3YQqGnwojp9tK9Xgc8uPvFG/kmgM3e93f/aSi0XeOmvJDnDEToE6fMjsVz/4vjUjUtVpDn1N/4OP7bQNbWUDEEkD6nCBcu3pypXH/OwmbdaPnYjuNf4d298PPdvJiOPrW7LQ1/Q/3AkccBD2sy/2D0WBD6qwL/Y/dPZDIRQXkARXRMiuvsfxP1QLjjh+4Ugchee2NNbZnILJnZP1jS5UovCv9zh2td3wSgWVWL890CIhbdGIvJWpFTwy8Ah9PKknXyJP2gBvMSBUFmrZTm7Qmnz05doSksdBv23iDu1LBVq/mChA44SRhawD9Ns6gX4fppfpSnk+TXGRQWjyKFeg+kBVmQirlY+6LnoGuL0orvkT7Y9SfBuAD6H99ANUpu6AihcV/0owFo5U/pRu6gsU35rOBhWnHfA9Nj0rM/aAKITWTilsl7Vf+YvdhXPCH6uuqi/Um0w/p7MbR4XbD13ajP+evMN5QOU7m2k3oZLNF7DTt3Uq47+r+Kt+ogMgdXBQ9fF0VD+AD8XxT3X8D9WC47c3rz9dkmEvBiML5ROFBgnQx8nnOxC4PtrhIHDZvrr3c371YfNguR+IBzIJi3GpsRGguMZSiahooGk94oZq7BTxoKD+IPFxqcovvgzB9dBBv4qN3XATzaCdFUI9ytjXQMNBpl77QE5KlfWX2tyz/WHwhX69Q2aPY395hbwaVd6SaIW2DrX9omoyBzjcqd8M/CALrocO+lVs2Mp++XHHD+1+5C/wMFwfS5oL0MXXzUsYJo726+e8j/dRqa5FqV9C9wOCg8h/0bCf8e/aYDSAnb6tFOLTBNeYOmj5lsZcBFi9g4XE3zq1HBLc78OvStR3yJTHv5MzVA+NysLzPHw5jIbDSOAc9E7nlkCWI9rCIBsKTcnhL/bee+lbWzYuKwrygMUkjSIjalHGRIH7tpwsVQk0YSFOCLqHN0qTOqwsMch1tQlekU+aa8o2cpj0zXvHyB3Vx3VCPKlvo2+W35Rt7DGlQb0p2h+G6+fOm/cB2NKvMm9R5T07tkXyeuZ4j6w97fTN8qe2Mmj0BWAf7IcM2UwaEMEKjr8sNn658tlL+vqbMPqlWOiNQlf5eB5N6hu9CcLk9kPkIIpo8UNR+Q1pdGhAo8bt8inxBZtDeQ9vlCZ1bexHU7aBKM1XNwZx3EtB7KjUrpD/9Fniq4Z46KUA9avV0+N2NDRXOLbcfOzuMtm/EoFDEmLDxEGoOAILmvsjDqgbUgm4phTTCu4Jfjt3bvWs8Ok3Ja9wTpxVIgV5AHFA/CDeoIaJuIuhRQknXYsauIGzEGd9FoKPPMA1Xxz0cdTlF1VQqkxf4yENR8St3vpqrW+Wv2j7ZQC/v98PPy991i+eEMPf1eiL4bQfOg42/uEOeRXc+f3+dhsmYtpB6NsGWt7m8wD3c97HUTfIUqniq8Izdfx356nGk2jjfFH0+Iemfr74Mffx1hY16mt8pOGIOKDNe4Tsl7CxrfHTfqsbom+pbI+2nyvpqb89kYwsGKvWmPKNBuEIdBTWZyCsDYNx+bnu16w8avUjxlvuB+EBiaX+IX7AkphaTIQoNMvGFEIxnya4tnVQj4gD5mxIF9ABfZy81gXyxIo/KNmOMK895RBCCnAW1Rc091ek/dLLFbsfc8uX2Hc/4V7H3PJNuTL0YfqC9mYh+pwu+7O64NiPmY+Tt0lfFzvW+218PKkPg7euOPb/t3etMXZVVfieM3f6VCxtZ4YpD1tUhLRAOzNtobwMglhNeBiRYtSUABHjDxOj+E78YQw+0R8S+SMxEiQSFDUgjxgaUAq10047FJGBQqEPoEUstPIovcfvW2uvc/Y9c2/n0XvPnal7z9zzrbPPfq1vrb3Pvvuex4YmvDPFWc98iYiP+JND2TOZWOPjt9mXLa2rpekw5/QNj8IYDzXT/00nH32dfdnSHNr+emvyWMnBKzjSLGIv7ImtsJ1c+o/cf4xHw2F8Uudh+mf8VE/OJGnLNquphJjKdSS2ROO0TSabspKaaSWXpE7VZTkSktJ1XcseH9PT5zRj2DaEAbEpSiLyo6NAOgERmyLObCod1NIxLYMhRS6ZOvRlicRmWIf34jSN8wvzGinOtQvysPYwv+nAAlz9gpAlu0NtWVVzmdlVCzS9DGvV58WlelvBUr3uxHE8VJ5V/qwW3pxtx5JLvg3V/jwR9afti7Y/6vt+R8/G25vBNk9avu+J7c3uhp79x69/c5806nMDE/2wWf4/fv0P3f/99o9axuPiaSIzk6Hkb1L/b5b+vg9avzcUfWDUFNkHuePQ9DaUdKa/7EyQFY6X1y1cjA63mA2lckSRcVIwtGmFIVKqsg79vCxDyomin3Uve+IWp2uAohjgmMZ+7fftenXTcAxENXaGUgY2KapdOYiZjekPIhOZUP4tT67MUZTPprD8usGOEV07DNkOqd8hZQmGtQodh/542uTrcVy5bPb7+vfWKrJRcXzFdTTzXbhrTJ7AqMVSNwbRUbkvWn+/PrE62mJ/TbN/FP0Bk42GPnNDiXTbovy/uPlGae7ijfegM29J+0GVwp7eFIvSn+5r4wDltK9ix3yb7RlLcJPFovp/S/zf+DCOhLex9/8JscLxTkmfvSEGg2JyAskpRJJlbHYoPgNDG9rTRw0x63qga+mirxhPAVvFgDtByahjndohbKmdVNG3/2hb6+bY8AP9g/eIRJQP/YgyUWTuMq5OECfDMaIvu+Q8sTEQVc6QsRoMNWUWh/hce8aqP75M7Eva4pVzFm/a4iprKnSc/PfXZ8Qx3jURbVJtWqt/Xtli7B/d1TntA6vAgW/YfFMOax9PyIRrOG4P5Z+5Wsalf66MZu2SL7z78FtaPnUTJTOEnmP1/3xbx6X/GPjN11d73+lWQP/P199w/f0xz5ddxTrm0ZLZuKdxxgETUrbgyxNghSNZ39sOr+O7U9BCfAwpy/KNQ8iimENVUhU31QxhhKdnTGu/go/ZtbiARTPg7CnVUq4dfJ+mTLsaUtZSDFmGykSRnb9w4Ko1YFvNmho5+G2EOeVbif62mE5SJV5zZOVZuVqCtlfb6LcdWV3Q/NY+jbQ4S5OhX4bpbUhNtVZFELMviaOPdi0ZKPTNxu/u2bh76rTp5+P80a/tbY3+yqLjwphpsv2h7x2dPbMulyexZmZruMRvfmZ3w7z9G6F/wxs+QoFzlwz8EX7z83rJ1J+y+T11bqb+I/X/eu0cfbz1de25ms/ihpcy0fT3x1CVYRHvnKztHX//b/kKx64K3gqbVHiHiljDUHecoaiwnVAc+sSkZsQxzEdeS8rli2edNnhYT11MywzCuBigfeQDu6ZYw8a+HSnLYOOQcv7DE7k5vZzU5Usn/INoX0ANXX4qkJYDQWQiBR5zKLJrI6e3MsWVtjgdqBP/DF1axlnI6zPW9GyK8UDZ+zwfJ+3nFT3ZML14J0w5af8wGvRwi/QXLoq0P17+9auO3pOubPQdKcapjxW+Ldb5vaFn+9QPDld/v86i5I6k/avoIY9ZPzFk/dTV0PQ2bIb+7OtSLpECgqHuHd42r08D+3/h/t+o8U+/4imvLZ9wJMnB1ZmJbeAm1vowpaXxZZcWjy3H8U/P6338nzwaQqsYwMvb0Iv5obkMKctg45CyJlEUmYMus/GkLoNRhpKbpmYpLAMfjhmGKnOiwDjNNxztmObDVvITfTktX9qigxLbxbJTdPX49VFX1tlQ/UulB6eX2ns7+vo3oMqWhdl9/Xs7e2afH8XxjcIDWiK6OjS9Dc3uhqQYbAvVRP6JrR2KLNxpuSxHcjhUmeojJ4vBR7l3dnHt8O3BMqo/zJflt7KIqRwlb2Px9wudvYNXF7VKGmMkLkJ/sld0iPr6D0wptX8KFL9Cm+s/pYlm//EzYz7WlP5PRydpZIzgkHJT/N8vHxVIPUD6J+tLkS3BQcYdSn+9pBaJEFo64XhpcFEX3rS3UpRAY8QBHYo7QpkUPcXS9F6cKh5/s3v50N1ULITWMpA5oHNKGI2OSu81pMx0hiIjjSE9mYcNfVk9P0tr9VFryU8BQepyqLKrH56FlEyCYKh7/lbqZAok0Q/bTFnbzjIpE3253nFmlnZoIZKXcZZedUUFKA8J38At3d/o6p39kaP65NkYftNaIvPbflfvpi+jeTiBJK/7Ovuy6ePHmd6Gprch81Trr5xrXLWs/Cj3lkfyi61QjgtSF2SiyiPYPyo939YWn9PVt+mXVkYRiAUO8QHTJdOPjVfdSY/J2fGMs9HpX4Q2w+vAZPX59nLblVDyzQlt/+FNHzkGF+CYf9EGlIm+bMcRqX5IY7o0hmI/lzezL6pvqP1H8P+ctmwmg2sucOzj34RZ4ajsf/szeNNe2YyjijkNRc38xo4RfZk2iW7rXv6vH+RzhP1WMaA2kk4EW43axr5ZRcbGkIL0AId+b6ijptbPbNoGJrM4X86OWzpWmnXOdMBALGULVla9/Hp87PpjIv7XqNR+amffphuKWNI3fUaLnX2Dd5SiqUtA0b3M02j9xeZmd8Mm2h8a8Ar0m6dNKS2eu3jTutHy0PB0oisJdR/RmbW4iAb4P0trRZizZOCBtlJ5JZzl9br1F6C/9Vm2wWTrp3XbNcKBye7/9dqvY52OgzbuGeb5Mw4N6bMqZ+S1dIUD126sRouy1phM9DuW62ymCFFkNxvEbdDru4859uqsoCBNXgb0Qs5SiejLtTUyh059InVyN0BLNs/HahdTN9YuKJWLzfiLHYLF1c10GAfwg8wjUdR2UdfSzRd09fU/cxhFNT0r29e1dHAlXhz3SVT2QmMq9G3uy7VLb4T98WVlY1spXtHVO3hd66/98nX25ebpX7vk5sR2LB1YE5XL5+KkNVS7Bl9nX66duhH2r11yq2J9nX25dnuarb+NdY0a/1o24dj52Af7MG1YpDTqyQH72OVW/3hM4zRVfptgHRKO++KUg/Gl0YI1b+aPh/1WMuBO+P7E0SaKDv3OkrXUlg+Iej2EoaaHR1iZ8A4NhlkpqSRpsUd09RrWqt+P8+W0vJzgp1E51z5r6yHqhxrv4KT3p6gturBr6eNnYTn//lw1E3q3q2fznaUp8Sm4aPc7MNlu44G9V3g3HAX/tLWG5tsfbRvCe1Gu6ew7eencvs2PTQySm6v/O6UCH8RRh9DOJQMD0fS5PfCO3zCJ9SFN3lz9pS7nh1avYZ3mjiqaZWg5GU50/ze9DamoyURfrkeCn0Zly8cx2ev/roCWvbwtOXhgNZvkB/+CG43HUo4MQJoSHLjfx/Qo0r+FC1Ium7viqR1+OUGeQAz44wealdsVp+YSnTmuympnasF9Oq6iiCo755F45xdMmaV1PoMYudpajml55kcaZWW7AiXSl11GB5zpq5/atw9OiiibZtXp02h32FLhjaxsNS8C/W1pWunWrlMHX8rlnFS7x5y+eT8a/L3khTN/8vKu164Cq3gGTrKgnv7GA+2uNlfOVVY7kQC1u9kIEWSNmZ2JTNZ0zGFpNQG3w+xfivqxonFDR98nfs+Hm5VKzXtSOVs0uqADNfXw/VP1Mp1Q0mHq37IBP0dC58I1+xD1uV3rF94SR9GNlUpyOpM0W/98+Xl/yTVzVLu48YEtr53Woh3mdv9/xj/HTkv8Lxl6/9Sdeyq8gAgOxgHbDQ4C7HjaOnUOr7PJKEOTaYI4jj5/zPKnH61t6RDbSgbMpmZfIoOeYDKbj3S8pg7OP3iME1J4jCD3h5XP4/Qz/KXHXZxE5DZS3iHS549LsQnK1uKH1+/8G77Ka6eextntMTyW/L4ZUfl+Pt8iV/2k33UvSLwpSS6/eff6Jy+CbVZhQnYJOvpRVG6YfRw/9fyjJiHjsD++mLwIL/gdVpFuP6ZncK2WOxEmGpmG2XiX9Y/sqCeNQ3/z/9avb3h6QOzu2/Jgkny356X+O1fhJ9QvJZVkmY0J1Sm9vcPQ38YCYqOCcDtC/6/n36ZrveM12+g1XcajSTD+mR4tmXDs2H3wYjRgNhtRbXhjUtF8wtBPj1nxT7uXP/NrxoUwcRkw+xqypb48Ust1ENZvPpKWrsHO7VyFZcmu5yTV5Vf7FMtDA/RbsorptyrsMkYhRT8OstVNlIDljTh+Az/v4Se96A0Utg9ZdwJ3YBDZjju1t0Xlts1JW7TZrQJYxiMa3e2keLR16Z7k2Q9Ne/nfe1biW+ylGCDPgX0WjFb58dof+WjILcCHYIs7O3suX6OrGaOtufB0qUf5NY9X/6yMan8u28w4S9ByydnlNjTkthf7TzsjqhzEzQTRJeiLxzVaf5ZX1f9L0au4ruBhfBG4v9xevmtcZKBMf8ypJdeKG01dTdcf7mF1aHuq/aU6DnvCn0MA9bJJk6atwYWQrkdrOrllbBZuXzv/bgwHHxvW+mEVUnnTkAdVxqB137wz+z5e1D3yw5oVIgIDgYFxM7B7fW837o48C9357EqSLER/PhED1wlYDSnLNKGqy2OHk8l00Ko5JrxZiuLnkHBrFMWb4iT6G27BfOToJQP/GXcjQ8aWMgB/iF75x6K+g3FyLqb0y9CYZbD8fNgYYpWDYN/isiNMwWBHkijCs1VKz+ILwBB85IlSnGzGz2ob5vQMPokTJpOFUAADZpcCqtIqdq8/pfvtt994ARZuy7xBj9nSOJEhv1xEP8Ptgk/NmPGe5WEwUc7CNjBwJDCAn2DaXhwYOj6qHDgRPz4dDZ1morPPEMQr5JK4UsEzSf6Lycd+DA/7S23xfuzviduirXNOH9gZThpHghccWgeulO3Z++oJlQMH34s5wjxMRGZiSgEfiWbgiVI8acA3nH/QV+LSPlwUvKcytbKjc9Hgy8FHDs1vEUcLn3DsWDv/eiytyvMyWDm9JG2Ere24bzP55Ro84XBvnCRnzFvx3JNFkBPqCAwEBgIDgYHAQGCgMQwUflssVkdX6zRDVzFUVmX0an/EYOrqyzyKOQie51a5Mkw2lKuwDQwEBgIDgYHAwGRioNAJxwtr5y/HTOIUWdbAfEN+OnGoP6doHFc8dNVDLwhkLPa/fvyZ2/4ymcgNbQ0MBAYCA4GBwEBgQBko9C6V6GDlKt5ByAmEBu5QdtMLd3EYf0qxIEej6NZjV2z7kcUFDAwEBgIDgYHAQGBgcjFQ2ApH8uz8aZg8XIEVjowhk4m+bCk4D4lK646dF19rUQEDA4GBwEBgIDAQGJh8DBQ24dixq3IBZhWz7A4UUmUrGUSVM+TKB6J3YZZyWbTgufDY8snnW6HFgYHAQGAgMBAYSBko7CcV3P/Me+7dQ0L4KGgGPlGPsv6kIlHpJnqrPU4u7VixfWcaFYTAQGAgMBAYCAwEBiYlA4WtcOAWk6VkyFY1KNuzfIj88FiGlWu7V2xv3Wui2cAQAgOBgcBAYCAwEBhoCAOFTTiSKOHLeqoWM/xbX30ZD2j58XFn7ZA3CTZEy1BIYCAwEBgIDAQGAgMtZaCwCQcuydjK6zfkeg0i/hgMReYKR6l073FnXfM1ORg2gYHAQGAgMBAYCAwcEQwUNuGIytFNmE0c0Ks1ONmwu1UMufiRrJs5fdqqCf6SpSPC8EGJwEBgIDAQGAgMFMlAYROO48/YPoRJxvX48DGiAF3tMMTu2plTZl44u2/r3iIJCHUFBgIDgYHAQGAgMNB8BnTBofn1pDVse3jeBaj0i5hynIe5x1t4y+Mz2P/F8WefdEcUrXknTRiEwEBgIDAQGAgMBAaOGAb+B5nwCpLPLNx7AAAAAElFTkSuQmCC"],["fxFlex","30","width","295","height","295","viewBox","0 0 295 295","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["clip-path","url(#clip0)"],["d","M182.629 183.635C213.842 170.774 228.719 135.046 215.857 103.833C202.996 72.6204 167.268 57.7435 136.055 70.6048C104.843 83.4659 89.966 119.195 102.827 150.407C115.688 181.62 151.417 196.496 182.629 183.635Z",1,"fill-color-0"],["d","M154.81 93.8059C152.146 100.719 149.483 108.164 146.287 115.608C146.287 115.608 146.287 116.672 147.353 116.672H169.191C169.191 116.672 169.191 117.204 169.723 117.736L137.765 153.364C137.233 152.832 137.233 152.301 137.233 151.769L148.418 127.839V125.712H126.047V123.585L153.212 93.8059H154.81Z",1,"fill-color-15"],["d","M158.075 173.411C189.288 160.55 204.164 124.822 191.303 93.6088C178.442 62.3964 142.714 47.5195 111.501 60.3808C80.2885 73.2419 65.4118 108.971 78.2729 140.183C91.1342 171.396 126.863 186.272 158.075 173.411Z",1,"stroke-color-thinest"],["d","M259.352 172.363L85.4595 244.016",1,"stroke-color-thinest"],["d","M122.291 259.352L85.4593 244.016L100.795 207.184",1,"stroke-color-thinest"],["id","clip0"],["width","225.692","height","225.692","transform","translate(0 85.9831) rotate(-22.3941)",1,"fill-color-30"],["fxFlex","30","width","300","height","300","viewBox","0 0 300 300","fill","none","xmlns","http://www.w3.org/2000/svg",3,"ngClass"],["d","M50 237.5V112.5C50 105.625 55.625 100 62.5 100H262.5C269.375 100 275 105.625 275 112.5V237.5C275 244.375 269.375 250 262.5 250H62.5C55.625 250 50 244.375 50 237.5Z",1,"fill-color-0"],["d","M25 212.5V87.5C25 80.625 30.625 75 37.5 75H237.5C244.375 75 250 80.625 250 87.5V212.5C250 219.375 244.375 225 237.5 225H37.5C30.625 225 25 219.375 25 212.5Z",1,"stroke-color"],["d","M293.75 200H275V150H293.75C297.25 150 300 152.75 300 156.25V193.75C300 197.25 297.25 200 293.75 200Z",1,"fill-color-0"],["d","M268.75 175H250V125H268.75C272.25 125 275 127.75 275 131.25V168.75C275 172.25 272.25 175 268.75 175Z",1,"stroke-color"],["d","M137.5 187.5L156.25 150H118.75L137.5 112.5",1,"stroke-color"]],template:function(z,Oe){if(1&z&&(t.YNc(0,Kt,1,0,"ng-container",0),t.YNc(1,fi,18,5,"ng-template",null,1,t.W1O),t.YNc(3,Ai,15,5,"ng-template",null,2,t.W1O),t.YNc(5,Zi,19,5,"ng-template",null,3,t.W1O),t.YNc(7,en,17,5,"ng-template",null,4,t.W1O),t.YNc(9,Cn,13,5,"ng-template",null,5,t.W1O)),2&z){const _t=t.MAs(2),pi=t.MAs(4),On=t.MAs(6),hr=t.MAs(8),Un=t.MAs(10);t.Q6J("ngTemplateOutlet",1===Oe.stepNumber?_t:2===Oe.stepNumber?pi:3===Oe.stepNumber?On:4===Oe.stepNumber?hr:Un)}},directives:[te.tP,b.xw,b.yH,b.Wh,te.mk,An.oO,F.n5,F.$j],styles:["svg.small-svg[_ngcontent-%COMP%]{height:50%;min-height:50%;max-width:100%}svg.large-svg[_ngcontent-%COMP%]{height:60%;min-height:60%;max-width:100%}"],data:{animation:[cr.l]}}),$})();const tt=["stepper"];function Et($,Ze){if(1&$&&t._uU(0),2&$){const z=t.oxw(2);t.Oqu(z.inputFormLabel)}}function It($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Amount is required."),t.qZA())}function zt($,Ze){if(1&$&&(t.TgZ(0,"mat-error"),t._uU(1),t.ALo(2,"number"),t.qZA()),2&$){const z=t.oxw(2);t.xp6(1),t.hij("Amount must be greater than or equal to ",t.lcZ(2,1,null==z.serviceInfo||null==z.serviceInfo.limits?null:z.serviceInfo.limits.minimal),".")}}function ri($,Ze){if(1&$&&(t.TgZ(0,"mat-error"),t._uU(1),t.ALo(2,"number"),t.qZA()),2&$){const z=t.oxw(2);t.xp6(1),t.hij("Amount must be less than or equal to ",t.lcZ(2,1,null==z.serviceInfo||null==z.serviceInfo.limits?null:z.serviceInfo.limits.maximal),".")}}function vi($,Ze){1&$&&(t.TgZ(0,"button",40),t._uU(1,"Next"),t.qZA())}function Mi($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",41),t.NdJ("click",function(){return t.CHM(z),t.oxw(2).onSwap()}),t._uU(1),t.qZA()}if(2&$){const z=t.oxw(2);t.xp6(1),t.hij("Initiate ",z.swapDirectionCaption,"")}}function Ei($,Ze){if(1&$&&t._uU(0),2&$){const z=t.oxw(3);t.Oqu(z.addressFormLabel)}}function ji($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Address is required."),t.qZA())}function hn($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"mat-step",15),t.TgZ(1,"form",16),t.YNc(2,Ei,1,1,"ng-template",17),t.TgZ(3,"div",42),t.TgZ(4,"mat-radio-group",43),t.NdJ("change",function(_t){return t.CHM(z),t.oxw(2).onAddressTypeChange(_t)}),t.TgZ(5,"mat-radio-button",44),t._uU(6,"Node Local Address"),t.qZA(),t.TgZ(7,"mat-radio-button",45),t._uU(8,"External Address"),t.qZA(),t.qZA(),t.TgZ(9,"mat-form-field",46),t._UZ(10,"input",47),t.YNc(11,ji,2,0,"mat-error",24),t.qZA(),t.qZA(),t.TgZ(12,"div",25),t.TgZ(13,"button",48),t.NdJ("click",function(){return t.CHM(z),t.oxw(2).onSwap()}),t._uU(14),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw(2);t.Q6J("stepControl",z.addressFormGroup)("editable",z.flgEditable),t.xp6(1),t.Q6J("formGroup",z.addressFormGroup),t.xp6(9),t.Q6J("required","external"===z.addressFormGroup.controls.addressType.value),t.xp6(1),t.Q6J("ngIf",null==z.addressFormGroup.controls.address.errors?null:z.addressFormGroup.controls.address.errors.required),t.xp6(3),t.hij("Initiate ",z.swapDirectionCaption,"")}}function yn($,Ze){if(1&$&&t._uU(0),2&$){const z=t.oxw(2);t.hij("",z.swapDirectionCaption," Status")}}function Tn($,Ze){if(1&$&&(t.TgZ(0,"mat-icon",49),t._uU(1),t.qZA()),2&$){const z=t.oxw(2);t.xp6(1),t.Oqu(z.swapStatus&&null!=z.swapStatus&&z.swapStatus.id?"check":"close")}}function Vn($,Ze){1&$&&t._UZ(0,"div")}function wr($,Ze){1&$&&t._UZ(0,"mat-progress-bar",50)}function Or($,Ze){if(1&$&&(t.TgZ(0,"h4",51),t._uU(1),t.qZA()),2&$){const z=t.oxw(2);t.xp6(1),t.Oqu(z.swapStatus&&z.swapStatus.error?z.swapDirectionCaption+" failed.":z.swapStatus&&z.swapStatus.id?z.swapDirectionCaption+" request placed successfully. You can check the status of the request on the 'Boltz' menu.":z.swapDirectionCaption+" request placed successfully.")}}function Ar($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",52),t.NdJ("click",function(){return t.CHM(z),t.oxw(2).onRestart()}),t._uU(1,"Start Again"),t.qZA()}}function Yn($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",3),t.TgZ(1,"div",4),t.TgZ(2,"mat-card-header",5),t.TgZ(3,"div",6),t.TgZ(4,"span",7),t._uU(5),t.qZA(),t.qZA(),t.TgZ(6,"div",8),t.TgZ(7,"button",9),t.NdJ("click",function(){return t.CHM(z),t.oxw().showInfo()}),t._uU(8,"?"),t.qZA(),t.TgZ(9,"button",10),t.NdJ("click",function(){return t.CHM(z),t.oxw().onClose()}),t._uU(10,"X"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(11,"mat-card-content",11),t.TgZ(12,"div",12),t.TgZ(13,"mat-vertical-stepper",13,14),t.NdJ("selectionChange",function(_t){return t.CHM(z),t.oxw().stepSelectionChanged(_t)}),t.TgZ(15,"mat-step",15),t.TgZ(16,"form",16),t.YNc(17,Et,1,1,"ng-template",17),t.TgZ(18,"div",18),t._UZ(19,"rtl-boltz-service-info",19),t.qZA(),t.TgZ(20,"div",20),t.TgZ(21,"mat-form-field",21),t._UZ(22,"input",22),t.TgZ(23,"mat-hint"),t._uU(24),t.ALo(25,"number"),t.ALo(26,"number"),t.qZA(),t.TgZ(27,"span",23),t._uU(28,"Sats"),t.qZA(),t.YNc(29,It,2,0,"mat-error",24),t.YNc(30,zt,3,3,"mat-error",24),t.YNc(31,ri,3,3,"mat-error",24),t.qZA(),t.qZA(),t.TgZ(32,"div",25),t.YNc(33,vi,2,0,"button",26),t.YNc(34,Mi,2,1,"button",27),t.qZA(),t.qZA(),t.qZA(),t.YNc(35,hn,15,6,"mat-step",28),t.TgZ(36,"mat-step",29),t.TgZ(37,"form",16),t.YNc(38,yn,1,1,"ng-template",17),t.TgZ(39,"div",30),t.TgZ(40,"mat-expansion-panel",31),t.TgZ(41,"mat-expansion-panel-header"),t.TgZ(42,"mat-panel-title"),t.TgZ(43,"span",32),t._uU(44),t.YNc(45,Tn,2,1,"mat-icon",33),t.qZA(),t.qZA(),t.qZA(),t.YNc(46,Vn,1,0,"div",34),t.qZA(),t.YNc(47,wr,1,0,"mat-progress-bar",35),t.qZA(),t.YNc(48,Or,2,1,"h4",36),t.TgZ(49,"div",25),t.YNc(50,Ar,2,0,"button",37),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.TgZ(51,"div",38),t.TgZ(52,"button",39),t._uU(53,"Close"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw(),Oe=t.MAs(2);t.Q6J("@opacityAnimation",void 0),t.xp6(3),t.Q6J("fxFlex",z.screenSize===z.screenSizeEnum.XS||z.screenSize===z.screenSizeEnum.SM?"83":"91"),t.xp6(2),t.Oqu(z.swapDirectionCaption),t.xp6(1),t.Q6J("fxFlex",z.screenSize===z.screenSizeEnum.XS||z.screenSize===z.screenSizeEnum.SM?"17":"9"),t.xp6(7),t.Q6J("linear",!0),t.xp6(2),t.Q6J("stepControl",z.inputFormGroup)("editable",z.flgEditable),t.xp6(1),t.Q6J("formGroup",z.inputFormGroup),t.xp6(3),t.Q6J("serviceInfo",z.serviceInfo)("direction",z.direction),t.xp6(3),t.Q6J("step",1e3),t.xp6(2),t.AsE("Range: ",t.lcZ(25,30,null==z.serviceInfo||null==z.serviceInfo.limits?null:z.serviceInfo.limits.minimal),"-",t.lcZ(26,32,null==z.serviceInfo||null==z.serviceInfo.limits?null:z.serviceInfo.limits.maximal),""),t.xp6(5),t.Q6J("ngIf",null==z.inputFormGroup||null==z.inputFormGroup.controls||null==z.inputFormGroup.controls.amount||null==z.inputFormGroup.controls.amount.errors?null:z.inputFormGroup.controls.amount.errors.required),t.xp6(1),t.Q6J("ngIf",null==z.inputFormGroup||null==z.inputFormGroup.controls||null==z.inputFormGroup.controls.amount||null==z.inputFormGroup.controls.amount.errors?null:z.inputFormGroup.controls.amount.errors.min),t.xp6(1),t.Q6J("ngIf",null==z.inputFormGroup||null==z.inputFormGroup.controls||null==z.inputFormGroup.controls.amount||null==z.inputFormGroup.controls.amount.errors?null:z.inputFormGroup.controls.amount.errors.max),t.xp6(2),t.Q6J("ngIf",z.direction===z.swapTypeEnum.SWAP_OUT),t.xp6(1),t.Q6J("ngIf",z.direction===z.swapTypeEnum.SWAP_IN),t.xp6(1),t.Q6J("ngIf",z.direction===z.swapTypeEnum.SWAP_OUT),t.xp6(1),t.Q6J("stepControl",z.statusFormGroup),t.xp6(1),t.Q6J("formGroup",z.statusFormGroup),t.xp6(3),t.Q6J("expanded",!!z.swapStatus),t.xp6(4),t.Oqu(z.swapStatus?z.swapStatus.id?z.swapDirectionCaption+" request details":z.swapDirectionCaption+" error details":"Waiting for "+z.swapDirectionCaption+" request..."),t.xp6(1),t.Q6J("ngIf",z.swapStatus),t.xp6(1),t.Q6J("ngIf",!z.swapStatus)("ngIfElse",Oe),t.xp6(1),t.Q6J("ngIf",!z.swapStatus),t.xp6(1),t.Q6J("ngIf",z.swapStatus),t.xp6(2),t.Q6J("ngIf",z.swapStatus&&(z.swapStatus.error||!z.swapStatus.id)),t.xp6(2),t.Q6J("mat-dialog-close",!1)}}function _r($,Ze){if(1&$&&t._UZ(0,"rtl-boltz-swap-status",53),2&$){const z=t.oxw();t.Q6J("swapStatus",z.swapStatus)("direction",z.direction)}}function Fi($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"rtl-boltz-swapout-info-graphics",70),t.NdJ("stepNumberChange",function(_t){return t.CHM(z),t.oxw(2).stepNumber=_t}),t.qZA()}if(2&$){const z=t.oxw(2);t.Q6J("stepNumber",z.stepNumber)("animationDirection",z.animationDirection)}}function an($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"rtl-boltz-swapin-info-graphics",70),t.NdJ("stepNumberChange",function(_t){return t.CHM(z),t.oxw(2).stepNumber=_t}),t.qZA()}if(2&$){const z=t.oxw(2);t.Q6J("stepNumber",z.stepNumber)("animationDirection",z.animationDirection)}}const fn=function($,Ze){return{"dot-primary":$,"dot-primary-lighter":Ze}};function kn($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"span",71),t.NdJ("click",function(){const pi=t.CHM(z).$implicit;return t.oxw(2).onStepChanged(pi)}),t._UZ(1,"p",72),t.qZA()}if(2&$){const z=Ze.$implicit,Oe=t.oxw(2);t.xp6(1),t.Q6J("ngClass",t.WLB(1,fn,Oe.stepNumber===z,Oe.stepNumber!==z))}}function Rn($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",73),t.NdJ("click",function(){return t.CHM(z),t.oxw(2).onReadMore()}),t._uU(1,"Read More"),t.qZA()}}function Da($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",74),t.NdJ("click",function(){return t.CHM(z),t.oxw(2).onStepChanged(4)}),t._uU(1,"Back"),t.qZA()}}function Xr($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",75),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw(2);return _t.flgShowInfo=!1,_t.stepNumber=1}),t._uU(1,"Close"),t.qZA()}}function ca($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",76),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw(2);return _t.flgShowInfo=!1,_t.stepNumber=1}),t._uU(1,"Close"),t.qZA()}}function Wn($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",77),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw(2);return _t.onStepChanged(_t.stepNumber-1)}),t._uU(1,"Back"),t.qZA()}}function ps($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",78),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw(2);return _t.onStepChanged(_t.stepNumber+1)}),t._uU(1,"Next"),t.qZA()}}const La=function(){return[1,2,3,4,5]};function Ps($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",54),t.TgZ(1,"div",18),t.TgZ(2,"mat-card-header",55),t.TgZ(3,"div",56),t._UZ(4,"span",7),t.qZA(),t.TgZ(5,"div",57),t.TgZ(6,"button",58),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw();return _t.flgShowInfo=!1,_t.stepNumber=1}),t._uU(7,"X"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",59),t.YNc(9,Fi,1,2,"rtl-boltz-swapout-info-graphics",60),t.YNc(10,an,1,2,"rtl-boltz-swapin-info-graphics",60),t.qZA(),t.TgZ(11,"div",61),t.YNc(12,kn,2,4,"span",62),t.qZA(),t.TgZ(13,"div",63),t.YNc(14,Rn,2,0,"button",64),t.YNc(15,Da,2,0,"button",65),t.YNc(16,Xr,2,0,"button",66),t.YNc(17,ca,2,0,"button",67),t.YNc(18,Wn,2,0,"button",68),t.YNc(19,ps,2,0,"button",69),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("@opacityAnimation",void 0),t.xp6(9),t.Q6J("ngIf",z.direction===z.swapTypeEnum.SWAP_OUT),t.xp6(1),t.Q6J("ngIf",z.direction===z.swapTypeEnum.SWAP_IN),t.xp6(2),t.Q6J("ngForOf",t.DdM(10,La)),t.xp6(2),t.Q6J("ngIf",5===z.stepNumber),t.xp6(1),t.Q6J("ngIf",5===z.stepNumber),t.xp6(1),t.Q6J("ngIf",5===z.stepNumber),t.xp6(1),t.Q6J("ngIf",z.stepNumber<5),t.xp6(1),t.Q6J("ngIf",z.stepNumber>1&&z.stepNumber<5),t.xp6(1),t.Q6J("ngIf",z.stepNumber<5)}}let js=(()=>{class ${constructor(z,Oe,_t,pi,On,hr,Un,ur,ka){this.dialogRef=z,this.data=Oe,this.store=_t,this.boltzService=pi,this.formBuilder=On,this.decimalPipe=hr,this.logger=Un,this.router=ur,this.commonService=ka,this.faInfoCircle=x.sqG,this.serviceInfo={fees:{percentage:null,miner:{normal:null,reverse:null}},limits:{minimal:1e4,maximal:5e7}},this.swapTypeEnum=j.hc,this.direction=j.hc.SWAP_OUT,this.swapDirectionCaption="Swap out",this.swapStatus=null,this.inputFormLabel="Amount to swap out",this.addressFormLabel="Withdrawal Address",this.flgShowInfo=!1,this.stepNumber=1,this.screenSize="",this.screenSizeEnum=j.cu,this.animationDirection="forward",this.flgEditable=!0,this.unSubs=[new o.x,new o.x,new o.x,new o.x,new o.x,new o.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),this.serviceInfo=this.data.serviceInfo,this.direction=this.data.direction,this.swapDirectionCaption=this.direction===j.hc.SWAP_OUT?"Swap Out":"Swap in",this.inputFormLabel="Amount to "+this.swapDirectionCaption,this.inputFormGroup=this.formBuilder.group({amount:[this.serviceInfo.limits.minimal,[We.kI.required,We.kI.min(this.serviceInfo.limits.minimal),We.kI.max(this.serviceInfo.limits.maximal)]]}),this.addressFormGroup=this.formBuilder.group({addressType:["local",[We.kI.required]],address:[{value:"",disabled:!0}]}),this.statusFormGroup=this.formBuilder.group({}),this.onFormValueChanges()}ngAfterViewInit(){this.direction===j.hc.SWAP_OUT&&this.addressFormGroup.setErrors({Invalid:!0})}onFormValueChanges(){this.direction===j.hc.SWAP_OUT&&this.addressFormGroup.valueChanges.pipe((0,y.R)(this.unSubs[2])).subscribe(z=>{this.addressFormGroup.setErrors({Invalid:!0})})}onAddressTypeChange(z){"external"===z.value?(this.addressFormGroup.controls.address.setValidators([We.kI.required]),this.addressFormGroup.controls.address.markAsTouched(),this.addressFormGroup.controls.address.enable()):(this.addressFormGroup.controls.address.setValidators(null),this.addressFormGroup.controls.address.markAsPristine(),this.addressFormGroup.controls.address.disable(),this.addressFormGroup.controls.address.setValue("")),this.addressFormGroup.setErrors({Invalid:!0})}onSwap(){if(!this.inputFormGroup.controls.amount.value||this.inputFormGroup.controls.amount.value<+this.serviceInfo.limits.minimal||this.inputFormGroup.controls.amount.value>+this.serviceInfo.limits.maximal||this.direction===j.hc.SWAP_OUT&&"external"===this.addressFormGroup.controls.addressType.value&&(!this.addressFormGroup.controls.address.value||""===this.addressFormGroup.controls.address.value.trim()))return!0;this.flgEditable=!1,this.stepper.selected.stepControl.setErrors(null),this.stepper.next(),this.direction===j.hc.SWAP_IN?this.boltzService.swapIn(this.inputFormGroup.controls.amount.value).pipe((0,y.R)(this.unSubs[3])).subscribe({next:z=>{this.swapStatus=z,this.boltzService.listSwaps(),this.flgEditable=!0},error:z=>{this.swapStatus={error:z},this.flgEditable=!0,this.logger.error(z)}}):this.boltzService.swapOut(this.inputFormGroup.controls.amount.value,"external"===this.addressFormGroup.controls.addressType.value?this.addressFormGroup.controls.address.value:"").pipe((0,y.R)(this.unSubs[4])).subscribe({next:Oe=>{this.swapStatus=Oe,this.boltzService.listSwaps(),this.flgEditable=!0},error:Oe=>{this.swapStatus={error:Oe},this.flgEditable=!0,this.logger.error(Oe)}})}stepSelectionChanged(z){switch(z.selectedIndex){case 0:default:this.inputFormLabel="Amount to "+this.swapDirectionCaption,this.addressFormLabel="Withdrawal Address";break;case 1:this.inputFormLabel=this.inputFormGroup.controls.amount.value?this.swapDirectionCaption+" Amount: "+this.decimalPipe.transform(this.inputFormGroup.controls.amount.value?this.inputFormGroup.controls.amount.value:0)+" Sats":"Amount to "+this.swapDirectionCaption,this.addressFormLabel="Withdrawal Address"}z.selectedIndex{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(ze.so),t.Y36(ze.WI),t.Y36(C.yh),t.Y36(Fn),t.Y36(We.qu),t.Y36(te.JJ),t.Y36(Ae.mQ),t.Y36(I.F0),t.Y36(Ci.v))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-boltz-swap-modal"]],viewQuery:function(z,Oe){if(1&z&&t.Gf(tt,5),2&z){let _t;t.iGM(_t=t.CRH())&&(Oe.stepper=_t.first)}},decls:4,vars:2,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",4,"ngIf"],["swapStatusBlock",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch","class","info-graphics-container",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxLayoutAlign","start start",3,"fxFlex"],[1,"page-title"],["fxLayoutAlign","space-between end",3,"fxFlex"],["tabindex","21","mat-button","",1,"btn-close-x","p-0",3,"click"],["tabindex","22","mat-button","",1,"btn-close-x","p-0",3,"click"],[1,"padding-gap-x-large"],["fxLayout","column"],[3,"linear","selectionChange"],["stepper",""],[3,"stepControl","editable"],["fxLayout","column","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between",1,"my-1",3,"formGroup"],["matStepLabel",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between stretch"],[3,"serviceInfo","direction"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between center",1,"mt-1"],["fxFlex","48"],["autoFocus","","matInput","","placeholder","Amount","type","number","tabindex","1","formControlName","amount","required","",3,"step"],["matSuffix",""],[4,"ngIf"],["fxLayout","row","fxLayoutAlign","start center","fxFlex","100",1,"mt-2"],["mat-button","","color","primary","tabindex","2","type","button","matStepperNext","",4,"ngIf"],["mat-button","","color","primary","tabindex","3","type","button",3,"click",4,"ngIf"],[3,"stepControl","editable",4,"ngIf"],[3,"stepControl"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch"],["fxFlex","100",1,"flat-expansion-panel",3,"expanded"],["fxLayoutAlign","start center","fxFlex","100"],["class","ml-1 icon-small",4,"ngIf"],[4,"ngIf","ngIfElse"],["fxFlex","100","color","primary","mode","indeterminate",4,"ngIf"],["fxLayoutAlign","start","class","font-bold-500 mt-2",4,"ngIf"],["mat-button","","color","primary","tabindex","13","type","button",3,"click",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end end"],["mat-button","","color","primary","tabindex","14","type","button","default","",3,"mat-dialog-close"],["mat-button","","color","primary","tabindex","2","type","button","matStepperNext",""],["mat-button","","color","primary","tabindex","3","type","button",3,"click"],["fxLayout","row wrap","fxFlex","100","fxLayoutAlign","space-between stretch",1,"mt-1"],["color","primary","name","addressType","formControlName","addressType","fxFlex","100","fxLayoutAlign","space-between stretch",3,"change"],["fxFlex","48","tabindex","8","value","local"],["fxFlex","48","tabindex","9","value","external"],["fxFlex","100",1,"mt-1"],["matInput","","placeholder","Address","tabindex","10","formControlName","address",3,"required"],["mat-button","","color","primary","tabindex","11","type","button",3,"click"],[1,"ml-1","icon-small"],["fxFlex","100","color","primary","mode","indeterminate"],["fxLayoutAlign","start",1,"font-bold-500","mt-2"],["mat-button","","color","primary","tabindex","13","type","button",3,"click"],["fxLayout","column",3,"swapStatus","direction"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"info-graphics-container"],["fxLayout","row","fxFlex","8","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],["fxFlex","5","fxLayoutAlign","end center"],["tabindex","19","mat-button","",1,"btn-close-x","p-0",3,"click"],["fxLayout","column","fxFlex","70","fxLayoutAlign","space-between center",1,"padding-gap-x-large"],["fxFlex","100",3,"stepNumber","animationDirection","stepNumberChange",4,"ngIf"],["fxLayout","row","fxFlex","10","fxLayoutAlign","center end",1,"padding-gap-x-large","padding-gap-bottom-large"],["fxLayoutAlign","center center","class","dots-stepper-block",3,"click",4,"ngFor","ngForOf"],["fxLayout","row","fxFlex","10","fxLayoutAlign","end end",1,"padding-gap-x-large","padding-gap-bottom-large"],["mat-button","","class","mr-1","color","primary","tabindex","15","type","button",3,"click",4,"ngIf"],["mat-button","","class","mr-1","color","primary","tabindex","16","type","button",3,"click",4,"ngIf"],["mat-button","","color","primary","tabindex","17","type","button",3,"click",4,"ngIf"],["mat-button","","class","mr-1","color","primary","tabindex","18","type","button",3,"click",4,"ngIf"],["mat-button","","class","mr-1","color","primary","tabindex","19","type","button",3,"click",4,"ngIf"],["mat-button","","color","primary","tabindex","20","type","button",3,"click",4,"ngIf"],["fxFlex","100",3,"stepNumber","animationDirection","stepNumberChange"],["fxLayoutAlign","center center",1,"dots-stepper-block",3,"click"],[1,"dot","tiny-dot","mr-0",3,"ngClass"],["mat-button","","color","primary","tabindex","15","type","button",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","16","type","button",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","17","type","button",3,"click"],["mat-button","","color","primary","tabindex","18","type","button",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","19","type","button",1,"mr-1",3,"click"],["mat-button","","color","primary","tabindex","20","type","button",3,"click"]],template:function(z,Oe){1&z&&(t.YNc(0,Yn,54,34,"div",0),t.YNc(1,_r,1,2,"ng-template",null,1,t.W1O),t.YNc(3,Ps,20,11,"div",2)),2&z&&(t.Q6J("ngIf",!Oe.flgShowInfo),t.xp6(3),t.Q6J("ngIf",Oe.flgShowInfo))},directives:[te.O5,b.xw,b.yH,b.Wh,F.dk,ue.lW,F.dn,nt.Vq,nt.C0,We._Y,We.JL,We.sg,nt.VY,ma,yt.KE,st.Nt,We.wV,We.Fj,Ve.h,We.JJ,We.u,We.Q7,yt.bx,yt.R9,Gn.ib,Gn.yz,Gn.yK,ze.ZT,yt.TO,nt.Ic,$i.VQ,$i.U0,Lr.Hw,Kn.pW,fs,te.sg,kt,In,te.mk,An.oO],pipes:[te.JJ],styles:[".dots-stepper-block[_ngcontent-%COMP%]{width:3rem}.info-graphics-container[_ngcontent-%COMP%]{max-height:60rem;min-height:60rem}"],data:{animation:[xi._]}}),$})();function Ma($,Ze){1&$&&t._UZ(0,"mat-progress-bar",32)}function vs($,Ze){1&$&&(t.TgZ(0,"th",33),t._uU(1," Status "),t.qZA())}function Il($,Ze){if(1&$&&(t.TgZ(0,"td",34),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit,Oe=t.oxw();t.xp6(1),t.Oqu(Oe.swapStateEnum[z.status])}}function $o($,Ze){1&$&&(t.TgZ(0,"th",33),t._uU(1," Swap ID "),t.qZA())}function Io($,Ze){if(1&$&&(t.TgZ(0,"td",34),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(1),t.Oqu(z.id)}}function Cs($,Ze){1&$&&(t.TgZ(0,"th",33),t._uU(1," Claim Address "),t.qZA())}function kl($,Ze){if(1&$&&(t.TgZ(0,"td",34),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(1),t.Oqu(z.claimAddress)}}function dc($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," Onchain Amount (Sats) "),t.qZA())}function $c($,Ze){if(1&$&&(t.TgZ(0,"td",34),t.TgZ(1,"span",36),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,z.onchainAmount))}}function e1($,Ze){1&$&&(t.TgZ(0,"th",33),t._uU(1," Lockup Address "),t.qZA())}function ko($,Ze){if(1&$&&(t.TgZ(0,"td",34),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(1),t.Oqu(z.lockupAddress)}}function Rl($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," Expected Amount (Sats) "),t.qZA())}function el($,Ze){if(1&$&&(t.TgZ(0,"td",34),t.TgZ(1,"span",36),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,z.expectedAmount))}}function _o($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," Timeout Block Height "),t.qZA())}function Pl($,Ze){if(1&$&&(t.TgZ(0,"td",34),t.TgZ(1,"span",36),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,z.timeoutBlockHeight))}}function Nl($,Ze){1&$&&(t.TgZ(0,"th",35),t._uU(1," Amount (Sats) "),t.qZA())}function ao($,Ze){if(1&$&&(t.TgZ(0,"td",34),t.TgZ(1,"span",36),t._uU(2),t.ALo(3,"number"),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit;t.xp6(2),t.Oqu(t.lcZ(3,1,z.amt))}}function tl($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"th",37),t.TgZ(1,"div",38),t.TgZ(2,"mat-select",39),t._UZ(3,"mat-select-trigger"),t.TgZ(4,"mat-option",40),t.NdJ("click",function(){return t.CHM(z),t.oxw().onDownloadCSV()}),t._uU(5,"Download CSV"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}}function so($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"td",41),t.TgZ(1,"button",42),t.NdJ("click",function(_t){const On=t.CHM(z).$implicit;return t.oxw().onSwapClick(On,_t)}),t._uU(2,"View Info"),t.qZA(),t.qZA()}}function il($,Ze){if(1&$&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&$){const z=t.oxw(2);t.xp6(1),t.Oqu(z.emptyTableMessage)}}function vo($,Ze){if(1&$&&(t.TgZ(0,"td",43),t.YNc(1,il,2,1,"p",44),t.qZA()),2&$){const z=t.oxw();t.xp6(1),t.Q6J("ngIf",!(null!=z.listSwaps&&z.listSwaps.data)||(null==z.listSwaps||null==z.listSwaps.data?null:z.listSwaps.data.length)<1)}}const t1=function($){return{"display-none":$}};function uc($,Ze){if(1&$&&t._UZ(0,"tr",45),2&$){const z=t.oxw();t.Q6J("ngClass",t.VKq(1,t1,(null==z.listSwaps?null:z.listSwaps.data)&&(null==z.listSwaps||null==z.listSwaps.data?null:z.listSwaps.data.length)>0))}}function Ge($,Ze){1&$&&t._UZ(0,"tr",46)}function De($,Ze){1&$&&t._UZ(0,"tr",47)}const Ce=function($){return{"overflow-auto error-border":$,"overflow-auto":!0}},Je=function(){return["no_swap"]};let ct=(()=>{class ${constructor(z,Oe,_t,pi){this.logger=z,this.commonService=Oe,this.store=_t,this.boltzService=pi,this.selectedSwapType=j.hc.SWAP_OUT,this.swapsData=[],this.flgLoading=[!0],this.emptyTableMessage="No swaps available.",this.swapStateEnum=j.Qw,this.faHistory=x.qO$,this.swapCaption="Swap Out",this.displayedColumns=[],this.selFilter="",this.flgSticky=!1,this.pageSize=j.IV,this.pageSizeOptions=j.TJ,this.screenSize="",this.screenSizeEnum=j.cu,this.unSubs=[new o.x,new o.x,new o.x],this.screenSize=this.commonService.getScreenSize(),this.setTableColumns()}ngAfterViewInit(){this.swapsData&&this.swapsData.length>0&&this.loadSwapsTable(this.swapsData)}ngOnChanges(z){z.selectedSwapType&&!z.selectedSwapType.firstChange&&this.setTableColumns(),this.swapCaption=this.selectedSwapType===j.hc.SWAP_IN?"Swap In":"Swap Out",this.loadSwapsTable(this.swapsData)}setTableColumns(){this.screenSize===j.cu.XS||this.screenSize===j.cu.SM?(this.flgSticky=!1,this.displayedColumns=this.selectedSwapType===j.hc.SWAP_IN?["status","id","expectedAmount","actions"]:["status","id","onchainAmount","actions"]):this.screenSize===j.cu.MD?(this.flgSticky=!1,this.displayedColumns=this.selectedSwapType===j.hc.SWAP_IN?["status","id","expectedAmount","timeoutBlockHeight","actions"]:["status","id","onchainAmount","timeoutBlockHeight","actions"]):(this.flgSticky=!0,this.displayedColumns=this.selectedSwapType===j.hc.SWAP_IN?["status","id","lockupAddress","expectedAmount","timeoutBlockHeight","actions"]:["status","id","claimAddress","onchainAmount","timeoutBlockHeight","actions"])}applyFilter(){this.listSwaps&&""!==this.selFilter&&(this.listSwaps.filter=this.selFilter.trim().toLowerCase())}onSwapClick(z,Oe){this.boltzService.swapInfo(z.id).pipe((0,y.R)(this.unSubs[1])).subscribe(_t=>{this.store.dispatch((0,we.qR)({payload:{data:{type:j.n_.INFORMATION,alertTitle:this.swapCaption+" Status",message:[[{key:"status",value:j.Qw[(_t=this.selectedSwapType===j.hc.SWAP_IN?_t.swap:_t.reverseSwap).status],title:"Status",width:50,type:j.Gi.STRING},{key:"id",value:_t.id,title:"ID",width:50,type:j.Gi.STRING}],[{key:"amount",value:_t.onchainAmount?_t.onchainAmount:_t.expectedAmount?_t.expectedAmount:0,title:_t.onchainAmount?"Onchain Amount (Sats)":_t.expectedAmount?"Expected Amount (Sats)":"Amount (Sats)",width:50,type:j.Gi.NUMBER},{key:"timeoutBlockHeight",value:_t.timeoutBlockHeight,title:"Timeout Block Height",width:50,type:j.Gi.NUMBER}],[{key:"address",value:_t.claimAddress?_t.claimAddress:_t.lockupAddress?_t.lockupAddress:"",title:_t.claimAddress?"Claim Address":_t.lockupAddress?"Lockup Address":"Address",width:100,type:j.Gi.STRING}],[{key:"invoice",value:_t.invoice,title:"Invoice",width:100,type:j.Gi.STRING}],[{key:"privateKey",value:_t.privateKey,title:"Private Key",width:100,type:j.Gi.STRING}],[{key:"preimage",value:_t.preimage,title:"Preimage",width:100,type:j.Gi.STRING}],[{key:"redeemScript",value:_t.redeemScript,title:"Redeem Script",width:100,type:j.Gi.STRING}],[{key:"lockupTransactionId",value:_t.lockupTransactionId,title:"Lockup Transaction ID",width:50,type:j.Gi.STRING},{key:"transactionId",value:_t.claimTransactionId?_t.claimTransactionId:_t.refundTransactionId?_t.refundTransactionId:"",title:_t.claimTransactionId?"Claim Transaction ID":_t.refundTransactionId?"Refund Transaction ID":"Transaction ID",width:50,type:j.Gi.STRING}]],openedBy:"SWAP"}}}))})}loadSwapsTable(z){this.listSwaps=new _n.by(z?[...z]:[]),this.listSwaps.sort=this.sort,this.listSwaps.sortingDataAccessor=(Oe,_t)=>Oe[_t]&&isNaN(Oe[_t])?Oe[_t].toLocaleLowerCase():Oe[_t]?+Oe[_t]:null,this.listSwaps.filterPredicate=(Oe,_t)=>JSON.stringify(Oe).toLowerCase().includes(_t),this.paginator&&this.paginator.firstPage(),this.listSwaps.paginator=this.paginator,this.applyFilter(),this.logger.info(this.listSwaps)}onDownloadCSV(){this.listSwaps.data&&this.listSwaps.data.length>0&&this.commonService.downloadFile(this.listSwaps.data,this.selectedSwapType===j.hc.SWAP_IN?"Swap in":"Swap out")}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(Ci.v),t.Y36(C.yh),t.Y36(Fn))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-boltz-swaps"]],viewQuery:function(z,Oe){if(1&z&&(t.Gf(Cr.YE,5),t.Gf(Qr.NW,5)),2&z){let _t;t.iGM(_t=t.CRH())&&(Oe.sort=_t.first),t.iGM(_t=t.CRH())&&(Oe.paginator=_t.first)}},inputs:{selectedSwapType:"selectedSwapType",swapsData:"swapsData",flgLoading:"flgLoading",emptyTableMessage:"emptyTableMessage"},features:[t._Bn([{provide:Qr.ye,useValue:(0,j.pt)("Swaps")}]),t.TTD],decls:46,vars:16,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","start start",1,"card-content-gap"],["fxLayout","column","fxLayout.gt-xs","row","fxLayoutAlign.gt-xs","start center","fxLayoutAlign","start stretch","fxFlex","100",1,"page-sub-title-container","w-100"],["fxFlex","70"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxFlex","30"],["matInput","","placeholder","Filter",3,"ngModel","keyup","ngModelChange"],["fxLayout","row","fxLayoutAlign","start center",1,"w-100"],["fxFlex","100",1,"table-container",3,"perfectScrollbar"],["mode","indeterminate",4,"ngIf"],["mat-table","","matSort","",3,"dataSource","ngClass"],["table",""],["matColumnDef","status"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","id"],["matColumnDef","claimAddress"],["matColumnDef","onchainAmount"],["mat-header-cell","","mat-sort-header","","arrowPosition","before",4,"matHeaderCellDef"],["matColumnDef","lockupAddress"],["matColumnDef","expectedAmount"],["matColumnDef","timeoutBlockHeight"],["matColumnDef","amt"],["matColumnDef","actions"],["mat-header-cell","","class","px-3",4,"matHeaderCellDef"],["mat-cell","","class","pl-3","fxLayoutAlign","end center",4,"matCellDef"],["matColumnDef","no_swap"],["mat-footer-cell","","colspan","4",4,"matFooterCellDef"],["mat-footer-row","",3,"ngClass",4,"matFooterRowDef"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"mb-1",3,"pageSize","pageSizeOptions","showFirstLastButtons"],["mode","indeterminate"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell","","mat-sort-header","","arrowPosition","before"],["fxLayoutAlign","end center"],["mat-header-cell","",1,"px-3"],[1,"bordered-box","table-actions-select"],["placeholder","Actions","tabindex","1",1,"mr-0"],[3,"click"],["mat-cell","","fxLayoutAlign","end center",1,"pl-3"],["mat-stroked-button","","color","primary","type","button","tabindex","4",3,"click"],["mat-footer-cell","","colspan","4"],[4,"ngIf"],["mat-footer-row","",3,"ngClass"],["mat-header-row",""],["mat-row",""]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"div",2),t._UZ(3,"fa-icon",3),t.TgZ(4,"span",4),t._uU(5),t.qZA(),t.qZA(),t.TgZ(6,"mat-form-field",5),t.TgZ(7,"input",6),t.NdJ("keyup",function(){return Oe.applyFilter()})("ngModelChange",function(pi){return Oe.selFilter=pi}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(8,"div",7),t.TgZ(9,"div",8),t.YNc(10,Ma,1,0,"mat-progress-bar",9),t.TgZ(11,"table",10,11),t.ynx(13,12),t.YNc(14,vs,2,0,"th",13),t.YNc(15,Il,2,1,"td",14),t.BQk(),t.ynx(16,15),t.YNc(17,$o,2,0,"th",13),t.YNc(18,Io,2,1,"td",14),t.BQk(),t.ynx(19,16),t.YNc(20,Cs,2,0,"th",13),t.YNc(21,kl,2,1,"td",14),t.BQk(),t.ynx(22,17),t.YNc(23,dc,2,0,"th",18),t.YNc(24,$c,4,3,"td",14),t.BQk(),t.ynx(25,19),t.YNc(26,e1,2,0,"th",13),t.YNc(27,ko,2,1,"td",14),t.BQk(),t.ynx(28,20),t.YNc(29,Rl,2,0,"th",18),t.YNc(30,el,4,3,"td",14),t.BQk(),t.ynx(31,21),t.YNc(32,_o,2,0,"th",18),t.YNc(33,Pl,4,3,"td",14),t.BQk(),t.ynx(34,22),t.YNc(35,Nl,2,0,"th",18),t.YNc(36,ao,4,3,"td",14),t.BQk(),t.ynx(37,23),t.YNc(38,tl,6,0,"th",24),t.YNc(39,so,3,0,"td",25),t.BQk(),t.ynx(40,26),t.YNc(41,vo,2,1,"td",27),t.BQk(),t.YNc(42,uc,1,3,"tr",28),t.YNc(43,Ge,1,0,"tr",29),t.YNc(44,De,1,0,"tr",30),t.qZA(),t._UZ(45,"mat-paginator",31),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(3),t.Q6J("icon",Oe.faHistory),t.xp6(2),t.hij("",Oe.swapCaption," History"),t.xp6(2),t.Q6J("ngModel",Oe.selFilter),t.xp6(3),t.Q6J("ngIf",!0===Oe.flgLoading[0]),t.xp6(1),t.Q6J("dataSource",Oe.listSwaps)("ngClass",t.VKq(13,Ce,"error"===Oe.flgLoading[0])),t.xp6(31),t.Q6J("matFooterRowDef",t.DdM(15,Je)),t.xp6(1),t.Q6J("matHeaderRowDef",Oe.displayedColumns)("matHeaderRowDefSticky",Oe.flgSticky),t.xp6(1),t.Q6J("matRowDefColumns",Oe.displayedColumns),t.xp6(1),t.Q6J("pageSize",Oe.pageSize)("pageSizeOptions",Oe.pageSizeOptions)("showFirstLastButtons",Oe.screenSize!==Oe.screenSizeEnum.XS))},directives:[b.xw,b.yH,b.Wh,J.BN,yt.KE,st.Nt,We.Fj,We.JJ,We.On,le.$V,te.O5,_n.BZ,Cr.YE,te.mk,An.oO,_n.w1,_n.fO,_n.Dz,_n.mD,_n.Ke,_n.as,_n.nj,Qr.NW,Kn.pW,_n.ge,Cr.nU,_n.ev,Ne.gD,Ne.$L,Te.ey,ue.lW,_n.yh,_n.Q2,_n.XQ,_n.Gk],pipes:[te.JJ],styles:[".mat-column-actions[_ngcontent-%COMP%]{min-height:4.8rem}"]}),$})();const Ot=function($){return["../",$]};function qt($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"div",15),t.NdJ("click",function(){const pi=t.CHM(z).$implicit;return t.oxw().onSelectedIndexChange(pi)}),t._uU(1),t.qZA()}if(2&$){const z=Ze.$implicit,Oe=t.oxw();t.Q6J("active",Oe.activeTab.link===z.link)("routerLink",t.VKq(3,Ot,z.link)),t.xp6(1),t.Oqu(z.name)}}let ii=(()=>{class ${constructor(z,Oe,_t){this.router=z,this.store=Oe,this.boltzService=_t,this.swapTypeEnum=j.hc,this.selectedSwapType=j.hc.SWAP_OUT,this.swaps={},this.swapsData=[],this.emptyTableMessage="No swap data available.",this.flgLoading=[!0],this.links=[{link:"swapout",name:"Swap Out"},{link:"swapin",name:"Swap In"}],this.activeTab=this.links[0],this.unSubs=[new o.x,new o.x,new o.x,new o.x]}ngOnInit(){this.boltzService.listSwaps();const z=this.links.find(Oe=>this.router.url.includes(Oe.link));this.activeTab=z||this.links[0],this.selectedSwapType=z&&"swapin"===z.link?j.hc.SWAP_IN:j.hc.SWAP_OUT,this.router.events.pipe((0,y.R)(this.unSubs[0]),(0,ne.h)(Oe=>Oe instanceof I.Av)).subscribe(Oe=>{const _t=this.links.find(pi=>Oe.urlAfterRedirects.includes(pi.link));this.activeTab=_t||this.links[0],this.selectedSwapType=_t&&"swapin"===_t.link?j.hc.SWAP_IN:j.hc.SWAP_OUT}),this.boltzService.swapsChanged.pipe((0,y.R)(this.unSubs[1])).subscribe({next:Oe=>{this.swaps=Oe,this.swapsData=this.selectedSwapType===j.hc.SWAP_IN?Oe.swaps:Oe.reverseSwaps,this.flgLoading[0]=!1},error:Oe=>{this.flgLoading[0]="error",this.emptyTableMessage=Oe.message?Oe.message:"No swap "+(this.selectedSwapType===j.hc.SWAP_IN?"in":"out")+" available."}})}onSelectedIndexChange(z){"swapin"===z.link?(this.selectedSwapType=j.hc.SWAP_IN,this.swapsData=this.swaps.swaps):(this.selectedSwapType=j.hc.SWAP_OUT,this.swapsData=this.swaps.reverseSwaps)}onSwap(z){this.boltzService.serviceInfo().pipe((0,y.R)(this.unSubs[2])).subscribe(Oe=>{this.store.dispatch((0,we.qR)({payload:{data:{serviceInfo:Oe,direction:z,component:js}}}))})}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(I.F0),t.Y36(C.yh),t.Y36(Fn))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-boltz-root"]],decls:18,vars:6,consts:[["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],["viewBox","0 0 78 78","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink",1,"botlz-icon-sm","mr-1"],["id","Logo","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","Group"],["id","Oval","cx","39","cy","39","r","37.5",1,"boltz-icon"],["d","M36.4583326,43.7755404 L40.53965,35.2316544 L39.4324865,35.2316544 L46.0754873,17.6071752 C46.292579,17.0204094 46.3287609,16.5159331 46.1840331,16.0937464 C46.0393053,15.671561 45.7860319,15.3674444 45.4242131,15.1813966 C45.0623942,14.9953487 44.6535376,14.9524146 44.1976433,15.0525945 C43.7417511,15.1527743 43.3256596,15.4461573 42.9493689,15.9327433 L22.6078557,40.7701025 C22.2026186,41.2710003 22,41.7575877 22,42.2298646 C22,42.6735173 22.1592003,43.0420366 22.477601,43.3354226 C22.7960017,43.6288058 23.1940025,43.7755404 23.6716036,43.7755404 L36.4583326,43.7755404 Z","id","Path",1,"boltz-icon-fill"],["d","M44.4883879,63.7755404 L48.8604707,55.165009 L47.6744296,55.165009 L54.7906978,37.4030526 C55.0232558,36.8117097 55.0620155,36.3032983 54.9069768,35.8778185 C54.7519381,35.4523399 54.4806208,35.1458511 54.0930248,34.958352 C53.7054289,34.7708528 53.2674441,34.7275839 52.7790706,34.8285452 C52.2906992,34.9295065 51.8449641,35.2251779 51.4418653,35.7155595 L29.6511611,60.746659 C29.2170537,61.251464 29,61.7418469 29,62.2178078 C29,62.6649211 29.1705423,63.036315 29.5116268,63.3319895 C29.8527113,63.6276613 30.2790669,63.7755404 30.7906936,63.7755404 L44.4883879,63.7755404 Z","id","Path-Copy","transform","translate(42.000000, 49.275540) rotate(-180.000000) translate(-42.000000, -49.275540) ",1,"boltz-icon-fill"],[1,"page-title"],["fxLayout","column",1,"padding-gap-x"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["mat-tab-nav-bar",""],["role","tab","mat-tab-link","","class","mat-tab-label",3,"active","routerLink","click",4,"ngFor","ngForOf"],["fxLayout","row","fxLayoutAlign","start start",1,"padding-gap-x-large","mt-1"],["mat-flat-button","","color","primary","type","button","tabindex","1",3,"click"],["fxLayout","row","fxFlex","100",3,"selectedSwapType","swapsData","flgLoading","emptyTableMessage"],["role","tab","mat-tab-link","",1,"mat-tab-label",3,"active","routerLink","click"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.O4$(),t.TgZ(1,"svg",1),t.TgZ(2,"g",2),t.TgZ(3,"g",3),t._UZ(4,"circle",4),t._UZ(5,"path",5),t._UZ(6,"path",6),t.qZA(),t.qZA(),t.qZA(),t.kcU(),t.TgZ(7,"span",7),t._uU(8,"Boltz"),t.qZA(),t.qZA(),t.TgZ(9,"div",8),t.TgZ(10,"mat-card"),t.TgZ(11,"mat-card-content",9),t.TgZ(12,"nav",10),t.YNc(13,qt,2,5,"div",11),t.qZA(),t.TgZ(14,"div",12),t.TgZ(15,"button",13),t.NdJ("click",function(){return Oe.onSwap(Oe.selectedSwapType)}),t._uU(16),t.qZA(),t.qZA(),t._UZ(17,"rtl-boltz-swaps",14),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(13),t.Q6J("ngForOf",Oe.links),t.xp6(3),t.hij("Start ",Oe.activeTab.name,""),t.xp6(1),t.Q6J("selectedSwapType",Oe.selectedSwapType)("swapsData",Oe.swapsData)("flgLoading",Oe.flgLoading)("emptyTableMessage",Oe.emptyTableMessage))},directives:[b.xw,b.Wh,F.a8,F.dn,b.yH,B.BU,te.sg,ue.lW,ct,B.Nj,I.rH],styles:[""]}),$})();class Bn{constructor(Ze){this.help=Ze}}function yo($,Ze){if(1&$&&(t.TgZ(0,"mat-expansion-panel",8),t.TgZ(1,"mat-expansion-panel-header"),t.TgZ(2,"mat-panel-title"),t._uU(3),t.qZA(),t.qZA(),t.TgZ(4,"mat-panel-description",9),t._UZ(5,"span",10),t.TgZ(6,"a",11),t._uU(7),t.qZA(),t.qZA(),t.qZA()),2&$){const z=t.oxw().$implicit,Oe=t.oxw();t.xp6(3),t.Oqu(z.help.question),t.xp6(2),t.Q6J("innerHTML",z.help.answer,t.oJD),t.xp6(1),t.Q6J("routerLink",Oe.flgLoggedIn?Oe.LNPLink+z.help.link:"/login"),t.xp6(1),t.Oqu(Oe.flgLoggedIn?z.help.linkCaption:"Login to go to the page")}}function ss($,Ze){if(1&$&&(t.TgZ(0,"div",6),t.YNc(1,yo,8,4,"mat-expansion-panel",7),t.qZA()),2&$){const z=Ze.$implicit,Oe=t.oxw();t.xp6(1),t.Q6J("ngIf","ALL"===z.help.lnImplementation||z.help.lnImplementation===Oe.selNode.lnImplementation)}}let qa=(()=>{class ${constructor(z,Oe){this.store=z,this.sessionService=Oe,this.helpTopics=[],this.faQuestion=x.Psp,this.LNPLink="/lnd/",this.flgLoggedIn=!1,this.unSubs=[new o.x,new o.x,new o.x,new o.x],this.helpTopics.push(new Bn({question:"Getting started",answer:'Funding your node is the first step to get started.\nGo to the "On-chain" page of the app:\n1. Generate a new address on the "Recieve" tab.\n2. Send funds to the address.\n3. Wait for the balance to be confirmed on-chain before proceeding further.\n3. Connecting with network peers and opening channels is next.\n',link:"onchain",linkCaption:"On-Chain page",lnImplementation:"ALL"})),this.helpTopics.push(new Bn({question:"Connect with peers",answer:'Connect with network peers to open channels with them.\nGo to "Peer/Channels" page under the "Lightning" menu :\n1. Get the peer pubkey and host address in the pubkey@ip:port format.\n2. On the "Peers" enter the peer address and connect.\n3. Once the peer is connected, you can open channel with the peer.\n4. A variety of actions can be performed on the connected peers page for each peer:\n a. View Info - View the peer details.\n b. Open Channel - Open channel with the peer.\n c. Disconnect - Disconnect from the peer.\n',link:"peerschannels",linkCaption:"Peers/Channels page",lnImplementation:"ALL"})),this.helpTopics.push(new Bn({question:"Opening Channels",answer:'Open channels with a connected network peer.\nGo to "Peer/Channels" page under the "Lightning" menu:\n1. On the "Channels" section, select the alias of the connected peer from the drop-down\n2. Specify the amount to commit to the channel and click on "Open Channel".\n3. There are a variety of options available while opening a channel. \n a. Private Channel - When this option is selected, a private channel is opened with the peer. \n b. Priority (advanced option) - Specify either Target confirmation Block or Fee in Sat/vByte. \n c. Spend Unconfirmd Output (advanced option) - Allow channels to be opened with unconfirmed UTXOs.\n4. Track the pending open channels under the "Pending" tab . \n5. Wait for the channel to be confirmed. Only a confimed channel can be used for payments or routing. \n',link:"peerschannels",linkCaption:"Peers/Channels page",lnImplementation:"ALL"})),this.helpTopics.push(new Bn({question:"Channel Management",answer:'Channel maintenance and balance score.\nGo to "Peer/Channels" page under the "Lightning" menu:\n1. A variety of actions can be perfomed on the open channels under the "Open" tab, with the "Actions" button:\n a. View Info - View the channel details.\n b. View Remote Fee - View the fee policy on the channel of the remote peer.\n c. Update Fee Policy - Modify the fee policy on the channel.\n d. Close Channel - Close the channel.\n2. Balance Score is a "balancedness" metric score for the channel. \n a. It helps measure how balanced the remote and local balances are, on a channel.\n b. A perfectly balanced channel has a score of one, where as a completely lopsided one has a score of zero.\n c. The formula for calculating the score is "1 - abs((local bal - remote bal)/total bal)".\n',link:"peerschannels",linkCaption:"Peers/Channels page",lnImplementation:"ALL"})),this.helpTopics.push(new Bn({question:"Lightning Transactions - Payments",answer:'Sending Payments from your node.\nGo to the "Transactions" page under the "Lightning" menu :\nPayments tab is for making payments via your node\n 1. Input a non-expired lightning invoice (Bolt11 format) in the "Payment request" field and click on "Send Payment" to send.\n 2. Advanced option # 1 (LND only) - Specify a limit on the routing fee which you are willing to pay, for the payment.\n 3. Advanced option # 2 (LND only) - Specify the outgoing channel which you want the payment to go through.\n',link:"transactions",linkCaption:"Transactions page",lnImplementation:"ALL"})),this.helpTopics.push(new Bn({question:"Lightning Transactions - Invoices",answer:'Receiving Payments on your node.\nGo to the "Transactions" page under the "Lightning" menu :\nInvoices tab is for receiving payments on your node.\n 1. Memo - Description you want to provide on the invoice.\n 2. Expiry - The time period, after which the invoice will be invalid.\n 3. Private Routing Hints - Generate an invoice with routing hints for private channels.\n',link:"transactions",linkCaption:"Transactions page",lnImplementation:"ALL"})),this.helpTopics.push(new Bn({question:"Lightning Transactions - Query Route",answer:'Querying Payment Routes.\nGo to the "Transactions" page under the "Lightning" menu :\nQuery Routes tab is for querying a potential path to a node and a routing fee estimate for a payment amount.\n 1. Destination Pubkey - Pubkey of the node, you want to send the payment to.\n 2. Amount - Amount in Sats, which you want to send to the node.\n',link:"transactions",linkCaption:"Transactions page",lnImplementation:"ALL"})),this.helpTopics.push(new Bn({question:"Channel Backups",answer:'Channel Backups are important to ensure that you have means to recover funds in case of node failures.\nBackup folder location can be customized in the RTL config file with the channelBackupPath field.\nRTL automatically creates all channel backup on server startup, as well as everytime a channel is opened or closed\nYou can verify the all channel backup file by clicking on "Verify All" Button on the backup page.\nYou can also backup each channel individually and verify them.\n** Keep taking backups of your channels regularly and store them in redundant locations **.\n',link:"backup",linkCaption:"Channel Backups",lnImplementation:"LND"})),this.helpTopics.push(new Bn({question:"Channel Restore",answer:'Channel Restore is used to recover funds from the channel backup files in case of node failures.\nFollow the below steps to perform fund restoration.\n\nPrerequisite:\n1. The node has been restored with the LND recovery seed.\n2. RTL generated channel backup file/s is available (all channel backup file is channel-all.bak).\n\nRecovery:\n1. Create a restore folder in your folder backup location, as specified in the RTL config file.\n2. Place the channel backup file in the restore folder.\n3. Go to the "Restore" tab under the "Backup" page of RTL.\n4. RTL will list the options to restore funds from the all channel file or individual channel backup file.\n5. Click on the Restore icon on the grid to restore the funds.\n6. Once the restore function is executed successfully, RTL will rename the backup file and it will not be accessible from the UI.\n7. Restore function will force close the channels and recover the funds from them.\n8. The pending close channels can be viewed under the "Pending" tab on the "Peer/Channels" page.\n9. Once the channel is closed, the corresponding pending on-chain transactions can be viewed on the "On-Chain" page.\n10. Once the transactions are confirmed, the channels funds will be restored to your LND Wallet.\n',link:"backup",linkCaption:"Channel Backups",lnImplementation:"LND"})),this.helpTopics.push(new Bn({question:"Forwarding History",answer:'Transactions routed by the node.\nGo to "Routing" page under the "Lightning" menu :\nTransactions routed by the node are listed on this page along with channels and the fee earned by transaction.\n',link:"routing",linkCaption:"Forwarding History",lnImplementation:"ALL"})),this.helpTopics.push(new Bn({question:"Graph Lookup",answer:'Querying your node graph for network node and channel information.\nGo to "Graph Lookup" page under the "Lightning" menu :\nEach node maintains a network graph for the information on all the nodes and channels on the network.\nYou can lookup information on nodes and channels from your graph:\n 1. Node Lookup - Enter the pubkey to perform the lookup.\n 2. Channel Lookup - Enter the short channel ID to perform the lookup.\n',link:"lookups",linkCaption:"Graph Lookup page",lnImplementation:"ALL"})),this.helpTopics.push(new Bn({question:"Settings",answer:'RTL Offers certain customizations on the UI to personalize your experience on the app\nGo to "Settings" page to access the customization options.\nNode Layout Options\n 1. User Persona - Two options are available to change the dashboard based on the persona.\n 2. Currency Unit - You can choose your preferred fiat currency, to view the onchain and channel balances in the choosen fiat currency.\n 3. Default Node - If you are managing multiple nodes via RTL UI, you can select the default node to load upon login.\nOther Customizations include day and night mode and a choice of color themes to select from.\n',lnImplementation:"ALL"}))}ngOnInit(){this.store.select(r.dT).pipe((0,y.R)(this.unSubs[0])).subscribe(z=>{switch(this.selNode=z,this.selNode.lnImplementation.toUpperCase()){case"CLT":this.LNPLink="/cl/";break;case"ECL":this.LNPLink="/ecl/";break;default:this.LNPLink="/lnd/"}}),this.sessionService.watchSession().pipe((0,y.R)(this.unSubs[1])).subscribe(z=>{this.flgLoggedIn=!!z.token}),this.sessionService.getItem("token")&&(this.flgLoggedIn=!0)}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(C.yh),t.Y36(Pe.m))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-help"]],decls:8,vars:2,consts:[["fxLayout","column","fxFlex","100"],["fxLayout","row","fxLayoutAlign","start center",1,"page-title-container"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start start",1,"padding-gap-x"],["fxFlex","100",4,"ngFor","ngForOf"],["fxFlex","100"],["class","flat-expansion-panel help-expansion mb-2px",4,"ngIf"],[1,"flat-expansion-panel","help-expansion","mb-2px"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start start"],[1,"pre-wrap",3,"innerHTML"],[1,"mt-2",3,"routerLink"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t._UZ(2,"fa-icon",2),t.TgZ(3,"span",3),t._uU(4,"Help"),t.qZA(),t.qZA(),t.TgZ(5,"div",4),t.TgZ(6,"div",0),t.YNc(7,ss,2,1,"div",5),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(2),t.Q6J("icon",Oe.faQuestion),t.xp6(5),t.Q6J("ngForOf",Oe.helpTopics))},directives:[b.xw,b.yH,b.Wh,J.BN,te.sg,te.O5,Gn.ib,Gn.yz,Gn.yK,Gn.u4,I.yS],styles:[".mat-card-content[_ngcontent-%COMP%]{margin-bottom:4px}"]}),$})();var Ns=m(9841);function Ba($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Token is required."),t.qZA())}let ys=(()=>{class ${constructor(z,Oe){this.dialogRef=z,this.store=Oe,this.faUserClock=x.hnx,this.token=""}onClose(){this.dialogRef.close(null)}onVerifyToken(){if(!this.token)return!0;this.dialogRef.close(),this.store.dispatch((0,we.M6)({payload:{twoFAToken:this.token}}))}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(ze.so),t.Y36(C.yh))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-login-token"]],decls:17,vars:2,consts:[["fxLayout","column","fxLayout.gt-sm","row","fxLayoutAlign","space-between stretch"],["fxFlex","100"],["fxLayout","row","fxLayoutAlign","space-between center",1,"modal-info-header"],["fxFlex","95","fxLayoutAlign","start start"],[1,"page-title"],["tabindex","3","fxFlex","5","fxLayoutAlign","center","mat-button","",1,"btn-close-x","p-0",3,"click"],["fxLayout","row",1,"padding-gap-x-large"],["fxLayout","column","fxFlex","100",3,"ngSubmit"],["tokenForm","ngForm"],["autoFocus","","matInput","","placeholder","Token","type","text","id","token","name","token","tabindex","2","required","",3,"ngModel","ngModelChange"],[4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-1"],["mat-button","","color","primary","tabindex","4","type","submit"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"div",3),t.TgZ(4,"span",4),t._uU(5,"Two Factor Token"),t.qZA(),t.qZA(),t.TgZ(6,"button",5),t.NdJ("click",function(){return Oe.onClose()}),t._uU(7,"X"),t.qZA(),t.qZA(),t.TgZ(8,"mat-card-content",6),t.TgZ(9,"form",7,8),t.NdJ("ngSubmit",function(){return Oe.onVerifyToken()}),t.TgZ(11,"mat-form-field"),t.TgZ(12,"input",9),t.NdJ("ngModelChange",function(pi){return Oe.token=pi}),t.qZA(),t.YNc(13,Ba,2,0,"mat-error",10),t.qZA(),t.TgZ(14,"div",11),t.TgZ(15,"button",12),t._uU(16,"Verify Token"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(12),t.Q6J("ngModel",Oe.token),t.xp6(1),t.Q6J("ngIf",!Oe.token))},directives:[b.xw,b.Wh,b.yH,F.dk,ue.lW,F.dn,We._Y,We.JL,We.F,yt.KE,st.Nt,We.Fj,Ve.h,We.Q7,We.JJ,We.On,te.O5,yt.TO],styles:[""]}),$})();function os($,Ze){1&$&&(t.TgZ(0,"mat-error"),t._uU(1,"Password is required."),t.qZA())}function Fs($,Ze){if(1&$&&(t.TgZ(0,"p",20),t.TgZ(1,"mat-icon",21),t._uU(2,"close"),t.qZA(),t._uU(3),t.qZA()),2&$){const z=t.oxw();t.xp6(3),t.hij(" ",z.loginErrorMessage," ")}}const n1=function($){return{"padding-gap-large":$}},r1=function($,Ze){return{"font-size-200":$,"font-size-300":Ze}};let Ro=(()=>{class ${constructor(z,Oe,_t,pi){this.logger=z,this.store=Oe,this.rtlEffects=_t,this.commonService=pi,this.faUnlockAlt=x.B$L,this.password="",this.rtlSSO=0,this.rtlCookiePath="",this.accessKey="",this.flgShow=!1,this.screenSize="",this.screenSizeEnum=j.cu,this.loginErrorMessage="",this.apiCallStatusEnum=j.Bn,this.unSubs=[new o.x,new o.x,new o.x]}ngOnInit(){this.screenSize=this.commonService.getScreenSize(),(0,Ns.a)([this.store.select(r.ul),this.store.select(r.Sr)]).pipe((0,y.R)(this.unSubs[0])).subscribe(([z,Oe])=>{this.loginErrorMessage="",z.status===j.Bn.ERROR&&(this.loginErrorMessage=this.loginErrorMessage+("object"==typeof z.message?JSON.stringify(z.message):z.message),this.logger.error(z.message)),Oe.status===j.Bn.ERROR&&(this.loginErrorMessage=this.loginErrorMessage+("object"==typeof Oe.message?JSON.stringify(Oe.message):Oe.message),this.logger.error(Oe.message))}),this.store.select(r.Yj).pipe((0,y.R)(this.unSubs[1])).subscribe(z=>{this.appConfig=z,this.logger.info(z)})}onLogin(){if(!this.password)return!0;this.loginErrorMessage="",this.appConfig.enable2FA?(this.store.dispatch((0,we.qR)({payload:{maxWidth:"35rem",data:{component:ys}}})),this.rtlEffects.closeAlert.pipe((0,Me.q)(1)).subscribe(z=>{z&&this.store.dispatch((0,we.x4)({payload:{password:he(this.password),defaultPassword:j.kO.includes(this.password.toLowerCase()),twoFAToken:z.twoFAToken}}))})):this.store.dispatch((0,we.x4)({payload:{password:he(this.password),defaultPassword:j.kO.includes(this.password.toLowerCase())}}))}resetData(){this.password="",this.loginErrorMessage="",this.flgShow=!1}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(C.yh),t.Y36(it.V),t.Y36(Ci.v))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-login"]],decls:25,vars:12,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","center stretch",1,"login-container"],["fxLayout","row","fxFlex","50","fxLayoutAlign","center stretch"],["fxLayout","column","fxLayout.gt-sm","row","fxFlex","100","fxLayoutAlign","stretch stretch"],["fxFlex","35","fxLayoutAlign","center center",1,"bg-primary"],["src","assets/images/RTL-Horse-BY.svg","alt","RTL Logo",1,"rtl-logo-svg"],["fxFlex","65","fxLayout","column","fxLayoutAlign","center stretch",3,"ngClass"],["fxLayout","row","fxLayoutAlign","center center",1,"page-title-container","p-0"],[1,"font-bold-500",3,"ngClass"],[1,"page-title"],[1,"mt-5px","mb-0","px-2"],["fxLayout","column","fxLayout.gt-sm","row wrap","fxLayoutAlign","start","fxLayoutAlign.gt-sm","space-between"],["loginForm","ngForm"],["fxFlex","100","fxLayoutAlign","start"],["autoFocus","","matInput","","placeholder","Password","id","password","name","password","tabindex","1","required","",3,"type","ngModel","ngModelChange"],["tabindex","2","matSuffix","",3,"click"],[4,"ngIf"],["fxFlex","100","class","color-warn pre-wrap","fxLayoutAlign","start start",4,"ngIf"],["fxLayout","row","fxFlex","100","fxLayoutAlign","end center",1,"mt-2"],["mat-stroked-button","","color","primary","tabindex","2","type","reset",1,"mr-1",3,"click"],["mat-flat-button","","color","primary","tabindex","3","type","submit",3,"click"],["fxFlex","100","fxLayoutAlign","start start",1,"color-warn","pre-wrap"],[1,"mr-1","icon-small"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"mat-card",1),t.TgZ(3,"div",2),t.TgZ(4,"div",3),t._UZ(5,"img",4),t.qZA(),t.TgZ(6,"div",5),t.TgZ(7,"mat-card-header",6),t.TgZ(8,"mat-card-title",7),t.TgZ(9,"span",8),t._uU(10,"Welcome"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(11,"mat-card-content",9),t.TgZ(12,"form",10,11),t.TgZ(14,"mat-form-field",12),t.TgZ(15,"input",13),t.NdJ("ngModelChange",function(pi){return Oe.password=pi}),t.qZA(),t.TgZ(16,"mat-icon",14),t.NdJ("click",function(){return Oe.flgShow=!Oe.flgShow}),t._uU(17),t.qZA(),t.YNc(18,os,2,0,"mat-error",15),t.qZA(),t.YNc(19,Fs,4,1,"p",16),t.TgZ(20,"div",17),t.TgZ(21,"button",18),t.NdJ("click",function(){return Oe.resetData()}),t._uU(22,"Clear"),t.qZA(),t.TgZ(23,"button",19),t.NdJ("click",function(){return Oe.onLogin()}),t._uU(24,"Login"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(6),t.Q6J("ngClass",t.VKq(7,n1,Oe.screenSize===Oe.screenSizeEnum.XS)),t.xp6(2),t.Q6J("ngClass",t.WLB(9,r1,Oe.screenSize===Oe.screenSizeEnum.XS,Oe.screenSize!==Oe.screenSizeEnum.XS)),t.xp6(7),t.Q6J("type",Oe.flgShow?"text":"password")("ngModel",Oe.password),t.xp6(2),t.Oqu(Oe.flgShow?"visibility_off":"visibility"),t.xp6(1),t.Q6J("ngIf",!Oe.password),t.xp6(1),t.Q6J("ngIf",""!==Oe.loginErrorMessage))},directives:[b.xw,b.yH,b.Wh,F.a8,te.mk,An.oO,F.dk,F.n5,F.dn,We._Y,We.JL,We.F,yt.KE,st.Nt,We.Fj,Ve.h,We.Q7,We.JJ,We.On,Lr.Hw,yt.R9,te.O5,ue.lW,yt.TO],styles:[".login-container[_ngcontent-%COMP%]{height:90vh}.login-container[_ngcontent-%COMP%] .mat-card[_ngcontent-%COMP%]{height:30rem}.login-container[_ngcontent-%COMP%] .rtl-logo-svg[_ngcontent-%COMP%]{width:100%}@media only screen and (max-width: 56.25em){.login-container[_ngcontent-%COMP%] .rtl-logo-svg[_ngcontent-%COMP%]{width:37%}}@media only screen and (max-width: 37.5em){.login-container[_ngcontent-%COMP%] .rtl-logo-svg[_ngcontent-%COMP%]{width:70%}}.login-container[_ngcontent-%COMP%] .material-icons.mat-icon[_ngcontent-%COMP%]{font-size:120%;cursor:pointer}"]}),$})();var Po=m(9442);let No=(()=>{class ${constructor(z,Oe){this.activatedRoute=z,this.router=Oe,this.error={errorCode:"",errorMessage:""},this.faTimes=x.NBC,this.unsubs=[new o.x,new o.x]}ngOnInit(){this.router.routeReuseStrategy.shouldReuseRoute=()=>!1,this.router.onSameUrlNavigation="reload",this.activatedRoute.paramMap.pipe((0,y.R)(this.unsubs[0])).subscribe(z=>{this.error=window.history.state})}goToHelp(){this.router.navigate(["/help"])}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(I.gz),t.Y36(I.F0))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-error"]],decls:13,vars:3,consts:[["fxLayout","row","fxFlex","100","fxLayoutAlign","center center"],["fxLayout","column","fxFlex","60","fxLayoutAlign","start center"],["fxLayout","row","fxLayoutAlign","center center",1,"page-title-container","padding-gap-large"],[1,"font-size-300","font-bold-500"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["fxLayout","column","fxLayoutAlign","center center",1,"padding-gap-large"],[1,"box-text","font-size-120"],["fxLayout","row","fxLayoutAlign","center","fxFlex","80"],["mat-flat-button","","color","primary","type","button",1,"mt-2",3,"click"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"mat-card",1),t.TgZ(2,"mat-card-header",2),t.TgZ(3,"mat-card-title",3),t._UZ(4,"fa-icon",4),t.TgZ(5,"span",5),t._uU(6),t.qZA(),t.qZA(),t.qZA(),t.TgZ(7,"mat-card-content",6),t.TgZ(8,"div",7),t._uU(9),t.qZA(),t.TgZ(10,"span",8),t.TgZ(11,"button",9),t.NdJ("click",function(){return Oe.goToHelp()}),t._uU(12,"Go To Help"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(4),t.Q6J("icon",Oe.faTimes),t.xp6(2),t.hij("Error ",Oe.error.errorCode,""),t.xp6(3),t.Oqu(Oe.error.errorMessage))},directives:[b.xw,b.yH,b.Wh,F.a8,F.dk,F.n5,J.BN,F.dn,ue.lW],encapsulation:2}),$})();var Oa=m(1643);function fc($,Ze){1&$&&t._UZ(0,"span",16)}function Fo($,Ze){1&$&&t._UZ(0,"span",17)}function a1($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"form",18,4),t.TgZ(2,"div",19),t._UZ(3,"fa-icon",2),t.TgZ(4,"span"),t._uU(5,"Please ensure that "),t.TgZ(6,"strong"),t._uU(7,"experimental-offers"),t.qZA(),t._uU(8," flag is set to true in the CLightning config before enabling it in RTL. Click "),t.TgZ(9,"strong"),t.TgZ(10,"a",20),t._uU(11,"here"),t.qZA(),t.qZA(),t._uU(12," to learn more about CLightning offers."),t.qZA(),t.qZA(),t.TgZ(13,"h4",21),t._uU(14,"Description"),t.qZA(),t.TgZ(15,"span"),t._uU(16,"Offers is a draft specification (also referred as BOLT12) for Lightning nodes and wallets, with experimental support in C-Lightning."),t.qZA(),t.TgZ(17,"h4",21),t._uU(18,"Links"),t.qZA(),t.TgZ(19,"span"),t.TgZ(20,"a",22),t._uU(21,"Clightning Bolt12"),t.qZA(),t.qZA(),t._UZ(22,"mat-divider",23),t.TgZ(23,"div",24),t._UZ(24,"fa-icon",2),t.TgZ(25,"span"),t._uU(26,"Do not get an Offer tattoo until spec is fully ratified!"),t.qZA(),t.qZA(),t.TgZ(27,"mat-slide-toggle",25),t.NdJ("ngModelChange",function(_t){return t.CHM(z),t.oxw(2).enableOffers=_t})("change",function(){return t.CHM(z),t.oxw(2).onUpdateFeature()}),t._uU(28),t.qZA(),t.qZA()}if(2&$){const z=t.oxw(2);t.xp6(3),t.Q6J("icon",z.faInfoCircle),t.xp6(19),t.Q6J("inset",!0),t.xp6(2),t.Q6J("icon",z.faExclamationTriangle),t.xp6(3),t.Q6J("ngModel",z.enableOffers),t.xp6(1),t.hij("Enable Offers ",z.enableOffers?"(You can find Offers under Lightning -> Transactions -> Offers)":"","")}}function f0($,Ze){if(1&$&&(t.TgZ(0,"mat-expansion-panel",9),t.TgZ(1,"mat-expansion-panel-header"),t.TgZ(2,"mat-panel-title",10),t.TgZ(3,"h4",11),t._uU(4),t.qZA(),t.TgZ(5,"h4",11),t.YNc(6,fc,1,0,"span",12),t.YNc(7,Fo,1,0,"span",13),t._uU(8),t.qZA(),t.qZA(),t.qZA(),t.TgZ(9,"div",14),t.YNc(10,a1,29,5,"form",15),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit,Oe=Ze.index;t.Q6J("expanded",!1),t.xp6(4),t.Oqu(z.name),t.xp6(2),t.Q6J("ngIf",z.enabled),t.xp6(1),t.Q6J("ngIf",!z.enabled),t.xp6(1),t.hij(" ",z.enabled?"Enabled":"Disabled"," "),t.xp6(2),t.Q6J("ngIf",0===Oe)}}const p0=I.Bz.forRoot([{path:"",pathMatch:"full",redirectTo:"login"},{path:"lnd",loadChildren:()=>Promise.all([m.e(893),m.e(859)]).then(m.bind(m,1859)).then($=>$.LNDModule),canActivate:[Oa.a1]},{path:"cl",loadChildren:()=>Promise.all([m.e(893),m.e(632)]).then(m.bind(m,7632)).then($=>$.CLModule),canActivate:[Oa.a1]},{path:"ecl",loadChildren:()=>Promise.all([m.e(893),m.e(637)]).then(m.bind(m,8637)).then($=>$.ECLModule),canActivate:[Oa.a1]},{path:"settings",component:q,canActivate:[Oa.a1],children:[{path:"",pathMatch:"full",redirectTo:"app"},{path:"app",component:X,canActivate:[Oa.a1]},{path:"auth",component:Ft,canActivate:[Oa.a1]},{path:"bconfig",component:mt,canActivate:[Oa.a1]}]},{path:"config",component:$e,canActivate:[Oa.a1],children:[{path:"",pathMatch:"full",redirectTo:"layout"},{path:"layout",component:Sr,canActivate:[Oa.a1]},{path:"services",component:qn,canActivate:[Oa.a1],children:[{path:"",pathMatch:"full",redirectTo:"loop"},{path:"loop",component:zr,canActivate:[Oa.a1]},{path:"boltz",component:Ur,canActivate:[Oa.a1]}]},{path:"experimental",component:(()=>{class ${constructor(z,Oe){this.logger=z,this.store=Oe,this.faInfoCircle=x.sqG,this.faExclamationTriangle=x.eHv,this.faCode=x.dT$,this.features=[{name:"Offers",enabled:!1}],this.enableOffers=!1,this.unSubs=[new o.x,new o.x,new o.x]}ngOnInit(){this.store.select(r.dT).pipe((0,y.R)(this.unSubs[0])).subscribe(z=>{this.selNode=z,this.enableOffers=this.selNode.settings.enableOffers,this.features[0].enabled=this.enableOffers,this.logger.info(this.selNode)})}onUpdateFeature(){this.logger.info(this.selNode),this.selNode.settings.enableOffers=this.enableOffers,this.features[0].enabled=this.enableOffers,this.store.dispatch((0,we.jS)({payload:{uiMessage:j.m6.UPDATE_SETTING,service:j.JX.OFFERS,settings:{enableOffers:this.enableOffers}}})),this.store.dispatch((0,ui.JT)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl,enableOffers:this.enableOffers}})),this.store.dispatch((0,Lt.oo)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl,enableOffers:this.enableOffers}})),this.store.dispatch((0,gt.Zr)({payload:{userPersona:this.selNode.settings.userPersona,channelBackupPath:this.selNode.settings.channelBackupPath,selCurrencyUnit:this.selNode.settings.currencyUnit,currencyUnits:this.selNode.settings.currencyUnits,fiatConversion:this.selNode.settings.fiatConversion,lnImplementation:this.selNode.lnImplementation,swapServerUrl:this.selNode.settings.swapServerUrl,boltzServerUrl:this.selNode.settings.boltzServerUrl,enableOffers:this.enableOffers}}))}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(C.yh))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-experimental-settings"]],decls:13,vars:3,consts:[["fxLayout","column","fxFlex","100",3,"perfectScrollbar"],["fxFlex","100",1,"alert","alert-info","mt-1"],[1,"mr-1","alert-icon",3,"icon"],["fxLayout","column","fxLayoutAlign","start stretch",1,"page-sub-title-container","mt-1"],["form","ngForm"],["fxLayout","row"],[1,"page-title-img","mr-1",3,"icon"],[1,"page-title"],["class","flat-expansion-panel my-1",3,"expanded",4,"ngFor","ngForOf"],[1,"flat-expansion-panel","my-1",3,"expanded"],["fxFlex","100","fxLayoutAlign","space-between center"],[1,"font-bold-500"],["class","dot green",4,"ngIf"],["class","dot yellow",4,"ngIf"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch","class","page-sub-title-container",4,"ngIf"],[1,"dot","green"],[1,"dot","yellow"],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"page-sub-title-container"],["fxFlex","100",1,"alert","alert-info"],["href","http://bolt12.org","target","_blank"],[1,"mt-2"],["href","https://github.com/lightningnetwork/lightning-rfc/pull/798 ","target","blank"],[1,"my-2",3,"inset"],[1,"alert","alert-warn"],["autoFocus","","tabindex","1","color","primary","name","enableOfr",1,"my-1",3,"ngModel","ngModelChange","change"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t._UZ(2,"fa-icon",2),t.TgZ(3,"span"),t._uU(4,"Experimental features should be enabled with caution. Many such features may be implementation specific and not ratified for the BOLT spec. Enabling these may still result in a broken experience. Referencing relevant feature documentation is highly advised before enabling."),t.qZA(),t.qZA(),t.TgZ(5,"form",3,4),t.TgZ(7,"div",5),t._UZ(8,"fa-icon",6),t.TgZ(9,"span",7),t._uU(10,"Features"),t.qZA(),t.qZA(),t.TgZ(11,"mat-accordion"),t.YNc(12,f0,11,6,"mat-expansion-panel",8),t.qZA(),t.qZA(),t.qZA()),2&z&&(t.xp6(2),t.Q6J("icon",Oe.faInfoCircle),t.xp6(6),t.Q6J("icon",Oe.faCode),t.xp6(4),t.Q6J("ngForOf",Oe.features))},directives:[b.xw,b.yH,le.$V,J.BN,We._Y,We.JL,We.F,b.Wh,Gn.pp,te.sg,Gn.ib,Gn.yz,Gn.yK,te.O5,Be.d,Wi.Rr,Ve.h,We.JJ,We.On],styles:["h4[_ngcontent-%COMP%]{word-break:break-word}"]}),$})(),canActivate:[Oa.a1]},{path:"lnconfig",component:Qt,canActivate:[Oa.a1]}]},{path:"services",component:Ra,canActivate:[Oa.a1],children:[{path:"",pathMatch:"full",redirectTo:"loop"},{path:"loop",pathMatch:"full",redirectTo:"loop/loopout"},{path:"loop/:selTab",component:Wt},{path:"boltz",pathMatch:"full",redirectTo:"boltz/swapout"},{path:"boltz/:selTab",component:ii}]},{path:"help",component:qa},{path:"login",component:Ro},{path:"error",component:No},{path:"**",component:Po.w}]);var s1=m(8750),nl=m(8878),rl=m(4594),Fl=m(2181);function Ka($,Ze){if(1&$&&(t.TgZ(0,"p",2),t._UZ(1,"fa-icon",3),t.TgZ(2,"span"),t._uU(3),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.xp6(1),t.Q6J("icon",z.faCode),t.xp6(2),t.hij("API Version: ",null==z.information?null:z.information.api_version,"")}}function aa($,Ze){if(1&$&&(t.TgZ(0,"a",11),t._UZ(1,"fa-icon",3),t.TgZ(2,"span",12),t._uU(3,"Settings"),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.xp6(1),t.Q6J("icon",z.faUserCog)}}function m0($,Ze){if(1&$&&(t.TgZ(0,"a",13),t._UZ(1,"fa-icon",3),t.TgZ(2,"span",14),t._uU(3,"Help"),t.qZA(),t.qZA()),2&$){const z=t.oxw();t.xp6(1),t.Q6J("icon",z.faLifeRing)}}function sa($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"a",15),t.NdJ("click",function(){return t.CHM(z),t.oxw().onClick()}),t._UZ(1,"fa-icon",3),t.TgZ(2,"span"),t._uU(3,"Logout"),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.xp6(1),t.Q6J("icon",z.faEject)}}let Bo=(()=>{class ${constructor(z,Oe,_t,pi,On){this.logger=z,this.sessionService=Oe,this.store=_t,this.rtlEffects=pi,this.actions=On,this.faUserCog=x.gNZ,this.faCodeBranch=x.mh3,this.faCode=x.dT$,this.faCog=x.b7W,this.faLifeRing=x.uli,this.faEject=x.KOR,this.version="",this.information={},this.informationChain={},this.flgLoading=!0,this.showLogout=!1,this.unSubs=[new o.x,new o.x,new o.x,new o.x],this.version=Qi.q4}ngOnInit(){this.store.select(r.R4).pipe((0,y.R)(this.unSubs[0])).subscribe(z=>{if(this.information=z,this.flgLoading=!this.information.identity_pubkey,this.information.identity_pubkey){if(this.information.chains&&"string"==typeof this.information.chains[0])this.informationChain.chain=this.information.chains[0].toString(),this.informationChain.network=this.information.testnet?"Testnet":"Mainnet";else if("object"==typeof this.information.chains[0]&&this.information.chains[0].hasOwnProperty("chain")){const Oe=this.information.chains[0];this.informationChain.chain=Oe.chain,this.informationChain.network=Oe.network}}else this.informationChain.chain="",this.informationChain.network="";this.logger.info(z)}),this.sessionService.watchSession().pipe((0,y.R)(this.unSubs[1])).subscribe(z=>{this.showLogout=!!z.token,this.flgLoading=!!z.token}),this.actions.pipe((0,y.R)(this.unSubs[2]),(0,ne.h)(z=>z.type===j.pg.LOGOUT)).subscribe(()=>{this.showLogout=!1})}onClick(){this.store.dispatch((0,we.c1)({payload:{data:{type:j.n_.CONFIRM,alertTitle:"Logout",titleMessage:"Logout from this device?",noBtnText:"Cancel",yesBtnText:"Logout"}}})),this.rtlEffects.closeConfirm.pipe((0,y.R)(this.unSubs[3])).subscribe(z=>{z&&(this.showLogout=!1,this.store.dispatch((0,we.kS)()))})}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(Pe.m),t.Y36(C.yh),t.Y36(it.V),t.Y36(c.eX))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-top-menu"]],decls:14,vars:8,consts:[[1,"top-menu",3,"overlapTrigger"],["topMenu","matMenu"],["mat-menu-item",""],[1,"fa-icon-small","mr-1",3,"icon"],["mat-menu-item","",4,"ngIf"],["mat-menu-item","","routerLink","/settings",4,"ngIf"],["mat-menu-item","","routerLink","/help",4,"ngIf"],["mat-menu-item","",3,"click",4,"ngIf"],["mat-icon-button","",1,"top-toolbar-icon",3,"matMenuTriggerFor"],["src","assets/images/RTL-Horse-BY.svg","alt","RTL Logo",2,"width","3.2rem"],[2,"font-size","2rem","text-align","start"],["mat-menu-item","","routerLink","/settings"],["routerLink","/settings"],["mat-menu-item","","routerLink","/help"],["routerLink","/help"],["mat-menu-item","",3,"click"]],template:function(z,Oe){if(1&z&&(t.TgZ(0,"mat-menu",0,1),t.TgZ(2,"p",2),t._UZ(3,"fa-icon",3),t.TgZ(4,"span"),t._uU(5),t.qZA(),t.qZA(),t.YNc(6,Ka,4,2,"p",4),t.YNc(7,aa,4,1,"a",5),t.YNc(8,m0,4,1,"a",6),t.YNc(9,sa,4,1,"a",7),t.qZA(),t.TgZ(10,"button",8),t._UZ(11,"img",9),t.TgZ(12,"mat-icon",10),t._uU(13,"arrow_drop_down"),t.qZA(),t.qZA()),2&z){const _t=t.MAs(1);t.Q6J("overlapTrigger",!1),t.xp6(3),t.Q6J("icon",Oe.faCodeBranch),t.xp6(2),t.hij("Version: ",Oe.version,""),t.xp6(1),t.Q6J("ngIf",null==Oe.information?null:Oe.information.api_version),t.xp6(1),t.Q6J("ngIf",Oe.showLogout),t.xp6(1),t.Q6J("ngIf",Oe.showLogout),t.xp6(1),t.Q6J("ngIf",Oe.showLogout),t.xp6(1),t.Q6J("matMenuTriggerFor",_t)}},directives:[Fl.VK,Fl.OP,J.BN,te.O5,ue.lW,Fl.p6,Lr.Hw,I.yS,I.rH],styles:[".mat-menu-content,.mat-menu-content p.mat-menu-item{cursor:default}.mat-menu-content p.mat-menu-item fa-icon,.mat-menu-content p.mat-menu-item span,.mat-menu-content p.mat-menu-item div{cursor:default}.mat-menu-content p.mat-menu-item:hover{cursor:default!important}\n"],encapsulation:2}),$})();var Bs=m(2638),o1=m(8258),wa=m(149);const oo={LNDChildren:[{id:1,parentId:0,name:"Dashboard",iconType:"FA",icon:x.HLz,link:"/lnd/home",userPersona:j.ol.ALL},{id:2,parentId:0,name:"On-chain",iconType:"FA",icon:x.nNP,link:"/lnd/onchain",userPersona:j.ol.ALL},{id:3,parentId:0,name:"Lightning",iconType:"FA",icon:x.BDt,link:"/lnd/connections",userPersona:j.ol.ALL,children:[{id:31,parentId:3,name:"Peers/Channels",iconType:"FA",icon:x.FVb,link:"/lnd/connections",userPersona:j.ol.ALL},{id:32,parentId:3,name:"Transactions",iconType:"FA",icon:x.Ssp,link:"/lnd/transactions",userPersona:j.ol.ALL},{id:33,parentId:3,name:"Routing",iconType:"FA",icon:x.SuH,link:"/lnd/routing",userPersona:j.ol.ALL},{id:34,parentId:3,name:"Reports",iconType:"FA",icon:x.koM,link:"/lnd/reports",userPersona:j.ol.ALL},{id:35,parentId:3,name:"Graph Lookup",iconType:"FA",icon:x.wn1,link:"/lnd/graph",userPersona:j.ol.ALL},{id:36,parentId:3,name:"Sign/Verify",iconType:"FA",icon:x.hkK,link:"/lnd/messages",userPersona:j.ol.ALL},{id:37,parentId:3,name:"Backup",iconType:"FA",icon:x.q7m,link:"/lnd/channelbackup",userPersona:j.ol.ALL},{id:38,parentId:3,name:"Network",iconType:"FA",icon:x.o4t,link:"/lnd/network",userPersona:j.ol.OPERATOR},{id:39,parentId:3,name:"Node/Network",iconType:"FA",icon:x.xf3,link:"/lnd/network",userPersona:j.ol.MERCHANT}]},{id:4,parentId:0,name:"Services",iconType:"FA",icon:x.Krp,link:"/services/loop",userPersona:j.ol.ALL,children:[{id:41,parentId:4,name:"Loop",iconType:"FA",icon:x.vqe,link:"/services/loop",userPersona:j.ol.ALL},{id:42,parentId:4,name:"Boltz",iconType:"SVG",icon:"boltzIconBlock",link:"/services/boltz",userPersona:j.ol.ALL}]},{id:5,parentId:0,name:"Node Config",iconType:"FA",icon:x.CgH,link:"/config",userPersona:j.ol.ALL},{id:6,parentId:0,name:"Help",iconType:"FA",icon:x.Psp,link:"/help",userPersona:j.ol.ALL}],CLChildren:[{id:1,parentId:0,name:"Dashboard",iconType:"FA",icon:x.HLz,link:"/cl/home",userPersona:j.ol.ALL},{id:2,parentId:0,name:"On-chain",iconType:"FA",icon:x.nNP,link:"/cl/onchain",userPersona:j.ol.ALL},{id:3,parentId:0,name:"Lightning",iconType:"FA",icon:x.BDt,link:"/cl/connections",userPersona:j.ol.ALL,children:[{id:31,parentId:3,name:"Peers/Channels",iconType:"FA",icon:x.FVb,link:"/cl/connections",userPersona:j.ol.ALL},{id:32,parentId:3,name:"Transactions",iconType:"FA",icon:x.Ssp,link:"/cl/transactions",userPersona:j.ol.ALL},{id:33,parentId:3,name:"Routing",iconType:"FA",icon:x.SuH,link:"/cl/routing",userPersona:j.ol.ALL},{id:34,parentId:3,name:"Reports",iconType:"FA",icon:x.koM,link:"/cl/reports",userPersona:j.ol.ALL},{id:35,parentId:3,name:"Graph Lookup",iconType:"FA",icon:x.wn1,link:"/cl/graph",userPersona:j.ol.ALL},{id:36,parentId:3,name:"Sign/Verify",iconType:"FA",icon:x.hkK,link:"/cl/messages",userPersona:j.ol.ALL},{id:37,parentId:3,name:"Fee Rates",iconType:"FA",icon:x.USL,link:"/cl/rates",userPersona:j.ol.OPERATOR},{id:38,parentId:3,name:"Node/Fee Rates",iconType:"FA",icon:x.xf3,link:"/cl/rates",userPersona:j.ol.MERCHANT}]},{id:4,parentId:0,name:"Node Config",iconType:"FA",icon:x.CgH,link:"/config",userPersona:j.ol.ALL},{id:5,parentId:0,name:"Help",iconType:"FA",icon:x.Psp,link:"/help",userPersona:j.ol.ALL}],ECLChildren:[{id:1,parentId:0,name:"Dashboard",iconType:"FA",icon:x.HLz,link:"/ecl/home",userPersona:j.ol.ALL},{id:2,parentId:0,name:"On-chain",iconType:"FA",icon:x.nNP,link:"/ecl/onchain",userPersona:j.ol.ALL},{id:3,parentId:0,name:"Lightning",iconType:"FA",icon:x.BDt,link:"/ecl/connections",userPersona:j.ol.ALL,children:[{id:31,parentId:3,name:"Peers/Channels",iconType:"FA",icon:x.FVb,link:"/ecl/connections",userPersona:j.ol.ALL},{id:32,parentId:3,name:"Transactions",iconType:"FA",icon:x.Ssp,link:"/ecl/transactions",userPersona:j.ol.ALL},{id:33,parentId:3,name:"Routing",iconType:"FA",icon:x.SuH,link:"/ecl/routing",userPersona:j.ol.ALL},{id:34,parentId:3,name:"Reports",iconType:"FA",icon:x.koM,link:"/ecl/reports",userPersona:j.ol.ALL},{id:35,parentId:3,name:"Graph Lookup",iconType:"FA",icon:x.wn1,link:"/ecl/graph",userPersona:j.ol.ALL}]},{id:4,parentId:0,name:"Node Config",iconType:"FA",icon:x.CgH,link:"/config",userPersona:j.ol.ALL},{id:5,parentId:0,name:"Help",iconType:"FA",icon:x.Psp,link:"/help",userPersona:j.ol.ALL}]};var al=m(7238);function qs($,Ze){if(1&$&&(t.TgZ(0,"mat-option",11),t._uU(1),t.qZA()),2&$){const z=Ze.$implicit;t.Q6J("value",z.index),t.xp6(1),t.AsE(" ",z.lnNode," (",z.lnImplementation,") ")}}function l1($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"mat-select",9),t.NdJ("selectionChange",function(_t){return t.CHM(z),t.oxw().onNodeSelectionChange(_t.value)}),t.YNc(1,qs,2,3,"mat-option",10),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("value",z.selConfigNodeIndex),t.xp6(1),t.Q6J("ngForOf",z.appConfig.nodes)}}function g0($,Ze){if(1&$&&(t.TgZ(0,"span",21),t.GkF(1,22),t.qZA()),2&$){const z=t.oxw().$implicit;t.oxw(2);const Oe=t.MAs(11);t.xp6(1),t.Q6J("ngTemplateOutlet","boltzIconBlock"===z.icon?Oe:null)}}function _0($,Ze){if(1&$&&t._UZ(0,"fa-icon",23),2&$){const z=t.oxw().$implicit;t.Q6J("icon",z.icon)}}function c1($,Ze){if(1&$&&(t.TgZ(0,"mat-icon",24),t._uU(1),t.qZA()),2&$){const z=t.oxw().$implicit;t.xp6(1),t.Oqu(z.icon)}}function dh($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"mat-tree-node",15),t.TgZ(1,"div",16),t.NdJ("click",function(){const pi=t.CHM(z).$implicit;return t.oxw(2).onChildNavClicked(pi)}),t.TgZ(2,"div",17),t.YNc(3,g0,2,1,"span",18),t.YNc(4,_0,1,1,"fa-icon",19),t.YNc(5,c1,2,1,"mat-icon",20),t.TgZ(6,"span"),t._uU(7),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&$){const z=Ze.$implicit;t.s9C("routerLink",z.link),t.xp6(3),t.Q6J("ngIf","SVG"===z.iconType),t.xp6(1),t.Q6J("ngIf","FA"===z.iconType),t.xp6(1),t.Q6J("ngIf",!z.iconType),t.xp6(2),t.Oqu(z.name)}}function v0($,Ze){if(1&$&&(t.TgZ(0,"span",33),t.GkF(1,22),t.qZA()),2&$){const z=t.oxw().$implicit;t.xp6(1),t.Q6J("ngTemplateOutlet",z.icon)}}function ms($,Ze){if(1&$&&t._UZ(0,"fa-icon",23),2&$){const z=t.oxw().$implicit;t.Q6J("icon",z.icon)}}function h1($,Ze){if(1&$&&(t.TgZ(0,"mat-icon",24),t._uU(1),t.qZA()),2&$){const z=t.oxw().$implicit;t.xp6(1),t.Oqu(z.icon)}}function sl($,Ze){if(1&$&&(t.TgZ(0,"mat-nested-tree-node",25),t.TgZ(1,"div",26),t.TgZ(2,"div",27),t.YNc(3,v0,2,1,"span",28),t.YNc(4,ms,1,1,"fa-icon",19),t.YNc(5,h1,2,1,"mat-icon",20),t.TgZ(6,"span"),t._uU(7),t.qZA(),t.qZA(),t.TgZ(8,"button",29),t.TgZ(9,"mat-icon",30),t._uU(10),t.qZA(),t.qZA(),t.qZA(),t.TgZ(11,"div",31),t.GkF(12,32),t.qZA(),t.qZA()),2&$){const z=Ze.$implicit,Oe=t.oxw(2);t.xp6(3),t.Q6J("ngIf","SVG"===z.iconType),t.xp6(1),t.Q6J("ngIf","FA"===z.iconType),t.xp6(1),t.Q6J("ngIf",!z.iconType),t.xp6(2),t.Oqu(z.name),t.xp6(1),t.uIk("aria-label","toggle "+z.name),t.xp6(2),t.Oqu(Oe.treeControlNested.isExpanded(z)?"arrow_drop_up":"arrow_drop_down"),t.xp6(1),t.ekj("tree-children-invisible",!Oe.treeControlNested.isExpanded(z))}}function d1($,Ze){if(1&$&&(t.TgZ(0,"mat-tree",5,12),t.YNc(2,dh,8,5,"mat-tree-node",13),t.YNc(3,sl,13,8,"mat-nested-tree-node",14),t.qZA()),2&$){const z=t.oxw();t.Q6J("dataSource",z.navMenus)("treeControl",z.treeControlNested),t.xp6(3),t.Q6J("matTreeNodeDefWhen",z.hasChild)}}function ol($,Ze){if(1&$&&(t.TgZ(0,"span",21),t.GkF(1,22),t.qZA()),2&$){const z=t.oxw().$implicit;t.xp6(1),t.Q6J("ngTemplateOutlet",z.icon)}}function mc($,Ze){if(1&$&&t._UZ(0,"fa-icon",36),2&$){const z=t.oxw().$implicit;t.s9C("matTooltip",z.name),t.Q6J("icon",z.icon)}}function y0($,Ze){if(1&$&&(t.TgZ(0,"mat-icon",37),t._uU(1),t.qZA()),2&$){const z=t.oxw().$implicit;t.s9C("matTooltip",z.name),t.xp6(1),t.Oqu(z.icon)}}function gc($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"mat-tree-node",16),t.NdJ("click",function(){const pi=t.CHM(z).$implicit;return t.oxw().onShowData(pi)}),t.YNc(1,ol,2,1,"span",18),t.YNc(2,mc,1,2,"fa-icon",34),t.YNc(3,y0,2,2,"mat-icon",35),t.TgZ(4,"span"),t._uU(5),t.qZA(),t.qZA()}if(2&$){const z=Ze.$implicit;t.xp6(1),t.Q6J("ngIf","SVG"===z.iconType),t.xp6(1),t.Q6J("ngIf","FA"===z.iconType),t.xp6(1),t.Q6J("ngIf",!z.iconType),t.xp6(2),t.Oqu(z.name)}}function _c($,Ze){if(1&$&&(t.TgZ(0,"span",33),t.GkF(1,22),t.qZA()),2&$){const z=t.oxw().$implicit;t.xp6(1),t.Q6J("ngTemplateOutlet",z.icon)}}function vc($,Ze){if(1&$&&t._UZ(0,"fa-icon",36),2&$){const z=t.oxw().$implicit;t.s9C("matTooltip",z.name),t.Q6J("icon",z.icon)}}function u1($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"mat-tree-node",16),t.NdJ("click",function(){const pi=t.CHM(z).$implicit;return t.oxw(2).onClick(pi)}),t.YNc(1,_c,2,1,"span",28),t.YNc(2,vc,1,2,"fa-icon",34),t.TgZ(3,"span"),t._uU(4),t.qZA(),t.qZA()}if(2&$){const z=Ze.$implicit;t.xp6(1),t.Q6J("ngIf","SVG"===z.iconType),t.xp6(1),t.Q6J("ngIf","FA"===z.iconType),t.xp6(2),t.Oqu(z.name)}}function Bl($,Ze){if(1&$&&(t.TgZ(0,"mat-tree",5),t.YNc(1,u1,5,3,"mat-tree-node",6),t.qZA()),2&$){const z=t.oxw();t.Q6J("dataSource",z.navMenusLogout)("treeControl",z.treeControlLogout)}}function Ho($,Ze){1&$&&(t.O4$(),t.TgZ(0,"svg",38),t.TgZ(1,"g",39),t.TgZ(2,"g",40),t._UZ(3,"circle",41),t._UZ(4,"path",42),t._UZ(5,"path",43),t.qZA(),t.qZA(),t.qZA())}let lo=(()=>{class ${constructor(z,Oe,_t,pi,On,hr){this.logger=z,this.commonService=Oe,this.sessionService=_t,this.store=pi,this.actions=On,this.rtlEffects=hr,this.ChildNavClicked=new t.vpe,this.faEject=x.KOR,this.faEye=x.Mdf,this.version="",this.information={},this.informationChain={},this.flgLoading=!0,this.logoutNode=[{id:200,parentId:0,name:"Logout",iconType:"FA",icon:x.KOR}],this.showDataNodes=[{id:1e3,parentId:0,name:"Public Key",iconType:"FA",icon:x.Mdf}],this.showLogout=!1,this.numPendingChannels=0,this.smallScreen=!1,this.childRootRoute="",this.userPersonaEnum=j.ol,this.unSubs=[new o.x,new o.x,new o.x,new o.x,new o.x,new o.x],this.treeControlNested=new o1.VY(Un=>Un.children),this.treeControlLogout=new o1.VY(Un=>Un.children),this.treeControlShowData=new o1.VY(Un=>Un.children),this.navMenus=new wa.WX,this.navMenusLogout=new wa.WX,this.navMenusShowData=new wa.WX,this.hasChild=(Un,ur)=>!!ur.children&&ur.children.length>0,this.version=Qi.q4,200===oo.LNDChildren[oo.LNDChildren.length-1].id&&oo.LNDChildren.pop(),this.navMenus.data=oo.LNDChildren,this.navMenusLogout.data=this.logoutNode,this.navMenusShowData.data=this.showDataNodes}ngOnInit(){const z=this.sessionService.getItem("token");this.showLogout=!!z,this.flgLoading=!!z,this.store.select(r.Yj).pipe((0,y.R)(this.unSubs[0])).subscribe(Oe=>{this.appConfig=Oe}),this.store.select(r.gW).pipe((0,y.R)(this.unSubs[1])).subscribe(Oe=>{if(this.information=Oe.nodeDate,this.information.identity_pubkey){if(this.information.chains&&"string"==typeof this.information.chains[0])this.informationChain.chain=this.information.chains[0].toString(),this.informationChain.network=this.information.testnet?"Testnet":"Mainnet";else if("object"==typeof this.information.chains[0]&&this.information.chains[0].hasOwnProperty("chain")){const _t=this.information.chains[0];this.informationChain.chain=_t.chain,this.informationChain.network=_t.network}}else this.informationChain.chain="",this.informationChain.network="";this.flgLoading=!this.information.identity_pubkey,window.innerWidth<=414&&(this.smallScreen=!0),this.selNode=Oe.selNode,this.settings=this.selNode.settings,this.selConfigNodeIndex=+Oe.selNode.index,this.selNode&&this.selNode.lnImplementation&&this.filterSideMenuNodes(),this.logger.info(Oe)}),this.sessionService.watchSession().pipe((0,y.R)(this.unSubs[2])).subscribe(Oe=>{this.showLogout=!!Oe.token,this.flgLoading=!!Oe.token}),this.actions.pipe((0,y.R)(this.unSubs[3]),(0,ne.h)(Oe=>Oe.type===j.pg.LOGOUT)).subscribe(Oe=>{this.showLogout=!1})}onClick(z){"Logout"===z.name&&(this.store.dispatch((0,we.c1)({payload:{data:{type:j.n_.CONFIRM,alertTitle:"Logout",titleMessage:"Logout from this device?",noBtnText:"Cancel",yesBtnText:"Logout"}}})),this.rtlEffects.closeConfirm.pipe((0,y.R)(this.unSubs[4])).subscribe(Oe=>{Oe&&(this.showLogout=!1,this.store.dispatch((0,we.kS)()))})),this.ChildNavClicked.emit(z)}onChildNavClicked(z){this.ChildNavClicked.emit(z)}filterSideMenuNodes(){switch(this.selNode.lnImplementation.toUpperCase()){case"CLT":this.loadCLTMenu();break;case"ECL":this.loadECLMenu();break;default:this.loadLNDMenu()}}loadLNDMenu(){let z=[];z=JSON.parse(JSON.stringify(oo.LNDChildren)),this.navMenus.data=z.filter(Oe=>Oe.children&&Oe.children.length?(Oe.children=Oe.children.filter(_t=>(_t.userPersona===j.ol.ALL||_t.userPersona===this.settings.userPersona)&&"/services/loop"!==_t.link&&"/services/boltz"!==_t.link||"/services/loop"===_t.link&&this.settings.swapServerUrl&&""!==this.settings.swapServerUrl.trim()||"/services/boltz"===_t.link&&this.settings.boltzServerUrl&&""!==this.settings.boltzServerUrl.trim()),Oe.children.length>0):Oe.userPersona===j.ol.ALL||Oe.userPersona===this.settings.userPersona)}loadCLTMenu(){let z=[];z=JSON.parse(JSON.stringify(oo.CLChildren)),this.navMenus.data=z.filter(Oe=>(Oe.children&&Oe.children.length&&(Oe.children=Oe.children.filter(_t=>(_t.userPersona===j.ol.ALL||_t.userPersona===this.settings.userPersona)&&"/cl/messages"!==_t.link||"/cl/messages"===_t.link&&this.information.api_version&&this.commonService.isVersionCompatible(this.information.api_version,"0.2.2"))),Oe.userPersona===j.ol.ALL||Oe.userPersona===this.settings.userPersona))}loadECLMenu(){this.navMenus.data=JSON.parse(JSON.stringify(oo.ECLChildren))}onShowData(z){this.store.dispatch((0,we.tj)()),this.ChildNavClicked.emit("showData")}onNodeSelectionChange(z){const Oe=this.selConfigNodeIndex;this.selConfigNodeIndex=z;const _t=this.appConfig.nodes.find(pi=>+pi.index===z);this.store.dispatch((0,we.fk)({payload:{uiMessage:j.m6.UPDATE_SELECTED_NODE,prevLnNodeIndex:+Oe,currentLnNode:_t,isInitialSetup:!1}})),this.ChildNavClicked.emit("selectNode")}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(null),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(Ci.v),t.Y36(Pe.m),t.Y36(C.yh),t.Y36(c.eX),t.Y36(it.V))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-side-navigation"]],viewQuery:function(z,Oe){if(1&z&&t.Gf(wa.gi,5),2&z){let _t;t.iGM(_t=t.CRH())&&(Oe.tree=_t.first)}},outputs:{ChildNavClicked:"ChildNavClicked"},decls:12,vars:5,consts:[["fxLayout","column","fxFlex","100","fxLayoutAlign","space-between start",3,"perfectScrollbar"],["fxLayout","column","fxFlex","90","fxLayoutAlign","start stretch",1,"w-100"],["class","m-2 multi-node-select",3,"value","selectionChange",4,"ngIf"],[1,"w-100"],[3,"dataSource","treeControl",4,"ngIf"],[3,"dataSource","treeControl"],[3,"click",4,"matTreeNodeDef"],["fxLayout","column","fxLayoutAlign","end stretch",1,"w-100"],["boltzIconBlock",""],[1,"m-2","multi-node-select",3,"value","selectionChange"],["tabindex","1",3,"value",4,"ngFor","ngForOf"],["tabindex","1",3,"value"],["tree",""],["matTreeNodeToggle","","routerLinkActive","active-link",3,"routerLink",4,"matTreeNodeDef"],["fxLayout","column","matTreeNodeToggle","",4,"matTreeNodeDef","matTreeNodeDefWhen"],["matTreeNodeToggle","","routerLinkActive","active-link",3,"routerLink"],[3,"click"],["fxLayout","row","fxFlex","100","fxLayoutAlign","start center"],["class","fa-icon-small mr-2",4,"ngIf"],["class","fa-icon-small mr-2",3,"icon",4,"ngIf"],["class","mat-icon-36",4,"ngIf"],[1,"fa-icon-small","mr-2"],[3,"ngTemplateOutlet"],[1,"fa-icon-small","mr-2",3,"icon"],[1,"mat-icon-36"],["fxLayout","column","matTreeNodeToggle",""],["fxLayout","row","fxLayoutAlign","start center",1,"mat-nested-tree-node-parent"],["fxFlex","89","fxLayoutAlign","start center"],["class","mr-2",4,"ngIf"],["fxFlex","11","mat-icon-button","","fxLayoutAlign","end center"],[1,"mat-icon-rtl-mirror"],[1,"mat-nested-tree-node-child"],["matTreeNodeOutlet",""],[1,"mr-2"],["class","fa-icon-small mr-2","matTooltipPosition","right",3,"icon","matTooltip",4,"ngIf"],["class","mat-icon-36","matTooltipPosition","right",3,"matTooltip",4,"ngIf"],["matTooltipPosition","right",1,"fa-icon-small","mr-2",3,"icon","matTooltip"],["matTooltipPosition","right",1,"mat-icon-36",3,"matTooltip"],["viewBox","0 0 78 78","version","1.1","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink"],["id","Logo","stroke","none","stroke-width","1","fill","none","fill-rule","evenodd"],["id","Group"],["id","Oval","cx","39","cy","39","r","37.5",1,"boltz-icon"],["d","M36.4583326,43.7755404 L40.53965,35.2316544 L39.4324865,35.2316544 L46.0754873,17.6071752 C46.292579,17.0204094 46.3287609,16.5159331 46.1840331,16.0937464 C46.0393053,15.671561 45.7860319,15.3674444 45.4242131,15.1813966 C45.0623942,14.9953487 44.6535376,14.9524146 44.1976433,15.0525945 C43.7417511,15.1527743 43.3256596,15.4461573 42.9493689,15.9327433 L22.6078557,40.7701025 C22.2026186,41.2710003 22,41.7575877 22,42.2298646 C22,42.6735173 22.1592003,43.0420366 22.477601,43.3354226 C22.7960017,43.6288058 23.1940025,43.7755404 23.6716036,43.7755404 L36.4583326,43.7755404 Z","id","Path",1,"boltz-icon-fill"],["d","M44.4883879,63.7755404 L48.8604707,55.165009 L47.6744296,55.165009 L54.7906978,37.4030526 C55.0232558,36.8117097 55.0620155,36.3032983 54.9069768,35.8778185 C54.7519381,35.4523399 54.4806208,35.1458511 54.0930248,34.958352 C53.7054289,34.7708528 53.2674441,34.7275839 52.7790706,34.8285452 C52.2906992,34.9295065 51.8449641,35.2251779 51.4418653,35.7155595 L29.6511611,60.746659 C29.2170537,61.251464 29,61.7418469 29,62.2178078 C29,62.6649211 29.1705423,63.036315 29.5116268,63.3319895 C29.8527113,63.6276613 30.2790669,63.7755404 30.7906936,63.7755404 L44.4883879,63.7755404 Z","id","Path-Copy","transform","translate(42.000000, 49.275540) rotate(-180.000000) translate(-42.000000, -49.275540) ",1,"boltz-icon-fill"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.YNc(2,l1,2,2,"mat-select",2),t._UZ(3,"mat-divider",3),t.YNc(4,d1,4,3,"mat-tree",4),t._UZ(5,"mat-divider",3),t.TgZ(6,"mat-tree",5),t.YNc(7,gc,6,4,"mat-tree-node",6),t.qZA(),t.qZA(),t.TgZ(8,"div",7),t.YNc(9,Bl,2,2,"mat-tree",4),t.qZA(),t.qZA(),t.YNc(10,Ho,6,0,"ng-template",null,8,t.W1O)),2&z&&(t.xp6(2),t.Q6J("ngIf",Oe.appConfig.nodes.length>1),t.xp6(2),t.Q6J("ngIf",null==Oe.settings?null:Oe.settings.lnServerUrl),t.xp6(2),t.Q6J("dataSource",Oe.navMenusShowData)("treeControl",Oe.treeControlShowData),t.xp6(3),t.Q6J("ngIf",Oe.showLogout))},directives:[b.xw,b.yH,b.Wh,le.$V,te.O5,Be.d,wa.gi,wa.fQ,Ne.gD,te.sg,Te.ey,wa.uo,wa.eu,I.Od,I.rH,te.tP,J.BN,Lr.Hw,wa.GZ,ue.lW,wa.Ar,al.gM],styles:[".tree-children-invisible[_ngcontent-%COMP%]{display:none}"]}),$})();var Ha=m(773);const Ms=["sideNavigation"],zs=["sideNavContent"];function yc($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",13),t.NdJ("click",function(){return t.CHM(z),t.oxw().sideNavToggle()}),t.TgZ(1,"mat-icon"),t._uU(2,"menu"),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("matTooltip",z.flgSideNavOpened?"Hide Navigation Menu":"Show Navigation Menu")("matTooltipDisabled",z.smallScreen)}}function f1($,Ze){1&$&&(t.O4$(),t._UZ(0,"path",18))}function bc($,Ze){1&$&&(t.O4$(),t._UZ(0,"path",19))}function Hl($,Ze){if(1&$){const z=t.EpF();t.TgZ(0,"button",14),t.NdJ("click",function(){t.CHM(z);const _t=t.oxw();return _t.flgSidenavPinned=!_t.flgSidenavPinned}),t.O4$(),t.TgZ(1,"svg",15),t.YNc(2,f1,1,0,"path",16),t.YNc(3,bc,1,0,"path",17),t.qZA(),t.qZA()}if(2&$){const z=t.oxw();t.Q6J("matTooltip",z.flgSidenavPinned?"Unpin Navigation Menu":"Pin Navigation Menu"),t.xp6(2),t.Q6J("ngIf",!z.flgSidenavPinned),t.xp6(1),t.Q6J("ngIf",z.flgSidenavPinned)}}function xc($,Ze){if(1&$&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&$){const z=t.oxw();t.xp6(1),t.Oqu(z.information.alias?"RTL - "+z.information.alias:"RTL")}}function $r($,Ze){if(1&$&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&$){const z=t.oxw();t.xp6(1),t.Oqu(z.information.alias?"Ride The Lightning - "+z.information.alias:"Ride The Lightning")}}function ll($,Ze){1&$&&(t.TgZ(0,"div",20),t._UZ(1,"mat-spinner",21),t.TgZ(2,"h4"),t._uU(3,"Loading RTL..."),t.qZA(),t.qZA())}const b0=function($,Ze){return[$,Ze]};let Ia=(()=>{class ${constructor(z,Oe,_t,pi,On,hr,Un,ur,ka){this.logger=z,this.commonService=Oe,this.store=_t,this.actions=pi,this.userIdle=On,this.router=hr,this.sessionService=Un,this.breakpointObserver=ur,this.renderer=ka,this.information={},this.flgLoading=[!0],this.flgSideNavOpened=!0,this.flgCopied=!1,this.accessKey="",this.xSmallScreen=!1,this.smallScreen=!1,this.flgSidenavPinned=!0,this.flgLoggedIn=!1,this.unSubs=[new o.x,new o.x,new o.x,new o.x,new o.x,new o.x,new o.x,new o.x]}ngOnInit(){this.router.events.subscribe(z=>{z instanceof I.m2&&document.getElementsByTagName("mat-sidenav-content")[0].scrollTo(0,0)}),this.breakpointObserver.observe([s.u3.XSmall,s.u3.TabletPortrait,s.u3.Small,s.u3.Medium,s.u3.Large,s.u3.XLarge]).pipe((0,y.R)(this.unSubs[0])).subscribe(z=>{z.breakpoints[s.u3.XSmall]?(this.commonService.setScreenSize(j.cu.XS),this.smallScreen=!0):z.breakpoints[s.u3.TabletPortrait]?(this.commonService.setScreenSize(j.cu.SM),this.smallScreen=!0):z.breakpoints[s.u3.Small]||z.breakpoints[s.u3.Medium]?(this.commonService.setScreenSize(j.cu.MD),this.smallScreen=!1):z.breakpoints[s.u3.Large]?(this.commonService.setScreenSize(j.cu.LG),this.smallScreen=!1):(this.commonService.setScreenSize(j.cu.XL),this.smallScreen=!1)}),this.store.dispatch((0,we.ey)()),this.accessKey=this.readAccessKey(),this.store.select(r.dT).pipe((0,y.R)(this.unSubs[1])).subscribe(z=>{this.settings=z.settings,this.sessionService.getItem("token")?(this.flgLoggedIn=!0,this.userIdle.startWatching()):(this.flgLoggedIn=!1,this.flgLoading[0]=!1)}),this.store.select(r.Yj).pipe((0,y.R)(this.unSubs[2])).subscribe(z=>{this.appConfig=z}),this.store.select(r.R4).pipe((0,y.R)(this.unSubs[3])).subscribe(z=>{this.information=z,this.flgLoading[0]=!this.information.identity_pubkey,this.logger.info(this.information)}),"true"===this.sessionService.getItem("defaultPassword")&&(this.flgSideNavOpened=!1),this.actions.pipe((0,y.R)(this.unSubs[4]),(0,ne.h)(z=>z.type===j.pg.SET_RTL_CONFIG||z.type===j.pg.LOGOUT)).subscribe(z=>{z.type===j.pg.SET_RTL_CONFIG&&(this.sessionService.getItem("token")||(+z.payload.sso.rtlSSO?!this.accessKey||this.accessKey.trim().length<32?this.router.navigate(["./error"],{state:{errorCode:"406",errorMessage:"Access key too short. It should be at least 32 characters long."}}):this.store.dispatch((0,we.x4)({payload:{password:he(this.accessKey).toString(),defaultPassword:!1}})):this.router.navigate(["./login"]))),z.type===j.pg.LOGOUT&&(this.flgLoggedIn=!1,this.userIdle.stopWatching(),this.userIdle.stopTimer())}),this.userIdle.onTimerStart().pipe((0,y.R)(this.unSubs[5])).subscribe(z=>{this.logger.info("Counting Down: "+(11-z))}),this.userIdle.onTimeout().pipe((0,y.R)(this.unSubs[6])).subscribe(()=>{this.logger.info("Time Out!"),this.sessionService.getItem("token")&&(this.flgLoggedIn=!1,this.logger.warn("Time limit exceeded for session inactivity."),this.store.dispatch((0,we.ts)()),this.store.dispatch((0,we.qR)({payload:{data:{type:j.n_.WARNING,alertTitle:"Logging out",titleMessage:"Time limit exceeded for session inactivity."}}})),this.store.dispatch((0,we.kS)()))}),"true"===this.sessionService.getItem("defaultPassword")&&(this.flgSideNavOpened=!1)}readAccessKey(){const z=window.location.href;return z.includes("access-key=")?z.substring(z.lastIndexOf("access-key=")+11).trim():null}ngAfterViewInit(){this.smallScreen?(this.sideNavigation.close(),this.commonService.setContainerSize(this.sideNavContent.elementRef.nativeElement.clientWidth,this.sideNavContent.elementRef.nativeElement.clientHeight)):setTimeout(()=>{this.flgLoggedIn&&this.renderer.setStyle(this.sideNavContent.elementRef.nativeElement,"marginLeft","22rem"),this.commonService.setContainerSize(this.sideNavContent.elementRef.nativeElement.clientWidth,this.sideNavContent.elementRef.nativeElement.clientHeight)},100)}sideNavToggle(){this.flgSideNavOpened=!this.flgSideNavOpened,this.sideNavigation.toggle()}onNavigationClicked(z){this.smallScreen&&this.sideNavigation.close()}copiedText(z){this.flgCopied=!0,setTimeout(()=>{this.flgCopied=!1},5e3),this.logger.info("Copied Text: "+z)}ngOnDestroy(){this.unSubs.forEach(z=>{z.next(),z.complete()})}}return $.\u0275fac=function(z){return new(z||$)(t.Y36(Ae.mQ),t.Y36(Ci.v),t.Y36(C.yh),t.Y36(c.eX),t.Y36(_),t.Y36(I.F0),t.Y36(Pe.m),t.Y36(s.Yg),t.Y36(t.Qsj))},$.\u0275cmp=t.Xpm({type:$,selectors:[["rtl-app"]],viewQuery:function(z,Oe){if(1&z&&(t.Gf(Ms,5),t.Gf(zs,5)),2&z){let _t;t.iGM(_t=t.CRH())&&(Oe.sideNavigation=_t.first),t.iGM(_t=t.CRH())&&(Oe.sideNavContent=_t.first)}},decls:23,vars:15,consts:[["fxLayout","column","id","rtl-container",1,"rtl-container","medium",3,"ngClass"],["fxLayout","row","fxLayoutAlign","space-between center",1,"padding-gap-x","bg-primary","rtl-top-toolbar"],["class","top-toolbar-icon mr-1","mat-icon-button","","matTooltipPosition","right",3,"matTooltip","matTooltipDisabled","click",4,"ngIf"],["mat-icon-button","","matTooltipPosition","right",3,"matTooltip","click",4,"ngIf"],[4,"ngIf"],[1,"sidenav","mat-elevation-z6",3,"perfectScrollbar","opened","mode"],["sideNavigation",""],["fxFlex","100",3,"ChildNavClicked"],[3,"perfectScrollbar"],["sideNavContent",""],["fxLayout","column","fxFlex","100","fxLayoutAlign","start stretch",1,"inner-sidenav-content"],["outlet","outlet"],["class","rtl-spinner",4,"ngIf"],["mat-icon-button","","matTooltipPosition","right",1,"top-toolbar-icon","mr-1",3,"matTooltip","matTooltipDisabled","click"],["mat-icon-button","","matTooltipPosition","right",3,"matTooltip","click"],["viewBox","0 0 32 32",1,"top-toolbar-icon","icon-pinned"],["fill","currentColor","d","M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z",4,"ngIf"],["fill","currentColor","d","M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z",4,"ngIf"],["fill","currentColor","d","M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z"],["fill","currentColor","d","M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z"],[1,"rtl-spinner"],["color","accent"]],template:function(z,Oe){1&z&&(t.TgZ(0,"div",0),t.ALo(1,"lowercase"),t.ALo(2,"lowercase"),t.TgZ(3,"mat-toolbar",1),t.TgZ(4,"div"),t.YNc(5,yc,3,2,"button",2),t.YNc(6,Hl,4,3,"button",3),t.qZA(),t.TgZ(7,"div"),t.YNc(8,xc,2,1,"span",4),t.YNc(9,$r,2,1,"span",4),t.qZA(),t.TgZ(10,"div"),t._UZ(11,"rtl-top-menu"),t.qZA(),t.qZA(),t.TgZ(12,"mat-sidenav-container"),t.TgZ(13,"mat-sidenav",5,6),t.TgZ(15,"rtl-side-navigation",7),t.NdJ("ChildNavClicked",function(pi){return Oe.onNavigationClicked(pi)}),t.qZA(),t.qZA(),t.TgZ(16,"mat-sidenav-content",8,9),t.TgZ(18,"div",10),t._UZ(19,"router-outlet",null,11),t.qZA(),t.qZA(),t._uU(21,"> "),t.qZA(),t.YNc(22,ll,4,0,"div",12),t.qZA()),2&z&&(t.Q6J("ngClass",t.WLB(12,b0,t.lcZ(1,8,Oe.settings.themeColor),t.lcZ(2,10,Oe.settings.themeMode))),t.xp6(5),t.Q6J("ngIf",Oe.flgLoggedIn),t.xp6(1),t.Q6J("ngIf",!Oe.smallScreen&&Oe.flgLoggedIn),t.xp6(2),t.Q6J("ngIf",Oe.smallScreen),t.xp6(1),t.Q6J("ngIf",!Oe.smallScreen),t.xp6(4),t.Q6J("opened",Oe.flgSideNavOpened&&Oe.flgLoggedIn)("mode",Oe.flgSidenavPinned&&!Oe.smallScreen?"side":"over"),t.xp6(9),t.Q6J("ngIf",!Oe.settings.themeColor))},directives:[b.xw,te.mk,An.oO,rl.Ye,b.Wh,te.O5,Bo,Bs.TM,Bs.JX,le.$V,lo,b.yH,Bs.Rh,I.lC,ue.lW,al.gM,Lr.Hw,Ha.$g],pipes:[te.i8],styles:[".inline-spinner[_ngcontent-%COMP%]{display:inline-flex!important;top:0!important}"],data:{animation:[nl.g]}}),$})(),Cc=(()=>{class ${constructor(z){this.sessionService=z}intercept(z,Oe){if(this.sessionService.getItem("token")){const _t=z.clone({headers:z.headers.set("Authorization","Bearer "+this.sessionService.getItem("token")),withCredentials:!0});return Oe.handle(_t)}return Oe.handle(z)}}return $.\u0275fac=function(z){return new(z||$)(t.LFG(Pe.m))},$.\u0275prov=t.Yz7({token:$,factory:$.\u0275fac}),$})();var cl=m(8104),p1=m(7998),zo=m(711),m1=m(3504),uh=m(3289);const Mc={userPersona:"OPERATOR",themeMode:"DAY",themeColor:"PURPLE",channelBackupPath:"",selCurrencyUnit:"USD",fiatConversion:!1,currencyUnits:["Sats","BTC","USD"],bitcoindConfigPath:"",enableOffers:!1},bo={configPath:"",swapMacaroonPath:"",boltzMacaroonPath:""},xo={apiURL:"",apisCallStatus:{Login:{status:j.Bn.UN_INITIATED},IsAuthorized:{status:j.Bn.UN_INITIATED}},selNode:{index:1,lnNode:"Node 1",settings:Mc,authentication:bo,lnImplementation:"LND"},appConfig:{defaultNodeIndex:-1,selectedNodeIndex:-1,sso:{rtlSSO:0,logoutRedirectLink:""},enable2FA:!1,allowPasswordUpdate:!0,nodes:[{settings:Mc,authentication:bo}]},nodeData:{}},zl=(0,C.Lq)(xo,(0,C.on)(we.qi,($,{payload:Ze})=>{const z=JSON.parse(JSON.stringify($.apisCallStatus));return z[Ze.action]={status:Ze.status,statusCode:Ze.statusCode,message:Ze.message,URL:Ze.URL,filePath:Ze.filePath},Object.assign(Object.assign({},$),{apisCallStatus:z})}),(0,C.on)(we.vI,($,{payload:Ze})=>Object.assign(Object.assign({},xo),{apisCallStatus:$.apisCallStatus,appConfig:$.appConfig,selNode:Ze})),(0,C.on)(we.fk,($,{payload:Ze})=>Object.assign(Object.assign({},$),{selNode:Ze.currentLnNode})),(0,C.on)(we.Tm,($,{payload:Ze})=>{const z=JSON.parse(JSON.stringify($.selNode));switch(Ze.service){case j.JX.BOLTZ:z.settings.boltzServerUrl=Ze.settings.boltzServerUrl;break;case j.JX.LOOP:z.settings.swapServerUrl=Ze.settings.swapServerUrl;break;case j.JX.OFFERS:z.settings.enableOffers=Ze.settings.enableOffers}return Object.assign(Object.assign({},$),{selNode:z})}),(0,C.on)(we._V,($,{payload:Ze})=>Object.assign(Object.assign({},$),{nodeData:Ze})),(0,C.on)(we.XT,($,{payload:Ze})=>Object.assign(Object.assign({},$),{appConfig:Ze}))),Us={apisCallStatus:{FetchInfo:{status:j.Bn.UN_INITIATED},FetchFees:{status:j.Bn.UN_INITIATED},FetchPeers:{status:j.Bn.UN_INITIATED},FetchClosedChannels:{status:j.Bn.UN_INITIATED},FetchPendingChannels:{status:j.Bn.UN_INITIATED},FetchAllChannels:{status:j.Bn.UN_INITIATED},FetchBalanceBlockchain:{status:j.Bn.UN_INITIATED},FetchInvoices:{status:j.Bn.UN_INITIATED},FetchPayments:{status:j.Bn.UN_INITIATED},FetchForwardingHistory:{status:j.Bn.UN_INITIATED},FetchUTXOs:{status:j.Bn.UN_INITIATED},FetchTransactions:{status:j.Bn.UN_INITIATED},FetchLightningTransactions:{status:j.Bn.UN_INITIATED},FetchNetwork:{status:j.Bn.UN_INITIATED}},nodeSettings:{userPersona:j.ol.OPERATOR,fiatConversion:!1,channelBackupPath:"",currencyUnits:[],selCurrencyUnit:"",lnImplementation:"",swapServerUrl:""},information:{},peers:[],fees:{channel_fees:[],day_fee_sum:0,week_fee_sum:0,month_fee_sum:0,daily_tx_count:0,weekly_tx_count:0,monthly_tx_count:0,forwarding_events_history:{}},networkInfo:{},blockchainBalance:{total_balance:-1},lightningBalance:{local:-1,remote:-1},channels:[],channelsSummary:{active:{num_channels:0,capacity:0},inactive:{num_channels:0,capacity:0}},closedChannels:[],pendingChannels:{},pendingChannelsSummary:{open:{num_channels:0,limbo_balance:0},closing:{num_channels:0,limbo_balance:0},force_closing:{num_channels:0,limbo_balance:0},waiting_close:{num_channels:0,limbo_balance:0},total_channels:0,total_limbo_balance:0},transactions:[],utxos:[],listPayments:{payments:[]},listInvoices:{invoices:[]},allLightningTransactions:{listPaymentsAll:{payments:[],first_index_offset:"",last_index_offset:""},listInvoicesAll:{invoices:[],total_invoices:0,last_index_offset:"",first_index_offset:""}},forwardingHistory:{last_offset_index:0,total_fee_msat:0,forwarding_events:[]}};let x0=!1,Ks=!1;const Uo=(0,C.Lq)(Us,(0,C.on)(ui.PC,($,{payload:Ze})=>{const z=JSON.parse(JSON.stringify($.apisCallStatus));return z[Ze.action]={status:Ze.status,statusCode:Ze.statusCode,message:Ze.message,URL:Ze.URL,filePath:Ze.filePath},Object.assign(Object.assign({},$),{apisCallStatus:z})}),(0,C.on)(ui.JT,($,{payload:Ze})=>Object.assign(Object.assign({},$),{nodeSettings:Ze})),(0,C.on)(ui.Ll,($,{payload:Ze})=>Object.assign(Object.assign({},Us),{nodeSettings:Ze})),(0,C.on)(ui.CX,($,{payload:Ze})=>Object.assign(Object.assign({},$),{information:Ze})),(0,C.on)(ui.Z8,($,{payload:Ze})=>Object.assign(Object.assign({},$),{peers:Ze})),(0,C.on)(ui.EK,($,{payload:Ze})=>{const z=[...$.peers],Oe=$.peers.findIndex(_t=>_t.pub_key===Ze.pubkey);return Oe>-1&&z.splice(Oe,1),Object.assign(Object.assign({},$),{peers:z})}),(0,C.on)(ui.YP,($,{payload:Ze})=>{const z=$.listInvoices;return z.invoices.unshift(Ze),Object.assign(Object.assign({},$),{listInvoices:z})}),(0,C.on)(ui.aL,($,{payload:Ze})=>{const z=$.listInvoices;return z.invoices=z.invoices.map(Oe=>Oe.payment_request===Ze.payment_request?Ze:Oe),Object.assign(Object.assign({},$),{listInvoices:z})}),(0,C.on)(ui.RX,($,{payload:Ze})=>Object.assign(Object.assign({},$),{fees:Ze})),(0,C.on)(ui._L,($,{payload:Ze})=>Object.assign(Object.assign({},$),{closedChannels:Ze})),(0,C.on)(ui.TW,($,{payload:Ze})=>Object.assign(Object.assign({},$),{pendingChannels:Ze.pendingChannels,pendingChannelsSummary:Ze.pendingChannelsSummary})),(0,C.on)(ui.as,($,{payload:Ze})=>{let z=0,Oe=0,_t=0,pi=0,On=0,hr=0;return Ze&&Ze.forEach(Un=>{Un.local_balance||(Un.local_balance=0),!0===Un.active?(On+=+Un.local_balance,_t+=1,Un.local_balance?z=+z+ +Un.local_balance:Un.local_balance=0,Un.remote_balance?Oe=+Oe+ +Un.remote_balance:Un.remote_balance=0):(hr+=+Un.local_balance,pi+=1)}),Object.assign(Object.assign({},$),{channels:Ze,channelsSummary:{active:{num_channels:_t,capacity:On},inactive:{num_channels:pi,capacity:hr}},lightningBalance:{local:z,remote:Oe}})}),(0,C.on)(ui.OG,($,{payload:Ze})=>{const z=[...$.channels],Oe=$.channels.findIndex(_t=>_t.channel_point===Ze.channelPoint);return Oe>-1&&z.splice(Oe,1),Object.assign(Object.assign({},$),{channels:z})}),(0,C.on)(ui.Jl,($,{payload:Ze})=>Object.assign(Object.assign({},$),{blockchainBalance:Ze})),(0,C.on)(ui.ks,($,{payload:Ze})=>Object.assign(Object.assign({},$),{networkInfo:Ze})),(0,C.on)(ui.Nr,($,{payload:Ze})=>(Ze.total_invoices||(Ze.total_invoices=$.listInvoices.total_invoices),Object.assign(Object.assign({},$),{listInvoices:Ze}))),(0,C.on)(ui.Lf,($,{payload:Ze})=>{if(x0=!0,Ze.length&&Ks){const z=[...$.utxos];return z.forEach(Oe=>{const _t=Ze.find(pi=>pi.tx_hash===Oe.outpoint.txid_str);Oe.label=_t&&_t.label?_t.label:""}),Object.assign(Object.assign({},$),{utxos:z,transactions:Ze})}return Object.assign(Object.assign({},$),{transactions:Ze})}),(0,C.on)(ui.UH,($,{payload:Ze})=>{if(Ks=!0,Ze.length&&x0){const z=[...$.transactions];Ze.forEach(Oe=>{const _t=z.find(pi=>pi.tx_hash===Oe.outpoint.txid_str);Oe.label=_t&&_t.label?_t.label:""})}return Object.assign(Object.assign({},$),{utxos:Ze})}),(0,C.on)(ui.HI,($,{payload:Ze})=>Object.assign(Object.assign({},$),{listPayments:Ze})),(0,C.on)(ui.Fr,($,{payload:Ze})=>Object.assign(Object.assign({},$),{allLightningTransactions:Ze})),(0,C.on)(ui.QJ,($,{payload:Ze})=>{const z=Ze.forwarding_events?JSON.parse(JSON.stringify(Ze)):{};if(z.forwarding_events){const Oe=[...$.channels,...$.closedChannels];z.forwarding_events.forEach(_t=>{if(Oe&&Oe.length>0)for(let pi=0;pi{const z=JSON.parse(JSON.stringify($.apisCallStatus));return z[Ze.action]={status:Ze.status,statusCode:Ze.statusCode,message:Ze.message,URL:Ze.URL,filePath:Ze.filePath},Object.assign(Object.assign({},$),{apisCallStatus:z})}),(0,C.on)(Lt.oo,($,{payload:Ze})=>Object.assign(Object.assign({},$),{nodeSettings:Ze})),(0,C.on)(Lt.xH,($,{payload:Ze})=>Object.assign(Object.assign({},co),{nodeSettings:Ze})),(0,C.on)(Lt.CX,($,{payload:Ze})=>Object.assign(Object.assign({},$),{information:Ze})),(0,C.on)(Lt.RX,($,{payload:Ze})=>Object.assign(Object.assign({},$),{fees:Ze})),(0,C.on)(Lt.I8,($,{payload:Ze})=>Ze.perkb?Object.assign(Object.assign({},$),{feeRatesPerKB:Ze}):Ze.perkw?Object.assign(Object.assign({},$),{feeRatesPerKW:Ze}):Object.assign({},$)),(0,C.on)(Lt.Lu,($,{payload:Ze})=>Object.assign(Object.assign({},$),{balance:Ze})),(0,C.on)(Lt.xS,($,{payload:Ze})=>Object.assign(Object.assign({},$),{localRemoteBalance:Ze})),(0,C.on)(Lt.Z8,($,{payload:Ze})=>Object.assign(Object.assign({},$),{peers:Ze})),(0,C.on)(Lt.X3,($,{payload:Ze})=>Object.assign(Object.assign({},$),{peers:[...$.peers,Ze]})),(0,C.on)(Lt.EK,($,{payload:Ze})=>{const z=[...$.peers],Oe=$.peers.findIndex(_t=>_t.id===Ze.id);return Oe>-1&&z.splice(Oe,1),Object.assign(Object.assign({},$),{peers:z})}),(0,C.on)(Lt.as,($,{payload:Ze})=>Object.assign(Object.assign({},$),{activeChannels:Ze.activeChannels,pendingChannels:Ze.pendingChannels,inactiveChannels:Ze.inactiveChannels})),(0,C.on)(Lt.OG,($,{payload:Ze})=>{const z=[...$.peers];return z.forEach(Oe=>{Oe.id===Ze.id&&(Oe.connected=!1,delete Oe.netaddr)}),Object.assign(Object.assign({},$),{peers:z})}),(0,C.on)(Lt.HI,($,{payload:Ze})=>Object.assign(Object.assign({},$),{payments:Ze})),(0,C.on)(Lt.QJ,($,{payload:Ze})=>{const z=$.fees,Oe=[...$.activeChannels,...$.pendingChannels,...$.inactiveChannels];return Ze=_1(Ze,Oe),z.totalTxCount=Ze.length,Object.assign(Object.assign({},$),{fee:z,forwardingHistory:Ze})}),(0,C.on)(Lt.M7,($,{payload:Ze})=>{const z=[...$.activeChannels,...$.pendingChannels,...$.inactiveChannels];return Ze=_1(Ze,z),Object.assign(Object.assign({},$),{failedForwardingHistory:Ze})}),(0,C.on)(Lt.YP,($,{payload:Ze})=>{const z=$.invoices;return z.invoices.unshift(Ze),Object.assign(Object.assign({},$),{invoices:z})}),(0,C.on)(Lt.Nr,($,{payload:Ze})=>Object.assign(Object.assign({},$),{invoices:Ze})),(0,C.on)(Lt.aL,($,{payload:Ze})=>{const z=$.invoices;return z.invoices=z.invoices.map(Oe=>Oe.label===Ze.label?Ze:Oe),Object.assign(Object.assign({},$),{invoices:z})}),(0,C.on)(Lt.UH,($,{payload:Ze})=>Object.assign(Object.assign({},$),{utxos:Ze})),(0,C.on)(Lt.Zu,($,{payload:Ze})=>Object.assign(Object.assign({},$),{offers:Ze})),(0,C.on)(Lt.ZH,($,{payload:Ze})=>{const z=$.offers;return z.unshift(Ze),Object.assign(Object.assign({},$),{offers:z})}),(0,C.on)(Lt.JK,($,{payload:Ze})=>{const z=[...$.offers],Oe=$.offers.findIndex(_t=>_t.offer_id===Ze.offer.offer_id);return Oe>-1&&z.splice(Oe,1,Ze.offer),Object.assign(Object.assign({},$),{offers:z})}),(0,C.on)(Lt.d7,($,{payload:Ze})=>Object.assign(Object.assign({},$),{offersBookmarks:Ze})),(0,C.on)(Lt.e9,($,{payload:Ze})=>{const z=[...$.offersBookmarks],Oe=z.findIndex(_t=>_t.bolt12===Ze.bolt12);if(Oe<0)z.unshift(Ze);else{const _t=Object.assign({},z[Oe]);_t.title=Ze.title,_t.amountmSat=Ze.amountmSat,_t.lastUpdatedAt=Ze.lastUpdatedAt,_t.description=Ze.description,_t.vendor=Ze.vendor,z.splice(Oe,1,_t)}return Object.assign(Object.assign({},$),{offersBookmarks:z})}),(0,C.on)(Lt.en,($,{payload:Ze})=>{const z=[...$.offersBookmarks],Oe=$.offersBookmarks.findIndex(_t=>_t.bolt12===Ze.bolt12);return Oe>-1&&z.splice(Oe,1),Object.assign(Object.assign({},$),{offersBookmarks:z})})),_1=($,Ze)=>($&&$.length>0?$.forEach((z,Oe)=>{if(Ze&&Ze.length>0)for(let _t=0;_t{const z=JSON.parse(JSON.stringify($.apisCallStatus));return z[Ze.action]={status:Ze.status,statusCode:Ze.statusCode,message:Ze.message,URL:Ze.URL,filePath:Ze.filePath},Object.assign(Object.assign({},$),{apisCallStatus:z})}),(0,C.on)(gt.Zr,($,{payload:Ze})=>Object.assign(Object.assign({},$),{nodeSettings:Ze})),(0,C.on)(gt.Fd,($,{payload:Ze})=>Object.assign(Object.assign({},Co),{nodeSettings:Ze})),(0,C.on)(gt.CX,($,{payload:Ze})=>Object.assign(Object.assign({},$),{information:Ze})),(0,C.on)(gt.RX,($,{payload:Ze})=>Object.assign(Object.assign({},$),{fees:Ze})),(0,C.on)(gt.eN,($,{payload:Ze})=>Object.assign(Object.assign({},$),{activeChannels:Ze})),(0,C.on)(gt.TW,($,{payload:Ze})=>Object.assign(Object.assign({},$),{pendingChannels:Ze})),(0,C.on)(gt.i,($,{payload:Ze})=>Object.assign(Object.assign({},$),{inactiveChannels:Ze})),(0,C.on)(gt.HG,($,{payload:Ze})=>Object.assign(Object.assign({},$),{channelsStatus:Ze})),(0,C.on)(gt.Bw,($,{payload:Ze})=>Object.assign(Object.assign({},$),{onchainBalance:Ze})),(0,C.on)(gt.On,($,{payload:Ze})=>Object.assign(Object.assign({},$),{lightningBalance:Ze})),(0,C.on)(gt.Z8,($,{payload:Ze})=>Object.assign(Object.assign({},$),{peers:Ze})),(0,C.on)(gt.EK,($,{payload:Ze})=>{const z=[...$.peers],Oe=$.peers.findIndex(_t=>_t.nodeId===Ze.nodeId);return Oe>-1&&z.splice(Oe,1),Object.assign(Object.assign({},$),{peers:z})}),(0,C.on)(gt.OG,($,{payload:Ze})=>{const z=[...$.activeChannels],Oe=$.activeChannels.findIndex(_t=>_t.channelId===Ze.channelId);return Oe>-1&&z.splice(Oe,1),Object.assign(Object.assign({},$),{activeChannels:z})}),(0,C.on)(gt.HI,($,{payload:Ze})=>{if(Ze&&Ze.sent){const z=[...$.activeChannels,...$.pendingChannels,...$.inactiveChannels];Ze.sent.map(Oe=>{const _t=$.peers.find(pi=>pi.nodeId===Oe.recipientNodeId);return Oe.recipientNodeAlias=_t?_t.alias:Oe.recipientNodeId,Oe.parts&&Oe.parts.map(pi=>{const On=z.find(hr=>hr.channelId===pi.toChannelId);return pi.toChannelAlias=On?On.alias:pi.toChannelId,Oe.parts}),Ze.sent})}if(Ze&&Ze.relayed){const z=[...$.activeChannels,...$.pendingChannels,...$.inactiveChannels];Ze.relayed.forEach(Oe=>{Oe=Vo(Oe,z)})}return Object.assign(Object.assign({},$),{payments:Ze})}),(0,C.on)(gt.Lf,($,{payload:Ze})=>Object.assign(Object.assign({},$),{transactions:Ze})),(0,C.on)(gt.YP,($,{payload:Ze})=>{const z=$.invoices;return z.unshift(Ze),Object.assign(Object.assign({},$),{invoices:z})}),(0,C.on)(gt.Nr,($,{payload:Ze})=>Object.assign(Object.assign({},$),{invoices:Ze})),(0,C.on)(gt.aL,($,{payload:Ze})=>{let z=$.invoices;return z=z.map(Oe=>{if(Oe.paymentHash===Ze.paymentHash){if(Ze.hasOwnProperty("type")){const _t=JSON.parse(JSON.stringify(Oe));return _t.amountSettled=Ze.parts&&Ze.parts.length&&Ze.parts.length>0&&Ze.parts[0].amount?Ze.parts[0].amount/1e3:0,_t.receivedAt=Ze.parts&&Ze.parts.length&&Ze.parts.length>0&&Ze.parts[0].timestamp?Math.round(Ze.parts[0].timestamp/1e3):0,_t.status="received",_t}return Ze}return Oe}),Object.assign(Object.assign({},$),{invoices:z})}),(0,C.on)(gt.DJ,($,{payload:Ze})=>{let z=$.pendingChannels;return z=z.map(Oe=>(Oe.channelId===Ze.channelId&&Oe.nodeId===Ze.remoteNodeId&&(Ze.currentState=Ze.currentState.replace(/_/g," "),Oe.state=Ze.currentState),Oe)),Object.assign(Object.assign({},$),{pendingChannels:z})}),(0,C.on)(gt.ti,($,{payload:Ze})=>{const z=$.payments,Oe=Vo(Ze,[...$.activeChannels,...$.pendingChannels,...$.inactiveChannels]);Oe.amountIn=Math.round(Ze.amountIn/1e3),Oe.amountOut=Math.round(Ze.amountOut/1e3),z.relayed.unshift(Oe);const _t=Ze.amountIn-Ze.amountOut,pi={localBalance:$.lightningBalance.localBalance+_t,remoteBalance:$.lightningBalance.remoteBalance-_t},On=$.channelsStatus;On.active.capacity=$.channelsStatus.active.capacity+_t;const hr={daily_fee:$.fees.daily_fee+_t,daily_txs:$.fees.daily_txs+1,weekly_fee:$.fees.weekly_fee+_t,weekly_txs:$.fees.weekly_txs+1,monthly_fee:$.fees.monthly_fee+_t,monthly_txs:$.fees.monthly_txs+1},Un=$.activeChannels;let ur=!1,ka=!1;for(const Nr of Un){if(Nr.channelId===Ze.fromChannelId){ur=!0;const ws=Nr.toLocal+Nr.toRemote;Nr.toLocal=Nr.toLocal+Oe.amountIn,Nr.toRemote=Nr.toRemote-Oe.amountIn,Nr.balancedness=0===ws?1:+(1-Math.abs((Nr.toLocal-Nr.toRemote)/ws)).toFixed(3)}if(Nr.channelId===Ze.toChannelId){ka=!0;const ws=Nr.toLocal+Nr.toRemote;Nr.toLocal=Nr.toLocal-Oe.amountOut,Nr.toRemote=Nr.toRemote+Oe.amountOut,Nr.balancedness=0===ws?1:+(1-Math.abs((Nr.toLocal-Nr.toRemote)/ws)).toFixed(3)}if(ka&&ur)break}return Object.assign(Object.assign({},$),{payments:z,lightningBalance:pi,channelStatus:On,fees:hr,activeChannels:Un})})),Vo=($,Ze)=>{if("payment-relayed"===$.type)if(Ze&&Ze.length>0)for(let z=0;z0)for(let z=0;z{Ze[z].channelId.toString()===Oe.channelId&&(Oe.channelAlias=Ze[z].alias?Ze[z].alias:Oe.channelId,Oe.shortChannelId=Ze[z].shortChannelId?Ze[z].shortChannelId:"")}),$.outgoing.forEach(Oe=>{Ze[z].channelId.toString()===Oe.channelId&&(Oe.channelAlias=Ze[z].alias?Ze[z].alias:Oe.channelId,Oe.shortChannelId=Ze[z].shortChannelId?Ze[z].shortChannelId:"")}),z===Ze.length-1&&($.incoming[0].channelAlias||$.incoming.forEach(Oe=>{Oe.channelAlias=Oe.channelId.substring(0,17)+"...",Oe.shortChannelId=""}),$.outgoing[0].channelAlias||$.outgoing.forEach(Oe=>{Oe.channelAlias=Oe.channelId.substring(0,17)+"...",Oe.shortChannelId=""}));else $.incoming.forEach(z=>{z.channelAlias=z.channelId.substring(0,17)+"...",z.shortChannelId=""}),$.outgoing.forEach(z=>{z.channelAlias=z.channelId.substring(0,17)+"...",z.shortChannelId=""});$.amountIn=$.incoming.reduce((z,Oe)=>z+Oe.amount,0),$.fromChannelId=$.incoming[0].channelId,$.fromChannelAlias=$.incoming[0].channelAlias,$.fromShortChannelId=$.incoming[0].shortChannelId,$.amountOut=$.outgoing.reduce((z,Oe)=>z+Oe.amount,0),$.toChannelId=$.outgoing[0].channelId,$.toChannelAlias=$.outgoing[0].channelAlias,$.toShortChannelId=$.outgoing[0].shortChannelId}return $};let fh=(()=>{class ${}return $.\u0275fac=function(z){return new(z||$)},$.\u0275mod=t.oAB({type:$,bootstrap:[Ia]}),$.\u0275inj=t.cJS({providers:[{provide:M.TP,useClass:Cc,multi:!0},Oa.a1,Pe.m,cl.D,p1.d,Zr.W,Ci.v,Fn],imports:[[v.PW,s1.m,p0,s.xu,e.t6,L.forRoot({idle:3590,timeout:10,ping:12e3}),C.Aw.forRoot({root:zl,lnd:Uo,cl:g1,ecl:Zo},{runtimeChecks:{strictStateImmutability:!1,strictActionImmutability:!1}}),c.sQ.forRoot([it.V,zo.l,m1.s,uh.o]),Qi.NZ.production?[]:P.FT.instrument()]]}),$})();Qi.NZ.production&&(0,t.G48)(),e.q6().bootstrapModule(fh).catch($=>console.log($))},7854:(Ue,K)=>{"use strict";function m(j){return Object.keys(j).map(we=>j[we])}var j;Object.defineProperty(K,"__esModule",{value:!0}),(j=K.HashAlgorithms||(K.HashAlgorithms={})).SHA1="sha1",j.SHA256="sha256",j.SHA512="sha512";const e=m(K.HashAlgorithms);!function(j){j.ASCII="ascii",j.BASE64="base64",j.HEX="hex",j.LATIN1="latin1",j.UTF8="utf8"}(K.KeyEncodings||(K.KeyEncodings={}));const t=m(K.KeyEncodings);!function(j){j.HOTP="hotp",j.TOTP="totp"}(K.Strategy||(K.Strategy={}));const v=m(K.Strategy),M=()=>{throw new Error("Please provide an options.createDigest implementation.")};function s(j){return/^(\d+)$/.test(j)}function C(j,we,Ae){return j.length>=we?j:`${Array(we+1).join(Ae)}${j}`.slice(-1*we)}function c(j){const we=`otpauth://${j.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,Ae=[];if(v.indexOf(j.type)<0)throw new Error(`Expecting options.type to be one of ${v.join(", ")}. Received ${j.type}.`);if("hotp"===j.type){if(null==j.counter||"number"!=typeof j.counter)throw new Error('Expecting options.counter to be a number when options.type is "hotp".');Ae.push(`&counter=${j.counter}`)}return"totp"===j.type&&j.step&&Ae.push(`&period=${j.step}`),j.digits&&Ae.push(`&digits=${j.digits}`),j.algorithm&&Ae.push(`&algorithm=${j.algorithm.toUpperCase()}`),j.issuer&&Ae.push(`&issuer=${encodeURIComponent(j.issuer)}`),we.replace("{labelPrefix}",encodeURIComponent(j.issuer||j.accountName)).replace("{accountName}",encodeURIComponent(j.accountName)).replace("{secret}",j.secret).replace("{query}",Ae.join(""))}class P{constructor(we={}){this._defaultOptions=Object.freeze(ro({},we)),this._options=Object.freeze({})}create(we={}){return new P(we)}clone(we={}){const Ae=this.create(ro(ro({},this._defaultOptions),we));return Ae.options=this._options,Ae}get options(){return Object.freeze(ro(ro({},this._defaultOptions),this._options))}set options(we){this._options=Object.freeze(ro(ro({},this._options),we))}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}}function o(j){if("function"!=typeof j.createDigest)throw new Error("Expecting options.createDigest to be a function.");if("function"!=typeof j.createHmacKey)throw new Error("Expecting options.createHmacKey to be a function.");if("number"!=typeof j.digits)throw new Error("Expecting options.digits to be a number.");if(!j.algorithm||e.indexOf(j.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${e.join(", ")}. Received ${j.algorithm}.`);if(!j.encoding||t.indexOf(j.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${t.join(", ")}. Received ${j.encoding}.`)}const O=(j,we,Ae)=>Buffer.from(we,Ae).toString("hex");function T(){return{algorithm:K.HashAlgorithms.SHA1,createHmacKey:O,createDigest:M,digits:6,encoding:K.KeyEncodings.ASCII}}function R(j){const we=ro(ro({},T()),j);return o(we),Object.freeze(we)}function S(j){return C(j.toString(16),16,"0")}function D(j,we){const Ae=Buffer.from(j,"hex"),le=15&Ae[Ae.length-1],yt=((127&Ae[le])<<24|(255&Ae[le+1])<<16|(255&Ae[le+2])<<8|255&Ae[le+3])%Math.pow(10,we);return C(String(yt),we,"0")}function U(j,we,Ae){const le=Ae.digest||function(j,we,Ae){const le=S(we),We=Ae.createHmacKey(Ae.algorithm,j,Ae.encoding);return Ae.createDigest(Ae.algorithm,We,le)}(j,we,Ae);return D(le,Ae.digits)}function G(j,we,Ae,le){return!!s(j)&&j===U(we,Ae,le)}function W(j,we,Ae,le,We){return c({algorithm:We.algorithm,digits:We.digits,type:K.Strategy.HOTP,accountName:j,counter:le,issuer:we,secret:Ae})}class ee extends P{create(we={}){return new ee(we)}allOptions(){return R(this.options)}generate(we,Ae){return U(we,Ae,this.allOptions())}check(we,Ae,le){return G(we,Ae,le,this.allOptions())}verify(we){if("object"!=typeof we)throw new Error("Expecting argument 0 of verify to be an object");return this.check(we.token,we.secret,we.counter)}keyuri(we,Ae,le,We){return W(we,Ae,le,We,this.allOptions())}}function ie(j){if("number"==typeof j)return[Math.abs(j),Math.abs(j)];if(Array.isArray(j)){const[we,Ae]=j;if("number"==typeof we&&"number"==typeof Ae)return[Math.abs(we),Math.abs(Ae)]}throw new Error("Expecting options.window to be an number or [number, number].")}function _e(j){if(o(j),ie(j.window),"number"!=typeof j.epoch)throw new Error("Expecting options.epoch to be a number.");if("number"!=typeof j.step)throw new Error("Expecting options.step to be a number.")}const fe=(j,we,Ae)=>{const le=j.length,We=Buffer.from(j,we).toString("hex");if(le{switch(j){case K.HashAlgorithms.SHA1:return fe(we,Ae,20);case K.HashAlgorithms.SHA256:return fe(we,Ae,32);case K.HashAlgorithms.SHA512:return fe(we,Ae,64);default:throw new Error(`Expecting algorithm to be one of ${e.join(", ")}. Received ${j}.`)}};function ne(){return{algorithm:K.HashAlgorithms.SHA1,createDigest:M,createHmacKey:de,digits:6,encoding:K.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function se(j){const we=ro(ro({},ne()),j);return _e(we),Object.freeze(we)}function oe(j,we){return Math.floor(j/we/1e3)}function y(j,we){return U(j,oe(we.epoch,we.step),we)}function i(j,we,Ae,le){const We=[];if(0===le)return We;for(let yt=1;yt<=le;yt++)We.push(j+we*yt*Ae);return We}function a(j,we,Ae){const le=ie(Ae),We=1e3*we;return{current:j,past:i(j,-1,We,le[0]),future:i(j,1,We,le[1])}}function p(j,we,Ae){return!!s(j)&&j===y(we,Ae)}function u(j,we,Ae,le){let We=null;return j.some((yt,Ne)=>!!p(we,Ae,_8(ro({},le),{epoch:yt}))&&(We=Ne+1,!0)),We}function _(j,we,Ae){if(p(j,we,Ae))return 0;const le=a(Ae.epoch,Ae.step,Ae.window),We=u(le.past,j,we,Ae);return null!==We?-1*We:u(le.future,j,we,Ae)}function L(j,we){return Math.floor(j/1e3)%we}function I(j,we){return we-L(j,we)}function x(j,we,Ae,le){return c({algorithm:le.algorithm,digits:le.digits,step:le.step,type:K.Strategy.TOTP,accountName:j,issuer:we,secret:Ae})}class r extends ee{create(we={}){return new r(we)}allOptions(){return se(this.options)}generate(we){return y(we,this.allOptions())}checkDelta(we,Ae){return _(we,Ae,this.allOptions())}check(we,Ae){return"number"==typeof this.checkDelta(we,Ae)}verify(we){if("object"!=typeof we)throw new Error("Expecting argument 0 of verify to be an object");return this.check(we.token,we.secret)}timeRemaining(){const we=this.allOptions();return I(we.epoch,we.step)}timeUsed(){const we=this.allOptions();return L(we.epoch,we.step)}keyuri(we,Ae,le){return x(we,Ae,le,this.allOptions())}}function b(j){if(_e(j),"function"!=typeof j.keyDecoder)throw new Error("Expecting options.keyDecoder to be a function.");if(j.keyEncoder&&"function"!=typeof j.keyEncoder)throw new Error("Expecting options.keyEncoder to be a function.")}function J(){return{algorithm:K.HashAlgorithms.SHA1,createDigest:M,createHmacKey:de,digits:6,encoding:K.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function F(j){const we=ro(ro({},J()),j);return b(we),Object.freeze(we)}function B(j,we){return we.keyEncoder(j,we.encoding)}function te(j,we){return we.keyDecoder(j,we.encoding)}function xe(j,we){return B(we.createRandomBytes(j,we.encoding),we)}function Re(j,we){return y(te(j,we),we)}function Fe(j,we,Ae){return _(j,te(we,Ae),Ae)}class q extends r{create(we={}){return new q(we)}allOptions(){return F(this.options)}generate(we){return Re(we,this.allOptions())}checkDelta(we,Ae){return Fe(we,Ae,this.allOptions())}encode(we){return B(we,this.allOptions())}decode(we){return te(we,this.allOptions())}generateSecret(we=10){return xe(we,this.allOptions())}}K.Authenticator=q,K.HASH_ALGORITHMS=e,K.HOTP=ee,K.KEY_ENCODINGS=t,K.OTP=P,K.STRATEGY=v,K.TOTP=r,K.authenticatorCheckWithWindow=Fe,K.authenticatorDecoder=te,K.authenticatorDefaultOptions=J,K.authenticatorEncoder=B,K.authenticatorGenerateSecret=xe,K.authenticatorOptionValidator=b,K.authenticatorOptions=F,K.authenticatorToken=Re,K.createDigestPlaceholder=M,K.hotpCheck=G,K.hotpCounter=S,K.hotpCreateHmacKey=O,K.hotpDefaultOptions=T,K.hotpDigestToToken=D,K.hotpKeyuri=W,K.hotpOptions=R,K.hotpOptionsValidator=o,K.hotpToken=U,K.isTokenValid=s,K.keyuri=c,K.objectValues=m,K.padStart=C,K.totpCheck=p,K.totpCheckByEpoch=u,K.totpCheckWithWindow=_,K.totpCounter=oe,K.totpCreateHmacKey=de,K.totpDefaultOptions=ne,K.totpEpochAvailable=a,K.totpKeyuri=x,K.totpOptions=se,K.totpOptionsValidator=_e,K.totpPadSecret=fe,K.totpTimeRemaining=I,K.totpTimeUsed=L,K.totpToken=y},6098:(Ue,K,m)=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});var s,t=(s=m(1348))&&"object"==typeof s&&"default"in s?s.default:s;K.createDigest=(s,C,c)=>t.createHmac(s,Buffer.from(C,"hex")).update(Buffer.from(c,"hex")).digest().toString("hex"),K.createRandomBytes=(s,C)=>t.randomBytes(s).toString(C)},1415:(Ue,K,m)=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});var s,t=(s=m(2167))&&"object"==typeof s&&"default"in s?s.default:s;K.keyDecoder=(s,C)=>t.decode(s).toString(C),K.keyEncoder=(s,C)=>t.encode(Buffer.from(s,C).toString("ascii")).toString().replace(/=/g,"")},842:(Ue,K,m)=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});var e=m(6098),t=m(1415),v=m(7854);const M=new v.HOTP({createDigest:e.createDigest}),s=new v.TOTP({createDigest:e.createDigest}),C=new v.Authenticator({createDigest:e.createDigest,createRandomBytes:e.createRandomBytes,keyDecoder:t.keyDecoder,keyEncoder:t.keyEncoder});K.authenticator=C,K.hotp=M,K.totp=s},6046:(Ue,K,m)=>{"use strict";m.d(K,{H5:()=>f4,K$:()=>u4,a4:()=>oh});var e=m(5e3),t=m(9808),v=m(7429),M=m(655),s=m(4968),C=m(8372),c=m(1777);function P(){}function o(f){return null==f?P:function(){return this.querySelector(f)}}function T(f){return"object"==typeof f&&"length"in f?f:Array.from(f)}function R(){return[]}function S(f){return null==f?R:function(){return this.querySelectorAll(f)}}function U(f){return function(){return this.matches(f)}}function G(f){return function(A){return A.matches(f)}}var W=Array.prototype.find;function ie(){return this.firstElementChild}var fe=Array.prototype.filter;function de(){return this.children}function y(f){return new Array(f.length)}function a(f,A){this.ownerDocument=f.ownerDocument,this.namespaceURI=f.namespaceURI,this._next=null,this._parent=f,this.__data__=A}function p(f){return function(){return f}}function u(f,A,n,d,k,H){for(var Le,ce=0,dt=A.length,pt=H.length;ceA?1:f>=A?0:NaN}a.prototype={constructor:a,appendChild:function(f){return this._parent.insertBefore(f,this._next)},insertBefore:function(f,A){return this._parent.insertBefore(f,A)},querySelector:function(f){return this._parent.querySelector(f)},querySelectorAll:function(f){return this._parent.querySelectorAll(f)}};var we="http://www.w3.org/1999/xhtml";const Ae={svg:"http://www.w3.org/2000/svg",xhtml:we,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function le(f){var A=f+="",n=A.indexOf(":");return n>=0&&"xmlns"!==(A=f.slice(0,n))&&(f=f.slice(n+1)),Ae.hasOwnProperty(A)?{space:Ae[A],local:f}:f}function We(f){return function(){this.removeAttribute(f)}}function yt(f){return function(){this.removeAttributeNS(f.space,f.local)}}function Ne(f,A){return function(){this.setAttribute(f,A)}}function Ve(f,A){return function(){this.setAttributeNS(f.space,f.local,A)}}function ue(f,A){return function(){var n=A.apply(this,arguments);null==n?this.removeAttribute(f):this.setAttribute(f,n)}}function Te(f,A){return function(){var n=A.apply(this,arguments);null==n?this.removeAttributeNS(f.space,f.local):this.setAttributeNS(f.space,f.local,n)}}function Y(f){return f.ownerDocument&&f.ownerDocument.defaultView||f.document&&f||f.defaultView}function X(f){return function(){this.style.removeProperty(f)}}function he(f,A,n){return function(){this.style.setProperty(f,A,n)}}function Me(f,A,n){return function(){var d=A.apply(this,arguments);null==d?this.style.removeProperty(f):this.style.setProperty(f,d,n)}}function ht(f,A){return f.style.getPropertyValue(A)||Y(f).getComputedStyle(f,null).getPropertyValue(A)}function it(f){return function(){delete this[f]}}function ft(f,A){return function(){this[f]=A}}function nt(f,A){return function(){var n=A.apply(this,arguments);null==n?delete this[f]:this[f]=n}}function wt(f){return f.trim().split(/^|\s+/)}function Bt(f){return f.classList||new Nt(f)}function Nt(f){this._node=f,this._names=wt(f.getAttribute("class")||"")}function Vt(f,A){for(var n=Bt(f),d=-1,k=A.length;++d=0&&(n=A.slice(d+1),A=A.slice(0,d)),{type:A,name:n}})}function Ke(f){return function(){var A=this.__on;if(A){for(var H,n=0,d=-1,k=A.length;n=0&&(this._names.splice(A,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(f){return this._names.indexOf(f)>=0}};var Rt=[null];function yi(f,A){this._groups=f,this._parents=A}function Ri(){return new yi([[document.documentElement]],Rt)}yi.prototype=Ri.prototype={constructor:yi,select:function(f){"function"!=typeof f&&(f=o(f));for(var A=this._groups,n=A.length,d=new Array(n),k=0;k=qi&&(qi=Gi+1);!(un=hi[qi])&&++qi=0;)(ce=d[k])&&(H&&4^ce.compareDocumentPosition(H)&&H.parentNode.insertBefore(ce,H),H=ce);return this},sort:function(f){function A(Ht,Zt){return Ht&&Zt?f(Ht.__data__,Zt.__data__):!Ht-!Zt}f||(f=B);for(var n=this._groups,d=n.length,k=new Array(d),H=0;H1?this.each((null==A?X:"function"==typeof A?Me:he)(f,A,null==n?"":n)):ht(this.node(),f)},property:function(f,A){return arguments.length>1?this.each((null==A?it:"function"==typeof A?nt:ft)(f,A)):this.node()[f]},classed:function(f,A){var n=wt(f+"");if(arguments.length<2){for(var d=Bt(this.node()),k=-1,H=n.length;++k{}};function gt(){for(var d,f=0,A=arguments.length,n={};f=0&&(d=n.slice(k+1),n=n.slice(0,k)),n&&!A.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:d}})}function Ci(f,A){for(var k,n=0,d=f.length;n0)for(var k,H,n=new Array(k),d=0;d>8&15|A>>4&240,A>>4&15|240&A,(15&A)<<4|15&A,1):8===n?Cr(A>>24&255,A>>16&255,A>>8&255,(255&A)/255):4===n?Cr(A>>12&15|A>>8&240,A>>8&15|A>>4&240,A>>4&15|240&A,((15&A)<<4|15&A)/255):null):(A=xa.exec(f))?new Dr(A[1],A[2],A[3],1):(A=Va.exec(f))?new Dr(255*A[1]/100,255*A[2]/100,255*A[3]/100,1):(A=zr.exec(f))?Cr(A[1],A[2],A[3],A[4]):(A=is.exec(f))?Cr(255*A[1]/100,255*A[2]/100,255*A[3]/100,A[4]):(A=rr.exec(f))?Na(A[1],A[2]/100,A[3]/100,1):(A=ua.exec(f))?Na(A[1],A[2]/100,A[3]/100,A[4]):la.hasOwnProperty(f)?Qr(la[f]):"transparent"===f?new Dr(NaN,NaN,NaN,0):null}function Qr(f){return new Dr(f>>16&255,f>>8&255,255&f,1)}function Cr(f,A,n,d){return d<=0&&(f=A=n=NaN),new Dr(f,A,n,d)}function _n(f){return f instanceof zi||(f=Zr(f)),f?new Dr((f=f.rgb()).r,f.g,f.b,f.opacity):new Dr}function Kn(f,A,n,d){return 1===arguments.length?_n(f):new Dr(f,A,n,null==d?1:d)}function Dr(f,A,n,d){this.r=+f,this.g=+A,this.b=+n,this.opacity=+d}function Jr(){return"#"+Rr(this.r)+Rr(this.g)+Rr(this.b)}function Ga(){var f=this.opacity;return(1===(f=isNaN(f)?1:Math.max(0,Math.min(1,f)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===f?")":", "+f+")")}function Rr(f){return((f=Math.max(0,Math.min(255,Math.round(f)||0)))<16?"0":"")+f.toString(16)}function Na(f,A,n,d){return d<=0?f=A=n=NaN:n<=0||n>=1?f=A=NaN:A<=0&&(f=NaN),new er(f,A,n,d)}function Ca(f){if(f instanceof er)return new er(f.h,f.s,f.l,f.opacity);if(f instanceof zi||(f=Zr(f)),!f)return new er;if(f instanceof er)return f;var A=(f=f.rgb()).r/255,n=f.g/255,d=f.b/255,k=Math.min(A,n,d),H=Math.max(A,n,d),ce=NaN,Le=H-k,dt=(H+k)/2;return Le?(ce=A===H?(n-d)/Le+6*(n0&&dt<1?0:ce,new er(ce,Le,dt,f.opacity)}function er(f,A,n,d){this.h=+f,this.s=+A,this.l=+n,this.opacity=+d}function Fa(f,A,n){return 255*(f<60?A+(n-A)*f/60:f<180?n:f<240?A+(n-A)*(240-f)/60:A)}function dr(f,A,n,d,k){var H=f*f,ce=H*f;return((1-3*f+3*H-ce)*A+(4-6*H+3*ce)*n+(1+3*f+3*H-3*ce)*d+ce*k)/6}xr(zi,Zr,{copy:function(f){return Object.assign(new this.constructor,this,f)},displayable:function(){return this.rgb().displayable()},hex:Ur,formatHex:Ur,formatHsl:function(){return Ca(this).formatHsl()},formatRgb:Pa,toString:Pa}),xr(Dr,Kn,wi(zi,{brighter:function(f){return f=null==f?Sr:Math.pow(Sr,f),new Dr(this.r*f,this.g*f,this.b*f,this.opacity)},darker:function(f){return f=null==f?.7:Math.pow(.7,f),new Dr(this.r*f,this.g*f,this.b*f,this.opacity)},rgb:function(){return this},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:Jr,formatHex:Jr,formatRgb:Ga,toString:Ga})),xr(er,function(f,A,n,d){return 1===arguments.length?Ca(f):new er(f,A,n,null==d?1:d)},wi(zi,{brighter:function(f){return f=null==f?Sr:Math.pow(Sr,f),new er(this.h,this.s,this.l*f,this.opacity)},darker:function(f){return f=null==f?.7:Math.pow(.7,f),new er(this.h,this.s,this.l*f,this.opacity)},rgb:function(){var f=this.h%360+360*(this.h<0),A=isNaN(f)||isNaN(this.s)?0:this.s,n=this.l,d=n+(n<.5?n:1-n)*A,k=2*n-d;return new Dr(Fa(f>=240?f-240:f+120,k,d),Fa(f,k,d),Fa(f<120?f+240:f-120,k,d),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 f=this.opacity;return(1===(f=isNaN(f)?1:Math.max(0,Math.min(1,f)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===f?")":", "+f+")")}}));const Pr=f=>()=>f;function mr(f,A){var n=A-f;return n?function(f,A){return function(n){return f+n*A}}(f,n):Pr(isNaN(f)?A:f)}const fa=function f(A){var n=function(f){return 1==(f=+f)?mr:function(A,n){return n-A?function(f,A,n){return f=Math.pow(f,n),A=Math.pow(A,n)-f,n=1/n,function(d){return Math.pow(f+d*A,n)}}(A,n,f):Pr(isNaN(A)?n:A)}}(A);function d(k,H){var ce=n((k=Kn(k)).r,(H=Kn(H)).r),Le=n(k.g,H.g),dt=n(k.b,H.b),pt=mr(k.opacity,H.opacity);return function(Dt){return k.r=ce(Dt),k.g=Le(Dt),k.b=dt(Dt),k.opacity=pt(Dt),k+""}}return d.gamma=f,d}(1);function ra(f){return function(A){var ce,Le,n=A.length,d=new Array(n),k=new Array(n),H=new Array(n);for(ce=0;ce=1?(n=1,A-1):Math.floor(n*A),k=f[d],H=f[d+1];return dr((n-d/A)*A,d>0?f[d-1]:2*k-H,k,H,dn&&(H=A.slice(n,H),Le[ce]?Le[ce]+=H:Le[++ce]=H),(d=d[0])===(k=k[0])?Le[ce]?Le[ce]+=k:Le[++ce]=k:(Le[++ce]=null,dt.push({i:ce,x:ye(d,k)})),n=Qe.lastIndex;return n=0&&f._call.call(null,A),f=f._next;--vn}()}finally{vn=0,function(){for(var f,n,A=Fn,d=1/0;A;)A._call?(d>A._time&&(d=A._time),f=A,A=A._next):(n=A._next,A._next=null,A=f?f._next=n:Fn=n);Gn=f,je(d)}(),Lr=0}}function re(){var f=ja.now(),A=f-ma;A>1e3&&(us-=A,ma=f)}function je(f){vn||(wn&&(wn=clearTimeout(wn)),f-Lr>24?(f<1/0&&(wn=setTimeout(xt,f-ja.now()-us)),Qi&&(Qi=clearInterval(Qi))):(Qi||(ma=ja.now(),Qi=setInterval(re,1e3)),vn=1,ki(xt)))}function Mt(f,A,n){var d=new cr;return d.restart(k=>{d.stop(),f(k+A)},A=null==A?0:+A,n),d}cr.prototype=Ys.prototype={constructor:cr,restart:function(f,A,n){if("function"!=typeof f)throw new TypeError("callback is not a function");n=(null==n?Nn():+n)+(null==A?0:+A),!this._next&&Gn!==this&&(Gn?Gn._next=this:Fn=this,Gn=this),this._call=f,this._time=n,je()},stop:function(){this._call&&(this._call=null,this._time=1/0,je())}};var kt=$i("start","end","cancel","interrupt"),Kt=[];function tt(f,A,n,d,k,H){var ce=f.__transition;if(ce){if(n in ce)return}else f.__transition={};!function(f,A,n){var k,d=f.__transition;function ce(pt){var Dt,Ht,Zt,ni;if(1!==n.state)return dt();for(Dt in d)if((ni=d[Dt]).name===n.name){if(3===ni.state)return Mt(ce);4===ni.state?(ni.state=6,ni.timer.stop(),ni.on.call("interrupt",f,f.__data__,ni.index,ni.group),delete d[Dt]):+Dt0)throw new Error("too late; already scheduled");return n}function It(f,A){var n=zt(f,A);if(n.state>3)throw new Error("too late; already running");return n}function zt(f,A){var n=f.__transition;if(!n||!(n=n[A]))throw new Error("transition not found");return n}var yn,Ei=180/Math.PI,ji={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function hn(f,A,n,d,k,H){var ce,Le,dt;return(ce=Math.sqrt(f*f+A*A))&&(f/=ce,A/=ce),(dt=f*n+A*d)&&(n-=f*dt,d-=A*dt),(Le=Math.sqrt(n*n+d*d))&&(n/=Le,d/=Le,dt/=Le),f*d180?Dt+=360:Dt-pt>180&&(pt+=360),Zt.push({i:Ht.push(k(Ht)+"rotate(",null,d)-2,x:ye(pt,Dt)})):Dt&&Ht.push(k(Ht)+"rotate("+Dt+d)}(pt.rotate,Dt.rotate,Ht,Zt),function(pt,Dt,Ht,Zt){pt!==Dt?Zt.push({i:Ht.push(k(Ht)+"skewX(",null,d)-2,x:ye(pt,Dt)}):Dt&&Ht.push(k(Ht)+"skewX("+Dt+d)}(pt.skewX,Dt.skewX,Ht,Zt),function(pt,Dt,Ht,Zt,ni,bi){if(pt!==Ht||Dt!==Zt){var Bi=ni.push(k(ni)+"scale(",null,",",null,")");bi.push({i:Bi-4,x:ye(pt,Ht)},{i:Bi-2,x:ye(Dt,Zt)})}else(1!==Ht||1!==Zt)&&ni.push(k(ni)+"scale("+Ht+","+Zt+")")}(pt.scaleX,pt.scaleY,Dt.scaleX,Dt.scaleY,Ht,Zt),pt=Dt=null,function(ni){for(var hi,bi=-1,Bi=Zt.length;++bi=0&&(A=A.slice(0,n)),!A||"start"===A})}(A)?Et:It;return function(){var ce=H(this,f),Le=ce.on;Le!==d&&(k=(d=Le).copy()).on(A,n),ce.on=k}}var t1=Ki.prototype.constructor;function De(f){return function(){this.style.removeProperty(f)}}function qt(f,A,n){return function(d){this.style.setProperty(f,A.call(this,d),n)}}function ii(f,A,n){var d,k;function H(){var ce=A.apply(this,arguments);return ce!==k&&(d=(k=ce)&&qt(f,ce,n)),d}return H._value=A,H}function Xn(f){return function(A){this.textContent=f.call(this,A)}}function Bn(f){var A,n;function d(){var k=f.apply(this,arguments);return k!==n&&(A=(n=k)&&Xn(k)),A}return d._value=f,d}var Ns=0;function Ba(f,A,n,d){this._groups=f,this._parents=A,this._name=n,this._id=d}function os(){return++Ns}var Fs=Ki.prototype;Ba.prototype=function(f){return Ki().transition(f)}.prototype={constructor:Ba,select:function(f){var A=this._name,n=this._id;"function"!=typeof f&&(f=o(f));for(var d=this._groups,k=d.length,H=new Array(k),ce=0;ce2&&d.state<5,d.state=6,d.timer.stop(),d.on.call(k?"interrupt":"cancel",f,f.__data__,d.index,d.group),delete n[ce]):H=!1;H&&delete f.__transition}}(this,f)})},Ki.prototype.transition=function(f){var A,n;f instanceof Ba?(A=f._id,f=f._name):(A=os(),(n=Po).time=Nn(),f=null==f?null:f+"");for(var d=this._groups,k=d.length,H=0;HA?1:f>=A?0:NaN}function mc(f){let A=f,n=f;function d(ce,Le,dt,pt){for(null==dt&&(dt=0),null==pt&&(pt=ce.length);dt>>1;n(ce[Dt],Le)<0?dt=Dt+1:pt=Dt}return dt}return 1===f.length&&(A=(ce,Le)=>f(ce)-Le,n=function(f){return(A,n)=>ol(f(A),n)}(f)),{left:d,center:function(ce,Le,dt,pt){null==dt&&(dt=0),null==pt&&(pt=ce.length);const Dt=d(ce,Le,dt,pt-1);return Dt>dt&&A(ce[Dt-1],Le)>-A(ce[Dt],Le)?Dt-1:Dt},right:function(ce,Le,dt,pt){for(null==dt&&(dt=0),null==pt&&(pt=ce.length);dt>>1;n(ce[Dt],Le)>0?pt=Dt:dt=Dt+1}return dt}}}["w","e"].map(qs),["n","s"].map(qs),["n","w","e","s","nw","ne","sw","se"].map(qs);var gc=Math.sqrt(50),_c=Math.sqrt(10),vc=Math.sqrt(2);function Bl(f,A,n){var d=(A-f)/Math.max(0,n),k=Math.floor(Math.log(d)/Math.LN10),H=d/Math.pow(10,k);return k>=0?(H>=gc?10:H>=_c?5:H>=vc?2:1)*Math.pow(10,k):-Math.pow(10,-k)/(H>=gc?10:H>=_c?5:H>=vc?2:1)}function Ho(f,A,n){var d=Math.abs(A-f)/Math.max(0,n),k=Math.pow(10,Math.floor(Math.log(d)/Math.LN10)),H=d/k;return H>=gc?k*=10:H>=_c?k*=5:H>=vc&&(k*=2),A0))return dt;do{dt.push(pt=new Date(+H)),A(H,Le),f(H)}while(pt=ce)for(;f(ce),!H(ce);)ce.setTime(ce-1)},function(ce,Le){if(ce>=ce)if(Le<0)for(;++Le<=0;)for(;A(ce,-1),!H(ce););else for(;--Le>=0;)for(;A(ce,1),!H(ce););})},n&&(k.count=function(H,ce){return Hl.setTime(+H),xc.setTime(+ce),f(Hl),f(xc),Math.floor(n(Hl,xc))},k.every=function(H){return H=Math.floor(H),isFinite(H)&&H>0?H>1?k.filter(d?function(ce){return d(ce)%H==0}:function(ce){return k.count(0,ce)%H==0}):k:null}),k}var ll=$r(function(){},function(f,A){f.setTime(+f+A)},function(f,A){return A-f});ll.every=function(f){return f=Math.floor(f),isFinite(f)&&f>0?f>1?$r(function(A){A.setTime(Math.floor(A/f)*f)},function(A,n){A.setTime(+A+n*f)},function(A,n){return(n-A)/f}):ll:null};const b0=ll;const cl=$r(function(f){f.setTime(f-f.getMilliseconds())},function(f,A){f.setTime(+f+A*lo)},function(f,A){return(A-f)/lo},function(f){return f.getUTCSeconds()});const m1=$r(function(f){f.setTime(f-f.getMilliseconds()-f.getSeconds()*lo)},function(f,A){f.setTime(+f+A*Ha)},function(f,A){return(A-f)/Ha},function(f){return f.getMinutes()});const bo=$r(function(f){f.setTime(f-f.getMilliseconds()-f.getSeconds()*lo-f.getMinutes()*Ha)},function(f,A){f.setTime(+f+A*Ms)},function(f,A){return(A-f)/Ms},function(f){return f.getHours()});const Us=$r(f=>f.setHours(0,0,0,0),(f,A)=>f.setDate(f.getDate()+A),(f,A)=>(A-f-(A.getTimezoneOffset()-f.getTimezoneOffset())*Ha)/zs,f=>f.getDate()-1);function Ks(f){return $r(function(A){A.setDate(A.getDate()-(A.getDay()+7-f)%7),A.setHours(0,0,0,0)},function(A,n){A.setDate(A.getDate()+7*n)},function(A,n){return(n-A-(n.getTimezoneOffset()-A.getTimezoneOffset())*Ha)/yc})}var Uo=Ks(0),co=Ks(1),Co=(Ks(2),Ks(3),Ks(4));const hr=(Ks(5),Ks(6),$r(function(f){f.setDate(1),f.setHours(0,0,0,0)},function(f,A){f.setMonth(f.getMonth()+A)},function(f,A){return A.getMonth()-f.getMonth()+12*(A.getFullYear()-f.getFullYear())},function(f){return f.getMonth()}));var ur=$r(function(f){f.setMonth(0,1),f.setHours(0,0,0,0)},function(f,A){f.setFullYear(f.getFullYear()+A)},function(f,A){return A.getFullYear()-f.getFullYear()},function(f){return f.getFullYear()});ur.every=function(f){return isFinite(f=Math.floor(f))&&f>0?$r(function(A){A.setFullYear(Math.floor(A.getFullYear()/f)*f),A.setMonth(0,1),A.setHours(0,0,0,0)},function(A,n){A.setFullYear(A.getFullYear()+n*f)}):null};const ka=ur;const Qs=$r(function(f){f.setUTCSeconds(0,0)},function(f,A){f.setTime(+f+A*Ha)},function(f,A){return(A-f)/Ha},function(f){return f.getUTCMinutes()});const ho=$r(function(f){f.setUTCMinutes(0,0,0)},function(f,A){f.setTime(+f+A*Ms)},function(f,A){return(A-f)/Ms},function(f){return f.getUTCHours()});const C0=$r(function(f){f.setUTCHours(0,0,0,0)},function(f,A){f.setUTCDate(f.getUTCDate()+A)},function(f,A){return(A-f)/zs},function(f){return f.getUTCDate()-1});function hl(f){return $r(function(A){A.setUTCDate(A.getUTCDate()-(A.getUTCDay()+7-f)%7),A.setUTCHours(0,0,0,0)},function(A,n){A.setUTCDate(A.getUTCDate()+7*n)},function(A,n){return(n-A)/yc})}var M0=hl(0),y1=hl(1),dl=(hl(2),hl(3),hl(4));const B4=(hl(5),hl(6),$r(function(f){f.setUTCDate(1),f.setUTCHours(0,0,0,0)},function(f,A){f.setUTCMonth(f.getUTCMonth()+A)},function(f,A){return A.getUTCMonth()-f.getUTCMonth()+12*(A.getUTCFullYear()-f.getUTCFullYear())},function(f){return f.getUTCMonth()}));var ul=$r(function(f){f.setUTCMonth(0,1),f.setUTCHours(0,0,0,0)},function(f,A){f.setUTCFullYear(f.getUTCFullYear()+A)},function(f,A){return A.getUTCFullYear()-f.getUTCFullYear()},function(f){return f.getUTCFullYear()});ul.every=function(f){return isFinite(f=Math.floor(f))&&f>0?$r(function(A){A.setUTCFullYear(Math.floor(A.getUTCFullYear()/f)*f),A.setUTCMonth(0,1),A.setUTCHours(0,0,0,0)},function(A,n){A.setUTCFullYear(A.getUTCFullYear()+n*f)}):null};const fl=ul;function Zl(f,A,n,d,k,H){const ce=[[cl,1,lo],[cl,5,5e3],[cl,15,15e3],[cl,30,3e4],[H,1,Ha],[H,5,5*Ha],[H,15,15*Ha],[H,30,30*Ha],[k,1,Ms],[k,3,3*Ms],[k,6,6*Ms],[k,12,12*Ms],[d,1,zs],[d,2,2*zs],[n,1,yc],[A,1,f1],[A,3,3*f1],[f,1,bc]];function dt(pt,Dt,Ht){const Zt=Math.abs(Dt-pt)/Ht,ni=mc(([,,hi])=>hi).right(ce,Zt);if(ni===ce.length)return f.every(Ho(pt/bc,Dt/bc,Ht));if(0===ni)return b0.every(Math.max(Ho(pt,Dt,Ht),1));const[bi,Bi]=ce[Zt/ce[ni-1][2][A.toLowerCase(),n]))}function yh(f,A,n){var d=Qa.exec(A.slice(n,n+1));return d?(f.w=+d[0],n+d[0].length):-1}function x1(f,A,n){var d=Qa.exec(A.slice(n,n+1));return d?(f.u=+d[0],n+d[0].length):-1}function bh(f,A,n){var d=Qa.exec(A.slice(n,n+2));return d?(f.U=+d[0],n+d[0].length):-1}function A0(f,A,n){var d=Qa.exec(A.slice(n,n+2));return d?(f.V=+d[0],n+d[0].length):-1}function $u(f,A,n){var d=Qa.exec(A.slice(n,n+2));return d?(f.W=+d[0],n+d[0].length):-1}function ha(f,A,n){var d=Qa.exec(A.slice(n,n+4));return d?(f.y=+d[0],n+d[0].length):-1}function E0(f,A,n){var d=Qa.exec(A.slice(n,n+2));return d?(f.y=+d[0]+(+d[0]>68?1900:2e3),n+d[0].length):-1}function ef(f,A,n){var d=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(A.slice(n,n+6));return d?(f.Z=d[1]?0:-(d[2]+(d[3]||"00")),n+d[0].length):-1}function T0(f,A,n){var d=Qa.exec(A.slice(n,n+1));return d?(f.q=3*d[0]-3,n+d[0].length):-1}function xh(f,A,n){var d=Qa.exec(A.slice(n,n+2));return d?(f.m=d[0]-1,n+d[0].length):-1}function Ch(f,A,n){var d=Qa.exec(A.slice(n,n+2));return d?(f.d=+d[0],n+d[0].length):-1}function tf(f,A,n){var d=Qa.exec(A.slice(n,n+3));return d?(f.m=0,f.d=+d[0],n+d[0].length):-1}function Mh(f,A,n){var d=Qa.exec(A.slice(n,n+2));return d?(f.H=+d[0],n+d[0].length):-1}function nf(f,A,n){var d=Qa.exec(A.slice(n,n+2));return d?(f.M=+d[0],n+d[0].length):-1}function rf(f,A,n){var d=Qa.exec(A.slice(n,n+2));return d?(f.S=+d[0],n+d[0].length):-1}function Z4(f,A,n){var d=Qa.exec(A.slice(n,n+3));return d?(f.L=+d[0],n+d[0].length):-1}function V4(f,A,n){var d=Qa.exec(A.slice(n,n+6));return d?(f.L=Math.floor(d[0]/1e3),n+d[0].length):-1}function Ec(f,A,n){var d=U4.exec(A.slice(n,n+1));return d?n+d[0].length:-1}function gs(f,A,n){var d=Qa.exec(A.slice(n));return d?(f.Q=+d[0],n+d[0].length):-1}function S0(f,A,n){var d=Qa.exec(A.slice(n));return d?(f.s=+d[0],n+d[0].length):-1}function D0(f,A){return ar(f.getDate(),A,2)}function wh(f,A){return ar(f.getHours(),A,2)}function ls(f,A){return ar(f.getHours()%12||12,A,2)}function Tc(f,A){return ar(1+Us.count(ka(f),f),A,3)}function C1(f,A){return ar(f.getMilliseconds(),A,3)}function af(f,A){return C1(f,A)+"000"}function sf(f,A){return ar(f.getMonth()+1,A,2)}function Ah(f,A){return ar(f.getMinutes(),A,2)}function lf(f,A){return ar(f.getSeconds(),A,2)}function Eh(f){var A=f.getDay();return 0===A?7:A}function Th(f,A){return ar(Uo.count(ka(f)-1,f),A,2)}function L0(f){var A=f.getDay();return A>=4||0===A?Co(f):Co.ceil(f)}function cf(f,A){return f=L0(f),ar(Co.count(ka(f),f)+(4===ka(f).getDay()),A,2)}function hf(f){return f.getDay()}function df(f,A){return ar(co.count(ka(f)-1,f),A,2)}function O0(f,A){return ar(f.getFullYear()%100,A,2)}function uf(f,A){return ar((f=L0(f)).getFullYear()%100,A,2)}function ff(f,A){return ar(f.getFullYear()%1e4,A,4)}function G4(f,A){var n=f.getDay();return ar((f=n>=4||0===n?Co(f):Co.ceil(f)).getFullYear()%1e4,A,4)}function I0(f){var A=f.getTimezoneOffset();return(A>0?"-":(A*=-1,"+"))+ar(A/60|0,"0",2)+ar(A%60,"0",2)}function Sh(f,A){return ar(f.getUTCDate(),A,2)}function pf(f,A){return ar(f.getUTCHours(),A,2)}function Sc(f,A){return ar(f.getUTCHours()%12||12,A,2)}function mf(f,A){return ar(1+C0.count(fl(f),f),A,3)}function Dh(f,A){return ar(f.getUTCMilliseconds(),A,3)}function gf(f,A){return Dh(f,A)+"000"}function _f(f,A){return ar(f.getUTCMonth()+1,A,2)}function vf(f,A){return ar(f.getUTCMinutes(),A,2)}function Lh(f,A){return ar(f.getUTCSeconds(),A,2)}function yf(f){var A=f.getUTCDay();return 0===A?7:A}function bf(f,A){return ar(M0.count(fl(f)-1,f),A,2)}function Oh(f){var A=f.getUTCDay();return A>=4||0===A?dl(f):dl.ceil(f)}function xf(f,A){return f=Oh(f),ar(dl.count(fl(f),f)+(4===fl(f).getUTCDay()),A,2)}function Ih(f){return f.getUTCDay()}function kh(f,A){return ar(y1.count(fl(f)-1,f),A,2)}function Cf(f,A){return ar(f.getUTCFullYear()%100,A,2)}function Mf(f,A){return ar((f=Oh(f)).getUTCFullYear()%100,A,2)}function Vl(f,A){return ar(f.getUTCFullYear()%1e4,A,4)}function uo(f,A){var n=f.getUTCDay();return ar((f=n>=4||0===n?dl(f):dl.ceil(f)).getUTCFullYear()%1e4,A,4)}function W4(){return"+0000"}function wf(){return"%"}function k0(f){return+f}function Af(f){return Math.floor(+f/1e3)}function R0(f){return null===f?NaN:+f}(function(f){var A=f.dateTime,n=f.date,d=f.time,k=f.periods,H=f.days,ce=f.shortDays,Le=f.months,dt=f.shortMonths,pt=wc(k),Dt=Ac(k),Ht=wc(H),Zt=Ac(H),ni=wc(ce),bi=Ac(ce),Bi=wc(Le),hi=Ac(Le),Ui=wc(dt),Gi=Ac(dt),qi={a:function(ln){return ce[ln.getDay()]},A:function(ln){return H[ln.getDay()]},b:function(ln){return dt[ln.getMonth()]},B:function(ln){return Le[ln.getMonth()]},c:null,d:D0,e:D0,f:af,g:uf,G:G4,H:wh,I:ls,j:Tc,L:C1,m:sf,M:Ah,p:function(ln){return k[+(ln.getHours()>=12)]},q:function(ln){return 1+~~(ln.getMonth()/3)},Q:k0,s:Af,S:lf,u:Eh,U:Th,V:cf,w:hf,W:df,x:null,X:null,y:O0,Y:ff,Z:I0,"%":wf},cn={a:function(ln){return ce[ln.getUTCDay()]},A:function(ln){return H[ln.getUTCDay()]},b:function(ln){return dt[ln.getUTCMonth()]},B:function(ln){return Le[ln.getUTCMonth()]},c:null,d:Sh,e:Sh,f:gf,g:Mf,G:uo,H:pf,I:Sc,j:mf,L:Dh,m:_f,M:vf,p:function(ln){return k[+(ln.getUTCHours()>=12)]},q:function(ln){return 1+~~(ln.getUTCMonth()/3)},Q:k0,s:Af,S:Lh,u:yf,U:bf,V:xf,w:Ih,W:kh,x:null,X:null,y:Cf,Y:Vl,Z:W4,"%":wf},un={a:function(ln,Hn,ir){var Yi=ni.exec(Hn.slice(ir));return Yi?(ln.w=bi.get(Yi[0].toLowerCase()),ir+Yi[0].length):-1},A:function(ln,Hn,ir){var Yi=Ht.exec(Hn.slice(ir));return Yi?(ln.w=Zt.get(Yi[0].toLowerCase()),ir+Yi[0].length):-1},b:function(ln,Hn,ir){var Yi=Ui.exec(Hn.slice(ir));return Yi?(ln.m=Gi.get(Yi[0].toLowerCase()),ir+Yi[0].length):-1},B:function(ln,Hn,ir){var Yi=Bi.exec(Hn.slice(ir));return Yi?(ln.m=hi.get(Yi[0].toLowerCase()),ir+Yi[0].length):-1},c:function(ln,Hn,ir){return Qn(ln,A,Hn,ir)},d:Ch,e:Ch,f:V4,g:E0,G:ha,H:Mh,I:Mh,j:tf,L:Z4,m:xh,M:nf,p:function(ln,Hn,ir){var Yi=pt.exec(Hn.slice(ir));return Yi?(ln.p=Dt.get(Yi[0].toLowerCase()),ir+Yi[0].length):-1},q:T0,Q:gs,s:S0,S:rf,u:x1,U:bh,V:A0,w:yh,W:$u,x:function(ln,Hn,ir){return Qn(ln,n,Hn,ir)},X:function(ln,Hn,ir){return Qn(ln,d,Hn,ir)},y:E0,Y:ha,Z:ef,"%":Ec};function tn(ln,Hn){return function(ir){var Rs,zn,va,Yi=[],Ta=-1,Ir=0,ks=ln.length;for(ir instanceof Date||(ir=new Date(+ir));++Ta53)return null;"w"in Yi||(Yi.w=1),"Z"in Yi?(ks=(Ir=_h(pl(Yi.y,0,1))).getUTCDay(),Ir=ks>4||0===ks?y1.ceil(Ir):y1(Ir),Ir=C0.offset(Ir,7*(Yi.V-1)),Yi.y=Ir.getUTCFullYear(),Yi.m=Ir.getUTCMonth(),Yi.d=Ir.getUTCDate()+(Yi.w+6)%7):(ks=(Ir=gh(pl(Yi.y,0,1))).getDay(),Ir=ks>4||0===ks?co.ceil(Ir):co(Ir),Ir=Us.offset(Ir,7*(Yi.V-1)),Yi.y=Ir.getFullYear(),Yi.m=Ir.getMonth(),Yi.d=Ir.getDate()+(Yi.w+6)%7)}else("W"in Yi||"U"in Yi)&&("w"in Yi||(Yi.w="u"in Yi?Yi.u%7:"W"in Yi?1:0),ks="Z"in Yi?_h(pl(Yi.y,0,1)).getUTCDay():gh(pl(Yi.y,0,1)).getDay(),Yi.m=0,Yi.d="W"in Yi?(Yi.w+6)%7+7*Yi.W-(ks+5)%7:Yi.w+7*Yi.U-(ks+6)%7);return"Z"in Yi?(Yi.H+=Yi.Z/100|0,Yi.M+=Yi.Z%100,_h(Yi)):gh(Yi)}}function Qn(ln,Hn,ir,Yi){for(var Rs,zn,Ta=0,Ir=Hn.length,ks=ir.length;Ta=ks)return-1;if(37===(Rs=Hn.charCodeAt(Ta++))){if(Rs=Hn.charAt(Ta++),!(zn=un[Rs in b1?Hn.charAt(Ta++):Rs])||(Yi=zn(ln,ir,Yi))<0)return-1}else if(Rs!=ir.charCodeAt(Yi++))return-1}return Yi}qi.x=tn(n,qi),qi.X=tn(d,qi),qi.c=tn(A,qi),cn.x=tn(n,cn),cn.X=tn(d,cn),cn.c=tn(A,cn)})({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const P0=mc(ol).right,ml=(mc(R0),P0);function N0(f,A){return f=+f,A=+A,function(n){return Math.round(f*(1-n)+A*n)}}function Sf(f){return+f}var E1=[0,1];function Gl(f){return f}function F0(f,A){return(A-=f=+f)?function(n){return(n-f)/A}:function(f){return function(){return f}}(isNaN(A)?NaN:.5)}function Lf(f,A,n){var d=f[0],k=f[1],H=A[0],ce=A[1];return kA&&(n=f,f=A,A=n),function(d){return Math.max(f,Math.min(A,d))}}(f[0],f[Zt-1])),Le=Zt>2?Of:Lf,dt=pt=null,Ht}function Ht(Zt){return null==Zt||isNaN(Zt=+Zt)?H:(dt||(dt=Le(f.map(d),A,n)))(d(ce(Zt)))}return Ht.invert=function(Zt){return ce(k((pt||(pt=Le(A,f.map(d),ye)))(Zt)))},Ht.domain=function(Zt){return arguments.length?(f=Array.from(Zt,Sf),Dt()):f.slice()},Ht.range=function(Zt){return arguments.length?(A=Array.from(Zt),Dt()):A.slice()},Ht.rangeRound=function(Zt){return A=Array.from(Zt),n=N0,Dt()},Ht.clamp=function(Zt){return arguments.length?(ce=!!Zt||Gl,Dt()):ce!==Gl},Ht.interpolate=function(Zt){return arguments.length?(n=Zt,Dt()):n},Ht.unknown=function(Zt){return arguments.length?(H=Zt,Ht):H},function(Zt,ni){return d=Zt,k=ni,Dt()}}()(Gl,Gl)}function gl(f,A){switch(arguments.length){case 0:break;case 1:this.range(f);break;default:this.range(A).domain(f)}return this}var Oc,H0=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Lc(f){if(!(A=H0.exec(f)))throw new Error("invalid format: "+f);var A;return new S1({fill:A[1],align:A[2],sign:A[3],symbol:A[4],zero:A[5],width:A[6],comma:A[7],precision:A[8]&&A[8].slice(1),trim:A[9],type:A[10]})}function S1(f){this.fill=void 0===f.fill?" ":f.fill+"",this.align=void 0===f.align?">":f.align+"",this.sign=void 0===f.sign?"-":f.sign+"",this.symbol=void 0===f.symbol?"":f.symbol+"",this.zero=!!f.zero,this.width=void 0===f.width?void 0:+f.width,this.comma=!!f.comma,this.precision=void 0===f.precision?void 0:+f.precision,this.trim=!!f.trim,this.type=void 0===f.type?"":f.type+""}function L1(f,A){if((n=(f=A?f.toExponential(A-1):f.toExponential()).indexOf("e"))<0)return null;var n,d=f.slice(0,n);return[d.length>1?d[0]+d.slice(2):d,+f.slice(n+1)]}function _l(f){return(f=L1(Math.abs(f)))?f[1]:NaN}function Z0(f,A){var n=L1(f,A);if(!n)return f+"";var d=n[0],k=n[1];return k<0?"0."+new Array(-k).join("0")+d:d.length>k+1?d.slice(0,k+1)+"."+d.slice(k+1):d+new Array(k-d.length+2).join("0")}Lc.prototype=S1.prototype,S1.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};const I1={"%":(f,A)=>(100*f).toFixed(A),b:f=>Math.round(f).toString(2),c:f=>f+"",d:function(f){return Math.abs(f=Math.round(f))>=1e21?f.toLocaleString("en").replace(/,/g,""):f.toString(10)},e:(f,A)=>f.toExponential(A),f:(f,A)=>f.toFixed(A),g:(f,A)=>f.toPrecision(A),o:f=>Math.round(f).toString(8),p:(f,A)=>Z0(100*f,A),r:Z0,s:function(f,A){var n=L1(f,A);if(!n)return f+"";var d=n[0],k=n[1],H=k-(Oc=3*Math.max(-8,Math.min(8,Math.floor(k/3))))+1,ce=d.length;return H===ce?d:H>ce?d+new Array(H-ce+1).join("0"):H>0?d.slice(0,H)+"."+d.slice(H):"0."+new Array(1-H).join("0")+L1(f,Math.max(0,A+H-1))[0]},X:f=>Math.round(f).toString(16).toUpperCase(),x:f=>Math.round(f).toString(16)};function V0(f){return f}var Ic,G0,Vh,k1=Array.prototype.map,Wl=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function Yh(f){var A=f.domain;return f.ticks=function(n){var d=A();return function(f,A,n){var d,H,ce,Le,k=-1;if(n=+n,(f=+f)==(A=+A)&&n>0)return[f];if((d=A0){let dt=Math.round(f/Le),pt=Math.round(A/Le);for(dt*LeA&&--pt,ce=new Array(H=pt-dt+1);++kA&&--pt,ce=new Array(H=pt-dt+1);++k0;){if((pt=Bl(ce,Le,n))===dt)return d[k]=ce,d[H]=Le,A(d);if(pt>0)ce=Math.floor(ce/pt)*pt,Le=Math.ceil(Le/pt)*pt;else{if(!(pt<0))break;ce=Math.ceil(ce*pt)/pt,Le=Math.floor(Le*pt)/pt}dt=pt}return f},f}function Er(){var f=T1();return f.copy=function(){return Fh(f,Er())},gl.apply(f,arguments),Yh(f)}function Y0(f,A,n){f=+f,A=+A,n=(k=arguments.length)<2?(A=f,f=0,1):k<3?1:+n;for(var d=-1,k=0|Math.max(0,Math.ceil((A-f)/n)),H=new Array(k);++d0&&Le>0&&(dt+Le+1>d&&(Le=Math.max(1,d-dt)),H.push(n.substring(k-=Le,k+Le)),!((dt+=Le+1)>d));)Le=f[ce=(ce+1)%f.length];return H.reverse().join(A)}}(k1.call(f.grouping,Number),f.thousands+""),n=void 0===f.currency?"":f.currency[0]+"",d=void 0===f.currency?"":f.currency[1]+"",k=void 0===f.decimal?".":f.decimal+"",H=void 0===f.numerals?V0:function(f){return function(A){return A.replace(/[0-9]/g,function(n){return f[+n]})}}(k1.call(f.numerals,String)),ce=void 0===f.percent?"%":f.percent+"",Le=void 0===f.minus?"\u2212":f.minus+"",dt=void 0===f.nan?"NaN":f.nan+"";function pt(Ht){var Zt=(Ht=Lc(Ht)).fill,ni=Ht.align,bi=Ht.sign,Bi=Ht.symbol,hi=Ht.zero,Ui=Ht.width,Gi=Ht.comma,qi=Ht.precision,cn=Ht.trim,un=Ht.type;"n"===un?(Gi=!0,un="g"):I1[un]||(void 0===qi&&(qi=12),cn=!0,un="g"),(hi||"0"===Zt&&"="===ni)&&(hi=!0,Zt="0",ni="=");var tn="$"===Bi?n:"#"===Bi&&/[boxX]/.test(un)?"0"+un.toLowerCase():"",fr="$"===Bi?d:/[%p]/.test(un)?ce:"",Qn=I1[un],Br=/[defgprs%]/.test(un);function or(dn){var lr,Ea,br,bn=tn,gn=fr;if("c"===un)gn=Qn(dn)+gn,dn="";else{var pr=(dn=+dn)<0||1/dn<0;if(dn=isNaN(dn)?dt:Qn(Math.abs(dn),qi),cn&&(dn=function(f){e:for(var k,A=f.length,n=1,d=-1;n0&&(d=0)}return d>0?f.slice(0,d)+f.slice(k+1):f}(dn)),pr&&0==+dn&&"+"!==bi&&(pr=!1),bn=(pr?"("===bi?bi:Le:"-"===bi||"("===bi?"":bi)+bn,gn=("s"===un?Wl[8+Oc/3]:"")+gn+(pr&&"("===bi?")":""),Br)for(lr=-1,Ea=dn.length;++lr(br=dn.charCodeAt(lr))||br>57){gn=(46===br?k+dn.slice(lr+1):dn.slice(lr))+gn,dn=dn.slice(0,lr);break}}Gi&&!hi&&(dn=A(dn,1/0));var Ua=bn.length+dn.length+gn.length,$n=Ua>1)+bn+dn+gn+$n.slice(Ua);break;default:dn=$n+bn+dn+gn}return H(dn)}return qi=void 0===qi?6:/[gprs]/.test(un)?Math.max(1,Math.min(21,qi)):Math.max(0,Math.min(20,qi)),or.toString=function(){return Ht+""},or}return{format:pt,formatPrefix:function(Ht,Zt){var ni=pt(((Ht=Lc(Ht)).type="f",Ht)),bi=3*Math.max(-8,Math.min(8,Math.floor(_l(Zt)/3))),Bi=Math.pow(10,-bi),hi=Wl[8+bi/3];return function(Ui){return ni(Bi*Ui)+hi}}}}({thousands:",",grouping:[3],currency:["$",""]}),G0=Ic.format,Vh=Ic.formatPrefix;const jh=Symbol("implicit");function R1(){var f=new Map,A=[],n=[],d=jh;function k(H){var ce=H+"",Le=f.get(ce);if(!Le){if(d!==jh)return d;f.set(ce,Le=A.push(H))}return n[(Le-1)%n.length]}return k.domain=function(H){if(!arguments.length)return A.slice();A=[],f=new Map;for(const ce of H){const Le=ce+"";f.has(Le)||f.set(Le,A.push(ce))}return k},k.range=function(H){return arguments.length?(n=Array.from(H),k):n.slice()},k.unknown=function(H){return arguments.length?(d=H,k):d},k.copy=function(){return R1(A,n).unknown(d)},gl.apply(k,arguments),k}function Tr(){var H,ce,f=R1().unknown(void 0),A=f.domain,n=f.range,d=0,k=1,Le=!1,dt=0,pt=0,Dt=.5;function Ht(){var Zt=A().length,ni=k=1)return+n(f[d-1],d-1,f);var d,k=(d-1)*A,H=Math.floor(k),ce=+n(f[H],H,f);return ce+(+n(f[H+1],H+1,f)-ce)*(k-H)}}function Qh(){var d,f=[],A=[],n=[];function k(){var ce=0,Le=Math.max(1,A.length);for(n=new Array(Le-1);++ce0?n[Le-1]:f[0],Le=0;)A+=n[d].value;else A=1;f.value=A}function ud(f,A){f instanceof Map?(f=[void 0,f],void 0===A&&(A=n3)):void 0===A&&(A=i3);for(var d,H,ce,Le,dt,n=new zc(f),k=[n];d=k.pop();)if((ce=A(d.data))&&(dt=(ce=Array.from(ce)).length))for(d.children=ce,Le=dt-1;Le>=0;--Le)k.push(H=ce[Le]=new zc(ce[Le])),H.parent=d,H.depth=d.depth+1;return n.eachBefore(Kf)}function i3(f){return f.children}function n3(f){return Array.isArray(f)?f[1]:null}function fd(f){void 0!==f.data.value&&(f.value=f.data.value),f.data=f.data.data}function Kf(f){var A=0;do{f.height=A}while((f=f.parent)&&f.height<++A)}function zc(f){this.data=f,this.depth=this.height=0,this.parent=null}Es.prototype=function(){return new Es}.prototype={constructor:Es,moveTo:function(f,A){this._+="M"+(this._x0=this._x1=+f)+","+(this._y0=this._y1=+A)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(f,A){this._+="L"+(this._x1=+f)+","+(this._y1=+A)},quadraticCurveTo:function(f,A,n,d){this._+="Q"+ +f+","+ +A+","+(this._x1=+n)+","+(this._y1=+d)},bezierCurveTo:function(f,A,n,d,k,H){this._+="C"+ +f+","+ +A+","+ +n+","+ +d+","+(this._x1=+k)+","+(this._y1=+H)},arcTo:function(f,A,n,d,k){var H=this._x1,ce=this._y1,Le=(n=+n)-(f=+f),dt=(d=+d)-(A=+A),pt=H-f,Dt=ce-A,Ht=pt*pt+Dt*Dt;if((k=+k)<0)throw new Error("negative radius: "+k);if(null===this._x1)this._+="M"+(this._x1=f)+","+(this._y1=A);else if(Ht>jo)if(Math.abs(Dt*Le-dt*pt)>jo&&k){var Zt=n-H,ni=d-ce,bi=Le*Le+dt*dt,Bi=Zt*Zt+ni*ni,hi=Math.sqrt(bi),Ui=Math.sqrt(Ht),Gi=k*Math.tan((B1-Math.acos((bi+Ht-Bi)/(2*hi*Ui)))/2),qi=Gi/Ui,cn=Gi/hi;Math.abs(qi-1)>jo&&(this._+="L"+(f+qi*pt)+","+(A+qi*Dt)),this._+="A"+k+","+k+",0,0,"+ +(Dt*Zt>pt*ni)+","+(this._x1=f+cn*Le)+","+(this._y1=A+cn*dt)}else this._+="L"+(this._x1=f)+","+(this._y1=A)},arc:function(f,A,n,d,k,H){f=+f,A=+A,H=!!H;var ce=(n=+n)*Math.cos(d),Le=n*Math.sin(d),dt=f+ce,pt=A+Le,Dt=1^H,Ht=H?d-k:k-d;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+dt+","+pt:(Math.abs(this._x1-dt)>jo||Math.abs(this._y1-pt)>jo)&&(this._+="L"+dt+","+pt),n&&(Ht<0&&(Ht=Ht%H1+H1),Ht>z1?this._+="A"+n+","+n+",0,1,"+Dt+","+(f-ce)+","+(A-Le)+"A"+n+","+n+",0,1,"+Dt+","+(this._x1=dt)+","+(this._y1=pt):Ht>jo&&(this._+="A"+n+","+n+",0,"+ +(Ht>=B1)+","+Dt+","+(this._x1=f+n*Math.cos(k))+","+(this._y1=A+n*Math.sin(k))))},rect:function(f,A,n,d){this._+="M"+(this._x0=this._x1=+f)+","+(this._y0=this._y1=+A)+"h"+ +n+"v"+ +d+"h"+-n+"Z"},toString:function(){return this._}},Rc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Yl(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(f,A){switch(f=+f,A=+A,this._point){case 0:this._point=1,this._line?this._context.lineTo(f,A):this._context.moveTo(f,A);break;case 1:this._point=2,this._x1=f,this._y1=A;break;case 2:this._point=3;default:Yl(this,f,A)}this._x0=this._x1,this._x1=this._x2,this._x2=f,this._y0=this._y1,this._y1=this._y2,this._y2=A}},function f(A){function n(d){return new Rc(d,A)}return n.tension=function(d){return f(+d)},n}(0),Pc.prototype={areaStart:Nf,areaEnd:Nf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(f,A){switch(f=+f,A=+A,this._point){case 0:this._point=1,this._x3=f,this._y3=A;break;case 1:this._point=2,this._context.moveTo(this._x4=f,this._y4=A);break;case 2:this._point=3,this._x5=f,this._y5=A;break;default:Yl(this,f,A)}this._x0=this._x1,this._x1=this._x2,this._x2=f,this._y0=this._y1,this._y1=this._y2,this._y2=A}},function f(A){function n(d){return new Pc(d,A)}return n.tension=function(d){return f(+d)},n}(0),function(f){function A(n){return new $h(f(n))}A._curve=f}(function(f){return new Jh(f)}),$h.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(f,A){this._curve.point(A*Math.sin(f),A*-Math.cos(f))}},Math,Math,Math,Math,Math,Math,Math,Math,Math,m(7293),function f(A){function n(d,k,H,ce,Le){!function(f,A,n,d,k,H){for(var dt,pt,ni,bi,hi,Ui,Gi,qi,cn,un,tn,ce=[],Le=A.children,Dt=0,Ht=0,Zt=Le.length,Bi=A.value;DtGi&&(Gi=pt),tn=hi*hi*un,(qi=Math.max(Gi/tn,tn/Ui))>cn){hi-=pt;break}cn=qi}ce.push(dt={value:hi,dice:ni1?d:1)},n}((1+Math.sqrt(5))/2),zc.prototype=ud.prototype={constructor:zc,count:function(){return this.eachAfter(sd)},each:function(f,A){let n=-1;for(const d of this)f.call(A,d,++n,this);return this},eachAfter:function(f,A){for(var H,ce,Le,n=this,d=[n],k=[],dt=-1;n=d.pop();)if(k.push(n),H=n.children)for(ce=0,Le=H.length;ce=0;--H)d.push(k[H]);return this},find:function(f,A){let n=-1;for(const d of this)if(f.call(A,d,++n,this))return d},sum:function(f){return this.eachAfter(function(A){for(var n=+f(A.data)||0,d=A.children,k=d&&d.length;--k>=0;)n+=d[k].value;A.value=n})},sort:function(f){return this.eachBefore(function(A){A.children&&A.children.sort(f)})},path:function(f){for(var A=this,n=function(f,A){if(f===A)return f;var n=f.ancestors(),d=A.ancestors(),k=null;for(f=n.pop(),A=d.pop();f===A;)k=f,f=n.pop(),A=d.pop();return k}(A,f),d=[A];A!==n;)d.push(A=A.parent);for(var k=d.length;f!==n;)d.splice(k,0,f),f=f.parent;return d},ancestors:function(){for(var f=this,A=[f];f=f.parent;)A.push(f);return A},descendants:function(){return Array.from(this)},leaves:function(){var f=[];return this.eachBefore(function(A){A.children||f.push(A)}),f},links:function(){var f=this,A=[];return f.each(function(n){n!==f&&A.push({source:n.parent,target:n})}),A},copy:function(){return ud(this).eachBefore(fd)},[Symbol.iterator]:function*(){var A,d,k,H,f=this,n=[f];do{for(A=n.reverse(),n=[];f=A.pop();)if(yield f,d=f.children)for(k=0,H=d.length;k{class f{constructor(n,d,k){this.applicationRef=n,this.componentFactoryResolver=d,this.injector=k}static setGlobalRootViewContainer(n){f.globalRootViewContainer=n}getRootViewContainer(){if(this._container)return this._container;if(f.globalRootViewContainer)return f.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(n){this._container=n}getComponentRootNode(n){return function(f){return f.element}(n)?n.element.nativeElement:n.hostView&&n.hostView.rootNodes.length>0?n.hostView.rootNodes[0]:n.location.nativeElement}getRootViewContainerNode(n){return this.getComponentRootNode(n)}projectComponentBindings(n,d){if(d){if(void 0!==d.inputs){const k=Object.getOwnPropertyNames(d.inputs);for(const H of k)n.instance[H]=d.inputs[H]}if(void 0!==d.outputs){const k=Object.getOwnPropertyNames(d.outputs);for(const H of k)n.instance[H]=d.outputs[H]}}return n}appendComponent(n,d={},k){k||(k=this.getRootViewContainer());const H=this.getComponentRootNode(k),ce=new v.u0(H,this.componentFactoryResolver,this.applicationRef,this.injector),Le=new v.C5(n),dt=ce.attach(Le);return this.projectComponentBindings(dt,d),dt}}return f.\u0275fac=function(n){return new(n||f)(e.LFG(e.z2F),e.LFG(e._Vd),e.LFG(e.zs3))},f.\u0275prov=e.Yz7({token:f,factory:f.\u0275fac}),f.globalRootViewContainer=null,f})();function H2(f,A,n){n=n||{};let d,k,H,ce=null,Le=0;function dt(){Le=!1===n.leading?0:+new Date,ce=null,H=f.apply(d,k)}return function(){const pt=+new Date;!Le&&!1===n.leading&&(Le=pt);const Dt=A-(pt-Le);return d=this,k=arguments,Dt<=0?(clearTimeout(ce),ce=null,Le=pt,H=f.apply(d,k)):!ce&&!1!==n.trailing&&(ce=setTimeout(dt,Dt)),H}}function l4(f,A){return function(d,k,H){return{configurable:!0,enumerable:H.enumerable,get:function(){return Object.defineProperty(this,k,{configurable:!0,enumerable:H.enumerable,value:H2(H.value,f,A)}),this[k]}}}}var Dn=(()=>{return(f=Dn||(Dn={})).Top="top",f.Bottom="bottom",f.Left="left",f.Right="right",f.Center="center",Dn;var f})();function t0(f,A,n){return n===Dn.Top?f.top-7:n===Dn.Bottom?f.top+f.height-A.height+7:n===Dn.Center?f.top+f.height/2-A.height/2:void 0}function z2(f,A,n){return n===Dn.Left?f.left-7:n===Dn.Right?f.left+f.width-A.width+7:n===Dn.Center?f.left+f.width/2-A.width/2:void 0}class Ss{static calculateVerticalAlignment(A,n,d){let k=t0(A,n,d);return k+n.height>window.innerHeight&&(k=window.innerHeight-n.height),k}static calculateVerticalCaret(A,n,d,k){let H;k===Dn.Top&&(H=A.height/2-d.height/2+7),k===Dn.Bottom&&(H=n.height-A.height/2-d.height/2-7),k===Dn.Center&&(H=n.height/2-d.height/2);const ce=t0(A,n,k);return ce+n.height>window.innerHeight&&(H+=ce+n.height-window.innerHeight),H}static calculateHorizontalAlignment(A,n,d){let k=z2(A,n,d);return k+n.width>window.innerWidth&&(k=window.innerWidth-n.width),k}static calculateHorizontalCaret(A,n,d,k){let H;k===Dn.Left&&(H=A.width/2-d.width/2+7),k===Dn.Right&&(H=n.width-A.width/2-d.width/2-7),k===Dn.Center&&(H=n.width/2-d.width/2);const ce=z2(A,n,k);return ce+n.width>window.innerWidth&&(H+=ce+n.width-window.innerWidth),H}static shouldFlip(A,n,d,k){let H=!1;return d===Dn.Right&&A.left+A.width+n.width+k>window.innerWidth&&(H=!0),d===Dn.Left&&A.left-n.width-k<0&&(H=!0),d===Dn.Top&&A.top-n.height-k<0&&(H=!0),d===Dn.Bottom&&A.top+A.height+n.height+k>window.innerHeight&&(H=!0),H}static positionCaret(A,n,d,k,H){let ce=0,Le=0;return A===Dn.Right?(Le=-7,ce=Ss.calculateVerticalCaret(d,n,k,H)):A===Dn.Left?(Le=n.width,ce=Ss.calculateVerticalCaret(d,n,k,H)):A===Dn.Top?(ce=n.height,Le=Ss.calculateHorizontalCaret(d,n,k,H)):A===Dn.Bottom&&(ce=-7,Le=Ss.calculateHorizontalCaret(d,n,k,H)),{top:ce,left:Le}}static positionContent(A,n,d,k,H){let ce=0,Le=0;return A===Dn.Right?(Le=d.left+d.width+k,ce=Ss.calculateVerticalAlignment(d,n,H)):A===Dn.Left?(Le=d.left-n.width-k,ce=Ss.calculateVerticalAlignment(d,n,H)):A===Dn.Top?(ce=d.top-n.height-k,Le=Ss.calculateHorizontalAlignment(d,n,H)):A===Dn.Bottom&&(ce=d.top+d.height+k,Le=Ss.calculateHorizontalAlignment(d,n,H)),{top:ce,left:Le}}static determinePlacement(A,n,d,k){if(Ss.shouldFlip(d,n,A,k)){if(A===Dn.Right)return Dn.Left;if(A===Dn.Left)return Dn.Right;if(A===Dn.Top)return Dn.Bottom;if(A===Dn.Bottom)return Dn.Top}return A}}let gu=(()=>{class f{constructor(n,d,k){this.element=n,this.renderer=d,this.platformId=k}get cssClasses(){let n="ngx-charts-tooltip-content";return n+=` position-${this.placement}`,n+=` type-${this.type}`,n+=` ${this.cssClass}`,n}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){if(!(0,t.NF)(this.platformId))return;const n=this.element.nativeElement,d=this.host.nativeElement.getBoundingClientRect();if(!d.height&&!d.width)return;const k=n.getBoundingClientRect();this.checkFlip(d,k),this.positionContent(n,d,k),this.showCaret&&this.positionCaret(d,k),setTimeout(()=>this.renderer.addClass(n,"animate"),1)}positionContent(n,d,k){const{top:H,left:ce}=Ss.positionContent(this.placement,k,d,this.spacing,this.alignment);this.renderer.setStyle(n,"top",`${H}px`),this.renderer.setStyle(n,"left",`${ce}px`)}positionCaret(n,d){const k=this.caretElm.nativeElement,H=k.getBoundingClientRect(),{top:ce,left:Le}=Ss.positionCaret(this.placement,d,n,H,this.alignment);this.renderer.setStyle(k,"top",`${ce}px`),this.renderer.setStyle(k,"left",`${Le}px`)}checkFlip(n,d){this.placement=Ss.determinePlacement(this.placement,d,n,this.spacing)}onWindowResize(){this.position()}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(e.SBq),e.Y36(e.Qsj),e.Y36(e.Lbi))},f.\u0275cmp=e.Xpm({type:f,selectors:[["ngx-tooltip-content"]],viewQuery:function(n,d){if(1&n&&e.Gf(md,5),2&n){let k;e.iGM(k=e.CRH())&&(d.caretElm=k.first)}},hostVars:2,hostBindings:function(n,d){1&n&&e.NdJ("resize",function(){return d.onWindowResize()},!1,e.Jf7),2&n&&e.Tol(d.cssClasses)},inputs:{placement:"placement",host:"host",showCaret:"showCaret",type:"type",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[[3,"hidden"],["caretElm",""],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(n,d){1&n&&(e.TgZ(0,"div"),e._UZ(1,"span",0,1),e.TgZ(3,"div",2),e.YNc(4,$f,2,4,"span",3),e.YNc(5,e6,1,1,"span",4),e.qZA(),e.qZA()),2&n&&(e.xp6(1),e.Gre("tooltip-caret position-",d.placement,""),e.Q6J("hidden",!d.showCaret),e.xp6(3),e.Q6J("ngIf",!d.title),e.xp6(1),e.Q6J("ngIf",d.title))},directives:[t.O5,t.tP],styles:[".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:normal;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\n"],encapsulation:2}),(0,M.gn)([l4(100)],f.prototype,"onWindowResize",null),f})(),Wc=(()=>{class f extends class{constructor(A){this.injectionService=A,this.defaults={},this.components=new Map}getByType(A=this.type){return this.components.get(A)}create(A){return this.createByType(this.type,A)}createByType(A,n){n=this.assignDefaults(n);const d=this.injectComponent(A,n);return this.register(A,d),d}destroy(A){const n=this.components.get(A.componentType);if(n&&n.length){const d=n.indexOf(A);d>-1&&(n[d].destroy(),n.splice(d,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(A){const n=this.components.get(A);if(n&&n.length){let d=n.length-1;for(;d>=0;)this.destroy(n[d--])}}injectComponent(A,n){return this.injectionService.appendComponent(A,n)}assignDefaults(A){const n=Object.assign({},this.defaults.inputs),d=Object.assign({},this.defaults.outputs);return!A.inputs&&!A.outputs&&(A={inputs:A}),n&&(A.inputs=Object.assign(Object.assign({},n),A.inputs)),d&&(A.outputs=Object.assign(Object.assign({},d),A.outputs)),A}register(A,n){this.components.has(A)||this.components.set(A,[]),this.components.get(A).push(n)}}{constructor(n){super(n),this.type=gu}}return f.\u0275fac=function(n){return new(n||f)(e.LFG(e0))},f.\u0275prov=e.Yz7({token:f,factory:f.\u0275fac}),f})();var yr=(()=>{return(f=yr||(yr={})).Right="right",f.Below="below",yr;var f})(),Qo=(()=>{return(f=Qo||(Qo={})).ScaleLegend="scaleLegend",f.Legend="legend",Qo;var f})(),_i=(()=>{return(f=_i||(_i={})).Time="time",f.Linear="linear",f.Ordinal="ordinal",f.Quantile="quantile",_i;var f})();let Wr=(()=>{class f{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new e.vpe,this.legendLabelActivate=new e.vpe,this.legendLabelDeactivate=new e.vpe,this.LegendPosition=yr,this.LegendType=Qo}ngOnChanges(n){this.update()}update(){let n=0;this.showLegend&&(this.legendType=this.getLegendType(),(!this.legendOptions||this.legendOptions.position===yr.Right)&&(n=this.legendType===Qo.ScaleLegend?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-n)/12),this.legendWidth=this.legendOptions&&this.legendOptions.position!==yr.Right?this.chartWidth:Math.floor(this.view[0]*n/12)}getLegendType(){return this.legendOptions.scaleType===_i.Linear?Qo.ScaleLegend:Qo.Legend}}return f.\u0275fac=function(n){return new(n||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["ngx-charts-chart"]],inputs:{showLegend:"showLegend",animations:"animations",legendType:"legendType",view:"view",legendOptions:"legendOptions",activeEntries:"activeEntries"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[e._Bn([Wc]),e.TTD],ngContentSelectors:yd,decls:5,vars:6,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate"]],template:function(n,d){1&n&&(e.F$t(),e.TgZ(0,"div",0),e.O4$(),e.TgZ(1,"svg",1),e.Hsn(2),e.qZA(),e.YNc(3,_d,1,5,"ngx-charts-scale-legend",2),e.YNc(4,vd,1,7,"ngx-charts-legend",3),e.qZA()),2&n&&(e.Udp("width",d.view[0],"px"),e.xp6(1),e.uIk("width",d.chartWidth)("height",d.view[1]),e.xp6(2),e.Q6J("ngIf",d.showLegend&&d.legendType===d.LegendType.ScaleLegend),e.xp6(1),e.Q6J("ngIf",d.showLegend&&d.legendType===d.LegendType.Legend))},directives:function(){return[t.O5,q2,j2]},encapsulation:2,changeDetection:0}),f})(),vu=(()=>{class f{constructor(n,d){this.element=n,this.zone=d,this.visible=new e.vpe,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const n=()=>{if(!this.element)return;const{offsetHeight:d,offsetWidth:k}=this.element.nativeElement;d&&k?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>n(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>n())})}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(e.SBq),e.Y36(e.R0b))},f.\u0275dir=e.lG2({type:f,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),f})();function Yc(f){return"[object Date]"===toString.call(f)}let Yr=(()=>{class f{constructor(n,d,k,H){this.chartElement=n,this.zone=d,this.cd=k,this.platformId=H,this.scheme="cool",this.schemeType=_i.Ordinal,this.animations=!0,this.select=new e.vpe}ngOnInit(){(0,t.PM)(this.platformId)&&(this.animations=!1)}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new vu(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(n){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const n=this.getContainerDims();n&&(this.width=n.width,this.height=n.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let n,d;const k=this.chartElement.nativeElement;if((0,t.NF)(this.platformId)&&null!==k.parentNode){const H=k.parentNode.getBoundingClientRect();n=H.width,d=H.height}return n&&d?{width:n,height:d}:null}formatDates(){for(let n=0;n{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=d}cloneData(n){const d=[];for(const k of n){const H={name:k.name};if(void 0!==k.value&&(H.value=k.value),void 0!==k.series){H.series=[];for(const ce of k.series){const Le=Object.assign({},ce);H.series.push(Le)}}void 0!==k.extra&&(H.extra=JSON.parse(JSON.stringify(k.extra))),d.push(H)}return d}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(e.sBO),e.Y36(e.Lbi))},f.\u0275cmp=e.Xpm({type:f,selectors:[["base-chart"]],inputs:{scheme:"scheme",schemeType:"schemeType",animations:"animations",results:"results",view:"view",customColors:"customColors"},outputs:{select:"select"},features:[e.TTD],decls:1,vars:0,template:function(n,d){1&n&&e._UZ(0,"div")},encapsulation:2}),f})();var ga=(()=>{return(f=ga||(ga={})).Top="top",f.Bottom="bottom",f.Left="left",f.Right="right",ga;var f})();let yu=(()=>{class f{constructor(n){this.textHeight=25,this.margin=5,this.element=n.nativeElement}ngOnChanges(n){this.update()}update(){switch(this.strokeWidth="0.01",this.textAnchor="middle",this.transform="",this.orient){case ga.Top:case ga.Bottom:this.y=this.offset,this.x=this.width/2;break;case ga.Left:this.y=-(this.offset+this.textHeight+this.margin),this.x=-this.height/2,this.transform="rotate(270)";break;case ga.Right:this.y=this.offset+this.margin,this.x=-this.height/2,this.transform="rotate(270)"}}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-axis-label",""]],inputs:{orient:"orient",label:"label",offset:"offset",width:"width",height:"height"},features:[e.TTD],attrs:po,decls:2,vars:6,template:function(n,d){1&n&&(e.O4$(),e.TgZ(0,"text"),e._uU(1),e.qZA()),2&n&&(e.uIk("stroke-width",d.strokeWidth)("x",d.x)("y",d.y)("text-anchor",d.textAnchor)("transform",d.transform),e.xp6(1),e.hij(" ",d.label," "))},encapsulation:2,changeDetection:0}),f})();function Jo(f,A=16){return"string"!=typeof f?"number"==typeof f?f+"":"":(f=f.trim()).length<=A?f:`${f.slice(0,A)}...`}function bu(f,A){if(f.length>A){const n=[],d=Math.floor(f.length/A);for(let k=0;k{return(f=Xa||(Xa={})).Start="start",f.Middle="middle",f.End="end",Xa;var f})();let xu=(()=>{class f{constructor(n){this.platformId=n,this.tickArguments=[5],this.tickStroke="#ccc",this.trimTicks=!0,this.maxTickLength=16,this.showGridLines=!1,this.rotateTicks=!0,this.dimensionsChanged=new e.vpe,this.verticalSpacing=20,this.rotateLabels=!1,this.innerTickSize=6,this.outerTickSize=6,this.tickPadding=3,this.textAnchor=Xa.Middle,this.maxTicksLength=0,this.maxAllowedLength=16,this.height=0,this.approxHeight=10}ngOnChanges(n){this.update()}ngAfterViewInit(){setTimeout(()=>this.updateDims())}updateDims(){if(!(0,t.NF)(this.platformId))return void this.dimensionsChanged.emit({height:this.approxHeight});const n=parseInt(this.ticksElement.nativeElement.getBoundingClientRect().height,10);n!==this.height&&(this.height=n,this.dimensionsChanged.emit({height:this.height}),setTimeout(()=>this.updateDims()))}update(){const n=this.scale;this.ticks=this.getTicks(),this.tickFormat=this.tickFormatting?this.tickFormatting:n.tickFormat?n.tickFormat.apply(n,this.tickArguments):function(k){return"Date"===k.constructor.name?k.toLocaleDateString():k.toLocaleString()};const d=this.rotateTicks?this.getRotationAngle(this.ticks):null;this.adjustedScale=this.scale.bandwidth?function(k){return this.scale(k)+.5*this.scale.bandwidth()}:this.scale,this.textTransform="",d&&0!==d?(this.textTransform=`rotate(${d})`,this.textAnchor=Xa.End,this.verticalSpacing=10):this.textAnchor=Xa.Middle,setTimeout(()=>this.updateDims())}getRotationAngle(n){let d=0;this.maxTicksLength=0;for(let pt=0;ptthis.maxTicksLength&&(this.maxTicksLength=Ht)}const ce=7*Math.min(this.maxTicksLength,this.maxAllowedLength);let Le=ce;const dt=Math.floor(this.width/n.length);for(;Le>dt&&d>-90;)d-=30,Le=Math.cos(d*(Math.PI/180))*ce;return this.approxHeight=Math.max(Math.abs(Math.sin(d*(Math.PI/180))*ce),10),d}getTicks(){let n;const d=this.getMaxTicks(20),k=this.getMaxTicks(100);return this.tickValues?n=this.tickValues:this.scale.ticks?n=this.scale.ticks.apply(this.scale,[k]):(n=this.scale.domain(),n=bu(n,d)),n}getMaxTicks(n){return Math.floor(this.width/n)}tickTransform(n){return"translate("+this.adjustedScale(n)+","+this.verticalSpacing+")"}gridLineTransform(){return`translate(0,${-this.verticalSpacing-5})`}tickTrim(n){return this.trimTicks?Jo(n,this.maxTickLength):n}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(e.Lbi))},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-x-axis-ticks",""]],viewQuery:function(n,d){if(1&n&&e.Gf(W1,5),2&n){let k;e.iGM(k=e.CRH())&&(d.ticksElement=k.first)}},inputs:{tickArguments:"tickArguments",tickStroke:"tickStroke",trimTicks:"trimTicks",maxTickLength:"maxTickLength",showGridLines:"showGridLines",rotateTicks:"rotateTicks",scale:"scale",orient:"orient",tickValues:"tickValues",tickFormatting:"tickFormatting",gridLineHeight:"gridLineHeight",width:"width"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[e.TTD],attrs:t6,decls:4,vars:2,consts:[["ticksel",""],["class","tick",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"tick"],["stroke-width","0.01"],[4,"ngIf"],["y2","0",1,"gridline-path","gridline-path-vertical"]],template:function(n,d){1&n&&(e.O4$(),e.TgZ(0,"g",null,0),e.YNc(2,i6,5,7,"g",1),e.qZA(),e.YNc(3,bd,2,2,"g",2)),2&n&&(e.xp6(2),e.Q6J("ngForOf",d.ticks),e.xp6(1),e.Q6J("ngForOf",d.ticks))},directives:[t.sg,t.O5],encapsulation:2,changeDetection:0}),f})(),tr=(()=>{class f{constructor(){this.rotateTicks=!0,this.showGridLines=!1,this.xOrient=ga.Bottom,this.xAxisOffset=0,this.dimensionsChanged=new e.vpe,this.xAxisClassName="x axis",this.labelOffset=0,this.fill="none",this.stroke="stroke",this.tickStroke="#ccc",this.strokeWidth="none",this.padding=5,this.orientation=ga}ngOnChanges(n){this.update()}update(){this.transform=`translate(0,${this.xAxisOffset+this.padding+this.dims.height})`,void 0!==this.xAxisTickCount&&(this.tickArguments=[this.xAxisTickCount])}emitTicksHeight({height:n}){const d=n+25+5;d!==this.labelOffset&&(this.labelOffset=d,setTimeout(()=>{this.dimensionsChanged.emit({height:n})},0))}}return f.\u0275fac=function(n){return new(n||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-x-axis",""]],viewQuery:function(n,d){if(1&n&&e.Gf(xu,5),2&n){let k;e.iGM(k=e.CRH())&&(d.ticksComponent=k.first)}},inputs:{rotateTicks:"rotateTicks",showGridLines:"showGridLines",xOrient:"xOrient",xAxisOffset:"xAxisOffset",xScale:"xScale",dims:"dims",trimTicks:"trimTicks",maxTickLength:"maxTickLength",tickFormatting:"tickFormatting",showLabel:"showLabel",labelText:"labelText",ticks:"ticks",xAxisTickCount:"xAxisTickCount"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[e.TTD],attrs:n6,decls:3,vars:4,consts:[["ngx-charts-x-axis-ticks","",3,"trimTicks","rotateTicks","maxTickLength","tickFormatting","tickArguments","tickStroke","scale","orient","showGridLines","gridLineHeight","width","tickValues","dimensionsChanged",4,"ngIf"],["ngx-charts-axis-label","",3,"label","offset","orient","height","width",4,"ngIf"],["ngx-charts-x-axis-ticks","",3,"trimTicks","rotateTicks","maxTickLength","tickFormatting","tickArguments","tickStroke","scale","orient","showGridLines","gridLineHeight","width","tickValues","dimensionsChanged"],["ngx-charts-axis-label","",3,"label","offset","orient","height","width"]],template:function(n,d){1&n&&(e.O4$(),e.TgZ(0,"g"),e.YNc(1,r6,1,12,"g",0),e.YNc(2,xd,1,5,"g",1),e.qZA()),2&n&&(e.uIk("class",d.xAxisClassName)("transform",d.transform),e.xp6(1),e.Q6J("ngIf",d.xScale),e.xp6(1),e.Q6J("ngIf",d.showLabel))},directives:[t.O5,xu,yu],encapsulation:2,changeDetection:0}),f})();function Gs(f,A,n,d,k,[H,ce,Le,dt]){let pt="";return pt=`M${[f+k,A]}`,pt+="h"+((n=0===(n=Math.floor(n))?1:n)-2*k),pt+=ce?`a${[k,k]} 0 0 1 ${[k,k]}`:`h${k}v${k}`,pt+="v"+((d=0===(d=Math.floor(d))?1:d)-2*k),pt+=dt?`a${[k,k]} 0 0 1 ${[-k,k]}`:`v${k}h${-k}`,pt+="h"+(2*k-n),pt+=Le?`a${[k,k]} 0 0 1 ${[-k,-k]}`:`h${-k}v${-k}`,pt+="v"+(2*k-d),pt+=H?`a${[k,k]} 0 0 1 ${[k,-k]}`:`v${-k}h${k}`,pt+="z",pt}let Cu=(()=>{class f{constructor(n){this.platformId=n,this.tickArguments=[5],this.tickStroke="#ccc",this.trimTicks=!0,this.maxTickLength=16,this.showGridLines=!1,this.showRefLabels=!1,this.showRefLines=!1,this.dimensionsChanged=new e.vpe,this.innerTickSize=6,this.tickPadding=3,this.verticalSpacing=20,this.textAnchor=Xa.Middle,this.width=0,this.outerTickSize=6,this.rotateLabels=!1,this.referenceLineLength=0,this.Orientation=ga}ngOnChanges(n){this.update()}ngAfterViewInit(){setTimeout(()=>this.updateDims())}updateDims(){if(!(0,t.NF)(this.platformId))return this.width=this.getApproximateAxisWidth(),void this.dimensionsChanged.emit({width:this.width});const n=parseInt(this.ticksElement.nativeElement.getBoundingClientRect().width,10);n!==this.width&&(this.width=n,this.dimensionsChanged.emit({width:n}),setTimeout(()=>this.updateDims()))}update(){let n;const d=this.orient===ga.Top||this.orient===ga.Right?-1:1;switch(this.tickSpacing=Math.max(this.innerTickSize,0)+this.tickPadding,n=this.scale,this.ticks=this.getTicks(),this.tickFormat=this.tickFormatting?this.tickFormatting:n.tickFormat?n.tickFormat.apply(n,this.tickArguments):function(k){return"Date"===k.constructor.name?k.toLocaleDateString():k.toLocaleString()},this.adjustedScale=n.bandwidth?function(k){return n(k)+.5*n.bandwidth()}:n,this.showRefLines&&this.referenceLines&&this.setReferencelines(),this.orient){case ga.Top:case ga.Bottom:this.transform=function(k){return"translate("+this.adjustedScale(k)+",0)"},this.textAnchor=Xa.Middle,this.y2=this.innerTickSize*d,this.y1=this.tickSpacing*d,this.dy=d<0?"0em":".71em";break;case ga.Left:this.transform=function(k){return"translate(0,"+this.adjustedScale(k)+")"},this.textAnchor=Xa.End,this.x2=this.innerTickSize*-d,this.x1=this.tickSpacing*-d,this.dy=".32em";break;case ga.Right:this.transform=function(k){return"translate(0,"+this.adjustedScale(k)+")"},this.textAnchor=Xa.Start,this.x2=this.innerTickSize*-d,this.x1=this.tickSpacing*-d,this.dy=".32em"}setTimeout(()=>this.updateDims())}setReferencelines(){this.refMin=this.adjustedScale(Math.min.apply(null,this.referenceLines.map(n=>n.value))),this.refMax=this.adjustedScale(Math.max.apply(null,this.referenceLines.map(n=>n.value))),this.referenceLineLength=this.referenceLines.length,this.referenceAreaPath=Gs(0,this.refMax,this.gridLineWidth,this.refMin-this.refMax,0,[!1,!1,!1,!1])}getTicks(){let n;const d=this.getMaxTicks(20),k=this.getMaxTicks(50);return this.tickValues?n=this.tickValues:this.scale.ticks?n=this.scale.ticks.apply(this.scale,[k]):(n=this.scale.domain(),n=bu(n,d)),n}getMaxTicks(n){return Math.floor(this.height/n)}tickTransform(n){return`translate(${this.adjustedScale(n)},${this.verticalSpacing})`}gridLineTransform(){return"translate(5,0)"}tickTrim(n){return this.trimTicks?Jo(n,this.maxTickLength):n}getApproximateAxisWidth(){return 7*Math.max(...this.ticks.map(k=>this.tickTrim(this.tickFormat(k)).length))}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(e.Lbi))},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-y-axis-ticks",""]],viewQuery:function(n,d){if(1&n&&e.Gf(W1,5),2&n){let k;e.iGM(k=e.CRH())&&(d.ticksElement=k.first)}},inputs:{tickArguments:"tickArguments",tickStroke:"tickStroke",trimTicks:"trimTicks",maxTickLength:"maxTickLength",showGridLines:"showGridLines",showRefLabels:"showRefLabels",showRefLines:"showRefLines",scale:"scale",orient:"orient",tickValues:"tickValues",tickFormatting:"tickFormatting",gridLineWidth:"gridLineWidth",height:"height",referenceLines:"referenceLines"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[e.TTD],attrs:u2,decls:6,vars:4,consts:[["ticksel",""],["class","tick",4,"ngFor","ngForOf"],["class","reference-area",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"tick"],["stroke-width","0.01"],[1,"reference-area"],[4,"ngIf"],["class","gridline-path gridline-path-horizontal","x1","0",4,"ngIf"],["x1","0",1,"gridline-path","gridline-path-horizontal"],["x1","0",1,"refline-path","gridline-path-horizontal"],[1,"refline-label"]],template:function(n,d){1&n&&(e.O4$(),e.TgZ(0,"g",null,0),e.YNc(2,a6,5,9,"g",1),e.qZA(),e.YNc(3,s6,1,2,"path",2),e.YNc(4,f2,2,2,"g",3),e.YNc(5,l6,2,1,"g",3)),2&n&&(e.xp6(2),e.Q6J("ngForOf",d.ticks),e.xp6(1),e.Q6J("ngIf",d.referenceLineLength>1&&d.refMax&&d.refMin&&d.showRefLines),e.xp6(1),e.Q6J("ngForOf",d.ticks),e.xp6(1),e.Q6J("ngForOf",d.referenceLines))},directives:[t.sg,t.O5],encapsulation:2,changeDetection:0}),f})(),$a=(()=>{class f{constructor(){this.showGridLines=!1,this.yOrient=ga.Left,this.yAxisOffset=0,this.dimensionsChanged=new e.vpe,this.yAxisClassName="y axis",this.labelOffset=15,this.fill="none",this.stroke="#CCC",this.tickStroke="#CCC",this.strokeWidth=1,this.padding=5}ngOnChanges(n){this.update()}update(){this.offset=-(this.yAxisOffset+this.padding),this.yOrient===ga.Right?(this.labelOffset=65,this.transform=`translate(${this.offset+this.dims.width} , 0)`):(this.offset=this.offset,this.transform=`translate(${this.offset} , 0)`),void 0!==this.yAxisTickCount&&(this.tickArguments=[this.yAxisTickCount])}emitTicksWidth({width:n}){n!==this.labelOffset&&this.yOrient===ga.Right?(this.labelOffset=n+this.labelOffset,setTimeout(()=>{this.dimensionsChanged.emit({width:n})},0)):n!==this.labelOffset&&(this.labelOffset=n,setTimeout(()=>{this.dimensionsChanged.emit({width:n})},0))}}return f.\u0275fac=function(n){return new(n||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-y-axis",""]],viewQuery:function(n,d){if(1&n&&e.Gf(Cu,5),2&n){let k;e.iGM(k=e.CRH())&&(d.ticksComponent=k.first)}},inputs:{showGridLines:"showGridLines",yOrient:"yOrient",yAxisOffset:"yAxisOffset",yScale:"yScale",dims:"dims",trimTicks:"trimTicks",maxTickLength:"maxTickLength",tickFormatting:"tickFormatting",ticks:"ticks",showLabel:"showLabel",labelText:"labelText",yAxisTickCount:"yAxisTickCount",referenceLines:"referenceLines",showRefLines:"showRefLines",showRefLabels:"showRefLabels"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[e.TTD],attrs:c6,decls:3,vars:4,consts:[["ngx-charts-y-axis-ticks","",3,"trimTicks","maxTickLength","tickFormatting","tickArguments","tickValues","tickStroke","scale","orient","showGridLines","gridLineWidth","referenceLines","showRefLines","showRefLabels","height","dimensionsChanged",4,"ngIf"],["ngx-charts-axis-label","",3,"label","offset","orient","height","width",4,"ngIf"],["ngx-charts-y-axis-ticks","",3,"trimTicks","maxTickLength","tickFormatting","tickArguments","tickValues","tickStroke","scale","orient","showGridLines","gridLineWidth","referenceLines","showRefLines","showRefLabels","height","dimensionsChanged"],["ngx-charts-axis-label","",3,"label","offset","orient","height","width"]],template:function(n,d){1&n&&(e.O4$(),e.TgZ(0,"g"),e.YNc(1,m2,1,14,"g",0),e.YNc(2,a3,1,5,"g",1),e.qZA()),2&n&&(e.uIk("class",d.yAxisClassName)("transform",d.transform),e.xp6(1),e.Q6J("ngIf",d.yScale),e.xp6(1),e.Q6J("ngIf",d.showLabel))},directives:[t.O5,Cu,yu],encapsulation:2,changeDetection:0}),f})(),Z2=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[t.ez]]}),f})();var ds=(()=>{return(f=ds||(ds={})).popover="popover",f.tooltip="tooltip",ds;var f})(),To=(()=>{return(f=To||(To={}))[f.all="all"]="all",f[f.focus="focus"]="focus",f[f.mouseover="mouseover"]="mouseover",To;var f})();let Ds=(()=>{class f{constructor(n,d,k){this.tooltipService=n,this.viewContainerRef=d,this.renderer=k,this.tooltipCssClass="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Dn.Top,this.tooltipAlignment=Dn.Center,this.tooltipType=ds.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=To.all,this.tooltipImmediateExit=!1,this.show=new e.vpe,this.hide=new e.vpe}get listensForFocus(){return this.tooltipShowEvent===To.all||this.tooltipShowEvent===To.focus}get listensForHover(){return this.tooltipShowEvent===To.all||this.tooltipShowEvent===To.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(n){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(n))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(n){if(this.component||this.tooltipDisabled)return;const d=n?0:this.tooltipShowTimeout+(navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?300:0);clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const k=this.createBoundOptions();this.component=this.tooltipService.create(k),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},d)}addHideListeners(n){this.mouseEnterContentEvent=this.renderer.listen(n,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(n,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen("window","click",d=>{n.contains(d.target)||this.hideTooltip()}))}hideTooltip(n=!1){if(!this.component)return;const d=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),n?d():this.timeout=setTimeout(d,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(Wc),e.Y36(e.s_b),e.Y36(e.Qsj))},f.\u0275dir=e.lG2({type:f,selectors:[["","ngx-tooltip",""]],hostBindings:function(n,d){1&n&&e.NdJ("focusin",function(){return d.onFocus()})("blur",function(){return d.onBlur()})("mouseenter",function(){return d.onMouseEnter()})("mouseleave",function(H){return d.onMouseLeave(H.target)})("click",function(){return d.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipShowEvent:"tooltipShowEvent",tooltipImmediateExit:"tooltipImmediateExit",tooltipTitle:"tooltipTitle",tooltipTemplate:"tooltipTemplate",tooltipContext:"tooltipContext"},outputs:{show:"show",hide:"hide"}}),f})(),wl=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({providers:[e0,Wc],imports:[[t.ez]]}),f})();function za(f){return f instanceof Date?f.toLocaleDateString():f.toLocaleString()}const V2={};function es(){let f=("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4);return f=`a${f}`,V2[f]?es():(V2[f]=!0,f)}var sr=(()=>{return(f=sr||(sr={})).Vertical="vertical",f.Horizontal="horizontal",sr;var f})();let to=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-grid-panel",""]],inputs:{width:"width",height:"height",x:"x",y:"y"},attrs:Ed,decls:1,vars:4,consts:[["stroke","none",1,"gridpanel"]],template:function(n,d){1&n&&(e.O4$(),e._UZ(0,"rect",0)),2&n&&e.uIk("height",d.height)("width",d.width)("x",d.x)("y",d.y)},encapsulation:2,changeDetection:0}),f})();var oc=(()=>{return(f=oc||(oc={})).Odd="odd",f.Even="even",oc;var f})();let Y2,n0=(()=>{class f{ngOnChanges(n){this.update()}update(){this.gridPanels=this.getGridPanels()}getGridPanels(){return this.data.map(n=>{let d,k,H,ce,Le,dt=oc.Odd;if(this.orient===sr.Vertical){const pt=this.xScale(n.name);Number.parseInt((pt/this.xScale.step()).toString(),10)%2==1&&(dt=oc.Even),d=this.xScale.bandwidth()*this.xScale.paddingInner(),k=this.xScale.bandwidth()+d,H=this.dims.height,ce=this.xScale(n.name)-d/2,Le=0}else if(this.orient===sr.Horizontal){const pt=this.yScale(n.name);Number.parseInt((pt/this.yScale.step()).toString(),10)%2==1&&(dt=oc.Even),d=this.yScale.bandwidth()*this.yScale.paddingInner(),k=this.dims.width,H=this.yScale.bandwidth()+d,ce=0,Le=this.yScale(n.name)-d/2}return{name:n.name,class:dt,height:H,width:k,x:ce,y:Le}})}}return f.\u0275fac=function(n){return new(n||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-grid-panel-series",""]],inputs:{data:"data",dims:"dims",xScale:"xScale",yScale:"yScale",orient:"orient"},features:[e.TTD],attrs:Ao,decls:1,vars:1,consts:[["ngx-charts-grid-panel","",3,"height","width","x","y","grid-panel","odd","even",4,"ngFor","ngForOf"],["ngx-charts-grid-panel","",3,"height","width","x","y"]],template:function(n,d){1&n&&e.YNc(0,q1,1,10,"g",0),2&n&&e.Q6J("ngForOf",d.gridPanels)},directives:[t.sg,to],encapsulation:2,changeDetection:0}),f})(),ts=(()=>{class f{constructor(){this.orientation=sr.Vertical}ngOnChanges(n){this.x1="0%",this.x2="0%",this.y1="0%",this.y2="0%",this.orientation===sr.Horizontal?this.x2="100%":this.orientation===sr.Vertical&&(this.y1="100%")}}return f.\u0275fac=function(n){return new(n||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-svg-linear-gradient",""]],inputs:{orientation:"orientation",name:"name",stops:"stops"},features:[e.TTD],attrs:d6,decls:2,vars:6,consts:[[3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(n,d){1&n&&(e.O4$(),e.TgZ(0,"linearGradient",0),e.YNc(1,u6,1,5,"stop",1),e.qZA()),2&n&&(e.Q6J("id",d.name),e.uIk("x1",d.x1)("y1",d.y1)("x2",d.x2)("y2",d.y2),e.xp6(1),e.Q6J("ngForOf",d.stops))},directives:[t.sg],encapsulation:2,changeDetection:0}),f})();"undefined"!=typeof window?Y2=window:"undefined"!=typeof global&&(Y2=global);let j2=(()=>{class f{constructor(n){this.cd=n,this.horizontal=!1,this.labelClick=new e.vpe,this.labelActivate=new e.vpe,this.labelDeactivate=new e.vpe,this.legendEntries=[]}ngOnChanges(n){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const n=[];for(const d of this.data){const k=za(d);-1===n.findIndex(ce=>ce.label===k)&&n.push({label:d,formattedLabel:k,color:this.colors.getColor(d)})}return n}isActive(n){return!!this.activeEntries&&void 0!==this.activeEntries.find(k=>n.label===k.name)}activate(n){this.labelActivate.emit(n)}deactivate(n){this.labelDeactivate.emit(n)}trackBy(n,d){return d.label}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(e.sBO))},f.\u0275cmp=e.Xpm({type:f,selectors:[["ngx-charts-legend"]],inputs:{horizontal:"horizontal",data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[e.TTD],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"label","formattedLabel","color","isActive","select","activate","deactivate"]],template:function(n,d){1&n&&(e.TgZ(0,"div"),e.YNc(1,p6,3,1,"header",0),e.TgZ(2,"div",1),e.TgZ(3,"ul",2),e.YNc(4,x2,2,4,"li",3),e.qZA(),e.qZA(),e.qZA()),2&n&&(e.Udp("width",d.width,"px"),e.xp6(1),e.Q6J("ngIf",(null==d.title?null:d.title.length)>0),e.xp6(2),e.Udp("max-height",d.height-45,"px"),e.ekj("horizontal-legend",d.horizontal),e.xp6(1),e.Q6J("ngForOf",d.legendEntries)("ngForTrackBy",d.trackBy))},directives:function(){return[t.O5,t.sg,Au]},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:bold}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"],encapsulation:2,changeDetection:0}),f})(),Au=(()=>{class f{constructor(){this.isActive=!1,this.select=new e.vpe,this.activate=new e.vpe,this.deactivate=new e.vpe,this.toggle=new e.vpe}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return f.\u0275fac=function(n){return new(n||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(n,d){1&n&&e.NdJ("mouseenter",function(){return d.onMouseEnter()})("mouseleave",function(){return d.onMouseLeave()})},inputs:{isActive:"isActive",color:"color",label:"label",formattedLabel:"formattedLabel"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"title","click"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(n,d){1&n&&(e.TgZ(0,"span",0),e.NdJ("click",function(){return d.select.emit(d.formattedLabel)}),e.TgZ(1,"span",1),e.NdJ("click",function(){return d.toggle.emit(d.formattedLabel)}),e.qZA(),e.TgZ(2,"span",2),e._uU(3),e.qZA(),e.qZA()),2&n&&(e.ekj("active",d.isActive),e.Q6J("title",d.formattedLabel),e.xp6(1),e.Udp("background-color",d.color),e.xp6(2),e.hij(" ",d.trimmedLabel," "))},encapsulation:2,changeDetection:0}),f})(),q2=(()=>{class f{constructor(){this.horizontal=!1}ngOnChanges(n){const d=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${d})`}gradientString(n,d){d.push(1);const k=[];return n.reverse().forEach((H,ce)=>{k.push(`${H} ${Math.round(100*d[ce])}%`)}),k.join(", ")}}return f.\u0275fac=function(n){return new(n||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["ngx-charts-scale-legend"]],inputs:{horizontal:"horizontal",valueRange:"valueRange",colors:"colors",height:"height",width:"width"},features:[e.TTD],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(n,d){1&n&&(e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA(),e._UZ(4,"div",2),e.TgZ(5,"div",1),e.TgZ(6,"span"),e._uU(7),e.qZA(),e.qZA(),e.qZA()),2&n&&(e.Udp("height",d.horizontal?void 0:d.height,"px")("width",d.width,"px"),e.ekj("horizontal-legend",d.horizontal),e.xp6(3),e.Oqu(d.valueRange[1].toLocaleString()),e.xp6(1),e.Udp("background",d.gradient),e.xp6(3),e.Oqu(d.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\n"],encapsulation:2,changeDetection:0}),f})(),Ws=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[t.ez,Z2,wl],t.ez,Z2,wl]}),f})();function jr({width:f,height:A,margins:n,showXAxis:d=!1,showYAxis:k=!1,xAxisHeight:H=0,yAxisWidth:ce=0,showXLabel:Le=!1,showYLabel:dt=!1,showLegend:pt=!1,legendType:Dt=_i.Ordinal,legendPosition:Ht=yr.Right,columns:Zt=12}){let ni=n[3],bi=f,Bi=A-n[0]-n[2];if(pt&&Ht===yr.Right&&(Zt-=Dt===_i.Ordinal?2:1),bi=bi*Zt/12,bi=bi-n[1]-n[3],d&&(Bi-=5,Bi-=H,Le&&(Bi-=30)),k&&(bi-=5,bi-=ce,ni+=ce,ni+=10,dt)){const hi=30;bi-=hi,ni+=hi}return bi=Math.max(0,bi),Bi=Math.max(0,Bi),{width:Math.floor(bi),height:Math.floor(Bi),xOffset:Math.floor(ni)}}let J2=[{name:"vivid",selectable:!0,group:_i.Ordinal,domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:_i.Ordinal,domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:_i.Ordinal,domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:_i.Ordinal,domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:_i.Linear,domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:_i.Linear,domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:_i.Linear,domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:_i.Ordinal,domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:_i.Ordinal,domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:_i.Ordinal,domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:_i.Ordinal,domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:_i.Ordinal,domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:_i.Ordinal,domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:_i.Ordinal,domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:_i.Ordinal,domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class qr{constructor(A,n,d,k){"string"==typeof A&&(A=J2.find(H=>H.name===A)),this.colorDomain=A.domain,this.scaleType=n,this.domain=d,this.customColors=k,this.scale=this.generateColorScheme(A,n,this.domain)}generateColorScheme(A,n,d){let k;switch("string"==typeof A&&(A=J2.find(H=>H.name===A)),n){case _i.Quantile:k=Qh().range(A.domain).domain(d);break;case _i.Ordinal:k=R1().range(A.domain).domain(d);break;case _i.Linear:{const H=[...A.domain];1===H.length&&(H.push(H[0]),this.colorDomain=H);const ce=Y0(0,1,1/H.length);k=Er().range(H).domain(ce)}}return k}getColor(A){if(null==A)throw new Error("Value can not be null");if(this.scaleType===_i.Linear){const n=Er().domain(this.domain).range([0,1]);return this.scale(n(A))}{if("function"==typeof this.customColors)return this.customColors(A);const n=A.toString();let d;return this.customColors&&this.customColors.length>0&&(d=this.customColors.find(k=>k.name.toLowerCase()===n.toLowerCase())),d?d.value:this.scale(A)}}getLinearGradientStops(A,n){void 0===n&&(n=this.domain[0]);const d=Er().domain(this.domain).range([0,1]),k=Tr().domain(this.colorDomain).range([0,1]),H=this.getColor(A),ce=d(n),Le=this.getColor(n),dt=d(A);let pt=1,Dt=ce;const Ht=[];for(Ht.push({color:Le,offset:ce,originalOffset:ce,opacity:1});Dt=(dt-k.bandwidth()).toFixed(4))break;Ht.push({color:Zt,offset:ni,opacity:1}),Dt=ni,pt++}}if(Ht[Ht.length-1].offset<100&&Ht.push({color:H,offset:dt,opacity:1}),dt===ce)Ht[0].offset=0,Ht[1].offset=100;else if(100!==Ht[Ht.length-1].offset)for(const Zt of Ht)Zt.offset=(Zt.offset-ce)/(dt-ce)*100;return Ht}}let d4=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws]]}),f})(),l0=(()=>{class f{constructor(n){this.roundEdges=!0,this.gradient=!1,this.offset=0,this.isActive=!1,this.animations=!0,this.noBarWhenZero=!0,this.select=new e.vpe,this.activate=new e.vpe,this.deactivate=new e.vpe,this.hasGradient=!1,this.hideBar=!1,this.element=n.nativeElement}ngOnChanges(n){n.roundEdges&&this.loadAnimation(),this.update()}update(){this.gradientId="grad"+es().toString(),this.gradientFill=`url(#${this.gradientId})`,this.gradient||this.stops?(this.gradientStops=this.getGradient(),this.hasGradient=!0):this.hasGradient=!1,this.updatePathEl(),this.checkToHideBar()}loadAnimation(){this.path=this.getStartingPath(),setTimeout(this.update.bind(this),100)}updatePathEl(){const n=function(f){return"string"==typeof f?new yi([[document.querySelector(f)]],[document.documentElement]):new yi([[f]],Rt)}(this.element).select(".bar"),d=this.getPath();this.animations?n.transition().duration(500).attr("d",d):n.attr("d",d)}getGradient(){return this.stops?this.stops:[{offset:0,color:this.fill,opacity:this.getStartOpacity()},{offset:100,color:this.fill,opacity:1}]}getStartingPath(){if(!this.animations)return this.getPath();let d,n=this.getRadius();return this.roundEdges?this.orientation===sr.Vertical?(n=Math.min(this.height,n),d=Gs(this.x,this.y+this.height,this.width,1,0,this.edges)):this.orientation===sr.Horizontal&&(n=Math.min(this.width,n),d=Gs(this.x,this.y,1,this.height,0,this.edges)):this.orientation===sr.Vertical?d=Gs(this.x,this.y+this.height,this.width,1,0,this.edges):this.orientation===sr.Horizontal&&(d=Gs(this.x,this.y,1,this.height,0,this.edges)),d}getPath(){let d,n=this.getRadius();return this.roundEdges?this.orientation===sr.Vertical?(n=Math.min(this.height,n),d=Gs(this.x,this.y,this.width,this.height,n,this.edges)):this.orientation===sr.Horizontal&&(n=Math.min(this.width,n),d=Gs(this.x,this.y,this.width,this.height,n,this.edges)):d=Gs(this.x,this.y,this.width,this.height,n,this.edges),d}getRadius(){let n=0;return this.roundEdges&&this.height>5&&this.width>5&&(n=Math.floor(Math.min(5,this.height/2,this.width/2))),n}getStartOpacity(){return this.roundEdges?.2:.5}get edges(){let n=[!1,!1,!1,!1];return this.roundEdges&&(this.orientation===sr.Vertical?n=this.data.value>0?[!0,!0,!1,!1]:[!1,!1,!0,!0]:this.orientation===sr.Horizontal&&(n=this.data.value>0?[!1,!0,!1,!0]:[!0,!1,!0,!1])),n}onMouseEnter(){this.activate.emit(this.data)}onMouseLeave(){this.deactivate.emit(this.data)}checkToHideBar(){this.hideBar=this.noBarWhenZero&&(this.orientation===sr.Vertical&&0===this.height||this.orientation===sr.Horizontal&&0===this.width)}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-bar",""]],hostBindings:function(n,d){1&n&&e.NdJ("mouseenter",function(){return d.onMouseEnter()})("mouseleave",function(){return d.onMouseLeave()})},inputs:{roundEdges:"roundEdges",gradient:"gradient",offset:"offset",isActive:"isActive",animations:"animations",noBarWhenZero:"noBarWhenZero",fill:"fill",data:"data",width:"width",height:"height",x:"x",y:"y",orientation:"orientation",stops:"stops",ariaLabel:"ariaLabel"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[e.TTD],attrs:h3,decls:2,vars:8,consts:[[4,"ngIf"],["stroke","none","role","img","tabIndex","-1",1,"bar",3,"click"],["ngx-charts-svg-linear-gradient","",3,"orientation","name","stops"]],template:function(n,d){1&n&&(e.YNc(0,eo,2,3,"defs",0),e.O4$(),e.TgZ(1,"path",1),e.NdJ("click",function(){return d.select.emit(d.data)}),e.qZA()),2&n&&(e.Q6J("ngIf",d.hasGradient),e.xp6(1),e.ekj("active",d.isActive)("hidden",d.hideBar),e.uIk("d",d.path)("aria-label",d.ariaLabel)("fill",d.hasGradient?d.gradientFill:d.fill))},directives:[t.O5,ts],encapsulation:2,changeDetection:0}),f})();var _a=(()=>{return(f=_a||(_a={})).Standard="standard",f.Normalized="normalized",f.Stacked="stacked",_a;var f})();let u4=(()=>{class f extends Yr{constructor(){super(...arguments),this.legend=!1,this.legendTitle="Legend",this.legendPosition=yr.Right,this.tooltipDisabled=!1,this.showGridLines=!0,this.activeEntries=[],this.trimXAxisTicks=!0,this.trimYAxisTicks=!0,this.rotateXAxisTicks=!0,this.maxXAxisTickLength=16,this.maxYAxisTickLength=16,this.barPadding=8,this.roundDomains=!1,this.roundEdges=!0,this.showDataLabel=!1,this.noBarWhenZero=!0,this.activate=new e.vpe,this.deactivate=new e.vpe,this.margin=[10,20,10,20],this.xAxisHeight=0,this.yAxisWidth=0,this.dataLabelMaxHeight={negative:0,positive:0}}update(){super.update(),this.showDataLabel||(this.dataLabelMaxHeight={negative:0,positive:0}),this.margin=[10+this.dataLabelMaxHeight.positive,20,10+this.dataLabelMaxHeight.negative,20],this.dims=jr({width:this.width,height:this.height,margins:this.margin,showXAxis:this.xAxis,showYAxis:this.yAxis,xAxisHeight:this.xAxisHeight,yAxisWidth:this.yAxisWidth,showXLabel:this.showXAxisLabel,showYLabel:this.showYAxisLabel,showLegend:this.legend,legendType:this.schemeType,legendPosition:this.legendPosition}),this.formatDates(),this.showDataLabel&&(this.dims.height-=this.dataLabelMaxHeight.negative),this.xScale=this.getXScale(),this.yScale=this.getYScale(),this.setColors(),this.legendOptions=this.getLegendOptions(),this.transform=`translate(${this.dims.xOffset} , ${this.margin[0]+this.dataLabelMaxHeight.negative})`}getXScale(){this.xDomain=this.getXDomain();const n=this.xDomain.length/(this.dims.width/this.barPadding+1);return Tr().range([0,this.dims.width]).paddingInner(n).domain(this.xDomain)}getYScale(){this.yDomain=this.getYDomain();const n=Er().range([this.dims.height,0]).domain(this.yDomain);return this.roundDomains?n.nice():n}getXDomain(){return this.results.map(n=>n.label)}getYDomain(){const n=this.results.map(H=>H.value);let d=this.yScaleMin?Math.min(this.yScaleMin,...n):Math.min(0,...n);this.yAxisTicks&&!this.yAxisTicks.some(isNaN)&&(d=Math.min(d,...this.yAxisTicks));let k=this.yScaleMax?Math.max(this.yScaleMax,...n):Math.max(0,...n);return this.yAxisTicks&&!this.yAxisTicks.some(isNaN)&&(k=Math.max(k,...this.yAxisTicks)),[d,k]}onClick(n){this.select.emit(n)}setColors(){let n;n=this.schemeType===_i.Ordinal?this.xDomain:this.yDomain,this.colors=new qr(this.scheme,this.schemeType,n,this.customColors)}getLegendOptions(){const n={scaleType:this.schemeType,colors:void 0,domain:[],title:void 0,position:this.legendPosition};return n.scaleType===_i.Ordinal?(n.domain=this.xDomain,n.colors=this.colors,n.title=this.legendTitle):(n.domain=this.yDomain,n.colors=this.colors.scale),n}updateYAxisWidth({width:n}){this.yAxisWidth=n,this.update()}updateXAxisHeight({height:n}){this.xAxisHeight=n,this.update()}onDataLabelMaxHeightChanged(n){n.size.negative?this.dataLabelMaxHeight.negative=Math.max(this.dataLabelMaxHeight.negative,n.size.height):this.dataLabelMaxHeight.positive=Math.max(this.dataLabelMaxHeight.positive,n.size.height),n.index===this.results.length-1&&setTimeout(()=>this.update())}onActivate(n,d=!1){n=this.results.find(H=>d?H.label===n.name:H.name===n.name),!(this.activeEntries.findIndex(H=>H.name===n.name&&H.value===n.value&&H.series===n.series)>-1)&&(this.activeEntries=[n,...this.activeEntries],this.activate.emit({value:n,entries:this.activeEntries}))}onDeactivate(n,d=!1){n=this.results.find(H=>d?H.label===n.name:H.name===n.name);const k=this.activeEntries.findIndex(H=>H.name===n.name&&H.value===n.value&&H.series===n.series);this.activeEntries.splice(k,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:n,entries:this.activeEntries})}}return f.\u0275fac=function(){let A;return function(d){return(A||(A=e.n5z(f)))(d||f)}}(),f.\u0275cmp=e.Xpm({type:f,selectors:[["ngx-charts-bar-vertical"]],contentQueries:function(n,d,k){if(1&n&&e.Suo(k,Fr,5),2&n){let H;e.iGM(H=e.CRH())&&(d.tooltipTemplate=H.first)}},inputs:{legend:"legend",legendTitle:"legendTitle",legendPosition:"legendPosition",tooltipDisabled:"tooltipDisabled",showGridLines:"showGridLines",activeEntries:"activeEntries",trimXAxisTicks:"trimXAxisTicks",trimYAxisTicks:"trimYAxisTicks",rotateXAxisTicks:"rotateXAxisTicks",maxXAxisTickLength:"maxXAxisTickLength",maxYAxisTickLength:"maxYAxisTickLength",barPadding:"barPadding",roundDomains:"roundDomains",roundEdges:"roundEdges",showDataLabel:"showDataLabel",noBarWhenZero:"noBarWhenZero",xAxis:"xAxis",yAxis:"yAxis",showXAxisLabel:"showXAxisLabel",showYAxisLabel:"showYAxisLabel",xAxisLabel:"xAxisLabel",yAxisLabel:"yAxisLabel",gradient:"gradient",schemeType:"schemeType",xAxisTickFormatting:"xAxisTickFormatting",yAxisTickFormatting:"yAxisTickFormatting",xAxisTicks:"xAxisTicks",yAxisTicks:"yAxisTicks",yScaleMax:"yScaleMax",yScaleMin:"yScaleMin",dataLabelFormatting:"dataLabelFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.qOj],decls:5,vars:25,consts:[[3,"view","showLegend","legendOptions","activeEntries","animations","legendLabelClick","legendLabelActivate","legendLabelDeactivate"],[1,"bar-chart","chart"],["ngx-charts-x-axis","",3,"xScale","dims","showGridLines","showLabel","labelText","trimTicks","rotateTicks","maxTickLength","tickFormatting","ticks","xAxisOffset","dimensionsChanged",4,"ngIf"],["ngx-charts-y-axis","",3,"yScale","dims","showGridLines","showLabel","labelText","trimTicks","maxTickLength","tickFormatting","ticks","dimensionsChanged",4,"ngIf"],["ngx-charts-series-vertical","",3,"xScale","yScale","colors","series","dims","gradient","tooltipDisabled","tooltipTemplate","showDataLabel","dataLabelFormatting","activeEntries","roundEdges","animations","noBarWhenZero","activate","deactivate","select","dataLabelHeightChanged"],["ngx-charts-x-axis","",3,"xScale","dims","showGridLines","showLabel","labelText","trimTicks","rotateTicks","maxTickLength","tickFormatting","ticks","xAxisOffset","dimensionsChanged"],["ngx-charts-y-axis","",3,"yScale","dims","showGridLines","showLabel","labelText","trimTicks","maxTickLength","tickFormatting","ticks","dimensionsChanged"]],template:function(n,d){1&n&&(e.TgZ(0,"ngx-charts-chart",0),e.NdJ("legendLabelClick",function(H){return d.onClick(H)})("legendLabelActivate",function(H){return d.onActivate(H,!0)})("legendLabelDeactivate",function(H){return d.onDeactivate(H,!0)}),e.O4$(),e.TgZ(1,"g",1),e.YNc(2,L6,1,11,"g",2),e.YNc(3,O6,1,9,"g",3),e.TgZ(4,"g",4),e.NdJ("activate",function(H){return d.onActivate(H)})("deactivate",function(H){return d.onDeactivate(H)})("select",function(H){return d.onClick(H)})("dataLabelHeightChanged",function(H){return d.onDataLabelMaxHeightChanged(H)}),e.qZA(),e.qZA(),e.qZA()),2&n&&(e.Q6J("view",e.WLB(22,vr,d.width,d.height))("showLegend",d.legend)("legendOptions",d.legendOptions)("activeEntries",d.activeEntries)("animations",d.animations),e.xp6(1),e.uIk("transform",d.transform),e.xp6(1),e.Q6J("ngIf",d.xAxis),e.xp6(1),e.Q6J("ngIf",d.yAxis),e.xp6(1),e.Q6J("xScale",d.xScale)("yScale",d.yScale)("colors",d.colors)("series",d.results)("dims",d.dims)("gradient",d.gradient)("tooltipDisabled",d.tooltipDisabled)("tooltipTemplate",d.tooltipTemplate)("showDataLabel",d.showDataLabel)("dataLabelFormatting",d.dataLabelFormatting)("activeEntries",d.activeEntries)("roundEdges",d.roundEdges)("animations",d.animations)("noBarWhenZero",d.noBarWhenZero))},directives:function(){return[Wr,t.O5,Qc,tr,$a]},styles:[oa],encapsulation:2,changeDetection:0}),f})(),f4=(()=>{class f extends Yr{constructor(){super(...arguments),this.legend=!1,this.legendTitle="Legend",this.legendPosition=yr.Right,this.tooltipDisabled=!1,this.scaleType=_i.Ordinal,this.showGridLines=!0,this.activeEntries=[],this.trimXAxisTicks=!0,this.trimYAxisTicks=!0,this.rotateXAxisTicks=!0,this.maxXAxisTickLength=16,this.maxYAxisTickLength=16,this.groupPadding=16,this.barPadding=8,this.roundDomains=!1,this.roundEdges=!0,this.showDataLabel=!1,this.noBarWhenZero=!0,this.activate=new e.vpe,this.deactivate=new e.vpe,this.margin=[10,20,10,20],this.xAxisHeight=0,this.yAxisWidth=0,this.dataLabelMaxHeight={negative:0,positive:0},this.barOrientation=sr,this.trackBy=(n,d)=>d.name}update(){super.update(),this.showDataLabel||(this.dataLabelMaxHeight={negative:0,positive:0}),this.margin=[10+this.dataLabelMaxHeight.positive,20,10+this.dataLabelMaxHeight.negative,20],this.dims=jr({width:this.width,height:this.height,margins:this.margin,showXAxis:this.xAxis,showYAxis:this.yAxis,xAxisHeight:this.xAxisHeight,yAxisWidth:this.yAxisWidth,showXLabel:this.showXAxisLabel,showYLabel:this.showYAxisLabel,showLegend:this.legend,legendType:this.schemeType,legendPosition:this.legendPosition}),this.showDataLabel&&(this.dims.height-=this.dataLabelMaxHeight.negative),this.formatDates(),this.groupDomain=this.getGroupDomain(),this.innerDomain=this.getInnerDomain(),this.valueDomain=this.getValueDomain(),this.groupScale=this.getGroupScale(),this.innerScale=this.getInnerScale(),this.valueScale=this.getValueScale(),this.setColors(),this.legendOptions=this.getLegendOptions(),this.transform=`translate(${this.dims.xOffset} , ${this.margin[0]+this.dataLabelMaxHeight.negative})`}onDataLabelMaxHeightChanged(n,d){n.size.negative?this.dataLabelMaxHeight.negative=Math.max(this.dataLabelMaxHeight.negative,n.size.height):this.dataLabelMaxHeight.positive=Math.max(this.dataLabelMaxHeight.positive,n.size.height),d===this.results.length-1&&setTimeout(()=>this.update())}getGroupScale(){const n=this.groupDomain.length/(this.dims.height/this.groupPadding+1);return Tr().rangeRound([0,this.dims.width]).paddingInner(n).paddingOuter(n/2).domain(this.groupDomain)}getInnerScale(){const n=this.groupScale.bandwidth(),d=this.innerDomain.length/(n/this.barPadding+1);return Tr().rangeRound([0,n]).paddingInner(d).domain(this.innerDomain)}getValueScale(){const n=Er().range([this.dims.height,0]).domain(this.valueDomain);return this.roundDomains?n.nice():n}getGroupDomain(){const n=[];for(const d of this.results)n.includes(d.label)||n.push(d.label);return n}getInnerDomain(){const n=[];for(const d of this.results)for(const k of d.series)n.includes(k.label)||n.push(k.label);return n}getValueDomain(){const n=[];for(const H of this.results)for(const ce of H.series)n.includes(ce.value)||n.push(ce.value);return[Math.min(0,...n),this.yScaleMax?Math.max(this.yScaleMax,...n):Math.max(0,...n)]}groupTransform(n){return`translate(${this.groupScale(n.label)}, 0)`}onClick(n,d){d&&(n.series=d.name),this.select.emit(n)}setColors(){let n;n=this.schemeType===_i.Ordinal?this.innerDomain:this.valueDomain,this.colors=new qr(this.scheme,this.schemeType,n,this.customColors)}getLegendOptions(){const n={scaleType:this.schemeType,colors:void 0,domain:[],title:void 0,position:this.legendPosition};return n.scaleType===_i.Ordinal?(n.domain=this.innerDomain,n.colors=this.colors,n.title=this.legendTitle):(n.domain=this.valueDomain,n.colors=this.colors.scale),n}updateYAxisWidth({width:n}){this.yAxisWidth=n,this.update()}updateXAxisHeight({height:n}){this.xAxisHeight=n,this.update()}onActivate(n,d,k=!1){const H=Object.assign({},n);d&&(H.series=d.name);const ce=this.results.map(Le=>Le.series).flat().filter(Le=>k?Le.label===H.name:Le.name===H.name&&Le.series===H.series);this.activeEntries=[...ce],this.activate.emit({value:H,entries:this.activeEntries})}onDeactivate(n,d,k=!1){const H=Object.assign({},n);d&&(H.series=d.name),this.activeEntries=this.activeEntries.filter(ce=>k?ce.label!==H.name:!(ce.name===H.name&&ce.series===H.series)),this.deactivate.emit({value:H,entries:this.activeEntries})}}return f.\u0275fac=function(){let A;return function(d){return(A||(A=e.n5z(f)))(d||f)}}(),f.\u0275cmp=e.Xpm({type:f,selectors:[["ngx-charts-bar-vertical-2d"]],contentQueries:function(n,d,k){if(1&n&&e.Suo(k,Fr,5),2&n){let H;e.iGM(H=e.CRH())&&(d.tooltipTemplate=H.first)}},inputs:{legend:"legend",legendTitle:"legendTitle",legendPosition:"legendPosition",tooltipDisabled:"tooltipDisabled",scaleType:"scaleType",showGridLines:"showGridLines",activeEntries:"activeEntries",trimXAxisTicks:"trimXAxisTicks",trimYAxisTicks:"trimYAxisTicks",rotateXAxisTicks:"rotateXAxisTicks",maxXAxisTickLength:"maxXAxisTickLength",maxYAxisTickLength:"maxYAxisTickLength",groupPadding:"groupPadding",barPadding:"barPadding",roundDomains:"roundDomains",roundEdges:"roundEdges",showDataLabel:"showDataLabel",noBarWhenZero:"noBarWhenZero",xAxis:"xAxis",yAxis:"yAxis",showXAxisLabel:"showXAxisLabel",showYAxisLabel:"showYAxisLabel",xAxisLabel:"xAxisLabel",yAxisLabel:"yAxisLabel",gradient:"gradient",schemeType:"schemeType",xAxisTickFormatting:"xAxisTickFormatting",yAxisTickFormatting:"yAxisTickFormatting",xAxisTicks:"xAxisTicks",yAxisTicks:"yAxisTicks",yScaleMax:"yScaleMax",dataLabelFormatting:"dataLabelFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.qOj],decls:6,vars:18,consts:[[3,"view","showLegend","legendOptions","activeEntries","animations","legendLabelActivate","legendLabelDeactivate","legendLabelClick"],[1,"bar-chart","chart"],["ngx-charts-grid-panel-series","",3,"xScale","yScale","data","dims","orient"],["ngx-charts-x-axis","",3,"xScale","dims","showLabel","labelText","trimTicks","rotateTicks","maxTickLength","tickFormatting","ticks","xAxisOffset","dimensionsChanged",4,"ngIf"],["ngx-charts-y-axis","",3,"yScale","dims","showGridLines","showLabel","labelText","trimTicks","maxTickLength","tickFormatting","ticks","dimensionsChanged",4,"ngIf"],["ngx-charts-series-vertical","",3,"activeEntries","xScale","yScale","colors","series","dims","gradient","tooltipDisabled","tooltipTemplate","showDataLabel","dataLabelFormatting","seriesName","roundEdges","animations","noBarWhenZero","select","activate","deactivate","dataLabelHeightChanged",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-x-axis","",3,"xScale","dims","showLabel","labelText","trimTicks","rotateTicks","maxTickLength","tickFormatting","ticks","xAxisOffset","dimensionsChanged"],["ngx-charts-y-axis","",3,"yScale","dims","showGridLines","showLabel","labelText","trimTicks","maxTickLength","tickFormatting","ticks","dimensionsChanged"],["ngx-charts-series-vertical","",3,"activeEntries","xScale","yScale","colors","series","dims","gradient","tooltipDisabled","tooltipTemplate","showDataLabel","dataLabelFormatting","seriesName","roundEdges","animations","noBarWhenZero","select","activate","deactivate","dataLabelHeightChanged"]],template:function(n,d){1&n&&(e.TgZ(0,"ngx-charts-chart",0),e.NdJ("legendLabelActivate",function(H){return d.onActivate(H,void 0,!0)})("legendLabelDeactivate",function(H){return d.onDeactivate(H,void 0,!0)})("legendLabelClick",function(H){return d.onClick(H)}),e.O4$(),e.TgZ(1,"g",1),e._UZ(2,"g",2),e.YNc(3,I6,1,10,"g",3),e.YNc(4,k6,1,9,"g",4),e.YNc(5,R6,1,17,"g",5),e.qZA(),e.qZA()),2&n&&(e.Q6J("view",e.WLB(15,vr,d.width,d.height))("showLegend",d.legend)("legendOptions",d.legendOptions)("activeEntries",d.activeEntries)("animations",d.animations),e.xp6(1),e.uIk("transform",d.transform),e.xp6(1),e.Q6J("xScale",d.groupScale)("yScale",d.valueScale)("data",d.results)("dims",d.dims)("orient",d.barOrientation.Vertical),e.xp6(1),e.Q6J("ngIf",d.xAxis),e.xp6(1),e.Q6J("ngIf",d.yAxis),e.xp6(1),e.Q6J("ngForOf",d.results)("ngForTrackBy",d.trackBy))},directives:function(){return[Wr,n0,t.O5,t.sg,tr,$a,Qc]},styles:[oa],encapsulation:2,data:{animation:[(0,c.X$)("animationState",[(0,c.eR)(":leave",[(0,c.oB)({opacity:1,transform:"*"}),(0,c.jt)(500,(0,c.oB)({opacity:0,transform:"scale(0)"}))])])]},changeDetection:0}),f})();var Is=(()=>{return(f=Is||(Is={})).positive="positive",f.negative="negative",Is;var f})();let Qc=(()=>{class f{constructor(){this.type=_a.Standard,this.tooltipDisabled=!1,this.animations=!0,this.showDataLabel=!1,this.noBarWhenZero=!0,this.select=new e.vpe,this.activate=new e.vpe,this.deactivate=new e.vpe,this.dataLabelHeightChanged=new e.vpe,this.barsForDataLabels=[],this.barOrientation=sr}ngOnChanges(n){this.update()}update(){let n;this.updateTooltipSettings(),this.series.length&&(n=this.xScale.bandwidth()),n=Math.round(n);const d=Math.max(this.yScale.domain()[0],0),k={[Is.positive]:0,[Is.negative]:0};let ce,H=Is.positive;this.type===_a.Normalized&&(ce=this.series.map(Le=>Le.value).reduce((Le,dt)=>Le+dt,0)),this.bars=this.series.map((Le,dt)=>{let pt=Le.value;const Dt=this.getLabel(Le),Ht=za(Dt);H=pt>0?Is.positive:Is.negative;const ni={value:pt,label:Dt,roundEdges:this.roundEdges,data:Le,width:n,formattedLabel:Ht,height:0,x:0,y:0};if(this.type===_a.Standard)ni.height=Math.abs(this.yScale(pt)-this.yScale(d)),ni.x=this.xScale(Dt),ni.y=this.yScale(pt<0?0:pt);else if(this.type===_a.Stacked){const Bi=k[H],hi=Bi+pt;k[H]+=pt,ni.height=this.yScale(Bi)-this.yScale(hi),ni.x=0,ni.y=this.yScale(hi),ni.offset0=Bi,ni.offset1=hi}else if(this.type===_a.Normalized){let Bi=k[H],hi=Bi+pt;k[H]+=pt,ce>0?(Bi=100*Bi/ce,hi=100*hi/ce):(Bi=0,hi=0),ni.height=this.yScale(Bi)-this.yScale(hi),ni.x=0,ni.y=this.yScale(hi),ni.offset0=Bi,ni.offset1=hi,pt=(hi-Bi).toFixed(2)+"%"}this.colors.scaleType===_i.Ordinal?ni.color=this.colors.getColor(Dt):this.type===_a.Standard?(ni.color=this.colors.getColor(pt),ni.gradientStops=this.colors.getLinearGradientStops(pt)):(ni.color=this.colors.getColor(ni.offset1),ni.gradientStops=this.colors.getLinearGradientStops(ni.offset1,ni.offset0));let bi=Ht;return ni.ariaLabel=Ht+" "+pt.toLocaleString(),null!=this.seriesName&&(bi=`${this.seriesName} \u2022 ${Ht}`,ni.data.series=this.seriesName,ni.ariaLabel=this.seriesName+" "+ni.ariaLabel),ni.tooltipText=this.tooltipDisabled?void 0:`\n ${function(f){return f.toLocaleString().replace(/[&'`"<>]/g,A=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[A]))}(bi)}\n ${this.dataLabelFormatting?this.dataLabelFormatting(pt):pt.toLocaleString()}\n `,ni}),this.updateDataLabels()}updateDataLabels(){if(this.type===_a.Stacked){this.barsForDataLabels=[];const n={};n.series=this.seriesName;const d=this.series.map(H=>H.value).reduce((H,ce)=>ce>0?H+ce:H,0),k=this.series.map(H=>H.value).reduce((H,ce)=>ce<0?H+ce:H,0);n.total=d+k,n.x=0,n.y=0,n.height=this.yScale(n.total>0?d:k),n.width=this.xScale.bandwidth(),this.barsForDataLabels.push(n)}else this.barsForDataLabels=this.series.map(n=>{var d;const k={};return k.series=null!==(d=this.seriesName)&&void 0!==d?d:n.label,k.total=n.value,k.x=this.xScale(n.label),k.y=this.yScale(0),k.height=this.yScale(k.total)-this.yScale(0),k.width=this.xScale.bandwidth(),k})}updateTooltipSettings(){this.tooltipPlacement=this.tooltipDisabled?void 0:Dn.Top,this.tooltipType=this.tooltipDisabled?void 0:ds.tooltip}isActive(n){return!!this.activeEntries&&void 0!==this.activeEntries.find(k=>n.name===k.name&&n.value===k.value)}onClick(n){this.select.emit(n)}getLabel(n){return n.label?n.label:n.name}trackBy(n,d){return d.label}trackDataLabelBy(n,d){return n+"#"+d.series+"#"+d.total}}return f.\u0275fac=function(n){return new(n||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-series-vertical",""]],inputs:{type:"type",tooltipDisabled:"tooltipDisabled",animations:"animations",showDataLabel:"showDataLabel",noBarWhenZero:"noBarWhenZero",dims:"dims",series:"series",xScale:"xScale",yScale:"yScale",colors:"colors",gradient:"gradient",activeEntries:"activeEntries",seriesName:"seriesName",tooltipTemplate:"tooltipTemplate",roundEdges:"roundEdges",dataLabelFormatting:"dataLabelFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dataLabelHeightChanged:"dataLabelHeightChanged"},features:[e.TTD],attrs:hs,decls:2,vars:3,consts:[["ngx-charts-bar","","ngx-tooltip","",3,"width","height","x","y","fill","stops","data","orientation","roundEdges","gradient","ariaLabel","isActive","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext","noBarWhenZero","animations","select","activate","deactivate",4,"ngFor","ngForOf","ngForTrackBy"],[4,"ngIf"],["ngx-charts-bar","","ngx-tooltip","",3,"width","height","x","y","fill","stops","data","orientation","roundEdges","gradient","ariaLabel","isActive","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext","noBarWhenZero","animations","select","activate","deactivate"],["ngx-charts-bar-label","",3,"barX","barY","barWidth","barHeight","value","valueFormatting","orientation","dimensionsChanged",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-bar-label","",3,"barX","barY","barWidth","barHeight","value","valueFormatting","orientation","dimensionsChanged"]],template:function(n,d){1&n&&(e.YNc(0,Cl,1,22,"g",0),e.YNc(1,Vs,2,2,"g",1)),2&n&&(e.Q6J("ngForOf",d.bars)("ngForTrackBy",d.trackBy),e.xp6(1),e.Q6J("ngIf",d.showDataLabel))},directives:function(){return[t.sg,t.O5,l0,Ds,Tu]},encapsulation:2,data:{animation:[(0,c.X$)("animationState",[(0,c.eR)(":leave",[(0,c.oB)({opacity:1}),(0,c.jt)(500,(0,c.oB)({opacity:0}))])])]},changeDetection:0}),f})(),Tu=(()=>{class f{constructor(n){this.dimensionsChanged=new e.vpe,this.horizontalPadding=2,this.verticalPadding=5,this.element=n.nativeElement}ngOnChanges(n){this.update()}getSize(){return{height:this.element.getBoundingClientRect().height,width:this.element.getBoundingClientRect().width,negative:this.value<0}}ngAfterViewInit(){this.dimensionsChanged.emit(this.getSize())}update(){this.formatedValue=this.valueFormatting?this.valueFormatting(this.value):za(this.value),"horizontal"===this.orientation?(this.x=this.barX+this.barWidth,this.value<0?(this.x=this.x-this.horizontalPadding,this.textAnchor="end"):(this.x=this.x+this.horizontalPadding,this.textAnchor="start"),this.y=this.barY+this.barHeight/2):(this.x=this.barX+this.barWidth/2,this.y=this.barY+this.barHeight,this.value<0?(this.y=this.y+this.verticalPadding,this.textAnchor="end"):(this.y=this.y-this.verticalPadding,this.textAnchor="start"),this.transform=`rotate(-45, ${this.x} , ${this.y})`)}}return f.\u0275fac=function(n){return new(n||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["g","ngx-charts-bar-label",""]],inputs:{value:"value",valueFormatting:"valueFormatting",barX:"barX",barY:"barY",barWidth:"barWidth",barHeight:"barHeight",orientation:"orientation"},outputs:{dimensionsChanged:"dimensionsChanged"},features:[e.TTD],attrs:T2,decls:2,vars:5,consts:[["alignment-baseline","middle",1,"textDataLabel"]],template:function(n,d){1&n&&(e.O4$(),e.TgZ(0,"text",0),e._uU(1),e.qZA()),2&n&&(e.uIk("text-anchor",d.textAnchor)("transform",d.transform)("x",d.x)("y",d.y),e.xp6(1),e.hij(" ",d.formatedValue," "))},styles:[".textDataLabel[_ngcontent-%COMP%]{font-size:11px}"],changeDetection:0}),f})(),Su=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws]]}),f})(),Ou=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws]]}),f})(),ku=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws]]}),f})(),Sl=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws]]}),f})(),m4=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws]]}),f})();Math;let ea=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws]]}),f})(),I3=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws,ea,m4]]}),f})(),b4=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws]]}),f})(),C4=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws]]}),f})(),J3=(()=>{class f{}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[Ws,ea,Su]]}),f})(),oh=(()=>{class f{constructor(){"undefined"!=typeof SVGElement&&void 0===SVGElement.prototype.contains&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}}return f.\u0275fac=function(n){return new(n||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[Ws,d4,Su,Ou,ku,Sl,m4,I3,b4,ea,C4,J3]}),f})()},7977:(Ue,K,m)=>{"use strict";const e=K;e.bignum=m(3854),e.define=m(9516).define,e.base=m(7813),e.constants=m(5459),e.decoders=m(196),e.encoders=m(1131)},9516:(Ue,K,m)=>{"use strict";const e=m(1131),t=m(196),v=m(3894);function s(C,c){this.name=C,this.body=c,this.decoders={},this.encoders={}}K.define=function(c,P){return new s(c,P)},s.prototype._createNamed=function(c){const P=this.name;function o(O){this._initNamed(O,P)}return v(o,c),o.prototype._initNamed=function(T,R){c.call(this,T,R)},new o(this)},s.prototype._getDecoder=function(c){return this.decoders.hasOwnProperty(c=c||"der")||(this.decoders[c]=this._createNamed(t[c])),this.decoders[c]},s.prototype.decode=function(c,P,o){return this._getDecoder(P).decode(c,o)},s.prototype._getEncoder=function(c){return this.encoders.hasOwnProperty(c=c||"der")||(this.encoders[c]=this._createNamed(e[c])),this.encoders[c]},s.prototype.encode=function(c,P,o){return this._getEncoder(P).encode(c,o)}},2769:(Ue,K,m)=>{"use strict";const e=m(3894),t=m(4919).b,v=m(2038).Buffer;function M(C,c){t.call(this,c),v.isBuffer(C)?(this.base=C,this.offset=0,this.length=C.length):this.error("Input not Buffer")}function s(C,c){if(Array.isArray(C))this.length=0,this.value=C.map(function(P){return s.isEncoderBuffer(P)||(P=new s(P,c)),this.length+=P.length,P},this);else if("number"==typeof C){if(!(0<=C&&C<=255))return c.error("non-byte EncoderBuffer value");this.value=C,this.length=1}else if("string"==typeof C)this.value=C,this.length=v.byteLength(C);else{if(!v.isBuffer(C))return c.error("Unsupported type: "+typeof C);this.value=C,this.length=C.length}}e(M,t),K.C=M,M.isDecoderBuffer=function(c){return c instanceof M||"object"==typeof c&&v.isBuffer(c.base)&&"DecoderBuffer"===c.constructor.name&&"number"==typeof c.offset&&"number"==typeof c.length&&"function"==typeof c.save&&"function"==typeof c.restore&&"function"==typeof c.isEmpty&&"function"==typeof c.readUInt8&&"function"==typeof c.skip&&"function"==typeof c.raw},M.prototype.save=function(){return{offset:this.offset,reporter:t.prototype.save.call(this)}},M.prototype.restore=function(c){const P=new M(this.base);return P.offset=c.offset,P.length=this.offset,this.offset=c.offset,t.prototype.restore.call(this,c.reporter),P},M.prototype.isEmpty=function(){return this.offset===this.length},M.prototype.readUInt8=function(c){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(c||"DecoderBuffer overrun")},M.prototype.skip=function(c,P){if(!(this.offset+c<=this.length))return this.error(P||"DecoderBuffer overrun");const o=new M(this.base);return o._reporterState=this._reporterState,o.offset=this.offset,o.length=this.offset+c,this.offset+=c,o},M.prototype.raw=function(c){return this.base.slice(c?c.offset:this.offset,this.length)},K.R=s,s.isEncoderBuffer=function(c){return c instanceof s||"object"==typeof c&&"EncoderBuffer"===c.constructor.name&&"number"==typeof c.length&&"function"==typeof c.join},s.prototype.join=function(c,P){return c||(c=v.alloc(this.length)),P||(P=0),0===this.length||(Array.isArray(this.value)?this.value.forEach(function(o){o.join(c,P),P+=o.length}):("number"==typeof this.value?c[P]=this.value:"string"==typeof this.value?c.write(this.value,P):v.isBuffer(this.value)&&this.value.copy(c,P),P+=this.length)),c}},7813:(Ue,K,m)=>{"use strict";const e=K;e.Reporter=m(4919).b,e.DecoderBuffer=m(2769).C,e.EncoderBuffer=m(2769).R,e.Node=m(1430)},1430:(Ue,K,m)=>{"use strict";const e=m(4919).b,t=m(2769).R,v=m(2769).C,M=m(2391),s=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],C=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s);function P(O,T,R){const S={};this._baseState=S,S.name=R,S.enc=O,S.parent=T||null,S.children=null,S.tag=null,S.args=null,S.reverseArgs=null,S.choice=null,S.optional=!1,S.any=!1,S.obj=!1,S.use=null,S.useDecoder=null,S.key=null,S.default=null,S.explicit=null,S.implicit=null,S.contains=null,S.parent||(S.children=[],this._wrap())}Ue.exports=P;const o=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];P.prototype.clone=function(){const T=this._baseState,R={};o.forEach(function(D){R[D]=T[D]});const S=new this.constructor(R.parent);return S._baseState=R,S},P.prototype._wrap=function(){const T=this._baseState;C.forEach(function(R){this[R]=function(){const D=new this.constructor(this);return T.children.push(D),D[R].apply(D,arguments)}},this)},P.prototype._init=function(T){const R=this._baseState;M(null===R.parent),T.call(this),R.children=R.children.filter(function(S){return S._baseState.parent===this},this),M.equal(R.children.length,1,"Root node can have only one child")},P.prototype._useArgs=function(T){const R=this._baseState,S=T.filter(function(D){return D instanceof this.constructor},this);T=T.filter(function(D){return!(D instanceof this.constructor)},this),0!==S.length&&(M(null===R.children),R.children=S,S.forEach(function(D){D._baseState.parent=this},this)),0!==T.length&&(M(null===R.args),R.args=T,R.reverseArgs=T.map(function(D){if("object"!=typeof D||D.constructor!==Object)return D;const w={};return Object.keys(D).forEach(function(U){U==(0|U)&&(U|=0),w[D[U]]=U}),w}))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach(function(O){P.prototype[O]=function(){throw new Error(O+" not implemented for encoding: "+this._baseState.enc)}}),s.forEach(function(O){P.prototype[O]=function(){const R=this._baseState,S=Array.prototype.slice.call(arguments);return M(null===R.tag),R.tag=O,this._useArgs(S),this}}),P.prototype.use=function(T){M(T);const R=this._baseState;return M(null===R.use),R.use=T,this},P.prototype.optional=function(){return this._baseState.optional=!0,this},P.prototype.def=function(T){const R=this._baseState;return M(null===R.default),R.default=T,R.optional=!0,this},P.prototype.explicit=function(T){const R=this._baseState;return M(null===R.explicit&&null===R.implicit),R.explicit=T,this},P.prototype.implicit=function(T){const R=this._baseState;return M(null===R.explicit&&null===R.implicit),R.implicit=T,this},P.prototype.obj=function(){const T=this._baseState,R=Array.prototype.slice.call(arguments);return T.obj=!0,0!==R.length&&this._useArgs(R),this},P.prototype.key=function(T){const R=this._baseState;return M(null===R.key),R.key=T,this},P.prototype.any=function(){return this._baseState.any=!0,this},P.prototype.choice=function(T){const R=this._baseState;return M(null===R.choice),R.choice=T,this._useArgs(Object.keys(T).map(function(S){return T[S]})),this},P.prototype.contains=function(T){const R=this._baseState;return M(null===R.use),R.contains=T,this},P.prototype._decode=function(T,R){const S=this._baseState;if(null===S.parent)return T.wrapResult(S.children[0]._decode(T,R));let G,D=S.default,w=!0,U=null;if(null!==S.key&&(U=T.enterKey(S.key)),S.optional){let W=null;if(null!==S.explicit?W=S.explicit:null!==S.implicit?W=S.implicit:null!==S.tag&&(W=S.tag),null!==W||S.any){if(w=this._peekTag(T,W,S.any),T.isError(w))return w}else{const ee=T.save();try{null===S.choice?this._decodeGeneric(S.tag,T,R):this._decodeChoice(T,R),w=!0}catch(ie){w=!1}T.restore(ee)}}if(S.obj&&w&&(G=T.enterObject()),w){if(null!==S.explicit){const ee=this._decodeTag(T,S.explicit);if(T.isError(ee))return ee;T=ee}const W=T.offset;if(null===S.use&&null===S.choice){let ee;S.any&&(ee=T.save());const ie=this._decodeTag(T,null!==S.implicit?S.implicit:S.tag,S.any);if(T.isError(ie))return ie;S.any?D=T.raw(ee):T=ie}if(R&&R.track&&null!==S.tag&&R.track(T.path(),W,T.length,"tagged"),R&&R.track&&null!==S.tag&&R.track(T.path(),T.offset,T.length,"content"),S.any||(D=null===S.choice?this._decodeGeneric(S.tag,T,R):this._decodeChoice(T,R)),T.isError(D))return D;if(!S.any&&null===S.choice&&null!==S.children&&S.children.forEach(function(ie){ie._decode(T,R)}),S.contains&&("octstr"===S.tag||"bitstr"===S.tag)){const ee=new v(D);D=this._getUse(S.contains,T._reporterState.obj)._decode(ee,R)}}return S.obj&&w&&(D=T.leaveObject(G)),null===S.key||null===D&&!0!==w?null!==U&&T.exitKey(U):T.leaveKey(U,S.key,D),D},P.prototype._decodeGeneric=function(T,R,S){const D=this._baseState;return"seq"===T||"set"===T?null:"seqof"===T||"setof"===T?this._decodeList(R,T,D.args[0],S):/str$/.test(T)?this._decodeStr(R,T,S):"objid"===T&&D.args?this._decodeObjid(R,D.args[0],D.args[1],S):"objid"===T?this._decodeObjid(R,null,null,S):"gentime"===T||"utctime"===T?this._decodeTime(R,T,S):"null_"===T?this._decodeNull(R,S):"bool"===T?this._decodeBool(R,S):"objDesc"===T?this._decodeStr(R,T,S):"int"===T||"enum"===T?this._decodeInt(R,D.args&&D.args[0],S):null!==D.use?this._getUse(D.use,R._reporterState.obj)._decode(R,S):R.error("unknown tag: "+T)},P.prototype._getUse=function(T,R){const S=this._baseState;return S.useDecoder=this._use(T,R),M(null===S.useDecoder._baseState.parent),S.useDecoder=S.useDecoder._baseState.children[0],S.implicit!==S.useDecoder._baseState.implicit&&(S.useDecoder=S.useDecoder.clone(),S.useDecoder._baseState.implicit=S.implicit),S.useDecoder},P.prototype._decodeChoice=function(T,R){const S=this._baseState;let D=null,w=!1;return Object.keys(S.choice).some(function(U){const G=T.save(),W=S.choice[U];try{const ee=W._decode(T,R);if(T.isError(ee))return!1;D={type:U,value:ee},w=!0}catch(ee){return T.restore(G),!1}return!0},this),w?D:T.error("Choice not matched")},P.prototype._createEncoderBuffer=function(T){return new t(T,this.reporter)},P.prototype._encode=function(T,R,S){const D=this._baseState;if(null!==D.default&&D.default===T)return;const w=this._encodeValue(T,R,S);return void 0===w||this._skipDefault(w,R,S)?void 0:w},P.prototype._encodeValue=function(T,R,S){const D=this._baseState;if(null===D.parent)return D.children[0]._encode(T,R||new e);let w=null;if(this.reporter=R,D.optional&&void 0===T){if(null===D.default)return;T=D.default}let U=null,G=!1;if(D.any)w=this._createEncoderBuffer(T);else if(D.choice)w=this._encodeChoice(T,R);else if(D.contains)U=this._getUse(D.contains,S)._encode(T,R),G=!0;else if(D.children)U=D.children.map(function(W){if("null_"===W._baseState.tag)return W._encode(null,R,T);if(null===W._baseState.key)return R.error("Child should have a key");const ee=R.enterKey(W._baseState.key);if("object"!=typeof T)return R.error("Child expected, but input is not object");const ie=W._encode(T[W._baseState.key],R,T);return R.leaveKey(ee),ie},this).filter(function(W){return W}),U=this._createEncoderBuffer(U);else if("seqof"===D.tag||"setof"===D.tag){if(!D.args||1!==D.args.length)return R.error("Too many args for : "+D.tag);if(!Array.isArray(T))return R.error("seqof/setof, but data is not Array");const W=this.clone();W._baseState.implicit=null,U=this._createEncoderBuffer(T.map(function(ee){return this._getUse(this._baseState.args[0],T)._encode(ee,R)},W))}else null!==D.use?w=this._getUse(D.use,S)._encode(T,R):(U=this._encodePrimitive(D.tag,T),G=!0);if(!D.any&&null===D.choice){const W=null!==D.implicit?D.implicit:D.tag,ee=null===D.implicit?"universal":"context";null===W?null===D.use&&R.error("Tag could be omitted only for .use()"):null===D.use&&(w=this._encodeComposite(W,G,ee,U))}return null!==D.explicit&&(w=this._encodeComposite(D.explicit,!1,"context",w)),w},P.prototype._encodeChoice=function(T,R){const S=this._baseState,D=S.choice[T.type];return D||M(!1,T.type+" not found in "+JSON.stringify(Object.keys(S.choice))),D._encode(T.value,R)},P.prototype._encodePrimitive=function(T,R){const S=this._baseState;if(/str$/.test(T))return this._encodeStr(R,T);if("objid"===T&&S.args)return this._encodeObjid(R,S.reverseArgs[0],S.args[1]);if("objid"===T)return this._encodeObjid(R,null,null);if("gentime"===T||"utctime"===T)return this._encodeTime(R,T);if("null_"===T)return this._encodeNull();if("int"===T||"enum"===T)return this._encodeInt(R,S.args&&S.reverseArgs[0]);if("bool"===T)return this._encodeBool(R);if("objDesc"===T)return this._encodeStr(R,T);throw new Error("Unsupported tag: "+T)},P.prototype._isNumstr=function(T){return/^[0-9 ]*$/.test(T)},P.prototype._isPrintstr=function(T){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(T)}},4919:(Ue,K,m)=>{"use strict";const e=m(3894);function t(M){this._reporterState={obj:null,path:[],options:M||{},errors:[]}}function v(M,s){this.path=M,this.rethrow(s)}K.b=t,t.prototype.isError=function(s){return s instanceof v},t.prototype.save=function(){const s=this._reporterState;return{obj:s.obj,pathLen:s.path.length}},t.prototype.restore=function(s){const C=this._reporterState;C.obj=s.obj,C.path=C.path.slice(0,s.pathLen)},t.prototype.enterKey=function(s){return this._reporterState.path.push(s)},t.prototype.exitKey=function(s){const C=this._reporterState;C.path=C.path.slice(0,s-1)},t.prototype.leaveKey=function(s,C,c){const P=this._reporterState;this.exitKey(s),null!==P.obj&&(P.obj[C]=c)},t.prototype.path=function(){return this._reporterState.path.join("/")},t.prototype.enterObject=function(){const s=this._reporterState,C=s.obj;return s.obj={},C},t.prototype.leaveObject=function(s){const C=this._reporterState,c=C.obj;return C.obj=s,c},t.prototype.error=function(s){let C;const c=this._reporterState,P=s instanceof v;if(C=P?s:new v(c.path.map(function(o){return"["+JSON.stringify(o)+"]"}).join(""),s.message||s,s.stack),!c.options.partial)throw C;return P||c.errors.push(C),C},t.prototype.wrapResult=function(s){const C=this._reporterState;return C.options.partial?{result:this.isError(s)?null:s,errors:C.errors}:s},e(v,Error),v.prototype.rethrow=function(s){if(this.message=s+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,v),!this.stack)try{throw new Error(this.message)}catch(C){this.stack=C.stack}return this}},5496:(Ue,K)=>{"use strict";function m(e){const t={};return Object.keys(e).forEach(function(v){(0|v)==v&&(v|=0),t[e[v]]=v}),t}K.tagClass={0:"universal",1:"application",2:"context",3:"private"},K.tagClassByName=m(K.tagClass),K.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},K.tagByName=m(K.tag)},5459:(Ue,K,m)=>{"use strict";const e=K;e._reverse=function(v){const M={};return Object.keys(v).forEach(function(s){(0|s)==s&&(s|=0),M[v[s]]=s}),M},e.der=m(5496)},7127:(Ue,K,m)=>{"use strict";const e=m(3894),t=m(3854),v=m(2769).C,M=m(1430),s=m(5496);function C(O){this.enc="der",this.name=O.name,this.entity=O,this.tree=new c,this.tree._init(O.body)}function c(O){M.call(this,"der",O)}function P(O,T){let R=O.readUInt8(T);if(O.isError(R))return R;const S=s.tagClass[R>>6],D=0==(32&R);if(31==(31&R)){let U=R;for(R=0;128==(128&U);){if(U=O.readUInt8(T),O.isError(U))return U;R<<=7,R|=127&U}}else R&=31;return{cls:S,primitive:D,tag:R,tagStr:s.tag[R]}}function o(O,T,R){let S=O.readUInt8(R);if(O.isError(S))return S;if(!T&&128===S)return null;if(0==(128&S))return S;const D=127&S;if(D>4)return O.error("length octect is too long");S=0;for(let w=0;w{"use strict";const e=K;e.der=m(7127),e.pem=m(9617)},9617:(Ue,K,m)=>{"use strict";const e=m(3894),t=m(2038).Buffer,v=m(7127);function M(s){v.call(this,s),this.enc="pem"}e(M,v),Ue.exports=M,M.prototype.decode=function(C,c){const P=C.toString().split(/[\r\n]+/g),o=c.label.toUpperCase(),O=/^-----(BEGIN|END) ([^-]+)-----$/;let T=-1,R=-1;for(let w=0;w{"use strict";const e=m(3894),t=m(2038).Buffer,v=m(1430),M=m(5496);function s(o){this.enc="der",this.name=o.name,this.entity=o,this.tree=new C,this.tree._init(o.body)}function C(o){v.call(this,"der",o)}function c(o){return o<10?"0"+o:o}Ue.exports=s,s.prototype.encode=function(O,T){return this.tree._encode(O,T).join()},e(C,v),C.prototype._encodeComposite=function(O,T,R,S){const D=function(o,O,T,R){let S;if("seqof"===o?o="seq":"setof"===o&&(o="set"),M.tagByName.hasOwnProperty(o))S=M.tagByName[o];else{if("number"!=typeof o||(0|o)!==o)return R.error("Unknown tag: "+o);S=o}return S>=31?R.error("Multi-octet tag encoding unsupported"):(O||(S|=32),S|=M.tagClassByName[T||"universal"]<<6,S)}(O,T,R,this.reporter);if(S.length<128){const G=t.alloc(2);return G[0]=D,G[1]=S.length,this._createEncoderBuffer([G,S])}let w=1;for(let G=S.length;G>=256;G>>=8)w++;const U=t.alloc(2+w);U[0]=D,U[1]=128|w;for(let G=1+w,W=S.length;W>0;G--,W>>=8)U[G]=255&W;return this._createEncoderBuffer([U,S])},C.prototype._encodeStr=function(O,T){if("bitstr"===T)return this._createEncoderBuffer([0|O.unused,O.data]);if("bmpstr"===T){const R=t.alloc(2*O.length);for(let S=0;S=40)return this.reporter.error("Second objid identifier OOB");O.splice(0,2,40*O[0]+O[1])}let S=0;for(let U=0;U=128;G>>=7)S++}const D=t.alloc(S);let w=D.length-1;for(let U=O.length-1;U>=0;U--){let G=O[U];for(D[w--]=127&G;(G>>=7)>0;)D[w--]=128|127&G}return this._createEncoderBuffer(D)},C.prototype._encodeTime=function(O,T){let R;const S=new Date(O);return"gentime"===T?R=[c(S.getUTCFullYear()),c(S.getUTCMonth()+1),c(S.getUTCDate()),c(S.getUTCHours()),c(S.getUTCMinutes()),c(S.getUTCSeconds()),"Z"].join(""):"utctime"===T?R=[c(S.getUTCFullYear()%100),c(S.getUTCMonth()+1),c(S.getUTCDate()),c(S.getUTCHours()),c(S.getUTCMinutes()),c(S.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+T+" time is not supported yet"),this._encodeStr(R,"octstr")},C.prototype._encodeNull=function(){return this._createEncoderBuffer("")},C.prototype._encodeInt=function(O,T){if("string"==typeof O){if(!T)return this.reporter.error("String int or enum given, but no values map");if(!T.hasOwnProperty(O))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(O));O=T[O]}if("number"!=typeof O&&!t.isBuffer(O)){const D=O.toArray();!O.sign&&128&D[0]&&D.unshift(0),O=t.from(D)}if(t.isBuffer(O)){let D=O.length;0===O.length&&D++;const w=t.alloc(D);return O.copy(w),0===O.length&&(w[0]=0),this._createEncoderBuffer(w)}if(O<128)return this._createEncoderBuffer(O);if(O<256)return this._createEncoderBuffer([0,O]);let R=1;for(let D=O;D>=256;D>>=8)R++;const S=new Array(R);for(let D=S.length-1;D>=0;D--)S[D]=255&O,O>>=8;return 128&S[0]&&S.unshift(0),this._createEncoderBuffer(t.from(S))},C.prototype._encodeBool=function(O){return this._createEncoderBuffer(O?255:0)},C.prototype._use=function(O,T){return"function"==typeof O&&(O=O(T)),O._getEncoder("der").tree},C.prototype._skipDefault=function(O,T,R){const S=this._baseState;let D;if(null===S.default)return!1;const w=O.join();if(void 0===S.defaultBuffer&&(S.defaultBuffer=this._encodeValue(S.default,T,R).join()),w.length!==S.defaultBuffer.length)return!1;for(D=0;D{"use strict";const e=K;e.der=m(6374),e.pem=m(3530)},3530:(Ue,K,m)=>{"use strict";const e=m(3894),t=m(6374);function v(M){t.call(this,M),this.enc="pem"}e(v,t),Ue.exports=v,v.prototype.encode=function(s,C){const P=t.prototype.encode.call(this,s).toString("base64"),o=["-----BEGIN "+C.label+"-----"];for(let O=0;O=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function P(y,i,a){var p=c(y,a);return a-1>=i&&(p|=c(y,a-1)<<4),p}function o(y,i,a,p){for(var u=0,_=Math.min(y.length,a),L=i;L<_;L++){var I=y.charCodeAt(L)-48;u*=p,u+=I>=49?I-49+10:I>=17?I-17+10:I}return u}s.isBN=function(i){return i instanceof s||null!==i&&"object"==typeof i&&i.constructor.wordSize===s.wordSize&&Array.isArray(i.words)},s.max=function(i,a){return i.cmp(a)>0?i:a},s.min=function(i,a){return i.cmp(a)<0?i:a},s.prototype._init=function(i,a,p){if("number"==typeof i)return this._initNumber(i,a,p);if("object"==typeof i)return this._initArray(i,a,p);"hex"===a&&(a=16),v(a===(0|a)&&a>=2&&a<=36);var u=0;"-"===(i=i.toString().replace(/\s+/g,""))[0]&&(u++,this.negative=1),u=0;u-=3)this.words[_]|=(L=i[u]|i[u-1]<<8|i[u-2]<<16)<>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);else if("le"===p)for(u=0,_=0;u>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);return this.strip()},s.prototype._parseHex=function(i,a,p){this.length=Math.ceil((i.length-a)/6),this.words=new Array(this.length);for(var u=0;u=a;u-=2)I=P(i,a,u)<<_,this.words[L]|=67108863&I,_>=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;else for(u=(i.length-a)%2==0?a+1:a;u=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;this.strip()},s.prototype._parseBase=function(i,a,p){this.words=[0],this.length=1;for(var u=0,_=1;_<=67108863;_*=a)u++;u--,_=_/a|0;for(var L=i.length-p,I=L%u,x=Math.min(L,L-I)+p,r=0,b=p;b1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],T=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function D(y,i,a){a.negative=i.negative^y.negative;var p=y.length+i.length|0;a.length=p,p=p-1|0;var u=0|y.words[0],_=0|i.words[0],L=u*_,x=L/67108864|0;a.words[0]=67108863&L;for(var r=1;r>>26,J=67108863&x,F=Math.min(r,i.length-1),B=Math.max(0,r-y.length+1);B<=F;B++)b+=(L=(u=0|y.words[r-B|0])*(_=0|i.words[B])+J)/67108864|0,J=67108863&L;a.words[r]=0|J,x=0|b}return 0!==x?a.words[r]=0|x:a.length--,a.strip()}s.prototype.toString=function(i,a){var p;if(a=0|a||1,16===(i=i||10)||"hex"===i){p="";for(var u=0,_=0,L=0;L>>24-u&16777215)||L!==this.length-1?O[6-x.length]+x+p:x+p,(u+=2)>=26&&(u-=26,L--)}for(0!==_&&(p=_.toString(16)+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}if(i===(0|i)&&i>=2&&i<=36){var r=T[i],b=R[i];p="";var J=this.clone();for(J.negative=0;!J.isZero();){var F=J.modn(b).toString(i);p=(J=J.idivn(b)).isZero()?F+p:O[r-F.length]+F+p}for(this.isZero()&&(p="0"+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}v(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var i=this.words[0];return 2===this.length?i+=67108864*this.words[1]:3===this.length&&1===this.words[2]?i+=4503599627370496+67108864*this.words[1]:this.length>2&&v(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-i:i},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(i,a){return v(void 0!==C),this.toArrayLike(C,i,a)},s.prototype.toArray=function(i,a){return this.toArrayLike(Array,i,a)},s.prototype.toArrayLike=function(i,a,p){var u=this.byteLength(),_=p||Math.max(1,u);v(u<=_,"byte array longer than desired length"),v(_>0,"Requested array length <= 0"),this.strip();var x,r,L="le"===a,I=new i(_),b=this.clone();if(L){for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[r]=x;for(;r<_;r++)I[r]=0}else{for(r=0;r<_-u;r++)I[r]=0;for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[_-r-1]=x}return I},s.prototype._countBits=Math.clz32?function(i){return 32-Math.clz32(i)}:function(i){var a=i,p=0;return a>=4096&&(p+=13,a>>>=13),a>=64&&(p+=7,a>>>=7),a>=8&&(p+=4,a>>>=4),a>=2&&(p+=2,a>>>=2),p+a},s.prototype._zeroBits=function(i){if(0===i)return 26;var a=i,p=0;return 0==(8191&a)&&(p+=13,a>>>=13),0==(127&a)&&(p+=7,a>>>=7),0==(15&a)&&(p+=4,a>>>=4),0==(3&a)&&(p+=2,a>>>=2),0==(1&a)&&p++,p},s.prototype.bitLength=function(){var a=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+a},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var i=0,a=0;ai.length?this.clone().ior(i):i.clone().ior(this)},s.prototype.uor=function(i){return this.length>i.length?this.clone().iuor(i):i.clone().iuor(this)},s.prototype.iuand=function(i){var a;a=this.length>i.length?i:this;for(var p=0;pi.length?this.clone().iand(i):i.clone().iand(this)},s.prototype.uand=function(i){return this.length>i.length?this.clone().iuand(i):i.clone().iuand(this)},s.prototype.iuxor=function(i){var a,p;this.length>i.length?(a=this,p=i):(a=i,p=this);for(var u=0;ui.length?this.clone().ixor(i):i.clone().ixor(this)},s.prototype.uxor=function(i){return this.length>i.length?this.clone().iuxor(i):i.clone().iuxor(this)},s.prototype.inotn=function(i){v("number"==typeof i&&i>=0);var a=0|Math.ceil(i/26),p=i%26;this._expand(a),p>0&&a--;for(var u=0;u0&&(this.words[u]=~this.words[u]&67108863>>26-p),this.strip()},s.prototype.notn=function(i){return this.clone().inotn(i)},s.prototype.setn=function(i,a){v("number"==typeof i&&i>=0);var p=i/26|0,u=i%26;return this._expand(p+1),this.words[p]=a?this.words[p]|1<i.length?(p=this,u=i):(p=i,u=this);for(var _=0,L=0;L>>26;for(;0!==_&&L>>26;if(this.length=p.length,0!==_)this.words[this.length]=_,this.length++;else if(p!==this)for(;Li.length?this.clone().iadd(i):i.clone().iadd(this)},s.prototype.isub=function(i){if(0!==i.negative){i.negative=0;var a=this.iadd(i);return i.negative=1,a._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(i),this.negative=1,this._normSign();var u,_,p=this.cmp(i);if(0===p)return this.negative=0,this.length=1,this.words[0]=0,this;p>0?(u=this,_=i):(u=i,_=this);for(var L=0,I=0;I<_.length;I++)L=(a=(0|u.words[I])-(0|_.words[I])+L)>>26,this.words[I]=67108863&a;for(;0!==L&&I>26,this.words[I]=67108863&a;if(0===L&&I>>13,te=0|u[1],xe=8191&te,Re=te>>>13,Fe=0|u[2],q=8191&Fe,j=Fe>>>13,we=0|u[3],Ae=8191&we,le=we>>>13,We=0|u[4],yt=8191&We,Ne=We>>>13,Ve=0|u[5],ue=8191&Ve,Te=Ve>>>13,ke=0|u[6],Y=8191&ke,X=ke>>>13,he=0|u[7],Me=8191&he,ze=he>>>13,ht=0|u[8],it=8191&ht,ft=ht>>>13,nt=0|u[9],st=8191&nt,wt=nt>>>13,Bt=0|_[0],Nt=8191&Bt,Vt=Bt>>>13,Oi=0|_[1],jt=8191&Oi,ti=Oi>>>13,Pi=0|_[2],si=8191&Pi,di=Pi>>>13,He=0|_[3],Se=8191&He,V=He>>>13,ve=0|_[4],Ee=8191&ve,et=ve>>>13,$t=0|_[5],Pt=8191&$t,Xt=$t>>>13,lt=0|_[6],Pe=8191<,Be=lt>>>13,rt=0|_[7],ot=8191&rt,At=rt>>>13,li=0|_[8],Ut=8191&li,Ft=li>>>13,Si=0|_[9],ai=8191&Si,ci=Si>>>13;p.negative=i.negative^a.negative,p.length=19;var rn=(I+(x=Math.imul(F,Nt))|0)+((8191&(r=(r=Math.imul(F,Vt))+Math.imul(B,Nt)|0))<<13)|0;I=((b=Math.imul(B,Vt))+(r>>>13)|0)+(rn>>>26)|0,rn&=67108863,x=Math.imul(xe,Nt),r=(r=Math.imul(xe,Vt))+Math.imul(Re,Nt)|0,b=Math.imul(Re,Vt);var Vi=(I+(x=x+Math.imul(F,jt)|0)|0)+((8191&(r=(r=r+Math.imul(F,ti)|0)+Math.imul(B,jt)|0))<<13)|0;I=((b=b+Math.imul(B,ti)|0)+(r>>>13)|0)+(Vi>>>26)|0,Vi&=67108863,x=Math.imul(q,Nt),r=(r=Math.imul(q,Vt))+Math.imul(j,Nt)|0,b=Math.imul(j,Vt),x=x+Math.imul(xe,jt)|0,r=(r=r+Math.imul(xe,ti)|0)+Math.imul(Re,jt)|0,b=b+Math.imul(Re,ti)|0;var Di=(I+(x=x+Math.imul(F,si)|0)|0)+((8191&(r=(r=r+Math.imul(F,di)|0)+Math.imul(B,si)|0))<<13)|0;I=((b=b+Math.imul(B,di)|0)+(r>>>13)|0)+(Di>>>26)|0,Di&=67108863,x=Math.imul(Ae,Nt),r=(r=Math.imul(Ae,Vt))+Math.imul(le,Nt)|0,b=Math.imul(le,Vt),x=x+Math.imul(q,jt)|0,r=(r=r+Math.imul(q,ti)|0)+Math.imul(j,jt)|0,b=b+Math.imul(j,ti)|0,x=x+Math.imul(xe,si)|0,r=(r=r+Math.imul(xe,di)|0)+Math.imul(Re,si)|0,b=b+Math.imul(Re,di)|0;var Xi=(I+(x=x+Math.imul(F,Se)|0)|0)+((8191&(r=(r=r+Math.imul(F,V)|0)+Math.imul(B,Se)|0))<<13)|0;I=((b=b+Math.imul(B,V)|0)+(r>>>13)|0)+(Xi>>>26)|0,Xi&=67108863,x=Math.imul(yt,Nt),r=(r=Math.imul(yt,Vt))+Math.imul(Ne,Nt)|0,b=Math.imul(Ne,Vt),x=x+Math.imul(Ae,jt)|0,r=(r=r+Math.imul(Ae,ti)|0)+Math.imul(le,jt)|0,b=b+Math.imul(le,ti)|0,x=x+Math.imul(q,si)|0,r=(r=r+Math.imul(q,di)|0)+Math.imul(j,si)|0,b=b+Math.imul(j,di)|0,x=x+Math.imul(xe,Se)|0,r=(r=r+Math.imul(xe,V)|0)+Math.imul(Re,Se)|0,b=b+Math.imul(Re,V)|0;var Ke=(I+(x=x+Math.imul(F,Ee)|0)|0)+((8191&(r=(r=r+Math.imul(F,et)|0)+Math.imul(B,Ee)|0))<<13)|0;I=((b=b+Math.imul(B,et)|0)+(r>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,x=Math.imul(ue,Nt),r=(r=Math.imul(ue,Vt))+Math.imul(Te,Nt)|0,b=Math.imul(Te,Vt),x=x+Math.imul(yt,jt)|0,r=(r=r+Math.imul(yt,ti)|0)+Math.imul(Ne,jt)|0,b=b+Math.imul(Ne,ti)|0,x=x+Math.imul(Ae,si)|0,r=(r=r+Math.imul(Ae,di)|0)+Math.imul(le,si)|0,b=b+Math.imul(le,di)|0,x=x+Math.imul(q,Se)|0,r=(r=r+Math.imul(q,V)|0)+Math.imul(j,Se)|0,b=b+Math.imul(j,V)|0,x=x+Math.imul(xe,Ee)|0,r=(r=r+Math.imul(xe,et)|0)+Math.imul(Re,Ee)|0,b=b+Math.imul(Re,et)|0;var mt=(I+(x=x+Math.imul(F,Pt)|0)|0)+((8191&(r=(r=r+Math.imul(F,Xt)|0)+Math.imul(B,Pt)|0))<<13)|0;I=((b=b+Math.imul(B,Xt)|0)+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,x=Math.imul(Y,Nt),r=(r=Math.imul(Y,Vt))+Math.imul(X,Nt)|0,b=Math.imul(X,Vt),x=x+Math.imul(ue,jt)|0,r=(r=r+Math.imul(ue,ti)|0)+Math.imul(Te,jt)|0,b=b+Math.imul(Te,ti)|0,x=x+Math.imul(yt,si)|0,r=(r=r+Math.imul(yt,di)|0)+Math.imul(Ne,si)|0,b=b+Math.imul(Ne,di)|0,x=x+Math.imul(Ae,Se)|0,r=(r=r+Math.imul(Ae,V)|0)+Math.imul(le,Se)|0,b=b+Math.imul(le,V)|0,x=x+Math.imul(q,Ee)|0,r=(r=r+Math.imul(q,et)|0)+Math.imul(j,Ee)|0,b=b+Math.imul(j,et)|0,x=x+Math.imul(xe,Pt)|0,r=(r=r+Math.imul(xe,Xt)|0)+Math.imul(Re,Pt)|0,b=b+Math.imul(Re,Xt)|0;var be=(I+(x=x+Math.imul(F,Pe)|0)|0)+((8191&(r=(r=r+Math.imul(F,Be)|0)+Math.imul(B,Pe)|0))<<13)|0;I=((b=b+Math.imul(B,Be)|0)+(r>>>13)|0)+(be>>>26)|0,be&=67108863,x=Math.imul(Me,Nt),r=(r=Math.imul(Me,Vt))+Math.imul(ze,Nt)|0,b=Math.imul(ze,Vt),x=x+Math.imul(Y,jt)|0,r=(r=r+Math.imul(Y,ti)|0)+Math.imul(X,jt)|0,b=b+Math.imul(X,ti)|0,x=x+Math.imul(ue,si)|0,r=(r=r+Math.imul(ue,di)|0)+Math.imul(Te,si)|0,b=b+Math.imul(Te,di)|0,x=x+Math.imul(yt,Se)|0,r=(r=r+Math.imul(yt,V)|0)+Math.imul(Ne,Se)|0,b=b+Math.imul(Ne,V)|0,x=x+Math.imul(Ae,Ee)|0,r=(r=r+Math.imul(Ae,et)|0)+Math.imul(le,Ee)|0,b=b+Math.imul(le,et)|0,x=x+Math.imul(q,Pt)|0,r=(r=r+Math.imul(q,Xt)|0)+Math.imul(j,Pt)|0,b=b+Math.imul(j,Xt)|0,x=x+Math.imul(xe,Pe)|0,r=(r=r+Math.imul(xe,Be)|0)+Math.imul(Re,Pe)|0,b=b+Math.imul(Re,Be)|0;var qe=(I+(x=x+Math.imul(F,ot)|0)|0)+((8191&(r=(r=r+Math.imul(F,At)|0)+Math.imul(B,ot)|0))<<13)|0;I=((b=b+Math.imul(B,At)|0)+(r>>>13)|0)+(qe>>>26)|0,qe&=67108863,x=Math.imul(it,Nt),r=(r=Math.imul(it,Vt))+Math.imul(ft,Nt)|0,b=Math.imul(ft,Vt),x=x+Math.imul(Me,jt)|0,r=(r=r+Math.imul(Me,ti)|0)+Math.imul(ze,jt)|0,b=b+Math.imul(ze,ti)|0,x=x+Math.imul(Y,si)|0,r=(r=r+Math.imul(Y,di)|0)+Math.imul(X,si)|0,b=b+Math.imul(X,di)|0,x=x+Math.imul(ue,Se)|0,r=(r=r+Math.imul(ue,V)|0)+Math.imul(Te,Se)|0,b=b+Math.imul(Te,V)|0,x=x+Math.imul(yt,Ee)|0,r=(r=r+Math.imul(yt,et)|0)+Math.imul(Ne,Ee)|0,b=b+Math.imul(Ne,et)|0,x=x+Math.imul(Ae,Pt)|0,r=(r=r+Math.imul(Ae,Xt)|0)+Math.imul(le,Pt)|0,b=b+Math.imul(le,Xt)|0,x=x+Math.imul(q,Pe)|0,r=(r=r+Math.imul(q,Be)|0)+Math.imul(j,Pe)|0,b=b+Math.imul(j,Be)|0,x=x+Math.imul(xe,ot)|0,r=(r=r+Math.imul(xe,At)|0)+Math.imul(Re,ot)|0,b=b+Math.imul(Re,At)|0;var vt=(I+(x=x+Math.imul(F,Ut)|0)|0)+((8191&(r=(r=r+Math.imul(F,Ft)|0)+Math.imul(B,Ut)|0))<<13)|0;I=((b=b+Math.imul(B,Ft)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,x=Math.imul(st,Nt),r=(r=Math.imul(st,Vt))+Math.imul(wt,Nt)|0,b=Math.imul(wt,Vt),x=x+Math.imul(it,jt)|0,r=(r=r+Math.imul(it,ti)|0)+Math.imul(ft,jt)|0,b=b+Math.imul(ft,ti)|0,x=x+Math.imul(Me,si)|0,r=(r=r+Math.imul(Me,di)|0)+Math.imul(ze,si)|0,b=b+Math.imul(ze,di)|0,x=x+Math.imul(Y,Se)|0,r=(r=r+Math.imul(Y,V)|0)+Math.imul(X,Se)|0,b=b+Math.imul(X,V)|0,x=x+Math.imul(ue,Ee)|0,r=(r=r+Math.imul(ue,et)|0)+Math.imul(Te,Ee)|0,b=b+Math.imul(Te,et)|0,x=x+Math.imul(yt,Pt)|0,r=(r=r+Math.imul(yt,Xt)|0)+Math.imul(Ne,Pt)|0,b=b+Math.imul(Ne,Xt)|0,x=x+Math.imul(Ae,Pe)|0,r=(r=r+Math.imul(Ae,Be)|0)+Math.imul(le,Pe)|0,b=b+Math.imul(le,Be)|0,x=x+Math.imul(q,ot)|0,r=(r=r+Math.imul(q,At)|0)+Math.imul(j,ot)|0,b=b+Math.imul(j,At)|0,x=x+Math.imul(xe,Ut)|0,r=(r=r+Math.imul(xe,Ft)|0)+Math.imul(Re,Ut)|0,b=b+Math.imul(Re,Ft)|0;var me=(I+(x=x+Math.imul(F,ai)|0)|0)+((8191&(r=(r=r+Math.imul(F,ci)|0)+Math.imul(B,ai)|0))<<13)|0;I=((b=b+Math.imul(B,ci)|0)+(r>>>13)|0)+(me>>>26)|0,me&=67108863,x=Math.imul(st,jt),r=(r=Math.imul(st,ti))+Math.imul(wt,jt)|0,b=Math.imul(wt,ti),x=x+Math.imul(it,si)|0,r=(r=r+Math.imul(it,di)|0)+Math.imul(ft,si)|0,b=b+Math.imul(ft,di)|0,x=x+Math.imul(Me,Se)|0,r=(r=r+Math.imul(Me,V)|0)+Math.imul(ze,Se)|0,b=b+Math.imul(ze,V)|0,x=x+Math.imul(Y,Ee)|0,r=(r=r+Math.imul(Y,et)|0)+Math.imul(X,Ee)|0,b=b+Math.imul(X,et)|0,x=x+Math.imul(ue,Pt)|0,r=(r=r+Math.imul(ue,Xt)|0)+Math.imul(Te,Pt)|0,b=b+Math.imul(Te,Xt)|0,x=x+Math.imul(yt,Pe)|0,r=(r=r+Math.imul(yt,Be)|0)+Math.imul(Ne,Pe)|0,b=b+Math.imul(Ne,Be)|0,x=x+Math.imul(Ae,ot)|0,r=(r=r+Math.imul(Ae,At)|0)+Math.imul(le,ot)|0,b=b+Math.imul(le,At)|0,x=x+Math.imul(q,Ut)|0,r=(r=r+Math.imul(q,Ft)|0)+Math.imul(j,Ut)|0,b=b+Math.imul(j,Ft)|0;var $e=(I+(x=x+Math.imul(xe,ai)|0)|0)+((8191&(r=(r=r+Math.imul(xe,ci)|0)+Math.imul(Re,ai)|0))<<13)|0;I=((b=b+Math.imul(Re,ci)|0)+(r>>>13)|0)+($e>>>26)|0,$e&=67108863,x=Math.imul(st,si),r=(r=Math.imul(st,di))+Math.imul(wt,si)|0,b=Math.imul(wt,di),x=x+Math.imul(it,Se)|0,r=(r=r+Math.imul(it,V)|0)+Math.imul(ft,Se)|0,b=b+Math.imul(ft,V)|0,x=x+Math.imul(Me,Ee)|0,r=(r=r+Math.imul(Me,et)|0)+Math.imul(ze,Ee)|0,b=b+Math.imul(ze,et)|0,x=x+Math.imul(Y,Pt)|0,r=(r=r+Math.imul(Y,Xt)|0)+Math.imul(X,Pt)|0,b=b+Math.imul(X,Xt)|0,x=x+Math.imul(ue,Pe)|0,r=(r=r+Math.imul(ue,Be)|0)+Math.imul(Te,Pe)|0,b=b+Math.imul(Te,Be)|0,x=x+Math.imul(yt,ot)|0,r=(r=r+Math.imul(yt,At)|0)+Math.imul(Ne,ot)|0,b=b+Math.imul(Ne,At)|0,x=x+Math.imul(Ae,Ut)|0,r=(r=r+Math.imul(Ae,Ft)|0)+Math.imul(le,Ut)|0,b=b+Math.imul(le,Ft)|0;var St=(I+(x=x+Math.imul(q,ai)|0)|0)+((8191&(r=(r=r+Math.imul(q,ci)|0)+Math.imul(j,ai)|0))<<13)|0;I=((b=b+Math.imul(j,ci)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,x=Math.imul(st,Se),r=(r=Math.imul(st,V))+Math.imul(wt,Se)|0,b=Math.imul(wt,V),x=x+Math.imul(it,Ee)|0,r=(r=r+Math.imul(it,et)|0)+Math.imul(ft,Ee)|0,b=b+Math.imul(ft,et)|0,x=x+Math.imul(Me,Pt)|0,r=(r=r+Math.imul(Me,Xt)|0)+Math.imul(ze,Pt)|0,b=b+Math.imul(ze,Xt)|0,x=x+Math.imul(Y,Pe)|0,r=(r=r+Math.imul(Y,Be)|0)+Math.imul(X,Pe)|0,b=b+Math.imul(X,Be)|0,x=x+Math.imul(ue,ot)|0,r=(r=r+Math.imul(ue,At)|0)+Math.imul(Te,ot)|0,b=b+Math.imul(Te,At)|0,x=x+Math.imul(yt,Ut)|0,r=(r=r+Math.imul(yt,Ft)|0)+Math.imul(Ne,Ut)|0,b=b+Math.imul(Ne,Ft)|0;var Rt=(I+(x=x+Math.imul(Ae,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Ae,ci)|0)+Math.imul(le,ai)|0))<<13)|0;I=((b=b+Math.imul(le,ci)|0)+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,x=Math.imul(st,Ee),r=(r=Math.imul(st,et))+Math.imul(wt,Ee)|0,b=Math.imul(wt,et),x=x+Math.imul(it,Pt)|0,r=(r=r+Math.imul(it,Xt)|0)+Math.imul(ft,Pt)|0,b=b+Math.imul(ft,Xt)|0,x=x+Math.imul(Me,Pe)|0,r=(r=r+Math.imul(Me,Be)|0)+Math.imul(ze,Pe)|0,b=b+Math.imul(ze,Be)|0,x=x+Math.imul(Y,ot)|0,r=(r=r+Math.imul(Y,At)|0)+Math.imul(X,ot)|0,b=b+Math.imul(X,At)|0,x=x+Math.imul(ue,Ut)|0,r=(r=r+Math.imul(ue,Ft)|0)+Math.imul(Te,Ut)|0,b=b+Math.imul(Te,Ft)|0;var yi=(I+(x=x+Math.imul(yt,ai)|0)|0)+((8191&(r=(r=r+Math.imul(yt,ci)|0)+Math.imul(Ne,ai)|0))<<13)|0;I=((b=b+Math.imul(Ne,ci)|0)+(r>>>13)|0)+(yi>>>26)|0,yi&=67108863,x=Math.imul(st,Pt),r=(r=Math.imul(st,Xt))+Math.imul(wt,Pt)|0,b=Math.imul(wt,Xt),x=x+Math.imul(it,Pe)|0,r=(r=r+Math.imul(it,Be)|0)+Math.imul(ft,Pe)|0,b=b+Math.imul(ft,Be)|0,x=x+Math.imul(Me,ot)|0,r=(r=r+Math.imul(Me,At)|0)+Math.imul(ze,ot)|0,b=b+Math.imul(ze,At)|0,x=x+Math.imul(Y,Ut)|0,r=(r=r+Math.imul(Y,Ft)|0)+Math.imul(X,Ut)|0,b=b+Math.imul(X,Ft)|0;var Ri=(I+(x=x+Math.imul(ue,ai)|0)|0)+((8191&(r=(r=r+Math.imul(ue,ci)|0)+Math.imul(Te,ai)|0))<<13)|0;I=((b=b+Math.imul(Te,ci)|0)+(r>>>13)|0)+(Ri>>>26)|0,Ri&=67108863,x=Math.imul(st,Pe),r=(r=Math.imul(st,Be))+Math.imul(wt,Pe)|0,b=Math.imul(wt,Be),x=x+Math.imul(it,ot)|0,r=(r=r+Math.imul(it,At)|0)+Math.imul(ft,ot)|0,b=b+Math.imul(ft,At)|0,x=x+Math.imul(Me,Ut)|0,r=(r=r+Math.imul(Me,Ft)|0)+Math.imul(ze,Ut)|0,b=b+Math.imul(ze,Ft)|0;var Ii=(I+(x=x+Math.imul(Y,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Y,ci)|0)+Math.imul(X,ai)|0))<<13)|0;I=((b=b+Math.imul(X,ci)|0)+(r>>>13)|0)+(Ii>>>26)|0,Ii&=67108863,x=Math.imul(st,ot),r=(r=Math.imul(st,At))+Math.imul(wt,ot)|0,b=Math.imul(wt,At),x=x+Math.imul(it,Ut)|0,r=(r=r+Math.imul(it,Ft)|0)+Math.imul(ft,Ut)|0,b=b+Math.imul(ft,Ft)|0;var Ki=(I+(x=x+Math.imul(Me,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Me,ci)|0)+Math.imul(ze,ai)|0))<<13)|0;I=((b=b+Math.imul(ze,ci)|0)+(r>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,x=Math.imul(st,Ut),r=(r=Math.imul(st,Ft))+Math.imul(wt,Ut)|0,b=Math.imul(wt,Ft);var at=(I+(x=x+Math.imul(it,ai)|0)|0)+((8191&(r=(r=r+Math.imul(it,ci)|0)+Math.imul(ft,ai)|0))<<13)|0;I=((b=b+Math.imul(ft,ci)|0)+(r>>>13)|0)+(at>>>26)|0,at&=67108863;var Qt=(I+(x=Math.imul(st,ai))|0)+((8191&(r=(r=Math.imul(st,ci))+Math.imul(wt,ai)|0))<<13)|0;return I=((b=Math.imul(wt,ci))+(r>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,L[0]=rn,L[1]=Vi,L[2]=Di,L[3]=Xi,L[4]=Ke,L[5]=mt,L[6]=be,L[7]=qe,L[8]=vt,L[9]=me,L[10]=$e,L[11]=St,L[12]=Rt,L[13]=yi,L[14]=Ri,L[15]=Ii,L[16]=Ki,L[17]=at,L[18]=Qt,0!==I&&(L[19]=I,p.length++),p};function G(y,i,a){return(new W).mulp(y,i,a)}function W(y,i){this.x=y,this.y=i}Math.imul||(w=D),s.prototype.mulTo=function(i,a){var p,u=this.length+i.length;return p=10===this.length&&10===i.length?w(this,i,a):u<63?D(this,i,a):u<1024?function(y,i,a){a.negative=i.negative^y.negative,a.length=y.length+i.length;for(var p=0,u=0,_=0;_>>26)|0)>>>26,L&=67108863}a.words[_]=I,p=L,L=u}return 0!==p?a.words[_]=p:a.length--,a.strip()}(this,i,a):G(this,i,a),p},W.prototype.makeRBT=function(i){for(var a=new Array(i),p=s.prototype._countBits(i)-1,u=0;u>=1;return u},W.prototype.permute=function(i,a,p,u,_,L){for(var I=0;I>>=1)_++;return 1<<_+1+u},W.prototype.conjugate=function(i,a,p){if(!(p<=1))for(var u=0;u

>>=13),_>>>=13;for(L=2*a;L>=26,a+=u/67108864|0,a+=_>>>26,this.words[p]=67108863&_}return 0!==a&&(this.words[p]=a,this.length++),this},s.prototype.muln=function(i){return this.clone().imuln(i)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(i){var a=function(y){for(var i=new Array(y.bitLength()),a=0;a>>u}return i}(i);if(0===a.length)return new s(1);for(var p=this,u=0;u=0);var _,a=i%26,p=(i-a)/26,u=67108863>>>26-a<<26-a;if(0!==a){var L=0;for(_=0;_>>26-a}L&&(this.words[_]=L,this.length++)}if(0!==p){for(_=this.length-1;_>=0;_--)this.words[_+p]=this.words[_];for(_=0;_=0),u=a?(a-a%26)/26:0;var _=i%26,L=Math.min((i-_)/26,this.length),I=67108863^67108863>>>_<<_,x=p;if(u-=L,u=Math.max(0,u),x){for(var r=0;rL)for(this.length-=L,r=0;r=0&&(0!==b||r>=u);r--){var J=0|this.words[r];this.words[r]=b<<26-_|J>>>_,b=J&I}return x&&0!==b&&(x.words[x.length++]=b),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(i,a,p){return v(0===this.negative),this.iushrn(i,a,p)},s.prototype.shln=function(i){return this.clone().ishln(i)},s.prototype.ushln=function(i){return this.clone().iushln(i)},s.prototype.shrn=function(i){return this.clone().ishrn(i)},s.prototype.ushrn=function(i){return this.clone().iushrn(i)},s.prototype.testn=function(i){v("number"==typeof i&&i>=0);var a=i%26,p=(i-a)/26;return!(this.length<=p||!(this.words[p]&1<=0);var a=i%26,p=(i-a)/26;return v(0===this.negative,"imaskn works only with positive numbers"),this.length<=p?this:(0!==a&&p++,this.length=Math.min(p,this.length),0!==a&&(this.words[this.length-1]&=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},s.prototype.isubn=function(i){if(v("number"==typeof i),v(i<67108864),i<0)return this.iaddn(-i);if(0!==this.negative)return this.negative=0,this.iaddn(i),this.negative=1,this;if(this.words[0]-=i,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(x/67108864|0),this.words[_+p]=67108863&L}for(;_>26,this.words[_+p]=67108863&L;if(0===I)return this.strip();for(v(-1===I),I=0,_=0;_>26,this.words[_]=67108863&L;return this.negative=1,this.strip()},s.prototype._wordDiv=function(i,a){var p,u=this.clone(),_=i,L=0|_.words[_.length-1];0!=(p=26-this._countBits(L))&&(_=_.ushln(p),u.iushln(p),L=0|_.words[_.length-1]);var r,x=u.length-_.length;if("mod"!==a){(r=new s(null)).length=x+1,r.words=new Array(r.length);for(var b=0;b=0;F--){var B=67108864*(0|u.words[_.length+F])+(0|u.words[_.length+F-1]);for(B=Math.min(B/L|0,67108863),u._ishlnsubmul(_,B,F);0!==u.negative;)B--,u.negative=0,u._ishlnsubmul(_,1,F),u.isZero()||(u.negative^=1);r&&(r.words[F]=B)}return r&&r.strip(),u.strip(),"div"!==a&&0!==p&&u.iushrn(p),{div:r||null,mod:u}},s.prototype.divmod=function(i,a,p){return v(!i.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===i.negative?(L=this.neg().divmod(i,a),"mod"!==a&&(u=L.div.neg()),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.iadd(i)),{div:u,mod:_}):0===this.negative&&0!==i.negative?(L=this.divmod(i.neg(),a),"mod"!==a&&(u=L.div.neg()),{div:u,mod:L.mod}):0!=(this.negative&i.negative)?(L=this.neg().divmod(i.neg(),a),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.isub(i)),{div:L.div,mod:_}):i.length>this.length||this.cmp(i)<0?{div:new s(0),mod:this}:1===i.length?"div"===a?{div:this.divn(i.words[0]),mod:null}:"mod"===a?{div:null,mod:new s(this.modn(i.words[0]))}:{div:this.divn(i.words[0]),mod:new s(this.modn(i.words[0]))}:this._wordDiv(i,a);var u,_,L},s.prototype.div=function(i){return this.divmod(i,"div",!1).div},s.prototype.mod=function(i){return this.divmod(i,"mod",!1).mod},s.prototype.umod=function(i){return this.divmod(i,"mod",!0).mod},s.prototype.divRound=function(i){var a=this.divmod(i);if(a.mod.isZero())return a.div;var p=0!==a.div.negative?a.mod.isub(i):a.mod,u=i.ushrn(1),_=i.andln(1),L=p.cmp(u);return L<0||1===_&&0===L?a.div:0!==a.div.negative?a.div.isubn(1):a.div.iaddn(1)},s.prototype.modn=function(i){v(i<=67108863);for(var a=(1<<26)%i,p=0,u=this.length-1;u>=0;u--)p=(a*p+(0|this.words[u]))%i;return p},s.prototype.idivn=function(i){v(i<=67108863);for(var a=0,p=this.length-1;p>=0;p--){var u=(0|this.words[p])+67108864*a;this.words[p]=u/i|0,a=u%i}return this.strip()},s.prototype.divn=function(i){return this.clone().idivn(i)},s.prototype.egcd=function(i){v(0===i.negative),v(!i.isZero());var a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=new s(0),I=new s(1),x=0;a.isEven()&&p.isEven();)a.iushrn(1),p.iushrn(1),++x;for(var r=p.clone(),b=a.clone();!a.isZero();){for(var J=0,F=1;0==(a.words[0]&F)&&J<26;++J,F<<=1);if(J>0)for(a.iushrn(J);J-- >0;)(u.isOdd()||_.isOdd())&&(u.iadd(r),_.isub(b)),u.iushrn(1),_.iushrn(1);for(var B=0,te=1;0==(p.words[0]&te)&&B<26;++B,te<<=1);if(B>0)for(p.iushrn(B);B-- >0;)(L.isOdd()||I.isOdd())&&(L.iadd(r),I.isub(b)),L.iushrn(1),I.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(L),_.isub(I)):(p.isub(a),L.isub(u),I.isub(_))}return{a:L,b:I,gcd:p.iushln(x)}},s.prototype._invmp=function(i){v(0===i.negative),v(!i.isZero());var J,a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=p.clone();a.cmpn(1)>0&&p.cmpn(1)>0;){for(var I=0,x=1;0==(a.words[0]&x)&&I<26;++I,x<<=1);if(I>0)for(a.iushrn(I);I-- >0;)u.isOdd()&&u.iadd(L),u.iushrn(1);for(var r=0,b=1;0==(p.words[0]&b)&&r<26;++r,b<<=1);if(r>0)for(p.iushrn(r);r-- >0;)_.isOdd()&&_.iadd(L),_.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(_)):(p.isub(a),_.isub(u))}return(J=0===a.cmpn(1)?u:_).cmpn(0)<0&&J.iadd(i),J},s.prototype.gcd=function(i){if(this.isZero())return i.abs();if(i.isZero())return this.abs();var a=this.clone(),p=i.clone();a.negative=0,p.negative=0;for(var u=0;a.isEven()&&p.isEven();u++)a.iushrn(1),p.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;p.isEven();)p.iushrn(1);var _=a.cmp(p);if(_<0){var L=a;a=p,p=L}else if(0===_||0===p.cmpn(1))break;a.isub(p)}return p.iushln(u)},s.prototype.invm=function(i){return this.egcd(i).a.umod(i)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(i){return this.words[0]&i},s.prototype.bincn=function(i){v("number"==typeof i);var a=i%26,p=(i-a)/26,u=1<>>26,this.words[L]=I&=67108863}return 0!==_&&(this.words[L]=_,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(i){var p,a=i<0;if(0!==this.negative&&!a)return-1;if(0===this.negative&&a)return 1;if(this.strip(),this.length>1)p=1;else{a&&(i=-i),v(i<=67108863,"Number is too big");var u=0|this.words[0];p=u===i?0:ui.length)return 1;if(this.length=0;p--){var u=0|this.words[p],_=0|i.words[p];if(u!==_){u<_?a=-1:u>_&&(a=1);break}}return a},s.prototype.gtn=function(i){return 1===this.cmpn(i)},s.prototype.gt=function(i){return 1===this.cmp(i)},s.prototype.gten=function(i){return this.cmpn(i)>=0},s.prototype.gte=function(i){return this.cmp(i)>=0},s.prototype.ltn=function(i){return-1===this.cmpn(i)},s.prototype.lt=function(i){return-1===this.cmp(i)},s.prototype.lten=function(i){return this.cmpn(i)<=0},s.prototype.lte=function(i){return this.cmp(i)<=0},s.prototype.eqn=function(i){return 0===this.cmpn(i)},s.prototype.eq=function(i){return 0===this.cmp(i)},s.red=function(i){return new se(i)},s.prototype.toRed=function(i){return v(!this.red,"Already a number in reduction context"),v(0===this.negative,"red works only with positives"),i.convertTo(this)._forceRed(i)},s.prototype.fromRed=function(){return v(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(i){return this.red=i,this},s.prototype.forceRed=function(i){return v(!this.red,"Already a number in reduction context"),this._forceRed(i)},s.prototype.redAdd=function(i){return v(this.red,"redAdd works only with red numbers"),this.red.add(this,i)},s.prototype.redIAdd=function(i){return v(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,i)},s.prototype.redSub=function(i){return v(this.red,"redSub works only with red numbers"),this.red.sub(this,i)},s.prototype.redISub=function(i){return v(this.red,"redISub works only with red numbers"),this.red.isub(this,i)},s.prototype.redShl=function(i){return v(this.red,"redShl works only with red numbers"),this.red.shl(this,i)},s.prototype.redMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.mul(this,i)},s.prototype.redIMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.imul(this,i)},s.prototype.redSqr=function(){return v(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return v(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return v(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return v(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return v(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(i){return v(this.red&&!i.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,i)};var ee={k256:null,p224:null,p192:null,p25519:null};function ie(y,i){this.name=y,this.p=new s(i,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _e(){ie.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function fe(){ie.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function de(){ie.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function ne(){ie.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function se(y){if("string"==typeof y){var i=s._prime(y);this.m=i.p,this.prime=i}else v(y.gtn(1),"modulus must be greater than 1"),this.m=y,this.prime=null}function oe(y){se.call(this,y),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}ie.prototype._tmp=function(){var i=new s(null);return i.words=new Array(Math.ceil(this.n/13)),i},ie.prototype.ireduce=function(i){var p,a=i;do{this.split(a,this.tmp),p=(a=(a=this.imulK(a)).iadd(this.tmp)).bitLength()}while(p>this.n);var u=p0?a.isub(this.p):void 0!==a.strip?a.strip():a._strip(),a},ie.prototype.split=function(i,a){i.iushrn(this.n,0,a)},ie.prototype.imulK=function(i){return i.imul(this.k)},M(_e,ie),_e.prototype.split=function(i,a){for(var p=4194303,u=Math.min(i.length,9),_=0;_>>22,L=I}i.words[_-10]=L>>>=22,i.length-=0===L&&i.length>10?10:9},_e.prototype.imulK=function(i){i.words[i.length]=0,i.words[i.length+1]=0,i.length+=2;for(var a=0,p=0;p>>=26,i.words[p]=_,a=u}return 0!==a&&(i.words[i.length++]=a),i},s._prime=function(i){if(ee[i])return ee[i];var a;if("k256"===i)a=new _e;else if("p224"===i)a=new fe;else if("p192"===i)a=new de;else{if("p25519"!==i)throw new Error("Unknown prime "+i);a=new ne}return ee[i]=a,a},se.prototype._verify1=function(i){v(0===i.negative,"red works only with positives"),v(i.red,"red works only with red numbers")},se.prototype._verify2=function(i,a){v(0==(i.negative|a.negative),"red works only with positives"),v(i.red&&i.red===a.red,"red works only with red numbers")},se.prototype.imod=function(i){return this.prime?this.prime.ireduce(i)._forceRed(this):i.umod(this.m)._forceRed(this)},se.prototype.neg=function(i){return i.isZero()?i.clone():this.m.sub(i)._forceRed(this)},se.prototype.add=function(i,a){this._verify2(i,a);var p=i.add(a);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},se.prototype.iadd=function(i,a){this._verify2(i,a);var p=i.iadd(a);return p.cmp(this.m)>=0&&p.isub(this.m),p},se.prototype.sub=function(i,a){this._verify2(i,a);var p=i.sub(a);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},se.prototype.isub=function(i,a){this._verify2(i,a);var p=i.isub(a);return p.cmpn(0)<0&&p.iadd(this.m),p},se.prototype.shl=function(i,a){return this._verify1(i),this.imod(i.ushln(a))},se.prototype.imul=function(i,a){return this._verify2(i,a),this.imod(i.imul(a))},se.prototype.mul=function(i,a){return this._verify2(i,a),this.imod(i.mul(a))},se.prototype.isqr=function(i){return this.imul(i,i.clone())},se.prototype.sqr=function(i){return this.mul(i,i)},se.prototype.sqrt=function(i){if(i.isZero())return i.clone();var a=this.m.andln(3);if(v(a%2==1),3===a){var p=this.m.add(new s(1)).iushrn(2);return this.pow(i,p)}for(var u=this.m.subn(1),_=0;!u.isZero()&&0===u.andln(1);)_++,u.iushrn(1);v(!u.isZero());var L=new s(1).toRed(this),I=L.redNeg(),x=this.m.subn(1).iushrn(1),r=this.m.bitLength();for(r=new s(2*r*r).toRed(this);0!==this.pow(r,x).cmp(I);)r.redIAdd(I);for(var b=this.pow(r,u),J=this.pow(i,u.addn(1).iushrn(1)),F=this.pow(i,u),B=_;0!==F.cmp(L);){for(var te=F,xe=0;0!==te.cmp(L);xe++)te=te.redSqr();v(xe=0;_--){for(var b=a.words[_],J=r-1;J>=0;J--){var F=b>>J&1;L!==u[0]&&(L=this.sqr(L)),0!==F||0!==I?(I<<=1,I|=F,(4==++x||0===_&&0===J)&&(L=this.mul(L,u[I]),x=0,I=0)):x=0}r=26}return L},se.prototype.convertTo=function(i){var a=i.umod(this.m);return a===i?a.clone():a},se.prototype.convertFrom=function(i){var a=i.clone();return a.red=null,a},s.mont=function(i){return new oe(i)},M(oe,se),oe.prototype.convertTo=function(i){return this.imod(i.ushln(this.shift))},oe.prototype.convertFrom=function(i){var a=this.imod(i.mul(this.rinv));return a.red=null,a},oe.prototype.imul=function(i,a){if(i.isZero()||a.isZero())return i.words[0]=0,i.length=1,i;var p=i.imul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.mul=function(i,a){if(i.isZero()||a.isZero())return new s(0)._forceRed(this);var p=i.mul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.invm=function(i){return this.imod(i._invmp(this.m).mul(this.r2))._forceRed(this)}}(Ue=m.nmd(Ue),this)},5343:(Ue,K)=>{"use strict";K.byteLength=function(S){var D=C(S),U=D[1];return 3*(D[0]+U)/4-U},K.toByteArray=function(S){var D,_e,w=C(S),U=w[0],G=w[1],W=new t(function(S,D,w){return 3*(D+w)/4-w}(0,U,G)),ee=0,ie=G>0?U-4:U;for(_e=0;_e>16&255,W[ee++]=D>>8&255,W[ee++]=255&D;return 2===G&&(D=e[S.charCodeAt(_e)]<<2|e[S.charCodeAt(_e+1)]>>4,W[ee++]=255&D),1===G&&(D=e[S.charCodeAt(_e)]<<10|e[S.charCodeAt(_e+1)]<<4|e[S.charCodeAt(_e+2)]>>2,W[ee++]=D>>8&255,W[ee++]=255&D),W},K.fromByteArray=function(S){for(var D,w=S.length,U=w%3,G=[],W=16383,ee=0,ie=w-U;eeie?ie:ee+W));return 1===U?G.push(m[(D=S[w-1])>>2]+m[D<<4&63]+"=="):2===U&&G.push(m[(D=(S[w-2]<<8)+S[w-1])>>10]+m[D>>4&63]+m[D<<2&63]+"="),G.join("")};for(var m=[],e=[],t="undefined"!=typeof Uint8Array?Uint8Array:Array,v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",M=0,s=v.length;M0)throw new Error("Invalid string. Length must be a multiple of 4");var w=S.indexOf("=");return-1===w&&(w=D),[w,w===D?0:4-w%4]}function O(S){return m[S>>18&63]+m[S>>12&63]+m[S>>6&63]+m[63&S]}function T(S,D,w){for(var G=[],W=D;W=48&&_<=57?_-48:_>=65&&_<=70?_-55:_>=97&&_<=102?_-87:void v(!1,"Invalid character in "+p)}function P(p,u,_){var L=c(p,_);return _-1>=u&&(L|=c(p,_-1)<<4),L}function o(p,u,_,L){for(var I=0,x=0,r=Math.min(p.length,_),b=u;b=49?J-49+10:J>=17?J-17+10:J,v(J>=0&&x0?u:_},s.min=function(u,_){return u.cmp(_)<0?u:_},s.prototype._init=function(u,_,L){if("number"==typeof u)return this._initNumber(u,_,L);if("object"==typeof u)return this._initArray(u,_,L);"hex"===_&&(_=16),v(_===(0|_)&&_>=2&&_<=36);var I=0;"-"===(u=u.toString().replace(/\s+/g,""))[0]&&(I++,this.negative=1),I=0;I-=3)this.words[x]|=(r=u[I]|u[I-1]<<8|u[I-2]<<16)<>>26-b&67108863,(b+=24)>=26&&(b-=26,x++);else if("le"===L)for(I=0,x=0;I>>26-b&67108863,(b+=24)>=26&&(b-=26,x++);return this._strip()},s.prototype._parseHex=function(u,_,L){this.length=Math.ceil((u.length-_)/6),this.words=new Array(this.length);for(var I=0;I=_;I-=2)b=P(u,_,I)<=18?(x-=18,this.words[r+=1]|=b>>>26):x+=8;else for(I=(u.length-_)%2==0?_+1:_;I=18?(x-=18,this.words[r+=1]|=b>>>26):x+=8;this._strip()},s.prototype._parseBase=function(u,_,L){this.words=[0],this.length=1;for(var I=0,x=1;x<=67108863;x*=_)I++;I--,x=x/_|0;for(var r=u.length-L,b=r%I,J=Math.min(r,r-b)+L,F=0,B=L;B1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=T}catch(p){s.prototype.inspect=T}else s.prototype.inspect=T;function T(){return(this.red?""}var R=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],S=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],D=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function G(p,u,_){_.negative=u.negative^p.negative;var L=p.length+u.length|0;_.length=L,L=L-1|0;var I=0|p.words[0],x=0|u.words[0],r=I*x,J=r/67108864|0;_.words[0]=67108863&r;for(var F=1;F>>26,te=67108863&J,xe=Math.min(F,u.length-1),Re=Math.max(0,F-p.length+1);Re<=xe;Re++)B+=(r=(I=0|p.words[F-Re|0])*(x=0|u.words[Re])+te)/67108864|0,te=67108863&r;_.words[F]=0|te,J=0|B}return 0!==J?_.words[F]=0|J:_.length--,_._strip()}s.prototype.toString=function(u,_){var L;if(_=0|_||1,16===(u=u||10)||"hex"===u){L="";for(var I=0,x=0,r=0;r>>24-I&16777215)||r!==this.length-1?R[6-J.length]+J+L:J+L,(I+=2)>=26&&(I-=26,r--)}for(0!==x&&(L=x.toString(16)+L);L.length%_!=0;)L="0"+L;return 0!==this.negative&&(L="-"+L),L}if(u===(0|u)&&u>=2&&u<=36){var F=S[u],B=D[u];L="";var te=this.clone();for(te.negative=0;!te.isZero();){var xe=te.modrn(B).toString(u);L=(te=te.idivn(B)).isZero()?xe+L:R[F-xe.length]+xe+L}for(this.isZero()&&(L="0"+L);L.length%_!=0;)L="0"+L;return 0!==this.negative&&(L="-"+L),L}v(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var u=this.words[0];return 2===this.length?u+=67108864*this.words[1]:3===this.length&&1===this.words[2]?u+=4503599627370496+67108864*this.words[1]:this.length>2&&v(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-u:u},s.prototype.toJSON=function(){return this.toString(16,2)},C&&(s.prototype.toBuffer=function(u,_){return this.toArrayLike(C,u,_)}),s.prototype.toArray=function(u,_){return this.toArrayLike(Array,u,_)},s.prototype.toArrayLike=function(u,_,L){this._strip();var I=this.byteLength(),x=L||Math.max(1,I);v(I<=x,"byte array longer than desired length"),v(x>0,"Requested array length <= 0");var r=function(u,_){return u.allocUnsafe?u.allocUnsafe(_):new u(_)}(u,x);return this["_toArrayLike"+("le"===_?"LE":"BE")](r,I),r},s.prototype._toArrayLikeLE=function(u,_){for(var L=0,I=0,x=0,r=0;x>8&255),L>16&255),6===r?(L>24&255),I=0,r=0):(I=b>>>24,r+=2)}if(L=0&&(u[L--]=b>>8&255),L>=0&&(u[L--]=b>>16&255),6===r?(L>=0&&(u[L--]=b>>24&255),I=0,r=0):(I=b>>>24,r+=2)}if(L>=0)for(u[L--]=I;L>=0;)u[L--]=0},s.prototype._countBits=Math.clz32?function(u){return 32-Math.clz32(u)}:function(u){var _=u,L=0;return _>=4096&&(L+=13,_>>>=13),_>=64&&(L+=7,_>>>=7),_>=8&&(L+=4,_>>>=4),_>=2&&(L+=2,_>>>=2),L+_},s.prototype._zeroBits=function(u){if(0===u)return 26;var _=u,L=0;return 0==(8191&_)&&(L+=13,_>>>=13),0==(127&_)&&(L+=7,_>>>=7),0==(15&_)&&(L+=4,_>>>=4),0==(3&_)&&(L+=2,_>>>=2),0==(1&_)&&L++,L},s.prototype.bitLength=function(){var _=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+_},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var u=0,_=0;_u.length?this.clone().ior(u):u.clone().ior(this)},s.prototype.uor=function(u){return this.length>u.length?this.clone().iuor(u):u.clone().iuor(this)},s.prototype.iuand=function(u){var _;_=this.length>u.length?u:this;for(var L=0;L<_.length;L++)this.words[L]=this.words[L]&u.words[L];return this.length=_.length,this._strip()},s.prototype.iand=function(u){return v(0==(this.negative|u.negative)),this.iuand(u)},s.prototype.and=function(u){return this.length>u.length?this.clone().iand(u):u.clone().iand(this)},s.prototype.uand=function(u){return this.length>u.length?this.clone().iuand(u):u.clone().iuand(this)},s.prototype.iuxor=function(u){var _,L;this.length>u.length?(_=this,L=u):(_=u,L=this);for(var I=0;Iu.length?this.clone().ixor(u):u.clone().ixor(this)},s.prototype.uxor=function(u){return this.length>u.length?this.clone().iuxor(u):u.clone().iuxor(this)},s.prototype.inotn=function(u){v("number"==typeof u&&u>=0);var _=0|Math.ceil(u/26),L=u%26;this._expand(_),L>0&&_--;for(var I=0;I<_;I++)this.words[I]=67108863&~this.words[I];return L>0&&(this.words[I]=~this.words[I]&67108863>>26-L),this._strip()},s.prototype.notn=function(u){return this.clone().inotn(u)},s.prototype.setn=function(u,_){v("number"==typeof u&&u>=0);var L=u/26|0,I=u%26;return this._expand(L+1),this.words[L]=_?this.words[L]|1<u.length?(L=this,I=u):(L=u,I=this);for(var x=0,r=0;r>>26;for(;0!==x&&r>>26;if(this.length=L.length,0!==x)this.words[this.length]=x,this.length++;else if(L!==this)for(;ru.length?this.clone().iadd(u):u.clone().iadd(this)},s.prototype.isub=function(u){if(0!==u.negative){u.negative=0;var _=this.iadd(u);return u.negative=1,_._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(u),this.negative=1,this._normSign();var I,x,L=this.cmp(u);if(0===L)return this.negative=0,this.length=1,this.words[0]=0,this;L>0?(I=this,x=u):(I=u,x=this);for(var r=0,b=0;b>26,this.words[b]=67108863&_;for(;0!==r&&b>26,this.words[b]=67108863&_;if(0===r&&b>>13,Fe=0|I[1],q=8191&Fe,j=Fe>>>13,we=0|I[2],Ae=8191&we,le=we>>>13,We=0|I[3],yt=8191&We,Ne=We>>>13,Ve=0|I[4],ue=8191&Ve,Te=Ve>>>13,ke=0|I[5],Y=8191&ke,X=ke>>>13,he=0|I[6],Me=8191&he,ze=he>>>13,ht=0|I[7],it=8191&ht,ft=ht>>>13,nt=0|I[8],st=8191&nt,wt=nt>>>13,Bt=0|I[9],Nt=8191&Bt,Vt=Bt>>>13,Oi=0|x[0],jt=8191&Oi,ti=Oi>>>13,Pi=0|x[1],si=8191&Pi,di=Pi>>>13,He=0|x[2],Se=8191&He,V=He>>>13,ve=0|x[3],Ee=8191&ve,et=ve>>>13,$t=0|x[4],Pt=8191&$t,Xt=$t>>>13,lt=0|x[5],Pe=8191<,Be=lt>>>13,rt=0|x[6],ot=8191&rt,At=rt>>>13,li=0|x[7],Ut=8191&li,Ft=li>>>13,Si=0|x[8],ai=8191&Si,ci=Si>>>13,rn=0|x[9],Vi=8191&rn,Di=rn>>>13;L.negative=u.negative^_.negative,L.length=19;var Xi=(b+(J=Math.imul(xe,jt))|0)+((8191&(F=(F=Math.imul(xe,ti))+Math.imul(Re,jt)|0))<<13)|0;b=((B=Math.imul(Re,ti))+(F>>>13)|0)+(Xi>>>26)|0,Xi&=67108863,J=Math.imul(q,jt),F=(F=Math.imul(q,ti))+Math.imul(j,jt)|0,B=Math.imul(j,ti);var Ke=(b+(J=J+Math.imul(xe,si)|0)|0)+((8191&(F=(F=F+Math.imul(xe,di)|0)+Math.imul(Re,si)|0))<<13)|0;b=((B=B+Math.imul(Re,di)|0)+(F>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,J=Math.imul(Ae,jt),F=(F=Math.imul(Ae,ti))+Math.imul(le,jt)|0,B=Math.imul(le,ti),J=J+Math.imul(q,si)|0,F=(F=F+Math.imul(q,di)|0)+Math.imul(j,si)|0,B=B+Math.imul(j,di)|0;var mt=(b+(J=J+Math.imul(xe,Se)|0)|0)+((8191&(F=(F=F+Math.imul(xe,V)|0)+Math.imul(Re,Se)|0))<<13)|0;b=((B=B+Math.imul(Re,V)|0)+(F>>>13)|0)+(mt>>>26)|0,mt&=67108863,J=Math.imul(yt,jt),F=(F=Math.imul(yt,ti))+Math.imul(Ne,jt)|0,B=Math.imul(Ne,ti),J=J+Math.imul(Ae,si)|0,F=(F=F+Math.imul(Ae,di)|0)+Math.imul(le,si)|0,B=B+Math.imul(le,di)|0,J=J+Math.imul(q,Se)|0,F=(F=F+Math.imul(q,V)|0)+Math.imul(j,Se)|0,B=B+Math.imul(j,V)|0;var be=(b+(J=J+Math.imul(xe,Ee)|0)|0)+((8191&(F=(F=F+Math.imul(xe,et)|0)+Math.imul(Re,Ee)|0))<<13)|0;b=((B=B+Math.imul(Re,et)|0)+(F>>>13)|0)+(be>>>26)|0,be&=67108863,J=Math.imul(ue,jt),F=(F=Math.imul(ue,ti))+Math.imul(Te,jt)|0,B=Math.imul(Te,ti),J=J+Math.imul(yt,si)|0,F=(F=F+Math.imul(yt,di)|0)+Math.imul(Ne,si)|0,B=B+Math.imul(Ne,di)|0,J=J+Math.imul(Ae,Se)|0,F=(F=F+Math.imul(Ae,V)|0)+Math.imul(le,Se)|0,B=B+Math.imul(le,V)|0,J=J+Math.imul(q,Ee)|0,F=(F=F+Math.imul(q,et)|0)+Math.imul(j,Ee)|0,B=B+Math.imul(j,et)|0;var qe=(b+(J=J+Math.imul(xe,Pt)|0)|0)+((8191&(F=(F=F+Math.imul(xe,Xt)|0)+Math.imul(Re,Pt)|0))<<13)|0;b=((B=B+Math.imul(Re,Xt)|0)+(F>>>13)|0)+(qe>>>26)|0,qe&=67108863,J=Math.imul(Y,jt),F=(F=Math.imul(Y,ti))+Math.imul(X,jt)|0,B=Math.imul(X,ti),J=J+Math.imul(ue,si)|0,F=(F=F+Math.imul(ue,di)|0)+Math.imul(Te,si)|0,B=B+Math.imul(Te,di)|0,J=J+Math.imul(yt,Se)|0,F=(F=F+Math.imul(yt,V)|0)+Math.imul(Ne,Se)|0,B=B+Math.imul(Ne,V)|0,J=J+Math.imul(Ae,Ee)|0,F=(F=F+Math.imul(Ae,et)|0)+Math.imul(le,Ee)|0,B=B+Math.imul(le,et)|0,J=J+Math.imul(q,Pt)|0,F=(F=F+Math.imul(q,Xt)|0)+Math.imul(j,Pt)|0,B=B+Math.imul(j,Xt)|0;var vt=(b+(J=J+Math.imul(xe,Pe)|0)|0)+((8191&(F=(F=F+Math.imul(xe,Be)|0)+Math.imul(Re,Pe)|0))<<13)|0;b=((B=B+Math.imul(Re,Be)|0)+(F>>>13)|0)+(vt>>>26)|0,vt&=67108863,J=Math.imul(Me,jt),F=(F=Math.imul(Me,ti))+Math.imul(ze,jt)|0,B=Math.imul(ze,ti),J=J+Math.imul(Y,si)|0,F=(F=F+Math.imul(Y,di)|0)+Math.imul(X,si)|0,B=B+Math.imul(X,di)|0,J=J+Math.imul(ue,Se)|0,F=(F=F+Math.imul(ue,V)|0)+Math.imul(Te,Se)|0,B=B+Math.imul(Te,V)|0,J=J+Math.imul(yt,Ee)|0,F=(F=F+Math.imul(yt,et)|0)+Math.imul(Ne,Ee)|0,B=B+Math.imul(Ne,et)|0,J=J+Math.imul(Ae,Pt)|0,F=(F=F+Math.imul(Ae,Xt)|0)+Math.imul(le,Pt)|0,B=B+Math.imul(le,Xt)|0,J=J+Math.imul(q,Pe)|0,F=(F=F+Math.imul(q,Be)|0)+Math.imul(j,Pe)|0,B=B+Math.imul(j,Be)|0;var me=(b+(J=J+Math.imul(xe,ot)|0)|0)+((8191&(F=(F=F+Math.imul(xe,At)|0)+Math.imul(Re,ot)|0))<<13)|0;b=((B=B+Math.imul(Re,At)|0)+(F>>>13)|0)+(me>>>26)|0,me&=67108863,J=Math.imul(it,jt),F=(F=Math.imul(it,ti))+Math.imul(ft,jt)|0,B=Math.imul(ft,ti),J=J+Math.imul(Me,si)|0,F=(F=F+Math.imul(Me,di)|0)+Math.imul(ze,si)|0,B=B+Math.imul(ze,di)|0,J=J+Math.imul(Y,Se)|0,F=(F=F+Math.imul(Y,V)|0)+Math.imul(X,Se)|0,B=B+Math.imul(X,V)|0,J=J+Math.imul(ue,Ee)|0,F=(F=F+Math.imul(ue,et)|0)+Math.imul(Te,Ee)|0,B=B+Math.imul(Te,et)|0,J=J+Math.imul(yt,Pt)|0,F=(F=F+Math.imul(yt,Xt)|0)+Math.imul(Ne,Pt)|0,B=B+Math.imul(Ne,Xt)|0,J=J+Math.imul(Ae,Pe)|0,F=(F=F+Math.imul(Ae,Be)|0)+Math.imul(le,Pe)|0,B=B+Math.imul(le,Be)|0,J=J+Math.imul(q,ot)|0,F=(F=F+Math.imul(q,At)|0)+Math.imul(j,ot)|0,B=B+Math.imul(j,At)|0;var $e=(b+(J=J+Math.imul(xe,Ut)|0)|0)+((8191&(F=(F=F+Math.imul(xe,Ft)|0)+Math.imul(Re,Ut)|0))<<13)|0;b=((B=B+Math.imul(Re,Ft)|0)+(F>>>13)|0)+($e>>>26)|0,$e&=67108863,J=Math.imul(st,jt),F=(F=Math.imul(st,ti))+Math.imul(wt,jt)|0,B=Math.imul(wt,ti),J=J+Math.imul(it,si)|0,F=(F=F+Math.imul(it,di)|0)+Math.imul(ft,si)|0,B=B+Math.imul(ft,di)|0,J=J+Math.imul(Me,Se)|0,F=(F=F+Math.imul(Me,V)|0)+Math.imul(ze,Se)|0,B=B+Math.imul(ze,V)|0,J=J+Math.imul(Y,Ee)|0,F=(F=F+Math.imul(Y,et)|0)+Math.imul(X,Ee)|0,B=B+Math.imul(X,et)|0,J=J+Math.imul(ue,Pt)|0,F=(F=F+Math.imul(ue,Xt)|0)+Math.imul(Te,Pt)|0,B=B+Math.imul(Te,Xt)|0,J=J+Math.imul(yt,Pe)|0,F=(F=F+Math.imul(yt,Be)|0)+Math.imul(Ne,Pe)|0,B=B+Math.imul(Ne,Be)|0,J=J+Math.imul(Ae,ot)|0,F=(F=F+Math.imul(Ae,At)|0)+Math.imul(le,ot)|0,B=B+Math.imul(le,At)|0,J=J+Math.imul(q,Ut)|0,F=(F=F+Math.imul(q,Ft)|0)+Math.imul(j,Ut)|0,B=B+Math.imul(j,Ft)|0;var St=(b+(J=J+Math.imul(xe,ai)|0)|0)+((8191&(F=(F=F+Math.imul(xe,ci)|0)+Math.imul(Re,ai)|0))<<13)|0;b=((B=B+Math.imul(Re,ci)|0)+(F>>>13)|0)+(St>>>26)|0,St&=67108863,J=Math.imul(Nt,jt),F=(F=Math.imul(Nt,ti))+Math.imul(Vt,jt)|0,B=Math.imul(Vt,ti),J=J+Math.imul(st,si)|0,F=(F=F+Math.imul(st,di)|0)+Math.imul(wt,si)|0,B=B+Math.imul(wt,di)|0,J=J+Math.imul(it,Se)|0,F=(F=F+Math.imul(it,V)|0)+Math.imul(ft,Se)|0,B=B+Math.imul(ft,V)|0,J=J+Math.imul(Me,Ee)|0,F=(F=F+Math.imul(Me,et)|0)+Math.imul(ze,Ee)|0,B=B+Math.imul(ze,et)|0,J=J+Math.imul(Y,Pt)|0,F=(F=F+Math.imul(Y,Xt)|0)+Math.imul(X,Pt)|0,B=B+Math.imul(X,Xt)|0,J=J+Math.imul(ue,Pe)|0,F=(F=F+Math.imul(ue,Be)|0)+Math.imul(Te,Pe)|0,B=B+Math.imul(Te,Be)|0,J=J+Math.imul(yt,ot)|0,F=(F=F+Math.imul(yt,At)|0)+Math.imul(Ne,ot)|0,B=B+Math.imul(Ne,At)|0,J=J+Math.imul(Ae,Ut)|0,F=(F=F+Math.imul(Ae,Ft)|0)+Math.imul(le,Ut)|0,B=B+Math.imul(le,Ft)|0,J=J+Math.imul(q,ai)|0,F=(F=F+Math.imul(q,ci)|0)+Math.imul(j,ai)|0,B=B+Math.imul(j,ci)|0;var Rt=(b+(J=J+Math.imul(xe,Vi)|0)|0)+((8191&(F=(F=F+Math.imul(xe,Di)|0)+Math.imul(Re,Vi)|0))<<13)|0;b=((B=B+Math.imul(Re,Di)|0)+(F>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,J=Math.imul(Nt,si),F=(F=Math.imul(Nt,di))+Math.imul(Vt,si)|0,B=Math.imul(Vt,di),J=J+Math.imul(st,Se)|0,F=(F=F+Math.imul(st,V)|0)+Math.imul(wt,Se)|0,B=B+Math.imul(wt,V)|0,J=J+Math.imul(it,Ee)|0,F=(F=F+Math.imul(it,et)|0)+Math.imul(ft,Ee)|0,B=B+Math.imul(ft,et)|0,J=J+Math.imul(Me,Pt)|0,F=(F=F+Math.imul(Me,Xt)|0)+Math.imul(ze,Pt)|0,B=B+Math.imul(ze,Xt)|0,J=J+Math.imul(Y,Pe)|0,F=(F=F+Math.imul(Y,Be)|0)+Math.imul(X,Pe)|0,B=B+Math.imul(X,Be)|0,J=J+Math.imul(ue,ot)|0,F=(F=F+Math.imul(ue,At)|0)+Math.imul(Te,ot)|0,B=B+Math.imul(Te,At)|0,J=J+Math.imul(yt,Ut)|0,F=(F=F+Math.imul(yt,Ft)|0)+Math.imul(Ne,Ut)|0,B=B+Math.imul(Ne,Ft)|0,J=J+Math.imul(Ae,ai)|0,F=(F=F+Math.imul(Ae,ci)|0)+Math.imul(le,ai)|0,B=B+Math.imul(le,ci)|0;var yi=(b+(J=J+Math.imul(q,Vi)|0)|0)+((8191&(F=(F=F+Math.imul(q,Di)|0)+Math.imul(j,Vi)|0))<<13)|0;b=((B=B+Math.imul(j,Di)|0)+(F>>>13)|0)+(yi>>>26)|0,yi&=67108863,J=Math.imul(Nt,Se),F=(F=Math.imul(Nt,V))+Math.imul(Vt,Se)|0,B=Math.imul(Vt,V),J=J+Math.imul(st,Ee)|0,F=(F=F+Math.imul(st,et)|0)+Math.imul(wt,Ee)|0,B=B+Math.imul(wt,et)|0,J=J+Math.imul(it,Pt)|0,F=(F=F+Math.imul(it,Xt)|0)+Math.imul(ft,Pt)|0,B=B+Math.imul(ft,Xt)|0,J=J+Math.imul(Me,Pe)|0,F=(F=F+Math.imul(Me,Be)|0)+Math.imul(ze,Pe)|0,B=B+Math.imul(ze,Be)|0,J=J+Math.imul(Y,ot)|0,F=(F=F+Math.imul(Y,At)|0)+Math.imul(X,ot)|0,B=B+Math.imul(X,At)|0,J=J+Math.imul(ue,Ut)|0,F=(F=F+Math.imul(ue,Ft)|0)+Math.imul(Te,Ut)|0,B=B+Math.imul(Te,Ft)|0,J=J+Math.imul(yt,ai)|0,F=(F=F+Math.imul(yt,ci)|0)+Math.imul(Ne,ai)|0,B=B+Math.imul(Ne,ci)|0;var Ri=(b+(J=J+Math.imul(Ae,Vi)|0)|0)+((8191&(F=(F=F+Math.imul(Ae,Di)|0)+Math.imul(le,Vi)|0))<<13)|0;b=((B=B+Math.imul(le,Di)|0)+(F>>>13)|0)+(Ri>>>26)|0,Ri&=67108863,J=Math.imul(Nt,Ee),F=(F=Math.imul(Nt,et))+Math.imul(Vt,Ee)|0,B=Math.imul(Vt,et),J=J+Math.imul(st,Pt)|0,F=(F=F+Math.imul(st,Xt)|0)+Math.imul(wt,Pt)|0,B=B+Math.imul(wt,Xt)|0,J=J+Math.imul(it,Pe)|0,F=(F=F+Math.imul(it,Be)|0)+Math.imul(ft,Pe)|0,B=B+Math.imul(ft,Be)|0,J=J+Math.imul(Me,ot)|0,F=(F=F+Math.imul(Me,At)|0)+Math.imul(ze,ot)|0,B=B+Math.imul(ze,At)|0,J=J+Math.imul(Y,Ut)|0,F=(F=F+Math.imul(Y,Ft)|0)+Math.imul(X,Ut)|0,B=B+Math.imul(X,Ft)|0,J=J+Math.imul(ue,ai)|0,F=(F=F+Math.imul(ue,ci)|0)+Math.imul(Te,ai)|0,B=B+Math.imul(Te,ci)|0;var Ii=(b+(J=J+Math.imul(yt,Vi)|0)|0)+((8191&(F=(F=F+Math.imul(yt,Di)|0)+Math.imul(Ne,Vi)|0))<<13)|0;b=((B=B+Math.imul(Ne,Di)|0)+(F>>>13)|0)+(Ii>>>26)|0,Ii&=67108863,J=Math.imul(Nt,Pt),F=(F=Math.imul(Nt,Xt))+Math.imul(Vt,Pt)|0,B=Math.imul(Vt,Xt),J=J+Math.imul(st,Pe)|0,F=(F=F+Math.imul(st,Be)|0)+Math.imul(wt,Pe)|0,B=B+Math.imul(wt,Be)|0,J=J+Math.imul(it,ot)|0,F=(F=F+Math.imul(it,At)|0)+Math.imul(ft,ot)|0,B=B+Math.imul(ft,At)|0,J=J+Math.imul(Me,Ut)|0,F=(F=F+Math.imul(Me,Ft)|0)+Math.imul(ze,Ut)|0,B=B+Math.imul(ze,Ft)|0,J=J+Math.imul(Y,ai)|0,F=(F=F+Math.imul(Y,ci)|0)+Math.imul(X,ai)|0,B=B+Math.imul(X,ci)|0;var Ki=(b+(J=J+Math.imul(ue,Vi)|0)|0)+((8191&(F=(F=F+Math.imul(ue,Di)|0)+Math.imul(Te,Vi)|0))<<13)|0;b=((B=B+Math.imul(Te,Di)|0)+(F>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,J=Math.imul(Nt,Pe),F=(F=Math.imul(Nt,Be))+Math.imul(Vt,Pe)|0,B=Math.imul(Vt,Be),J=J+Math.imul(st,ot)|0,F=(F=F+Math.imul(st,At)|0)+Math.imul(wt,ot)|0,B=B+Math.imul(wt,At)|0,J=J+Math.imul(it,Ut)|0,F=(F=F+Math.imul(it,Ft)|0)+Math.imul(ft,Ut)|0,B=B+Math.imul(ft,Ft)|0,J=J+Math.imul(Me,ai)|0,F=(F=F+Math.imul(Me,ci)|0)+Math.imul(ze,ai)|0,B=B+Math.imul(ze,ci)|0;var at=(b+(J=J+Math.imul(Y,Vi)|0)|0)+((8191&(F=(F=F+Math.imul(Y,Di)|0)+Math.imul(X,Vi)|0))<<13)|0;b=((B=B+Math.imul(X,Di)|0)+(F>>>13)|0)+(at>>>26)|0,at&=67108863,J=Math.imul(Nt,ot),F=(F=Math.imul(Nt,At))+Math.imul(Vt,ot)|0,B=Math.imul(Vt,At),J=J+Math.imul(st,Ut)|0,F=(F=F+Math.imul(st,Ft)|0)+Math.imul(wt,Ut)|0,B=B+Math.imul(wt,Ft)|0,J=J+Math.imul(it,ai)|0,F=(F=F+Math.imul(it,ci)|0)+Math.imul(ft,ai)|0,B=B+Math.imul(ft,ci)|0;var Qt=(b+(J=J+Math.imul(Me,Vi)|0)|0)+((8191&(F=(F=F+Math.imul(Me,Di)|0)+Math.imul(ze,Vi)|0))<<13)|0;b=((B=B+Math.imul(ze,Di)|0)+(F>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,J=Math.imul(Nt,Ut),F=(F=Math.imul(Nt,Ft))+Math.imul(Vt,Ut)|0,B=Math.imul(Vt,Ft),J=J+Math.imul(st,ai)|0,F=(F=F+Math.imul(st,ci)|0)+Math.imul(wt,ai)|0,B=B+Math.imul(wt,ci)|0;var gt=(b+(J=J+Math.imul(it,Vi)|0)|0)+((8191&(F=(F=F+Math.imul(it,Di)|0)+Math.imul(ft,Vi)|0))<<13)|0;b=((B=B+Math.imul(ft,Di)|0)+(F>>>13)|0)+(gt>>>26)|0,gt&=67108863,J=Math.imul(Nt,ai),F=(F=Math.imul(Nt,ci))+Math.imul(Vt,ai)|0,B=Math.imul(Vt,ci);var Lt=(b+(J=J+Math.imul(st,Vi)|0)|0)+((8191&(F=(F=F+Math.imul(st,Di)|0)+Math.imul(wt,Vi)|0))<<13)|0;b=((B=B+Math.imul(wt,Di)|0)+(F>>>13)|0)+(Lt>>>26)|0,Lt&=67108863;var ui=(b+(J=Math.imul(Nt,Vi))|0)+((8191&(F=(F=Math.imul(Nt,Di))+Math.imul(Vt,Vi)|0))<<13)|0;return b=((B=Math.imul(Vt,Di))+(F>>>13)|0)+(ui>>>26)|0,ui&=67108863,r[0]=Xi,r[1]=Ke,r[2]=mt,r[3]=be,r[4]=qe,r[5]=vt,r[6]=me,r[7]=$e,r[8]=St,r[9]=Rt,r[10]=yi,r[11]=Ri,r[12]=Ii,r[13]=Ki,r[14]=at,r[15]=Qt,r[16]=gt,r[17]=Lt,r[18]=ui,0!==b&&(r[19]=b,L.length++),L};function ee(p,u,_){_.negative=u.negative^p.negative,_.length=p.length+u.length;for(var L=0,I=0,x=0;x<_.length-1;x++){var r=I;I=0;for(var b=67108863&L,J=Math.min(x,u.length-1),F=Math.max(0,x-p.length+1);F<=J;F++){var Re=(0|p.words[x-F])*(0|u.words[F]),Fe=67108863ℜb=67108863&(Fe=Fe+b|0),I+=(r=(r=r+(Re/67108864|0)|0)+(Fe>>>26)|0)>>>26,r&=67108863}_.words[x]=b,L=r,r=I}return 0!==L?_.words[x]=L:_.length--,_._strip()}function ie(p,u,_){return ee(p,u,_)}function _e(p,u){this.x=p,this.y=u}Math.imul||(W=G),s.prototype.mulTo=function(u,_){var I=this.length+u.length;return 10===this.length&&10===u.length?W(this,u,_):I<63?G(this,u,_):I<1024?ee(this,u,_):ie(this,u,_)},_e.prototype.makeRBT=function(u){for(var _=new Array(u),L=s.prototype._countBits(u)-1,I=0;I>=1;return I},_e.prototype.permute=function(u,_,L,I,x,r){for(var b=0;b>>=1)x++;return 1<>>=13),x>>>=13;for(r=2*_;r>=26,L+=x/67108864|0,L+=r>>>26,this.words[I]=67108863&r}return 0!==L&&(this.words[I]=L,this.length++),_?this.ineg():this},s.prototype.muln=function(u){return this.clone().imuln(u)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(u){var _=function(p){for(var u=new Array(p.bitLength()),_=0;_>>_%26&1;return u}(u);if(0===_.length)return new s(1);for(var L=this,I=0;I<_.length&&0===_[I];I++,L=L.sqr());if(++I<_.length)for(var x=L.sqr();I<_.length;I++,x=x.sqr())0!==_[I]&&(L=L.mul(x));return L},s.prototype.iushln=function(u){v("number"==typeof u&&u>=0);var x,_=u%26,L=(u-_)/26,I=67108863>>>26-_<<26-_;if(0!==_){var r=0;for(x=0;x>>26-_}r&&(this.words[x]=r,this.length++)}if(0!==L){for(x=this.length-1;x>=0;x--)this.words[x+L]=this.words[x];for(x=0;x=0),I=_?(_-_%26)/26:0;var x=u%26,r=Math.min((u-x)/26,this.length),b=67108863^67108863>>>x<r)for(this.length-=r,F=0;F=0&&(0!==B||F>=I);F--){var te=0|this.words[F];this.words[F]=B<<26-x|te>>>x,B=te&b}return J&&0!==B&&(J.words[J.length++]=B),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(u,_,L){return v(0===this.negative),this.iushrn(u,_,L)},s.prototype.shln=function(u){return this.clone().ishln(u)},s.prototype.ushln=function(u){return this.clone().iushln(u)},s.prototype.shrn=function(u){return this.clone().ishrn(u)},s.prototype.ushrn=function(u){return this.clone().iushrn(u)},s.prototype.testn=function(u){v("number"==typeof u&&u>=0);var _=u%26,L=(u-_)/26;return!(this.length<=L||!(this.words[L]&1<<_))},s.prototype.imaskn=function(u){v("number"==typeof u&&u>=0);var _=u%26,L=(u-_)/26;return v(0===this.negative,"imaskn works only with positive numbers"),this.length<=L?this:(0!==_&&L++,this.length=Math.min(L,this.length),0!==_&&(this.words[this.length-1]&=67108863^67108863>>>_<<_),this._strip())},s.prototype.maskn=function(u){return this.clone().imaskn(u)},s.prototype.iaddn=function(u){return v("number"==typeof u),v(u<67108864),u<0?this.isubn(-u):0!==this.negative?1===this.length&&(0|this.words[0])<=u?(this.words[0]=u-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(u),this.negative=1,this):this._iaddn(u)},s.prototype._iaddn=function(u){this.words[0]+=u;for(var _=0;_=67108864;_++)this.words[_]-=67108864,_===this.length-1?this.words[_+1]=1:this.words[_+1]++;return this.length=Math.max(this.length,_+1),this},s.prototype.isubn=function(u){if(v("number"==typeof u),v(u<67108864),u<0)return this.iaddn(-u);if(0!==this.negative)return this.negative=0,this.iaddn(u),this.negative=1,this;if(this.words[0]-=u,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var _=0;_>26)-(J/67108864|0),this.words[x+L]=67108863&r}for(;x>26,this.words[x+L]=67108863&r;if(0===b)return this._strip();for(v(-1===b),b=0,x=0;x>26,this.words[x]=67108863&r;return this.negative=1,this._strip()},s.prototype._wordDiv=function(u,_){var L,I=this.clone(),x=u,r=0|x.words[x.length-1];0!=(L=26-this._countBits(r))&&(x=x.ushln(L),I.iushln(L),r=0|x.words[x.length-1]);var F,J=I.length-x.length;if("mod"!==_){(F=new s(null)).length=J+1,F.words=new Array(F.length);for(var B=0;B=0;xe--){var Re=67108864*(0|I.words[x.length+xe])+(0|I.words[x.length+xe-1]);for(Re=Math.min(Re/r|0,67108863),I._ishlnsubmul(x,Re,xe);0!==I.negative;)Re--,I.negative=0,I._ishlnsubmul(x,1,xe),I.isZero()||(I.negative^=1);F&&(F.words[xe]=Re)}return F&&F._strip(),I._strip(),"div"!==_&&0!==L&&I.iushrn(L),{div:F||null,mod:I}},s.prototype.divmod=function(u,_,L){return v(!u.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===u.negative?(r=this.neg().divmod(u,_),"mod"!==_&&(I=r.div.neg()),"div"!==_&&(x=r.mod.neg(),L&&0!==x.negative&&x.iadd(u)),{div:I,mod:x}):0===this.negative&&0!==u.negative?(r=this.divmod(u.neg(),_),"mod"!==_&&(I=r.div.neg()),{div:I,mod:r.mod}):0!=(this.negative&u.negative)?(r=this.neg().divmod(u.neg(),_),"div"!==_&&(x=r.mod.neg(),L&&0!==x.negative&&x.isub(u)),{div:r.div,mod:x}):u.length>this.length||this.cmp(u)<0?{div:new s(0),mod:this}:1===u.length?"div"===_?{div:this.divn(u.words[0]),mod:null}:"mod"===_?{div:null,mod:new s(this.modrn(u.words[0]))}:{div:this.divn(u.words[0]),mod:new s(this.modrn(u.words[0]))}:this._wordDiv(u,_);var I,x,r},s.prototype.div=function(u){return this.divmod(u,"div",!1).div},s.prototype.mod=function(u){return this.divmod(u,"mod",!1).mod},s.prototype.umod=function(u){return this.divmod(u,"mod",!0).mod},s.prototype.divRound=function(u){var _=this.divmod(u);if(_.mod.isZero())return _.div;var L=0!==_.div.negative?_.mod.isub(u):_.mod,I=u.ushrn(1),x=u.andln(1),r=L.cmp(I);return r<0||1===x&&0===r?_.div:0!==_.div.negative?_.div.isubn(1):_.div.iaddn(1)},s.prototype.modrn=function(u){var _=u<0;_&&(u=-u),v(u<=67108863);for(var L=(1<<26)%u,I=0,x=this.length-1;x>=0;x--)I=(L*I+(0|this.words[x]))%u;return _?-I:I},s.prototype.modn=function(u){return this.modrn(u)},s.prototype.idivn=function(u){var _=u<0;_&&(u=-u),v(u<=67108863);for(var L=0,I=this.length-1;I>=0;I--){var x=(0|this.words[I])+67108864*L;this.words[I]=x/u|0,L=x%u}return this._strip(),_?this.ineg():this},s.prototype.divn=function(u){return this.clone().idivn(u)},s.prototype.egcd=function(u){v(0===u.negative),v(!u.isZero());var _=this,L=u.clone();_=0!==_.negative?_.umod(u):_.clone();for(var I=new s(1),x=new s(0),r=new s(0),b=new s(1),J=0;_.isEven()&&L.isEven();)_.iushrn(1),L.iushrn(1),++J;for(var F=L.clone(),B=_.clone();!_.isZero();){for(var te=0,xe=1;0==(_.words[0]&xe)&&te<26;++te,xe<<=1);if(te>0)for(_.iushrn(te);te-- >0;)(I.isOdd()||x.isOdd())&&(I.iadd(F),x.isub(B)),I.iushrn(1),x.iushrn(1);for(var Re=0,Fe=1;0==(L.words[0]&Fe)&&Re<26;++Re,Fe<<=1);if(Re>0)for(L.iushrn(Re);Re-- >0;)(r.isOdd()||b.isOdd())&&(r.iadd(F),b.isub(B)),r.iushrn(1),b.iushrn(1);_.cmp(L)>=0?(_.isub(L),I.isub(r),x.isub(b)):(L.isub(_),r.isub(I),b.isub(x))}return{a:r,b,gcd:L.iushln(J)}},s.prototype._invmp=function(u){v(0===u.negative),v(!u.isZero());var te,_=this,L=u.clone();_=0!==_.negative?_.umod(u):_.clone();for(var I=new s(1),x=new s(0),r=L.clone();_.cmpn(1)>0&&L.cmpn(1)>0;){for(var b=0,J=1;0==(_.words[0]&J)&&b<26;++b,J<<=1);if(b>0)for(_.iushrn(b);b-- >0;)I.isOdd()&&I.iadd(r),I.iushrn(1);for(var F=0,B=1;0==(L.words[0]&B)&&F<26;++F,B<<=1);if(F>0)for(L.iushrn(F);F-- >0;)x.isOdd()&&x.iadd(r),x.iushrn(1);_.cmp(L)>=0?(_.isub(L),I.isub(x)):(L.isub(_),x.isub(I))}return(te=0===_.cmpn(1)?I:x).cmpn(0)<0&&te.iadd(u),te},s.prototype.gcd=function(u){if(this.isZero())return u.abs();if(u.isZero())return this.abs();var _=this.clone(),L=u.clone();_.negative=0,L.negative=0;for(var I=0;_.isEven()&&L.isEven();I++)_.iushrn(1),L.iushrn(1);for(;;){for(;_.isEven();)_.iushrn(1);for(;L.isEven();)L.iushrn(1);var x=_.cmp(L);if(x<0){var r=_;_=L,L=r}else if(0===x||0===L.cmpn(1))break;_.isub(L)}return L.iushln(I)},s.prototype.invm=function(u){return this.egcd(u).a.umod(u)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(u){return this.words[0]&u},s.prototype.bincn=function(u){v("number"==typeof u);var _=u%26,L=(u-_)/26,I=1<<_;if(this.length<=L)return this._expand(L+1),this.words[L]|=I,this;for(var x=I,r=L;0!==x&&r>>26,this.words[r]=b&=67108863}return 0!==x&&(this.words[r]=x,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(u){var L,_=u<0;if(0!==this.negative&&!_)return-1;if(0===this.negative&&_)return 1;if(this._strip(),this.length>1)L=1;else{_&&(u=-u),v(u<=67108863,"Number is too big");var I=0|this.words[0];L=I===u?0:Iu.length)return 1;if(this.length=0;L--){var I=0|this.words[L],x=0|u.words[L];if(I!==x){Ix&&(_=1);break}}return _},s.prototype.gtn=function(u){return 1===this.cmpn(u)},s.prototype.gt=function(u){return 1===this.cmp(u)},s.prototype.gten=function(u){return this.cmpn(u)>=0},s.prototype.gte=function(u){return this.cmp(u)>=0},s.prototype.ltn=function(u){return-1===this.cmpn(u)},s.prototype.lt=function(u){return-1===this.cmp(u)},s.prototype.lten=function(u){return this.cmpn(u)<=0},s.prototype.lte=function(u){return this.cmp(u)<=0},s.prototype.eqn=function(u){return 0===this.cmpn(u)},s.prototype.eq=function(u){return 0===this.cmp(u)},s.red=function(u){return new i(u)},s.prototype.toRed=function(u){return v(!this.red,"Already a number in reduction context"),v(0===this.negative,"red works only with positives"),u.convertTo(this)._forceRed(u)},s.prototype.fromRed=function(){return v(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(u){return this.red=u,this},s.prototype.forceRed=function(u){return v(!this.red,"Already a number in reduction context"),this._forceRed(u)},s.prototype.redAdd=function(u){return v(this.red,"redAdd works only with red numbers"),this.red.add(this,u)},s.prototype.redIAdd=function(u){return v(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,u)},s.prototype.redSub=function(u){return v(this.red,"redSub works only with red numbers"),this.red.sub(this,u)},s.prototype.redISub=function(u){return v(this.red,"redISub works only with red numbers"),this.red.isub(this,u)},s.prototype.redShl=function(u){return v(this.red,"redShl works only with red numbers"),this.red.shl(this,u)},s.prototype.redMul=function(u){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.mul(this,u)},s.prototype.redIMul=function(u){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.imul(this,u)},s.prototype.redSqr=function(){return v(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return v(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return v(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return v(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return v(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(u){return v(this.red&&!u.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,u)};var fe={k256:null,p224:null,p192:null,p25519:null};function de(p,u){this.name=p,this.p=new s(u,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function ne(){de.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function se(){de.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function oe(){de.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function y(){de.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function i(p){if("string"==typeof p){var u=s._prime(p);this.m=u.p,this.prime=u}else v(p.gtn(1),"modulus must be greater than 1"),this.m=p,this.prime=null}function a(p){i.call(this,p),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}de.prototype._tmp=function(){var u=new s(null);return u.words=new Array(Math.ceil(this.n/13)),u},de.prototype.ireduce=function(u){var L,_=u;do{this.split(_,this.tmp),L=(_=(_=this.imulK(_)).iadd(this.tmp)).bitLength()}while(L>this.n);var I=L0?_.isub(this.p):void 0!==_.strip?_.strip():_._strip(),_},de.prototype.split=function(u,_){u.iushrn(this.n,0,_)},de.prototype.imulK=function(u){return u.imul(this.k)},M(ne,de),ne.prototype.split=function(u,_){for(var L=4194303,I=Math.min(u.length,9),x=0;x>>22,r=b}u.words[x-10]=r>>>=22,u.length-=0===r&&u.length>10?10:9},ne.prototype.imulK=function(u){u.words[u.length]=0,u.words[u.length+1]=0,u.length+=2;for(var _=0,L=0;L>>=26,u.words[L]=x,_=I}return 0!==_&&(u.words[u.length++]=_),u},s._prime=function(u){if(fe[u])return fe[u];var _;if("k256"===u)_=new ne;else if("p224"===u)_=new se;else if("p192"===u)_=new oe;else{if("p25519"!==u)throw new Error("Unknown prime "+u);_=new y}return fe[u]=_,_},i.prototype._verify1=function(u){v(0===u.negative,"red works only with positives"),v(u.red,"red works only with red numbers")},i.prototype._verify2=function(u,_){v(0==(u.negative|_.negative),"red works only with positives"),v(u.red&&u.red===_.red,"red works only with red numbers")},i.prototype.imod=function(u){return this.prime?this.prime.ireduce(u)._forceRed(this):(O(u,u.umod(this.m)._forceRed(this)),u)},i.prototype.neg=function(u){return u.isZero()?u.clone():this.m.sub(u)._forceRed(this)},i.prototype.add=function(u,_){this._verify2(u,_);var L=u.add(_);return L.cmp(this.m)>=0&&L.isub(this.m),L._forceRed(this)},i.prototype.iadd=function(u,_){this._verify2(u,_);var L=u.iadd(_);return L.cmp(this.m)>=0&&L.isub(this.m),L},i.prototype.sub=function(u,_){this._verify2(u,_);var L=u.sub(_);return L.cmpn(0)<0&&L.iadd(this.m),L._forceRed(this)},i.prototype.isub=function(u,_){this._verify2(u,_);var L=u.isub(_);return L.cmpn(0)<0&&L.iadd(this.m),L},i.prototype.shl=function(u,_){return this._verify1(u),this.imod(u.ushln(_))},i.prototype.imul=function(u,_){return this._verify2(u,_),this.imod(u.imul(_))},i.prototype.mul=function(u,_){return this._verify2(u,_),this.imod(u.mul(_))},i.prototype.isqr=function(u){return this.imul(u,u.clone())},i.prototype.sqr=function(u){return this.mul(u,u)},i.prototype.sqrt=function(u){if(u.isZero())return u.clone();var _=this.m.andln(3);if(v(_%2==1),3===_){var L=this.m.add(new s(1)).iushrn(2);return this.pow(u,L)}for(var I=this.m.subn(1),x=0;!I.isZero()&&0===I.andln(1);)x++,I.iushrn(1);v(!I.isZero());var r=new s(1).toRed(this),b=r.redNeg(),J=this.m.subn(1).iushrn(1),F=this.m.bitLength();for(F=new s(2*F*F).toRed(this);0!==this.pow(F,J).cmp(b);)F.redIAdd(b);for(var B=this.pow(F,I),te=this.pow(u,I.addn(1).iushrn(1)),xe=this.pow(u,I),Re=x;0!==xe.cmp(r);){for(var Fe=xe,q=0;0!==Fe.cmp(r);q++)Fe=Fe.redSqr();v(q=0;x--){for(var B=_.words[x],te=F-1;te>=0;te--){var xe=B>>te&1;r!==I[0]&&(r=this.sqr(r)),0!==xe||0!==b?(b<<=1,b|=xe,(4==++J||0===x&&0===te)&&(r=this.mul(r,I[b]),J=0,b=0)):J=0}F=26}return r},i.prototype.convertTo=function(u){var _=u.umod(this.m);return _===u?_.clone():_},i.prototype.convertFrom=function(u){var _=u.clone();return _.red=null,_},s.mont=function(u){return new a(u)},M(a,i),a.prototype.convertTo=function(u){return this.imod(u.ushln(this.shift))},a.prototype.convertFrom=function(u){var _=this.imod(u.mul(this.rinv));return _.red=null,_},a.prototype.imul=function(u,_){if(u.isZero()||_.isZero())return u.words[0]=0,u.length=1,u;var L=u.imul(_),I=L.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=L.isub(I).iushrn(this.shift),r=x;return x.cmp(this.m)>=0?r=x.isub(this.m):x.cmpn(0)<0&&(r=x.iadd(this.m)),r._forceRed(this)},a.prototype.mul=function(u,_){if(u.isZero()||_.isZero())return new s(0)._forceRed(this);var L=u.mul(_),I=L.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),x=L.isub(I).iushrn(this.shift),r=x;return x.cmp(this.m)>=0?r=x.isub(this.m):x.cmpn(0)<0&&(r=x.iadd(this.m)),r._forceRed(this)},a.prototype.invm=function(u){return this.imod(u._invmp(this.m).mul(this.r2))._forceRed(this)}}(Ue=m.nmd(Ue),this)},7950:(Ue,K,m)=>{var e;function t(M){this.rand=M}if(Ue.exports=function(s){return e||(e=new t(null)),e.generate(s)},Ue.exports.Rand=t,t.prototype.generate=function(s){return this._rand(s)},t.prototype._rand=function(s){if(this.rand.getBytes)return this.rand.getBytes(s);for(var C=new Uint8Array(s),c=0;c{var e=m(3502).Buffer;function t(P){e.isBuffer(P)||(P=e.from(P));for(var o=P.length/4|0,O=new Array(o),T=0;T>>24]^D[W>>>16&255]^w[ee>>>8&255]^U[255&ie]^o[se++],fe=S[W>>>24]^D[ee>>>16&255]^w[ie>>>8&255]^U[255&G]^o[se++],de=S[ee>>>24]^D[ie>>>16&255]^w[G>>>8&255]^U[255&W]^o[se++],ne=S[ie>>>24]^D[G>>>16&255]^w[W>>>8&255]^U[255&ee]^o[se++],G=_e,W=fe,ee=de,ie=ne;return _e=(T[G>>>24]<<24|T[W>>>16&255]<<16|T[ee>>>8&255]<<8|T[255&ie])^o[se++],fe=(T[W>>>24]<<24|T[ee>>>16&255]<<16|T[ie>>>8&255]<<8|T[255&G])^o[se++],de=(T[ee>>>24]<<24|T[ie>>>16&255]<<16|T[G>>>8&255]<<8|T[255&W])^o[se++],ne=(T[ie>>>24]<<24|T[G>>>16&255]<<16|T[W>>>8&255]<<8|T[255&ee])^o[se++],[_e>>>=0,fe>>>=0,de>>>=0,ne>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],C=function(){for(var P=new Array(256),o=0;o<256;o++)P[o]=o<128?o<<1:o<<1^283;for(var O=[],T=[],R=[[],[],[],[]],S=[[],[],[],[]],D=0,w=0,U=0;U<256;++U){var G=w^w<<1^w<<2^w<<3^w<<4;O[D]=G=G>>>8^255&G^99,T[G]=D;var W=P[D],ee=P[W],ie=P[ee],_e=257*P[G]^16843008*G;R[0][D]=_e<<24|_e>>>8,R[1][D]=_e<<16|_e>>>16,R[2][D]=_e<<8|_e>>>24,R[3][D]=_e,S[0][G]=(_e=16843009*ie^65537*ee^257*W^16843008*D)<<24|_e>>>8,S[1][G]=_e<<16|_e>>>16,S[2][G]=_e<<8|_e>>>24,S[3][G]=_e,0===D?D=w=1:(D=W^P[P[P[ie^W]]],w^=P[P[w]])}return{SBOX:O,INV_SBOX:T,SUB_MIX:R,INV_SUB_MIX:S}}();function c(P){this._key=t(P),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var P=this._key,o=P.length,O=o+6,T=4*(O+1),R=[],S=0;S>>24)>>>24]<<24|C.SBOX[D>>>16&255]<<16|C.SBOX[D>>>8&255]<<8|C.SBOX[255&D],D^=s[S/o|0]<<24):o>6&&S%o==4&&(D=C.SBOX[D>>>24]<<24|C.SBOX[D>>>16&255]<<16|C.SBOX[D>>>8&255]<<8|C.SBOX[255&D]),R[S]=R[S-o]^D}for(var w=[],U=0;U>>24]]^C.INV_SUB_MIX[1][C.SBOX[W>>>16&255]]^C.INV_SUB_MIX[2][C.SBOX[W>>>8&255]]^C.INV_SUB_MIX[3][C.SBOX[255&W]]}this._nRounds=O,this._keySchedule=R,this._invKeySchedule=w},c.prototype.encryptBlockRaw=function(P){return M(P=t(P),this._keySchedule,C.SUB_MIX,C.SBOX,this._nRounds)},c.prototype.encryptBlock=function(P){var o=this.encryptBlockRaw(P),O=e.allocUnsafe(16);return O.writeUInt32BE(o[0],0),O.writeUInt32BE(o[1],4),O.writeUInt32BE(o[2],8),O.writeUInt32BE(o[3],12),O},c.prototype.decryptBlock=function(P){var o=(P=t(P))[1];P[1]=P[3],P[3]=o;var O=M(P,this._invKeySchedule,C.INV_SUB_MIX,C.INV_SBOX,this._nRounds),T=e.allocUnsafe(16);return T.writeUInt32BE(O[0],0),T.writeUInt32BE(O[3],4),T.writeUInt32BE(O[2],8),T.writeUInt32BE(O[1],12),T},c.prototype.scrub=function(){v(this._keySchedule),v(this._invKeySchedule),v(this._key)},Ue.exports.AES=c},9382:(Ue,K,m)=>{var e=m(1899),t=m(3502).Buffer,v=m(1052),M=m(3894),s=m(8857),C=m(8789),c=m(7968);function O(T,R,S,D){v.call(this);var w=t.alloc(4,0);this._cipher=new e.AES(R);var U=this._cipher.encryptBlock(w);this._ghash=new s(U),S=function(T,R,S){if(12===R.length)return T._finID=t.concat([R,t.from([0,0,0,1])]),t.concat([R,t.from([0,0,0,2])]);var D=new s(S),w=R.length,U=w%16;D.update(R),U&&D.update(t.alloc(U=16-U,0)),D.update(t.alloc(8,0));var G=8*w,W=t.alloc(8);W.writeUIntBE(G,0,8),D.update(W),T._finID=D.state;var ee=t.from(T._finID);return c(ee),ee}(this,S,U),this._prev=t.from(S),this._cache=t.allocUnsafe(0),this._secCache=t.allocUnsafe(0),this._decrypt=D,this._alen=0,this._len=0,this._mode=T,this._authTag=null,this._called=!1}M(O,v),O.prototype._update=function(T){if(!this._called&&this._alen){var R=16-this._alen%16;R<16&&(R=t.alloc(R,0),this._ghash.update(R))}this._called=!0;var S=this._mode.encrypt(this,T);return this._ghash.update(this._decrypt?T:S),this._len+=T.length,S},O.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var T=C(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(T,R){var S=0;T.length!==R.length&&S++;for(var D=Math.min(T.length,R.length),w=0;w{var e=m(6900),t=m(856),v=m(4946);K.createCipher=K.Cipher=e.createCipher,K.createCipheriv=K.Cipheriv=e.createCipheriv,K.createDecipher=K.Decipher=t.createDecipher,K.createDecipheriv=K.Decipheriv=t.createDecipheriv,K.listCiphers=K.getCiphers=function(){return Object.keys(v)}},856:(Ue,K,m)=>{var e=m(9382),t=m(3502).Buffer,v=m(9171),M=m(8441),s=m(1052),C=m(1899),c=m(347);function o(D,w,U){s.call(this),this._cache=new O,this._last=void 0,this._cipher=new C.AES(w),this._prev=t.from(U),this._mode=D,this._autopadding=!0}function O(){this.cache=t.allocUnsafe(0)}function R(D,w,U){var G=v[D.toLowerCase()];if(!G)throw new TypeError("invalid suite type");if("string"==typeof U&&(U=t.from(U)),"GCM"!==G.mode&&U.length!==G.iv)throw new TypeError("invalid iv length "+U.length);if("string"==typeof w&&(w=t.from(w)),w.length!==G.key/8)throw new TypeError("invalid key length "+w.length);return"stream"===G.type?new M(G.module,w,U,!0):"auth"===G.type?new e(G.module,w,U,!0):new o(G.module,w,U)}m(3894)(o,s),o.prototype._update=function(D){this._cache.add(D);for(var w,U,G=[];w=this._cache.get(this._autopadding);)U=this._mode.decrypt(this,w),G.push(U);return t.concat(G)},o.prototype._final=function(){var D=this._cache.flush();if(this._autopadding)return function(D){var w=D[15];if(w<1||w>16)throw new Error("unable to decrypt data");for(var U=-1;++U16)return w=this.cache.slice(0,16),this.cache=this.cache.slice(16),w}else if(this.cache.length>=16)return w=this.cache.slice(0,16),this.cache=this.cache.slice(16),w;return null},O.prototype.flush=function(){if(this.cache.length)return this.cache},K.createDecipher=function(D,w){var U=v[D.toLowerCase()];if(!U)throw new TypeError("invalid suite type");var G=c(w,!1,U.key,U.iv);return R(D,G.key,G.iv)},K.createDecipheriv=R},6900:(Ue,K,m)=>{var e=m(9171),t=m(9382),v=m(3502).Buffer,M=m(8441),s=m(1052),C=m(1899),c=m(347);function o(D,w,U){s.call(this),this._cache=new T,this._cipher=new C.AES(w),this._prev=v.from(U),this._mode=D,this._autopadding=!0}m(3894)(o,s),o.prototype._update=function(D){this._cache.add(D);for(var w,U,G=[];w=this._cache.get();)U=this._mode.encrypt(this,w),G.push(U);return v.concat(G)};var O=v.alloc(16,16);function T(){this.cache=v.allocUnsafe(0)}function R(D,w,U){var G=e[D.toLowerCase()];if(!G)throw new TypeError("invalid suite type");if("string"==typeof w&&(w=v.from(w)),w.length!==G.key/8)throw new TypeError("invalid key length "+w.length);if("string"==typeof U&&(U=v.from(U)),"GCM"!==G.mode&&U.length!==G.iv)throw new TypeError("invalid iv length "+U.length);return"stream"===G.type?new M(G.module,w,U):"auth"===G.type?new t(G.module,w,U):new o(G.module,w,U)}o.prototype._final=function(){var D=this._cache.flush();if(this._autopadding)return D=this._mode.encrypt(this,D),this._cipher.scrub(),D;if(!D.equals(O))throw this._cipher.scrub(),new Error("data not multiple of block length")},o.prototype.setAutoPadding=function(D){return this._autopadding=!!D,this},T.prototype.add=function(D){this.cache=v.concat([this.cache,D])},T.prototype.get=function(){if(this.cache.length>15){var D=this.cache.slice(0,16);return this.cache=this.cache.slice(16),D}return null},T.prototype.flush=function(){for(var D=16-this.cache.length,w=v.allocUnsafe(D),U=-1;++U{var e=m(3502).Buffer,t=e.alloc(16,0);function M(C){var c=e.allocUnsafe(16);return c.writeUInt32BE(C[0]>>>0,0),c.writeUInt32BE(C[1]>>>0,4),c.writeUInt32BE(C[2]>>>0,8),c.writeUInt32BE(C[3]>>>0,12),c}function s(C){this.h=C,this.state=e.alloc(16,0),this.cache=e.allocUnsafe(0)}s.prototype.ghash=function(C){for(var c=-1;++c0;P--)C[P]=C[P]>>>1|(1&C[P-1])<<31;C[0]=C[0]>>>1,O&&(C[0]=C[0]^225<<24)}this.state=M(c)},s.prototype.update=function(C){this.cache=e.concat([this.cache,C]);for(var c;this.cache.length>=16;)c=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(c)},s.prototype.final=function(C,c){return this.cache.length&&this.ghash(e.concat([this.cache,t],16)),this.ghash(M([0,C,0,c])),this.state},Ue.exports=s},7968:Ue=>{Ue.exports=function(m){for(var t,e=m.length;e--;){if(255!==(t=m.readUInt8(e))){t++,m.writeUInt8(t,e);break}m.writeUInt8(0,e)}}},4903:(Ue,K,m)=>{var e=m(8789);K.encrypt=function(t,v){var M=e(v,t._prev);return t._prev=t._cipher.encryptBlock(M),t._prev},K.decrypt=function(t,v){var M=t._prev;t._prev=v;var s=t._cipher.decryptBlock(v);return e(s,M)}},9885:(Ue,K,m)=>{var e=m(3502).Buffer,t=m(8789);function v(M,s,C){var c=s.length,P=t(s,M._cache);return M._cache=M._cache.slice(c),M._prev=e.concat([M._prev,C?s:P]),P}K.encrypt=function(M,s,C){for(var P,c=e.allocUnsafe(0);s.length;){if(0===M._cache.length&&(M._cache=M._cipher.encryptBlock(M._prev),M._prev=e.allocUnsafe(0)),!(M._cache.length<=s.length)){c=e.concat([c,v(M,s,C)]);break}c=e.concat([c,v(M,s.slice(0,P=M._cache.length),C)]),s=s.slice(P)}return c}},6531:(Ue,K,m)=>{var e=m(3502).Buffer;function t(M,s,C){for(var T,R,P=-1,O=0;++P<8;)O+=(128&(R=M._cipher.encryptBlock(M._prev)[0]^(T=s&1<<7-P?128:0)))>>P%8,M._prev=v(M._prev,C?T:R);return O}function v(M,s){var C=M.length,c=-1,P=e.allocUnsafe(M.length);for(M=e.concat([M,e.from([s])]);++c>7;return P}K.encrypt=function(M,s,C){for(var c=s.length,P=e.allocUnsafe(c),o=-1;++o{var e=m(3502).Buffer;function t(v,M,s){var c=v._cipher.encryptBlock(v._prev)[0]^M;return v._prev=e.concat([v._prev.slice(1),e.from([s?M:c])]),c}K.encrypt=function(v,M,s){for(var C=M.length,c=e.allocUnsafe(C),P=-1;++P{var e=m(8789),t=m(3502).Buffer,v=m(7968);function M(C){var c=C._cipher.encryptBlockRaw(C._prev);return v(C._prev),c}K.encrypt=function(C,c){var P=Math.ceil(c.length/16),o=C._cache.length;C._cache=t.concat([C._cache,t.allocUnsafe(16*P)]);for(var O=0;O{K.encrypt=function(m,e){return m._cipher.encryptBlock(e)},K.decrypt=function(m,e){return m._cipher.decryptBlock(e)}},9171:(Ue,K,m)=>{var e={ECB:m(1704),CBC:m(4903),CFB:m(9885),CFB8:m(1641),CFB1:m(6531),OFB:m(6816),CTR:m(1150),GCM:m(1150)},t=m(4946);for(var v in t)t[v].module=e[t[v].mode];Ue.exports=t},6816:(Ue,K,m)=>{var e=m(8789);function t(v){return v._prev=v._cipher.encryptBlock(v._prev),v._prev}K.encrypt=function(v,M){for(;v._cache.length{var e=m(1899),t=m(3502).Buffer,v=m(1052);function s(C,c,P,o){v.call(this),this._cipher=new e.AES(c),this._prev=t.from(P),this._cache=t.allocUnsafe(0),this._secCache=t.allocUnsafe(0),this._decrypt=o,this._mode=C}m(3894)(s,v),s.prototype._update=function(C){return this._mode.encrypt(this,C,this._decrypt)},s.prototype._final=function(){this._cipher.scrub()},Ue.exports=s},5255:(Ue,K,m)=>{var e=m(9004),t=m(4330),v=m(9171),M=m(1115),s=m(347);function P(T,R,S){if(T=T.toLowerCase(),v[T])return t.createCipheriv(T,R,S);if(M[T])return new e({key:R,iv:S,mode:T});throw new TypeError("invalid suite type")}function o(T,R,S){if(T=T.toLowerCase(),v[T])return t.createDecipheriv(T,R,S);if(M[T])return new e({key:R,iv:S,mode:T,decrypt:!0});throw new TypeError("invalid suite type")}K.createCipher=K.Cipher=function(T,R){var S,D;if(T=T.toLowerCase(),v[T])S=v[T].key,D=v[T].iv;else{if(!M[T])throw new TypeError("invalid suite type");S=8*M[T].key,D=M[T].iv}var w=s(R,!1,S,D);return P(T,w.key,w.iv)},K.createCipheriv=K.Cipheriv=P,K.createDecipher=K.Decipher=function(T,R){var S,D;if(T=T.toLowerCase(),v[T])S=v[T].key,D=v[T].iv;else{if(!M[T])throw new TypeError("invalid suite type");S=8*M[T].key,D=M[T].iv}var w=s(R,!1,S,D);return o(T,w.key,w.iv)},K.createDecipheriv=K.Decipheriv=o,K.listCiphers=K.getCiphers=function(){return Object.keys(M).concat(t.getCiphers())}},9004:(Ue,K,m)=>{var e=m(1052),t=m(3684),v=m(3894),M=m(3502).Buffer,s={"des-ede3-cbc":t.CBC.instantiate(t.EDE),"des-ede3":t.EDE,"des-ede-cbc":t.CBC.instantiate(t.EDE),"des-ede":t.EDE,"des-cbc":t.CBC.instantiate(t.DES),"des-ecb":t.DES};function C(c){e.call(this);var O,P=c.mode.toLowerCase(),o=s[P];O=c.decrypt?"decrypt":"encrypt";var T=c.key;M.isBuffer(T)||(T=M.from(T)),("des-ede"===P||"des-ede-cbc"===P)&&(T=M.concat([T,T.slice(0,8)]));var R=c.iv;M.isBuffer(R)||(R=M.from(R)),this._des=o.create({key:T,iv:R,type:O})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],Ue.exports=C,v(C,e),C.prototype._update=function(c){return M.from(this._des.update(c))},C.prototype._final=function(){return M.from(this._des.final())}},1115:(Ue,K)=>{K["des-ecb"]={key:8,iv:0},K["des-cbc"]=K.des={key:8,iv:8},K["des-ede3-cbc"]=K.des3={key:24,iv:8},K["des-ede3"]={key:24,iv:0},K["des-ede-cbc"]={key:16,iv:8},K["des-ede"]={key:16,iv:0}},8466:(Ue,K,m)=>{var e=m(8538),t=m(3753);function M(C){var P,c=C.modulus.byteLength();do{P=new e(t(c))}while(P.cmp(C.modulus)>=0||!P.umod(C.prime1)||!P.umod(C.prime2));return P}function s(C,c){var P=function(C){var c=M(C);return{blinder:c.toRed(e.mont(C.modulus)).redPow(new e(C.publicExponent)).fromRed(),unblinder:c.invm(C.modulus)}}(c),o=c.modulus.byteLength(),O=new e(C).mul(P.blinder).umod(c.modulus),T=O.toRed(e.mont(c.prime1)),R=O.toRed(e.mont(c.prime2)),S=c.coefficient,D=c.prime1,w=c.prime2,U=T.redPow(c.exponent1).fromRed(),G=R.redPow(c.exponent2).fromRed(),W=U.isub(G).imul(S).umod(D).imul(w);return G.iadd(W).imul(P.unblinder).umod(c.modulus).toArrayLike(Buffer,"be",o)}s.getr=M,Ue.exports=s},7793:(Ue,K,m)=>{Ue.exports=m(5207)},3923:(Ue,K,m)=>{var e=m(8446).Buffer,t=m(6386),v=m(5685),M=m(3894),s=m(9947),C=m(3946),c=m(5207);function P(R){v.Writable.call(this);var S=c[R];if(!S)throw new Error("Unknown message digest");this._hashType=S.hash,this._hash=t(S.hash),this._tag=S.id,this._signType=S.sign}function o(R){v.Writable.call(this);var S=c[R];if(!S)throw new Error("Unknown message digest");this._hash=t(S.hash),this._tag=S.id,this._signType=S.sign}function O(R){return new P(R)}function T(R){return new o(R)}Object.keys(c).forEach(function(R){c[R].id=e.from(c[R].id,"hex"),c[R.toLowerCase()]=c[R]}),M(P,v.Writable),P.prototype._write=function(S,D,w){this._hash.update(S),w()},P.prototype.update=function(S,D){return"string"==typeof S&&(S=e.from(S,D)),this._hash.update(S),this},P.prototype.sign=function(S,D){this.end();var w=this._hash.digest(),U=s(w,S,this._hashType,this._signType,this._tag);return D?U.toString(D):U},M(o,v.Writable),o.prototype._write=function(S,D,w){this._hash.update(S),w()},o.prototype.update=function(S,D){return"string"==typeof S&&(S=e.from(S,D)),this._hash.update(S),this},o.prototype.verify=function(S,D,w){"string"==typeof D&&(D=e.from(D,w)),this.end();var U=this._hash.digest();return C(D,U,S,this._signType,this._tag)},Ue.exports={Sign:O,Verify:T,createSign:O,createVerify:T}},9947:(Ue,K,m)=>{var e=m(8446).Buffer,t=m(4529),v=m(8466),M=m(7715).ec,s=m(8538),C=m(2772),c=m(1308);function R(G,W,ee,ie){if((G=e.from(G.toArray())).length0&&ee.ishrn(ie),ee}function w(G,W,ee){var ie,_e;do{for(ie=e.alloc(0);8*ie.length{var e=m(8446).Buffer,t=m(8538),v=m(7715).ec,M=m(2772),s=m(1308);function o(O,T){if(O.cmpn(0)<=0)throw new Error("invalid sig");if(O.cmp(T)>=T)throw new Error("invalid sig")}Ue.exports=function(O,T,R,S,D){var w=M(R);if("ec"===w.type){if("ecdsa"!==S&&"ecdsa/rsa"!==S)throw new Error("wrong public key type");return function(O,T,R){var S=s[R.data.algorithm.curve.join(".")];if(!S)throw new Error("unknown curve "+R.data.algorithm.curve.join("."));return new v(S).verify(T,O,R.data.subjectPrivateKey.data)}(O,T,w)}if("dsa"===w.type){if("dsa"!==S)throw new Error("wrong public key type");return function(O,T,R){var S=R.data.p,D=R.data.q,w=R.data.g,U=R.data.pub_key,G=M.signature.decode(O,"der"),W=G.s,ee=G.r;o(W,D),o(ee,D);var ie=t.mont(S),_e=W.invm(D);return 0===w.toRed(ie).redPow(new t(T).mul(_e).mod(D)).fromRed().mul(U.toRed(ie).redPow(ee.mul(_e).mod(D)).fromRed()).mod(S).mod(D).cmp(ee)}(O,T,w)}if("rsa"!==S&&"ecdsa/rsa"!==S)throw new Error("wrong public key type");T=e.concat([D,T]);for(var U=w.modulus.byteLength(),G=[1],W=0;T.length+G.length+2{var e=m(3172),t=e.Buffer;function v(s,C){for(var c in s)C[c]=s[c]}function M(s,C,c){return t(s,C,c)}t.from&&t.alloc&&t.allocUnsafe&&t.allocUnsafeSlow?Ue.exports=e:(v(e,K),K.Buffer=M),M.prototype=Object.create(t.prototype),v(t,M),M.from=function(s,C,c){if("number"==typeof s)throw new TypeError("Argument must not be a number");return t(s,C,c)},M.alloc=function(s,C,c){if("number"!=typeof s)throw new TypeError("Argument must be a number");var P=t(s);return void 0!==C?"string"==typeof c?P.fill(C,c):P.fill(C):P.fill(0),P},M.allocUnsafe=function(s){if("number"!=typeof s)throw new TypeError("Argument must be a number");return t(s)},M.allocUnsafeSlow=function(s){if("number"!=typeof s)throw new TypeError("Argument must be a number");return e.SlowBuffer(s)}},8789:Ue=>{Ue.exports=function(m,e){for(var t=Math.min(m.length,e.length),v=new Buffer(t),M=0;M{"use strict";var e=m(5343),t=m(8461),v="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;K.Buffer=c,K.SlowBuffer=function(Ne){return+Ne!=Ne&&(Ne=0),c.alloc(+Ne)},K.INSPECT_MAX_BYTES=50;var M=2147483647;function C(Ne){if(Ne>M)throw new RangeError('The value "'+Ne+'" is invalid for option "size"');var Ve=new Uint8Array(Ne);return Object.setPrototypeOf(Ve,c.prototype),Ve}function c(Ne,Ve,ue){if("number"==typeof Ne){if("string"==typeof Ve)throw new TypeError('The "string" argument must be of type string. Received type number');return T(Ne)}return P(Ne,Ve,ue)}function P(Ne,Ve,ue){if("string"==typeof Ne)return function(Ne,Ve){if(("string"!=typeof Ve||""===Ve)&&(Ve="utf8"),!c.isEncoding(Ve))throw new TypeError("Unknown encoding: "+Ve);var ue=0|ee(Ne,Ve),Te=C(ue),ke=Te.write(Ne,Ve);return ke!==ue&&(Te=Te.slice(0,ke)),Te}(Ne,Ve);if(ArrayBuffer.isView(Ne))return function(Ne){if(le(Ne,Uint8Array)){var Ve=new Uint8Array(Ne);return w(Ve.buffer,Ve.byteOffset,Ve.byteLength)}return S(Ne)}(Ne);if(null==Ne)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Ne);if(le(Ne,ArrayBuffer)||Ne&&le(Ne.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(le(Ne,SharedArrayBuffer)||Ne&&le(Ne.buffer,SharedArrayBuffer)))return w(Ne,Ve,ue);if("number"==typeof Ne)throw new TypeError('The "value" argument must not be of type number. Received type number');var Te=Ne.valueOf&&Ne.valueOf();if(null!=Te&&Te!==Ne)return c.from(Te,Ve,ue);var ke=function(Ne){if(c.isBuffer(Ne)){var Ve=0|G(Ne.length),ue=C(Ve);return 0===ue.length||Ne.copy(ue,0,0,Ve),ue}return void 0!==Ne.length?"number"!=typeof Ne.length||We(Ne.length)?C(0):S(Ne):"Buffer"===Ne.type&&Array.isArray(Ne.data)?S(Ne.data):void 0}(Ne);if(ke)return ke;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof Ne[Symbol.toPrimitive])return c.from(Ne[Symbol.toPrimitive]("string"),Ve,ue);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Ne)}function o(Ne){if("number"!=typeof Ne)throw new TypeError('"size" argument must be of type number');if(Ne<0)throw new RangeError('The value "'+Ne+'" is invalid for option "size"')}function T(Ne){return o(Ne),C(Ne<0?0:0|G(Ne))}function S(Ne){for(var Ve=Ne.length<0?0:0|G(Ne.length),ue=C(Ve),Te=0;Te=M)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+M.toString(16)+" bytes");return 0|Ne}function ee(Ne,Ve){if(c.isBuffer(Ne))return Ne.length;if(ArrayBuffer.isView(Ne)||le(Ne,ArrayBuffer))return Ne.byteLength;if("string"!=typeof Ne)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof Ne);var ue=Ne.length,Te=arguments.length>2&&!0===arguments[2];if(!Te&&0===ue)return 0;for(var ke=!1;;)switch(Ve){case"ascii":case"latin1":case"binary":return ue;case"utf8":case"utf-8":return Fe(Ne).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*ue;case"hex":return ue>>>1;case"base64":return we(Ne).length;default:if(ke)return Te?-1:Fe(Ne).length;Ve=(""+Ve).toLowerCase(),ke=!0}}function ie(Ne,Ve,ue){var Te=!1;if((void 0===Ve||Ve<0)&&(Ve=0),Ve>this.length||((void 0===ue||ue>this.length)&&(ue=this.length),ue<=0)||(ue>>>=0)<=(Ve>>>=0))return"";for(Ne||(Ne="utf8");;)switch(Ne){case"hex":return x(this,Ve,ue);case"utf8":case"utf-8":return p(this,Ve,ue);case"ascii":return L(this,Ve,ue);case"latin1":case"binary":return I(this,Ve,ue);case"base64":return a(this,Ve,ue);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r(this,Ve,ue);default:if(Te)throw new TypeError("Unknown encoding: "+Ne);Ne=(Ne+"").toLowerCase(),Te=!0}}function _e(Ne,Ve,ue){var Te=Ne[Ve];Ne[Ve]=Ne[ue],Ne[ue]=Te}function fe(Ne,Ve,ue,Te,ke){if(0===Ne.length)return-1;if("string"==typeof ue?(Te=ue,ue=0):ue>2147483647?ue=2147483647:ue<-2147483648&&(ue=-2147483648),We(ue=+ue)&&(ue=ke?0:Ne.length-1),ue<0&&(ue=Ne.length+ue),ue>=Ne.length){if(ke)return-1;ue=Ne.length-1}else if(ue<0){if(!ke)return-1;ue=0}if("string"==typeof Ve&&(Ve=c.from(Ve,Te)),c.isBuffer(Ve))return 0===Ve.length?-1:de(Ne,Ve,ue,Te,ke);if("number"==typeof Ve)return Ve&=255,"function"==typeof Uint8Array.prototype.indexOf?ke?Uint8Array.prototype.indexOf.call(Ne,Ve,ue):Uint8Array.prototype.lastIndexOf.call(Ne,Ve,ue):de(Ne,[Ve],ue,Te,ke);throw new TypeError("val must be string, number or Buffer")}function de(Ne,Ve,ue,Te,ke){var ze,Y=1,X=Ne.length,he=Ve.length;if(void 0!==Te&&("ucs2"===(Te=String(Te).toLowerCase())||"ucs-2"===Te||"utf16le"===Te||"utf-16le"===Te)){if(Ne.length<2||Ve.length<2)return-1;Y=2,X/=2,he/=2,ue/=2}function Me(nt,st){return 1===Y?nt[st]:nt.readUInt16BE(st*Y)}if(ke){var ht=-1;for(ze=ue;zeX&&(ue=X-he),ze=ue;ze>=0;ze--){for(var it=!0,ft=0;ftke&&(Te=ke):Te=ke;var Y=Ve.length;Te>Y/2&&(Te=Y/2);for(var X=0;X>8,Y.push(ue%256),Y.push(Te);return Y}(Ve,Ne.length-ue),Ne,ue,Te)}function a(Ne,Ve,ue){return e.fromByteArray(0===Ve&&ue===Ne.length?Ne:Ne.slice(Ve,ue))}function p(Ne,Ve,ue){ue=Math.min(Ne.length,ue);for(var Te=[],ke=Ve;ke239?4:Y>223?3:Y>191?2:1;if(ke+he<=ue)switch(he){case 1:Y<128&&(X=Y);break;case 2:128==(192&(Me=Ne[ke+1]))&&(it=(31&Y)<<6|63&Me)>127&&(X=it);break;case 3:ze=Ne[ke+2],128==(192&(Me=Ne[ke+1]))&&128==(192&ze)&&(it=(15&Y)<<12|(63&Me)<<6|63&ze)>2047&&(it<55296||it>57343)&&(X=it);break;case 4:ze=Ne[ke+2],ht=Ne[ke+3],128==(192&(Me=Ne[ke+1]))&&128==(192&ze)&&128==(192&ht)&&(it=(15&Y)<<18|(63&Me)<<12|(63&ze)<<6|63&ht)>65535&&it<1114112&&(X=it)}null===X?(X=65533,he=1):X>65535&&(Te.push((X-=65536)>>>10&1023|55296),X=56320|1023&X),Te.push(X),ke+=he}return function(Ne){var Ve=Ne.length;if(Ve<=u)return String.fromCharCode.apply(String,Ne);for(var ue="",Te=0;Teke.length?c.from(X).copy(ke,Y):Uint8Array.prototype.set.call(ke,X,Y);else{if(!c.isBuffer(X))throw new TypeError('"list" argument must be an Array of Buffers');X.copy(ke,Y)}Y+=X.length}return ke},c.byteLength=ee,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var Ve=this.length;if(Ve%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var ue=0;ueue&&(Ve+=" ... "),""},v&&(c.prototype[v]=c.prototype.inspect),c.prototype.compare=function(Ve,ue,Te,ke,Y){if(le(Ve,Uint8Array)&&(Ve=c.from(Ve,Ve.offset,Ve.byteLength)),!c.isBuffer(Ve))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Ve);if(void 0===ue&&(ue=0),void 0===Te&&(Te=Ve?Ve.length:0),void 0===ke&&(ke=0),void 0===Y&&(Y=this.length),ue<0||Te>Ve.length||ke<0||Y>this.length)throw new RangeError("out of range index");if(ke>=Y&&ue>=Te)return 0;if(ke>=Y)return-1;if(ue>=Te)return 1;if(this===Ve)return 0;for(var X=(Y>>>=0)-(ke>>>=0),he=(Te>>>=0)-(ue>>>=0),Me=Math.min(X,he),ze=this.slice(ke,Y),ht=Ve.slice(ue,Te),it=0;it>>=0,isFinite(Te)?(Te>>>=0,void 0===ke&&(ke="utf8")):(ke=Te,Te=void 0)}var Y=this.length-ue;if((void 0===Te||Te>Y)&&(Te=Y),Ve.length>0&&(Te<0||ue<0)||ue>this.length)throw new RangeError("Attempt to write outside buffer bounds");ke||(ke="utf8");for(var X=!1;;)switch(ke){case"hex":return ne(this,Ve,ue,Te);case"utf8":case"utf-8":return se(this,Ve,ue,Te);case"ascii":case"latin1":case"binary":return oe(this,Ve,ue,Te);case"base64":return y(this,Ve,ue,Te);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return i(this,Ve,ue,Te);default:if(X)throw new TypeError("Unknown encoding: "+ke);ke=(""+ke).toLowerCase(),X=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var u=4096;function L(Ne,Ve,ue){var Te="";ue=Math.min(Ne.length,ue);for(var ke=Ve;keTe)&&(ue=Te);for(var ke="",Y=Ve;Yue)throw new RangeError("Trying to access beyond buffer length")}function J(Ne,Ve,ue,Te,ke,Y){if(!c.isBuffer(Ne))throw new TypeError('"buffer" argument must be a Buffer instance');if(Ve>ke||VeNe.length)throw new RangeError("Index out of range")}function F(Ne,Ve,ue,Te,ke,Y){if(ue+Te>Ne.length)throw new RangeError("Index out of range");if(ue<0)throw new RangeError("Index out of range")}function B(Ne,Ve,ue,Te,ke){return Ve=+Ve,ue>>>=0,ke||F(Ne,0,ue,4),t.write(Ne,Ve,ue,Te,23,4),ue+4}function te(Ne,Ve,ue,Te,ke){return Ve=+Ve,ue>>>=0,ke||F(Ne,0,ue,8),t.write(Ne,Ve,ue,Te,52,8),ue+8}c.prototype.slice=function(Ve,ue){var Te=this.length;(Ve=~~Ve)<0?(Ve+=Te)<0&&(Ve=0):Ve>Te&&(Ve=Te),(ue=void 0===ue?Te:~~ue)<0?(ue+=Te)<0&&(ue=0):ue>Te&&(ue=Te),ue>>=0,ue>>>=0,Te||b(Ve,ue,this.length);for(var ke=this[Ve],Y=1,X=0;++X>>=0,ue>>>=0,Te||b(Ve,ue,this.length);for(var ke=this[Ve+--ue],Y=1;ue>0&&(Y*=256);)ke+=this[Ve+--ue]*Y;return ke},c.prototype.readUint8=c.prototype.readUInt8=function(Ve,ue){return Ve>>>=0,ue||b(Ve,1,this.length),this[Ve]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,2,this.length),this[Ve]|this[Ve+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,2,this.length),this[Ve]<<8|this[Ve+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,4,this.length),(this[Ve]|this[Ve+1]<<8|this[Ve+2]<<16)+16777216*this[Ve+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,4,this.length),16777216*this[Ve]+(this[Ve+1]<<16|this[Ve+2]<<8|this[Ve+3])},c.prototype.readIntLE=function(Ve,ue,Te){Ve>>>=0,ue>>>=0,Te||b(Ve,ue,this.length);for(var ke=this[Ve],Y=1,X=0;++X=(Y*=128)&&(ke-=Math.pow(2,8*ue)),ke},c.prototype.readIntBE=function(Ve,ue,Te){Ve>>>=0,ue>>>=0,Te||b(Ve,ue,this.length);for(var ke=ue,Y=1,X=this[Ve+--ke];ke>0&&(Y*=256);)X+=this[Ve+--ke]*Y;return X>=(Y*=128)&&(X-=Math.pow(2,8*ue)),X},c.prototype.readInt8=function(Ve,ue){return Ve>>>=0,ue||b(Ve,1,this.length),128&this[Ve]?-1*(255-this[Ve]+1):this[Ve]},c.prototype.readInt16LE=function(Ve,ue){Ve>>>=0,ue||b(Ve,2,this.length);var Te=this[Ve]|this[Ve+1]<<8;return 32768&Te?4294901760|Te:Te},c.prototype.readInt16BE=function(Ve,ue){Ve>>>=0,ue||b(Ve,2,this.length);var Te=this[Ve+1]|this[Ve]<<8;return 32768&Te?4294901760|Te:Te},c.prototype.readInt32LE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,4,this.length),this[Ve]|this[Ve+1]<<8|this[Ve+2]<<16|this[Ve+3]<<24},c.prototype.readInt32BE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,4,this.length),this[Ve]<<24|this[Ve+1]<<16|this[Ve+2]<<8|this[Ve+3]},c.prototype.readFloatLE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,4,this.length),t.read(this,Ve,!0,23,4)},c.prototype.readFloatBE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,4,this.length),t.read(this,Ve,!1,23,4)},c.prototype.readDoubleLE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,8,this.length),t.read(this,Ve,!0,52,8)},c.prototype.readDoubleBE=function(Ve,ue){return Ve>>>=0,ue||b(Ve,8,this.length),t.read(this,Ve,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(Ve,ue,Te,ke){Ve=+Ve,ue>>>=0,Te>>>=0,ke||J(this,Ve,ue,Te,Math.pow(2,8*Te)-1,0);var X=1,he=0;for(this[ue]=255&Ve;++he>>=0,Te>>>=0,ke||J(this,Ve,ue,Te,Math.pow(2,8*Te)-1,0);var X=Te-1,he=1;for(this[ue+X]=255&Ve;--X>=0&&(he*=256);)this[ue+X]=Ve/he&255;return ue+Te},c.prototype.writeUint8=c.prototype.writeUInt8=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,1,255,0),this[ue]=255&Ve,ue+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,2,65535,0),this[ue]=255&Ve,this[ue+1]=Ve>>>8,ue+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,2,65535,0),this[ue]=Ve>>>8,this[ue+1]=255&Ve,ue+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,4,4294967295,0),this[ue+3]=Ve>>>24,this[ue+2]=Ve>>>16,this[ue+1]=Ve>>>8,this[ue]=255&Ve,ue+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,4,4294967295,0),this[ue]=Ve>>>24,this[ue+1]=Ve>>>16,this[ue+2]=Ve>>>8,this[ue+3]=255&Ve,ue+4},c.prototype.writeIntLE=function(Ve,ue,Te,ke){if(Ve=+Ve,ue>>>=0,!ke){var Y=Math.pow(2,8*Te-1);J(this,Ve,ue,Te,Y-1,-Y)}var X=0,he=1,Me=0;for(this[ue]=255&Ve;++X>0)-Me&255;return ue+Te},c.prototype.writeIntBE=function(Ve,ue,Te,ke){if(Ve=+Ve,ue>>>=0,!ke){var Y=Math.pow(2,8*Te-1);J(this,Ve,ue,Te,Y-1,-Y)}var X=Te-1,he=1,Me=0;for(this[ue+X]=255&Ve;--X>=0&&(he*=256);)Ve<0&&0===Me&&0!==this[ue+X+1]&&(Me=1),this[ue+X]=(Ve/he>>0)-Me&255;return ue+Te},c.prototype.writeInt8=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,1,127,-128),Ve<0&&(Ve=255+Ve+1),this[ue]=255&Ve,ue+1},c.prototype.writeInt16LE=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,2,32767,-32768),this[ue]=255&Ve,this[ue+1]=Ve>>>8,ue+2},c.prototype.writeInt16BE=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,2,32767,-32768),this[ue]=Ve>>>8,this[ue+1]=255&Ve,ue+2},c.prototype.writeInt32LE=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,4,2147483647,-2147483648),this[ue]=255&Ve,this[ue+1]=Ve>>>8,this[ue+2]=Ve>>>16,this[ue+3]=Ve>>>24,ue+4},c.prototype.writeInt32BE=function(Ve,ue,Te){return Ve=+Ve,ue>>>=0,Te||J(this,Ve,ue,4,2147483647,-2147483648),Ve<0&&(Ve=4294967295+Ve+1),this[ue]=Ve>>>24,this[ue+1]=Ve>>>16,this[ue+2]=Ve>>>8,this[ue+3]=255&Ve,ue+4},c.prototype.writeFloatLE=function(Ve,ue,Te){return B(this,Ve,ue,!0,Te)},c.prototype.writeFloatBE=function(Ve,ue,Te){return B(this,Ve,ue,!1,Te)},c.prototype.writeDoubleLE=function(Ve,ue,Te){return te(this,Ve,ue,!0,Te)},c.prototype.writeDoubleBE=function(Ve,ue,Te){return te(this,Ve,ue,!1,Te)},c.prototype.copy=function(Ve,ue,Te,ke){if(!c.isBuffer(Ve))throw new TypeError("argument should be a Buffer");if(Te||(Te=0),!ke&&0!==ke&&(ke=this.length),ue>=Ve.length&&(ue=Ve.length),ue||(ue=0),ke>0&&ke=this.length)throw new RangeError("Index out of range");if(ke<0)throw new RangeError("sourceEnd out of bounds");ke>this.length&&(ke=this.length),Ve.length-ue>>=0,Te=void 0===Te?this.length:Te>>>0,Ve||(Ve=0),"number"==typeof Ve)for(X=ue;X55295&&ue<57344){if(!ke){if(ue>56319){(Ve-=3)>-1&&Y.push(239,191,189);continue}if(X+1===Te){(Ve-=3)>-1&&Y.push(239,191,189);continue}ke=ue;continue}if(ue<56320){(Ve-=3)>-1&&Y.push(239,191,189),ke=ue;continue}ue=65536+(ke-55296<<10|ue-56320)}else ke&&(Ve-=3)>-1&&Y.push(239,191,189);if(ke=null,ue<128){if((Ve-=1)<0)break;Y.push(ue)}else if(ue<2048){if((Ve-=2)<0)break;Y.push(ue>>6|192,63&ue|128)}else if(ue<65536){if((Ve-=3)<0)break;Y.push(ue>>12|224,ue>>6&63|128,63&ue|128)}else{if(!(ue<1114112))throw new Error("Invalid code point");if((Ve-=4)<0)break;Y.push(ue>>18|240,ue>>12&63|128,ue>>6&63|128,63&ue|128)}}return Y}function we(Ne){return e.toByteArray(function(Ne){if((Ne=(Ne=Ne.split("=")[0]).trim().replace(xe,"")).length<2)return"";for(;Ne.length%4!=0;)Ne+="=";return Ne}(Ne))}function Ae(Ne,Ve,ue,Te){for(var ke=0;ke=Ve.length||ke>=Ne.length);++ke)Ve[ke+ue]=Ne[ke];return ke}function le(Ne,Ve){return Ne instanceof Ve||null!=Ne&&null!=Ne.constructor&&null!=Ne.constructor.name&&Ne.constructor.name===Ve.name}function We(Ne){return Ne!=Ne}var yt=function(){for(var Ne="0123456789abcdef",Ve=new Array(256),ue=0;ue<16;++ue)for(var Te=16*ue,ke=0;ke<16;++ke)Ve[Te+ke]=Ne[ue]+Ne[ke];return Ve}()},1052:(Ue,K,m)=>{var e=m(3502).Buffer,t=m(295).Transform,v=m(3054).s;function s(C){t.call(this),this.hashMode="string"==typeof C,this.hashMode?this[C]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}m(3894)(s,t),s.prototype.update=function(C,c,P){"string"==typeof C&&(C=e.from(C,c));var o=this._update(C);return this.hashMode?this:(P&&(o=this._toString(o,P)),o)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(C,c,P){var o;try{this.hashMode?this._update(C):this.push(this._update(C))}catch(O){o=O}finally{P(o)}},s.prototype._flush=function(C){var c;try{this.push(this.__final())}catch(P){c=P}C(c)},s.prototype._finalOrDigest=function(C){var c=this.__final()||e.alloc(0);return C&&(c=this._toString(c,C,!0)),c},s.prototype._toString=function(C,c,P){if(this._decoder||(this._decoder=new v(c),this._encoding=c),this._encoding!==c)throw new Error("can't switch encodings");var o=this._decoder.write(C);return P&&(o+=this._decoder.end()),o},Ue.exports=s},7293:(Ue,K,m)=>{"use strict";const e=m(4315),t=m(2872),v=m(717);Ue.exports=function M(c,P){switch(t(c)){case"object":return function(c,P){if("function"==typeof P)return P(c);if(P||v(c)){const o=new c.constructor;for(let O in c)o[O]=M(c[O],P);return o}return c}(c,P);case"array":return function(c,P){const o=new c.constructor(c.length);for(let O=0;O2?v:Array(2-v.length+1).join("0")+v}(M.toString(16))}).join("")}(v)},hexToBytes:function(v){if(v.length%2==1)throw new Error("hexToBytes can't have a string with an odd number of characters.");return 0===v.indexOf("0x")&&(v=v.slice(2)),v.match(/../g).map(function(M){return parseInt(M,16)})}};Ue.exports?Ue.exports=m:K.convertHex=m}(this)},5612:function(Ue){!function(K){"use strict";var m={bytesToString:function(e){return e.map(function(t){return String.fromCharCode(t)}).join("")},stringToBytes:function(e){return e.split("").map(function(t){return t.charCodeAt(0)})}};m.UTF8={bytesToString:function(e){return decodeURIComponent(escape(m.bytesToString(e)))},stringToBytes:function(e){return m.stringToBytes(unescape(encodeURIComponent(e)))}},Ue.exports?Ue.exports=m:K.convertString=m}(this)},4746:(Ue,K,m)=>{var e=m(7715),t=m(6422);Ue.exports=function(c){return new M(c)};var v={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function M(C){this.curveType=v[C],this.curveType||(this.curveType={name:C}),this.curve=new e.ec(this.curveType.name),this.keys=void 0}function s(C,c,P){Array.isArray(C)||(C=C.toArray());var o=new Buffer(C);if(P&&o.length=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function P(y,i,a){var p=c(y,a);return a-1>=i&&(p|=c(y,a-1)<<4),p}function o(y,i,a,p){for(var u=0,_=Math.min(y.length,a),L=i;L<_;L++){var I=y.charCodeAt(L)-48;u*=p,u+=I>=49?I-49+10:I>=17?I-17+10:I}return u}s.isBN=function(i){return i instanceof s||null!==i&&"object"==typeof i&&i.constructor.wordSize===s.wordSize&&Array.isArray(i.words)},s.max=function(i,a){return i.cmp(a)>0?i:a},s.min=function(i,a){return i.cmp(a)<0?i:a},s.prototype._init=function(i,a,p){if("number"==typeof i)return this._initNumber(i,a,p);if("object"==typeof i)return this._initArray(i,a,p);"hex"===a&&(a=16),v(a===(0|a)&&a>=2&&a<=36);var u=0;"-"===(i=i.toString().replace(/\s+/g,""))[0]&&(u++,this.negative=1),u=0;u-=3)this.words[_]|=(L=i[u]|i[u-1]<<8|i[u-2]<<16)<>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);else if("le"===p)for(u=0,_=0;u>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);return this.strip()},s.prototype._parseHex=function(i,a,p){this.length=Math.ceil((i.length-a)/6),this.words=new Array(this.length);for(var u=0;u=a;u-=2)I=P(i,a,u)<<_,this.words[L]|=67108863&I,_>=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;else for(u=(i.length-a)%2==0?a+1:a;u=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;this.strip()},s.prototype._parseBase=function(i,a,p){this.words=[0],this.length=1;for(var u=0,_=1;_<=67108863;_*=a)u++;u--,_=_/a|0;for(var L=i.length-p,I=L%u,x=Math.min(L,L-I)+p,r=0,b=p;b1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],T=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function D(y,i,a){a.negative=i.negative^y.negative;var p=y.length+i.length|0;a.length=p,p=p-1|0;var u=0|y.words[0],_=0|i.words[0],L=u*_,x=L/67108864|0;a.words[0]=67108863&L;for(var r=1;r>>26,J=67108863&x,F=Math.min(r,i.length-1),B=Math.max(0,r-y.length+1);B<=F;B++)b+=(L=(u=0|y.words[r-B|0])*(_=0|i.words[B])+J)/67108864|0,J=67108863&L;a.words[r]=0|J,x=0|b}return 0!==x?a.words[r]=0|x:a.length--,a.strip()}s.prototype.toString=function(i,a){var p;if(a=0|a||1,16===(i=i||10)||"hex"===i){p="";for(var u=0,_=0,L=0;L>>24-u&16777215)||L!==this.length-1?O[6-x.length]+x+p:x+p,(u+=2)>=26&&(u-=26,L--)}for(0!==_&&(p=_.toString(16)+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}if(i===(0|i)&&i>=2&&i<=36){var r=T[i],b=R[i];p="";var J=this.clone();for(J.negative=0;!J.isZero();){var F=J.modn(b).toString(i);p=(J=J.idivn(b)).isZero()?F+p:O[r-F.length]+F+p}for(this.isZero()&&(p="0"+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}v(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var i=this.words[0];return 2===this.length?i+=67108864*this.words[1]:3===this.length&&1===this.words[2]?i+=4503599627370496+67108864*this.words[1]:this.length>2&&v(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-i:i},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(i,a){return v(void 0!==C),this.toArrayLike(C,i,a)},s.prototype.toArray=function(i,a){return this.toArrayLike(Array,i,a)},s.prototype.toArrayLike=function(i,a,p){var u=this.byteLength(),_=p||Math.max(1,u);v(u<=_,"byte array longer than desired length"),v(_>0,"Requested array length <= 0"),this.strip();var x,r,L="le"===a,I=new i(_),b=this.clone();if(L){for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[r]=x;for(;r<_;r++)I[r]=0}else{for(r=0;r<_-u;r++)I[r]=0;for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[_-r-1]=x}return I},s.prototype._countBits=Math.clz32?function(i){return 32-Math.clz32(i)}:function(i){var a=i,p=0;return a>=4096&&(p+=13,a>>>=13),a>=64&&(p+=7,a>>>=7),a>=8&&(p+=4,a>>>=4),a>=2&&(p+=2,a>>>=2),p+a},s.prototype._zeroBits=function(i){if(0===i)return 26;var a=i,p=0;return 0==(8191&a)&&(p+=13,a>>>=13),0==(127&a)&&(p+=7,a>>>=7),0==(15&a)&&(p+=4,a>>>=4),0==(3&a)&&(p+=2,a>>>=2),0==(1&a)&&p++,p},s.prototype.bitLength=function(){var a=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+a},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var i=0,a=0;ai.length?this.clone().ior(i):i.clone().ior(this)},s.prototype.uor=function(i){return this.length>i.length?this.clone().iuor(i):i.clone().iuor(this)},s.prototype.iuand=function(i){var a;a=this.length>i.length?i:this;for(var p=0;pi.length?this.clone().iand(i):i.clone().iand(this)},s.prototype.uand=function(i){return this.length>i.length?this.clone().iuand(i):i.clone().iuand(this)},s.prototype.iuxor=function(i){var a,p;this.length>i.length?(a=this,p=i):(a=i,p=this);for(var u=0;ui.length?this.clone().ixor(i):i.clone().ixor(this)},s.prototype.uxor=function(i){return this.length>i.length?this.clone().iuxor(i):i.clone().iuxor(this)},s.prototype.inotn=function(i){v("number"==typeof i&&i>=0);var a=0|Math.ceil(i/26),p=i%26;this._expand(a),p>0&&a--;for(var u=0;u0&&(this.words[u]=~this.words[u]&67108863>>26-p),this.strip()},s.prototype.notn=function(i){return this.clone().inotn(i)},s.prototype.setn=function(i,a){v("number"==typeof i&&i>=0);var p=i/26|0,u=i%26;return this._expand(p+1),this.words[p]=a?this.words[p]|1<i.length?(p=this,u=i):(p=i,u=this);for(var _=0,L=0;L>>26;for(;0!==_&&L>>26;if(this.length=p.length,0!==_)this.words[this.length]=_,this.length++;else if(p!==this)for(;Li.length?this.clone().iadd(i):i.clone().iadd(this)},s.prototype.isub=function(i){if(0!==i.negative){i.negative=0;var a=this.iadd(i);return i.negative=1,a._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(i),this.negative=1,this._normSign();var u,_,p=this.cmp(i);if(0===p)return this.negative=0,this.length=1,this.words[0]=0,this;p>0?(u=this,_=i):(u=i,_=this);for(var L=0,I=0;I<_.length;I++)L=(a=(0|u.words[I])-(0|_.words[I])+L)>>26,this.words[I]=67108863&a;for(;0!==L&&I>26,this.words[I]=67108863&a;if(0===L&&I>>13,te=0|u[1],xe=8191&te,Re=te>>>13,Fe=0|u[2],q=8191&Fe,j=Fe>>>13,we=0|u[3],Ae=8191&we,le=we>>>13,We=0|u[4],yt=8191&We,Ne=We>>>13,Ve=0|u[5],ue=8191&Ve,Te=Ve>>>13,ke=0|u[6],Y=8191&ke,X=ke>>>13,he=0|u[7],Me=8191&he,ze=he>>>13,ht=0|u[8],it=8191&ht,ft=ht>>>13,nt=0|u[9],st=8191&nt,wt=nt>>>13,Bt=0|_[0],Nt=8191&Bt,Vt=Bt>>>13,Oi=0|_[1],jt=8191&Oi,ti=Oi>>>13,Pi=0|_[2],si=8191&Pi,di=Pi>>>13,He=0|_[3],Se=8191&He,V=He>>>13,ve=0|_[4],Ee=8191&ve,et=ve>>>13,$t=0|_[5],Pt=8191&$t,Xt=$t>>>13,lt=0|_[6],Pe=8191<,Be=lt>>>13,rt=0|_[7],ot=8191&rt,At=rt>>>13,li=0|_[8],Ut=8191&li,Ft=li>>>13,Si=0|_[9],ai=8191&Si,ci=Si>>>13;p.negative=i.negative^a.negative,p.length=19;var rn=(I+(x=Math.imul(F,Nt))|0)+((8191&(r=(r=Math.imul(F,Vt))+Math.imul(B,Nt)|0))<<13)|0;I=((b=Math.imul(B,Vt))+(r>>>13)|0)+(rn>>>26)|0,rn&=67108863,x=Math.imul(xe,Nt),r=(r=Math.imul(xe,Vt))+Math.imul(Re,Nt)|0,b=Math.imul(Re,Vt);var Vi=(I+(x=x+Math.imul(F,jt)|0)|0)+((8191&(r=(r=r+Math.imul(F,ti)|0)+Math.imul(B,jt)|0))<<13)|0;I=((b=b+Math.imul(B,ti)|0)+(r>>>13)|0)+(Vi>>>26)|0,Vi&=67108863,x=Math.imul(q,Nt),r=(r=Math.imul(q,Vt))+Math.imul(j,Nt)|0,b=Math.imul(j,Vt),x=x+Math.imul(xe,jt)|0,r=(r=r+Math.imul(xe,ti)|0)+Math.imul(Re,jt)|0,b=b+Math.imul(Re,ti)|0;var Di=(I+(x=x+Math.imul(F,si)|0)|0)+((8191&(r=(r=r+Math.imul(F,di)|0)+Math.imul(B,si)|0))<<13)|0;I=((b=b+Math.imul(B,di)|0)+(r>>>13)|0)+(Di>>>26)|0,Di&=67108863,x=Math.imul(Ae,Nt),r=(r=Math.imul(Ae,Vt))+Math.imul(le,Nt)|0,b=Math.imul(le,Vt),x=x+Math.imul(q,jt)|0,r=(r=r+Math.imul(q,ti)|0)+Math.imul(j,jt)|0,b=b+Math.imul(j,ti)|0,x=x+Math.imul(xe,si)|0,r=(r=r+Math.imul(xe,di)|0)+Math.imul(Re,si)|0,b=b+Math.imul(Re,di)|0;var Xi=(I+(x=x+Math.imul(F,Se)|0)|0)+((8191&(r=(r=r+Math.imul(F,V)|0)+Math.imul(B,Se)|0))<<13)|0;I=((b=b+Math.imul(B,V)|0)+(r>>>13)|0)+(Xi>>>26)|0,Xi&=67108863,x=Math.imul(yt,Nt),r=(r=Math.imul(yt,Vt))+Math.imul(Ne,Nt)|0,b=Math.imul(Ne,Vt),x=x+Math.imul(Ae,jt)|0,r=(r=r+Math.imul(Ae,ti)|0)+Math.imul(le,jt)|0,b=b+Math.imul(le,ti)|0,x=x+Math.imul(q,si)|0,r=(r=r+Math.imul(q,di)|0)+Math.imul(j,si)|0,b=b+Math.imul(j,di)|0,x=x+Math.imul(xe,Se)|0,r=(r=r+Math.imul(xe,V)|0)+Math.imul(Re,Se)|0,b=b+Math.imul(Re,V)|0;var Ke=(I+(x=x+Math.imul(F,Ee)|0)|0)+((8191&(r=(r=r+Math.imul(F,et)|0)+Math.imul(B,Ee)|0))<<13)|0;I=((b=b+Math.imul(B,et)|0)+(r>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,x=Math.imul(ue,Nt),r=(r=Math.imul(ue,Vt))+Math.imul(Te,Nt)|0,b=Math.imul(Te,Vt),x=x+Math.imul(yt,jt)|0,r=(r=r+Math.imul(yt,ti)|0)+Math.imul(Ne,jt)|0,b=b+Math.imul(Ne,ti)|0,x=x+Math.imul(Ae,si)|0,r=(r=r+Math.imul(Ae,di)|0)+Math.imul(le,si)|0,b=b+Math.imul(le,di)|0,x=x+Math.imul(q,Se)|0,r=(r=r+Math.imul(q,V)|0)+Math.imul(j,Se)|0,b=b+Math.imul(j,V)|0,x=x+Math.imul(xe,Ee)|0,r=(r=r+Math.imul(xe,et)|0)+Math.imul(Re,Ee)|0,b=b+Math.imul(Re,et)|0;var mt=(I+(x=x+Math.imul(F,Pt)|0)|0)+((8191&(r=(r=r+Math.imul(F,Xt)|0)+Math.imul(B,Pt)|0))<<13)|0;I=((b=b+Math.imul(B,Xt)|0)+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,x=Math.imul(Y,Nt),r=(r=Math.imul(Y,Vt))+Math.imul(X,Nt)|0,b=Math.imul(X,Vt),x=x+Math.imul(ue,jt)|0,r=(r=r+Math.imul(ue,ti)|0)+Math.imul(Te,jt)|0,b=b+Math.imul(Te,ti)|0,x=x+Math.imul(yt,si)|0,r=(r=r+Math.imul(yt,di)|0)+Math.imul(Ne,si)|0,b=b+Math.imul(Ne,di)|0,x=x+Math.imul(Ae,Se)|0,r=(r=r+Math.imul(Ae,V)|0)+Math.imul(le,Se)|0,b=b+Math.imul(le,V)|0,x=x+Math.imul(q,Ee)|0,r=(r=r+Math.imul(q,et)|0)+Math.imul(j,Ee)|0,b=b+Math.imul(j,et)|0,x=x+Math.imul(xe,Pt)|0,r=(r=r+Math.imul(xe,Xt)|0)+Math.imul(Re,Pt)|0,b=b+Math.imul(Re,Xt)|0;var be=(I+(x=x+Math.imul(F,Pe)|0)|0)+((8191&(r=(r=r+Math.imul(F,Be)|0)+Math.imul(B,Pe)|0))<<13)|0;I=((b=b+Math.imul(B,Be)|0)+(r>>>13)|0)+(be>>>26)|0,be&=67108863,x=Math.imul(Me,Nt),r=(r=Math.imul(Me,Vt))+Math.imul(ze,Nt)|0,b=Math.imul(ze,Vt),x=x+Math.imul(Y,jt)|0,r=(r=r+Math.imul(Y,ti)|0)+Math.imul(X,jt)|0,b=b+Math.imul(X,ti)|0,x=x+Math.imul(ue,si)|0,r=(r=r+Math.imul(ue,di)|0)+Math.imul(Te,si)|0,b=b+Math.imul(Te,di)|0,x=x+Math.imul(yt,Se)|0,r=(r=r+Math.imul(yt,V)|0)+Math.imul(Ne,Se)|0,b=b+Math.imul(Ne,V)|0,x=x+Math.imul(Ae,Ee)|0,r=(r=r+Math.imul(Ae,et)|0)+Math.imul(le,Ee)|0,b=b+Math.imul(le,et)|0,x=x+Math.imul(q,Pt)|0,r=(r=r+Math.imul(q,Xt)|0)+Math.imul(j,Pt)|0,b=b+Math.imul(j,Xt)|0,x=x+Math.imul(xe,Pe)|0,r=(r=r+Math.imul(xe,Be)|0)+Math.imul(Re,Pe)|0,b=b+Math.imul(Re,Be)|0;var qe=(I+(x=x+Math.imul(F,ot)|0)|0)+((8191&(r=(r=r+Math.imul(F,At)|0)+Math.imul(B,ot)|0))<<13)|0;I=((b=b+Math.imul(B,At)|0)+(r>>>13)|0)+(qe>>>26)|0,qe&=67108863,x=Math.imul(it,Nt),r=(r=Math.imul(it,Vt))+Math.imul(ft,Nt)|0,b=Math.imul(ft,Vt),x=x+Math.imul(Me,jt)|0,r=(r=r+Math.imul(Me,ti)|0)+Math.imul(ze,jt)|0,b=b+Math.imul(ze,ti)|0,x=x+Math.imul(Y,si)|0,r=(r=r+Math.imul(Y,di)|0)+Math.imul(X,si)|0,b=b+Math.imul(X,di)|0,x=x+Math.imul(ue,Se)|0,r=(r=r+Math.imul(ue,V)|0)+Math.imul(Te,Se)|0,b=b+Math.imul(Te,V)|0,x=x+Math.imul(yt,Ee)|0,r=(r=r+Math.imul(yt,et)|0)+Math.imul(Ne,Ee)|0,b=b+Math.imul(Ne,et)|0,x=x+Math.imul(Ae,Pt)|0,r=(r=r+Math.imul(Ae,Xt)|0)+Math.imul(le,Pt)|0,b=b+Math.imul(le,Xt)|0,x=x+Math.imul(q,Pe)|0,r=(r=r+Math.imul(q,Be)|0)+Math.imul(j,Pe)|0,b=b+Math.imul(j,Be)|0,x=x+Math.imul(xe,ot)|0,r=(r=r+Math.imul(xe,At)|0)+Math.imul(Re,ot)|0,b=b+Math.imul(Re,At)|0;var vt=(I+(x=x+Math.imul(F,Ut)|0)|0)+((8191&(r=(r=r+Math.imul(F,Ft)|0)+Math.imul(B,Ut)|0))<<13)|0;I=((b=b+Math.imul(B,Ft)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,x=Math.imul(st,Nt),r=(r=Math.imul(st,Vt))+Math.imul(wt,Nt)|0,b=Math.imul(wt,Vt),x=x+Math.imul(it,jt)|0,r=(r=r+Math.imul(it,ti)|0)+Math.imul(ft,jt)|0,b=b+Math.imul(ft,ti)|0,x=x+Math.imul(Me,si)|0,r=(r=r+Math.imul(Me,di)|0)+Math.imul(ze,si)|0,b=b+Math.imul(ze,di)|0,x=x+Math.imul(Y,Se)|0,r=(r=r+Math.imul(Y,V)|0)+Math.imul(X,Se)|0,b=b+Math.imul(X,V)|0,x=x+Math.imul(ue,Ee)|0,r=(r=r+Math.imul(ue,et)|0)+Math.imul(Te,Ee)|0,b=b+Math.imul(Te,et)|0,x=x+Math.imul(yt,Pt)|0,r=(r=r+Math.imul(yt,Xt)|0)+Math.imul(Ne,Pt)|0,b=b+Math.imul(Ne,Xt)|0,x=x+Math.imul(Ae,Pe)|0,r=(r=r+Math.imul(Ae,Be)|0)+Math.imul(le,Pe)|0,b=b+Math.imul(le,Be)|0,x=x+Math.imul(q,ot)|0,r=(r=r+Math.imul(q,At)|0)+Math.imul(j,ot)|0,b=b+Math.imul(j,At)|0,x=x+Math.imul(xe,Ut)|0,r=(r=r+Math.imul(xe,Ft)|0)+Math.imul(Re,Ut)|0,b=b+Math.imul(Re,Ft)|0;var me=(I+(x=x+Math.imul(F,ai)|0)|0)+((8191&(r=(r=r+Math.imul(F,ci)|0)+Math.imul(B,ai)|0))<<13)|0;I=((b=b+Math.imul(B,ci)|0)+(r>>>13)|0)+(me>>>26)|0,me&=67108863,x=Math.imul(st,jt),r=(r=Math.imul(st,ti))+Math.imul(wt,jt)|0,b=Math.imul(wt,ti),x=x+Math.imul(it,si)|0,r=(r=r+Math.imul(it,di)|0)+Math.imul(ft,si)|0,b=b+Math.imul(ft,di)|0,x=x+Math.imul(Me,Se)|0,r=(r=r+Math.imul(Me,V)|0)+Math.imul(ze,Se)|0,b=b+Math.imul(ze,V)|0,x=x+Math.imul(Y,Ee)|0,r=(r=r+Math.imul(Y,et)|0)+Math.imul(X,Ee)|0,b=b+Math.imul(X,et)|0,x=x+Math.imul(ue,Pt)|0,r=(r=r+Math.imul(ue,Xt)|0)+Math.imul(Te,Pt)|0,b=b+Math.imul(Te,Xt)|0,x=x+Math.imul(yt,Pe)|0,r=(r=r+Math.imul(yt,Be)|0)+Math.imul(Ne,Pe)|0,b=b+Math.imul(Ne,Be)|0,x=x+Math.imul(Ae,ot)|0,r=(r=r+Math.imul(Ae,At)|0)+Math.imul(le,ot)|0,b=b+Math.imul(le,At)|0,x=x+Math.imul(q,Ut)|0,r=(r=r+Math.imul(q,Ft)|0)+Math.imul(j,Ut)|0,b=b+Math.imul(j,Ft)|0;var $e=(I+(x=x+Math.imul(xe,ai)|0)|0)+((8191&(r=(r=r+Math.imul(xe,ci)|0)+Math.imul(Re,ai)|0))<<13)|0;I=((b=b+Math.imul(Re,ci)|0)+(r>>>13)|0)+($e>>>26)|0,$e&=67108863,x=Math.imul(st,si),r=(r=Math.imul(st,di))+Math.imul(wt,si)|0,b=Math.imul(wt,di),x=x+Math.imul(it,Se)|0,r=(r=r+Math.imul(it,V)|0)+Math.imul(ft,Se)|0,b=b+Math.imul(ft,V)|0,x=x+Math.imul(Me,Ee)|0,r=(r=r+Math.imul(Me,et)|0)+Math.imul(ze,Ee)|0,b=b+Math.imul(ze,et)|0,x=x+Math.imul(Y,Pt)|0,r=(r=r+Math.imul(Y,Xt)|0)+Math.imul(X,Pt)|0,b=b+Math.imul(X,Xt)|0,x=x+Math.imul(ue,Pe)|0,r=(r=r+Math.imul(ue,Be)|0)+Math.imul(Te,Pe)|0,b=b+Math.imul(Te,Be)|0,x=x+Math.imul(yt,ot)|0,r=(r=r+Math.imul(yt,At)|0)+Math.imul(Ne,ot)|0,b=b+Math.imul(Ne,At)|0,x=x+Math.imul(Ae,Ut)|0,r=(r=r+Math.imul(Ae,Ft)|0)+Math.imul(le,Ut)|0,b=b+Math.imul(le,Ft)|0;var St=(I+(x=x+Math.imul(q,ai)|0)|0)+((8191&(r=(r=r+Math.imul(q,ci)|0)+Math.imul(j,ai)|0))<<13)|0;I=((b=b+Math.imul(j,ci)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,x=Math.imul(st,Se),r=(r=Math.imul(st,V))+Math.imul(wt,Se)|0,b=Math.imul(wt,V),x=x+Math.imul(it,Ee)|0,r=(r=r+Math.imul(it,et)|0)+Math.imul(ft,Ee)|0,b=b+Math.imul(ft,et)|0,x=x+Math.imul(Me,Pt)|0,r=(r=r+Math.imul(Me,Xt)|0)+Math.imul(ze,Pt)|0,b=b+Math.imul(ze,Xt)|0,x=x+Math.imul(Y,Pe)|0,r=(r=r+Math.imul(Y,Be)|0)+Math.imul(X,Pe)|0,b=b+Math.imul(X,Be)|0,x=x+Math.imul(ue,ot)|0,r=(r=r+Math.imul(ue,At)|0)+Math.imul(Te,ot)|0,b=b+Math.imul(Te,At)|0,x=x+Math.imul(yt,Ut)|0,r=(r=r+Math.imul(yt,Ft)|0)+Math.imul(Ne,Ut)|0,b=b+Math.imul(Ne,Ft)|0;var Rt=(I+(x=x+Math.imul(Ae,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Ae,ci)|0)+Math.imul(le,ai)|0))<<13)|0;I=((b=b+Math.imul(le,ci)|0)+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,x=Math.imul(st,Ee),r=(r=Math.imul(st,et))+Math.imul(wt,Ee)|0,b=Math.imul(wt,et),x=x+Math.imul(it,Pt)|0,r=(r=r+Math.imul(it,Xt)|0)+Math.imul(ft,Pt)|0,b=b+Math.imul(ft,Xt)|0,x=x+Math.imul(Me,Pe)|0,r=(r=r+Math.imul(Me,Be)|0)+Math.imul(ze,Pe)|0,b=b+Math.imul(ze,Be)|0,x=x+Math.imul(Y,ot)|0,r=(r=r+Math.imul(Y,At)|0)+Math.imul(X,ot)|0,b=b+Math.imul(X,At)|0,x=x+Math.imul(ue,Ut)|0,r=(r=r+Math.imul(ue,Ft)|0)+Math.imul(Te,Ut)|0,b=b+Math.imul(Te,Ft)|0;var yi=(I+(x=x+Math.imul(yt,ai)|0)|0)+((8191&(r=(r=r+Math.imul(yt,ci)|0)+Math.imul(Ne,ai)|0))<<13)|0;I=((b=b+Math.imul(Ne,ci)|0)+(r>>>13)|0)+(yi>>>26)|0,yi&=67108863,x=Math.imul(st,Pt),r=(r=Math.imul(st,Xt))+Math.imul(wt,Pt)|0,b=Math.imul(wt,Xt),x=x+Math.imul(it,Pe)|0,r=(r=r+Math.imul(it,Be)|0)+Math.imul(ft,Pe)|0,b=b+Math.imul(ft,Be)|0,x=x+Math.imul(Me,ot)|0,r=(r=r+Math.imul(Me,At)|0)+Math.imul(ze,ot)|0,b=b+Math.imul(ze,At)|0,x=x+Math.imul(Y,Ut)|0,r=(r=r+Math.imul(Y,Ft)|0)+Math.imul(X,Ut)|0,b=b+Math.imul(X,Ft)|0;var Ri=(I+(x=x+Math.imul(ue,ai)|0)|0)+((8191&(r=(r=r+Math.imul(ue,ci)|0)+Math.imul(Te,ai)|0))<<13)|0;I=((b=b+Math.imul(Te,ci)|0)+(r>>>13)|0)+(Ri>>>26)|0,Ri&=67108863,x=Math.imul(st,Pe),r=(r=Math.imul(st,Be))+Math.imul(wt,Pe)|0,b=Math.imul(wt,Be),x=x+Math.imul(it,ot)|0,r=(r=r+Math.imul(it,At)|0)+Math.imul(ft,ot)|0,b=b+Math.imul(ft,At)|0,x=x+Math.imul(Me,Ut)|0,r=(r=r+Math.imul(Me,Ft)|0)+Math.imul(ze,Ut)|0,b=b+Math.imul(ze,Ft)|0;var Ii=(I+(x=x+Math.imul(Y,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Y,ci)|0)+Math.imul(X,ai)|0))<<13)|0;I=((b=b+Math.imul(X,ci)|0)+(r>>>13)|0)+(Ii>>>26)|0,Ii&=67108863,x=Math.imul(st,ot),r=(r=Math.imul(st,At))+Math.imul(wt,ot)|0,b=Math.imul(wt,At),x=x+Math.imul(it,Ut)|0,r=(r=r+Math.imul(it,Ft)|0)+Math.imul(ft,Ut)|0,b=b+Math.imul(ft,Ft)|0;var Ki=(I+(x=x+Math.imul(Me,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Me,ci)|0)+Math.imul(ze,ai)|0))<<13)|0;I=((b=b+Math.imul(ze,ci)|0)+(r>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,x=Math.imul(st,Ut),r=(r=Math.imul(st,Ft))+Math.imul(wt,Ut)|0,b=Math.imul(wt,Ft);var at=(I+(x=x+Math.imul(it,ai)|0)|0)+((8191&(r=(r=r+Math.imul(it,ci)|0)+Math.imul(ft,ai)|0))<<13)|0;I=((b=b+Math.imul(ft,ci)|0)+(r>>>13)|0)+(at>>>26)|0,at&=67108863;var Qt=(I+(x=Math.imul(st,ai))|0)+((8191&(r=(r=Math.imul(st,ci))+Math.imul(wt,ai)|0))<<13)|0;return I=((b=Math.imul(wt,ci))+(r>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,L[0]=rn,L[1]=Vi,L[2]=Di,L[3]=Xi,L[4]=Ke,L[5]=mt,L[6]=be,L[7]=qe,L[8]=vt,L[9]=me,L[10]=$e,L[11]=St,L[12]=Rt,L[13]=yi,L[14]=Ri,L[15]=Ii,L[16]=Ki,L[17]=at,L[18]=Qt,0!==I&&(L[19]=I,p.length++),p};function G(y,i,a){return(new W).mulp(y,i,a)}function W(y,i){this.x=y,this.y=i}Math.imul||(w=D),s.prototype.mulTo=function(i,a){var p,u=this.length+i.length;return p=10===this.length&&10===i.length?w(this,i,a):u<63?D(this,i,a):u<1024?function(y,i,a){a.negative=i.negative^y.negative,a.length=y.length+i.length;for(var p=0,u=0,_=0;_>>26)|0)>>>26,L&=67108863}a.words[_]=I,p=L,L=u}return 0!==p?a.words[_]=p:a.length--,a.strip()}(this,i,a):G(this,i,a),p},W.prototype.makeRBT=function(i){for(var a=new Array(i),p=s.prototype._countBits(i)-1,u=0;u>=1;return u},W.prototype.permute=function(i,a,p,u,_,L){for(var I=0;I>>=1)_++;return 1<<_+1+u},W.prototype.conjugate=function(i,a,p){if(!(p<=1))for(var u=0;u

>>=13),_>>>=13;for(L=2*a;L>=26,a+=u/67108864|0,a+=_>>>26,this.words[p]=67108863&_}return 0!==a&&(this.words[p]=a,this.length++),this},s.prototype.muln=function(i){return this.clone().imuln(i)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(i){var a=function(y){for(var i=new Array(y.bitLength()),a=0;a>>u}return i}(i);if(0===a.length)return new s(1);for(var p=this,u=0;u=0);var _,a=i%26,p=(i-a)/26,u=67108863>>>26-a<<26-a;if(0!==a){var L=0;for(_=0;_>>26-a}L&&(this.words[_]=L,this.length++)}if(0!==p){for(_=this.length-1;_>=0;_--)this.words[_+p]=this.words[_];for(_=0;_=0),u=a?(a-a%26)/26:0;var _=i%26,L=Math.min((i-_)/26,this.length),I=67108863^67108863>>>_<<_,x=p;if(u-=L,u=Math.max(0,u),x){for(var r=0;rL)for(this.length-=L,r=0;r=0&&(0!==b||r>=u);r--){var J=0|this.words[r];this.words[r]=b<<26-_|J>>>_,b=J&I}return x&&0!==b&&(x.words[x.length++]=b),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(i,a,p){return v(0===this.negative),this.iushrn(i,a,p)},s.prototype.shln=function(i){return this.clone().ishln(i)},s.prototype.ushln=function(i){return this.clone().iushln(i)},s.prototype.shrn=function(i){return this.clone().ishrn(i)},s.prototype.ushrn=function(i){return this.clone().iushrn(i)},s.prototype.testn=function(i){v("number"==typeof i&&i>=0);var a=i%26,p=(i-a)/26;return!(this.length<=p||!(this.words[p]&1<=0);var a=i%26,p=(i-a)/26;return v(0===this.negative,"imaskn works only with positive numbers"),this.length<=p?this:(0!==a&&p++,this.length=Math.min(p,this.length),0!==a&&(this.words[this.length-1]&=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},s.prototype.isubn=function(i){if(v("number"==typeof i),v(i<67108864),i<0)return this.iaddn(-i);if(0!==this.negative)return this.negative=0,this.iaddn(i),this.negative=1,this;if(this.words[0]-=i,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(x/67108864|0),this.words[_+p]=67108863&L}for(;_>26,this.words[_+p]=67108863&L;if(0===I)return this.strip();for(v(-1===I),I=0,_=0;_>26,this.words[_]=67108863&L;return this.negative=1,this.strip()},s.prototype._wordDiv=function(i,a){var p,u=this.clone(),_=i,L=0|_.words[_.length-1];0!=(p=26-this._countBits(L))&&(_=_.ushln(p),u.iushln(p),L=0|_.words[_.length-1]);var r,x=u.length-_.length;if("mod"!==a){(r=new s(null)).length=x+1,r.words=new Array(r.length);for(var b=0;b=0;F--){var B=67108864*(0|u.words[_.length+F])+(0|u.words[_.length+F-1]);for(B=Math.min(B/L|0,67108863),u._ishlnsubmul(_,B,F);0!==u.negative;)B--,u.negative=0,u._ishlnsubmul(_,1,F),u.isZero()||(u.negative^=1);r&&(r.words[F]=B)}return r&&r.strip(),u.strip(),"div"!==a&&0!==p&&u.iushrn(p),{div:r||null,mod:u}},s.prototype.divmod=function(i,a,p){return v(!i.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===i.negative?(L=this.neg().divmod(i,a),"mod"!==a&&(u=L.div.neg()),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.iadd(i)),{div:u,mod:_}):0===this.negative&&0!==i.negative?(L=this.divmod(i.neg(),a),"mod"!==a&&(u=L.div.neg()),{div:u,mod:L.mod}):0!=(this.negative&i.negative)?(L=this.neg().divmod(i.neg(),a),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.isub(i)),{div:L.div,mod:_}):i.length>this.length||this.cmp(i)<0?{div:new s(0),mod:this}:1===i.length?"div"===a?{div:this.divn(i.words[0]),mod:null}:"mod"===a?{div:null,mod:new s(this.modn(i.words[0]))}:{div:this.divn(i.words[0]),mod:new s(this.modn(i.words[0]))}:this._wordDiv(i,a);var u,_,L},s.prototype.div=function(i){return this.divmod(i,"div",!1).div},s.prototype.mod=function(i){return this.divmod(i,"mod",!1).mod},s.prototype.umod=function(i){return this.divmod(i,"mod",!0).mod},s.prototype.divRound=function(i){var a=this.divmod(i);if(a.mod.isZero())return a.div;var p=0!==a.div.negative?a.mod.isub(i):a.mod,u=i.ushrn(1),_=i.andln(1),L=p.cmp(u);return L<0||1===_&&0===L?a.div:0!==a.div.negative?a.div.isubn(1):a.div.iaddn(1)},s.prototype.modn=function(i){v(i<=67108863);for(var a=(1<<26)%i,p=0,u=this.length-1;u>=0;u--)p=(a*p+(0|this.words[u]))%i;return p},s.prototype.idivn=function(i){v(i<=67108863);for(var a=0,p=this.length-1;p>=0;p--){var u=(0|this.words[p])+67108864*a;this.words[p]=u/i|0,a=u%i}return this.strip()},s.prototype.divn=function(i){return this.clone().idivn(i)},s.prototype.egcd=function(i){v(0===i.negative),v(!i.isZero());var a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=new s(0),I=new s(1),x=0;a.isEven()&&p.isEven();)a.iushrn(1),p.iushrn(1),++x;for(var r=p.clone(),b=a.clone();!a.isZero();){for(var J=0,F=1;0==(a.words[0]&F)&&J<26;++J,F<<=1);if(J>0)for(a.iushrn(J);J-- >0;)(u.isOdd()||_.isOdd())&&(u.iadd(r),_.isub(b)),u.iushrn(1),_.iushrn(1);for(var B=0,te=1;0==(p.words[0]&te)&&B<26;++B,te<<=1);if(B>0)for(p.iushrn(B);B-- >0;)(L.isOdd()||I.isOdd())&&(L.iadd(r),I.isub(b)),L.iushrn(1),I.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(L),_.isub(I)):(p.isub(a),L.isub(u),I.isub(_))}return{a:L,b:I,gcd:p.iushln(x)}},s.prototype._invmp=function(i){v(0===i.negative),v(!i.isZero());var J,a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=p.clone();a.cmpn(1)>0&&p.cmpn(1)>0;){for(var I=0,x=1;0==(a.words[0]&x)&&I<26;++I,x<<=1);if(I>0)for(a.iushrn(I);I-- >0;)u.isOdd()&&u.iadd(L),u.iushrn(1);for(var r=0,b=1;0==(p.words[0]&b)&&r<26;++r,b<<=1);if(r>0)for(p.iushrn(r);r-- >0;)_.isOdd()&&_.iadd(L),_.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(_)):(p.isub(a),_.isub(u))}return(J=0===a.cmpn(1)?u:_).cmpn(0)<0&&J.iadd(i),J},s.prototype.gcd=function(i){if(this.isZero())return i.abs();if(i.isZero())return this.abs();var a=this.clone(),p=i.clone();a.negative=0,p.negative=0;for(var u=0;a.isEven()&&p.isEven();u++)a.iushrn(1),p.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;p.isEven();)p.iushrn(1);var _=a.cmp(p);if(_<0){var L=a;a=p,p=L}else if(0===_||0===p.cmpn(1))break;a.isub(p)}return p.iushln(u)},s.prototype.invm=function(i){return this.egcd(i).a.umod(i)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(i){return this.words[0]&i},s.prototype.bincn=function(i){v("number"==typeof i);var a=i%26,p=(i-a)/26,u=1<>>26,this.words[L]=I&=67108863}return 0!==_&&(this.words[L]=_,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(i){var p,a=i<0;if(0!==this.negative&&!a)return-1;if(0===this.negative&&a)return 1;if(this.strip(),this.length>1)p=1;else{a&&(i=-i),v(i<=67108863,"Number is too big");var u=0|this.words[0];p=u===i?0:ui.length)return 1;if(this.length=0;p--){var u=0|this.words[p],_=0|i.words[p];if(u!==_){u<_?a=-1:u>_&&(a=1);break}}return a},s.prototype.gtn=function(i){return 1===this.cmpn(i)},s.prototype.gt=function(i){return 1===this.cmp(i)},s.prototype.gten=function(i){return this.cmpn(i)>=0},s.prototype.gte=function(i){return this.cmp(i)>=0},s.prototype.ltn=function(i){return-1===this.cmpn(i)},s.prototype.lt=function(i){return-1===this.cmp(i)},s.prototype.lten=function(i){return this.cmpn(i)<=0},s.prototype.lte=function(i){return this.cmp(i)<=0},s.prototype.eqn=function(i){return 0===this.cmpn(i)},s.prototype.eq=function(i){return 0===this.cmp(i)},s.red=function(i){return new se(i)},s.prototype.toRed=function(i){return v(!this.red,"Already a number in reduction context"),v(0===this.negative,"red works only with positives"),i.convertTo(this)._forceRed(i)},s.prototype.fromRed=function(){return v(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(i){return this.red=i,this},s.prototype.forceRed=function(i){return v(!this.red,"Already a number in reduction context"),this._forceRed(i)},s.prototype.redAdd=function(i){return v(this.red,"redAdd works only with red numbers"),this.red.add(this,i)},s.prototype.redIAdd=function(i){return v(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,i)},s.prototype.redSub=function(i){return v(this.red,"redSub works only with red numbers"),this.red.sub(this,i)},s.prototype.redISub=function(i){return v(this.red,"redISub works only with red numbers"),this.red.isub(this,i)},s.prototype.redShl=function(i){return v(this.red,"redShl works only with red numbers"),this.red.shl(this,i)},s.prototype.redMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.mul(this,i)},s.prototype.redIMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.imul(this,i)},s.prototype.redSqr=function(){return v(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return v(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return v(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return v(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return v(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(i){return v(this.red&&!i.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,i)};var ee={k256:null,p224:null,p192:null,p25519:null};function ie(y,i){this.name=y,this.p=new s(i,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _e(){ie.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function fe(){ie.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function de(){ie.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function ne(){ie.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function se(y){if("string"==typeof y){var i=s._prime(y);this.m=i.p,this.prime=i}else v(y.gtn(1),"modulus must be greater than 1"),this.m=y,this.prime=null}function oe(y){se.call(this,y),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}ie.prototype._tmp=function(){var i=new s(null);return i.words=new Array(Math.ceil(this.n/13)),i},ie.prototype.ireduce=function(i){var p,a=i;do{this.split(a,this.tmp),p=(a=(a=this.imulK(a)).iadd(this.tmp)).bitLength()}while(p>this.n);var u=p0?a.isub(this.p):void 0!==a.strip?a.strip():a._strip(),a},ie.prototype.split=function(i,a){i.iushrn(this.n,0,a)},ie.prototype.imulK=function(i){return i.imul(this.k)},M(_e,ie),_e.prototype.split=function(i,a){for(var p=4194303,u=Math.min(i.length,9),_=0;_>>22,L=I}i.words[_-10]=L>>>=22,i.length-=0===L&&i.length>10?10:9},_e.prototype.imulK=function(i){i.words[i.length]=0,i.words[i.length+1]=0,i.length+=2;for(var a=0,p=0;p>>=26,i.words[p]=_,a=u}return 0!==a&&(i.words[i.length++]=a),i},s._prime=function(i){if(ee[i])return ee[i];var a;if("k256"===i)a=new _e;else if("p224"===i)a=new fe;else if("p192"===i)a=new de;else{if("p25519"!==i)throw new Error("Unknown prime "+i);a=new ne}return ee[i]=a,a},se.prototype._verify1=function(i){v(0===i.negative,"red works only with positives"),v(i.red,"red works only with red numbers")},se.prototype._verify2=function(i,a){v(0==(i.negative|a.negative),"red works only with positives"),v(i.red&&i.red===a.red,"red works only with red numbers")},se.prototype.imod=function(i){return this.prime?this.prime.ireduce(i)._forceRed(this):i.umod(this.m)._forceRed(this)},se.prototype.neg=function(i){return i.isZero()?i.clone():this.m.sub(i)._forceRed(this)},se.prototype.add=function(i,a){this._verify2(i,a);var p=i.add(a);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},se.prototype.iadd=function(i,a){this._verify2(i,a);var p=i.iadd(a);return p.cmp(this.m)>=0&&p.isub(this.m),p},se.prototype.sub=function(i,a){this._verify2(i,a);var p=i.sub(a);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},se.prototype.isub=function(i,a){this._verify2(i,a);var p=i.isub(a);return p.cmpn(0)<0&&p.iadd(this.m),p},se.prototype.shl=function(i,a){return this._verify1(i),this.imod(i.ushln(a))},se.prototype.imul=function(i,a){return this._verify2(i,a),this.imod(i.imul(a))},se.prototype.mul=function(i,a){return this._verify2(i,a),this.imod(i.mul(a))},se.prototype.isqr=function(i){return this.imul(i,i.clone())},se.prototype.sqr=function(i){return this.mul(i,i)},se.prototype.sqrt=function(i){if(i.isZero())return i.clone();var a=this.m.andln(3);if(v(a%2==1),3===a){var p=this.m.add(new s(1)).iushrn(2);return this.pow(i,p)}for(var u=this.m.subn(1),_=0;!u.isZero()&&0===u.andln(1);)_++,u.iushrn(1);v(!u.isZero());var L=new s(1).toRed(this),I=L.redNeg(),x=this.m.subn(1).iushrn(1),r=this.m.bitLength();for(r=new s(2*r*r).toRed(this);0!==this.pow(r,x).cmp(I);)r.redIAdd(I);for(var b=this.pow(r,u),J=this.pow(i,u.addn(1).iushrn(1)),F=this.pow(i,u),B=_;0!==F.cmp(L);){for(var te=F,xe=0;0!==te.cmp(L);xe++)te=te.redSqr();v(xe=0;_--){for(var b=a.words[_],J=r-1;J>=0;J--){var F=b>>J&1;L!==u[0]&&(L=this.sqr(L)),0!==F||0!==I?(I<<=1,I|=F,(4==++x||0===_&&0===J)&&(L=this.mul(L,u[I]),x=0,I=0)):x=0}r=26}return L},se.prototype.convertTo=function(i){var a=i.umod(this.m);return a===i?a.clone():a},se.prototype.convertFrom=function(i){var a=i.clone();return a.red=null,a},s.mont=function(i){return new oe(i)},M(oe,se),oe.prototype.convertTo=function(i){return this.imod(i.ushln(this.shift))},oe.prototype.convertFrom=function(i){var a=this.imod(i.mul(this.rinv));return a.red=null,a},oe.prototype.imul=function(i,a){if(i.isZero()||a.isZero())return i.words[0]=0,i.length=1,i;var p=i.imul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.mul=function(i,a){if(i.isZero()||a.isZero())return new s(0)._forceRed(this);var p=i.mul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.invm=function(i){return this.imod(i._invmp(this.m).mul(this.r2))._forceRed(this)}}(Ue=m.nmd(Ue),this)},6386:(Ue,K,m)=>{"use strict";var e=m(3894),t=m(8095),v=m(5634),M=m(5244),s=m(1052);function C(c){s.call(this,"digest"),this._hash=c}e(C,s),C.prototype._update=function(c){this._hash.update(c)},C.prototype._final=function(){return this._hash.digest()},Ue.exports=function(P){return"md5"===(P=P.toLowerCase())?new t:"rmd160"===P||"ripemd160"===P?new v:new C(M(P))}},5640:(Ue,K,m)=>{var e=m(8095);Ue.exports=function(t){return(new e).update(t).digest()}},4529:(Ue,K,m)=>{"use strict";var e=m(3894),t=m(7309),v=m(1052),M=m(3502).Buffer,s=m(5640),C=m(5634),c=m(5244),P=M.alloc(128);function o(O,T){v.call(this,"digest"),"string"==typeof T&&(T=M.from(T));var R="sha512"===O||"sha384"===O?128:64;this._alg=O,this._key=T,T.length>R?T=("rmd160"===O?new C:c(O)).update(T).digest():T.length{"use strict";var e=m(3894),t=m(3502).Buffer,v=m(1052),M=t.alloc(128),s=64;function C(c,P){v.call(this,"digest"),"string"==typeof P&&(P=t.from(P)),this._alg=c,this._key=P,P.length>s?P=c(P):P.length{"use strict";K.randomBytes=K.rng=K.pseudoRandomBytes=K.prng=m(3753),K.createHash=K.Hash=m(6386),K.createHmac=K.Hmac=m(4529);var e=m(7793),t=Object.keys(e),v=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(t);K.getHashes=function(){return v};var M=m(9357);K.pbkdf2=M.pbkdf2,K.pbkdf2Sync=M.pbkdf2Sync;var s=m(5255);K.Cipher=s.Cipher,K.createCipher=s.createCipher,K.Cipheriv=s.Cipheriv,K.createCipheriv=s.createCipheriv,K.Decipher=s.Decipher,K.createDecipher=s.createDecipher,K.Decipheriv=s.Decipheriv,K.createDecipheriv=s.createDecipheriv,K.getCiphers=s.getCiphers,K.listCiphers=s.listCiphers;var C=m(8829);K.DiffieHellmanGroup=C.DiffieHellmanGroup,K.createDiffieHellmanGroup=C.createDiffieHellmanGroup,K.getDiffieHellman=C.getDiffieHellman,K.createDiffieHellman=C.createDiffieHellman,K.DiffieHellman=C.DiffieHellman;var c=m(3923);K.createSign=c.createSign,K.Sign=c.Sign,K.createVerify=c.createVerify,K.Verify=c.Verify,K.createECDH=m(4746);var P=m(3701);K.publicEncrypt=P.publicEncrypt,K.privateEncrypt=P.privateEncrypt,K.publicDecrypt=P.publicDecrypt,K.privateDecrypt=P.privateDecrypt;var o=m(4275);K.randomFill=o.randomFill,K.randomFillSync=o.randomFillSync,K.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},K.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},3684:(Ue,K,m)=>{"use strict";K.utils=m(7451),K.Cipher=m(8170),K.DES=m(4631),K.CBC=m(9454),K.EDE=m(1862)},9454:(Ue,K,m)=>{"use strict";var e=m(2391),t=m(3894),v={};function M(C){e.equal(C.length,8,"Invalid IV length"),this.iv=new Array(8);for(var c=0;c{"use strict";var e=m(2391);function t(v){this.options=v,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}Ue.exports=t,t.prototype._init=function(){},t.prototype.update=function(M){return 0===M.length?[]:"decrypt"===this.type?this._updateDecrypt(M):this._updateEncrypt(M)},t.prototype._buffer=function(M,s){for(var C=Math.min(this.buffer.length-this.bufferOff,M.length-s),c=0;c0;c--)s+=this._buffer(M,s),C+=this._flushBuffer(P,C);return s+=this._buffer(M,s),P},t.prototype.final=function(M){var s,C;return M&&(s=this.update(M)),C="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),s?s.concat(C):C},t.prototype._pad=function(M,s){if(0===s)return!1;for(;s{"use strict";var e=m(2391),t=m(3894),v=m(7451),M=m(8170);function s(){this.tmp=new Array(2),this.keys=null}function C(P){M.call(this,P);var o=new s;this._desState=o,this.deriveKeys(o,P.key)}t(C,M),Ue.exports=C,C.create=function(o){return new C(o)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];C.prototype.deriveKeys=function(o,O){o.keys=new Array(32),e.equal(O.length,this.blockSize,"Invalid key length");var T=v.readUInt32BE(O,0),R=v.readUInt32BE(O,4);v.pc1(T,R,o.tmp,0),T=o.tmp[0],R=o.tmp[1];for(var S=0;S>>1];T=v.r28shl(T,D),R=v.r28shl(R,D),v.pc2(T,R,o.keys,S)}},C.prototype._update=function(o,O,T,R){var S=this._desState,D=v.readUInt32BE(o,O),w=v.readUInt32BE(o,O+4);v.ip(D,w,S.tmp,0),D=S.tmp[0],w=S.tmp[1],"encrypt"===this.type?this._encrypt(S,D,w,S.tmp,0):this._decrypt(S,D,w,S.tmp,0),w=S.tmp[1],v.writeUInt32BE(T,D=S.tmp[0],R),v.writeUInt32BE(T,w,R+4)},C.prototype._pad=function(o,O){for(var T=o.length-O,R=O;R>>0,D=_e}v.rip(w,D,R,S)},C.prototype._decrypt=function(o,O,T,R,S){for(var D=T,w=O,U=o.keys.length-2;U>=0;U-=2){var G=o.keys[U],W=o.keys[U+1];v.expand(D,o.tmp,0);var ee=v.substitute(G^=o.tmp[0],W^=o.tmp[1]),_e=D;D=(w^v.permute(ee))>>>0,w=_e}v.rip(D,w,R,S)}},1862:(Ue,K,m)=>{"use strict";var e=m(2391),t=m(3894),v=m(8170),M=m(4631);function s(c,P){e.equal(P.length,24,"Invalid key length");var o=P.slice(0,8),O=P.slice(8,16),T=P.slice(16,24);this.ciphers="encrypt"===c?[M.create({type:"encrypt",key:o}),M.create({type:"decrypt",key:O}),M.create({type:"encrypt",key:T})]:[M.create({type:"decrypt",key:T}),M.create({type:"encrypt",key:O}),M.create({type:"decrypt",key:o})]}function C(c){v.call(this,c);var P=new s(this.type,this.options.key);this._edeState=P}t(C,v),Ue.exports=C,C.create=function(P){return new C(P)},C.prototype._update=function(P,o,O,T){var R=this._edeState;R.ciphers[0]._update(P,o,O,T),R.ciphers[1]._update(O,T,O,T),R.ciphers[2]._update(O,T,O,T)},C.prototype._pad=M.prototype._pad,C.prototype._unpad=M.prototype._unpad},7451:(Ue,K)=>{"use strict";K.readUInt32BE=function(M,s){return(M[0+s]<<24|M[1+s]<<16|M[2+s]<<8|M[3+s])>>>0},K.writeUInt32BE=function(M,s,C){M[0+C]=s>>>24,M[1+C]=s>>>16&255,M[2+C]=s>>>8&255,M[3+C]=255&s},K.ip=function(M,s,C,c){for(var P=0,o=0,O=6;O>=0;O-=2){for(var T=0;T<=24;T+=8)P<<=1,P|=s>>>T+O&1;for(T=0;T<=24;T+=8)P<<=1,P|=M>>>T+O&1}for(O=6;O>=0;O-=2){for(T=1;T<=25;T+=8)o<<=1,o|=s>>>T+O&1;for(T=1;T<=25;T+=8)o<<=1,o|=M>>>T+O&1}C[c+0]=P>>>0,C[c+1]=o>>>0},K.rip=function(M,s,C,c){for(var P=0,o=0,O=0;O<4;O++)for(var T=24;T>=0;T-=8)P<<=1,P|=s>>>T+O&1,P<<=1,P|=M>>>T+O&1;for(O=4;O<8;O++)for(T=24;T>=0;T-=8)o<<=1,o|=s>>>T+O&1,o<<=1,o|=M>>>T+O&1;C[c+0]=P>>>0,C[c+1]=o>>>0},K.pc1=function(M,s,C,c){for(var P=0,o=0,O=7;O>=5;O--){for(var T=0;T<=24;T+=8)P<<=1,P|=s>>T+O&1;for(T=0;T<=24;T+=8)P<<=1,P|=M>>T+O&1}for(T=0;T<=24;T+=8)P<<=1,P|=s>>T+O&1;for(O=1;O<=3;O++){for(T=0;T<=24;T+=8)o<<=1,o|=s>>T+O&1;for(T=0;T<=24;T+=8)o<<=1,o|=M>>T+O&1}for(T=0;T<=24;T+=8)o<<=1,o|=M>>T+O&1;C[c+0]=P>>>0,C[c+1]=o>>>0},K.r28shl=function(M,s){return M<>>28-s};var m=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];K.pc2=function(M,s,C,c){for(var P=0,o=0,O=m.length>>>1,T=0;T>>m[T]&1;for(T=O;T>>m[T]&1;C[c+0]=P>>>0,C[c+1]=o>>>0},K.expand=function(M,s,C){var c=0,P=0;c=(1&M)<<5|M>>>27;for(var o=23;o>=15;o-=4)c<<=6,c|=M>>>o&63;for(o=11;o>=3;o-=4)P|=M>>>o&63,P<<=6;P|=(31&M)<<1|M>>>31,s[C+0]=c>>>0,s[C+1]=P>>>0};var e=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];K.substitute=function(M,s){for(var C=0,c=0;c<4;c++)C<<=4,C|=e[64*c+(M>>>18-6*c&63)];for(c=0;c<4;c++)C<<=4,C|=e[256+64*c+(s>>>18-6*c&63)];return C>>>0};var t=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];K.permute=function(M){for(var s=0,C=0;C>>t[C]&1;return s>>>0},K.padSplit=function(M,s,C){for(var c=M.toString(2);c.length{var e=m(5563),t=m(9799),v=m(1419),s={binary:!0,hex:!0,base64:!0};K.DiffieHellmanGroup=K.createDiffieHellmanGroup=K.getDiffieHellman=function(c){var P=new Buffer(t[c].prime,"hex"),o=new Buffer(t[c].gen,"hex");return new v(P,o)},K.createDiffieHellman=K.DiffieHellman=function C(c,P,o,O){return Buffer.isBuffer(P)||void 0===s[P]?C(c,"binary",P,o):(P=P||"binary",O=O||"binary",o=o||new Buffer([2]),Buffer.isBuffer(o)||(o=new Buffer(o,O)),"number"==typeof c?new v(e(c,o),o,!0):(Buffer.isBuffer(c)||(c=new Buffer(c,P)),new v(c,o,!0)))}},1419:(Ue,K,m)=>{var e=m(8313),v=new(m(7079)),M=new e(24),s=new e(11),C=new e(10),c=new e(3),P=new e(7),o=m(5563),O=m(3753);function T(G,W){return W=W||"utf8",Buffer.isBuffer(G)||(G=new Buffer(G,W)),this._pub=new e(G),this}function R(G,W){return W=W||"utf8",Buffer.isBuffer(G)||(G=new Buffer(G,W)),this._priv=new e(G),this}Ue.exports=w;var S={};function w(G,W,ee){this.setGenerator(W),this.__prime=new e(G),this._prime=e.mont(this.__prime),this._primeLen=G.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,ee?(this.setPublicKey=T,this.setPrivateKey=R):this._primeCode=8}function U(G,W){var ee=new Buffer(G.toArray());return W?ee.toString(W):ee}Object.defineProperty(w.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(G,W){var ee=W.toString("hex"),ie=[ee,G.toString(16)].join("_");if(ie in S)return S[ie];var fe,_e=0;if(G.isEven()||!o.simpleSieve||!o.fermatTest(G)||!v.test(G))return _e+=1,S[ie]=_e+="02"===ee||"05"===ee?8:4,_e;switch(v.test(G.shrn(1))||(_e+=2),ee){case"02":G.mod(M).cmp(s)&&(_e+=8);break;case"05":(fe=G.mod(C)).cmp(c)&&fe.cmp(P)&&(_e+=8);break;default:_e+=4}return S[ie]=_e,_e}(this.__prime,this.__gen)),this._primeCode}}),w.prototype.generateKeys=function(){return this._priv||(this._priv=new e(O(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},w.prototype.computeSecret=function(G){var W=(G=(G=new e(G)).toRed(this._prime)).redPow(this._priv).fromRed(),ee=new Buffer(W.toArray()),ie=this.getPrime();if(ee.length{var e=m(3753);Ue.exports=_e,_e.simpleSieve=ee,_e.fermatTest=ie;var t=m(8313),v=new t(24),s=new(m(7079)),C=new t(1),c=new t(2),P=new t(5),T=(new t(16),new t(8),new t(10)),R=new t(3),D=(new t(7),new t(11)),w=new t(4),G=(new t(12),null);function ee(fe){for(var de=function(){if(null!==G)return G;var de=[];de[0]=2;for(var ne=1,se=3;se<1048576;se+=2){for(var oe=Math.ceil(Math.sqrt(se)),y=0;yfe;)ne.ishrn(1);if(ne.isEven()&&ne.iadd(C),ne.testn(1)||ne.iadd(c),de.cmp(c)){if(!de.cmp(P))for(;ne.mod(T).cmp(R);)ne.iadd(w)}else for(;ne.mod(v).cmp(D);)ne.iadd(w);if(ee(se=ne.shrn(1))&&ee(ne)&&ie(se)&&ie(ne)&&s.test(se)&&s.test(ne))return ne}}},8313:function(Ue,K,m){!function(e,t){"use strict";function v(y,i){if(!y)throw new Error(i||"Assertion failed")}function M(y,i){y.super_=i;var a=function(){};a.prototype=i.prototype,y.prototype=new a,y.prototype.constructor=y}function s(y,i,a){if(s.isBN(y))return y;this.negative=0,this.words=null,this.length=0,this.red=null,null!==y&&(("le"===i||"be"===i)&&(a=i,i=10),this._init(y||0,i||10,a||"be"))}var C;"object"==typeof e?e.exports=s:t.BN=s,s.BN=s,s.wordSize=26;try{C="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:m(7748).Buffer}catch(y){}function c(y,i){var a=y.charCodeAt(i);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function P(y,i,a){var p=c(y,a);return a-1>=i&&(p|=c(y,a-1)<<4),p}function o(y,i,a,p){for(var u=0,_=Math.min(y.length,a),L=i;L<_;L++){var I=y.charCodeAt(L)-48;u*=p,u+=I>=49?I-49+10:I>=17?I-17+10:I}return u}s.isBN=function(i){return i instanceof s||null!==i&&"object"==typeof i&&i.constructor.wordSize===s.wordSize&&Array.isArray(i.words)},s.max=function(i,a){return i.cmp(a)>0?i:a},s.min=function(i,a){return i.cmp(a)<0?i:a},s.prototype._init=function(i,a,p){if("number"==typeof i)return this._initNumber(i,a,p);if("object"==typeof i)return this._initArray(i,a,p);"hex"===a&&(a=16),v(a===(0|a)&&a>=2&&a<=36);var u=0;"-"===(i=i.toString().replace(/\s+/g,""))[0]&&(u++,this.negative=1),u=0;u-=3)this.words[_]|=(L=i[u]|i[u-1]<<8|i[u-2]<<16)<>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);else if("le"===p)for(u=0,_=0;u>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);return this.strip()},s.prototype._parseHex=function(i,a,p){this.length=Math.ceil((i.length-a)/6),this.words=new Array(this.length);for(var u=0;u=a;u-=2)I=P(i,a,u)<<_,this.words[L]|=67108863&I,_>=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;else for(u=(i.length-a)%2==0?a+1:a;u=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;this.strip()},s.prototype._parseBase=function(i,a,p){this.words=[0],this.length=1;for(var u=0,_=1;_<=67108863;_*=a)u++;u--,_=_/a|0;for(var L=i.length-p,I=L%u,x=Math.min(L,L-I)+p,r=0,b=p;b1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],T=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function D(y,i,a){a.negative=i.negative^y.negative;var p=y.length+i.length|0;a.length=p,p=p-1|0;var u=0|y.words[0],_=0|i.words[0],L=u*_,x=L/67108864|0;a.words[0]=67108863&L;for(var r=1;r>>26,J=67108863&x,F=Math.min(r,i.length-1),B=Math.max(0,r-y.length+1);B<=F;B++)b+=(L=(u=0|y.words[r-B|0])*(_=0|i.words[B])+J)/67108864|0,J=67108863&L;a.words[r]=0|J,x=0|b}return 0!==x?a.words[r]=0|x:a.length--,a.strip()}s.prototype.toString=function(i,a){var p;if(a=0|a||1,16===(i=i||10)||"hex"===i){p="";for(var u=0,_=0,L=0;L>>24-u&16777215)||L!==this.length-1?O[6-x.length]+x+p:x+p,(u+=2)>=26&&(u-=26,L--)}for(0!==_&&(p=_.toString(16)+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}if(i===(0|i)&&i>=2&&i<=36){var r=T[i],b=R[i];p="";var J=this.clone();for(J.negative=0;!J.isZero();){var F=J.modn(b).toString(i);p=(J=J.idivn(b)).isZero()?F+p:O[r-F.length]+F+p}for(this.isZero()&&(p="0"+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}v(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var i=this.words[0];return 2===this.length?i+=67108864*this.words[1]:3===this.length&&1===this.words[2]?i+=4503599627370496+67108864*this.words[1]:this.length>2&&v(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-i:i},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(i,a){return v(void 0!==C),this.toArrayLike(C,i,a)},s.prototype.toArray=function(i,a){return this.toArrayLike(Array,i,a)},s.prototype.toArrayLike=function(i,a,p){var u=this.byteLength(),_=p||Math.max(1,u);v(u<=_,"byte array longer than desired length"),v(_>0,"Requested array length <= 0"),this.strip();var x,r,L="le"===a,I=new i(_),b=this.clone();if(L){for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[r]=x;for(;r<_;r++)I[r]=0}else{for(r=0;r<_-u;r++)I[r]=0;for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[_-r-1]=x}return I},s.prototype._countBits=Math.clz32?function(i){return 32-Math.clz32(i)}:function(i){var a=i,p=0;return a>=4096&&(p+=13,a>>>=13),a>=64&&(p+=7,a>>>=7),a>=8&&(p+=4,a>>>=4),a>=2&&(p+=2,a>>>=2),p+a},s.prototype._zeroBits=function(i){if(0===i)return 26;var a=i,p=0;return 0==(8191&a)&&(p+=13,a>>>=13),0==(127&a)&&(p+=7,a>>>=7),0==(15&a)&&(p+=4,a>>>=4),0==(3&a)&&(p+=2,a>>>=2),0==(1&a)&&p++,p},s.prototype.bitLength=function(){var a=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+a},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var i=0,a=0;ai.length?this.clone().ior(i):i.clone().ior(this)},s.prototype.uor=function(i){return this.length>i.length?this.clone().iuor(i):i.clone().iuor(this)},s.prototype.iuand=function(i){var a;a=this.length>i.length?i:this;for(var p=0;pi.length?this.clone().iand(i):i.clone().iand(this)},s.prototype.uand=function(i){return this.length>i.length?this.clone().iuand(i):i.clone().iuand(this)},s.prototype.iuxor=function(i){var a,p;this.length>i.length?(a=this,p=i):(a=i,p=this);for(var u=0;ui.length?this.clone().ixor(i):i.clone().ixor(this)},s.prototype.uxor=function(i){return this.length>i.length?this.clone().iuxor(i):i.clone().iuxor(this)},s.prototype.inotn=function(i){v("number"==typeof i&&i>=0);var a=0|Math.ceil(i/26),p=i%26;this._expand(a),p>0&&a--;for(var u=0;u0&&(this.words[u]=~this.words[u]&67108863>>26-p),this.strip()},s.prototype.notn=function(i){return this.clone().inotn(i)},s.prototype.setn=function(i,a){v("number"==typeof i&&i>=0);var p=i/26|0,u=i%26;return this._expand(p+1),this.words[p]=a?this.words[p]|1<i.length?(p=this,u=i):(p=i,u=this);for(var _=0,L=0;L>>26;for(;0!==_&&L>>26;if(this.length=p.length,0!==_)this.words[this.length]=_,this.length++;else if(p!==this)for(;Li.length?this.clone().iadd(i):i.clone().iadd(this)},s.prototype.isub=function(i){if(0!==i.negative){i.negative=0;var a=this.iadd(i);return i.negative=1,a._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(i),this.negative=1,this._normSign();var u,_,p=this.cmp(i);if(0===p)return this.negative=0,this.length=1,this.words[0]=0,this;p>0?(u=this,_=i):(u=i,_=this);for(var L=0,I=0;I<_.length;I++)L=(a=(0|u.words[I])-(0|_.words[I])+L)>>26,this.words[I]=67108863&a;for(;0!==L&&I>26,this.words[I]=67108863&a;if(0===L&&I>>13,te=0|u[1],xe=8191&te,Re=te>>>13,Fe=0|u[2],q=8191&Fe,j=Fe>>>13,we=0|u[3],Ae=8191&we,le=we>>>13,We=0|u[4],yt=8191&We,Ne=We>>>13,Ve=0|u[5],ue=8191&Ve,Te=Ve>>>13,ke=0|u[6],Y=8191&ke,X=ke>>>13,he=0|u[7],Me=8191&he,ze=he>>>13,ht=0|u[8],it=8191&ht,ft=ht>>>13,nt=0|u[9],st=8191&nt,wt=nt>>>13,Bt=0|_[0],Nt=8191&Bt,Vt=Bt>>>13,Oi=0|_[1],jt=8191&Oi,ti=Oi>>>13,Pi=0|_[2],si=8191&Pi,di=Pi>>>13,He=0|_[3],Se=8191&He,V=He>>>13,ve=0|_[4],Ee=8191&ve,et=ve>>>13,$t=0|_[5],Pt=8191&$t,Xt=$t>>>13,lt=0|_[6],Pe=8191<,Be=lt>>>13,rt=0|_[7],ot=8191&rt,At=rt>>>13,li=0|_[8],Ut=8191&li,Ft=li>>>13,Si=0|_[9],ai=8191&Si,ci=Si>>>13;p.negative=i.negative^a.negative,p.length=19;var rn=(I+(x=Math.imul(F,Nt))|0)+((8191&(r=(r=Math.imul(F,Vt))+Math.imul(B,Nt)|0))<<13)|0;I=((b=Math.imul(B,Vt))+(r>>>13)|0)+(rn>>>26)|0,rn&=67108863,x=Math.imul(xe,Nt),r=(r=Math.imul(xe,Vt))+Math.imul(Re,Nt)|0,b=Math.imul(Re,Vt);var Vi=(I+(x=x+Math.imul(F,jt)|0)|0)+((8191&(r=(r=r+Math.imul(F,ti)|0)+Math.imul(B,jt)|0))<<13)|0;I=((b=b+Math.imul(B,ti)|0)+(r>>>13)|0)+(Vi>>>26)|0,Vi&=67108863,x=Math.imul(q,Nt),r=(r=Math.imul(q,Vt))+Math.imul(j,Nt)|0,b=Math.imul(j,Vt),x=x+Math.imul(xe,jt)|0,r=(r=r+Math.imul(xe,ti)|0)+Math.imul(Re,jt)|0,b=b+Math.imul(Re,ti)|0;var Di=(I+(x=x+Math.imul(F,si)|0)|0)+((8191&(r=(r=r+Math.imul(F,di)|0)+Math.imul(B,si)|0))<<13)|0;I=((b=b+Math.imul(B,di)|0)+(r>>>13)|0)+(Di>>>26)|0,Di&=67108863,x=Math.imul(Ae,Nt),r=(r=Math.imul(Ae,Vt))+Math.imul(le,Nt)|0,b=Math.imul(le,Vt),x=x+Math.imul(q,jt)|0,r=(r=r+Math.imul(q,ti)|0)+Math.imul(j,jt)|0,b=b+Math.imul(j,ti)|0,x=x+Math.imul(xe,si)|0,r=(r=r+Math.imul(xe,di)|0)+Math.imul(Re,si)|0,b=b+Math.imul(Re,di)|0;var Xi=(I+(x=x+Math.imul(F,Se)|0)|0)+((8191&(r=(r=r+Math.imul(F,V)|0)+Math.imul(B,Se)|0))<<13)|0;I=((b=b+Math.imul(B,V)|0)+(r>>>13)|0)+(Xi>>>26)|0,Xi&=67108863,x=Math.imul(yt,Nt),r=(r=Math.imul(yt,Vt))+Math.imul(Ne,Nt)|0,b=Math.imul(Ne,Vt),x=x+Math.imul(Ae,jt)|0,r=(r=r+Math.imul(Ae,ti)|0)+Math.imul(le,jt)|0,b=b+Math.imul(le,ti)|0,x=x+Math.imul(q,si)|0,r=(r=r+Math.imul(q,di)|0)+Math.imul(j,si)|0,b=b+Math.imul(j,di)|0,x=x+Math.imul(xe,Se)|0,r=(r=r+Math.imul(xe,V)|0)+Math.imul(Re,Se)|0,b=b+Math.imul(Re,V)|0;var Ke=(I+(x=x+Math.imul(F,Ee)|0)|0)+((8191&(r=(r=r+Math.imul(F,et)|0)+Math.imul(B,Ee)|0))<<13)|0;I=((b=b+Math.imul(B,et)|0)+(r>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,x=Math.imul(ue,Nt),r=(r=Math.imul(ue,Vt))+Math.imul(Te,Nt)|0,b=Math.imul(Te,Vt),x=x+Math.imul(yt,jt)|0,r=(r=r+Math.imul(yt,ti)|0)+Math.imul(Ne,jt)|0,b=b+Math.imul(Ne,ti)|0,x=x+Math.imul(Ae,si)|0,r=(r=r+Math.imul(Ae,di)|0)+Math.imul(le,si)|0,b=b+Math.imul(le,di)|0,x=x+Math.imul(q,Se)|0,r=(r=r+Math.imul(q,V)|0)+Math.imul(j,Se)|0,b=b+Math.imul(j,V)|0,x=x+Math.imul(xe,Ee)|0,r=(r=r+Math.imul(xe,et)|0)+Math.imul(Re,Ee)|0,b=b+Math.imul(Re,et)|0;var mt=(I+(x=x+Math.imul(F,Pt)|0)|0)+((8191&(r=(r=r+Math.imul(F,Xt)|0)+Math.imul(B,Pt)|0))<<13)|0;I=((b=b+Math.imul(B,Xt)|0)+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,x=Math.imul(Y,Nt),r=(r=Math.imul(Y,Vt))+Math.imul(X,Nt)|0,b=Math.imul(X,Vt),x=x+Math.imul(ue,jt)|0,r=(r=r+Math.imul(ue,ti)|0)+Math.imul(Te,jt)|0,b=b+Math.imul(Te,ti)|0,x=x+Math.imul(yt,si)|0,r=(r=r+Math.imul(yt,di)|0)+Math.imul(Ne,si)|0,b=b+Math.imul(Ne,di)|0,x=x+Math.imul(Ae,Se)|0,r=(r=r+Math.imul(Ae,V)|0)+Math.imul(le,Se)|0,b=b+Math.imul(le,V)|0,x=x+Math.imul(q,Ee)|0,r=(r=r+Math.imul(q,et)|0)+Math.imul(j,Ee)|0,b=b+Math.imul(j,et)|0,x=x+Math.imul(xe,Pt)|0,r=(r=r+Math.imul(xe,Xt)|0)+Math.imul(Re,Pt)|0,b=b+Math.imul(Re,Xt)|0;var be=(I+(x=x+Math.imul(F,Pe)|0)|0)+((8191&(r=(r=r+Math.imul(F,Be)|0)+Math.imul(B,Pe)|0))<<13)|0;I=((b=b+Math.imul(B,Be)|0)+(r>>>13)|0)+(be>>>26)|0,be&=67108863,x=Math.imul(Me,Nt),r=(r=Math.imul(Me,Vt))+Math.imul(ze,Nt)|0,b=Math.imul(ze,Vt),x=x+Math.imul(Y,jt)|0,r=(r=r+Math.imul(Y,ti)|0)+Math.imul(X,jt)|0,b=b+Math.imul(X,ti)|0,x=x+Math.imul(ue,si)|0,r=(r=r+Math.imul(ue,di)|0)+Math.imul(Te,si)|0,b=b+Math.imul(Te,di)|0,x=x+Math.imul(yt,Se)|0,r=(r=r+Math.imul(yt,V)|0)+Math.imul(Ne,Se)|0,b=b+Math.imul(Ne,V)|0,x=x+Math.imul(Ae,Ee)|0,r=(r=r+Math.imul(Ae,et)|0)+Math.imul(le,Ee)|0,b=b+Math.imul(le,et)|0,x=x+Math.imul(q,Pt)|0,r=(r=r+Math.imul(q,Xt)|0)+Math.imul(j,Pt)|0,b=b+Math.imul(j,Xt)|0,x=x+Math.imul(xe,Pe)|0,r=(r=r+Math.imul(xe,Be)|0)+Math.imul(Re,Pe)|0,b=b+Math.imul(Re,Be)|0;var qe=(I+(x=x+Math.imul(F,ot)|0)|0)+((8191&(r=(r=r+Math.imul(F,At)|0)+Math.imul(B,ot)|0))<<13)|0;I=((b=b+Math.imul(B,At)|0)+(r>>>13)|0)+(qe>>>26)|0,qe&=67108863,x=Math.imul(it,Nt),r=(r=Math.imul(it,Vt))+Math.imul(ft,Nt)|0,b=Math.imul(ft,Vt),x=x+Math.imul(Me,jt)|0,r=(r=r+Math.imul(Me,ti)|0)+Math.imul(ze,jt)|0,b=b+Math.imul(ze,ti)|0,x=x+Math.imul(Y,si)|0,r=(r=r+Math.imul(Y,di)|0)+Math.imul(X,si)|0,b=b+Math.imul(X,di)|0,x=x+Math.imul(ue,Se)|0,r=(r=r+Math.imul(ue,V)|0)+Math.imul(Te,Se)|0,b=b+Math.imul(Te,V)|0,x=x+Math.imul(yt,Ee)|0,r=(r=r+Math.imul(yt,et)|0)+Math.imul(Ne,Ee)|0,b=b+Math.imul(Ne,et)|0,x=x+Math.imul(Ae,Pt)|0,r=(r=r+Math.imul(Ae,Xt)|0)+Math.imul(le,Pt)|0,b=b+Math.imul(le,Xt)|0,x=x+Math.imul(q,Pe)|0,r=(r=r+Math.imul(q,Be)|0)+Math.imul(j,Pe)|0,b=b+Math.imul(j,Be)|0,x=x+Math.imul(xe,ot)|0,r=(r=r+Math.imul(xe,At)|0)+Math.imul(Re,ot)|0,b=b+Math.imul(Re,At)|0;var vt=(I+(x=x+Math.imul(F,Ut)|0)|0)+((8191&(r=(r=r+Math.imul(F,Ft)|0)+Math.imul(B,Ut)|0))<<13)|0;I=((b=b+Math.imul(B,Ft)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,x=Math.imul(st,Nt),r=(r=Math.imul(st,Vt))+Math.imul(wt,Nt)|0,b=Math.imul(wt,Vt),x=x+Math.imul(it,jt)|0,r=(r=r+Math.imul(it,ti)|0)+Math.imul(ft,jt)|0,b=b+Math.imul(ft,ti)|0,x=x+Math.imul(Me,si)|0,r=(r=r+Math.imul(Me,di)|0)+Math.imul(ze,si)|0,b=b+Math.imul(ze,di)|0,x=x+Math.imul(Y,Se)|0,r=(r=r+Math.imul(Y,V)|0)+Math.imul(X,Se)|0,b=b+Math.imul(X,V)|0,x=x+Math.imul(ue,Ee)|0,r=(r=r+Math.imul(ue,et)|0)+Math.imul(Te,Ee)|0,b=b+Math.imul(Te,et)|0,x=x+Math.imul(yt,Pt)|0,r=(r=r+Math.imul(yt,Xt)|0)+Math.imul(Ne,Pt)|0,b=b+Math.imul(Ne,Xt)|0,x=x+Math.imul(Ae,Pe)|0,r=(r=r+Math.imul(Ae,Be)|0)+Math.imul(le,Pe)|0,b=b+Math.imul(le,Be)|0,x=x+Math.imul(q,ot)|0,r=(r=r+Math.imul(q,At)|0)+Math.imul(j,ot)|0,b=b+Math.imul(j,At)|0,x=x+Math.imul(xe,Ut)|0,r=(r=r+Math.imul(xe,Ft)|0)+Math.imul(Re,Ut)|0,b=b+Math.imul(Re,Ft)|0;var me=(I+(x=x+Math.imul(F,ai)|0)|0)+((8191&(r=(r=r+Math.imul(F,ci)|0)+Math.imul(B,ai)|0))<<13)|0;I=((b=b+Math.imul(B,ci)|0)+(r>>>13)|0)+(me>>>26)|0,me&=67108863,x=Math.imul(st,jt),r=(r=Math.imul(st,ti))+Math.imul(wt,jt)|0,b=Math.imul(wt,ti),x=x+Math.imul(it,si)|0,r=(r=r+Math.imul(it,di)|0)+Math.imul(ft,si)|0,b=b+Math.imul(ft,di)|0,x=x+Math.imul(Me,Se)|0,r=(r=r+Math.imul(Me,V)|0)+Math.imul(ze,Se)|0,b=b+Math.imul(ze,V)|0,x=x+Math.imul(Y,Ee)|0,r=(r=r+Math.imul(Y,et)|0)+Math.imul(X,Ee)|0,b=b+Math.imul(X,et)|0,x=x+Math.imul(ue,Pt)|0,r=(r=r+Math.imul(ue,Xt)|0)+Math.imul(Te,Pt)|0,b=b+Math.imul(Te,Xt)|0,x=x+Math.imul(yt,Pe)|0,r=(r=r+Math.imul(yt,Be)|0)+Math.imul(Ne,Pe)|0,b=b+Math.imul(Ne,Be)|0,x=x+Math.imul(Ae,ot)|0,r=(r=r+Math.imul(Ae,At)|0)+Math.imul(le,ot)|0,b=b+Math.imul(le,At)|0,x=x+Math.imul(q,Ut)|0,r=(r=r+Math.imul(q,Ft)|0)+Math.imul(j,Ut)|0,b=b+Math.imul(j,Ft)|0;var $e=(I+(x=x+Math.imul(xe,ai)|0)|0)+((8191&(r=(r=r+Math.imul(xe,ci)|0)+Math.imul(Re,ai)|0))<<13)|0;I=((b=b+Math.imul(Re,ci)|0)+(r>>>13)|0)+($e>>>26)|0,$e&=67108863,x=Math.imul(st,si),r=(r=Math.imul(st,di))+Math.imul(wt,si)|0,b=Math.imul(wt,di),x=x+Math.imul(it,Se)|0,r=(r=r+Math.imul(it,V)|0)+Math.imul(ft,Se)|0,b=b+Math.imul(ft,V)|0,x=x+Math.imul(Me,Ee)|0,r=(r=r+Math.imul(Me,et)|0)+Math.imul(ze,Ee)|0,b=b+Math.imul(ze,et)|0,x=x+Math.imul(Y,Pt)|0,r=(r=r+Math.imul(Y,Xt)|0)+Math.imul(X,Pt)|0,b=b+Math.imul(X,Xt)|0,x=x+Math.imul(ue,Pe)|0,r=(r=r+Math.imul(ue,Be)|0)+Math.imul(Te,Pe)|0,b=b+Math.imul(Te,Be)|0,x=x+Math.imul(yt,ot)|0,r=(r=r+Math.imul(yt,At)|0)+Math.imul(Ne,ot)|0,b=b+Math.imul(Ne,At)|0,x=x+Math.imul(Ae,Ut)|0,r=(r=r+Math.imul(Ae,Ft)|0)+Math.imul(le,Ut)|0,b=b+Math.imul(le,Ft)|0;var St=(I+(x=x+Math.imul(q,ai)|0)|0)+((8191&(r=(r=r+Math.imul(q,ci)|0)+Math.imul(j,ai)|0))<<13)|0;I=((b=b+Math.imul(j,ci)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,x=Math.imul(st,Se),r=(r=Math.imul(st,V))+Math.imul(wt,Se)|0,b=Math.imul(wt,V),x=x+Math.imul(it,Ee)|0,r=(r=r+Math.imul(it,et)|0)+Math.imul(ft,Ee)|0,b=b+Math.imul(ft,et)|0,x=x+Math.imul(Me,Pt)|0,r=(r=r+Math.imul(Me,Xt)|0)+Math.imul(ze,Pt)|0,b=b+Math.imul(ze,Xt)|0,x=x+Math.imul(Y,Pe)|0,r=(r=r+Math.imul(Y,Be)|0)+Math.imul(X,Pe)|0,b=b+Math.imul(X,Be)|0,x=x+Math.imul(ue,ot)|0,r=(r=r+Math.imul(ue,At)|0)+Math.imul(Te,ot)|0,b=b+Math.imul(Te,At)|0,x=x+Math.imul(yt,Ut)|0,r=(r=r+Math.imul(yt,Ft)|0)+Math.imul(Ne,Ut)|0,b=b+Math.imul(Ne,Ft)|0;var Rt=(I+(x=x+Math.imul(Ae,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Ae,ci)|0)+Math.imul(le,ai)|0))<<13)|0;I=((b=b+Math.imul(le,ci)|0)+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,x=Math.imul(st,Ee),r=(r=Math.imul(st,et))+Math.imul(wt,Ee)|0,b=Math.imul(wt,et),x=x+Math.imul(it,Pt)|0,r=(r=r+Math.imul(it,Xt)|0)+Math.imul(ft,Pt)|0,b=b+Math.imul(ft,Xt)|0,x=x+Math.imul(Me,Pe)|0,r=(r=r+Math.imul(Me,Be)|0)+Math.imul(ze,Pe)|0,b=b+Math.imul(ze,Be)|0,x=x+Math.imul(Y,ot)|0,r=(r=r+Math.imul(Y,At)|0)+Math.imul(X,ot)|0,b=b+Math.imul(X,At)|0,x=x+Math.imul(ue,Ut)|0,r=(r=r+Math.imul(ue,Ft)|0)+Math.imul(Te,Ut)|0,b=b+Math.imul(Te,Ft)|0;var yi=(I+(x=x+Math.imul(yt,ai)|0)|0)+((8191&(r=(r=r+Math.imul(yt,ci)|0)+Math.imul(Ne,ai)|0))<<13)|0;I=((b=b+Math.imul(Ne,ci)|0)+(r>>>13)|0)+(yi>>>26)|0,yi&=67108863,x=Math.imul(st,Pt),r=(r=Math.imul(st,Xt))+Math.imul(wt,Pt)|0,b=Math.imul(wt,Xt),x=x+Math.imul(it,Pe)|0,r=(r=r+Math.imul(it,Be)|0)+Math.imul(ft,Pe)|0,b=b+Math.imul(ft,Be)|0,x=x+Math.imul(Me,ot)|0,r=(r=r+Math.imul(Me,At)|0)+Math.imul(ze,ot)|0,b=b+Math.imul(ze,At)|0,x=x+Math.imul(Y,Ut)|0,r=(r=r+Math.imul(Y,Ft)|0)+Math.imul(X,Ut)|0,b=b+Math.imul(X,Ft)|0;var Ri=(I+(x=x+Math.imul(ue,ai)|0)|0)+((8191&(r=(r=r+Math.imul(ue,ci)|0)+Math.imul(Te,ai)|0))<<13)|0;I=((b=b+Math.imul(Te,ci)|0)+(r>>>13)|0)+(Ri>>>26)|0,Ri&=67108863,x=Math.imul(st,Pe),r=(r=Math.imul(st,Be))+Math.imul(wt,Pe)|0,b=Math.imul(wt,Be),x=x+Math.imul(it,ot)|0,r=(r=r+Math.imul(it,At)|0)+Math.imul(ft,ot)|0,b=b+Math.imul(ft,At)|0,x=x+Math.imul(Me,Ut)|0,r=(r=r+Math.imul(Me,Ft)|0)+Math.imul(ze,Ut)|0,b=b+Math.imul(ze,Ft)|0;var Ii=(I+(x=x+Math.imul(Y,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Y,ci)|0)+Math.imul(X,ai)|0))<<13)|0;I=((b=b+Math.imul(X,ci)|0)+(r>>>13)|0)+(Ii>>>26)|0,Ii&=67108863,x=Math.imul(st,ot),r=(r=Math.imul(st,At))+Math.imul(wt,ot)|0,b=Math.imul(wt,At),x=x+Math.imul(it,Ut)|0,r=(r=r+Math.imul(it,Ft)|0)+Math.imul(ft,Ut)|0,b=b+Math.imul(ft,Ft)|0;var Ki=(I+(x=x+Math.imul(Me,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Me,ci)|0)+Math.imul(ze,ai)|0))<<13)|0;I=((b=b+Math.imul(ze,ci)|0)+(r>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,x=Math.imul(st,Ut),r=(r=Math.imul(st,Ft))+Math.imul(wt,Ut)|0,b=Math.imul(wt,Ft);var at=(I+(x=x+Math.imul(it,ai)|0)|0)+((8191&(r=(r=r+Math.imul(it,ci)|0)+Math.imul(ft,ai)|0))<<13)|0;I=((b=b+Math.imul(ft,ci)|0)+(r>>>13)|0)+(at>>>26)|0,at&=67108863;var Qt=(I+(x=Math.imul(st,ai))|0)+((8191&(r=(r=Math.imul(st,ci))+Math.imul(wt,ai)|0))<<13)|0;return I=((b=Math.imul(wt,ci))+(r>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,L[0]=rn,L[1]=Vi,L[2]=Di,L[3]=Xi,L[4]=Ke,L[5]=mt,L[6]=be,L[7]=qe,L[8]=vt,L[9]=me,L[10]=$e,L[11]=St,L[12]=Rt,L[13]=yi,L[14]=Ri,L[15]=Ii,L[16]=Ki,L[17]=at,L[18]=Qt,0!==I&&(L[19]=I,p.length++),p};function G(y,i,a){return(new W).mulp(y,i,a)}function W(y,i){this.x=y,this.y=i}Math.imul||(w=D),s.prototype.mulTo=function(i,a){var p,u=this.length+i.length;return p=10===this.length&&10===i.length?w(this,i,a):u<63?D(this,i,a):u<1024?function(y,i,a){a.negative=i.negative^y.negative,a.length=y.length+i.length;for(var p=0,u=0,_=0;_>>26)|0)>>>26,L&=67108863}a.words[_]=I,p=L,L=u}return 0!==p?a.words[_]=p:a.length--,a.strip()}(this,i,a):G(this,i,a),p},W.prototype.makeRBT=function(i){for(var a=new Array(i),p=s.prototype._countBits(i)-1,u=0;u>=1;return u},W.prototype.permute=function(i,a,p,u,_,L){for(var I=0;I>>=1)_++;return 1<<_+1+u},W.prototype.conjugate=function(i,a,p){if(!(p<=1))for(var u=0;u

>>=13),_>>>=13;for(L=2*a;L>=26,a+=u/67108864|0,a+=_>>>26,this.words[p]=67108863&_}return 0!==a&&(this.words[p]=a,this.length++),this},s.prototype.muln=function(i){return this.clone().imuln(i)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(i){var a=function(y){for(var i=new Array(y.bitLength()),a=0;a>>u}return i}(i);if(0===a.length)return new s(1);for(var p=this,u=0;u=0);var _,a=i%26,p=(i-a)/26,u=67108863>>>26-a<<26-a;if(0!==a){var L=0;for(_=0;_>>26-a}L&&(this.words[_]=L,this.length++)}if(0!==p){for(_=this.length-1;_>=0;_--)this.words[_+p]=this.words[_];for(_=0;_=0),u=a?(a-a%26)/26:0;var _=i%26,L=Math.min((i-_)/26,this.length),I=67108863^67108863>>>_<<_,x=p;if(u-=L,u=Math.max(0,u),x){for(var r=0;rL)for(this.length-=L,r=0;r=0&&(0!==b||r>=u);r--){var J=0|this.words[r];this.words[r]=b<<26-_|J>>>_,b=J&I}return x&&0!==b&&(x.words[x.length++]=b),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(i,a,p){return v(0===this.negative),this.iushrn(i,a,p)},s.prototype.shln=function(i){return this.clone().ishln(i)},s.prototype.ushln=function(i){return this.clone().iushln(i)},s.prototype.shrn=function(i){return this.clone().ishrn(i)},s.prototype.ushrn=function(i){return this.clone().iushrn(i)},s.prototype.testn=function(i){v("number"==typeof i&&i>=0);var a=i%26,p=(i-a)/26;return!(this.length<=p||!(this.words[p]&1<=0);var a=i%26,p=(i-a)/26;return v(0===this.negative,"imaskn works only with positive numbers"),this.length<=p?this:(0!==a&&p++,this.length=Math.min(p,this.length),0!==a&&(this.words[this.length-1]&=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},s.prototype.isubn=function(i){if(v("number"==typeof i),v(i<67108864),i<0)return this.iaddn(-i);if(0!==this.negative)return this.negative=0,this.iaddn(i),this.negative=1,this;if(this.words[0]-=i,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(x/67108864|0),this.words[_+p]=67108863&L}for(;_>26,this.words[_+p]=67108863&L;if(0===I)return this.strip();for(v(-1===I),I=0,_=0;_>26,this.words[_]=67108863&L;return this.negative=1,this.strip()},s.prototype._wordDiv=function(i,a){var p,u=this.clone(),_=i,L=0|_.words[_.length-1];0!=(p=26-this._countBits(L))&&(_=_.ushln(p),u.iushln(p),L=0|_.words[_.length-1]);var r,x=u.length-_.length;if("mod"!==a){(r=new s(null)).length=x+1,r.words=new Array(r.length);for(var b=0;b=0;F--){var B=67108864*(0|u.words[_.length+F])+(0|u.words[_.length+F-1]);for(B=Math.min(B/L|0,67108863),u._ishlnsubmul(_,B,F);0!==u.negative;)B--,u.negative=0,u._ishlnsubmul(_,1,F),u.isZero()||(u.negative^=1);r&&(r.words[F]=B)}return r&&r.strip(),u.strip(),"div"!==a&&0!==p&&u.iushrn(p),{div:r||null,mod:u}},s.prototype.divmod=function(i,a,p){return v(!i.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===i.negative?(L=this.neg().divmod(i,a),"mod"!==a&&(u=L.div.neg()),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.iadd(i)),{div:u,mod:_}):0===this.negative&&0!==i.negative?(L=this.divmod(i.neg(),a),"mod"!==a&&(u=L.div.neg()),{div:u,mod:L.mod}):0!=(this.negative&i.negative)?(L=this.neg().divmod(i.neg(),a),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.isub(i)),{div:L.div,mod:_}):i.length>this.length||this.cmp(i)<0?{div:new s(0),mod:this}:1===i.length?"div"===a?{div:this.divn(i.words[0]),mod:null}:"mod"===a?{div:null,mod:new s(this.modn(i.words[0]))}:{div:this.divn(i.words[0]),mod:new s(this.modn(i.words[0]))}:this._wordDiv(i,a);var u,_,L},s.prototype.div=function(i){return this.divmod(i,"div",!1).div},s.prototype.mod=function(i){return this.divmod(i,"mod",!1).mod},s.prototype.umod=function(i){return this.divmod(i,"mod",!0).mod},s.prototype.divRound=function(i){var a=this.divmod(i);if(a.mod.isZero())return a.div;var p=0!==a.div.negative?a.mod.isub(i):a.mod,u=i.ushrn(1),_=i.andln(1),L=p.cmp(u);return L<0||1===_&&0===L?a.div:0!==a.div.negative?a.div.isubn(1):a.div.iaddn(1)},s.prototype.modn=function(i){v(i<=67108863);for(var a=(1<<26)%i,p=0,u=this.length-1;u>=0;u--)p=(a*p+(0|this.words[u]))%i;return p},s.prototype.idivn=function(i){v(i<=67108863);for(var a=0,p=this.length-1;p>=0;p--){var u=(0|this.words[p])+67108864*a;this.words[p]=u/i|0,a=u%i}return this.strip()},s.prototype.divn=function(i){return this.clone().idivn(i)},s.prototype.egcd=function(i){v(0===i.negative),v(!i.isZero());var a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=new s(0),I=new s(1),x=0;a.isEven()&&p.isEven();)a.iushrn(1),p.iushrn(1),++x;for(var r=p.clone(),b=a.clone();!a.isZero();){for(var J=0,F=1;0==(a.words[0]&F)&&J<26;++J,F<<=1);if(J>0)for(a.iushrn(J);J-- >0;)(u.isOdd()||_.isOdd())&&(u.iadd(r),_.isub(b)),u.iushrn(1),_.iushrn(1);for(var B=0,te=1;0==(p.words[0]&te)&&B<26;++B,te<<=1);if(B>0)for(p.iushrn(B);B-- >0;)(L.isOdd()||I.isOdd())&&(L.iadd(r),I.isub(b)),L.iushrn(1),I.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(L),_.isub(I)):(p.isub(a),L.isub(u),I.isub(_))}return{a:L,b:I,gcd:p.iushln(x)}},s.prototype._invmp=function(i){v(0===i.negative),v(!i.isZero());var J,a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=p.clone();a.cmpn(1)>0&&p.cmpn(1)>0;){for(var I=0,x=1;0==(a.words[0]&x)&&I<26;++I,x<<=1);if(I>0)for(a.iushrn(I);I-- >0;)u.isOdd()&&u.iadd(L),u.iushrn(1);for(var r=0,b=1;0==(p.words[0]&b)&&r<26;++r,b<<=1);if(r>0)for(p.iushrn(r);r-- >0;)_.isOdd()&&_.iadd(L),_.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(_)):(p.isub(a),_.isub(u))}return(J=0===a.cmpn(1)?u:_).cmpn(0)<0&&J.iadd(i),J},s.prototype.gcd=function(i){if(this.isZero())return i.abs();if(i.isZero())return this.abs();var a=this.clone(),p=i.clone();a.negative=0,p.negative=0;for(var u=0;a.isEven()&&p.isEven();u++)a.iushrn(1),p.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;p.isEven();)p.iushrn(1);var _=a.cmp(p);if(_<0){var L=a;a=p,p=L}else if(0===_||0===p.cmpn(1))break;a.isub(p)}return p.iushln(u)},s.prototype.invm=function(i){return this.egcd(i).a.umod(i)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(i){return this.words[0]&i},s.prototype.bincn=function(i){v("number"==typeof i);var a=i%26,p=(i-a)/26,u=1<>>26,this.words[L]=I&=67108863}return 0!==_&&(this.words[L]=_,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(i){var p,a=i<0;if(0!==this.negative&&!a)return-1;if(0===this.negative&&a)return 1;if(this.strip(),this.length>1)p=1;else{a&&(i=-i),v(i<=67108863,"Number is too big");var u=0|this.words[0];p=u===i?0:ui.length)return 1;if(this.length=0;p--){var u=0|this.words[p],_=0|i.words[p];if(u!==_){u<_?a=-1:u>_&&(a=1);break}}return a},s.prototype.gtn=function(i){return 1===this.cmpn(i)},s.prototype.gt=function(i){return 1===this.cmp(i)},s.prototype.gten=function(i){return this.cmpn(i)>=0},s.prototype.gte=function(i){return this.cmp(i)>=0},s.prototype.ltn=function(i){return-1===this.cmpn(i)},s.prototype.lt=function(i){return-1===this.cmp(i)},s.prototype.lten=function(i){return this.cmpn(i)<=0},s.prototype.lte=function(i){return this.cmp(i)<=0},s.prototype.eqn=function(i){return 0===this.cmpn(i)},s.prototype.eq=function(i){return 0===this.cmp(i)},s.red=function(i){return new se(i)},s.prototype.toRed=function(i){return v(!this.red,"Already a number in reduction context"),v(0===this.negative,"red works only with positives"),i.convertTo(this)._forceRed(i)},s.prototype.fromRed=function(){return v(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(i){return this.red=i,this},s.prototype.forceRed=function(i){return v(!this.red,"Already a number in reduction context"),this._forceRed(i)},s.prototype.redAdd=function(i){return v(this.red,"redAdd works only with red numbers"),this.red.add(this,i)},s.prototype.redIAdd=function(i){return v(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,i)},s.prototype.redSub=function(i){return v(this.red,"redSub works only with red numbers"),this.red.sub(this,i)},s.prototype.redISub=function(i){return v(this.red,"redISub works only with red numbers"),this.red.isub(this,i)},s.prototype.redShl=function(i){return v(this.red,"redShl works only with red numbers"),this.red.shl(this,i)},s.prototype.redMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.mul(this,i)},s.prototype.redIMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.imul(this,i)},s.prototype.redSqr=function(){return v(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return v(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return v(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return v(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return v(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(i){return v(this.red&&!i.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,i)};var ee={k256:null,p224:null,p192:null,p25519:null};function ie(y,i){this.name=y,this.p=new s(i,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _e(){ie.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function fe(){ie.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function de(){ie.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function ne(){ie.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function se(y){if("string"==typeof y){var i=s._prime(y);this.m=i.p,this.prime=i}else v(y.gtn(1),"modulus must be greater than 1"),this.m=y,this.prime=null}function oe(y){se.call(this,y),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}ie.prototype._tmp=function(){var i=new s(null);return i.words=new Array(Math.ceil(this.n/13)),i},ie.prototype.ireduce=function(i){var p,a=i;do{this.split(a,this.tmp),p=(a=(a=this.imulK(a)).iadd(this.tmp)).bitLength()}while(p>this.n);var u=p0?a.isub(this.p):void 0!==a.strip?a.strip():a._strip(),a},ie.prototype.split=function(i,a){i.iushrn(this.n,0,a)},ie.prototype.imulK=function(i){return i.imul(this.k)},M(_e,ie),_e.prototype.split=function(i,a){for(var p=4194303,u=Math.min(i.length,9),_=0;_>>22,L=I}i.words[_-10]=L>>>=22,i.length-=0===L&&i.length>10?10:9},_e.prototype.imulK=function(i){i.words[i.length]=0,i.words[i.length+1]=0,i.length+=2;for(var a=0,p=0;p>>=26,i.words[p]=_,a=u}return 0!==a&&(i.words[i.length++]=a),i},s._prime=function(i){if(ee[i])return ee[i];var a;if("k256"===i)a=new _e;else if("p224"===i)a=new fe;else if("p192"===i)a=new de;else{if("p25519"!==i)throw new Error("Unknown prime "+i);a=new ne}return ee[i]=a,a},se.prototype._verify1=function(i){v(0===i.negative,"red works only with positives"),v(i.red,"red works only with red numbers")},se.prototype._verify2=function(i,a){v(0==(i.negative|a.negative),"red works only with positives"),v(i.red&&i.red===a.red,"red works only with red numbers")},se.prototype.imod=function(i){return this.prime?this.prime.ireduce(i)._forceRed(this):i.umod(this.m)._forceRed(this)},se.prototype.neg=function(i){return i.isZero()?i.clone():this.m.sub(i)._forceRed(this)},se.prototype.add=function(i,a){this._verify2(i,a);var p=i.add(a);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},se.prototype.iadd=function(i,a){this._verify2(i,a);var p=i.iadd(a);return p.cmp(this.m)>=0&&p.isub(this.m),p},se.prototype.sub=function(i,a){this._verify2(i,a);var p=i.sub(a);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},se.prototype.isub=function(i,a){this._verify2(i,a);var p=i.isub(a);return p.cmpn(0)<0&&p.iadd(this.m),p},se.prototype.shl=function(i,a){return this._verify1(i),this.imod(i.ushln(a))},se.prototype.imul=function(i,a){return this._verify2(i,a),this.imod(i.imul(a))},se.prototype.mul=function(i,a){return this._verify2(i,a),this.imod(i.mul(a))},se.prototype.isqr=function(i){return this.imul(i,i.clone())},se.prototype.sqr=function(i){return this.mul(i,i)},se.prototype.sqrt=function(i){if(i.isZero())return i.clone();var a=this.m.andln(3);if(v(a%2==1),3===a){var p=this.m.add(new s(1)).iushrn(2);return this.pow(i,p)}for(var u=this.m.subn(1),_=0;!u.isZero()&&0===u.andln(1);)_++,u.iushrn(1);v(!u.isZero());var L=new s(1).toRed(this),I=L.redNeg(),x=this.m.subn(1).iushrn(1),r=this.m.bitLength();for(r=new s(2*r*r).toRed(this);0!==this.pow(r,x).cmp(I);)r.redIAdd(I);for(var b=this.pow(r,u),J=this.pow(i,u.addn(1).iushrn(1)),F=this.pow(i,u),B=_;0!==F.cmp(L);){for(var te=F,xe=0;0!==te.cmp(L);xe++)te=te.redSqr();v(xe=0;_--){for(var b=a.words[_],J=r-1;J>=0;J--){var F=b>>J&1;L!==u[0]&&(L=this.sqr(L)),0!==F||0!==I?(I<<=1,I|=F,(4==++x||0===_&&0===J)&&(L=this.mul(L,u[I]),x=0,I=0)):x=0}r=26}return L},se.prototype.convertTo=function(i){var a=i.umod(this.m);return a===i?a.clone():a},se.prototype.convertFrom=function(i){var a=i.clone();return a.red=null,a},s.mont=function(i){return new oe(i)},M(oe,se),oe.prototype.convertTo=function(i){return this.imod(i.ushln(this.shift))},oe.prototype.convertFrom=function(i){var a=this.imod(i.mul(this.rinv));return a.red=null,a},oe.prototype.imul=function(i,a){if(i.isZero()||a.isZero())return i.words[0]=0,i.length=1,i;var p=i.imul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.mul=function(i,a){if(i.isZero()||a.isZero())return new s(0)._forceRed(this);var p=i.mul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.invm=function(i){return this.imod(i._invmp(this.m).mul(this.r2))._forceRed(this)}}(Ue=m.nmd(Ue),this)},4901:Ue=>{"use strict";var K={single_source_shortest_paths:function(m,e,t){var v={},M={};M[e]=0;var C,c,P,o,O,R,s=K.PriorityQueue.make();for(s.push(e,0);!s.empty();)for(P in o=(C=s.pop()).cost,O=m[c=C.value]||{})O.hasOwnProperty(P)&&(R=o+O[P],(void 0===M[P]||M[P]>R)&&(M[P]=R,s.push(P,R),v[P]=c));if(void 0!==t&&void 0===M[t]){var w=["Could not find a path from ",e," to ",t,"."].join("");throw new Error(w)}return v},extract_shortest_path_from_predecessor_list:function(m,e){for(var t=[],v=e;v;)t.push(v),v=m[v];return t.reverse(),t},find_path:function(m,e,t){var v=K.single_source_shortest_paths(m,e,t);return K.extract_shortest_path_from_predecessor_list(v,t)},PriorityQueue:{make:function(m){var v,e=K.PriorityQueue,t={};for(v in m=m||{},e)e.hasOwnProperty(v)&&(t[v]=e[v]);return t.queue=[],t.sorter=m.sorter||e.default_sorter,t},default_sorter:function(m,e){return m.cost-e.cost},push:function(m,e){this.queue.push({value:m,cost:e}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};Ue.exports=K},7715:(Ue,K,m)=>{"use strict";var e=K;e.version=m(8597).i8,e.utils=m(1970),e.rand=m(7950),e.curve=m(6270),e.curves=m(2916),e.ec=m(7626),e.eddsa=m(1885)},7902:(Ue,K,m)=>{"use strict";var e=m(7433),t=m(1970),v=t.getNAF,M=t.getJSF,s=t.assert;function C(P,o){this.type=P,this.p=new e(o.p,16),this.red=o.prime?e.red(o.prime):e.mont(this.p),this.zero=new e(0).toRed(this.red),this.one=new e(1).toRed(this.red),this.two=new e(2).toRed(this.red),this.n=o.n&&new e(o.n,16),this.g=o.g&&this.pointFromJSON(o.g,o.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var O=this.n&&this.p.div(this.n);!O||O.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(P,o){this.curve=P,this.type=o,this.precomputed=null}Ue.exports=C,C.prototype.point=function(){throw new Error("Not implemented")},C.prototype.validate=function(){throw new Error("Not implemented")},C.prototype._fixedNafMul=function(o,O){s(o.precomputed);var T=o._getDoubles(),R=v(O,1,this._bitLength),S=(1<=w;G--)U=(U<<1)+R[G];D.push(U)}for(var W=this.jpoint(null,null,null),ee=this.jpoint(null,null,null),ie=S;ie>0;ie--){for(w=0;w=0;U--){for(var G=0;U>=0&&0===D[U];U--)G++;if(U>=0&&G++,w=w.dblp(G),U<0)break;var W=D[U];s(0!==W),w="affine"===o.type?w.mixedAdd(W>0?S[W-1>>1]:S[-W-1>>1].neg()):w.add(W>0?S[W-1>>1]:S[-W-1>>1].neg())}return"affine"===o.type?w.toP():w},C.prototype._wnafMulAdd=function(o,O,T,R,S){var W,ee,ie,D=this._wnafT1,w=this._wnafT2,U=this._wnafT3,G=0;for(W=0;W=1;W-=2){var fe=W-1,de=W;if(1===D[fe]&&1===D[de]){var ne=[O[fe],null,null,O[de]];0===O[fe].y.cmp(O[de].y)?(ne[1]=O[fe].add(O[de]),ne[2]=O[fe].toJ().mixedAdd(O[de].neg())):0===O[fe].y.cmp(O[de].y.redNeg())?(ne[1]=O[fe].toJ().mixedAdd(O[de]),ne[2]=O[fe].add(O[de].neg())):(ne[1]=O[fe].toJ().mixedAdd(O[de]),ne[2]=O[fe].toJ().mixedAdd(O[de].neg()));var se=[-3,-1,-5,-7,0,7,5,1,3],oe=M(T[fe],T[de]);for(G=Math.max(oe[0].length,G),U[fe]=new Array(G),U[de]=new Array(G),ee=0;ee=0;W--){for(var u=0;W>=0;){var _=!0;for(ee=0;ee=0&&u++,a=a.dblp(u),W<0)break;for(ee=0;ee0?ie=w[ee][L-1>>1]:L<0&&(ie=w[ee][-L-1>>1].neg()),a="affine"===ie.type?a.mixedAdd(ie):a.add(ie))}}for(W=0;W=Math.ceil((o.bitLength()+1)/O.step)},c.prototype._getDoubles=function(o,O){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var T=[this],R=this,S=0;S{"use strict";var e=m(1970),t=m(7433),v=m(3894),M=m(7902),s=e.assert;function C(P){this.twisted=1!=(0|P.a),this.mOneA=this.twisted&&-1==(0|P.a),this.extended=this.mOneA,M.call(this,"edwards",P),this.a=new t(P.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new t(P.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new t(P.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|P.c)}function c(P,o,O,T,R){M.BasePoint.call(this,P,"projective"),null===o&&null===O&&null===T?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new t(o,16),this.y=new t(O,16),this.z=T?new t(T,16):this.curve.one,this.t=R&&new t(R,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}v(C,M),Ue.exports=C,C.prototype._mulA=function(o){return this.mOneA?o.redNeg():this.a.redMul(o)},C.prototype._mulC=function(o){return this.oneC?o:this.c.redMul(o)},C.prototype.jpoint=function(o,O,T,R){return this.point(o,O,T,R)},C.prototype.pointFromX=function(o,O){(o=new t(o,16)).red||(o=o.toRed(this.red));var T=o.redSqr(),R=this.c2.redSub(this.a.redMul(T)),S=this.one.redSub(this.c2.redMul(this.d).redMul(T)),D=R.redMul(S.redInvm()),w=D.redSqrt();if(0!==w.redSqr().redSub(D).cmp(this.zero))throw new Error("invalid point");var U=w.fromRed().isOdd();return(O&&!U||!O&&U)&&(w=w.redNeg()),this.point(o,w)},C.prototype.pointFromY=function(o,O){(o=new t(o,16)).red||(o=o.toRed(this.red));var T=o.redSqr(),R=T.redSub(this.c2),S=T.redMul(this.d).redMul(this.c2).redSub(this.a),D=R.redMul(S.redInvm());if(0===D.cmp(this.zero)){if(O)throw new Error("invalid point");return this.point(this.zero,o)}var w=D.redSqrt();if(0!==w.redSqr().redSub(D).cmp(this.zero))throw new Error("invalid point");return w.fromRed().isOdd()!==O&&(w=w.redNeg()),this.point(w,o)},C.prototype.validate=function(o){if(o.isInfinity())return!0;o.normalize();var O=o.x.redSqr(),T=o.y.redSqr(),R=O.redMul(this.a).redAdd(T),S=this.c2.redMul(this.one.redAdd(this.d.redMul(O).redMul(T)));return 0===R.cmp(S)},v(c,M.BasePoint),C.prototype.pointFromJSON=function(o){return c.fromJSON(this,o)},C.prototype.point=function(o,O,T,R){return new c(this,o,O,T,R)},c.fromJSON=function(o,O){return new c(o,O[0],O[1],O[2])},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var o=this.x.redSqr(),O=this.y.redSqr(),T=this.z.redSqr();T=T.redIAdd(T);var R=this.curve._mulA(o),S=this.x.redAdd(this.y).redSqr().redISub(o).redISub(O),D=R.redAdd(O),w=D.redSub(T),U=R.redSub(O),G=S.redMul(w),W=D.redMul(U),ee=S.redMul(U),ie=w.redMul(D);return this.curve.point(G,W,ie,ee)},c.prototype._projDbl=function(){var R,S,D,w,U,G,o=this.x.redAdd(this.y).redSqr(),O=this.x.redSqr(),T=this.y.redSqr();if(this.curve.twisted){var W=(w=this.curve._mulA(O)).redAdd(T);this.zOne?(R=o.redSub(O).redSub(T).redMul(W.redSub(this.curve.two)),S=W.redMul(w.redSub(T)),D=W.redSqr().redSub(W).redSub(W)):(U=this.z.redSqr(),G=W.redSub(U).redISub(U),R=o.redSub(O).redISub(T).redMul(G),S=W.redMul(w.redSub(T)),D=W.redMul(G))}else w=O.redAdd(T),U=this.curve._mulC(this.z).redSqr(),G=w.redSub(U).redSub(U),R=this.curve._mulC(o.redISub(w)).redMul(G),S=this.curve._mulC(w).redMul(O.redISub(T)),D=w.redMul(G);return this.curve.point(R,S,D)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(o){var O=this.y.redSub(this.x).redMul(o.y.redSub(o.x)),T=this.y.redAdd(this.x).redMul(o.y.redAdd(o.x)),R=this.t.redMul(this.curve.dd).redMul(o.t),S=this.z.redMul(o.z.redAdd(o.z)),D=T.redSub(O),w=S.redSub(R),U=S.redAdd(R),G=T.redAdd(O),W=D.redMul(w),ee=U.redMul(G),ie=D.redMul(G),_e=w.redMul(U);return this.curve.point(W,ee,_e,ie)},c.prototype._projAdd=function(o){var ee,ie,O=this.z.redMul(o.z),T=O.redSqr(),R=this.x.redMul(o.x),S=this.y.redMul(o.y),D=this.curve.d.redMul(R).redMul(S),w=T.redSub(D),U=T.redAdd(D),G=this.x.redAdd(this.y).redMul(o.x.redAdd(o.y)).redISub(R).redISub(S),W=O.redMul(w).redMul(G);return this.curve.twisted?(ee=O.redMul(U).redMul(S.redSub(this.curve._mulA(R))),ie=w.redMul(U)):(ee=O.redMul(U).redMul(S.redSub(R)),ie=this.curve._mulC(w).redMul(U)),this.curve.point(W,ee,ie)},c.prototype.add=function(o){return this.isInfinity()?o:o.isInfinity()?this:this.curve.extended?this._extAdd(o):this._projAdd(o)},c.prototype.mul=function(o){return this._hasDoubles(o)?this.curve._fixedNafMul(this,o):this.curve._wnafMul(this,o)},c.prototype.mulAdd=function(o,O,T){return this.curve._wnafMulAdd(1,[this,O],[o,T],2,!1)},c.prototype.jmulAdd=function(o,O,T){return this.curve._wnafMulAdd(1,[this,O],[o,T],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var o=this.z.redInvm();return this.x=this.x.redMul(o),this.y=this.y.redMul(o),this.t&&(this.t=this.t.redMul(o)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(o){return this===o||0===this.getX().cmp(o.getX())&&0===this.getY().cmp(o.getY())},c.prototype.eqXToP=function(o){var O=o.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(O))return!0;for(var T=o.clone(),R=this.curve.redN.redMul(this.z);;){if(T.iadd(this.curve.n),T.cmp(this.curve.p)>=0)return!1;if(O.redIAdd(R),0===this.x.cmp(O))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},6270:(Ue,K,m)=>{"use strict";var e=K;e.base=m(7902),e.short=m(1781),e.mont=m(7064),e.edwards=m(3835)},7064:(Ue,K,m)=>{"use strict";var e=m(7433),t=m(3894),v=m(7902),M=m(1970);function s(c){v.call(this,"mont",c),this.a=new e(c.a,16).toRed(this.red),this.b=new e(c.b,16).toRed(this.red),this.i4=new e(4).toRed(this.red).redInvm(),this.two=new e(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function C(c,P,o){v.BasePoint.call(this,c,"projective"),null===P&&null===o?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new e(P,16),this.z=new e(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}t(s,v),Ue.exports=s,s.prototype.validate=function(P){var o=P.normalize().x,O=o.redSqr(),T=O.redMul(o).redAdd(O.redMul(this.a)).redAdd(o);return 0===T.redSqrt().redSqr().cmp(T)},t(C,v.BasePoint),s.prototype.decodePoint=function(P,o){return this.point(M.toArray(P,o),1)},s.prototype.point=function(P,o){return new C(this,P,o)},s.prototype.pointFromJSON=function(P){return C.fromJSON(this,P)},C.prototype.precompute=function(){},C.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},C.fromJSON=function(P,o){return new C(P,o[0],o[1]||P.one)},C.prototype.inspect=function(){return this.isInfinity()?"":""},C.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},C.prototype.dbl=function(){var o=this.x.redAdd(this.z).redSqr(),T=this.x.redSub(this.z).redSqr(),R=o.redSub(T),S=o.redMul(T),D=R.redMul(T.redAdd(this.curve.a24.redMul(R)));return this.curve.point(S,D)},C.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},C.prototype.diffAdd=function(P,o){var O=this.x.redAdd(this.z),T=this.x.redSub(this.z),R=P.x.redAdd(P.z),D=P.x.redSub(P.z).redMul(O),w=R.redMul(T),U=o.z.redMul(D.redAdd(w).redSqr()),G=o.x.redMul(D.redISub(w).redSqr());return this.curve.point(U,G)},C.prototype.mul=function(P){for(var o=P.clone(),O=this,T=this.curve.point(null,null),S=[];0!==o.cmpn(0);o.iushrn(1))S.push(o.andln(1));for(var D=S.length-1;D>=0;D--)0===S[D]?(O=O.diffAdd(T,this),T=T.dbl()):(T=O.diffAdd(T,this),O=O.dbl());return T},C.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},C.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},C.prototype.eq=function(P){return 0===this.getX().cmp(P.getX())},C.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},C.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},1781:(Ue,K,m)=>{"use strict";var e=m(1970),t=m(7433),v=m(3894),M=m(7902),s=e.assert;function C(o){M.call(this,"short",o),this.a=new t(o.a,16).toRed(this.red),this.b=new t(o.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(o),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(o,O,T,R){M.BasePoint.call(this,o,"affine"),null===O&&null===T?(this.x=null,this.y=null,this.inf=!0):(this.x=new t(O,16),this.y=new t(T,16),R&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function P(o,O,T,R){M.BasePoint.call(this,o,"jacobian"),null===O&&null===T&&null===R?(this.x=this.curve.one,this.y=this.curve.one,this.z=new t(0)):(this.x=new t(O,16),this.y=new t(T,16),this.z=new t(R,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}v(C,M),Ue.exports=C,C.prototype._getEndomorphism=function(O){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var T,R;if(O.beta)T=new t(O.beta,16).toRed(this.red);else{var S=this._getEndoRoots(this.p);T=(T=S[0].cmp(S[1])<0?S[0]:S[1]).toRed(this.red)}if(O.lambda)R=new t(O.lambda,16);else{var D=this._getEndoRoots(this.n);0===this.g.mul(D[0]).x.cmp(this.g.x.redMul(T))?R=D[0]:s(0===this.g.mul(R=D[1]).x.cmp(this.g.x.redMul(T)))}return{beta:T,lambda:R,basis:O.basis?O.basis.map(function(U){return{a:new t(U.a,16),b:new t(U.b,16)}}):this._getEndoBasis(R)}}},C.prototype._getEndoRoots=function(O){var T=O===this.p?this.red:t.mont(O),R=new t(2).toRed(T).redInvm(),S=R.redNeg(),D=new t(3).toRed(T).redNeg().redSqrt().redMul(R);return[S.redAdd(D).fromRed(),S.redSub(D).fromRed()]},C.prototype._getEndoBasis=function(O){for(var W,ee,ie,_e,fe,de,ne,oe,y,T=this.n.ushrn(Math.floor(this.n.bitLength()/2)),R=O,S=this.n.clone(),D=new t(1),w=new t(0),U=new t(0),G=new t(1),se=0;0!==R.cmpn(0);){var i=S.div(R);oe=S.sub(i.mul(R)),y=U.sub(i.mul(D));var a=G.sub(i.mul(w));if(!ie&&oe.cmp(T)<0)W=ne.neg(),ee=D,ie=oe.neg(),_e=y;else if(ie&&2==++se)break;ne=oe,S=R,R=oe,U=D,D=y,G=w,w=a}fe=oe.neg(),de=y;var p=ie.sqr().add(_e.sqr());return fe.sqr().add(de.sqr()).cmp(p)>=0&&(fe=W,de=ee),ie.negative&&(ie=ie.neg(),_e=_e.neg()),fe.negative&&(fe=fe.neg(),de=de.neg()),[{a:ie,b:_e},{a:fe,b:de}]},C.prototype._endoSplit=function(O){var T=this.endo.basis,R=T[0],S=T[1],D=S.b.mul(O).divRound(this.n),w=R.b.neg().mul(O).divRound(this.n),U=D.mul(R.a),G=w.mul(S.a),W=D.mul(R.b),ee=w.mul(S.b);return{k1:O.sub(U).sub(G),k2:W.add(ee).neg()}},C.prototype.pointFromX=function(O,T){(O=new t(O,16)).red||(O=O.toRed(this.red));var R=O.redSqr().redMul(O).redIAdd(O.redMul(this.a)).redIAdd(this.b),S=R.redSqrt();if(0!==S.redSqr().redSub(R).cmp(this.zero))throw new Error("invalid point");var D=S.fromRed().isOdd();return(T&&!D||!T&&D)&&(S=S.redNeg()),this.point(O,S)},C.prototype.validate=function(O){if(O.inf)return!0;var T=O.x,R=O.y,S=this.a.redMul(T),D=T.redSqr().redMul(T).redIAdd(S).redIAdd(this.b);return 0===R.redSqr().redISub(D).cmpn(0)},C.prototype._endoWnafMulAdd=function(O,T,R){for(var S=this._endoWnafT1,D=this._endoWnafT2,w=0;w":""},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(O){if(this.inf)return O;if(O.inf)return this;if(this.eq(O))return this.dbl();if(this.neg().eq(O))return this.curve.point(null,null);if(0===this.x.cmp(O.x))return this.curve.point(null,null);var T=this.y.redSub(O.y);0!==T.cmpn(0)&&(T=T.redMul(this.x.redSub(O.x).redInvm()));var R=T.redSqr().redISub(this.x).redISub(O.x),S=T.redMul(this.x.redSub(R)).redISub(this.y);return this.curve.point(R,S)},c.prototype.dbl=function(){if(this.inf)return this;var O=this.y.redAdd(this.y);if(0===O.cmpn(0))return this.curve.point(null,null);var T=this.curve.a,R=this.x.redSqr(),S=O.redInvm(),D=R.redAdd(R).redIAdd(R).redIAdd(T).redMul(S),w=D.redSqr().redISub(this.x.redAdd(this.x)),U=D.redMul(this.x.redSub(w)).redISub(this.y);return this.curve.point(w,U)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(O){return O=new t(O,16),this.isInfinity()?this:this._hasDoubles(O)?this.curve._fixedNafMul(this,O):this.curve.endo?this.curve._endoWnafMulAdd([this],[O]):this.curve._wnafMul(this,O)},c.prototype.mulAdd=function(O,T,R){var S=[this,T],D=[O,R];return this.curve.endo?this.curve._endoWnafMulAdd(S,D):this.curve._wnafMulAdd(1,S,D,2)},c.prototype.jmulAdd=function(O,T,R){var S=[this,T],D=[O,R];return this.curve.endo?this.curve._endoWnafMulAdd(S,D,!0):this.curve._wnafMulAdd(1,S,D,2,!0)},c.prototype.eq=function(O){return this===O||this.inf===O.inf&&(this.inf||0===this.x.cmp(O.x)&&0===this.y.cmp(O.y))},c.prototype.neg=function(O){if(this.inf)return this;var T=this.curve.point(this.x,this.y.redNeg());if(O&&this.precomputed){var R=this.precomputed,S=function(D){return D.neg()};T.precomputed={naf:R.naf&&{wnd:R.naf.wnd,points:R.naf.points.map(S)},doubles:R.doubles&&{step:R.doubles.step,points:R.doubles.points.map(S)}}}return T},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},v(P,M.BasePoint),C.prototype.jpoint=function(O,T,R){return new P(this,O,T,R)},P.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var O=this.z.redInvm(),T=O.redSqr(),R=this.x.redMul(T),S=this.y.redMul(T).redMul(O);return this.curve.point(R,S)},P.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},P.prototype.add=function(O){if(this.isInfinity())return O;if(O.isInfinity())return this;var T=O.z.redSqr(),R=this.z.redSqr(),S=this.x.redMul(T),D=O.x.redMul(R),w=this.y.redMul(T.redMul(O.z)),U=O.y.redMul(R.redMul(this.z)),G=S.redSub(D),W=w.redSub(U);if(0===G.cmpn(0))return 0!==W.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var ee=G.redSqr(),ie=ee.redMul(G),_e=S.redMul(ee),fe=W.redSqr().redIAdd(ie).redISub(_e).redISub(_e),de=W.redMul(_e.redISub(fe)).redISub(w.redMul(ie)),ne=this.z.redMul(O.z).redMul(G);return this.curve.jpoint(fe,de,ne)},P.prototype.mixedAdd=function(O){if(this.isInfinity())return O.toJ();if(O.isInfinity())return this;var T=this.z.redSqr(),R=this.x,S=O.x.redMul(T),D=this.y,w=O.y.redMul(T).redMul(this.z),U=R.redSub(S),G=D.redSub(w);if(0===U.cmpn(0))return 0!==G.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var W=U.redSqr(),ee=W.redMul(U),ie=R.redMul(W),_e=G.redSqr().redIAdd(ee).redISub(ie).redISub(ie),fe=G.redMul(ie.redISub(_e)).redISub(D.redMul(ee)),de=this.z.redMul(U);return this.curve.jpoint(_e,fe,de)},P.prototype.dblp=function(O){if(0===O)return this;if(this.isInfinity())return this;if(!O)return this.dbl();var T;if(this.curve.zeroA||this.curve.threeA){var R=this;for(T=0;T=0)return!1;if(R.redIAdd(D),0===this.x.cmp(R))return!0}},P.prototype.inspect=function(){return this.isInfinity()?"":""},P.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},2916:(Ue,K,m)=>{"use strict";var P,e=K,t=m(7084),v=m(6270),s=m(1970).assert;function C(o){this.curve="short"===o.type?new v.short(o):"edwards"===o.type?new v.edwards(o):new v.mont(o),this.g=this.curve.g,this.n=this.curve.n,this.hash=o.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function c(o,O){Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:function(){var T=new C(O);return Object.defineProperty(e,o,{configurable:!0,enumerable:!0,value:T}),T}})}e.PresetCurve=C,c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:t.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:t.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:t.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:t.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:t.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:t.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:t.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{P=m(5150)}catch(o){P=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:t.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",P]})},7626:(Ue,K,m)=>{"use strict";var e=m(7433),t=m(2438),v=m(1970),M=m(2916),s=m(7950),C=v.assert,c=m(1259),P=m(5957);function o(O){if(!(this instanceof o))return new o(O);"string"==typeof O&&(C(Object.prototype.hasOwnProperty.call(M,O),"Unknown curve "+O),O=M[O]),O instanceof M.PresetCurve&&(O={curve:O}),this.curve=O.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=O.curve.g,this.g.precompute(O.curve.n.bitLength()+1),this.hash=O.hash||O.curve.hash}Ue.exports=o,o.prototype.keyPair=function(T){return new c(this,T)},o.prototype.keyFromPrivate=function(T,R){return c.fromPrivate(this,T,R)},o.prototype.keyFromPublic=function(T,R){return c.fromPublic(this,T,R)},o.prototype.genKeyPair=function(T){T||(T={});for(var R=new t({hash:this.hash,pers:T.pers,persEnc:T.persEnc||"utf8",entropy:T.entropy||s(this.hash.hmacStrength),entropyEnc:T.entropy&&T.entropyEnc||"utf8",nonce:this.n.toArray()}),S=this.n.byteLength(),D=this.n.sub(new e(2));;){var w=new e(R.generate(S));if(!(w.cmp(D)>0))return w.iaddn(1),this.keyFromPrivate(w)}},o.prototype._truncateToN=function(T,R){var S=8*T.byteLength()-this.n.bitLength();return S>0&&(T=T.ushrn(S)),!R&&T.cmp(this.n)>=0?T.sub(this.n):T},o.prototype.sign=function(T,R,S,D){"object"==typeof S&&(D=S,S=null),D||(D={}),R=this.keyFromPrivate(R,S),T=this._truncateToN(new e(T,16));for(var w=this.n.byteLength(),U=R.getPrivate().toArray("be",w),G=T.toArray("be",w),W=new t({hash:this.hash,entropy:U,nonce:G,pers:D.pers,persEnc:D.persEnc||"utf8"}),ee=this.n.sub(new e(1)),ie=0;;ie++){var _e=D.k?D.k(ie):new e(W.generate(this.n.byteLength()));if(!((_e=this._truncateToN(_e,!0)).cmpn(1)<=0||_e.cmp(ee)>=0)){var fe=this.g.mul(_e);if(!fe.isInfinity()){var de=fe.getX(),ne=de.umod(this.n);if(0!==ne.cmpn(0)){var se=_e.invm(this.n).mul(ne.mul(R.getPrivate()).iadd(T));if(0!==(se=se.umod(this.n)).cmpn(0)){var oe=(fe.getY().isOdd()?1:0)|(0!==de.cmp(ne)?2:0);return D.canonical&&se.cmp(this.nh)>0&&(se=this.n.sub(se),oe^=1),new P({r:ne,s:se,recoveryParam:oe})}}}}}},o.prototype.verify=function(T,R,S,D){T=this._truncateToN(new e(T,16)),S=this.keyFromPublic(S,D);var w=(R=new P(R,"hex")).r,U=R.s;if(w.cmpn(1)<0||w.cmp(this.n)>=0||U.cmpn(1)<0||U.cmp(this.n)>=0)return!1;var ie,G=U.invm(this.n),W=G.mul(T).umod(this.n),ee=G.mul(w).umod(this.n);return this.curve._maxwellTrick?!(ie=this.g.jmulAdd(W,S.getPublic(),ee)).isInfinity()&&ie.eqXToP(w):!(ie=this.g.mulAdd(W,S.getPublic(),ee)).isInfinity()&&0===ie.getX().umod(this.n).cmp(w)},o.prototype.recoverPubKey=function(O,T,R,S){C((3&R)===R,"The recovery param is more than two bits"),T=new P(T,S);var D=this.n,w=new e(O),U=T.r,G=T.s,W=1&R,ee=R>>1;if(U.cmp(this.curve.p.umod(this.curve.n))>=0&&ee)throw new Error("Unable to find sencond key candinate");U=this.curve.pointFromX(ee?U.add(this.curve.n):U,W);var ie=T.r.invm(D),_e=D.sub(w).mul(ie).umod(D),fe=G.mul(ie).umod(D);return this.g.mulAdd(_e,U,fe)},o.prototype.getKeyRecoveryParam=function(O,T,R,S){if(null!==(T=new P(T,S)).recoveryParam)return T.recoveryParam;for(var D=0;D<4;D++){var w;try{w=this.recoverPubKey(O,T,D)}catch(U){continue}if(w.eq(R))return D}throw new Error("Unable to find valid recovery factor")}},1259:(Ue,K,m)=>{"use strict";var e=m(7433),v=m(1970).assert;function M(s,C){this.ec=s,this.priv=null,this.pub=null,C.priv&&this._importPrivate(C.priv,C.privEnc),C.pub&&this._importPublic(C.pub,C.pubEnc)}Ue.exports=M,M.fromPublic=function(C,c,P){return c instanceof M?c:new M(C,{pub:c,pubEnc:P})},M.fromPrivate=function(C,c,P){return c instanceof M?c:new M(C,{priv:c,privEnc:P})},M.prototype.validate=function(){var C=this.getPublic();return C.isInfinity()?{result:!1,reason:"Invalid public key"}:C.validate()?C.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},M.prototype.getPublic=function(C,c){return"string"==typeof C&&(c=C,C=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),c?this.pub.encode(c,C):this.pub},M.prototype.getPrivate=function(C){return"hex"===C?this.priv.toString(16,2):this.priv},M.prototype._importPrivate=function(C,c){this.priv=new e(C,c||16),this.priv=this.priv.umod(this.ec.curve.n)},M.prototype._importPublic=function(C,c){if(C.x||C.y)return"mont"===this.ec.curve.type?v(C.x,"Need x coordinate"):("short"===this.ec.curve.type||"edwards"===this.ec.curve.type)&&v(C.x&&C.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(C.x,C.y));this.pub=this.ec.curve.decodePoint(C,c)},M.prototype.derive=function(C){return C.validate()||v(C.validate(),"public point not validated"),C.mul(this.priv).getX()},M.prototype.sign=function(C,c,P){return this.ec.sign(C,this,c,P)},M.prototype.verify=function(C,c){return this.ec.verify(C,c,this)},M.prototype.inspect=function(){return""}},5957:(Ue,K,m)=>{"use strict";var e=m(7433),t=m(1970),v=t.assert;function M(o,O){if(o instanceof M)return o;this._importDER(o,O)||(v(o.r&&o.s,"Signature without r or s"),this.r=new e(o.r,16),this.s=new e(o.s,16),this.recoveryParam=void 0===o.recoveryParam?null:o.recoveryParam)}function s(){this.place=0}function C(o,O){var T=o[O.place++];if(!(128&T))return T;var R=15&T;if(0===R||R>4)return!1;for(var S=0,D=0,w=O.place;D>>=0;return!(S<=127)&&(O.place=w,S)}function c(o){for(var O=0,T=o.length-1;!o[O]&&!(128&o[O+1])&&O>>3);for(o.push(128|T);--T;)o.push(O>>>(T<<3)&255);o.push(O)}}Ue.exports=M,M.prototype._importDER=function(O,T){O=t.toArray(O,T);var R=new s;if(48!==O[R.place++])return!1;var S=C(O,R);if(!1===S||S+R.place!==O.length||2!==O[R.place++])return!1;var D=C(O,R);if(!1===D)return!1;var w=O.slice(R.place,D+R.place);if(R.place+=D,2!==O[R.place++])return!1;var U=C(O,R);if(!1===U||O.length!==U+R.place)return!1;var G=O.slice(R.place,U+R.place);if(0===w[0]){if(!(128&w[1]))return!1;w=w.slice(1)}if(0===G[0]){if(!(128&G[1]))return!1;G=G.slice(1)}return this.r=new e(w),this.s=new e(G),this.recoveryParam=null,!0},M.prototype.toDER=function(O){var T=this.r.toArray(),R=this.s.toArray();for(128&T[0]&&(T=[0].concat(T)),128&R[0]&&(R=[0].concat(R)),T=c(T),R=c(R);!(R[0]||128&R[1]);)R=R.slice(1);var S=[2];P(S,T.length),(S=S.concat(T)).push(2),P(S,R.length);var D=S.concat(R),w=[48];return P(w,D.length),w=w.concat(D),t.encode(w,O)}},1885:(Ue,K,m)=>{"use strict";var e=m(7084),t=m(2916),v=m(1970),M=v.assert,s=v.parseBytes,C=m(7535),c=m(8241);function P(o){if(M("ed25519"===o,"only tested with ed25519 so far"),!(this instanceof P))return new P(o);this.curve=o=t[o].curve,this.g=o.g,this.g.precompute(o.n.bitLength()+1),this.pointClass=o.point().constructor,this.encodingLength=Math.ceil(o.n.bitLength()/8),this.hash=e.sha512}Ue.exports=P,P.prototype.sign=function(O,T){O=s(O);var R=this.keyFromSecret(T),S=this.hashInt(R.messagePrefix(),O),D=this.g.mul(S),w=this.encodePoint(D),U=this.hashInt(w,R.pubBytes(),O).mul(R.priv()),G=S.add(U).umod(this.curve.n);return this.makeSignature({R:D,S:G,Rencoded:w})},P.prototype.verify=function(O,T,R){O=s(O),T=this.makeSignature(T);var S=this.keyFromPublic(R),D=this.hashInt(T.Rencoded(),S.pubBytes(),O),w=this.g.mul(T.S());return T.R().add(S.pub().mul(D)).eq(w)},P.prototype.hashInt=function(){for(var O=this.hash(),T=0;T{"use strict";var e=m(1970),t=e.assert,v=e.parseBytes,M=e.cachedProperty;function s(C,c){this.eddsa=C,this._secret=v(c.secret),C.isPoint(c.pub)?this._pub=c.pub:this._pubBytes=v(c.pub)}s.fromPublic=function(c,P){return P instanceof s?P:new s(c,{pub:P})},s.fromSecret=function(c,P){return P instanceof s?P:new s(c,{secret:P})},s.prototype.secret=function(){return this._secret},M(s,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),M(s,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),M(s,"privBytes",function(){var c=this.eddsa,P=this.hash(),o=c.encodingLength-1,O=P.slice(0,c.encodingLength);return O[0]&=248,O[o]&=127,O[o]|=64,O}),M(s,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),M(s,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),M(s,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),s.prototype.sign=function(c){return t(this._secret,"KeyPair can only verify"),this.eddsa.sign(c,this)},s.prototype.verify=function(c,P){return this.eddsa.verify(c,P,this)},s.prototype.getSecret=function(c){return t(this._secret,"KeyPair is public only"),e.encode(this.secret(),c)},s.prototype.getPublic=function(c){return e.encode(this.pubBytes(),c)},Ue.exports=s},8241:(Ue,K,m)=>{"use strict";var e=m(7433),t=m(1970),v=t.assert,M=t.cachedProperty,s=t.parseBytes;function C(c,P){this.eddsa=c,"object"!=typeof P&&(P=s(P)),Array.isArray(P)&&(P={R:P.slice(0,c.encodingLength),S:P.slice(c.encodingLength)}),v(P.R&&P.S,"Signature without R or S"),c.isPoint(P.R)&&(this._R=P.R),P.S instanceof e&&(this._S=P.S),this._Rencoded=Array.isArray(P.R)?P.R:P.Rencoded,this._Sencoded=Array.isArray(P.S)?P.S:P.Sencoded}M(C,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),M(C,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),M(C,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),M(C,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),C.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},C.prototype.toHex=function(){return t.encode(this.toBytes(),"hex").toUpperCase()},Ue.exports=C},5150:Ue=>{Ue.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},1970:(Ue,K,m)=>{"use strict";var e=K,t=m(7433),v=m(2391),M=m(8195);e.assert=v,e.toArray=M.toArray,e.zero2=M.zero2,e.toHex=M.toHex,e.encode=M.encode,e.getNAF=function(O,T,R){var S=new Array(Math.max(O.bitLength(),R)+1);S.fill(0);for(var D=1<(D>>1)-1?(D>>1)-W:W):G=0,S[U]=G,w.iushrn(1)}return S},e.getJSF=function(O,T){var R=[[],[]];O=O.clone(),T=T.clone();for(var w,S=0,D=0;O.cmpn(-S)>0||T.cmpn(-D)>0;){var W,ee,U=O.andln(3)+S&3,G=T.andln(3)+D&3;3===U&&(U=-1),3===G&&(G=-1),W=0==(1&U)?0:3!=(w=O.andln(7)+S&7)&&5!==w||2!==G?U:-U,R[0].push(W),ee=0==(1&G)?0:3!=(w=T.andln(7)+D&7)&&5!==w||2!==U?G:-G,R[1].push(ee),2*S===W+1&&(S=1-S),2*D===ee+1&&(D=1-D),O.iushrn(1),T.iushrn(1)}return R},e.cachedProperty=function(O,T,R){var S="_"+T;O.prototype[T]=function(){return void 0!==this[S]?this[S]:this[S]=R.call(this)}},e.parseBytes=function(O){return"string"==typeof O?e.toArray(O,"hex"):O},e.intFromLE=function(O){return new t(O,"hex","le")}},7433:function(Ue,K,m){!function(e,t){"use strict";function v(y,i){if(!y)throw new Error(i||"Assertion failed")}function M(y,i){y.super_=i;var a=function(){};a.prototype=i.prototype,y.prototype=new a,y.prototype.constructor=y}function s(y,i,a){if(s.isBN(y))return y;this.negative=0,this.words=null,this.length=0,this.red=null,null!==y&&(("le"===i||"be"===i)&&(a=i,i=10),this._init(y||0,i||10,a||"be"))}var C;"object"==typeof e?e.exports=s:t.BN=s,s.BN=s,s.wordSize=26;try{C="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:m(5568).Buffer}catch(y){}function c(y,i){var a=y.charCodeAt(i);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function P(y,i,a){var p=c(y,a);return a-1>=i&&(p|=c(y,a-1)<<4),p}function o(y,i,a,p){for(var u=0,_=Math.min(y.length,a),L=i;L<_;L++){var I=y.charCodeAt(L)-48;u*=p,u+=I>=49?I-49+10:I>=17?I-17+10:I}return u}s.isBN=function(i){return i instanceof s||null!==i&&"object"==typeof i&&i.constructor.wordSize===s.wordSize&&Array.isArray(i.words)},s.max=function(i,a){return i.cmp(a)>0?i:a},s.min=function(i,a){return i.cmp(a)<0?i:a},s.prototype._init=function(i,a,p){if("number"==typeof i)return this._initNumber(i,a,p);if("object"==typeof i)return this._initArray(i,a,p);"hex"===a&&(a=16),v(a===(0|a)&&a>=2&&a<=36);var u=0;"-"===(i=i.toString().replace(/\s+/g,""))[0]&&(u++,this.negative=1),u=0;u-=3)this.words[_]|=(L=i[u]|i[u-1]<<8|i[u-2]<<16)<>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);else if("le"===p)for(u=0,_=0;u>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);return this.strip()},s.prototype._parseHex=function(i,a,p){this.length=Math.ceil((i.length-a)/6),this.words=new Array(this.length);for(var u=0;u=a;u-=2)I=P(i,a,u)<<_,this.words[L]|=67108863&I,_>=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;else for(u=(i.length-a)%2==0?a+1:a;u=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;this.strip()},s.prototype._parseBase=function(i,a,p){this.words=[0],this.length=1;for(var u=0,_=1;_<=67108863;_*=a)u++;u--,_=_/a|0;for(var L=i.length-p,I=L%u,x=Math.min(L,L-I)+p,r=0,b=p;b1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],T=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function D(y,i,a){a.negative=i.negative^y.negative;var p=y.length+i.length|0;a.length=p,p=p-1|0;var u=0|y.words[0],_=0|i.words[0],L=u*_,x=L/67108864|0;a.words[0]=67108863&L;for(var r=1;r>>26,J=67108863&x,F=Math.min(r,i.length-1),B=Math.max(0,r-y.length+1);B<=F;B++)b+=(L=(u=0|y.words[r-B|0])*(_=0|i.words[B])+J)/67108864|0,J=67108863&L;a.words[r]=0|J,x=0|b}return 0!==x?a.words[r]=0|x:a.length--,a.strip()}s.prototype.toString=function(i,a){var p;if(a=0|a||1,16===(i=i||10)||"hex"===i){p="";for(var u=0,_=0,L=0;L>>24-u&16777215)||L!==this.length-1?O[6-x.length]+x+p:x+p,(u+=2)>=26&&(u-=26,L--)}for(0!==_&&(p=_.toString(16)+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}if(i===(0|i)&&i>=2&&i<=36){var r=T[i],b=R[i];p="";var J=this.clone();for(J.negative=0;!J.isZero();){var F=J.modn(b).toString(i);p=(J=J.idivn(b)).isZero()?F+p:O[r-F.length]+F+p}for(this.isZero()&&(p="0"+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}v(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var i=this.words[0];return 2===this.length?i+=67108864*this.words[1]:3===this.length&&1===this.words[2]?i+=4503599627370496+67108864*this.words[1]:this.length>2&&v(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-i:i},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(i,a){return v(void 0!==C),this.toArrayLike(C,i,a)},s.prototype.toArray=function(i,a){return this.toArrayLike(Array,i,a)},s.prototype.toArrayLike=function(i,a,p){var u=this.byteLength(),_=p||Math.max(1,u);v(u<=_,"byte array longer than desired length"),v(_>0,"Requested array length <= 0"),this.strip();var x,r,L="le"===a,I=new i(_),b=this.clone();if(L){for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[r]=x;for(;r<_;r++)I[r]=0}else{for(r=0;r<_-u;r++)I[r]=0;for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[_-r-1]=x}return I},s.prototype._countBits=Math.clz32?function(i){return 32-Math.clz32(i)}:function(i){var a=i,p=0;return a>=4096&&(p+=13,a>>>=13),a>=64&&(p+=7,a>>>=7),a>=8&&(p+=4,a>>>=4),a>=2&&(p+=2,a>>>=2),p+a},s.prototype._zeroBits=function(i){if(0===i)return 26;var a=i,p=0;return 0==(8191&a)&&(p+=13,a>>>=13),0==(127&a)&&(p+=7,a>>>=7),0==(15&a)&&(p+=4,a>>>=4),0==(3&a)&&(p+=2,a>>>=2),0==(1&a)&&p++,p},s.prototype.bitLength=function(){var a=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+a},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var i=0,a=0;ai.length?this.clone().ior(i):i.clone().ior(this)},s.prototype.uor=function(i){return this.length>i.length?this.clone().iuor(i):i.clone().iuor(this)},s.prototype.iuand=function(i){var a;a=this.length>i.length?i:this;for(var p=0;pi.length?this.clone().iand(i):i.clone().iand(this)},s.prototype.uand=function(i){return this.length>i.length?this.clone().iuand(i):i.clone().iuand(this)},s.prototype.iuxor=function(i){var a,p;this.length>i.length?(a=this,p=i):(a=i,p=this);for(var u=0;ui.length?this.clone().ixor(i):i.clone().ixor(this)},s.prototype.uxor=function(i){return this.length>i.length?this.clone().iuxor(i):i.clone().iuxor(this)},s.prototype.inotn=function(i){v("number"==typeof i&&i>=0);var a=0|Math.ceil(i/26),p=i%26;this._expand(a),p>0&&a--;for(var u=0;u0&&(this.words[u]=~this.words[u]&67108863>>26-p),this.strip()},s.prototype.notn=function(i){return this.clone().inotn(i)},s.prototype.setn=function(i,a){v("number"==typeof i&&i>=0);var p=i/26|0,u=i%26;return this._expand(p+1),this.words[p]=a?this.words[p]|1<i.length?(p=this,u=i):(p=i,u=this);for(var _=0,L=0;L>>26;for(;0!==_&&L>>26;if(this.length=p.length,0!==_)this.words[this.length]=_,this.length++;else if(p!==this)for(;Li.length?this.clone().iadd(i):i.clone().iadd(this)},s.prototype.isub=function(i){if(0!==i.negative){i.negative=0;var a=this.iadd(i);return i.negative=1,a._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(i),this.negative=1,this._normSign();var u,_,p=this.cmp(i);if(0===p)return this.negative=0,this.length=1,this.words[0]=0,this;p>0?(u=this,_=i):(u=i,_=this);for(var L=0,I=0;I<_.length;I++)L=(a=(0|u.words[I])-(0|_.words[I])+L)>>26,this.words[I]=67108863&a;for(;0!==L&&I>26,this.words[I]=67108863&a;if(0===L&&I>>13,te=0|u[1],xe=8191&te,Re=te>>>13,Fe=0|u[2],q=8191&Fe,j=Fe>>>13,we=0|u[3],Ae=8191&we,le=we>>>13,We=0|u[4],yt=8191&We,Ne=We>>>13,Ve=0|u[5],ue=8191&Ve,Te=Ve>>>13,ke=0|u[6],Y=8191&ke,X=ke>>>13,he=0|u[7],Me=8191&he,ze=he>>>13,ht=0|u[8],it=8191&ht,ft=ht>>>13,nt=0|u[9],st=8191&nt,wt=nt>>>13,Bt=0|_[0],Nt=8191&Bt,Vt=Bt>>>13,Oi=0|_[1],jt=8191&Oi,ti=Oi>>>13,Pi=0|_[2],si=8191&Pi,di=Pi>>>13,He=0|_[3],Se=8191&He,V=He>>>13,ve=0|_[4],Ee=8191&ve,et=ve>>>13,$t=0|_[5],Pt=8191&$t,Xt=$t>>>13,lt=0|_[6],Pe=8191<,Be=lt>>>13,rt=0|_[7],ot=8191&rt,At=rt>>>13,li=0|_[8],Ut=8191&li,Ft=li>>>13,Si=0|_[9],ai=8191&Si,ci=Si>>>13;p.negative=i.negative^a.negative,p.length=19;var rn=(I+(x=Math.imul(F,Nt))|0)+((8191&(r=(r=Math.imul(F,Vt))+Math.imul(B,Nt)|0))<<13)|0;I=((b=Math.imul(B,Vt))+(r>>>13)|0)+(rn>>>26)|0,rn&=67108863,x=Math.imul(xe,Nt),r=(r=Math.imul(xe,Vt))+Math.imul(Re,Nt)|0,b=Math.imul(Re,Vt);var Vi=(I+(x=x+Math.imul(F,jt)|0)|0)+((8191&(r=(r=r+Math.imul(F,ti)|0)+Math.imul(B,jt)|0))<<13)|0;I=((b=b+Math.imul(B,ti)|0)+(r>>>13)|0)+(Vi>>>26)|0,Vi&=67108863,x=Math.imul(q,Nt),r=(r=Math.imul(q,Vt))+Math.imul(j,Nt)|0,b=Math.imul(j,Vt),x=x+Math.imul(xe,jt)|0,r=(r=r+Math.imul(xe,ti)|0)+Math.imul(Re,jt)|0,b=b+Math.imul(Re,ti)|0;var Di=(I+(x=x+Math.imul(F,si)|0)|0)+((8191&(r=(r=r+Math.imul(F,di)|0)+Math.imul(B,si)|0))<<13)|0;I=((b=b+Math.imul(B,di)|0)+(r>>>13)|0)+(Di>>>26)|0,Di&=67108863,x=Math.imul(Ae,Nt),r=(r=Math.imul(Ae,Vt))+Math.imul(le,Nt)|0,b=Math.imul(le,Vt),x=x+Math.imul(q,jt)|0,r=(r=r+Math.imul(q,ti)|0)+Math.imul(j,jt)|0,b=b+Math.imul(j,ti)|0,x=x+Math.imul(xe,si)|0,r=(r=r+Math.imul(xe,di)|0)+Math.imul(Re,si)|0,b=b+Math.imul(Re,di)|0;var Xi=(I+(x=x+Math.imul(F,Se)|0)|0)+((8191&(r=(r=r+Math.imul(F,V)|0)+Math.imul(B,Se)|0))<<13)|0;I=((b=b+Math.imul(B,V)|0)+(r>>>13)|0)+(Xi>>>26)|0,Xi&=67108863,x=Math.imul(yt,Nt),r=(r=Math.imul(yt,Vt))+Math.imul(Ne,Nt)|0,b=Math.imul(Ne,Vt),x=x+Math.imul(Ae,jt)|0,r=(r=r+Math.imul(Ae,ti)|0)+Math.imul(le,jt)|0,b=b+Math.imul(le,ti)|0,x=x+Math.imul(q,si)|0,r=(r=r+Math.imul(q,di)|0)+Math.imul(j,si)|0,b=b+Math.imul(j,di)|0,x=x+Math.imul(xe,Se)|0,r=(r=r+Math.imul(xe,V)|0)+Math.imul(Re,Se)|0,b=b+Math.imul(Re,V)|0;var Ke=(I+(x=x+Math.imul(F,Ee)|0)|0)+((8191&(r=(r=r+Math.imul(F,et)|0)+Math.imul(B,Ee)|0))<<13)|0;I=((b=b+Math.imul(B,et)|0)+(r>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,x=Math.imul(ue,Nt),r=(r=Math.imul(ue,Vt))+Math.imul(Te,Nt)|0,b=Math.imul(Te,Vt),x=x+Math.imul(yt,jt)|0,r=(r=r+Math.imul(yt,ti)|0)+Math.imul(Ne,jt)|0,b=b+Math.imul(Ne,ti)|0,x=x+Math.imul(Ae,si)|0,r=(r=r+Math.imul(Ae,di)|0)+Math.imul(le,si)|0,b=b+Math.imul(le,di)|0,x=x+Math.imul(q,Se)|0,r=(r=r+Math.imul(q,V)|0)+Math.imul(j,Se)|0,b=b+Math.imul(j,V)|0,x=x+Math.imul(xe,Ee)|0,r=(r=r+Math.imul(xe,et)|0)+Math.imul(Re,Ee)|0,b=b+Math.imul(Re,et)|0;var mt=(I+(x=x+Math.imul(F,Pt)|0)|0)+((8191&(r=(r=r+Math.imul(F,Xt)|0)+Math.imul(B,Pt)|0))<<13)|0;I=((b=b+Math.imul(B,Xt)|0)+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,x=Math.imul(Y,Nt),r=(r=Math.imul(Y,Vt))+Math.imul(X,Nt)|0,b=Math.imul(X,Vt),x=x+Math.imul(ue,jt)|0,r=(r=r+Math.imul(ue,ti)|0)+Math.imul(Te,jt)|0,b=b+Math.imul(Te,ti)|0,x=x+Math.imul(yt,si)|0,r=(r=r+Math.imul(yt,di)|0)+Math.imul(Ne,si)|0,b=b+Math.imul(Ne,di)|0,x=x+Math.imul(Ae,Se)|0,r=(r=r+Math.imul(Ae,V)|0)+Math.imul(le,Se)|0,b=b+Math.imul(le,V)|0,x=x+Math.imul(q,Ee)|0,r=(r=r+Math.imul(q,et)|0)+Math.imul(j,Ee)|0,b=b+Math.imul(j,et)|0,x=x+Math.imul(xe,Pt)|0,r=(r=r+Math.imul(xe,Xt)|0)+Math.imul(Re,Pt)|0,b=b+Math.imul(Re,Xt)|0;var be=(I+(x=x+Math.imul(F,Pe)|0)|0)+((8191&(r=(r=r+Math.imul(F,Be)|0)+Math.imul(B,Pe)|0))<<13)|0;I=((b=b+Math.imul(B,Be)|0)+(r>>>13)|0)+(be>>>26)|0,be&=67108863,x=Math.imul(Me,Nt),r=(r=Math.imul(Me,Vt))+Math.imul(ze,Nt)|0,b=Math.imul(ze,Vt),x=x+Math.imul(Y,jt)|0,r=(r=r+Math.imul(Y,ti)|0)+Math.imul(X,jt)|0,b=b+Math.imul(X,ti)|0,x=x+Math.imul(ue,si)|0,r=(r=r+Math.imul(ue,di)|0)+Math.imul(Te,si)|0,b=b+Math.imul(Te,di)|0,x=x+Math.imul(yt,Se)|0,r=(r=r+Math.imul(yt,V)|0)+Math.imul(Ne,Se)|0,b=b+Math.imul(Ne,V)|0,x=x+Math.imul(Ae,Ee)|0,r=(r=r+Math.imul(Ae,et)|0)+Math.imul(le,Ee)|0,b=b+Math.imul(le,et)|0,x=x+Math.imul(q,Pt)|0,r=(r=r+Math.imul(q,Xt)|0)+Math.imul(j,Pt)|0,b=b+Math.imul(j,Xt)|0,x=x+Math.imul(xe,Pe)|0,r=(r=r+Math.imul(xe,Be)|0)+Math.imul(Re,Pe)|0,b=b+Math.imul(Re,Be)|0;var qe=(I+(x=x+Math.imul(F,ot)|0)|0)+((8191&(r=(r=r+Math.imul(F,At)|0)+Math.imul(B,ot)|0))<<13)|0;I=((b=b+Math.imul(B,At)|0)+(r>>>13)|0)+(qe>>>26)|0,qe&=67108863,x=Math.imul(it,Nt),r=(r=Math.imul(it,Vt))+Math.imul(ft,Nt)|0,b=Math.imul(ft,Vt),x=x+Math.imul(Me,jt)|0,r=(r=r+Math.imul(Me,ti)|0)+Math.imul(ze,jt)|0,b=b+Math.imul(ze,ti)|0,x=x+Math.imul(Y,si)|0,r=(r=r+Math.imul(Y,di)|0)+Math.imul(X,si)|0,b=b+Math.imul(X,di)|0,x=x+Math.imul(ue,Se)|0,r=(r=r+Math.imul(ue,V)|0)+Math.imul(Te,Se)|0,b=b+Math.imul(Te,V)|0,x=x+Math.imul(yt,Ee)|0,r=(r=r+Math.imul(yt,et)|0)+Math.imul(Ne,Ee)|0,b=b+Math.imul(Ne,et)|0,x=x+Math.imul(Ae,Pt)|0,r=(r=r+Math.imul(Ae,Xt)|0)+Math.imul(le,Pt)|0,b=b+Math.imul(le,Xt)|0,x=x+Math.imul(q,Pe)|0,r=(r=r+Math.imul(q,Be)|0)+Math.imul(j,Pe)|0,b=b+Math.imul(j,Be)|0,x=x+Math.imul(xe,ot)|0,r=(r=r+Math.imul(xe,At)|0)+Math.imul(Re,ot)|0,b=b+Math.imul(Re,At)|0;var vt=(I+(x=x+Math.imul(F,Ut)|0)|0)+((8191&(r=(r=r+Math.imul(F,Ft)|0)+Math.imul(B,Ut)|0))<<13)|0;I=((b=b+Math.imul(B,Ft)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,x=Math.imul(st,Nt),r=(r=Math.imul(st,Vt))+Math.imul(wt,Nt)|0,b=Math.imul(wt,Vt),x=x+Math.imul(it,jt)|0,r=(r=r+Math.imul(it,ti)|0)+Math.imul(ft,jt)|0,b=b+Math.imul(ft,ti)|0,x=x+Math.imul(Me,si)|0,r=(r=r+Math.imul(Me,di)|0)+Math.imul(ze,si)|0,b=b+Math.imul(ze,di)|0,x=x+Math.imul(Y,Se)|0,r=(r=r+Math.imul(Y,V)|0)+Math.imul(X,Se)|0,b=b+Math.imul(X,V)|0,x=x+Math.imul(ue,Ee)|0,r=(r=r+Math.imul(ue,et)|0)+Math.imul(Te,Ee)|0,b=b+Math.imul(Te,et)|0,x=x+Math.imul(yt,Pt)|0,r=(r=r+Math.imul(yt,Xt)|0)+Math.imul(Ne,Pt)|0,b=b+Math.imul(Ne,Xt)|0,x=x+Math.imul(Ae,Pe)|0,r=(r=r+Math.imul(Ae,Be)|0)+Math.imul(le,Pe)|0,b=b+Math.imul(le,Be)|0,x=x+Math.imul(q,ot)|0,r=(r=r+Math.imul(q,At)|0)+Math.imul(j,ot)|0,b=b+Math.imul(j,At)|0,x=x+Math.imul(xe,Ut)|0,r=(r=r+Math.imul(xe,Ft)|0)+Math.imul(Re,Ut)|0,b=b+Math.imul(Re,Ft)|0;var me=(I+(x=x+Math.imul(F,ai)|0)|0)+((8191&(r=(r=r+Math.imul(F,ci)|0)+Math.imul(B,ai)|0))<<13)|0;I=((b=b+Math.imul(B,ci)|0)+(r>>>13)|0)+(me>>>26)|0,me&=67108863,x=Math.imul(st,jt),r=(r=Math.imul(st,ti))+Math.imul(wt,jt)|0,b=Math.imul(wt,ti),x=x+Math.imul(it,si)|0,r=(r=r+Math.imul(it,di)|0)+Math.imul(ft,si)|0,b=b+Math.imul(ft,di)|0,x=x+Math.imul(Me,Se)|0,r=(r=r+Math.imul(Me,V)|0)+Math.imul(ze,Se)|0,b=b+Math.imul(ze,V)|0,x=x+Math.imul(Y,Ee)|0,r=(r=r+Math.imul(Y,et)|0)+Math.imul(X,Ee)|0,b=b+Math.imul(X,et)|0,x=x+Math.imul(ue,Pt)|0,r=(r=r+Math.imul(ue,Xt)|0)+Math.imul(Te,Pt)|0,b=b+Math.imul(Te,Xt)|0,x=x+Math.imul(yt,Pe)|0,r=(r=r+Math.imul(yt,Be)|0)+Math.imul(Ne,Pe)|0,b=b+Math.imul(Ne,Be)|0,x=x+Math.imul(Ae,ot)|0,r=(r=r+Math.imul(Ae,At)|0)+Math.imul(le,ot)|0,b=b+Math.imul(le,At)|0,x=x+Math.imul(q,Ut)|0,r=(r=r+Math.imul(q,Ft)|0)+Math.imul(j,Ut)|0,b=b+Math.imul(j,Ft)|0;var $e=(I+(x=x+Math.imul(xe,ai)|0)|0)+((8191&(r=(r=r+Math.imul(xe,ci)|0)+Math.imul(Re,ai)|0))<<13)|0;I=((b=b+Math.imul(Re,ci)|0)+(r>>>13)|0)+($e>>>26)|0,$e&=67108863,x=Math.imul(st,si),r=(r=Math.imul(st,di))+Math.imul(wt,si)|0,b=Math.imul(wt,di),x=x+Math.imul(it,Se)|0,r=(r=r+Math.imul(it,V)|0)+Math.imul(ft,Se)|0,b=b+Math.imul(ft,V)|0,x=x+Math.imul(Me,Ee)|0,r=(r=r+Math.imul(Me,et)|0)+Math.imul(ze,Ee)|0,b=b+Math.imul(ze,et)|0,x=x+Math.imul(Y,Pt)|0,r=(r=r+Math.imul(Y,Xt)|0)+Math.imul(X,Pt)|0,b=b+Math.imul(X,Xt)|0,x=x+Math.imul(ue,Pe)|0,r=(r=r+Math.imul(ue,Be)|0)+Math.imul(Te,Pe)|0,b=b+Math.imul(Te,Be)|0,x=x+Math.imul(yt,ot)|0,r=(r=r+Math.imul(yt,At)|0)+Math.imul(Ne,ot)|0,b=b+Math.imul(Ne,At)|0,x=x+Math.imul(Ae,Ut)|0,r=(r=r+Math.imul(Ae,Ft)|0)+Math.imul(le,Ut)|0,b=b+Math.imul(le,Ft)|0;var St=(I+(x=x+Math.imul(q,ai)|0)|0)+((8191&(r=(r=r+Math.imul(q,ci)|0)+Math.imul(j,ai)|0))<<13)|0;I=((b=b+Math.imul(j,ci)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,x=Math.imul(st,Se),r=(r=Math.imul(st,V))+Math.imul(wt,Se)|0,b=Math.imul(wt,V),x=x+Math.imul(it,Ee)|0,r=(r=r+Math.imul(it,et)|0)+Math.imul(ft,Ee)|0,b=b+Math.imul(ft,et)|0,x=x+Math.imul(Me,Pt)|0,r=(r=r+Math.imul(Me,Xt)|0)+Math.imul(ze,Pt)|0,b=b+Math.imul(ze,Xt)|0,x=x+Math.imul(Y,Pe)|0,r=(r=r+Math.imul(Y,Be)|0)+Math.imul(X,Pe)|0,b=b+Math.imul(X,Be)|0,x=x+Math.imul(ue,ot)|0,r=(r=r+Math.imul(ue,At)|0)+Math.imul(Te,ot)|0,b=b+Math.imul(Te,At)|0,x=x+Math.imul(yt,Ut)|0,r=(r=r+Math.imul(yt,Ft)|0)+Math.imul(Ne,Ut)|0,b=b+Math.imul(Ne,Ft)|0;var Rt=(I+(x=x+Math.imul(Ae,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Ae,ci)|0)+Math.imul(le,ai)|0))<<13)|0;I=((b=b+Math.imul(le,ci)|0)+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,x=Math.imul(st,Ee),r=(r=Math.imul(st,et))+Math.imul(wt,Ee)|0,b=Math.imul(wt,et),x=x+Math.imul(it,Pt)|0,r=(r=r+Math.imul(it,Xt)|0)+Math.imul(ft,Pt)|0,b=b+Math.imul(ft,Xt)|0,x=x+Math.imul(Me,Pe)|0,r=(r=r+Math.imul(Me,Be)|0)+Math.imul(ze,Pe)|0,b=b+Math.imul(ze,Be)|0,x=x+Math.imul(Y,ot)|0,r=(r=r+Math.imul(Y,At)|0)+Math.imul(X,ot)|0,b=b+Math.imul(X,At)|0,x=x+Math.imul(ue,Ut)|0,r=(r=r+Math.imul(ue,Ft)|0)+Math.imul(Te,Ut)|0,b=b+Math.imul(Te,Ft)|0;var yi=(I+(x=x+Math.imul(yt,ai)|0)|0)+((8191&(r=(r=r+Math.imul(yt,ci)|0)+Math.imul(Ne,ai)|0))<<13)|0;I=((b=b+Math.imul(Ne,ci)|0)+(r>>>13)|0)+(yi>>>26)|0,yi&=67108863,x=Math.imul(st,Pt),r=(r=Math.imul(st,Xt))+Math.imul(wt,Pt)|0,b=Math.imul(wt,Xt),x=x+Math.imul(it,Pe)|0,r=(r=r+Math.imul(it,Be)|0)+Math.imul(ft,Pe)|0,b=b+Math.imul(ft,Be)|0,x=x+Math.imul(Me,ot)|0,r=(r=r+Math.imul(Me,At)|0)+Math.imul(ze,ot)|0,b=b+Math.imul(ze,At)|0,x=x+Math.imul(Y,Ut)|0,r=(r=r+Math.imul(Y,Ft)|0)+Math.imul(X,Ut)|0,b=b+Math.imul(X,Ft)|0;var Ri=(I+(x=x+Math.imul(ue,ai)|0)|0)+((8191&(r=(r=r+Math.imul(ue,ci)|0)+Math.imul(Te,ai)|0))<<13)|0;I=((b=b+Math.imul(Te,ci)|0)+(r>>>13)|0)+(Ri>>>26)|0,Ri&=67108863,x=Math.imul(st,Pe),r=(r=Math.imul(st,Be))+Math.imul(wt,Pe)|0,b=Math.imul(wt,Be),x=x+Math.imul(it,ot)|0,r=(r=r+Math.imul(it,At)|0)+Math.imul(ft,ot)|0,b=b+Math.imul(ft,At)|0,x=x+Math.imul(Me,Ut)|0,r=(r=r+Math.imul(Me,Ft)|0)+Math.imul(ze,Ut)|0,b=b+Math.imul(ze,Ft)|0;var Ii=(I+(x=x+Math.imul(Y,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Y,ci)|0)+Math.imul(X,ai)|0))<<13)|0;I=((b=b+Math.imul(X,ci)|0)+(r>>>13)|0)+(Ii>>>26)|0,Ii&=67108863,x=Math.imul(st,ot),r=(r=Math.imul(st,At))+Math.imul(wt,ot)|0,b=Math.imul(wt,At),x=x+Math.imul(it,Ut)|0,r=(r=r+Math.imul(it,Ft)|0)+Math.imul(ft,Ut)|0,b=b+Math.imul(ft,Ft)|0;var Ki=(I+(x=x+Math.imul(Me,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Me,ci)|0)+Math.imul(ze,ai)|0))<<13)|0;I=((b=b+Math.imul(ze,ci)|0)+(r>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,x=Math.imul(st,Ut),r=(r=Math.imul(st,Ft))+Math.imul(wt,Ut)|0,b=Math.imul(wt,Ft);var at=(I+(x=x+Math.imul(it,ai)|0)|0)+((8191&(r=(r=r+Math.imul(it,ci)|0)+Math.imul(ft,ai)|0))<<13)|0;I=((b=b+Math.imul(ft,ci)|0)+(r>>>13)|0)+(at>>>26)|0,at&=67108863;var Qt=(I+(x=Math.imul(st,ai))|0)+((8191&(r=(r=Math.imul(st,ci))+Math.imul(wt,ai)|0))<<13)|0;return I=((b=Math.imul(wt,ci))+(r>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,L[0]=rn,L[1]=Vi,L[2]=Di,L[3]=Xi,L[4]=Ke,L[5]=mt,L[6]=be,L[7]=qe,L[8]=vt,L[9]=me,L[10]=$e,L[11]=St,L[12]=Rt,L[13]=yi,L[14]=Ri,L[15]=Ii,L[16]=Ki,L[17]=at,L[18]=Qt,0!==I&&(L[19]=I,p.length++),p};function G(y,i,a){return(new W).mulp(y,i,a)}function W(y,i){this.x=y,this.y=i}Math.imul||(w=D),s.prototype.mulTo=function(i,a){var p,u=this.length+i.length;return p=10===this.length&&10===i.length?w(this,i,a):u<63?D(this,i,a):u<1024?function(y,i,a){a.negative=i.negative^y.negative,a.length=y.length+i.length;for(var p=0,u=0,_=0;_>>26)|0)>>>26,L&=67108863}a.words[_]=I,p=L,L=u}return 0!==p?a.words[_]=p:a.length--,a.strip()}(this,i,a):G(this,i,a),p},W.prototype.makeRBT=function(i){for(var a=new Array(i),p=s.prototype._countBits(i)-1,u=0;u>=1;return u},W.prototype.permute=function(i,a,p,u,_,L){for(var I=0;I>>=1)_++;return 1<<_+1+u},W.prototype.conjugate=function(i,a,p){if(!(p<=1))for(var u=0;u

>>=13),_>>>=13;for(L=2*a;L>=26,a+=u/67108864|0,a+=_>>>26,this.words[p]=67108863&_}return 0!==a&&(this.words[p]=a,this.length++),this},s.prototype.muln=function(i){return this.clone().imuln(i)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(i){var a=function(y){for(var i=new Array(y.bitLength()),a=0;a>>u}return i}(i);if(0===a.length)return new s(1);for(var p=this,u=0;u=0);var _,a=i%26,p=(i-a)/26,u=67108863>>>26-a<<26-a;if(0!==a){var L=0;for(_=0;_>>26-a}L&&(this.words[_]=L,this.length++)}if(0!==p){for(_=this.length-1;_>=0;_--)this.words[_+p]=this.words[_];for(_=0;_=0),u=a?(a-a%26)/26:0;var _=i%26,L=Math.min((i-_)/26,this.length),I=67108863^67108863>>>_<<_,x=p;if(u-=L,u=Math.max(0,u),x){for(var r=0;rL)for(this.length-=L,r=0;r=0&&(0!==b||r>=u);r--){var J=0|this.words[r];this.words[r]=b<<26-_|J>>>_,b=J&I}return x&&0!==b&&(x.words[x.length++]=b),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(i,a,p){return v(0===this.negative),this.iushrn(i,a,p)},s.prototype.shln=function(i){return this.clone().ishln(i)},s.prototype.ushln=function(i){return this.clone().iushln(i)},s.prototype.shrn=function(i){return this.clone().ishrn(i)},s.prototype.ushrn=function(i){return this.clone().iushrn(i)},s.prototype.testn=function(i){v("number"==typeof i&&i>=0);var a=i%26,p=(i-a)/26;return!(this.length<=p||!(this.words[p]&1<=0);var a=i%26,p=(i-a)/26;return v(0===this.negative,"imaskn works only with positive numbers"),this.length<=p?this:(0!==a&&p++,this.length=Math.min(p,this.length),0!==a&&(this.words[this.length-1]&=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},s.prototype.isubn=function(i){if(v("number"==typeof i),v(i<67108864),i<0)return this.iaddn(-i);if(0!==this.negative)return this.negative=0,this.iaddn(i),this.negative=1,this;if(this.words[0]-=i,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(x/67108864|0),this.words[_+p]=67108863&L}for(;_>26,this.words[_+p]=67108863&L;if(0===I)return this.strip();for(v(-1===I),I=0,_=0;_>26,this.words[_]=67108863&L;return this.negative=1,this.strip()},s.prototype._wordDiv=function(i,a){var p,u=this.clone(),_=i,L=0|_.words[_.length-1];0!=(p=26-this._countBits(L))&&(_=_.ushln(p),u.iushln(p),L=0|_.words[_.length-1]);var r,x=u.length-_.length;if("mod"!==a){(r=new s(null)).length=x+1,r.words=new Array(r.length);for(var b=0;b=0;F--){var B=67108864*(0|u.words[_.length+F])+(0|u.words[_.length+F-1]);for(B=Math.min(B/L|0,67108863),u._ishlnsubmul(_,B,F);0!==u.negative;)B--,u.negative=0,u._ishlnsubmul(_,1,F),u.isZero()||(u.negative^=1);r&&(r.words[F]=B)}return r&&r.strip(),u.strip(),"div"!==a&&0!==p&&u.iushrn(p),{div:r||null,mod:u}},s.prototype.divmod=function(i,a,p){return v(!i.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===i.negative?(L=this.neg().divmod(i,a),"mod"!==a&&(u=L.div.neg()),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.iadd(i)),{div:u,mod:_}):0===this.negative&&0!==i.negative?(L=this.divmod(i.neg(),a),"mod"!==a&&(u=L.div.neg()),{div:u,mod:L.mod}):0!=(this.negative&i.negative)?(L=this.neg().divmod(i.neg(),a),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.isub(i)),{div:L.div,mod:_}):i.length>this.length||this.cmp(i)<0?{div:new s(0),mod:this}:1===i.length?"div"===a?{div:this.divn(i.words[0]),mod:null}:"mod"===a?{div:null,mod:new s(this.modn(i.words[0]))}:{div:this.divn(i.words[0]),mod:new s(this.modn(i.words[0]))}:this._wordDiv(i,a);var u,_,L},s.prototype.div=function(i){return this.divmod(i,"div",!1).div},s.prototype.mod=function(i){return this.divmod(i,"mod",!1).mod},s.prototype.umod=function(i){return this.divmod(i,"mod",!0).mod},s.prototype.divRound=function(i){var a=this.divmod(i);if(a.mod.isZero())return a.div;var p=0!==a.div.negative?a.mod.isub(i):a.mod,u=i.ushrn(1),_=i.andln(1),L=p.cmp(u);return L<0||1===_&&0===L?a.div:0!==a.div.negative?a.div.isubn(1):a.div.iaddn(1)},s.prototype.modn=function(i){v(i<=67108863);for(var a=(1<<26)%i,p=0,u=this.length-1;u>=0;u--)p=(a*p+(0|this.words[u]))%i;return p},s.prototype.idivn=function(i){v(i<=67108863);for(var a=0,p=this.length-1;p>=0;p--){var u=(0|this.words[p])+67108864*a;this.words[p]=u/i|0,a=u%i}return this.strip()},s.prototype.divn=function(i){return this.clone().idivn(i)},s.prototype.egcd=function(i){v(0===i.negative),v(!i.isZero());var a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=new s(0),I=new s(1),x=0;a.isEven()&&p.isEven();)a.iushrn(1),p.iushrn(1),++x;for(var r=p.clone(),b=a.clone();!a.isZero();){for(var J=0,F=1;0==(a.words[0]&F)&&J<26;++J,F<<=1);if(J>0)for(a.iushrn(J);J-- >0;)(u.isOdd()||_.isOdd())&&(u.iadd(r),_.isub(b)),u.iushrn(1),_.iushrn(1);for(var B=0,te=1;0==(p.words[0]&te)&&B<26;++B,te<<=1);if(B>0)for(p.iushrn(B);B-- >0;)(L.isOdd()||I.isOdd())&&(L.iadd(r),I.isub(b)),L.iushrn(1),I.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(L),_.isub(I)):(p.isub(a),L.isub(u),I.isub(_))}return{a:L,b:I,gcd:p.iushln(x)}},s.prototype._invmp=function(i){v(0===i.negative),v(!i.isZero());var J,a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=p.clone();a.cmpn(1)>0&&p.cmpn(1)>0;){for(var I=0,x=1;0==(a.words[0]&x)&&I<26;++I,x<<=1);if(I>0)for(a.iushrn(I);I-- >0;)u.isOdd()&&u.iadd(L),u.iushrn(1);for(var r=0,b=1;0==(p.words[0]&b)&&r<26;++r,b<<=1);if(r>0)for(p.iushrn(r);r-- >0;)_.isOdd()&&_.iadd(L),_.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(_)):(p.isub(a),_.isub(u))}return(J=0===a.cmpn(1)?u:_).cmpn(0)<0&&J.iadd(i),J},s.prototype.gcd=function(i){if(this.isZero())return i.abs();if(i.isZero())return this.abs();var a=this.clone(),p=i.clone();a.negative=0,p.negative=0;for(var u=0;a.isEven()&&p.isEven();u++)a.iushrn(1),p.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;p.isEven();)p.iushrn(1);var _=a.cmp(p);if(_<0){var L=a;a=p,p=L}else if(0===_||0===p.cmpn(1))break;a.isub(p)}return p.iushln(u)},s.prototype.invm=function(i){return this.egcd(i).a.umod(i)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(i){return this.words[0]&i},s.prototype.bincn=function(i){v("number"==typeof i);var a=i%26,p=(i-a)/26,u=1<>>26,this.words[L]=I&=67108863}return 0!==_&&(this.words[L]=_,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(i){var p,a=i<0;if(0!==this.negative&&!a)return-1;if(0===this.negative&&a)return 1;if(this.strip(),this.length>1)p=1;else{a&&(i=-i),v(i<=67108863,"Number is too big");var u=0|this.words[0];p=u===i?0:ui.length)return 1;if(this.length=0;p--){var u=0|this.words[p],_=0|i.words[p];if(u!==_){u<_?a=-1:u>_&&(a=1);break}}return a},s.prototype.gtn=function(i){return 1===this.cmpn(i)},s.prototype.gt=function(i){return 1===this.cmp(i)},s.prototype.gten=function(i){return this.cmpn(i)>=0},s.prototype.gte=function(i){return this.cmp(i)>=0},s.prototype.ltn=function(i){return-1===this.cmpn(i)},s.prototype.lt=function(i){return-1===this.cmp(i)},s.prototype.lten=function(i){return this.cmpn(i)<=0},s.prototype.lte=function(i){return this.cmp(i)<=0},s.prototype.eqn=function(i){return 0===this.cmpn(i)},s.prototype.eq=function(i){return 0===this.cmp(i)},s.red=function(i){return new se(i)},s.prototype.toRed=function(i){return v(!this.red,"Already a number in reduction context"),v(0===this.negative,"red works only with positives"),i.convertTo(this)._forceRed(i)},s.prototype.fromRed=function(){return v(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(i){return this.red=i,this},s.prototype.forceRed=function(i){return v(!this.red,"Already a number in reduction context"),this._forceRed(i)},s.prototype.redAdd=function(i){return v(this.red,"redAdd works only with red numbers"),this.red.add(this,i)},s.prototype.redIAdd=function(i){return v(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,i)},s.prototype.redSub=function(i){return v(this.red,"redSub works only with red numbers"),this.red.sub(this,i)},s.prototype.redISub=function(i){return v(this.red,"redISub works only with red numbers"),this.red.isub(this,i)},s.prototype.redShl=function(i){return v(this.red,"redShl works only with red numbers"),this.red.shl(this,i)},s.prototype.redMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.mul(this,i)},s.prototype.redIMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.imul(this,i)},s.prototype.redSqr=function(){return v(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return v(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return v(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return v(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return v(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(i){return v(this.red&&!i.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,i)};var ee={k256:null,p224:null,p192:null,p25519:null};function ie(y,i){this.name=y,this.p=new s(i,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _e(){ie.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function fe(){ie.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function de(){ie.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function ne(){ie.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function se(y){if("string"==typeof y){var i=s._prime(y);this.m=i.p,this.prime=i}else v(y.gtn(1),"modulus must be greater than 1"),this.m=y,this.prime=null}function oe(y){se.call(this,y),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}ie.prototype._tmp=function(){var i=new s(null);return i.words=new Array(Math.ceil(this.n/13)),i},ie.prototype.ireduce=function(i){var p,a=i;do{this.split(a,this.tmp),p=(a=(a=this.imulK(a)).iadd(this.tmp)).bitLength()}while(p>this.n);var u=p0?a.isub(this.p):void 0!==a.strip?a.strip():a._strip(),a},ie.prototype.split=function(i,a){i.iushrn(this.n,0,a)},ie.prototype.imulK=function(i){return i.imul(this.k)},M(_e,ie),_e.prototype.split=function(i,a){for(var p=4194303,u=Math.min(i.length,9),_=0;_>>22,L=I}i.words[_-10]=L>>>=22,i.length-=0===L&&i.length>10?10:9},_e.prototype.imulK=function(i){i.words[i.length]=0,i.words[i.length+1]=0,i.length+=2;for(var a=0,p=0;p>>=26,i.words[p]=_,a=u}return 0!==a&&(i.words[i.length++]=a),i},s._prime=function(i){if(ee[i])return ee[i];var a;if("k256"===i)a=new _e;else if("p224"===i)a=new fe;else if("p192"===i)a=new de;else{if("p25519"!==i)throw new Error("Unknown prime "+i);a=new ne}return ee[i]=a,a},se.prototype._verify1=function(i){v(0===i.negative,"red works only with positives"),v(i.red,"red works only with red numbers")},se.prototype._verify2=function(i,a){v(0==(i.negative|a.negative),"red works only with positives"),v(i.red&&i.red===a.red,"red works only with red numbers")},se.prototype.imod=function(i){return this.prime?this.prime.ireduce(i)._forceRed(this):i.umod(this.m)._forceRed(this)},se.prototype.neg=function(i){return i.isZero()?i.clone():this.m.sub(i)._forceRed(this)},se.prototype.add=function(i,a){this._verify2(i,a);var p=i.add(a);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},se.prototype.iadd=function(i,a){this._verify2(i,a);var p=i.iadd(a);return p.cmp(this.m)>=0&&p.isub(this.m),p},se.prototype.sub=function(i,a){this._verify2(i,a);var p=i.sub(a);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},se.prototype.isub=function(i,a){this._verify2(i,a);var p=i.isub(a);return p.cmpn(0)<0&&p.iadd(this.m),p},se.prototype.shl=function(i,a){return this._verify1(i),this.imod(i.ushln(a))},se.prototype.imul=function(i,a){return this._verify2(i,a),this.imod(i.imul(a))},se.prototype.mul=function(i,a){return this._verify2(i,a),this.imod(i.mul(a))},se.prototype.isqr=function(i){return this.imul(i,i.clone())},se.prototype.sqr=function(i){return this.mul(i,i)},se.prototype.sqrt=function(i){if(i.isZero())return i.clone();var a=this.m.andln(3);if(v(a%2==1),3===a){var p=this.m.add(new s(1)).iushrn(2);return this.pow(i,p)}for(var u=this.m.subn(1),_=0;!u.isZero()&&0===u.andln(1);)_++,u.iushrn(1);v(!u.isZero());var L=new s(1).toRed(this),I=L.redNeg(),x=this.m.subn(1).iushrn(1),r=this.m.bitLength();for(r=new s(2*r*r).toRed(this);0!==this.pow(r,x).cmp(I);)r.redIAdd(I);for(var b=this.pow(r,u),J=this.pow(i,u.addn(1).iushrn(1)),F=this.pow(i,u),B=_;0!==F.cmp(L);){for(var te=F,xe=0;0!==te.cmp(L);xe++)te=te.redSqr();v(xe=0;_--){for(var b=a.words[_],J=r-1;J>=0;J--){var F=b>>J&1;L!==u[0]&&(L=this.sqr(L)),0!==F||0!==I?(I<<=1,I|=F,(4==++x||0===_&&0===J)&&(L=this.mul(L,u[I]),x=0,I=0)):x=0}r=26}return L},se.prototype.convertTo=function(i){var a=i.umod(this.m);return a===i?a.clone():a},se.prototype.convertFrom=function(i){var a=i.clone();return a.red=null,a},s.mont=function(i){return new oe(i)},M(oe,se),oe.prototype.convertTo=function(i){return this.imod(i.ushln(this.shift))},oe.prototype.convertFrom=function(i){var a=this.imod(i.mul(this.rinv));return a.red=null,a},oe.prototype.imul=function(i,a){if(i.isZero()||a.isZero())return i.words[0]=0,i.length=1,i;var p=i.imul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.mul=function(i,a){if(i.isZero()||a.isZero())return new s(0)._forceRed(this);var p=i.mul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.invm=function(i){return this.imod(i._invmp(this.m).mul(this.r2))._forceRed(this)}}(Ue=m.nmd(Ue),this)},8419:Ue=>{"use strict";Ue.exports=function(m){for(var e=[],t=m.length,v=0;v=55296&&M<=56319&&t>v+1){var s=m.charCodeAt(v+1);s>=56320&&s<=57343&&(M=1024*(M-55296)+s-56320+65536,v+=1)}M<128?e.push(M):M<2048?(e.push(M>>6|192),e.push(63&M|128)):M<55296||M>=57344&&M<65536?(e.push(M>>12|224),e.push(M>>6&63|128),e.push(63&M|128)):M>=65536&&M<=1114111?(e.push(M>>18|240),e.push(M>>12&63|128),e.push(M>>6&63|128),e.push(63&M|128)):e.push(239,191,189)}return new Uint8Array(e).buffer}},9069:Ue=>{"use strict";var e,K="object"==typeof Reflect?Reflect:null,m=K&&"function"==typeof K.apply?K.apply:function(ie,_e,fe){return Function.prototype.apply.call(ie,_e,fe)};e=K&&"function"==typeof K.ownKeys?K.ownKeys:Object.getOwnPropertySymbols?function(ie){return Object.getOwnPropertyNames(ie).concat(Object.getOwnPropertySymbols(ie))}:function(ie){return Object.getOwnPropertyNames(ie)};var v=Number.isNaN||function(ie){return ie!=ie};function M(){M.init.call(this)}Ue.exports=M,Ue.exports.once=function(ee,ie){return new Promise(function(_e,fe){function de(se){ee.removeListener(ie,ne),fe(se)}function ne(){"function"==typeof ee.removeListener&&ee.removeListener("error",de),_e([].slice.call(arguments))}W(ee,ie,ne,{once:!0}),"error"!==ie&&function(ee,ie,_e){"function"==typeof ee.on&&W(ee,"error",ie,{once:!0})}(ee,de)})},M.EventEmitter=M,M.prototype._events=void 0,M.prototype._eventsCount=0,M.prototype._maxListeners=void 0;var s=10;function C(ee){if("function"!=typeof ee)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof ee)}function c(ee){return void 0===ee._maxListeners?M.defaultMaxListeners:ee._maxListeners}function P(ee,ie,_e,fe){var de,ne,se;if(C(_e),void 0===(ne=ee._events)?(ne=ee._events=Object.create(null),ee._eventsCount=0):(void 0!==ne.newListener&&(ee.emit("newListener",ie,_e.listener?_e.listener:_e),ne=ee._events),se=ne[ie]),void 0===se)se=ne[ie]=_e,++ee._eventsCount;else if("function"==typeof se?se=ne[ie]=fe?[_e,se]:[se,_e]:fe?se.unshift(_e):se.push(_e),(de=c(ee))>0&&se.length>de&&!se.warned){se.warned=!0;var oe=new Error("Possible EventEmitter memory leak detected. "+se.length+" "+String(ie)+" listeners added. Use emitter.setMaxListeners() to increase limit");oe.name="MaxListenersExceededWarning",oe.emitter=ee,oe.type=ie,oe.count=se.length,function(ee){console&&console.warn&&console.warn(ee)}(oe)}return ee}function o(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function O(ee,ie,_e){var fe={fired:!1,wrapFn:void 0,target:ee,type:ie,listener:_e},de=o.bind(fe);return de.listener=_e,fe.wrapFn=de,de}function T(ee,ie,_e){var fe=ee._events;if(void 0===fe)return[];var de=fe[ie];return void 0===de?[]:"function"==typeof de?_e?[de.listener||de]:[de]:_e?function(ee){for(var ie=new Array(ee.length),_e=0;_e0&&(se=_e[0]),se instanceof Error)throw se;var oe=new Error("Unhandled error."+(se?" ("+se.message+")":""));throw oe.context=se,oe}var y=ne[ie];if(void 0===y)return!1;if("function"==typeof y)m(y,this,_e);else{var i=y.length,a=S(y,i);for(fe=0;fe=0;se--)if(fe[se]===_e||fe[se].listener===_e){oe=fe[se].listener,ne=se;break}if(ne<0)return this;0===ne?fe.shift():function(ee,ie){for(;ie+1=0;de--)this.removeListener(ie,_e[de]);return this},M.prototype.listeners=function(ie){return T(this,ie,!0)},M.prototype.rawListeners=function(ie){return T(this,ie,!1)},M.listenerCount=function(ee,ie){return"function"==typeof ee.listenerCount?ee.listenerCount(ie):R.call(ee,ie)},M.prototype.listenerCount=R,M.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},347:(Ue,K,m)=>{var e=m(3502).Buffer,t=m(8095);Ue.exports=function(M,s,C,c){if(e.isBuffer(M)||(M=e.from(M,"binary")),s&&(e.isBuffer(s)||(s=e.from(s,"binary")),8!==s.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var P=C/8,o=e.alloc(P),O=e.alloc(c||0),T=e.alloc(0);P>0||c>0;){var R=new t;R.update(T),R.update(M),s&&R.update(s),T=R.digest();var S=0;if(P>0){var D=o.length-P;S=Math.min(P,T.length),T.copy(o,D,0,S),P-=S}if(S0){var w=O.length-c,U=Math.min(c,T.length-S);T.copy(O,w,S,S+U),c-=U}}return T.fill(0),{key:o,iv:O}}},9650:(Ue,K,m)=>{"use strict";var e=m(8444).Buffer,t=m(5685).Transform;function s(C){t.call(this),this._block=e.allocUnsafe(C),this._blockSize=C,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}m(3894)(s,t),s.prototype._transform=function(C,c,P){var o=null;try{this.update(C,c)}catch(O){o=O}P(o)},s.prototype._flush=function(C){var c=null;try{this.push(this.digest())}catch(P){c=P}C(c)},s.prototype.update=function(C,c){if(function(C,c){if(!e.isBuffer(C)&&"string"!=typeof C)throw new TypeError("Data must be a string or a buffer")}(C),this._finalized)throw new Error("Digest already called");e.isBuffer(C)||(C=e.from(C,c));for(var P=this._block,o=0;this._blockOffset+C.length-o>=this._blockSize;){for(var O=this._blockOffset;O0;++T)this._length[T]+=R,(R=this._length[T]/4294967296|0)>0&&(this._length[T]-=4294967296*R);return this},s.prototype._update=function(){throw new Error("_update is not implemented")},s.prototype.digest=function(C){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var c=this._digest();void 0!==C&&(c=c.toString(C)),this._block.fill(0),this._blockOffset=0;for(var P=0;P<4;++P)this._length[P]=0;return c},s.prototype._digest=function(){throw new Error("_digest is not implemented")},Ue.exports=s},8444:(Ue,K,m)=>{var e=m(3172),t=e.Buffer;function v(s,C){for(var c in s)C[c]=s[c]}function M(s,C,c){return t(s,C,c)}t.from&&t.alloc&&t.allocUnsafe&&t.allocUnsafeSlow?Ue.exports=e:(v(e,K),K.Buffer=M),M.prototype=Object.create(t.prototype),v(t,M),M.from=function(s,C,c){if("number"==typeof s)throw new TypeError("Argument must not be a number");return t(s,C,c)},M.alloc=function(s,C,c){if("number"!=typeof s)throw new TypeError("Argument must be a number");var P=t(s);return void 0!==C?"string"==typeof c?P.fill(C,c):P.fill(C):P.fill(0),P},M.allocUnsafe=function(s){if("number"!=typeof s)throw new TypeError("Argument must be a number");return t(s)},M.allocUnsafeSlow=function(s){if("number"!=typeof s)throw new TypeError("Argument must be a number");return e.SlowBuffer(s)}},7084:(Ue,K,m)=>{var e=K;e.utils=m(9299),e.common=m(3800),e.sha=m(4962),e.ripemd=m(9458),e.hmac=m(2194),e.sha1=e.sha.sha1,e.sha256=e.sha.sha256,e.sha224=e.sha.sha224,e.sha384=e.sha.sha384,e.sha512=e.sha.sha512,e.ripemd160=e.ripemd.ripemd160},3800:(Ue,K,m)=>{"use strict";var e=m(9299),t=m(2391);function v(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}K.BlockHash=v,v.prototype.update=function(s,C){if(s=e.toArray(s,C),this.pending=this.pending?this.pending.concat(s):s,this.pendingTotal+=s.length,this.pending.length>=this._delta8){var c=(s=this.pending).length%this._delta8;this.pending=s.slice(s.length-c,s.length),0===this.pending.length&&(this.pending=null),s=e.join32(s,0,s.length-c,this.endian);for(var P=0;P>>24&255,P[o++]=s>>>16&255,P[o++]=s>>>8&255,P[o++]=255&s}else for(P[o++]=255&s,P[o++]=s>>>8&255,P[o++]=s>>>16&255,P[o++]=s>>>24&255,P[o++]=0,P[o++]=0,P[o++]=0,P[o++]=0,O=8;O{"use strict";var e=m(9299),t=m(2391);function v(M,s,C){if(!(this instanceof v))return new v(M,s,C);this.Hash=M,this.blockSize=M.blockSize/8,this.outSize=M.outSize/8,this.inner=null,this.outer=null,this._init(e.toArray(s,C))}Ue.exports=v,v.prototype._init=function(s){s.length>this.blockSize&&(s=(new this.Hash).update(s).digest()),t(s.length<=this.blockSize);for(var C=s.length;C{"use strict";var e=m(9299),t=m(3800),v=e.rotl32,M=e.sum32,s=e.sum32_3,C=e.sum32_4,c=t.BlockHash;function P(){if(!(this instanceof P))return new P;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function o(U,G,W,ee){return U<=15?G^W^ee:U<=31?G&W|~G&ee:U<=47?(G|~W)^ee:U<=63?G&ee|W&~ee:G^(W|~ee)}function T(U){return U<=15?1352829926:U<=31?1548603684:U<=47?1836072691:U<=63?2053994217:0}e.inherits(P,c),K.ripemd160=P,P.blockSize=512,P.outSize=160,P.hmacStrength=192,P.padLength=64,P.prototype._update=function(G,W){for(var ee=this.h[0],ie=this.h[1],_e=this.h[2],fe=this.h[3],de=this.h[4],ne=ee,se=ie,oe=_e,y=fe,i=de,a=0;a<80;a++){var p=M(v(C(ee,o(a,ie,_e,fe),G[R[a]+W],(U=a)<=15?0:U<=31?1518500249:U<=47?1859775393:U<=63?2400959708:2840853838),D[a]),de);ee=de,de=fe,fe=v(_e,10),_e=ie,ie=p,p=M(v(C(ne,o(79-a,se,oe,y),G[S[a]+W],T(a)),w[a]),i),ne=i,i=y,y=v(oe,10),oe=se,se=p}var U;p=s(this.h[1],_e,y),this.h[1]=s(this.h[2],fe,i),this.h[2]=s(this.h[3],de,ne),this.h[3]=s(this.h[4],ee,se),this.h[4]=s(this.h[0],ie,oe),this.h[0]=p},P.prototype._digest=function(G){return"hex"===G?e.toHex32(this.h,"little"):e.split32(this.h,"little")};var R=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],S=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],D=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],w=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},4962:(Ue,K,m)=>{"use strict";K.sha1=m(9007),K.sha224=m(55),K.sha256=m(9342),K.sha384=m(8634),K.sha512=m(39)},9007:(Ue,K,m)=>{"use strict";var e=m(9299),t=m(3800),v=m(3113),M=e.rotl32,s=e.sum32,C=e.sum32_5,c=v.ft_1,P=t.BlockHash,o=[1518500249,1859775393,2400959708,3395469782];function O(){if(!(this instanceof O))return new O;P.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}e.inherits(O,P),Ue.exports=O,O.blockSize=512,O.outSize=160,O.hmacStrength=80,O.padLength=64,O.prototype._update=function(R,S){for(var D=this.W,w=0;w<16;w++)D[w]=R[S+w];for(;w{"use strict";var e=m(9299),t=m(9342);function v(){if(!(this instanceof v))return new v;t.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}e.inherits(v,t),Ue.exports=v,v.blockSize=512,v.outSize=224,v.hmacStrength=192,v.padLength=64,v.prototype._digest=function(s){return"hex"===s?e.toHex32(this.h.slice(0,7),"big"):e.split32(this.h.slice(0,7),"big")}},9342:(Ue,K,m)=>{"use strict";var e=m(9299),t=m(3800),v=m(3113),M=m(2391),s=e.sum32,C=e.sum32_4,c=e.sum32_5,P=v.ch32,o=v.maj32,O=v.s0_256,T=v.s1_256,R=v.g0_256,S=v.g1_256,D=t.BlockHash,w=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function U(){if(!(this instanceof U))return new U;D.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=w,this.W=new Array(64)}e.inherits(U,D),Ue.exports=U,U.blockSize=512,U.outSize=256,U.hmacStrength=192,U.padLength=64,U.prototype._update=function(W,ee){for(var ie=this.W,_e=0;_e<16;_e++)ie[_e]=W[ee+_e];for(;_e{"use strict";var e=m(9299),t=m(39);function v(){if(!(this instanceof v))return new v;t.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}e.inherits(v,t),Ue.exports=v,v.blockSize=1024,v.outSize=384,v.hmacStrength=192,v.padLength=128,v.prototype._digest=function(s){return"hex"===s?e.toHex32(this.h.slice(0,12),"big"):e.split32(this.h.slice(0,12),"big")}},39:(Ue,K,m)=>{"use strict";var e=m(9299),t=m(3800),v=m(2391),M=e.rotr64_hi,s=e.rotr64_lo,C=e.shr64_hi,c=e.shr64_lo,P=e.sum64,o=e.sum64_hi,O=e.sum64_lo,T=e.sum64_4_hi,R=e.sum64_4_lo,S=e.sum64_5_hi,D=e.sum64_5_lo,w=t.BlockHash,U=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function G(){if(!(this instanceof G))return new G;w.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=U,this.W=new Array(160)}function W(p,u,_,L,I){var x=p&_^~p&I;return x<0&&(x+=4294967296),x}function ee(p,u,_,L,I,x){var r=u&L^~u&x;return r<0&&(r+=4294967296),r}function ie(p,u,_,L,I){var x=p&_^p&I^_&I;return x<0&&(x+=4294967296),x}function _e(p,u,_,L,I,x){var r=u&L^u&x^L&x;return r<0&&(r+=4294967296),r}function fe(p,u){var x=M(p,u,28)^M(u,p,2)^M(u,p,7);return x<0&&(x+=4294967296),x}function de(p,u){var x=s(p,u,28)^s(u,p,2)^s(u,p,7);return x<0&&(x+=4294967296),x}function ne(p,u){var x=M(p,u,14)^M(p,u,18)^M(u,p,9);return x<0&&(x+=4294967296),x}function se(p,u){var x=s(p,u,14)^s(p,u,18)^s(u,p,9);return x<0&&(x+=4294967296),x}function oe(p,u){var x=M(p,u,1)^M(p,u,8)^C(p,u,7);return x<0&&(x+=4294967296),x}function y(p,u){var x=s(p,u,1)^s(p,u,8)^c(p,u,7);return x<0&&(x+=4294967296),x}function i(p,u){var x=M(p,u,19)^M(u,p,29)^C(p,u,6);return x<0&&(x+=4294967296),x}function a(p,u){var x=s(p,u,19)^s(u,p,29)^c(p,u,6);return x<0&&(x+=4294967296),x}e.inherits(G,w),Ue.exports=G,G.blockSize=1024,G.outSize=512,G.hmacStrength=192,G.padLength=128,G.prototype._prepareBlock=function(u,_){for(var L=this.W,I=0;I<32;I++)L[I]=u[_+I];for(;I{"use strict";var t=m(9299).rotr32;function M(T,R,S){return T&R^~T&S}function s(T,R,S){return T&R^T&S^R&S}function C(T,R,S){return T^R^S}K.ft_1=function(T,R,S,D){return 0===T?M(R,S,D):1===T||3===T?C(R,S,D):2===T?s(R,S,D):void 0},K.ch32=M,K.maj32=s,K.p32=C,K.s0_256=function(T){return t(T,2)^t(T,13)^t(T,22)},K.s1_256=function(T){return t(T,6)^t(T,11)^t(T,25)},K.g0_256=function(T){return t(T,7)^t(T,18)^T>>>3},K.g1_256=function(T){return t(T,17)^t(T,19)^T>>>10}},9299:(Ue,K,m)=>{"use strict";var e=m(2391),t=m(3894);function v(a,p){return!(55296!=(64512&a.charCodeAt(p))||p<0||p+1>=a.length)&&56320==(64512&a.charCodeAt(p+1))}function C(a){return(a>>>24|a>>>8&65280|a<<8&16711680|(255&a)<<24)>>>0}function P(a){return 1===a.length?"0"+a:a}function o(a){return 7===a.length?"0"+a:6===a.length?"00"+a:5===a.length?"000"+a:4===a.length?"0000"+a:3===a.length?"00000"+a:2===a.length?"000000"+a:1===a.length?"0000000"+a:a}K.inherits=t,K.toArray=function(a,p){if(Array.isArray(a))return a.slice();if(!a)return[];var u=[];if("string"==typeof a)if(p){if("hex"===p)for((a=a.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(a="0"+a),L=0;L>6|192,u[_++]=63&I|128):v(a,L)?(I=65536+((1023&I)<<10)+(1023&a.charCodeAt(++L)),u[_++]=I>>18|240,u[_++]=I>>12&63|128,u[_++]=I>>6&63|128,u[_++]=63&I|128):(u[_++]=I>>12|224,u[_++]=I>>6&63|128,u[_++]=63&I|128)}else for(L=0;L>>0;return I},K.split32=function(a,p){for(var u=new Array(4*a.length),_=0,L=0;_>>24,u[L+1]=I>>>16&255,u[L+2]=I>>>8&255,u[L+3]=255&I):(u[L+3]=I>>>24,u[L+2]=I>>>16&255,u[L+1]=I>>>8&255,u[L]=255&I)}return u},K.rotr32=function(a,p){return a>>>p|a<<32-p},K.rotl32=function(a,p){return a<>>32-p},K.sum32=function(a,p){return a+p>>>0},K.sum32_3=function(a,p,u){return a+p+u>>>0},K.sum32_4=function(a,p,u,_){return a+p+u+_>>>0},K.sum32_5=function(a,p,u,_,L){return a+p+u+_+L>>>0},K.sum64=function(a,p,u,_){var x=_+a[p+1]>>>0;a[p]=(x<_?1:0)+u+a[p]>>>0,a[p+1]=x},K.sum64_hi=function(a,p,u,_){return(p+_>>>0>>0},K.sum64_lo=function(a,p,u,_){return p+_>>>0},K.sum64_4_hi=function(a,p,u,_,L,I,x,r){var b=0,J=p;return b+=(J=J+_>>>0)>>0)>>0)>>0},K.sum64_4_lo=function(a,p,u,_,L,I,x,r){return p+_+I+r>>>0},K.sum64_5_hi=function(a,p,u,_,L,I,x,r,b,J){var F=0,B=p;return F+=(B=B+_>>>0)>>0)>>0)>>0)>>0},K.sum64_5_lo=function(a,p,u,_,L,I,x,r,b,J){return p+_+I+r+J>>>0},K.rotr64_hi=function(a,p,u){return(p<<32-u|a>>>u)>>>0},K.rotr64_lo=function(a,p,u){return(a<<32-u|p>>>u)>>>0},K.shr64_hi=function(a,p,u){return a>>>u},K.shr64_lo=function(a,p,u){return(a<<32-u|p>>>u)>>>0}},2438:(Ue,K,m)=>{"use strict";var e=m(7084),t=m(8195),v=m(2391);function M(s){if(!(this instanceof M))return new M(s);this.hash=s.hash,this.predResist=!!s.predResist,this.outLen=this.hash.outSize,this.minEntropy=s.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var C=t.toArray(s.entropy,s.entropyEnc||"hex"),c=t.toArray(s.nonce,s.nonceEnc||"hex"),P=t.toArray(s.pers,s.persEnc||"hex");v(C.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(C,c,P)}Ue.exports=M,M.prototype._init=function(C,c,P){var o=C.concat(c).concat(P);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var O=0;O=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(C.concat(P||[])),this._reseed=1},M.prototype.generate=function(C,c,P,o){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof c&&(o=P,P=c,c=null),P&&(P=t.toArray(P,o||"hex"),this._update(P));for(var O=[];O.length{K.read=function(m,e,t,v,M){var s,C,c=8*M-v-1,P=(1<>1,O=-7,T=t?M-1:0,R=t?-1:1,S=m[e+T];for(T+=R,s=S&(1<<-O)-1,S>>=-O,O+=c;O>0;s=256*s+m[e+T],T+=R,O-=8);for(C=s&(1<<-O)-1,s>>=-O,O+=v;O>0;C=256*C+m[e+T],T+=R,O-=8);if(0===s)s=1-o;else{if(s===P)return C?NaN:1/0*(S?-1:1);C+=Math.pow(2,v),s-=o}return(S?-1:1)*C*Math.pow(2,s-v)},K.write=function(m,e,t,v,M,s){var C,c,P,o=8*s-M-1,O=(1<>1,R=23===M?Math.pow(2,-24)-Math.pow(2,-77):0,S=v?0:s-1,D=v?1:-1,w=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(c=isNaN(e)?1:0,C=O):(C=Math.floor(Math.log(e)/Math.LN2),e*(P=Math.pow(2,-C))<1&&(C--,P*=2),(e+=C+T>=1?R/P:R*Math.pow(2,1-T))*P>=2&&(C++,P/=2),C+T>=O?(c=0,C=O):C+T>=1?(c=(e*P-1)*Math.pow(2,M),C+=T):(c=e*Math.pow(2,T-1)*Math.pow(2,M),C=0));M>=8;m[t+S]=255&c,S+=D,c/=256,M-=8);for(C=C<0;m[t+S]=255&C,S+=D,C/=256,o-=8);m[t+S-D]|=128*w}},3894:Ue=>{Ue.exports="function"==typeof Object.create?function(m,e){e&&(m.super_=e,m.prototype=Object.create(e.prototype,{constructor:{value:m,enumerable:!1,writable:!0,configurable:!0}}))}:function(m,e){if(e){m.super_=e;var t=function(){};t.prototype=e.prototype,m.prototype=new t,m.prototype.constructor=m}}},717:(Ue,K,m)=>{"use strict";var e=m(623);function t(v){return!0===e(v)&&"[object Object]"===Object.prototype.toString.call(v)}Ue.exports=function(M){var s,C;return!(!1===t(M)||(s=M.constructor,"function"!=typeof s)||(C=s.prototype,!1===t(C))||!1===C.hasOwnProperty("isPrototypeOf"))}},623:Ue=>{"use strict";Ue.exports=function(m){return null!=m&&"object"==typeof m&&!1===Array.isArray(m)}},2872:Ue=>{var K=Object.prototype.toString;function m(o){return"function"==typeof o.constructor?o.constructor.name:null}Ue.exports=function(O){if(void 0===O)return"undefined";if(null===O)return"null";var T=typeof O;if("boolean"===T)return"boolean";if("string"===T)return"string";if("number"===T)return"number";if("symbol"===T)return"symbol";if("function"===T)return"GeneratorFunction"===m(O)?"generatorfunction":"function";if(function(o){return Array.isArray?Array.isArray(o):o instanceof Array}(O))return"array";if(function(o){return!(!o.constructor||"function"!=typeof o.constructor.isBuffer)&&o.constructor.isBuffer(o)}(O))return"buffer";if(function(o){try{if("number"==typeof o.length&&"function"==typeof o.callee)return!0}catch(O){if(-1!==O.message.indexOf("callee"))return!0}return!1}(O))return"arguments";if(function(o){return o instanceof Date||"function"==typeof o.toDateString&&"function"==typeof o.getDate&&"function"==typeof o.setDate}(O))return"date";if(function(o){return o instanceof Error||"string"==typeof o.message&&o.constructor&&"number"==typeof o.constructor.stackTraceLimit}(O))return"error";if(function(o){return o instanceof RegExp||"string"==typeof o.flags&&"boolean"==typeof o.ignoreCase&&"boolean"==typeof o.multiline&&"boolean"==typeof o.global}(O))return"regexp";switch(m(O)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(o){return"function"==typeof o.throw&&"function"==typeof o.return&&"function"==typeof o.next}(O))return"generator";switch(T=K.call(O)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return T.slice(8,-1).toLowerCase().replace(/\s/g,"")}},8095:(Ue,K,m)=>{"use strict";var e=m(3894),t=m(9650),v=m(3502).Buffer,M=new Array(16);function s(){t.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function C(T,R){return T<>>32-R}function c(T,R,S,D,w,U,G){return C(T+(R&S|~R&D)+w+U|0,G)+R|0}function P(T,R,S,D,w,U,G){return C(T+(R&D|S&~D)+w+U|0,G)+R|0}function o(T,R,S,D,w,U,G){return C(T+(R^S^D)+w+U|0,G)+R|0}function O(T,R,S,D,w,U,G){return C(T+(S^(R|~D))+w+U|0,G)+R|0}e(s,t),s.prototype._update=function(){for(var T=M,R=0;R<16;++R)T[R]=this._block.readInt32LE(4*R);var S=this._a,D=this._b,w=this._c,U=this._d;S=c(S,D,w,U,T[0],3614090360,7),U=c(U,S,D,w,T[1],3905402710,12),w=c(w,U,S,D,T[2],606105819,17),D=c(D,w,U,S,T[3],3250441966,22),S=c(S,D,w,U,T[4],4118548399,7),U=c(U,S,D,w,T[5],1200080426,12),w=c(w,U,S,D,T[6],2821735955,17),D=c(D,w,U,S,T[7],4249261313,22),S=c(S,D,w,U,T[8],1770035416,7),U=c(U,S,D,w,T[9],2336552879,12),w=c(w,U,S,D,T[10],4294925233,17),D=c(D,w,U,S,T[11],2304563134,22),S=c(S,D,w,U,T[12],1804603682,7),U=c(U,S,D,w,T[13],4254626195,12),w=c(w,U,S,D,T[14],2792965006,17),S=P(S,D=c(D,w,U,S,T[15],1236535329,22),w,U,T[1],4129170786,5),U=P(U,S,D,w,T[6],3225465664,9),w=P(w,U,S,D,T[11],643717713,14),D=P(D,w,U,S,T[0],3921069994,20),S=P(S,D,w,U,T[5],3593408605,5),U=P(U,S,D,w,T[10],38016083,9),w=P(w,U,S,D,T[15],3634488961,14),D=P(D,w,U,S,T[4],3889429448,20),S=P(S,D,w,U,T[9],568446438,5),U=P(U,S,D,w,T[14],3275163606,9),w=P(w,U,S,D,T[3],4107603335,14),D=P(D,w,U,S,T[8],1163531501,20),S=P(S,D,w,U,T[13],2850285829,5),U=P(U,S,D,w,T[2],4243563512,9),w=P(w,U,S,D,T[7],1735328473,14),S=o(S,D=P(D,w,U,S,T[12],2368359562,20),w,U,T[5],4294588738,4),U=o(U,S,D,w,T[8],2272392833,11),w=o(w,U,S,D,T[11],1839030562,16),D=o(D,w,U,S,T[14],4259657740,23),S=o(S,D,w,U,T[1],2763975236,4),U=o(U,S,D,w,T[4],1272893353,11),w=o(w,U,S,D,T[7],4139469664,16),D=o(D,w,U,S,T[10],3200236656,23),S=o(S,D,w,U,T[13],681279174,4),U=o(U,S,D,w,T[0],3936430074,11),w=o(w,U,S,D,T[3],3572445317,16),D=o(D,w,U,S,T[6],76029189,23),S=o(S,D,w,U,T[9],3654602809,4),U=o(U,S,D,w,T[12],3873151461,11),w=o(w,U,S,D,T[15],530742520,16),S=O(S,D=o(D,w,U,S,T[2],3299628645,23),w,U,T[0],4096336452,6),U=O(U,S,D,w,T[7],1126891415,10),w=O(w,U,S,D,T[14],2878612391,15),D=O(D,w,U,S,T[5],4237533241,21),S=O(S,D,w,U,T[12],1700485571,6),U=O(U,S,D,w,T[3],2399980690,10),w=O(w,U,S,D,T[10],4293915773,15),D=O(D,w,U,S,T[1],2240044497,21),S=O(S,D,w,U,T[8],1873313359,6),U=O(U,S,D,w,T[15],4264355552,10),w=O(w,U,S,D,T[6],2734768916,15),D=O(D,w,U,S,T[13],1309151649,21),S=O(S,D,w,U,T[4],4149444226,6),U=O(U,S,D,w,T[11],3174756917,10),w=O(w,U,S,D,T[2],718787259,15),D=O(D,w,U,S,T[9],3951481745,21),this._a=this._a+S|0,this._b=this._b+D|0,this._c=this._c+w|0,this._d=this._d+U|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var T=v.allocUnsafe(16);return T.writeInt32LE(this._a,0),T.writeInt32LE(this._b,4),T.writeInt32LE(this._c,8),T.writeInt32LE(this._d,12),T},Ue.exports=s},7079:(Ue,K,m)=>{var e=m(1378),t=m(7950);function v(M){this.rand=M||new t.Rand}Ue.exports=v,v.create=function(s){return new v(s)},v.prototype._randbelow=function(s){var C=s.bitLength(),c=Math.ceil(C/8);do{var P=new e(this.rand.generate(c))}while(P.cmp(s)>=0);return P},v.prototype._randrange=function(s,C){var c=C.sub(s);return s.add(this._randbelow(c))},v.prototype.test=function(s,C,c){var P=s.bitLength(),o=e.mont(s),O=new e(1).toRed(o);C||(C=Math.max(1,P/48|0));for(var T=s.subn(1),R=0;!T.testn(R);R++);for(var S=s.shrn(R),D=T.toRed(o);C>0;C--){var U=this._randrange(new e(2),T);c&&c(U);var G=U.toRed(o).redPow(S);if(0!==G.cmp(O)&&0!==G.cmp(D)){for(var W=1;W0;C--){var D=this._randrange(new e(2),O),w=s.gcd(D);if(0!==w.cmpn(1))return w;var U=D.toRed(P).redPow(R);if(0!==U.cmp(o)&&0!==U.cmp(S)){for(var G=1;G=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function P(y,i,a){var p=c(y,a);return a-1>=i&&(p|=c(y,a-1)<<4),p}function o(y,i,a,p){for(var u=0,_=Math.min(y.length,a),L=i;L<_;L++){var I=y.charCodeAt(L)-48;u*=p,u+=I>=49?I-49+10:I>=17?I-17+10:I}return u}s.isBN=function(i){return i instanceof s||null!==i&&"object"==typeof i&&i.constructor.wordSize===s.wordSize&&Array.isArray(i.words)},s.max=function(i,a){return i.cmp(a)>0?i:a},s.min=function(i,a){return i.cmp(a)<0?i:a},s.prototype._init=function(i,a,p){if("number"==typeof i)return this._initNumber(i,a,p);if("object"==typeof i)return this._initArray(i,a,p);"hex"===a&&(a=16),v(a===(0|a)&&a>=2&&a<=36);var u=0;"-"===(i=i.toString().replace(/\s+/g,""))[0]&&(u++,this.negative=1),u=0;u-=3)this.words[_]|=(L=i[u]|i[u-1]<<8|i[u-2]<<16)<>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);else if("le"===p)for(u=0,_=0;u>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);return this.strip()},s.prototype._parseHex=function(i,a,p){this.length=Math.ceil((i.length-a)/6),this.words=new Array(this.length);for(var u=0;u=a;u-=2)I=P(i,a,u)<<_,this.words[L]|=67108863&I,_>=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;else for(u=(i.length-a)%2==0?a+1:a;u=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;this.strip()},s.prototype._parseBase=function(i,a,p){this.words=[0],this.length=1;for(var u=0,_=1;_<=67108863;_*=a)u++;u--,_=_/a|0;for(var L=i.length-p,I=L%u,x=Math.min(L,L-I)+p,r=0,b=p;b1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],T=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function D(y,i,a){a.negative=i.negative^y.negative;var p=y.length+i.length|0;a.length=p,p=p-1|0;var u=0|y.words[0],_=0|i.words[0],L=u*_,x=L/67108864|0;a.words[0]=67108863&L;for(var r=1;r>>26,J=67108863&x,F=Math.min(r,i.length-1),B=Math.max(0,r-y.length+1);B<=F;B++)b+=(L=(u=0|y.words[r-B|0])*(_=0|i.words[B])+J)/67108864|0,J=67108863&L;a.words[r]=0|J,x=0|b}return 0!==x?a.words[r]=0|x:a.length--,a.strip()}s.prototype.toString=function(i,a){var p;if(a=0|a||1,16===(i=i||10)||"hex"===i){p="";for(var u=0,_=0,L=0;L>>24-u&16777215)||L!==this.length-1?O[6-x.length]+x+p:x+p,(u+=2)>=26&&(u-=26,L--)}for(0!==_&&(p=_.toString(16)+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}if(i===(0|i)&&i>=2&&i<=36){var r=T[i],b=R[i];p="";var J=this.clone();for(J.negative=0;!J.isZero();){var F=J.modn(b).toString(i);p=(J=J.idivn(b)).isZero()?F+p:O[r-F.length]+F+p}for(this.isZero()&&(p="0"+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}v(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var i=this.words[0];return 2===this.length?i+=67108864*this.words[1]:3===this.length&&1===this.words[2]?i+=4503599627370496+67108864*this.words[1]:this.length>2&&v(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-i:i},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(i,a){return v(void 0!==C),this.toArrayLike(C,i,a)},s.prototype.toArray=function(i,a){return this.toArrayLike(Array,i,a)},s.prototype.toArrayLike=function(i,a,p){var u=this.byteLength(),_=p||Math.max(1,u);v(u<=_,"byte array longer than desired length"),v(_>0,"Requested array length <= 0"),this.strip();var x,r,L="le"===a,I=new i(_),b=this.clone();if(L){for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[r]=x;for(;r<_;r++)I[r]=0}else{for(r=0;r<_-u;r++)I[r]=0;for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[_-r-1]=x}return I},s.prototype._countBits=Math.clz32?function(i){return 32-Math.clz32(i)}:function(i){var a=i,p=0;return a>=4096&&(p+=13,a>>>=13),a>=64&&(p+=7,a>>>=7),a>=8&&(p+=4,a>>>=4),a>=2&&(p+=2,a>>>=2),p+a},s.prototype._zeroBits=function(i){if(0===i)return 26;var a=i,p=0;return 0==(8191&a)&&(p+=13,a>>>=13),0==(127&a)&&(p+=7,a>>>=7),0==(15&a)&&(p+=4,a>>>=4),0==(3&a)&&(p+=2,a>>>=2),0==(1&a)&&p++,p},s.prototype.bitLength=function(){var a=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+a},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var i=0,a=0;ai.length?this.clone().ior(i):i.clone().ior(this)},s.prototype.uor=function(i){return this.length>i.length?this.clone().iuor(i):i.clone().iuor(this)},s.prototype.iuand=function(i){var a;a=this.length>i.length?i:this;for(var p=0;pi.length?this.clone().iand(i):i.clone().iand(this)},s.prototype.uand=function(i){return this.length>i.length?this.clone().iuand(i):i.clone().iuand(this)},s.prototype.iuxor=function(i){var a,p;this.length>i.length?(a=this,p=i):(a=i,p=this);for(var u=0;ui.length?this.clone().ixor(i):i.clone().ixor(this)},s.prototype.uxor=function(i){return this.length>i.length?this.clone().iuxor(i):i.clone().iuxor(this)},s.prototype.inotn=function(i){v("number"==typeof i&&i>=0);var a=0|Math.ceil(i/26),p=i%26;this._expand(a),p>0&&a--;for(var u=0;u0&&(this.words[u]=~this.words[u]&67108863>>26-p),this.strip()},s.prototype.notn=function(i){return this.clone().inotn(i)},s.prototype.setn=function(i,a){v("number"==typeof i&&i>=0);var p=i/26|0,u=i%26;return this._expand(p+1),this.words[p]=a?this.words[p]|1<i.length?(p=this,u=i):(p=i,u=this);for(var _=0,L=0;L>>26;for(;0!==_&&L>>26;if(this.length=p.length,0!==_)this.words[this.length]=_,this.length++;else if(p!==this)for(;Li.length?this.clone().iadd(i):i.clone().iadd(this)},s.prototype.isub=function(i){if(0!==i.negative){i.negative=0;var a=this.iadd(i);return i.negative=1,a._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(i),this.negative=1,this._normSign();var u,_,p=this.cmp(i);if(0===p)return this.negative=0,this.length=1,this.words[0]=0,this;p>0?(u=this,_=i):(u=i,_=this);for(var L=0,I=0;I<_.length;I++)L=(a=(0|u.words[I])-(0|_.words[I])+L)>>26,this.words[I]=67108863&a;for(;0!==L&&I>26,this.words[I]=67108863&a;if(0===L&&I>>13,te=0|u[1],xe=8191&te,Re=te>>>13,Fe=0|u[2],q=8191&Fe,j=Fe>>>13,we=0|u[3],Ae=8191&we,le=we>>>13,We=0|u[4],yt=8191&We,Ne=We>>>13,Ve=0|u[5],ue=8191&Ve,Te=Ve>>>13,ke=0|u[6],Y=8191&ke,X=ke>>>13,he=0|u[7],Me=8191&he,ze=he>>>13,ht=0|u[8],it=8191&ht,ft=ht>>>13,nt=0|u[9],st=8191&nt,wt=nt>>>13,Bt=0|_[0],Nt=8191&Bt,Vt=Bt>>>13,Oi=0|_[1],jt=8191&Oi,ti=Oi>>>13,Pi=0|_[2],si=8191&Pi,di=Pi>>>13,He=0|_[3],Se=8191&He,V=He>>>13,ve=0|_[4],Ee=8191&ve,et=ve>>>13,$t=0|_[5],Pt=8191&$t,Xt=$t>>>13,lt=0|_[6],Pe=8191<,Be=lt>>>13,rt=0|_[7],ot=8191&rt,At=rt>>>13,li=0|_[8],Ut=8191&li,Ft=li>>>13,Si=0|_[9],ai=8191&Si,ci=Si>>>13;p.negative=i.negative^a.negative,p.length=19;var rn=(I+(x=Math.imul(F,Nt))|0)+((8191&(r=(r=Math.imul(F,Vt))+Math.imul(B,Nt)|0))<<13)|0;I=((b=Math.imul(B,Vt))+(r>>>13)|0)+(rn>>>26)|0,rn&=67108863,x=Math.imul(xe,Nt),r=(r=Math.imul(xe,Vt))+Math.imul(Re,Nt)|0,b=Math.imul(Re,Vt);var Vi=(I+(x=x+Math.imul(F,jt)|0)|0)+((8191&(r=(r=r+Math.imul(F,ti)|0)+Math.imul(B,jt)|0))<<13)|0;I=((b=b+Math.imul(B,ti)|0)+(r>>>13)|0)+(Vi>>>26)|0,Vi&=67108863,x=Math.imul(q,Nt),r=(r=Math.imul(q,Vt))+Math.imul(j,Nt)|0,b=Math.imul(j,Vt),x=x+Math.imul(xe,jt)|0,r=(r=r+Math.imul(xe,ti)|0)+Math.imul(Re,jt)|0,b=b+Math.imul(Re,ti)|0;var Di=(I+(x=x+Math.imul(F,si)|0)|0)+((8191&(r=(r=r+Math.imul(F,di)|0)+Math.imul(B,si)|0))<<13)|0;I=((b=b+Math.imul(B,di)|0)+(r>>>13)|0)+(Di>>>26)|0,Di&=67108863,x=Math.imul(Ae,Nt),r=(r=Math.imul(Ae,Vt))+Math.imul(le,Nt)|0,b=Math.imul(le,Vt),x=x+Math.imul(q,jt)|0,r=(r=r+Math.imul(q,ti)|0)+Math.imul(j,jt)|0,b=b+Math.imul(j,ti)|0,x=x+Math.imul(xe,si)|0,r=(r=r+Math.imul(xe,di)|0)+Math.imul(Re,si)|0,b=b+Math.imul(Re,di)|0;var Xi=(I+(x=x+Math.imul(F,Se)|0)|0)+((8191&(r=(r=r+Math.imul(F,V)|0)+Math.imul(B,Se)|0))<<13)|0;I=((b=b+Math.imul(B,V)|0)+(r>>>13)|0)+(Xi>>>26)|0,Xi&=67108863,x=Math.imul(yt,Nt),r=(r=Math.imul(yt,Vt))+Math.imul(Ne,Nt)|0,b=Math.imul(Ne,Vt),x=x+Math.imul(Ae,jt)|0,r=(r=r+Math.imul(Ae,ti)|0)+Math.imul(le,jt)|0,b=b+Math.imul(le,ti)|0,x=x+Math.imul(q,si)|0,r=(r=r+Math.imul(q,di)|0)+Math.imul(j,si)|0,b=b+Math.imul(j,di)|0,x=x+Math.imul(xe,Se)|0,r=(r=r+Math.imul(xe,V)|0)+Math.imul(Re,Se)|0,b=b+Math.imul(Re,V)|0;var Ke=(I+(x=x+Math.imul(F,Ee)|0)|0)+((8191&(r=(r=r+Math.imul(F,et)|0)+Math.imul(B,Ee)|0))<<13)|0;I=((b=b+Math.imul(B,et)|0)+(r>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,x=Math.imul(ue,Nt),r=(r=Math.imul(ue,Vt))+Math.imul(Te,Nt)|0,b=Math.imul(Te,Vt),x=x+Math.imul(yt,jt)|0,r=(r=r+Math.imul(yt,ti)|0)+Math.imul(Ne,jt)|0,b=b+Math.imul(Ne,ti)|0,x=x+Math.imul(Ae,si)|0,r=(r=r+Math.imul(Ae,di)|0)+Math.imul(le,si)|0,b=b+Math.imul(le,di)|0,x=x+Math.imul(q,Se)|0,r=(r=r+Math.imul(q,V)|0)+Math.imul(j,Se)|0,b=b+Math.imul(j,V)|0,x=x+Math.imul(xe,Ee)|0,r=(r=r+Math.imul(xe,et)|0)+Math.imul(Re,Ee)|0,b=b+Math.imul(Re,et)|0;var mt=(I+(x=x+Math.imul(F,Pt)|0)|0)+((8191&(r=(r=r+Math.imul(F,Xt)|0)+Math.imul(B,Pt)|0))<<13)|0;I=((b=b+Math.imul(B,Xt)|0)+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,x=Math.imul(Y,Nt),r=(r=Math.imul(Y,Vt))+Math.imul(X,Nt)|0,b=Math.imul(X,Vt),x=x+Math.imul(ue,jt)|0,r=(r=r+Math.imul(ue,ti)|0)+Math.imul(Te,jt)|0,b=b+Math.imul(Te,ti)|0,x=x+Math.imul(yt,si)|0,r=(r=r+Math.imul(yt,di)|0)+Math.imul(Ne,si)|0,b=b+Math.imul(Ne,di)|0,x=x+Math.imul(Ae,Se)|0,r=(r=r+Math.imul(Ae,V)|0)+Math.imul(le,Se)|0,b=b+Math.imul(le,V)|0,x=x+Math.imul(q,Ee)|0,r=(r=r+Math.imul(q,et)|0)+Math.imul(j,Ee)|0,b=b+Math.imul(j,et)|0,x=x+Math.imul(xe,Pt)|0,r=(r=r+Math.imul(xe,Xt)|0)+Math.imul(Re,Pt)|0,b=b+Math.imul(Re,Xt)|0;var be=(I+(x=x+Math.imul(F,Pe)|0)|0)+((8191&(r=(r=r+Math.imul(F,Be)|0)+Math.imul(B,Pe)|0))<<13)|0;I=((b=b+Math.imul(B,Be)|0)+(r>>>13)|0)+(be>>>26)|0,be&=67108863,x=Math.imul(Me,Nt),r=(r=Math.imul(Me,Vt))+Math.imul(ze,Nt)|0,b=Math.imul(ze,Vt),x=x+Math.imul(Y,jt)|0,r=(r=r+Math.imul(Y,ti)|0)+Math.imul(X,jt)|0,b=b+Math.imul(X,ti)|0,x=x+Math.imul(ue,si)|0,r=(r=r+Math.imul(ue,di)|0)+Math.imul(Te,si)|0,b=b+Math.imul(Te,di)|0,x=x+Math.imul(yt,Se)|0,r=(r=r+Math.imul(yt,V)|0)+Math.imul(Ne,Se)|0,b=b+Math.imul(Ne,V)|0,x=x+Math.imul(Ae,Ee)|0,r=(r=r+Math.imul(Ae,et)|0)+Math.imul(le,Ee)|0,b=b+Math.imul(le,et)|0,x=x+Math.imul(q,Pt)|0,r=(r=r+Math.imul(q,Xt)|0)+Math.imul(j,Pt)|0,b=b+Math.imul(j,Xt)|0,x=x+Math.imul(xe,Pe)|0,r=(r=r+Math.imul(xe,Be)|0)+Math.imul(Re,Pe)|0,b=b+Math.imul(Re,Be)|0;var qe=(I+(x=x+Math.imul(F,ot)|0)|0)+((8191&(r=(r=r+Math.imul(F,At)|0)+Math.imul(B,ot)|0))<<13)|0;I=((b=b+Math.imul(B,At)|0)+(r>>>13)|0)+(qe>>>26)|0,qe&=67108863,x=Math.imul(it,Nt),r=(r=Math.imul(it,Vt))+Math.imul(ft,Nt)|0,b=Math.imul(ft,Vt),x=x+Math.imul(Me,jt)|0,r=(r=r+Math.imul(Me,ti)|0)+Math.imul(ze,jt)|0,b=b+Math.imul(ze,ti)|0,x=x+Math.imul(Y,si)|0,r=(r=r+Math.imul(Y,di)|0)+Math.imul(X,si)|0,b=b+Math.imul(X,di)|0,x=x+Math.imul(ue,Se)|0,r=(r=r+Math.imul(ue,V)|0)+Math.imul(Te,Se)|0,b=b+Math.imul(Te,V)|0,x=x+Math.imul(yt,Ee)|0,r=(r=r+Math.imul(yt,et)|0)+Math.imul(Ne,Ee)|0,b=b+Math.imul(Ne,et)|0,x=x+Math.imul(Ae,Pt)|0,r=(r=r+Math.imul(Ae,Xt)|0)+Math.imul(le,Pt)|0,b=b+Math.imul(le,Xt)|0,x=x+Math.imul(q,Pe)|0,r=(r=r+Math.imul(q,Be)|0)+Math.imul(j,Pe)|0,b=b+Math.imul(j,Be)|0,x=x+Math.imul(xe,ot)|0,r=(r=r+Math.imul(xe,At)|0)+Math.imul(Re,ot)|0,b=b+Math.imul(Re,At)|0;var vt=(I+(x=x+Math.imul(F,Ut)|0)|0)+((8191&(r=(r=r+Math.imul(F,Ft)|0)+Math.imul(B,Ut)|0))<<13)|0;I=((b=b+Math.imul(B,Ft)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,x=Math.imul(st,Nt),r=(r=Math.imul(st,Vt))+Math.imul(wt,Nt)|0,b=Math.imul(wt,Vt),x=x+Math.imul(it,jt)|0,r=(r=r+Math.imul(it,ti)|0)+Math.imul(ft,jt)|0,b=b+Math.imul(ft,ti)|0,x=x+Math.imul(Me,si)|0,r=(r=r+Math.imul(Me,di)|0)+Math.imul(ze,si)|0,b=b+Math.imul(ze,di)|0,x=x+Math.imul(Y,Se)|0,r=(r=r+Math.imul(Y,V)|0)+Math.imul(X,Se)|0,b=b+Math.imul(X,V)|0,x=x+Math.imul(ue,Ee)|0,r=(r=r+Math.imul(ue,et)|0)+Math.imul(Te,Ee)|0,b=b+Math.imul(Te,et)|0,x=x+Math.imul(yt,Pt)|0,r=(r=r+Math.imul(yt,Xt)|0)+Math.imul(Ne,Pt)|0,b=b+Math.imul(Ne,Xt)|0,x=x+Math.imul(Ae,Pe)|0,r=(r=r+Math.imul(Ae,Be)|0)+Math.imul(le,Pe)|0,b=b+Math.imul(le,Be)|0,x=x+Math.imul(q,ot)|0,r=(r=r+Math.imul(q,At)|0)+Math.imul(j,ot)|0,b=b+Math.imul(j,At)|0,x=x+Math.imul(xe,Ut)|0,r=(r=r+Math.imul(xe,Ft)|0)+Math.imul(Re,Ut)|0,b=b+Math.imul(Re,Ft)|0;var me=(I+(x=x+Math.imul(F,ai)|0)|0)+((8191&(r=(r=r+Math.imul(F,ci)|0)+Math.imul(B,ai)|0))<<13)|0;I=((b=b+Math.imul(B,ci)|0)+(r>>>13)|0)+(me>>>26)|0,me&=67108863,x=Math.imul(st,jt),r=(r=Math.imul(st,ti))+Math.imul(wt,jt)|0,b=Math.imul(wt,ti),x=x+Math.imul(it,si)|0,r=(r=r+Math.imul(it,di)|0)+Math.imul(ft,si)|0,b=b+Math.imul(ft,di)|0,x=x+Math.imul(Me,Se)|0,r=(r=r+Math.imul(Me,V)|0)+Math.imul(ze,Se)|0,b=b+Math.imul(ze,V)|0,x=x+Math.imul(Y,Ee)|0,r=(r=r+Math.imul(Y,et)|0)+Math.imul(X,Ee)|0,b=b+Math.imul(X,et)|0,x=x+Math.imul(ue,Pt)|0,r=(r=r+Math.imul(ue,Xt)|0)+Math.imul(Te,Pt)|0,b=b+Math.imul(Te,Xt)|0,x=x+Math.imul(yt,Pe)|0,r=(r=r+Math.imul(yt,Be)|0)+Math.imul(Ne,Pe)|0,b=b+Math.imul(Ne,Be)|0,x=x+Math.imul(Ae,ot)|0,r=(r=r+Math.imul(Ae,At)|0)+Math.imul(le,ot)|0,b=b+Math.imul(le,At)|0,x=x+Math.imul(q,Ut)|0,r=(r=r+Math.imul(q,Ft)|0)+Math.imul(j,Ut)|0,b=b+Math.imul(j,Ft)|0;var $e=(I+(x=x+Math.imul(xe,ai)|0)|0)+((8191&(r=(r=r+Math.imul(xe,ci)|0)+Math.imul(Re,ai)|0))<<13)|0;I=((b=b+Math.imul(Re,ci)|0)+(r>>>13)|0)+($e>>>26)|0,$e&=67108863,x=Math.imul(st,si),r=(r=Math.imul(st,di))+Math.imul(wt,si)|0,b=Math.imul(wt,di),x=x+Math.imul(it,Se)|0,r=(r=r+Math.imul(it,V)|0)+Math.imul(ft,Se)|0,b=b+Math.imul(ft,V)|0,x=x+Math.imul(Me,Ee)|0,r=(r=r+Math.imul(Me,et)|0)+Math.imul(ze,Ee)|0,b=b+Math.imul(ze,et)|0,x=x+Math.imul(Y,Pt)|0,r=(r=r+Math.imul(Y,Xt)|0)+Math.imul(X,Pt)|0,b=b+Math.imul(X,Xt)|0,x=x+Math.imul(ue,Pe)|0,r=(r=r+Math.imul(ue,Be)|0)+Math.imul(Te,Pe)|0,b=b+Math.imul(Te,Be)|0,x=x+Math.imul(yt,ot)|0,r=(r=r+Math.imul(yt,At)|0)+Math.imul(Ne,ot)|0,b=b+Math.imul(Ne,At)|0,x=x+Math.imul(Ae,Ut)|0,r=(r=r+Math.imul(Ae,Ft)|0)+Math.imul(le,Ut)|0,b=b+Math.imul(le,Ft)|0;var St=(I+(x=x+Math.imul(q,ai)|0)|0)+((8191&(r=(r=r+Math.imul(q,ci)|0)+Math.imul(j,ai)|0))<<13)|0;I=((b=b+Math.imul(j,ci)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,x=Math.imul(st,Se),r=(r=Math.imul(st,V))+Math.imul(wt,Se)|0,b=Math.imul(wt,V),x=x+Math.imul(it,Ee)|0,r=(r=r+Math.imul(it,et)|0)+Math.imul(ft,Ee)|0,b=b+Math.imul(ft,et)|0,x=x+Math.imul(Me,Pt)|0,r=(r=r+Math.imul(Me,Xt)|0)+Math.imul(ze,Pt)|0,b=b+Math.imul(ze,Xt)|0,x=x+Math.imul(Y,Pe)|0,r=(r=r+Math.imul(Y,Be)|0)+Math.imul(X,Pe)|0,b=b+Math.imul(X,Be)|0,x=x+Math.imul(ue,ot)|0,r=(r=r+Math.imul(ue,At)|0)+Math.imul(Te,ot)|0,b=b+Math.imul(Te,At)|0,x=x+Math.imul(yt,Ut)|0,r=(r=r+Math.imul(yt,Ft)|0)+Math.imul(Ne,Ut)|0,b=b+Math.imul(Ne,Ft)|0;var Rt=(I+(x=x+Math.imul(Ae,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Ae,ci)|0)+Math.imul(le,ai)|0))<<13)|0;I=((b=b+Math.imul(le,ci)|0)+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,x=Math.imul(st,Ee),r=(r=Math.imul(st,et))+Math.imul(wt,Ee)|0,b=Math.imul(wt,et),x=x+Math.imul(it,Pt)|0,r=(r=r+Math.imul(it,Xt)|0)+Math.imul(ft,Pt)|0,b=b+Math.imul(ft,Xt)|0,x=x+Math.imul(Me,Pe)|0,r=(r=r+Math.imul(Me,Be)|0)+Math.imul(ze,Pe)|0,b=b+Math.imul(ze,Be)|0,x=x+Math.imul(Y,ot)|0,r=(r=r+Math.imul(Y,At)|0)+Math.imul(X,ot)|0,b=b+Math.imul(X,At)|0,x=x+Math.imul(ue,Ut)|0,r=(r=r+Math.imul(ue,Ft)|0)+Math.imul(Te,Ut)|0,b=b+Math.imul(Te,Ft)|0;var yi=(I+(x=x+Math.imul(yt,ai)|0)|0)+((8191&(r=(r=r+Math.imul(yt,ci)|0)+Math.imul(Ne,ai)|0))<<13)|0;I=((b=b+Math.imul(Ne,ci)|0)+(r>>>13)|0)+(yi>>>26)|0,yi&=67108863,x=Math.imul(st,Pt),r=(r=Math.imul(st,Xt))+Math.imul(wt,Pt)|0,b=Math.imul(wt,Xt),x=x+Math.imul(it,Pe)|0,r=(r=r+Math.imul(it,Be)|0)+Math.imul(ft,Pe)|0,b=b+Math.imul(ft,Be)|0,x=x+Math.imul(Me,ot)|0,r=(r=r+Math.imul(Me,At)|0)+Math.imul(ze,ot)|0,b=b+Math.imul(ze,At)|0,x=x+Math.imul(Y,Ut)|0,r=(r=r+Math.imul(Y,Ft)|0)+Math.imul(X,Ut)|0,b=b+Math.imul(X,Ft)|0;var Ri=(I+(x=x+Math.imul(ue,ai)|0)|0)+((8191&(r=(r=r+Math.imul(ue,ci)|0)+Math.imul(Te,ai)|0))<<13)|0;I=((b=b+Math.imul(Te,ci)|0)+(r>>>13)|0)+(Ri>>>26)|0,Ri&=67108863,x=Math.imul(st,Pe),r=(r=Math.imul(st,Be))+Math.imul(wt,Pe)|0,b=Math.imul(wt,Be),x=x+Math.imul(it,ot)|0,r=(r=r+Math.imul(it,At)|0)+Math.imul(ft,ot)|0,b=b+Math.imul(ft,At)|0,x=x+Math.imul(Me,Ut)|0,r=(r=r+Math.imul(Me,Ft)|0)+Math.imul(ze,Ut)|0,b=b+Math.imul(ze,Ft)|0;var Ii=(I+(x=x+Math.imul(Y,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Y,ci)|0)+Math.imul(X,ai)|0))<<13)|0;I=((b=b+Math.imul(X,ci)|0)+(r>>>13)|0)+(Ii>>>26)|0,Ii&=67108863,x=Math.imul(st,ot),r=(r=Math.imul(st,At))+Math.imul(wt,ot)|0,b=Math.imul(wt,At),x=x+Math.imul(it,Ut)|0,r=(r=r+Math.imul(it,Ft)|0)+Math.imul(ft,Ut)|0,b=b+Math.imul(ft,Ft)|0;var Ki=(I+(x=x+Math.imul(Me,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Me,ci)|0)+Math.imul(ze,ai)|0))<<13)|0;I=((b=b+Math.imul(ze,ci)|0)+(r>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,x=Math.imul(st,Ut),r=(r=Math.imul(st,Ft))+Math.imul(wt,Ut)|0,b=Math.imul(wt,Ft);var at=(I+(x=x+Math.imul(it,ai)|0)|0)+((8191&(r=(r=r+Math.imul(it,ci)|0)+Math.imul(ft,ai)|0))<<13)|0;I=((b=b+Math.imul(ft,ci)|0)+(r>>>13)|0)+(at>>>26)|0,at&=67108863;var Qt=(I+(x=Math.imul(st,ai))|0)+((8191&(r=(r=Math.imul(st,ci))+Math.imul(wt,ai)|0))<<13)|0;return I=((b=Math.imul(wt,ci))+(r>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,L[0]=rn,L[1]=Vi,L[2]=Di,L[3]=Xi,L[4]=Ke,L[5]=mt,L[6]=be,L[7]=qe,L[8]=vt,L[9]=me,L[10]=$e,L[11]=St,L[12]=Rt,L[13]=yi,L[14]=Ri,L[15]=Ii,L[16]=Ki,L[17]=at,L[18]=Qt,0!==I&&(L[19]=I,p.length++),p};function G(y,i,a){return(new W).mulp(y,i,a)}function W(y,i){this.x=y,this.y=i}Math.imul||(w=D),s.prototype.mulTo=function(i,a){var p,u=this.length+i.length;return p=10===this.length&&10===i.length?w(this,i,a):u<63?D(this,i,a):u<1024?function(y,i,a){a.negative=i.negative^y.negative,a.length=y.length+i.length;for(var p=0,u=0,_=0;_>>26)|0)>>>26,L&=67108863}a.words[_]=I,p=L,L=u}return 0!==p?a.words[_]=p:a.length--,a.strip()}(this,i,a):G(this,i,a),p},W.prototype.makeRBT=function(i){for(var a=new Array(i),p=s.prototype._countBits(i)-1,u=0;u>=1;return u},W.prototype.permute=function(i,a,p,u,_,L){for(var I=0;I>>=1)_++;return 1<<_+1+u},W.prototype.conjugate=function(i,a,p){if(!(p<=1))for(var u=0;u

>>=13),_>>>=13;for(L=2*a;L>=26,a+=u/67108864|0,a+=_>>>26,this.words[p]=67108863&_}return 0!==a&&(this.words[p]=a,this.length++),this},s.prototype.muln=function(i){return this.clone().imuln(i)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(i){var a=function(y){for(var i=new Array(y.bitLength()),a=0;a>>u}return i}(i);if(0===a.length)return new s(1);for(var p=this,u=0;u=0);var _,a=i%26,p=(i-a)/26,u=67108863>>>26-a<<26-a;if(0!==a){var L=0;for(_=0;_>>26-a}L&&(this.words[_]=L,this.length++)}if(0!==p){for(_=this.length-1;_>=0;_--)this.words[_+p]=this.words[_];for(_=0;_=0),u=a?(a-a%26)/26:0;var _=i%26,L=Math.min((i-_)/26,this.length),I=67108863^67108863>>>_<<_,x=p;if(u-=L,u=Math.max(0,u),x){for(var r=0;rL)for(this.length-=L,r=0;r=0&&(0!==b||r>=u);r--){var J=0|this.words[r];this.words[r]=b<<26-_|J>>>_,b=J&I}return x&&0!==b&&(x.words[x.length++]=b),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(i,a,p){return v(0===this.negative),this.iushrn(i,a,p)},s.prototype.shln=function(i){return this.clone().ishln(i)},s.prototype.ushln=function(i){return this.clone().iushln(i)},s.prototype.shrn=function(i){return this.clone().ishrn(i)},s.prototype.ushrn=function(i){return this.clone().iushrn(i)},s.prototype.testn=function(i){v("number"==typeof i&&i>=0);var a=i%26,p=(i-a)/26;return!(this.length<=p||!(this.words[p]&1<=0);var a=i%26,p=(i-a)/26;return v(0===this.negative,"imaskn works only with positive numbers"),this.length<=p?this:(0!==a&&p++,this.length=Math.min(p,this.length),0!==a&&(this.words[this.length-1]&=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},s.prototype.isubn=function(i){if(v("number"==typeof i),v(i<67108864),i<0)return this.iaddn(-i);if(0!==this.negative)return this.negative=0,this.iaddn(i),this.negative=1,this;if(this.words[0]-=i,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(x/67108864|0),this.words[_+p]=67108863&L}for(;_>26,this.words[_+p]=67108863&L;if(0===I)return this.strip();for(v(-1===I),I=0,_=0;_>26,this.words[_]=67108863&L;return this.negative=1,this.strip()},s.prototype._wordDiv=function(i,a){var p,u=this.clone(),_=i,L=0|_.words[_.length-1];0!=(p=26-this._countBits(L))&&(_=_.ushln(p),u.iushln(p),L=0|_.words[_.length-1]);var r,x=u.length-_.length;if("mod"!==a){(r=new s(null)).length=x+1,r.words=new Array(r.length);for(var b=0;b=0;F--){var B=67108864*(0|u.words[_.length+F])+(0|u.words[_.length+F-1]);for(B=Math.min(B/L|0,67108863),u._ishlnsubmul(_,B,F);0!==u.negative;)B--,u.negative=0,u._ishlnsubmul(_,1,F),u.isZero()||(u.negative^=1);r&&(r.words[F]=B)}return r&&r.strip(),u.strip(),"div"!==a&&0!==p&&u.iushrn(p),{div:r||null,mod:u}},s.prototype.divmod=function(i,a,p){return v(!i.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===i.negative?(L=this.neg().divmod(i,a),"mod"!==a&&(u=L.div.neg()),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.iadd(i)),{div:u,mod:_}):0===this.negative&&0!==i.negative?(L=this.divmod(i.neg(),a),"mod"!==a&&(u=L.div.neg()),{div:u,mod:L.mod}):0!=(this.negative&i.negative)?(L=this.neg().divmod(i.neg(),a),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.isub(i)),{div:L.div,mod:_}):i.length>this.length||this.cmp(i)<0?{div:new s(0),mod:this}:1===i.length?"div"===a?{div:this.divn(i.words[0]),mod:null}:"mod"===a?{div:null,mod:new s(this.modn(i.words[0]))}:{div:this.divn(i.words[0]),mod:new s(this.modn(i.words[0]))}:this._wordDiv(i,a);var u,_,L},s.prototype.div=function(i){return this.divmod(i,"div",!1).div},s.prototype.mod=function(i){return this.divmod(i,"mod",!1).mod},s.prototype.umod=function(i){return this.divmod(i,"mod",!0).mod},s.prototype.divRound=function(i){var a=this.divmod(i);if(a.mod.isZero())return a.div;var p=0!==a.div.negative?a.mod.isub(i):a.mod,u=i.ushrn(1),_=i.andln(1),L=p.cmp(u);return L<0||1===_&&0===L?a.div:0!==a.div.negative?a.div.isubn(1):a.div.iaddn(1)},s.prototype.modn=function(i){v(i<=67108863);for(var a=(1<<26)%i,p=0,u=this.length-1;u>=0;u--)p=(a*p+(0|this.words[u]))%i;return p},s.prototype.idivn=function(i){v(i<=67108863);for(var a=0,p=this.length-1;p>=0;p--){var u=(0|this.words[p])+67108864*a;this.words[p]=u/i|0,a=u%i}return this.strip()},s.prototype.divn=function(i){return this.clone().idivn(i)},s.prototype.egcd=function(i){v(0===i.negative),v(!i.isZero());var a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=new s(0),I=new s(1),x=0;a.isEven()&&p.isEven();)a.iushrn(1),p.iushrn(1),++x;for(var r=p.clone(),b=a.clone();!a.isZero();){for(var J=0,F=1;0==(a.words[0]&F)&&J<26;++J,F<<=1);if(J>0)for(a.iushrn(J);J-- >0;)(u.isOdd()||_.isOdd())&&(u.iadd(r),_.isub(b)),u.iushrn(1),_.iushrn(1);for(var B=0,te=1;0==(p.words[0]&te)&&B<26;++B,te<<=1);if(B>0)for(p.iushrn(B);B-- >0;)(L.isOdd()||I.isOdd())&&(L.iadd(r),I.isub(b)),L.iushrn(1),I.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(L),_.isub(I)):(p.isub(a),L.isub(u),I.isub(_))}return{a:L,b:I,gcd:p.iushln(x)}},s.prototype._invmp=function(i){v(0===i.negative),v(!i.isZero());var J,a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=p.clone();a.cmpn(1)>0&&p.cmpn(1)>0;){for(var I=0,x=1;0==(a.words[0]&x)&&I<26;++I,x<<=1);if(I>0)for(a.iushrn(I);I-- >0;)u.isOdd()&&u.iadd(L),u.iushrn(1);for(var r=0,b=1;0==(p.words[0]&b)&&r<26;++r,b<<=1);if(r>0)for(p.iushrn(r);r-- >0;)_.isOdd()&&_.iadd(L),_.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(_)):(p.isub(a),_.isub(u))}return(J=0===a.cmpn(1)?u:_).cmpn(0)<0&&J.iadd(i),J},s.prototype.gcd=function(i){if(this.isZero())return i.abs();if(i.isZero())return this.abs();var a=this.clone(),p=i.clone();a.negative=0,p.negative=0;for(var u=0;a.isEven()&&p.isEven();u++)a.iushrn(1),p.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;p.isEven();)p.iushrn(1);var _=a.cmp(p);if(_<0){var L=a;a=p,p=L}else if(0===_||0===p.cmpn(1))break;a.isub(p)}return p.iushln(u)},s.prototype.invm=function(i){return this.egcd(i).a.umod(i)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(i){return this.words[0]&i},s.prototype.bincn=function(i){v("number"==typeof i);var a=i%26,p=(i-a)/26,u=1<>>26,this.words[L]=I&=67108863}return 0!==_&&(this.words[L]=_,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(i){var p,a=i<0;if(0!==this.negative&&!a)return-1;if(0===this.negative&&a)return 1;if(this.strip(),this.length>1)p=1;else{a&&(i=-i),v(i<=67108863,"Number is too big");var u=0|this.words[0];p=u===i?0:ui.length)return 1;if(this.length=0;p--){var u=0|this.words[p],_=0|i.words[p];if(u!==_){u<_?a=-1:u>_&&(a=1);break}}return a},s.prototype.gtn=function(i){return 1===this.cmpn(i)},s.prototype.gt=function(i){return 1===this.cmp(i)},s.prototype.gten=function(i){return this.cmpn(i)>=0},s.prototype.gte=function(i){return this.cmp(i)>=0},s.prototype.ltn=function(i){return-1===this.cmpn(i)},s.prototype.lt=function(i){return-1===this.cmp(i)},s.prototype.lten=function(i){return this.cmpn(i)<=0},s.prototype.lte=function(i){return this.cmp(i)<=0},s.prototype.eqn=function(i){return 0===this.cmpn(i)},s.prototype.eq=function(i){return 0===this.cmp(i)},s.red=function(i){return new se(i)},s.prototype.toRed=function(i){return v(!this.red,"Already a number in reduction context"),v(0===this.negative,"red works only with positives"),i.convertTo(this)._forceRed(i)},s.prototype.fromRed=function(){return v(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(i){return this.red=i,this},s.prototype.forceRed=function(i){return v(!this.red,"Already a number in reduction context"),this._forceRed(i)},s.prototype.redAdd=function(i){return v(this.red,"redAdd works only with red numbers"),this.red.add(this,i)},s.prototype.redIAdd=function(i){return v(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,i)},s.prototype.redSub=function(i){return v(this.red,"redSub works only with red numbers"),this.red.sub(this,i)},s.prototype.redISub=function(i){return v(this.red,"redISub works only with red numbers"),this.red.isub(this,i)},s.prototype.redShl=function(i){return v(this.red,"redShl works only with red numbers"),this.red.shl(this,i)},s.prototype.redMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.mul(this,i)},s.prototype.redIMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.imul(this,i)},s.prototype.redSqr=function(){return v(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return v(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return v(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return v(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return v(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(i){return v(this.red&&!i.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,i)};var ee={k256:null,p224:null,p192:null,p25519:null};function ie(y,i){this.name=y,this.p=new s(i,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _e(){ie.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function fe(){ie.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function de(){ie.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function ne(){ie.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function se(y){if("string"==typeof y){var i=s._prime(y);this.m=i.p,this.prime=i}else v(y.gtn(1),"modulus must be greater than 1"),this.m=y,this.prime=null}function oe(y){se.call(this,y),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}ie.prototype._tmp=function(){var i=new s(null);return i.words=new Array(Math.ceil(this.n/13)),i},ie.prototype.ireduce=function(i){var p,a=i;do{this.split(a,this.tmp),p=(a=(a=this.imulK(a)).iadd(this.tmp)).bitLength()}while(p>this.n);var u=p0?a.isub(this.p):void 0!==a.strip?a.strip():a._strip(),a},ie.prototype.split=function(i,a){i.iushrn(this.n,0,a)},ie.prototype.imulK=function(i){return i.imul(this.k)},M(_e,ie),_e.prototype.split=function(i,a){for(var p=4194303,u=Math.min(i.length,9),_=0;_>>22,L=I}i.words[_-10]=L>>>=22,i.length-=0===L&&i.length>10?10:9},_e.prototype.imulK=function(i){i.words[i.length]=0,i.words[i.length+1]=0,i.length+=2;for(var a=0,p=0;p>>=26,i.words[p]=_,a=u}return 0!==a&&(i.words[i.length++]=a),i},s._prime=function(i){if(ee[i])return ee[i];var a;if("k256"===i)a=new _e;else if("p224"===i)a=new fe;else if("p192"===i)a=new de;else{if("p25519"!==i)throw new Error("Unknown prime "+i);a=new ne}return ee[i]=a,a},se.prototype._verify1=function(i){v(0===i.negative,"red works only with positives"),v(i.red,"red works only with red numbers")},se.prototype._verify2=function(i,a){v(0==(i.negative|a.negative),"red works only with positives"),v(i.red&&i.red===a.red,"red works only with red numbers")},se.prototype.imod=function(i){return this.prime?this.prime.ireduce(i)._forceRed(this):i.umod(this.m)._forceRed(this)},se.prototype.neg=function(i){return i.isZero()?i.clone():this.m.sub(i)._forceRed(this)},se.prototype.add=function(i,a){this._verify2(i,a);var p=i.add(a);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},se.prototype.iadd=function(i,a){this._verify2(i,a);var p=i.iadd(a);return p.cmp(this.m)>=0&&p.isub(this.m),p},se.prototype.sub=function(i,a){this._verify2(i,a);var p=i.sub(a);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},se.prototype.isub=function(i,a){this._verify2(i,a);var p=i.isub(a);return p.cmpn(0)<0&&p.iadd(this.m),p},se.prototype.shl=function(i,a){return this._verify1(i),this.imod(i.ushln(a))},se.prototype.imul=function(i,a){return this._verify2(i,a),this.imod(i.imul(a))},se.prototype.mul=function(i,a){return this._verify2(i,a),this.imod(i.mul(a))},se.prototype.isqr=function(i){return this.imul(i,i.clone())},se.prototype.sqr=function(i){return this.mul(i,i)},se.prototype.sqrt=function(i){if(i.isZero())return i.clone();var a=this.m.andln(3);if(v(a%2==1),3===a){var p=this.m.add(new s(1)).iushrn(2);return this.pow(i,p)}for(var u=this.m.subn(1),_=0;!u.isZero()&&0===u.andln(1);)_++,u.iushrn(1);v(!u.isZero());var L=new s(1).toRed(this),I=L.redNeg(),x=this.m.subn(1).iushrn(1),r=this.m.bitLength();for(r=new s(2*r*r).toRed(this);0!==this.pow(r,x).cmp(I);)r.redIAdd(I);for(var b=this.pow(r,u),J=this.pow(i,u.addn(1).iushrn(1)),F=this.pow(i,u),B=_;0!==F.cmp(L);){for(var te=F,xe=0;0!==te.cmp(L);xe++)te=te.redSqr();v(xe=0;_--){for(var b=a.words[_],J=r-1;J>=0;J--){var F=b>>J&1;L!==u[0]&&(L=this.sqr(L)),0!==F||0!==I?(I<<=1,I|=F,(4==++x||0===_&&0===J)&&(L=this.mul(L,u[I]),x=0,I=0)):x=0}r=26}return L},se.prototype.convertTo=function(i){var a=i.umod(this.m);return a===i?a.clone():a},se.prototype.convertFrom=function(i){var a=i.clone();return a.red=null,a},s.mont=function(i){return new oe(i)},M(oe,se),oe.prototype.convertTo=function(i){return this.imod(i.ushln(this.shift))},oe.prototype.convertFrom=function(i){var a=this.imod(i.mul(this.rinv));return a.red=null,a},oe.prototype.imul=function(i,a){if(i.isZero()||a.isZero())return i.words[0]=0,i.length=1,i;var p=i.imul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.mul=function(i,a){if(i.isZero()||a.isZero())return new s(0)._forceRed(this);var p=i.mul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.invm=function(i){return this.imod(i._invmp(this.m).mul(this.r2))._forceRed(this)}}(Ue=m.nmd(Ue),this)},2391:Ue=>{function K(m,e){if(!m)throw new Error(e||"Assertion failed")}Ue.exports=K,K.equal=function(e,t,v){if(e!=t)throw new Error(v||"Assertion failed: "+e+" != "+t)}},8195:(Ue,K)=>{"use strict";var m=K;function t(M){return 1===M.length?"0"+M:M}function v(M){for(var s="",C=0;C>8,O=255&P;o?C.push(o,O):C.push(O)}return C},m.zero2=t,m.toHex=v,m.encode=function(s,C){return"hex"===C?v(s):s}},644:(Ue,K,m)=>{"use strict";m.d(K,{op:()=>He,$V:()=>et,Xd:()=>Xt});var e=m(7579),t=m(4968),M=(m(6451),m(3601)),s=m(2722),P=(m(1884),m(9718),m(5e3)),o=m(9808);function O(lt){return getComputedStyle(lt)}function T(lt,Pe){for(var Be in Pe){var rt=Pe[Be];"number"==typeof rt&&(rt+="px"),lt.style[Be]=rt}return lt}function R(lt){var Pe=document.createElement("div");return Pe.className=lt,Pe}var S="undefined"!=typeof Element&&(Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector);function D(lt,Pe){if(!S)throw new Error("No element matching method supported");return S.call(lt,Pe)}function w(lt){lt.remove?lt.remove():lt.parentNode&<.parentNode.removeChild(lt)}function U(lt,Pe){return Array.prototype.filter.call(lt.children,function(Be){return D(Be,Pe)})}var G_element_thumb=function(lt){return"ps__thumb-"+lt},G_element_rail=function(lt){return"ps__rail-"+lt},G_element_consuming="ps__child--consume",G_state_focus="ps--focus",G_state_clicking="ps--clicking",G_state_active=function(lt){return"ps--active-"+lt},G_state_scrolling=function(lt){return"ps--scrolling-"+lt},W={x:null,y:null};function ee(lt,Pe){var Be=lt.element.classList,rt=G_state_scrolling(Pe);Be.contains(rt)?clearTimeout(W[Pe]):Be.add(rt)}function ie(lt,Pe){W[Pe]=setTimeout(function(){return lt.isAlive&<.element.classList.remove(G_state_scrolling(Pe))},lt.settings.scrollingThreshold)}var fe=function(Pe){this.element=Pe,this.handlers={}},de={isEmpty:{configurable:!0}};fe.prototype.bind=function(Pe,Be){void 0===this.handlers[Pe]&&(this.handlers[Pe]=[]),this.handlers[Pe].push(Be),this.element.addEventListener(Pe,Be,!1)},fe.prototype.unbind=function(Pe,Be){var rt=this;this.handlers[Pe]=this.handlers[Pe].filter(function(ot){return!(!Be||ot===Be)||(rt.element.removeEventListener(Pe,ot,!1),!1)})},fe.prototype.unbindAll=function(){for(var Pe in this.handlers)this.unbind(Pe)},de.isEmpty.get=function(){var lt=this;return Object.keys(this.handlers).every(function(Pe){return 0===lt.handlers[Pe].length})},Object.defineProperties(fe.prototype,de);var ne=function(){this.eventElements=[]};function se(lt){if("function"==typeof window.CustomEvent)return new CustomEvent(lt);var Pe=document.createEvent("CustomEvent");return Pe.initCustomEvent(lt,!1,!1,void 0),Pe}function oe(lt,Pe,Be,rt,ot){var At;if(void 0===rt&&(rt=!0),void 0===ot&&(ot=!1),"top"===Pe)At=["contentHeight","containerHeight","scrollTop","y","up","down"];else{if("left"!==Pe)throw new Error("A proper axis should be provided");At=["contentWidth","containerWidth","scrollLeft","x","left","right"]}!function(lt,Pe,Be,rt,ot){var At=Be[0],li=Be[1],Ut=Be[2],Ft=Be[3],Si=Be[4],ai=Be[5];void 0===rt&&(rt=!0),void 0===ot&&(ot=!1);var ci=lt.element;lt.reach[Ft]=null,ci[Ut]<1&&(lt.reach[Ft]="start"),ci[Ut]>lt[At]-lt[li]-1&&(lt.reach[Ft]="end"),Pe&&(ci.dispatchEvent(se("ps-scroll-"+Ft)),Pe<0?ci.dispatchEvent(se("ps-scroll-"+Si)):Pe>0&&ci.dispatchEvent(se("ps-scroll-"+ai)),rt&&function(lt,Pe){ee(lt,Pe),ie(lt,Pe)}(lt,Ft)),lt.reach[Ft]&&(Pe||ot)&&ci.dispatchEvent(se("ps-"+Ft+"-reach-"+lt.reach[Ft]))}(lt,Be,At,rt,ot)}function i(lt){return parseInt(lt,10)||0}ne.prototype.eventElement=function(Pe){var Be=this.eventElements.filter(function(rt){return rt.element===Pe})[0];return Be||(Be=new fe(Pe),this.eventElements.push(Be)),Be},ne.prototype.bind=function(Pe,Be,rt){this.eventElement(Pe).bind(Be,rt)},ne.prototype.unbind=function(Pe,Be,rt){var ot=this.eventElement(Pe);ot.unbind(Be,rt),ot.isEmpty&&this.eventElements.splice(this.eventElements.indexOf(ot),1)},ne.prototype.unbindAll=function(){this.eventElements.forEach(function(Pe){return Pe.unbindAll()}),this.eventElements=[]},ne.prototype.once=function(Pe,Be,rt){var ot=this.eventElement(Pe),At=function(li){ot.unbind(Be,At),rt(li)};ot.bind(Be,At)};var u={isWebKit:"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style,supportsTouch:"undefined"!=typeof window&&("ontouchstart"in window||"maxTouchPoints"in window.navigator&&window.navigator.maxTouchPoints>0||window.DocumentTouch&&document instanceof window.DocumentTouch),supportsIePointer:"undefined"!=typeof navigator&&navigator.msMaxTouchPoints,isChrome:"undefined"!=typeof navigator&&/Chrome/i.test(navigator&&navigator.userAgent)};function _(lt){var Pe=lt.element,Be=Math.floor(Pe.scrollTop),rt=Pe.getBoundingClientRect();lt.containerWidth=Math.ceil(rt.width),lt.containerHeight=Math.ceil(rt.height),lt.contentWidth=Pe.scrollWidth,lt.contentHeight=Pe.scrollHeight,Pe.contains(lt.scrollbarXRail)||(U(Pe,G_element_rail("x")).forEach(function(ot){return w(ot)}),Pe.appendChild(lt.scrollbarXRail)),Pe.contains(lt.scrollbarYRail)||(U(Pe,G_element_rail("y")).forEach(function(ot){return w(ot)}),Pe.appendChild(lt.scrollbarYRail)),!lt.settings.suppressScrollX&<.containerWidth+lt.settings.scrollXMarginOffset=lt.railXWidth-lt.scrollbarXWidth&&(lt.scrollbarXLeft=lt.railXWidth-lt.scrollbarXWidth),lt.scrollbarYTop>=lt.railYHeight-lt.scrollbarYHeight&&(lt.scrollbarYTop=lt.railYHeight-lt.scrollbarYHeight),function(lt,Pe){var Be={width:Pe.railXWidth},rt=Math.floor(lt.scrollTop);Be.left=Pe.isRtl?Pe.negativeScrollAdjustment+lt.scrollLeft+Pe.containerWidth-Pe.contentWidth:lt.scrollLeft,Pe.isScrollbarXUsingBottom?Be.bottom=Pe.scrollbarXBottom-rt:Be.top=Pe.scrollbarXTop+rt,T(Pe.scrollbarXRail,Be);var ot={top:rt,height:Pe.railYHeight};Pe.isScrollbarYUsingRight?ot.right=Pe.isRtl?Pe.contentWidth-(Pe.negativeScrollAdjustment+lt.scrollLeft)-Pe.scrollbarYRight-Pe.scrollbarYOuterWidth-9:Pe.scrollbarYRight-lt.scrollLeft:ot.left=Pe.isRtl?Pe.negativeScrollAdjustment+lt.scrollLeft+2*Pe.containerWidth-Pe.contentWidth-Pe.scrollbarYLeft-Pe.scrollbarYOuterWidth:Pe.scrollbarYLeft+lt.scrollLeft,T(Pe.scrollbarYRail,ot),T(Pe.scrollbarX,{left:Pe.scrollbarXLeft,width:Pe.scrollbarXWidth-Pe.railBorderXWidth}),T(Pe.scrollbarY,{top:Pe.scrollbarYTop,height:Pe.scrollbarYHeight-Pe.railBorderYWidth})}(Pe,lt),lt.scrollbarXActive?Pe.classList.add(G_state_active("x")):(Pe.classList.remove(G_state_active("x")),lt.scrollbarXWidth=0,lt.scrollbarXLeft=0,Pe.scrollLeft=!0===lt.isRtl?lt.contentWidth:0),lt.scrollbarYActive?Pe.classList.add(G_state_active("y")):(Pe.classList.remove(G_state_active("y")),lt.scrollbarYHeight=0,lt.scrollbarYTop=0,Pe.scrollTop=0)}function L(lt,Pe){return lt.settings.minScrollbarLength&&(Pe=Math.max(Pe,lt.settings.minScrollbarLength)),lt.settings.maxScrollbarLength&&(Pe=Math.min(Pe,lt.settings.maxScrollbarLength)),Pe}function b(lt,Pe){var Be=Pe[0],rt=Pe[1],ot=Pe[2],At=Pe[3],li=Pe[4],Ut=Pe[5],Ft=Pe[6],Si=Pe[7],ai=Pe[8],ci=lt.element,rn=null,Vi=null,Di=null;function Xi(be){be.touches&&be.touches[0]&&(be[ot]=be.touches[0].pageY),ci[Ft]=rn+Di*(be[ot]-Vi),ee(lt,Si),_(lt),be.stopPropagation(),be.preventDefault()}function Ke(){ie(lt,Si),lt[ai].classList.remove(G_state_clicking),lt.event.unbind(lt.ownerDocument,"mousemove",Xi)}function mt(be,qe){rn=ci[Ft],qe&&be.touches&&(be[ot]=be.touches[0].pageY),Vi=be[ot],Di=(lt[rt]-lt[Be])/(lt[At]-lt[Ut]),qe?lt.event.bind(lt.ownerDocument,"touchmove",Xi):(lt.event.bind(lt.ownerDocument,"mousemove",Xi),lt.event.once(lt.ownerDocument,"mouseup",Ke),be.preventDefault()),lt[ai].classList.add(G_state_clicking),be.stopPropagation()}lt.event.bind(lt[li],"mousedown",function(be){mt(be)}),lt.event.bind(lt[li],"touchstart",function(be){mt(be,!0)})}var xe={"click-rail":function(lt){lt.event.bind(lt.scrollbarY,"mousedown",function(Be){return Be.stopPropagation()}),lt.event.bind(lt.scrollbarYRail,"mousedown",function(Be){var rt=Be.pageY-window.pageYOffset-lt.scrollbarYRail.getBoundingClientRect().top;lt.element.scrollTop+=(rt>lt.scrollbarYTop?1:-1)*lt.containerHeight,_(lt),Be.stopPropagation()}),lt.event.bind(lt.scrollbarX,"mousedown",function(Be){return Be.stopPropagation()}),lt.event.bind(lt.scrollbarXRail,"mousedown",function(Be){var rt=Be.pageX-window.pageXOffset-lt.scrollbarXRail.getBoundingClientRect().left;lt.element.scrollLeft+=(rt>lt.scrollbarXLeft?1:-1)*lt.containerWidth,_(lt),Be.stopPropagation()})},"drag-thumb":function(lt){b(lt,["containerWidth","contentWidth","pageX","railXWidth","scrollbarX","scrollbarXWidth","scrollLeft","x","scrollbarXRail"]),b(lt,["containerHeight","contentHeight","pageY","railYHeight","scrollbarY","scrollbarYHeight","scrollTop","y","scrollbarYRail"])},keyboard:function(lt){var Pe=lt.element;lt.event.bind(lt.ownerDocument,"keydown",function(At){if(!(At.isDefaultPrevented&&At.isDefaultPrevented()||At.defaultPrevented)&&(D(Pe,":hover")||D(lt.scrollbarX,":focus")||D(lt.scrollbarY,":focus"))){var li=document.activeElement?document.activeElement:lt.ownerDocument.activeElement;if(li){if("IFRAME"===li.tagName)li=li.contentDocument.activeElement;else for(;li.shadowRoot;)li=li.shadowRoot.activeElement;if(function(lt){return D(lt,"input,[contenteditable]")||D(lt,"select,[contenteditable]")||D(lt,"textarea,[contenteditable]")||D(lt,"button,[contenteditable]")}(li))return}var Ut=0,Ft=0;switch(At.which){case 37:Ut=At.metaKey?-lt.contentWidth:At.altKey?-lt.containerWidth:-30;break;case 38:Ft=At.metaKey?lt.contentHeight:At.altKey?lt.containerHeight:30;break;case 39:Ut=At.metaKey?lt.contentWidth:At.altKey?lt.containerWidth:30;break;case 40:Ft=At.metaKey?-lt.contentHeight:At.altKey?-lt.containerHeight:-30;break;case 32:Ft=At.shiftKey?lt.containerHeight:-lt.containerHeight;break;case 33:Ft=lt.containerHeight;break;case 34:Ft=-lt.containerHeight;break;case 36:Ft=lt.contentHeight;break;case 35:Ft=-lt.contentHeight;break;default:return}lt.settings.suppressScrollX&&0!==Ut||lt.settings.suppressScrollY&&0!==Ft||(Pe.scrollTop-=Ft,Pe.scrollLeft+=Ut,_(lt),function(At,li){var Ut=Math.floor(Pe.scrollTop);if(0===At){if(!lt.scrollbarYActive)return!1;if(0===Ut&&li>0||Ut>=lt.contentHeight-lt.containerHeight&&li<0)return!lt.settings.wheelPropagation}var Ft=Pe.scrollLeft;if(0===li){if(!lt.scrollbarXActive)return!1;if(0===Ft&&At<0||Ft>=lt.contentWidth-lt.containerWidth&&At>0)return!lt.settings.wheelPropagation}return!0}(Ut,Ft)&&At.preventDefault())}})},wheel:function(lt){var Pe=lt.element;function At(li){var Ut=function(li){var Ut=li.deltaX,Ft=-1*li.deltaY;return(void 0===Ut||void 0===Ft)&&(Ut=-1*li.wheelDeltaX/6,Ft=li.wheelDeltaY/6),li.deltaMode&&1===li.deltaMode&&(Ut*=10,Ft*=10),Ut!=Ut&&Ft!=Ft&&(Ut=0,Ft=li.wheelDelta),li.shiftKey?[-Ft,-Ut]:[Ut,Ft]}(li),Ft=Ut[0],Si=Ut[1];if(!function(li,Ut,Ft){if(!u.isWebKit&&Pe.querySelector("select:focus"))return!0;if(!Pe.contains(li))return!1;for(var Si=li;Si&&Si!==Pe;){if(Si.classList.contains(G_element_consuming))return!0;var ai=O(Si);if(Ft&&ai.overflowY.match(/(scroll|auto)/)){var ci=Si.scrollHeight-Si.clientHeight;if(ci>0&&(Si.scrollTop>0&&Ft<0||Si.scrollTop0))return!0}if(Ut&&ai.overflowX.match(/(scroll|auto)/)){var rn=Si.scrollWidth-Si.clientWidth;if(rn>0&&(Si.scrollLeft>0&&Ut<0||Si.scrollLeft0))return!0}Si=Si.parentNode}return!1}(li.target,Ft,Si)){var ai=!1;lt.settings.useBothWheelAxes?lt.scrollbarYActive&&!lt.scrollbarXActive?(Si?Pe.scrollTop-=Si*lt.settings.wheelSpeed:Pe.scrollTop+=Ft*lt.settings.wheelSpeed,ai=!0):lt.scrollbarXActive&&!lt.scrollbarYActive&&(Ft?Pe.scrollLeft+=Ft*lt.settings.wheelSpeed:Pe.scrollLeft-=Si*lt.settings.wheelSpeed,ai=!0):(Pe.scrollTop-=Si*lt.settings.wheelSpeed,Pe.scrollLeft+=Ft*lt.settings.wheelSpeed),_(lt),ai=ai||function(li,Ut){var Ft=Math.floor(Pe.scrollTop),Si=0===Pe.scrollTop,ai=Ft+Pe.offsetHeight===Pe.scrollHeight,ci=0===Pe.scrollLeft,rn=Pe.scrollLeft+Pe.offsetWidth===Pe.scrollWidth;return!(Math.abs(Ut)>Math.abs(li)?Si||ai:ci||rn)||!lt.settings.wheelPropagation}(Ft,Si),ai&&!li.ctrlKey&&(li.stopPropagation(),li.preventDefault())}}void 0!==window.onwheel?lt.event.bind(Pe,"wheel",At):void 0!==window.onmousewheel&<.event.bind(Pe,"mousewheel",At)},touch:function(lt){if(u.supportsTouch||u.supportsIePointer){var Pe=lt.element,ot={},At=0,li={},Ut=null;u.supportsTouch?(lt.event.bind(Pe,"touchstart",ai),lt.event.bind(Pe,"touchmove",rn),lt.event.bind(Pe,"touchend",Vi)):u.supportsIePointer&&(window.PointerEvent?(lt.event.bind(Pe,"pointerdown",ai),lt.event.bind(Pe,"pointermove",rn),lt.event.bind(Pe,"pointerup",Vi)):window.MSPointerEvent&&(lt.event.bind(Pe,"MSPointerDown",ai),lt.event.bind(Pe,"MSPointerMove",rn),lt.event.bind(Pe,"MSPointerUp",Vi)))}function rt(Di,Xi){Pe.scrollTop-=Xi,Pe.scrollLeft-=Di,_(lt)}function Ft(Di){return Di.targetTouches?Di.targetTouches[0]:Di}function Si(Di){return!(Di.pointerType&&"pen"===Di.pointerType&&0===Di.buttons||!(Di.targetTouches&&1===Di.targetTouches.length||Di.pointerType&&"mouse"!==Di.pointerType&&Di.pointerType!==Di.MSPOINTER_TYPE_MOUSE))}function ai(Di){if(Si(Di)){var Xi=Ft(Di);ot.pageX=Xi.pageX,ot.pageY=Xi.pageY,At=(new Date).getTime(),null!==Ut&&clearInterval(Ut)}}function rn(Di){if(Si(Di)){var Xi=Ft(Di),Ke={pageX:Xi.pageX,pageY:Xi.pageY},mt=Ke.pageX-ot.pageX,be=Ke.pageY-ot.pageY;if(function(Di,Xi,Ke){if(!Pe.contains(Di))return!1;for(var mt=Di;mt&&mt!==Pe;){if(mt.classList.contains(G_element_consuming))return!0;var be=O(mt);if(Ke&&be.overflowY.match(/(scroll|auto)/)){var qe=mt.scrollHeight-mt.clientHeight;if(qe>0&&(mt.scrollTop>0&&Ke<0||mt.scrollTop0))return!0}if(Xi&&be.overflowX.match(/(scroll|auto)/)){var vt=mt.scrollWidth-mt.clientWidth;if(vt>0&&(mt.scrollLeft>0&&Xi<0||mt.scrollLeft0))return!0}mt=mt.parentNode}return!1}(Di.target,mt,be))return;rt(mt,be),ot=Ke;var qe=(new Date).getTime(),vt=qe-At;vt>0&&(li.x=mt/vt,li.y=be/vt,At=qe),function(Di,Xi){var Ke=Math.floor(Pe.scrollTop),mt=Pe.scrollLeft,be=Math.abs(Di),qe=Math.abs(Xi);if(qe>be){if(Xi<0&&Ke===lt.contentHeight-lt.containerHeight||Xi>0&&0===Ke)return 0===window.scrollY&&Xi>0&&u.isChrome}else if(be>qe&&(Di<0&&mt===lt.contentWidth-lt.containerWidth||Di>0&&0===mt))return!0;return!0}(mt,be)&&Di.preventDefault()}}function Vi(){lt.settings.swipeEasing&&(clearInterval(Ut),Ut=setInterval(function(){lt.isInitialized?clearInterval(Ut):li.x||li.y?Math.abs(li.x)<.01&&Math.abs(li.y)<.01?clearInterval(Ut):(rt(30*li.x,30*li.y),li.x*=.8,li.y*=.8):clearInterval(Ut)},10))}}},Re=function(Pe,Be){var rt=this;if(void 0===Be&&(Be={}),"string"==typeof Pe&&(Pe=document.querySelector(Pe)),!Pe||!Pe.nodeName)throw new Error("no element is specified to initialize PerfectScrollbar");for(var ot in this.element=Pe,Pe.classList.add("ps"),this.settings={handlers:["click-rail","drag-thumb","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollingThreshold:1e3,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipeEasing:!0,useBothWheelAxes:!1,wheelPropagation:!0,wheelSpeed:1},Be)this.settings[ot]=Be[ot];this.containerWidth=null,this.containerHeight=null,this.contentWidth=null,this.contentHeight=null;var ai,Si,At=function(){return Pe.classList.add(G_state_focus)},li=function(){return Pe.classList.remove(G_state_focus)};this.isRtl="rtl"===O(Pe).direction,!0===this.isRtl&&Pe.classList.add("ps__rtl"),this.isNegativeScroll=(Si=Pe.scrollLeft,Pe.scrollLeft=-1,ai=Pe.scrollLeft<0,Pe.scrollLeft=Si,ai),this.negativeScrollAdjustment=this.isNegativeScroll?Pe.scrollWidth-Pe.clientWidth:0,this.event=new ne,this.ownerDocument=Pe.ownerDocument||document,this.scrollbarXRail=R(G_element_rail("x")),Pe.appendChild(this.scrollbarXRail),this.scrollbarX=R(G_element_thumb("x")),this.scrollbarXRail.appendChild(this.scrollbarX),this.scrollbarX.setAttribute("tabindex",0),this.event.bind(this.scrollbarX,"focus",At),this.event.bind(this.scrollbarX,"blur",li),this.scrollbarXActive=null,this.scrollbarXWidth=null,this.scrollbarXLeft=null;var Ut=O(this.scrollbarXRail);this.scrollbarXBottom=parseInt(Ut.bottom,10),isNaN(this.scrollbarXBottom)?(this.isScrollbarXUsingBottom=!1,this.scrollbarXTop=i(Ut.top)):this.isScrollbarXUsingBottom=!0,this.railBorderXWidth=i(Ut.borderLeftWidth)+i(Ut.borderRightWidth),T(this.scrollbarXRail,{display:"block"}),this.railXMarginWidth=i(Ut.marginLeft)+i(Ut.marginRight),T(this.scrollbarXRail,{display:""}),this.railXWidth=null,this.railXRatio=null,this.scrollbarYRail=R(G_element_rail("y")),Pe.appendChild(this.scrollbarYRail),this.scrollbarY=R(G_element_thumb("y")),this.scrollbarYRail.appendChild(this.scrollbarY),this.scrollbarY.setAttribute("tabindex",0),this.event.bind(this.scrollbarY,"focus",At),this.event.bind(this.scrollbarY,"blur",li),this.scrollbarYActive=null,this.scrollbarYHeight=null,this.scrollbarYTop=null;var Ft=O(this.scrollbarYRail);this.scrollbarYRight=parseInt(Ft.right,10),isNaN(this.scrollbarYRight)?(this.isScrollbarYUsingRight=!1,this.scrollbarYLeft=i(Ft.left)):this.isScrollbarYUsingRight=!0,this.scrollbarYOuterWidth=this.isRtl?function(lt){var Pe=O(lt);return i(Pe.width)+i(Pe.paddingLeft)+i(Pe.paddingRight)+i(Pe.borderLeftWidth)+i(Pe.borderRightWidth)}(this.scrollbarY):null,this.railBorderYWidth=i(Ft.borderTopWidth)+i(Ft.borderBottomWidth),T(this.scrollbarYRail,{display:"block"}),this.railYMarginHeight=i(Ft.marginTop)+i(Ft.marginBottom),T(this.scrollbarYRail,{display:""}),this.railYHeight=null,this.railYRatio=null,this.reach={x:Pe.scrollLeft<=0?"start":Pe.scrollLeft>=this.contentWidth-this.containerWidth?"end":null,y:Pe.scrollTop<=0?"start":Pe.scrollTop>=this.contentHeight-this.containerHeight?"end":null},this.isAlive=!0,this.settings.handlers.forEach(function(Si){return xe[Si](rt)}),this.lastScrollTop=Math.floor(Pe.scrollTop),this.lastScrollLeft=Pe.scrollLeft,this.event.bind(this.element,"scroll",function(Si){return rt.onScroll(Si)}),_(this)};Re.prototype.update=function(){!this.isAlive||(this.negativeScrollAdjustment=this.isNegativeScroll?this.element.scrollWidth-this.element.clientWidth:0,T(this.scrollbarXRail,{display:"block"}),T(this.scrollbarYRail,{display:"block"}),this.railXMarginWidth=i(O(this.scrollbarXRail).marginLeft)+i(O(this.scrollbarXRail).marginRight),this.railYMarginHeight=i(O(this.scrollbarYRail).marginTop)+i(O(this.scrollbarYRail).marginBottom),T(this.scrollbarXRail,{display:"none"}),T(this.scrollbarYRail,{display:"none"}),_(this),oe(this,"top",0,!1,!0),oe(this,"left",0,!1,!0),T(this.scrollbarXRail,{display:""}),T(this.scrollbarYRail,{display:""}))},Re.prototype.onScroll=function(Pe){!this.isAlive||(_(this),oe(this,"top",this.element.scrollTop-this.lastScrollTop),oe(this,"left",this.element.scrollLeft-this.lastScrollLeft),this.lastScrollTop=Math.floor(this.element.scrollTop),this.lastScrollLeft=this.element.scrollLeft)},Re.prototype.destroy=function(){!this.isAlive||(this.event.unbindAll(),w(this.scrollbarX),w(this.scrollbarY),w(this.scrollbarXRail),w(this.scrollbarYRail),this.removePsClasses(),this.element=null,this.scrollbarX=null,this.scrollbarY=null,this.scrollbarXRail=null,this.scrollbarYRail=null,this.isAlive=!1)},Re.prototype.removePsClasses=function(){this.element.className=this.element.className.split(" ").filter(function(Pe){return!Pe.match(/^ps([-_].+|)$/)}).join(" ")};const Fe=Re;var q=function(){if("undefined"!=typeof Map)return Map;function lt(Pe,Be){var rt=-1;return Pe.some(function(ot,At){return ot[0]===Be&&(rt=At,!0)}),rt}return function(){function Pe(){this.__entries__=[]}return Object.defineProperty(Pe.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),Pe.prototype.get=function(Be){var rt=lt(this.__entries__,Be),ot=this.__entries__[rt];return ot&&ot[1]},Pe.prototype.set=function(Be,rt){var ot=lt(this.__entries__,Be);~ot?this.__entries__[ot][1]=rt:this.__entries__.push([Be,rt])},Pe.prototype.delete=function(Be){var rt=this.__entries__,ot=lt(rt,Be);~ot&&rt.splice(ot,1)},Pe.prototype.has=function(Be){return!!~lt(this.__entries__,Be)},Pe.prototype.clear=function(){this.__entries__.splice(0)},Pe.prototype.forEach=function(Be,rt){void 0===rt&&(rt=null);for(var ot=0,At=this.__entries__;ot0},lt.prototype.connect_=function(){!j||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Ve?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},lt.prototype.disconnect_=function(){!j||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},lt.prototype.onTransitionEnd_=function(Pe){var Be=Pe.propertyName,rt=void 0===Be?"":Be;Ne.some(function(At){return!!~rt.indexOf(At)})&&this.refresh()},lt.getInstance=function(){return this.instance_||(this.instance_=new lt),this.instance_},lt.instance_=null,lt}(),Te=function(lt,Pe){for(var Be=0,rt=Object.keys(Pe);Be0},lt}(),Oi="undefined"!=typeof WeakMap?new WeakMap:new q,jt=function lt(Pe){if(!(this instanceof lt))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var Be=ue.getInstance(),rt=new Vt(Pe,Be,this);Oi.set(this,rt)};["observe","unobserve","disconnect"].forEach(function(lt){jt.prototype[lt]=function(){var Pe;return(Pe=Oi.get(this))[lt].apply(Pe,arguments)}});const Pi=void 0!==we.ResizeObserver?we.ResizeObserver:jt,He=new P.OlP("PERFECT_SCROLLBAR_CONFIG");class Se{constructor(Pe,Be,rt,ot){this.x=Pe,this.y=Be,this.w=rt,this.h=ot}}class V{constructor(Pe,Be){this.x=Pe,this.y=Be}}const ve=["psScrollY","psScrollX","psScrollUp","psScrollDown","psScrollLeft","psScrollRight","psYReachEnd","psYReachStart","psXReachEnd","psXReachStart"];class Ee{constructor(Pe={}){this.assign(Pe)}assign(Pe={}){for(const Be in Pe)this[Be]=Pe[Be]}}let et=(()=>{class lt{constructor(Be,rt,ot,At,li){this.zone=Be,this.differs=rt,this.elementRef=ot,this.platformId=At,this.defaults=li,this.instance=null,this.ro=null,this.timeout=null,this.animation=null,this.configDiff=null,this.ngDestroy=new e.x,this.disabled=!1,this.psScrollY=new P.vpe,this.psScrollX=new P.vpe,this.psScrollUp=new P.vpe,this.psScrollDown=new P.vpe,this.psScrollLeft=new P.vpe,this.psScrollRight=new P.vpe,this.psYReachEnd=new P.vpe,this.psYReachStart=new P.vpe,this.psXReachEnd=new P.vpe,this.psXReachStart=new P.vpe}ngOnInit(){if(!this.disabled&&(0,o.NF)(this.platformId)){const Be=new Ee(this.defaults);Be.assign(this.config),this.zone.runOutsideAngular(()=>{this.instance=new Fe(this.elementRef.nativeElement,Be)}),this.configDiff||(this.configDiff=this.differs.find(this.config||{}).create(),this.configDiff.diff(this.config||{})),this.zone.runOutsideAngular(()=>{this.ro=new Pi(()=>{this.update()}),this.elementRef.nativeElement.children[0]&&this.ro.observe(this.elementRef.nativeElement.children[0]),this.ro.observe(this.elementRef.nativeElement)}),this.zone.runOutsideAngular(()=>{ve.forEach(rt=>{const ot=rt.replace(/([A-Z])/g,At=>`-${At.toLowerCase()}`);(0,t.R)(this.elementRef.nativeElement,ot).pipe((0,M.e)(20),(0,s.R)(this.ngDestroy)).subscribe(At=>{this[rt].emit(At)})})})}}ngOnDestroy(){(0,o.NF)(this.platformId)&&(this.ngDestroy.next(),this.ngDestroy.complete(),this.ro&&this.ro.disconnect(),this.timeout&&"undefined"!=typeof window&&window.clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.instance&&this.instance.destroy()}),this.instance=null)}ngDoCheck(){!this.disabled&&this.configDiff&&(0,o.NF)(this.platformId)&&this.configDiff.diff(this.config||{})&&(this.ngOnDestroy(),this.ngOnInit())}ngOnChanges(Be){Be.disabled&&!Be.disabled.isFirstChange()&&(0,o.NF)(this.platformId)&&Be.disabled.currentValue!==Be.disabled.previousValue&&(!0===Be.disabled.currentValue?this.ngOnDestroy():!1===Be.disabled.currentValue&&this.ngOnInit())}ps(){return this.instance}update(){"undefined"!=typeof window&&(this.timeout&&window.clearTimeout(this.timeout),this.timeout=window.setTimeout(()=>{if(!this.disabled&&this.configDiff)try{this.zone.runOutsideAngular(()=>{this.instance&&this.instance.update()})}catch(Be){}},0))}geometry(Be="scroll"){return new Se(this.elementRef.nativeElement[Be+"Left"],this.elementRef.nativeElement[Be+"Top"],this.elementRef.nativeElement[Be+"Width"],this.elementRef.nativeElement[Be+"Height"])}position(Be=!1){return!Be&&this.instance?new V(this.instance.reach.x||0,this.instance.reach.y||0):new V(this.elementRef.nativeElement.scrollLeft,this.elementRef.nativeElement.scrollTop)}scrollable(Be="any"){const rt=this.elementRef.nativeElement;return"any"===Be?rt.classList.contains("ps--active-x")||rt.classList.contains("ps--active-y"):"both"===Be?rt.classList.contains("ps--active-x")&&rt.classList.contains("ps--active-y"):rt.classList.contains("ps--active-"+Be)}scrollTo(Be,rt,ot){this.disabled||(null==rt&&null==ot?this.animateScrolling("scrollTop",Be,ot):(null!=Be&&this.animateScrolling("scrollLeft",Be,ot),null!=rt&&this.animateScrolling("scrollTop",rt,ot)))}scrollToX(Be,rt){this.animateScrolling("scrollLeft",Be,rt)}scrollToY(Be,rt){this.animateScrolling("scrollTop",Be,rt)}scrollToTop(Be,rt){this.animateScrolling("scrollTop",Be||0,rt)}scrollToLeft(Be,rt){this.animateScrolling("scrollLeft",Be||0,rt)}scrollToRight(Be,rt){this.animateScrolling("scrollLeft",this.elementRef.nativeElement.scrollWidth-this.elementRef.nativeElement.clientWidth-(Be||0),rt)}scrollToBottom(Be,rt){this.animateScrolling("scrollTop",this.elementRef.nativeElement.scrollHeight-this.elementRef.nativeElement.clientHeight-(Be||0),rt)}scrollToElement(Be,rt,ot){if("string"==typeof Be&&(Be=this.elementRef.nativeElement.querySelector(Be)),Be){const At=Be.getBoundingClientRect(),li=this.elementRef.nativeElement.getBoundingClientRect();this.elementRef.nativeElement.classList.contains("ps--active-x")&&this.animateScrolling("scrollLeft",At.left-li.left+this.elementRef.nativeElement.scrollLeft+(rt||0),ot),this.elementRef.nativeElement.classList.contains("ps--active-y")&&this.animateScrolling("scrollTop",At.top-li.top+this.elementRef.nativeElement.scrollTop+(rt||0),ot)}}animateScrolling(Be,rt,ot){if(this.animation&&(window.cancelAnimationFrame(this.animation),this.animation=null),ot&&"undefined"!=typeof window){if(rt!==this.elementRef.nativeElement[Be]){let At=0,li=0,Ut=performance.now(),Ft=this.elementRef.nativeElement[Be];const Si=(Ft-rt)/2,ai=ci=>{li+=Math.PI/(ot/(ci-Ut)),At=Math.round(rt+Si+Si*Math.cos(li)),this.elementRef.nativeElement[Be]===Ft&&(li>=Math.PI?this.animateScrolling(Be,rt,0):(this.elementRef.nativeElement[Be]=At,Ft=this.elementRef.nativeElement[Be],Ut=ci,this.animation=window.requestAnimationFrame(ai)))};window.requestAnimationFrame(ai)}}else this.elementRef.nativeElement[Be]=rt}}return lt.\u0275fac=function(Be){return new(Be||lt)(P.Y36(P.R0b),P.Y36(P.aQg),P.Y36(P.SBq),P.Y36(P.Lbi),P.Y36(He,8))},lt.\u0275dir=P.lG2({type:lt,selectors:[["","perfectScrollbar",""]],inputs:{disabled:"disabled",config:["perfectScrollbar","config"]},outputs:{psScrollY:"psScrollY",psScrollX:"psScrollX",psScrollUp:"psScrollUp",psScrollDown:"psScrollDown",psScrollLeft:"psScrollLeft",psScrollRight:"psScrollRight",psYReachEnd:"psYReachEnd",psYReachStart:"psYReachStart",psXReachEnd:"psXReachEnd",psXReachStart:"psXReachStart"},exportAs:["ngxPerfectScrollbar"],features:[P.TTD]}),lt})(),Xt=(()=>{class lt{}return lt.\u0275fac=function(Be){return new(Be||lt)},lt.\u0275mod=P.oAB({type:lt}),lt.\u0275inj=P.cJS({imports:[[o.ez],o.ez]}),lt})()},5768:(Ue,K,m)=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});var e=m(842);Object.keys(e).forEach(function(t){"default"!==t&&Object.defineProperty(K,t,{enumerable:!0,get:function(){return e[t]}})})},2999:(Ue,K,m)=>{"use strict";var e=m(7977);K.certificate=m(2390);var t=e.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});K.RSAPrivateKey=t;var v=e.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});K.RSAPublicKey=v;var M=e.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())});K.PublicKey=M;var s=e.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),C=e.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())});K.PrivateKey=C;var c=e.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});K.EncryptedPrivateKey=c;var P=e.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});K.DSAPrivateKey=P,K.DSAparam=e.define("DSAparam",function(){this.int()});var o=e.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(O),this.key("publicKey").optional().explicit(1).bitstr())});K.ECPrivateKey=o;var O=e.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});K.signature=e.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},2390:(Ue,K,m)=>{"use strict";var e=m(7977),t=e.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),v=e.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),M=e.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())}),s=e.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(M),this.key("subjectPublicKey").bitstr())}),C=e.define("RelativeDistinguishedName",function(){this.setof(v)}),c=e.define("RDNSequence",function(){this.seqof(C)}),P=e.define("Name",function(){this.choice({rdnSequence:this.use(c)})}),o=e.define("Validity",function(){this.seq().obj(this.key("notBefore").use(t),this.key("notAfter").use(t))}),O=e.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),T=e.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(M),this.key("issuer").use(P),this.key("validity").use(o),this.key("subject").use(P),this.key("subjectPublicKeyInfo").use(s),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(O).optional())}),R=e.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(T),this.key("signatureAlgorithm").use(M),this.key("signatureValue").bitstr())});Ue.exports=R},5269:(Ue,K,m)=>{var e=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,t=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,v=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,M=m(347),s=m(4330),C=m(3502).Buffer;Ue.exports=function(c,P){var T,o=c.toString(),O=o.match(e);if(O){var S="aes"+O[1],D=C.from(O[2],"hex"),w=C.from(O[3].replace(/[\r\n]/g,""),"base64"),U=M(P,D.slice(0,8),parseInt(O[1],10)).key,G=[],W=s.createDecipheriv(S,U,D);G.push(W.update(w)),G.push(W.final()),T=C.concat(G)}else{var R=o.match(v);T=C.from(R[2].replace(/[\r\n]/g,""),"base64")}return{tag:o.match(t)[1],data:T}}},2772:(Ue,K,m)=>{var e=m(2999),t=m(2562),v=m(5269),M=m(4330),s=m(9357),C=m(3502).Buffer;function c(o){var O;"object"==typeof o&&!C.isBuffer(o)&&(O=o.passphrase,o=o.key),"string"==typeof o&&(o=C.from(o));var D,w,T=v(o,O),R=T.tag,S=T.data;switch(R){case"CERTIFICATE":w=e.certificate.decode(S,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(w||(w=e.PublicKey.decode(S,"der")),D=w.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return e.RSAPublicKey.decode(w.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return w.subjectPrivateKey=w.subjectPublicKey,{type:"ec",data:w};case"1.2.840.10040.4.1":return w.algorithm.params.pub_key=e.DSAparam.decode(w.subjectPublicKey.data,"der"),{type:"dsa",data:w.algorithm.params};default:throw new Error("unknown key id "+D)}case"ENCRYPTED PRIVATE KEY":S=function(o,O){var T=o.algorithm.decrypt.kde.kdeparams.salt,R=parseInt(o.algorithm.decrypt.kde.kdeparams.iters.toString(),10),S=t[o.algorithm.decrypt.cipher.algo.join(".")],D=o.algorithm.decrypt.cipher.iv,w=o.subjectPrivateKey,U=parseInt(S.split("-")[1],10)/8,G=s.pbkdf2Sync(O,T,R,U,"sha1"),W=M.createDecipheriv(S,G,D),ee=[];return ee.push(W.update(w)),ee.push(W.final()),C.concat(ee)}(S=e.EncryptedPrivateKey.decode(S,"der"),O);case"PRIVATE KEY":switch(D=(w=e.PrivateKey.decode(S,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return e.RSAPrivateKey.decode(w.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:w.algorithm.curve,privateKey:e.ECPrivateKey.decode(w.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return w.algorithm.params.priv_key=e.DSAparam.decode(w.subjectPrivateKey,"der"),{type:"dsa",params:w.algorithm.params};default:throw new Error("unknown key id "+D)}case"RSA PUBLIC KEY":return e.RSAPublicKey.decode(S,"der");case"RSA PRIVATE KEY":return e.RSAPrivateKey.decode(S,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:e.DSAPrivateKey.decode(S,"der")};case"EC PRIVATE KEY":return{curve:(S=e.ECPrivateKey.decode(S,"der")).parameters.value,privateKey:S.privateKey};default:throw new Error("unknown key type "+R)}}Ue.exports=c,c.signature=e.signature},9357:(Ue,K,m)=>{K.pbkdf2=m(415),K.pbkdf2Sync=m(7472)},415:(Ue,K,m)=>{var C,T,e=m(3502).Buffer,t=m(2697),v=m(8867),M=m(7472),s=m(4566),c=global.crypto&&global.crypto.subtle,P={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},o=[];function R(){return T||(T=global.process&&global.process.nextTick?global.process.nextTick:global.queueMicrotask?global.queueMicrotask:global.setImmediate?global.setImmediate:global.setTimeout)}function S(w,U,G,W,ee){return c.importKey("raw",w,{name:"PBKDF2"},!1,["deriveBits"]).then(function(ie){return c.deriveBits({name:"PBKDF2",salt:U,iterations:G,hash:{name:ee}},ie,W<<3)}).then(function(ie){return e.from(ie)})}Ue.exports=function(w,U,G,W,ee,ie){"function"==typeof ee&&(ie=ee,ee=void 0);var _e=P[(ee=ee||"sha1").toLowerCase()];if(_e&&"function"==typeof global.Promise){if(t(G,W),w=s(w,v,"Password"),U=s(U,v,"Salt"),"function"!=typeof ie)throw new Error("No callback provided to pbkdf2");!function(w,U){w.then(function(G){R()(function(){U(null,G)})},function(G){R()(function(){U(G)})})}(function(w){if(global.process&&!global.process.browser||!c||!c.importKey||!c.deriveBits)return Promise.resolve(!1);if(void 0!==o[w])return o[w];var U=S(C=C||e.alloc(8),C,10,128,w).then(function(){return!0}).catch(function(){return!1});return o[w]=U,U}(_e).then(function(fe){return fe?S(w,U,G,W,_e):M(w,U,G,W,ee)}),ie)}else R()(function(){var fe;try{fe=M(w,U,G,W,ee)}catch(de){return ie(de)}ie(null,fe)})}},8867:Ue=>{var K;K=global.process&&global.process.browser?"utf-8":global.process&&global.process.version?parseInt(process.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary":"utf-8",Ue.exports=K},2697:Ue=>{var K=Math.pow(2,30)-1;Ue.exports=function(m,e){if("number"!=typeof m)throw new TypeError("Iterations not a number");if(m<0)throw new TypeError("Bad iterations");if("number"!=typeof e)throw new TypeError("Key length not a number");if(e<0||e>K||e!=e)throw new TypeError("Bad key length")}},7472:(Ue,K,m)=>{var e=m(5640),t=m(5634),v=m(5244),M=m(3502).Buffer,s=m(2697),C=m(8867),c=m(4566),P=M.alloc(128),o={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function O(S,D,w){var U=function(S){return"rmd160"===S||"ripemd160"===S?function(U){return(new t).update(U).digest()}:"md5"===S?e:function(U){return v(S).update(U).digest()}}(S),G="sha512"===S||"sha384"===S?128:64;D.length>G?D=U(D):D.length{var e=m(3502).Buffer;Ue.exports=function(t,v,M){if(e.isBuffer(t))return t;if("string"==typeof t)return e.from(t,v);if(ArrayBuffer.isView(t))return e.from(t.buffer);throw new TypeError(M+" must be a string, a Buffer, a typed array or a DataView")}},3701:(Ue,K,m)=>{K.publicEncrypt=m(6562),K.privateDecrypt=m(6705),K.privateEncrypt=function(t,v){return K.publicEncrypt(t,v,!0)},K.publicDecrypt=function(t,v){return K.privateDecrypt(t,v,!0)}},6945:(Ue,K,m)=>{var e=m(6386),t=m(3502).Buffer;function v(M){var s=t.allocUnsafe(4);return s.writeUInt32BE(M,0),s}Ue.exports=function(M,s){for(var P,C=t.alloc(0),c=0;C.length=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function P(y,i,a){var p=c(y,a);return a-1>=i&&(p|=c(y,a-1)<<4),p}function o(y,i,a,p){for(var u=0,_=Math.min(y.length,a),L=i;L<_;L++){var I=y.charCodeAt(L)-48;u*=p,u+=I>=49?I-49+10:I>=17?I-17+10:I}return u}s.isBN=function(i){return i instanceof s||null!==i&&"object"==typeof i&&i.constructor.wordSize===s.wordSize&&Array.isArray(i.words)},s.max=function(i,a){return i.cmp(a)>0?i:a},s.min=function(i,a){return i.cmp(a)<0?i:a},s.prototype._init=function(i,a,p){if("number"==typeof i)return this._initNumber(i,a,p);if("object"==typeof i)return this._initArray(i,a,p);"hex"===a&&(a=16),v(a===(0|a)&&a>=2&&a<=36);var u=0;"-"===(i=i.toString().replace(/\s+/g,""))[0]&&(u++,this.negative=1),u=0;u-=3)this.words[_]|=(L=i[u]|i[u-1]<<8|i[u-2]<<16)<>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);else if("le"===p)for(u=0,_=0;u>>26-I&67108863,(I+=24)>=26&&(I-=26,_++);return this.strip()},s.prototype._parseHex=function(i,a,p){this.length=Math.ceil((i.length-a)/6),this.words=new Array(this.length);for(var u=0;u=a;u-=2)I=P(i,a,u)<<_,this.words[L]|=67108863&I,_>=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;else for(u=(i.length-a)%2==0?a+1:a;u=18?(_-=18,this.words[L+=1]|=I>>>26):_+=8;this.strip()},s.prototype._parseBase=function(i,a,p){this.words=[0],this.length=1;for(var u=0,_=1;_<=67108863;_*=a)u++;u--,_=_/a|0;for(var L=i.length-p,I=L%u,x=Math.min(L,L-I)+p,r=0,b=p;b1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?""};var O=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],T=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],R=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function D(y,i,a){a.negative=i.negative^y.negative;var p=y.length+i.length|0;a.length=p,p=p-1|0;var u=0|y.words[0],_=0|i.words[0],L=u*_,x=L/67108864|0;a.words[0]=67108863&L;for(var r=1;r>>26,J=67108863&x,F=Math.min(r,i.length-1),B=Math.max(0,r-y.length+1);B<=F;B++)b+=(L=(u=0|y.words[r-B|0])*(_=0|i.words[B])+J)/67108864|0,J=67108863&L;a.words[r]=0|J,x=0|b}return 0!==x?a.words[r]=0|x:a.length--,a.strip()}s.prototype.toString=function(i,a){var p;if(a=0|a||1,16===(i=i||10)||"hex"===i){p="";for(var u=0,_=0,L=0;L>>24-u&16777215)||L!==this.length-1?O[6-x.length]+x+p:x+p,(u+=2)>=26&&(u-=26,L--)}for(0!==_&&(p=_.toString(16)+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}if(i===(0|i)&&i>=2&&i<=36){var r=T[i],b=R[i];p="";var J=this.clone();for(J.negative=0;!J.isZero();){var F=J.modn(b).toString(i);p=(J=J.idivn(b)).isZero()?F+p:O[r-F.length]+F+p}for(this.isZero()&&(p="0"+p);p.length%a!=0;)p="0"+p;return 0!==this.negative&&(p="-"+p),p}v(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var i=this.words[0];return 2===this.length?i+=67108864*this.words[1]:3===this.length&&1===this.words[2]?i+=4503599627370496+67108864*this.words[1]:this.length>2&&v(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-i:i},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(i,a){return v(void 0!==C),this.toArrayLike(C,i,a)},s.prototype.toArray=function(i,a){return this.toArrayLike(Array,i,a)},s.prototype.toArrayLike=function(i,a,p){var u=this.byteLength(),_=p||Math.max(1,u);v(u<=_,"byte array longer than desired length"),v(_>0,"Requested array length <= 0"),this.strip();var x,r,L="le"===a,I=new i(_),b=this.clone();if(L){for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[r]=x;for(;r<_;r++)I[r]=0}else{for(r=0;r<_-u;r++)I[r]=0;for(r=0;!b.isZero();r++)x=b.andln(255),b.iushrn(8),I[_-r-1]=x}return I},s.prototype._countBits=Math.clz32?function(i){return 32-Math.clz32(i)}:function(i){var a=i,p=0;return a>=4096&&(p+=13,a>>>=13),a>=64&&(p+=7,a>>>=7),a>=8&&(p+=4,a>>>=4),a>=2&&(p+=2,a>>>=2),p+a},s.prototype._zeroBits=function(i){if(0===i)return 26;var a=i,p=0;return 0==(8191&a)&&(p+=13,a>>>=13),0==(127&a)&&(p+=7,a>>>=7),0==(15&a)&&(p+=4,a>>>=4),0==(3&a)&&(p+=2,a>>>=2),0==(1&a)&&p++,p},s.prototype.bitLength=function(){var a=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+a},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var i=0,a=0;ai.length?this.clone().ior(i):i.clone().ior(this)},s.prototype.uor=function(i){return this.length>i.length?this.clone().iuor(i):i.clone().iuor(this)},s.prototype.iuand=function(i){var a;a=this.length>i.length?i:this;for(var p=0;pi.length?this.clone().iand(i):i.clone().iand(this)},s.prototype.uand=function(i){return this.length>i.length?this.clone().iuand(i):i.clone().iuand(this)},s.prototype.iuxor=function(i){var a,p;this.length>i.length?(a=this,p=i):(a=i,p=this);for(var u=0;ui.length?this.clone().ixor(i):i.clone().ixor(this)},s.prototype.uxor=function(i){return this.length>i.length?this.clone().iuxor(i):i.clone().iuxor(this)},s.prototype.inotn=function(i){v("number"==typeof i&&i>=0);var a=0|Math.ceil(i/26),p=i%26;this._expand(a),p>0&&a--;for(var u=0;u0&&(this.words[u]=~this.words[u]&67108863>>26-p),this.strip()},s.prototype.notn=function(i){return this.clone().inotn(i)},s.prototype.setn=function(i,a){v("number"==typeof i&&i>=0);var p=i/26|0,u=i%26;return this._expand(p+1),this.words[p]=a?this.words[p]|1<i.length?(p=this,u=i):(p=i,u=this);for(var _=0,L=0;L>>26;for(;0!==_&&L>>26;if(this.length=p.length,0!==_)this.words[this.length]=_,this.length++;else if(p!==this)for(;Li.length?this.clone().iadd(i):i.clone().iadd(this)},s.prototype.isub=function(i){if(0!==i.negative){i.negative=0;var a=this.iadd(i);return i.negative=1,a._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(i),this.negative=1,this._normSign();var u,_,p=this.cmp(i);if(0===p)return this.negative=0,this.length=1,this.words[0]=0,this;p>0?(u=this,_=i):(u=i,_=this);for(var L=0,I=0;I<_.length;I++)L=(a=(0|u.words[I])-(0|_.words[I])+L)>>26,this.words[I]=67108863&a;for(;0!==L&&I>26,this.words[I]=67108863&a;if(0===L&&I>>13,te=0|u[1],xe=8191&te,Re=te>>>13,Fe=0|u[2],q=8191&Fe,j=Fe>>>13,we=0|u[3],Ae=8191&we,le=we>>>13,We=0|u[4],yt=8191&We,Ne=We>>>13,Ve=0|u[5],ue=8191&Ve,Te=Ve>>>13,ke=0|u[6],Y=8191&ke,X=ke>>>13,he=0|u[7],Me=8191&he,ze=he>>>13,ht=0|u[8],it=8191&ht,ft=ht>>>13,nt=0|u[9],st=8191&nt,wt=nt>>>13,Bt=0|_[0],Nt=8191&Bt,Vt=Bt>>>13,Oi=0|_[1],jt=8191&Oi,ti=Oi>>>13,Pi=0|_[2],si=8191&Pi,di=Pi>>>13,He=0|_[3],Se=8191&He,V=He>>>13,ve=0|_[4],Ee=8191&ve,et=ve>>>13,$t=0|_[5],Pt=8191&$t,Xt=$t>>>13,lt=0|_[6],Pe=8191<,Be=lt>>>13,rt=0|_[7],ot=8191&rt,At=rt>>>13,li=0|_[8],Ut=8191&li,Ft=li>>>13,Si=0|_[9],ai=8191&Si,ci=Si>>>13;p.negative=i.negative^a.negative,p.length=19;var rn=(I+(x=Math.imul(F,Nt))|0)+((8191&(r=(r=Math.imul(F,Vt))+Math.imul(B,Nt)|0))<<13)|0;I=((b=Math.imul(B,Vt))+(r>>>13)|0)+(rn>>>26)|0,rn&=67108863,x=Math.imul(xe,Nt),r=(r=Math.imul(xe,Vt))+Math.imul(Re,Nt)|0,b=Math.imul(Re,Vt);var Vi=(I+(x=x+Math.imul(F,jt)|0)|0)+((8191&(r=(r=r+Math.imul(F,ti)|0)+Math.imul(B,jt)|0))<<13)|0;I=((b=b+Math.imul(B,ti)|0)+(r>>>13)|0)+(Vi>>>26)|0,Vi&=67108863,x=Math.imul(q,Nt),r=(r=Math.imul(q,Vt))+Math.imul(j,Nt)|0,b=Math.imul(j,Vt),x=x+Math.imul(xe,jt)|0,r=(r=r+Math.imul(xe,ti)|0)+Math.imul(Re,jt)|0,b=b+Math.imul(Re,ti)|0;var Di=(I+(x=x+Math.imul(F,si)|0)|0)+((8191&(r=(r=r+Math.imul(F,di)|0)+Math.imul(B,si)|0))<<13)|0;I=((b=b+Math.imul(B,di)|0)+(r>>>13)|0)+(Di>>>26)|0,Di&=67108863,x=Math.imul(Ae,Nt),r=(r=Math.imul(Ae,Vt))+Math.imul(le,Nt)|0,b=Math.imul(le,Vt),x=x+Math.imul(q,jt)|0,r=(r=r+Math.imul(q,ti)|0)+Math.imul(j,jt)|0,b=b+Math.imul(j,ti)|0,x=x+Math.imul(xe,si)|0,r=(r=r+Math.imul(xe,di)|0)+Math.imul(Re,si)|0,b=b+Math.imul(Re,di)|0;var Xi=(I+(x=x+Math.imul(F,Se)|0)|0)+((8191&(r=(r=r+Math.imul(F,V)|0)+Math.imul(B,Se)|0))<<13)|0;I=((b=b+Math.imul(B,V)|0)+(r>>>13)|0)+(Xi>>>26)|0,Xi&=67108863,x=Math.imul(yt,Nt),r=(r=Math.imul(yt,Vt))+Math.imul(Ne,Nt)|0,b=Math.imul(Ne,Vt),x=x+Math.imul(Ae,jt)|0,r=(r=r+Math.imul(Ae,ti)|0)+Math.imul(le,jt)|0,b=b+Math.imul(le,ti)|0,x=x+Math.imul(q,si)|0,r=(r=r+Math.imul(q,di)|0)+Math.imul(j,si)|0,b=b+Math.imul(j,di)|0,x=x+Math.imul(xe,Se)|0,r=(r=r+Math.imul(xe,V)|0)+Math.imul(Re,Se)|0,b=b+Math.imul(Re,V)|0;var Ke=(I+(x=x+Math.imul(F,Ee)|0)|0)+((8191&(r=(r=r+Math.imul(F,et)|0)+Math.imul(B,Ee)|0))<<13)|0;I=((b=b+Math.imul(B,et)|0)+(r>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,x=Math.imul(ue,Nt),r=(r=Math.imul(ue,Vt))+Math.imul(Te,Nt)|0,b=Math.imul(Te,Vt),x=x+Math.imul(yt,jt)|0,r=(r=r+Math.imul(yt,ti)|0)+Math.imul(Ne,jt)|0,b=b+Math.imul(Ne,ti)|0,x=x+Math.imul(Ae,si)|0,r=(r=r+Math.imul(Ae,di)|0)+Math.imul(le,si)|0,b=b+Math.imul(le,di)|0,x=x+Math.imul(q,Se)|0,r=(r=r+Math.imul(q,V)|0)+Math.imul(j,Se)|0,b=b+Math.imul(j,V)|0,x=x+Math.imul(xe,Ee)|0,r=(r=r+Math.imul(xe,et)|0)+Math.imul(Re,Ee)|0,b=b+Math.imul(Re,et)|0;var mt=(I+(x=x+Math.imul(F,Pt)|0)|0)+((8191&(r=(r=r+Math.imul(F,Xt)|0)+Math.imul(B,Pt)|0))<<13)|0;I=((b=b+Math.imul(B,Xt)|0)+(r>>>13)|0)+(mt>>>26)|0,mt&=67108863,x=Math.imul(Y,Nt),r=(r=Math.imul(Y,Vt))+Math.imul(X,Nt)|0,b=Math.imul(X,Vt),x=x+Math.imul(ue,jt)|0,r=(r=r+Math.imul(ue,ti)|0)+Math.imul(Te,jt)|0,b=b+Math.imul(Te,ti)|0,x=x+Math.imul(yt,si)|0,r=(r=r+Math.imul(yt,di)|0)+Math.imul(Ne,si)|0,b=b+Math.imul(Ne,di)|0,x=x+Math.imul(Ae,Se)|0,r=(r=r+Math.imul(Ae,V)|0)+Math.imul(le,Se)|0,b=b+Math.imul(le,V)|0,x=x+Math.imul(q,Ee)|0,r=(r=r+Math.imul(q,et)|0)+Math.imul(j,Ee)|0,b=b+Math.imul(j,et)|0,x=x+Math.imul(xe,Pt)|0,r=(r=r+Math.imul(xe,Xt)|0)+Math.imul(Re,Pt)|0,b=b+Math.imul(Re,Xt)|0;var be=(I+(x=x+Math.imul(F,Pe)|0)|0)+((8191&(r=(r=r+Math.imul(F,Be)|0)+Math.imul(B,Pe)|0))<<13)|0;I=((b=b+Math.imul(B,Be)|0)+(r>>>13)|0)+(be>>>26)|0,be&=67108863,x=Math.imul(Me,Nt),r=(r=Math.imul(Me,Vt))+Math.imul(ze,Nt)|0,b=Math.imul(ze,Vt),x=x+Math.imul(Y,jt)|0,r=(r=r+Math.imul(Y,ti)|0)+Math.imul(X,jt)|0,b=b+Math.imul(X,ti)|0,x=x+Math.imul(ue,si)|0,r=(r=r+Math.imul(ue,di)|0)+Math.imul(Te,si)|0,b=b+Math.imul(Te,di)|0,x=x+Math.imul(yt,Se)|0,r=(r=r+Math.imul(yt,V)|0)+Math.imul(Ne,Se)|0,b=b+Math.imul(Ne,V)|0,x=x+Math.imul(Ae,Ee)|0,r=(r=r+Math.imul(Ae,et)|0)+Math.imul(le,Ee)|0,b=b+Math.imul(le,et)|0,x=x+Math.imul(q,Pt)|0,r=(r=r+Math.imul(q,Xt)|0)+Math.imul(j,Pt)|0,b=b+Math.imul(j,Xt)|0,x=x+Math.imul(xe,Pe)|0,r=(r=r+Math.imul(xe,Be)|0)+Math.imul(Re,Pe)|0,b=b+Math.imul(Re,Be)|0;var qe=(I+(x=x+Math.imul(F,ot)|0)|0)+((8191&(r=(r=r+Math.imul(F,At)|0)+Math.imul(B,ot)|0))<<13)|0;I=((b=b+Math.imul(B,At)|0)+(r>>>13)|0)+(qe>>>26)|0,qe&=67108863,x=Math.imul(it,Nt),r=(r=Math.imul(it,Vt))+Math.imul(ft,Nt)|0,b=Math.imul(ft,Vt),x=x+Math.imul(Me,jt)|0,r=(r=r+Math.imul(Me,ti)|0)+Math.imul(ze,jt)|0,b=b+Math.imul(ze,ti)|0,x=x+Math.imul(Y,si)|0,r=(r=r+Math.imul(Y,di)|0)+Math.imul(X,si)|0,b=b+Math.imul(X,di)|0,x=x+Math.imul(ue,Se)|0,r=(r=r+Math.imul(ue,V)|0)+Math.imul(Te,Se)|0,b=b+Math.imul(Te,V)|0,x=x+Math.imul(yt,Ee)|0,r=(r=r+Math.imul(yt,et)|0)+Math.imul(Ne,Ee)|0,b=b+Math.imul(Ne,et)|0,x=x+Math.imul(Ae,Pt)|0,r=(r=r+Math.imul(Ae,Xt)|0)+Math.imul(le,Pt)|0,b=b+Math.imul(le,Xt)|0,x=x+Math.imul(q,Pe)|0,r=(r=r+Math.imul(q,Be)|0)+Math.imul(j,Pe)|0,b=b+Math.imul(j,Be)|0,x=x+Math.imul(xe,ot)|0,r=(r=r+Math.imul(xe,At)|0)+Math.imul(Re,ot)|0,b=b+Math.imul(Re,At)|0;var vt=(I+(x=x+Math.imul(F,Ut)|0)|0)+((8191&(r=(r=r+Math.imul(F,Ft)|0)+Math.imul(B,Ut)|0))<<13)|0;I=((b=b+Math.imul(B,Ft)|0)+(r>>>13)|0)+(vt>>>26)|0,vt&=67108863,x=Math.imul(st,Nt),r=(r=Math.imul(st,Vt))+Math.imul(wt,Nt)|0,b=Math.imul(wt,Vt),x=x+Math.imul(it,jt)|0,r=(r=r+Math.imul(it,ti)|0)+Math.imul(ft,jt)|0,b=b+Math.imul(ft,ti)|0,x=x+Math.imul(Me,si)|0,r=(r=r+Math.imul(Me,di)|0)+Math.imul(ze,si)|0,b=b+Math.imul(ze,di)|0,x=x+Math.imul(Y,Se)|0,r=(r=r+Math.imul(Y,V)|0)+Math.imul(X,Se)|0,b=b+Math.imul(X,V)|0,x=x+Math.imul(ue,Ee)|0,r=(r=r+Math.imul(ue,et)|0)+Math.imul(Te,Ee)|0,b=b+Math.imul(Te,et)|0,x=x+Math.imul(yt,Pt)|0,r=(r=r+Math.imul(yt,Xt)|0)+Math.imul(Ne,Pt)|0,b=b+Math.imul(Ne,Xt)|0,x=x+Math.imul(Ae,Pe)|0,r=(r=r+Math.imul(Ae,Be)|0)+Math.imul(le,Pe)|0,b=b+Math.imul(le,Be)|0,x=x+Math.imul(q,ot)|0,r=(r=r+Math.imul(q,At)|0)+Math.imul(j,ot)|0,b=b+Math.imul(j,At)|0,x=x+Math.imul(xe,Ut)|0,r=(r=r+Math.imul(xe,Ft)|0)+Math.imul(Re,Ut)|0,b=b+Math.imul(Re,Ft)|0;var me=(I+(x=x+Math.imul(F,ai)|0)|0)+((8191&(r=(r=r+Math.imul(F,ci)|0)+Math.imul(B,ai)|0))<<13)|0;I=((b=b+Math.imul(B,ci)|0)+(r>>>13)|0)+(me>>>26)|0,me&=67108863,x=Math.imul(st,jt),r=(r=Math.imul(st,ti))+Math.imul(wt,jt)|0,b=Math.imul(wt,ti),x=x+Math.imul(it,si)|0,r=(r=r+Math.imul(it,di)|0)+Math.imul(ft,si)|0,b=b+Math.imul(ft,di)|0,x=x+Math.imul(Me,Se)|0,r=(r=r+Math.imul(Me,V)|0)+Math.imul(ze,Se)|0,b=b+Math.imul(ze,V)|0,x=x+Math.imul(Y,Ee)|0,r=(r=r+Math.imul(Y,et)|0)+Math.imul(X,Ee)|0,b=b+Math.imul(X,et)|0,x=x+Math.imul(ue,Pt)|0,r=(r=r+Math.imul(ue,Xt)|0)+Math.imul(Te,Pt)|0,b=b+Math.imul(Te,Xt)|0,x=x+Math.imul(yt,Pe)|0,r=(r=r+Math.imul(yt,Be)|0)+Math.imul(Ne,Pe)|0,b=b+Math.imul(Ne,Be)|0,x=x+Math.imul(Ae,ot)|0,r=(r=r+Math.imul(Ae,At)|0)+Math.imul(le,ot)|0,b=b+Math.imul(le,At)|0,x=x+Math.imul(q,Ut)|0,r=(r=r+Math.imul(q,Ft)|0)+Math.imul(j,Ut)|0,b=b+Math.imul(j,Ft)|0;var $e=(I+(x=x+Math.imul(xe,ai)|0)|0)+((8191&(r=(r=r+Math.imul(xe,ci)|0)+Math.imul(Re,ai)|0))<<13)|0;I=((b=b+Math.imul(Re,ci)|0)+(r>>>13)|0)+($e>>>26)|0,$e&=67108863,x=Math.imul(st,si),r=(r=Math.imul(st,di))+Math.imul(wt,si)|0,b=Math.imul(wt,di),x=x+Math.imul(it,Se)|0,r=(r=r+Math.imul(it,V)|0)+Math.imul(ft,Se)|0,b=b+Math.imul(ft,V)|0,x=x+Math.imul(Me,Ee)|0,r=(r=r+Math.imul(Me,et)|0)+Math.imul(ze,Ee)|0,b=b+Math.imul(ze,et)|0,x=x+Math.imul(Y,Pt)|0,r=(r=r+Math.imul(Y,Xt)|0)+Math.imul(X,Pt)|0,b=b+Math.imul(X,Xt)|0,x=x+Math.imul(ue,Pe)|0,r=(r=r+Math.imul(ue,Be)|0)+Math.imul(Te,Pe)|0,b=b+Math.imul(Te,Be)|0,x=x+Math.imul(yt,ot)|0,r=(r=r+Math.imul(yt,At)|0)+Math.imul(Ne,ot)|0,b=b+Math.imul(Ne,At)|0,x=x+Math.imul(Ae,Ut)|0,r=(r=r+Math.imul(Ae,Ft)|0)+Math.imul(le,Ut)|0,b=b+Math.imul(le,Ft)|0;var St=(I+(x=x+Math.imul(q,ai)|0)|0)+((8191&(r=(r=r+Math.imul(q,ci)|0)+Math.imul(j,ai)|0))<<13)|0;I=((b=b+Math.imul(j,ci)|0)+(r>>>13)|0)+(St>>>26)|0,St&=67108863,x=Math.imul(st,Se),r=(r=Math.imul(st,V))+Math.imul(wt,Se)|0,b=Math.imul(wt,V),x=x+Math.imul(it,Ee)|0,r=(r=r+Math.imul(it,et)|0)+Math.imul(ft,Ee)|0,b=b+Math.imul(ft,et)|0,x=x+Math.imul(Me,Pt)|0,r=(r=r+Math.imul(Me,Xt)|0)+Math.imul(ze,Pt)|0,b=b+Math.imul(ze,Xt)|0,x=x+Math.imul(Y,Pe)|0,r=(r=r+Math.imul(Y,Be)|0)+Math.imul(X,Pe)|0,b=b+Math.imul(X,Be)|0,x=x+Math.imul(ue,ot)|0,r=(r=r+Math.imul(ue,At)|0)+Math.imul(Te,ot)|0,b=b+Math.imul(Te,At)|0,x=x+Math.imul(yt,Ut)|0,r=(r=r+Math.imul(yt,Ft)|0)+Math.imul(Ne,Ut)|0,b=b+Math.imul(Ne,Ft)|0;var Rt=(I+(x=x+Math.imul(Ae,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Ae,ci)|0)+Math.imul(le,ai)|0))<<13)|0;I=((b=b+Math.imul(le,ci)|0)+(r>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,x=Math.imul(st,Ee),r=(r=Math.imul(st,et))+Math.imul(wt,Ee)|0,b=Math.imul(wt,et),x=x+Math.imul(it,Pt)|0,r=(r=r+Math.imul(it,Xt)|0)+Math.imul(ft,Pt)|0,b=b+Math.imul(ft,Xt)|0,x=x+Math.imul(Me,Pe)|0,r=(r=r+Math.imul(Me,Be)|0)+Math.imul(ze,Pe)|0,b=b+Math.imul(ze,Be)|0,x=x+Math.imul(Y,ot)|0,r=(r=r+Math.imul(Y,At)|0)+Math.imul(X,ot)|0,b=b+Math.imul(X,At)|0,x=x+Math.imul(ue,Ut)|0,r=(r=r+Math.imul(ue,Ft)|0)+Math.imul(Te,Ut)|0,b=b+Math.imul(Te,Ft)|0;var yi=(I+(x=x+Math.imul(yt,ai)|0)|0)+((8191&(r=(r=r+Math.imul(yt,ci)|0)+Math.imul(Ne,ai)|0))<<13)|0;I=((b=b+Math.imul(Ne,ci)|0)+(r>>>13)|0)+(yi>>>26)|0,yi&=67108863,x=Math.imul(st,Pt),r=(r=Math.imul(st,Xt))+Math.imul(wt,Pt)|0,b=Math.imul(wt,Xt),x=x+Math.imul(it,Pe)|0,r=(r=r+Math.imul(it,Be)|0)+Math.imul(ft,Pe)|0,b=b+Math.imul(ft,Be)|0,x=x+Math.imul(Me,ot)|0,r=(r=r+Math.imul(Me,At)|0)+Math.imul(ze,ot)|0,b=b+Math.imul(ze,At)|0,x=x+Math.imul(Y,Ut)|0,r=(r=r+Math.imul(Y,Ft)|0)+Math.imul(X,Ut)|0,b=b+Math.imul(X,Ft)|0;var Ri=(I+(x=x+Math.imul(ue,ai)|0)|0)+((8191&(r=(r=r+Math.imul(ue,ci)|0)+Math.imul(Te,ai)|0))<<13)|0;I=((b=b+Math.imul(Te,ci)|0)+(r>>>13)|0)+(Ri>>>26)|0,Ri&=67108863,x=Math.imul(st,Pe),r=(r=Math.imul(st,Be))+Math.imul(wt,Pe)|0,b=Math.imul(wt,Be),x=x+Math.imul(it,ot)|0,r=(r=r+Math.imul(it,At)|0)+Math.imul(ft,ot)|0,b=b+Math.imul(ft,At)|0,x=x+Math.imul(Me,Ut)|0,r=(r=r+Math.imul(Me,Ft)|0)+Math.imul(ze,Ut)|0,b=b+Math.imul(ze,Ft)|0;var Ii=(I+(x=x+Math.imul(Y,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Y,ci)|0)+Math.imul(X,ai)|0))<<13)|0;I=((b=b+Math.imul(X,ci)|0)+(r>>>13)|0)+(Ii>>>26)|0,Ii&=67108863,x=Math.imul(st,ot),r=(r=Math.imul(st,At))+Math.imul(wt,ot)|0,b=Math.imul(wt,At),x=x+Math.imul(it,Ut)|0,r=(r=r+Math.imul(it,Ft)|0)+Math.imul(ft,Ut)|0,b=b+Math.imul(ft,Ft)|0;var Ki=(I+(x=x+Math.imul(Me,ai)|0)|0)+((8191&(r=(r=r+Math.imul(Me,ci)|0)+Math.imul(ze,ai)|0))<<13)|0;I=((b=b+Math.imul(ze,ci)|0)+(r>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,x=Math.imul(st,Ut),r=(r=Math.imul(st,Ft))+Math.imul(wt,Ut)|0,b=Math.imul(wt,Ft);var at=(I+(x=x+Math.imul(it,ai)|0)|0)+((8191&(r=(r=r+Math.imul(it,ci)|0)+Math.imul(ft,ai)|0))<<13)|0;I=((b=b+Math.imul(ft,ci)|0)+(r>>>13)|0)+(at>>>26)|0,at&=67108863;var Qt=(I+(x=Math.imul(st,ai))|0)+((8191&(r=(r=Math.imul(st,ci))+Math.imul(wt,ai)|0))<<13)|0;return I=((b=Math.imul(wt,ci))+(r>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,L[0]=rn,L[1]=Vi,L[2]=Di,L[3]=Xi,L[4]=Ke,L[5]=mt,L[6]=be,L[7]=qe,L[8]=vt,L[9]=me,L[10]=$e,L[11]=St,L[12]=Rt,L[13]=yi,L[14]=Ri,L[15]=Ii,L[16]=Ki,L[17]=at,L[18]=Qt,0!==I&&(L[19]=I,p.length++),p};function G(y,i,a){return(new W).mulp(y,i,a)}function W(y,i){this.x=y,this.y=i}Math.imul||(w=D),s.prototype.mulTo=function(i,a){var p,u=this.length+i.length;return p=10===this.length&&10===i.length?w(this,i,a):u<63?D(this,i,a):u<1024?function(y,i,a){a.negative=i.negative^y.negative,a.length=y.length+i.length;for(var p=0,u=0,_=0;_>>26)|0)>>>26,L&=67108863}a.words[_]=I,p=L,L=u}return 0!==p?a.words[_]=p:a.length--,a.strip()}(this,i,a):G(this,i,a),p},W.prototype.makeRBT=function(i){for(var a=new Array(i),p=s.prototype._countBits(i)-1,u=0;u>=1;return u},W.prototype.permute=function(i,a,p,u,_,L){for(var I=0;I>>=1)_++;return 1<<_+1+u},W.prototype.conjugate=function(i,a,p){if(!(p<=1))for(var u=0;u

>>=13),_>>>=13;for(L=2*a;L>=26,a+=u/67108864|0,a+=_>>>26,this.words[p]=67108863&_}return 0!==a&&(this.words[p]=a,this.length++),this},s.prototype.muln=function(i){return this.clone().imuln(i)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(i){var a=function(y){for(var i=new Array(y.bitLength()),a=0;a>>u}return i}(i);if(0===a.length)return new s(1);for(var p=this,u=0;u=0);var _,a=i%26,p=(i-a)/26,u=67108863>>>26-a<<26-a;if(0!==a){var L=0;for(_=0;_>>26-a}L&&(this.words[_]=L,this.length++)}if(0!==p){for(_=this.length-1;_>=0;_--)this.words[_+p]=this.words[_];for(_=0;_=0),u=a?(a-a%26)/26:0;var _=i%26,L=Math.min((i-_)/26,this.length),I=67108863^67108863>>>_<<_,x=p;if(u-=L,u=Math.max(0,u),x){for(var r=0;rL)for(this.length-=L,r=0;r=0&&(0!==b||r>=u);r--){var J=0|this.words[r];this.words[r]=b<<26-_|J>>>_,b=J&I}return x&&0!==b&&(x.words[x.length++]=b),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(i,a,p){return v(0===this.negative),this.iushrn(i,a,p)},s.prototype.shln=function(i){return this.clone().ishln(i)},s.prototype.ushln=function(i){return this.clone().iushln(i)},s.prototype.shrn=function(i){return this.clone().ishrn(i)},s.prototype.ushrn=function(i){return this.clone().iushrn(i)},s.prototype.testn=function(i){v("number"==typeof i&&i>=0);var a=i%26,p=(i-a)/26;return!(this.length<=p||!(this.words[p]&1<=0);var a=i%26,p=(i-a)/26;return v(0===this.negative,"imaskn works only with positive numbers"),this.length<=p?this:(0!==a&&p++,this.length=Math.min(p,this.length),0!==a&&(this.words[this.length-1]&=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},s.prototype.isubn=function(i){if(v("number"==typeof i),v(i<67108864),i<0)return this.iaddn(-i);if(0!==this.negative)return this.negative=0,this.iaddn(i),this.negative=1,this;if(this.words[0]-=i,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(x/67108864|0),this.words[_+p]=67108863&L}for(;_>26,this.words[_+p]=67108863&L;if(0===I)return this.strip();for(v(-1===I),I=0,_=0;_>26,this.words[_]=67108863&L;return this.negative=1,this.strip()},s.prototype._wordDiv=function(i,a){var p,u=this.clone(),_=i,L=0|_.words[_.length-1];0!=(p=26-this._countBits(L))&&(_=_.ushln(p),u.iushln(p),L=0|_.words[_.length-1]);var r,x=u.length-_.length;if("mod"!==a){(r=new s(null)).length=x+1,r.words=new Array(r.length);for(var b=0;b=0;F--){var B=67108864*(0|u.words[_.length+F])+(0|u.words[_.length+F-1]);for(B=Math.min(B/L|0,67108863),u._ishlnsubmul(_,B,F);0!==u.negative;)B--,u.negative=0,u._ishlnsubmul(_,1,F),u.isZero()||(u.negative^=1);r&&(r.words[F]=B)}return r&&r.strip(),u.strip(),"div"!==a&&0!==p&&u.iushrn(p),{div:r||null,mod:u}},s.prototype.divmod=function(i,a,p){return v(!i.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===i.negative?(L=this.neg().divmod(i,a),"mod"!==a&&(u=L.div.neg()),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.iadd(i)),{div:u,mod:_}):0===this.negative&&0!==i.negative?(L=this.divmod(i.neg(),a),"mod"!==a&&(u=L.div.neg()),{div:u,mod:L.mod}):0!=(this.negative&i.negative)?(L=this.neg().divmod(i.neg(),a),"div"!==a&&(_=L.mod.neg(),p&&0!==_.negative&&_.isub(i)),{div:L.div,mod:_}):i.length>this.length||this.cmp(i)<0?{div:new s(0),mod:this}:1===i.length?"div"===a?{div:this.divn(i.words[0]),mod:null}:"mod"===a?{div:null,mod:new s(this.modn(i.words[0]))}:{div:this.divn(i.words[0]),mod:new s(this.modn(i.words[0]))}:this._wordDiv(i,a);var u,_,L},s.prototype.div=function(i){return this.divmod(i,"div",!1).div},s.prototype.mod=function(i){return this.divmod(i,"mod",!1).mod},s.prototype.umod=function(i){return this.divmod(i,"mod",!0).mod},s.prototype.divRound=function(i){var a=this.divmod(i);if(a.mod.isZero())return a.div;var p=0!==a.div.negative?a.mod.isub(i):a.mod,u=i.ushrn(1),_=i.andln(1),L=p.cmp(u);return L<0||1===_&&0===L?a.div:0!==a.div.negative?a.div.isubn(1):a.div.iaddn(1)},s.prototype.modn=function(i){v(i<=67108863);for(var a=(1<<26)%i,p=0,u=this.length-1;u>=0;u--)p=(a*p+(0|this.words[u]))%i;return p},s.prototype.idivn=function(i){v(i<=67108863);for(var a=0,p=this.length-1;p>=0;p--){var u=(0|this.words[p])+67108864*a;this.words[p]=u/i|0,a=u%i}return this.strip()},s.prototype.divn=function(i){return this.clone().idivn(i)},s.prototype.egcd=function(i){v(0===i.negative),v(!i.isZero());var a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=new s(0),I=new s(1),x=0;a.isEven()&&p.isEven();)a.iushrn(1),p.iushrn(1),++x;for(var r=p.clone(),b=a.clone();!a.isZero();){for(var J=0,F=1;0==(a.words[0]&F)&&J<26;++J,F<<=1);if(J>0)for(a.iushrn(J);J-- >0;)(u.isOdd()||_.isOdd())&&(u.iadd(r),_.isub(b)),u.iushrn(1),_.iushrn(1);for(var B=0,te=1;0==(p.words[0]&te)&&B<26;++B,te<<=1);if(B>0)for(p.iushrn(B);B-- >0;)(L.isOdd()||I.isOdd())&&(L.iadd(r),I.isub(b)),L.iushrn(1),I.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(L),_.isub(I)):(p.isub(a),L.isub(u),I.isub(_))}return{a:L,b:I,gcd:p.iushln(x)}},s.prototype._invmp=function(i){v(0===i.negative),v(!i.isZero());var J,a=this,p=i.clone();a=0!==a.negative?a.umod(i):a.clone();for(var u=new s(1),_=new s(0),L=p.clone();a.cmpn(1)>0&&p.cmpn(1)>0;){for(var I=0,x=1;0==(a.words[0]&x)&&I<26;++I,x<<=1);if(I>0)for(a.iushrn(I);I-- >0;)u.isOdd()&&u.iadd(L),u.iushrn(1);for(var r=0,b=1;0==(p.words[0]&b)&&r<26;++r,b<<=1);if(r>0)for(p.iushrn(r);r-- >0;)_.isOdd()&&_.iadd(L),_.iushrn(1);a.cmp(p)>=0?(a.isub(p),u.isub(_)):(p.isub(a),_.isub(u))}return(J=0===a.cmpn(1)?u:_).cmpn(0)<0&&J.iadd(i),J},s.prototype.gcd=function(i){if(this.isZero())return i.abs();if(i.isZero())return this.abs();var a=this.clone(),p=i.clone();a.negative=0,p.negative=0;for(var u=0;a.isEven()&&p.isEven();u++)a.iushrn(1),p.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;p.isEven();)p.iushrn(1);var _=a.cmp(p);if(_<0){var L=a;a=p,p=L}else if(0===_||0===p.cmpn(1))break;a.isub(p)}return p.iushln(u)},s.prototype.invm=function(i){return this.egcd(i).a.umod(i)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(i){return this.words[0]&i},s.prototype.bincn=function(i){v("number"==typeof i);var a=i%26,p=(i-a)/26,u=1<>>26,this.words[L]=I&=67108863}return 0!==_&&(this.words[L]=_,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(i){var p,a=i<0;if(0!==this.negative&&!a)return-1;if(0===this.negative&&a)return 1;if(this.strip(),this.length>1)p=1;else{a&&(i=-i),v(i<=67108863,"Number is too big");var u=0|this.words[0];p=u===i?0:ui.length)return 1;if(this.length=0;p--){var u=0|this.words[p],_=0|i.words[p];if(u!==_){u<_?a=-1:u>_&&(a=1);break}}return a},s.prototype.gtn=function(i){return 1===this.cmpn(i)},s.prototype.gt=function(i){return 1===this.cmp(i)},s.prototype.gten=function(i){return this.cmpn(i)>=0},s.prototype.gte=function(i){return this.cmp(i)>=0},s.prototype.ltn=function(i){return-1===this.cmpn(i)},s.prototype.lt=function(i){return-1===this.cmp(i)},s.prototype.lten=function(i){return this.cmpn(i)<=0},s.prototype.lte=function(i){return this.cmp(i)<=0},s.prototype.eqn=function(i){return 0===this.cmpn(i)},s.prototype.eq=function(i){return 0===this.cmp(i)},s.red=function(i){return new se(i)},s.prototype.toRed=function(i){return v(!this.red,"Already a number in reduction context"),v(0===this.negative,"red works only with positives"),i.convertTo(this)._forceRed(i)},s.prototype.fromRed=function(){return v(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(i){return this.red=i,this},s.prototype.forceRed=function(i){return v(!this.red,"Already a number in reduction context"),this._forceRed(i)},s.prototype.redAdd=function(i){return v(this.red,"redAdd works only with red numbers"),this.red.add(this,i)},s.prototype.redIAdd=function(i){return v(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,i)},s.prototype.redSub=function(i){return v(this.red,"redSub works only with red numbers"),this.red.sub(this,i)},s.prototype.redISub=function(i){return v(this.red,"redISub works only with red numbers"),this.red.isub(this,i)},s.prototype.redShl=function(i){return v(this.red,"redShl works only with red numbers"),this.red.shl(this,i)},s.prototype.redMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.mul(this,i)},s.prototype.redIMul=function(i){return v(this.red,"redMul works only with red numbers"),this.red._verify2(this,i),this.red.imul(this,i)},s.prototype.redSqr=function(){return v(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return v(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return v(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return v(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return v(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(i){return v(this.red&&!i.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,i)};var ee={k256:null,p224:null,p192:null,p25519:null};function ie(y,i){this.name=y,this.p=new s(i,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _e(){ie.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function fe(){ie.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function de(){ie.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function ne(){ie.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function se(y){if("string"==typeof y){var i=s._prime(y);this.m=i.p,this.prime=i}else v(y.gtn(1),"modulus must be greater than 1"),this.m=y,this.prime=null}function oe(y){se.call(this,y),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}ie.prototype._tmp=function(){var i=new s(null);return i.words=new Array(Math.ceil(this.n/13)),i},ie.prototype.ireduce=function(i){var p,a=i;do{this.split(a,this.tmp),p=(a=(a=this.imulK(a)).iadd(this.tmp)).bitLength()}while(p>this.n);var u=p0?a.isub(this.p):void 0!==a.strip?a.strip():a._strip(),a},ie.prototype.split=function(i,a){i.iushrn(this.n,0,a)},ie.prototype.imulK=function(i){return i.imul(this.k)},M(_e,ie),_e.prototype.split=function(i,a){for(var p=4194303,u=Math.min(i.length,9),_=0;_>>22,L=I}i.words[_-10]=L>>>=22,i.length-=0===L&&i.length>10?10:9},_e.prototype.imulK=function(i){i.words[i.length]=0,i.words[i.length+1]=0,i.length+=2;for(var a=0,p=0;p>>=26,i.words[p]=_,a=u}return 0!==a&&(i.words[i.length++]=a),i},s._prime=function(i){if(ee[i])return ee[i];var a;if("k256"===i)a=new _e;else if("p224"===i)a=new fe;else if("p192"===i)a=new de;else{if("p25519"!==i)throw new Error("Unknown prime "+i);a=new ne}return ee[i]=a,a},se.prototype._verify1=function(i){v(0===i.negative,"red works only with positives"),v(i.red,"red works only with red numbers")},se.prototype._verify2=function(i,a){v(0==(i.negative|a.negative),"red works only with positives"),v(i.red&&i.red===a.red,"red works only with red numbers")},se.prototype.imod=function(i){return this.prime?this.prime.ireduce(i)._forceRed(this):i.umod(this.m)._forceRed(this)},se.prototype.neg=function(i){return i.isZero()?i.clone():this.m.sub(i)._forceRed(this)},se.prototype.add=function(i,a){this._verify2(i,a);var p=i.add(a);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},se.prototype.iadd=function(i,a){this._verify2(i,a);var p=i.iadd(a);return p.cmp(this.m)>=0&&p.isub(this.m),p},se.prototype.sub=function(i,a){this._verify2(i,a);var p=i.sub(a);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},se.prototype.isub=function(i,a){this._verify2(i,a);var p=i.isub(a);return p.cmpn(0)<0&&p.iadd(this.m),p},se.prototype.shl=function(i,a){return this._verify1(i),this.imod(i.ushln(a))},se.prototype.imul=function(i,a){return this._verify2(i,a),this.imod(i.imul(a))},se.prototype.mul=function(i,a){return this._verify2(i,a),this.imod(i.mul(a))},se.prototype.isqr=function(i){return this.imul(i,i.clone())},se.prototype.sqr=function(i){return this.mul(i,i)},se.prototype.sqrt=function(i){if(i.isZero())return i.clone();var a=this.m.andln(3);if(v(a%2==1),3===a){var p=this.m.add(new s(1)).iushrn(2);return this.pow(i,p)}for(var u=this.m.subn(1),_=0;!u.isZero()&&0===u.andln(1);)_++,u.iushrn(1);v(!u.isZero());var L=new s(1).toRed(this),I=L.redNeg(),x=this.m.subn(1).iushrn(1),r=this.m.bitLength();for(r=new s(2*r*r).toRed(this);0!==this.pow(r,x).cmp(I);)r.redIAdd(I);for(var b=this.pow(r,u),J=this.pow(i,u.addn(1).iushrn(1)),F=this.pow(i,u),B=_;0!==F.cmp(L);){for(var te=F,xe=0;0!==te.cmp(L);xe++)te=te.redSqr();v(xe=0;_--){for(var b=a.words[_],J=r-1;J>=0;J--){var F=b>>J&1;L!==u[0]&&(L=this.sqr(L)),0!==F||0!==I?(I<<=1,I|=F,(4==++x||0===_&&0===J)&&(L=this.mul(L,u[I]),x=0,I=0)):x=0}r=26}return L},se.prototype.convertTo=function(i){var a=i.umod(this.m);return a===i?a.clone():a},se.prototype.convertFrom=function(i){var a=i.clone();return a.red=null,a},s.mont=function(i){return new oe(i)},M(oe,se),oe.prototype.convertTo=function(i){return this.imod(i.ushln(this.shift))},oe.prototype.convertFrom=function(i){var a=this.imod(i.mul(this.rinv));return a.red=null,a},oe.prototype.imul=function(i,a){if(i.isZero()||a.isZero())return i.words[0]=0,i.length=1,i;var p=i.imul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.mul=function(i,a){if(i.isZero()||a.isZero())return new s(0)._forceRed(this);var p=i.mul(a),u=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_=p.isub(u).iushrn(this.shift),L=_;return _.cmp(this.m)>=0?L=_.isub(this.m):_.cmpn(0)<0&&(L=_.iadd(this.m)),L._forceRed(this)},oe.prototype.invm=function(i){return this.imod(i._invmp(this.m).mul(this.r2))._forceRed(this)}}(Ue=m.nmd(Ue),this)},6705:(Ue,K,m)=>{var e=m(2772),t=m(6945),v=m(9401),M=m(2057),s=m(8466),C=m(6386),c=m(8651),P=m(3502).Buffer;Ue.exports=function(S,D,w){var U;U=S.padding?S.padding:w?1:4;var ee,G=e(S),W=G.modulus.byteLength();if(D.length>W||new M(D).cmp(G.modulus)>=0)throw new Error("decryption error");ee=w?c(new M(D),G):s(D,G);var ie=P.alloc(W-ee.length);if(ee=P.concat([ie,ee],W),4===U)return function(R,S){var D=R.modulus.byteLength(),w=C("sha1").update(P.alloc(0)).digest(),U=w.length;if(0!==S[0])throw new Error("decryption error");var G=S.slice(1,U+1),W=S.slice(U+1),ee=v(G,t(W,U)),ie=v(W,t(ee,D-U-1));if(function(R,S){R=P.from(R),S=P.from(S);var D=0,w=R.length;R.length!==S.length&&(D++,w=Math.min(R.length,S.length));for(var U=-1;++U=S.length){G++;break}var W=S.slice(2,U-1);if(("0002"!==w.toString("hex")&&!D||"0001"!==w.toString("hex")&&D)&&G++,W.length<8&&G++,G)throw new Error("decryption error");return S.slice(U)}(0,ee,w);if(3===U)return ee;throw new Error("unknown padding")}},6562:(Ue,K,m)=>{var e=m(2772),t=m(3753),v=m(6386),M=m(6945),s=m(9401),C=m(2057),c=m(8651),P=m(8466),o=m(3502).Buffer;Ue.exports=function(D,w,U){var G;G=D.padding?D.padding:U?1:4;var ee,W=e(D);if(4===G)ee=function(S,D){var w=S.modulus.byteLength(),U=D.length,G=v("sha1").update(o.alloc(0)).digest(),W=G.length,ee=2*W;if(U>w-ee-2)throw new Error("message too long");var ie=o.alloc(w-U-ee-2),_e=w-W-1,fe=t(W),de=s(o.concat([G,ie,o.alloc(1,1),D],_e),M(fe,_e)),ne=s(fe,M(de,W));return new C(o.concat([o.alloc(1),ne,de],w))}(W,w);else if(1===G)ee=function(S,D,w){var W,U=D.length,G=S.modulus.byteLength();if(U>G-11)throw new Error("message too long");return W=w?o.alloc(G-U-3,255):function(S){for(var W,D=o.allocUnsafe(S),w=0,U=t(2*S),G=0;w=0)throw new Error("data too long for modulus")}return U?P(ee,W):c(ee,W)}},8651:(Ue,K,m)=>{var e=m(2057),t=m(3502).Buffer;Ue.exports=function(M,s){return t.from(M.toRed(e.mont(s.modulus)).redPow(new e(s.publicExponent)).fromRed().toArray())}},9401:Ue=>{Ue.exports=function(m,e){for(var t=m.length,v=-1;++v{const e=m(8695),t=m(1465),v=m(3210),M=m(2334);function s(C,c,P,o,O){const T=[].slice.call(arguments,1),R=T.length,S="function"==typeof T[R-1];if(!S&&!e())throw new Error("Callback required as last argument");if(!S){if(R<1)throw new Error("Too few arguments provided");return 1===R?(P=c,c=o=void 0):2===R&&!c.getContext&&(o=P,P=c,c=void 0),new Promise(function(D,w){try{const U=t.create(P,o);D(C(U,c,o))}catch(U){w(U)}})}if(R<2)throw new Error("Too few arguments provided");2===R?(O=P,P=c,c=o=void 0):3===R&&(c.getContext&&void 0===O?(O=o,o=void 0):(O=o,o=P,P=c,c=void 0));try{const D=t.create(P,o);O(null,C(D,c,o))}catch(D){O(D)}}K.create=t.create,K.toCanvas=s.bind(null,v.render),K.toDataURL=s.bind(null,v.renderToDataURL),K.toString=s.bind(null,function(C,c,P){return M.render(C,P)})},8695:Ue=>{Ue.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6221:(Ue,K,m)=>{const e=m(4792).getSymbolSize;K.getRowColCoords=function(v){if(1===v)return[];const M=Math.floor(v/7)+2,s=e(v),C=145===s?26:2*Math.ceil((s-13)/(2*M-2)),c=[s-7];for(let P=1;P{const e=m(4016),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function v(M){this.mode=e.ALPHANUMERIC,this.data=M}v.getBitsLength=function(s){return 11*Math.floor(s/2)+s%2*6},v.prototype.getLength=function(){return this.data.length},v.prototype.getBitsLength=function(){return v.getBitsLength(this.data.length)},v.prototype.write=function(s){let C;for(C=0;C+2<=this.data.length;C+=2){let c=45*t.indexOf(this.data[C]);c+=t.indexOf(this.data[C+1]),s.put(c,11)}this.data.length%2&&s.put(t.indexOf(this.data[C]),6)},Ue.exports=v},2118:Ue=>{function K(){this.buffer=[],this.length=0}K.prototype={get:function(m){const e=Math.floor(m/8);return 1==(this.buffer[e]>>>7-m%8&1)},put:function(m,e){for(let t=0;t>>e-t-1&1))},getLengthInBits:function(){return this.length},putBit:function(m){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),m&&(this.buffer[e]|=128>>>this.length%8),this.length++}},Ue.exports=K},4425:Ue=>{function K(m){if(!m||m<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=m,this.data=new Uint8Array(m*m),this.reservedBit=new Uint8Array(m*m)}K.prototype.set=function(m,e,t,v){const M=m*this.size+e;this.data[M]=t,v&&(this.reservedBit[M]=!0)},K.prototype.get=function(m,e){return this.data[m*this.size+e]},K.prototype.xor=function(m,e,t){this.data[m*this.size+e]^=t},K.prototype.isReserved=function(m,e){return this.reservedBit[m*this.size+e]},Ue.exports=K},5663:(Ue,K,m)=>{const e=m(8419),t=m(4016);function v(M){this.mode=t.BYTE,this.data=new Uint8Array(e(M))}v.getBitsLength=function(s){return 8*s},v.prototype.getLength=function(){return this.data.length},v.prototype.getBitsLength=function(){return v.getBitsLength(this.data.length)},v.prototype.write=function(M){for(let s=0,C=this.data.length;s{const e=m(2259),t=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],v=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];K.getBlocksCount=function(s,C){switch(C){case e.L:return t[4*(s-1)+0];case e.M:return t[4*(s-1)+1];case e.Q:return t[4*(s-1)+2];case e.H:return t[4*(s-1)+3];default:return}},K.getTotalCodewordsCount=function(s,C){switch(C){case e.L:return v[4*(s-1)+0];case e.M:return v[4*(s-1)+1];case e.Q:return v[4*(s-1)+2];case e.H:return v[4*(s-1)+3];default:return}}},2259:(Ue,K)=>{K.L={bit:1},K.M={bit:0},K.Q={bit:3},K.H={bit:2},K.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},K.from=function(t,v){if(K.isValid(t))return t;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"l":case"low":return K.L;case"m":case"medium":return K.M;case"q":case"quartile":return K.Q;case"h":case"high":return K.H;default:throw new Error("Unknown EC Level: "+e)}}(t)}catch(M){return v}}},3114:(Ue,K,m)=>{const e=m(4792).getSymbolSize;K.getPositions=function(M){const s=e(M);return[[0,0],[s-7,0],[0,s-7]]}},7078:(Ue,K,m)=>{const e=m(4792),M=e.getBCHDigit(1335);K.getEncodedBits=function(C,c){const P=C.bit<<3|c;let o=P<<10;for(;e.getBCHDigit(o)-M>=0;)o^=1335<{const m=new Uint8Array(512),e=new Uint8Array(256);(function(){let v=1;for(let M=0;M<255;M++)m[M]=v,e[v]=M,v<<=1,256&v&&(v^=285);for(let M=255;M<512;M++)m[M]=m[M-255]})(),K.log=function(v){if(v<1)throw new Error("log("+v+")");return e[v]},K.exp=function(v){return m[v]},K.mul=function(v,M){return 0===v||0===M?0:m[e[v]+e[M]]}},4388:(Ue,K,m)=>{const e=m(4016),t=m(4792);function v(M){this.mode=e.KANJI,this.data=M}v.getBitsLength=function(s){return 13*s},v.prototype.getLength=function(){return this.data.length},v.prototype.getBitsLength=function(){return v.getBitsLength(this.data.length)},v.prototype.write=function(M){let s;for(s=0;s=33088&&C<=40956)C-=33088;else{if(!(C>=57408&&C<=60351))throw new Error("Invalid SJIS character: "+this.data[s]+"\nMake sure your charset is UTF-8");C-=49472}C=192*(C>>>8&255)+(255&C),M.put(C,13)}},Ue.exports=v},3667:(Ue,K)=>{K.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function e(t,v,M){switch(t){case K.Patterns.PATTERN000:return(v+M)%2==0;case K.Patterns.PATTERN001:return v%2==0;case K.Patterns.PATTERN010:return M%3==0;case K.Patterns.PATTERN011:return(v+M)%3==0;case K.Patterns.PATTERN100:return(Math.floor(v/2)+Math.floor(M/3))%2==0;case K.Patterns.PATTERN101:return v*M%2+v*M%3==0;case K.Patterns.PATTERN110:return(v*M%2+v*M%3)%2==0;case K.Patterns.PATTERN111:return(v*M%3+(v+M)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}K.isValid=function(v){return null!=v&&""!==v&&!isNaN(v)&&v>=0&&v<=7},K.from=function(v){return K.isValid(v)?parseInt(v,10):void 0},K.getPenaltyN1=function(v){const M=v.size;let s=0,C=0,c=0,P=null,o=null;for(let O=0;O=5&&(s+=C-5+3),P=R,C=1),R=v.get(T,O),R===o?c++:(c>=5&&(s+=c-5+3),o=R,c=1)}C>=5&&(s+=C-5+3),c>=5&&(s+=c-5+3)}return s},K.getPenaltyN2=function(v){const M=v.size;let s=0;for(let C=0;C=10&&(1488===C||93===C)&&s++,c=c<<1&2047|v.get(o,P),o>=10&&(1488===c||93===c)&&s++}return 40*s},K.getPenaltyN4=function(v){let M=0;const s=v.data.length;for(let c=0;c{const e=m(4406),t=m(2699);K.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},K.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},K.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},K.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},K.MIXED={bit:-1},K.getCharCountIndicator=function(s,C){if(!s.ccBits)throw new Error("Invalid mode: "+s);if(!e.isValid(C))throw new Error("Invalid version: "+C);return C>=1&&C<10?s.ccBits[0]:C<27?s.ccBits[1]:s.ccBits[2]},K.getBestModeForData=function(s){return t.testNumeric(s)?K.NUMERIC:t.testAlphanumeric(s)?K.ALPHANUMERIC:t.testKanji(s)?K.KANJI:K.BYTE},K.toString=function(s){if(s&&s.id)return s.id;throw new Error("Invalid mode")},K.isValid=function(s){return s&&s.bit&&s.ccBits},K.from=function(s,C){if(K.isValid(s))return s;try{return function(M){if("string"!=typeof M)throw new Error("Param is not a string");switch(M.toLowerCase()){case"numeric":return K.NUMERIC;case"alphanumeric":return K.ALPHANUMERIC;case"kanji":return K.KANJI;case"byte":return K.BYTE;default:throw new Error("Unknown mode: "+M)}}(s)}catch(c){return C}}},7783:(Ue,K,m)=>{const e=m(4016);function t(v){this.mode=e.NUMERIC,this.data=v.toString()}t.getBitsLength=function(M){return 10*Math.floor(M/3)+(M%3?M%3*3+1:0)},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(M){let s,C,c;for(s=0;s+3<=this.data.length;s+=3)C=this.data.substr(s,3),c=parseInt(C,10),M.put(c,10);const P=this.data.length-s;P>0&&(C=this.data.substr(s),c=parseInt(C,10),M.put(c,3*P+1))},Ue.exports=t},1106:(Ue,K,m)=>{const e=m(5339);K.mul=function(v,M){const s=new Uint8Array(v.length+M.length-1);for(let C=0;C=0;){const C=s[0];for(let P=0;P{const e=m(4792),t=m(2259),v=m(2118),M=m(4425),s=m(6221),C=m(3114),c=m(3667),P=m(4655),o=m(2636),O=m(2088),T=m(7078),R=m(4016),S=m(2033);function W(de,ne,se){const oe=de.size,y=T.getEncodedBits(ne,se);let i,a;for(i=0;i<15;i++)a=1==(y>>i&1),de.set(i<6?i:i<8?i+1:oe-15+i,8,a,!0),de.set(8,i<8?oe-i-1:i<9?15-i-1+1:15-i-1,a,!0);de.set(oe-8,8,1,!0)}function fe(de,ne,se,oe){let y;if(Array.isArray(de))y=S.fromArray(de);else{if("string"!=typeof de)throw new Error("Invalid data");{let _=ne;if(!_){const L=S.rawSplit(de);_=O.getBestVersionForData(L,se)}y=S.fromString(de,_||40)}}const i=O.getBestVersionForData(y,se);if(!i)throw new Error("The amount of data is too big to be stored in a QR Code");if(ne){if(ne=0&&p<=6&&(0===u||6===u)||u>=0&&u<=6&&(0===p||6===p)||p>=2&&p<=4&&u>=2&&u<=4,!0)}}(u,ne),function(de){const ne=de.size;for(let se=8;se=7&&function(de,ne){const se=de.size,oe=O.getEncodedBits(ne);let y,i,a;for(let p=0;p<18;p++)y=Math.floor(p/3),i=p%3+se-8-3,a=1==(oe>>p&1),de.set(y,i,a,!0),de.set(i,y,a,!0)}(u,ne),function(de,ne){const se=de.size;let oe=-1,y=se-1,i=7,a=0;for(let p=se-1;p>0;p-=2)for(6===p&&p--;;){for(let u=0;u<2;u++)if(!de.isReserved(y,p-u)){let _=!1;a>>i&1)),de.set(y,p-u,_),i--,-1===i&&(a++,i=7)}if(y+=oe,y<0||se<=y){y-=oe,oe=-oe;break}}}(u,a),isNaN(oe)&&(oe=c.getBestMask(u,W.bind(null,u,se))),c.applyMask(oe,u),W(u,se,oe),{modules:u,version:ne,errorCorrectionLevel:se,maskPattern:oe,segments:y}}K.create=function(ne,se){if(void 0===ne||""===ne)throw new Error("No input text");let y,i,oe=t.M;return void 0!==se&&(oe=t.from(se.errorCorrectionLevel,t.M),y=O.from(se.version),i=c.from(se.maskPattern),se.toSJISFunc&&e.setToSJISFunction(se.toSJISFunc)),fe(ne,y,oe,i)}},2636:(Ue,K,m)=>{const e=m(1106);function t(v){this.genPoly=void 0,this.degree=v,this.degree&&this.initialize(this.degree)}t.prototype.initialize=function(M){this.degree=M,this.genPoly=e.generateECPolynomial(this.degree)},t.prototype.encode=function(M){if(!this.genPoly)throw new Error("Encoder not initialized");const s=new Uint8Array(M.length+this.degree);s.set(M);const C=e.mod(s,this.genPoly),c=this.degree-C.length;if(c>0){const P=new Uint8Array(this.degree);return P.set(C,c),P}return C},Ue.exports=t},2699:(Ue,K)=>{const m="[0-9]+";let t="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";t=t.replace(/u/g,"\\u");const v="(?:(?![A-Z0-9 $%*+\\-./:]|"+t+")(?:.|[\r\n]))+";K.KANJI=new RegExp(t,"g"),K.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),K.BYTE=new RegExp(v,"g"),K.NUMERIC=new RegExp(m,"g"),K.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const M=new RegExp("^"+t+"$"),s=new RegExp("^"+m+"$"),C=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");K.testKanji=function(P){return M.test(P)},K.testNumeric=function(P){return s.test(P)},K.testAlphanumeric=function(P){return C.test(P)}},2033:(Ue,K,m)=>{const e=m(4016),t=m(7783),v=m(2424),M=m(5663),s=m(4388),C=m(2699),c=m(4792),P=m(4901);function o(G){return unescape(encodeURIComponent(G)).length}function O(G,W,ee){const ie=[];let _e;for(;null!==(_e=G.exec(ee));)ie.push({data:_e[0],index:_e.index,mode:W,length:_e[0].length});return ie}function T(G){const W=O(C.NUMERIC,e.NUMERIC,G),ee=O(C.ALPHANUMERIC,e.ALPHANUMERIC,G);let ie,_e;return c.isKanjiModeEnabled()?(ie=O(C.BYTE,e.BYTE,G),_e=O(C.KANJI,e.KANJI,G)):(ie=O(C.BYTE_KANJI,e.BYTE,G),_e=[]),W.concat(ee,ie,_e).sort(function(de,ne){return de.index-ne.index}).map(function(de){return{data:de.data,mode:de.mode,length:de.length}})}function R(G,W){switch(W){case e.NUMERIC:return t.getBitsLength(G);case e.ALPHANUMERIC:return v.getBitsLength(G);case e.KANJI:return s.getBitsLength(G);case e.BYTE:return M.getBitsLength(G)}}function U(G,W){let ee;const ie=e.getBestModeForData(G);if(ee=e.from(W,ie),ee!==e.BYTE&&ee.bit=0?W[W.length-1]:null;return ie&&ie.mode===ee.mode?(W[W.length-1].data+=ee.data,W):(W.push(ee),W)},[]))},K.rawSplit=function(W){return K.fromArray(T(W,c.isKanjiModeEnabled()))}},4792:(Ue,K)=>{let m;const e=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];K.getSymbolSize=function(v){if(!v)throw new Error('"version" cannot be null or undefined');if(v<1||v>40)throw new Error('"version" should be in range from 1 to 40');return 4*v+17},K.getSymbolTotalCodewords=function(v){return e[v]},K.getBCHDigit=function(t){let v=0;for(;0!==t;)v++,t>>>=1;return v},K.setToSJISFunction=function(v){if("function"!=typeof v)throw new Error('"toSJISFunc" is not a valid function.');m=v},K.isKanjiModeEnabled=function(){return void 0!==m},K.toSJIS=function(v){return m(v)}},4406:(Ue,K)=>{K.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}},2088:(Ue,K,m)=>{const e=m(4792),t=m(4655),v=m(2259),M=m(4016),s=m(4406),c=e.getBCHDigit(7973);function o(R,S){return M.getCharCountIndicator(R,S)+4}function O(R,S){let D=0;return R.forEach(function(w){D+=o(w.mode,S)+w.getBitsLength()}),D}K.from=function(S,D){return s.isValid(S)?parseInt(S,10):D},K.getCapacity=function(S,D,w){if(!s.isValid(S))throw new Error("Invalid QR Code version");void 0===w&&(w=M.BYTE);const W=8*(e.getSymbolTotalCodewords(S)-t.getTotalCodewordsCount(S,D));if(w===M.MIXED)return W;const ee=W-o(w,S);switch(w){case M.NUMERIC:return Math.floor(ee/10*3);case M.ALPHANUMERIC:return Math.floor(ee/11*2);case M.KANJI:return Math.floor(ee/13);default:return Math.floor(ee/8)}},K.getBestVersionForData=function(S,D){let w;const U=v.from(D,v.M);if(Array.isArray(S)){if(S.length>1)return function(R,S){for(let D=1;D<=40;D++)if(O(R,D)<=K.getCapacity(D,S,M.MIXED))return D}(S,U);if(0===S.length)return 1;w=S[0]}else w=S;return function(R,S,D){for(let w=1;w<=40;w++)if(S<=K.getCapacity(w,D,R))return w}(w.mode,w.getLength(),U)},K.getEncodedBits=function(S){if(!s.isValid(S)||S<7)throw new Error("Invalid QR Code version");let D=S<<12;for(;e.getBCHDigit(D)-c>=0;)D^=7973<{const e=m(6355);K.render=function(s,C,c){let P=c,o=C;void 0===P&&(!C||!C.getContext)&&(P=C,C=void 0),C||(o=function(){try{return document.createElement("canvas")}catch(M){throw new Error("You need to specify a canvas element")}}()),P=e.getOptions(P);const O=e.getImageWidth(s.modules.size,P),T=o.getContext("2d"),R=T.createImageData(O,O);return e.qrToImageData(R.data,s,P),function(M,s,C){M.clearRect(0,0,s.width,s.height),s.style||(s.style={}),s.height=C,s.width=C,s.style.height=C+"px",s.style.width=C+"px"}(T,o,O),T.putImageData(R,0,0),o},K.renderToDataURL=function(s,C,c){let P=c;return void 0===P&&(!C||!C.getContext)&&(P=C,C=void 0),P||(P={}),K.render(s,C,P).toDataURL(P.type||"image/png",(P.rendererOpts||{}).quality)}},2334:(Ue,K,m)=>{const e=m(6355);function t(s,C){const c=s.a/255,P=C+'="'+s.hex+'"';return c<1?P+" "+C+'-opacity="'+c.toFixed(2).slice(1)+'"':P}function v(s,C,c){let P=s+C;return void 0!==c&&(P+=" "+c),P}K.render=function(C,c,P){const o=e.getOptions(c),O=C.modules.size,T=C.modules.data,R=O+2*o.margin,S=o.color.light.a?"':"",D="0&&S>0&&s[R-1]||(P+=O?v("M",S+c,.5+D+c):v("m",o,0),o=0,O=!1),S+1',G=''+S+D+"\n";return"function"==typeof P&&P(null,G),G}},6355:(Ue,K)=>{function m(e){if("number"==typeof e&&(e=e.toString()),"string"!=typeof e)throw new Error("Color should be defined as hex string");let t=e.slice().replace("#","").split("");if(t.length<3||5===t.length||t.length>8)throw new Error("Invalid hex color: "+e);(3===t.length||4===t.length)&&(t=Array.prototype.concat.apply([],t.map(function(M){return[M,M]}))),6===t.length&&t.push("F","F");const v=parseInt(t.join(""),16);return{r:v>>24&255,g:v>>16&255,b:v>>8&255,a:255&v,hex:"#"+t.slice(0,6).join("")}}K.getOptions=function(t){t||(t={}),t.color||(t.color={});const M=t.width&&t.width>=21?t.width:void 0;return{width:M,scale:M?4:t.scale||4,margin:null==t.margin||t.margin<0?4:t.margin,color:{dark:m(t.color.dark||"#000000ff"),light:m(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},K.getScale=function(t,v){return v.width&&v.width>=t+2*v.margin?v.width/(t+2*v.margin):v.scale},K.getImageWidth=function(t,v){const M=K.getScale(t,v);return Math.floor((t+2*v.margin)*M)},K.qrToImageData=function(t,v,M){const s=v.modules.size,C=v.modules.data,c=K.getScale(s,M),P=Math.floor((s+2*M.margin)*c),o=M.margin*c,O=[M.color.light,M.color.dark];for(let T=0;T=o&&R>=o&&T{"use strict";var e=65536,M=m(3502).Buffer,s=global.crypto||global.msCrypto;Ue.exports=s&&s.getRandomValues?function(c,P){if(c>4294967295)throw new RangeError("requested too many random bytes");var o=M.allocUnsafe(c);if(c>0)if(c>e)for(var O=0;O{"use strict";function e(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var t=m(3502),v=m(3753),M=t.Buffer,s=t.kMaxLength,C=global.crypto||global.msCrypto,c=Math.pow(2,32)-1;function P(S,D){if("number"!=typeof S||S!=S)throw new TypeError("offset must be a number");if(S>c||S<0)throw new TypeError("offset must be a uint32");if(S>s||S>D)throw new RangeError("offset out of range")}function o(S,D,w){if("number"!=typeof S||S!=S)throw new TypeError("size must be a number");if(S>c||S<0)throw new TypeError("size must be a uint32");if(S+D>w||S>s)throw new RangeError("buffer too small")}function T(S,D,w,U){if(process.browser){var W=new Uint8Array(S.buffer,D,w);return C.getRandomValues(W),U?void process.nextTick(function(){U(null,S)}):S}if(!U)return v(w).copy(S,D),S;v(w,function(ie,_e){if(ie)return U(ie);_e.copy(S,D),U(null,S)})}C&&C.getRandomValues||!process.browser?(K.randomFill=function(S,D,w,U){if(!(M.isBuffer(S)||S instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof D)U=D,D=0,w=S.length;else if("function"==typeof w)U=w,w=S.length-D;else if("function"!=typeof U)throw new TypeError('"cb" argument must be a function');return P(D,S.length),o(w,D,S.length),T(S,D,w,U)},K.randomFillSync=function(S,D,w){if(void 0===D&&(D=0),!(M.isBuffer(S)||S instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return P(D,S.length),void 0===w&&(w=S.length-D),o(w,D,S.length),T(S,D,w)}):(K.randomFill=e,K.randomFillSync=e)},891:Ue=>{"use strict";var m={};function e(C,c,P){P||(P=Error);var O=function(T){function R(S,D,w){return T.call(this,function(T,R,S){return"string"==typeof c?c:c(T,R,S)}(S,D,w))||this}return function(C,c){C.prototype=Object.create(c.prototype),C.prototype.constructor=C,C.__proto__=c}(R,T),R}(P);O.prototype.name=P.name,O.prototype.code=C,m[C]=O}function t(C,c){if(Array.isArray(C)){var P=C.length;return C=C.map(function(o){return String(o)}),P>2?"one of ".concat(c," ").concat(C.slice(0,P-1).join(", "),", or ")+C[P-1]:2===P?"one of ".concat(c," ").concat(C[0]," or ").concat(C[1]):"of ".concat(c," ").concat(C[0])}return"of ".concat(c," ").concat(String(C))}e("ERR_INVALID_OPT_VALUE",function(C,c){return'The value "'+c+'" is invalid for option "'+C+'"'},TypeError),e("ERR_INVALID_ARG_TYPE",function(C,c,P){var o,O;if("string"==typeof c&&function(C,c,P){return C.substr(0,c.length)===c}(c,"not ")?(o="must not be",c=c.replace(/^not /,"")):o="must be",function(C,c,P){return(void 0===P||P>C.length)&&(P=C.length),C.substring(P-c.length,P)===c}(C," argument"))O="The ".concat(C," ").concat(o," ").concat(t(c,"type"));else{var T=function(C,c,P){return"number"!=typeof P&&(P=0),!(P+".".length>C.length)&&-1!==C.indexOf(".",P)}(C)?"property":"argument";O='The "'.concat(C,'" ').concat(T," ").concat(o," ").concat(t(c,"type"))}return O+". Received type ".concat(typeof P)},TypeError),e("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),e("ERR_METHOD_NOT_IMPLEMENTED",function(C){return"The "+C+" method is not implemented"}),e("ERR_STREAM_PREMATURE_CLOSE","Premature close"),e("ERR_STREAM_DESTROYED",function(C){return"Cannot call "+C+" after a stream was destroyed"}),e("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),e("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),e("ERR_STREAM_WRITE_AFTER_END","write after end"),e("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),e("ERR_UNKNOWN_ENCODING",function(C){return"Unknown encoding: "+C},TypeError),e("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Ue.exports.q=m},1339:(Ue,K,m)=>{"use strict";var e=Object.keys||function(O){var T=[];for(var R in O)T.push(R);return T};Ue.exports=c;var t=m(3154),v=m(520);m(3894)(c,t);for(var M=e(v.prototype),s=0;s{"use strict";Ue.exports=t;var e=m(6025);function t(v){if(!(this instanceof t))return new t(v);e.call(this,v)}m(3894)(t,e),t.prototype._transform=function(v,M,s){s(null,v)}},3154:(Ue,K,m)=>{"use strict";var e;Ue.exports=y,y.ReadableState=oe,m(9069);var O,v=function(We,yt){return We.listeners(yt).length},M=m(4970),s=m(3172).Buffer,C=global.Uint8Array||function(){},o=m(4616);O=o&&o.debuglog?o.debuglog("stream"):function(){};var ie,_e,fe,T=m(5019),R=m(1920),D=m(7102).getHighWaterMark,w=m(891).q,U=w.ERR_INVALID_ARG_TYPE,G=w.ERR_STREAM_PUSH_AFTER_EOF,W=w.ERR_METHOD_NOT_IMPLEMENTED,ee=w.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;m(3894)(y,M);var de=R.errorOrDestroy,ne=["error","close","destroy","pause","resume"];function oe(le,We,yt){e=e||m(1339),"boolean"!=typeof yt&&(yt=We instanceof e),this.objectMode=!!(le=le||{}).objectMode,yt&&(this.objectMode=this.objectMode||!!le.readableObjectMode),this.highWaterMark=D(this,le,"readableHighWaterMark",yt),this.buffer=new T,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==le.emitClose,this.autoDestroy=!!le.autoDestroy,this.destroyed=!1,this.defaultEncoding=le.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,le.encoding&&(ie||(ie=m(3054).s),this.decoder=new ie(le.encoding),this.encoding=le.encoding)}function y(le){if(e=e||m(1339),!(this instanceof y))return new y(le);this._readableState=new oe(le,this,this instanceof e),this.readable=!0,le&&("function"==typeof le.read&&(this._read=le.read),"function"==typeof le.destroy&&(this._destroy=le.destroy)),M.call(this)}function i(le,We,yt,Ne,Ve){O("readableAddChunk",We);var Te,ue=le._readableState;if(null===We)ue.reading=!1,function(le,We){if(O("onEofChunk"),!We.ended){if(We.decoder){var yt=We.decoder.end();yt&&yt.length&&(We.buffer.push(yt),We.length+=We.objectMode?1:yt.length)}We.ended=!0,We.sync?x(le):(We.needReadable=!1,We.emittedReadable||(We.emittedReadable=!0,r(le)))}}(le,ue);else if(Ve||(Te=function(le,We){var yt;return!function(le){return s.isBuffer(le)||le instanceof C}(We)&&"string"!=typeof We&&void 0!==We&&!le.objectMode&&(yt=new U("chunk",["string","Buffer","Uint8Array"],We)),yt}(ue,We)),Te)de(le,Te);else if(ue.objectMode||We&&We.length>0)if("string"!=typeof We&&!ue.objectMode&&Object.getPrototypeOf(We)!==s.prototype&&(We=function(le){return s.from(le)}(We)),Ne)ue.endEmitted?de(le,new ee):a(le,ue,We,!0);else if(ue.ended)de(le,new G);else{if(ue.destroyed)return!1;ue.reading=!1,ue.decoder&&!yt?(We=ue.decoder.write(We),ue.objectMode||0!==We.length?a(le,ue,We,!1):b(le,ue)):a(le,ue,We,!1)}else Ne||(ue.reading=!1,b(le,ue));return!ue.ended&&(ue.lengthWe.highWaterMark&&(We.highWaterMark=function(le){return le>=u?le=u:(le--,le|=le>>>1,le|=le>>>2,le|=le>>>4,le|=le>>>8,le|=le>>>16,le++),le}(le)),le<=We.length?le:We.ended?We.length:(We.needReadable=!0,0))}function x(le){var We=le._readableState;O("emitReadable",We.needReadable,We.emittedReadable),We.needReadable=!1,We.emittedReadable||(O("emitReadable",We.flowing),We.emittedReadable=!0,process.nextTick(r,le))}function r(le){var We=le._readableState;O("emitReadable_",We.destroyed,We.length,We.ended),!We.destroyed&&(We.length||We.ended)&&(le.emit("readable"),We.emittedReadable=!1),We.needReadable=!We.flowing&&!We.ended&&We.length<=We.highWaterMark,Fe(le)}function b(le,We){We.readingMore||(We.readingMore=!0,process.nextTick(J,le,We))}function J(le,We){for(;!We.reading&&!We.ended&&(We.length0,We.resumeScheduled&&!We.paused?We.flowing=!0:le.listenerCount("data")>0&&le.resume()}function te(le){O("readable nexttick read 0"),le.read(0)}function Re(le,We){O("resume",We.reading),We.reading||le.read(0),We.resumeScheduled=!1,le.emit("resume"),Fe(le),We.flowing&&!We.reading&&le.read(0)}function Fe(le){var We=le._readableState;for(O("flow",We.flowing);We.flowing&&null!==le.read(););}function q(le,We){return 0===We.length?null:(We.objectMode?yt=We.buffer.shift():!le||le>=We.length?(yt=We.decoder?We.buffer.join(""):1===We.buffer.length?We.buffer.first():We.buffer.concat(We.length),We.buffer.clear()):yt=We.buffer.consume(le,We.decoder),yt);var yt}function j(le){var We=le._readableState;O("endReadable",We.endEmitted),We.endEmitted||(We.ended=!0,process.nextTick(we,We,le))}function we(le,We){if(O("endReadableNT",le.endEmitted,le.length),!le.endEmitted&&0===le.length&&(le.endEmitted=!0,We.readable=!1,We.emit("end"),le.autoDestroy)){var yt=We._writableState;(!yt||yt.autoDestroy&&yt.finished)&&We.destroy()}}function Ae(le,We){for(var yt=0,Ne=le.length;yt=We.highWaterMark:We.length>0)||We.ended))return O("read: emitReadable",We.length,We.ended),0===We.length&&We.ended?j(this):x(this),null;if(0===(le=L(le,We))&&We.ended)return 0===We.length&&j(this),null;var Ve,Ne=We.needReadable;return O("need readable",Ne),(0===We.length||We.length-le0?q(le,We):null)?(We.needReadable=We.length<=We.highWaterMark,le=0):(We.length-=le,We.awaitDrain=0),0===We.length&&(We.ended||(We.needReadable=!0),yt!==le&&We.ended&&j(this)),null!==Ve&&this.emit("data",Ve),Ve},y.prototype._read=function(le){de(this,new W("_read()"))},y.prototype.pipe=function(le,We){var yt=this,Ne=this._readableState;switch(Ne.pipesCount){case 0:Ne.pipes=le;break;case 1:Ne.pipes=[Ne.pipes,le];break;default:Ne.pipes.push(le)}Ne.pipesCount+=1,O("pipe count=%d opts=%j",Ne.pipesCount,We);var ue=We&&!1===We.end||le===process.stdout||le===process.stderr?ft:ke;function ke(){O("onend"),le.end()}Ne.endEmitted?process.nextTick(ue):yt.once("end",ue),le.on("unpipe",function Te(nt,st){O("onunpipe"),nt===yt&&st&&!1===st.hasUnpiped&&(st.hasUnpiped=!0,O("cleanup"),le.removeListener("close",ht),le.removeListener("finish",it),le.removeListener("drain",Y),le.removeListener("error",ze),le.removeListener("unpipe",Te),yt.removeListener("end",ke),yt.removeListener("end",ft),yt.removeListener("data",Me),X=!0,Ne.awaitDrain&&(!le._writableState||le._writableState.needDrain)&&Y())});var Y=function(le){return function(){var yt=le._readableState;O("pipeOnDrain",yt.awaitDrain),yt.awaitDrain&&yt.awaitDrain--,0===yt.awaitDrain&&v(le,"data")&&(yt.flowing=!0,Fe(le))}}(yt);le.on("drain",Y);var X=!1;function Me(nt){O("ondata");var st=le.write(nt);O("dest.write",st),!1===st&&((1===Ne.pipesCount&&Ne.pipes===le||Ne.pipesCount>1&&-1!==Ae(Ne.pipes,le))&&!X&&(O("false write response, pause",Ne.awaitDrain),Ne.awaitDrain++),yt.pause())}function ze(nt){O("onerror",nt),ft(),le.removeListener("error",ze),0===v(le,"error")&&de(le,nt)}function ht(){le.removeListener("finish",it),ft()}function it(){O("onfinish"),le.removeListener("close",ht),ft()}function ft(){O("unpipe"),yt.unpipe(le)}return yt.on("data",Me),function(le,We,yt){if("function"==typeof le.prependListener)return le.prependListener(We,yt);le._events&&le._events[We]?Array.isArray(le._events[We])?le._events[We].unshift(yt):le._events[We]=[yt,le._events[We]]:le.on(We,yt)}(le,"error",ze),le.once("close",ht),le.once("finish",it),le.emit("pipe",yt),Ne.flowing||(O("pipe resume"),yt.resume()),le},y.prototype.unpipe=function(le){var We=this._readableState,yt={hasUnpiped:!1};if(0===We.pipesCount)return this;if(1===We.pipesCount)return le&&le!==We.pipes||(le||(le=We.pipes),We.pipes=null,We.pipesCount=0,We.flowing=!1,le&&le.emit("unpipe",this,yt)),this;if(!le){var Ne=We.pipes,Ve=We.pipesCount;We.pipes=null,We.pipesCount=0,We.flowing=!1;for(var ue=0;ue0,!1!==Ne.flowing&&this.resume()):"readable"===le&&!Ne.endEmitted&&!Ne.readableListening&&(Ne.readableListening=Ne.needReadable=!0,Ne.flowing=!1,Ne.emittedReadable=!1,O("on readable",Ne.length,Ne.reading),Ne.length?x(this):Ne.reading||process.nextTick(te,this)),yt},y.prototype.removeListener=function(le,We){var yt=M.prototype.removeListener.call(this,le,We);return"readable"===le&&process.nextTick(B,this),yt},y.prototype.removeAllListeners=function(le){var We=M.prototype.removeAllListeners.apply(this,arguments);return("readable"===le||void 0===le)&&process.nextTick(B,this),We},y.prototype.resume=function(){var le=this._readableState;return le.flowing||(O("resume"),le.flowing=!le.readableListening,function(le,We){We.resumeScheduled||(We.resumeScheduled=!0,process.nextTick(Re,le,We))}(this,le)),le.paused=!1,this},y.prototype.pause=function(){return O("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(O("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},y.prototype.wrap=function(le){var We=this,yt=this._readableState,Ne=!1;for(var Ve in le.on("end",function(){if(O("wrapped end"),yt.decoder&&!yt.ended){var Te=yt.decoder.end();Te&&Te.length&&We.push(Te)}We.push(null)}),le.on("data",function(Te){O("wrapped data"),yt.decoder&&(Te=yt.decoder.write(Te)),yt.objectMode&&null==Te||!(yt.objectMode||Te&&Te.length)||We.push(Te)||(Ne=!0,le.pause())}),le)void 0===this[Ve]&&"function"==typeof le[Ve]&&(this[Ve]=function(ke){return function(){return le[ke].apply(le,arguments)}}(Ve));for(var ue=0;ue{"use strict";Ue.exports=P;var e=m(891).q,t=e.ERR_METHOD_NOT_IMPLEMENTED,v=e.ERR_MULTIPLE_CALLBACK,M=e.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=e.ERR_TRANSFORM_WITH_LENGTH_0,C=m(1339);function c(T,R){var S=this._transformState;S.transforming=!1;var D=S.writecb;if(null===D)return this.emit("error",new v);S.writechunk=null,S.writecb=null,null!=R&&this.push(R),D(T);var w=this._readableState;w.reading=!1,(w.needReadable||w.length{"use strict";function t(Fe){var q=this;this.next=null,this.entry=null,this.finish=function(){!function(Fe,q,j){var we=Fe.entry;for(Fe.entry=null;we;){var Ae=we.callback;q.pendingcb--,Ae(undefined),we=we.next}q.corkedRequestsFree.next=Fe}(q,Fe)}}var v;Ue.exports=oe,oe.WritableState=ne;var se,M={deprecate:m(4364)},s=m(4970),C=m(3172).Buffer,c=global.Uint8Array||function(){},O=m(1920),R=m(7102).getHighWaterMark,S=m(891).q,D=S.ERR_INVALID_ARG_TYPE,w=S.ERR_METHOD_NOT_IMPLEMENTED,U=S.ERR_MULTIPLE_CALLBACK,G=S.ERR_STREAM_CANNOT_PIPE,W=S.ERR_STREAM_DESTROYED,ee=S.ERR_STREAM_NULL_VALUES,ie=S.ERR_STREAM_WRITE_AFTER_END,_e=S.ERR_UNKNOWN_ENCODING,fe=O.errorOrDestroy;function de(){}function ne(Fe,q,j){v=v||m(1339),"boolean"!=typeof j&&(j=q instanceof v),this.objectMode=!!(Fe=Fe||{}).objectMode,j&&(this.objectMode=this.objectMode||!!Fe.writableObjectMode),this.highWaterMark=R(this,Fe,"writableHighWaterMark",j),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1,this.decodeStrings=!(!1===Fe.decodeStrings),this.defaultEncoding=Fe.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ae){!function(Fe,q){var j=Fe._writableState,we=j.sync,Ae=j.writecb;if("function"!=typeof Ae)throw new U;if(function(Fe){Fe.writing=!1,Fe.writecb=null,Fe.length-=Fe.writelen,Fe.writelen=0}(j),q)!function(Fe,q,j,we,Ae){--q.pendingcb,j?(process.nextTick(Ae,we),process.nextTick(te,Fe,q),Fe._writableState.errorEmitted=!0,fe(Fe,we)):(Ae(we),Fe._writableState.errorEmitted=!0,fe(Fe,we),te(Fe,q))}(Fe,j,we,q,Ae);else{var le=J(j)||Fe.destroyed;!le&&!j.corked&&!j.bufferProcessing&&j.bufferedRequest&&b(Fe,j),we?process.nextTick(x,Fe,j,le,Ae):x(Fe,j,le,Ae)}}(q,Ae)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==Fe.emitClose,this.autoDestroy=!!Fe.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new t(this)}function oe(Fe){var q=this instanceof(v=v||m(1339));if(!q&&!se.call(oe,this))return new oe(Fe);this._writableState=new ne(Fe,this,q),this.writable=!0,Fe&&("function"==typeof Fe.write&&(this._write=Fe.write),"function"==typeof Fe.writev&&(this._writev=Fe.writev),"function"==typeof Fe.destroy&&(this._destroy=Fe.destroy),"function"==typeof Fe.final&&(this._final=Fe.final)),s.call(this)}function u(Fe,q,j,we,Ae,le,We){q.writelen=we,q.writecb=We,q.writing=!0,q.sync=!0,q.destroyed?q.onwrite(new W("write")):j?Fe._writev(Ae,q.onwrite):Fe._write(Ae,le,q.onwrite),q.sync=!1}function x(Fe,q,j,we){j||function(Fe,q){0===q.length&&q.needDrain&&(q.needDrain=!1,Fe.emit("drain"))}(Fe,q),q.pendingcb--,we(),te(Fe,q)}function b(Fe,q){q.bufferProcessing=!0;var j=q.bufferedRequest;if(Fe._writev&&j&&j.next){var Ae=new Array(q.bufferedRequestCount),le=q.corkedRequestsFree;le.entry=j;for(var We=0,yt=!0;j;)Ae[We]=j,j.isBuf||(yt=!1),j=j.next,We+=1;Ae.allBuffers=yt,u(Fe,q,!0,q.length,Ae,"",le.finish),q.pendingcb++,q.lastBufferedRequest=null,le.next?(q.corkedRequestsFree=le.next,le.next=null):q.corkedRequestsFree=new t(q),q.bufferedRequestCount=0}else{for(;j;){var Ne=j.chunk;if(u(Fe,q,!1,q.objectMode?1:Ne.length,Ne,j.encoding,j.callback),j=j.next,q.bufferedRequestCount--,q.writing)break}null===j&&(q.lastBufferedRequest=null)}q.bufferedRequest=j,q.bufferProcessing=!1}function J(Fe){return Fe.ending&&0===Fe.length&&null===Fe.bufferedRequest&&!Fe.finished&&!Fe.writing}function F(Fe,q){Fe._final(function(j){q.pendingcb--,j&&fe(Fe,j),q.prefinished=!0,Fe.emit("prefinish"),te(Fe,q)})}function te(Fe,q){var j=J(q);if(j&&(function(Fe,q){!q.prefinished&&!q.finalCalled&&("function"!=typeof Fe._final||q.destroyed?(q.prefinished=!0,Fe.emit("prefinish")):(q.pendingcb++,q.finalCalled=!0,process.nextTick(F,Fe,q)))}(Fe,q),0===q.pendingcb&&(q.finished=!0,Fe.emit("finish"),q.autoDestroy))){var we=Fe._readableState;(!we||we.autoDestroy&&we.endEmitted)&&Fe.destroy()}return j}m(3894)(oe,s),ne.prototype.getBuffer=function(){for(var q=this.bufferedRequest,j=[];q;)j.push(q),q=q.next;return j},function(){try{Object.defineProperty(ne.prototype,"buffer",{get:M.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(Fe){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(se=Function.prototype[Symbol.hasInstance],Object.defineProperty(oe,Symbol.hasInstance,{value:function(q){return!!se.call(this,q)||this===oe&&q&&q._writableState instanceof ne}})):se=function(q){return q instanceof this},oe.prototype.pipe=function(){fe(this,new G)},oe.prototype.write=function(Fe,q,j){var we=this._writableState,Ae=!1,le=!we.objectMode&&function(Fe){return C.isBuffer(Fe)||Fe instanceof c}(Fe);return le&&!C.isBuffer(Fe)&&(Fe=function(Fe){return C.from(Fe)}(Fe)),"function"==typeof q&&(j=q,q=null),le?q="buffer":q||(q=we.defaultEncoding),"function"!=typeof j&&(j=de),we.ending?function(Fe,q){var j=new ie;fe(Fe,j),process.nextTick(q,j)}(this,j):(le||function(Fe,q,j,we){var Ae;return null===j?Ae=new ee:"string"!=typeof j&&!q.objectMode&&(Ae=new D("chunk",["string","Buffer"],j)),!Ae||(fe(Fe,Ae),process.nextTick(we,Ae),!1)}(this,we,Fe,j))&&(we.pendingcb++,Ae=function(Fe,q,j,we,Ae,le){if(!j){var We=function(Fe,q,j){return!Fe.objectMode&&!1!==Fe.decodeStrings&&"string"==typeof q&&(q=C.from(q,j)),q}(q,we,Ae);we!==We&&(j=!0,Ae="buffer",we=We)}var yt=q.objectMode?1:we.length;q.length+=yt;var Ne=q.length-1))throw new _e(q);return this._writableState.defaultEncoding=q,this},Object.defineProperty(oe.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(oe.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),oe.prototype._write=function(Fe,q,j){j(new w("_write()"))},oe.prototype._writev=null,oe.prototype.end=function(Fe,q,j){var we=this._writableState;return"function"==typeof Fe?(j=Fe,Fe=null,q=null):"function"==typeof q&&(j=q,q=null),null!=Fe&&this.write(Fe,q),we.corked&&(we.corked=1,this.uncork()),we.ending||function(Fe,q,j){q.ending=!0,te(Fe,q),j&&(q.finished?process.nextTick(j):Fe.once("finish",j)),q.ended=!0,Fe.writable=!1}(this,we,j),this},Object.defineProperty(oe.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(oe.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(q){!this._writableState||(this._writableState.destroyed=q)}}),oe.prototype.destroy=O.destroy,oe.prototype._undestroy=O.undestroy,oe.prototype._destroy=function(Fe,q){q(Fe)}},3872:(Ue,K,m)=>{"use strict";var e;function t(W,ee,ie){return ee in W?Object.defineProperty(W,ee,{value:ie,enumerable:!0,configurable:!0,writable:!0}):W[ee]=ie,W}var v=m(7542),M=Symbol("lastResolve"),s=Symbol("lastReject"),C=Symbol("error"),c=Symbol("ended"),P=Symbol("lastPromise"),o=Symbol("handlePromise"),O=Symbol("stream");function T(W,ee){return{value:W,done:ee}}function R(W){var ee=W[M];if(null!==ee){var ie=W[O].read();null!==ie&&(W[P]=null,W[M]=null,W[s]=null,ee(T(ie,!1)))}}function S(W){process.nextTick(R,W)}var w=Object.getPrototypeOf(function(){}),U=Object.setPrototypeOf((t(e={get stream(){return this[O]},next:function(){var ee=this,ie=this[C];if(null!==ie)return Promise.reject(ie);if(this[c])return Promise.resolve(T(void 0,!0));if(this[O].destroyed)return new Promise(function(ne,se){process.nextTick(function(){ee[C]?se(ee[C]):ne(T(void 0,!0))})});var fe,_e=this[P];if(_e)fe=new Promise(function(W,ee){return function(ie,_e){W.then(function(){ee[c]?ie(T(void 0,!0)):ee[o](ie,_e)},_e)}}(_e,this));else{var de=this[O].read();if(null!==de)return Promise.resolve(T(de,!1));fe=new Promise(this[o])}return this[P]=fe,fe}},Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var ee=this;return new Promise(function(ie,_e){ee[O].destroy(null,function(fe){fe?_e(fe):ie(T(void 0,!0))})})}),e),w);Ue.exports=function(ee){var ie,_e=Object.create(U,(t(ie={},O,{value:ee,writable:!0}),t(ie,M,{value:null,writable:!0}),t(ie,s,{value:null,writable:!0}),t(ie,C,{value:null,writable:!0}),t(ie,c,{value:ee._readableState.endEmitted,writable:!0}),t(ie,o,{value:function(de,ne){var se=_e[O].read();se?(_e[P]=null,_e[M]=null,_e[s]=null,de(T(se,!1))):(_e[M]=de,_e[s]=ne)},writable:!0}),ie));return _e[P]=null,v(ee,function(fe){if(fe&&"ERR_STREAM_PREMATURE_CLOSE"!==fe.code){var de=_e[s];return null!==de&&(_e[P]=null,_e[M]=null,_e[s]=null,de(fe)),void(_e[C]=fe)}var ne=_e[M];null!==ne&&(_e[P]=null,_e[M]=null,_e[s]=null,ne(T(void 0,!0))),_e[c]=!0}),ee.on("readable",S.bind(null,_e)),_e}},5019:(Ue,K,m)=>{"use strict";function e(S,D){var w=Object.keys(S);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(S);D&&(U=U.filter(function(G){return Object.getOwnPropertyDescriptor(S,G).enumerable})),w.push.apply(w,U)}return w}function v(S,D,w){return D in S?Object.defineProperty(S,D,{value:w,enumerable:!0,configurable:!0,writable:!0}):S[D]=w,S}function s(S,D){for(var w=0;w0?this.tail.next=U:this.head=U,this.tail=U,++this.length}},{key:"unshift",value:function(w){var U={data:w,next:this.head};0===this.length&&(this.tail=U),this.head=U,++this.length}},{key:"shift",value:function(){if(0!==this.length){var w=this.head.data;return this.head=1===this.length?this.tail=null:this.head.next,--this.length,w}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(w){if(0===this.length)return"";for(var U=this.head,G=""+U.data;U=U.next;)G+=w+U.data;return G}},{key:"concat",value:function(w){if(0===this.length)return P.alloc(0);for(var U=P.allocUnsafe(w>>>0),G=this.head,W=0;G;)R(G.data,U,W),W+=G.data.length,G=G.next;return U}},{key:"consume",value:function(w,U){var G;return wee.length?ee.length:w;if(W+=ie===ee.length?ee:ee.slice(0,w),0==(w-=ie)){ie===ee.length?(++G,this.head=U.next?U.next:this.tail=null):(this.head=U,U.data=ee.slice(ie));break}++G}return this.length-=G,W}},{key:"_getBuffer",value:function(w){var U=P.allocUnsafe(w),G=this.head,W=1;for(G.data.copy(U),w-=G.data.length;G=G.next;){var ee=G.data,ie=w>ee.length?ee.length:w;if(ee.copy(U,U.length-w,0,ie),0==(w-=ie)){ie===ee.length?(++W,this.head=G.next?G.next:this.tail=null):(this.head=G,G.data=ee.slice(ie));break}++W}return this.length-=W,U}},{key:T,value:function(w,U){return O(this,function(S){for(var D=1;D{"use strict";function m(s,C){v(s,C),e(s)}function e(s){s._writableState&&!s._writableState.emitClose||s._readableState&&!s._readableState.emitClose||s.emit("close")}function v(s,C){s.emit("error",C)}Ue.exports={destroy:function(s,C){var c=this;return this._readableState&&this._readableState.destroyed||this._writableState&&this._writableState.destroyed?(C?C(s):s&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(v,this,s)):process.nextTick(v,this,s)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(s||null,function(O){!C&&O?c._writableState?c._writableState.errorEmitted?process.nextTick(e,c):(c._writableState.errorEmitted=!0,process.nextTick(m,c,O)):process.nextTick(m,c,O):C?(process.nextTick(e,c),C(O)):process.nextTick(e,c)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(s,C){var c=s._readableState,P=s._writableState;c&&c.autoDestroy||P&&P.autoDestroy?s.destroy(C):s.emit("error",C)}}},7542:(Ue,K,m)=>{"use strict";var e=m(891).q.ERR_STREAM_PREMATURE_CLOSE;function v(){}Ue.exports=function s(C,c,P){if("function"==typeof c)return s(C,null,c);c||(c={}),P=function(C){var c=!1;return function(){if(!c){c=!0;for(var P=arguments.length,o=new Array(P),O=0;O{Ue.exports=function(){throw new Error("Readable.from is not available in the browser")}},954:(Ue,K,m)=>{"use strict";var e,v=m(891).q,M=v.ERR_MISSING_ARGS,s=v.ERR_STREAM_DESTROYED;function C(S){if(S)throw S}function P(S,D,w,U){U=function(S){var D=!1;return function(){D||(D=!0,S.apply(void 0,arguments))}}(U);var G=!1;S.on("close",function(){G=!0}),void 0===e&&(e=m(7542)),e(S,{readable:D,writable:w},function(ee){if(ee)return U(ee);G=!0,U()});var W=!1;return function(ee){if(!G&&!W){if(W=!0,function(S){return S.setHeader&&"function"==typeof S.abort}(S))return S.abort();if("function"==typeof S.destroy)return S.destroy();U(ee||new s("pipe"))}}}function o(S){S()}function O(S,D){return S.pipe(D)}function T(S){return S.length&&"function"==typeof S[S.length-1]?S.pop():C}Ue.exports=function(){for(var S=arguments.length,D=new Array(S),w=0;w0,function(de){G||(G=de),de&&W.forEach(o),!_e&&(W.forEach(o),U(G))})});return D.reduce(O)}},7102:(Ue,K,m)=>{"use strict";var e=m(891).q.ERR_INVALID_OPT_VALUE;Ue.exports={getHighWaterMark:function(M,s,C,c){var P=function(M,s,C){return null!=M.highWaterMark?M.highWaterMark:s?M[C]:null}(s,c,C);if(null!=P){if(!isFinite(P)||Math.floor(P)!==P||P<0)throw new e(c?C:"highWaterMark",P);return Math.floor(P)}return M.objectMode?16:16384}}},4970:(Ue,K,m)=>{Ue.exports=m(9069).EventEmitter},5685:(Ue,K,m)=>{(K=Ue.exports=m(3154)).Stream=K,K.Readable=K,K.Writable=m(520),K.Duplex=m(1339),K.Transform=m(6025),K.PassThrough=m(6071),K.finished=m(7542),K.pipeline=m(954)},5634:(Ue,K,m)=>{"use strict";var e=m(3172).Buffer,t=m(3894),v=m(9650),M=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],C=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],P=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],o=[0,1518500249,1859775393,2400959708,2840853838],O=[1352829926,1548603684,1836072691,2053994217,0];function T(){v.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function R(W,ee){return W<>>32-ee}function S(W,ee,ie,_e,fe,de,ne,se){return R(W+(ee^ie^_e)+de+ne|0,se)+fe|0}function D(W,ee,ie,_e,fe,de,ne,se){return R(W+(ee&ie|~ee&_e)+de+ne|0,se)+fe|0}function w(W,ee,ie,_e,fe,de,ne,se){return R(W+((ee|~ie)^_e)+de+ne|0,se)+fe|0}function U(W,ee,ie,_e,fe,de,ne,se){return R(W+(ee&_e|ie&~_e)+de+ne|0,se)+fe|0}function G(W,ee,ie,_e,fe,de,ne,se){return R(W+(ee^(ie|~_e))+de+ne|0,se)+fe|0}t(T,v),T.prototype._update=function(){for(var W=M,ee=0;ee<16;++ee)W[ee]=this._block.readInt32LE(4*ee);for(var ie=0|this._a,_e=0|this._b,fe=0|this._c,de=0|this._d,ne=0|this._e,se=0|this._a,oe=0|this._b,y=0|this._c,i=0|this._d,a=0|this._e,p=0;p<80;p+=1){var u,_;p<16?(u=S(ie,_e,fe,de,ne,W[s[p]],o[0],c[p]),_=G(se,oe,y,i,a,W[C[p]],O[0],P[p])):p<32?(u=D(ie,_e,fe,de,ne,W[s[p]],o[1],c[p]),_=U(se,oe,y,i,a,W[C[p]],O[1],P[p])):p<48?(u=w(ie,_e,fe,de,ne,W[s[p]],o[2],c[p]),_=w(se,oe,y,i,a,W[C[p]],O[2],P[p])):p<64?(u=U(ie,_e,fe,de,ne,W[s[p]],o[3],c[p]),_=D(se,oe,y,i,a,W[C[p]],O[3],P[p])):(u=G(ie,_e,fe,de,ne,W[s[p]],o[4],c[p]),_=S(se,oe,y,i,a,W[C[p]],O[4],P[p])),ie=ne,ne=de,de=R(fe,10),fe=_e,_e=u,se=a,a=i,i=R(y,10),y=oe,oe=_}var L=this._b+fe+i|0;this._b=this._c+de+a|0,this._c=this._d+ne+se|0,this._d=this._e+ie+oe|0,this._e=this._a+_e+y|0,this._a=L},T.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var W=e.alloc?e.alloc(20):new e(20);return W.writeInt32LE(this._a,0),W.writeInt32LE(this._b,4),W.writeInt32LE(this._c,8),W.writeInt32LE(this._d,12),W.writeInt32LE(this._e,16),W},Ue.exports=T},1135:(Ue,K,m)=>{"use strict";m.d(K,{X:()=>t});var e=m(7579);class t extends e.x{constructor(M){super(),this._value=M}get value(){return this.getValue()}_subscribe(M){const s=super._subscribe(M);return!s.closed&&M.next(this._value),s}getValue(){const{hasError:M,thrownError:s,_value:C}=this;if(M)throw s;return this._throwIfClosed(),C}next(M){super.next(this._value=M)}}},8306:(Ue,K,m)=>{"use strict";m.d(K,{y:()=>O});var e=m(930),t=m(727),v=m(8822),M=m(4671);var c=m(2416),P=m(576),o=m(2806);let O=(()=>{class D{constructor(U){U&&(this._subscribe=U)}lift(U){const G=new D;return G.source=this,G.operator=U,G}subscribe(U,G,W){const ee=function(D){return D&&D instanceof e.Lv||function(D){return D&&(0,P.m)(D.next)&&(0,P.m)(D.error)&&(0,P.m)(D.complete)}(D)&&(0,t.Nn)(D)}(U)?U:new e.Hp(U,G,W);return(0,o.x)(()=>{const{operator:ie,source:_e}=this;ee.add(ie?ie.call(ee,_e):_e?this._subscribe(ee):this._trySubscribe(ee))}),ee}_trySubscribe(U){try{return this._subscribe(U)}catch(G){U.error(G)}}forEach(U,G){return new(G=T(G))((W,ee)=>{let ie;ie=this.subscribe(_e=>{try{U(_e)}catch(fe){ee(fe),null==ie||ie.unsubscribe()}},ee,W)})}_subscribe(U){var G;return null===(G=this.source)||void 0===G?void 0:G.subscribe(U)}[v.L](){return this}pipe(...U){return function(D){return 0===D.length?M.y:1===D.length?D[0]:function(U){return D.reduce((G,W)=>W(G),U)}}(U)(this)}toPromise(U){return new(U=T(U))((G,W)=>{let ee;this.subscribe(ie=>ee=ie,ie=>W(ie),()=>G(ee))})}}return D.create=w=>new D(w),D})();function T(D){var w;return null!==(w=null!=D?D:c.v.Promise)&&void 0!==w?w:Promise}},4707:(Ue,K,m)=>{"use strict";m.d(K,{t:()=>v});var e=m(7579),t=m(6063);class v extends e.x{constructor(s=1/0,C=1/0,c=t.l){super(),this._bufferSize=s,this._windowTime=C,this._timestampProvider=c,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=C===1/0,this._bufferSize=Math.max(1,s),this._windowTime=Math.max(1,C)}next(s){const{isStopped:C,_buffer:c,_infiniteTimeWindow:P,_timestampProvider:o,_windowTime:O}=this;C||(c.push(s),!P&&c.push(o.now()+O)),this._trimBuffer(),super.next(s)}_subscribe(s){this._throwIfClosed(),this._trimBuffer();const C=this._innerSubscribe(s),{_infiniteTimeWindow:c,_buffer:P}=this,o=P.slice();for(let O=0;O{"use strict";m.d(K,{u:()=>P,x:()=>c});var e=m(8306),t=m(727);const M=(0,m(3888).d)(o=>function(){o(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var s=m(8737),C=m(2806);let c=(()=>{class o extends e.y{constructor(){super(),this.closed=!1,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(T){const R=new P(this,this);return R.operator=T,R}_throwIfClosed(){if(this.closed)throw new M}next(T){(0,C.x)(()=>{if(this._throwIfClosed(),!this.isStopped){const R=this.observers.slice();for(const S of R)S.next(T)}})}error(T){(0,C.x)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=T;const{observers:R}=this;for(;R.length;)R.shift().error(T)}})}complete(){(0,C.x)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:T}=this;for(;T.length;)T.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}get observed(){var T;return(null===(T=this.observers)||void 0===T?void 0:T.length)>0}_trySubscribe(T){return this._throwIfClosed(),super._trySubscribe(T)}_subscribe(T){return this._throwIfClosed(),this._checkFinalizedStatuses(T),this._innerSubscribe(T)}_innerSubscribe(T){const{hasError:R,isStopped:S,observers:D}=this;return R||S?t.Lc:(D.push(T),new t.w0(()=>(0,s.P)(D,T)))}_checkFinalizedStatuses(T){const{hasError:R,thrownError:S,isStopped:D}=this;R?T.error(S):D&&T.complete()}asObservable(){const T=new e.y;return T.source=this,T}}return o.create=(O,T)=>new P(O,T),o})();class P extends c{constructor(O,T){super(),this.destination=O,this.source=T}next(O){var T,R;null===(R=null===(T=this.destination)||void 0===T?void 0:T.next)||void 0===R||R.call(T,O)}error(O){var T,R;null===(R=null===(T=this.destination)||void 0===T?void 0:T.error)||void 0===R||R.call(T,O)}complete(){var O,T;null===(T=null===(O=this.destination)||void 0===O?void 0:O.complete)||void 0===T||T.call(O)}_subscribe(O){var T,R;return null!==(R=null===(T=this.source)||void 0===T?void 0:T.subscribe(O))&&void 0!==R?R:t.Lc}}},930:(Ue,K,m)=>{"use strict";m.d(K,{Hp:()=>S,Lv:()=>R});var e=m(576),t=m(727),v=m(2416),M=m(7849),s=m(5032);const C=o("C",void 0,void 0);function o(W,ee,ie){return{kind:W,value:ee,error:ie}}var O=m(3410),T=m(2806);class R extends t.w0{constructor(ee){super(),this.isStopped=!1,ee?(this.destination=ee,(0,t.Nn)(ee)&&ee.add(this)):this.destination=G}static create(ee,ie,_e){return new S(ee,ie,_e)}next(ee){this.isStopped?U(o("N",ee,void 0),this):this._next(ee)}error(ee){this.isStopped?U(o("E",void 0,ee),this):(this.isStopped=!0,this._error(ee))}complete(){this.isStopped?U(C,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(ee){this.destination.next(ee)}_error(ee){try{this.destination.error(ee)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}class S extends R{constructor(ee,ie,_e){let fe;if(super(),(0,e.m)(ee))fe=ee;else if(ee){let de;({next:fe,error:ie,complete:_e}=ee),this&&v.v.useDeprecatedNextContext?(de=Object.create(ee),de.unsubscribe=()=>this.unsubscribe()):de=ee,fe=null==fe?void 0:fe.bind(de),ie=null==ie?void 0:ie.bind(de),_e=null==_e?void 0:_e.bind(de)}this.destination={next:fe?D(fe):s.Z,error:D(null!=ie?ie:w),complete:_e?D(_e):s.Z}}}function D(W,ee){return(...ie)=>{try{W(...ie)}catch(_e){v.v.useDeprecatedSynchronousErrorHandling?(0,T.O)(_e):(0,M.h)(_e)}}}function w(W){throw W}function U(W,ee){const{onStoppedNotification:ie}=v.v;ie&&O.z.setTimeout(()=>ie(W,ee))}const G={closed:!0,next:s.Z,error:w,complete:s.Z}},727:(Ue,K,m)=>{"use strict";m.d(K,{Lc:()=>C,w0:()=>s,Nn:()=>c});var e=m(576);const v=(0,m(3888).d)(o=>function(T){o(this),this.message=T?`${T.length} errors occurred during unsubscription:\n${T.map((R,S)=>`${S+1}) ${R.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=T});var M=m(8737);class s{constructor(O){this.initialTeardown=O,this.closed=!1,this._parentage=null,this._teardowns=null}unsubscribe(){let O;if(!this.closed){this.closed=!0;const{_parentage:T}=this;if(T)if(this._parentage=null,Array.isArray(T))for(const D of T)D.remove(this);else T.remove(this);const{initialTeardown:R}=this;if((0,e.m)(R))try{R()}catch(D){O=D instanceof v?D.errors:[D]}const{_teardowns:S}=this;if(S){this._teardowns=null;for(const D of S)try{P(D)}catch(w){O=null!=O?O:[],w instanceof v?O=[...O,...w.errors]:O.push(w)}}if(O)throw new v(O)}}add(O){var T;if(O&&O!==this)if(this.closed)P(O);else{if(O instanceof s){if(O.closed||O._hasParent(this))return;O._addParent(this)}(this._teardowns=null!==(T=this._teardowns)&&void 0!==T?T:[]).push(O)}}_hasParent(O){const{_parentage:T}=this;return T===O||Array.isArray(T)&&T.includes(O)}_addParent(O){const{_parentage:T}=this;this._parentage=Array.isArray(T)?(T.push(O),T):T?[T,O]:O}_removeParent(O){const{_parentage:T}=this;T===O?this._parentage=null:Array.isArray(T)&&(0,M.P)(T,O)}remove(O){const{_teardowns:T}=this;T&&(0,M.P)(T,O),O instanceof s&&O._removeParent(this)}}s.EMPTY=(()=>{const o=new s;return o.closed=!0,o})();const C=s.EMPTY;function c(o){return o instanceof s||o&&"closed"in o&&(0,e.m)(o.remove)&&(0,e.m)(o.add)&&(0,e.m)(o.unsubscribe)}function P(o){(0,e.m)(o)?o():o.unsubscribe()}},2416:(Ue,K,m)=>{"use strict";m.d(K,{v:()=>e});const e={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},9841:(Ue,K,m)=>{"use strict";m.d(K,{a:()=>O});var e=m(8306),t=m(4742),v=m(457),M=m(4671),s=m(3268),C=m(3269),c=m(1810),P=m(5403),o=m(9672);function O(...S){const D=(0,C.yG)(S),w=(0,C.jO)(S),{args:U,keys:G}=(0,t.D)(S);if(0===U.length)return(0,v.D)([],D);const W=new e.y(function(S,D,w=M.y){return U=>{R(D,()=>{const{length:G}=S,W=new Array(G);let ee=G,ie=G;for(let _e=0;_e{const fe=(0,v.D)(S[_e],D);let de=!1;fe.subscribe(new P.Q(U,ne=>{W[_e]=ne,de||(de=!0,ie--),ie||U.next(w(W.slice()))},()=>{--ee||U.complete()}))},U)},U)}}(U,D,G?ee=>(0,c.n)(G,ee):M.y));return w?W.pipe((0,s.Z)(w)):W}function R(S,D,w){S?(0,o.f)(w,S,D):D()}},7272:(Ue,K,m)=>{"use strict";m.d(K,{z:()=>s});var e=m(8189),v=m(3269),M=m(457);function s(...C){return(0,e.J)(1)((0,M.D)(C,(0,v.yG)(C)))}},9770:(Ue,K,m)=>{"use strict";m.d(K,{P:()=>v});var e=m(8306),t=m(8421);function v(M){return new e.y(s=>{(0,t.Xf)(M()).subscribe(s)})}},515:(Ue,K,m)=>{"use strict";m.d(K,{E:()=>t});const t=new(m(8306).y)(s=>s.complete())},4128:(Ue,K,m)=>{"use strict";m.d(K,{D:()=>P});var e=m(8306),t=m(4742),v=m(8421),M=m(3269),s=m(5403),C=m(3268),c=m(1810);function P(...o){const O=(0,M.jO)(o),{args:T,keys:R}=(0,t.D)(o),S=new e.y(D=>{const{length:w}=T;if(!w)return void D.complete();const U=new Array(w);let G=w,W=w;for(let ee=0;ee{ie||(ie=!0,W--),U[ee]=_e},()=>G--,void 0,()=>{(!G||!ie)&&(W||D.next(R?(0,c.n)(R,U):U),D.complete())}))}});return O?S.pipe((0,C.Z)(O)):S}},457:(Ue,K,m)=>{"use strict";m.d(K,{D:()=>de});var e=m(8421),t=m(5363),v=m(4482);function M(ne,se=0){return(0,v.e)((oe,y)=>{y.add(ne.schedule(()=>oe.subscribe(y),se))})}var c=m(8306),o=m(2202),O=m(576),T=m(9672);function S(ne,se){if(!ne)throw new Error("Iterable cannot be null");return new c.y(oe=>{(0,T.f)(oe,se,()=>{const y=ne[Symbol.asyncIterator]();(0,T.f)(oe,se,()=>{y.next().then(i=>{i.done?oe.complete():oe.next(i.value)})},0,!0)})})}var D=m(3670),w=m(8239),U=m(1144),G=m(6495),W=m(2206),ee=m(4532),ie=m(3260);function de(ne,se){return se?function(ne,se){if(null!=ne){if((0,D.c)(ne))return function(ne,se){return(0,e.Xf)(ne).pipe(M(se),(0,t.Q)(se))}(ne,se);if((0,U.z)(ne))return function(ne,se){return new c.y(oe=>{let y=0;return se.schedule(function(){y===ne.length?oe.complete():(oe.next(ne[y++]),oe.closed||this.schedule())})})}(ne,se);if((0,w.t)(ne))return function(ne,se){return(0,e.Xf)(ne).pipe(M(se),(0,t.Q)(se))}(ne,se);if((0,W.D)(ne))return S(ne,se);if((0,G.T)(ne))return function(ne,se){return new c.y(oe=>{let y;return(0,T.f)(oe,se,()=>{y=ne[o.h](),(0,T.f)(oe,se,()=>{let i,a;try{({value:i,done:a}=y.next())}catch(p){return void oe.error(p)}a?oe.complete():oe.next(i)},0,!0)}),()=>(0,O.m)(null==y?void 0:y.return)&&y.return()})}(ne,se);if((0,ie.L)(ne))return function(ne,se){return S((0,ie.Q)(ne),se)}(ne,se)}throw(0,ee.z)(ne)}(ne,se):(0,e.Xf)(ne)}},4968:(Ue,K,m)=>{"use strict";m.d(K,{R:()=>O});var e=m(8421),t=m(8306),v=m(5577),M=m(1144),s=m(576),C=m(3268);const c=["addListener","removeListener"],P=["addEventListener","removeEventListener"],o=["on","off"];function O(w,U,G,W){if((0,s.m)(G)&&(W=G,G=void 0),W)return O(w,U,G).pipe((0,C.Z)(W));const[ee,ie]=function(w){return(0,s.m)(w.addEventListener)&&(0,s.m)(w.removeEventListener)}(w)?P.map(_e=>fe=>w[_e](U,fe,G)):function(w){return(0,s.m)(w.addListener)&&(0,s.m)(w.removeListener)}(w)?c.map(T(w,U)):function(w){return(0,s.m)(w.on)&&(0,s.m)(w.off)}(w)?o.map(T(w,U)):[];if(!ee&&(0,M.z)(w))return(0,v.z)(_e=>O(_e,U,G))((0,e.Xf)(w));if(!ee)throw new TypeError("Invalid event target");return new t.y(_e=>{const fe=(...de)=>_e.next(1ie(fe)})}function T(w,U){return G=>W=>w[G](U,W)}},8421:(Ue,K,m)=>{"use strict";m.d(K,{Xf:()=>S});var e=m(5987),t=m(1144),v=m(8239),M=m(8306),s=m(3670),C=m(2206),c=m(4532),P=m(6495),o=m(3260),O=m(576),T=m(7849),R=m(8822);function S(_e){if(_e instanceof M.y)return _e;if(null!=_e){if((0,s.c)(_e))return function(_e){return new M.y(fe=>{const de=_e[R.L]();if((0,O.m)(de.subscribe))return de.subscribe(fe);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(_e);if((0,t.z)(_e))return function(_e){return new M.y(fe=>{for(let de=0;de<_e.length&&!fe.closed;de++)fe.next(_e[de]);fe.complete()})}(_e);if((0,v.t)(_e))return function(_e){return new M.y(fe=>{_e.then(de=>{fe.closed||(fe.next(de),fe.complete())},de=>fe.error(de)).then(null,T.h)})}(_e);if((0,C.D)(_e))return W(_e);if((0,P.T)(_e))return function(_e){return new M.y(fe=>{for(const de of _e)if(fe.next(de),fe.closed)return;fe.complete()})}(_e);if((0,o.L)(_e))return function(_e){return W((0,o.Q)(_e))}(_e)}throw(0,c.z)(_e)}function W(_e){return new M.y(fe=>{(function(_e,fe){var de,ne,se,oe;return(0,e.mG)(this,void 0,void 0,function*(){try{for(de=(0,e.KL)(_e);!(ne=yield de.next()).done;)if(fe.next(ne.value),fe.closed)return}catch(y){se={error:y}}finally{try{ne&&!ne.done&&(oe=de.return)&&(yield oe.call(de))}finally{if(se)throw se.error}}fe.complete()})})(_e,fe).catch(de=>fe.error(de))})}},6451:(Ue,K,m)=>{"use strict";m.d(K,{T:()=>C});var e=m(8189),t=m(8421),v=m(515),M=m(3269),s=m(457);function C(...c){const P=(0,M.yG)(c),o=(0,M._6)(c,1/0),O=c;return O.length?1===O.length?(0,t.Xf)(O[0]):(0,e.J)(o)((0,s.D)(O,P)):v.E}},9646:(Ue,K,m)=>{"use strict";m.d(K,{of:()=>v});var e=m(3269),t=m(457);function v(...M){const s=(0,e.yG)(M);return(0,t.D)(M,s)}},2843:(Ue,K,m)=>{"use strict";m.d(K,{_:()=>v});var e=m(8306),t=m(576);function v(M,s){const C=(0,t.m)(M)?M:()=>M,c=P=>P.error(C());return new e.y(s?P=>s.schedule(c,0,P):c)}},2805:(Ue,K,m)=>{"use strict";m.d(K,{H:()=>s});var e=m(8306),t=m(4986),v=m(3532),M=m(1165);function s(C=0,c,P=t.P){let o=-1;return null!=c&&((0,v.K)(c)?P=c:o=c),new e.y(O=>{let T=(0,M.q)(C)?+C-P.now():C;T<0&&(T=0);let R=0;return P.schedule(function(){O.closed||(O.next(R++),0<=o?this.schedule(void 0,o):O.complete())},T)})}},5403:(Ue,K,m)=>{"use strict";m.d(K,{Q:()=>t});var e=m(930);class t extends e.Lv{constructor(M,s,C,c,P){super(M),this.onFinalize=P,this._next=s?function(o){try{s(o)}catch(O){M.error(O)}}:super._next,this._error=c?function(o){try{c(o)}catch(O){M.error(O)}finally{this.unsubscribe()}}:super._error,this._complete=C?function(){try{C()}catch(o){M.error(o)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var M;const{closed:s}=this;super.unsubscribe(),!s&&(null===(M=this.onFinalize)||void 0===M||M.call(this))}}},3601:(Ue,K,m)=>{"use strict";m.d(K,{e:()=>c});var e=m(4986),t=m(4482),v=m(8421),M=m(5403),C=m(2805);function c(P,o=e.P){return function(P){return(0,t.e)((o,O)=>{let T=!1,R=null,S=null,D=!1;const w=()=>{if(null==S||S.unsubscribe(),S=null,T){T=!1;const G=R;R=null,O.next(G)}D&&O.complete()},U=()=>{S=null,D&&O.complete()};o.subscribe(new M.Q(O,G=>{T=!0,R=G,S||(0,v.Xf)(P()).subscribe(S=new M.Q(O,w,U))},()=>{D=!0,(!T||!S||S.closed)&&O.complete()}))})}(()=>(0,C.H)(P,o))}},262:(Ue,K,m)=>{"use strict";m.d(K,{K:()=>M});var e=m(8421),t=m(5403),v=m(4482);function M(s){return(0,v.e)((C,c)=>{let O,P=null,o=!1;P=C.subscribe(new t.Q(c,void 0,void 0,T=>{O=(0,e.Xf)(s(T,M(s)(C))),P?(P.unsubscribe(),P=null,O.subscribe(c)):o=!0})),o&&(P.unsubscribe(),P=null,O.subscribe(c))})}},4351:(Ue,K,m)=>{"use strict";m.d(K,{b:()=>v});var e=m(5577),t=m(576);function v(M,s){return(0,t.m)(s)?(0,e.z)(M,s,1):(0,e.z)(M,1)}},8372:(Ue,K,m)=>{"use strict";m.d(K,{b:()=>M});var e=m(4986),t=m(4482),v=m(5403);function M(s,C=e.z){return(0,t.e)((c,P)=>{let o=null,O=null,T=null;const R=()=>{if(o){o.unsubscribe(),o=null;const D=O;O=null,P.next(D)}};function S(){const D=T+s,w=C.now();if(w{O=D,T=C.now(),o||(o=C.schedule(S,s),P.add(o))},()=>{R(),P.complete()},void 0,()=>{O=o=null}))})}},4086:(Ue,K,m)=>{"use strict";m.d(K,{g:()=>o});var e=m(4986),t=m(7272),v=m(5698),M=m(8502),s=m(9718),C=m(5577);function c(O,T){return T?R=>(0,t.z)(T.pipe((0,v.q)(1),(0,M.l)()),R.pipe(c(O))):(0,C.z)((R,S)=>O(R,S).pipe((0,v.q)(1),(0,s.h)(R)))}var P=m(2805);function o(O,T=e.z){const R=(0,P.H)(O,T);return c(()=>R)}},1884:(Ue,K,m)=>{"use strict";m.d(K,{x:()=>M});var e=m(4671),t=m(4482),v=m(5403);function M(C,c=e.y){return C=null!=C?C:s,(0,t.e)((P,o)=>{let O,T=!0;P.subscribe(new v.Q(o,R=>{const S=c(R);(T||!C(O,S))&&(T=!1,O=S,o.next(R))}))})}function s(C,c){return C===c}},9300:(Ue,K,m)=>{"use strict";m.d(K,{h:()=>v});var e=m(4482),t=m(5403);function v(M,s){return(0,e.e)((C,c)=>{let P=0;C.subscribe(new t.Q(c,o=>M.call(s,o,P++)&&c.next(o)))})}},8746:(Ue,K,m)=>{"use strict";m.d(K,{x:()=>t});var e=m(4482);function t(v){return(0,e.e)((M,s)=>{try{M.subscribe(s)}finally{s.add(v)}})}},8502:(Ue,K,m)=>{"use strict";m.d(K,{l:()=>M});var e=m(4482),t=m(5403),v=m(5032);function M(){return(0,e.e)((s,C)=>{s.subscribe(new t.Q(C,v.Z))})}},4004:(Ue,K,m)=>{"use strict";m.d(K,{U:()=>v});var e=m(4482),t=m(5403);function v(M,s){return(0,e.e)((C,c)=>{let P=0;C.subscribe(new t.Q(c,o=>{c.next(M.call(s,o,P++))}))})}},9718:(Ue,K,m)=>{"use strict";m.d(K,{h:()=>t});var e=m(4004);function t(v){return(0,e.U)(()=>v)}},8189:(Ue,K,m)=>{"use strict";m.d(K,{J:()=>v});var e=m(5577),t=m(4671);function v(M=1/0){return(0,e.z)(t.y,M)}},5577:(Ue,K,m)=>{"use strict";m.d(K,{z:()=>P});var e=m(4004),t=m(8421),v=m(4482),s=(m(9672),m(5403)),c=m(576);function P(o,O,T=1/0){return(0,c.m)(O)?P((R,S)=>(0,e.U)((D,w)=>O(R,D,S,w))((0,t.Xf)(o(R,S))),T):("number"==typeof O&&(T=O),(0,v.e)((R,S)=>function(o,O,T,R,S,D,w,U){const G=[];let W=0,ee=0,ie=!1;const _e=()=>{ie&&!G.length&&!W&&O.complete()},fe=ne=>W{W++;let se=!1;(0,t.Xf)(T(ne,ee++)).subscribe(new s.Q(O,oe=>{O.next(oe)},()=>{se=!0},void 0,()=>{if(se)try{for(W--;G.length&&W{ie=!0,_e()})),()=>{}}(R,S,o,T)))}},5363:(Ue,K,m)=>{"use strict";m.d(K,{Q:()=>M});var e=m(9672),t=m(4482),v=m(5403);function M(s,C=0){return(0,t.e)((c,P)=>{c.subscribe(new v.Q(P,o=>(0,e.f)(P,s,()=>P.next(o),C),()=>(0,e.f)(P,s,()=>P.complete(),C),o=>(0,e.f)(P,s,()=>P.error(o),C)))})}},5026:(Ue,K,m)=>{"use strict";m.d(K,{R:()=>M});var e=m(4482),t=m(5403);function v(s,C,c,P,o){return(O,T)=>{let R=c,S=C,D=0;O.subscribe(new t.Q(T,w=>{const U=D++;S=R?s(S,w,U):(R=!0,w),P&&T.next(S)},o&&(()=>{R&&T.next(S),T.complete()})))}}function M(s,C){return(0,e.e)(v(s,C,arguments.length>=2,!0))}},3099:(Ue,K,m)=>{"use strict";m.d(K,{B:()=>C});var e=m(457),t=m(5698),v=m(7579),M=m(930),s=m(4482);function C(P={}){const{connector:o=(()=>new v.x),resetOnError:O=!0,resetOnComplete:T=!0,resetOnRefCountZero:R=!0}=P;return S=>{let D=null,w=null,U=null,G=0,W=!1,ee=!1;const ie=()=>{null==w||w.unsubscribe(),w=null},_e=()=>{ie(),D=U=null,W=ee=!1},fe=()=>{const de=D;_e(),null==de||de.unsubscribe()};return(0,s.e)((de,ne)=>{G++,!ee&&!W&&ie();const se=U=null!=U?U:o();ne.add(()=>{G--,0===G&&!ee&&!W&&(w=c(fe,R))}),se.subscribe(ne),D||(D=new M.Hp({next:oe=>se.next(oe),error:oe=>{ee=!0,ie(),w=c(_e,O,oe),se.error(oe)},complete:()=>{W=!0,ie(),w=c(_e,T),se.complete()}}),(0,e.D)(de).subscribe(D))})(S)}}function c(P,o,...O){return!0===o?(P(),null):!1===o?null:o(...O).pipe((0,t.q)(1)).subscribe(()=>P())}},5684:(Ue,K,m)=>{"use strict";m.d(K,{T:()=>t});var e=m(9300);function t(v){return(0,e.h)((M,s)=>v<=s)}},8675:(Ue,K,m)=>{"use strict";m.d(K,{O:()=>M});var e=m(7272),t=m(3269),v=m(4482);function M(...s){const C=(0,t.yG)(s);return(0,v.e)((c,P)=>{(C?(0,e.z)(s,c,C):(0,e.z)(s,c)).subscribe(P)})}},3900:(Ue,K,m)=>{"use strict";m.d(K,{w:()=>M});var e=m(8421),t=m(4482),v=m(5403);function M(s,C){return(0,t.e)((c,P)=>{let o=null,O=0,T=!1;const R=()=>T&&!o&&P.complete();c.subscribe(new v.Q(P,S=>{null==o||o.unsubscribe();let D=0;const w=O++;(0,e.Xf)(s(S,w)).subscribe(o=new v.Q(P,U=>P.next(C?C(S,U,w,D++):U),()=>{o=null,R()}))},()=>{T=!0,R()}))})}},5698:(Ue,K,m)=>{"use strict";m.d(K,{q:()=>M});var e=m(515),t=m(4482),v=m(5403);function M(s){return s<=0?()=>e.E:(0,t.e)((C,c)=>{let P=0;C.subscribe(new v.Q(c,o=>{++P<=s&&(c.next(o),s<=P&&c.complete())}))})}},2722:(Ue,K,m)=>{"use strict";m.d(K,{R:()=>s});var e=m(4482),t=m(5403),v=m(8421),M=m(5032);function s(C){return(0,e.e)((c,P)=>{(0,v.Xf)(C).subscribe(new t.Q(P,()=>P.complete(),M.Z)),!P.closed&&c.subscribe(P)})}},8505:(Ue,K,m)=>{"use strict";m.d(K,{b:()=>s});var e=m(576),t=m(4482),v=m(5403),M=m(4671);function s(C,c,P){const o=(0,e.m)(C)||c||P?{next:C,error:c,complete:P}:C;return o?(0,t.e)((O,T)=>{var R;null===(R=o.subscribe)||void 0===R||R.call(o);let S=!0;O.subscribe(new v.Q(T,D=>{var w;null===(w=o.next)||void 0===w||w.call(o,D),T.next(D)},()=>{var D;S=!1,null===(D=o.complete)||void 0===D||D.call(o),T.complete()},D=>{var w;S=!1,null===(w=o.error)||void 0===w||w.call(o,D),T.error(D)},()=>{var D,w;S&&(null===(D=o.unsubscribe)||void 0===D||D.call(o)),null===(w=o.finalize)||void 0===w||w.call(o)}))}):M.y}},7414:(Ue,K,m)=>{"use strict";m.d(K,{V:()=>o});var e=m(4986),t=m(1165),v=m(4482),M=m(8421),s=m(3888),C=m(5403),c=m(9672);const P=(0,s.d)(T=>function(S=null){T(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=S});function o(T,R){const{first:S,each:D,with:w=O,scheduler:U=(null!=R?R:e.z),meta:G=null}=(0,t.q)(T)?{first:T}:"number"==typeof T?{each:T}:T;if(null==S&&null==D)throw new TypeError("No timeout provided.");return(0,v.e)((W,ee)=>{let ie,_e,fe=null,de=0;const ne=se=>{_e=(0,c.f)(ee,U,()=>{try{ie.unsubscribe(),(0,M.Xf)(w({meta:G,lastValue:fe,seen:de})).subscribe(ee)}catch(oe){ee.error(oe)}},se)};ie=W.subscribe(new C.Q(ee,se=>{null==_e||_e.unsubscribe(),de++,ee.next(fe=se),D>0&&ne(D)},void 0,void 0,()=>{(null==_e?void 0:_e.closed)||null==_e||_e.unsubscribe(),fe=null})),ne(null!=S?"number"==typeof S?S:+S-U.now():D)})}function O(T){throw new P(T)}},1365:(Ue,K,m)=>{"use strict";m.d(K,{M:()=>c});var e=m(4482),t=m(5403),v=m(8421),M=m(4671),s=m(5032),C=m(3269);function c(...P){const o=(0,C.jO)(P);return(0,e.e)((O,T)=>{const R=P.length,S=new Array(R);let D=P.map(()=>!1),w=!1;for(let U=0;U{S[U]=G,!w&&!D[U]&&(D[U]=!0,(w=D.every(M.y))&&(D=null))},s.Z));O.subscribe(new t.Q(T,U=>{if(w){const G=[U,...S];T.next(o?o(...G):G)}}))})}},4408:(Ue,K,m)=>{"use strict";m.d(K,{o:()=>s});var e=m(727);class t extends e.w0{constructor(c,P){super()}schedule(c,P=0){return this}}const v={setInterval(...C){const{delegate:c}=v;return((null==c?void 0:c.setInterval)||setInterval)(...C)},clearInterval(C){const{delegate:c}=v;return((null==c?void 0:c.clearInterval)||clearInterval)(C)},delegate:void 0};var M=m(8737);class s extends t{constructor(c,P){super(c,P),this.scheduler=c,this.work=P,this.pending=!1}schedule(c,P=0){if(this.closed)return this;this.state=c;const o=this.id,O=this.scheduler;return null!=o&&(this.id=this.recycleAsyncId(O,o,P)),this.pending=!0,this.delay=P,this.id=this.id||this.requestAsyncId(O,this.id,P),this}requestAsyncId(c,P,o=0){return v.setInterval(c.flush.bind(c,this),o)}recycleAsyncId(c,P,o=0){if(null!=o&&this.delay===o&&!1===this.pending)return P;v.clearInterval(P)}execute(c,P){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const o=this._execute(c,P);if(o)return o;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(c,P){let O,o=!1;try{this.work(c)}catch(T){o=!0,O=T||new Error("Scheduled action threw falsy error")}if(o)return this.unsubscribe(),O}unsubscribe(){if(!this.closed){const{id:c,scheduler:P}=this,{actions:o}=P;this.work=this.state=this.scheduler=null,this.pending=!1,(0,M.P)(o,this),null!=c&&(this.id=this.recycleAsyncId(P,c,null)),this.delay=null,super.unsubscribe()}}}},7565:(Ue,K,m)=>{"use strict";m.d(K,{v:()=>v});var e=m(6063);class t{constructor(s,C=t.now){this.schedulerActionCtor=s,this.now=C}schedule(s,C=0,c){return new this.schedulerActionCtor(this,s).schedule(c,C)}}t.now=e.l.now;class v extends t{constructor(s,C=t.now){super(s,C),this.actions=[],this._active=!1,this._scheduled=void 0}flush(s){const{actions:C}=this;if(this._active)return void C.push(s);let c;this._active=!0;do{if(c=s.execute(s.state,s.delay))break}while(s=C.shift());if(this._active=!1,c){for(;s=C.shift();)s.unsubscribe();throw c}}}},3101:(Ue,K,m)=>{"use strict";m.d(K,{E:()=>D});var e=m(4408);let v,t=1;const M={};function s(U){return U in M&&(delete M[U],!0)}const C={setImmediate(U){const G=t++;return M[G]=!0,v||(v=Promise.resolve()),v.then(()=>s(G)&&U()),G},clearImmediate(U){s(U)}},{setImmediate:P,clearImmediate:o}=C,O={setImmediate(...U){const{delegate:G}=O;return((null==G?void 0:G.setImmediate)||P)(...U)},clearImmediate(U){const{delegate:G}=O;return((null==G?void 0:G.clearImmediate)||o)(U)},delegate:void 0};var R=m(7565);const D=new class extends R.v{flush(G){this._active=!0,this._scheduled=void 0;const{actions:W}=this;let ee,ie=-1;G=G||W.shift();const _e=W.length;do{if(ee=G.execute(G.state,G.delay))break}while(++ie<_e&&(G=W.shift()));if(this._active=!1,ee){for(;++ie<_e&&(G=W.shift());)G.unsubscribe();throw ee}}}(class extends e.o{constructor(G,W){super(G,W),this.scheduler=G,this.work=W}requestAsyncId(G,W,ee=0){return null!==ee&&ee>0?super.requestAsyncId(G,W,ee):(G.actions.push(this),G._scheduled||(G._scheduled=O.setImmediate(G.flush.bind(G,void 0))))}recycleAsyncId(G,W,ee=0){if(null!=ee&&ee>0||null==ee&&this.delay>0)return super.recycleAsyncId(G,W,ee);0===G.actions.length&&(O.clearImmediate(W),G._scheduled=void 0)}})},4986:(Ue,K,m)=>{"use strict";m.d(K,{z:()=>v,P:()=>M});var e=m(4408);const v=new(m(7565).v)(e.o),M=v},6063:(Ue,K,m)=>{"use strict";m.d(K,{l:()=>e});const e={now:()=>(e.delegate||Date).now(),delegate:void 0}},233:(Ue,K,m)=>{"use strict";m.d(K,{N:()=>s});var e=m(4408),v=m(7565);const s=new class extends v.v{}(class extends e.o{constructor(P,o){super(P,o),this.scheduler=P,this.work=o}schedule(P,o=0){return o>0?super.schedule(P,o):(this.delay=o,this.state=P,this.scheduler.flush(this),this)}execute(P,o){return o>0||this.closed?super.execute(P,o):this._execute(P,o)}requestAsyncId(P,o,O=0){return null!=O&&O>0||null==O&&this.delay>0?super.requestAsyncId(P,o,O):P.flush(this)}})},3410:(Ue,K,m)=>{"use strict";m.d(K,{z:()=>e});const e={setTimeout(...t){const{delegate:v}=e;return((null==v?void 0:v.setTimeout)||setTimeout)(...t)},clearTimeout(t){const{delegate:v}=e;return((null==v?void 0:v.clearTimeout)||clearTimeout)(t)},delegate:void 0}},2202:(Ue,K,m)=>{"use strict";m.d(K,{h:()=>t});const t="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"},8822:(Ue,K,m)=>{"use strict";m.d(K,{L:()=>e});const e="function"==typeof Symbol&&Symbol.observable||"@@observable"},3269:(Ue,K,m)=>{"use strict";m.d(K,{jO:()=>M,yG:()=>s,_6:()=>C});var e=m(576),t=m(3532);function v(c){return c[c.length-1]}function M(c){return(0,e.m)(v(c))?c.pop():void 0}function s(c){return(0,t.K)(v(c))?c.pop():void 0}function C(c,P){return"number"==typeof v(c)?c.pop():P}},4742:(Ue,K,m)=>{"use strict";m.d(K,{D:()=>s});const{isArray:e}=Array,{getPrototypeOf:t,prototype:v,keys:M}=Object;function s(c){if(1===c.length){const P=c[0];if(e(P))return{args:P,keys:null};if(function(c){return c&&"object"==typeof c&&t(c)===v}(P)){const o=M(P);return{args:o.map(O=>P[O]),keys:o}}}return{args:c,keys:null}}},8737:(Ue,K,m)=>{"use strict";function e(t,v){if(t){const M=t.indexOf(v);0<=M&&t.splice(M,1)}}m.d(K,{P:()=>e})},3888:(Ue,K,m)=>{"use strict";function e(t){const M=t(s=>{Error.call(s),s.stack=(new Error).stack});return M.prototype=Object.create(Error.prototype),M.prototype.constructor=M,M}m.d(K,{d:()=>e})},1810:(Ue,K,m)=>{"use strict";function e(t,v){return t.reduce((M,s,C)=>(M[s]=v[C],M),{})}m.d(K,{n:()=>e})},2806:(Ue,K,m)=>{"use strict";m.d(K,{x:()=>v,O:()=>M});var e=m(2416);let t=null;function v(s){if(e.v.useDeprecatedSynchronousErrorHandling){const C=!t;if(C&&(t={errorThrown:!1,error:null}),s(),C){const{errorThrown:c,error:P}=t;if(t=null,c)throw P}}else s()}function M(s){e.v.useDeprecatedSynchronousErrorHandling&&t&&(t.errorThrown=!0,t.error=s)}},9672:(Ue,K,m)=>{"use strict";function e(t,v,M,s=0,C=!1){const c=v.schedule(function(){M(),C?t.add(this.schedule(null,s)):this.unsubscribe()},s);if(t.add(c),!C)return c}m.d(K,{f:()=>e})},4671:(Ue,K,m)=>{"use strict";function e(t){return t}m.d(K,{y:()=>e})},1144:(Ue,K,m)=>{"use strict";m.d(K,{z:()=>e});const e=t=>t&&"number"==typeof t.length&&"function"!=typeof t},2206:(Ue,K,m)=>{"use strict";m.d(K,{D:()=>t});var e=m(576);function t(v){return Symbol.asyncIterator&&(0,e.m)(null==v?void 0:v[Symbol.asyncIterator])}},1165:(Ue,K,m)=>{"use strict";function e(t){return t instanceof Date&&!isNaN(t)}m.d(K,{q:()=>e})},576:(Ue,K,m)=>{"use strict";function e(t){return"function"==typeof t}m.d(K,{m:()=>e})},3670:(Ue,K,m)=>{"use strict";m.d(K,{c:()=>v});var e=m(8822),t=m(576);function v(M){return(0,t.m)(M[e.L])}},6495:(Ue,K,m)=>{"use strict";m.d(K,{T:()=>v});var e=m(2202),t=m(576);function v(M){return(0,t.m)(null==M?void 0:M[e.h])}},5191:(Ue,K,m)=>{"use strict";m.d(K,{b:()=>v});var e=m(8306),t=m(576);function v(M){return!!M&&(M instanceof e.y||(0,t.m)(M.lift)&&(0,t.m)(M.subscribe))}},8239:(Ue,K,m)=>{"use strict";m.d(K,{t:()=>t});var e=m(576);function t(v){return(0,e.m)(null==v?void 0:v.then)}},3260:(Ue,K,m)=>{"use strict";m.d(K,{Q:()=>v,L:()=>M});var e=m(5987),t=m(576);function v(s){return(0,e.FC)(this,arguments,function*(){const c=s.getReader();try{for(;;){const{value:P,done:o}=yield(0,e.qq)(c.read());if(o)return yield(0,e.qq)(void 0);yield yield(0,e.qq)(P)}}finally{c.releaseLock()}})}function M(s){return(0,t.m)(null==s?void 0:s.getReader)}},3532:(Ue,K,m)=>{"use strict";m.d(K,{K:()=>t});var e=m(576);function t(v){return v&&(0,e.m)(v.schedule)}},4482:(Ue,K,m)=>{"use strict";m.d(K,{A:()=>t,e:()=>v});var e=m(576);function t(M){return(0,e.m)(null==M?void 0:M.lift)}function v(M){return s=>{if(t(s))return s.lift(function(C){try{return M(C,this)}catch(c){this.error(c)}});throw new TypeError("Unable to lift unknown Observable type")}}},3268:(Ue,K,m)=>{"use strict";m.d(K,{Z:()=>M});var e=m(4004);const{isArray:t}=Array;function M(s){return(0,e.U)(C=>function(s,C){return t(C)?s(...C):s(C)}(s,C))}},5032:(Ue,K,m)=>{"use strict";function e(){}m.d(K,{Z:()=>e})},7849:(Ue,K,m)=>{"use strict";m.d(K,{h:()=>v});var e=m(2416),t=m(3410);function v(M){t.z.setTimeout(()=>{const{onUnhandledError:s}=e.v;if(!s)throw M;s(M)})}},4532:(Ue,K,m)=>{"use strict";function e(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}m.d(K,{z:()=>e})},3502:(Ue,K,m)=>{var e=m(3172),t=e.Buffer;function v(s,C){for(var c in s)C[c]=s[c]}function M(s,C,c){return t(s,C,c)}t.from&&t.alloc&&t.allocUnsafe&&t.allocUnsafeSlow?Ue.exports=e:(v(e,K),K.Buffer=M),v(t,M),M.from=function(s,C,c){if("number"==typeof s)throw new TypeError("Argument must not be a number");return t(s,C,c)},M.alloc=function(s,C,c){if("number"!=typeof s)throw new TypeError("Argument must be a number");var P=t(s);return void 0!==C?"string"==typeof c?P.fill(C,c):P.fill(C):P.fill(0),P},M.allocUnsafe=function(s){if("number"!=typeof s)throw new TypeError("Argument must be a number");return t(s)},M.allocUnsafeSlow=function(s){if("number"!=typeof s)throw new TypeError("Argument must be a number");return e.SlowBuffer(s)}},2038:(Ue,K,m)=>{"use strict";var M,e=m(3172),t=e.Buffer,v={};for(M in e)!e.hasOwnProperty(M)||"SlowBuffer"===M||"Buffer"===M||(v[M]=e[M]);var s=v.Buffer={};for(M in t)!t.hasOwnProperty(M)||"allocUnsafe"===M||"allocUnsafeSlow"===M||(s[M]=t[M]);if(v.Buffer.prototype=t.prototype,(!s.from||s.from===Uint8Array.from)&&(s.from=function(C,c,P){if("number"==typeof C)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof C);if(C&&void 0===C.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof C);return t(C,c,P)}),s.alloc||(s.alloc=function(C,c,P){if("number"!=typeof C)throw new TypeError('The "size" argument must be of type number. Received type '+typeof C);if(C<0||C>=2*(1<<30))throw new RangeError('The value "'+C+'" is invalid for option "size"');var o=t(C);return c&&0!==c.length?"string"==typeof P?o.fill(c,P):o.fill(c):o.fill(0),o}),!v.kStringMaxLength)try{v.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(C){}v.constants||(v.constants={MAX_LENGTH:v.kMaxLength},v.kStringMaxLength&&(v.constants.MAX_STRING_LENGTH=v.kStringMaxLength)),Ue.exports=v},6692:(Ue,K,m)=>{var e=m(3502).Buffer;function t(v,M){this._block=e.alloc(v),this._finalSize=M,this._blockSize=v,this._len=0}t.prototype.update=function(v,M){"string"==typeof v&&(v=e.from(v,M=M||"utf8"));for(var s=this._block,C=this._blockSize,c=v.length,P=this._len,o=0;o=this._finalSize&&(this._update(this._block),this._block.fill(0));var s=8*this._len;if(s<=4294967295)this._block.writeUInt32BE(s,this._blockSize-4);else{var C=(4294967295&s)>>>0;this._block.writeUInt32BE((s-C)/4294967296,this._blockSize-8),this._block.writeUInt32BE(C,this._blockSize-4)}this._update(this._block);var P=this._hash();return v?P.toString(v):P},t.prototype._update=function(){throw new Error("_update must be implemented by subclass")},Ue.exports=t},5244:(Ue,K,m)=>{var e=Ue.exports=function(v){v=v.toLowerCase();var M=e[v];if(!M)throw new Error(v+" is not supported (we accept pull requests)");return new M};e.sha=m(8932),e.sha1=m(7736),e.sha224=m(5044),e.sha256=m(5014),e.sha384=m(6540),e.sha512=m(117)},8932:(Ue,K,m)=>{var e=m(3894),t=m(6692),v=m(3502).Buffer,M=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function C(){this.init(),this._w=s,t.call(this,64,56)}function c(O){return O<<5|O>>>27}function P(O){return O<<30|O>>>2}function o(O,T,R,S){return 0===O?T&R|~T&S:2===O?T&R|T&S|R&S:T^R^S}e(C,t),C.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},C.prototype._update=function(O){for(var T=this._w,R=0|this._a,S=0|this._b,D=0|this._c,w=0|this._d,U=0|this._e,G=0;G<16;++G)T[G]=O.readInt32BE(4*G);for(;G<80;++G)T[G]=T[G-3]^T[G-8]^T[G-14]^T[G-16];for(var W=0;W<80;++W){var ee=~~(W/20),ie=c(R)+o(ee,S,D,w)+U+T[W]+M[ee]|0;U=w,w=D,D=P(S),S=R,R=ie}this._a=R+this._a|0,this._b=S+this._b|0,this._c=D+this._c|0,this._d=w+this._d|0,this._e=U+this._e|0},C.prototype._hash=function(){var O=v.allocUnsafe(20);return O.writeInt32BE(0|this._a,0),O.writeInt32BE(0|this._b,4),O.writeInt32BE(0|this._c,8),O.writeInt32BE(0|this._d,12),O.writeInt32BE(0|this._e,16),O},Ue.exports=C},7736:(Ue,K,m)=>{var e=m(3894),t=m(6692),v=m(3502).Buffer,M=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function C(){this.init(),this._w=s,t.call(this,64,56)}function c(T){return T<<1|T>>>31}function P(T){return T<<5|T>>>27}function o(T){return T<<30|T>>>2}function O(T,R,S,D){return 0===T?R&S|~R&D:2===T?R&S|R&D|S&D:R^S^D}e(C,t),C.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},C.prototype._update=function(T){for(var R=this._w,S=0|this._a,D=0|this._b,w=0|this._c,U=0|this._d,G=0|this._e,W=0;W<16;++W)R[W]=T.readInt32BE(4*W);for(;W<80;++W)R[W]=c(R[W-3]^R[W-8]^R[W-14]^R[W-16]);for(var ee=0;ee<80;++ee){var ie=~~(ee/20),_e=P(S)+O(ie,D,w,U)+G+R[ee]+M[ie]|0;G=U,U=w,w=o(D),D=S,S=_e}this._a=S+this._a|0,this._b=D+this._b|0,this._c=w+this._c|0,this._d=U+this._d|0,this._e=G+this._e|0},C.prototype._hash=function(){var T=v.allocUnsafe(20);return T.writeInt32BE(0|this._a,0),T.writeInt32BE(0|this._b,4),T.writeInt32BE(0|this._c,8),T.writeInt32BE(0|this._d,12),T.writeInt32BE(0|this._e,16),T},Ue.exports=C},5044:(Ue,K,m)=>{var e=m(3894),t=m(5014),v=m(6692),M=m(3502).Buffer,s=new Array(64);function C(){this.init(),this._w=s,v.call(this,64,56)}e(C,t),C.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},C.prototype._hash=function(){var c=M.allocUnsafe(28);return c.writeInt32BE(this._a,0),c.writeInt32BE(this._b,4),c.writeInt32BE(this._c,8),c.writeInt32BE(this._d,12),c.writeInt32BE(this._e,16),c.writeInt32BE(this._f,20),c.writeInt32BE(this._g,24),c},Ue.exports=C},5014:(Ue,K,m)=>{var e=m(3894),t=m(6692),v=m(3502).Buffer,M=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function C(){this.init(),this._w=s,t.call(this,64,56)}function c(S,D,w){return w^S&(D^w)}function P(S,D,w){return S&D|w&(S|D)}function o(S){return(S>>>2|S<<30)^(S>>>13|S<<19)^(S>>>22|S<<10)}function O(S){return(S>>>6|S<<26)^(S>>>11|S<<21)^(S>>>25|S<<7)}function T(S){return(S>>>7|S<<25)^(S>>>18|S<<14)^S>>>3}function R(S){return(S>>>17|S<<15)^(S>>>19|S<<13)^S>>>10}e(C,t),C.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},C.prototype._update=function(S){for(var D=this._w,w=0|this._a,U=0|this._b,G=0|this._c,W=0|this._d,ee=0|this._e,ie=0|this._f,_e=0|this._g,fe=0|this._h,de=0;de<16;++de)D[de]=S.readInt32BE(4*de);for(;de<64;++de)D[de]=R(D[de-2])+D[de-7]+T(D[de-15])+D[de-16]|0;for(var ne=0;ne<64;++ne){var se=fe+O(ee)+c(ee,ie,_e)+M[ne]+D[ne]|0,oe=o(w)+P(w,U,G)|0;fe=_e,_e=ie,ie=ee,ee=W+se|0,W=G,G=U,U=w,w=se+oe|0}this._a=w+this._a|0,this._b=U+this._b|0,this._c=G+this._c|0,this._d=W+this._d|0,this._e=ee+this._e|0,this._f=ie+this._f|0,this._g=_e+this._g|0,this._h=fe+this._h|0},C.prototype._hash=function(){var S=v.allocUnsafe(32);return S.writeInt32BE(this._a,0),S.writeInt32BE(this._b,4),S.writeInt32BE(this._c,8),S.writeInt32BE(this._d,12),S.writeInt32BE(this._e,16),S.writeInt32BE(this._f,20),S.writeInt32BE(this._g,24),S.writeInt32BE(this._h,28),S},Ue.exports=C},6540:(Ue,K,m)=>{var e=m(3894),t=m(117),v=m(6692),M=m(3502).Buffer,s=new Array(160);function C(){this.init(),this._w=s,v.call(this,128,112)}e(C,t),C.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},C.prototype._hash=function(){var c=M.allocUnsafe(48);function P(o,O,T){c.writeInt32BE(o,T),c.writeInt32BE(O,T+4)}return P(this._ah,this._al,0),P(this._bh,this._bl,8),P(this._ch,this._cl,16),P(this._dh,this._dl,24),P(this._eh,this._el,32),P(this._fh,this._fl,40),c},Ue.exports=C},117:(Ue,K,m)=>{var e=m(3894),t=m(6692),v=m(3502).Buffer,M=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function C(){this.init(),this._w=s,t.call(this,128,112)}function c(U,G,W){return W^U&(G^W)}function P(U,G,W){return U&G|W&(U|G)}function o(U,G){return(U>>>28|G<<4)^(G>>>2|U<<30)^(G>>>7|U<<25)}function O(U,G){return(U>>>14|G<<18)^(U>>>18|G<<14)^(G>>>9|U<<23)}function T(U,G){return(U>>>1|G<<31)^(U>>>8|G<<24)^U>>>7}function R(U,G){return(U>>>1|G<<31)^(U>>>8|G<<24)^(U>>>7|G<<25)}function S(U,G){return(U>>>19|G<<13)^(G>>>29|U<<3)^U>>>6}function D(U,G){return(U>>>19|G<<13)^(G>>>29|U<<3)^(U>>>6|G<<26)}function w(U,G){return U>>>0>>0?1:0}e(C,t),C.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},C.prototype._update=function(U){for(var G=this._w,W=0|this._ah,ee=0|this._bh,ie=0|this._ch,_e=0|this._dh,fe=0|this._eh,de=0|this._fh,ne=0|this._gh,se=0|this._hh,oe=0|this._al,y=0|this._bl,i=0|this._cl,a=0|this._dl,p=0|this._el,u=0|this._fl,_=0|this._gl,L=0|this._hl,I=0;I<32;I+=2)G[I]=U.readInt32BE(4*I),G[I+1]=U.readInt32BE(4*I+4);for(;I<160;I+=2){var x=G[I-30],r=G[I-30+1],b=T(x,r),J=R(r,x),F=S(x=G[I-4],r=G[I-4+1]),B=D(r,x),Re=G[I-32],Fe=G[I-32+1],q=J+G[I-14+1]|0,j=b+G[I-14]+w(q,J)|0;j=(j=j+F+w(q=q+B|0,B)|0)+Re+w(q=q+Fe|0,Fe)|0,G[I]=j,G[I+1]=q}for(var we=0;we<160;we+=2){j=G[we],q=G[we+1];var Ae=P(W,ee,ie),le=P(oe,y,i),We=o(W,oe),yt=o(oe,W),Ne=O(fe,p),Ve=O(p,fe),ue=M[we],Te=M[we+1],ke=c(fe,de,ne),Y=c(p,u,_),X=L+Ve|0,he=se+Ne+w(X,L)|0;he=(he=(he=he+ke+w(X=X+Y|0,Y)|0)+ue+w(X=X+Te|0,Te)|0)+j+w(X=X+q|0,q)|0;var Me=yt+le|0,ze=We+Ae+w(Me,yt)|0;se=ne,L=_,ne=de,_=u,de=fe,u=p,fe=_e+he+w(p=a+X|0,a)|0,_e=ie,a=i,ie=ee,i=y,ee=W,y=oe,W=he+ze+w(oe=X+Me|0,X)|0}this._al=this._al+oe|0,this._bl=this._bl+y|0,this._cl=this._cl+i|0,this._dl=this._dl+a|0,this._el=this._el+p|0,this._fl=this._fl+u|0,this._gl=this._gl+_|0,this._hl=this._hl+L|0,this._ah=this._ah+W+w(this._al,oe)|0,this._bh=this._bh+ee+w(this._bl,y)|0,this._ch=this._ch+ie+w(this._cl,i)|0,this._dh=this._dh+_e+w(this._dl,a)|0,this._eh=this._eh+fe+w(this._el,p)|0,this._fh=this._fh+de+w(this._fl,u)|0,this._gh=this._gh+ne+w(this._gl,_)|0,this._hh=this._hh+se+w(this._hl,L)|0},C.prototype._hash=function(){var U=v.allocUnsafe(64);function G(W,ee,ie){U.writeInt32BE(W,ie),U.writeInt32BE(ee,ie+4)}return G(this._ah,this._al,0),G(this._bh,this._bl,8),G(this._ch,this._cl,16),G(this._dh,this._dl,24),G(this._eh,this._el,32),G(this._fh,this._fl,40),G(this._gh,this._gl,48),G(this._hh,this._hl,56),U},Ue.exports=C},8012:function(Ue,K,m){!function(e){"use strict";var t={};Ue.exports?(t.bytesToHex=m(6128).bytesToHex,t.convertString=m(5612),Ue.exports=P):(t.bytesToHex=e.convertHex.bytesToHex,t.convertString=e.convertString,e.sha256=P);var v=[];!function(){function o(S){for(var D=Math.sqrt(S),w=2;w<=D;w++)if(!(S%w))return!1;return!0}for(var T=2,R=0;R<64;)o(T)&&(v[R]=4294967296*((S=Math.pow(T,1/3))-(0|S))|0,R++),T++;var S}();var C=[],c=function(o,O,T){for(var R=o[0],S=o[1],D=o[2],w=o[3],U=o[4],G=o[5],W=o[6],ee=o[7],ie=0;ie<64;ie++){if(ie<16)C[ie]=0|O[T+ie];else{var _e=C[ie-15],de=C[ie-2];C[ie]=((_e<<25|_e>>>7)^(_e<<14|_e>>>18)^_e>>>3)+C[ie-7]+((de<<15|de>>>17)^(de<<13|de>>>19)^de>>>10)+C[ie-16]}var oe=R&S^R&D^S&D,a=ee+((U<<26|U>>>6)^(U<<21|U>>>11)^(U<<7|U>>>25))+(U&G^~U&W)+v[ie]+C[ie];ee=W,W=G,G=U,U=w+a|0,w=D,D=S,S=R,R=a+(((R<<30|R>>>2)^(R<<19|R>>>13)^(R<<10|R>>>22))+oe)|0}o[0]=o[0]+R|0,o[1]=o[1]+S|0,o[2]=o[2]+D|0,o[3]=o[3]+w|0,o[4]=o[4]+U|0,o[5]=o[5]+G|0,o[6]=o[6]+W|0,o[7]=o[7]+ee|0};function P(o,O){o.constructor===String&&(o=t.convertString.UTF8.stringToBytes(o));var T=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],R=function(o){for(var O=[],T=0,R=0;T>>5]|=o[T]<<24-R%32;return O}(o),S=8*o.length;R[S>>5]|=128<<24-S%32,R[15+(S+64>>9<<4)]=S;for(var D=0;D>>5]>>>24-T%32&255);return O}(T);return O&&O.asBytes?w:O&&O.asString?t.convertString.bytesToString(w):t.bytesToHex(w)}P.x2=function(o,O){return P(P(o,{asBytes:!0}),O)}}(this)},4315:(Ue,K,m)=>{"use strict";const e=Symbol.prototype.valueOf,t=m(2872);Ue.exports=function(o,O){switch(t(o)){case"array":return o.slice();case"object":return Object.assign({},o);case"date":return new o.constructor(Number(o));case"map":return new Map(o);case"set":return new Set(o);case"buffer":return function(o){const O=o.length,T=Buffer.allocUnsafe?Buffer.allocUnsafe(O):Buffer.from(O);return o.copy(T),T}(o);case"symbol":return function(o){return e?Object(e.call(o)):{}}(o);case"arraybuffer":return function(o){const O=new o.constructor(o.byteLength);return new Uint8Array(O).set(new Uint8Array(o)),O}(o);case"float32array":case"float64array":case"int16array":case"int32array":case"int8array":case"uint16array":case"uint32array":case"uint8clampedarray":case"uint8array":return function(o,O){return new o.constructor(o.buffer,o.byteOffset,o.length)}(o);case"regexp":return function(o){const O=void 0!==o.flags?o.flags:/\w+$/.exec(o)||void 0,T=new o.constructor(o.source,O);return T.lastIndex=o.lastIndex,T}(o);case"error":return Object.create(o);default:return o}}},295:(Ue,K,m)=>{Ue.exports=v;var e=m(9069).EventEmitter;function v(){e.call(this)}m(3894)(v,e),v.Readable=m(3154),v.Writable=m(520),v.Duplex=m(1339),v.Transform=m(6025),v.PassThrough=m(6071),v.finished=m(7542),v.pipeline=m(954),v.Stream=v,v.prototype.pipe=function(M,s){var C=this;function c(D){M.writable&&!1===M.write(D)&&C.pause&&C.pause()}function P(){C.readable&&C.resume&&C.resume()}C.on("data",c),M.on("drain",P),!M._isStdio&&(!s||!1!==s.end)&&(C.on("end",O),C.on("close",T));var o=!1;function O(){o||(o=!0,M.end())}function T(){o||(o=!0,"function"==typeof M.destroy&&M.destroy())}function R(D){if(S(),0===e.listenerCount(this,"error"))throw D}function S(){C.removeListener("data",c),M.removeListener("drain",P),C.removeListener("end",O),C.removeListener("close",T),C.removeListener("error",R),M.removeListener("error",R),C.removeListener("end",S),C.removeListener("close",S),M.removeListener("close",S)}return C.on("error",R),M.on("error",R),C.on("end",S),C.on("close",S),M.on("close",S),M.emit("pipe",C),M}},3054:(Ue,K,m)=>{"use strict";var e=m(858).Buffer,t=e.isEncoding||function(W){switch((W=""+W)&&W.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function s(W){var ee;switch(this.encoding=function(W){var ee=function(W){if(!W)return"utf8";for(var ee;;)switch(W){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return W;default:if(ee)return;W=(""+W).toLowerCase(),ee=!0}}(W);if("string"!=typeof ee&&(e.isEncoding===t||!t(W)))throw new Error("Unknown encoding: "+W);return ee||W}(W),this.encoding){case"utf16le":this.text=R,this.end=S,ee=4;break;case"utf8":this.fillLast=o,ee=4;break;case"base64":this.text=D,this.end=w,ee=3;break;default:return this.write=U,void(this.end=G)}this.lastNeed=0,this.lastTotal=0,this.lastChar=e.allocUnsafe(ee)}function C(W){return W<=127?0:W>>5==6?2:W>>4==14?3:W>>3==30?4:W>>6==2?-1:-2}function o(W){var ee=this.lastTotal-this.lastNeed,ie=function(W,ee,ie){if(128!=(192&ee[0]))return W.lastNeed=0,"\ufffd";if(W.lastNeed>1&&ee.length>1){if(128!=(192&ee[1]))return W.lastNeed=1,"\ufffd";if(W.lastNeed>2&&ee.length>2&&128!=(192&ee[2]))return W.lastNeed=2,"\ufffd"}}(this,W);return void 0!==ie?ie:this.lastNeed<=W.length?(W.copy(this.lastChar,ee,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(W.copy(this.lastChar,ee,0,W.length),void(this.lastNeed-=W.length))}function R(W,ee){if((W.length-ee)%2==0){var ie=W.toString("utf16le",ee);if(ie){var _e=ie.charCodeAt(ie.length-1);if(_e>=55296&&_e<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=W[W.length-2],this.lastChar[1]=W[W.length-1],ie.slice(0,-1)}return ie}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=W[W.length-1],W.toString("utf16le",ee,W.length-1)}function S(W){var ee=W&&W.length?this.write(W):"";return this.lastNeed?ee+this.lastChar.toString("utf16le",0,this.lastTotal-this.lastNeed):ee}function D(W,ee){var ie=(W.length-ee)%3;return 0===ie?W.toString("base64",ee):(this.lastNeed=3-ie,this.lastTotal=3,1===ie?this.lastChar[0]=W[W.length-1]:(this.lastChar[0]=W[W.length-2],this.lastChar[1]=W[W.length-1]),W.toString("base64",ee,W.length-ie))}function w(W){var ee=W&&W.length?this.write(W):"";return this.lastNeed?ee+this.lastChar.toString("base64",0,3-this.lastNeed):ee}function U(W){return W.toString(this.encoding)}function G(W){return W&&W.length?this.write(W):""}K.s=s,s.prototype.write=function(W){if(0===W.length)return"";var ee,ie;if(this.lastNeed){if(void 0===(ee=this.fillLast(W)))return"";ie=this.lastNeed,this.lastNeed=0}else ie=0;return ie=0?(fe>0&&(W.lastNeed=fe-1),fe):--_e=0?(fe>0&&(W.lastNeed=fe-2),fe):--_e=0?(fe>0&&(2===fe?fe=0:W.lastNeed=fe-3),fe):0}(this,W,ee);if(!this.lastNeed)return W.toString("utf8",ee);this.lastTotal=ie;var _e=W.length-(ie-this.lastNeed);return W.copy(this.lastChar,0,_e),W.toString("utf8",ee,_e)},s.prototype.fillLast=function(W){if(this.lastNeed<=W.length)return W.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);W.copy(this.lastChar,this.lastTotal-this.lastNeed,0,W.length),this.lastNeed-=W.length}},858:(Ue,K,m)=>{var e=m(3172),t=e.Buffer;function v(s,C){for(var c in s)C[c]=s[c]}function M(s,C,c){return t(s,C,c)}t.from&&t.alloc&&t.allocUnsafe&&t.allocUnsafeSlow?Ue.exports=e:(v(e,K),K.Buffer=M),M.prototype=Object.create(t.prototype),v(t,M),M.from=function(s,C,c){if("number"==typeof s)throw new TypeError("Argument must not be a number");return t(s,C,c)},M.alloc=function(s,C,c){if("number"!=typeof s)throw new TypeError("Argument must be a number");var P=t(s);return void 0!==C?"string"==typeof c?P.fill(C,c):P.fill(C):P.fill(0),P},M.allocUnsafe=function(s){if("number"!=typeof s)throw new TypeError("Argument must be a number");return t(s)},M.allocUnsafeSlow=function(s){if("number"!=typeof s)throw new TypeError("Argument must be a number");return e.SlowBuffer(s)}},2167:(Ue,K,m)=>{var e=m(4606);K.encode=e.encode,K.decode=e.decode},4606:(Ue,K)=>{"use strict";var e=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];K.encode=function(v){Buffer.isBuffer(v)||(v=new Buffer(v));for(var M=0,s=0,C=0,c=0,P=new Buffer(8*function(v){var M=Math.floor(v.length/5);return v.length%5==0?M:M+1}(v));M3?(c=(c=o&255>>C)<<(C=(C+5)%8)|(M+1>8-C,M++):(c=o>>8-(C+5)&31,0==(C=(C+5)%8)&&M++),P[s]="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567".charCodeAt(c),s++}for(M=s;M>>(M=(M+5)%8),c++,C=255&s<<8-M)}return P.slice(0,c)}},4364:Ue=>{function m(e){try{if(!global.localStorage)return!1}catch(v){return!1}var t=global.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}Ue.exports=function(e,t){if(m("noDeprecation"))return e;var v=!1;return function(){if(!v){if(m("throwDeprecation"))throw new Error(t);m("traceDeprecation")?console.trace(t):console.warn(t),v=!0}return e.apply(this,arguments)}}},5987:(Ue,K,m)=>{"use strict";function P(y,i,a,p){return new(a||(a=Promise))(function(_,L){function I(b){try{r(p.next(b))}catch(J){L(J)}}function x(b){try{r(p.throw(b))}catch(J){L(J)}}function r(b){b.done?_(b.value):function(_){return _ instanceof a?_:new a(function(L){L(_)})}(b.value).then(I,x)}r((p=p.apply(y,i||[])).next())})}function G(y){return this instanceof G?(this.v=y,this):new G(y)}function W(y,i,a){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var u,p=a.apply(y,i||[]),_=[];return u={},L("next"),L("throw"),L("return"),u[Symbol.asyncIterator]=function(){return this},u;function L(F){p[F]&&(u[F]=function(B){return new Promise(function(te,xe){_.push([F,B,te,xe])>1||I(F,B)})})}function I(F,B){try{!function(F){F.value instanceof G?Promise.resolve(F.value.v).then(r,b):J(_[0][2],F)}(p[F](B))}catch(te){J(_[0][3],te)}}function r(F){I("next",F)}function b(F){I("throw",F)}function J(F,B){F(B),_.shift(),_.length&&I(_[0][0],_[0][1])}}function ie(y){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a,i=y[Symbol.asyncIterator];return i?i.call(y):(y=function(y){var i="function"==typeof Symbol&&Symbol.iterator,a=i&&y[i],p=0;if(a)return a.call(y);if(y&&"number"==typeof y.length)return{next:function(){return y&&p>=y.length&&(y=void 0),{value:y&&y[p++],done:!y}}};throw new TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")}(y),a={},p("next"),p("throw"),p("return"),a[Symbol.asyncIterator]=function(){return this},a);function p(_){a[_]=y[_]&&function(L){return new Promise(function(I,x){!function(_,L,I,x){Promise.resolve(x).then(function(r){_({value:r,done:I})},L)}(I,x,(L=y[_](L)).done,L.value)})}}}m.d(K,{mG:()=>P,qq:()=>G,FC:()=>W,KL:()=>ie})},655:(Ue,K,m)=>{"use strict";function s(y,i,a,p){var L,u=arguments.length,_=u<3?i:null===p?p=Object.getOwnPropertyDescriptor(i,a):p;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)_=Reflect.decorate(y,i,a,p);else for(var I=y.length-1;I>=0;I--)(L=y[I])&&(_=(u<3?L(_):u>3?L(i,a,_):L(i,a))||_);return u>3&&_&&Object.defineProperty(i,a,_),_}function P(y,i,a,p){return new(a||(a=Promise))(function(_,L){function I(b){try{r(p.next(b))}catch(J){L(J)}}function x(b){try{r(p.throw(b))}catch(J){L(J)}}function r(b){b.done?_(b.value):function(_){return _ instanceof a?_:new a(function(L){L(_)})}(b.value).then(I,x)}r((p=p.apply(y,i||[])).next())})}m.d(K,{gn:()=>s,mG:()=>P})},950:()=>{},6601:()=>{},8623:()=>{},7748:()=>{},5568:()=>{},6619:()=>{},7108:()=>{},2361:()=>{},4616:()=>{},1777:(Ue,K,m)=>{"use strict";m.d(K,{l3:()=>v,_j:()=>e,LC:()=>t,ZN:()=>W,jt:()=>s,pV:()=>S,ru:()=>C,F4:()=>O,IO:()=>w,vP:()=>c,SB:()=>o,oB:()=>P,eR:()=>T,X$:()=>M,ZE:()=>ee,k1:()=>ie});class e{}class t{}const v="*";function M(_e,fe){return{type:7,name:_e,definitions:fe,options:{}}}function s(_e,fe=null){return{type:4,styles:fe,timings:_e}}function C(_e,fe=null){return{type:3,steps:_e,options:fe}}function c(_e,fe=null){return{type:2,steps:_e,options:fe}}function P(_e){return{type:6,styles:_e,offset:null}}function o(_e,fe,de){return{type:0,name:_e,styles:fe,options:de}}function O(_e){return{type:5,steps:_e}}function T(_e,fe,de=null){return{type:1,expr:_e,animation:fe,options:de}}function S(_e=null){return{type:9,options:_e}}function w(_e,fe,de=null){return{type:11,selector:_e,animation:fe,options:de}}function G(_e){Promise.resolve(null).then(_e)}class W{constructor(fe=0,de=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=fe+de}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(fe=>fe()),this._onDoneFns=[])}onStart(fe){this._onStartFns.push(fe)}onDone(fe){this._onDoneFns.push(fe)}onDestroy(fe){this._onDestroyFns.push(fe)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){G(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(fe=>fe()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(fe=>fe()),this._onDestroyFns=[])}reset(){this._started=!1}setPosition(fe){this._position=this.totalTime?fe*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(fe){const de="start"==fe?this._onStartFns:this._onDoneFns;de.forEach(ne=>ne()),de.length=0}}class ee{constructor(fe){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=fe;let de=0,ne=0,se=0;const oe=this.players.length;0==oe?G(()=>this._onFinish()):this.players.forEach(y=>{y.onDone(()=>{++de==oe&&this._onFinish()}),y.onDestroy(()=>{++ne==oe&&this._onDestroy()}),y.onStart(()=>{++se==oe&&this._onStart()})}),this.totalTime=this.players.reduce((y,i)=>Math.max(y,i.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(fe=>fe()),this._onDoneFns=[])}init(){this.players.forEach(fe=>fe.init())}onStart(fe){this._onStartFns.push(fe)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(fe=>fe()),this._onStartFns=[])}onDone(fe){this._onDoneFns.push(fe)}onDestroy(fe){this._onDestroyFns.push(fe)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(fe=>fe.play())}pause(){this.players.forEach(fe=>fe.pause())}restart(){this.players.forEach(fe=>fe.restart())}finish(){this._onFinish(),this.players.forEach(fe=>fe.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(fe=>fe.destroy()),this._onDestroyFns.forEach(fe=>fe()),this._onDestroyFns=[])}reset(){this.players.forEach(fe=>fe.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(fe){const de=fe*this.totalTime;this.players.forEach(ne=>{const se=ne.totalTime?Math.min(1,de/ne.totalTime):1;ne.setPosition(se)})}getPosition(){const fe=this.players.reduce((de,ne)=>null===de||ne.totalTime>de.totalTime?ne:de,null);return null!=fe?fe.getPosition():0}beforeDestroy(){this.players.forEach(fe=>{fe.beforeDestroy&&fe.beforeDestroy()})}triggerCallback(fe){const de="start"==fe?this._onStartFns:this._onDoneFns;de.forEach(ne=>ne()),de.length=0}}const ie="!"},5664:(Ue,K,m)=>{"use strict";m.d(K,{rt:()=>He,s1:()=>L,$s:()=>a,Qr:()=>Bt,kH:()=>jt,mK:()=>yt,Em:()=>I,tE:()=>Oi,qV:()=>We,qm:()=>di,ic:()=>r,Kd:()=>wt,X6:()=>Y,yG:()=>X});var e=m(9808),t=m(5e3),v=m(7579),M=m(727),s=m(1135),C=m(9646),c=m(1159),P=m(8505),o=m(8372),O=m(9300),T=m(4004),R=m(5698),S=m(5684),D=m(1884),w=m(2722),U=m(3191),G=m(925),W=m(7144);function fe(Se,V){return(Se.getAttribute(V)||"").match(/\S+/g)||[]}const de="cdk-describedby-message-container",ne="cdk-describedby-message",se="cdk-describedby-host";let oe=0;const y=new Map;let i=null,a=(()=>{class Se{constructor(ve){this._document=ve}describe(ve,Ee,et){if(!this._canBeDescribed(ve,Ee))return;const $t=p(Ee,et);"string"!=typeof Ee?(u(Ee),y.set($t,{messageElement:Ee,referenceCount:0})):y.has($t)||this._createMessageElement(Ee,et),this._isElementDescribedByMessage(ve,$t)||this._addMessageReference(ve,$t)}removeDescription(ve,Ee,et){if(!Ee||!this._isElementNode(ve))return;const $t=p(Ee,et);if(this._isElementDescribedByMessage(ve,$t)&&this._removeMessageReference(ve,$t),"string"==typeof Ee){const Pt=y.get($t);Pt&&0===Pt.referenceCount&&this._deleteMessageElement($t)}i&&0===i.childNodes.length&&this._deleteMessagesContainer()}ngOnDestroy(){const ve=this._document.querySelectorAll(`[${se}]`);for(let Ee=0;Ee0!=et.indexOf(ne));ve.setAttribute("aria-describedby",Ee.join(" "))}_addMessageReference(ve,Ee){const et=y.get(Ee);(function(Se,V,ve){const Ee=fe(Se,V);Ee.some(et=>et.trim()==ve.trim())||(Ee.push(ve.trim()),Se.setAttribute(V,Ee.join(" ")))})(ve,"aria-describedby",et.messageElement.id),ve.setAttribute(se,""),et.referenceCount++}_removeMessageReference(ve,Ee){const et=y.get(Ee);et.referenceCount--,function(Se,V,ve){const et=fe(Se,V).filter($t=>$t!=ve.trim());et.length?Se.setAttribute(V,et.join(" ")):Se.removeAttribute(V)}(ve,"aria-describedby",et.messageElement.id),ve.removeAttribute(se)}_isElementDescribedByMessage(ve,Ee){const et=fe(ve,"aria-describedby"),$t=y.get(Ee),Pt=$t&&$t.messageElement.id;return!!Pt&&-1!=et.indexOf(Pt)}_canBeDescribed(ve,Ee){if(!this._isElementNode(ve))return!1;if(Ee&&"object"==typeof Ee)return!0;const et=null==Ee?"":`${Ee}`.trim(),$t=ve.getAttribute("aria-label");return!(!et||$t&&$t.trim()===et)}_isElementNode(ve){return ve.nodeType===this._document.ELEMENT_NODE}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.LFG(e.K0))},Se.\u0275prov=t.Yz7({token:Se,factory:Se.\u0275fac,providedIn:"root"}),Se})();function p(Se,V){return"string"==typeof Se?`${V||""}/${Se}`:Se}function u(Se){Se.id||(Se.id=`${ne}-${oe++}`)}class _{constructor(V){this._items=V,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new v.x,this._typeaheadSubscription=M.w0.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._skipPredicateFn=ve=>ve.disabled,this._pressedLetters=[],this.tabOut=new v.x,this.change=new v.x,V instanceof t.n_E&&V.changes.subscribe(ve=>{if(this._activeItem){const et=ve.toArray().indexOf(this._activeItem);et>-1&&et!==this._activeItemIndex&&(this._activeItemIndex=et)}})}skipPredicate(V){return this._skipPredicateFn=V,this}withWrap(V=!0){return this._wrap=V,this}withVerticalOrientation(V=!0){return this._vertical=V,this}withHorizontalOrientation(V){return this._horizontal=V,this}withAllowedModifierKeys(V){return this._allowedModifierKeys=V,this}withTypeAhead(V=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe((0,P.b)(ve=>this._pressedLetters.push(ve)),(0,o.b)(V),(0,O.h)(()=>this._pressedLetters.length>0),(0,T.U)(()=>this._pressedLetters.join(""))).subscribe(ve=>{const Ee=this._getItemsArray();for(let et=1;et!V[$t]||this._allowedModifierKeys.indexOf($t)>-1);switch(ve){case c.Mf:return void this.tabOut.next();case c.JH:if(this._vertical&&et){this.setNextItemActive();break}return;case c.LH:if(this._vertical&&et){this.setPreviousItemActive();break}return;case c.SV:if(this._horizontal&&et){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case c.oh:if(this._horizontal&&et){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case c.Sd:if(this._homeAndEnd&&et){this.setFirstItemActive();break}return;case c.uR:if(this._homeAndEnd&&et){this.setLastItemActive();break}return;default:return void((et||(0,c.Vb)(V,"shiftKey"))&&(V.key&&1===V.key.length?this._letterKeyStream.next(V.key.toLocaleUpperCase()):(ve>=c.A&&ve<=c.Z||ve>=c.xE&&ve<=c.aO)&&this._letterKeyStream.next(String.fromCharCode(ve))))}this._pressedLetters=[],V.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(V){const ve=this._getItemsArray(),Ee="number"==typeof V?V:ve.indexOf(V),et=ve[Ee];this._activeItem=null==et?null:et,this._activeItemIndex=Ee}_setActiveItemByDelta(V){this._wrap?this._setActiveInWrapMode(V):this._setActiveInDefaultMode(V)}_setActiveInWrapMode(V){const ve=this._getItemsArray();for(let Ee=1;Ee<=ve.length;Ee++){const et=(this._activeItemIndex+V*Ee+ve.length)%ve.length;if(!this._skipPredicateFn(ve[et]))return void this.setActiveItem(et)}}_setActiveInDefaultMode(V){this._setActiveItemByIndex(this._activeItemIndex+V,V)}_setActiveItemByIndex(V,ve){const Ee=this._getItemsArray();if(Ee[V]){for(;this._skipPredicateFn(Ee[V]);)if(!Ee[V+=ve])return;this.setActiveItem(V)}}_getItemsArray(){return this._items instanceof t.n_E?this._items.toArray():this._items}}class L extends _{setActiveItem(V){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(V),this.activeItem&&this.activeItem.setActiveStyles()}}class I extends _{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(V){return this._origin=V,this}setActiveItem(V){super.setActiveItem(V),this.activeItem&&this.activeItem.focus(this._origin)}}let r=(()=>{class Se{constructor(ve){this._platform=ve}isDisabled(ve){return ve.hasAttribute("disabled")}isVisible(ve){return function(Se){return!!(Se.offsetWidth||Se.offsetHeight||"function"==typeof Se.getClientRects&&Se.getClientRects().length)}(ve)&&"visible"===getComputedStyle(ve).visibility}isTabbable(ve){if(!this._platform.isBrowser)return!1;const Ee=function(Se){try{return Se.frameElement}catch(V){return null}}(function(Se){return Se.ownerDocument&&Se.ownerDocument.defaultView||window}(ve));if(Ee&&(-1===q(Ee)||!this.isVisible(Ee)))return!1;let et=ve.nodeName.toLowerCase(),$t=q(ve);return ve.hasAttribute("contenteditable")?-1!==$t:!("iframe"===et||"object"===et||this._platform.WEBKIT&&this._platform.IOS&&!function(Se){let V=Se.nodeName.toLowerCase(),ve="input"===V&&Se.type;return"text"===ve||"password"===ve||"select"===V||"textarea"===V}(ve))&&("audio"===et?!!ve.hasAttribute("controls")&&-1!==$t:"video"===et?-1!==$t&&(null!==$t||this._platform.FIREFOX||ve.hasAttribute("controls")):ve.tabIndex>=0)}isFocusable(ve,Ee){return function(Se){return!function(Se){return function(Se){return"input"==Se.nodeName.toLowerCase()}(Se)&&"hidden"==Se.type}(Se)&&(function(Se){let V=Se.nodeName.toLowerCase();return"input"===V||"select"===V||"button"===V||"textarea"===V}(Se)||function(Se){return function(Se){return"a"==Se.nodeName.toLowerCase()}(Se)&&Se.hasAttribute("href")}(Se)||Se.hasAttribute("contenteditable")||Fe(Se))}(ve)&&!this.isDisabled(ve)&&((null==Ee?void 0:Ee.ignoreVisibility)||this.isVisible(ve))}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.LFG(G.t4))},Se.\u0275prov=t.Yz7({token:Se,factory:Se.\u0275fac,providedIn:"root"}),Se})();function Fe(Se){if(!Se.hasAttribute("tabindex")||void 0===Se.tabIndex)return!1;let V=Se.getAttribute("tabindex");return!(!V||isNaN(parseInt(V,10)))}function q(Se){if(!Fe(Se))return null;const V=parseInt(Se.getAttribute("tabindex")||"",10);return isNaN(V)?-1:V}class le{constructor(V,ve,Ee,et,$t=!1){this._element=V,this._checker=ve,this._ngZone=Ee,this._document=et,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,$t||this.attachAnchors()}get enabled(){return this._enabled}set enabled(V){this._enabled=V,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(V,this._startAnchor),this._toggleAnchorTabIndex(V,this._endAnchor))}destroy(){const V=this._startAnchor,ve=this._endAnchor;V&&(V.removeEventListener("focus",this.startAnchorListener),V.remove()),ve&&(ve.removeEventListener("focus",this.endAnchorListener),ve.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(V){return new Promise(ve=>{this._executeOnStable(()=>ve(this.focusInitialElement(V)))})}focusFirstTabbableElementWhenReady(V){return new Promise(ve=>{this._executeOnStable(()=>ve(this.focusFirstTabbableElement(V)))})}focusLastTabbableElementWhenReady(V){return new Promise(ve=>{this._executeOnStable(()=>ve(this.focusLastTabbableElement(V)))})}_getRegionBoundary(V){const ve=this._element.querySelectorAll(`[cdk-focus-region-${V}], [cdkFocusRegion${V}], [cdk-focus-${V}]`);return"start"==V?ve.length?ve[0]:this._getFirstTabbableElement(this._element):ve.length?ve[ve.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(V){const ve=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(ve){if(!this._checker.isFocusable(ve)){const Ee=this._getFirstTabbableElement(ve);return null==Ee||Ee.focus(V),!!Ee}return ve.focus(V),!0}return this.focusFirstTabbableElement(V)}focusFirstTabbableElement(V){const ve=this._getRegionBoundary("start");return ve&&ve.focus(V),!!ve}focusLastTabbableElement(V){const ve=this._getRegionBoundary("end");return ve&&ve.focus(V),!!ve}hasAttached(){return this._hasAttached}_getFirstTabbableElement(V){if(this._checker.isFocusable(V)&&this._checker.isTabbable(V))return V;const ve=V.children;for(let Ee=0;Ee=0;Ee--){const et=ve[Ee].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(ve[Ee]):null;if(et)return et}return null}_createAnchor(){const V=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,V),V.classList.add("cdk-visually-hidden"),V.classList.add("cdk-focus-trap-anchor"),V.setAttribute("aria-hidden","true"),V}_toggleAnchorTabIndex(V,ve){V?ve.setAttribute("tabindex","0"):ve.removeAttribute("tabindex")}toggleAnchors(V){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(V,this._startAnchor),this._toggleAnchorTabIndex(V,this._endAnchor))}_executeOnStable(V){this._ngZone.isStable?V():this._ngZone.onStable.pipe((0,R.q)(1)).subscribe(V)}}let We=(()=>{class Se{constructor(ve,Ee,et){this._checker=ve,this._ngZone=Ee,this._document=et}create(ve,Ee=!1){return new le(ve,this._checker,this._ngZone,this._document,Ee)}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.LFG(r),t.LFG(t.R0b),t.LFG(e.K0))},Se.\u0275prov=t.Yz7({token:Se,factory:Se.\u0275fac,providedIn:"root"}),Se})(),yt=(()=>{class Se{constructor(ve,Ee,et){this._elementRef=ve,this._focusTrapFactory=Ee,this._previouslyFocusedElement=null,this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0)}get enabled(){return this.focusTrap.enabled}set enabled(ve){this.focusTrap.enabled=(0,U.Ig)(ve)}get autoCapture(){return this._autoCapture}set autoCapture(ve){this._autoCapture=(0,U.Ig)(ve)}ngOnDestroy(){this.focusTrap.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap.hasAttached()||this.focusTrap.attachAnchors()}ngOnChanges(ve){const Ee=ve.autoCapture;Ee&&!Ee.firstChange&&this.autoCapture&&this.focusTrap.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=(0,G.ht)(),this.focusTrap.focusInitialElementWhenReady()}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.Y36(t.SBq),t.Y36(We),t.Y36(e.K0))},Se.\u0275dir=t.lG2({type:Se,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:["cdkTrapFocus","enabled"],autoCapture:["cdkTrapFocusAutoCapture","autoCapture"]},exportAs:["cdkTrapFocus"],features:[t.TTD]}),Se})();function Y(Se){return 0===Se.offsetX&&0===Se.offsetY}function X(Se){const V=Se.touches&&Se.touches[0]||Se.changedTouches&&Se.changedTouches[0];return!(!V||-1!==V.identifier||null!=V.radiusX&&1!==V.radiusX||null!=V.radiusY&&1!==V.radiusY)}const he=new t.OlP("cdk-input-modality-detector-options"),Me={ignoreKeys:[c.zL,c.jx,c.b2,c.MW,c.JU]},ht=(0,G.i$)({passive:!0,capture:!0});let it=(()=>{class Se{constructor(ve,Ee,et,$t){this._platform=ve,this._mostRecentTarget=null,this._modality=new s.X(null),this._lastTouchMs=0,this._onKeydown=Pt=>{var Xt,lt;(null===(lt=null===(Xt=this._options)||void 0===Xt?void 0:Xt.ignoreKeys)||void 0===lt?void 0:lt.some(Pe=>Pe===Pt.keyCode))||(this._modality.next("keyboard"),this._mostRecentTarget=(0,G.sA)(Pt))},this._onMousedown=Pt=>{Date.now()-this._lastTouchMs<650||(this._modality.next(Y(Pt)?"keyboard":"mouse"),this._mostRecentTarget=(0,G.sA)(Pt))},this._onTouchstart=Pt=>{X(Pt)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=(0,G.sA)(Pt))},this._options=Object.assign(Object.assign({},Me),$t),this.modalityDetected=this._modality.pipe((0,S.T)(1)),this.modalityChanged=this.modalityDetected.pipe((0,D.x)()),ve.isBrowser&&Ee.runOutsideAngular(()=>{et.addEventListener("keydown",this._onKeydown,ht),et.addEventListener("mousedown",this._onMousedown,ht),et.addEventListener("touchstart",this._onTouchstart,ht)})}get mostRecentModality(){return this._modality.value}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,ht),document.removeEventListener("mousedown",this._onMousedown,ht),document.removeEventListener("touchstart",this._onTouchstart,ht))}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.LFG(G.t4),t.LFG(t.R0b),t.LFG(e.K0),t.LFG(he,8))},Se.\u0275prov=t.Yz7({token:Se,factory:Se.\u0275fac,providedIn:"root"}),Se})();const ft=new t.OlP("liveAnnouncerElement",{providedIn:"root",factory:function(){return null}}),st=new t.OlP("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let wt=(()=>{class Se{constructor(ve,Ee,et,$t){this._ngZone=Ee,this._defaultOptions=$t,this._document=et,this._liveElement=ve||this._createLiveElement()}announce(ve,...Ee){const et=this._defaultOptions;let $t,Pt;return 1===Ee.length&&"number"==typeof Ee[0]?Pt=Ee[0]:[$t,Pt]=Ee,this.clear(),clearTimeout(this._previousTimeout),$t||($t=et&&et.politeness?et.politeness:"polite"),null==Pt&&et&&(Pt=et.duration),this._liveElement.setAttribute("aria-live",$t),this._ngZone.runOutsideAngular(()=>new Promise(Xt=>{clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=ve,Xt(),"number"==typeof Pt&&(this._previousTimeout=setTimeout(()=>this.clear(),Pt))},100)}))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){var ve;clearTimeout(this._previousTimeout),null===(ve=this._liveElement)||void 0===ve||ve.remove(),this._liveElement=null}_createLiveElement(){const ve="cdk-live-announcer-element",Ee=this._document.getElementsByClassName(ve),et=this._document.createElement("div");for(let $t=0;$t{class Se{constructor(ve,Ee,et,$t){this._elementRef=ve,this._liveAnnouncer=Ee,this._contentObserver=et,this._ngZone=$t,this._politeness="polite"}get politeness(){return this._politeness}set politeness(ve){this._politeness="off"===ve||"assertive"===ve?ve:"polite","off"===this._politeness?this._subscription&&(this._subscription.unsubscribe(),this._subscription=null):this._subscription||(this._subscription=this._ngZone.runOutsideAngular(()=>this._contentObserver.observe(this._elementRef).subscribe(()=>{const Ee=this._elementRef.nativeElement.textContent;Ee!==this._previousAnnouncedText&&(this._liveAnnouncer.announce(Ee,this._politeness),this._previousAnnouncedText=Ee)})))}ngOnDestroy(){this._subscription&&this._subscription.unsubscribe()}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.Y36(t.SBq),t.Y36(wt),t.Y36(W.yq),t.Y36(t.R0b))},Se.\u0275dir=t.lG2({type:Se,selectors:[["","cdkAriaLive",""]],inputs:{politeness:["cdkAriaLive","politeness"]},exportAs:["cdkAriaLive"]}),Se})();const Nt=new t.OlP("cdk-focus-monitor-default-options"),Vt=(0,G.i$)({passive:!0,capture:!0});let Oi=(()=>{class Se{constructor(ve,Ee,et,$t,Pt){this._ngZone=ve,this._platform=Ee,this._inputModalityDetector=et,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new v.x,this._rootNodeFocusAndBlurListener=Xt=>{const lt=(0,G.sA)(Xt),Pe="focus"===Xt.type?this._onFocus:this._onBlur;for(let Be=lt;Be;Be=Be.parentElement)Pe.call(this,Xt,Be)},this._document=$t,this._detectionMode=(null==Pt?void 0:Pt.detectionMode)||0}monitor(ve,Ee=!1){const et=(0,U.fI)(ve);if(!this._platform.isBrowser||1!==et.nodeType)return(0,C.of)(null);const $t=(0,G.kV)(et)||this._getDocument(),Pt=this._elementInfo.get(et);if(Pt)return Ee&&(Pt.checkChildren=!0),Pt.subject;const Xt={checkChildren:Ee,subject:new v.x,rootNode:$t};return this._elementInfo.set(et,Xt),this._registerGlobalListeners(Xt),Xt.subject}stopMonitoring(ve){const Ee=(0,U.fI)(ve),et=this._elementInfo.get(Ee);et&&(et.subject.complete(),this._setClasses(Ee),this._elementInfo.delete(Ee),this._removeGlobalListeners(et))}focusVia(ve,Ee,et){const $t=(0,U.fI)(ve);$t===this._getDocument().activeElement?this._getClosestElementsInfo($t).forEach(([Xt,lt])=>this._originChanged(Xt,Ee,lt)):(this._setOrigin(Ee),"function"==typeof $t.focus&&$t.focus(et))}ngOnDestroy(){this._elementInfo.forEach((ve,Ee)=>this.stopMonitoring(Ee))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(ve){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(ve)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:"program"}_shouldBeAttributedToTouch(ve){return 1===this._detectionMode||!!(null==ve?void 0:ve.contains(this._inputModalityDetector._mostRecentTarget))}_setClasses(ve,Ee){ve.classList.toggle("cdk-focused",!!Ee),ve.classList.toggle("cdk-touch-focused","touch"===Ee),ve.classList.toggle("cdk-keyboard-focused","keyboard"===Ee),ve.classList.toggle("cdk-mouse-focused","mouse"===Ee),ve.classList.toggle("cdk-program-focused","program"===Ee)}_setOrigin(ve,Ee=!1){this._ngZone.runOutsideAngular(()=>{this._origin=ve,this._originFromTouchInteraction="touch"===ve&&Ee,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(ve,Ee){const et=this._elementInfo.get(Ee),$t=(0,G.sA)(ve);!et||!et.checkChildren&&Ee!==$t||this._originChanged(Ee,this._getFocusOrigin($t),et)}_onBlur(ve,Ee){const et=this._elementInfo.get(Ee);!et||et.checkChildren&&ve.relatedTarget instanceof Node&&Ee.contains(ve.relatedTarget)||(this._setClasses(Ee),this._emitOrigin(et.subject,null))}_emitOrigin(ve,Ee){this._ngZone.run(()=>ve.next(Ee))}_registerGlobalListeners(ve){if(!this._platform.isBrowser)return;const Ee=ve.rootNode,et=this._rootNodeFocusListenerCount.get(Ee)||0;et||this._ngZone.runOutsideAngular(()=>{Ee.addEventListener("focus",this._rootNodeFocusAndBlurListener,Vt),Ee.addEventListener("blur",this._rootNodeFocusAndBlurListener,Vt)}),this._rootNodeFocusListenerCount.set(Ee,et+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe((0,w.R)(this._stopInputModalityDetector)).subscribe($t=>{this._setOrigin($t,!0)}))}_removeGlobalListeners(ve){const Ee=ve.rootNode;if(this._rootNodeFocusListenerCount.has(Ee)){const et=this._rootNodeFocusListenerCount.get(Ee);et>1?this._rootNodeFocusListenerCount.set(Ee,et-1):(Ee.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Vt),Ee.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Vt),this._rootNodeFocusListenerCount.delete(Ee))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(ve,Ee,et){this._setClasses(ve,Ee),this._emitOrigin(et.subject,Ee),this._lastFocusOrigin=Ee}_getClosestElementsInfo(ve){const Ee=[];return this._elementInfo.forEach((et,$t)=>{($t===ve||et.checkChildren&&$t.contains(ve))&&Ee.push([$t,et])}),Ee}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.LFG(t.R0b),t.LFG(G.t4),t.LFG(it),t.LFG(e.K0,8),t.LFG(Nt,8))},Se.\u0275prov=t.Yz7({token:Se,factory:Se.\u0275fac,providedIn:"root"}),Se})(),jt=(()=>{class Se{constructor(ve,Ee){this._elementRef=ve,this._focusMonitor=Ee,this.cdkFocusChange=new t.vpe}ngAfterViewInit(){const ve=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(ve,1===ve.nodeType&&ve.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(Ee=>this.cdkFocusChange.emit(Ee))}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.Y36(t.SBq),t.Y36(Oi))},Se.\u0275dir=t.lG2({type:Se,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"}}),Se})();const ti="cdk-high-contrast-black-on-white",Pi="cdk-high-contrast-white-on-black",si="cdk-high-contrast-active";let di=(()=>{class Se{constructor(ve,Ee){this._platform=ve,this._document=Ee}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const ve=this._document.createElement("div");ve.style.backgroundColor="rgb(1,2,3)",ve.style.position="absolute",this._document.body.appendChild(ve);const Ee=this._document.defaultView||window,et=Ee&&Ee.getComputedStyle?Ee.getComputedStyle(ve):null,$t=(et&&et.backgroundColor||"").replace(/ /g,"");switch(ve.remove(),$t){case"rgb(0,0,0)":return 2;case"rgb(255,255,255)":return 1}return 0}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const ve=this._document.body.classList;ve.remove(si),ve.remove(ti),ve.remove(Pi),this._hasCheckedHighContrastMode=!0;const Ee=this.getHighContrastMode();1===Ee?(ve.add(si),ve.add(ti)):2===Ee&&(ve.add(si),ve.add(Pi))}}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.LFG(G.t4),t.LFG(e.K0))},Se.\u0275prov=t.Yz7({token:Se,factory:Se.\u0275fac,providedIn:"root"}),Se})(),He=(()=>{class Se{constructor(ve){ve._applyBodyHighContrastModeCssClasses()}}return Se.\u0275fac=function(ve){return new(ve||Se)(t.LFG(di))},Se.\u0275mod=t.oAB({type:Se}),Se.\u0275inj=t.cJS({imports:[[G.ud,W.Q8]]}),Se})()},226:(Ue,K,m)=>{"use strict";m.d(K,{vT:()=>o,Is:()=>c});var e=m(5e3),t=m(9808);const v=new e.OlP("cdk-dir-doc",{providedIn:"root",factory:function(){return(0,e.f3M)(t.K0)}}),s=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let c=(()=>{class O{constructor(R){if(this.value="ltr",this.change=new e.vpe,R){const D=R.documentElement?R.documentElement.dir:null;this.value=function(O){const T=(null==O?void 0:O.toLowerCase())||"";return"auto"===T&&"undefined"!=typeof navigator&&(null==navigator?void 0:navigator.language)?s.test(navigator.language)?"rtl":"ltr":"rtl"===T?"rtl":"ltr"}((R.body?R.body.dir:null)||D||"ltr")}}ngOnDestroy(){this.change.complete()}}return O.\u0275fac=function(R){return new(R||O)(e.LFG(v,8))},O.\u0275prov=e.Yz7({token:O,factory:O.\u0275fac,providedIn:"root"}),O})(),o=(()=>{class O{}return O.\u0275fac=function(R){return new(R||O)},O.\u0275mod=e.oAB({type:O}),O.\u0275inj=e.cJS({}),O})()},3191:(Ue,K,m)=>{"use strict";m.d(K,{t6:()=>M,Eq:()=>s,Ig:()=>t,HM:()=>C,fI:()=>c,su:()=>v,du:()=>P});var e=m(5e3);function t(o){return null!=o&&"false"!=`${o}`}function v(o,O=0){return M(o)?Number(o):O}function M(o){return!isNaN(parseFloat(o))&&!isNaN(Number(o))}function s(o){return Array.isArray(o)?o:[o]}function C(o){return null==o?"":"string"==typeof o?o:`${o}px`}function c(o){return o instanceof e.SBq?o.nativeElement:o}function P(o,O=/\s+/){const T=[];if(null!=o){const R=Array.isArray(o)?o:`${o}`.split(O);for(const S of R){const D=`${S}`.trim();D&&T.push(D)}}return T}},449:(Ue,K,m)=>{"use strict";m.d(K,{o2:()=>v,Ov:()=>P,A8:()=>O,yy:()=>C,eX:()=>c,k:()=>T,Z9:()=>M});var e=m(7579),t=m(5e3);class v{}function M(R){return R&&"function"==typeof R.connect}class C{applyChanges(S,D,w,U,G){S.forEachOperation((W,ee,ie)=>{let _e,fe;if(null==W.previousIndex){const de=w(W,ee,ie);_e=D.createEmbeddedView(de.templateRef,de.context,de.index),fe=1}else null==ie?(D.remove(ee),fe=3):(_e=D.get(ee),D.move(_e,ie),fe=2);G&&G({context:null==_e?void 0:_e.context,operation:fe,record:W})})}detach(){}}class c{constructor(){this.viewCacheSize=20,this._viewCache=[]}applyChanges(S,D,w,U,G){S.forEachOperation((W,ee,ie)=>{let _e,fe;null==W.previousIndex?(_e=this._insertView(()=>w(W,ee,ie),ie,D,U(W)),fe=_e?1:0):null==ie?(this._detachAndCacheView(ee,D),fe=3):(_e=this._moveView(ee,ie,D,U(W)),fe=2),G&&G({context:null==_e?void 0:_e.context,operation:fe,record:W})})}detach(){for(const S of this._viewCache)S.destroy();this._viewCache=[]}_insertView(S,D,w,U){const G=this._insertViewFromCache(D,w);if(G)return void(G.context.$implicit=U);const W=S();return w.createEmbeddedView(W.templateRef,W.context,W.index)}_detachAndCacheView(S,D){const w=D.detach(S);this._maybeCacheView(w,D)}_moveView(S,D,w,U){const G=w.get(S);return w.move(G,D),G.context.$implicit=U,G}_maybeCacheView(S,D){if(this._viewCache.lengththis._markSelected(U)):this._markSelected(D[0]),this._selectedToEmit.length=0)}get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}select(...S){this._verifyValueAssignment(S),S.forEach(D=>this._markSelected(D)),this._emitChangeEvent()}deselect(...S){this._verifyValueAssignment(S),S.forEach(D=>this._unmarkSelected(D)),this._emitChangeEvent()}toggle(S){this.isSelected(S)?this.deselect(S):this.select(S)}clear(){this._unmarkAll(),this._emitChangeEvent()}isSelected(S){return this._selection.has(S)}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(S){this._multiple&&this.selected&&this._selected.sort(S)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(S){this.isSelected(S)||(this._multiple||this._unmarkAll(),this._selection.add(S),this._emitChanges&&this._selectedToEmit.push(S))}_unmarkSelected(S){this.isSelected(S)&&(this._selection.delete(S),this._emitChanges&&this._deselectedToEmit.push(S))}_unmarkAll(){this.isEmpty()||this._selection.forEach(S=>this._unmarkSelected(S))}_verifyValueAssignment(S){}}let O=(()=>{class R{constructor(){this._listeners=[]}notify(D,w){for(let U of this._listeners)U(D,w)}listen(D){return this._listeners.push(D),()=>{this._listeners=this._listeners.filter(w=>D!==w)}}ngOnDestroy(){this._listeners=[]}}return R.\u0275fac=function(D){return new(D||R)},R.\u0275prov=t.Yz7({token:R,factory:R.\u0275fac,providedIn:"root"}),R})();const T=new t.OlP("_ViewRepeater")},1159:(Ue,K,m)=>{"use strict";m.d(K,{A:()=>F,zL:()=>P,jx:()=>c,JH:()=>ie,uR:()=>w,K5:()=>s,hY:()=>T,Sd:()=>U,oh:()=>G,b2:()=>ui,MW:()=>nt,aO:()=>I,VM:()=>D,Ku:()=>S,SV:()=>ee,JU:()=>C,L_:()=>R,Mf:()=>v,LH:()=>W,Z:()=>ft,xE:()=>se,Vb:()=>Ci});const v=9,s=13,C=16,c=17,P=18,T=27,R=32,S=33,D=34,w=35,U=36,G=37,W=38,ee=39,ie=40,se=48,I=57,F=65,ft=90,nt=91,ui=224;function Ci(Wi,...$i){return $i.length?$i.some(An=>Wi[An]):Wi.altKey||Wi.shiftKey||Wi.ctrlKey||Wi.metaKey}},5113:(Ue,K,m)=>{"use strict";m.d(K,{Yg:()=>ie,u3:()=>fe,xu:()=>D});var e=m(5e3),t=m(3191),v=m(7579),M=m(9841),s=m(7272),C=m(8306),c=m(5698),P=m(5684),o=m(8372),O=m(4004),T=m(8675),R=m(2722),S=m(925);let D=(()=>{class de{}return de.\u0275fac=function(se){return new(se||de)},de.\u0275mod=e.oAB({type:de}),de.\u0275inj=e.cJS({}),de})();const w=new Set;let U,G=(()=>{class de{constructor(se){this._platform=se,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):ee}matchMedia(se){return(this._platform.WEBKIT||this._platform.BLINK)&&function(de){if(!w.has(de))try{U||(U=document.createElement("style"),U.setAttribute("type","text/css"),document.head.appendChild(U)),U.sheet&&(U.sheet.insertRule(`@media ${de} {body{ }}`,0),w.add(de))}catch(ne){console.error(ne)}}(se),this._matchMedia(se)}}return de.\u0275fac=function(se){return new(se||de)(e.LFG(S.t4))},de.\u0275prov=e.Yz7({token:de,factory:de.\u0275fac,providedIn:"root"}),de})();function ee(de){return{matches:"all"===de||""===de,media:de,addListener:()=>{},removeListener:()=>{}}}let ie=(()=>{class de{constructor(se,oe){this._mediaMatcher=se,this._zone=oe,this._queries=new Map,this._destroySubject=new v.x}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(se){return _e((0,t.Eq)(se)).some(y=>this._registerQuery(y).mql.matches)}observe(se){const y=_e((0,t.Eq)(se)).map(a=>this._registerQuery(a).observable);let i=(0,M.a)(y);return i=(0,s.z)(i.pipe((0,c.q)(1)),i.pipe((0,P.T)(1),(0,o.b)(0))),i.pipe((0,O.U)(a=>{const p={matches:!1,breakpoints:{}};return a.forEach(({matches:u,query:_})=>{p.matches=p.matches||u,p.breakpoints[_]=u}),p}))}_registerQuery(se){if(this._queries.has(se))return this._queries.get(se);const oe=this._mediaMatcher.matchMedia(se),i={observable:new C.y(a=>{const p=u=>this._zone.run(()=>a.next(u));return oe.addListener(p),()=>{oe.removeListener(p)}}).pipe((0,T.O)(oe),(0,O.U)(({matches:a})=>({query:se,matches:a})),(0,R.R)(this._destroySubject)),mql:oe};return this._queries.set(se,i),i}}return de.\u0275fac=function(se){return new(se||de)(e.LFG(G),e.LFG(e.R0b))},de.\u0275prov=e.Yz7({token:de,factory:de.\u0275fac,providedIn:"root"}),de})();function _e(de){return de.map(ne=>ne.split(",")).reduce((ne,se)=>ne.concat(se)).map(ne=>ne.trim())}const fe={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"}},7144:(Ue,K,m)=>{"use strict";m.d(K,{wD:()=>P,yq:()=>c,Q8:()=>o});var e=m(3191),t=m(5e3),v=m(8306),M=m(7579),s=m(8372);let C=(()=>{class O{create(R){return"undefined"==typeof MutationObserver?null:new MutationObserver(R)}}return O.\u0275fac=function(R){return new(R||O)},O.\u0275prov=t.Yz7({token:O,factory:O.\u0275fac,providedIn:"root"}),O})(),c=(()=>{class O{constructor(R){this._mutationObserverFactory=R,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((R,S)=>this._cleanupObserver(S))}observe(R){const S=(0,e.fI)(R);return new v.y(D=>{const U=this._observeElement(S).subscribe(D);return()=>{U.unsubscribe(),this._unobserveElement(S)}})}_observeElement(R){if(this._observedElements.has(R))this._observedElements.get(R).count++;else{const S=new M.x,D=this._mutationObserverFactory.create(w=>S.next(w));D&&D.observe(R,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(R,{observer:D,stream:S,count:1})}return this._observedElements.get(R).stream}_unobserveElement(R){this._observedElements.has(R)&&(this._observedElements.get(R).count--,this._observedElements.get(R).count||this._cleanupObserver(R))}_cleanupObserver(R){if(this._observedElements.has(R)){const{observer:S,stream:D}=this._observedElements.get(R);S&&S.disconnect(),D.complete(),this._observedElements.delete(R)}}}return O.\u0275fac=function(R){return new(R||O)(t.LFG(C))},O.\u0275prov=t.Yz7({token:O,factory:O.\u0275fac,providedIn:"root"}),O})(),P=(()=>{class O{constructor(R,S,D){this._contentObserver=R,this._elementRef=S,this._ngZone=D,this.event=new t.vpe,this._disabled=!1,this._currentSubscription=null}get disabled(){return this._disabled}set disabled(R){this._disabled=(0,e.Ig)(R),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(R){this._debounce=(0,e.su)(R),this._subscribe()}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const R=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?R.pipe((0,s.b)(this.debounce)):R).subscribe(this.event)})}_unsubscribe(){var R;null===(R=this._currentSubscription)||void 0===R||R.unsubscribe()}}return O.\u0275fac=function(R){return new(R||O)(t.Y36(c),t.Y36(t.SBq),t.Y36(t.R0b))},O.\u0275dir=t.lG2({type:O,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),O})(),o=(()=>{class O{}return O.\u0275fac=function(R){return new(R||O)},O.\u0275mod=t.oAB({type:O}),O.\u0275inj=t.cJS({providers:[C]}),O})()},9776:(Ue,K,m)=>{"use strict";m.d(K,{pI:()=>yt,xu:()=>We,_G:()=>r,aV:()=>we,X_:()=>oe,Xj:()=>L,U8:()=>ue});var e=m(5303),t=m(9808),v=m(5e3),M=m(3191),s=m(925),C=m(226),c=m(7429),P=m(7579),o=m(727),O=m(6451),T=m(4482),R=m(5403),D=m(5698),w=m(2722),U=m(1159);const G=(0,s.Mq)();class W{constructor(Y,X){this._viewportRuler=Y,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=X}attach(){}enable(){if(this._canBeEnabled()){const Y=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=Y.style.left||"",this._previousHTMLStyles.top=Y.style.top||"",Y.style.left=(0,M.HM)(-this._previousScrollPosition.left),Y.style.top=(0,M.HM)(-this._previousScrollPosition.top),Y.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const Y=this._document.documentElement,he=Y.style,Me=this._document.body.style,ze=he.scrollBehavior||"",ht=Me.scrollBehavior||"";this._isEnabled=!1,he.left=this._previousHTMLStyles.left,he.top=this._previousHTMLStyles.top,Y.classList.remove("cdk-global-scrollblock"),G&&(he.scrollBehavior=Me.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),G&&(he.scrollBehavior=ze,Me.scrollBehavior=ht)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const X=this._document.body,he=this._viewportRuler.getViewportSize();return X.scrollHeight>he.height||X.scrollWidth>he.width}}class ie{constructor(Y,X,he,Me){this._scrollDispatcher=Y,this._ngZone=X,this._viewportRuler=he,this._config=Me,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(Y){this._overlayRef=Y}enable(){if(this._scrollSubscription)return;const Y=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=Y.subscribe(()=>{const X=this._viewportRuler.getViewportScrollPosition().top;Math.abs(X-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=Y.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class _e{enable(){}disable(){}attach(){}}function fe(ke,Y){return Y.some(X=>ke.bottomX.bottom||ke.rightX.right)}function de(ke,Y){return Y.some(X=>ke.topX.bottom||ke.leftX.right)}class ne{constructor(Y,X,he,Me){this._scrollDispatcher=Y,this._viewportRuler=X,this._ngZone=he,this._config=Me,this._scrollSubscription=null}attach(Y){this._overlayRef=Y}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const X=this._overlayRef.overlayElement.getBoundingClientRect(),{width:he,height:Me}=this._viewportRuler.getViewportSize();fe(X,[{width:he,height:Me,bottom:Me,right:he,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let se=(()=>{class ke{constructor(X,he,Me,ze){this._scrollDispatcher=X,this._viewportRuler=he,this._ngZone=Me,this.noop=()=>new _e,this.close=ht=>new ie(this._scrollDispatcher,this._ngZone,this._viewportRuler,ht),this.block=()=>new W(this._viewportRuler,this._document),this.reposition=ht=>new ne(this._scrollDispatcher,this._viewportRuler,this._ngZone,ht),this._document=ze}}return ke.\u0275fac=function(X){return new(X||ke)(v.LFG(e.mF),v.LFG(e.rL),v.LFG(v.R0b),v.LFG(t.K0))},ke.\u0275prov=v.Yz7({token:ke,factory:ke.\u0275fac,providedIn:"root"}),ke})();class oe{constructor(Y){if(this.scrollStrategy=new _e,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,Y){const X=Object.keys(Y);for(const he of X)void 0!==Y[he]&&(this[he]=Y[he])}}}class a{constructor(Y,X){this.connectionPair=Y,this.scrollableViewProperties=X}}class _{constructor(Y,X,he,Me,ze,ht,it,ft,nt){this._portalOutlet=Y,this._host=X,this._pane=he,this._config=Me,this._ngZone=ze,this._keyboardDispatcher=ht,this._document=it,this._location=ft,this._outsideClickDispatcher=nt,this._backdropElement=null,this._backdropClick=new P.x,this._attachments=new P.x,this._detachments=new P.x,this._locationChanges=o.w0.EMPTY,this._backdropClickHandler=st=>this._backdropClick.next(st),this._keydownEvents=new P.x,this._outsidePointerEvents=new P.x,Me.scrollStrategy&&(this._scrollStrategy=Me.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=Me.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(Y){let X=this._portalOutlet.attach(Y);return!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host),this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe((0,D.q)(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),X}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const Y=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),Y}dispose(){var Y;const X=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),null===(Y=this._host)||void 0===Y||Y.remove(),this._previousHostParent=this._pane=this._host=null,X&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(Y){Y!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=Y,this.hasAttached()&&(Y.attach(this),this.updatePosition()))}updateSize(Y){this._config=Object.assign(Object.assign({},this._config),Y),this._updateElementSize()}setDirection(Y){this._config=Object.assign(Object.assign({},this._config),{direction:Y}),this._updateElementDirection()}addPanelClass(Y){this._pane&&this._toggleClasses(this._pane,Y,!0)}removePanelClass(Y){this._pane&&this._toggleClasses(this._pane,Y,!1)}getDirection(){const Y=this._config.direction;return Y?"string"==typeof Y?Y:Y.value:"ltr"}updateScrollStrategy(Y){Y!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=Y,this.hasAttached()&&(Y.attach(this),Y.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const Y=this._pane.style;Y.width=(0,M.HM)(this._config.width),Y.height=(0,M.HM)(this._config.height),Y.minWidth=(0,M.HM)(this._config.minWidth),Y.minHeight=(0,M.HM)(this._config.minHeight),Y.maxWidth=(0,M.HM)(this._config.maxWidth),Y.maxHeight=(0,M.HM)(this._config.maxHeight)}_togglePointerEvents(Y){this._pane.style.pointerEvents=Y?"":"none"}_attachBackdrop(){const Y="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),"undefined"!=typeof requestAnimationFrame?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(Y)})}):this._backdropElement.classList.add(Y)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const Y=this._backdropElement;if(!Y)return;let X;const he=()=>{Y&&(Y.removeEventListener("click",this._backdropClickHandler),Y.removeEventListener("transitionend",he),this._disposeBackdrop(Y)),this._config.backdropClass&&this._toggleClasses(Y,this._config.backdropClass,!1),clearTimeout(X)};Y.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{Y.addEventListener("transitionend",he)}),Y.style.pointerEvents="none",X=this._ngZone.runOutsideAngular(()=>setTimeout(he,500))}_toggleClasses(Y,X,he){const Me=(0,M.Eq)(X||[]).filter(ze=>!!ze);Me.length&&(he?Y.classList.add(...Me):Y.classList.remove(...Me))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const Y=this._ngZone.onStable.pipe((0,w.R)((0,O.T)(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),Y.unsubscribe())})})}_disposeScrollStrategy(){const Y=this._scrollStrategy;Y&&(Y.disable(),Y.detach&&Y.detach())}_disposeBackdrop(Y){Y&&(Y.remove(),this._backdropElement===Y&&(this._backdropElement=null))}}let L=(()=>{class ke{constructor(X,he){this._platform=he,this._document=X}ngOnDestroy(){var X;null===(X=this._containerElement)||void 0===X||X.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const X="cdk-overlay-container";if(this._platform.isBrowser||(0,s.Oy)()){const Me=this._document.querySelectorAll(`.${X}[platform="server"], .${X}[platform="test"]`);for(let ze=0;ze{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect();const Y=this._originRect,X=this._overlayRect,he=this._viewportRect,Me=[];let ze;for(let ht of this._preferredPositions){let it=this._getOriginPoint(Y,ht),ft=this._getOverlayPoint(it,X,ht),nt=this._getOverlayFit(ft,X,he,ht);if(nt.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(ht,it);this._canFitWithFlexibleDimensions(nt,ft,he)?Me.push({position:ht,origin:it,overlayRect:X,boundingBoxRect:this._calculateBoundingBoxRect(it,ht)}):(!ze||ze.overlayFit.visibleAreait&&(it=nt,ht=ft)}return this._isPushed=!1,void this._applyPosition(ht.position,ht.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(ze.position,ze.originPoint);this._applyPosition(ze.position,ze.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&b(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(I),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(!this._isDisposed&&(!this._platform||this._platform.isBrowser)){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect();const Y=this._lastPosition||this._preferredPositions[0],X=this._getOriginPoint(this._originRect,Y);this._applyPosition(Y,X)}}withScrollableContainers(Y){return this._scrollables=Y,this}withPositions(Y){return this._preferredPositions=Y,-1===Y.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(Y){return this._viewportMargin=Y,this}withFlexibleDimensions(Y=!0){return this._hasFlexibleDimensions=Y,this}withGrowAfterOpen(Y=!0){return this._growAfterOpen=Y,this}withPush(Y=!0){return this._canPush=Y,this}withLockedPosition(Y=!0){return this._positionLocked=Y,this}setOrigin(Y){return this._origin=Y,this}withDefaultOffsetX(Y){return this._offsetX=Y,this}withDefaultOffsetY(Y){return this._offsetY=Y,this}withTransformOriginOn(Y){return this._transformOriginSelector=Y,this}_getOriginPoint(Y,X){let he,Me;if("center"==X.originX)he=Y.left+Y.width/2;else{const ze=this._isRtl()?Y.right:Y.left,ht=this._isRtl()?Y.left:Y.right;he="start"==X.originX?ze:ht}return Me="center"==X.originY?Y.top+Y.height/2:"top"==X.originY?Y.top:Y.bottom,{x:he,y:Me}}_getOverlayPoint(Y,X,he){let Me,ze;return Me="center"==he.overlayX?-X.width/2:"start"===he.overlayX?this._isRtl()?-X.width:0:this._isRtl()?0:-X.width,ze="center"==he.overlayY?-X.height/2:"top"==he.overlayY?0:-X.height,{x:Y.x+Me,y:Y.y+ze}}_getOverlayFit(Y,X,he,Me){const ze=F(X);let{x:ht,y:it}=Y,ft=this._getOffset(Me,"x"),nt=this._getOffset(Me,"y");ft&&(ht+=ft),nt&&(it+=nt);let Bt=0-it,Nt=it+ze.height-he.height,Vt=this._subtractOverflows(ze.width,0-ht,ht+ze.width-he.width),Oi=this._subtractOverflows(ze.height,Bt,Nt),jt=Vt*Oi;return{visibleArea:jt,isCompletelyWithinViewport:ze.width*ze.height===jt,fitsInViewportVertically:Oi===ze.height,fitsInViewportHorizontally:Vt==ze.width}}_canFitWithFlexibleDimensions(Y,X,he){if(this._hasFlexibleDimensions){const Me=he.bottom-X.y,ze=he.right-X.x,ht=J(this._overlayRef.getConfig().minHeight),it=J(this._overlayRef.getConfig().minWidth),nt=Y.fitsInViewportHorizontally||null!=it&&it<=ze;return(Y.fitsInViewportVertically||null!=ht&&ht<=Me)&&nt}return!1}_pushOverlayOnScreen(Y,X,he){if(this._previousPushAmount&&this._positionLocked)return{x:Y.x+this._previousPushAmount.x,y:Y.y+this._previousPushAmount.y};const Me=F(X),ze=this._viewportRect,ht=Math.max(Y.x+Me.width-ze.width,0),it=Math.max(Y.y+Me.height-ze.height,0),ft=Math.max(ze.top-he.top-Y.y,0),nt=Math.max(ze.left-he.left-Y.x,0);let st=0,wt=0;return st=Me.width<=ze.width?nt||-ht:Y.xVt&&!this._isInitialRender&&!this._growAfterOpen&&(ht=Y.y-Vt/2)}if("end"===X.overlayX&&!Me||"start"===X.overlayX&&Me)Bt=he.width-Y.x+this._viewportMargin,st=Y.x-this._viewportMargin;else if("start"===X.overlayX&&!Me||"end"===X.overlayX&&Me)wt=Y.x,st=he.right-Y.x;else{const Nt=Math.min(he.right-Y.x+he.left,Y.x),Vt=this._lastBoundingBoxSize.width;st=2*Nt,wt=Y.x-Nt,st>Vt&&!this._isInitialRender&&!this._growAfterOpen&&(wt=Y.x-Vt/2)}return{top:ht,left:wt,bottom:it,right:Bt,width:st,height:ze}}_setBoundingBoxStyles(Y,X){const he=this._calculateBoundingBoxRect(Y,X);!this._isInitialRender&&!this._growAfterOpen&&(he.height=Math.min(he.height,this._lastBoundingBoxSize.height),he.width=Math.min(he.width,this._lastBoundingBoxSize.width));const Me={};if(this._hasExactPosition())Me.top=Me.left="0",Me.bottom=Me.right=Me.maxHeight=Me.maxWidth="",Me.width=Me.height="100%";else{const ze=this._overlayRef.getConfig().maxHeight,ht=this._overlayRef.getConfig().maxWidth;Me.height=(0,M.HM)(he.height),Me.top=(0,M.HM)(he.top),Me.bottom=(0,M.HM)(he.bottom),Me.width=(0,M.HM)(he.width),Me.left=(0,M.HM)(he.left),Me.right=(0,M.HM)(he.right),Me.alignItems="center"===X.overlayX?"center":"end"===X.overlayX?"flex-end":"flex-start",Me.justifyContent="center"===X.overlayY?"center":"bottom"===X.overlayY?"flex-end":"flex-start",ze&&(Me.maxHeight=(0,M.HM)(ze)),ht&&(Me.maxWidth=(0,M.HM)(ht))}this._lastBoundingBoxSize=he,b(this._boundingBox.style,Me)}_resetBoundingBoxStyles(){b(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){b(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(Y,X){const he={},Me=this._hasExactPosition(),ze=this._hasFlexibleDimensions,ht=this._overlayRef.getConfig();if(Me){const st=this._viewportRuler.getViewportScrollPosition();b(he,this._getExactOverlayY(X,Y,st)),b(he,this._getExactOverlayX(X,Y,st))}else he.position="static";let it="",ft=this._getOffset(X,"x"),nt=this._getOffset(X,"y");ft&&(it+=`translateX(${ft}px) `),nt&&(it+=`translateY(${nt}px)`),he.transform=it.trim(),ht.maxHeight&&(Me?he.maxHeight=(0,M.HM)(ht.maxHeight):ze&&(he.maxHeight="")),ht.maxWidth&&(Me?he.maxWidth=(0,M.HM)(ht.maxWidth):ze&&(he.maxWidth="")),b(this._pane.style,he)}_getExactOverlayY(Y,X,he){let Me={top:"",bottom:""},ze=this._getOverlayPoint(X,this._overlayRect,Y);this._isPushed&&(ze=this._pushOverlayOnScreen(ze,this._overlayRect,he));let ht=this._overlayContainer.getContainerElement().getBoundingClientRect().top;return ze.y-=ht,"bottom"===Y.overlayY?Me.bottom=this._document.documentElement.clientHeight-(ze.y+this._overlayRect.height)+"px":Me.top=(0,M.HM)(ze.y),Me}_getExactOverlayX(Y,X,he){let ht,Me={left:"",right:""},ze=this._getOverlayPoint(X,this._overlayRect,Y);return this._isPushed&&(ze=this._pushOverlayOnScreen(ze,this._overlayRect,he)),ht=this._isRtl()?"end"===Y.overlayX?"left":"right":"end"===Y.overlayX?"right":"left","right"===ht?Me.right=this._document.documentElement.clientWidth-(ze.x+this._overlayRect.width)+"px":Me.left=(0,M.HM)(ze.x),Me}_getScrollVisibility(){const Y=this._getOriginRect(),X=this._pane.getBoundingClientRect(),he=this._scrollables.map(Me=>Me.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:de(Y,he),isOriginOutsideView:fe(Y,he),isOverlayClipped:de(X,he),isOverlayOutsideView:fe(X,he)}}_subtractOverflows(Y,...X){return X.reduce((he,Me)=>he-Math.max(Me,0),Y)}_getNarrowedViewportRect(){const Y=this._document.documentElement.clientWidth,X=this._document.documentElement.clientHeight,he=this._viewportRuler.getViewportScrollPosition();return{top:he.top+this._viewportMargin,left:he.left+this._viewportMargin,right:he.left+Y-this._viewportMargin,bottom:he.top+X-this._viewportMargin,width:Y-2*this._viewportMargin,height:X-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(Y,X){return"x"===X?null==Y.offsetX?this._offsetX:Y.offsetX:null==Y.offsetY?this._offsetY:Y.offsetY}_validatePositions(){}_addPanelClasses(Y){this._pane&&(0,M.Eq)(Y).forEach(X=>{""!==X&&-1===this._appliedPanelClasses.indexOf(X)&&(this._appliedPanelClasses.push(X),this._pane.classList.add(X))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(Y=>{this._pane.classList.remove(Y)}),this._appliedPanelClasses=[])}_getOriginRect(){const Y=this._origin;if(Y instanceof v.SBq)return Y.nativeElement.getBoundingClientRect();if(Y instanceof Element)return Y.getBoundingClientRect();const X=Y.width||0,he=Y.height||0;return{top:Y.y,bottom:Y.y+he,left:Y.x,right:Y.x+X,height:he,width:X}}}function b(ke,Y){for(let X in Y)Y.hasOwnProperty(X)&&(ke[X]=Y[X]);return ke}function J(ke){if("number"!=typeof ke&&null!=ke){const[Y,X]=ke.split(x);return X&&"px"!==X?null:parseFloat(Y)}return ke||null}function F(ke){return{top:Math.floor(ke.top),right:Math.floor(ke.right),bottom:Math.floor(ke.bottom),left:Math.floor(ke.left),width:Math.floor(ke.width),height:Math.floor(ke.height)}}const B="cdk-global-overlay-wrapper";class te{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height=""}attach(Y){const X=Y.getConfig();this._overlayRef=Y,this._width&&!X.width&&Y.updateSize({width:this._width}),this._height&&!X.height&&Y.updateSize({height:this._height}),Y.hostElement.classList.add(B),this._isDisposed=!1}top(Y=""){return this._bottomOffset="",this._topOffset=Y,this._alignItems="flex-start",this}left(Y=""){return this._rightOffset="",this._leftOffset=Y,this._justifyContent="flex-start",this}bottom(Y=""){return this._topOffset="",this._bottomOffset=Y,this._alignItems="flex-end",this}right(Y=""){return this._leftOffset="",this._rightOffset=Y,this._justifyContent="flex-end",this}width(Y=""){return this._overlayRef?this._overlayRef.updateSize({width:Y}):this._width=Y,this}height(Y=""){return this._overlayRef?this._overlayRef.updateSize({height:Y}):this._height=Y,this}centerHorizontally(Y=""){return this.left(Y),this._justifyContent="center",this}centerVertically(Y=""){return this.top(Y),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const Y=this._overlayRef.overlayElement.style,X=this._overlayRef.hostElement.style,he=this._overlayRef.getConfig(),{width:Me,height:ze,maxWidth:ht,maxHeight:it}=he,ft=!("100%"!==Me&&"100vw"!==Me||ht&&"100%"!==ht&&"100vw"!==ht),nt=!("100%"!==ze&&"100vh"!==ze||it&&"100%"!==it&&"100vh"!==it);Y.position=this._cssPosition,Y.marginLeft=ft?"0":this._leftOffset,Y.marginTop=nt?"0":this._topOffset,Y.marginBottom=this._bottomOffset,Y.marginRight=this._rightOffset,ft?X.justifyContent="flex-start":"center"===this._justifyContent?X.justifyContent="center":"rtl"===this._overlayRef.getConfig().direction?"flex-start"===this._justifyContent?X.justifyContent="flex-end":"flex-end"===this._justifyContent&&(X.justifyContent="flex-start"):X.justifyContent=this._justifyContent,X.alignItems=nt?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const Y=this._overlayRef.overlayElement.style,X=this._overlayRef.hostElement,he=X.style;X.classList.remove(B),he.justifyContent=he.alignItems=Y.marginTop=Y.marginBottom=Y.marginLeft=Y.marginRight=Y.position="",this._overlayRef=null,this._isDisposed=!0}}let xe=(()=>{class ke{constructor(X,he,Me,ze){this._viewportRuler=X,this._document=he,this._platform=Me,this._overlayContainer=ze}global(){return new te}flexibleConnectedTo(X){return new r(X,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return ke.\u0275fac=function(X){return new(X||ke)(v.LFG(e.rL),v.LFG(t.K0),v.LFG(s.t4),v.LFG(L))},ke.\u0275prov=v.Yz7({token:ke,factory:ke.\u0275fac,providedIn:"root"}),ke})(),Re=(()=>{class ke{constructor(X){this._attachedOverlays=[],this._document=X}ngOnDestroy(){this.detach()}add(X){this.remove(X),this._attachedOverlays.push(X)}remove(X){const he=this._attachedOverlays.indexOf(X);he>-1&&this._attachedOverlays.splice(he,1),0===this._attachedOverlays.length&&this.detach()}}return ke.\u0275fac=function(X){return new(X||ke)(v.LFG(t.K0))},ke.\u0275prov=v.Yz7({token:ke,factory:ke.\u0275fac,providedIn:"root"}),ke})(),Fe=(()=>{class ke extends Re{constructor(X){super(X),this._keydownListener=he=>{const Me=this._attachedOverlays;for(let ze=Me.length-1;ze>-1;ze--)if(Me[ze]._keydownEvents.observers.length>0){Me[ze]._keydownEvents.next(he);break}}}add(X){super.add(X),this._isAttached||(this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return ke.\u0275fac=function(X){return new(X||ke)(v.LFG(t.K0))},ke.\u0275prov=v.Yz7({token:ke,factory:ke.\u0275fac,providedIn:"root"}),ke})(),q=(()=>{class ke extends Re{constructor(X,he){super(X),this._platform=he,this._cursorStyleIsSet=!1,this._pointerDownListener=Me=>{this._pointerDownEventTarget=(0,s.sA)(Me)},this._clickListener=Me=>{const ze=(0,s.sA)(Me),ht="click"===Me.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:ze;this._pointerDownEventTarget=null;const it=this._attachedOverlays.slice();for(let ft=it.length-1;ft>-1;ft--){const nt=it[ft];if(!(nt._outsidePointerEvents.observers.length<1)&&nt.hasAttached()){if(nt.overlayElement.contains(ze)||nt.overlayElement.contains(ht))break;nt._outsidePointerEvents.next(Me)}}}}add(X){if(super.add(X),!this._isAttached){const he=this._document.body;he.addEventListener("pointerdown",this._pointerDownListener,!0),he.addEventListener("click",this._clickListener,!0),he.addEventListener("auxclick",this._clickListener,!0),he.addEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=he.style.cursor,he.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const X=this._document.body;X.removeEventListener("pointerdown",this._pointerDownListener,!0),X.removeEventListener("click",this._clickListener,!0),X.removeEventListener("auxclick",this._clickListener,!0),X.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(X.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}}return ke.\u0275fac=function(X){return new(X||ke)(v.LFG(t.K0),v.LFG(s.t4))},ke.\u0275prov=v.Yz7({token:ke,factory:ke.\u0275fac,providedIn:"root"}),ke})(),j=0,we=(()=>{class ke{constructor(X,he,Me,ze,ht,it,ft,nt,st,wt,Bt){this.scrollStrategies=X,this._overlayContainer=he,this._componentFactoryResolver=Me,this._positionBuilder=ze,this._keyboardDispatcher=ht,this._injector=it,this._ngZone=ft,this._document=nt,this._directionality=st,this._location=wt,this._outsideClickDispatcher=Bt}create(X){const he=this._createHostElement(),Me=this._createPaneElement(he),ze=this._createPortalOutlet(Me),ht=new oe(X);return ht.direction=ht.direction||this._directionality.value,new _(ze,he,Me,ht,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher)}position(){return this._positionBuilder}_createPaneElement(X){const he=this._document.createElement("div");return he.id="cdk-overlay-"+j++,he.classList.add("cdk-overlay-pane"),X.appendChild(he),he}_createHostElement(){const X=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(X),X}_createPortalOutlet(X){return this._appRef||(this._appRef=this._injector.get(v.z2F)),new c.u0(X,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return ke.\u0275fac=function(X){return new(X||ke)(v.LFG(se),v.LFG(L),v.LFG(v._Vd),v.LFG(xe),v.LFG(Fe),v.LFG(v.zs3),v.LFG(v.R0b),v.LFG(t.K0),v.LFG(C.Is),v.LFG(t.Ye),v.LFG(q))},ke.\u0275prov=v.Yz7({token:ke,factory:ke.\u0275fac}),ke})();const Ae=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],le=new v.OlP("cdk-connected-overlay-scroll-strategy");let We=(()=>{class ke{constructor(X){this.elementRef=X}}return ke.\u0275fac=function(X){return new(X||ke)(v.Y36(v.SBq))},ke.\u0275dir=v.lG2({type:ke,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),ke})(),yt=(()=>{class ke{constructor(X,he,Me,ze,ht){this._overlay=X,this._dir=ht,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=o.w0.EMPTY,this._attachSubscription=o.w0.EMPTY,this._detachSubscription=o.w0.EMPTY,this._positionSubscription=o.w0.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new v.vpe,this.positionChange=new v.vpe,this.attach=new v.vpe,this.detach=new v.vpe,this.overlayKeydown=new v.vpe,this.overlayOutsideClick=new v.vpe,this._templatePortal=new c.UE(he,Me),this._scrollStrategyFactory=ze,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(X){this._offsetX=X,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(X){this._offsetY=X,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(X){this._hasBackdrop=(0,M.Ig)(X)}get lockPosition(){return this._lockPosition}set lockPosition(X){this._lockPosition=(0,M.Ig)(X)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(X){this._flexibleDimensions=(0,M.Ig)(X)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(X){this._growAfterOpen=(0,M.Ig)(X)}get push(){return this._push}set push(X){this._push=(0,M.Ig)(X)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(X){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),X.origin&&this.open&&this._position.apply()),X.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Ae);const X=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=X.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=X.detachments().subscribe(()=>this.detach.emit()),X.keydownEvents().subscribe(he=>{this.overlayKeydown.next(he),he.keyCode===U.hY&&!this.disableClose&&!(0,U.Vb)(he)&&(he.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(he=>{this.overlayOutsideClick.next(he)})}_buildConfig(){const X=this._position=this.positionStrategy||this._createPositionStrategy(),he=new oe({direction:this._dir,positionStrategy:X,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(he.width=this.width),(this.height||0===this.height)&&(he.height=this.height),(this.minWidth||0===this.minWidth)&&(he.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(he.minHeight=this.minHeight),this.backdropClass&&(he.backdropClass=this.backdropClass),this.panelClass&&(he.panelClass=this.panelClass),he}_updatePositionStrategy(X){const he=this.positions.map(Me=>({originX:Me.originX,originY:Me.originY,overlayX:Me.overlayX,overlayY:Me.overlayY,offsetX:Me.offsetX||this.offsetX,offsetY:Me.offsetY||this.offsetY,panelClass:Me.panelClass||void 0}));return X.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(he).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const X=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(X),X}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof We?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(X=>{this.backdropClick.emit(X)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function(ke,Y=!1){return(0,T.e)((X,he)=>{let Me=0;X.subscribe(new R.Q(he,ze=>{const ht=ke(ze,Me++);(ht||Y)&&he.next(ze),!ht&&he.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(X=>{this.positionChange.emit(X),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return ke.\u0275fac=function(X){return new(X||ke)(v.Y36(we),v.Y36(v.Rgc),v.Y36(v.s_b),v.Y36(le),v.Y36(C.Is,8))},ke.\u0275dir=v.lG2({type:ke,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[v.TTD]}),ke})();const Ve={provide:le,deps:[we],useFactory:function(ke){return()=>ke.scrollStrategies.reposition()}};let ue=(()=>{class ke{}return ke.\u0275fac=function(X){return new(X||ke)},ke.\u0275mod=v.oAB({type:ke}),ke.\u0275inj=v.cJS({providers:[we,Ve],imports:[[C.vT,c.eL,e.Cl],e.Cl]}),ke})()},925:(Ue,K,m)=>{"use strict";m.d(K,{t4:()=>M,ud:()=>s,sA:()=>ie,ht:()=>ee,kV:()=>W,Oy:()=>_e,_i:()=>w,qK:()=>P,i$:()=>T,Mq:()=>D});var e=m(5e3),t=m(9808);let v;try{v="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(fe){v=!1}let C,M=(()=>{class fe{constructor(ne){this._platformId=ne,this.isBrowser=this._platformId?(0,t.NF)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!v)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return fe.\u0275fac=function(ne){return new(ne||fe)(e.LFG(e.Lbi))},fe.\u0275prov=e.Yz7({token:fe,factory:fe.\u0275fac,providedIn:"root"}),fe})(),s=(()=>{class fe{}return fe.\u0275fac=function(ne){return new(ne||fe)},fe.\u0275mod=e.oAB({type:fe}),fe.\u0275inj=e.cJS({}),fe})();const c=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function P(){if(C)return C;if("object"!=typeof document||!document)return C=new Set(c),C;let fe=document.createElement("input");return C=new Set(c.filter(de=>(fe.setAttribute("type",de),fe.type===de))),C}let o,R,S,U;function T(fe){return function(){if(null==o&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>o=!0}))}finally{o=o||!1}return o}()?fe:!!fe.capture}function D(){if(null==S){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return S=!1,S;if("scrollBehavior"in document.documentElement.style)S=!0;else{const fe=Element.prototype.scrollTo;S=!!fe&&!/\{\s*\[native code\]\s*\}/.test(fe.toString())}}return S}function w(){if("object"!=typeof document||!document)return 0;if(null==R){const fe=document.createElement("div"),de=fe.style;fe.dir="rtl",de.width="1px",de.overflow="auto",de.visibility="hidden",de.pointerEvents="none",de.position="absolute";const ne=document.createElement("div"),se=ne.style;se.width="2px",se.height="1px",fe.appendChild(ne),document.body.appendChild(fe),R=0,0===fe.scrollLeft&&(fe.scrollLeft=1,R=0===fe.scrollLeft?1:2),fe.remove()}return R}function W(fe){if(function(){if(null==U){const fe="undefined"!=typeof document?document.head:null;U=!(!fe||!fe.createShadowRoot&&!fe.attachShadow)}return U}()){const de=fe.getRootNode?fe.getRootNode():null;if("undefined"!=typeof ShadowRoot&&ShadowRoot&&de instanceof ShadowRoot)return de}return null}function ee(){let fe="undefined"!=typeof document&&document?document.activeElement:null;for(;fe&&fe.shadowRoot;){const de=fe.shadowRoot.activeElement;if(de===fe)break;fe=de}return fe}function ie(fe){return fe.composedPath?fe.composedPath()[0]:fe.target}function _e(){return"undefined"!=typeof __karma__&&!!__karma__||"undefined"!=typeof jasmine&&!!jasmine||"undefined"!=typeof jest&&!!jest||"undefined"!=typeof Mocha&&!!Mocha}},7429:(Ue,K,m)=>{"use strict";m.d(K,{en:()=>S,ig:()=>G,Pl:()=>ee,C5:()=>O,u0:()=>w,eL:()=>_e,UE:()=>T});var e=m(5e3),t=m(9808);class o{attach(ne){return this._attachedHost=ne,ne.attach(this)}detach(){let ne=this._attachedHost;null!=ne&&(this._attachedHost=null,ne.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(ne){this._attachedHost=ne}}class O extends o{constructor(ne,se,oe,y){super(),this.component=ne,this.viewContainerRef=se,this.injector=oe,this.componentFactoryResolver=y}}class T extends o{constructor(ne,se,oe){super(),this.templateRef=ne,this.viewContainerRef=se,this.context=oe}get origin(){return this.templateRef.elementRef}attach(ne,se=this.context){return this.context=se,super.attach(ne)}detach(){return this.context=void 0,super.detach()}}class R extends o{constructor(ne){super(),this.element=ne instanceof e.SBq?ne.nativeElement:ne}}class S{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(ne){return ne instanceof O?(this._attachedPortal=ne,this.attachComponentPortal(ne)):ne instanceof T?(this._attachedPortal=ne,this.attachTemplatePortal(ne)):this.attachDomPortal&&ne instanceof R?(this._attachedPortal=ne,this.attachDomPortal(ne)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(ne){this._disposeFn=ne}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class w extends S{constructor(ne,se,oe,y,i){super(),this.outletElement=ne,this._componentFactoryResolver=se,this._appRef=oe,this._defaultInjector=y,this.attachDomPortal=a=>{const p=a.element,u=this._document.createComment("dom-portal");p.parentNode.insertBefore(u,p),this.outletElement.appendChild(p),this._attachedPortal=a,super.setDisposeFn(()=>{u.parentNode&&u.parentNode.replaceChild(p,u)})},this._document=i}attachComponentPortal(ne){const oe=(ne.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(ne.component);let y;return ne.viewContainerRef?(y=ne.viewContainerRef.createComponent(oe,ne.viewContainerRef.length,ne.injector||ne.viewContainerRef.injector),this.setDisposeFn(()=>y.destroy())):(y=oe.create(ne.injector||this._defaultInjector),this._appRef.attachView(y.hostView),this.setDisposeFn(()=>{this._appRef.detachView(y.hostView),y.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(y)),this._attachedPortal=ne,y}attachTemplatePortal(ne){let se=ne.viewContainerRef,oe=se.createEmbeddedView(ne.templateRef,ne.context);return oe.rootNodes.forEach(y=>this.outletElement.appendChild(y)),oe.detectChanges(),this.setDisposeFn(()=>{let y=se.indexOf(oe);-1!==y&&se.remove(y)}),this._attachedPortal=ne,oe}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(ne){return ne.hostView.rootNodes[0]}}let G=(()=>{class de extends T{constructor(se,oe){super(se,oe)}}return de.\u0275fac=function(se){return new(se||de)(e.Y36(e.Rgc),e.Y36(e.s_b))},de.\u0275dir=e.lG2({type:de,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[e.qOj]}),de})(),ee=(()=>{class de extends S{constructor(se,oe,y){super(),this._componentFactoryResolver=se,this._viewContainerRef=oe,this._isInitialized=!1,this.attached=new e.vpe,this.attachDomPortal=i=>{const a=i.element,p=this._document.createComment("dom-portal");i.setAttachedHost(this),a.parentNode.insertBefore(p,a),this._getRootNode().appendChild(a),this._attachedPortal=i,super.setDisposeFn(()=>{p.parentNode&&p.parentNode.replaceChild(a,p)})},this._document=y}get portal(){return this._attachedPortal}set portal(se){this.hasAttached()&&!se&&!this._isInitialized||(this.hasAttached()&&super.detach(),se&&super.attach(se),this._attachedPortal=se)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedPortal=null,this._attachedRef=null}attachComponentPortal(se){se.setAttachedHost(this);const oe=null!=se.viewContainerRef?se.viewContainerRef:this._viewContainerRef,i=(se.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(se.component),a=oe.createComponent(i,oe.length,se.injector||oe.injector);return oe!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=se,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(se){se.setAttachedHost(this);const oe=this._viewContainerRef.createEmbeddedView(se.templateRef,se.context);return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=se,this._attachedRef=oe,this.attached.emit(oe),oe}_getRootNode(){const se=this._viewContainerRef.element.nativeElement;return se.nodeType===se.ELEMENT_NODE?se:se.parentNode}}return de.\u0275fac=function(se){return new(se||de)(e.Y36(e._Vd),e.Y36(e.s_b),e.Y36(t.K0))},de.\u0275dir=e.lG2({type:de,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[e.qOj]}),de})(),_e=(()=>{class de{}return de.\u0275fac=function(se){return new(se||de)},de.\u0275mod=e.oAB({type:de}),de.\u0275inj=e.cJS({}),de})()},5303:(Ue,K,m)=>{"use strict";m.d(K,{PQ:()=>p,ZD:()=>J,mF:()=>a,Cl:()=>F,rL:()=>_});var e=m(3191),t=m(5e3),v=m(4408),M=m(727);const s={schedule(B){let te=requestAnimationFrame,xe=cancelAnimationFrame;const{delegate:Re}=s;Re&&(te=Re.requestAnimationFrame,xe=Re.cancelAnimationFrame);const Fe=te(q=>{xe=void 0,B(q)});return new M.w0(()=>null==xe?void 0:xe(Fe))},requestAnimationFrame(...B){const{delegate:te}=s;return((null==te?void 0:te.requestAnimationFrame)||requestAnimationFrame)(...B)},cancelAnimationFrame(...B){const{delegate:te}=s;return((null==te?void 0:te.cancelAnimationFrame)||cancelAnimationFrame)(...B)},delegate:void 0};var c=m(7565);new class extends c.v{flush(te){this._active=!0,this._scheduled=void 0;const{actions:xe}=this;let Re,Fe=-1;te=te||xe.shift();const q=xe.length;do{if(Re=te.execute(te.state,te.delay))break}while(++Fe0?super.requestAsyncId(te,xe,Re):(te.actions.push(this),te._scheduled||(te._scheduled=s.requestAnimationFrame(()=>te.flush(void 0))))}recycleAsyncId(te,xe,Re=0){if(null!=Re&&Re>0||null==Re&&this.delay>0)return super.recycleAsyncId(te,xe,Re);0===te.actions.length&&(s.cancelAnimationFrame(xe),te._scheduled=void 0)}});var T=m(7579),R=m(9646),S=m(8306),D=m(4968),U=(m(3101),m(3601)),G=m(9300),W=m(2722),ee=m(9808),ie=m(925),_e=m(226);let a=(()=>{class B{constructor(xe,Re,Fe){this._ngZone=xe,this._platform=Re,this._scrolled=new T.x,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=Fe}register(xe){this.scrollContainers.has(xe)||this.scrollContainers.set(xe,xe.elementScrolled().subscribe(()=>this._scrolled.next(xe)))}deregister(xe){const Re=this.scrollContainers.get(xe);Re&&(Re.unsubscribe(),this.scrollContainers.delete(xe))}scrolled(xe=20){return this._platform.isBrowser?new S.y(Re=>{this._globalSubscription||this._addGlobalListener();const Fe=xe>0?this._scrolled.pipe((0,U.e)(xe)).subscribe(Re):this._scrolled.subscribe(Re);return this._scrolledCount++,()=>{Fe.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):(0,R.of)()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((xe,Re)=>this.deregister(Re)),this._scrolled.complete()}ancestorScrolled(xe,Re){const Fe=this.getAncestorScrollContainers(xe);return this.scrolled(Re).pipe((0,G.h)(q=>!q||Fe.indexOf(q)>-1))}getAncestorScrollContainers(xe){const Re=[];return this.scrollContainers.forEach((Fe,q)=>{this._scrollableContainsElement(q,xe)&&Re.push(q)}),Re}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(xe,Re){let Fe=(0,e.fI)(Re),q=xe.getElementRef().nativeElement;do{if(Fe==q)return!0}while(Fe=Fe.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>{const xe=this._getWindow();return(0,D.R)(xe.document,"scroll").subscribe(()=>this._scrolled.next())})}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return B.\u0275fac=function(xe){return new(xe||B)(t.LFG(t.R0b),t.LFG(ie.t4),t.LFG(ee.K0,8))},B.\u0275prov=t.Yz7({token:B,factory:B.\u0275fac,providedIn:"root"}),B})(),p=(()=>{class B{constructor(xe,Re,Fe,q){this.elementRef=xe,this.scrollDispatcher=Re,this.ngZone=Fe,this.dir=q,this._destroyed=new T.x,this._elementScrolled=new S.y(j=>this.ngZone.runOutsideAngular(()=>(0,D.R)(this.elementRef.nativeElement,"scroll").pipe((0,W.R)(this._destroyed)).subscribe(j)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(xe){const Re=this.elementRef.nativeElement,Fe=this.dir&&"rtl"==this.dir.value;null==xe.left&&(xe.left=Fe?xe.end:xe.start),null==xe.right&&(xe.right=Fe?xe.start:xe.end),null!=xe.bottom&&(xe.top=Re.scrollHeight-Re.clientHeight-xe.bottom),Fe&&0!=(0,ie._i)()?(null!=xe.left&&(xe.right=Re.scrollWidth-Re.clientWidth-xe.left),2==(0,ie._i)()?xe.left=xe.right:1==(0,ie._i)()&&(xe.left=xe.right?-xe.right:xe.right)):null!=xe.right&&(xe.left=Re.scrollWidth-Re.clientWidth-xe.right),this._applyScrollToOptions(xe)}_applyScrollToOptions(xe){const Re=this.elementRef.nativeElement;(0,ie.Mq)()?Re.scrollTo(xe):(null!=xe.top&&(Re.scrollTop=xe.top),null!=xe.left&&(Re.scrollLeft=xe.left))}measureScrollOffset(xe){const Re="left",q=this.elementRef.nativeElement;if("top"==xe)return q.scrollTop;if("bottom"==xe)return q.scrollHeight-q.clientHeight-q.scrollTop;const j=this.dir&&"rtl"==this.dir.value;return"start"==xe?xe=j?"right":Re:"end"==xe&&(xe=j?Re:"right"),j&&2==(0,ie._i)()?xe==Re?q.scrollWidth-q.clientWidth-q.scrollLeft:q.scrollLeft:j&&1==(0,ie._i)()?xe==Re?q.scrollLeft+q.scrollWidth-q.clientWidth:-q.scrollLeft:xe==Re?q.scrollLeft:q.scrollWidth-q.clientWidth-q.scrollLeft}}return B.\u0275fac=function(xe){return new(xe||B)(t.Y36(t.SBq),t.Y36(a),t.Y36(t.R0b),t.Y36(_e.Is,8))},B.\u0275dir=t.lG2({type:B,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]}),B})(),_=(()=>{class B{constructor(xe,Re,Fe){this._platform=xe,this._change=new T.x,this._changeListener=q=>{this._change.next(q)},this._document=Fe,Re.runOutsideAngular(()=>{if(xe.isBrowser){const q=this._getWindow();q.addEventListener("resize",this._changeListener),q.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const xe=this._getWindow();xe.removeEventListener("resize",this._changeListener),xe.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const xe={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),xe}getViewportRect(){const xe=this.getViewportScrollPosition(),{width:Re,height:Fe}=this.getViewportSize();return{top:xe.top,left:xe.left,bottom:xe.top+Fe,right:xe.left+Re,height:Fe,width:Re}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const xe=this._document,Re=this._getWindow(),Fe=xe.documentElement,q=Fe.getBoundingClientRect();return{top:-q.top||xe.body.scrollTop||Re.scrollY||Fe.scrollTop||0,left:-q.left||xe.body.scrollLeft||Re.scrollX||Fe.scrollLeft||0}}change(xe=20){return xe>0?this._change.pipe((0,U.e)(xe)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const xe=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:xe.innerWidth,height:xe.innerHeight}:{width:0,height:0}}}return B.\u0275fac=function(xe){return new(xe||B)(t.LFG(ie.t4),t.LFG(t.R0b),t.LFG(ee.K0,8))},B.\u0275prov=t.Yz7({token:B,factory:B.\u0275fac,providedIn:"root"}),B})(),J=(()=>{class B{}return B.\u0275fac=function(xe){return new(xe||B)},B.\u0275mod=t.oAB({type:B}),B.\u0275inj=t.cJS({}),B})(),F=(()=>{class B{}return B.\u0275fac=function(xe){return new(xe||B)},B.\u0275mod=t.oAB({type:B}),B.\u0275inj=t.cJS({imports:[[_e.vT,ie.ud,J],_e.vT,J]}),B})()},1555:(Ue,K,m)=>{"use strict";m.d(K,{be:()=>ie,KL:()=>D,u6:()=>w,B8:()=>_e,U5:()=>ne,st:()=>fe,po:()=>de,gx:()=>ee});var e=m(5664),t=m(3191),v=m(1159),M=m(9808),s=m(5e3),C=m(925),c=m(7579),P=m(9646),o=m(8675),O=m(2722),T=m(226);function R(se,oe){1&se&&s.Hsn(0)}const S=["*"];let D=(()=>{class se{constructor(y){this._elementRef=y}focus(){this._elementRef.nativeElement.focus()}}return se.\u0275fac=function(y){return new(y||se)(s.Y36(s.SBq))},se.\u0275dir=s.lG2({type:se,selectors:[["","cdkStepHeader",""]],hostAttrs:["role","tab"]}),se})(),w=(()=>{class se{constructor(y){this.template=y}}return se.\u0275fac=function(y){return new(y||se)(s.Y36(s.Rgc))},se.\u0275dir=s.lG2({type:se,selectors:[["","cdkStepLabel",""]]}),se})(),U=0;const ee=new s.OlP("STEPPER_GLOBAL_OPTIONS");let ie=(()=>{class se{constructor(y,i){this._stepper=y,this.interacted=!1,this.interactedStream=new s.vpe,this._editable=!0,this._optional=!1,this._completedOverride=null,this._customError=null,this._stepperOptions=i||{},this._displayDefaultIndicatorType=!1!==this._stepperOptions.displayDefaultIndicatorType}get editable(){return this._editable}set editable(y){this._editable=(0,t.Ig)(y)}get optional(){return this._optional}set optional(y){this._optional=(0,t.Ig)(y)}get completed(){return null==this._completedOverride?this._getDefaultCompleted():this._completedOverride}set completed(y){this._completedOverride=(0,t.Ig)(y)}_getDefaultCompleted(){return this.stepControl?this.stepControl.valid&&this.interacted:this.interacted}get hasError(){return null==this._customError?this._getDefaultError():this._customError}set hasError(y){this._customError=(0,t.Ig)(y)}_getDefaultError(){return this.stepControl&&this.stepControl.invalid&&this.interacted}select(){this._stepper.selected=this}reset(){this.interacted=!1,null!=this._completedOverride&&(this._completedOverride=!1),null!=this._customError&&(this._customError=!1),this.stepControl&&this.stepControl.reset()}ngOnChanges(){this._stepper._stateChanged()}_markAsInteracted(){this.interacted||(this.interacted=!0,this.interactedStream.emit(this))}_showError(){var y;return null!==(y=this._stepperOptions.showError)&&void 0!==y?y:null!=this._customError}}return se.\u0275fac=function(y){return new(y||se)(s.Y36((0,s.Gpc)(()=>_e)),s.Y36(ee,8))},se.\u0275cmp=s.Xpm({type:se,selectors:[["cdk-step"]],contentQueries:function(y,i,a){if(1&y&&s.Suo(a,w,5),2&y){let p;s.iGM(p=s.CRH())&&(i.stepLabel=p.first)}},viewQuery:function(y,i){if(1&y&&s.Gf(s.Rgc,7),2&y){let a;s.iGM(a=s.CRH())&&(i.content=a.first)}},inputs:{stepControl:"stepControl",label:"label",errorMessage:"errorMessage",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],state:"state",editable:"editable",optional:"optional",completed:"completed",hasError:"hasError"},outputs:{interactedStream:"interacted"},exportAs:["cdkStep"],features:[s.TTD],ngContentSelectors:S,decls:1,vars:0,template:function(y,i){1&y&&(s.F$t(),s.YNc(0,R,1,0,"ng-template"))},encapsulation:2,changeDetection:0}),se})(),_e=(()=>{class se{constructor(y,i,a,p){this._dir=y,this._changeDetectorRef=i,this._elementRef=a,this._destroyed=new c.x,this.steps=new s.n_E,this._sortedHeaders=new s.n_E,this._linear=!1,this._selectedIndex=0,this.selectionChange=new s.vpe,this._orientation="horizontal",this._groupId=U++}get linear(){return this._linear}set linear(y){this._linear=(0,t.Ig)(y)}get selectedIndex(){return this._selectedIndex}set selectedIndex(y){var i;const a=(0,t.su)(y);this.steps&&this._steps?(this._isValidIndex(y),null===(i=this.selected)||void 0===i||i._markAsInteracted(),this._selectedIndex!==a&&!this._anyControlsInvalidOrPending(a)&&(a>=this._selectedIndex||this.steps.toArray()[a].editable)&&this._updateSelectedItemIndex(y)):this._selectedIndex=a}get selected(){return this.steps?this.steps.toArray()[this.selectedIndex]:void 0}set selected(y){this.selectedIndex=y&&this.steps?this.steps.toArray().indexOf(y):-1}get orientation(){return this._orientation}set orientation(y){this._orientation=y,this._keyManager&&this._keyManager.withVerticalOrientation("vertical"===y)}ngAfterContentInit(){this._steps.changes.pipe((0,o.O)(this._steps),(0,O.R)(this._destroyed)).subscribe(y=>{this.steps.reset(y.filter(i=>i._stepper===this)),this.steps.notifyOnChanges()})}ngAfterViewInit(){this._stepHeader.changes.pipe((0,o.O)(this._stepHeader),(0,O.R)(this._destroyed)).subscribe(y=>{this._sortedHeaders.reset(y.toArray().sort((i,a)=>i._elementRef.nativeElement.compareDocumentPosition(a._elementRef.nativeElement)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1)),this._sortedHeaders.notifyOnChanges()}),this._keyManager=new e.Em(this._sortedHeaders).withWrap().withHomeAndEnd().withVerticalOrientation("vertical"===this._orientation),(this._dir?this._dir.change:(0,P.of)()).pipe((0,o.O)(this._layoutDirection()),(0,O.R)(this._destroyed)).subscribe(y=>this._keyManager.withHorizontalOrientation(y)),this._keyManager.updateActiveItem(this._selectedIndex),this.steps.changes.subscribe(()=>{this.selected||(this._selectedIndex=Math.max(this._selectedIndex-1,0))}),this._isValidIndex(this._selectedIndex)||(this._selectedIndex=0)}ngOnDestroy(){this.steps.destroy(),this._sortedHeaders.destroy(),this._destroyed.next(),this._destroyed.complete()}next(){this.selectedIndex=Math.min(this._selectedIndex+1,this.steps.length-1)}previous(){this.selectedIndex=Math.max(this._selectedIndex-1,0)}reset(){this._updateSelectedItemIndex(0),this.steps.forEach(y=>y.reset()),this._stateChanged()}_getStepLabelId(y){return`cdk-step-label-${this._groupId}-${y}`}_getStepContentId(y){return`cdk-step-content-${this._groupId}-${y}`}_stateChanged(){this._changeDetectorRef.markForCheck()}_getAnimationDirection(y){const i=y-this._selectedIndex;return i<0?"rtl"===this._layoutDirection()?"next":"previous":i>0?"rtl"===this._layoutDirection()?"previous":"next":"current"}_getIndicatorType(y,i="number"){const a=this.steps.toArray()[y],p=this._isCurrentStep(y);return a._displayDefaultIndicatorType?this._getDefaultIndicatorLogic(a,p):this._getGuidelineLogic(a,p,i)}_getDefaultIndicatorLogic(y,i){return y._showError()&&y.hasError&&!i?"error":!y.completed||i?"number":y.editable?"edit":"done"}_getGuidelineLogic(y,i,a="number"){return y._showError()&&y.hasError&&!i?"error":y.completed&&!i?"done":y.completed&&i?a:y.editable&&i?"edit":a}_isCurrentStep(y){return this._selectedIndex===y}_getFocusIndex(){return this._keyManager?this._keyManager.activeItemIndex:this._selectedIndex}_updateSelectedItemIndex(y){const i=this.steps.toArray();this.selectionChange.emit({selectedIndex:y,previouslySelectedIndex:this._selectedIndex,selectedStep:i[y],previouslySelectedStep:i[this._selectedIndex]}),this._containsFocus()?this._keyManager.setActiveItem(y):this._keyManager.updateActiveItem(y),this._selectedIndex=y,this._stateChanged()}_onKeydown(y){const i=(0,v.Vb)(y),a=y.keyCode,p=this._keyManager;null==p.activeItemIndex||i||a!==v.L_&&a!==v.K5?p.onKeydown(y):(this.selectedIndex=p.activeItemIndex,y.preventDefault())}_anyControlsInvalidOrPending(y){return!!(this._linear&&y>=0)&&this.steps.toArray().slice(0,y).some(i=>{const a=i.stepControl;return(a?a.invalid||a.pending||!i.interacted:!i.completed)&&!i.optional&&!i._completedOverride})}_layoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_containsFocus(){const y=this._elementRef.nativeElement,i=(0,C.ht)();return y===i||y.contains(i)}_isValidIndex(y){return y>-1&&(!this.steps||y{class se{constructor(y){this._stepper=y,this.type="submit"}}return se.\u0275fac=function(y){return new(y||se)(s.Y36(_e))},se.\u0275dir=s.lG2({type:se,selectors:[["button","cdkStepperNext",""]],hostVars:1,hostBindings:function(y,i){1&y&&s.NdJ("click",function(){return i._stepper.next()}),2&y&&s.Ikx("type",i.type)},inputs:{type:"type"}}),se})(),de=(()=>{class se{constructor(y){this._stepper=y,this.type="button"}}return se.\u0275fac=function(y){return new(y||se)(s.Y36(_e))},se.\u0275dir=s.lG2({type:se,selectors:[["button","cdkStepperPrevious",""]],hostVars:1,hostBindings:function(y,i){1&y&&s.NdJ("click",function(){return i._stepper.previous()}),2&y&&s.Ikx("type",i.type)},inputs:{type:"type"}}),se})(),ne=(()=>{class se{}return se.\u0275fac=function(y){return new(y||se)},se.\u0275mod=s.oAB({type:se}),se.\u0275inj=s.cJS({imports:[[T.vT]]}),se})()},8258:(Ue,K,m)=>{"use strict";m.d(K,{HI:()=>w,Xx:()=>i,_0:()=>ne,nZ:()=>L,Hs:()=>se,rO:()=>W,cu:()=>U,XJ:()=>p,Ud:()=>u,VY:()=>D});var e=m(449),t=m(5191),v=m(7579),M=m(1135),s=m(9646),C=m(5698),c=m(9300),P=m(2722),o=m(5e3),O=m(3191),T=m(226);class D extends class{constructor(){this.expansionModel=new e.Ov(!0)}toggle(x){this.expansionModel.toggle(this._trackByValue(x))}expand(x){this.expansionModel.select(this._trackByValue(x))}collapse(x){this.expansionModel.deselect(this._trackByValue(x))}isExpanded(x){return this.expansionModel.isSelected(this._trackByValue(x))}toggleDescendants(x){this.expansionModel.isSelected(this._trackByValue(x))?this.collapseDescendants(x):this.expandDescendants(x)}collapseAll(){this.expansionModel.clear()}expandDescendants(x){let r=[x];r.push(...this.getDescendants(x)),this.expansionModel.select(...r.map(b=>this._trackByValue(b)))}collapseDescendants(x){let r=[x];r.push(...this.getDescendants(x)),this.expansionModel.deselect(...r.map(b=>this._trackByValue(b)))}_trackByValue(x){return this.trackBy?this.trackBy(x):x}}{constructor(x,r){super(),this.getChildren=x,this.options=r,this.options&&(this.trackBy=this.options.trackBy)}expandAll(){this.expansionModel.clear();const x=this.dataNodes.reduce((r,b)=>[...r,...this.getDescendants(b),b],[]);this.expansionModel.select(...x.map(r=>this._trackByValue(r)))}getDescendants(x){const r=[];return this._getDescendants(r,x),r.splice(1)}_getDescendants(x,r){x.push(r);const b=this.getChildren(r);Array.isArray(b)?b.forEach(J=>this._getDescendants(x,J)):(0,t.b)(b)&&b.pipe((0,C.q)(1),(0,c.h)(Boolean)).subscribe(J=>{for(const F of J)this._getDescendants(x,F)})}}const w=new o.OlP("CDK_TREE_NODE_OUTLET_NODE");let U=(()=>{class I{constructor(r,b){this.viewContainer=r,this._node=b}}return I.\u0275fac=function(r){return new(r||I)(o.Y36(o.s_b),o.Y36(w,8))},I.\u0275dir=o.lG2({type:I,selectors:[["","cdkTreeNodeOutlet",""]]}),I})();class G{constructor(x){this.$implicit=x}}let W=(()=>{class I{constructor(r){this.template=r}}return I.\u0275fac=function(r){return new(r||I)(o.Y36(o.Rgc))},I.\u0275dir=o.lG2({type:I,selectors:[["","cdkTreeNodeDef",""]],inputs:{when:["cdkTreeNodeDefWhen","when"]}}),I})(),ne=(()=>{class I{constructor(r,b){this._differs=r,this._changeDetectorRef=b,this._onDestroy=new v.x,this._levels=new Map,this.viewChange=new M.X({start:0,end:Number.MAX_VALUE})}get dataSource(){return this._dataSource}set dataSource(r){this._dataSource!==r&&this._switchDataSource(r)}ngOnInit(){this._dataDiffer=this._differs.find([]).create(this.trackBy)}ngOnDestroy(){this._nodeOutlet.viewContainer.clear(),this.viewChange.complete(),this._onDestroy.next(),this._onDestroy.complete(),this._dataSource&&"function"==typeof this._dataSource.disconnect&&this.dataSource.disconnect(this),this._dataSubscription&&(this._dataSubscription.unsubscribe(),this._dataSubscription=null)}ngAfterContentChecked(){const r=this._nodeDefs.filter(b=>!b.when);this._defaultNodeDef=r[0],this.dataSource&&this._nodeDefs&&!this._dataSubscription&&this._observeRenderChanges()}_switchDataSource(r){this._dataSource&&"function"==typeof this._dataSource.disconnect&&this.dataSource.disconnect(this),this._dataSubscription&&(this._dataSubscription.unsubscribe(),this._dataSubscription=null),r||this._nodeOutlet.viewContainer.clear(),this._dataSource=r,this._nodeDefs&&this._observeRenderChanges()}_observeRenderChanges(){let r;(0,e.Z9)(this._dataSource)?r=this._dataSource.connect(this):(0,t.b)(this._dataSource)?r=this._dataSource:Array.isArray(this._dataSource)&&(r=(0,s.of)(this._dataSource)),r&&(this._dataSubscription=r.pipe((0,P.R)(this._onDestroy)).subscribe(b=>this.renderNodeChanges(b)))}renderNodeChanges(r,b=this._dataDiffer,J=this._nodeOutlet.viewContainer,F){const B=b.diff(r);!B||(B.forEachOperation((te,xe,Re)=>{if(null==te.previousIndex)this.insertNode(r[Re],Re,J,F);else if(null==Re)J.remove(xe),this._levels.delete(te.item);else{const Fe=J.get(xe);J.move(Fe,Re)}}),this._changeDetectorRef.detectChanges())}_getNodeDef(r,b){return 1===this._nodeDefs.length?this._nodeDefs.first:this._nodeDefs.find(F=>F.when&&F.when(b,r))||this._defaultNodeDef}insertNode(r,b,J,F){const B=this._getNodeDef(r,b),te=new G(r);te.level=this.treeControl.getLevel?this.treeControl.getLevel(r):void 0!==F&&this._levels.has(F)?this._levels.get(F)+1:0,this._levels.set(r,te.level),(J||this._nodeOutlet.viewContainer).createEmbeddedView(B.template,te,b),se.mostRecentTreeNode&&(se.mostRecentTreeNode.data=r)}}return I.\u0275fac=function(r){return new(r||I)(o.Y36(o.ZZ4),o.Y36(o.sBO))},I.\u0275cmp=o.Xpm({type:I,selectors:[["cdk-tree"]],contentQueries:function(r,b,J){if(1&r&&o.Suo(J,W,5),2&r){let F;o.iGM(F=o.CRH())&&(b._nodeDefs=F)}},viewQuery:function(r,b){if(1&r&&o.Gf(U,7),2&r){let J;o.iGM(J=o.CRH())&&(b._nodeOutlet=J.first)}},hostAttrs:["role","tree",1,"cdk-tree"],inputs:{dataSource:"dataSource",treeControl:"treeControl",trackBy:"trackBy"},exportAs:["cdkTree"],decls:1,vars:0,consts:[["cdkTreeNodeOutlet",""]],template:function(r,b){1&r&&o.GkF(0,0)},directives:[U],encapsulation:2}),I})(),se=(()=>{class I{constructor(r,b){this._elementRef=r,this._tree=b,this._destroyed=new v.x,this._dataChanges=new v.x,I.mostRecentTreeNode=this,this.role="treeitem"}get role(){return"treeitem"}set role(r){this._elementRef.nativeElement.setAttribute("role",r)}get data(){return this._data}set data(r){r!==this._data&&(this._data=r,this._setRoleFromData(),this._dataChanges.next())}get isExpanded(){return this._tree.treeControl.isExpanded(this._data)}get level(){return this._tree.treeControl.getLevel?this._tree.treeControl.getLevel(this._data):this._parentNodeAriaLevel}ngOnInit(){this._parentNodeAriaLevel=function(I){let x=I.parentElement;for(;x&&!y(x);)x=x.parentElement;return x?x.classList.contains("cdk-nested-tree-node")?(0,O.su)(x.getAttribute("aria-level")):0:-1}(this._elementRef.nativeElement),this._elementRef.nativeElement.setAttribute("aria-level",`${this.level+1}`)}ngOnDestroy(){I.mostRecentTreeNode===this&&(I.mostRecentTreeNode=null),this._dataChanges.complete(),this._destroyed.next(),this._destroyed.complete()}focus(){this._elementRef.nativeElement.focus()}_setRoleFromData(){this.role="treeitem"}}return I.mostRecentTreeNode=null,I.\u0275fac=function(r){return new(r||I)(o.Y36(o.SBq),o.Y36(ne))},I.\u0275dir=o.lG2({type:I,selectors:[["cdk-tree-node"]],hostAttrs:[1,"cdk-tree-node"],hostVars:1,hostBindings:function(r,b){2&r&&o.uIk("aria-expanded",b.isExpanded)},inputs:{role:"role"},exportAs:["cdkTreeNode"]}),I})();function y(I){const x=I.classList;return!(!(null==x?void 0:x.contains("cdk-nested-tree-node"))&&!(null==x?void 0:x.contains("cdk-tree")))}let i=(()=>{class I extends se{constructor(r,b,J){super(r,b),this._differs=J}ngAfterContentInit(){this._dataDiffer=this._differs.find([]).create(this._tree.trackBy);const r=this._tree.treeControl.getChildren(this.data);Array.isArray(r)?this.updateChildrenNodes(r):(0,t.b)(r)&&r.pipe((0,P.R)(this._destroyed)).subscribe(b=>this.updateChildrenNodes(b)),this.nodeOutlet.changes.pipe((0,P.R)(this._destroyed)).subscribe(()=>this.updateChildrenNodes())}ngOnInit(){super.ngOnInit()}ngOnDestroy(){this._clear(),super.ngOnDestroy()}updateChildrenNodes(r){const b=this._getNodeOutlet();r&&(this._children=r),b&&this._children?this._tree.renderNodeChanges(this._children,this._dataDiffer,b.viewContainer,this._data):this._dataDiffer.diff([])}_clear(){const r=this._getNodeOutlet();r&&(r.viewContainer.clear(),this._dataDiffer.diff([]))}_getNodeOutlet(){const r=this.nodeOutlet;return r&&r.find(b=>!b._node||b._node===this)}}return I.\u0275fac=function(r){return new(r||I)(o.Y36(o.SBq),o.Y36(ne),o.Y36(o.ZZ4))},I.\u0275dir=o.lG2({type:I,selectors:[["cdk-nested-tree-node"]],contentQueries:function(r,b,J){if(1&r&&o.Suo(J,U,5),2&r){let F;o.iGM(F=o.CRH())&&(b.nodeOutlet=F)}},hostAttrs:[1,"cdk-nested-tree-node"],inputs:{role:"role",disabled:"disabled",tabIndex:"tabIndex"},exportAs:["cdkNestedTreeNode"],features:[o._Bn([{provide:se,useExisting:I},{provide:w,useExisting:I}]),o.qOj]}),I})();const a=/([A-Za-z%]+)$/;let p=(()=>{class I{constructor(r,b,J,F){this._treeNode=r,this._tree=b,this._element=J,this._dir=F,this._destroyed=new v.x,this.indentUnits="px",this._indent=40,this._setPadding(),F&&F.change.pipe((0,P.R)(this._destroyed)).subscribe(()=>this._setPadding(!0)),r._dataChanges.subscribe(()=>this._setPadding())}get level(){return this._level}set level(r){this._setLevelInput(r)}get indent(){return this._indent}set indent(r){this._setIndentInput(r)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_paddingIndent(){const r=this._treeNode.data&&this._tree.treeControl.getLevel?this._tree.treeControl.getLevel(this._treeNode.data):null,b=null==this._level?r:this._level;return"number"==typeof b?`${b*this._indent}${this.indentUnits}`:null}_setPadding(r=!1){const b=this._paddingIndent();if(b!==this._currentPadding||r){const J=this._element.nativeElement,F=this._dir&&"rtl"===this._dir.value?"paddingRight":"paddingLeft",B="paddingLeft"===F?"paddingRight":"paddingLeft";J.style[F]=b||"",J.style[B]="",this._currentPadding=b}}_setLevelInput(r){this._level=(0,O.su)(r,null),this._setPadding()}_setIndentInput(r){let b=r,J="px";if("string"==typeof r){const F=r.split(a);b=F[0],J=F[1]||J}this.indentUnits=J,this._indent=(0,O.su)(b),this._setPadding()}}return I.\u0275fac=function(r){return new(r||I)(o.Y36(se),o.Y36(ne),o.Y36(o.SBq),o.Y36(T.Is,8))},I.\u0275dir=o.lG2({type:I,selectors:[["","cdkTreeNodePadding",""]],inputs:{level:["cdkTreeNodePadding","level"],indent:["cdkTreeNodePaddingIndent","indent"]}}),I})(),u=(()=>{class I{constructor(r,b){this._tree=r,this._treeNode=b,this._recursive=!1}get recursive(){return this._recursive}set recursive(r){this._recursive=(0,O.Ig)(r)}_toggle(r){this.recursive?this._tree.treeControl.toggleDescendants(this._treeNode.data):this._tree.treeControl.toggle(this._treeNode.data),r.stopPropagation()}}return I.\u0275fac=function(r){return new(r||I)(o.Y36(ne),o.Y36(se))},I.\u0275dir=o.lG2({type:I,selectors:[["","cdkTreeNodeToggle",""]],hostBindings:function(r,b){1&r&&o.NdJ("click",function(F){return b._toggle(F)})},inputs:{recursive:["cdkTreeNodeToggleRecursive","recursive"]}}),I})(),L=(()=>{class I{}return I.\u0275fac=function(r){return new(r||I)},I.\u0275mod=o.oAB({type:I}),I.\u0275inj=o.cJS({}),I})()},9808:(Ue,K,m)=>{"use strict";m.d(K,{mr:()=>ee,Ov:()=>zr,ez:()=>Fa,K0:()=>c,uU:()=>Ra,JJ:()=>Jr,Do:()=>_e,Ts:()=>Cr,Nd:()=>Kn,V_:()=>O,Ye:()=>fe,S$:()=>G,i8:()=>is,mk:()=>Ki,sg:()=>gt,O5:()=>Ci,PC:()=>sn,RF:()=>Ln,n9:()=>pn,ED:()=>Pn,tP:()=>Sr,b0:()=>ie,lw:()=>P,OU:()=>Vr,rS:()=>ua,gd:()=>la,EM:()=>fa,JF:()=>Ya,NF:()=>na,PM:()=>Mr,w_:()=>C,bD:()=>dr,q:()=>v,Mx:()=>Ii,HT:()=>s});var e=m(5e3);let t=null;function v(){return t}function s(Xe){t||(t=Xe)}class C{}const c=new e.OlP("DocumentToken");let P=(()=>{class Xe{historyGo(Q){throw new Error("Not implemented")}}return Xe.\u0275fac=function(Q){return new(Q||Xe)},Xe.\u0275prov=e.Yz7({token:Xe,factory:function(){return(0,e.LFG)(T)},providedIn:"platform"}),Xe})();const O=new e.OlP("Location Initialized");let T=(()=>{class Xe extends P{constructor(Q){super(),this._doc=Q,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return v().getBaseHref(this._doc)}onPopState(Q){const ae=v().getGlobalEventTarget(this._doc,"window");return ae.addEventListener("popstate",Q,!1),()=>ae.removeEventListener("popstate",Q)}onHashChange(Q){const ae=v().getGlobalEventTarget(this._doc,"window");return ae.addEventListener("hashchange",Q,!1),()=>ae.removeEventListener("hashchange",Q)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(Q){this.location.pathname=Q}pushState(Q,ae,Qe){R()?this._history.pushState(Q,ae,Qe):this.location.hash=Qe}replaceState(Q,ae,Qe){R()?this._history.replaceState(Q,ae,Qe):this.location.hash=Qe}forward(){this._history.forward()}back(){this._history.back()}historyGo(Q=0){this._history.go(Q)}getState(){return this._history.state}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.LFG(c))},Xe.\u0275prov=e.Yz7({token:Xe,factory:function(){return new T((0,e.LFG)(c))},providedIn:"platform"}),Xe})();function R(){return!!window.history.pushState}function D(Xe,ye){if(0==Xe.length)return ye;if(0==ye.length)return Xe;let Q=0;return Xe.endsWith("/")&&Q++,ye.startsWith("/")&&Q++,2==Q?Xe+ye.substring(1):1==Q?Xe+ye:Xe+"/"+ye}function w(Xe){const ye=Xe.match(/#|\?|$/),Q=ye&&ye.index||Xe.length;return Xe.slice(0,Q-("/"===Xe[Q-1]?1:0))+Xe.slice(Q)}function U(Xe){return Xe&&"?"!==Xe[0]?"?"+Xe:Xe}let G=(()=>{class Xe{historyGo(Q){throw new Error("Not implemented")}}return Xe.\u0275fac=function(Q){return new(Q||Xe)},Xe.\u0275prov=e.Yz7({token:Xe,factory:function(){return function(Xe){const ye=(0,e.LFG)(c).location;return new ie((0,e.LFG)(P),ye&&ye.origin||"")}()},providedIn:"root"}),Xe})();const ee=new e.OlP("appBaseHref");let ie=(()=>{class Xe extends G{constructor(Q,ae){if(super(),this._platformLocation=Q,this._removeListenerFns=[],null==ae&&(ae=this._platformLocation.getBaseHrefFromDOM()),null==ae)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=ae}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Q){this._removeListenerFns.push(this._platformLocation.onPopState(Q),this._platformLocation.onHashChange(Q))}getBaseHref(){return this._baseHref}prepareExternalUrl(Q){return D(this._baseHref,Q)}path(Q=!1){const ae=this._platformLocation.pathname+U(this._platformLocation.search),Qe=this._platformLocation.hash;return Qe&&Q?`${ae}${Qe}`:ae}pushState(Q,ae,Qe,Yt){const mi=this.prepareExternalUrl(Qe+U(Yt));this._platformLocation.pushState(Q,ae,mi)}replaceState(Q,ae,Qe,Yt){const mi=this.prepareExternalUrl(Qe+U(Yt));this._platformLocation.replaceState(Q,ae,mi)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(Q=0){var ae,Qe;null===(Qe=(ae=this._platformLocation).historyGo)||void 0===Qe||Qe.call(ae,Q)}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.LFG(P),e.LFG(ee,8))},Xe.\u0275prov=e.Yz7({token:Xe,factory:Xe.\u0275fac}),Xe})(),_e=(()=>{class Xe extends G{constructor(Q,ae){super(),this._platformLocation=Q,this._baseHref="",this._removeListenerFns=[],null!=ae&&(this._baseHref=ae)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Q){this._removeListenerFns.push(this._platformLocation.onPopState(Q),this._platformLocation.onHashChange(Q))}getBaseHref(){return this._baseHref}path(Q=!1){let ae=this._platformLocation.hash;return null==ae&&(ae="#"),ae.length>0?ae.substring(1):ae}prepareExternalUrl(Q){const ae=D(this._baseHref,Q);return ae.length>0?"#"+ae:ae}pushState(Q,ae,Qe,Yt){let mi=this.prepareExternalUrl(Qe+U(Yt));0==mi.length&&(mi=this._platformLocation.pathname),this._platformLocation.pushState(Q,ae,mi)}replaceState(Q,ae,Qe,Yt){let mi=this.prepareExternalUrl(Qe+U(Yt));0==mi.length&&(mi=this._platformLocation.pathname),this._platformLocation.replaceState(Q,ae,mi)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(Q=0){var ae,Qe;null===(Qe=(ae=this._platformLocation).historyGo)||void 0===Qe||Qe.call(ae,Q)}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.LFG(P),e.LFG(ee,8))},Xe.\u0275prov=e.Yz7({token:Xe,factory:Xe.\u0275fac}),Xe})(),fe=(()=>{class Xe{constructor(Q,ae){this._subject=new e.vpe,this._urlChangeListeners=[],this._platformStrategy=Q;const Qe=this._platformStrategy.getBaseHref();this._platformLocation=ae,this._baseHref=w(se(Qe)),this._platformStrategy.onPopState(Yt=>{this._subject.emit({url:this.path(!0),pop:!0,state:Yt.state,type:Yt.type})})}path(Q=!1){return this.normalize(this._platformStrategy.path(Q))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(Q,ae=""){return this.path()==this.normalize(Q+U(ae))}normalize(Q){return Xe.stripTrailingSlash(function(Xe,ye){return Xe&&ye.startsWith(Xe)?ye.substring(Xe.length):ye}(this._baseHref,se(Q)))}prepareExternalUrl(Q){return Q&&"/"!==Q[0]&&(Q="/"+Q),this._platformStrategy.prepareExternalUrl(Q)}go(Q,ae="",Qe=null){this._platformStrategy.pushState(Qe,"",Q,ae),this._notifyUrlChangeListeners(this.prepareExternalUrl(Q+U(ae)),Qe)}replaceState(Q,ae="",Qe=null){this._platformStrategy.replaceState(Qe,"",Q,ae),this._notifyUrlChangeListeners(this.prepareExternalUrl(Q+U(ae)),Qe)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}historyGo(Q=0){var ae,Qe;null===(Qe=(ae=this._platformStrategy).historyGo)||void 0===Qe||Qe.call(ae,Q)}onUrlChange(Q){this._urlChangeListeners.push(Q),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(ae=>{this._notifyUrlChangeListeners(ae.url,ae.state)}))}_notifyUrlChangeListeners(Q="",ae){this._urlChangeListeners.forEach(Qe=>Qe(Q,ae))}subscribe(Q,ae,Qe){return this._subject.subscribe({next:Q,error:ae,complete:Qe})}}return Xe.normalizeQueryParams=U,Xe.joinWithSlash=D,Xe.stripTrailingSlash=w,Xe.\u0275fac=function(Q){return new(Q||Xe)(e.LFG(G),e.LFG(P))},Xe.\u0275prov=e.Yz7({token:Xe,factory:function(){return new fe((0,e.LFG)(G),(0,e.LFG)(P))},providedIn:"root"}),Xe})();function se(Xe){return Xe.replace(/\/index.html$/,"")}var y=(()=>((y=y||{})[y.Decimal=0]="Decimal",y[y.Percent=1]="Percent",y[y.Currency=2]="Currency",y[y.Scientific=3]="Scientific",y))(),i=(()=>((i=i||{})[i.Zero=0]="Zero",i[i.One=1]="One",i[i.Two=2]="Two",i[i.Few=3]="Few",i[i.Many=4]="Many",i[i.Other=5]="Other",i))(),a=(()=>((a=a||{})[a.Format=0]="Format",a[a.Standalone=1]="Standalone",a))(),p=(()=>((p=p||{})[p.Narrow=0]="Narrow",p[p.Abbreviated=1]="Abbreviated",p[p.Wide=2]="Wide",p[p.Short=3]="Short",p))(),u=(()=>((u=u||{})[u.Short=0]="Short",u[u.Medium=1]="Medium",u[u.Long=2]="Long",u[u.Full=3]="Full",u))(),_=(()=>((_=_||{})[_.Decimal=0]="Decimal",_[_.Group=1]="Group",_[_.List=2]="List",_[_.PercentSign=3]="PercentSign",_[_.PlusSign=4]="PlusSign",_[_.MinusSign=5]="MinusSign",_[_.Exponential=6]="Exponential",_[_.SuperscriptingExponent=7]="SuperscriptingExponent",_[_.PerMille=8]="PerMille",_[_.Infinity=9]="Infinity",_[_.NaN=10]="NaN",_[_.TimeSeparator=11]="TimeSeparator",_[_.CurrencyDecimal=12]="CurrencyDecimal",_[_.CurrencyGroup=13]="CurrencyGroup",_))();function te(Xe,ye){return Te((0,e.cg1)(Xe)[e.wAp.DateFormat],ye)}function xe(Xe,ye){return Te((0,e.cg1)(Xe)[e.wAp.TimeFormat],ye)}function Re(Xe,ye){return Te((0,e.cg1)(Xe)[e.wAp.DateTimeFormat],ye)}function Fe(Xe,ye){const Q=(0,e.cg1)(Xe),ae=Q[e.wAp.NumberSymbols][ye];if(void 0===ae){if(ye===_.CurrencyDecimal)return Q[e.wAp.NumberSymbols][_.Decimal];if(ye===_.CurrencyGroup)return Q[e.wAp.NumberSymbols][_.Group]}return ae}const We=e.kL8;function yt(Xe){if(!Xe[e.wAp.ExtraData])throw new Error(`Missing extra locale data for the locale "${Xe[e.wAp.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Te(Xe,ye){for(let Q=ye;Q>-1;Q--)if(void 0!==Xe[Q])return Xe[Q];throw new Error("Locale data API: locale data undefined")}function ke(Xe){const[ye,Q]=Xe.split(":");return{hours:+ye,minutes:+Q}}const Me=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,ze={},ht=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var it=(()=>((it=it||{})[it.Short=0]="Short",it[it.ShortGMT=1]="ShortGMT",it[it.Long=2]="Long",it[it.Extended=3]="Extended",it))(),ft=(()=>((ft=ft||{})[ft.FullYear=0]="FullYear",ft[ft.Month=1]="Month",ft[ft.Date=2]="Date",ft[ft.Hours=3]="Hours",ft[ft.Minutes=4]="Minutes",ft[ft.Seconds=5]="Seconds",ft[ft.FractionalSeconds=6]="FractionalSeconds",ft[ft.Day=7]="Day",ft))(),nt=(()=>((nt=nt||{})[nt.DayPeriods=0]="DayPeriods",nt[nt.Days=1]="Days",nt[nt.Months=2]="Months",nt[nt.Eras=3]="Eras",nt))();function st(Xe,ye,Q,ae){let Qe=function(Xe){if(ot(Xe))return Xe;if("number"==typeof Xe&&!isNaN(Xe))return new Date(Xe);if("string"==typeof Xe){if(Xe=Xe.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Xe)){const[Qe,Yt=1,mi=1]=Xe.split("-").map(Ct=>+Ct);return wt(Qe,Yt-1,mi)}const Q=parseFloat(Xe);if(!isNaN(Xe-Q))return new Date(Q);let ae;if(ae=Xe.match(Me))return function(Xe){const ye=new Date(0);let Q=0,ae=0;const Qe=Xe[8]?ye.setUTCFullYear:ye.setFullYear,Yt=Xe[8]?ye.setUTCHours:ye.setHours;Xe[9]&&(Q=Number(Xe[9]+Xe[10]),ae=Number(Xe[9]+Xe[11])),Qe.call(ye,Number(Xe[1]),Number(Xe[2])-1,Number(Xe[3]));const mi=Number(Xe[4]||0)-Q,Ct=Number(Xe[5]||0)-ae,ei=Number(Xe[6]||0),bt=Math.floor(1e3*parseFloat("0."+(Xe[7]||0)));return Yt.call(ye,mi,Ct,ei,bt),ye}(ae)}const ye=new Date(Xe);if(!ot(ye))throw new Error(`Unable to convert "${Xe}" into a date`);return ye}(Xe);ye=Bt(Q,ye)||ye;let Ct,mi=[];for(;ye;){if(Ct=ht.exec(ye),!Ct){mi.push(ye);break}{mi=mi.concat(Ct.slice(1));const Wt=mi.pop();if(!Wt)break;ye=Wt}}let ei=Qe.getTimezoneOffset();ae&&(ei=Xt(ae,ei),Qe=function(Xe,ye,Q){const Qe=Xe.getTimezoneOffset();return function(Xe,ye){return(Xe=new Date(Xe.getTime())).setMinutes(Xe.getMinutes()+ye),Xe}(Xe,-1*(Xt(ye,Qe)-Qe))}(Qe,ae));let bt="";return mi.forEach(Wt=>{const xi=function(Xe){if($t[Xe])return $t[Xe];let ye;switch(Xe){case"G":case"GG":case"GGG":ye=Pi(nt.Eras,p.Abbreviated);break;case"GGGG":ye=Pi(nt.Eras,p.Wide);break;case"GGGGG":ye=Pi(nt.Eras,p.Narrow);break;case"y":ye=jt(ft.FullYear,1,0,!1,!0);break;case"yy":ye=jt(ft.FullYear,2,0,!0,!0);break;case"yyy":ye=jt(ft.FullYear,3,0,!1,!0);break;case"yyyy":ye=jt(ft.FullYear,4,0,!1,!0);break;case"Y":ye=et(1);break;case"YY":ye=et(2,!0);break;case"YYY":ye=et(3);break;case"YYYY":ye=et(4);break;case"M":case"L":ye=jt(ft.Month,1,1);break;case"MM":case"LL":ye=jt(ft.Month,2,1);break;case"MMM":ye=Pi(nt.Months,p.Abbreviated);break;case"MMMM":ye=Pi(nt.Months,p.Wide);break;case"MMMMM":ye=Pi(nt.Months,p.Narrow);break;case"LLL":ye=Pi(nt.Months,p.Abbreviated,a.Standalone);break;case"LLLL":ye=Pi(nt.Months,p.Wide,a.Standalone);break;case"LLLLL":ye=Pi(nt.Months,p.Narrow,a.Standalone);break;case"w":ye=Ee(1);break;case"ww":ye=Ee(2);break;case"W":ye=Ee(1,!0);break;case"d":ye=jt(ft.Date,1);break;case"dd":ye=jt(ft.Date,2);break;case"c":case"cc":ye=jt(ft.Day,1);break;case"ccc":ye=Pi(nt.Days,p.Abbreviated,a.Standalone);break;case"cccc":ye=Pi(nt.Days,p.Wide,a.Standalone);break;case"ccccc":ye=Pi(nt.Days,p.Narrow,a.Standalone);break;case"cccccc":ye=Pi(nt.Days,p.Short,a.Standalone);break;case"E":case"EE":case"EEE":ye=Pi(nt.Days,p.Abbreviated);break;case"EEEE":ye=Pi(nt.Days,p.Wide);break;case"EEEEE":ye=Pi(nt.Days,p.Narrow);break;case"EEEEEE":ye=Pi(nt.Days,p.Short);break;case"a":case"aa":case"aaa":ye=Pi(nt.DayPeriods,p.Abbreviated);break;case"aaaa":ye=Pi(nt.DayPeriods,p.Wide);break;case"aaaaa":ye=Pi(nt.DayPeriods,p.Narrow);break;case"b":case"bb":case"bbb":ye=Pi(nt.DayPeriods,p.Abbreviated,a.Standalone,!0);break;case"bbbb":ye=Pi(nt.DayPeriods,p.Wide,a.Standalone,!0);break;case"bbbbb":ye=Pi(nt.DayPeriods,p.Narrow,a.Standalone,!0);break;case"B":case"BB":case"BBB":ye=Pi(nt.DayPeriods,p.Abbreviated,a.Format,!0);break;case"BBBB":ye=Pi(nt.DayPeriods,p.Wide,a.Format,!0);break;case"BBBBB":ye=Pi(nt.DayPeriods,p.Narrow,a.Format,!0);break;case"h":ye=jt(ft.Hours,1,-12);break;case"hh":ye=jt(ft.Hours,2,-12);break;case"H":ye=jt(ft.Hours,1);break;case"HH":ye=jt(ft.Hours,2);break;case"m":ye=jt(ft.Minutes,1);break;case"mm":ye=jt(ft.Minutes,2);break;case"s":ye=jt(ft.Seconds,1);break;case"ss":ye=jt(ft.Seconds,2);break;case"S":ye=jt(ft.FractionalSeconds,1);break;case"SS":ye=jt(ft.FractionalSeconds,2);break;case"SSS":ye=jt(ft.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":ye=di(it.Short);break;case"ZZZZZ":ye=di(it.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":ye=di(it.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":ye=di(it.Long);break;default:return null}return $t[Xe]=ye,ye}(Wt);bt+=xi?xi(Qe,Q,ei):"''"===Wt?"'":Wt.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),bt}function wt(Xe,ye,Q){const ae=new Date(0);return ae.setFullYear(Xe,ye,Q),ae.setHours(0,0,0),ae}function Bt(Xe,ye){const Q=function(Xe){return(0,e.cg1)(Xe)[e.wAp.LocaleId]}(Xe);if(ze[Q]=ze[Q]||{},ze[Q][ye])return ze[Q][ye];let ae="";switch(ye){case"shortDate":ae=te(Xe,u.Short);break;case"mediumDate":ae=te(Xe,u.Medium);break;case"longDate":ae=te(Xe,u.Long);break;case"fullDate":ae=te(Xe,u.Full);break;case"shortTime":ae=xe(Xe,u.Short);break;case"mediumTime":ae=xe(Xe,u.Medium);break;case"longTime":ae=xe(Xe,u.Long);break;case"fullTime":ae=xe(Xe,u.Full);break;case"short":const Qe=Bt(Xe,"shortTime"),Yt=Bt(Xe,"shortDate");ae=Nt(Re(Xe,u.Short),[Qe,Yt]);break;case"medium":const mi=Bt(Xe,"mediumTime"),Ct=Bt(Xe,"mediumDate");ae=Nt(Re(Xe,u.Medium),[mi,Ct]);break;case"long":const ei=Bt(Xe,"longTime"),bt=Bt(Xe,"longDate");ae=Nt(Re(Xe,u.Long),[ei,bt]);break;case"full":const Wt=Bt(Xe,"fullTime"),xi=Bt(Xe,"fullDate");ae=Nt(Re(Xe,u.Full),[Wt,xi])}return ae&&(ze[Q][ye]=ae),ae}function Nt(Xe,ye){return ye&&(Xe=Xe.replace(/\{([^}]+)}/g,function(Q,ae){return null!=ye&&ae in ye?ye[ae]:Q})),Xe}function Vt(Xe,ye,Q="-",ae,Qe){let Yt="";(Xe<0||Qe&&Xe<=0)&&(Qe?Xe=1-Xe:(Xe=-Xe,Yt=Q));let mi=String(Xe);for(;mi.length0||Ct>-Q)&&(Ct+=Q),Xe===ft.Hours)0===Ct&&-12===Q&&(Ct=12);else if(Xe===ft.FractionalSeconds)return function(Xe,ye){return Vt(Xe,3).substr(0,ye)}(Ct,ye);const ei=Fe(mi,_.MinusSign);return Vt(Ct,ye,ei,ae,Qe)}}function Pi(Xe,ye,Q=a.Format,ae=!1){return function(Qe,Yt){return function(Xe,ye,Q,ae,Qe,Yt){switch(Q){case nt.Months:return function(Xe,ye,Q){const ae=(0,e.cg1)(Xe),Yt=Te([ae[e.wAp.MonthsFormat],ae[e.wAp.MonthsStandalone]],ye);return Te(Yt,Q)}(ye,Qe,ae)[Xe.getMonth()];case nt.Days:return function(Xe,ye,Q){const ae=(0,e.cg1)(Xe),Yt=Te([ae[e.wAp.DaysFormat],ae[e.wAp.DaysStandalone]],ye);return Te(Yt,Q)}(ye,Qe,ae)[Xe.getDay()];case nt.DayPeriods:const mi=Xe.getHours(),Ct=Xe.getMinutes();if(Yt){const bt=function(Xe){const ye=(0,e.cg1)(Xe);return yt(ye),(ye[e.wAp.ExtraData][2]||[]).map(ae=>"string"==typeof ae?ke(ae):[ke(ae[0]),ke(ae[1])])}(ye),Wt=function(Xe,ye,Q){const ae=(0,e.cg1)(Xe);yt(ae);const Yt=Te([ae[e.wAp.ExtraData][0],ae[e.wAp.ExtraData][1]],ye)||[];return Te(Yt,Q)||[]}(ye,Qe,ae),xi=bt.findIndex(Hi=>{if(Array.isArray(Hi)){const[vn,wn]=Hi,Qi=mi>=vn.hours&&Ct>=vn.minutes,gr=mi0?Math.floor(Qe/60):Math.ceil(Qe/60);switch(Xe){case it.Short:return(Qe>=0?"+":"")+Vt(mi,2,Yt)+Vt(Math.abs(Qe%60),2,Yt);case it.ShortGMT:return"GMT"+(Qe>=0?"+":"")+Vt(mi,1,Yt);case it.Long:return"GMT"+(Qe>=0?"+":"")+Vt(mi,2,Yt)+":"+Vt(Math.abs(Qe%60),2,Yt);case it.Extended:return 0===ae?"Z":(Qe>=0?"+":"")+Vt(mi,2,Yt)+":"+Vt(Math.abs(Qe%60),2,Yt);default:throw new Error(`Unknown zone width "${Xe}"`)}}}function ve(Xe){return wt(Xe.getFullYear(),Xe.getMonth(),Xe.getDate()+(4-Xe.getDay()))}function Ee(Xe,ye=!1){return function(Q,ae){let Qe;if(ye){const Yt=new Date(Q.getFullYear(),Q.getMonth(),1).getDay()-1,mi=Q.getDate();Qe=1+Math.floor((mi+Yt)/7)}else{const Yt=ve(Q),mi=function(Xe){const ye=wt(Xe,0,1).getDay();return wt(Xe,0,1+(ye<=4?4:11)-ye)}(Yt.getFullYear()),Ct=Yt.getTime()-mi.getTime();Qe=1+Math.round(Ct/6048e5)}return Vt(Qe,Xe,Fe(ae,_.MinusSign))}}function et(Xe,ye=!1){return function(Q,ae){return Vt(ve(Q).getFullYear(),Xe,Fe(ae,_.MinusSign),ye)}}const $t={};function Xt(Xe,ye){Xe=Xe.replace(/:/g,"");const Q=Date.parse("Jan 01, 1970 00:00:00 "+Xe)/6e4;return isNaN(Q)?ye:Q}function ot(Xe){return Xe instanceof Date&&!isNaN(Xe.valueOf())}const At=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function $e(Xe){const ye=parseInt(Xe);if(isNaN(ye))throw new Error("Invalid integer literal when parsing "+Xe);return ye}class St{}let yi=(()=>{class Xe extends St{constructor(Q){super(),this.locale=Q}getPluralCategory(Q,ae){switch(We(ae||this.locale)(Q)){case i.Zero:return"zero";case i.One:return"one";case i.Two:return"two";case i.Few:return"few";case i.Many:return"many";default:return"other"}}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.LFG(e.soG))},Xe.\u0275prov=e.Yz7({token:Xe,factory:Xe.\u0275fac}),Xe})();function Ii(Xe,ye){ye=encodeURIComponent(ye);for(const Q of Xe.split(";")){const ae=Q.indexOf("="),[Qe,Yt]=-1==ae?[Q,""]:[Q.slice(0,ae),Q.slice(ae+1)];if(Qe.trim()===ye)return decodeURIComponent(Yt)}return null}let Ki=(()=>{class Xe{constructor(Q,ae,Qe,Yt){this._iterableDiffers=Q,this._keyValueDiffers=ae,this._ngEl=Qe,this._renderer=Yt,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(Q){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof Q?Q.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(Q){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof Q?Q.split(/\s+/):Q,this._rawClass&&((0,e.sIi)(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const Q=this._iterableDiffer.diff(this._rawClass);Q&&this._applyIterableChanges(Q)}else if(this._keyValueDiffer){const Q=this._keyValueDiffer.diff(this._rawClass);Q&&this._applyKeyValueChanges(Q)}}_applyKeyValueChanges(Q){Q.forEachAddedItem(ae=>this._toggleClass(ae.key,ae.currentValue)),Q.forEachChangedItem(ae=>this._toggleClass(ae.key,ae.currentValue)),Q.forEachRemovedItem(ae=>{ae.previousValue&&this._toggleClass(ae.key,!1)})}_applyIterableChanges(Q){Q.forEachAddedItem(ae=>{if("string"!=typeof ae.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${(0,e.AaK)(ae.item)}`);this._toggleClass(ae.item,!0)}),Q.forEachRemovedItem(ae=>this._toggleClass(ae.item,!1))}_applyClasses(Q){Q&&(Array.isArray(Q)||Q instanceof Set?Q.forEach(ae=>this._toggleClass(ae,!0)):Object.keys(Q).forEach(ae=>this._toggleClass(ae,!!Q[ae])))}_removeClasses(Q){Q&&(Array.isArray(Q)||Q instanceof Set?Q.forEach(ae=>this._toggleClass(ae,!1)):Object.keys(Q).forEach(ae=>this._toggleClass(ae,!1)))}_toggleClass(Q,ae){(Q=Q.trim())&&Q.split(/\s+/g).forEach(Qe=>{ae?this._renderer.addClass(this._ngEl.nativeElement,Qe):this._renderer.removeClass(this._ngEl.nativeElement,Qe)})}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.ZZ4),e.Y36(e.aQg),e.Y36(e.SBq),e.Y36(e.Qsj))},Xe.\u0275dir=e.lG2({type:Xe,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),Xe})();class Qt{constructor(ye,Q,ae,Qe){this.$implicit=ye,this.ngForOf=Q,this.index=ae,this.count=Qe}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let gt=(()=>{class Xe{constructor(Q,ae,Qe){this._viewContainer=Q,this._template=ae,this._differs=Qe,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(Q){this._ngForOf=Q,this._ngForOfDirty=!0}set ngForTrackBy(Q){this._trackByFn=Q}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(Q){Q&&(this._template=Q)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const Q=this._ngForOf;if(!this._differ&&Q)try{this._differ=this._differs.find(Q).create(this.ngForTrackBy)}catch(ae){throw new Error(`Cannot find a differ supporting object '${Q}' of type '${function(Xe){return Xe.name||typeof Xe}(Q)}'. NgFor only supports binding to Iterables such as Arrays.`)}}if(this._differ){const Q=this._differ.diff(this._ngForOf);Q&&this._applyChanges(Q)}}_applyChanges(Q){const ae=[];Q.forEachOperation((Qe,Yt,mi)=>{if(null==Qe.previousIndex){const Ct=this._viewContainer.createEmbeddedView(this._template,new Qt(null,this._ngForOf,-1,-1),null===mi?void 0:mi),ei=new Lt(Qe,Ct);ae.push(ei)}else if(null==mi)this._viewContainer.remove(null===Yt?void 0:Yt);else if(null!==Yt){const Ct=this._viewContainer.get(Yt);this._viewContainer.move(Ct,mi);const ei=new Lt(Qe,Ct);ae.push(ei)}});for(let Qe=0;Qe{this._viewContainer.get(Qe.currentIndex).context.$implicit=Qe.item})}_perViewChange(Q,ae){Q.context.$implicit=ae.item}static ngTemplateContextGuard(Q,ae){return!0}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.s_b),e.Y36(e.Rgc),e.Y36(e.ZZ4))},Xe.\u0275dir=e.lG2({type:Xe,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),Xe})();class Lt{constructor(ye,Q){this.record=ye,this.view=Q}}let Ci=(()=>{class Xe{constructor(Q,ae){this._viewContainer=Q,this._context=new Wi,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=ae}set ngIf(Q){this._context.$implicit=this._context.ngIf=Q,this._updateView()}set ngIfThen(Q){$i("ngIfThen",Q),this._thenTemplateRef=Q,this._thenViewRef=null,this._updateView()}set ngIfElse(Q){$i("ngIfElse",Q),this._elseTemplateRef=Q,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Q,ae){return!0}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.s_b),e.Y36(e.Rgc))},Xe.\u0275dir=e.lG2({type:Xe,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),Xe})();class Wi{constructor(){this.$implicit=null,this.ngIf=null}}function $i(Xe,ye){if(ye&&!ye.createEmbeddedView)throw new Error(`${Xe} must be a TemplateRef, but received '${(0,e.AaK)(ye)}'.`)}class An{constructor(ye,Q){this._viewContainerRef=ye,this._templateRef=Q,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(ye){ye&&!this._created?this.create():!ye&&this._created&&this.destroy()}}let Ln=(()=>{class Xe{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(Q){this._ngSwitch=Q,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(Q){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(Q)}_matchCase(Q){const ae=Q==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||ae,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),ae}_updateDefaultCases(Q){if(this._defaultViews&&Q!==this._defaultUsed){this._defaultUsed=Q;for(let ae=0;ae{class Xe{constructor(Q,ae,Qe){this.ngSwitch=Qe,Qe._addCase(),this._view=new An(Q,ae)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.s_b),e.Y36(e.Rgc),e.Y36(Ln,9))},Xe.\u0275dir=e.lG2({type:Xe,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"}}),Xe})(),Pn=(()=>{class Xe{constructor(Q,ae,Qe){Qe._addDefault(new An(Q,ae))}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.s_b),e.Y36(e.Rgc),e.Y36(Ln,9))},Xe.\u0275dir=e.lG2({type:Xe,selectors:[["","ngSwitchDefault",""]]}),Xe})(),sn=(()=>{class Xe{constructor(Q,ae,Qe){this._ngEl=Q,this._differs=ae,this._renderer=Qe,this._ngStyle=null,this._differ=null}set ngStyle(Q){this._ngStyle=Q,!this._differ&&Q&&(this._differ=this._differs.find(Q).create())}ngDoCheck(){if(this._differ){const Q=this._differ.diff(this._ngStyle);Q&&this._applyChanges(Q)}}_setStyle(Q,ae){const[Qe,Yt]=Q.split(".");null!=(ae=null!=ae&&Yt?`${ae}${Yt}`:ae)?this._renderer.setStyle(this._ngEl.nativeElement,Qe,ae):this._renderer.removeStyle(this._ngEl.nativeElement,Qe)}_applyChanges(Q){Q.forEachRemovedItem(ae=>this._setStyle(ae.key,null)),Q.forEachAddedItem(ae=>this._setStyle(ae.key,ae.currentValue)),Q.forEachChangedItem(ae=>this._setStyle(ae.key,ae.currentValue))}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.SBq),e.Y36(e.aQg),e.Y36(e.Qsj))},Xe.\u0275dir=e.lG2({type:Xe,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}}),Xe})(),Sr=(()=>{class Xe{constructor(Q){this._viewContainerRef=Q,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(Q){if(Q.ngTemplateOutlet){const ae=this._viewContainerRef;this._viewRef&&ae.remove(ae.indexOf(this._viewRef)),this._viewRef=this.ngTemplateOutlet?ae.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext):null}else this._viewRef&&Q.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.s_b))},Xe.\u0275dir=e.lG2({type:Xe,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet"},features:[e.TTD]}),Xe})();function qn(Xe,ye){return Error(`InvalidPipeArgument: '${ye}' for pipe '${(0,e.AaK)(Xe)}'`)}class kr{createSubscription(ye,Q){return ye.subscribe({next:Q,error:ae=>{throw ae}})}dispose(ye){ye.unsubscribe()}onDestroy(ye){ye.unsubscribe()}}class ba{createSubscription(ye,Q){return ye.then(Q,ae=>{throw ae})}dispose(ye){}onDestroy(ye){}}const xa=new ba,Va=new kr;let zr=(()=>{class Xe{constructor(Q){this._ref=Q,this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(Q){return this._obj?Q!==this._obj?(this._dispose(),this.transform(Q)):this._latestValue:(Q&&this._subscribe(Q),this._latestValue)}_subscribe(Q){this._obj=Q,this._strategy=this._selectStrategy(Q),this._subscription=this._strategy.createSubscription(Q,ae=>this._updateLatestValue(Q,ae))}_selectStrategy(Q){if((0,e.QGY)(Q))return xa;if((0,e.F4k)(Q))return Va;throw qn(Xe,Q)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(Q,ae){Q===this._obj&&(this._latestValue=ae,this._ref.markForCheck())}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.sBO,16))},Xe.\u0275pipe=e.Yjl({name:"async",type:Xe,pure:!1}),Xe})(),is=(()=>{class Xe{transform(Q){if(null==Q)return null;if("string"!=typeof Q)throw qn(Xe,Q);return Q.toLowerCase()}}return Xe.\u0275fac=function(Q){return new(Q||Xe)},Xe.\u0275pipe=e.Yjl({name:"lowercase",type:Xe,pure:!0}),Xe})();const rr=/(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g;let ua=(()=>{class Xe{transform(Q){if(null==Q)return null;if("string"!=typeof Q)throw qn(Xe,Q);return Q.replace(rr,ae=>ae[0].toUpperCase()+ae.substr(1).toLowerCase())}}return Xe.\u0275fac=function(Q){return new(Q||Xe)},Xe.\u0275pipe=e.Yjl({name:"titlecase",type:Xe,pure:!0}),Xe})(),la=(()=>{class Xe{transform(Q){if(null==Q)return null;if("string"!=typeof Q)throw qn(Xe,Q);return Q.toUpperCase()}}return Xe.\u0275fac=function(Q){return new(Q||Xe)},Xe.\u0275pipe=e.Yjl({name:"uppercase",type:Xe,pure:!0}),Xe})();const Ur=new e.OlP("DATE_PIPE_DEFAULT_TIMEZONE");let Ra=(()=>{class Xe{constructor(Q,ae){this.locale=Q,this.defaultTimezone=ae}transform(Q,ae="mediumDate",Qe,Yt){var mi;if(null==Q||""===Q||Q!=Q)return null;try{return st(Q,ae,Yt||this.locale,null!==(mi=null!=Qe?Qe:this.defaultTimezone)&&void 0!==mi?mi:void 0)}catch(Ct){throw qn(Xe,Ct.message)}}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.soG,16),e.Y36(Ur,24))},Xe.\u0275pipe=e.Yjl({name:"date",type:Xe,pure:!0}),Xe})(),Cr=(()=>{class Xe{transform(Q){return JSON.stringify(Q,null,2)}}return Xe.\u0275fac=function(Q){return new(Q||Xe)},Xe.\u0275pipe=e.Yjl({name:"json",type:Xe,pure:!1}),Xe})(),Kn=(()=>{class Xe{constructor(Q){this.differs=Q,this.keyValues=[],this.compareFn=Dr}transform(Q,ae=Dr){if(!Q||!(Q instanceof Map)&&"object"!=typeof Q)return null;this.differ||(this.differ=this.differs.find(Q).create());const Qe=this.differ.diff(Q),Yt=ae!==this.compareFn;return Qe&&(this.keyValues=[],Qe.forEachItem(mi=>{this.keyValues.push(function(Xe,ye){return{key:Xe,value:ye}}(mi.key,mi.currentValue))})),(Qe||Yt)&&(this.keyValues.sort(ae),this.compareFn=ae),this.keyValues}}return Xe.\u0275fac=function(Q){return new(Q||Xe)(e.Y36(e.aQg,16))},Xe.\u0275pipe=e.Yjl({name:"keyvalue",type:Xe,pure:!1}),Xe})();function Dr(Xe,ye){const Q=Xe.key,ae=ye.key;if(Q===ae)return 0;if(void 0===Q)return 1;if(void 0===ae)return-1;if(null===Q)return 1;if(null===ae)return-1;if("string"==typeof Q&&"string"==typeof ae)return Q{class Xe{constructor(Q){this._locale=Q}transform(Q,ae,Qe){if(!function(Xe){return!(null==Xe||""===Xe||Xe!=Xe)}(Q))return null;Qe=Qe||this._locale;try{return function(Xe,ye,Q){return function(Xe,ye,Q,ae,Qe,Yt,mi=!1){let Ct="",ei=!1;if(isFinite(Xe)){let bt=function(Xe){let ae,Qe,Yt,mi,Ct,ye=Math.abs(Xe)+"",Q=0;for((Qe=ye.indexOf("."))>-1&&(ye=ye.replace(".","")),(Yt=ye.search(/e/i))>0?(Qe<0&&(Qe=Yt),Qe+=+ye.slice(Yt+1),ye=ye.substring(0,Yt)):Qe<0&&(Qe=ye.length),Yt=0;"0"===ye.charAt(Yt);Yt++);if(Yt===(Ct=ye.length))ae=[0],Qe=1;else{for(Ct--;"0"===ye.charAt(Ct);)Ct--;for(Qe-=Yt,ae=[],mi=0;Yt<=Ct;Yt++,mi++)ae[mi]=Number(ye.charAt(Yt))}return Qe>22&&(ae=ae.splice(0,21),Q=Qe-1,Qe=1),{digits:ae,exponent:Q,integerLen:Qe}}(Xe);mi&&(bt=function(Xe){if(0===Xe.digits[0])return Xe;const ye=Xe.digits.length-Xe.integerLen;return Xe.exponent?Xe.exponent+=2:(0===ye?Xe.digits.push(0,0):1===ye&&Xe.digits.push(0),Xe.integerLen+=2),Xe}(bt));let Wt=ye.minInt,xi=ye.minFrac,Hi=ye.maxFrac;if(Yt){const Gn=Yt.match(At);if(null===Gn)throw new Error(`${Yt} is not a valid digit info`);const ma=Gn[1],Lr=Gn[3],us=Gn[5];null!=ma&&(Wt=$e(ma)),null!=Lr&&(xi=$e(Lr)),null!=us?Hi=$e(us):null!=Lr&&xi>Hi&&(Hi=xi)}!function(Xe,ye,Q){if(ye>Q)throw new Error(`The minimum number of digits after fraction (${ye}) is higher than the maximum (${Q}).`);let ae=Xe.digits,Qe=ae.length-Xe.integerLen;const Yt=Math.min(Math.max(ye,Qe),Q);let mi=Yt+Xe.integerLen,Ct=ae[mi];if(mi>0){ae.splice(Math.max(Xe.integerLen,mi));for(let xi=mi;xi=5)if(mi-1<0){for(let xi=0;xi>mi;xi--)ae.unshift(0),Xe.integerLen++;ae.unshift(1),Xe.integerLen++}else ae[mi-1]++;for(;Qe=bt?wn.pop():ei=!1),Hi>=10?1:0},0);Wt&&(ae.unshift(Wt),Xe.integerLen++)}(bt,xi,Hi);let vn=bt.digits,wn=bt.integerLen;const Qi=bt.exponent;let gr=[];for(ei=vn.every(Gn=>!Gn);wn0?gr=vn.splice(wn,vn.length):(gr=vn,vn=[0]);const Fn=[];for(vn.length>=ye.lgSize&&Fn.unshift(vn.splice(-ye.lgSize,vn.length).join(""));vn.length>ye.gSize;)Fn.unshift(vn.splice(-ye.gSize,vn.length).join(""));vn.length&&Fn.unshift(vn.join("")),Ct=Fn.join(Fe(Q,ae)),gr.length&&(Ct+=Fe(Q,Qe)+gr.join("")),Qi&&(Ct+=Fe(Q,_.Exponential)+"+"+Qi)}else Ct=Fe(Q,_.Infinity);return Ct=Xe<0&&!ei?ye.negPre+Ct+ye.negSuf:ye.posPre+Ct+ye.posSuf,Ct}(Xe,function(Xe,ye="-"){const Q={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},ae=Xe.split(";"),Qe=ae[0],Yt=ae[1],mi=-1!==Qe.indexOf(".")?Qe.split("."):[Qe.substring(0,Qe.lastIndexOf("0")+1),Qe.substring(Qe.lastIndexOf("0")+1)],Ct=mi[0],ei=mi[1]||"";Q.posPre=Ct.substr(0,Ct.indexOf("#"));for(let Wt=0;Wt{class Xe{transform(Q,ae,Qe){if(null==Q)return null;if(!this.supports(Q))throw qn(Xe,Q);return Q.slice(ae,Qe)}supports(Q){return"string"==typeof Q||Array.isArray(Q)}}return Xe.\u0275fac=function(Q){return new(Q||Xe)},Xe.\u0275pipe=e.Yjl({name:"slice",type:Xe,pure:!1}),Xe})(),Fa=(()=>{class Xe{}return Xe.\u0275fac=function(Q){return new(Q||Xe)},Xe.\u0275mod=e.oAB({type:Xe}),Xe.\u0275inj=e.cJS({providers:[{provide:St,useClass:yi}]}),Xe})();const dr="browser";function na(Xe){return Xe===dr}function Mr(Xe){return"server"===Xe}let fa=(()=>{class Xe{}return Xe.\u0275prov=(0,e.Yz7)({token:Xe,providedIn:"root",factory:()=>new ra((0,e.LFG)(c),window)}),Xe})();class ra{constructor(ye,Q){this.document=ye,this.window=Q,this.offset=()=>[0,0]}setOffset(ye){this.offset=Array.isArray(ye)?()=>ye:ye}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(ye){this.supportsScrolling()&&this.window.scrollTo(ye[0],ye[1])}scrollToAnchor(ye){if(!this.supportsScrolling())return;const Q=function(Xe,ye){const Q=Xe.getElementById(ye)||Xe.getElementsByName(ye)[0];if(Q)return Q;if("function"==typeof Xe.createTreeWalker&&Xe.body&&(Xe.body.createShadowRoot||Xe.body.attachShadow)){const ae=Xe.createTreeWalker(Xe.body,NodeFilter.SHOW_ELEMENT);let Qe=ae.currentNode;for(;Qe;){const Yt=Qe.shadowRoot;if(Yt){const mi=Yt.getElementById(ye)||Yt.querySelector(`[name="${ye}"]`);if(mi)return mi}Qe=ae.nextNode()}}return null}(this.document,ye);Q&&(this.scrollToElement(Q),this.attemptFocus(Q))}setHistoryScrollRestoration(ye){if(this.supportScrollRestoration()){const Q=this.window.history;Q&&Q.scrollRestoration&&(Q.scrollRestoration=ye)}}scrollToElement(ye){const Q=ye.getBoundingClientRect(),ae=Q.left+this.window.pageXOffset,Qe=Q.top+this.window.pageYOffset,Yt=this.offset();this.window.scrollTo(ae-Yt[0],Qe-Yt[1])}attemptFocus(ye){return ye.focus(),this.document.activeElement===ye}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const ye=pa(this.window.history)||pa(Object.getPrototypeOf(this.window.history));return!(!ye||!ye.writable&&!ye.set)}catch(ye){return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch(ye){return!1}}}function pa(Xe){return Object.getOwnPropertyDescriptor(Xe,"scrollRestoration")}class Ya{}},8138:(Ue,K,m)=>{"use strict";m.d(K,{TP:()=>I,eN:()=>_,JF:()=>Te,LE:()=>G});var e=m(9808),t=m(5e3),v=m(9646),M=m(8306),s=m(4351),C=m(9300),c=m(4004);class P{}class o{}class O{constructor(he){this.normalizedNames=new Map,this.lazyUpdate=null,he?this.lazyInit="string"==typeof he?()=>{this.headers=new Map,he.split("\n").forEach(Me=>{const ze=Me.indexOf(":");if(ze>0){const ht=Me.slice(0,ze),it=ht.toLowerCase(),ft=Me.slice(ze+1).trim();this.maybeSetNormalizedName(ht,it),this.headers.has(it)?this.headers.get(it).push(ft):this.headers.set(it,[ft])}})}:()=>{this.headers=new Map,Object.keys(he).forEach(Me=>{let ze=he[Me];const ht=Me.toLowerCase();"string"==typeof ze&&(ze=[ze]),ze.length>0&&(this.headers.set(ht,ze),this.maybeSetNormalizedName(Me,ht))})}:this.headers=new Map}has(he){return this.init(),this.headers.has(he.toLowerCase())}get(he){this.init();const Me=this.headers.get(he.toLowerCase());return Me&&Me.length>0?Me[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(he){return this.init(),this.headers.get(he.toLowerCase())||null}append(he,Me){return this.clone({name:he,value:Me,op:"a"})}set(he,Me){return this.clone({name:he,value:Me,op:"s"})}delete(he,Me){return this.clone({name:he,value:Me,op:"d"})}maybeSetNormalizedName(he,Me){this.normalizedNames.has(Me)||this.normalizedNames.set(Me,he)}init(){this.lazyInit&&(this.lazyInit instanceof O?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(he=>this.applyUpdate(he)),this.lazyUpdate=null))}copyFrom(he){he.init(),Array.from(he.headers.keys()).forEach(Me=>{this.headers.set(Me,he.headers.get(Me)),this.normalizedNames.set(Me,he.normalizedNames.get(Me))})}clone(he){const Me=new O;return Me.lazyInit=this.lazyInit&&this.lazyInit instanceof O?this.lazyInit:this,Me.lazyUpdate=(this.lazyUpdate||[]).concat([he]),Me}applyUpdate(he){const Me=he.name.toLowerCase();switch(he.op){case"a":case"s":let ze=he.value;if("string"==typeof ze&&(ze=[ze]),0===ze.length)return;this.maybeSetNormalizedName(he.name,Me);const ht=("a"===he.op?this.headers.get(Me):void 0)||[];ht.push(...ze),this.headers.set(Me,ht);break;case"d":const it=he.value;if(it){let ft=this.headers.get(Me);if(!ft)return;ft=ft.filter(nt=>-1===it.indexOf(nt)),0===ft.length?(this.headers.delete(Me),this.normalizedNames.delete(Me)):this.headers.set(Me,ft)}else this.headers.delete(Me),this.normalizedNames.delete(Me)}}forEach(he){this.init(),Array.from(this.normalizedNames.keys()).forEach(Me=>he(this.normalizedNames.get(Me),this.headers.get(Me)))}}class T{encodeKey(he){return w(he)}encodeValue(he){return w(he)}decodeKey(he){return decodeURIComponent(he)}decodeValue(he){return decodeURIComponent(he)}}const S=/%(\d[a-f0-9])/gi,D={40:"@","3A":":",24:"$","2C":",","3B":";","2B":"+","3D":"=","3F":"?","2F":"/"};function w(X){return encodeURIComponent(X).replace(S,(he,Me)=>{var ze;return null!==(ze=D[Me])&&void 0!==ze?ze:he})}function U(X){return`${X}`}class G{constructor(he={}){if(this.updates=null,this.cloneFrom=null,this.encoder=he.encoder||new T,he.fromString){if(he.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function(X,he){const Me=new Map;return X.length>0&&X.replace(/^\?/,"").split("&").forEach(ht=>{const it=ht.indexOf("="),[ft,nt]=-1==it?[he.decodeKey(ht),""]:[he.decodeKey(ht.slice(0,it)),he.decodeValue(ht.slice(it+1))],st=Me.get(ft)||[];st.push(nt),Me.set(ft,st)}),Me}(he.fromString,this.encoder)}else he.fromObject?(this.map=new Map,Object.keys(he.fromObject).forEach(Me=>{const ze=he.fromObject[Me];this.map.set(Me,Array.isArray(ze)?ze:[ze])})):this.map=null}has(he){return this.init(),this.map.has(he)}get(he){this.init();const Me=this.map.get(he);return Me?Me[0]:null}getAll(he){return this.init(),this.map.get(he)||null}keys(){return this.init(),Array.from(this.map.keys())}append(he,Me){return this.clone({param:he,value:Me,op:"a"})}appendAll(he){const Me=[];return Object.keys(he).forEach(ze=>{const ht=he[ze];Array.isArray(ht)?ht.forEach(it=>{Me.push({param:ze,value:it,op:"a"})}):Me.push({param:ze,value:ht,op:"a"})}),this.clone(Me)}set(he,Me){return this.clone({param:he,value:Me,op:"s"})}delete(he,Me){return this.clone({param:he,value:Me,op:"d"})}toString(){return this.init(),this.keys().map(he=>{const Me=this.encoder.encodeKey(he);return this.map.get(he).map(ze=>Me+"="+this.encoder.encodeValue(ze)).join("&")}).filter(he=>""!==he).join("&")}clone(he){const Me=new G({encoder:this.encoder});return Me.cloneFrom=this.cloneFrom||this,Me.updates=(this.updates||[]).concat(he),Me}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(he=>this.map.set(he,this.cloneFrom.map.get(he))),this.updates.forEach(he=>{switch(he.op){case"a":case"s":const Me=("a"===he.op?this.map.get(he.param):void 0)||[];Me.push(U(he.value)),this.map.set(he.param,Me);break;case"d":if(void 0===he.value){this.map.delete(he.param);break}{let ze=this.map.get(he.param)||[];const ht=ze.indexOf(U(he.value));-1!==ht&&ze.splice(ht,1),ze.length>0?this.map.set(he.param,ze):this.map.delete(he.param)}}}),this.cloneFrom=this.updates=null)}}class ee{constructor(){this.map=new Map}set(he,Me){return this.map.set(he,Me),this}get(he){return this.map.has(he)||this.map.set(he,he.defaultValue()),this.map.get(he)}delete(he){return this.map.delete(he),this}keys(){return this.map.keys()}}function _e(X){return"undefined"!=typeof ArrayBuffer&&X instanceof ArrayBuffer}function fe(X){return"undefined"!=typeof Blob&&X instanceof Blob}function de(X){return"undefined"!=typeof FormData&&X instanceof FormData}class se{constructor(he,Me,ze,ht){let it;if(this.url=Me,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=he.toUpperCase(),function(X){switch(X){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||ht?(this.body=void 0!==ze?ze:null,it=ht):it=ze,it&&(this.reportProgress=!!it.reportProgress,this.withCredentials=!!it.withCredentials,it.responseType&&(this.responseType=it.responseType),it.headers&&(this.headers=it.headers),it.context&&(this.context=it.context),it.params&&(this.params=it.params)),this.headers||(this.headers=new O),this.context||(this.context=new ee),this.params){const ft=this.params.toString();if(0===ft.length)this.urlWithParams=Me;else{const nt=Me.indexOf("?");this.urlWithParams=Me+(-1===nt?"?":ntVt.set(Oi,he.setHeaders[Oi]),wt)),he.setParams&&(Bt=Object.keys(he.setParams).reduce((Vt,Oi)=>Vt.set(Oi,he.setParams[Oi]),Bt)),new se(ze,ht,ft,{params:Bt,headers:wt,context:Nt,reportProgress:st,responseType:it,withCredentials:nt})}}var oe=(()=>((oe=oe||{})[oe.Sent=0]="Sent",oe[oe.UploadProgress=1]="UploadProgress",oe[oe.ResponseHeader=2]="ResponseHeader",oe[oe.DownloadProgress=3]="DownloadProgress",oe[oe.Response=4]="Response",oe[oe.User=5]="User",oe))();class y{constructor(he,Me=200,ze="OK"){this.headers=he.headers||new O,this.status=void 0!==he.status?he.status:Me,this.statusText=he.statusText||ze,this.url=he.url||null,this.ok=this.status>=200&&this.status<300}}class i extends y{constructor(he={}){super(he),this.type=oe.ResponseHeader}clone(he={}){return new i({headers:he.headers||this.headers,status:void 0!==he.status?he.status:this.status,statusText:he.statusText||this.statusText,url:he.url||this.url||void 0})}}class a extends y{constructor(he={}){super(he),this.type=oe.Response,this.body=void 0!==he.body?he.body:null}clone(he={}){return new a({body:void 0!==he.body?he.body:this.body,headers:he.headers||this.headers,status:void 0!==he.status?he.status:this.status,statusText:he.statusText||this.statusText,url:he.url||this.url||void 0})}}class p extends y{constructor(he){super(he,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${he.url||"(unknown url)"}`:`Http failure response for ${he.url||"(unknown url)"}: ${he.status} ${he.statusText}`,this.error=he.error||null}}function u(X,he){return{body:he,headers:X.headers,context:X.context,observe:X.observe,params:X.params,reportProgress:X.reportProgress,responseType:X.responseType,withCredentials:X.withCredentials}}let _=(()=>{class X{constructor(Me){this.handler=Me}request(Me,ze,ht={}){let it;if(Me instanceof se)it=Me;else{let st,wt;st=ht.headers instanceof O?ht.headers:new O(ht.headers),ht.params&&(wt=ht.params instanceof G?ht.params:new G({fromObject:ht.params})),it=new se(Me,ze,void 0!==ht.body?ht.body:null,{headers:st,context:ht.context,params:wt,reportProgress:ht.reportProgress,responseType:ht.responseType||"json",withCredentials:ht.withCredentials})}const ft=(0,v.of)(it).pipe((0,s.b)(st=>this.handler.handle(st)));if(Me instanceof se||"events"===ht.observe)return ft;const nt=ft.pipe((0,C.h)(st=>st instanceof a));switch(ht.observe||"body"){case"body":switch(it.responseType){case"arraybuffer":return nt.pipe((0,c.U)(st=>{if(null!==st.body&&!(st.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return st.body}));case"blob":return nt.pipe((0,c.U)(st=>{if(null!==st.body&&!(st.body instanceof Blob))throw new Error("Response is not a Blob.");return st.body}));case"text":return nt.pipe((0,c.U)(st=>{if(null!==st.body&&"string"!=typeof st.body)throw new Error("Response is not a string.");return st.body}));default:return nt.pipe((0,c.U)(st=>st.body))}case"response":return nt;default:throw new Error(`Unreachable: unhandled observe type ${ht.observe}}`)}}delete(Me,ze={}){return this.request("DELETE",Me,ze)}get(Me,ze={}){return this.request("GET",Me,ze)}head(Me,ze={}){return this.request("HEAD",Me,ze)}jsonp(Me,ze){return this.request("JSONP",Me,{params:(new G).append(ze,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Me,ze={}){return this.request("OPTIONS",Me,ze)}patch(Me,ze,ht={}){return this.request("PATCH",Me,u(ht,ze))}post(Me,ze,ht={}){return this.request("POST",Me,u(ht,ze))}put(Me,ze,ht={}){return this.request("PUT",Me,u(ht,ze))}}return X.\u0275fac=function(Me){return new(Me||X)(t.LFG(P))},X.\u0275prov=t.Yz7({token:X,factory:X.\u0275fac}),X})();class L{constructor(he,Me){this.next=he,this.interceptor=Me}handle(he){return this.interceptor.intercept(he,this.next)}}const I=new t.OlP("HTTP_INTERCEPTORS");let x=(()=>{class X{intercept(Me,ze){return ze.handle(Me)}}return X.\u0275fac=function(Me){return new(Me||X)},X.\u0275prov=t.Yz7({token:X,factory:X.\u0275fac}),X})();const Re=/^\)\]\}',?\n/;let q=(()=>{class X{constructor(Me){this.xhrFactory=Me}handle(Me){if("JSONP"===Me.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new M.y(ze=>{const ht=this.xhrFactory.build();if(ht.open(Me.method,Me.urlWithParams),Me.withCredentials&&(ht.withCredentials=!0),Me.headers.forEach((Oi,jt)=>ht.setRequestHeader(Oi,jt.join(","))),Me.headers.has("Accept")||ht.setRequestHeader("Accept","application/json, text/plain, */*"),!Me.headers.has("Content-Type")){const Oi=Me.detectContentTypeHeader();null!==Oi&&ht.setRequestHeader("Content-Type",Oi)}if(Me.responseType){const Oi=Me.responseType.toLowerCase();ht.responseType="json"!==Oi?Oi:"text"}const it=Me.serializeBody();let ft=null;const nt=()=>{if(null!==ft)return ft;const Oi=1223===ht.status?204:ht.status,jt=ht.statusText||"OK",ti=new O(ht.getAllResponseHeaders()),Pi=function(X){return"responseURL"in X&&X.responseURL?X.responseURL:/^X-Request-URL:/m.test(X.getAllResponseHeaders())?X.getResponseHeader("X-Request-URL"):null}(ht)||Me.url;return ft=new i({headers:ti,status:Oi,statusText:jt,url:Pi}),ft},st=()=>{let{headers:Oi,status:jt,statusText:ti,url:Pi}=nt(),si=null;204!==jt&&(si=void 0===ht.response?ht.responseText:ht.response),0===jt&&(jt=si?200:0);let di=jt>=200&&jt<300;if("json"===Me.responseType&&"string"==typeof si){const He=si;si=si.replace(Re,"");try{si=""!==si?JSON.parse(si):null}catch(Se){si=He,di&&(di=!1,si={error:Se,text:si})}}di?(ze.next(new a({body:si,headers:Oi,status:jt,statusText:ti,url:Pi||void 0})),ze.complete()):ze.error(new p({error:si,headers:Oi,status:jt,statusText:ti,url:Pi||void 0}))},wt=Oi=>{const{url:jt}=nt(),ti=new p({error:Oi,status:ht.status||0,statusText:ht.statusText||"Unknown Error",url:jt||void 0});ze.error(ti)};let Bt=!1;const Nt=Oi=>{Bt||(ze.next(nt()),Bt=!0);let jt={type:oe.DownloadProgress,loaded:Oi.loaded};Oi.lengthComputable&&(jt.total=Oi.total),"text"===Me.responseType&&!!ht.responseText&&(jt.partialText=ht.responseText),ze.next(jt)},Vt=Oi=>{let jt={type:oe.UploadProgress,loaded:Oi.loaded};Oi.lengthComputable&&(jt.total=Oi.total),ze.next(jt)};return ht.addEventListener("load",st),ht.addEventListener("error",wt),ht.addEventListener("timeout",wt),ht.addEventListener("abort",wt),Me.reportProgress&&(ht.addEventListener("progress",Nt),null!==it&&ht.upload&&ht.upload.addEventListener("progress",Vt)),ht.send(it),ze.next({type:oe.Sent}),()=>{ht.removeEventListener("error",wt),ht.removeEventListener("abort",wt),ht.removeEventListener("load",st),ht.removeEventListener("timeout",wt),Me.reportProgress&&(ht.removeEventListener("progress",Nt),null!==it&&ht.upload&&ht.upload.removeEventListener("progress",Vt)),ht.readyState!==ht.DONE&&ht.abort()}})}}return X.\u0275fac=function(Me){return new(Me||X)(t.LFG(e.JF))},X.\u0275prov=t.Yz7({token:X,factory:X.\u0275fac}),X})();const j=new t.OlP("XSRF_COOKIE_NAME"),we=new t.OlP("XSRF_HEADER_NAME");class Ae{}let le=(()=>{class X{constructor(Me,ze,ht){this.doc=Me,this.platform=ze,this.cookieName=ht,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Me=this.doc.cookie||"";return Me!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,e.Mx)(Me,this.cookieName),this.lastCookieString=Me),this.lastToken}}return X.\u0275fac=function(Me){return new(Me||X)(t.LFG(e.K0),t.LFG(t.Lbi),t.LFG(j))},X.\u0275prov=t.Yz7({token:X,factory:X.\u0275fac}),X})(),We=(()=>{class X{constructor(Me,ze){this.tokenService=Me,this.headerName=ze}intercept(Me,ze){const ht=Me.url.toLowerCase();if("GET"===Me.method||"HEAD"===Me.method||ht.startsWith("http://")||ht.startsWith("https://"))return ze.handle(Me);const it=this.tokenService.getToken();return null!==it&&!Me.headers.has(this.headerName)&&(Me=Me.clone({headers:Me.headers.set(this.headerName,it)})),ze.handle(Me)}}return X.\u0275fac=function(Me){return new(Me||X)(t.LFG(Ae),t.LFG(we))},X.\u0275prov=t.Yz7({token:X,factory:X.\u0275fac}),X})(),yt=(()=>{class X{constructor(Me,ze){this.backend=Me,this.injector=ze,this.chain=null}handle(Me){if(null===this.chain){const ze=this.injector.get(I,[]);this.chain=ze.reduceRight((ht,it)=>new L(ht,it),this.backend)}return this.chain.handle(Me)}}return X.\u0275fac=function(Me){return new(Me||X)(t.LFG(o),t.LFG(t.zs3))},X.\u0275prov=t.Yz7({token:X,factory:X.\u0275fac}),X})(),ue=(()=>{class X{static disable(){return{ngModule:X,providers:[{provide:We,useClass:x}]}}static withOptions(Me={}){return{ngModule:X,providers:[Me.cookieName?{provide:j,useValue:Me.cookieName}:[],Me.headerName?{provide:we,useValue:Me.headerName}:[]]}}}return X.\u0275fac=function(Me){return new(Me||X)},X.\u0275mod=t.oAB({type:X}),X.\u0275inj=t.cJS({providers:[We,{provide:I,useExisting:We,multi:!0},{provide:Ae,useClass:le},{provide:j,useValue:"XSRF-TOKEN"},{provide:we,useValue:"X-XSRF-TOKEN"}]}),X})(),Te=(()=>{class X{}return X.\u0275fac=function(Me){return new(Me||X)},X.\u0275mod=t.oAB({type:X}),X.\u0275inj=t.cJS({providers:[_,{provide:P,useClass:yt},q,{provide:o,useExisting:q}],imports:[[ue.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),X})()},5e3:(Ue,K,m)=>{"use strict";m.d(K,{deG:()=>pc,tb:()=>Vm,AFp:()=>zm,ip1:()=>_p,CZH:()=>Yu,hGG:()=>C5,z2F:()=>L4,sBO:()=>Jg,Sil:()=>yp,_Vd:()=>M4,EJc:()=>Wm,SBq:()=>w4,qLn:()=>Sc,vpe:()=>hc,tBr:()=>bo,XFs:()=>ue,OlP:()=>Gr,zs3:()=>Zs,ZZ4:()=>Y3,aQg:()=>j3,soG:()=>G3,YKP:()=>qp,h0i:()=>Vu,PXZ:()=>Vg,R0b:()=>Lo,FiY:()=>xo,Lbi:()=>Zm,g9A:()=>Um,n_E:()=>B3,Qsj:()=>D8,FYo:()=>Gp,JOm:()=>cs,q3G:()=>ha,PiD:()=>zl,tp0:()=>Us,Rgc:()=>S4,dDg:()=>qm,GfV:()=>Wp,s_b:()=>z3,ifc:()=>ft,eFA:()=>Jm,Ez6:()=>Re,G48:()=>Qg,Gpc:()=>T,f3M:()=>cl,X6Q:()=>Kg,_c5:()=>m5,VLi:()=>Hg,c2e:()=>Gm,zSh:()=>v2,wAp:()=>Mn,vHH:()=>w,EiD:()=>bh,mCW:()=>ul,qzn:()=>Ul,JVY:()=>ju,pB0:()=>R4,eBb:()=>I4,L6k:()=>qu,LAX:()=>k4,cg1:()=>h0,kL8:()=>Fu,yhl:()=>dl,dqk:()=>Nt,sIi:()=>Zc,CqO:()=>mu,QGY:()=>B2,F4k:()=>pu,RDi:()=>fa,AaK:()=>P,z3N:()=>Mo,qOj:()=>w2,TTD:()=>Ca,_Bn:()=>Up,xp6:()=>B1,uIk:()=>T2,Tol:()=>n0,Gre:()=>o0,ekj:()=>sc,Suo:()=>vm,Xpm:()=>Ee,lG2:()=>rt,Yz7:()=>xe,cJS:()=>Fe,oAB:()=>lt,Yjl:()=>ot,Y36:()=>Gc,_UZ:()=>P2,GkF:()=>uu,BQk:()=>F2,ynx:()=>N2,qZA:()=>$1,TgZ:()=>R2,EpF:()=>fu,n5z:()=>Fs,Ikx:()=>th,LFG:()=>Ia,$8M:()=>r1,$Z:()=>du,NdJ:()=>e0,CRH:()=>ym,kcU:()=>kn,O4$:()=>an,oxw:()=>z2,ALo:()=>om,lcZ:()=>lm,xi3:()=>cm,Dn7:()=>hm,Hsn:()=>_u,F$t:()=>gu,Q6J:()=>I2,s9C:()=>Wc,MGl:()=>yr,DdM:()=>Xp,VKq:()=>$p,WLB:()=>em,kEZ:()=>tm,iGM:()=>gm,MAs:()=>$d,Jf7:()=>kh,CHM:()=>fs,oJD:()=>E0,LSH:()=>T0,kYT:()=>Pe,Udp:()=>El,WFA:()=>H2,d8E:()=>Pu,YNc:()=>Xd,W1O:()=>Mm,_uU:()=>J2,Oqu:()=>qr,hij:()=>Tl,AsE:()=>io,HOy:()=>X2,Gf:()=>_m});var e=m(7579),t=m(727),v=m(8306),M=m(6451),s=m(3099);function C(l){for(let h in l)if(l[h]===C)return h;throw Error("Could not find renamed property on target object.")}function c(l,h){for(const g in h)h.hasOwnProperty(g)&&!l.hasOwnProperty(g)&&(l[g]=h[g])}function P(l){if("string"==typeof l)return l;if(Array.isArray(l))return"["+l.map(P).join(", ")+"]";if(null==l)return""+l;if(l.overriddenName)return`${l.overriddenName}`;if(l.name)return`${l.name}`;const h=l.toString();if(null==h)return""+h;const g=h.indexOf("\n");return-1===g?h:h.substring(0,g)}function o(l,h){return null==l||""===l?null===h?"":h:null==h||""===h?l:l+" "+h}const O=C({__forward_ref__:C});function T(l){return l.__forward_ref__=T,l.toString=function(){return P(this())},l}function R(l){return S(l)?l():l}function S(l){return"function"==typeof l&&l.hasOwnProperty(O)&&l.__forward_ref__===T}class w extends Error{constructor(h,g){super(function(l,h){return`${l?`NG0${l}: `:""}${h}`}(h,g)),this.code=h}}function W(l){return"string"==typeof l?l:null==l?"":String(l)}function ee(l){return"function"==typeof l?l.name||l.toString():"object"==typeof l&&null!=l&&"function"==typeof l.type?l.type.name||l.type.toString():W(l)}function de(l,h){const g=h?` in ${h}`:"";throw new w("201",`No provider for ${ee(l)} found${g}`)}function b(l,h){null==l&&function(l,h,g,E){throw new Error(`ASSERTION ERROR: ${l}`+(null==E?"":` [Expected=> ${g} ${E} ${h} <=Actual]`))}(h,l,null,"!=")}function xe(l){return{token:l.token,providedIn:l.providedIn||null,factory:l.factory,value:void 0}}const Re=xe;function Fe(l){return{providers:l.providers||[],imports:l.imports||[]}}function q(l){return j(l,We)||j(l,Ne)}function j(l,h){return l.hasOwnProperty(h)?l[h]:null}function le(l){return l&&(l.hasOwnProperty(yt)||l.hasOwnProperty(Ve))?l[yt]:null}const We=C({\u0275prov:C}),yt=C({\u0275inj:C}),Ne=C({ngInjectableDef:C}),Ve=C({ngInjectorDef:C});var ue=(()=>((ue=ue||{})[ue.Default=0]="Default",ue[ue.Host=1]="Host",ue[ue.Self=2]="Self",ue[ue.SkipSelf=4]="SkipSelf",ue[ue.Optional=8]="Optional",ue))();let Te;function Y(l){const h=Te;return Te=l,h}function X(l,h,g){const E=q(l);return E&&"root"==E.providedIn?void 0===E.value?E.value=E.factory():E.value:g&ue.Optional?null:void 0!==h?h:void de(P(l),"Injector")}function Me(l){return{toString:l}.toString()}var ze=(()=>((ze=ze||{})[ze.OnPush=0]="OnPush",ze[ze.Default=1]="Default",ze))(),ft=(()=>{return(l=ft||(ft={}))[l.Emulated=0]="Emulated",l[l.None=2]="None",l[l.ShadowDom=3]="ShadowDom",ft;var l})();const nt="undefined"!=typeof globalThis&&globalThis,st="undefined"!=typeof window&&window,wt="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,Nt=nt||"undefined"!=typeof global&&global||st||wt,jt={},ti=[],Pi=C({\u0275cmp:C}),si=C({\u0275dir:C}),di=C({\u0275pipe:C}),He=C({\u0275mod:C}),Se=C({\u0275fac:C}),V=C({__NG_ELEMENT_ID__:C});let ve=0;function Ee(l){return Me(()=>{const g={},E={type:l.type,providersResolver:null,decls:l.decls,vars:l.vars,factory:null,template:l.template||null,consts:l.consts||null,ngContentSelectors:l.ngContentSelectors,hostBindings:l.hostBindings||null,hostVars:l.hostVars||0,hostAttrs:l.hostAttrs||null,contentQueries:l.contentQueries||null,declaredInputs:g,inputs:null,outputs:null,exportAs:l.exportAs||null,onPush:l.changeDetection===ze.OnPush,directiveDefs:null,pipeDefs:null,selectors:l.selectors||ti,viewQuery:l.viewQuery||null,features:l.features||null,data:l.data||{},encapsulation:l.encapsulation||ft.Emulated,id:"c",styles:l.styles||ti,_:null,setInput:null,schemas:l.schemas||null,tView:null},N=l.directives,Z=l.features,ge=l.pipes;return E.id+=ve++,E.inputs=Be(l.inputs,g),E.outputs=Be(l.outputs),Z&&Z.forEach(Ie=>Ie(E)),E.directiveDefs=N?()=>("function"==typeof N?N():N).map($t):null,E.pipeDefs=ge?()=>("function"==typeof ge?ge():ge).map(Pt):null,E})}function $t(l){return At(l)||function(l){return l[si]||null}(l)}function Pt(l){return function(l){return l[di]||null}(l)}const Xt={};function lt(l){return Me(()=>{const h={type:l.type,bootstrap:l.bootstrap||ti,declarations:l.declarations||ti,imports:l.imports||ti,exports:l.exports||ti,transitiveCompileScopes:null,schemas:l.schemas||null,id:l.id||null};return null!=l.id&&(Xt[l.id]=l.type),h})}function Pe(l,h){return Me(()=>{const g=Ft(l,!0);g.declarations=h.declarations||ti,g.imports=h.imports||ti,g.exports=h.exports||ti})}function Be(l,h){if(null==l)return jt;const g={};for(const E in l)if(l.hasOwnProperty(E)){let N=l[E],Z=N;Array.isArray(N)&&(Z=N[1],N=N[0]),g[N]=E,h&&(h[N]=Z)}return g}const rt=Ee;function ot(l){return{type:l.type,name:l.name,factory:null,pure:!1!==l.pure,onDestroy:l.type.prototype.ngOnDestroy||null}}function At(l){return l[Pi]||null}function Ft(l,h){const g=l[He]||null;if(!g&&!0===h)throw new Error(`Type ${P(l)} does not have '\u0275mod' property.`);return g}function pn(l){return Array.isArray(l)&&"object"==typeof l[1]}function Pn(l){return Array.isArray(l)&&!0===l[1]}function xr(l){return 0!=(8&l.flags)}function wi(l){return 2==(2&l.flags)}function zi(l){return 1==(1&l.flags)}function sn(l){return null!==l.template}function Sr(l){return 0!=(512&l[2])}function Rr(l,h){return l.hasOwnProperty(Se)?l[Se]:null}class Na{constructor(h,g,E){this.previousValue=h,this.currentValue=g,this.firstChange=E}isFirstChange(){return this.firstChange}}function Ca(){return Vr}function Vr(l){return l.type.prototype.ngOnChanges&&(l.setInput=Fa),er}function er(){const l=ia(this),h=null==l?void 0:l.current;if(h){const g=l.previous;if(g===jt)l.previous=h;else for(let E in h)g[E]=h[E];l.current=null,this.ngOnChanges(h)}}function Fa(l,h,g,E){const N=ia(l)||function(l,h){return l[dr]=h}(l,{previous:jt,current:null}),Z=N.current||(N.current={}),ge=N.previous,Ie=this.declaredInputs[g],Ye=ge[Ie];Z[Ie]=new Na(Ye&&Ye.currentValue,h,ge===jt),l[E]=h}Ca.ngInherit=!0;const dr="__ngSimpleChanges__";function ia(l){return l[dr]||null}const ns="http://www.w3.org/2000/svg";let mr;function fa(l){mr=l}function ra(){return void 0!==mr?mr:"undefined"!=typeof document?document:void 0}function Zn(l){return!!l.listen}const rs={createRenderer:(l,h)=>ra()};function Xe(l){for(;Array.isArray(l);)l=l[0];return l}function ae(l,h){return Xe(h[l])}function Qe(l,h){return Xe(h[l.index])}function mi(l,h){return l.data[h]}function Ct(l,h){return l[h]}function ei(l,h){const g=h[l];return pn(g)?g:g[0]}function bt(l){return 4==(4&l[2])}function Wt(l){return 128==(128&l[2])}function Hi(l,h){return null==h?null:l[h]}function vn(l){l[18]=0}function wn(l,h){l[5]+=h;let g=l,E=l[3];for(;null!==E&&(1===h&&1===g[5]||-1===h&&0===g[5]);)E[5]+=h,g=E,E=E[3]}const Qi={lFrame:yn(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function Lr(){return Qi.bindingsEnabled}function ki(){return Qi.lFrame.lView}function Nn(){return Qi.lFrame.tView}function fs(l){return Qi.lFrame.contextLView=l,l[8]}function cr(){let l=Ys();for(;null!==l&&64===l.type;)l=l.parent;return l}function Ys(){return Qi.lFrame.currentTNode}function xt(l,h){const g=Qi.lFrame;g.currentTNode=l,g.isParent=h}function re(){return Qi.lFrame.isParent}function pe(){Qi.lFrame.isParent=!1}function kt(){return Qi.isInCheckNoChangesMode}function Kt(l){Qi.isInCheckNoChangesMode=l}function Jt(){const l=Qi.lFrame;let h=l.bindingRootIndex;return-1===h&&(h=l.bindingRootIndex=l.tView.bindingStartIndex),h}function fi(){return Qi.lFrame.bindingIndex}function Zi(){return Qi.lFrame.bindingIndex++}function en(l){const h=Qi.lFrame,g=h.bindingIndex;return h.bindingIndex=h.bindingIndex+l,g}function tt(l,h){const g=Qi.lFrame;g.bindingIndex=g.bindingRootIndex=l,It(h)}function It(l){Qi.lFrame.currentDirectiveIndex=l}function zt(l){const h=Qi.lFrame.currentDirectiveIndex;return-1===h?null:l[h]}function ri(){return Qi.lFrame.currentQueryIndex}function vi(l){Qi.lFrame.currentQueryIndex=l}function Mi(l){const h=l[1];return 2===h.type?h.declTNode:1===h.type?l[6]:null}function Ei(l,h,g){if(g&ue.SkipSelf){let N=h,Z=l;for(;!(N=N.parent,null!==N||g&ue.Host||(N=Mi(Z),null===N||(Z=Z[15],10&N.type))););if(null===N)return!1;h=N,l=Z}const E=Qi.lFrame=hn();return E.currentTNode=h,E.lView=l,!0}function ji(l){const h=hn(),g=l[1];Qi.lFrame=h,h.currentTNode=g.firstChild,h.lView=l,h.tView=g,h.contextLView=l,h.bindingIndex=g.bindingStartIndex,h.inI18n=!1}function hn(){const l=Qi.lFrame,h=null===l?null:l.child;return null===h?yn(l):h}function yn(l){const h={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:l,child:null,inI18n:!1};return null!==l&&(l.child=h),h}function Tn(){const l=Qi.lFrame;return Qi.lFrame=l.parent,l.currentTNode=null,l.lView=null,l}const Vn=Tn;function wr(){const l=Tn();l.isParent=!0,l.tView=null,l.selectedIndex=-1,l.contextLView=null,l.elementDepthCount=0,l.currentDirectiveIndex=-1,l.currentNamespace=null,l.bindingRootIndex=-1,l.bindingIndex=-1,l.currentQueryIndex=0}function Yn(){return Qi.lFrame.selectedIndex}function _r(l){Qi.lFrame.selectedIndex=l}function Fi(){const l=Qi.lFrame;return mi(l.tView,l.selectedIndex)}function an(){Qi.lFrame.currentNamespace=ns}function kn(){Qi.lFrame.currentNamespace=null}function ca(l,h){for(let g=h.directiveStart,E=h.directiveEnd;g=E)break}else h[Ye]<0&&(l[18]+=65536),(Ie>11>16&&(3&l[2])===h){l[2]+=2048;try{Z.call(Ie)}finally{}}}else try{Z.call(Ie)}finally{}}class vs{constructor(h,g,E){this.factory=h,this.resolving=!1,this.canSeeViewProviders=g,this.injectImpl=E}}function ko(l,h,g){const E=Zn(l);let N=0;for(;Nh){ge=Z-1;break}}}for(;Z>16}(l),E=h;for(;g>0;)E=E[15],g--;return E}let il=!0;function vo(l){const h=il;return il=l,h}let De=0;function Je(l,h){const g=Ot(l,h);if(-1!==g)return g;const E=h[1];E.firstCreatePass&&(l.injectorIndex=h.length,ct(E.data,l),ct(h,null),ct(E.blueprint,null));const N=qt(l,h),Z=l.injectorIndex;if(Nl(N)){const ge=ao(N),Ie=so(N,h),Ye=Ie[1].data;for(let ut=0;ut<8;ut++)h[Z+ut]=Ie[ge+ut]|Ye[ge+ut]}return h[Z+8]=N,Z}function ct(l,h){l.push(0,0,0,0,0,0,0,0,h)}function Ot(l,h){return-1===l.injectorIndex||l.parent&&l.parent.injectorIndex===l.injectorIndex||null===h[l.injectorIndex+8]?-1:l.injectorIndex}function qt(l,h){if(l.parent&&-1!==l.parent.injectorIndex)return l.parent.injectorIndex;let g=0,E=null,N=h;for(;null!==N;){const Z=N[1],ge=Z.type;if(E=2===ge?Z.declTNode:1===ge?N[6]:null,null===E)return-1;if(g++,N=N[15],-1!==E.injectorIndex)return E.injectorIndex|g<<16}return-1}function ii(l,h,g){!function(l,h,g){let E;"string"==typeof g?E=g.charCodeAt(0)||0:g.hasOwnProperty(V)&&(E=g[V]),null==E&&(E=g[V]=De++);const N=255&E;h.data[l+(N>>5)]|=1<=0?255&h:Bn:h}(g);if("function"==typeof Z){if(!Ei(h,l,E))return E&ue.Host?on(N,g,E):jn(h,g,E,N);try{const ge=Z(E);if(null!=ge||E&ue.Optional)return ge;de(g)}finally{Vn()}}else if("number"==typeof Z){let ge=null,Ie=Ot(l,h),Ye=-1,ut=E&ue.Host?h[16][6]:null;for((-1===Ie||E&ue.SkipSelf)&&(Ye=-1===Ie?qt(l,h):h[Ie+8],-1!==Ye&&ys(E,!1)?(ge=h[1],Ie=ao(Ye),h=so(Ye,h)):Ie=-1);-1!==Ie;){const Tt=h[1];if(Ba(Z,Ie,Tt.data)){const Gt=yo(Ie,h,g,ge,E,ut);if(Gt!==Xn)return Gt}Ye=h[Ie+8],-1!==Ye&&ys(E,h[1].data[Ie+8]===ut)&&Ba(Z,Ie,h)?(ge=Tt,Ie=ao(Ye),h=so(Ye,h)):Ie=-1}}}return jn(h,g,E,N)}const Xn={};function Bn(){return new os(cr(),ki())}function yo(l,h,g,E,N,Z){const ge=h[1],Ie=ge.data[l+8],Tt=ss(Ie,ge,g,null==E?wi(Ie)&&il:E!=ge&&0!=(3&Ie.type),N&ue.Host&&Z===Ie);return null!==Tt?qa(h,ge,Tt,Ie):Xn}function ss(l,h,g,E,N){const Z=l.providerIndexes,ge=h.data,Ie=1048575&Z,Ye=l.directiveStart,Tt=Z>>20,oi=N?Ie+Tt:l.directiveEnd;for(let gi=E?Ie:Ie+Tt;gi=Ye&&Li.type===g)return gi}if(N){const gi=ge[Ye];if(gi&&sn(gi)&&gi.type===g)return Ye}return null}function qa(l,h,g,E){let N=l[g];const Z=h.data;if(function(l){return l instanceof vs}(N)){const ge=N;ge.resolving&&function(l,h){throw new w("200",`Circular dependency in DI detected for ${l}`)}(ee(Z[g]));const Ie=vo(ge.canSeeViewProviders);ge.resolving=!0;const Ye=ge.injectImpl?Y(ge.injectImpl):null;Ei(l,E,ue.Default);try{N=l[g]=ge.factory(void 0,Z,l,E),h.firstCreatePass&&g>=E.directiveStart&&function(l,h,g){const{ngOnChanges:E,ngOnInit:N,ngDoCheck:Z}=h.type.prototype;if(E){const ge=Vr(h);(g.preOrderHooks||(g.preOrderHooks=[])).push(l,ge),(g.preOrderCheckHooks||(g.preOrderCheckHooks=[])).push(l,ge)}N&&(g.preOrderHooks||(g.preOrderHooks=[])).push(0-l,N),Z&&((g.preOrderHooks||(g.preOrderHooks=[])).push(l,Z),(g.preOrderCheckHooks||(g.preOrderCheckHooks=[])).push(l,Z))}(g,Z[g],h)}finally{null!==Ye&&Y(Ye),vo(Ie),ge.resolving=!1,Vn()}}return N}function Ba(l,h,g){return!!(g[h+(l>>5)]&1<{const h=l.prototype.constructor,g=h[Se]||n1(h),E=Object.prototype;let N=Object.getPrototypeOf(l.prototype).constructor;for(;N&&N!==E;){const Z=N[Se]||n1(N);if(Z&&Z!==g)return Z;N=Object.getPrototypeOf(N)}return Z=>new Z})}function n1(l){return S(l)?()=>{const h=n1(R(l));return h&&h()}:Rr(l)}function r1(l){return function(l,h){if("class"===h)return l.classes;if("style"===h)return l.styles;const g=l.attrs;if(g){const E=g.length;let N=0;for(;N{const E=function(l){return function(...g){if(l){const E=l(...g);for(const N in E)this[N]=E[N]}}}(h);function N(...Z){if(this instanceof N)return E.apply(this,Z),this;const ge=new N(...Z);return Ie.annotation=ge,Ie;function Ie(Ye,ut,Tt){const Gt=Ye.hasOwnProperty(Po)?Ye[Po]:Object.defineProperty(Ye,Po,{value:[]})[Po];for(;Gt.length<=Tt;)Gt.push(null);return(Gt[Tt]=Gt[Tt]||[]).push(ge),Ye}}return g&&(N.prototype=Object.create(g.prototype)),N.prototype.ngMetadataName=l,N.annotationCls=N,N})}class Gr{constructor(h,g){this._desc=h,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof g?this.__NG_ELEMENT_ID__=g:void 0!==g&&(this.\u0275prov=xe({token:this,providedIn:g.providedIn||"root",factory:g.factory}))}toString(){return`InjectionToken ${this._desc}`}}const pc=new Gr("AnalyzeForEntryComponents");function bs(l,h){void 0===h&&(h=l);for(let g=0;gArray.isArray(g)?Hs(g,h):h(g))}function oo(l,h,g){h>=l.length?l.push(g):l.splice(h,0,g)}function al(l,h){return h>=l.length-1?l.pop():l.splice(h,1)[0]}function qs(l,h){const g=[];for(let E=0;E=0?l[1|E]=g:(E=~E,function(l,h,g,E){let N=l.length;if(N==h)l.push(g,E);else if(1===N)l.push(E,l[0]),l[0]=g;else{for(N--,l.push(l[N-1],l[N]);N>h;)l[N]=l[N-2],N--;l[h]=g,l[h+1]=E}}(l,E,h,g)),E}function h1(l,h){const g=sl(l,h);if(g>=0)return l[1|g]}function sl(l,h){return function(l,h,g){let E=0,N=l.length>>g;for(;N!==E;){const Z=E+(N-E>>1),ge=l[Z<h?N=Z:E=Z+1}return~(N<({token:l})),-1),xo=zo(Fo("Optional"),8),zl=zo(Fo("Self"),2),Us=zo(Fo("SkipSelf"),4);let hr,Qs;function ur(l){var h;return(null===(h=function(){if(void 0===hr&&(hr=null,Nt.trustedTypes))try{hr=Nt.trustedTypes.createPolicy("angular",{createHTML:l=>l,createScript:l=>l,createScriptURL:l=>l})}catch(l){}return hr}())||void 0===h?void 0:h.createHTML(l))||l}function Go(l){var h;return(null===(h=function(){if(void 0===Qs&&(Qs=null,Nt.trustedTypes))try{Qs=Nt.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:l=>l,createScript:l=>l,createScriptURL:l=>l})}catch(l){}return Qs}())||void 0===h?void 0:h.createHTML(l))||l}class Wo{constructor(h){this.changingThisBreaksApplicationSecurity=h}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}class C0 extends Wo{getTypeName(){return"HTML"}}class O4 extends Wo{getTypeName(){return"Style"}}class hl extends Wo{getTypeName(){return"Script"}}class M0 extends Wo{getTypeName(){return"URL"}}class y1 extends Wo{getTypeName(){return"ResourceURL"}}function Mo(l){return l instanceof Wo?l.changingThisBreaksApplicationSecurity:l}function Ul(l,h){const g=dl(l);if(null!=g&&g!==h){if("ResourceURL"===g&&"URL"===h)return!0;throw new Error(`Required a safe ${h}, got a ${g} (see https://g.co/ng/security#xss)`)}return g===h}function dl(l){return l instanceof Wo&&l.getTypeName()||null}function ju(l){return new C0(l)}function qu(l){return new O4(l)}function I4(l){return new hl(l)}function k4(l){return new M0(l)}function R4(l){return new y1(l)}class P4{constructor(h){this.inertDocumentHelper=h}getInertBodyElement(h){h=""+h;try{const g=(new window.DOMParser).parseFromString(ur(h),"text/html").body;return null===g?this.inertDocumentHelper.getInertBodyElement(h):(g.removeChild(g.firstChild),g)}catch(g){return null}}}class N4{constructor(h){if(this.defaultDoc=h,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const g=this.inertDocument.createElement("html");this.inertDocument.appendChild(g);const E=this.inertDocument.createElement("body");g.appendChild(E)}}getInertBodyElement(h){const g=this.inertDocument.createElement("template");if("content"in g)return g.innerHTML=ur(h),g;const E=this.inertDocument.createElement("body");return E.innerHTML=ur(h),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(E),E}stripCustomNsAttrs(h){const g=h.attributes;for(let N=g.length-1;0ul(h.trim())).join(", ")),this.buf.push(" ",ge,'="',yh(Ye),'"')}var l;return this.buf.push(">"),!0}endElement(h){const g=h.nodeName.toLowerCase();pl.hasOwnProperty(g)&&!Qu.hasOwnProperty(g)&&(this.buf.push(""))}chars(h){this.buf.push(yh(h))}checkClobberedElement(h,g){if(g&&(h.compareDocumentPosition(g)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${h.outerHTML}`);return g}}const wc=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ac=/([^\#-~ |!])/g;function yh(l){return l.replace(/&/g,"&").replace(wc,function(h){return"&#"+(1024*(h.charCodeAt(0)-55296)+(h.charCodeAt(1)-56320)+65536)+";"}).replace(Ac,function(h){return"&#"+h.charCodeAt(0)+";"}).replace(//g,">")}let x1;function bh(l,h){let g=null;try{x1=x1||function(l){const h=new N4(l);return function(){try{return!!(new window.DOMParser).parseFromString(ur(""),"text/html")}catch(l){return!1}}()?new P4(h):h}(l);let E=h?String(h):"";g=x1.getInertBodyElement(E);let N=5,Z=E;do{if(0===N)throw new Error("Failed to sanitize html because the input is unstable");N--,E=Z,Z=g.innerHTML,g=x1.getInertBodyElement(E)}while(E!==Z);return ur((new Xu).sanitizeChildren(A0(g)||g))}finally{if(g){const E=A0(g)||g;for(;E.firstChild;)E.removeChild(E.firstChild)}}}function A0(l){return"content"in l&&function(l){return l.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===l.nodeName}(l)?l.content:null}var ha=(()=>((ha=ha||{})[ha.NONE=0]="NONE",ha[ha.HTML=1]="HTML",ha[ha.STYLE=2]="STYLE",ha[ha.SCRIPT=3]="SCRIPT",ha[ha.URL=4]="URL",ha[ha.RESOURCE_URL=5]="RESOURCE_URL",ha))();function E0(l){const h=Ec();return h?Go(h.sanitize(ha.HTML,l)||""):Ul(l,"HTML")?Go(Mo(l)):bh(ra(),W(l))}function T0(l){const h=Ec();return h?h.sanitize(ha.URL,l)||"":Ul(l,"URL")?Mo(l):ul(W(l))}function Ec(){const l=ki();return l&&l[12]}const wh="__ngContext__";function ls(l,h){l[wh]=h}function C1(l){const h=function(l){return l[wh]||null}(l);return h?Array.isArray(h)?h:h.lView:null}function I0(l){return l.ngOriginalError}function pf(l,...h){l.error(...h)}class Sc{constructor(){this._console=console}handleError(h){const g=this._findOriginalError(h),E=(l=h)&&l.ngErrorLogger||pf;var l;E(this._console,"ERROR",h),g&&E(this._console,"ORIGINAL ERROR",g)}_findOriginalError(h){let g=h&&I0(h);for(;g&&I0(g);)g=I0(g);return g||null}}const Ih=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(Nt))();function kh(l){return l.ownerDocument.defaultView}function uo(l){return l instanceof Function?l():l}var cs=(()=>((cs=cs||{})[cs.Important=1]="Important",cs[cs.DashCase=2]="DashCase",cs))();function w1(l,h){return undefined(l,h)}function Dc(l){const h=l[3];return Pn(h)?h[3]:h}function A1(l){return Tf(l[13])}function P0(l){return Tf(l[4])}function Tf(l){for(;null!==l&&!Pn(l);)l=l[4];return l}function ml(l,h,g,E,N){if(null!=E){let Z,ge=!1;Pn(E)?Z=E:pn(E)&&(ge=!0,E=E[0]);const Ie=Xe(E);0===l&&null!==g?null==N?H0(h,g,Ie):As(h,g,Ie,N||null,!0):1===l&&null!==g?As(h,g,Ie,N||null,!0):2===l?function(l,h,g){const E=D1(l,h);E&&function(l,h,g,E){Zn(l)?l.removeChild(h,g,E):h.removeChild(g)}(l,E,h,g)}(h,Ie,ge):3===l&&h.destroyNode(Ie),null!=Z&&function(l,h,g,E,N){const Z=g[7];Z!==Xe(g)&&ml(h,l,E,Z,N);for(let Ie=10;Ie0&&(l[g-1][4]=E[4]);const Z=al(l,10+h);!function(l,h){Wl(l,h,h[11],2,null,null),h[0]=null,h[6]=null}(E[1],E);const ge=Z[19];null!==ge&&ge.detachView(Z[1]),E[3]=null,E[4]=null,E[2]&=-129}return E}function gl(l,h){if(!(256&h[2])){const g=h[11];Zn(g)&&g.destroyNode&&Wl(l,h,g,3,null,null),function(l){let h=l[13];if(!h)return Hh(l[1],l);for(;h;){let g=null;if(pn(h))g=h[13];else{const E=h[10];E&&(g=E)}if(!g){for(;h&&!h[4]&&h!==l;)pn(h)&&Hh(h[1],h),h=h[3];null===h&&(h=l),pn(h)&&Hh(h[1],h),g=h&&h[4]}h=g}}(h)}}function Hh(l,h){if(!(256&h[2])){h[2]&=-129,h[2]|=256,function(l,h){let g;if(null!=l&&null!=(g=l.destroyHooks))for(let E=0;E=0?E[N=ut]():E[N=-ut].unsubscribe(),Z+=2}else{const ge=E[N=g[Z+1]];g[Z].call(ge)}if(null!==E){for(let Z=N+1;ZZ?"":N[Gt+1].toLowerCase();const gi=8&E?oi:null;if(gi&&-1!==Wh(gi,ut,0)||2&E&&ut!==oi){if(Tr(E))return!1;ge=!0}}}}else{if(!ge&&!Tr(E)&&!Tr(Ye))return!1;if(ge&&Tr(Ye))continue;ge=!1,E=Ye|1&E}}return Tr(E)||ge}function Tr(l){return 0==(1&l)}function qh(l,h,g,E){if(null===h)return-1;let N=0;if(E||!g){let Z=!1;for(;N-1)for(g++;g0?'="'+Ie+'"':"")+"]"}else 8&E?N+="."+ge:4&E&&(N+=" "+ge);else""!==N&&!Tr(ge)&&(h+=F1(Z,N),N=""),E=ge,Z=Z||!Tr(E);g++}return""!==N&&(h+=F1(Z,N)),h}const Sn={};function B1(l){H1(Nn(),ki(),Yn()+l,kt())}function H1(l,h,g,E){if(!E)if(3==(3&h[2])){const Z=l.preOrderCheckHooks;null!==Z&&Wn(h,Z,g)}else{const Z=l.preOrderHooks;null!==Z&&ps(h,Z,0,g)}_r(g)}function z1(l,h){return l<<17|h<<2}function Es(l){return l>>17&32767}function Xh(l){return 2|l}function Xs(l){return(131068&l)>>2}function Jn(l,h){return-131069&l|h<<2}function U1(l){return 1|l}function rd(l,h){const g=l.contentQueries;if(null!==g)for(let E=0;E20&&H1(l,h,20,kt()),g(E,N)}finally{_r(Z)}}function sd(l,h,g){if(xr(h)){const N=h.directiveEnd;for(let Z=h.directiveStart;Z0;){const g=l[--h];if("number"==typeof g&&g<0)return g}return 0})(Ie)!=Ye&&Ie.push(Ye),Ie.push(E,N,ge)}}function md(l,h){null!==l.hostBindings&&l.hostBindings(1,h)}function gd(l,h){h.flags|=2,(l.components||(l.components=[])).push(h.index)}function e6(l,h,g){if(g){if(h.exportAs)for(let E=0;E0&&u2(g)}}function u2(l){for(let E=A1(l);null!==E;E=P0(E))for(let N=10;N0&&u2(Z)}const g=l[1].components;if(null!==g)for(let E=0;E0&&u2(N)}}function a6(l,h){const g=ei(h,l),E=g[1];(function(l,h){for(let g=h.length;gPromise.resolve(null))();function g2(l){return l[7]||(l[7]=[])}function Md(l){return l.cleanup||(l.cleanup=[])}function wd(l,h,g){return(null===l||sn(l))&&(g=function(l){for(;Array.isArray(l);){if("object"==typeof l[1])return l;l=l[0]}return null}(g[h.index])),g[11]}function Ad(l,h){const g=l[9],E=g?g.get(Sc,null):null;E&&E.handleError(h)}function Ed(l,h,g,E,N){for(let Z=0;Zthis.processProvider(Ie,h,g)),Hs([h],Ie=>this.processInjectorType(Ie,[],Z)),this.records.set(_2,Kl(void 0,this));const ge=this.records.get(v2);this.scope=null!=ge?ge.value:null,this.source=N||("object"==typeof h?null:P(h))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(h=>h.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(h,g=Ha,E=ue.Default){this.assertNotDestroyed();const N=ll(this),Z=Y(void 0);try{if(!(E&ue.SkipSelf)){let Ie=this.records.get(h);if(void 0===Ie){const Ye=("function"==typeof(l=h)||"object"==typeof l&&l instanceof Gr)&&q(h);Ie=Ye&&this.injectableDefInScope(Ye)?Kl(x2(h),Uc):null,this.records.set(h,Ie)}if(null!=Ie)return this.hydrate(h,Ie)}return(E&ue.Self?Sd():this.parent).get(h,g=E&ue.Optional&&g===Ha?null:g)}catch(ge){if("NullInjectorError"===ge.name){if((ge[zs]=ge[zs]||[]).unshift(P(h)),N)throw ge;return function(l,h,g,E){const N=l[zs];throw h[Hl]&&N.unshift(h[Hl]),l.message=function(l,h,g,E=null){l=l&&"\n"===l.charAt(0)&&"\u0275"==l.charAt(1)?l.substr(2):l;let N=P(h);if(Array.isArray(h))N=h.map(P).join(" -> ");else if("object"==typeof h){let Z=[];for(let ge in h)if(h.hasOwnProperty(ge)){let Ie=h[ge];Z.push(ge+":"+("string"==typeof Ie?JSON.stringify(Ie):P(Ie)))}N=`{${Z.join(", ")}}`}return`${g}${E?"("+E+")":""}[${N}]: ${l.replace(f1,"\n ")}`}("\n"+l.message,N,g,E),l.ngTokenPath=N,l[zs]=null,l}(ge,h,"R3InjectorError",this.source)}throw ge}finally{Y(Z),ll(N)}var l}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(h=>this.get(h))}toString(){const h=[];return this.records.forEach((E,N)=>h.push(P(N))),`R3Injector[${h.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}processInjectorType(h,g,E){if(!(h=R(h)))return!1;let N=le(h);const Z=null==N&&h.ngModule||void 0,ge=void 0===Z?h:Z,Ie=-1!==E.indexOf(ge);if(void 0!==Z&&(N=le(Z)),null==N)return!1;if(null!=N.imports&&!Ie){let Tt;E.push(ge);try{Hs(N.imports,Gt=>{this.processInjectorType(Gt,g,E)&&(void 0===Tt&&(Tt=[]),Tt.push(Gt))})}finally{}if(void 0!==Tt)for(let Gt=0;Gtthis.processProvider(Li,oi,gi||ti))}}this.injectorDefTypes.add(ge);const Ye=Rr(ge)||(()=>new ge);this.records.set(ge,Kl(Ye,Uc));const ut=N.providers;if(null!=ut&&!Ie){const Tt=h;Hs(ut,Gt=>this.processProvider(Gt,Tt,ut))}return void 0!==Z&&void 0!==h.providers}processProvider(h,g,E){let N=Fr(h=R(h))?h:R(h&&h.provide);const Z=(l=h,Od(l)?Kl(void 0,l.useValue):Kl(Ld(l),Uc));var l;if(Fr(h)||!0!==h.multi)this.records.get(N);else{let ge=this.records.get(N);ge||(ge=Kl(void 0,Uc,!0),ge.factory=()=>p1(ge.multi),this.records.set(N,ge)),N=h,ge.multi.push(h)}this.records.set(N,Z)}hydrate(h,g){return g.value===Uc&&(g.value=f6,g.value=g.factory()),"object"==typeof g.value&&g.value&&null!==(l=g.value)&&"object"==typeof l&&"function"==typeof l.ngOnDestroy&&this.onDestroy.add(g.value),g.value;var l}injectableDefInScope(h){if(!h.providedIn)return!1;const g=R(h.providedIn);return"string"==typeof g?"any"===g||g===this.scope:this.injectorDefTypes.has(g)}}function x2(l){const h=q(l),g=null!==h?h.factory:Rr(l);if(null!==g)return g;if(l instanceof Gr)throw new Error(`Token ${P(l)} is missing a \u0275prov definition.`);if(l instanceof Function)return function(l){const h=l.length;if(h>0){const E=qs(h,"?");throw new Error(`Can't resolve all parameters for ${P(l)}: (${E.join(", ")}).`)}const g=function(l){const h=l&&(l[We]||l[Ne]);if(h){const g=function(l){if(l.hasOwnProperty("name"))return l.name;const h=(""+l).match(/^function\s*([^\s(]+)/);return null===h?"":h[1]}(l);return console.warn(`DEPRECATED: DI is instantiating a token "${g}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${g}" class.`),h}return null}(l);return null!==g?()=>g.factory(l):()=>new l}(l);throw new Error("unreachable")}function Ld(l,h,g){let E;if(Fr(l)){const N=R(l);return Rr(N)||x2(N)}if(Od(l))E=()=>R(l.useValue);else if(function(l){return!(!l||!l.useFactory)}(l))E=()=>l.useFactory(...p1(l.deps||[]));else if(function(l){return!(!l||!l.useExisting)}(l))E=()=>Ia(R(l.useExisting));else{const N=R(l&&(l.useClass||l.provide));if(!function(l){return!!l.deps}(l))return Rr(N)||x2(N);E=()=>new N(...p1(l.deps))}return E}function Kl(l,h,g=!1){return{factory:l,value:h,multi:g?[]:void 0}}function Od(l){return null!==l&&"object"==typeof l&&xc in l}function Fr(l){return"function"==typeof l}let Zs=(()=>{class l{static create(g,E){var N;if(Array.isArray(g))return b2({name:""},E,g,"");{const Z=null!==(N=g.name)&&void 0!==N?N:"";return b2({name:Z},g.parent,g.providers,Z)}}}return l.THROW_IF_NOT_FOUND=Ha,l.NULL=new Td,l.\u0275prov=xe({token:l,providedIn:"any",factory:()=>Ia(_2)}),l.__NG_ELEMENT_ID__=-1,l})();function S6(l,h){ca(C1(l)[1],cr())}function w2(l){let h=function(l){return Object.getPrototypeOf(l.prototype).constructor}(l.type),g=!0;const E=[l];for(;h;){let N;if(sn(l))N=h.\u0275cmp||h.\u0275dir;else{if(h.\u0275cmp)throw new Error("Directives cannot inherit Components");N=h.\u0275dir}if(N){if(g){E.push(N);const ge=l;ge.inputs=A2(l.inputs),ge.declaredInputs=A2(l.declaredInputs),ge.outputs=A2(l.outputs);const Ie=N.hostBindings;Ie&&I6(l,Ie);const Ye=N.viewQuery,ut=N.contentQueries;if(Ye&&L6(l,Ye),ut&&O6(l,ut),c(l.inputs,N.inputs),c(l.declaredInputs,N.declaredInputs),c(l.outputs,N.outputs),sn(N)&&N.data.animation){const Tt=l.data;Tt.animation=(Tt.animation||[]).concat(N.data.animation)}}const Z=N.features;if(Z)for(let ge=0;ge=0;E--){const N=l[E];N.hostVars=h+=N.hostVars,N.hostAttrs=_o(N.hostAttrs,g=_o(g,N.hostAttrs))}}(E)}function A2(l){return l===jt?{}:l===ti?[]:l}function L6(l,h){const g=l.viewQuery;l.viewQuery=g?(E,N)=>{h(E,N),g(E,N)}:h}function O6(l,h){const g=l.contentQueries;l.contentQueries=g?(E,N,Z)=>{h(E,N,Z),g(E,N,Z)}:h}function I6(l,h){const g=l.hostBindings;l.hostBindings=g?(E,N)=>{h(E,N),g(E,N)}:h}let Q1=null;function Ql(){if(!Q1){const l=Nt.Symbol;if(l&&l.iterator)Q1=l.iterator;else{const h=Object.getOwnPropertyNames(Map.prototype);for(let g=0;gIe(Xe(nr[E.index])):E.index;if(Zn(g)){let nr=null;if(!Ie&&Ye&&(nr=function(l,h,g,E){const N=l.cleanup;if(null!=N)for(let Z=0;ZYe?Ie[Ye]:null}"string"==typeof ge&&(Z+=2)}return null}(l,h,N,E.index)),null!==nr)(nr.__ngLastListenerFn__||nr).__ngNextListenerFn__=Z,nr.__ngLastListenerFn__=Z,gi=!1;else{Z=t0(E,h,Gt,Z,!1);const Hr=g.listen(mn,N,Z);oi.push(Z,Hr),Tt&&Tt.push(N,En,Ni,Ni+1)}}else Z=t0(E,h,Gt,Z,!0),mn.addEventListener(N,Z,ge),oi.push(Z),Tt&&Tt.push(N,En,Ni,ge)}else Z=t0(E,h,Gt,Z,!1);const Li=E.outputs;let Ji;if(gi&&null!==Li&&(Ji=Li[N])){const nn=Ji.length;if(nn)for(let mn=0;mn0;)h=h[15],l--;return h}(l,Qi.lFrame.contextLView))[8]}(l)}function Ss(l,h){let g=null;const E=function(l){const h=l.attrs;if(null!=h){const g=h.indexOf(5);if(0==(1&g))return h[g+1]}return null}(l);for(let N=0;N=0}const tr={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Gs(l){return l.substring(tr.key,tr.keyEnd)}function Z2(l,h){const g=tr.textEnd;return g===h?-1:(h=tr.keyEnd=function(l,h,g){for(;h32;)h++;return h}(l,tr.key=h,g),wl(l,h,g))}function wl(l,h,g){for(;h=0;g=Z2(h,g))ms(l,Gs(h),!0)}function Ls(l,h,g,E){const N=ki(),Z=Nn(),ge=en(2);Z.firstUpdatePass&&W2(Z,l,ge,E),h!==Sn&&hs(N,ge,h)&&q2(Z,Z.data[Yn()],N,N[11],l,N[ge+1]=function(l,h){return null==l||("string"==typeof h?l+=h:"object"==typeof l&&(l=P(Mo(l)))),l}(h,g),E,ge)}function Os(l,h,g,E){const N=Nn(),Z=en(2);N.firstUpdatePass&&W2(N,null,Z,E);const ge=ki();if(g!==Sn&&hs(ge,Z,g)){const Ie=N.data[Yn()];if(jr(Ie,E)&&!G2(N,Z)){let Ye=E?Ie.classesWithoutHost:Ie.stylesWithoutHost;null!==Ye&&(g=o(Ye,g||"")),k2(N,Ie,ge,g,E)}else!function(l,h,g,E,N,Z,ge,Ie){N===Sn&&(N=ti);let Ye=0,ut=0,Tt=0=l.expandoStartIndex}function W2(l,h,g,E){const N=l.data;if(null===N[g+1]){const Z=N[Yn()],ge=G2(l,g);jr(Z,E)&&null===h&&!ge&&(h=!1),h=function(l,h,g,E){const N=zt(l);let Z=E?h.residualClasses:h.residualStyles;if(null===N)0===(E?h.classBindings:h.styleBindings)&&(g=So(g=jc(null,l,h,g,E),h.attrs,E),Z=null);else{const ge=h.directiveStylingLast;if(-1===ge||l[ge]!==N)if(g=jc(N,l,h,g,E),null===Z){let Ye=function(l,h,g){const E=g?h.classBindings:h.styleBindings;if(0!==Xs(E))return l[Es(E)]}(l,h,E);void 0!==Ye&&Array.isArray(Ye)&&(Ye=jc(null,l,h,Ye[1],E),Ye=So(Ye,h.attrs,E),function(l,h,g,E){l[Es(g?h.classBindings:h.styleBindings)]=E}(l,h,E,Ye))}else Z=function(l,h,g){let E;const N=h.directiveEnd;for(let Z=1+h.directiveStylingLast;Z0)&&(ut=!0)}else Tt=g;if(N)if(0!==Ye){const oi=Es(l[Ie+1]);l[E+1]=z1(oi,Ie),0!==oi&&(l[oi+1]=Jn(l[oi+1],E)),l[Ie+1]=function(l,h){return 131071&l|h<<17}(l[Ie+1],E)}else l[E+1]=z1(Ie,0),0!==Ie&&(l[Ie+1]=Jn(l[Ie+1],E)),Ie=E;else l[E+1]=z1(Ye,0),0===Ie?Ie=E:l[Ye+1]=Jn(l[Ye+1],E),Ye=E;ut&&(l[E+1]=Xh(l[E+1])),Xa(l,Tt,E,!0),Xa(l,Tt,E,!1),function(l,h,g,E,N){const Z=N?l.residualClasses:l.residualStyles;null!=Z&&"string"==typeof h&&sl(Z,h)>=0&&(g[E+1]=U1(g[E+1]))}(h,Tt,l,E,Z),ge=z1(Ie,Ye),Z?h.classBindings=ge:h.styleBindings=ge}(N,Z,h,g,ge,E)}}function jc(l,h,g,E,N){let Z=null;const ge=g.directiveEnd;let Ie=g.directiveStylingLast;for(-1===Ie?Ie=g.directiveStart:Ie++;Ie0;){const Ye=l[N],ut=Array.isArray(Ye),Tt=ut?Ye[1]:Ye,Gt=null===Tt;let oi=g[N+1];oi===Sn&&(oi=Gt?ti:void 0);let gi=Gt?h1(oi,E):Tt===E?oi:void 0;if(ut&&!Q2(gi)&&(gi=h1(Ye,E)),Q2(gi)&&(Ie=gi,ge))return Ie;const Li=l[N+1];N=ge?Es(Li):Xs(Li)}if(null!==h){let Ye=Z?h.residualClasses:h.residualStyles;null!=Ye&&(Ie=h1(Ye,E))}return Ie}function Q2(l){return void 0!==l}function jr(l,h){return 0!=(l.flags&(h?16:32))}function J2(l,h=""){const g=ki(),E=Nn(),N=l+20,Z=E.firstCreatePass?ql(E,N,1,h,null):E.data[N],ge=g[N]=function(l,h){return Zn(l)?l.createText(h):l.createTextNode(h)}(g[11],h);Oc(E,g,ge,Z),xt(Z,!1)}function qr(l){return Tl("",l,""),qr}function Tl(l,h,g){const E=ki(),N=Xl(E,l,h,g);return N!==Sn&&Ao(E,Yn(),N),Tl}function io(l,h,g,E,N){const Z=ki(),ge=function(l,h,g,E,N,Z){const Ie=Cl(l,fi(),g,N);return en(2),Ie?h+W(g)+E+W(N)+Z:Sn}(Z,l,h,g,E,N);return ge!==Sn&&Ao(Z,Yn(),ge),io}function X2(l,h,g,E,N,Z,ge,Ie,Ye){const ut=ki(),Tt=tc(ut,l,h,g,E,N,Z,ge,Ie,Ye);return Tt!==Sn&&Ao(ut,Yn(),Tt),X2}function o0(l,h,g){Os(ms,ts,Xl(ki(),l,h,g),!0)}function th(l,h,g){const E=ki();return hs(E,Zi(),h)&&Ts(Nn(),Fi(),E,l,h,E[11],g,!0),th}function Pu(l,h,g){const E=ki();if(hs(E,Zi(),h)){const Z=Nn(),ge=Fi();Ts(Z,ge,E,l,h,wd(zt(Z.data),ge,E),g,!0)}return Pu}const Sl=void 0;var D3=["en",[["a","p"],["AM","PM"],Sl],[["AM","PM"],Sl,Sl],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Sl,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Sl,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Sl,"{1} 'at' {0}",Sl],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function(l){const g=Math.floor(Math.abs(l)),E=l.toString().replace(/^[^.]*\.?/,"").length;return 1===g&&0===E?1:5}];let lc={};function h0(l){const h=function(l){return l.toLowerCase().replace(/_/g,"-")}(l);let g=g4(h);if(g)return g;const E=h.split("-")[0];if(g=g4(E),g)return g;if("en"===E)return D3;throw new Error(`Missing locale data for the locale "${l}".`)}function Fu(l){return h0(l)[Mn.PluralCase]}function g4(l){return l in lc||(lc[l]=Nt.ng&&Nt.ng.common&&Nt.ng.common.locales&&Nt.ng.common.locales[l]),lc[l]}var Mn=(()=>((Mn=Mn||{})[Mn.LocaleId=0]="LocaleId",Mn[Mn.DayPeriodsFormat=1]="DayPeriodsFormat",Mn[Mn.DayPeriodsStandalone=2]="DayPeriodsStandalone",Mn[Mn.DaysFormat=3]="DaysFormat",Mn[Mn.DaysStandalone=4]="DaysStandalone",Mn[Mn.MonthsFormat=5]="MonthsFormat",Mn[Mn.MonthsStandalone=6]="MonthsStandalone",Mn[Mn.Eras=7]="Eras",Mn[Mn.FirstDayOfWeek=8]="FirstDayOfWeek",Mn[Mn.WeekendRange=9]="WeekendRange",Mn[Mn.DateFormat=10]="DateFormat",Mn[Mn.TimeFormat=11]="TimeFormat",Mn[Mn.DateTimeFormat=12]="DateTimeFormat",Mn[Mn.NumberSymbols=13]="NumberSymbols",Mn[Mn.NumberFormats=14]="NumberFormats",Mn[Mn.CurrencyCode=15]="CurrencyCode",Mn[Mn.CurrencySymbol=16]="CurrencySymbol",Mn[Mn.CurrencyName=17]="CurrencyName",Mn[Mn.Currencies=18]="Currencies",Mn[Mn.Directionality=19]="Directionality",Mn[Mn.PluralCase=20]="PluralCase",Mn[Mn.ExtraData=21]="ExtraData",Mn))();const d0="en-US";let nh=d0;function X3(l,h,g,E,N){if(l=R(l),Array.isArray(l))for(let Z=0;Z>20;if(Fr(l)||!l.multi){const gi=new vs(Ye,N,Gc),Li=ep(Ie,h,N?Tt:Tt+oi,Gt);-1===Li?(ii(Je(ut,ge),Z,Ie),$3(Z,l,h.length),h.push(Ie),ut.directiveStart++,ut.directiveEnd++,N&&(ut.providerIndexes+=1048576),g.push(gi),ge.push(gi)):(g[Li]=gi,ge[Li]=gi)}else{const gi=ep(Ie,h,Tt+oi,Gt),Li=ep(Ie,h,Tt,Tt+oi),Ji=gi>=0&&g[gi],nn=Li>=0&&g[Li];if(N&&!nn||!N&&!Ji){ii(Je(ut,ge),Z,Ie);const mn=function(l,h,g,E,N){const Z=new vs(l,g,Gc);return Z.multi=[],Z.index=h,Z.componentProviders=0,zp(Z,N,E&&!g),Z}(N?C8:x8,g.length,N,E,Ye);!N&&nn&&(g[Li].providerFactory=mn),$3(Z,l,h.length,0),h.push(Ie),ut.directiveStart++,ut.directiveEnd++,N&&(ut.providerIndexes+=1048576),g.push(mn),ge.push(mn)}else $3(Z,l,gi>-1?gi:Li,zp(g[N?Li:gi],Ye,!N&&E));!N&&E&&nn&&g[Li].componentProviders++}}}function $3(l,h,g,E){const N=Fr(h),Z=function(l){return!!l.useClass}(h);if(N||Z){const Ye=(Z?R(h.useClass):h).prototype.ngOnDestroy;if(Ye){const ut=l.destroyHooks||(l.destroyHooks=[]);if(!N&&h.multi){const Tt=ut.indexOf(g);-1===Tt?ut.push(g,[E,Ye]):ut[Tt+1].push(E,Ye)}else ut.push(g,Ye)}}}function zp(l,h,g){return g&&l.componentProviders++,l.multi.push(h)-1}function ep(l,h,g,E){for(let N=g;N{g.providersResolver=(E,N)=>function(l,h,g){const E=Nn();if(E.firstCreatePass){const N=sn(l);X3(g,E.data,E.blueprint,N,!0),X3(h,E.data,E.blueprint,N,!1)}}(E,N?N(l):l,h)}}class Zp{}class E8{resolveComponentFactory(h){throw function(l){const h=Error(`No component factory found for ${P(l)}. Did you add it to @NgModule.entryComponents?`);return h.ngComponent=l,h}(h)}}let M4=(()=>{class l{}return l.NULL=new E8,l})();function T8(){return Zu(cr(),ki())}function Zu(l,h){return new w4(Qe(l,h))}let w4=(()=>{class l{constructor(g){this.nativeElement=g}}return l.__NG_ELEMENT_ID__=T8,l})();function S8(l){return l instanceof w4?l.nativeElement:l}class Gp{}let D8=(()=>{class l{}return l.__NG_ELEMENT_ID__=()=>function(){const l=ki(),g=ei(cr().index,l);return function(l){return l[11]}(pn(g)?g:l)}(),l})(),I8=(()=>{class l{}return l.\u0275prov=xe({token:l,providedIn:"root",factory:()=>null}),l})();class Wp{constructor(h){this.full=h,this.major=h.split(".")[0],this.minor=h.split(".")[1],this.patch=h.split(".").slice(2).join(".")}}const k8=new Wp("13.0.3"),ip={};function F3(l,h,g,E,N=!1){for(;null!==g;){const Z=h[g.index];if(null!==Z&&E.push(Xe(Z)),Pn(Z))for(let Ie=10;Ie-1&&(T1(h,E),al(g,E))}this._attachedToViewContainer=!1}gl(this._lView[1],this._lView)}onDestroy(h){hd(this._lView[1],this._lView,null,h)}markForCheck(){j1(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){p2(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(l,h,g){Kt(!0);try{p2(l,h,g)}finally{Kt(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}detachFromAppRef(){var h;this._appRef=null,Wl(this._lView[1],h=this._lView,h[11],2,null,null)}attachToAppRef(h){if(this._attachedToViewContainer)throw new Error("This view is already attached to a ViewContainer!");this._appRef=h}}class R8 extends A4{constructor(h){super(h),this._view=h}detectChanges(){Cd(this._view)}checkNoChanges(){!function(l){Kt(!0);try{Cd(l)}finally{Kt(!1)}}(this._view)}get context(){return null}}class Yp extends M4{constructor(h){super(),this.ngModule=h}resolveComponentFactory(h){const g=At(h);return new np(g,this.ngModule)}}function jp(l){const h=[];for(let g in l)l.hasOwnProperty(g)&&h.push({propName:l[g],templateName:g});return h}const N8=new Gr("SCHEDULER_TOKEN",{providedIn:"root",factory:()=>Ih});class np extends Zp{constructor(h,g){super(),this.componentDef=h,this.ngModule=g,this.componentType=h.type,this.selector=h.selectors.map(Pf).join(","),this.ngContentSelectors=h.ngContentSelectors?h.ngContentSelectors:[],this.isBoundToModule=!!g}get inputs(){return jp(this.componentDef.inputs)}get outputs(){return jp(this.componentDef.outputs)}create(h,g,E,N){const Z=(N=N||this.ngModule)?function(l,h){return{get:(g,E,N)=>{const Z=l.get(g,ip,N);return Z!==ip||E===ip?Z:h.get(g,E,N)}}}(h,N.injector):h,ge=Z.get(Gp,rs),Ie=Z.get(I8,null),Ye=ge.createRenderer(null,this.componentDef),ut=this.componentDef.selectors[0][0]||"div",Tt=E?function(l,h,g){if(Zn(l))return l.selectRootElement(h,g===ft.ShadowDom);let E="string"==typeof h?l.querySelector(h):h;return E.textContent="",E}(Ye,E,this.componentDef.encapsulation):E1(ge.createRenderer(null,this.componentDef),ut,function(l){const h=l.toLowerCase();return"svg"===h?ns:"math"===h?"http://www.w3.org/1998/MathML/":null}(ut)),Gt=this.componentDef.onPush?576:528,oi=function(l,h){return{components:[],scheduler:l||Ih,clean:h6,playerHandler:h||null,flags:0}}(),gi=Hc(0,null,null,1,0,null,null,null,null,null),Li=Nc(null,gi,oi,Gt,null,null,ge,Ye,Ie,Z);let Ji,nn;ji(Li);try{const mn=function(l,h,g,E,N,Z){const ge=g[1];g[20]=l;const Ye=ql(ge,20,2,"#host",null),ut=Ye.mergedAttrs=h.hostAttrs;null!==ut&&(q1(Ye,ut,!0),null!==l&&(ko(N,l,ut),null!==Ye.classes&&W0(N,l,Ye.classes),null!==Ye.styles&&Gh(N,l,Ye.styles)));const Tt=E.createRenderer(l,h),Gt=Nc(g,od(h),null,h.onPush?64:16,g[20],Ye,E,Tt,Z||null,null);return ge.firstCreatePass&&(ii(Je(Ye,g),ge,h.type),gd(ge,Ye),_d(Ye,g.length,1)),Y1(g,Gt),g[20]=Gt}(Tt,this.componentDef,Li,ge,Ye);if(Tt)if(E)ko(Ye,Tt,["ng-version",k8.full]);else{const{attrs:Ni,classes:En}=function(l){const h=[],g=[];let E=1,N=2;for(;E0&&W0(Ye,Tt,En.join(" "))}if(nn=mi(gi,20),void 0!==g){const Ni=nn.projection=[];for(let En=0;EnYe(ge,h)),h.contentQueries){const Ye=cr();h.contentQueries(1,ge,Ye.directiveStart)}const Ie=cr();return!Z.firstCreatePass||null===h.hostBindings&&null===h.hostAttrs||(_r(Ie.index),d2(g[1],Ie,0,Ie.directiveStart,Ie.directiveEnd,h),md(h,ge)),ge}(mn,this.componentDef,Li,oi,[S6]),Ko(gi,Li,null)}finally{wr()}return new H8(this.componentType,Ji,Zu(nn,Li),Li,nn)}}class H8 extends class{}{constructor(h,g,E,N,Z){super(),this.location=E,this._rootLView=N,this._tNode=Z,this.instance=g,this.hostView=this.changeDetectorRef=new R8(N),this.componentType=h}get injector(){return new os(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(h){this.hostView.onDestroy(h)}}class Vu{}class qp{}const Gu=new Map;class Jp extends Vu{constructor(h,g){super(),this._parent=g,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Yp(this);const E=Ft(h);this._bootstrapComponents=uo(E.bootstrap),this._r3Injector=Dd(h,g,[{provide:Vu,useValue:this},{provide:M4,useValue:this.componentFactoryResolver}],P(h)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(h)}get(h,g=Zs.THROW_IF_NOT_FOUND,E=ue.Default){return h===Zs||h===Vu||h===_2?this:this._r3Injector.get(h,g,E)}destroy(){const h=this._r3Injector;!h.destroyed&&h.destroy(),this.destroyCbs.forEach(g=>g()),this.destroyCbs=null}onDestroy(h){this.destroyCbs.push(h)}}class rp extends qp{constructor(h){super(),this.moduleType=h,null!==Ft(h)&&function(l){const h=new Set;!function g(E){const N=Ft(E,!0),Z=N.id;null!==Z&&(function(l,h,g){if(h&&h!==g)throw new Error(`Duplicate module registered for ${l} - ${P(h)} vs ${P(h.name)}`)}(Z,Gu.get(Z),E),Gu.set(Z,E));const ge=uo(N.imports);for(const Ie of ge)h.has(Ie)||(h.add(Ie),g(Ie))}(l)}(h)}create(h){return new Jp(this.moduleType,h)}}function Xp(l,h,g){const E=Jt()+l,N=ki();return N[E]===Sn?mo(N,E,g?h.call(g):h()):function(l,h){return l[h]}(N,E)}function $p(l,h,g,E){return im(ki(),Jt(),l,h,g,E)}function em(l,h,g,E,N){return nm(ki(),Jt(),l,h,g,E,N)}function tm(l,h,g,E,N,Z){return rm(ki(),Jt(),l,h,g,E,N,Z)}function E4(l,h){const g=l[h];return g===Sn?void 0:g}function im(l,h,g,E,N,Z){const ge=h+g;return hs(l,ge,N)?mo(l,ge+1,Z?E.call(Z,N):E(N)):E4(l,ge+1)}function nm(l,h,g,E,N,Z,ge){const Ie=h+g;return Cl(l,Ie,N,Z)?mo(l,Ie+2,ge?E.call(ge,N,Z):E(N,Z)):E4(l,Ie+2)}function rm(l,h,g,E,N,Z,ge,Ie){const Ye=h+g;return function(l,h,g,E,N){const Z=Cl(l,h,g,E);return hs(l,h+2,N)||Z}(l,Ye,N,Z,ge)?mo(l,Ye+3,Ie?E.call(Ie,N,Z,ge):E(N,Z,ge)):E4(l,Ye+3)}function om(l,h){const g=Nn();let E;const N=l+20;g.firstCreatePass?(E=function(l,h){if(h)for(let g=h.length-1;g>=0;g--){const E=h[g];if(l===E.name)return E}}(h,g.pipeRegistry),g.data[N]=E,E.onDestroy&&(g.destroyHooks||(g.destroyHooks=[])).push(N,E.onDestroy)):E=g.data[N];const Z=E.factory||(E.factory=Rr(E.type)),ge=Y(Gc);try{const Ie=vo(!1),Ye=Z();return vo(Ie),function(l,h,g,E){g>=l.data.length&&(l.data[g]=null,l.blueprint[g]=null),h[g]=E}(g,ki(),N,Ye),Ye}finally{Y(ge)}}function lm(l,h,g){const E=l+20,N=ki(),Z=Ct(N,E);return T4(N,E)?im(N,Jt(),h,Z.transform,g,Z):Z.transform(g)}function cm(l,h,g,E){const N=l+20,Z=ki(),ge=Ct(Z,N);return T4(Z,N)?nm(Z,Jt(),h,ge.transform,g,E,ge):ge.transform(g,E)}function hm(l,h,g,E,N){const Z=l+20,ge=ki(),Ie=Ct(ge,Z);return T4(ge,Z)?rm(ge,Jt(),h,Ie.transform,g,E,N,Ie):Ie.transform(g,E,N)}function T4(l,h){return l[1].data[h].pure}function ap(l){return h=>{setTimeout(l,void 0,h)}}const hc=class extends e.x{constructor(h=!1){super(),this.__isAsync=h}emit(h){super.next(h)}subscribe(h,g,E){var N,Z,ge;let Ie=h,Ye=g||(()=>null),ut=E;if(h&&"object"==typeof h){const Gt=h;Ie=null===(N=Gt.next)||void 0===N?void 0:N.bind(Gt),Ye=null===(Z=Gt.error)||void 0===Z?void 0:Z.bind(Gt),ut=null===(ge=Gt.complete)||void 0===ge?void 0:ge.bind(Gt)}this.__isAsync&&(Ye=ap(Ye),Ie&&(Ie=ap(Ie)),ut&&(ut=ap(ut)));const Tt=super.subscribe({next:Ie,error:Ye,complete:ut});return h instanceof t.w0&&h.add(Tt),Tt}};function X8(){return this._results[Ql()]()}class B3{constructor(h=!1){this._emitDistinctChangesOnly=h,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const g=Ql(),E=B3.prototype;E[g]||(E[g]=X8)}get changes(){return this._changes||(this._changes=new hc)}get(h){return this._results[h]}map(h){return this._results.map(h)}filter(h){return this._results.filter(h)}find(h){return this._results.find(h)}reduce(h,g){return this._results.reduce(h,g)}forEach(h){this._results.forEach(h)}some(h){return this._results.some(h)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(h,g){const E=this;E.dirty=!1;const N=bs(h);(this._changesDetected=!function(l,h,g){if(l.length!==h.length)return!1;for(let E=0;E{class l{}return l.__NG_ELEMENT_ID__=tg,l})();const $8=S4,eg=class extends $8{constructor(h,g,E){super(),this._declarationLView=h,this._declarationTContainer=g,this.elementRef=E}createEmbeddedView(h){const g=this._declarationTContainer.tViews,E=Nc(this._declarationLView,g,h,16,null,g.declTNode,null,null,null,null);E[17]=this._declarationLView[this._declarationTContainer.index];const Z=this._declarationLView[19];return null!==Z&&(E[19]=Z.createEmbeddedView(g)),Ko(g,E,h),new A4(E)}};function tg(){return H3(cr(),ki())}function H3(l,h){return 4&l.type?new eg(h,l,Zu(l,h)):null}let z3=(()=>{class l{}return l.__NG_ELEMENT_ID__=ig,l})();function ig(){return fm(cr(),ki())}const ng=z3,dm=class extends ng{constructor(h,g,E){super(),this._lContainer=h,this._hostTNode=g,this._hostLView=E}get element(){return Zu(this._hostTNode,this._hostLView)}get injector(){return new os(this._hostTNode,this._hostLView)}get parentInjector(){const h=qt(this._hostTNode,this._hostLView);if(Nl(h)){const g=so(h,this._hostLView),E=ao(h);return new os(g[1].data[E+8],g)}return new os(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(h){const g=um(this._lContainer);return null!==g&&g[h]||null}get length(){return this._lContainer.length-10}createEmbeddedView(h,g,E){const N=h.createEmbeddedView(g||{});return this.insert(N,E),N}createComponent(h,g,E,N,Z){const ge=h&&!("function"==typeof h);let Ie;if(ge)Ie=g;else{const Gt=g||{};Ie=Gt.index,E=Gt.injector,N=Gt.projectableNodes,Z=Gt.ngModuleRef}const Ye=ge?h:new np(At(h)),ut=E||this.parentInjector;if(!Z&&null==Ye.ngModule&&ut){const Gt=ut.get(Vu,null);Gt&&(Z=Gt)}const Tt=Ye.create(ut,N,void 0,Z);return this.insert(Tt.hostView,Ie),Tt}insert(h,g){const E=h._lView,N=E[1];if(Pn(E[3])){const Tt=this.indexOf(h);if(-1!==Tt)this.detach(Tt);else{const Gt=E[3],oi=new dm(Gt,Gt[6],Gt[3]);oi.detach(oi.indexOf(h))}}const Z=this._adjustIndex(g),ge=this._lContainer;!function(l,h,g,E){const N=10+E,Z=g.length;E>0&&(g[N-1][4]=h),E0)E.push(ge[Ie/2]);else{const ut=Z[Ie+1],Tt=h[-Ye];for(let Gt=10;Gt{class l{constructor(g){this.appInits=g,this.resolve=V3,this.reject=V3,this.initialized=!1,this.done=!1,this.donePromise=new Promise((E,N)=>{this.resolve=E,this.reject=N})}runInitializers(){if(this.initialized)return;const g=[],E=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let N=0;N{Z.subscribe({complete:Ie,error:Ye})});g.push(ge)}}Promise.all(g).then(()=>{E()}).catch(N=>{this.reject(N)}),0===g.length&&E(),this.initialized=!0}}return l.\u0275fac=function(g){return new(g||l)(Ia(_p,8))},l.\u0275prov=xe({token:l,factory:l.\u0275fac}),l})();const zm=new Gr("AppId"),Dg={provide:zm,useFactory:function(){return`${vp()}${vp()}${vp()}`},deps:[]};function vp(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Um=new Gr("Platform Initializer"),Zm=new Gr("Platform ID"),Vm=new Gr("appBootstrapListener");let Gm=(()=>{class l{log(g){console.log(g)}warn(g){console.warn(g)}}return l.\u0275fac=function(g){return new(g||l)},l.\u0275prov=xe({token:l,factory:l.\u0275fac}),l})();const G3=new Gr("LocaleId"),Wm=new Gr("DefaultCurrencyCode");class Lg{constructor(h,g){this.ngModuleFactory=h,this.componentFactories=g}}let yp=(()=>{class l{compileModuleSync(g){return new rp(g)}compileModuleAsync(g){return Promise.resolve(this.compileModuleSync(g))}compileModuleAndAllComponentsSync(g){const E=this.compileModuleSync(g),Z=uo(Ft(g).declarations).reduce((ge,Ie)=>{const Ye=At(Ie);return Ye&&ge.push(new np(Ye)),ge},[]);return new Lg(E,Z)}compileModuleAndAllComponentsAsync(g){return Promise.resolve(this.compileModuleAndAllComponentsSync(g))}clearCache(){}clearCacheFor(g){}getModuleId(g){}}return l.\u0275fac=function(g){return new(g||l)},l.\u0275prov=xe({token:l,factory:l.\u0275fac}),l})();const Ig=(()=>Promise.resolve(0))();function bp(l){"undefined"==typeof Zone?Ig.then(()=>{l&&l.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",l)}class Lo{constructor({enableLongStackTrace:h=!1,shouldCoalesceEventChangeDetection:g=!1,shouldCoalesceRunChangeDetection:E=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new hc(!1),this.onMicrotaskEmpty=new hc(!1),this.onStable=new hc(!1),this.onError=new hc(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const N=this;N._nesting=0,N._outer=N._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(N._inner=N._inner.fork(new Zone.TaskTrackingZoneSpec)),h&&Zone.longStackTraceZoneSpec&&(N._inner=N._inner.fork(Zone.longStackTraceZoneSpec)),N.shouldCoalesceEventChangeDetection=!E&&g,N.shouldCoalesceRunChangeDetection=E,N.lastRequestAnimationFrameId=-1,N.nativeRequestAnimationFrame=function(){let l=Nt.requestAnimationFrame,h=Nt.cancelAnimationFrame;if("undefined"!=typeof Zone&&l&&h){const g=l[Zone.__symbol__("OriginalDelegate")];g&&(l=g);const E=h[Zone.__symbol__("OriginalDelegate")];E&&(h=E)}return{nativeRequestAnimationFrame:l,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function(l){const h=()=>{!function(l){l.isCheckStableRunning||-1!==l.lastRequestAnimationFrameId||(l.lastRequestAnimationFrameId=l.nativeRequestAnimationFrame.call(Nt,()=>{l.fakeTopEventTask||(l.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{l.lastRequestAnimationFrameId=-1,Cp(l),l.isCheckStableRunning=!0,xp(l),l.isCheckStableRunning=!1},void 0,()=>{},()=>{})),l.fakeTopEventTask.invoke()}),Cp(l))}(l)};l._inner=l._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(g,E,N,Z,ge,Ie)=>{try{return Ym(l),g.invokeTask(N,Z,ge,Ie)}finally{(l.shouldCoalesceEventChangeDetection&&"eventTask"===Z.type||l.shouldCoalesceRunChangeDetection)&&h(),jm(l)}},onInvoke:(g,E,N,Z,ge,Ie,Ye)=>{try{return Ym(l),g.invoke(N,Z,ge,Ie,Ye)}finally{l.shouldCoalesceRunChangeDetection&&h(),jm(l)}},onHasTask:(g,E,N,Z)=>{g.hasTask(N,Z),E===N&&("microTask"==Z.change?(l._hasPendingMicrotasks=Z.microTask,Cp(l),xp(l)):"macroTask"==Z.change&&(l.hasPendingMacrotasks=Z.macroTask))},onHandleError:(g,E,N,Z)=>(g.handleError(N,Z),l.runOutsideAngular(()=>l.onError.emit(Z)),!1)})}(N)}static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Lo.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(Lo.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(h,g,E){return this._inner.run(h,g,E)}runTask(h,g,E,N){const Z=this._inner,ge=Z.scheduleEventTask("NgZoneEvent: "+N,h,Rg,V3,V3);try{return Z.runTask(ge,g,E)}finally{Z.cancelTask(ge)}}runGuarded(h,g,E){return this._inner.runGuarded(h,g,E)}runOutsideAngular(h){return this._outer.run(h)}}const Rg={};function xp(l){if(0==l._nesting&&!l.hasPendingMicrotasks&&!l.isStable)try{l._nesting++,l.onMicrotaskEmpty.emit(null)}finally{if(l._nesting--,!l.hasPendingMicrotasks)try{l.runOutsideAngular(()=>l.onStable.emit(null))}finally{l.isStable=!0}}}function Cp(l){l.hasPendingMicrotasks=!!(l._hasPendingMicrotasks||(l.shouldCoalesceEventChangeDetection||l.shouldCoalesceRunChangeDetection)&&-1!==l.lastRequestAnimationFrameId)}function Ym(l){l._nesting++,l.isStable&&(l.isStable=!1,l.onUnstable.emit(null))}function jm(l){l._nesting--,xp(l)}class Fg{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new hc,this.onMicrotaskEmpty=new hc,this.onStable=new hc,this.onError=new hc}run(h,g,E){return h.apply(g,E)}runGuarded(h,g,E){return h.apply(g,E)}runOutsideAngular(h){return h()}runTask(h,g,E,N){return h.apply(g,E)}}let qm=(()=>{class l{constructor(g){this._ngZone=g,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),g.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Lo.assertNotInAngularZone(),bp(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())bp(()=>{for(;0!==this._callbacks.length;){let g=this._callbacks.pop();clearTimeout(g.timeoutId),g.doneCb(this._didWork)}this._didWork=!1});else{let g=this.getPendingTasks();this._callbacks=this._callbacks.filter(E=>!E.updateCb||!E.updateCb(g)||(clearTimeout(E.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(g=>({source:g.source,creationLocation:g.creationLocation,data:g.data})):[]}addCallback(g,E,N){let Z=-1;E&&E>0&&(Z=setTimeout(()=>{this._callbacks=this._callbacks.filter(ge=>ge.timeoutId!==Z),g(this._didWork,this.getPendingTasks())},E)),this._callbacks.push({doneCb:g,timeoutId:Z,updateCb:N})}whenStable(g,E,N){if(N&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(g,E,N),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(g,E,N){return[]}}return l.\u0275fac=function(g){return new(g||l)(Ia(Lo))},l.\u0275prov=xe({token:l,factory:l.\u0275fac}),l})(),Km=(()=>{class l{constructor(){this._applications=new Map,Mp.addToWindow(this)}registerApplication(g,E){this._applications.set(g,E)}unregisterApplication(g){this._applications.delete(g)}unregisterAllApplications(){this._applications.clear()}getTestability(g){return this._applications.get(g)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(g,E=!0){return Mp.findTestabilityInTree(this,g,E)}}return l.\u0275fac=function(g){return new(g||l)},l.\u0275prov=xe({token:l,factory:l.\u0275fac}),l})();class Bg{addToWindow(h){}findTestabilityInTree(h,g,E){return null}}function Hg(l){Mp=l}let Ol,Mp=new Bg;const Qm=new Gr("AllowMultipleToken");class Vg{constructor(h,g){this.name=h,this.token=g}}function Jm(l,h,g=[]){const E=`Platform: ${h}`,N=new Gr(E);return(Z=[])=>{let ge=Xm();if(!ge||ge.injector.get(Qm,!1))if(l)l(g.concat(Z).concat({provide:N,useValue:!0}));else{const Ie=g.concat(Z).concat({provide:N,useValue:!0},{provide:v2,useValue:"platform"});!function(l){if(Ol&&!Ol.destroyed&&!Ol.injector.get(Qm,!1))throw new w("400","");Ol=l.get($m);const h=l.get(Um,null);h&&h.forEach(g=>g())}(Zs.create({providers:Ie,name:E}))}return function(l){const h=Xm();if(!h)throw new w("401","");return h}()}}function Xm(){return Ol&&!Ol.destroyed?Ol:null}let $m=(()=>{class l{constructor(g){this._injector=g,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(g,E){const Ie=function(l,h){let g;return g="noop"===l?new Fg:("zone.js"===l?void 0:l)||new Lo({enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!!(null==h?void 0:h.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==h?void 0:h.ngZoneRunCoalescing)}),g}(E?E.ngZone:void 0,{ngZoneEventCoalescing:E&&E.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:E&&E.ngZoneRunCoalescing||!1}),Ye=[{provide:Lo,useValue:Ie}];return Ie.run(()=>{const ut=Zs.create({providers:Ye,parent:this.injector,name:g.moduleType.name}),Tt=g.create(ut),Gt=Tt.injector.get(Sc,null);if(!Gt)throw new w("402","");return Ie.runOutsideAngular(()=>{const oi=Ie.onError.subscribe({next:gi=>{Gt.handleError(gi)}});Tt.onDestroy(()=>{wp(this._modules,Tt),oi.unsubscribe()})}),function(l,h,g){try{const E=g();return B2(E)?E.catch(N=>{throw h.runOutsideAngular(()=>l.handleError(N)),N}):E}catch(E){throw h.runOutsideAngular(()=>l.handleError(E)),E}}(Gt,Ie,()=>{const oi=Tt.injector.get(Yu);return oi.runInitializers(),oi.donePromise.then(()=>(function(l){b(l,"Expected localeId to be defined"),"string"==typeof l&&(nh=l.toLowerCase().replace(/_/g,"-"))}(Tt.injector.get(G3,d0)||d0),this._moduleDoBootstrap(Tt),Tt))})})}bootstrapModule(g,E=[]){const N=e8({},E);return function(l,h,g){const E=new rp(g);return Promise.resolve(E)}(0,0,g).then(Z=>this.bootstrapModuleFactory(Z,N))}_moduleDoBootstrap(g){const E=g.injector.get(L4);if(g._bootstrapComponents.length>0)g._bootstrapComponents.forEach(N=>E.bootstrap(N));else{if(!g.instance.ngDoBootstrap)throw new w("403","");g.instance.ngDoBootstrap(E)}this._modules.push(g)}onDestroy(g){this._destroyListeners.push(g)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new w("404","");this._modules.slice().forEach(g=>g.destroy()),this._destroyListeners.forEach(g=>g()),this._destroyed=!0}get destroyed(){return this._destroyed}}return l.\u0275fac=function(g){return new(g||l)(Ia(Zs))},l.\u0275prov=xe({token:l,factory:l.\u0275fac}),l})();function e8(l,h){return Array.isArray(h)?h.reduce(e8,l):Object.assign(Object.assign({},l),h)}let L4=(()=>{class l{constructor(g,E,N,Z,ge){this._zone=g,this._injector=E,this._exceptionHandler=N,this._componentFactoryResolver=Z,this._initStatus=ge,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const Ie=new v.y(ut=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{ut.next(this._stable),ut.complete()})}),Ye=new v.y(ut=>{let Tt;this._zone.runOutsideAngular(()=>{Tt=this._zone.onStable.subscribe(()=>{Lo.assertNotInAngularZone(),bp(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,ut.next(!0))})})});const Gt=this._zone.onUnstable.subscribe(()=>{Lo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{ut.next(!1)}))});return()=>{Tt.unsubscribe(),Gt.unsubscribe()}});this.isStable=(0,M.T)(Ie,Ye.pipe((0,s.B)()))}bootstrap(g,E){if(!this._initStatus.done)throw new w("405","");let N;N=g instanceof Zp?g:this._componentFactoryResolver.resolveComponentFactory(g),this.componentTypes.push(N.componentType);const Z=function(l){return l.isBoundToModule}(N)?void 0:this._injector.get(Vu),Ie=N.create(Zs.NULL,[],E||N.selector,Z),Ye=Ie.location.nativeElement,ut=Ie.injector.get(qm,null),Tt=ut&&Ie.injector.get(Km);return ut&&Tt&&Tt.registerApplication(Ye,ut),Ie.onDestroy(()=>{this.detachView(Ie.hostView),wp(this.components,Ie),Tt&&Tt.unregisterApplication(Ye)}),this._loadComponent(Ie),Ie}tick(){if(this._runningTick)throw new w("101","");try{this._runningTick=!0;for(let g of this._views)g.detectChanges()}catch(g){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(g))}finally{this._runningTick=!1}}attachView(g){const E=g;this._views.push(E),E.attachToAppRef(this)}detachView(g){const E=g;wp(this._views,E),E.detachFromAppRef()}_loadComponent(g){this.attachView(g.hostView),this.tick(),this.components.push(g),this._injector.get(Vm,[]).concat(this._bootstrapListeners).forEach(N=>N(g))}ngOnDestroy(){this._views.slice().forEach(g=>g.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return l.\u0275fac=function(g){return new(g||l)(Ia(Lo),Ia(Zs),Ia(Sc),Ia(M4),Ia(Yu))},l.\u0275prov=xe({token:l,factory:l.\u0275fac}),l})();function wp(l,h){const g=l.indexOf(h);g>-1&&l.splice(g,1)}let i8=!0,n8=!1;function Kg(){return n8=!0,i8}function Qg(){if(n8)throw new Error("Cannot enable prod mode after platform setup.");i8=!1}let Jg=(()=>{class l{}return l.__NG_ELEMENT_ID__=Xg,l})();function Xg(l){return function(l,h,g){if(wi(l)&&!g){const E=ei(l.index,h);return new A4(E,E)}return 47&l.type?new A4(h[16],h):null}(cr(),ki(),16==(16&l))}class c8{constructor(){}supports(h){return Zc(h)}create(h){return new a5(h)}}const r5=(l,h)=>h;class a5{constructor(h){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=h||r5}forEachItem(h){let g;for(g=this._itHead;null!==g;g=g._next)h(g)}forEachOperation(h){let g=this._itHead,E=this._removalsHead,N=0,Z=null;for(;g||E;){const ge=!E||g&&g.currentIndex{ge=this._trackByFn(N,Ie),null!==g&&Object.is(g.trackById,ge)?(E&&(g=this._verifyReinsertion(g,Ie,ge,N)),Object.is(g.item,Ie)||this._addIdentityChange(g,Ie)):(g=this._mismatch(g,Ie,ge,N),E=!0),g=g._next,N++}),this.length=N;return this._truncate(g),this.collection=h,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let h;for(h=this._previousItHead=this._itHead;null!==h;h=h._next)h._nextPrevious=h._next;for(h=this._additionsHead;null!==h;h=h._nextAdded)h.previousIndex=h.currentIndex;for(this._additionsHead=this._additionsTail=null,h=this._movesHead;null!==h;h=h._nextMoved)h.previousIndex=h.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(h,g,E,N){let Z;return null===h?Z=this._itTail:(Z=h._prev,this._remove(h)),null!==(h=null===this._unlinkedRecords?null:this._unlinkedRecords.get(E,null))?(Object.is(h.item,g)||this._addIdentityChange(h,g),this._reinsertAfter(h,Z,N)):null!==(h=null===this._linkedRecords?null:this._linkedRecords.get(E,N))?(Object.is(h.item,g)||this._addIdentityChange(h,g),this._moveAfter(h,Z,N)):h=this._addAfter(new s5(g,E),Z,N),h}_verifyReinsertion(h,g,E,N){let Z=null===this._unlinkedRecords?null:this._unlinkedRecords.get(E,null);return null!==Z?h=this._reinsertAfter(Z,h._prev,N):h.currentIndex!=N&&(h.currentIndex=N,this._addToMoves(h,N)),h}_truncate(h){for(;null!==h;){const g=h._next;this._addToRemovals(this._unlink(h)),h=g}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(h,g,E){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(h);const N=h._prevRemoved,Z=h._nextRemoved;return null===N?this._removalsHead=Z:N._nextRemoved=Z,null===Z?this._removalsTail=N:Z._prevRemoved=N,this._insertAfter(h,g,E),this._addToMoves(h,E),h}_moveAfter(h,g,E){return this._unlink(h),this._insertAfter(h,g,E),this._addToMoves(h,E),h}_addAfter(h,g,E){return this._insertAfter(h,g,E),this._additionsTail=null===this._additionsTail?this._additionsHead=h:this._additionsTail._nextAdded=h,h}_insertAfter(h,g,E){const N=null===g?this._itHead:g._next;return h._next=N,h._prev=g,null===N?this._itTail=h:N._prev=h,null===g?this._itHead=h:g._next=h,null===this._linkedRecords&&(this._linkedRecords=new h8),this._linkedRecords.put(h),h.currentIndex=E,h}_remove(h){return this._addToRemovals(this._unlink(h))}_unlink(h){null!==this._linkedRecords&&this._linkedRecords.remove(h);const g=h._prev,E=h._next;return null===g?this._itHead=E:g._next=E,null===E?this._itTail=g:E._prev=g,h}_addToMoves(h,g){return h.previousIndex===g||(this._movesTail=null===this._movesTail?this._movesHead=h:this._movesTail._nextMoved=h),h}_addToRemovals(h){return null===this._unlinkedRecords&&(this._unlinkedRecords=new h8),this._unlinkedRecords.put(h),h.currentIndex=null,h._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=h,h._prevRemoved=null):(h._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=h),h}_addIdentityChange(h,g){return h.item=g,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=h:this._identityChangesTail._nextIdentityChange=h,h}}class s5{constructor(h,g){this.item=h,this.trackById=g,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class o5{constructor(){this._head=null,this._tail=null}add(h){null===this._head?(this._head=this._tail=h,h._nextDup=null,h._prevDup=null):(this._tail._nextDup=h,h._prevDup=this._tail,h._nextDup=null,this._tail=h)}get(h,g){let E;for(E=this._head;null!==E;E=E._nextDup)if((null===g||g<=E.currentIndex)&&Object.is(E.trackById,h))return E;return null}remove(h){const g=h._prevDup,E=h._nextDup;return null===g?this._head=E:g._nextDup=E,null===E?this._tail=g:E._prevDup=g,null===this._head}}class h8{constructor(){this.map=new Map}put(h){const g=h.trackById;let E=this.map.get(g);E||(E=new o5,this.map.set(g,E)),E.add(h)}get(h,g){const N=this.map.get(h);return N?N.get(h,g):null}remove(h){const g=h.trackById;return this.map.get(g).remove(h)&&this.map.delete(g),h}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function d8(l,h,g){const E=l.previousIndex;if(null===E)return E;let N=0;return g&&E{if(g&&g.key===N)this._maybeAddToChanges(g,E),this._appendAfter=g,g=g._next;else{const Z=this._getOrCreateRecordForKey(N,E);g=this._insertBeforeOrAppend(g,Z)}}),g){g._prev&&(g._prev._next=null),this._removalsHead=g;for(let E=g;null!==E;E=E._nextRemoved)E===this._mapHead&&(this._mapHead=null),this._records.delete(E.key),E._nextRemoved=E._next,E.previousValue=E.currentValue,E.currentValue=null,E._prev=null,E._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(h,g){if(h){const E=h._prev;return g._next=h,g._prev=E,h._prev=g,E&&(E._next=g),h===this._mapHead&&(this._mapHead=g),this._appendAfter=h,h}return this._appendAfter?(this._appendAfter._next=g,g._prev=this._appendAfter):this._mapHead=g,this._appendAfter=g,null}_getOrCreateRecordForKey(h,g){if(this._records.has(h)){const N=this._records.get(h);this._maybeAddToChanges(N,g);const Z=N._prev,ge=N._next;return Z&&(Z._next=ge),ge&&(ge._prev=Z),N._next=null,N._prev=null,N}const E=new c5(h);return this._records.set(h,E),E.currentValue=g,this._addToAdditions(E),E}_reset(){if(this.isDirty){let h;for(this._previousMapHead=this._mapHead,h=this._previousMapHead;null!==h;h=h._next)h._nextPrevious=h._next;for(h=this._changesHead;null!==h;h=h._nextChanged)h.previousValue=h.currentValue;for(h=this._additionsHead;null!=h;h=h._nextAdded)h.previousValue=h.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(h,g){Object.is(g,h.currentValue)||(h.previousValue=h.currentValue,h.currentValue=g,this._addToChanges(h))}_addToAdditions(h){null===this._additionsHead?this._additionsHead=this._additionsTail=h:(this._additionsTail._nextAdded=h,this._additionsTail=h)}_addToChanges(h){null===this._changesHead?this._changesHead=this._changesTail=h:(this._changesTail._nextChanged=h,this._changesTail=h)}_forEach(h,g){h instanceof Map?h.forEach(g):Object.keys(h).forEach(E=>g(h[E],E))}}class c5{constructor(h){this.key=h,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function f8(){return new Y3([new c8])}let Y3=(()=>{class l{constructor(g){this.factories=g}static create(g,E){if(null!=E){const N=E.factories.slice();g=g.concat(N)}return new l(g)}static extend(g){return{provide:l,useFactory:E=>l.create(g,E||f8()),deps:[[l,new Us,new xo]]}}find(g){const E=this.factories.find(N=>N.supports(g));if(null!=E)return E;throw new Error(`Cannot find a differ supporting object '${g}' of type '${function(l){return l.name||typeof l}(g)}'`)}}return l.\u0275prov=xe({token:l,providedIn:"root",factory:f8}),l})();function p8(){return new j3([new u8])}let j3=(()=>{class l{constructor(g){this.factories=g}static create(g,E){if(E){const N=E.factories.slice();g=g.concat(N)}return new l(g)}static extend(g){return{provide:l,useFactory:E=>l.create(g,E||p8()),deps:[[l,new Us,new xo]]}}find(g){const E=this.factories.find(N=>N.supports(g));if(E)return E;throw new Error(`Cannot find a differ supporting object '${g}'`)}}return l.\u0275prov=xe({token:l,providedIn:"root",factory:p8}),l})();const d5=[new u8],f5=new Y3([new c8]),p5=new j3(d5),m5=Jm(null,"core",[{provide:Zm,useValue:"unknown"},{provide:$m,deps:[Zs]},{provide:Km,deps:[]},{provide:Gm,deps:[]}]),b5=[{provide:L4,useClass:L4,deps:[Lo,Zs,Sc,M4,Yu]},{provide:N8,deps:[Lo],useFactory:function(l){let h=[];return l.onStable.subscribe(()=>{for(;h.length;)h.pop()()}),function(g){h.push(g)}}},{provide:Yu,useClass:Yu,deps:[[new xo,_p]]},{provide:yp,useClass:yp,deps:[]},Dg,{provide:Y3,useFactory:function(){return f5},deps:[]},{provide:j3,useFactory:function(){return p5},deps:[]},{provide:G3,useFactory:function(l){return l||"undefined"!=typeof $localize&&$localize.locale||d0},deps:[[new bo(G3),new xo,new Us]]},{provide:Wm,useValue:"USD"}];let C5=(()=>{class l{constructor(g){}}return l.\u0275fac=function(g){return new(g||l)(Ia(L4))},l.\u0275mod=lt({type:l}),l.\u0275inj=Fe({providers:b5}),l})()},9042:(Ue,K,m)=>{"use strict";function e(O){for(let T in O){let R=O[T]||"";switch(T){case"display":O.display="flex"===R?["-webkit-flex","flex"]:"inline-flex"===R?["-webkit-inline-flex","inline-flex"]:R;break;case"align-items":case"align-self":case"align-content":case"flex":case"flex-basis":case"flex-flow":case"flex-grow":case"flex-shrink":case"flex-wrap":case"justify-content":O["-webkit-"+T]=R;break;case"flex-direction":R=R||"row",O["-webkit-flex-direction"]=R,O["flex-direction"]=R;break;case"order":O.order=O["-webkit-"+T]=isNaN(+R)?"0":R}}return O}m.d(K,{iQ:()=>v,GK:()=>e,Ar:()=>M,kt:()=>o,tj:()=>C});const t="inline",v=["row","column","row-reverse","column-reverse"];function M(O){let[T,R,S]=s(O);return function(O,T=null,R=!1){return{display:R?"inline-flex":"flex","box-sizing":"border-box","flex-direction":O,"flex-wrap":T||null}}(T,R,S)}function s(O){O=O?O.toLowerCase():"";let[T,R,S]=O.split(" ");return v.find(D=>D===T)||(T=v[0]),R===t&&(R=S!==t?S:"",S=t),[T,c(R),!!S]}function C(O){let[T]=s(O);return T.indexOf("row")>-1}function c(O){if(O)switch(O.toLowerCase()){case"reverse":case"wrap-reverse":case"reverse-wrap":O="wrap-reverse";break;case"no":case"none":case"nowrap":O="nowrap";break;default:O="wrap"}return O}function o(O,...T){if(null==O)throw TypeError("Cannot convert undefined or null to object");for(let R of T)if(null!=R)for(let S in R)R.hasOwnProperty(S)&&(O[S]=R[S]);return O}},3270:(Ue,K,m)=>{"use strict";m.d(K,{Bs:()=>ee,iR:()=>Ne,IR:()=>S,g5:()=>U,WU:()=>G,yB:()=>We,wY:()=>W,QI:()=>_e,RK:()=>fe,Ot:()=>ze});var e=m(5e3),t=m(9808),v=m(1135),M=m(8306),s=m(6451),C=m(7579),c=m(9042),P=m(9300),o=m(8505);const T={provide:e.tb,useFactory:function(it,ft){return()=>{if((0,t.NF)(ft)){const nt=Array.from(it.querySelectorAll(`[class*=${R}]`)),st=/\bflex-layout-.+?\b/g;nt.forEach(wt=>{wt.classList.contains(`${R}ssr`)&&wt.parentNode?wt.parentNode.removeChild(wt):wt.className.replace(st,"")})}}},deps:[t.K0,e.Lbi],multi:!0},R="flex-layout-";let S=(()=>{class it{}return it.\u0275fac=function(nt){return new(nt||it)},it.\u0275mod=e.oAB({type:it}),it.\u0275inj=e.cJS({providers:[T]}),it})();class D{constructor(ft=!1,nt="all",st="",wt="",Bt=0){this.matches=ft,this.mediaQuery=nt,this.mqAlias=st,this.suffix=wt,this.priority=Bt,this.property=""}clone(){return new D(this.matches,this.mediaQuery,this.mqAlias,this.suffix)}}let w=(()=>{class it{constructor(){this.stylesheet=new Map}addStyleToElement(nt,st,wt){const Bt=this.stylesheet.get(nt);Bt?Bt.set(st,wt):this.stylesheet.set(nt,new Map([[st,wt]]))}clearStyles(){this.stylesheet.clear()}getStyleForElement(nt,st){const wt=this.stylesheet.get(nt);let Bt="";if(wt){const Nt=wt.get(st);("number"==typeof Nt||"string"==typeof Nt)&&(Bt=Nt+"")}return Bt}}return it.\u0275fac=function(nt){return new(nt||it)},it.\u0275prov=e.Yz7({token:it,factory:it.\u0275fac,providedIn:"root"}),it})();const U={addFlexToParent:!0,addOrientationBps:!1,disableDefaultBps:!1,disableVendorPrefixes:!1,serverLoaded:!1,useColumnBasisZero:!0,printWithBreakpoints:[],mediaTriggerAutoRestore:!0,ssrObserveBreakpoints:[]},G=new e.OlP("Flex Layout token, config options for the library",{providedIn:"root",factory:()=>U}),W=new e.OlP("FlexLayoutServerLoaded",{providedIn:"root",factory:()=>!1}),ee=new e.OlP("Flex Layout token, collect all breakpoints into one provider",{providedIn:"root",factory:()=>null});function ie(it,ft){return it=it?it.clone():new D,ft&&(it.mqAlias=ft.alias,it.mediaQuery=ft.mediaQuery,it.suffix=ft.suffix,it.priority=ft.priority),it}class _e{constructor(){this.shouldCache=!0}sideEffect(ft,nt,st){}}let fe=(()=>{class it{constructor(nt,st,wt,Bt){this._serverStylesheet=nt,this._serverModuleLoaded=st,this._platformId=wt,this.layoutConfig=Bt}applyStyleToElement(nt,st,wt=null){let Bt={};"string"==typeof st&&(Bt[st]=wt,st=Bt),Bt=this.layoutConfig.disableVendorPrefixes?st:(0,c.GK)(st),this._applyMultiValueStyleToElement(Bt,nt)}applyStyleToElements(nt,st=[]){const wt=this.layoutConfig.disableVendorPrefixes?nt:(0,c.GK)(nt);st.forEach(Bt=>{this._applyMultiValueStyleToElement(wt,Bt)})}getFlowDirection(nt){const st="flex-direction";let wt=this.lookupStyle(nt,st);return[wt||"row",this.lookupInlineStyle(nt,st)||(0,t.PM)(this._platformId)&&this._serverModuleLoaded?wt:""]}hasWrap(nt){return"wrap"===this.lookupStyle(nt,"flex-wrap")}lookupAttributeValue(nt,st){return nt.getAttribute(st)||""}lookupInlineStyle(nt,st){return(0,t.NF)(this._platformId)?nt.style.getPropertyValue(st):this._getServerStyle(nt,st)}lookupStyle(nt,st,wt=!1){let Bt="";return nt&&((Bt=this.lookupInlineStyle(nt,st))||((0,t.NF)(this._platformId)?wt||(Bt=getComputedStyle(nt).getPropertyValue(st)):this._serverModuleLoaded&&(Bt=this._serverStylesheet.getStyleForElement(nt,st)))),Bt?Bt.trim():""}_applyMultiValueStyleToElement(nt,st){Object.keys(nt).sort().forEach(wt=>{const Bt=nt[wt],Nt=Array.isArray(Bt)?Bt:[Bt];Nt.sort();for(let Vt of Nt)Vt=Vt?Vt+"":"",(0,t.NF)(this._platformId)||!this._serverModuleLoaded?(0,t.NF)(this._platformId)?st.style.setProperty(wt,Vt):this._setServerStyle(st,wt,Vt):this._serverStylesheet.addStyleToElement(st,wt,Vt)})}_setServerStyle(nt,st,wt){st=st.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();const Bt=this._readStyleAttribute(nt);Bt[st]=wt||"",this._writeStyleAttribute(nt,Bt)}_getServerStyle(nt,st){return this._readStyleAttribute(nt)[st]||""}_readStyleAttribute(nt){const st={},wt=nt.getAttribute("style");if(wt){const Bt=wt.split(/;+/g);for(let Nt=0;Nt0){const Oi=Vt.indexOf(":");if(-1===Oi)throw new Error(`Invalid CSS style: ${Vt}`);st[Vt.substr(0,Oi).trim()]=Vt.substr(Oi+1).trim()}}}return st}_writeStyleAttribute(nt,st){let wt="";for(const Bt in st)st[Bt]&&(wt+=Bt+":"+st[Bt]+";");nt.setAttribute("style",wt)}}return it.\u0275fac=function(nt){return new(nt||it)(e.LFG(w),e.LFG(W),e.LFG(e.Lbi),e.LFG(G))},it.\u0275prov=e.Yz7({token:it,factory:it.\u0275fac,providedIn:"root"}),it})();function de(it,ft){return(ft&&ft.priority||0)-(it&&it.priority||0)}function ne(it,ft){return(it.priority||0)-(ft.priority||0)}let se=(()=>{class it{constructor(nt,st,wt){this._zone=nt,this._platformId=st,this._document=wt,this.source=new v.X(new D(!0)),this.registry=new Map,this.pendingRemoveListenerFns=[],this._observable$=this.source.asObservable()}get activations(){const nt=[];return this.registry.forEach((st,wt)=>{st.matches&&nt.push(wt)}),nt}isActive(nt){const st=this.registry.get(nt);return st?st.matches:this.registerQuery(nt).some(wt=>wt.matches)}observe(nt,st=!1){if(nt&&nt.length){const wt=this._observable$.pipe((0,P.h)(Nt=>!st||nt.indexOf(Nt.mediaQuery)>-1)),Bt=new M.y(Nt=>{const Vt=this.registerQuery(nt);if(Vt.length){const Oi=Vt.pop();Vt.forEach(jt=>{Nt.next(jt)}),this.source.next(Oi)}Nt.complete()});return(0,s.T)(Bt,wt)}return this._observable$}registerQuery(nt){const st=Array.isArray(nt)?nt:[nt],wt=[];return function(it,ft){const nt=it.filter(st=>!oe[st]);if(nt.length>0){const st=nt.join(", ");try{const wt=ft.createElement("style");wt.setAttribute("type","text/css"),wt.styleSheet||wt.appendChild(ft.createTextNode(`\n/*\n @angular/flex-layout - workaround for possible browser quirk with mediaQuery listeners\n see http://bit.ly/2sd4HMP\n*/\n@media ${st} {.fx-query-test{ }}\n`)),ft.head.appendChild(wt),nt.forEach(Bt=>oe[Bt]=wt)}catch(wt){console.error(wt)}}}(st,this._document),st.forEach(Bt=>{const Nt=Oi=>{this._zone.run(()=>this.source.next(new D(Oi.matches,Bt)))};let Vt=this.registry.get(Bt);Vt||(Vt=this.buildMQL(Bt),Vt.addListener(Nt),this.pendingRemoveListenerFns.push(()=>Vt.removeListener(Nt)),this.registry.set(Bt,Vt)),Vt.matches&&wt.push(new D(!0,Bt))}),wt}ngOnDestroy(){let nt;for(;nt=this.pendingRemoveListenerFns.pop();)nt()}buildMQL(nt){return function(it,ft){return ft&&window.matchMedia("all").addListener?window.matchMedia(it):{matches:"all"===it||""===it,media:it,addListener:()=>{},removeListener:()=>{},onchange:null,addEventListener(){},removeEventListener(){},dispatchEvent:()=>!1}}(nt,(0,t.NF)(this._platformId))}}return it.\u0275fac=function(nt){return new(nt||it)(e.LFG(e.R0b),e.LFG(e.Lbi),e.LFG(t.K0))},it.\u0275prov=e.Yz7({token:it,factory:it.\u0275fac,providedIn:"root"}),it})();const oe={},a=[{alias:"xs",mediaQuery:"screen and (min-width: 0px) and (max-width: 599.98px)",priority:1e3},{alias:"sm",mediaQuery:"screen and (min-width: 600px) and (max-width: 959.98px)",priority:900},{alias:"md",mediaQuery:"screen and (min-width: 960px) and (max-width: 1279.98px)",priority:800},{alias:"lg",mediaQuery:"screen and (min-width: 1280px) and (max-width: 1919.98px)",priority:700},{alias:"xl",mediaQuery:"screen and (min-width: 1920px) and (max-width: 4999.98px)",priority:600},{alias:"lt-sm",overlapping:!0,mediaQuery:"screen and (max-width: 599.98px)",priority:950},{alias:"lt-md",overlapping:!0,mediaQuery:"screen and (max-width: 959.98px)",priority:850},{alias:"lt-lg",overlapping:!0,mediaQuery:"screen and (max-width: 1279.98px)",priority:750},{alias:"lt-xl",overlapping:!0,priority:650,mediaQuery:"screen and (max-width: 1919.98px)"},{alias:"gt-xs",overlapping:!0,mediaQuery:"screen and (min-width: 600px)",priority:-950},{alias:"gt-sm",overlapping:!0,mediaQuery:"screen and (min-width: 960px)",priority:-850},{alias:"gt-md",overlapping:!0,mediaQuery:"screen and (min-width: 1280px)",priority:-750},{alias:"gt-lg",overlapping:!0,mediaQuery:"screen and (min-width: 1920px)",priority:-650}],p="(orientation: portrait) and (max-width: 599.98px)",u="(orientation: landscape) and (max-width: 959.98px)",_="(orientation: portrait) and (min-width: 600px) and (max-width: 839.98px)",L="(orientation: landscape) and (min-width: 960px) and (max-width: 1279.98px)",I="(orientation: portrait) and (min-width: 840px)",x="(orientation: landscape) and (min-width: 1280px)",r={HANDSET:`${p}, ${u}`,TABLET:`${_} , ${L}`,WEB:`${I}, ${x} `,HANDSET_PORTRAIT:`${p}`,TABLET_PORTRAIT:`${_} `,WEB_PORTRAIT:`${I}`,HANDSET_LANDSCAPE:`${u}`,TABLET_LANDSCAPE:`${L}`,WEB_LANDSCAPE:`${x}`},b=[{alias:"handset",priority:2e3,mediaQuery:r.HANDSET},{alias:"handset.landscape",priority:2e3,mediaQuery:r.HANDSET_LANDSCAPE},{alias:"handset.portrait",priority:2e3,mediaQuery:r.HANDSET_PORTRAIT},{alias:"tablet",priority:2100,mediaQuery:r.TABLET},{alias:"tablet.landscape",priority:2100,mediaQuery:r.TABLET_LANDSCAPE},{alias:"tablet.portrait",priority:2100,mediaQuery:r.TABLET_PORTRAIT},{alias:"web",priority:2200,mediaQuery:r.WEB,overlapping:!0},{alias:"web.landscape",priority:2200,mediaQuery:r.WEB_LANDSCAPE,overlapping:!0},{alias:"web.portrait",priority:2200,mediaQuery:r.WEB_PORTRAIT,overlapping:!0}],J=/(\.|-|_)/g;function F(it){let ft=it.length>0?it.charAt(0):"",nt=it.length>1?it.slice(1):"";return ft.toUpperCase()+nt}const Re=new e.OlP("Token (@angular/flex-layout) Breakpoints",{providedIn:"root",factory:()=>{const it=(0,e.f3M)(ee),ft=(0,e.f3M)(G),nt=[].concat.apply([],(it||[]).map(wt=>Array.isArray(wt)?wt:[wt]));return function(it,ft=[]){const nt={};return it.forEach(st=>{nt[st.alias]=st}),ft.forEach(st=>{nt[st.alias]?(0,c.kt)(nt[st.alias],st):nt[st.alias]=st}),function(it){return it.forEach(ft=>{ft.suffix||(ft.suffix=function(it){return it.replace(J,"|").split("|").map(F).join("")}(ft.alias),ft.overlapping=!!ft.overlapping)}),it}(Object.keys(nt).map(st=>nt[st]))}((ft.disableDefaultBps?[]:a).concat(ft.addOrientationBps?b:[]),nt)}});let Fe=(()=>{class it{constructor(nt){this.findByMap=new Map,this.items=[...nt].sort(ne)}findByAlias(nt){return nt?this.findWithPredicate(nt,st=>st.alias==nt):null}findByQuery(nt){return this.findWithPredicate(nt,st=>st.mediaQuery==nt)}get overlappings(){return this.items.filter(nt=>1==nt.overlapping)}get aliases(){return this.items.map(nt=>nt.alias)}get suffixes(){return this.items.map(nt=>nt.suffix?nt.suffix:"")}findWithPredicate(nt,st){let wt=this.findByMap.get(nt);return wt||(wt=this.items.find(st)||null,this.findByMap.set(nt,wt)),wt||null}}return it.\u0275fac=function(nt){return new(nt||it)(e.LFG(Re))},it.\u0275prov=e.Yz7({token:it,factory:it.\u0275fac,providedIn:"root"}),it})();const q="print",j={alias:q,mediaQuery:q,priority:1e3};let we=(()=>{class it{constructor(nt,st,wt){this.breakpoints=nt,this.layoutConfig=st,this._document=wt,this.registeredBeforeAfterPrintHooks=!1,this.isPrintingBeforeAfterEvent=!1,this.beforePrintEventListeners=[],this.afterPrintEventListeners=[],this.isPrinting=!1,this.queue=new Ae,this.deactivations=[]}withPrintQuery(nt){return[...nt,q]}isPrintEvent(nt){return nt.mediaQuery.startsWith(q)}get printAlias(){return this.layoutConfig.printWithBreakpoints||[]}get printBreakPoints(){return this.printAlias.map(nt=>this.breakpoints.findByAlias(nt)).filter(nt=>null!==nt)}getEventBreakpoints({mediaQuery:nt}){const st=this.breakpoints.findByQuery(nt);return(st?[...this.printBreakPoints,st]:this.printBreakPoints).sort(de)}updateEvent(nt){let st=this.breakpoints.findByQuery(nt.mediaQuery);return this.isPrintEvent(nt)&&(st=this.getEventBreakpoints(nt)[0],nt.mediaQuery=st?st.mediaQuery:""),ie(nt,st)}registerBeforeAfterPrintHooks(nt){if(!this._document.defaultView||this.registeredBeforeAfterPrintHooks)return;this.registeredBeforeAfterPrintHooks=!0;const st=()=>{this.isPrinting||(this.isPrintingBeforeAfterEvent=!0,this.startPrinting(nt,this.getEventBreakpoints(new D(!0,q))),nt.updateStyles())},wt=()=>{this.isPrintingBeforeAfterEvent=!1,this.isPrinting&&(this.stopPrinting(nt),nt.updateStyles())};this._document.defaultView.addEventListener("beforeprint",st),this._document.defaultView.addEventListener("afterprint",wt),this.beforePrintEventListeners.push(st),this.afterPrintEventListeners.push(wt)}interceptEvents(nt){return this.registerBeforeAfterPrintHooks(nt),st=>{this.isPrintEvent(st)?st.matches&&!this.isPrinting?(this.startPrinting(nt,this.getEventBreakpoints(st)),nt.updateStyles()):!st.matches&&this.isPrinting&&!this.isPrintingBeforeAfterEvent&&(this.stopPrinting(nt),nt.updateStyles()):this.collectActivations(st)}}blockPropagation(){return nt=>!(this.isPrinting||this.isPrintEvent(nt))}startPrinting(nt,st){this.isPrinting=!0,nt.activatedBreakpoints=this.queue.addPrintBreakpoints(st)}stopPrinting(nt){nt.activatedBreakpoints=this.deactivations,this.deactivations=[],this.queue.clear(),this.isPrinting=!1}collectActivations(nt){if(!this.isPrinting||this.isPrintingBeforeAfterEvent)if(nt.matches)this.isPrintingBeforeAfterEvent||(this.deactivations=[]);else{const st=this.breakpoints.findByQuery(nt.mediaQuery);st&&(this.deactivations.push(st),this.deactivations.sort(de))}}ngOnDestroy(){this._document.defaultView&&(this.beforePrintEventListeners.forEach(nt=>this._document.defaultView.removeEventListener("beforeprint",nt)),this.afterPrintEventListeners.forEach(nt=>this._document.defaultView.removeEventListener("afterprint",nt)))}}return it.\u0275fac=function(nt){return new(nt||it)(e.LFG(Fe),e.LFG(G),e.LFG(t.K0))},it.\u0275prov=e.Yz7({token:it,factory:it.\u0275fac,providedIn:"root"}),it})();class Ae{constructor(){this.printBreakpoints=[]}addPrintBreakpoints(ft){return ft.push(j),ft.sort(de),ft.forEach(nt=>this.addBreakpoint(nt)),this.printBreakpoints}addBreakpoint(ft){var it;ft&&void 0===this.printBreakpoints.find(st=>st.mediaQuery===ft.mediaQuery)&&(this.printBreakpoints=(it=ft)&&it.mediaQuery.startsWith(q)?[ft,...this.printBreakpoints]:[...this.printBreakpoints,ft])}clear(){this.printBreakpoints=[]}}let We=(()=>{class it{constructor(nt,st,wt){this.matchMedia=nt,this.breakpoints=st,this.hook=wt,this.activatedBreakpoints=[],this.elementMap=new Map,this.elementKeyMap=new WeakMap,this.watcherMap=new WeakMap,this.updateMap=new WeakMap,this.clearMap=new WeakMap,this.subject=new C.x,this.observeActivations()}get activatedAlias(){return this.activatedBreakpoints[0]?this.activatedBreakpoints[0].alias:""}onMediaChange(nt){const st=this.findByQuery(nt.mediaQuery);st&&((nt=ie(nt,st)).matches&&-1===this.activatedBreakpoints.indexOf(st)?(this.activatedBreakpoints.push(st),this.activatedBreakpoints.sort(de),this.updateStyles()):!nt.matches&&-1!==this.activatedBreakpoints.indexOf(st)&&(this.activatedBreakpoints.splice(this.activatedBreakpoints.indexOf(st),1),this.activatedBreakpoints.sort(de),this.updateStyles()))}init(nt,st,wt,Bt,Nt=[]){yt(this.updateMap,nt,st,wt),yt(this.clearMap,nt,st,Bt),this.buildElementKeyMap(nt,st),this.watchExtraTriggers(nt,st,Nt)}getValue(nt,st,wt){const Bt=this.elementMap.get(nt);if(Bt){const Nt=void 0!==wt?Bt.get(wt):this.getActivatedValues(Bt,st);if(Nt)return Nt.get(st)}}hasValue(nt,st){const wt=this.elementMap.get(nt);if(wt){const Bt=this.getActivatedValues(wt,st);if(Bt)return void 0!==Bt.get(st)||!1}return!1}setValue(nt,st,wt,Bt){let Nt=this.elementMap.get(nt);if(Nt){const Oi=(Nt.get(Bt)||new Map).set(st,wt);Nt.set(Bt,Oi),this.elementMap.set(nt,Nt)}else Nt=(new Map).set(Bt,(new Map).set(st,wt)),this.elementMap.set(nt,Nt);const Vt=this.getValue(nt,st);void 0!==Vt&&this.updateElement(nt,st,Vt)}trackValue(nt,st){return this.subject.asObservable().pipe((0,P.h)(wt=>wt.element===nt&&wt.key===st))}updateStyles(){this.elementMap.forEach((nt,st)=>{const wt=new Set(this.elementKeyMap.get(st));let Bt=this.getActivatedValues(nt);Bt&&Bt.forEach((Nt,Vt)=>{this.updateElement(st,Vt,Nt),wt.delete(Vt)}),wt.forEach(Nt=>{if(Bt=this.getActivatedValues(nt,Nt),Bt){const Vt=Bt.get(Nt);this.updateElement(st,Nt,Vt)}else this.clearElement(st,Nt)})})}clearElement(nt,st){const wt=this.clearMap.get(nt);if(wt){const Bt=wt.get(st);Bt&&(Bt(),this.subject.next({element:nt,key:st,value:""}))}}updateElement(nt,st,wt){const Bt=this.updateMap.get(nt);if(Bt){const Nt=Bt.get(st);Nt&&(Nt(wt),this.subject.next({element:nt,key:st,value:wt}))}}releaseElement(nt){const st=this.watcherMap.get(nt);st&&(st.forEach(Bt=>Bt.unsubscribe()),this.watcherMap.delete(nt));const wt=this.elementMap.get(nt);wt&&(wt.forEach((Bt,Nt)=>wt.delete(Nt)),this.elementMap.delete(nt))}triggerUpdate(nt,st){const wt=this.elementMap.get(nt);if(wt){const Bt=this.getActivatedValues(wt,st);Bt&&(st?this.updateElement(nt,st,Bt.get(st)):Bt.forEach((Nt,Vt)=>this.updateElement(nt,Vt,Nt)))}}buildElementKeyMap(nt,st){let wt=this.elementKeyMap.get(nt);wt||(wt=new Set,this.elementKeyMap.set(nt,wt)),wt.add(st)}watchExtraTriggers(nt,st,wt){if(wt&&wt.length){let Bt=this.watcherMap.get(nt);if(Bt||(Bt=new Map,this.watcherMap.set(nt,Bt)),!Bt.get(st)){const Vt=(0,s.T)(...wt).subscribe(()=>{const Oi=this.getValue(nt,st);this.updateElement(nt,st,Oi)});Bt.set(st,Vt)}}}findByQuery(nt){return this.breakpoints.findByQuery(nt)}getActivatedValues(nt,st){for(let Bt=0;Btwt.mediaQuery);this.matchMedia.observe(this.hook.withPrintQuery(st)).pipe((0,o.b)(this.hook.interceptEvents(this)),(0,P.h)(this.hook.blockPropagation())).subscribe(this.onMediaChange.bind(this))}}return it.\u0275fac=function(nt){return new(nt||it)(e.LFG(se),e.LFG(Fe),e.LFG(we))},it.\u0275prov=e.Yz7({token:it,factory:it.\u0275fac,providedIn:"root"}),it})();function yt(it,ft,nt,st){if(void 0!==st){let wt=it.get(ft);wt||(wt=new Map,it.set(ft,wt)),wt.set(nt,st)}}let Ne=(()=>{class it{constructor(nt,st,wt,Bt){this.elementRef=nt,this.styleBuilder=st,this.styler=wt,this.marshal=Bt,this.DIRECTIVE_KEY="",this.inputs=[],this.mru={},this.destroySubject=new C.x,this.styleCache=new Map}get parentElement(){return this.elementRef.nativeElement.parentElement}get nativeElement(){return this.elementRef.nativeElement}get activatedValue(){return this.marshal.getValue(this.nativeElement,this.DIRECTIVE_KEY)}set activatedValue(nt){this.marshal.setValue(this.nativeElement,this.DIRECTIVE_KEY,nt,this.marshal.activatedAlias)}ngOnChanges(nt){Object.keys(nt).forEach(st=>{if(-1!==this.inputs.indexOf(st)){const wt=st.split(".").slice(1).join(".");this.setValue(nt[st].currentValue,wt)}})}ngOnDestroy(){this.destroySubject.next(),this.destroySubject.complete(),this.marshal.releaseElement(this.nativeElement)}init(nt=[]){this.marshal.init(this.elementRef.nativeElement,this.DIRECTIVE_KEY,this.updateWithValue.bind(this),this.clearStyles.bind(this),nt)}addStyles(nt,st){const wt=this.styleBuilder,Bt=wt.shouldCache;let Nt=this.styleCache.get(nt);(!Nt||!Bt)&&(Nt=wt.buildStyles(nt,st),Bt&&this.styleCache.set(nt,Nt)),this.mru=Object.assign({},Nt),this.applyStyleToElement(Nt),wt.sideEffect(nt,Nt,st)}clearStyles(){Object.keys(this.mru).forEach(nt=>{this.mru[nt]=""}),this.applyStyleToElement(this.mru),this.mru={}}triggerUpdate(){this.marshal.triggerUpdate(this.nativeElement,this.DIRECTIVE_KEY)}getFlexFlowDirection(nt,st=!1){if(nt){const[wt,Bt]=this.styler.getFlowDirection(nt);if(!Bt&&st){const Nt=(0,c.Ar)(wt);this.styler.applyStyleToElements(Nt,[nt])}return wt.trim()}return"row"}hasWrap(nt){return this.styler.hasWrap(nt)}applyStyleToElement(nt,st,wt=this.nativeElement){this.styler.applyStyleToElement(wt,nt,st)}setValue(nt,st){this.marshal.setValue(this.nativeElement,this.DIRECTIVE_KEY,nt,st)}updateWithValue(nt){this.currentValue!==nt&&(this.addStyles(nt),this.currentValue=nt)}}return it.\u0275fac=function(nt){return new(nt||it)(e.Y36(e.SBq),e.Y36(_e),e.Y36(fe),e.Y36(We))},it.\u0275dir=e.lG2({type:it,features:[e.TTD]}),it})();function ze(it,ft="1",nt="1"){let st=[ft,nt,it],wt=it.indexOf("calc");if(wt>0){st[2]=ht(it.substring(wt).trim());let Bt=it.substr(0,wt).trim().split(" ");2==Bt.length&&(st[0]=Bt[0],st[1]=Bt[1])}else if(0==wt)st[2]=ht(it.trim());else{let Bt=it.split(" ");st=3===Bt.length?Bt:[ft,nt,it]}return st}function ht(it){return it.replace(/[\s]/g,"").replace(/[\/\*\+\-]/g," $& ")}},3322:(Ue,K,m)=>{"use strict";m.d(K,{oO:()=>U,Zl:()=>L,aT:()=>r});var e=m(5e3),t=m(3270),v=m(9808),C=(m(3191),m(2722),m(2313));let S=(()=>{class b extends t.iR{constructor(F,B,te,xe,Re,Fe,q){super(F,null,B,te),this.ngClassInstance=q,this.DIRECTIVE_KEY="ngClass",this.ngClassInstance||(this.ngClassInstance=new v.mk(xe,Re,F,Fe)),this.init(),this.setValue("","")}set klass(F){this.ngClassInstance.klass=F,this.setValue(F,"")}updateWithValue(F){this.ngClassInstance.ngClass=F,this.ngClassInstance.ngDoCheck()}ngDoCheck(){this.ngClassInstance.ngDoCheck()}}return b.\u0275fac=function(F){return new(F||b)(e.Y36(e.SBq),e.Y36(t.RK),e.Y36(t.yB),e.Y36(e.ZZ4),e.Y36(e.aQg),e.Y36(e.Qsj),e.Y36(v.mk,10))},b.\u0275dir=e.lG2({type:b,inputs:{klass:["class","klass"]},features:[e.qOj]}),b})();const D=["ngClass","ngClass.xs","ngClass.sm","ngClass.md","ngClass.lg","ngClass.xl","ngClass.lt-sm","ngClass.lt-md","ngClass.lt-lg","ngClass.lt-xl","ngClass.gt-xs","ngClass.gt-sm","ngClass.gt-md","ngClass.gt-lg"];let U=(()=>{class b extends S{constructor(){super(...arguments),this.inputs=D}}return b.\u0275fac=function(){let J;return function(B){return(J||(J=e.n5z(b)))(B||b)}}(),b.\u0275dir=e.lG2({type:b,selectors:[["","ngClass",""],["","ngClass.xs",""],["","ngClass.sm",""],["","ngClass.md",""],["","ngClass.lg",""],["","ngClass.xl",""],["","ngClass.lt-sm",""],["","ngClass.lt-md",""],["","ngClass.lt-lg",""],["","ngClass.lt-xl",""],["","ngClass.gt-xs",""],["","ngClass.gt-sm",""],["","ngClass.gt-md",""],["","ngClass.gt-lg",""]],inputs:{ngClass:"ngClass","ngClass.xs":"ngClass.xs","ngClass.sm":"ngClass.sm","ngClass.md":"ngClass.md","ngClass.lg":"ngClass.lg","ngClass.xl":"ngClass.xl","ngClass.lt-sm":"ngClass.lt-sm","ngClass.lt-md":"ngClass.lt-md","ngClass.lt-lg":"ngClass.lt-lg","ngClass.lt-xl":"ngClass.lt-xl","ngClass.gt-xs":"ngClass.gt-xs","ngClass.gt-sm":"ngClass.gt-sm","ngClass.gt-md":"ngClass.gt-md","ngClass.gt-lg":"ngClass.gt-lg"},features:[e.qOj]}),b})();class de{constructor(J,F,B=!0){this.key=J,this.value=F,this.key=B?J.replace(/['"]/g,"").trim():J.trim(),this.value=B?F.replace(/['"]/g,"").trim():F.trim(),this.value=this.value.replace(/;/,"")}}function ne(b){let J=typeof b;return"object"===J?b.constructor===Array?"array":b.constructor===Set?"set":"object":J}function i(b){const[J,...F]=b.split(":");return new de(J,F.join(":"))}function a(b,J){return J.key&&(b[J.key]=J.value),b}let p=(()=>{class b extends t.iR{constructor(F,B,te,xe,Re,Fe,q,j,we){super(F,null,B,te),this.sanitizer=xe,this.ngStyleInstance=q,this.DIRECTIVE_KEY="ngStyle",this.ngStyleInstance||(this.ngStyleInstance=new v.PC(F,Re,Fe)),this.init();const Ae=this.nativeElement.getAttribute("style")||"";this.fallbackStyles=this.buildStyleMap(Ae),this.isServer=j&&(0,v.PM)(we)}updateWithValue(F){const B=this.buildStyleMap(F);this.ngStyleInstance.ngStyle=Object.assign(Object.assign({},this.fallbackStyles),B),this.isServer&&this.applyStyleToElement(B),this.ngStyleInstance.ngDoCheck()}clearStyles(){this.ngStyleInstance.ngStyle=this.fallbackStyles,this.ngStyleInstance.ngDoCheck()}buildStyleMap(F){const B=te=>this.sanitizer.sanitize(e.q3G.STYLE,te)||"";if(F)switch(ne(F)){case"string":return I(function(b,J=";"){return String(b).trim().split(J).map(F=>F.trim()).filter(F=>""!==F)}(F),B);case"array":return I(F,B);default:return function(b,J){let F=[];return"set"===ne(b)?b.forEach(B=>F.push(B)):Object.keys(b).forEach(B=>{F.push(`${B}:${b[B]}`)}),function(b,J){return b.map(i).filter(B=>!!B).map(B=>(J&&(B.value=J(B.value)),B)).reduce(a,{})}(F,J)}(F,B)}return{}}ngDoCheck(){this.ngStyleInstance.ngDoCheck()}}return b.\u0275fac=function(F){return new(F||b)(e.Y36(e.SBq),e.Y36(t.RK),e.Y36(t.yB),e.Y36(C.H7),e.Y36(e.aQg),e.Y36(e.Qsj),e.Y36(v.PC,10),e.Y36(t.wY),e.Y36(e.Lbi))},b.\u0275dir=e.lG2({type:b,features:[e.qOj]}),b})();const u=["ngStyle","ngStyle.xs","ngStyle.sm","ngStyle.md","ngStyle.lg","ngStyle.xl","ngStyle.lt-sm","ngStyle.lt-md","ngStyle.lt-lg","ngStyle.lt-xl","ngStyle.gt-xs","ngStyle.gt-sm","ngStyle.gt-md","ngStyle.gt-lg"];let L=(()=>{class b extends p{constructor(){super(...arguments),this.inputs=u}}return b.\u0275fac=function(){let J;return function(B){return(J||(J=e.n5z(b)))(B||b)}}(),b.\u0275dir=e.lG2({type:b,selectors:[["","ngStyle",""],["","ngStyle.xs",""],["","ngStyle.sm",""],["","ngStyle.md",""],["","ngStyle.lg",""],["","ngStyle.xl",""],["","ngStyle.lt-sm",""],["","ngStyle.lt-md",""],["","ngStyle.lt-lg",""],["","ngStyle.lt-xl",""],["","ngStyle.gt-xs",""],["","ngStyle.gt-sm",""],["","ngStyle.gt-md",""],["","ngStyle.gt-lg",""]],inputs:{ngStyle:"ngStyle","ngStyle.xs":"ngStyle.xs","ngStyle.sm":"ngStyle.sm","ngStyle.md":"ngStyle.md","ngStyle.lg":"ngStyle.lg","ngStyle.xl":"ngStyle.xl","ngStyle.lt-sm":"ngStyle.lt-sm","ngStyle.lt-md":"ngStyle.lt-md","ngStyle.lt-lg":"ngStyle.lt-lg","ngStyle.lt-xl":"ngStyle.lt-xl","ngStyle.gt-xs":"ngStyle.gt-xs","ngStyle.gt-sm":"ngStyle.gt-sm","ngStyle.gt-md":"ngStyle.gt-md","ngStyle.gt-lg":"ngStyle.gt-lg"},features:[e.qOj]}),b})();function I(b,J){return b.map(i).filter(B=>!!B).map(B=>(J&&(B.value=J(B.value)),B)).reduce(a,{})}let r=(()=>{class b{}return b.\u0275fac=function(F){return new(F||b)},b.\u0275mod=e.oAB({type:b}),b.\u0275inj=e.cJS({imports:[[t.IR]]}),b})()},7093:(Ue,K,m)=>{"use strict";m.d(K,{yH:()=>_,Wh:()=>st,xw:()=>T,ae:()=>di});var e=m(5e3),t=m(226),v=m(3270),M=m(9042),C=(m(7579),m(2722));let c=(()=>{class He extends v.QI{buildStyles(V){return(0,M.Ar)(V)}}return He.\u0275fac=function(){let Se;return function(ve){return(Se||(Se=e.n5z(He)))(ve||He)}}(),He.\u0275prov=e.Yz7({token:He,factory:He.\u0275fac,providedIn:"root"}),He})();const P=["fxLayout","fxLayout.xs","fxLayout.sm","fxLayout.md","fxLayout.lg","fxLayout.xl","fxLayout.lt-sm","fxLayout.lt-md","fxLayout.lt-lg","fxLayout.lt-xl","fxLayout.gt-xs","fxLayout.gt-sm","fxLayout.gt-md","fxLayout.gt-lg"];let O=(()=>{class He extends v.iR{constructor(V,ve,Ee,et){super(V,Ee,ve,et),this.DIRECTIVE_KEY="layout",this.styleCache=R,this.init()}}return He.\u0275fac=function(V){return new(V||He)(e.Y36(e.SBq),e.Y36(v.RK),e.Y36(c),e.Y36(v.yB))},He.\u0275dir=e.lG2({type:He,features:[e.qOj]}),He})(),T=(()=>{class He extends O{constructor(){super(...arguments),this.inputs=P}}return He.\u0275fac=function(){let Se;return function(ve){return(Se||(Se=e.n5z(He)))(ve||He)}}(),He.\u0275dir=e.lG2({type:He,selectors:[["","fxLayout",""],["","fxLayout.xs",""],["","fxLayout.sm",""],["","fxLayout.md",""],["","fxLayout.lg",""],["","fxLayout.xl",""],["","fxLayout.lt-sm",""],["","fxLayout.lt-md",""],["","fxLayout.lt-lg",""],["","fxLayout.lt-xl",""],["","fxLayout.gt-xs",""],["","fxLayout.gt-sm",""],["","fxLayout.gt-md",""],["","fxLayout.gt-lg",""]],inputs:{fxLayout:"fxLayout","fxLayout.xs":"fxLayout.xs","fxLayout.sm":"fxLayout.sm","fxLayout.md":"fxLayout.md","fxLayout.lg":"fxLayout.lg","fxLayout.xl":"fxLayout.xl","fxLayout.lt-sm":"fxLayout.lt-sm","fxLayout.lt-md":"fxLayout.lt-md","fxLayout.lt-lg":"fxLayout.lt-lg","fxLayout.lt-xl":"fxLayout.lt-xl","fxLayout.gt-xs":"fxLayout.gt-xs","fxLayout.gt-sm":"fxLayout.gt-sm","fxLayout.gt-md":"fxLayout.gt-md","fxLayout.gt-lg":"fxLayout.gt-lg"},features:[e.qOj]}),He})();const R=new Map;let i=(()=>{class He extends v.QI{constructor(V){super(),this.layoutConfig=V}buildStyles(V,ve){let[Ee,et,...$t]=V.split(" "),Pt=$t.join(" ");const Xt=ve.direction.indexOf("column")>-1?"column":"row",lt=(0,M.tj)(Xt)?"max-width":"max-height",Pe=(0,M.tj)(Xt)?"min-width":"min-height",Be=String(Pt).indexOf("calc")>-1,rt=Be||"auto"===Pt,ot=String(Pt).indexOf("%")>-1&&!Be,At=String(Pt).indexOf("px")>-1||String(Pt).indexOf("rem")>-1||String(Pt).indexOf("em")>-1||String(Pt).indexOf("vw")>-1||String(Pt).indexOf("vh")>-1;let li=Be||At;Ee="0"==Ee?0:Ee,et="0"==et?0:et;const Ut=!Ee&&!et;let Ft={};const Si={"max-width":null,"max-height":null,"min-width":null,"min-height":null};switch(Pt||""){case"":const ai=!1!==this.layoutConfig.useColumnBasisZero;Pt="row"===Xt?"0%":ai?"0.000000001px":"auto";break;case"initial":case"nogrow":Ee=0,Pt="auto";break;case"grow":Pt="100%";break;case"noshrink":et=0,Pt="auto";break;case"auto":break;case"none":Ee=0,et=0,Pt="auto";break;default:!li&&!ot&&!isNaN(Pt)&&(Pt+="%"),"0%"===Pt&&(li=!0),"0px"===Pt&&(Pt="0%"),Ft=(0,M.kt)(Si,Be?{"flex-grow":Ee,"flex-shrink":et,"flex-basis":li?Pt:"100%"}:{flex:`${Ee} ${et} ${li?Pt:"100%"}`})}return Ft.flex||Ft["flex-grow"]||(Ft=(0,M.kt)(Si,Be?{"flex-grow":Ee,"flex-shrink":et,"flex-basis":Pt}:{flex:`${Ee} ${et} ${Pt}`})),"0%"!==Pt&&"0px"!==Pt&&"0.000000001px"!==Pt&&"auto"!==Pt&&(Ft[Pe]=Ut||li&&Ee?Pt:null,Ft[lt]=Ut||!rt&&et?Pt:null),Ft[Pe]||Ft[lt]?ve.hasWrap&&(Ft[Be?"flex-basis":"flex"]=Ft[lt]?Be?Ft[lt]:`${Ee} ${et} ${Ft[lt]}`:Be?Ft[Pe]:`${Ee} ${et} ${Ft[Pe]}`):Ft=(0,M.kt)(Si,Be?{"flex-grow":Ee,"flex-shrink":et,"flex-basis":Pt}:{flex:`${Ee} ${et} ${Pt}`}),(0,M.kt)(Ft,{"box-sizing":"border-box"})}}return He.\u0275fac=function(V){return new(V||He)(e.LFG(v.WU))},He.\u0275prov=e.Yz7({token:He,factory:He.\u0275fac,providedIn:"root"}),He})();const a=["fxFlex","fxFlex.xs","fxFlex.sm","fxFlex.md","fxFlex.lg","fxFlex.xl","fxFlex.lt-sm","fxFlex.lt-md","fxFlex.lt-lg","fxFlex.lt-xl","fxFlex.gt-xs","fxFlex.gt-sm","fxFlex.gt-md","fxFlex.gt-lg"];let u=(()=>{class He extends v.iR{constructor(V,ve,Ee,et,$t){super(V,et,ve,$t),this.layoutConfig=Ee,this.marshal=$t,this.DIRECTIVE_KEY="flex",this.direction=void 0,this.wrap=void 0,this.flexGrow="1",this.flexShrink="1",this.init()}get shrink(){return this.flexShrink}set shrink(V){this.flexShrink=V||"1",this.triggerReflow()}get grow(){return this.flexGrow}set grow(V){this.flexGrow=V||"1",this.triggerReflow()}ngOnInit(){this.parentElement&&(this.marshal.trackValue(this.parentElement,"layout").pipe((0,C.R)(this.destroySubject)).subscribe(this.onLayoutChange.bind(this)),this.marshal.trackValue(this.nativeElement,"layout-align").pipe((0,C.R)(this.destroySubject)).subscribe(this.triggerReflow.bind(this)))}onLayoutChange(V){const Ee=V.value.split(" ");this.direction=Ee[0],this.wrap=void 0!==Ee[1]&&"wrap"===Ee[1],this.triggerUpdate()}updateWithValue(V){void 0===this.direction&&(this.direction=this.getFlexFlowDirection(this.parentElement,!1!==this.layoutConfig.addFlexToParent)),void 0===this.wrap&&(this.wrap=this.hasWrap(this.parentElement));const Ee=this.direction,et=Ee.startsWith("row"),$t=this.wrap;et&&$t?this.styleCache=x:et&&!$t?this.styleCache=L:!et&&$t?this.styleCache=r:!et&&!$t&&(this.styleCache=I);const Pt=String(V).replace(";",""),Xt=(0,v.Ot)(Pt,this.flexGrow,this.flexShrink);this.addStyles(Xt.join(" "),{direction:Ee,hasWrap:$t})}triggerReflow(){const V=this.activatedValue;if(void 0!==V){const ve=(0,v.Ot)(V+"",this.flexGrow,this.flexShrink);this.marshal.updateElement(this.nativeElement,this.DIRECTIVE_KEY,ve.join(" "))}}}return He.\u0275fac=function(V){return new(V||He)(e.Y36(e.SBq),e.Y36(v.RK),e.Y36(v.WU),e.Y36(i),e.Y36(v.yB))},He.\u0275dir=e.lG2({type:He,inputs:{shrink:["fxShrink","shrink"],grow:["fxGrow","grow"]},features:[e.qOj]}),He})(),_=(()=>{class He extends u{constructor(){super(...arguments),this.inputs=a}}return He.\u0275fac=function(){let Se;return function(ve){return(Se||(Se=e.n5z(He)))(ve||He)}}(),He.\u0275dir=e.lG2({type:He,selectors:[["","fxFlex",""],["","fxFlex.xs",""],["","fxFlex.sm",""],["","fxFlex.md",""],["","fxFlex.lg",""],["","fxFlex.xl",""],["","fxFlex.lt-sm",""],["","fxFlex.lt-md",""],["","fxFlex.lt-lg",""],["","fxFlex.lt-xl",""],["","fxFlex.gt-xs",""],["","fxFlex.gt-sm",""],["","fxFlex.gt-md",""],["","fxFlex.gt-lg",""]],inputs:{fxFlex:"fxFlex","fxFlex.xs":"fxFlex.xs","fxFlex.sm":"fxFlex.sm","fxFlex.md":"fxFlex.md","fxFlex.lg":"fxFlex.lg","fxFlex.xl":"fxFlex.xl","fxFlex.lt-sm":"fxFlex.lt-sm","fxFlex.lt-md":"fxFlex.lt-md","fxFlex.lt-lg":"fxFlex.lt-lg","fxFlex.lt-xl":"fxFlex.lt-xl","fxFlex.gt-xs":"fxFlex.gt-xs","fxFlex.gt-sm":"fxFlex.gt-sm","fxFlex.gt-md":"fxFlex.gt-md","fxFlex.gt-lg":"fxFlex.gt-lg"},features:[e.qOj]}),He})();const L=new Map,I=new Map,x=new Map,r=new Map;let ht=(()=>{class He extends v.QI{buildStyles(V,ve){const Ee={},[et,$t]=V.split(" ");switch(et){case"center":Ee["justify-content"]="center";break;case"space-around":Ee["justify-content"]="space-around";break;case"space-between":Ee["justify-content"]="space-between";break;case"space-evenly":Ee["justify-content"]="space-evenly";break;case"end":case"flex-end":Ee["justify-content"]="flex-end";break;default:Ee["justify-content"]="flex-start"}switch($t){case"start":case"flex-start":Ee["align-items"]=Ee["align-content"]="flex-start";break;case"center":Ee["align-items"]=Ee["align-content"]="center";break;case"end":case"flex-end":Ee["align-items"]=Ee["align-content"]="flex-end";break;case"space-between":Ee["align-content"]="space-between",Ee["align-items"]="stretch";break;case"space-around":Ee["align-content"]="space-around",Ee["align-items"]="stretch";break;case"baseline":Ee["align-content"]="stretch",Ee["align-items"]="baseline";break;default:Ee["align-items"]=Ee["align-content"]="stretch"}return(0,M.kt)(Ee,{display:ve.inline?"inline-flex":"flex","flex-direction":ve.layout,"box-sizing":"border-box","max-width":"stretch"===$t?(0,M.tj)(ve.layout)?null:"100%":null,"max-height":"stretch"===$t&&(0,M.tj)(ve.layout)?"100%":null})}}return He.\u0275fac=function(){let Se;return function(ve){return(Se||(Se=e.n5z(He)))(ve||He)}}(),He.\u0275prov=e.Yz7({token:He,factory:He.\u0275fac,providedIn:"root"}),He})();const it=["fxLayoutAlign","fxLayoutAlign.xs","fxLayoutAlign.sm","fxLayoutAlign.md","fxLayoutAlign.lg","fxLayoutAlign.xl","fxLayoutAlign.lt-sm","fxLayoutAlign.lt-md","fxLayoutAlign.lt-lg","fxLayoutAlign.lt-xl","fxLayoutAlign.gt-xs","fxLayoutAlign.gt-sm","fxLayoutAlign.gt-md","fxLayoutAlign.gt-lg"];let nt=(()=>{class He extends v.iR{constructor(V,ve,Ee,et){super(V,Ee,ve,et),this.DIRECTIVE_KEY="layout-align",this.layout="row",this.inline=!1,this.init(),this.marshal.trackValue(this.nativeElement,"layout").pipe((0,C.R)(this.destroySubject)).subscribe(this.onLayoutChange.bind(this))}updateWithValue(V){const ve=this.layout||"row",Ee=this.inline;"row"===ve&&Ee?this.styleCache=Oi:"row"!==ve||Ee?"row-reverse"===ve&&Ee?this.styleCache=ti:"row-reverse"!==ve||Ee?"column"===ve&&Ee?this.styleCache=jt:"column"!==ve||Ee?"column-reverse"===ve&&Ee?this.styleCache=Pi:"column-reverse"===ve&&!Ee&&(this.styleCache=Vt):this.styleCache=Bt:this.styleCache=Nt:this.styleCache=wt,this.addStyles(V,{layout:ve,inline:Ee})}onLayoutChange(V){const ve=V.value.split(" ");this.layout=ve[0],this.inline=V.value.includes("inline"),M.iQ.find(Ee=>Ee===this.layout)||(this.layout="row"),this.triggerUpdate()}}return He.\u0275fac=function(V){return new(V||He)(e.Y36(e.SBq),e.Y36(v.RK),e.Y36(ht),e.Y36(v.yB))},He.\u0275dir=e.lG2({type:He,features:[e.qOj]}),He})(),st=(()=>{class He extends nt{constructor(){super(...arguments),this.inputs=it}}return He.\u0275fac=function(){let Se;return function(ve){return(Se||(Se=e.n5z(He)))(ve||He)}}(),He.\u0275dir=e.lG2({type:He,selectors:[["","fxLayoutAlign",""],["","fxLayoutAlign.xs",""],["","fxLayoutAlign.sm",""],["","fxLayoutAlign.md",""],["","fxLayoutAlign.lg",""],["","fxLayoutAlign.xl",""],["","fxLayoutAlign.lt-sm",""],["","fxLayoutAlign.lt-md",""],["","fxLayoutAlign.lt-lg",""],["","fxLayoutAlign.lt-xl",""],["","fxLayoutAlign.gt-xs",""],["","fxLayoutAlign.gt-sm",""],["","fxLayoutAlign.gt-md",""],["","fxLayoutAlign.gt-lg",""]],inputs:{fxLayoutAlign:"fxLayoutAlign","fxLayoutAlign.xs":"fxLayoutAlign.xs","fxLayoutAlign.sm":"fxLayoutAlign.sm","fxLayoutAlign.md":"fxLayoutAlign.md","fxLayoutAlign.lg":"fxLayoutAlign.lg","fxLayoutAlign.xl":"fxLayoutAlign.xl","fxLayoutAlign.lt-sm":"fxLayoutAlign.lt-sm","fxLayoutAlign.lt-md":"fxLayoutAlign.lt-md","fxLayoutAlign.lt-lg":"fxLayoutAlign.lt-lg","fxLayoutAlign.lt-xl":"fxLayoutAlign.lt-xl","fxLayoutAlign.gt-xs":"fxLayoutAlign.gt-xs","fxLayoutAlign.gt-sm":"fxLayoutAlign.gt-sm","fxLayoutAlign.gt-md":"fxLayoutAlign.gt-md","fxLayoutAlign.gt-lg":"fxLayoutAlign.gt-lg"},features:[e.qOj]}),He})();const wt=new Map,Bt=new Map,Nt=new Map,Vt=new Map,Oi=new Map,jt=new Map,ti=new Map,Pi=new Map;let di=(()=>{class He{}return He.\u0275fac=function(V){return new(V||He)},He.\u0275mod=e.oAB({type:He}),He.\u0275inj=e.cJS({imports:[[v.IR,t.vT]]}),He})()},3075:(Ue,K,m)=>{"use strict";m.d(K,{Zs:()=>er,Fj:()=>D,qu:()=>Ya,NI:()=>Vi,oH:()=>xr,u:()=>xa,sg:()=>zi,u5:()=>pa,Fd:()=>Jr,qQ:()=>Rr,Cf:()=>G,JU:()=>P,a5:()=>Ae,JJ:()=>Ve,JL:()=>ue,F:()=>be,On:()=>Ki,wV:()=>gt,UX:()=>Zn,Q7:()=>Vr,kI:()=>ie,_Y:()=>at});var e=m(5e3),t=m(9808),v=m(457),M=m(4128),s=m(4004);let C=(()=>{class ye{constructor(ae,Qe){this._renderer=ae,this._elementRef=Qe,this.onChange=Yt=>{},this.onTouched=()=>{}}setProperty(ae,Qe){this._renderer.setProperty(this._elementRef.nativeElement,ae,Qe)}registerOnTouched(ae){this.onTouched=ae}registerOnChange(ae){this.onChange=ae}setDisabledState(ae){this.setProperty("disabled",ae)}}return ye.\u0275fac=function(ae){return new(ae||ye)(e.Y36(e.Qsj),e.Y36(e.SBq))},ye.\u0275dir=e.lG2({type:ye}),ye})(),c=(()=>{class ye extends C{}return ye.\u0275fac=function(){let Q;return function(Qe){return(Q||(Q=e.n5z(ye)))(Qe||ye)}}(),ye.\u0275dir=e.lG2({type:ye,features:[e.qOj]}),ye})();const P=new e.OlP("NgValueAccessor"),T={provide:P,useExisting:(0,e.Gpc)(()=>D),multi:!0},S=new e.OlP("CompositionEventMode");let D=(()=>{class ye extends C{constructor(ae,Qe,Yt){super(ae,Qe),this._compositionMode=Yt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function(){const ye=(0,t.q)()?(0,t.q)().getUserAgent():"";return/android (\d+)/.test(ye.toLowerCase())}())}writeValue(ae){this.setProperty("value",null==ae?"":ae)}_handleInput(ae){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(ae)}_compositionStart(){this._composing=!0}_compositionEnd(ae){this._composing=!1,this._compositionMode&&this.onChange(ae)}}return ye.\u0275fac=function(ae){return new(ae||ye)(e.Y36(e.Qsj),e.Y36(e.SBq),e.Y36(S,8))},ye.\u0275dir=e.lG2({type:ye,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(ae,Qe){1&ae&&e.NdJ("input",function(mi){return Qe._handleInput(mi.target.value)})("blur",function(){return Qe.onTouched()})("compositionstart",function(){return Qe._compositionStart()})("compositionend",function(mi){return Qe._compositionEnd(mi.target.value)})},features:[e._Bn([T]),e.qOj]}),ye})();function w(ye){return null==ye||0===ye.length}function U(ye){return null!=ye&&"number"==typeof ye.length}const G=new e.OlP("NgValidators"),W=new e.OlP("NgAsyncValidators"),ee=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class ie{static min(Q){return _e(Q)}static max(Q){return fe(Q)}static required(Q){return de(Q)}static requiredTrue(Q){return ne(Q)}static email(Q){return w((ye=Q).value)||ee.test(ye.value)?null:{email:!0};var ye}static minLength(Q){return ye=Q,Q=>w(Q.value)||!U(Q.value)?null:Q.value.lengthU(Q.value)&&Q.value.length>ye?{maxlength:{requiredLength:ye,actualLength:Q.value.length}}:null;var ye}static pattern(Q){return function(ye){if(!ye)return a;let Q,ae;return"string"==typeof ye?(ae="","^"!==ye.charAt(0)&&(ae+="^"),ae+=ye,"$"!==ye.charAt(ye.length-1)&&(ae+="$"),Q=new RegExp(ae)):(ae=ye.toString(),Q=ye),Qe=>{if(w(Qe.value))return null;const Yt=Qe.value;return Q.test(Yt)?null:{pattern:{requiredPattern:ae,actualValue:Yt}}}}(Q)}static nullValidator(Q){return null}static compose(Q){return r(Q)}static composeAsync(Q){return J(Q)}}function _e(ye){return Q=>{if(w(Q.value)||w(ye))return null;const ae=parseFloat(Q.value);return!isNaN(ae)&&ae{if(w(Q.value)||w(ye))return null;const ae=parseFloat(Q.value);return!isNaN(ae)&&ae>ye?{max:{max:ye,actual:Q.value}}:null}}function de(ye){return w(ye.value)?{required:!0}:null}function ne(ye){return!0===ye.value?null:{required:!0}}function a(ye){return null}function p(ye){return null!=ye}function u(ye){const Q=(0,e.QGY)(ye)?(0,v.D)(ye):ye;return(0,e.CqO)(Q),Q}function _(ye){let Q={};return ye.forEach(ae=>{Q=null!=ae?Object.assign(Object.assign({},Q),ae):Q}),0===Object.keys(Q).length?null:Q}function L(ye,Q){return Q.map(ae=>ae(ye))}function x(ye){return ye.map(Q=>function(ye){return!ye.validate}(Q)?Q:ae=>Q.validate(ae))}function r(ye){if(!ye)return null;const Q=ye.filter(p);return 0==Q.length?null:function(ae){return _(L(ae,Q))}}function b(ye){return null!=ye?r(x(ye)):null}function J(ye){if(!ye)return null;const Q=ye.filter(p);return 0==Q.length?null:function(ae){const Qe=L(ae,Q).map(u);return(0,M.D)(Qe).pipe((0,s.U)(_))}}function F(ye){return null!=ye?J(x(ye)):null}function B(ye,Q){return null===ye?[Q]:Array.isArray(ye)?[...ye,Q]:[ye,Q]}function te(ye){return ye._rawValidators}function xe(ye){return ye._rawAsyncValidators}function Re(ye){return ye?Array.isArray(ye)?ye:[ye]:[]}function Fe(ye,Q){return Array.isArray(ye)?ye.includes(Q):ye===Q}function q(ye,Q){const ae=Re(Q);return Re(ye).forEach(Yt=>{Fe(ae,Yt)||ae.push(Yt)}),ae}function j(ye,Q){return Re(Q).filter(ae=>!Fe(ye,ae))}class we{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(Q){this._rawValidators=Q||[],this._composedValidatorFn=b(this._rawValidators)}_setAsyncValidators(Q){this._rawAsyncValidators=Q||[],this._composedAsyncValidatorFn=F(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(Q){this._onDestroyCallbacks.push(Q)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(Q=>Q()),this._onDestroyCallbacks=[]}reset(Q){this.control&&this.control.reset(Q)}hasError(Q,ae){return!!this.control&&this.control.hasError(Q,ae)}getError(Q,ae){return this.control?this.control.getError(Q,ae):null}}class Ae extends we{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class le extends we{get formDirective(){return null}get path(){return null}}class We{constructor(Q){this._cd=Q}is(Q){var ae,Qe,Yt;return"submitted"===Q?!!(null===(ae=this._cd)||void 0===ae?void 0:ae.submitted):!!(null===(Yt=null===(Qe=this._cd)||void 0===Qe?void 0:Qe.control)||void 0===Yt?void 0:Yt[Q])}}let Ve=(()=>{class ye extends We{constructor(ae){super(ae)}}return ye.\u0275fac=function(ae){return new(ae||ye)(e.Y36(Ae,2))},ye.\u0275dir=e.lG2({type:ye,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(ae,Qe){2&ae&&e.ekj("ng-untouched",Qe.is("untouched"))("ng-touched",Qe.is("touched"))("ng-pristine",Qe.is("pristine"))("ng-dirty",Qe.is("dirty"))("ng-valid",Qe.is("valid"))("ng-invalid",Qe.is("invalid"))("ng-pending",Qe.is("pending"))},features:[e.qOj]}),ye})(),ue=(()=>{class ye extends We{constructor(ae){super(ae)}}return ye.\u0275fac=function(ae){return new(ae||ye)(e.Y36(le,10))},ye.\u0275dir=e.lG2({type:ye,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(ae,Qe){2&ae&&e.ekj("ng-untouched",Qe.is("untouched"))("ng-touched",Qe.is("touched"))("ng-pristine",Qe.is("pristine"))("ng-dirty",Qe.is("dirty"))("ng-valid",Qe.is("valid"))("ng-invalid",Qe.is("invalid"))("ng-pending",Qe.is("pending"))("ng-submitted",Qe.is("submitted"))},features:[e.qOj]}),ye})();function wt(ye,Q){return[...Q.path,ye]}function Bt(ye,Q){jt(ye,Q),Q.valueAccessor.writeValue(ye.value),function(ye,Q){Q.valueAccessor.registerOnChange(ae=>{ye._pendingValue=ae,ye._pendingChange=!0,ye._pendingDirty=!0,"change"===ye.updateOn&&di(ye,Q)})}(ye,Q),function(ye,Q){const ae=(Qe,Yt)=>{Q.valueAccessor.writeValue(Qe),Yt&&Q.viewToModelUpdate(Qe)};ye.registerOnChange(ae),Q._registerOnDestroy(()=>{ye._unregisterOnChange(ae)})}(ye,Q),function(ye,Q){Q.valueAccessor.registerOnTouched(()=>{ye._pendingTouched=!0,"blur"===ye.updateOn&&ye._pendingChange&&di(ye,Q),"submit"!==ye.updateOn&&ye.markAsTouched()})}(ye,Q),function(ye,Q){if(Q.valueAccessor.setDisabledState){const ae=Qe=>{Q.valueAccessor.setDisabledState(Qe)};ye.registerOnDisabledChange(ae),Q._registerOnDestroy(()=>{ye._unregisterOnDisabledChange(ae)})}}(ye,Q)}function Nt(ye,Q,ae=!0){const Qe=()=>{};Q.valueAccessor&&(Q.valueAccessor.registerOnChange(Qe),Q.valueAccessor.registerOnTouched(Qe)),ti(ye,Q),ye&&(Q._invokeOnDestroyCallbacks(),ye._registerOnCollectionChange(()=>{}))}function Vt(ye,Q){ye.forEach(ae=>{ae.registerOnValidatorChange&&ae.registerOnValidatorChange(Q)})}function jt(ye,Q){const ae=te(ye);null!==Q.validator?ye.setValidators(B(ae,Q.validator)):"function"==typeof ae&&ye.setValidators([ae]);const Qe=xe(ye);null!==Q.asyncValidator?ye.setAsyncValidators(B(Qe,Q.asyncValidator)):"function"==typeof Qe&&ye.setAsyncValidators([Qe]);const Yt=()=>ye.updateValueAndValidity();Vt(Q._rawValidators,Yt),Vt(Q._rawAsyncValidators,Yt)}function ti(ye,Q){let ae=!1;if(null!==ye){if(null!==Q.validator){const Yt=te(ye);if(Array.isArray(Yt)&&Yt.length>0){const mi=Yt.filter(Ct=>Ct!==Q.validator);mi.length!==Yt.length&&(ae=!0,ye.setValidators(mi))}}if(null!==Q.asyncValidator){const Yt=xe(ye);if(Array.isArray(Yt)&&Yt.length>0){const mi=Yt.filter(Ct=>Ct!==Q.asyncValidator);mi.length!==Yt.length&&(ae=!0,ye.setAsyncValidators(mi))}}}const Qe=()=>{};return Vt(Q._rawValidators,Qe),Vt(Q._rawAsyncValidators,Qe),ae}function di(ye,Q){ye._pendingDirty&&ye.markAsDirty(),ye.setValue(ye._pendingValue,{emitModelToViewChange:!1}),Q.viewToModelUpdate(ye._pendingValue),ye._pendingChange=!1}function Se(ye,Q){jt(ye,Q)}function et(ye,Q){if(!ye.hasOwnProperty("model"))return!1;const ae=ye.model;return!!ae.isFirstChange()||!Object.is(Q,ae.currentValue)}function Pt(ye,Q){ye._syncPendingControls(),Q.forEach(ae=>{const Qe=ae.control;"submit"===Qe.updateOn&&Qe._pendingChange&&(ae.viewToModelUpdate(Qe._pendingValue),Qe._pendingChange=!1)})}function Xt(ye,Q){if(!Q)return null;let ae,Qe,Yt;return Array.isArray(Q),Q.forEach(mi=>{mi.constructor===D?ae=mi:function(ye){return Object.getPrototypeOf(ye.constructor)===c}(mi)?Qe=mi:Yt=mi}),Yt||Qe||ae||null}function lt(ye,Q){const ae=ye.indexOf(Q);ae>-1&&ye.splice(ae,1)}const Be="VALID",rt="INVALID",ot="PENDING",At="DISABLED";function Ut(ye){return(ci(ye)?ye.validators:ye)||null}function Ft(ye){return Array.isArray(ye)?b(ye):ye||null}function Si(ye,Q){return(ci(Q)?Q.asyncValidators:ye)||null}function ai(ye){return Array.isArray(ye)?F(ye):ye||null}function ci(ye){return null!=ye&&!Array.isArray(ye)&&"object"==typeof ye}class rn{constructor(Q,ae){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=Q,this._rawAsyncValidators=ae,this._composedValidatorFn=Ft(this._rawValidators),this._composedAsyncValidatorFn=ai(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(Q){this._rawValidators=this._composedValidatorFn=Q}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(Q){this._rawAsyncValidators=this._composedAsyncValidatorFn=Q}get parent(){return this._parent}get valid(){return this.status===Be}get invalid(){return this.status===rt}get pending(){return this.status==ot}get disabled(){return this.status===At}get enabled(){return this.status!==At}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(Q){this._rawValidators=Q,this._composedValidatorFn=Ft(Q)}setAsyncValidators(Q){this._rawAsyncValidators=Q,this._composedAsyncValidatorFn=ai(Q)}addValidators(Q){this.setValidators(q(Q,this._rawValidators))}addAsyncValidators(Q){this.setAsyncValidators(q(Q,this._rawAsyncValidators))}removeValidators(Q){this.setValidators(j(Q,this._rawValidators))}removeAsyncValidators(Q){this.setAsyncValidators(j(Q,this._rawAsyncValidators))}hasValidator(Q){return Fe(this._rawValidators,Q)}hasAsyncValidator(Q){return Fe(this._rawAsyncValidators,Q)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(Q={}){this.touched=!0,this._parent&&!Q.onlySelf&&this._parent.markAsTouched(Q)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(Q=>Q.markAllAsTouched())}markAsUntouched(Q={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(ae=>{ae.markAsUntouched({onlySelf:!0})}),this._parent&&!Q.onlySelf&&this._parent._updateTouched(Q)}markAsDirty(Q={}){this.pristine=!1,this._parent&&!Q.onlySelf&&this._parent.markAsDirty(Q)}markAsPristine(Q={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(ae=>{ae.markAsPristine({onlySelf:!0})}),this._parent&&!Q.onlySelf&&this._parent._updatePristine(Q)}markAsPending(Q={}){this.status=ot,!1!==Q.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!Q.onlySelf&&this._parent.markAsPending(Q)}disable(Q={}){const ae=this._parentMarkedDirty(Q.onlySelf);this.status=At,this.errors=null,this._forEachChild(Qe=>{Qe.disable(Object.assign(Object.assign({},Q),{onlySelf:!0}))}),this._updateValue(),!1!==Q.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},Q),{skipPristineCheck:ae})),this._onDisabledChange.forEach(Qe=>Qe(!0))}enable(Q={}){const ae=this._parentMarkedDirty(Q.onlySelf);this.status=Be,this._forEachChild(Qe=>{Qe.enable(Object.assign(Object.assign({},Q),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:Q.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},Q),{skipPristineCheck:ae})),this._onDisabledChange.forEach(Qe=>Qe(!1))}_updateAncestors(Q){this._parent&&!Q.onlySelf&&(this._parent.updateValueAndValidity(Q),Q.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(Q){this._parent=Q}updateValueAndValidity(Q={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Be||this.status===ot)&&this._runAsyncValidator(Q.emitEvent)),!1!==Q.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!Q.onlySelf&&this._parent.updateValueAndValidity(Q)}_updateTreeValidity(Q={emitEvent:!0}){this._forEachChild(ae=>ae._updateTreeValidity(Q)),this.updateValueAndValidity({onlySelf:!0,emitEvent:Q.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?At:Be}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(Q){if(this.asyncValidator){this.status=ot,this._hasOwnPendingAsyncValidator=!0;const ae=u(this.asyncValidator(this));this._asyncValidationSubscription=ae.subscribe(Qe=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(Qe,{emitEvent:Q})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(Q,ae={}){this.errors=Q,this._updateControlsErrors(!1!==ae.emitEvent)}get(Q){return function(ye,Q,ae){if(null==Q||(Array.isArray(Q)||(Q=Q.split(".")),Array.isArray(Q)&&0===Q.length))return null;let Qe=ye;return Q.forEach(Yt=>{Qe=Qe instanceof Di?Qe.controls.hasOwnProperty(Yt)?Qe.controls[Yt]:null:Qe instanceof Xi&&Qe.at(Yt)||null}),Qe}(this,Q)}getError(Q,ae){const Qe=ae?this.get(ae):this;return Qe&&Qe.errors?Qe.errors[Q]:null}hasError(Q,ae){return!!this.getError(Q,ae)}get root(){let Q=this;for(;Q._parent;)Q=Q._parent;return Q}_updateControlsErrors(Q){this.status=this._calculateStatus(),Q&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(Q)}_initObservables(){this.valueChanges=new e.vpe,this.statusChanges=new e.vpe}_calculateStatus(){return this._allControlsDisabled()?At:this.errors?rt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(ot)?ot:this._anyControlsHaveStatus(rt)?rt:Be}_anyControlsHaveStatus(Q){return this._anyControls(ae=>ae.status===Q)}_anyControlsDirty(){return this._anyControls(Q=>Q.dirty)}_anyControlsTouched(){return this._anyControls(Q=>Q.touched)}_updatePristine(Q={}){this.pristine=!this._anyControlsDirty(),this._parent&&!Q.onlySelf&&this._parent._updatePristine(Q)}_updateTouched(Q={}){this.touched=this._anyControlsTouched(),this._parent&&!Q.onlySelf&&this._parent._updateTouched(Q)}_isBoxedValue(Q){return"object"==typeof Q&&null!==Q&&2===Object.keys(Q).length&&"value"in Q&&"disabled"in Q}_registerOnCollectionChange(Q){this._onCollectionChange=Q}_setUpdateStrategy(Q){ci(Q)&&null!=Q.updateOn&&(this._updateOn=Q.updateOn)}_parentMarkedDirty(Q){return!Q&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class Vi extends rn{constructor(Q=null,ae,Qe){super(Ut(ae),Si(Qe,ae)),this._onChange=[],this._applyFormState(Q),this._setUpdateStrategy(ae),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}setValue(Q,ae={}){this.value=this._pendingValue=Q,this._onChange.length&&!1!==ae.emitModelToViewChange&&this._onChange.forEach(Qe=>Qe(this.value,!1!==ae.emitViewToModelChange)),this.updateValueAndValidity(ae)}patchValue(Q,ae={}){this.setValue(Q,ae)}reset(Q=null,ae={}){this._applyFormState(Q),this.markAsPristine(ae),this.markAsUntouched(ae),this.setValue(this.value,ae),this._pendingChange=!1}_updateValue(){}_anyControls(Q){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(Q){this._onChange.push(Q)}_unregisterOnChange(Q){lt(this._onChange,Q)}registerOnDisabledChange(Q){this._onDisabledChange.push(Q)}_unregisterOnDisabledChange(Q){lt(this._onDisabledChange,Q)}_forEachChild(Q){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(Q){this._isBoxedValue(Q)?(this.value=this._pendingValue=Q.value,Q.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=Q}}class Di extends rn{constructor(Q,ae,Qe){super(Ut(ae),Si(Qe,ae)),this.controls=Q,this._initObservables(),this._setUpdateStrategy(ae),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(Q,ae){return this.controls[Q]?this.controls[Q]:(this.controls[Q]=ae,ae.setParent(this),ae._registerOnCollectionChange(this._onCollectionChange),ae)}addControl(Q,ae,Qe={}){this.registerControl(Q,ae),this.updateValueAndValidity({emitEvent:Qe.emitEvent}),this._onCollectionChange()}removeControl(Q,ae={}){this.controls[Q]&&this.controls[Q]._registerOnCollectionChange(()=>{}),delete this.controls[Q],this.updateValueAndValidity({emitEvent:ae.emitEvent}),this._onCollectionChange()}setControl(Q,ae,Qe={}){this.controls[Q]&&this.controls[Q]._registerOnCollectionChange(()=>{}),delete this.controls[Q],ae&&this.registerControl(Q,ae),this.updateValueAndValidity({emitEvent:Qe.emitEvent}),this._onCollectionChange()}contains(Q){return this.controls.hasOwnProperty(Q)&&this.controls[Q].enabled}setValue(Q,ae={}){this._checkAllValuesPresent(Q),Object.keys(Q).forEach(Qe=>{this._throwIfControlMissing(Qe),this.controls[Qe].setValue(Q[Qe],{onlySelf:!0,emitEvent:ae.emitEvent})}),this.updateValueAndValidity(ae)}patchValue(Q,ae={}){null!=Q&&(Object.keys(Q).forEach(Qe=>{this.controls[Qe]&&this.controls[Qe].patchValue(Q[Qe],{onlySelf:!0,emitEvent:ae.emitEvent})}),this.updateValueAndValidity(ae))}reset(Q={},ae={}){this._forEachChild((Qe,Yt)=>{Qe.reset(Q[Yt],{onlySelf:!0,emitEvent:ae.emitEvent})}),this._updatePristine(ae),this._updateTouched(ae),this.updateValueAndValidity(ae)}getRawValue(){return this._reduceChildren({},(Q,ae,Qe)=>(Q[Qe]=ae instanceof Vi?ae.value:ae.getRawValue(),Q))}_syncPendingControls(){let Q=this._reduceChildren(!1,(ae,Qe)=>!!Qe._syncPendingControls()||ae);return Q&&this.updateValueAndValidity({onlySelf:!0}),Q}_throwIfControlMissing(Q){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[Q])throw new Error(`Cannot find form control with name: ${Q}.`)}_forEachChild(Q){Object.keys(this.controls).forEach(ae=>{const Qe=this.controls[ae];Qe&&Q(Qe,ae)})}_setUpControls(){this._forEachChild(Q=>{Q.setParent(this),Q._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(Q){for(const ae of Object.keys(this.controls)){const Qe=this.controls[ae];if(this.contains(ae)&&Q(Qe))return!0}return!1}_reduceValue(){return this._reduceChildren({},(Q,ae,Qe)=>((ae.enabled||this.disabled)&&(Q[Qe]=ae.value),Q))}_reduceChildren(Q,ae){let Qe=Q;return this._forEachChild((Yt,mi)=>{Qe=ae(Qe,Yt,mi)}),Qe}_allControlsDisabled(){for(const Q of Object.keys(this.controls))if(this.controls[Q].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_checkAllValuesPresent(Q){this._forEachChild((ae,Qe)=>{if(void 0===Q[Qe])throw new Error(`Must supply a value for form control with name: '${Qe}'.`)})}}class Xi extends rn{constructor(Q,ae,Qe){super(Ut(ae),Si(Qe,ae)),this.controls=Q,this._initObservables(),this._setUpdateStrategy(ae),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(Q){return this.controls[Q]}push(Q,ae={}){this.controls.push(Q),this._registerControl(Q),this.updateValueAndValidity({emitEvent:ae.emitEvent}),this._onCollectionChange()}insert(Q,ae,Qe={}){this.controls.splice(Q,0,ae),this._registerControl(ae),this.updateValueAndValidity({emitEvent:Qe.emitEvent})}removeAt(Q,ae={}){this.controls[Q]&&this.controls[Q]._registerOnCollectionChange(()=>{}),this.controls.splice(Q,1),this.updateValueAndValidity({emitEvent:ae.emitEvent})}setControl(Q,ae,Qe={}){this.controls[Q]&&this.controls[Q]._registerOnCollectionChange(()=>{}),this.controls.splice(Q,1),ae&&(this.controls.splice(Q,0,ae),this._registerControl(ae)),this.updateValueAndValidity({emitEvent:Qe.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(Q,ae={}){this._checkAllValuesPresent(Q),Q.forEach((Qe,Yt)=>{this._throwIfControlMissing(Yt),this.at(Yt).setValue(Qe,{onlySelf:!0,emitEvent:ae.emitEvent})}),this.updateValueAndValidity(ae)}patchValue(Q,ae={}){null!=Q&&(Q.forEach((Qe,Yt)=>{this.at(Yt)&&this.at(Yt).patchValue(Qe,{onlySelf:!0,emitEvent:ae.emitEvent})}),this.updateValueAndValidity(ae))}reset(Q=[],ae={}){this._forEachChild((Qe,Yt)=>{Qe.reset(Q[Yt],{onlySelf:!0,emitEvent:ae.emitEvent})}),this._updatePristine(ae),this._updateTouched(ae),this.updateValueAndValidity(ae)}getRawValue(){return this.controls.map(Q=>Q instanceof Vi?Q.value:Q.getRawValue())}clear(Q={}){this.controls.length<1||(this._forEachChild(ae=>ae._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:Q.emitEvent}))}_syncPendingControls(){let Q=this.controls.reduce((ae,Qe)=>!!Qe._syncPendingControls()||ae,!1);return Q&&this.updateValueAndValidity({onlySelf:!0}),Q}_throwIfControlMissing(Q){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(Q))throw new Error(`Cannot find form control at index ${Q}`)}_forEachChild(Q){this.controls.forEach((ae,Qe)=>{Q(ae,Qe)})}_updateValue(){this.value=this.controls.filter(Q=>Q.enabled||this.disabled).map(Q=>Q.value)}_anyControls(Q){return this.controls.some(ae=>ae.enabled&&Q(ae))}_setUpControls(){this._forEachChild(Q=>this._registerControl(Q))}_checkAllValuesPresent(Q){this._forEachChild((ae,Qe)=>{if(void 0===Q[Qe])throw new Error(`Must supply a value for form control at index: ${Qe}.`)})}_allControlsDisabled(){for(const Q of this.controls)if(Q.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(Q){Q.setParent(this),Q._registerOnCollectionChange(this._onCollectionChange)}}const Ke={provide:le,useExisting:(0,e.Gpc)(()=>be)},mt=(()=>Promise.resolve(null))();let be=(()=>{class ye extends le{constructor(ae,Qe){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new e.vpe,this.form=new Di({},b(ae),F(Qe))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(ae){mt.then(()=>{const Qe=this._findContainer(ae.path);ae.control=Qe.registerControl(ae.name,ae.control),Bt(ae.control,ae),ae.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(ae)})}getControl(ae){return this.form.get(ae.path)}removeControl(ae){mt.then(()=>{const Qe=this._findContainer(ae.path);Qe&&Qe.removeControl(ae.name),lt(this._directives,ae)})}addFormGroup(ae){mt.then(()=>{const Qe=this._findContainer(ae.path),Yt=new Di({});Se(Yt,ae),Qe.registerControl(ae.name,Yt),Yt.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(ae){mt.then(()=>{const Qe=this._findContainer(ae.path);Qe&&Qe.removeControl(ae.name)})}getFormGroup(ae){return this.form.get(ae.path)}updateModel(ae,Qe){mt.then(()=>{this.form.get(ae.path).setValue(Qe)})}setValue(ae){this.control.setValue(ae)}onSubmit(ae){return this.submitted=!0,Pt(this.form,this._directives),this.ngSubmit.emit(ae),!1}onReset(){this.resetForm()}resetForm(ae){this.form.reset(ae),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(ae){return ae.pop(),ae.length?this.form.get(ae):this.form}}return ye.\u0275fac=function(ae){return new(ae||ye)(e.Y36(G,10),e.Y36(W,10))},ye.\u0275dir=e.lG2({type:ye,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(ae,Qe){1&ae&&e.NdJ("submit",function(mi){return Qe.onSubmit(mi)})("reset",function(){return Qe.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[e._Bn([Ke]),e.qOj]}),ye})();const Ri={provide:Ae,useExisting:(0,e.Gpc)(()=>Ki)},Ii=(()=>Promise.resolve(null))();let Ki=(()=>{class ye extends Ae{constructor(ae,Qe,Yt,mi){super(),this.control=new Vi,this._registered=!1,this.update=new e.vpe,this._parent=ae,this._setValidators(Qe),this._setAsyncValidators(Yt),this.valueAccessor=Xt(0,mi)}ngOnChanges(ae){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in ae&&this._updateDisabled(ae),et(ae,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?wt(this.name,this._parent):[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(ae){this.viewModel=ae,this.update.emit(ae)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Bt(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(ae){Ii.then(()=>{this.control.setValue(ae,{emitViewToModelChange:!1})})}_updateDisabled(ae){const Qe=ae.isDisabled.currentValue,Yt=""===Qe||Qe&&"false"!==Qe;Ii.then(()=>{Yt&&!this.control.disabled?this.control.disable():!Yt&&this.control.disabled&&this.control.enable()})}}return ye.\u0275fac=function(ae){return new(ae||ye)(e.Y36(le,9),e.Y36(G,10),e.Y36(W,10),e.Y36(P,10))},ye.\u0275dir=e.lG2({type:ye,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[e._Bn([Ri]),e.qOj,e.TTD]}),ye})(),at=(()=>{class ye{}return ye.\u0275fac=function(ae){return new(ae||ye)},ye.\u0275dir=e.lG2({type:ye,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),ye})();const Qt={provide:P,useExisting:(0,e.Gpc)(()=>gt),multi:!0};let gt=(()=>{class ye extends c{writeValue(ae){this.setProperty("value",null==ae?"":ae)}registerOnChange(ae){this.onChange=Qe=>{ae(""==Qe?null:parseFloat(Qe))}}}return ye.\u0275fac=function(){let Q;return function(Qe){return(Q||(Q=e.n5z(ye)))(Qe||ye)}}(),ye.\u0275dir=e.lG2({type:ye,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(ae,Qe){1&ae&&e.NdJ("input",function(mi){return Qe.onChange(mi.target.value)})("blur",function(){return Qe.onTouched()})},features:[e._Bn([Qt]),e.qOj]}),ye})(),Ci=(()=>{class ye{}return ye.\u0275fac=function(ae){return new(ae||ye)},ye.\u0275mod=e.oAB({type:ye}),ye.\u0275inj=e.cJS({}),ye})();const pn=new e.OlP("NgModelWithFormControlWarning"),Pn={provide:Ae,useExisting:(0,e.Gpc)(()=>xr)};let xr=(()=>{class ye extends Ae{constructor(ae,Qe,Yt,mi){super(),this._ngModelWarningConfig=mi,this.update=new e.vpe,this._ngModelWarningSent=!1,this._setValidators(ae),this._setAsyncValidators(Qe),this.valueAccessor=Xt(0,Yt)}set isDisabled(ae){}ngOnChanges(ae){if(this._isControlChanged(ae)){const Qe=ae.form.previousValue;Qe&&Nt(Qe,this,!1),Bt(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})}et(ae,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&Nt(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(ae){this.viewModel=ae,this.update.emit(ae)}_isControlChanged(ae){return ae.hasOwnProperty("form")}}return ye._ngModelWarningSentOnce=!1,ye.\u0275fac=function(ae){return new(ae||ye)(e.Y36(G,10),e.Y36(W,10),e.Y36(P,10),e.Y36(pn,8))},ye.\u0275dir=e.lG2({type:ye,selectors:[["","formControl",""]],inputs:{form:["formControl","form"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[e._Bn([Pn]),e.qOj,e.TTD]}),ye})();const wi={provide:le,useExisting:(0,e.Gpc)(()=>zi)};let zi=(()=>{class ye extends le{constructor(ae,Qe){super(),this.validators=ae,this.asyncValidators=Qe,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new e.vpe,this._setValidators(ae),this._setAsyncValidators(Qe)}ngOnChanges(ae){this._checkFormPresent(),ae.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(ti(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(ae){const Qe=this.form.get(ae.path);return Bt(Qe,ae),Qe.updateValueAndValidity({emitEvent:!1}),this.directives.push(ae),Qe}getControl(ae){return this.form.get(ae.path)}removeControl(ae){Nt(ae.control||null,ae,!1),lt(this.directives,ae)}addFormGroup(ae){this._setUpFormContainer(ae)}removeFormGroup(ae){this._cleanUpFormContainer(ae)}getFormGroup(ae){return this.form.get(ae.path)}addFormArray(ae){this._setUpFormContainer(ae)}removeFormArray(ae){this._cleanUpFormContainer(ae)}getFormArray(ae){return this.form.get(ae.path)}updateModel(ae,Qe){this.form.get(ae.path).setValue(Qe)}onSubmit(ae){return this.submitted=!0,Pt(this.form,this.directives),this.ngSubmit.emit(ae),!1}onReset(){this.resetForm()}resetForm(ae){this.form.reset(ae),this.submitted=!1}_updateDomValue(){this.directives.forEach(ae=>{const Qe=ae.control,Yt=this.form.get(ae.path);Qe!==Yt&&(Nt(Qe||null,ae),Yt instanceof Vi&&(Bt(Yt,ae),ae.control=Yt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(ae){const Qe=this.form.get(ae.path);Se(Qe,ae),Qe.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(ae){if(this.form){const Qe=this.form.get(ae.path);Qe&&function(ye,Q){return ti(ye,Q)}(Qe,ae)&&Qe.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){jt(this.form,this),this._oldForm&&ti(this._oldForm,this)}_checkFormPresent(){}}return ye.\u0275fac=function(ae){return new(ae||ye)(e.Y36(G,10),e.Y36(W,10))},ye.\u0275dir=e.lG2({type:ye,selectors:[["","formGroup",""]],hostBindings:function(ae,Qe){1&ae&&e.NdJ("submit",function(mi){return Qe.onSubmit(mi)})("reset",function(){return Qe.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[e._Bn([wi]),e.qOj,e.TTD]}),ye})();const ba={provide:Ae,useExisting:(0,e.Gpc)(()=>xa)};let xa=(()=>{class ye extends Ae{constructor(ae,Qe,Yt,mi,Ct){super(),this._ngModelWarningConfig=Ct,this._added=!1,this.update=new e.vpe,this._ngModelWarningSent=!1,this._parent=ae,this._setValidators(Qe),this._setAsyncValidators(Yt),this.valueAccessor=Xt(0,mi)}set isDisabled(ae){}ngOnChanges(ae){this._added||this._setUpControl(),et(ae,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(ae){this.viewModel=ae,this.update.emit(ae)}get path(){return wt(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0}}return ye._ngModelWarningSentOnce=!1,ye.\u0275fac=function(ae){return new(ae||ye)(e.Y36(le,13),e.Y36(G,10),e.Y36(W,10),e.Y36(P,10),e.Y36(pn,8))},ye.\u0275dir=e.lG2({type:ye,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[e._Bn([ba]),e.qOj,e.TTD]}),ye})();function _n(ye){return"number"==typeof ye?ye:parseFloat(ye)}let Kn=(()=>{class ye{constructor(){this._validator=a}ngOnChanges(ae){if(this.inputName in ae){const Qe=this.normalizeInput(ae[this.inputName].currentValue);this._validator=this.enabled()?this.createValidator(Qe):a,this._onChange&&this._onChange()}}validate(ae){return this._validator(ae)}registerOnValidatorChange(ae){this._onChange=ae}enabled(){return null!=this[this.inputName]}}return ye.\u0275fac=function(ae){return new(ae||ye)},ye.\u0275dir=e.lG2({type:ye,features:[e.TTD]}),ye})();const Dr={provide:G,useExisting:(0,e.Gpc)(()=>Jr),multi:!0};let Jr=(()=>{class ye extends Kn{constructor(){super(...arguments),this.inputName="max",this.normalizeInput=ae=>_n(ae),this.createValidator=ae=>fe(ae)}}return ye.\u0275fac=function(){let Q;return function(Qe){return(Q||(Q=e.n5z(ye)))(Qe||ye)}}(),ye.\u0275dir=e.lG2({type:ye,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(ae,Qe){2&ae&&e.uIk("max",Qe.enabled()?Qe.max:null)},inputs:{max:"max"},features:[e._Bn([Dr]),e.qOj]}),ye})();const Ga={provide:G,useExisting:(0,e.Gpc)(()=>Rr),multi:!0};let Rr=(()=>{class ye extends Kn{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=ae=>_n(ae),this.createValidator=ae=>_e(ae)}}return ye.\u0275fac=function(){let Q;return function(Qe){return(Q||(Q=e.n5z(ye)))(Qe||ye)}}(),ye.\u0275dir=e.lG2({type:ye,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(ae,Qe){2&ae&&e.uIk("min",Qe.enabled()?Qe.min:null)},inputs:{min:"min"},features:[e._Bn([Ga]),e.qOj]}),ye})();const Na={provide:G,useExisting:(0,e.Gpc)(()=>Vr),multi:!0},Ca={provide:G,useExisting:(0,e.Gpc)(()=>er),multi:!0};let Vr=(()=>{class ye{constructor(){this._required=!1}get required(){return this._required}set required(ae){this._required=null!=ae&&!1!==ae&&"false"!=`${ae}`,this._onChange&&this._onChange()}validate(ae){return this.required?de(ae):null}registerOnValidatorChange(ae){this._onChange=ae}}return ye.\u0275fac=function(ae){return new(ae||ye)},ye.\u0275dir=e.lG2({type:ye,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(ae,Qe){2&ae&&e.uIk("required",Qe.required?"":null)},inputs:{required:"required"},features:[e._Bn([Na])]}),ye})(),er=(()=>{class ye extends Vr{validate(ae){return this.required?ne(ae):null}}return ye.\u0275fac=function(){let Q;return function(Qe){return(Q||(Q=e.n5z(ye)))(Qe||ye)}}(),ye.\u0275dir=e.lG2({type:ye,selectors:[["input","type","checkbox","required","","formControlName",""],["input","type","checkbox","required","","formControl",""],["input","type","checkbox","required","","ngModel",""]],hostVars:1,hostBindings:function(ae,Qe){2&ae&&e.uIk("required",Qe.required?"":null)},features:[e._Bn([Ca]),e.qOj]}),ye})(),ra=(()=>{class ye{}return ye.\u0275fac=function(ae){return new(ae||ye)},ye.\u0275mod=e.oAB({type:ye}),ye.\u0275inj=e.cJS({imports:[[Ci]]}),ye})(),pa=(()=>{class ye{}return ye.\u0275fac=function(ae){return new(ae||ye)},ye.\u0275mod=e.oAB({type:ye}),ye.\u0275inj=e.cJS({imports:[ra]}),ye})(),Zn=(()=>{class ye{static withConfig(ae){return{ngModule:ye,providers:[{provide:pn,useValue:ae.warnOnNgModelWithFormControl}]}}}return ye.\u0275fac=function(ae){return new(ae||ye)},ye.\u0275mod=e.oAB({type:ye}),ye.\u0275inj=e.cJS({imports:[ra]}),ye})(),Ya=(()=>{class ye{group(ae,Qe=null){const Yt=this._reduceControls(ae);let ei,mi=null,Ct=null;return null!=Qe&&(function(ye){return void 0!==ye.asyncValidators||void 0!==ye.validators||void 0!==ye.updateOn}(Qe)?(mi=null!=Qe.validators?Qe.validators:null,Ct=null!=Qe.asyncValidators?Qe.asyncValidators:null,ei=null!=Qe.updateOn?Qe.updateOn:void 0):(mi=null!=Qe.validator?Qe.validator:null,Ct=null!=Qe.asyncValidator?Qe.asyncValidator:null)),new Di(Yt,{asyncValidators:Ct,updateOn:ei,validators:mi})}control(ae,Qe,Yt){return new Vi(ae,Qe,Yt)}array(ae,Qe,Yt){const mi=ae.map(Ct=>this._createControl(Ct));return new Xi(mi,Qe,Yt)}_reduceControls(ae){const Qe={};return Object.keys(ae).forEach(Yt=>{Qe[Yt]=this._createControl(ae[Yt])}),Qe}_createControl(ae){return ae instanceof Vi||ae instanceof Di||ae instanceof Xi?ae:Array.isArray(ae)?this.control(ae[0],ae.length>1?ae[1]:null,ae.length>2?ae[2]:null):this.control(ae)}}return ye.\u0275fac=function(ae){return new(ae||ye)},ye.\u0275prov=e.Yz7({token:ye,factory:ye.\u0275fac,providedIn:Zn}),ye})()},1079:(Ue,K,m)=>{"use strict";m.d(K,{XC:()=>x,Bb:()=>q,ZL:()=>xe});var e=m(5664),t=m(3191),v=m(5e3),M=m(508),s=m(727),C=m(7579),c=m(9770),P=m(6451),o=m(9646),O=m(4968),T=m(925),R=m(9808),S=m(9776),D=m(5303),w=m(1159),U=m(7429),G=m(3075),W=m(7322),ee=m(5698),ie=m(3900),_e=m(9300),fe=m(4004),de=m(8505),ne=m(4086),se=m(226);const oe=["panel"];function y(j,we){if(1&j&&(v.TgZ(0,"div",0,1),v.Hsn(2),v.qZA()),2&j){const Ae=we.id,le=v.oxw();v.Q6J("id",le.id)("ngClass",le._classList),v.uIk("aria-label",le.ariaLabel||null)("aria-labelledby",le._getPanelAriaLabelledby(Ae))}}const i=["*"];let a=0;class p{constructor(we,Ae){this.source=we,this.option=Ae}}const u=(0,M.Kr)(class{}),_=new v.OlP("mat-autocomplete-default-options",{providedIn:"root",factory:function(){return{autoActiveFirstOption:!1}}});let I=(()=>{class j extends u{constructor(Ae,le,We,yt){super(),this._changeDetectorRef=Ae,this._elementRef=le,this._activeOptionChanges=s.w0.EMPTY,this.showPanel=!1,this._isOpen=!1,this.displayWith=null,this.optionSelected=new v.vpe,this.opened=new v.vpe,this.closed=new v.vpe,this.optionActivated=new v.vpe,this._classList={},this.id="mat-autocomplete-"+a++,this.inertGroups=(null==yt?void 0:yt.SAFARI)||!1,this._autoActiveFirstOption=!!We.autoActiveFirstOption}get isOpen(){return this._isOpen&&this.showPanel}get autoActiveFirstOption(){return this._autoActiveFirstOption}set autoActiveFirstOption(Ae){this._autoActiveFirstOption=(0,t.Ig)(Ae)}set classList(Ae){this._classList=Ae&&Ae.length?(0,t.du)(Ae).reduce((le,We)=>(le[We]=!0,le),{}):{},this._setVisibilityClasses(this._classList),this._elementRef.nativeElement.className=""}ngAfterContentInit(){this._keyManager=new e.s1(this.options).withWrap(),this._activeOptionChanges=this._keyManager.change.subscribe(Ae=>{this.isOpen&&this.optionActivated.emit({source:this,option:this.options.toArray()[Ae]||null})}),this._setVisibility()}ngOnDestroy(){this._activeOptionChanges.unsubscribe()}_setScrollTop(Ae){this.panel&&(this.panel.nativeElement.scrollTop=Ae)}_getScrollTop(){return this.panel?this.panel.nativeElement.scrollTop:0}_setVisibility(){this.showPanel=!!this.options.length,this._setVisibilityClasses(this._classList),this._changeDetectorRef.markForCheck()}_emitSelectEvent(Ae){const le=new p(this,Ae);this.optionSelected.emit(le)}_getPanelAriaLabelledby(Ae){return this.ariaLabel?null:this.ariaLabelledby?(Ae?Ae+" ":"")+this.ariaLabelledby:Ae}_setVisibilityClasses(Ae){Ae[this._visibleClass]=this.showPanel,Ae[this._hiddenClass]=!this.showPanel}}return j.\u0275fac=function(Ae){return new(Ae||j)(v.Y36(v.sBO),v.Y36(v.SBq),v.Y36(_),v.Y36(T.t4))},j.\u0275dir=v.lG2({type:j,viewQuery:function(Ae,le){if(1&Ae&&(v.Gf(v.Rgc,7),v.Gf(oe,5)),2&Ae){let We;v.iGM(We=v.CRH())&&(le.template=We.first),v.iGM(We=v.CRH())&&(le.panel=We.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],displayWith:"displayWith",autoActiveFirstOption:"autoActiveFirstOption",panelWidth:"panelWidth",classList:["class","classList"]},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},features:[v.qOj]}),j})(),x=(()=>{class j extends I{constructor(){super(...arguments),this._visibleClass="mat-autocomplete-visible",this._hiddenClass="mat-autocomplete-hidden"}}return j.\u0275fac=function(){let we;return function(le){return(we||(we=v.n5z(j)))(le||j)}}(),j.\u0275cmp=v.Xpm({type:j,selectors:[["mat-autocomplete"]],contentQueries:function(Ae,le,We){if(1&Ae&&(v.Suo(We,M.K7,5),v.Suo(We,M.ey,5)),2&Ae){let yt;v.iGM(yt=v.CRH())&&(le.optionGroups=yt),v.iGM(yt=v.CRH())&&(le.options=yt)}},hostAttrs:[1,"mat-autocomplete"],inputs:{disableRipple:"disableRipple"},exportAs:["matAutocomplete"],features:[v._Bn([{provide:M.HF,useExisting:j}]),v.qOj],ngContentSelectors:i,decls:1,vars:0,consts:[["role","listbox",1,"mat-autocomplete-panel",3,"id","ngClass"],["panel",""]],template:function(Ae,le){1&Ae&&(v.F$t(),v.YNc(0,y,3,4,"ng-template"))},directives:[R.mk],styles:[".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}\n"],encapsulation:2,changeDetection:0}),j})();const r=new v.OlP("mat-autocomplete-scroll-strategy"),J={provide:r,deps:[S.aV],useFactory:function(j){return()=>j.scrollStrategies.reposition()}},F={provide:G.JU,useExisting:(0,v.Gpc)(()=>xe),multi:!0};let te=(()=>{class j{constructor(Ae,le,We,yt,Ne,Ve,ue,Te,ke,Y,X){this._element=Ae,this._overlay=le,this._viewContainerRef=We,this._zone=yt,this._changeDetectorRef=Ne,this._dir=ue,this._formField=Te,this._document=ke,this._viewportRuler=Y,this._defaults=X,this._componentDestroyed=!1,this._autocompleteDisabled=!1,this._manuallyFloatingLabel=!1,this._viewportSubscription=s.w0.EMPTY,this._canOpenOnNextFocus=!0,this._closeKeyEventStream=new C.x,this._windowBlurHandler=()=>{this._canOpenOnNextFocus=this._document.activeElement!==this._element.nativeElement||this.panelOpen},this._onChange=()=>{},this._onTouched=()=>{},this.position="auto",this.autocompleteAttribute="off",this._overlayAttached=!1,this.optionSelections=(0,c.P)(()=>this.autocomplete&&this.autocomplete.options?(0,P.T)(...this.autocomplete.options.map(he=>he.onSelectionChange)):this._zone.onStable.pipe((0,ee.q)(1),(0,ie.w)(()=>this.optionSelections))),this._scrollStrategy=Ve}get autocompleteDisabled(){return this._autocompleteDisabled}set autocompleteDisabled(Ae){this._autocompleteDisabled=(0,t.Ig)(Ae)}ngAfterViewInit(){const Ae=this._getWindow();void 0!==Ae&&this._zone.runOutsideAngular(()=>Ae.addEventListener("blur",this._windowBlurHandler))}ngOnChanges(Ae){Ae.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition())}ngOnDestroy(){const Ae=this._getWindow();void 0!==Ae&&Ae.removeEventListener("blur",this._windowBlurHandler),this._viewportSubscription.unsubscribe(),this._componentDestroyed=!0,this._destroyPanel(),this._closeKeyEventStream.complete()}get panelOpen(){return this._overlayAttached&&this.autocomplete.showPanel}openPanel(){this._attachOverlay(),this._floatLabel()}closePanel(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this.autocomplete.closed.emit(),this.autocomplete._isOpen=this._overlayAttached=!1,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._componentDestroyed||this._changeDetectorRef.detectChanges())}updatePosition(){this._overlayAttached&&this._overlayRef.updatePosition()}get panelClosingActions(){return(0,P.T)(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe((0,_e.h)(()=>this._overlayAttached)),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe((0,_e.h)(()=>this._overlayAttached)):(0,o.of)()).pipe((0,fe.U)(Ae=>Ae instanceof M.rN?Ae:null))}get activeOption(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}_getOutsideClickStream(){return(0,P.T)((0,O.R)(this._document,"click"),(0,O.R)(this._document,"auxclick"),(0,O.R)(this._document,"touchend")).pipe((0,_e.h)(Ae=>{const le=(0,T.sA)(Ae),We=this._formField?this._formField._elementRef.nativeElement:null,yt=this.connectedTo?this.connectedTo.elementRef.nativeElement:null;return this._overlayAttached&&le!==this._element.nativeElement&&(!We||!We.contains(le))&&(!yt||!yt.contains(le))&&!!this._overlayRef&&!this._overlayRef.overlayElement.contains(le)}))}writeValue(Ae){Promise.resolve(null).then(()=>this._setTriggerValue(Ae))}registerOnChange(Ae){this._onChange=Ae}registerOnTouched(Ae){this._onTouched=Ae}setDisabledState(Ae){this._element.nativeElement.disabled=Ae}_handleKeydown(Ae){const le=Ae.keyCode;if(le===w.hY&&!(0,w.Vb)(Ae)&&Ae.preventDefault(),this.activeOption&&le===w.K5&&this.panelOpen)this.activeOption._selectViaInteraction(),this._resetActiveItem(),Ae.preventDefault();else if(this.autocomplete){const We=this.autocomplete._keyManager.activeItem,yt=le===w.LH||le===w.JH;this.panelOpen||le===w.Mf?this.autocomplete._keyManager.onKeydown(Ae):yt&&this._canOpen()&&this.openPanel(),(yt||this.autocomplete._keyManager.activeItem!==We)&&this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0)}}_handleInput(Ae){let le=Ae.target,We=le.value;"number"===le.type&&(We=""==We?null:parseFloat(We)),this._previousValue!==We&&(this._previousValue=We,this._onChange(We),this._canOpen()&&this._document.activeElement===Ae.target&&this.openPanel())}_handleFocus(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(),this._floatLabel(!0)):this._canOpenOnNextFocus=!0}_floatLabel(Ae=!1){this._formField&&"auto"===this._formField.floatLabel&&(Ae?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=!0)}_resetLabel(){this._manuallyFloatingLabel&&(this._formField.floatLabel="auto",this._manuallyFloatingLabel=!1)}_subscribeToClosingActions(){const Ae=this._zone.onStable.pipe((0,ee.q)(1)),le=this.autocomplete.options.changes.pipe((0,de.b)(()=>this._positionStrategy.reapplyLastPosition()),(0,ne.g)(0));return(0,P.T)(Ae,le).pipe((0,ie.w)(()=>{const We=this.panelOpen;return this._resetActiveItem(),this.autocomplete._setVisibility(),this.panelOpen&&(this._overlayRef.updatePosition(),We!==this.panelOpen&&this.autocomplete.opened.emit()),this.panelClosingActions}),(0,ee.q)(1)).subscribe(We=>this._setValueAndClose(We))}_destroyPanel(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null)}_setTriggerValue(Ae){const le=this.autocomplete&&this.autocomplete.displayWith?this.autocomplete.displayWith(Ae):Ae,We=null!=le?le:"";this._formField?this._formField._control.value=We:this._element.nativeElement.value=We,this._previousValue=We}_setValueAndClose(Ae){Ae&&Ae.source&&(this._clearPreviousSelectedOption(Ae.source),this._setTriggerValue(Ae.source.value),this._onChange(Ae.source.value),this._element.nativeElement.focus(),this.autocomplete._emitSelectEvent(Ae.source)),this.closePanel()}_clearPreviousSelectedOption(Ae){this.autocomplete.options.forEach(le=>{le!==Ae&&le.selected&&le.deselect()})}_attachOverlay(){var Ae;let le=this._overlayRef;le?(this._positionStrategy.setOrigin(this._getConnectedElement()),le.updateSize({width:this._getPanelWidth()})):(this._portal=new U.UE(this.autocomplete.template,this._viewContainerRef,{id:null===(Ae=this._formField)||void 0===Ae?void 0:Ae.getLabelId()}),le=this._overlay.create(this._getOverlayConfig()),this._overlayRef=le,le.keydownEvents().subscribe(yt=>{(yt.keyCode===w.hY&&!(0,w.Vb)(yt)||yt.keyCode===w.LH&&(0,w.Vb)(yt,"altKey"))&&(this._closeKeyEventStream.next(),this._resetActiveItem(),yt.stopPropagation(),yt.preventDefault())}),this._viewportSubscription=this._viewportRuler.change().subscribe(()=>{this.panelOpen&&le&&le.updateSize({width:this._getPanelWidth()})})),le&&!le.hasAttached()&&(le.attach(this._portal),this._closingActionsSubscription=this._subscribeToClosingActions());const We=this.panelOpen;this.autocomplete._setVisibility(),this.autocomplete._isOpen=this._overlayAttached=!0,this.panelOpen&&We!==this.panelOpen&&this.autocomplete.opened.emit()}_getOverlayConfig(){var Ae;return new S.X_({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir,panelClass:null===(Ae=this._defaults)||void 0===Ae?void 0:Ae.overlayPanelClass})}_getOverlayPosition(){const Ae=this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(!1).withPush(!1);return this._setStrategyPositions(Ae),this._positionStrategy=Ae,Ae}_setStrategyPositions(Ae){const le=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],We=this._aboveClass,yt=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:We},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:We}];let Ne;Ne="above"===this.position?yt:"below"===this.position?le:[...le,...yt],Ae.withPositions(Ne)}_getConnectedElement(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}_getPanelWidth(){return this.autocomplete.panelWidth||this._getHostWidth()}_getHostWidth(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}_resetActiveItem(){const Ae=this.autocomplete;Ae.autoActiveFirstOption?Ae._keyManager.setFirstItemActive():Ae._keyManager.setActiveItem(-1)}_canOpen(){const Ae=this._element.nativeElement;return!Ae.readOnly&&!Ae.disabled&&!this._autocompleteDisabled}_getWindow(){var Ae;return(null===(Ae=this._document)||void 0===Ae?void 0:Ae.defaultView)||window}_scrollToOption(Ae){const le=this.autocomplete,We=(0,M.CB)(Ae,le.options,le.optionGroups);if(0===Ae&&1===We)le._setScrollTop(0);else if(le.panel){const yt=le.options.toArray()[Ae];if(yt){const Ne=yt._getHostElement(),Ve=(0,M.jH)(Ne.offsetTop,Ne.offsetHeight,le._getScrollTop(),le.panel.nativeElement.offsetHeight);le._setScrollTop(Ve)}}}}return j.\u0275fac=function(Ae){return new(Ae||j)(v.Y36(v.SBq),v.Y36(S.aV),v.Y36(v.s_b),v.Y36(v.R0b),v.Y36(v.sBO),v.Y36(r),v.Y36(se.Is,8),v.Y36(W.G_,9),v.Y36(R.K0,8),v.Y36(D.rL),v.Y36(_,8))},j.\u0275dir=v.lG2({type:j,inputs:{autocomplete:["matAutocomplete","autocomplete"],position:["matAutocompletePosition","position"],connectedTo:["matAutocompleteConnectedTo","connectedTo"],autocompleteAttribute:["autocomplete","autocompleteAttribute"],autocompleteDisabled:["matAutocompleteDisabled","autocompleteDisabled"]},features:[v.TTD]}),j})(),xe=(()=>{class j extends te{constructor(){super(...arguments),this._aboveClass="mat-autocomplete-panel-above"}}return j.\u0275fac=function(){let we;return function(le){return(we||(we=v.n5z(j)))(le||j)}}(),j.\u0275dir=v.lG2({type:j,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-autocomplete-trigger"],hostVars:7,hostBindings:function(Ae,le){1&Ae&&v.NdJ("focusin",function(){return le._handleFocus()})("blur",function(){return le._onTouched()})("input",function(yt){return le._handleInput(yt)})("keydown",function(yt){return le._handleKeydown(yt)}),2&Ae&&v.uIk("autocomplete",le.autocompleteAttribute)("role",le.autocompleteDisabled?null:"combobox")("aria-autocomplete",le.autocompleteDisabled?null:"list")("aria-activedescendant",le.panelOpen&&le.activeOption?le.activeOption.id:null)("aria-expanded",le.autocompleteDisabled?null:le.panelOpen.toString())("aria-owns",le.autocompleteDisabled||!le.panelOpen||null==le.autocomplete?null:le.autocomplete.id)("aria-haspopup",!le.autocompleteDisabled)},exportAs:["matAutocompleteTrigger"],features:[v._Bn([F]),v.qOj]}),j})(),q=(()=>{class j{}return j.\u0275fac=function(Ae){return new(Ae||j)},j.\u0275mod=v.oAB({type:j}),j.\u0275inj=v.cJS({providers:[J],imports:[[S.U8,M.Ng,M.BQ,R.ez],D.ZD,M.Ng,M.BQ]}),j})()},7544:(Ue,K,m)=>{"use strict";m.d(K,{k:()=>o,g:()=>O});var e=m(5e3),t=m(508),v=m(5664),M=m(3191),s=m(6360);let C=0;const c=(0,t.Id)(class{}),P="mat-badge-content";let o=(()=>{class T extends c{constructor(S,D,w,U,G){super(),this._ngZone=S,this._elementRef=D,this._ariaDescriber=w,this._renderer=U,this._animationMode=G,this._color="primary",this._overlap=!0,this.position="above after",this.size="medium",this._id=C++,this._isInitialized=!1}get color(){return this._color}set color(S){this._setColor(S),this._color=S}get overlap(){return this._overlap}set overlap(S){this._overlap=(0,M.Ig)(S)}get content(){return this._content}set content(S){this._updateRenderedContent(S)}get description(){return this._description}set description(S){this._updateHostAriaDescription(S)}get hidden(){return this._hidden}set hidden(S){this._hidden=(0,M.Ig)(S)}isAbove(){return-1===this.position.indexOf("below")}isAfter(){return-1===this.position.indexOf("before")}getBadgeElement(){return this._badgeElement}ngOnInit(){this._clearExistingBadges(),this.content&&!this._badgeElement&&(this._badgeElement=this._createBadgeElement(),this._updateRenderedContent(this.content)),this._isInitialized=!0}ngOnDestroy(){this._renderer.destroyNode&&this._renderer.destroyNode(this._badgeElement),this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this.description)}_createBadgeElement(){const S=this._renderer.createElement("span"),D="mat-badge-active";return S.setAttribute("id",`mat-badge-content-${this._id}`),S.setAttribute("aria-hidden","true"),S.classList.add(P),"NoopAnimations"===this._animationMode&&S.classList.add("_mat-animation-noopable"),this._elementRef.nativeElement.appendChild(S),"function"==typeof requestAnimationFrame&&"NoopAnimations"!==this._animationMode?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{S.classList.add(D)})}):S.classList.add(D),S}_updateRenderedContent(S){const D=`${null!=S?S:""}`.trim();this._isInitialized&&D&&!this._badgeElement&&(this._badgeElement=this._createBadgeElement()),this._badgeElement&&(this._badgeElement.textContent=D),this._content=D}_updateHostAriaDescription(S){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this.description),S&&this._ariaDescriber.describe(this._elementRef.nativeElement,S),this._description=S}_setColor(S){const D=this._elementRef.nativeElement.classList;D.remove(`mat-badge-${this._color}`),S&&D.add(`mat-badge-${S}`)}_clearExistingBadges(){const S=this._elementRef.nativeElement.querySelectorAll(`:scope > .${P}`);for(const D of Array.from(S))D!==this._badgeElement&&D.remove()}}return T.\u0275fac=function(S){return new(S||T)(e.Y36(e.R0b),e.Y36(e.SBq),e.Y36(v.$s),e.Y36(e.Qsj),e.Y36(s.Qb,8))},T.\u0275dir=e.lG2({type:T,selectors:[["","matBadge",""]],hostAttrs:[1,"mat-badge"],hostVars:20,hostBindings:function(S,D){2&S&&e.ekj("mat-badge-overlap",D.overlap)("mat-badge-above",D.isAbove())("mat-badge-below",!D.isAbove())("mat-badge-before",!D.isAfter())("mat-badge-after",D.isAfter())("mat-badge-small","small"===D.size)("mat-badge-medium","medium"===D.size)("mat-badge-large","large"===D.size)("mat-badge-hidden",D.hidden||!D.content)("mat-badge-disabled",D.disabled)},inputs:{disabled:["matBadgeDisabled","disabled"],color:["matBadgeColor","color"],overlap:["matBadgeOverlap","overlap"],position:["matBadgePosition","position"],content:["matBadge","content"],description:["matBadgeDescription","description"],size:["matBadgeSize","size"],hidden:["matBadgeHidden","hidden"]},features:[e.qOj]}),T})(),O=(()=>{class T{}return T.\u0275fac=function(S){return new(S||T)},T.\u0275mod=e.oAB({type:T}),T.\u0275inj=e.cJS({imports:[[v.rt,t.BQ],t.BQ]}),T})()},7423:(Ue,K,m)=>{"use strict";m.d(K,{lW:()=>T,ot:()=>S});var e=m(5e3),t=m(508),v=m(6360),M=m(5664);const s=["mat-button",""],C=["*"],o=["mat-button","mat-flat-button","mat-icon-button","mat-raised-button","mat-stroked-button","mat-mini-fab","mat-fab"],O=(0,t.pj)((0,t.Id)((0,t.Kr)(class{constructor(D){this._elementRef=D}})));let T=(()=>{class D extends O{constructor(U,G,W){super(U),this._focusMonitor=G,this._animationMode=W,this.isRoundButton=this._hasHostAttributes("mat-fab","mat-mini-fab"),this.isIconButton=this._hasHostAttributes("mat-icon-button");for(const ee of o)this._hasHostAttributes(ee)&&this._getHostElement().classList.add(ee);U.nativeElement.classList.add("mat-button-base"),this.isRoundButton&&(this.color="accent")}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(U,G){U?this._focusMonitor.focusVia(this._getHostElement(),U,G):this._getHostElement().focus(G)}_getHostElement(){return this._elementRef.nativeElement}_isRippleDisabled(){return this.disableRipple||this.disabled}_hasHostAttributes(...U){return U.some(G=>this._getHostElement().hasAttribute(G))}}return D.\u0275fac=function(U){return new(U||D)(e.Y36(e.SBq),e.Y36(M.tE),e.Y36(v.Qb,8))},D.\u0275cmp=e.Xpm({type:D,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-icon-button",""],["button","mat-fab",""],["button","mat-mini-fab",""],["button","mat-stroked-button",""],["button","mat-flat-button",""]],viewQuery:function(U,G){if(1&U&&e.Gf(t.wG,5),2&U){let W;e.iGM(W=e.CRH())&&(G.ripple=W.first)}},hostAttrs:[1,"mat-focus-indicator"],hostVars:5,hostBindings:function(U,G){2&U&&(e.uIk("disabled",G.disabled||null),e.ekj("_mat-animation-noopable","NoopAnimations"===G._animationMode)("mat-button-disabled",G.disabled))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[e.qOj],attrs:s,ngContentSelectors:C,decls:4,vars:5,consts:[[1,"mat-button-wrapper"],["matRipple","",1,"mat-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-button-focus-overlay"]],template:function(U,G){1&U&&(e.F$t(),e.TgZ(0,"span",0),e.Hsn(1),e.qZA(),e._UZ(2,"span",1),e._UZ(3,"span",2)),2&U&&(e.xp6(2),e.ekj("mat-button-ripple-round",G.isRoundButton||G.isIconButton),e.Q6J("matRippleDisabled",G._isRippleDisabled())("matRippleCentered",G.isIconButton)("matRippleTrigger",G._getHostElement()))},directives:[t.wG],styles:[".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n"],encapsulation:2,changeDetection:0}),D})(),S=(()=>{class D{}return D.\u0275fac=function(U){return new(U||D)},D.\u0275mod=e.oAB({type:D}),D.\u0275inj=e.cJS({imports:[[t.si,t.BQ],t.BQ]}),D})()},9224:(Ue,K,m)=>{"use strict";m.d(K,{a8:()=>_e,dn:()=>O,dk:()=>fe,QW:()=>ne,$j:()=>R,n5:()=>T});var e=m(5e3),t=m(6360),v=m(508);const M=["*",[["mat-card-footer"]]],s=["*","mat-card-footer"],C=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],c=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"];let O=(()=>{class se{}return se.\u0275fac=function(y){return new(y||se)},se.\u0275dir=e.lG2({type:se,selectors:[["mat-card-content"],["","mat-card-content",""],["","matCardContent",""]],hostAttrs:[1,"mat-card-content"]}),se})(),T=(()=>{class se{}return se.\u0275fac=function(y){return new(y||se)},se.\u0275dir=e.lG2({type:se,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-card-title"]}),se})(),R=(()=>{class se{}return se.\u0275fac=function(y){return new(y||se)},se.\u0275dir=e.lG2({type:se,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-card-subtitle"]}),se})(),_e=(()=>{class se{constructor(y){this._animationMode=y}}return se.\u0275fac=function(y){return new(y||se)(e.Y36(t.Qb,8))},se.\u0275cmp=e.Xpm({type:se,selectors:[["mat-card"]],hostAttrs:[1,"mat-card","mat-focus-indicator"],hostVars:2,hostBindings:function(y,i){2&y&&e.ekj("_mat-animation-noopable","NoopAnimations"===i._animationMode)},exportAs:["matCard"],ngContentSelectors:s,decls:2,vars:0,template:function(y,i){1&y&&(e.F$t(M),e.Hsn(0),e.Hsn(1,1))},styles:[".mat-card{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:block;position:relative;padding:16px;border-radius:4px}._mat-animation-noopable.mat-card{transition:none;animation:none}.mat-card .mat-divider-horizontal{position:absolute;left:0;width:100%}[dir=rtl] .mat-card .mat-divider-horizontal{left:auto;right:0}.mat-card .mat-divider-horizontal.mat-divider-inset{position:static;margin:0}[dir=rtl] .mat-card .mat-divider-horizontal.mat-divider-inset{margin-right:0}.cdk-high-contrast-active .mat-card{outline:solid 1px}.mat-card-actions,.mat-card-subtitle,.mat-card-content{display:block;margin-bottom:16px}.mat-card-title{display:block;margin-bottom:8px}.mat-card-actions{margin-left:-8px;margin-right:-8px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 32px);margin:0 -16px 16px -16px}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button,.mat-card-actions .mat-stroked-button{margin:0 8px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header .mat-card-title{margin-bottom:12px}.mat-card-header-text{margin:0 16px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.mat-card-title-group{display:flex;justify-content:space-between}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-title-group>.mat-card-xl-image{margin:-8px 0 8px}@media(max-width: 599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card>:first-child,.mat-card-content>:first-child{margin-top:0}.mat-card>:last-child:not(.mat-card-footer),.mat-card-content>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-16px;border-top-left-radius:inherit;border-top-right-radius:inherit}.mat-card>.mat-card-actions:last-child{margin-bottom:-8px;padding-bottom:0}.mat-card-actions:not(.mat-card-actions-align-end) .mat-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-raised-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-stroked-button:first-child{margin-left:0;margin-right:0}.mat-card-actions-align-end .mat-button:last-child,.mat-card-actions-align-end .mat-raised-button:last-child,.mat-card-actions-align-end .mat-stroked-button:last-child{margin-left:0;margin-right:0}.mat-card-title:not(:first-child),.mat-card-subtitle:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}\n"],encapsulation:2,changeDetection:0}),se})(),fe=(()=>{class se{}return se.\u0275fac=function(y){return new(y||se)},se.\u0275cmp=e.Xpm({type:se,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-card-header"],ngContentSelectors:c,decls:4,vars:0,consts:[[1,"mat-card-header-text"]],template:function(y,i){1&y&&(e.F$t(C),e.Hsn(0),e.TgZ(1,"div",0),e.Hsn(2,1),e.qZA(),e.Hsn(3,2))},encapsulation:2,changeDetection:0}),se})(),ne=(()=>{class se{}return se.\u0275fac=function(y){return new(y||se)},se.\u0275mod=e.oAB({type:se}),se.\u0275inj=e.cJS({imports:[[v.BQ],v.BQ]}),se})()},7446:(Ue,K,m)=>{"use strict";m.d(K,{oG:()=>W,p9:()=>fe});var e=m(3191),t=m(5e3),v=m(3075),M=m(508),s=m(6360),C=m(5664),c=m(7144);const P=["input"],o=function(de){return{enterDuration:de}},O=["*"],T=new t.OlP("mat-checkbox-default-options",{providedIn:"root",factory:R});function R(){return{color:"accent",clickAction:"check-indeterminate"}}let S=0;const D=R(),w={provide:v.JU,useExisting:(0,t.Gpc)(()=>W),multi:!0};class U{}const G=(0,M.sb)((0,M.pj)((0,M.Kr)((0,M.Id)(class{constructor(de){this._elementRef=de}}))));let W=(()=>{class de extends G{constructor(se,oe,y,i,a,p,u){super(se),this._changeDetectorRef=oe,this._focusMonitor=y,this._ngZone=i,this._animationMode=p,this._options=u,this.ariaLabel="",this.ariaLabelledby=null,this._uniqueId="mat-checkbox-"+ ++S,this.id=this._uniqueId,this.labelPosition="after",this.name=null,this.change=new t.vpe,this.indeterminateChange=new t.vpe,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||D,this.color=this.defaultColor=this._options.color||D.color,this.tabIndex=parseInt(a)||0}get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(se){this._required=(0,e.Ig)(se)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(se=>{se||Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}),this._syncIndeterminate(this._indeterminate)}ngAfterViewChecked(){}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}get checked(){return this._checked}set checked(se){se!=this.checked&&(this._checked=se,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(se){const oe=(0,e.Ig)(se);oe!==this.disabled&&(this._disabled=oe,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(se){const oe=se!=this._indeterminate;this._indeterminate=(0,e.Ig)(se),oe&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(se){this.checked=!!se}registerOnChange(se){this._controlValueAccessorChangeFn=se}registerOnTouched(se){this._onTouched=se}setDisabledState(se){this.disabled=se}_getAriaChecked(){return this.checked?"true":this.indeterminate?"mixed":"false"}_transitionCheckState(se){let oe=this._currentCheckState,y=this._elementRef.nativeElement;if(oe!==se&&(this._currentAnimationClass.length>0&&y.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(oe,se),this._currentCheckState=se,this._currentAnimationClass.length>0)){y.classList.add(this._currentAnimationClass);const i=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{y.classList.remove(i)},1e3)})}}_emitChangeEvent(){const se=new U;se.source=this,se.checked=this.checked,this._controlValueAccessorChangeFn(this.checked),this.change.emit(se),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked}_onInputClick(se){var oe;const y=null===(oe=this._options)||void 0===oe?void 0:oe.clickAction;se.stopPropagation(),this.disabled||"noop"===y?!this.disabled&&"noop"===y&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==y&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this.toggle(),this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}focus(se,oe){se?this._focusMonitor.focusVia(this._inputElement,se,oe):this._inputElement.nativeElement.focus(oe)}_onInteractionEvent(se){se.stopPropagation()}_getAnimationClassForCheckStateTransition(se,oe){if("NoopAnimations"===this._animationMode)return"";let y="";switch(se){case 0:if(1===oe)y="unchecked-checked";else{if(3!=oe)return"";y="unchecked-indeterminate"}break;case 2:y=1===oe?"unchecked-checked":"unchecked-indeterminate";break;case 1:y=2===oe?"checked-unchecked":"checked-indeterminate";break;case 3:y=1===oe?"indeterminate-checked":"indeterminate-unchecked"}return`mat-checkbox-anim-${y}`}_syncIndeterminate(se){const oe=this._inputElement;oe&&(oe.nativeElement.indeterminate=se)}}return de.\u0275fac=function(se){return new(se||de)(t.Y36(t.SBq),t.Y36(t.sBO),t.Y36(C.tE),t.Y36(t.R0b),t.$8M("tabindex"),t.Y36(s.Qb,8),t.Y36(T,8))},de.\u0275cmp=t.Xpm({type:de,selectors:[["mat-checkbox"]],viewQuery:function(se,oe){if(1&se&&(t.Gf(P,5),t.Gf(M.wG,5)),2&se){let y;t.iGM(y=t.CRH())&&(oe._inputElement=y.first),t.iGM(y=t.CRH())&&(oe.ripple=y.first)}},hostAttrs:[1,"mat-checkbox"],hostVars:12,hostBindings:function(se,oe){2&se&&(t.Ikx("id",oe.id),t.uIk("tabindex",null),t.ekj("mat-checkbox-indeterminate",oe.indeterminate)("mat-checkbox-checked",oe.checked)("mat-checkbox-disabled",oe.disabled)("mat-checkbox-label-before","before"==oe.labelPosition)("_mat-animation-noopable","NoopAnimations"===oe._animationMode))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[t._Bn([w]),t.qOj],ngContentSelectors:O,decls:17,vars:21,consts:[[1,"mat-checkbox-layout"],["label",""],[1,"mat-checkbox-inner-container"],["type","checkbox",1,"mat-checkbox-input","cdk-visually-hidden",3,"id","required","checked","disabled","tabIndex","change","click"],["input",""],["matRipple","",1,"mat-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleRadius","matRippleCentered","matRippleAnimation"],[1,"mat-ripple-element","mat-checkbox-persistent-ripple"],[1,"mat-checkbox-frame"],[1,"mat-checkbox-background"],["version","1.1","focusable","false","viewBox","0 0 24 24",0,"xml","space","preserve","aria-hidden","true",1,"mat-checkbox-checkmark"],["fill","none","stroke","white","d","M4.1,12.7 9,17.6 20.3,6.3",1,"mat-checkbox-checkmark-path"],[1,"mat-checkbox-mixedmark"],[1,"mat-checkbox-label",3,"cdkObserveContent"],["checkboxLabel",""],[2,"display","none"]],template:function(se,oe){if(1&se&&(t.F$t(),t.TgZ(0,"label",0,1),t.TgZ(2,"span",2),t.TgZ(3,"input",3,4),t.NdJ("change",function(i){return oe._onInteractionEvent(i)})("click",function(i){return oe._onInputClick(i)}),t.qZA(),t.TgZ(5,"span",5),t._UZ(6,"span",6),t.qZA(),t._UZ(7,"span",7),t.TgZ(8,"span",8),t.O4$(),t.TgZ(9,"svg",9),t._UZ(10,"path",10),t.qZA(),t.kcU(),t._UZ(11,"span",11),t.qZA(),t.qZA(),t.TgZ(12,"span",12,13),t.NdJ("cdkObserveContent",function(){return oe._onLabelTextChange()}),t.TgZ(14,"span",14),t._uU(15,"\xa0"),t.qZA(),t.Hsn(16),t.qZA(),t.qZA()),2&se){const y=t.MAs(1),i=t.MAs(13);t.uIk("for",oe.inputId),t.xp6(2),t.ekj("mat-checkbox-inner-container-no-side-margin",!i.textContent||!i.textContent.trim()),t.xp6(1),t.Q6J("id",oe.inputId)("required",oe.required)("checked",oe.checked)("disabled",oe.disabled)("tabIndex",oe.tabIndex),t.uIk("value",oe.value)("name",oe.name)("aria-label",oe.ariaLabel||null)("aria-labelledby",oe.ariaLabelledby)("aria-checked",oe._getAriaChecked())("aria-describedby",oe.ariaDescribedby),t.xp6(2),t.Q6J("matRippleTrigger",y)("matRippleDisabled",oe._isRippleDisabled())("matRippleRadius",20)("matRippleCentered",!0)("matRippleAnimation",t.VKq(19,o,"NoopAnimations"===oe._animationMode?0:150))}},directives:[M.wG,c.wD],styles:["@keyframes mat-checkbox-fade-in-background{0%{opacity:0}50%{opacity:1}}@keyframes mat-checkbox-fade-out-background{0%,50%{opacity:1}100%{opacity:0}}@keyframes mat-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:22.910259}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1)}100%{stroke-dashoffset:0}}@keyframes mat-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mat-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);stroke-dashoffset:0}to{stroke-dashoffset:-22.910259}}@keyframes mat-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(45deg)}}@keyframes mat-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:0;transform:rotate(45deg)}to{opacity:1;transform:rotate(360deg)}}@keyframes mat-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 0.1);opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:rotate(0deg)}}@keyframes mat-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);opacity:1;transform:rotate(0deg)}to{opacity:0;transform:rotate(315deg)}}@keyframes mat-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;opacity:1;transform:scaleX(1)}32.8%,100%{opacity:0;transform:scaleX(0)}}.mat-checkbox-background,.mat-checkbox-frame{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:2px;box-sizing:border-box;pointer-events:none}.mat-checkbox{display:inline-block;transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);cursor:pointer;-webkit-tap-highlight-color:transparent}._mat-animation-noopable.mat-checkbox{transition:none;animation:none}.mat-checkbox .mat-ripple-element:not(.mat-checkbox-persistent-ripple){opacity:.16}.mat-checkbox .mat-checkbox-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.cdk-high-contrast-active .mat-checkbox.cdk-keyboard-focused .mat-checkbox-ripple{outline:solid 3px}.mat-checkbox-layout{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mat-checkbox-label{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.mat-checkbox-inner-container{display:inline-block;height:16px;line-height:0;margin:auto;margin-right:8px;order:0;position:relative;vertical-align:middle;white-space:nowrap;width:16px;flex-shrink:0}[dir=rtl] .mat-checkbox-inner-container{margin-left:8px;margin-right:auto}.mat-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mat-checkbox-frame{background-color:transparent;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1);border-width:2px;border-style:solid}._mat-animation-noopable .mat-checkbox-frame{transition:none}.mat-checkbox-background{align-items:center;display:inline-flex;justify-content:center;transition:background-color 90ms cubic-bezier(0, 0, 0.2, 0.1),opacity 90ms cubic-bezier(0, 0, 0.2, 0.1);-webkit-print-color-adjust:exact;color-adjust:exact}._mat-animation-noopable .mat-checkbox-background{transition:none}.cdk-high-contrast-active .mat-checkbox .mat-checkbox-background{background:none}.mat-checkbox-persistent-ripple{display:block;width:100%;height:100%;transform:none}.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:.04}.mat-checkbox.cdk-keyboard-focused .mat-checkbox-persistent-ripple{opacity:.12}.mat-checkbox-persistent-ripple,.mat-checkbox.mat-checkbox-disabled .mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{opacity:0}@media(hover: none){.mat-checkbox-inner-container:hover .mat-checkbox-persistent-ripple{display:none}}.mat-checkbox-checkmark{top:0;left:0;right:0;bottom:0;position:absolute;width:100%}.mat-checkbox-checkmark-path{stroke-dashoffset:22.910259;stroke-dasharray:22.910259;stroke-width:2.1333333333px}.cdk-high-contrast-black-on-white .mat-checkbox-checkmark-path{stroke:#000 !important}.mat-checkbox-mixedmark{width:calc(100% - 6px);height:2px;opacity:0;transform:scaleX(0) rotate(0deg);border-radius:2px}.cdk-high-contrast-active .mat-checkbox-mixedmark{height:0;border-top:solid 2px;margin-top:2px}.mat-checkbox-label-before .mat-checkbox-inner-container{order:1;margin-left:8px;margin-right:auto}[dir=rtl] .mat-checkbox-label-before .mat-checkbox-inner-container{margin-left:auto;margin-right:8px}.mat-checkbox-checked .mat-checkbox-checkmark{opacity:1}.mat-checkbox-checked .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-checked .mat-checkbox-mixedmark{transform:scaleX(1) rotate(-45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark{opacity:0;transform:rotate(45deg)}.mat-checkbox-indeterminate .mat-checkbox-checkmark-path{stroke-dashoffset:0}.mat-checkbox-indeterminate .mat-checkbox-mixedmark{opacity:1;transform:scaleX(1) rotate(0deg)}.mat-checkbox-unchecked .mat-checkbox-background{background-color:transparent}.mat-checkbox-disabled{cursor:default}.cdk-high-contrast-active .mat-checkbox-disabled{opacity:.5}.mat-checkbox-anim-unchecked-checked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-checked .mat-checkbox-checkmark-path{animation:180ms linear 0ms mat-checkbox-unchecked-checked-checkmark-path}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-in-background}.mat-checkbox-anim-unchecked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-unchecked-indeterminate-mixedmark}.mat-checkbox-anim-checked-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-checked-unchecked .mat-checkbox-checkmark-path{animation:90ms linear 0ms mat-checkbox-checked-unchecked-checkmark-path}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-checkmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-checkmark}.mat-checkbox-anim-checked-indeterminate .mat-checkbox-mixedmark{animation:90ms linear 0ms mat-checkbox-checked-indeterminate-mixedmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-checkmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-checkmark}.mat-checkbox-anim-indeterminate-checked .mat-checkbox-mixedmark{animation:500ms linear 0ms mat-checkbox-indeterminate-checked-mixedmark}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-background{animation:180ms linear 0ms mat-checkbox-fade-out-background}.mat-checkbox-anim-indeterminate-unchecked .mat-checkbox-mixedmark{animation:300ms linear 0ms mat-checkbox-indeterminate-unchecked-mixedmark}.mat-checkbox-input{bottom:0;left:50%}\n"],encapsulation:2,changeDetection:0}),de})(),_e=(()=>{class de{}return de.\u0275fac=function(se){return new(se||de)},de.\u0275mod=t.oAB({type:de}),de.\u0275inj=t.cJS({}),de})(),fe=(()=>{class de{}return de.\u0275fac=function(se){return new(se||de)},de.\u0275mod=t.oAB({type:de}),de.\u0275inj=t.cJS({imports:[[M.si,M.BQ,c.Q8,_e],M.BQ,_e]}),de})()},508:(Ue,K,m)=>{"use strict";m.d(K,{yN:()=>ee,mZ:()=>ie,_A:()=>r,rD:()=>q,sG:()=>b,K7:()=>Bt,HF:()=>ft,Y2:()=>he,BQ:()=>ne,X2:()=>j,uc:()=>le,XK:()=>Re,ey:()=>ti,Ng:()=>di,rN:()=>Oi,nP:()=>ht,us:()=>it,wG:()=>Me,si:()=>ze,LF:()=>B,IR:()=>ke,CB:()=>Pi,jH:()=>si,pj:()=>a,Kr:()=>p,Id:()=>i,FD:()=>_,dB:()=>L,sb:()=>u,E0:()=>we});var e=m(5e3),t=m(226),M=m(9808),s=m(925),C=m(5664),c=m(3191),P=m(7579),o=m(8306),O=m(8675),T=m(6360),R=m(1159);function w(He,Se){if(1&He&&e._UZ(0,"mat-pseudo-checkbox",4),2&He){const V=e.oxw();e.Q6J("state",V.selected?"checked":"unchecked")("disabled",V.disabled)}}function U(He,Se){if(1&He&&(e.TgZ(0,"span",5),e._uU(1),e.qZA()),2&He){const V=e.oxw();e.xp6(1),e.hij("(",V.group.label,")")}}const G=["*"];let ee=(()=>{class He{}return He.STANDARD_CURVE="cubic-bezier(0.4,0.0,0.2,1)",He.DECELERATION_CURVE="cubic-bezier(0.0,0.0,0.2,1)",He.ACCELERATION_CURVE="cubic-bezier(0.4,0.0,1,1)",He.SHARP_CURVE="cubic-bezier(0.4,0.0,0.6,1)",He})(),ie=(()=>{class He{}return He.COMPLEX="375ms",He.ENTERING="225ms",He.EXITING="195ms",He})();const de=new e.OlP("mat-sanity-checks",{providedIn:"root",factory:function(){return!0}});let ne=(()=>{class He{constructor(V,ve,Ee){this._sanityChecks=ve,this._document=Ee,this._hasDoneGlobalChecks=!1,V._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(V){return!(0,s.Oy)()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[V])}}return He.\u0275fac=function(V){return new(V||He)(e.LFG(C.qm),e.LFG(de,8),e.LFG(M.K0))},He.\u0275mod=e.oAB({type:He}),He.\u0275inj=e.cJS({imports:[[t.vT],t.vT]}),He})();function i(He){return class extends He{constructor(...Se){super(...Se),this._disabled=!1}get disabled(){return this._disabled}set disabled(Se){this._disabled=(0,c.Ig)(Se)}}}function a(He,Se){return class extends He{constructor(...V){super(...V),this.defaultColor=Se,this.color=Se}get color(){return this._color}set color(V){const ve=V||this.defaultColor;ve!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),ve&&this._elementRef.nativeElement.classList.add(`mat-${ve}`),this._color=ve)}}}function p(He){return class extends He{constructor(...Se){super(...Se),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(Se){this._disableRipple=(0,c.Ig)(Se)}}}function u(He,Se=0){return class extends He{constructor(...V){super(...V),this._tabIndex=Se,this.defaultTabIndex=Se}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(V){this._tabIndex=null!=V?(0,c.su)(V):this.defaultTabIndex}}}function _(He){return class extends He{constructor(...Se){super(...Se),this.stateChanges=new P.x,this.errorState=!1}updateErrorState(){const Se=this.errorState,et=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);et!==Se&&(this.errorState=et,this.stateChanges.next())}}}function L(He){return class extends He{constructor(...Se){super(...Se),this._isInitialized=!1,this._pendingSubscribers=[],this.initialized=new o.y(V=>{this._isInitialized?this._notifySubscriber(V):this._pendingSubscribers.push(V)})}_markInitialized(){this._isInitialized=!0,this._pendingSubscribers.forEach(this._notifySubscriber),this._pendingSubscribers=null}_notifySubscriber(Se){Se.next(),Se.complete()}}}const I=new e.OlP("MAT_DATE_LOCALE",{providedIn:"root",factory:function(){return(0,e.f3M)(e.soG)}});class r{constructor(){this._localeChanges=new P.x,this.localeChanges=this._localeChanges}getValidDateOrNull(Se){return this.isDateInstance(Se)&&this.isValid(Se)?Se:null}deserialize(Se){return null==Se||this.isDateInstance(Se)&&this.isValid(Se)?Se:this.invalid()}setLocale(Se){this.locale=Se,this._localeChanges.next()}compareDate(Se,V){return this.getYear(Se)-this.getYear(V)||this.getMonth(Se)-this.getMonth(V)||this.getDate(Se)-this.getDate(V)}sameDate(Se,V){if(Se&&V){let ve=this.isValid(Se),Ee=this.isValid(V);return ve&&Ee?!this.compareDate(Se,V):ve==Ee}return Se==V}clampDate(Se,V,ve){return V&&this.compareDate(Se,V)<0?V:ve&&this.compareDate(Se,ve)>0?ve:Se}}const b=new e.OlP("mat-date-formats"),J=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;function F(He,Se){const V=Array(He);for(let ve=0;ve{class He extends r{constructor(V,ve){super(),this.useUtcForDisplay=!1,super.setLocale(V)}getYear(V){return V.getFullYear()}getMonth(V){return V.getMonth()}getDate(V){return V.getDate()}getDayOfWeek(V){return V.getDay()}getMonthNames(V){const ve=new Intl.DateTimeFormat(this.locale,{month:V,timeZone:"utc"});return F(12,Ee=>this._format(ve,new Date(2017,Ee,1)))}getDateNames(){const V=new Intl.DateTimeFormat(this.locale,{day:"numeric",timeZone:"utc"});return F(31,ve=>this._format(V,new Date(2017,0,ve+1)))}getDayOfWeekNames(V){const ve=new Intl.DateTimeFormat(this.locale,{weekday:V,timeZone:"utc"});return F(7,Ee=>this._format(ve,new Date(2017,0,Ee+1)))}getYearName(V){const ve=new Intl.DateTimeFormat(this.locale,{year:"numeric",timeZone:"utc"});return this._format(ve,V)}getFirstDayOfWeek(){return 0}getNumDaysInMonth(V){return this.getDate(this._createDateWithOverflow(this.getYear(V),this.getMonth(V)+1,0))}clone(V){return new Date(V.getTime())}createDate(V,ve,Ee){let et=this._createDateWithOverflow(V,ve,Ee);return et.getMonth(),et}today(){return new Date}parse(V){return"number"==typeof V?new Date(V):V?new Date(Date.parse(V)):null}format(V,ve){if(!this.isValid(V))throw Error("NativeDateAdapter: Cannot format invalid date.");const Ee=new Intl.DateTimeFormat(this.locale,Object.assign(Object.assign({},ve),{timeZone:"utc"}));return this._format(Ee,V)}addCalendarYears(V,ve){return this.addCalendarMonths(V,12*ve)}addCalendarMonths(V,ve){let Ee=this._createDateWithOverflow(this.getYear(V),this.getMonth(V)+ve,this.getDate(V));return this.getMonth(Ee)!=((this.getMonth(V)+ve)%12+12)%12&&(Ee=this._createDateWithOverflow(this.getYear(Ee),this.getMonth(Ee),0)),Ee}addCalendarDays(V,ve){return this._createDateWithOverflow(this.getYear(V),this.getMonth(V),this.getDate(V)+ve)}toIso8601(V){return[V.getUTCFullYear(),this._2digit(V.getUTCMonth()+1),this._2digit(V.getUTCDate())].join("-")}deserialize(V){if("string"==typeof V){if(!V)return null;if(J.test(V)){let ve=new Date(V);if(this.isValid(ve))return ve}}return super.deserialize(V)}isDateInstance(V){return V instanceof Date}isValid(V){return!isNaN(V.getTime())}invalid(){return new Date(NaN)}_createDateWithOverflow(V,ve,Ee){const et=new Date;return et.setFullYear(V,ve,Ee),et.setHours(0,0,0,0),et}_2digit(V){return("00"+V).slice(-2)}_format(V,ve){const Ee=new Date;return Ee.setUTCFullYear(ve.getFullYear(),ve.getMonth(),ve.getDate()),Ee.setUTCHours(ve.getHours(),ve.getMinutes(),ve.getSeconds(),ve.getMilliseconds()),V.format(Ee)}}return He.\u0275fac=function(V){return new(V||He)(e.LFG(I,8),e.LFG(s.t4))},He.\u0275prov=e.Yz7({token:He,factory:He.\u0275fac}),He})();const te={parse:{dateInput:null},display:{dateInput:{year:"numeric",month:"numeric",day:"numeric"},monthYearLabel:{year:"numeric",month:"short"},dateA11yLabel:{year:"numeric",month:"long",day:"numeric"},monthYearA11yLabel:{year:"numeric",month:"long"}}};let xe=(()=>{class He{}return He.\u0275fac=function(V){return new(V||He)},He.\u0275mod=e.oAB({type:He}),He.\u0275inj=e.cJS({providers:[{provide:r,useClass:B}],imports:[[s.ud]]}),He})(),Re=(()=>{class He{}return He.\u0275fac=function(V){return new(V||He)},He.\u0275mod=e.oAB({type:He}),He.\u0275inj=e.cJS({providers:[{provide:b,useValue:te}],imports:[[xe]]}),He})(),q=(()=>{class He{isErrorState(V,ve){return!!(V&&V.invalid&&(V.touched||ve&&ve.submitted))}}return He.\u0275fac=function(V){return new(V||He)},He.\u0275prov=e.Yz7({token:He,factory:He.\u0275fac,providedIn:"root"}),He})(),j=(()=>{class He{}return He.\u0275fac=function(V){return new(V||He)},He.\u0275dir=e.lG2({type:He,selectors:[["","mat-line",""],["","matLine",""]],hostAttrs:[1,"mat-line"]}),He})();function we(He,Se,V="mat"){He.changes.pipe((0,O.O)(He)).subscribe(({length:ve})=>{Ae(Se,`${V}-2-line`,!1),Ae(Se,`${V}-3-line`,!1),Ae(Se,`${V}-multi-line`,!1),2===ve||3===ve?Ae(Se,`${V}-${ve}-line`,!0):ve>3&&Ae(Se,`${V}-multi-line`,!0)})}function Ae(He,Se,V){He.nativeElement.classList.toggle(Se,V)}let le=(()=>{class He{}return He.\u0275fac=function(V){return new(V||He)},He.\u0275mod=e.oAB({type:He}),He.\u0275inj=e.cJS({imports:[[ne],ne]}),He})();class We{constructor(Se,V,ve){this._renderer=Se,this.element=V,this.config=ve,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const yt={enterDuration:225,exitDuration:150},Ve=(0,s.i$)({passive:!0}),ue=["mousedown","touchstart"],Te=["mouseup","mouseleave","touchend","touchcancel"];class ke{constructor(Se,V,ve,Ee){this._target=Se,this._ngZone=V,this._isPointerDown=!1,this._activeRipples=new Set,this._pointerUpEventsRegistered=!1,Ee.isBrowser&&(this._containerElement=(0,c.fI)(ve))}fadeInRipple(Se,V,ve={}){const Ee=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),et=Object.assign(Object.assign({},yt),ve.animation);ve.centered&&(Se=Ee.left+Ee.width/2,V=Ee.top+Ee.height/2);const $t=ve.radius||function(He,Se,V){const ve=Math.max(Math.abs(He-V.left),Math.abs(He-V.right)),Ee=Math.max(Math.abs(Se-V.top),Math.abs(Se-V.bottom));return Math.sqrt(ve*ve+Ee*Ee)}(Se,V,Ee),Pt=Se-Ee.left,Xt=V-Ee.top,lt=et.enterDuration,Pe=document.createElement("div");Pe.classList.add("mat-ripple-element"),Pe.style.left=Pt-$t+"px",Pe.style.top=Xt-$t+"px",Pe.style.height=2*$t+"px",Pe.style.width=2*$t+"px",null!=ve.color&&(Pe.style.backgroundColor=ve.color),Pe.style.transitionDuration=`${lt}ms`,this._containerElement.appendChild(Pe),window.getComputedStyle(Pe).getPropertyValue("opacity"),Pe.style.transform="scale(1)";const Be=new We(this,Pe,ve);return Be.state=0,this._activeRipples.add(Be),ve.persistent||(this._mostRecentTransientRipple=Be),this._runTimeoutOutsideZone(()=>{const rt=Be===this._mostRecentTransientRipple;Be.state=1,!ve.persistent&&(!rt||!this._isPointerDown)&&Be.fadeOut()},lt),Be}fadeOutRipple(Se){const V=this._activeRipples.delete(Se);if(Se===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),this._activeRipples.size||(this._containerRect=null),!V)return;const ve=Se.element,Ee=Object.assign(Object.assign({},yt),Se.config.animation);ve.style.transitionDuration=`${Ee.exitDuration}ms`,ve.style.opacity="0",Se.state=2,this._runTimeoutOutsideZone(()=>{Se.state=3,ve.remove()},Ee.exitDuration)}fadeOutAll(){this._activeRipples.forEach(Se=>Se.fadeOut())}fadeOutAllNonPersistent(){this._activeRipples.forEach(Se=>{Se.config.persistent||Se.fadeOut()})}setupTriggerEvents(Se){const V=(0,c.fI)(Se);!V||V===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=V,this._registerEvents(ue))}handleEvent(Se){"mousedown"===Se.type?this._onMousedown(Se):"touchstart"===Se.type?this._onTouchStart(Se):this._onPointerUp(),this._pointerUpEventsRegistered||(this._registerEvents(Te),this._pointerUpEventsRegistered=!0)}_onMousedown(Se){const V=(0,C.X6)(Se),ve=this._lastTouchStartEvent&&Date.now(){!Se.config.persistent&&(1===Se.state||Se.config.terminateOnPointerUp&&0===Se.state)&&Se.fadeOut()}))}_runTimeoutOutsideZone(Se,V=0){this._ngZone.runOutsideAngular(()=>setTimeout(Se,V))}_registerEvents(Se){this._ngZone.runOutsideAngular(()=>{Se.forEach(V=>{this._triggerElement.addEventListener(V,this,Ve)})})}_removeTriggerEvents(){this._triggerElement&&(ue.forEach(Se=>{this._triggerElement.removeEventListener(Se,this,Ve)}),this._pointerUpEventsRegistered&&Te.forEach(Se=>{this._triggerElement.removeEventListener(Se,this,Ve)}))}}const he=new e.OlP("mat-ripple-global-options");let Me=(()=>{class He{constructor(V,ve,Ee,et,$t){this._elementRef=V,this._animationMode=$t,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=et||{},this._rippleRenderer=new ke(this,ve,V,Ee)}get disabled(){return this._disabled}set disabled(V){V&&this.fadeOutAllNonPersistent(),this._disabled=V,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(V){this._trigger=V,this._setupTriggerEventsIfEnabled()}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:Object.assign(Object.assign(Object.assign({},this._globalOptions.animation),"NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(V,ve=0,Ee){return"number"==typeof V?this._rippleRenderer.fadeInRipple(V,ve,Object.assign(Object.assign({},this.rippleConfig),Ee)):this._rippleRenderer.fadeInRipple(0,0,Object.assign(Object.assign({},this.rippleConfig),V))}}return He.\u0275fac=function(V){return new(V||He)(e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(s.t4),e.Y36(he,8),e.Y36(T.Qb,8))},He.\u0275dir=e.lG2({type:He,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(V,ve){2&V&&e.ekj("mat-ripple-unbounded",ve.unbounded)},inputs:{color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],radius:["matRippleRadius","radius"],animation:["matRippleAnimation","animation"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"]},exportAs:["matRipple"]}),He})(),ze=(()=>{class He{}return He.\u0275fac=function(V){return new(V||He)},He.\u0275mod=e.oAB({type:He}),He.\u0275inj=e.cJS({imports:[[ne,s.ud],ne]}),He})(),ht=(()=>{class He{constructor(V){this._animationMode=V,this.state="unchecked",this.disabled=!1}}return He.\u0275fac=function(V){return new(V||He)(e.Y36(T.Qb,8))},He.\u0275cmp=e.Xpm({type:He,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:8,hostBindings:function(V,ve){2&V&&e.ekj("mat-pseudo-checkbox-indeterminate","indeterminate"===ve.state)("mat-pseudo-checkbox-checked","checked"===ve.state)("mat-pseudo-checkbox-disabled",ve.disabled)("_mat-animation-noopable","NoopAnimations"===ve._animationMode)},inputs:{state:"state",disabled:"disabled"},decls:0,vars:0,template:function(V,ve){},styles:['.mat-pseudo-checkbox{width:16px;height:16px;border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:transparent}._mat-animation-noopable.mat-pseudo-checkbox{transition:none;animation:none}._mat-animation-noopable.mat-pseudo-checkbox::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{top:5px;left:1px;width:10px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{top:2.4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}\n'],encapsulation:2,changeDetection:0}),He})(),it=(()=>{class He{}return He.\u0275fac=function(V){return new(V||He)},He.\u0275mod=e.oAB({type:He}),He.\u0275inj=e.cJS({imports:[[ne]]}),He})();const ft=new e.OlP("MAT_OPTION_PARENT_COMPONENT"),Bt=new e.OlP("MatOptgroup");let Vt=0;class Oi{constructor(Se,V=!1){this.source=Se,this.isUserInput=V}}let jt=(()=>{class He{constructor(V,ve,Ee,et){this._element=V,this._changeDetectorRef=ve,this._parent=Ee,this.group=et,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+Vt++,this.onSelectionChange=new e.vpe,this._stateChanges=new P.x}get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(V){this._disabled=(0,c.Ig)(V)}get disableRipple(){return this._parent&&this._parent.disableRipple}get active(){return this._active}get viewValue(){return(this._getHostElement().textContent||"").trim()}select(){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}deselect(){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}focus(V,ve){const Ee=this._getHostElement();"function"==typeof Ee.focus&&Ee.focus(ve)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(V){(V.keyCode===R.K5||V.keyCode===R.L_)&&!(0,R.Vb)(V)&&(this._selectViaInteraction(),V.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getAriaSelected(){return this.selected||!this.multiple&&null}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const V=this.viewValue;V!==this._mostRecentViewValue&&(this._mostRecentViewValue=V,this._stateChanges.next())}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(V=!1){this.onSelectionChange.emit(new Oi(this,V))}}return He.\u0275fac=function(V){e.$Z()},He.\u0275dir=e.lG2({type:He,inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}}),He})(),ti=(()=>{class He extends jt{constructor(V,ve,Ee,et){super(V,ve,Ee,et)}}return He.\u0275fac=function(V){return new(V||He)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(ft,8),e.Y36(Bt,8))},He.\u0275cmp=e.Xpm({type:He,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-option","mat-focus-indicator"],hostVars:12,hostBindings:function(V,ve){1&V&&e.NdJ("click",function(){return ve._selectViaInteraction()})("keydown",function(et){return ve._handleKeydown(et)}),2&V&&(e.Ikx("id",ve.id),e.uIk("tabindex",ve._getTabIndex())("aria-selected",ve._getAriaSelected())("aria-disabled",ve.disabled.toString()),e.ekj("mat-selected",ve.selected)("mat-option-multiple",ve.multiple)("mat-active",ve.active)("mat-option-disabled",ve.disabled))},exportAs:["matOption"],features:[e.qOj],ngContentSelectors:G,decls:5,vars:4,consts:[["class","mat-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mat-option-text"],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-option-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-option-pseudo-checkbox",3,"state","disabled"],[1,"cdk-visually-hidden"]],template:function(V,ve){1&V&&(e.F$t(),e.YNc(0,w,1,2,"mat-pseudo-checkbox",0),e.TgZ(1,"span",1),e.Hsn(2),e.qZA(),e.YNc(3,U,2,1,"span",2),e._UZ(4,"div",3)),2&V&&(e.Q6J("ngIf",ve.multiple),e.xp6(3),e.Q6J("ngIf",ve.group&&ve.group._inert),e.xp6(1),e.Q6J("matRippleTrigger",ve._getHostElement())("matRippleDisabled",ve.disabled||ve.disableRipple))},directives:[M.O5,Me,ht],styles:[".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:transparent}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.cdk-high-contrast-active .mat-option{margin:0 1px}.cdk-high-contrast-active .mat-option.mat-active{border:solid 1px currentColor;margin:0}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\n"],encapsulation:2,changeDetection:0}),He})();function Pi(He,Se,V){if(V.length){let ve=Se.toArray(),Ee=V.toArray(),et=0;for(let $t=0;$tV+ve?Math.max(0,He-ve+Se):V}let di=(()=>{class He{}return He.\u0275fac=function(V){return new(V||He)},He.\u0275mod=e.oAB({type:He}),He.\u0275inj=e.cJS({imports:[[ze,M.ez,ne,it]]}),He})()},6856:(Ue,K,m)=>{"use strict";m.d(K,{Mq:()=>Pt,hl:()=>ot,FA:()=>be,nW:()=>li});var e=m(5664),t=m(9776),v=m(7429),M=m(9808),s=m(5e3),C=m(7423),c=m(5303),P=m(508),o=m(7579),O=m(727),T=m(6451),R=m(9646),S=m(1159),D=m(5698),w=m(8675),U=m(9300),G=m(226),W=m(3191),ee=m(925),ie=m(1777),_e=m(3075),fe=m(7322),de=m(7531);const ne=["mat-calendar-body",""];function se(qe,vt){if(1&qe&&(s.TgZ(0,"tr",2),s.TgZ(1,"td",3),s._uU(2),s.qZA(),s.qZA()),2&qe){const me=s.oxw();s.xp6(1),s.Udp("padding-top",me._cellPadding)("padding-bottom",me._cellPadding),s.uIk("colspan",me.numCols),s.xp6(1),s.hij(" ",me.label," ")}}function oe(qe,vt){if(1&qe&&(s.TgZ(0,"td",3),s._uU(1),s.qZA()),2&qe){const me=s.oxw(2);s.Udp("padding-top",me._cellPadding)("padding-bottom",me._cellPadding),s.uIk("colspan",me._firstRowOffset),s.xp6(1),s.hij(" ",me._firstRowOffset>=me.labelMinRequiredCells?me.label:""," ")}}function y(qe,vt){if(1&qe){const me=s.EpF();s.TgZ(0,"td",7),s.NdJ("click",function(St){const yi=s.CHM(me).$implicit;return s.oxw(2)._cellClicked(yi,St)}),s.TgZ(1,"div",8),s._uU(2),s.qZA(),s._UZ(3,"div",9),s.qZA()}if(2&qe){const me=vt.$implicit,$e=vt.index,St=s.oxw().index,Rt=s.oxw();s.Udp("width",Rt._cellWidth)("padding-top",Rt._cellPadding)("padding-bottom",Rt._cellPadding),s.ekj("mat-calendar-body-disabled",!me.enabled)("mat-calendar-body-active",Rt._isActiveCell(St,$e))("mat-calendar-body-range-start",Rt._isRangeStart(me.compareValue))("mat-calendar-body-range-end",Rt._isRangeEnd(me.compareValue))("mat-calendar-body-in-range",Rt._isInRange(me.compareValue))("mat-calendar-body-comparison-bridge-start",Rt._isComparisonBridgeStart(me.compareValue,St,$e))("mat-calendar-body-comparison-bridge-end",Rt._isComparisonBridgeEnd(me.compareValue,St,$e))("mat-calendar-body-comparison-start",Rt._isComparisonStart(me.compareValue))("mat-calendar-body-comparison-end",Rt._isComparisonEnd(me.compareValue))("mat-calendar-body-in-comparison-range",Rt._isInComparisonRange(me.compareValue))("mat-calendar-body-preview-start",Rt._isPreviewStart(me.compareValue))("mat-calendar-body-preview-end",Rt._isPreviewEnd(me.compareValue))("mat-calendar-body-in-preview",Rt._isInPreview(me.compareValue)),s.Q6J("ngClass",me.cssClasses)("tabindex",Rt._isActiveCell(St,$e)?0:-1),s.uIk("data-mat-row",St)("data-mat-col",$e)("aria-label",me.ariaLabel)("aria-disabled",!me.enabled||null)("aria-selected",Rt._isSelected(me.compareValue))("aria-current",Rt.todayValue===me.compareValue?"date":null),s.xp6(1),s.ekj("mat-calendar-body-selected",Rt._isSelected(me.compareValue))("mat-calendar-body-comparison-identical",Rt._isComparisonIdentical(me.compareValue))("mat-calendar-body-today",Rt.todayValue===me.compareValue),s.xp6(1),s.hij(" ",me.displayValue," ")}}function i(qe,vt){if(1&qe&&(s.TgZ(0,"tr",4),s.YNc(1,oe,2,6,"td",5),s.YNc(2,y,4,47,"td",6),s.qZA()),2&qe){const me=vt.$implicit,$e=vt.index,St=s.oxw();s.xp6(1),s.Q6J("ngIf",0===$e&&St._firstRowOffset),s.xp6(1),s.Q6J("ngForOf",me)}}function a(qe,vt){if(1&qe&&(s.TgZ(0,"th",5),s.TgZ(1,"abbr",6),s._uU(2),s.qZA(),s.qZA()),2&qe){const me=vt.$implicit;s.uIk("aria-label",me.long),s.xp6(1),s.uIk("title",me.long),s.xp6(1),s.Oqu(me.narrow)}}const p=["*"];function u(qe,vt){}function _(qe,vt){if(1&qe){const me=s.EpF();s.TgZ(0,"mat-month-view",5),s.NdJ("activeDateChange",function(St){return s.CHM(me),s.oxw().activeDate=St})("_userSelection",function(St){return s.CHM(me),s.oxw()._dateSelected(St)}),s.qZA()}if(2&qe){const me=s.oxw();s.Q6J("activeDate",me.activeDate)("selected",me.selected)("dateFilter",me.dateFilter)("maxDate",me.maxDate)("minDate",me.minDate)("dateClass",me.dateClass)("comparisonStart",me.comparisonStart)("comparisonEnd",me.comparisonEnd)}}function L(qe,vt){if(1&qe){const me=s.EpF();s.TgZ(0,"mat-year-view",6),s.NdJ("activeDateChange",function(St){return s.CHM(me),s.oxw().activeDate=St})("monthSelected",function(St){return s.CHM(me),s.oxw()._monthSelectedInYearView(St)})("selectedChange",function(St){return s.CHM(me),s.oxw()._goToDateInView(St,"month")}),s.qZA()}if(2&qe){const me=s.oxw();s.Q6J("activeDate",me.activeDate)("selected",me.selected)("dateFilter",me.dateFilter)("maxDate",me.maxDate)("minDate",me.minDate)("dateClass",me.dateClass)}}function I(qe,vt){if(1&qe){const me=s.EpF();s.TgZ(0,"mat-multi-year-view",7),s.NdJ("activeDateChange",function(St){return s.CHM(me),s.oxw().activeDate=St})("yearSelected",function(St){return s.CHM(me),s.oxw()._yearSelectedInMultiYearView(St)})("selectedChange",function(St){return s.CHM(me),s.oxw()._goToDateInView(St,"year")}),s.qZA()}if(2&qe){const me=s.oxw();s.Q6J("activeDate",me.activeDate)("selected",me.selected)("dateFilter",me.dateFilter)("maxDate",me.maxDate)("minDate",me.minDate)("dateClass",me.dateClass)}}function x(qe,vt){}const r=["button"];function b(qe,vt){1&qe&&(s.O4$(),s.TgZ(0,"svg",3),s._UZ(1,"path",4),s.qZA())}const J=[[["","matDatepickerToggleIcon",""]]],F=["[matDatepickerToggleIcon]"];class Fe{constructor(vt,me,$e,St,Rt={},yi=vt,Ri){this.value=vt,this.displayValue=me,this.ariaLabel=$e,this.enabled=St,this.cssClasses=Rt,this.compareValue=yi,this.rawValue=Ri}}let q=(()=>{class qe{constructor(me,$e){this._elementRef=me,this._ngZone=$e,this.numCols=7,this.activeCell=0,this.isRange=!1,this.cellAspectRatio=1,this.previewStart=null,this.previewEnd=null,this.selectedValueChange=new s.vpe,this.previewChange=new s.vpe,this._enterHandler=St=>{if(this._skipNextFocus&&"focus"===St.type)this._skipNextFocus=!1;else if(St.target&&this.isRange){const Rt=this._getCellFromElement(St.target);Rt&&this._ngZone.run(()=>this.previewChange.emit({value:Rt.enabled?Rt:null,event:St}))}},this._leaveHandler=St=>{null!==this.previewEnd&&this.isRange&&St.target&&j(St.target)&&this._ngZone.run(()=>this.previewChange.emit({value:null,event:St}))},$e.runOutsideAngular(()=>{const St=me.nativeElement;St.addEventListener("mouseenter",this._enterHandler,!0),St.addEventListener("focus",this._enterHandler,!0),St.addEventListener("mouseleave",this._leaveHandler,!0),St.addEventListener("blur",this._leaveHandler,!0)})}_cellClicked(me,$e){me.enabled&&this.selectedValueChange.emit({value:me.value,event:$e})}_isSelected(me){return this.startValue===me||this.endValue===me}ngOnChanges(me){const $e=me.numCols,{rows:St,numCols:Rt}=this;(me.rows||$e)&&(this._firstRowOffset=St&&St.length&&St[0].length?Rt-St[0].length:0),(me.cellAspectRatio||$e||!this._cellPadding)&&(this._cellPadding=50*this.cellAspectRatio/Rt+"%"),($e||!this._cellWidth)&&(this._cellWidth=100/Rt+"%")}ngOnDestroy(){const me=this._elementRef.nativeElement;me.removeEventListener("mouseenter",this._enterHandler,!0),me.removeEventListener("focus",this._enterHandler,!0),me.removeEventListener("mouseleave",this._leaveHandler,!0),me.removeEventListener("blur",this._leaveHandler,!0)}_isActiveCell(me,$e){let St=me*this.numCols+$e;return me&&(St-=this._firstRowOffset),St==this.activeCell}_focusActiveCell(me=!0){this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe((0,D.q)(1)).subscribe(()=>{const $e=this._elementRef.nativeElement.querySelector(".mat-calendar-body-active");$e&&(me||(this._skipNextFocus=!0),$e.focus())})})}_isRangeStart(me){return we(me,this.startValue,this.endValue)}_isRangeEnd(me){return Ae(me,this.startValue,this.endValue)}_isInRange(me){return le(me,this.startValue,this.endValue,this.isRange)}_isComparisonStart(me){return we(me,this.comparisonStart,this.comparisonEnd)}_isComparisonBridgeStart(me,$e,St){if(!this._isComparisonStart(me)||this._isRangeStart(me)||!this._isInRange(me))return!1;let Rt=this.rows[$e][St-1];if(!Rt){const yi=this.rows[$e-1];Rt=yi&&yi[yi.length-1]}return Rt&&!this._isRangeEnd(Rt.compareValue)}_isComparisonBridgeEnd(me,$e,St){if(!this._isComparisonEnd(me)||this._isRangeEnd(me)||!this._isInRange(me))return!1;let Rt=this.rows[$e][St+1];if(!Rt){const yi=this.rows[$e+1];Rt=yi&&yi[0]}return Rt&&!this._isRangeStart(Rt.compareValue)}_isComparisonEnd(me){return Ae(me,this.comparisonStart,this.comparisonEnd)}_isInComparisonRange(me){return le(me,this.comparisonStart,this.comparisonEnd,this.isRange)}_isComparisonIdentical(me){return this.comparisonStart===this.comparisonEnd&&me===this.comparisonStart}_isPreviewStart(me){return we(me,this.previewStart,this.previewEnd)}_isPreviewEnd(me){return Ae(me,this.previewStart,this.previewEnd)}_isInPreview(me){return le(me,this.previewStart,this.previewEnd,this.isRange)}_getCellFromElement(me){let $e;if(j(me)?$e=me:j(me.parentNode)&&($e=me.parentNode),$e){const St=$e.getAttribute("data-mat-row"),Rt=$e.getAttribute("data-mat-col");if(St&&Rt)return this.rows[parseInt(St)][parseInt(Rt)]}return null}}return qe.\u0275fac=function(me){return new(me||qe)(s.Y36(s.SBq),s.Y36(s.R0b))},qe.\u0275cmp=s.Xpm({type:qe,selectors:[["","mat-calendar-body",""]],hostAttrs:[1,"mat-calendar-body"],inputs:{label:"label",rows:"rows",todayValue:"todayValue",startValue:"startValue",endValue:"endValue",labelMinRequiredCells:"labelMinRequiredCells",numCols:"numCols",activeCell:"activeCell",isRange:"isRange",cellAspectRatio:"cellAspectRatio",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",previewStart:"previewStart",previewEnd:"previewEnd"},outputs:{selectedValueChange:"selectedValueChange",previewChange:"previewChange"},exportAs:["matCalendarBody"],features:[s.TTD],attrs:ne,decls:2,vars:2,consts:[["aria-hidden","true",4,"ngIf"],["role","row",4,"ngFor","ngForOf"],["aria-hidden","true"],[1,"mat-calendar-body-label"],["role","row"],["class","mat-calendar-body-label",3,"paddingTop","paddingBottom",4,"ngIf"],["role","gridcell","class","mat-calendar-body-cell",3,"ngClass","tabindex","mat-calendar-body-disabled","mat-calendar-body-active","mat-calendar-body-range-start","mat-calendar-body-range-end","mat-calendar-body-in-range","mat-calendar-body-comparison-bridge-start","mat-calendar-body-comparison-bridge-end","mat-calendar-body-comparison-start","mat-calendar-body-comparison-end","mat-calendar-body-in-comparison-range","mat-calendar-body-preview-start","mat-calendar-body-preview-end","mat-calendar-body-in-preview","width","paddingTop","paddingBottom","click",4,"ngFor","ngForOf"],["role","gridcell",1,"mat-calendar-body-cell",3,"ngClass","tabindex","click"],[1,"mat-calendar-body-cell-content","mat-focus-indicator"],[1,"mat-calendar-body-cell-preview"]],template:function(me,$e){1&me&&(s.YNc(0,se,3,6,"tr",0),s.YNc(1,i,3,2,"tr",1)),2&me&&(s.Q6J("ngIf",$e._firstRowOffset<$e.labelMinRequiredCells),s.xp6(1),s.Q6J("ngForOf",$e.rows))},directives:[M.O5,M.sg,M.mk],styles:['.mat-calendar-body{min-width:224px}.mat-calendar-body-label{height:0;line-height:0;text-align:left;padding-left:4.7142857143%;padding-right:4.7142857143%}.mat-calendar-body-cell{position:relative;height:0;line-height:0;text-align:center;outline:none;cursor:pointer}.mat-calendar-body-cell::before,.mat-calendar-body-cell::after,.mat-calendar-body-cell-preview{content:"";position:absolute;top:5%;left:0;z-index:0;box-sizing:border-box;height:90%;width:100%}.mat-calendar-body-range-start:not(.mat-calendar-body-in-comparison-range)::before,.mat-calendar-body-range-start::after,.mat-calendar-body-comparison-start:not(.mat-calendar-body-comparison-bridge-start)::before,.mat-calendar-body-comparison-start::after,.mat-calendar-body-preview-start .mat-calendar-body-cell-preview{left:5%;width:95%;border-top-left-radius:999px;border-bottom-left-radius:999px}[dir=rtl] .mat-calendar-body-range-start:not(.mat-calendar-body-in-comparison-range)::before,[dir=rtl] .mat-calendar-body-range-start::after,[dir=rtl] .mat-calendar-body-comparison-start:not(.mat-calendar-body-comparison-bridge-start)::before,[dir=rtl] .mat-calendar-body-comparison-start::after,[dir=rtl] .mat-calendar-body-preview-start .mat-calendar-body-cell-preview{left:0;border-radius:0;border-top-right-radius:999px;border-bottom-right-radius:999px}.mat-calendar-body-range-end:not(.mat-calendar-body-in-comparison-range)::before,.mat-calendar-body-range-end::after,.mat-calendar-body-comparison-end:not(.mat-calendar-body-comparison-bridge-end)::before,.mat-calendar-body-comparison-end::after,.mat-calendar-body-preview-end .mat-calendar-body-cell-preview{width:95%;border-top-right-radius:999px;border-bottom-right-radius:999px}[dir=rtl] .mat-calendar-body-range-end:not(.mat-calendar-body-in-comparison-range)::before,[dir=rtl] .mat-calendar-body-range-end::after,[dir=rtl] .mat-calendar-body-comparison-end:not(.mat-calendar-body-comparison-bridge-end)::before,[dir=rtl] .mat-calendar-body-comparison-end::after,[dir=rtl] .mat-calendar-body-preview-end .mat-calendar-body-cell-preview{left:5%;border-radius:0;border-top-left-radius:999px;border-bottom-left-radius:999px}[dir=rtl] .mat-calendar-body-comparison-bridge-start.mat-calendar-body-range-end::after,[dir=rtl] .mat-calendar-body-comparison-bridge-end.mat-calendar-body-range-start::after{width:95%;border-top-right-radius:999px;border-bottom-right-radius:999px}.mat-calendar-body-comparison-start.mat-calendar-body-range-end::after,[dir=rtl] .mat-calendar-body-comparison-start.mat-calendar-body-range-end::after,.mat-calendar-body-comparison-end.mat-calendar-body-range-start::after,[dir=rtl] .mat-calendar-body-comparison-end.mat-calendar-body-range-start::after{width:90%}.mat-calendar-body-in-preview .mat-calendar-body-cell-preview{border-top:dashed 1px;border-bottom:dashed 1px}.mat-calendar-body-preview-start .mat-calendar-body-cell-preview{border-left:dashed 1px}[dir=rtl] .mat-calendar-body-preview-start .mat-calendar-body-cell-preview{border-left:0;border-right:dashed 1px}.mat-calendar-body-preview-end .mat-calendar-body-cell-preview{border-right:dashed 1px}[dir=rtl] .mat-calendar-body-preview-end .mat-calendar-body-cell-preview{border-right:0;border-left:dashed 1px}.mat-calendar-body-disabled{cursor:default}.cdk-high-contrast-active .mat-calendar-body-disabled{opacity:.5}.mat-calendar-body-cell-content{top:5%;left:5%;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;line-height:1;border-width:1px;border-style:solid;border-radius:999px}.mat-calendar-body-cell-content.mat-focus-indicator{position:absolute}.cdk-high-contrast-active .mat-calendar-body-cell-content{border:none}.cdk-high-contrast-active .mat-datepicker-popup:not(:empty),.cdk-high-contrast-active .mat-calendar-body-cell:not(.mat-calendar-body-in-range) .mat-calendar-body-selected{outline:solid 1px}.cdk-high-contrast-active .mat-calendar-body-today{outline:dotted 1px}.cdk-high-contrast-active .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-high-contrast-active .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){outline:dotted 2px}.cdk-high-contrast-active .mat-calendar-body-cell::before,.cdk-high-contrast-active .mat-calendar-body-cell::after,.cdk-high-contrast-active .mat-calendar-body-selected{background:none}.cdk-high-contrast-active .mat-calendar-body-in-range::before,.cdk-high-contrast-active .mat-calendar-body-comparison-bridge-start::before,.cdk-high-contrast-active .mat-calendar-body-comparison-bridge-end::before{border-top:solid 1px;border-bottom:solid 1px}.cdk-high-contrast-active .mat-calendar-body-range-start::before{border-left:solid 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-range-start::before{border-left:0;border-right:solid 1px}.cdk-high-contrast-active .mat-calendar-body-range-end::before{border-right:solid 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-range-end::before{border-right:0;border-left:solid 1px}.cdk-high-contrast-active .mat-calendar-body-in-comparison-range::before{border-top:dashed 1px;border-bottom:dashed 1px}.cdk-high-contrast-active .mat-calendar-body-comparison-start::before{border-left:dashed 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-comparison-start::before{border-left:0;border-right:dashed 1px}.cdk-high-contrast-active .mat-calendar-body-comparison-end::before{border-right:dashed 1px}[dir=rtl] .cdk-high-contrast-active .mat-calendar-body-comparison-end::before{border-right:0;border-left:dashed 1px}[dir=rtl] .mat-calendar-body-label{text-align:right}\n'],encapsulation:2,changeDetection:0}),qe})();function j(qe){return"TD"===qe.nodeName}function we(qe,vt,me){return null!==me&&vt!==me&&qe=vt&&qe===me}function le(qe,vt,me,$e){return $e&&null!==vt&&null!==me&&vt!==me&&qe>=vt&&qe<=me}class We{constructor(vt,me){this.start=vt,this.end=me}}let yt=(()=>{class qe{constructor(me,$e){this.selection=me,this._adapter=$e,this._selectionChanged=new o.x,this.selectionChanged=this._selectionChanged,this.selection=me}updateSelection(me,$e){const St=this.selection;this.selection=me,this._selectionChanged.next({selection:me,source:$e,oldValue:St})}ngOnDestroy(){this._selectionChanged.complete()}_isValidDateInstance(me){return this._adapter.isDateInstance(me)&&this._adapter.isValid(me)}}return qe.\u0275fac=function(me){s.$Z()},qe.\u0275prov=s.Yz7({token:qe,factory:qe.\u0275fac}),qe})(),Ne=(()=>{class qe extends yt{constructor(me){super(null,me)}add(me){super.updateSelection(me,this)}isValid(){return null!=this.selection&&this._isValidDateInstance(this.selection)}isComplete(){return null!=this.selection}clone(){const me=new qe(this._adapter);return me.updateSelection(this.selection,this),me}}return qe.\u0275fac=function(me){return new(me||qe)(s.LFG(P._A))},qe.\u0275prov=s.Yz7({token:qe,factory:qe.\u0275fac}),qe})();const Te={provide:yt,deps:[[new s.FiY,new s.tp0,yt],P._A],useFactory:function(qe,vt){return qe||new Ne(vt)}},X=new s.OlP("MAT_DATE_RANGE_SELECTION_STRATEGY");let it=(()=>{class qe{constructor(me,$e,St,Rt,yi){this._changeDetectorRef=me,this._dateFormats=$e,this._dateAdapter=St,this._dir=Rt,this._rangeStrategy=yi,this._rerenderSubscription=O.w0.EMPTY,this.selectedChange=new s.vpe,this._userSelection=new s.vpe,this.activeDateChange=new s.vpe,this._activeDate=this._dateAdapter.today()}get activeDate(){return this._activeDate}set activeDate(me){const $e=this._activeDate,St=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(St,this.minDate,this.maxDate),this._hasSameMonthAndYear($e,this._activeDate)||this._init()}get selected(){return this._selected}set selected(me){this._selected=me instanceof We?me:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me)),this._setRanges(this._selected)}get minDate(){return this._minDate}set minDate(me){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}get maxDate(){return this._maxDate}set maxDate(me){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe((0,w.O)(null)).subscribe(()=>this._init())}ngOnChanges(me){const $e=me.comparisonStart||me.comparisonEnd;$e&&!$e.firstChange&&this._setRanges(this.selected)}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_dateSelected(me){const $e=me.value,St=this._dateAdapter.getYear(this.activeDate),Rt=this._dateAdapter.getMonth(this.activeDate),yi=this._dateAdapter.createDate(St,Rt,$e);let Ri,Ii;this._selected instanceof We?(Ri=this._getDateInCurrentMonth(this._selected.start),Ii=this._getDateInCurrentMonth(this._selected.end)):Ri=Ii=this._getDateInCurrentMonth(this._selected),(Ri!==$e||Ii!==$e)&&this.selectedChange.emit(yi),this._userSelection.emit({value:yi,event:me.event}),this._previewStart=this._previewEnd=null,this._changeDetectorRef.markForCheck()}_handleCalendarBodyKeydown(me){const $e=this._activeDate,St=this._isRtl();switch(me.keyCode){case S.oh:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,St?1:-1);break;case S.SV:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,St?-1:1);break;case S.LH:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-7);break;case S.JH:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,7);break;case S.Sd:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1-this._dateAdapter.getDate(this._activeDate));break;case S.uR:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,this._dateAdapter.getNumDaysInMonth(this._activeDate)-this._dateAdapter.getDate(this._activeDate));break;case S.Ku:this.activeDate=me.altKey?this._dateAdapter.addCalendarYears(this._activeDate,-1):this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case S.VM:this.activeDate=me.altKey?this._dateAdapter.addCalendarYears(this._activeDate,1):this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case S.K5:case S.L_:return this._selectionKeyPressed=!0,void(this._canSelect(this._activeDate)&&me.preventDefault());case S.hY:return void(null!=this._previewEnd&&!(0,S.Vb)(me)&&(this._previewStart=this._previewEnd=null,this.selectedChange.emit(null),this._userSelection.emit({value:null,event:me}),me.preventDefault(),me.stopPropagation()));default:return}this._dateAdapter.compareDate($e,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCell(),me.preventDefault()}_handleCalendarBodyKeyup(me){(me.keyCode===S.L_||me.keyCode===S.K5)&&(this._selectionKeyPressed&&this._canSelect(this._activeDate)&&this._dateSelected({value:this._dateAdapter.getDate(this._activeDate),event:me}),this._selectionKeyPressed=!1)}_init(){this._setRanges(this.selected),this._todayDate=this._getCellCompareValue(this._dateAdapter.today()),this._monthLabel=this._dateFormats.display.monthLabel?this._dateAdapter.format(this.activeDate,this._dateFormats.display.monthLabel):this._dateAdapter.getMonthNames("short")[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();let me=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),1);this._firstWeekOffset=(7+this._dateAdapter.getDayOfWeek(me)-this._dateAdapter.getFirstDayOfWeek())%7,this._initWeekdays(),this._createWeekCells(),this._changeDetectorRef.markForCheck()}_focusActiveCell(me){this._matCalendarBody._focusActiveCell(me)}_previewChanged({event:me,value:$e}){if(this._rangeStrategy){const Rt=this._rangeStrategy.createPreview($e?$e.rawValue:null,this.selected,me);this._previewStart=this._getCellCompareValue(Rt.start),this._previewEnd=this._getCellCompareValue(Rt.end),this._changeDetectorRef.detectChanges()}}_initWeekdays(){const me=this._dateAdapter.getFirstDayOfWeek(),$e=this._dateAdapter.getDayOfWeekNames("narrow");let Rt=this._dateAdapter.getDayOfWeekNames("long").map((yi,Ri)=>({long:yi,narrow:$e[Ri]}));this._weekdays=Rt.slice(me).concat(Rt.slice(0,me))}_createWeekCells(){const me=this._dateAdapter.getNumDaysInMonth(this.activeDate),$e=this._dateAdapter.getDateNames();this._weeks=[[]];for(let St=0,Rt=this._firstWeekOffset;St=0)&&(!this.maxDate||this._dateAdapter.compareDate(me,this.maxDate)<=0)&&(!this.dateFilter||this.dateFilter(me))}_getDateInCurrentMonth(me){return me&&this._hasSameMonthAndYear(me,this.activeDate)?this._dateAdapter.getDate(me):null}_hasSameMonthAndYear(me,$e){return!(!me||!$e||this._dateAdapter.getMonth(me)!=this._dateAdapter.getMonth($e)||this._dateAdapter.getYear(me)!=this._dateAdapter.getYear($e))}_getCellCompareValue(me){if(me){const $e=this._dateAdapter.getYear(me),St=this._dateAdapter.getMonth(me),Rt=this._dateAdapter.getDate(me);return new Date($e,St,Rt).getTime()}return null}_isRtl(){return this._dir&&"rtl"===this._dir.value}_setRanges(me){me instanceof We?(this._rangeStart=this._getCellCompareValue(me.start),this._rangeEnd=this._getCellCompareValue(me.end),this._isRange=!0):(this._rangeStart=this._rangeEnd=this._getCellCompareValue(me),this._isRange=!1),this._comparisonRangeStart=this._getCellCompareValue(this.comparisonStart),this._comparisonRangeEnd=this._getCellCompareValue(this.comparisonEnd)}_canSelect(me){return!this.dateFilter||this.dateFilter(me)}}return qe.\u0275fac=function(me){return new(me||qe)(s.Y36(s.sBO),s.Y36(P.sG,8),s.Y36(P._A,8),s.Y36(G.Is,8),s.Y36(X,8))},qe.\u0275cmp=s.Xpm({type:qe,selectors:[["mat-month-view"]],viewQuery:function(me,$e){if(1&me&&s.Gf(q,5),2&me){let St;s.iGM(St=s.CRH())&&($e._matCalendarBody=St.first)}},inputs:{activeDate:"activeDate",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd"},outputs:{selectedChange:"selectedChange",_userSelection:"_userSelection",activeDateChange:"activeDateChange"},exportAs:["matMonthView"],features:[s.TTD],decls:7,vars:13,consts:[["role","grid",1,"mat-calendar-table"],[1,"mat-calendar-table-header"],["scope","col",4,"ngFor","ngForOf"],["aria-hidden","true","colspan","7",1,"mat-calendar-table-header-divider"],["mat-calendar-body","",3,"label","rows","todayValue","startValue","endValue","comparisonStart","comparisonEnd","previewStart","previewEnd","isRange","labelMinRequiredCells","activeCell","selectedValueChange","previewChange","keyup","keydown"],["scope","col"],[1,"mat-calendar-abbr"]],template:function(me,$e){1&me&&(s.TgZ(0,"table",0),s.TgZ(1,"thead",1),s.TgZ(2,"tr"),s.YNc(3,a,3,3,"th",2),s.qZA(),s.TgZ(4,"tr"),s._UZ(5,"th",3),s.qZA(),s.qZA(),s.TgZ(6,"tbody",4),s.NdJ("selectedValueChange",function(Rt){return $e._dateSelected(Rt)})("previewChange",function(Rt){return $e._previewChanged(Rt)})("keyup",function(Rt){return $e._handleCalendarBodyKeyup(Rt)})("keydown",function(Rt){return $e._handleCalendarBodyKeydown(Rt)}),s.qZA(),s.qZA()),2&me&&(s.xp6(3),s.Q6J("ngForOf",$e._weekdays),s.xp6(3),s.Q6J("label",$e._monthLabel)("rows",$e._weeks)("todayValue",$e._todayDate)("startValue",$e._rangeStart)("endValue",$e._rangeEnd)("comparisonStart",$e._comparisonRangeStart)("comparisonEnd",$e._comparisonRangeEnd)("previewStart",$e._previewStart)("previewEnd",$e._previewEnd)("isRange",$e._isRange)("labelMinRequiredCells",3)("activeCell",$e._dateAdapter.getDate($e.activeDate)-1))},directives:[M.sg,q],encapsulation:2,changeDetection:0}),qe})(),st=(()=>{class qe{constructor(me,$e,St){this._changeDetectorRef=me,this._dateAdapter=$e,this._dir=St,this._rerenderSubscription=O.w0.EMPTY,this.selectedChange=new s.vpe,this.yearSelected=new s.vpe,this.activeDateChange=new s.vpe,this._activeDate=this._dateAdapter.today()}get activeDate(){return this._activeDate}set activeDate(me){let $e=this._activeDate;const St=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(St,this.minDate,this.maxDate),wt(this._dateAdapter,$e,this._activeDate,this.minDate,this.maxDate)||this._init()}get selected(){return this._selected}set selected(me){this._selected=me instanceof We?me:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me)),this._setSelectedYear(me)}get minDate(){return this._minDate}set minDate(me){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}get maxDate(){return this._maxDate}set maxDate(me){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe((0,w.O)(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_init(){this._todayYear=this._dateAdapter.getYear(this._dateAdapter.today());const $e=this._dateAdapter.getYear(this._activeDate)-Bt(this._dateAdapter,this.activeDate,this.minDate,this.maxDate);this._years=[];for(let St=0,Rt=[];St<24;St++)Rt.push($e+St),4==Rt.length&&(this._years.push(Rt.map(yi=>this._createCellForYear(yi))),Rt=[]);this._changeDetectorRef.markForCheck()}_yearSelected(me){const $e=me.value;this.yearSelected.emit(this._dateAdapter.createDate($e,0,1));let St=this._dateAdapter.getMonth(this.activeDate),Rt=this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate($e,St,1));this.selectedChange.emit(this._dateAdapter.createDate($e,St,Math.min(this._dateAdapter.getDate(this.activeDate),Rt)))}_handleCalendarBodyKeydown(me){const $e=this._activeDate,St=this._isRtl();switch(me.keyCode){case S.oh:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,St?1:-1);break;case S.SV:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,St?-1:1);break;case S.LH:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-4);break;case S.JH:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,4);break;case S.Sd:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-Bt(this._dateAdapter,this.activeDate,this.minDate,this.maxDate));break;case S.uR:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,24-Bt(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)-1);break;case S.Ku:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,me.altKey?-240:-24);break;case S.VM:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,me.altKey?240:24);break;case S.K5:case S.L_:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate($e,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCell(),me.preventDefault()}_handleCalendarBodyKeyup(me){(me.keyCode===S.L_||me.keyCode===S.K5)&&(this._selectionKeyPressed&&this._yearSelected({value:this._dateAdapter.getYear(this._activeDate),event:me}),this._selectionKeyPressed=!1)}_getActiveCell(){return Bt(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_createCellForYear(me){const $e=this._dateAdapter.createDate(me,0,1),St=this._dateAdapter.getYearName($e),Rt=this.dateClass?this.dateClass($e,"multi-year"):void 0;return new Fe(me,St,St,this._shouldEnableYear(me),Rt)}_shouldEnableYear(me){if(null==me||this.maxDate&&me>this._dateAdapter.getYear(this.maxDate)||this.minDate&&me{class qe{constructor(me,$e,St,Rt){this._changeDetectorRef=me,this._dateFormats=$e,this._dateAdapter=St,this._dir=Rt,this._rerenderSubscription=O.w0.EMPTY,this.selectedChange=new s.vpe,this.monthSelected=new s.vpe,this.activeDateChange=new s.vpe,this._activeDate=this._dateAdapter.today()}get activeDate(){return this._activeDate}set activeDate(me){let $e=this._activeDate;const St=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(St,this.minDate,this.maxDate),this._dateAdapter.getYear($e)!==this._dateAdapter.getYear(this._activeDate)&&this._init()}get selected(){return this._selected}set selected(me){this._selected=me instanceof We?me:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me)),this._setSelectedMonth(me)}get minDate(){return this._minDate}set minDate(me){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}get maxDate(){return this._maxDate}set maxDate(me){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe((0,w.O)(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_monthSelected(me){const $e=me.value,St=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),$e,1);this.monthSelected.emit(St);const Rt=this._dateAdapter.getNumDaysInMonth(St);this.selectedChange.emit(this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),$e,Math.min(this._dateAdapter.getDate(this.activeDate),Rt)))}_handleCalendarBodyKeydown(me){const $e=this._activeDate,St=this._isRtl();switch(me.keyCode){case S.oh:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,St?1:-1);break;case S.SV:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,St?-1:1);break;case S.LH:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-4);break;case S.JH:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,4);break;case S.Sd:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-this._dateAdapter.getMonth(this._activeDate));break;case S.uR:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,11-this._dateAdapter.getMonth(this._activeDate));break;case S.Ku:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,me.altKey?-10:-1);break;case S.VM:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,me.altKey?10:1);break;case S.K5:case S.L_:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate($e,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCell(),me.preventDefault()}_handleCalendarBodyKeyup(me){(me.keyCode===S.L_||me.keyCode===S.K5)&&(this._selectionKeyPressed&&this._monthSelected({value:this._dateAdapter.getMonth(this._activeDate),event:me}),this._selectionKeyPressed=!1)}_init(){this._setSelectedMonth(this.selected),this._todayMonth=this._getMonthInCurrentYear(this._dateAdapter.today()),this._yearLabel=this._dateAdapter.getYearName(this.activeDate);let me=this._dateAdapter.getMonthNames("short");this._months=[[0,1,2,3],[4,5,6,7],[8,9,10,11]].map($e=>$e.map(St=>this._createCellForMonth(St,me[St]))),this._changeDetectorRef.markForCheck()}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_getMonthInCurrentYear(me){return me&&this._dateAdapter.getYear(me)==this._dateAdapter.getYear(this.activeDate)?this._dateAdapter.getMonth(me):null}_createCellForMonth(me,$e){const St=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),me,1),Rt=this._dateAdapter.format(St,this._dateFormats.display.monthYearA11yLabel),yi=this.dateClass?this.dateClass(St,"year"):void 0;return new Fe(me,$e.toLocaleUpperCase(),Rt,this._shouldEnableMonth(me),yi)}_shouldEnableMonth(me){const $e=this._dateAdapter.getYear(this.activeDate);if(null==me||this._isYearAndMonthAfterMaxDate($e,me)||this._isYearAndMonthBeforeMinDate($e,me))return!1;if(!this.dateFilter)return!0;for(let Rt=this._dateAdapter.createDate($e,me,1);this._dateAdapter.getMonth(Rt)==me;Rt=this._dateAdapter.addCalendarDays(Rt,1))if(this.dateFilter(Rt))return!0;return!1}_isYearAndMonthAfterMaxDate(me,$e){if(this.maxDate){const St=this._dateAdapter.getYear(this.maxDate),Rt=this._dateAdapter.getMonth(this.maxDate);return me>St||me===St&&$e>Rt}return!1}_isYearAndMonthBeforeMinDate(me,$e){if(this.minDate){const St=this._dateAdapter.getYear(this.minDate),Rt=this._dateAdapter.getMonth(this.minDate);return me{class qe{constructor(){this.changes=new o.x,this.calendarLabel="Calendar",this.openCalendarLabel="Open calendar",this.closeCalendarLabel="Close calendar",this.prevMonthLabel="Previous month",this.nextMonthLabel="Next month",this.prevYearLabel="Previous year",this.nextYearLabel="Next year",this.prevMultiYearLabel="Previous 24 years",this.nextMultiYearLabel="Next 24 years",this.switchToMonthViewLabel="Choose date",this.switchToMultiYearViewLabel="Choose month and year"}formatYearRange(me,$e){return`${me} \u2013 ${$e}`}}return qe.\u0275fac=function(me){return new(me||qe)},qe.\u0275prov=s.Yz7({token:qe,factory:qe.\u0275fac,providedIn:"root"}),qe})(),ti=0,Pi=(()=>{class qe{constructor(me,$e,St,Rt,yi){this._intl=me,this.calendar=$e,this._dateAdapter=St,this._dateFormats=Rt,this._buttonDescriptionId="mat-calendar-button-"+ti++,this.calendar.stateChanges.subscribe(()=>yi.markForCheck())}get periodButtonText(){if("month"==this.calendar.currentView)return this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase();if("year"==this.calendar.currentView)return this._dateAdapter.getYearName(this.calendar.activeDate);const $e=this._dateAdapter.getYear(this.calendar.activeDate)-Bt(this._dateAdapter,this.calendar.activeDate,this.calendar.minDate,this.calendar.maxDate),St=$e+24-1,Rt=this._dateAdapter.getYearName(this._dateAdapter.createDate($e,0,1)),yi=this._dateAdapter.getYearName(this._dateAdapter.createDate(St,0,1));return this._intl.formatYearRange(Rt,yi)}get periodButtonLabel(){return"month"==this.calendar.currentView?this._intl.switchToMultiYearViewLabel:this._intl.switchToMonthViewLabel}get prevButtonLabel(){return{month:this._intl.prevMonthLabel,year:this._intl.prevYearLabel,"multi-year":this._intl.prevMultiYearLabel}[this.calendar.currentView]}get nextButtonLabel(){return{month:this._intl.nextMonthLabel,year:this._intl.nextYearLabel,"multi-year":this._intl.nextMultiYearLabel}[this.calendar.currentView]}currentPeriodClicked(){this.calendar.currentView="month"==this.calendar.currentView?"multi-year":"month"}previousClicked(){this.calendar.activeDate="month"==this.calendar.currentView?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,-1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,"year"==this.calendar.currentView?-1:-24)}nextClicked(){this.calendar.activeDate="month"==this.calendar.currentView?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,"year"==this.calendar.currentView?1:24)}previousEnabled(){return!this.calendar.minDate||!this.calendar.minDate||!this._isSameView(this.calendar.activeDate,this.calendar.minDate)}nextEnabled(){return!this.calendar.maxDate||!this._isSameView(this.calendar.activeDate,this.calendar.maxDate)}_isSameView(me,$e){return"month"==this.calendar.currentView?this._dateAdapter.getYear(me)==this._dateAdapter.getYear($e)&&this._dateAdapter.getMonth(me)==this._dateAdapter.getMonth($e):"year"==this.calendar.currentView?this._dateAdapter.getYear(me)==this._dateAdapter.getYear($e):wt(this._dateAdapter,me,$e,this.calendar.minDate,this.calendar.maxDate)}}return qe.\u0275fac=function(me){return new(me||qe)(s.Y36(jt),s.Y36((0,s.Gpc)(()=>si)),s.Y36(P._A,8),s.Y36(P.sG,8),s.Y36(s.sBO))},qe.\u0275cmp=s.Xpm({type:qe,selectors:[["mat-calendar-header"]],exportAs:["matCalendarHeader"],ngContentSelectors:p,decls:11,vars:10,consts:[[1,"mat-calendar-header"],[1,"mat-calendar-controls"],["mat-button","","type","button","cdkAriaLive","polite",1,"mat-calendar-period-button",3,"click"],["viewBox","0 0 10 5","focusable","false",1,"mat-calendar-arrow"],["points","0,0 5,5 10,0"],[1,"mat-calendar-spacer"],["mat-icon-button","","type","button",1,"mat-calendar-previous-button",3,"disabled","click"],["mat-icon-button","","type","button",1,"mat-calendar-next-button",3,"disabled","click"]],template:function(me,$e){1&me&&(s.F$t(),s.TgZ(0,"div",0),s.TgZ(1,"div",1),s.TgZ(2,"button",2),s.NdJ("click",function(){return $e.currentPeriodClicked()}),s.TgZ(3,"span"),s._uU(4),s.qZA(),s.O4$(),s.TgZ(5,"svg",3),s._UZ(6,"polygon",4),s.qZA(),s.qZA(),s.kcU(),s._UZ(7,"div",5),s.Hsn(8),s.TgZ(9,"button",6),s.NdJ("click",function(){return $e.previousClicked()}),s.qZA(),s.TgZ(10,"button",7),s.NdJ("click",function(){return $e.nextClicked()}),s.qZA(),s.qZA(),s.qZA()),2&me&&(s.xp6(2),s.uIk("aria-label",$e.periodButtonLabel)("aria-describedby",$e._buttonDescriptionId),s.xp6(1),s.uIk("id",$e._buttonDescriptionId),s.xp6(1),s.Oqu($e.periodButtonText),s.xp6(1),s.ekj("mat-calendar-invert","month"!==$e.calendar.currentView),s.xp6(4),s.Q6J("disabled",!$e.previousEnabled()),s.uIk("aria-label",$e.prevButtonLabel),s.xp6(1),s.Q6J("disabled",!$e.nextEnabled()),s.uIk("aria-label",$e.nextButtonLabel))},directives:[C.lW,e.Qr],encapsulation:2,changeDetection:0}),qe})(),si=(()=>{class qe{constructor(me,$e,St,Rt){this._dateAdapter=$e,this._dateFormats=St,this._changeDetectorRef=Rt,this._moveFocusOnNextTick=!1,this.startView="month",this.selectedChange=new s.vpe,this.yearSelected=new s.vpe,this.monthSelected=new s.vpe,this.viewChanged=new s.vpe(!0),this._userSelection=new s.vpe,this.stateChanges=new o.x,this._intlChanges=me.changes.subscribe(()=>{Rt.markForCheck(),this.stateChanges.next()})}get startAt(){return this._startAt}set startAt(me){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}get selected(){return this._selected}set selected(me){this._selected=me instanceof We?me:this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}get minDate(){return this._minDate}set minDate(me){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}get maxDate(){return this._maxDate}set maxDate(me){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}get activeDate(){return this._clampedActiveDate}set activeDate(me){this._clampedActiveDate=this._dateAdapter.clampDate(me,this.minDate,this.maxDate),this.stateChanges.next(),this._changeDetectorRef.markForCheck()}get currentView(){return this._currentView}set currentView(me){const $e=this._currentView!==me?me:null;this._currentView=me,this._moveFocusOnNextTick=!0,this._changeDetectorRef.markForCheck(),$e&&this.viewChanged.emit($e)}ngAfterContentInit(){this._calendarHeaderPortal=new v.C5(this.headerComponent||Pi),this.activeDate=this.startAt||this._dateAdapter.today(),this._currentView=this.startView}ngAfterViewChecked(){this._moveFocusOnNextTick&&(this._moveFocusOnNextTick=!1,this.focusActiveCell())}ngOnDestroy(){this._intlChanges.unsubscribe(),this.stateChanges.complete()}ngOnChanges(me){const $e=me.minDate||me.maxDate||me.dateFilter;if($e&&!$e.firstChange){const St=this._getCurrentViewComponent();St&&(this._changeDetectorRef.detectChanges(),St._init())}this.stateChanges.next()}focusActiveCell(){this._getCurrentViewComponent()._focusActiveCell(!1)}updateTodaysDate(){this._getCurrentViewComponent()._init()}_dateSelected(me){const $e=me.value;(this.selected instanceof We||$e&&!this._dateAdapter.sameDate($e,this.selected))&&this.selectedChange.emit($e),this._userSelection.emit(me)}_yearSelectedInMultiYearView(me){this.yearSelected.emit(me)}_monthSelectedInYearView(me){this.monthSelected.emit(me)}_goToDateInView(me,$e){this.activeDate=me,this.currentView=$e}_getCurrentViewComponent(){return this.monthView||this.yearView||this.multiYearView}}return qe.\u0275fac=function(me){return new(me||qe)(s.Y36(jt),s.Y36(P._A,8),s.Y36(P.sG,8),s.Y36(s.sBO))},qe.\u0275cmp=s.Xpm({type:qe,selectors:[["mat-calendar"]],viewQuery:function(me,$e){if(1&me&&(s.Gf(it,5),s.Gf(Oi,5),s.Gf(st,5)),2&me){let St;s.iGM(St=s.CRH())&&($e.monthView=St.first),s.iGM(St=s.CRH())&&($e.yearView=St.first),s.iGM(St=s.CRH())&&($e.multiYearView=St.first)}},hostAttrs:[1,"mat-calendar"],inputs:{headerComponent:"headerComponent",startAt:"startAt",startView:"startView",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd"},outputs:{selectedChange:"selectedChange",yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",_userSelection:"_userSelection"},exportAs:["matCalendar"],features:[s._Bn([Te]),s.TTD],decls:5,vars:5,consts:[[3,"cdkPortalOutlet"],["cdkMonitorSubtreeFocus","","tabindex","-1",1,"mat-calendar-content",3,"ngSwitch"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","activeDateChange","_userSelection",4,"ngSwitchCase"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","monthSelected","selectedChange",4,"ngSwitchCase"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","yearSelected","selectedChange",4,"ngSwitchCase"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","activeDateChange","_userSelection"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","monthSelected","selectedChange"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","activeDateChange","yearSelected","selectedChange"]],template:function(me,$e){1&me&&(s.YNc(0,u,0,0,"ng-template",0),s.TgZ(1,"div",1),s.YNc(2,_,1,8,"mat-month-view",2),s.YNc(3,L,1,6,"mat-year-view",3),s.YNc(4,I,1,6,"mat-multi-year-view",4),s.qZA()),2&me&&(s.Q6J("cdkPortalOutlet",$e._calendarHeaderPortal),s.xp6(1),s.Q6J("ngSwitch",$e.currentView),s.xp6(1),s.Q6J("ngSwitchCase","month"),s.xp6(1),s.Q6J("ngSwitchCase","year"),s.xp6(1),s.Q6J("ngSwitchCase","multi-year"))},directives:[v.Pl,e.kH,M.RF,M.n9,it,Oi,st],styles:['.mat-calendar{display:block}.mat-calendar-header{padding:8px 8px 0 8px}.mat-calendar-content{padding:0 8px 8px 8px;outline:none}.mat-calendar-controls{display:flex;margin:5% calc(4.7142857143% - 16px)}.mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:.04}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0}.mat-calendar-arrow{display:inline-block;width:10px;height:5px;margin:0 0 0 5px;vertical-align:middle}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}.cdk-high-contrast-active .mat-calendar-arrow{fill:CanvasText}.mat-calendar-previous-button,.mat-calendar-next-button{position:relative}.mat-calendar-previous-button::after,.mat-calendar-next-button::after{top:0;left:0;right:0;bottom:0;position:absolute;content:"";margin:15.5px;border:0 solid currentColor;border-top-width:2px}[dir=rtl] .mat-calendar-previous-button,[dir=rtl] .mat-calendar-next-button{transform:rotate(180deg)}.mat-calendar-previous-button::after{border-left-width:2px;transform:translateX(2px) rotate(-45deg)}.mat-calendar-next-button::after{border-right-width:2px;transform:translateX(-2px) rotate(45deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px 0}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:"";position:absolute;top:0;left:-8px;right:-8px;height:1px}.mat-calendar-abbr{text-decoration:none}\n'],encapsulation:2,changeDetection:0}),qe})();const di={transformPanel:(0,ie.X$)("transformPanel",[(0,ie.eR)("void => enter-dropdown",(0,ie.jt)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,ie.F4)([(0,ie.oB)({opacity:0,transform:"scale(1, 0.8)"}),(0,ie.oB)({opacity:1,transform:"scale(1, 1)"})]))),(0,ie.eR)("void => enter-dialog",(0,ie.jt)("150ms cubic-bezier(0, 0, 0.2, 1)",(0,ie.F4)([(0,ie.oB)({opacity:0,transform:"scale(0.7)"}),(0,ie.oB)({transform:"none",opacity:1})]))),(0,ie.eR)("* => void",(0,ie.jt)("100ms linear",(0,ie.oB)({opacity:0})))]),fadeInCalendar:(0,ie.X$)("fadeInCalendar",[(0,ie.SB)("void",(0,ie.oB)({opacity:0})),(0,ie.SB)("enter",(0,ie.oB)({opacity:1})),(0,ie.eR)("void => *",(0,ie.jt)("120ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)"))])};let He=0;const Se=new s.OlP("mat-datepicker-scroll-strategy"),ve={provide:Se,deps:[t.aV],useFactory:function(qe){return()=>qe.scrollStrategies.reposition()}},Ee=(0,P.pj)(class{constructor(qe){this._elementRef=qe}});let et=(()=>{class qe extends Ee{constructor(me,$e,St,Rt,yi,Ri){super(me),this._changeDetectorRef=$e,this._globalModel=St,this._dateAdapter=Rt,this._rangeSelectionStrategy=yi,this._subscriptions=new O.w0,this._animationDone=new o.x,this._actionsPortal=null,this._closeButtonText=Ri.closeCalendarLabel}ngOnInit(){this._model=this._actionsPortal?this._globalModel.clone():this._globalModel,this._animationState=this.datepicker.touchUi?"enter-dialog":"enter-dropdown"}ngAfterViewInit(){this._subscriptions.add(this.datepicker.stateChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})),this._calendar.focusActiveCell()}ngOnDestroy(){this._subscriptions.unsubscribe(),this._animationDone.complete()}_handleUserSelection(me){const $e=this._model.selection,St=me.value,Rt=$e instanceof We;if(Rt&&this._rangeSelectionStrategy){const yi=this._rangeSelectionStrategy.selectionFinished(St,$e,me.event);this._model.updateSelection(yi,this)}else St&&(Rt||!this._dateAdapter.sameDate(St,$e))&&this._model.add(St);(!this._model||this._model.isComplete())&&!this._actionsPortal&&this.datepicker.close()}_startExitAnimation(){this._animationState="void",this._changeDetectorRef.markForCheck()}_getSelected(){return this._model.selection}_applyPendingSelection(){this._model!==this._globalModel&&this._globalModel.updateSelection(this._model.selection,this)}}return qe.\u0275fac=function(me){return new(me||qe)(s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(yt),s.Y36(P._A),s.Y36(X,8),s.Y36(jt))},qe.\u0275cmp=s.Xpm({type:qe,selectors:[["mat-datepicker-content"]],viewQuery:function(me,$e){if(1&me&&s.Gf(si,5),2&me){let St;s.iGM(St=s.CRH())&&($e._calendar=St.first)}},hostAttrs:[1,"mat-datepicker-content"],hostVars:3,hostBindings:function(me,$e){1&me&&s.WFA("@transformPanel.done",function(){return $e._animationDone.next()}),2&me&&(s.d8E("@transformPanel",$e._animationState),s.ekj("mat-datepicker-content-touch",$e.datepicker.touchUi))},inputs:{color:"color"},exportAs:["matDatepickerContent"],features:[s.qOj],decls:5,vars:20,consts:[["cdkTrapFocus","",1,"mat-datepicker-content-container"],[3,"id","ngClass","startAt","startView","minDate","maxDate","dateFilter","headerComponent","selected","dateClass","comparisonStart","comparisonEnd","yearSelected","monthSelected","viewChanged","_userSelection"],[3,"cdkPortalOutlet"],["type","button","mat-raised-button","",1,"mat-datepicker-close-button",3,"color","focus","blur","click"]],template:function(me,$e){1&me&&(s.TgZ(0,"div",0),s.TgZ(1,"mat-calendar",1),s.NdJ("yearSelected",function(Rt){return $e.datepicker._selectYear(Rt)})("monthSelected",function(Rt){return $e.datepicker._selectMonth(Rt)})("viewChanged",function(Rt){return $e.datepicker._viewChanged(Rt)})("_userSelection",function(Rt){return $e._handleUserSelection(Rt)}),s.qZA(),s.YNc(2,x,0,0,"ng-template",2),s.TgZ(3,"button",3),s.NdJ("focus",function(){return $e._closeButtonFocused=!0})("blur",function(){return $e._closeButtonFocused=!1})("click",function(){return $e.datepicker.close()}),s._uU(4),s.qZA(),s.qZA()),2&me&&(s.ekj("mat-datepicker-content-container-with-actions",$e._actionsPortal),s.xp6(1),s.Q6J("id",$e.datepicker.id)("ngClass",$e.datepicker.panelClass)("startAt",$e.datepicker.startAt)("startView",$e.datepicker.startView)("minDate",$e.datepicker._getMinDate())("maxDate",$e.datepicker._getMaxDate())("dateFilter",$e.datepicker._getDateFilter())("headerComponent",$e.datepicker.calendarHeaderComponent)("selected",$e._getSelected())("dateClass",$e.datepicker.dateClass)("comparisonStart",$e.comparisonStart)("comparisonEnd",$e.comparisonEnd)("@fadeInCalendar","enter"),s.xp6(1),s.Q6J("cdkPortalOutlet",$e._actionsPortal),s.xp6(1),s.ekj("cdk-visually-hidden",!$e._closeButtonFocused),s.Q6J("color",$e.color||"primary"),s.xp6(1),s.Oqu($e._closeButtonText))},directives:[e.mK,si,M.mk,v.Pl,C.lW],styles:[".mat-datepicker-content{display:block;border-radius:4px}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content .mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}.ng-animating .mat-datepicker-content .mat-datepicker-close-button{display:none}.mat-datepicker-content-container{display:flex;flex-direction:column;justify-content:space-between}.mat-datepicker-content-touch{display:block;max-height:80vh;position:relative;overflow:visible}.mat-datepicker-content-touch .mat-datepicker-content-container{min-height:312px;max-height:788px;min-width:250px;max-width:750px}.mat-datepicker-content-touch .mat-calendar{width:100%;height:auto}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-datepicker-content-container{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-datepicker-content-container{width:80vw;height:100vw}.mat-datepicker-content-touch .mat-datepicker-content-container-with-actions{height:115vw}}\n"],encapsulation:2,data:{animation:[di.transformPanel,di.fadeInCalendar]},changeDetection:0}),qe})(),$t=(()=>{class qe{constructor(me,$e,St,Rt,yi,Ri,Ii){this._overlay=me,this._ngZone=$e,this._viewContainerRef=St,this._dateAdapter=yi,this._dir=Ri,this._model=Ii,this._inputStateChanges=O.w0.EMPTY,this.startView="month",this._touchUi=!1,this.xPosition="start",this.yPosition="below",this._restoreFocus=!0,this.yearSelected=new s.vpe,this.monthSelected=new s.vpe,this.viewChanged=new s.vpe(!0),this.openedStream=new s.vpe,this.closedStream=new s.vpe,this._opened=!1,this.id="mat-datepicker-"+He++,this._focusedElementBeforeOpen=null,this._backdropHarnessClass=`${this.id}-backdrop`,this.stateChanges=new o.x,this._scrollStrategy=Rt}get startAt(){return this._startAt||(this.datepickerInput?this.datepickerInput.getStartValue():null)}set startAt(me){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me))}get color(){return this._color||(this.datepickerInput?this.datepickerInput.getThemePalette():void 0)}set color(me){this._color=me}get touchUi(){return this._touchUi}set touchUi(me){this._touchUi=(0,W.Ig)(me)}get disabled(){return void 0===this._disabled&&this.datepickerInput?this.datepickerInput.disabled:!!this._disabled}set disabled(me){const $e=(0,W.Ig)(me);$e!==this._disabled&&(this._disabled=$e,this.stateChanges.next(void 0))}get restoreFocus(){return this._restoreFocus}set restoreFocus(me){this._restoreFocus=(0,W.Ig)(me)}get panelClass(){return this._panelClass}set panelClass(me){this._panelClass=(0,W.du)(me)}get opened(){return this._opened}set opened(me){(0,W.Ig)(me)?this.open():this.close()}_getMinDate(){return this.datepickerInput&&this.datepickerInput.min}_getMaxDate(){return this.datepickerInput&&this.datepickerInput.max}_getDateFilter(){return this.datepickerInput&&this.datepickerInput.dateFilter}ngOnChanges(me){const $e=me.xPosition||me.yPosition;if($e&&!$e.firstChange&&this._overlayRef){const St=this._overlayRef.getConfig().positionStrategy;St instanceof t._G&&(this._setConnectedPositions(St),this.opened&&this._overlayRef.updatePosition())}this.stateChanges.next(void 0)}ngOnDestroy(){this._destroyOverlay(),this.close(),this._inputStateChanges.unsubscribe(),this.stateChanges.complete()}select(me){this._model.add(me)}_selectYear(me){this.yearSelected.emit(me)}_selectMonth(me){this.monthSelected.emit(me)}_viewChanged(me){this.viewChanged.emit(me)}registerInput(me){return this._inputStateChanges.unsubscribe(),this.datepickerInput=me,this._inputStateChanges=me.stateChanges.subscribe(()=>this.stateChanges.next(void 0)),this._model}registerActions(me){this._actionsPortal=me}removeActions(me){me===this._actionsPortal&&(this._actionsPortal=null)}open(){this._opened||this.disabled||(this._focusedElementBeforeOpen=(0,ee.ht)(),this._openOverlay(),this._opened=!0,this.openedStream.emit())}close(){if(!this._opened)return;if(this._componentRef){const $e=this._componentRef.instance;$e._startExitAnimation(),$e._animationDone.pipe((0,D.q)(1)).subscribe(()=>this._destroyOverlay())}const me=()=>{this._opened&&(this._opened=!1,this.closedStream.emit(),this._focusedElementBeforeOpen=null)};this._restoreFocus&&this._focusedElementBeforeOpen&&"function"==typeof this._focusedElementBeforeOpen.focus?(this._focusedElementBeforeOpen.focus(),setTimeout(me)):me()}_applyPendingSelection(){var me,$e;null===($e=null===(me=this._componentRef)||void 0===me?void 0:me.instance)||void 0===$e||$e._applyPendingSelection()}_forwardContentValues(me){me.datepicker=this,me.color=this.color,me._actionsPortal=this._actionsPortal}_openOverlay(){this._destroyOverlay();const me=this.touchUi,$e=this.datepickerInput.getOverlayLabelId(),St=new v.C5(et,this._viewContainerRef),Rt=this._overlayRef=this._overlay.create(new t.X_({positionStrategy:me?this._getDialogStrategy():this._getDropdownStrategy(),hasBackdrop:!0,backdropClass:[me?"cdk-overlay-dark-backdrop":"mat-overlay-transparent-backdrop",this._backdropHarnessClass],direction:this._dir,scrollStrategy:me?this._overlay.scrollStrategies.block():this._scrollStrategy(),panelClass:"mat-datepicker-"+(me?"dialog":"popup")})),yi=Rt.overlayElement;yi.setAttribute("role","dialog"),$e&&yi.setAttribute("aria-labelledby",$e),me&&yi.setAttribute("aria-modal","true"),this._getCloseStream(Rt).subscribe(Ri=>{Ri&&Ri.preventDefault(),this.close()}),this._componentRef=Rt.attach(St),this._forwardContentValues(this._componentRef.instance),me||this._ngZone.onStable.pipe((0,D.q)(1)).subscribe(()=>Rt.updatePosition())}_destroyOverlay(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=this._componentRef=null)}_getDialogStrategy(){return this._overlay.position().global().centerHorizontally().centerVertically()}_getDropdownStrategy(){const me=this._overlay.position().flexibleConnectedTo(this.datepickerInput.getConnectedOverlayOrigin()).withTransformOriginOn(".mat-datepicker-content").withFlexibleDimensions(!1).withViewportMargin(8).withLockedPosition();return this._setConnectedPositions(me)}_setConnectedPositions(me){const $e="end"===this.xPosition?"end":"start",St="start"===$e?"end":"start",Rt="above"===this.yPosition?"bottom":"top",yi="top"===Rt?"bottom":"top";return me.withPositions([{originX:$e,originY:yi,overlayX:$e,overlayY:Rt},{originX:$e,originY:Rt,overlayX:$e,overlayY:yi},{originX:St,originY:yi,overlayX:St,overlayY:Rt},{originX:St,originY:Rt,overlayX:St,overlayY:yi}])}_getCloseStream(me){return(0,T.T)(me.backdropClick(),me.detachments(),me.keydownEvents().pipe((0,U.h)($e=>$e.keyCode===S.hY&&!(0,S.Vb)($e)||this.datepickerInput&&(0,S.Vb)($e,"altKey")&&$e.keyCode===S.LH)))}}return qe.\u0275fac=function(me){return new(me||qe)(s.Y36(t.aV),s.Y36(s.R0b),s.Y36(s.s_b),s.Y36(Se),s.Y36(P._A,8),s.Y36(G.Is,8),s.Y36(yt))},qe.\u0275dir=s.lG2({type:qe,inputs:{calendarHeaderComponent:"calendarHeaderComponent",startAt:"startAt",startView:"startView",color:"color",touchUi:"touchUi",disabled:"disabled",xPosition:"xPosition",yPosition:"yPosition",restoreFocus:"restoreFocus",dateClass:"dateClass",panelClass:"panelClass",opened:"opened"},outputs:{yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",openedStream:"opened",closedStream:"closed"},features:[s.TTD]}),qe})(),Pt=(()=>{class qe extends $t{}return qe.\u0275fac=function(){let vt;return function($e){return(vt||(vt=s.n5z(qe)))($e||qe)}}(),qe.\u0275cmp=s.Xpm({type:qe,selectors:[["mat-datepicker"]],exportAs:["matDatepicker"],features:[s._Bn([Te,{provide:$t,useExisting:qe}]),s.qOj],decls:0,vars:0,template:function(me,$e){},encapsulation:2,changeDetection:0}),qe})();class Xt{constructor(vt,me){this.target=vt,this.targetElement=me,this.value=this.target.value}}let lt=(()=>{class qe{constructor(me,$e,St){this._elementRef=me,this._dateAdapter=$e,this._dateFormats=St,this.dateChange=new s.vpe,this.dateInput=new s.vpe,this.stateChanges=new o.x,this._onTouched=()=>{},this._validatorOnChange=()=>{},this._cvaOnChange=()=>{},this._valueChangesSubscription=O.w0.EMPTY,this._localeSubscription=O.w0.EMPTY,this._parseValidator=()=>this._lastValueValid?null:{matDatepickerParse:{text:this._elementRef.nativeElement.value}},this._filterValidator=Rt=>{const yi=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(Rt.value));return!yi||this._matchesFilter(yi)?null:{matDatepickerFilter:!0}},this._minValidator=Rt=>{const yi=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(Rt.value)),Ri=this._getMinDate();return!Ri||!yi||this._dateAdapter.compareDate(Ri,yi)<=0?null:{matDatepickerMin:{min:Ri,actual:yi}}},this._maxValidator=Rt=>{const yi=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(Rt.value)),Ri=this._getMaxDate();return!Ri||!yi||this._dateAdapter.compareDate(Ri,yi)>=0?null:{matDatepickerMax:{max:Ri,actual:yi}}},this._lastValueValid=!1,this._localeSubscription=$e.localeChanges.subscribe(()=>{this._assignValueProgrammatically(this.value)})}get value(){return this._model?this._getValueFromModel(this._model.selection):this._pendingValue}set value(me){this._assignValueProgrammatically(me)}get disabled(){return!!this._disabled||this._parentDisabled()}set disabled(me){const $e=(0,W.Ig)(me),St=this._elementRef.nativeElement;this._disabled!==$e&&(this._disabled=$e,this.stateChanges.next(void 0)),$e&&this._isInitialized&&St.blur&&St.blur()}_getValidators(){return[this._parseValidator,this._minValidator,this._maxValidator,this._filterValidator]}_registerModel(me){this._model=me,this._valueChangesSubscription.unsubscribe(),this._pendingValue&&this._assignValue(this._pendingValue),this._valueChangesSubscription=this._model.selectionChanged.subscribe($e=>{if(this._shouldHandleChangeEvent($e)){const St=this._getValueFromModel($e.selection);this._lastValueValid=this._isValidValue(St),this._cvaOnChange(St),this._onTouched(),this._formatValue(St),this.dateInput.emit(new Xt(this,this._elementRef.nativeElement)),this.dateChange.emit(new Xt(this,this._elementRef.nativeElement))}})}ngAfterViewInit(){this._isInitialized=!0}ngOnChanges(me){(function(qe,vt){const me=Object.keys(qe);for(let $e of me){const{previousValue:St,currentValue:Rt}=qe[$e];if(!vt.isDateInstance(St)||!vt.isDateInstance(Rt))return!0;if(!vt.sameDate(St,Rt))return!0}return!1})(me,this._dateAdapter)&&this.stateChanges.next(void 0)}ngOnDestroy(){this._valueChangesSubscription.unsubscribe(),this._localeSubscription.unsubscribe(),this.stateChanges.complete()}registerOnValidatorChange(me){this._validatorOnChange=me}validate(me){return this._validator?this._validator(me):null}writeValue(me){this._assignValueProgrammatically(me)}registerOnChange(me){this._cvaOnChange=me}registerOnTouched(me){this._onTouched=me}setDisabledState(me){this.disabled=me}_onKeydown(me){me.altKey&&me.keyCode===S.JH&&!this._elementRef.nativeElement.readOnly&&(this._openPopup(),me.preventDefault())}_onInput(me){const $e=this._lastValueValid;let St=this._dateAdapter.parse(me,this._dateFormats.parse.dateInput);this._lastValueValid=this._isValidValue(St),St=this._dateAdapter.getValidDateOrNull(St),this._dateAdapter.sameDate(St,this.value)?(me&&!this.value&&this._cvaOnChange(St),$e!==this._lastValueValid&&this._validatorOnChange()):(this._assignValue(St),this._cvaOnChange(St),this.dateInput.emit(new Xt(this,this._elementRef.nativeElement)))}_onChange(){this.dateChange.emit(new Xt(this,this._elementRef.nativeElement))}_onBlur(){this.value&&this._formatValue(this.value),this._onTouched()}_formatValue(me){this._elementRef.nativeElement.value=me?this._dateAdapter.format(me,this._dateFormats.display.dateInput):""}_assignValue(me){this._model?(this._assignValueToModel(me),this._pendingValue=null):this._pendingValue=me}_isValidValue(me){return!me||this._dateAdapter.isValid(me)}_parentDisabled(){return!1}_assignValueProgrammatically(me){me=this._dateAdapter.deserialize(me),this._lastValueValid=this._isValidValue(me),me=this._dateAdapter.getValidDateOrNull(me),this._assignValue(me),this._formatValue(me)}_matchesFilter(me){const $e=this._getDateFilter();return!$e||$e(me)}}return qe.\u0275fac=function(me){return new(me||qe)(s.Y36(s.SBq),s.Y36(P._A,8),s.Y36(P.sG,8))},qe.\u0275dir=s.lG2({type:qe,inputs:{value:"value",disabled:"disabled"},outputs:{dateChange:"dateChange",dateInput:"dateInput"},features:[s.TTD]}),qe})();const Be={provide:_e.JU,useExisting:(0,s.Gpc)(()=>ot),multi:!0},rt={provide:_e.Cf,useExisting:(0,s.Gpc)(()=>ot),multi:!0};let ot=(()=>{class qe extends lt{constructor(me,$e,St,Rt){super(me,$e,St),this._formField=Rt,this._closedSubscription=O.w0.EMPTY,this._validator=_e.kI.compose(super._getValidators())}set matDatepicker(me){me&&(this._datepicker=me,this._closedSubscription=me.closedStream.subscribe(()=>this._onTouched()),this._registerModel(me.registerInput(this)))}get min(){return this._min}set min(me){const $e=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me));this._dateAdapter.sameDate($e,this._min)||(this._min=$e,this._validatorOnChange())}get max(){return this._max}set max(me){const $e=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(me));this._dateAdapter.sameDate($e,this._max)||(this._max=$e,this._validatorOnChange())}get dateFilter(){return this._dateFilter}set dateFilter(me){const $e=this._matchesFilter(this.value);this._dateFilter=me,this._matchesFilter(this.value)!==$e&&this._validatorOnChange()}getConnectedOverlayOrigin(){return this._formField?this._formField.getConnectedOverlayOrigin():this._elementRef}getOverlayLabelId(){return this._formField?this._formField.getLabelId():this._elementRef.nativeElement.getAttribute("aria-labelledby")}getThemePalette(){return this._formField?this._formField.color:void 0}getStartValue(){return this.value}ngOnDestroy(){super.ngOnDestroy(),this._closedSubscription.unsubscribe()}_openPopup(){this._datepicker&&this._datepicker.open()}_getValueFromModel(me){return me}_assignValueToModel(me){this._model&&this._model.updateSelection(me,this)}_getMinDate(){return this._min}_getMaxDate(){return this._max}_getDateFilter(){return this._dateFilter}_shouldHandleChangeEvent(me){return me.source!==this}}return qe.\u0275fac=function(me){return new(me||qe)(s.Y36(s.SBq),s.Y36(P._A,8),s.Y36(P.sG,8),s.Y36(fe.G_,8))},qe.\u0275dir=s.lG2({type:qe,selectors:[["input","matDatepicker",""]],hostAttrs:[1,"mat-datepicker-input"],hostVars:6,hostBindings:function(me,$e){1&me&&s.NdJ("input",function(Rt){return $e._onInput(Rt.target.value)})("change",function(){return $e._onChange()})("blur",function(){return $e._onBlur()})("keydown",function(Rt){return $e._onKeydown(Rt)}),2&me&&(s.Ikx("disabled",$e.disabled),s.uIk("aria-haspopup",$e._datepicker?"dialog":null)("aria-owns",(null==$e._datepicker?null:$e._datepicker.opened)&&$e._datepicker.id||null)("min",$e.min?$e._dateAdapter.toIso8601($e.min):null)("max",$e.max?$e._dateAdapter.toIso8601($e.max):null)("data-mat-calendar",$e._datepicker?$e._datepicker.id:null))},inputs:{matDatepicker:"matDatepicker",min:"min",max:"max",dateFilter:["matDatepickerFilter","dateFilter"]},exportAs:["matDatepickerInput"],features:[s._Bn([Be,rt,{provide:de.Jk,useExisting:qe}]),s.qOj]}),qe})(),At=(()=>{class qe{}return qe.\u0275fac=function(me){return new(me||qe)},qe.\u0275dir=s.lG2({type:qe,selectors:[["","matDatepickerToggleIcon",""]]}),qe})(),li=(()=>{class qe{constructor(me,$e,St){this._intl=me,this._changeDetectorRef=$e,this._stateChanges=O.w0.EMPTY;const Rt=Number(St);this.tabIndex=Rt||0===Rt?Rt:null}get disabled(){return void 0===this._disabled&&this.datepicker?this.datepicker.disabled:!!this._disabled}set disabled(me){this._disabled=(0,W.Ig)(me)}ngOnChanges(me){me.datepicker&&this._watchStateChanges()}ngOnDestroy(){this._stateChanges.unsubscribe()}ngAfterContentInit(){this._watchStateChanges()}_open(me){this.datepicker&&!this.disabled&&(this.datepicker.open(),me.stopPropagation())}_watchStateChanges(){const me=this.datepicker?this.datepicker.stateChanges:(0,R.of)(),$e=this.datepicker&&this.datepicker.datepickerInput?this.datepicker.datepickerInput.stateChanges:(0,R.of)(),St=this.datepicker?(0,T.T)(this.datepicker.openedStream,this.datepicker.closedStream):(0,R.of)();this._stateChanges.unsubscribe(),this._stateChanges=(0,T.T)(this._intl.changes,me,$e,St).subscribe(()=>this._changeDetectorRef.markForCheck())}}return qe.\u0275fac=function(me){return new(me||qe)(s.Y36(jt),s.Y36(s.sBO),s.$8M("tabindex"))},qe.\u0275cmp=s.Xpm({type:qe,selectors:[["mat-datepicker-toggle"]],contentQueries:function(me,$e,St){if(1&me&&s.Suo(St,At,5),2&me){let Rt;s.iGM(Rt=s.CRH())&&($e._customIcon=Rt.first)}},viewQuery:function(me,$e){if(1&me&&s.Gf(r,5),2&me){let St;s.iGM(St=s.CRH())&&($e._button=St.first)}},hostAttrs:[1,"mat-datepicker-toggle"],hostVars:8,hostBindings:function(me,$e){1&me&&s.NdJ("click",function(Rt){return $e._open(Rt)}),2&me&&(s.uIk("tabindex",null)("data-mat-calendar",$e.datepicker?$e.datepicker.id:null),s.ekj("mat-datepicker-toggle-active",$e.datepicker&&$e.datepicker.opened)("mat-accent",$e.datepicker&&"accent"===$e.datepicker.color)("mat-warn",$e.datepicker&&"warn"===$e.datepicker.color))},inputs:{datepicker:["for","datepicker"],tabIndex:"tabIndex",ariaLabel:["aria-label","ariaLabel"],disabled:"disabled",disableRipple:"disableRipple"},exportAs:["matDatepickerToggle"],features:[s.TTD],ngContentSelectors:F,decls:4,vars:6,consts:[["mat-icon-button","","type","button",3,"disabled","disableRipple"],["button",""],["class","mat-datepicker-toggle-default-icon","viewBox","0 0 24 24","width","24px","height","24px","fill","currentColor","focusable","false",4,"ngIf"],["viewBox","0 0 24 24","width","24px","height","24px","fill","currentColor","focusable","false",1,"mat-datepicker-toggle-default-icon"],["d","M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"]],template:function(me,$e){1&me&&(s.F$t(J),s.TgZ(0,"button",0,1),s.YNc(2,b,2,0,"svg",2),s.Hsn(3),s.qZA()),2&me&&(s.Q6J("disabled",$e.disabled)("disableRipple",$e.disableRipple),s.uIk("aria-haspopup",$e.datepicker?"dialog":null)("aria-label",$e.ariaLabel||$e._intl.openCalendarLabel)("tabindex",$e.disabled?-1:$e.tabIndex),s.xp6(2),s.Q6J("ngIf",!$e._customIcon))},directives:[C.lW,M.O5],styles:[".mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-datepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-datepicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-datepicker-toggle-default-icon{margin:auto}.cdk-high-contrast-active .mat-datepicker-toggle-default-icon{color:CanvasText}\n"],encapsulation:2,changeDetection:0}),qe})(),be=(()=>{class qe{}return qe.\u0275fac=function(me){return new(me||qe)},qe.\u0275mod=s.oAB({type:qe}),qe.\u0275inj=s.cJS({providers:[jt,ve],imports:[[M.ez,C.ot,t.U8,e.rt,v.eL,P.BQ],c.ZD]}),qe})()},8966:(Ue,K,m)=>{"use strict";m.d(K,{WI:()=>i,Bq:()=>a,uw:()=>x,ZT:()=>J,Is:()=>Re,so:()=>oe});var e=m(9776),t=m(7429),v=m(5e3),M=m(508),s=m(226),C=m(7579),c=m(9770),P=m(727),o=m(9646),O=m(9300),T=m(5698),R=m(8675),S=m(925),D=m(9808),w=m(1777),U=m(5664),G=m(1159),W=m(6360);function ee(Fe,q){}class ie{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0}}const _e={dialogContainer:(0,w.X$)("dialogContainer",[(0,w.SB)("void, exit",(0,w.oB)({opacity:0,transform:"scale(0.7)"})),(0,w.SB)("enter",(0,w.oB)({transform:"none"})),(0,w.eR)("* => enter",(0,w.jt)("150ms cubic-bezier(0, 0, 0.2, 1)",(0,w.oB)({transform:"none",opacity:1}))),(0,w.eR)("* => void, * => exit",(0,w.jt)("75ms cubic-bezier(0.4, 0.0, 0.2, 1)",(0,w.oB)({opacity:0})))])};let de=(()=>{class Fe extends t.en{constructor(j,we,Ae,le,We,yt,Ne,Ve){super(),this._elementRef=j,this._focusTrapFactory=we,this._changeDetectorRef=Ae,this._config=We,this._interactivityChecker=yt,this._ngZone=Ne,this._focusMonitor=Ve,this._animationStateChanged=new v.vpe,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this.attachDomPortal=ue=>(this._portalOutlet.hasAttached(),this._portalOutlet.attachDomPortal(ue)),this._ariaLabelledBy=We.ariaLabelledBy||null,this._document=le}_initializeWithAttachedContent(){this._setupFocusTrap(),this._capturePreviouslyFocusedElement()}attachComponentPortal(j){return this._portalOutlet.hasAttached(),this._portalOutlet.attachComponentPortal(j)}attachTemplatePortal(j){return this._portalOutlet.hasAttached(),this._portalOutlet.attachTemplatePortal(j)}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(j,we){this._interactivityChecker.isFocusable(j)||(j.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{j.addEventListener("blur",()=>j.removeAttribute("tabindex")),j.addEventListener("mousedown",()=>j.removeAttribute("tabindex"))})),j.focus(we)}_focusByCssSelector(j,we){let Ae=this._elementRef.nativeElement.querySelector(j);Ae&&this._forceFocus(Ae,we)}_trapFocus(){const j=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||j.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(we=>{we||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const j=this._elementFocusedBeforeDialogWasOpened;if(this._config.restoreFocus&&j&&"function"==typeof j.focus){const we=(0,S.ht)(),Ae=this._elementRef.nativeElement;(!we||we===this._document.body||we===Ae||Ae.contains(we))&&(this._focusMonitor?(this._focusMonitor.focusVia(j,this._closeInteractionType),this._closeInteractionType=null):j.focus())}this._focusTrap&&this._focusTrap.destroy()}_setupFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement)}_capturePreviouslyFocusedElement(){this._document&&(this._elementFocusedBeforeDialogWasOpened=(0,S.ht)())}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const j=this._elementRef.nativeElement,we=(0,S.ht)();return j===we||j.contains(we)}}return Fe.\u0275fac=function(j){return new(j||Fe)(v.Y36(v.SBq),v.Y36(U.qV),v.Y36(v.sBO),v.Y36(D.K0,8),v.Y36(ie),v.Y36(U.ic),v.Y36(v.R0b),v.Y36(U.tE))},Fe.\u0275dir=v.lG2({type:Fe,viewQuery:function(j,we){if(1&j&&v.Gf(t.Pl,7),2&j){let Ae;v.iGM(Ae=v.CRH())&&(we._portalOutlet=Ae.first)}},features:[v.qOj]}),Fe})(),ne=(()=>{class Fe extends de{constructor(){super(...arguments),this._state="enter"}_onAnimationDone({toState:j,totalTime:we}){"enter"===j?(this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:we})):"exit"===j&&(this._restoreFocus(),this._animationStateChanged.next({state:"closed",totalTime:we}))}_onAnimationStart({toState:j,totalTime:we}){"enter"===j?this._animationStateChanged.next({state:"opening",totalTime:we}):("exit"===j||"void"===j)&&this._animationStateChanged.next({state:"closing",totalTime:we})}_startExitAnimation(){this._state="exit",this._changeDetectorRef.markForCheck()}}return Fe.\u0275fac=function(){let q;return function(we){return(q||(q=v.n5z(Fe)))(we||Fe)}}(),Fe.\u0275cmp=v.Xpm({type:Fe,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1","aria-modal","true",1,"mat-dialog-container"],hostVars:6,hostBindings:function(j,we){1&j&&v.WFA("@dialogContainer.start",function(le){return we._onAnimationStart(le)})("@dialogContainer.done",function(le){return we._onAnimationDone(le)}),2&j&&(v.Ikx("id",we._id),v.uIk("role",we._config.role)("aria-labelledby",we._config.ariaLabel?null:we._ariaLabelledBy)("aria-label",we._config.ariaLabel)("aria-describedby",we._config.ariaDescribedBy||null),v.d8E("@dialogContainer",we._state))},features:[v.qOj],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(j,we){1&j&&v.YNc(0,ee,0,0,"ng-template",0)},directives:[t.Pl],styles:[".mat-dialog-container{display:block;padding:24px;border-radius:4px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.cdk-high-contrast-active .mat-dialog-container{outline:solid 1px}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:8px 0;display:flex;flex-wrap:wrap;min-height:52px;align-items:center;box-sizing:content-box;margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button-base+.mat-button-base,.mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"],encapsulation:2,data:{animation:[_e.dialogContainer]}}),Fe})(),se=0;class oe{constructor(q,j,we="mat-dialog-"+se++){this._overlayRef=q,this._containerInstance=j,this.id=we,this.disableClose=this._containerInstance._config.disableClose,this._afterOpened=new C.x,this._afterClosed=new C.x,this._beforeClosed=new C.x,this._state=0,j._id=we,j._animationStateChanged.pipe((0,O.h)(Ae=>"opened"===Ae.state),(0,T.q)(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),j._animationStateChanged.pipe((0,O.h)(Ae=>"closed"===Ae.state),(0,T.q)(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),q.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._afterClosed.next(this._result),this._afterClosed.complete(),this.componentInstance=null,this._overlayRef.dispose()}),q.keydownEvents().pipe((0,O.h)(Ae=>Ae.keyCode===G.hY&&!this.disableClose&&!(0,G.Vb)(Ae))).subscribe(Ae=>{Ae.preventDefault(),y(this,"keyboard")}),q.backdropClick().subscribe(()=>{this.disableClose?this._containerInstance._recaptureFocus():y(this,"mouse")})}close(q){this._result=q,this._containerInstance._animationStateChanged.pipe((0,O.h)(j=>"closing"===j.state),(0,T.q)(1)).subscribe(j=>{this._beforeClosed.next(q),this._beforeClosed.complete(),this._overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),j.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._afterClosed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._overlayRef.backdropClick()}keydownEvents(){return this._overlayRef.keydownEvents()}updatePosition(q){let j=this._getPositionStrategy();return q&&(q.left||q.right)?q.left?j.left(q.left):j.right(q.right):j.centerHorizontally(),q&&(q.top||q.bottom)?q.top?j.top(q.top):j.bottom(q.bottom):j.centerVertically(),this._overlayRef.updatePosition(),this}updateSize(q="",j=""){return this._overlayRef.updateSize({width:q,height:j}),this._overlayRef.updatePosition(),this}addPanelClass(q){return this._overlayRef.addPanelClass(q),this}removePanelClass(q){return this._overlayRef.removePanelClass(q),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._overlayRef.dispose()}_getPositionStrategy(){return this._overlayRef.getConfig().positionStrategy}}function y(Fe,q,j){return void 0!==Fe._containerInstance&&(Fe._containerInstance._closeInteractionType=q),Fe.close(j)}const i=new v.OlP("MatDialogData"),a=new v.OlP("mat-dialog-default-options"),p=new v.OlP("mat-dialog-scroll-strategy"),L={provide:p,deps:[e.aV],useFactory:function(Fe){return()=>Fe.scrollStrategies.block()}};let I=(()=>{class Fe{constructor(j,we,Ae,le,We,yt,Ne,Ve,ue,Te){this._overlay=j,this._injector=we,this._defaultOptions=Ae,this._parentDialog=le,this._overlayContainer=We,this._dialogRefConstructor=Ne,this._dialogContainerType=Ve,this._dialogDataToken=ue,this._animationMode=Te,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new C.x,this._afterOpenedAtThisLevel=new C.x,this._ariaHiddenElements=new Map,this._dialogAnimatingOpen=!1,this.afterAllClosed=(0,c.P)(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe((0,R.O)(void 0))),this._scrollStrategy=yt}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const j=this._parentDialog;return j?j._getAfterAllClosed():this._afterAllClosedAtThisLevel}open(j,we){if(we=function(Fe,q){return Object.assign(Object.assign({},q),Fe)}(we,this._defaultOptions||new ie),we.id&&this.getDialogById(we.id),this._dialogAnimatingOpen)return this._lastDialogRef;const Ae=this._createOverlay(we),le=this._attachDialogContainer(Ae,we);if("NoopAnimations"!==this._animationMode){const yt=le._animationStateChanged.subscribe(Ne=>{"opening"===Ne.state&&(this._dialogAnimatingOpen=!0),"opened"===Ne.state&&(this._dialogAnimatingOpen=!1,yt.unsubscribe())});this._animationStateSubscriptions||(this._animationStateSubscriptions=new P.w0),this._animationStateSubscriptions.add(yt)}const We=this._attachDialogContent(j,le,Ae,we);return this._lastDialogRef=We,this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(We),We.afterClosed().subscribe(()=>this._removeOpenDialog(We)),this.afterOpened.next(We),le._initializeWithAttachedContent(),We}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(j){return this.openDialogs.find(we=>we.id===j)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._animationStateSubscriptions&&this._animationStateSubscriptions.unsubscribe()}_createOverlay(j){const we=this._getOverlayConfig(j);return this._overlay.create(we)}_getOverlayConfig(j){const we=new e.X_({positionStrategy:this._overlay.position().global(),scrollStrategy:j.scrollStrategy||this._scrollStrategy(),panelClass:j.panelClass,hasBackdrop:j.hasBackdrop,direction:j.direction,minWidth:j.minWidth,minHeight:j.minHeight,maxWidth:j.maxWidth,maxHeight:j.maxHeight,disposeOnNavigation:j.closeOnNavigation});return j.backdropClass&&(we.backdropClass=j.backdropClass),we}_attachDialogContainer(j,we){const le=v.zs3.create({parent:we&&we.viewContainerRef&&we.viewContainerRef.injector||this._injector,providers:[{provide:ie,useValue:we}]}),We=new t.C5(this._dialogContainerType,we.viewContainerRef,le,we.componentFactoryResolver);return j.attach(We).instance}_attachDialogContent(j,we,Ae,le){const We=new this._dialogRefConstructor(Ae,we,le.id);if(j instanceof v.Rgc)we.attachTemplatePortal(new t.UE(j,null,{$implicit:le.data,dialogRef:We}));else{const yt=this._createInjector(le,We,we),Ne=we.attachComponentPortal(new t.C5(j,le.viewContainerRef,yt));We.componentInstance=Ne.instance}return We.updateSize(le.width,le.height).updatePosition(le.position),We}_createInjector(j,we,Ae){const le=j&&j.viewContainerRef&&j.viewContainerRef.injector,We=[{provide:this._dialogContainerType,useValue:Ae},{provide:this._dialogDataToken,useValue:j.data},{provide:this._dialogRefConstructor,useValue:we}];return j.direction&&(!le||!le.get(s.Is,null,v.XFs.Optional))&&We.push({provide:s.Is,useValue:{value:j.direction,change:(0,o.of)()}}),v.zs3.create({parent:le||this._injector,providers:We})}_removeOpenDialog(j){const we=this.openDialogs.indexOf(j);we>-1&&(this.openDialogs.splice(we,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((Ae,le)=>{Ae?le.setAttribute("aria-hidden",Ae):le.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const j=this._overlayContainer.getContainerElement();if(j.parentElement){const we=j.parentElement.children;for(let Ae=we.length-1;Ae>-1;Ae--){let le=we[Ae];le!==j&&"SCRIPT"!==le.nodeName&&"STYLE"!==le.nodeName&&!le.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(le,le.getAttribute("aria-hidden")),le.setAttribute("aria-hidden","true"))}}}_closeDialogs(j){let we=j.length;for(;we--;)j[we].close()}}return Fe.\u0275fac=function(j){v.$Z()},Fe.\u0275dir=v.lG2({type:Fe}),Fe})(),x=(()=>{class Fe extends I{constructor(j,we,Ae,le,We,yt,Ne,Ve){super(j,we,le,yt,Ne,We,oe,ne,i,Ve)}}return Fe.\u0275fac=function(j){return new(j||Fe)(v.LFG(e.aV),v.LFG(v.zs3),v.LFG(D.Ye,8),v.LFG(a,8),v.LFG(p),v.LFG(Fe,12),v.LFG(e.Xj),v.LFG(W.Qb,8))},Fe.\u0275prov=v.Yz7({token:Fe,factory:Fe.\u0275fac}),Fe})(),J=(()=>{class Fe{constructor(j,we,Ae){this.dialogRef=j,this._elementRef=we,this._dialog=Ae,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=function(Fe,q){let j=Fe.nativeElement.parentElement;for(;j&&!j.classList.contains("mat-dialog-container");)j=j.parentElement;return j?q.find(we=>we.id===j.id):null}(this._elementRef,this._dialog.openDialogs))}ngOnChanges(j){const we=j._matDialogClose||j._matDialogCloseResult;we&&(this.dialogResult=we.currentValue)}_onButtonClick(j){y(this.dialogRef,0===j.screenX&&0===j.screenY?"keyboard":"mouse",this.dialogResult)}}return Fe.\u0275fac=function(j){return new(j||Fe)(v.Y36(oe,8),v.Y36(v.SBq),v.Y36(x))},Fe.\u0275dir=v.lG2({type:Fe,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(j,we){1&j&&v.NdJ("click",function(le){return we._onButtonClick(le)}),2&j&&v.uIk("aria-label",we.ariaLabel||null)("type",we.type)},inputs:{ariaLabel:["aria-label","ariaLabel"],type:"type",dialogResult:["mat-dialog-close","dialogResult"],_matDialogClose:["matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[v.TTD]}),Fe})(),Re=(()=>{class Fe{}return Fe.\u0275fac=function(j){return new(j||Fe)},Fe.\u0275mod=v.oAB({type:Fe}),Fe.\u0275inj=v.cJS({providers:[x,L],imports:[[e.U8,t.eL,M.BQ],M.BQ]}),Fe})()},4834:(Ue,K,m)=>{"use strict";m.d(K,{d:()=>M,t:()=>s});var e=m(5e3),t=m(3191),v=m(508);let M=(()=>{class C{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(P){this._vertical=(0,t.Ig)(P)}get inset(){return this._inset}set inset(P){this._inset=(0,t.Ig)(P)}}return C.\u0275fac=function(P){return new(P||C)},C.\u0275cmp=e.Xpm({type:C,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(P,o){2&P&&(e.uIk("aria-orientation",o.vertical?"vertical":"horizontal"),e.ekj("mat-divider-vertical",o.vertical)("mat-divider-horizontal",!o.vertical)("mat-divider-inset",o.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(P,o){},styles:[".mat-divider{display:block;margin:0;border-top-width:1px;border-top-style:solid}.mat-divider.mat-divider-vertical{border-top:0;border-right-width:1px;border-right-style:solid}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}\n"],encapsulation:2,changeDetection:0}),C})(),s=(()=>{class C{}return C.\u0275fac=function(P){return new(P||C)},C.\u0275mod=e.oAB({type:C}),C.\u0275inj=e.cJS({imports:[[v.BQ],v.BQ]}),C})()},1125:(Ue,K,m)=>{"use strict";m.d(K,{pp:()=>q,To:()=>j,ib:()=>J,u4:()=>Re,yz:()=>xe,yK:()=>Fe});var e=m(5e3),t=m(3191),v=m(7579),M=m(727),s=m(449);let C=0;const c=new e.OlP("CdkAccordion");let P=(()=>{class we{constructor(){this._stateChanges=new v.x,this._openCloseAllActions=new v.x,this.id="cdk-accordion-"+C++,this._multi=!1}get multi(){return this._multi}set multi(le){this._multi=(0,t.Ig)(le)}openAll(){this._multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(le){this._stateChanges.next(le)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}}return we.\u0275fac=function(le){return new(le||we)},we.\u0275dir=e.lG2({type:we,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:"multi"},exportAs:["cdkAccordion"],features:[e._Bn([{provide:c,useExisting:we}]),e.TTD]}),we})(),o=0,O=(()=>{class we{constructor(le,We,yt){this.accordion=le,this._changeDetectorRef=We,this._expansionDispatcher=yt,this._openCloseAllSubscription=M.w0.EMPTY,this.closed=new e.vpe,this.opened=new e.vpe,this.destroyed=new e.vpe,this.expandedChange=new e.vpe,this.id="cdk-accordion-child-"+o++,this._expanded=!1,this._disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=yt.listen((Ne,Ve)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===Ve&&this.id!==Ne&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}get expanded(){return this._expanded}set expanded(le){le=(0,t.Ig)(le),this._expanded!==le&&(this._expanded=le,this.expandedChange.emit(le),le?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(le){this._disabled=(0,t.Ig)(le)}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(le=>{this.disabled||(this.expanded=le)})}}return we.\u0275fac=function(le){return new(le||we)(e.Y36(c,12),e.Y36(e.sBO),e.Y36(s.A8))},we.\u0275dir=e.lG2({type:we,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:"expanded",disabled:"disabled"},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[e._Bn([{provide:c,useValue:void 0}])]}),we})(),T=(()=>{class we{}return we.\u0275fac=function(le){return new(le||we)},we.\u0275mod=e.oAB({type:we}),we.\u0275inj=e.cJS({}),we})();var R=m(7429),S=m(9808),D=m(508),w=m(5664),U=m(1884),G=m(8675),W=m(9300),ee=m(5698),ie=m(1159),_e=m(6360),fe=m(515),de=m(6451),ne=m(1777);const se=["body"];function oe(we,Ae){}const y=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],i=["mat-expansion-panel-header","*","mat-action-row"];function a(we,Ae){if(1&we&&e._UZ(0,"span",2),2&we){const le=e.oxw();e.Q6J("@indicatorRotate",le._getExpandedState())}}const p=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],u=["mat-panel-title","mat-panel-description","*"],_=new e.OlP("MAT_ACCORDION"),L="225ms cubic-bezier(0.4,0.0,0.2,1)",I={indicatorRotate:(0,ne.X$)("indicatorRotate",[(0,ne.SB)("collapsed, void",(0,ne.oB)({transform:"rotate(0deg)"})),(0,ne.SB)("expanded",(0,ne.oB)({transform:"rotate(180deg)"})),(0,ne.eR)("expanded <=> collapsed, void => collapsed",(0,ne.jt)(L))]),bodyExpansion:(0,ne.X$)("bodyExpansion",[(0,ne.SB)("collapsed, void",(0,ne.oB)({height:"0px",visibility:"hidden"})),(0,ne.SB)("expanded",(0,ne.oB)({height:"*",visibility:"visible"})),(0,ne.eR)("expanded <=> collapsed, void => collapsed",(0,ne.jt)(L))])};let x=(()=>{class we{constructor(le){this._template=le}}return we.\u0275fac=function(le){return new(le||we)(e.Y36(e.Rgc))},we.\u0275dir=e.lG2({type:we,selectors:[["ng-template","matExpansionPanelContent",""]]}),we})(),r=0;const b=new e.OlP("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let J=(()=>{class we extends O{constructor(le,We,yt,Ne,Ve,ue,Te){super(le,We,yt),this._viewContainerRef=Ne,this._animationMode=ue,this._hideToggle=!1,this.afterExpand=new e.vpe,this.afterCollapse=new e.vpe,this._inputChanges=new v.x,this._headerId="mat-expansion-panel-header-"+r++,this._bodyAnimationDone=new v.x,this.accordion=le,this._document=Ve,this._bodyAnimationDone.pipe((0,U.x)((ke,Y)=>ke.fromState===Y.fromState&&ke.toState===Y.toState)).subscribe(ke=>{"void"!==ke.fromState&&("expanded"===ke.toState?this.afterExpand.emit():"collapsed"===ke.toState&&this.afterCollapse.emit())}),Te&&(this.hideToggle=Te.hideToggle)}get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(le){this._hideToggle=(0,t.Ig)(le)}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(le){this._togglePosition=le}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this.opened.pipe((0,G.O)(null),(0,W.h)(()=>this.expanded&&!this._portal),(0,ee.q)(1)).subscribe(()=>{this._portal=new R.UE(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(le){this._inputChanges.next(le)}ngOnDestroy(){super.ngOnDestroy(),this._bodyAnimationDone.complete(),this._inputChanges.complete()}_containsFocus(){if(this._body){const le=this._document.activeElement,We=this._body.nativeElement;return le===We||We.contains(le)}return!1}}return we.\u0275fac=function(le){return new(le||we)(e.Y36(_,12),e.Y36(e.sBO),e.Y36(s.A8),e.Y36(e.s_b),e.Y36(S.K0),e.Y36(_e.Qb,8),e.Y36(b,8))},we.\u0275cmp=e.Xpm({type:we,selectors:[["mat-expansion-panel"]],contentQueries:function(le,We,yt){if(1&le&&e.Suo(yt,x,5),2&le){let Ne;e.iGM(Ne=e.CRH())&&(We._lazyContent=Ne.first)}},viewQuery:function(le,We){if(1&le&&e.Gf(se,5),2&le){let yt;e.iGM(yt=e.CRH())&&(We._body=yt.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(le,We){2&le&&e.ekj("mat-expanded",We.expanded)("_mat-animation-noopable","NoopAnimations"===We._animationMode)("mat-expansion-panel-spacing",We._hasSpacing())},inputs:{disabled:"disabled",expanded:"expanded",hideToggle:"hideToggle",togglePosition:"togglePosition"},outputs:{opened:"opened",closed:"closed",expandedChange:"expandedChange",afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[e._Bn([{provide:_,useValue:void 0}]),e.qOj,e.TTD],ngContentSelectors:i,decls:7,vars:4,consts:[["role","region",1,"mat-expansion-panel-content",3,"id"],["body",""],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(le,We){1&le&&(e.F$t(y),e.Hsn(0),e.TgZ(1,"div",0,1),e.NdJ("@bodyExpansion.done",function(Ne){return We._bodyAnimationDone.next(Ne)}),e.TgZ(3,"div",2),e.Hsn(4,1),e.YNc(5,oe,0,0,"ng-template",3),e.qZA(),e.Hsn(6,2),e.qZA()),2&le&&(e.xp6(1),e.Q6J("@bodyExpansion",We._getExpandedState())("id",We.id),e.uIk("aria-labelledby",We._headerId),e.xp6(4),e.Q6J("cdkPortalOutlet",We._portal))},directives:[R.Pl],styles:[".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;border-radius:4px;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:4px;border-top-left-radius:4px}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px}.mat-action-row button.mat-button-base,.mat-action-row button.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row button.mat-button-base,[dir=rtl] .mat-action-row button.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"],encapsulation:2,data:{animation:[I.bodyExpansion]},changeDetection:0}),we})();class B{}const te=(0,D.sb)(B);let xe=(()=>{class we extends te{constructor(le,We,yt,Ne,Ve,ue,Te){super(),this.panel=le,this._element=We,this._focusMonitor=yt,this._changeDetectorRef=Ne,this._animationMode=ue,this._parentChangeSubscription=M.w0.EMPTY;const ke=le.accordion?le.accordion._stateChanges.pipe((0,W.h)(Y=>!(!Y.hideToggle&&!Y.togglePosition))):fe.E;this.tabIndex=parseInt(Te||"")||0,this._parentChangeSubscription=(0,de.T)(le.opened,le.closed,ke,le._inputChanges.pipe((0,W.h)(Y=>!!(Y.hideToggle||Y.disabled||Y.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),le.closed.pipe((0,W.h)(()=>le._containsFocus())).subscribe(()=>yt.focusVia(We,"program")),Ve&&(this.expandedHeight=Ve.expandedHeight,this.collapsedHeight=Ve.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const le=this._isExpanded();return le&&this.expandedHeight?this.expandedHeight:!le&&this.collapsedHeight?this.collapsedHeight:null}_keydown(le){switch(le.keyCode){case ie.L_:case ie.K5:(0,ie.Vb)(le)||(le.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(le))}}focus(le,We){le?this._focusMonitor.focusVia(this._element,le,We):this._element.nativeElement.focus(We)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(le=>{le&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}}return we.\u0275fac=function(le){return new(le||we)(e.Y36(J,1),e.Y36(e.SBq),e.Y36(w.tE),e.Y36(e.sBO),e.Y36(b,8),e.Y36(_e.Qb,8),e.$8M("tabindex"))},we.\u0275cmp=e.Xpm({type:we,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(le,We){1&le&&e.NdJ("click",function(){return We._toggle()})("keydown",function(Ne){return We._keydown(Ne)}),2&le&&(e.uIk("id",We.panel._headerId)("tabindex",We.tabIndex)("aria-controls",We._getPanelId())("aria-expanded",We._isExpanded())("aria-disabled",We.panel.disabled),e.Udp("height",We._getHeaderHeight()),e.ekj("mat-expanded",We._isExpanded())("mat-expansion-toggle-indicator-after","after"===We._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===We._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===We._animationMode))},inputs:{tabIndex:"tabIndex",expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight"},features:[e.qOj],ngContentSelectors:u,decls:5,vars:1,consts:[[1,"mat-content"],["class","mat-expansion-indicator",4,"ngIf"],[1,"mat-expansion-indicator"]],template:function(le,We){1&le&&(e.F$t(p),e.TgZ(0,"span",0),e.Hsn(1),e.Hsn(2,1),e.Hsn(3,2),e.qZA(),e.YNc(4,a,1,1,"span",1)),2&le&&(e.xp6(4),e.Q6J("ngIf",We._showToggle()))},directives:[S.O5],styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;margin-right:16px}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header-description{flex-grow:2}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle}.cdk-high-contrast-active .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true])::before,.cdk-high-contrast-active .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true])::before,.cdk-high-contrast-active .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true])::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;border:3px solid;border-radius:4px;content:""}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}\n'],encapsulation:2,data:{animation:[I.indicatorRotate]},changeDetection:0}),we})(),Re=(()=>{class we{}return we.\u0275fac=function(le){return new(le||we)},we.\u0275dir=e.lG2({type:we,selectors:[["mat-panel-description"]],hostAttrs:[1,"mat-expansion-panel-header-description"]}),we})(),Fe=(()=>{class we{}return we.\u0275fac=function(le){return new(le||we)},we.\u0275dir=e.lG2({type:we,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]}),we})(),q=(()=>{class we extends P{constructor(){super(...arguments),this._ownHeaders=new e.n_E,this._hideToggle=!1,this.displayMode="default",this.togglePosition="after"}get hideToggle(){return this._hideToggle}set hideToggle(le){this._hideToggle=(0,t.Ig)(le)}ngAfterContentInit(){this._headers.changes.pipe((0,G.O)(this._headers)).subscribe(le=>{this._ownHeaders.reset(le.filter(We=>We.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new w.Em(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(le){this._keyManager.onKeydown(le)}_handleHeaderFocus(le){this._keyManager.updateActiveItem(le)}ngOnDestroy(){super.ngOnDestroy(),this._ownHeaders.destroy()}}return we.\u0275fac=function(){let Ae;return function(We){return(Ae||(Ae=e.n5z(we)))(We||we)}}(),we.\u0275dir=e.lG2({type:we,selectors:[["mat-accordion"]],contentQueries:function(le,We,yt){if(1&le&&e.Suo(yt,xe,5),2&le){let Ne;e.iGM(Ne=e.CRH())&&(We._headers=Ne)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(le,We){2&le&&e.ekj("mat-accordion-multi",We.multi)},inputs:{multi:"multi",hideToggle:"hideToggle",displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],features:[e._Bn([{provide:_,useExisting:we}]),e.qOj]}),we})(),j=(()=>{class we{}return we.\u0275fac=function(le){return new(le||we)},we.\u0275mod=e.oAB({type:we}),we.\u0275inj=e.cJS({imports:[[S.ez,D.BQ,T,R.eL]]}),we})()},7322:(Ue,K,m)=>{"use strict";m.d(K,{G_:()=>ue,TO:()=>I,KE:()=>Te,Eo:()=>r,lN:()=>ke,bx:()=>xe,R9:()=>Ae});var e=m(7144),t=m(9808),v=m(5e3),M=m(508),s=m(3191),C=m(7579),c=m(6451),P=m(4968),o=m(8675),O=m(2722),T=m(5698),R=m(1777),S=m(6360),D=m(226),w=m(925);const U=["connectionContainer"],G=["inputContainer"],W=["label"];function ee(Y,X){1&Y&&(v.ynx(0),v.TgZ(1,"div",14),v._UZ(2,"div",15),v._UZ(3,"div",16),v._UZ(4,"div",17),v.qZA(),v.TgZ(5,"div",18),v._UZ(6,"div",15),v._UZ(7,"div",16),v._UZ(8,"div",17),v.qZA(),v.BQk())}function ie(Y,X){if(1&Y){const he=v.EpF();v.TgZ(0,"div",19),v.NdJ("cdkObserveContent",function(){return v.CHM(he),v.oxw().updateOutlineGap()}),v.Hsn(1,1),v.qZA()}if(2&Y){const he=v.oxw();v.Q6J("cdkObserveContentDisabled","outline"!=he.appearance)}}function _e(Y,X){if(1&Y&&(v.ynx(0),v.Hsn(1,2),v.TgZ(2,"span"),v._uU(3),v.qZA(),v.BQk()),2&Y){const he=v.oxw(2);v.xp6(3),v.Oqu(he._control.placeholder)}}function fe(Y,X){1&Y&&v.Hsn(0,3,["*ngSwitchCase","true"])}function de(Y,X){1&Y&&(v.TgZ(0,"span",23),v._uU(1," *"),v.qZA())}function ne(Y,X){if(1&Y){const he=v.EpF();v.TgZ(0,"label",20,21),v.NdJ("cdkObserveContent",function(){return v.CHM(he),v.oxw().updateOutlineGap()}),v.YNc(2,_e,4,1,"ng-container",12),v.YNc(3,fe,1,0,"ng-content",12),v.YNc(4,de,2,0,"span",22),v.qZA()}if(2&Y){const he=v.oxw();v.ekj("mat-empty",he._control.empty&&!he._shouldAlwaysFloat())("mat-form-field-empty",he._control.empty&&!he._shouldAlwaysFloat())("mat-accent","accent"==he.color)("mat-warn","warn"==he.color),v.Q6J("cdkObserveContentDisabled","outline"!=he.appearance)("id",he._labelId)("ngSwitch",he._hasLabel()),v.uIk("for",he._control.id)("aria-owns",he._control.id),v.xp6(2),v.Q6J("ngSwitchCase",!1),v.xp6(1),v.Q6J("ngSwitchCase",!0),v.xp6(1),v.Q6J("ngIf",!he.hideRequiredMarker&&he._control.required&&!he._control.disabled)}}function se(Y,X){1&Y&&(v.TgZ(0,"div",24),v.Hsn(1,4),v.qZA())}function oe(Y,X){if(1&Y&&(v.TgZ(0,"div",25),v._UZ(1,"span",26),v.qZA()),2&Y){const he=v.oxw();v.xp6(1),v.ekj("mat-accent","accent"==he.color)("mat-warn","warn"==he.color)}}function y(Y,X){if(1&Y&&(v.TgZ(0,"div"),v.Hsn(1,5),v.qZA()),2&Y){const he=v.oxw();v.Q6J("@transitionMessages",he._subscriptAnimationState)}}function i(Y,X){if(1&Y&&(v.TgZ(0,"div",30),v._uU(1),v.qZA()),2&Y){const he=v.oxw(2);v.Q6J("id",he._hintLabelId),v.xp6(1),v.Oqu(he.hintLabel)}}function a(Y,X){if(1&Y&&(v.TgZ(0,"div",27),v.YNc(1,i,2,2,"div",28),v.Hsn(2,6),v._UZ(3,"div",29),v.Hsn(4,7),v.qZA()),2&Y){const he=v.oxw();v.Q6J("@transitionMessages",he._subscriptAnimationState),v.xp6(1),v.Q6J("ngIf",he.hintLabel)}}const p=["*",[["","matPrefix",""]],[["mat-placeholder"]],[["mat-label"]],[["","matSuffix",""]],[["mat-error"]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],u=["*","[matPrefix]","mat-placeholder","mat-label","[matSuffix]","mat-error","mat-hint:not([align='end'])","mat-hint[align='end']"];let _=0;const L=new v.OlP("MatError");let I=(()=>{class Y{constructor(he,Me){this.id="mat-error-"+_++,he||Me.nativeElement.setAttribute("aria-live","polite")}}return Y.\u0275fac=function(he){return new(he||Y)(v.$8M("aria-live"),v.Y36(v.SBq))},Y.\u0275dir=v.lG2({type:Y,selectors:[["mat-error"]],hostAttrs:["aria-atomic","true",1,"mat-error"],hostVars:1,hostBindings:function(he,Me){2&he&&v.uIk("id",Me.id)},inputs:{id:"id"},features:[v._Bn([{provide:L,useExisting:Y}])]}),Y})();const x={transitionMessages:(0,R.X$)("transitionMessages",[(0,R.SB)("enter",(0,R.oB)({opacity:1,transform:"translateY(0%)"})),(0,R.eR)("void => enter",[(0,R.oB)({opacity:0,transform:"translateY(-5px)"}),(0,R.jt)("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let r=(()=>{class Y{}return Y.\u0275fac=function(he){return new(he||Y)},Y.\u0275dir=v.lG2({type:Y}),Y})(),B=0;const te=new v.OlP("MatHint");let xe=(()=>{class Y{constructor(){this.align="start",this.id="mat-hint-"+B++}}return Y.\u0275fac=function(he){return new(he||Y)},Y.\u0275dir=v.lG2({type:Y,selectors:[["mat-hint"]],hostAttrs:[1,"mat-hint"],hostVars:4,hostBindings:function(he,Me){2&he&&(v.uIk("id",Me.id)("align",null),v.ekj("mat-form-field-hint-end","end"===Me.align))},inputs:{align:"align",id:"id"},features:[v._Bn([{provide:te,useExisting:Y}])]}),Y})(),Re=(()=>{class Y{}return Y.\u0275fac=function(he){return new(he||Y)},Y.\u0275dir=v.lG2({type:Y,selectors:[["mat-label"]]}),Y})(),Fe=(()=>{class Y{}return Y.\u0275fac=function(he){return new(he||Y)},Y.\u0275dir=v.lG2({type:Y,selectors:[["mat-placeholder"]]}),Y})();const q=new v.OlP("MatPrefix"),we=new v.OlP("MatSuffix");let Ae=(()=>{class Y{}return Y.\u0275fac=function(he){return new(he||Y)},Y.\u0275dir=v.lG2({type:Y,selectors:[["","matSuffix",""]],features:[v._Bn([{provide:we,useExisting:Y}])]}),Y})(),le=0;const Ne=(0,M.pj)(class{constructor(Y){this._elementRef=Y}},"primary"),Ve=new v.OlP("MAT_FORM_FIELD_DEFAULT_OPTIONS"),ue=new v.OlP("MatFormField");let Te=(()=>{class Y extends Ne{constructor(he,Me,ze,ht,it,ft,nt){super(he),this._changeDetectorRef=Me,this._dir=ze,this._defaults=ht,this._platform=it,this._ngZone=ft,this._outlineGapCalculationNeededImmediately=!1,this._outlineGapCalculationNeededOnStable=!1,this._destroyed=new C.x,this._showAlwaysAnimate=!1,this._subscriptAnimationState="",this._hintLabel="",this._hintLabelId="mat-hint-"+le++,this._labelId="mat-form-field-label-"+le++,this.floatLabel=this._getDefaultFloatLabelState(),this._animationsEnabled="NoopAnimations"!==nt,this.appearance=ht&&ht.appearance?ht.appearance:"legacy",this._hideRequiredMarker=!(!ht||null==ht.hideRequiredMarker)&&ht.hideRequiredMarker}get appearance(){return this._appearance}set appearance(he){const Me=this._appearance;this._appearance=he||this._defaults&&this._defaults.appearance||"legacy","outline"===this._appearance&&Me!==he&&(this._outlineGapCalculationNeededOnStable=!0)}get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(he){this._hideRequiredMarker=(0,s.Ig)(he)}_shouldAlwaysFloat(){return"always"===this.floatLabel&&!this._showAlwaysAnimate}_canLabelFloat(){return"never"!==this.floatLabel}get hintLabel(){return this._hintLabel}set hintLabel(he){this._hintLabel=he,this._processHints()}get floatLabel(){return"legacy"!==this.appearance&&"never"===this._floatLabel?"auto":this._floatLabel}set floatLabel(he){he!==this._floatLabel&&(this._floatLabel=he||this._getDefaultFloatLabelState(),this._changeDetectorRef.markForCheck())}get _control(){return this._explicitFormFieldControl||this._controlNonStatic||this._controlStatic}set _control(he){this._explicitFormFieldControl=he}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._connectionContainerRef||this._elementRef}ngAfterContentInit(){this._validateControlChild();const he=this._control;he.controlType&&this._elementRef.nativeElement.classList.add(`mat-form-field-type-${he.controlType}`),he.stateChanges.pipe((0,o.O)(null)).subscribe(()=>{this._validatePlaceholders(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),he.ngControl&&he.ngControl.valueChanges&&he.ngControl.valueChanges.pipe((0,O.R)(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe((0,O.R)(this._destroyed)).subscribe(()=>{this._outlineGapCalculationNeededOnStable&&this.updateOutlineGap()})}),(0,c.T)(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._outlineGapCalculationNeededOnStable=!0,this._changeDetectorRef.markForCheck()}),this._hintChildren.changes.pipe((0,o.O)(null)).subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.pipe((0,o.O)(null)).subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._dir&&this._dir.change.pipe((0,O.R)(this._destroyed)).subscribe(()=>{"function"==typeof requestAnimationFrame?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this.updateOutlineGap())}):this.updateOutlineGap()})}ngAfterContentChecked(){this._validateControlChild(),this._outlineGapCalculationNeededImmediately&&this.updateOutlineGap()}ngAfterViewInit(){this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_shouldForward(he){const Me=this._control?this._control.ngControl:null;return Me&&Me[he]}_hasPlaceholder(){return!!(this._control&&this._control.placeholder||this._placeholderChild)}_hasLabel(){return!(!this._labelChildNonStatic&&!this._labelChildStatic)}_shouldLabelFloat(){return this._canLabelFloat()&&(this._control&&this._control.shouldLabelFloat||this._shouldAlwaysFloat())}_hideControlPlaceholder(){return"legacy"===this.appearance&&!this._hasLabel()||this._hasLabel()&&!this._shouldLabelFloat()}_hasFloatingLabel(){return this._hasLabel()||"legacy"===this.appearance&&this._hasPlaceholder()}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_animateAndLockLabel(){this._hasFloatingLabel()&&this._canLabelFloat()&&(this._animationsEnabled&&this._label&&(this._showAlwaysAnimate=!0,(0,P.R)(this._label.nativeElement,"transitionend").pipe((0,T.q)(1)).subscribe(()=>{this._showAlwaysAnimate=!1})),this.floatLabel="always",this._changeDetectorRef.markForCheck())}_validatePlaceholders(){}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_getDefaultFloatLabelState(){return this._defaults&&this._defaults.floatLabel||"auto"}_syncDescribedByIds(){if(this._control){let he=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&he.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const Me=this._hintChildren?this._hintChildren.find(ht=>"start"===ht.align):null,ze=this._hintChildren?this._hintChildren.find(ht=>"end"===ht.align):null;Me?he.push(Me.id):this._hintLabel&&he.push(this._hintLabelId),ze&&he.push(ze.id)}else this._errorChildren&&he.push(...this._errorChildren.map(Me=>Me.id));this._control.setDescribedByIds(he)}}_validateControlChild(){}updateOutlineGap(){const he=this._label?this._label.nativeElement:null;if(!("outline"===this.appearance&&he&&he.children.length&&he.textContent.trim()&&this._platform.isBrowser))return;if(!this._isAttachedToDOM())return void(this._outlineGapCalculationNeededImmediately=!0);let Me=0,ze=0;const ht=this._connectionContainerRef.nativeElement,it=ht.querySelectorAll(".mat-form-field-outline-start"),ft=ht.querySelectorAll(".mat-form-field-outline-gap");if(this._label&&this._label.nativeElement.children.length){const nt=ht.getBoundingClientRect();if(0===nt.width&&0===nt.height)return this._outlineGapCalculationNeededOnStable=!0,void(this._outlineGapCalculationNeededImmediately=!1);const st=this._getStartEnd(nt),wt=he.children,Bt=this._getStartEnd(wt[0].getBoundingClientRect());let Nt=0;for(let Vt=0;Vt0?.75*Nt+10:0}for(let nt=0;nt{class Y{}return Y.\u0275fac=function(he){return new(he||Y)},Y.\u0275mod=v.oAB({type:Y}),Y.\u0275inj=v.cJS({imports:[[t.ez,M.BQ,e.Q8],M.BQ]}),Y})()},3954:(Ue,K,m)=>{"use strict";m.d(K,{Il:()=>se,N6:()=>oe,DX:()=>R});var e=m(5e3),t=m(508),v=m(3191),M=m(226);const s=["*"];class o{constructor(){this.columnIndex=0,this.rowIndex=0}get rowCount(){return this.rowIndex+1}get rowspan(){const a=Math.max(...this.tracker);return a>1?this.rowCount+a-1:this.rowCount}update(a,p){this.columnIndex=0,this.rowIndex=0,this.tracker=new Array(a),this.tracker.fill(0,0,this.tracker.length),this.positions=p.map(u=>this._trackTile(u))}_trackTile(a){const p=this._findMatchingGap(a.colspan);return this._markTilePosition(p,a),this.columnIndex=p+a.colspan,new O(this.rowIndex,p)}_findMatchingGap(a){let p=-1,u=-1;do{this.columnIndex+a>this.tracker.length?(this._nextRow(),p=this.tracker.indexOf(0,this.columnIndex),u=this._findGapEndIndex(p)):(p=this.tracker.indexOf(0,this.columnIndex),-1!=p?(u=this._findGapEndIndex(p),this.columnIndex=p+1):(this._nextRow(),p=this.tracker.indexOf(0,this.columnIndex),u=this._findGapEndIndex(p)))}while(u-p{class i{constructor(p,u){this._element=p,this._gridList=u,this._rowspan=1,this._colspan=1}get rowspan(){return this._rowspan}set rowspan(p){this._rowspan=Math.round((0,v.su)(p))}get colspan(){return this._colspan}set colspan(p){this._colspan=Math.round((0,v.su)(p))}_setStyle(p,u){this._element.nativeElement.style[p]=u}}return i.\u0275fac=function(p){return new(p||i)(e.Y36(e.SBq),e.Y36(T,8))},i.\u0275cmp=e.Xpm({type:i,selectors:[["mat-grid-tile"]],hostAttrs:[1,"mat-grid-tile"],hostVars:2,hostBindings:function(p,u){2&p&&e.uIk("rowspan",u.rowspan)("colspan",u.colspan)},inputs:{rowspan:"rowspan",colspan:"colspan"},exportAs:["matGridTile"],ngContentSelectors:s,decls:2,vars:0,consts:[[1,"mat-grid-tile-content"]],template:function(p,u){1&p&&(e.F$t(),e.TgZ(0,"div",0),e.Hsn(1),e.qZA())},styles:[".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-grid-tile-header,.mat-grid-tile .mat-grid-tile-footer{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-header>*,.mat-grid-tile .mat-grid-tile-footer>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-tile-header.mat-2-line,.mat-grid-tile .mat-grid-tile-footer.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}.mat-grid-tile-content{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}\n"],encapsulation:2,changeDetection:0}),i})();const G=/^-?\d+((\.\d+)?[A-Za-z%$]?)+$/;class W{constructor(){this._rows=0,this._rowspan=0}init(a,p,u,_){this._gutterSize=de(a),this._rows=p.rowCount,this._rowspan=p.rowspan,this._cols=u,this._direction=_}getBaseTileSize(a,p){return`(${a}% - (${this._gutterSize} * ${p}))`}getTilePosition(a,p){return 0===p?"0":fe(`(${a} + ${this._gutterSize}) * ${p}`)}getTileSize(a,p){return`(${a} * ${p}) + (${p-1} * ${this._gutterSize})`}setStyle(a,p,u){let _=100/this._cols,L=(this._cols-1)/this._cols;this.setColStyles(a,u,_,L),this.setRowStyles(a,p,_,L)}setColStyles(a,p,u,_){let L=this.getBaseTileSize(u,_);a._setStyle("rtl"===this._direction?"right":"left",this.getTilePosition(L,p)),a._setStyle("width",fe(this.getTileSize(L,a.colspan)))}getGutterSpan(){return`${this._gutterSize} * (${this._rowspan} - 1)`}getTileSpan(a){return`${this._rowspan} * ${this.getTileSize(a,1)}`}getComputedHeight(){return null}}class ee extends W{constructor(a){super(),this.fixedRowHeight=a}init(a,p,u,_){super.init(a,p,u,_),this.fixedRowHeight=de(this.fixedRowHeight),G.test(this.fixedRowHeight)}setRowStyles(a,p){a._setStyle("top",this.getTilePosition(this.fixedRowHeight,p)),a._setStyle("height",fe(this.getTileSize(this.fixedRowHeight,a.rowspan)))}getComputedHeight(){return["height",fe(`${this.getTileSpan(this.fixedRowHeight)} + ${this.getGutterSpan()}`)]}reset(a){a._setListStyle(["height",null]),a._tiles&&a._tiles.forEach(p=>{p._setStyle("top",null),p._setStyle("height",null)})}}class ie extends W{constructor(a){super(),this._parseRatio(a)}setRowStyles(a,p,u,_){this.baseTileHeight=this.getBaseTileSize(u/this.rowHeightRatio,_),a._setStyle("marginTop",this.getTilePosition(this.baseTileHeight,p)),a._setStyle("paddingTop",fe(this.getTileSize(this.baseTileHeight,a.rowspan)))}getComputedHeight(){return["paddingBottom",fe(`${this.getTileSpan(this.baseTileHeight)} + ${this.getGutterSpan()}`)]}reset(a){a._setListStyle(["paddingBottom",null]),a._tiles.forEach(p=>{p._setStyle("marginTop",null),p._setStyle("paddingTop",null)})}_parseRatio(a){const p=a.split(":");this.rowHeightRatio=parseFloat(p[0])/parseFloat(p[1])}}class _e extends W{setRowStyles(a,p){let L=this.getBaseTileSize(100/this._rowspan,(this._rows-1)/this._rows);a._setStyle("top",this.getTilePosition(L,p)),a._setStyle("height",fe(this.getTileSize(L,a.rowspan)))}reset(a){a._tiles&&a._tiles.forEach(p=>{p._setStyle("top",null),p._setStyle("height",null)})}}function fe(i){return`calc(${i})`}function de(i){return i.match(/([A-Za-z%]+)$/)?i:`${i}px`}let se=(()=>{class i{constructor(p,u){this._element=p,this._dir=u,this._gutter="1px"}get cols(){return this._cols}set cols(p){this._cols=Math.max(1,Math.round((0,v.su)(p)))}get gutterSize(){return this._gutter}set gutterSize(p){this._gutter=`${null==p?"":p}`}get rowHeight(){return this._rowHeight}set rowHeight(p){const u=`${null==p?"":p}`;u!==this._rowHeight&&(this._rowHeight=u,this._setTileStyler(this._rowHeight))}ngOnInit(){this._checkCols(),this._checkRowHeight()}ngAfterContentChecked(){this._layoutTiles()}_checkCols(){}_checkRowHeight(){this._rowHeight||this._setTileStyler("1:1")}_setTileStyler(p){this._tileStyler&&this._tileStyler.reset(this),this._tileStyler="fit"===p?new _e:p&&p.indexOf(":")>-1?new ie(p):new ee(p)}_layoutTiles(){this._tileCoordinator||(this._tileCoordinator=new o);const p=this._tileCoordinator,u=this._tiles.filter(L=>!L._gridList||L._gridList===this),_=this._dir?this._dir.value:"ltr";this._tileCoordinator.update(this.cols,u),this._tileStyler.init(this.gutterSize,p,this.cols,_),u.forEach((L,I)=>{const x=p.positions[I];this._tileStyler.setStyle(L,x.row,x.col)}),this._setListStyle(this._tileStyler.getComputedHeight())}_setListStyle(p){p&&(this._element.nativeElement.style[p[0]]=p[1])}}return i.\u0275fac=function(p){return new(p||i)(e.Y36(e.SBq),e.Y36(M.Is,8))},i.\u0275cmp=e.Xpm({type:i,selectors:[["mat-grid-list"]],contentQueries:function(p,u,_){if(1&p&&e.Suo(_,R,5),2&p){let L;e.iGM(L=e.CRH())&&(u._tiles=L)}},hostAttrs:[1,"mat-grid-list"],hostVars:1,hostBindings:function(p,u){2&p&&e.uIk("cols",u.cols)},inputs:{cols:"cols",gutterSize:"gutterSize",rowHeight:"rowHeight"},exportAs:["matGridList"],features:[e._Bn([{provide:T,useExisting:i}])],ngContentSelectors:s,decls:2,vars:0,template:function(p,u){1&p&&(e.F$t(),e.TgZ(0,"div"),e.Hsn(1),e.qZA())},styles:[".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-grid-tile-header,.mat-grid-tile .mat-grid-tile-footer{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-header>*,.mat-grid-tile .mat-grid-tile-footer>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-tile-header.mat-2-line,.mat-grid-tile .mat-grid-tile-footer.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}.mat-grid-tile-content{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}\n"],encapsulation:2,changeDetection:0}),i})(),oe=(()=>{class i{}return i.\u0275fac=function(p){return new(p||i)},i.\u0275mod=e.oAB({type:i}),i.\u0275inj=e.cJS({imports:[[t.uc,t.BQ],t.uc,t.BQ]}),i})()},5245:(Ue,K,m)=>{"use strict";m.d(K,{Hw:()=>J,Ps:()=>F});var e=m(5e3),t=m(508),v=m(3191),M=m(9808),s=m(9646),C=m(2843),c=m(4128),P=m(727),o=m(8505),O=m(4004),T=m(262),R=m(8746),S=m(3099),D=m(5698),w=m(8138),U=m(2313);const G=["*"];let W;function ie(B){var te;return(null===(te=function(){if(void 0===W&&(W=null,"undefined"!=typeof window)){const B=window;void 0!==B.trustedTypes&&(W=B.trustedTypes.createPolicy("angular#components",{createHTML:te=>te}))}return W}())||void 0===te?void 0:te.createHTML(B))||B}function _e(B){return Error(`Unable to find icon with the name "${B}"`)}function de(B){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${B}".`)}function ne(B){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${B}".`)}class se{constructor(te,xe,Re){this.url=te,this.svgText=xe,this.options=Re}}let oe=(()=>{class B{constructor(xe,Re,Fe,q){this._httpClient=xe,this._sanitizer=Re,this._errorHandler=q,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass="material-icons",this._document=Fe}addSvgIcon(xe,Re,Fe){return this.addSvgIconInNamespace("",xe,Re,Fe)}addSvgIconLiteral(xe,Re,Fe){return this.addSvgIconLiteralInNamespace("",xe,Re,Fe)}addSvgIconInNamespace(xe,Re,Fe,q){return this._addSvgIconConfig(xe,Re,new se(Fe,null,q))}addSvgIconResolver(xe){return this._resolvers.push(xe),this}addSvgIconLiteralInNamespace(xe,Re,Fe,q){const j=this._sanitizer.sanitize(e.q3G.HTML,Fe);if(!j)throw ne(Fe);const we=ie(j);return this._addSvgIconConfig(xe,Re,new se("",we,q))}addSvgIconSet(xe,Re){return this.addSvgIconSetInNamespace("",xe,Re)}addSvgIconSetLiteral(xe,Re){return this.addSvgIconSetLiteralInNamespace("",xe,Re)}addSvgIconSetInNamespace(xe,Re,Fe){return this._addSvgIconSetConfig(xe,new se(Re,null,Fe))}addSvgIconSetLiteralInNamespace(xe,Re,Fe){const q=this._sanitizer.sanitize(e.q3G.HTML,Re);if(!q)throw ne(Re);const j=ie(q);return this._addSvgIconSetConfig(xe,new se("",j,Fe))}registerFontClassAlias(xe,Re=xe){return this._fontCssClassesByAlias.set(xe,Re),this}classNameForFontAlias(xe){return this._fontCssClassesByAlias.get(xe)||xe}setDefaultFontSetClass(xe){return this._defaultFontSetClass=xe,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(xe){const Re=this._sanitizer.sanitize(e.q3G.RESOURCE_URL,xe);if(!Re)throw de(xe);const Fe=this._cachedIconsByUrl.get(Re);return Fe?(0,s.of)(a(Fe)):this._loadSvgIconFromConfig(new se(xe,null)).pipe((0,o.b)(q=>this._cachedIconsByUrl.set(Re,q)),(0,O.U)(q=>a(q)))}getNamedSvgIcon(xe,Re=""){const Fe=p(Re,xe);let q=this._svgIconConfigs.get(Fe);if(q)return this._getSvgFromConfig(q);if(q=this._getIconConfigFromResolvers(Re,xe),q)return this._svgIconConfigs.set(Fe,q),this._getSvgFromConfig(q);const j=this._iconSetConfigs.get(Re);return j?this._getSvgFromIconSetConfigs(xe,j):(0,C._)(_e(Fe))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(xe){return xe.svgText?(0,s.of)(a(this._svgElementFromConfig(xe))):this._loadSvgIconFromConfig(xe).pipe((0,O.U)(Re=>a(Re)))}_getSvgFromIconSetConfigs(xe,Re){const Fe=this._extractIconWithNameFromAnySet(xe,Re);if(Fe)return(0,s.of)(Fe);const q=Re.filter(j=>!j.svgText).map(j=>this._loadSvgIconSetFromConfig(j).pipe((0,T.K)(we=>{const le=`Loading icon set URL: ${this._sanitizer.sanitize(e.q3G.RESOURCE_URL,j.url)} failed: ${we.message}`;return this._errorHandler.handleError(new Error(le)),(0,s.of)(null)})));return(0,c.D)(q).pipe((0,O.U)(()=>{const j=this._extractIconWithNameFromAnySet(xe,Re);if(!j)throw _e(xe);return j}))}_extractIconWithNameFromAnySet(xe,Re){for(let Fe=Re.length-1;Fe>=0;Fe--){const q=Re[Fe];if(q.svgText&&q.svgText.toString().indexOf(xe)>-1){const j=this._svgElementFromConfig(q),we=this._extractSvgIconFromSet(j,xe,q.options);if(we)return we}}return null}_loadSvgIconFromConfig(xe){return this._fetchIcon(xe).pipe((0,o.b)(Re=>xe.svgText=Re),(0,O.U)(()=>this._svgElementFromConfig(xe)))}_loadSvgIconSetFromConfig(xe){return xe.svgText?(0,s.of)(null):this._fetchIcon(xe).pipe((0,o.b)(Re=>xe.svgText=Re))}_extractSvgIconFromSet(xe,Re,Fe){const q=xe.querySelector(`[id="${Re}"]`);if(!q)return null;const j=q.cloneNode(!0);if(j.removeAttribute("id"),"svg"===j.nodeName.toLowerCase())return this._setSvgAttributes(j,Fe);if("symbol"===j.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(j),Fe);const we=this._svgElementFromString(ie(""));return we.appendChild(j),this._setSvgAttributes(we,Fe)}_svgElementFromString(xe){const Re=this._document.createElement("DIV");Re.innerHTML=xe;const Fe=Re.querySelector("svg");if(!Fe)throw Error(" tag not found");return Fe}_toSvgElement(xe){const Re=this._svgElementFromString(ie("")),Fe=xe.attributes;for(let q=0;qie(We)),(0,R.x)(()=>this._inProgressUrlFetches.delete(we)),(0,S.B)());return this._inProgressUrlFetches.set(we,le),le}_addSvgIconConfig(xe,Re,Fe){return this._svgIconConfigs.set(p(xe,Re),Fe),this}_addSvgIconSetConfig(xe,Re){const Fe=this._iconSetConfigs.get(xe);return Fe?Fe.push(Re):this._iconSetConfigs.set(xe,[Re]),this}_svgElementFromConfig(xe){if(!xe.svgElement){const Re=this._svgElementFromString(xe.svgText);this._setSvgAttributes(Re,xe.options),xe.svgElement=Re}return xe.svgElement}_getIconConfigFromResolvers(xe,Re){for(let Fe=0;Fete?te.pathname+te.search:""}}}),x=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],r=x.map(B=>`[${B}]`).join(", "),b=/^url\(['"]?#(.*?)['"]?\)$/;let J=(()=>{class B extends _{constructor(xe,Re,Fe,q,j){super(xe),this._iconRegistry=Re,this._location=q,this._errorHandler=j,this._inline=!1,this._currentIconFetch=P.w0.EMPTY,Fe||xe.nativeElement.setAttribute("aria-hidden","true")}get inline(){return this._inline}set inline(xe){this._inline=(0,v.Ig)(xe)}get svgIcon(){return this._svgIcon}set svgIcon(xe){xe!==this._svgIcon&&(xe?this._updateSvgIcon(xe):this._svgIcon&&this._clearSvgElement(),this._svgIcon=xe)}get fontSet(){return this._fontSet}set fontSet(xe){const Re=this._cleanupFontValue(xe);Re!==this._fontSet&&(this._fontSet=Re,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(xe){const Re=this._cleanupFontValue(xe);Re!==this._fontIcon&&(this._fontIcon=Re,this._updateFontIconClasses())}_splitIconName(xe){if(!xe)return["",""];const Re=xe.split(":");switch(Re.length){case 1:return["",Re[0]];case 2:return Re;default:throw Error(`Invalid icon name: "${xe}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const xe=this._elementsWithExternalReferences;if(xe&&xe.size){const Re=this._location.getPathname();Re!==this._previousPath&&(this._previousPath=Re,this._prependPathToReferences(Re))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(xe){this._clearSvgElement();const Re=xe.querySelectorAll("style");for(let q=0;q{Fe.forEach(j=>{q.setAttribute(j.name,`url('${xe}#${j.value}')`)})})}_cacheChildrenWithExternalReferences(xe){const Re=xe.querySelectorAll(r),Fe=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let q=0;q{const we=Re[q],Ae=we.getAttribute(j),le=Ae?Ae.match(b):null;if(le){let We=Fe.get(we);We||(We=[],Fe.set(we,We)),We.push({name:j,value:le[1]})}})}_updateSvgIcon(xe){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),xe){const[Re,Fe]=this._splitIconName(xe);Re&&(this._svgNamespace=Re),Fe&&(this._svgName=Fe),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(Fe,Re).pipe((0,D.q)(1)).subscribe(q=>this._setSvgElement(q),q=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${Re}:${Fe}! ${q.message}`))})}}}return B.\u0275fac=function(xe){return new(xe||B)(e.Y36(e.SBq),e.Y36(oe),e.$8M("aria-hidden"),e.Y36(L),e.Y36(e.qLn))},B.\u0275cmp=e.Xpm({type:B,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:7,hostBindings:function(xe,Re){2&xe&&(e.uIk("data-mat-icon-type",Re._usingFontIcon()?"font":"svg")("data-mat-icon-name",Re._svgName||Re.fontIcon)("data-mat-icon-namespace",Re._svgNamespace||Re.fontSet),e.ekj("mat-icon-inline",Re.inline)("mat-icon-no-color","primary"!==Re.color&&"accent"!==Re.color&&"warn"!==Re.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[e.qOj],ngContentSelectors:G,decls:1,vars:0,template:function(xe,Re){1&xe&&(e.F$t(),e.Hsn(0))},styles:[".mat-icon{-webkit-user-select:none;-moz-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\n"],encapsulation:2,changeDetection:0}),B})(),F=(()=>{class B{}return B.\u0275fac=function(xe){return new(xe||B)},B.\u0275mod=e.oAB({type:B}),B.\u0275inj=e.cJS({imports:[[t.BQ],t.BQ]}),B})()},7531:(Ue,K,m)=>{"use strict";m.d(K,{Jk:()=>w,Nt:()=>ee,c:()=>ie});var e=m(3191),t=m(925),v=m(5e3),M=m(3075),s=m(508),C=m(7322),c=m(7579),P=m(515);const o=(0,t.i$)({passive:!0});let O=(()=>{class _e{constructor(de,ne){this._platform=de,this._ngZone=ne,this._monitoredElements=new Map}monitor(de){if(!this._platform.isBrowser)return P.E;const ne=(0,e.fI)(de),se=this._monitoredElements.get(ne);if(se)return se.subject;const oe=new c.x,y="cdk-text-field-autofilled",i=a=>{"cdk-text-field-autofill-start"!==a.animationName||ne.classList.contains(y)?"cdk-text-field-autofill-end"===a.animationName&&ne.classList.contains(y)&&(ne.classList.remove(y),this._ngZone.run(()=>oe.next({target:a.target,isAutofilled:!1}))):(ne.classList.add(y),this._ngZone.run(()=>oe.next({target:a.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{ne.addEventListener("animationstart",i,o),ne.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(ne,{subject:oe,unlisten:()=>{ne.removeEventListener("animationstart",i,o)}}),oe}stopMonitoring(de){const ne=(0,e.fI)(de),se=this._monitoredElements.get(ne);se&&(se.unlisten(),se.subject.complete(),ne.classList.remove("cdk-text-field-autofill-monitored"),ne.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(ne))}ngOnDestroy(){this._monitoredElements.forEach((de,ne)=>this.stopMonitoring(ne))}}return _e.\u0275fac=function(de){return new(de||_e)(v.LFG(t.t4),v.LFG(v.R0b))},_e.\u0275prov=v.Yz7({token:_e,factory:_e.\u0275fac,providedIn:"root"}),_e})(),S=(()=>{class _e{}return _e.\u0275fac=function(de){return new(de||_e)},_e.\u0275mod=v.oAB({type:_e}),_e.\u0275inj=v.cJS({imports:[[t.ud]]}),_e})();const w=new v.OlP("MAT_INPUT_VALUE_ACCESSOR"),U=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let G=0;const W=(0,s.FD)(class{constructor(_e,fe,de,ne){this._defaultErrorStateMatcher=_e,this._parentForm=fe,this._parentFormGroup=de,this.ngControl=ne}});let ee=(()=>{class _e extends W{constructor(de,ne,se,oe,y,i,a,p,u,_){super(i,oe,y,se),this._elementRef=de,this._platform=ne,this._autofillMonitor=p,this._formField=_,this._uid="mat-input-"+G++,this.focused=!1,this.stateChanges=new c.x,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(x=>(0,t.qK)().has(x));const L=this._elementRef.nativeElement,I=L.nodeName.toLowerCase();this._inputValueAccessor=a||L,this._previousNativeValue=this.value,this.id=this.id,ne.IOS&&u.runOutsideAngular(()=>{de.nativeElement.addEventListener("keyup",x=>{const r=x.target;!r.value&&0===r.selectionStart&&0===r.selectionEnd&&(r.setSelectionRange(1,1),r.setSelectionRange(0,0))})}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===I,this._isTextarea="textarea"===I,this._isInFormField=!!_,this._isNativeSelect&&(this.controlType=L.multiple?"mat-native-select-multiple":"mat-native-select")}get disabled(){return this.ngControl&&null!==this.ngControl.disabled?this.ngControl.disabled:this._disabled}set disabled(de){this._disabled=(0,e.Ig)(de),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(de){this._id=de||this._uid}get required(){var de,ne,se,oe;return null!==(oe=null!==(de=this._required)&&void 0!==de?de:null===(se=null===(ne=this.ngControl)||void 0===ne?void 0:ne.control)||void 0===se?void 0:se.hasValidator(M.kI.required))&&void 0!==oe&&oe}set required(de){this._required=(0,e.Ig)(de)}get type(){return this._type}set type(de){this._type=de||"text",this._validateType(),!this._isTextarea&&(0,t.qK)().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(de){de!==this.value&&(this._inputValueAccessor.value=de,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(de){this._readonly=(0,e.Ig)(de)}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(de=>{this.autofilled=de.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement)}ngDoCheck(){this.ngControl&&this.updateErrorState(),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(de){this._elementRef.nativeElement.focus(de)}_focusChanged(de){de!==this.focused&&(this.focused=de,this.stateChanges.next())}_onInput(){}_dirtyCheckPlaceholder(){var de,ne;const se=(null===(ne=null===(de=this._formField)||void 0===de?void 0:de._hideControlPlaceholder)||void 0===ne?void 0:ne.call(de))?null:this.placeholder;if(se!==this._previousPlaceholder){const oe=this._elementRef.nativeElement;this._previousPlaceholder=se,se?oe.setAttribute("placeholder",se):oe.removeAttribute("placeholder")}}_dirtyCheckNativeValue(){const de=this._elementRef.nativeElement.value;this._previousNativeValue!==de&&(this._previousNativeValue=de,this.stateChanges.next())}_validateType(){U.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let de=this._elementRef.nativeElement.validity;return de&&de.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const de=this._elementRef.nativeElement,ne=de.options[0];return this.focused||de.multiple||!this.empty||!!(de.selectedIndex>-1&&ne&&ne.label)}return this.focused||!this.empty}setDescribedByIds(de){de.length?this._elementRef.nativeElement.setAttribute("aria-describedby",de.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const de=this._elementRef.nativeElement;return this._isNativeSelect&&(de.multiple||de.size>1)}}return _e.\u0275fac=function(de){return new(de||_e)(v.Y36(v.SBq),v.Y36(t.t4),v.Y36(M.a5,10),v.Y36(M.F,8),v.Y36(M.sg,8),v.Y36(s.rD),v.Y36(w,10),v.Y36(O),v.Y36(v.R0b),v.Y36(C.G_,8))},_e.\u0275dir=v.lG2({type:_e,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-input-element","mat-form-field-autofill-control"],hostVars:11,hostBindings:function(de,ne){1&de&&v.NdJ("focus",function(){return ne._focusChanged(!0)})("blur",function(){return ne._focusChanged(!1)})("input",function(){return ne._onInput()}),2&de&&(v.Ikx("disabled",ne.disabled)("required",ne.required),v.uIk("id",ne.id)("data-placeholder",ne.placeholder)("readonly",ne.readonly&&!ne._isNativeSelect||null)("aria-invalid",ne.empty&&ne.required?null:ne.errorState)("aria-required",ne.required),v.ekj("mat-input-server",ne._isServer)("mat-native-select-inline",ne._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[v._Bn([{provide:C.Eo,useExisting:_e}]),v.qOj,v.TTD]}),_e})(),ie=(()=>{class _e{}return _e.\u0275fac=function(de){return new(de||_e)},_e.\u0275mod=v.oAB({type:_e}),_e.\u0275inj=v.cJS({providers:[s.rD],imports:[[S,C.lN,s.BQ],S,C.lN]}),_e})()},4623:(Ue,K,m)=>{"use strict";m.d(K,{i$:()=>oe,Tg:()=>p,ie:()=>b});var e=m(9808),t=m(5e3),v=m(508),M=m(3191),s=m(7579),C=m(2722),R=(m(8675),m(5664),m(449),m(1159),m(3075),m(4834));const S=["*"],w=[[["","mat-list-avatar",""],["","mat-list-icon",""],["","matListAvatar",""],["","matListIcon",""]],[["","mat-line",""],["","matLine",""]],"*"],U=["[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]","[mat-line], [matLine]","*"],_e=(0,v.Id)((0,v.Kr)(class{})),fe=(0,v.Kr)(class{}),de=new t.OlP("MatList"),ne=new t.OlP("MatNavList");let oe=(()=>{class J extends _e{constructor(B){super(),this._elementRef=B,this._stateChanges=new s.x,"action-list"===this._getListType()&&B.nativeElement.classList.add("mat-action-list")}_getListType(){const B=this._elementRef.nativeElement.nodeName.toLowerCase();return"mat-list"===B?"list":"mat-action-list"===B?"action-list":null}ngOnChanges(){this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}}return J.\u0275fac=function(B){return new(B||J)(t.Y36(t.SBq))},J.\u0275cmp=t.Xpm({type:J,selectors:[["mat-list"],["mat-action-list"]],hostAttrs:[1,"mat-list","mat-list-base"],inputs:{disableRipple:"disableRipple",disabled:"disabled"},exportAs:["matList"],features:[t._Bn([{provide:de,useExisting:J}]),t.qOj,t.TTD],ngContentSelectors:S,decls:1,vars:0,template:function(B,te){1&B&&(t.F$t(),t.Hsn(0))},styles:['.mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:transparent}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:transparent;text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-selection-list:focus{outline-style:dotted}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-list-option:focus,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:focus,.cdk-high-contrast-active mat-action-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:focus{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\n'],encapsulation:2,changeDetection:0}),J})(),y=(()=>{class J{}return J.\u0275fac=function(B){return new(B||J)},J.\u0275dir=t.lG2({type:J,selectors:[["","mat-list-avatar",""],["","matListAvatar",""]],hostAttrs:[1,"mat-list-avatar"]}),J})(),i=(()=>{class J{}return J.\u0275fac=function(B){return new(B||J)},J.\u0275dir=t.lG2({type:J,selectors:[["","mat-list-icon",""],["","matListIcon",""]],hostAttrs:[1,"mat-list-icon"]}),J})(),p=(()=>{class J extends fe{constructor(B,te,xe,Re){super(),this._element=B,this._isInteractiveList=!1,this._destroyed=new s.x,this._disabled=!1,this._isInteractiveList=!!(xe||Re&&"action-list"===Re._getListType()),this._list=xe||Re;const Fe=this._getHostElement();"button"===Fe.nodeName.toLowerCase()&&!Fe.hasAttribute("type")&&Fe.setAttribute("type","button"),this._list&&this._list._stateChanges.pipe((0,C.R)(this._destroyed)).subscribe(()=>{te.markForCheck()})}get disabled(){return this._disabled||!(!this._list||!this._list.disabled)}set disabled(B){this._disabled=(0,M.Ig)(B)}ngAfterContentInit(){(0,v.E0)(this._lines,this._element)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_isRippleDisabled(){return!this._isInteractiveList||this.disableRipple||!(!this._list||!this._list.disableRipple)}_getHostElement(){return this._element.nativeElement}}return J.\u0275fac=function(B){return new(B||J)(t.Y36(t.SBq),t.Y36(t.sBO),t.Y36(ne,8),t.Y36(de,8))},J.\u0275cmp=t.Xpm({type:J,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(B,te,xe){if(1&B&&(t.Suo(xe,y,5),t.Suo(xe,i,5),t.Suo(xe,v.X2,5)),2&B){let Re;t.iGM(Re=t.CRH())&&(te._avatar=Re.first),t.iGM(Re=t.CRH())&&(te._icon=Re.first),t.iGM(Re=t.CRH())&&(te._lines=Re)}},hostAttrs:[1,"mat-list-item","mat-focus-indicator"],hostVars:6,hostBindings:function(B,te){2&B&&t.ekj("mat-list-item-disabled",te.disabled)("mat-list-item-avatar",te._avatar||te._icon)("mat-list-item-with-avatar",te._avatar||te._icon)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},exportAs:["matListItem"],features:[t.qOj],ngContentSelectors:U,decls:6,vars:2,consts:[[1,"mat-list-item-content"],["mat-ripple","",1,"mat-list-item-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-list-text"]],template:function(B,te){1&B&&(t.F$t(w),t.TgZ(0,"div",0),t._UZ(1,"div",1),t.Hsn(2),t.TgZ(3,"div",2),t.Hsn(4,1),t.qZA(),t.Hsn(5,2),t.qZA()),2&B&&(t.xp6(1),t.Q6J("matRippleTrigger",te._getHostElement())("matRippleDisabled",te._isRippleDisabled()))},directives:[v.wG],encapsulation:2,changeDetection:0}),J})(),b=(()=>{class J{}return J.\u0275fac=function(B){return new(B||J)},J.\u0275mod=t.oAB({type:J}),J.\u0275inj=t.cJS({imports:[[v.uc,v.si,v.BQ,v.us,e.ez],v.uc,v.BQ,v.us,R.t]}),J})()},2181:(Ue,K,m)=>{"use strict";m.d(K,{VK:()=>q,OP:()=>B,Tx:()=>Ve,p6:()=>Ne});var e=m(5664),t=m(3191),v=m(1159),M=m(5e3),s=m(7579),C=m(727),c=m(6451),P=m(9646),o=m(3101),O=m(8675),T=m(3900),R=m(5698),S=m(9300),D=m(2722),w=m(4086),U=m(1777),G=m(7429),W=m(9808),ee=m(508),ie=m(9776),_e=m(925),fe=m(226),de=m(5303);const ne=["mat-menu-item",""];function se(ue,Te){1&ue&&(M.O4$(),M.TgZ(0,"svg",2),M._UZ(1,"polygon",3),M.qZA())}const oe=["*"];function y(ue,Te){if(1&ue){const ke=M.EpF();M.TgZ(0,"div",0),M.NdJ("keydown",function(X){return M.CHM(ke),M.oxw()._handleKeydown(X)})("click",function(){return M.CHM(ke),M.oxw().closed.emit("click")})("@transformMenu.start",function(X){return M.CHM(ke),M.oxw()._onAnimationStart(X)})("@transformMenu.done",function(X){return M.CHM(ke),M.oxw()._onAnimationDone(X)}),M.TgZ(1,"div",1),M.Hsn(2),M.qZA(),M.qZA()}if(2&ue){const ke=M.oxw();M.Q6J("id",ke.panelId)("ngClass",ke._classList)("@transformMenu",ke._panelAnimationState),M.uIk("aria-label",ke.ariaLabel||null)("aria-labelledby",ke.ariaLabelledby||null)("aria-describedby",ke.ariaDescribedby||null)}}const i={transformMenu:(0,U.X$)("transformMenu",[(0,U.SB)("void",(0,U.oB)({opacity:0,transform:"scale(0.8)"})),(0,U.eR)("void => enter",(0,U.jt)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,U.oB)({opacity:1,transform:"scale(1)"}))),(0,U.eR)("* => void",(0,U.jt)("100ms 25ms linear",(0,U.oB)({opacity:0})))]),fadeInItems:(0,U.X$)("fadeInItems",[(0,U.SB)("showing",(0,U.oB)({opacity:1})),(0,U.eR)("void => *",[(0,U.oB)({opacity:0}),(0,U.jt)("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},u=new M.OlP("MatMenuContent"),J=new M.OlP("MAT_MENU_PANEL"),F=(0,ee.Kr)((0,ee.Id)(class{}));let B=(()=>{class ue extends F{constructor(ke,Y,X,he,Me){super(),this._elementRef=ke,this._focusMonitor=X,this._parentMenu=he,this._changeDetectorRef=Me,this.role="menuitem",this._hovered=new s.x,this._focused=new s.x,this._highlighted=!1,this._triggersSubmenu=!1,he&&he.addItem&&he.addItem(this)}focus(ke,Y){this._focusMonitor&&ke?this._focusMonitor.focusVia(this._getHostElement(),ke,Y):this._getHostElement().focus(Y),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(ke){this.disabled&&(ke.preventDefault(),ke.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){var ke;const Y=this._elementRef.nativeElement.cloneNode(!0),X=Y.querySelectorAll("mat-icon, .material-icons");for(let he=0;he{class ue{constructor(ke,Y,X){this._elementRef=ke,this._ngZone=Y,this._defaultOptions=X,this._xPosition=this._defaultOptions.xPosition,this._yPosition=this._defaultOptions.yPosition,this._directDescendantItems=new M.n_E,this._tabSubscription=C.w0.EMPTY,this._classList={},this._panelAnimationState="void",this._animationDone=new s.x,this.overlayPanelClass=this._defaultOptions.overlayPanelClass||"",this.backdropClass=this._defaultOptions.backdropClass,this._overlapTrigger=this._defaultOptions.overlapTrigger,this._hasBackdrop=this._defaultOptions.hasBackdrop,this.closed=new M.vpe,this.close=this.closed,this.panelId="mat-menu-panel-"+Re++}get xPosition(){return this._xPosition}set xPosition(ke){this._xPosition=ke,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(ke){this._yPosition=ke,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(ke){this._overlapTrigger=(0,t.Ig)(ke)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(ke){this._hasBackdrop=(0,t.Ig)(ke)}set panelClass(ke){const Y=this._previousPanelClass;Y&&Y.length&&Y.split(" ").forEach(X=>{this._classList[X]=!1}),this._previousPanelClass=ke,ke&&ke.length&&(ke.split(" ").forEach(X=>{this._classList[X]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(ke){this.panelClass=ke}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new e.Em(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._tabSubscription=this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe((0,O.O)(this._directDescendantItems),(0,T.w)(ke=>(0,c.T)(...ke.map(Y=>Y._focused)))).subscribe(ke=>this._keyManager.updateActiveItem(ke))}ngOnDestroy(){this._directDescendantItems.destroy(),this._tabSubscription.unsubscribe(),this.closed.complete()}_hovered(){return this._directDescendantItems.changes.pipe((0,O.O)(this._directDescendantItems),(0,T.w)(Y=>(0,c.T)(...Y.map(X=>X._hovered))))}addItem(ke){}removeItem(ke){}_handleKeydown(ke){const Y=ke.keyCode,X=this._keyManager;switch(Y){case v.hY:(0,v.Vb)(ke)||(ke.preventDefault(),this.closed.emit("keydown"));break;case v.oh:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case v.SV:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:(Y===v.LH||Y===v.JH)&&X.setFocusOrigin("keyboard"),X.onKeydown(ke)}}focusFirstItem(ke="program"){this.lazyContent?this._ngZone.onStable.pipe((0,R.q)(1)).subscribe(()=>this._focusFirstItem(ke)):this._focusFirstItem(ke)}_focusFirstItem(ke){const Y=this._keyManager;if(Y.setFocusOrigin(ke).setFirstItemActive(),!Y.activeItem&&this._directDescendantItems.length){let X=this._directDescendantItems.first._getHostElement().parentElement;for(;X;){if("menu"===X.getAttribute("role")){X.focus();break}X=X.parentElement}}}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(ke){const Y=Math.min(this._baseElevation+ke,24),X=`${this._elevationPrefix}${Y}`,he=Object.keys(this._classList).find(Me=>Me.startsWith(this._elevationPrefix));(!he||he===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[X]=!0,this._previousElevation=X)}setPositionClasses(ke=this.xPosition,Y=this.yPosition){const X=this._classList;X["mat-menu-before"]="before"===ke,X["mat-menu-after"]="after"===ke,X["mat-menu-above"]="above"===Y,X["mat-menu-below"]="below"===Y}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(ke){this._animationDone.next(ke),this._isAnimating=!1}_onAnimationStart(ke){this._isAnimating=!0,"enter"===ke.toState&&0===this._keyManager.activeItemIndex&&(ke.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe((0,O.O)(this._allItems)).subscribe(ke=>{this._directDescendantItems.reset(ke.filter(Y=>Y._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}}return ue.\u0275fac=function(ke){return new(ke||ue)(M.Y36(M.SBq),M.Y36(M.R0b),M.Y36(te))},ue.\u0275dir=M.lG2({type:ue,contentQueries:function(ke,Y,X){if(1&ke&&(M.Suo(X,u,5),M.Suo(X,B,5),M.Suo(X,B,4)),2&ke){let he;M.iGM(he=M.CRH())&&(Y.lazyContent=he.first),M.iGM(he=M.CRH())&&(Y._allItems=he),M.iGM(he=M.CRH())&&(Y.items=he)}},viewQuery:function(ke,Y){if(1&ke&&M.Gf(M.Rgc,5),2&ke){let X;M.iGM(X=M.CRH())&&(Y.templateRef=X.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}}),ue})(),q=(()=>{class ue extends Fe{constructor(ke,Y,X){super(ke,Y,X),this._elevationPrefix="mat-elevation-z",this._baseElevation=4}}return ue.\u0275fac=function(ke){return new(ke||ue)(M.Y36(M.SBq),M.Y36(M.R0b),M.Y36(te))},ue.\u0275cmp=M.Xpm({type:ue,selectors:[["mat-menu"]],hostVars:3,hostBindings:function(ke,Y){2&ke&&M.uIk("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[M._Bn([{provide:J,useExisting:ue}]),M.qOj],ngContentSelectors:oe,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-menu-panel",3,"id","ngClass","keydown","click"],[1,"mat-menu-content"]],template:function(ke,Y){1&ke&&(M.F$t(),M.YNc(0,y,3,6,"ng-template"))},directives:[W.mk],styles:["mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]{pointer-events:none}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n"],encapsulation:2,data:{animation:[i.transformMenu,i.fadeInItems]},changeDetection:0}),ue})();const j=new M.OlP("mat-menu-scroll-strategy"),Ae={provide:j,deps:[ie.aV],useFactory:function(ue){return()=>ue.scrollStrategies.reposition()}},We=(0,_e.i$)({passive:!0});let yt=(()=>{class ue{constructor(ke,Y,X,he,Me,ze,ht,it){this._overlay=ke,this._element=Y,this._viewContainerRef=X,this._menuItemInstance=ze,this._dir=ht,this._focusMonitor=it,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=C.w0.EMPTY,this._hoverSubscription=C.w0.EMPTY,this._menuCloseSubscription=C.w0.EMPTY,this._handleTouchStart=ft=>{(0,e.yG)(ft)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new M.vpe,this.onMenuOpen=this.menuOpened,this.menuClosed=new M.vpe,this.onMenuClose=this.menuClosed,this._scrollStrategy=he,this._parentMaterialMenu=Me instanceof Fe?Me:void 0,Y.nativeElement.addEventListener("touchstart",this._handleTouchStart,We),ze&&(ze._triggersSubmenu=this.triggersSubmenu())}get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(ke){this.menu=ke}get menu(){return this._menu}set menu(ke){ke!==this._menu&&(this._menu=ke,this._menuCloseSubscription.unsubscribe(),ke&&(this._menuCloseSubscription=ke.close.subscribe(Y=>{this._destroyMenu(Y),("click"===Y||"tab"===Y)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(Y)})))}ngAfterContentInit(){this._checkMenu(),this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,We),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!(!this._menuItemInstance||!this._parentMaterialMenu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){if(this._menuOpen)return;this._checkMenu();const ke=this._createOverlay(),Y=ke.getConfig();this._setPosition(Y.positionStrategy),Y.hasBackdrop=null==this.menu.hasBackdrop?!this.triggersSubmenu():this.menu.hasBackdrop,ke.attach(this._getPortal()),this.menu.lazyContent&&this.menu.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(),this.menu instanceof Fe&&this.menu._startAnimation()}closeMenu(){this.menu.close.emit()}focus(ke,Y){this._focusMonitor&&ke?this._focusMonitor.focusVia(this._element,ke,Y):this._element.nativeElement.focus(Y)}updatePosition(){var ke;null===(ke=this._overlayRef)||void 0===ke||ke.updatePosition()}_destroyMenu(ke){if(!this._overlayRef||!this.menuOpen)return;const Y=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===ke||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,Y instanceof Fe?(Y._resetAnimation(),Y.lazyContent?Y._animationDone.pipe((0,S.h)(X=>"void"===X.toState),(0,R.q)(1),(0,D.R)(Y.lazyContent._attached)).subscribe({next:()=>Y.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),Y.lazyContent&&Y.lazyContent.detach())}_initMenu(){this.menu.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,this.menu.direction=this.dir,this._setMenuElevation(),this.menu.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(){if(this.menu.setElevation){let ke=0,Y=this.menu.parentMenu;for(;Y;)ke++,Y=Y.parentMenu;this.menu.setElevation(ke)}}_setIsMenuOpen(ke){this._menuOpen=ke,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(ke)}_checkMenu(){}_createOverlay(){if(!this._overlayRef){const ke=this._getOverlayConfig();this._subscribeToPositions(ke.positionStrategy),this._overlayRef=this._overlay.create(ke),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(){return new ie.X_({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:this.menu.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:this.menu.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(ke){this.menu.setPositionClasses&&ke.positionChanges.subscribe(Y=>{this.menu.setPositionClasses("start"===Y.connectionPair.overlayX?"after":"before","top"===Y.connectionPair.overlayY?"below":"above")})}_setPosition(ke){let[Y,X]="before"===this.menu.xPosition?["end","start"]:["start","end"],[he,Me]="above"===this.menu.yPosition?["bottom","top"]:["top","bottom"],[ze,ht]=[he,Me],[it,ft]=[Y,X],nt=0;this.triggersSubmenu()?(ft=Y="before"===this.menu.xPosition?"start":"end",X=it="end"===Y?"start":"end",nt="bottom"===he?8:-8):this.menu.overlapTrigger||(ze="top"===he?"bottom":"top",ht="top"===Me?"bottom":"top"),ke.withPositions([{originX:Y,originY:ze,overlayX:it,overlayY:he,offsetY:nt},{originX:X,originY:ze,overlayX:ft,overlayY:he,offsetY:nt},{originX:Y,originY:ht,overlayX:it,overlayY:Me,offsetY:-nt},{originX:X,originY:ht,overlayX:ft,overlayY:Me,offsetY:-nt}])}_menuClosingActions(){const ke=this._overlayRef.backdropClick(),Y=this._overlayRef.detachments(),X=this._parentMaterialMenu?this._parentMaterialMenu.closed:(0,P.of)(),he=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe((0,S.h)(Me=>Me!==this._menuItemInstance),(0,S.h)(()=>this._menuOpen)):(0,P.of)();return(0,c.T)(ke,X,he,Y)}_handleMousedown(ke){(0,e.X6)(ke)||(this._openedBy=0===ke.button?"mouse":void 0,this.triggersSubmenu()&&ke.preventDefault())}_handleKeydown(ke){const Y=ke.keyCode;(Y===v.K5||Y===v.L_)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(Y===v.SV&&"ltr"===this.dir||Y===v.oh&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(ke){this.triggersSubmenu()?(ke.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe((0,S.h)(ke=>ke===this._menuItemInstance&&!ke.disabled),(0,w.g)(0,o.E)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof Fe&&this.menu._isAnimating?this.menu._animationDone.pipe((0,R.q)(1),(0,w.g)(0,o.E),(0,D.R)(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(){return(!this._portal||this._portal.templateRef!==this.menu.templateRef)&&(this._portal=new G.UE(this.menu.templateRef,this._viewContainerRef)),this._portal}}return ue.\u0275fac=function(ke){return new(ke||ue)(M.Y36(ie.aV),M.Y36(M.SBq),M.Y36(M.s_b),M.Y36(j),M.Y36(J,8),M.Y36(B,10),M.Y36(fe.Is,8),M.Y36(e.tE))},ue.\u0275dir=M.lG2({type:ue,hostAttrs:["aria-haspopup","true"],hostVars:2,hostBindings:function(ke,Y){1&ke&&M.NdJ("click",function(he){return Y._handleClick(he)})("mousedown",function(he){return Y._handleMousedown(he)})("keydown",function(he){return Y._handleKeydown(he)}),2&ke&&M.uIk("aria-expanded",Y.menuOpen||null)("aria-controls",Y.menuOpen?Y.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"],restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}}),ue})(),Ne=(()=>{class ue extends yt{}return ue.\u0275fac=function(){let Te;return function(Y){return(Te||(Te=M.n5z(ue)))(Y||ue)}}(),ue.\u0275dir=M.lG2({type:ue,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-menu-trigger"],exportAs:["matMenuTrigger"],features:[M.qOj]}),ue})(),Ve=(()=>{class ue{}return ue.\u0275fac=function(ke){return new(ke||ue)},ue.\u0275mod=M.oAB({type:ue}),ue.\u0275inj=M.cJS({providers:[Ae],imports:[[W.ez,ee.BQ,ee.si,ie.U8],de.ZD,ee.BQ]}),ue})()},6087:(Ue,K,m)=>{"use strict";m.d(K,{NW:()=>ne,ye:()=>U,TU:()=>se});var e=m(9808),t=m(5e3),v=m(508),M=m(7423),s=m(4107),C=m(7238),c=m(3191),P=m(7579),o=m(7322);function O(oe,y){if(1&oe&&(t.TgZ(0,"mat-option",19),t._uU(1),t.qZA()),2&oe){const i=y.$implicit;t.Q6J("value",i),t.xp6(1),t.hij(" ",i," ")}}function T(oe,y){if(1&oe){const i=t.EpF();t.TgZ(0,"mat-form-field",16),t.TgZ(1,"mat-select",17),t.NdJ("selectionChange",function(p){return t.CHM(i),t.oxw(2)._changePageSize(p.value)}),t.YNc(2,O,2,2,"mat-option",18),t.qZA(),t.qZA()}if(2&oe){const i=t.oxw(2);t.Q6J("appearance",i._formFieldAppearance)("color",i.color),t.xp6(1),t.Q6J("value",i.pageSize)("disabled",i.disabled)("aria-label",i._intl.itemsPerPageLabel),t.xp6(1),t.Q6J("ngForOf",i._displayedPageSizeOptions)}}function R(oe,y){if(1&oe&&(t.TgZ(0,"div",20),t._uU(1),t.qZA()),2&oe){const i=t.oxw(2);t.xp6(1),t.Oqu(i.pageSize)}}function S(oe,y){if(1&oe&&(t.TgZ(0,"div",12),t.TgZ(1,"div",13),t._uU(2),t.qZA(),t.YNc(3,T,3,6,"mat-form-field",14),t.YNc(4,R,2,1,"div",15),t.qZA()),2&oe){const i=t.oxw();t.xp6(2),t.hij(" ",i._intl.itemsPerPageLabel," "),t.xp6(1),t.Q6J("ngIf",i._displayedPageSizeOptions.length>1),t.xp6(1),t.Q6J("ngIf",i._displayedPageSizeOptions.length<=1)}}function D(oe,y){if(1&oe){const i=t.EpF();t.TgZ(0,"button",21),t.NdJ("click",function(){return t.CHM(i),t.oxw().firstPage()}),t.O4$(),t.TgZ(1,"svg",7),t._UZ(2,"path",22),t.qZA(),t.qZA()}if(2&oe){const i=t.oxw();t.Q6J("matTooltip",i._intl.firstPageLabel)("matTooltipDisabled",i._previousButtonsDisabled())("matTooltipPosition","above")("disabled",i._previousButtonsDisabled()),t.uIk("aria-label",i._intl.firstPageLabel)}}function w(oe,y){if(1&oe){const i=t.EpF();t.O4$(),t.kcU(),t.TgZ(0,"button",23),t.NdJ("click",function(){return t.CHM(i),t.oxw().lastPage()}),t.O4$(),t.TgZ(1,"svg",7),t._UZ(2,"path",24),t.qZA(),t.qZA()}if(2&oe){const i=t.oxw();t.Q6J("matTooltip",i._intl.lastPageLabel)("matTooltipDisabled",i._nextButtonsDisabled())("matTooltipPosition","above")("disabled",i._nextButtonsDisabled()),t.uIk("aria-label",i._intl.lastPageLabel)}}let U=(()=>{class oe{constructor(){this.changes=new P.x,this.itemsPerPageLabel="Items per page:",this.nextPageLabel="Next page",this.previousPageLabel="Previous page",this.firstPageLabel="First page",this.lastPageLabel="Last page",this.getRangeLabel=(i,a,p)=>{if(0==p||0==a)return`0 of ${p}`;const u=i*a;return`${u+1} \u2013 ${u<(p=Math.max(p,0))?Math.min(u+a,p):u+a} of ${p}`}}}return oe.\u0275fac=function(i){return new(i||oe)},oe.\u0275prov=t.Yz7({token:oe,factory:oe.\u0275fac,providedIn:"root"}),oe})();const W={provide:U,deps:[[new t.FiY,new t.tp0,U]],useFactory:function(oe){return oe||new U}},_e=new t.OlP("MAT_PAGINATOR_DEFAULT_OPTIONS"),fe=(0,v.Id)((0,v.dB)(class{}));let de=(()=>{class oe extends fe{constructor(i,a,p){if(super(),this._intl=i,this._changeDetectorRef=a,this._pageIndex=0,this._length=0,this._pageSizeOptions=[],this._hidePageSize=!1,this._showFirstLastButtons=!1,this.page=new t.vpe,this._intlChanges=i.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),p){const{pageSize:u,pageSizeOptions:_,hidePageSize:L,showFirstLastButtons:I}=p;null!=u&&(this._pageSize=u),null!=_&&(this._pageSizeOptions=_),null!=L&&(this._hidePageSize=L),null!=I&&(this._showFirstLastButtons=I)}}get pageIndex(){return this._pageIndex}set pageIndex(i){this._pageIndex=Math.max((0,c.su)(i),0),this._changeDetectorRef.markForCheck()}get length(){return this._length}set length(i){this._length=(0,c.su)(i),this._changeDetectorRef.markForCheck()}get pageSize(){return this._pageSize}set pageSize(i){this._pageSize=Math.max((0,c.su)(i),0),this._updateDisplayedPageSizeOptions()}get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(i){this._pageSizeOptions=(i||[]).map(a=>(0,c.su)(a)),this._updateDisplayedPageSizeOptions()}get hidePageSize(){return this._hidePageSize}set hidePageSize(i){this._hidePageSize=(0,c.Ig)(i)}get showFirstLastButtons(){return this._showFirstLastButtons}set showFirstLastButtons(i){this._showFirstLastButtons=(0,c.Ig)(i)}ngOnInit(){this._initialized=!0,this._updateDisplayedPageSizeOptions(),this._markInitialized()}ngOnDestroy(){this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;const i=this.pageIndex;this.pageIndex++,this._emitPageEvent(i)}previousPage(){if(!this.hasPreviousPage())return;const i=this.pageIndex;this.pageIndex--,this._emitPageEvent(i)}firstPage(){if(!this.hasPreviousPage())return;const i=this.pageIndex;this.pageIndex=0,this._emitPageEvent(i)}lastPage(){if(!this.hasNextPage())return;const i=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(i)}hasPreviousPage(){return this.pageIndex>=1&&0!=this.pageSize}hasNextPage(){const i=this.getNumberOfPages()-1;return this.pageIndexi-a),this._changeDetectorRef.markForCheck())}_emitPageEvent(i){this.page.emit({previousPageIndex:i,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}}return oe.\u0275fac=function(i){t.$Z()},oe.\u0275dir=t.lG2({type:oe,inputs:{color:"color",pageIndex:"pageIndex",length:"length",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",hidePageSize:"hidePageSize",showFirstLastButtons:"showFirstLastButtons"},outputs:{page:"page"},features:[t.qOj]}),oe})(),ne=(()=>{class oe extends de{constructor(i,a,p){super(i,a,p),p&&null!=p.formFieldAppearance&&(this._formFieldAppearance=p.formFieldAppearance)}}return oe.\u0275fac=function(i){return new(i||oe)(t.Y36(U),t.Y36(t.sBO),t.Y36(_e,8))},oe.\u0275cmp=t.Xpm({type:oe,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-paginator"],inputs:{disabled:"disabled"},exportAs:["matPaginator"],features:[t.qOj],decls:14,vars:14,consts:[[1,"mat-paginator-outer-container"],[1,"mat-paginator-container"],["class","mat-paginator-page-size",4,"ngIf"],[1,"mat-paginator-range-actions"],[1,"mat-paginator-range-label"],["mat-icon-button","","type","button","class","mat-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-previous",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["viewBox","0 0 24 24","focusable","false",1,"mat-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-next",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","class","mat-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],[1,"mat-paginator-page-size"],[1,"mat-paginator-page-size-label"],["class","mat-paginator-page-size-select",3,"appearance","color",4,"ngIf"],["class","mat-paginator-page-size-value",4,"ngIf"],[1,"mat-paginator-page-size-select",3,"appearance","color"],[3,"value","disabled","aria-label","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"mat-paginator-page-size-value"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button",1,"mat-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,a){1&i&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.YNc(2,S,5,3,"div",2),t.TgZ(3,"div",3),t.TgZ(4,"div",4),t._uU(5),t.qZA(),t.YNc(6,D,3,5,"button",5),t.TgZ(7,"button",6),t.NdJ("click",function(){return a.previousPage()}),t.O4$(),t.TgZ(8,"svg",7),t._UZ(9,"path",8),t.qZA(),t.qZA(),t.kcU(),t.TgZ(10,"button",9),t.NdJ("click",function(){return a.nextPage()}),t.O4$(),t.TgZ(11,"svg",7),t._UZ(12,"path",10),t.qZA(),t.qZA(),t.YNc(13,w,3,5,"button",11),t.qZA(),t.qZA(),t.qZA()),2&i&&(t.xp6(2),t.Q6J("ngIf",!a.hidePageSize),t.xp6(3),t.hij(" ",a._intl.getRangeLabel(a.pageIndex,a.pageSize,a.length)," "),t.xp6(1),t.Q6J("ngIf",a.showFirstLastButtons),t.xp6(1),t.Q6J("matTooltip",a._intl.previousPageLabel)("matTooltipDisabled",a._previousButtonsDisabled())("matTooltipPosition","above")("disabled",a._previousButtonsDisabled()),t.uIk("aria-label",a._intl.previousPageLabel),t.xp6(3),t.Q6J("matTooltip",a._intl.nextPageLabel)("matTooltipDisabled",a._nextButtonsDisabled())("matTooltipPosition","above")("disabled",a._nextButtonsDisabled()),t.uIk("aria-label",a._intl.nextPageLabel),t.xp6(3),t.Q6J("ngIf",a.showFirstLastButtons))},directives:[e.O5,M.lW,C.gM,o.KE,s.gD,e.sg,v.ey],styles:[".mat-paginator{display:block}.mat-paginator-outer-container{display:flex}.mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}.mat-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-paginator-page-size{margin-right:0;margin-left:8px}.mat-paginator-page-size-label{margin:0 4px}.mat-paginator-page-size-select{margin:6px 4px 0 4px;width:56px}.mat-paginator-page-size-select.mat-form-field-appearance-outline{width:64px}.mat-paginator-page-size-select.mat-form-field-appearance-fill{width:64px}.mat-paginator-range-label{margin:0 32px 0 24px}.mat-paginator-range-actions{display:flex;align-items:center}.mat-paginator-icon{width:28px;fill:currentColor}[dir=rtl] .mat-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-paginator-icon{fill:CanvasText}\n"],encapsulation:2,changeDetection:0}),oe})(),se=(()=>{class oe{}return oe.\u0275fac=function(i){return new(i||oe)},oe.\u0275mod=t.oAB({type:oe}),oe.\u0275inj=t.cJS({providers:[W],imports:[[e.ez,M.ot,s.LD,C.AV,v.BQ]]}),oe})()},5899:(Ue,K,m)=>{"use strict";m.d(K,{pW:()=>w,Cv:()=>G});var e=m(5e3),t=m(9808),v=m(508),M=m(3191),s=m(6360),C=m(727),c=m(4968),P=m(9300);const o=["primaryValueBar"],O=(0,v.pj)(class{constructor(W){this._elementRef=W}},"primary"),T=new e.OlP("mat-progress-bar-location",{providedIn:"root",factory:function(){const W=(0,e.f3M)(t.K0),ee=W?W.location:null;return{getPathname:()=>ee?ee.pathname+ee.search:""}}}),S=new e.OlP("MAT_PROGRESS_BAR_DEFAULT_OPTIONS");let D=0,w=(()=>{class W extends O{constructor(ie,_e,fe,de,ne){super(ie),this._ngZone=_e,this._animationMode=fe,this._isNoopAnimation=!1,this._value=0,this._bufferValue=0,this.animationEnd=new e.vpe,this._animationEndSubscription=C.w0.EMPTY,this.mode="determinate",this.progressbarId="mat-progress-bar-"+D++;const se=de?de.getPathname().split("#")[0]:"";this._rectangleFillValue=`url('${se}#${this.progressbarId}')`,this._isNoopAnimation="NoopAnimations"===fe,ne&&(ne.color&&(this.color=this.defaultColor=ne.color),this.mode=ne.mode||this.mode)}get value(){return this._value}set value(ie){this._value=U((0,M.su)(ie)||0)}get bufferValue(){return this._bufferValue}set bufferValue(ie){this._bufferValue=U(ie||0)}_primaryTransform(){return{transform:`scale3d(${this.value/100}, 1, 1)`}}_bufferTransform(){return"buffer"===this.mode?{transform:`scale3d(${this.bufferValue/100}, 1, 1)`}:null}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{const ie=this._primaryValueBar.nativeElement;this._animationEndSubscription=(0,c.R)(ie,"transitionend").pipe((0,P.h)(_e=>_e.target===ie)).subscribe(()=>{("determinate"===this.mode||"buffer"===this.mode)&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))})})}ngOnDestroy(){this._animationEndSubscription.unsubscribe()}}return W.\u0275fac=function(ie){return new(ie||W)(e.Y36(e.SBq),e.Y36(e.R0b),e.Y36(s.Qb,8),e.Y36(T,8),e.Y36(S,8))},W.\u0275cmp=e.Xpm({type:W,selectors:[["mat-progress-bar"]],viewQuery:function(ie,_e){if(1&ie&&e.Gf(o,5),2&ie){let fe;e.iGM(fe=e.CRH())&&(_e._primaryValueBar=fe.first)}},hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-progress-bar"],hostVars:4,hostBindings:function(ie,_e){2&ie&&(e.uIk("aria-valuenow","indeterminate"===_e.mode||"query"===_e.mode?null:_e.value)("mode",_e.mode),e.ekj("_mat-animation-noopable",_e._isNoopAnimation))},inputs:{color:"color",value:"value",bufferValue:"bufferValue",mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],features:[e.qOj],decls:10,vars:4,consts:[["aria-hidden","true"],["width","100%","height","4","focusable","false",1,"mat-progress-bar-background","mat-progress-bar-element"],["x","4","y","0","width","8","height","4","patternUnits","userSpaceOnUse",3,"id"],["cx","2","cy","2","r","2"],["width","100%","height","100%"],[1,"mat-progress-bar-buffer","mat-progress-bar-element",3,"ngStyle"],[1,"mat-progress-bar-primary","mat-progress-bar-fill","mat-progress-bar-element",3,"ngStyle"],["primaryValueBar",""],[1,"mat-progress-bar-secondary","mat-progress-bar-fill","mat-progress-bar-element"]],template:function(ie,_e){1&ie&&(e.TgZ(0,"div",0),e.O4$(),e.TgZ(1,"svg",1),e.TgZ(2,"defs"),e.TgZ(3,"pattern",2),e._UZ(4,"circle",3),e.qZA(),e.qZA(),e._UZ(5,"rect",4),e.qZA(),e.kcU(),e._UZ(6,"div",5),e._UZ(7,"div",6,7),e._UZ(9,"div",8),e.qZA()),2&ie&&(e.xp6(3),e.Q6J("id",_e.progressbarId),e.xp6(2),e.uIk("fill",_e._rectangleFillValue),e.xp6(1),e.Q6J("ngStyle",_e._bufferTransform()),e.xp6(1),e.Q6J("ngStyle",_e._primaryTransform()))},directives:[t.PC],styles:['.mat-progress-bar{display:block;height:4px;overflow:hidden;position:relative;transition:opacity 250ms linear;width:100%}._mat-animation-noopable.mat-progress-bar{transition:none;animation:none}.mat-progress-bar .mat-progress-bar-element,.mat-progress-bar .mat-progress-bar-fill::after{height:100%;position:absolute;width:100%}.mat-progress-bar .mat-progress-bar-background{width:calc(100% + 10px)}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-background{display:none}.mat-progress-bar .mat-progress-bar-buffer{transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-buffer{border-top:solid 5px;opacity:.5}.mat-progress-bar .mat-progress-bar-secondary{display:none}.mat-progress-bar .mat-progress-bar-fill{animation:none;transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-fill{border-top:solid 4px}.mat-progress-bar .mat-progress-bar-fill::after{animation:none;content:"";display:inline-block;left:0}.mat-progress-bar[dir=rtl],[dir=rtl] .mat-progress-bar{transform:rotateY(180deg)}.mat-progress-bar[mode=query]{transform:rotateZ(180deg)}.mat-progress-bar[mode=query][dir=rtl],[dir=rtl] .mat-progress-bar[mode=query]{transform:rotateZ(180deg) rotateY(180deg)}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-fill,.mat-progress-bar[mode=query] .mat-progress-bar-fill{transition:none}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary,.mat-progress-bar[mode=query] .mat-progress-bar-primary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-translate 2000ms infinite linear;left:-145.166611%}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-primary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary,.mat-progress-bar[mode=query] .mat-progress-bar-secondary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-translate 2000ms infinite linear;left:-54.888891%;display:block}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-secondary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=buffer] .mat-progress-bar-background{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-background-scroll 250ms infinite linear;display:block}.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-buffer,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-background{animation:none;transition-duration:1ms}@keyframes mat-progress-bar-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mat-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mat-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-background-scroll{to{transform:translateX(-8px)}}\n'],encapsulation:2,changeDetection:0}),W})();function U(W,ee=0,ie=100){return Math.max(ee,Math.min(ie,W))}let G=(()=>{class W{}return W.\u0275fac=function(ie){return new(ie||W)},W.\u0275mod=e.oAB({type:W}),W.\u0275inj=e.cJS({imports:[[t.ez,v.BQ],v.BQ]}),W})()},773:(Ue,K,m)=>{"use strict";m.d(K,{Cq:()=>ie,$g:()=>ee});var e=m(5e3),t=m(9808),v=m(508),M=m(3191),s=m(925),C=m(6360);function c(_e,fe){if(1&_e&&(e.O4$(),e._UZ(0,"circle",3)),2&_e){const de=e.oxw();e.Udp("animation-name","mat-progress-spinner-stroke-rotate-"+de._spinnerAnimationLabel)("stroke-dashoffset",de._getStrokeDashOffset(),"px")("stroke-dasharray",de._getStrokeCircumference(),"px")("stroke-width",de._getCircleStrokeWidth(),"%"),e.uIk("r",de._getCircleRadius())}}function P(_e,fe){if(1&_e&&(e.O4$(),e._UZ(0,"circle",3)),2&_e){const de=e.oxw();e.Udp("stroke-dashoffset",de._getStrokeDashOffset(),"px")("stroke-dasharray",de._getStrokeCircumference(),"px")("stroke-width",de._getCircleStrokeWidth(),"%"),e.uIk("r",de._getCircleRadius())}}function o(_e,fe){if(1&_e&&(e.O4$(),e._UZ(0,"circle",3)),2&_e){const de=e.oxw();e.Udp("animation-name","mat-progress-spinner-stroke-rotate-"+de._spinnerAnimationLabel)("stroke-dashoffset",de._getStrokeDashOffset(),"px")("stroke-dasharray",de._getStrokeCircumference(),"px")("stroke-width",de._getCircleStrokeWidth(),"%"),e.uIk("r",de._getCircleRadius())}}function O(_e,fe){if(1&_e&&(e.O4$(),e._UZ(0,"circle",3)),2&_e){const de=e.oxw();e.Udp("stroke-dashoffset",de._getStrokeDashOffset(),"px")("stroke-dasharray",de._getStrokeCircumference(),"px")("stroke-width",de._getCircleStrokeWidth(),"%"),e.uIk("r",de._getCircleRadius())}}const D=(0,v.pj)(class{constructor(_e){this._elementRef=_e}},"primary"),w=new e.OlP("mat-progress-spinner-default-options",{providedIn:"root",factory:function(){return{diameter:100}}});class W extends D{constructor(fe,de,ne,se,oe){super(fe),this._document=ne,this._diameter=100,this._value=0,this.mode="determinate";const y=W._diameters;this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),y.has(ne.head)||y.set(ne.head,new Set([100])),this._noopAnimations="NoopAnimations"===se&&!!oe&&!oe._forceAnimations,oe&&(oe.diameter&&(this.diameter=oe.diameter),oe.strokeWidth&&(this.strokeWidth=oe.strokeWidth))}get diameter(){return this._diameter}set diameter(fe){this._diameter=(0,M.su)(fe),this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),this._styleRoot&&this._attachStyleNode()}get strokeWidth(){return this._strokeWidth||this.diameter/10}set strokeWidth(fe){this._strokeWidth=(0,M.su)(fe)}get value(){return"determinate"===this.mode?this._value:0}set value(fe){this._value=Math.max(0,Math.min(100,(0,M.su)(fe)))}ngOnInit(){const fe=this._elementRef.nativeElement;this._styleRoot=(0,s.kV)(fe)||this._document.head,this._attachStyleNode(),fe.classList.add("mat-progress-spinner-indeterminate-animation")}_getCircleRadius(){return(this.diameter-10)/2}_getViewBox(){const fe=2*this._getCircleRadius()+this.strokeWidth;return`0 0 ${fe} ${fe}`}_getStrokeCircumference(){return 2*Math.PI*this._getCircleRadius()}_getStrokeDashOffset(){return"determinate"===this.mode?this._getStrokeCircumference()*(100-this._value)/100:null}_getCircleStrokeWidth(){return this.strokeWidth/this.diameter*100}_attachStyleNode(){const fe=this._styleRoot,de=this._diameter,ne=W._diameters;let se=ne.get(fe);if(!se||!se.has(de)){const oe=this._document.createElement("style");oe.setAttribute("mat-spinner-animation",this._spinnerAnimationLabel),oe.textContent=this._getAnimationText(),fe.appendChild(oe),se||(se=new Set,ne.set(fe,se)),se.add(de)}}_getAnimationText(){const fe=this._getStrokeCircumference();return"\n @keyframes mat-progress-spinner-stroke-rotate-DIAMETER {\n 0% { stroke-dashoffset: START_VALUE; transform: rotate(0); }\n 12.5% { stroke-dashoffset: END_VALUE; transform: rotate(0); }\n 12.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n 25% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n\n 25.0001% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); }\n 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); }\n 37.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n 50% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n\n 50.0001% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); }\n 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); }\n 62.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n 75% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n\n 75.0001% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); }\n 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); }\n 87.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n }\n".replace(/START_VALUE/g,""+.95*fe).replace(/END_VALUE/g,""+.2*fe).replace(/DIAMETER/g,`${this._spinnerAnimationLabel}`)}_getSpinnerAnimationLabel(){return this.diameter.toString().replace(".","_")}}W._diameters=new WeakMap,W.\u0275fac=function(fe){return new(fe||W)(e.Y36(e.SBq),e.Y36(s.t4),e.Y36(t.K0,8),e.Y36(C.Qb,8),e.Y36(w))},W.\u0275cmp=e.Xpm({type:W,selectors:[["mat-progress-spinner"]],hostAttrs:["role","progressbar","tabindex","-1",1,"mat-progress-spinner"],hostVars:10,hostBindings:function(fe,de){2&fe&&(e.uIk("aria-valuemin","determinate"===de.mode?0:null)("aria-valuemax","determinate"===de.mode?100:null)("aria-valuenow","determinate"===de.mode?de.value:null)("mode",de.mode),e.Udp("width",de.diameter,"px")("height",de.diameter,"px"),e.ekj("_mat-animation-noopable",de._noopAnimations))},inputs:{color:"color",diameter:"diameter",strokeWidth:"strokeWidth",mode:"mode",value:"value"},exportAs:["matProgressSpinner"],features:[e.qOj],decls:3,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function(fe,de){1&fe&&(e.O4$(),e.TgZ(0,"svg",0),e.YNc(1,c,1,9,"circle",1),e.YNc(2,P,1,7,"circle",2),e.qZA()),2&fe&&(e.Udp("width",de.diameter,"px")("height",de.diameter,"px"),e.Q6J("ngSwitch","indeterminate"===de.mode),e.uIk("viewBox",de._getViewBox()),e.xp6(1),e.Q6J("ngSwitchCase",!0),e.xp6(1),e.Q6J("ngSwitchCase",!1))},directives:[t.RF,t.n9],styles:[".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\n"],encapsulation:2,changeDetection:0});let ee=(()=>{class _e extends W{constructor(de,ne,se,oe,y){super(de,ne,se,oe,y),this.mode="indeterminate"}}return _e.\u0275fac=function(de){return new(de||_e)(e.Y36(e.SBq),e.Y36(s.t4),e.Y36(t.K0,8),e.Y36(C.Qb,8),e.Y36(w))},_e.\u0275cmp=e.Xpm({type:_e,selectors:[["mat-spinner"]],hostAttrs:["role","progressbar","mode","indeterminate",1,"mat-spinner","mat-progress-spinner"],hostVars:6,hostBindings:function(de,ne){2&de&&(e.Udp("width",ne.diameter,"px")("height",ne.diameter,"px"),e.ekj("_mat-animation-noopable",ne._noopAnimations))},inputs:{color:"color"},features:[e.qOj],decls:3,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function(de,ne){1&de&&(e.O4$(),e.TgZ(0,"svg",0),e.YNc(1,o,1,9,"circle",1),e.YNc(2,O,1,7,"circle",2),e.qZA()),2&de&&(e.Udp("width",ne.diameter,"px")("height",ne.diameter,"px"),e.Q6J("ngSwitch","indeterminate"===ne.mode),e.uIk("viewBox",ne._getViewBox()),e.xp6(1),e.Q6J("ngSwitchCase",!0),e.xp6(1),e.Q6J("ngSwitchCase",!1))},directives:[t.RF,t.n9],styles:[".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transform-origin:center;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\n"],encapsulation:2,changeDetection:0}),_e})(),ie=(()=>{class _e{}return _e.\u0275fac=function(de){return new(de||_e)},_e.\u0275mod=e.oAB({type:_e}),_e.\u0275inj=e.cJS({imports:[[v.BQ,t.ez],v.BQ]}),_e})()},9814:(Ue,K,m)=>{"use strict";m.d(K,{U0:()=>fe,VQ:()=>W,Fk:()=>de});var e=m(5e3),t=m(508),v=m(3191),M=m(3075),s=m(6360),C=m(5664),c=m(449);const P=["input"],o=function(ne){return{enterDuration:ne}},O=["*"],T=new e.OlP("mat-radio-default-options",{providedIn:"root",factory:function(){return{color:"accent"}}});let S=0;const D={provide:M.JU,useExisting:(0,e.Gpc)(()=>W),multi:!0};class w{constructor(se,oe){this.source=se,this.value=oe}}const U=new e.OlP("MatRadioGroup");let G=(()=>{class ne{constructor(oe){this._changeDetector=oe,this._value=null,this._name="mat-radio-group-"+S++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new e.vpe}get name(){return this._name}set name(oe){this._name=oe,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(oe){this._labelPosition="before"===oe?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(oe){this._value!==oe&&(this._value=oe,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(oe){this._selected=oe,this.value=oe?oe.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(oe){this._disabled=(0,v.Ig)(oe),this._markRadiosForCheck()}get required(){return this._required}set required(oe){this._required=(0,v.Ig)(oe),this._markRadiosForCheck()}ngAfterContentInit(){this._isInitialized=!0}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(oe=>{oe.name=this.name,oe._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(y=>{y.checked=this.value===y.value,y.checked&&(this._selected=y)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new w(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(oe=>oe._markForCheck())}writeValue(oe){this.value=oe,this._changeDetector.markForCheck()}registerOnChange(oe){this._controlValueAccessorChangeFn=oe}registerOnTouched(oe){this.onTouched=oe}setDisabledState(oe){this.disabled=oe,this._changeDetector.markForCheck()}}return ne.\u0275fac=function(oe){return new(oe||ne)(e.Y36(e.sBO))},ne.\u0275dir=e.lG2({type:ne,inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:"disabled",required:"required"},outputs:{change:"change"}}),ne})(),W=(()=>{class ne extends G{}return ne.\u0275fac=function(){let se;return function(y){return(se||(se=e.n5z(ne)))(y||ne)}}(),ne.\u0275dir=e.lG2({type:ne,selectors:[["mat-radio-group"]],contentQueries:function(oe,y,i){if(1&oe&&e.Suo(i,fe,5),2&oe){let a;e.iGM(a=e.CRH())&&(y._radios=a)}},hostAttrs:["role","radiogroup",1,"mat-radio-group"],exportAs:["matRadioGroup"],features:[e._Bn([D,{provide:U,useExisting:ne}]),e.qOj]}),ne})();class ee{constructor(se){this._elementRef=se}}const ie=(0,t.Kr)((0,t.sb)(ee));let _e=(()=>{class ne extends ie{constructor(oe,y,i,a,p,u,_,L){super(y),this._changeDetector=i,this._focusMonitor=a,this._radioDispatcher=p,this._providerOverride=_,this._uniqueId="mat-radio-"+ ++S,this.id=this._uniqueId,this.change=new e.vpe,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this.radioGroup=oe,this._noopAnimations="NoopAnimations"===u,L&&(this.tabIndex=(0,v.su)(L,0)),this._removeUniqueSelectionListener=p.listen((I,x)=>{I!==this.id&&x===this.name&&(this.checked=!1)})}get checked(){return this._checked}set checked(oe){const y=(0,v.Ig)(oe);this._checked!==y&&(this._checked=y,y&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!y&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),y&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(oe){this._value!==oe&&(this._value=oe,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===oe),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(oe){this._labelPosition=oe}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(oe){this._setDisabled((0,v.Ig)(oe))}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(oe){this._required=(0,v.Ig)(oe)}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"}set color(oe){this._color=oe}get inputId(){return`${this.id||this._uniqueId}-input`}focus(oe,y){y?this._focusMonitor.focusVia(this._inputElement,y,oe):this._inputElement.nativeElement.focus(oe)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(oe=>{!oe&&this.radioGroup&&this.radioGroup._touch()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new w(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputClick(oe){oe.stopPropagation()}_onInputInteraction(oe){if(oe.stopPropagation(),!this.checked&&!this.disabled){const y=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),y&&this.radioGroup._emitChangeEvent())}}_setDisabled(oe){this._disabled!==oe&&(this._disabled=oe,this._changeDetector.markForCheck())}}return ne.\u0275fac=function(oe){e.$Z()},ne.\u0275dir=e.lG2({type:ne,viewQuery:function(oe,y){if(1&oe&&e.Gf(P,5),2&oe){let i;e.iGM(i=e.CRH())&&(y._inputElement=i.first)}},inputs:{id:"id",name:"name",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],checked:"checked",value:"value",labelPosition:"labelPosition",disabled:"disabled",required:"required",color:"color"},outputs:{change:"change"},features:[e.qOj]}),ne})(),fe=(()=>{class ne extends _e{constructor(oe,y,i,a,p,u,_,L){super(oe,y,i,a,p,u,_,L)}}return ne.\u0275fac=function(oe){return new(oe||ne)(e.Y36(U,8),e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(C.tE),e.Y36(c.A8),e.Y36(s.Qb,8),e.Y36(T,8),e.$8M("tabindex"))},ne.\u0275cmp=e.Xpm({type:ne,selectors:[["mat-radio-button"]],hostAttrs:[1,"mat-radio-button"],hostVars:17,hostBindings:function(oe,y){1&oe&&e.NdJ("focus",function(){return y._inputElement.nativeElement.focus()}),2&oe&&(e.uIk("tabindex",null)("id",y.id)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),e.ekj("mat-radio-checked",y.checked)("mat-radio-disabled",y.disabled)("_mat-animation-noopable",y._noopAnimations)("mat-primary","primary"===y.color)("mat-accent","accent"===y.color)("mat-warn","warn"===y.color))},inputs:{disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matRadioButton"],features:[e.qOj],ngContentSelectors:O,decls:13,vars:20,consts:[[1,"mat-radio-label"],["label",""],[1,"mat-radio-container"],[1,"mat-radio-outer-circle"],[1,"mat-radio-inner-circle"],["type","radio",1,"mat-radio-input","cdk-visually-hidden",3,"id","checked","disabled","tabIndex","required","change","click"],["input",""],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered","matRippleRadius","matRippleAnimation"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mat-radio-label-content"],[2,"display","none"]],template:function(oe,y){if(1&oe&&(e.F$t(),e.TgZ(0,"label",0,1),e.TgZ(2,"span",2),e._UZ(3,"span",3),e._UZ(4,"span",4),e.TgZ(5,"input",5,6),e.NdJ("change",function(a){return y._onInputInteraction(a)})("click",function(a){return y._onInputClick(a)}),e.qZA(),e.TgZ(7,"span",7),e._UZ(8,"span",8),e.qZA(),e.qZA(),e.TgZ(9,"span",9),e.TgZ(10,"span",10),e._uU(11,"\xa0"),e.qZA(),e.Hsn(12),e.qZA(),e.qZA()),2&oe){const i=e.MAs(1);e.uIk("for",y.inputId),e.xp6(5),e.Q6J("id",y.inputId)("checked",y.checked)("disabled",y.disabled)("tabIndex",y.tabIndex)("required",y.required),e.uIk("name",y.name)("value",y.value)("aria-label",y.ariaLabel)("aria-labelledby",y.ariaLabelledby)("aria-describedby",y.ariaDescribedby),e.xp6(2),e.Q6J("matRippleTrigger",i)("matRippleDisabled",y._isRippleDisabled())("matRippleCentered",!0)("matRippleRadius",20)("matRippleAnimation",e.VKq(18,o,y._noopAnimations?0:150)),e.xp6(2),e.ekj("mat-radio-label-before","before"==y.labelPosition)}},directives:[t.wG],styles:[".mat-radio-button{display:inline-block;-webkit-tap-highlight-color:transparent;outline:0}.mat-radio-label{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%}.mat-radio-container{box-sizing:border-box;display:inline-block;position:relative;width:20px;height:20px;flex-shrink:0}.mat-radio-outer-circle{box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;transition:border-color ease 280ms;width:20px;border-width:2px;border-style:solid;border-radius:50%}._mat-animation-noopable .mat-radio-outer-circle{transition:none}.mat-radio-inner-circle{border-radius:50%;box-sizing:border-box;display:block;height:20px;left:0;position:absolute;top:0;opacity:0;transition:transform ease 280ms,background-color ease 280ms,opacity linear 1ms 280ms;width:20px;transform:scale(0.001);-webkit-print-color-adjust:exact;color-adjust:exact}.mat-radio-checked .mat-radio-inner-circle{transform:scale(0.5);opacity:1;transition:transform ease 280ms,background-color ease 280ms}.cdk-high-contrast-active .mat-radio-checked .mat-radio-inner-circle{border:solid 10px}._mat-animation-noopable .mat-radio-inner-circle{transition:none}.mat-radio-label-content{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;display:inline-block;order:0;line-height:inherit;padding-left:8px;padding-right:0}[dir=rtl] .mat-radio-label-content{padding-right:8px;padding-left:0}.mat-radio-label-content.mat-radio-label-before{order:-1;padding-left:0;padding-right:8px}[dir=rtl] .mat-radio-label-content.mat-radio-label-before{padding-right:0;padding-left:8px}.mat-radio-disabled,.mat-radio-disabled .mat-radio-label{cursor:default}.mat-radio-button .mat-radio-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-radio-button .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple){opacity:.16}.mat-radio-persistent-ripple{width:100%;height:100%;transform:none;top:0;left:0}.mat-radio-container:hover .mat-radio-persistent-ripple{opacity:.04}.mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-persistent-ripple,.mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-persistent-ripple{opacity:.12}.mat-radio-persistent-ripple,.mat-radio-disabled .mat-radio-container:hover .mat-radio-persistent-ripple{opacity:0}@media(hover: none){.mat-radio-container:hover .mat-radio-persistent-ripple{display:none}}.mat-radio-input{bottom:0;left:50%}.cdk-high-contrast-active .mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-ripple,.cdk-high-contrast-active .mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-ripple{outline:solid 3px}.cdk-high-contrast-active .mat-radio-disabled{opacity:.5}\n"],encapsulation:2,changeDetection:0}),ne})(),de=(()=>{class ne{}return ne.\u0275fac=function(oe){return new(oe||ne)},ne.\u0275mod=e.oAB({type:ne}),ne.\u0275inj=e.cJS({imports:[[t.si,t.BQ],t.BQ]}),ne})()},4107:(Ue,K,m)=>{"use strict";m.d(K,{gD:()=>Ve,LD:()=>ue,$L:()=>yt});var e=m(9776),t=m(9808),v=m(5e3),M=m(508),s=m(7322),C=m(5303),c=m(5664),P=m(3191),o=m(449),O=m(1159),T=m(3075),R=m(7579),S=m(9770),D=m(6451),w=m(8675),U=m(3900),G=m(5698),W=m(9300),ee=m(4004),ie=m(1884),_e=m(2722),fe=m(1777),de=m(226);const ne=["trigger"],se=["panel"];function oe(Te,ke){if(1&Te&&(v.TgZ(0,"span",8),v._uU(1),v.qZA()),2&Te){const Y=v.oxw();v.xp6(1),v.Oqu(Y.placeholder)}}function y(Te,ke){if(1&Te&&(v.TgZ(0,"span",12),v._uU(1),v.qZA()),2&Te){const Y=v.oxw(2);v.xp6(1),v.Oqu(Y.triggerValue)}}function i(Te,ke){1&Te&&v.Hsn(0,0,["*ngSwitchCase","true"])}function a(Te,ke){if(1&Te&&(v.TgZ(0,"span",9),v.YNc(1,y,2,1,"span",10),v.YNc(2,i,1,0,"ng-content",11),v.qZA()),2&Te){const Y=v.oxw();v.Q6J("ngSwitch",!!Y.customTrigger),v.xp6(2),v.Q6J("ngSwitchCase",!0)}}function p(Te,ke){if(1&Te){const Y=v.EpF();v.TgZ(0,"div",13),v.TgZ(1,"div",14,15),v.NdJ("@transformPanel.done",function(he){return v.CHM(Y),v.oxw()._panelDoneAnimatingStream.next(he.toState)})("keydown",function(he){return v.CHM(Y),v.oxw()._handleKeydown(he)}),v.Hsn(3,1),v.qZA(),v.qZA()}if(2&Te){const Y=v.oxw();v.Q6J("@transformPanelWrap",void 0),v.xp6(1),v.Gre("mat-select-panel ",Y._getPanelTheme(),""),v.Udp("transform-origin",Y._transformOrigin)("font-size",Y._triggerFontSize,"px"),v.Q6J("ngClass",Y.panelClass)("@transformPanel",Y.multiple?"showing-multiple":"showing"),v.uIk("id",Y.id+"-panel")("aria-multiselectable",Y.multiple)("aria-label",Y.ariaLabel||null)("aria-labelledby",Y._getPanelAriaLabelledby())}}const u=[[["mat-select-trigger"]],"*"],_=["mat-select-trigger","*"],L={transformPanelWrap:(0,fe.X$)("transformPanelWrap",[(0,fe.eR)("* => void",(0,fe.IO)("@transformPanel",[(0,fe.pV)()],{optional:!0}))]),transformPanel:(0,fe.X$)("transformPanel",[(0,fe.SB)("void",(0,fe.oB)({transform:"scaleY(0.8)",minWidth:"100%",opacity:0})),(0,fe.SB)("showing",(0,fe.oB)({opacity:1,minWidth:"calc(100% + 32px)",transform:"scaleY(1)"})),(0,fe.SB)("showing-multiple",(0,fe.oB)({opacity:1,minWidth:"calc(100% + 64px)",transform:"scaleY(1)"})),(0,fe.eR)("void => *",(0,fe.jt)("120ms cubic-bezier(0, 0, 0.2, 1)")),(0,fe.eR)("* => void",(0,fe.jt)("100ms 25ms linear",(0,fe.oB)({opacity:0})))])};let b=0;const J=256,Fe=new v.OlP("mat-select-scroll-strategy"),j=new v.OlP("MAT_SELECT_CONFIG"),we={provide:Fe,deps:[e.aV],useFactory:function(Te){return()=>Te.scrollStrategies.reposition()}};class Ae{constructor(ke,Y){this.source=ke,this.value=Y}}const le=(0,M.Kr)((0,M.sb)((0,M.Id)((0,M.FD)(class{constructor(Te,ke,Y,X,he){this._elementRef=Te,this._defaultErrorStateMatcher=ke,this._parentForm=Y,this._parentFormGroup=X,this.ngControl=he}})))),We=new v.OlP("MatSelectTrigger");let yt=(()=>{class Te{}return Te.\u0275fac=function(Y){return new(Y||Te)},Te.\u0275dir=v.lG2({type:Te,selectors:[["mat-select-trigger"]],features:[v._Bn([{provide:We,useExisting:Te}])]}),Te})(),Ne=(()=>{class Te extends le{constructor(Y,X,he,Me,ze,ht,it,ft,nt,st,wt,Bt,Nt,Vt){var Oi,jt,ti;super(ze,Me,it,ft,st),this._viewportRuler=Y,this._changeDetectorRef=X,this._ngZone=he,this._dir=ht,this._parentFormField=nt,this._liveAnnouncer=Nt,this._defaultOptions=Vt,this._panelOpen=!1,this._compareWith=(Pi,si)=>Pi===si,this._uid="mat-select-"+b++,this._triggerAriaLabelledBy=null,this._destroy=new R.x,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+b++,this._panelDoneAnimatingStream=new R.x,this._overlayPanelClass=(null===(Oi=this._defaultOptions)||void 0===Oi?void 0:Oi.overlayPanelClass)||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=null!==(ti=null===(jt=this._defaultOptions)||void 0===jt?void 0:jt.disableOptionCentering)&&void 0!==ti&&ti,this.ariaLabel="",this.optionSelectionChanges=(0,S.P)(()=>{const Pi=this.options;return Pi?Pi.changes.pipe((0,w.O)(Pi),(0,U.w)(()=>(0,D.T)(...Pi.map(si=>si.onSelectionChange)))):this._ngZone.onStable.pipe((0,G.q)(1),(0,U.w)(()=>this.optionSelectionChanges))}),this.openedChange=new v.vpe,this._openedStream=this.openedChange.pipe((0,W.h)(Pi=>Pi),(0,ee.U)(()=>{})),this._closedStream=this.openedChange.pipe((0,W.h)(Pi=>!Pi),(0,ee.U)(()=>{})),this.selectionChange=new v.vpe,this.valueChange=new v.vpe,this.ngControl&&(this.ngControl.valueAccessor=this),null!=(null==Vt?void 0:Vt.typeaheadDebounceInterval)&&(this._typeaheadDebounceInterval=Vt.typeaheadDebounceInterval),this._scrollStrategyFactory=Bt,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(wt)||0,this.id=this.id}get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(Y){this._placeholder=Y,this.stateChanges.next()}get required(){var Y,X,he,Me;return null!==(Me=null!==(Y=this._required)&&void 0!==Y?Y:null===(he=null===(X=this.ngControl)||void 0===X?void 0:X.control)||void 0===he?void 0:he.hasValidator(T.kI.required))&&void 0!==Me&&Me}set required(Y){this._required=(0,P.Ig)(Y),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(Y){this._multiple=(0,P.Ig)(Y)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(Y){this._disableOptionCentering=(0,P.Ig)(Y)}get compareWith(){return this._compareWith}set compareWith(Y){this._compareWith=Y,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(Y){(Y!==this._value||this._multiple&&Array.isArray(Y))&&(this.options&&this._setSelectionByValue(Y),this._value=Y)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(Y){this._typeaheadDebounceInterval=(0,P.su)(Y)}get id(){return this._id}set id(Y){this._id=Y||this._uid,this.stateChanges.next()}ngOnInit(){this._selectionModel=new o.Ov(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe((0,ie.x)(),(0,_e.R)(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe((0,_e.R)(this._destroy)).subscribe(Y=>{Y.added.forEach(X=>X.select()),Y.removed.forEach(X=>X.deselect())}),this.options.changes.pipe((0,w.O)(null),(0,_e.R)(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const Y=this._getTriggerAriaLabelledby();if(Y!==this._triggerAriaLabelledBy){const X=this._elementRef.nativeElement;this._triggerAriaLabelledBy=Y,Y?X.setAttribute("aria-labelledby",Y):X.removeAttribute("aria-labelledby")}this.ngControl&&this.updateErrorState()}ngOnChanges(Y){Y.disabled&&this.stateChanges.next(),Y.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._destroy.next(),this._destroy.complete(),this.stateChanges.complete()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(Y){this.value=Y}registerOnChange(Y){this._onChange=Y}registerOnTouched(Y){this._onTouched=Y}setDisabledState(Y){this.disabled=Y,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){var Y,X;return this.multiple?(null===(Y=this._selectionModel)||void 0===Y?void 0:Y.selected)||[]:null===(X=this._selectionModel)||void 0===X?void 0:X.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const Y=this._selectionModel.selected.map(X=>X.viewValue);return this._isRtl()&&Y.reverse(),Y.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(Y){this.disabled||(this.panelOpen?this._handleOpenKeydown(Y):this._handleClosedKeydown(Y))}_handleClosedKeydown(Y){const X=Y.keyCode,he=X===O.JH||X===O.LH||X===O.oh||X===O.SV,Me=X===O.K5||X===O.L_,ze=this._keyManager;if(!ze.isTyping()&&Me&&!(0,O.Vb)(Y)||(this.multiple||Y.altKey)&&he)Y.preventDefault(),this.open();else if(!this.multiple){const ht=this.selected;ze.onKeydown(Y);const it=this.selected;it&&ht!==it&&this._liveAnnouncer.announce(it.viewValue,1e4)}}_handleOpenKeydown(Y){const X=this._keyManager,he=Y.keyCode,Me=he===O.JH||he===O.LH,ze=X.isTyping();if(Me&&Y.altKey)Y.preventDefault(),this.close();else if(ze||he!==O.K5&&he!==O.L_||!X.activeItem||(0,O.Vb)(Y))if(!ze&&this._multiple&&he===O.A&&Y.ctrlKey){Y.preventDefault();const ht=this.options.some(it=>!it.disabled&&!it.selected);this.options.forEach(it=>{it.disabled||(ht?it.select():it.deselect())})}else{const ht=X.activeItemIndex;X.onKeydown(Y),this._multiple&&Me&&Y.shiftKey&&X.activeItem&&X.activeItemIndex!==ht&&X.activeItem._selectViaInteraction()}else Y.preventDefault(),X.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe((0,G.q)(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this._setSelectionByValue(this.ngControl?this.ngControl.value:this._value),this.stateChanges.next()})}_setSelectionByValue(Y){if(this._selectionModel.selected.forEach(X=>X.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&Y)Array.isArray(Y),Y.forEach(X=>this._selectValue(X)),this._sortValues();else{const X=this._selectValue(Y);X?this._keyManager.updateActiveItem(X):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectValue(Y){const X=this.options.find(he=>{if(this._selectionModel.isSelected(he))return!1;try{return null!=he.value&&this._compareWith(he.value,Y)}catch(Me){return!1}});return X&&this._selectionModel.select(X),X}_initKeyManager(){this._keyManager=new c.s1(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withAllowedModifierKeys(["shiftKey"]),this._keyManager.tabOut.pipe((0,_e.R)(this._destroy)).subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.pipe((0,_e.R)(this._destroy)).subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const Y=(0,D.T)(this.options.changes,this._destroy);this.optionSelectionChanges.pipe((0,_e.R)(Y)).subscribe(X=>{this._onSelect(X.source,X.isUserInput),X.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),(0,D.T)(...this.options.map(X=>X._stateChanges)).pipe((0,_e.R)(Y)).subscribe(()=>{this._changeDetectorRef.markForCheck(),this.stateChanges.next()})}_onSelect(Y,X){const he=this._selectionModel.isSelected(Y);null!=Y.value||this._multiple?(he!==Y.selected&&(Y.selected?this._selectionModel.select(Y):this._selectionModel.deselect(Y)),X&&this._keyManager.setActiveItem(Y),this.multiple&&(this._sortValues(),X&&this.focus())):(Y.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(Y.value)),he!==this._selectionModel.isSelected(Y)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const Y=this.options.toArray();this._selectionModel.sort((X,he)=>this.sortComparator?this.sortComparator(X,he,Y):Y.indexOf(X)-Y.indexOf(he)),this.stateChanges.next()}}_propagateChanges(Y){let X=null;X=this.multiple?this.selected.map(he=>he.value):this.selected?this.selected.value:Y,this._value=X,this.valueChange.emit(X),this._onChange(X),this.selectionChange.emit(this._getChangeEvent(X)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){this._keyManager&&(this.empty?this._keyManager.setFirstItemActive():this._keyManager.setActiveItem(this._selectionModel.selected[0]))}_canOpen(){var Y;return!this._panelOpen&&!this.disabled&&(null===(Y=this.options)||void 0===Y?void 0:Y.length)>0}focus(Y){this._elementRef.nativeElement.focus(Y)}_getPanelAriaLabelledby(){var Y;if(this.ariaLabel)return null;const X=null===(Y=this._parentFormField)||void 0===Y?void 0:Y.getLabelId();return this.ariaLabelledby?(X?X+" ":"")+this.ariaLabelledby:X}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){var Y;if(this.ariaLabel)return null;const X=null===(Y=this._parentFormField)||void 0===Y?void 0:Y.getLabelId();let he=(X?X+" ":"")+this._valueId;return this.ariaLabelledby&&(he+=" "+this.ariaLabelledby),he}_panelDoneAnimating(Y){this.openedChange.emit(Y)}setDescribedByIds(Y){this._ariaDescribedby=Y.join(" ")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}}return Te.\u0275fac=function(Y){return new(Y||Te)(v.Y36(C.rL),v.Y36(v.sBO),v.Y36(v.R0b),v.Y36(M.rD),v.Y36(v.SBq),v.Y36(de.Is,8),v.Y36(T.F,8),v.Y36(T.sg,8),v.Y36(s.G_,8),v.Y36(T.a5,10),v.$8M("tabindex"),v.Y36(Fe),v.Y36(c.Kd),v.Y36(j,8))},Te.\u0275dir=v.lG2({type:Te,viewQuery:function(Y,X){if(1&Y&&(v.Gf(ne,5),v.Gf(se,5),v.Gf(e.pI,5)),2&Y){let he;v.iGM(he=v.CRH())&&(X.trigger=he.first),v.iGM(he=v.CRH())&&(X.panel=he.first),v.iGM(he=v.CRH())&&(X._overlayDir=he.first)}},inputs:{panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[v.qOj,v.TTD]}),Te})(),Ve=(()=>{class Te extends Ne{constructor(){super(...arguments),this._scrollTop=0,this._triggerFontSize=0,this._transformOrigin="top",this._offsetY=0,this._positions=[{originX:"start",originY:"top",overlayX:"start",overlayY:"top"},{originX:"start",originY:"bottom",overlayX:"start",overlayY:"bottom"}]}_calculateOverlayScroll(Y,X,he){const Me=this._getItemHeight();return Math.min(Math.max(0,Me*Y-X+Me/2),he)}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe((0,_e.R)(this._destroy)).subscribe(()=>{this.panelOpen&&(this._triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this._changeDetectorRef.markForCheck())})}open(){super._canOpen()&&(super.open(),this._triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this._triggerFontSize=parseInt(getComputedStyle(this.trigger.nativeElement).fontSize||"0"),this._calculateOverlayPosition(),this._ngZone.onStable.pipe((0,G.q)(1)).subscribe(()=>{this._triggerFontSize&&this._overlayDir.overlayRef&&this._overlayDir.overlayRef.overlayElement&&(this._overlayDir.overlayRef.overlayElement.style.fontSize=`${this._triggerFontSize}px`)}))}_scrollOptionIntoView(Y){const X=(0,M.CB)(Y,this.options,this.optionGroups),he=this._getItemHeight();this.panel.nativeElement.scrollTop=0===Y&&1===X?0:(0,M.jH)((Y+X)*he,he,this.panel.nativeElement.scrollTop,J)}_positioningSettled(){this._calculateOverlayOffsetX(),this.panel.nativeElement.scrollTop=this._scrollTop}_panelDoneAnimating(Y){this.panelOpen?this._scrollTop=0:(this._overlayDir.offsetX=0,this._changeDetectorRef.markForCheck()),super._panelDoneAnimating(Y)}_getChangeEvent(Y){return new Ae(this,Y)}_calculateOverlayOffsetX(){const Y=this._overlayDir.overlayRef.overlayElement.getBoundingClientRect(),X=this._viewportRuler.getViewportSize(),he=this._isRtl(),Me=this.multiple?56:32;let ze;if(this.multiple)ze=40;else if(this.disableOptionCentering)ze=16;else{let ft=this._selectionModel.selected[0]||this.options.first;ze=ft&&ft.group?32:16}he||(ze*=-1);const ht=0-(Y.left+ze-(he?Me:0)),it=Y.right+ze-X.width+(he?0:Me);ht>0?ze+=ht+8:it>0&&(ze-=it+8),this._overlayDir.offsetX=Math.round(ze),this._overlayDir.overlayRef.updatePosition()}_calculateOverlayOffsetY(Y,X,he){const Me=this._getItemHeight(),ze=(Me-this._triggerRect.height)/2,ht=Math.floor(J/Me);let it;return this.disableOptionCentering?0:(it=0===this._scrollTop?Y*Me:this._scrollTop===he?(Y-(this._getItemCount()-ht))*Me+(Me-(this._getItemCount()*Me-J)%Me):X-Me/2,Math.round(-1*it-ze))}_checkOverlayWithinViewport(Y){const X=this._getItemHeight(),he=this._viewportRuler.getViewportSize(),Me=this._triggerRect.top-8,ze=he.height-this._triggerRect.bottom-8,ht=Math.abs(this._offsetY),ft=Math.min(this._getItemCount()*X,J)-ht-this._triggerRect.height;ft>ze?this._adjustPanelUp(ft,ze):ht>Me?this._adjustPanelDown(ht,Me,Y):this._transformOrigin=this._getOriginBasedOnOption()}_adjustPanelUp(Y,X){const he=Math.round(Y-X);this._scrollTop-=he,this._offsetY-=he,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop<=0&&(this._scrollTop=0,this._offsetY=0,this._transformOrigin="50% bottom 0px")}_adjustPanelDown(Y,X,he){const Me=Math.round(Y-X);if(this._scrollTop+=Me,this._offsetY+=Me,this._transformOrigin=this._getOriginBasedOnOption(),this._scrollTop>=he)return this._scrollTop=he,this._offsetY=0,void(this._transformOrigin="50% top 0px")}_calculateOverlayPosition(){const Y=this._getItemHeight(),X=this._getItemCount(),he=Math.min(X*Y,J),ze=X*Y-he;let ht;ht=this.empty?0:Math.max(this.options.toArray().indexOf(this._selectionModel.selected[0]),0),ht+=(0,M.CB)(ht,this.options,this.optionGroups);const it=he/2;this._scrollTop=this._calculateOverlayScroll(ht,it,ze),this._offsetY=this._calculateOverlayOffsetY(ht,it,ze),this._checkOverlayWithinViewport(ze)}_getOriginBasedOnOption(){const Y=this._getItemHeight(),X=(Y-this._triggerRect.height)/2;return`50% ${Math.abs(this._offsetY)-X+Y/2}px 0px`}_getItemHeight(){return 3*this._triggerFontSize}_getItemCount(){return this.options.length+this.optionGroups.length}}return Te.\u0275fac=function(){let ke;return function(X){return(ke||(ke=v.n5z(Te)))(X||Te)}}(),Te.\u0275cmp=v.Xpm({type:Te,selectors:[["mat-select"]],contentQueries:function(Y,X,he){if(1&Y&&(v.Suo(he,We,5),v.Suo(he,M.ey,5),v.Suo(he,M.K7,5)),2&Y){let Me;v.iGM(Me=v.CRH())&&(X.customTrigger=Me.first),v.iGM(Me=v.CRH())&&(X.options=Me),v.iGM(Me=v.CRH())&&(X.optionGroups=Me)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","true",1,"mat-select"],hostVars:20,hostBindings:function(Y,X){1&Y&&v.NdJ("keydown",function(Me){return X._handleKeydown(Me)})("focus",function(){return X._onFocus()})("blur",function(){return X._onBlur()}),2&Y&&(v.uIk("id",X.id)("tabindex",X.tabIndex)("aria-controls",X.panelOpen?X.id+"-panel":null)("aria-expanded",X.panelOpen)("aria-label",X.ariaLabel||null)("aria-required",X.required.toString())("aria-disabled",X.disabled.toString())("aria-invalid",X.errorState)("aria-describedby",X._ariaDescribedby||null)("aria-activedescendant",X._getAriaActiveDescendant()),v.ekj("mat-select-disabled",X.disabled)("mat-select-invalid",X.errorState)("mat-select-required",X.required)("mat-select-empty",X.empty)("mat-select-multiple",X.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matSelect"],features:[v._Bn([{provide:s.Eo,useExisting:Te},{provide:M.HF,useExisting:Te}]),v.qOj],ngContentSelectors:_,decls:9,vars:12,consts:[["cdk-overlay-origin","",1,"mat-select-trigger",3,"click"],["origin","cdkOverlayOrigin","trigger",""],[1,"mat-select-value",3,"ngSwitch"],["class","mat-select-placeholder mat-select-min-line",4,"ngSwitchCase"],["class","mat-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-select-arrow-wrapper"],[1,"mat-select-arrow"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayMinWidth","cdkConnectedOverlayOffsetY","backdropClick","attach","detach"],[1,"mat-select-placeholder","mat-select-min-line"],[1,"mat-select-value-text",3,"ngSwitch"],["class","mat-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-select-min-line"],[1,"mat-select-panel-wrap"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(Y,X){if(1&Y&&(v.F$t(u),v.TgZ(0,"div",0,1),v.NdJ("click",function(){return X.toggle()}),v.TgZ(3,"div",2),v.YNc(4,oe,2,1,"span",3),v.YNc(5,a,3,2,"span",4),v.qZA(),v.TgZ(6,"div",5),v._UZ(7,"div",6),v.qZA(),v.qZA(),v.YNc(8,p,4,14,"ng-template",7),v.NdJ("backdropClick",function(){return X.close()})("attach",function(){return X._onAttached()})("detach",function(){return X.close()})),2&Y){const he=v.MAs(1);v.uIk("aria-owns",X.panelOpen?X.id+"-panel":null),v.xp6(3),v.Q6J("ngSwitch",X.empty),v.uIk("id",X._valueId),v.xp6(1),v.Q6J("ngSwitchCase",!0),v.xp6(1),v.Q6J("ngSwitchCase",!1),v.xp6(3),v.Q6J("cdkConnectedOverlayPanelClass",X._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",X._scrollStrategy)("cdkConnectedOverlayOrigin",he)("cdkConnectedOverlayOpen",X.panelOpen)("cdkConnectedOverlayPositions",X._positions)("cdkConnectedOverlayMinWidth",null==X._triggerRect?null:X._triggerRect.width)("cdkConnectedOverlayOffsetY",X._offsetY)}},directives:[e.xu,t.RF,t.n9,e.pI,t.ED,t.mk],styles:['.mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-table;cursor:pointer;position:relative;box-sizing:border-box}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default}.mat-select-value{display:table-cell;max-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{display:table-cell;vertical-align:middle}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:transparent;-webkit-text-fill-color:transparent;transition:none;display:block}.mat-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;opacity:0}\n'],encapsulation:2,data:{animation:[L.transformPanelWrap,L.transformPanel]},changeDetection:0}),Te})(),ue=(()=>{class Te{}return Te.\u0275fac=function(Y){return new(Y||Te)},Te.\u0275mod=v.oAB({type:Te}),Te.\u0275inj=v.cJS({providers:[we],imports:[[t.ez,e.U8,M.Ng,M.BQ],C.ZD,s.lN,M.Ng,M.BQ]}),Te})()},2638:(Ue,K,m)=>{"use strict";m.d(K,{JX:()=>xe,TM:()=>Re,Rh:()=>te,SJ:()=>Fe});var e=m(925),t=m(5303),v=m(9808),M=m(5e3),s=m(508),C=m(3191),c=m(1159),P=m(7579),o=m(4968),O=m(6451),T=m(9300),R=m(4004),S=m(9718),D=m(2722),w=m(1884),U=m(5698),G=m(8675),W=m(8372),ee=m(1777),ie=m(6360),_e=m(5664),fe=m(226);const de=["*"];function ne(q,j){if(1&q){const we=M.EpF();M.TgZ(0,"div",2),M.NdJ("click",function(){return M.CHM(we),M.oxw()._onBackdropClicked()}),M.qZA()}if(2&q){const we=M.oxw();M.ekj("mat-drawer-shown",we._isShowingBackdrop())}}function se(q,j){1&q&&(M.TgZ(0,"mat-drawer-content"),M.Hsn(1,2),M.qZA())}const oe=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],y=["mat-drawer","mat-drawer-content","*"];function i(q,j){if(1&q){const we=M.EpF();M.TgZ(0,"div",2),M.NdJ("click",function(){return M.CHM(we),M.oxw()._onBackdropClicked()}),M.qZA()}if(2&q){const we=M.oxw();M.ekj("mat-drawer-shown",we._isShowingBackdrop())}}function a(q,j){1&q&&(M.TgZ(0,"mat-sidenav-content",3),M.Hsn(1,2),M.qZA())}const p=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],u=["mat-sidenav","mat-sidenav-content","*"],L={transformDrawer:(0,ee.X$)("transform",[(0,ee.SB)("open, open-instant",(0,ee.oB)({transform:"none",visibility:"visible"})),(0,ee.SB)("void",(0,ee.oB)({"box-shadow":"none",visibility:"hidden"})),(0,ee.eR)("void => open-instant",(0,ee.jt)("0ms")),(0,ee.eR)("void <=> open, open-instant => void",(0,ee.jt)("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))])},x=new M.OlP("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:function(){return!1}}),r=new M.OlP("MAT_DRAWER_CONTAINER");let J=(()=>{class q extends t.PQ{constructor(we,Ae,le,We,yt){super(le,We,yt),this._changeDetectorRef=we,this._container=Ae}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}}return q.\u0275fac=function(we){return new(we||q)(M.Y36(M.sBO),M.Y36((0,M.Gpc)(()=>B)),M.Y36(M.SBq),M.Y36(t.mF),M.Y36(M.R0b))},q.\u0275cmp=M.Xpm({type:q,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:4,hostBindings:function(we,Ae){2&we&&M.Udp("margin-left",Ae._container._contentMargins.left,"px")("margin-right",Ae._container._contentMargins.right,"px")},features:[M.qOj],ngContentSelectors:de,decls:1,vars:0,template:function(we,Ae){1&we&&(M.F$t(),M.Hsn(0))},encapsulation:2,changeDetection:0}),q})(),F=(()=>{class q{constructor(we,Ae,le,We,yt,Ne,Ve,ue){this._elementRef=we,this._focusTrapFactory=Ae,this._focusMonitor=le,this._platform=We,this._ngZone=yt,this._interactivityChecker=Ne,this._doc=Ve,this._container=ue,this._elementFocusedBeforeDrawerWasOpened=null,this._enableAnimations=!1,this._position="start",this._mode="over",this._disableClose=!1,this._opened=!1,this._animationStarted=new P.x,this._animationEnd=new P.x,this._animationState="void",this.openedChange=new M.vpe(!0),this._openedStream=this.openedChange.pipe((0,T.h)(Te=>Te),(0,R.U)(()=>{})),this.openedStart=this._animationStarted.pipe((0,T.h)(Te=>Te.fromState!==Te.toState&&0===Te.toState.indexOf("open")),(0,S.h)(void 0)),this._closedStream=this.openedChange.pipe((0,T.h)(Te=>!Te),(0,R.U)(()=>{})),this.closedStart=this._animationStarted.pipe((0,T.h)(Te=>Te.fromState!==Te.toState&&"void"===Te.toState),(0,S.h)(void 0)),this._destroyed=new P.x,this.onPositionChanged=new M.vpe,this._modeChanged=new P.x,this.openedChange.subscribe(Te=>{Te?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{(0,o.R)(this._elementRef.nativeElement,"keydown").pipe((0,T.h)(Te=>Te.keyCode===c.hY&&!this.disableClose&&!(0,c.Vb)(Te)),(0,D.R)(this._destroyed)).subscribe(Te=>this._ngZone.run(()=>{this.close(),Te.stopPropagation(),Te.preventDefault()}))}),this._animationEnd.pipe((0,w.x)((Te,ke)=>Te.fromState===ke.fromState&&Te.toState===ke.toState)).subscribe(Te=>{const{fromState:ke,toState:Y}=Te;(0===Y.indexOf("open")&&"void"===ke||"void"===Y&&0===ke.indexOf("open"))&&this.openedChange.emit(this._opened)})}get position(){return this._position}set position(we){(we="end"===we?"end":"start")!=this._position&&(this._position=we,this.onPositionChanged.emit())}get mode(){return this._mode}set mode(we){this._mode=we,this._updateFocusTrapState(),this._modeChanged.next()}get disableClose(){return this._disableClose}set disableClose(we){this._disableClose=(0,C.Ig)(we)}get autoFocus(){const we=this._autoFocus;return null==we?"side"===this.mode?"dialog":"first-tabbable":we}set autoFocus(we){("true"===we||"false"===we)&&(we=(0,C.Ig)(we)),this._autoFocus=we}get opened(){return this._opened}set opened(we){this.toggle((0,C.Ig)(we))}_forceFocus(we,Ae){this._interactivityChecker.isFocusable(we)||(we.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{we.addEventListener("blur",()=>we.removeAttribute("tabindex")),we.addEventListener("mousedown",()=>we.removeAttribute("tabindex"))})),we.focus(Ae)}_focusByCssSelector(we,Ae){let le=this._elementRef.nativeElement.querySelector(we);le&&this._forceFocus(le,Ae)}_takeFocus(){if(!this._focusTrap)return;const we=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(Ae=>{!Ae&&"function"==typeof this._elementRef.nativeElement.focus&&we.focus()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus)}}_restoreFocus(we){"dialog"!==this.autoFocus&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,we):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){var we;const Ae=null===(we=this._doc)||void 0===we?void 0:we.activeElement;return!!Ae&&this._elementRef.nativeElement.contains(Ae)}ngAfterContentInit(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState()}ngAfterContentChecked(){this._platform.isBrowser&&(this._enableAnimations=!0)}ngOnDestroy(){this._focusTrap&&this._focusTrap.destroy(),this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(we){return this.toggle(!0,we)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(we=!this.opened,Ae){we&&Ae&&(this._openedVia=Ae);const le=this._setOpen(we,!we&&this._isFocusWithinDrawer(),this._openedVia||"program");return we||(this._openedVia=null),le}_setOpen(we,Ae,le){return this._opened=we,we?this._animationState=this._enableAnimations?"open":"open-instant":(this._animationState="void",Ae&&this._restoreFocus(le)),this._updateFocusTrapState(),new Promise(We=>{this.openedChange.pipe((0,U.q)(1)).subscribe(yt=>We(yt?"open":"close"))})}_getWidth(){return this._elementRef.nativeElement&&this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=this.opened&&"side"!==this.mode)}}return q.\u0275fac=function(we){return new(we||q)(M.Y36(M.SBq),M.Y36(_e.qV),M.Y36(_e.tE),M.Y36(e.t4),M.Y36(M.R0b),M.Y36(_e.ic),M.Y36(v.K0,8),M.Y36(r,8))},q.\u0275cmp=M.Xpm({type:q,selectors:[["mat-drawer"]],hostAttrs:["tabIndex","-1",1,"mat-drawer"],hostVars:12,hostBindings:function(we,Ae){1&we&&M.WFA("@transform.start",function(We){return Ae._animationStarted.next(We)})("@transform.done",function(We){return Ae._animationEnd.next(We)}),2&we&&(M.uIk("align",null),M.d8E("@transform",Ae._animationState),M.ekj("mat-drawer-end","end"===Ae.position)("mat-drawer-over","over"===Ae.mode)("mat-drawer-push","push"===Ae.mode)("mat-drawer-side","side"===Ae.mode)("mat-drawer-opened",Ae.opened))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:de,decls:2,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(we,Ae){1&we&&(M.F$t(),M.TgZ(0,"div",0),M.Hsn(1),M.qZA())},directives:[t.PQ],encapsulation:2,data:{animation:[L.transformDrawer]},changeDetection:0}),q})(),B=(()=>{class q{constructor(we,Ae,le,We,yt,Ne=!1,Ve){this._dir=we,this._element=Ae,this._ngZone=le,this._changeDetectorRef=We,this._animationMode=Ve,this._drawers=new M.n_E,this.backdropClick=new M.vpe,this._destroyed=new P.x,this._doCheckSubject=new P.x,this._contentMargins={left:null,right:null},this._contentMarginChanges=new P.x,we&&we.change.pipe((0,D.R)(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),yt.change().pipe((0,D.R)(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._autosize=Ne}get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(we){this._autosize=(0,C.Ig)(we)}get hasBackdrop(){return null==this._backdropOverride?!this._start||"side"!==this._start.mode||!this._end||"side"!==this._end.mode:this._backdropOverride}set hasBackdrop(we){this._backdropOverride=null==we?null:(0,C.Ig)(we)}get scrollable(){return this._userContent||this._content}ngAfterContentInit(){this._allDrawers.changes.pipe((0,G.O)(this._allDrawers),(0,D.R)(this._destroyed)).subscribe(we=>{this._drawers.reset(we.filter(Ae=>!Ae._container||Ae._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe((0,G.O)(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(we=>{this._watchDrawerToggle(we),this._watchDrawerPosition(we),this._watchDrawerMode(we)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe((0,W.b)(10),(0,D.R)(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(we=>we.open())}close(){this._drawers.forEach(we=>we.close())}updateContentMargins(){let we=0,Ae=0;if(this._left&&this._left.opened)if("side"==this._left.mode)we+=this._left._getWidth();else if("push"==this._left.mode){const le=this._left._getWidth();we+=le,Ae-=le}if(this._right&&this._right.opened)if("side"==this._right.mode)Ae+=this._right._getWidth();else if("push"==this._right.mode){const le=this._right._getWidth();Ae+=le,we-=le}we=we||null,Ae=Ae||null,(we!==this._contentMargins.left||Ae!==this._contentMargins.right)&&(this._contentMargins={left:we,right:Ae},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(we){we._animationStarted.pipe((0,T.h)(Ae=>Ae.fromState!==Ae.toState),(0,D.R)(this._drawers.changes)).subscribe(Ae=>{"open-instant"!==Ae.toState&&"NoopAnimations"!==this._animationMode&&this._element.nativeElement.classList.add("mat-drawer-transition"),this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),"side"!==we.mode&&we.openedChange.pipe((0,D.R)(this._drawers.changes)).subscribe(()=>this._setContainerClass(we.opened))}_watchDrawerPosition(we){!we||we.onPositionChanged.pipe((0,D.R)(this._drawers.changes)).subscribe(()=>{this._ngZone.onMicrotaskEmpty.pipe((0,U.q)(1)).subscribe(()=>{this._validateDrawers()})})}_watchDrawerMode(we){we&&we._modeChanged.pipe((0,D.R)((0,O.T)(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(we){const Ae=this._element.nativeElement.classList,le="mat-drawer-container-has-open";we?Ae.add(le):Ae.remove(le)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(we=>{"end"==we.position?this._end=we:this._start=we}),this._right=this._left=null,this._dir&&"rtl"===this._dir.value?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&"over"!=this._start.mode||this._isDrawerOpen(this._end)&&"over"!=this._end.mode}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(we=>we&&!we.disableClose&&this._canHaveBackdrop(we)).forEach(we=>we._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._canHaveBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._canHaveBackdrop(this._end)}_canHaveBackdrop(we){return"side"!==we.mode||!!this._backdropOverride}_isDrawerOpen(we){return null!=we&&we.opened}}return q.\u0275fac=function(we){return new(we||q)(M.Y36(fe.Is,8),M.Y36(M.SBq),M.Y36(M.R0b),M.Y36(M.sBO),M.Y36(t.rL),M.Y36(x),M.Y36(ie.Qb,8))},q.\u0275cmp=M.Xpm({type:q,selectors:[["mat-drawer-container"]],contentQueries:function(we,Ae,le){if(1&we&&(M.Suo(le,J,5),M.Suo(le,F,5)),2&we){let We;M.iGM(We=M.CRH())&&(Ae._content=We.first),M.iGM(We=M.CRH())&&(Ae._allDrawers=We)}},viewQuery:function(we,Ae){if(1&we&&M.Gf(J,5),2&we){let le;M.iGM(le=M.CRH())&&(Ae._userContent=le.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(we,Ae){2&we&&M.ekj("mat-drawer-container-explicit-backdrop",Ae._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[M._Bn([{provide:r,useExisting:q}])],ngContentSelectors:y,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(we,Ae){1&we&&(M.F$t(oe),M.YNc(0,ne,1,2,"div",0),M.Hsn(1),M.Hsn(2,1),M.YNc(3,se,2,0,"mat-drawer-content",1)),2&we&&(M.Q6J("ngIf",Ae.hasBackdrop),M.xp6(3),M.Q6J("ngIf",!Ae._content))},directives:[v.O5,J],styles:[".mat-drawer-container{position:relative;z-index:1;box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer{transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}\n"],encapsulation:2,changeDetection:0}),q})(),te=(()=>{class q extends J{constructor(we,Ae,le,We,yt){super(we,Ae,le,We,yt)}}return q.\u0275fac=function(we){return new(we||q)(M.Y36(M.sBO),M.Y36((0,M.Gpc)(()=>Re)),M.Y36(M.SBq),M.Y36(t.mF),M.Y36(M.R0b))},q.\u0275cmp=M.Xpm({type:q,selectors:[["mat-sidenav-content"]],hostAttrs:[1,"mat-drawer-content","mat-sidenav-content"],hostVars:4,hostBindings:function(we,Ae){2&we&&M.Udp("margin-left",Ae._container._contentMargins.left,"px")("margin-right",Ae._container._contentMargins.right,"px")},features:[M.qOj],ngContentSelectors:de,decls:1,vars:0,template:function(we,Ae){1&we&&(M.F$t(),M.Hsn(0))},encapsulation:2,changeDetection:0}),q})(),xe=(()=>{class q extends F{constructor(){super(...arguments),this._fixedInViewport=!1,this._fixedTopGap=0,this._fixedBottomGap=0}get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(we){this._fixedInViewport=(0,C.Ig)(we)}get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(we){this._fixedTopGap=(0,C.su)(we)}get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(we){this._fixedBottomGap=(0,C.su)(we)}}return q.\u0275fac=function(){let j;return function(Ae){return(j||(j=M.n5z(q)))(Ae||q)}}(),q.\u0275cmp=M.Xpm({type:q,selectors:[["mat-sidenav"]],hostAttrs:["tabIndex","-1",1,"mat-drawer","mat-sidenav"],hostVars:17,hostBindings:function(we,Ae){2&we&&(M.uIk("align",null),M.Udp("top",Ae.fixedInViewport?Ae.fixedTopGap:null,"px")("bottom",Ae.fixedInViewport?Ae.fixedBottomGap:null,"px"),M.ekj("mat-drawer-end","end"===Ae.position)("mat-drawer-over","over"===Ae.mode)("mat-drawer-push","push"===Ae.mode)("mat-drawer-side","side"===Ae.mode)("mat-drawer-opened",Ae.opened)("mat-sidenav-fixed",Ae.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[M.qOj],ngContentSelectors:de,decls:2,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(we,Ae){1&we&&(M.F$t(),M.TgZ(0,"div",0),M.Hsn(1),M.qZA())},directives:[t.PQ],encapsulation:2,data:{animation:[L.transformDrawer]},changeDetection:0}),q})(),Re=(()=>{class q extends B{}return q.\u0275fac=function(){let j;return function(Ae){return(j||(j=M.n5z(q)))(Ae||q)}}(),q.\u0275cmp=M.Xpm({type:q,selectors:[["mat-sidenav-container"]],contentQueries:function(we,Ae,le){if(1&we&&(M.Suo(le,te,5),M.Suo(le,xe,5)),2&we){let We;M.iGM(We=M.CRH())&&(Ae._content=We.first),M.iGM(We=M.CRH())&&(Ae._allDrawers=We)}},hostAttrs:[1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(we,Ae){2&we&&M.ekj("mat-drawer-container-explicit-backdrop",Ae._backdropOverride)},exportAs:["matSidenavContainer"],features:[M._Bn([{provide:r,useExisting:q}]),M.qOj],ngContentSelectors:u,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],["cdkScrollable","",4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"],["cdkScrollable",""]],template:function(we,Ae){1&we&&(M.F$t(p),M.YNc(0,i,1,2,"div",0),M.Hsn(1),M.Hsn(2,1),M.YNc(3,a,2,0,"mat-sidenav-content",1)),2&we&&(M.Q6J("ngIf",Ae.hasBackdrop),M.xp6(3),M.Q6J("ngIf",!Ae._content))},directives:[v.O5,te,t.PQ],styles:[".mat-drawer-container{position:relative;z-index:1;box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer{transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}\n"],encapsulation:2,changeDetection:0}),q})(),Fe=(()=>{class q{}return q.\u0275fac=function(we){return new(we||q)},q.\u0275mod=M.oAB({type:q}),q.\u0275inj=M.cJS({imports:[[v.ez,s.BQ,e.ud,t.ZD],t.ZD,s.BQ]}),q})()},2368:(Ue,K,m)=>{"use strict";m.d(K,{Rr:()=>W,rP:()=>fe});var e=m(7144),t=m(5e3),v=m(508),M=m(3191),s=m(3075),C=m(6360),c=m(5664);const P=["thumbContainer"],o=["toggleBar"],O=["input"],T=function(de){return{enterDuration:de}},R=["*"],S=new t.OlP("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1})});let D=0;const w={provide:s.JU,useExisting:(0,t.Gpc)(()=>W),multi:!0};class U{constructor(ne,se){this.source=ne,this.checked=se}}const G=(0,v.sb)((0,v.pj)((0,v.Kr)((0,v.Id)(class{constructor(de){this._elementRef=de}}))));let W=(()=>{class de extends G{constructor(se,oe,y,i,a,p){super(se),this._focusMonitor=oe,this._changeDetectorRef=y,this.defaults=a,this._onChange=u=>{},this._onTouched=()=>{},this._uniqueId="mat-slide-toggle-"+ ++D,this._required=!1,this._checked=!1,this.name=null,this.id=this._uniqueId,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this.change=new t.vpe,this.toggleChange=new t.vpe,this.tabIndex=parseInt(i)||0,this.color=this.defaultColor=a.color||"accent",this._noopAnimations="NoopAnimations"===p}get required(){return this._required}set required(se){this._required=(0,M.Ig)(se)}get checked(){return this._checked}set checked(se){this._checked=(0,M.Ig)(se),this._changeDetectorRef.markForCheck()}get inputId(){return`${this.id||this._uniqueId}-input`}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(se=>{se||Promise.resolve().then(()=>this._onTouched())})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}_onChangeEvent(se){se.stopPropagation(),this.toggleChange.emit(),this.defaults.disableToggleValue?this._inputElement.nativeElement.checked=this.checked:(this.checked=this._inputElement.nativeElement.checked,this._emitChangeEvent())}_onInputClick(se){se.stopPropagation()}writeValue(se){this.checked=!!se}registerOnChange(se){this._onChange=se}registerOnTouched(se){this._onTouched=se}setDisabledState(se){this.disabled=se,this._changeDetectorRef.markForCheck()}focus(se,oe){oe?this._focusMonitor.focusVia(this._inputElement,oe,se):this._inputElement.nativeElement.focus(se)}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(new U(this,this.checked))}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}}return de.\u0275fac=function(se){return new(se||de)(t.Y36(t.SBq),t.Y36(c.tE),t.Y36(t.sBO),t.$8M("tabindex"),t.Y36(S),t.Y36(C.Qb,8))},de.\u0275cmp=t.Xpm({type:de,selectors:[["mat-slide-toggle"]],viewQuery:function(se,oe){if(1&se&&(t.Gf(P,5),t.Gf(o,5),t.Gf(O,5)),2&se){let y;t.iGM(y=t.CRH())&&(oe._thumbEl=y.first),t.iGM(y=t.CRH())&&(oe._thumbBarEl=y.first),t.iGM(y=t.CRH())&&(oe._inputElement=y.first)}},hostAttrs:[1,"mat-slide-toggle"],hostVars:12,hostBindings:function(se,oe){2&se&&(t.Ikx("id",oe.id),t.uIk("tabindex",null)("aria-label",null)("aria-labelledby",null),t.ekj("mat-checked",oe.checked)("mat-disabled",oe.disabled)("mat-slide-toggle-label-before","before"==oe.labelPosition)("_mat-animation-noopable",oe._noopAnimations))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex",name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],required:"required",checked:"checked"},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[t._Bn([w]),t.qOj],ngContentSelectors:R,decls:16,vars:20,consts:[[1,"mat-slide-toggle-label"],["label",""],[1,"mat-slide-toggle-bar"],["toggleBar",""],["type","checkbox","role","switch",1,"mat-slide-toggle-input","cdk-visually-hidden",3,"id","required","tabIndex","checked","disabled","change","click"],["input",""],[1,"mat-slide-toggle-thumb-container"],["thumbContainer",""],[1,"mat-slide-toggle-thumb"],["mat-ripple","",1,"mat-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered","matRippleRadius","matRippleAnimation"],[1,"mat-ripple-element","mat-slide-toggle-persistent-ripple"],[1,"mat-slide-toggle-content",3,"cdkObserveContent"],["labelContent",""],[2,"display","none"]],template:function(se,oe){if(1&se&&(t.F$t(),t.TgZ(0,"label",0,1),t.TgZ(2,"div",2,3),t.TgZ(4,"input",4,5),t.NdJ("change",function(i){return oe._onChangeEvent(i)})("click",function(i){return oe._onInputClick(i)}),t.qZA(),t.TgZ(6,"div",6,7),t._UZ(8,"div",8),t.TgZ(9,"div",9),t._UZ(10,"div",10),t.qZA(),t.qZA(),t.qZA(),t.TgZ(11,"span",11,12),t.NdJ("cdkObserveContent",function(){return oe._onLabelTextChange()}),t.TgZ(13,"span",13),t._uU(14,"\xa0"),t.qZA(),t.Hsn(15),t.qZA(),t.qZA()),2&se){const y=t.MAs(1),i=t.MAs(12);t.uIk("for",oe.inputId),t.xp6(2),t.ekj("mat-slide-toggle-bar-no-side-margin",!i.textContent||!i.textContent.trim()),t.xp6(2),t.Q6J("id",oe.inputId)("required",oe.required)("tabIndex",oe.tabIndex)("checked",oe.checked)("disabled",oe.disabled),t.uIk("name",oe.name)("aria-checked",oe.checked.toString())("aria-label",oe.ariaLabel)("aria-labelledby",oe.ariaLabelledby)("aria-describedby",oe.ariaDescribedby),t.xp6(5),t.Q6J("matRippleTrigger",y)("matRippleDisabled",oe.disableRipple||oe.disabled)("matRippleCentered",!0)("matRippleRadius",20)("matRippleAnimation",t.VKq(18,T,oe._noopAnimations?0:150))}},directives:[v.wG,e.wD],styles:[".mat-slide-toggle{display:inline-block;height:24px;max-width:100%;line-height:24px;white-space:nowrap;outline:none;-webkit-tap-highlight-color:transparent}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(16px, 0, 0)}[dir=rtl] .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(-16px, 0, 0)}.mat-slide-toggle.mat-disabled{opacity:.38}.mat-slide-toggle.mat-disabled .mat-slide-toggle-label,.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb-container{cursor:default}.mat-slide-toggle-label{-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;flex:1;flex-direction:row;align-items:center;height:inherit;cursor:pointer}.mat-slide-toggle-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-slide-toggle-label-before .mat-slide-toggle-label{order:1}.mat-slide-toggle-label-before .mat-slide-toggle-bar{order:2}[dir=rtl] .mat-slide-toggle-label-before .mat-slide-toggle-bar,.mat-slide-toggle-bar{margin-right:8px;margin-left:0}[dir=rtl] .mat-slide-toggle-bar,.mat-slide-toggle-label-before .mat-slide-toggle-bar{margin-left:8px;margin-right:0}.mat-slide-toggle-bar-no-side-margin{margin-left:0;margin-right:0}.mat-slide-toggle-thumb-container{position:absolute;z-index:1;width:20px;height:20px;top:-3px;left:0;transform:translate3d(0, 0, 0);transition:all 80ms linear;transition-property:transform}._mat-animation-noopable .mat-slide-toggle-thumb-container{transition:none}[dir=rtl] .mat-slide-toggle-thumb-container{left:auto;right:0}.mat-slide-toggle-thumb{height:20px;width:20px;border-radius:50%}.mat-slide-toggle-bar{position:relative;width:36px;height:14px;flex-shrink:0;border-radius:8px}.mat-slide-toggle-input{bottom:0;left:10px}[dir=rtl] .mat-slide-toggle-input{left:auto;right:10px}.mat-slide-toggle-bar,.mat-slide-toggle-thumb{transition:all 80ms linear;transition-property:background-color;transition-delay:50ms}._mat-animation-noopable .mat-slide-toggle-bar,._mat-animation-noopable .mat-slide-toggle-thumb{transition:none}.mat-slide-toggle .mat-slide-toggle-ripple{position:absolute;top:calc(50% - 20px);left:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-slide-toggle .mat-slide-toggle-ripple .mat-ripple-element:not(.mat-slide-toggle-persistent-ripple){opacity:.12}.mat-slide-toggle-persistent-ripple{width:100%;height:100%;transform:none}.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:.04}.mat-slide-toggle:not(.mat-disabled).cdk-keyboard-focused .mat-slide-toggle-persistent-ripple{opacity:.12}.mat-slide-toggle-persistent-ripple,.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:0}@media(hover: none){.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{display:none}}.cdk-high-contrast-active .mat-slide-toggle-thumb,.cdk-high-contrast-active .mat-slide-toggle-bar{border:1px solid}.cdk-high-contrast-active .mat-slide-toggle.cdk-keyboard-focused .mat-slide-toggle-bar{outline:2px dotted;outline-offset:5px}\n"],encapsulation:2,changeDetection:0}),de})(),_e=(()=>{class de{}return de.\u0275fac=function(se){return new(se||de)},de.\u0275mod=t.oAB({type:de}),de.\u0275inj=t.cJS({}),de})(),fe=(()=>{class de{}return de.\u0275fac=function(se){return new(se||de)},de.\u0275mod=t.oAB({type:de}),de.\u0275inj=t.cJS({imports:[[_e,v.si,v.BQ,e.Q8],_e,v.BQ]}),de})()},7261:(Ue,K,m)=>{"use strict";m.d(K,{Ve:()=>ne,ux:()=>oe,ZX:()=>de});var e=m(9776),t=m(7429),v=m(9808),M=m(5e3),s=m(508),C=m(7423),c=m(7579),P=m(5698),o=m(2722),O=m(1777),T=m(925),R=m(5113),S=m(5664);function D(y,i){if(1&y){const a=M.EpF();M.TgZ(0,"div",1),M.TgZ(1,"button",2),M.NdJ("click",function(){return M.CHM(a),M.oxw().action()}),M._uU(2),M.qZA(),M.qZA()}if(2&y){const a=M.oxw();M.xp6(2),M.Oqu(a.data.action)}}function w(y,i){}const U=new M.OlP("MatSnackBarData");class G{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}const W=Math.pow(2,31)-1;class ee{constructor(i,a){this._overlayRef=a,this._afterDismissed=new c.x,this._afterOpened=new c.x,this._onAction=new c.x,this._dismissedByAction=!1,this.containerInstance=i,this.onAction().subscribe(()=>this.dismiss()),i._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(i){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(i,W))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}let ie=(()=>{class y{constructor(a,p){this.snackBarRef=a,this.data=p}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}}return y.\u0275fac=function(a){return new(a||y)(M.Y36(ee),M.Y36(U))},y.\u0275cmp=M.Xpm({type:y,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-simple-snackbar"],decls:3,vars:2,consts:[["class","mat-simple-snackbar-action",4,"ngIf"],[1,"mat-simple-snackbar-action"],["mat-button","",3,"click"]],template:function(a,p){1&a&&(M.TgZ(0,"span"),M._uU(1),M.qZA(),M.YNc(2,D,3,1,"div",0)),2&a&&(M.xp6(1),M.Oqu(p.data.message),M.xp6(1),M.Q6J("ngIf",p.hasAction))},directives:[v.O5,C.lW],styles:[".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}\n"],encapsulation:2,changeDetection:0}),y})();const _e={snackBarState:(0,O.X$)("state",[(0,O.SB)("void, hidden",(0,O.oB)({transform:"scale(0.8)",opacity:0})),(0,O.SB)("visible",(0,O.oB)({transform:"scale(1)",opacity:1})),(0,O.eR)("* => visible",(0,O.jt)("150ms cubic-bezier(0, 0, 0.2, 1)")),(0,O.eR)("* => void, * => hidden",(0,O.jt)("75ms cubic-bezier(0.4, 0.0, 1, 1)",(0,O.oB)({opacity:0})))])};let fe=(()=>{class y extends t.en{constructor(a,p,u,_,L){super(),this._ngZone=a,this._elementRef=p,this._changeDetectorRef=u,this._platform=_,this.snackBarConfig=L,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new c.x,this._onExit=new c.x,this._onEnter=new c.x,this._animationState="void",this.attachDomPortal=I=>(this._assertNotAttached(),this._applySnackBarClasses(),this._portalOutlet.attachDomPortal(I)),this._live="assertive"!==L.politeness||L.announcementMessage?"off"===L.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(a){return this._assertNotAttached(),this._applySnackBarClasses(),this._portalOutlet.attachComponentPortal(a)}attachTemplatePortal(a){return this._assertNotAttached(),this._applySnackBarClasses(),this._portalOutlet.attachTemplatePortal(a)}onAnimationEnd(a){const{fromState:p,toState:u}=a;if(("void"===u&&"void"!==p||"hidden"===u)&&this._completeExit(),"visible"===u){const _=this._onEnter;this._ngZone.run(()=>{_.next(),_.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId),this._onExit}ngOnDestroy(){this._destroyed=!0,this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe((0,P.q)(1)).subscribe(()=>{this._onExit.next(),this._onExit.complete()})}_applySnackBarClasses(){const a=this._elementRef.nativeElement,p=this.snackBarConfig.panelClass;p&&(Array.isArray(p)?p.forEach(u=>a.classList.add(u)):a.classList.add(p)),"center"===this.snackBarConfig.horizontalPosition&&a.classList.add("mat-snack-bar-center"),"top"===this.snackBarConfig.verticalPosition&&a.classList.add("mat-snack-bar-top")}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const a=this._elementRef.nativeElement.querySelector("[aria-hidden]"),p=this._elementRef.nativeElement.querySelector("[aria-live]");if(a&&p){let u=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&a.contains(document.activeElement)&&(u=document.activeElement),a.removeAttribute("aria-hidden"),p.appendChild(a),null==u||u.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}}return y.\u0275fac=function(a){return new(a||y)(M.Y36(M.R0b),M.Y36(M.SBq),M.Y36(M.sBO),M.Y36(T.t4),M.Y36(G))},y.\u0275cmp=M.Xpm({type:y,selectors:[["snack-bar-container"]],viewQuery:function(a,p){if(1&a&&M.Gf(t.Pl,7),2&a){let u;M.iGM(u=M.CRH())&&(p._portalOutlet=u.first)}},hostAttrs:[1,"mat-snack-bar-container"],hostVars:1,hostBindings:function(a,p){1&a&&M.WFA("@state.done",function(_){return p.onAnimationEnd(_)}),2&a&&M.d8E("@state",p._animationState)},features:[M.qOj],decls:3,vars:2,consts:[["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(a,p){1&a&&(M.TgZ(0,"div",0),M.YNc(1,w,0,0,"ng-template",1),M.qZA(),M._UZ(2,"div")),2&a&&(M.xp6(2),M.uIk("aria-live",p._live)("role",p._role))},directives:[t.Pl],styles:[".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\n"],encapsulation:2,data:{animation:[_e.snackBarState]}}),y})(),de=(()=>{class y{}return y.\u0275fac=function(a){return new(a||y)},y.\u0275mod=M.oAB({type:y}),y.\u0275inj=M.cJS({imports:[[e.U8,t.eL,v.ez,C.ot,s.BQ],s.BQ]}),y})();const ne=new M.OlP("mat-snack-bar-default-options",{providedIn:"root",factory:function(){return new G}});let oe=(()=>{class y{constructor(a,p,u,_,L,I){this._overlay=a,this._live=p,this._injector=u,this._breakpointObserver=_,this._parentSnackBar=L,this._defaultConfig=I,this._snackBarRefAtThisLevel=null,this.simpleSnackBarComponent=ie,this.snackBarContainerComponent=fe,this.handsetCssClass="mat-snack-bar-handset"}get _openedSnackBarRef(){const a=this._parentSnackBar;return a?a._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(a){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=a:this._snackBarRefAtThisLevel=a}openFromComponent(a,p){return this._attach(a,p)}openFromTemplate(a,p){return this._attach(a,p)}open(a,p="",u){const _=Object.assign(Object.assign({},this._defaultConfig),u);return _.data={message:a,action:p},_.announcementMessage===a&&(_.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,_)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(a,p){const _=M.zs3.create({parent:p&&p.viewContainerRef&&p.viewContainerRef.injector||this._injector,providers:[{provide:G,useValue:p}]}),L=new t.C5(this.snackBarContainerComponent,p.viewContainerRef,_),I=a.attach(L);return I.instance.snackBarConfig=p,I.instance}_attach(a,p){const u=Object.assign(Object.assign(Object.assign({},new G),this._defaultConfig),p),_=this._createOverlay(u),L=this._attachSnackBarContainer(_,u),I=new ee(L,_);if(a instanceof M.Rgc){const x=new t.UE(a,null,{$implicit:u.data,snackBarRef:I});I.instance=L.attachTemplatePortal(x)}else{const x=this._createInjector(u,I),r=new t.C5(a,void 0,x),b=L.attachComponentPortal(r);I.instance=b.instance}return this._breakpointObserver.observe(R.u3.HandsetPortrait).pipe((0,o.R)(_.detachments())).subscribe(x=>{_.overlayElement.classList.toggle(this.handsetCssClass,x.matches)}),u.announcementMessage&&L._onAnnounce.subscribe(()=>{this._live.announce(u.announcementMessage,u.politeness)}),this._animateSnackBar(I,u),this._openedSnackBarRef=I,this._openedSnackBarRef}_animateSnackBar(a,p){a.afterDismissed().subscribe(()=>{this._openedSnackBarRef==a&&(this._openedSnackBarRef=null),p.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{a.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):a.containerInstance.enter(),p.duration&&p.duration>0&&a.afterOpened().subscribe(()=>a._dismissAfter(p.duration))}_createOverlay(a){const p=new e.X_;p.direction=a.direction;let u=this._overlay.position().global();const _="rtl"===a.direction,L="left"===a.horizontalPosition||"start"===a.horizontalPosition&&!_||"end"===a.horizontalPosition&&_,I=!L&&"center"!==a.horizontalPosition;return L?u.left("0"):I?u.right("0"):u.centerHorizontally(),"top"===a.verticalPosition?u.top("0"):u.bottom("0"),p.positionStrategy=u,this._overlay.create(p)}_createInjector(a,p){return M.zs3.create({parent:a&&a.viewContainerRef&&a.viewContainerRef.injector||this._injector,providers:[{provide:ee,useValue:p},{provide:U,useValue:a.data}]})}}return y.\u0275fac=function(a){return new(a||y)(M.LFG(e.aV),M.LFG(S.Kd),M.LFG(M.zs3),M.LFG(R.Yg),M.LFG(y,12),M.LFG(ne))},y.\u0275prov=M.Yz7({token:y,factory:y.\u0275fac,providedIn:de}),y})()},4847:(Ue,K,m)=>{"use strict";m.d(K,{YE:()=>ne,nU:()=>y,JX:()=>i});var e=m(5e3),t=m(3191),v=m(1159),M=m(508),s=m(7579),C=m(6451),c=m(1777),P=m(5664),o=m(9808);const O=["mat-sort-header",""];function T(a,p){if(1&a){const u=e.EpF();e.TgZ(0,"div",3),e.NdJ("@arrowPosition.start",function(){return e.CHM(u),e.oxw()._disableViewStateAnimation=!0})("@arrowPosition.done",function(){return e.CHM(u),e.oxw()._disableViewStateAnimation=!1}),e._UZ(1,"div",4),e.TgZ(2,"div",5),e._UZ(3,"div",6),e._UZ(4,"div",7),e._UZ(5,"div",8),e.qZA(),e.qZA()}if(2&a){const u=e.oxw();e.Q6J("@arrowOpacity",u._getArrowViewState())("@arrowPosition",u._getArrowViewState())("@allowChildren",u._getArrowDirectionState()),e.xp6(2),e.Q6J("@indicator",u._getArrowDirectionState()),e.xp6(1),e.Q6J("@leftPointer",u._getArrowDirectionState()),e.xp6(1),e.Q6J("@rightPointer",u._getArrowDirectionState())}}const R=["*"],S=M.mZ.ENTERING+" "+M.yN.STANDARD_CURVE,D={indicator:(0,c.X$)("indicator",[(0,c.SB)("active-asc, asc",(0,c.oB)({transform:"translateY(0px)"})),(0,c.SB)("active-desc, desc",(0,c.oB)({transform:"translateY(10px)"})),(0,c.eR)("active-asc <=> active-desc",(0,c.jt)(S))]),leftPointer:(0,c.X$)("leftPointer",[(0,c.SB)("active-asc, asc",(0,c.oB)({transform:"rotate(-45deg)"})),(0,c.SB)("active-desc, desc",(0,c.oB)({transform:"rotate(45deg)"})),(0,c.eR)("active-asc <=> active-desc",(0,c.jt)(S))]),rightPointer:(0,c.X$)("rightPointer",[(0,c.SB)("active-asc, asc",(0,c.oB)({transform:"rotate(45deg)"})),(0,c.SB)("active-desc, desc",(0,c.oB)({transform:"rotate(-45deg)"})),(0,c.eR)("active-asc <=> active-desc",(0,c.jt)(S))]),arrowOpacity:(0,c.X$)("arrowOpacity",[(0,c.SB)("desc-to-active, asc-to-active, active",(0,c.oB)({opacity:1})),(0,c.SB)("desc-to-hint, asc-to-hint, hint",(0,c.oB)({opacity:.54})),(0,c.SB)("hint-to-desc, active-to-desc, desc, hint-to-asc, active-to-asc, asc, void",(0,c.oB)({opacity:0})),(0,c.eR)("* => asc, * => desc, * => active, * => hint, * => void",(0,c.jt)("0ms")),(0,c.eR)("* <=> *",(0,c.jt)(S))]),arrowPosition:(0,c.X$)("arrowPosition",[(0,c.eR)("* => desc-to-hint, * => desc-to-active",(0,c.jt)(S,(0,c.F4)([(0,c.oB)({transform:"translateY(-25%)"}),(0,c.oB)({transform:"translateY(0)"})]))),(0,c.eR)("* => hint-to-desc, * => active-to-desc",(0,c.jt)(S,(0,c.F4)([(0,c.oB)({transform:"translateY(0)"}),(0,c.oB)({transform:"translateY(25%)"})]))),(0,c.eR)("* => asc-to-hint, * => asc-to-active",(0,c.jt)(S,(0,c.F4)([(0,c.oB)({transform:"translateY(25%)"}),(0,c.oB)({transform:"translateY(0)"})]))),(0,c.eR)("* => hint-to-asc, * => active-to-asc",(0,c.jt)(S,(0,c.F4)([(0,c.oB)({transform:"translateY(0)"}),(0,c.oB)({transform:"translateY(-25%)"})]))),(0,c.SB)("desc-to-hint, asc-to-hint, hint, desc-to-active, asc-to-active, active",(0,c.oB)({transform:"translateY(0)"})),(0,c.SB)("hint-to-desc, active-to-desc, desc",(0,c.oB)({transform:"translateY(-25%)"})),(0,c.SB)("hint-to-asc, active-to-asc, asc",(0,c.oB)({transform:"translateY(25%)"}))]),allowChildren:(0,c.X$)("allowChildren",[(0,c.eR)("* <=> *",[(0,c.IO)("@*",(0,c.pV)(),{optional:!0})])])};let ee=(()=>{class a{constructor(){this.changes=new s.x}}return a.\u0275fac=function(u){return new(u||a)},a.\u0275prov=e.Yz7({token:a,factory:a.\u0275fac,providedIn:"root"}),a})();const _e={provide:ee,deps:[[new e.FiY,new e.tp0,ee]],useFactory:function(a){return a||new ee}},fe=new e.OlP("MAT_SORT_DEFAULT_OPTIONS"),de=(0,M.dB)((0,M.Id)(class{}));let ne=(()=>{class a extends de{constructor(u){super(),this._defaultOptions=u,this.sortables=new Map,this._stateChanges=new s.x,this.start="asc",this._direction="",this.sortChange=new e.vpe}get direction(){return this._direction}set direction(u){this._direction=u}get disableClear(){return this._disableClear}set disableClear(u){this._disableClear=(0,t.Ig)(u)}register(u){this.sortables.set(u.id,u)}deregister(u){this.sortables.delete(u.id)}sort(u){this.active!=u.id?(this.active=u.id,this.direction=u.start?u.start:this.start):this.direction=this.getNextSortDirection(u),this.sortChange.emit({active:this.active,direction:this.direction})}getNextSortDirection(u){var _,L,I;if(!u)return"";const x=null!==(L=null!==(_=null==u?void 0:u.disableClear)&&void 0!==_?_:this.disableClear)&&void 0!==L?L:!!(null===(I=this._defaultOptions)||void 0===I?void 0:I.disableClear);let r=function(a,p){let u=["asc","desc"];return"desc"==a&&u.reverse(),p||u.push(""),u}(u.start||this.start,x),b=r.indexOf(this.direction)+1;return b>=r.length&&(b=0),r[b]}ngOnInit(){this._markInitialized()}ngOnChanges(){this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}}return a.\u0275fac=function(u){return new(u||a)(e.Y36(fe,8))},a.\u0275dir=e.lG2({type:a,selectors:[["","matSort",""]],hostAttrs:[1,"mat-sort"],inputs:{disabled:["matSortDisabled","disabled"],active:["matSortActive","active"],start:["matSortStart","start"],direction:["matSortDirection","direction"],disableClear:["matSortDisableClear","disableClear"]},outputs:{sortChange:"matSortChange"},exportAs:["matSort"],features:[e.qOj,e.TTD]}),a})();const oe=(0,M.Id)(class{});let y=(()=>{class a extends oe{constructor(u,_,L,I,x,r,b){super(),this._intl=u,this._changeDetectorRef=_,this._sort=L,this._columnDef=I,this._focusMonitor=x,this._elementRef=r,this._ariaDescriber=b,this._showIndicatorHint=!1,this._viewState={},this._arrowDirection="",this._disableViewStateAnimation=!1,this.arrowPosition="after",this._sortActionDescription="Sort",this._handleStateChanges()}get sortActionDescription(){return this._sortActionDescription}set sortActionDescription(u){this._updateSortActionDescription(u)}get disableClear(){return this._disableClear}set disableClear(u){this._disableClear=(0,t.Ig)(u)}ngOnInit(){!this.id&&this._columnDef&&(this.id=this._columnDef.name),this._updateArrowDirection(),this._setAnimationTransitionState({toState:this._isSorted()?"active":this._arrowDirection}),this._sort.register(this),this._sortButton=this._elementRef.nativeElement.querySelector('[role="button"]'),this._updateSortActionDescription(this._sortActionDescription)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(u=>{const _=!!u;_!==this._showIndicatorHint&&(this._setIndicatorHintVisible(_),this._changeDetectorRef.markForCheck())})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._sort.deregister(this),this._rerenderSubscription.unsubscribe()}_setIndicatorHintVisible(u){this._isDisabled()&&u||(this._showIndicatorHint=u,this._isSorted()||(this._updateArrowDirection(),this._setAnimationTransitionState(this._showIndicatorHint?{fromState:this._arrowDirection,toState:"hint"}:{fromState:"hint",toState:this._arrowDirection})))}_setAnimationTransitionState(u){this._viewState=u||{},this._disableViewStateAnimation&&(this._viewState={toState:u.toState})}_toggleOnInteraction(){this._sort.sort(this),("hint"===this._viewState.toState||"active"===this._viewState.toState)&&(this._disableViewStateAnimation=!0)}_handleClick(){this._isDisabled()||this._sort.sort(this)}_handleKeydown(u){!this._isDisabled()&&(u.keyCode===v.L_||u.keyCode===v.K5)&&(u.preventDefault(),this._toggleOnInteraction())}_isSorted(){return this._sort.active==this.id&&("asc"===this._sort.direction||"desc"===this._sort.direction)}_getArrowDirectionState(){return`${this._isSorted()?"active-":""}${this._arrowDirection}`}_getArrowViewState(){const u=this._viewState.fromState;return(u?`${u}-to-`:"")+this._viewState.toState}_updateArrowDirection(){this._arrowDirection=this._isSorted()?this._sort.direction:this.start||this._sort.start}_isDisabled(){return this._sort.disabled||this.disabled}_getAriaSortAttribute(){return this._isSorted()?"asc"==this._sort.direction?"ascending":"descending":"none"}_renderArrow(){return!this._isDisabled()||this._isSorted()}_updateSortActionDescription(u){var _,L;this._sortButton&&(null===(_=this._ariaDescriber)||void 0===_||_.removeDescription(this._sortButton,this._sortActionDescription),null===(L=this._ariaDescriber)||void 0===L||L.describe(this._sortButton,u)),this._sortActionDescription=u}_handleStateChanges(){this._rerenderSubscription=(0,C.T)(this._sort.sortChange,this._sort._stateChanges,this._intl.changes).subscribe(()=>{this._isSorted()&&(this._updateArrowDirection(),("hint"===this._viewState.toState||"active"===this._viewState.toState)&&(this._disableViewStateAnimation=!0),this._setAnimationTransitionState({fromState:this._arrowDirection,toState:"active"}),this._showIndicatorHint=!1),!this._isSorted()&&this._viewState&&"active"===this._viewState.toState&&(this._disableViewStateAnimation=!1,this._setAnimationTransitionState({fromState:"active",toState:this._arrowDirection})),this._changeDetectorRef.markForCheck()})}}return a.\u0275fac=function(u){return new(u||a)(e.Y36(ee),e.Y36(e.sBO),e.Y36(ne,8),e.Y36("MAT_SORT_HEADER_COLUMN_DEF",8),e.Y36(P.tE),e.Y36(e.SBq),e.Y36(P.$s,8))},a.\u0275cmp=e.Xpm({type:a,selectors:[["","mat-sort-header",""]],hostAttrs:[1,"mat-sort-header"],hostVars:3,hostBindings:function(u,_){1&u&&e.NdJ("click",function(){return _._handleClick()})("keydown",function(I){return _._handleKeydown(I)})("mouseenter",function(){return _._setIndicatorHintVisible(!0)})("mouseleave",function(){return _._setIndicatorHintVisible(!1)}),2&u&&(e.uIk("aria-sort",_._getAriaSortAttribute()),e.ekj("mat-sort-header-disabled",_._isDisabled()))},inputs:{disabled:"disabled",id:["mat-sort-header","id"],arrowPosition:"arrowPosition",start:"start",sortActionDescription:"sortActionDescription",disableClear:"disableClear"},exportAs:["matSortHeader"],features:[e.qOj],attrs:O,ngContentSelectors:R,decls:4,vars:6,consts:[["role","button",1,"mat-sort-header-container","mat-focus-indicator"],[1,"mat-sort-header-content"],["class","mat-sort-header-arrow",4,"ngIf"],[1,"mat-sort-header-arrow"],[1,"mat-sort-header-stem"],[1,"mat-sort-header-indicator"],[1,"mat-sort-header-pointer-left"],[1,"mat-sort-header-pointer-right"],[1,"mat-sort-header-pointer-middle"]],template:function(u,_){1&u&&(e.F$t(),e.TgZ(0,"div",0),e.TgZ(1,"div",1),e.Hsn(2),e.qZA(),e.YNc(3,T,6,6,"div",2),e.qZA()),2&u&&(e.ekj("mat-sort-header-sorted",_._isSorted())("mat-sort-header-position-before","before"==_.arrowPosition),e.uIk("tabindex",_._isDisabled()?null:0),e.xp6(3),e.Q6J("ngIf",_._renderArrow()))},directives:[o.O5],styles:[".mat-sort-header-container{display:flex;cursor:pointer;align-items:center;letter-spacing:normal;outline:0}[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container,[mat-sort-header].cdk-program-focused .mat-sort-header-container{border-bottom:solid 1px currentColor}.mat-sort-header-disabled .mat-sort-header-container{cursor:default}.mat-sort-header-content{text-align:center;display:flex;align-items:center}.mat-sort-header-position-before{flex-direction:row-reverse}.mat-sort-header-arrow{height:12px;width:12px;min-width:12px;position:relative;display:flex;opacity:0}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.mat-sort-header-stem{background:currentColor;height:10px;width:2px;margin:auto;display:flex;align-items:center}.cdk-high-contrast-active .mat-sort-header-stem{width:0;border-left:solid 2px}.mat-sort-header-indicator{width:100%;height:2px;display:flex;align-items:center;position:absolute;top:0;left:0}.mat-sort-header-pointer-middle{margin:auto;height:2px;width:2px;background:currentColor;transform:rotate(45deg)}.cdk-high-contrast-active .mat-sort-header-pointer-middle{width:0;height:0;border-top:solid 2px;border-left:solid 2px}.mat-sort-header-pointer-left,.mat-sort-header-pointer-right{background:currentColor;width:6px;height:2px;position:absolute;top:0}.cdk-high-contrast-active .mat-sort-header-pointer-left,.cdk-high-contrast-active .mat-sort-header-pointer-right{width:0;height:0;border-left:solid 6px;border-top:solid 2px}.mat-sort-header-pointer-left{transform-origin:right;left:0}.mat-sort-header-pointer-right{transform-origin:left;right:0}\n"],encapsulation:2,data:{animation:[D.indicator,D.leftPointer,D.rightPointer,D.arrowOpacity,D.arrowPosition,D.allowChildren]},changeDetection:0}),a})(),i=(()=>{class a{}return a.\u0275fac=function(u){return new(u||a)},a.\u0275mod=e.oAB({type:a}),a.\u0275inj=e.cJS({providers:[_e],imports:[[o.ez,M.BQ]]}),a})()},5615:(Ue,K,m)=>{"use strict";m.d(K,{C0:()=>Ae,VY:()=>F,Vq:()=>Ne,z9:()=>j,T5:()=>Te,Ic:()=>Ve,fd:()=>ue});var e=m(7429),t=m(1555),v=m(9808),M=m(5e3),s=m(7423),C=m(508),c=m(5245),P=m(7579),o=m(727),O=m(5664),T=m(3900),R=m(4004),S=m(8675),D=m(2722),w=m(1884),U=m(1777),G=m(226);function W(ke,Y){if(1&ke&&M.GkF(0,8),2&ke){const X=M.oxw();M.Q6J("ngTemplateOutlet",X.iconOverrides[X.state])("ngTemplateOutletContext",X._getIconContext())}}function ee(ke,Y){if(1&ke&&(M.TgZ(0,"span"),M._uU(1),M.qZA()),2&ke){const X=M.oxw(2);M.xp6(1),M.Oqu(X._getDefaultTextForState(X.state))}}function ie(ke,Y){if(1&ke&&(M.TgZ(0,"span",13),M._uU(1),M.qZA()),2&ke){const X=M.oxw(2);M.xp6(1),M.Oqu(X._intl.completedLabel)}}function _e(ke,Y){if(1&ke&&(M.TgZ(0,"span",13),M._uU(1),M.qZA()),2&ke){const X=M.oxw(2);M.xp6(1),M.Oqu(X._intl.editableLabel)}}function fe(ke,Y){if(1&ke&&(M.TgZ(0,"mat-icon"),M._uU(1),M.qZA()),2&ke){const X=M.oxw(2);M.xp6(1),M.Oqu(X._getDefaultTextForState(X.state))}}function de(ke,Y){if(1&ke&&(M.ynx(0,9),M.YNc(1,ee,2,1,"span",10),M.YNc(2,ie,2,1,"span",11),M.YNc(3,_e,2,1,"span",11),M.YNc(4,fe,2,1,"mat-icon",12),M.BQk()),2&ke){const X=M.oxw();M.Q6J("ngSwitch",X.state),M.xp6(1),M.Q6J("ngSwitchCase","number"),M.xp6(1),M.Q6J("ngIf","done"===X.state),M.xp6(1),M.Q6J("ngIf","edit"===X.state)}}function ne(ke,Y){if(1&ke&&(M.TgZ(0,"div",14),M.GkF(1,15),M.qZA()),2&ke){const X=M.oxw();M.xp6(1),M.Q6J("ngTemplateOutlet",X._templateLabel().template)}}function se(ke,Y){if(1&ke&&(M.TgZ(0,"div",14),M._uU(1),M.qZA()),2&ke){const X=M.oxw();M.xp6(1),M.Oqu(X.label)}}function oe(ke,Y){if(1&ke&&(M.TgZ(0,"div",16),M._uU(1),M.qZA()),2&ke){const X=M.oxw();M.xp6(1),M.Oqu(X._intl.optionalLabel)}}function y(ke,Y){if(1&ke&&(M.TgZ(0,"div",17),M._uU(1),M.qZA()),2&ke){const X=M.oxw();M.xp6(1),M.Oqu(X.errorMessage)}}function i(ke,Y){}function a(ke,Y){if(1&ke&&(M.Hsn(0),M.YNc(1,i,0,0,"ng-template",0)),2&ke){const X=M.oxw();M.xp6(1),M.Q6J("cdkPortalOutlet",X._portal)}}const p=["*"];function u(ke,Y){1&ke&&M._UZ(0,"div",9)}const _=function(ke,Y){return{step:ke,i:Y}};function L(ke,Y){if(1&ke&&(M.ynx(0),M.GkF(1,7),M.YNc(2,u,1,0,"div",8),M.BQk()),2&ke){const X=Y.$implicit,he=Y.index,Me=Y.last;M.oxw(2);const ze=M.MAs(4);M.xp6(1),M.Q6J("ngTemplateOutlet",ze)("ngTemplateOutletContext",M.WLB(3,_,X,he)),M.xp6(1),M.Q6J("ngIf",!Me)}}function I(ke,Y){if(1&ke){const X=M.EpF();M.TgZ(0,"div",10),M.NdJ("@horizontalStepTransition.done",function(Me){return M.CHM(X),M.oxw(2)._animationDone.next(Me)}),M.GkF(1,11),M.qZA()}if(2&ke){const X=Y.$implicit,he=Y.index,Me=M.oxw(2);M.Q6J("@horizontalStepTransition",Me._getAnimationDirection(he))("id",Me._getStepContentId(he)),M.uIk("aria-labelledby",Me._getStepLabelId(he))("aria-expanded",Me.selectedIndex===he),M.xp6(1),M.Q6J("ngTemplateOutlet",X.content)}}function x(ke,Y){if(1&ke&&(M.ynx(0),M.TgZ(1,"div",3),M.YNc(2,L,3,6,"ng-container",4),M.qZA(),M.TgZ(3,"div",5),M.YNc(4,I,2,5,"div",6),M.qZA(),M.BQk()),2&ke){const X=M.oxw();M.xp6(2),M.Q6J("ngForOf",X.steps),M.xp6(2),M.Q6J("ngForOf",X.steps)}}function r(ke,Y){if(1&ke){const X=M.EpF();M.TgZ(0,"div",13),M.GkF(1,7),M.TgZ(2,"div",14),M.TgZ(3,"div",15),M.NdJ("@verticalStepTransition.done",function(Me){return M.CHM(X),M.oxw(2)._animationDone.next(Me)}),M.TgZ(4,"div",16),M.GkF(5,11),M.qZA(),M.qZA(),M.qZA(),M.qZA()}if(2&ke){const X=Y.$implicit,he=Y.index,Me=Y.last,ze=M.oxw(2),ht=M.MAs(4);M.xp6(1),M.Q6J("ngTemplateOutlet",ht)("ngTemplateOutletContext",M.WLB(9,_,X,he)),M.xp6(1),M.ekj("mat-stepper-vertical-line",!Me),M.xp6(1),M.Q6J("@verticalStepTransition",ze._getAnimationDirection(he))("id",ze._getStepContentId(he)),M.uIk("aria-labelledby",ze._getStepLabelId(he))("aria-expanded",ze.selectedIndex===he),M.xp6(2),M.Q6J("ngTemplateOutlet",X.content)}}function b(ke,Y){if(1&ke&&(M.ynx(0),M.YNc(1,r,6,12,"div",12),M.BQk()),2&ke){const X=M.oxw();M.xp6(1),M.Q6J("ngForOf",X.steps)}}function J(ke,Y){if(1&ke){const X=M.EpF();M.TgZ(0,"mat-step-header",17),M.NdJ("click",function(){return M.CHM(X).step.select()})("keydown",function(Me){return M.CHM(X),M.oxw()._onKeydown(Me)}),M.qZA()}if(2&ke){const X=Y.step,he=Y.i,Me=M.oxw();M.ekj("mat-horizontal-stepper-header","horizontal"===Me.orientation)("mat-vertical-stepper-header","vertical"===Me.orientation),M.Q6J("tabIndex",Me._getFocusIndex()===he?0:-1)("id",Me._getStepLabelId(he))("index",he)("state",Me._getIndicatorType(he,X.state))("label",X.stepLabel||X.label)("selected",Me.selectedIndex===he)("active",Me._stepIsNavigable(he,X))("optional",X.optional)("errorMessage",X.errorMessage)("iconOverrides",Me._iconOverrides)("disableRipple",Me.disableRipple||!Me._stepIsNavigable(he,X))("color",X.color||Me.color),M.uIk("aria-posinset",he+1)("aria-setsize",Me.steps.length)("aria-controls",Me._getStepContentId(he))("aria-selected",Me.selectedIndex==he)("aria-label",X.ariaLabel||null)("aria-labelledby",!X.ariaLabel&&X.ariaLabelledby?X.ariaLabelledby:null)("aria-disabled",!Me._stepIsNavigable(he,X)||null)}}let F=(()=>{class ke extends t.u6{}return ke.\u0275fac=function(){let Y;return function(he){return(Y||(Y=M.n5z(ke)))(he||ke)}}(),ke.\u0275dir=M.lG2({type:ke,selectors:[["","matStepLabel",""]],features:[M.qOj]}),ke})(),B=(()=>{class ke{constructor(){this.changes=new P.x,this.optionalLabel="Optional",this.completedLabel="Completed",this.editableLabel="Editable"}}return ke.\u0275fac=function(X){return new(X||ke)},ke.\u0275prov=M.Yz7({token:ke,factory:ke.\u0275fac,providedIn:"root"}),ke})();const xe={provide:B,deps:[[new M.FiY,new M.tp0,B]],useFactory:function(ke){return ke||new B}},Re=(0,C.pj)(class extends t.KL{constructor(Y){super(Y)}},"primary");let Fe=(()=>{class ke extends Re{constructor(X,he,Me,ze){super(Me),this._intl=X,this._focusMonitor=he,this._intlSubscription=X.changes.subscribe(()=>ze.markForCheck())}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._intlSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._elementRef)}focus(X,he){X?this._focusMonitor.focusVia(this._elementRef,X,he):this._elementRef.nativeElement.focus(he)}_stringLabel(){return this.label instanceof F?null:this.label}_templateLabel(){return this.label instanceof F?this.label:null}_getHostElement(){return this._elementRef.nativeElement}_getIconContext(){return{index:this.index,active:this.active,optional:this.optional}}_getDefaultTextForState(X){return"number"==X?`${this.index+1}`:"edit"==X?"create":"error"==X?"warning":X}}return ke.\u0275fac=function(X){return new(X||ke)(M.Y36(B),M.Y36(O.tE),M.Y36(M.SBq),M.Y36(M.sBO))},ke.\u0275cmp=M.Xpm({type:ke,selectors:[["mat-step-header"]],hostAttrs:["role","tab",1,"mat-step-header"],inputs:{color:"color",state:"state",label:"label",errorMessage:"errorMessage",iconOverrides:"iconOverrides",index:"index",selected:"selected",active:"active",optional:"optional",disableRipple:"disableRipple"},features:[M.qOj],decls:10,vars:19,consts:[["matRipple","",1,"mat-step-header-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-step-icon-content",3,"ngSwitch"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngSwitchCase"],[3,"ngSwitch",4,"ngSwitchDefault"],[1,"mat-step-label"],["class","mat-step-text-label",4,"ngIf"],["class","mat-step-optional",4,"ngIf"],["class","mat-step-sub-label-error",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"ngSwitch"],[4,"ngSwitchCase"],["class","cdk-visually-hidden",4,"ngIf"],[4,"ngSwitchDefault"],[1,"cdk-visually-hidden"],[1,"mat-step-text-label"],[3,"ngTemplateOutlet"],[1,"mat-step-optional"],[1,"mat-step-sub-label-error"]],template:function(X,he){1&X&&(M._UZ(0,"div",0),M.TgZ(1,"div"),M.TgZ(2,"div",1),M.YNc(3,W,1,2,"ng-container",2),M.YNc(4,de,5,4,"ng-container",3),M.qZA(),M.qZA(),M.TgZ(5,"div",4),M.YNc(6,ne,2,1,"div",5),M.YNc(7,se,2,1,"div",5),M.YNc(8,oe,2,1,"div",6),M.YNc(9,y,2,1,"div",7),M.qZA()),2&X&&(M.Q6J("matRippleTrigger",he._getHostElement())("matRippleDisabled",he.disableRipple),M.xp6(1),M.Gre("mat-step-icon-state-",he.state," mat-step-icon"),M.ekj("mat-step-icon-selected",he.selected),M.xp6(1),M.Q6J("ngSwitch",!(!he.iconOverrides||!he.iconOverrides[he.state])),M.xp6(1),M.Q6J("ngSwitchCase",!0),M.xp6(2),M.ekj("mat-step-label-active",he.active)("mat-step-label-selected",he.selected)("mat-step-label-error","error"==he.state),M.xp6(1),M.Q6J("ngIf",he._templateLabel()),M.xp6(1),M.Q6J("ngIf",he._stringLabel()),M.xp6(1),M.Q6J("ngIf",he.optional&&"error"!=he.state),M.xp6(1),M.Q6J("ngIf","error"==he.state))},directives:[C.wG,v.RF,v.n9,v.ED,v.O5,v.tP,c.Hw],styles:[".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:transparent}.cdk-high-contrast-active .mat-step-header{outline:solid 1px}.cdk-high-contrast-active .mat-step-header.cdk-keyboard-focused,.cdk-high-contrast-active .mat-step-header.cdk-program-focused{outline:solid 3px}.cdk-high-contrast-active .mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.mat-step-optional,.mat-step-sub-label-error{font-size:12px}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative}.mat-step-icon-content,.mat-step-icon .mat-icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\n"],encapsulation:2,changeDetection:0}),ke})();const q={horizontalStepTransition:(0,U.X$)("horizontalStepTransition",[(0,U.SB)("previous",(0,U.oB)({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"})),(0,U.SB)("current",(0,U.oB)({transform:"none",visibility:"inherit"})),(0,U.SB)("next",(0,U.oB)({transform:"translate3d(100%, 0, 0)",visibility:"hidden"})),(0,U.eR)("* => *",(0,U.jt)("500ms cubic-bezier(0.35, 0, 0.25, 1)"))]),verticalStepTransition:(0,U.X$)("verticalStepTransition",[(0,U.SB)("previous",(0,U.oB)({height:"0px",visibility:"hidden"})),(0,U.SB)("next",(0,U.oB)({height:"0px",visibility:"hidden"})),(0,U.SB)("current",(0,U.oB)({height:"*",visibility:"inherit"})),(0,U.eR)("* <=> current",(0,U.jt)("225ms cubic-bezier(0.4, 0.0, 0.2, 1)"))])};let j=(()=>{class ke{constructor(X){this.templateRef=X}}return ke.\u0275fac=function(X){return new(X||ke)(M.Y36(M.Rgc))},ke.\u0275dir=M.lG2({type:ke,selectors:[["ng-template","matStepperIcon",""]],inputs:{name:["matStepperIcon","name"]}}),ke})(),we=(()=>{class ke{constructor(X){this._template=X}}return ke.\u0275fac=function(X){return new(X||ke)(M.Y36(M.Rgc))},ke.\u0275dir=M.lG2({type:ke,selectors:[["ng-template","matStepContent",""]]}),ke})(),Ae=(()=>{class ke extends t.be{constructor(X,he,Me,ze){super(X,ze),this._errorStateMatcher=he,this._viewContainerRef=Me,this._isSelected=o.w0.EMPTY}ngAfterContentInit(){this._isSelected=this._stepper.steps.changes.pipe((0,T.w)(()=>this._stepper.selectionChange.pipe((0,R.U)(X=>X.selectedStep===this),(0,S.O)(this._stepper.selected===this)))).subscribe(X=>{X&&this._lazyContent&&!this._portal&&(this._portal=new e.UE(this._lazyContent._template,this._viewContainerRef))})}ngOnDestroy(){this._isSelected.unsubscribe()}isErrorState(X,he){return this._errorStateMatcher.isErrorState(X,he)||!!(X&&X.invalid&&this.interacted)}}return ke.\u0275fac=function(X){return new(X||ke)(M.Y36((0,M.Gpc)(()=>Ne)),M.Y36(C.rD,4),M.Y36(M.s_b),M.Y36(t.gx,8))},ke.\u0275cmp=M.Xpm({type:ke,selectors:[["mat-step"]],contentQueries:function(X,he,Me){if(1&X&&(M.Suo(Me,F,5),M.Suo(Me,we,5)),2&X){let ze;M.iGM(ze=M.CRH())&&(he.stepLabel=ze.first),M.iGM(ze=M.CRH())&&(he._lazyContent=ze.first)}},inputs:{color:"color"},exportAs:["matStep"],features:[M._Bn([{provide:C.rD,useExisting:ke},{provide:t.be,useExisting:ke}]),M.qOj],ngContentSelectors:p,decls:1,vars:0,consts:[[3,"cdkPortalOutlet"]],template:function(X,he){1&X&&(M.F$t(),M.YNc(0,a,2,1,"ng-template"))},directives:[e.Pl],encapsulation:2,changeDetection:0}),ke})(),le=(()=>{class ke extends t.B8{}return ke.\u0275fac=function(){let Y;return function(he){return(Y||(Y=M.n5z(ke)))(he||ke)}}(),ke.\u0275dir=M.lG2({type:ke,features:[M.qOj]}),ke})(),We=(()=>{class ke extends le{}return ke.\u0275fac=function(){let Y;return function(he){return(Y||(Y=M.n5z(ke)))(he||ke)}}(),ke.\u0275dir=M.lG2({type:ke,selectors:[["mat-horizontal-stepper"]],features:[M.qOj]}),ke})(),yt=(()=>{class ke extends le{}return ke.\u0275fac=function(){let Y;return function(he){return(Y||(Y=M.n5z(ke)))(he||ke)}}(),ke.\u0275dir=M.lG2({type:ke,selectors:[["mat-vertical-stepper"]],features:[M.qOj]}),ke})(),Ne=(()=>{class ke extends t.B8{constructor(X,he,Me,ze){super(X,he,Me,ze),this.steps=new M.n_E,this.animationDone=new M.vpe,this.labelPosition="end",this._iconOverrides={},this._animationDone=new P.x;const ht=Me.nativeElement.nodeName.toLowerCase();this.orientation="mat-vertical-stepper"===ht?"vertical":"horizontal"}ngAfterContentInit(){super.ngAfterContentInit(),this._icons.forEach(({name:X,templateRef:he})=>this._iconOverrides[X]=he),this.steps.changes.pipe((0,D.R)(this._destroyed)).subscribe(()=>{this._stateChanged()}),this._animationDone.pipe((0,w.x)((X,he)=>X.fromState===he.fromState&&X.toState===he.toState),(0,D.R)(this._destroyed)).subscribe(X=>{"current"===X.toState&&this.animationDone.emit()})}_stepIsNavigable(X,he){return he.completed||this.selectedIndex===X||!this.linear}}return ke.\u0275fac=function(X){return new(X||ke)(M.Y36(G.Is,8),M.Y36(M.sBO),M.Y36(M.SBq),M.Y36(v.K0))},ke.\u0275cmp=M.Xpm({type:ke,selectors:[["mat-stepper"],["mat-vertical-stepper"],["mat-horizontal-stepper"],["","matStepper",""]],contentQueries:function(X,he,Me){if(1&X&&(M.Suo(Me,Ae,5),M.Suo(Me,j,5)),2&X){let ze;M.iGM(ze=M.CRH())&&(he._steps=ze),M.iGM(ze=M.CRH())&&(he._icons=ze)}},viewQuery:function(X,he){if(1&X&&M.Gf(Fe,5),2&X){let Me;M.iGM(Me=M.CRH())&&(he._stepHeader=Me)}},hostAttrs:["role","tablist"],hostVars:9,hostBindings:function(X,he){2&X&&(M.uIk("aria-orientation",he.orientation),M.ekj("mat-stepper-horizontal","horizontal"===he.orientation)("mat-stepper-vertical","vertical"===he.orientation)("mat-stepper-label-position-end","horizontal"===he.orientation&&"end"==he.labelPosition)("mat-stepper-label-position-bottom","horizontal"===he.orientation&&"bottom"==he.labelPosition))},inputs:{selectedIndex:"selectedIndex",disableRipple:"disableRipple",color:"color",labelPosition:"labelPosition"},outputs:{animationDone:"animationDone"},exportAs:["matStepper","matVerticalStepper","matHorizontalStepper"],features:[M._Bn([{provide:t.B8,useExisting:ke},{provide:We,useExisting:ke},{provide:yt,useExisting:ke}]),M.qOj],decls:5,vars:3,consts:[[3,"ngSwitch"],[4,"ngSwitchCase"],["stepTemplate",""],[1,"mat-horizontal-stepper-header-container"],[4,"ngFor","ngForOf"],[1,"mat-horizontal-content-container"],["class","mat-horizontal-stepper-content","role","tabpanel",3,"id",4,"ngFor","ngForOf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","mat-stepper-horizontal-line",4,"ngIf"],[1,"mat-stepper-horizontal-line"],["role","tabpanel",1,"mat-horizontal-stepper-content",3,"id"],[3,"ngTemplateOutlet"],["class","mat-step",4,"ngFor","ngForOf"],[1,"mat-step"],[1,"mat-vertical-content-container"],["role","tabpanel",1,"mat-vertical-stepper-content",3,"id"],[1,"mat-vertical-content"],[3,"tabIndex","id","index","state","label","selected","active","optional","errorMessage","iconOverrides","disableRipple","color","click","keydown"]],template:function(X,he){1&X&&(M.ynx(0,0),M.YNc(1,x,5,2,"ng-container",1),M.YNc(2,b,2,1,"ng-container",1),M.BQk(),M.YNc(3,J,1,23,"ng-template",null,2,M.W1O)),2&X&&(M.Q6J("ngSwitch",he.orientation),M.xp6(1),M.Q6J("ngSwitchCase","horizontal"),M.xp6(1),M.Q6J("ngSwitchCase","vertical"))},directives:[v.RF,v.n9,v.sg,v.tP,v.O5,Fe],styles:['.mat-stepper-vertical,.mat-stepper-horizontal{display:block}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:"";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content[aria-expanded=false]{height:0;overflow:hidden}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.cdk-high-contrast-active .mat-horizontal-content-container{outline:solid 1px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}.cdk-high-contrast-active .mat-vertical-content-container{outline:solid 1px}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:"";position:absolute;left:0;border-left-width:1px;border-left-style:solid}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}\n'],encapsulation:2,data:{animation:[q.horizontalStepTransition,q.verticalStepTransition]},changeDetection:0}),ke})(),Ve=(()=>{class ke extends t.st{}return ke.\u0275fac=function(){let Y;return function(he){return(Y||(Y=M.n5z(ke)))(he||ke)}}(),ke.\u0275dir=M.lG2({type:ke,selectors:[["button","matStepperNext",""]],hostAttrs:[1,"mat-stepper-next"],hostVars:1,hostBindings:function(X,he){2&X&&M.Ikx("type",he.type)},inputs:{type:"type"},features:[M.qOj]}),ke})(),ue=(()=>{class ke extends t.po{}return ke.\u0275fac=function(){let Y;return function(he){return(Y||(Y=M.n5z(ke)))(he||ke)}}(),ke.\u0275dir=M.lG2({type:ke,selectors:[["button","matStepperPrevious",""]],hostAttrs:[1,"mat-stepper-previous"],hostVars:1,hostBindings:function(X,he){2&X&&M.Ikx("type",he.type)},inputs:{type:"type"},features:[M.qOj]}),ke})(),Te=(()=>{class ke{}return ke.\u0275fac=function(X){return new(X||ke)},ke.\u0275mod=M.oAB({type:ke}),ke.\u0275inj=M.cJS({providers:[xe,C.rD],imports:[[C.BQ,v.ez,e.eL,s.ot,t.U5,c.Ps,C.si],C.BQ]}),ke})()},2075:(Ue,K,m)=>{"use strict";m.d(K,{ev:()=>Be,Dz:()=>et,w1:()=>Xt,yh:()=>Pe,mD:()=>Pt,Q2:()=>Ut,Ke:()=>ot,ge:()=>lt,fO:()=>$t,XQ:()=>li,as:()=>rt,Gk:()=>Ft,nj:()=>At,BZ:()=>Ee,by:()=>Xi,p0:()=>rn});var e=m(5e3),t=m(3191),v=m(449),M=m(9808),s=m(7579),C=m(457),c=m(1135),P=m(5191),o=m(9646),O=m(2722),T=m(5698),R=m(226),S=m(925),D=m(5303);const w=[[["caption"]],[["colgroup"],["col"]]],U=["caption","colgroup, col"];function ee(Ke){return class extends Ke{constructor(...mt){super(...mt),this._sticky=!1,this._hasStickyChanged=!1}get sticky(){return this._sticky}set sticky(mt){const be=this._sticky;this._sticky=(0,t.Ig)(mt),this._hasStickyChanged=be!==this._sticky}hasStickyChanged(){const mt=this._hasStickyChanged;return this._hasStickyChanged=!1,mt}resetStickyChanged(){this._hasStickyChanged=!1}}}const ie=new e.OlP("CDK_TABLE");let fe=(()=>{class Ke{constructor(be){this.template=be}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.Rgc))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","cdkCellDef",""]]}),Ke})(),de=(()=>{class Ke{constructor(be){this.template=be}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.Rgc))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","cdkHeaderCellDef",""]]}),Ke})(),ne=(()=>{class Ke{constructor(be){this.template=be}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.Rgc))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","cdkFooterCellDef",""]]}),Ke})();class se{}const oe=ee(se);let y=(()=>{class Ke extends oe{constructor(be){super(),this._table=be,this._stickyEnd=!1}get name(){return this._name}set name(be){this._setNameInput(be)}get stickyEnd(){return this._stickyEnd}set stickyEnd(be){const qe=this._stickyEnd;this._stickyEnd=(0,t.Ig)(be),this._hasStickyChanged=qe!==this._stickyEnd}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(be){be&&(this._name=be,this.cssClassFriendlyName=be.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(ie,8))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","cdkColumnDef",""]],contentQueries:function(be,qe,vt){if(1&be&&(e.Suo(vt,fe,5),e.Suo(vt,de,5),e.Suo(vt,ne,5)),2&be){let me;e.iGM(me=e.CRH())&&(qe.cell=me.first),e.iGM(me=e.CRH())&&(qe.headerCell=me.first),e.iGM(me=e.CRH())&&(qe.footerCell=me.first)}},inputs:{sticky:"sticky",name:["cdkColumnDef","name"],stickyEnd:"stickyEnd"},features:[e._Bn([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:Ke}]),e.qOj]}),Ke})();class i{constructor(mt,be){const qe=be.nativeElement.classList;for(const vt of mt._columnCssClassName)qe.add(vt)}}let a=(()=>{class Ke extends i{constructor(be,qe){super(be,qe)}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(y),e.Y36(e.SBq))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[e.qOj]}),Ke})(),p=(()=>{class Ke extends i{constructor(be,qe){var vt;if(super(be,qe),1===(null===(vt=be._table)||void 0===vt?void 0:vt._elementRef.nativeElement.nodeType)){const me=be._table._elementRef.nativeElement.getAttribute("role");qe.nativeElement.setAttribute("role","grid"===me||"treegrid"===me?"gridcell":"cell")}}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(y),e.Y36(e.SBq))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["cdk-footer-cell"],["td","cdk-footer-cell",""]],hostAttrs:[1,"cdk-footer-cell"],features:[e.qOj]}),Ke})(),u=(()=>{class Ke extends i{constructor(be,qe){var vt;if(super(be,qe),1===(null===(vt=be._table)||void 0===vt?void 0:vt._elementRef.nativeElement.nodeType)){const me=be._table._elementRef.nativeElement.getAttribute("role");qe.nativeElement.setAttribute("role","grid"===me||"treegrid"===me?"gridcell":"cell")}}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(y),e.Y36(e.SBq))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[e.qOj]}),Ke})();class _{constructor(){this.tasks=[],this.endTasks=[]}}const L=new e.OlP("_COALESCED_STYLE_SCHEDULER");let I=(()=>{class Ke{constructor(be){this._ngZone=be,this._currentSchedule=null,this._destroyed=new s.x}schedule(be){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(be)}scheduleEnd(be){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(be)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new _,this._getScheduleObservable().pipe((0,O.R)(this._destroyed)).subscribe(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){const be=this._currentSchedule;this._currentSchedule=new _;for(const qe of be.tasks)qe();for(const qe of be.endTasks)qe()}this._currentSchedule=null}))}_getScheduleObservable(){return this._ngZone.isStable?(0,C.D)(Promise.resolve(void 0)):this._ngZone.onStable.pipe((0,T.q)(1))}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.LFG(e.R0b))},Ke.\u0275prov=e.Yz7({token:Ke,factory:Ke.\u0275fac}),Ke})(),r=(()=>{class Ke{constructor(be,qe){this.template=be,this._differs=qe}ngOnChanges(be){if(!this._columnsDiffer){const qe=be.columns&&be.columns.currentValue||[];this._columnsDiffer=this._differs.find(qe).create(),this._columnsDiffer.diff(qe)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(be){return this instanceof F?be.headerCell.template:this instanceof xe?be.footerCell.template:be.cell.template}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.Rgc),e.Y36(e.ZZ4))},Ke.\u0275dir=e.lG2({type:Ke,features:[e.TTD]}),Ke})();class b extends r{}const J=ee(b);let F=(()=>{class Ke extends J{constructor(be,qe,vt){super(be,qe),this._table=vt}ngOnChanges(be){super.ngOnChanges(be)}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.Rgc),e.Y36(e.ZZ4),e.Y36(ie,8))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:["cdkHeaderRowDef","columns"],sticky:["cdkHeaderRowDefSticky","sticky"]},features:[e.qOj,e.TTD]}),Ke})();class B extends r{}const te=ee(B);let xe=(()=>{class Ke extends te{constructor(be,qe,vt){super(be,qe),this._table=vt}ngOnChanges(be){super.ngOnChanges(be)}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.Rgc),e.Y36(e.ZZ4),e.Y36(ie,8))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:["cdkFooterRowDef","columns"],sticky:["cdkFooterRowDefSticky","sticky"]},features:[e.qOj,e.TTD]}),Ke})(),Re=(()=>{class Ke extends r{constructor(be,qe,vt){super(be,qe),this._table=vt}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.Rgc),e.Y36(e.ZZ4),e.Y36(ie,8))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","cdkRowDef",""]],inputs:{columns:["cdkRowDefColumns","columns"],when:["cdkRowDefWhen","when"]},features:[e.qOj]}),Ke})(),Fe=(()=>{class Ke{constructor(be){this._viewContainer=be,Ke.mostRecentCellOutlet=this}ngOnDestroy(){Ke.mostRecentCellOutlet===this&&(Ke.mostRecentCellOutlet=null)}}return Ke.mostRecentCellOutlet=null,Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.s_b))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","cdkCellOutlet",""]]}),Ke})(),q=(()=>{class Ke{}return Ke.\u0275fac=function(be){return new(be||Ke)},Ke.\u0275cmp=e.Xpm({type:Ke,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(be,qe){1&be&&e.GkF(0,0)},directives:[Fe],encapsulation:2}),Ke})(),j=(()=>{class Ke{}return Ke.\u0275fac=function(be){return new(be||Ke)},Ke.\u0275cmp=e.Xpm({type:Ke,selectors:[["cdk-footer-row"],["tr","cdk-footer-row",""]],hostAttrs:["role","row",1,"cdk-footer-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(be,qe){1&be&&e.GkF(0,0)},directives:[Fe],encapsulation:2}),Ke})(),we=(()=>{class Ke{}return Ke.\u0275fac=function(be){return new(be||Ke)},Ke.\u0275cmp=e.Xpm({type:Ke,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(be,qe){1&be&&e.GkF(0,0)},directives:[Fe],encapsulation:2}),Ke})(),Ae=(()=>{class Ke{constructor(be){this.templateRef=be,this._contentClassName="cdk-no-data-row"}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.Rgc))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["ng-template","cdkNoDataRow",""]]}),Ke})();const le=["top","bottom","left","right"];class We{constructor(mt,be,qe,vt,me=!0,$e=!0,St){this._isNativeHtmlTable=mt,this._stickCellCss=be,this.direction=qe,this._coalescedStyleScheduler=vt,this._isBrowser=me,this._needsPositionStickyOnElement=$e,this._positionListener=St,this._cachedCellWidths=[],this._borderCellCss={top:`${be}-border-elem-top`,bottom:`${be}-border-elem-bottom`,left:`${be}-border-elem-left`,right:`${be}-border-elem-right`}}clearStickyPositioning(mt,be){const qe=[];for(const vt of mt)if(vt.nodeType===vt.ELEMENT_NODE){qe.push(vt);for(let me=0;me{for(const vt of qe)this._removeStickyStyle(vt,be)})}updateStickyColumns(mt,be,qe,vt=!0){if(!mt.length||!this._isBrowser||!be.some(Ki=>Ki)&&!qe.some(Ki=>Ki))return void(this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:[]}),this._positionListener.stickyEndColumnsUpdated({sizes:[]})));const me=mt[0],$e=me.children.length,St=this._getCellWidths(me,vt),Rt=this._getStickyStartColumnPositions(St,be),yi=this._getStickyEndColumnPositions(St,qe),Ri=be.lastIndexOf(!0),Ii=qe.indexOf(!0);this._coalescedStyleScheduler.schedule(()=>{const Ki="rtl"===this.direction,at=Ki?"right":"left",Qt=Ki?"left":"right";for(const gt of mt)for(let Lt=0;Lt<$e;Lt++){const ui=gt.children[Lt];be[Lt]&&this._addStickyStyle(ui,at,Rt[Lt],Lt===Ri),qe[Lt]&&this._addStickyStyle(ui,Qt,yi[Lt],Lt===Ii)}this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:-1===Ri?[]:St.slice(0,Ri+1).map((gt,Lt)=>be[Lt]?gt:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:-1===Ii?[]:St.slice(Ii).map((gt,Lt)=>qe[Lt+Ii]?gt:null).reverse()}))})}stickRows(mt,be,qe){if(!this._isBrowser)return;const vt="bottom"===qe?mt.slice().reverse():mt,me="bottom"===qe?be.slice().reverse():be,$e=[],St=[],Rt=[];for(let Ri=0,Ii=0;Ri{var Ri,Ii;for(let Ki=0;Ki{be.some(vt=>!vt)?this._removeStickyStyle(qe,["bottom"]):this._addStickyStyle(qe,"bottom",0,!1)})}_removeStickyStyle(mt,be){for(const vt of be)mt.style[vt]="",mt.classList.remove(this._borderCellCss[vt]);le.some(vt=>-1===be.indexOf(vt)&&mt.style[vt])?mt.style.zIndex=this._getCalculatedZIndex(mt):(mt.style.zIndex="",this._needsPositionStickyOnElement&&(mt.style.position=""),mt.classList.remove(this._stickCellCss))}_addStickyStyle(mt,be,qe,vt){mt.classList.add(this._stickCellCss),vt&&mt.classList.add(this._borderCellCss[be]),mt.style[be]=`${qe}px`,mt.style.zIndex=this._getCalculatedZIndex(mt),this._needsPositionStickyOnElement&&(mt.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(mt){const be={top:100,bottom:10,left:1,right:1};let qe=0;for(const vt of le)mt.style[vt]&&(qe+=be[vt]);return qe?`${qe}`:""}_getCellWidths(mt,be=!0){if(!be&&this._cachedCellWidths.length)return this._cachedCellWidths;const qe=[],vt=mt.children;for(let me=0;me0;me--)be[me]&&(qe[me]=vt,vt+=mt[me]);return qe}}const he=new e.OlP("CDK_SPL");let ze=(()=>{class Ke{constructor(be,qe){this.viewContainer=be,this.elementRef=qe}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.s_b),e.Y36(e.SBq))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","rowOutlet",""]]}),Ke})(),ht=(()=>{class Ke{constructor(be,qe){this.viewContainer=be,this.elementRef=qe}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.s_b),e.Y36(e.SBq))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","headerRowOutlet",""]]}),Ke})(),it=(()=>{class Ke{constructor(be,qe){this.viewContainer=be,this.elementRef=qe}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.s_b),e.Y36(e.SBq))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","footerRowOutlet",""]]}),Ke})(),ft=(()=>{class Ke{constructor(be,qe){this.viewContainer=be,this.elementRef=qe}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.s_b),e.Y36(e.SBq))},Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","noDataRowOutlet",""]]}),Ke})(),wt=(()=>{class Ke{constructor(be,qe,vt,me,$e,St,Rt,yi,Ri,Ii,Ki){this._differs=be,this._changeDetectorRef=qe,this._elementRef=vt,this._dir=$e,this._platform=Rt,this._viewRepeater=yi,this._coalescedStyleScheduler=Ri,this._viewportRuler=Ii,this._stickyPositioningListener=Ki,this._onDestroy=new s.x,this._columnDefsByName=new Map,this._customColumnDefs=new Set,this._customRowDefs=new Set,this._customHeaderRowDefs=new Set,this._customFooterRowDefs=new Set,this._headerRowDefChanged=!0,this._footerRowDefChanged=!0,this._stickyColumnStylesNeedReset=!0,this._forceRecalculateCellWidths=!0,this._cachedRenderRowsMap=new Map,this.stickyCssClass="cdk-table-sticky",this.needsPositionStickyOnElement=!0,this._isShowingNoDataRow=!1,this._multiTemplateDataRows=!1,this._fixedLayout=!1,this.contentChanged=new e.vpe,this.viewChange=new c.X({start:0,end:Number.MAX_VALUE}),me||this._elementRef.nativeElement.setAttribute("role","table"),this._document=St,this._isNativeHtmlTable="TABLE"===this._elementRef.nativeElement.nodeName}get trackBy(){return this._trackByFn}set trackBy(be){this._trackByFn=be}get dataSource(){return this._dataSource}set dataSource(be){this._dataSource!==be&&this._switchDataSource(be)}get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(be){this._multiTemplateDataRows=(0,t.Ig)(be),this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}get fixedLayout(){return this._fixedLayout}set fixedLayout(be){this._fixedLayout=(0,t.Ig)(be),this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}ngOnInit(){this._setupStickyStyler(),this._isNativeHtmlTable&&this._applyNativeTableSections(),this._dataDiffer=this._differs.find([]).create((be,qe)=>this.trackBy?this.trackBy(qe.dataIndex,qe.data):qe),this._viewportRuler.change().pipe((0,O.R)(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentChecked(){this._cacheRowDefs(),this._cacheColumnDefs();const qe=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||qe,this._forceRecalculateCellWidths=qe,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}ngOnDestroy(){this._rowOutlet.viewContainer.clear(),this._noDataRowOutlet.viewContainer.clear(),this._headerRowOutlet.viewContainer.clear(),this._footerRowOutlet.viewContainer.clear(),this._cachedRenderRowsMap.clear(),this._onDestroy.next(),this._onDestroy.complete(),(0,v.Z9)(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();const be=this._dataDiffer.diff(this._renderRows);if(!be)return this._updateNoDataRow(),void this.contentChanged.next();const qe=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(be,qe,(vt,me,$e)=>this._getEmbeddedViewArgs(vt.item,$e),vt=>vt.item.data,vt=>{1===vt.operation&&vt.context&&this._renderCellTemplateForItem(vt.record.item.rowDef,vt.context)}),this._updateRowIndexContext(),be.forEachIdentityChange(vt=>{qe.get(vt.currentIndex).context.$implicit=vt.item.data}),this._updateNoDataRow(),this.updateStickyColumnStyles(),this.contentChanged.next()}addColumnDef(be){this._customColumnDefs.add(be)}removeColumnDef(be){this._customColumnDefs.delete(be)}addRowDef(be){this._customRowDefs.add(be)}removeRowDef(be){this._customRowDefs.delete(be)}addHeaderRowDef(be){this._customHeaderRowDefs.add(be),this._headerRowDefChanged=!0}removeHeaderRowDef(be){this._customHeaderRowDefs.delete(be),this._headerRowDefChanged=!0}addFooterRowDef(be){this._customFooterRowDefs.add(be),this._footerRowDefChanged=!0}removeFooterRowDef(be){this._customFooterRowDefs.delete(be),this._footerRowDefChanged=!0}setNoDataRow(be){this._customNoDataRow=be}updateStickyHeaderRowStyles(){const be=this._getRenderedRows(this._headerRowOutlet),vt=this._elementRef.nativeElement.querySelector("thead");vt&&(vt.style.display=be.length?"":"none");const me=this._headerRowDefs.map($e=>$e.sticky);this._stickyStyler.clearStickyPositioning(be,["top"]),this._stickyStyler.stickRows(be,me,"top"),this._headerRowDefs.forEach($e=>$e.resetStickyChanged())}updateStickyFooterRowStyles(){const be=this._getRenderedRows(this._footerRowOutlet),vt=this._elementRef.nativeElement.querySelector("tfoot");vt&&(vt.style.display=be.length?"":"none");const me=this._footerRowDefs.map($e=>$e.sticky);this._stickyStyler.clearStickyPositioning(be,["bottom"]),this._stickyStyler.stickRows(be,me,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,me),this._footerRowDefs.forEach($e=>$e.resetStickyChanged())}updateStickyColumnStyles(){const be=this._getRenderedRows(this._headerRowOutlet),qe=this._getRenderedRows(this._rowOutlet),vt=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...be,...qe,...vt],["left","right"]),this._stickyColumnStylesNeedReset=!1),be.forEach((me,$e)=>{this._addStickyColumnStyles([me],this._headerRowDefs[$e])}),this._rowDefs.forEach(me=>{const $e=[];for(let St=0;St{this._addStickyColumnStyles([me],this._footerRowDefs[$e])}),Array.from(this._columnDefsByName.values()).forEach(me=>me.resetStickyChanged())}_getAllRenderRows(){const be=[],qe=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let vt=0;vt{const St=vt&&vt.has($e)?vt.get($e):[];if(St.length){const Rt=St.shift();return Rt.dataIndex=qe,Rt}return{data:be,rowDef:$e,dataIndex:qe}})}_cacheColumnDefs(){this._columnDefsByName.clear(),Bt(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(qe=>{this._columnDefsByName.has(qe.name),this._columnDefsByName.set(qe.name,qe)})}_cacheRowDefs(){this._headerRowDefs=Bt(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=Bt(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=Bt(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);const be=this._rowDefs.filter(qe=>!qe.when);this._defaultRowDef=be[0]}_renderUpdatedColumns(){const be=($e,St)=>$e||!!St.getColumnsDiff(),qe=this._rowDefs.reduce(be,!1);qe&&this._forceRenderDataRows();const vt=this._headerRowDefs.reduce(be,!1);vt&&this._forceRenderHeaderRows();const me=this._footerRowDefs.reduce(be,!1);return me&&this._forceRenderFooterRows(),qe||vt||me}_switchDataSource(be){this._data=[],(0,v.Z9)(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),be||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear()),this._dataSource=be}_observeRenderChanges(){if(!this.dataSource)return;let be;(0,v.Z9)(this.dataSource)?be=this.dataSource.connect(this):(0,P.b)(this.dataSource)?be=this.dataSource:Array.isArray(this.dataSource)&&(be=(0,o.of)(this.dataSource)),this._renderChangeSubscription=be.pipe((0,O.R)(this._onDestroy)).subscribe(qe=>{this._data=qe||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((be,qe)=>this._renderRow(this._headerRowOutlet,be,qe)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((be,qe)=>this._renderRow(this._footerRowOutlet,be,qe)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(be,qe){const vt=Array.from(qe.columns||[]).map(St=>this._columnDefsByName.get(St)),me=vt.map(St=>St.sticky),$e=vt.map(St=>St.stickyEnd);this._stickyStyler.updateStickyColumns(be,me,$e,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(be){const qe=[];for(let vt=0;vt!me.when||me.when(qe,be));else{let me=this._rowDefs.find($e=>$e.when&&$e.when(qe,be))||this._defaultRowDef;me&&vt.push(me)}return vt}_getEmbeddedViewArgs(be,qe){return{templateRef:be.rowDef.template,context:{$implicit:be.data},index:qe}}_renderRow(be,qe,vt,me={}){const $e=be.viewContainer.createEmbeddedView(qe.template,me,vt);return this._renderCellTemplateForItem(qe,me),$e}_renderCellTemplateForItem(be,qe){for(let vt of this._getCellTemplates(be))Fe.mostRecentCellOutlet&&Fe.mostRecentCellOutlet._viewContainer.createEmbeddedView(vt,qe);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){const be=this._rowOutlet.viewContainer;for(let qe=0,vt=be.length;qe{const vt=this._columnDefsByName.get(qe);return be.extractCellTemplate(vt)}):[]}_applyNativeTableSections(){const be=this._document.createDocumentFragment(),qe=[{tag:"thead",outlets:[this._headerRowOutlet]},{tag:"tbody",outlets:[this._rowOutlet,this._noDataRowOutlet]},{tag:"tfoot",outlets:[this._footerRowOutlet]}];for(const vt of qe){const me=this._document.createElement(vt.tag);me.setAttribute("role","rowgroup");for(const $e of vt.outlets)me.appendChild($e.elementRef.nativeElement);be.appendChild(me)}this._elementRef.nativeElement.appendChild(be)}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){const be=(qe,vt)=>qe||vt.hasStickyChanged();this._headerRowDefs.reduce(be,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(be,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(be,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){this._stickyStyler=new We(this._isNativeHtmlTable,this.stickyCssClass,this._dir?this._dir.value:"ltr",this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener),(this._dir?this._dir.change:(0,o.of)()).pipe((0,O.R)(this._onDestroy)).subscribe(qe=>{this._stickyStyler.direction=qe,this.updateStickyColumnStyles()})}_getOwnDefs(be){return be.filter(qe=>!qe._table||qe._table===this)}_updateNoDataRow(){const be=this._customNoDataRow||this._noDataRow;if(!be)return;const qe=0===this._rowOutlet.viewContainer.length;if(qe===this._isShowingNoDataRow)return;const vt=this._noDataRowOutlet.viewContainer;if(qe){const me=vt.createEmbeddedView(be.templateRef),$e=me.rootNodes[0];1===me.rootNodes.length&&(null==$e?void 0:$e.nodeType)===this._document.ELEMENT_NODE&&($e.setAttribute("role","row"),$e.classList.add(be._contentClassName))}else vt.clear();this._isShowingNoDataRow=qe}}return Ke.\u0275fac=function(be){return new(be||Ke)(e.Y36(e.ZZ4),e.Y36(e.sBO),e.Y36(e.SBq),e.$8M("role"),e.Y36(R.Is,8),e.Y36(M.K0),e.Y36(S.t4),e.Y36(v.k),e.Y36(L),e.Y36(D.rL),e.Y36(he,12))},Ke.\u0275cmp=e.Xpm({type:Ke,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(be,qe,vt){if(1&be&&(e.Suo(vt,Ae,5),e.Suo(vt,y,5),e.Suo(vt,Re,5),e.Suo(vt,F,5),e.Suo(vt,xe,5)),2&be){let me;e.iGM(me=e.CRH())&&(qe._noDataRow=me.first),e.iGM(me=e.CRH())&&(qe._contentColumnDefs=me),e.iGM(me=e.CRH())&&(qe._contentRowDefs=me),e.iGM(me=e.CRH())&&(qe._contentHeaderRowDefs=me),e.iGM(me=e.CRH())&&(qe._contentFooterRowDefs=me)}},viewQuery:function(be,qe){if(1&be&&(e.Gf(ze,7),e.Gf(ht,7),e.Gf(it,7),e.Gf(ft,7)),2&be){let vt;e.iGM(vt=e.CRH())&&(qe._rowOutlet=vt.first),e.iGM(vt=e.CRH())&&(qe._headerRowOutlet=vt.first),e.iGM(vt=e.CRH())&&(qe._footerRowOutlet=vt.first),e.iGM(vt=e.CRH())&&(qe._noDataRowOutlet=vt.first)}},hostAttrs:[1,"cdk-table"],hostVars:2,hostBindings:function(be,qe){2&be&&e.ekj("cdk-table-fixed-layout",qe.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:"multiTemplateDataRows",fixedLayout:"fixedLayout"},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[e._Bn([{provide:ie,useExisting:Ke},{provide:v.k,useClass:v.yy},{provide:L,useClass:I},{provide:he,useValue:null}])],ngContentSelectors:U,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(be,qe){1&be&&(e.F$t(w),e.Hsn(0),e.Hsn(1,1),e.GkF(2,0),e.GkF(3,1),e.GkF(4,2),e.GkF(5,3))},directives:[ht,ze,ft,it],styles:[".cdk-table-fixed-layout{table-layout:fixed}\n"],encapsulation:2}),Ke})();function Bt(Ke,mt){return Ke.concat(Array.from(mt))}let Oi=(()=>{class Ke{}return Ke.\u0275fac=function(be){return new(be||Ke)},Ke.\u0275mod=e.oAB({type:Ke}),Ke.\u0275inj=e.cJS({imports:[[D.Cl]]}),Ke})();var jt=m(508),ti=m(6451),Pi=m(9841),si=m(4004);const di=[[["caption"]],[["colgroup"],["col"]]],He=["caption","colgroup, col"];let Ee=(()=>{class Ke extends wt{constructor(){super(...arguments),this.stickyCssClass="mat-table-sticky",this.needsPositionStickyOnElement=!1}}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275cmp=e.Xpm({type:Ke,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:[1,"mat-table"],hostVars:2,hostBindings:function(be,qe){2&be&&e.ekj("mat-table-fixed-layout",qe.fixedLayout)},exportAs:["matTable"],features:[e._Bn([{provide:v.k,useClass:v.yy},{provide:wt,useExisting:Ke},{provide:ie,useExisting:Ke},{provide:L,useClass:I},{provide:he,useValue:null}]),e.qOj],ngContentSelectors:He,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(be,qe){1&be&&(e.F$t(di),e.Hsn(0),e.Hsn(1,1),e.GkF(2,0),e.GkF(3,1),e.GkF(4,2),e.GkF(5,3))},directives:[ht,ze,ft,it],styles:['mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-row::after,mat-header-row::after,mat-footer-row::after{display:inline-block;min-height:inherit;content:""}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}table.mat-table{border-spacing:0}tr.mat-header-row{height:56px}tr.mat-row,tr.mat-footer-row{height:48px}th.mat-header-cell{text-align:left}[dir=rtl] th.mat-header-cell{text-align:right}th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:0;border-bottom-width:1px;border-bottom-style:solid}th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] th.mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] th.mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}.mat-table-sticky{position:-webkit-sticky !important;position:sticky !important}.mat-table-fixed-layout{table-layout:fixed}\n'],encapsulation:2}),Ke})(),et=(()=>{class Ke extends fe{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","matCellDef",""]],features:[e._Bn([{provide:fe,useExisting:Ke}]),e.qOj]}),Ke})(),$t=(()=>{class Ke extends de{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","matHeaderCellDef",""]],features:[e._Bn([{provide:de,useExisting:Ke}]),e.qOj]}),Ke})(),Pt=(()=>{class Ke extends ne{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","matFooterCellDef",""]],features:[e._Bn([{provide:ne,useExisting:Ke}]),e.qOj]}),Ke})(),Xt=(()=>{class Ke extends y{get name(){return this._name}set name(be){this._setNameInput(be)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","matColumnDef",""]],inputs:{sticky:"sticky",name:["matColumnDef","name"]},features:[e._Bn([{provide:y,useExisting:Ke},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:Ke}]),e.qOj]}),Ke})(),lt=(()=>{class Ke extends a{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-header-cell"],features:[e.qOj]}),Ke})(),Pe=(()=>{class Ke extends p{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["mat-footer-cell"],["td","mat-footer-cell",""]],hostAttrs:["role","gridcell",1,"mat-footer-cell"],features:[e.qOj]}),Ke})(),Be=(()=>{class Ke extends u{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:["role","gridcell",1,"mat-cell"],features:[e.qOj]}),Ke})(),rt=(()=>{class Ke extends F{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","matHeaderRowDef",""]],inputs:{columns:["matHeaderRowDef","columns"],sticky:["matHeaderRowDefSticky","sticky"]},features:[e._Bn([{provide:F,useExisting:Ke}]),e.qOj]}),Ke})(),ot=(()=>{class Ke extends xe{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","matFooterRowDef",""]],inputs:{columns:["matFooterRowDef","columns"],sticky:["matFooterRowDefSticky","sticky"]},features:[e._Bn([{provide:xe,useExisting:Ke}]),e.qOj]}),Ke})(),At=(()=>{class Ke extends Re{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275dir=e.lG2({type:Ke,selectors:[["","matRowDef",""]],inputs:{columns:["matRowDefColumns","columns"],when:["matRowDefWhen","when"]},features:[e._Bn([{provide:Re,useExisting:Ke}]),e.qOj]}),Ke})(),li=(()=>{class Ke extends q{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275cmp=e.Xpm({type:Ke,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-header-row"],exportAs:["matHeaderRow"],features:[e._Bn([{provide:q,useExisting:Ke}]),e.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(be,qe){1&be&&e.GkF(0,0)},directives:[Fe],encapsulation:2}),Ke})(),Ut=(()=>{class Ke extends j{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275cmp=e.Xpm({type:Ke,selectors:[["mat-footer-row"],["tr","mat-footer-row",""]],hostAttrs:["role","row",1,"mat-footer-row"],exportAs:["matFooterRow"],features:[e._Bn([{provide:j,useExisting:Ke}]),e.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(be,qe){1&be&&e.GkF(0,0)},directives:[Fe],encapsulation:2}),Ke})(),Ft=(()=>{class Ke extends we{}return Ke.\u0275fac=function(){let mt;return function(qe){return(mt||(mt=e.n5z(Ke)))(qe||Ke)}}(),Ke.\u0275cmp=e.Xpm({type:Ke,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-row"],exportAs:["matRow"],features:[e._Bn([{provide:we,useExisting:Ke}]),e.qOj],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(be,qe){1&be&&e.GkF(0,0)},directives:[Fe],encapsulation:2}),Ke})(),rn=(()=>{class Ke{}return Ke.\u0275fac=function(be){return new(be||Ke)},Ke.\u0275mod=e.oAB({type:Ke}),Ke.\u0275inj=e.cJS({imports:[[Oi,jt.BQ],jt.BQ]}),Ke})();class Di extends v.o2{constructor(mt=[]){super(),this._renderData=new c.X([]),this._filter=new c.X(""),this._internalPageChanges=new s.x,this._renderChangesSubscription=null,this.sortingDataAccessor=(be,qe)=>{const vt=be[qe];if((0,t.t6)(vt)){const me=Number(vt);return me<9007199254740991?me:vt}return vt},this.sortData=(be,qe)=>{const vt=qe.active,me=qe.direction;return vt&&""!=me?be.sort(($e,St)=>{let Rt=this.sortingDataAccessor($e,vt),yi=this.sortingDataAccessor(St,vt);const Ri=typeof Rt,Ii=typeof yi;Ri!==Ii&&("number"===Ri&&(Rt+=""),"number"===Ii&&(yi+=""));let Ki=0;return null!=Rt&&null!=yi?Rt>yi?Ki=1:Rt{const vt=Object.keys(be).reduce(($e,St)=>$e+be[St]+"\u25ec","").toLowerCase(),me=qe.trim().toLowerCase();return-1!=vt.indexOf(me)},this._data=new c.X(mt),this._updateChangeSubscription()}get data(){return this._data.value}set data(mt){this._data.next(mt),this._renderChangesSubscription||this._filterData(mt)}get filter(){return this._filter.value}set filter(mt){this._filter.next(mt),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(mt){this._sort=mt,this._updateChangeSubscription()}get paginator(){return this._paginator}set paginator(mt){this._paginator=mt,this._updateChangeSubscription()}_updateChangeSubscription(){var mt;const be=this._sort?(0,ti.T)(this._sort.sortChange,this._sort.initialized):(0,o.of)(null),qe=this._paginator?(0,ti.T)(this._paginator.page,this._internalPageChanges,this._paginator.initialized):(0,o.of)(null),me=(0,Pi.a)([this._data,this._filter]).pipe((0,si.U)(([Rt])=>this._filterData(Rt))),$e=(0,Pi.a)([me,be]).pipe((0,si.U)(([Rt])=>this._orderData(Rt))),St=(0,Pi.a)([$e,qe]).pipe((0,si.U)(([Rt])=>this._pageData(Rt)));null===(mt=this._renderChangesSubscription)||void 0===mt||mt.unsubscribe(),this._renderChangesSubscription=St.subscribe(Rt=>this._renderData.next(Rt))}_filterData(mt){return this.filteredData=null==this.filter||""===this.filter?mt:mt.filter(be=>this.filterPredicate(be,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(mt){return this.sort?this.sortData(mt.slice(),this.sort):mt}_pageData(mt){if(!this.paginator)return mt;const be=this.paginator.pageIndex*this.paginator.pageSize;return mt.slice(be,be+this.paginator.pageSize)}_updatePaginator(mt){Promise.resolve().then(()=>{const be=this.paginator;if(be&&(be.length=mt,be.pageIndex>0)){const qe=Math.ceil(be.length/be.pageSize)-1||0,vt=Math.min(be.pageIndex,qe);vt!==be.pageIndex&&(be.pageIndex=vt,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){var mt;null===(mt=this._renderChangesSubscription)||void 0===mt||mt.unsubscribe(),this._renderChangesSubscription=null}}class Xi extends Di{}},3251:(Ue,K,m)=>{"use strict";m.d(K,{uX:()=>yt,SP:()=>Vt,uD:()=>Ae,Nj:()=>si,BU:()=>jt,Nh:()=>di});var e=m(5664),t=m(7144),v=m(7429),M=m(9808),s=m(5e3),C=m(508),c=m(6360),P=m(7579),o=m(727),O=m(4968),T=m(9646),R=m(6451),S=m(2805),D=m(1777),w=m(8675),U=m(1884),G=m(2722),W=m(226),ee=m(3191),ie=m(1159),_e=m(925),fe=m(5303);function de(He,Se){1&He&&s.Hsn(0)}const ne=["*"];function se(He,Se){}const oe=function(He){return{animationDuration:He}},y=function(He,Se){return{value:He,params:Se}},i=["tabListContainer"],a=["tabList"],p=["tabListInner"],u=["nextPaginator"],_=["previousPaginator"],L=["tabBodyWrapper"],I=["tabHeader"];function x(He,Se){}function r(He,Se){if(1&He&&s.YNc(0,x,0,0,"ng-template",9),2&He){const V=s.oxw().$implicit;s.Q6J("cdkPortalOutlet",V.templateLabel)}}function b(He,Se){if(1&He&&s._uU(0),2&He){const V=s.oxw().$implicit;s.Oqu(V.textLabel)}}function J(He,Se){if(1&He){const V=s.EpF();s.TgZ(0,"div",6),s.NdJ("click",function(){const Ee=s.CHM(V),et=Ee.$implicit,$t=Ee.index,Pt=s.oxw(),Xt=s.MAs(1);return Pt._handleClick(et,Xt,$t)})("cdkFocusChange",function(Ee){const $t=s.CHM(V).index;return s.oxw()._tabFocusChanged(Ee,$t)}),s.TgZ(1,"div",7),s.YNc(2,r,1,1,"ng-template",8),s.YNc(3,b,1,1,"ng-template",8),s.qZA(),s.qZA()}if(2&He){const V=Se.$implicit,ve=Se.index,Ee=s.oxw();s.ekj("mat-tab-label-active",Ee.selectedIndex==ve),s.Q6J("id",Ee._getTabLabelId(ve))("disabled",V.disabled)("matRippleDisabled",V.disabled||Ee.disableRipple),s.uIk("tabIndex",Ee._getTabIndex(V,ve))("aria-posinset",ve+1)("aria-setsize",Ee._tabs.length)("aria-controls",Ee._getTabContentId(ve))("aria-selected",Ee.selectedIndex==ve)("aria-label",V.ariaLabel||null)("aria-labelledby",!V.ariaLabel&&V.ariaLabelledby?V.ariaLabelledby:null),s.xp6(2),s.Q6J("ngIf",V.templateLabel),s.xp6(1),s.Q6J("ngIf",!V.templateLabel)}}function F(He,Se){if(1&He){const V=s.EpF();s.TgZ(0,"mat-tab-body",10),s.NdJ("_onCentered",function(){return s.CHM(V),s.oxw()._removeTabBodyWrapperHeight()})("_onCentering",function(Ee){return s.CHM(V),s.oxw()._setTabBodyWrapperHeight(Ee)}),s.qZA()}if(2&He){const V=Se.$implicit,ve=Se.index,Ee=s.oxw();s.ekj("mat-tab-body-active",Ee.selectedIndex===ve),s.Q6J("id",Ee._getTabContentId(ve))("content",V.content)("position",V.position)("origin",V.origin)("animationDuration",Ee.animationDuration),s.uIk("tabindex",null!=Ee.contentTabIndex&&Ee.selectedIndex===ve?Ee.contentTabIndex:null)("aria-labelledby",Ee._getTabLabelId(ve))}}const B=["mat-tab-nav-bar",""],te=new s.OlP("MatInkBarPositioner",{providedIn:"root",factory:function(){return Se=>({left:Se?(Se.offsetLeft||0)+"px":"0",width:Se?(Se.offsetWidth||0)+"px":"0"})}});let Re=(()=>{class He{constructor(V,ve,Ee,et){this._elementRef=V,this._ngZone=ve,this._inkBarPositioner=Ee,this._animationMode=et}alignToElement(V){this.show(),"undefined"!=typeof requestAnimationFrame?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._setStyles(V))}):this._setStyles(V)}show(){this._elementRef.nativeElement.style.visibility="visible"}hide(){this._elementRef.nativeElement.style.visibility="hidden"}_setStyles(V){const ve=this._inkBarPositioner(V),Ee=this._elementRef.nativeElement;Ee.style.left=ve.left,Ee.style.width=ve.width}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq),s.Y36(s.R0b),s.Y36(te),s.Y36(c.Qb,8))},He.\u0275dir=s.lG2({type:He,selectors:[["mat-ink-bar"]],hostAttrs:[1,"mat-ink-bar"],hostVars:2,hostBindings:function(V,ve){2&V&&s.ekj("_mat-animation-noopable","NoopAnimations"===ve._animationMode)}}),He})();const Fe=new s.OlP("MatTabContent"),j=new s.OlP("MatTabLabel"),we=new s.OlP("MAT_TAB");let Ae=(()=>{class He extends v.ig{constructor(V,ve,Ee){super(V,ve),this._closestTab=Ee}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.Rgc),s.Y36(s.s_b),s.Y36(we,8))},He.\u0275dir=s.lG2({type:He,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[s._Bn([{provide:j,useExisting:He}]),s.qOj]}),He})();const le=(0,C.Id)(class{}),We=new s.OlP("MAT_TAB_GROUP");let yt=(()=>{class He extends le{constructor(V,ve){super(),this._viewContainerRef=V,this._closestTabGroup=ve,this.textLabel="",this._contentPortal=null,this._stateChanges=new P.x,this.position=null,this.origin=null,this.isActive=!1}get templateLabel(){return this._templateLabel}set templateLabel(V){this._setTemplateLabelInput(V)}get content(){return this._contentPortal}ngOnChanges(V){(V.hasOwnProperty("textLabel")||V.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new v.UE(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(V){V&&V._closestTab===this&&(this._templateLabel=V)}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.s_b),s.Y36(We,8))},He.\u0275cmp=s.Xpm({type:He,selectors:[["mat-tab"]],contentQueries:function(V,ve,Ee){if(1&V&&(s.Suo(Ee,j,5),s.Suo(Ee,Fe,7,s.Rgc)),2&V){let et;s.iGM(et=s.CRH())&&(ve.templateLabel=et.first),s.iGM(et=s.CRH())&&(ve._explicitContent=et.first)}},viewQuery:function(V,ve){if(1&V&&s.Gf(s.Rgc,7),2&V){let Ee;s.iGM(Ee=s.CRH())&&(ve._implicitContent=Ee.first)}},inputs:{disabled:"disabled",textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"]},exportAs:["matTab"],features:[s._Bn([{provide:we,useExisting:He}]),s.qOj,s.TTD],ngContentSelectors:ne,decls:1,vars:0,template:function(V,ve){1&V&&(s.F$t(),s.YNc(0,de,1,0,"ng-template"))},encapsulation:2}),He})();const Ne={translateTab:(0,D.X$)("translateTab",[(0,D.SB)("center, void, left-origin-center, right-origin-center",(0,D.oB)({transform:"none"})),(0,D.SB)("left",(0,D.oB)({transform:"translate3d(-100%, 0, 0)",minHeight:"1px"})),(0,D.SB)("right",(0,D.oB)({transform:"translate3d(100%, 0, 0)",minHeight:"1px"})),(0,D.eR)("* => left, * => right, left => center, right => center",(0,D.jt)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),(0,D.eR)("void => left-origin-center",[(0,D.oB)({transform:"translate3d(-100%, 0, 0)"}),(0,D.jt)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),(0,D.eR)("void => right-origin-center",[(0,D.oB)({transform:"translate3d(100%, 0, 0)"}),(0,D.jt)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let Ve=(()=>{class He extends v.Pl{constructor(V,ve,Ee,et){super(V,ve,et),this._host=Ee,this._centeringSub=o.w0.EMPTY,this._leavingSub=o.w0.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe((0,w.O)(this._host._isCenterPosition(this._host._position))).subscribe(V=>{V&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s._Vd),s.Y36(s.s_b),s.Y36((0,s.Gpc)(()=>Te)),s.Y36(M.K0))},He.\u0275dir=s.lG2({type:He,selectors:[["","matTabBodyHost",""]],features:[s.qOj]}),He})(),ue=(()=>{class He{constructor(V,ve,Ee){this._elementRef=V,this._dir=ve,this._dirChangeSubscription=o.w0.EMPTY,this._translateTabComplete=new P.x,this._onCentering=new s.vpe,this._beforeCentering=new s.vpe,this._afterLeavingCenter=new s.vpe,this._onCentered=new s.vpe(!0),this.animationDuration="500ms",ve&&(this._dirChangeSubscription=ve.change.subscribe(et=>{this._computePositionAnimationState(et),Ee.markForCheck()})),this._translateTabComplete.pipe((0,U.x)((et,$t)=>et.fromState===$t.fromState&&et.toState===$t.toState)).subscribe(et=>{this._isCenterPosition(et.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(et.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}set position(V){this._positionIndex=V,this._computePositionAnimationState()}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(V){const ve=this._isCenterPosition(V.toState);this._beforeCentering.emit(ve),ve&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(V){return"center"==V||"left-origin-center"==V||"right-origin-center"==V}_computePositionAnimationState(V=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==V?"left":"right":this._positionIndex>0?"ltr"==V?"right":"left":"center"}_computePositionFromOrigin(V){const ve=this._getLayoutDirection();return"ltr"==ve&&V<=0||"rtl"==ve&&V>0?"left-origin-center":"right-origin-center"}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq),s.Y36(W.Is,8),s.Y36(s.sBO))},He.\u0275dir=s.lG2({type:He,inputs:{_content:["content","_content"],origin:"origin",animationDuration:"animationDuration",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}}),He})(),Te=(()=>{class He extends ue{constructor(V,ve,Ee){super(V,ve,Ee)}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq),s.Y36(W.Is,8),s.Y36(s.sBO))},He.\u0275cmp=s.Xpm({type:He,selectors:[["mat-tab-body"]],viewQuery:function(V,ve){if(1&V&&s.Gf(v.Pl,5),2&V){let Ee;s.iGM(Ee=s.CRH())&&(ve._portalHost=Ee.first)}},hostAttrs:[1,"mat-tab-body"],features:[s.qOj],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(V,ve){1&V&&(s.TgZ(0,"div",0,1),s.NdJ("@translateTab.start",function(et){return ve._onTranslateTabStarted(et)})("@translateTab.done",function(et){return ve._translateTabComplete.next(et)}),s.YNc(2,se,0,0,"ng-template",2),s.qZA()),2&V&&s.Q6J("@translateTab",s.WLB(3,y,ve._position,s.VKq(1,oe,ve.animationDuration)))},directives:[Ve],styles:[".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}\n"],encapsulation:2,data:{animation:[Ne.translateTab]}}),He})();const ke=new s.OlP("MAT_TABS_CONFIG"),Y=(0,C.Id)(class{});let X=(()=>{class He extends Y{constructor(V){super(),this.elementRef=V}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq))},He.\u0275dir=s.lG2({type:He,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(V,ve){2&V&&(s.uIk("aria-disabled",!!ve.disabled),s.ekj("mat-tab-disabled",ve.disabled))},inputs:{disabled:"disabled"},features:[s.qOj]}),He})();const he=(0,_e.i$)({passive:!0});let it=(()=>{class He{constructor(V,ve,Ee,et,$t,Pt,Xt){this._elementRef=V,this._changeDetectorRef=ve,this._viewportRuler=Ee,this._dir=et,this._ngZone=$t,this._platform=Pt,this._animationMode=Xt,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new P.x,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new P.x,this.disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new s.vpe,this.indexFocused=new s.vpe,$t.runOutsideAngular(()=>{(0,O.R)(V.nativeElement,"mouseleave").pipe((0,G.R)(this._destroyed)).subscribe(()=>{this._stopInterval()})})}get selectedIndex(){return this._selectedIndex}set selectedIndex(V){V=(0,ee.su)(V),this._selectedIndex!=V&&(this._selectedIndexChanged=!0,this._selectedIndex=V,this._keyManager&&this._keyManager.updateActiveItem(V))}ngAfterViewInit(){(0,O.R)(this._previousPaginator.nativeElement,"touchstart",he).pipe((0,G.R)(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),(0,O.R)(this._nextPaginator.nativeElement,"touchstart",he).pipe((0,G.R)(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const V=this._dir?this._dir.change:(0,T.of)("ltr"),ve=this._viewportRuler.change(150),Ee=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new e.Em(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap(),this._keyManager.updateActiveItem(this._selectedIndex),"undefined"!=typeof requestAnimationFrame?requestAnimationFrame(Ee):Ee(),(0,R.T)(V,ve,this._items.changes).pipe((0,G.R)(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>Promise.resolve().then(Ee)),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.pipe((0,G.R)(this._destroyed)).subscribe(et=>{this.indexFocused.emit(et),this._setTabFocus(et)})}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(V){if(!(0,ie.Vb)(V))switch(V.keyCode){case ie.K5:case ie.L_:this.focusIndex!==this.selectedIndex&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(V));break;default:this._keyManager.onKeydown(V)}}_onContentChanges(){const V=this._elementRef.nativeElement.textContent;V!==this._currentTextContent&&(this._currentTextContent=V||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(V){!this._isValidIndex(V)||this.focusIndex===V||!this._keyManager||this._keyManager.setActiveItem(V)}_isValidIndex(V){if(!this._items)return!0;const ve=this._items?this._items.toArray()[V]:null;return!!ve&&!ve.disabled}_setTabFocus(V){if(this._showPaginationControls&&this._scrollToLabel(V),this._items&&this._items.length){this._items.toArray()[V].focus();const ve=this._tabListContainer.nativeElement;ve.scrollLeft="ltr"==this._getLayoutDirection()?0:ve.scrollWidth-ve.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const V=this.scrollDistance,ve="ltr"===this._getLayoutDirection()?-V:V;this._tabList.nativeElement.style.transform=`translateX(${Math.round(ve)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(V){this._scrollTo(V)}_scrollHeader(V){return this._scrollTo(this._scrollDistance+("before"==V?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(V){this._stopInterval(),this._scrollHeader(V)}_scrollToLabel(V){if(this.disablePagination)return;const ve=this._items?this._items.toArray()[V]:null;if(!ve)return;const Ee=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:et,offsetWidth:$t}=ve.elementRef.nativeElement;let Pt,Xt;"ltr"==this._getLayoutDirection()?(Pt=et,Xt=Pt+$t):(Xt=this._tabListInner.nativeElement.offsetWidth-et,Pt=Xt-$t);const lt=this.scrollDistance,Pe=this.scrollDistance+Ee;PtPe&&(this.scrollDistance+=Xt-Pe+60)}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const V=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;V||(this.scrollDistance=0),V!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=V}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const V=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,ve=V?V.elementRef.nativeElement:null;ve?this._inkBar.alignToElement(ve):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(V,ve){ve&&null!=ve.button&&0!==ve.button||(this._stopInterval(),(0,S.H)(650,100).pipe((0,G.R)((0,R.T)(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:Ee,distance:et}=this._scrollHeader(V);(0===et||et>=Ee)&&this._stopInterval()}))}_scrollTo(V){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const ve=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(ve,V)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:ve,distance:this._scrollDistance}}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(fe.rL),s.Y36(W.Is,8),s.Y36(s.R0b),s.Y36(_e.t4),s.Y36(c.Qb,8))},He.\u0275dir=s.lG2({type:He,inputs:{disablePagination:"disablePagination"}}),He})(),ft=(()=>{class He extends it{constructor(V,ve,Ee,et,$t,Pt,Xt){super(V,ve,Ee,et,$t,Pt,Xt),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(V){this._disableRipple=(0,ee.Ig)(V)}_itemSelected(V){V.preventDefault()}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(fe.rL),s.Y36(W.Is,8),s.Y36(s.R0b),s.Y36(_e.t4),s.Y36(c.Qb,8))},He.\u0275dir=s.lG2({type:He,inputs:{disableRipple:"disableRipple"},features:[s.qOj]}),He})(),nt=(()=>{class He extends ft{constructor(V,ve,Ee,et,$t,Pt,Xt){super(V,ve,Ee,et,$t,Pt,Xt)}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(fe.rL),s.Y36(W.Is,8),s.Y36(s.R0b),s.Y36(_e.t4),s.Y36(c.Qb,8))},He.\u0275cmp=s.Xpm({type:He,selectors:[["mat-tab-header"]],contentQueries:function(V,ve,Ee){if(1&V&&s.Suo(Ee,X,4),2&V){let et;s.iGM(et=s.CRH())&&(ve._items=et)}},viewQuery:function(V,ve){if(1&V&&(s.Gf(Re,7),s.Gf(i,7),s.Gf(a,7),s.Gf(p,7),s.Gf(u,5),s.Gf(_,5)),2&V){let Ee;s.iGM(Ee=s.CRH())&&(ve._inkBar=Ee.first),s.iGM(Ee=s.CRH())&&(ve._tabListContainer=Ee.first),s.iGM(Ee=s.CRH())&&(ve._tabList=Ee.first),s.iGM(Ee=s.CRH())&&(ve._tabListInner=Ee.first),s.iGM(Ee=s.CRH())&&(ve._nextPaginator=Ee.first),s.iGM(Ee=s.CRH())&&(ve._previousPaginator=Ee.first)}},hostAttrs:[1,"mat-tab-header"],hostVars:4,hostBindings:function(V,ve){2&V&&s.ekj("mat-tab-header-pagination-controls-enabled",ve._showPaginationControls)("mat-tab-header-rtl","rtl"==ve._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[s.qOj],ngContentSelectors:ne,decls:14,vars:8,consts:[["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-before","mat-elevation-z4",3,"matRippleDisabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-tab-header-pagination-chevron"],[1,"mat-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-tab-labels"],["tabListInner",""],["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-after","mat-elevation-z4",3,"matRippleDisabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(V,ve){1&V&&(s.F$t(),s.TgZ(0,"div",0,1),s.NdJ("click",function(){return ve._handlePaginatorClick("before")})("mousedown",function(et){return ve._handlePaginatorPress("before",et)})("touchend",function(){return ve._stopInterval()}),s._UZ(2,"div",2),s.qZA(),s.TgZ(3,"div",3,4),s.NdJ("keydown",function(et){return ve._handleKeydown(et)}),s.TgZ(5,"div",5,6),s.NdJ("cdkObserveContent",function(){return ve._onContentChanges()}),s.TgZ(7,"div",7,8),s.Hsn(9),s.qZA(),s._UZ(10,"mat-ink-bar"),s.qZA(),s.qZA(),s.TgZ(11,"div",9,10),s.NdJ("mousedown",function(et){return ve._handlePaginatorPress("after",et)})("click",function(){return ve._handlePaginatorClick("after")})("touchend",function(){return ve._stopInterval()}),s._UZ(13,"div",2),s.qZA()),2&V&&(s.ekj("mat-tab-header-pagination-disabled",ve._disableScrollBefore),s.Q6J("matRippleDisabled",ve._disableScrollBefore||ve.disableRipple),s.xp6(5),s.ekj("_mat-animation-noopable","NoopAnimations"===ve._animationMode),s.xp6(6),s.ekj("mat-tab-header-pagination-disabled",ve._disableScrollAfter),s.Q6J("matRippleDisabled",ve._disableScrollAfter||ve.disableRipple))},directives:[C.wG,t.wD,Re],styles:['.mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:"";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\n'],encapsulation:2}),He})(),st=0;class wt{}const Bt=(0,C.pj)((0,C.Kr)(class{constructor(He){this._elementRef=He}}),"primary");let Nt=(()=>{class He extends Bt{constructor(V,ve,Ee,et){var $t;super(V),this._changeDetectorRef=ve,this._animationMode=et,this._tabs=new s.n_E,this._indexToSelect=0,this._tabBodyWrapperHeight=0,this._tabsSubscription=o.w0.EMPTY,this._tabLabelSubscription=o.w0.EMPTY,this._selectedIndex=null,this.headerPosition="above",this.selectedIndexChange=new s.vpe,this.focusChange=new s.vpe,this.animationDone=new s.vpe,this.selectedTabChange=new s.vpe(!0),this._groupId=st++,this.animationDuration=Ee&&Ee.animationDuration?Ee.animationDuration:"500ms",this.disablePagination=!(!Ee||null==Ee.disablePagination)&&Ee.disablePagination,this.dynamicHeight=!(!Ee||null==Ee.dynamicHeight)&&Ee.dynamicHeight,this.contentTabIndex=null!==($t=null==Ee?void 0:Ee.contentTabIndex)&&void 0!==$t?$t:null}get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(V){this._dynamicHeight=(0,ee.Ig)(V)}get selectedIndex(){return this._selectedIndex}set selectedIndex(V){this._indexToSelect=(0,ee.su)(V,null)}get animationDuration(){return this._animationDuration}set animationDuration(V){this._animationDuration=/^\d+$/.test(V)?V+"ms":V}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(V){this._contentTabIndex=(0,ee.su)(V,null)}get backgroundColor(){return this._backgroundColor}set backgroundColor(V){const ve=this._elementRef.nativeElement;ve.classList.remove(`mat-background-${this.backgroundColor}`),V&&ve.classList.add(`mat-background-${V}`),this._backgroundColor=V}ngAfterContentChecked(){const V=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=V){const ve=null==this._selectedIndex;if(!ve){this.selectedTabChange.emit(this._createChangeEvent(V));const Ee=this._tabBodyWrapper.nativeElement;Ee.style.minHeight=Ee.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((Ee,et)=>Ee.isActive=et===V),ve||(this.selectedIndexChange.emit(V),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((ve,Ee)=>{ve.position=Ee-V,null!=this._selectedIndex&&0==ve.position&&!ve.origin&&(ve.origin=V-this._selectedIndex)}),this._selectedIndex!==V&&(this._selectedIndex=V,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{if(this._clampTabIndex(this._indexToSelect)===this._selectedIndex){const ve=this._tabs.toArray();for(let Ee=0;Ee{this._tabs.reset(V.filter(ve=>ve._closestTabGroup===this||!ve._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}focusTab(V){const ve=this._tabHeader;ve&&(ve.focusIndex=V)}_focusChanged(V){this.focusChange.emit(this._createChangeEvent(V))}_createChangeEvent(V){const ve=new wt;return ve.index=V,this._tabs&&this._tabs.length&&(ve.tab=this._tabs.toArray()[V]),ve}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=(0,R.T)(...this._tabs.map(V=>V._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(V){return Math.min(this._tabs.length-1,Math.max(V||0,0))}_getTabLabelId(V){return`mat-tab-label-${this._groupId}-${V}`}_getTabContentId(V){return`mat-tab-content-${this._groupId}-${V}`}_setTabBodyWrapperHeight(V){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const ve=this._tabBodyWrapper.nativeElement;ve.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(ve.style.height=V+"px")}_removeTabBodyWrapperHeight(){const V=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=V.clientHeight,V.style.height="",this.animationDone.emit()}_handleClick(V,ve,Ee){V.disabled||(this.selectedIndex=ve.focusIndex=Ee)}_getTabIndex(V,ve){return V.disabled?null:this.selectedIndex===ve?0:-1}_tabFocusChanged(V,ve){V&&"mouse"!==V&&"touch"!==V&&(this._tabHeader.focusIndex=ve)}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(ke,8),s.Y36(c.Qb,8))},He.\u0275dir=s.lG2({type:He,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[s.qOj]}),He})(),Vt=(()=>{class He extends Nt{constructor(V,ve,Ee,et){super(V,ve,Ee,et)}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(ke,8),s.Y36(c.Qb,8))},He.\u0275cmp=s.Xpm({type:He,selectors:[["mat-tab-group"]],contentQueries:function(V,ve,Ee){if(1&V&&s.Suo(Ee,yt,5),2&V){let et;s.iGM(et=s.CRH())&&(ve._allTabs=et)}},viewQuery:function(V,ve){if(1&V&&(s.Gf(L,5),s.Gf(I,5)),2&V){let Ee;s.iGM(Ee=s.CRH())&&(ve._tabBodyWrapper=Ee.first),s.iGM(Ee=s.CRH())&&(ve._tabHeader=Ee.first)}},hostAttrs:[1,"mat-tab-group"],hostVars:4,hostBindings:function(V,ve){2&V&&s.ekj("mat-tab-group-dynamic-height",ve.dynamicHeight)("mat-tab-group-inverted-header","below"===ve.headerPosition)},inputs:{color:"color",disableRipple:"disableRipple"},exportAs:["matTabGroup"],features:[s._Bn([{provide:We,useExisting:He}]),s.qOj],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mat-tab-label mat-focus-indicator","role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",3,"id","mat-tab-label-active","disabled","matRippleDisabled","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-tab-body-active","content","position","origin","animationDuration","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",1,"mat-tab-label","mat-focus-indicator",3,"id","disabled","matRippleDisabled","click","cdkFocusChange"],[1,"mat-tab-label-content"],[3,"ngIf"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","content","position","origin","animationDuration","_onCentered","_onCentering"]],template:function(V,ve){1&V&&(s.TgZ(0,"mat-tab-header",0,1),s.NdJ("indexFocused",function(et){return ve._focusChanged(et)})("selectFocusedIndex",function(et){return ve.selectedIndex=et}),s.YNc(2,J,4,14,"div",2),s.qZA(),s.TgZ(3,"div",3,4),s.YNc(5,F,1,9,"mat-tab-body",5),s.qZA()),2&V&&(s.Q6J("selectedIndex",ve.selectedIndex||0)("disableRipple",ve.disableRipple)("disablePagination",ve.disablePagination),s.xp6(2),s.Q6J("ngForOf",ve._tabs),s.xp6(1),s.ekj("_mat-animation-noopable","NoopAnimations"===ve._animationMode),s.xp6(2),s.Q6J("ngForOf",ve._tabs))},directives:[nt,M.sg,X,C.wG,e.kH,M.O5,v.Pl,Te],styles:[".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\n"],encapsulation:2}),He})(),Oi=(()=>{class He extends it{constructor(V,ve,Ee,et,$t,Pt,Xt){super(V,et,$t,ve,Ee,Pt,Xt),this._disableRipple=!1,this.color="primary"}get backgroundColor(){return this._backgroundColor}set backgroundColor(V){const ve=this._elementRef.nativeElement.classList;ve.remove(`mat-background-${this.backgroundColor}`),V&&ve.add(`mat-background-${V}`),this._backgroundColor=V}get disableRipple(){return this._disableRipple}set disableRipple(V){this._disableRipple=(0,ee.Ig)(V)}_itemSelected(){}ngAfterContentInit(){this._items.changes.pipe((0,w.O)(null),(0,G.R)(this._destroyed)).subscribe(()=>{this.updateActiveLink()}),super.ngAfterContentInit()}updateActiveLink(){if(!this._items)return;const V=this._items.toArray();for(let ve=0;ve{class He extends Oi{constructor(V,ve,Ee,et,$t,Pt,Xt){super(V,ve,Ee,et,$t,Pt,Xt)}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(s.SBq),s.Y36(W.Is,8),s.Y36(s.R0b),s.Y36(s.sBO),s.Y36(fe.rL),s.Y36(_e.t4),s.Y36(c.Qb,8))},He.\u0275cmp=s.Xpm({type:He,selectors:[["","mat-tab-nav-bar",""]],contentQueries:function(V,ve,Ee){if(1&V&&s.Suo(Ee,si,5),2&V){let et;s.iGM(et=s.CRH())&&(ve._items=et)}},viewQuery:function(V,ve){if(1&V&&(s.Gf(Re,7),s.Gf(i,7),s.Gf(a,7),s.Gf(p,7),s.Gf(u,5),s.Gf(_,5)),2&V){let Ee;s.iGM(Ee=s.CRH())&&(ve._inkBar=Ee.first),s.iGM(Ee=s.CRH())&&(ve._tabListContainer=Ee.first),s.iGM(Ee=s.CRH())&&(ve._tabList=Ee.first),s.iGM(Ee=s.CRH())&&(ve._tabListInner=Ee.first),s.iGM(Ee=s.CRH())&&(ve._nextPaginator=Ee.first),s.iGM(Ee=s.CRH())&&(ve._previousPaginator=Ee.first)}},hostAttrs:[1,"mat-tab-nav-bar","mat-tab-header"],hostVars:10,hostBindings:function(V,ve){2&V&&s.ekj("mat-tab-header-pagination-controls-enabled",ve._showPaginationControls)("mat-tab-header-rtl","rtl"==ve._getLayoutDirection())("mat-primary","warn"!==ve.color&&"accent"!==ve.color)("mat-accent","accent"===ve.color)("mat-warn","warn"===ve.color)},inputs:{color:"color"},exportAs:["matTabNavBar","matTabNav"],features:[s.qOj],attrs:B,ngContentSelectors:ne,decls:14,vars:8,consts:[["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-before","mat-elevation-z4",3,"matRippleDisabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-tab-header-pagination-chevron"],[1,"mat-tab-link-container",3,"keydown"],["tabListContainer",""],[1,"mat-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-tab-links"],["tabListInner",""],["aria-hidden","true","mat-ripple","",1,"mat-tab-header-pagination","mat-tab-header-pagination-after","mat-elevation-z4",3,"matRippleDisabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(V,ve){1&V&&(s.F$t(),s.TgZ(0,"div",0,1),s.NdJ("click",function(){return ve._handlePaginatorClick("before")})("mousedown",function(et){return ve._handlePaginatorPress("before",et)})("touchend",function(){return ve._stopInterval()}),s._UZ(2,"div",2),s.qZA(),s.TgZ(3,"div",3,4),s.NdJ("keydown",function(et){return ve._handleKeydown(et)}),s.TgZ(5,"div",5,6),s.NdJ("cdkObserveContent",function(){return ve._onContentChanges()}),s.TgZ(7,"div",7,8),s.Hsn(9),s.qZA(),s._UZ(10,"mat-ink-bar"),s.qZA(),s.qZA(),s.TgZ(11,"div",9,10),s.NdJ("mousedown",function(et){return ve._handlePaginatorPress("after",et)})("click",function(){return ve._handlePaginatorClick("after")})("touchend",function(){return ve._stopInterval()}),s._UZ(13,"div",2),s.qZA()),2&V&&(s.ekj("mat-tab-header-pagination-disabled",ve._disableScrollBefore),s.Q6J("matRippleDisabled",ve._disableScrollBefore||ve.disableRipple),s.xp6(5),s.ekj("_mat-animation-noopable","NoopAnimations"===ve._animationMode),s.xp6(6),s.ekj("mat-tab-header-pagination-disabled",ve._disableScrollAfter),s.Q6J("matRippleDisabled",ve._disableScrollAfter||ve.disableRipple))},directives:[C.wG,t.wD,Re],styles:['.mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:"";height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-link:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media(max-width: 599px){.mat-tab-link{min-width:72px}}\n'],encapsulation:2}),He})();const ti=(0,C.sb)((0,C.Kr)((0,C.Id)(class{})));let Pi=(()=>{class He extends ti{constructor(V,ve,Ee,et,$t,Pt){super(),this._tabNavBar=V,this.elementRef=ve,this._focusMonitor=$t,this._isActive=!1,this.rippleConfig=Ee||{},this.tabIndex=parseInt(et)||0,"NoopAnimations"===Pt&&(this.rippleConfig.animation={enterDuration:0,exitDuration:0})}get active(){return this._isActive}set active(V){(0,ee.Ig)(V)!==this._isActive&&(this._isActive=V,this._tabNavBar.updateActiveLink())}get rippleDisabled(){return this.disabled||this.disableRipple||this._tabNavBar.disableRipple||!!this.rippleConfig.disabled}focus(){this.elementRef.nativeElement.focus()}ngAfterViewInit(){this._focusMonitor.monitor(this.elementRef)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this.elementRef)}_handleFocus(){this._tabNavBar.focusIndex=this._tabNavBar._items.toArray().indexOf(this)}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(Oi),s.Y36(s.SBq),s.Y36(C.Y2,8),s.$8M("tabindex"),s.Y36(e.tE),s.Y36(c.Qb,8))},He.\u0275dir=s.lG2({type:He,inputs:{active:"active"},features:[s.qOj]}),He})(),si=(()=>{class He extends Pi{constructor(V,ve,Ee,et,$t,Pt,Xt,lt){super(V,ve,$t,Pt,Xt,lt),this._tabLinkRipple=new C.IR(this,Ee,ve,et),this._tabLinkRipple.setupTriggerEvents(ve.nativeElement)}ngOnDestroy(){super.ngOnDestroy(),this._tabLinkRipple._removeTriggerEvents()}}return He.\u0275fac=function(V){return new(V||He)(s.Y36(jt),s.Y36(s.SBq),s.Y36(s.R0b),s.Y36(_e.t4),s.Y36(C.Y2,8),s.$8M("tabindex"),s.Y36(e.tE),s.Y36(c.Qb,8))},He.\u0275dir=s.lG2({type:He,selectors:[["","mat-tab-link",""],["","matTabLink",""]],hostAttrs:[1,"mat-tab-link","mat-focus-indicator"],hostVars:7,hostBindings:function(V,ve){1&V&&s.NdJ("focus",function(){return ve._handleFocus()}),2&V&&(s.uIk("aria-current",ve.active?"page":null)("aria-disabled",ve.disabled)("tabIndex",ve.tabIndex),s.ekj("mat-tab-disabled",ve.disabled)("mat-tab-label-active",ve.active))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matTabLink"],features:[s.qOj]}),He})(),di=(()=>{class He{}return He.\u0275fac=function(V){return new(V||He)},He.\u0275mod=s.oAB({type:He}),He.\u0275inj=s.cJS({imports:[[M.ez,C.BQ,v.eL,C.si,t.Q8,e.rt],C.BQ]}),He})()},4594:(Ue,K,m)=>{"use strict";m.d(K,{Ye:()=>o,g0:()=>T});var e=m(5e3),t=m(508),v=m(9808),M=m(925);const s=["*",[["mat-toolbar-row"]]],C=["*","mat-toolbar-row"],c=(0,t.pj)(class{constructor(R){this._elementRef=R}});let P=(()=>{class R{}return R.\u0275fac=function(D){return new(D||R)},R.\u0275dir=e.lG2({type:R,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"]}),R})(),o=(()=>{class R extends c{constructor(D,w,U){super(D),this._platform=w,this._document=U}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}}return R.\u0275fac=function(D){return new(D||R)(e.Y36(e.SBq),e.Y36(M.t4),e.Y36(v.K0))},R.\u0275cmp=e.Xpm({type:R,selectors:[["mat-toolbar"]],contentQueries:function(D,w,U){if(1&D&&e.Suo(U,P,5),2&D){let G;e.iGM(G=e.CRH())&&(w._toolbarRows=G)}},hostAttrs:[1,"mat-toolbar"],hostVars:4,hostBindings:function(D,w){2&D&&e.ekj("mat-toolbar-multiple-rows",w._toolbarRows.length>0)("mat-toolbar-single-row",0===w._toolbarRows.length)},inputs:{color:"color"},exportAs:["matToolbar"],features:[e.qOj],ngContentSelectors:C,decls:2,vars:0,template:function(D,w){1&D&&(e.F$t(s),e.Hsn(0),e.Hsn(1,1))},styles:[".cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%}\n"],encapsulation:2,changeDetection:0}),R})(),T=(()=>{class R{}return R.\u0275fac=function(D){return new(D||R)},R.\u0275mod=e.oAB({type:R}),R.\u0275inj=e.cJS({imports:[[t.BQ],t.BQ]}),R})()},7238:(Ue,K,m)=>{"use strict";m.d(K,{gM:()=>p,AV:()=>L});var e=m(9776),t=m(5664),v=m(9808),M=m(5e3),s=m(508),C=m(5303),c=m(3191),P=m(1159),o=m(5113),O=m(925),T=m(7429),R=m(7579),S=m(2722),D=m(5698),w=m(1777),U=m(226);const G={tooltipState:(0,w.X$)("state",[(0,w.SB)("initial, void, hidden",(0,w.oB)({opacity:0,transform:"scale(0)"})),(0,w.SB)("visible",(0,w.oB)({transform:"scale(1)"})),(0,w.eR)("* => visible",(0,w.jt)("200ms cubic-bezier(0, 0, 0.2, 1)",(0,w.F4)([(0,w.oB)({opacity:0,transform:"scale(0)",offset:0}),(0,w.oB)({opacity:.5,transform:"scale(0.99)",offset:.5}),(0,w.oB)({opacity:1,transform:"scale(1)",offset:1})]))),(0,w.eR)("* => hidden",(0,w.jt)("100ms cubic-bezier(0, 0, 0.2, 1)",(0,w.oB)({opacity:0})))])},ie="tooltip-panel",_e=(0,O.i$)({passive:!0}),ne=new M.OlP("mat-tooltip-scroll-strategy"),oe={provide:ne,deps:[e.aV],useFactory:function(I){return()=>I.scrollStrategies.reposition({scrollThrottle:20})}},y=new M.OlP("mat-tooltip-default-options",{providedIn:"root",factory:function(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}});let a=(()=>{class I{constructor(r,b,J,F,B,te,xe,Re,Fe,q,j,we){this._overlay=r,this._elementRef=b,this._scrollDispatcher=J,this._viewContainerRef=F,this._ngZone=B,this._platform=te,this._ariaDescriber=xe,this._focusMonitor=Re,this._dir=q,this._defaultOptions=j,this._position="below",this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.showDelay=this._defaultOptions.showDelay,this.hideDelay=this._defaultOptions.hideDelay,this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new R.x,this._handleKeydown=Ae=>{this._isTooltipVisible()&&Ae.keyCode===P.hY&&!(0,P.Vb)(Ae)&&(Ae.preventDefault(),Ae.stopPropagation(),this._ngZone.run(()=>this.hide(0)))},this._scrollStrategy=Fe,this._document=we,j&&(j.position&&(this.position=j.position),j.touchGestures&&(this.touchGestures=j.touchGestures)),q.change.pipe((0,S.R)(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),B.runOutsideAngular(()=>{b.nativeElement.addEventListener("keydown",this._handleKeydown)})}get position(){return this._position}set position(r){var b;r!==this._position&&(this._position=r,this._overlayRef&&(this._updatePosition(this._overlayRef),null===(b=this._tooltipInstance)||void 0===b||b.show(0),this._overlayRef.updatePosition()))}get disabled(){return this._disabled}set disabled(r){this._disabled=(0,c.Ig)(r),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get message(){return this._message}set message(r){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=r?String(r).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(r){this._tooltipClass=r,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe((0,S.R)(this._destroyed)).subscribe(r=>{r?"keyboard"===r&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const r=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),r.removeEventListener("keydown",this._handleKeydown),this._passiveListeners.forEach(([b,J])=>{r.removeEventListener(b,J,_e)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(r,this.message,"tooltip"),this._focusMonitor.stopMonitoring(r)}show(r=this.showDelay){if(this.disabled||!this.message||this._isTooltipVisible()&&!this._tooltipInstance._showTimeoutId&&!this._tooltipInstance._hideTimeoutId)return;const b=this._createOverlay();this._detach(),this._portal=this._portal||new T.C5(this._tooltipComponent,this._viewContainerRef),this._tooltipInstance=b.attach(this._portal).instance,this._tooltipInstance.afterHidden().pipe((0,S.R)(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),this._tooltipInstance.show(r)}hide(r=this.hideDelay){this._tooltipInstance&&this._tooltipInstance.hide(r)}toggle(){this._isTooltipVisible()?this.hide():this.show()}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(){if(this._overlayRef)return this._overlayRef;const r=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),b=this._overlay.position().flexibleConnectedTo(this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(r);return b.positionChanges.pipe((0,S.R)(this._destroyed)).subscribe(J=>{this._updateCurrentPositionClass(J.connectionPair),this._tooltipInstance&&J.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:b,panelClass:`${this._cssClassPrefix}-${ie}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe((0,S.R)(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe((0,S.R)(this._destroyed)).subscribe(()=>{var J;return null===(J=this._tooltipInstance)||void 0===J?void 0:J._handleBodyInteraction()}),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(r){const b=r.getConfig().positionStrategy,J=this._getOrigin(),F=this._getOverlayPosition();b.withPositions([this._addOffset(Object.assign(Object.assign({},J.main),F.main)),this._addOffset(Object.assign(Object.assign({},J.fallback),F.fallback))])}_addOffset(r){return r}_getOrigin(){const r=!this._dir||"ltr"==this._dir.value,b=this.position;let J;"above"==b||"below"==b?J={originX:"center",originY:"above"==b?"top":"bottom"}:"before"==b||"left"==b&&r||"right"==b&&!r?J={originX:"start",originY:"center"}:("after"==b||"right"==b&&r||"left"==b&&!r)&&(J={originX:"end",originY:"center"});const{x:F,y:B}=this._invertPosition(J.originX,J.originY);return{main:J,fallback:{originX:F,originY:B}}}_getOverlayPosition(){const r=!this._dir||"ltr"==this._dir.value,b=this.position;let J;"above"==b?J={overlayX:"center",overlayY:"bottom"}:"below"==b?J={overlayX:"center",overlayY:"top"}:"before"==b||"left"==b&&r||"right"==b&&!r?J={overlayX:"end",overlayY:"center"}:("after"==b||"right"==b&&r||"left"==b&&!r)&&(J={overlayX:"start",overlayY:"center"});const{x:F,y:B}=this._invertPosition(J.overlayX,J.overlayY);return{main:J,fallback:{overlayX:F,overlayY:B}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe((0,D.q)(1),(0,S.R)(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(r){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=r,this._tooltipInstance._markForCheck())}_invertPosition(r,b){return"above"===this.position||"below"===this.position?"top"===b?b="bottom":"bottom"===b&&(b="top"):"end"===r?r="start":"start"===r&&(r="end"),{x:r,y:b}}_updateCurrentPositionClass(r){const{overlayY:b,originX:J,originY:F}=r;let B;if(B="center"===b?this._dir&&"rtl"===this._dir.value?"end"===J?"left":"right":"start"===J?"left":"right":"bottom"===b&&"top"===F?"above":"below",B!==this._currentPosition){const te=this._overlayRef;if(te){const xe=`${this._cssClassPrefix}-${ie}-`;te.removePanelClass(xe+this._currentPosition),te.addPanelClass(xe+B)}this._currentPosition=B}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",()=>{this._setupPointerExitEventsIfNeeded(),this.show()}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",()=>{this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const r=[];if(this._platformSupportsMouseEvents())r.push(["mouseleave",()=>this.hide()],["wheel",b=>this._wheelListener(b)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const b=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};r.push(["touchend",b],["touchcancel",b])}this._addListeners(r),this._passiveListeners.push(...r)}_addListeners(r){r.forEach(([b,J])=>{this._elementRef.nativeElement.addEventListener(b,J,_e)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(r){if(this._isTooltipVisible()){const b=this._document.elementFromPoint(r.clientX,r.clientY),J=this._elementRef.nativeElement;b!==J&&!J.contains(b)&&this.hide()}}_disableNativeGesturesIfNecessary(){const r=this.touchGestures;if("off"!==r){const b=this._elementRef.nativeElement,J=b.style;("on"===r||"INPUT"!==b.nodeName&&"TEXTAREA"!==b.nodeName)&&(J.userSelect=J.msUserSelect=J.webkitUserSelect=J.MozUserSelect="none"),("on"===r||!b.draggable)&&(J.webkitUserDrag="none"),J.touchAction="none",J.webkitTapHighlightColor="transparent"}}}return I.\u0275fac=function(r){M.$Z()},I.\u0275dir=M.lG2({type:I,inputs:{position:["matTooltipPosition","position"],disabled:["matTooltipDisabled","disabled"],showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}}),I})(),p=(()=>{class I extends a{constructor(r,b,J,F,B,te,xe,Re,Fe,q,j,we){super(r,b,J,F,B,te,xe,Re,Fe,q,j,we),this._tooltipComponent=_}}return I.\u0275fac=function(r){return new(r||I)(M.Y36(e.aV),M.Y36(M.SBq),M.Y36(C.mF),M.Y36(M.s_b),M.Y36(M.R0b),M.Y36(O.t4),M.Y36(t.$s),M.Y36(t.tE),M.Y36(ne),M.Y36(U.Is,8),M.Y36(y,8),M.Y36(v.K0))},I.\u0275dir=M.lG2({type:I,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-tooltip-trigger"],exportAs:["matTooltip"],features:[M.qOj]}),I})(),u=(()=>{class I{constructor(r){this._changeDetectorRef=r,this._visibility="initial",this._closeOnInteraction=!1,this._onHide=new R.x}show(r){clearTimeout(this._hideTimeoutId),this._closeOnInteraction=!0,this._showTimeoutId=setTimeout(()=>{this._visibility="visible",this._showTimeoutId=void 0,this._onShow(),this._markForCheck()},r)}hide(r){clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._visibility="hidden",this._hideTimeoutId=void 0,this._markForCheck()},r)}afterHidden(){return this._onHide}isVisible(){return"visible"===this._visibility}ngOnDestroy(){clearTimeout(this._showTimeoutId),clearTimeout(this._hideTimeoutId),this._onHide.complete()}_animationStart(){this._closeOnInteraction=!1}_animationDone(r){const b=r.toState;"hidden"===b&&!this.isVisible()&&this._onHide.next(),("visible"===b||"hidden"===b)&&(this._closeOnInteraction=!0)}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_onShow(){}}return I.\u0275fac=function(r){return new(r||I)(M.Y36(M.sBO))},I.\u0275dir=M.lG2({type:I}),I})(),_=(()=>{class I extends u{constructor(r,b){super(r),this._breakpointObserver=b,this._isHandset=this._breakpointObserver.observe(o.u3.Handset)}}return I.\u0275fac=function(r){return new(r||I)(M.Y36(M.sBO),M.Y36(o.Yg))},I.\u0275cmp=M.Xpm({type:I,selectors:[["mat-tooltip-component"]],hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(r,b){2&r&&M.Udp("zoom","visible"===b._visibility?1:null)},features:[M.qOj],decls:3,vars:7,consts:[[1,"mat-tooltip",3,"ngClass"]],template:function(r,b){if(1&r&&(M.TgZ(0,"div",0),M.NdJ("@state.start",function(){return b._animationStart()})("@state.done",function(F){return b._animationDone(F)}),M.ALo(1,"async"),M._uU(2),M.qZA()),2&r){let J;M.ekj("mat-tooltip-handset",null==(J=M.lcZ(1,5,b._isHandset))?null:J.matches),M.Q6J("ngClass",b.tooltipClass)("@state",b._visibility),M.xp6(2),M.Oqu(b.message)}},directives:[v.mk],pipes:[v.Ov],styles:[".mat-tooltip-panel{pointer-events:none !important}.mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis}.cdk-high-contrast-active .mat-tooltip{outline:solid 1px}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}\n"],encapsulation:2,data:{animation:[G.tooltipState]},changeDetection:0}),I})(),L=(()=>{class I{}return I.\u0275fac=function(r){return new(r||I)},I.\u0275mod=M.oAB({type:I}),I.\u0275inj=M.cJS({providers:[oe],imports:[[t.rt,v.ez,e.U8,s.BQ],s.BQ,C.ZD]}),I})()},149:(Ue,K,m)=>{"use strict";m.d(K,{GZ:()=>R,gi:()=>w,dp:()=>W,WX:()=>_e,uo:()=>O,fQ:()=>T,Ar:()=>D,eu:()=>U});var e=m(8258),t=m(5e3),v=m(508),M=m(3191),s=m(449),C=m(1135),c=m(6451),P=m(4004);const o=(0,v.sb)((0,v.Id)(e.Hs));let O=(()=>{class fe extends o{constructor(ne,se,oe){super(ne,se),this.tabIndex=Number(oe)||0}ngOnInit(){super.ngOnInit()}ngOnDestroy(){super.ngOnDestroy()}}return fe.\u0275fac=function(ne){return new(ne||fe)(t.Y36(t.SBq),t.Y36(e._0),t.$8M("tabindex"))},fe.\u0275dir=t.lG2({type:fe,selectors:[["mat-tree-node"]],hostAttrs:[1,"mat-tree-node"],inputs:{role:"role",disabled:"disabled",tabIndex:"tabIndex"},exportAs:["matTreeNode"],features:[t._Bn([{provide:e.Hs,useExisting:fe}]),t.qOj]}),fe})(),T=(()=>{class fe extends e.rO{}return fe.\u0275fac=function(){let de;return function(se){return(de||(de=t.n5z(fe)))(se||fe)}}(),fe.\u0275dir=t.lG2({type:fe,selectors:[["","matTreeNodeDef",""]],inputs:{when:["matTreeNodeDefWhen","when"],data:["matTreeNode","data"]},features:[t._Bn([{provide:e.rO,useExisting:fe}]),t.qOj]}),fe})(),R=(()=>{class fe extends e.Xx{constructor(ne,se,oe,y){super(ne,se,oe),this._disabled=!1,this.tabIndex=Number(y)||0}get disabled(){return this._disabled}set disabled(ne){this._disabled=(0,M.Ig)(ne)}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(ne){this._tabIndex=null!=ne?ne:0}ngOnInit(){super.ngOnInit()}ngAfterContentInit(){super.ngAfterContentInit()}ngOnDestroy(){super.ngOnDestroy()}}return fe.\u0275fac=function(ne){return new(ne||fe)(t.Y36(t.SBq),t.Y36(e._0),t.Y36(t.ZZ4),t.$8M("tabindex"))},fe.\u0275dir=t.lG2({type:fe,selectors:[["mat-nested-tree-node"]],hostAttrs:[1,"mat-nested-tree-node"],inputs:{role:"role",disabled:"disabled",tabIndex:"tabIndex",node:["matNestedTreeNode","node"]},exportAs:["matNestedTreeNode"],features:[t._Bn([{provide:e.Xx,useExisting:fe},{provide:e.Hs,useExisting:fe},{provide:e.HI,useExisting:fe}]),t.qOj]}),fe})(),D=(()=>{class fe{constructor(ne,se){this.viewContainer=ne,this._node=se}}return fe.\u0275fac=function(ne){return new(ne||fe)(t.Y36(t.s_b),t.Y36(e.HI,8))},fe.\u0275dir=t.lG2({type:fe,selectors:[["","matTreeNodeOutlet",""]],features:[t._Bn([{provide:e.cu,useExisting:fe}])]}),fe})(),w=(()=>{class fe extends e._0{}return fe.\u0275fac=function(){let de;return function(se){return(de||(de=t.n5z(fe)))(se||fe)}}(),fe.\u0275cmp=t.Xpm({type:fe,selectors:[["mat-tree"]],viewQuery:function(ne,se){if(1&ne&&t.Gf(D,7),2&ne){let oe;t.iGM(oe=t.CRH())&&(se._nodeOutlet=oe.first)}},hostAttrs:["role","tree",1,"mat-tree"],exportAs:["matTree"],features:[t._Bn([{provide:e._0,useExisting:fe}]),t.qOj],decls:1,vars:0,consts:[["matTreeNodeOutlet",""]],template:function(ne,se){1&ne&&t.GkF(0,0)},directives:[D],styles:[".mat-tree{display:block}.mat-tree-node{display:flex;align-items:center;flex:1;word-wrap:break-word}.mat-nested-tree-node{border-bottom-width:0}\n"],encapsulation:2}),fe})(),U=(()=>{class fe extends e.Ud{}return fe.\u0275fac=function(){let de;return function(se){return(de||(de=t.n5z(fe)))(se||fe)}}(),fe.\u0275dir=t.lG2({type:fe,selectors:[["","matTreeNodeToggle",""]],inputs:{recursive:["matTreeNodeToggleRecursive","recursive"]},features:[t._Bn([{provide:e.Ud,useExisting:fe}]),t.qOj]}),fe})(),W=(()=>{class fe{}return fe.\u0275fac=function(ne){return new(ne||fe)},fe.\u0275mod=t.oAB({type:fe}),fe.\u0275inj=t.cJS({imports:[[e.nZ,v.BQ],v.BQ]}),fe})();class _e extends s.o2{constructor(){super(...arguments),this._data=new C.X([])}get data(){return this._data.value}set data(de){this._data.next(de)}connect(de){return(0,c.T)(de.viewChange,this._data).pipe((0,P.U)(()=>this.data))}disconnect(){}}},6360:(Ue,K,m)=>{"use strict";m.d(K,{Qb:()=>ki,PW:()=>Ys});var e=m(5e3),t=m(2313),v=m(1777);function M(){return"undefined"!=typeof window&&void 0!==window.document}function s(){return"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)}function C(xt){switch(xt.length){case 0:return new v.ZN;case 1:return xt[0];default:return new v.ZE(xt)}}function c(xt,re,pe,je,Mt={},kt={}){const Kt=[],Jt=[];let fi=-1,Ai=null;if(je.forEach(Zi=>{const en=Zi.offset,Cn=en==fi,In=Cn&&Ai||{};Object.keys(Zi).forEach(tt=>{let Et=tt,It=Zi[tt];if("offset"!==tt)switch(Et=re.normalizePropertyName(Et,Kt),It){case v.k1:It=Mt[tt];break;case v.l3:It=kt[tt];break;default:It=re.normalizeStyleValue(tt,Et,It,Kt)}In[Et]=It}),Cn||Jt.push(In),Ai=In,fi=en}),Kt.length){const Zi="\n - ";throw new Error(`Unable to animate due to the following errors:${Zi}${Kt.join(Zi)}`)}return Jt}function P(xt,re,pe,je){switch(re){case"start":xt.onStart(()=>je(pe&&o(pe,"start",xt)));break;case"done":xt.onDone(()=>je(pe&&o(pe,"done",xt)));break;case"destroy":xt.onDestroy(()=>je(pe&&o(pe,"destroy",xt)))}}function o(xt,re,pe){const je=pe.totalTime,kt=O(xt.element,xt.triggerName,xt.fromState,xt.toState,re||xt.phaseName,null==je?xt.totalTime:je,!!pe.disabled),Kt=xt._data;return null!=Kt&&(kt._data=Kt),kt}function O(xt,re,pe,je,Mt="",kt=0,Kt){return{element:xt,triggerName:re,fromState:pe,toState:je,phaseName:Mt,totalTime:kt,disabled:!!Kt}}function T(xt,re,pe){let je;return xt instanceof Map?(je=xt.get(re),je||xt.set(re,je=pe)):(je=xt[re],je||(je=xt[re]=pe)),je}function R(xt){const re=xt.indexOf(":");return[xt.substring(1,re),xt.substr(re+1)]}let S=(xt,re)=>!1,D=(xt,re)=>!1,w=(xt,re,pe)=>[];const U=s();(U||"undefined"!=typeof Element)&&(S=M()?(xt,re)=>{for(;re&&re!==document.documentElement;){if(re===xt)return!0;re=re.parentNode||re.host}return!1}:(xt,re)=>xt.contains(re),D=(()=>{if(U||Element.prototype.matches)return(xt,re)=>xt.matches(re);{const xt=Element.prototype,re=xt.matchesSelector||xt.mozMatchesSelector||xt.msMatchesSelector||xt.oMatchesSelector||xt.webkitMatchesSelector;return re?(pe,je)=>re.apply(pe,[je]):D}})(),w=(xt,re,pe)=>{let je=[];if(pe){const Mt=xt.querySelectorAll(re);for(let kt=0;kt{const je=pe.replace(/([a-z])([A-Z])/g,"$1-$2");re[je]=xt[pe]}),re}let oe=(()=>{class xt{validateStyleProperty(pe){return ie(pe)}matchesElement(pe,je){return fe(pe,je)}containsElement(pe,je){return de(pe,je)}query(pe,je,Mt){return ne(pe,je,Mt)}computeStyle(pe,je,Mt){return Mt||""}animate(pe,je,Mt,kt,Kt,Jt=[],fi){return new v.ZN(Mt,kt)}}return xt.\u0275fac=function(pe){return new(pe||xt)},xt.\u0275prov=e.Yz7({token:xt,factory:xt.\u0275fac}),xt})(),y=(()=>{class xt{}return xt.NOOP=new oe,xt})();const u="ng-enter",_="ng-leave",x="ng-trigger",r=".ng-trigger",b="ng-animating",J=".ng-animating";function F(xt){if("number"==typeof xt)return xt;const re=xt.match(/^(-?[\.\d]+)(m?s)/);return!re||re.length<2?0:B(parseFloat(re[1]),re[2])}function B(xt,re){return"s"===re?1e3*xt:xt}function te(xt,re,pe){return xt.hasOwnProperty("duration")?xt:function(xt,re,pe){let Mt,kt=0,Kt="";if("string"==typeof xt){const Jt=xt.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Jt)return re.push(`The provided timing value "${xt}" is invalid.`),{duration:0,delay:0,easing:""};Mt=B(parseFloat(Jt[1]),Jt[2]);const fi=Jt[3];null!=fi&&(kt=B(parseFloat(fi),Jt[4]));const Ai=Jt[5];Ai&&(Kt=Ai)}else Mt=xt;if(!pe){let Jt=!1,fi=re.length;Mt<0&&(re.push("Duration values below 0 are not allowed for this animation step."),Jt=!0),kt<0&&(re.push("Delay values below 0 are not allowed for this animation step."),Jt=!0),Jt&&re.splice(fi,0,`The provided timing value "${xt}" is invalid.`)}return{duration:Mt,delay:kt,easing:Kt}}(xt,re,pe)}function Re(xt,re={}){return Object.keys(xt).forEach(pe=>{re[pe]=xt[pe]}),re}function q(xt,re,pe={}){if(re)for(let je in xt)pe[je]=xt[je];else Re(xt,pe);return pe}function j(xt,re,pe){return pe?re+":"+pe+";":""}function we(xt){let re="";for(let pe=0;pe{const Mt=Y(je);pe&&!pe.hasOwnProperty(je)&&(pe[je]=xt.style[Mt]),xt.style[Mt]=re[je]}),s()&&we(xt))}function le(xt,re){xt.style&&(Object.keys(re).forEach(pe=>{const je=Y(pe);xt.style[je]=""}),s()&&we(xt))}function We(xt){return Array.isArray(xt)?1==xt.length?xt[0]:(0,v.vP)(xt):xt}const Ne=new RegExp("{{\\s*(.+?)\\s*}}","g");function Ve(xt){let re=[];if("string"==typeof xt){let pe;for(;pe=Ne.exec(xt);)re.push(pe[1]);Ne.lastIndex=0}return re}function ue(xt,re,pe){const je=xt.toString(),Mt=je.replace(Ne,(kt,Kt)=>{let Jt=re[Kt];return re.hasOwnProperty(Kt)||(pe.push(`Please provide a value for the animation param ${Kt}`),Jt=""),Jt.toString()});return Mt==je?xt:Mt}function Te(xt){const re=[];let pe=xt.next();for(;!pe.done;)re.push(pe.value),pe=xt.next();return re}const ke=/-+([a-z0-9])/g;function Y(xt){return xt.replace(ke,(...re)=>re[1].toUpperCase())}function X(xt){return xt.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function he(xt,re){return 0===xt||0===re}function Me(xt,re,pe){const je=Object.keys(pe);if(je.length&&re.length){let kt=re[0],Kt=[];if(je.forEach(Jt=>{kt.hasOwnProperty(Jt)||Kt.push(Jt),kt[Jt]=pe[Jt]}),Kt.length)for(var Mt=1;Mtfunction(xt,re,pe){if(":"==xt[0]){const fi=function(xt,re){switch(xt){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(pe,je)=>parseFloat(je)>parseFloat(pe);case":decrement":return(pe,je)=>parseFloat(je) *"}}(xt,pe);if("function"==typeof fi)return void re.push(fi);xt=fi}const je=xt.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==je||je.length<4)return pe.push(`The provided transition expression "${xt}" is not supported`),re;const Mt=je[1],kt=je[2],Kt=je[3];re.push(Nt(Mt,Kt));"<"==kt[0]&&!("*"==Mt&&"*"==Kt)&&re.push(Nt(Kt,Mt))}(je,pe,re)):pe.push(xt),pe}const wt=new Set(["true","1"]),Bt=new Set(["false","0"]);function Nt(xt,re){const pe=wt.has(xt)||Bt.has(xt),je=wt.has(re)||Bt.has(re);return(Mt,kt)=>{let Kt="*"==xt||xt==Mt,Jt="*"==re||re==kt;return!Kt&&pe&&"boolean"==typeof Mt&&(Kt=Mt?wt.has(xt):Bt.has(xt)),!Jt&&je&&"boolean"==typeof kt&&(Jt=kt?wt.has(re):Bt.has(re)),Kt&&Jt}}const Oi=new RegExp("s*:selfs*,?","g");function jt(xt,re,pe){return new Pi(xt).build(re,pe)}class Pi{constructor(re){this._driver=re}build(re,pe){const je=new He(pe);return this._resetContextStyleTimingState(je),ze(this,We(re),je)}_resetContextStyleTimingState(re){re.currentQuerySelector="",re.collectedStyles={},re.collectedStyles[""]={},re.currentTime=0}visitTrigger(re,pe){let je=pe.queryCount=0,Mt=pe.depCount=0;const kt=[],Kt=[];return"@"==re.name.charAt(0)&&pe.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),re.definitions.forEach(Jt=>{if(this._resetContextStyleTimingState(pe),0==Jt.type){const fi=Jt,Ai=fi.name;Ai.toString().split(/\s*,\s*/).forEach(Zi=>{fi.name=Zi,kt.push(this.visitState(fi,pe))}),fi.name=Ai}else if(1==Jt.type){const fi=this.visitTransition(Jt,pe);je+=fi.queryCount,Mt+=fi.depCount,Kt.push(fi)}else pe.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:re.name,states:kt,transitions:Kt,queryCount:je,depCount:Mt,options:null}}visitState(re,pe){const je=this.visitStyle(re.styles,pe),Mt=re.options&&re.options.params||null;if(je.containsDynamicStyles){const kt=new Set,Kt=Mt||{};if(je.styles.forEach(Jt=>{if(V(Jt)){const fi=Jt;Object.keys(fi).forEach(Ai=>{Ve(fi[Ai]).forEach(Zi=>{Kt.hasOwnProperty(Zi)||kt.add(Zi)})})}}),kt.size){const Jt=Te(kt.values());pe.errors.push(`state("${re.name}", ...) must define default values for all the following style substitutions: ${Jt.join(", ")}`)}}return{type:0,name:re.name,style:je,options:Mt?{params:Mt}:null}}visitTransition(re,pe){pe.queryCount=0,pe.depCount=0;const je=ze(this,We(re.animation),pe);return{type:1,matchers:ft(re.expr,pe.errors),animation:je,queryCount:pe.queryCount,depCount:pe.depCount,options:Ee(re.options)}}visitSequence(re,pe){return{type:2,steps:re.steps.map(je=>ze(this,je,pe)),options:Ee(re.options)}}visitGroup(re,pe){const je=pe.currentTime;let Mt=0;const kt=re.steps.map(Kt=>{pe.currentTime=je;const Jt=ze(this,Kt,pe);return Mt=Math.max(Mt,pe.currentTime),Jt});return pe.currentTime=Mt,{type:3,steps:kt,options:Ee(re.options)}}visitAnimate(re,pe){const je=function(xt,re){let pe=null;if(xt.hasOwnProperty("duration"))pe=xt;else if("number"==typeof xt)return et(te(xt,re).duration,0,"");const je=xt;if(je.split(/\s+/).some(kt=>"{"==kt.charAt(0)&&"{"==kt.charAt(1))){const kt=et(0,0,"");return kt.dynamic=!0,kt.strValue=je,kt}return pe=pe||te(je,re),et(pe.duration,pe.delay,pe.easing)}(re.timings,pe.errors);pe.currentAnimateTimings=je;let Mt,kt=re.styles?re.styles:(0,v.oB)({});if(5==kt.type)Mt=this.visitKeyframes(kt,pe);else{let Kt=re.styles,Jt=!1;if(!Kt){Jt=!0;const Ai={};je.easing&&(Ai.easing=je.easing),Kt=(0,v.oB)(Ai)}pe.currentTime+=je.duration+je.delay;const fi=this.visitStyle(Kt,pe);fi.isEmptyStep=Jt,Mt=fi}return pe.currentAnimateTimings=null,{type:4,timings:je,style:Mt,options:null}}visitStyle(re,pe){const je=this._makeStyleAst(re,pe);return this._validateStyleAst(je,pe),je}_makeStyleAst(re,pe){const je=[];Array.isArray(re.styles)?re.styles.forEach(Kt=>{"string"==typeof Kt?Kt==v.l3?je.push(Kt):pe.errors.push(`The provided style string value ${Kt} is not allowed.`):je.push(Kt)}):je.push(re.styles);let Mt=!1,kt=null;return je.forEach(Kt=>{if(V(Kt)){const Jt=Kt,fi=Jt.easing;if(fi&&(kt=fi,delete Jt.easing),!Mt)for(let Ai in Jt)if(Jt[Ai].toString().indexOf("{{")>=0){Mt=!0;break}}}),{type:6,styles:je,easing:kt,offset:re.offset,containsDynamicStyles:Mt,options:null}}_validateStyleAst(re,pe){const je=pe.currentAnimateTimings;let Mt=pe.currentTime,kt=pe.currentTime;je&&kt>0&&(kt-=je.duration+je.delay),re.styles.forEach(Kt=>{"string"!=typeof Kt&&Object.keys(Kt).forEach(Jt=>{if(!this._driver.validateStyleProperty(Jt))return void pe.errors.push(`The provided animation property "${Jt}" is not a supported CSS property for animations`);const fi=pe.collectedStyles[pe.currentQuerySelector],Ai=fi[Jt];let Zi=!0;Ai&&(kt!=Mt&&kt>=Ai.startTime&&Mt<=Ai.endTime&&(pe.errors.push(`The CSS property "${Jt}" that exists between the times of "${Ai.startTime}ms" and "${Ai.endTime}ms" is also being animated in a parallel animation between the times of "${kt}ms" and "${Mt}ms"`),Zi=!1),kt=Ai.startTime),Zi&&(fi[Jt]={startTime:kt,endTime:Mt}),pe.options&&function(xt,re,pe){const je=re.params||{},Mt=Ve(xt);Mt.length&&Mt.forEach(kt=>{je.hasOwnProperty(kt)||pe.push(`Unable to resolve the local animation param ${kt} in the given list of values`)})}(Kt[Jt],pe.options,pe.errors)})})}visitKeyframes(re,pe){const je={type:5,styles:[],options:null};if(!pe.currentAnimateTimings)return pe.errors.push("keyframes() must be placed inside of a call to animate()"),je;let kt=0;const Kt=[];let Jt=!1,fi=!1,Ai=0;const Zi=re.steps.map(zt=>{const ri=this._makeStyleAst(zt,pe);let vi=null!=ri.offset?ri.offset:function(xt){if("string"==typeof xt)return null;let re=null;if(Array.isArray(xt))xt.forEach(pe=>{if(V(pe)&&pe.hasOwnProperty("offset")){const je=pe;re=parseFloat(je.offset),delete je.offset}});else if(V(xt)&&xt.hasOwnProperty("offset")){const pe=xt;re=parseFloat(pe.offset),delete pe.offset}return re}(ri.styles),Mi=0;return null!=vi&&(kt++,Mi=ri.offset=vi),fi=fi||Mi<0||Mi>1,Jt=Jt||Mi0&&kt{const vi=Cn>0?ri==In?1:Cn*ri:Kt[ri],Mi=vi*It;pe.currentTime=tt+Et.delay+Mi,Et.duration=Mi,this._validateStyleAst(zt,pe),zt.offset=vi,je.styles.push(zt)}),je}visitReference(re,pe){return{type:8,animation:ze(this,We(re.animation),pe),options:Ee(re.options)}}visitAnimateChild(re,pe){return pe.depCount++,{type:9,options:Ee(re.options)}}visitAnimateRef(re,pe){return{type:10,animation:this.visitReference(re.animation,pe),options:Ee(re.options)}}visitQuery(re,pe){const je=pe.currentQuerySelector,Mt=re.options||{};pe.queryCount++,pe.currentQuery=re;const[kt,Kt]=function(xt){const re=!!xt.split(/\s*,\s*/).find(pe=>":self"==pe);return re&&(xt=xt.replace(Oi,"")),xt=xt.replace(/@\*/g,r).replace(/@\w+/g,pe=>r+"-"+pe.substr(1)).replace(/:animating/g,J),[xt,re]}(re.selector);pe.currentQuerySelector=je.length?je+" "+kt:kt,T(pe.collectedStyles,pe.currentQuerySelector,{});const Jt=ze(this,We(re.animation),pe);return pe.currentQuery=null,pe.currentQuerySelector=je,{type:11,selector:kt,limit:Mt.limit||0,optional:!!Mt.optional,includeSelf:Kt,animation:Jt,originalSelector:re.selector,options:Ee(re.options)}}visitStagger(re,pe){pe.currentQuery||pe.errors.push("stagger() can only be used inside of query()");const je="full"===re.timings?{duration:0,delay:0,easing:"full"}:te(re.timings,pe.errors,!0);return{type:12,animation:ze(this,We(re.animation),pe),timings:je,options:null}}}class He{constructor(re){this.errors=re,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}}function V(xt){return!Array.isArray(xt)&&"object"==typeof xt}function Ee(xt){return xt?(xt=Re(xt)).params&&(xt.params=function(xt){return xt?Re(xt):null}(xt.params)):xt={},xt}function et(xt,re,pe){return{duration:xt,delay:re,easing:pe}}function $t(xt,re,pe,je,Mt,kt,Kt=null,Jt=!1){return{type:1,element:xt,keyframes:re,preStyleProps:pe,postStyleProps:je,duration:Mt,delay:kt,totalTime:Mt+kt,easing:Kt,subTimeline:Jt}}class Pt{constructor(){this._map=new Map}consume(re){let pe=this._map.get(re);return pe?this._map.delete(re):pe=[],pe}append(re,pe){let je=this._map.get(re);je||this._map.set(re,je=[]),je.push(...pe)}has(re){return this._map.has(re)}clear(){this._map.clear()}}const Pe=new RegExp(":enter","g"),rt=new RegExp(":leave","g");function ot(xt,re,pe,je,Mt,kt={},Kt={},Jt,fi,Ai=[]){return(new At).buildKeyframes(xt,re,pe,je,Mt,kt,Kt,Jt,fi,Ai)}class At{buildKeyframes(re,pe,je,Mt,kt,Kt,Jt,fi,Ai,Zi=[]){Ai=Ai||new Pt;const en=new Ut(re,pe,Ai,Mt,kt,Zi,[]);en.options=fi,en.currentTimeline.setStyles([Kt],null,en.errors,fi),ze(this,je,en);const Cn=en.timelines.filter(In=>In.containsAnimation());if(Cn.length&&Object.keys(Jt).length){const In=Cn[Cn.length-1];In.allowOnlyTimelineStyles()||In.setStyles([Jt],null,en.errors,fi)}return Cn.length?Cn.map(In=>In.buildKeyframes()):[$t(pe,[],[],[],0,0,"",!1)]}visitTrigger(re,pe){}visitState(re,pe){}visitTransition(re,pe){}visitAnimateChild(re,pe){const je=pe.subInstructions.consume(pe.element);if(je){const Mt=pe.createSubContext(re.options),kt=pe.currentTimeline.currentTime,Kt=this._visitSubInstructions(je,Mt,Mt.options);kt!=Kt&&pe.transformIntoNewTimeline(Kt)}pe.previousNode=re}visitAnimateRef(re,pe){const je=pe.createSubContext(re.options);je.transformIntoNewTimeline(),this.visitReference(re.animation,je),pe.transformIntoNewTimeline(je.currentTimeline.currentTime),pe.previousNode=re}_visitSubInstructions(re,pe,je){let kt=pe.currentTimeline.currentTime;const Kt=null!=je.duration?F(je.duration):null,Jt=null!=je.delay?F(je.delay):null;return 0!==Kt&&re.forEach(fi=>{const Ai=pe.appendInstructionToTimeline(fi,Kt,Jt);kt=Math.max(kt,Ai.duration+Ai.delay)}),kt}visitReference(re,pe){pe.updateOptions(re.options,!0),ze(this,re.animation,pe),pe.previousNode=re}visitSequence(re,pe){const je=pe.subContextCount;let Mt=pe;const kt=re.options;if(kt&&(kt.params||kt.delay)&&(Mt=pe.createSubContext(kt),Mt.transformIntoNewTimeline(),null!=kt.delay)){6==Mt.previousNode.type&&(Mt.currentTimeline.snapshotCurrentStyles(),Mt.previousNode=li);const Kt=F(kt.delay);Mt.delayNextStep(Kt)}re.steps.length&&(re.steps.forEach(Kt=>ze(this,Kt,Mt)),Mt.currentTimeline.applyStylesToKeyframe(),Mt.subContextCount>je&&Mt.transformIntoNewTimeline()),pe.previousNode=re}visitGroup(re,pe){const je=[];let Mt=pe.currentTimeline.currentTime;const kt=re.options&&re.options.delay?F(re.options.delay):0;re.steps.forEach(Kt=>{const Jt=pe.createSubContext(re.options);kt&&Jt.delayNextStep(kt),ze(this,Kt,Jt),Mt=Math.max(Mt,Jt.currentTimeline.currentTime),je.push(Jt.currentTimeline)}),je.forEach(Kt=>pe.currentTimeline.mergeTimelineCollectedStyles(Kt)),pe.transformIntoNewTimeline(Mt),pe.previousNode=re}_visitTiming(re,pe){if(re.dynamic){const je=re.strValue;return te(pe.params?ue(je,pe.params,pe.errors):je,pe.errors)}return{duration:re.duration,delay:re.delay,easing:re.easing}}visitAnimate(re,pe){const je=pe.currentAnimateTimings=this._visitTiming(re.timings,pe),Mt=pe.currentTimeline;je.delay&&(pe.incrementTime(je.delay),Mt.snapshotCurrentStyles());const kt=re.style;5==kt.type?this.visitKeyframes(kt,pe):(pe.incrementTime(je.duration),this.visitStyle(kt,pe),Mt.applyStylesToKeyframe()),pe.currentAnimateTimings=null,pe.previousNode=re}visitStyle(re,pe){const je=pe.currentTimeline,Mt=pe.currentAnimateTimings;!Mt&&je.getCurrentStyleProperties().length&&je.forwardFrame();const kt=Mt&&Mt.easing||re.easing;re.isEmptyStep?je.applyEmptyStep(kt):je.setStyles(re.styles,kt,pe.errors,pe.options),pe.previousNode=re}visitKeyframes(re,pe){const je=pe.currentAnimateTimings,Mt=pe.currentTimeline.duration,kt=je.duration,Jt=pe.createSubContext().currentTimeline;Jt.easing=je.easing,re.styles.forEach(fi=>{Jt.forwardTime((fi.offset||0)*kt),Jt.setStyles(fi.styles,fi.easing,pe.errors,pe.options),Jt.applyStylesToKeyframe()}),pe.currentTimeline.mergeTimelineCollectedStyles(Jt),pe.transformIntoNewTimeline(Mt+kt),pe.previousNode=re}visitQuery(re,pe){const je=pe.currentTimeline.currentTime,Mt=re.options||{},kt=Mt.delay?F(Mt.delay):0;kt&&(6===pe.previousNode.type||0==je&&pe.currentTimeline.getCurrentStyleProperties().length)&&(pe.currentTimeline.snapshotCurrentStyles(),pe.previousNode=li);let Kt=je;const Jt=pe.invokeQuery(re.selector,re.originalSelector,re.limit,re.includeSelf,!!Mt.optional,pe.errors);pe.currentQueryTotal=Jt.length;let fi=null;Jt.forEach((Ai,Zi)=>{pe.currentQueryIndex=Zi;const en=pe.createSubContext(re.options,Ai);kt&&en.delayNextStep(kt),Ai===pe.element&&(fi=en.currentTimeline),ze(this,re.animation,en),en.currentTimeline.applyStylesToKeyframe(),Kt=Math.max(Kt,en.currentTimeline.currentTime)}),pe.currentQueryIndex=0,pe.currentQueryTotal=0,pe.transformIntoNewTimeline(Kt),fi&&(pe.currentTimeline.mergeTimelineCollectedStyles(fi),pe.currentTimeline.snapshotCurrentStyles()),pe.previousNode=re}visitStagger(re,pe){const je=pe.parentContext,Mt=pe.currentTimeline,kt=re.timings,Kt=Math.abs(kt.duration),Jt=Kt*(pe.currentQueryTotal-1);let fi=Kt*pe.currentQueryIndex;switch(kt.duration<0?"reverse":kt.easing){case"reverse":fi=Jt-fi;break;case"full":fi=je.currentStaggerTime}const Zi=pe.currentTimeline;fi&&Zi.delayNextStep(fi);const en=Zi.currentTime;ze(this,re.animation,pe),pe.previousNode=re,je.currentStaggerTime=Mt.currentTime-en+(Mt.startTime-je.currentTimeline.startTime)}}const li={};class Ut{constructor(re,pe,je,Mt,kt,Kt,Jt,fi){this._driver=re,this.element=pe,this.subInstructions=je,this._enterClassName=Mt,this._leaveClassName=kt,this.errors=Kt,this.timelines=Jt,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=li,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=fi||new Ft(this._driver,pe,0),Jt.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(re,pe){if(!re)return;const je=re;let Mt=this.options;null!=je.duration&&(Mt.duration=F(je.duration)),null!=je.delay&&(Mt.delay=F(je.delay));const kt=je.params;if(kt){let Kt=Mt.params;Kt||(Kt=this.options.params={}),Object.keys(kt).forEach(Jt=>{(!pe||!Kt.hasOwnProperty(Jt))&&(Kt[Jt]=ue(kt[Jt],Kt,this.errors))})}}_copyOptions(){const re={};if(this.options){const pe=this.options.params;if(pe){const je=re.params={};Object.keys(pe).forEach(Mt=>{je[Mt]=pe[Mt]})}}return re}createSubContext(re=null,pe,je){const Mt=pe||this.element,kt=new Ut(this._driver,Mt,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(Mt,je||0));return kt.previousNode=this.previousNode,kt.currentAnimateTimings=this.currentAnimateTimings,kt.options=this._copyOptions(),kt.updateOptions(re),kt.currentQueryIndex=this.currentQueryIndex,kt.currentQueryTotal=this.currentQueryTotal,kt.parentContext=this,this.subContextCount++,kt}transformIntoNewTimeline(re){return this.previousNode=li,this.currentTimeline=this.currentTimeline.fork(this.element,re),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(re,pe,je){const Mt={duration:null!=pe?pe:re.duration,delay:this.currentTimeline.currentTime+(null!=je?je:0)+re.delay,easing:""},kt=new Si(this._driver,re.element,re.keyframes,re.preStyleProps,re.postStyleProps,Mt,re.stretchStartingKeyframe);return this.timelines.push(kt),Mt}incrementTime(re){this.currentTimeline.forwardTime(this.currentTimeline.duration+re)}delayNextStep(re){re>0&&this.currentTimeline.delayNextStep(re)}invokeQuery(re,pe,je,Mt,kt,Kt){let Jt=[];if(Mt&&Jt.push(this.element),re.length>0){re=(re=re.replace(Pe,"."+this._enterClassName)).replace(rt,"."+this._leaveClassName);let Ai=this._driver.query(this.element,re,1!=je);0!==je&&(Ai=je<0?Ai.slice(Ai.length+je,Ai.length):Ai.slice(0,je)),Jt.push(...Ai)}return!kt&&0==Jt.length&&Kt.push(`\`query("${pe}")\` returned zero elements. (Use \`query("${pe}", { optional: true })\` if you wish to allow this.)`),Jt}}class Ft{constructor(re,pe,je,Mt){this._driver=re,this.element=pe,this.startTime=je,this._elementTimelineStylesLookup=Mt,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(pe),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(pe,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(re){const pe=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||pe?(this.forwardTime(this.currentTime+re),pe&&this.snapshotCurrentStyles()):this.startTime+=re}fork(re,pe){return this.applyStylesToKeyframe(),new Ft(this._driver,re,pe||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(re){this.applyStylesToKeyframe(),this.duration=re,this._loadKeyframe()}_updateStyle(re,pe){this._localTimelineStyles[re]=pe,this._globalTimelineStyles[re]=pe,this._styleSummary[re]={time:this.currentTime,value:pe}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(re){re&&(this._previousKeyframe.easing=re),Object.keys(this._globalTimelineStyles).forEach(pe=>{this._backFill[pe]=this._globalTimelineStyles[pe]||v.l3,this._currentKeyframe[pe]=v.l3}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(re,pe,je,Mt){pe&&(this._previousKeyframe.easing=pe);const kt=Mt&&Mt.params||{},Kt=function(xt,re){const pe={};let je;return xt.forEach(Mt=>{"*"===Mt?(je=je||Object.keys(re),je.forEach(kt=>{pe[kt]=v.l3})):q(Mt,!1,pe)}),pe}(re,this._globalTimelineStyles);Object.keys(Kt).forEach(Jt=>{const fi=ue(Kt[Jt],kt,je);this._pendingStyles[Jt]=fi,this._localTimelineStyles.hasOwnProperty(Jt)||(this._backFill[Jt]=this._globalTimelineStyles.hasOwnProperty(Jt)?this._globalTimelineStyles[Jt]:v.l3),this._updateStyle(Jt,fi)})}applyStylesToKeyframe(){const re=this._pendingStyles,pe=Object.keys(re);0!=pe.length&&(this._pendingStyles={},pe.forEach(je=>{this._currentKeyframe[je]=re[je]}),Object.keys(this._localTimelineStyles).forEach(je=>{this._currentKeyframe.hasOwnProperty(je)||(this._currentKeyframe[je]=this._localTimelineStyles[je])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(re=>{const pe=this._localTimelineStyles[re];this._pendingStyles[re]=pe,this._updateStyle(re,pe)})}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const re=[];for(let pe in this._currentKeyframe)re.push(pe);return re}mergeTimelineCollectedStyles(re){Object.keys(re._styleSummary).forEach(pe=>{const je=this._styleSummary[pe],Mt=re._styleSummary[pe];(!je||Mt.time>je.time)&&this._updateStyle(pe,Mt.value)})}buildKeyframes(){this.applyStylesToKeyframe();const re=new Set,pe=new Set,je=1===this._keyframes.size&&0===this.duration;let Mt=[];this._keyframes.forEach((Jt,fi)=>{const Ai=q(Jt,!0);Object.keys(Ai).forEach(Zi=>{const en=Ai[Zi];en==v.k1?re.add(Zi):en==v.l3&&pe.add(Zi)}),je||(Ai.offset=fi/this.duration),Mt.push(Ai)});const kt=re.size?Te(re.values()):[],Kt=pe.size?Te(pe.values()):[];if(je){const Jt=Mt[0],fi=Re(Jt);Jt.offset=0,fi.offset=1,Mt=[Jt,fi]}return $t(this.element,Mt,kt,Kt,this.duration,this.startTime,this.easing,!1)}}class Si extends Ft{constructor(re,pe,je,Mt,kt,Kt,Jt=!1){super(re,pe,Kt.delay),this.keyframes=je,this.preStyleProps=Mt,this.postStyleProps=kt,this._stretchStartingKeyframe=Jt,this.timings={duration:Kt.duration,delay:Kt.delay,easing:Kt.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let re=this.keyframes,{delay:pe,duration:je,easing:Mt}=this.timings;if(this._stretchStartingKeyframe&&pe){const kt=[],Kt=je+pe,Jt=pe/Kt,fi=q(re[0],!1);fi.offset=0,kt.push(fi);const Ai=q(re[0],!1);Ai.offset=ai(Jt),kt.push(Ai);const Zi=re.length-1;for(let en=1;en<=Zi;en++){let Cn=q(re[en],!1);Cn.offset=ai((pe+Cn.offset*je)/Kt),kt.push(Cn)}je=Kt,pe=0,Mt="",re=kt}return $t(this.element,re,this.preStyleProps,this.postStyleProps,je,pe,Mt,!0)}}function ai(xt,re=3){const pe=Math.pow(10,re-1);return Math.round(xt*pe)/pe}class Vi{}class Xi extends Vi{normalizePropertyName(re,pe){return Y(re)}normalizeStyleValue(re,pe,je,Mt){let kt="";const Kt=je.toString().trim();if(Ke[pe]&&0!==je&&"0"!==je)if("number"==typeof je)kt="px";else{const Jt=je.match(/^[+-]?[\d\.]+([a-z]*)$/);Jt&&0==Jt[1].length&&Mt.push(`Please provide a CSS unit value for ${re}:${je}`)}return Kt+kt}}const Ke=(()=>function(xt){const re={};return xt.forEach(pe=>re[pe]=!0),re}("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(",")))();function be(xt,re,pe,je,Mt,kt,Kt,Jt,fi,Ai,Zi,en,Cn){return{type:0,element:xt,triggerName:re,isRemovalTransition:Mt,fromState:pe,fromStyles:kt,toState:je,toStyles:Kt,timelines:Jt,queriedElements:fi,preStyleProps:Ai,postStyleProps:Zi,totalTime:en,errors:Cn}}const qe={};class vt{constructor(re,pe,je){this._triggerName=re,this.ast=pe,this._stateStyles=je}match(re,pe,je,Mt){return function(xt,re,pe,je,Mt){return xt.some(kt=>kt(re,pe,je,Mt))}(this.ast.matchers,re,pe,je,Mt)}buildStyles(re,pe,je){const Mt=this._stateStyles["*"],kt=this._stateStyles[re],Kt=Mt?Mt.buildStyles(pe,je):{};return kt?kt.buildStyles(pe,je):Kt}build(re,pe,je,Mt,kt,Kt,Jt,fi,Ai,Zi){const en=[],Cn=this.ast.options&&this.ast.options.params||qe,tt=this.buildStyles(je,Jt&&Jt.params||qe,en),Et=fi&&fi.params||qe,It=this.buildStyles(Mt,Et,en),zt=new Set,ri=new Map,vi=new Map,Mi="void"===Mt,Ei={params:Object.assign(Object.assign({},Cn),Et)},ji=Zi?[]:ot(re,pe,this.ast.animation,kt,Kt,tt,It,Ei,Ai,en);let hn=0;if(ji.forEach(Tn=>{hn=Math.max(Tn.duration+Tn.delay,hn)}),en.length)return be(pe,this._triggerName,je,Mt,Mi,tt,It,[],[],ri,vi,hn,en);ji.forEach(Tn=>{const Vn=Tn.element,wr=T(ri,Vn,{});Tn.preStyleProps.forEach(Ar=>wr[Ar]=!0);const Or=T(vi,Vn,{});Tn.postStyleProps.forEach(Ar=>Or[Ar]=!0),Vn!==pe&&zt.add(Vn)});const yn=Te(zt.values());return be(pe,this._triggerName,je,Mt,Mi,tt,It,ji,yn,ri,vi,hn)}}class $e{constructor(re,pe,je){this.styles=re,this.defaultParams=pe,this.normalizer=je}buildStyles(re,pe){const je={},Mt=Re(this.defaultParams);return Object.keys(re).forEach(kt=>{const Kt=re[kt];null!=Kt&&(Mt[kt]=Kt)}),this.styles.styles.forEach(kt=>{if("string"!=typeof kt){const Kt=kt;Object.keys(Kt).forEach(Jt=>{let fi=Kt[Jt];fi.length>1&&(fi=ue(fi,Mt,pe));const Ai=this.normalizer.normalizePropertyName(Jt,pe);fi=this.normalizer.normalizeStyleValue(Jt,Ai,fi,pe),je[Ai]=fi})}}),je}}class Rt{constructor(re,pe,je){this.name=re,this.ast=pe,this._normalizer=je,this.transitionFactories=[],this.states={},pe.states.forEach(Mt=>{this.states[Mt.name]=new $e(Mt.style,Mt.options&&Mt.options.params||{},je)}),Ri(this.states,"true","1"),Ri(this.states,"false","0"),pe.transitions.forEach(Mt=>{this.transitionFactories.push(new vt(re,Mt,this.states))}),this.fallbackTransition=function(xt,re,pe){return new vt(xt,{type:1,animation:{type:2,steps:[],options:null},matchers:[(Kt,Jt)=>!0],options:null,queryCount:0,depCount:0},re)}(re,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(re,pe,je,Mt){return this.transitionFactories.find(Kt=>Kt.match(re,pe,je,Mt))||null}matchStyles(re,pe,je){return this.fallbackTransition.buildStyles(re,pe,je)}}function Ri(xt,re,pe){xt.hasOwnProperty(re)?xt.hasOwnProperty(pe)||(xt[pe]=xt[re]):xt.hasOwnProperty(pe)&&(xt[re]=xt[pe])}const Ii=new Pt;class Ki{constructor(re,pe,je){this.bodyNode=re,this._driver=pe,this._normalizer=je,this._animations={},this._playersById={},this.players=[]}register(re,pe){const je=[],Mt=jt(this._driver,pe,je);if(je.length)throw new Error(`Unable to build the animation due to the following errors: ${je.join("\n")}`);this._animations[re]=Mt}_buildPlayer(re,pe,je){const Mt=re.element,kt=c(0,this._normalizer,0,re.keyframes,pe,je);return this._driver.animate(Mt,kt,re.duration,re.delay,re.easing,[],!0)}create(re,pe,je={}){const Mt=[],kt=this._animations[re];let Kt;const Jt=new Map;if(kt?(Kt=ot(this._driver,pe,kt,u,_,{},{},je,Ii,Mt),Kt.forEach(Zi=>{const en=T(Jt,Zi.element,{});Zi.postStyleProps.forEach(Cn=>en[Cn]=null)})):(Mt.push("The requested animation doesn't exist or has already been destroyed"),Kt=[]),Mt.length)throw new Error(`Unable to create the animation due to the following errors: ${Mt.join("\n")}`);Jt.forEach((Zi,en)=>{Object.keys(Zi).forEach(Cn=>{Zi[Cn]=this._driver.computeStyle(en,Cn,v.l3)})});const Ai=C(Kt.map(Zi=>{const en=Jt.get(Zi.element);return this._buildPlayer(Zi,{},en)}));return this._playersById[re]=Ai,Ai.onDestroy(()=>this.destroy(re)),this.players.push(Ai),Ai}destroy(re){const pe=this._getPlayer(re);pe.destroy(),delete this._playersById[re];const je=this.players.indexOf(pe);je>=0&&this.players.splice(je,1)}_getPlayer(re){const pe=this._playersById[re];if(!pe)throw new Error(`Unable to find the timeline player referenced by ${re}`);return pe}listen(re,pe,je,Mt){const kt=O(pe,"","","");return P(this._getPlayer(re),je,kt,Mt),()=>{}}command(re,pe,je,Mt){if("register"==je)return void this.register(re,Mt[0]);if("create"==je)return void this.create(re,pe,Mt[0]||{});const kt=this._getPlayer(re);switch(je){case"play":kt.play();break;case"pause":kt.pause();break;case"reset":kt.reset();break;case"restart":kt.restart();break;case"finish":kt.finish();break;case"init":kt.init();break;case"setPosition":kt.setPosition(parseFloat(Mt[0]));break;case"destroy":this.destroy(re)}}}const at="ng-animate-queued",gt="ng-animate-disabled",Lt=".ng-animate-disabled",Wi=[],$i={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},An={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Ln="__ng_removed";class pn{constructor(re,pe=""){this.namespaceId=pe;const je=re&&re.hasOwnProperty("value");if(this.value=null!=(xt=je?re.value:re)?xt:null,je){const kt=Re(re);delete kt.value,this.options=kt}else this.options={};var xt;this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(re){const pe=re.params;if(pe){const je=this.options.params;Object.keys(pe).forEach(Mt=>{null==je[Mt]&&(je[Mt]=pe[Mt])})}}}const Pn="void",xr=new pn(Pn);class wi{constructor(re,pe,je){this.id=re,this.hostElement=pe,this._engine=je,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+re,rr(pe,this._hostClassName)}listen(re,pe,je,Mt){if(!this._triggers.hasOwnProperty(pe))throw new Error(`Unable to listen on the animation trigger event "${je}" because the animation trigger "${pe}" doesn't exist!`);if(null==je||0==je.length)throw new Error(`Unable to listen on the animation trigger "${pe}" because the provided event is undefined!`);if("start"!=(xt=je)&&"done"!=xt)throw new Error(`The provided animation trigger event "${je}" for the animation trigger "${pe}" is not supported!`);var xt;const kt=T(this._elementListeners,re,[]),Kt={name:pe,phase:je,callback:Mt};kt.push(Kt);const Jt=T(this._engine.statesByElement,re,{});return Jt.hasOwnProperty(pe)||(rr(re,x),rr(re,x+"-"+pe),Jt[pe]=xr),()=>{this._engine.afterFlush(()=>{const fi=kt.indexOf(Kt);fi>=0&&kt.splice(fi,1),this._triggers[pe]||delete Jt[pe]})}}register(re,pe){return!this._triggers[re]&&(this._triggers[re]=pe,!0)}_getTrigger(re){const pe=this._triggers[re];if(!pe)throw new Error(`The provided animation trigger "${re}" has not been registered!`);return pe}trigger(re,pe,je,Mt=!0){const kt=this._getTrigger(pe),Kt=new sn(this.id,pe,re);let Jt=this._engine.statesByElement.get(re);Jt||(rr(re,x),rr(re,x+"-"+pe),this._engine.statesByElement.set(re,Jt={}));let fi=Jt[pe];const Ai=new pn(je,this.id);if(!(je&&je.hasOwnProperty("value"))&&fi&&Ai.absorbOptions(fi.options),Jt[pe]=Ai,fi||(fi=xr),Ai.value!==Pn&&fi.value===Ai.value){if(!function(xt,re){const pe=Object.keys(xt),je=Object.keys(re);if(pe.length!=je.length)return!1;for(let Mt=0;Mt{le(re,It),Ae(re,zt)})}return}const Cn=T(this._engine.playersByElement,re,[]);Cn.forEach(Et=>{Et.namespaceId==this.id&&Et.triggerName==pe&&Et.queued&&Et.destroy()});let In=kt.matchTransition(fi.value,Ai.value,re,Ai.params),tt=!1;if(!In){if(!Mt)return;In=kt.fallbackTransition,tt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:re,triggerName:pe,transition:In,fromState:fi,toState:Ai,player:Kt,isFallbackTransition:tt}),tt||(rr(re,at),Kt.onStart(()=>{ua(re,at)})),Kt.onDone(()=>{let Et=this.players.indexOf(Kt);Et>=0&&this.players.splice(Et,1);const It=this._engine.playersByElement.get(re);if(It){let zt=It.indexOf(Kt);zt>=0&&It.splice(zt,1)}}),this.players.push(Kt),Cn.push(Kt),Kt}deregister(re){delete this._triggers[re],this._engine.statesByElement.forEach((pe,je)=>{delete pe[re]}),this._elementListeners.forEach((pe,je)=>{this._elementListeners.set(je,pe.filter(Mt=>Mt.name!=re))})}clearElementCache(re){this._engine.statesByElement.delete(re),this._elementListeners.delete(re);const pe=this._engine.playersByElement.get(re);pe&&(pe.forEach(je=>je.destroy()),this._engine.playersByElement.delete(re))}_signalRemovalForInnerTriggers(re,pe){const je=this._engine.driver.query(re,r,!0);je.forEach(Mt=>{if(Mt[Ln])return;const kt=this._engine.fetchNamespacesByElement(Mt);kt.size?kt.forEach(Kt=>Kt.triggerLeaveAnimation(Mt,pe,!1,!0)):this.clearElementCache(Mt)}),this._engine.afterFlushAnimationsDone(()=>je.forEach(Mt=>this.clearElementCache(Mt)))}triggerLeaveAnimation(re,pe,je,Mt){const kt=this._engine.statesByElement.get(re);if(kt){const Kt=[];if(Object.keys(kt).forEach(Jt=>{if(this._triggers[Jt]){const fi=this.trigger(re,Jt,Pn,Mt);fi&&Kt.push(fi)}}),Kt.length)return this._engine.markElementAsRemoved(this.id,re,!0,pe),je&&C(Kt).onDone(()=>this._engine.processLeaveNode(re)),!0}return!1}prepareLeaveAnimationListeners(re){const pe=this._elementListeners.get(re),je=this._engine.statesByElement.get(re);if(pe&&je){const Mt=new Set;pe.forEach(kt=>{const Kt=kt.name;if(Mt.has(Kt))return;Mt.add(Kt);const fi=this._triggers[Kt].fallbackTransition,Ai=je[Kt]||xr,Zi=new pn(Pn),en=new sn(this.id,Kt,re);this._engine.totalQueuedPlayers++,this._queue.push({element:re,triggerName:Kt,transition:fi,fromState:Ai,toState:Zi,player:en,isFallbackTransition:!0})})}}removeNode(re,pe){const je=this._engine;if(re.childElementCount&&this._signalRemovalForInnerTriggers(re,pe),this.triggerLeaveAnimation(re,pe,!0))return;let Mt=!1;if(je.totalAnimations){const kt=je.players.length?je.playersByQueriedElement.get(re):[];if(kt&&kt.length)Mt=!0;else{let Kt=re;for(;Kt=Kt.parentNode;)if(je.statesByElement.get(Kt)){Mt=!0;break}}}if(this.prepareLeaveAnimationListeners(re),Mt)je.markElementAsRemoved(this.id,re,!1,pe);else{const kt=re[Ln];(!kt||kt===$i)&&(je.afterFlush(()=>this.clearElementCache(re)),je.destroyInnerAnimations(re),je._onRemovalComplete(re,pe))}}insertNode(re,pe){rr(re,this._hostClassName)}drainQueuedTransitions(re){const pe=[];return this._queue.forEach(je=>{const Mt=je.player;if(Mt.destroyed)return;const kt=je.element,Kt=this._elementListeners.get(kt);Kt&&Kt.forEach(Jt=>{if(Jt.name==je.triggerName){const fi=O(kt,je.triggerName,je.fromState.value,je.toState.value);fi._data=re,P(je.player,Jt.phase,fi,Jt.callback)}}),Mt.markedForDestroy?this._engine.afterFlush(()=>{Mt.destroy()}):pe.push(je)}),this._queue=[],pe.sort((je,Mt)=>{const kt=je.transition.ast.depCount,Kt=Mt.transition.ast.depCount;return 0==kt||0==Kt?kt-Kt:this._engine.driver.containsElement(je.element,Mt.element)?1:-1})}destroy(re){this.players.forEach(pe=>pe.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,re)}elementContainsData(re){let pe=!1;return this._elementListeners.has(re)&&(pe=!0),pe=!!this._queue.find(je=>je.element===re)||pe,pe}}class zi{constructor(re,pe,je){this.bodyNode=re,this.driver=pe,this._normalizer=je,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(Mt,kt)=>{}}_onRemovalComplete(re,pe){this.onRemovalComplete(re,pe)}get queuedPlayers(){const re=[];return this._namespaceList.forEach(pe=>{pe.players.forEach(je=>{je.queued&&re.push(je)})}),re}createNamespace(re,pe){const je=new wi(re,pe,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,pe)?this._balanceNamespaceList(je,pe):(this.newHostElements.set(pe,je),this.collectEnterElement(pe)),this._namespaceLookup[re]=je}_balanceNamespaceList(re,pe){const je=this._namespaceList.length-1;if(je>=0){let Mt=!1;for(let kt=je;kt>=0;kt--)if(this.driver.containsElement(this._namespaceList[kt].hostElement,pe)){this._namespaceList.splice(kt+1,0,re),Mt=!0;break}Mt||this._namespaceList.splice(0,0,re)}else this._namespaceList.push(re);return this.namespacesByHostElement.set(pe,re),re}register(re,pe){let je=this._namespaceLookup[re];return je||(je=this.createNamespace(re,pe)),je}registerTrigger(re,pe,je){let Mt=this._namespaceLookup[re];Mt&&Mt.register(pe,je)&&this.totalAnimations++}destroy(re,pe){if(!re)return;const je=this._fetchNamespace(re);this.afterFlush(()=>{this.namespacesByHostElement.delete(je.hostElement),delete this._namespaceLookup[re];const Mt=this._namespaceList.indexOf(je);Mt>=0&&this._namespaceList.splice(Mt,1)}),this.afterFlushAnimationsDone(()=>je.destroy(pe))}_fetchNamespace(re){return this._namespaceLookup[re]}fetchNamespacesByElement(re){const pe=new Set,je=this.statesByElement.get(re);if(je){const Mt=Object.keys(je);for(let kt=0;kt=0&&this.collectedLeaveElements.splice(Kt,1)}if(re){const Kt=this._fetchNamespace(re);Kt&&Kt.insertNode(pe,je)}Mt&&this.collectEnterElement(pe)}collectEnterElement(re){this.collectedEnterElements.push(re)}markElementAsDisabled(re,pe){pe?this.disabledNodes.has(re)||(this.disabledNodes.add(re),rr(re,gt)):this.disabledNodes.has(re)&&(this.disabledNodes.delete(re),ua(re,gt))}removeNode(re,pe,je,Mt){if(qn(pe)){const kt=re?this._fetchNamespace(re):null;if(kt?kt.removeNode(pe,Mt):this.markElementAsRemoved(re,pe,!1,Mt),je){const Kt=this.namespacesByHostElement.get(pe);Kt&&Kt.id!==re&&Kt.removeNode(pe,Mt)}}else this._onRemovalComplete(pe,Mt)}markElementAsRemoved(re,pe,je,Mt){this.collectedLeaveElements.push(pe),pe[Ln]={namespaceId:re,setForRemoval:Mt,hasAnimation:je,removedBeforeQueried:!1}}listen(re,pe,je,Mt,kt){return qn(pe)?this._fetchNamespace(re).listen(pe,je,Mt,kt):()=>{}}_buildInstruction(re,pe,je,Mt,kt){return re.transition.build(this.driver,re.element,re.fromState.value,re.toState.value,je,Mt,re.fromState.options,re.toState.options,pe,kt)}destroyInnerAnimations(re){let pe=this.driver.query(re,r,!0);pe.forEach(je=>this.destroyActiveAnimationsForElement(je)),0!=this.playersByQueriedElement.size&&(pe=this.driver.query(re,J,!0),pe.forEach(je=>this.finishActiveQueriedAnimationOnElement(je)))}destroyActiveAnimationsForElement(re){const pe=this.playersByElement.get(re);pe&&pe.forEach(je=>{je.queued?je.markedForDestroy=!0:je.destroy()})}finishActiveQueriedAnimationOnElement(re){const pe=this.playersByQueriedElement.get(re);pe&&pe.forEach(je=>je.finish())}whenRenderingDone(){return new Promise(re=>{if(this.players.length)return C(this.players).onDone(()=>re());re()})}processLeaveNode(re){const pe=re[Ln];if(pe&&pe.setForRemoval){if(re[Ln]=$i,pe.namespaceId){this.destroyInnerAnimations(re);const je=this._fetchNamespace(pe.namespaceId);je&&je.clearElementCache(re)}this._onRemovalComplete(re,pe.setForRemoval)}this.driver.matchesElement(re,Lt)&&this.markElementAsDisabled(re,!1),this.driver.query(re,Lt,!0).forEach(je=>{this.markElementAsDisabled(je,!1)})}flush(re=-1){let pe=[];if(this.newHostElements.size&&(this.newHostElements.forEach((je,Mt)=>this._balanceNamespaceList(je,Mt)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let je=0;jeje()),this._flushFns=[],this._whenQuietFns.length){const je=this._whenQuietFns;this._whenQuietFns=[],pe.length?C(pe).onDone(()=>{je.forEach(Mt=>Mt())}):je.forEach(Mt=>Mt())}}reportError(re){throw new Error(`Unable to process animations due to the following failed trigger transitions\n ${re.join("\n")}`)}_flushAnimations(re,pe){const je=new Pt,Mt=[],kt=new Map,Kt=[],Jt=new Map,fi=new Map,Ai=new Map,Zi=new Set;this.disabledNodes.forEach(Fi=>{Zi.add(Fi);const an=this.driver.query(Fi,".ng-animate-queued",!0);for(let fn=0;fn{const fn=u+Et++;tt.set(an,fn),Fi.forEach(kn=>rr(kn,fn))});const It=[],zt=new Set,ri=new Set;for(let Fi=0;Fizt.add(kn)):ri.add(an))}const vi=new Map,Mi=Va(Cn,Array.from(zt));Mi.forEach((Fi,an)=>{const fn=_+Et++;vi.set(an,fn),Fi.forEach(kn=>rr(kn,fn))}),re.push(()=>{In.forEach((Fi,an)=>{const fn=tt.get(an);Fi.forEach(kn=>ua(kn,fn))}),Mi.forEach((Fi,an)=>{const fn=vi.get(an);Fi.forEach(kn=>ua(kn,fn))}),It.forEach(Fi=>{this.processLeaveNode(Fi)})});const Ei=[],ji=[];for(let Fi=this._namespaceList.length-1;Fi>=0;Fi--)this._namespaceList[Fi].drainQueuedTransitions(pe).forEach(fn=>{const kn=fn.player,Rn=fn.element;if(Ei.push(kn),this.collectedEnterElements.length){const La=Rn[Ln];if(La&&La.setForMove)return void kn.destroy()}const Da=!en||!this.driver.containsElement(en,Rn),Xr=vi.get(Rn),ca=tt.get(Rn),Wn=this._buildInstruction(fn,je,ca,Xr,Da);if(Wn.errors&&Wn.errors.length)ji.push(Wn);else{if(Da)return kn.onStart(()=>le(Rn,Wn.fromStyles)),kn.onDestroy(()=>Ae(Rn,Wn.toStyles)),void Mt.push(kn);if(fn.isFallbackTransition)return kn.onStart(()=>le(Rn,Wn.fromStyles)),kn.onDestroy(()=>Ae(Rn,Wn.toStyles)),void Mt.push(kn);Wn.timelines.forEach(La=>La.stretchStartingKeyframe=!0),je.append(Rn,Wn.timelines),Kt.push({instruction:Wn,player:kn,element:Rn}),Wn.queriedElements.forEach(La=>T(Jt,La,[]).push(kn)),Wn.preStyleProps.forEach((La,Ps)=>{const js=Object.keys(La);if(js.length){let Ma=fi.get(Ps);Ma||fi.set(Ps,Ma=new Set),js.forEach(vs=>Ma.add(vs))}}),Wn.postStyleProps.forEach((La,Ps)=>{const js=Object.keys(La);let Ma=Ai.get(Ps);Ma||Ai.set(Ps,Ma=new Set),js.forEach(vs=>Ma.add(vs))})}});if(ji.length){const Fi=[];ji.forEach(an=>{Fi.push(`@${an.triggerName} has failed due to:\n`),an.errors.forEach(fn=>Fi.push(`- ${fn}\n`))}),Ei.forEach(an=>an.destroy()),this.reportError(Fi)}const hn=new Map,yn=new Map;Kt.forEach(Fi=>{const an=Fi.element;je.has(an)&&(yn.set(an,an),this._beforeAnimationBuild(Fi.player.namespaceId,Fi.instruction,hn))}),Mt.forEach(Fi=>{const an=Fi.element;this._getPreviousPlayers(an,!1,Fi.namespaceId,Fi.triggerName,null).forEach(kn=>{T(hn,an,[]).push(kn),kn.destroy()})});const Tn=It.filter(Fi=>Zr(Fi,fi,Ai)),Vn=new Map;xa(Vn,this.driver,ri,Ai,v.l3).forEach(Fi=>{Zr(Fi,fi,Ai)&&Tn.push(Fi)});const Or=new Map;In.forEach((Fi,an)=>{xa(Or,this.driver,new Set(Fi),fi,v.k1)}),Tn.forEach(Fi=>{const an=Vn.get(Fi),fn=Or.get(Fi);Vn.set(Fi,Object.assign(Object.assign({},an),fn))});const Ar=[],Yn=[],_r={};Kt.forEach(Fi=>{const{element:an,player:fn,instruction:kn}=Fi;if(je.has(an)){if(Zi.has(an))return fn.onDestroy(()=>Ae(an,kn.toStyles)),fn.disabled=!0,fn.overrideTotalTime(kn.totalTime),void Mt.push(fn);let Rn=_r;if(yn.size>1){let Xr=an;const ca=[];for(;Xr=Xr.parentNode;){const Wn=yn.get(Xr);if(Wn){Rn=Wn;break}ca.push(Xr)}ca.forEach(Wn=>yn.set(Wn,Rn))}const Da=this._buildAnimation(fn.namespaceId,kn,hn,kt,Or,Vn);if(fn.setRealPlayer(Da),Rn===_r)Ar.push(fn);else{const Xr=this.playersByElement.get(Rn);Xr&&Xr.length&&(fn.parentPlayer=C(Xr)),Mt.push(fn)}}else le(an,kn.fromStyles),fn.onDestroy(()=>Ae(an,kn.toStyles)),Yn.push(fn),Zi.has(an)&&Mt.push(fn)}),Yn.forEach(Fi=>{const an=kt.get(Fi.element);if(an&&an.length){const fn=C(an);Fi.setRealPlayer(fn)}}),Mt.forEach(Fi=>{Fi.parentPlayer?Fi.syncPlayerEvents(Fi.parentPlayer):Fi.destroy()});for(let Fi=0;Fi!Da.destroyed);Rn.length?la(this,an,Rn):this.processLeaveNode(an)}return It.length=0,Ar.forEach(Fi=>{this.players.push(Fi),Fi.onDone(()=>{Fi.destroy();const an=this.players.indexOf(Fi);this.players.splice(an,1)}),Fi.play()}),Ar}elementContainsData(re,pe){let je=!1;const Mt=pe[Ln];return Mt&&Mt.setForRemoval&&(je=!0),this.playersByElement.has(pe)&&(je=!0),this.playersByQueriedElement.has(pe)&&(je=!0),this.statesByElement.has(pe)&&(je=!0),this._fetchNamespace(re).elementContainsData(pe)||je}afterFlush(re){this._flushFns.push(re)}afterFlushAnimationsDone(re){this._whenQuietFns.push(re)}_getPreviousPlayers(re,pe,je,Mt,kt){let Kt=[];if(pe){const Jt=this.playersByQueriedElement.get(re);Jt&&(Kt=Jt)}else{const Jt=this.playersByElement.get(re);if(Jt){const fi=!kt||kt==Pn;Jt.forEach(Ai=>{Ai.queued||!fi&&Ai.triggerName!=Mt||Kt.push(Ai)})}}return(je||Mt)&&(Kt=Kt.filter(Jt=>!(je&&je!=Jt.namespaceId||Mt&&Mt!=Jt.triggerName))),Kt}_beforeAnimationBuild(re,pe,je){const kt=pe.element,Kt=pe.isRemovalTransition?void 0:re,Jt=pe.isRemovalTransition?void 0:pe.triggerName;for(const fi of pe.timelines){const Ai=fi.element,Zi=Ai!==kt,en=T(je,Ai,[]);this._getPreviousPlayers(Ai,Zi,Kt,Jt,pe.toState).forEach(In=>{const tt=In.getRealPlayer();tt.beforeDestroy&&tt.beforeDestroy(),In.destroy(),en.push(In)})}le(kt,pe.fromStyles)}_buildAnimation(re,pe,je,Mt,kt,Kt){const Jt=pe.triggerName,fi=pe.element,Ai=[],Zi=new Set,en=new Set,Cn=pe.timelines.map(tt=>{const Et=tt.element;Zi.add(Et);const It=Et[Ln];if(It&&It.removedBeforeQueried)return new v.ZN(tt.duration,tt.delay);const zt=Et!==fi,ri=function(xt){const re=[];return Ra(xt,re),re}((je.get(Et)||Wi).map(hn=>hn.getRealPlayer())).filter(hn=>!!hn.element&&hn.element===Et),vi=kt.get(Et),Mi=Kt.get(Et),Ei=c(0,this._normalizer,0,tt.keyframes,vi,Mi),ji=this._buildPlayer(tt,Ei,ri);if(tt.subTimeline&&Mt&&en.add(Et),zt){const hn=new sn(re,Jt,Et);hn.setRealPlayer(ji),Ai.push(hn)}return ji});Ai.forEach(tt=>{T(this.playersByQueriedElement,tt.element,[]).push(tt),tt.onDone(()=>function(xt,re,pe){let je;if(xt instanceof Map){if(je=xt.get(re),je){if(je.length){const Mt=je.indexOf(pe);je.splice(Mt,1)}0==je.length&&xt.delete(re)}}else if(je=xt[re],je){if(je.length){const Mt=je.indexOf(pe);je.splice(Mt,1)}0==je.length&&delete xt[re]}return je}(this.playersByQueriedElement,tt.element,tt))}),Zi.forEach(tt=>rr(tt,b));const In=C(Cn);return In.onDestroy(()=>{Zi.forEach(tt=>ua(tt,b)),Ae(fi,pe.toStyles)}),en.forEach(tt=>{T(Mt,tt,[]).push(In)}),In}_buildPlayer(re,pe,je){return pe.length>0?this.driver.animate(re.element,pe,re.duration,re.delay,re.easing,je):new v.ZN(re.duration,re.delay)}}class sn{constructor(re,pe,je){this.namespaceId=re,this.triggerName=pe,this.element=je,this._player=new v.ZN,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(re){this._containsRealPlayer||(this._player=re,Object.keys(this._queuedCallbacks).forEach(pe=>{this._queuedCallbacks[pe].forEach(je=>P(re,pe,void 0,je))}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(re.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(re){this.totalTime=re}syncPlayerEvents(re){const pe=this._player;pe.triggerCallback&&re.onStart(()=>pe.triggerCallback("start")),re.onDone(()=>this.finish()),re.onDestroy(()=>this.destroy())}_queueEvent(re,pe){T(this._queuedCallbacks,re,[]).push(pe)}onDone(re){this.queued&&this._queueEvent("done",re),this._player.onDone(re)}onStart(re){this.queued&&this._queueEvent("start",re),this._player.onStart(re)}onDestroy(re){this.queued&&this._queueEvent("destroy",re),this._player.onDestroy(re)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(re){this.queued||this._player.setPosition(re)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(re){const pe=this._player;pe.triggerCallback&&pe.triggerCallback(re)}}function qn(xt){return xt&&1===xt.nodeType}function ba(xt,re){const pe=xt.style.display;return xt.style.display=null!=re?re:"none",pe}function xa(xt,re,pe,je,Mt){const kt=[];pe.forEach(fi=>kt.push(ba(fi)));const Kt=[];je.forEach((fi,Ai)=>{const Zi={};fi.forEach(en=>{const Cn=Zi[en]=re.computeStyle(Ai,en,Mt);(!Cn||0==Cn.length)&&(Ai[Ln]=An,Kt.push(Ai))}),xt.set(Ai,Zi)});let Jt=0;return pe.forEach(fi=>ba(fi,kt[Jt++])),Kt}function Va(xt,re){const pe=new Map;if(xt.forEach(Jt=>pe.set(Jt,[])),0==re.length)return pe;const Mt=new Set(re),kt=new Map;function Kt(Jt){if(!Jt)return 1;let fi=kt.get(Jt);if(fi)return fi;const Ai=Jt.parentNode;return fi=pe.has(Ai)?Ai:Mt.has(Ai)?1:Kt(Ai),kt.set(Jt,fi),fi}return re.forEach(Jt=>{const fi=Kt(Jt);1!==fi&&pe.get(fi).push(Jt)}),pe}const zr="$$classes";function rr(xt,re){if(xt.classList)xt.classList.add(re);else{let pe=xt[zr];pe||(pe=xt[zr]={}),pe[re]=!0}}function ua(xt,re){if(xt.classList)xt.classList.remove(re);else{let pe=xt[zr];pe&&delete pe[re]}}function la(xt,re,pe){C(pe).onDone(()=>xt.processLeaveNode(re))}function Ra(xt,re){for(let pe=0;peMt.add(kt)):re.set(xt,je),pe.delete(xt),!0}class Qr{constructor(re,pe,je){this.bodyNode=re,this._driver=pe,this._normalizer=je,this._triggerCache={},this.onRemovalComplete=(Mt,kt)=>{},this._transitionEngine=new zi(re,pe,je),this._timelineEngine=new Ki(re,pe,je),this._transitionEngine.onRemovalComplete=(Mt,kt)=>this.onRemovalComplete(Mt,kt)}registerTrigger(re,pe,je,Mt,kt){const Kt=re+"-"+Mt;let Jt=this._triggerCache[Kt];if(!Jt){const fi=[],Ai=jt(this._driver,kt,fi);if(fi.length)throw new Error(`The animation trigger "${Mt}" has failed to build due to the following errors:\n - ${fi.join("\n - ")}`);Jt=function(xt,re,pe){return new Rt(xt,re,pe)}(Mt,Ai,this._normalizer),this._triggerCache[Kt]=Jt}this._transitionEngine.registerTrigger(pe,Mt,Jt)}register(re,pe){this._transitionEngine.register(re,pe)}destroy(re,pe){this._transitionEngine.destroy(re,pe)}onInsert(re,pe,je,Mt){this._transitionEngine.insertNode(re,pe,je,Mt)}onRemove(re,pe,je,Mt){this._transitionEngine.removeNode(re,pe,Mt||!1,je)}disableAnimations(re,pe){this._transitionEngine.markElementAsDisabled(re,pe)}process(re,pe,je,Mt){if("@"==je.charAt(0)){const[kt,Kt]=R(je);this._timelineEngine.command(kt,pe,Kt,Mt)}else this._transitionEngine.trigger(re,pe,je,Mt)}listen(re,pe,je,Mt,kt){if("@"==je.charAt(0)){const[Kt,Jt]=R(je);return this._timelineEngine.listen(Kt,pe,Jt,kt)}return this._transitionEngine.listen(re,pe,je,Mt,kt)}flush(re=-1){this._transitionEngine.flush(re)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}function Cr(xt,re){let pe=null,je=null;return Array.isArray(re)&&re.length?(pe=Kn(re[0]),re.length>1&&(je=Kn(re[re.length-1]))):re&&(pe=Kn(re)),pe||je?new _n(xt,pe,je):null}let _n=(()=>{class xt{constructor(pe,je,Mt){this._element=pe,this._startStyles=je,this._endStyles=Mt,this._state=0;let kt=xt.initialStylesByElement.get(pe);kt||xt.initialStylesByElement.set(pe,kt={}),this._initialStyles=kt}start(){this._state<1&&(this._startStyles&&Ae(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Ae(this._element,this._initialStyles),this._endStyles&&(Ae(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(xt.initialStylesByElement.delete(this._element),this._startStyles&&(le(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(le(this._element,this._endStyles),this._endStyles=null),Ae(this._element,this._initialStyles),this._state=3)}}return xt.initialStylesByElement=new WeakMap,xt})();function Kn(xt){let re=null;const pe=Object.keys(xt);for(let je=0;jethis._handleCallback(fi)}apply(){(function(xt,re){const pe=na(xt,"").trim();let je=0;pe.length&&(function(xt,re){let pe=0;for(let je=0;je=this._delay&&je>=this._duration&&this.finish()}finish(){this._finished||(this._finished=!0,this._onDoneFn(),Sa(this._element,this._eventFn,!0))}destroy(){this._destroyed||(this._destroyed=!0,this.finish(),function(xt,re){const je=na(xt,"").split(","),Mt=ia(je,re);Mt>=0&&(je.splice(Mt,1),Pr(xt,"",je.join(",")))}(this._element,this._name))}}function Vr(xt,re,pe){Pr(xt,"PlayState",pe,dr(xt,re))}function dr(xt,re){const pe=na(xt,"");return pe.indexOf(",")>0?ia(pe.split(","),re):ia([pe],re)}function ia(xt,re){for(let pe=0;pe=0)return pe;return-1}function Sa(xt,re,pe){pe?xt.removeEventListener(Rr,re):xt.addEventListener(Rr,re)}function Pr(xt,re,pe,je){const Mt=Ga+re;if(null!=je){const kt=xt.style[Mt];if(kt.length){const Kt=kt.split(",");Kt[je]=pe,pe=Kt.join(",")}}xt.style[Mt]=pe}function na(xt,re){return xt.style[Ga+re]||""}class mr{constructor(re,pe,je,Mt,kt,Kt,Jt,fi){this.element=re,this.keyframes=pe,this.animationName=je,this._duration=Mt,this._delay=kt,this._finalStyles=Jt,this._specialStyles=fi,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this.currentSnapshot={},this._state=0,this.easing=Kt||"linear",this.totalTime=Mt+kt,this._buildStyler()}onStart(re){this._onStartFns.push(re)}onDone(re){this._onDoneFns.push(re)}onDestroy(re){this._onDestroyFns.push(re)}destroy(){this.init(),!(this._state>=4)&&(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(re=>re()),this._onDestroyFns=[])}_flushDoneFns(){this._onDoneFns.forEach(re=>re()),this._onDoneFns=[]}_flushStartFns(){this._onStartFns.forEach(re=>re()),this._onStartFns=[]}finish(){this.init(),!(this._state>=3)&&(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())}setPosition(re){this._styler.setPosition(re)}getPosition(){return this._styler.getPosition()}hasStarted(){return this._state>=2}init(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())}play(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()}pause(){this.init(),this._styler.pause()}restart(){this.reset(),this.play()}reset(){this._state=0,this._styler.destroy(),this._buildStyler(),this._styler.apply()}_buildStyler(){this._styler=new Ca(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",()=>this.finish())}triggerCallback(re){const pe="start"==re?this._onStartFns:this._onDoneFns;pe.forEach(je=>je()),pe.length=0}beforeDestroy(){this.init();const re={};if(this.hasStarted()){const pe=this._state>=3;Object.keys(this._finalStyles).forEach(je=>{"offset"!=je&&(re[je]=pe?this._finalStyles[je]:ht(this.element,je))})}this.currentSnapshot=re}}class fa extends v.ZN{constructor(re,pe){super(),this.element=re,this._startingStyles={},this.__initialized=!1,this._styles=se(pe)}init(){this.__initialized||!this._startingStyles||(this.__initialized=!0,Object.keys(this._styles).forEach(re=>{this._startingStyles[re]=this.element.style[re]}),super.init())}play(){!this._startingStyles||(this.init(),Object.keys(this._styles).forEach(re=>this.element.style.setProperty(re,this._styles[re])),super.play())}destroy(){!this._startingStyles||(Object.keys(this._startingStyles).forEach(re=>{const pe=this._startingStyles[re];pe?this.element.style.setProperty(re,pe):this.element.style.removeProperty(re)}),this._startingStyles=null,super.destroy())}}class Zn{constructor(){this._count=0}validateStyleProperty(re){return ie(re)}matchesElement(re,pe){return fe(re,pe)}containsElement(re,pe){return de(re,pe)}query(re,pe,je){return ne(re,pe,je)}computeStyle(re,pe,je){return window.getComputedStyle(re)[pe]}buildKeyframeElement(re,pe,je){je=je.map(Jt=>se(Jt));let Mt=`@keyframes ${pe} {\n`,kt="";je.forEach(Jt=>{kt=" ";const fi=parseFloat(Jt.offset);Mt+=`${kt}${100*fi}% {\n`,kt+=" ",Object.keys(Jt).forEach(Ai=>{const Zi=Jt[Ai];switch(Ai){case"offset":return;case"easing":return void(Zi&&(Mt+=`${kt}animation-timing-function: ${Zi};\n`));default:return void(Mt+=`${kt}${Ai}: ${Zi};\n`)}}),Mt+=`${kt}}\n`}),Mt+="}\n";const Kt=document.createElement("style");return Kt.textContent=Mt,Kt}animate(re,pe,je,Mt,kt,Kt=[],Jt){const fi=Kt.filter(It=>It instanceof mr),Ai={};he(je,Mt)&&fi.forEach(It=>{let zt=It.currentSnapshot;Object.keys(zt).forEach(ri=>Ai[ri]=zt[ri])});const Zi=function(xt){let re={};return xt&&(Array.isArray(xt)?xt:[xt]).forEach(je=>{Object.keys(je).forEach(Mt=>{"offset"==Mt||"easing"==Mt||(re[Mt]=je[Mt])})}),re}(pe=Me(re,pe,Ai));if(0==je)return new fa(re,Zi);const en="gen_css_kf_"+this._count++,Cn=this.buildKeyframeElement(re,en,pe);(function(xt){var re;const pe=null===(re=xt.getRootNode)||void 0===re?void 0:re.call(xt);return"undefined"!=typeof ShadowRoot&&pe instanceof ShadowRoot?pe:document.head})(re).appendChild(Cn);const tt=Cr(re,pe),Et=new mr(re,pe,en,je,Mt,kt,Zi,tt);return Et.onDestroy(()=>{var xt;(xt=Cn).parentNode.removeChild(xt)}),Et}}class ae{constructor(re,pe,je,Mt){this.element=re,this.keyframes=pe,this.options=je,this._specialStyles=Mt,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=je.duration,this._delay=je.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(re=>re()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const re=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,re,this.options),this._finalKeyframe=re.length?re[re.length-1]:{},this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(re,pe,je){return re.animate(pe,je)}onStart(re){this._onStartFns.push(re)}onDone(re){this._onDoneFns.push(re)}onDestroy(re){this._onDestroyFns.push(re)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(re=>re()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(re=>re()),this._onDestroyFns=[])}setPosition(re){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=re*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const re={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(pe=>{"offset"!=pe&&(re[pe]=this._finished?this._finalKeyframe[pe]:ht(this.element,pe))}),this.currentSnapshot=re}triggerCallback(re){const pe="start"==re?this._onStartFns:this._onDoneFns;pe.forEach(je=>je()),pe.length=0}}class Qe{constructor(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(mi().toString()),this._cssKeyframesDriver=new Zn}validateStyleProperty(re){return ie(re)}matchesElement(re,pe){return fe(re,pe)}containsElement(re,pe){return de(re,pe)}query(re,pe,je){return ne(re,pe,je)}computeStyle(re,pe,je){return window.getComputedStyle(re)[pe]}overrideWebAnimationsSupport(re){this._isNativeImpl=re}animate(re,pe,je,Mt,kt,Kt=[],Jt){if(!Jt&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(re,pe,je,Mt,kt,Kt);const Zi={duration:je,delay:Mt,fill:0==Mt?"both":"forwards"};kt&&(Zi.easing=kt);const en={},Cn=Kt.filter(tt=>tt instanceof ae);he(je,Mt)&&Cn.forEach(tt=>{let Et=tt.currentSnapshot;Object.keys(Et).forEach(It=>en[It]=Et[It])});const In=Cr(re,pe=Me(re,pe=pe.map(tt=>q(tt,!1)),en));return new ae(re,pe,Zi,In)}}function mi(){return M()&&Element.prototype.animate||{}}var Ct=m(9808);let ei=(()=>{class xt extends v._j{constructor(pe,je){super(),this._nextAnimationId=0,this._renderer=pe.createRenderer(je.body,{id:"0",encapsulation:e.ifc.None,styles:[],data:{animation:[]}})}build(pe){const je=this._nextAnimationId.toString();this._nextAnimationId++;const Mt=Array.isArray(pe)?(0,v.vP)(pe):pe;return xi(this._renderer,null,je,"register",[Mt]),new bt(je,this._renderer)}}return xt.\u0275fac=function(pe){return new(pe||xt)(e.LFG(e.FYo),e.LFG(Ct.K0))},xt.\u0275prov=e.Yz7({token:xt,factory:xt.\u0275fac}),xt})();class bt extends v.LC{constructor(re,pe){super(),this._id=re,this._renderer=pe}create(re,pe){return new Wt(this._id,re,pe||{},this._renderer)}}class Wt{constructor(re,pe,je,Mt){this.id=re,this.element=pe,this._renderer=Mt,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",je)}_listen(re,pe){return this._renderer.listen(this.element,`@@${this.id}:${re}`,pe)}_command(re,...pe){return xi(this._renderer,this.element,this.id,re,pe)}onDone(re){this._listen("done",re)}onStart(re){this._listen("start",re)}onDestroy(re){this._listen("destroy",re)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(re){this._command("setPosition",re)}getPosition(){var re,pe;return null!==(pe=null===(re=this._renderer.engine.players[+this.id])||void 0===re?void 0:re.getPosition())&&void 0!==pe?pe:0}}function xi(xt,re,pe,je,Mt){return xt.setProperty(re,`@@${pe}:${je}`,Mt)}const vn="@.disabled";let wn=(()=>{class xt{constructor(pe,je,Mt){this.delegate=pe,this.engine=je,this._zone=Mt,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),je.onRemovalComplete=(kt,Kt)=>{const Jt=null==Kt?void 0:Kt.parentNode(kt);Jt&&Kt.removeChild(Jt,kt)}}createRenderer(pe,je){const kt=this.delegate.createRenderer(pe,je);if(!(pe&&je&&je.data&&je.data.animation)){let Zi=this._rendererCache.get(kt);return Zi||(Zi=new Qi("",kt,this.engine),this._rendererCache.set(kt,Zi)),Zi}const Kt=je.id,Jt=je.id+"-"+this._currentId;this._currentId++,this.engine.register(Jt,pe);const fi=Zi=>{Array.isArray(Zi)?Zi.forEach(fi):this.engine.registerTrigger(Kt,Jt,pe,Zi.name,Zi)};return je.data.animation.forEach(fi),new gr(this,Jt,kt,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(pe,je,Mt){pe>=0&&peje(Mt)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(kt=>{const[Kt,Jt]=kt;Kt(Jt)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([je,Mt]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return xt.\u0275fac=function(pe){return new(pe||xt)(e.LFG(e.FYo),e.LFG(Qr),e.LFG(e.R0b))},xt.\u0275prov=e.Yz7({token:xt,factory:xt.\u0275fac}),xt})();class Qi{constructor(re,pe,je){this.namespaceId=re,this.delegate=pe,this.engine=je,this.destroyNode=this.delegate.destroyNode?Mt=>pe.destroyNode(Mt):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}createElement(re,pe){return this.delegate.createElement(re,pe)}createComment(re){return this.delegate.createComment(re)}createText(re){return this.delegate.createText(re)}appendChild(re,pe){this.delegate.appendChild(re,pe),this.engine.onInsert(this.namespaceId,pe,re,!1)}insertBefore(re,pe,je,Mt=!0){this.delegate.insertBefore(re,pe,je),this.engine.onInsert(this.namespaceId,pe,re,Mt)}removeChild(re,pe,je){this.engine.onRemove(this.namespaceId,pe,this.delegate,je)}selectRootElement(re,pe){return this.delegate.selectRootElement(re,pe)}parentNode(re){return this.delegate.parentNode(re)}nextSibling(re){return this.delegate.nextSibling(re)}setAttribute(re,pe,je,Mt){this.delegate.setAttribute(re,pe,je,Mt)}removeAttribute(re,pe,je){this.delegate.removeAttribute(re,pe,je)}addClass(re,pe){this.delegate.addClass(re,pe)}removeClass(re,pe){this.delegate.removeClass(re,pe)}setStyle(re,pe,je,Mt){this.delegate.setStyle(re,pe,je,Mt)}removeStyle(re,pe,je){this.delegate.removeStyle(re,pe,je)}setProperty(re,pe,je){"@"==pe.charAt(0)&&pe==vn?this.disableAnimations(re,!!je):this.delegate.setProperty(re,pe,je)}setValue(re,pe){this.delegate.setValue(re,pe)}listen(re,pe,je){return this.delegate.listen(re,pe,je)}disableAnimations(re,pe){this.engine.disableAnimations(re,pe)}}class gr extends Qi{constructor(re,pe,je,Mt){super(pe,je,Mt),this.factory=re,this.namespaceId=pe}setProperty(re,pe,je){"@"==pe.charAt(0)?"."==pe.charAt(1)&&pe==vn?this.disableAnimations(re,je=void 0===je||!!je):this.engine.process(this.namespaceId,re,pe.substr(1),je):this.delegate.setProperty(re,pe,je)}listen(re,pe,je){if("@"==pe.charAt(0)){const Mt=function(xt){switch(xt){case"body":return document.body;case"document":return document;case"window":return window;default:return xt}}(re);let kt=pe.substr(1),Kt="";return"@"!=kt.charAt(0)&&([kt,Kt]=function(xt){const re=xt.indexOf(".");return[xt.substring(0,re),xt.substr(re+1)]}(kt)),this.engine.listen(this.namespaceId,Mt,kt,Kt,Jt=>{this.factory.scheduleListenerCallback(Jt._data||-1,je,Jt)})}return this.delegate.listen(re,pe,je)}}let ma=(()=>{class xt extends Qr{constructor(pe,je,Mt){super(pe.body,je,Mt)}ngOnDestroy(){this.flush()}}return xt.\u0275fac=function(pe){return new(pe||xt)(e.LFG(Ct.K0),e.LFG(y),e.LFG(Vi))},xt.\u0275prov=e.Yz7({token:xt,factory:xt.\u0275fac}),xt})();const ki=new e.OlP("AnimationModuleType"),Nn=[{provide:v._j,useClass:ei},{provide:Vi,useFactory:function(){return new Xi}},{provide:Qr,useClass:ma},{provide:e.FYo,useFactory:function(xt,re,pe){return new wn(xt,re,pe)},deps:[t.se,Qr,e.R0b]}],fs=[{provide:y,useFactory:function(){return"function"==typeof mi()?new Qe:new Zn}},{provide:ki,useValue:"BrowserAnimations"},...Nn],cr=[{provide:y,useClass:oe},{provide:ki,useValue:"NoopAnimations"},...Nn];let Ys=(()=>{class xt{static withConfig(pe){return{ngModule:xt,providers:pe.disableAnimations?cr:fs}}}return xt.\u0275fac=function(pe){return new(pe||xt)},xt.\u0275mod=e.oAB({type:xt}),xt.\u0275inj=e.cJS({providers:fs,imports:[t.b2]}),xt})()},2313:(Ue,K,m)=>{"use strict";m.d(K,{b2:()=>yt,H7:()=>$t,t6:()=>et,q6:()=>le,se:()=>u});var e=m(9808),t=m(5e3);class v extends e.w_{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class M extends v{static makeCurrent(){(0,e.HT)(new M)}onAndCancel(Be,rt,ot){return Be.addEventListener(rt,ot,!1),()=>{Be.removeEventListener(rt,ot,!1)}}dispatchEvent(Be,rt){Be.dispatchEvent(rt)}remove(Be){Be.parentNode&&Be.parentNode.removeChild(Be)}createElement(Be,rt){return(rt=rt||this.getDefaultDocument()).createElement(Be)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(Be){return Be.nodeType===Node.ELEMENT_NODE}isShadowRoot(Be){return Be instanceof DocumentFragment}getGlobalEventTarget(Be,rt){return"window"===rt?window:"document"===rt?Be:"body"===rt?Be.body:null}getBaseHref(Be){const rt=(s=s||document.querySelector("base"),s?s.getAttribute("href"):null);return null==rt?null:function(Pe){c=c||document.createElement("a"),c.setAttribute("href",Pe);const Be=c.pathname;return"/"===Be.charAt(0)?Be:`/${Be}`}(rt)}resetBaseElement(){s=null}getUserAgent(){return window.navigator.userAgent}getCookie(Be){return(0,e.Mx)(document.cookie,Be)}}let c,s=null;const o=new t.OlP("TRANSITION_ID"),T=[{provide:t.ip1,useFactory:function(Pe,Be,rt){return()=>{rt.get(t.CZH).donePromise.then(()=>{const ot=(0,e.q)(),At=Be.querySelectorAll(`style[ng-transition="${Pe}"]`);for(let li=0;li{const li=Be.findTestabilityInTree(ot,At);if(null==li)throw new Error("Could not find testability for element.");return li},t.dqk.getAllAngularTestabilities=()=>Be.getAllTestabilities(),t.dqk.getAllAngularRootElements=()=>Be.getAllRootElements(),t.dqk.frameworkStabilizers||(t.dqk.frameworkStabilizers=[]),t.dqk.frameworkStabilizers.push(ot=>{const At=t.dqk.getAllAngularTestabilities();let li=At.length,Ut=!1;const Ft=function(Si){Ut=Ut||Si,li--,0==li&&ot(Ut)};At.forEach(function(Si){Si.whenStable(Ft)})})}findTestabilityInTree(Be,rt,ot){if(null==rt)return null;const At=Be.getTestability(rt);return null!=At?At:ot?(0,e.q)().isShadowRoot(rt)?this.findTestabilityInTree(Be,rt.host,!0):this.findTestabilityInTree(Be,rt.parentElement,!0):null}}let S=(()=>{class Pe{build(){return new XMLHttpRequest}}return Pe.\u0275fac=function(rt){return new(rt||Pe)},Pe.\u0275prov=t.Yz7({token:Pe,factory:Pe.\u0275fac}),Pe})();const D=new t.OlP("EventManagerPlugins");let w=(()=>{class Pe{constructor(rt,ot){this._zone=ot,this._eventNameToPlugin=new Map,rt.forEach(At=>At.manager=this),this._plugins=rt.slice().reverse()}addEventListener(rt,ot,At){return this._findPluginFor(ot).addEventListener(rt,ot,At)}addGlobalEventListener(rt,ot,At){return this._findPluginFor(ot).addGlobalEventListener(rt,ot,At)}getZone(){return this._zone}_findPluginFor(rt){const ot=this._eventNameToPlugin.get(rt);if(ot)return ot;const At=this._plugins;for(let li=0;li{class Pe{constructor(){this._stylesSet=new Set}addStyles(rt){const ot=new Set;rt.forEach(At=>{this._stylesSet.has(At)||(this._stylesSet.add(At),ot.add(At))}),this.onStylesAdded(ot)}onStylesAdded(rt){}getAllStyles(){return Array.from(this._stylesSet)}}return Pe.\u0275fac=function(rt){return new(rt||Pe)},Pe.\u0275prov=t.Yz7({token:Pe,factory:Pe.\u0275fac}),Pe})(),W=(()=>{class Pe extends G{constructor(rt){super(),this._doc=rt,this._hostNodes=new Map,this._hostNodes.set(rt.head,[])}_addStylesToHost(rt,ot,At){rt.forEach(li=>{const Ut=this._doc.createElement("style");Ut.textContent=li,At.push(ot.appendChild(Ut))})}addHost(rt){const ot=[];this._addStylesToHost(this._stylesSet,rt,ot),this._hostNodes.set(rt,ot)}removeHost(rt){const ot=this._hostNodes.get(rt);ot&&ot.forEach(ee),this._hostNodes.delete(rt)}onStylesAdded(rt){this._hostNodes.forEach((ot,At)=>{this._addStylesToHost(rt,At,ot)})}ngOnDestroy(){this._hostNodes.forEach(rt=>rt.forEach(ee))}}return Pe.\u0275fac=function(rt){return new(rt||Pe)(t.LFG(e.K0))},Pe.\u0275prov=t.Yz7({token:Pe,factory:Pe.\u0275fac}),Pe})();function ee(Pe){(0,e.q)().remove(Pe)}const ie={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},_e=/%COMP%/g;function i(Pe,Be,rt){for(let ot=0;ot{if("__ngUnwrap__"===Be)return Pe;!1===Pe(Be)&&(Be.preventDefault(),Be.returnValue=!1)}}let u=(()=>{class Pe{constructor(rt,ot,At){this.eventManager=rt,this.sharedStylesHost=ot,this.appId=At,this.rendererByCompId=new Map,this.defaultRenderer=new _(rt)}createRenderer(rt,ot){if(!rt||!ot)return this.defaultRenderer;switch(ot.encapsulation){case t.ifc.Emulated:{let At=this.rendererByCompId.get(ot.id);return At||(At=new x(this.eventManager,this.sharedStylesHost,ot,this.appId),this.rendererByCompId.set(ot.id,At)),At.applyToHost(rt),At}case 1:case t.ifc.ShadowDom:return new r(this.eventManager,this.sharedStylesHost,rt,ot);default:if(!this.rendererByCompId.has(ot.id)){const At=i(ot.id,ot.styles,[]);this.sharedStylesHost.addStyles(At),this.rendererByCompId.set(ot.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return Pe.\u0275fac=function(rt){return new(rt||Pe)(t.LFG(w),t.LFG(W),t.LFG(t.AFp))},Pe.\u0275prov=t.Yz7({token:Pe,factory:Pe.\u0275fac}),Pe})();class _{constructor(Be){this.eventManager=Be,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(Be,rt){return rt?document.createElementNS(ie[rt]||rt,Be):document.createElement(Be)}createComment(Be){return document.createComment(Be)}createText(Be){return document.createTextNode(Be)}appendChild(Be,rt){Be.appendChild(rt)}insertBefore(Be,rt,ot){Be&&Be.insertBefore(rt,ot)}removeChild(Be,rt){Be&&Be.removeChild(rt)}selectRootElement(Be,rt){let ot="string"==typeof Be?document.querySelector(Be):Be;if(!ot)throw new Error(`The selector "${Be}" did not match any elements`);return rt||(ot.textContent=""),ot}parentNode(Be){return Be.parentNode}nextSibling(Be){return Be.nextSibling}setAttribute(Be,rt,ot,At){if(At){rt=At+":"+rt;const li=ie[At];li?Be.setAttributeNS(li,rt,ot):Be.setAttribute(rt,ot)}else Be.setAttribute(rt,ot)}removeAttribute(Be,rt,ot){if(ot){const At=ie[ot];At?Be.removeAttributeNS(At,rt):Be.removeAttribute(`${ot}:${rt}`)}else Be.removeAttribute(rt)}addClass(Be,rt){Be.classList.add(rt)}removeClass(Be,rt){Be.classList.remove(rt)}setStyle(Be,rt,ot,At){At&(t.JOm.DashCase|t.JOm.Important)?Be.style.setProperty(rt,ot,At&t.JOm.Important?"important":""):Be.style[rt]=ot}removeStyle(Be,rt,ot){ot&t.JOm.DashCase?Be.style.removeProperty(rt):Be.style[rt]=""}setProperty(Be,rt,ot){Be[rt]=ot}setValue(Be,rt){Be.nodeValue=rt}listen(Be,rt,ot){return"string"==typeof Be?this.eventManager.addGlobalEventListener(Be,rt,a(ot)):this.eventManager.addEventListener(Be,rt,a(ot))}}class x extends _{constructor(Be,rt,ot,At){super(Be),this.component=ot;const li=i(At+"-"+ot.id,ot.styles,[]);rt.addStyles(li),this.contentAttr="_ngcontent-%COMP%".replace(_e,At+"-"+ot.id),this.hostAttr="_nghost-%COMP%".replace(_e,At+"-"+ot.id)}applyToHost(Be){super.setAttribute(Be,this.hostAttr,"")}createElement(Be,rt){const ot=super.createElement(Be,rt);return super.setAttribute(ot,this.contentAttr,""),ot}}class r extends _{constructor(Be,rt,ot,At){super(Be),this.sharedStylesHost=rt,this.hostEl=ot,this.shadowRoot=ot.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const li=i(At.id,At.styles,[]);for(let Ut=0;Ut{class Pe extends U{constructor(rt){super(rt)}supports(rt){return!0}addEventListener(rt,ot,At){return rt.addEventListener(ot,At,!1),()=>this.removeEventListener(rt,ot,At)}removeEventListener(rt,ot,At){return rt.removeEventListener(ot,At)}}return Pe.\u0275fac=function(rt){return new(rt||Pe)(t.LFG(e.K0))},Pe.\u0275prov=t.Yz7({token:Pe,factory:Pe.\u0275fac}),Pe})();const J=["alt","control","meta","shift"],B={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},te={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},xe={alt:Pe=>Pe.altKey,control:Pe=>Pe.ctrlKey,meta:Pe=>Pe.metaKey,shift:Pe=>Pe.shiftKey};let Re=(()=>{class Pe extends U{constructor(rt){super(rt)}supports(rt){return null!=Pe.parseEventName(rt)}addEventListener(rt,ot,At){const li=Pe.parseEventName(ot),Ut=Pe.eventCallback(li.fullKey,At,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.q)().onAndCancel(rt,li.domEventName,Ut))}static parseEventName(rt){const ot=rt.toLowerCase().split("."),At=ot.shift();if(0===ot.length||"keydown"!==At&&"keyup"!==At)return null;const li=Pe._normalizeKey(ot.pop());let Ut="";if(J.forEach(Si=>{const ai=ot.indexOf(Si);ai>-1&&(ot.splice(ai,1),Ut+=Si+".")}),Ut+=li,0!=ot.length||0===li.length)return null;const Ft={};return Ft.domEventName=At,Ft.fullKey=Ut,Ft}static getEventFullKey(rt){let ot="",At=function(Pe){let Be=Pe.key;if(null==Be){if(Be=Pe.keyIdentifier,null==Be)return"Unidentified";Be.startsWith("U+")&&(Be=String.fromCharCode(parseInt(Be.substring(2),16)),3===Pe.location&&te.hasOwnProperty(Be)&&(Be=te[Be]))}return B[Be]||Be}(rt);return At=At.toLowerCase()," "===At?At="space":"."===At&&(At="dot"),J.forEach(li=>{li!=At&&xe[li](rt)&&(ot+=li+".")}),ot+=At,ot}static eventCallback(rt,ot,At){return li=>{Pe.getEventFullKey(li)===rt&&At.runGuarded(()=>ot(li))}}static _normalizeKey(rt){return"esc"===rt?"escape":rt}}return Pe.\u0275fac=function(rt){return new(rt||Pe)(t.LFG(e.K0))},Pe.\u0275prov=t.Yz7({token:Pe,factory:Pe.\u0275fac}),Pe})();const le=(0,t.eFA)(t._c5,"browser",[{provide:t.Lbi,useValue:e.bD},{provide:t.g9A,useValue:function(){M.makeCurrent(),R.init()},multi:!0},{provide:e.K0,useFactory:function(){return(0,t.RDi)(document),document},deps:[]}]),We=[{provide:t.zSh,useValue:"root"},{provide:t.qLn,useFactory:function(){return new t.qLn},deps:[]},{provide:D,useClass:b,multi:!0,deps:[e.K0,t.R0b,t.Lbi]},{provide:D,useClass:Re,multi:!0,deps:[e.K0]},{provide:u,useClass:u,deps:[w,W,t.AFp]},{provide:t.FYo,useExisting:u},{provide:G,useExisting:W},{provide:W,useClass:W,deps:[e.K0]},{provide:t.dDg,useClass:t.dDg,deps:[t.R0b]},{provide:w,useClass:w,deps:[D,t.R0b]},{provide:e.JF,useClass:S,deps:[]}];let yt=(()=>{class Pe{constructor(rt){if(rt)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(rt){return{ngModule:Pe,providers:[{provide:t.AFp,useValue:rt.appId},{provide:o,useExisting:t.AFp},T]}}}return Pe.\u0275fac=function(rt){return new(rt||Pe)(t.LFG(Pe,12))},Pe.\u0275mod=t.oAB({type:Pe}),Pe.\u0275inj=t.cJS({providers:We,imports:[e.ez,t.hGG]}),Pe})();"undefined"!=typeof window&&window;const He={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0,doubletap:!0},Se=new t.OlP("HammerGestureConfig"),V=new t.OlP("HammerLoader");let ve=(()=>{class Pe{constructor(){this.events=[],this.overrides={}}buildHammer(rt){const ot=new Hammer(rt,this.options);ot.get("pinch").set({enable:!0}),ot.get("rotate").set({enable:!0});for(const At in this.overrides)ot.get(At).set(this.overrides[At]);return ot}}return Pe.\u0275fac=function(rt){return new(rt||Pe)},Pe.\u0275prov=t.Yz7({token:Pe,factory:Pe.\u0275fac}),Pe})(),Ee=(()=>{class Pe extends U{constructor(rt,ot,At,li){super(rt),this._config=ot,this.console=At,this.loader=li,this._loaderPromise=null}supports(rt){return!(!He.hasOwnProperty(rt.toLowerCase())&&!this.isCustomEvent(rt)||!window.Hammer&&!this.loader)}addEventListener(rt,ot,At){const li=this.manager.getZone();if(ot=ot.toLowerCase(),!window.Hammer&&this.loader){this._loaderPromise=this._loaderPromise||this.loader();let Ut=!1,Ft=()=>{Ut=!0};return this._loaderPromise.then(()=>{window.Hammer?Ut||(Ft=this.addEventListener(rt,ot,At)):Ft=()=>{}}).catch(()=>{Ft=()=>{}}),()=>{Ft()}}return li.runOutsideAngular(()=>{const Ut=this._config.buildHammer(rt),Ft=function(Si){li.runGuarded(function(){At(Si)})};return Ut.on(ot,Ft),()=>{Ut.off(ot,Ft),"function"==typeof Ut.destroy&&Ut.destroy()}})}isCustomEvent(rt){return this._config.events.indexOf(rt)>-1}}return Pe.\u0275fac=function(rt){return new(rt||Pe)(t.LFG(e.K0),t.LFG(Se),t.LFG(t.c2e),t.LFG(V,8))},Pe.\u0275prov=t.Yz7({token:Pe,factory:Pe.\u0275fac}),Pe})(),et=(()=>{class Pe{}return Pe.\u0275fac=function(rt){return new(rt||Pe)},Pe.\u0275mod=t.oAB({type:Pe}),Pe.\u0275inj=t.cJS({providers:[{provide:D,useClass:Ee,multi:!0,deps:[e.K0,Se,t.c2e,[new t.FiY,V]]},{provide:Se,useClass:ve,deps:[]}]}),Pe})(),$t=(()=>{class Pe{}return Pe.\u0275fac=function(rt){return new(rt||Pe)},Pe.\u0275prov=t.Yz7({token:Pe,factory:function(rt){let ot=null;return ot=rt?new(rt||Pe):t.LFG(Xt),ot},providedIn:"root"}),Pe})(),Xt=(()=>{class Pe extends $t{constructor(rt){super(),this._doc=rt}sanitize(rt,ot){if(null==ot)return null;switch(rt){case t.q3G.NONE:return ot;case t.q3G.HTML:return(0,t.qzn)(ot,"HTML")?(0,t.z3N)(ot):(0,t.EiD)(this._doc,String(ot)).toString();case t.q3G.STYLE:return(0,t.qzn)(ot,"Style")?(0,t.z3N)(ot):ot;case t.q3G.SCRIPT:if((0,t.qzn)(ot,"Script"))return(0,t.z3N)(ot);throw new Error("unsafe value used in a script context");case t.q3G.URL:return(0,t.yhl)(ot),(0,t.qzn)(ot,"URL")?(0,t.z3N)(ot):(0,t.mCW)(String(ot));case t.q3G.RESOURCE_URL:if((0,t.qzn)(ot,"ResourceURL"))return(0,t.z3N)(ot);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${rt} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(rt){return(0,t.JVY)(rt)}bypassSecurityTrustStyle(rt){return(0,t.L6k)(rt)}bypassSecurityTrustScript(rt){return(0,t.eBb)(rt)}bypassSecurityTrustUrl(rt){return(0,t.LAX)(rt)}bypassSecurityTrustResourceUrl(rt){return(0,t.pB0)(rt)}}return Pe.\u0275fac=function(rt){return new(rt||Pe)(t.LFG(e.K0))},Pe.\u0275prov=t.Yz7({token:Pe,factory:function(rt){let ot=null;return ot=rt?new rt:function(Pe){return new Xt(Pe.get(e.K0))}(t.LFG(t.zs3)),ot},providedIn:"root"}),Pe})()},9291:(Ue,K,m)=>{"use strict";m.d(K,{gz:()=>at,gk:()=>te,m2:()=>B,Q3:()=>xe,OD:()=>F,Av:()=>we,F0:()=>Rn,rH:()=>ca,Od:()=>La,yS:()=>Wn,Bz:()=>e1,lC:()=>ia});var e=m(5e3);const v=(0,m(3888).d)(Ge=>function(){Ge(this),this.name="EmptyError",this.message="no elements in sequence"});var M=m(8306),s=m(727),C=m(4482),c=m(5403);function P(){return(0,C.e)((Ge,De)=>{let Ce=null;Ge._refCount++;const Je=new c.Q(De,void 0,void 0,void 0,()=>{if(!Ge||Ge._refCount<=0||0<--Ge._refCount)return void(Ce=null);const ct=Ge._connection,Ot=Ce;Ce=null,ct&&(!Ot||ct===Ot)&&ct.unsubscribe(),De.unsubscribe()});Ge.subscribe(Je),Je.closed||(Ce=Ge.connect())})}class o extends M.y{constructor(De,Ce){super(),this.source=De,this.subjectFactory=Ce,this._subject=null,this._refCount=0,this._connection=null,(0,C.A)(De)&&(this.lift=De.lift)}_subscribe(De){return this.getSubject().subscribe(De)}getSubject(){const De=this._subject;return(!De||De.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:De}=this;this._subject=this._connection=null,null==De||De.unsubscribe()}connect(){let De=this._connection;if(!De){De=this._connection=new s.w0;const Ce=this.getSubject();De.add(this.source.subscribe(new c.Q(Ce,void 0,()=>{this._teardown(),Ce.complete()},Je=>{this._teardown(),Ce.error(Je)},()=>this._teardown()))),De.closed&&(this._connection=null,De=s.w0.EMPTY)}return De}refCount(){return P()(this)}}var O=m(457),T=m(9646),R=m(1135),S=m(9841),D=m(7272),w=m(9770),U=m(515),G=m(7579),W=m(9300);function ee(Ge){return Ge<=0?()=>U.E:(0,C.e)((De,Ce)=>{let Je=[];De.subscribe(new c.Q(Ce,ct=>{Je.push(ct),Ge{for(const ct of Je)Ce.next(ct);Ce.complete()},void 0,()=>{Je=null}))})}function ie(Ge=_e){return(0,C.e)((De,Ce)=>{let Je=!1;De.subscribe(new c.Q(Ce,ct=>{Je=!0,Ce.next(ct)},()=>Je?Ce.complete():Ce.error(Ge())))})}function _e(){return new v}function fe(Ge){return(0,C.e)((De,Ce)=>{let Je=!1;De.subscribe(new c.Q(Ce,ct=>{Je=!0,Ce.next(ct)},()=>{Je||Ce.next(Ge),Ce.complete()}))})}var de=m(4671),se=m(5698);function oe(Ge,De){const Ce=arguments.length>=2;return Je=>Je.pipe(Ge?(0,W.h)((ct,Ot)=>Ge(ct,Ot,Je)):de.y,(0,se.q)(1),Ce?fe(De):ie(()=>new v))}var y=m(4004),i=m(3900),a=m(8675),p=m(5026),u=m(262),_=m(4351),L=m(5577),I=m(8505),x=m(8746),r=m(8189),b=m(9808);class J{constructor(De,Ce){this.id=De,this.url=Ce}}class F extends J{constructor(De,Ce,Je="imperative",ct=null){super(De,Ce),this.navigationTrigger=Je,this.restoredState=ct}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class B extends J{constructor(De,Ce,Je){super(De,Ce),this.urlAfterRedirects=Je}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class te extends J{constructor(De,Ce,Je){super(De,Ce),this.reason=Je}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class xe extends J{constructor(De,Ce,Je){super(De,Ce),this.error=Je}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Re extends J{constructor(De,Ce,Je,ct){super(De,Ce),this.urlAfterRedirects=Je,this.state=ct}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Fe extends J{constructor(De,Ce,Je,ct){super(De,Ce),this.urlAfterRedirects=Je,this.state=ct}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class q extends J{constructor(De,Ce,Je,ct,Ot){super(De,Ce),this.urlAfterRedirects=Je,this.state=ct,this.shouldActivate=Ot}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class j extends J{constructor(De,Ce,Je,ct){super(De,Ce),this.urlAfterRedirects=Je,this.state=ct}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class we extends J{constructor(De,Ce,Je,ct){super(De,Ce),this.urlAfterRedirects=Je,this.state=ct}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ae{constructor(De){this.route=De}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class le{constructor(De){this.route=De}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class We{constructor(De){this.snapshot=De}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class yt{constructor(De){this.snapshot=De}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Ne{constructor(De){this.snapshot=De}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Ve{constructor(De){this.snapshot=De}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class ue{constructor(De,Ce,Je){this.routerEvent=De,this.position=Ce,this.anchor=Je}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}const Te="primary";class ke{constructor(De){this.params=De||{}}has(De){return Object.prototype.hasOwnProperty.call(this.params,De)}get(De){if(this.has(De)){const Ce=this.params[De];return Array.isArray(Ce)?Ce[0]:Ce}return null}getAll(De){if(this.has(De)){const Ce=this.params[De];return Array.isArray(Ce)?Ce:[Ce]}return[]}get keys(){return Object.keys(this.params)}}function Y(Ge){return new ke(Ge)}const X="ngNavigationCancelingError";function he(Ge){const De=Error("NavigationCancelingError: "+Ge);return De[X]=!0,De}function ze(Ge,De,Ce){const Je=Ce.path.split("/");if(Je.length>Ge.length||"full"===Ce.pathMatch&&(De.hasChildren()||Je.lengthJe[Ot]===ct)}return Ge===De}function nt(Ge){return Array.prototype.concat.apply([],Ge)}function st(Ge){return Ge.length>0?Ge[Ge.length-1]:null}function Bt(Ge,De){for(const Ce in Ge)Ge.hasOwnProperty(Ce)&&De(Ge[Ce],Ce)}function Nt(Ge){return(0,e.CqO)(Ge)?Ge:(0,e.QGY)(Ge)?(0,O.D)(Promise.resolve(Ge)):(0,T.of)(Ge)}const Oi={exact:function si(Ge,De,Ce){if(!Pt(Ge.segments,De.segments)||!V(Ge.segments,De.segments,Ce)||Ge.numberOfChildren!==De.numberOfChildren)return!1;for(const Je in De.children)if(!Ge.children[Je]||!si(Ge.children[Je],De.children[Je],Ce))return!1;return!0},subset:He},jt={exact:function(Ge,De){return it(Ge,De)},subset:function(Ge,De){return Object.keys(De).length<=Object.keys(Ge).length&&Object.keys(De).every(Ce=>ft(Ge[Ce],De[Ce]))},ignored:()=>!0};function ti(Ge,De,Ce){return Oi[Ce.paths](Ge.root,De.root,Ce.matrixParams)&&jt[Ce.queryParams](Ge.queryParams,De.queryParams)&&!("exact"===Ce.fragment&&Ge.fragment!==De.fragment)}function He(Ge,De,Ce){return Se(Ge,De,De.segments,Ce)}function Se(Ge,De,Ce,Je){if(Ge.segments.length>Ce.length){const ct=Ge.segments.slice(0,Ce.length);return!(!Pt(ct,Ce)||De.hasChildren()||!V(ct,Ce,Je))}if(Ge.segments.length===Ce.length){if(!Pt(Ge.segments,Ce)||!V(Ge.segments,Ce,Je))return!1;for(const ct in De.children)if(!Ge.children[ct]||!He(Ge.children[ct],De.children[ct],Je))return!1;return!0}{const ct=Ce.slice(0,Ge.segments.length),Ot=Ce.slice(Ge.segments.length);return!!(Pt(Ge.segments,ct)&&V(Ge.segments,ct,Je)&&Ge.children[Te])&&Se(Ge.children[Te],De,Ot,Je)}}function V(Ge,De,Ce){return De.every((Je,ct)=>jt[Ce](Ge[ct].parameters,Je.parameters))}class ve{constructor(De,Ce,Je){this.root=De,this.queryParams=Ce,this.fragment=Je}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Y(this.queryParams)),this._queryParamMap}toString(){return Be.serialize(this)}}class Ee{constructor(De,Ce){this.segments=De,this.children=Ce,this.parent=null,Bt(Ce,(Je,ct)=>Je.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return rt(this)}}class et{constructor(De,Ce){this.path=De,this.parameters=Ce}get parameterMap(){return this._parameterMap||(this._parameterMap=Y(this.parameters)),this._parameterMap}toString(){return ci(this)}}function Pt(Ge,De){return Ge.length===De.length&&Ge.every((Ce,Je)=>Ce.path===De[Je].path)}class lt{}class Pe{parse(De){const Ce=new vt(De);return new ve(Ce.parseRootSegment(),Ce.parseQueryParams(),Ce.parseFragment())}serialize(De){const Ce=`/${ot(De.root,!0)}`,Je=function(Ge){const De=Object.keys(Ge).map(Ce=>{const Je=Ge[Ce];return Array.isArray(Je)?Je.map(ct=>`${li(Ce)}=${li(ct)}`).join("&"):`${li(Ce)}=${li(Je)}`}).filter(Ce=>!!Ce);return De.length?`?${De.join("&")}`:""}(De.queryParams);var Ge;return`${Ce}${Je}${"string"==typeof De.fragment?`#${Ge=De.fragment,encodeURI(Ge)}`:""}`}}const Be=new Pe;function rt(Ge){return Ge.segments.map(De=>ci(De)).join("/")}function ot(Ge,De){if(!Ge.hasChildren())return rt(Ge);if(De){const Ce=Ge.children[Te]?ot(Ge.children[Te],!1):"",Je=[];return Bt(Ge.children,(ct,Ot)=>{Ot!==Te&&Je.push(`${Ot}:${ot(ct,!1)}`)}),Je.length>0?`${Ce}(${Je.join("//")})`:Ce}{const Ce=function(Ge,De){let Ce=[];return Bt(Ge.children,(Je,ct)=>{ct===Te&&(Ce=Ce.concat(De(Je,ct)))}),Bt(Ge.children,(Je,ct)=>{ct!==Te&&(Ce=Ce.concat(De(Je,ct)))}),Ce}(Ge,(Je,ct)=>ct===Te?[ot(Ge.children[Te],!1)]:[`${ct}:${ot(Je,!1)}`]);return 1===Object.keys(Ge.children).length&&null!=Ge.children[Te]?`${rt(Ge)}/${Ce[0]}`:`${rt(Ge)}/(${Ce.join("//")})`}}function At(Ge){return encodeURIComponent(Ge).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function li(Ge){return At(Ge).replace(/%3B/gi,";")}function Ft(Ge){return At(Ge).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Si(Ge){return decodeURIComponent(Ge)}function ai(Ge){return Si(Ge.replace(/\+/g,"%20"))}function ci(Ge){return`${Ft(Ge.path)}${function(Ge){return Object.keys(Ge).map(De=>`;${Ft(De)}=${Ft(Ge[De])}`).join("")}(Ge.parameters)}`}const Di=/^[^\/()?;=#]+/;function Xi(Ge){const De=Ge.match(Di);return De?De[0]:""}const Ke=/^[^=?&#]+/,be=/^[^&#]+/;class vt{constructor(De){this.url=De,this.remaining=De}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Ee([],{}):new Ee([],this.parseChildren())}parseQueryParams(){const De={};if(this.consumeOptional("?"))do{this.parseQueryParam(De)}while(this.consumeOptional("&"));return De}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const De=[];for(this.peekStartsWith("(")||De.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),De.push(this.parseSegment());let Ce={};this.peekStartsWith("/(")&&(this.capture("/"),Ce=this.parseParens(!0));let Je={};return this.peekStartsWith("(")&&(Je=this.parseParens(!1)),(De.length>0||Object.keys(Ce).length>0)&&(Je[Te]=new Ee(De,Ce)),Je}parseSegment(){const De=Xi(this.remaining);if(""===De&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(De),new et(Si(De),this.parseMatrixParams())}parseMatrixParams(){const De={};for(;this.consumeOptional(";");)this.parseParam(De);return De}parseParam(De){const Ce=Xi(this.remaining);if(!Ce)return;this.capture(Ce);let Je="";if(this.consumeOptional("=")){const ct=Xi(this.remaining);ct&&(Je=ct,this.capture(Je))}De[Si(Ce)]=Si(Je)}parseQueryParam(De){const Ce=function(Ge){const De=Ge.match(Ke);return De?De[0]:""}(this.remaining);if(!Ce)return;this.capture(Ce);let Je="";if(this.consumeOptional("=")){const qt=function(Ge){const De=Ge.match(be);return De?De[0]:""}(this.remaining);qt&&(Je=qt,this.capture(Je))}const ct=ai(Ce),Ot=ai(Je);if(De.hasOwnProperty(ct)){let qt=De[ct];Array.isArray(qt)||(qt=[qt],De[ct]=qt),qt.push(Ot)}else De[ct]=Ot}parseParens(De){const Ce={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const Je=Xi(this.remaining),ct=this.remaining[Je.length];if("/"!==ct&&")"!==ct&&";"!==ct)throw new Error(`Cannot parse url '${this.url}'`);let Ot;Je.indexOf(":")>-1?(Ot=Je.substr(0,Je.indexOf(":")),this.capture(Ot),this.capture(":")):De&&(Ot=Te);const qt=this.parseChildren();Ce[Ot]=1===Object.keys(qt).length?qt[Te]:new Ee([],qt),this.consumeOptional("//")}return Ce}peekStartsWith(De){return this.remaining.startsWith(De)}consumeOptional(De){return!!this.peekStartsWith(De)&&(this.remaining=this.remaining.substring(De.length),!0)}capture(De){if(!this.consumeOptional(De))throw new Error(`Expected "${De}".`)}}class me{constructor(De){this._root=De}get root(){return this._root.value}parent(De){const Ce=this.pathFromRoot(De);return Ce.length>1?Ce[Ce.length-2]:null}children(De){const Ce=$e(De,this._root);return Ce?Ce.children.map(Je=>Je.value):[]}firstChild(De){const Ce=$e(De,this._root);return Ce&&Ce.children.length>0?Ce.children[0].value:null}siblings(De){const Ce=St(De,this._root);return Ce.length<2?[]:Ce[Ce.length-2].children.map(ct=>ct.value).filter(ct=>ct!==De)}pathFromRoot(De){return St(De,this._root).map(Ce=>Ce.value)}}function $e(Ge,De){if(Ge===De.value)return De;for(const Ce of De.children){const Je=$e(Ge,Ce);if(Je)return Je}return null}function St(Ge,De){if(Ge===De.value)return[De];for(const Ce of De.children){const Je=St(Ge,Ce);if(Je.length)return Je.unshift(De),Je}return[]}class Rt{constructor(De,Ce){this.value=De,this.children=Ce}toString(){return`TreeNode(${this.value})`}}function yi(Ge){const De={};return Ge&&Ge.children.forEach(Ce=>De[Ce.value.outlet]=Ce),De}class Ri extends me{constructor(De,Ce){super(De),this.snapshot=Ce,Ci(this,De)}toString(){return this.snapshot.toString()}}function Ii(Ge,De){const Ce=function(Ge,De){const qt=new Lt([],{},{},"",{},Te,De,null,Ge.root,-1,{});return new ui("",new Rt(qt,[]))}(Ge,De),Je=new R.X([new et("",{})]),ct=new R.X({}),Ot=new R.X({}),qt=new R.X({}),ii=new R.X(""),Ti=new at(Je,ct,qt,ii,Ot,Te,De,Ce.root);return Ti.snapshot=Ce.root,new Ri(new Rt(Ti,[]),Ce)}class at{constructor(De,Ce,Je,ct,Ot,qt,ii,Ti){this.url=De,this.params=Ce,this.queryParams=Je,this.fragment=ct,this.data=Ot,this.outlet=qt,this.component=ii,this._futureSnapshot=Ti}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe((0,y.U)(De=>Y(De)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe((0,y.U)(De=>Y(De)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Qt(Ge,De="emptyOnly"){const Ce=Ge.pathFromRoot;let Je=0;if("always"!==De)for(Je=Ce.length-1;Je>=1;){const ct=Ce[Je],Ot=Ce[Je-1];if(ct.routeConfig&&""===ct.routeConfig.path)Je--;else{if(Ot.component)break;Je--}}return function(Ge){return Ge.reduce((De,Ce)=>({params:Object.assign(Object.assign({},De.params),Ce.params),data:Object.assign(Object.assign({},De.data),Ce.data),resolve:Object.assign(Object.assign({},De.resolve),Ce._resolvedData)}),{params:{},data:{},resolve:{}})}(Ce.slice(Je))}class Lt{constructor(De,Ce,Je,ct,Ot,qt,ii,Ti,on,jn,xn){this.url=De,this.params=Ce,this.queryParams=Je,this.fragment=ct,this.data=Ot,this.outlet=qt,this.component=ii,this.routeConfig=Ti,this._urlSegment=on,this._lastPathIndex=jn,this._resolve=xn}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=Y(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Y(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(Je=>Je.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class ui extends me{constructor(De,Ce){super(Ce),this.url=De,Ci(this,Ce)}toString(){return Wi(this._root)}}function Ci(Ge,De){De.value._routerState=Ge,De.children.forEach(Ce=>Ci(Ge,Ce))}function Wi(Ge){const De=Ge.children.length>0?` { ${Ge.children.map(Wi).join(", ")} } `:"";return`${Ge.value}${De}`}function $i(Ge){if(Ge.snapshot){const De=Ge.snapshot,Ce=Ge._futureSnapshot;Ge.snapshot=Ce,it(De.queryParams,Ce.queryParams)||Ge.queryParams.next(Ce.queryParams),De.fragment!==Ce.fragment&&Ge.fragment.next(Ce.fragment),it(De.params,Ce.params)||Ge.params.next(Ce.params),function(Ge,De){if(Ge.length!==De.length)return!1;for(let Ce=0;Ceit(Ce.parameters,De[Je].parameters))}(Ge.url,De.url);return Ce&&!(!Ge.parent!=!De.parent)&&(!Ge.parent||An(Ge.parent,De.parent))}function pn(Ge,De,Ce){if(Ce&&Ge.shouldReuseRoute(De.value,Ce.value.snapshot)){const Je=Ce.value;Je._futureSnapshot=De.value;const ct=function(Ge,De,Ce){return De.children.map(Je=>{for(const ct of Ce.children)if(Ge.shouldReuseRoute(Je.value,ct.value.snapshot))return pn(Ge,Je,ct);return pn(Ge,Je)})}(Ge,De,Ce);return new Rt(Je,ct)}{if(Ge.shouldAttach(De.value)){const Ot=Ge.retrieve(De.value);if(null!==Ot){const qt=Ot.route;return qt.value._futureSnapshot=De.value,qt.children=De.children.map(ii=>pn(Ge,ii)),qt}}const Je=function(Ge){return new at(new R.X(Ge.url),new R.X(Ge.params),new R.X(Ge.queryParams),new R.X(Ge.fragment),new R.X(Ge.data),Ge.outlet,Ge.component,Ge)}(De.value),ct=De.children.map(Ot=>pn(Ge,Ot));return new Rt(Je,ct)}}function zi(Ge){return"object"==typeof Ge&&null!=Ge&&!Ge.outlets&&!Ge.segmentPath}function sn(Ge){return"object"==typeof Ge&&null!=Ge&&Ge.outlets}function Sr(Ge,De,Ce,Je,ct){let Ot={};return Je&&Bt(Je,(qt,ii)=>{Ot[ii]=Array.isArray(qt)?qt.map(Ti=>`${Ti}`):`${qt}`}),new ve(Ce.root===Ge?De:ya(Ce.root,Ge,De),Ot,ct)}function ya(Ge,De,Ce){const Je={};return Bt(Ge.children,(ct,Ot)=>{Je[Ot]=ct===De?Ce:ya(ct,De,Ce)}),new Ee(Ge.segments,Je)}class qn{constructor(De,Ce,Je){if(this.isAbsolute=De,this.numberOfDoubleDots=Ce,this.commands=Je,De&&Je.length>0&&zi(Je[0]))throw new Error("Root segment cannot have matrix parameters");const ct=Je.find(sn);if(ct&&ct!==st(Je))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class ba{constructor(De,Ce,Je){this.segmentGroup=De,this.processChildren=Ce,this.index=Je}}function is(Ge,De,Ce){if(Ge||(Ge=new Ee([],{})),0===Ge.segments.length&&Ge.hasChildren())return rr(Ge,De,Ce);const Je=function(Ge,De,Ce){let Je=0,ct=De;const Ot={match:!1,pathIndex:0,commandIndex:0};for(;ct=Ce.length)return Ot;const qt=Ge.segments[ct],ii=Ce[Je];if(sn(ii))break;const Ti=`${ii}`,on=Je0&&void 0===Ti)break;if(Ti&&on&&"object"==typeof on&&void 0===on.outlets){if(!Pa(Ti,on,qt))return Ot;Je+=2}else{if(!Pa(Ti,{},qt))return Ot;Je++}ct++}return{match:!0,pathIndex:ct,commandIndex:Je}}(Ge,De,Ce),ct=Ce.slice(Je.commandIndex);if(Je.match&&Je.pathIndex{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(ct[qt]=is(Ge.children[qt],De,Ot))}),Bt(Ge.children,(Ot,qt)=>{void 0===Je[qt]&&(ct[qt]=Ot)}),new Ee(Ge.segments,ct)}}function la(Ge,De,Ce){const Je=Ge.segments.slice(0,De);let ct=0;for(;ct{"string"==typeof Ce&&(Ce=[Ce]),null!==Ce&&(De[Je]=la(new Ee([],{}),0,Ce))}),De}function Ra(Ge){const De={};return Bt(Ge,(Ce,Je)=>De[Je]=`${Ce}`),De}function Pa(Ge,De,Ce){return Ge==Ce.path&&it(De,Ce.parameters)}class Qr{constructor(De,Ce,Je,ct){this.routeReuseStrategy=De,this.futureState=Ce,this.currState=Je,this.forwardEvent=ct}activate(De){const Ce=this.futureState._root,Je=this.currState?this.currState._root:null;this.deactivateChildRoutes(Ce,Je,De),$i(this.futureState.root),this.activateChildRoutes(Ce,Je,De)}deactivateChildRoutes(De,Ce,Je){const ct=yi(Ce);De.children.forEach(Ot=>{const qt=Ot.value.outlet;this.deactivateRoutes(Ot,ct[qt],Je),delete ct[qt]}),Bt(ct,(Ot,qt)=>{this.deactivateRouteAndItsChildren(Ot,Je)})}deactivateRoutes(De,Ce,Je){const ct=De.value,Ot=Ce?Ce.value:null;if(ct===Ot)if(ct.component){const qt=Je.getContext(ct.outlet);qt&&this.deactivateChildRoutes(De,Ce,qt.children)}else this.deactivateChildRoutes(De,Ce,Je);else Ot&&this.deactivateRouteAndItsChildren(Ce,Je)}deactivateRouteAndItsChildren(De,Ce){De.value.component&&this.routeReuseStrategy.shouldDetach(De.value.snapshot)?this.detachAndStoreRouteSubtree(De,Ce):this.deactivateRouteAndOutlet(De,Ce)}detachAndStoreRouteSubtree(De,Ce){const Je=Ce.getContext(De.value.outlet),ct=Je&&De.value.component?Je.children:Ce,Ot=yi(De);for(const qt of Object.keys(Ot))this.deactivateRouteAndItsChildren(Ot[qt],ct);if(Je&&Je.outlet){const qt=Je.outlet.detach(),ii=Je.children.onOutletDeactivated();this.routeReuseStrategy.store(De.value.snapshot,{componentRef:qt,route:De,contexts:ii})}}deactivateRouteAndOutlet(De,Ce){const Je=Ce.getContext(De.value.outlet),ct=Je&&De.value.component?Je.children:Ce,Ot=yi(De);for(const qt of Object.keys(Ot))this.deactivateRouteAndItsChildren(Ot[qt],ct);Je&&Je.outlet&&(Je.outlet.deactivate(),Je.children.onOutletDeactivated(),Je.attachRef=null,Je.resolver=null,Je.route=null)}activateChildRoutes(De,Ce,Je){const ct=yi(Ce);De.children.forEach(Ot=>{this.activateRoutes(Ot,ct[Ot.value.outlet],Je),this.forwardEvent(new Ve(Ot.value.snapshot))}),De.children.length&&this.forwardEvent(new yt(De.value.snapshot))}activateRoutes(De,Ce,Je){const ct=De.value,Ot=Ce?Ce.value:null;if($i(ct),ct===Ot)if(ct.component){const qt=Je.getOrCreateContext(ct.outlet);this.activateChildRoutes(De,Ce,qt.children)}else this.activateChildRoutes(De,Ce,Je);else if(ct.component){const qt=Je.getOrCreateContext(ct.outlet);if(this.routeReuseStrategy.shouldAttach(ct.snapshot)){const ii=this.routeReuseStrategy.retrieve(ct.snapshot);this.routeReuseStrategy.store(ct.snapshot,null),qt.children.onOutletReAttached(ii.contexts),qt.attachRef=ii.componentRef,qt.route=ii.route.value,qt.outlet&&qt.outlet.attach(ii.componentRef,ii.route.value),$i(ii.route.value),this.activateChildRoutes(De,null,qt.children)}else{const ii=function(Ge){for(let De=Ge.parent;De;De=De.parent){const Ce=De.routeConfig;if(Ce&&Ce._loadedConfig)return Ce._loadedConfig;if(Ce&&Ce.component)return null}return null}(ct.snapshot),Ti=ii?ii.module.componentFactoryResolver:null;qt.attachRef=null,qt.route=ct,qt.resolver=Ti,qt.outlet&&qt.outlet.activateWith(ct,Ti),this.activateChildRoutes(De,null,qt.children)}}else this.activateChildRoutes(De,null,Je)}}class _n{constructor(De,Ce){this.routes=De,this.module=Ce}}function Kn(Ge){return"function"==typeof Ge}function Jr(Ge){return Ge instanceof ve}const Vr=Symbol("INITIAL_VALUE");function er(){return(0,i.w)(Ge=>(0,S.a)(Ge.map(De=>De.pipe((0,se.q)(1),(0,a.O)(Vr)))).pipe((0,p.R)((De,Ce)=>{let Je=!1;return Ce.reduce((ct,Ot,qt)=>ct!==Vr?ct:(Ot===Vr&&(Je=!0),Je||!1!==Ot&&qt!==Ce.length-1&&!Jr(Ot)?ct:Ot),De)},Vr),(0,W.h)(De=>De!==Vr),(0,y.U)(De=>Jr(De)?De:!0===De),(0,se.q)(1)))}class Fa{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new dr,this.attachRef=null}}class dr{constructor(){this.contexts=new Map}onChildOutletCreated(De,Ce){const Je=this.getOrCreateContext(De);Je.outlet=Ce,this.contexts.set(De,Je)}onChildOutletDestroyed(De){const Ce=this.getContext(De);Ce&&(Ce.outlet=null,Ce.attachRef=null)}onOutletDeactivated(){const De=this.contexts;return this.contexts=new Map,De}onOutletReAttached(De){this.contexts=De}getOrCreateContext(De){let Ce=this.getContext(De);return Ce||(Ce=new Fa,this.contexts.set(De,Ce)),Ce}getContext(De){return this.contexts.get(De)||null}}let ia=(()=>{class Ge{constructor(Ce,Je,ct,Ot,qt){this.parentContexts=Ce,this.location=Je,this.resolver=ct,this.changeDetector=qt,this.activated=null,this._activatedRoute=null,this.activateEvents=new e.vpe,this.deactivateEvents=new e.vpe,this.attachEvents=new e.vpe,this.detachEvents=new e.vpe,this.name=Ot||Te,Ce.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const Ce=this.parentContexts.getContext(this.name);Ce&&Ce.route&&(Ce.attachRef?this.attach(Ce.attachRef,Ce.route):this.activateWith(Ce.route,Ce.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const Ce=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Ce.instance),Ce}attach(Ce,Je){this.activated=Ce,this._activatedRoute=Je,this.location.insert(Ce.hostView),this.attachEvents.emit(Ce.instance)}deactivate(){if(this.activated){const Ce=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Ce)}}activateWith(Ce,Je){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=Ce;const qt=(Je=Je||this.resolver).resolveComponentFactory(Ce._futureSnapshot.routeConfig.component),ii=this.parentContexts.getOrCreateContext(this.name).children,Ti=new Sa(Ce,ii,this.location.injector);this.activated=this.location.createComponent(qt,this.location.length,Ti),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return Ge.\u0275fac=function(Ce){return new(Ce||Ge)(e.Y36(dr),e.Y36(e.s_b),e.Y36(e._Vd),e.$8M("name"),e.Y36(e.sBO))},Ge.\u0275dir=e.lG2({type:Ge,selectors:[["router-outlet"]],outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"]}),Ge})();class Sa{constructor(De,Ce,Je){this.route=De,this.childContexts=Ce,this.parent=Je}get(De,Ce){return De===at?this.route:De===dr?this.childContexts:this.parent.get(De,Ce)}}let Pr=(()=>{class Ge{}return Ge.\u0275fac=function(Ce){return new(Ce||Ge)},Ge.\u0275cmp=e.Xpm({type:Ge,selectors:[["ng-component"]],decls:1,vars:0,template:function(Ce,Je){1&Ce&&e._UZ(0,"router-outlet")},directives:[ia],encapsulation:2}),Ge})();function na(Ge,De=""){for(let Ce=0;Cemr(Je)===De);return Ce.push(...Ge.filter(Je=>mr(Je)!==De)),Ce}const ra={matched:!1,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};function pa(Ge,De,Ce){var Je;if(""===De.path)return"full"===De.pathMatch&&(Ge.hasChildren()||Ce.length>0)?Object.assign({},ra):{matched:!0,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};const Ot=(De.matcher||ze)(Ce,Ge,De);if(!Ot)return Object.assign({},ra);const qt={};Bt(Ot.posParams,(Ti,on)=>{qt[on]=Ti.path});const ii=Ot.consumed.length>0?Object.assign(Object.assign({},qt),Ot.consumed[Ot.consumed.length-1].parameters):qt;return{matched:!0,consumedSegments:Ot.consumed,lastChild:Ot.consumed.length,parameters:ii,positionalParamSegments:null!==(Je=Ot.posParams)&&void 0!==Je?Je:{}}}function Zn(Ge,De,Ce,Je,ct="corrected"){if(Ce.length>0&&function(Ge,De,Ce){return Ce.some(Je=>Q(Ge,De,Je)&&mr(Je)!==Te)}(Ge,Ce,Je)){const qt=new Ee(De,function(Ge,De,Ce,Je){const ct={};ct[Te]=Je,Je._sourceSegment=Ge,Je._segmentIndexShift=De.length;for(const Ot of Ce)if(""===Ot.path&&mr(Ot)!==Te){const qt=new Ee([],{});qt._sourceSegment=Ge,qt._segmentIndexShift=De.length,ct[mr(Ot)]=qt}return ct}(Ge,De,Je,new Ee(Ce,Ge.children)));return qt._sourceSegment=Ge,qt._segmentIndexShift=De.length,{segmentGroup:qt,slicedSegments:[]}}if(0===Ce.length&&function(Ge,De,Ce){return Ce.some(Je=>Q(Ge,De,Je))}(Ge,Ce,Je)){const qt=new Ee(Ge.segments,function(Ge,De,Ce,Je,ct,Ot){const qt={};for(const ii of Je)if(Q(Ge,Ce,ii)&&!ct[mr(ii)]){const Ti=new Ee([],{});Ti._sourceSegment=Ge,Ti._segmentIndexShift="legacy"===Ot?Ge.segments.length:De.length,qt[mr(ii)]=Ti}return Object.assign(Object.assign({},ct),qt)}(Ge,De,Ce,Je,Ge.children,ct));return qt._sourceSegment=Ge,qt._segmentIndexShift=De.length,{segmentGroup:qt,slicedSegments:Ce}}const Ot=new Ee(Ge.segments,Ge.children);return Ot._sourceSegment=Ge,Ot._segmentIndexShift=De.length,{segmentGroup:Ot,slicedSegments:Ce}}function Q(Ge,De,Ce){return(!(Ge.hasChildren()||De.length>0)||"full"!==Ce.pathMatch)&&""===Ce.path}function ae(Ge,De,Ce,Je){return!!(mr(Ge)===Je||Je!==Te&&Q(De,Ce,Ge))&&("**"===Ge.path||pa(De,Ge,Ce).matched)}function Qe(Ge,De,Ce){return 0===De.length&&!Ge.children[Ce]}class Yt{constructor(De){this.segmentGroup=De||null}}class mi{constructor(De){this.urlTree=De}}function Ct(Ge){return new M.y(De=>De.error(new Yt(Ge)))}function ei(Ge){return new M.y(De=>De.error(new mi(Ge)))}function bt(Ge){return new M.y(De=>De.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${Ge}'`)))}class Hi{constructor(De,Ce,Je,ct,Ot){this.configLoader=Ce,this.urlSerializer=Je,this.urlTree=ct,this.config=Ot,this.allowRedirects=!0,this.ngModule=De.get(e.h0i)}apply(){const De=Zn(this.urlTree.root,[],[],this.config).segmentGroup,Ce=new Ee(De.segments,De.children);return this.expandSegmentGroup(this.ngModule,this.config,Ce,Te).pipe((0,y.U)(Ot=>this.createUrlTree(wn(Ot),this.urlTree.queryParams,this.urlTree.fragment))).pipe((0,u.K)(Ot=>{if(Ot instanceof mi)return this.allowRedirects=!1,this.match(Ot.urlTree);throw Ot instanceof Yt?this.noMatchError(Ot):Ot}))}match(De){return this.expandSegmentGroup(this.ngModule,this.config,De.root,Te).pipe((0,y.U)(ct=>this.createUrlTree(wn(ct),De.queryParams,De.fragment))).pipe((0,u.K)(ct=>{throw ct instanceof Yt?this.noMatchError(ct):ct}))}noMatchError(De){return new Error(`Cannot match any routes. URL Segment: '${De.segmentGroup}'`)}createUrlTree(De,Ce,Je){const ct=De.segments.length>0?new Ee([],{[Te]:De}):De;return new ve(ct,Ce,Je)}expandSegmentGroup(De,Ce,Je,ct){return 0===Je.segments.length&&Je.hasChildren()?this.expandChildren(De,Ce,Je).pipe((0,y.U)(Ot=>new Ee([],Ot))):this.expandSegment(De,Je,Ce,Je.segments,ct,!0)}expandChildren(De,Ce,Je){const ct=[];for(const Ot of Object.keys(Je.children))"primary"===Ot?ct.unshift(Ot):ct.push(Ot);return(0,O.D)(ct).pipe((0,_.b)(Ot=>{const qt=Je.children[Ot],ii=fa(Ce,Ot);return this.expandSegmentGroup(De,ii,qt,Ot).pipe((0,y.U)(Ti=>({segment:Ti,outlet:Ot})))}),(0,p.R)((Ot,qt)=>(Ot[qt.outlet]=qt.segment,Ot),{}),function(Ge,De){const Ce=arguments.length>=2;return Je=>Je.pipe(Ge?(0,W.h)((ct,Ot)=>Ge(ct,Ot,Je)):de.y,ee(1),Ce?fe(De):ie(()=>new v))}())}expandSegment(De,Ce,Je,ct,Ot,qt){return(0,O.D)(Je).pipe((0,_.b)(ii=>this.expandSegmentAgainstRoute(De,Ce,Je,ii,ct,Ot,qt).pipe((0,u.K)(on=>{if(on instanceof Yt)return(0,T.of)(null);throw on}))),oe(ii=>!!ii),(0,u.K)((ii,Ti)=>{if(ii instanceof v||"EmptyError"===ii.name){if(Qe(Ce,ct,Ot))return(0,T.of)(new Ee([],{}));throw new Yt(Ce)}throw ii}))}expandSegmentAgainstRoute(De,Ce,Je,ct,Ot,qt,ii){return ae(ct,Ce,Ot,qt)?void 0===ct.redirectTo?this.matchSegmentAgainstRoute(De,Ce,ct,Ot,qt):ii&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(De,Ce,Je,ct,Ot,qt):Ct(Ce):Ct(Ce)}expandSegmentAgainstRouteUsingRedirect(De,Ce,Je,ct,Ot,qt){return"**"===ct.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(De,Je,ct,qt):this.expandRegularSegmentAgainstRouteUsingRedirect(De,Ce,Je,ct,Ot,qt)}expandWildCardWithParamsAgainstRouteUsingRedirect(De,Ce,Je,ct){const Ot=this.applyRedirectCommands([],Je.redirectTo,{});return Je.redirectTo.startsWith("/")?ei(Ot):this.lineralizeSegments(Je,Ot).pipe((0,L.z)(qt=>{const ii=new Ee(qt,{});return this.expandSegment(De,ii,Ce,qt,ct,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(De,Ce,Je,ct,Ot,qt){const{matched:ii,consumedSegments:Ti,lastChild:on,positionalParamSegments:jn}=pa(Ce,ct,Ot);if(!ii)return Ct(Ce);const xn=this.applyRedirectCommands(Ti,ct.redirectTo,jn);return ct.redirectTo.startsWith("/")?ei(xn):this.lineralizeSegments(ct,xn).pipe((0,L.z)(Xn=>this.expandSegment(De,Ce,Je,Xn.concat(Ot.slice(on)),qt,!1)))}matchSegmentAgainstRoute(De,Ce,Je,ct,Ot){if("**"===Je.path)return Je.loadChildren?(Je._loadedConfig?(0,T.of)(Je._loadedConfig):this.configLoader.load(De.injector,Je)).pipe((0,y.U)(Xn=>(Je._loadedConfig=Xn,new Ee(ct,{})))):(0,T.of)(new Ee(ct,{}));const{matched:qt,consumedSegments:ii,lastChild:Ti}=pa(Ce,Je,ct);if(!qt)return Ct(Ce);const on=ct.slice(Ti);return this.getChildConfig(De,Je,ct).pipe((0,L.z)(xn=>{const Xn=xn.module,Bn=xn.routes,{segmentGroup:yo,slicedSegments:ss}=Zn(Ce,ii,on,Bn),qa=new Ee(yo.segments,yo.children);if(0===ss.length&&qa.hasChildren())return this.expandChildren(Xn,Bn,qa).pipe((0,y.U)(os=>new Ee(ii,os)));if(0===Bn.length&&0===ss.length)return(0,T.of)(new Ee(ii,{}));const Ns=mr(Je)===Ot;return this.expandSegment(Xn,qa,Bn,ss,Ns?Te:Ot,!0).pipe((0,y.U)(ys=>new Ee(ii.concat(ys.segments),ys.children)))}))}getChildConfig(De,Ce,Je){return Ce.children?(0,T.of)(new _n(Ce.children,De)):Ce.loadChildren?void 0!==Ce._loadedConfig?(0,T.of)(Ce._loadedConfig):this.runCanLoadGuards(De.injector,Ce,Je).pipe((0,L.z)(ct=>{return ct?this.configLoader.load(De.injector,Ce).pipe((0,y.U)(Ot=>(Ce._loadedConfig=Ot,Ot))):(Ge=Ce,new M.y(De=>De.error(he(`Cannot load children because the guard of the route "path: '${Ge.path}'" returned false`))));var Ge})):(0,T.of)(new _n([],De))}runCanLoadGuards(De,Ce,Je){const ct=Ce.canLoad;if(!ct||0===ct.length)return(0,T.of)(!0);const Ot=ct.map(qt=>{const ii=De.get(qt);let Ti;if((Ge=ii)&&Kn(Ge.canLoad))Ti=ii.canLoad(Ce,Je);else{if(!Kn(ii))throw new Error("Invalid CanLoad guard");Ti=ii(Ce,Je)}var Ge;return Nt(Ti)});return(0,T.of)(Ot).pipe(er(),(0,I.b)(qt=>{if(!Jr(qt))return;const ii=he(`Redirecting to "${this.urlSerializer.serialize(qt)}"`);throw ii.url=qt,ii}),(0,y.U)(qt=>!0===qt))}lineralizeSegments(De,Ce){let Je=[],ct=Ce.root;for(;;){if(Je=Je.concat(ct.segments),0===ct.numberOfChildren)return(0,T.of)(Je);if(ct.numberOfChildren>1||!ct.children[Te])return bt(De.redirectTo);ct=ct.children[Te]}}applyRedirectCommands(De,Ce,Je){return this.applyRedirectCreatreUrlTree(Ce,this.urlSerializer.parse(Ce),De,Je)}applyRedirectCreatreUrlTree(De,Ce,Je,ct){const Ot=this.createSegmentGroup(De,Ce.root,Je,ct);return new ve(Ot,this.createQueryParams(Ce.queryParams,this.urlTree.queryParams),Ce.fragment)}createQueryParams(De,Ce){const Je={};return Bt(De,(ct,Ot)=>{if("string"==typeof ct&&ct.startsWith(":")){const ii=ct.substring(1);Je[Ot]=Ce[ii]}else Je[Ot]=ct}),Je}createSegmentGroup(De,Ce,Je,ct){const Ot=this.createSegments(De,Ce.segments,Je,ct);let qt={};return Bt(Ce.children,(ii,Ti)=>{qt[Ti]=this.createSegmentGroup(De,ii,Je,ct)}),new Ee(Ot,qt)}createSegments(De,Ce,Je,ct){return Ce.map(Ot=>Ot.path.startsWith(":")?this.findPosParam(De,Ot,ct):this.findOrReturn(Ot,Je))}findPosParam(De,Ce,Je){const ct=Je[Ce.path.substring(1)];if(!ct)throw new Error(`Cannot redirect to '${De}'. Cannot find '${Ce.path}'.`);return ct}findOrReturn(De,Ce){let Je=0;for(const ct of Ce){if(ct.path===De.path)return Ce.splice(Je),ct;Je++}return De}}function wn(Ge){const De={};for(const Je of Object.keys(Ge.children)){const Ot=wn(Ge.children[Je]);(Ot.segments.length>0||Ot.hasChildren())&&(De[Je]=Ot)}return function(Ge){if(1===Ge.numberOfChildren&&Ge.children[Te]){const De=Ge.children[Te];return new Ee(Ge.segments.concat(De.segments),De.children)}return Ge}(new Ee(Ge.segments,De))}class gr{constructor(De){this.path=De,this.route=this.path[this.path.length-1]}}class Fn{constructor(De,Ce){this.component=De,this.route=Ce}}function Gn(Ge,De,Ce){const Je=Ge._root;return ja(Je,De?De._root:null,Ce,[Je.value])}function Lr(Ge,De,Ce){const Je=function(Ge){if(!Ge)return null;for(let De=Ge.parent;De;De=De.parent){const Ce=De.routeConfig;if(Ce&&Ce._loadedConfig)return Ce._loadedConfig}return null}(De);return(Je?Je.module.injector:Ce).get(Ge)}function ja(Ge,De,Ce,Je,ct={canDeactivateChecks:[],canActivateChecks:[]}){const Ot=yi(De);return Ge.children.forEach(qt=>{(function(Ge,De,Ce,Je,ct={canDeactivateChecks:[],canActivateChecks:[]}){const Ot=Ge.value,qt=De?De.value:null,ii=Ce?Ce.getContext(Ge.value.outlet):null;if(qt&&Ot.routeConfig===qt.routeConfig){const Ti=function(Ge,De,Ce){if("function"==typeof Ce)return Ce(Ge,De);switch(Ce){case"pathParamsChange":return!Pt(Ge.url,De.url);case"pathParamsOrQueryParamsChange":return!Pt(Ge.url,De.url)||!it(Ge.queryParams,De.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!An(Ge,De)||!it(Ge.queryParams,De.queryParams);default:return!An(Ge,De)}}(qt,Ot,Ot.routeConfig.runGuardsAndResolvers);Ti?ct.canActivateChecks.push(new gr(Je)):(Ot.data=qt.data,Ot._resolvedData=qt._resolvedData),ja(Ge,De,Ot.component?ii?ii.children:null:Ce,Je,ct),Ti&&ii&&ii.outlet&&ii.outlet.isActivated&&ct.canDeactivateChecks.push(new Fn(ii.outlet.component,qt))}else qt&&fs(De,ii,ct),ct.canActivateChecks.push(new gr(Je)),ja(Ge,null,Ot.component?ii?ii.children:null:Ce,Je,ct)})(qt,Ot[qt.value.outlet],Ce,Je.concat([qt.value]),ct),delete Ot[qt.value.outlet]}),Bt(Ot,(qt,ii)=>fs(qt,Ce.getContext(ii),ct)),ct}function fs(Ge,De,Ce){const Je=yi(Ge),ct=Ge.value;Bt(Je,(Ot,qt)=>{fs(Ot,ct.component?De?De.children.getContext(qt):null:De,Ce)}),Ce.canDeactivateChecks.push(new Fn(ct.component&&De&&De.outlet&&De.outlet.isActivated?De.outlet.component:null,ct))}class kt{}function Kt(Ge){return new M.y(De=>De.error(Ge))}class fi{constructor(De,Ce,Je,ct,Ot,qt){this.rootComponentType=De,this.config=Ce,this.urlTree=Je,this.url=ct,this.paramsInheritanceStrategy=Ot,this.relativeLinkResolution=qt}recognize(){const De=Zn(this.urlTree.root,[],[],this.config.filter(qt=>void 0===qt.redirectTo),this.relativeLinkResolution).segmentGroup,Ce=this.processSegmentGroup(this.config,De,Te);if(null===Ce)return null;const Je=new Lt([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},Te,this.rootComponentType,null,this.urlTree.root,-1,{}),ct=new Rt(Je,Ce),Ot=new ui(this.url,ct);return this.inheritParamsAndData(Ot._root),Ot}inheritParamsAndData(De){const Ce=De.value,Je=Qt(Ce,this.paramsInheritanceStrategy);Ce.params=Object.freeze(Je.params),Ce.data=Object.freeze(Je.data),De.children.forEach(ct=>this.inheritParamsAndData(ct))}processSegmentGroup(De,Ce,Je){return 0===Ce.segments.length&&Ce.hasChildren()?this.processChildren(De,Ce):this.processSegment(De,Ce,Ce.segments,Je)}processChildren(De,Ce){const Je=[];for(const Ot of Object.keys(Ce.children)){const qt=Ce.children[Ot],ii=fa(De,Ot),Ti=this.processSegmentGroup(ii,qt,Ot);if(null===Ti)return null;Je.push(...Ti)}const ct=Cn(Je);return ct.sort((De,Ce)=>De.value.outlet===Te?-1:Ce.value.outlet===Te?1:De.value.outlet.localeCompare(Ce.value.outlet)),ct}processSegment(De,Ce,Je,ct){for(const Ot of De){const qt=this.processSegmentAgainstRoute(Ot,Ce,Je,ct);if(null!==qt)return qt}return Qe(Ce,Je,ct)?[]:null}processSegmentAgainstRoute(De,Ce,Je,ct){if(De.redirectTo||!ae(De,Ce,Je,ct))return null;let Ot,qt=[],ii=[];if("**"===De.path){const Bn=Je.length>0?st(Je).parameters:{};Ot=new Lt(Je,Bn,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,It(De),mr(De),De.component,De,tt(Ce),Et(Ce)+Je.length,zt(De))}else{const Bn=pa(Ce,De,Je);if(!Bn.matched)return null;qt=Bn.consumedSegments,ii=Je.slice(Bn.lastChild),Ot=new Lt(qt,Bn.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,It(De),mr(De),De.component,De,tt(Ce),Et(Ce)+qt.length,zt(De))}const Ti=(Ge=De).children?Ge.children:Ge.loadChildren?Ge._loadedConfig.routes:[],{segmentGroup:on,slicedSegments:jn}=Zn(Ce,qt,ii,Ti.filter(Bn=>void 0===Bn.redirectTo),this.relativeLinkResolution);var Ge;if(0===jn.length&&on.hasChildren()){const Bn=this.processChildren(Ti,on);return null===Bn?null:[new Rt(Ot,Bn)]}if(0===Ti.length&&0===jn.length)return[new Rt(Ot,[])];const xn=mr(De)===ct,Xn=this.processSegment(Ti,on,jn,xn?Te:ct);return null===Xn?null:[new Rt(Ot,Xn)]}}function en(Ge){const De=Ge.value.routeConfig;return De&&""===De.path&&void 0===De.redirectTo}function Cn(Ge){const De=[],Ce=new Set;for(const Je of Ge){if(!en(Je)){De.push(Je);continue}const ct=De.find(Ot=>Je.value.routeConfig===Ot.value.routeConfig);void 0!==ct?(ct.children.push(...Je.children),Ce.add(ct)):De.push(Je)}for(const Je of Ce){const ct=Cn(Je.children);De.push(new Rt(Je.value,ct))}return De.filter(Je=>!Ce.has(Je))}function tt(Ge){let De=Ge;for(;De._sourceSegment;)De=De._sourceSegment;return De}function Et(Ge){let De=Ge,Ce=De._segmentIndexShift?De._segmentIndexShift:0;for(;De._sourceSegment;)De=De._sourceSegment,Ce+=De._segmentIndexShift?De._segmentIndexShift:0;return Ce-1}function It(Ge){return Ge.data||{}}function zt(Ge){return Ge.resolve||{}}function hn(Ge){return(0,i.w)(De=>{const Ce=Ge(De);return Ce?(0,O.D)(Ce).pipe((0,y.U)(()=>De)):(0,T.of)(De)})}class Vn extends class{shouldDetach(De){return!1}store(De,Ce){}shouldAttach(De){return!1}retrieve(De){return null}shouldReuseRoute(De,Ce){return De.routeConfig===Ce.routeConfig}}{}const wr=new e.OlP("ROUTES");class Or{constructor(De,Ce,Je,ct){this.injector=De,this.compiler=Ce,this.onLoadStartListener=Je,this.onLoadEndListener=ct}load(De,Ce){if(Ce._loader$)return Ce._loader$;this.onLoadStartListener&&this.onLoadStartListener(Ce);const ct=this.loadModuleFactory(Ce.loadChildren).pipe((0,y.U)(Ot=>{this.onLoadEndListener&&this.onLoadEndListener(Ce);const qt=Ot.create(De);return new _n(nt(qt.injector.get(wr,void 0,e.XFs.Self|e.XFs.Optional)).map(Wa),qt)}),(0,u.K)(Ot=>{throw Ce._loader$=void 0,Ot}));return Ce._loader$=new o(ct,()=>new G.x).pipe(P()),Ce._loader$}loadModuleFactory(De){return Nt(De()).pipe((0,L.z)(Ce=>Ce instanceof e.YKP?(0,T.of)(Ce):(0,O.D)(this.compiler.compileModuleAsync(Ce))))}}class Yn{shouldProcessUrl(De){return!0}extract(De){return De}merge(De,Ce){return De}}function _r(Ge){throw Ge}function Fi(Ge,De,Ce){return De.parse("/")}function an(Ge,De){return(0,T.of)(null)}const fn={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},kn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Rn=(()=>{class Ge{constructor(Ce,Je,ct,Ot,qt,ii,Ti){this.rootComponentType=Ce,this.urlSerializer=Je,this.rootContexts=ct,this.location=Ot,this.config=Ti,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new G.x,this.errorHandler=_r,this.malformedUriErrorHandler=Fi,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:an,afterPreactivation:an},this.urlHandlingStrategy=new Yn,this.routeReuseStrategy=new Vn,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.ngModule=qt.get(e.h0i),this.console=qt.get(e.c2e);const xn=qt.get(e.R0b);this.isNgZoneEnabled=xn instanceof e.R0b&&e.R0b.isInAngularZone(),this.resetConfig(Ti),this.currentUrlTree=new ve(new Ee([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Or(qt,ii,Xn=>this.triggerEvent(new Ae(Xn)),Xn=>this.triggerEvent(new le(Xn))),this.routerState=Ii(this.currentUrlTree,this.rootComponentType),this.transitions=new R.X({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}get browserPageId(){var Ce;return null===(Ce=this.location.getState())||void 0===Ce?void 0:Ce.\u0275routerPageId}setupNavigations(Ce){const Je=this.events;return Ce.pipe((0,W.h)(ct=>0!==ct.id),(0,y.U)(ct=>Object.assign(Object.assign({},ct),{extractedUrl:this.urlHandlingStrategy.extract(ct.rawUrl)})),(0,i.w)(ct=>{let Ot=!1,qt=!1;return(0,T.of)(ct).pipe((0,I.b)(ii=>{this.currentNavigation={id:ii.id,initialUrl:ii.currentRawUrl,extractedUrl:ii.extractedUrl,trigger:ii.source,extras:ii.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),(0,i.w)(ii=>{const Ti=this.browserUrlTree.toString(),on=!this.navigated||ii.extractedUrl.toString()!==Ti||Ti!==this.currentUrlTree.toString();if(("reload"===this.onSameUrlNavigation||on)&&this.urlHandlingStrategy.shouldProcessUrl(ii.rawUrl))return Xr(ii.source)&&(this.browserUrlTree=ii.extractedUrl),(0,T.of)(ii).pipe((0,i.w)(xn=>{const Xn=this.transitions.getValue();return Je.next(new F(xn.id,this.serializeUrl(xn.extractedUrl),xn.source,xn.restoredState)),Xn!==this.transitions.getValue()?U.E:Promise.resolve(xn)}),function(Ge,De,Ce,Je){return(0,i.w)(ct=>function(Ge,De,Ce,Je,ct){return new Hi(Ge,De,Ce,Je,ct).apply()}(Ge,De,Ce,ct.extractedUrl,Je).pipe((0,y.U)(Ot=>Object.assign(Object.assign({},ct),{urlAfterRedirects:Ot}))))}(this.ngModule.injector,this.configLoader,this.urlSerializer,this.config),(0,I.b)(xn=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:xn.urlAfterRedirects})}),function(Ge,De,Ce,Je,ct){return(0,L.z)(Ot=>function(Ge,De,Ce,Je,ct="emptyOnly",Ot="legacy"){try{const qt=new fi(Ge,De,Ce,Je,ct,Ot).recognize();return null===qt?Kt(new kt):(0,T.of)(qt)}catch(qt){return Kt(qt)}}(Ge,De,Ot.urlAfterRedirects,Ce(Ot.urlAfterRedirects),Je,ct).pipe((0,y.U)(qt=>Object.assign(Object.assign({},Ot),{targetSnapshot:qt}))))}(this.rootComponentType,this.config,xn=>this.serializeUrl(xn),this.paramsInheritanceStrategy,this.relativeLinkResolution),(0,I.b)(xn=>{if("eager"===this.urlUpdateStrategy){if(!xn.extras.skipLocationChange){const Bn=this.urlHandlingStrategy.merge(xn.urlAfterRedirects,xn.rawUrl);this.setBrowserUrl(Bn,xn)}this.browserUrlTree=xn.urlAfterRedirects}const Xn=new Re(xn.id,this.serializeUrl(xn.extractedUrl),this.serializeUrl(xn.urlAfterRedirects),xn.targetSnapshot);Je.next(Xn)}));if(on&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:Xn,extractedUrl:Bn,source:yo,restoredState:ss,extras:qa}=ii,Ns=new F(Xn,this.serializeUrl(Bn),yo,ss);Je.next(Ns);const Ba=Ii(Bn,this.rootComponentType).snapshot;return(0,T.of)(Object.assign(Object.assign({},ii),{targetSnapshot:Ba,urlAfterRedirects:Bn,extras:Object.assign(Object.assign({},qa),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=ii.rawUrl,ii.resolve(null),U.E}),hn(ii=>{const{targetSnapshot:Ti,id:on,extractedUrl:jn,rawUrl:xn,extras:{skipLocationChange:Xn,replaceUrl:Bn}}=ii;return this.hooks.beforePreactivation(Ti,{navigationId:on,appliedUrlTree:jn,rawUrlTree:xn,skipLocationChange:!!Xn,replaceUrl:!!Bn})}),(0,I.b)(ii=>{const Ti=new Fe(ii.id,this.serializeUrl(ii.extractedUrl),this.serializeUrl(ii.urlAfterRedirects),ii.targetSnapshot);this.triggerEvent(Ti)}),(0,y.U)(ii=>Object.assign(Object.assign({},ii),{guards:Gn(ii.targetSnapshot,ii.currentSnapshot,this.rootContexts)})),function(Ge,De){return(0,L.z)(Ce=>{const{targetSnapshot:Je,currentSnapshot:ct,guards:{canActivateChecks:Ot,canDeactivateChecks:qt}}=Ce;return 0===qt.length&&0===Ot.length?(0,T.of)(Object.assign(Object.assign({},Ce),{guardsResult:!0})):function(Ge,De,Ce,Je){return(0,O.D)(Ge).pipe((0,L.z)(ct=>function(Ge,De,Ce,Je,ct){const Ot=De&&De.routeConfig?De.routeConfig.canDeactivate:null;if(!Ot||0===Ot.length)return(0,T.of)(!0);const qt=Ot.map(ii=>{const Ti=Lr(ii,De,ct);let on;if(function(Ge){return Ge&&Kn(Ge.canDeactivate)}(Ti))on=Nt(Ti.canDeactivate(Ge,De,Ce,Je));else{if(!Kn(Ti))throw new Error("Invalid CanDeactivate guard");on=Nt(Ti(Ge,De,Ce,Je))}return on.pipe(oe())});return(0,T.of)(qt).pipe(er())}(ct.component,ct.route,Ce,De,Je)),oe(ct=>!0!==ct,!0))}(qt,Je,ct,Ge).pipe((0,L.z)(ii=>ii&&function(Ge){return"boolean"==typeof Ge}(ii)?function(Ge,De,Ce,Je){return(0,O.D)(De).pipe((0,_.b)(ct=>(0,D.z)(function(Ge,De){return null!==Ge&&De&&De(new We(Ge)),(0,T.of)(!0)}(ct.route.parent,Je),function(Ge,De){return null!==Ge&&De&&De(new Ne(Ge)),(0,T.of)(!0)}(ct.route,Je),function(Ge,De,Ce){const Je=De[De.length-1],Ot=De.slice(0,De.length-1).reverse().map(qt=>function(Ge){const De=Ge.routeConfig?Ge.routeConfig.canActivateChild:null;return De&&0!==De.length?{node:Ge,guards:De}:null}(qt)).filter(qt=>null!==qt).map(qt=>(0,w.P)(()=>{const ii=qt.guards.map(Ti=>{const on=Lr(Ti,qt.node,Ce);let jn;if(function(Ge){return Ge&&Kn(Ge.canActivateChild)}(on))jn=Nt(on.canActivateChild(Je,Ge));else{if(!Kn(on))throw new Error("Invalid CanActivateChild guard");jn=Nt(on(Je,Ge))}return jn.pipe(oe())});return(0,T.of)(ii).pipe(er())}));return(0,T.of)(Ot).pipe(er())}(Ge,ct.path,Ce),function(Ge,De,Ce){const Je=De.routeConfig?De.routeConfig.canActivate:null;if(!Je||0===Je.length)return(0,T.of)(!0);const ct=Je.map(Ot=>(0,w.P)(()=>{const qt=Lr(Ot,De,Ce);let ii;if(function(Ge){return Ge&&Kn(Ge.canActivate)}(qt))ii=Nt(qt.canActivate(De,Ge));else{if(!Kn(qt))throw new Error("Invalid CanActivate guard");ii=Nt(qt(De,Ge))}return ii.pipe(oe())}));return(0,T.of)(ct).pipe(er())}(Ge,ct.route,Ce))),oe(ct=>!0!==ct,!0))}(Je,Ot,Ge,De):(0,T.of)(ii)),(0,y.U)(ii=>Object.assign(Object.assign({},Ce),{guardsResult:ii})))})}(this.ngModule.injector,ii=>this.triggerEvent(ii)),(0,I.b)(ii=>{if(Jr(ii.guardsResult)){const on=he(`Redirecting to "${this.serializeUrl(ii.guardsResult)}"`);throw on.url=ii.guardsResult,on}const Ti=new q(ii.id,this.serializeUrl(ii.extractedUrl),this.serializeUrl(ii.urlAfterRedirects),ii.targetSnapshot,!!ii.guardsResult);this.triggerEvent(Ti)}),(0,W.h)(ii=>!!ii.guardsResult||(this.restoreHistory(ii),this.cancelNavigationTransition(ii,""),!1)),hn(ii=>{if(ii.guards.canActivateChecks.length)return(0,T.of)(ii).pipe((0,I.b)(Ti=>{const on=new j(Ti.id,this.serializeUrl(Ti.extractedUrl),this.serializeUrl(Ti.urlAfterRedirects),Ti.targetSnapshot);this.triggerEvent(on)}),(0,i.w)(Ti=>{let on=!1;return(0,T.of)(Ti).pipe(function(Ge,De){return(0,L.z)(Ce=>{const{targetSnapshot:Je,guards:{canActivateChecks:ct}}=Ce;if(!ct.length)return(0,T.of)(Ce);let Ot=0;return(0,O.D)(ct).pipe((0,_.b)(qt=>function(Ge,De,Ce,Je){return function(Ge,De,Ce,Je){const ct=Object.keys(Ge);if(0===ct.length)return(0,T.of)({});const Ot={};return(0,O.D)(ct).pipe((0,L.z)(qt=>function(Ge,De,Ce,Je){const ct=Lr(Ge,De,Je);return Nt(ct.resolve?ct.resolve(De,Ce):ct(De,Ce))}(Ge[qt],De,Ce,Je).pipe((0,I.b)(ii=>{Ot[qt]=ii}))),ee(1),(0,L.z)(()=>Object.keys(Ot).length===ct.length?(0,T.of)(Ot):U.E))}(Ge._resolve,Ge,De,Je).pipe((0,y.U)(Ot=>(Ge._resolvedData=Ot,Ge.data=Object.assign(Object.assign({},Ge.data),Qt(Ge,Ce).resolve),null)))}(qt.route,Je,Ge,De)),(0,I.b)(()=>Ot++),ee(1),(0,L.z)(qt=>Ot===ct.length?(0,T.of)(Ce):U.E))})}(this.paramsInheritanceStrategy,this.ngModule.injector),(0,I.b)({next:()=>on=!0,complete:()=>{on||(this.restoreHistory(Ti),this.cancelNavigationTransition(Ti,"At least one route resolver didn't emit any value."))}}))}),(0,I.b)(Ti=>{const on=new we(Ti.id,this.serializeUrl(Ti.extractedUrl),this.serializeUrl(Ti.urlAfterRedirects),Ti.targetSnapshot);this.triggerEvent(on)}))}),hn(ii=>{const{targetSnapshot:Ti,id:on,extractedUrl:jn,rawUrl:xn,extras:{skipLocationChange:Xn,replaceUrl:Bn}}=ii;return this.hooks.afterPreactivation(Ti,{navigationId:on,appliedUrlTree:jn,rawUrlTree:xn,skipLocationChange:!!Xn,replaceUrl:!!Bn})}),(0,y.U)(ii=>{const Ti=function(Ge,De,Ce){const Je=pn(Ge,De._root,Ce?Ce._root:void 0);return new Ri(Je,De)}(this.routeReuseStrategy,ii.targetSnapshot,ii.currentRouterState);return Object.assign(Object.assign({},ii),{targetRouterState:Ti})}),(0,I.b)(ii=>{this.currentUrlTree=ii.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(ii.urlAfterRedirects,ii.rawUrl),this.routerState=ii.targetRouterState,"deferred"===this.urlUpdateStrategy&&(ii.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,ii),this.browserUrlTree=ii.urlAfterRedirects)}),((Ge,De,Ce)=>(0,y.U)(Je=>(new Qr(De,Je.targetRouterState,Je.currentRouterState,Ce).activate(Ge),Je)))(this.rootContexts,this.routeReuseStrategy,ii=>this.triggerEvent(ii)),(0,I.b)({next(){Ot=!0},complete(){Ot=!0}}),(0,x.x)(()=>{var ii;Ot||qt||this.cancelNavigationTransition(ct,`Navigation ID ${ct.id} is not equal to the current navigation id ${this.navigationId}`),(null===(ii=this.currentNavigation)||void 0===ii?void 0:ii.id)===ct.id&&(this.currentNavigation=null)}),(0,u.K)(ii=>{if(qt=!0,function(Ge){return Ge&&Ge[X]}(ii)){const Ti=Jr(ii.url);Ti||(this.navigated=!0,this.restoreHistory(ct,!0));const on=new te(ct.id,this.serializeUrl(ct.extractedUrl),ii.message);Je.next(on),Ti?setTimeout(()=>{const jn=this.urlHandlingStrategy.merge(ii.url,this.rawUrlTree),xn={skipLocationChange:ct.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||Xr(ct.source)};this.scheduleNavigation(jn,"imperative",null,xn,{resolve:ct.resolve,reject:ct.reject,promise:ct.promise})},0):ct.resolve(!1)}else{this.restoreHistory(ct,!0);const Ti=new xe(ct.id,this.serializeUrl(ct.extractedUrl),ii);Je.next(Ti);try{ct.resolve(this.errorHandler(ii))}catch(on){ct.reject(on)}}return U.E}))}))}resetRootComponentType(Ce){this.rootComponentType=Ce,this.routerState.root.component=this.rootComponentType}setTransition(Ce){this.transitions.next(Object.assign(Object.assign({},this.transitions.value),Ce))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(Ce=>{const Je="popstate"===Ce.type?"popstate":"hashchange";"popstate"===Je&&setTimeout(()=>{var ct;const Ot={replaceUrl:!0},qt=(null===(ct=Ce.state)||void 0===ct?void 0:ct.navigationId)?Ce.state:null;if(qt){const Ti=Object.assign({},qt);delete Ti.navigationId,delete Ti.\u0275routerPageId,0!==Object.keys(Ti).length&&(Ot.state=Ti)}const ii=this.parseUrl(Ce.url);this.scheduleNavigation(ii,Je,qt,Ot)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(Ce){this.events.next(Ce)}resetConfig(Ce){na(Ce),this.config=Ce.map(Wa),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(Ce,Je={}){const{relativeTo:ct,queryParams:Ot,fragment:qt,queryParamsHandling:ii,preserveFragment:Ti}=Je,on=ct||this.routerState.root,jn=Ti?this.currentUrlTree.fragment:qt;let xn=null;switch(ii){case"merge":xn=Object.assign(Object.assign({},this.currentUrlTree.queryParams),Ot);break;case"preserve":xn=this.currentUrlTree.queryParams;break;default:xn=Ot||null}return null!==xn&&(xn=this.removeEmptyProps(xn)),function(Ge,De,Ce,Je,ct){if(0===Ce.length)return Sr(De.root,De.root,De,Je,ct);const Ot=function(Ge){if("string"==typeof Ge[0]&&1===Ge.length&&"/"===Ge[0])return new qn(!0,0,Ge);let De=0,Ce=!1;const Je=Ge.reduce((ct,Ot,qt)=>{if("object"==typeof Ot&&null!=Ot){if(Ot.outlets){const ii={};return Bt(Ot.outlets,(Ti,on)=>{ii[on]="string"==typeof Ti?Ti.split("/"):Ti}),[...ct,{outlets:ii}]}if(Ot.segmentPath)return[...ct,Ot.segmentPath]}return"string"!=typeof Ot?[...ct,Ot]:0===qt?(Ot.split("/").forEach((ii,Ti)=>{0==Ti&&"."===ii||(0==Ti&&""===ii?Ce=!0:".."===ii?De++:""!=ii&&ct.push(ii))}),ct):[...ct,Ot]},[]);return new qn(Ce,De,Je)}(Ce);if(Ot.toRoot())return Sr(De.root,new Ee([],{}),De,Je,ct);const qt=function(Ge,De,Ce){if(Ge.isAbsolute)return new ba(De.root,!0,0);if(-1===Ce.snapshot._lastPathIndex){const Ot=Ce.snapshot._urlSegment;return new ba(Ot,Ot===De.root,0)}const Je=zi(Ge.commands[0])?0:1;return function(Ge,De,Ce){let Je=Ge,ct=De,Ot=Ce;for(;Ot>ct;){if(Ot-=ct,Je=Je.parent,!Je)throw new Error("Invalid number of '../'");ct=Je.segments.length}return new ba(Je,!1,ct-Ot)}(Ce.snapshot._urlSegment,Ce.snapshot._lastPathIndex+Je,Ge.numberOfDoubleDots)}(Ot,De,Ge),ii=qt.processChildren?rr(qt.segmentGroup,qt.index,Ot.commands):is(qt.segmentGroup,qt.index,Ot.commands);return Sr(qt.segmentGroup,ii,De,Je,ct)}(on,this.currentUrlTree,Ce,xn,null!=jn?jn:null)}navigateByUrl(Ce,Je={skipLocationChange:!1}){const ct=Jr(Ce)?Ce:this.parseUrl(Ce),Ot=this.urlHandlingStrategy.merge(ct,this.rawUrlTree);return this.scheduleNavigation(Ot,"imperative",null,Je)}navigate(Ce,Je={skipLocationChange:!1}){return function(Ge){for(let De=0;De{const Ot=Ce[ct];return null!=Ot&&(Je[ct]=Ot),Je},{})}processNavigations(){this.navigations.subscribe(Ce=>{this.navigated=!0,this.lastSuccessfulId=Ce.id,this.currentPageId=Ce.targetPageId,this.events.next(new B(Ce.id,this.serializeUrl(Ce.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,Ce.resolve(!0)},Ce=>{this.console.warn(`Unhandled Navigation Error: ${Ce}`)})}scheduleNavigation(Ce,Je,ct,Ot,qt){var ii,Ti,on;if(this.disposed)return Promise.resolve(!1);const jn=this.transitions.value,xn=Xr(Je)&&jn&&!Xr(jn.source),Xn=jn.rawUrl.toString()===Ce.toString(),Bn=jn.id===(null===(ii=this.currentNavigation)||void 0===ii?void 0:ii.id);if(xn&&Xn&&Bn)return Promise.resolve(!0);let ss,qa,Ns;qt?(ss=qt.resolve,qa=qt.reject,Ns=qt.promise):Ns=new Promise((os,Fs)=>{ss=os,qa=Fs});const Ba=++this.navigationId;let ys;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(ct=this.location.getState()),ys=ct&&ct.\u0275routerPageId?ct.\u0275routerPageId:Ot.replaceUrl||Ot.skipLocationChange?null!==(Ti=this.browserPageId)&&void 0!==Ti?Ti:0:(null!==(on=this.browserPageId)&&void 0!==on?on:0)+1):ys=0,this.setTransition({id:Ba,targetPageId:ys,source:Je,restoredState:ct,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:Ce,extras:Ot,resolve:ss,reject:qa,promise:Ns,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Ns.catch(os=>Promise.reject(os))}setBrowserUrl(Ce,Je){const ct=this.urlSerializer.serialize(Ce),Ot=Object.assign(Object.assign({},Je.extras.state),this.generateNgRouterState(Je.id,Je.targetPageId));this.location.isCurrentPathEqualTo(ct)||Je.extras.replaceUrl?this.location.replaceState(ct,"",Ot):this.location.go(ct,"",Ot)}restoreHistory(Ce,Je=!1){var ct,Ot;if("computed"===this.canceledNavigationResolution){const qt=this.currentPageId-Ce.targetPageId;"popstate"!==Ce.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==(null===(ct=this.currentNavigation)||void 0===ct?void 0:ct.finalUrl)||0===qt?this.currentUrlTree===(null===(Ot=this.currentNavigation)||void 0===Ot?void 0:Ot.finalUrl)&&0===qt&&(this.resetState(Ce),this.browserUrlTree=Ce.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(qt)}else"replace"===this.canceledNavigationResolution&&(Je&&this.resetState(Ce),this.resetUrlToCurrentUrlTree())}resetState(Ce){this.routerState=Ce.currentRouterState,this.currentUrlTree=Ce.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Ce.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}cancelNavigationTransition(Ce,Je){const ct=new te(Ce.id,this.serializeUrl(Ce.extractedUrl),Je);this.triggerEvent(ct),Ce.resolve(!1)}generateNgRouterState(Ce,Je){return"computed"===this.canceledNavigationResolution?{navigationId:Ce,\u0275routerPageId:Je}:{navigationId:Ce}}}return Ge.\u0275fac=function(Ce){e.$Z()},Ge.\u0275prov=e.Yz7({token:Ge,factory:Ge.\u0275fac}),Ge})();function Xr(Ge){return"imperative"!==Ge}let ca=(()=>{class Ge{constructor(Ce,Je,ct,Ot,qt){this.router=Ce,this.route=Je,this.tabIndexAttribute=ct,this.renderer=Ot,this.el=qt,this.commands=null,this.onChanges=new G.x,this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Ce){if(null!=this.tabIndexAttribute)return;const Je=this.renderer,ct=this.el.nativeElement;null!==Ce?Je.setAttribute(ct,"tabindex",Ce):Je.removeAttribute(ct,"tabindex")}ngOnChanges(Ce){this.onChanges.next(this)}set routerLink(Ce){null!=Ce?(this.commands=Array.isArray(Ce)?Ce:[Ce],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(){if(null===this.urlTree)return!0;const Ce={skipLocationChange:ps(this.skipLocationChange),replaceUrl:ps(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,Ce),!0}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:ps(this.preserveFragment)})}}return Ge.\u0275fac=function(Ce){return new(Ce||Ge)(e.Y36(Rn),e.Y36(at),e.$8M("tabindex"),e.Y36(e.Qsj),e.Y36(e.SBq))},Ge.\u0275dir=e.lG2({type:Ge,selectors:[["","routerLink","",5,"a",5,"area"]],hostBindings:function(Ce,Je){1&Ce&&e.NdJ("click",function(){return Je.onClick()})},inputs:{queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo",routerLink:"routerLink"},features:[e.TTD]}),Ge})(),Wn=(()=>{class Ge{constructor(Ce,Je,ct){this.router=Ce,this.route=Je,this.locationStrategy=ct,this.commands=null,this.href=null,this.onChanges=new G.x,this.subscription=Ce.events.subscribe(Ot=>{Ot instanceof B&&this.updateTargetUrlAndHref()})}set routerLink(Ce){this.commands=null!=Ce?Array.isArray(Ce)?Ce:[Ce]:null}ngOnChanges(Ce){this.updateTargetUrlAndHref(),this.onChanges.next(this)}ngOnDestroy(){this.subscription.unsubscribe()}onClick(Ce,Je,ct,Ot,qt){if(0!==Ce||Je||ct||Ot||qt||"string"==typeof this.target&&"_self"!=this.target||null===this.urlTree)return!0;const ii={skipLocationChange:ps(this.skipLocationChange),replaceUrl:ps(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,ii),!1}updateTargetUrlAndHref(){this.href=null!==this.urlTree?this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:ps(this.preserveFragment)})}}return Ge.\u0275fac=function(Ce){return new(Ce||Ge)(e.Y36(Rn),e.Y36(at),e.Y36(b.S$))},Ge.\u0275dir=e.lG2({type:Ge,selectors:[["a","routerLink",""],["area","routerLink",""]],hostVars:2,hostBindings:function(Ce,Je){1&Ce&&e.NdJ("click",function(Ot){return Je.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&Ce&&e.uIk("target",Je.target)("href",Je.href,e.LSH)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo",routerLink:"routerLink"},features:[e.TTD]}),Ge})();function ps(Ge){return""===Ge||!!Ge}let La=(()=>{class Ge{constructor(Ce,Je,ct,Ot,qt,ii){this.router=Ce,this.element=Je,this.renderer=ct,this.cdr=Ot,this.link=qt,this.linkWithHref=ii,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new e.vpe,this.routerEventsSubscription=Ce.events.subscribe(Ti=>{Ti instanceof B&&this.update()})}ngAfterContentInit(){(0,T.of)(this.links.changes,this.linksWithHrefs.changes,(0,T.of)(null)).pipe((0,r.J)()).subscribe(Ce=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){var Ce;null===(Ce=this.linkInputChangesSubscription)||void 0===Ce||Ce.unsubscribe();const Je=[...this.links.toArray(),...this.linksWithHrefs.toArray(),this.link,this.linkWithHref].filter(ct=>!!ct).map(ct=>ct.onChanges);this.linkInputChangesSubscription=(0,O.D)(Je).pipe((0,r.J)()).subscribe(ct=>{this.isActive!==this.isLinkActive(this.router)(ct)&&this.update()})}set routerLinkActive(Ce){const Je=Array.isArray(Ce)?Ce:Ce.split(" ");this.classes=Je.filter(ct=>!!ct)}ngOnChanges(Ce){this.update()}ngOnDestroy(){var Ce;this.routerEventsSubscription.unsubscribe(),null===(Ce=this.linkInputChangesSubscription)||void 0===Ce||Ce.unsubscribe()}update(){!this.links||!this.linksWithHrefs||!this.router.navigated||Promise.resolve().then(()=>{const Ce=this.hasActiveLinks();this.isActive!==Ce&&(this.isActive=Ce,this.cdr.markForCheck(),this.classes.forEach(Je=>{Ce?this.renderer.addClass(this.element.nativeElement,Je):this.renderer.removeClass(this.element.nativeElement,Je)}),this.isActiveChange.emit(Ce))})}isLinkActive(Ce){const Je=function(Ge){return!!Ge.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return ct=>!!ct.urlTree&&Ce.isActive(ct.urlTree,Je)}hasActiveLinks(){const Ce=this.isLinkActive(this.router);return this.link&&Ce(this.link)||this.linkWithHref&&Ce(this.linkWithHref)||this.links.some(Ce)||this.linksWithHrefs.some(Ce)}}return Ge.\u0275fac=function(Ce){return new(Ce||Ge)(e.Y36(Rn),e.Y36(e.SBq),e.Y36(e.Qsj),e.Y36(e.sBO),e.Y36(ca,8),e.Y36(Wn,8))},Ge.\u0275dir=e.lG2({type:Ge,selectors:[["","routerLinkActive",""]],contentQueries:function(Ce,Je,ct){if(1&Ce&&(e.Suo(ct,ca,5),e.Suo(ct,Wn,5)),2&Ce){let Ot;e.iGM(Ot=e.CRH())&&(Je.links=Ot),e.iGM(Ot=e.CRH())&&(Je.linksWithHrefs=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],features:[e.TTD]}),Ge})();class js{}class vs{preload(De,Ce){return(0,T.of)(null)}}let Il=(()=>{class Ge{constructor(Ce,Je,ct,Ot){this.router=Ce,this.injector=ct,this.preloadingStrategy=Ot,this.loader=new Or(ct,Je,Ti=>Ce.triggerEvent(new Ae(Ti)),Ti=>Ce.triggerEvent(new le(Ti)))}setUpPreloading(){this.subscription=this.router.events.pipe((0,W.h)(Ce=>Ce instanceof B),(0,_.b)(()=>this.preload())).subscribe(()=>{})}preload(){const Ce=this.injector.get(e.h0i);return this.processRoutes(Ce,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Ce,Je){const ct=[];for(const Ot of Je)if(Ot.loadChildren&&!Ot.canLoad&&Ot._loadedConfig){const qt=Ot._loadedConfig;ct.push(this.processRoutes(qt.module,qt.routes))}else Ot.loadChildren&&!Ot.canLoad?ct.push(this.preloadConfig(Ce,Ot)):Ot.children&&ct.push(this.processRoutes(Ce,Ot.children));return(0,O.D)(ct).pipe((0,r.J)(),(0,y.U)(Ot=>{}))}preloadConfig(Ce,Je){return this.preloadingStrategy.preload(Je,()=>(Je._loadedConfig?(0,T.of)(Je._loadedConfig):this.loader.load(Ce.injector,Je)).pipe((0,L.z)(Ot=>(Je._loadedConfig=Ot,this.processRoutes(Ot.module,Ot.routes)))))}}return Ge.\u0275fac=function(Ce){return new(Ce||Ge)(e.LFG(Rn),e.LFG(e.Sil),e.LFG(e.zs3),e.LFG(js))},Ge.\u0275prov=e.Yz7({token:Ge,factory:Ge.\u0275fac}),Ge})(),$o=(()=>{class Ge{constructor(Ce,Je,ct={}){this.router=Ce,this.viewportScroller=Je,this.options=ct,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},ct.scrollPositionRestoration=ct.scrollPositionRestoration||"disabled",ct.anchorScrolling=ct.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(Ce=>{Ce instanceof F?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Ce.navigationTrigger,this.restoredId=Ce.restoredState?Ce.restoredState.navigationId:0):Ce instanceof B&&(this.lastId=Ce.id,this.scheduleScrollEvent(Ce,this.router.parseUrl(Ce.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(Ce=>{Ce instanceof ue&&(Ce.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Ce.position):Ce.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Ce.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Ce,Je){this.router.triggerEvent(new ue(Ce,"popstate"===this.lastSource?this.store[this.restoredId]:null,Je))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return Ge.\u0275fac=function(Ce){e.$Z()},Ge.\u0275prov=e.Yz7({token:Ge,factory:Ge.\u0275fac}),Ge})();const Cs=new e.OlP("ROUTER_CONFIGURATION"),kl=new e.OlP("ROUTER_FORROOT_GUARD"),dc=[b.Ye,{provide:lt,useClass:Pe},{provide:Rn,useFactory:function(Ge,De,Ce,Je,ct,Ot,qt={},ii,Ti){const on=new Rn(null,Ge,De,Ce,Je,ct,nt(Ot));return ii&&(on.urlHandlingStrategy=ii),Ti&&(on.routeReuseStrategy=Ti),function(Ge,De){Ge.errorHandler&&(De.errorHandler=Ge.errorHandler),Ge.malformedUriErrorHandler&&(De.malformedUriErrorHandler=Ge.malformedUriErrorHandler),Ge.onSameUrlNavigation&&(De.onSameUrlNavigation=Ge.onSameUrlNavigation),Ge.paramsInheritanceStrategy&&(De.paramsInheritanceStrategy=Ge.paramsInheritanceStrategy),Ge.relativeLinkResolution&&(De.relativeLinkResolution=Ge.relativeLinkResolution),Ge.urlUpdateStrategy&&(De.urlUpdateStrategy=Ge.urlUpdateStrategy),Ge.canceledNavigationResolution&&(De.canceledNavigationResolution=Ge.canceledNavigationResolution)}(qt,on),qt.enableTracing&&on.events.subscribe(jn=>{var xn,Xn;null===(xn=console.group)||void 0===xn||xn.call(console,`Router Event: ${jn.constructor.name}`),console.log(jn.toString()),console.log(jn),null===(Xn=console.groupEnd)||void 0===Xn||Xn.call(console)}),on},deps:[lt,dr,b.Ye,e.zs3,e.Sil,wr,Cs,[class{},new e.FiY],[class{},new e.FiY]]},dr,{provide:at,useFactory:function(Ge){return Ge.routerState.root},deps:[Rn]},Il,vs,class{preload(De,Ce){return Ce().pipe((0,u.K)(()=>(0,T.of)(null)))}},{provide:Cs,useValue:{enableTracing:!1}}];function $c(){return new e.PXZ("Router",Rn)}let e1=(()=>{class Ge{constructor(Ce,Je){}static forRoot(Ce,Je){return{ngModule:Ge,providers:[dc,_o(Ce),{provide:kl,useFactory:el,deps:[[Rn,new e.FiY,new e.tp0]]},{provide:Cs,useValue:Je||{}},{provide:b.S$,useFactory:Rl,deps:[b.lw,[new e.tBr(b.mr),new e.FiY],Cs]},{provide:$o,useFactory:ko,deps:[Rn,b.EM,Cs]},{provide:js,useExisting:Je&&Je.preloadingStrategy?Je.preloadingStrategy:vs},{provide:e.PXZ,multi:!0,useFactory:$c},[tl,{provide:e.ip1,multi:!0,useFactory:so,deps:[tl]},{provide:vo,useFactory:il,deps:[tl]},{provide:e.tb,multi:!0,useExisting:vo}]]}}static forChild(Ce){return{ngModule:Ge,providers:[_o(Ce)]}}}return Ge.\u0275fac=function(Ce){return new(Ce||Ge)(e.LFG(kl,8),e.LFG(Rn,8))},Ge.\u0275mod=e.oAB({type:Ge}),Ge.\u0275inj=e.cJS({}),Ge})();function ko(Ge,De,Ce){return Ce.scrollOffset&&De.setOffset(Ce.scrollOffset),new $o(Ge,De,Ce)}function Rl(Ge,De,Ce={}){return Ce.useHash?new b.Do(Ge,De):new b.b0(Ge,De)}function el(Ge){return"guarded"}function _o(Ge){return[{provide:e.deG,multi:!0,useValue:Ge},{provide:wr,multi:!0,useValue:Ge}]}let tl=(()=>{class Ge{constructor(Ce){this.injector=Ce,this.initNavigation=!1,this.destroyed=!1,this.resultOfPreactivationDone=new G.x}appInitializer(){return this.injector.get(b.V_,Promise.resolve(null)).then(()=>{if(this.destroyed)return Promise.resolve(!0);let Je=null;const ct=new Promise(ii=>Je=ii),Ot=this.injector.get(Rn),qt=this.injector.get(Cs);return"disabled"===qt.initialNavigation?(Ot.setUpLocationChangeListener(),Je(!0)):"enabled"===qt.initialNavigation||"enabledBlocking"===qt.initialNavigation?(Ot.hooks.afterPreactivation=()=>this.initNavigation?(0,T.of)(null):(this.initNavigation=!0,Je(!0),this.resultOfPreactivationDone),Ot.initialNavigation()):Je(!0),ct})}bootstrapListener(Ce){const Je=this.injector.get(Cs),ct=this.injector.get(Il),Ot=this.injector.get($o),qt=this.injector.get(Rn),ii=this.injector.get(e.z2F);Ce===ii.components[0]&&(("enabledNonBlocking"===Je.initialNavigation||void 0===Je.initialNavigation)&&qt.initialNavigation(),ct.setUpPreloading(),Ot.init(),qt.resetRootComponentType(ii.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}ngOnDestroy(){this.destroyed=!0}}return Ge.\u0275fac=function(Ce){return new(Ce||Ge)(e.LFG(e.zs3))},Ge.\u0275prov=e.Yz7({token:Ge,factory:Ge.\u0275fac}),Ge})();function so(Ge){return Ge.appInitializer.bind(Ge)}function il(Ge){return Ge.bootstrapListener.bind(Ge)}const vo=new e.OlP("Router Initializer")},9444:(Ue,K,m)=>{"use strict";m.d(K,{BN:()=>Jt,uH:()=>In});var e=m(5e3);function t(tt){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(Et){return typeof Et}:function(Et){return Et&&"function"==typeof Symbol&&Et.constructor===Symbol&&Et!==Symbol.prototype?"symbol":typeof Et})(tt)}function M(tt,Et){for(var It=0;It0;)Et+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return Et}function Vi(tt){return"".concat(tt).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Xi(tt){return Object.keys(tt||{}).reduce(function(Et,It){return Et+"".concat(It,": ").concat(tt[It],";")},"")}function Ke(tt){return tt.size!==At.size||tt.x!==At.x||tt.y!==At.y||tt.rotate!==At.rotate||tt.flipX||tt.flipY}function mt(tt){var Et=tt.transform,zt=tt.iconWidth,ri={transform:"translate(".concat(tt.containerWidth/2," 256)")},vi="translate(".concat(32*Et.x,", ").concat(32*Et.y,") "),Mi="scale(".concat(Et.size/16*(Et.flipX?-1:1),", ").concat(Et.size/16*(Et.flipY?-1:1),") "),Ei="rotate(".concat(Et.rotate," 0 0)");return{outer:ri,inner:{transform:"".concat(vi," ").concat(Mi," ").concat(Ei)},path:{transform:"translate(".concat(zt/2*-1," -256)")}}}var qe={x:0,y:0,width:"100%",height:"100%"};function vt(tt){var Et=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return tt.attributes&&(tt.attributes.fill||Et)&&(tt.attributes.fill="black"),tt}function me(tt){return"g"===tt.tag?tt.children:[tt]}function Ri(tt){var Et=tt.icons,It=Et.main,zt=Et.mask,ri=tt.prefix,vi=tt.iconName,Mi=tt.transform,Ei=tt.symbol,ji=tt.title,hn=tt.maskId,yn=tt.titleId,Tn=tt.extra,Vn=tt.watchable,wr=void 0!==Vn&&Vn,Or=zt.found?zt:It,Ar=Or.width,Yn=Or.height,_r="fak"===ri,Fi=_r?"":"fa-w-".concat(Math.ceil(Ar/Yn*16)),an=[Me.replacementClass,vi?"".concat(Me.familyPrefix,"-").concat(vi):"",Fi].filter(function(Wn){return-1===Tn.classes.indexOf(Wn)}).filter(function(Wn){return""!==Wn||!!Wn}).concat(Tn.classes).join(" "),fn={children:[],attributes:c({},Tn.attributes,{"data-prefix":ri,"data-icon":vi,class:an,role:Tn.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(Ar," ").concat(Yn)})},kn=_r&&!~Tn.classes.indexOf("fa-fw")?{width:"".concat(Ar/Yn*16*.0625,"em")}:{};wr&&(fn.attributes["data-fa-i2svg"]=""),ji&&fn.children.push({tag:"title",attributes:{id:fn.attributes["aria-labelledby"]||"title-".concat(yn||Si())},children:[ji]});var Rn=c({},fn,{prefix:ri,iconName:vi,main:It,mask:zt,maskId:hn,transform:Mi,symbol:Ei,styles:c({},kn,Tn.styles)}),Da=zt.found&&It.found?function(tt){var Et=tt.children,It=tt.attributes,zt=tt.main,ri=tt.mask,vi=tt.maskId,ji=zt.icon,yn=ri.icon,Tn=mt({transform:tt.transform,containerWidth:ri.width,iconWidth:zt.width}),Vn={tag:"rect",attributes:c({},qe,{fill:"white"})},wr=ji.children?{children:ji.children.map(vt)}:{},Or={tag:"g",attributes:c({},Tn.inner),children:[vt(c({tag:ji.tag,attributes:c({},ji.attributes,Tn.path)},wr))]},Ar={tag:"g",attributes:c({},Tn.outer),children:[Or]},Yn="mask-".concat(vi||Si()),_r="clip-".concat(vi||Si()),Fi={tag:"mask",attributes:c({},qe,{id:Yn,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[Vn,Ar]},an={tag:"defs",children:[{tag:"clipPath",attributes:{id:_r},children:me(yn)},Fi]};return Et.push(an,{tag:"rect",attributes:c({fill:"currentColor","clip-path":"url(#".concat(_r,")"),mask:"url(#".concat(Yn,")")},qe)}),{children:Et,attributes:It}}(Rn):function(tt){var Et=tt.children,It=tt.attributes,zt=tt.main,ri=tt.transform,Mi=Xi(tt.styles);if(Mi.length>0&&(It.style=Mi),Ke(ri)){var Ei=mt({transform:ri,containerWidth:zt.width,iconWidth:zt.width});Et.push({tag:"g",attributes:c({},Ei.outer),children:[{tag:"g",attributes:c({},Ei.inner),children:[{tag:zt.icon.tag,children:zt.icon.children,attributes:c({},zt.icon.attributes,Ei.path)}]}]})}else Et.push(zt.icon);return{children:Et,attributes:It}}(Rn),ca=Da.attributes;return Rn.children=Da.children,Rn.attributes=ca,Ei?function(tt){var It=tt.iconName,zt=tt.children,vi=tt.symbol;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:c({},tt.attributes,{id:!0===vi?"".concat(tt.prefix,"-").concat(Me.familyPrefix,"-").concat(It):vi}),children:zt}]}]}(Rn):function(tt){var Et=tt.children,It=tt.main,zt=tt.mask,ri=tt.attributes,vi=tt.styles,Mi=tt.transform;if(Ke(Mi)&&It.found&&!zt.found){var hn={x:It.width/It.height/2,y:.5};ri.style=Xi(c({},vi,{"transform-origin":"".concat(hn.x+Mi.x/16,"em ").concat(hn.y+Mi.y/16,"em")}))}return[{tag:"svg",attributes:ri,children:Et}]}(Rn)}var $i=function(Et,It,zt,ri){var ji,hn,yn,vi=Object.keys(Et),Mi=vi.length,Ei=void 0!==ri?function(Et,It){return function(zt,ri,vi,Mi){return Et.call(It,zt,ri,vi,Mi)}}(It,ri):It;for(void 0===zt?(ji=1,yn=Et[vi[0]]):(ji=0,yn=zt);ji2&&void 0!==arguments[2]?arguments[2]:{},zt=It.skipHooks,ri=void 0!==zt&&zt,vi=Object.keys(Et).reduce(function(Mi,Ei){var ji=Et[Ei];return ji.icon?Mi[ji.iconName]=ji.icon:Mi[Ei]=ji,Mi},{});"function"!=typeof ht.hooks.addPack||ri?ht.styles[tt]=c({},ht.styles[tt]||{},vi):ht.hooks.addPack(tt,vi),"fas"===tt&&Ln("fa",Et)}var pn=ht.styles,Pn=ht.shims,sn=function(){var Et=function(ri){return $i(pn,function(vi,Mi,Ei){return vi[Ei]=$i(Mi,ri,{}),vi},{})};Et(function(zt,ri,vi){return ri[3]&&(zt[ri[3]]=vi),zt}),Et(function(zt,ri,vi){var Mi=ri[2];return zt[vi]=vi,Mi.forEach(function(Ei){zt[Ei]=vi}),zt});var It="far"in pn;$i(Pn,function(zt,ri){var Mi=ri[1];return"far"===Mi&&!It&&(Mi="fas"),zt[ri[0]]={prefix:Mi,iconName:ri[2]},zt},{})};function Va(tt,Et,It){if(tt&&tt[Et]&&tt[Et][It])return{prefix:Et,iconName:It,icon:tt[Et][It]}}function zr(tt){var Et=tt.tag,It=tt.attributes,zt=void 0===It?{}:It,ri=tt.children,vi=void 0===ri?[]:ri;return"string"==typeof tt?Vi(tt):"<".concat(Et," ").concat(function(tt){return Object.keys(tt||{}).reduce(function(Et,It){return Et+"".concat(It,'="').concat(Vi(tt[It]),'" ')},"").trim()}(zt),">").concat(vi.map(zr).join(""),"")}sn();function dr(tt){this.name="MissingIcon",this.message=tt||"Icon unavailable",this.stack=(new Error).stack}(dr.prototype=Object.create(Error.prototype)).constructor=dr;var ia={fill:"currentColor"},Sa={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},na=(c({},ia,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),c({},Sa,{attributeName:"opacity"}));function ra(tt){var Et=tt[0],It=tt[1],vi=P(tt.slice(4),1)[0];return{found:!0,width:Et,height:It,icon:Array.isArray(vi)?{tag:"g",attributes:{class:"".concat(Me.familyPrefix,"-").concat(Ne.GROUP)},children:[{tag:"path",attributes:{class:"".concat(Me.familyPrefix,"-").concat(Ne.SECONDARY),fill:"currentColor",d:vi[0]}},{tag:"path",attributes:{class:"".concat(Me.familyPrefix,"-").concat(Ne.PRIMARY),fill:"currentColor",d:vi[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:vi}}}}c({},ia,{cx:"256",cy:"364",r:"28"}),c({},Sa,{attributeName:"r",values:"28;14;28;28;14;28;"}),c({},na,{values:"1;0;1;1;0;1;"}),c({},ia,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),c({},na,{values:"1;0;0;0;0;1;"}),c({},ia,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),c({},na,{values:"0;0;1;1;0;0;"});var bt=function(){function tt(){(function(tt,Et){if(!(tt instanceof Et))throw new TypeError("Cannot call a class as a function")})(this,tt),this.definitions={}}return function(tt,Et,It){Et&&M(tt.prototype,Et)}(tt,[{key:"add",value:function(){for(var It=this,zt=arguments.length,ri=new Array(zt),vi=0;vi-1;ri--){var vi=It[ri],Mi=(vi.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(Mi)>-1&&(zt=vi)}se.head.insertBefore(Et,zt)}}(function(){var Et=I,It=Me.familyPrefix,zt=Me.replacementClass,ri='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';if("fa"!==It||zt!==Et){var vi=new RegExp("\\.".concat("fa","\\-"),"g"),Mi=new RegExp("\\--".concat("fa","\\-"),"g"),Ei=new RegExp("\\.".concat(Et),"g");ri=ri.replace(vi,".".concat(It,"-")).replace(Mi,"--".concat(It,"-")).replace(Ei,".".concat(zt))}return ri}()),gr=!0)}function xi(tt,Et){return Object.defineProperty(tt,"abstract",{get:Et}),Object.defineProperty(tt,"html",{get:function(){return tt.abstract.map(function(zt){return zr(zt)})}}),Object.defineProperty(tt,"node",{get:function(){if(a){var zt=se.createElement("div");return zt.innerHTML=tt.html,zt.children}}}),tt}function Hi(tt){var Et=tt.prefix,It=void 0===Et?"fa":Et,zt=tt.iconName;if(zt)return Va(wn.definitions,It,zt)||Va(ht.styles,It,zt)}var tt,wn=new bt,gr=!1,Gn_transform=function(Et){return function(Et){var It={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return Et?Et.toLowerCase().split(" ").reduce(function(zt,ri){var vi=ri.toLowerCase().split("-"),Mi=vi[0],Ei=vi.slice(1).join("-");if(Mi&&"h"===Ei)return zt.flipX=!0,zt;if(Mi&&"v"===Ei)return zt.flipY=!0,zt;if(Ei=parseFloat(Ei),isNaN(Ei))return zt;switch(Mi){case"grow":zt.size=zt.size+Ei;break;case"shrink":zt.size=zt.size-Ei;break;case"left":zt.x=zt.x-Ei;break;case"right":zt.x=zt.x+Ei;break;case"up":zt.y=zt.y-Ei;break;case"down":zt.y=zt.y+Ei;break;case"rotate":zt.rotate=zt.rotate+Ei}return zt},It):It}(Et)},ma=(tt=function(tt){var Et=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},It=Et.transform,zt=void 0===It?At:It,ri=Et.symbol,vi=void 0!==ri&&ri,Mi=Et.mask,Ei=void 0===Mi?null:Mi,ji=Et.maskId,hn=void 0===ji?null:ji,yn=Et.title,Tn=void 0===yn?null:yn,Vn=Et.titleId,wr=void 0===Vn?null:Vn,Or=Et.classes,Ar=void 0===Or?[]:Or,Yn=Et.attributes,_r=void 0===Yn?{}:Yn,Fi=Et.styles,an=void 0===Fi?{}:Fi;if(tt){var fn=tt.prefix,kn=tt.iconName,Rn=tt.icon;return xi(c({type:"icon"},tt),function(){return Wt(),Me.autoA11y&&(Tn?_r["aria-labelledby"]="".concat(Me.replacementClass,"-title-").concat(wr||Si()):(_r["aria-hidden"]="true",_r.focusable="false")),Ri({icons:{main:ra(Rn),mask:Ei?ra(Ei.icon):{found:!1,width:null,height:null,icon:{}}},prefix:fn,iconName:kn,transform:c({},At,zt),symbol:vi,title:Tn,maskId:hn,titleId:wr,extra:{attributes:_r,styles:an,classes:Ar}})})}},function(Et){var It=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},zt=(Et||{}).icon?Et:Hi(Et||{}),ri=It.mask;return ri&&(ri=(ri||{}).icon?ri:Hi(ri||{})),tt(zt,c({},It,{mask:ri}))}),fs=m(2313);const cr=["*"],xt=tt=>{const Et={"fa-spin":tt.spin,"fa-pulse":tt.pulse,"fa-fw":tt.fixedWidth,"fa-border":tt.border,"fa-inverse":tt.inverse,"fa-layers-counter":tt.counter,"fa-flip-horizontal":"horizontal"===tt.flip||"both"===tt.flip,"fa-flip-vertical":"vertical"===tt.flip||"both"===tt.flip,[`fa-${tt.size}`]:null!==tt.size,[`fa-rotate-${tt.rotate}`]:null!==tt.rotate,[`fa-pull-${tt.pull}`]:null!==tt.pull,[`fa-stack-${tt.stackItemSize}`]:null!=tt.stackItemSize};return Object.keys(Et).map(It=>Et[It]?It:null).filter(It=>It)};let je=(()=>{class tt{constructor(){this.defaultPrefix="fas",this.fallbackIcon=null}}return tt.\u0275fac=function(It){return new(It||tt)},tt.\u0275prov=e.Yz7({token:tt,factory:tt.\u0275fac,providedIn:"root"}),tt})(),Mt=(()=>{class tt{constructor(){this.definitions={}}addIcons(...It){for(const zt of It){zt.prefix in this.definitions||(this.definitions[zt.prefix]={}),this.definitions[zt.prefix][zt.iconName]=zt;for(const ri of zt.icon[2])"string"==typeof ri&&(this.definitions[zt.prefix][ri]=zt)}}addIconPacks(...It){for(const zt of It){const ri=Object.keys(zt).map(vi=>zt[vi]);this.addIcons(...ri)}}getIconDefinition(It,zt){return It in this.definitions&&zt in this.definitions[It]?this.definitions[It][zt]:null}}return tt.\u0275fac=function(It){return new(It||tt)},tt.\u0275prov=e.Yz7({token:tt,factory:tt.\u0275fac,providedIn:"root"}),tt})(),kt=(()=>{class tt{constructor(){this.stackItemSize="1x"}ngOnChanges(It){if("size"in It)throw new Error('fa-icon is not allowed to customize size when used inside fa-stack. Set size on the enclosing fa-stack instead: ....')}}return tt.\u0275fac=function(It){return new(It||tt)},tt.\u0275dir=e.lG2({type:tt,selectors:[["fa-icon","stackItemSize",""],["fa-duotone-icon","stackItemSize",""]],inputs:{stackItemSize:"stackItemSize",size:"size"},features:[e.TTD]}),tt})(),Kt=(()=>{class tt{constructor(It,zt){this.renderer=It,this.elementRef=zt}ngOnInit(){this.renderer.addClass(this.elementRef.nativeElement,"fa-stack")}ngOnChanges(It){"size"in It&&(null!=It.size.currentValue&&this.renderer.addClass(this.elementRef.nativeElement,`fa-${It.size.currentValue}`),null!=It.size.previousValue&&this.renderer.removeClass(this.elementRef.nativeElement,`fa-${It.size.previousValue}`))}}return tt.\u0275fac=function(It){return new(It||tt)(e.Y36(e.Qsj),e.Y36(e.SBq))},tt.\u0275cmp=e.Xpm({type:tt,selectors:[["fa-stack"]],inputs:{size:"size"},features:[e.TTD],ngContentSelectors:cr,decls:1,vars:0,template:function(It,zt){1&It&&(e.F$t(),e.Hsn(0))},encapsulation:2}),tt})(),Jt=(()=>{class tt{constructor(It,zt,ri,vi,Mi){this.sanitizer=It,this.config=zt,this.iconLibrary=ri,this.stackItem=vi,this.classes=[],null!=Mi&&null==vi&&console.error('FontAwesome: fa-icon and fa-duotone-icon elements must specify stackItemSize attribute when wrapped into fa-stack. Example: .')}ngOnChanges(It){if(null==this.icon&&null==this.config.fallbackIcon)return(()=>{throw new Error("Property `icon` is required for `fa-icon`/`fa-duotone-icon` components.")})();let zt=null;if(zt=null==this.icon?this.config.fallbackIcon:this.icon,It){const ri=this.findIconDefinition(zt);if(null!=ri){const vi=this.buildParams();this.renderIcon(ri,vi)}}}render(){this.ngOnChanges({})}findIconDefinition(It){const zt=((tt,Et)=>(tt=>void 0!==tt.prefix&&void 0!==tt.iconName)(tt)?tt:Array.isArray(tt)&&2===tt.length?{prefix:tt[0],iconName:tt[1]}:"string"==typeof tt?{prefix:Et,iconName:tt}:void 0)(It,this.config.defaultPrefix);if("icon"in zt)return zt;const ri=this.iconLibrary.getIconDefinition(zt.prefix,zt.iconName);return null!=ri?ri:((tt=>{throw new Error(`Could not find icon with iconName=${tt.iconName} and prefix=${tt.prefix} in the icon library.`)})(zt),null)}buildParams(){const It={flip:this.flip,spin:this.spin,pulse:this.pulse,border:this.border,inverse:this.inverse,size:this.size||null,pull:this.pull||null,rotate:this.rotate||null,fixedWidth:"boolean"==typeof this.fixedWidth?this.fixedWidth:this.config.fixedWidth,stackItemSize:null!=this.stackItem?this.stackItem.stackItemSize:null},zt="string"==typeof this.transform?Gn_transform(this.transform):this.transform;return{title:this.title,transform:zt,classes:[...xt(It),...this.classes],mask:null!=this.mask?this.findIconDefinition(this.mask):null,styles:null!=this.styles?this.styles:{},symbol:this.symbol,attributes:{role:this.a11yRole}}}renderIcon(It,zt){const ri=ma(It,zt);this.renderedIconHTML=this.sanitizer.bypassSecurityTrustHtml(ri.html.join("\n"))}}return tt.\u0275fac=function(It){return new(It||tt)(e.Y36(fs.H7),e.Y36(je),e.Y36(Mt),e.Y36(kt,8),e.Y36(Kt,8))},tt.\u0275cmp=e.Xpm({type:tt,selectors:[["fa-icon"]],hostAttrs:[1,"ng-fa-icon"],hostVars:2,hostBindings:function(It,zt){2&It&&(e.Ikx("innerHTML",zt.renderedIconHTML,e.oJD),e.uIk("title",zt.title))},inputs:{icon:"icon",title:"title",spin:"spin",pulse:"pulse",mask:"mask",styles:"styles",flip:"flip",size:"size",pull:"pull",border:"border",inverse:"inverse",symbol:"symbol",rotate:"rotate",fixedWidth:"fixedWidth",classes:"classes",transform:"transform",a11yRole:"a11yRole"},features:[e.TTD],decls:0,vars:0,template:function(It,zt){},encapsulation:2}),tt})(),In=(()=>{class tt{}return tt.\u0275fac=function(It){return new(It||tt)},tt.\u0275mod=e.oAB({type:tt}),tt.\u0275inj=e.cJS({}),tt})()},6642:(Ue,K,m)=>{"use strict";m.d(K,{eX:()=>Re,sQ:()=>Oi,GW:()=>a,l4:()=>Fe});var e=m(5620),t=m(6451),v=m(8306),M=m(7579),s=m(515),C=m(9646),c=m(2843),P=m(576);class O{constructor(Se,V,ve){this.kind=Se,this.value=V,this.error=ve,this.hasValue="N"===Se}observe(Se){return T(this,Se)}do(Se,V,ve){const{kind:Ee,value:et,error:$t}=this;return"N"===Ee?null==Se?void 0:Se(et):"E"===Ee?null==V?void 0:V($t):null==ve?void 0:ve()}accept(Se,V,ve){var Ee;return(0,P.m)(null===(Ee=Se)||void 0===Ee?void 0:Ee.next)?this.observe(Se):this.do(Se,V,ve)}toObservable(){const{kind:Se,value:V,error:ve}=this,Ee="N"===Se?(0,C.of)(V):"E"===Se?(0,c._)(()=>ve):"C"===Se?s.E:0;if(!Ee)throw new TypeError(`Unexpected notification kind ${Se}`);return Ee}static createNext(Se){return new O("N",Se)}static createError(Se){return new O("E",void 0,Se)}static createComplete(){return O.completeNotification}}function T(He,Se){var V,ve,Ee;const{kind:et,value:$t,error:Pt}=He;if("string"!=typeof et)throw new TypeError('Invalid notification, missing "kind"');"N"===et?null===(V=Se.next)||void 0===V||V.call(Se,$t):"E"===et?null===(ve=Se.error)||void 0===ve||ve.call(Se,Pt):null===(Ee=Se.complete)||void 0===Ee||Ee.call(Se)}O.completeNotification=new O("C");var R=m(4482),S=m(5403),w=m(8421);function U(He,Se,V,ve){return(0,R.e)((Ee,et)=>{let $t;Se&&"function"!=typeof Se?({duration:V,element:$t,connector:ve}=Se):$t=Se;const Pt=new Map,Xt=rt=>{Pt.forEach(rt),rt(et)},lt=rt=>Xt(ot=>ot.error(rt)),Pe=new G(et,rt=>{try{const ot=He(rt);let At=Pt.get(ot);if(!At){Pt.set(ot,At=ve?ve():new M.x);const li=function(rt,ot){const At=new v.y(li=>{Pe.activeGroups++;const Ut=ot.subscribe(li);return()=>{Ut.unsubscribe(),0==--Pe.activeGroups&&Pe.teardownAttempted&&Pe.unsubscribe()}});return At.key=rt,At}(ot,At);if(et.next(li),V){const Ut=new S.Q(At,()=>{At.complete(),null==Ut||Ut.unsubscribe()},void 0,void 0,()=>Pt.delete(ot));Pe.add((0,w.Xf)(V(li)).subscribe(Ut))}}At.next($t?$t(rt):rt)}catch(ot){lt(ot)}},()=>Xt(rt=>rt.complete()),lt,()=>Pt.clear());Ee.subscribe(Pe)})}class G extends S.Q{constructor(){super(...arguments),this.activeGroups=0,this.teardownAttempted=!1}unsubscribe(){this.teardownAttempted=!0,0===this.activeGroups&&super.unsubscribe()}}var W=m(4004);function ee(He,Se){return Se?V=>V.pipe(ee((ve,Ee)=>(0,w.Xf)(He(ve,Ee)).pipe((0,W.U)((et,$t)=>Se(ve,et,Ee,$t))))):(0,R.e)((V,ve)=>{let Ee=0,et=null,$t=!1;V.subscribe(new S.Q(ve,Pt=>{et||(et=new S.Q(ve,void 0,()=>{et=null,$t&&ve.complete()}),(0,w.Xf)(He(Pt,Ee++)).subscribe(et))},()=>{$t=!0,!et&&ve.complete()}))})}var _e=m(8502),fe=m(262),de=m(9300),ne=m(5577),se=m(5698),oe=m(5e3);const y={dispatch:!0,useEffectsErrorHandler:!0},i="__@ngrx/effects_create__";function a(He,Se){const V=He(),ve=Object.assign(Object.assign({},y),Se);return Object.defineProperty(V,i,{value:ve}),V}function p(He){return Object.getOwnPropertyNames(He).filter(ve=>!(!He[ve]||!He[ve].hasOwnProperty(i))&&He[ve][i].hasOwnProperty("dispatch")).map(ve=>Object.assign({propertyName:ve},He[ve][i]))}function u(He){return Object.getPrototypeOf(He)}const _="__@ngrx/effects__";function I(He){return(0,e.qC)(b,u)(He)}function b(He){return function(He){return He.constructor.hasOwnProperty(_)}(He)?He.constructor[_]:[]}function B(He,Se,V){const ve=u(He).constructor.name,Ee=function(He){return[I,p].reduce((V,ve)=>V.concat(ve(He)),[])}(He).map(({propertyName:et,dispatch:$t,useEffectsErrorHandler:Pt})=>{const Xt="function"==typeof He[et]?He[et]():He[et],lt=Pt?V(Xt,Se):Xt;return!1===$t?lt.pipe((0,_e.l)()):lt.pipe((0,R.e)((He,Se)=>{He.subscribe(new S.Q(Se,V=>{Se.next(O.createNext(V))},()=>{Se.next(O.createComplete()),Se.complete()},V=>{Se.next(O.createError(V)),Se.complete()}))})).pipe((0,W.U)(Be=>({effect:He[et],notification:Be,propertyName:et,sourceName:ve,sourceInstance:He})))});return(0,t.T)(...Ee)}function xe(He,Se,V=10){return He.pipe((0,fe.K)(ve=>(Se&&Se.handleError(ve),V<=1?He:xe(He,Se,V-1))))}let Re=(()=>{class He extends v.y{constructor(V){super(),V&&(this.source=V)}lift(V){const ve=new He;return ve.source=this,ve.operator=V,ve}}return He.\u0275fac=function(V){return new(V||He)(oe.LFG(e.Y$))},He.\u0275prov=oe.Yz7({token:He,factory:He.\u0275fac}),He})();function Fe(...He){return(0,de.h)(Se=>He.some(V=>"string"==typeof V?V===Se.type:V.type===Se.type))}function ue(He){return Te(He,"ngrxOnInitEffects")}function Te(He,Se){return He&&Se in He&&"function"==typeof He[Se]}const ke=new oe.OlP("@ngrx/effects Internal Root Guard"),Y=new oe.OlP("@ngrx/effects User Provided Effects"),X=new oe.OlP("@ngrx/effects Internal Root Effects"),he=new oe.OlP("@ngrx/effects Root Effects"),Me=new oe.OlP("@ngrx/effects Internal Feature Effects"),ze=new oe.OlP("@ngrx/effects Feature Effects"),ht=new oe.OlP("@ngrx/effects Effects Error Handler");let it=(()=>{class He extends M.x{constructor(V,ve){super(),this.errorHandler=V,this.effectsErrorHandler=ve}addEffects(V){this.next(V)}toActions(){return this.pipe(U(u),(0,ne.z)(V=>V.pipe(U(ft))),(0,ne.z)(V=>{const ve=V.pipe(ee(et=>function(He,Se){return V=>{const ve=B(V,He,Se);return function(He){return Te(He,"ngrxOnRunEffects")}(V)?V.ngrxOnRunEffects(ve):ve}}(this.errorHandler,this.effectsErrorHandler)(et)),(0,W.U)(et=>(function(He,Se){if("N"===He.notification.kind){const V=He.notification.value;!function(He){return"function"!=typeof He&&He&&He.type&&"string"==typeof He.type}(V)&&Se.handleError(new Error(`Effect ${function({propertyName:He,sourceInstance:Se,sourceName:V}){const ve="function"==typeof Se[He];return`"${V}.${String(He)}${ve?"()":""}"`}(He)} dispatched an invalid action: ${function(He){try{return JSON.stringify(He)}catch(Se){return He}}(V)}`))}}(et,this.errorHandler),et.notification)),(0,de.h)(et=>"N"===et.kind&&null!=et.value),(0,R.e)((He,Se)=>{He.subscribe(new S.Q(Se,V=>T(V,Se)))})),Ee=V.pipe((0,se.q)(1),(0,de.h)(ue),(0,W.U)(et=>et.ngrxOnInitEffects()));return(0,t.T)(ve,Ee)}))}}return He.\u0275fac=function(V){return new(V||He)(oe.LFG(oe.qLn),oe.LFG(ht))},He.\u0275prov=oe.Yz7({token:He,factory:He.\u0275fac}),He})();function ft(He){return function(He){return Te(He,"ngrxOnIdentifyEffects")}(He)?He.ngrxOnIdentifyEffects():""}let st=(()=>{class He{constructor(V,ve){this.effectSources=V,this.store=ve,this.effectsSubscription=null}start(){this.effectsSubscription||(this.effectsSubscription=this.effectSources.toActions().subscribe(this.store))}ngOnDestroy(){this.effectsSubscription&&(this.effectsSubscription.unsubscribe(),this.effectsSubscription=null)}}return He.\u0275fac=function(V){return new(V||He)(oe.LFG(it),oe.LFG(e.yh))},He.\u0275prov=oe.Yz7({token:He,factory:He.\u0275fac}),He})();const wt="@ngrx/effects/init";(0,e.PH)(wt);let Nt=(()=>{class He{constructor(V,ve,Ee,et,$t,Pt,Xt){this.sources=V,ve.start(),et.forEach(lt=>V.addEffects(lt)),Ee.dispatch({type:wt})}addEffects(V){this.sources.addEffects(V)}}return He.\u0275fac=function(V){return new(V||He)(oe.LFG(it),oe.LFG(st),oe.LFG(e.yh),oe.LFG(he),oe.LFG(e.cr,8),oe.LFG(e.CK,8),oe.LFG(ke,8))},He.\u0275mod=oe.oAB({type:He}),He.\u0275inj=oe.cJS({}),He})(),Vt=(()=>{class He{constructor(V,ve,Ee,et){ve.forEach($t=>$t.forEach(Pt=>V.addEffects(Pt)))}}return He.\u0275fac=function(V){return new(V||He)(oe.LFG(Nt),oe.LFG(ze),oe.LFG(e.cr,8),oe.LFG(e.CK,8))},He.\u0275mod=oe.oAB({type:He}),He.\u0275inj=oe.cJS({}),He})(),Oi=(()=>{class He{static forFeature(V=[]){return{ngModule:Vt,providers:[V,{provide:Me,multi:!0,useValue:V},{provide:Y,multi:!0,useValue:[]},{provide:ze,multi:!0,useFactory:jt,deps:[oe.zs3,Me,Y]}]}}static forRoot(V=[]){return{ngModule:Nt,providers:[{provide:ht,useValue:xe},st,it,Re,V,{provide:X,useValue:[V]},{provide:ke,useFactory:Pi,deps:[[st,new oe.FiY,new oe.tp0],[X,new oe.PiD]]},{provide:Y,multi:!0,useValue:[]},{provide:he,useFactory:jt,deps:[oe.zs3,X,Y]}]}}}return He.\u0275fac=function(V){return new(V||He)},He.\u0275mod=oe.oAB({type:He}),He.\u0275inj=oe.cJS({}),He})();function jt(He,Se,V){const ve=[];for(const Ee of Se)ve.push(...Ee);for(const Ee of V)ve.push(...Ee);return function(He,Se){return Se.map(V=>He.get(V))}(He,ve)}function Pi(He,Se){if((1!==Se.length||0!==Se[0].length)&&He)throw new TypeError("EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.");return"guarded"}},9565:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{FT:()=>StoreDevtoolsModule});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(5e3),_ngrx_store__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(5620),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(515),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(8306),rxjs__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(9646),rxjs__WEBPACK_IMPORTED_MODULE_15__=__webpack_require__(6451),rxjs__WEBPACK_IMPORTED_MODULE_18__=__webpack_require__(233),rxjs__WEBPACK_IMPORTED_MODULE_19__=__webpack_require__(4707),rxjs_operators__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(3099),rxjs_operators__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(9300),rxjs_operators__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(4004),rxjs_operators__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(4351),rxjs_operators__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(7414),rxjs_operators__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(8372),rxjs_operators__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(262),rxjs_operators__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(5698),rxjs_operators__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(2722),rxjs_operators__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(3900),rxjs_operators__WEBPACK_IMPORTED_MODULE_16__=__webpack_require__(5684),rxjs_operators__WEBPACK_IMPORTED_MODULE_17__=__webpack_require__(5363),rxjs_operators__WEBPACK_IMPORTED_MODULE_20__=__webpack_require__(1365),rxjs_operators__WEBPACK_IMPORTED_MODULE_21__=__webpack_require__(5026);class StoreDevtoolsConfig{constructor(){this.maxAge=!1}}const STORE_DEVTOOLS_CONFIG=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.OlP("@ngrx/store-devtools Options"),INITIAL_OPTIONS=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.OlP("@ngrx/store-devtools Initial Config");function noMonitor(){return null}const DEFAULT_NAME="NgRx Store DevTools";function createConfig(Ue){const K={maxAge:!1,monitor:noMonitor,actionSanitizer:void 0,stateSanitizer:void 0,name:DEFAULT_NAME,serialize:!1,logOnly:!1,autoPause:!1,features:{pause:!0,lock:!0,persist:!0,export:!0,import:"custom",jump:!0,skip:!0,reorder:!0,dispatch:!0,test:!0}},m="function"==typeof Ue?Ue():Ue,v=Object.assign({},K,{features:m.features||!!m.logOnly&&{pause:!0,export:!0,test:!0}||K.features},m);if(v.maxAge&&v.maxAge<2)throw new Error(`Devtools 'maxAge' cannot be less than 2, got ${v.maxAge}`);return v}const PERFORM_ACTION="PERFORM_ACTION",REFRESH="REFRESH",RESET="RESET",ROLLBACK="ROLLBACK",COMMIT="COMMIT",SWEEP="SWEEP",TOGGLE_ACTION="TOGGLE_ACTION",SET_ACTIONS_ACTIVE="SET_ACTIONS_ACTIVE",JUMP_TO_STATE="JUMP_TO_STATE",JUMP_TO_ACTION="JUMP_TO_ACTION",IMPORT_STATE="IMPORT_STATE",LOCK_CHANGES="LOCK_CHANGES",PAUSE_RECORDING="PAUSE_RECORDING";class PerformAction{constructor(K,m){if(this.action=K,this.timestamp=m,this.type=PERFORM_ACTION,void 0===K.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?')}}class Refresh{constructor(){this.type=REFRESH}}class Reset{constructor(K){this.timestamp=K,this.type=RESET}}class Rollback{constructor(K){this.timestamp=K,this.type=ROLLBACK}}class Commit{constructor(K){this.timestamp=K,this.type=COMMIT}}class Sweep{constructor(){this.type=SWEEP}}class ToggleAction{constructor(K){this.id=K,this.type=TOGGLE_ACTION}}class SetActionsActive{constructor(K,m,e=!0){this.start=K,this.end=m,this.active=e,this.type=SET_ACTIONS_ACTIVE}}class JumpToState{constructor(K){this.index=K,this.type=JUMP_TO_STATE}}class JumpToAction{constructor(K){this.actionId=K,this.type=JUMP_TO_ACTION}}class ImportState{constructor(K){this.nextLiftedState=K,this.type=IMPORT_STATE}}class LockChanges{constructor(K){this.status=K,this.type=LOCK_CHANGES}}class PauseRecording{constructor(K){this.status=K,this.type=PAUSE_RECORDING}}function difference(Ue,K){return Ue.filter(m=>K.indexOf(m)<0)}function unliftState(Ue){const{computedStates:K,currentStateIndex:m}=Ue;if(m>=K.length){const{state:t}=K[K.length-1];return t}const{state:e}=K[m];return e}function unliftAction(Ue){return Ue.actionsById[Ue.nextActionId-1]}function liftAction(Ue){return new PerformAction(Ue,+Date.now())}function sanitizeActions(Ue,K){return Object.keys(K).reduce((m,e)=>{const t=Number(e);return m[t]=sanitizeAction(Ue,K[t],t),m},{})}function sanitizeAction(Ue,K,m){return Object.assign(Object.assign({},K),{action:Ue(K.action,m)})}function sanitizeStates(Ue,K){return K.map((m,e)=>({state:sanitizeState(Ue,m.state,e),error:m.error}))}function sanitizeState(Ue,K,m){return Ue(K,m)}function shouldFilterActions(Ue){return Ue.predicate||Ue.actionsSafelist||Ue.actionsBlocklist}function filterLiftedState(Ue,K,m,e){const t=[],v={},M=[];return Ue.stagedActionIds.forEach((s,C)=>{const c=Ue.actionsById[s];!c||C&&isActionFiltered(Ue.computedStates[C],c,K,m,e)||(v[s]=c,t.push(s),M.push(Ue.computedStates[C]))}),Object.assign(Object.assign({},Ue),{stagedActionIds:t,actionsById:v,computedStates:M})}function isActionFiltered(Ue,K,m,e,t){const v=m&&!m(Ue,K.action),M=e&&!K.action.type.match(e.map(C=>escapeRegExp(C)).join("|")),s=t&&K.action.type.match(t.map(C=>escapeRegExp(C)).join("|"));return v||M||s}function escapeRegExp(Ue){return Ue.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const INIT_ACTION={type:_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.qg},RECOMPUTE="@ngrx/store-devtools/recompute",RECOMPUTE_ACTION={type:RECOMPUTE};function computeNextEntry(Ue,K,m,e,t){if(e)return{state:m,error:"Interrupted by an error up the chain"};let M,v=m;try{v=Ue(m,K)}catch(s){M=s.toString(),t.handleError(s)}return{state:v,error:M}}function recomputeStates(Ue,K,m,e,t,v,M,s,C){if(K>=Ue.length&&Ue.length===v.length)return Ue;const c=Ue.slice(0,K),P=v.length-(C?1:0);for(let o=K;o-1?R:computeNextEntry(m,T,S,D,s);c.push(U)}return C&&c.push(Ue[Ue.length-1]),c}function liftInitialState(Ue,K){return{monitorState:K(void 0,{}),nextActionId:1,actionsById:{0:liftAction(INIT_ACTION)},stagedActionIds:[0],skippedActionIds:[],committedState:Ue,currentStateIndex:0,computedStates:[],isLocked:!1,isPaused:!1}}function liftReducerWith(Ue,K,m,e,t={}){return v=>(M,s)=>{let{monitorState:C,actionsById:c,nextActionId:P,stagedActionIds:o,skippedActionIds:O,committedState:T,currentStateIndex:R,computedStates:S,isLocked:D,isPaused:w}=M||K;function U(ee){let ie=ee,_e=o.slice(1,ie+1);for(let fe=0;fe<_e.length;fe++){if(S[fe+1].error){ie=fe,_e=o.slice(1,ie+1);break}delete c[_e[fe]]}O=O.filter(fe=>-1===_e.indexOf(fe)),o=[0,...o.slice(ie+1)],T=S[ie].state,S=S.slice(ie),R=R>ie?R-ie:0}function G(){c={0:liftAction(INIT_ACTION)},P=1,o=[0],O=[],T=S[R].state,R=0,S=[]}M||(c=Object.create(c));let W=0;switch(s.type){case LOCK_CHANGES:D=s.status,W=1/0;break;case PAUSE_RECORDING:w=s.status,w?(o=[...o,P],c[P]=new PerformAction({type:"@ngrx/devtools/pause"},+Date.now()),P++,W=o.length-1,S=S.concat(S[S.length-1]),R===o.length-2&&R++,W=1/0):G();break;case RESET:c={0:liftAction(INIT_ACTION)},P=1,o=[0],O=[],T=Ue,R=0,S=[];break;case COMMIT:G();break;case ROLLBACK:c={0:liftAction(INIT_ACTION)},P=1,o=[0],O=[],R=0,S=[];break;case TOGGLE_ACTION:{const{id:ee}=s;O=-1===O.indexOf(ee)?[ee,...O]:O.filter(_e=>_e!==ee),W=o.indexOf(ee);break}case SET_ACTIONS_ACTIVE:{const{start:ee,end:ie,active:_e}=s,fe=[];for(let de=ee;det.maxAge&&(S=recomputeStates(S,W,v,T,c,o,O,m,w),U(o.length-t.maxAge),W=1/0);break;case _ngrx_store__WEBPACK_IMPORTED_MODULE_1__.wb:if(S.filter(ie=>ie.error).length>0)W=0,t.maxAge&&o.length>t.maxAge&&(S=recomputeStates(S,W,v,T,c,o,O,m,w),U(o.length-t.maxAge),W=1/0);else{if(!w&&!D){R===o.length-1&&R++;const ie=P++;c[ie]=new PerformAction(s,+Date.now()),o=[...o,ie],W=o.length-1,S=recomputeStates(S,W,v,T,c,o,O,m,w)}S=S.map(ie=>Object.assign(Object.assign({},ie),{state:v(ie.state,RECOMPUTE_ACTION)})),R=o.length-1,t.maxAge&&o.length>t.maxAge&&U(o.length-t.maxAge),W=1/0}break;default:W=1/0}return S=recomputeStates(S,W,v,T,c,o,O,m,w),C=e(C,s),{monitorState:C,actionsById:c,nextActionId:P,stagedActionIds:o,skippedActionIds:O,committedState:T,currentStateIndex:R,computedStates:S,isLocked:D,isPaused:w}}}let DevtoolsDispatcher=(()=>{class Ue extends _ngrx_store__WEBPACK_IMPORTED_MODULE_1__.UO{}return Ue.\u0275fac=function(){let K;return function(e){return(K||(K=_angular_core__WEBPACK_IMPORTED_MODULE_0__.n5z(Ue)))(e||Ue)}}(),Ue.\u0275prov=_angular_core__WEBPACK_IMPORTED_MODULE_0__.Yz7({token:Ue,factory:Ue.\u0275fac}),Ue})();const ExtensionActionTypes={START:"START",DISPATCH:"DISPATCH",STOP:"STOP",ACTION:"ACTION"},REDUX_DEVTOOLS_EXTENSION=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.OlP("@ngrx/store-devtools Redux Devtools Extension");let DevtoolsExtension=(()=>{class DevtoolsExtension{constructor(Ue,K,m){this.config=K,this.dispatcher=m,this.devtoolsExtension=Ue,this.createActionStreams()}notify(Ue,K){if(this.devtoolsExtension)if(Ue.type===PERFORM_ACTION){if(K.isLocked||K.isPaused)return;const m=unliftState(K);if(shouldFilterActions(this.config)&&isActionFiltered(m,Ue,this.config.predicate,this.config.actionsSafelist,this.config.actionsBlocklist))return;const e=this.config.stateSanitizer?sanitizeState(this.config.stateSanitizer,m,K.currentStateIndex):m,t=this.config.actionSanitizer?sanitizeAction(this.config.actionSanitizer,Ue,K.nextActionId):Ue;this.sendToReduxDevtools(()=>this.extensionConnection.send(t,e))}else{const m=Object.assign(Object.assign({},K),{stagedActionIds:K.stagedActionIds,actionsById:this.config.actionSanitizer?sanitizeActions(this.config.actionSanitizer,K.actionsById):K.actionsById,computedStates:this.config.stateSanitizer?sanitizeStates(this.config.stateSanitizer,K.computedStates):K.computedStates});this.sendToReduxDevtools(()=>this.devtoolsExtension.send(null,m,this.getExtensionConfig(this.config)))}}createChangesObservable(){return this.devtoolsExtension?new rxjs__WEBPACK_IMPORTED_MODULE_3__.y(Ue=>{const K=this.devtoolsExtension.connect(this.getExtensionConfig(this.config));return this.extensionConnection=K,K.init(),K.subscribe(m=>Ue.next(m)),K.unsubscribe}):rxjs__WEBPACK_IMPORTED_MODULE_2__.E}createActionStreams(){const Ue=this.createChangesObservable().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_4__.B)()),K=Ue.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(s=>s.type===ExtensionActionTypes.START)),m=Ue.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(s=>s.type===ExtensionActionTypes.STOP)),e=Ue.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(s=>s.type===ExtensionActionTypes.DISPATCH),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(s=>this.unwrapAction(s.payload)),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.b)(s=>s.type===IMPORT_STATE?this.dispatcher.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(C=>C.type===_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.wb),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_8__.V)(1e3),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_9__.b)(1e3),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(()=>s),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_10__.K)(()=>(0,rxjs__WEBPACK_IMPORTED_MODULE_11__.of)(s)),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_12__.q)(1)):(0,rxjs__WEBPACK_IMPORTED_MODULE_11__.of)(s))),v=Ue.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.h)(s=>s.type===ExtensionActionTypes.ACTION),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(s=>this.unwrapAction(s.payload))).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.R)(m)),M=e.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.R)(m));this.start$=K.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_13__.R)(m)),this.actions$=this.start$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_14__.w)(()=>v)),this.liftedActions$=this.start$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_14__.w)(()=>M))}unwrapAction(action){return"string"==typeof action?eval(`(${action})`):action}getExtensionConfig(Ue){var K;const m={name:Ue.name,features:Ue.features,serialize:Ue.serialize,autoPause:null!==(K=Ue.autoPause)&&void 0!==K&&K};return!1!==Ue.maxAge&&(m.maxAge=Ue.maxAge),m}sendToReduxDevtools(Ue){try{Ue()}catch(K){console.warn("@ngrx/store-devtools: something went wrong inside the redux devtools",K)}}}return DevtoolsExtension.\u0275fac=function(K){return new(K||DevtoolsExtension)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(REDUX_DEVTOOLS_EXTENSION),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(STORE_DEVTOOLS_CONFIG),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(DevtoolsDispatcher))},DevtoolsExtension.\u0275prov=_angular_core__WEBPACK_IMPORTED_MODULE_0__.Yz7({token:DevtoolsExtension,factory:DevtoolsExtension.\u0275fac}),DevtoolsExtension})(),StoreDevtools=(()=>{class Ue{constructor(m,e,t,v,M,s,C,c){const P=liftInitialState(C,c.monitor),o=liftReducerWith(C,P,s,c.monitor,c),O=(0,rxjs__WEBPACK_IMPORTED_MODULE_15__.T)((0,rxjs__WEBPACK_IMPORTED_MODULE_15__.T)(e.asObservable().pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_16__.T)(1)),v.actions$).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(liftAction)),m,v.liftedActions$).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_17__.Q)(rxjs__WEBPACK_IMPORTED_MODULE_18__.N)),T=t.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(o)),R=new rxjs__WEBPACK_IMPORTED_MODULE_19__.t(1),S=O.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_20__.M)(T),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_21__.R)(({state:G},[W,ee])=>{let ie=ee(G,W);return W.type!==PERFORM_ACTION&&shouldFilterActions(c)&&(ie=filterLiftedState(ie,c.predicate,c.actionsSafelist,c.actionsBlocklist)),v.notify(W,ie),{state:ie,action:W}},{state:P,action:null})).subscribe(({state:G,action:W})=>{R.next(G),W.type===PERFORM_ACTION&&M.next(W.action)}),D=v.start$.subscribe(()=>{this.refresh()}),w=R.asObservable(),U=w.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.U)(unliftState));this.extensionStartSubscription=D,this.stateSubscription=S,this.dispatcher=m,this.liftedState=w,this.state=U}dispatch(m){this.dispatcher.next(m)}next(m){this.dispatcher.next(m)}error(m){}complete(){}performAction(m){this.dispatch(new PerformAction(m,+Date.now()))}refresh(){this.dispatch(new Refresh)}reset(){this.dispatch(new Reset(+Date.now()))}rollback(){this.dispatch(new Rollback(+Date.now()))}commit(){this.dispatch(new Commit(+Date.now()))}sweep(){this.dispatch(new Sweep)}toggleAction(m){this.dispatch(new ToggleAction(m))}jumpToAction(m){this.dispatch(new JumpToAction(m))}jumpToState(m){this.dispatch(new JumpToState(m))}importState(m){this.dispatch(new ImportState(m))}lockChanges(m){this.dispatch(new LockChanges(m))}pauseRecording(m){this.dispatch(new PauseRecording(m))}}return Ue.\u0275fac=function(m){return new(m||Ue)(_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(DevtoolsDispatcher),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.UO),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.n$),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(DevtoolsExtension),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.Y$),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_angular_core__WEBPACK_IMPORTED_MODULE_0__.qLn),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.Y6),_angular_core__WEBPACK_IMPORTED_MODULE_0__.LFG(STORE_DEVTOOLS_CONFIG))},Ue.\u0275prov=_angular_core__WEBPACK_IMPORTED_MODULE_0__.Yz7({token:Ue,factory:Ue.\u0275fac}),Ue})();const IS_EXTENSION_OR_MONITOR_PRESENT=new _angular_core__WEBPACK_IMPORTED_MODULE_0__.OlP("@ngrx/store-devtools Is Devtools Extension or Monitor Present");function createIsExtensionOrMonitorPresent(Ue,K){return Boolean(Ue)||K.monitor!==noMonitor}function createReduxDevtoolsExtension(){const Ue="__REDUX_DEVTOOLS_EXTENSION__";return"object"==typeof window&&void 0!==window[Ue]?window[Ue]:null}function createStateObservable(Ue){return Ue.state}let StoreDevtoolsModule=(()=>{class Ue{static instrument(m={}){return{ngModule:Ue,providers:[DevtoolsExtension,DevtoolsDispatcher,StoreDevtools,{provide:INITIAL_OPTIONS,useValue:m},{provide:IS_EXTENSION_OR_MONITOR_PRESENT,deps:[REDUX_DEVTOOLS_EXTENSION,STORE_DEVTOOLS_CONFIG],useFactory:createIsExtensionOrMonitorPresent},{provide:REDUX_DEVTOOLS_EXTENSION,useFactory:createReduxDevtoolsExtension},{provide:STORE_DEVTOOLS_CONFIG,deps:[INITIAL_OPTIONS],useFactory:createConfig},{provide:_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.FR,deps:[StoreDevtools],useFactory:createStateObservable},{provide:_ngrx_store__WEBPACK_IMPORTED_MODULE_1__.mK,useExisting:DevtoolsDispatcher}]}}}return Ue.\u0275fac=function(m){return new(m||Ue)},Ue.\u0275mod=_angular_core__WEBPACK_IMPORTED_MODULE_0__.oAB({type:Ue}),Ue.\u0275inj=_angular_core__WEBPACK_IMPORTED_MODULE_0__.cJS({}),Ue})()},5620:(Ue,K,m)=>{"use strict";m.d(K,{UO:()=>ee,qg:()=>W,Y6:()=>de,mK:()=>Ae,n$:()=>we,Y$:()=>Ne,FR:()=>ue,yh:()=>X,CK:()=>qe,Aw:()=>vt,cr:()=>be,wb:()=>le,qC:()=>Fe,PH:()=>D,ZF:()=>Xt,Lq:()=>Ki,P1:()=>et,on:()=>Ii,Ky:()=>w});var e=m(5e3),t=m(1135),v=m(8306),M=m(7579),s=m(233),C=m(4004),P=m(5363),o=m(1365),O=m(5026),T=m(1884);const R={};function D(at,Qt){if(R[at]=(R[at]||0)+1,"function"==typeof Qt)return G(at,(...Lt)=>Object.assign(Object.assign({},Qt(...Lt)),{type:at}));switch(Qt?Qt._as:"empty"){case"empty":return G(at,()=>({type:at}));case"props":return G(at,Lt=>Object.assign(Object.assign({},Lt),{type:at}));default:throw new Error("Unexpected config.")}}function w(){return{_as:"props",_p:void 0}}function G(at,Qt){return Object.defineProperty(Qt,"type",{value:at,writable:!1})}const W="@ngrx/store/init";let ee=(()=>{class at extends t.X{constructor(){super({type:W})}next(gt){if("function"==typeof gt)throw new TypeError("\n Dispatch expected an object, instead it received a function.\n If you're using the createAction function, make sure to invoke the function\n before dispatching the action. For example, someAction should be someAction().");if(void 0===gt)throw new TypeError("Actions must be objects");if(void 0===gt.type)throw new TypeError("Actions must have a type property");super.next(gt)}complete(){}ngOnDestroy(){super.complete()}}return at.\u0275fac=function(gt){return new(gt||at)},at.\u0275prov=e.Yz7({token:at,factory:at.\u0275fac}),at})();const ie=[ee],_e=new e.OlP("@ngrx/store Internal Root Guard"),fe=new e.OlP("@ngrx/store Internal Initial State"),de=new e.OlP("@ngrx/store Initial State"),ne=new e.OlP("@ngrx/store Reducer Factory"),se=new e.OlP("@ngrx/store Internal Reducer Factory Provider"),oe=new e.OlP("@ngrx/store Initial Reducers"),y=new e.OlP("@ngrx/store Internal Initial Reducers"),i=new e.OlP("@ngrx/store Store Features"),a=new e.OlP("@ngrx/store Internal Store Reducers"),p=new e.OlP("@ngrx/store Internal Feature Reducers"),u=new e.OlP("@ngrx/store Internal Feature Configs"),_=new e.OlP("@ngrx/store Internal Store Features"),L=new e.OlP("@ngrx/store Internal Feature Reducers Token"),I=new e.OlP("@ngrx/store Feature Reducers"),x=new e.OlP("@ngrx/store User Provided Meta Reducers"),r=new e.OlP("@ngrx/store Meta Reducers"),b=new e.OlP("@ngrx/store Internal Resolved Meta Reducers"),J=new e.OlP("@ngrx/store User Runtime Checks Config"),F=new e.OlP("@ngrx/store Internal User Runtime Checks Config"),B=new e.OlP("@ngrx/store Internal Runtime Checks"),te=new e.OlP("@ngrx/store Check if Action types are unique");function xe(at,Qt={}){const gt=Object.keys(at),Lt={};for(let Ci=0;CiCi(ui),gt(Qt))}}function q(at,Qt){return Array.isArray(Qt)&&Qt.length>0&&(at=Fe.apply(null,[...Qt,at])),(gt,Lt)=>{const ui=at(gt);return(Ci,Wi)=>ui(Ci=void 0===Ci?Lt:Ci,Wi)}}class we extends v.y{}class Ae extends ee{}const le="@ngrx/store/update-reducers";let We=(()=>{class at extends t.X{constructor(gt,Lt,ui,Ci){super(Ci(ui,Lt)),this.dispatcher=gt,this.initialState=Lt,this.reducers=ui,this.reducerFactory=Ci}get currentReducers(){return this.reducers}addFeature(gt){this.addFeatures([gt])}addFeatures(gt){const Lt=gt.reduce((ui,{reducers:Ci,reducerFactory:Wi,metaReducers:$i,initialState:An,key:Ln})=>{const pn="function"==typeof Ci?function(at){const Qt=Array.isArray(at)&&at.length>0?Fe(...at):gt=>gt;return(gt,Lt)=>(gt=Qt(gt),(ui,Ci)=>gt(ui=void 0===ui?Lt:ui,Ci))}($i)(Ci,An):q(Wi,$i)(Ci,An);return ui[Ln]=pn,ui},{});this.addReducers(Lt)}removeFeature(gt){this.removeFeatures([gt])}removeFeatures(gt){this.removeReducers(gt.map(Lt=>Lt.key))}addReducer(gt,Lt){this.addReducers({[gt]:Lt})}addReducers(gt){this.reducers=Object.assign(Object.assign({},this.reducers),gt),this.updateReducers(Object.keys(gt))}removeReducer(gt){this.removeReducers([gt])}removeReducers(gt){gt.forEach(Lt=>{this.reducers=function(at,Qt){return Object.keys(at).filter(gt=>gt!==Qt).reduce((gt,Lt)=>Object.assign(gt,{[Lt]:at[Lt]}),{})}(this.reducers,Lt)}),this.updateReducers(gt)}updateReducers(gt){this.next(this.reducerFactory(this.reducers,this.initialState)),this.dispatcher.next({type:le,features:gt})}ngOnDestroy(){this.complete()}}return at.\u0275fac=function(gt){return new(gt||at)(e.LFG(Ae),e.LFG(de),e.LFG(oe),e.LFG(ne))},at.\u0275prov=e.Yz7({token:at,factory:at.\u0275fac}),at})();const yt=[We,{provide:we,useExisting:We},{provide:Ae,useExisting:ee}];let Ne=(()=>{class at extends M.x{ngOnDestroy(){this.complete()}}return at.\u0275fac=function(){let Qt;return function(Lt){return(Qt||(Qt=e.n5z(at)))(Lt||at)}}(),at.\u0275prov=e.Yz7({token:at,factory:at.\u0275fac}),at})();const Ve=[Ne];class ue extends v.y{}let Te=(()=>{class at extends t.X{constructor(gt,Lt,ui,Ci){super(Ci);const Ln=gt.pipe((0,P.Q)(s.N)).pipe((0,o.M)(Lt)).pipe((0,O.R)(ke,{state:Ci}));this.stateSubscription=Ln.subscribe(({state:pn,action:Pn})=>{this.next(pn),ui.next(Pn)})}ngOnDestroy(){this.stateSubscription.unsubscribe(),this.complete()}}return at.INIT=W,at.\u0275fac=function(gt){return new(gt||at)(e.LFG(ee),e.LFG(we),e.LFG(Ne),e.LFG(de))},at.\u0275prov=e.Yz7({token:at,factory:at.\u0275fac}),at})();function ke(at={state:void 0},[Qt,gt]){const{state:Lt}=at;return{state:gt(Lt,Qt),action:Qt}}const Y=[Te,{provide:ue,useExisting:Te}];let X=(()=>{class at extends v.y{constructor(gt,Lt,ui){super(),this.actionsObserver=Lt,this.reducerManager=ui,this.source=gt}select(gt,...Lt){return Me.call(null,gt,...Lt)(this)}lift(gt){const Lt=new at(this,this.actionsObserver,this.reducerManager);return Lt.operator=gt,Lt}dispatch(gt){this.actionsObserver.next(gt)}next(gt){this.actionsObserver.next(gt)}error(gt){this.actionsObserver.error(gt)}complete(){this.actionsObserver.complete()}addReducer(gt,Lt){this.reducerManager.addReducer(gt,Lt)}removeReducer(gt){this.reducerManager.removeReducer(gt)}}return at.\u0275fac=function(gt){return new(gt||at)(e.LFG(ue),e.LFG(ee),e.LFG(We))},at.\u0275prov=e.Yz7({token:at,factory:at.\u0275fac}),at})();const he=[X];function Me(at,Qt,...gt){return function(ui){let Ci;if("string"==typeof at){const Wi=[Qt,...gt].filter(Boolean);Ci=ui.pipe(function(...at){const Qt=at.length;if(0===Qt)throw new Error("list of properties cannot be empty.");return(0,C.U)(gt=>{let Lt=gt;for(let ui=0;uiat(Wi,Qt)))}return Ci.pipe((0,T.x)())}}const ht="https://ngrx.io/guide/store/configuration/runtime-checks";function it(at){return void 0===at}function ft(at){return null===at}function nt(at){return Array.isArray(at)}function Nt(at){return"object"==typeof at&&null!==at}function jt(at){return"function"==typeof at}function Se(at,Qt){return at===Qt}function V(at,Qt,gt){for(let Lt=0;Ltpn.release&&"function"==typeof pn.release),$i=at(function(...pn){return Ci.apply(null,pn)}),An=Ee(function(pn,Pn){return Qt.stateFn.apply(null,[pn,ui,Pn,$i])});return Object.assign(An.memoized,{release:function(){An.reset(),$i.reset(),Wi.forEach(pn=>pn.release())},projector:$i.memoized,setResult:An.setResult,clearResult:An.clearResult})}}(Ee)(...at)}function $t(at,Qt,gt,Lt){if(void 0===gt){const Ci=Qt.map(Wi=>Wi(at));return Lt.memoized.apply(null,Ci)}const ui=Qt.map(Ci=>Ci(at,gt));return Lt.memoized.apply(null,[...ui,gt])}function Xt(at){return et(Qt=>{const gt=Qt[at];return(0,e.X6Q)()&&!(at in Qt)&&console.warn(`@ngrx/store: The feature name "${at}" does not exist in the state, therefore createFeatureSelector cannot access it. Be sure it is imported in a loaded module using StoreModule.forRoot('${at}', ...) or StoreModule.forFeature('${at}', ...). If the default state is intended to be undefined, as is the case with router state, this development-only warning message can be ignored.`),gt},Qt=>Qt)}function ot(at){Object.freeze(at);const Qt=jt(at);return Object.getOwnPropertyNames(at).forEach(gt=>{if(!gt.startsWith("\u0275")&&function(at,Qt){return Object.prototype.hasOwnProperty.call(at,Qt)}(at,gt)&&(!Qt||"caller"!==gt&&"callee"!==gt&&"arguments"!==gt)){const Lt=at[gt];(Nt(Lt)||jt(Lt))&&!Object.isFrozen(Lt)&&ot(Lt)}}),at}function li(at,Qt=[]){return(it(at)||ft(at))&&0===Qt.length?{path:["root"],value:at}:Object.keys(at).reduce((Lt,ui)=>{if(Lt)return Lt;const Ci=at[ui];return function(at){return jt(at)&&at.hasOwnProperty("\u0275cmp")}(Ci)?Lt:!(it(Ci)||ft(Ci)||function(at){return"number"==typeof at}(Ci)||function(at){return"boolean"==typeof at}(Ci)||function(at){return"string"==typeof at}(Ci)||nt(Ci))&&(function(at){if(!function(at){return Nt(at)&&!nt(at)}(at))return!1;const Qt=Object.getPrototypeOf(at);return Qt===Object.prototype||null===Qt}(Ci)?li(Ci,[...Qt,ui]):{path:[...Qt,ui],value:Ci})},!1)}function Ut(at,Qt){if(!1===at)return;const gt=at.path.join("."),Lt=new Error(`Detected unserializable ${Qt} at "${gt}". ${ht}#strict${Qt}serializability`);throw Lt.value=at.value,Lt.unserializablePath=gt,Lt}function Si(at){return(0,e.X6Q)()?Object.assign({strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!0,strictActionImmutability:!0,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1},at):{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!1,strictActionImmutability:!1,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1}}function ai({strictActionSerializability:at,strictStateSerializability:Qt}){return gt=>at||Qt?function(at,Qt){return function(gt,Lt){Qt.action(Lt)&&Ut(li(Lt),"action");const ui=at(gt,Lt);return Qt.state()&&Ut(li(ui),"state"),ui}}(gt,{action:Lt=>at&&!rn(Lt),state:()=>Qt}):gt}function ci({strictActionImmutability:at,strictStateImmutability:Qt}){return gt=>at||Qt?function(at,Qt){return function(gt,Lt){const ui=Qt.action(Lt)?ot(Lt):Lt,Ci=at(gt,ui);return Qt.state()?ot(Ci):Ci}}(gt,{action:Lt=>at&&!rn(Lt),state:()=>Qt}):gt}function rn(at){return at.type.startsWith("@ngrx")}function Vi({strictActionWithinNgZone:at}){return Qt=>at?function(at,Qt){return function(gt,Lt){if(Qt.action(Lt)&&!e.R0b.isInAngularZone())throw new Error(`Action '${Lt.type}' running outside NgZone. ${ht}#strictactionwithinngzone`);return at(gt,Lt)}}(Qt,{action:gt=>at&&!rn(gt)}):Qt}function Di(at){return[{provide:F,useValue:at},{provide:J,useFactory:Ke,deps:[F]},{provide:B,deps:[J],useFactory:Si},{provide:r,multi:!0,deps:[B],useFactory:ci},{provide:r,multi:!0,deps:[B],useFactory:ai},{provide:r,multi:!0,deps:[B],useFactory:Vi}]}function Xi(){return[{provide:te,multi:!0,deps:[B],useFactory:mt}]}function Ke(at){return at}function mt(at){if(!at.strictActionTypeUniqueness)return;const Qt=Object.entries(R).filter(([,gt])=>gt>1).map(([gt])=>gt);if(Qt.length)throw new Error(`Action types are registered more than once, ${Qt.map(gt=>`"${gt}"`).join(", ")}. ${ht}#strictactiontypeuniqueness`)}let be=(()=>{class at{constructor(gt,Lt,ui,Ci,Wi,$i){}}return at.\u0275fac=function(gt){return new(gt||at)(e.LFG(ee),e.LFG(we),e.LFG(Ne),e.LFG(X),e.LFG(_e,8),e.LFG(te,8))},at.\u0275mod=e.oAB({type:at}),at.\u0275inj=e.cJS({}),at})(),qe=(()=>{class at{constructor(gt,Lt,ui,Ci,Wi){this.features=gt,this.featureReducers=Lt,this.reducerManager=ui;const $i=gt.map((An,Ln)=>{const Pn=Lt.shift()[Ln];return Object.assign(Object.assign({},An),{reducers:Pn,initialState:Rt(An.initialState)})});ui.addFeatures($i)}ngOnDestroy(){this.reducerManager.removeFeatures(this.features)}}return at.\u0275fac=function(gt){return new(gt||at)(e.LFG(_),e.LFG(I),e.LFG(We),e.LFG(be),e.LFG(te,8))},at.\u0275mod=e.oAB({type:at}),at.\u0275inj=e.cJS({}),at})(),vt=(()=>{class at{static forRoot(gt,Lt={}){return{ngModule:be,providers:[{provide:_e,useFactory:Ri,deps:[[X,new e.FiY,new e.tp0]]},{provide:fe,useValue:Lt.initialState},{provide:de,useFactory:Rt,deps:[fe]},{provide:y,useValue:gt},{provide:a,useExisting:gt instanceof e.OlP?gt:y},{provide:oe,deps:[e.zs3,y,[new e.tBr(a)]],useFactory:me},{provide:x,useValue:Lt.metaReducers?Lt.metaReducers:[]},{provide:b,deps:[r,x],useFactory:yi},{provide:se,useValue:Lt.reducerFactory?Lt.reducerFactory:xe},{provide:ne,deps:[se,b],useFactory:q},ie,yt,Ve,Y,he,Di(Lt.runtimeChecks),Xi()]}}static forFeature(gt,Lt,ui={}){return{ngModule:qe,providers:[{provide:u,multi:!0,useValue:gt instanceof Object?{}:ui},{provide:i,multi:!0,useValue:{key:gt instanceof Object?gt.name:gt,reducerFactory:ui instanceof e.OlP||!ui.reducerFactory?xe:ui.reducerFactory,metaReducers:ui instanceof e.OlP||!ui.metaReducers?[]:ui.metaReducers,initialState:ui instanceof e.OlP||!ui.initialState?void 0:ui.initialState}},{provide:_,deps:[e.zs3,u,i],useFactory:$e},{provide:p,multi:!0,useValue:gt instanceof Object?gt.reducer:Lt},{provide:L,multi:!0,useExisting:Lt instanceof e.OlP?Lt:p},{provide:I,multi:!0,deps:[e.zs3,p,[new e.tBr(L)]],useFactory:St},Xi()]}}}return at.\u0275fac=function(gt){return new(gt||at)},at.\u0275mod=e.oAB({type:at}),at.\u0275inj=e.cJS({}),at})();function me(at,Qt){return Qt instanceof e.OlP?at.get(Qt):Qt}function $e(at,Qt,gt){return gt.map((Lt,ui)=>{if(Qt[ui]instanceof e.OlP){const Ci=at.get(Qt[ui]);return{key:Lt.key,reducerFactory:Ci.reducerFactory?Ci.reducerFactory:xe,metaReducers:Ci.metaReducers?Ci.metaReducers:[],initialState:Ci.initialState}}return Lt})}function St(at,Qt){return Qt.map(Lt=>Lt instanceof e.OlP?at.get(Lt):Lt)}function Rt(at){return"function"==typeof at?at():at}function yi(at,Qt){return at.concat(Qt)}function Ri(at){if(at)throw new TypeError("StoreModule.forRoot() called twice. Feature modules should use StoreModule.forFeature() instead.");return"guarded"}function Ii(...at){return{reducer:at.pop(),types:at.map(Lt=>Lt.type)}}function Ki(at,...Qt){const gt=new Map;for(const Lt of Qt)for(const ui of Lt.types){const Ci=gt.get(ui);gt.set(ui,Ci?($i,An)=>Lt.reducer(Ci($i,An),An):Lt.reducer)}return function(Lt=at,ui){const Ci=gt.get(ui.type);return Ci?Ci(Lt,ui):Lt}}},159:(Ue,K,m)=>{"use strict";m.d(K,{uU:()=>o,OF:()=>O});var e=m(5e3),t=m(9808),v=m(655),M=m(3259);function s(T,R){if(1&T&&e._UZ(0,"canvas",1),2&T){const S=e.oxw();e.Q6J("qrCode",S.value)("qrCodeErrorCorrectionLevel",S.errorCorrectionLevel)("qrCodeCenterImageSrc",S.centerImageSrc)("qrCodeCenterImageWidth",S.centerImageSize)("qrCodeCenterImageHeight",S.centerImageSize)("qrCodeMargin",S.margin)("width",S.size)("height",S.size)("darkColor",S.darkColor)("lightColor",S.lightColor)}}const C=/^#(?:[0-9a-fA-F]{3,4}){1,2}$/;let c=(()=>{class T{constructor(S){this.viewContainerRef=S,this.errorCorrectionLevel=T.DEFAULT_ERROR_CORRECTION_LEVEL,this.darkColor="#000000FF",this.lightColor="#FFFFFFFF",this.margin=16}ngOnChanges(){var S,D;return(0,v.mG)(this,void 0,void 0,function*(){if(!this.value)return;this.version&&this.version>40?(console.warn("[qrCode] max version is 40, clamping"),this.version=40):this.version&&this.version<1?(console.warn("[qrCode] min version is 1, clamping"),this.version=1):void 0!==this.version&&isNaN(this.version)&&(console.warn("[qrCode] version should be set to a number, defaulting to auto"),this.version=void 0);const w=this.viewContainerRef.element.nativeElement;if(!w)return;const U=w.getContext("2d");U&&U.clearRect(0,0,U.canvas.width,U.canvas.height);const G=null!==(S=this.errorCorrectionLevel)&&void 0!==S?S:T.DEFAULT_ERROR_CORRECTION_LEVEL,W=C.test(this.darkColor)?this.darkColor:void 0,ee=C.test(this.lightColor)?this.lightColor:void 0;(0,e.X6Q)()&&(!W&&this.darkColor&&console.error("[ng-qrcode] darkColor set to invalid value, must be RGBA hex color string, eg: #3050A1FF"),!ee&&this.lightColor&&console.error("[ng-qrcode] lightColor set to invalid value, must be RGBA hex color string, eg: #3050A130")),yield M.toCanvas(w,this.value,{version:this.version,errorCorrectionLevel:G,width:this.width,margin:this.margin,color:{dark:W,light:ee}});const ie=this.centerImageSrc,_e=P(this.centerImageWidth,T.DEFAULT_CENTER_IMAGE_SIZE),fe=P(this.centerImageHeight,T.DEFAULT_CENTER_IMAGE_SIZE);if(ie&&U){this.centerImage||(this.centerImage=new Image(_e,fe)),ie!==(null===(D=this.centerImage)||void 0===D?void 0:D.src)&&(this.centerImage.src=ie),_e!==this.centerImage.width&&(this.centerImage.width=_e),fe!==this.centerImage.height&&(this.centerImage.height=fe);const de=this.centerImage;de.onload=()=>{U.drawImage(de,w.width/2-_e/2,w.height/2-fe/2,_e,fe)}}})}}return T.DEFAULT_ERROR_CORRECTION_LEVEL="M",T.DEFAULT_CENTER_IMAGE_SIZE=40,T.\u0275fac=function(S){return new(S||T)(e.Y36(e.s_b))},T.\u0275dir=e.lG2({type:T,selectors:[["canvas","qrCode",""]],inputs:{value:["qrCode","value"],version:["qrCodeVersion","version"],errorCorrectionLevel:["qrCodeErrorCorrectionLevel","errorCorrectionLevel"],width:"width",height:"height",darkColor:"darkColor",lightColor:"lightColor",centerImageSrc:["qrCodeCenterImageSrc","centerImageSrc"],centerImageWidth:["qrCodeCenterImageWidth","centerImageWidth"],centerImageHeight:["qrCodeCenterImageHeight","centerImageHeight"],margin:["qrCodeMargin","margin"]},features:[e.TTD]}),T})();function P(T,R){return void 0===T||""===T?R:"string"==typeof T?parseInt(T,10):T}let o=(()=>{class T{}return T.\u0275fac=function(S){return new(S||T)},T.\u0275cmp=e.Xpm({type:T,selectors:[["qr-code"]],inputs:{value:"value",size:"size",darkColor:"darkColor",lightColor:"lightColor",errorCorrectionLevel:"errorCorrectionLevel",centerImageSrc:"centerImageSrc",centerImageSize:"centerImageSize",margin:"margin"},decls:1,vars:1,consts:[[3,"qrCode","qrCodeErrorCorrectionLevel","qrCodeCenterImageSrc","qrCodeCenterImageWidth","qrCodeCenterImageHeight","qrCodeMargin","width","height","darkColor","lightColor",4,"ngIf"],[3,"qrCode","qrCodeErrorCorrectionLevel","qrCodeCenterImageSrc","qrCodeCenterImageWidth","qrCodeCenterImageHeight","qrCodeMargin","width","height","darkColor","lightColor"]],template:function(S,D){1&S&&e.YNc(0,s,1,10,"canvas",0),2&S&&e.Q6J("ngIf",D.value)},directives:[t.O5,c],encapsulation:2}),T})(),O=(()=>{class T{}return T.\u0275fac=function(S){return new(S||T)},T.\u0275mod=e.oAB({type:T}),T.\u0275inj=e.cJS({imports:[[t.ez]]}),T})()},4946:Ue=>{"use strict";Ue.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},5207:Ue=>{"use strict";Ue.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},1308:Ue=>{"use strict";Ue.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},9799:Ue=>{"use strict";Ue.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},8597:Ue=>{"use strict";Ue.exports={i8:"6.5.4"}},2562:Ue=>{"use strict";Ue.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')}},Ue=>{Ue(Ue.s=8990)}]); \ No newline at end of file diff --git a/frontend/polyfills.6d989da208bd6fd1.js b/frontend/polyfills.6d989da208bd6fd1.js new file mode 100644 index 00000000..9803e733 --- /dev/null +++ b/frontend/polyfills.6d989da208bd6fd1.js @@ -0,0 +1 @@ +(self.webpackChunkRTLApp=self.webpackChunkRTLApp||[]).push([[429],{7435:(qe,me,K)=>{"use strict";K(8583),window.global=window,window.global.Buffer=window.global.Buffer||K(3172).Buffer},5343:(qe,me)=>{"use strict";me.byteLength=function(g){var Z=L(g),j=Z[1];return 3*(Z[0]+j)/4-j},me.toByteArray=function(g){var Z,fe,q=L(g),j=q[0],Ie=q[1],_e=new Ce(function(g,Z,q){return 3*(Z+q)/4-q}(0,j,Ie)),ve=0,je=Ie>0?j-4:j;for(fe=0;fe>16&255,_e[ve++]=Z>>8&255,_e[ve++]=255&Z;return 2===Ie&&(Z=N[g.charCodeAt(fe)]<<2|N[g.charCodeAt(fe+1)]>>4,_e[ve++]=255&Z),1===Ie&&(Z=N[g.charCodeAt(fe)]<<10|N[g.charCodeAt(fe+1)]<<4|N[g.charCodeAt(fe+2)]>>2,_e[ve++]=Z>>8&255,_e[ve++]=255&Z),_e},me.fromByteArray=function(g){for(var Z,q=g.length,j=q%3,Ie=[],ve=0,je=q-j;veje?je:ve+16383));return 1===j?Ie.push(K[(Z=g[q-1])>>2]+K[Z<<4&63]+"=="):2===j&&Ie.push(K[(Z=(g[q-2]<<8)+g[q-1])>>10]+K[Z>>4&63]+K[Z<<2&63]+"="),Ie.join("")};for(var K=[],N=[],Ce="undefined"!=typeof Uint8Array?Uint8Array:Array,Ae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ie=0,ye=Ae.length;ie0)throw new Error("Invalid string. Length must be a multiple of 4");var q=g.indexOf("=");return-1===q&&(q=Z),[q,q===Z?0:4-q%4]}function ce(g){return K[g>>18&63]+K[g>>12&63]+K[g>>6&63]+K[63&g]}function le(g,Z,q){for(var Ie=[],_e=Z;_e{"use strict";var N=K(5343),Ce=K(8461),Ae="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;me.Buffer=l,me.SlowBuffer=function(r){return+r!=r&&(r=0),l.alloc(+r)},me.INSPECT_MAX_BYTES=50;var ie=2147483647;function L(r){if(r>ie)throw new RangeError('The value "'+r+'" is invalid for option "size"');var e=new Uint8Array(r);return Object.setPrototypeOf(e,l.prototype),e}function l(r,e,t){if("number"==typeof r){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return le(r)}return ue(r,e,t)}function ue(r,e,t){if("string"==typeof r)return function(r,e){if(("string"!=typeof e||""===e)&&(e="utf8"),!l.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var t=0|ve(r,e),n=L(t),s=n.write(r,e);return s!==t&&(n=n.slice(0,s)),n}(r,e);if(ArrayBuffer.isView(r))return function(r){if(Le(r,Uint8Array)){var e=new Uint8Array(r);return q(e.buffer,e.byteOffset,e.byteLength)}return g(r)}(r);if(null==r)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof r);if(Le(r,ArrayBuffer)||r&&Le(r.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(Le(r,SharedArrayBuffer)||r&&Le(r.buffer,SharedArrayBuffer)))return q(r,e,t);if("number"==typeof r)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=r.valueOf&&r.valueOf();if(null!=n&&n!==r)return l.from(n,e,t);var s=function(r){if(l.isBuffer(r)){var e=0|Ie(r.length),t=L(e);return 0===t.length||r.copy(t,0,0,e),t}return void 0!==r.length?"number"!=typeof r.length||at(r.length)?L(0):g(r):"Buffer"===r.type&&Array.isArray(r.data)?g(r.data):void 0}(r);if(s)return s;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof r[Symbol.toPrimitive])return l.from(r[Symbol.toPrimitive]("string"),e,t);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof r)}function Ee(r){if("number"!=typeof r)throw new TypeError('"size" argument must be of type number');if(r<0)throw new RangeError('The value "'+r+'" is invalid for option "size"')}function le(r){return Ee(r),L(r<0?0:0|Ie(r))}function g(r){for(var e=r.length<0?0:0|Ie(r.length),t=L(e),n=0;n=ie)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ie.toString(16)+" bytes");return 0|r}function ve(r,e){if(l.isBuffer(r))return r.length;if(ArrayBuffer.isView(r)||Le(r,ArrayBuffer))return r.byteLength;if("string"!=typeof r)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof r);var t=r.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===t)return 0;for(var s=!1;;)switch(e){case"ascii":case"latin1":case"binary":return t;case"utf8":case"utf-8":return $e(r).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*t;case"hex":return t>>>1;case"base64":return st(r).length;default:if(s)return n?-1:$e(r).length;e=(""+e).toLowerCase(),s=!0}}function je(r,e,t){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length||((void 0===t||t>this.length)&&(t=this.length),t<=0)||(t>>>=0)<=(e>>>=0))return"";for(r||(r="utf8");;)switch(r){case"hex":return pt(this,e,t);case"utf8":case"utf-8":return Be(this,e,t);case"ascii":return wt(this,e,t);case"latin1":case"binary":return Ze(this,e,t);case"base64":return ht(this,e,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return it(this,e,t);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=!0}}function fe(r,e,t){var n=r[e];r[e]=r[t],r[t]=n}function nt(r,e,t,n,s){if(0===r.length)return-1;if("string"==typeof t?(n=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),at(t=+t)&&(t=s?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(s)return-1;t=r.length-1}else if(t<0){if(!s)return-1;t=0}if("string"==typeof e&&(e=l.from(e,n)),l.isBuffer(e))return 0===e.length?-1:Ye(r,e,t,n,s);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):Ye(r,[e],t,n,s);throw new TypeError("val must be string, number or Buffer")}function Ye(r,e,t,n,s){var ae,d=1,E=r.length,G=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(r.length<2||e.length<2)return-1;d=2,E/=2,G/=2,t/=2}function Q(_t,Ve){return 1===d?_t[Ve]:_t.readUInt16BE(Ve*d)}if(s){var ke=-1;for(ae=t;aeE&&(t=E-G),ae=t;ae>=0;ae--){for(var re=!0,et=0;ets&&(n=s):n=s;var d=e.length;n>d/2&&(n=d/2);for(var E=0;E>8,d.push(t%256),d.push(n);return d}(e,r.length-t),r,t,n)}function ht(r,e,t){return N.fromByteArray(0===e&&t===r.length?r:r.slice(e,t))}function Be(r,e,t){t=Math.min(r.length,t);for(var n=[],s=e;s239?4:d>223?3:d>191?2:1;if(s+G<=t)switch(G){case 1:d<128&&(E=d);break;case 2:128==(192&(Q=r[s+1]))&&(re=(31&d)<<6|63&Q)>127&&(E=re);break;case 3:ae=r[s+2],128==(192&(Q=r[s+1]))&&128==(192&ae)&&(re=(15&d)<<12|(63&Q)<<6|63&ae)>2047&&(re<55296||re>57343)&&(E=re);break;case 4:ae=r[s+2],ke=r[s+3],128==(192&(Q=r[s+1]))&&128==(192&ae)&&128==(192&ke)&&(re=(15&d)<<18|(63&Q)<<12|(63&ae)<<6|63&ke)>65535&&re<1114112&&(E=re)}null===E?(E=65533,G=1):E>65535&&(n.push((E-=65536)>>>10&1023|55296),E=56320|1023&E),n.push(E),s+=G}return function(r){var e=r.length;if(e<=4096)return String.fromCharCode.apply(String,r);for(var t="",n=0;nn)&&(t=n);for(var s="",d=e;dt)throw new RangeError("Trying to access beyond buffer length")}function Se(r,e,t,n,s,d){if(!l.isBuffer(r))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>s||er.length)throw new RangeError("Index out of range")}function Ge(r,e,t,n,s,d){if(t+n>r.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function dt(r,e,t,n,s){return e=+e,t>>>=0,s||Ge(r,0,t,4),Ce.write(r,e,t,n,23,4),t+4}function De(r,e,t,n,s){return e=+e,t>>>=0,s||Ge(r,0,t,8),Ce.write(r,e,t,n,52,8),t+8}me.kMaxLength=ie,!(l.TYPED_ARRAY_SUPPORT=function(){try{var r=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(r,e),42===r.foo()}catch(t){return!1}}())&&"undefined"!=typeof console&&"function"==typeof console.error&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),l.poolSize=8192,l.from=function(r,e,t){return ue(r,e,t)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(r,e,t){return function(r,e,t){return Ee(r),r<=0?L(r):void 0!==e?"string"==typeof t?L(r).fill(e,t):L(r).fill(e):L(r)}(r,e,t)},l.allocUnsafe=function(r){return le(r)},l.allocUnsafeSlow=function(r){return le(r)},l.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==l.prototype},l.compare=function(e,t){if(Le(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),Le(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(e)||!l.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var n=e.length,s=t.length,d=0,E=Math.min(n,s);ds.length?l.from(E).copy(s,d):Uint8Array.prototype.set.call(s,E,d);else{if(!l.isBuffer(E))throw new TypeError('"list" argument must be an Array of Buffers');E.copy(s,d)}d+=E.length}return s},l.byteLength=ve,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;tt&&(e+=" ... "),""},Ae&&(l.prototype[Ae]=l.prototype.inspect),l.prototype.compare=function(e,t,n,s,d){if(Le(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===s&&(s=0),void 0===d&&(d=this.length),t<0||n>e.length||s<0||d>this.length)throw new RangeError("out of range index");if(s>=d&&t>=n)return 0;if(s>=d)return-1;if(t>=n)return 1;if(this===e)return 0;for(var E=(d>>>=0)-(s>>>=0),G=(n>>>=0)-(t>>>=0),Q=Math.min(E,G),ae=this.slice(s,d),ke=e.slice(t,n),re=0;re>>=0,isFinite(n)?(n>>>=0,void 0===s&&(s="utf8")):(s=n,n=void 0)}var d=this.length-t;if((void 0===n||n>d)&&(n=d),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");s||(s="utf8");for(var E=!1;;)switch(s){case"hex":return ot(this,e,t,n);case"utf8":case"utf-8":return ut(this,e,t,n);case"ascii":case"latin1":case"binary":return Ke(this,e,t,n);case"base64":return lt(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ft(this,e,t,n);default:if(E)throw new TypeError("Unknown encoding: "+s);s=(""+s).toLowerCase(),E=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},l.prototype.slice=function(e,t){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||Te(e,t,this.length);for(var s=this[e],d=1,E=0;++E>>=0,t>>>=0,n||Te(e,t,this.length);for(var s=this[e+--t],d=1;t>0&&(d*=256);)s+=this[e+--t]*d;return s},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||Te(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||Te(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||Te(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||Te(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||Te(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||Te(e,t,this.length);for(var s=this[e],d=1,E=0;++E=(d*=128)&&(s-=Math.pow(2,8*t)),s},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||Te(e,t,this.length);for(var s=t,d=1,E=this[e+--s];s>0&&(d*=256);)E+=this[e+--s]*d;return E>=(d*=128)&&(E-=Math.pow(2,8*t)),E},l.prototype.readInt8=function(e,t){return e>>>=0,t||Te(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||Te(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||Te(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||Te(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||Te(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return e>>>=0,t||Te(e,4,this.length),Ce.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||Te(e,4,this.length),Ce.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||Te(e,8,this.length),Ce.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||Te(e,8,this.length),Ce.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,s){e=+e,t>>>=0,n>>>=0,s||Se(this,e,t,n,Math.pow(2,8*n)-1,0);var E=1,G=0;for(this[t]=255&e;++G>>=0,n>>>=0,s||Se(this,e,t,n,Math.pow(2,8*n)-1,0);var E=n-1,G=1;for(this[t+E]=255&e;--E>=0&&(G*=256);)this[t+E]=e/G&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeIntLE=function(e,t,n,s){if(e=+e,t>>>=0,!s){var d=Math.pow(2,8*n-1);Se(this,e,t,n,d-1,-d)}var E=0,G=1,Q=0;for(this[t]=255&e;++E>0)-Q&255;return t+n},l.prototype.writeIntBE=function(e,t,n,s){if(e=+e,t>>>=0,!s){var d=Math.pow(2,8*n-1);Se(this,e,t,n,d-1,-d)}var E=n-1,G=1,Q=0;for(this[t+E]=255&e;--E>=0&&(G*=256);)e<0&&0===Q&&0!==this[t+E+1]&&(Q=1),this[t+E]=(e/G>>0)-Q&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||Se(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeFloatLE=function(e,t,n){return dt(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return dt(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return De(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return De(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,s){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),!s&&0!==s&&(s=this.length),t>=e.length&&(t=e.length),t||(t=0),s>0&&s=this.length)throw new RangeError("Index out of range");if(s<0)throw new RangeError("sourceEnd out of bounds");s>this.length&&(s=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(E=t;E55295&&t<57344){if(!s){if(t>56319){(e-=3)>-1&&d.push(239,191,189);continue}if(E+1===n){(e-=3)>-1&&d.push(239,191,189);continue}s=t;continue}if(t<56320){(e-=3)>-1&&d.push(239,191,189),s=t;continue}t=65536+(s-55296<<10|t-56320)}else s&&(e-=3)>-1&&d.push(239,191,189);if(s=null,t<128){if((e-=1)<0)break;d.push(t)}else if(t<2048){if((e-=2)<0)break;d.push(t>>6|192,63&t|128)}else if(t<65536){if((e-=3)<0)break;d.push(t>>12|224,t>>6&63|128,63&t|128)}else{if(!(t<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;d.push(t>>18|240,t>>12&63|128,t>>6&63|128,63&t|128)}}return d}function st(r){return N.toByteArray(function(r){if((r=(r=r.split("=")[0]).trim().replace(yt,"")).length<2)return"";for(;r.length%4!=0;)r+="=";return r}(r))}function Qe(r,e,t,n){for(var s=0;s=e.length||s>=r.length);++s)e[s+t]=r[s];return s}function Le(r,e){return r instanceof e||null!=r&&null!=r.constructor&&null!=r.constructor.name&&r.constructor.name===e.name}function at(r){return r!=r}var kt=function(){for(var r="0123456789abcdef",e=new Array(256),t=0;t<16;++t)for(var n=16*t,s=0;s<16;++s)e[n+s]=r[t]+r[s];return e}()},8461:(qe,me)=>{me.read=function(K,N,Ce,Ae,ie){var ye,L,l=8*ie-Ae-1,ue=(1<>1,ce=-7,le=Ce?ie-1:0,Pe=Ce?-1:1,g=K[N+le];for(le+=Pe,ye=g&(1<<-ce)-1,g>>=-ce,ce+=l;ce>0;ye=256*ye+K[N+le],le+=Pe,ce-=8);for(L=ye&(1<<-ce)-1,ye>>=-ce,ce+=Ae;ce>0;L=256*L+K[N+le],le+=Pe,ce-=8);if(0===ye)ye=1-Ee;else{if(ye===ue)return L?NaN:1/0*(g?-1:1);L+=Math.pow(2,Ae),ye-=Ee}return(g?-1:1)*L*Math.pow(2,ye-Ae)},me.write=function(K,N,Ce,Ae,ie,ye){var L,l,ue,Ee=8*ye-ie-1,ce=(1<>1,Pe=23===ie?Math.pow(2,-24)-Math.pow(2,-77):0,g=Ae?0:ye-1,Z=Ae?1:-1,q=N<0||0===N&&1/N<0?1:0;for(N=Math.abs(N),isNaN(N)||N===1/0?(l=isNaN(N)?1:0,L=ce):(L=Math.floor(Math.log(N)/Math.LN2),N*(ue=Math.pow(2,-L))<1&&(L--,ue*=2),(N+=L+le>=1?Pe/ue:Pe*Math.pow(2,1-le))*ue>=2&&(L++,ue/=2),L+le>=ce?(l=0,L=ce):L+le>=1?(l=(N*ue-1)*Math.pow(2,ie),L+=le):(l=N*Math.pow(2,le-1)*Math.pow(2,ie),L=0));ie>=8;K[Ce+g]=255&l,g+=Z,l/=256,ie-=8);for(L=L<0;K[Ce+g]=255&L,g+=Z,L/=256,Ee-=8);K[Ce+g-Z]|=128*q}},8583:()=>{"use strict";!function(o){const a=o.performance;function h(X){a&&a.mark&&a.mark(X)}function c(X,x){a&&a.measure&&a.measure(X,x)}h("Zone");const p=o.__Zone_symbol_prefix||"__zone_symbol__";function _(X){return p+X}const T=!0===o[_("forceDuplicateZoneCheck")];if(o.Zone){if(T||"function"!=typeof o.Zone.__symbol__)throw new Error("Zone already loaded.");return o.Zone}let k=(()=>{class X{constructor(i,u){this._parent=i,this._name=u?u.name||"unnamed":"",this._properties=u&&u.properties||{},this._zoneDelegate=new I(this,this._parent&&this._parent._zoneDelegate,u)}static assertZonePatched(){if(o.Promise!==Fe.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let i=X.current;for(;i.parent;)i=i.parent;return i}static get current(){return oe.zone}static get currentTask(){return Me}static __load_patch(i,u,R=!1){if(Fe.hasOwnProperty(i)){if(!R&&T)throw Error("Already loaded patch: "+i)}else if(!o["__Zone_disable_"+i]){const B="Zone:"+i;h(B),Fe[i]=u(o,X,ze),c(B,B)}}get parent(){return this._parent}get name(){return this._name}get(i){const u=this.getZoneWith(i);if(u)return u._properties[i]}getZoneWith(i){let u=this;for(;u;){if(u._properties.hasOwnProperty(i))return u;u=u._parent}return null}fork(i){if(!i)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,i)}wrap(i,u){if("function"!=typeof i)throw new Error("Expecting function got: "+i);const R=this._zoneDelegate.intercept(this,i,u),B=this;return function(){return B.runGuarded(R,this,arguments,u)}}run(i,u,R,B){oe={parent:oe,zone:this};try{return this._zoneDelegate.invoke(this,i,u,R,B)}finally{oe=oe.parent}}runGuarded(i,u=null,R,B){oe={parent:oe,zone:this};try{try{return this._zoneDelegate.invoke(this,i,u,R,B)}catch(Re){if(this._zoneDelegate.handleError(this,Re))throw Re}}finally{oe=oe.parent}}runTask(i,u,R){if(i.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(i.zone||se).name+"; Execution: "+this.name+")");if(i.state===ee&&(i.type===M||i.type===$))return;const B=i.state!=xe;B&&i._transitionTo(xe,z),i.runCount++;const Re=Me;Me=i,oe={parent:oe,zone:this};try{i.type==$&&i.data&&!i.data.isPeriodic&&(i.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,i,u,R)}catch(m){if(this._zoneDelegate.handleError(this,m))throw m}}finally{i.state!==ee&&i.state!==be&&(i.type==M||i.data&&i.data.isPeriodic?B&&i._transitionTo(z,xe):(i.runCount=0,this._updateTaskCount(i,-1),B&&i._transitionTo(ee,xe,ee))),oe=oe.parent,Me=Re}}scheduleTask(i){if(i.zone&&i.zone!==this){let R=this;for(;R;){if(R===i.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${i.zone.name}`);R=R.parent}}i._transitionTo(we,ee);const u=[];i._zoneDelegates=u,i._zone=this;try{i=this._zoneDelegate.scheduleTask(this,i)}catch(R){throw i._transitionTo(be,we,ee),this._zoneDelegate.handleError(this,R),R}return i._zoneDelegates===u&&this._updateTaskCount(i,1),i.state==we&&i._transitionTo(z,we),i}scheduleMicroTask(i,u,R,B){return this.scheduleTask(new b(D,i,u,R,B,void 0))}scheduleMacroTask(i,u,R,B,Re){return this.scheduleTask(new b($,i,u,R,B,Re))}scheduleEventTask(i,u,R,B,Re){return this.scheduleTask(new b(M,i,u,R,B,Re))}cancelTask(i){if(i.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(i.zone||se).name+"; Execution: "+this.name+")");i._transitionTo(J,z,xe);try{this._zoneDelegate.cancelTask(this,i)}catch(u){throw i._transitionTo(be,J),this._zoneDelegate.handleError(this,u),u}return this._updateTaskCount(i,-1),i._transitionTo(ee,J),i.runCount=0,i}_updateTaskCount(i,u){const R=i._zoneDelegates;-1==u&&(i._zoneDelegates=null);for(let B=0;BX.hasTask(i,u),onScheduleTask:(X,x,i,u)=>X.scheduleTask(i,u),onInvokeTask:(X,x,i,u,R,B)=>X.invokeTask(i,u,R,B),onCancelTask:(X,x,i,u)=>X.cancelTask(i,u)};class I{constructor(x,i,u){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=x,this._parentDelegate=i,this._forkZS=u&&(u&&u.onFork?u:i._forkZS),this._forkDlgt=u&&(u.onFork?i:i._forkDlgt),this._forkCurrZone=u&&(u.onFork?this.zone:i._forkCurrZone),this._interceptZS=u&&(u.onIntercept?u:i._interceptZS),this._interceptDlgt=u&&(u.onIntercept?i:i._interceptDlgt),this._interceptCurrZone=u&&(u.onIntercept?this.zone:i._interceptCurrZone),this._invokeZS=u&&(u.onInvoke?u:i._invokeZS),this._invokeDlgt=u&&(u.onInvoke?i:i._invokeDlgt),this._invokeCurrZone=u&&(u.onInvoke?this.zone:i._invokeCurrZone),this._handleErrorZS=u&&(u.onHandleError?u:i._handleErrorZS),this._handleErrorDlgt=u&&(u.onHandleError?i:i._handleErrorDlgt),this._handleErrorCurrZone=u&&(u.onHandleError?this.zone:i._handleErrorCurrZone),this._scheduleTaskZS=u&&(u.onScheduleTask?u:i._scheduleTaskZS),this._scheduleTaskDlgt=u&&(u.onScheduleTask?i:i._scheduleTaskDlgt),this._scheduleTaskCurrZone=u&&(u.onScheduleTask?this.zone:i._scheduleTaskCurrZone),this._invokeTaskZS=u&&(u.onInvokeTask?u:i._invokeTaskZS),this._invokeTaskDlgt=u&&(u.onInvokeTask?i:i._invokeTaskDlgt),this._invokeTaskCurrZone=u&&(u.onInvokeTask?this.zone:i._invokeTaskCurrZone),this._cancelTaskZS=u&&(u.onCancelTask?u:i._cancelTaskZS),this._cancelTaskDlgt=u&&(u.onCancelTask?i:i._cancelTaskDlgt),this._cancelTaskCurrZone=u&&(u.onCancelTask?this.zone:i._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const R=u&&u.onHasTask;(R||i&&i._hasTaskZS)&&(this._hasTaskZS=R?u:A,this._hasTaskDlgt=i,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=x,u.onScheduleTask||(this._scheduleTaskZS=A,this._scheduleTaskDlgt=i,this._scheduleTaskCurrZone=this.zone),u.onInvokeTask||(this._invokeTaskZS=A,this._invokeTaskDlgt=i,this._invokeTaskCurrZone=this.zone),u.onCancelTask||(this._cancelTaskZS=A,this._cancelTaskDlgt=i,this._cancelTaskCurrZone=this.zone))}fork(x,i){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,x,i):new k(x,i)}intercept(x,i,u){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,x,i,u):i}invoke(x,i,u,R,B){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,x,i,u,R,B):i.apply(u,R)}handleError(x,i){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,x,i)}scheduleTask(x,i){let u=i;if(this._scheduleTaskZS)this._hasTaskZS&&u._zoneDelegates.push(this._hasTaskDlgtOwner),u=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,x,i),u||(u=i);else if(i.scheduleFn)i.scheduleFn(i);else{if(i.type!=D)throw new Error("Task is missing scheduleFn.");v(i)}return u}invokeTask(x,i,u,R){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,x,i,u,R):i.callback.apply(u,R)}cancelTask(x,i){let u;if(this._cancelTaskZS)u=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,x,i);else{if(!i.cancelFn)throw Error("Task is not cancelable");u=i.cancelFn(i)}return u}hasTask(x,i){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,x,i)}catch(u){this.handleError(x,u)}}_updateTaskCount(x,i){const u=this._taskCounts,R=u[x],B=u[x]=R+i;if(B<0)throw new Error("More tasks executed then were scheduled.");0!=R&&0!=B||this.hasTask(this.zone,{microTask:u.microTask>0,macroTask:u.macroTask>0,eventTask:u.eventTask>0,change:x})}}class b{constructor(x,i,u,R,B,Re){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=x,this.source=i,this.data=R,this.scheduleFn=B,this.cancelFn=Re,!u)throw new Error("callback is not defined");this.callback=u;const m=this;this.invoke=x===M&&R&&R.useG?b.invokeTask:function(){return b.invokeTask.call(o,m,this,arguments)}}static invokeTask(x,i,u){x||(x=this),Ue++;try{return x.runCount++,x.zone.runTask(x,i,u)}finally{1==Ue&&Y(),Ue--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(ee,we)}_transitionTo(x,i,u){if(this._state!==i&&this._state!==u)throw new Error(`${this.type} '${this.source}': can not transition to '${x}', expecting state '${i}'${u?" or '"+u+"'":""}, was '${this._state}'.`);this._state=x,x==ee&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const V=_("setTimeout"),H=_("Promise"),W=_("then");let C,he=[],ne=!1;function v(X){if(0===Ue&&0===he.length)if(C||o[H]&&(C=o[H].resolve(0)),C){let x=C[W];x||(x=C.then),x.call(C,Y)}else o[V](Y,0);X&&he.push(X)}function Y(){if(!ne){for(ne=!0;he.length;){const X=he;he=[];for(let x=0;xoe,onUnhandledError:pe,microtaskDrainDone:pe,scheduleMicroTask:v,showUncaughtError:()=>!k[_("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:pe,patchMethod:()=>pe,bindArguments:()=>[],patchThen:()=>pe,patchMacroTask:()=>pe,patchEventPrototype:()=>pe,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>pe,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>pe,wrapWithCurrentZone:()=>pe,filterProperties:()=>[],attachOriginToPatched:()=>pe,_redefineProperty:()=>pe,patchCallbacks:()=>pe};let oe={parent:null,zone:new k(null,null)},Me=null,Ue=0;function pe(){}c("Zone","Zone"),o.Zone=k}("undefined"!=typeof window&&window||"undefined"!=typeof self&&self||global);const me=Object.getOwnPropertyDescriptor,K=Object.defineProperty,N=Object.getPrototypeOf,Ce=Object.create,Ae=Array.prototype.slice,ie="addEventListener",ye="removeEventListener",L=Zone.__symbol__(ie),l=Zone.__symbol__(ye),ue="true",Ee="false",ce=Zone.__symbol__("");function le(o,a){return Zone.current.wrap(o,a)}function Pe(o,a,h,c,p){return Zone.current.scheduleMacroTask(o,a,h,c,p)}const g=Zone.__symbol__,Z="undefined"!=typeof window,q=Z?window:void 0,j=Z&&q||"object"==typeof self&&self||global,_e=[null];function ve(o,a){for(let h=o.length-1;h>=0;h--)"function"==typeof o[h]&&(o[h]=le(o[h],a+"_"+h));return o}function fe(o){return!o||!1!==o.writable&&!("function"==typeof o.get&&void 0===o.set)}const nt="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,Ye=!("nw"in j)&&void 0!==j.process&&"[object process]"==={}.toString.call(j.process),ot=!Ye&&!nt&&!(!Z||!q.HTMLElement),ut=void 0!==j.process&&"[object process]"==={}.toString.call(j.process)&&!nt&&!(!Z||!q.HTMLElement),Ke={},lt=function(o){if(!(o=o||j.event))return;let a=Ke[o.type];a||(a=Ke[o.type]=g("ON_PROPERTY"+o.type));const h=this||o.target||j,c=h[a];let p;if(ot&&h===q&&"error"===o.type){const _=o;p=c&&c.call(this,_.message,_.filename,_.lineno,_.colno,_.error),!0===p&&o.preventDefault()}else p=c&&c.apply(this,arguments),null!=p&&!p&&o.preventDefault();return p};function ft(o,a,h){let c=me(o,a);if(!c&&h&&me(h,a)&&(c={enumerable:!0,configurable:!0}),!c||!c.configurable)return;const p=g("on"+a+"patched");if(o.hasOwnProperty(p)&&o[p])return;delete c.writable,delete c.value;const _=c.get,T=c.set,k=a.substr(2);let A=Ke[k];A||(A=Ke[k]=g("ON_PROPERTY"+k)),c.set=function(I){let b=this;!b&&o===j&&(b=j),b&&(b[A]&&b.removeEventListener(k,lt),T&&T.apply(b,_e),"function"==typeof I?(b[A]=I,b.addEventListener(k,lt,!1)):b[A]=null)},c.get=function(){let I=this;if(!I&&o===j&&(I=j),!I)return null;const b=I[A];if(b)return b;if(_){let V=_&&_.call(this);if(V)return c.set.call(this,V),"function"==typeof I.removeAttribute&&I.removeAttribute(a),V}return null},K(o,a,c),o[p]=!0}function ht(o,a,h){if(a)for(let c=0;cfunction(T,k){const A=h(T,k);return A.cbIdx>=0&&"function"==typeof k[A.cbIdx]?Pe(A.name,k[A.cbIdx],A,p):_.apply(T,k)})}function Ze(o,a){o[g("OriginalDelegate")]=a}let pt=!1,it=!1;function Se(){if(pt)return it;pt=!0;try{const o=q.navigator.userAgent;(-1!==o.indexOf("MSIE ")||-1!==o.indexOf("Trident/")||-1!==o.indexOf("Edge/"))&&(it=!0)}catch(o){}return it}Zone.__load_patch("ZoneAwarePromise",(o,a,h)=>{const c=Object.getOwnPropertyDescriptor,p=Object.defineProperty,T=h.symbol,k=[],A=!0===o[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],I=T("Promise"),b=T("then");h.onUnhandledError=m=>{if(h.showUncaughtError()){const f=m&&m.rejection;f?console.error("Unhandled Promise rejection:",f instanceof Error?f.message:f,"; Zone:",m.zone.name,"; Task:",m.task&&m.task.source,"; Value:",f,f instanceof Error?f.stack:void 0):console.error(m)}},h.microtaskDrainDone=()=>{for(;k.length;){const m=k.shift();try{m.zone.runGuarded(()=>{throw m.throwOriginal?m.rejection:m})}catch(f){W(f)}}};const H=T("unhandledPromiseRejectionHandler");function W(m){h.onUnhandledError(m);try{const f=a[H];"function"==typeof f&&f.call(this,m)}catch(f){}}function he(m){return m&&m.then}function ne(m){return m}function C(m){return i.reject(m)}const v=T("state"),Y=T("value"),se=T("finally"),ee=T("parentPromiseValue"),we=T("parentPromiseState"),xe=null,J=!0,be=!1;function $(m,f){return y=>{try{oe(m,f,y)}catch(w){oe(m,!1,w)}}}const ze=T("currentTaskTrace");function oe(m,f,y){const w=function(){let m=!1;return function(y){return function(){m||(m=!0,y.apply(null,arguments))}}}();if(m===y)throw new TypeError("Promise resolved with itself");if(m[v]===xe){let P=null;try{("object"==typeof y||"function"==typeof y)&&(P=y&&y.then)}catch(O){return w(()=>{oe(m,!1,O)})(),m}if(f!==be&&y instanceof i&&y.hasOwnProperty(v)&&y.hasOwnProperty(Y)&&y[v]!==xe)Ue(y),oe(m,y[v],y[Y]);else if(f!==be&&"function"==typeof P)try{P.call(y,w($(m,f)),w($(m,!1)))}catch(O){w(()=>{oe(m,!1,O)})()}else{m[v]=f;const O=m[Y];if(m[Y]=y,m[se]===se&&f===J&&(m[v]=m[we],m[Y]=m[ee]),f===be&&y instanceof Error){const S=a.currentTask&&a.currentTask.data&&a.currentTask.data.__creationTrace__;S&&p(y,ze,{configurable:!0,enumerable:!1,writable:!0,value:S})}for(let S=0;S{try{const F=m[Y],U=!!y&&se===y[se];U&&(y[ee]=F,y[we]=O);const te=f.run(S,void 0,U&&S!==C&&S!==ne?[]:[F]);oe(y,!0,te)}catch(F){oe(y,!1,F)}},y)}const x=function(){};class i{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(f){return oe(new this(null),J,f)}static reject(f){return oe(new this(null),be,f)}static race(f){let y,w,P=new this((F,U)=>{y=F,w=U});function O(F){y(F)}function S(F){w(F)}for(let F of f)he(F)||(F=this.resolve(F)),F.then(O,S);return P}static all(f){return i.allWithCallback(f)}static allSettled(f){return(this&&this.prototype instanceof i?this:i).allWithCallback(f,{thenCallback:w=>({status:"fulfilled",value:w}),errorCallback:w=>({status:"rejected",reason:w})})}static allWithCallback(f,y){let w,P,O=new this((te,de)=>{w=te,P=de}),S=2,F=0;const U=[];for(let te of f){he(te)||(te=this.resolve(te));const de=F;try{te.then(Ne=>{U[de]=y?y.thenCallback(Ne):Ne,S--,0===S&&w(U)},Ne=>{y?(U[de]=y.errorCallback(Ne),S--,0===S&&w(U)):P(Ne)})}catch(Ne){P(Ne)}S++,F++}return S-=2,0===S&&w(U),O}constructor(f){const y=this;if(!(y instanceof i))throw new Error("Must be an instanceof Promise.");y[v]=xe,y[Y]=[];try{f&&f($(y,J),$(y,be))}catch(w){oe(y,!1,w)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return i}then(f,y){let w=this.constructor[Symbol.species];(!w||"function"!=typeof w)&&(w=this.constructor||i);const P=new w(x),O=a.current;return this[v]==xe?this[Y].push(O,P,f,y):pe(this,O,P,f,y),P}catch(f){return this.then(null,f)}finally(f){let y=this.constructor[Symbol.species];(!y||"function"!=typeof y)&&(y=i);const w=new y(x);w[se]=se;const P=a.current;return this[v]==xe?this[Y].push(P,w,f,f):pe(this,P,w,f,f),w}}i.resolve=i.resolve,i.reject=i.reject,i.race=i.race,i.all=i.all;const u=o[I]=o.Promise;o.Promise=i;const R=T("thenPatched");function B(m){const f=m.prototype,y=c(f,"then");if(y&&(!1===y.writable||!y.configurable))return;const w=f.then;f[b]=w,m.prototype.then=function(P,O){return new i((F,U)=>{w.call(this,F,U)}).then(P,O)},m[R]=!0}return h.patchThen=B,u&&(B(u),Oe(o,"fetch",m=>function(m){return function(f,y){let w=m.apply(f,y);if(w instanceof i)return w;let P=w.constructor;return P[R]||B(P),w}}(m))),Promise[a.__symbol__("uncaughtPromiseErrors")]=k,i}),Zone.__load_patch("toString",o=>{const a=Function.prototype.toString,h=g("OriginalDelegate"),c=g("Promise"),p=g("Error"),_=function(){if("function"==typeof this){const I=this[h];if(I)return"function"==typeof I?a.call(I):Object.prototype.toString.call(I);if(this===Promise){const b=o[c];if(b)return a.call(b)}if(this===Error){const b=o[p];if(b)return a.call(b)}}return a.call(this)};_[h]=a,Function.prototype.toString=_;const T=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":T.call(this)}});let Ge=!1;if("undefined"!=typeof window)try{const o=Object.defineProperty({},"passive",{get:function(){Ge=!0}});window.addEventListener("test",o,o),window.removeEventListener("test",o,o)}catch(o){Ge=!1}const dt={useG:!0},De={},yt={},Et=new RegExp("^"+ce+"(\\w+)(true|false)$"),$e=g("propagationStopped");function mt(o,a){const h=(a?a(o):o)+Ee,c=(a?a(o):o)+ue,p=ce+h,_=ce+c;De[o]={},De[o][Ee]=p,De[o][ue]=_}function vt(o,a,h){const c=h&&h.add||ie,p=h&&h.rm||ye,_=h&&h.listeners||"eventListeners",T=h&&h.rmAll||"removeAllListeners",k=g(c),A="."+c+":",V=function(C,v,Y){if(C.isRemoved)return;const se=C.callback;"object"==typeof se&&se.handleEvent&&(C.callback=we=>se.handleEvent(we),C.originalDelegate=se),C.invoke(C,v,[Y]);const ee=C.options;ee&&"object"==typeof ee&&ee.once&&v[p].call(v,Y.type,C.originalDelegate?C.originalDelegate:C.callback,ee)},H=function(C){if(!(C=C||o.event))return;const v=this||C.target||o,Y=v[De[C.type][Ee]];if(Y)if(1===Y.length)V(Y[0],v,C);else{const se=Y.slice();for(let ee=0;eefunction(p,_){p[$e]=!0,c&&c.apply(p,_)})}function Le(o,a,h,c,p){const _=Zone.__symbol__(c);if(a[_])return;const T=a[_]=a[c];a[c]=function(k,A,I){return A&&A.prototype&&p.forEach(function(b){const V=`${h}.${c}::`+b,H=A.prototype;if(H.hasOwnProperty(b)){const W=o.ObjectGetOwnPropertyDescriptor(H,b);W&&W.value?(W.value=o.wrapWithCurrentZone(W.value,V),o._redefineProperty(A.prototype,b,W)):H[b]&&(H[b]=o.wrapWithCurrentZone(H[b],V))}else H[b]&&(H[b]=o.wrapWithCurrentZone(H[b],V))}),T.call(a,k,A,I)},o.attachOriginToPatched(a[c],T)}const r=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],t=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],G=["load"],Q=["blur","error","focus","load","resize","scroll","messageerror"],ae=["bounce","finish","start"],ke=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],re=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],et=["close","error","open","message"],_t=["error","message"],Ve=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],r,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function Ct(o,a,h){if(!h||0===h.length)return a;const c=h.filter(_=>_.target===o);if(!c||0===c.length)return a;const p=c[0].ignoreProperties;return a.filter(_=>-1===p.indexOf(_))}function ge(o,a,h,c){o&&ht(o,Ct(o,a,h),c)}Zone.__load_patch("util",(o,a,h)=>{h.patchOnProperties=ht,h.patchMethod=Oe,h.bindArguments=ve,h.patchMacroTask=wt;const c=a.__symbol__("BLACK_LISTED_EVENTS"),p=a.__symbol__("UNPATCHED_EVENTS");o[p]&&(o[c]=o[p]),o[c]&&(a[c]=a[p]=o[c]),h.patchEventPrototype=Qe,h.patchEventTarget=vt,h.isIEOrEdge=Se,h.ObjectDefineProperty=K,h.ObjectGetOwnPropertyDescriptor=me,h.ObjectCreate=Ce,h.ArraySlice=Ae,h.patchClass=We,h.wrapWithCurrentZone=le,h.filterProperties=Ct,h.attachOriginToPatched=Ze,h._redefineProperty=Object.defineProperty,h.patchCallbacks=Le,h.getGlobalObjects=()=>({globalSources:yt,zoneSymbolEventNames:De,eventNames:Ve,isBrowser:ot,isMix:ut,isNode:Ye,TRUE_STR:ue,FALSE_STR:Ee,ZONE_SYMBOL_PREFIX:ce,ADD_EVENT_LISTENER_STR:ie,REMOVE_EVENT_LISTENER_STR:ye})});const gt=g("zoneTask");function tt(o,a,h,c){let p=null,_=null;h+=c;const T={};function k(I){const b=I.data;return b.args[0]=function(){return I.invoke.apply(this,arguments)},b.handleId=p.apply(o,b.args),I}function A(I){return _.call(o,I.data.handleId)}p=Oe(o,a+=c,I=>function(b,V){if("function"==typeof V[0]){const H={isPeriodic:"Interval"===c,delay:"Timeout"===c||"Interval"===c?V[1]||0:void 0,args:V},W=V[0];V[0]=function(){try{return W.apply(this,arguments)}finally{H.isPeriodic||("number"==typeof H.handleId?delete T[H.handleId]:H.handleId&&(H.handleId[gt]=null))}};const he=Pe(a,V[0],H,k,A);if(!he)return he;const ne=he.data.handleId;return"number"==typeof ne?T[ne]=he:ne&&(ne[gt]=he),ne&&ne.ref&&ne.unref&&"function"==typeof ne.ref&&"function"==typeof ne.unref&&(he.ref=ne.ref.bind(ne),he.unref=ne.unref.bind(ne)),"number"==typeof ne||ne?ne:he}return I.apply(o,V)}),_=Oe(o,h,I=>function(b,V){const H=V[0];let W;"number"==typeof H?W=T[H]:(W=H&&H[gt],W||(W=H)),W&&"string"==typeof W.type?"notScheduled"!==W.state&&(W.cancelFn&&W.data.isPeriodic||0===W.runCount)&&("number"==typeof H?delete T[H]:H&&(H[gt]=null),W.zone.cancelTask(W)):I.apply(o,V)})}Zone.__load_patch("legacy",o=>{const a=o[Zone.__symbol__("legacyPatch")];a&&a()}),Zone.__load_patch("queueMicrotask",(o,a,h)=>{h.patchMethod(o,"queueMicrotask",c=>function(p,_){a.current.scheduleMicroTask("queueMicrotask",_[0])})}),Zone.__load_patch("timers",o=>{const a="set",h="clear";tt(o,a,h,"Timeout"),tt(o,a,h,"Interval"),tt(o,a,h,"Immediate")}),Zone.__load_patch("requestAnimationFrame",o=>{tt(o,"request","cancel","AnimationFrame"),tt(o,"mozRequest","mozCancel","AnimationFrame"),tt(o,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(o,a)=>{const h=["alert","prompt","confirm"];for(let c=0;cfunction(A,I){return a.current.run(_,o,I,k)})}),Zone.__load_patch("EventTarget",(o,a,h)=>{(function(o,a){a.patchEventPrototype(o,a)})(o,h),function(o,a){if(Zone[a.symbol("patchEventTarget")])return;const{eventNames:h,zoneSymbolEventNames:c,TRUE_STR:p,FALSE_STR:_,ZONE_SYMBOL_PREFIX:T}=a.getGlobalObjects();for(let A=0;A{We("MutationObserver"),We("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(o,a,h)=>{We("IntersectionObserver")}),Zone.__load_patch("FileReader",(o,a,h)=>{We("FileReader")}),Zone.__load_patch("on_property",(o,a,h)=>{!function(o,a){if(Ye&&!ut||Zone[o.symbol("patchEvents")])return;const h="undefined"!=typeof WebSocket,c=a.__Zone_ignore_on_properties;if(ot){const T=window,k=function(){try{const o=q.navigator.userAgent;if(-1!==o.indexOf("MSIE ")||-1!==o.indexOf("Trident/"))return!0}catch(o){}return!1}()?[{target:T,ignoreProperties:["error"]}]:[];ge(T,Ve.concat(["messageerror"]),c&&c.concat(k),N(T)),ge(Document.prototype,Ve,c),void 0!==T.SVGElement&&ge(T.SVGElement.prototype,Ve,c),ge(Element.prototype,Ve,c),ge(HTMLElement.prototype,Ve,c),ge(HTMLMediaElement.prototype,t,c),ge(HTMLFrameSetElement.prototype,r.concat(Q),c),ge(HTMLBodyElement.prototype,r.concat(Q),c),ge(HTMLFrameElement.prototype,G,c),ge(HTMLIFrameElement.prototype,G,c);const A=T.HTMLMarqueeElement;A&&ge(A.prototype,ae,c);const I=T.Worker;I&&ge(I.prototype,_t,c)}const p=a.XMLHttpRequest;p&&ge(p.prototype,ke,c);const _=a.XMLHttpRequestEventTarget;_&&ge(_&&_.prototype,ke,c),"undefined"!=typeof IDBIndex&&(ge(IDBIndex.prototype,re,c),ge(IDBRequest.prototype,re,c),ge(IDBOpenDBRequest.prototype,re,c),ge(IDBDatabase.prototype,re,c),ge(IDBTransaction.prototype,re,c),ge(IDBCursor.prototype,re,c)),h&&ge(WebSocket.prototype,et,c)}(h,o)}),Zone.__load_patch("customElements",(o,a,h)=>{!function(o,a){const{isBrowser:h,isMix:c}=a.getGlobalObjects();(h||c)&&o.customElements&&"customElements"in o&&a.patchCallbacks(a,o.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(o,h)}),Zone.__load_patch("XHR",(o,a)=>{!function(I){const b=I.XMLHttpRequest;if(!b)return;const V=b.prototype;let W=V[L],he=V[l];if(!W){const D=I.XMLHttpRequestEventTarget;if(D){const $=D.prototype;W=$[L],he=$[l]}}const ne="readystatechange",C="scheduled";function v(D){const $=D.data,M=$.target;M[_]=!1,M[k]=!1;const Fe=M[p];W||(W=M[L],he=M[l]),Fe&&he.call(M,ne,Fe);const ze=M[p]=()=>{if(M.readyState===M.DONE)if(!$.aborted&&M[_]&&D.state===C){const Me=M[a.__symbol__("loadfalse")];if(0!==M.status&&Me&&Me.length>0){const Ue=D.invoke;D.invoke=function(){const pe=M[a.__symbol__("loadfalse")];for(let X=0;Xfunction(D,$){return D[c]=0==$[2],D[T]=$[1],ee.apply(D,$)}),z=g("fetchTaskAborting"),xe=g("fetchTaskScheduling"),J=Oe(V,"send",()=>function(D,$){if(!0===a.current[xe]||D[c])return J.apply(D,$);{const M={target:D,url:D[T],isPeriodic:!1,args:$,aborted:!1},Fe=Pe("XMLHttpRequest.send",Y,M,v,se);D&&!0===D[k]&&!M.aborted&&Fe.state===C&&Fe.invoke()}}),be=Oe(V,"abort",()=>function(D,$){const M=function(D){return D[h]}(D);if(M&&"string"==typeof M.type){if(null==M.cancelFn||M.data&&M.data.aborted)return;M.zone.cancelTask(M)}else if(!0===a.current[z])return be.apply(D,$)})}(o);const h=g("xhrTask"),c=g("xhrSync"),p=g("xhrListener"),_=g("xhrScheduled"),T=g("xhrURL"),k=g("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",o=>{o.navigator&&o.navigator.geolocation&&function(o,a){const h=o.constructor.name;for(let c=0;c{const A=function(){return k.apply(this,ve(arguments,h+"."+p))};return Ze(A,k),A})(_)}}}(o.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(o,a)=>{function h(c){return function(p){st(o,c).forEach(T=>{const k=o.PromiseRejectionEvent;if(k){const A=new k(c,{promise:p.promise,reason:p.rejection});T.invoke(A)}})}}o.PromiseRejectionEvent&&(a[g("unhandledPromiseRejectionHandler")]=h("unhandledrejection"),a[g("rejectionHandledHandler")]=h("rejectionhandled"))})}},qe=>{qe(qe.s=7435)}]); \ No newline at end of file diff --git a/frontend/runtime.58a6cc2ef4e9251a.js b/frontend/runtime.58a6cc2ef4e9251a.js new file mode 100644 index 00000000..2cd94fdf --- /dev/null +++ b/frontend/runtime.58a6cc2ef4e9251a.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,v={},g={};function r(e){var i=g[e];if(void 0!==i)return i.exports;var t=g[e]={id:e,loaded:!1,exports:{}};return v[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}r.m=v,e=[],r.O=(i,t,f,o)=>{if(!t){var a=1/0;for(n=0;n=o)&&Object.keys(r.O).every(b=>r.O[b](t[u]))?t.splice(u--,1):(s=!1,o0&&e[n-1][2]>o;n--)e[n]=e[n-1];e[n]=[t,f,o]},r.n=e=>{var i=e&&e.__esModule?()=>e.default:()=>e;return r.d(i,{a:i}),i},r.d=(e,i)=>{for(var t in i)r.o(i,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:i[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((i,t)=>(r.f[t](e,i),i),[])),r.u=e=>e+"."+{632:"132314894833c95c",637:"e548399381b6dbfd",859:"6444145916be9067",893:"a44950223f73d9f3"}[e]+".js",r.miniCssF=e=>{},r.o=(e,i)=>Object.prototype.hasOwnProperty.call(e,i),(()=>{var e={},i="RTLApp:";r.l=(t,f,o,n)=>{if(e[t])e[t].push(f);else{var a,s;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(p);var h=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),h&&h.forEach(_=>_(b)),m)return m(b)},p=setTimeout(c.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=c.bind(null,a.onerror),a.onload=c.bind(null,a.onload),s&&document.head.appendChild(a)}}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tu=i=>(void 0===e&&(e={createScriptURL:t=>t},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e.createScriptURL(i))})(),r.p="",(()=>{var e={666:0};r.f.j=(f,o)=>{var n=r.o(e,f)?e[f]:void 0;if(0!==n)if(n)o.push(n[2]);else if(666!=f){var a=new Promise((l,c)=>n=e[f]=[l,c]);o.push(n[2]=a);var s=r.p+r.u(f),u=new Error;r.l(s,l=>{if(r.o(e,f)&&(0!==(n=e[f])&&(e[f]=void 0),n)){var c=l&&("load"===l.type?"missing":l.type),p=l&&l.target&&l.target.src;u.message="Loading chunk "+f+" failed.\n("+c+": "+p+")",u.name="ChunkLoadError",u.type=c,u.request=p,n[1](u)}},"chunk-"+f,f)}else e[f]=0},r.O.j=f=>0===e[f];var i=(f,o)=>{var u,d,[n,a,s]=o,l=0;if(n.some(p=>0!==e[p])){for(u in a)r.o(a,u)&&(r.m[u]=a[u]);if(s)var c=s(r)}for(f&&f(o);l.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:transparent}.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y,.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y{opacity:.6}.ps .ps__rail-x:hover,.ps .ps__rail-y:hover,.ps .ps__rail-x:focus,.ps .ps__rail-y:focus,.ps .ps__rail-x.ps--clicking,.ps .ps__rail-y.ps--clicking{background-color:transparent;opacity:.9}.ps__thumb-x{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:4px;bottom:2px;position:absolute}.ps__thumb-y{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:4px;right:2px;position:absolute}.ps__rail-x:hover>.ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x.ps--clicking .ps__thumb-x{background-color:#999;height:6px}.ps__rail-y:hover>.ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y.ps--clicking .ps__thumb-y{background-color:#999;width:6px}@supports (-ms-overflow-style: none){.ps{overflow:auto!important}}@media screen and (-ms-high-contrast: active),(-ms-high-contrast: none){.ps{overflow:auto!important}}html{width:100%;height:99%;line-height:1.5;overflow-x:hidden;font-family:Roboto,sans-serif!important;font-size:62.5%}body{box-sizing:border-box;height:100%;margin:0;overflow:hidden}.rtl-container{position:absolute;width:100%;height:100%;top:0;left:0;right:0;bottom:0;overflow:hidden}.rtl-container .mat-menu-panel .mat-menu-content{padding-top:0;padding-bottom:0}.rtl-container .mat-nested-tree-node-child>.mat-tree-node{padding-left:4rem}.mat-sidenav-container .mat-sidenav-content{height:94vh;min-height:94vh}.sidenav{width:22rem;height:100%;overflow:hidden!important}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.sticky{position:fixed;top:0;z-index:9999}.horizontal-menu{padding:0;z-index:999;position:fixed;top:0;height:5rem;overflow:visible}.inner-sidenav-content{position:relative;top:0;bottom:0;left:0;right:0;padding:.8rem;min-height:calc(100% - 8.2rem);max-height:90vh}@media only screen and (max-width: 56.25em){.inner-sidenav-content{padding:.8rem .4rem}}@media only screen and (max-width: 37.5em){.inner-sidenav-content{padding:.4rem .2rem}}.top-50{top:5rem}*{margin:0;padding:0}.rtl-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;position:fixed;background:#fff;z-index:999999;visibility:visible;opacity:1}.rtl-spinner h4{margin-top:1rem}.padding-gap{padding:.8rem!important}@media only screen and (max-width: 56.25em){.padding-gap{padding:.4rem!important}}@media only screen and (max-width: 37.5em){.padding-gap{padding:.2rem!important}}.padding-gap-x{padding:0 .8rem!important}@media only screen and (max-width: 75em){.padding-gap-x{padding:0 .4rem!important}}@media only screen and (max-width: 56.25em){.padding-gap-x{padding:0 .4rem!important}}@media only screen and (max-width: 37.5em){.padding-gap-x{padding:0 .2rem!important}}.padding-gap-large{padding:1.6rem!important}@media only screen and (max-width: 75em){.padding-gap-large{padding:.8rem!important}}@media only screen and (max-width: 56.25em){.padding-gap-large{padding:.4rem!important}}@media only screen and (max-width: 37.5em){.padding-gap-large{padding:.2rem!important}}.padding-gap-x-large{padding:0 1.6rem!important}@media only screen and (max-width: 75em){.padding-gap-x-large{padding:0 .8rem!important}}@media only screen and (max-width: 56.25em){.padding-gap-x-large{padding:0 .4rem!important}}@media only screen and (max-width: 37.5em){.padding-gap-x-large{padding:0 .2rem!important}}.padding-gap-bottom-large{padding-bottom:1.6rem!important}@media only screen and (max-width: 56.25em){.padding-gap-bottom-large{padding-bottom:.8rem!important}}@media only screen and (max-width: 37.5em){.padding-gap-bottom-large{padding-bottom:.2rem!important}}.overflow-wrap{overflow-wrap:break-word!important;overflow:hidden}.mat-card{padding:0!important;overflow:hidden;border-radius:2px!important}.mat-card-original{padding:1.6rem!important;border-radius:4px!important}.mat-tab-body-wrapper,.card-content-gap{padding:.96rem 1.6rem!important;height:100%}@media only screen and (max-width: 56.25em){.mat-tab-body-wrapper,.card-content-gap{padding:.8rem!important}}@media only screen and (max-width: 37.5em){.mat-tab-body-wrapper,.card-content-gap{padding:.4rem .2rem!important}}@media only screen and (max-width: 56.25em){th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:.4rem!important}}@media only screen and (max-width: 37.5em){th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:.2rem!important}}@media only screen and (max-width: 56.25em){th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type,mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:.4rem!important}}@media only screen and (max-width: 37.5em){th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type,mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:.2rem!important}}.routing-tabs-block .mat-tab-body-wrapper{padding:0!important;min-height:10rem}.mat-card-actions{display:block;margin-bottom:1.6rem;padding-left:.6rem;padding-right:.6rem}.mat-card-content,.mat-card-subtitle,.mat-card-title{display:block;margin-bottom:1.6rem}.mat-card-header-text{margin:0!important;line-height:1}.mat-form-field-wrapper{width:100%}.mat-select{margin:0 1.5rem 0 0}.green{color:#388e3c!important}.yellow{color:#ffd740!important}.red{color:#c62828!important}.grey{color:#ccc!important}.mt-1px{margin-top:1px!important}.mt-2px{margin-top:2px!important}.mt-5px{margin-top:5px!important}.my-2px{margin:2px 0!important}.mt-0{margin-top:0!important}.mt-1{margin-top:1rem!important}@media only screen and (max-width: 56.25em){.mt-1{margin-top:.8rem!important}}@media only screen and (max-width: 37.5em){.mt-1{margin-top:.8rem!important}}.mb-0{margin-bottom:0!important}.mb-2px{margin-bottom:2px!important}.mb-5px{margin-bottom:5px!important}.mb-1{margin-bottom:1rem!important}@media only screen and (max-width: 56.25em){.mb-1{margin-bottom:.8rem!important}}@media only screen and (max-width: 37.5em){.mb-1{margin-bottom:.8rem!important}}.mb-6{margin-bottom:6rem!important}@media only screen and (max-width: 56.25em){.mb-6{margin-bottom:5rem!important}}@media only screen and (max-width: 37.5em){.mb-6{margin-bottom:5rem!important}}.ml-0{margin-left:0!important}.ml-1{margin-left:1rem!important}@media only screen and (max-width: 56.25em){.ml-1{margin-left:.4rem!important}}@media only screen and (max-width: 37.5em){.ml-1{margin-left:.2rem!important}}.ml-minus-1{margin-left:-1rem!important}.mr-0{margin-right:0!important}.mr-3px{margin-right:.3rem!important}.mr-5px{margin-right:.5rem!important}.mr-1{margin-right:1rem!important}@media only screen and (max-width: 56.25em){.mr-1{margin-right:.4rem!important}}@media only screen and (max-width: 37.5em){.mr-1{margin-right:.2rem!important}}.mx-1{margin:0 1rem!important}@media only screen and (max-width: 56.25em){.mx-1{margin:0 .4rem!important}}@media only screen and (max-width: 37.5em){.mx-1{margin:0 .2rem!important}}.my-1{margin:1rem 0!important}@media only screen and (max-width: 56.25em){.my-1{margin:.8rem 0!important}}@media only screen and (max-width: 37.5em){.my-1{margin:.8rem 0!important}}.m-1{margin:1rem!important}@media only screen and (max-width: 56.25em){.m-1{margin:.8rem!important}}@media only screen and (max-width: 37.5em){.m-1{margin:.8rem!important}}.mt-2{margin-top:2rem!important}@media only screen and (max-width: 56.25em){.mt-2{margin-top:1.6rem!important}}@media only screen and (max-width: 37.5em){.mt-2{margin-top:1.6rem!important}}.mt-3{margin-top:3rem!important}@media only screen and (max-width: 56.25em){.mt-3{margin-top:2.4rem!important}}@media only screen and (max-width: 37.5em){.mt-3{margin-top:2.6rem!important}}.mt-4{margin-top:4rem!important}@media only screen and (max-width: 56.25em){.mt-4{margin-top:3.4rem!important}}@media only screen and (max-width: 37.5em){.mt-4{margin-top:3.4rem!important}}.mt-6{margin-top:6rem!important}@media only screen and (max-width: 56.25em){.mt-6{margin-top:4.8rem!important}}@media only screen and (max-width: 37.5em){.mt-6{margin-top:4.8rem!important}}.mt-minus-1{margin-top:-1rem!important}@media only screen and (max-width: 56.25em){.mt-minus-1{margin-top:-.8rem!important}}@media only screen and (max-width: 37.5em){.mt-minus-1{margin-top:-.8rem!important}}.mt-minus-2{margin-top:-2rem!important}@media only screen and (max-width: 56.25em){.mt-minus-2{margin-top:-1.6rem!important}}@media only screen and (max-width: 37.5em){.mt-minus-2{margin-top:-1.6rem!important}}.mb-2{margin-bottom:2rem!important}@media only screen and (max-width: 56.25em){.mb-2{margin-bottom:1.6rem!important}}@media only screen and (max-width: 37.5em){.mb-2{margin-bottom:1.6rem!important}}.mb-3{margin-bottom:3rem!important}@media only screen and (max-width: 56.25em){.mb-3{margin-bottom:2.4rem!important}}@media only screen and (max-width: 37.5em){.mb-3{margin-bottom:2.4rem!important}}.mb-4{margin-bottom:4rem!important}@media only screen and (max-width: 56.25em){.mb-4{margin-bottom:3.2rem!important}}@media only screen and (max-width: 37.5em){.mb-4{margin-bottom:3.2rem!important}}.ml-2{margin-left:2rem!important}@media only screen and (max-width: 56.25em){.ml-2{margin-left:.8rem!important}}@media only screen and (max-width: 37.5em){.ml-2{margin-left:.4rem!important}}.mr-2{margin-right:2rem!important}@media only screen and (max-width: 56.25em){.mr-2{margin-right:.8rem!important}}@media only screen and (max-width: 37.5em){.mr-2{margin-right:.4rem!important}}.ml-4{margin-left:4rem!important}@media only screen and (max-width: 56.25em){.ml-4{margin-left:1.6rem!important}}@media only screen and (max-width: 37.5em){.ml-4{margin-left:.8rem!important}}.ml-5{margin-left:5rem!important}@media only screen and (max-width: 56.25em){.ml-5{margin-left:2rem!important}}@media only screen and (max-width: 37.5em){.ml-5{margin-left:1rem!important}}.mr-4{margin-right:4rem!important}@media only screen and (max-width: 56.25em){.mr-4{margin-right:1.6rem!important}}@media only screen and (max-width: 37.5em){.mr-4{margin-right:.8rem!important}}.mr-5{margin-right:5rem!important}@media only screen and (max-width: 56.25em){.mr-5{margin-right:2rem!important}}@media only screen and (max-width: 37.5em){.mr-5{margin-right:1rem!important}}.mr-6{margin-right:6rem!important}@media only screen and (max-width: 56.25em){.mr-6{margin-right:3rem!important}}@media only screen and (max-width: 37.5em){.mr-6{margin-right:2rem!important}}.mx-2{margin:0 2rem!important}@media only screen and (max-width: 56.25em){.mx-2{margin:0 .8rem!important}}@media only screen and (max-width: 37.5em){.mx-2{margin:0 .4rem!important}}.my-0{margin-top:0!important;margin-bottom:0!important}.my-2{margin:2rem 0!important}@media only screen and (max-width: 56.25em){.my-2{margin:1.6rem 0!important}}@media only screen and (max-width: 37.5em){.my-2{margin:1.6rem 0!important}}.my-3{margin:3rem 0!important}@media only screen and (max-width: 56.25em){.my-3{margin:2.4rem 0!important}}@media only screen and (max-width: 37.5em){.my-3{margin:2.4rem 0!important}}.my-4{margin:4rem 0!important}@media only screen and (max-width: 56.25em){.my-4{margin:3.2rem 0!important}}@media only screen and (max-width: 37.5em){.my-4{margin:3.2rem 0!important}}.m-2{margin:2rem!important}@media only screen and (max-width: 56.25em){.m-2{margin:1.6rem!important}}@media only screen and (max-width: 37.5em){.m-2{margin:1.6rem!important}}.pt-1{padding-top:1rem!important}@media only screen and (max-width: 56.25em){.pt-1{padding-top:.8rem!important}}@media only screen and (max-width: 37.5em){.pt-1{padding-top:.8rem!important}}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:1rem!important}@media only screen and (max-width: 56.25em){.pb-1{padding-bottom:.8rem!important}}@media only screen and (max-width: 37.5em){.pb-1{padding-bottom:.8rem!important}}.pl-1{padding-left:1rem!important}@media only screen and (max-width: 56.25em){.pl-1{padding-left:.4rem!important}}@media only screen and (max-width: 37.5em){.pl-1{padding-left:.2rem!important}}.pl-15px{padding-left:1.5rem!important}@media only screen and (max-width: 56.25em){.pl-15px{padding-left:.6rem!important}}@media only screen and (max-width: 37.5em){.pl-15px{padding-left:.4rem!important}}.pr-0{padding-right:0!important}.pr-1{padding-right:1rem!important}@media only screen and (max-width: 56.25em){.pr-1{padding-right:.4rem!important}}@media only screen and (max-width: 37.5em){.pr-1{padding-right:.2rem!important}}.pr-3{padding-right:3rem!important}@media only screen and (max-width: 56.25em){.pr-3{padding-right:1.2rem!important}}@media only screen and (max-width: 37.5em){.pr-3{padding-right:.6rem!important}}.pr-4{padding-right:4rem!important}@media only screen and (max-width: 56.25em){.pr-4{padding-right:1.6rem!important}}@media only screen and (max-width: 37.5em){.pr-4{padding-right:.8rem!important}}.pr-4px{padding-right:.4rem!important}.p-0{padding:0!important}.p-5px{padding:.5rem!important}.pl-0{padding-left:0!important}.px-1{padding:0 1rem!important}@media only screen and (max-width: 56.25em){.px-1{padding:0 .4rem!important}}@media only screen and (max-width: 37.5em){.px-1{padding:0 .2rem!important}}.py-0{padding:1rem 0!important}@media only screen and (max-width: 56.25em){.py-0{padding:.8rem 0!important}}@media only screen and (max-width: 37.5em){.py-0{padding:.8rem 0!important}}.py-1{padding:1rem 0!important}@media only screen and (max-width: 56.25em){.py-1{padding:.8rem 0!important}}@media only screen and (max-width: 37.5em){.py-1{padding:.8rem 0!important}}.p-1{padding:1rem!important}@media only screen and (max-width: 56.25em){.p-1{padding:.8rem!important}}@media only screen and (max-width: 37.5em){.p-1{padding:.8rem!important}}.p-16{padding:1.6rem!important}@media only screen and (max-width: 56.25em){.p-16{padding:.8rem!important}}@media only screen and (max-width: 37.5em){.p-16{padding:.4rem!important}}.pt-2{padding-top:2rem!important}@media only screen and (max-width: 56.25em){.pt-2{padding-top:1.6rem!important}}@media only screen and (max-width: 37.5em){.pt-2{padding-top:1.6rem!important}}.pt-3{padding-top:3rem!important}@media only screen and (max-width: 56.25em){.pt-3{padding-top:2.4rem!important}}@media only screen and (max-width: 37.5em){.pt-3{padding-top:2.4rem!important}}.pb-2{padding-bottom:2rem!important}@media only screen and (max-width: 56.25em){.pb-2{padding-bottom:1.6rem!important}}@media only screen and (max-width: 37.5em){.pb-2{padding-bottom:1.6rem!important}}.pl-2{padding-left:2rem!important}@media only screen and (max-width: 56.25em){.pl-2{padding-left:.8rem!important}}@media only screen and (max-width: 37.5em){.pl-2{padding-left:.4rem!important}}.pt-4{padding-top:3.2rem!important}@media only screen and (max-width: 56.25em){.pt-4{padding-top:2.5rem!important}}@media only screen and (max-width: 37.5em){.pt-4{padding-top:2.5rem!important}}.pl-3{padding-left:3rem!important}@media only screen and (max-width: 56.25em){.pl-3{padding-left:1.2rem!important}}@media only screen and (max-width: 37.5em){.pl-3{padding-left:.6rem!important}}.pl-4{padding-left:4rem!important}@media only screen and (max-width: 56.25em){.pl-4{padding-left:1.6rem!important}}@media only screen and (max-width: 37.5em){.pl-4{padding-left:.8rem!important}}.pr-2{padding-right:2rem!important}@media only screen and (max-width: 56.25em){.pr-2{padding-right:.8rem!important}}@media only screen and (max-width: 37.5em){.pr-2{padding-right:.4rem!important}}.pr-5{padding-right:4rem!important}@media only screen and (max-width: 56.25em){.pr-5{padding-right:1.6rem!important}}@media only screen and (max-width: 37.5em){.pr-5{padding-right:.8rem!important}}.px-2{padding:0 2rem!important}@media only screen and (max-width: 56.25em){.px-2{padding:0 .8rem!important}}@media only screen and (max-width: 37.5em){.px-2{padding:0 .4rem!important}}.px-3{padding:0 3rem!important}@media only screen and (max-width: 56.25em){.px-3{padding:0 1.2rem!important}}@media only screen and (max-width: 37.5em){.px-3{padding:0 .6rem!important}}.px-4{padding:0 4rem!important}@media only screen and (max-width: 56.25em){.px-4{padding:0 1.6rem!important}}@media only screen and (max-width: 37.5em){.px-4{padding:0 .8rem!important}}.py-2{padding:2rem 0!important}@media only screen and (max-width: 56.25em){.py-2{padding:1.6rem 0!important}}@media only screen and (max-width: 37.5em){.py-2{padding:1.6rem 0!important}}.p-2{padding:2rem!important}@media only screen and (max-width: 56.25em){.p-2{padding:1.6rem!important}}@media only screen and (max-width: 37.5em){.p-2{padding:1.6rem!important}}.p-24{padding:2.4rem!important}@media only screen and (max-width: 56.25em){.p-24{padding:1.2rem!important}}@media only screen and (max-width: 37.5em){.p-24{padding:1rem!important}}.m-1px{margin:1px!important}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-auto{overflow:auto}.mat-footer-row .mat-footer-cell{border-bottom:none!important}.mat-row:last-child .mat-cell{border-bottom:none!important}.flex-ellipsis{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:3rem}.mat-list,.mat-list .mat-list-item .mat-list-item-content,.mat-nav-list,.mat-selection-list{padding:0!important}.inline-spinner{display:inline-flex!important;top:.5rem!important}.top-minus-5px{position:relative;top:-.5rem}.top-minus-15px{position:relative;top:-1.5rem}.top-minus-25px{position:relative;top:-2.5rem;margin-bottom:-2.5rem!important}.top-minus-30px{position:relative;top:-3rem}.cursor-pointer{cursor:pointer!important}.cursor-default{cursor:default!important}.cursor-not-allowed{cursor:not-allowed!important}.inline-flex{display:inline-flex!important}.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.settings-container h4{margin:1.2rem 0 .6rem}.settings-container .skin{width:2rem;height:2rem;border-radius:50%;cursor:pointer;margin-right:.5rem}.settings-container .skin.selected-color{width:1.75rem;height:1.75rem;border:.25rem solid}.settings-container .skin.purple{background-color:#5e4ea5}.settings-container .skin.indigo{background-color:#3f51b5}.settings-container .skin.teal{background-color:#00695c}.settings-container .skin.pink{background-color:#d81b60}.settings-container .skin.yellow{background-color:#a1842c}.settings-container .mat-radio-group{flex-direction:row;place-content:flex-start space-between;align-items:flex-start;box-sizing:border-box;display:flex}.settings-container .mat-radio-group .mat-radio-button{margin:2px 0}.settings-container .mat-slide-toggle{padding:0 1.4rem 0 .4rem}.settings-container .mat-flat-button{width:100%;max-height:3.6rem}.op-image{box-shadow:0 0 2px #ccc;border:2px solid;border-color:transparent;cursor:pointer;transition:.2s}.settings-icon{position:fixed;top:30%;right:0;width:4.2rem;height:4.2rem;opacity:.6;cursor:pointer;z-index:999999}.test-banner{padding-top:2px;background-color:#fc7783;text-transform:uppercase;border-radius:2px}.fa-icon-small,.top-icon-small{min-width:2rem;width:2rem;max-width:2rem}.botlz-icon-sm{min-width:1.6rem;width:1.6rem;max-width:1.6rem}.copy-icon{position:relative;top:.5rem}.copy-icon-smaller{position:relative;top:2px}.top-5px{position:relative;top:.5rem}.animate-settings{animation:animate-settings 10s linear infinite}@keyframes animate-settings{to{transform:rotate(360deg)}}.mat-icon-button.top-toolbar-icon{margin-right:2rem}.mat-icon-button.top-toolbar-icon .top-toolbar-img{padding-right:.7rem;cursor:pointer}.mt-minus-5{position:relative;margin-top:-.5rem}.custom-card{padding:0 0 .8rem!important}.not-found-box{min-width:50%}.w-100{width:100%!important}.w-96{width:96%!important}.w-84{width:84%!important}.h-100{height:100%!important}.h-93{height:93%!important}.h-40{height:40rem!important}.h-46{height:46rem!important}.h-10{height:10rem!important}.h-4{height:4rem!important}.h-35px{height:3.5rem!important}a{outline:none;text-decoration:none;text-decoration:underline}.mat-tree{width:100%}.mat-tree-node,.mat-nested-tree-node-parent{min-height:4rem;height:4rem;padding:0 1.2rem;cursor:pointer}.mat-tree-node:focus,.mat-tree-node:active,.mat-nested-tree-node:focus,.mat-nested-tree-node:active,.mat-nested-tree-node-parent:focus,.mat-nested-tree-node-parent:active,.mat-tree-node span:focus,.mat-tree-node span:active,.mat-nested-tree-node-parent span:focus,.mat-nested-tree-node-parent span:active,.mat-tree-node div:focus,.mat-tree-node div:active,.mat-nested-tree-node-parent div:focus,.mat-nested-tree-node-parent div:active,.mat-tree-node .mat-icon:focus,.mat-tree-node .mat-icon:active,.mat-nested-tree-node-parent .mat-icon:focus,.mat-nested-tree-node-parent .mat-icon:active{outline:none}.lnd-info{height:9rem}.flex-wrap{flex-wrap:wrap!important}.word-break{word-break:break-all!important}.font-bold-500{font-weight:500!important}.font-bold-700{font-weight:700!important}.pubkey-info-top{flex-wrap:wrap;margin-top:1px;min-height:1.5rem;cursor:pointer;display:flex;align-content:center}.top-toolbar-icon.icon-pinned{width:3rem;height:3rem;padding:1rem 0 0 1.2rem;cursor:pointer}.logo{font-weight:700;letter-spacing:1px}.fa-icon-regular{min-width:4rem;width:4rem;max-width:4rem}.icon-large{margin-left:-100%}.icon-small{height:2rem!important;width:2rem!important}.icon-smaller{height:1rem!important;width:1rem!important}.mat-icon-36{width:3.6rem!important;height:3.6rem!important}.mat-select.multi-node-select{width:87%}.page-title-container{padding:0 1.2rem;margin-bottom:.8rem}@media only screen and (max-width: 56.25em){.page-title-container{padding:0 .8rem;margin:.8rem 0}}@media only screen and (max-width: 37.5em){.page-title-container{padding:0 .8rem;margin:.8rem 0}}table{width:100%}@media only screen and (max-width: 75em){th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:1.6rem!important}}@media only screen and (max-width: 56.25em){th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:1.2rem!important}}@media only screen and (max-width: 37.5em){th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:.8rem!important}}@media only screen and (max-width: 75em){th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:1.6rem!important}}@media only screen and (max-width: 56.25em){th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:1.2rem!important}}@media only screen and (max-width: 37.5em){th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:.8rem!important}}.dot{display:inline-flex;width:1.2rem;height:1.2rem;border-radius:1.2rem;margin:.4rem 1rem 0 0}.dot.tiny-dot{width:.8rem;height:.8rem;border-radius:.8rem;margin:0 .6rem .1rem 0}.dot.green{background-color:#28ca43}.dot.yellow{background-color:#ffbd2e}.dot.red{background-color:#c62828}.dot.grey{background-color:#aaa}.font-size-80{font-size:80%!important}.font-size-90{font-size:90%!important}.font-size-120{font-size:120%!important}.font-size-200{font-size:200%!important}.font-size-300{font-size:300%!important}.font-weight-900{font-weight:900!important}.pre-wrap{white-space:pre-wrap!important}.display-none{display:none!important}.mat-vertical-stepper-header{padding:1rem 1rem 1rem .8rem!important}.ellipsis-child{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blinker{animation:blink-animation 1s steps(5,start) infinite;-webkit-animation:blink-animation 1s steps(5,start) infinite}@keyframes blink-animation{to{visibility:hidden}}.mat-progress-bar.dashboard-progress-bar{height:6px;min-height:6px}.alert{margin-bottom:1rem;padding:.6rem 1rem;border-radius:2px}.dashboard-vert-menu.mat-menu-panel{min-height:4.8rem}.mat-tab-body-content{overflow:hidden!important}.dashboard-tabs-group .mat-tab-label{min-width:32%!important}.node-grid-tile.mat-grid-tile .mat-figure{align-items:start}.mat-vertical-content-container{margin-left:2rem!important}.xs-scroll-y{overflow-y:scroll;max-height:600px}.h-2{min-height:2rem!important}.border-valid{border:1px solid #28ca43!important}.border-invalid{border:1px solid #c62828!important}.icon-green{fill:#28ca43}.visible{visibility:visible!important}.hidden{visibility:hidden!important}.h-5{height:5rem}.btn-sticky-container{height:0rem;opacity:.5}.btn-sticky-container .mat-icon{animation:scrollDownAnimation 2s infinite}@keyframes scrollDownAnimation{0%{transform:translateY(0)}10%{transform:translateY(-20%)}20%{transform:translateY(20%)}30%{transform:translateY(-20%)}40%{transform:translateY(20%)}50%{transform:translateY(0)}}.mat-form-field-appearance-legacy.mat-form-field-disabled input,.mat-form-field-appearance-legacy.mat-form-field-disabled mat-select,.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-trigger,.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-value,.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-arro-wrapper,.mat-form-field-appearance-legacy.mat-form-field-disabled textarea,.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-infix{cursor:not-allowed}.ngx-charts-tooltip-content.type-tooltip{background:rgba(50,50,50,.9)!important}.ngx-charts-tooltip-content .tooltip-caret{border-top-color:#323232e6!important}.mat-card.dashboard-card{margin:.8rem;padding:1.2rem 2.4rem!important}@media only screen and (max-width: 56.25em){.mat-card.dashboard-card{padding:.5rem 1rem!important;margin-top:4rem!important}}@media only screen and (max-width: 37.5em){.mat-card.dashboard-card{padding:.4rem .8rem!important;margin-top:4rem!important}}.mat-card.dashboard-card.p-0{padding:0!important}.mat-card.dashboard-card .mat-card-header-text{width:100%}.mat-progress-bar{min-height:4px}.dashboard-card-content{text-align:left}.mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-header{padding:0 2.4rem}@media only screen and (max-width: 56.25em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-header{padding:0 .8rem}}@media only screen and (max-width: 37.5em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-header{padding:0 .4rem}}.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator{margin-top:-5px}.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body{padding:0 2.4rem 1.6rem}@media only screen and (max-width: 56.25em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body{padding:0 .8rem .8rem}}@media only screen and (max-width: 37.5em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body{padding:0 .4rem .2rem}}@media only screen and (max-width: 56.25em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body .mat-expansion-panel-header-title,.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body .mat-expansion-panel-header-description{margin-right:.8rem}}@media only screen and (max-width: 37.5em){.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body .mat-expansion-panel-header-title,.mat-expansion-panel.flat-expansion-panel .mat-expansion-panel-body .mat-expansion-panel-header-description{margin-right:.4rem}}.rtl-container .mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-badge-small .mat-badge-content{font-size:9px}.rtl-container .mat-badge-large .mat-badge-content{font-size:24px}.rtl-container .mat-h1,.rtl-container .mat-headline,.rtl-container .mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.rtl-container .mat-h2,.rtl-container .mat-title,.rtl-container .mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.rtl-container .mat-h3,.rtl-container .mat-subheading-2,.rtl-container .mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.rtl-container .mat-h4,.rtl-container .mat-subheading-1,.rtl-container .mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.rtl-container .mat-h5,.rtl-container .mat-typography h5{font:400 11.62px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.rtl-container .mat-h6,.rtl-container .mat-typography h6{font:400 9.38px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.rtl-container .mat-body-strong,.rtl-container .mat-body-2{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-body,.rtl-container .mat-body-1,.rtl-container .mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-body p,.rtl-container .mat-body-1 p,.rtl-container .mat-typography p{margin:0 0 12px}.rtl-container .mat-small,.rtl-container .mat-caption{font:400 12px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-display-4,.rtl-container .mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.05em;margin:0 0 56px}.rtl-container .mat-display-3,.rtl-container .mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.02em;margin:0 0 64px}.rtl-container .mat-display-2,.rtl-container .mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.005em;margin:0 0 64px}.rtl-container .mat-display-1,.rtl-container .mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 64px}.rtl-container .mat-bottom-sheet-container{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-button,.rtl-container .mat-raised-button,.rtl-container .mat-icon-button,.rtl-container .mat-stroked-button,.rtl-container .mat-flat-button,.rtl-container .mat-fab,.rtl-container .mat-mini-fab{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.rtl-container .mat-button-toggle,.rtl-container .mat-card{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-card-title{font-size:24px;font-weight:500}.rtl-container .mat-card-header .mat-card-title{font-size:20px}.rtl-container .mat-card-subtitle,.rtl-container .mat-card-content{font-size:14px}.rtl-container .mat-checkbox{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-checkbox-layout .mat-checkbox-label{line-height:24px}.rtl-container .mat-chip{font-size:14px;font-weight:500}.rtl-container .mat-chip .mat-chip-trailing-icon.mat-icon,.rtl-container .mat-chip .mat-chip-remove.mat-icon{font-size:18px}.rtl-container .mat-table{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-header-cell{font-size:12px;font-weight:500}.rtl-container .mat-cell,.rtl-container .mat-footer-cell{font-size:14px}.rtl-container .mat-calendar{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-calendar-body{font-size:13px}.rtl-container .mat-calendar-body-label,.rtl-container .mat-calendar-period-button{font-size:14px;font-weight:500}.rtl-container .mat-calendar-table-header th{font-size:11px;font-weight:400}.rtl-container .mat-dialog-title{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-expansion-panel-header{font-family:Roboto,Helvetica Neue,sans-serif;font-size:15px;font-weight:400}.rtl-container .mat-expansion-panel-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-form-field-wrapper{padding-bottom:1.34375em}.rtl-container .mat-form-field-prefix .mat-icon,.rtl-container .mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.rtl-container .mat-form-field-prefix .mat-icon-button,.rtl-container .mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.rtl-container .mat-form-field-prefix .mat-icon-button .mat-icon,.rtl-container .mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.rtl-container .mat-form-field-infix{padding:.5em 0;border-top:.84375em solid transparent}.rtl-container .mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.3333333333%}.rtl-container .mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.3333433333%}.rtl-container .mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.rtl-container .mat-form-field-label{top:1.34375em}.rtl-container .mat-form-field-underline{bottom:1.34375em}.rtl-container .mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);width:133.3333333333%}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);width:133.3333433333%}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);width:133.3333533333%}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.rtl-container .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.rtl-container .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.rtl-container .mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em}.rtl-container .mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.rtl-container .mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.3333333333%}.rtl-container .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.3333433333%}.rtl-container .mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0}.rtl-container .mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.rtl-container .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.rtl-container .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.3333333333%}.rtl-container .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.3333433333%}.rtl-container .mat-grid-tile-header,.rtl-container .mat-grid-tile-footer{font-size:14px}.rtl-container .mat-grid-tile-header .mat-line,.rtl-container .mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-grid-tile-header .mat-line:nth-child(n+2),.rtl-container .mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}.rtl-container input.mat-input-element{margin-top:-.0625em}.rtl-container .mat-menu-item{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.rtl-container .mat-paginator,.rtl-container .mat-paginator-page-size .mat-select-trigger{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px}.rtl-container .mat-radio-button,.rtl-container .mat-select{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-select-trigger{height:1.125em}.rtl-container .mat-slide-toggle-content{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-slider-thumb-label-text{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.rtl-container .mat-stepper-vertical,.rtl-container .mat-stepper-horizontal{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-step-label{font-size:14px;font-weight:400}.rtl-container .mat-step-sub-label-error{font-weight:400}.rtl-container .mat-step-label-error{font-size:14px}.rtl-container .mat-step-label-selected{font-size:14px;font-weight:500}.rtl-container .mat-tab-group{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-tab-label,.rtl-container .mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.rtl-container .mat-toolbar,.rtl-container .mat-toolbar h1,.rtl-container .mat-toolbar h2,.rtl-container .mat-toolbar h3,.rtl-container .mat-toolbar h4,.rtl-container .mat-toolbar h5,.rtl-container .mat-toolbar h6{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0}.rtl-container .mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.rtl-container .mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.rtl-container .mat-list-item,.rtl-container .mat-list-option{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-list-base .mat-list-item{font-size:16px}.rtl-container .mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.rtl-container .mat-list-base .mat-list-option{font-size:16px}.rtl-container .mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.rtl-container .mat-list-base .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.rtl-container .mat-list-base[dense] .mat-list-item{font-size:12px}.rtl-container .mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.rtl-container .mat-list-base[dense] .mat-list-option{font-size:12px}.rtl-container .mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.rtl-container .mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.rtl-container .mat-list-base[dense] .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.rtl-container .mat-option{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}.rtl-container .mat-optgroup-label{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.rtl-container .mat-simple-snackbar{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px}.rtl-container .mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.rtl-container .mat-tree{font-family:Roboto,Helvetica Neue,sans-serif}.rtl-container .mat-tree-node,.rtl-container .mat-nested-tree-node{font-weight:400;font-size:14px}.rtl-container .mat-ripple{overflow:hidden;position:relative}.rtl-container .mat-ripple:not(:empty){transform:translateZ(0)}.rtl-container .mat-ripple.mat-ripple-unbounded{overflow:visible}.rtl-container .mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale(0)}.cdk-high-contrast-active .rtl-container .mat-ripple-element{display:none}.rtl-container .cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.rtl-container .cdk-overlay-container,.rtl-container .cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.rtl-container .cdk-overlay-container{position:fixed;z-index:1000}.rtl-container .cdk-overlay-container:empty{display:none}.rtl-container .cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.rtl-container .cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.rtl-container .cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.rtl-container .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .rtl-container .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.rtl-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.rtl-container .cdk-overlay-transparent-backdrop,.rtl-container .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.rtl-container .cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.rtl-container .cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.rtl-container textarea.cdk-textarea-autosize{resize:none}.rtl-container textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}.rtl-container textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.rtl-container .cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.rtl-container .cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.rtl-container .mat-focus-indicator,.rtl-container .mat-mdc-focus-indicator{position:relative}.rtl-container.purple.small.small .mat-header-cell{font-weight:700}.rtl-container.purple.small.small .mr-4{margin-right:1rem!important}.rtl-container.purple.small.small .mat-menu-item,.rtl-container.purple.small.small .mat-tree .mat-tree-node,.rtl-container.purple.small.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.purple.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.purple.small.small .genseed-message,.rtl-container.purple.small.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.purple.small.small .fa-icon-small,.rtl-container.purple.small.small .top-icon-small{font-size:1.44rem}.rtl-container.purple.small.small .page-title-container,.rtl-container.purple.small.small .page-sub-title-container{font-size:1.32rem}.rtl-container.purple.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.purple.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.purple.small.small .top-toolbar-icon .top-toolbar-img,.rtl-container.purple.small.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.purple.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.purple.small.small .material-icons,.rtl-container.purple.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.purple.small.small .mat-expansion-panel-header,.rtl-container.purple.small.small .mat-menu-item,.rtl-container.purple.small.small .mat-list .mat-list-item,.rtl-container.purple.small.small .mat-nav-list .mat-list-item,.rtl-container.purple.small.small .mat-option,.rtl-container.purple.small.small .mat-select,.rtl-container.purple.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.purple.small.small .logo{font-size:2.4rem}.rtl-container.purple.small.small .font-60-percent{font-size:.72rem}.rtl-container.purple.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.purple.small.small .icon-large{font-size:6rem}.rtl-container.purple.small.small .icon-small{font-size:1.8rem!important}.rtl-container.purple.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.purple.small.small .size-triple{font-size:3.6rem}.rtl-container.purple.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.purple.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.small.medium .mat-header-cell{font-weight:700}.rtl-container.purple.small.medium .mat-tree .mat-tree-node,.rtl-container.purple.small.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.purple.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.purple.small.medium .genseed-message,.rtl-container.purple.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.purple.small.medium .page-title-container,.rtl-container.purple.small.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.purple.small.medium .fa-icon-small,.rtl-container.purple.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.purple.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.purple.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.purple.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.purple.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.purple.small.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.purple.small.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.purple.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.purple.small.medium .material-icons{font-size:2.8rem}.rtl-container.purple.small.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.purple.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.purple.small.medium .mat-expansion-panel-header,.rtl-container.purple.small.medium .mat-menu-item,.rtl-container.purple.small.medium .mat-list .mat-list-item,.rtl-container.purple.small.medium .mat-nav-list .mat-list-item,.rtl-container.purple.small.medium .mat-option,.rtl-container.purple.small.medium .mat-select,.rtl-container.purple.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.purple.small.medium .logo{font-size:2.8rem}.rtl-container.purple.small.medium .font-60-percent{font-size:.84rem}.rtl-container.purple.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.purple.small.medium .icon-large{font-size:7rem}.rtl-container.purple.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.purple.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.purple.small.medium .size-triple{font-size:4.2rem}.rtl-container.purple.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.purple.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.small.large .mat-header-cell{font-weight:800}.rtl-container.purple.small.large .mat-tree .mat-tree-node,.rtl-container.purple.small.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.purple.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.purple.small.large .genseed-message,.rtl-container.purple.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.purple.small.large .page-title-container,.rtl-container.purple.small.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.purple.small.large .fa-icon-small,.rtl-container.purple.small.large .top-icon-small,.rtl-container.purple.small.large .modal-info-header{font-size:1.92rem}.rtl-container.purple.small.large .top-toolbar-icon.icon-pinned,.rtl-container.purple.small.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.purple.small.large .top-toolbar-icon .top-toolbar-img,.rtl-container.purple.small.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.purple.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.purple.small.large .material-icons{font-size:4rem}.rtl-container.purple.small.large .mat-expansion-panel-header,.rtl-container.purple.small.large .mat-menu-item,.rtl-container.purple.small.large .mat-list .mat-list-item,.rtl-container.purple.small.large .mat-nav-list .mat-list-item,.rtl-container.purple.small.large .mat-option,.rtl-container.purple.small.large .mat-select,.rtl-container.purple.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.purple.small.large .logo{font-size:3.2rem}.rtl-container.purple.small.large .font-60-percent{font-size:.96rem}.rtl-container.purple.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.purple.small.large .icon-large{font-size:8rem}.rtl-container.purple.small.large .icon-small{font-size:2.4rem!important}.rtl-container.purple.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.purple.small.large .size-triple{font-size:4.8rem}.rtl-container.purple.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.purple.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.small .mat-icon.material-icons:focus{outline:none}.rtl-container.purple.small .mat-flat-button.mat-primary:focus,.rtl-container.purple.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.purple.medium.small .mat-header-cell{font-weight:700}.rtl-container.purple.medium.small .mr-4{margin-right:1rem!important}.rtl-container.purple.medium.small .mat-menu-item,.rtl-container.purple.medium.small .mat-tree .mat-tree-node,.rtl-container.purple.medium.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.purple.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.purple.medium.small .genseed-message,.rtl-container.purple.medium.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.purple.medium.small .fa-icon-small,.rtl-container.purple.medium.small .top-icon-small{font-size:1.44rem}.rtl-container.purple.medium.small .page-title-container,.rtl-container.purple.medium.small .page-sub-title-container{font-size:1.32rem}.rtl-container.purple.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.purple.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.purple.medium.small .top-toolbar-icon .top-toolbar-img,.rtl-container.purple.medium.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.purple.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.purple.medium.small .material-icons,.rtl-container.purple.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.purple.medium.small .mat-expansion-panel-header,.rtl-container.purple.medium.small .mat-menu-item,.rtl-container.purple.medium.small .mat-list .mat-list-item,.rtl-container.purple.medium.small .mat-nav-list .mat-list-item,.rtl-container.purple.medium.small .mat-option,.rtl-container.purple.medium.small .mat-select,.rtl-container.purple.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.purple.medium.small .logo{font-size:2.4rem}.rtl-container.purple.medium.small .font-60-percent{font-size:.72rem}.rtl-container.purple.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.purple.medium.small .icon-large{font-size:6rem}.rtl-container.purple.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.purple.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.purple.medium.small .size-triple{font-size:3.6rem}.rtl-container.purple.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.purple.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.medium.medium .mat-header-cell{font-weight:700}.rtl-container.purple.medium.medium .mat-tree .mat-tree-node,.rtl-container.purple.medium.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.purple.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.purple.medium.medium .genseed-message,.rtl-container.purple.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.purple.medium.medium .page-title-container,.rtl-container.purple.medium.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.purple.medium.medium .fa-icon-small,.rtl-container.purple.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.purple.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.purple.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.purple.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.purple.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.purple.medium.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.purple.medium.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.purple.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.purple.medium.medium .material-icons{font-size:2.8rem}.rtl-container.purple.medium.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.purple.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.purple.medium.medium .mat-expansion-panel-header,.rtl-container.purple.medium.medium .mat-menu-item,.rtl-container.purple.medium.medium .mat-list .mat-list-item,.rtl-container.purple.medium.medium .mat-nav-list .mat-list-item,.rtl-container.purple.medium.medium .mat-option,.rtl-container.purple.medium.medium .mat-select,.rtl-container.purple.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.purple.medium.medium .logo{font-size:2.8rem}.rtl-container.purple.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.purple.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.purple.medium.medium .icon-large{font-size:7rem}.rtl-container.purple.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.purple.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.purple.medium.medium .size-triple{font-size:4.2rem}.rtl-container.purple.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.purple.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.medium.large .mat-header-cell{font-weight:800}.rtl-container.purple.medium.large .mat-tree .mat-tree-node,.rtl-container.purple.medium.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.purple.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.purple.medium.large .genseed-message,.rtl-container.purple.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.purple.medium.large .page-title-container,.rtl-container.purple.medium.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.purple.medium.large .fa-icon-small,.rtl-container.purple.medium.large .top-icon-small,.rtl-container.purple.medium.large .modal-info-header{font-size:1.92rem}.rtl-container.purple.medium.large .top-toolbar-icon.icon-pinned,.rtl-container.purple.medium.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.purple.medium.large .top-toolbar-icon .top-toolbar-img,.rtl-container.purple.medium.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.purple.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.purple.medium.large .material-icons{font-size:4rem}.rtl-container.purple.medium.large .mat-expansion-panel-header,.rtl-container.purple.medium.large .mat-menu-item,.rtl-container.purple.medium.large .mat-list .mat-list-item,.rtl-container.purple.medium.large .mat-nav-list .mat-list-item,.rtl-container.purple.medium.large .mat-option,.rtl-container.purple.medium.large .mat-select,.rtl-container.purple.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.purple.medium.large .logo{font-size:3.2rem}.rtl-container.purple.medium.large .font-60-percent{font-size:.96rem}.rtl-container.purple.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.purple.medium.large .icon-large{font-size:8rem}.rtl-container.purple.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.purple.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.purple.medium.large .size-triple{font-size:4.8rem}.rtl-container.purple.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.purple.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.purple.medium .mat-flat-button.mat-primary:focus,.rtl-container.purple.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.purple.large.small .mat-header-cell{font-weight:700}.rtl-container.purple.large.small .mr-4{margin-right:1rem!important}.rtl-container.purple.large.small .mat-menu-item,.rtl-container.purple.large.small .mat-tree .mat-tree-node,.rtl-container.purple.large.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.purple.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.purple.large.small .genseed-message,.rtl-container.purple.large.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.purple.large.small .fa-icon-small,.rtl-container.purple.large.small .top-icon-small{font-size:1.44rem}.rtl-container.purple.large.small .page-title-container,.rtl-container.purple.large.small .page-sub-title-container{font-size:1.32rem}.rtl-container.purple.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.purple.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.purple.large.small .top-toolbar-icon .top-toolbar-img,.rtl-container.purple.large.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.purple.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.purple.large.small .material-icons,.rtl-container.purple.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.purple.large.small .mat-expansion-panel-header,.rtl-container.purple.large.small .mat-menu-item,.rtl-container.purple.large.small .mat-list .mat-list-item,.rtl-container.purple.large.small .mat-nav-list .mat-list-item,.rtl-container.purple.large.small .mat-option,.rtl-container.purple.large.small .mat-select,.rtl-container.purple.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.purple.large.small .logo{font-size:2.4rem}.rtl-container.purple.large.small .font-60-percent{font-size:.72rem}.rtl-container.purple.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.purple.large.small .icon-large{font-size:6rem}.rtl-container.purple.large.small .icon-small{font-size:1.8rem!important}.rtl-container.purple.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.purple.large.small .size-triple{font-size:3.6rem}.rtl-container.purple.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.purple.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.large.medium .mat-header-cell{font-weight:700}.rtl-container.purple.large.medium .mat-tree .mat-tree-node,.rtl-container.purple.large.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.purple.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.purple.large.medium .genseed-message,.rtl-container.purple.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.purple.large.medium .page-title-container,.rtl-container.purple.large.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.purple.large.medium .fa-icon-small,.rtl-container.purple.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.purple.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.purple.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.purple.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.purple.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.purple.large.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.purple.large.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.purple.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.purple.large.medium .material-icons{font-size:2.8rem}.rtl-container.purple.large.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.purple.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.purple.large.medium .mat-expansion-panel-header,.rtl-container.purple.large.medium .mat-menu-item,.rtl-container.purple.large.medium .mat-list .mat-list-item,.rtl-container.purple.large.medium .mat-nav-list .mat-list-item,.rtl-container.purple.large.medium .mat-option,.rtl-container.purple.large.medium .mat-select,.rtl-container.purple.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.purple.large.medium .logo{font-size:2.8rem}.rtl-container.purple.large.medium .font-60-percent{font-size:.84rem}.rtl-container.purple.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.purple.large.medium .icon-large{font-size:7rem}.rtl-container.purple.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.purple.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.purple.large.medium .size-triple{font-size:4.2rem}.rtl-container.purple.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.purple.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.large.large .mat-header-cell{font-weight:800}.rtl-container.purple.large.large .mat-tree .mat-tree-node,.rtl-container.purple.large.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.purple.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.purple.large.large .genseed-message,.rtl-container.purple.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.purple.large.large .page-title-container,.rtl-container.purple.large.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.purple.large.large .fa-icon-small,.rtl-container.purple.large.large .top-icon-small,.rtl-container.purple.large.large .modal-info-header{font-size:1.92rem}.rtl-container.purple.large.large .top-toolbar-icon.icon-pinned,.rtl-container.purple.large.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.purple.large.large .top-toolbar-icon .top-toolbar-img,.rtl-container.purple.large.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.purple.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.purple.large.large .material-icons{font-size:4rem}.rtl-container.purple.large.large .mat-expansion-panel-header,.rtl-container.purple.large.large .mat-menu-item,.rtl-container.purple.large.large .mat-list .mat-list-item,.rtl-container.purple.large.large .mat-nav-list .mat-list-item,.rtl-container.purple.large.large .mat-option,.rtl-container.purple.large.large .mat-select,.rtl-container.purple.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.purple.large.large .logo{font-size:3.2rem}.rtl-container.purple.large.large .font-60-percent{font-size:.96rem}.rtl-container.purple.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.purple.large.large .icon-large{font-size:8rem}.rtl-container.purple.large.large .icon-small{font-size:2.4rem!important}.rtl-container.purple.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.purple.large.large .size-triple{font-size:4.8rem}.rtl-container.purple.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.purple.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.purple.large .mat-icon.material-icons:focus{outline:none}.rtl-container.purple.large .mat-flat-button.mat-primary:focus,.rtl-container.purple.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.purple.day .mat-ripple-element{background-color:#0000001a}.rtl-container.purple.day .mat-option{color:#000000de}.rtl-container.purple.day .mat-option:hover:not(.mat-option-disabled),.rtl-container.purple.day .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.purple.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.purple.day .mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.rtl-container.purple.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.purple.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#5e4ea5}.rtl-container.purple.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.purple.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.purple.day .mat-optgroup-label{color:#0000008a}.rtl-container.purple.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.purple.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.purple.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.purple.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.purple.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.purple.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#5e4ea5}.rtl-container.purple.day .mat-pseudo-checkbox-checked,.rtl-container.purple.day .mat-pseudo-checkbox-indeterminate,.rtl-container.purple.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.purple.day .mat-accent .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.purple.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.purple.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.purple.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.purple.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.purple.day .mat-app-background,.rtl-container.purple.day.mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.purple.day .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.purple.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.purple.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.purple.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.purple.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.purple.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.purple.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.purple.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.purple.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.purple.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.purple.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.purple.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.purple.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.purple.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.purple.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.purple.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.purple.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.purple.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.purple.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.purple.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.purple.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.purple.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.purple.day .mat-autocomplete-panel{background:white;color:#000000de}.rtl-container.purple.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:white}.rtl-container.purple.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.purple.day .mat-badge{position:relative}.rtl-container.purple.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.purple.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.purple.day .ng-animate-disabled .mat-badge-content,.rtl-container.purple.day .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.purple.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.purple.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.purple.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.purple.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.purple.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.purple.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.purple.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.purple.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.purple.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.purple.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.purple.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.purple.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.purple.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.purple.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.purple.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.purple.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.purple.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.purple.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.purple.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.purple.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.purple.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.purple.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.purple.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.purple.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.purple.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.purple.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.purple.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.purple.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.purple.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.purple.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.purple.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.purple.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.purple.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.purple.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.purple.day .mat-badge-content{color:#fff;background:#5e4ea5}.cdk-high-contrast-active .rtl-container.purple.day .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.purple.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.purple.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.purple.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.purple.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:white;color:#000000de}.rtl-container.purple.day .mat-button,.rtl-container.purple.day .mat-icon-button,.rtl-container.purple.day .mat-stroked-button{color:inherit;background:transparent}.rtl-container.purple.day .mat-button.mat-primary,.rtl-container.purple.day .mat-icon-button.mat-primary,.rtl-container.purple.day .mat-stroked-button.mat-primary{color:#5e4ea5}.rtl-container.purple.day .mat-button.mat-accent,.rtl-container.purple.day .mat-icon-button.mat-accent,.rtl-container.purple.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.purple.day .mat-button.mat-warn,.rtl-container.purple.day .mat-icon-button.mat-warn,.rtl-container.purple.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.purple.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.purple.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.purple.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.purple.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#5e4ea5}.rtl-container.purple.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.purple.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.purple.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.purple.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.purple.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.purple.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.purple.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.purple.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.purple.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.purple.day .mat-button .mat-ripple-element,.rtl-container.purple.day .mat-icon-button .mat-ripple-element,.rtl-container.purple.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.purple.day .mat-button-focus-overlay{background:black}.rtl-container.purple.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.purple.day .mat-flat-button,.rtl-container.purple.day .mat-raised-button,.rtl-container.purple.day .mat-fab,.rtl-container.purple.day .mat-mini-fab{color:#000000de;background-color:#fff}.rtl-container.purple.day .mat-flat-button.mat-primary,.rtl-container.purple.day .mat-raised-button.mat-primary,.rtl-container.purple.day .mat-fab.mat-primary,.rtl-container.purple.day .mat-mini-fab.mat-primary,.rtl-container.purple.day .mat-flat-button.mat-accent,.rtl-container.purple.day .mat-raised-button.mat-accent,.rtl-container.purple.day .mat-fab.mat-accent,.rtl-container.purple.day .mat-mini-fab.mat-accent,.rtl-container.purple.day .mat-flat-button.mat-warn,.rtl-container.purple.day .mat-raised-button.mat-warn,.rtl-container.purple.day .mat-fab.mat-warn,.rtl-container.purple.day .mat-mini-fab.mat-warn{color:#fff}.rtl-container.purple.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.purple.day .mat-flat-button.mat-primary,.rtl-container.purple.day .mat-raised-button.mat-primary,.rtl-container.purple.day .mat-fab.mat-primary,.rtl-container.purple.day .mat-mini-fab.mat-primary{background-color:#5e4ea5}.rtl-container.purple.day .mat-flat-button.mat-accent,.rtl-container.purple.day .mat-raised-button.mat-accent,.rtl-container.purple.day .mat-fab.mat-accent,.rtl-container.purple.day .mat-mini-fab.mat-accent{background-color:#424242}.rtl-container.purple.day .mat-flat-button.mat-warn,.rtl-container.purple.day .mat-raised-button.mat-warn,.rtl-container.purple.day .mat-fab.mat-warn,.rtl-container.purple.day .mat-mini-fab.mat-warn{background-color:#b00020}.rtl-container.purple.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.purple.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.rtl-container.purple.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.purple.day .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.purple.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.purple.day .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.day .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.purple.day .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.purple.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.purple.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.purple.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.purple.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.purple.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.purple.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.day .mat-button-toggle-standalone,.rtl-container.purple.day .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.purple.day .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.purple.day .mat-button-toggle{color:#00000061}.rtl-container.purple.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.purple.day .mat-button-toggle-appearance-standard{color:#000000de;background:white}.rtl-container.purple.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.purple.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,.12)}.rtl-container.purple.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.purple.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,.12)}.rtl-container.purple.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.purple.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.purple.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.purple.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:white}.rtl-container.purple.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.purple.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.purple.day .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(0,0,0,.12)}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.rtl-container.purple.day .mat-card{background:white;color:#000000de}.rtl-container.purple.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.purple.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.day .mat-card-subtitle{color:#0000008a}.rtl-container.purple.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.purple.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.purple.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.purple.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.purple.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.purple.day .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#5e4ea5}.rtl-container.purple.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.purple.day .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.purple.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.purple.day .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.purple.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.purple.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.purple.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.purple.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.purple.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.purple.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.purple.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#5e4ea5}.rtl-container.purple.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.purple.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.purple.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.purple.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.purple.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.purple.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.purple.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip:after{background:black}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#5e4ea5;color:#fff}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.day .mat-table{background:white}.rtl-container.purple.day .mat-table thead,.rtl-container.purple.day .mat-table tbody,.rtl-container.purple.day .mat-table tfoot,.rtl-container.purple.day mat-header-row,.rtl-container.purple.day mat-row,.rtl-container.purple.day mat-footer-row,.rtl-container.purple.day [mat-header-row],.rtl-container.purple.day [mat-row],.rtl-container.purple.day [mat-footer-row],.rtl-container.purple.day .mat-table-sticky{background:inherit}.rtl-container.purple.day mat-row,.rtl-container.purple.day mat-header-row,.rtl-container.purple.day mat-footer-row,.rtl-container.purple.day th.mat-header-cell,.rtl-container.purple.day td.mat-cell,.rtl-container.purple.day td.mat-footer-cell{border-bottom-color:#0000001f}.rtl-container.purple.day .mat-header-cell{color:#0000008a}.rtl-container.purple.day .mat-cell,.rtl-container.purple.day .mat-footer-cell{color:#000000de}.rtl-container.purple.day .mat-calendar-arrow{fill:#0000008a}.rtl-container.purple.day .mat-datepicker-toggle,.rtl-container.purple.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.purple.day .mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.rtl-container.purple.day .mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.rtl-container.purple.day .mat-calendar-table-header,.rtl-container.purple.day .mat-calendar-body-label{color:#0000008a}.rtl-container.purple.day .mat-calendar-body-cell-content,.rtl-container.purple.day .mat-date-range-input-separator{color:#000000de;border-color:transparent}.rtl-container.purple.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.rtl-container.purple.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.purple.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.purple.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.purple.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.purple.day .mat-calendar-body-in-range:before{background:rgba(94,78,165,.2)}.rtl-container.purple.day .mat-calendar-body-comparison-identical,.rtl-container.purple.day .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.purple.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(94,78,165,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(94,78,165,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.purple.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.purple.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.day .mat-calendar-body-selected{background-color:#5e4ea5;color:#fff}.rtl-container.purple.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#5e4ea566}.rtl-container.purple.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#5e4ea54d}@media (hover: hover){.rtl-container.purple.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#5e4ea54d}}.rtl-container.purple.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(66,66,66,.2)}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}@media (hover: hover){.rtl-container.purple.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(176,0,32,.2)}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}@media (hover: hover){.rtl-container.purple.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}}.rtl-container.purple.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.purple.day .mat-datepicker-toggle-active{color:#5e4ea5}.rtl-container.purple.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.purple.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.purple.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.purple.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:white;color:#000000de}.rtl-container.purple.day .mat-divider{border-top-color:#0000001f}.rtl-container.purple.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.purple.day .mat-expansion-panel{background:white;color:#000000de}.rtl-container.purple.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.day .mat-action-row{border-top-color:#0000001f}.rtl-container.purple.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.purple.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.purple.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.purple.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:white}}.rtl-container.purple.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.purple.day .mat-expansion-panel-header-description,.rtl-container.purple.day .mat-expansion-indicator:after{color:#0000008a}.rtl-container.purple.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.purple.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.purple.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header{height:48px}.mat-expansion-panel-header.mat-expanded{height:64px}.rtl-container.purple.day .mat-form-field-label,.rtl-container.purple.day .mat-hint{color:#0009}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-label{color:#5e4ea5}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.purple.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.purple.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#5e4ea5}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.purple.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#5e4ea5}.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#b00020}.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.purple.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.purple.day .mat-error{color:#b00020}.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.purple.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.purple.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.purple.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.purple.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.purple.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.purple.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.purple.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.purple.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.purple.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.purple.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#5e4ea5}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.purple.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.purple.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.purple.day .mat-icon.mat-primary{color:#5e4ea5}.rtl-container.purple.day .mat-icon.mat-accent{color:#424242}.rtl-container.purple.day .mat-icon.mat-warn{color:#b00020}.rtl-container.purple.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.purple.day .mat-input-element:disabled,.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.rtl-container.purple.day .mat-input-element{caret-color:#5e4ea5}.rtl-container.purple.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.purple.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.purple.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.purple.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.purple.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.purple.day .mat-form-field.mat-warn .mat-input-element,.rtl-container.purple.day .mat-form-field-invalid .mat-input-element{caret-color:#b00020}.rtl-container.purple.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.purple.day .mat-list-base .mat-list-item,.rtl-container.purple.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.purple.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.purple.day .mat-list-item-disabled{background-color:#eee}.rtl-container.purple.day .mat-list-option:hover,.rtl-container.purple.day .mat-list-option:focus,.rtl-container.purple.day .mat-nav-list .mat-list-item:hover,.rtl-container.purple.day .mat-nav-list .mat-list-item:focus,.rtl-container.purple.day .mat-action-list .mat-list-item:hover,.rtl-container.purple.day .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.purple.day .mat-list-single-selected-option,.rtl-container.purple.day .mat-list-single-selected-option:hover,.rtl-container.purple.day .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.purple.day .mat-menu-panel{background:white}.rtl-container.purple.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.day .mat-menu-item{background:transparent;color:#000000de}.rtl-container.purple.day .mat-menu-item[disabled],.rtl-container.purple.day .mat-menu-item[disabled] .mat-menu-submenu-icon,.rtl-container.purple.day .mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.rtl-container.purple.day .mat-menu-item .mat-icon-no-color,.rtl-container.purple.day .mat-menu-submenu-icon{color:#0000008a}.rtl-container.purple.day .mat-menu-item:hover:not([disabled]),.rtl-container.purple.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.purple.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.purple.day .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.purple.day .mat-paginator{background:white}.rtl-container.purple.day .mat-paginator,.rtl-container.purple.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.purple.day .mat-paginator-decrement,.rtl-container.purple.day .mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.rtl-container.purple.day .mat-paginator-first,.rtl-container.purple.day .mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.rtl-container.purple.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.purple.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.purple.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.purple.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.mat-paginator-container{min-height:56px}.rtl-container.purple.day .mat-progress-bar-background{fill:#d3cfe5}.rtl-container.purple.day .mat-progress-bar-buffer{background-color:#d3cfe5}.rtl-container.purple.day .mat-progress-bar-fill:after{background-color:#5e4ea5}.rtl-container.purple.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.purple.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.purple.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.purple.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.purple.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.purple.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.purple.day .mat-progress-spinner circle,.rtl-container.purple.day .mat-spinner circle{stroke:#5e4ea5}.rtl-container.purple.day .mat-progress-spinner.mat-accent circle,.rtl-container.purple.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.purple.day .mat-progress-spinner.mat-warn circle,.rtl-container.purple.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.purple.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.purple.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#5e4ea5}.rtl-container.purple.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.purple.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#5e4ea5}.rtl-container.purple.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.purple.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.purple.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.purple.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.purple.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.purple.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.purple.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.purple.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.purple.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.rtl-container.purple.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.rtl-container.purple.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.purple.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.purple.day .mat-select-value{color:#000000de}.rtl-container.purple.day .mat-select-placeholder{color:#0000006b}.rtl-container.purple.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.purple.day .mat-select-arrow{color:#0000008a}.rtl-container.purple.day .mat-select-panel{background:white}.rtl-container.purple.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.purple.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#5e4ea5}.rtl-container.purple.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.purple.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.purple.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.purple.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.purple.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.purple.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.purple.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.purple.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.purple.day .mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.purple.day .mat-drawer-side.mat-drawer-end,.rtl-container.purple.day [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}.rtl-container.purple.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.purple.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.purple.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.purple.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.purple.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.purple.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#5e4ea5}.rtl-container.purple.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#5e4ea58a}.rtl-container.purple.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#5e4ea5}.rtl-container.purple.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.purple.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.purple.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.purple.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.purple.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.rtl-container.purple.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.purple.day .mat-slider-track-background{background-color:#00000042}.rtl-container.purple.day .mat-primary .mat-slider-track-fill,.rtl-container.purple.day .mat-primary .mat-slider-thumb,.rtl-container.purple.day .mat-primary .mat-slider-thumb-label{background-color:#5e4ea5}.rtl-container.purple.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.day .mat-primary .mat-slider-focus-ring{background-color:#5e4ea533}.rtl-container.purple.day .mat-accent .mat-slider-track-fill,.rtl-container.purple.day .mat-accent .mat-slider-thumb,.rtl-container.purple.day .mat-accent .mat-slider-thumb-label{background-color:#424242}.rtl-container.purple.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.purple.day .mat-warn .mat-slider-track-fill,.rtl-container.purple.day .mat-warn .mat-slider-thumb,.rtl-container.purple.day .mat-warn .mat-slider-thumb-label{background-color:#b00020}.rtl-container.purple.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.purple.day .mat-slider:hover .mat-slider-track-background,.rtl-container.purple.day .mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.rtl-container.purple.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.purple.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.purple.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.purple.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.purple.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.purple.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.purple.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.purple.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.purple.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.purple.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.purple.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.purple.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.purple.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.purple.day .mat-step-header.cdk-keyboard-focused,.rtl-container.purple.day .mat-step-header.cdk-program-focused,.rtl-container.purple.day .mat-step-header:hover:not([aria-disabled]),.rtl-container.purple.day .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.purple.day .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.purple.day .mat-step-header:hover{background:none}}.rtl-container.purple.day .mat-step-header .mat-step-label,.rtl-container.purple.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.purple.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.purple.day .mat-step-header .mat-step-icon-selected,.rtl-container.purple.day .mat-step-header .mat-step-icon-state-done,.rtl-container.purple.day .mat-step-header .mat-step-icon-state-edit{background-color:#5e4ea5;color:#fff}.rtl-container.purple.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.purple.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.purple.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.purple.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.purple.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.purple.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.purple.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.purple.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.purple.day .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#b00020}.rtl-container.purple.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.purple.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.purple.day .mat-stepper-horizontal,.rtl-container.purple.day .mat-stepper-vertical{background-color:#fff}.rtl-container.purple.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.purple.day .mat-horizontal-stepper-header:before,.rtl-container.purple.day .mat-horizontal-stepper-header:after,.rtl-container.purple.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.mat-horizontal-stepper-header{height:72px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.mat-vertical-stepper-header{padding:24px}.mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.rtl-container.purple.day .mat-sort-header-arrow{color:#757575}.rtl-container.purple.day .mat-tab-nav-bar,.rtl-container.purple.day .mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.purple.day .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.purple.day .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.rtl-container.purple.day .mat-tab-label,.rtl-container.purple.day .mat-tab-link{color:#000000de}.rtl-container.purple.day .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.purple.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.purple.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.purple.day .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.purple.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.purple.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#8e83c04d}.rtl-container.purple.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#5e4ea5}.rtl-container.purple.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.purple.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.purple.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.purple.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.purple.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.purple.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#8e83c04d}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#5e4ea5}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.purple.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#424242}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.purple.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#b00020}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.purple.day .mat-toolbar{background:whitesmoke;color:#000000de}.rtl-container.purple.day .mat-toolbar.mat-primary{background:#5e4ea5;color:#fff}.rtl-container.purple.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.purple.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.purple.day .mat-toolbar .mat-form-field-underline,.rtl-container.purple.day .mat-toolbar .mat-form-field-ripple,.rtl-container.purple.day .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.purple.day .mat-toolbar .mat-form-field-label,.rtl-container.purple.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.purple.day .mat-toolbar .mat-select-value,.rtl-container.purple.day .mat-toolbar .mat-select-arrow,.rtl-container.purple.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.purple.day .mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar-multiple-rows{min-height:64px}.mat-toolbar-row,.mat-toolbar-single-row{height:64px}@media (max-width: 599px){.mat-toolbar-multiple-rows{min-height:56px}.mat-toolbar-row,.mat-toolbar-single-row{height:56px}}.rtl-container.purple.day .mat-tooltip{background:rgba(97,97,97,.9)}.rtl-container.purple.day .mat-tree{background:white}.rtl-container.purple.day .mat-tree-node,.rtl-container.purple.day .mat-nested-tree-node{color:#000000de}.mat-tree-node{min-height:48px}.rtl-container.purple.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.purple.day .mat-simple-snackbar-action{color:#424242}.rtl-container.purple.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.purple.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.purple.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.purple.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.purple.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.purple.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.purple.day .rtl-top-toolbar{border-bottom:1px solid white}.rtl-container.purple.day .bg-primary{background-color:#5e4ea5;color:#fff}.rtl-container.purple.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#5e4ea5}.rtl-container.purple.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.purple.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.purple.day .mat-tab-label.mat-tab-label-active{color:#5e4ea5}.rtl-container.purple.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#5e4ea5}.rtl-container.purple.day .mat-tab-label .tab-badge .mat-badge-content{background:rgba(0,0,0,.54)}.rtl-container.purple.day .ng-fa-icon,.rtl-container.purple.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.purple.day .mat-form-field-suffix{color:#0000008a}.rtl-container.purple.day .mat-stroked-button.mat-primary{border-color:#5e4ea5}.rtl-container.purple.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.purple.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.purple.day .selected-color{border-color:#8e83c0}.rtl-container.purple.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.purple.day .page-title-container,.rtl-container.purple.day .page-sub-title-container{color:#0000008a}.rtl-container.purple.day .page-title-container .page-title-img,.rtl-container.purple.day .page-sub-title-container .page-title-img{color:#00000061}.rtl-container.purple.day .page-title-container .mat-input-element,.rtl-container.purple.day .page-title-container .mat-radio-label-content,.rtl-container.purple.day .page-title-container .theme-name,.rtl-container.purple.day .page-sub-title-container .mat-input-element,.rtl-container.purple.day .page-sub-title-container .mat-radio-label-content,.rtl-container.purple.day .page-sub-title-container .theme-name{color:#000000de}.rtl-container.purple.day .cc-data-block .cc-data-title{color:#5e4ea5}.rtl-container.purple.day .active-link,.rtl-container.purple.day .active-link .fa-icon-small{color:#5e4ea5;font-weight:500;cursor:pointer;fill:#5e4ea5}.rtl-container.purple.day .mat-tree-node:hover,.rtl-container.purple.day .mat-nested-tree-node-parent:hover,.rtl-container.purple.day .mat-select-panel .mat-option:hover,.rtl-container.purple.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover{color:#5e4ea5;cursor:pointer;background:rgba(0,0,0,.04)}.rtl-container.purple.day .mat-tree-node:hover .ng-fa-icon,.rtl-container.purple.day .mat-tree-node:hover .mat-icon,.rtl-container.purple.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.purple.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.purple.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.purple.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.purple.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.purple.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon{color:#5e4ea5}.rtl-container.purple.day .mat-tree-node:hover .sidenav-img svg,.rtl-container.purple.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.purple.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.purple.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg{fill:#5e4ea5}.rtl-container.purple.day .mat-tree-node .sidenav-img,.rtl-container.purple.day .mat-nested-tree-node .sidenav-img,.rtl-container.purple.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.purple.day .page-title-container .page-title-img,.rtl-container.purple.day svg.top-icon-small{fill:#000000de}.rtl-container.purple.day .mat-progress-bar-fill:after{background-color:#312579}.rtl-container.purple.day .modal-qr-code-container{background:rgba(0,0,0,.12)}.rtl-container.purple.day .mat-tab-label,.rtl-container.purple.day .mat-tab-link{color:#0000008a}.rtl-container.purple.day .mat-card,.rtl-container.purple.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid rgba(0,0,0,.12)}.rtl-container.purple.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.purple.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.purple.day .dashboard-info-title{color:#5e4ea5}.rtl-container.purple.day .dashboard-info-value{color:#0000008a}.rtl-container.purple.day .color-primary{color:#5e4ea5!important}.rtl-container.purple.day .dot-primary{background-color:#5e4ea5!important}.rtl-container.purple.day .dot-primary-lighter{background-color:#8e83c0!important}.rtl-container.purple.day .mat-expansion-panel.flat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.purple.day .mat-tooltip{font-size:120%}.rtl-container.purple.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.purple.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.purple.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.purple.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.purple.day svg .fill-color-1{fill:#fff}.rtl-container.purple.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.purple.day svg .fill-color-3{fill:#f2f2f2}.rtl-container.purple.day svg .fill-color-4{fill:#f2f2f2}.rtl-container.purple.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.purple.day svg .fill-color-6{fill:#fff}.rtl-container.purple.day svg .fill-color-7{fill:#cbcbcb}.rtl-container.purple.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.purple.day svg .fill-color-9{fill:#fff}.rtl-container.purple.day svg .fill-color-10{fill:#e6e6e6}.rtl-container.purple.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.purple.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.purple.day svg .fill-color-13{fill:#4a4a4a}.rtl-container.purple.day svg .fill-color-14{fill:#4a4a4a}.rtl-container.purple.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.purple.day svg .fill-color-16{fill:#404040}.rtl-container.purple.day svg .fill-color-17{fill:#404040}.rtl-container.purple.day svg .fill-color-18{fill:#000}.rtl-container.purple.day svg .fill-color-19{fill:#4a4a4a}.rtl-container.purple.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.purple.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.purple.day svg .fill-color-22{fill:#cbcbcb}.rtl-container.purple.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.purple.day svg .fill-color-24{fill:#000}.rtl-container.purple.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.purple.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.purple.day svg .fill-color-27{fill:#000}.rtl-container.purple.day svg .fill-color-28{fill:#313131}.rtl-container.purple.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.purple.day svg .fill-color-30{fill:#fff}.rtl-container.purple.day svg .fill-color-31{fill:#5e4ea5}.rtl-container.purple.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.purple.day svg .fill-color-primary{fill:#5e4ea5}.rtl-container.purple.day svg .fill-color-primary-lighter{fill:#8e83c0}.rtl-container.purple.day svg .fill-color-primary-darker{fill:#5e4ea5}.rtl-container.purple.day .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.purple.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.purple.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.purple.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.purple.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.purple.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.purple.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#5e4ea5}.rtl-container.purple.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.purple.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#312579}.rtl-container.purple.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.purple.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#afa7d2}.rtl-container.purple.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.purple.day .mat-progress-bar-buffer{background-color:#cfcae4}.rtl-container.purple.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.purple.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.purple.day .foreground.mat-progress-spinner circle,.rtl-container.purple.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.purple.day .mat-toolbar-row,.rtl-container.purple.day .mat-toolbar-single-row{height:5rem}.rtl-container.purple.day .lnd-info{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.purple.day a{color:#5e4ea5}.rtl-container.purple.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.purple.day .h-active-link{border-bottom:2px solid white}.rtl-container.purple.day .mat-icon-36{color:#0000008a}.rtl-container.purple.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.purple.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.purple.day .genseed-message{width:10%;color:#5e4ea5}.rtl-container.purple.day .material-icons.primary{color:#5e4ea5}.rtl-container.purple.day .material-icons.accent{color:#424242}.rtl-container.purple.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.purple.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.purple.day .row-disabled{background-color:gray}.rtl-container.purple.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.purple.day .mat-menu-panel{min-width:6.4rem}.rtl-container.purple.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.purple.day .horizontal-button:hover{background:#8e83c0;color:#424242}.rtl-container.purple.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#5e4ea5}.rtl-container.purple.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.purple.day .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.purple.day .mat-button,.rtl-container.purple.day .mat-icon-button,.rtl-container.purple.day .mat-stroked-button,.rtl-container.purple.day .mat-flat-button{border-radius:2px}.rtl-container.purple.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.purple.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.purple.day .mat-cell,.rtl-container.purple.day .mat-header-cell,.rtl-container.purple.day .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#0000001f}.rtl-container.purple.day table.mat-table{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.purple.day table.mat-table thead tr th{color:#000}.rtl-container.purple.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.purple.day .bordered-box{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.purple.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.purple.day .mat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.purple.day .more-button{color:#00000061}.rtl-container.purple.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.purple.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.purple.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.purple.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.purple.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.purple.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.purple.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.purple.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.purple.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.purple.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.purple.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.purple.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.purple.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.purple.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.purple.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.purple.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.purple.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.purple.day .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#afa7d2!important}.rtl-container.purple.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#56479d!important}.rtl-container.purple.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.purple.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.purple.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.purple.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.purple.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid rgba(0,0,0,.54)}.rtl-container.purple.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.purple.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.purple.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.purple.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.purple.day .color-warn{color:#b00020}.rtl-container.purple.day .fill-warn{fill:#b00020}.rtl-container.purple.day .alert{border:1px solid rgba(0,0,0,.54);color:#0000008a;background-color:#0000000a}.rtl-container.purple.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.purple.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.purple.day .alert.alert-info a{color:#004085}.rtl-container.purple.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.purple.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.purple.day .alert.alert-warn a{color:#856404}.rtl-container.purple.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.purple.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.purple.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.purple.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.purple.day .help-expansion .mat-expansion-panel-header,.rtl-container.purple.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.purple.day .help-expansion .mat-expansion-indicator:after,.rtl-container.purple.day .help-expansion .mat-expansion-panel-content,.rtl-container.purple.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.purple.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.purple.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.purple.day .failed-status{color:#b00020}.rtl-container.purple.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.purple.day .svg-fill-primary{fill:#5e4ea5}.rtl-container.purple.day .svg-fill-primary-lighter{fill:#8e83c0}.rtl-container.purple.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.purple.day ngx-charts-bar-vertical text,.rtl-container.purple.day ngx-charts-bar-vertical-2d text{fill:#000000de}.rtl-container.purple.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.purple.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.purple.day .mat-paginator-container{padding:0}.rtl-container.purple.day .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.purple.day .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.purple.day .invoice-animation-div .particles-circle{position:absolute;background-color:#5e4ea5;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #5e4ea5;background-color:transparent}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.purple.day .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.purple.day .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.purple.day .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.purple.day .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.purple.day .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.purple.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-option{color:#fff}.rtl-container.purple.night .mat-option:hover:not(.mat-option-disabled),.rtl-container.purple.night .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.purple.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.purple.night .mat-option.mat-active{background:rgba(0,0,0,.04);color:#fff}.rtl-container.purple.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#5e4ea5}.rtl-container.purple.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.purple.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.purple.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.purple.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.purple.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.purple.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#5e4ea5}.rtl-container.purple.night .mat-pseudo-checkbox-checked,.rtl-container.purple.night .mat-pseudo-checkbox-indeterminate,.rtl-container.purple.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.purple.night .mat-accent .mat-pseudo-checkbox-indeterminate{background:#eeeeee}.rtl-container.purple.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.purple.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.purple.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.purple.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.purple.night .mat-app-background,.rtl-container.purple.night.mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.purple.night .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.purple.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.purple.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.purple.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.purple.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.purple.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.purple.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.purple.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.purple.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.purple.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.purple.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.purple.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.purple.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.purple.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.purple.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.purple.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.purple.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.purple.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.purple.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.purple.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.purple.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.purple.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.purple.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.purple.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.purple.night .mat-badge{position:relative}.rtl-container.purple.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.purple.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.purple.night .ng-animate-disabled .mat-badge-content,.rtl-container.purple.night .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.purple.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.purple.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.purple.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.purple.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.purple.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.purple.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.purple.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.purple.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.purple.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.purple.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.purple.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.purple.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.purple.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.purple.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.purple.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.purple.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.purple.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.purple.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.purple.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.purple.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.purple.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.purple.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.purple.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.purple.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.purple.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.purple.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.purple.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.purple.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.purple.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.purple.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.purple.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.purple.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.purple.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.purple.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.purple.night .mat-badge-content{color:#fff;background:#5e4ea5}.cdk-high-contrast-active .rtl-container.purple.night .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.purple.night .mat-badge-accent .mat-badge-content{background:#eeeeee;color:#000}.rtl-container.purple.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.purple.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.purple.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.purple.night .mat-button,.rtl-container.purple.night .mat-icon-button,.rtl-container.purple.night .mat-stroked-button{color:inherit;background:transparent}.rtl-container.purple.night .mat-button.mat-primary,.rtl-container.purple.night .mat-icon-button.mat-primary,.rtl-container.purple.night .mat-stroked-button.mat-primary{color:#5e4ea5}.rtl-container.purple.night .mat-button.mat-accent,.rtl-container.purple.night .mat-icon-button.mat-accent,.rtl-container.purple.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.purple.night .mat-button.mat-warn,.rtl-container.purple.night .mat-icon-button.mat-warn,.rtl-container.purple.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.purple.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.purple.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.purple.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.purple.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#5e4ea5}.rtl-container.purple.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.purple.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.purple.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.purple.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.purple.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.purple.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.purple.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.purple.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.purple.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.purple.night .mat-button .mat-ripple-element,.rtl-container.purple.night .mat-icon-button .mat-ripple-element,.rtl-container.purple.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.purple.night .mat-button-focus-overlay{background:white}.rtl-container.purple.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.purple.night .mat-flat-button,.rtl-container.purple.night .mat-raised-button,.rtl-container.purple.night .mat-fab,.rtl-container.purple.night .mat-mini-fab{color:#fff;background-color:#363636}.rtl-container.purple.night .mat-flat-button.mat-primary,.rtl-container.purple.night .mat-raised-button.mat-primary,.rtl-container.purple.night .mat-fab.mat-primary,.rtl-container.purple.night .mat-mini-fab.mat-primary{color:#fff}.rtl-container.purple.night .mat-flat-button.mat-accent,.rtl-container.purple.night .mat-raised-button.mat-accent,.rtl-container.purple.night .mat-fab.mat-accent,.rtl-container.purple.night .mat-mini-fab.mat-accent{color:#000}.rtl-container.purple.night .mat-flat-button.mat-warn,.rtl-container.purple.night .mat-raised-button.mat-warn,.rtl-container.purple.night .mat-fab.mat-warn,.rtl-container.purple.night .mat-mini-fab.mat-warn{color:#fff}.rtl-container.purple.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.purple.night .mat-flat-button.mat-primary,.rtl-container.purple.night .mat-raised-button.mat-primary,.rtl-container.purple.night .mat-fab.mat-primary,.rtl-container.purple.night .mat-mini-fab.mat-primary{background-color:#5e4ea5}.rtl-container.purple.night .mat-flat-button.mat-accent,.rtl-container.purple.night .mat-raised-button.mat-accent,.rtl-container.purple.night .mat-fab.mat-accent,.rtl-container.purple.night .mat-mini-fab.mat-accent{background-color:#eee}.rtl-container.purple.night .mat-flat-button.mat-warn,.rtl-container.purple.night .mat-raised-button.mat-warn,.rtl-container.purple.night .mat-fab.mat-warn,.rtl-container.purple.night .mat-mini-fab.mat-warn{background-color:#ff343b}.rtl-container.purple.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.purple.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#404040}.rtl-container.purple.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.purple.night .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.purple.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.purple.night .mat-mini-fab.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.purple.night .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.purple.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.purple.night .mat-mini-fab.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.purple.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.purple.night .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.purple.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.purple.night .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.purple.night .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.purple.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.purple.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.purple.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.purple.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.purple.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.purple.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.night .mat-button-toggle-standalone,.rtl-container.purple.night .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.purple.night .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.purple.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.purple.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(255,255,255,.3)}.rtl-container.purple.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.purple.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(255,255,255,.3)}.rtl-container.purple.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.purple.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.purple.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.purple.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.purple.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.purple.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.purple.night .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(255,255,255,.3)}.rtl-container.purple.night .mat-card{background:#202020;color:#fff}.rtl-container.purple.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.purple.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.purple.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.purple.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.purple.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.purple.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.purple.night .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#5e4ea5}.rtl-container.purple.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.purple.night .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.purple.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.purple.night .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.purple.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.purple.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.purple.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.purple.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.purple.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.purple.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#5e4ea5}.rtl-container.purple.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.purple.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eeeeee}.rtl-container.purple.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.purple.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.purple.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.purple.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.purple.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip:after{background:white}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.purple.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.purple.night .mat-table{background:#202020}.rtl-container.purple.night .mat-table thead,.rtl-container.purple.night .mat-table tbody,.rtl-container.purple.night .mat-table tfoot,.rtl-container.purple.night mat-header-row,.rtl-container.purple.night mat-row,.rtl-container.purple.night mat-footer-row,.rtl-container.purple.night [mat-header-row],.rtl-container.purple.night [mat-row],.rtl-container.purple.night [mat-footer-row],.rtl-container.purple.night .mat-table-sticky{background:inherit}.rtl-container.purple.night mat-row,.rtl-container.purple.night mat-header-row,.rtl-container.purple.night mat-footer-row,.rtl-container.purple.night th.mat-header-cell,.rtl-container.purple.night td.mat-cell,.rtl-container.purple.night td.mat-footer-cell{border-bottom-color:#ffffff4d}.rtl-container.purple.night .mat-cell,.rtl-container.purple.night .mat-footer-cell{color:#fff}.rtl-container.purple.night .mat-calendar-arrow{fill:#fff}.rtl-container.purple.night .mat-datepicker-toggle,.rtl-container.purple.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.purple.night .mat-datepicker-content .mat-calendar-previous-button{color:#fff}.rtl-container.purple.night .mat-calendar-table-header-divider:after{background:rgba(255,255,255,.3)}.rtl-container.purple.night .mat-calendar-body-cell-content,.rtl-container.purple.night .mat-date-range-input-separator{color:#fff;border-color:transparent}.rtl-container.purple.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.purple.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.purple.night .mat-calendar-body-in-range:before{background:rgba(94,78,165,.2)}.rtl-container.purple.night .mat-calendar-body-comparison-identical,.rtl-container.purple.night .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.purple.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(94,78,165,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(94,78,165,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.purple.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.purple.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.night .mat-calendar-body-selected{background-color:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#5e4ea566}.rtl-container.purple.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#5e4ea54d}@media (hover: hover){.rtl-container.purple.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#5e4ea54d}}.rtl-container.purple.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#202020;color:#fff}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(238,238,238,.2)}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.purple.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}@media (hover: hover){.rtl-container.purple.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(255,52,59,.2)}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.purple.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.purple.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.purple.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.purple.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}@media (hover: hover){.rtl-container.purple.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}}.rtl-container.purple.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.purple.night .mat-datepicker-toggle-active{color:#5e4ea5}.rtl-container.purple.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.purple.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.purple.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.purple.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.purple.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.purple.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.purple.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.purple.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.purple.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.purple.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.purple.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.purple.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.purple.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.purple.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.purple.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.purple.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-label{color:#5e4ea5}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.purple.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.purple.night .mat-form-field-ripple{background-color:#fff}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#5e4ea5}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.purple.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.purple.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#5e4ea5}.rtl-container.purple.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.purple.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#ff343b}.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.purple.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.purple.night .mat-error{color:#ff343b}.rtl-container.purple.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.purple.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.purple.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.purple.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.purple.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.purple.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.purple.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.purple.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.purple.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.purple.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.purple.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#5e4ea5}.rtl-container.purple.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.purple.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.purple.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.purple.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.purple.night .mat-icon.mat-primary{color:#5e4ea5}.rtl-container.purple.night .mat-icon.mat-accent{color:#eee}.rtl-container.purple.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.purple.night .mat-input-element{caret-color:#5e4ea5}.rtl-container.purple.night .mat-input-element:not(.mat-native-select-inline) option{color:#000000de}.rtl-container.purple.night .mat-input-element:not(.mat-native-select-inline) option:disabled{color:#00000061}.rtl-container.purple.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.purple.night .mat-form-field.mat-warn .mat-input-element,.rtl-container.purple.night .mat-form-field-invalid .mat-input-element{caret-color:#ff343b}.rtl-container.purple.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.purple.night .mat-list-base .mat-list-item,.rtl-container.purple.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.purple.night .mat-list-item-disabled{background-color:#444}.rtl-container.purple.night .mat-list-option:hover,.rtl-container.purple.night .mat-list-option:focus,.rtl-container.purple.night .mat-nav-list .mat-list-item:hover,.rtl-container.purple.night .mat-nav-list .mat-list-item:focus,.rtl-container.purple.night .mat-action-list .mat-list-item:hover,.rtl-container.purple.night .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.purple.night .mat-list-single-selected-option,.rtl-container.purple.night .mat-list-single-selected-option:hover,.rtl-container.purple.night .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.purple.night .mat-menu-panel{background:#202020}.rtl-container.purple.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.night .mat-menu-item{background:transparent;color:#fff}.rtl-container.purple.night .mat-menu-item .mat-icon-no-color,.rtl-container.purple.night .mat-menu-submenu-icon{color:#fff}.rtl-container.purple.night .mat-menu-item:hover:not([disabled]),.rtl-container.purple.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.purple.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.purple.night .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.purple.night .mat-paginator{background:#202020}.rtl-container.purple.night .mat-paginator-decrement,.rtl-container.purple.night .mat-paginator-increment{border-top:2px solid white;border-right:2px solid white}.rtl-container.purple.night .mat-paginator-first,.rtl-container.purple.night .mat-paginator-last{border-top:2px solid white}.rtl-container.purple.night .mat-progress-bar-background{fill:#211d33}.rtl-container.purple.night .mat-progress-bar-buffer{background-color:#211d33}.rtl-container.purple.night .mat-progress-bar-fill:after{background-color:#5e4ea5}.rtl-container.purple.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.purple.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.purple.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.purple.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.purple.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.purple.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.purple.night .mat-progress-spinner circle,.rtl-container.purple.night .mat-spinner circle{stroke:#5e4ea5}.rtl-container.purple.night .mat-progress-spinner.mat-accent circle,.rtl-container.purple.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.purple.night .mat-progress-spinner.mat-warn circle,.rtl-container.purple.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.purple.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#5e4ea5}.rtl-container.purple.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.purple.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#5e4ea5}.rtl-container.purple.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.purple.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.purple.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.purple.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.purple.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.purple.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.purple.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.purple.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.purple.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.purple.night .mat-select-value{color:#fff}.rtl-container.purple.night .mat-select-panel{background:#202020}.rtl-container.purple.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.purple.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#5e4ea5}.rtl-container.purple.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.purple.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.purple.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.purple.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.purple.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.purple.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.purple.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.purple.night .mat-drawer-side{border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.purple.night .mat-drawer-side.mat-drawer-end,.rtl-container.purple.night [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(255,255,255,.3);border-right:none}.rtl-container.purple.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.purple.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.purple.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.purple.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.purple.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.purple.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#5e4ea5}.rtl-container.purple.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#5e4ea58a}.rtl-container.purple.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#5e4ea5}.rtl-container.purple.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.purple.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.purple.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.purple.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.purple.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#bdbdbd}.rtl-container.purple.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.purple.night .mat-primary .mat-slider-track-fill,.rtl-container.purple.night .mat-primary .mat-slider-thumb,.rtl-container.purple.night .mat-primary .mat-slider-thumb-label{background-color:#5e4ea5}.rtl-container.purple.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.night .mat-primary .mat-slider-focus-ring{background-color:#5e4ea533}.rtl-container.purple.night .mat-accent .mat-slider-track-fill,.rtl-container.purple.night .mat-accent .mat-slider-thumb,.rtl-container.purple.night .mat-accent .mat-slider-thumb-label{background-color:#eee}.rtl-container.purple.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.purple.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.purple.night .mat-warn .mat-slider-track-fill,.rtl-container.purple.night .mat-warn .mat-slider-thumb,.rtl-container.purple.night .mat-warn .mat-slider-thumb-label{background-color:#ff343b}.rtl-container.purple.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.purple.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.purple.night .mat-slider:hover .mat-slider-track-background,.rtl-container.purple.night .mat-slider.cdk-focused .mat-slider-track-background{background-color:#fff9}.rtl-container.purple.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.purple.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.purple.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.purple.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.purple.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.purple.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.purple.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.purple.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.purple.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:transparent}.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#fff9}.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.purple.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.purple.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.purple.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.purple.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.purple.night .mat-step-header.cdk-keyboard-focused,.rtl-container.purple.night .mat-step-header.cdk-program-focused,.rtl-container.purple.night .mat-step-header:hover:not([aria-disabled]),.rtl-container.purple.night .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.purple.night .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.purple.night .mat-step-header:hover{background:none}}.rtl-container.purple.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.purple.night .mat-step-header .mat-step-icon-selected,.rtl-container.purple.night .mat-step-header .mat-step-icon-state-done,.rtl-container.purple.night .mat-step-header .mat-step-icon-state-edit{background-color:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.purple.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.purple.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.purple.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.purple.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.purple.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.purple.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.purple.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.purple.night .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#ff343b}.rtl-container.purple.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.purple.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.purple.night .mat-stepper-horizontal,.rtl-container.purple.night .mat-stepper-vertical{background-color:#202020}.rtl-container.purple.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.purple.night .mat-horizontal-stepper-header:before,.rtl-container.purple.night .mat-horizontal-stepper-header:after,.rtl-container.purple.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.purple.night .mat-tab-nav-bar,.rtl-container.purple.night .mat-tab-header{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.purple.night .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.purple.night .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(255,255,255,.3);border-bottom:none}.rtl-container.purple.night .mat-tab-label,.rtl-container.purple.night .mat-tab-link{color:#fff}.rtl-container.purple.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.purple.night .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.purple.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.purple.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#8e83c04d}.rtl-container.purple.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#5e4ea5}.rtl-container.purple.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.purple.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.purple.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.purple.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.purple.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.purple.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#8e83c04d}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#5e4ea5}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.purple.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#eee}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#000}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#000;opacity:.4}.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#000;opacity:.12}.rtl-container.purple.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#ff343b}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.purple.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.purple.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.purple.night .mat-toolbar.mat-primary{background:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-toolbar.mat-accent{background:#eeeeee;color:#000}.rtl-container.purple.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.purple.night .mat-toolbar .mat-form-field-underline,.rtl-container.purple.night .mat-toolbar .mat-form-field-ripple,.rtl-container.purple.night .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.purple.night .mat-toolbar .mat-form-field-label,.rtl-container.purple.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.purple.night .mat-toolbar .mat-select-value,.rtl-container.purple.night .mat-toolbar .mat-select-arrow,.rtl-container.purple.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.purple.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.purple.night .mat-tree{background:#202020}.rtl-container.purple.night .mat-tree-node,.rtl-container.purple.night .mat-nested-tree-node{color:#fff}.rtl-container.purple.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.purple.night .mat-simple-snackbar-action{color:inherit}.rtl-container.purple.night .mat-primary{color:#9787ff}.rtl-container.purple.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.purple.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.purple.night .bg-primary{background-color:#5e4ea5;color:#fff}.rtl-container.purple.night .mat-tab-label.mat-tab-label-active{color:#9787ff}.rtl-container.purple.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#9787ff}.rtl-container.purple.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.purple.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.purple.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.purple.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.purple.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.purple.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#9787ff}.rtl-container.purple.night .cc-data-block .cc-data-title{color:#9787ff}.rtl-container.purple.night .mat-stroked-button.mat-primary{border-color:#9787ff;color:#9787ff}.rtl-container.purple.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.purple.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.purple.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.purple.night .active-link,.rtl-container.purple.night .active-link .fa-icon-small,.rtl-container.purple.night .mat-select-panel .mat-option.mat-active,.rtl-container.purple.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#9787ff;font-weight:500;cursor:pointer;fill:#9787ff}.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.purple.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#9787ff}.rtl-container.purple.night .mat-tree-node:hover,.rtl-container.purple.night .mat-nested-tree-node-parent:hover,.rtl-container.purple.night .mat-select-panel .mat-option:hover,.rtl-container.purple.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.purple.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled){color:#9787ff;cursor:pointer;background:rgba(255,255,255,.06)}.rtl-container.purple.night .mat-tree-node:hover .ng-fa-icon,.rtl-container.purple.night .mat-tree-node:hover .mat-icon,.rtl-container.purple.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.purple.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.purple.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.purple.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.purple.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.purple.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon{color:#9787ff}.rtl-container.purple.night .mat-tree-node:hover .sidenav-img svg,.rtl-container.purple.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.purple.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.purple.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.purple.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.purple.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg{fill:#9787ff}.rtl-container.purple.night .mat-tree-node .sidenav-img,.rtl-container.purple.night .mat-nested-tree-node .sidenav-img,.rtl-container.purple.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.purple.night .page-title-container .page-title-img,.rtl-container.purple.night svg.top-icon-small{fill:#fff}.rtl-container.purple.night .selected-color{border-color:#8e83c0}.rtl-container.purple.night .mat-progress-bar-fill:after{background-color:#56479d}.rtl-container.purple.night .chart-legend .legend-label:hover,.rtl-container.purple.night .chart-legend .legend-label .active .legend-label-text{color:#fff!important}.rtl-container.purple.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.purple.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#9787ff}.rtl-container.purple.night .mat-select-panel{background-color:#262626}.rtl-container.purple.night .mat-tree{background:#262626}.rtl-container.purple.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.purple.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.purple.night .dashboard-info-title{color:#9787ff}.rtl-container.purple.night .dashboard-info-value,.rtl-container.purple.night .dashboard-capacity-header{color:#fff}.rtl-container.purple.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.purple.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.purple.night .color-primary{color:#9787ff!important}.rtl-container.purple.night .dot-primary{background-color:#9787ff!important}.rtl-container.purple.night .dot-primary-lighter{background-color:#5e4ea5!important}.rtl-container.purple.night .mat-stepper-vertical{background-color:#262626}.rtl-container.purple.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.purple.night svg .boltz-icon-fill{fill:#fff}.rtl-container.purple.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.purple.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.purple.night svg .fill-color-0{fill:#171717}.rtl-container.purple.night svg .fill-color-1{fill:#232323}.rtl-container.purple.night svg .fill-color-2{fill:#222}.rtl-container.purple.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.purple.night svg .fill-color-4{fill:#383838}.rtl-container.purple.night svg .fill-color-5{fill:#555}.rtl-container.purple.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.purple.night svg .fill-color-7{fill:#202020}.rtl-container.purple.night svg .fill-color-8{fill:#242424}.rtl-container.purple.night svg .fill-color-9{fill:#262626}.rtl-container.purple.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.purple.night svg .fill-color-11{fill:#171717}.rtl-container.purple.night svg .fill-color-12{fill:#ccc}.rtl-container.purple.night svg .fill-color-13{fill:#adadad}.rtl-container.purple.night svg .fill-color-14{fill:#ababab}.rtl-container.purple.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.purple.night svg .fill-color-16{fill:#707070}.rtl-container.purple.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.purple.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.purple.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.purple.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.purple.night svg .fill-color-21{fill:#cacaca}.rtl-container.purple.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.purple.night svg .fill-color-23{fill:#777}.rtl-container.purple.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.purple.night svg .fill-color-25{fill:#252525}.rtl-container.purple.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.purple.night svg .fill-color-27{fill:#000}.rtl-container.purple.night svg .fill-color-28{fill:#313131}.rtl-container.purple.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.purple.night svg .fill-color-30{fill:#fff}.rtl-container.purple.night svg .fill-color-31{fill:#5e4ea5}.rtl-container.purple.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.purple.night svg .fill-color-primary{fill:#5e4ea5}.rtl-container.purple.night svg .fill-color-primary-lighter{fill:#8e83c0}.rtl-container.purple.night svg .fill-color-primary-darker{fill:#9787ff}.rtl-container.purple.night .mat-select-value,.rtl-container.purple.night .mat-select-arrow{color:#fff}.rtl-container.purple.night .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.purple.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.purple.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.purple.night .mat-slide-toggle-bar,.rtl-container.purple.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.purple.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.purple.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.purple.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.purple.night .mat-button.mat-primary,.rtl-container.purple.night .mat-icon-button.mat-primary,.rtl-container.purple.night .mat-stroked-button.mat-primary{color:#9787ff}.rtl-container.purple.night tr.alert.alert-warn .mat-cell,.rtl-container.purple.night tr.alert.alert-warn .mat-header-cell,.rtl-container.purple.night tr.alert.alert-warn .mat-footer-cell{color:#856404}.rtl-container.purple.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.purple.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#9787ff}.rtl-container.purple.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.purple.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#42358a}.rtl-container.purple.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.purple.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#9787ff}.rtl-container.purple.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.purple.night .mat-progress-bar-buffer{background-color:#cfcae4}.rtl-container.purple.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.purple.night .foreground-secondary-text{color:!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.purple.night .foreground.mat-progress-spinner circle,.rtl-container.purple.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.purple.night .mat-toolbar-row,.rtl-container.purple.night .mat-toolbar-single-row{height:5rem}.rtl-container.purple.night .lnd-info{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.purple.night a{color:#5e4ea5}.rtl-container.purple.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.purple.night .h-active-link{border-bottom:2px solid white}.rtl-container.purple.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.purple.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.purple.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.purple.night .genseed-message{width:10%;color:#5e4ea5}.rtl-container.purple.night .material-icons.primary{color:#5e4ea5}.rtl-container.purple.night .material-icons.accent{color:#eee}.rtl-container.purple.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.purple.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.purple.night .row-disabled{background-color:gray}.rtl-container.purple.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.purple.night .mat-menu-panel{min-width:6.4rem}.rtl-container.purple.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.purple.night .horizontal-button:hover{background:#8e83c0;color:#eee}.rtl-container.purple.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#5e4ea5}.rtl-container.purple.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.purple.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.purple.night .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.purple.night .mat-button,.rtl-container.purple.night .mat-icon-button,.rtl-container.purple.night .mat-stroked-button,.rtl-container.purple.night .mat-flat-button{border-radius:2px}.rtl-container.purple.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.purple.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.purple.night .mat-cell,.rtl-container.purple.night .mat-header-cell,.rtl-container.purple.night .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ffffff4d}.rtl-container.purple.night table.mat-table{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.purple.night table.mat-table thead tr th{color:#fff}.rtl-container.purple.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.purple.night .bordered-box{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.purple.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.purple.night .mat-expansion-panel{border:1px solid rgba(255,255,255,.3)}.rtl-container.purple.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.purple.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.purple.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.purple.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.purple.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.purple.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.purple.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.purple.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.purple.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.purple.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.purple.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.purple.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.purple.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.purple.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.purple.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.purple.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.purple.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.purple.night .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#afa7d2!important}.rtl-container.purple.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#56479d!important}.rtl-container.purple.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.purple.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.purple.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.purple.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.purple.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.purple.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.purple.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.purple.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.purple.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.purple.night .color-warn{color:#ff343b}.rtl-container.purple.night .fill-warn{fill:#ff343b}.rtl-container.purple.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.purple.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.purple.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.purple.night .alert.alert-info a{color:#004085}.rtl-container.purple.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.purple.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.purple.night .alert.alert-warn a{color:#856404}.rtl-container.purple.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.purple.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.purple.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.purple.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.purple.night .help-expansion .mat-expansion-panel-header,.rtl-container.purple.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.purple.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.purple.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.purple.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.purple.night .failed-status{color:#ff343b}.rtl-container.purple.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.purple.night .svg-fill-primary{fill:#5e4ea5}.rtl-container.purple.night .svg-fill-primary-lighter{fill:#8e83c0}.rtl-container.purple.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.purple.night ngx-charts-bar-vertical text,.rtl-container.purple.night ngx-charts-bar-vertical-2d text{fill:#fff}.rtl-container.purple.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.purple.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.purple.night .mat-paginator-container{padding:0}.rtl-container.purple.night .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.purple.night .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.purple.night .invoice-animation-div .particles-circle{position:absolute;background-color:#5e4ea5;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #5e4ea5;background-color:transparent}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.purple.night .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.purple.night .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.purple.night .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.purple.night .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.purple.night .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.blue.small.small .mat-header-cell{font-weight:700}.rtl-container.blue.small.small .mr-4{margin-right:1rem!important}.rtl-container.blue.small.small .mat-menu-item,.rtl-container.blue.small.small .mat-tree .mat-tree-node,.rtl-container.blue.small.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.blue.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.blue.small.small .genseed-message,.rtl-container.blue.small.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.blue.small.small .fa-icon-small,.rtl-container.blue.small.small .top-icon-small{font-size:1.44rem}.rtl-container.blue.small.small .page-title-container,.rtl-container.blue.small.small .page-sub-title-container{font-size:1.32rem}.rtl-container.blue.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.blue.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.blue.small.small .top-toolbar-icon .top-toolbar-img,.rtl-container.blue.small.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.blue.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.blue.small.small .material-icons,.rtl-container.blue.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.blue.small.small .mat-expansion-panel-header,.rtl-container.blue.small.small .mat-menu-item,.rtl-container.blue.small.small .mat-list .mat-list-item,.rtl-container.blue.small.small .mat-nav-list .mat-list-item,.rtl-container.blue.small.small .mat-option,.rtl-container.blue.small.small .mat-select,.rtl-container.blue.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.blue.small.small .logo{font-size:2.4rem}.rtl-container.blue.small.small .font-60-percent{font-size:.72rem}.rtl-container.blue.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.blue.small.small .icon-large{font-size:6rem}.rtl-container.blue.small.small .icon-small{font-size:1.8rem!important}.rtl-container.blue.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.blue.small.small .size-triple{font-size:3.6rem}.rtl-container.blue.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.blue.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.small.medium .mat-header-cell{font-weight:700}.rtl-container.blue.small.medium .mat-tree .mat-tree-node,.rtl-container.blue.small.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.blue.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.blue.small.medium .genseed-message,.rtl-container.blue.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.blue.small.medium .page-title-container,.rtl-container.blue.small.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.blue.small.medium .fa-icon-small,.rtl-container.blue.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.blue.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.blue.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.blue.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.blue.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.blue.small.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.blue.small.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.blue.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.blue.small.medium .material-icons{font-size:2.8rem}.rtl-container.blue.small.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.blue.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.blue.small.medium .mat-expansion-panel-header,.rtl-container.blue.small.medium .mat-menu-item,.rtl-container.blue.small.medium .mat-list .mat-list-item,.rtl-container.blue.small.medium .mat-nav-list .mat-list-item,.rtl-container.blue.small.medium .mat-option,.rtl-container.blue.small.medium .mat-select,.rtl-container.blue.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.blue.small.medium .logo{font-size:2.8rem}.rtl-container.blue.small.medium .font-60-percent{font-size:.84rem}.rtl-container.blue.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.blue.small.medium .icon-large{font-size:7rem}.rtl-container.blue.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.blue.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.blue.small.medium .size-triple{font-size:4.2rem}.rtl-container.blue.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.blue.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.small.large .mat-header-cell{font-weight:800}.rtl-container.blue.small.large .mat-tree .mat-tree-node,.rtl-container.blue.small.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.blue.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.blue.small.large .genseed-message,.rtl-container.blue.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.blue.small.large .page-title-container,.rtl-container.blue.small.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.blue.small.large .fa-icon-small,.rtl-container.blue.small.large .top-icon-small,.rtl-container.blue.small.large .modal-info-header{font-size:1.92rem}.rtl-container.blue.small.large .top-toolbar-icon.icon-pinned,.rtl-container.blue.small.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.blue.small.large .top-toolbar-icon .top-toolbar-img,.rtl-container.blue.small.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.blue.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.blue.small.large .material-icons{font-size:4rem}.rtl-container.blue.small.large .mat-expansion-panel-header,.rtl-container.blue.small.large .mat-menu-item,.rtl-container.blue.small.large .mat-list .mat-list-item,.rtl-container.blue.small.large .mat-nav-list .mat-list-item,.rtl-container.blue.small.large .mat-option,.rtl-container.blue.small.large .mat-select,.rtl-container.blue.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.blue.small.large .logo{font-size:3.2rem}.rtl-container.blue.small.large .font-60-percent{font-size:.96rem}.rtl-container.blue.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.blue.small.large .icon-large{font-size:8rem}.rtl-container.blue.small.large .icon-small{font-size:2.4rem!important}.rtl-container.blue.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.blue.small.large .size-triple{font-size:4.8rem}.rtl-container.blue.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.blue.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.small .mat-icon.material-icons:focus{outline:none}.rtl-container.blue.small .mat-flat-button.mat-primary:focus,.rtl-container.blue.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.blue.medium.small .mat-header-cell{font-weight:700}.rtl-container.blue.medium.small .mr-4{margin-right:1rem!important}.rtl-container.blue.medium.small .mat-menu-item,.rtl-container.blue.medium.small .mat-tree .mat-tree-node,.rtl-container.blue.medium.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.blue.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.blue.medium.small .genseed-message,.rtl-container.blue.medium.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.blue.medium.small .fa-icon-small,.rtl-container.blue.medium.small .top-icon-small{font-size:1.44rem}.rtl-container.blue.medium.small .page-title-container,.rtl-container.blue.medium.small .page-sub-title-container{font-size:1.32rem}.rtl-container.blue.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.blue.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.blue.medium.small .top-toolbar-icon .top-toolbar-img,.rtl-container.blue.medium.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.blue.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.blue.medium.small .material-icons,.rtl-container.blue.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.blue.medium.small .mat-expansion-panel-header,.rtl-container.blue.medium.small .mat-menu-item,.rtl-container.blue.medium.small .mat-list .mat-list-item,.rtl-container.blue.medium.small .mat-nav-list .mat-list-item,.rtl-container.blue.medium.small .mat-option,.rtl-container.blue.medium.small .mat-select,.rtl-container.blue.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.blue.medium.small .logo{font-size:2.4rem}.rtl-container.blue.medium.small .font-60-percent{font-size:.72rem}.rtl-container.blue.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.blue.medium.small .icon-large{font-size:6rem}.rtl-container.blue.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.blue.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.blue.medium.small .size-triple{font-size:3.6rem}.rtl-container.blue.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.blue.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.medium.medium .mat-header-cell{font-weight:700}.rtl-container.blue.medium.medium .mat-tree .mat-tree-node,.rtl-container.blue.medium.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.blue.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.blue.medium.medium .genseed-message,.rtl-container.blue.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.blue.medium.medium .page-title-container,.rtl-container.blue.medium.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.blue.medium.medium .fa-icon-small,.rtl-container.blue.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.blue.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.blue.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.blue.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.blue.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.blue.medium.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.blue.medium.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.blue.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.blue.medium.medium .material-icons{font-size:2.8rem}.rtl-container.blue.medium.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.blue.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.blue.medium.medium .mat-expansion-panel-header,.rtl-container.blue.medium.medium .mat-menu-item,.rtl-container.blue.medium.medium .mat-list .mat-list-item,.rtl-container.blue.medium.medium .mat-nav-list .mat-list-item,.rtl-container.blue.medium.medium .mat-option,.rtl-container.blue.medium.medium .mat-select,.rtl-container.blue.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.blue.medium.medium .logo{font-size:2.8rem}.rtl-container.blue.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.blue.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.blue.medium.medium .icon-large{font-size:7rem}.rtl-container.blue.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.blue.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.blue.medium.medium .size-triple{font-size:4.2rem}.rtl-container.blue.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.blue.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.medium.large .mat-header-cell{font-weight:800}.rtl-container.blue.medium.large .mat-tree .mat-tree-node,.rtl-container.blue.medium.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.blue.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.blue.medium.large .genseed-message,.rtl-container.blue.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.blue.medium.large .page-title-container,.rtl-container.blue.medium.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.blue.medium.large .fa-icon-small,.rtl-container.blue.medium.large .top-icon-small,.rtl-container.blue.medium.large .modal-info-header{font-size:1.92rem}.rtl-container.blue.medium.large .top-toolbar-icon.icon-pinned,.rtl-container.blue.medium.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.blue.medium.large .top-toolbar-icon .top-toolbar-img,.rtl-container.blue.medium.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.blue.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.blue.medium.large .material-icons{font-size:4rem}.rtl-container.blue.medium.large .mat-expansion-panel-header,.rtl-container.blue.medium.large .mat-menu-item,.rtl-container.blue.medium.large .mat-list .mat-list-item,.rtl-container.blue.medium.large .mat-nav-list .mat-list-item,.rtl-container.blue.medium.large .mat-option,.rtl-container.blue.medium.large .mat-select,.rtl-container.blue.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.blue.medium.large .logo{font-size:3.2rem}.rtl-container.blue.medium.large .font-60-percent{font-size:.96rem}.rtl-container.blue.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.blue.medium.large .icon-large{font-size:8rem}.rtl-container.blue.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.blue.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.blue.medium.large .size-triple{font-size:4.8rem}.rtl-container.blue.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.blue.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.blue.medium .mat-flat-button.mat-primary:focus,.rtl-container.blue.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.blue.large.small .mat-header-cell{font-weight:700}.rtl-container.blue.large.small .mr-4{margin-right:1rem!important}.rtl-container.blue.large.small .mat-menu-item,.rtl-container.blue.large.small .mat-tree .mat-tree-node,.rtl-container.blue.large.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.blue.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.blue.large.small .genseed-message,.rtl-container.blue.large.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.blue.large.small .fa-icon-small,.rtl-container.blue.large.small .top-icon-small{font-size:1.44rem}.rtl-container.blue.large.small .page-title-container,.rtl-container.blue.large.small .page-sub-title-container{font-size:1.32rem}.rtl-container.blue.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.blue.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.blue.large.small .top-toolbar-icon .top-toolbar-img,.rtl-container.blue.large.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.blue.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.blue.large.small .material-icons,.rtl-container.blue.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.blue.large.small .mat-expansion-panel-header,.rtl-container.blue.large.small .mat-menu-item,.rtl-container.blue.large.small .mat-list .mat-list-item,.rtl-container.blue.large.small .mat-nav-list .mat-list-item,.rtl-container.blue.large.small .mat-option,.rtl-container.blue.large.small .mat-select,.rtl-container.blue.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.blue.large.small .logo{font-size:2.4rem}.rtl-container.blue.large.small .font-60-percent{font-size:.72rem}.rtl-container.blue.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.blue.large.small .icon-large{font-size:6rem}.rtl-container.blue.large.small .icon-small{font-size:1.8rem!important}.rtl-container.blue.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.blue.large.small .size-triple{font-size:3.6rem}.rtl-container.blue.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.blue.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.large.medium .mat-header-cell{font-weight:700}.rtl-container.blue.large.medium .mat-tree .mat-tree-node,.rtl-container.blue.large.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.blue.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.blue.large.medium .genseed-message,.rtl-container.blue.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.blue.large.medium .page-title-container,.rtl-container.blue.large.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.blue.large.medium .fa-icon-small,.rtl-container.blue.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.blue.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.blue.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.blue.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.blue.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.blue.large.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.blue.large.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.blue.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.blue.large.medium .material-icons{font-size:2.8rem}.rtl-container.blue.large.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.blue.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.blue.large.medium .mat-expansion-panel-header,.rtl-container.blue.large.medium .mat-menu-item,.rtl-container.blue.large.medium .mat-list .mat-list-item,.rtl-container.blue.large.medium .mat-nav-list .mat-list-item,.rtl-container.blue.large.medium .mat-option,.rtl-container.blue.large.medium .mat-select,.rtl-container.blue.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.blue.large.medium .logo{font-size:2.8rem}.rtl-container.blue.large.medium .font-60-percent{font-size:.84rem}.rtl-container.blue.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.blue.large.medium .icon-large{font-size:7rem}.rtl-container.blue.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.blue.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.blue.large.medium .size-triple{font-size:4.2rem}.rtl-container.blue.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.blue.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.large.large .mat-header-cell{font-weight:800}.rtl-container.blue.large.large .mat-tree .mat-tree-node,.rtl-container.blue.large.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.blue.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.blue.large.large .genseed-message,.rtl-container.blue.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.blue.large.large .page-title-container,.rtl-container.blue.large.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.blue.large.large .fa-icon-small,.rtl-container.blue.large.large .top-icon-small,.rtl-container.blue.large.large .modal-info-header{font-size:1.92rem}.rtl-container.blue.large.large .top-toolbar-icon.icon-pinned,.rtl-container.blue.large.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.blue.large.large .top-toolbar-icon .top-toolbar-img,.rtl-container.blue.large.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.blue.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.blue.large.large .material-icons{font-size:4rem}.rtl-container.blue.large.large .mat-expansion-panel-header,.rtl-container.blue.large.large .mat-menu-item,.rtl-container.blue.large.large .mat-list .mat-list-item,.rtl-container.blue.large.large .mat-nav-list .mat-list-item,.rtl-container.blue.large.large .mat-option,.rtl-container.blue.large.large .mat-select,.rtl-container.blue.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.blue.large.large .logo{font-size:3.2rem}.rtl-container.blue.large.large .font-60-percent{font-size:.96rem}.rtl-container.blue.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.blue.large.large .icon-large{font-size:8rem}.rtl-container.blue.large.large .icon-small{font-size:2.4rem!important}.rtl-container.blue.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.blue.large.large .size-triple{font-size:4.8rem}.rtl-container.blue.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.blue.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.blue.large .mat-icon.material-icons:focus{outline:none}.rtl-container.blue.large .mat-flat-button.mat-primary:focus,.rtl-container.blue.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.blue.day .mat-ripple-element{background-color:#0000001a}.rtl-container.blue.day .mat-option{color:#000000de}.rtl-container.blue.day .mat-option:hover:not(.mat-option-disabled),.rtl-container.blue.day .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.blue.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.blue.day .mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.rtl-container.blue.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.blue.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#1976d2}.rtl-container.blue.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.blue.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.blue.day .mat-optgroup-label{color:#0000008a}.rtl-container.blue.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.blue.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.blue.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.blue.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.blue.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.blue.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#1976d2}.rtl-container.blue.day .mat-pseudo-checkbox-checked,.rtl-container.blue.day .mat-pseudo-checkbox-indeterminate,.rtl-container.blue.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.blue.day .mat-accent .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.blue.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.blue.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.blue.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.blue.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.blue.day .mat-app-background,.rtl-container.blue.day.mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.blue.day .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.blue.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.blue.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.blue.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.blue.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.blue.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.blue.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.blue.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.blue.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.blue.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.blue.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.blue.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.blue.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.blue.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.blue.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.blue.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.blue.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.blue.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.blue.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.blue.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.blue.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.blue.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.blue.day .mat-autocomplete-panel{background:white;color:#000000de}.rtl-container.blue.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:white}.rtl-container.blue.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.blue.day .mat-badge{position:relative}.rtl-container.blue.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.blue.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.blue.day .ng-animate-disabled .mat-badge-content,.rtl-container.blue.day .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.blue.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.blue.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.blue.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.blue.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.blue.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.blue.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.blue.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.blue.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.blue.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.blue.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.blue.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.blue.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.blue.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.blue.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.blue.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.blue.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.blue.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.blue.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.blue.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.blue.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.blue.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.blue.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.blue.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.blue.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.blue.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.blue.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.blue.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.blue.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.blue.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.blue.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.blue.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.blue.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.blue.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.blue.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.blue.day .mat-badge-content{color:#fff;background:#1976d2}.cdk-high-contrast-active .rtl-container.blue.day .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.blue.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.blue.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.blue.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.blue.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:white;color:#000000de}.rtl-container.blue.day .mat-button,.rtl-container.blue.day .mat-icon-button,.rtl-container.blue.day .mat-stroked-button{color:inherit;background:transparent}.rtl-container.blue.day .mat-button.mat-primary,.rtl-container.blue.day .mat-icon-button.mat-primary,.rtl-container.blue.day .mat-stroked-button.mat-primary{color:#1976d2}.rtl-container.blue.day .mat-button.mat-accent,.rtl-container.blue.day .mat-icon-button.mat-accent,.rtl-container.blue.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.blue.day .mat-button.mat-warn,.rtl-container.blue.day .mat-icon-button.mat-warn,.rtl-container.blue.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.blue.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.blue.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.blue.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.blue.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#1976d2}.rtl-container.blue.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.blue.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.blue.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.blue.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.blue.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.blue.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.blue.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.blue.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.blue.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.blue.day .mat-button .mat-ripple-element,.rtl-container.blue.day .mat-icon-button .mat-ripple-element,.rtl-container.blue.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.blue.day .mat-button-focus-overlay{background:black}.rtl-container.blue.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.blue.day .mat-flat-button,.rtl-container.blue.day .mat-raised-button,.rtl-container.blue.day .mat-fab,.rtl-container.blue.day .mat-mini-fab{color:#000000de;background-color:#fff}.rtl-container.blue.day .mat-flat-button.mat-primary,.rtl-container.blue.day .mat-raised-button.mat-primary,.rtl-container.blue.day .mat-fab.mat-primary,.rtl-container.blue.day .mat-mini-fab.mat-primary,.rtl-container.blue.day .mat-flat-button.mat-accent,.rtl-container.blue.day .mat-raised-button.mat-accent,.rtl-container.blue.day .mat-fab.mat-accent,.rtl-container.blue.day .mat-mini-fab.mat-accent,.rtl-container.blue.day .mat-flat-button.mat-warn,.rtl-container.blue.day .mat-raised-button.mat-warn,.rtl-container.blue.day .mat-fab.mat-warn,.rtl-container.blue.day .mat-mini-fab.mat-warn{color:#fff}.rtl-container.blue.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.blue.day .mat-flat-button.mat-primary,.rtl-container.blue.day .mat-raised-button.mat-primary,.rtl-container.blue.day .mat-fab.mat-primary,.rtl-container.blue.day .mat-mini-fab.mat-primary{background-color:#1976d2}.rtl-container.blue.day .mat-flat-button.mat-accent,.rtl-container.blue.day .mat-raised-button.mat-accent,.rtl-container.blue.day .mat-fab.mat-accent,.rtl-container.blue.day .mat-mini-fab.mat-accent{background-color:#424242}.rtl-container.blue.day .mat-flat-button.mat-warn,.rtl-container.blue.day .mat-raised-button.mat-warn,.rtl-container.blue.day .mat-fab.mat-warn,.rtl-container.blue.day .mat-mini-fab.mat-warn{background-color:#b00020}.rtl-container.blue.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.blue.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.rtl-container.blue.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.blue.day .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.blue.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.blue.day .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.day .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.blue.day .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.blue.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.blue.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.blue.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.blue.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.blue.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.blue.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.day .mat-button-toggle-standalone,.rtl-container.blue.day .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.blue.day .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.blue.day .mat-button-toggle{color:#00000061}.rtl-container.blue.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.blue.day .mat-button-toggle-appearance-standard{color:#000000de;background:white}.rtl-container.blue.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.blue.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,.12)}.rtl-container.blue.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.blue.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,.12)}.rtl-container.blue.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.blue.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.blue.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.blue.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:white}.rtl-container.blue.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.blue.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.blue.day .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(0,0,0,.12)}.rtl-container.blue.day .mat-card{background:white;color:#000000de}.rtl-container.blue.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.blue.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.day .mat-card-subtitle{color:#0000008a}.rtl-container.blue.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.blue.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.blue.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.blue.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.blue.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.blue.day .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#1976d2}.rtl-container.blue.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.blue.day .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.blue.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.blue.day .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.blue.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.blue.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.blue.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.blue.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.blue.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.blue.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.blue.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#1976d2}.rtl-container.blue.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.blue.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.blue.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.blue.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.blue.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.blue.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.blue.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip:after{background:black}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#1976d2;color:#fff}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.day .mat-table{background:white}.rtl-container.blue.day .mat-table thead,.rtl-container.blue.day .mat-table tbody,.rtl-container.blue.day .mat-table tfoot,.rtl-container.blue.day mat-header-row,.rtl-container.blue.day mat-row,.rtl-container.blue.day mat-footer-row,.rtl-container.blue.day [mat-header-row],.rtl-container.blue.day [mat-row],.rtl-container.blue.day [mat-footer-row],.rtl-container.blue.day .mat-table-sticky{background:inherit}.rtl-container.blue.day mat-row,.rtl-container.blue.day mat-header-row,.rtl-container.blue.day mat-footer-row,.rtl-container.blue.day th.mat-header-cell,.rtl-container.blue.day td.mat-cell,.rtl-container.blue.day td.mat-footer-cell{border-bottom-color:#0000001f}.rtl-container.blue.day .mat-header-cell{color:#0000008a}.rtl-container.blue.day .mat-cell,.rtl-container.blue.day .mat-footer-cell{color:#000000de}.rtl-container.blue.day .mat-calendar-arrow{fill:#0000008a}.rtl-container.blue.day .mat-datepicker-toggle,.rtl-container.blue.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.blue.day .mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.rtl-container.blue.day .mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.rtl-container.blue.day .mat-calendar-table-header,.rtl-container.blue.day .mat-calendar-body-label{color:#0000008a}.rtl-container.blue.day .mat-calendar-body-cell-content,.rtl-container.blue.day .mat-date-range-input-separator{color:#000000de;border-color:transparent}.rtl-container.blue.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.rtl-container.blue.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.blue.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.blue.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.blue.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.blue.day .mat-calendar-body-in-range:before{background:rgba(25,118,210,.2)}.rtl-container.blue.day .mat-calendar-body-comparison-identical,.rtl-container.blue.day .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.blue.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(25,118,210,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(25,118,210,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.blue.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.blue.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.day .mat-calendar-body-selected{background-color:#1976d2;color:#fff}.rtl-container.blue.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#1976d266}.rtl-container.blue.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1976d24d}@media (hover: hover){.rtl-container.blue.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1976d24d}}.rtl-container.blue.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(66,66,66,.2)}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}@media (hover: hover){.rtl-container.blue.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(176,0,32,.2)}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}@media (hover: hover){.rtl-container.blue.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}}.rtl-container.blue.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.blue.day .mat-datepicker-toggle-active{color:#1976d2}.rtl-container.blue.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.blue.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.blue.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.blue.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:white;color:#000000de}.rtl-container.blue.day .mat-divider{border-top-color:#0000001f}.rtl-container.blue.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.blue.day .mat-expansion-panel{background:white;color:#000000de}.rtl-container.blue.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.day .mat-action-row{border-top-color:#0000001f}.rtl-container.blue.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.blue.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.blue.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.blue.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:white}}.rtl-container.blue.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.blue.day .mat-expansion-panel-header-description,.rtl-container.blue.day .mat-expansion-indicator:after{color:#0000008a}.rtl-container.blue.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.blue.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.blue.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.blue.day .mat-form-field-label,.rtl-container.blue.day .mat-hint{color:#0009}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-label{color:#1976d2}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.blue.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.blue.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#1976d2}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.blue.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#1976d2}.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#b00020}.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.blue.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.blue.day .mat-error{color:#b00020}.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.blue.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.blue.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.blue.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.blue.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.blue.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.blue.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.blue.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.blue.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.blue.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.blue.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#1976d2}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.blue.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.blue.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.blue.day .mat-icon.mat-primary{color:#1976d2}.rtl-container.blue.day .mat-icon.mat-accent{color:#424242}.rtl-container.blue.day .mat-icon.mat-warn{color:#b00020}.rtl-container.blue.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.blue.day .mat-input-element:disabled,.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.rtl-container.blue.day .mat-input-element{caret-color:#1976d2}.rtl-container.blue.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.blue.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.blue.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.blue.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.blue.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.blue.day .mat-form-field.mat-warn .mat-input-element,.rtl-container.blue.day .mat-form-field-invalid .mat-input-element{caret-color:#b00020}.rtl-container.blue.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.blue.day .mat-list-base .mat-list-item,.rtl-container.blue.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.blue.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.blue.day .mat-list-item-disabled{background-color:#eee}.rtl-container.blue.day .mat-list-option:hover,.rtl-container.blue.day .mat-list-option:focus,.rtl-container.blue.day .mat-nav-list .mat-list-item:hover,.rtl-container.blue.day .mat-nav-list .mat-list-item:focus,.rtl-container.blue.day .mat-action-list .mat-list-item:hover,.rtl-container.blue.day .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.blue.day .mat-list-single-selected-option,.rtl-container.blue.day .mat-list-single-selected-option:hover,.rtl-container.blue.day .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.blue.day .mat-menu-panel{background:white}.rtl-container.blue.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.day .mat-menu-item{background:transparent;color:#000000de}.rtl-container.blue.day .mat-menu-item[disabled],.rtl-container.blue.day .mat-menu-item[disabled] .mat-menu-submenu-icon,.rtl-container.blue.day .mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.rtl-container.blue.day .mat-menu-item .mat-icon-no-color,.rtl-container.blue.day .mat-menu-submenu-icon{color:#0000008a}.rtl-container.blue.day .mat-menu-item:hover:not([disabled]),.rtl-container.blue.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.blue.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.blue.day .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.blue.day .mat-paginator{background:white}.rtl-container.blue.day .mat-paginator,.rtl-container.blue.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.blue.day .mat-paginator-decrement,.rtl-container.blue.day .mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.rtl-container.blue.day .mat-paginator-first,.rtl-container.blue.day .mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.rtl-container.blue.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.blue.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.blue.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.blue.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.blue.day .mat-progress-bar-background{fill:#c2d9f0}.rtl-container.blue.day .mat-progress-bar-buffer{background-color:#c2d9f0}.rtl-container.blue.day .mat-progress-bar-fill:after{background-color:#1976d2}.rtl-container.blue.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.blue.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.blue.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.blue.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.blue.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.blue.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.blue.day .mat-progress-spinner circle,.rtl-container.blue.day .mat-spinner circle{stroke:#1976d2}.rtl-container.blue.day .mat-progress-spinner.mat-accent circle,.rtl-container.blue.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.blue.day .mat-progress-spinner.mat-warn circle,.rtl-container.blue.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.blue.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.blue.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#1976d2}.rtl-container.blue.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.blue.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#1976d2}.rtl-container.blue.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.blue.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.blue.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.blue.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.blue.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.blue.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.blue.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.blue.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.blue.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.rtl-container.blue.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.rtl-container.blue.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.blue.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.blue.day .mat-select-value{color:#000000de}.rtl-container.blue.day .mat-select-placeholder{color:#0000006b}.rtl-container.blue.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.blue.day .mat-select-arrow{color:#0000008a}.rtl-container.blue.day .mat-select-panel{background:white}.rtl-container.blue.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.blue.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#1976d2}.rtl-container.blue.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.blue.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.blue.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.blue.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.blue.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.blue.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.blue.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.blue.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.blue.day .mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.blue.day .mat-drawer-side.mat-drawer-end,.rtl-container.blue.day [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}.rtl-container.blue.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.blue.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.blue.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.blue.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.blue.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.blue.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#1976d2}.rtl-container.blue.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#1976d28a}.rtl-container.blue.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#1976d2}.rtl-container.blue.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.blue.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.blue.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.blue.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.blue.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.rtl-container.blue.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.blue.day .mat-slider-track-background{background-color:#00000042}.rtl-container.blue.day .mat-primary .mat-slider-track-fill,.rtl-container.blue.day .mat-primary .mat-slider-thumb,.rtl-container.blue.day .mat-primary .mat-slider-thumb-label{background-color:#1976d2}.rtl-container.blue.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.day .mat-primary .mat-slider-focus-ring{background-color:#1976d233}.rtl-container.blue.day .mat-accent .mat-slider-track-fill,.rtl-container.blue.day .mat-accent .mat-slider-thumb,.rtl-container.blue.day .mat-accent .mat-slider-thumb-label{background-color:#424242}.rtl-container.blue.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.blue.day .mat-warn .mat-slider-track-fill,.rtl-container.blue.day .mat-warn .mat-slider-thumb,.rtl-container.blue.day .mat-warn .mat-slider-thumb-label{background-color:#b00020}.rtl-container.blue.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.blue.day .mat-slider:hover .mat-slider-track-background,.rtl-container.blue.day .mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.rtl-container.blue.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.blue.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.blue.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.blue.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.blue.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.blue.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.blue.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.blue.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.blue.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.blue.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.blue.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.blue.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.blue.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.blue.day .mat-step-header.cdk-keyboard-focused,.rtl-container.blue.day .mat-step-header.cdk-program-focused,.rtl-container.blue.day .mat-step-header:hover:not([aria-disabled]),.rtl-container.blue.day .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.blue.day .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.blue.day .mat-step-header:hover{background:none}}.rtl-container.blue.day .mat-step-header .mat-step-label,.rtl-container.blue.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.blue.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.blue.day .mat-step-header .mat-step-icon-selected,.rtl-container.blue.day .mat-step-header .mat-step-icon-state-done,.rtl-container.blue.day .mat-step-header .mat-step-icon-state-edit{background-color:#1976d2;color:#fff}.rtl-container.blue.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.blue.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.blue.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.blue.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.blue.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.blue.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.blue.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.blue.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.blue.day .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#b00020}.rtl-container.blue.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.blue.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.blue.day .mat-stepper-horizontal,.rtl-container.blue.day .mat-stepper-vertical{background-color:#fff}.rtl-container.blue.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.blue.day .mat-horizontal-stepper-header:before,.rtl-container.blue.day .mat-horizontal-stepper-header:after,.rtl-container.blue.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.blue.day .mat-sort-header-arrow{color:#757575}.rtl-container.blue.day .mat-tab-nav-bar,.rtl-container.blue.day .mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.blue.day .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.blue.day .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.rtl-container.blue.day .mat-tab-label,.rtl-container.blue.day .mat-tab-link{color:#000000de}.rtl-container.blue.day .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.blue.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.blue.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.blue.day .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.blue.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.blue.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#90caf94d}.rtl-container.blue.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#1976d2}.rtl-container.blue.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.blue.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.blue.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.blue.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.blue.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.blue.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#90caf94d}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#1976d2}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.blue.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#424242}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.blue.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#b00020}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.blue.day .mat-toolbar{background:whitesmoke;color:#000000de}.rtl-container.blue.day .mat-toolbar.mat-primary{background:#1976d2;color:#fff}.rtl-container.blue.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.blue.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.blue.day .mat-toolbar .mat-form-field-underline,.rtl-container.blue.day .mat-toolbar .mat-form-field-ripple,.rtl-container.blue.day .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.blue.day .mat-toolbar .mat-form-field-label,.rtl-container.blue.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.blue.day .mat-toolbar .mat-select-value,.rtl-container.blue.day .mat-toolbar .mat-select-arrow,.rtl-container.blue.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.blue.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.blue.day .mat-tooltip{background:rgba(97,97,97,.9)}.rtl-container.blue.day .mat-tree{background:white}.rtl-container.blue.day .mat-tree-node,.rtl-container.blue.day .mat-nested-tree-node{color:#000000de}.rtl-container.blue.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.blue.day .mat-simple-snackbar-action{color:#424242}.rtl-container.blue.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.blue.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.blue.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.blue.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.blue.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.blue.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.blue.day .rtl-top-toolbar{border-bottom:1px solid white}.rtl-container.blue.day .bg-primary{background-color:#1976d2;color:#fff}.rtl-container.blue.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#1976d2}.rtl-container.blue.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.blue.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.blue.day .mat-tab-label.mat-tab-label-active{color:#1976d2}.rtl-container.blue.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#1976d2}.rtl-container.blue.day .mat-tab-label .tab-badge .mat-badge-content{background:rgba(0,0,0,.54)}.rtl-container.blue.day .ng-fa-icon,.rtl-container.blue.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.blue.day .mat-form-field-suffix{color:#0000008a}.rtl-container.blue.day .mat-stroked-button.mat-primary{border-color:#1976d2}.rtl-container.blue.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.blue.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.blue.day .selected-color{border-color:#90caf9}.rtl-container.blue.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.blue.day .page-title-container,.rtl-container.blue.day .page-sub-title-container{color:#0000008a}.rtl-container.blue.day .page-title-container .page-title-img,.rtl-container.blue.day .page-sub-title-container .page-title-img{color:#00000061}.rtl-container.blue.day .page-title-container .mat-input-element,.rtl-container.blue.day .page-title-container .mat-radio-label-content,.rtl-container.blue.day .page-title-container .theme-name,.rtl-container.blue.day .page-sub-title-container .mat-input-element,.rtl-container.blue.day .page-sub-title-container .mat-radio-label-content,.rtl-container.blue.day .page-sub-title-container .theme-name{color:#000000de}.rtl-container.blue.day .cc-data-block .cc-data-title{color:#1976d2}.rtl-container.blue.day .active-link,.rtl-container.blue.day .active-link .fa-icon-small{color:#1976d2;font-weight:500;cursor:pointer;fill:#1976d2}.rtl-container.blue.day .mat-tree-node:hover,.rtl-container.blue.day .mat-nested-tree-node-parent:hover,.rtl-container.blue.day .mat-select-panel .mat-option:hover,.rtl-container.blue.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover{color:#1976d2;cursor:pointer;background:rgba(0,0,0,.04)}.rtl-container.blue.day .mat-tree-node:hover .ng-fa-icon,.rtl-container.blue.day .mat-tree-node:hover .mat-icon,.rtl-container.blue.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.blue.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.blue.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.blue.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.blue.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.blue.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon{color:#1976d2}.rtl-container.blue.day .mat-tree-node:hover .sidenav-img svg,.rtl-container.blue.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.blue.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.blue.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg{fill:#1976d2}.rtl-container.blue.day .mat-tree-node .sidenav-img,.rtl-container.blue.day .mat-nested-tree-node .sidenav-img,.rtl-container.blue.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.blue.day .page-title-container .page-title-img,.rtl-container.blue.day svg.top-icon-small{fill:#000000de}.rtl-container.blue.day .mat-progress-bar-fill:after{background-color:#0d47a1}.rtl-container.blue.day .modal-qr-code-container{background:rgba(0,0,0,.12)}.rtl-container.blue.day .mat-tab-label,.rtl-container.blue.day .mat-tab-link{color:#0000008a}.rtl-container.blue.day .mat-card,.rtl-container.blue.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid rgba(0,0,0,.12)}.rtl-container.blue.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.blue.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.blue.day .dashboard-info-title{color:#1976d2}.rtl-container.blue.day .dashboard-info-value{color:#0000008a}.rtl-container.blue.day .color-primary{color:#1976d2!important}.rtl-container.blue.day .dot-primary{background-color:#1976d2!important}.rtl-container.blue.day .dot-primary-lighter{background-color:#90caf9!important}.rtl-container.blue.day .mat-expansion-panel.flat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.blue.day .mat-tooltip{font-size:120%}.rtl-container.blue.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.blue.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.blue.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.blue.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.blue.day svg .fill-color-1{fill:#fff}.rtl-container.blue.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.blue.day svg .fill-color-3{fill:#f2f2f2}.rtl-container.blue.day svg .fill-color-4{fill:#f2f2f2}.rtl-container.blue.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.blue.day svg .fill-color-6{fill:#fff}.rtl-container.blue.day svg .fill-color-7{fill:#cbcbcb}.rtl-container.blue.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.blue.day svg .fill-color-9{fill:#fff}.rtl-container.blue.day svg .fill-color-10{fill:#e6e6e6}.rtl-container.blue.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.blue.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.blue.day svg .fill-color-13{fill:#4a4a4a}.rtl-container.blue.day svg .fill-color-14{fill:#4a4a4a}.rtl-container.blue.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.blue.day svg .fill-color-16{fill:#404040}.rtl-container.blue.day svg .fill-color-17{fill:#404040}.rtl-container.blue.day svg .fill-color-18{fill:#000}.rtl-container.blue.day svg .fill-color-19{fill:#4a4a4a}.rtl-container.blue.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.blue.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.blue.day svg .fill-color-22{fill:#cbcbcb}.rtl-container.blue.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.blue.day svg .fill-color-24{fill:#000}.rtl-container.blue.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.blue.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.blue.day svg .fill-color-27{fill:#000}.rtl-container.blue.day svg .fill-color-28{fill:#313131}.rtl-container.blue.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.blue.day svg .fill-color-30{fill:#fff}.rtl-container.blue.day svg .fill-color-31{fill:#1976d2}.rtl-container.blue.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.blue.day svg .fill-color-primary{fill:#1976d2}.rtl-container.blue.day svg .fill-color-primary-lighter{fill:#90caf9}.rtl-container.blue.day svg .fill-color-primary-darker{fill:#1976d2}.rtl-container.blue.day .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.blue.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.blue.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.blue.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.blue.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.blue.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.blue.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#1976d2}.rtl-container.blue.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.blue.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#0d47a1}.rtl-container.blue.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.blue.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#90caf9}.rtl-container.blue.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.blue.day .mat-progress-bar-buffer{background-color:#bbdefb}.rtl-container.blue.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.blue.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.blue.day .foreground.mat-progress-spinner circle,.rtl-container.blue.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.blue.day .mat-toolbar-row,.rtl-container.blue.day .mat-toolbar-single-row{height:5rem}.rtl-container.blue.day .lnd-info{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.blue.day a{color:#1976d2}.rtl-container.blue.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.blue.day .h-active-link{border-bottom:2px solid white}.rtl-container.blue.day .mat-icon-36{color:#0000008a}.rtl-container.blue.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.blue.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.blue.day .genseed-message{width:10%;color:#1976d2}.rtl-container.blue.day .material-icons.primary{color:#1976d2}.rtl-container.blue.day .material-icons.accent{color:#424242}.rtl-container.blue.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.blue.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.blue.day .row-disabled{background-color:gray}.rtl-container.blue.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.blue.day .mat-menu-panel{min-width:6.4rem}.rtl-container.blue.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.blue.day .horizontal-button:hover{background:#90caf9;color:#424242}.rtl-container.blue.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#1976d2}.rtl-container.blue.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.blue.day .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.blue.day .mat-button,.rtl-container.blue.day .mat-icon-button,.rtl-container.blue.day .mat-stroked-button,.rtl-container.blue.day .mat-flat-button{border-radius:2px}.rtl-container.blue.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.blue.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.blue.day .mat-cell,.rtl-container.blue.day .mat-header-cell,.rtl-container.blue.day .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#0000001f}.rtl-container.blue.day table.mat-table{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.blue.day table.mat-table thead tr th{color:#000}.rtl-container.blue.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.blue.day .bordered-box{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.blue.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.blue.day .mat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.blue.day .more-button{color:#00000061}.rtl-container.blue.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.blue.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.blue.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.blue.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.blue.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.blue.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.blue.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.blue.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.blue.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.blue.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.blue.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.blue.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.blue.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.blue.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.blue.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.blue.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.blue.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.blue.day .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#90caf9!important}.rtl-container.blue.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#1e88e5!important}.rtl-container.blue.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.blue.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.blue.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.blue.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.blue.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid rgba(0,0,0,.54)}.rtl-container.blue.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.blue.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.blue.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.blue.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.blue.day .color-warn{color:#b00020}.rtl-container.blue.day .fill-warn{fill:#b00020}.rtl-container.blue.day .alert{border:1px solid rgba(0,0,0,.54);color:#0000008a;background-color:#0000000a}.rtl-container.blue.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.blue.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.blue.day .alert.alert-info a{color:#004085}.rtl-container.blue.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.blue.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.blue.day .alert.alert-warn a{color:#856404}.rtl-container.blue.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.blue.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.blue.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.blue.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.blue.day .help-expansion .mat-expansion-panel-header,.rtl-container.blue.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.blue.day .help-expansion .mat-expansion-indicator:after,.rtl-container.blue.day .help-expansion .mat-expansion-panel-content,.rtl-container.blue.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.blue.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.blue.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.blue.day .failed-status{color:#b00020}.rtl-container.blue.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.blue.day .svg-fill-primary{fill:#1976d2}.rtl-container.blue.day .svg-fill-primary-lighter{fill:#90caf9}.rtl-container.blue.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.blue.day ngx-charts-bar-vertical text,.rtl-container.blue.day ngx-charts-bar-vertical-2d text{fill:#000000de}.rtl-container.blue.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.blue.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.blue.day .mat-paginator-container{padding:0}.rtl-container.blue.day .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.blue.day .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.blue.day .invoice-animation-div .particles-circle{position:absolute;background-color:#1976d2;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #1976d2;background-color:transparent}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.blue.day .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.blue.day .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.blue.day .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.blue.day .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.blue.day .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.blue.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-option{color:#fff}.rtl-container.blue.night .mat-option:hover:not(.mat-option-disabled),.rtl-container.blue.night .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.blue.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.blue.night .mat-option.mat-active{background:rgba(0,0,0,.04);color:#fff}.rtl-container.blue.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#1976d2}.rtl-container.blue.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.blue.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.blue.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.blue.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.blue.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.blue.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#1976d2}.rtl-container.blue.night .mat-pseudo-checkbox-checked,.rtl-container.blue.night .mat-pseudo-checkbox-indeterminate,.rtl-container.blue.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.blue.night .mat-accent .mat-pseudo-checkbox-indeterminate{background:#eeeeee}.rtl-container.blue.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.blue.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.blue.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.blue.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.blue.night .mat-app-background,.rtl-container.blue.night.mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.blue.night .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.blue.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.blue.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.blue.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.blue.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.blue.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.blue.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.blue.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.blue.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.blue.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.blue.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.blue.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.blue.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.blue.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.blue.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.blue.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.blue.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.blue.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.blue.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.blue.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.blue.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.blue.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.blue.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.blue.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.blue.night .mat-badge{position:relative}.rtl-container.blue.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.blue.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.blue.night .ng-animate-disabled .mat-badge-content,.rtl-container.blue.night .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.blue.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.blue.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.blue.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.blue.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.blue.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.blue.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.blue.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.blue.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.blue.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.blue.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.blue.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.blue.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.blue.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.blue.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.blue.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.blue.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.blue.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.blue.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.blue.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.blue.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.blue.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.blue.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.blue.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.blue.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.blue.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.blue.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.blue.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.blue.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.blue.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.blue.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.blue.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.blue.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.blue.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.blue.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.blue.night .mat-badge-content{color:#fff;background:#1976d2}.cdk-high-contrast-active .rtl-container.blue.night .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.blue.night .mat-badge-accent .mat-badge-content{background:#eeeeee;color:#000}.rtl-container.blue.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.blue.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.blue.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.blue.night .mat-button,.rtl-container.blue.night .mat-icon-button,.rtl-container.blue.night .mat-stroked-button{color:inherit;background:transparent}.rtl-container.blue.night .mat-button.mat-primary,.rtl-container.blue.night .mat-icon-button.mat-primary,.rtl-container.blue.night .mat-stroked-button.mat-primary{color:#1976d2}.rtl-container.blue.night .mat-button.mat-accent,.rtl-container.blue.night .mat-icon-button.mat-accent,.rtl-container.blue.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.blue.night .mat-button.mat-warn,.rtl-container.blue.night .mat-icon-button.mat-warn,.rtl-container.blue.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.blue.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.blue.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.blue.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.blue.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#1976d2}.rtl-container.blue.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.blue.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.blue.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.blue.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.blue.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.blue.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.blue.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.blue.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.blue.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.blue.night .mat-button .mat-ripple-element,.rtl-container.blue.night .mat-icon-button .mat-ripple-element,.rtl-container.blue.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.blue.night .mat-button-focus-overlay{background:white}.rtl-container.blue.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.blue.night .mat-flat-button,.rtl-container.blue.night .mat-raised-button,.rtl-container.blue.night .mat-fab,.rtl-container.blue.night .mat-mini-fab{color:#fff;background-color:#363636}.rtl-container.blue.night .mat-flat-button.mat-primary,.rtl-container.blue.night .mat-raised-button.mat-primary,.rtl-container.blue.night .mat-fab.mat-primary,.rtl-container.blue.night .mat-mini-fab.mat-primary{color:#fff}.rtl-container.blue.night .mat-flat-button.mat-accent,.rtl-container.blue.night .mat-raised-button.mat-accent,.rtl-container.blue.night .mat-fab.mat-accent,.rtl-container.blue.night .mat-mini-fab.mat-accent{color:#000}.rtl-container.blue.night .mat-flat-button.mat-warn,.rtl-container.blue.night .mat-raised-button.mat-warn,.rtl-container.blue.night .mat-fab.mat-warn,.rtl-container.blue.night .mat-mini-fab.mat-warn{color:#fff}.rtl-container.blue.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.blue.night .mat-flat-button.mat-primary,.rtl-container.blue.night .mat-raised-button.mat-primary,.rtl-container.blue.night .mat-fab.mat-primary,.rtl-container.blue.night .mat-mini-fab.mat-primary{background-color:#1976d2}.rtl-container.blue.night .mat-flat-button.mat-accent,.rtl-container.blue.night .mat-raised-button.mat-accent,.rtl-container.blue.night .mat-fab.mat-accent,.rtl-container.blue.night .mat-mini-fab.mat-accent{background-color:#eee}.rtl-container.blue.night .mat-flat-button.mat-warn,.rtl-container.blue.night .mat-raised-button.mat-warn,.rtl-container.blue.night .mat-fab.mat-warn,.rtl-container.blue.night .mat-mini-fab.mat-warn{background-color:#ff343b}.rtl-container.blue.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.blue.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#404040}.rtl-container.blue.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.blue.night .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.blue.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.blue.night .mat-mini-fab.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.blue.night .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.blue.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.blue.night .mat-mini-fab.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.blue.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.blue.night .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.blue.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.blue.night .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.blue.night .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.blue.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.blue.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.blue.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.blue.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.blue.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.blue.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.night .mat-button-toggle-standalone,.rtl-container.blue.night .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.blue.night .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.blue.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.blue.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(255,255,255,.3)}.rtl-container.blue.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.blue.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(255,255,255,.3)}.rtl-container.blue.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.blue.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.blue.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.blue.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.blue.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.blue.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.blue.night .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(255,255,255,.3)}.rtl-container.blue.night .mat-card{background:#202020;color:#fff}.rtl-container.blue.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.blue.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.blue.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.blue.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.blue.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.blue.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.blue.night .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#1976d2}.rtl-container.blue.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.blue.night .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.blue.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.blue.night .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.blue.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.blue.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.blue.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.blue.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.blue.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.blue.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#1976d2}.rtl-container.blue.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.blue.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eeeeee}.rtl-container.blue.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.blue.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.blue.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.blue.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.blue.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip:after{background:white}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#1976d2;color:#fff}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.blue.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.blue.night .mat-table{background:#202020}.rtl-container.blue.night .mat-table thead,.rtl-container.blue.night .mat-table tbody,.rtl-container.blue.night .mat-table tfoot,.rtl-container.blue.night mat-header-row,.rtl-container.blue.night mat-row,.rtl-container.blue.night mat-footer-row,.rtl-container.blue.night [mat-header-row],.rtl-container.blue.night [mat-row],.rtl-container.blue.night [mat-footer-row],.rtl-container.blue.night .mat-table-sticky{background:inherit}.rtl-container.blue.night mat-row,.rtl-container.blue.night mat-header-row,.rtl-container.blue.night mat-footer-row,.rtl-container.blue.night th.mat-header-cell,.rtl-container.blue.night td.mat-cell,.rtl-container.blue.night td.mat-footer-cell{border-bottom-color:#ffffff4d}.rtl-container.blue.night .mat-cell,.rtl-container.blue.night .mat-footer-cell{color:#fff}.rtl-container.blue.night .mat-calendar-arrow{fill:#fff}.rtl-container.blue.night .mat-datepicker-toggle,.rtl-container.blue.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.blue.night .mat-datepicker-content .mat-calendar-previous-button{color:#fff}.rtl-container.blue.night .mat-calendar-table-header-divider:after{background:rgba(255,255,255,.3)}.rtl-container.blue.night .mat-calendar-body-cell-content,.rtl-container.blue.night .mat-date-range-input-separator{color:#fff;border-color:transparent}.rtl-container.blue.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.blue.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.blue.night .mat-calendar-body-in-range:before{background:rgba(25,118,210,.2)}.rtl-container.blue.night .mat-calendar-body-comparison-identical,.rtl-container.blue.night .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.blue.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(25,118,210,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(25,118,210,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.blue.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.blue.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.night .mat-calendar-body-selected{background-color:#1976d2;color:#fff}.rtl-container.blue.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#1976d266}.rtl-container.blue.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1976d24d}@media (hover: hover){.rtl-container.blue.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1976d24d}}.rtl-container.blue.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#202020;color:#fff}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(238,238,238,.2)}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.blue.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}@media (hover: hover){.rtl-container.blue.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(255,52,59,.2)}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.blue.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.blue.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.blue.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.blue.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}@media (hover: hover){.rtl-container.blue.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}}.rtl-container.blue.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.blue.night .mat-datepicker-toggle-active{color:#1976d2}.rtl-container.blue.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.blue.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.blue.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.blue.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.blue.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.blue.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.blue.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.blue.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.blue.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.blue.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.blue.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.blue.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.blue.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.blue.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.blue.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.blue.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-label{color:#1976d2}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.blue.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.blue.night .mat-form-field-ripple{background-color:#fff}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#1976d2}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.blue.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.blue.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#1976d2}.rtl-container.blue.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.blue.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#ff343b}.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.blue.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.blue.night .mat-error{color:#ff343b}.rtl-container.blue.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.blue.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.blue.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.blue.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.blue.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.blue.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.blue.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.blue.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.blue.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.blue.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.blue.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#1976d2}.rtl-container.blue.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.blue.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.blue.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.blue.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.blue.night .mat-icon.mat-primary{color:#1976d2}.rtl-container.blue.night .mat-icon.mat-accent{color:#eee}.rtl-container.blue.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.blue.night .mat-input-element{caret-color:#1976d2}.rtl-container.blue.night .mat-input-element:not(.mat-native-select-inline) option{color:#000000de}.rtl-container.blue.night .mat-input-element:not(.mat-native-select-inline) option:disabled{color:#00000061}.rtl-container.blue.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.blue.night .mat-form-field.mat-warn .mat-input-element,.rtl-container.blue.night .mat-form-field-invalid .mat-input-element{caret-color:#ff343b}.rtl-container.blue.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.blue.night .mat-list-base .mat-list-item,.rtl-container.blue.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.blue.night .mat-list-item-disabled{background-color:#444}.rtl-container.blue.night .mat-list-option:hover,.rtl-container.blue.night .mat-list-option:focus,.rtl-container.blue.night .mat-nav-list .mat-list-item:hover,.rtl-container.blue.night .mat-nav-list .mat-list-item:focus,.rtl-container.blue.night .mat-action-list .mat-list-item:hover,.rtl-container.blue.night .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.blue.night .mat-list-single-selected-option,.rtl-container.blue.night .mat-list-single-selected-option:hover,.rtl-container.blue.night .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.blue.night .mat-menu-panel{background:#202020}.rtl-container.blue.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.night .mat-menu-item{background:transparent;color:#fff}.rtl-container.blue.night .mat-menu-item .mat-icon-no-color,.rtl-container.blue.night .mat-menu-submenu-icon{color:#fff}.rtl-container.blue.night .mat-menu-item:hover:not([disabled]),.rtl-container.blue.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.blue.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.blue.night .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.blue.night .mat-paginator{background:#202020}.rtl-container.blue.night .mat-paginator-decrement,.rtl-container.blue.night .mat-paginator-increment{border-top:2px solid white;border-right:2px solid white}.rtl-container.blue.night .mat-paginator-first,.rtl-container.blue.night .mat-paginator-last{border-top:2px solid white}.rtl-container.blue.night .mat-progress-bar-background{fill:#10273e}.rtl-container.blue.night .mat-progress-bar-buffer{background-color:#10273e}.rtl-container.blue.night .mat-progress-bar-fill:after{background-color:#1976d2}.rtl-container.blue.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.blue.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.blue.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.blue.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.blue.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.blue.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.blue.night .mat-progress-spinner circle,.rtl-container.blue.night .mat-spinner circle{stroke:#1976d2}.rtl-container.blue.night .mat-progress-spinner.mat-accent circle,.rtl-container.blue.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.blue.night .mat-progress-spinner.mat-warn circle,.rtl-container.blue.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.blue.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#1976d2}.rtl-container.blue.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.blue.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#1976d2}.rtl-container.blue.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.blue.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.blue.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.blue.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.blue.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.blue.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.blue.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.blue.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.blue.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.blue.night .mat-select-value{color:#fff}.rtl-container.blue.night .mat-select-panel{background:#202020}.rtl-container.blue.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.blue.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#1976d2}.rtl-container.blue.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.blue.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.blue.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.blue.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.blue.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.blue.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.blue.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.blue.night .mat-drawer-side{border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.blue.night .mat-drawer-side.mat-drawer-end,.rtl-container.blue.night [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(255,255,255,.3);border-right:none}.rtl-container.blue.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.blue.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.blue.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.blue.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.blue.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.blue.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#1976d2}.rtl-container.blue.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#1976d28a}.rtl-container.blue.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#1976d2}.rtl-container.blue.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.blue.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.blue.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.blue.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.blue.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#bdbdbd}.rtl-container.blue.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.blue.night .mat-primary .mat-slider-track-fill,.rtl-container.blue.night .mat-primary .mat-slider-thumb,.rtl-container.blue.night .mat-primary .mat-slider-thumb-label{background-color:#1976d2}.rtl-container.blue.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.night .mat-primary .mat-slider-focus-ring{background-color:#1976d233}.rtl-container.blue.night .mat-accent .mat-slider-track-fill,.rtl-container.blue.night .mat-accent .mat-slider-thumb,.rtl-container.blue.night .mat-accent .mat-slider-thumb-label{background-color:#eee}.rtl-container.blue.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.blue.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.blue.night .mat-warn .mat-slider-track-fill,.rtl-container.blue.night .mat-warn .mat-slider-thumb,.rtl-container.blue.night .mat-warn .mat-slider-thumb-label{background-color:#ff343b}.rtl-container.blue.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.blue.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.blue.night .mat-slider:hover .mat-slider-track-background,.rtl-container.blue.night .mat-slider.cdk-focused .mat-slider-track-background{background-color:#fff9}.rtl-container.blue.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.blue.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.blue.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.blue.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.blue.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.blue.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.blue.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.blue.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.blue.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:transparent}.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#fff9}.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.blue.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.blue.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.blue.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.blue.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.blue.night .mat-step-header.cdk-keyboard-focused,.rtl-container.blue.night .mat-step-header.cdk-program-focused,.rtl-container.blue.night .mat-step-header:hover:not([aria-disabled]),.rtl-container.blue.night .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.blue.night .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.blue.night .mat-step-header:hover{background:none}}.rtl-container.blue.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.blue.night .mat-step-header .mat-step-icon-selected,.rtl-container.blue.night .mat-step-header .mat-step-icon-state-done,.rtl-container.blue.night .mat-step-header .mat-step-icon-state-edit{background-color:#1976d2;color:#fff}.rtl-container.blue.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.blue.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.blue.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.blue.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.blue.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.blue.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.blue.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.blue.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.blue.night .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#ff343b}.rtl-container.blue.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.blue.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.blue.night .mat-stepper-horizontal,.rtl-container.blue.night .mat-stepper-vertical{background-color:#202020}.rtl-container.blue.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.blue.night .mat-horizontal-stepper-header:before,.rtl-container.blue.night .mat-horizontal-stepper-header:after,.rtl-container.blue.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.blue.night .mat-tab-nav-bar,.rtl-container.blue.night .mat-tab-header{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.blue.night .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.blue.night .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(255,255,255,.3);border-bottom:none}.rtl-container.blue.night .mat-tab-label,.rtl-container.blue.night .mat-tab-link{color:#fff}.rtl-container.blue.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.blue.night .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.blue.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.blue.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#90caf94d}.rtl-container.blue.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#1976d2}.rtl-container.blue.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.blue.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.blue.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.blue.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.blue.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.blue.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#90caf94d}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#1976d2}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.blue.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#eee}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#000}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#000;opacity:.4}.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#000;opacity:.12}.rtl-container.blue.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#ff343b}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.blue.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.blue.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.blue.night .mat-toolbar.mat-primary{background:#1976d2;color:#fff}.rtl-container.blue.night .mat-toolbar.mat-accent{background:#eeeeee;color:#000}.rtl-container.blue.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.blue.night .mat-toolbar .mat-form-field-underline,.rtl-container.blue.night .mat-toolbar .mat-form-field-ripple,.rtl-container.blue.night .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.blue.night .mat-toolbar .mat-form-field-label,.rtl-container.blue.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.blue.night .mat-toolbar .mat-select-value,.rtl-container.blue.night .mat-toolbar .mat-select-arrow,.rtl-container.blue.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.blue.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.blue.night .mat-tree{background:#202020}.rtl-container.blue.night .mat-tree-node,.rtl-container.blue.night .mat-nested-tree-node{color:#fff}.rtl-container.blue.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.blue.night .mat-simple-snackbar-action{color:inherit}.rtl-container.blue.night .mat-primary{color:#448aff}.rtl-container.blue.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.blue.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.blue.night .bg-primary{background-color:#1976d2;color:#fff}.rtl-container.blue.night .mat-tab-label.mat-tab-label-active{color:#448aff}.rtl-container.blue.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#448aff}.rtl-container.blue.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.blue.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.blue.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.blue.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.blue.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.blue.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#448aff}.rtl-container.blue.night .cc-data-block .cc-data-title{color:#448aff}.rtl-container.blue.night .mat-stroked-button.mat-primary{border-color:#448aff;color:#448aff}.rtl-container.blue.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.blue.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.blue.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.blue.night .active-link,.rtl-container.blue.night .active-link .fa-icon-small,.rtl-container.blue.night .mat-select-panel .mat-option.mat-active,.rtl-container.blue.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#448aff;font-weight:500;cursor:pointer;fill:#448aff}.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.blue.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#448aff}.rtl-container.blue.night .mat-tree-node:hover,.rtl-container.blue.night .mat-nested-tree-node-parent:hover,.rtl-container.blue.night .mat-select-panel .mat-option:hover,.rtl-container.blue.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.blue.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled){color:#448aff;cursor:pointer;background:rgba(255,255,255,.06)}.rtl-container.blue.night .mat-tree-node:hover .ng-fa-icon,.rtl-container.blue.night .mat-tree-node:hover .mat-icon,.rtl-container.blue.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.blue.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.blue.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.blue.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.blue.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.blue.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon{color:#448aff}.rtl-container.blue.night .mat-tree-node:hover .sidenav-img svg,.rtl-container.blue.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.blue.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.blue.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.blue.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.blue.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg{fill:#448aff}.rtl-container.blue.night .mat-tree-node .sidenav-img,.rtl-container.blue.night .mat-nested-tree-node .sidenav-img,.rtl-container.blue.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.blue.night .page-title-container .page-title-img,.rtl-container.blue.night svg.top-icon-small{fill:#fff}.rtl-container.blue.night .selected-color{border-color:#90caf9}.rtl-container.blue.night .mat-progress-bar-fill:after{background-color:#1e88e5}.rtl-container.blue.night .chart-legend .legend-label:hover,.rtl-container.blue.night .chart-legend .legend-label .active .legend-label-text{color:#fff!important}.rtl-container.blue.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.blue.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#448aff}.rtl-container.blue.night .mat-select-panel{background-color:#262626}.rtl-container.blue.night .mat-tree{background:#262626}.rtl-container.blue.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.blue.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.blue.night .dashboard-info-title{color:#448aff}.rtl-container.blue.night .dashboard-info-value,.rtl-container.blue.night .dashboard-capacity-header{color:#fff}.rtl-container.blue.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.blue.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.blue.night .color-primary{color:#448aff!important}.rtl-container.blue.night .dot-primary{background-color:#448aff!important}.rtl-container.blue.night .dot-primary-lighter{background-color:#1976d2!important}.rtl-container.blue.night .mat-stepper-vertical{background-color:#262626}.rtl-container.blue.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.blue.night svg .boltz-icon-fill{fill:#fff}.rtl-container.blue.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.blue.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.blue.night svg .fill-color-0{fill:#171717}.rtl-container.blue.night svg .fill-color-1{fill:#232323}.rtl-container.blue.night svg .fill-color-2{fill:#222}.rtl-container.blue.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.blue.night svg .fill-color-4{fill:#383838}.rtl-container.blue.night svg .fill-color-5{fill:#555}.rtl-container.blue.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.blue.night svg .fill-color-7{fill:#202020}.rtl-container.blue.night svg .fill-color-8{fill:#242424}.rtl-container.blue.night svg .fill-color-9{fill:#262626}.rtl-container.blue.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.blue.night svg .fill-color-11{fill:#171717}.rtl-container.blue.night svg .fill-color-12{fill:#ccc}.rtl-container.blue.night svg .fill-color-13{fill:#adadad}.rtl-container.blue.night svg .fill-color-14{fill:#ababab}.rtl-container.blue.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.blue.night svg .fill-color-16{fill:#707070}.rtl-container.blue.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.blue.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.blue.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.blue.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.blue.night svg .fill-color-21{fill:#cacaca}.rtl-container.blue.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.blue.night svg .fill-color-23{fill:#777}.rtl-container.blue.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.blue.night svg .fill-color-25{fill:#252525}.rtl-container.blue.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.blue.night svg .fill-color-27{fill:#000}.rtl-container.blue.night svg .fill-color-28{fill:#313131}.rtl-container.blue.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.blue.night svg .fill-color-30{fill:#fff}.rtl-container.blue.night svg .fill-color-31{fill:#1976d2}.rtl-container.blue.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.blue.night svg .fill-color-primary{fill:#1976d2}.rtl-container.blue.night svg .fill-color-primary-lighter{fill:#90caf9}.rtl-container.blue.night svg .fill-color-primary-darker{fill:#448aff}.rtl-container.blue.night .mat-select-value,.rtl-container.blue.night .mat-select-arrow{color:#fff}.rtl-container.blue.night .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.blue.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.blue.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.blue.night .mat-slide-toggle-bar,.rtl-container.blue.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.blue.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.blue.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.blue.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.blue.night .mat-button.mat-primary,.rtl-container.blue.night .mat-icon-button.mat-primary,.rtl-container.blue.night .mat-stroked-button.mat-primary{color:#448aff}.rtl-container.blue.night tr.alert.alert-warn .mat-cell,.rtl-container.blue.night tr.alert.alert-warn .mat-header-cell,.rtl-container.blue.night tr.alert.alert-warn .mat-footer-cell{color:#856404}.rtl-container.blue.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.blue.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#448aff}.rtl-container.blue.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.blue.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#1565c0}.rtl-container.blue.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.blue.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#448aff}.rtl-container.blue.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.blue.night .mat-progress-bar-buffer{background-color:#bbdefb}.rtl-container.blue.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.blue.night .foreground-secondary-text{color:!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.blue.night .foreground.mat-progress-spinner circle,.rtl-container.blue.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.blue.night .mat-toolbar-row,.rtl-container.blue.night .mat-toolbar-single-row{height:5rem}.rtl-container.blue.night .lnd-info{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.blue.night a{color:#1976d2}.rtl-container.blue.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.blue.night .h-active-link{border-bottom:2px solid white}.rtl-container.blue.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.blue.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.blue.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.blue.night .genseed-message{width:10%;color:#1976d2}.rtl-container.blue.night .material-icons.primary{color:#1976d2}.rtl-container.blue.night .material-icons.accent{color:#eee}.rtl-container.blue.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.blue.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.blue.night .row-disabled{background-color:gray}.rtl-container.blue.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.blue.night .mat-menu-panel{min-width:6.4rem}.rtl-container.blue.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.blue.night .horizontal-button:hover{background:#90caf9;color:#eee}.rtl-container.blue.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#1976d2}.rtl-container.blue.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.blue.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.blue.night .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.blue.night .mat-button,.rtl-container.blue.night .mat-icon-button,.rtl-container.blue.night .mat-stroked-button,.rtl-container.blue.night .mat-flat-button{border-radius:2px}.rtl-container.blue.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.blue.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.blue.night .mat-cell,.rtl-container.blue.night .mat-header-cell,.rtl-container.blue.night .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ffffff4d}.rtl-container.blue.night table.mat-table{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.blue.night table.mat-table thead tr th{color:#fff}.rtl-container.blue.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.blue.night .bordered-box{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.blue.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.blue.night .mat-expansion-panel{border:1px solid rgba(255,255,255,.3)}.rtl-container.blue.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.blue.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.blue.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.blue.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.blue.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.blue.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.blue.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.blue.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.blue.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.blue.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.blue.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.blue.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.blue.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.blue.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.blue.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.blue.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.blue.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.blue.night .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#90caf9!important}.rtl-container.blue.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#1e88e5!important}.rtl-container.blue.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.blue.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.blue.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.blue.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.blue.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.blue.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.blue.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.blue.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.blue.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.blue.night .color-warn{color:#ff343b}.rtl-container.blue.night .fill-warn{fill:#ff343b}.rtl-container.blue.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.blue.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.blue.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.blue.night .alert.alert-info a{color:#004085}.rtl-container.blue.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.blue.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.blue.night .alert.alert-warn a{color:#856404}.rtl-container.blue.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.blue.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.blue.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.blue.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.blue.night .help-expansion .mat-expansion-panel-header,.rtl-container.blue.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.blue.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.blue.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.blue.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.blue.night .failed-status{color:#ff343b}.rtl-container.blue.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.blue.night .svg-fill-primary{fill:#1976d2}.rtl-container.blue.night .svg-fill-primary-lighter{fill:#90caf9}.rtl-container.blue.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.blue.night ngx-charts-bar-vertical text,.rtl-container.blue.night ngx-charts-bar-vertical-2d text{fill:#fff}.rtl-container.blue.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.blue.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.blue.night .mat-paginator-container{padding:0}.rtl-container.blue.night .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.blue.night .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.blue.night .invoice-animation-div .particles-circle{position:absolute;background-color:#1976d2;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #1976d2;background-color:transparent}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.blue.night .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.blue.night .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.blue.night .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.blue.night .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.blue.night .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.indigo.small.small .mat-header-cell{font-weight:700}.rtl-container.indigo.small.small .mr-4{margin-right:1rem!important}.rtl-container.indigo.small.small .mat-menu-item,.rtl-container.indigo.small.small .mat-tree .mat-tree-node,.rtl-container.indigo.small.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.indigo.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.indigo.small.small .genseed-message,.rtl-container.indigo.small.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.indigo.small.small .fa-icon-small,.rtl-container.indigo.small.small .top-icon-small{font-size:1.44rem}.rtl-container.indigo.small.small .page-title-container,.rtl-container.indigo.small.small .page-sub-title-container{font-size:1.32rem}.rtl-container.indigo.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.indigo.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.indigo.small.small .top-toolbar-icon .top-toolbar-img,.rtl-container.indigo.small.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.indigo.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.indigo.small.small .material-icons,.rtl-container.indigo.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.indigo.small.small .mat-expansion-panel-header,.rtl-container.indigo.small.small .mat-menu-item,.rtl-container.indigo.small.small .mat-list .mat-list-item,.rtl-container.indigo.small.small .mat-nav-list .mat-list-item,.rtl-container.indigo.small.small .mat-option,.rtl-container.indigo.small.small .mat-select,.rtl-container.indigo.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.indigo.small.small .logo{font-size:2.4rem}.rtl-container.indigo.small.small .font-60-percent{font-size:.72rem}.rtl-container.indigo.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.indigo.small.small .icon-large{font-size:6rem}.rtl-container.indigo.small.small .icon-small{font-size:1.8rem!important}.rtl-container.indigo.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.indigo.small.small .size-triple{font-size:3.6rem}.rtl-container.indigo.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.indigo.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.small.medium .mat-header-cell{font-weight:700}.rtl-container.indigo.small.medium .mat-tree .mat-tree-node,.rtl-container.indigo.small.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.indigo.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.indigo.small.medium .genseed-message,.rtl-container.indigo.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.indigo.small.medium .page-title-container,.rtl-container.indigo.small.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.indigo.small.medium .fa-icon-small,.rtl-container.indigo.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.indigo.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.indigo.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.indigo.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.indigo.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.indigo.small.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.indigo.small.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.indigo.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.indigo.small.medium .material-icons{font-size:2.8rem}.rtl-container.indigo.small.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.indigo.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.indigo.small.medium .mat-expansion-panel-header,.rtl-container.indigo.small.medium .mat-menu-item,.rtl-container.indigo.small.medium .mat-list .mat-list-item,.rtl-container.indigo.small.medium .mat-nav-list .mat-list-item,.rtl-container.indigo.small.medium .mat-option,.rtl-container.indigo.small.medium .mat-select,.rtl-container.indigo.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.indigo.small.medium .logo{font-size:2.8rem}.rtl-container.indigo.small.medium .font-60-percent{font-size:.84rem}.rtl-container.indigo.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.indigo.small.medium .icon-large{font-size:7rem}.rtl-container.indigo.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.indigo.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.indigo.small.medium .size-triple{font-size:4.2rem}.rtl-container.indigo.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.indigo.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.small.large .mat-header-cell{font-weight:800}.rtl-container.indigo.small.large .mat-tree .mat-tree-node,.rtl-container.indigo.small.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.indigo.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.indigo.small.large .genseed-message,.rtl-container.indigo.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.indigo.small.large .page-title-container,.rtl-container.indigo.small.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.indigo.small.large .fa-icon-small,.rtl-container.indigo.small.large .top-icon-small,.rtl-container.indigo.small.large .modal-info-header{font-size:1.92rem}.rtl-container.indigo.small.large .top-toolbar-icon.icon-pinned,.rtl-container.indigo.small.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.indigo.small.large .top-toolbar-icon .top-toolbar-img,.rtl-container.indigo.small.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.indigo.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.indigo.small.large .material-icons{font-size:4rem}.rtl-container.indigo.small.large .mat-expansion-panel-header,.rtl-container.indigo.small.large .mat-menu-item,.rtl-container.indigo.small.large .mat-list .mat-list-item,.rtl-container.indigo.small.large .mat-nav-list .mat-list-item,.rtl-container.indigo.small.large .mat-option,.rtl-container.indigo.small.large .mat-select,.rtl-container.indigo.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.indigo.small.large .logo{font-size:3.2rem}.rtl-container.indigo.small.large .font-60-percent{font-size:.96rem}.rtl-container.indigo.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.indigo.small.large .icon-large{font-size:8rem}.rtl-container.indigo.small.large .icon-small{font-size:2.4rem!important}.rtl-container.indigo.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.indigo.small.large .size-triple{font-size:4.8rem}.rtl-container.indigo.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.indigo.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.small .mat-icon.material-icons:focus{outline:none}.rtl-container.indigo.small .mat-flat-button.mat-primary:focus,.rtl-container.indigo.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.indigo.medium.small .mat-header-cell{font-weight:700}.rtl-container.indigo.medium.small .mr-4{margin-right:1rem!important}.rtl-container.indigo.medium.small .mat-menu-item,.rtl-container.indigo.medium.small .mat-tree .mat-tree-node,.rtl-container.indigo.medium.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.indigo.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.indigo.medium.small .genseed-message,.rtl-container.indigo.medium.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.indigo.medium.small .fa-icon-small,.rtl-container.indigo.medium.small .top-icon-small{font-size:1.44rem}.rtl-container.indigo.medium.small .page-title-container,.rtl-container.indigo.medium.small .page-sub-title-container{font-size:1.32rem}.rtl-container.indigo.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.indigo.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.indigo.medium.small .top-toolbar-icon .top-toolbar-img,.rtl-container.indigo.medium.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.indigo.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.indigo.medium.small .material-icons,.rtl-container.indigo.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.indigo.medium.small .mat-expansion-panel-header,.rtl-container.indigo.medium.small .mat-menu-item,.rtl-container.indigo.medium.small .mat-list .mat-list-item,.rtl-container.indigo.medium.small .mat-nav-list .mat-list-item,.rtl-container.indigo.medium.small .mat-option,.rtl-container.indigo.medium.small .mat-select,.rtl-container.indigo.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.indigo.medium.small .logo{font-size:2.4rem}.rtl-container.indigo.medium.small .font-60-percent{font-size:.72rem}.rtl-container.indigo.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.indigo.medium.small .icon-large{font-size:6rem}.rtl-container.indigo.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.indigo.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.indigo.medium.small .size-triple{font-size:3.6rem}.rtl-container.indigo.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.indigo.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.medium.medium .mat-header-cell{font-weight:700}.rtl-container.indigo.medium.medium .mat-tree .mat-tree-node,.rtl-container.indigo.medium.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.indigo.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.indigo.medium.medium .genseed-message,.rtl-container.indigo.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.indigo.medium.medium .page-title-container,.rtl-container.indigo.medium.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.indigo.medium.medium .fa-icon-small,.rtl-container.indigo.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.indigo.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.indigo.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.indigo.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.indigo.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.indigo.medium.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.indigo.medium.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.indigo.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.indigo.medium.medium .material-icons{font-size:2.8rem}.rtl-container.indigo.medium.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.indigo.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.indigo.medium.medium .mat-expansion-panel-header,.rtl-container.indigo.medium.medium .mat-menu-item,.rtl-container.indigo.medium.medium .mat-list .mat-list-item,.rtl-container.indigo.medium.medium .mat-nav-list .mat-list-item,.rtl-container.indigo.medium.medium .mat-option,.rtl-container.indigo.medium.medium .mat-select,.rtl-container.indigo.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.indigo.medium.medium .logo{font-size:2.8rem}.rtl-container.indigo.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.indigo.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.indigo.medium.medium .icon-large{font-size:7rem}.rtl-container.indigo.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.indigo.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.indigo.medium.medium .size-triple{font-size:4.2rem}.rtl-container.indigo.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.indigo.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.medium.large .mat-header-cell{font-weight:800}.rtl-container.indigo.medium.large .mat-tree .mat-tree-node,.rtl-container.indigo.medium.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.indigo.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.indigo.medium.large .genseed-message,.rtl-container.indigo.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.indigo.medium.large .page-title-container,.rtl-container.indigo.medium.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.indigo.medium.large .fa-icon-small,.rtl-container.indigo.medium.large .top-icon-small,.rtl-container.indigo.medium.large .modal-info-header{font-size:1.92rem}.rtl-container.indigo.medium.large .top-toolbar-icon.icon-pinned,.rtl-container.indigo.medium.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.indigo.medium.large .top-toolbar-icon .top-toolbar-img,.rtl-container.indigo.medium.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.indigo.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.indigo.medium.large .material-icons{font-size:4rem}.rtl-container.indigo.medium.large .mat-expansion-panel-header,.rtl-container.indigo.medium.large .mat-menu-item,.rtl-container.indigo.medium.large .mat-list .mat-list-item,.rtl-container.indigo.medium.large .mat-nav-list .mat-list-item,.rtl-container.indigo.medium.large .mat-option,.rtl-container.indigo.medium.large .mat-select,.rtl-container.indigo.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.indigo.medium.large .logo{font-size:3.2rem}.rtl-container.indigo.medium.large .font-60-percent{font-size:.96rem}.rtl-container.indigo.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.indigo.medium.large .icon-large{font-size:8rem}.rtl-container.indigo.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.indigo.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.indigo.medium.large .size-triple{font-size:4.8rem}.rtl-container.indigo.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.indigo.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.indigo.medium .mat-flat-button.mat-primary:focus,.rtl-container.indigo.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.indigo.large.small .mat-header-cell{font-weight:700}.rtl-container.indigo.large.small .mr-4{margin-right:1rem!important}.rtl-container.indigo.large.small .mat-menu-item,.rtl-container.indigo.large.small .mat-tree .mat-tree-node,.rtl-container.indigo.large.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.indigo.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.indigo.large.small .genseed-message,.rtl-container.indigo.large.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.indigo.large.small .fa-icon-small,.rtl-container.indigo.large.small .top-icon-small{font-size:1.44rem}.rtl-container.indigo.large.small .page-title-container,.rtl-container.indigo.large.small .page-sub-title-container{font-size:1.32rem}.rtl-container.indigo.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.indigo.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.indigo.large.small .top-toolbar-icon .top-toolbar-img,.rtl-container.indigo.large.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.indigo.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.indigo.large.small .material-icons,.rtl-container.indigo.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.indigo.large.small .mat-expansion-panel-header,.rtl-container.indigo.large.small .mat-menu-item,.rtl-container.indigo.large.small .mat-list .mat-list-item,.rtl-container.indigo.large.small .mat-nav-list .mat-list-item,.rtl-container.indigo.large.small .mat-option,.rtl-container.indigo.large.small .mat-select,.rtl-container.indigo.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.indigo.large.small .logo{font-size:2.4rem}.rtl-container.indigo.large.small .font-60-percent{font-size:.72rem}.rtl-container.indigo.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.indigo.large.small .icon-large{font-size:6rem}.rtl-container.indigo.large.small .icon-small{font-size:1.8rem!important}.rtl-container.indigo.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.indigo.large.small .size-triple{font-size:3.6rem}.rtl-container.indigo.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.indigo.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.large.medium .mat-header-cell{font-weight:700}.rtl-container.indigo.large.medium .mat-tree .mat-tree-node,.rtl-container.indigo.large.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.indigo.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.indigo.large.medium .genseed-message,.rtl-container.indigo.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.indigo.large.medium .page-title-container,.rtl-container.indigo.large.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.indigo.large.medium .fa-icon-small,.rtl-container.indigo.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.indigo.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.indigo.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.indigo.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.indigo.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.indigo.large.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.indigo.large.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.indigo.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.indigo.large.medium .material-icons{font-size:2.8rem}.rtl-container.indigo.large.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.indigo.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.indigo.large.medium .mat-expansion-panel-header,.rtl-container.indigo.large.medium .mat-menu-item,.rtl-container.indigo.large.medium .mat-list .mat-list-item,.rtl-container.indigo.large.medium .mat-nav-list .mat-list-item,.rtl-container.indigo.large.medium .mat-option,.rtl-container.indigo.large.medium .mat-select,.rtl-container.indigo.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.indigo.large.medium .logo{font-size:2.8rem}.rtl-container.indigo.large.medium .font-60-percent{font-size:.84rem}.rtl-container.indigo.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.indigo.large.medium .icon-large{font-size:7rem}.rtl-container.indigo.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.indigo.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.indigo.large.medium .size-triple{font-size:4.2rem}.rtl-container.indigo.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.indigo.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.large.large .mat-header-cell{font-weight:800}.rtl-container.indigo.large.large .mat-tree .mat-tree-node,.rtl-container.indigo.large.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.indigo.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.indigo.large.large .genseed-message,.rtl-container.indigo.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.indigo.large.large .page-title-container,.rtl-container.indigo.large.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.indigo.large.large .fa-icon-small,.rtl-container.indigo.large.large .top-icon-small,.rtl-container.indigo.large.large .modal-info-header{font-size:1.92rem}.rtl-container.indigo.large.large .top-toolbar-icon.icon-pinned,.rtl-container.indigo.large.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.indigo.large.large .top-toolbar-icon .top-toolbar-img,.rtl-container.indigo.large.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.indigo.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.indigo.large.large .material-icons{font-size:4rem}.rtl-container.indigo.large.large .mat-expansion-panel-header,.rtl-container.indigo.large.large .mat-menu-item,.rtl-container.indigo.large.large .mat-list .mat-list-item,.rtl-container.indigo.large.large .mat-nav-list .mat-list-item,.rtl-container.indigo.large.large .mat-option,.rtl-container.indigo.large.large .mat-select,.rtl-container.indigo.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.indigo.large.large .logo{font-size:3.2rem}.rtl-container.indigo.large.large .font-60-percent{font-size:.96rem}.rtl-container.indigo.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.indigo.large.large .icon-large{font-size:8rem}.rtl-container.indigo.large.large .icon-small{font-size:2.4rem!important}.rtl-container.indigo.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.indigo.large.large .size-triple{font-size:4.8rem}.rtl-container.indigo.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.indigo.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.indigo.large .mat-icon.material-icons:focus{outline:none}.rtl-container.indigo.large .mat-flat-button.mat-primary:focus,.rtl-container.indigo.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.indigo.day .mat-ripple-element{background-color:#0000001a}.rtl-container.indigo.day .mat-option{color:#000000de}.rtl-container.indigo.day .mat-option:hover:not(.mat-option-disabled),.rtl-container.indigo.day .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.indigo.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.indigo.day .mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.rtl-container.indigo.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.indigo.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#3f51b5}.rtl-container.indigo.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.indigo.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.indigo.day .mat-optgroup-label{color:#0000008a}.rtl-container.indigo.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.indigo.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.indigo.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.indigo.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.indigo.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.indigo.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#3f51b5}.rtl-container.indigo.day .mat-pseudo-checkbox-checked,.rtl-container.indigo.day .mat-pseudo-checkbox-indeterminate,.rtl-container.indigo.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.indigo.day .mat-accent .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.indigo.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.indigo.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.indigo.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.indigo.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.indigo.day .mat-app-background,.rtl-container.indigo.day.mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.indigo.day .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.indigo.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.indigo.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.indigo.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.indigo.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.indigo.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.indigo.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.indigo.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.indigo.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.indigo.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.indigo.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.indigo.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.indigo.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.indigo.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.indigo.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.indigo.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.indigo.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.indigo.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.indigo.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.indigo.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.indigo.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.indigo.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.indigo.day .mat-autocomplete-panel{background:white;color:#000000de}.rtl-container.indigo.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:white}.rtl-container.indigo.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.indigo.day .mat-badge{position:relative}.rtl-container.indigo.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.indigo.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.indigo.day .ng-animate-disabled .mat-badge-content,.rtl-container.indigo.day .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.indigo.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.indigo.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.indigo.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.indigo.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.indigo.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.indigo.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.indigo.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.indigo.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.indigo.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.indigo.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.indigo.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.indigo.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.indigo.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.indigo.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.indigo.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.indigo.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.indigo.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.indigo.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.indigo.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.indigo.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.indigo.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.indigo.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.indigo.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.indigo.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.indigo.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.indigo.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.indigo.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.indigo.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.indigo.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.indigo.day .mat-badge-content{color:#fff;background:#3f51b5}.cdk-high-contrast-active .rtl-container.indigo.day .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.indigo.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.indigo.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.indigo.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.indigo.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:white;color:#000000de}.rtl-container.indigo.day .mat-button,.rtl-container.indigo.day .mat-icon-button,.rtl-container.indigo.day .mat-stroked-button{color:inherit;background:transparent}.rtl-container.indigo.day .mat-button.mat-primary,.rtl-container.indigo.day .mat-icon-button.mat-primary,.rtl-container.indigo.day .mat-stroked-button.mat-primary{color:#3f51b5}.rtl-container.indigo.day .mat-button.mat-accent,.rtl-container.indigo.day .mat-icon-button.mat-accent,.rtl-container.indigo.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.indigo.day .mat-button.mat-warn,.rtl-container.indigo.day .mat-icon-button.mat-warn,.rtl-container.indigo.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.indigo.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.indigo.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.indigo.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.indigo.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#3f51b5}.rtl-container.indigo.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.indigo.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.indigo.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.indigo.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.indigo.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.indigo.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.indigo.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.indigo.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.indigo.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.indigo.day .mat-button .mat-ripple-element,.rtl-container.indigo.day .mat-icon-button .mat-ripple-element,.rtl-container.indigo.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.indigo.day .mat-button-focus-overlay{background:black}.rtl-container.indigo.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.indigo.day .mat-flat-button,.rtl-container.indigo.day .mat-raised-button,.rtl-container.indigo.day .mat-fab,.rtl-container.indigo.day .mat-mini-fab{color:#000000de;background-color:#fff}.rtl-container.indigo.day .mat-flat-button.mat-primary,.rtl-container.indigo.day .mat-raised-button.mat-primary,.rtl-container.indigo.day .mat-fab.mat-primary,.rtl-container.indigo.day .mat-mini-fab.mat-primary,.rtl-container.indigo.day .mat-flat-button.mat-accent,.rtl-container.indigo.day .mat-raised-button.mat-accent,.rtl-container.indigo.day .mat-fab.mat-accent,.rtl-container.indigo.day .mat-mini-fab.mat-accent,.rtl-container.indigo.day .mat-flat-button.mat-warn,.rtl-container.indigo.day .mat-raised-button.mat-warn,.rtl-container.indigo.day .mat-fab.mat-warn,.rtl-container.indigo.day .mat-mini-fab.mat-warn{color:#fff}.rtl-container.indigo.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.indigo.day .mat-flat-button.mat-primary,.rtl-container.indigo.day .mat-raised-button.mat-primary,.rtl-container.indigo.day .mat-fab.mat-primary,.rtl-container.indigo.day .mat-mini-fab.mat-primary{background-color:#3f51b5}.rtl-container.indigo.day .mat-flat-button.mat-accent,.rtl-container.indigo.day .mat-raised-button.mat-accent,.rtl-container.indigo.day .mat-fab.mat-accent,.rtl-container.indigo.day .mat-mini-fab.mat-accent{background-color:#424242}.rtl-container.indigo.day .mat-flat-button.mat-warn,.rtl-container.indigo.day .mat-raised-button.mat-warn,.rtl-container.indigo.day .mat-fab.mat-warn,.rtl-container.indigo.day .mat-mini-fab.mat-warn{background-color:#b00020}.rtl-container.indigo.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.rtl-container.indigo.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.indigo.day .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.indigo.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.indigo.day .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.day .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.indigo.day .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.indigo.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.indigo.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.indigo.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.indigo.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.indigo.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.indigo.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.day .mat-button-toggle-standalone,.rtl-container.indigo.day .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.indigo.day .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.indigo.day .mat-button-toggle{color:#00000061}.rtl-container.indigo.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.indigo.day .mat-button-toggle-appearance-standard{color:#000000de;background:white}.rtl-container.indigo.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.indigo.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,.12)}.rtl-container.indigo.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.indigo.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.indigo.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.indigo.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:white}.rtl-container.indigo.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.indigo.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.indigo.day .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-card{background:white;color:#000000de}.rtl-container.indigo.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.indigo.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.day .mat-card-subtitle{color:#0000008a}.rtl-container.indigo.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.indigo.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.indigo.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.indigo.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.indigo.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.indigo.day .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#3f51b5}.rtl-container.indigo.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.indigo.day .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.indigo.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.indigo.day .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.indigo.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.indigo.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.indigo.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.indigo.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.indigo.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.indigo.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.indigo.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#3f51b5}.rtl-container.indigo.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.indigo.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.indigo.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.indigo.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.indigo.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.indigo.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.indigo.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip:after{background:black}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#3f51b5;color:#fff}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.day .mat-table{background:white}.rtl-container.indigo.day .mat-table thead,.rtl-container.indigo.day .mat-table tbody,.rtl-container.indigo.day .mat-table tfoot,.rtl-container.indigo.day mat-header-row,.rtl-container.indigo.day mat-row,.rtl-container.indigo.day mat-footer-row,.rtl-container.indigo.day [mat-header-row],.rtl-container.indigo.day [mat-row],.rtl-container.indigo.day [mat-footer-row],.rtl-container.indigo.day .mat-table-sticky{background:inherit}.rtl-container.indigo.day mat-row,.rtl-container.indigo.day mat-header-row,.rtl-container.indigo.day mat-footer-row,.rtl-container.indigo.day th.mat-header-cell,.rtl-container.indigo.day td.mat-cell,.rtl-container.indigo.day td.mat-footer-cell{border-bottom-color:#0000001f}.rtl-container.indigo.day .mat-header-cell{color:#0000008a}.rtl-container.indigo.day .mat-cell,.rtl-container.indigo.day .mat-footer-cell{color:#000000de}.rtl-container.indigo.day .mat-calendar-arrow{fill:#0000008a}.rtl-container.indigo.day .mat-datepicker-toggle,.rtl-container.indigo.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.indigo.day .mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.rtl-container.indigo.day .mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-calendar-table-header,.rtl-container.indigo.day .mat-calendar-body-label{color:#0000008a}.rtl-container.indigo.day .mat-calendar-body-cell-content,.rtl-container.indigo.day .mat-date-range-input-separator{color:#000000de;border-color:transparent}.rtl-container.indigo.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.rtl-container.indigo.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.indigo.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.indigo.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.indigo.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.indigo.day .mat-calendar-body-in-range:before{background:rgba(63,81,181,.2)}.rtl-container.indigo.day .mat-calendar-body-comparison-identical,.rtl-container.indigo.day .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.indigo.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.indigo.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.indigo.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.day .mat-calendar-body-selected{background-color:#3f51b5;color:#fff}.rtl-container.indigo.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#3f51b566}.rtl-container.indigo.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}@media (hover: hover){.rtl-container.indigo.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}}.rtl-container.indigo.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(66,66,66,.2)}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}@media (hover: hover){.rtl-container.indigo.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(176,0,32,.2)}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}@media (hover: hover){.rtl-container.indigo.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}}.rtl-container.indigo.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.indigo.day .mat-datepicker-toggle-active{color:#3f51b5}.rtl-container.indigo.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.indigo.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.indigo.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.indigo.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:white;color:#000000de}.rtl-container.indigo.day .mat-divider{border-top-color:#0000001f}.rtl-container.indigo.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.indigo.day .mat-expansion-panel{background:white;color:#000000de}.rtl-container.indigo.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.day .mat-action-row{border-top-color:#0000001f}.rtl-container.indigo.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.indigo.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.indigo.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.indigo.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:white}}.rtl-container.indigo.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.indigo.day .mat-expansion-panel-header-description,.rtl-container.indigo.day .mat-expansion-indicator:after{color:#0000008a}.rtl-container.indigo.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.indigo.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.indigo.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.indigo.day .mat-form-field-label,.rtl-container.indigo.day .mat-hint{color:#0009}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-label{color:#3f51b5}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.indigo.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.indigo.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#3f51b5}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.indigo.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#3f51b5}.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#b00020}.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.indigo.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.indigo.day .mat-error{color:#b00020}.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.indigo.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.indigo.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.indigo.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.indigo.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.indigo.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.indigo.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.indigo.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.indigo.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.indigo.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.indigo.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#3f51b5}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.indigo.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.indigo.day .mat-icon.mat-primary{color:#3f51b5}.rtl-container.indigo.day .mat-icon.mat-accent{color:#424242}.rtl-container.indigo.day .mat-icon.mat-warn{color:#b00020}.rtl-container.indigo.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.indigo.day .mat-input-element:disabled,.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.rtl-container.indigo.day .mat-input-element{caret-color:#3f51b5}.rtl-container.indigo.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.indigo.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.indigo.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.indigo.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.indigo.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.indigo.day .mat-form-field.mat-warn .mat-input-element,.rtl-container.indigo.day .mat-form-field-invalid .mat-input-element{caret-color:#b00020}.rtl-container.indigo.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.indigo.day .mat-list-base .mat-list-item,.rtl-container.indigo.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.indigo.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.indigo.day .mat-list-item-disabled{background-color:#eee}.rtl-container.indigo.day .mat-list-option:hover,.rtl-container.indigo.day .mat-list-option:focus,.rtl-container.indigo.day .mat-nav-list .mat-list-item:hover,.rtl-container.indigo.day .mat-nav-list .mat-list-item:focus,.rtl-container.indigo.day .mat-action-list .mat-list-item:hover,.rtl-container.indigo.day .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.indigo.day .mat-list-single-selected-option,.rtl-container.indigo.day .mat-list-single-selected-option:hover,.rtl-container.indigo.day .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-menu-panel{background:white}.rtl-container.indigo.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.day .mat-menu-item{background:transparent;color:#000000de}.rtl-container.indigo.day .mat-menu-item[disabled],.rtl-container.indigo.day .mat-menu-item[disabled] .mat-menu-submenu-icon,.rtl-container.indigo.day .mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.rtl-container.indigo.day .mat-menu-item .mat-icon-no-color,.rtl-container.indigo.day .mat-menu-submenu-icon{color:#0000008a}.rtl-container.indigo.day .mat-menu-item:hover:not([disabled]),.rtl-container.indigo.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.indigo.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.indigo.day .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.indigo.day .mat-paginator{background:white}.rtl-container.indigo.day .mat-paginator,.rtl-container.indigo.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.indigo.day .mat-paginator-decrement,.rtl-container.indigo.day .mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.rtl-container.indigo.day .mat-paginator-first,.rtl-container.indigo.day .mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.rtl-container.indigo.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.indigo.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.indigo.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.indigo.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.indigo.day .mat-progress-bar-background{fill:#cbd0e9}.rtl-container.indigo.day .mat-progress-bar-buffer{background-color:#cbd0e9}.rtl-container.indigo.day .mat-progress-bar-fill:after{background-color:#3f51b5}.rtl-container.indigo.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.indigo.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.indigo.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.indigo.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.indigo.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.indigo.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.indigo.day .mat-progress-spinner circle,.rtl-container.indigo.day .mat-spinner circle{stroke:#3f51b5}.rtl-container.indigo.day .mat-progress-spinner.mat-accent circle,.rtl-container.indigo.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.indigo.day .mat-progress-spinner.mat-warn circle,.rtl-container.indigo.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.indigo.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.indigo.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#3f51b5}.rtl-container.indigo.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.indigo.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#3f51b5}.rtl-container.indigo.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.indigo.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.indigo.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.indigo.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.indigo.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.indigo.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.rtl-container.indigo.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.indigo.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.indigo.day .mat-select-value{color:#000000de}.rtl-container.indigo.day .mat-select-placeholder{color:#0000006b}.rtl-container.indigo.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.indigo.day .mat-select-arrow{color:#0000008a}.rtl-container.indigo.day .mat-select-panel{background:white}.rtl-container.indigo.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#3f51b5}.rtl-container.indigo.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.indigo.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.indigo.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.indigo.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.indigo.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.indigo.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.indigo.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.indigo.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.indigo.day .mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-drawer-side.mat-drawer-end,.rtl-container.indigo.day [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}.rtl-container.indigo.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.indigo.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.indigo.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.indigo.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.indigo.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#3f51b5}.rtl-container.indigo.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#3f51b58a}.rtl-container.indigo.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#3f51b5}.rtl-container.indigo.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.indigo.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.indigo.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.indigo.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.indigo.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.rtl-container.indigo.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.indigo.day .mat-slider-track-background{background-color:#00000042}.rtl-container.indigo.day .mat-primary .mat-slider-track-fill,.rtl-container.indigo.day .mat-primary .mat-slider-thumb,.rtl-container.indigo.day .mat-primary .mat-slider-thumb-label{background-color:#3f51b5}.rtl-container.indigo.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.day .mat-primary .mat-slider-focus-ring{background-color:#3f51b533}.rtl-container.indigo.day .mat-accent .mat-slider-track-fill,.rtl-container.indigo.day .mat-accent .mat-slider-thumb,.rtl-container.indigo.day .mat-accent .mat-slider-thumb-label{background-color:#424242}.rtl-container.indigo.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.indigo.day .mat-warn .mat-slider-track-fill,.rtl-container.indigo.day .mat-warn .mat-slider-thumb,.rtl-container.indigo.day .mat-warn .mat-slider-thumb-label{background-color:#b00020}.rtl-container.indigo.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.indigo.day .mat-slider:hover .mat-slider-track-background,.rtl-container.indigo.day .mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.rtl-container.indigo.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.indigo.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.indigo.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.indigo.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.indigo.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.indigo.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.indigo.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.indigo.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.indigo.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.indigo.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.indigo.day .mat-step-header.cdk-keyboard-focused,.rtl-container.indigo.day .mat-step-header.cdk-program-focused,.rtl-container.indigo.day .mat-step-header:hover:not([aria-disabled]),.rtl-container.indigo.day .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.indigo.day .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.indigo.day .mat-step-header:hover{background:none}}.rtl-container.indigo.day .mat-step-header .mat-step-label,.rtl-container.indigo.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.indigo.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.indigo.day .mat-step-header .mat-step-icon-selected,.rtl-container.indigo.day .mat-step-header .mat-step-icon-state-done,.rtl-container.indigo.day .mat-step-header .mat-step-icon-state-edit{background-color:#3f51b5;color:#fff}.rtl-container.indigo.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.indigo.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.indigo.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.indigo.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.indigo.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.indigo.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.indigo.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.indigo.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.indigo.day .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#b00020}.rtl-container.indigo.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.indigo.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.indigo.day .mat-stepper-horizontal,.rtl-container.indigo.day .mat-stepper-vertical{background-color:#fff}.rtl-container.indigo.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.indigo.day .mat-horizontal-stepper-header:before,.rtl-container.indigo.day .mat-horizontal-stepper-header:after,.rtl-container.indigo.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.indigo.day .mat-sort-header-arrow{color:#757575}.rtl-container.indigo.day .mat-tab-nav-bar,.rtl-container.indigo.day .mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.indigo.day .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.rtl-container.indigo.day .mat-tab-label,.rtl-container.indigo.day .mat-tab-link{color:#000000de}.rtl-container.indigo.day .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.indigo.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.indigo.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.indigo.day .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.indigo.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9fa8da4d}.rtl-container.indigo.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#3f51b5}.rtl-container.indigo.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.indigo.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.indigo.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.indigo.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.indigo.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9fa8da4d}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#3f51b5}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.indigo.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#424242}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.indigo.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#b00020}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.indigo.day .mat-toolbar{background:whitesmoke;color:#000000de}.rtl-container.indigo.day .mat-toolbar.mat-primary{background:#3f51b5;color:#fff}.rtl-container.indigo.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.indigo.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.indigo.day .mat-toolbar .mat-form-field-underline,.rtl-container.indigo.day .mat-toolbar .mat-form-field-ripple,.rtl-container.indigo.day .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.indigo.day .mat-toolbar .mat-form-field-label,.rtl-container.indigo.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.indigo.day .mat-toolbar .mat-select-value,.rtl-container.indigo.day .mat-toolbar .mat-select-arrow,.rtl-container.indigo.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.indigo.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.indigo.day .mat-tooltip{background:rgba(97,97,97,.9)}.rtl-container.indigo.day .mat-tree{background:white}.rtl-container.indigo.day .mat-tree-node,.rtl-container.indigo.day .mat-nested-tree-node{color:#000000de}.rtl-container.indigo.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.indigo.day .mat-simple-snackbar-action{color:#424242}.rtl-container.indigo.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.indigo.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.indigo.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.indigo.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.indigo.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.indigo.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.indigo.day .rtl-top-toolbar{border-bottom:1px solid white}.rtl-container.indigo.day .bg-primary{background-color:#3f51b5;color:#fff}.rtl-container.indigo.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#3f51b5}.rtl-container.indigo.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.indigo.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.indigo.day .mat-tab-label.mat-tab-label-active{color:#3f51b5}.rtl-container.indigo.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#3f51b5}.rtl-container.indigo.day .mat-tab-label .tab-badge .mat-badge-content{background:rgba(0,0,0,.54)}.rtl-container.indigo.day .ng-fa-icon,.rtl-container.indigo.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.indigo.day .mat-form-field-suffix{color:#0000008a}.rtl-container.indigo.day .mat-stroked-button.mat-primary{border-color:#3f51b5}.rtl-container.indigo.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.indigo.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.indigo.day .selected-color{border-color:#9fa8da}.rtl-container.indigo.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.indigo.day .page-title-container,.rtl-container.indigo.day .page-sub-title-container{color:#0000008a}.rtl-container.indigo.day .page-title-container .page-title-img,.rtl-container.indigo.day .page-sub-title-container .page-title-img{color:#00000061}.rtl-container.indigo.day .page-title-container .mat-input-element,.rtl-container.indigo.day .page-title-container .mat-radio-label-content,.rtl-container.indigo.day .page-title-container .theme-name,.rtl-container.indigo.day .page-sub-title-container .mat-input-element,.rtl-container.indigo.day .page-sub-title-container .mat-radio-label-content,.rtl-container.indigo.day .page-sub-title-container .theme-name{color:#000000de}.rtl-container.indigo.day .cc-data-block .cc-data-title{color:#3f51b5}.rtl-container.indigo.day .active-link,.rtl-container.indigo.day .active-link .fa-icon-small{color:#3f51b5;font-weight:500;cursor:pointer;fill:#3f51b5}.rtl-container.indigo.day .mat-tree-node:hover,.rtl-container.indigo.day .mat-nested-tree-node-parent:hover,.rtl-container.indigo.day .mat-select-panel .mat-option:hover,.rtl-container.indigo.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover{color:#3f51b5;cursor:pointer;background:rgba(0,0,0,.04)}.rtl-container.indigo.day .mat-tree-node:hover .ng-fa-icon,.rtl-container.indigo.day .mat-tree-node:hover .mat-icon,.rtl-container.indigo.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.indigo.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.indigo.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.indigo.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.indigo.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.indigo.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon{color:#3f51b5}.rtl-container.indigo.day .mat-tree-node:hover .sidenav-img svg,.rtl-container.indigo.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.indigo.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.indigo.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg{fill:#3f51b5}.rtl-container.indigo.day .mat-tree-node .sidenav-img,.rtl-container.indigo.day .mat-nested-tree-node .sidenav-img,.rtl-container.indigo.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.indigo.day .page-title-container .page-title-img,.rtl-container.indigo.day svg.top-icon-small{fill:#000000de}.rtl-container.indigo.day .mat-progress-bar-fill:after{background-color:#1a237e}.rtl-container.indigo.day .modal-qr-code-container{background:rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-tab-label,.rtl-container.indigo.day .mat-tab-link{color:#0000008a}.rtl-container.indigo.day .mat-card,.rtl-container.indigo.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid rgba(0,0,0,.12)}.rtl-container.indigo.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.indigo.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.indigo.day .dashboard-info-title{color:#3f51b5}.rtl-container.indigo.day .dashboard-info-value{color:#0000008a}.rtl-container.indigo.day .color-primary{color:#3f51b5!important}.rtl-container.indigo.day .dot-primary{background-color:#3f51b5!important}.rtl-container.indigo.day .dot-primary-lighter{background-color:#9fa8da!important}.rtl-container.indigo.day .mat-expansion-panel.flat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.indigo.day .mat-tooltip{font-size:120%}.rtl-container.indigo.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.indigo.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.indigo.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.indigo.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.indigo.day svg .fill-color-1{fill:#fff}.rtl-container.indigo.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.indigo.day svg .fill-color-3{fill:#f2f2f2}.rtl-container.indigo.day svg .fill-color-4{fill:#f2f2f2}.rtl-container.indigo.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.indigo.day svg .fill-color-6{fill:#fff}.rtl-container.indigo.day svg .fill-color-7{fill:#cbcbcb}.rtl-container.indigo.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.indigo.day svg .fill-color-9{fill:#fff}.rtl-container.indigo.day svg .fill-color-10{fill:#e6e6e6}.rtl-container.indigo.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.indigo.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.indigo.day svg .fill-color-13{fill:#4a4a4a}.rtl-container.indigo.day svg .fill-color-14{fill:#4a4a4a}.rtl-container.indigo.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.indigo.day svg .fill-color-16{fill:#404040}.rtl-container.indigo.day svg .fill-color-17{fill:#404040}.rtl-container.indigo.day svg .fill-color-18{fill:#000}.rtl-container.indigo.day svg .fill-color-19{fill:#4a4a4a}.rtl-container.indigo.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.indigo.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.indigo.day svg .fill-color-22{fill:#cbcbcb}.rtl-container.indigo.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.indigo.day svg .fill-color-24{fill:#000}.rtl-container.indigo.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.indigo.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.indigo.day svg .fill-color-27{fill:#000}.rtl-container.indigo.day svg .fill-color-28{fill:#313131}.rtl-container.indigo.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.indigo.day svg .fill-color-30{fill:#fff}.rtl-container.indigo.day svg .fill-color-31{fill:#3f51b5}.rtl-container.indigo.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.indigo.day svg .fill-color-primary{fill:#3f51b5}.rtl-container.indigo.day svg .fill-color-primary-lighter{fill:#9fa8da}.rtl-container.indigo.day svg .fill-color-primary-darker{fill:#3f51b5}.rtl-container.indigo.day .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.indigo.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.indigo.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.indigo.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.indigo.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.indigo.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.indigo.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#3f51b5}.rtl-container.indigo.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.indigo.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#1a237e}.rtl-container.indigo.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.indigo.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#9fa8da}.rtl-container.indigo.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.indigo.day .mat-progress-bar-buffer{background-color:#c5cae9}.rtl-container.indigo.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.indigo.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.indigo.day .foreground.mat-progress-spinner circle,.rtl-container.indigo.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.indigo.day .mat-toolbar-row,.rtl-container.indigo.day .mat-toolbar-single-row{height:5rem}.rtl-container.indigo.day .lnd-info{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.indigo.day a{color:#3f51b5}.rtl-container.indigo.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.indigo.day .h-active-link{border-bottom:2px solid white}.rtl-container.indigo.day .mat-icon-36{color:#0000008a}.rtl-container.indigo.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.indigo.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.indigo.day .genseed-message{width:10%;color:#3f51b5}.rtl-container.indigo.day .material-icons.primary{color:#3f51b5}.rtl-container.indigo.day .material-icons.accent{color:#424242}.rtl-container.indigo.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.indigo.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.indigo.day .row-disabled{background-color:gray}.rtl-container.indigo.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.indigo.day .mat-menu-panel{min-width:6.4rem}.rtl-container.indigo.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.indigo.day .horizontal-button:hover{background:#9fa8da;color:#424242}.rtl-container.indigo.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#3f51b5}.rtl-container.indigo.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.indigo.day .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.indigo.day .mat-button,.rtl-container.indigo.day .mat-icon-button,.rtl-container.indigo.day .mat-stroked-button,.rtl-container.indigo.day .mat-flat-button{border-radius:2px}.rtl-container.indigo.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.indigo.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.indigo.day .mat-cell,.rtl-container.indigo.day .mat-header-cell,.rtl-container.indigo.day .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#0000001f}.rtl-container.indigo.day table.mat-table{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.indigo.day table.mat-table thead tr th{color:#000}.rtl-container.indigo.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.indigo.day .bordered-box{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.indigo.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.indigo.day .mat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.indigo.day .more-button{color:#00000061}.rtl-container.indigo.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.indigo.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.indigo.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.indigo.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.indigo.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.indigo.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.indigo.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.indigo.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.indigo.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.indigo.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.indigo.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.indigo.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.indigo.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.indigo.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.indigo.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.indigo.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.indigo.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.indigo.day .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#9fa8da!important}.rtl-container.indigo.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#3949ab!important}.rtl-container.indigo.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.indigo.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.indigo.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.indigo.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.indigo.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid rgba(0,0,0,.54)}.rtl-container.indigo.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.indigo.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.indigo.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.indigo.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.indigo.day .color-warn{color:#b00020}.rtl-container.indigo.day .fill-warn{fill:#b00020}.rtl-container.indigo.day .alert{border:1px solid rgba(0,0,0,.54);color:#0000008a;background-color:#0000000a}.rtl-container.indigo.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.indigo.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.indigo.day .alert.alert-info a{color:#004085}.rtl-container.indigo.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.indigo.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.indigo.day .alert.alert-warn a{color:#856404}.rtl-container.indigo.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.indigo.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.indigo.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.indigo.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.indigo.day .help-expansion .mat-expansion-panel-header,.rtl-container.indigo.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.indigo.day .help-expansion .mat-expansion-indicator:after,.rtl-container.indigo.day .help-expansion .mat-expansion-panel-content,.rtl-container.indigo.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.indigo.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.indigo.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.indigo.day .failed-status{color:#b00020}.rtl-container.indigo.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.indigo.day .svg-fill-primary{fill:#3f51b5}.rtl-container.indigo.day .svg-fill-primary-lighter{fill:#9fa8da}.rtl-container.indigo.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.indigo.day ngx-charts-bar-vertical text,.rtl-container.indigo.day ngx-charts-bar-vertical-2d text{fill:#000000de}.rtl-container.indigo.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.indigo.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.indigo.day .mat-paginator-container{padding:0}.rtl-container.indigo.day .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.indigo.day .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.indigo.day .invoice-animation-div .particles-circle{position:absolute;background-color:#3f51b5;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #3f51b5;background-color:transparent}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.indigo.day .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.indigo.day .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.indigo.day .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.indigo.day .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.indigo.day .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.indigo.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-option{color:#fff}.rtl-container.indigo.night .mat-option:hover:not(.mat-option-disabled),.rtl-container.indigo.night .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.indigo.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.indigo.night .mat-option.mat-active{background:rgba(0,0,0,.04);color:#fff}.rtl-container.indigo.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#3f51b5}.rtl-container.indigo.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.indigo.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.indigo.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.indigo.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.indigo.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.indigo.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#3f51b5}.rtl-container.indigo.night .mat-pseudo-checkbox-checked,.rtl-container.indigo.night .mat-pseudo-checkbox-indeterminate,.rtl-container.indigo.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.indigo.night .mat-accent .mat-pseudo-checkbox-indeterminate{background:#eeeeee}.rtl-container.indigo.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.indigo.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.indigo.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.indigo.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.indigo.night .mat-app-background,.rtl-container.indigo.night.mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.indigo.night .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.indigo.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.indigo.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.indigo.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.indigo.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.indigo.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.indigo.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.indigo.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.indigo.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.indigo.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.indigo.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.indigo.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.indigo.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.indigo.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.indigo.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.indigo.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.indigo.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.indigo.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.indigo.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.indigo.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.indigo.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.indigo.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.indigo.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.indigo.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.indigo.night .mat-badge{position:relative}.rtl-container.indigo.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.indigo.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.indigo.night .ng-animate-disabled .mat-badge-content,.rtl-container.indigo.night .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.indigo.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.indigo.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.indigo.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.indigo.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.indigo.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.indigo.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.indigo.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.indigo.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.indigo.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.indigo.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.indigo.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.indigo.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.indigo.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.indigo.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.indigo.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.indigo.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.indigo.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.indigo.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.indigo.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.indigo.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.indigo.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.indigo.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.indigo.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.indigo.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.indigo.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.indigo.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.indigo.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.indigo.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.indigo.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.indigo.night .mat-badge-content{color:#fff;background:#3f51b5}.cdk-high-contrast-active .rtl-container.indigo.night .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.indigo.night .mat-badge-accent .mat-badge-content{background:#eeeeee;color:#000}.rtl-container.indigo.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.indigo.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.indigo.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.indigo.night .mat-button,.rtl-container.indigo.night .mat-icon-button,.rtl-container.indigo.night .mat-stroked-button{color:inherit;background:transparent}.rtl-container.indigo.night .mat-button.mat-primary,.rtl-container.indigo.night .mat-icon-button.mat-primary,.rtl-container.indigo.night .mat-stroked-button.mat-primary{color:#3f51b5}.rtl-container.indigo.night .mat-button.mat-accent,.rtl-container.indigo.night .mat-icon-button.mat-accent,.rtl-container.indigo.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.indigo.night .mat-button.mat-warn,.rtl-container.indigo.night .mat-icon-button.mat-warn,.rtl-container.indigo.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.indigo.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.indigo.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.indigo.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.indigo.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#3f51b5}.rtl-container.indigo.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.indigo.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.indigo.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.indigo.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.indigo.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.indigo.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.indigo.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.indigo.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.indigo.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.indigo.night .mat-button .mat-ripple-element,.rtl-container.indigo.night .mat-icon-button .mat-ripple-element,.rtl-container.indigo.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.indigo.night .mat-button-focus-overlay{background:white}.rtl-container.indigo.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.indigo.night .mat-flat-button,.rtl-container.indigo.night .mat-raised-button,.rtl-container.indigo.night .mat-fab,.rtl-container.indigo.night .mat-mini-fab{color:#fff;background-color:#363636}.rtl-container.indigo.night .mat-flat-button.mat-primary,.rtl-container.indigo.night .mat-raised-button.mat-primary,.rtl-container.indigo.night .mat-fab.mat-primary,.rtl-container.indigo.night .mat-mini-fab.mat-primary{color:#fff}.rtl-container.indigo.night .mat-flat-button.mat-accent,.rtl-container.indigo.night .mat-raised-button.mat-accent,.rtl-container.indigo.night .mat-fab.mat-accent,.rtl-container.indigo.night .mat-mini-fab.mat-accent{color:#000}.rtl-container.indigo.night .mat-flat-button.mat-warn,.rtl-container.indigo.night .mat-raised-button.mat-warn,.rtl-container.indigo.night .mat-fab.mat-warn,.rtl-container.indigo.night .mat-mini-fab.mat-warn{color:#fff}.rtl-container.indigo.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.indigo.night .mat-flat-button.mat-primary,.rtl-container.indigo.night .mat-raised-button.mat-primary,.rtl-container.indigo.night .mat-fab.mat-primary,.rtl-container.indigo.night .mat-mini-fab.mat-primary{background-color:#3f51b5}.rtl-container.indigo.night .mat-flat-button.mat-accent,.rtl-container.indigo.night .mat-raised-button.mat-accent,.rtl-container.indigo.night .mat-fab.mat-accent,.rtl-container.indigo.night .mat-mini-fab.mat-accent{background-color:#eee}.rtl-container.indigo.night .mat-flat-button.mat-warn,.rtl-container.indigo.night .mat-raised-button.mat-warn,.rtl-container.indigo.night .mat-fab.mat-warn,.rtl-container.indigo.night .mat-mini-fab.mat-warn{background-color:#ff343b}.rtl-container.indigo.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.indigo.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#404040}.rtl-container.indigo.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.indigo.night .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.indigo.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.indigo.night .mat-mini-fab.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.indigo.night .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.indigo.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.indigo.night .mat-mini-fab.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.indigo.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.indigo.night .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.indigo.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.indigo.night .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.indigo.night .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.indigo.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.indigo.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.indigo.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.indigo.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.indigo.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.indigo.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.night .mat-button-toggle-standalone,.rtl-container.indigo.night .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.indigo.night .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.indigo.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.indigo.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(255,255,255,.3)}.rtl-container.indigo.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.indigo.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(255,255,255,.3)}.rtl-container.indigo.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.indigo.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.indigo.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.indigo.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.indigo.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.indigo.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.indigo.night .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(255,255,255,.3)}.rtl-container.indigo.night .mat-card{background:#202020;color:#fff}.rtl-container.indigo.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.indigo.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.indigo.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.indigo.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.indigo.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.indigo.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.indigo.night .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#3f51b5}.rtl-container.indigo.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.indigo.night .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.indigo.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.indigo.night .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.indigo.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.indigo.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.indigo.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.indigo.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.indigo.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.indigo.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#3f51b5}.rtl-container.indigo.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.indigo.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eeeeee}.rtl-container.indigo.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.indigo.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.indigo.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.indigo.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.indigo.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip:after{background:white}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.indigo.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.indigo.night .mat-table{background:#202020}.rtl-container.indigo.night .mat-table thead,.rtl-container.indigo.night .mat-table tbody,.rtl-container.indigo.night .mat-table tfoot,.rtl-container.indigo.night mat-header-row,.rtl-container.indigo.night mat-row,.rtl-container.indigo.night mat-footer-row,.rtl-container.indigo.night [mat-header-row],.rtl-container.indigo.night [mat-row],.rtl-container.indigo.night [mat-footer-row],.rtl-container.indigo.night .mat-table-sticky{background:inherit}.rtl-container.indigo.night mat-row,.rtl-container.indigo.night mat-header-row,.rtl-container.indigo.night mat-footer-row,.rtl-container.indigo.night th.mat-header-cell,.rtl-container.indigo.night td.mat-cell,.rtl-container.indigo.night td.mat-footer-cell{border-bottom-color:#ffffff4d}.rtl-container.indigo.night .mat-cell,.rtl-container.indigo.night .mat-footer-cell{color:#fff}.rtl-container.indigo.night .mat-calendar-arrow{fill:#fff}.rtl-container.indigo.night .mat-datepicker-toggle,.rtl-container.indigo.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.indigo.night .mat-datepicker-content .mat-calendar-previous-button{color:#fff}.rtl-container.indigo.night .mat-calendar-table-header-divider:after{background:rgba(255,255,255,.3)}.rtl-container.indigo.night .mat-calendar-body-cell-content,.rtl-container.indigo.night .mat-date-range-input-separator{color:#fff;border-color:transparent}.rtl-container.indigo.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.indigo.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.indigo.night .mat-calendar-body-in-range:before{background:rgba(63,81,181,.2)}.rtl-container.indigo.night .mat-calendar-body-comparison-identical,.rtl-container.indigo.night .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.indigo.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.indigo.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.indigo.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.night .mat-calendar-body-selected{background-color:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#3f51b566}.rtl-container.indigo.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}@media (hover: hover){.rtl-container.indigo.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}}.rtl-container.indigo.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#202020;color:#fff}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(238,238,238,.2)}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.indigo.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}@media (hover: hover){.rtl-container.indigo.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(255,52,59,.2)}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.indigo.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.indigo.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.indigo.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.indigo.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}@media (hover: hover){.rtl-container.indigo.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}}.rtl-container.indigo.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.indigo.night .mat-datepicker-toggle-active{color:#3f51b5}.rtl-container.indigo.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.indigo.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.indigo.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.indigo.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.indigo.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.indigo.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.indigo.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.indigo.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.indigo.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.indigo.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.indigo.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.indigo.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.indigo.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.indigo.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.indigo.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.indigo.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-label{color:#3f51b5}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.indigo.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.indigo.night .mat-form-field-ripple{background-color:#fff}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#3f51b5}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.indigo.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.indigo.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#3f51b5}.rtl-container.indigo.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.indigo.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#ff343b}.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.indigo.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.indigo.night .mat-error{color:#ff343b}.rtl-container.indigo.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.indigo.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.indigo.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.indigo.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.indigo.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.indigo.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.indigo.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.indigo.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.indigo.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.indigo.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#3f51b5}.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.indigo.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.indigo.night .mat-icon.mat-primary{color:#3f51b5}.rtl-container.indigo.night .mat-icon.mat-accent{color:#eee}.rtl-container.indigo.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.indigo.night .mat-input-element{caret-color:#3f51b5}.rtl-container.indigo.night .mat-input-element:not(.mat-native-select-inline) option{color:#000000de}.rtl-container.indigo.night .mat-input-element:not(.mat-native-select-inline) option:disabled{color:#00000061}.rtl-container.indigo.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.indigo.night .mat-form-field.mat-warn .mat-input-element,.rtl-container.indigo.night .mat-form-field-invalid .mat-input-element{caret-color:#ff343b}.rtl-container.indigo.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.indigo.night .mat-list-base .mat-list-item,.rtl-container.indigo.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.indigo.night .mat-list-item-disabled{background-color:#444}.rtl-container.indigo.night .mat-list-option:hover,.rtl-container.indigo.night .mat-list-option:focus,.rtl-container.indigo.night .mat-nav-list .mat-list-item:hover,.rtl-container.indigo.night .mat-nav-list .mat-list-item:focus,.rtl-container.indigo.night .mat-action-list .mat-list-item:hover,.rtl-container.indigo.night .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.indigo.night .mat-list-single-selected-option,.rtl-container.indigo.night .mat-list-single-selected-option:hover,.rtl-container.indigo.night .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.indigo.night .mat-menu-panel{background:#202020}.rtl-container.indigo.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.night .mat-menu-item{background:transparent;color:#fff}.rtl-container.indigo.night .mat-menu-item .mat-icon-no-color,.rtl-container.indigo.night .mat-menu-submenu-icon{color:#fff}.rtl-container.indigo.night .mat-menu-item:hover:not([disabled]),.rtl-container.indigo.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.indigo.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.indigo.night .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.indigo.night .mat-paginator{background:#202020}.rtl-container.indigo.night .mat-paginator-decrement,.rtl-container.indigo.night .mat-paginator-increment{border-top:2px solid white;border-right:2px solid white}.rtl-container.indigo.night .mat-paginator-first,.rtl-container.indigo.night .mat-paginator-last{border-top:2px solid white}.rtl-container.indigo.night .mat-progress-bar-background{fill:#1a1e37}.rtl-container.indigo.night .mat-progress-bar-buffer{background-color:#1a1e37}.rtl-container.indigo.night .mat-progress-bar-fill:after{background-color:#3f51b5}.rtl-container.indigo.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.indigo.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.indigo.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.indigo.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.indigo.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.indigo.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.indigo.night .mat-progress-spinner circle,.rtl-container.indigo.night .mat-spinner circle{stroke:#3f51b5}.rtl-container.indigo.night .mat-progress-spinner.mat-accent circle,.rtl-container.indigo.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.indigo.night .mat-progress-spinner.mat-warn circle,.rtl-container.indigo.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.indigo.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#3f51b5}.rtl-container.indigo.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.indigo.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#3f51b5}.rtl-container.indigo.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.indigo.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.indigo.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.indigo.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.indigo.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.indigo.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.indigo.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.indigo.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.indigo.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.indigo.night .mat-select-value{color:#fff}.rtl-container.indigo.night .mat-select-panel{background:#202020}.rtl-container.indigo.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.indigo.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#3f51b5}.rtl-container.indigo.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.indigo.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.indigo.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.indigo.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.indigo.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.indigo.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.indigo.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.indigo.night .mat-drawer-side{border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.indigo.night .mat-drawer-side.mat-drawer-end,.rtl-container.indigo.night [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(255,255,255,.3);border-right:none}.rtl-container.indigo.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.indigo.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.indigo.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.indigo.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.indigo.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.indigo.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#3f51b5}.rtl-container.indigo.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#3f51b58a}.rtl-container.indigo.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#3f51b5}.rtl-container.indigo.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.indigo.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.indigo.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.indigo.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.indigo.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#bdbdbd}.rtl-container.indigo.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.indigo.night .mat-primary .mat-slider-track-fill,.rtl-container.indigo.night .mat-primary .mat-slider-thumb,.rtl-container.indigo.night .mat-primary .mat-slider-thumb-label{background-color:#3f51b5}.rtl-container.indigo.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.night .mat-primary .mat-slider-focus-ring{background-color:#3f51b533}.rtl-container.indigo.night .mat-accent .mat-slider-track-fill,.rtl-container.indigo.night .mat-accent .mat-slider-thumb,.rtl-container.indigo.night .mat-accent .mat-slider-thumb-label{background-color:#eee}.rtl-container.indigo.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.indigo.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.indigo.night .mat-warn .mat-slider-track-fill,.rtl-container.indigo.night .mat-warn .mat-slider-thumb,.rtl-container.indigo.night .mat-warn .mat-slider-thumb-label{background-color:#ff343b}.rtl-container.indigo.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.indigo.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.indigo.night .mat-slider:hover .mat-slider-track-background,.rtl-container.indigo.night .mat-slider.cdk-focused .mat-slider-track-background{background-color:#fff9}.rtl-container.indigo.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.indigo.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.indigo.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.indigo.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.indigo.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.indigo.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:transparent}.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#fff9}.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.indigo.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.indigo.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.indigo.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.indigo.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.indigo.night .mat-step-header.cdk-keyboard-focused,.rtl-container.indigo.night .mat-step-header.cdk-program-focused,.rtl-container.indigo.night .mat-step-header:hover:not([aria-disabled]),.rtl-container.indigo.night .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.indigo.night .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.indigo.night .mat-step-header:hover{background:none}}.rtl-container.indigo.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.indigo.night .mat-step-header .mat-step-icon-selected,.rtl-container.indigo.night .mat-step-header .mat-step-icon-state-done,.rtl-container.indigo.night .mat-step-header .mat-step-icon-state-edit{background-color:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.indigo.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.indigo.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.indigo.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.indigo.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.indigo.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.indigo.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.indigo.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.indigo.night .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#ff343b}.rtl-container.indigo.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.indigo.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.indigo.night .mat-stepper-horizontal,.rtl-container.indigo.night .mat-stepper-vertical{background-color:#202020}.rtl-container.indigo.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.indigo.night .mat-horizontal-stepper-header:before,.rtl-container.indigo.night .mat-horizontal-stepper-header:after,.rtl-container.indigo.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.indigo.night .mat-tab-nav-bar,.rtl-container.indigo.night .mat-tab-header{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.indigo.night .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.indigo.night .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(255,255,255,.3);border-bottom:none}.rtl-container.indigo.night .mat-tab-label,.rtl-container.indigo.night .mat-tab-link{color:#fff}.rtl-container.indigo.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.indigo.night .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.indigo.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9fa8da4d}.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#3f51b5}.rtl-container.indigo.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.indigo.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.indigo.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.indigo.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.indigo.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9fa8da4d}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#3f51b5}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.indigo.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#eee}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#000}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#000;opacity:.4}.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#000;opacity:.12}.rtl-container.indigo.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#ff343b}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.indigo.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.indigo.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.indigo.night .mat-toolbar.mat-primary{background:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-toolbar.mat-accent{background:#eeeeee;color:#000}.rtl-container.indigo.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.indigo.night .mat-toolbar .mat-form-field-underline,.rtl-container.indigo.night .mat-toolbar .mat-form-field-ripple,.rtl-container.indigo.night .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.indigo.night .mat-toolbar .mat-form-field-label,.rtl-container.indigo.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.indigo.night .mat-toolbar .mat-select-value,.rtl-container.indigo.night .mat-toolbar .mat-select-arrow,.rtl-container.indigo.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.indigo.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.indigo.night .mat-tree{background:#202020}.rtl-container.indigo.night .mat-tree-node,.rtl-container.indigo.night .mat-nested-tree-node{color:#fff}.rtl-container.indigo.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.indigo.night .mat-simple-snackbar-action{color:inherit}.rtl-container.indigo.night .mat-primary{color:#536dfe}.rtl-container.indigo.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.indigo.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.indigo.night .bg-primary{background-color:#3f51b5;color:#fff}.rtl-container.indigo.night .mat-tab-label.mat-tab-label-active{color:#536dfe}.rtl-container.indigo.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#536dfe}.rtl-container.indigo.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.indigo.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.indigo.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.indigo.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.indigo.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.indigo.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#536dfe}.rtl-container.indigo.night .cc-data-block .cc-data-title{color:#536dfe}.rtl-container.indigo.night .mat-stroked-button.mat-primary{border-color:#536dfe;color:#536dfe}.rtl-container.indigo.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.indigo.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.indigo.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.indigo.night .active-link,.rtl-container.indigo.night .active-link .fa-icon-small,.rtl-container.indigo.night .mat-select-panel .mat-option.mat-active,.rtl-container.indigo.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#536dfe;font-weight:500;cursor:pointer;fill:#536dfe}.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.indigo.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#536dfe}.rtl-container.indigo.night .mat-tree-node:hover,.rtl-container.indigo.night .mat-nested-tree-node-parent:hover,.rtl-container.indigo.night .mat-select-panel .mat-option:hover,.rtl-container.indigo.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled){color:#536dfe;cursor:pointer;background:rgba(255,255,255,.06)}.rtl-container.indigo.night .mat-tree-node:hover .ng-fa-icon,.rtl-container.indigo.night .mat-tree-node:hover .mat-icon,.rtl-container.indigo.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.indigo.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.indigo.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.indigo.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.indigo.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.indigo.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon{color:#536dfe}.rtl-container.indigo.night .mat-tree-node:hover .sidenav-img svg,.rtl-container.indigo.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.indigo.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.indigo.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.indigo.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg{fill:#536dfe}.rtl-container.indigo.night .mat-tree-node .sidenav-img,.rtl-container.indigo.night .mat-nested-tree-node .sidenav-img,.rtl-container.indigo.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.indigo.night .page-title-container .page-title-img,.rtl-container.indigo.night svg.top-icon-small{fill:#fff}.rtl-container.indigo.night .selected-color{border-color:#9fa8da}.rtl-container.indigo.night .mat-progress-bar-fill:after{background-color:#3949ab}.rtl-container.indigo.night .chart-legend .legend-label:hover,.rtl-container.indigo.night .chart-legend .legend-label .active .legend-label-text{color:#fff!important}.rtl-container.indigo.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.indigo.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#536dfe}.rtl-container.indigo.night .mat-select-panel{background-color:#262626}.rtl-container.indigo.night .mat-tree{background:#262626}.rtl-container.indigo.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.indigo.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.indigo.night .dashboard-info-title{color:#536dfe}.rtl-container.indigo.night .dashboard-info-value,.rtl-container.indigo.night .dashboard-capacity-header{color:#fff}.rtl-container.indigo.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.indigo.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.indigo.night .color-primary{color:#536dfe!important}.rtl-container.indigo.night .dot-primary{background-color:#536dfe!important}.rtl-container.indigo.night .dot-primary-lighter{background-color:#3f51b5!important}.rtl-container.indigo.night .mat-stepper-vertical{background-color:#262626}.rtl-container.indigo.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.indigo.night svg .boltz-icon-fill{fill:#fff}.rtl-container.indigo.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.indigo.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.indigo.night svg .fill-color-0{fill:#171717}.rtl-container.indigo.night svg .fill-color-1{fill:#232323}.rtl-container.indigo.night svg .fill-color-2{fill:#222}.rtl-container.indigo.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.indigo.night svg .fill-color-4{fill:#383838}.rtl-container.indigo.night svg .fill-color-5{fill:#555}.rtl-container.indigo.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.indigo.night svg .fill-color-7{fill:#202020}.rtl-container.indigo.night svg .fill-color-8{fill:#242424}.rtl-container.indigo.night svg .fill-color-9{fill:#262626}.rtl-container.indigo.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.indigo.night svg .fill-color-11{fill:#171717}.rtl-container.indigo.night svg .fill-color-12{fill:#ccc}.rtl-container.indigo.night svg .fill-color-13{fill:#adadad}.rtl-container.indigo.night svg .fill-color-14{fill:#ababab}.rtl-container.indigo.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.indigo.night svg .fill-color-16{fill:#707070}.rtl-container.indigo.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.indigo.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.indigo.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.indigo.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.indigo.night svg .fill-color-21{fill:#cacaca}.rtl-container.indigo.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.indigo.night svg .fill-color-23{fill:#777}.rtl-container.indigo.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.indigo.night svg .fill-color-25{fill:#252525}.rtl-container.indigo.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.indigo.night svg .fill-color-27{fill:#000}.rtl-container.indigo.night svg .fill-color-28{fill:#313131}.rtl-container.indigo.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.indigo.night svg .fill-color-30{fill:#fff}.rtl-container.indigo.night svg .fill-color-31{fill:#3f51b5}.rtl-container.indigo.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.indigo.night svg .fill-color-primary{fill:#3f51b5}.rtl-container.indigo.night svg .fill-color-primary-lighter{fill:#9fa8da}.rtl-container.indigo.night svg .fill-color-primary-darker{fill:#536dfe}.rtl-container.indigo.night .mat-select-value,.rtl-container.indigo.night .mat-select-arrow{color:#fff}.rtl-container.indigo.night .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.indigo.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.indigo.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.indigo.night .mat-slide-toggle-bar,.rtl-container.indigo.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.indigo.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.indigo.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.indigo.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.indigo.night .mat-button.mat-primary,.rtl-container.indigo.night .mat-icon-button.mat-primary,.rtl-container.indigo.night .mat-stroked-button.mat-primary{color:#536dfe}.rtl-container.indigo.night tr.alert.alert-warn .mat-cell,.rtl-container.indigo.night tr.alert.alert-warn .mat-header-cell,.rtl-container.indigo.night tr.alert.alert-warn .mat-footer-cell{color:#856404}.rtl-container.indigo.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.indigo.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#536dfe}.rtl-container.indigo.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.indigo.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#283593}.rtl-container.indigo.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.indigo.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#536dfe}.rtl-container.indigo.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.indigo.night .mat-progress-bar-buffer{background-color:#c5cae9}.rtl-container.indigo.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.indigo.night .foreground-secondary-text{color:!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.indigo.night .foreground.mat-progress-spinner circle,.rtl-container.indigo.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.indigo.night .mat-toolbar-row,.rtl-container.indigo.night .mat-toolbar-single-row{height:5rem}.rtl-container.indigo.night .lnd-info{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.indigo.night a{color:#3f51b5}.rtl-container.indigo.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.indigo.night .h-active-link{border-bottom:2px solid white}.rtl-container.indigo.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.indigo.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.indigo.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.indigo.night .genseed-message{width:10%;color:#3f51b5}.rtl-container.indigo.night .material-icons.primary{color:#3f51b5}.rtl-container.indigo.night .material-icons.accent{color:#eee}.rtl-container.indigo.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.indigo.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.indigo.night .row-disabled{background-color:gray}.rtl-container.indigo.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.indigo.night .mat-menu-panel{min-width:6.4rem}.rtl-container.indigo.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.indigo.night .horizontal-button:hover{background:#9fa8da;color:#eee}.rtl-container.indigo.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#3f51b5}.rtl-container.indigo.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.indigo.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.indigo.night .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.indigo.night .mat-button,.rtl-container.indigo.night .mat-icon-button,.rtl-container.indigo.night .mat-stroked-button,.rtl-container.indigo.night .mat-flat-button{border-radius:2px}.rtl-container.indigo.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.indigo.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.indigo.night .mat-cell,.rtl-container.indigo.night .mat-header-cell,.rtl-container.indigo.night .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ffffff4d}.rtl-container.indigo.night table.mat-table{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.indigo.night table.mat-table thead tr th{color:#fff}.rtl-container.indigo.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.indigo.night .bordered-box{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.indigo.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.indigo.night .mat-expansion-panel{border:1px solid rgba(255,255,255,.3)}.rtl-container.indigo.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.indigo.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.indigo.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.indigo.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.indigo.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.indigo.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.indigo.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.indigo.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.indigo.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.indigo.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.indigo.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.indigo.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.indigo.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.indigo.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.indigo.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.indigo.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.indigo.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.indigo.night .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#9fa8da!important}.rtl-container.indigo.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#3949ab!important}.rtl-container.indigo.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.indigo.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.indigo.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.indigo.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.indigo.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.indigo.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.indigo.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.indigo.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.indigo.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.indigo.night .color-warn{color:#ff343b}.rtl-container.indigo.night .fill-warn{fill:#ff343b}.rtl-container.indigo.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.indigo.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.indigo.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.indigo.night .alert.alert-info a{color:#004085}.rtl-container.indigo.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.indigo.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.indigo.night .alert.alert-warn a{color:#856404}.rtl-container.indigo.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.indigo.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.indigo.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.indigo.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.indigo.night .help-expansion .mat-expansion-panel-header,.rtl-container.indigo.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.indigo.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.indigo.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.indigo.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.indigo.night .failed-status{color:#ff343b}.rtl-container.indigo.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.indigo.night .svg-fill-primary{fill:#3f51b5}.rtl-container.indigo.night .svg-fill-primary-lighter{fill:#9fa8da}.rtl-container.indigo.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.indigo.night ngx-charts-bar-vertical text,.rtl-container.indigo.night ngx-charts-bar-vertical-2d text{fill:#fff}.rtl-container.indigo.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.indigo.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.indigo.night .mat-paginator-container{padding:0}.rtl-container.indigo.night .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.indigo.night .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.indigo.night .invoice-animation-div .particles-circle{position:absolute;background-color:#3f51b5;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #3f51b5;background-color:transparent}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.indigo.night .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.indigo.night .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.indigo.night .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.indigo.night .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.indigo.night .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.green.small.small .mat-header-cell{font-weight:700}.rtl-container.green.small.small .mr-4{margin-right:1rem!important}.rtl-container.green.small.small .mat-menu-item,.rtl-container.green.small.small .mat-tree .mat-tree-node,.rtl-container.green.small.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.green.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.green.small.small .genseed-message,.rtl-container.green.small.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.green.small.small .fa-icon-small,.rtl-container.green.small.small .top-icon-small{font-size:1.44rem}.rtl-container.green.small.small .page-title-container,.rtl-container.green.small.small .page-sub-title-container{font-size:1.32rem}.rtl-container.green.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.green.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.green.small.small .top-toolbar-icon .top-toolbar-img,.rtl-container.green.small.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.green.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.green.small.small .material-icons,.rtl-container.green.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.green.small.small .mat-expansion-panel-header,.rtl-container.green.small.small .mat-menu-item,.rtl-container.green.small.small .mat-list .mat-list-item,.rtl-container.green.small.small .mat-nav-list .mat-list-item,.rtl-container.green.small.small .mat-option,.rtl-container.green.small.small .mat-select,.rtl-container.green.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.green.small.small .logo{font-size:2.4rem}.rtl-container.green.small.small .font-60-percent{font-size:.72rem}.rtl-container.green.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.green.small.small .icon-large{font-size:6rem}.rtl-container.green.small.small .icon-small{font-size:1.8rem!important}.rtl-container.green.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.green.small.small .size-triple{font-size:3.6rem}.rtl-container.green.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.green.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.small.medium .mat-header-cell{font-weight:700}.rtl-container.green.small.medium .mat-tree .mat-tree-node,.rtl-container.green.small.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.green.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.green.small.medium .genseed-message,.rtl-container.green.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.green.small.medium .page-title-container,.rtl-container.green.small.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.green.small.medium .fa-icon-small,.rtl-container.green.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.green.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.green.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.green.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.green.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.green.small.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.green.small.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.green.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.green.small.medium .material-icons{font-size:2.8rem}.rtl-container.green.small.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.green.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.green.small.medium .mat-expansion-panel-header,.rtl-container.green.small.medium .mat-menu-item,.rtl-container.green.small.medium .mat-list .mat-list-item,.rtl-container.green.small.medium .mat-nav-list .mat-list-item,.rtl-container.green.small.medium .mat-option,.rtl-container.green.small.medium .mat-select,.rtl-container.green.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.green.small.medium .logo{font-size:2.8rem}.rtl-container.green.small.medium .font-60-percent{font-size:.84rem}.rtl-container.green.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.green.small.medium .icon-large{font-size:7rem}.rtl-container.green.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.green.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.green.small.medium .size-triple{font-size:4.2rem}.rtl-container.green.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.green.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.small.large .mat-header-cell{font-weight:800}.rtl-container.green.small.large .mat-tree .mat-tree-node,.rtl-container.green.small.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.green.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.green.small.large .genseed-message,.rtl-container.green.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.green.small.large .page-title-container,.rtl-container.green.small.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.green.small.large .fa-icon-small,.rtl-container.green.small.large .top-icon-small,.rtl-container.green.small.large .modal-info-header{font-size:1.92rem}.rtl-container.green.small.large .top-toolbar-icon.icon-pinned,.rtl-container.green.small.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.green.small.large .top-toolbar-icon .top-toolbar-img,.rtl-container.green.small.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.green.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.green.small.large .material-icons{font-size:4rem}.rtl-container.green.small.large .mat-expansion-panel-header,.rtl-container.green.small.large .mat-menu-item,.rtl-container.green.small.large .mat-list .mat-list-item,.rtl-container.green.small.large .mat-nav-list .mat-list-item,.rtl-container.green.small.large .mat-option,.rtl-container.green.small.large .mat-select,.rtl-container.green.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.green.small.large .logo{font-size:3.2rem}.rtl-container.green.small.large .font-60-percent{font-size:.96rem}.rtl-container.green.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.green.small.large .icon-large{font-size:8rem}.rtl-container.green.small.large .icon-small{font-size:2.4rem!important}.rtl-container.green.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.green.small.large .size-triple{font-size:4.8rem}.rtl-container.green.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.green.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.small .mat-icon.material-icons:focus{outline:none}.rtl-container.green.small .mat-flat-button.mat-primary:focus,.rtl-container.green.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.green.medium.small .mat-header-cell{font-weight:700}.rtl-container.green.medium.small .mr-4{margin-right:1rem!important}.rtl-container.green.medium.small .mat-menu-item,.rtl-container.green.medium.small .mat-tree .mat-tree-node,.rtl-container.green.medium.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.green.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.green.medium.small .genseed-message,.rtl-container.green.medium.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.green.medium.small .fa-icon-small,.rtl-container.green.medium.small .top-icon-small{font-size:1.44rem}.rtl-container.green.medium.small .page-title-container,.rtl-container.green.medium.small .page-sub-title-container{font-size:1.32rem}.rtl-container.green.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.green.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.green.medium.small .top-toolbar-icon .top-toolbar-img,.rtl-container.green.medium.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.green.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.green.medium.small .material-icons,.rtl-container.green.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.green.medium.small .mat-expansion-panel-header,.rtl-container.green.medium.small .mat-menu-item,.rtl-container.green.medium.small .mat-list .mat-list-item,.rtl-container.green.medium.small .mat-nav-list .mat-list-item,.rtl-container.green.medium.small .mat-option,.rtl-container.green.medium.small .mat-select,.rtl-container.green.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.green.medium.small .logo{font-size:2.4rem}.rtl-container.green.medium.small .font-60-percent{font-size:.72rem}.rtl-container.green.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.green.medium.small .icon-large{font-size:6rem}.rtl-container.green.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.green.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.green.medium.small .size-triple{font-size:3.6rem}.rtl-container.green.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.green.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.medium.medium .mat-header-cell{font-weight:700}.rtl-container.green.medium.medium .mat-tree .mat-tree-node,.rtl-container.green.medium.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.green.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.green.medium.medium .genseed-message,.rtl-container.green.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.green.medium.medium .page-title-container,.rtl-container.green.medium.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.green.medium.medium .fa-icon-small,.rtl-container.green.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.green.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.green.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.green.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.green.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.green.medium.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.green.medium.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.green.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.green.medium.medium .material-icons{font-size:2.8rem}.rtl-container.green.medium.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.green.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.green.medium.medium .mat-expansion-panel-header,.rtl-container.green.medium.medium .mat-menu-item,.rtl-container.green.medium.medium .mat-list .mat-list-item,.rtl-container.green.medium.medium .mat-nav-list .mat-list-item,.rtl-container.green.medium.medium .mat-option,.rtl-container.green.medium.medium .mat-select,.rtl-container.green.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.green.medium.medium .logo{font-size:2.8rem}.rtl-container.green.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.green.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.green.medium.medium .icon-large{font-size:7rem}.rtl-container.green.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.green.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.green.medium.medium .size-triple{font-size:4.2rem}.rtl-container.green.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.green.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.medium.large .mat-header-cell{font-weight:800}.rtl-container.green.medium.large .mat-tree .mat-tree-node,.rtl-container.green.medium.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.green.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.green.medium.large .genseed-message,.rtl-container.green.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.green.medium.large .page-title-container,.rtl-container.green.medium.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.green.medium.large .fa-icon-small,.rtl-container.green.medium.large .top-icon-small,.rtl-container.green.medium.large .modal-info-header{font-size:1.92rem}.rtl-container.green.medium.large .top-toolbar-icon.icon-pinned,.rtl-container.green.medium.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.green.medium.large .top-toolbar-icon .top-toolbar-img,.rtl-container.green.medium.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.green.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.green.medium.large .material-icons{font-size:4rem}.rtl-container.green.medium.large .mat-expansion-panel-header,.rtl-container.green.medium.large .mat-menu-item,.rtl-container.green.medium.large .mat-list .mat-list-item,.rtl-container.green.medium.large .mat-nav-list .mat-list-item,.rtl-container.green.medium.large .mat-option,.rtl-container.green.medium.large .mat-select,.rtl-container.green.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.green.medium.large .logo{font-size:3.2rem}.rtl-container.green.medium.large .font-60-percent{font-size:.96rem}.rtl-container.green.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.green.medium.large .icon-large{font-size:8rem}.rtl-container.green.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.green.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.green.medium.large .size-triple{font-size:4.8rem}.rtl-container.green.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.green.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.green.medium .mat-flat-button.mat-primary:focus,.rtl-container.green.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.green.large.small .mat-header-cell{font-weight:700}.rtl-container.green.large.small .mr-4{margin-right:1rem!important}.rtl-container.green.large.small .mat-menu-item,.rtl-container.green.large.small .mat-tree .mat-tree-node,.rtl-container.green.large.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.green.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.green.large.small .genseed-message,.rtl-container.green.large.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.green.large.small .fa-icon-small,.rtl-container.green.large.small .top-icon-small{font-size:1.44rem}.rtl-container.green.large.small .page-title-container,.rtl-container.green.large.small .page-sub-title-container{font-size:1.32rem}.rtl-container.green.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.green.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.green.large.small .top-toolbar-icon .top-toolbar-img,.rtl-container.green.large.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.green.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.green.large.small .material-icons,.rtl-container.green.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.green.large.small .mat-expansion-panel-header,.rtl-container.green.large.small .mat-menu-item,.rtl-container.green.large.small .mat-list .mat-list-item,.rtl-container.green.large.small .mat-nav-list .mat-list-item,.rtl-container.green.large.small .mat-option,.rtl-container.green.large.small .mat-select,.rtl-container.green.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.green.large.small .logo{font-size:2.4rem}.rtl-container.green.large.small .font-60-percent{font-size:.72rem}.rtl-container.green.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.green.large.small .icon-large{font-size:6rem}.rtl-container.green.large.small .icon-small{font-size:1.8rem!important}.rtl-container.green.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.green.large.small .size-triple{font-size:3.6rem}.rtl-container.green.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.green.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.large.medium .mat-header-cell{font-weight:700}.rtl-container.green.large.medium .mat-tree .mat-tree-node,.rtl-container.green.large.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.green.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.green.large.medium .genseed-message,.rtl-container.green.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.green.large.medium .page-title-container,.rtl-container.green.large.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.green.large.medium .fa-icon-small,.rtl-container.green.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.green.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.green.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.green.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.green.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.green.large.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.green.large.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.green.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.green.large.medium .material-icons{font-size:2.8rem}.rtl-container.green.large.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.green.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.green.large.medium .mat-expansion-panel-header,.rtl-container.green.large.medium .mat-menu-item,.rtl-container.green.large.medium .mat-list .mat-list-item,.rtl-container.green.large.medium .mat-nav-list .mat-list-item,.rtl-container.green.large.medium .mat-option,.rtl-container.green.large.medium .mat-select,.rtl-container.green.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.green.large.medium .logo{font-size:2.8rem}.rtl-container.green.large.medium .font-60-percent{font-size:.84rem}.rtl-container.green.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.green.large.medium .icon-large{font-size:7rem}.rtl-container.green.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.green.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.green.large.medium .size-triple{font-size:4.2rem}.rtl-container.green.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.green.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.large.large .mat-header-cell{font-weight:800}.rtl-container.green.large.large .mat-tree .mat-tree-node,.rtl-container.green.large.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.green.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.green.large.large .genseed-message,.rtl-container.green.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.green.large.large .page-title-container,.rtl-container.green.large.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.green.large.large .fa-icon-small,.rtl-container.green.large.large .top-icon-small,.rtl-container.green.large.large .modal-info-header{font-size:1.92rem}.rtl-container.green.large.large .top-toolbar-icon.icon-pinned,.rtl-container.green.large.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.green.large.large .top-toolbar-icon .top-toolbar-img,.rtl-container.green.large.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.green.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.green.large.large .material-icons{font-size:4rem}.rtl-container.green.large.large .mat-expansion-panel-header,.rtl-container.green.large.large .mat-menu-item,.rtl-container.green.large.large .mat-list .mat-list-item,.rtl-container.green.large.large .mat-nav-list .mat-list-item,.rtl-container.green.large.large .mat-option,.rtl-container.green.large.large .mat-select,.rtl-container.green.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.green.large.large .logo{font-size:3.2rem}.rtl-container.green.large.large .font-60-percent{font-size:.96rem}.rtl-container.green.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.green.large.large .icon-large{font-size:8rem}.rtl-container.green.large.large .icon-small{font-size:2.4rem!important}.rtl-container.green.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.green.large.large .size-triple{font-size:4.8rem}.rtl-container.green.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.green.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.green.large .mat-icon.material-icons:focus{outline:none}.rtl-container.green.large .mat-flat-button.mat-primary:focus,.rtl-container.green.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.green.day .mat-ripple-element{background-color:#0000001a}.rtl-container.green.day .mat-option{color:#000000de}.rtl-container.green.day .mat-option:hover:not(.mat-option-disabled),.rtl-container.green.day .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.green.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.green.day .mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.rtl-container.green.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.green.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#185127}.rtl-container.green.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.green.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.green.day .mat-optgroup-label{color:#0000008a}.rtl-container.green.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.green.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.green.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.green.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.green.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.green.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#185127}.rtl-container.green.day .mat-pseudo-checkbox-checked,.rtl-container.green.day .mat-pseudo-checkbox-indeterminate,.rtl-container.green.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.green.day .mat-accent .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.green.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.green.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.green.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.green.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.green.day .mat-app-background,.rtl-container.green.day.mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.green.day .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.green.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.green.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.green.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.green.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.green.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.green.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.green.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.green.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.green.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.green.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.green.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.green.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.green.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.green.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.green.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.green.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.green.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.green.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.green.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.green.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.green.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.green.day .mat-autocomplete-panel{background:white;color:#000000de}.rtl-container.green.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:white}.rtl-container.green.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.green.day .mat-badge{position:relative}.rtl-container.green.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.green.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.green.day .ng-animate-disabled .mat-badge-content,.rtl-container.green.day .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.green.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.green.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.green.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.green.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.green.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.green.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.green.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.green.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.green.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.green.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.green.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.green.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.green.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.green.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.green.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.green.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.green.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.green.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.green.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.green.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.green.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.green.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.green.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.green.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.green.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.green.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.green.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.green.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.green.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.green.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.green.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.green.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.green.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.green.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.green.day .mat-badge-content{color:#fff;background:#185127}.cdk-high-contrast-active .rtl-container.green.day .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.green.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.green.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.green.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.green.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:white;color:#000000de}.rtl-container.green.day .mat-button,.rtl-container.green.day .mat-icon-button,.rtl-container.green.day .mat-stroked-button{color:inherit;background:transparent}.rtl-container.green.day .mat-button.mat-primary,.rtl-container.green.day .mat-icon-button.mat-primary,.rtl-container.green.day .mat-stroked-button.mat-primary{color:#185127}.rtl-container.green.day .mat-button.mat-accent,.rtl-container.green.day .mat-icon-button.mat-accent,.rtl-container.green.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.green.day .mat-button.mat-warn,.rtl-container.green.day .mat-icon-button.mat-warn,.rtl-container.green.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.green.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.green.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.green.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.green.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#185127}.rtl-container.green.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.green.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.green.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.green.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.green.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.green.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.green.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.green.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.green.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.green.day .mat-button .mat-ripple-element,.rtl-container.green.day .mat-icon-button .mat-ripple-element,.rtl-container.green.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.green.day .mat-button-focus-overlay{background:black}.rtl-container.green.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.green.day .mat-flat-button,.rtl-container.green.day .mat-raised-button,.rtl-container.green.day .mat-fab,.rtl-container.green.day .mat-mini-fab{color:#000000de;background-color:#fff}.rtl-container.green.day .mat-flat-button.mat-primary,.rtl-container.green.day .mat-raised-button.mat-primary,.rtl-container.green.day .mat-fab.mat-primary,.rtl-container.green.day .mat-mini-fab.mat-primary,.rtl-container.green.day .mat-flat-button.mat-accent,.rtl-container.green.day .mat-raised-button.mat-accent,.rtl-container.green.day .mat-fab.mat-accent,.rtl-container.green.day .mat-mini-fab.mat-accent,.rtl-container.green.day .mat-flat-button.mat-warn,.rtl-container.green.day .mat-raised-button.mat-warn,.rtl-container.green.day .mat-fab.mat-warn,.rtl-container.green.day .mat-mini-fab.mat-warn{color:#fff}.rtl-container.green.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.green.day .mat-flat-button.mat-primary,.rtl-container.green.day .mat-raised-button.mat-primary,.rtl-container.green.day .mat-fab.mat-primary,.rtl-container.green.day .mat-mini-fab.mat-primary{background-color:#185127}.rtl-container.green.day .mat-flat-button.mat-accent,.rtl-container.green.day .mat-raised-button.mat-accent,.rtl-container.green.day .mat-fab.mat-accent,.rtl-container.green.day .mat-mini-fab.mat-accent{background-color:#424242}.rtl-container.green.day .mat-flat-button.mat-warn,.rtl-container.green.day .mat-raised-button.mat-warn,.rtl-container.green.day .mat-fab.mat-warn,.rtl-container.green.day .mat-mini-fab.mat-warn{background-color:#b00020}.rtl-container.green.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.green.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.rtl-container.green.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.green.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.green.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.green.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.green.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.green.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.green.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.green.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.green.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.green.day .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.green.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.green.day .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.day .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.green.day .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.green.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.green.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.green.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.green.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.green.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.green.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.day .mat-button-toggle-standalone,.rtl-container.green.day .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.green.day .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.green.day .mat-button-toggle{color:#00000061}.rtl-container.green.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.green.day .mat-button-toggle-appearance-standard{color:#000000de;background:white}.rtl-container.green.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.green.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,.12)}.rtl-container.green.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.green.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,.12)}.rtl-container.green.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.green.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.green.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.green.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:white}.rtl-container.green.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.green.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.green.day .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(0,0,0,.12)}.rtl-container.green.day .mat-card{background:white;color:#000000de}.rtl-container.green.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.green.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.day .mat-card-subtitle{color:#0000008a}.rtl-container.green.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.green.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.green.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.green.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.green.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.green.day .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#185127}.rtl-container.green.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.green.day .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.green.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.green.day .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.green.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.green.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.green.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.green.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.green.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.green.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.green.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#185127}.rtl-container.green.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.green.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.green.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.green.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.green.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.green.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.green.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip:after{background:black}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#185127;color:#fff}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.day .mat-table{background:white}.rtl-container.green.day .mat-table thead,.rtl-container.green.day .mat-table tbody,.rtl-container.green.day .mat-table tfoot,.rtl-container.green.day mat-header-row,.rtl-container.green.day mat-row,.rtl-container.green.day mat-footer-row,.rtl-container.green.day [mat-header-row],.rtl-container.green.day [mat-row],.rtl-container.green.day [mat-footer-row],.rtl-container.green.day .mat-table-sticky{background:inherit}.rtl-container.green.day mat-row,.rtl-container.green.day mat-header-row,.rtl-container.green.day mat-footer-row,.rtl-container.green.day th.mat-header-cell,.rtl-container.green.day td.mat-cell,.rtl-container.green.day td.mat-footer-cell{border-bottom-color:#0000001f}.rtl-container.green.day .mat-header-cell{color:#0000008a}.rtl-container.green.day .mat-cell,.rtl-container.green.day .mat-footer-cell{color:#000000de}.rtl-container.green.day .mat-calendar-arrow{fill:#0000008a}.rtl-container.green.day .mat-datepicker-toggle,.rtl-container.green.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.green.day .mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.rtl-container.green.day .mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.rtl-container.green.day .mat-calendar-table-header,.rtl-container.green.day .mat-calendar-body-label{color:#0000008a}.rtl-container.green.day .mat-calendar-body-cell-content,.rtl-container.green.day .mat-date-range-input-separator{color:#000000de;border-color:transparent}.rtl-container.green.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.rtl-container.green.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.green.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.green.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.green.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.green.day .mat-calendar-body-in-range:before{background:rgba(24,81,39,.2)}.rtl-container.green.day .mat-calendar-body-comparison-identical,.rtl-container.green.day .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.green.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(24,81,39,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(24,81,39,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.green.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.green.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.day .mat-calendar-body-selected{background-color:#185127;color:#fff}.rtl-container.green.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#18512766}.rtl-container.green.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1851274d}@media (hover: hover){.rtl-container.green.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1851274d}}.rtl-container.green.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(66,66,66,.2)}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}@media (hover: hover){.rtl-container.green.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(176,0,32,.2)}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}@media (hover: hover){.rtl-container.green.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}}.rtl-container.green.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.green.day .mat-datepicker-toggle-active{color:#185127}.rtl-container.green.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.green.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.green.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.green.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:white;color:#000000de}.rtl-container.green.day .mat-divider{border-top-color:#0000001f}.rtl-container.green.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.green.day .mat-expansion-panel{background:white;color:#000000de}.rtl-container.green.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.day .mat-action-row{border-top-color:#0000001f}.rtl-container.green.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.green.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.green.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.green.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:white}}.rtl-container.green.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.green.day .mat-expansion-panel-header-description,.rtl-container.green.day .mat-expansion-indicator:after{color:#0000008a}.rtl-container.green.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.green.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.green.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.green.day .mat-form-field-label,.rtl-container.green.day .mat-hint{color:#0009}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-label{color:#185127}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.green.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.green.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#185127}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.green.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#185127}.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#b00020}.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.green.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.green.day .mat-error{color:#b00020}.rtl-container.green.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.green.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.green.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.green.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.green.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.green.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.green.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.green.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.green.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.green.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.green.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.green.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.green.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.green.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#185127}.rtl-container.green.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.green.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.green.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.green.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.green.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.green.day .mat-icon.mat-primary{color:#185127}.rtl-container.green.day .mat-icon.mat-accent{color:#424242}.rtl-container.green.day .mat-icon.mat-warn{color:#b00020}.rtl-container.green.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.green.day .mat-input-element:disabled,.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.rtl-container.green.day .mat-input-element{caret-color:#185127}.rtl-container.green.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.green.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.green.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.green.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.green.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.green.day .mat-form-field.mat-warn .mat-input-element,.rtl-container.green.day .mat-form-field-invalid .mat-input-element{caret-color:#b00020}.rtl-container.green.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.green.day .mat-list-base .mat-list-item,.rtl-container.green.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.green.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.green.day .mat-list-item-disabled{background-color:#eee}.rtl-container.green.day .mat-list-option:hover,.rtl-container.green.day .mat-list-option:focus,.rtl-container.green.day .mat-nav-list .mat-list-item:hover,.rtl-container.green.day .mat-nav-list .mat-list-item:focus,.rtl-container.green.day .mat-action-list .mat-list-item:hover,.rtl-container.green.day .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.green.day .mat-list-single-selected-option,.rtl-container.green.day .mat-list-single-selected-option:hover,.rtl-container.green.day .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.green.day .mat-menu-panel{background:white}.rtl-container.green.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.day .mat-menu-item{background:transparent;color:#000000de}.rtl-container.green.day .mat-menu-item[disabled],.rtl-container.green.day .mat-menu-item[disabled] .mat-menu-submenu-icon,.rtl-container.green.day .mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.rtl-container.green.day .mat-menu-item .mat-icon-no-color,.rtl-container.green.day .mat-menu-submenu-icon{color:#0000008a}.rtl-container.green.day .mat-menu-item:hover:not([disabled]),.rtl-container.green.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.green.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.green.day .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.green.day .mat-paginator{background:white}.rtl-container.green.day .mat-paginator,.rtl-container.green.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.green.day .mat-paginator-decrement,.rtl-container.green.day .mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.rtl-container.green.day .mat-paginator-first,.rtl-container.green.day .mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.rtl-container.green.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.green.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.green.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.green.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.green.day .mat-progress-bar-background{fill:#c2d0c5}.rtl-container.green.day .mat-progress-bar-buffer{background-color:#c2d0c5}.rtl-container.green.day .mat-progress-bar-fill:after{background-color:#185127}.rtl-container.green.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.green.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.green.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.green.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.green.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.green.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.green.day .mat-progress-spinner circle,.rtl-container.green.day .mat-spinner circle{stroke:#185127}.rtl-container.green.day .mat-progress-spinner.mat-accent circle,.rtl-container.green.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.green.day .mat-progress-spinner.mat-warn circle,.rtl-container.green.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.green.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.green.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#185127}.rtl-container.green.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.green.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#185127}.rtl-container.green.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.green.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.green.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.green.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.green.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.green.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.green.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.green.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.green.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.rtl-container.green.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.rtl-container.green.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.green.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.green.day .mat-select-value{color:#000000de}.rtl-container.green.day .mat-select-placeholder{color:#0000006b}.rtl-container.green.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.green.day .mat-select-arrow{color:#0000008a}.rtl-container.green.day .mat-select-panel{background:white}.rtl-container.green.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.green.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#185127}.rtl-container.green.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.green.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.green.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.green.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.green.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.green.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.green.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.green.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.green.day .mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.green.day .mat-drawer-side.mat-drawer-end,.rtl-container.green.day [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}.rtl-container.green.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.green.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.green.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.green.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.green.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.green.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#185127}.rtl-container.green.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#1851278a}.rtl-container.green.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#185127}.rtl-container.green.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.green.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.green.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.green.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.green.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.rtl-container.green.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.green.day .mat-slider-track-background{background-color:#00000042}.rtl-container.green.day .mat-primary .mat-slider-track-fill,.rtl-container.green.day .mat-primary .mat-slider-thumb,.rtl-container.green.day .mat-primary .mat-slider-thumb-label{background-color:#185127}.rtl-container.green.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.day .mat-primary .mat-slider-focus-ring{background-color:#18512733}.rtl-container.green.day .mat-accent .mat-slider-track-fill,.rtl-container.green.day .mat-accent .mat-slider-thumb,.rtl-container.green.day .mat-accent .mat-slider-thumb-label{background-color:#424242}.rtl-container.green.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.green.day .mat-warn .mat-slider-track-fill,.rtl-container.green.day .mat-warn .mat-slider-thumb,.rtl-container.green.day .mat-warn .mat-slider-thumb-label{background-color:#b00020}.rtl-container.green.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.green.day .mat-slider:hover .mat-slider-track-background,.rtl-container.green.day .mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.rtl-container.green.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.green.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.green.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.green.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.green.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.green.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.green.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.green.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.green.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.green.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.green.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.green.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.green.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.green.day .mat-step-header.cdk-keyboard-focused,.rtl-container.green.day .mat-step-header.cdk-program-focused,.rtl-container.green.day .mat-step-header:hover:not([aria-disabled]),.rtl-container.green.day .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.green.day .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.green.day .mat-step-header:hover{background:none}}.rtl-container.green.day .mat-step-header .mat-step-label,.rtl-container.green.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.green.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.green.day .mat-step-header .mat-step-icon-selected,.rtl-container.green.day .mat-step-header .mat-step-icon-state-done,.rtl-container.green.day .mat-step-header .mat-step-icon-state-edit{background-color:#185127;color:#fff}.rtl-container.green.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.green.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.green.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.green.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.green.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.green.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.green.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.green.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.green.day .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#b00020}.rtl-container.green.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.green.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.green.day .mat-stepper-horizontal,.rtl-container.green.day .mat-stepper-vertical{background-color:#fff}.rtl-container.green.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.green.day .mat-horizontal-stepper-header:before,.rtl-container.green.day .mat-horizontal-stepper-header:after,.rtl-container.green.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.green.day .mat-sort-header-arrow{color:#757575}.rtl-container.green.day .mat-tab-nav-bar,.rtl-container.green.day .mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.green.day .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.green.day .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.rtl-container.green.day .mat-tab-label,.rtl-container.green.day .mat-tab-link{color:#000000de}.rtl-container.green.day .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.green.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.green.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.green.day .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.green.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.green.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#5d85684d}.rtl-container.green.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#185127}.rtl-container.green.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.green.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.green.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.green.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.green.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.green.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#5d85684d}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#185127}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.green.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#424242}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.green.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#b00020}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.green.day .mat-toolbar{background:whitesmoke;color:#000000de}.rtl-container.green.day .mat-toolbar.mat-primary{background:#185127;color:#fff}.rtl-container.green.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.green.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.green.day .mat-toolbar .mat-form-field-underline,.rtl-container.green.day .mat-toolbar .mat-form-field-ripple,.rtl-container.green.day .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.green.day .mat-toolbar .mat-form-field-label,.rtl-container.green.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.green.day .mat-toolbar .mat-select-value,.rtl-container.green.day .mat-toolbar .mat-select-arrow,.rtl-container.green.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.green.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.green.day .mat-tooltip{background:rgba(97,97,97,.9)}.rtl-container.green.day .mat-tree{background:white}.rtl-container.green.day .mat-tree-node,.rtl-container.green.day .mat-nested-tree-node{color:#000000de}.rtl-container.green.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.green.day .mat-simple-snackbar-action{color:#424242}.rtl-container.green.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.green.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.green.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.green.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.green.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.green.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.green.day .rtl-top-toolbar{border-bottom:1px solid white}.rtl-container.green.day .bg-primary{background-color:#185127;color:#fff}.rtl-container.green.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#185127}.rtl-container.green.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.green.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.green.day .mat-tab-label.mat-tab-label-active{color:#185127}.rtl-container.green.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#185127}.rtl-container.green.day .mat-tab-label .tab-badge .mat-badge-content{background:rgba(0,0,0,.54)}.rtl-container.green.day .ng-fa-icon,.rtl-container.green.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.green.day .mat-form-field-suffix{color:#0000008a}.rtl-container.green.day .mat-stroked-button.mat-primary{border-color:#185127}.rtl-container.green.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.green.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.green.day .selected-color{border-color:#5d8568}.rtl-container.green.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.green.day .page-title-container,.rtl-container.green.day .page-sub-title-container{color:#0000008a}.rtl-container.green.day .page-title-container .page-title-img,.rtl-container.green.day .page-sub-title-container .page-title-img{color:#00000061}.rtl-container.green.day .page-title-container .mat-input-element,.rtl-container.green.day .page-title-container .mat-radio-label-content,.rtl-container.green.day .page-title-container .theme-name,.rtl-container.green.day .page-sub-title-container .mat-input-element,.rtl-container.green.day .page-sub-title-container .mat-radio-label-content,.rtl-container.green.day .page-sub-title-container .theme-name{color:#000000de}.rtl-container.green.day .cc-data-block .cc-data-title{color:#185127}.rtl-container.green.day .active-link,.rtl-container.green.day .active-link .fa-icon-small{color:#185127;font-weight:500;cursor:pointer;fill:#185127}.rtl-container.green.day .mat-tree-node:hover,.rtl-container.green.day .mat-nested-tree-node-parent:hover,.rtl-container.green.day .mat-select-panel .mat-option:hover,.rtl-container.green.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover{color:#185127;cursor:pointer;background:rgba(0,0,0,.04)}.rtl-container.green.day .mat-tree-node:hover .ng-fa-icon,.rtl-container.green.day .mat-tree-node:hover .mat-icon,.rtl-container.green.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.green.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.green.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.green.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.green.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.green.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon{color:#185127}.rtl-container.green.day .mat-tree-node:hover .sidenav-img svg,.rtl-container.green.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.green.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.green.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg{fill:#185127}.rtl-container.green.day .mat-tree-node .sidenav-img,.rtl-container.green.day .mat-nested-tree-node .sidenav-img,.rtl-container.green.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.green.day .page-title-container .page-title-img,.rtl-container.green.day svg.top-icon-small{fill:#000000de}.rtl-container.green.day .mat-progress-bar-fill:after{background-color:#08270e}.rtl-container.green.day .modal-qr-code-container{background:rgba(0,0,0,.12)}.rtl-container.green.day .mat-tab-label,.rtl-container.green.day .mat-tab-link{color:#0000008a}.rtl-container.green.day .mat-card,.rtl-container.green.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid rgba(0,0,0,.12)}.rtl-container.green.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.green.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.green.day .dashboard-info-title{color:#185127}.rtl-container.green.day .dashboard-info-value{color:#0000008a}.rtl-container.green.day .color-primary{color:#185127!important}.rtl-container.green.day .dot-primary{background-color:#185127!important}.rtl-container.green.day .dot-primary-lighter{background-color:#5d8568!important}.rtl-container.green.day .mat-expansion-panel.flat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.green.day .mat-tooltip{font-size:120%}.rtl-container.green.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.green.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.green.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.green.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.green.day svg .fill-color-1{fill:#fff}.rtl-container.green.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.green.day svg .fill-color-3{fill:#f2f2f2}.rtl-container.green.day svg .fill-color-4{fill:#f2f2f2}.rtl-container.green.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.green.day svg .fill-color-6{fill:#fff}.rtl-container.green.day svg .fill-color-7{fill:#cbcbcb}.rtl-container.green.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.green.day svg .fill-color-9{fill:#fff}.rtl-container.green.day svg .fill-color-10{fill:#e6e6e6}.rtl-container.green.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.green.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.green.day svg .fill-color-13{fill:#4a4a4a}.rtl-container.green.day svg .fill-color-14{fill:#4a4a4a}.rtl-container.green.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.green.day svg .fill-color-16{fill:#404040}.rtl-container.green.day svg .fill-color-17{fill:#404040}.rtl-container.green.day svg .fill-color-18{fill:#000}.rtl-container.green.day svg .fill-color-19{fill:#4a4a4a}.rtl-container.green.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.green.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.green.day svg .fill-color-22{fill:#cbcbcb}.rtl-container.green.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.green.day svg .fill-color-24{fill:#000}.rtl-container.green.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.green.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.green.day svg .fill-color-27{fill:#000}.rtl-container.green.day svg .fill-color-28{fill:#313131}.rtl-container.green.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.green.day svg .fill-color-30{fill:#fff}.rtl-container.green.day svg .fill-color-31{fill:#185127}.rtl-container.green.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.green.day svg .fill-color-primary{fill:#185127}.rtl-container.green.day svg .fill-color-primary-lighter{fill:#5d8568}.rtl-container.green.day svg .fill-color-primary-darker{fill:#185127}.rtl-container.green.day .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.green.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.green.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.green.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.green.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.green.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.green.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#185127}.rtl-container.green.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.green.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#08270e}.rtl-container.green.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.green.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#8ca893}.rtl-container.green.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.green.day .mat-progress-bar-buffer{background-color:#bacbbe}.rtl-container.green.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.green.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.green.day .foreground.mat-progress-spinner circle,.rtl-container.green.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.green.day .mat-toolbar-row,.rtl-container.green.day .mat-toolbar-single-row{height:5rem}.rtl-container.green.day .lnd-info{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.green.day a{color:#185127}.rtl-container.green.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.green.day .h-active-link{border-bottom:2px solid white}.rtl-container.green.day .mat-icon-36{color:#0000008a}.rtl-container.green.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.green.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.green.day .genseed-message{width:10%;color:#185127}.rtl-container.green.day .material-icons.primary{color:#185127}.rtl-container.green.day .material-icons.accent{color:#424242}.rtl-container.green.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.green.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.green.day .row-disabled{background-color:gray}.rtl-container.green.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.green.day .mat-menu-panel{min-width:6.4rem}.rtl-container.green.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.green.day .horizontal-button:hover{background:#5d8568;color:#424242}.rtl-container.green.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#185127}.rtl-container.green.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.green.day .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.green.day .mat-button,.rtl-container.green.day .mat-icon-button,.rtl-container.green.day .mat-stroked-button,.rtl-container.green.day .mat-flat-button{border-radius:2px}.rtl-container.green.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.green.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.green.day .mat-cell,.rtl-container.green.day .mat-header-cell,.rtl-container.green.day .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#0000001f}.rtl-container.green.day table.mat-table{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.green.day table.mat-table thead tr th{color:#000}.rtl-container.green.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.green.day .bordered-box{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.green.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.green.day .mat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.green.day .more-button{color:#00000061}.rtl-container.green.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.green.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.green.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.green.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.green.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.green.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.green.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.green.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.green.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.green.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.green.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.green.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.green.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.green.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.green.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.green.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.green.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.green.day .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#8ca893!important}.rtl-container.green.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#154a23!important}.rtl-container.green.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.green.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.green.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.green.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.green.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid rgba(0,0,0,.54)}.rtl-container.green.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.green.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.green.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.green.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.green.day .color-warn{color:#b00020}.rtl-container.green.day .fill-warn{fill:#b00020}.rtl-container.green.day .alert{border:1px solid rgba(0,0,0,.54);color:#0000008a;background-color:#0000000a}.rtl-container.green.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.green.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.green.day .alert.alert-info a{color:#004085}.rtl-container.green.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.green.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.green.day .alert.alert-warn a{color:#856404}.rtl-container.green.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.green.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.green.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.green.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.green.day .help-expansion .mat-expansion-panel-header,.rtl-container.green.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.green.day .help-expansion .mat-expansion-indicator:after,.rtl-container.green.day .help-expansion .mat-expansion-panel-content,.rtl-container.green.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.green.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.green.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.green.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.green.day .failed-status{color:#b00020}.rtl-container.green.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.green.day .svg-fill-primary{fill:#185127}.rtl-container.green.day .svg-fill-primary-lighter{fill:#5d8568}.rtl-container.green.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.green.day ngx-charts-bar-vertical text,.rtl-container.green.day ngx-charts-bar-vertical-2d text{fill:#000000de}.rtl-container.green.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.green.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.green.day .mat-paginator-container{padding:0}.rtl-container.green.day .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.green.day .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.green.day .invoice-animation-div .particles-circle{position:absolute;background-color:#185127;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #185127;background-color:transparent}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.green.day .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.green.day .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.green.day .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.green.day .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.green.day .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.green.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-option{color:#fff}.rtl-container.green.night .mat-option:hover:not(.mat-option-disabled),.rtl-container.green.night .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.green.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.green.night .mat-option.mat-active{background:rgba(0,0,0,.04);color:#fff}.rtl-container.green.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#185127}.rtl-container.green.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.green.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.green.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.green.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.green.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.green.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#185127}.rtl-container.green.night .mat-pseudo-checkbox-checked,.rtl-container.green.night .mat-pseudo-checkbox-indeterminate,.rtl-container.green.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.green.night .mat-accent .mat-pseudo-checkbox-indeterminate{background:#eeeeee}.rtl-container.green.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.green.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.green.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.green.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.green.night .mat-app-background,.rtl-container.green.night.mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.green.night .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.green.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.green.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.green.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.green.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.green.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.green.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.green.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.green.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.green.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.green.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.green.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.green.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.green.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.green.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.green.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.green.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.green.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.green.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.green.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.green.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.green.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.green.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.green.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.green.night .mat-badge{position:relative}.rtl-container.green.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.green.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.green.night .ng-animate-disabled .mat-badge-content,.rtl-container.green.night .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.green.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.green.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.green.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.green.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.green.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.green.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.green.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.green.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.green.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.green.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.green.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.green.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.green.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.green.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.green.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.green.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.green.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.green.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.green.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.green.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.green.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.green.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.green.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.green.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.green.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.green.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.green.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.green.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.green.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.green.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.green.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.green.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.green.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.green.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.green.night .mat-badge-content{color:#fff;background:#185127}.cdk-high-contrast-active .rtl-container.green.night .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.green.night .mat-badge-accent .mat-badge-content{background:#eeeeee;color:#000}.rtl-container.green.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.green.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.green.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.green.night .mat-button,.rtl-container.green.night .mat-icon-button,.rtl-container.green.night .mat-stroked-button{color:inherit;background:transparent}.rtl-container.green.night .mat-button.mat-primary,.rtl-container.green.night .mat-icon-button.mat-primary,.rtl-container.green.night .mat-stroked-button.mat-primary{color:#185127}.rtl-container.green.night .mat-button.mat-accent,.rtl-container.green.night .mat-icon-button.mat-accent,.rtl-container.green.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.green.night .mat-button.mat-warn,.rtl-container.green.night .mat-icon-button.mat-warn,.rtl-container.green.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.green.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.green.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.green.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.green.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#185127}.rtl-container.green.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.green.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.green.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.green.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.green.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.green.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.green.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.green.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.green.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.green.night .mat-button .mat-ripple-element,.rtl-container.green.night .mat-icon-button .mat-ripple-element,.rtl-container.green.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.green.night .mat-button-focus-overlay{background:white}.rtl-container.green.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.green.night .mat-flat-button,.rtl-container.green.night .mat-raised-button,.rtl-container.green.night .mat-fab,.rtl-container.green.night .mat-mini-fab{color:#fff;background-color:#363636}.rtl-container.green.night .mat-flat-button.mat-primary,.rtl-container.green.night .mat-raised-button.mat-primary,.rtl-container.green.night .mat-fab.mat-primary,.rtl-container.green.night .mat-mini-fab.mat-primary{color:#fff}.rtl-container.green.night .mat-flat-button.mat-accent,.rtl-container.green.night .mat-raised-button.mat-accent,.rtl-container.green.night .mat-fab.mat-accent,.rtl-container.green.night .mat-mini-fab.mat-accent{color:#000}.rtl-container.green.night .mat-flat-button.mat-warn,.rtl-container.green.night .mat-raised-button.mat-warn,.rtl-container.green.night .mat-fab.mat-warn,.rtl-container.green.night .mat-mini-fab.mat-warn{color:#fff}.rtl-container.green.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.green.night .mat-flat-button.mat-primary,.rtl-container.green.night .mat-raised-button.mat-primary,.rtl-container.green.night .mat-fab.mat-primary,.rtl-container.green.night .mat-mini-fab.mat-primary{background-color:#185127}.rtl-container.green.night .mat-flat-button.mat-accent,.rtl-container.green.night .mat-raised-button.mat-accent,.rtl-container.green.night .mat-fab.mat-accent,.rtl-container.green.night .mat-mini-fab.mat-accent{background-color:#eee}.rtl-container.green.night .mat-flat-button.mat-warn,.rtl-container.green.night .mat-raised-button.mat-warn,.rtl-container.green.night .mat-fab.mat-warn,.rtl-container.green.night .mat-mini-fab.mat-warn{background-color:#ff343b}.rtl-container.green.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.green.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#404040}.rtl-container.green.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.green.night .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.green.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.green.night .mat-mini-fab.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.green.night .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.green.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.green.night .mat-mini-fab.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.green.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.green.night .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.green.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.green.night .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.green.night .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.green.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.green.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.green.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.green.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.green.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.green.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.night .mat-button-toggle-standalone,.rtl-container.green.night .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.green.night .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.green.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.green.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(255,255,255,.3)}.rtl-container.green.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.green.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(255,255,255,.3)}.rtl-container.green.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.green.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.green.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.green.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.green.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.green.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.green.night .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(255,255,255,.3)}.rtl-container.green.night .mat-card{background:#202020;color:#fff}.rtl-container.green.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.green.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.green.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.green.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.green.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.green.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.green.night .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#185127}.rtl-container.green.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.green.night .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.green.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.green.night .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.green.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.green.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.green.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.green.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.green.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.green.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#185127}.rtl-container.green.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.green.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eeeeee}.rtl-container.green.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.green.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.green.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.green.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.green.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip:after{background:white}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#185127;color:#fff}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.green.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.green.night .mat-table{background:#202020}.rtl-container.green.night .mat-table thead,.rtl-container.green.night .mat-table tbody,.rtl-container.green.night .mat-table tfoot,.rtl-container.green.night mat-header-row,.rtl-container.green.night mat-row,.rtl-container.green.night mat-footer-row,.rtl-container.green.night [mat-header-row],.rtl-container.green.night [mat-row],.rtl-container.green.night [mat-footer-row],.rtl-container.green.night .mat-table-sticky{background:inherit}.rtl-container.green.night mat-row,.rtl-container.green.night mat-header-row,.rtl-container.green.night mat-footer-row,.rtl-container.green.night th.mat-header-cell,.rtl-container.green.night td.mat-cell,.rtl-container.green.night td.mat-footer-cell{border-bottom-color:#ffffff4d}.rtl-container.green.night .mat-cell,.rtl-container.green.night .mat-footer-cell{color:#fff}.rtl-container.green.night .mat-calendar-arrow{fill:#fff}.rtl-container.green.night .mat-datepicker-toggle,.rtl-container.green.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.green.night .mat-datepicker-content .mat-calendar-previous-button{color:#fff}.rtl-container.green.night .mat-calendar-table-header-divider:after{background:rgba(255,255,255,.3)}.rtl-container.green.night .mat-calendar-body-cell-content,.rtl-container.green.night .mat-date-range-input-separator{color:#fff;border-color:transparent}.rtl-container.green.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.green.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.green.night .mat-calendar-body-in-range:before{background:rgba(24,81,39,.2)}.rtl-container.green.night .mat-calendar-body-comparison-identical,.rtl-container.green.night .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.green.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(24,81,39,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(24,81,39,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.green.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.green.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.night .mat-calendar-body-selected{background-color:#185127;color:#fff}.rtl-container.green.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#18512766}.rtl-container.green.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1851274d}@media (hover: hover){.rtl-container.green.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#1851274d}}.rtl-container.green.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#202020;color:#fff}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(238,238,238,.2)}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.green.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}@media (hover: hover){.rtl-container.green.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(255,52,59,.2)}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.green.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.green.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.green.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.green.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}@media (hover: hover){.rtl-container.green.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}}.rtl-container.green.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.green.night .mat-datepicker-toggle-active{color:#185127}.rtl-container.green.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.green.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.green.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.green.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.green.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.green.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.green.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.green.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.green.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.green.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.green.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.green.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.green.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.green.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.green.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.green.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-label{color:#185127}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.green.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.green.night .mat-form-field-ripple{background-color:#fff}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#185127}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.green.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.green.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#185127}.rtl-container.green.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.green.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#ff343b}.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.green.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.green.night .mat-error{color:#ff343b}.rtl-container.green.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.green.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.green.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.green.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.green.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.green.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.green.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.green.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.green.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.green.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.green.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#185127}.rtl-container.green.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.green.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.green.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.green.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.green.night .mat-icon.mat-primary{color:#185127}.rtl-container.green.night .mat-icon.mat-accent{color:#eee}.rtl-container.green.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.green.night .mat-input-element{caret-color:#185127}.rtl-container.green.night .mat-input-element:not(.mat-native-select-inline) option{color:#000000de}.rtl-container.green.night .mat-input-element:not(.mat-native-select-inline) option:disabled{color:#00000061}.rtl-container.green.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.green.night .mat-form-field.mat-warn .mat-input-element,.rtl-container.green.night .mat-form-field-invalid .mat-input-element{caret-color:#ff343b}.rtl-container.green.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.green.night .mat-list-base .mat-list-item,.rtl-container.green.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.green.night .mat-list-item-disabled{background-color:#444}.rtl-container.green.night .mat-list-option:hover,.rtl-container.green.night .mat-list-option:focus,.rtl-container.green.night .mat-nav-list .mat-list-item:hover,.rtl-container.green.night .mat-nav-list .mat-list-item:focus,.rtl-container.green.night .mat-action-list .mat-list-item:hover,.rtl-container.green.night .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.green.night .mat-list-single-selected-option,.rtl-container.green.night .mat-list-single-selected-option:hover,.rtl-container.green.night .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.green.night .mat-menu-panel{background:#202020}.rtl-container.green.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.night .mat-menu-item{background:transparent;color:#fff}.rtl-container.green.night .mat-menu-item .mat-icon-no-color,.rtl-container.green.night .mat-menu-submenu-icon{color:#fff}.rtl-container.green.night .mat-menu-item:hover:not([disabled]),.rtl-container.green.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.green.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.green.night .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.green.night .mat-paginator{background:#202020}.rtl-container.green.night .mat-paginator-decrement,.rtl-container.green.night .mat-paginator-increment{border-top:2px solid white;border-right:2px solid white}.rtl-container.green.night .mat-paginator-first,.rtl-container.green.night .mat-paginator-last{border-top:2px solid white}.rtl-container.green.night .mat-progress-bar-background{fill:#101e14}.rtl-container.green.night .mat-progress-bar-buffer{background-color:#101e14}.rtl-container.green.night .mat-progress-bar-fill:after{background-color:#185127}.rtl-container.green.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.green.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.green.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.green.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.green.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.green.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.green.night .mat-progress-spinner circle,.rtl-container.green.night .mat-spinner circle{stroke:#185127}.rtl-container.green.night .mat-progress-spinner.mat-accent circle,.rtl-container.green.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.green.night .mat-progress-spinner.mat-warn circle,.rtl-container.green.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.green.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#185127}.rtl-container.green.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.green.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#185127}.rtl-container.green.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.green.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.green.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.green.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.green.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.green.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.green.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.green.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.green.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.green.night .mat-select-value{color:#fff}.rtl-container.green.night .mat-select-panel{background:#202020}.rtl-container.green.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.green.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#185127}.rtl-container.green.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.green.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.green.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.green.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.green.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.green.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.green.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.green.night .mat-drawer-side{border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.green.night .mat-drawer-side.mat-drawer-end,.rtl-container.green.night [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(255,255,255,.3);border-right:none}.rtl-container.green.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.green.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.green.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.green.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.green.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.green.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#185127}.rtl-container.green.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#1851278a}.rtl-container.green.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#185127}.rtl-container.green.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.green.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.green.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.green.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.green.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#bdbdbd}.rtl-container.green.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.green.night .mat-primary .mat-slider-track-fill,.rtl-container.green.night .mat-primary .mat-slider-thumb,.rtl-container.green.night .mat-primary .mat-slider-thumb-label{background-color:#185127}.rtl-container.green.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.night .mat-primary .mat-slider-focus-ring{background-color:#18512733}.rtl-container.green.night .mat-accent .mat-slider-track-fill,.rtl-container.green.night .mat-accent .mat-slider-thumb,.rtl-container.green.night .mat-accent .mat-slider-thumb-label{background-color:#eee}.rtl-container.green.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.green.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.green.night .mat-warn .mat-slider-track-fill,.rtl-container.green.night .mat-warn .mat-slider-thumb,.rtl-container.green.night .mat-warn .mat-slider-thumb-label{background-color:#ff343b}.rtl-container.green.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.green.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.green.night .mat-slider:hover .mat-slider-track-background,.rtl-container.green.night .mat-slider.cdk-focused .mat-slider-track-background{background-color:#fff9}.rtl-container.green.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.green.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.green.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.green.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.green.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.green.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.green.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.green.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.green.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:transparent}.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#fff9}.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.green.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.green.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.green.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.green.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.green.night .mat-step-header.cdk-keyboard-focused,.rtl-container.green.night .mat-step-header.cdk-program-focused,.rtl-container.green.night .mat-step-header:hover:not([aria-disabled]),.rtl-container.green.night .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.green.night .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.green.night .mat-step-header:hover{background:none}}.rtl-container.green.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.green.night .mat-step-header .mat-step-icon-selected,.rtl-container.green.night .mat-step-header .mat-step-icon-state-done,.rtl-container.green.night .mat-step-header .mat-step-icon-state-edit{background-color:#185127;color:#fff}.rtl-container.green.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.green.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.green.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.green.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.green.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.green.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.green.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.green.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.green.night .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#ff343b}.rtl-container.green.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.green.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.green.night .mat-stepper-horizontal,.rtl-container.green.night .mat-stepper-vertical{background-color:#202020}.rtl-container.green.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.green.night .mat-horizontal-stepper-header:before,.rtl-container.green.night .mat-horizontal-stepper-header:after,.rtl-container.green.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.green.night .mat-tab-nav-bar,.rtl-container.green.night .mat-tab-header{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.green.night .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.green.night .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(255,255,255,.3);border-bottom:none}.rtl-container.green.night .mat-tab-label,.rtl-container.green.night .mat-tab-link{color:#fff}.rtl-container.green.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.green.night .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.green.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.green.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#5d85684d}.rtl-container.green.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#185127}.rtl-container.green.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.green.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.green.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.green.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.green.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.green.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#5d85684d}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#185127}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.green.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#eee}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#000}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#000;opacity:.4}.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#000;opacity:.12}.rtl-container.green.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#ff343b}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.green.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.green.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.green.night .mat-toolbar.mat-primary{background:#185127;color:#fff}.rtl-container.green.night .mat-toolbar.mat-accent{background:#eeeeee;color:#000}.rtl-container.green.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.green.night .mat-toolbar .mat-form-field-underline,.rtl-container.green.night .mat-toolbar .mat-form-field-ripple,.rtl-container.green.night .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.green.night .mat-toolbar .mat-form-field-label,.rtl-container.green.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.green.night .mat-toolbar .mat-select-value,.rtl-container.green.night .mat-toolbar .mat-select-arrow,.rtl-container.green.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.green.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.green.night .mat-tree{background:#202020}.rtl-container.green.night .mat-tree-node,.rtl-container.green.night .mat-nested-tree-node{color:#fff}.rtl-container.green.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.green.night .mat-simple-snackbar-action{color:inherit}.rtl-container.green.night .mat-primary{color:#30ff4b}.rtl-container.green.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.green.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.green.night .bg-primary{background-color:#185127;color:#fff}.rtl-container.green.night .mat-tab-label.mat-tab-label-active{color:#30ff4b}.rtl-container.green.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#30ff4b}.rtl-container.green.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.green.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.green.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.green.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.green.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.green.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#30ff4b}.rtl-container.green.night .cc-data-block .cc-data-title{color:#30ff4b}.rtl-container.green.night .mat-stroked-button.mat-primary{border-color:#30ff4b;color:#30ff4b}.rtl-container.green.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.green.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.green.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.green.night .active-link,.rtl-container.green.night .active-link .fa-icon-small,.rtl-container.green.night .mat-select-panel .mat-option.mat-active,.rtl-container.green.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#30ff4b;font-weight:500;cursor:pointer;fill:#30ff4b}.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.green.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#30ff4b}.rtl-container.green.night .mat-tree-node:hover,.rtl-container.green.night .mat-nested-tree-node-parent:hover,.rtl-container.green.night .mat-select-panel .mat-option:hover,.rtl-container.green.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.green.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.green.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled){color:#30ff4b;cursor:pointer;background:rgba(255,255,255,.06)}.rtl-container.green.night .mat-tree-node:hover .ng-fa-icon,.rtl-container.green.night .mat-tree-node:hover .mat-icon,.rtl-container.green.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.green.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.green.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.green.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.green.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.green.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.green.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon{color:#30ff4b}.rtl-container.green.night .mat-tree-node:hover .sidenav-img svg,.rtl-container.green.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.green.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.green.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.green.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.green.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.green.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg{fill:#30ff4b}.rtl-container.green.night .mat-tree-node .sidenav-img,.rtl-container.green.night .mat-nested-tree-node .sidenav-img,.rtl-container.green.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.green.night .page-title-container .page-title-img,.rtl-container.green.night svg.top-icon-small{fill:#fff}.rtl-container.green.night .selected-color{border-color:#5d8568}.rtl-container.green.night .mat-progress-bar-fill:after{background-color:#154a23}.rtl-container.green.night .chart-legend .legend-label:hover,.rtl-container.green.night .chart-legend .legend-label .active .legend-label-text{color:#fff!important}.rtl-container.green.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.green.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#30ff4b}.rtl-container.green.night .mat-select-panel{background-color:#262626}.rtl-container.green.night .mat-tree{background:#262626}.rtl-container.green.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.green.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.green.night .dashboard-info-title{color:#30ff4b}.rtl-container.green.night .dashboard-info-value,.rtl-container.green.night .dashboard-capacity-header{color:#fff}.rtl-container.green.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.green.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.green.night .color-primary{color:#30ff4b!important}.rtl-container.green.night .dot-primary{background-color:#30ff4b!important}.rtl-container.green.night .dot-primary-lighter{background-color:#185127!important}.rtl-container.green.night .mat-stepper-vertical{background-color:#262626}.rtl-container.green.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.green.night svg .boltz-icon-fill{fill:#fff}.rtl-container.green.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.green.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.green.night svg .fill-color-0{fill:#171717}.rtl-container.green.night svg .fill-color-1{fill:#232323}.rtl-container.green.night svg .fill-color-2{fill:#222}.rtl-container.green.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.green.night svg .fill-color-4{fill:#383838}.rtl-container.green.night svg .fill-color-5{fill:#555}.rtl-container.green.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.green.night svg .fill-color-7{fill:#202020}.rtl-container.green.night svg .fill-color-8{fill:#242424}.rtl-container.green.night svg .fill-color-9{fill:#262626}.rtl-container.green.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.green.night svg .fill-color-11{fill:#171717}.rtl-container.green.night svg .fill-color-12{fill:#ccc}.rtl-container.green.night svg .fill-color-13{fill:#adadad}.rtl-container.green.night svg .fill-color-14{fill:#ababab}.rtl-container.green.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.green.night svg .fill-color-16{fill:#707070}.rtl-container.green.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.green.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.green.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.green.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.green.night svg .fill-color-21{fill:#cacaca}.rtl-container.green.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.green.night svg .fill-color-23{fill:#777}.rtl-container.green.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.green.night svg .fill-color-25{fill:#252525}.rtl-container.green.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.green.night svg .fill-color-27{fill:#000}.rtl-container.green.night svg .fill-color-28{fill:#313131}.rtl-container.green.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.green.night svg .fill-color-30{fill:#fff}.rtl-container.green.night svg .fill-color-31{fill:#185127}.rtl-container.green.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.green.night svg .fill-color-primary{fill:#185127}.rtl-container.green.night svg .fill-color-primary-lighter{fill:#5d8568}.rtl-container.green.night svg .fill-color-primary-darker{fill:#30ff4b}.rtl-container.green.night .mat-select-value,.rtl-container.green.night .mat-select-arrow{color:#fff}.rtl-container.green.night .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.green.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.green.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.green.night .mat-slide-toggle-bar,.rtl-container.green.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.green.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.green.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.green.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.green.night .mat-button.mat-primary,.rtl-container.green.night .mat-icon-button.mat-primary,.rtl-container.green.night .mat-stroked-button.mat-primary{color:#30ff4b}.rtl-container.green.night tr.alert.alert-warn .mat-cell,.rtl-container.green.night tr.alert.alert-warn .mat-header-cell,.rtl-container.green.night tr.alert.alert-warn .mat-footer-cell{color:#856404}.rtl-container.green.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.green.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#30ff4b}.rtl-container.green.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.green.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#0e3717}.rtl-container.green.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.green.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#30ff4b}.rtl-container.green.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.green.night .mat-progress-bar-buffer{background-color:#bacbbe}.rtl-container.green.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.green.night .foreground-secondary-text{color:!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.green.night .foreground.mat-progress-spinner circle,.rtl-container.green.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.green.night .mat-toolbar-row,.rtl-container.green.night .mat-toolbar-single-row{height:5rem}.rtl-container.green.night .lnd-info{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.green.night a{color:#185127}.rtl-container.green.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.green.night .h-active-link{border-bottom:2px solid white}.rtl-container.green.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.green.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.green.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.green.night .genseed-message{width:10%;color:#185127}.rtl-container.green.night .material-icons.primary{color:#185127}.rtl-container.green.night .material-icons.accent{color:#eee}.rtl-container.green.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.green.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.green.night .row-disabled{background-color:gray}.rtl-container.green.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.green.night .mat-menu-panel{min-width:6.4rem}.rtl-container.green.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.green.night .horizontal-button:hover{background:#5d8568;color:#eee}.rtl-container.green.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#185127}.rtl-container.green.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.green.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.green.night .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.green.night .mat-button,.rtl-container.green.night .mat-icon-button,.rtl-container.green.night .mat-stroked-button,.rtl-container.green.night .mat-flat-button{border-radius:2px}.rtl-container.green.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.green.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.green.night .mat-cell,.rtl-container.green.night .mat-header-cell,.rtl-container.green.night .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ffffff4d}.rtl-container.green.night table.mat-table{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.green.night table.mat-table thead tr th{color:#fff}.rtl-container.green.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.green.night .bordered-box{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.green.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.green.night .mat-expansion-panel{border:1px solid rgba(255,255,255,.3)}.rtl-container.green.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.green.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.green.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.green.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.green.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.green.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.green.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.green.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.green.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.green.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.green.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.green.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.green.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.green.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.green.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.green.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.green.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.green.night .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#8ca893!important}.rtl-container.green.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#154a23!important}.rtl-container.green.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.green.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.green.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.green.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.green.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.green.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.green.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.green.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.green.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.green.night .color-warn{color:#ff343b}.rtl-container.green.night .fill-warn{fill:#ff343b}.rtl-container.green.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.green.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.green.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.green.night .alert.alert-info a{color:#004085}.rtl-container.green.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.green.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.green.night .alert.alert-warn a{color:#856404}.rtl-container.green.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.green.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.green.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.green.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.green.night .help-expansion .mat-expansion-panel-header,.rtl-container.green.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.green.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.green.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.green.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.green.night .failed-status{color:#ff343b}.rtl-container.green.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.green.night .svg-fill-primary{fill:#185127}.rtl-container.green.night .svg-fill-primary-lighter{fill:#5d8568}.rtl-container.green.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.green.night ngx-charts-bar-vertical text,.rtl-container.green.night ngx-charts-bar-vertical-2d text{fill:#fff}.rtl-container.green.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.green.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.green.night .mat-paginator-container{padding:0}.rtl-container.green.night .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.green.night .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.green.night .invoice-animation-div .particles-circle{position:absolute;background-color:#185127;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #185127;background-color:transparent}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.green.night .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.green.night .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.green.night .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.green.night .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.green.night .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.teal.small.small .mat-header-cell{font-weight:700}.rtl-container.teal.small.small .mr-4{margin-right:1rem!important}.rtl-container.teal.small.small .mat-menu-item,.rtl-container.teal.small.small .mat-tree .mat-tree-node,.rtl-container.teal.small.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.teal.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.teal.small.small .genseed-message,.rtl-container.teal.small.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.teal.small.small .fa-icon-small,.rtl-container.teal.small.small .top-icon-small{font-size:1.44rem}.rtl-container.teal.small.small .page-title-container,.rtl-container.teal.small.small .page-sub-title-container{font-size:1.32rem}.rtl-container.teal.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.teal.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.teal.small.small .top-toolbar-icon .top-toolbar-img,.rtl-container.teal.small.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.teal.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.teal.small.small .material-icons,.rtl-container.teal.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.teal.small.small .mat-expansion-panel-header,.rtl-container.teal.small.small .mat-menu-item,.rtl-container.teal.small.small .mat-list .mat-list-item,.rtl-container.teal.small.small .mat-nav-list .mat-list-item,.rtl-container.teal.small.small .mat-option,.rtl-container.teal.small.small .mat-select,.rtl-container.teal.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.teal.small.small .logo{font-size:2.4rem}.rtl-container.teal.small.small .font-60-percent{font-size:.72rem}.rtl-container.teal.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.teal.small.small .icon-large{font-size:6rem}.rtl-container.teal.small.small .icon-small{font-size:1.8rem!important}.rtl-container.teal.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.teal.small.small .size-triple{font-size:3.6rem}.rtl-container.teal.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.teal.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.small.medium .mat-header-cell{font-weight:700}.rtl-container.teal.small.medium .mat-tree .mat-tree-node,.rtl-container.teal.small.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.teal.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.teal.small.medium .genseed-message,.rtl-container.teal.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.teal.small.medium .page-title-container,.rtl-container.teal.small.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.teal.small.medium .fa-icon-small,.rtl-container.teal.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.teal.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.teal.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.teal.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.teal.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.teal.small.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.teal.small.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.teal.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.teal.small.medium .material-icons{font-size:2.8rem}.rtl-container.teal.small.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.teal.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.teal.small.medium .mat-expansion-panel-header,.rtl-container.teal.small.medium .mat-menu-item,.rtl-container.teal.small.medium .mat-list .mat-list-item,.rtl-container.teal.small.medium .mat-nav-list .mat-list-item,.rtl-container.teal.small.medium .mat-option,.rtl-container.teal.small.medium .mat-select,.rtl-container.teal.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.teal.small.medium .logo{font-size:2.8rem}.rtl-container.teal.small.medium .font-60-percent{font-size:.84rem}.rtl-container.teal.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.teal.small.medium .icon-large{font-size:7rem}.rtl-container.teal.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.teal.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.teal.small.medium .size-triple{font-size:4.2rem}.rtl-container.teal.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.teal.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.small.large .mat-header-cell{font-weight:800}.rtl-container.teal.small.large .mat-tree .mat-tree-node,.rtl-container.teal.small.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.teal.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.teal.small.large .genseed-message,.rtl-container.teal.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.teal.small.large .page-title-container,.rtl-container.teal.small.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.teal.small.large .fa-icon-small,.rtl-container.teal.small.large .top-icon-small,.rtl-container.teal.small.large .modal-info-header{font-size:1.92rem}.rtl-container.teal.small.large .top-toolbar-icon.icon-pinned,.rtl-container.teal.small.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.teal.small.large .top-toolbar-icon .top-toolbar-img,.rtl-container.teal.small.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.teal.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.teal.small.large .material-icons{font-size:4rem}.rtl-container.teal.small.large .mat-expansion-panel-header,.rtl-container.teal.small.large .mat-menu-item,.rtl-container.teal.small.large .mat-list .mat-list-item,.rtl-container.teal.small.large .mat-nav-list .mat-list-item,.rtl-container.teal.small.large .mat-option,.rtl-container.teal.small.large .mat-select,.rtl-container.teal.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.teal.small.large .logo{font-size:3.2rem}.rtl-container.teal.small.large .font-60-percent{font-size:.96rem}.rtl-container.teal.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.teal.small.large .icon-large{font-size:8rem}.rtl-container.teal.small.large .icon-small{font-size:2.4rem!important}.rtl-container.teal.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.teal.small.large .size-triple{font-size:4.8rem}.rtl-container.teal.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.teal.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.small .mat-icon.material-icons:focus{outline:none}.rtl-container.teal.small .mat-flat-button.mat-primary:focus,.rtl-container.teal.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.teal.medium.small .mat-header-cell{font-weight:700}.rtl-container.teal.medium.small .mr-4{margin-right:1rem!important}.rtl-container.teal.medium.small .mat-menu-item,.rtl-container.teal.medium.small .mat-tree .mat-tree-node,.rtl-container.teal.medium.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.teal.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.teal.medium.small .genseed-message,.rtl-container.teal.medium.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.teal.medium.small .fa-icon-small,.rtl-container.teal.medium.small .top-icon-small{font-size:1.44rem}.rtl-container.teal.medium.small .page-title-container,.rtl-container.teal.medium.small .page-sub-title-container{font-size:1.32rem}.rtl-container.teal.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.teal.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.teal.medium.small .top-toolbar-icon .top-toolbar-img,.rtl-container.teal.medium.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.teal.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.teal.medium.small .material-icons,.rtl-container.teal.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.teal.medium.small .mat-expansion-panel-header,.rtl-container.teal.medium.small .mat-menu-item,.rtl-container.teal.medium.small .mat-list .mat-list-item,.rtl-container.teal.medium.small .mat-nav-list .mat-list-item,.rtl-container.teal.medium.small .mat-option,.rtl-container.teal.medium.small .mat-select,.rtl-container.teal.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.teal.medium.small .logo{font-size:2.4rem}.rtl-container.teal.medium.small .font-60-percent{font-size:.72rem}.rtl-container.teal.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.teal.medium.small .icon-large{font-size:6rem}.rtl-container.teal.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.teal.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.teal.medium.small .size-triple{font-size:3.6rem}.rtl-container.teal.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.teal.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.medium.medium .mat-header-cell{font-weight:700}.rtl-container.teal.medium.medium .mat-tree .mat-tree-node,.rtl-container.teal.medium.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.teal.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.teal.medium.medium .genseed-message,.rtl-container.teal.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.teal.medium.medium .page-title-container,.rtl-container.teal.medium.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.teal.medium.medium .fa-icon-small,.rtl-container.teal.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.teal.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.teal.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.teal.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.teal.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.teal.medium.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.teal.medium.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.teal.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.teal.medium.medium .material-icons{font-size:2.8rem}.rtl-container.teal.medium.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.teal.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.teal.medium.medium .mat-expansion-panel-header,.rtl-container.teal.medium.medium .mat-menu-item,.rtl-container.teal.medium.medium .mat-list .mat-list-item,.rtl-container.teal.medium.medium .mat-nav-list .mat-list-item,.rtl-container.teal.medium.medium .mat-option,.rtl-container.teal.medium.medium .mat-select,.rtl-container.teal.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.teal.medium.medium .logo{font-size:2.8rem}.rtl-container.teal.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.teal.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.teal.medium.medium .icon-large{font-size:7rem}.rtl-container.teal.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.teal.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.teal.medium.medium .size-triple{font-size:4.2rem}.rtl-container.teal.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.teal.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.medium.large .mat-header-cell{font-weight:800}.rtl-container.teal.medium.large .mat-tree .mat-tree-node,.rtl-container.teal.medium.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.teal.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.teal.medium.large .genseed-message,.rtl-container.teal.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.teal.medium.large .page-title-container,.rtl-container.teal.medium.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.teal.medium.large .fa-icon-small,.rtl-container.teal.medium.large .top-icon-small,.rtl-container.teal.medium.large .modal-info-header{font-size:1.92rem}.rtl-container.teal.medium.large .top-toolbar-icon.icon-pinned,.rtl-container.teal.medium.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.teal.medium.large .top-toolbar-icon .top-toolbar-img,.rtl-container.teal.medium.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.teal.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.teal.medium.large .material-icons{font-size:4rem}.rtl-container.teal.medium.large .mat-expansion-panel-header,.rtl-container.teal.medium.large .mat-menu-item,.rtl-container.teal.medium.large .mat-list .mat-list-item,.rtl-container.teal.medium.large .mat-nav-list .mat-list-item,.rtl-container.teal.medium.large .mat-option,.rtl-container.teal.medium.large .mat-select,.rtl-container.teal.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.teal.medium.large .logo{font-size:3.2rem}.rtl-container.teal.medium.large .font-60-percent{font-size:.96rem}.rtl-container.teal.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.teal.medium.large .icon-large{font-size:8rem}.rtl-container.teal.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.teal.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.teal.medium.large .size-triple{font-size:4.8rem}.rtl-container.teal.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.teal.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.teal.medium .mat-flat-button.mat-primary:focus,.rtl-container.teal.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.teal.large.small .mat-header-cell{font-weight:700}.rtl-container.teal.large.small .mr-4{margin-right:1rem!important}.rtl-container.teal.large.small .mat-menu-item,.rtl-container.teal.large.small .mat-tree .mat-tree-node,.rtl-container.teal.large.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.teal.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.teal.large.small .genseed-message,.rtl-container.teal.large.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.teal.large.small .fa-icon-small,.rtl-container.teal.large.small .top-icon-small{font-size:1.44rem}.rtl-container.teal.large.small .page-title-container,.rtl-container.teal.large.small .page-sub-title-container{font-size:1.32rem}.rtl-container.teal.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.teal.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.teal.large.small .top-toolbar-icon .top-toolbar-img,.rtl-container.teal.large.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.teal.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.teal.large.small .material-icons,.rtl-container.teal.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.teal.large.small .mat-expansion-panel-header,.rtl-container.teal.large.small .mat-menu-item,.rtl-container.teal.large.small .mat-list .mat-list-item,.rtl-container.teal.large.small .mat-nav-list .mat-list-item,.rtl-container.teal.large.small .mat-option,.rtl-container.teal.large.small .mat-select,.rtl-container.teal.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.teal.large.small .logo{font-size:2.4rem}.rtl-container.teal.large.small .font-60-percent{font-size:.72rem}.rtl-container.teal.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.teal.large.small .icon-large{font-size:6rem}.rtl-container.teal.large.small .icon-small{font-size:1.8rem!important}.rtl-container.teal.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.teal.large.small .size-triple{font-size:3.6rem}.rtl-container.teal.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.teal.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.large.medium .mat-header-cell{font-weight:700}.rtl-container.teal.large.medium .mat-tree .mat-tree-node,.rtl-container.teal.large.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.teal.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.teal.large.medium .genseed-message,.rtl-container.teal.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.teal.large.medium .page-title-container,.rtl-container.teal.large.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.teal.large.medium .fa-icon-small,.rtl-container.teal.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.teal.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.teal.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.teal.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.teal.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.teal.large.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.teal.large.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.teal.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.teal.large.medium .material-icons{font-size:2.8rem}.rtl-container.teal.large.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.teal.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.teal.large.medium .mat-expansion-panel-header,.rtl-container.teal.large.medium .mat-menu-item,.rtl-container.teal.large.medium .mat-list .mat-list-item,.rtl-container.teal.large.medium .mat-nav-list .mat-list-item,.rtl-container.teal.large.medium .mat-option,.rtl-container.teal.large.medium .mat-select,.rtl-container.teal.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.teal.large.medium .logo{font-size:2.8rem}.rtl-container.teal.large.medium .font-60-percent{font-size:.84rem}.rtl-container.teal.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.teal.large.medium .icon-large{font-size:7rem}.rtl-container.teal.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.teal.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.teal.large.medium .size-triple{font-size:4.2rem}.rtl-container.teal.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.teal.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.large.large .mat-header-cell{font-weight:800}.rtl-container.teal.large.large .mat-tree .mat-tree-node,.rtl-container.teal.large.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.teal.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.teal.large.large .genseed-message,.rtl-container.teal.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.teal.large.large .page-title-container,.rtl-container.teal.large.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.teal.large.large .fa-icon-small,.rtl-container.teal.large.large .top-icon-small,.rtl-container.teal.large.large .modal-info-header{font-size:1.92rem}.rtl-container.teal.large.large .top-toolbar-icon.icon-pinned,.rtl-container.teal.large.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.teal.large.large .top-toolbar-icon .top-toolbar-img,.rtl-container.teal.large.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.teal.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.teal.large.large .material-icons{font-size:4rem}.rtl-container.teal.large.large .mat-expansion-panel-header,.rtl-container.teal.large.large .mat-menu-item,.rtl-container.teal.large.large .mat-list .mat-list-item,.rtl-container.teal.large.large .mat-nav-list .mat-list-item,.rtl-container.teal.large.large .mat-option,.rtl-container.teal.large.large .mat-select,.rtl-container.teal.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.teal.large.large .logo{font-size:3.2rem}.rtl-container.teal.large.large .font-60-percent{font-size:.96rem}.rtl-container.teal.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.teal.large.large .icon-large{font-size:8rem}.rtl-container.teal.large.large .icon-small{font-size:2.4rem!important}.rtl-container.teal.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.teal.large.large .size-triple{font-size:4.8rem}.rtl-container.teal.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.teal.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.teal.large .mat-icon.material-icons:focus{outline:none}.rtl-container.teal.large .mat-flat-button.mat-primary:focus,.rtl-container.teal.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.teal.day .mat-ripple-element{background-color:#0000001a}.rtl-container.teal.day .mat-option{color:#000000de}.rtl-container.teal.day .mat-option:hover:not(.mat-option-disabled),.rtl-container.teal.day .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.teal.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.teal.day .mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.rtl-container.teal.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.teal.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#00695c}.rtl-container.teal.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.teal.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.teal.day .mat-optgroup-label{color:#0000008a}.rtl-container.teal.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.teal.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.teal.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.teal.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.teal.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.teal.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#00695c}.rtl-container.teal.day .mat-pseudo-checkbox-checked,.rtl-container.teal.day .mat-pseudo-checkbox-indeterminate,.rtl-container.teal.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.teal.day .mat-accent .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.teal.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.teal.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.teal.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.teal.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.teal.day .mat-app-background,.rtl-container.teal.day.mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.teal.day .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.teal.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.teal.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.teal.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.teal.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.teal.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.teal.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.teal.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.teal.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.teal.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.teal.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.teal.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.teal.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.teal.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.teal.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.teal.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.teal.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.teal.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.teal.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.teal.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.teal.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.teal.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.teal.day .mat-autocomplete-panel{background:white;color:#000000de}.rtl-container.teal.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:white}.rtl-container.teal.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.teal.day .mat-badge{position:relative}.rtl-container.teal.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.teal.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.teal.day .ng-animate-disabled .mat-badge-content,.rtl-container.teal.day .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.teal.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.teal.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.teal.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.teal.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.teal.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.teal.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.teal.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.teal.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.teal.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.teal.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.teal.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.teal.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.teal.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.teal.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.teal.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.teal.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.teal.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.teal.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.teal.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.teal.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.teal.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.teal.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.teal.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.teal.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.teal.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.teal.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.teal.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.teal.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.teal.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.teal.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.teal.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.teal.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.teal.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.teal.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.teal.day .mat-badge-content{color:#fff;background:#00695c}.cdk-high-contrast-active .rtl-container.teal.day .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.teal.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.teal.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.teal.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.teal.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:white;color:#000000de}.rtl-container.teal.day .mat-button,.rtl-container.teal.day .mat-icon-button,.rtl-container.teal.day .mat-stroked-button{color:inherit;background:transparent}.rtl-container.teal.day .mat-button.mat-primary,.rtl-container.teal.day .mat-icon-button.mat-primary,.rtl-container.teal.day .mat-stroked-button.mat-primary{color:#00695c}.rtl-container.teal.day .mat-button.mat-accent,.rtl-container.teal.day .mat-icon-button.mat-accent,.rtl-container.teal.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.teal.day .mat-button.mat-warn,.rtl-container.teal.day .mat-icon-button.mat-warn,.rtl-container.teal.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.teal.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.teal.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.teal.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.teal.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#00695c}.rtl-container.teal.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.teal.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.teal.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.teal.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.teal.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.teal.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.teal.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.teal.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.teal.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.teal.day .mat-button .mat-ripple-element,.rtl-container.teal.day .mat-icon-button .mat-ripple-element,.rtl-container.teal.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.teal.day .mat-button-focus-overlay{background:black}.rtl-container.teal.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.teal.day .mat-flat-button,.rtl-container.teal.day .mat-raised-button,.rtl-container.teal.day .mat-fab,.rtl-container.teal.day .mat-mini-fab{color:#000000de;background-color:#fff}.rtl-container.teal.day .mat-flat-button.mat-primary,.rtl-container.teal.day .mat-raised-button.mat-primary,.rtl-container.teal.day .mat-fab.mat-primary,.rtl-container.teal.day .mat-mini-fab.mat-primary,.rtl-container.teal.day .mat-flat-button.mat-accent,.rtl-container.teal.day .mat-raised-button.mat-accent,.rtl-container.teal.day .mat-fab.mat-accent,.rtl-container.teal.day .mat-mini-fab.mat-accent,.rtl-container.teal.day .mat-flat-button.mat-warn,.rtl-container.teal.day .mat-raised-button.mat-warn,.rtl-container.teal.day .mat-fab.mat-warn,.rtl-container.teal.day .mat-mini-fab.mat-warn{color:#fff}.rtl-container.teal.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.teal.day .mat-flat-button.mat-primary,.rtl-container.teal.day .mat-raised-button.mat-primary,.rtl-container.teal.day .mat-fab.mat-primary,.rtl-container.teal.day .mat-mini-fab.mat-primary{background-color:#00695c}.rtl-container.teal.day .mat-flat-button.mat-accent,.rtl-container.teal.day .mat-raised-button.mat-accent,.rtl-container.teal.day .mat-fab.mat-accent,.rtl-container.teal.day .mat-mini-fab.mat-accent{background-color:#424242}.rtl-container.teal.day .mat-flat-button.mat-warn,.rtl-container.teal.day .mat-raised-button.mat-warn,.rtl-container.teal.day .mat-fab.mat-warn,.rtl-container.teal.day .mat-mini-fab.mat-warn{background-color:#b00020}.rtl-container.teal.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.teal.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.rtl-container.teal.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.teal.day .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.teal.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.teal.day .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.day .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.teal.day .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.teal.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.teal.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.teal.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.teal.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.teal.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.teal.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.day .mat-button-toggle-standalone,.rtl-container.teal.day .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.teal.day .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.teal.day .mat-button-toggle{color:#00000061}.rtl-container.teal.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.teal.day .mat-button-toggle-appearance-standard{color:#000000de;background:white}.rtl-container.teal.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.teal.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,.12)}.rtl-container.teal.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.teal.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,.12)}.rtl-container.teal.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.teal.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.teal.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.teal.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:white}.rtl-container.teal.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.teal.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.teal.day .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(0,0,0,.12)}.rtl-container.teal.day .mat-card{background:white;color:#000000de}.rtl-container.teal.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.teal.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.day .mat-card-subtitle{color:#0000008a}.rtl-container.teal.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.teal.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.teal.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.teal.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.teal.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.teal.day .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#00695c}.rtl-container.teal.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.teal.day .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.teal.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.teal.day .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.teal.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.teal.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.teal.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.teal.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.teal.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.teal.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.teal.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#00695c}.rtl-container.teal.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.teal.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.teal.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.teal.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.teal.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.teal.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.teal.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip:after{background:black}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#00695c;color:#fff}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.day .mat-table{background:white}.rtl-container.teal.day .mat-table thead,.rtl-container.teal.day .mat-table tbody,.rtl-container.teal.day .mat-table tfoot,.rtl-container.teal.day mat-header-row,.rtl-container.teal.day mat-row,.rtl-container.teal.day mat-footer-row,.rtl-container.teal.day [mat-header-row],.rtl-container.teal.day [mat-row],.rtl-container.teal.day [mat-footer-row],.rtl-container.teal.day .mat-table-sticky{background:inherit}.rtl-container.teal.day mat-row,.rtl-container.teal.day mat-header-row,.rtl-container.teal.day mat-footer-row,.rtl-container.teal.day th.mat-header-cell,.rtl-container.teal.day td.mat-cell,.rtl-container.teal.day td.mat-footer-cell{border-bottom-color:#0000001f}.rtl-container.teal.day .mat-header-cell{color:#0000008a}.rtl-container.teal.day .mat-cell,.rtl-container.teal.day .mat-footer-cell{color:#000000de}.rtl-container.teal.day .mat-calendar-arrow{fill:#0000008a}.rtl-container.teal.day .mat-datepicker-toggle,.rtl-container.teal.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.teal.day .mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.rtl-container.teal.day .mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.rtl-container.teal.day .mat-calendar-table-header,.rtl-container.teal.day .mat-calendar-body-label{color:#0000008a}.rtl-container.teal.day .mat-calendar-body-cell-content,.rtl-container.teal.day .mat-date-range-input-separator{color:#000000de;border-color:transparent}.rtl-container.teal.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.rtl-container.teal.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.teal.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.teal.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.teal.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.teal.day .mat-calendar-body-in-range:before{background:rgba(0,105,92,.2)}.rtl-container.teal.day .mat-calendar-body-comparison-identical,.rtl-container.teal.day .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.teal.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(0,105,92,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(0,105,92,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.teal.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.teal.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.day .mat-calendar-body-selected{background-color:#00695c;color:#fff}.rtl-container.teal.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#00695c66}.rtl-container.teal.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#00695c4d}@media (hover: hover){.rtl-container.teal.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#00695c4d}}.rtl-container.teal.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(66,66,66,.2)}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}@media (hover: hover){.rtl-container.teal.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(176,0,32,.2)}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}@media (hover: hover){.rtl-container.teal.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}}.rtl-container.teal.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.teal.day .mat-datepicker-toggle-active{color:#00695c}.rtl-container.teal.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.teal.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.teal.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.teal.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:white;color:#000000de}.rtl-container.teal.day .mat-divider{border-top-color:#0000001f}.rtl-container.teal.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.teal.day .mat-expansion-panel{background:white;color:#000000de}.rtl-container.teal.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.day .mat-action-row{border-top-color:#0000001f}.rtl-container.teal.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.teal.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.teal.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.teal.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:white}}.rtl-container.teal.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.teal.day .mat-expansion-panel-header-description,.rtl-container.teal.day .mat-expansion-indicator:after{color:#0000008a}.rtl-container.teal.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.teal.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.teal.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.teal.day .mat-form-field-label,.rtl-container.teal.day .mat-hint{color:#0009}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-label{color:#00695c}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.teal.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.teal.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#00695c}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.teal.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#00695c}.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#b00020}.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.teal.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.teal.day .mat-error{color:#b00020}.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.teal.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.teal.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.teal.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.teal.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.teal.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.teal.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.teal.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.teal.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.teal.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.teal.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#00695c}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.teal.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.teal.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.teal.day .mat-icon.mat-primary{color:#00695c}.rtl-container.teal.day .mat-icon.mat-accent{color:#424242}.rtl-container.teal.day .mat-icon.mat-warn{color:#b00020}.rtl-container.teal.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.teal.day .mat-input-element:disabled,.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.rtl-container.teal.day .mat-input-element{caret-color:#00695c}.rtl-container.teal.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.teal.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.teal.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.teal.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.teal.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.teal.day .mat-form-field.mat-warn .mat-input-element,.rtl-container.teal.day .mat-form-field-invalid .mat-input-element{caret-color:#b00020}.rtl-container.teal.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.teal.day .mat-list-base .mat-list-item,.rtl-container.teal.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.teal.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.teal.day .mat-list-item-disabled{background-color:#eee}.rtl-container.teal.day .mat-list-option:hover,.rtl-container.teal.day .mat-list-option:focus,.rtl-container.teal.day .mat-nav-list .mat-list-item:hover,.rtl-container.teal.day .mat-nav-list .mat-list-item:focus,.rtl-container.teal.day .mat-action-list .mat-list-item:hover,.rtl-container.teal.day .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.teal.day .mat-list-single-selected-option,.rtl-container.teal.day .mat-list-single-selected-option:hover,.rtl-container.teal.day .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.teal.day .mat-menu-panel{background:white}.rtl-container.teal.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.day .mat-menu-item{background:transparent;color:#000000de}.rtl-container.teal.day .mat-menu-item[disabled],.rtl-container.teal.day .mat-menu-item[disabled] .mat-menu-submenu-icon,.rtl-container.teal.day .mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.rtl-container.teal.day .mat-menu-item .mat-icon-no-color,.rtl-container.teal.day .mat-menu-submenu-icon{color:#0000008a}.rtl-container.teal.day .mat-menu-item:hover:not([disabled]),.rtl-container.teal.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.teal.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.teal.day .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.teal.day .mat-paginator{background:white}.rtl-container.teal.day .mat-paginator,.rtl-container.teal.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.teal.day .mat-paginator-decrement,.rtl-container.teal.day .mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.rtl-container.teal.day .mat-paginator-first,.rtl-container.teal.day .mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.rtl-container.teal.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.teal.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.teal.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.teal.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.teal.day .mat-progress-bar-background{fill:#bcd6d3}.rtl-container.teal.day .mat-progress-bar-buffer{background-color:#bcd6d3}.rtl-container.teal.day .mat-progress-bar-fill:after{background-color:#00695c}.rtl-container.teal.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.teal.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.teal.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.teal.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.teal.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.teal.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.teal.day .mat-progress-spinner circle,.rtl-container.teal.day .mat-spinner circle{stroke:#00695c}.rtl-container.teal.day .mat-progress-spinner.mat-accent circle,.rtl-container.teal.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.teal.day .mat-progress-spinner.mat-warn circle,.rtl-container.teal.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.teal.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.teal.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#00695c}.rtl-container.teal.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.teal.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#00695c}.rtl-container.teal.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.teal.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.teal.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.teal.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.teal.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.teal.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.teal.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.teal.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.teal.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.rtl-container.teal.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.rtl-container.teal.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.teal.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.teal.day .mat-select-value{color:#000000de}.rtl-container.teal.day .mat-select-placeholder{color:#0000006b}.rtl-container.teal.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.teal.day .mat-select-arrow{color:#0000008a}.rtl-container.teal.day .mat-select-panel{background:white}.rtl-container.teal.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.teal.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#00695c}.rtl-container.teal.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.teal.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.teal.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.teal.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.teal.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.teal.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.teal.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.teal.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.teal.day .mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.teal.day .mat-drawer-side.mat-drawer-end,.rtl-container.teal.day [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}.rtl-container.teal.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.teal.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.teal.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.teal.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.teal.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.teal.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#00695c}.rtl-container.teal.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#00695c8a}.rtl-container.teal.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#00695c}.rtl-container.teal.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.teal.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.teal.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.teal.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.teal.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.rtl-container.teal.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.teal.day .mat-slider-track-background{background-color:#00000042}.rtl-container.teal.day .mat-primary .mat-slider-track-fill,.rtl-container.teal.day .mat-primary .mat-slider-thumb,.rtl-container.teal.day .mat-primary .mat-slider-thumb-label{background-color:#00695c}.rtl-container.teal.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.day .mat-primary .mat-slider-focus-ring{background-color:#00695c33}.rtl-container.teal.day .mat-accent .mat-slider-track-fill,.rtl-container.teal.day .mat-accent .mat-slider-thumb,.rtl-container.teal.day .mat-accent .mat-slider-thumb-label{background-color:#424242}.rtl-container.teal.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.teal.day .mat-warn .mat-slider-track-fill,.rtl-container.teal.day .mat-warn .mat-slider-thumb,.rtl-container.teal.day .mat-warn .mat-slider-thumb-label{background-color:#b00020}.rtl-container.teal.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.teal.day .mat-slider:hover .mat-slider-track-background,.rtl-container.teal.day .mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.rtl-container.teal.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.teal.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.teal.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.teal.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.teal.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.teal.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.teal.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.teal.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.teal.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.teal.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.teal.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.teal.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.teal.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.teal.day .mat-step-header.cdk-keyboard-focused,.rtl-container.teal.day .mat-step-header.cdk-program-focused,.rtl-container.teal.day .mat-step-header:hover:not([aria-disabled]),.rtl-container.teal.day .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.teal.day .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.teal.day .mat-step-header:hover{background:none}}.rtl-container.teal.day .mat-step-header .mat-step-label,.rtl-container.teal.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.teal.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.teal.day .mat-step-header .mat-step-icon-selected,.rtl-container.teal.day .mat-step-header .mat-step-icon-state-done,.rtl-container.teal.day .mat-step-header .mat-step-icon-state-edit{background-color:#00695c;color:#fff}.rtl-container.teal.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.teal.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.teal.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.teal.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.teal.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.teal.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.teal.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.teal.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.teal.day .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#b00020}.rtl-container.teal.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.teal.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.teal.day .mat-stepper-horizontal,.rtl-container.teal.day .mat-stepper-vertical{background-color:#fff}.rtl-container.teal.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.teal.day .mat-horizontal-stepper-header:before,.rtl-container.teal.day .mat-horizontal-stepper-header:after,.rtl-container.teal.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.teal.day .mat-sort-header-arrow{color:#757575}.rtl-container.teal.day .mat-tab-nav-bar,.rtl-container.teal.day .mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.teal.day .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.teal.day .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.rtl-container.teal.day .mat-tab-label,.rtl-container.teal.day .mat-tab-link{color:#000000de}.rtl-container.teal.day .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.teal.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.teal.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.teal.day .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.teal.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.teal.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#4db6ac4d}.rtl-container.teal.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#00695c}.rtl-container.teal.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.teal.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.teal.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.teal.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.teal.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.teal.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#4db6ac4d}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#00695c}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.teal.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#424242}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.teal.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#b00020}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.teal.day .mat-toolbar{background:whitesmoke;color:#000000de}.rtl-container.teal.day .mat-toolbar.mat-primary{background:#00695c;color:#fff}.rtl-container.teal.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.teal.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.teal.day .mat-toolbar .mat-form-field-underline,.rtl-container.teal.day .mat-toolbar .mat-form-field-ripple,.rtl-container.teal.day .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.teal.day .mat-toolbar .mat-form-field-label,.rtl-container.teal.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.teal.day .mat-toolbar .mat-select-value,.rtl-container.teal.day .mat-toolbar .mat-select-arrow,.rtl-container.teal.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.teal.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.teal.day .mat-tooltip{background:rgba(97,97,97,.9)}.rtl-container.teal.day .mat-tree{background:white}.rtl-container.teal.day .mat-tree-node,.rtl-container.teal.day .mat-nested-tree-node{color:#000000de}.rtl-container.teal.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.teal.day .mat-simple-snackbar-action{color:#424242}.rtl-container.teal.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.teal.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.teal.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.teal.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.teal.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.teal.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.teal.day .rtl-top-toolbar{border-bottom:1px solid white}.rtl-container.teal.day .bg-primary{background-color:#00695c;color:#fff}.rtl-container.teal.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#00695c}.rtl-container.teal.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.teal.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.teal.day .mat-tab-label.mat-tab-label-active{color:#00695c}.rtl-container.teal.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#00695c}.rtl-container.teal.day .mat-tab-label .tab-badge .mat-badge-content{background:rgba(0,0,0,.54)}.rtl-container.teal.day .ng-fa-icon,.rtl-container.teal.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.teal.day .mat-form-field-suffix{color:#0000008a}.rtl-container.teal.day .mat-stroked-button.mat-primary{border-color:#00695c}.rtl-container.teal.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.teal.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.teal.day .selected-color{border-color:#4db6ac}.rtl-container.teal.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.teal.day .page-title-container,.rtl-container.teal.day .page-sub-title-container{color:#0000008a}.rtl-container.teal.day .page-title-container .page-title-img,.rtl-container.teal.day .page-sub-title-container .page-title-img{color:#00000061}.rtl-container.teal.day .page-title-container .mat-input-element,.rtl-container.teal.day .page-title-container .mat-radio-label-content,.rtl-container.teal.day .page-title-container .theme-name,.rtl-container.teal.day .page-sub-title-container .mat-input-element,.rtl-container.teal.day .page-sub-title-container .mat-radio-label-content,.rtl-container.teal.day .page-sub-title-container .theme-name{color:#000000de}.rtl-container.teal.day .cc-data-block .cc-data-title{color:#00695c}.rtl-container.teal.day .active-link,.rtl-container.teal.day .active-link .fa-icon-small{color:#00695c;font-weight:500;cursor:pointer;fill:#00695c}.rtl-container.teal.day .mat-tree-node:hover,.rtl-container.teal.day .mat-nested-tree-node-parent:hover,.rtl-container.teal.day .mat-select-panel .mat-option:hover,.rtl-container.teal.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover{color:#00695c;cursor:pointer;background:rgba(0,0,0,.04)}.rtl-container.teal.day .mat-tree-node:hover .ng-fa-icon,.rtl-container.teal.day .mat-tree-node:hover .mat-icon,.rtl-container.teal.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.teal.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.teal.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.teal.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.teal.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.teal.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon{color:#00695c}.rtl-container.teal.day .mat-tree-node:hover .sidenav-img svg,.rtl-container.teal.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.teal.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.teal.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg{fill:#00695c}.rtl-container.teal.day .mat-tree-node .sidenav-img,.rtl-container.teal.day .mat-nested-tree-node .sidenav-img,.rtl-container.teal.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.teal.day .page-title-container .page-title-img,.rtl-container.teal.day svg.top-icon-small{fill:#000000de}.rtl-container.teal.day .mat-progress-bar-fill:after{background-color:#004d40}.rtl-container.teal.day .modal-qr-code-container{background:rgba(0,0,0,.12)}.rtl-container.teal.day .mat-tab-label,.rtl-container.teal.day .mat-tab-link{color:#0000008a}.rtl-container.teal.day .mat-card,.rtl-container.teal.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid rgba(0,0,0,.12)}.rtl-container.teal.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.teal.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.teal.day .dashboard-info-title{color:#00695c}.rtl-container.teal.day .dashboard-info-value{color:#0000008a}.rtl-container.teal.day .color-primary{color:#00695c!important}.rtl-container.teal.day .dot-primary{background-color:#00695c!important}.rtl-container.teal.day .dot-primary-lighter{background-color:#4db6ac!important}.rtl-container.teal.day .mat-expansion-panel.flat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.teal.day .mat-tooltip{font-size:120%}.rtl-container.teal.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.teal.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.teal.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.teal.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.teal.day svg .fill-color-1{fill:#fff}.rtl-container.teal.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.teal.day svg .fill-color-3{fill:#f2f2f2}.rtl-container.teal.day svg .fill-color-4{fill:#f2f2f2}.rtl-container.teal.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.teal.day svg .fill-color-6{fill:#fff}.rtl-container.teal.day svg .fill-color-7{fill:#cbcbcb}.rtl-container.teal.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.teal.day svg .fill-color-9{fill:#fff}.rtl-container.teal.day svg .fill-color-10{fill:#e6e6e6}.rtl-container.teal.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.teal.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.teal.day svg .fill-color-13{fill:#4a4a4a}.rtl-container.teal.day svg .fill-color-14{fill:#4a4a4a}.rtl-container.teal.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.teal.day svg .fill-color-16{fill:#404040}.rtl-container.teal.day svg .fill-color-17{fill:#404040}.rtl-container.teal.day svg .fill-color-18{fill:#000}.rtl-container.teal.day svg .fill-color-19{fill:#4a4a4a}.rtl-container.teal.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.teal.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.teal.day svg .fill-color-22{fill:#cbcbcb}.rtl-container.teal.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.teal.day svg .fill-color-24{fill:#000}.rtl-container.teal.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.teal.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.teal.day svg .fill-color-27{fill:#000}.rtl-container.teal.day svg .fill-color-28{fill:#313131}.rtl-container.teal.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.teal.day svg .fill-color-30{fill:#fff}.rtl-container.teal.day svg .fill-color-31{fill:#00695c}.rtl-container.teal.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.teal.day svg .fill-color-primary{fill:#00695c}.rtl-container.teal.day svg .fill-color-primary-lighter{fill:#4db6ac}.rtl-container.teal.day svg .fill-color-primary-darker{fill:#00695c}.rtl-container.teal.day .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.teal.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.teal.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.teal.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.teal.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.teal.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.teal.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#00695c}.rtl-container.teal.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.teal.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#004d40}.rtl-container.teal.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.teal.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#80cbc4}.rtl-container.teal.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.teal.day .mat-progress-bar-buffer{background-color:#b2dfdb}.rtl-container.teal.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.teal.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.teal.day .foreground.mat-progress-spinner circle,.rtl-container.teal.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.teal.day .mat-toolbar-row,.rtl-container.teal.day .mat-toolbar-single-row{height:5rem}.rtl-container.teal.day .lnd-info{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.teal.day a{color:#00695c}.rtl-container.teal.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.teal.day .h-active-link{border-bottom:2px solid white}.rtl-container.teal.day .mat-icon-36{color:#0000008a}.rtl-container.teal.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.teal.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.teal.day .genseed-message{width:10%;color:#00695c}.rtl-container.teal.day .material-icons.primary{color:#00695c}.rtl-container.teal.day .material-icons.accent{color:#424242}.rtl-container.teal.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.teal.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.teal.day .row-disabled{background-color:gray}.rtl-container.teal.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.teal.day .mat-menu-panel{min-width:6.4rem}.rtl-container.teal.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.teal.day .horizontal-button:hover{background:#4db6ac;color:#424242}.rtl-container.teal.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#00695c}.rtl-container.teal.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.teal.day .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.teal.day .mat-button,.rtl-container.teal.day .mat-icon-button,.rtl-container.teal.day .mat-stroked-button,.rtl-container.teal.day .mat-flat-button{border-radius:2px}.rtl-container.teal.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.teal.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.teal.day .mat-cell,.rtl-container.teal.day .mat-header-cell,.rtl-container.teal.day .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#0000001f}.rtl-container.teal.day table.mat-table{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.teal.day table.mat-table thead tr th{color:#000}.rtl-container.teal.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.teal.day .bordered-box{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.teal.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.teal.day .mat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.teal.day .more-button{color:#00000061}.rtl-container.teal.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.teal.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.teal.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.teal.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.teal.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.teal.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.teal.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.teal.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.teal.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.teal.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.teal.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.teal.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.teal.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.teal.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.teal.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.teal.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.teal.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.teal.day .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#80cbc4!important}.rtl-container.teal.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#00897b!important}.rtl-container.teal.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.teal.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.teal.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.teal.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.teal.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid rgba(0,0,0,.54)}.rtl-container.teal.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.teal.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.teal.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.teal.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.teal.day .color-warn{color:#b00020}.rtl-container.teal.day .fill-warn{fill:#b00020}.rtl-container.teal.day .alert{border:1px solid rgba(0,0,0,.54);color:#0000008a;background-color:#0000000a}.rtl-container.teal.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.teal.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.teal.day .alert.alert-info a{color:#004085}.rtl-container.teal.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.teal.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.teal.day .alert.alert-warn a{color:#856404}.rtl-container.teal.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.teal.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.teal.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.teal.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.teal.day .help-expansion .mat-expansion-panel-header,.rtl-container.teal.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.teal.day .help-expansion .mat-expansion-indicator:after,.rtl-container.teal.day .help-expansion .mat-expansion-panel-content,.rtl-container.teal.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.teal.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.teal.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.teal.day .failed-status{color:#b00020}.rtl-container.teal.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.teal.day .svg-fill-primary{fill:#00695c}.rtl-container.teal.day .svg-fill-primary-lighter{fill:#4db6ac}.rtl-container.teal.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.teal.day ngx-charts-bar-vertical text,.rtl-container.teal.day ngx-charts-bar-vertical-2d text{fill:#000000de}.rtl-container.teal.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.teal.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.teal.day .mat-paginator-container{padding:0}.rtl-container.teal.day .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.teal.day .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.teal.day .invoice-animation-div .particles-circle{position:absolute;background-color:#00695c;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #00695c;background-color:transparent}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.teal.day .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.teal.day .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.teal.day .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.teal.day .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.teal.day .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.teal.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-option{color:#fff}.rtl-container.teal.night .mat-option:hover:not(.mat-option-disabled),.rtl-container.teal.night .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.teal.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.teal.night .mat-option.mat-active{background:rgba(0,0,0,.04);color:#fff}.rtl-container.teal.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#00695c}.rtl-container.teal.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.teal.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.teal.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.teal.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.teal.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.teal.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#00695c}.rtl-container.teal.night .mat-pseudo-checkbox-checked,.rtl-container.teal.night .mat-pseudo-checkbox-indeterminate,.rtl-container.teal.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.teal.night .mat-accent .mat-pseudo-checkbox-indeterminate{background:#eeeeee}.rtl-container.teal.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.teal.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.teal.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.teal.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.teal.night .mat-app-background,.rtl-container.teal.night.mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.teal.night .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.teal.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.teal.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.teal.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.teal.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.teal.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.teal.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.teal.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.teal.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.teal.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.teal.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.teal.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.teal.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.teal.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.teal.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.teal.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.teal.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.teal.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.teal.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.teal.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.teal.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.teal.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.teal.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.teal.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.teal.night .mat-badge{position:relative}.rtl-container.teal.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.teal.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.teal.night .ng-animate-disabled .mat-badge-content,.rtl-container.teal.night .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.teal.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.teal.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.teal.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.teal.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.teal.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.teal.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.teal.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.teal.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.teal.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.teal.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.teal.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.teal.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.teal.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.teal.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.teal.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.teal.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.teal.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.teal.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.teal.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.teal.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.teal.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.teal.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.teal.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.teal.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.teal.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.teal.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.teal.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.teal.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.teal.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.teal.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.teal.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.teal.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.teal.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.teal.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.teal.night .mat-badge-content{color:#fff;background:#00695c}.cdk-high-contrast-active .rtl-container.teal.night .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.teal.night .mat-badge-accent .mat-badge-content{background:#eeeeee;color:#000}.rtl-container.teal.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.teal.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.teal.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.teal.night .mat-button,.rtl-container.teal.night .mat-icon-button,.rtl-container.teal.night .mat-stroked-button{color:inherit;background:transparent}.rtl-container.teal.night .mat-button.mat-primary,.rtl-container.teal.night .mat-icon-button.mat-primary,.rtl-container.teal.night .mat-stroked-button.mat-primary{color:#00695c}.rtl-container.teal.night .mat-button.mat-accent,.rtl-container.teal.night .mat-icon-button.mat-accent,.rtl-container.teal.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.teal.night .mat-button.mat-warn,.rtl-container.teal.night .mat-icon-button.mat-warn,.rtl-container.teal.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.teal.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.teal.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.teal.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.teal.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#00695c}.rtl-container.teal.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.teal.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.teal.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.teal.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.teal.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.teal.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.teal.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.teal.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.teal.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.teal.night .mat-button .mat-ripple-element,.rtl-container.teal.night .mat-icon-button .mat-ripple-element,.rtl-container.teal.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.teal.night .mat-button-focus-overlay{background:white}.rtl-container.teal.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.teal.night .mat-flat-button,.rtl-container.teal.night .mat-raised-button,.rtl-container.teal.night .mat-fab,.rtl-container.teal.night .mat-mini-fab{color:#fff;background-color:#363636}.rtl-container.teal.night .mat-flat-button.mat-primary,.rtl-container.teal.night .mat-raised-button.mat-primary,.rtl-container.teal.night .mat-fab.mat-primary,.rtl-container.teal.night .mat-mini-fab.mat-primary{color:#fff}.rtl-container.teal.night .mat-flat-button.mat-accent,.rtl-container.teal.night .mat-raised-button.mat-accent,.rtl-container.teal.night .mat-fab.mat-accent,.rtl-container.teal.night .mat-mini-fab.mat-accent{color:#000}.rtl-container.teal.night .mat-flat-button.mat-warn,.rtl-container.teal.night .mat-raised-button.mat-warn,.rtl-container.teal.night .mat-fab.mat-warn,.rtl-container.teal.night .mat-mini-fab.mat-warn{color:#fff}.rtl-container.teal.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.teal.night .mat-flat-button.mat-primary,.rtl-container.teal.night .mat-raised-button.mat-primary,.rtl-container.teal.night .mat-fab.mat-primary,.rtl-container.teal.night .mat-mini-fab.mat-primary{background-color:#00695c}.rtl-container.teal.night .mat-flat-button.mat-accent,.rtl-container.teal.night .mat-raised-button.mat-accent,.rtl-container.teal.night .mat-fab.mat-accent,.rtl-container.teal.night .mat-mini-fab.mat-accent{background-color:#eee}.rtl-container.teal.night .mat-flat-button.mat-warn,.rtl-container.teal.night .mat-raised-button.mat-warn,.rtl-container.teal.night .mat-fab.mat-warn,.rtl-container.teal.night .mat-mini-fab.mat-warn{background-color:#ff343b}.rtl-container.teal.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.teal.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#404040}.rtl-container.teal.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.teal.night .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.teal.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.teal.night .mat-mini-fab.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.teal.night .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.teal.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.teal.night .mat-mini-fab.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.teal.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.teal.night .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.teal.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.teal.night .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.teal.night .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.teal.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.teal.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.teal.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.teal.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.teal.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.teal.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.night .mat-button-toggle-standalone,.rtl-container.teal.night .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.teal.night .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.teal.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.teal.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(255,255,255,.3)}.rtl-container.teal.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.teal.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(255,255,255,.3)}.rtl-container.teal.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.teal.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.teal.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.teal.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.teal.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.teal.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.teal.night .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(255,255,255,.3)}.rtl-container.teal.night .mat-card{background:#202020;color:#fff}.rtl-container.teal.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.teal.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.teal.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.teal.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.teal.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.teal.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.teal.night .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#00695c}.rtl-container.teal.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.teal.night .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.teal.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.teal.night .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.teal.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.teal.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.teal.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.teal.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.teal.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.teal.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#00695c}.rtl-container.teal.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.teal.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eeeeee}.rtl-container.teal.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.teal.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.teal.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.teal.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.teal.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip:after{background:white}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#00695c;color:#fff}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.teal.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.teal.night .mat-table{background:#202020}.rtl-container.teal.night .mat-table thead,.rtl-container.teal.night .mat-table tbody,.rtl-container.teal.night .mat-table tfoot,.rtl-container.teal.night mat-header-row,.rtl-container.teal.night mat-row,.rtl-container.teal.night mat-footer-row,.rtl-container.teal.night [mat-header-row],.rtl-container.teal.night [mat-row],.rtl-container.teal.night [mat-footer-row],.rtl-container.teal.night .mat-table-sticky{background:inherit}.rtl-container.teal.night mat-row,.rtl-container.teal.night mat-header-row,.rtl-container.teal.night mat-footer-row,.rtl-container.teal.night th.mat-header-cell,.rtl-container.teal.night td.mat-cell,.rtl-container.teal.night td.mat-footer-cell{border-bottom-color:#ffffff4d}.rtl-container.teal.night .mat-cell,.rtl-container.teal.night .mat-footer-cell{color:#fff}.rtl-container.teal.night .mat-calendar-arrow{fill:#fff}.rtl-container.teal.night .mat-datepicker-toggle,.rtl-container.teal.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.teal.night .mat-datepicker-content .mat-calendar-previous-button{color:#fff}.rtl-container.teal.night .mat-calendar-table-header-divider:after{background:rgba(255,255,255,.3)}.rtl-container.teal.night .mat-calendar-body-cell-content,.rtl-container.teal.night .mat-date-range-input-separator{color:#fff;border-color:transparent}.rtl-container.teal.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.teal.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.teal.night .mat-calendar-body-in-range:before{background:rgba(0,105,92,.2)}.rtl-container.teal.night .mat-calendar-body-comparison-identical,.rtl-container.teal.night .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.teal.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(0,105,92,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(0,105,92,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.teal.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.teal.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.night .mat-calendar-body-selected{background-color:#00695c;color:#fff}.rtl-container.teal.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#00695c66}.rtl-container.teal.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#00695c4d}@media (hover: hover){.rtl-container.teal.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#00695c4d}}.rtl-container.teal.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#202020;color:#fff}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(238,238,238,.2)}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.teal.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}@media (hover: hover){.rtl-container.teal.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(255,52,59,.2)}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.teal.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.teal.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.teal.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.teal.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}@media (hover: hover){.rtl-container.teal.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}}.rtl-container.teal.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.teal.night .mat-datepicker-toggle-active{color:#00695c}.rtl-container.teal.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.teal.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.teal.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.teal.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.teal.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.teal.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.teal.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.teal.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.teal.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.teal.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.teal.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.teal.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.teal.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.teal.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.teal.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.teal.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-label{color:#00695c}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.teal.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.teal.night .mat-form-field-ripple{background-color:#fff}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#00695c}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.teal.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.teal.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#00695c}.rtl-container.teal.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.teal.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#ff343b}.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.teal.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.teal.night .mat-error{color:#ff343b}.rtl-container.teal.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.teal.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.teal.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.teal.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.teal.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.teal.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.teal.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.teal.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.teal.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.teal.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.teal.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#00695c}.rtl-container.teal.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.teal.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.teal.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.teal.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.teal.night .mat-icon.mat-primary{color:#00695c}.rtl-container.teal.night .mat-icon.mat-accent{color:#eee}.rtl-container.teal.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.teal.night .mat-input-element{caret-color:#00695c}.rtl-container.teal.night .mat-input-element:not(.mat-native-select-inline) option{color:#000000de}.rtl-container.teal.night .mat-input-element:not(.mat-native-select-inline) option:disabled{color:#00000061}.rtl-container.teal.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.teal.night .mat-form-field.mat-warn .mat-input-element,.rtl-container.teal.night .mat-form-field-invalid .mat-input-element{caret-color:#ff343b}.rtl-container.teal.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.teal.night .mat-list-base .mat-list-item,.rtl-container.teal.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.teal.night .mat-list-item-disabled{background-color:#444}.rtl-container.teal.night .mat-list-option:hover,.rtl-container.teal.night .mat-list-option:focus,.rtl-container.teal.night .mat-nav-list .mat-list-item:hover,.rtl-container.teal.night .mat-nav-list .mat-list-item:focus,.rtl-container.teal.night .mat-action-list .mat-list-item:hover,.rtl-container.teal.night .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.teal.night .mat-list-single-selected-option,.rtl-container.teal.night .mat-list-single-selected-option:hover,.rtl-container.teal.night .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.teal.night .mat-menu-panel{background:#202020}.rtl-container.teal.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.night .mat-menu-item{background:transparent;color:#fff}.rtl-container.teal.night .mat-menu-item .mat-icon-no-color,.rtl-container.teal.night .mat-menu-submenu-icon{color:#fff}.rtl-container.teal.night .mat-menu-item:hover:not([disabled]),.rtl-container.teal.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.teal.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.teal.night .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.teal.night .mat-paginator{background:#202020}.rtl-container.teal.night .mat-paginator-decrement,.rtl-container.teal.night .mat-paginator-increment{border-top:2px solid white;border-right:2px solid white}.rtl-container.teal.night .mat-paginator-first,.rtl-container.teal.night .mat-paginator-last{border-top:2px solid white}.rtl-container.teal.night .mat-progress-bar-background{fill:#0a2421}.rtl-container.teal.night .mat-progress-bar-buffer{background-color:#0a2421}.rtl-container.teal.night .mat-progress-bar-fill:after{background-color:#00695c}.rtl-container.teal.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.teal.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.teal.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.teal.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.teal.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.teal.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.teal.night .mat-progress-spinner circle,.rtl-container.teal.night .mat-spinner circle{stroke:#00695c}.rtl-container.teal.night .mat-progress-spinner.mat-accent circle,.rtl-container.teal.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.teal.night .mat-progress-spinner.mat-warn circle,.rtl-container.teal.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.teal.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#00695c}.rtl-container.teal.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.teal.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#00695c}.rtl-container.teal.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.teal.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.teal.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.teal.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.teal.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.teal.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.teal.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.teal.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.teal.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.teal.night .mat-select-value{color:#fff}.rtl-container.teal.night .mat-select-panel{background:#202020}.rtl-container.teal.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.teal.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#00695c}.rtl-container.teal.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.teal.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.teal.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.teal.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.teal.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.teal.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.teal.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.teal.night .mat-drawer-side{border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.teal.night .mat-drawer-side.mat-drawer-end,.rtl-container.teal.night [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(255,255,255,.3);border-right:none}.rtl-container.teal.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.teal.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.teal.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.teal.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.teal.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.teal.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#00695c}.rtl-container.teal.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#00695c8a}.rtl-container.teal.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#00695c}.rtl-container.teal.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.teal.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.teal.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.teal.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.teal.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#bdbdbd}.rtl-container.teal.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.teal.night .mat-primary .mat-slider-track-fill,.rtl-container.teal.night .mat-primary .mat-slider-thumb,.rtl-container.teal.night .mat-primary .mat-slider-thumb-label{background-color:#00695c}.rtl-container.teal.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.night .mat-primary .mat-slider-focus-ring{background-color:#00695c33}.rtl-container.teal.night .mat-accent .mat-slider-track-fill,.rtl-container.teal.night .mat-accent .mat-slider-thumb,.rtl-container.teal.night .mat-accent .mat-slider-thumb-label{background-color:#eee}.rtl-container.teal.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.teal.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.teal.night .mat-warn .mat-slider-track-fill,.rtl-container.teal.night .mat-warn .mat-slider-thumb,.rtl-container.teal.night .mat-warn .mat-slider-thumb-label{background-color:#ff343b}.rtl-container.teal.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.teal.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.teal.night .mat-slider:hover .mat-slider-track-background,.rtl-container.teal.night .mat-slider.cdk-focused .mat-slider-track-background{background-color:#fff9}.rtl-container.teal.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.teal.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.teal.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.teal.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.teal.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.teal.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.teal.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.teal.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.teal.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:transparent}.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#fff9}.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.teal.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.teal.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.teal.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.teal.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.teal.night .mat-step-header.cdk-keyboard-focused,.rtl-container.teal.night .mat-step-header.cdk-program-focused,.rtl-container.teal.night .mat-step-header:hover:not([aria-disabled]),.rtl-container.teal.night .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.teal.night .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.teal.night .mat-step-header:hover{background:none}}.rtl-container.teal.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.teal.night .mat-step-header .mat-step-icon-selected,.rtl-container.teal.night .mat-step-header .mat-step-icon-state-done,.rtl-container.teal.night .mat-step-header .mat-step-icon-state-edit{background-color:#00695c;color:#fff}.rtl-container.teal.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.teal.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.teal.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.teal.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.teal.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.teal.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.teal.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.teal.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.teal.night .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#ff343b}.rtl-container.teal.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.teal.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.teal.night .mat-stepper-horizontal,.rtl-container.teal.night .mat-stepper-vertical{background-color:#202020}.rtl-container.teal.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.teal.night .mat-horizontal-stepper-header:before,.rtl-container.teal.night .mat-horizontal-stepper-header:after,.rtl-container.teal.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.teal.night .mat-tab-nav-bar,.rtl-container.teal.night .mat-tab-header{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.teal.night .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.teal.night .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(255,255,255,.3);border-bottom:none}.rtl-container.teal.night .mat-tab-label,.rtl-container.teal.night .mat-tab-link{color:#fff}.rtl-container.teal.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.teal.night .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.teal.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.teal.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#4db6ac4d}.rtl-container.teal.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#00695c}.rtl-container.teal.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.teal.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.teal.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.teal.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.teal.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.teal.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#4db6ac4d}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#00695c}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.teal.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#eee}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#000}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#000;opacity:.4}.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#000;opacity:.12}.rtl-container.teal.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#ff343b}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.teal.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.teal.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.teal.night .mat-toolbar.mat-primary{background:#00695c;color:#fff}.rtl-container.teal.night .mat-toolbar.mat-accent{background:#eeeeee;color:#000}.rtl-container.teal.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.teal.night .mat-toolbar .mat-form-field-underline,.rtl-container.teal.night .mat-toolbar .mat-form-field-ripple,.rtl-container.teal.night .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.teal.night .mat-toolbar .mat-form-field-label,.rtl-container.teal.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.teal.night .mat-toolbar .mat-select-value,.rtl-container.teal.night .mat-toolbar .mat-select-arrow,.rtl-container.teal.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.teal.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.teal.night .mat-tree{background:#202020}.rtl-container.teal.night .mat-tree-node,.rtl-container.teal.night .mat-nested-tree-node{color:#fff}.rtl-container.teal.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.teal.night .mat-simple-snackbar-action{color:inherit}.rtl-container.teal.night .mat-primary{color:#64ffda}.rtl-container.teal.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.teal.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.teal.night .bg-primary{background-color:#00695c;color:#fff}.rtl-container.teal.night .mat-tab-label.mat-tab-label-active{color:#64ffda}.rtl-container.teal.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#64ffda}.rtl-container.teal.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.teal.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.teal.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.teal.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.teal.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.teal.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#64ffda}.rtl-container.teal.night .cc-data-block .cc-data-title{color:#64ffda}.rtl-container.teal.night .mat-stroked-button.mat-primary{border-color:#64ffda;color:#64ffda}.rtl-container.teal.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.teal.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.teal.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.teal.night .active-link,.rtl-container.teal.night .active-link .fa-icon-small,.rtl-container.teal.night .mat-select-panel .mat-option.mat-active,.rtl-container.teal.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#64ffda;font-weight:500;cursor:pointer;fill:#64ffda}.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.teal.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#64ffda}.rtl-container.teal.night .mat-tree-node:hover,.rtl-container.teal.night .mat-nested-tree-node-parent:hover,.rtl-container.teal.night .mat-select-panel .mat-option:hover,.rtl-container.teal.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.teal.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled){color:#64ffda;cursor:pointer;background:rgba(255,255,255,.06)}.rtl-container.teal.night .mat-tree-node:hover .ng-fa-icon,.rtl-container.teal.night .mat-tree-node:hover .mat-icon,.rtl-container.teal.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.teal.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.teal.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.teal.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.teal.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.teal.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon{color:#64ffda}.rtl-container.teal.night .mat-tree-node:hover .sidenav-img svg,.rtl-container.teal.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.teal.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.teal.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.teal.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.teal.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg{fill:#64ffda}.rtl-container.teal.night .mat-tree-node .sidenav-img,.rtl-container.teal.night .mat-nested-tree-node .sidenav-img,.rtl-container.teal.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.teal.night .page-title-container .page-title-img,.rtl-container.teal.night svg.top-icon-small{fill:#fff}.rtl-container.teal.night .selected-color{border-color:#4db6ac}.rtl-container.teal.night .mat-progress-bar-fill:after{background-color:#00897b}.rtl-container.teal.night .chart-legend .legend-label:hover,.rtl-container.teal.night .chart-legend .legend-label .active .legend-label-text{color:#fff!important}.rtl-container.teal.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.teal.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#64ffda}.rtl-container.teal.night .mat-select-panel{background-color:#262626}.rtl-container.teal.night .mat-tree{background:#262626}.rtl-container.teal.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.teal.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.teal.night .dashboard-info-title{color:#64ffda}.rtl-container.teal.night .dashboard-info-value,.rtl-container.teal.night .dashboard-capacity-header{color:#fff}.rtl-container.teal.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.teal.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.teal.night .color-primary{color:#64ffda!important}.rtl-container.teal.night .dot-primary{background-color:#64ffda!important}.rtl-container.teal.night .dot-primary-lighter{background-color:#00695c!important}.rtl-container.teal.night .mat-stepper-vertical{background-color:#262626}.rtl-container.teal.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.teal.night svg .boltz-icon-fill{fill:#fff}.rtl-container.teal.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.teal.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.teal.night svg .fill-color-0{fill:#171717}.rtl-container.teal.night svg .fill-color-1{fill:#232323}.rtl-container.teal.night svg .fill-color-2{fill:#222}.rtl-container.teal.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.teal.night svg .fill-color-4{fill:#383838}.rtl-container.teal.night svg .fill-color-5{fill:#555}.rtl-container.teal.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.teal.night svg .fill-color-7{fill:#202020}.rtl-container.teal.night svg .fill-color-8{fill:#242424}.rtl-container.teal.night svg .fill-color-9{fill:#262626}.rtl-container.teal.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.teal.night svg .fill-color-11{fill:#171717}.rtl-container.teal.night svg .fill-color-12{fill:#ccc}.rtl-container.teal.night svg .fill-color-13{fill:#adadad}.rtl-container.teal.night svg .fill-color-14{fill:#ababab}.rtl-container.teal.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.teal.night svg .fill-color-16{fill:#707070}.rtl-container.teal.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.teal.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.teal.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.teal.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.teal.night svg .fill-color-21{fill:#cacaca}.rtl-container.teal.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.teal.night svg .fill-color-23{fill:#777}.rtl-container.teal.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.teal.night svg .fill-color-25{fill:#252525}.rtl-container.teal.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.teal.night svg .fill-color-27{fill:#000}.rtl-container.teal.night svg .fill-color-28{fill:#313131}.rtl-container.teal.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.teal.night svg .fill-color-30{fill:#fff}.rtl-container.teal.night svg .fill-color-31{fill:#00695c}.rtl-container.teal.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.teal.night svg .fill-color-primary{fill:#00695c}.rtl-container.teal.night svg .fill-color-primary-lighter{fill:#4db6ac}.rtl-container.teal.night svg .fill-color-primary-darker{fill:#64ffda}.rtl-container.teal.night .mat-select-value,.rtl-container.teal.night .mat-select-arrow{color:#fff}.rtl-container.teal.night .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.teal.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.teal.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.teal.night .mat-slide-toggle-bar,.rtl-container.teal.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.teal.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.teal.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.teal.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.teal.night .mat-button.mat-primary,.rtl-container.teal.night .mat-icon-button.mat-primary,.rtl-container.teal.night .mat-stroked-button.mat-primary{color:#64ffda}.rtl-container.teal.night tr.alert.alert-warn .mat-cell,.rtl-container.teal.night tr.alert.alert-warn .mat-header-cell,.rtl-container.teal.night tr.alert.alert-warn .mat-footer-cell{color:#856404}.rtl-container.teal.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.teal.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#64ffda}.rtl-container.teal.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.teal.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#00695c}.rtl-container.teal.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.teal.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#64ffda}.rtl-container.teal.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.teal.night .mat-progress-bar-buffer{background-color:#b2dfdb}.rtl-container.teal.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.teal.night .foreground-secondary-text{color:!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.teal.night .foreground.mat-progress-spinner circle,.rtl-container.teal.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.teal.night .mat-toolbar-row,.rtl-container.teal.night .mat-toolbar-single-row{height:5rem}.rtl-container.teal.night .lnd-info{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.teal.night a{color:#00695c}.rtl-container.teal.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.teal.night .h-active-link{border-bottom:2px solid white}.rtl-container.teal.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.teal.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.teal.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.teal.night .genseed-message{width:10%;color:#00695c}.rtl-container.teal.night .material-icons.primary{color:#00695c}.rtl-container.teal.night .material-icons.accent{color:#eee}.rtl-container.teal.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.teal.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.teal.night .row-disabled{background-color:gray}.rtl-container.teal.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.teal.night .mat-menu-panel{min-width:6.4rem}.rtl-container.teal.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.teal.night .horizontal-button:hover{background:#4db6ac;color:#eee}.rtl-container.teal.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#00695c}.rtl-container.teal.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.teal.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.teal.night .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.teal.night .mat-button,.rtl-container.teal.night .mat-icon-button,.rtl-container.teal.night .mat-stroked-button,.rtl-container.teal.night .mat-flat-button{border-radius:2px}.rtl-container.teal.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.teal.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.teal.night .mat-cell,.rtl-container.teal.night .mat-header-cell,.rtl-container.teal.night .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ffffff4d}.rtl-container.teal.night table.mat-table{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.teal.night table.mat-table thead tr th{color:#fff}.rtl-container.teal.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.teal.night .bordered-box{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.teal.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.teal.night .mat-expansion-panel{border:1px solid rgba(255,255,255,.3)}.rtl-container.teal.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.teal.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.teal.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.teal.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.teal.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.teal.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.teal.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.teal.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.teal.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.teal.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.teal.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.teal.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.teal.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.teal.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.teal.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.teal.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.teal.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.teal.night .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#80cbc4!important}.rtl-container.teal.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#00897b!important}.rtl-container.teal.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.teal.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.teal.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.teal.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.teal.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.teal.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.teal.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.teal.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.teal.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.teal.night .color-warn{color:#ff343b}.rtl-container.teal.night .fill-warn{fill:#ff343b}.rtl-container.teal.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.teal.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.teal.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.teal.night .alert.alert-info a{color:#004085}.rtl-container.teal.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.teal.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.teal.night .alert.alert-warn a{color:#856404}.rtl-container.teal.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.teal.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.teal.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.teal.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.teal.night .help-expansion .mat-expansion-panel-header,.rtl-container.teal.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.teal.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.teal.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.teal.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.teal.night .failed-status{color:#ff343b}.rtl-container.teal.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.teal.night .svg-fill-primary{fill:#00695c}.rtl-container.teal.night .svg-fill-primary-lighter{fill:#4db6ac}.rtl-container.teal.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.teal.night ngx-charts-bar-vertical text,.rtl-container.teal.night ngx-charts-bar-vertical-2d text{fill:#fff}.rtl-container.teal.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.teal.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.teal.night .mat-paginator-container{padding:0}.rtl-container.teal.night .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.teal.night .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.teal.night .invoice-animation-div .particles-circle{position:absolute;background-color:#00695c;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #00695c;background-color:transparent}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.teal.night .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.teal.night .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.teal.night .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.teal.night .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.teal.night .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.pink.small.small .mat-header-cell{font-weight:700}.rtl-container.pink.small.small .mr-4{margin-right:1rem!important}.rtl-container.pink.small.small .mat-menu-item,.rtl-container.pink.small.small .mat-tree .mat-tree-node,.rtl-container.pink.small.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.pink.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.pink.small.small .genseed-message,.rtl-container.pink.small.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.pink.small.small .fa-icon-small,.rtl-container.pink.small.small .top-icon-small{font-size:1.44rem}.rtl-container.pink.small.small .page-title-container,.rtl-container.pink.small.small .page-sub-title-container{font-size:1.32rem}.rtl-container.pink.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.pink.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.pink.small.small .top-toolbar-icon .top-toolbar-img,.rtl-container.pink.small.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.pink.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.pink.small.small .material-icons,.rtl-container.pink.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.pink.small.small .mat-expansion-panel-header,.rtl-container.pink.small.small .mat-menu-item,.rtl-container.pink.small.small .mat-list .mat-list-item,.rtl-container.pink.small.small .mat-nav-list .mat-list-item,.rtl-container.pink.small.small .mat-option,.rtl-container.pink.small.small .mat-select,.rtl-container.pink.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.pink.small.small .logo{font-size:2.4rem}.rtl-container.pink.small.small .font-60-percent{font-size:.72rem}.rtl-container.pink.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.pink.small.small .icon-large{font-size:6rem}.rtl-container.pink.small.small .icon-small{font-size:1.8rem!important}.rtl-container.pink.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.pink.small.small .size-triple{font-size:3.6rem}.rtl-container.pink.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.pink.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.small.medium .mat-header-cell{font-weight:700}.rtl-container.pink.small.medium .mat-tree .mat-tree-node,.rtl-container.pink.small.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.pink.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.pink.small.medium .genseed-message,.rtl-container.pink.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.pink.small.medium .page-title-container,.rtl-container.pink.small.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.pink.small.medium .fa-icon-small,.rtl-container.pink.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.pink.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.pink.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.pink.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.pink.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.pink.small.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.pink.small.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.pink.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.pink.small.medium .material-icons{font-size:2.8rem}.rtl-container.pink.small.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.pink.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.pink.small.medium .mat-expansion-panel-header,.rtl-container.pink.small.medium .mat-menu-item,.rtl-container.pink.small.medium .mat-list .mat-list-item,.rtl-container.pink.small.medium .mat-nav-list .mat-list-item,.rtl-container.pink.small.medium .mat-option,.rtl-container.pink.small.medium .mat-select,.rtl-container.pink.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.pink.small.medium .logo{font-size:2.8rem}.rtl-container.pink.small.medium .font-60-percent{font-size:.84rem}.rtl-container.pink.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.pink.small.medium .icon-large{font-size:7rem}.rtl-container.pink.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.pink.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.pink.small.medium .size-triple{font-size:4.2rem}.rtl-container.pink.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.pink.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.small.large .mat-header-cell{font-weight:800}.rtl-container.pink.small.large .mat-tree .mat-tree-node,.rtl-container.pink.small.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.pink.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.pink.small.large .genseed-message,.rtl-container.pink.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.pink.small.large .page-title-container,.rtl-container.pink.small.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.pink.small.large .fa-icon-small,.rtl-container.pink.small.large .top-icon-small,.rtl-container.pink.small.large .modal-info-header{font-size:1.92rem}.rtl-container.pink.small.large .top-toolbar-icon.icon-pinned,.rtl-container.pink.small.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.pink.small.large .top-toolbar-icon .top-toolbar-img,.rtl-container.pink.small.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.pink.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.pink.small.large .material-icons{font-size:4rem}.rtl-container.pink.small.large .mat-expansion-panel-header,.rtl-container.pink.small.large .mat-menu-item,.rtl-container.pink.small.large .mat-list .mat-list-item,.rtl-container.pink.small.large .mat-nav-list .mat-list-item,.rtl-container.pink.small.large .mat-option,.rtl-container.pink.small.large .mat-select,.rtl-container.pink.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.pink.small.large .logo{font-size:3.2rem}.rtl-container.pink.small.large .font-60-percent{font-size:.96rem}.rtl-container.pink.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.pink.small.large .icon-large{font-size:8rem}.rtl-container.pink.small.large .icon-small{font-size:2.4rem!important}.rtl-container.pink.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.pink.small.large .size-triple{font-size:4.8rem}.rtl-container.pink.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.pink.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.small .mat-icon.material-icons:focus{outline:none}.rtl-container.pink.small .mat-flat-button.mat-primary:focus,.rtl-container.pink.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.pink.medium.small .mat-header-cell{font-weight:700}.rtl-container.pink.medium.small .mr-4{margin-right:1rem!important}.rtl-container.pink.medium.small .mat-menu-item,.rtl-container.pink.medium.small .mat-tree .mat-tree-node,.rtl-container.pink.medium.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.pink.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.pink.medium.small .genseed-message,.rtl-container.pink.medium.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.pink.medium.small .fa-icon-small,.rtl-container.pink.medium.small .top-icon-small{font-size:1.44rem}.rtl-container.pink.medium.small .page-title-container,.rtl-container.pink.medium.small .page-sub-title-container{font-size:1.32rem}.rtl-container.pink.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.pink.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.pink.medium.small .top-toolbar-icon .top-toolbar-img,.rtl-container.pink.medium.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.pink.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.pink.medium.small .material-icons,.rtl-container.pink.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.pink.medium.small .mat-expansion-panel-header,.rtl-container.pink.medium.small .mat-menu-item,.rtl-container.pink.medium.small .mat-list .mat-list-item,.rtl-container.pink.medium.small .mat-nav-list .mat-list-item,.rtl-container.pink.medium.small .mat-option,.rtl-container.pink.medium.small .mat-select,.rtl-container.pink.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.pink.medium.small .logo{font-size:2.4rem}.rtl-container.pink.medium.small .font-60-percent{font-size:.72rem}.rtl-container.pink.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.pink.medium.small .icon-large{font-size:6rem}.rtl-container.pink.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.pink.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.pink.medium.small .size-triple{font-size:3.6rem}.rtl-container.pink.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.pink.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.medium.medium .mat-header-cell{font-weight:700}.rtl-container.pink.medium.medium .mat-tree .mat-tree-node,.rtl-container.pink.medium.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.pink.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.pink.medium.medium .genseed-message,.rtl-container.pink.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.pink.medium.medium .page-title-container,.rtl-container.pink.medium.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.pink.medium.medium .fa-icon-small,.rtl-container.pink.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.pink.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.pink.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.pink.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.pink.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.pink.medium.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.pink.medium.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.pink.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.pink.medium.medium .material-icons{font-size:2.8rem}.rtl-container.pink.medium.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.pink.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.pink.medium.medium .mat-expansion-panel-header,.rtl-container.pink.medium.medium .mat-menu-item,.rtl-container.pink.medium.medium .mat-list .mat-list-item,.rtl-container.pink.medium.medium .mat-nav-list .mat-list-item,.rtl-container.pink.medium.medium .mat-option,.rtl-container.pink.medium.medium .mat-select,.rtl-container.pink.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.pink.medium.medium .logo{font-size:2.8rem}.rtl-container.pink.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.pink.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.pink.medium.medium .icon-large{font-size:7rem}.rtl-container.pink.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.pink.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.pink.medium.medium .size-triple{font-size:4.2rem}.rtl-container.pink.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.pink.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.medium.large .mat-header-cell{font-weight:800}.rtl-container.pink.medium.large .mat-tree .mat-tree-node,.rtl-container.pink.medium.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.pink.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.pink.medium.large .genseed-message,.rtl-container.pink.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.pink.medium.large .page-title-container,.rtl-container.pink.medium.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.pink.medium.large .fa-icon-small,.rtl-container.pink.medium.large .top-icon-small,.rtl-container.pink.medium.large .modal-info-header{font-size:1.92rem}.rtl-container.pink.medium.large .top-toolbar-icon.icon-pinned,.rtl-container.pink.medium.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.pink.medium.large .top-toolbar-icon .top-toolbar-img,.rtl-container.pink.medium.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.pink.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.pink.medium.large .material-icons{font-size:4rem}.rtl-container.pink.medium.large .mat-expansion-panel-header,.rtl-container.pink.medium.large .mat-menu-item,.rtl-container.pink.medium.large .mat-list .mat-list-item,.rtl-container.pink.medium.large .mat-nav-list .mat-list-item,.rtl-container.pink.medium.large .mat-option,.rtl-container.pink.medium.large .mat-select,.rtl-container.pink.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.pink.medium.large .logo{font-size:3.2rem}.rtl-container.pink.medium.large .font-60-percent{font-size:.96rem}.rtl-container.pink.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.pink.medium.large .icon-large{font-size:8rem}.rtl-container.pink.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.pink.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.pink.medium.large .size-triple{font-size:4.8rem}.rtl-container.pink.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.pink.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.pink.medium .mat-flat-button.mat-primary:focus,.rtl-container.pink.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.pink.large.small .mat-header-cell{font-weight:700}.rtl-container.pink.large.small .mr-4{margin-right:1rem!important}.rtl-container.pink.large.small .mat-menu-item,.rtl-container.pink.large.small .mat-tree .mat-tree-node,.rtl-container.pink.large.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.pink.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.pink.large.small .genseed-message,.rtl-container.pink.large.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.pink.large.small .fa-icon-small,.rtl-container.pink.large.small .top-icon-small{font-size:1.44rem}.rtl-container.pink.large.small .page-title-container,.rtl-container.pink.large.small .page-sub-title-container{font-size:1.32rem}.rtl-container.pink.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.pink.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.pink.large.small .top-toolbar-icon .top-toolbar-img,.rtl-container.pink.large.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.pink.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.pink.large.small .material-icons,.rtl-container.pink.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.pink.large.small .mat-expansion-panel-header,.rtl-container.pink.large.small .mat-menu-item,.rtl-container.pink.large.small .mat-list .mat-list-item,.rtl-container.pink.large.small .mat-nav-list .mat-list-item,.rtl-container.pink.large.small .mat-option,.rtl-container.pink.large.small .mat-select,.rtl-container.pink.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.pink.large.small .logo{font-size:2.4rem}.rtl-container.pink.large.small .font-60-percent{font-size:.72rem}.rtl-container.pink.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.pink.large.small .icon-large{font-size:6rem}.rtl-container.pink.large.small .icon-small{font-size:1.8rem!important}.rtl-container.pink.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.pink.large.small .size-triple{font-size:3.6rem}.rtl-container.pink.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.pink.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.large.medium .mat-header-cell{font-weight:700}.rtl-container.pink.large.medium .mat-tree .mat-tree-node,.rtl-container.pink.large.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.pink.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.pink.large.medium .genseed-message,.rtl-container.pink.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.pink.large.medium .page-title-container,.rtl-container.pink.large.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.pink.large.medium .fa-icon-small,.rtl-container.pink.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.pink.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.pink.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.pink.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.pink.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.pink.large.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.pink.large.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.pink.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.pink.large.medium .material-icons{font-size:2.8rem}.rtl-container.pink.large.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.pink.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.pink.large.medium .mat-expansion-panel-header,.rtl-container.pink.large.medium .mat-menu-item,.rtl-container.pink.large.medium .mat-list .mat-list-item,.rtl-container.pink.large.medium .mat-nav-list .mat-list-item,.rtl-container.pink.large.medium .mat-option,.rtl-container.pink.large.medium .mat-select,.rtl-container.pink.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.pink.large.medium .logo{font-size:2.8rem}.rtl-container.pink.large.medium .font-60-percent{font-size:.84rem}.rtl-container.pink.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.pink.large.medium .icon-large{font-size:7rem}.rtl-container.pink.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.pink.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.pink.large.medium .size-triple{font-size:4.2rem}.rtl-container.pink.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.pink.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.large.large .mat-header-cell{font-weight:800}.rtl-container.pink.large.large .mat-tree .mat-tree-node,.rtl-container.pink.large.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.pink.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.pink.large.large .genseed-message,.rtl-container.pink.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.pink.large.large .page-title-container,.rtl-container.pink.large.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.pink.large.large .fa-icon-small,.rtl-container.pink.large.large .top-icon-small,.rtl-container.pink.large.large .modal-info-header{font-size:1.92rem}.rtl-container.pink.large.large .top-toolbar-icon.icon-pinned,.rtl-container.pink.large.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.pink.large.large .top-toolbar-icon .top-toolbar-img,.rtl-container.pink.large.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.pink.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.pink.large.large .material-icons{font-size:4rem}.rtl-container.pink.large.large .mat-expansion-panel-header,.rtl-container.pink.large.large .mat-menu-item,.rtl-container.pink.large.large .mat-list .mat-list-item,.rtl-container.pink.large.large .mat-nav-list .mat-list-item,.rtl-container.pink.large.large .mat-option,.rtl-container.pink.large.large .mat-select,.rtl-container.pink.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.pink.large.large .logo{font-size:3.2rem}.rtl-container.pink.large.large .font-60-percent{font-size:.96rem}.rtl-container.pink.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.pink.large.large .icon-large{font-size:8rem}.rtl-container.pink.large.large .icon-small{font-size:2.4rem!important}.rtl-container.pink.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.pink.large.large .size-triple{font-size:4.8rem}.rtl-container.pink.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.pink.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.pink.large .mat-icon.material-icons:focus{outline:none}.rtl-container.pink.large .mat-flat-button.mat-primary:focus,.rtl-container.pink.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.pink.day .mat-ripple-element{background-color:#0000001a}.rtl-container.pink.day .mat-option{color:#000000de}.rtl-container.pink.day .mat-option:hover:not(.mat-option-disabled),.rtl-container.pink.day .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.pink.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.pink.day .mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.rtl-container.pink.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.pink.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#e91e63}.rtl-container.pink.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.pink.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.pink.day .mat-optgroup-label{color:#0000008a}.rtl-container.pink.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.pink.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.pink.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.pink.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.pink.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.pink.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#e91e63}.rtl-container.pink.day .mat-pseudo-checkbox-checked,.rtl-container.pink.day .mat-pseudo-checkbox-indeterminate,.rtl-container.pink.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.pink.day .mat-accent .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.pink.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.pink.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.pink.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.pink.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.pink.day .mat-app-background,.rtl-container.pink.day.mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.pink.day .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.pink.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.pink.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.pink.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.pink.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.pink.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.pink.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.pink.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.pink.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.pink.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.pink.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.pink.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.pink.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.pink.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.pink.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.pink.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.pink.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.pink.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.pink.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.pink.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.pink.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.pink.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.pink.day .mat-autocomplete-panel{background:white;color:#000000de}.rtl-container.pink.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:white}.rtl-container.pink.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.pink.day .mat-badge{position:relative}.rtl-container.pink.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.pink.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.pink.day .ng-animate-disabled .mat-badge-content,.rtl-container.pink.day .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.pink.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.pink.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.pink.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.pink.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.pink.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.pink.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.pink.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.pink.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.pink.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.pink.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.pink.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.pink.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.pink.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.pink.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.pink.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.pink.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.pink.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.pink.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.pink.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.pink.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.pink.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.pink.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.pink.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.pink.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.pink.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.pink.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.pink.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.pink.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.pink.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.pink.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.pink.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.pink.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.pink.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.pink.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.pink.day .mat-badge-content{color:#fff;background:#e91e63}.cdk-high-contrast-active .rtl-container.pink.day .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.pink.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.pink.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.pink.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.pink.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:white;color:#000000de}.rtl-container.pink.day .mat-button,.rtl-container.pink.day .mat-icon-button,.rtl-container.pink.day .mat-stroked-button{color:inherit;background:transparent}.rtl-container.pink.day .mat-button.mat-primary,.rtl-container.pink.day .mat-icon-button.mat-primary,.rtl-container.pink.day .mat-stroked-button.mat-primary{color:#e91e63}.rtl-container.pink.day .mat-button.mat-accent,.rtl-container.pink.day .mat-icon-button.mat-accent,.rtl-container.pink.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.pink.day .mat-button.mat-warn,.rtl-container.pink.day .mat-icon-button.mat-warn,.rtl-container.pink.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.pink.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.pink.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.pink.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.pink.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#e91e63}.rtl-container.pink.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.pink.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.pink.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.pink.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.pink.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.pink.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.pink.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.pink.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.pink.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.pink.day .mat-button .mat-ripple-element,.rtl-container.pink.day .mat-icon-button .mat-ripple-element,.rtl-container.pink.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.pink.day .mat-button-focus-overlay{background:black}.rtl-container.pink.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.pink.day .mat-flat-button,.rtl-container.pink.day .mat-raised-button,.rtl-container.pink.day .mat-fab,.rtl-container.pink.day .mat-mini-fab{color:#000000de;background-color:#fff}.rtl-container.pink.day .mat-flat-button.mat-primary,.rtl-container.pink.day .mat-raised-button.mat-primary,.rtl-container.pink.day .mat-fab.mat-primary,.rtl-container.pink.day .mat-mini-fab.mat-primary,.rtl-container.pink.day .mat-flat-button.mat-accent,.rtl-container.pink.day .mat-raised-button.mat-accent,.rtl-container.pink.day .mat-fab.mat-accent,.rtl-container.pink.day .mat-mini-fab.mat-accent,.rtl-container.pink.day .mat-flat-button.mat-warn,.rtl-container.pink.day .mat-raised-button.mat-warn,.rtl-container.pink.day .mat-fab.mat-warn,.rtl-container.pink.day .mat-mini-fab.mat-warn{color:#fff}.rtl-container.pink.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.pink.day .mat-flat-button.mat-primary,.rtl-container.pink.day .mat-raised-button.mat-primary,.rtl-container.pink.day .mat-fab.mat-primary,.rtl-container.pink.day .mat-mini-fab.mat-primary{background-color:#e91e63}.rtl-container.pink.day .mat-flat-button.mat-accent,.rtl-container.pink.day .mat-raised-button.mat-accent,.rtl-container.pink.day .mat-fab.mat-accent,.rtl-container.pink.day .mat-mini-fab.mat-accent{background-color:#424242}.rtl-container.pink.day .mat-flat-button.mat-warn,.rtl-container.pink.day .mat-raised-button.mat-warn,.rtl-container.pink.day .mat-fab.mat-warn,.rtl-container.pink.day .mat-mini-fab.mat-warn{background-color:#b00020}.rtl-container.pink.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.pink.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.rtl-container.pink.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.pink.day .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.pink.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.pink.day .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.day .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.pink.day .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.pink.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.pink.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.pink.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.pink.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.pink.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.pink.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.day .mat-button-toggle-standalone,.rtl-container.pink.day .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.pink.day .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.pink.day .mat-button-toggle{color:#00000061}.rtl-container.pink.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.pink.day .mat-button-toggle-appearance-standard{color:#000000de;background:white}.rtl-container.pink.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.pink.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,.12)}.rtl-container.pink.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.pink.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,.12)}.rtl-container.pink.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.pink.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.pink.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.pink.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:white}.rtl-container.pink.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.pink.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.pink.day .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(0,0,0,.12)}.rtl-container.pink.day .mat-card{background:white;color:#000000de}.rtl-container.pink.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.pink.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.day .mat-card-subtitle{color:#0000008a}.rtl-container.pink.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.pink.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.pink.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.pink.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.pink.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.pink.day .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#e91e63}.rtl-container.pink.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.pink.day .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.pink.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.pink.day .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.pink.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.pink.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.pink.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.pink.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.pink.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.pink.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.pink.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#e91e63}.rtl-container.pink.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.pink.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.pink.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.pink.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.pink.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.pink.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.pink.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip:after{background:black}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#e91e63;color:#fff}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.day .mat-table{background:white}.rtl-container.pink.day .mat-table thead,.rtl-container.pink.day .mat-table tbody,.rtl-container.pink.day .mat-table tfoot,.rtl-container.pink.day mat-header-row,.rtl-container.pink.day mat-row,.rtl-container.pink.day mat-footer-row,.rtl-container.pink.day [mat-header-row],.rtl-container.pink.day [mat-row],.rtl-container.pink.day [mat-footer-row],.rtl-container.pink.day .mat-table-sticky{background:inherit}.rtl-container.pink.day mat-row,.rtl-container.pink.day mat-header-row,.rtl-container.pink.day mat-footer-row,.rtl-container.pink.day th.mat-header-cell,.rtl-container.pink.day td.mat-cell,.rtl-container.pink.day td.mat-footer-cell{border-bottom-color:#0000001f}.rtl-container.pink.day .mat-header-cell{color:#0000008a}.rtl-container.pink.day .mat-cell,.rtl-container.pink.day .mat-footer-cell{color:#000000de}.rtl-container.pink.day .mat-calendar-arrow{fill:#0000008a}.rtl-container.pink.day .mat-datepicker-toggle,.rtl-container.pink.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.pink.day .mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.rtl-container.pink.day .mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.rtl-container.pink.day .mat-calendar-table-header,.rtl-container.pink.day .mat-calendar-body-label{color:#0000008a}.rtl-container.pink.day .mat-calendar-body-cell-content,.rtl-container.pink.day .mat-date-range-input-separator{color:#000000de;border-color:transparent}.rtl-container.pink.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.rtl-container.pink.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.pink.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.pink.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.pink.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.pink.day .mat-calendar-body-in-range:before{background:rgba(233,30,99,.2)}.rtl-container.pink.day .mat-calendar-body-comparison-identical,.rtl-container.pink.day .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.pink.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(233,30,99,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(233,30,99,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.pink.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.pink.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.day .mat-calendar-body-selected{background-color:#e91e63;color:#fff}.rtl-container.pink.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#e91e6366}.rtl-container.pink.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#e91e634d}@media (hover: hover){.rtl-container.pink.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#e91e634d}}.rtl-container.pink.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(66,66,66,.2)}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}@media (hover: hover){.rtl-container.pink.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(176,0,32,.2)}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}@media (hover: hover){.rtl-container.pink.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}}.rtl-container.pink.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.pink.day .mat-datepicker-toggle-active{color:#e91e63}.rtl-container.pink.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.pink.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.pink.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.pink.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:white;color:#000000de}.rtl-container.pink.day .mat-divider{border-top-color:#0000001f}.rtl-container.pink.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.pink.day .mat-expansion-panel{background:white;color:#000000de}.rtl-container.pink.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.day .mat-action-row{border-top-color:#0000001f}.rtl-container.pink.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.pink.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.pink.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.pink.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:white}}.rtl-container.pink.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.pink.day .mat-expansion-panel-header-description,.rtl-container.pink.day .mat-expansion-indicator:after{color:#0000008a}.rtl-container.pink.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.pink.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.pink.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.pink.day .mat-form-field-label,.rtl-container.pink.day .mat-hint{color:#0009}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-label{color:#e91e63}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.pink.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.pink.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#e91e63}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.pink.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#e91e63}.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#b00020}.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.pink.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.pink.day .mat-error{color:#b00020}.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.pink.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.pink.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.pink.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.pink.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.pink.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.pink.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.pink.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.pink.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.pink.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.pink.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#e91e63}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.pink.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.pink.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.pink.day .mat-icon.mat-primary{color:#e91e63}.rtl-container.pink.day .mat-icon.mat-accent{color:#424242}.rtl-container.pink.day .mat-icon.mat-warn{color:#b00020}.rtl-container.pink.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.pink.day .mat-input-element:disabled,.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.rtl-container.pink.day .mat-input-element{caret-color:#e91e63}.rtl-container.pink.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.pink.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.pink.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.pink.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.pink.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.pink.day .mat-form-field.mat-warn .mat-input-element,.rtl-container.pink.day .mat-form-field-invalid .mat-input-element{caret-color:#b00020}.rtl-container.pink.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.pink.day .mat-list-base .mat-list-item,.rtl-container.pink.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.pink.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.pink.day .mat-list-item-disabled{background-color:#eee}.rtl-container.pink.day .mat-list-option:hover,.rtl-container.pink.day .mat-list-option:focus,.rtl-container.pink.day .mat-nav-list .mat-list-item:hover,.rtl-container.pink.day .mat-nav-list .mat-list-item:focus,.rtl-container.pink.day .mat-action-list .mat-list-item:hover,.rtl-container.pink.day .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.pink.day .mat-list-single-selected-option,.rtl-container.pink.day .mat-list-single-selected-option:hover,.rtl-container.pink.day .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.pink.day .mat-menu-panel{background:white}.rtl-container.pink.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.day .mat-menu-item{background:transparent;color:#000000de}.rtl-container.pink.day .mat-menu-item[disabled],.rtl-container.pink.day .mat-menu-item[disabled] .mat-menu-submenu-icon,.rtl-container.pink.day .mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.rtl-container.pink.day .mat-menu-item .mat-icon-no-color,.rtl-container.pink.day .mat-menu-submenu-icon{color:#0000008a}.rtl-container.pink.day .mat-menu-item:hover:not([disabled]),.rtl-container.pink.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.pink.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.pink.day .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.pink.day .mat-paginator{background:white}.rtl-container.pink.day .mat-paginator,.rtl-container.pink.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.pink.day .mat-paginator-decrement,.rtl-container.pink.day .mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.rtl-container.pink.day .mat-paginator-first,.rtl-container.pink.day .mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.rtl-container.pink.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.pink.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.pink.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.pink.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.pink.day .mat-progress-bar-background{fill:#f6c3d4}.rtl-container.pink.day .mat-progress-bar-buffer{background-color:#f6c3d4}.rtl-container.pink.day .mat-progress-bar-fill:after{background-color:#e91e63}.rtl-container.pink.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.pink.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.pink.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.pink.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.pink.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.pink.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.pink.day .mat-progress-spinner circle,.rtl-container.pink.day .mat-spinner circle{stroke:#e91e63}.rtl-container.pink.day .mat-progress-spinner.mat-accent circle,.rtl-container.pink.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.pink.day .mat-progress-spinner.mat-warn circle,.rtl-container.pink.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.pink.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.pink.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#e91e63}.rtl-container.pink.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.pink.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#e91e63}.rtl-container.pink.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.pink.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.pink.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.pink.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.pink.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.pink.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.pink.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.pink.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.pink.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.rtl-container.pink.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.rtl-container.pink.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.pink.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.pink.day .mat-select-value{color:#000000de}.rtl-container.pink.day .mat-select-placeholder{color:#0000006b}.rtl-container.pink.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.pink.day .mat-select-arrow{color:#0000008a}.rtl-container.pink.day .mat-select-panel{background:white}.rtl-container.pink.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.pink.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#e91e63}.rtl-container.pink.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.pink.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.pink.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.pink.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.pink.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.pink.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.pink.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.pink.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.pink.day .mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.pink.day .mat-drawer-side.mat-drawer-end,.rtl-container.pink.day [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}.rtl-container.pink.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.pink.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.pink.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.pink.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.pink.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.pink.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#e91e63}.rtl-container.pink.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#e91e638a}.rtl-container.pink.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#e91e63}.rtl-container.pink.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.pink.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.pink.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.pink.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.pink.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.rtl-container.pink.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.pink.day .mat-slider-track-background{background-color:#00000042}.rtl-container.pink.day .mat-primary .mat-slider-track-fill,.rtl-container.pink.day .mat-primary .mat-slider-thumb,.rtl-container.pink.day .mat-primary .mat-slider-thumb-label{background-color:#e91e63}.rtl-container.pink.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.day .mat-primary .mat-slider-focus-ring{background-color:#e91e6333}.rtl-container.pink.day .mat-accent .mat-slider-track-fill,.rtl-container.pink.day .mat-accent .mat-slider-thumb,.rtl-container.pink.day .mat-accent .mat-slider-thumb-label{background-color:#424242}.rtl-container.pink.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.pink.day .mat-warn .mat-slider-track-fill,.rtl-container.pink.day .mat-warn .mat-slider-thumb,.rtl-container.pink.day .mat-warn .mat-slider-thumb-label{background-color:#b00020}.rtl-container.pink.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.pink.day .mat-slider:hover .mat-slider-track-background,.rtl-container.pink.day .mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.rtl-container.pink.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.pink.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.pink.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.pink.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.pink.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.pink.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.pink.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.pink.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.pink.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.pink.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.pink.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.pink.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.pink.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.pink.day .mat-step-header.cdk-keyboard-focused,.rtl-container.pink.day .mat-step-header.cdk-program-focused,.rtl-container.pink.day .mat-step-header:hover:not([aria-disabled]),.rtl-container.pink.day .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.pink.day .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.pink.day .mat-step-header:hover{background:none}}.rtl-container.pink.day .mat-step-header .mat-step-label,.rtl-container.pink.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.pink.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.pink.day .mat-step-header .mat-step-icon-selected,.rtl-container.pink.day .mat-step-header .mat-step-icon-state-done,.rtl-container.pink.day .mat-step-header .mat-step-icon-state-edit{background-color:#e91e63;color:#fff}.rtl-container.pink.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.pink.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.pink.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.pink.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.pink.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.pink.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.pink.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.pink.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.pink.day .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#b00020}.rtl-container.pink.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.pink.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.pink.day .mat-stepper-horizontal,.rtl-container.pink.day .mat-stepper-vertical{background-color:#fff}.rtl-container.pink.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.pink.day .mat-horizontal-stepper-header:before,.rtl-container.pink.day .mat-horizontal-stepper-header:after,.rtl-container.pink.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.pink.day .mat-sort-header-arrow{color:#757575}.rtl-container.pink.day .mat-tab-nav-bar,.rtl-container.pink.day .mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.pink.day .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.pink.day .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.rtl-container.pink.day .mat-tab-label,.rtl-container.pink.day .mat-tab-link{color:#000000de}.rtl-container.pink.day .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.pink.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.pink.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.pink.day .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.pink.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.pink.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#f062924d}.rtl-container.pink.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#e91e63}.rtl-container.pink.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.pink.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.pink.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.pink.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.pink.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.pink.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#f062924d}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#e91e63}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.pink.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#424242}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.pink.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#b00020}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.pink.day .mat-toolbar{background:whitesmoke;color:#000000de}.rtl-container.pink.day .mat-toolbar.mat-primary{background:#e91e63;color:#fff}.rtl-container.pink.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.pink.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.pink.day .mat-toolbar .mat-form-field-underline,.rtl-container.pink.day .mat-toolbar .mat-form-field-ripple,.rtl-container.pink.day .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.pink.day .mat-toolbar .mat-form-field-label,.rtl-container.pink.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.pink.day .mat-toolbar .mat-select-value,.rtl-container.pink.day .mat-toolbar .mat-select-arrow,.rtl-container.pink.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.pink.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.pink.day .mat-tooltip{background:rgba(97,97,97,.9)}.rtl-container.pink.day .mat-tree{background:white}.rtl-container.pink.day .mat-tree-node,.rtl-container.pink.day .mat-nested-tree-node{color:#000000de}.rtl-container.pink.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.pink.day .mat-simple-snackbar-action{color:#424242}.rtl-container.pink.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.pink.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.pink.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.pink.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.pink.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.pink.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.pink.day .rtl-top-toolbar{border-bottom:1px solid white}.rtl-container.pink.day .bg-primary{background-color:#e91e63;color:#fff}.rtl-container.pink.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#e91e63}.rtl-container.pink.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.pink.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.pink.day .mat-tab-label.mat-tab-label-active{color:#e91e63}.rtl-container.pink.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#e91e63}.rtl-container.pink.day .mat-tab-label .tab-badge .mat-badge-content{background:rgba(0,0,0,.54)}.rtl-container.pink.day .ng-fa-icon,.rtl-container.pink.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.pink.day .mat-form-field-suffix{color:#0000008a}.rtl-container.pink.day .mat-stroked-button.mat-primary{border-color:#e91e63}.rtl-container.pink.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.pink.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.pink.day .selected-color{border-color:#f06292}.rtl-container.pink.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.pink.day .page-title-container,.rtl-container.pink.day .page-sub-title-container{color:#0000008a}.rtl-container.pink.day .page-title-container .page-title-img,.rtl-container.pink.day .page-sub-title-container .page-title-img{color:#00000061}.rtl-container.pink.day .page-title-container .mat-input-element,.rtl-container.pink.day .page-title-container .mat-radio-label-content,.rtl-container.pink.day .page-title-container .theme-name,.rtl-container.pink.day .page-sub-title-container .mat-input-element,.rtl-container.pink.day .page-sub-title-container .mat-radio-label-content,.rtl-container.pink.day .page-sub-title-container .theme-name{color:#000000de}.rtl-container.pink.day .cc-data-block .cc-data-title{color:#e91e63}.rtl-container.pink.day .active-link,.rtl-container.pink.day .active-link .fa-icon-small{color:#e91e63;font-weight:500;cursor:pointer;fill:#e91e63}.rtl-container.pink.day .mat-tree-node:hover,.rtl-container.pink.day .mat-nested-tree-node-parent:hover,.rtl-container.pink.day .mat-select-panel .mat-option:hover,.rtl-container.pink.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover{color:#e91e63;cursor:pointer;background:rgba(0,0,0,.04)}.rtl-container.pink.day .mat-tree-node:hover .ng-fa-icon,.rtl-container.pink.day .mat-tree-node:hover .mat-icon,.rtl-container.pink.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.pink.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.pink.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.pink.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.pink.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.pink.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon{color:#e91e63}.rtl-container.pink.day .mat-tree-node:hover .sidenav-img svg,.rtl-container.pink.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.pink.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.pink.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg{fill:#e91e63}.rtl-container.pink.day .mat-tree-node .sidenav-img,.rtl-container.pink.day .mat-nested-tree-node .sidenav-img,.rtl-container.pink.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.pink.day .page-title-container .page-title-img,.rtl-container.pink.day svg.top-icon-small{fill:#000000de}.rtl-container.pink.day .mat-progress-bar-fill:after{background-color:#880e4f}.rtl-container.pink.day .modal-qr-code-container{background:rgba(0,0,0,.12)}.rtl-container.pink.day .mat-tab-label,.rtl-container.pink.day .mat-tab-link{color:#0000008a}.rtl-container.pink.day .mat-card,.rtl-container.pink.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid rgba(0,0,0,.12)}.rtl-container.pink.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.pink.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.pink.day .dashboard-info-title{color:#e91e63}.rtl-container.pink.day .dashboard-info-value{color:#0000008a}.rtl-container.pink.day .color-primary{color:#e91e63!important}.rtl-container.pink.day .dot-primary{background-color:#e91e63!important}.rtl-container.pink.day .dot-primary-lighter{background-color:#f06292!important}.rtl-container.pink.day .mat-expansion-panel.flat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.pink.day .mat-tooltip{font-size:120%}.rtl-container.pink.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.pink.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.pink.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.pink.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.pink.day svg .fill-color-1{fill:#fff}.rtl-container.pink.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.pink.day svg .fill-color-3{fill:#f2f2f2}.rtl-container.pink.day svg .fill-color-4{fill:#f2f2f2}.rtl-container.pink.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.pink.day svg .fill-color-6{fill:#fff}.rtl-container.pink.day svg .fill-color-7{fill:#cbcbcb}.rtl-container.pink.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.pink.day svg .fill-color-9{fill:#fff}.rtl-container.pink.day svg .fill-color-10{fill:#e6e6e6}.rtl-container.pink.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.pink.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.pink.day svg .fill-color-13{fill:#4a4a4a}.rtl-container.pink.day svg .fill-color-14{fill:#4a4a4a}.rtl-container.pink.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.pink.day svg .fill-color-16{fill:#404040}.rtl-container.pink.day svg .fill-color-17{fill:#404040}.rtl-container.pink.day svg .fill-color-18{fill:#000}.rtl-container.pink.day svg .fill-color-19{fill:#4a4a4a}.rtl-container.pink.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.pink.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.pink.day svg .fill-color-22{fill:#cbcbcb}.rtl-container.pink.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.pink.day svg .fill-color-24{fill:#000}.rtl-container.pink.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.pink.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.pink.day svg .fill-color-27{fill:#000}.rtl-container.pink.day svg .fill-color-28{fill:#313131}.rtl-container.pink.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.pink.day svg .fill-color-30{fill:#fff}.rtl-container.pink.day svg .fill-color-31{fill:#e91e63}.rtl-container.pink.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.pink.day svg .fill-color-primary{fill:#e91e63}.rtl-container.pink.day svg .fill-color-primary-lighter{fill:#f06292}.rtl-container.pink.day svg .fill-color-primary-darker{fill:#e91e63}.rtl-container.pink.day .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.pink.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.pink.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.pink.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.pink.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.pink.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.pink.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#e91e63}.rtl-container.pink.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.pink.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#880e4f}.rtl-container.pink.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.pink.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#f48fb1}.rtl-container.pink.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.pink.day .mat-progress-bar-buffer{background-color:#f8bbd0}.rtl-container.pink.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.pink.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.pink.day .foreground.mat-progress-spinner circle,.rtl-container.pink.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.pink.day .mat-toolbar-row,.rtl-container.pink.day .mat-toolbar-single-row{height:5rem}.rtl-container.pink.day .lnd-info{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.pink.day a{color:#e91e63}.rtl-container.pink.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.pink.day .h-active-link{border-bottom:2px solid white}.rtl-container.pink.day .mat-icon-36{color:#0000008a}.rtl-container.pink.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.pink.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.pink.day .genseed-message{width:10%;color:#e91e63}.rtl-container.pink.day .material-icons.primary{color:#e91e63}.rtl-container.pink.day .material-icons.accent{color:#424242}.rtl-container.pink.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.pink.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.pink.day .row-disabled{background-color:gray}.rtl-container.pink.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.pink.day .mat-menu-panel{min-width:6.4rem}.rtl-container.pink.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.pink.day .horizontal-button:hover{background:#f06292;color:#424242}.rtl-container.pink.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#e91e63}.rtl-container.pink.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.pink.day .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.pink.day .mat-button,.rtl-container.pink.day .mat-icon-button,.rtl-container.pink.day .mat-stroked-button,.rtl-container.pink.day .mat-flat-button{border-radius:2px}.rtl-container.pink.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.pink.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.pink.day .mat-cell,.rtl-container.pink.day .mat-header-cell,.rtl-container.pink.day .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#0000001f}.rtl-container.pink.day table.mat-table{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.pink.day table.mat-table thead tr th{color:#000}.rtl-container.pink.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.pink.day .bordered-box{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.pink.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.pink.day .mat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.pink.day .more-button{color:#00000061}.rtl-container.pink.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.pink.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.pink.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.pink.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.pink.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.pink.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.pink.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.pink.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.pink.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.pink.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.pink.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.pink.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.pink.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.pink.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.pink.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.pink.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.pink.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.pink.day .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#f48fb1!important}.rtl-container.pink.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#d81b60!important}.rtl-container.pink.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.pink.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.pink.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.pink.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.pink.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid rgba(0,0,0,.54)}.rtl-container.pink.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.pink.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.pink.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.pink.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.pink.day .color-warn{color:#b00020}.rtl-container.pink.day .fill-warn{fill:#b00020}.rtl-container.pink.day .alert{border:1px solid rgba(0,0,0,.54);color:#0000008a;background-color:#0000000a}.rtl-container.pink.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.pink.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.pink.day .alert.alert-info a{color:#004085}.rtl-container.pink.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.pink.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.pink.day .alert.alert-warn a{color:#856404}.rtl-container.pink.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.pink.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.pink.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.pink.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.pink.day .help-expansion .mat-expansion-panel-header,.rtl-container.pink.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.pink.day .help-expansion .mat-expansion-indicator:after,.rtl-container.pink.day .help-expansion .mat-expansion-panel-content,.rtl-container.pink.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.pink.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.pink.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.pink.day .failed-status{color:#b00020}.rtl-container.pink.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.pink.day .svg-fill-primary{fill:#e91e63}.rtl-container.pink.day .svg-fill-primary-lighter{fill:#f06292}.rtl-container.pink.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.pink.day ngx-charts-bar-vertical text,.rtl-container.pink.day ngx-charts-bar-vertical-2d text{fill:#000000de}.rtl-container.pink.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.pink.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.pink.day .mat-paginator-container{padding:0}.rtl-container.pink.day .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.pink.day .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.pink.day .invoice-animation-div .particles-circle{position:absolute;background-color:#e91e63;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #e91e63;background-color:transparent}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.pink.day .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.pink.day .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.pink.day .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.pink.day .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.pink.day .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.pink.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-option{color:#fff}.rtl-container.pink.night .mat-option:hover:not(.mat-option-disabled),.rtl-container.pink.night .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.pink.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.pink.night .mat-option.mat-active{background:rgba(0,0,0,.04);color:#fff}.rtl-container.pink.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#e91e63}.rtl-container.pink.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.pink.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.pink.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.pink.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.pink.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.pink.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#e91e63}.rtl-container.pink.night .mat-pseudo-checkbox-checked,.rtl-container.pink.night .mat-pseudo-checkbox-indeterminate,.rtl-container.pink.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.pink.night .mat-accent .mat-pseudo-checkbox-indeterminate{background:#eeeeee}.rtl-container.pink.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.pink.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.pink.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.pink.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.pink.night .mat-app-background,.rtl-container.pink.night.mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.pink.night .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.pink.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.pink.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.pink.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.pink.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.pink.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.pink.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.pink.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.pink.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.pink.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.pink.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.pink.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.pink.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.pink.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.pink.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.pink.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.pink.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.pink.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.pink.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.pink.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.pink.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.pink.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.pink.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.pink.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.pink.night .mat-badge{position:relative}.rtl-container.pink.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.pink.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.pink.night .ng-animate-disabled .mat-badge-content,.rtl-container.pink.night .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.pink.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.pink.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.pink.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.pink.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.pink.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.pink.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.pink.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.pink.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.pink.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.pink.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.pink.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.pink.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.pink.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.pink.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.pink.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.pink.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.pink.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.pink.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.pink.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.pink.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.pink.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.pink.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.pink.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.pink.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.pink.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.pink.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.pink.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.pink.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.pink.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.pink.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.pink.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.pink.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.pink.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.pink.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.pink.night .mat-badge-content{color:#fff;background:#e91e63}.cdk-high-contrast-active .rtl-container.pink.night .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.pink.night .mat-badge-accent .mat-badge-content{background:#eeeeee;color:#000}.rtl-container.pink.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.pink.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.pink.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.pink.night .mat-button,.rtl-container.pink.night .mat-icon-button,.rtl-container.pink.night .mat-stroked-button{color:inherit;background:transparent}.rtl-container.pink.night .mat-button.mat-primary,.rtl-container.pink.night .mat-icon-button.mat-primary,.rtl-container.pink.night .mat-stroked-button.mat-primary{color:#e91e63}.rtl-container.pink.night .mat-button.mat-accent,.rtl-container.pink.night .mat-icon-button.mat-accent,.rtl-container.pink.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.pink.night .mat-button.mat-warn,.rtl-container.pink.night .mat-icon-button.mat-warn,.rtl-container.pink.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.pink.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.pink.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.pink.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.pink.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#e91e63}.rtl-container.pink.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.pink.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.pink.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.pink.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.pink.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.pink.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.pink.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.pink.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.pink.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.pink.night .mat-button .mat-ripple-element,.rtl-container.pink.night .mat-icon-button .mat-ripple-element,.rtl-container.pink.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.pink.night .mat-button-focus-overlay{background:white}.rtl-container.pink.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.pink.night .mat-flat-button,.rtl-container.pink.night .mat-raised-button,.rtl-container.pink.night .mat-fab,.rtl-container.pink.night .mat-mini-fab{color:#fff;background-color:#363636}.rtl-container.pink.night .mat-flat-button.mat-primary,.rtl-container.pink.night .mat-raised-button.mat-primary,.rtl-container.pink.night .mat-fab.mat-primary,.rtl-container.pink.night .mat-mini-fab.mat-primary{color:#fff}.rtl-container.pink.night .mat-flat-button.mat-accent,.rtl-container.pink.night .mat-raised-button.mat-accent,.rtl-container.pink.night .mat-fab.mat-accent,.rtl-container.pink.night .mat-mini-fab.mat-accent{color:#000}.rtl-container.pink.night .mat-flat-button.mat-warn,.rtl-container.pink.night .mat-raised-button.mat-warn,.rtl-container.pink.night .mat-fab.mat-warn,.rtl-container.pink.night .mat-mini-fab.mat-warn{color:#fff}.rtl-container.pink.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.pink.night .mat-flat-button.mat-primary,.rtl-container.pink.night .mat-raised-button.mat-primary,.rtl-container.pink.night .mat-fab.mat-primary,.rtl-container.pink.night .mat-mini-fab.mat-primary{background-color:#e91e63}.rtl-container.pink.night .mat-flat-button.mat-accent,.rtl-container.pink.night .mat-raised-button.mat-accent,.rtl-container.pink.night .mat-fab.mat-accent,.rtl-container.pink.night .mat-mini-fab.mat-accent{background-color:#eee}.rtl-container.pink.night .mat-flat-button.mat-warn,.rtl-container.pink.night .mat-raised-button.mat-warn,.rtl-container.pink.night .mat-fab.mat-warn,.rtl-container.pink.night .mat-mini-fab.mat-warn{background-color:#ff343b}.rtl-container.pink.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.pink.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#404040}.rtl-container.pink.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.pink.night .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.pink.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.pink.night .mat-mini-fab.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.pink.night .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.pink.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.pink.night .mat-mini-fab.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.pink.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.pink.night .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.pink.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.pink.night .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.pink.night .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.pink.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.pink.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.pink.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.pink.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.pink.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.pink.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.night .mat-button-toggle-standalone,.rtl-container.pink.night .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.pink.night .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.pink.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.pink.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(255,255,255,.3)}.rtl-container.pink.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.pink.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(255,255,255,.3)}.rtl-container.pink.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.pink.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.pink.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.pink.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.pink.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.pink.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.pink.night .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(255,255,255,.3)}.rtl-container.pink.night .mat-card{background:#202020;color:#fff}.rtl-container.pink.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.pink.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.pink.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.pink.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.pink.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.pink.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.pink.night .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#e91e63}.rtl-container.pink.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.pink.night .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.pink.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.pink.night .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.pink.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.pink.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.pink.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.pink.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.pink.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.pink.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#e91e63}.rtl-container.pink.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.pink.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eeeeee}.rtl-container.pink.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.pink.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.pink.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.pink.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.pink.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip:after{background:white}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#e91e63;color:#fff}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.pink.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.pink.night .mat-table{background:#202020}.rtl-container.pink.night .mat-table thead,.rtl-container.pink.night .mat-table tbody,.rtl-container.pink.night .mat-table tfoot,.rtl-container.pink.night mat-header-row,.rtl-container.pink.night mat-row,.rtl-container.pink.night mat-footer-row,.rtl-container.pink.night [mat-header-row],.rtl-container.pink.night [mat-row],.rtl-container.pink.night [mat-footer-row],.rtl-container.pink.night .mat-table-sticky{background:inherit}.rtl-container.pink.night mat-row,.rtl-container.pink.night mat-header-row,.rtl-container.pink.night mat-footer-row,.rtl-container.pink.night th.mat-header-cell,.rtl-container.pink.night td.mat-cell,.rtl-container.pink.night td.mat-footer-cell{border-bottom-color:#ffffff4d}.rtl-container.pink.night .mat-cell,.rtl-container.pink.night .mat-footer-cell{color:#fff}.rtl-container.pink.night .mat-calendar-arrow{fill:#fff}.rtl-container.pink.night .mat-datepicker-toggle,.rtl-container.pink.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.pink.night .mat-datepicker-content .mat-calendar-previous-button{color:#fff}.rtl-container.pink.night .mat-calendar-table-header-divider:after{background:rgba(255,255,255,.3)}.rtl-container.pink.night .mat-calendar-body-cell-content,.rtl-container.pink.night .mat-date-range-input-separator{color:#fff;border-color:transparent}.rtl-container.pink.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.pink.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.pink.night .mat-calendar-body-in-range:before{background:rgba(233,30,99,.2)}.rtl-container.pink.night .mat-calendar-body-comparison-identical,.rtl-container.pink.night .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.pink.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(233,30,99,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(233,30,99,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.pink.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.pink.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.night .mat-calendar-body-selected{background-color:#e91e63;color:#fff}.rtl-container.pink.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#e91e6366}.rtl-container.pink.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#e91e634d}@media (hover: hover){.rtl-container.pink.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#e91e634d}}.rtl-container.pink.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#202020;color:#fff}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(238,238,238,.2)}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.pink.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}@media (hover: hover){.rtl-container.pink.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(255,52,59,.2)}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.pink.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.pink.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.pink.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.pink.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}@media (hover: hover){.rtl-container.pink.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}}.rtl-container.pink.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.pink.night .mat-datepicker-toggle-active{color:#e91e63}.rtl-container.pink.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.pink.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.pink.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.pink.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.pink.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.pink.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.pink.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.pink.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.pink.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.pink.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.pink.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.pink.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.pink.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.pink.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.pink.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.pink.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-label{color:#e91e63}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.pink.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.pink.night .mat-form-field-ripple{background-color:#fff}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#e91e63}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.pink.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.pink.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#e91e63}.rtl-container.pink.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.pink.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#ff343b}.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.pink.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.pink.night .mat-error{color:#ff343b}.rtl-container.pink.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.pink.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.pink.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.pink.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.pink.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.pink.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.pink.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.pink.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.pink.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.pink.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.pink.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#e91e63}.rtl-container.pink.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.pink.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.pink.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.pink.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.pink.night .mat-icon.mat-primary{color:#e91e63}.rtl-container.pink.night .mat-icon.mat-accent{color:#eee}.rtl-container.pink.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.pink.night .mat-input-element{caret-color:#e91e63}.rtl-container.pink.night .mat-input-element:not(.mat-native-select-inline) option{color:#000000de}.rtl-container.pink.night .mat-input-element:not(.mat-native-select-inline) option:disabled{color:#00000061}.rtl-container.pink.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.pink.night .mat-form-field.mat-warn .mat-input-element,.rtl-container.pink.night .mat-form-field-invalid .mat-input-element{caret-color:#ff343b}.rtl-container.pink.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.pink.night .mat-list-base .mat-list-item,.rtl-container.pink.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.pink.night .mat-list-item-disabled{background-color:#444}.rtl-container.pink.night .mat-list-option:hover,.rtl-container.pink.night .mat-list-option:focus,.rtl-container.pink.night .mat-nav-list .mat-list-item:hover,.rtl-container.pink.night .mat-nav-list .mat-list-item:focus,.rtl-container.pink.night .mat-action-list .mat-list-item:hover,.rtl-container.pink.night .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.pink.night .mat-list-single-selected-option,.rtl-container.pink.night .mat-list-single-selected-option:hover,.rtl-container.pink.night .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.pink.night .mat-menu-panel{background:#202020}.rtl-container.pink.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.night .mat-menu-item{background:transparent;color:#fff}.rtl-container.pink.night .mat-menu-item .mat-icon-no-color,.rtl-container.pink.night .mat-menu-submenu-icon{color:#fff}.rtl-container.pink.night .mat-menu-item:hover:not([disabled]),.rtl-container.pink.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.pink.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.pink.night .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.pink.night .mat-paginator{background:#202020}.rtl-container.pink.night .mat-paginator-decrement,.rtl-container.pink.night .mat-paginator-increment{border-top:2px solid white;border-right:2px solid white}.rtl-container.pink.night .mat-paginator-first,.rtl-container.pink.night .mat-paginator-last{border-top:2px solid white}.rtl-container.pink.night .mat-progress-bar-background{fill:#441123}.rtl-container.pink.night .mat-progress-bar-buffer{background-color:#441123}.rtl-container.pink.night .mat-progress-bar-fill:after{background-color:#e91e63}.rtl-container.pink.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.pink.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.pink.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.pink.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.pink.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.pink.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.pink.night .mat-progress-spinner circle,.rtl-container.pink.night .mat-spinner circle{stroke:#e91e63}.rtl-container.pink.night .mat-progress-spinner.mat-accent circle,.rtl-container.pink.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.pink.night .mat-progress-spinner.mat-warn circle,.rtl-container.pink.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.pink.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#e91e63}.rtl-container.pink.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.pink.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#e91e63}.rtl-container.pink.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.pink.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.pink.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.pink.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.pink.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.pink.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.pink.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.pink.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.pink.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.pink.night .mat-select-value{color:#fff}.rtl-container.pink.night .mat-select-panel{background:#202020}.rtl-container.pink.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.pink.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#e91e63}.rtl-container.pink.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.pink.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.pink.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.pink.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.pink.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.pink.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.pink.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.pink.night .mat-drawer-side{border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.pink.night .mat-drawer-side.mat-drawer-end,.rtl-container.pink.night [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(255,255,255,.3);border-right:none}.rtl-container.pink.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.pink.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.pink.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.pink.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.pink.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.pink.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#e91e63}.rtl-container.pink.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#e91e638a}.rtl-container.pink.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#e91e63}.rtl-container.pink.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.pink.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.pink.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.pink.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.pink.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#bdbdbd}.rtl-container.pink.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.pink.night .mat-primary .mat-slider-track-fill,.rtl-container.pink.night .mat-primary .mat-slider-thumb,.rtl-container.pink.night .mat-primary .mat-slider-thumb-label{background-color:#e91e63}.rtl-container.pink.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.night .mat-primary .mat-slider-focus-ring{background-color:#e91e6333}.rtl-container.pink.night .mat-accent .mat-slider-track-fill,.rtl-container.pink.night .mat-accent .mat-slider-thumb,.rtl-container.pink.night .mat-accent .mat-slider-thumb-label{background-color:#eee}.rtl-container.pink.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.pink.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.pink.night .mat-warn .mat-slider-track-fill,.rtl-container.pink.night .mat-warn .mat-slider-thumb,.rtl-container.pink.night .mat-warn .mat-slider-thumb-label{background-color:#ff343b}.rtl-container.pink.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.pink.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.pink.night .mat-slider:hover .mat-slider-track-background,.rtl-container.pink.night .mat-slider.cdk-focused .mat-slider-track-background{background-color:#fff9}.rtl-container.pink.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.pink.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.pink.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.pink.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.pink.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.pink.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.pink.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.pink.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.pink.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:transparent}.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#fff9}.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.pink.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.pink.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.pink.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.pink.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.pink.night .mat-step-header.cdk-keyboard-focused,.rtl-container.pink.night .mat-step-header.cdk-program-focused,.rtl-container.pink.night .mat-step-header:hover:not([aria-disabled]),.rtl-container.pink.night .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.pink.night .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.pink.night .mat-step-header:hover{background:none}}.rtl-container.pink.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.pink.night .mat-step-header .mat-step-icon-selected,.rtl-container.pink.night .mat-step-header .mat-step-icon-state-done,.rtl-container.pink.night .mat-step-header .mat-step-icon-state-edit{background-color:#e91e63;color:#fff}.rtl-container.pink.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.pink.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.pink.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.pink.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.pink.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.pink.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.pink.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.pink.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.pink.night .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#ff343b}.rtl-container.pink.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.pink.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.pink.night .mat-stepper-horizontal,.rtl-container.pink.night .mat-stepper-vertical{background-color:#202020}.rtl-container.pink.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.pink.night .mat-horizontal-stepper-header:before,.rtl-container.pink.night .mat-horizontal-stepper-header:after,.rtl-container.pink.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.pink.night .mat-tab-nav-bar,.rtl-container.pink.night .mat-tab-header{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.pink.night .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.pink.night .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(255,255,255,.3);border-bottom:none}.rtl-container.pink.night .mat-tab-label,.rtl-container.pink.night .mat-tab-link{color:#fff}.rtl-container.pink.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.pink.night .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.pink.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.pink.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#f062924d}.rtl-container.pink.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#e91e63}.rtl-container.pink.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.pink.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.pink.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.pink.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.pink.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.pink.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#f062924d}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#e91e63}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.pink.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#eee}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#000}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#000;opacity:.4}.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#000;opacity:.12}.rtl-container.pink.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#ff343b}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.pink.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.pink.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.pink.night .mat-toolbar.mat-primary{background:#e91e63;color:#fff}.rtl-container.pink.night .mat-toolbar.mat-accent{background:#eeeeee;color:#000}.rtl-container.pink.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.pink.night .mat-toolbar .mat-form-field-underline,.rtl-container.pink.night .mat-toolbar .mat-form-field-ripple,.rtl-container.pink.night .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.pink.night .mat-toolbar .mat-form-field-label,.rtl-container.pink.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.pink.night .mat-toolbar .mat-select-value,.rtl-container.pink.night .mat-toolbar .mat-select-arrow,.rtl-container.pink.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.pink.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.pink.night .mat-tree{background:#202020}.rtl-container.pink.night .mat-tree-node,.rtl-container.pink.night .mat-nested-tree-node{color:#fff}.rtl-container.pink.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.pink.night .mat-simple-snackbar-action{color:inherit}.rtl-container.pink.night .mat-primary{color:#ff4081}.rtl-container.pink.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.pink.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.pink.night .bg-primary{background-color:#e91e63;color:#fff}.rtl-container.pink.night .mat-tab-label.mat-tab-label-active{color:#ff4081}.rtl-container.pink.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#ff4081}.rtl-container.pink.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.pink.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.pink.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.pink.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.pink.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.pink.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#ff4081}.rtl-container.pink.night .cc-data-block .cc-data-title{color:#ff4081}.rtl-container.pink.night .mat-stroked-button.mat-primary{border-color:#ff4081;color:#ff4081}.rtl-container.pink.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.pink.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.pink.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.pink.night .active-link,.rtl-container.pink.night .active-link .fa-icon-small,.rtl-container.pink.night .mat-select-panel .mat-option.mat-active,.rtl-container.pink.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#ff4081;font-weight:500;cursor:pointer;fill:#ff4081}.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.pink.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#ff4081}.rtl-container.pink.night .mat-tree-node:hover,.rtl-container.pink.night .mat-nested-tree-node-parent:hover,.rtl-container.pink.night .mat-select-panel .mat-option:hover,.rtl-container.pink.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.pink.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled){color:#ff4081;cursor:pointer;background:rgba(255,255,255,.06)}.rtl-container.pink.night .mat-tree-node:hover .ng-fa-icon,.rtl-container.pink.night .mat-tree-node:hover .mat-icon,.rtl-container.pink.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.pink.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.pink.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.pink.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.pink.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.pink.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon{color:#ff4081}.rtl-container.pink.night .mat-tree-node:hover .sidenav-img svg,.rtl-container.pink.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.pink.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.pink.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.pink.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.pink.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg{fill:#ff4081}.rtl-container.pink.night .mat-tree-node .sidenav-img,.rtl-container.pink.night .mat-nested-tree-node .sidenav-img,.rtl-container.pink.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.pink.night .page-title-container .page-title-img,.rtl-container.pink.night svg.top-icon-small{fill:#fff}.rtl-container.pink.night .selected-color{border-color:#f06292}.rtl-container.pink.night .mat-progress-bar-fill:after{background-color:#d81b60}.rtl-container.pink.night .chart-legend .legend-label:hover,.rtl-container.pink.night .chart-legend .legend-label .active .legend-label-text{color:#fff!important}.rtl-container.pink.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.pink.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#ff4081}.rtl-container.pink.night .mat-select-panel{background-color:#262626}.rtl-container.pink.night .mat-tree{background:#262626}.rtl-container.pink.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.pink.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.pink.night .dashboard-info-title{color:#ff4081}.rtl-container.pink.night .dashboard-info-value,.rtl-container.pink.night .dashboard-capacity-header{color:#fff}.rtl-container.pink.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.pink.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.pink.night .color-primary{color:#ff4081!important}.rtl-container.pink.night .dot-primary{background-color:#ff4081!important}.rtl-container.pink.night .dot-primary-lighter{background-color:#e91e63!important}.rtl-container.pink.night .mat-stepper-vertical{background-color:#262626}.rtl-container.pink.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.pink.night svg .boltz-icon-fill{fill:#fff}.rtl-container.pink.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.pink.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.pink.night svg .fill-color-0{fill:#171717}.rtl-container.pink.night svg .fill-color-1{fill:#232323}.rtl-container.pink.night svg .fill-color-2{fill:#222}.rtl-container.pink.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.pink.night svg .fill-color-4{fill:#383838}.rtl-container.pink.night svg .fill-color-5{fill:#555}.rtl-container.pink.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.pink.night svg .fill-color-7{fill:#202020}.rtl-container.pink.night svg .fill-color-8{fill:#242424}.rtl-container.pink.night svg .fill-color-9{fill:#262626}.rtl-container.pink.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.pink.night svg .fill-color-11{fill:#171717}.rtl-container.pink.night svg .fill-color-12{fill:#ccc}.rtl-container.pink.night svg .fill-color-13{fill:#adadad}.rtl-container.pink.night svg .fill-color-14{fill:#ababab}.rtl-container.pink.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.pink.night svg .fill-color-16{fill:#707070}.rtl-container.pink.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.pink.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.pink.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.pink.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.pink.night svg .fill-color-21{fill:#cacaca}.rtl-container.pink.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.pink.night svg .fill-color-23{fill:#777}.rtl-container.pink.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.pink.night svg .fill-color-25{fill:#252525}.rtl-container.pink.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.pink.night svg .fill-color-27{fill:#000}.rtl-container.pink.night svg .fill-color-28{fill:#313131}.rtl-container.pink.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.pink.night svg .fill-color-30{fill:#fff}.rtl-container.pink.night svg .fill-color-31{fill:#e91e63}.rtl-container.pink.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.pink.night svg .fill-color-primary{fill:#e91e63}.rtl-container.pink.night svg .fill-color-primary-lighter{fill:#f06292}.rtl-container.pink.night svg .fill-color-primary-darker{fill:#ff4081}.rtl-container.pink.night .mat-select-value,.rtl-container.pink.night .mat-select-arrow{color:#fff}.rtl-container.pink.night .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.pink.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.pink.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.pink.night .mat-slide-toggle-bar,.rtl-container.pink.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.pink.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.pink.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.pink.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.pink.night .mat-button.mat-primary,.rtl-container.pink.night .mat-icon-button.mat-primary,.rtl-container.pink.night .mat-stroked-button.mat-primary{color:#ff4081}.rtl-container.pink.night tr.alert.alert-warn .mat-cell,.rtl-container.pink.night tr.alert.alert-warn .mat-header-cell,.rtl-container.pink.night tr.alert.alert-warn .mat-footer-cell{color:#856404}.rtl-container.pink.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.pink.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#ff4081}.rtl-container.pink.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.pink.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#ad1457}.rtl-container.pink.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.pink.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#ff4081}.rtl-container.pink.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.pink.night .mat-progress-bar-buffer{background-color:#f8bbd0}.rtl-container.pink.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.pink.night .foreground-secondary-text{color:!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.pink.night .foreground.mat-progress-spinner circle,.rtl-container.pink.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.pink.night .mat-toolbar-row,.rtl-container.pink.night .mat-toolbar-single-row{height:5rem}.rtl-container.pink.night .lnd-info{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.pink.night a{color:#e91e63}.rtl-container.pink.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.pink.night .h-active-link{border-bottom:2px solid white}.rtl-container.pink.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.pink.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.pink.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.pink.night .genseed-message{width:10%;color:#e91e63}.rtl-container.pink.night .material-icons.primary{color:#e91e63}.rtl-container.pink.night .material-icons.accent{color:#eee}.rtl-container.pink.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.pink.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.pink.night .row-disabled{background-color:gray}.rtl-container.pink.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.pink.night .mat-menu-panel{min-width:6.4rem}.rtl-container.pink.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.pink.night .horizontal-button:hover{background:#f06292;color:#eee}.rtl-container.pink.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#e91e63}.rtl-container.pink.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.pink.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.pink.night .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.pink.night .mat-button,.rtl-container.pink.night .mat-icon-button,.rtl-container.pink.night .mat-stroked-button,.rtl-container.pink.night .mat-flat-button{border-radius:2px}.rtl-container.pink.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.pink.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.pink.night .mat-cell,.rtl-container.pink.night .mat-header-cell,.rtl-container.pink.night .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ffffff4d}.rtl-container.pink.night table.mat-table{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.pink.night table.mat-table thead tr th{color:#fff}.rtl-container.pink.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.pink.night .bordered-box{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.pink.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.pink.night .mat-expansion-panel{border:1px solid rgba(255,255,255,.3)}.rtl-container.pink.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.pink.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.pink.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.pink.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.pink.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.pink.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.pink.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.pink.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.pink.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.pink.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.pink.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.pink.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.pink.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.pink.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.pink.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.pink.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.pink.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.pink.night .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#f48fb1!important}.rtl-container.pink.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#d81b60!important}.rtl-container.pink.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.pink.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.pink.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.pink.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.pink.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.pink.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.pink.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.pink.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.pink.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.pink.night .color-warn{color:#ff343b}.rtl-container.pink.night .fill-warn{fill:#ff343b}.rtl-container.pink.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.pink.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.pink.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.pink.night .alert.alert-info a{color:#004085}.rtl-container.pink.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.pink.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.pink.night .alert.alert-warn a{color:#856404}.rtl-container.pink.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.pink.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.pink.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.pink.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.pink.night .help-expansion .mat-expansion-panel-header,.rtl-container.pink.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.pink.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.pink.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.pink.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.pink.night .failed-status{color:#ff343b}.rtl-container.pink.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.pink.night .svg-fill-primary{fill:#e91e63}.rtl-container.pink.night .svg-fill-primary-lighter{fill:#f06292}.rtl-container.pink.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.pink.night ngx-charts-bar-vertical text,.rtl-container.pink.night ngx-charts-bar-vertical-2d text{fill:#fff}.rtl-container.pink.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.pink.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.pink.night .mat-paginator-container{padding:0}.rtl-container.pink.night .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.pink.night .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.pink.night .invoice-animation-div .particles-circle{position:absolute;background-color:#e91e63;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #e91e63;background-color:transparent}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.pink.night .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.pink.night .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.pink.night .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.pink.night .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.pink.night .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.yellow.small.small .mat-header-cell{font-weight:700}.rtl-container.yellow.small.small .mr-4{margin-right:1rem!important}.rtl-container.yellow.small.small .mat-menu-item,.rtl-container.yellow.small.small .mat-tree .mat-tree-node,.rtl-container.yellow.small.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.yellow.small.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.small.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.yellow.small.small .genseed-message,.rtl-container.yellow.small.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.yellow.small.small .fa-icon-small,.rtl-container.yellow.small.small .top-icon-small{font-size:1.44rem}.rtl-container.yellow.small.small .page-title-container,.rtl-container.yellow.small.small .page-sub-title-container{font-size:1.32rem}.rtl-container.yellow.small.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.yellow.small.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.yellow.small.small .top-toolbar-icon .top-toolbar-img,.rtl-container.yellow.small.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.yellow.small.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.yellow.small.small .material-icons,.rtl-container.yellow.small.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.yellow.small.small .mat-expansion-panel-header,.rtl-container.yellow.small.small .mat-menu-item,.rtl-container.yellow.small.small .mat-list .mat-list-item,.rtl-container.yellow.small.small .mat-nav-list .mat-list-item,.rtl-container.yellow.small.small .mat-option,.rtl-container.yellow.small.small .mat-select,.rtl-container.yellow.small.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.yellow.small.small .logo{font-size:2.4rem}.rtl-container.yellow.small.small .font-60-percent{font-size:.72rem}.rtl-container.yellow.small.small .fa-icon-regular{font-size:2.1rem}.rtl-container.yellow.small.small .icon-large{font-size:6rem}.rtl-container.yellow.small.small .icon-small{font-size:1.8rem!important}.rtl-container.yellow.small.small .icon-smaller{font-size:.9rem!important}.rtl-container.yellow.small.small .size-triple{font-size:3.6rem}.rtl-container.yellow.small.small .mat-icon-36{font-size:2.4rem}.rtl-container.yellow.small.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.small.medium .mat-header-cell{font-weight:700}.rtl-container.yellow.small.medium .mat-tree .mat-tree-node,.rtl-container.yellow.small.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.yellow.small.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.small.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.yellow.small.medium .genseed-message,.rtl-container.yellow.small.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.yellow.small.medium .page-title-container,.rtl-container.yellow.small.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.yellow.small.medium .fa-icon-small,.rtl-container.yellow.small.medium .top-icon-small{font-size:1.68rem}.rtl-container.yellow.small.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.yellow.small.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.yellow.small.medium .modal-info-header{padding:.2rem!important}}.rtl-container.yellow.small.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.yellow.small.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.yellow.small.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.yellow.small.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.yellow.small.medium .material-icons{font-size:2.8rem}.rtl-container.yellow.small.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.yellow.small.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.yellow.small.medium .mat-expansion-panel-header,.rtl-container.yellow.small.medium .mat-menu-item,.rtl-container.yellow.small.medium .mat-list .mat-list-item,.rtl-container.yellow.small.medium .mat-nav-list .mat-list-item,.rtl-container.yellow.small.medium .mat-option,.rtl-container.yellow.small.medium .mat-select,.rtl-container.yellow.small.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.yellow.small.medium .logo{font-size:2.8rem}.rtl-container.yellow.small.medium .font-60-percent{font-size:.84rem}.rtl-container.yellow.small.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.yellow.small.medium .icon-large{font-size:7rem}.rtl-container.yellow.small.medium .icon-small{font-size:2.1rem!important}.rtl-container.yellow.small.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.yellow.small.medium .size-triple{font-size:4.2rem}.rtl-container.yellow.small.medium .mat-icon-36{font-size:2.8rem}.rtl-container.yellow.small.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.small.large .mat-header-cell{font-weight:800}.rtl-container.yellow.small.large .mat-tree .mat-tree-node,.rtl-container.yellow.small.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.yellow.small.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.small.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.yellow.small.large .genseed-message,.rtl-container.yellow.small.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.yellow.small.large .page-title-container,.rtl-container.yellow.small.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.yellow.small.large .fa-icon-small,.rtl-container.yellow.small.large .top-icon-small,.rtl-container.yellow.small.large .modal-info-header{font-size:1.92rem}.rtl-container.yellow.small.large .top-toolbar-icon.icon-pinned,.rtl-container.yellow.small.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.yellow.small.large .top-toolbar-icon .top-toolbar-img,.rtl-container.yellow.small.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.yellow.small.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.yellow.small.large .material-icons{font-size:4rem}.rtl-container.yellow.small.large .mat-expansion-panel-header,.rtl-container.yellow.small.large .mat-menu-item,.rtl-container.yellow.small.large .mat-list .mat-list-item,.rtl-container.yellow.small.large .mat-nav-list .mat-list-item,.rtl-container.yellow.small.large .mat-option,.rtl-container.yellow.small.large .mat-select,.rtl-container.yellow.small.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.yellow.small.large .logo{font-size:3.2rem}.rtl-container.yellow.small.large .font-60-percent{font-size:.96rem}.rtl-container.yellow.small.large .fa-icon-regular{font-size:2.8rem}.rtl-container.yellow.small.large .icon-large{font-size:8rem}.rtl-container.yellow.small.large .icon-small{font-size:2.4rem!important}.rtl-container.yellow.small.large .icon-smaller{font-size:1.2rem!important}.rtl-container.yellow.small.large .size-triple{font-size:4.8rem}.rtl-container.yellow.small.large .mat-icon-36{font-size:3.2rem}.rtl-container.yellow.small.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.small .mat-icon.material-icons:focus{outline:none}.rtl-container.yellow.small .mat-flat-button.mat-primary:focus,.rtl-container.yellow.small .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.small .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.yellow.medium.small .mat-header-cell{font-weight:700}.rtl-container.yellow.medium.small .mr-4{margin-right:1rem!important}.rtl-container.yellow.medium.small .mat-menu-item,.rtl-container.yellow.medium.small .mat-tree .mat-tree-node,.rtl-container.yellow.medium.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.yellow.medium.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.medium.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.yellow.medium.small .genseed-message,.rtl-container.yellow.medium.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.yellow.medium.small .fa-icon-small,.rtl-container.yellow.medium.small .top-icon-small{font-size:1.44rem}.rtl-container.yellow.medium.small .page-title-container,.rtl-container.yellow.medium.small .page-sub-title-container{font-size:1.32rem}.rtl-container.yellow.medium.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.yellow.medium.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.yellow.medium.small .top-toolbar-icon .top-toolbar-img,.rtl-container.yellow.medium.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.yellow.medium.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.yellow.medium.small .material-icons,.rtl-container.yellow.medium.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.yellow.medium.small .mat-expansion-panel-header,.rtl-container.yellow.medium.small .mat-menu-item,.rtl-container.yellow.medium.small .mat-list .mat-list-item,.rtl-container.yellow.medium.small .mat-nav-list .mat-list-item,.rtl-container.yellow.medium.small .mat-option,.rtl-container.yellow.medium.small .mat-select,.rtl-container.yellow.medium.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.yellow.medium.small .logo{font-size:2.4rem}.rtl-container.yellow.medium.small .font-60-percent{font-size:.72rem}.rtl-container.yellow.medium.small .fa-icon-regular{font-size:2.1rem}.rtl-container.yellow.medium.small .icon-large{font-size:6rem}.rtl-container.yellow.medium.small .icon-small{font-size:1.8rem!important}.rtl-container.yellow.medium.small .icon-smaller{font-size:.9rem!important}.rtl-container.yellow.medium.small .size-triple{font-size:3.6rem}.rtl-container.yellow.medium.small .mat-icon-36{font-size:2.4rem}.rtl-container.yellow.medium.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.medium.medium .mat-header-cell{font-weight:700}.rtl-container.yellow.medium.medium .mat-tree .mat-tree-node,.rtl-container.yellow.medium.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.yellow.medium.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.medium.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.yellow.medium.medium .genseed-message,.rtl-container.yellow.medium.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.yellow.medium.medium .page-title-container,.rtl-container.yellow.medium.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.yellow.medium.medium .fa-icon-small,.rtl-container.yellow.medium.medium .top-icon-small{font-size:1.68rem}.rtl-container.yellow.medium.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.yellow.medium.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.yellow.medium.medium .modal-info-header{padding:.2rem!important}}.rtl-container.yellow.medium.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.yellow.medium.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.yellow.medium.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.yellow.medium.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.yellow.medium.medium .material-icons{font-size:2.8rem}.rtl-container.yellow.medium.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.yellow.medium.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.yellow.medium.medium .mat-expansion-panel-header,.rtl-container.yellow.medium.medium .mat-menu-item,.rtl-container.yellow.medium.medium .mat-list .mat-list-item,.rtl-container.yellow.medium.medium .mat-nav-list .mat-list-item,.rtl-container.yellow.medium.medium .mat-option,.rtl-container.yellow.medium.medium .mat-select,.rtl-container.yellow.medium.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.yellow.medium.medium .logo{font-size:2.8rem}.rtl-container.yellow.medium.medium .font-60-percent{font-size:.84rem}.rtl-container.yellow.medium.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.yellow.medium.medium .icon-large{font-size:7rem}.rtl-container.yellow.medium.medium .icon-small{font-size:2.1rem!important}.rtl-container.yellow.medium.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.yellow.medium.medium .size-triple{font-size:4.2rem}.rtl-container.yellow.medium.medium .mat-icon-36{font-size:2.8rem}.rtl-container.yellow.medium.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.medium.large .mat-header-cell{font-weight:800}.rtl-container.yellow.medium.large .mat-tree .mat-tree-node,.rtl-container.yellow.medium.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.yellow.medium.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.medium.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.yellow.medium.large .genseed-message,.rtl-container.yellow.medium.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.yellow.medium.large .page-title-container,.rtl-container.yellow.medium.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.yellow.medium.large .fa-icon-small,.rtl-container.yellow.medium.large .top-icon-small,.rtl-container.yellow.medium.large .modal-info-header{font-size:1.92rem}.rtl-container.yellow.medium.large .top-toolbar-icon.icon-pinned,.rtl-container.yellow.medium.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.yellow.medium.large .top-toolbar-icon .top-toolbar-img,.rtl-container.yellow.medium.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.yellow.medium.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.yellow.medium.large .material-icons{font-size:4rem}.rtl-container.yellow.medium.large .mat-expansion-panel-header,.rtl-container.yellow.medium.large .mat-menu-item,.rtl-container.yellow.medium.large .mat-list .mat-list-item,.rtl-container.yellow.medium.large .mat-nav-list .mat-list-item,.rtl-container.yellow.medium.large .mat-option,.rtl-container.yellow.medium.large .mat-select,.rtl-container.yellow.medium.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.yellow.medium.large .logo{font-size:3.2rem}.rtl-container.yellow.medium.large .font-60-percent{font-size:.96rem}.rtl-container.yellow.medium.large .fa-icon-regular{font-size:2.8rem}.rtl-container.yellow.medium.large .icon-large{font-size:8rem}.rtl-container.yellow.medium.large .icon-small{font-size:2.4rem!important}.rtl-container.yellow.medium.large .icon-smaller{font-size:1.2rem!important}.rtl-container.yellow.medium.large .size-triple{font-size:4.8rem}.rtl-container.yellow.medium.large .mat-icon-36{font-size:3.2rem}.rtl-container.yellow.medium.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.medium .mat-icon.material-icons:focus{outline:none}.rtl-container.yellow.medium .mat-flat-button.mat-primary:focus,.rtl-container.yellow.medium .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.medium .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.yellow.large.small .mat-header-cell{font-weight:700}.rtl-container.yellow.large.small .mr-4{margin-right:1rem!important}.rtl-container.yellow.large.small .mat-menu-item,.rtl-container.yellow.large.small .mat-tree .mat-tree-node,.rtl-container.yellow.large.small .mat-tree .mat-nested-tree-node-parent{min-height:2.8rem;height:2.8rem}.rtl-container.yellow.large.small .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.large.small .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.32rem}.rtl-container.yellow.large.small .genseed-message,.rtl-container.yellow.large.small .validation-error-message .validation-error-icon.mat-icon,.rtl-container.yellow.large.small .fa-icon-small,.rtl-container.yellow.large.small .top-icon-small{font-size:1.44rem}.rtl-container.yellow.large.small .page-title-container,.rtl-container.yellow.large.small .page-sub-title-container{font-size:1.32rem}.rtl-container.yellow.large.small .mat-icon-button .top-toolbar-icon.icon-pinned,.rtl-container.yellow.large.small .mat-step-header .mat-step-icon .mat-icon{padding-top:1rem}.rtl-container.yellow.large.small .top-toolbar-icon .top-toolbar-img,.rtl-container.yellow.large.small .sidenav-img svg{width:2.16rem;height:2.16rem;font-size:1.5rem}.rtl-container.yellow.large.small .horizontal-button .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:2.2rem}.rtl-container.yellow.large.small .material-icons,.rtl-container.yellow.large.small .modal-info-header{font-size:1.8rem;line-height:2rem}.rtl-container.yellow.large.small .mat-expansion-panel-header,.rtl-container.yellow.large.small .mat-menu-item,.rtl-container.yellow.large.small .mat-list .mat-list-item,.rtl-container.yellow.large.small .mat-nav-list .mat-list-item,.rtl-container.yellow.large.small .mat-option,.rtl-container.yellow.large.small .mat-select,.rtl-container.yellow.large.small .mat-selection-list .mat-list-item{font-size:1.2rem!important}.rtl-container.yellow.large.small .logo{font-size:2.4rem}.rtl-container.yellow.large.small .font-60-percent{font-size:.72rem}.rtl-container.yellow.large.small .fa-icon-regular{font-size:2.1rem}.rtl-container.yellow.large.small .icon-large{font-size:6rem}.rtl-container.yellow.large.small .icon-small{font-size:1.8rem!important}.rtl-container.yellow.large.small .icon-smaller{font-size:.9rem!important}.rtl-container.yellow.large.small .size-triple{font-size:3.6rem}.rtl-container.yellow.large.small .mat-icon-36{font-size:2.4rem}.rtl-container.yellow.large.small .btn-close-x{font-size:1.8rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.large.medium .mat-header-cell{font-weight:700}.rtl-container.yellow.large.medium .mat-tree .mat-tree-node,.rtl-container.yellow.large.medium .mat-tree .mat-nested-tree-node-parent{min-height:4rem;height:4rem}.rtl-container.yellow.large.medium .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.large.medium .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.54rem}.rtl-container.yellow.large.medium .genseed-message,.rtl-container.yellow.large.medium .validation-error-message .validation-error-icon.mat-icon{font-size:1.68rem}.rtl-container.yellow.large.medium .page-title-container,.rtl-container.yellow.large.medium .page-sub-title-container{font-size:1.54rem}.rtl-container.yellow.large.medium .fa-icon-small,.rtl-container.yellow.large.medium .top-icon-small{font-size:1.68rem}.rtl-container.yellow.large.medium .modal-info-header{font-size:1.82rem;padding:.8rem .4rem .8rem 1.6rem!important}@media only screen and (max-width: 56.25em){.rtl-container.yellow.large.medium .modal-info-header{padding:.4rem .4rem .4rem .8rem!important}}@media only screen and (max-width: 37.5em){.rtl-container.yellow.large.medium .modal-info-header{padding:.2rem!important}}.rtl-container.yellow.large.medium .top-toolbar-icon.icon-pinned{font-size:1.82rem}.rtl-container.yellow.large.medium .top-toolbar-icon .top-toolbar-img,.rtl-container.yellow.large.medium .sidenav-img svg{width:2.52rem;height:2.52rem;font-size:1.82rem}.rtl-container.yellow.large.medium .horizontal-button .sidenav-img svg{width:3.08rem;height:3.08rem;font-size:2.5rem}.rtl-container.yellow.large.medium .material-icons{font-size:2.8rem}.rtl-container.yellow.large.medium .material-icons.mat-icon.small-icon{font-size:1.68rem}.rtl-container.yellow.large.medium .mat-step-header .mat-step-icon .mat-icon{font-size:initial}.rtl-container.yellow.large.medium .mat-expansion-panel-header,.rtl-container.yellow.large.medium .mat-menu-item,.rtl-container.yellow.large.medium .mat-list .mat-list-item,.rtl-container.yellow.large.medium .mat-nav-list .mat-list-item,.rtl-container.yellow.large.medium .mat-option,.rtl-container.yellow.large.medium .mat-select,.rtl-container.yellow.large.medium .mat-selection-list .mat-list-item{font-size:1.4rem!important}.rtl-container.yellow.large.medium .logo{font-size:2.8rem}.rtl-container.yellow.large.medium .font-60-percent{font-size:.84rem}.rtl-container.yellow.large.medium .fa-icon-regular{font-size:2.45rem}.rtl-container.yellow.large.medium .icon-large{font-size:7rem}.rtl-container.yellow.large.medium .icon-small{font-size:2.1rem!important}.rtl-container.yellow.large.medium .icon-smaller{font-size:1.05rem!important}.rtl-container.yellow.large.medium .size-triple{font-size:4.2rem}.rtl-container.yellow.large.medium .mat-icon-36{font-size:2.8rem}.rtl-container.yellow.large.medium .btn-close-x{font-size:2.1rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.large.large .mat-header-cell{font-weight:800}.rtl-container.yellow.large.large .mat-tree .mat-tree-node,.rtl-container.yellow.large.large .mat-tree .mat-nested-tree-node-parent{height:4rem}.rtl-container.yellow.large.large .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.large.large .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){font-size:1.76rem}.rtl-container.yellow.large.large .genseed-message,.rtl-container.yellow.large.large .validation-error-message .validation-error-icon.mat-icon{font-size:1.92rem}.rtl-container.yellow.large.large .page-title-container,.rtl-container.yellow.large.large .page-sub-title-container{margin-top:.5rem;font-size:1.76rem}.rtl-container.yellow.large.large .fa-icon-small,.rtl-container.yellow.large.large .top-icon-small,.rtl-container.yellow.large.large .modal-info-header{font-size:1.92rem}.rtl-container.yellow.large.large .top-toolbar-icon.icon-pinned,.rtl-container.yellow.large.large .mat-step-header .mat-step-icon .mat-icon{font-size:2rem}.rtl-container.yellow.large.large .top-toolbar-icon .top-toolbar-img,.rtl-container.yellow.large.large .sidenav-img svg{width:3.2rem;height:3.2rem;font-size:2rem}.rtl-container.yellow.large.large .horizontal-button .sidenav-img svg{width:3.6rem;height:3.6rem;font-size:3.2rem}.rtl-container.yellow.large.large .material-icons{font-size:4rem}.rtl-container.yellow.large.large .mat-expansion-panel-header,.rtl-container.yellow.large.large .mat-menu-item,.rtl-container.yellow.large.large .mat-list .mat-list-item,.rtl-container.yellow.large.large .mat-nav-list .mat-list-item,.rtl-container.yellow.large.large .mat-option,.rtl-container.yellow.large.large .mat-select,.rtl-container.yellow.large.large .mat-selection-list .mat-list-item{font-size:1.6rem!important}.rtl-container.yellow.large.large .logo{font-size:3.2rem}.rtl-container.yellow.large.large .font-60-percent{font-size:.96rem}.rtl-container.yellow.large.large .fa-icon-regular{font-size:2.8rem}.rtl-container.yellow.large.large .icon-large{font-size:8rem}.rtl-container.yellow.large.large .icon-small{font-size:2.4rem!important}.rtl-container.yellow.large.large .icon-smaller{font-size:1.2rem!important}.rtl-container.yellow.large.large .size-triple{font-size:4.8rem}.rtl-container.yellow.large.large .mat-icon-36{font-size:3.2rem}.rtl-container.yellow.large.large .btn-close-x{font-size:2.4rem;font-weight:600;min-width:3.6rem;max-width:3.6rem}.rtl-container.yellow.large .mat-icon.material-icons:focus{outline:none}.rtl-container.yellow.large .mat-flat-button.mat-primary:focus,.rtl-container.yellow.large .mat-flat-button.mat-primary:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.large .mat-flat-button.mat-primary:disabled{cursor:not-allowed}.rtl-container.yellow.day .mat-ripple-element{background-color:#0000001a}.rtl-container.yellow.day .mat-option{color:#000000de}.rtl-container.yellow.day .mat-option:hover:not(.mat-option-disabled),.rtl-container.yellow.day .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.yellow.day .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.yellow.day .mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.rtl-container.yellow.day .mat-option.mat-option-disabled{color:#00000061}.rtl-container.yellow.day .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#945f1f}.rtl-container.yellow.day .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#424242}.rtl-container.yellow.day .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#b00020}.rtl-container.yellow.day .mat-optgroup-label{color:#0000008a}.rtl-container.yellow.day .mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.rtl-container.yellow.day .mat-pseudo-checkbox{color:#0000008a}.rtl-container.yellow.day .mat-pseudo-checkbox:after{color:#fafafa}.rtl-container.yellow.day .mat-pseudo-checkbox-disabled{color:#b0b0b0}.rtl-container.yellow.day .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.yellow.day .mat-primary .mat-pseudo-checkbox-indeterminate{background:#945f1f}.rtl-container.yellow.day .mat-pseudo-checkbox-checked,.rtl-container.yellow.day .mat-pseudo-checkbox-indeterminate,.rtl-container.yellow.day .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.yellow.day .mat-accent .mat-pseudo-checkbox-indeterminate{background:#424242}.rtl-container.yellow.day .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.yellow.day .mat-warn .mat-pseudo-checkbox-indeterminate{background:#b00020}.rtl-container.yellow.day .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.yellow.day .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.rtl-container.yellow.day .mat-app-background,.rtl-container.yellow.day.mat-app-background{background-color:#fafafa;color:#000000de}.rtl-container.yellow.day .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.day .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.yellow.day .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.day .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.yellow.day .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.day .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.yellow.day .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.yellow.day .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.yellow.day .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.yellow.day .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.yellow.day .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.yellow.day .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.yellow.day .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.yellow.day .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.yellow.day .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.yellow.day .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.yellow.day .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.yellow.day .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.yellow.day .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.yellow.day .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.yellow.day .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.yellow.day .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.yellow.day .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.yellow.day .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.yellow.day .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.yellow.day .mat-autocomplete-panel{background:white;color:#000000de}.rtl-container.yellow.day .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:white}.rtl-container.yellow.day .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.rtl-container.yellow.day .mat-badge{position:relative}.rtl-container.yellow.day .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.yellow.day .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.yellow.day .ng-animate-disabled .mat-badge-content,.rtl-container.yellow.day .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.yellow.day .mat-badge-content.mat-badge-active{transform:none}.rtl-container.yellow.day .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.yellow.day .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.yellow.day .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.yellow.day .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.yellow.day .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.yellow.day .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.yellow.day .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.yellow.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.yellow.day .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.yellow.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.yellow.day .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.yellow.day .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.yellow.day .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.yellow.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.yellow.day .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.yellow.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.yellow.day .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.yellow.day .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.yellow.day .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.yellow.day .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.yellow.day .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.yellow.day .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.yellow.day .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.yellow.day .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.yellow.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.yellow.day .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.yellow.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.yellow.day .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.yellow.day .mat-badge-content{color:#fff;background:#945f1f}.cdk-high-contrast-active .rtl-container.yellow.day .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.yellow.day .mat-badge-accent .mat-badge-content{background:#424242;color:#fff}.rtl-container.yellow.day .mat-badge-warn .mat-badge-content{color:#fff;background:#b00020}.rtl-container.yellow.day .mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.rtl-container.yellow.day .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:white;color:#000000de}.rtl-container.yellow.day .mat-button,.rtl-container.yellow.day .mat-icon-button,.rtl-container.yellow.day .mat-stroked-button{color:inherit;background:transparent}.rtl-container.yellow.day .mat-button.mat-primary,.rtl-container.yellow.day .mat-icon-button.mat-primary,.rtl-container.yellow.day .mat-stroked-button.mat-primary{color:#945f1f}.rtl-container.yellow.day .mat-button.mat-accent,.rtl-container.yellow.day .mat-icon-button.mat-accent,.rtl-container.yellow.day .mat-stroked-button.mat-accent{color:#424242}.rtl-container.yellow.day .mat-button.mat-warn,.rtl-container.yellow.day .mat-icon-button.mat-warn,.rtl-container.yellow.day .mat-stroked-button.mat-warn{color:#b00020}.rtl-container.yellow.day .mat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.yellow.day .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.yellow.day .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.yellow.day .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#945f1f}.rtl-container.yellow.day .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.yellow.day .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.yellow.day .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#424242}.rtl-container.yellow.day .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.yellow.day .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.yellow.day .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#b00020}.rtl-container.yellow.day .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.yellow.day .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.yellow.day .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.yellow.day .mat-button .mat-ripple-element,.rtl-container.yellow.day .mat-icon-button .mat-ripple-element,.rtl-container.yellow.day .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.yellow.day .mat-button-focus-overlay{background:black}.rtl-container.yellow.day .mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.rtl-container.yellow.day .mat-flat-button,.rtl-container.yellow.day .mat-raised-button,.rtl-container.yellow.day .mat-fab,.rtl-container.yellow.day .mat-mini-fab{color:#000000de;background-color:#fff}.rtl-container.yellow.day .mat-flat-button.mat-primary,.rtl-container.yellow.day .mat-raised-button.mat-primary,.rtl-container.yellow.day .mat-fab.mat-primary,.rtl-container.yellow.day .mat-mini-fab.mat-primary,.rtl-container.yellow.day .mat-flat-button.mat-accent,.rtl-container.yellow.day .mat-raised-button.mat-accent,.rtl-container.yellow.day .mat-fab.mat-accent,.rtl-container.yellow.day .mat-mini-fab.mat-accent,.rtl-container.yellow.day .mat-flat-button.mat-warn,.rtl-container.yellow.day .mat-raised-button.mat-warn,.rtl-container.yellow.day .mat-fab.mat-warn,.rtl-container.yellow.day .mat-mini-fab.mat-warn{color:#fff}.rtl-container.yellow.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.rtl-container.yellow.day .mat-flat-button.mat-primary,.rtl-container.yellow.day .mat-raised-button.mat-primary,.rtl-container.yellow.day .mat-fab.mat-primary,.rtl-container.yellow.day .mat-mini-fab.mat-primary{background-color:#945f1f}.rtl-container.yellow.day .mat-flat-button.mat-accent,.rtl-container.yellow.day .mat-raised-button.mat-accent,.rtl-container.yellow.day .mat-fab.mat-accent,.rtl-container.yellow.day .mat-mini-fab.mat-accent{background-color:#424242}.rtl-container.yellow.day .mat-flat-button.mat-warn,.rtl-container.yellow.day .mat-raised-button.mat-warn,.rtl-container.yellow.day .mat-fab.mat-warn,.rtl-container.yellow.day .mat-mini-fab.mat-warn{background-color:#b00020}.rtl-container.yellow.day .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.day .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.rtl-container.yellow.day .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-fab.mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-mini-fab.mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-fab.mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-mini-fab.mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.yellow.day .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.yellow.day .mat-fab.mat-warn .mat-ripple-element,.rtl-container.yellow.day .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.day .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.yellow.day .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.day .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.day .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.yellow.day .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.day .mat-fab:not([class*=mat-elevation-z]),.rtl-container.yellow.day .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.yellow.day .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.yellow.day .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.yellow.day .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.yellow.day .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.day .mat-button-toggle-standalone,.rtl-container.yellow.day .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.yellow.day .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.yellow.day .mat-button-toggle{color:#00000061}.rtl-container.yellow.day .mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.rtl-container.yellow.day .mat-button-toggle-appearance-standard{color:#000000de;background:white}.rtl-container.yellow.day .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.rtl-container.yellow.day .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,.12)}.rtl-container.yellow.day [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.rtl-container.yellow.day .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.rtl-container.yellow.day .mat-button-toggle-disabled{color:#00000042;background-color:#eee}.rtl-container.yellow.day .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:white}.rtl-container.yellow.day .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.rtl-container.yellow.day .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.yellow.day .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-card{background:white;color:#000000de}.rtl-container.yellow.day .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.yellow.day .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.day .mat-card-subtitle{color:#0000008a}.rtl-container.yellow.day .mat-checkbox-frame{border-color:#0000008a}.rtl-container.yellow.day .mat-checkbox-checkmark{fill:#fafafa}.rtl-container.yellow.day .mat-checkbox-checkmark-path{stroke:#fafafa!important}.rtl-container.yellow.day .mat-checkbox-mixedmark{background-color:#fafafa}.rtl-container.yellow.day .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.yellow.day .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#945f1f}.rtl-container.yellow.day .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.yellow.day .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#424242}.rtl-container.yellow.day .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.yellow.day .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#b00020}.rtl-container.yellow.day .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.yellow.day .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.rtl-container.yellow.day .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.rtl-container.yellow.day .mat-checkbox-disabled .mat-checkbox-label{color:#0000008a}.rtl-container.yellow.day .mat-checkbox .mat-ripple-element{background-color:#000}.rtl-container.yellow.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.yellow.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#945f1f}.rtl-container.yellow.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.yellow.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#424242}.rtl-container.yellow.day .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.yellow.day .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#b00020}.rtl-container.yellow.day .mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.rtl-container.yellow.day .mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.yellow.day .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip:after{background:black}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#945f1f;color:#fff}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#b00020;color:#fff}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#424242;color:#fff}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.day .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.day .mat-table{background:white}.rtl-container.yellow.day .mat-table thead,.rtl-container.yellow.day .mat-table tbody,.rtl-container.yellow.day .mat-table tfoot,.rtl-container.yellow.day mat-header-row,.rtl-container.yellow.day mat-row,.rtl-container.yellow.day mat-footer-row,.rtl-container.yellow.day [mat-header-row],.rtl-container.yellow.day [mat-row],.rtl-container.yellow.day [mat-footer-row],.rtl-container.yellow.day .mat-table-sticky{background:inherit}.rtl-container.yellow.day mat-row,.rtl-container.yellow.day mat-header-row,.rtl-container.yellow.day mat-footer-row,.rtl-container.yellow.day th.mat-header-cell,.rtl-container.yellow.day td.mat-cell,.rtl-container.yellow.day td.mat-footer-cell{border-bottom-color:#0000001f}.rtl-container.yellow.day .mat-header-cell{color:#0000008a}.rtl-container.yellow.day .mat-cell,.rtl-container.yellow.day .mat-footer-cell{color:#000000de}.rtl-container.yellow.day .mat-calendar-arrow{fill:#0000008a}.rtl-container.yellow.day .mat-datepicker-toggle,.rtl-container.yellow.day .mat-datepicker-content .mat-calendar-next-button,.rtl-container.yellow.day .mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.rtl-container.yellow.day .mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-calendar-table-header,.rtl-container.yellow.day .mat-calendar-body-label{color:#0000008a}.rtl-container.yellow.day .mat-calendar-body-cell-content,.rtl-container.yellow.day .mat-date-range-input-separator{color:#000000de;border-color:transparent}.rtl-container.yellow.day .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.rtl-container.yellow.day .mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.rtl-container.yellow.day .mat-calendar-body-in-preview{color:#0000003d}.rtl-container.yellow.day .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.rtl-container.yellow.day .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.rtl-container.yellow.day .mat-calendar-body-in-range:before{background:rgba(148,95,31,.2)}.rtl-container.yellow.day .mat-calendar-body-comparison-identical,.rtl-container.yellow.day .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.yellow.day .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.day [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(148,95,31,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.day .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.day [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(148,95,31,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.day .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.yellow.day .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.yellow.day .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.day .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.day .mat-calendar-body-selected{background-color:#945f1f;color:#fff}.rtl-container.yellow.day .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#945f1f66}.rtl-container.yellow.day .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.day .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#945f1f4d}@media (hover: hover){.rtl-container.yellow.day .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#945f1f4d}}.rtl-container.yellow.day .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(66,66,66,.2)}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.day .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(66,66,66,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#424242;color:#fff}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#42424266}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.day .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}@media (hover: hover){.rtl-container.yellow.day .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#4242424d}}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(176,0,32,.2)}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.day .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(176,0,32,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#b00020;color:#fff}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#b0002066}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.day .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.day .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}@media (hover: hover){.rtl-container.yellow.day .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#b000204d}}.rtl-container.yellow.day .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.yellow.day .mat-datepicker-toggle-active{color:#945f1f}.rtl-container.yellow.day .mat-datepicker-toggle-active.mat-accent{color:#424242}.rtl-container.yellow.day .mat-datepicker-toggle-active.mat-warn{color:#b00020}.rtl-container.yellow.day .mat-date-range-input-inner[disabled]{color:#00000061}.rtl-container.yellow.day .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:white;color:#000000de}.rtl-container.yellow.day .mat-divider{border-top-color:#0000001f}.rtl-container.yellow.day .mat-divider-vertical{border-right-color:#0000001f}.rtl-container.yellow.day .mat-expansion-panel{background:white;color:#000000de}.rtl-container.yellow.day .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.day .mat-action-row{border-top-color:#0000001f}.rtl-container.yellow.day .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.yellow.day .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.yellow.day .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.yellow.day .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:white}}.rtl-container.yellow.day .mat-expansion-panel-header-title{color:#000000de}.rtl-container.yellow.day .mat-expansion-panel-header-description,.rtl-container.yellow.day .mat-expansion-indicator:after{color:#0000008a}.rtl-container.yellow.day .mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.rtl-container.yellow.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.yellow.day .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.yellow.day .mat-form-field-label,.rtl-container.yellow.day .mat-hint{color:#0009}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-label{color:#945f1f}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#424242}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#b00020}.rtl-container.yellow.day .mat-focused .mat-form-field-required-marker{color:#424242}.rtl-container.yellow.day .mat-form-field-ripple{background-color:#000000de}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#945f1f}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#424242}.rtl-container.yellow.day .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#b00020}.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#945f1f}.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#424242}.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#b00020}.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#b00020}.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.yellow.day .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#b00020}.rtl-container.yellow.day .mat-error{color:#b00020}.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-form-field-label,.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.rtl-container.yellow.day .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.yellow.day .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.rtl-container.yellow.day .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.yellow.day .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.rtl-container.yellow.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.rtl-container.yellow.day .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.rtl-container.yellow.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.yellow.day .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.yellow.day .mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.rtl-container.yellow.day .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#945f1f}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#424242}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#b00020}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.rtl-container.yellow.day .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.rtl-container.yellow.day .mat-icon.mat-primary{color:#945f1f}.rtl-container.yellow.day .mat-icon.mat-accent{color:#424242}.rtl-container.yellow.day .mat-icon.mat-warn{color:#b00020}.rtl-container.yellow.day .mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.rtl-container.yellow.day .mat-input-element:disabled,.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.rtl-container.yellow.day .mat-input-element{caret-color:#945f1f}.rtl-container.yellow.day .mat-input-element::placeholder{color:#0000006b}.rtl-container.yellow.day .mat-input-element::-moz-placeholder{color:#0000006b}.rtl-container.yellow.day .mat-input-element::-webkit-input-placeholder{color:#0000006b}.rtl-container.yellow.day .mat-input-element:-ms-input-placeholder{color:#0000006b}.rtl-container.yellow.day .mat-form-field.mat-accent .mat-input-element{caret-color:#424242}.rtl-container.yellow.day .mat-form-field.mat-warn .mat-input-element,.rtl-container.yellow.day .mat-form-field-invalid .mat-input-element{caret-color:#b00020}.rtl-container.yellow.day .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#b00020}.rtl-container.yellow.day .mat-list-base .mat-list-item,.rtl-container.yellow.day .mat-list-base .mat-list-option{color:#000000de}.rtl-container.yellow.day .mat-list-base .mat-subheader{color:#0000008a}.rtl-container.yellow.day .mat-list-item-disabled{background-color:#eee}.rtl-container.yellow.day .mat-list-option:hover,.rtl-container.yellow.day .mat-list-option:focus,.rtl-container.yellow.day .mat-nav-list .mat-list-item:hover,.rtl-container.yellow.day .mat-nav-list .mat-list-item:focus,.rtl-container.yellow.day .mat-action-list .mat-list-item:hover,.rtl-container.yellow.day .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.yellow.day .mat-list-single-selected-option,.rtl-container.yellow.day .mat-list-single-selected-option:hover,.rtl-container.yellow.day .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-menu-panel{background:white}.rtl-container.yellow.day .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.day .mat-menu-item{background:transparent;color:#000000de}.rtl-container.yellow.day .mat-menu-item[disabled],.rtl-container.yellow.day .mat-menu-item[disabled] .mat-menu-submenu-icon,.rtl-container.yellow.day .mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.rtl-container.yellow.day .mat-menu-item .mat-icon-no-color,.rtl-container.yellow.day .mat-menu-submenu-icon{color:#0000008a}.rtl-container.yellow.day .mat-menu-item:hover:not([disabled]),.rtl-container.yellow.day .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.yellow.day .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.yellow.day .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.yellow.day .mat-paginator{background:white}.rtl-container.yellow.day .mat-paginator,.rtl-container.yellow.day .mat-paginator-page-size .mat-select-trigger{color:#0000008a}.rtl-container.yellow.day .mat-paginator-decrement,.rtl-container.yellow.day .mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.rtl-container.yellow.day .mat-paginator-first,.rtl-container.yellow.day .mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.rtl-container.yellow.day .mat-icon-button[disabled] .mat-paginator-decrement,.rtl-container.yellow.day .mat-icon-button[disabled] .mat-paginator-increment,.rtl-container.yellow.day .mat-icon-button[disabled] .mat-paginator-first,.rtl-container.yellow.day .mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.rtl-container.yellow.day .mat-progress-bar-background{fill:#e1d3c3}.rtl-container.yellow.day .mat-progress-bar-buffer{background-color:#e1d3c3}.rtl-container.yellow.day .mat-progress-bar-fill:after{background-color:#945f1f}.rtl-container.yellow.day .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ccc}.rtl-container.yellow.day .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ccc}.rtl-container.yellow.day .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#424242}.rtl-container.yellow.day .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#e8bcc4}.rtl-container.yellow.day .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#e8bcc4}.rtl-container.yellow.day .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#b00020}.rtl-container.yellow.day .mat-progress-spinner circle,.rtl-container.yellow.day .mat-spinner circle{stroke:#945f1f}.rtl-container.yellow.day .mat-progress-spinner.mat-accent circle,.rtl-container.yellow.day .mat-spinner.mat-accent circle{stroke:#424242}.rtl-container.yellow.day .mat-progress-spinner.mat-warn circle,.rtl-container.yellow.day .mat-spinner.mat-warn circle{stroke:#b00020}.rtl-container.yellow.day .mat-radio-outer-circle{border-color:#0000008a}.rtl-container.yellow.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#945f1f}.rtl-container.yellow.day .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.yellow.day .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.day .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.day .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#945f1f}.rtl-container.yellow.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#424242}.rtl-container.yellow.day .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.yellow.day .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.day .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.day .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#424242}.rtl-container.yellow.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#b00020}.rtl-container.yellow.day .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.yellow.day .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.day .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.day .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#b00020}.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.rtl-container.yellow.day .mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.rtl-container.yellow.day .mat-radio-button .mat-ripple-element{background-color:#000}.rtl-container.yellow.day .mat-select-value{color:#000000de}.rtl-container.yellow.day .mat-select-placeholder{color:#0000006b}.rtl-container.yellow.day .mat-select-disabled .mat-select-value{color:#00000061}.rtl-container.yellow.day .mat-select-arrow{color:#0000008a}.rtl-container.yellow.day .mat-select-panel{background:white}.rtl-container.yellow.day .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.day .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#945f1f}.rtl-container.yellow.day .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#424242}.rtl-container.yellow.day .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.yellow.day .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#b00020}.rtl-container.yellow.day .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.rtl-container.yellow.day .mat-drawer-container{background-color:#fafafa;color:#000000de}.rtl-container.yellow.day .mat-drawer{background-color:#fff;color:#000000de}.rtl-container.yellow.day .mat-drawer.mat-drawer-push{background-color:#fff}.rtl-container.yellow.day .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.yellow.day .mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-drawer-side.mat-drawer-end,.rtl-container.yellow.day [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}.rtl-container.yellow.day [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.rtl-container.yellow.day .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#424242}.rtl-container.yellow.day .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#4242428a}.rtl-container.yellow.day .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#424242}.rtl-container.yellow.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#945f1f}.rtl-container.yellow.day .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#945f1f8a}.rtl-container.yellow.day .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#945f1f}.rtl-container.yellow.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#b00020}.rtl-container.yellow.day .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#b000208a}.rtl-container.yellow.day .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#b00020}.rtl-container.yellow.day .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.rtl-container.yellow.day .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.rtl-container.yellow.day .mat-slide-toggle-bar{background-color:#00000061}.rtl-container.yellow.day .mat-slider-track-background{background-color:#00000042}.rtl-container.yellow.day .mat-primary .mat-slider-track-fill,.rtl-container.yellow.day .mat-primary .mat-slider-thumb,.rtl-container.yellow.day .mat-primary .mat-slider-thumb-label{background-color:#945f1f}.rtl-container.yellow.day .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.day .mat-primary .mat-slider-focus-ring{background-color:#945f1f33}.rtl-container.yellow.day .mat-accent .mat-slider-track-fill,.rtl-container.yellow.day .mat-accent .mat-slider-thumb,.rtl-container.yellow.day .mat-accent .mat-slider-thumb-label{background-color:#424242}.rtl-container.yellow.day .mat-accent .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.day .mat-accent .mat-slider-focus-ring{background-color:#42424233}.rtl-container.yellow.day .mat-warn .mat-slider-track-fill,.rtl-container.yellow.day .mat-warn .mat-slider-thumb,.rtl-container.yellow.day .mat-warn .mat-slider-thumb-label{background-color:#b00020}.rtl-container.yellow.day .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.day .mat-warn .mat-slider-focus-ring{background-color:#b0002033}.rtl-container.yellow.day .mat-slider:hover .mat-slider-track-background,.rtl-container.yellow.day .mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.rtl-container.yellow.day .mat-slider-disabled .mat-slider-track-background,.rtl-container.yellow.day .mat-slider-disabled .mat-slider-track-fill,.rtl-container.yellow.day .mat-slider-disabled .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.rtl-container.yellow.day .mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.rtl-container.yellow.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.rtl-container.yellow.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.yellow.day .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.rtl-container.yellow.day .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.rtl-container.yellow.day .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.yellow.day .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.rtl-container.yellow.day .mat-step-header.cdk-keyboard-focused,.rtl-container.yellow.day .mat-step-header.cdk-program-focused,.rtl-container.yellow.day .mat-step-header:hover:not([aria-disabled]),.rtl-container.yellow.day .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.yellow.day .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.yellow.day .mat-step-header:hover{background:none}}.rtl-container.yellow.day .mat-step-header .mat-step-label,.rtl-container.yellow.day .mat-step-header .mat-step-optional{color:#0000008a}.rtl-container.yellow.day .mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.rtl-container.yellow.day .mat-step-header .mat-step-icon-selected,.rtl-container.yellow.day .mat-step-header .mat-step-icon-state-done,.rtl-container.yellow.day .mat-step-header .mat-step-icon-state-edit{background-color:#945f1f;color:#fff}.rtl-container.yellow.day .mat-step-header.mat-accent .mat-step-icon{color:#fff}.rtl-container.yellow.day .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.yellow.day .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.yellow.day .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#424242;color:#fff}.rtl-container.yellow.day .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.yellow.day .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.yellow.day .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.yellow.day .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#b00020;color:#fff}.rtl-container.yellow.day .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#b00020}.rtl-container.yellow.day .mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.rtl-container.yellow.day .mat-step-header .mat-step-label.mat-step-label-error{color:#b00020}.rtl-container.yellow.day .mat-stepper-horizontal,.rtl-container.yellow.day .mat-stepper-vertical{background-color:#fff}.rtl-container.yellow.day .mat-stepper-vertical-line:before{border-left-color:#0000001f}.rtl-container.yellow.day .mat-horizontal-stepper-header:before,.rtl-container.yellow.day .mat-horizontal-stepper-header:after,.rtl-container.yellow.day .mat-stepper-horizontal-line{border-top-color:#0000001f}.rtl-container.yellow.day .mat-sort-header-arrow{color:#757575}.rtl-container.yellow.day .mat-tab-nav-bar,.rtl-container.yellow.day .mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.yellow.day .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.rtl-container.yellow.day .mat-tab-label,.rtl-container.yellow.day .mat-tab-link{color:#000000de}.rtl-container.yellow.day .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-link.mat-tab-disabled{color:#00000061}.rtl-container.yellow.day .mat-tab-header-pagination-chevron{border-color:#000000de}.rtl-container.yellow.day .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.rtl-container.yellow.day .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.yellow.day .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#b48f624d}.rtl-container.yellow.day .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#945f1f}.rtl-container.yellow.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.yellow.day .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#424242}.rtl-container.yellow.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.yellow.day .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#b00020}.rtl-container.yellow.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.day .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#b48f624d}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#945f1f}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.yellow.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#7575754d}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#424242}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.yellow.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#b00020}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.day .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.day .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.yellow.day .mat-toolbar{background:whitesmoke;color:#000000de}.rtl-container.yellow.day .mat-toolbar.mat-primary{background:#945f1f;color:#fff}.rtl-container.yellow.day .mat-toolbar.mat-accent{background:#424242;color:#fff}.rtl-container.yellow.day .mat-toolbar.mat-warn{background:#b00020;color:#fff}.rtl-container.yellow.day .mat-toolbar .mat-form-field-underline,.rtl-container.yellow.day .mat-toolbar .mat-form-field-ripple,.rtl-container.yellow.day .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.yellow.day .mat-toolbar .mat-form-field-label,.rtl-container.yellow.day .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.yellow.day .mat-toolbar .mat-select-value,.rtl-container.yellow.day .mat-toolbar .mat-select-arrow,.rtl-container.yellow.day .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.yellow.day .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.yellow.day .mat-tooltip{background:rgba(97,97,97,.9)}.rtl-container.yellow.day .mat-tree{background:white}.rtl-container.yellow.day .mat-tree-node,.rtl-container.yellow.day .mat-nested-tree-node{color:#000000de}.rtl-container.yellow.day .mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.yellow.day .mat-simple-snackbar-action{color:#424242}.rtl-container.yellow.day .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.yellow.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container{color:#fff}.rtl-container.yellow.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-progress-spinner circle,.rtl-container.yellow.day .cdk-overlay-container .cdk-global-overlay-wrapper .mat-dialog-container .spinner-container .mat-spinner circle{stroke:#fff}.rtl-container.yellow.day .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#616161}.rtl-container.yellow.day .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#eee}.rtl-container.yellow.day .rtl-top-toolbar{border-bottom:1px solid white}.rtl-container.yellow.day .bg-primary{background-color:#945f1f;color:#fff}.rtl-container.yellow.day .rtl-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#945f1f}.rtl-container.yellow.day .rtl-warn-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#b00020}.rtl-container.yellow.day .rtl-accent-snack-bar{max-width:90vw!important;font-weight:600;background-color:#fff;opacity:.9!important;color:#424242}.rtl-container.yellow.day .mat-tab-label.mat-tab-label-active{color:#945f1f}.rtl-container.yellow.day .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#945f1f}.rtl-container.yellow.day .mat-tab-label .tab-badge .mat-badge-content{background:rgba(0,0,0,.54)}.rtl-container.yellow.day .ng-fa-icon,.rtl-container.yellow.day .mat-nested-tree-node-parent .mat-icon,.rtl-container.yellow.day .mat-form-field-suffix{color:#0000008a}.rtl-container.yellow.day .mat-stroked-button.mat-primary{border-color:#945f1f}.rtl-container.yellow.day .mat-stroked-button.mat-accent{border-color:#424242}.rtl-container.yellow.day .mat-stroked-button.mat-warn{border-color:#b00020}.rtl-container.yellow.day .selected-color{border-color:#b48f62}.rtl-container.yellow.day .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{opacity:.06}.rtl-container.yellow.day .page-title-container,.rtl-container.yellow.day .page-sub-title-container{color:#0000008a}.rtl-container.yellow.day .page-title-container .page-title-img,.rtl-container.yellow.day .page-sub-title-container .page-title-img{color:#00000061}.rtl-container.yellow.day .page-title-container .mat-input-element,.rtl-container.yellow.day .page-title-container .mat-radio-label-content,.rtl-container.yellow.day .page-title-container .theme-name,.rtl-container.yellow.day .page-sub-title-container .mat-input-element,.rtl-container.yellow.day .page-sub-title-container .mat-radio-label-content,.rtl-container.yellow.day .page-sub-title-container .theme-name{color:#000000de}.rtl-container.yellow.day .cc-data-block .cc-data-title{color:#945f1f}.rtl-container.yellow.day .active-link,.rtl-container.yellow.day .active-link .fa-icon-small{color:#945f1f;font-weight:500;cursor:pointer;fill:#945f1f}.rtl-container.yellow.day .mat-tree-node:hover,.rtl-container.yellow.day .mat-nested-tree-node-parent:hover,.rtl-container.yellow.day .mat-select-panel .mat-option:hover,.rtl-container.yellow.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover{color:#945f1f;cursor:pointer;background:rgba(0,0,0,.04)}.rtl-container.yellow.day .mat-tree-node:hover .ng-fa-icon,.rtl-container.yellow.day .mat-tree-node:hover .mat-icon,.rtl-container.yellow.day .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.yellow.day .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.yellow.day .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.yellow.day .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.yellow.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.yellow.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon{color:#945f1f}.rtl-container.yellow.day .mat-tree-node:hover .sidenav-img svg,.rtl-container.yellow.day .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.yellow.day .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.yellow.day .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg{fill:#945f1f}.rtl-container.yellow.day .mat-tree-node .sidenav-img,.rtl-container.yellow.day .mat-nested-tree-node .sidenav-img,.rtl-container.yellow.day .mat-nested-tree-node-parent .sidenav-img,.rtl-container.yellow.day .page-title-container .page-title-img,.rtl-container.yellow.day svg.top-icon-small{fill:#000000de}.rtl-container.yellow.day .mat-progress-bar-fill:after{background-color:#65320a}.rtl-container.yellow.day .modal-qr-code-container{background:rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-tab-label,.rtl-container.yellow.day .mat-tab-link{color:#0000008a}.rtl-container.yellow.day .mat-card,.rtl-container.yellow.day .mat-card:not([class*=mat-elevation-z]){box-shadow:none;border:1px solid rgba(0,0,0,.12)}.rtl-container.yellow.day .dashboard-card .mat-card-header .mat-card-title,.rtl-container.yellow.day .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#00000061}.rtl-container.yellow.day .dashboard-info-title{color:#945f1f}.rtl-container.yellow.day .dashboard-info-value{color:#0000008a}.rtl-container.yellow.day .color-primary{color:#945f1f!important}.rtl-container.yellow.day .dot-primary{background-color:#945f1f!important}.rtl-container.yellow.day .dot-primary-lighter{background-color:#b48f62!important}.rtl-container.yellow.day .mat-expansion-panel.flat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.yellow.day .mat-tooltip{font-size:120%}.rtl-container.yellow.day svg .boltz-icon{stroke:#0000008a;stroke-width:4}.rtl-container.yellow.day svg .boltz-icon-fill{fill:#0000008a}.rtl-container.yellow.day svg .stroke-color-thicker{stroke:#404040;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color-thick{stroke:#404040;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color{stroke:#404040;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color-thin{stroke:#404040;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color-thiner{stroke:#404040;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .stroke-color-thinest{stroke:#404040;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.day svg .fill-color-boltz-bk{fill:#313131}.rtl-container.yellow.day svg .fill-color-0{fill:#cbcbcb}.rtl-container.yellow.day svg .fill-color-1{fill:#fff}.rtl-container.yellow.day svg .fill-color-2{fill:#f1f1f1}.rtl-container.yellow.day svg .fill-color-3{fill:#f2f2f2}.rtl-container.yellow.day svg .fill-color-4{fill:#f2f2f2}.rtl-container.yellow.day svg .fill-color-5{fill:#f2f2f2}.rtl-container.yellow.day svg .fill-color-6{fill:#fff}.rtl-container.yellow.day svg .fill-color-7{fill:#cbcbcb}.rtl-container.yellow.day svg .fill-color-8{fill:#cbcbcb}.rtl-container.yellow.day svg .fill-color-9{fill:#fff}.rtl-container.yellow.day svg .fill-color-10{fill:#e6e6e6}.rtl-container.yellow.day svg .fill-color-11{fill:#e6e6e6}.rtl-container.yellow.day svg .fill-color-12{fill:#5b5b5b}.rtl-container.yellow.day svg .fill-color-13{fill:#4a4a4a}.rtl-container.yellow.day svg .fill-color-14{fill:#4a4a4a}.rtl-container.yellow.day svg .fill-color-15{fill:#4a4a4a}.rtl-container.yellow.day svg .fill-color-16{fill:#404040}.rtl-container.yellow.day svg .fill-color-17{fill:#404040}.rtl-container.yellow.day svg .fill-color-18{fill:#000}.rtl-container.yellow.day svg .fill-color-19{fill:#4a4a4a}.rtl-container.yellow.day svg .fill-color-20{fill:#4a4a4a}.rtl-container.yellow.day svg .fill-color-21{fill:#5b5b5b}.rtl-container.yellow.day svg .fill-color-22{fill:#cbcbcb}.rtl-container.yellow.day svg .fill-color-23{fill:#cbcbcb}.rtl-container.yellow.day svg .fill-color-24{fill:#000}.rtl-container.yellow.day svg .fill-color-25{fill:#f2f2f2}.rtl-container.yellow.day svg .fill-color-26{fill:#6f6f6f}.rtl-container.yellow.day svg .fill-color-27{fill:#000}.rtl-container.yellow.day svg .fill-color-28{fill:#313131}.rtl-container.yellow.day svg .fill-color-29{fill:#5b5b5b}.rtl-container.yellow.day svg .fill-color-30{fill:#fff}.rtl-container.yellow.day svg .fill-color-31{fill:#945f1f}.rtl-container.yellow.day svg .fill-color-green-light{fill:#6ecb48}.rtl-container.yellow.day svg .fill-color-primary{fill:#945f1f}.rtl-container.yellow.day svg .fill-color-primary-lighter{fill:#b48f62}.rtl-container.yellow.day svg .fill-color-primary-darker{fill:#945f1f}.rtl-container.yellow.day .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.yellow.day .mat-form-field-disabled .mat-form-field-flex{background-color:#0000000a}.rtl-container.yellow.day .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.yellow.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#0000000a}.rtl-container.yellow.day .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.yellow.day ngx-charts-bar-vertical text,.rtl-container.yellow.day ngx-charts-bar-vertical-2d text{fill:#000000de}.rtl-container.yellow.day ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.yellow.day ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#945f1f}.rtl-container.yellow.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.yellow.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#65320a}.rtl-container.yellow.day ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.yellow.day ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#caaf8f}.rtl-container.yellow.day .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.yellow.day .mat-progress-bar-buffer{background-color:#dfcfbc}.rtl-container.yellow.day .foreground-text{color:#000000de!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.yellow.day .foreground-secondary-text{color:#0000008a!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.yellow.day .foreground.mat-progress-spinner circle,.rtl-container.yellow.day .foreground.mat-spinner circle{stroke:#000000de}.rtl-container.yellow.day .mat-toolbar-row,.rtl-container.yellow.day .mat-toolbar-single-row{height:5rem}.rtl-container.yellow.day .lnd-info{border-bottom:1px solid rgba(0,0,0,.12)}.rtl-container.yellow.day a{color:#945f1f}.rtl-container.yellow.day .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.yellow.day .h-active-link{border-bottom:2px solid white}.rtl-container.yellow.day .mat-icon-36{color:#0000008a}.rtl-container.yellow.day .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.day .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.yellow.day .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.yellow.day .genseed-message{width:10%;color:#945f1f}.rtl-container.yellow.day .material-icons.primary{color:#945f1f}.rtl-container.yellow.day .material-icons.accent{color:#424242}.rtl-container.yellow.day .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#b00020}.rtl-container.yellow.day .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.yellow.day .row-disabled{background-color:gray}.rtl-container.yellow.day .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.yellow.day .mat-menu-panel{min-width:6.4rem}.rtl-container.yellow.day .horizontal-button{height:5rem;border-radius:0}.rtl-container.yellow.day .horizontal-button:hover{background:#b48f62;color:#424242}.rtl-container.yellow.day .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#945f1f}.rtl-container.yellow.day .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.day .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.yellow.day .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.yellow.day .mat-button,.rtl-container.yellow.day .mat-icon-button,.rtl-container.yellow.day .mat-stroked-button,.rtl-container.yellow.day .mat-flat-button{border-radius:2px}.rtl-container.yellow.day .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.yellow.day .cc-data-block .cc-data-value{font-size:120%;color:#0000008a}.rtl-container.yellow.day .mat-cell,.rtl-container.yellow.day .mat-header-cell,.rtl-container.yellow.day .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#0000001f}.rtl-container.yellow.day table.mat-table{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.yellow.day table.mat-table thead tr th{color:#000}.rtl-container.yellow.day table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.yellow.day .bordered-box{border:1px solid rgba(0,0,0,.12);border-radius:2px;background:none}.rtl-container.yellow.day .bordered-box.read-only{background-color:#0000000a}.rtl-container.yellow.day .mat-expansion-panel{border:1px solid rgba(0,0,0,.12)}.rtl-container.yellow.day .more-button{color:#00000061}.rtl-container.yellow.day .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.yellow.day .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.yellow.day .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.yellow.day .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.yellow.day .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.yellow.day .modal-info-header{color:#000000de;font-weight:500}.rtl-container.yellow.day .modal-info-header .page-title-img svg{color:#000000de}.rtl-container.yellow.day .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.yellow.day .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.yellow.day .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.yellow.day .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.yellow.day .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.yellow.day .table-actions-select .mat-select-placeholder{color:#000000de}.rtl-container.yellow.day .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.yellow.day .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.yellow.day .mat-drawer-inner-container{overflow:hidden}.rtl-container.yellow.day .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.yellow.day .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#caaf8f!important}.rtl-container.yellow.day .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#8c571b!important}.rtl-container.yellow.day .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.yellow.day .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.yellow.day .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.yellow.day .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.yellow.day .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid rgba(0,0,0,.54)}.rtl-container.yellow.day .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.yellow.day .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700;color:#0000008a}.rtl-container.yellow.day .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.yellow.day .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.yellow.day .color-warn{color:#b00020}.rtl-container.yellow.day .fill-warn{fill:#b00020}.rtl-container.yellow.day .alert{border:1px solid rgba(0,0,0,.54);color:#0000008a;background-color:#0000000a}.rtl-container.yellow.day .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.yellow.day .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.yellow.day .alert.alert-info a{color:#004085}.rtl-container.yellow.day .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.yellow.day .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.yellow.day .alert.alert-warn a{color:#856404}.rtl-container.yellow.day .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.yellow.day .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.yellow.day .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.yellow.day .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.yellow.day .help-expansion .mat-expansion-panel-header,.rtl-container.yellow.day .help-expansion .mat-expansion-panel-header-title{font-weight:500;color:#0000008a}.rtl-container.yellow.day .help-expansion .mat-expansion-indicator:after,.rtl-container.yellow.day .help-expansion .mat-expansion-panel-content,.rtl-container.yellow.day .help-expansion .mat-expansion-panel-header-description{color:#0000008a}.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.yellow.day .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.yellow.day .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.yellow.day .failed-status{color:#b00020}.rtl-container.yellow.day .material-icons.icon-failed-status{font-size:1.8rem;fill:#b00020;height:2rem}.rtl-container.yellow.day .svg-fill-primary{fill:#945f1f}.rtl-container.yellow.day .svg-fill-primary-lighter{fill:#b48f62}.rtl-container.yellow.day .mat-expansion-panel-header[aria-disabled=true]{color:#000000de}.rtl-container.yellow.day ngx-charts-bar-vertical text,.rtl-container.yellow.day ngx-charts-bar-vertical-2d text{fill:#000000de}.rtl-container.yellow.day ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.yellow.day ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.yellow.day .mat-paginator-container{padding:0}.rtl-container.yellow.day .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.yellow.day .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.yellow.day .invoice-animation-div .particles-circle{position:absolute;background-color:#945f1f;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #945f1f;background-color:transparent}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}.rtl-container.yellow.day .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.yellow.day .wiggle{animation:.5s wiggle ease-in-out infinite}.rtl-container.yellow.day .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.yellow.day .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.yellow.day .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}.rtl-container.yellow.night .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-option{color:#fff}.rtl-container.yellow.night .mat-option:hover:not(.mat-option-disabled),.rtl-container.yellow.night .mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.yellow.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.rtl-container.yellow.night .mat-option.mat-active{background:rgba(0,0,0,.04);color:#fff}.rtl-container.yellow.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#945f1f}.rtl-container.yellow.night .mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#eee}.rtl-container.yellow.night .mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#ff343b}.rtl-container.yellow.night .mat-pseudo-checkbox:after{color:#0d0d0d}.rtl-container.yellow.night .mat-pseudo-checkbox-disabled{color:#686868}.rtl-container.yellow.night .mat-primary .mat-pseudo-checkbox-checked,.rtl-container.yellow.night .mat-primary .mat-pseudo-checkbox-indeterminate{background:#945f1f}.rtl-container.yellow.night .mat-pseudo-checkbox-checked,.rtl-container.yellow.night .mat-pseudo-checkbox-indeterminate,.rtl-container.yellow.night .mat-accent .mat-pseudo-checkbox-checked,.rtl-container.yellow.night .mat-accent .mat-pseudo-checkbox-indeterminate{background:#eeeeee}.rtl-container.yellow.night .mat-warn .mat-pseudo-checkbox-checked,.rtl-container.yellow.night .mat-warn .mat-pseudo-checkbox-indeterminate{background:#ff343b}.rtl-container.yellow.night .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.rtl-container.yellow.night .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.rtl-container.yellow.night .mat-app-background,.rtl-container.yellow.night.mat-app-background{background-color:#0d0d0d;color:#fff}.rtl-container.yellow.night .mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.night .mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.yellow.night .mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.night .mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.yellow.night .mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.night .mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.rtl-container.yellow.night .mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.yellow.night .mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.rtl-container.yellow.night .mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.yellow.night .mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.rtl-container.yellow.night .mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.rtl-container.yellow.night .mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.rtl-container.yellow.night .mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.yellow.night .mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.rtl-container.yellow.night .mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.rtl-container.yellow.night .mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.rtl-container.yellow.night .mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.yellow.night .mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.rtl-container.yellow.night .mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.rtl-container.yellow.night .mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.rtl-container.yellow.night .mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.rtl-container.yellow.night .mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.rtl-container.yellow.night .mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.rtl-container.yellow.night .mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.rtl-container.yellow.night .mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.rtl-container.yellow.night .mat-autocomplete-panel{background:#202020;color:#fff}.rtl-container.yellow.night .mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#202020}.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.rtl-container.yellow.night .mat-badge{position:relative}.rtl-container.yellow.night .mat-badge-hidden .mat-badge-content{display:none}.rtl-container.yellow.night .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.rtl-container.yellow.night .ng-animate-disabled .mat-badge-content,.rtl-container.yellow.night .mat-badge-content._mat-animation-noopable{transition:none}.rtl-container.yellow.night .mat-badge-content.mat-badge-active{transform:none}.rtl-container.yellow.night .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.rtl-container.yellow.night .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.rtl-container.yellow.night .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.rtl-container.yellow.night .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .rtl-container.yellow.night .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.rtl-container.yellow.night .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .rtl-container.yellow.night .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.rtl-container.yellow.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .rtl-container.yellow.night .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.rtl-container.yellow.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .rtl-container.yellow.night .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.rtl-container.yellow.night .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .rtl-container.yellow.night .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .rtl-container.yellow.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .rtl-container.yellow.night .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.rtl-container.yellow.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .rtl-container.yellow.night .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.rtl-container.yellow.night .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.rtl-container.yellow.night .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.rtl-container.yellow.night .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.rtl-container.yellow.night .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .rtl-container.yellow.night .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.rtl-container.yellow.night .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .rtl-container.yellow.night .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.rtl-container.yellow.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .rtl-container.yellow.night .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.rtl-container.yellow.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .rtl-container.yellow.night .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.rtl-container.yellow.night .mat-badge-content{color:#fff;background:#945f1f}.cdk-high-contrast-active .rtl-container.yellow.night .mat-badge-content{outline:solid 1px;border-radius:0}.rtl-container.yellow.night .mat-badge-accent .mat-badge-content{background:#eeeeee;color:#000}.rtl-container.yellow.night .mat-badge-warn .mat-badge-content{color:#fff;background:#ff343b}.rtl-container.yellow.night .mat-badge-disabled .mat-badge-content{background:#4c4c4c}.rtl-container.yellow.night .mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#262626;color:#fff}.rtl-container.yellow.night .mat-button,.rtl-container.yellow.night .mat-icon-button,.rtl-container.yellow.night .mat-stroked-button{color:inherit;background:transparent}.rtl-container.yellow.night .mat-button.mat-primary,.rtl-container.yellow.night .mat-icon-button.mat-primary,.rtl-container.yellow.night .mat-stroked-button.mat-primary{color:#945f1f}.rtl-container.yellow.night .mat-button.mat-accent,.rtl-container.yellow.night .mat-icon-button.mat-accent,.rtl-container.yellow.night .mat-stroked-button.mat-accent{color:#eee}.rtl-container.yellow.night .mat-button.mat-warn,.rtl-container.yellow.night .mat-icon-button.mat-warn,.rtl-container.yellow.night .mat-stroked-button.mat-warn{color:#ff343b}.rtl-container.yellow.night .mat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-icon-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-icon-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-icon-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-icon-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-stroked-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-stroked-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-stroked-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.yellow.night .mat-button.mat-primary .mat-button-focus-overlay,.rtl-container.yellow.night .mat-icon-button.mat-primary .mat-button-focus-overlay,.rtl-container.yellow.night .mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#945f1f}.rtl-container.yellow.night .mat-button.mat-accent .mat-button-focus-overlay,.rtl-container.yellow.night .mat-icon-button.mat-accent .mat-button-focus-overlay,.rtl-container.yellow.night .mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#eee}.rtl-container.yellow.night .mat-button.mat-warn .mat-button-focus-overlay,.rtl-container.yellow.night .mat-icon-button.mat-warn .mat-button-focus-overlay,.rtl-container.yellow.night .mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#ff343b}.rtl-container.yellow.night .mat-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.yellow.night .mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.rtl-container.yellow.night .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.rtl-container.yellow.night .mat-button .mat-ripple-element,.rtl-container.yellow.night .mat-icon-button .mat-ripple-element,.rtl-container.yellow.night .mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.rtl-container.yellow.night .mat-button-focus-overlay{background:white}.rtl-container.yellow.night .mat-stroked-button:not(.mat-button-disabled){border-color:#ffffff4d}.rtl-container.yellow.night .mat-flat-button,.rtl-container.yellow.night .mat-raised-button,.rtl-container.yellow.night .mat-fab,.rtl-container.yellow.night .mat-mini-fab{color:#fff;background-color:#363636}.rtl-container.yellow.night .mat-flat-button.mat-primary,.rtl-container.yellow.night .mat-raised-button.mat-primary,.rtl-container.yellow.night .mat-fab.mat-primary,.rtl-container.yellow.night .mat-mini-fab.mat-primary{color:#fff}.rtl-container.yellow.night .mat-flat-button.mat-accent,.rtl-container.yellow.night .mat-raised-button.mat-accent,.rtl-container.yellow.night .mat-fab.mat-accent,.rtl-container.yellow.night .mat-mini-fab.mat-accent{color:#000}.rtl-container.yellow.night .mat-flat-button.mat-warn,.rtl-container.yellow.night .mat-raised-button.mat-warn,.rtl-container.yellow.night .mat-fab.mat-warn,.rtl-container.yellow.night .mat-mini-fab.mat-warn{color:#fff}.rtl-container.yellow.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#ffffff42}.rtl-container.yellow.night .mat-flat-button.mat-primary,.rtl-container.yellow.night .mat-raised-button.mat-primary,.rtl-container.yellow.night .mat-fab.mat-primary,.rtl-container.yellow.night .mat-mini-fab.mat-primary{background-color:#945f1f}.rtl-container.yellow.night .mat-flat-button.mat-accent,.rtl-container.yellow.night .mat-raised-button.mat-accent,.rtl-container.yellow.night .mat-fab.mat-accent,.rtl-container.yellow.night .mat-mini-fab.mat-accent{background-color:#eee}.rtl-container.yellow.night .mat-flat-button.mat-warn,.rtl-container.yellow.night .mat-raised-button.mat-warn,.rtl-container.yellow.night .mat-fab.mat-warn,.rtl-container.yellow.night .mat-mini-fab.mat-warn{background-color:#ff343b}.rtl-container.yellow.night .mat-flat-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-flat-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-raised-button.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-fab.mat-button-disabled.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-primary.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-accent.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-warn.mat-button-disabled,.rtl-container.yellow.night .mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#404040}.rtl-container.yellow.night .mat-flat-button.mat-primary .mat-ripple-element,.rtl-container.yellow.night .mat-raised-button.mat-primary .mat-ripple-element,.rtl-container.yellow.night .mat-fab.mat-primary .mat-ripple-element,.rtl-container.yellow.night .mat-mini-fab.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-flat-button.mat-accent .mat-ripple-element,.rtl-container.yellow.night .mat-raised-button.mat-accent .mat-ripple-element,.rtl-container.yellow.night .mat-fab.mat-accent .mat-ripple-element,.rtl-container.yellow.night .mat-mini-fab.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.yellow.night .mat-flat-button.mat-warn .mat-ripple-element,.rtl-container.yellow.night .mat-raised-button.mat-warn .mat-ripple-element,.rtl-container.yellow.night .mat-fab.mat-warn .mat-ripple-element,.rtl-container.yellow.night .mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-stroked-button:not([class*=mat-elevation-z]),.rtl-container.yellow.night .mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.night .mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.night .mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.rtl-container.yellow.night .mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.night .mat-fab:not([class*=mat-elevation-z]),.rtl-container.yellow.night .mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.yellow.night .mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.rtl-container.yellow.night .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.rtl-container.yellow.night .mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.rtl-container.yellow.night .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.night .mat-button-toggle-standalone,.rtl-container.yellow.night .mat-button-toggle-group{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.yellow.night .mat-button-toggle-group-appearance-standard{box-shadow:none}.rtl-container.yellow.night .mat-button-toggle-appearance-standard{color:#fff;background:#202020}.rtl-container.yellow.night .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(255,255,255,.3)}.rtl-container.yellow.night [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.yellow.night .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(255,255,255,.3)}.rtl-container.yellow.night .mat-button-toggle-checked{background-color:#303030}.rtl-container.yellow.night .mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.rtl-container.yellow.night .mat-button-toggle-disabled{color:#ffffff42;background-color:#404040}.rtl-container.yellow.night .mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#202020}.rtl-container.yellow.night .mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#363636}.rtl-container.yellow.night .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.rtl-container.yellow.night .mat-button-toggle-group-appearance-standard{border:solid 1px rgba(255,255,255,.3)}.rtl-container.yellow.night .mat-card{background:#202020;color:#fff}.rtl-container.yellow.night .mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.rtl-container.yellow.night .mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.rtl-container.yellow.night .mat-checkbox-checkmark{fill:#0d0d0d}.rtl-container.yellow.night .mat-checkbox-checkmark-path{stroke:#0d0d0d!important}.rtl-container.yellow.night .mat-checkbox-mixedmark{background-color:#0d0d0d}.rtl-container.yellow.night .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.rtl-container.yellow.night .mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#945f1f}.rtl-container.yellow.night .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.rtl-container.yellow.night .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#eee}.rtl-container.yellow.night .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.rtl-container.yellow.night .mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#ff343b}.rtl-container.yellow.night .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.rtl-container.yellow.night .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.rtl-container.yellow.night .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.rtl-container.yellow.night .mat-checkbox .mat-ripple-element{background-color:#fff}.rtl-container.yellow.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.rtl-container.yellow.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#945f1f}.rtl-container.yellow.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.rtl-container.yellow.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#eeeeee}.rtl-container.yellow.night .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.rtl-container.yellow.night .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#ff343b}.rtl-container.yellow.night .mat-chip.mat-standard-chip{background-color:#404040;color:#fff}.rtl-container.yellow.night .mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.rtl-container.yellow.night .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip:after{background:white}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#945f1f;color:#fff}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#ff343b;color:#fff}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#eee;color:#000}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000;opacity:.4}.rtl-container.yellow.night .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.rtl-container.yellow.night .mat-table{background:#202020}.rtl-container.yellow.night .mat-table thead,.rtl-container.yellow.night .mat-table tbody,.rtl-container.yellow.night .mat-table tfoot,.rtl-container.yellow.night mat-header-row,.rtl-container.yellow.night mat-row,.rtl-container.yellow.night mat-footer-row,.rtl-container.yellow.night [mat-header-row],.rtl-container.yellow.night [mat-row],.rtl-container.yellow.night [mat-footer-row],.rtl-container.yellow.night .mat-table-sticky{background:inherit}.rtl-container.yellow.night mat-row,.rtl-container.yellow.night mat-header-row,.rtl-container.yellow.night mat-footer-row,.rtl-container.yellow.night th.mat-header-cell,.rtl-container.yellow.night td.mat-cell,.rtl-container.yellow.night td.mat-footer-cell{border-bottom-color:#ffffff4d}.rtl-container.yellow.night .mat-cell,.rtl-container.yellow.night .mat-footer-cell{color:#fff}.rtl-container.yellow.night .mat-calendar-arrow{fill:#fff}.rtl-container.yellow.night .mat-datepicker-toggle,.rtl-container.yellow.night .mat-datepicker-content .mat-calendar-next-button,.rtl-container.yellow.night .mat-datepicker-content .mat-calendar-previous-button{color:#fff}.rtl-container.yellow.night .mat-calendar-table-header-divider:after{background:rgba(255,255,255,.3)}.rtl-container.yellow.night .mat-calendar-body-cell-content,.rtl-container.yellow.night .mat-date-range-input-separator{color:#fff;border-color:transparent}.rtl-container.yellow.night .mat-calendar-body-in-preview{color:#fff9}.rtl-container.yellow.night .mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){opacity:.5}.rtl-container.yellow.night .mat-calendar-body-in-range:before{background:rgba(148,95,31,.2)}.rtl-container.yellow.night .mat-calendar-body-comparison-identical,.rtl-container.yellow.night .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.yellow.night .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.night [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(148,95,31,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.night .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.night [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(148,95,31,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.night .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.yellow.night .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.yellow.night .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.night .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.night .mat-calendar-body-selected{background-color:#945f1f;color:#fff}.rtl-container.yellow.night .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#945f1f66}.rtl-container.yellow.night .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.night .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.night .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#945f1f4d}@media (hover: hover){.rtl-container.yellow.night .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#945f1f4d}}.rtl-container.yellow.night .mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#202020;color:#fff}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(238,238,238,.2)}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.night .mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(238,238,238,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#eee;color:#000}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#eee6}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000}.rtl-container.yellow.night .mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.night .mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}@media (hover: hover){.rtl-container.yellow.night .mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#eeeeee4d}}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(255,52,59,.2)}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.rtl-container.yellow.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.rtl-container.yellow.night .mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,52,59,.2) 50%,rgba(249,171,0,.2) 50%)}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#ff343b;color:#fff}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff343b66}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.rtl-container.yellow.night .mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.rtl-container.yellow.night .mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}@media (hover: hover){.rtl-container.yellow.night .mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff343b4d}}.rtl-container.yellow.night .mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.rtl-container.yellow.night .mat-datepicker-toggle-active{color:#945f1f}.rtl-container.yellow.night .mat-datepicker-toggle-active.mat-accent{color:#eee}.rtl-container.yellow.night .mat-datepicker-toggle-active.mat-warn{color:#ff343b}.rtl-container.yellow.night .mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#262626;color:#fff}.rtl-container.yellow.night .mat-divider{border-top-color:#ffffff4d}.rtl-container.yellow.night .mat-divider-vertical{border-right-color:#ffffff4d}.rtl-container.yellow.night .mat-expansion-panel{background:#202020;color:#fff}.rtl-container.yellow.night .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.rtl-container.yellow.night .mat-action-row{border-top-color:#ffffff4d}.rtl-container.yellow.night .mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.rtl-container.yellow.night .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.rtl-container.yellow.night .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.rtl-container.yellow.night .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#202020}}.rtl-container.yellow.night .mat-expansion-panel-header-title{color:#fff}.rtl-container.yellow.night .mat-expansion-panel-header[aria-disabled=true]{color:#ffffff42}.rtl-container.yellow.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.rtl-container.yellow.night .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-label{color:#945f1f}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#eee}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#ff343b}.rtl-container.yellow.night .mat-focused .mat-form-field-required-marker{color:#eee}.rtl-container.yellow.night .mat-form-field-ripple{background-color:#fff}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-ripple{background-color:#945f1f}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#eee}.rtl-container.yellow.night .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#ff343b}.rtl-container.yellow.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#945f1f}.rtl-container.yellow.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#eee}.rtl-container.yellow.night .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#ff343b}.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-label,.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#ff343b}.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.rtl-container.yellow.night .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#ff343b}.rtl-container.yellow.night .mat-error{color:#ff343b}.rtl-container.yellow.night .mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.yellow.night .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.yellow.night .mat-form-field-appearance-standard .mat-form-field-underline{background-color:#ffffffb3}.rtl-container.yellow.night .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0%,rgba(255,255,255,.7) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.rtl-container.yellow.night .mat-form-field-appearance-fill .mat-form-field-flex{background-color:#ffffff1a}.rtl-container.yellow.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0d}.rtl-container.yellow.night .mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#ffffff80}.rtl-container.yellow.night .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.rtl-container.yellow.night .mat-form-field-appearance-outline .mat-form-field-outline{color:#ffffff4d}.rtl-container.yellow.night .mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#945f1f}.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#eee}.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#ff343b}.rtl-container.yellow.night .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#ffffff26}.rtl-container.yellow.night .mat-icon.mat-primary{color:#945f1f}.rtl-container.yellow.night .mat-icon.mat-accent{color:#eee}.rtl-container.yellow.night .mat-icon.mat-warn{color:#ff343b}.rtl-container.yellow.night .mat-input-element{caret-color:#945f1f}.rtl-container.yellow.night .mat-input-element:not(.mat-native-select-inline) option{color:#000000de}.rtl-container.yellow.night .mat-input-element:not(.mat-native-select-inline) option:disabled{color:#00000061}.rtl-container.yellow.night .mat-form-field.mat-accent .mat-input-element{caret-color:#eee}.rtl-container.yellow.night .mat-form-field.mat-warn .mat-input-element,.rtl-container.yellow.night .mat-form-field-invalid .mat-input-element{caret-color:#ff343b}.rtl-container.yellow.night .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#ff343b}.rtl-container.yellow.night .mat-list-base .mat-list-item,.rtl-container.yellow.night .mat-list-base .mat-list-option{color:#fff}.rtl-container.yellow.night .mat-list-item-disabled{background-color:#444}.rtl-container.yellow.night .mat-list-option:hover,.rtl-container.yellow.night .mat-list-option:focus,.rtl-container.yellow.night .mat-nav-list .mat-list-item:hover,.rtl-container.yellow.night .mat-nav-list .mat-list-item:focus,.rtl-container.yellow.night .mat-action-list .mat-list-item:hover,.rtl-container.yellow.night .mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.rtl-container.yellow.night .mat-list-single-selected-option,.rtl-container.yellow.night .mat-list-single-selected-option:hover,.rtl-container.yellow.night .mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.rtl-container.yellow.night .mat-menu-panel{background:#202020}.rtl-container.yellow.night .mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.night .mat-menu-item{background:transparent;color:#fff}.rtl-container.yellow.night .mat-menu-item .mat-icon-no-color,.rtl-container.yellow.night .mat-menu-submenu-icon{color:#fff}.rtl-container.yellow.night .mat-menu-item:hover:not([disabled]),.rtl-container.yellow.night .mat-menu-item.cdk-program-focused:not([disabled]),.rtl-container.yellow.night .mat-menu-item.cdk-keyboard-focused:not([disabled]),.rtl-container.yellow.night .mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.rtl-container.yellow.night .mat-paginator{background:#202020}.rtl-container.yellow.night .mat-paginator-decrement,.rtl-container.yellow.night .mat-paginator-increment{border-top:2px solid white;border-right:2px solid white}.rtl-container.yellow.night .mat-paginator-first,.rtl-container.yellow.night .mat-paginator-last{border-top:2px solid white}.rtl-container.yellow.night .mat-progress-bar-background{fill:#2f2212}.rtl-container.yellow.night .mat-progress-bar-buffer{background-color:#2f2212}.rtl-container.yellow.night .mat-progress-bar-fill:after{background-color:#945f1f}.rtl-container.yellow.night .mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#454545}.rtl-container.yellow.night .mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#454545}.rtl-container.yellow.night .mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#eee}.rtl-container.yellow.night .mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#4a1719}.rtl-container.yellow.night .mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#4a1719}.rtl-container.yellow.night .mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#ff343b}.rtl-container.yellow.night .mat-progress-spinner circle,.rtl-container.yellow.night .mat-spinner circle{stroke:#945f1f}.rtl-container.yellow.night .mat-progress-spinner.mat-accent circle,.rtl-container.yellow.night .mat-spinner.mat-accent circle{stroke:#eee}.rtl-container.yellow.night .mat-progress-spinner.mat-warn circle,.rtl-container.yellow.night .mat-spinner.mat-warn circle{stroke:#ff343b}.rtl-container.yellow.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#945f1f}.rtl-container.yellow.night .mat-radio-button.mat-primary .mat-radio-inner-circle,.rtl-container.yellow.night .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.night .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.night .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#945f1f}.rtl-container.yellow.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#eee}.rtl-container.yellow.night .mat-radio-button.mat-accent .mat-radio-inner-circle,.rtl-container.yellow.night .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.night .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.night .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#eee}.rtl-container.yellow.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#ff343b}.rtl-container.yellow.night .mat-radio-button.mat-warn .mat-radio-inner-circle,.rtl-container.yellow.night .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.rtl-container.yellow.night .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.rtl-container.yellow.night .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#ff343b}.rtl-container.yellow.night .mat-radio-button .mat-ripple-element{background-color:#fff}.rtl-container.yellow.night .mat-select-value{color:#fff}.rtl-container.yellow.night .mat-select-panel{background:#202020}.rtl-container.yellow.night .mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.night .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.rtl-container.yellow.night .mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#945f1f}.rtl-container.yellow.night .mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#eee}.rtl-container.yellow.night .mat-form-field.mat-focused.mat-warn .mat-select-arrow,.rtl-container.yellow.night .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#ff343b}.rtl-container.yellow.night .mat-drawer-container{background-color:#0d0d0d;color:#fff}.rtl-container.yellow.night .mat-drawer{background-color:#262626;color:#fff}.rtl-container.yellow.night .mat-drawer.mat-drawer-push{background-color:#262626}.rtl-container.yellow.night .mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.rtl-container.yellow.night .mat-drawer-side{border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.yellow.night .mat-drawer-side.mat-drawer-end,.rtl-container.yellow.night [dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(255,255,255,.3);border-right:none}.rtl-container.yellow.night [dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(255,255,255,.3)}.rtl-container.yellow.night .mat-drawer-backdrop.mat-drawer-shown{background-color:#dfdfdf99}.rtl-container.yellow.night .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#eee}.rtl-container.yellow.night .mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#eeeeee8a}.rtl-container.yellow.night .mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#eee}.rtl-container.yellow.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#945f1f}.rtl-container.yellow.night .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#945f1f8a}.rtl-container.yellow.night .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#945f1f}.rtl-container.yellow.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#ff343b}.rtl-container.yellow.night .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#ff343b8a}.rtl-container.yellow.night .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#ff343b}.rtl-container.yellow.night .mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.rtl-container.yellow.night .mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#bdbdbd}.rtl-container.yellow.night .mat-slider-track-background{background-color:#ffffff80}.rtl-container.yellow.night .mat-primary .mat-slider-track-fill,.rtl-container.yellow.night .mat-primary .mat-slider-thumb,.rtl-container.yellow.night .mat-primary .mat-slider-thumb-label{background-color:#945f1f}.rtl-container.yellow.night .mat-primary .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.night .mat-primary .mat-slider-focus-ring{background-color:#945f1f33}.rtl-container.yellow.night .mat-accent .mat-slider-track-fill,.rtl-container.yellow.night .mat-accent .mat-slider-thumb,.rtl-container.yellow.night .mat-accent .mat-slider-thumb-label{background-color:#eee}.rtl-container.yellow.night .mat-accent .mat-slider-thumb-label-text{color:#000}.rtl-container.yellow.night .mat-accent .mat-slider-focus-ring{background-color:#eee3}.rtl-container.yellow.night .mat-warn .mat-slider-track-fill,.rtl-container.yellow.night .mat-warn .mat-slider-thumb,.rtl-container.yellow.night .mat-warn .mat-slider-thumb-label{background-color:#ff343b}.rtl-container.yellow.night .mat-warn .mat-slider-thumb-label-text{color:#fff}.rtl-container.yellow.night .mat-warn .mat-slider-focus-ring{background-color:#ff343b33}.rtl-container.yellow.night .mat-slider:hover .mat-slider-track-background,.rtl-container.yellow.night .mat-slider.cdk-focused .mat-slider-track-background{background-color:#fff9}.rtl-container.yellow.night .mat-slider-disabled .mat-slider-track-background,.rtl-container.yellow.night .mat-slider-disabled .mat-slider-track-fill,.rtl-container.yellow.night .mat-slider-disabled .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-disabled:hover .mat-slider-track-background{background-color:#ffffff80}.rtl-container.yellow.night .mat-slider-min-value .mat-slider-focus-ring{background-color:#ffffff1f}.rtl-container.yellow.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.rtl-container.yellow.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#ffffff80}.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#ffffff80;background-color:transparent}.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#fff9}.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.rtl-container.yellow.night .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#ffffff80}.rtl-container.yellow.night .mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#ffffffb3}.rtl-container.yellow.night .mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.yellow.night .mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.rtl-container.yellow.night .mat-step-header.cdk-keyboard-focused,.rtl-container.yellow.night .mat-step-header.cdk-program-focused,.rtl-container.yellow.night .mat-step-header:hover:not([aria-disabled]),.rtl-container.yellow.night .mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.rtl-container.yellow.night .mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.rtl-container.yellow.night .mat-step-header:hover{background:none}}.rtl-container.yellow.night .mat-step-header .mat-step-icon{color:#fff}.rtl-container.yellow.night .mat-step-header .mat-step-icon-selected,.rtl-container.yellow.night .mat-step-header .mat-step-icon-state-done,.rtl-container.yellow.night .mat-step-header .mat-step-icon-state-edit{background-color:#945f1f;color:#fff}.rtl-container.yellow.night .mat-step-header.mat-accent .mat-step-icon{color:#000}.rtl-container.yellow.night .mat-step-header.mat-accent .mat-step-icon-selected,.rtl-container.yellow.night .mat-step-header.mat-accent .mat-step-icon-state-done,.rtl-container.yellow.night .mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#eee;color:#000}.rtl-container.yellow.night .mat-step-header.mat-warn .mat-step-icon{color:#fff}.rtl-container.yellow.night .mat-step-header.mat-warn .mat-step-icon-selected,.rtl-container.yellow.night .mat-step-header.mat-warn .mat-step-icon-state-done,.rtl-container.yellow.night .mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#ff343b;color:#fff}.rtl-container.yellow.night .mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#ff343b}.rtl-container.yellow.night .mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.rtl-container.yellow.night .mat-step-header .mat-step-label.mat-step-label-error{color:#ff343b}.rtl-container.yellow.night .mat-stepper-horizontal,.rtl-container.yellow.night .mat-stepper-vertical{background-color:#202020}.rtl-container.yellow.night .mat-stepper-vertical-line:before{border-left-color:#ffffff4d}.rtl-container.yellow.night .mat-horizontal-stepper-header:before,.rtl-container.yellow.night .mat-horizontal-stepper-header:after,.rtl-container.yellow.night .mat-stepper-horizontal-line{border-top-color:#ffffff4d}.rtl-container.yellow.night .mat-tab-nav-bar,.rtl-container.yellow.night .mat-tab-header{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.yellow.night .mat-tab-group-inverted-header .mat-tab-nav-bar,.rtl-container.yellow.night .mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(255,255,255,.3);border-bottom:none}.rtl-container.yellow.night .mat-tab-label,.rtl-container.yellow.night .mat-tab-link{color:#fff}.rtl-container.yellow.night .mat-tab-header-pagination-chevron{border-color:#fff}.rtl-container.yellow.night .mat-tab-group[class*=mat-background-]>.mat-tab-header,.rtl-container.yellow.night .mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#b48f624d}.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#945f1f}.rtl-container.yellow.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.yellow.night .mat-tab-group.mat-accent .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#eee}.rtl-container.yellow.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000}.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.yellow.night .mat-tab-group.mat-warn .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#ff343b}.rtl-container.yellow.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#b48f624d}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#945f1f}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.yellow.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#9999994d}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#eee}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#000}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#000;opacity:.4}.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#000;opacity:.12}.rtl-container.yellow.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#e7b3bc4d}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#ff343b}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.night .mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.rtl-container.yellow.night .mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.rtl-container.yellow.night .mat-toolbar{background:#262626;color:#fff}.rtl-container.yellow.night .mat-toolbar.mat-primary{background:#945f1f;color:#fff}.rtl-container.yellow.night .mat-toolbar.mat-accent{background:#eeeeee;color:#000}.rtl-container.yellow.night .mat-toolbar.mat-warn{background:#ff343b;color:#fff}.rtl-container.yellow.night .mat-toolbar .mat-form-field-underline,.rtl-container.yellow.night .mat-toolbar .mat-form-field-ripple,.rtl-container.yellow.night .mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.rtl-container.yellow.night .mat-toolbar .mat-form-field-label,.rtl-container.yellow.night .mat-toolbar .mat-focused .mat-form-field-label,.rtl-container.yellow.night .mat-toolbar .mat-select-value,.rtl-container.yellow.night .mat-toolbar .mat-select-arrow,.rtl-container.yellow.night .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.rtl-container.yellow.night .mat-toolbar .mat-input-element{caret-color:currentColor}.rtl-container.yellow.night .mat-tree{background:#202020}.rtl-container.yellow.night .mat-tree-node,.rtl-container.yellow.night .mat-nested-tree-node{color:#fff}.rtl-container.yellow.night .mat-snack-bar-container{color:#000000de;background:#fafafa;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.rtl-container.yellow.night .mat-simple-snackbar-action{color:inherit}.rtl-container.yellow.night .mat-primary{color:#ffa164}.rtl-container.yellow.night .mat-button-base.mat-flat-button.mat-primary{color:#fff}.rtl-container.yellow.night .rtl-top-toolbar{border-bottom:1px solid #202020}.rtl-container.yellow.night .bg-primary{background-color:#945f1f;color:#fff}.rtl-container.yellow.night .mat-tab-label.mat-tab-label-active{color:#ffa164}.rtl-container.yellow.night .mat-tab-label.mat-tab-label-active .tab-badge .mat-badge-content{background:#ffa164}.rtl-container.yellow.night .mat-tab-label .tab-badge .mat-badge-content{color:#262626}.rtl-container.yellow.night .rtl-snack-bar{max-width:90vw!important;font-weight:700}.rtl-container.yellow.night .rtl-warn-snack-bar{max-width:90vw!important;font-weight:700;color:#ff343b}.rtl-container.yellow.night .rtl-accent-snack-bar{max-width:90vw!important;font-weight:700;color:#eee}.rtl-container.yellow.night .mat-tab-group.mat-primary .mat-ink-bar,.rtl-container.yellow.night .mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#ffa164}.rtl-container.yellow.night .cc-data-block .cc-data-title{color:#ffa164}.rtl-container.yellow.night .mat-stroked-button.mat-primary{border-color:#ffa164;color:#ffa164}.rtl-container.yellow.night .mat-stroked-button.mat-primary:hover .mat-button-focus-overlay{background-color:#fff;opacity:.09}.rtl-container.yellow.night .mat-stroked-button.mat-accent{border-color:#eee}.rtl-container.yellow.night .mat-stroked-button.mat-warn{border-color:#ff343b}.rtl-container.yellow.night .active-link,.rtl-container.yellow.night .active-link .fa-icon-small,.rtl-container.yellow.night .mat-select-panel .mat-option.mat-active,.rtl-container.yellow.night .mat-select-panel .mat-option.mat-active .fa-icon-small{color:#ffa164;font-weight:500;cursor:pointer;fill:#ffa164}.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled),.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover),.rtl-container.yellow.night .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){color:#ffa164}.rtl-container.yellow.night .mat-tree-node:hover,.rtl-container.yellow.night .mat-nested-tree-node-parent:hover,.rtl-container.yellow.night .mat-select-panel .mat-option:hover,.rtl-container.yellow.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-active,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled),.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled){color:#ffa164;cursor:pointer;background:rgba(255,255,255,.06)}.rtl-container.yellow.night .mat-tree-node:hover .ng-fa-icon,.rtl-container.yellow.night .mat-tree-node:hover .mat-icon,.rtl-container.yellow.night .mat-nested-tree-node-parent:hover .ng-fa-icon,.rtl-container.yellow.night .mat-nested-tree-node-parent:hover .mat-icon,.rtl-container.yellow.night .mat-select-panel .mat-option:hover .ng-fa-icon,.rtl-container.yellow.night .mat-select-panel .mat-option:hover .mat-icon,.rtl-container.yellow.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .ng-fa-icon,.rtl-container.yellow.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .mat-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-active .ng-fa-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-active .mat-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .ng-fa-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .mat-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .mat-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .ng-fa-icon,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .mat-icon{color:#ffa164}.rtl-container.yellow.night .mat-tree-node:hover .sidenav-img svg,.rtl-container.yellow.night .mat-nested-tree-node-parent:hover .sidenav-img svg,.rtl-container.yellow.night .mat-select-panel .mat-option:hover .sidenav-img svg,.rtl-container.yellow.night .mat-menu-panel .mat-menu-content .mat-menu-item:hover .sidenav-img svg,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-active .sidenav-img svg,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option.mat-selected.mat-active .sidenav-img svg,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:hover:not(.mat-option-disabled) .sidenav-img svg,.rtl-container.yellow.night .mat-autocomplete-panel .mat-option:focus:not(.mat-option-disabled) .sidenav-img svg{fill:#ffa164}.rtl-container.yellow.night .mat-tree-node .sidenav-img,.rtl-container.yellow.night .mat-nested-tree-node .sidenav-img,.rtl-container.yellow.night .mat-nested-tree-node-parent .sidenav-img,.rtl-container.yellow.night .page-title-container .page-title-img,.rtl-container.yellow.night svg.top-icon-small{fill:#fff}.rtl-container.yellow.night .selected-color{border-color:#b48f62}.rtl-container.yellow.night .mat-progress-bar-fill:after{background-color:#8c571b}.rtl-container.yellow.night .chart-legend .legend-label:hover,.rtl-container.yellow.night .chart-legend .legend-label .active .legend-label-text{color:#fff!important}.rtl-container.yellow.night .cdk-overlay-container .cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.rtl-container.yellow.night .mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#ffa164}.rtl-container.yellow.night .mat-select-panel{background-color:#262626}.rtl-container.yellow.night .mat-tree{background:#262626}.rtl-container.yellow.night .dashboard-card .mat-card-header .mat-card-title,.rtl-container.yellow.night .dashboard-card .mat-card-header .mat-card-title .ng-fa-icon{color:#fff}.rtl-container.yellow.night .dashboard-info-title{color:#ffa164}.rtl-container.yellow.night .dashboard-info-value,.rtl-container.yellow.night .dashboard-capacity-header{color:#fff}.rtl-container.yellow.night .mat-progress-bar.this-channel-bar .mat-progress-bar-fill:after{background-color:#444}.rtl-container.yellow.night .mat-progress-bar.this-channel-bar .mat-progress-bar-buffer{background-color:#bbb}.rtl-container.yellow.night .color-primary{color:#ffa164!important}.rtl-container.yellow.night .dot-primary{background-color:#ffa164!important}.rtl-container.yellow.night .dot-primary-lighter{background-color:#945f1f!important}.rtl-container.yellow.night .mat-stepper-vertical{background-color:#262626}.rtl-container.yellow.night svg .boltz-icon{stroke:#fff;stroke-width:4}.rtl-container.yellow.night svg .boltz-icon-fill{fill:#fff}.rtl-container.yellow.night svg .stroke-color-thicker{stroke:#b6b6b6;stroke-width:15.3333;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color-thick{stroke:#b6b6b6;stroke-width:13.4583;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color{stroke:#b6b6b6;stroke-width:12.5;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color-thin{stroke:#b6b6b6;stroke-width:11.625;stroke-miterlimit:10;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color-thiner{stroke:#b6b6b6;stroke-width:10.125;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .stroke-color-thinest{stroke:#b6b6b6;stroke-width:9.40381;stroke-linecap:"round";stroke-linejoin:"round"}.rtl-container.yellow.night svg .fill-color-boltz-bk{fill:#171717}.rtl-container.yellow.night svg .fill-color-0{fill:#171717}.rtl-container.yellow.night svg .fill-color-1{fill:#232323}.rtl-container.yellow.night svg .fill-color-2{fill:#222}.rtl-container.yellow.night svg .fill-color-3{fill:#3a3a3a}.rtl-container.yellow.night svg .fill-color-4{fill:#383838}.rtl-container.yellow.night svg .fill-color-5{fill:#555}.rtl-container.yellow.night svg .fill-color-6{fill:#5b5b5b}.rtl-container.yellow.night svg .fill-color-7{fill:#202020}.rtl-container.yellow.night svg .fill-color-8{fill:#242424}.rtl-container.yellow.night svg .fill-color-9{fill:#262626}.rtl-container.yellow.night svg .fill-color-10{fill:#1a1a1a}.rtl-container.yellow.night svg .fill-color-11{fill:#171717}.rtl-container.yellow.night svg .fill-color-12{fill:#ccc}.rtl-container.yellow.night svg .fill-color-13{fill:#adadad}.rtl-container.yellow.night svg .fill-color-14{fill:#ababab}.rtl-container.yellow.night svg .fill-color-15{fill:#b6b6b6}.rtl-container.yellow.night svg .fill-color-16{fill:#707070}.rtl-container.yellow.night svg .fill-color-17{fill:#7c7c7c}.rtl-container.yellow.night svg .fill-color-18{fill:#5a5a5a}.rtl-container.yellow.night svg .fill-color-19{fill:#4a4a4a}.rtl-container.yellow.night svg .fill-color-20{fill:#9f9f9f}.rtl-container.yellow.night svg .fill-color-21{fill:#cacaca}.rtl-container.yellow.night svg .fill-color-22{fill:#7f7f7f}.rtl-container.yellow.night svg .fill-color-23{fill:#777}.rtl-container.yellow.night svg .fill-color-24{fill:#5e5e5e}.rtl-container.yellow.night svg .fill-color-25{fill:#252525}.rtl-container.yellow.night svg .fill-color-26{fill:#6f6f6f}.rtl-container.yellow.night svg .fill-color-27{fill:#000}.rtl-container.yellow.night svg .fill-color-28{fill:#313131}.rtl-container.yellow.night svg .fill-color-29{fill:#e7e7e7}.rtl-container.yellow.night svg .fill-color-30{fill:#fff}.rtl-container.yellow.night svg .fill-color-31{fill:#945f1f}.rtl-container.yellow.night svg .fill-color-green-light{fill:#6ecb48}.rtl-container.yellow.night svg .fill-color-primary{fill:#945f1f}.rtl-container.yellow.night svg .fill-color-primary-lighter{fill:#b48f62}.rtl-container.yellow.night svg .fill-color-primary-darker{fill:#ffa164}.rtl-container.yellow.night .mat-select-value,.rtl-container.yellow.night .mat-select-arrow{color:#fff}.rtl-container.yellow.night .mat-form-field-disabled .mat-form-field-underline{background-color:transparent;background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:5px 100%;height:1.4px}.rtl-container.yellow.night .mat-form-field-disabled .mat-form-field-flex{background-color:#ffffff0f}.rtl-container.yellow.night .mat-tooltip{background-color:#ffffffe6;color:#202020;font-size:120%}.rtl-container.yellow.night .mat-slide-toggle-bar,.rtl-container.yellow.night .mat-step-header .mat-step-icon:not(.mat-step-icon-selected){background-color:#484848}.rtl-container.yellow.night .mat-slide-toggle.mat-disabled{opacity:1}.rtl-container.yellow.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-content{background-color:#ffffff0f}.rtl-container.yellow.night .mat-slide-toggle.mat-disabled .mat-slide-toggle-label{cursor:not-allowed!important}.rtl-container.yellow.night .mat-button.mat-primary,.rtl-container.yellow.night .mat-icon-button.mat-primary,.rtl-container.yellow.night .mat-stroked-button.mat-primary{color:#ffa164}.rtl-container.yellow.night tr.alert.alert-warn .mat-cell,.rtl-container.yellow.night tr.alert.alert-warn .mat-header-cell,.rtl-container.yellow.night tr.alert.alert-warn .mat-footer-cell{color:#856404}.rtl-container.yellow.night ngx-charts-bar-vertical.one-color .ngx-charts .chart.bar-chart g g path,.rtl-container.yellow.night ngx-charts-bar-vertical-2d.one-color .ngx-charts .chart.bar-chart g g path{fill:#ffa164}.rtl-container.yellow.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path,.rtl-container.yellow.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+1) path{fill:#774312}.rtl-container.yellow.night ngx-charts-bar-vertical.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path,.rtl-container.yellow.night ngx-charts-bar-vertical-2d.two-color .ngx-charts .chart.bar-chart g g:nth-child(2n+2) path{fill:#ffa164}.rtl-container.yellow.night .mat-expansion-panel.flat-expansion-panel{box-shadow:none;padding:0;border-radius:2px;background:none}.rtl-container.yellow.night .mat-progress-bar-buffer{background-color:#dfcfbc}.rtl-container.yellow.night .foreground-text{color:#fff!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all}.rtl-container.yellow.night .foreground-secondary-text{color:!important;white-space:pre-line;overflow-wrap:break-word;word-break:break-all;min-height:2rem}.rtl-container.yellow.night .foreground.mat-progress-spinner circle,.rtl-container.yellow.night .foreground.mat-spinner circle{stroke:#fff}.rtl-container.yellow.night .mat-toolbar-row,.rtl-container.yellow.night .mat-toolbar-single-row{height:5rem}.rtl-container.yellow.night .lnd-info{border-bottom:1px solid rgba(255,255,255,.3)}.rtl-container.yellow.night a{color:#945f1f}.rtl-container.yellow.night .horizontal-button .fa-icon-small{fill:#fff;color:#fff}.rtl-container.yellow.night .h-active-link{border-bottom:2px solid white}.rtl-container.yellow.night .mat-primary .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple),.rtl-container.yellow.night .mat-primary .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:none;font-weight:900}.rtl-container.yellow.night .validation-error-icon{position:relative;top:2px;left:.4rem}.rtl-container.yellow.night .genseed-message{width:10%;color:#945f1f}.rtl-container.yellow.night .material-icons.primary{color:#945f1f}.rtl-container.yellow.night .material-icons.accent{color:#eee}.rtl-container.yellow.night .validation-error-message{position:relative;margin-top:.5rem;width:100%;color:#ff343b}.rtl-container.yellow.night .mat-vertical-content{padding:0 .4rem 0 1.2rem}.rtl-container.yellow.night .row-disabled{background-color:gray}.rtl-container.yellow.night .row-disabled .mat-icon{cursor:not-allowed}.rtl-container.yellow.night .mat-menu-panel{min-width:6.4rem}.rtl-container.yellow.night .horizontal-button{height:5rem;border-radius:0}.rtl-container.yellow.night .horizontal-button:hover{background:#b48f62;color:#eee}.rtl-container.yellow.night .mat-stroked-button.mat-primary.horizontal-button-show{line-height:2.4rem;border-radius:12rem;background-color:#fff;color:#945f1f}.rtl-container.yellow.night .mat-stroked-button.mat-primary.horizontal-button-show:hover{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.rtl-container.yellow.night .mat-stroked-button.mat-primary.horizontal-button-show:hover .mat-button-focus-overlay{opacity:.09}.rtl-container.yellow.night .mat-dialog-container{padding:0;overflow:hidden;border-radius:2px}.rtl-container.yellow.night .mat-button,.rtl-container.yellow.night .mat-icon-button,.rtl-container.yellow.night .mat-stroked-button,.rtl-container.yellow.night .mat-flat-button{border-radius:2px}.rtl-container.yellow.night .cc-data-block .cc-data-title{font-size:80%;font-weight:500;min-width:14rem}.rtl-container.yellow.night .cc-data-block .cc-data-value{font-size:120%}.rtl-container.yellow.night .mat-cell,.rtl-container.yellow.night .mat-header-cell,.rtl-container.yellow.night .mat-footer-cell{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#ffffff4d}.rtl-container.yellow.night table.mat-table{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.yellow.night table.mat-table thead tr th{color:#fff}.rtl-container.yellow.night table.mat-table.error-border{border:1px solid red;box-shadow:0 3px 1px -2px #f003,0 2px 2px #ff000024,0 1px 5px #ff00001f!important}.rtl-container.yellow.night .bordered-box{border:1px solid rgba(255,255,255,.3);border-radius:2px;background:none}.rtl-container.yellow.night .bordered-box.read-only{background-color:#0000000a}.rtl-container.yellow.night .mat-expansion-panel{border:1px solid rgba(255,255,255,.3)}.rtl-container.yellow.night .mat-icon-button.more-button-short{height:1.6rem;line-height:1.6rem}.rtl-container.yellow.night .mat-icon-button.more-button-short .material-icons{font-size:1.6rem}.rtl-container.yellow.night .mat-icon-button.more-button-short .mat-icon{line-height:1.6rem}.rtl-container.yellow.night .dashboard-tabs-group .mat-tab-label:last-child{padding-right:0}.rtl-container.yellow.night .dashboard-tabs-group .mat-tab-label:last-child .more-button{position:absolute;right:0;top:.4rem}.rtl-container.yellow.night .modal-info-header{color:#fff;font-weight:500}.rtl-container.yellow.night .modal-info-header .page-title-img svg{color:#fff}.rtl-container.yellow.night .mat-badge-medium.mat-badge-above .mat-badge-content{top:1px}.rtl-container.yellow.night .tab-badge .mat-badge-content{width:auto;min-width:.8rem;height:.8rem;line-height:.8rem;border-radius:.96rem;margin:auto;padding:.5rem;font-size:80%;font-weight:500;overflow:visible;text-overflow:inherit}.rtl-container.yellow.night .mat-badge-medium.mat-badge-after .mat-badge-content{right:unset;margin-left:1rem!important}@media only screen and (max-width: 37.5em){.rtl-container.yellow.night .mat-badge-medium.mat-badge-after .mat-badge-content{margin-left:0!important}}.rtl-container.yellow.night .table-actions-select{padding:.5rem 1rem;margin:.7rem 0;min-width:10rem;width:10rem;float:right}.rtl-container.yellow.night .table-actions-select .mat-select-placeholder{color:#fff}.rtl-container.yellow.night .mat-select-panel .mat-option.mat-active{background:none}.rtl-container.yellow.night .mat-tab-label{opacity:1;padding:0 3.2rem;min-width:18rem}.rtl-container.yellow.night .mat-drawer-inner-container{overflow:hidden}.rtl-container.yellow.night .mat-fa-icon-button{width:2rem;height:2rem;line-height:2rem}.rtl-container.yellow.night .balances-info-pie-chart .legend-label:nth-child(1) .legend-label-color{background-color:#caaf8f!important}.rtl-container.yellow.night .balances-info-pie-chart .legend-label:nth-child(2) .legend-label-color{background-color:#8c571b!important}.rtl-container.yellow.night .dashboard-card .dashboard-divider{border-top-width:2px}.rtl-container.yellow.night .dashboard-card .mat-card-header .mat-card-title{min-height:4rem;font-size:180%;margin-bottom:0 0 .8rem 0}.rtl-container.yellow.night .dashboard-card .dashboard-info-value{font-weight:700}.rtl-container.yellow.night .dashboard-card .dashboard-info-title{font-weight:500}.rtl-container.yellow.night .dashboard-card .dashboard-node-dot{margin:0 0 -2px 1rem;border:1px solid}.rtl-container.yellow.night .dashboard-card .dashboard-node-square{display:inline-flex;width:1.2rem;height:1.2rem;margin-right:1rem}.rtl-container.yellow.night .dashboard-card .dashboard-capacity-header{font-size:130%;font-weight:700}.rtl-container.yellow.night .dashboard-card .dashboard-capacity-header.this-channel-capacity{font-size:120%}.rtl-container.yellow.night .dashboard-card .mat-icon-button.more-button{width:2rem}.rtl-container.yellow.night .color-warn{color:#ff343b}.rtl-container.yellow.night .fill-warn{fill:#ff343b}.rtl-container.yellow.night .alert{border:1px solid;background-color:#0000000a}.rtl-container.yellow.night .alert.alert-info{border:1px solid #004085;background-color:#cce5ff;color:#004085}.rtl-container.yellow.night .alert.alert-info .alert-icon.ng-fa-icon,.rtl-container.yellow.night .alert.alert-info a{color:#004085}.rtl-container.yellow.night .alert.alert-warn{border:1px solid #856404;background-color:#fff3cd;color:#856404}.rtl-container.yellow.night .alert.alert-warn .alert-icon.ng-fa-icon,.rtl-container.yellow.night .alert.alert-warn a{color:#856404}.rtl-container.yellow.night .alert.alert-danger{border:1px solid #c62828;background-color:#f8d7da;color:#c62828;overflow-wrap:break-word}.rtl-container.yellow.night .alert.alert-danger .alert-icon.ng-fa-icon{color:#c62828}.rtl-container.yellow.night .alert.alert-success{border:1px solid #28ca43;background-color:#d4edda;color:#28ca43}.rtl-container.yellow.night .alert.alert-success .alert-icon.ng-fa-icon{color:#28ca43}.rtl-container.yellow.night .help-expansion .mat-expansion-panel-header,.rtl-container.yellow.night .help-expansion .mat-expansion-panel-header-title{font-weight:500}.rtl-container.yellow.night .mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.rtl-container.yellow.night .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1.8rem}.rtl-container.yellow.night .button-link-dashboard{line-height:0px;font-weight:600;text-decoration:underline;padding:0}.rtl-container.yellow.night .failed-status{color:#ff343b}.rtl-container.yellow.night .material-icons.icon-failed-status{font-size:1.8rem;fill:#ff343b;height:2rem}.rtl-container.yellow.night .svg-fill-primary{fill:#945f1f}.rtl-container.yellow.night .svg-fill-primary-lighter{fill:#b48f62}.rtl-container.yellow.night .mat-expansion-panel-header[aria-disabled=true]{color:#fff}.rtl-container.yellow.night ngx-charts-bar-vertical text,.rtl-container.yellow.night ngx-charts-bar-vertical-2d text{fill:#fff}.rtl-container.yellow.night ngx-charts-bar-vertical .ngx-charts .grid-panel.odd rect,.rtl-container.yellow.night ngx-charts-bar-vertical-2d .ngx-charts .grid-panel.odd rect{fill:none}.rtl-container.yellow.night .mat-paginator-container{padding:0}.rtl-container.yellow.night .invoice-animation-container{position:relative;width:100%;transform:translateY(0)}.rtl-container.yellow.night .invoice-animation-div{position:relative;display:flex;justify-content:flex-start}.rtl-container.yellow.night .invoice-animation-div .particles-circle{position:absolute;background-color:#945f1f;width:30px;height:30px;top:10px;left:50%;margin-top:-13px;margin-left:-45%;z-index:-1;border-radius:50%;transform:scale(0);visibility:hidden}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(odd){border:solid 2px #945f1f;background-color:transparent}@keyframes particles-1{0%{transform:scale(1);visibility:visible}to{left:199px;top:201px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(1){animation:particles-1 2.5s 25ms}@keyframes particles-2{0%{transform:scale(1);visibility:visible}to{left:-40px;top:82px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(2){animation:particles-2 2.5s .05s}@keyframes particles-3{0%{transform:scale(1);visibility:visible}to{left:162px;top:109px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(3){animation:particles-3 2.5s 75ms}@keyframes particles-4{0%{transform:scale(1);visibility:visible}to{left:223px;top:78px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(4){animation:particles-4 2.5s .1s}@keyframes particles-5{0%{transform:scale(1);visibility:visible}to{left:184px;top:113px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(5){animation:particles-5 2.5s .125s}@keyframes particles-6{0%{transform:scale(1);visibility:visible}to{left:-42px;top:-238px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(6){animation:particles-6 2.5s .15s}@keyframes particles-7{0%{transform:scale(1);visibility:visible}to{left:150px;top:-98px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(7){animation:particles-7 2.5s .175s}@keyframes particles-8{0%{transform:scale(1);visibility:visible}to{left:62px;top:225px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(8){animation:particles-8 2.5s .2s}@keyframes particles-9{0%{transform:scale(1);visibility:visible}to{left:113px;top:86px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(9){animation:particles-9 2.5s .225s}@keyframes particles-10{0%{transform:scale(1);visibility:visible}to{left:229px;top:-127px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(10){animation:particles-10 2.5s .25s}@keyframes particles-11{0%{transform:scale(1);visibility:visible}to{left:243px;top:-106px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(11){animation:particles-11 2.5s .275s}@keyframes particles-12{0%{transform:scale(1);visibility:visible}to{left:-168px;top:138px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(12){animation:particles-12 2.5s .3s}@keyframes particles-13{0%{transform:scale(1);visibility:visible}to{left:-124px;top:62px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(13){animation:particles-13 2.5s .325s}@keyframes particles-14{0%{transform:scale(1);visibility:visible}to{left:246px;top:30px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(14){animation:particles-14 2.5s .35s}@keyframes particles-15{0%{transform:scale(1);visibility:visible}to{left:-22px;top:-171px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(15){animation:particles-15 2.5s .375s}@keyframes particles-16{0%{transform:scale(1);visibility:visible}to{left:-144px;top:115px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(16){animation:particles-16 2.5s .4s}@keyframes particles-17{0%{transform:scale(1);visibility:visible}to{left:209px;top:84px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(17){animation:particles-17 2.5s .425s}@keyframes particles-18{0%{transform:scale(1);visibility:visible}to{left:84px;top:-190px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(18){animation:particles-18 2.5s .45s}@keyframes particles-19{0%{transform:scale(1);visibility:visible}to{left:-94px;top:208px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(19){animation:particles-19 2.5s .475s}@keyframes particles-20{0%{transform:scale(1);visibility:visible}to{left:147px;top:203px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(20){animation:particles-20 2.5s .5s}@keyframes particles-21{0%{transform:scale(1);visibility:visible}to{left:178px;top:206px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(21){animation:particles-21 2.5s .525s}@keyframes particles-22{0%{transform:scale(1);visibility:visible}to{left:-10px;top:-226px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(22){animation:particles-22 2.5s .55s}@keyframes particles-23{0%{transform:scale(1);visibility:visible}to{left:3px;top:222px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(23){animation:particles-23 2.5s .575s}@keyframes particles-24{0%{transform:scale(1);visibility:visible}to{left:-182px;top:-44px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(24){animation:particles-24 2.5s .6s}@keyframes particles-25{0%{transform:scale(1);visibility:visible}to{left:-146px;top:166px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(25){animation:particles-25 2.5s .625s}@keyframes particles-26{0%{transform:scale(1);visibility:visible}to{left:144px;top:218px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(26){animation:particles-26 2.5s .65s}@keyframes particles-27{0%{transform:scale(1);visibility:visible}to{left:48px;top:222px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(27){animation:particles-27 2.5s .675s}@keyframes particles-28{0%{transform:scale(1);visibility:visible}to{left:-48px;top:50px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(28){animation:particles-28 2.5s .7s}@keyframes particles-29{0%{transform:scale(1);visibility:visible}to{left:-228px;top:-15px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(29){animation:particles-29 2.5s .725s}@keyframes particles-30{0%{transform:scale(1);visibility:visible}to{left:91px;top:-199px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(30){animation:particles-30 2.5s .75s}@keyframes particles-31{0%{transform:scale(1);visibility:visible}to{left:-40px;top:104px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(31){animation:particles-31 2.5s .775s}@keyframes particles-32{0%{transform:scale(1);visibility:visible}to{left:-102px;top:4px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(32){animation:particles-32 2.5s .8s}@keyframes particles-33{0%{transform:scale(1);visibility:visible}to{left:-26px;top:-89px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(33){animation:particles-33 2.5s .825s}@keyframes particles-34{0%{transform:scale(1);visibility:visible}to{left:-151px;top:-149px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(34){animation:particles-34 2.5s .85s}@keyframes particles-35{0%{transform:scale(1);visibility:visible}to{left:186px;top:200px;transform:scale(0);visibility:hidden}}.rtl-container.yellow.night .invoice-animation-div .particles-circle:nth-of-type(35){animation:particles-35 2.5s .875s}.rtl-container.yellow.night .wiggle{animation:.5s wiggle ease-in-out infinite}@keyframes wiggle{0%{transform:rotate(-3deg)}20%{transform:rotate(20deg)}40%{transform:rotate(-15deg)}60%{transform:rotate(5deg)}90%{transform:rotate(-1deg)}to{transform:rotate(0)}}.rtl-container.yellow.night .shockwave{animation:shockwaveJump 1s ease-out infinite}.rtl-container.yellow.night .shockwave:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .65s ease-out infinite}.rtl-container.yellow.night .shockwave:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;animation:shockwave 1s .5s ease-out infinite}@keyframes shockwaveJump{0%{transform:scale(1)}40%{transform:scale(1.08)}50%{transform:scale(.98)}55%{transform:scale(1.02)}60%{transform:scale(.98)}to{transform:scale(1)}}@keyframes shockwave{0%{transform:scale(1);box-shadow:0 0 2px #00000026,inset 0 0 1px #00000026}95%{box-shadow:0 0 50px #0000,inset 0 0 30px #0000}to{transform:scale(2.25)}} diff --git a/package-lock.json b/package-lock.json index 7325a02c..e6aa91b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,18194 @@ { "name": "rtl", - "version": "0.11.2-beta", - "lockfileVersion": 1, + "version": "0.12.0-beta", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "rtl", + "version": "0.12.0-beta", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@angular/animations": "~13.0.2", + "@angular/cdk": "^13.0.2", + "@angular/common": "~13.0.2", + "@angular/compiler": "~13.0.2", + "@angular/compiler-cli": "~13.0.2", + "@angular/core": "~13.0.2", + "@angular/flex-layout": "^13.0.0-beta.36", + "@angular/forms": "~13.0.2", + "@angular/material": "^13.0.2", + "@angular/platform-browser": "~13.0.2", + "@angular/platform-browser-dynamic": "~13.0.2", + "@angular/router": "~13.0.2", + "@fortawesome/angular-fontawesome": "^0.10.1", + "@fortawesome/fontawesome-svg-core": "^1.2.32", + "@fortawesome/free-regular-svg-icons": "^5.15.1", + "@fortawesome/free-solid-svg-icons": "^5.15.1", + "@ngrx/effects": "^13.0.2", + "@ngrx/store": "^13.0.2", + "@swimlane/ngx-charts": "^19.2.0", + "angular-user-idle": "^2.2.7", + "atob": "^2.1.2", + "cookie-parser": "^1.4.5", + "csurf": "^1.11.0", + "express": "^4.17.1", + "express-session": "^1.17.2", + "hocon-parser": "^1.0.1", + "ini": "^2.0.0", + "jsonwebtoken": "^8.5.1", + "material-design-icons": "^3.0.1", + "ng-qrcode": "^6.0.0", + "ngx-perfect-scrollbar": "^10.0.1", + "otplib": "^12.0.1", + "pdfmake": "^0.2.4", + "request": "^2.88.2", + "request-promise": "^4.2.6", + "roboto-fontface": "^0.10.0", + "rxjs": "^7.1.0", + "sha256": "^0.2.0", + "tslib": "^2.3.1", + "typescript": "~4.4.4", + "ws": "^7.4.6", + "zone.js": "~0.11.4" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^13.0.3", + "@angular-eslint/builder": "13.0.1", + "@angular-eslint/eslint-plugin": "13.0.1", + "@angular-eslint/eslint-plugin-template": "13.0.1", + "@angular-eslint/schematics": "13.0.1", + "@angular-eslint/template-parser": "13.0.1", + "@angular/cli": "^13.0.3", + "@ngrx/store-devtools": "^13.0.2", + "@types/jasmine": "~3.6.0", + "@types/node": "^16.11.12", + "@typescript-eslint/eslint-plugin": "~4.23.0", + "@typescript-eslint/parser": "~4.23.0", + "crypto-browserify": "^3.12.0", + "dotenv": "^8.2.0", + "eslint": "^7.32.0", + "eslint-plugin-deprecation": "^1.2.1", + "jasmine-core": "~3.6.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~6.3.2", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.0.3", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "nodemon": "~2.0.6", + "protractor": "~7.0.0", + "stream-browserify": "^3.0.0", + "ts-node": "~8.3.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-1.0.2.tgz", + "integrity": "sha512-SncaVxs+E3EdoA9xJgHfWPxZfowAgeIsd71VpqCKP6KNKm6s7zSqqvUc70UpKUFsrV3dAmy6qxHoIj5NG+3DiA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "1.0.0", + "sourcemap-codec": "1.4.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1301.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1301.1.tgz", + "integrity": "sha512-3g1wlqihVEOhClsuSzyJYm8Sr4qc4IUDuOa45m8439bz9iQy2wZ3JUGTwX1NcpeLxmCDrgewuphIsW096HxYlg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.1.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.1.1.tgz", + "integrity": "sha512-9+Ql4+rIt5CFfxLCZntCUdcVGl7mOi43/jpmYd31DKEUt4OPrqLoR5LsYepy3UR0+B0kNP6/PEOvaRiCb4t2GQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "1.0.2", + "@angular-devkit/architect": "0.1301.1", + "@angular-devkit/build-webpack": "0.1301.1", + "@angular-devkit/core": "13.1.1", + "@babel/core": "7.16.0", + "@babel/generator": "7.16.0", + "@babel/helper-annotate-as-pure": "7.16.0", + "@babel/plugin-proposal-async-generator-functions": "7.16.4", + "@babel/plugin-transform-async-to-generator": "7.16.0", + "@babel/plugin-transform-runtime": "7.16.4", + "@babel/preset-env": "7.16.4", + "@babel/runtime": "7.16.3", + "@babel/template": "7.16.0", + "@discoveryjs/json-ext": "0.5.6", + "@ngtools/webpack": "13.1.1", + "ansi-colors": "4.1.1", + "babel-loader": "8.2.3", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.9.1", + "cacache": "15.3.0", + "circular-dependency-plugin": "5.2.2", + "copy-webpack-plugin": "10.0.0", + "core-js": "3.19.3", + "critters": "0.0.15", + "css-loader": "6.5.1", + "esbuild-wasm": "0.14.2", + "glob": "7.2.0", + "https-proxy-agent": "5.0.0", + "inquirer": "8.2.0", + "jsonc-parser": "3.0.0", + "karma-source-map-support": "1.4.0", + "less": "4.1.2", + "less-loader": "10.2.0", + "license-webpack-plugin": "4.0.0", + "loader-utils": "3.2.0", + "mini-css-extract-plugin": "2.4.5", + "minimatch": "3.0.4", + "open": "8.4.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "6.0.1", + "piscina": "3.1.0", + "postcss": "8.4.4", + "postcss-import": "14.0.2", + "postcss-loader": "6.2.1", + "postcss-preset-env": "6.7.0", + "regenerator-runtime": "0.13.9", + "resolve-url-loader": "4.0.0", + "rxjs": "6.6.7", + "sass": "1.44.0", + "sass-loader": "12.4.0", + "semver": "7.3.5", + "source-map-loader": "3.0.0", + "source-map-support": "0.5.21", + "stylus": "0.55.0", + "stylus-loader": "6.2.0", + "terser": "5.10.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.3.1", + "webpack": "5.65.0", + "webpack-dev-middleware": "5.2.2", + "webpack-dev-server": "4.6.0", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.14.2" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0 || ^13.1.0-next", + "@angular/localize": "^13.0.0 || ^13.1.0-next", + "@angular/service-worker": "^13.0.0 || ^13.1.0-next", + "karma": "^6.3.0", + "ng-packagr": "^13.0.0 || ^13.1.0-next", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0", + "typescript": ">=4.4.3 <4.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1301.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1301.1.tgz", + "integrity": "sha512-drXKdqsM3uB4nII0pU8FtAI6cd96sza3r1mWl8mqJEkzgkYIGVK/2CekKdVe1AXAvEeQFVRDRMYXraMNpli/QQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1301.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/core": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.1.tgz", + "integrity": "sha512-tpOOzdrbrXG+BiJ/iKUX5VU5vBXN/n+H1EMThTwjgT11mqw2uvMj4sSRPvHUrrfxbLE9deuCDQEzmci71enn2w==", + "dev": true, + "dependencies": { + "ajv": "8.8.2", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/schematics": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.1.tgz", + "integrity": "sha512-uDE0vzjx7MyiJOul91MYMVpRPnAW5/o+pHcINx85wR6t4/RDQSH3UdBCCFxxwv1W9YZSR4kMiwi/sUYqPqbQMw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.1.1", + "jsonc-parser": "3.0.0", + "magic-string": "0.25.7", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-eslint/builder": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-13.0.1.tgz", + "integrity": "sha512-z43jUpA4xm767ze/yWwvoy5PdvSe57DAvXHlHywv0iYxXl1OhytPIA0CdOA3ZWkbSWWVmWmFzELeYfGnE3+igg==", + "dev": true, + "dependencies": { + "@nrwl/devkit": "13.1.3" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/bundled-angular-compiler": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-13.0.1.tgz", + "integrity": "sha512-Eih9Kh0hxHO4+3in9mgjksQecym0p+3p+287y3LLihIc7gCkAO4xZeHGVGiC8qUX72PNUXkDlyskI9oHjK9Axw==", + "dev": true + }, + "node_modules/@angular-eslint/eslint-plugin": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-13.0.1.tgz", + "integrity": "sha512-WxqgMLTfE45dqjzg/Nq0dOEDwzpdB+zYOWrA41MT3jt0UbukFEx8+FMrAgBLIeDaHzwWomiAEV5Tm5mQAKA4VA==", + "dev": true, + "dependencies": { + "@angular-eslint/utils": "13.0.1", + "@typescript-eslint/experimental-utils": "5.3.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/eslint-plugin-template": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-13.0.1.tgz", + "integrity": "sha512-8FclNMjEzb87CtE3TdsXXWk1SRCp/tSSHI0cYVv6YpU7f/9Mnej+ZY3MdvqI/amD8zJueTMdnjNRP/jiwX2XhQ==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "13.0.1", + "@typescript-eslint/experimental-utils": "5.3.0", + "aria-query": "^4.2.2", + "axobject-query": "^2.2.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/schematics": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-13.0.1.tgz", + "integrity": "sha512-LiPUVff6fexQNa6Ttgb+yhIoQc9oXc1qb34kmntvQDw59xBeEyrUojG2P2I5VS+1ZoVUWNY86cqEaxkFJVkY7w==", + "dev": true, + "dependencies": { + "@angular-eslint/eslint-plugin": "13.0.1", + "@angular-eslint/eslint-plugin-template": "13.0.1", + "ignore": "5.1.9", + "strip-json-comments": "3.1.1", + "tmp": "0.2.1" + }, + "peerDependencies": { + "@angular/cli": ">= 13.0.0 < 14.0.0" + } + }, + "node_modules/@angular-eslint/template-parser": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-13.0.1.tgz", + "integrity": "sha512-GEJzVLS4Sb4UdurqaPD1/ucGhagGAQCp17CIgjpcXRwzxBZ9OLqbO/rx8diRbADp+1rceVq4BhADsg3VdsOsuw==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "13.0.1", + "eslint-scope": "^5.1.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/utils": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-13.0.1.tgz", + "integrity": "sha512-makSpu8kr5yHIz0c6WaWwix+tk5DN5Uix9vQulVisZWchTmSqEovJih/UC+4XspM9kQbjcbWHohYKiBbBEQpbA==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "13.0.1", + "@typescript-eslint/experimental-utils": "5.3.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular/animations": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.0.3.tgz", + "integrity": "sha512-wGhUzbf8tOHwNx/8JK3RIUisunayENj1j7aSlm8yrBoawvNdgCQVESyZdtfHxHuScRSpzxSIWdMggZ4G4+DuFg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.0.3" + } + }, + "node_modules/@angular/cdk": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-13.1.0.tgz", + "integrity": "sha512-OOMDmXnCpodYMEbRro8FUcXqQ8UN3lU/OXnuuDhHOJIrb7loizSGKkJdaVLZtM9ygH7qbOxRhkC2efjmtIn48g==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^5.0.0" + }, + "peerDependencies": { + "@angular/common": "^13.0.0 || ^14.0.0-0", + "@angular/core": "^13.0.0 || ^14.0.0-0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.1.1.tgz", + "integrity": "sha512-cdcl3UAhA2oQK8klDl9zt5SwScSg2F4VQDUQ8XsdApKIRlEfee1Xf7WXKsGpgAuojrFHMzDVWjAg/bOyIpioLg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@angular-devkit/architect": "0.1301.1", + "@angular-devkit/core": "13.1.1", + "@angular-devkit/schematics": "13.1.1", + "@schematics/angular": "13.1.1", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.3", + "ini": "2.0.0", + "inquirer": "8.2.0", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.5", + "npm-pick-manifest": "6.1.1", + "open": "8.4.0", + "ora": "5.4.1", + "pacote": "12.0.2", + "resolve": "1.20.0", + "semver": "7.3.5", + "symbol-observable": "4.0.0", + "uuid": "8.3.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.0.3.tgz", + "integrity": "sha512-xxQIQD5rWWHafKRPCgvkWvy53b+QkbJ9yAf3qYTp0gXZJMg/Cx3Ylc8LA2o1kyVJxCI/amXf5k4rr1S9yU7zxw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.0.3", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.0.3.tgz", + "integrity": "sha512-WINfdQk6WojEhTIcNOkvhQu1yDRtq3FUx2saCZyGwS3MbzkfWUr4/x6VKJ5sAYJYnlaf9Goypau4/5lPp4+0tA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.0.3.tgz", + "integrity": "sha512-j3uCk46BwyuRmYLwB39LoUEjARMdhGSI6kSDsQWPop+iHGJkP4ThUUQCrCGClqhXdyGdhkTrq8jqZ/GfXmUkPA==", + "dependencies": { + "@babel/core": "^7.8.6", + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.25.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/main-ngcc.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/compiler": "13.0.3", + "typescript": ">=4.4.2 <4.5" + } + }, + "node_modules/@angular/core": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.0.3.tgz", + "integrity": "sha512-w8FngZBPrLw9kHftYy824C/wSBtLKCWvGU04qI6V9BCpxedf7cyOIhOzaL+4Pz/rwgvo+0Qn2uM1ssZ2+JUdvQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.11.4" + } + }, + "node_modules/@angular/flex-layout": { + "version": "13.0.0-beta.36", + "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-13.0.0-beta.36.tgz", + "integrity": "sha512-JLC3C1oEKVu9lLyottvHbfyCf/pOPzjXfFO3qOPBbWyVqxuQkfkd2NILZZh4DHsKYbBxIZ01vnfQHCV8NdaZ3w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/cdk": "^13.0.0", + "@angular/common": "^13.0.0", + "@angular/core": "^13.0.0", + "@angular/platform-browser": "^13.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/forms": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.0.3.tgz", + "integrity": "sha512-Sxpc9kiCYi59GzKkpvpqgUejXq7P1dt3l1C5mnV3WBdNEpVBDRD63YLlNTya+w4uSMr+WEbtCys41QO8MXNIHQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.0.3", + "@angular/core": "13.0.3", + "@angular/platform-browser": "13.0.3", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/material": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-13.1.0.tgz", + "integrity": "sha512-DhMcG5OY2+laQ8LcSnbANHUu8u/zaDHK+gV0EcL17cP0nvfvKmUPUCQ1o4KcAFg/B0IeXC7ByRj23T1FiPIfCA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^13.0.0 || ^14.0.0-0", + "@angular/cdk": "13.1.0", + "@angular/common": "^13.0.0 || ^14.0.0-0", + "@angular/core": "^13.0.0 || ^14.0.0-0", + "@angular/forms": "^13.0.0 || ^14.0.0-0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.0.3.tgz", + "integrity": "sha512-XCeCnsD997Erl4XGNFHIqC9cTkO9uSHdaoDvLuNMsF2kr5V1GOeFkh71CYNmCsWrTj4PFqx9q+ziGgvxM4eeOQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/animations": "13.0.3", + "@angular/common": "13.0.3", + "@angular/core": "13.0.3" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.0.3.tgz", + "integrity": "sha512-+s2o7M/WzRaytjDt6LPqZQ2mmVFpOQBbfiXmq4OwnETc2d6dIpWJzfs00MCAVhu1tR1btzsA3Qa6lA1YqULHrg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.0.3", + "@angular/compiler": "13.0.3", + "@angular/core": "13.0.3", + "@angular/platform-browser": "13.0.3" + } + }, + "node_modules/@angular/router": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.0.3.tgz", + "integrity": "sha512-NNDrSK32mpkuQiY6CzAjRBvWSiLM+61dC3EOfBUDIyPzIp318fhqZ5ohxY42Fvp07KGnRv5tcqb/1QE8Ukwbyg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.0.3", + "@angular/core": "13.0.3", + "@angular/platform-browser": "13.0.3", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "dependencies": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", + "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz", + "integrity": "sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "dependencies": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz", + "integrity": "sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-member-expression-to-functions": "^7.16.5", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.5", + "@babel/helper-split-export-declaration": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", + "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "regexpu-core": "^4.7.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", + "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz", + "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", + "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz", + "integrity": "sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz", + "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.5", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", + "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz", + "integrity": "sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-wrap-function": "^7.16.5", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz", + "integrity": "sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-member-expression-to-functions": "^7.16.5", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.5", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz", + "integrity": "sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.5", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz", + "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==", + "dependencies": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.5", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.5.tgz", + "integrity": "sha512-+Ce7T5iPNWzfu9C1aB5tN3Lyafs5xb3Ic7vBWyZL2KXT3QSdD1dD3CvgOzPmQKoNNRt6uauc0XwNJTQtXC2/Mw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", + "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", + "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", + "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.4", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz", + "integrity": "sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz", + "integrity": "sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz", + "integrity": "sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz", + "integrity": "sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz", + "integrity": "sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz", + "integrity": "sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz", + "integrity": "sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz", + "integrity": "sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz", + "integrity": "sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.3", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz", + "integrity": "sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz", + "integrity": "sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz", + "integrity": "sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz", + "integrity": "sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-create-class-features-plugin": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz", + "integrity": "sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz", + "integrity": "sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", + "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz", + "integrity": "sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz", + "integrity": "sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz", + "integrity": "sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-replace-supers": "^7.16.5", + "@babel/helper-split-export-declaration": "^7.16.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz", + "integrity": "sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz", + "integrity": "sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz", + "integrity": "sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz", + "integrity": "sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz", + "integrity": "sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz", + "integrity": "sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz", + "integrity": "sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz", + "integrity": "sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz", + "integrity": "sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz", + "integrity": "sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz", + "integrity": "sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-simple-access": "^7.16.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz", + "integrity": "sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-validator-identifier": "^7.15.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz", + "integrity": "sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz", + "integrity": "sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz", + "integrity": "sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz", + "integrity": "sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-replace-supers": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz", + "integrity": "sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz", + "integrity": "sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz", + "integrity": "sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz", + "integrity": "sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz", + "integrity": "sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz", + "integrity": "sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz", + "integrity": "sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz", + "integrity": "sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz", + "integrity": "sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz", + "integrity": "sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz", + "integrity": "sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz", + "integrity": "sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", + "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.3", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-async-generator-functions": "^7.16.4", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-class-static-block": "^7.16.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.0", + "@babel/plugin-proposal-export-namespace-from": "^7.16.0", + "@babel/plugin-proposal-json-strings": "^7.16.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-object-rest-spread": "^7.16.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.0", + "@babel/plugin-transform-async-to-generator": "^7.16.0", + "@babel/plugin-transform-block-scoped-functions": "^7.16.0", + "@babel/plugin-transform-block-scoping": "^7.16.0", + "@babel/plugin-transform-classes": "^7.16.0", + "@babel/plugin-transform-computed-properties": "^7.16.0", + "@babel/plugin-transform-destructuring": "^7.16.0", + "@babel/plugin-transform-dotall-regex": "^7.16.0", + "@babel/plugin-transform-duplicate-keys": "^7.16.0", + "@babel/plugin-transform-exponentiation-operator": "^7.16.0", + "@babel/plugin-transform-for-of": "^7.16.0", + "@babel/plugin-transform-function-name": "^7.16.0", + "@babel/plugin-transform-literals": "^7.16.0", + "@babel/plugin-transform-member-expression-literals": "^7.16.0", + "@babel/plugin-transform-modules-amd": "^7.16.0", + "@babel/plugin-transform-modules-commonjs": "^7.16.0", + "@babel/plugin-transform-modules-systemjs": "^7.16.0", + "@babel/plugin-transform-modules-umd": "^7.16.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", + "@babel/plugin-transform-new-target": "^7.16.0", + "@babel/plugin-transform-object-super": "^7.16.0", + "@babel/plugin-transform-parameters": "^7.16.3", + "@babel/plugin-transform-property-literals": "^7.16.0", + "@babel/plugin-transform-regenerator": "^7.16.0", + "@babel/plugin-transform-reserved-words": "^7.16.0", + "@babel/plugin-transform-shorthand-properties": "^7.16.0", + "@babel/plugin-transform-spread": "^7.16.0", + "@babel/plugin-transform-sticky-regex": "^7.16.0", + "@babel/plugin-transform-template-literals": "^7.16.0", + "@babel/plugin-transform-typeof-symbol": "^7.16.0", + "@babel/plugin-transform-unicode-escapes": "^7.16.0", + "@babel/plugin-transform-unicode-regex": "^7.16.0", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.0", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.19.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.5.tgz", + "integrity": "sha512-F1pMwvTiUNSAM8mc45kccMQxj31x3y3P+tA/X8hKNWp3/hUsxdGxZ3D3H8JIkxtfA8qGkaBTKvcmvStaYseAFw==", + "dev": true, + "dependencies": { + "core-js-pure": "^3.19.0", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz", + "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.5", + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.5", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz", + "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==", + "dependencies": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@foliojs-fork/fontkit": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/fontkit/-/fontkit-1.9.1.tgz", + "integrity": "sha512-U589voc2/ROnvx1CyH9aNzOQWJp127JGU1QAylXGQ7LoEAF6hMmahZLQ4eqAcgHUw+uyW4PjtCItq9qudPkK3A==", + "dependencies": { + "@foliojs-fork/restructure": "^2.0.2", + "brfs": "^2.0.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.1", + "clone": "^1.0.4", + "deep-equal": "^1.0.0", + "dfa": "^1.2.0", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.2.2", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/@foliojs-fork/linebreak": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/linebreak/-/linebreak-1.1.1.tgz", + "integrity": "sha512-pgY/+53GqGQI+mvDiyprvPWgkTlVBS8cxqee03ejm6gKAQNsR1tCYCIvN9FHy7otZajzMqCgPOgC4cHdt4JPig==", + "dependencies": { + "base64-js": "1.3.1", + "brfs": "^2.0.2", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/@foliojs-fork/linebreak/node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "node_modules/@foliojs-fork/pdfkit": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@foliojs-fork/pdfkit/-/pdfkit-0.13.0.tgz", + "integrity": "sha512-YXeG1fml9k97YNC9K8e292Pj2JzGt9uOIiBFuQFxHsdQ45BlxW+JU3RQK6JAvXU7kjhjP8rCcYvpk36JLD33sQ==", + "dependencies": { + "@foliojs-fork/fontkit": "^1.9.1", + "@foliojs-fork/linebreak": "^1.1.1", + "crypto-js": "^4.0.0", + "png-js": "^1.0.0" + } + }, + "node_modules/@foliojs-fork/restructure": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@foliojs-fork/restructure/-/restructure-2.0.2.tgz", + "integrity": "sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==" + }, + "node_modules/@fortawesome/angular-fontawesome": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.10.1.tgz", + "integrity": "sha512-4nVRm+NcLcdaNrNFhThb/7/tb5CDm0vQwJFyljR3XMCQyEr94hMX5SiUYbvYm9YJVImMYfdpR0lO0B8sh12Vbw==", + "dependencies": { + "tslib": "^2.3.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1.2.27 || ~1.3.0-beta2" + } + }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", + "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "1.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", + "integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.4.tgz", + "integrity": "sha512-9VNNnU3CXHy9XednJ3wzQp6SwNwT3XaM26oS4Rp391GsxVYA+0oDR2J194YCIWf7jNRCYKjUCOduxdceLrx+xw==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", + "integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==", + "dev": true + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz", + "integrity": "sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ngrx/effects": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-13.0.2.tgz", + "integrity": "sha512-7yW/KCxlRatDkdEriSnORlOYX8+1QAWEjPulNmHSPwehkzTQ3fIPfRBQy8xP8bnjwvGxnEZNwQlU4q1KVYOfhg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "^13.0.0", + "@ngrx/store": "13.0.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@ngrx/store": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-13.0.2.tgz", + "integrity": "sha512-F7tsc3oCvKh+62MKiXTrvSeaxR41u4p8bch3BLjz12F37376rMuBnXf+V1thsPTZ6RB6aycAi821EQYVXFCXZg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "^13.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@ngrx/store-devtools": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-13.0.2.tgz", + "integrity": "sha512-fcQ5A7cv9PONFvqlpFPXHswWjEflJvqrNt6wmywlxMtJDjkgzCHpvRiJqup/FiTosblRERoeZXN0oHW3Er3+rw==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@ngrx/store": "13.0.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.1.1.tgz", + "integrity": "sha512-TGCuscGFNHPoXScswuj9UxNv8E+A/PXs5XH8cyTtbkmlpBec1EShnaUTdDP5nhykjjaWzd3TLChlp9DinE+Ctg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0 || ^13.1.0-next", + "typescript": ">=4.4.3 <4.6", + "webpack": "^5.30.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", + "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/@npmcli/git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", + "dev": true + }, + "node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "dependencies": { + "infer-owner": "^1.0.4" + } + }, + "node_modules/@npmcli/run-script": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", + "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^8.2.0", + "read-package-json-fast": "^2.0.1" + } + }, + "node_modules/@nrwl/cli": { + "version": "13.3.4", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-13.3.4.tgz", + "integrity": "sha512-x3IM9X/q5Yv54ZSr+GsIxa07GJt+hG7dOdjvAFBnixMWb3o4utOVrd6GusDrn2t0HhnCuzqLosFnk+gcOrL34w==", + "dev": true, + "dependencies": { + "@nrwl/tao": "13.3.4", + "chalk": "4.1.0", + "enquirer": "~2.3.6", + "v8-compile-cache": "2.3.0", + "yargs": "15.4.1", + "yargs-parser": "20.0.0" + }, + "bin": { + "nx": "bin/nx.js" + } + }, + "node_modules/@nrwl/cli/node_modules/@nrwl/tao": { + "version": "13.3.4", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-13.3.4.tgz", + "integrity": "sha512-ujwxGZcR3De8FSj8IjVSGmfZ2CQZfFzeV9QXU8DeiZ9J1ylWPwWpMIS3XVxZIpe7gR++XP4jbvFodKFQP7PzVQ==", + "dev": true, + "dependencies": { + "chalk": "4.1.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "fs-extra": "^9.1.0", + "ignore": "^5.0.4", + "jsonc-parser": "3.0.0", + "nx": "13.3.4", + "rxjs": "^6.5.4", + "rxjs-for-await": "0.0.2", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.3.0", + "yargs-parser": "20.0.0" + }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nrwl/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nrwl/cli/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nrwl/cli/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@nrwl/cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@nrwl/cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@nrwl/cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nrwl/cli/node_modules/nx": { + "version": "13.3.4", + "resolved": "https://registry.npmjs.org/nx/-/nx-13.3.4.tgz", + "integrity": "sha512-prWCa/8jKBWUiCWhAbRD3UftTvaD8MgUo98g557/EpPaC9LHPPWNOhXDyij21sedouyDVdQGhr8TW4pEHt2zeQ==", + "dev": true, + "dependencies": { + "@nrwl/cli": "13.3.4" + }, + "bin": { + "nx": "bin/nx.js" + } + }, + "node_modules/@nrwl/cli/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nrwl/cli/node_modules/rxjs-for-await": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", + "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", + "dev": true, + "peerDependencies": { + "rxjs": "^6.0.0" + } + }, + "node_modules/@nrwl/cli/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@nrwl/cli/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nrwl/cli/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nrwl/cli/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@nrwl/cli/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nrwl/cli/node_modules/yargs/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@nrwl/devkit": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.1.3.tgz", + "integrity": "sha512-TAAsZJvVc/obeH0rZKY6miVhyM2GHGb8qIWp9MAIdLlXf4VDcNC7rxwb5OrGVSwuTTjqGYBGPUx0yEogOOJthA==", + "dev": true, + "dependencies": { + "@nrwl/tao": "13.1.3", + "ejs": "^3.1.5", + "ignore": "^5.0.4", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tslib": "^2.0.0" + } + }, + "node_modules/@nrwl/devkit/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nrwl/devkit/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@nrwl/devkit/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/tao": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-13.1.3.tgz", + "integrity": "sha512-/IwJgSgCBD1SaF+n8RuXX2OxDAh8ut/+P8pMswjm8063ac30UlAHjQ4XTYyskLH8uoUmNi2hNaGgHUrkwt7tQA==", + "dev": true, + "dependencies": { + "chalk": "4.1.0", + "enquirer": "~2.3.6", + "fs-extra": "^9.1.0", + "jsonc-parser": "3.0.0", + "nx": "13.1.3", + "rxjs": "^6.5.4", + "rxjs-for-await": "0.0.2", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.0.0", + "yargs-parser": "20.0.0" + }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nrwl/tao/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nrwl/tao/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nrwl/tao/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@nrwl/tao/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@nrwl/tao/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nrwl/tao/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nrwl/tao/node_modules/rxjs-for-await": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", + "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", + "dev": true, + "peerDependencies": { + "rxjs": "^6.0.0" + } + }, + "node_modules/@nrwl/tao/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@nrwl/tao/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/tao/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@otplib/core": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/core/-/core-12.0.1.tgz", + "integrity": "sha512-4sGntwbA/AC+SbPhbsziRiD+jNDdIzsZ3JUyfZwjtKyc/wufl1pnSIaG4Uqx8ymPagujub0o92kgBnB89cuAMA==" + }, + "node_modules/@otplib/plugin-crypto": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/plugin-crypto/-/plugin-crypto-12.0.1.tgz", + "integrity": "sha512-qPuhN3QrT7ZZLcLCyKOSNhuijUi9G5guMRVrxq63r9YNOxxQjPm59gVxLM+7xGnHnM6cimY57tuKsjK7y9LM1g==", + "dependencies": { + "@otplib/core": "^12.0.1" + } + }, + "node_modules/@otplib/plugin-thirty-two": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/plugin-thirty-two/-/plugin-thirty-two-12.0.1.tgz", + "integrity": "sha512-MtT+uqRso909UkbrrYpJ6XFjj9D+x2Py7KjTO9JDPhL0bJUYVu5kFP4TFZW4NFAywrAtFRxOVY261u0qwb93gA==", + "dependencies": { + "@otplib/core": "^12.0.1", + "thirty-two": "^1.0.2" + } + }, + "node_modules/@otplib/preset-default": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/preset-default/-/preset-default-12.0.1.tgz", + "integrity": "sha512-xf1v9oOJRyXfluBhMdpOkr+bsE+Irt+0D5uHtvg6x1eosfmHCsCC6ej/m7FXiWqdo0+ZUI6xSKDhJwc8yfiOPQ==", + "dependencies": { + "@otplib/core": "^12.0.1", + "@otplib/plugin-crypto": "^12.0.1", + "@otplib/plugin-thirty-two": "^12.0.1" + } + }, + "node_modules/@otplib/preset-v11": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/preset-v11/-/preset-v11-12.0.1.tgz", + "integrity": "sha512-9hSetMI7ECqbFiKICrNa4w70deTUfArtwXykPUvSHWOdzOlfa9ajglu7mNCntlvxycTiOAXkQGwjQCzzDEMRMg==", + "dependencies": { + "@otplib/core": "^12.0.1", + "@otplib/plugin-crypto": "^12.0.1", + "@otplib/plugin-thirty-two": "^12.0.1" + } + }, + "node_modules/@schematics/angular": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.1.1.tgz", + "integrity": "sha512-GY49qumsQ+w1aDsCa796iPL/GcokCVKr2OMLss3avwciBFciMOVsLxZ04lprPCivCQRcKNqbSDDx4+xH5qkrAg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.1.1", + "@angular-devkit/schematics": "13.1.1", + "jsonc-parser": "3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@swimlane/ngx-charts": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/@swimlane/ngx-charts/-/ngx-charts-19.2.0.tgz", + "integrity": "sha512-FJuDuwxti8U6BfMC0m/KfcyBqbn6mmkAX7NANbcoUaNUrngq+JBZYGVJhM66RDt54m82S7IIZV5kOK/jDTry+w==", + "dependencies": { + "@types/d3-shape": "^2.0.0", + "d3-array": "^2.9.1", + "d3-brush": "^2.1.0", + "d3-color": "^2.0.0", + "d3-format": "^2.0.0", + "d3-hierarchy": "^2.0.0", + "d3-interpolate": "^2.0.1", + "d3-scale": "^3.2.3", + "d3-selection": "^2.0.0", + "d3-shape": "^2.0.0", + "d3-time-format": "^3.0.0", + "d3-transition": "^2.0.0", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/animations": ">=12.0.0", + "@angular/cdk": ">=12.0.0", + "@angular/common": ">=12.0.0", + "@angular/core": ">=12.0.0", + "@angular/forms": ">=12.0.0", + "@angular/platform-browser": ">=12.0.0", + "@angular/platform-browser-dynamic": ">=12.0.0", + "rxjs": "6.x" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "node_modules/@types/d3-path": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.1.tgz", + "integrity": "sha512-6K8LaFlztlhZO7mwsZg7ClRsdLg3FJRzIIi6SZXDWmmSJc2x8dd2VkESbLXdk3p8cuvz71f36S0y8Zv2AxqvQw==" + }, + "node_modules/@types/d3-shape": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.3.tgz", + "integrity": "sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ==", + "dependencies": { + "@types/d3-path": "^2" + } + }, + "node_modules/@types/eslint": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.1.tgz", + "integrity": "sha512-UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.7.tgz", + "integrity": "sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "3.6.11", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.11.tgz", + "integrity": "sha512-S6pvzQDvMZHrkBz2Mcn/8Du7cpr76PlRJBAoHnSDNbulULsH5dp0Gns+WRyNX5LHejz/ljxK4/vIHK/caHt6SQ==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.13.tgz", + "integrity": "sha512-eUXZzHLHoZqj1frtUetNkUetYoJ6X55UmrVnFD4DMhVeAmwLjniZhtBmsRiemQh4uq4G3vUra/Ws/hs9vEvL3Q==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "dev": true + }, + "node_modules/@types/selenium-webdriver": { + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.19.tgz", + "integrity": "sha512-OFUilxQg+rWL2FMxtmIgCkUDlJB6pskkpvmew7yeXfzzsOBb5rc+y2+DjHm+r3r1ZPPcJefK3DveNSYWGiy68g==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.23.0.tgz", + "integrity": "sha512-tGK1y3KIvdsQEEgq6xNn1DjiFJtl+wn8JJQiETtCbdQxw1vzjXyAaIkEmO2l6Nq24iy3uZBMFQjZ6ECf1QdgGw==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "4.23.0", + "@typescript-eslint/scope-manager": "4.23.0", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/experimental-utils": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.23.0.tgz", + "integrity": "sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.23.0", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/typescript-estree": "4.23.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz", + "integrity": "sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.0.tgz", + "integrity": "sha512-NFVxYTjKj69qB0FM+piah1x3G/63WB8vCBMnlnEHUsiLzXSTWb9FmFn36FD9Zb4APKBLY3xRArOGSMQkuzTF1w==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.3.0", + "@typescript-eslint/types": "5.3.0", + "@typescript-eslint/typescript-estree": "5.3.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.3.0.tgz", + "integrity": "sha512-22Uic9oRlTsPppy5Tcwfj+QET5RWEnZ5414Prby465XxQrQFZ6nnm5KnXgnsAJefG4hEgMnaxTB3kNEyjdjj6A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.3.0", + "@typescript-eslint/visitor-keys": "5.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz", + "integrity": "sha512-oVIAfIQuq0x2TFDNLVavUn548WL+7hdhxYn+9j3YdJJXB7mH9dAmZNJsPDa7Jc+B9WGqoiex7GUDbyMxV0a/aw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.3.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.23.0.tgz", + "integrity": "sha512-wsvjksHBMOqySy/Pi2Q6UuIuHYbgAMwLczRl4YanEPKW5KVxI9ZzDYh3B5DtcZPQTGRWFJrfcbJ6L01Leybwug==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "4.23.0", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/typescript-estree": "4.23.0", + "debug": "^4.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz", + "integrity": "sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.23.0.tgz", + "integrity": "sha512-ZZ21PCFxPhI3n0wuqEJK9omkw51wi2bmeKJvlRZPH5YFkcawKOuRMQMnI8mH6Vo0/DoHSeZJnHiIx84LmVQY+w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.3.0.tgz", + "integrity": "sha512-fce5pG41/w8O6ahQEhXmMV+xuh4+GayzqEogN24EK+vECA3I6pUwKuLi5QbXO721EMitpQne5VKXofPonYlAQg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.0.tgz", + "integrity": "sha512-FJ0nqcaUOpn/6Z4Jwbtf+o0valjBLkqc3MWkMvrhA2TvzFXtcclIM8F4MBEmYa2kgcI8EZeSAzwoSrIC8JYkug==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.3.0", + "@typescript-eslint/visitor-keys": "5.3.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz", + "integrity": "sha512-oVIAfIQuq0x2TFDNLVavUn548WL+7hdhxYn+9j3YdJJXB7mH9dAmZNJsPDa7Jc+B9WGqoiex7GUDbyMxV0a/aw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.3.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.23.0.tgz", + "integrity": "sha512-5PNe5cmX9pSifit0H+nPoQBXdbNzi5tOEec+3riK+ku4e3er37pKxMKDH5Ct5Y4fhWxcD4spnlYjxi9vXbSpwg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.23.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "optional": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/angular-user-idle": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/angular-user-idle/-/angular-user-idle-2.2.7.tgz", + "integrity": "sha512-Vu+vioYIRwT/Y2Aq+qXhP+wrleAfU50FIix736CY0IW37yAjRNPuXVljgRRtBSildVIzLRVtaGTqvC44duDo2w==", + "dependencies": { + "tslib": "^1.9.0" + }, + "peerDependencies": { + "@angular/common": "^6.0.0 || ^12.0.0", + "@angular/core": "^6.0.0 || ^12.0.0", + "rxjs": "^6.0.0" + } + }, + "node_modules/angular-user-idle/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha1-dJRAWIh9goPhidlUYAlHvJj+AGI=", + "dependencies": { + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + } + }, + "node_modules/ast-transform/node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + }, + "node_modules/autoprefixer/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/autoprefixer/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/autoprefixer/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "node_modules/babel-loader": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", + "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", + "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.0", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", + "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.0", + "core-js-compat": "^3.18.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", + "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", + "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "blocking-proxy": "built/lib/bin.js" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/bonjour/node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", + "dependencies": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" + }, + "bin": { + "brfs": "bin/cmd.js" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/brotli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.2.tgz", + "integrity": "sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=", + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk=", + "dependencies": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dependencies": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + } + }, + "node_modules/browserstack/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/browserstack/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/browserstack/node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001286", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz", + "integrity": "sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==" + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-hex": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", + "integrity": "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", + "integrity": "sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo=" + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/copy-anything": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", + "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "dev": true, + "dependencies": { + "is-what": "^3.12.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.0.0.tgz", + "integrity": "sha512-tuCVuFMBbRsb7IH0q1CUb50/Skv+7a6c7DJ+xi4fAbOzNLTYVMUTPnf8uGvKPtmqTvzYBrfEFo7YgP4TsUWmtg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz", + "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.8", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz", + "integrity": "sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.3.tgz", + "integrity": "sha512-59tYzuWgEEVU9r+SRgceIGXSSUn47JknoiXW6Oq7RW8QHjXWz3/vp8pa7dbtuVu40sewz3OP3JmQEcDdztrLhA==", + "dev": true, + "dependencies": { + "browserslist": "^4.18.1", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-js-pure": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.3.tgz", + "integrity": "sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/critters": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.15.tgz", + "integrity": "sha512-AE7hkXb3eZUbEvS1SKZa+OU4o2kUOXtzVeE/2E/mjU/0mV1wpBT1HfUCWVRS4zwvkBNJ0AQYsVjAoFm+kIhfdw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^4.1.3", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "postcss": "^8.3.7", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/critters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/critters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/critters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/csrf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz", + "integrity": "sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==", + "dependencies": { + "rndm": "1.2.0", + "tsscmp": "1.0.6", + "uid-safe": "2.1.5" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-blank-pseudo": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "bin": { + "css-blank-pseudo": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-blank-pseudo/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/css-blank-pseudo/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-blank-pseudo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-has-pseudo": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "bin": { + "css-has-pseudo": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-has-pseudo/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/css-has-pseudo/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-has-pseudo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-loader": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", + "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "bin": { + "css-prefers-color-scheme": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-prefers-color-scheme/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/css-prefers-color-scheme/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-prefers-color-scheme/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-select": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz", + "integrity": "sha512-6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csurf": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.11.0.tgz", + "integrity": "sha512-UCtehyEExKTxgiu8UHdGvHj4tnpE/Qctue03Giq5gPgMQ9cg/ciod5blZQ5a4uCEenNQjxyGuzygLdKUmee/bQ==", + "dependencies": { + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "csrf": "3.1.0", + "http-errors": "~1.7.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/csurf/node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-brush": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-2.1.0.tgz", + "integrity": "sha512-cHLLAFatBATyIKqZOkk/mDHUbzne2B3ZwxkzMHvFTCZCmLaXDpZRihQSn8UNXTkGD/3lb/W2sQz0etAftmHMJQ==", + "dependencies": { + "d3-dispatch": "1 - 2", + "d3-drag": "2", + "d3-interpolate": "1 - 2", + "d3-selection": "2", + "d3-transition": "2" + } + }, + "node_modules/d3-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + }, + "node_modules/d3-dispatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", + "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + }, + "node_modules/d3-drag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-2.0.0.tgz", + "integrity": "sha512-g9y9WbMnF5uqB9qKqwIIa/921RYWzlUDv9Jl1/yONQwxbOfszAWTCm8u7HOTgJgRDXiRZN56cHT9pd24dmXs8w==", + "dependencies": { + "d3-dispatch": "1 - 2", + "d3-selection": "2" + } + }, + "node_modules/d3-ease": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-2.0.0.tgz", + "integrity": "sha512-68/n9JWarxXkOWMshcT5IcjbB+agblQUaIsbnXmrzejn2O82n3p2A9R2zEB9HIEFWKFwPAEDDN8gR0VdSAyyAQ==" + }, + "node_modules/d3-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + }, + "node_modules/d3-hierarchy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", + "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + }, + "node_modules/d3-interpolate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "dependencies": { + "d3-color": "1 - 2" + } + }, + "node_modules/d3-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", + "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + }, + "node_modules/d3-scale": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", + "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "dependencies": { + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "^2.1.1", + "d3-time-format": "2 - 3" + } + }, + "node_modules/d3-selection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==" + }, + "node_modules/d3-shape": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", + "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "dependencies": { + "d3-path": "1 - 2" + } + }, + "node_modules/d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "dependencies": { + "d3-array": "2" + } + }, + "node_modules/d3-time-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "dependencies": { + "d3-time": "1 - 2" + } + }, + "node_modules/d3-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", + "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + }, + "node_modules/d3-transition": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-2.0.0.tgz", + "integrity": "sha512-42ltAGgJesfQE3u9LuuBHNbGrI/AJjNL2OAUdclE70UE6Vy239GCBEYD38uBPoLeNsOhFStGpPI0BAOV+HMxog==", + "dependencies": { + "d3-color": "1 - 2", + "d3-dispatch": "1 - 2", + "d3-ease": "1 - 2", + "d3-interpolate": "1 - 2", + "d3-timer": "1 - 2" + }, + "peerDependencies": { + "d3-selection": "2" + } + }, + "node_modules/dash-ast": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", + "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/dijkstrajs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz", + "integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "dev": true, + "dependencies": { + "jake": "^10.6.1" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.18", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.18.tgz", + "integrity": "sha512-i7nKjGGBE1+YUIbfLObA1EZPmN7J1ITEllbhusDk+KIk6V6gUxN9PFe36v+Sd+8Cg0k3cgUv9lQhQZalr8rggw==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz", + "integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.0", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz", + "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==", + "dev": true, + "dependencies": { + "base64-arraybuffer": "~1.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-set/node_modules/es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/esbuild": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", + "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.14.2", + "esbuild-darwin-64": "0.14.2", + "esbuild-darwin-arm64": "0.14.2", + "esbuild-freebsd-64": "0.14.2", + "esbuild-freebsd-arm64": "0.14.2", + "esbuild-linux-32": "0.14.2", + "esbuild-linux-64": "0.14.2", + "esbuild-linux-arm": "0.14.2", + "esbuild-linux-arm64": "0.14.2", + "esbuild-linux-mips64le": "0.14.2", + "esbuild-linux-ppc64le": "0.14.2", + "esbuild-netbsd-64": "0.14.2", + "esbuild-openbsd-64": "0.14.2", + "esbuild-sunos-64": "0.14.2", + "esbuild-windows-32": "0.14.2", + "esbuild-windows-64": "0.14.2", + "esbuild-windows-arm64": "0.14.2" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", + "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", + "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", + "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", + "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", + "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", + "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", + "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", + "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", + "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", + "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", + "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", + "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ] + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", + "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", + "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ] + }, + "node_modules/esbuild-wasm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.2.tgz", + "integrity": "sha512-Rs8NjWoo1UdsVjhxT2o6kLCX9Sh65pyd3/h4XeJ3jjQNM6NgL+/CSowuJgvOIjDAXMLXpc6fdGnyZQDil9IUJA==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", + "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", + "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", + "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E=", + "dependencies": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.4.0" + }, + "optionalDependencies": { + "source-map": "~0.1.30" + } + }, + "node_modules/escodegen/node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/escodegen/node_modules/esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "optional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-deprecation": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-deprecation/-/eslint-plugin-deprecation-1.3.1.tgz", + "integrity": "sha512-tpjYsG8lcRq9H+GUpJnGiXe/gG6feRzozHDVYvH79ajmcmZLWL+FE2Z2+GPDVONOkvd6e0mbSK1MDy0qhtHfGg==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0", + "tslib": "^2.3.1", + "tsutils": "^3.21.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0", + "typescript": "^3.7.5 || ^4.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-session": { + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.2.tgz", + "integrity": "sha512-mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ==", + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express-session/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express-session/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/express-session/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/express/node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "dependencies": { + "type": "^2.5.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "node_modules/flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", + "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gauge": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz", + "integrity": "sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hdr-histogram-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.1.tgz", + "integrity": "sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hocon-parser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hocon-parser/-/hocon-parser-1.0.1.tgz", + "integrity": "sha1-t5tmFDmZslXgi2c8gykbXjY/C3g=" + }, + "node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", + "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", + "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz", + "integrity": "sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.5", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "node_modules/ignore-walk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.2.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isbinaryfile": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "dev": true, + "dependencies": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "dependencies": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" + } + }, + "node_modules/jasmine-core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", + "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "dev": true + }, + "node_modules/jasmine-spec-reporter": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", + "dev": true, + "dependencies": { + "colors": "1.4.0" + } + }, + "node_modules/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "node_modules/jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true, + "engines": { + "node": ">= 6.9.x" + } + }, + "node_modules/jest-worker": { + "version": "27.4.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz", + "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jszip": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", + "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/karma": { + "version": "6.3.9", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.9.tgz", + "integrity": "sha512-E/MqdLM9uVIhfuyVnrhlGBu4miafBdXEAEqCmwdEMh3n17C7UWC/8Kvm3AYKr91gc7scutekZ0xv6rxRaUCtnw==", + "dev": true, + "dependencies": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.3.0", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.2.0", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-chrome-launcher/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/karma-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", + "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-coverage/node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma-coverage/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "dependencies": { + "jasmine-core": "^3.6.0" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "karma": "*" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", + "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", + "dev": true, + "peerDependencies": { + "jasmine-core": ">=3.8", + "karma": ">=0.9", + "karma-jasmine": ">=1.1" + } + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/less": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", + "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-b9iMrROrw2fTOJBZ57h0xJfT5/1Cxg4ucYbtpWoukv4Awb2TFPfDDFVHNM8w6SYQpVfB13a5tQJxgGamqwrsyw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "dependencies": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/log4js/node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/material-design-icons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/material-design-icons/-/material-design-icons-3.0.1.tgz", + "integrity": "sha1-mnHEh0chjrylHlGmbaaCA4zct78=" + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.0.tgz", + "integrity": "sha512-o/RfP0J1d03YwsAxyHxAYs2kyJp55AFkMazlFAZFR2I2IXkxiUTXRabJ6RmNNCQ83LAD2jy52Khj0m3OffpNdA==", + "dev": true, + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.5.tgz", + "integrity": "sha512-oEIhRucyn1JbT/1tU2BhnwO6ft1jjH1iCX9Gc59WFMg0n5773rQU0oyQ0zzeYFFuBfONaRbQJyGoPtuNseMxjA==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dev": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node_modules/ng-qrcode": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ng-qrcode/-/ng-qrcode-6.0.0.tgz", + "integrity": "sha512-I0ATJdgBn5vTOJwpOXgAwz/pVAIfOOQW4z+VwPNSF0NvpwzfCbLXrBJ+t+XWb3hgVdcPKp/zpAPX2yQb1FD6PA==", + "dependencies": { + "qrcode": "^1.4.4", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": ">=13 <14", + "@angular/core": ">=13 <14" + } + }, + "node_modules/ngx-perfect-scrollbar": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/ngx-perfect-scrollbar/-/ngx-perfect-scrollbar-10.1.1.tgz", + "integrity": "sha512-f9IaDJGlBzSxnJ3Ki76n2JdzfQngUFyCf0E+CuVLaR5jL0IJDcTu7vOs8wexXunRMTd8xvIv0+sdIxf8hXAGWg==", + "dependencies": { + "perfect-scrollbar": "1.5.0", + "resize-observer-polyfill": "^1.5.0", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": ">=9.0.0", + "@angular/core": ">=9.0.0" + } + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + }, + "node_modules/nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.0.tgz", + "integrity": "sha512-03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.0", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/nx": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-13.1.3.tgz", + "integrity": "sha512-clM0NQhQKYkqcNz2E3uYRMLwhp2L/9dBhJhQi9XBX4IAyA2gWAomhRIlLm5Xxg3g4h1xwSpP3eJ5t89VikY8Pw==", + "dev": true, + "dependencies": { + "@nrwl/cli": "*" + }, + "bin": { + "nx": "bin/nx.js" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/otplib": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/otplib/-/otplib-12.0.1.tgz", + "integrity": "sha512-xDGvUOQjop7RDgxTQ+o4pOol0/3xSZzawTiPKRrHnQWAy0WjhNs/5HdIDJCrqC4MBynmjXgULc6YfioaxZeFgg==", + "dependencies": { + "@otplib/core": "^12.0.1", + "@otplib/preset-default": "^12.0.1", + "@otplib/preset-v11": "^12.0.1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "dev": true, + "dependencies": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/pacote": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.2.tgz", + "integrity": "sha512-Ar3mhjcxhMzk+OVZ8pbnXdb0l8+pimvlsqBGRNkble2NVgyqOGE3yrCGi/lAYq7E7NRDMz89R1Wx5HIMCGgeYg==", + "dev": true, + "dependencies": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^2.0.0", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^3.0.0", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^11.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-sax-parser/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pdfmake": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.4.tgz", + "integrity": "sha512-EM39waHUe/Dg1W9C3XqYbpx6tfhYyU14JHZlI1HaW0AUEY32GbkRBjDLGWo9f7z/k3ea6k1p9yyDrflnvtZS1A==", + "dependencies": { + "@foliojs-fork/linebreak": "^1.1.1", + "@foliojs-fork/pdfkit": "^0.13.0", + "iconv-lite": "^0.6.3", + "xmldoc": "^1.1.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/pdfmake/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/perfect-scrollbar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz", + "integrity": "sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/piscina": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.1.0.tgz", + "integrity": "sha512-KTW4sjsCD34MHrUbx9eAAbuUSpVj407hQSgk/6Epkg0pbRBmv4a3UX7Sr8wxm9xYqQLnsN4mFOjqGDzHAdgKQg==", + "dev": true, + "dependencies": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/postcss": { + "version": "8.4.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", + "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", + "dev": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-functional-notation/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "dev": true, + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-gray/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-gray/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-gray/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-hex-alpha/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "dev": true, + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-mod-function/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-mod-function/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-mod-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-rebeccapurple/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-media/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-custom-media/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-custom-media/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-properties/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-custom-properties/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-custom-properties/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-selectors/node_modules/cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-custom-selectors/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-double-position-gradients/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-env-function/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-env-function/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-env-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-focus-visible/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-focus-visible/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-focus-visible/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-focus-within/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-focus-within/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-focus-within/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-font-variant/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-font-variant/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-font-variant/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-gap-properties/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-gap-properties/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-gap-properties/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-image-set-function/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-image-set-function/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-image-set-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-import": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", + "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-initial/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-initial/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-initial/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "dev": true, + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-lab-function/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-lab-function/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-lab-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-logical/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-logical/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-logical/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-media-minmax/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-media-minmax/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-media-minmax/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-nesting/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-nesting/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-overflow-shorthand/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-page-break/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-page-break/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-page-break/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-place/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-place/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-place/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-preset-env": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", + "dev": true, + "dependencies": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-preset-env/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-preset-env/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-preset-env/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-selector-matches/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-selector-matches/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-selector-matches/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-selector-not": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-selector-not/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-selector-not/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-selector-not/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz", + "integrity": "sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "dependencies": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=10.13.x" + } + }, + "node_modules/protractor/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/protractor/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/protractor/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/protractor/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qrcode": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz", + "integrity": "sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ==", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/qrcode/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/qrcode/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/qrcode/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/qrcode/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/qrcode/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "dependencies": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "bin": { + "quote-stream": "bin/cmd.js" + } + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz", + "integrity": "sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==", + "deprecated": "request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dependencies": { + "bluebird": "^3.5.0", + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=" + }, + "node_modules/roboto-fontface": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/roboto-fontface/-/roboto-fontface-0.10.0.tgz", + "integrity": "sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g==" + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "dependencies": { + "tslib": "~2.1.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", + "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass-loader": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", + "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/saucelabs/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/saucelabs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/saucelabs/node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/scope-analyzer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", + "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", + "dependencies": { + "array-from": "^2.1.1", + "dash-ast": "^2.0.1", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/selfsigned": { + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha256": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz", + "integrity": "sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU=", + "dependencies": { + "convert-hex": "~0.1.0", + "convert-string": "~0.1.0" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.0.tgz", + "integrity": "sha512-bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", + "dev": true + }, + "node_modules/socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dev": true, + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", + "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.0.tgz", + "integrity": "sha512-GKGWqWvYr04M7tn8dryIWvb0s8YM41z82iQv01yBtIylgxax0CwvSy6gc2Y02iuXwEfGWRlMicH0nvms9UZphw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.2", + "source-map-js": "^0.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader/node_modules/source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "dependencies": { + "escodegen": "^1.11.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-module": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz", + "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==", + "dependencies": { + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "^1.11.1", + "has": "^1.0.1", + "magic-string": "0.25.1", + "merge-source-map": "1.0.4", + "object-inspect": "^1.6.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.5", + "through2": "~2.0.3" + } + }, + "node_modules/static-module/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-module/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-module/node_modules/magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "dependencies": { + "sourcemap-codec": "^1.4.1" + } + }, + "node_modules/static-module/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-module/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-module/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/static-module/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-module/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/static-module/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "dependencies": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylus": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.55.0.tgz", + "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", + "dev": true, + "dependencies": { + "css": "^3.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", + "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "klona": "^2.0.4", + "normalize-path": "^3.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "stylus": ">=0.52.4", + "webpack": "^5.0.0" + } + }, + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stylus/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/stylus/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/table": { + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/terser": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "acorn": "^8.5.0" + }, + "peerDependenciesMeta": { + "acorn": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz", + "integrity": "sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==", + "dev": true, + "dependencies": { + "jest-worker": "^27.0.6", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/thirty-two": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz", + "integrity": "sha1-TKL//AKlEpDSdEueP1V2k8prYno=", + "engines": { + "node": ">=0.2.6" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + }, + "peerDependencies": { + "typescript": ">=2.0" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.8.tgz", + "integrity": "sha512-5NkbXZUlmCE73Fs7gvkp1XXJWHYetPkg60QnQ2NXQmBYNFxbBr2zA8GCtaH4K2s2WhOmSlgiSTmrjrcm5tnM5g==", + "dev": true + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-properties": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.3.1.tgz", + "integrity": "sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA==", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/update-notifier/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/update-notifier/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "dependencies": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "dev": true, + "dependencies": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webdriver-manager/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/webdriver-manager/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webdriver-manager/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/webdriver-manager/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/webpack": { + "version": "5.65.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz", + "integrity": "sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.2" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.2.2.tgz", + "integrity": "sha512-DjZyYrsHhkikAFNvSNKrpnziXukU1EChFAh9j4LAm6ndPLPW8cN0KhM7T+RAiOqsQ6ABfQ8hoKIs9IWMTjov+w==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.2.2", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.6.0.tgz", + "integrity": "sha512-oojcBIKvx3Ya7qs1/AVWHDgmP1Xml8rGsEBnSobxU/UJSX1xP1GPM3MwsAnDzvqcVmVki8tV7lbcsjEjk0PtYg==", + "dev": true, + "dependencies": { + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.2", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^1.10.11", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^5.2.1", + "ws": "^8.1.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/webpack-dev-server/node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz", + "integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", + "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.0.0.tgz", + "integrity": "sha512-x9514FpLRydO+UAQ8DY4aLtCjxmdLkuQVcDFN1kGzuusREYJ1B0rzk/iIlWiL6dnvrhEGFj2+UsdxDkP8Z4UKg==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", + "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmldoc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", + "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", + "dependencies": { + "sax": "^1.2.1" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", + "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/zone.js": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", + "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", + "dependencies": { + "tslib": "^2.0.0" + } + } + }, "dependencies": { + "@ampproject/remapping": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-1.0.2.tgz", + "integrity": "sha512-SncaVxs+E3EdoA9xJgHfWPxZfowAgeIsd71VpqCKP6KNKm6s7zSqqvUc70UpKUFsrV3dAmy6qxHoIj5NG+3DiA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "1.0.0", + "sourcemap-codec": "1.4.8" + } + }, "@angular-devkit/architect": { - "version": "0.1200.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1200.4.tgz", - "integrity": "sha512-/BKaVlpbZYb65elZ+xHoKB2J2DuTstMU++dqE9T/7E0CevuMoOdkLQFQm71Kjl3eFI4i6T5d8mlLVPNE/ZWm7w==", + "version": "0.1301.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1301.1.tgz", + "integrity": "sha512-3g1wlqihVEOhClsuSzyJYm8Sr4qc4IUDuOa45m8439bz9iQy2wZ3JUGTwX1NcpeLxmCDrgewuphIsW096HxYlg==", "dev": true, "requires": { - "@angular-devkit/core": "12.0.4", + "@angular-devkit/core": "13.1.1", "rxjs": "6.6.7" }, "dependencies": { @@ -32,202 +18210,104 @@ } }, "@angular-devkit/build-angular": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.0.4.tgz", - "integrity": "sha512-2GqEWJZleb86zEa9JMeM5BsbgV0Zor4mCaBj2KSjS28+WVJ/Q77LgDEdfidPuPcXzK7n+Mzrt6qLlrX8ORkaEg==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1200.4", - "@angular-devkit/build-optimizer": "0.1200.4", - "@angular-devkit/build-webpack": "0.1200.4", - "@angular-devkit/core": "12.0.4", - "@babel/core": "7.14.3", - "@babel/generator": "7.14.3", - "@babel/plugin-transform-async-to-generator": "7.13.0", - "@babel/plugin-transform-runtime": "7.14.3", - "@babel/preset-env": "7.14.2", - "@babel/runtime": "7.14.0", - "@babel/template": "7.12.13", - "@discoveryjs/json-ext": "0.5.2", - "@jsdevtools/coverage-istanbul-loader": "3.0.5", - "@ngtools/webpack": "12.0.4", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.1.1.tgz", + "integrity": "sha512-9+Ql4+rIt5CFfxLCZntCUdcVGl7mOi43/jpmYd31DKEUt4OPrqLoR5LsYepy3UR0+B0kNP6/PEOvaRiCb4t2GQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "1.0.2", + "@angular-devkit/architect": "0.1301.1", + "@angular-devkit/build-webpack": "0.1301.1", + "@angular-devkit/core": "13.1.1", + "@babel/core": "7.16.0", + "@babel/generator": "7.16.0", + "@babel/helper-annotate-as-pure": "7.16.0", + "@babel/plugin-proposal-async-generator-functions": "7.16.4", + "@babel/plugin-transform-async-to-generator": "7.16.0", + "@babel/plugin-transform-runtime": "7.16.4", + "@babel/preset-env": "7.16.4", + "@babel/runtime": "7.16.3", + "@babel/template": "7.16.0", + "@discoveryjs/json-ext": "0.5.6", + "@ngtools/webpack": "13.1.1", "ansi-colors": "4.1.1", - "babel-loader": "8.2.2", + "babel-loader": "8.2.3", + "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.9.1", - "cacache": "15.0.6", - "caniuse-lite": "^1.0.30001032", + "cacache": "15.3.0", "circular-dependency-plugin": "5.2.2", - "copy-webpack-plugin": "8.1.1", - "core-js": "3.12.0", - "critters": "0.0.10", - "css-loader": "5.2.4", - "css-minimizer-webpack-plugin": "3.0.0", - "find-cache-dir": "3.3.1", - "glob": "7.1.7", + "copy-webpack-plugin": "10.0.0", + "core-js": "3.19.3", + "critters": "0.0.15", + "css-loader": "6.5.1", + "esbuild": "0.14.2", + "esbuild-wasm": "0.14.2", + "glob": "7.2.0", "https-proxy-agent": "5.0.0", - "inquirer": "8.0.0", - "jest-worker": "26.6.2", + "inquirer": "8.2.0", + "jsonc-parser": "3.0.0", "karma-source-map-support": "1.4.0", - "less": "4.1.1", - "less-loader": "8.1.1", - "license-webpack-plugin": "2.3.19", - "loader-utils": "2.0.0", - "mini-css-extract-plugin": "1.5.1", + "less": "4.1.2", + "less-loader": "10.2.0", + "license-webpack-plugin": "4.0.0", + "loader-utils": "3.2.0", + "mini-css-extract-plugin": "2.4.5", "minimatch": "3.0.4", - "open": "8.0.2", - "ora": "5.4.0", + "open": "8.4.0", + "ora": "5.4.1", "parse5-html-rewriting-stream": "6.0.1", - "postcss": "8.3.0", - "postcss-import": "14.0.1", - "postcss-loader": "5.2.0", + "piscina": "3.1.0", + "postcss": "8.4.4", + "postcss-import": "14.0.2", + "postcss-loader": "6.2.1", "postcss-preset-env": "6.7.0", - "raw-loader": "4.0.2", - "regenerator-runtime": "0.13.7", + "regenerator-runtime": "0.13.9", "resolve-url-loader": "4.0.0", - "rimraf": "3.0.2", "rxjs": "6.6.7", - "sass": "1.32.12", - "sass-loader": "11.0.1", + "sass": "1.44.0", + "sass-loader": "12.4.0", "semver": "7.3.5", - "source-map": "0.7.3", - "source-map-loader": "2.0.1", - "source-map-support": "0.5.19", - "style-loader": "2.0.0", - "stylus": "0.54.8", - "stylus-loader": "5.0.0", - "terser": "5.7.0", - "terser-webpack-plugin": "5.1.2", + "source-map-loader": "3.0.0", + "source-map-support": "0.5.21", + "stylus": "0.55.0", + "stylus-loader": "6.2.0", + "terser": "5.10.0", "text-table": "0.2.0", "tree-kill": "1.2.2", - "webpack": "5.38.1", - "webpack-dev-middleware": "4.1.0", - "webpack-dev-server": "3.11.2", - "webpack-merge": "5.7.3", - "webpack-subresource-integrity": "1.5.2" - }, - "dependencies": { - "@babel/core": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", - "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.3", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.3", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", - "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.2", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@angular-devkit/build-optimizer": { - "version": "0.1200.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1200.4.tgz", - "integrity": "sha512-7lD3oXfQX00nA1FElH2cI0C8Q1rNnqMpFCTB1Bfd/7/SM+ihkL7EjIoFalN5HZuFGR536zrguSKnmv3C6wijrw==", - "dev": true, - "requires": { - "source-map": "0.7.3", - "tslib": "2.2.0", - "typescript": "4.2.4" + "tslib": "2.3.1", + "webpack": "5.65.0", + "webpack-dev-middleware": "5.2.2", + "webpack-dev-server": "4.6.0", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "5.0.0" }, "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } } } }, "@angular-devkit/build-webpack": { - "version": "0.1200.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1200.4.tgz", - "integrity": "sha512-Q7UYBvSsbK4ubsqJIVrnh4Q+EwVqNdRFlhekaM5XN3WH6xRsuZjTMuYDrQh5JSzFYjrKqezau1KzyKs7V1xIJQ==", + "version": "0.1301.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1301.1.tgz", + "integrity": "sha512-drXKdqsM3uB4nII0pU8FtAI6cd96sza3r1mWl8mqJEkzgkYIGVK/2CekKdVe1AXAvEeQFVRDRMYXraMNpli/QQ==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1200.4", + "@angular-devkit/architect": "0.1301.1", "rxjs": "6.6.7" }, "dependencies": { @@ -249,37 +18329,19 @@ } }, "@angular-devkit/core": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.0.4.tgz", - "integrity": "sha512-gtQkLXuQK7NPkurw49//MFZWoRa9aVCIbxE2uxbDAzzQengx9nLUoezS2xVdM7m/SqVK72YL+ZFfSTXzfiSdnA==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.1.tgz", + "integrity": "sha512-tpOOzdrbrXG+BiJ/iKUX5VU5vBXN/n+H1EMThTwjgT11mqw2uvMj4sSRPvHUrrfxbLE9deuCDQEzmci71enn2w==", "dev": true, "requires": { - "ajv": "8.2.0", - "ajv-formats": "2.0.2", + "ajv": "8.8.2", + "ajv-formats": "2.1.1", "fast-json-stable-stringify": "2.1.0", "magic-string": "0.25.7", "rxjs": "6.6.7", "source-map": "0.7.3" }, "dependencies": { - "ajv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz", - "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -289,12 +18351,6 @@ "tslib": "^1.9.0" } }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -304,13 +18360,15 @@ } }, "@angular-devkit/schematics": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.0.4.tgz", - "integrity": "sha512-MEAAcOh1Y4R6O7HWo7mMXgRK9BSbCZ3rlx+aHmtWpNXohw0TRhNY5WmRnQTRvMA3qjR9nh0Uo7BkRpgwRfqmBw==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.1.tgz", + "integrity": "sha512-uDE0vzjx7MyiJOul91MYMVpRPnAW5/o+pHcINx85wR6t4/RDQSH3UdBCCFxxwv1W9YZSR4kMiwi/sUYqPqbQMw==", "dev": true, "requires": { - "@angular-devkit/core": "12.0.4", - "ora": "5.4.0", + "@angular-devkit/core": "13.1.1", + "jsonc-parser": "3.0.0", + "magic-string": "0.25.7", + "ora": "5.4.1", "rxjs": "6.6.7" }, "dependencies": { @@ -332,237 +18390,242 @@ } }, "@angular-eslint/builder": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-12.0.0.tgz", - "integrity": "sha512-gvvXQDXXi0gsWZ25KyMqF/1b3AaX+CJbpVgTPqxJdEx4euvmG/m3993ynmpf+Kc+F+aI2O9W4TUbDbbLWoCjIA==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-13.0.1.tgz", + "integrity": "sha512-z43jUpA4xm767ze/yWwvoy5PdvSe57DAvXHlHywv0iYxXl1OhytPIA0CdOA3ZWkbSWWVmWmFzELeYfGnE3+igg==", + "dev": true, + "requires": { + "@nrwl/devkit": "13.1.3" + } + }, + "@angular-eslint/bundled-angular-compiler": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-13.0.1.tgz", + "integrity": "sha512-Eih9Kh0hxHO4+3in9mgjksQecym0p+3p+287y3LLihIc7gCkAO4xZeHGVGiC8qUX72PNUXkDlyskI9oHjK9Axw==", "dev": true }, "@angular-eslint/eslint-plugin": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-12.0.0.tgz", - "integrity": "sha512-osdJdMu8bYFv9WGhC04AwRcbeKq4sxCQnShV7NiF0xkgNG9KqDaStytVhPjJFn2Ja1QhfiTGlcFFk4D/9aruog==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-13.0.1.tgz", + "integrity": "sha512-WxqgMLTfE45dqjzg/Nq0dOEDwzpdB+zYOWrA41MT3jt0UbukFEx8+FMrAgBLIeDaHzwWomiAEV5Tm5mQAKA4VA==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.23.0" + "@angular-eslint/utils": "13.0.1", + "@typescript-eslint/experimental-utils": "5.3.0" } }, "@angular-eslint/eslint-plugin-template": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-12.0.0.tgz", - "integrity": "sha512-RF8PwN2A3U4ihd7sKYUM8wgPj46M30reziLl8CPPhN3H5Hn46nksmKmHRbPNakH2gW0Ba7NIxy+ocqUy0fQpcQ==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-13.0.1.tgz", + "integrity": "sha512-8FclNMjEzb87CtE3TdsXXWk1SRCp/tSSHI0cYVv6YpU7f/9Mnej+ZY3MdvqI/amD8zJueTMdnjNRP/jiwX2XhQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.23.0", + "@angular-eslint/bundled-angular-compiler": "13.0.1", + "@typescript-eslint/experimental-utils": "5.3.0", "aria-query": "^4.2.2", "axobject-query": "^2.2.0" } }, "@angular-eslint/schematics": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-12.0.0.tgz", - "integrity": "sha512-AwYEVuAQLJfyIF5vxBL98a67ecF9U25pQSIg0xCY6DeDpIaGdORr4yg2rGYy8fTlzDQo6BctKZQOTiVX3Y3uew==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-13.0.1.tgz", + "integrity": "sha512-LiPUVff6fexQNa6Ttgb+yhIoQc9oXc1qb34kmntvQDw59xBeEyrUojG2P2I5VS+1ZoVUWNY86cqEaxkFJVkY7w==", "dev": true, "requires": { - "@angular-eslint/eslint-plugin": "12.0.0", - "@angular-eslint/eslint-plugin-template": "12.0.0", - "ignore": "5.1.8", + "@angular-eslint/eslint-plugin": "13.0.1", + "@angular-eslint/eslint-plugin-template": "13.0.1", + "ignore": "5.1.9", "strip-json-comments": "3.1.1", "tmp": "0.2.1" - }, - "dependencies": { - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - } } }, "@angular-eslint/template-parser": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-12.0.0.tgz", - "integrity": "sha512-gl5ansA2a8LY6TEjhe0k8NiQJJdEQPjjqpysO1Rpt3NWUYQkFMt+1+AnUyokHB1TU3/11dHRUjVWXj+pMtTIAA==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-13.0.1.tgz", + "integrity": "sha512-GEJzVLS4Sb4UdurqaPD1/ucGhagGAQCp17CIgjpcXRwzxBZ9OLqbO/rx8diRbADp+1rceVq4BhADsg3VdsOsuw==", "dev": true, "requires": { + "@angular-eslint/bundled-angular-compiler": "13.0.1", "eslint-scope": "^5.1.0" } }, + "@angular-eslint/utils": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-13.0.1.tgz", + "integrity": "sha512-makSpu8kr5yHIz0c6WaWwix+tk5DN5Uix9vQulVisZWchTmSqEovJih/UC+4XspM9kQbjcbWHohYKiBbBEQpbA==", + "dev": true, + "requires": { + "@angular-eslint/bundled-angular-compiler": "13.0.1", + "@typescript-eslint/experimental-utils": "5.3.0" + } + }, "@angular/animations": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-12.0.5.tgz", - "integrity": "sha512-BPdTCtgDJ9zNzHpuA6X3NmtzDiIt5SHZk840j0q3HCq6rP6C/oo2UnPT6w8YDOGMejDpWdHvTgXH4jVKDN1wCQ==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.0.3.tgz", + "integrity": "sha512-wGhUzbf8tOHwNx/8JK3RIUisunayENj1j7aSlm8yrBoawvNdgCQVESyZdtfHxHuScRSpzxSIWdMggZ4G4+DuFg==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/cdk": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-12.0.5.tgz", - "integrity": "sha512-eOTv4uW/mT8gbPk+kam34ECoQ3iqJYP1oDOtBVxhXE8SCFC+tZMRU56ddIAjpZO+uZFgF0hvboPraG4L9tPSCA==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-13.1.0.tgz", + "integrity": "sha512-OOMDmXnCpodYMEbRro8FUcXqQ8UN3lU/OXnuuDhHOJIrb7loizSGKkJdaVLZtM9ygH7qbOxRhkC2efjmtIn48g==", "requires": { "parse5": "^5.0.0", - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/cli": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.0.4.tgz", - "integrity": "sha512-kZaJ55udB/AjQ+q8CrQfk6JGWdnJpH3c2VtbvSuR/ihiG6zMSxwpXqt1rImQN0RfffG3bsHD2SpM+T7/LKPemw==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.1.1.tgz", + "integrity": "sha512-cdcl3UAhA2oQK8klDl9zt5SwScSg2F4VQDUQ8XsdApKIRlEfee1Xf7WXKsGpgAuojrFHMzDVWjAg/bOyIpioLg==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1200.4", - "@angular-devkit/core": "12.0.4", - "@angular-devkit/schematics": "12.0.4", - "@schematics/angular": "12.0.4", + "@angular-devkit/architect": "0.1301.1", + "@angular-devkit/core": "13.1.1", + "@angular-devkit/schematics": "13.1.1", + "@schematics/angular": "13.1.1", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.1", - "debug": "4.3.1", + "debug": "4.3.3", "ini": "2.0.0", - "inquirer": "8.0.0", + "inquirer": "8.2.0", "jsonc-parser": "3.0.0", - "npm-package-arg": "8.1.2", + "npm-package-arg": "8.1.5", "npm-pick-manifest": "6.1.1", - "open": "8.0.2", - "ora": "5.4.0", - "pacote": "11.3.2", + "open": "8.4.0", + "ora": "5.4.1", + "pacote": "12.0.2", "resolve": "1.20.0", - "rimraf": "3.0.2", "semver": "7.3.5", "symbol-observable": "4.0.0", "uuid": "8.3.2" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } } }, "@angular/common": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.0.5.tgz", - "integrity": "sha512-jKiPjWVL3jXVKgXwINlsF5O0r9gX/mAoa5UVy57O8jcg+ENbH9LLSOikgiF/0HPxk2uvRV5OYmbBgOY1xT41kQ==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.0.3.tgz", + "integrity": "sha512-xxQIQD5rWWHafKRPCgvkWvy53b+QkbJ9yAf3qYTp0gXZJMg/Cx3Ylc8LA2o1kyVJxCI/amXf5k4rr1S9yU7zxw==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.0.5.tgz", - "integrity": "sha512-G255aP4hhQ04hSQ1/JgiKNeTzRCuLgK220lJXkHubpu+f67os5LArhFNxZaUC/EVa/sloOT7Fo5tn8C5gy7iLA==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.0.3.tgz", + "integrity": "sha512-WINfdQk6WojEhTIcNOkvhQu1yDRtq3FUx2saCZyGwS3MbzkfWUr4/x6VKJ5sAYJYnlaf9Goypau4/5lPp4+0tA==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-12.0.5.tgz", - "integrity": "sha512-XBZWU2S7N2kvQJK0H5KyLHiLVhYJrjh3NtbVBv67sCY9Ft8fv2jjbozTgXqeoYZ1xAxcZ2ZAB0n5SkhmY75Mow==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.0.3.tgz", + "integrity": "sha512-j3uCk46BwyuRmYLwB39LoUEjARMdhGSI6kSDsQWPop+iHGJkP4ThUUQCrCGClqhXdyGdhkTrq8jqZ/GfXmUkPA==", "requires": { "@babel/core": "^7.8.6", - "@babel/types": "^7.8.6", "canonical-path": "1.0.0", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", "dependency-graph": "^0.11.0", "magic-string": "^0.25.0", - "minimist": "^1.2.0", "reflect-metadata": "^0.1.2", "semver": "^7.0.0", - "source-map": "^0.6.1", "sourcemap-codec": "^1.4.8", - "tslib": "^2.1.0", - "yargs": "^16.2.0" + "tslib": "^2.3.0", + "yargs": "^17.2.1" } }, "@angular/core": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.0.5.tgz", - "integrity": "sha512-uVYsZa1VqVw8vNcjUYgfjXBc1M3WaxLXoLnCsDvutJiln4csa8Yw8p7RqQSrZ6AgQ8o2LHD2JJ5kus3EDMwfcA==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.0.3.tgz", + "integrity": "sha512-w8FngZBPrLw9kHftYy824C/wSBtLKCWvGU04qI6V9BCpxedf7cyOIhOzaL+4Pz/rwgvo+0Qn2uM1ssZ2+JUdvQ==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/flex-layout": { - "version": "12.0.0-beta.34", - "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-12.0.0-beta.34.tgz", - "integrity": "sha512-nLwKovXpyG+/U3Lbmfwt+q4ARupxtbPmFTZD0Y8oItFAV6/Oh9l+QQsNQa2VhOHAOrVagyDwcEM+SePtB5EmrQ==", + "version": "13.0.0-beta.36", + "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-13.0.0-beta.36.tgz", + "integrity": "sha512-JLC3C1oEKVu9lLyottvHbfyCf/pOPzjXfFO3qOPBbWyVqxuQkfkd2NILZZh4DHsKYbBxIZ01vnfQHCV8NdaZ3w==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.0.5.tgz", - "integrity": "sha512-Ew/fGPTsywoYnm6DFPA/DyLl4Sb+1/uzpledrbxUHzaSKIrnXFrjQiUTmsbbq+8qono3JzbUIblqH1DrNThYiA==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.0.3.tgz", + "integrity": "sha512-Sxpc9kiCYi59GzKkpvpqgUejXq7P1dt3l1C5mnV3WBdNEpVBDRD63YLlNTya+w4uSMr+WEbtCys41QO8MXNIHQ==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/material": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-12.0.5.tgz", - "integrity": "sha512-n4tNhkEu/WtVDxG9049fJSfLZmUFaRT7ZmxRoPTnzXzw+h+/z3yC1rt0H4QvG5RzJtmLVZhmnPwYvlI9+nFP3w==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-13.1.0.tgz", + "integrity": "sha512-DhMcG5OY2+laQ8LcSnbANHUu8u/zaDHK+gV0EcL17cP0nvfvKmUPUCQ1o4KcAFg/B0IeXC7ByRj23T1FiPIfCA==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/platform-browser": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.0.5.tgz", - "integrity": "sha512-MLioK9gcdZOKINE8OmIHZICRnFySaWyCBeVbHS4Z4Vxgr+E2S2eO1IxBmGyQpJq1wDPBP9A/9LVLMUNbHu4Cdw==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.0.3.tgz", + "integrity": "sha512-XCeCnsD997Erl4XGNFHIqC9cTkO9uSHdaoDvLuNMsF2kr5V1GOeFkh71CYNmCsWrTj4PFqx9q+ziGgvxM4eeOQ==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.0.5.tgz", - "integrity": "sha512-sYkOJxXj4vEZICT2oODkQF9wNaKoScSkiw2ooBYN0UX02mFKlWKa9vkzp6JmN1EF8YOWF0JnRqBPAi1WbOnAMw==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.0.3.tgz", + "integrity": "sha512-+s2o7M/WzRaytjDt6LPqZQ2mmVFpOQBbfiXmq4OwnETc2d6dIpWJzfs00MCAVhu1tR1btzsA3Qa6lA1YqULHrg==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, "@angular/router": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.0.5.tgz", - "integrity": "sha512-2jiaT+OxCmJbeJ0MTPmIHBsTFLysenvPZteozYsjcmUo9mOzJHAjqHLJvTC+Ri+E9xvnplh+8BPETRleV1pAFw==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.0.3.tgz", + "integrity": "sha512-NNDrSK32mpkuQiY6CzAjRBvWSiLM+61dC3EOfBUDIyPzIp318fhqZ5ohxY42Fvp07KGnRv5tcqb/1QE8Ukwbyg==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.0" } }, + "@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "requires": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.0" } }, "@babel/compat-data": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", - "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==" + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==" }, "@babel/core": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", - "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -584,11 +18647,11 @@ } }, "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "requires": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -601,32 +18664,32 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", + "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", - "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz", + "integrity": "sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-explode-assignable-expression": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", "requires": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "dependencies": { @@ -638,33 +18701,34 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", - "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz", + "integrity": "sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-member-expression-to-functions": "^7.16.5", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.5", + "@babel/helper-split-export-declaration": "^7.16.0" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", - "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", + "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-annotate-as-pure": "^7.16.0", "regexpu-core": "^4.7.1" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", + "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.13.0", @@ -685,137 +18749,149 @@ } } }, + "@babel/helper-environment-visitor": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz", + "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==", + "requires": { + "@babel/types": "^7.16.0" + } + }, "@babel/helper-explode-assignable-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", - "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", + "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", - "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz", + "integrity": "sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw==", + "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz", + "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==", "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.5", + "@babel/types": "^7.16.0" } }, "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", + "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", - "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz", + "integrity": "sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-wrap-function": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-wrap-function": "^7.16.5", + "@babel/types": "^7.16.0" } }, "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz", + "integrity": "sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ==", + "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-member-expression-to-functions": "^7.16.5", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.5", + "@babel/types": "^7.16.0" } }, "@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", - "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -823,209 +18899,218 @@ "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" }, "@babel/helper-wrap-function": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", - "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz", + "integrity": "sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-function-name": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.5", + "@babel/types": "^7.16.0" } }, "@babel/helpers": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", - "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz", + "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==", "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.5", + "@babel/types": "^7.16.0" } }, "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==" + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.5.tgz", + "integrity": "sha512-+Ce7T5iPNWzfu9C1aB5tN3Lyafs5xb3Ic7vBWyZL2KXT3QSdD1dD3CvgOzPmQKoNNRt6uauc0XwNJTQtXC2/Mw==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", + "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", + "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz", - "integrity": "sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", + "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.4", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz", + "integrity": "sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz", - "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz", + "integrity": "sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", - "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz", + "integrity": "sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", - "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz", + "integrity": "sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", - "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz", + "integrity": "sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", - "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz", + "integrity": "sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz", + "integrity": "sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", - "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz", + "integrity": "sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz", - "integrity": "sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz", + "integrity": "sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw==", "dev": true, "requires": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.3", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.5" + "@babel/plugin-transform-parameters": "^7.16.5" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", - "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz", + "integrity": "sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz", + "integrity": "sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", - "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz", + "integrity": "sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz", + "integrity": "sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-create-class-features-plugin": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", - "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz", + "integrity": "sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-syntax-async-generators": { @@ -1155,263 +19240,264 @@ } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz", + "integrity": "sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", - "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", + "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0" + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.0" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz", + "integrity": "sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", - "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz", + "integrity": "sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-classes": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", - "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz", + "integrity": "sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-replace-supers": "^7.16.5", + "@babel/helper-split-export-declaration": "^7.16.0", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz", + "integrity": "sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-destructuring": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz", - "integrity": "sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz", + "integrity": "sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", - "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz", + "integrity": "sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", - "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz", + "integrity": "sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz", + "integrity": "sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-for-of": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", - "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz", + "integrity": "sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", - "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz", + "integrity": "sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", - "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz", + "integrity": "sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", - "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz", + "integrity": "sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", - "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz", + "integrity": "sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-module-transforms": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz", - "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz", + "integrity": "sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-module-transforms": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-simple-access": "^7.16.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", - "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz", + "integrity": "sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-validator-identifier": "^7.15.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", - "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz", + "integrity": "sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-module-transforms": "^7.16.5", + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz", - "integrity": "sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz", + "integrity": "sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.16.0" } }, "@babel/plugin-transform-new-target": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", - "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz", + "integrity": "sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", - "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz", + "integrity": "sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-replace-supers": "^7.16.5" } }, "@babel/plugin-transform-parameters": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", - "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz", + "integrity": "sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz", + "integrity": "sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", - "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz", + "integrity": "sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", - "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz", + "integrity": "sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-runtime": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz", - "integrity": "sha512-t960xbi8wpTFE623ef7sd+UpEC5T6EEguQlTBJDEO05+XwnIWVfuqLw/vdLWY6IdFmtZE+65CZAfByT39zRpkg==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz", + "integrity": "sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-plugin-utils": "^7.13.0", - "babel-plugin-polyfill-corejs2": "^0.2.0", - "babel-plugin-polyfill-corejs3": "^0.2.0", - "babel-plugin-polyfill-regenerator": "^0.2.0", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", "semver": "^6.3.0" }, "dependencies": { @@ -1424,99 +19510,100 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz", + "integrity": "sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz", + "integrity": "sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", - "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz", + "integrity": "sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz", + "integrity": "sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", - "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz", + "integrity": "sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", - "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz", + "integrity": "sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", - "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz", + "integrity": "sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/preset-env": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.2.tgz", - "integrity": "sha512-7dD7lVT8GMrE73v4lvDEb85cgcQhdES91BSD7jS/xjC6QY8PnRhux35ac+GCpbiRhp8crexBvZZqnaL6VrY8TQ==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", + "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", "dev": true, "requires": { - "@babel/compat-data": "^7.14.0", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", - "@babel/plugin-proposal-async-generator-functions": "^7.14.2", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-class-static-block": "^7.13.11", - "@babel/plugin-proposal-dynamic-import": "^7.14.2", - "@babel/plugin-proposal-export-namespace-from": "^7.14.2", - "@babel/plugin-proposal-json-strings": "^7.14.2", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.2", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.2", - "@babel/plugin-proposal-numeric-separator": "^7.14.2", - "@babel/plugin-proposal-object-rest-spread": "^7.14.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.14.2", - "@babel/plugin-proposal-optional-chaining": "^7.14.2", - "@babel/plugin-proposal-private-methods": "^7.13.0", - "@babel/plugin-proposal-private-property-in-object": "^7.14.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.3", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-async-generator-functions": "^7.16.4", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-class-static-block": "^7.16.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.0", + "@babel/plugin-proposal-export-namespace-from": "^7.16.0", + "@babel/plugin-proposal-json-strings": "^7.16.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-object-rest-spread": "^7.16.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", @@ -1526,46 +19613,46 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.0", - "@babel/plugin-syntax-top-level-await": "^7.12.13", - "@babel/plugin-transform-arrow-functions": "^7.13.0", - "@babel/plugin-transform-async-to-generator": "^7.13.0", - "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.14.2", - "@babel/plugin-transform-classes": "^7.14.2", - "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.13.17", - "@babel/plugin-transform-dotall-regex": "^7.12.13", - "@babel/plugin-transform-duplicate-keys": "^7.12.13", - "@babel/plugin-transform-exponentiation-operator": "^7.12.13", - "@babel/plugin-transform-for-of": "^7.13.0", - "@babel/plugin-transform-function-name": "^7.12.13", - "@babel/plugin-transform-literals": "^7.12.13", - "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.14.2", - "@babel/plugin-transform-modules-commonjs": "^7.14.0", - "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.14.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", - "@babel/plugin-transform-new-target": "^7.12.13", - "@babel/plugin-transform-object-super": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.14.2", - "@babel/plugin-transform-property-literals": "^7.12.13", - "@babel/plugin-transform-regenerator": "^7.13.15", - "@babel/plugin-transform-reserved-words": "^7.12.13", - "@babel/plugin-transform-shorthand-properties": "^7.12.13", - "@babel/plugin-transform-spread": "^7.13.0", - "@babel/plugin-transform-sticky-regex": "^7.12.13", - "@babel/plugin-transform-template-literals": "^7.13.0", - "@babel/plugin-transform-typeof-symbol": "^7.12.13", - "@babel/plugin-transform-unicode-escapes": "^7.12.13", - "@babel/plugin-transform-unicode-regex": "^7.12.13", - "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.2", - "babel-plugin-polyfill-corejs2": "^0.2.0", - "babel-plugin-polyfill-corejs3": "^0.2.0", - "babel-plugin-polyfill-regenerator": "^0.2.0", - "core-js-compat": "^3.9.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.0", + "@babel/plugin-transform-async-to-generator": "^7.16.0", + "@babel/plugin-transform-block-scoped-functions": "^7.16.0", + "@babel/plugin-transform-block-scoping": "^7.16.0", + "@babel/plugin-transform-classes": "^7.16.0", + "@babel/plugin-transform-computed-properties": "^7.16.0", + "@babel/plugin-transform-destructuring": "^7.16.0", + "@babel/plugin-transform-dotall-regex": "^7.16.0", + "@babel/plugin-transform-duplicate-keys": "^7.16.0", + "@babel/plugin-transform-exponentiation-operator": "^7.16.0", + "@babel/plugin-transform-for-of": "^7.16.0", + "@babel/plugin-transform-function-name": "^7.16.0", + "@babel/plugin-transform-literals": "^7.16.0", + "@babel/plugin-transform-member-expression-literals": "^7.16.0", + "@babel/plugin-transform-modules-amd": "^7.16.0", + "@babel/plugin-transform-modules-commonjs": "^7.16.0", + "@babel/plugin-transform-modules-systemjs": "^7.16.0", + "@babel/plugin-transform-modules-umd": "^7.16.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", + "@babel/plugin-transform-new-target": "^7.16.0", + "@babel/plugin-transform-object-super": "^7.16.0", + "@babel/plugin-transform-parameters": "^7.16.3", + "@babel/plugin-transform-property-literals": "^7.16.0", + "@babel/plugin-transform-regenerator": "^7.16.0", + "@babel/plugin-transform-reserved-words": "^7.16.0", + "@babel/plugin-transform-shorthand-properties": "^7.16.0", + "@babel/plugin-transform-spread": "^7.16.0", + "@babel/plugin-transform-sticky-regex": "^7.16.0", + "@babel/plugin-transform-template-literals": "^7.16.0", + "@babel/plugin-transform-typeof-symbol": "^7.16.0", + "@babel/plugin-transform-unicode-escapes": "^7.16.0", + "@babel/plugin-transform-unicode-regex": "^7.16.0", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.0", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.19.1", "semver": "^6.3.0" }, "dependencies": { @@ -1578,9 +19665,9 @@ } }, "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -1591,56 +19678,74 @@ } }, "@babel/runtime": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", - "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.6.tgz", - "integrity": "sha512-Xl8SPYtdjcMoCsIM4teyVRg7jIcgl8F2kRtoCcXuHzXswt9UxZCS6BzRo8fcnCuP6u2XtPgvyonmEPF57Kxo9Q==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.5.tgz", + "integrity": "sha512-F1pMwvTiUNSAM8mc45kccMQxj31x3y3P+tA/X8hKNWp3/hUsxdGxZ3D3H8JIkxtfA8qGkaBTKvcmvStaYseAFw==", "dev": true, "requires": { - "core-js-pure": "^3.14.0", + "core-js-pure": "^3.19.0", "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz", + "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.5", + "@babel/helper-environment-visitor": "^7.16.5", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.5", + "@babel/types": "^7.16.0", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz", + "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==", + "requires": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" } }, @@ -1651,9 +19756,9 @@ "dev": true }, "@discoveryjs/json-ext": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", - "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", "dev": true }, "@eslint/eslintrc": { @@ -1673,10 +19778,22 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -1688,6 +19805,12 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -1696,43 +19819,99 @@ } } }, + "@foliojs-fork/fontkit": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/fontkit/-/fontkit-1.9.1.tgz", + "integrity": "sha512-U589voc2/ROnvx1CyH9aNzOQWJp127JGU1QAylXGQ7LoEAF6hMmahZLQ4eqAcgHUw+uyW4PjtCItq9qudPkK3A==", + "requires": { + "@foliojs-fork/restructure": "^2.0.2", + "brfs": "^2.0.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.1", + "clone": "^1.0.4", + "deep-equal": "^1.0.0", + "dfa": "^1.2.0", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.2.2", + "unicode-trie": "^2.0.0" + } + }, + "@foliojs-fork/linebreak": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/linebreak/-/linebreak-1.1.1.tgz", + "integrity": "sha512-pgY/+53GqGQI+mvDiyprvPWgkTlVBS8cxqee03ejm6gKAQNsR1tCYCIvN9FHy7otZajzMqCgPOgC4cHdt4JPig==", + "requires": { + "base64-js": "1.3.1", + "brfs": "^2.0.2", + "unicode-trie": "^2.0.0" + }, + "dependencies": { + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + } + } + }, + "@foliojs-fork/pdfkit": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@foliojs-fork/pdfkit/-/pdfkit-0.13.0.tgz", + "integrity": "sha512-YXeG1fml9k97YNC9K8e292Pj2JzGt9uOIiBFuQFxHsdQ45BlxW+JU3RQK6JAvXU7kjhjP8rCcYvpk36JLD33sQ==", + "requires": { + "@foliojs-fork/fontkit": "^1.9.1", + "@foliojs-fork/linebreak": "^1.1.1", + "crypto-js": "^4.0.0", + "png-js": "^1.0.0" + } + }, + "@foliojs-fork/restructure": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@foliojs-fork/restructure/-/restructure-2.0.2.tgz", + "integrity": "sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==" + }, "@fortawesome/angular-fontawesome": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.8.2.tgz", - "integrity": "sha512-K/AiykA4YbHKE6XKEtZ0ZvVRQocUHyk+79HYWIfhGy3teHpzxsUqB/UjDaxivgBd6dF6ihlzgEbgrDMHlGNwGg==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.10.1.tgz", + "integrity": "sha512-4nVRm+NcLcdaNrNFhThb/7/tb5CDm0vQwJFyljR3XMCQyEr94hMX5SiUYbvYm9YJVImMYfdpR0lO0B8sh12Vbw==", "requires": { - "tslib": "^2.1.0" + "tslib": "^2.3.1" } }, "@fortawesome/fontawesome-common-types": { - "version": "0.2.35", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.35.tgz", - "integrity": "sha512-IHUfxSEDS9dDGqYwIW7wTN6tn/O8E0n5PcAHz9cAaBoZw6UpG20IG/YM3NNLaGPwPqgjBAFjIURzqoQs3rrtuw==" + "version": "0.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", + "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==" }, "@fortawesome/fontawesome-svg-core": { - "version": "1.2.35", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.35.tgz", - "integrity": "sha512-uLEXifXIL7hnh2sNZQrIJWNol7cTVIzwI+4qcBIq9QWaZqUblm0IDrtSqbNg+3SQf8SMGHkiSigD++rHmCHjBg==", + "version": "1.2.36", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", + "integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.35" + "@fortawesome/fontawesome-common-types": "^0.2.36" } }, "@fortawesome/free-regular-svg-icons": { - "version": "5.15.3", - "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.3.tgz", - "integrity": "sha512-q4/p8Xehy9qiVTdDWHL4Z+o5PCLRChePGZRTXkl+/Z7erDVL8VcZUuqzJjs6gUz6czss4VIPBRdCz6wP37/zMQ==", + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.4.tgz", + "integrity": "sha512-9VNNnU3CXHy9XednJ3wzQp6SwNwT3XaM26oS4Rp391GsxVYA+0oDR2J194YCIWf7jNRCYKjUCOduxdceLrx+xw==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.35" + "@fortawesome/fontawesome-common-types": "^0.2.36" } }, "@fortawesome/free-solid-svg-icons": { - "version": "5.15.3", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.3.tgz", - "integrity": "sha512-XPeeu1IlGYqz4VWGRAT5ukNMd4VHUEEJ7ysZ7pSSgaEtNvSo+FLurybGJVmiqkQdK50OkSja2bfZXOeyMGRD8Q==", + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", + "integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.35" + "@fortawesome/fontawesome-common-types": "^0.2.36" } }, + "@gar/promisify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==", + "dev": true + }, "@humanwhocodes/config-array": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", @@ -1745,63 +19924,67 @@ } }, "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jsdevtools/coverage-istanbul-loader": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", - "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", - "dev": true, - "requires": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.3", - "loader-utils": "^2.0.0", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.7.0" - } + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz", + "integrity": "sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA==", + "dev": true }, "@ngrx/effects": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-12.1.0.tgz", - "integrity": "sha512-DcVovaJB9hZ8qo5UNjRS0KqLaMX8YreuR3EtRPUysB0aePBuoWQiN8HUic8DgmI2cN3KcZxOsRKj/1VaVArLJw==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-13.0.2.tgz", + "integrity": "sha512-7yW/KCxlRatDkdEriSnORlOYX8+1QAWEjPulNmHSPwehkzTQ3fIPfRBQy8xP8bnjwvGxnEZNwQlU4q1KVYOfhg==", "requires": { "tslib": "^2.0.0" } }, "@ngrx/store": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-12.1.0.tgz", - "integrity": "sha512-HrNs7bs/MNkLxFnvGx7uPIvEP3RWqGMewVaFjqUxq6sDefn6D6TQ/Sv/8KsNNxuG7r7pKGw+U/tClunJhmRfpw==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-13.0.2.tgz", + "integrity": "sha512-F7tsc3oCvKh+62MKiXTrvSeaxR41u4p8bch3BLjz12F37376rMuBnXf+V1thsPTZ6RB6aycAi821EQYVXFCXZg==", "requires": { "tslib": "^2.0.0" } }, "@ngrx/store-devtools": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-12.1.0.tgz", - "integrity": "sha512-O+GfUsYPUrlbGHHcCH0WNkfnWD2TLQmXm2xhR1CkMTr+7YkdOKUZ1a0RwPM4VWuCu5QNVHS8bRS5V3IviiP9tQ==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-13.0.2.tgz", + "integrity": "sha512-fcQ5A7cv9PONFvqlpFPXHswWjEflJvqrNt6wmywlxMtJDjkgzCHpvRiJqup/FiTosblRERoeZXN0oHW3Er3+rw==", "dev": true, "requires": { "tslib": "^2.0.0" } }, "@ngtools/webpack": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.0.4.tgz", - "integrity": "sha512-djmXTB7qo35Mw6olJEfVTOFRms/E4rCpcLV0GfQJqhWfUB9K/n+QbxW5cp09J48DpqlMP00C942+POBcUqbg3g==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.1.1.tgz", + "integrity": "sha512-TGCuscGFNHPoXScswuj9UxNv8E+A/PXs5XH8cyTtbkmlpBec1EShnaUTdDP5nhykjjaWzd3TLChlp9DinE+Ctg==", "dev": true, - "requires": { - "enhanced-resolve": "5.7.0" - } + "requires": {} }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -1820,19 +20003,29 @@ "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", - "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, + "@npmcli/fs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", + "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", + "dev": true, + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, "@npmcli/git": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.0.9.tgz", - "integrity": "sha512-hTMbMryvOqGLwnmMBKs5usbPsJtyEsMsgXwJbmNrsEuQQh1LAIMDU77IoOrwkCg+NgQWl+ySlarJASwM3SutCA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "dev": true, "requires": { "@npmcli/promise-spawn": "^1.3.2", @@ -1843,17 +20036,6 @@ "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^2.0.2" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } } }, "@npmcli/installed-package-contents": { @@ -1877,9 +20059,9 @@ } }, "@npmcli/node-gyp": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", - "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", "dev": true }, "@npmcli/promise-spawn": { @@ -1892,18 +20074,349 @@ } }, "@npmcli/run-script": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz", - "integrity": "sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", + "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", "dev": true, "requires": { "@npmcli/node-gyp": "^1.0.2", "@npmcli/promise-spawn": "^1.3.2", - "infer-owner": "^1.0.4", - "node-gyp": "^7.1.0", + "node-gyp": "^8.2.0", "read-package-json-fast": "^2.0.1" } }, + "@nrwl/cli": { + "version": "13.3.4", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-13.3.4.tgz", + "integrity": "sha512-x3IM9X/q5Yv54ZSr+GsIxa07GJt+hG7dOdjvAFBnixMWb3o4utOVrd6GusDrn2t0HhnCuzqLosFnk+gcOrL34w==", + "dev": true, + "requires": { + "@nrwl/tao": "13.3.4", + "chalk": "4.1.0", + "enquirer": "~2.3.6", + "v8-compile-cache": "2.3.0", + "yargs": "15.4.1", + "yargs-parser": "20.0.0" + }, + "dependencies": { + "@nrwl/tao": { + "version": "13.3.4", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-13.3.4.tgz", + "integrity": "sha512-ujwxGZcR3De8FSj8IjVSGmfZ2CQZfFzeV9QXU8DeiZ9J1ylWPwWpMIS3XVxZIpe7gR++XP4jbvFodKFQP7PzVQ==", + "dev": true, + "requires": { + "chalk": "4.1.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "fs-extra": "^9.1.0", + "ignore": "^5.0.4", + "jsonc-parser": "3.0.0", + "nx": "13.3.4", + "rxjs": "^6.5.4", + "rxjs-for-await": "0.0.2", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.3.0", + "yargs-parser": "20.0.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "nx": { + "version": "13.3.4", + "resolved": "https://registry.npmjs.org/nx/-/nx-13.3.4.tgz", + "integrity": "sha512-prWCa/8jKBWUiCWhAbRD3UftTvaD8MgUo98g557/EpPaC9LHPPWNOhXDyij21sedouyDVdQGhr8TW4pEHt2zeQ==", + "dev": true, + "requires": { + "@nrwl/cli": "13.3.4" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "rxjs-for-await": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", + "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", + "dev": true, + "requires": {} + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + } + } + }, + "@nrwl/devkit": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.1.3.tgz", + "integrity": "sha512-TAAsZJvVc/obeH0rZKY6miVhyM2GHGb8qIWp9MAIdLlXf4VDcNC7rxwb5OrGVSwuTTjqGYBGPUx0yEogOOJthA==", + "dev": true, + "requires": { + "@nrwl/tao": "13.1.3", + "ejs": "^3.1.5", + "ignore": "^5.0.4", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tslib": "^2.0.0" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@nrwl/tao": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-13.1.3.tgz", + "integrity": "sha512-/IwJgSgCBD1SaF+n8RuXX2OxDAh8ut/+P8pMswjm8063ac30UlAHjQ4XTYyskLH8uoUmNi2hNaGgHUrkwt7tQA==", + "dev": true, + "requires": { + "chalk": "4.1.0", + "enquirer": "~2.3.6", + "fs-extra": "^9.1.0", + "jsonc-parser": "3.0.0", + "nx": "13.1.3", + "rxjs": "^6.5.4", + "rxjs-for-await": "0.0.2", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.0.0", + "yargs-parser": "20.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "rxjs-for-await": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", + "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", + "dev": true, + "requires": {} + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@otplib/core": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/@otplib/core/-/core-12.0.1.tgz", @@ -1947,13 +20460,13 @@ } }, "@schematics/angular": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.0.4.tgz", - "integrity": "sha512-rC4/+c6p3S/ezDeJzAstrwzdpYgcYzHumtzVSDDM+3Kx0QBUTq/Nj6sk1e2C/fgtV5Jb2INEkTvrih+HP7I0wA==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.1.1.tgz", + "integrity": "sha512-GY49qumsQ+w1aDsCa796iPL/GcokCVKr2OMLss3avwciBFciMOVsLxZ04lprPCivCQRcKNqbSDDx4+xH5qkrAg==", "dev": true, "requires": { - "@angular-devkit/core": "12.0.4", - "@angular-devkit/schematics": "12.0.4", + "@angular-devkit/core": "13.1.1", + "@angular-devkit/schematics": "13.1.1", "jsonc-parser": "3.0.0" } }, @@ -1964,21 +20477,22 @@ "dev": true }, "@swimlane/ngx-charts": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@swimlane/ngx-charts/-/ngx-charts-16.0.0.tgz", - "integrity": "sha512-ltbyA7qhnbdNcjWD0NerObHrDzWgDDja8M8R1RVgBZnkaoJFpB/KZ1W3+Ch9F1y9pCy/zdpWSzwd/RzCEhsQhA==", - "requires": { - "d3-array": "^2.4.0", - "d3-brush": "^1.1.5", - "d3-color": "^1.4.0", - "d3-format": "^1.4.2", - "d3-hierarchy": "^1.1.9", - "d3-interpolate": "^1.4.0", - "d3-scale": "^3.2.1", - "d3-selection": "^1.4.1", - "d3-shape": "^1.3.7", - "d3-time-format": "^2.2.2", - "d3-transition": "^1.3.2", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/@swimlane/ngx-charts/-/ngx-charts-19.2.0.tgz", + "integrity": "sha512-FJuDuwxti8U6BfMC0m/KfcyBqbn6mmkAX7NANbcoUaNUrngq+JBZYGVJhM66RDt54m82S7IIZV5kOK/jDTry+w==", + "requires": { + "@types/d3-shape": "^2.0.0", + "d3-array": "^2.9.1", + "d3-brush": "^2.1.0", + "d3-color": "^2.0.0", + "d3-format": "^2.0.0", + "d3-hierarchy": "^2.0.0", + "d3-interpolate": "^2.0.1", + "d3-scale": "^3.2.3", + "d3-selection": "^2.0.0", + "d3-shape": "^2.0.0", + "d3-time-format": "^3.0.0", + "d3-transition": "^2.0.0", "tslib": "^2.0.0" } }, @@ -1997,34 +20511,41 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, - "@trysound/sax": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", - "integrity": "sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==", - "dev": true - }, "@types/component-emitter": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", - "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", "dev": true }, "@types/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", "dev": true }, "@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, + "@types/d3-path": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.1.tgz", + "integrity": "sha512-6K8LaFlztlhZO7mwsZg7ClRsdLg3FJRzIIi6SZXDWmmSJc2x8dd2VkESbLXdk3p8cuvz71f36S0y8Zv2AxqvQw==" + }, + "@types/d3-shape": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.3.tgz", + "integrity": "sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ==", + "requires": { + "@types/d3-path": "^2" + } + }, "@types/eslint": { - "version": "7.2.13", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.13.tgz", - "integrity": "sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.1.tgz", + "integrity": "sha512-UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ==", "dev": true, "requires": { "@types/estree": "*", @@ -2032,9 +20553,9 @@ } }, "@types/eslint-scope": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", - "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", "dev": true, "requires": { "@types/eslint": "*", @@ -2042,18 +20563,17 @@ } }, "@types/estree": { - "version": "0.0.47", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz", - "integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==", + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", "dev": true }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "@types/http-proxy": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.7.tgz", + "integrity": "sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w==", "dev": true, "requires": { - "@types/minimatch": "*", "@types/node": "*" } }, @@ -2064,21 +20584,15 @@ "dev": true }, "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "@types/node": { - "version": "12.20.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.15.tgz", - "integrity": "sha512-F6S4Chv4JicJmyrwlDkxUdGNSplsQdGwp1A0AJloEVDirWdZOAiRHhovDlsFkKUrquUXhz1imJhXHsf59auyAg==", + "version": "16.11.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.13.tgz", + "integrity": "sha512-eUXZzHLHoZqj1frtUetNkUetYoJ6X55UmrVnFD4DMhVeAmwLjniZhtBmsRiemQh4uq4G3vUra/Ws/hs9vEvL3Q==", "dev": true }, "@types/parse-json": { @@ -2093,29 +20607,18 @@ "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", "dev": true }, - "@types/selenium-webdriver": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", - "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", "dev": true }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "@types/selenium-webdriver": { + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.19.tgz", + "integrity": "sha512-OFUilxQg+rWL2FMxtmIgCkUDlJB6pskkpvmew7yeXfzzsOBb5rc+y2+DjHm+r3r1ZPPcJefK3DveNSYWGiy68g==", "dev": true }, - "@types/webpack-sources": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", - "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.6.1" - } - }, "@typescript-eslint/eslint-plugin": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.23.0.tgz", @@ -2130,20 +20633,100 @@ "regexpp": "^3.0.0", "semver": "^7.3.2", "tsutils": "^3.17.1" + }, + "dependencies": { + "@typescript-eslint/experimental-utils": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.23.0.tgz", + "integrity": "sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.23.0", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/typescript-estree": "4.23.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/types": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz", + "integrity": "sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "@typescript-eslint/experimental-utils": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.23.0.tgz", - "integrity": "sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.0.tgz", + "integrity": "sha512-NFVxYTjKj69qB0FM+piah1x3G/63WB8vCBMnlnEHUsiLzXSTWb9FmFn36FD9Zb4APKBLY3xRArOGSMQkuzTF1w==", "dev": true, "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.23.0", - "@typescript-eslint/types": "4.23.0", - "@typescript-eslint/typescript-estree": "4.23.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.3.0", + "@typescript-eslint/types": "5.3.0", + "@typescript-eslint/typescript-estree": "5.3.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.3.0.tgz", + "integrity": "sha512-22Uic9oRlTsPppy5Tcwfj+QET5RWEnZ5414Prby465XxQrQFZ6nnm5KnXgnsAJefG4hEgMnaxTB3kNEyjdjj6A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.3.0", + "@typescript-eslint/visitor-keys": "5.3.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz", + "integrity": "sha512-oVIAfIQuq0x2TFDNLVavUn548WL+7hdhxYn+9j3YdJJXB7mH9dAmZNJsPDa7Jc+B9WGqoiex7GUDbyMxV0a/aw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.3.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true + } } }, "@typescript-eslint/parser": { @@ -2156,6 +20739,29 @@ "@typescript-eslint/types": "4.23.0", "@typescript-eslint/typescript-estree": "4.23.0", "debug": "^4.1.1" + }, + "dependencies": { + "@typescript-eslint/types": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz", + "integrity": "sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + } } }, "@typescript-eslint/scope-manager": { @@ -2166,27 +20772,53 @@ "requires": { "@typescript-eslint/types": "4.23.0", "@typescript-eslint/visitor-keys": "4.23.0" + }, + "dependencies": { + "@typescript-eslint/types": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "dev": true + } } }, "@typescript-eslint/types": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", - "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.3.0.tgz", + "integrity": "sha512-fce5pG41/w8O6ahQEhXmMV+xuh4+GayzqEogN24EK+vECA3I6pUwKuLi5QbXO721EMitpQne5VKXofPonYlAQg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz", - "integrity": "sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.0.tgz", + "integrity": "sha512-FJ0nqcaUOpn/6Z4Jwbtf+o0valjBLkqc3MWkMvrhA2TvzFXtcclIM8F4MBEmYa2kgcI8EZeSAzwoSrIC8JYkug==", "dev": true, "requires": { - "@typescript-eslint/types": "4.23.0", - "@typescript-eslint/visitor-keys": "4.23.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "@typescript-eslint/types": "5.3.0", + "@typescript-eslint/visitor-keys": "5.3.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/visitor-keys": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz", + "integrity": "sha512-oVIAfIQuq0x2TFDNLVavUn548WL+7hdhxYn+9j3YdJJXB7mH9dAmZNJsPDa7Jc+B9WGqoiex7GUDbyMxV0a/aw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.3.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true + } } }, "@typescript-eslint/visitor-keys": { @@ -2197,151 +20829,159 @@ "requires": { "@typescript-eslint/types": "4.23.0", "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "@typescript-eslint/types": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "dev": true + } } }, "@webassemblyjs/ast": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", - "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", - "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", - "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", - "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", "dev": true }, "@webassemblyjs/helper-numbers": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", - "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", - "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", - "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, "@webassemblyjs/ieee754": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", - "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", - "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", - "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", - "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/helper-wasm-section": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-opt": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "@webassemblyjs/wast-printer": "1.11.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", - "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", - "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", - "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "@webassemblyjs/wast-printer": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", - "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, @@ -2385,16 +21025,46 @@ } }, "acorn": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz", - "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" }, "adjust-sourcemap-loader": { "version": "4.0.0", @@ -2404,6 +21074,19 @@ "requires": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } } }, "adm-zip": { @@ -2443,136 +21126,65 @@ } }, "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, "ajv-formats": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.0.2.tgz", - "integrity": "sha512-Brah4Uo5/U8v76c6euTwtjVFFaVishwnJrQBYpev1JRh4vjA1F4HY3UzQez41YUCszUCXKagG8v6eVRBHV1gkw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "requires": { "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", - "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } } }, "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "angular-user-idle": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/angular-user-idle/-/angular-user-idle-2.2.6.tgz", - "integrity": "sha512-R3fiokwxqt9VSIO/tZDm9I4xHYmjx5yYaWs5yWgUtDvc5q0mmZPU8IjBcl4kYEF1ibPCRXGuT9WJgh5Ngabt2w==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "fast-deep-equal": "^3.1.3" } }, - "angularx-qrcode": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/angularx-qrcode/-/angularx-qrcode-11.0.0.tgz", - "integrity": "sha512-qg6g288LO9daqBP5GCHewy9W0IMW7jDMEaAiklA1za0UhjCj6VH1Agydr4JVp7RMkw1LsLapFhWsVSYqrWaERA==", - "requires": { - "qrcode": "1.4.2", - "tslib": "^2.0.0" - } + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "optional": true }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, + "angular-user-idle": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/angular-user-idle/-/angular-user-idle-2.2.7.tgz", + "integrity": "sha512-Vu+vioYIRwT/Y2Aq+qXhP+wrleAfU50FIix736CY0IW37yAjRNPuXVljgRRtBSildVIzLRVtaGTqvC44duDo2w==", "requires": { - "string-width": "^3.0.0" + "tslib": "^1.9.0" }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -2588,16 +21200,16 @@ "type-fest": "^0.21.3" } }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -2617,51 +21229,19 @@ } }, "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "dev": true, "requires": { "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "readable-stream": "^3.6.0" } }, "arg": { @@ -2689,29 +21269,16 @@ "@babel/runtime-corejs3": "^7.10.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" + }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -2724,12 +21291,6 @@ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -2737,9 +21298,9 @@ "dev": true }, "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "requires": { "safer-buffer": "~2.1.0" } @@ -2769,11 +21330,27 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha1-dJRAWIh9goPhidlUYAlHvJj+AGI=", + "requires": { + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + } + } + }, + "ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=" }, "astral-regex": { "version": "2.0.0", @@ -2782,24 +21359,9 @@ "dev": true }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", "dev": true }, "asynckit": { @@ -2807,45 +21369,53 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", "dev": true, "requires": { "browserslist": "^4.12.0", "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", "postcss": "^7.0.32", "postcss-value-parser": "^4.1.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -2866,9 +21436,9 @@ "dev": true }, "babel-loader": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", - "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", + "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", "dev": true, "requires": { "find-cache-dir": "^3.3.1", @@ -2908,14 +21478,27 @@ "object.assign": "^4.1.0" } }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, "babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", + "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", "dev": true, "requires": { "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", + "@babel/helper-define-polyfill-provider": "^0.3.0", "semver": "^6.1.1" }, "dependencies": { @@ -2928,22 +21511,22 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz", - "integrity": "sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", + "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "@babel/helper-define-polyfill-provider": "^0.3.0", + "core-js-compat": "^3.18.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", + "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2" + "@babel/helper-define-polyfill-provider": "^0.3.0" } }, "balanced-match": { @@ -2952,72 +21535,16 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", + "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==", "dev": true }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "base64id": { "version": "2.0.0", @@ -3159,19 +21686,19 @@ "dev": true }, "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "dev": true, "requires": { "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -3183,10 +21710,16 @@ "color-convert": "^2.0.1" } }, + "camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true + }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -3224,9 +21757,9 @@ } }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true } } @@ -3249,12 +21782,46 @@ "fill-range": "^7.0.1" } }, + "brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" + } + }, "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, + "brotli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.2.tgz", + "integrity": "sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=", + "requires": { + "base64-js": "^1.1.2" + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -3292,6 +21859,16 @@ "safe-buffer": "^5.1.2" } }, + "browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk=", + "requires": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } + }, "browserify-rsa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", @@ -3328,15 +21905,15 @@ } }, "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", - "node-releases": "^1.1.71" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" } }, "browserstack": { @@ -3388,16 +21965,20 @@ "ieee754": "^1.1.13" } }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + }, "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "buffer-indexof": { "version": "1.1.1", @@ -3423,11 +22004,12 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "cacache": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz", - "integrity": "sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, "requires": { + "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -3447,23 +22029,6 @@ "unique-filename": "^1.1.1" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -3493,12 +22058,6 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true } } }, @@ -3506,7 +22065,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -3523,22 +22081,10 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, "caniuse-lite": { - "version": "1.0.30001237", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz", - "integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==" + "version": "1.0.30001286", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz", + "integrity": "sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ==" }, "canonical-path": { "version": "1.0.0", @@ -3613,30 +22159,8 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } + "requires": {} }, "clean-stack": { "version": "2.2.0", @@ -3660,9 +22184,9 @@ } }, "cli-spinners": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true }, "cli-width": { @@ -3684,8 +22208,7 @@ "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-deep": { "version": "4.0.1", @@ -3707,22 +22230,6 @@ "mimic-response": "^1.0.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -3736,16 +22243,17 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "colord": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.0.1.tgz", - "integrity": "sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA==", + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true }, "colors": { "version": "1.4.0", @@ -3762,9 +22270,9 @@ } }, "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "commondir": { @@ -3817,21 +22325,56 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } } } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -3906,9 +22449,9 @@ "integrity": "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" }, "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "requires": { "safe-buffer": "~5.1.1" } @@ -3919,16 +22462,16 @@ "integrity": "sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo=" }, "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" }, "cookie-parser": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz", - "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", "requires": { - "cookie": "0.4.0", + "cookie": "0.4.1", "cookie-signature": "1.0.6" } }, @@ -3946,62 +22489,82 @@ "is-what": "^3.12.0" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, "copy-webpack-plugin": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz", - "integrity": "sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.0.0.tgz", + "integrity": "sha512-tuCVuFMBbRsb7IH0q1CUb50/Skv+7a6c7DJ+xi4fAbOzNLTYVMUTPnf8uGvKPtmqTvzYBrfEFo7YgP4TsUWmtg==", "dev": true, "requires": { - "fast-glob": "^3.2.5", - "glob-parent": "^5.1.1", - "globby": "^11.0.3", + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", "normalize-path": "^3.0.0", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1" + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" }, "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globby": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz", + "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.8", + "merge2": "^1.4.1", + "slash": "^4.0.0" } }, "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true } } }, "core-js": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.12.0.tgz", - "integrity": "sha512-SaMnchL//WwU2Ot1hhkPflE8gzo7uq1FGvUJ8GKmi3TOU7rGTHIU+eir1WGf6qOtTyxdfdcp10yPdGZ59sQ3hw==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz", + "integrity": "sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==", "dev": true }, "core-js-compat": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", - "integrity": "sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.3.tgz", + "integrity": "sha512-59tYzuWgEEVU9r+SRgceIGXSSUn47JknoiXW6Oq7RW8QHjXWz3/vp8pa7dbtuVu40sewz3OP3JmQEcDdztrLhA==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.18.1", "semver": "7.0.0" }, "dependencies": { @@ -4014,9 +22577,9 @@ } }, "core-js-pure": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.14.0.tgz", - "integrity": "sha512-YVh+LN2FgNU0odThzm61BsdkwrbrchumFq3oztnE9vTKC4KS2fvnPmcx8t6jnqAyOTCTF4ZSiuK8Qhh7SNcL4g==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.3.tgz", + "integrity": "sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA==", "dev": true }, "core-util-is": { @@ -4035,9 +22598,9 @@ } }, "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -4093,15 +22656,16 @@ } }, "critters": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.10.tgz", - "integrity": "sha512-p5VKhP1803+f+0Jq5P03w1SbiHtpAKm+1EpJHkiPxQPq0Vu9QLZHviJ02GRrWi0dlcJqrmzMWInbwp4d22RsGw==", + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.15.tgz", + "integrity": "sha512-AE7hkXb3eZUbEvS1SKZa+OU4o2kUOXtzVeE/2E/mjU/0mV1wpBT1HfUCWVRS4zwvkBNJ0AQYsVjAoFm+kIhfdw==", "dev": true, "requires": { "chalk": "^4.1.0", - "css": "^3.0.0", + "css-select": "^4.1.3", "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", + "postcss": "^8.3.7", "pretty-bytes": "^5.3.0" }, "dependencies": { @@ -4115,9 +22679,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4163,24 +22727,14 @@ } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "crypto-browserify": { @@ -4202,6 +22756,11 @@ "randomfill": "^1.0.3" } }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -4227,6 +22786,14 @@ "inherits": "^2.0.4", "source-map": "^0.6.1", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "css-blank-pseudo": { @@ -4238,43 +22805,30 @@ "postcss": "^7.0.5" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "css-color-names": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", - "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", - "dev": true - }, - "css-declaration-sorter": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz", - "integrity": "sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw==", - "dev": true, - "requires": { - "timsort": "^0.3.0" - } - }, "css-has-pseudo": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", @@ -4291,15 +22845,20 @@ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, "postcss-selector-parser": { @@ -4313,126 +22872,28 @@ "uniq": "^1.0.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "css-loader": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz", - "integrity": "sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", + "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", "dev": true, "requires": { - "camelcase": "^6.2.0", "icss-utils": "^5.1.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.10", + "postcss": "^8.2.15", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.1.0", - "schema-utils": "^3.0.0", "semver": "^7.3.5" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "css-minimizer-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-yIrqG0pPphR1RoNx2wDxYmxRf2ubRChLDXxv7ccipEm5bRKsZRYp8n+2peeXehtTF5s3yNxlqsdz3WQOsAgUkw==", - "dev": true, - "requires": { - "cssnano": "^5.0.0", - "jest-worker": "^26.3.0", - "p-limit": "^3.0.2", - "postcss": "^8.2.9", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "css-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", - "dev": true, - "requires": { - "css": "^2.0.0" - }, - "dependencies": { - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - } } }, "css-prefers-color-scheme": { @@ -4444,55 +22905,47 @@ "postcss": "^7.0.5" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz", + "integrity": "sha512-6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==", "dev": true, "requires": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true }, "cssdb": { @@ -4507,69 +22960,6 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, - "cssnano": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.6.tgz", - "integrity": "sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw==", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "cssnano-preset-default": "^5.1.3", - "is-resolvable": "^1.1.0" - } - }, - "cssnano-preset-default": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz", - "integrity": "sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ==", - "dev": true, - "requires": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^2.0.1", - "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.0", - "postcss-convert-values": "^5.0.1", - "postcss-discard-comments": "^5.0.1", - "postcss-discard-duplicates": "^5.0.1", - "postcss-discard-empty": "^5.0.1", - "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.2", - "postcss-merge-rules": "^5.0.2", - "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.1", - "postcss-minify-params": "^5.0.1", - "postcss-minify-selectors": "^5.1.0", - "postcss-normalize-charset": "^5.0.1", - "postcss-normalize-display-values": "^5.0.1", - "postcss-normalize-positions": "^5.0.1", - "postcss-normalize-repeat-style": "^5.0.1", - "postcss-normalize-string": "^5.0.1", - "postcss-normalize-timing-functions": "^5.0.1", - "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.2", - "postcss-normalize-whitespace": "^5.0.1", - "postcss-ordered-values": "^5.0.2", - "postcss-reduce-initial": "^5.0.1", - "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.2", - "postcss-unique-selectors": "^5.0.1" - } - }, - "cssnano-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", - "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", - "dev": true - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - } - }, "csurf": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.11.0.tgz", @@ -4579,6 +22969,13 @@ "cookie-signature": "1.0.6", "csrf": "3.1.0", "http-errors": "~1.7.3" + }, + "dependencies": { + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + } } }, "custom-event": { @@ -4587,6 +22984,15 @@ "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "d3-array": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", @@ -4596,63 +23002,63 @@ } }, "d3-brush": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", - "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-2.1.0.tgz", + "integrity": "sha512-cHLLAFatBATyIKqZOkk/mDHUbzne2B3ZwxkzMHvFTCZCmLaXDpZRihQSn8UNXTkGD/3lb/W2sQz0etAftmHMJQ==", "requires": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" + "d3-dispatch": "1 - 2", + "d3-drag": "2", + "d3-interpolate": "1 - 2", + "d3-selection": "2", + "d3-transition": "2" } }, "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" }, "d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", + "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" }, "d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-2.0.0.tgz", + "integrity": "sha512-g9y9WbMnF5uqB9qKqwIIa/921RYWzlUDv9Jl1/yONQwxbOfszAWTCm8u7HOTgJgRDXiRZN56cHT9pd24dmXs8w==", "requires": { - "d3-dispatch": "1", - "d3-selection": "1" + "d3-dispatch": "1 - 2", + "d3-selection": "2" } }, "d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-2.0.0.tgz", + "integrity": "sha512-68/n9JWarxXkOWMshcT5IcjbB+agblQUaIsbnXmrzejn2O82n3p2A9R2zEB9HIEFWKFwPAEDDN8gR0VdSAyyAQ==" }, "d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" }, "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", + "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" }, "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", "requires": { - "d3-color": "1" + "d3-color": "1 - 2" } }, "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", + "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" }, "d3-scale": { "version": "3.3.0", @@ -4667,16 +23073,16 @@ } }, "d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==" }, "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", + "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", "requires": { - "d3-path": "1" + "d3-path": "1 - 2" } }, "d3-time": { @@ -4688,38 +23094,35 @@ } }, "d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", "requires": { - "d3-time": "1" - }, - "dependencies": { - "d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - } + "d3-time": "1 - 2" } }, "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", + "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" }, "d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-2.0.0.tgz", + "integrity": "sha512-42ltAGgJesfQE3u9LuuBHNbGrI/AJjNL2OAUdclE70UE6Vy239GCBEYD38uBPoLeNsOhFStGpPI0BAOV+HMxog==", "requires": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" + "d3-color": "1 - 2", + "d3-dispatch": "1 - 2", + "d3-ease": "1 - 2", + "d3-interpolate": "1 - 2", + "d3-timer": "1 - 2" } }, + "dash-ast": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", + "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==" + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -4735,9 +23138,9 @@ "dev": true }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { "ms": "2.1.2" } @@ -4766,7 +23169,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, "requires": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", @@ -4783,19 +23185,17 @@ "dev": true }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" + "execa": "^5.0.0" } }, "defaults": { @@ -4823,65 +23223,23 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { "object-keys": "^1.0.12" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "array-union": { @@ -4894,32 +23252,19 @@ } }, "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { "array-union": "^1.0.1", + "arrify": "^1.0.0", "glob": "^7.0.3", "object-assign": "^4.0.1", "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "pinkie-promise": "^2.0.0" } }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -4973,6 +23318,11 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, + "dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" + }, "di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -5082,18 +23432,18 @@ "dev": true }, "domhandler": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dev": true, "requires": { "domelementtype": "^2.2.0" } }, "domutils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", - "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "requires": { "dom-serializer": "^1.0.1", @@ -5116,6 +23466,38 @@ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", "dev": true }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -5144,10 +23526,19 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "dev": true, + "requires": { + "jake": "^10.6.1" + } + }, "electron-to-chromium": { - "version": "1.3.752", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz", - "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==" + "version": "1.4.18", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.18.tgz", + "integrity": "sha512-i7nKjGGBE1+YUIbfLObA1EZPmN7J1ITEllbhusDk+KIk6V6gUxN9PFe36v+Sd+8Cg0k3cgUv9lQhQZalr8rggw==" }, "elliptic": { "version": "6.5.4", @@ -5183,6 +23574,11 @@ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, + "encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -5220,47 +23616,45 @@ } }, "engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz", + "integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==", "dev": true, "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" + "engine.io-parser": "~5.0.0", + "ws": "~8.2.3" }, "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true - }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true, + "requires": {} } } }, "engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz", + "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==", "dev": true, "requires": { - "base64-arraybuffer": "0.1.4" + "base64-arraybuffer": "~1.0.1" } }, "enhanced-resolve": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", - "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -5305,6 +23699,7 @@ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "optional": true, "requires": { "prr": "~1.0.1" } @@ -5319,11 +23714,44 @@ } }, "es-module-lexer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", - "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", @@ -5339,6 +23767,189 @@ "es6-promise": "^4.0.3" } }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + }, + "dependencies": { + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + } + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "esbuild": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", + "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", + "dev": true, + "optional": true, + "requires": { + "esbuild-android-arm64": "0.14.2", + "esbuild-darwin-64": "0.14.2", + "esbuild-darwin-arm64": "0.14.2", + "esbuild-freebsd-64": "0.14.2", + "esbuild-freebsd-arm64": "0.14.2", + "esbuild-linux-32": "0.14.2", + "esbuild-linux-64": "0.14.2", + "esbuild-linux-arm": "0.14.2", + "esbuild-linux-arm64": "0.14.2", + "esbuild-linux-mips64le": "0.14.2", + "esbuild-linux-ppc64le": "0.14.2", + "esbuild-netbsd-64": "0.14.2", + "esbuild-openbsd-64": "0.14.2", + "esbuild-sunos-64": "0.14.2", + "esbuild-windows-32": "0.14.2", + "esbuild-windows-64": "0.14.2", + "esbuild-windows-arm64": "0.14.2" + } + }, + "esbuild-android-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", + "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", + "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", + "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", + "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", + "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", + "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", + "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", + "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", + "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", + "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", + "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", + "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", + "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", + "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", + "dev": true, + "optional": true + }, + "esbuild-wasm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.2.tgz", + "integrity": "sha512-Rs8NjWoo1UdsVjhxT2o6kLCX9Sh65pyd3/h4XeJ3jjQNM6NgL+/CSowuJgvOIjDAXMLXpc6fdGnyZQDil9IUJA==", + "dev": true + }, + "esbuild-windows-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", + "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", + "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", + "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", + "dev": true, + "optional": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -5360,6 +23971,43 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E=", + "requires": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.30" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=" + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=" + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, "eslint": { "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", @@ -5417,6 +24065,18 @@ "@babel/highlight": "^7.10.4" } }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -5451,27 +24111,33 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -5489,25 +24155,10 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "supports-color": { @@ -5524,85 +24175,18 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, "eslint-plugin-deprecation": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-deprecation/-/eslint-plugin-deprecation-1.2.1.tgz", - "integrity": "sha512-8KFAWPO3AvF0szxIh1ivRtHotd1fzxVOuNR3NI8dfCsQKgcxu9fAgEY+eTKvCRLAwwI8kaDDfImMt+498+EgRw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-deprecation/-/eslint-plugin-deprecation-1.3.1.tgz", + "integrity": "sha512-tpjYsG8lcRq9H+GUpJnGiXe/gG6feRzozHDVYvH79ajmcmZLWL+FE2Z2+GPDVONOkvd6e0mbSK1MDy0qhtHfGg==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "^2.19.2 || ^3.0.0", - "tslib": "^1.10.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "@typescript-eslint/experimental-utils": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz", - "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/types": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz", - "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz", - "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz", - "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "@typescript-eslint/experimental-utils": "^5.0.0", + "tslib": "^2.3.1", + "tsutils": "^3.21.0" } }, "eslint-scope": { @@ -5616,20 +24200,12 @@ } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "eslint-visitor-keys": "^2.0.0" } }, "eslint-visitor-keys": { @@ -5666,8 +24242,7 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { "version": "1.4.0", @@ -5679,9 +24254,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -5696,9 +24271,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -5706,20 +24281,38 @@ "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==" }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -5732,15 +24325,6 @@ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, - "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -5752,18 +24336,28 @@ } }, "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + } } }, "exit": { @@ -5772,56 +24366,6 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -5859,6 +24403,11 @@ "vary": "~1.1.2" }, "dependencies": { + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -5874,32 +24423,66 @@ } } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, + "express-session": { + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.2.tgz", + "integrity": "sha512-mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ==", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" }, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "is-plain-object": "^2.0.4" + "ms": "2.0.0" } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "requires": { + "type": "^2.5.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" } } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -5909,69 +24492,15 @@ "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "os-tmpdir": "~1.0.2" } } } @@ -5987,17 +24516,16 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" } }, "fast-json-stable-stringify": { @@ -6008,13 +24536,12 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fastq": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -6047,6 +24574,15 @@ "flat-cache": "^3.0.4" } }, + "filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -6085,9 +24621,9 @@ } }, "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { "commondir": "^1.0.1", @@ -6096,11 +24632,12 @@ } }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flat-cache": { @@ -6114,9 +24651,9 @@ } }, "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "flatten": { @@ -6126,15 +24663,9 @@ "dev": true }, "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", + "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", "dev": true }, "forever-agent": { @@ -6157,29 +24688,21 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "requires": { + "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "fs-minipass": { @@ -6212,8 +24735,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -6222,56 +24744,20 @@ "dev": true }, "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz", + "integrity": "sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw==", "dev": true, "requires": { - "aproba": "^1.0.3", + "ansi-regex": "^5.0.1", + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", + "has-unicode": "^2.0.1", "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" } }, "gensync": { @@ -6279,6 +24765,11 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -6288,13 +24779,18 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" } }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -6304,12 +24800,6 @@ "pump": "^3.0.0" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -6319,9 +24809,9 @@ } }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -6347,20 +24837,12 @@ "dev": true }, "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "dev": true, "requires": { - "ini": "1.3.7" - }, - "dependencies": { - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - } + "ini": "2.0.0" } }, "globals": { @@ -6402,9 +24884,9 @@ } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "handle-thing": { @@ -6425,13 +24907,30 @@ "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + } } }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -6447,81 +24946,36 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true } } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -6557,10 +25011,21 @@ "minimalistic-assert": "^1.0.1" } }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "hdr-histogram-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.1.tgz", + "integrity": "sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==", + "dev": true, + "requires": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", "dev": true }, "hmac-drbg": { @@ -6600,12 +25065,6 @@ "wbuf": "^1.1.0" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -6632,22 +25091,10 @@ } } }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", + "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", "dev": true }, "html-escaper": { @@ -6681,9 +25128,9 @@ } }, "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", + "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", "dev": true }, "http-proxy": { @@ -6709,120 +25156,16 @@ } }, "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz", + "integrity": "sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg==", "dev": true, "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "@types/http-proxy": "^1.17.5", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" } }, "http-signature": { @@ -6845,6 +25188,12 @@ "debug": "4" } }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, "humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", @@ -6866,7 +25215,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "requires": {} }, "ieee754": { "version": "1.2.1", @@ -6875,9 +25225,9 @@ "dev": true }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true }, "ignore-by-default": { @@ -6887,9 +25237,9 @@ "dev": true }, "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", "dev": true, "requires": { "minimatch": "^3.0.4" @@ -6908,6 +25258,12 @@ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", "dev": true }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -6916,6 +25272,14 @@ "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } } }, "import-lazy": { @@ -6924,27 +25288,6 @@ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "dependencies": { - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - } - } - }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6990,21 +25333,22 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.0.0.tgz", - "integrity": "sha512-ON8pEJPPCdyjxj+cxsYRe6XfCJepTxANdNnTebsTuQgXpRyZRRT9t4dJwjRubgmvn20CLSEnozRUayXyM9VTXA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", + "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^6.6.6", + "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" @@ -7020,9 +25364,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -7050,15 +25394,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7067,25 +25402,9 @@ "requires": { "has-flag": "^4.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, "internmap": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", @@ -7097,50 +25416,18 @@ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-arrayish": { @@ -7157,12 +25444,6 @@ "binary-extensions": "^2.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -7172,80 +25453,20 @@ "ci-info": "^2.0.0" } }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - }, - "dependencies": { - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - } - } - }, "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "dev": true, + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "requires": { "has": "^1.0.3" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "has-tostringtag": "^1.0.0" } }, "is-docker": { @@ -7254,12 +25475,6 @@ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -7271,29 +25486,21 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "dependencies": { - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - } + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" } }, "is-interactive": { @@ -7309,9 +25516,9 @@ "dev": true }, "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", "dev": true }, "is-number": { @@ -7326,28 +25533,42 @@ "dev": true }, "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", "dev": true }, "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "^2.1.0" + "is-path-inside": "^1.0.0" + }, + "dependencies": { + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + } } }, "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true }, "is-plain-object": { "version": "2.0.4", @@ -7359,25 +25580,18 @@ } }, "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "requires": { "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" + "has-tostringtag": "^1.0.0" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "is-typedarray": { @@ -7397,12 +25611,6 @@ "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -7419,9 +25627,9 @@ "dev": true }, "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { "version": "4.0.8", @@ -7447,20 +25655,21 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", "dev": true, "requires": { - "@babel/core": "^7.7.5", + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" }, "dependencies": { @@ -7501,26 +25710,46 @@ } }, "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, + "jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "dev": true, + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + } + }, "jasmine": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", @@ -7562,14 +25791,14 @@ "dev": true }, "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "27.4.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz", + "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" }, "dependencies": { "has-flag": { @@ -7579,9 +25808,9 @@ "dev": true }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -7633,14 +25862,15 @@ "dev": true }, "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -7653,12 +25883,6 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", @@ -7674,12 +25898,13 @@ "dev": true }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "jsonparse": { @@ -7713,13 +25938,13 @@ } }, "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" } }, @@ -7735,12 +25960,6 @@ "set-immediate-shim": "~1.0.1" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -7787,9 +26006,9 @@ } }, "karma": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.4.tgz", - "integrity": "sha512-hbhRogUYIulfkBTZT7xoPrCYhRBnBoqbbL4fszWD0ReFGUxU+LYBr3dwKdAluaDQ/ynT9/7C+Lf7pPNW4gSx4Q==", + "version": "6.3.9", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.9.tgz", + "integrity": "sha512-E/MqdLM9uVIhfuyVnrhlGBu4miafBdXEAEqCmwdEMh3n17C7UWC/8Kvm3AYKr91gc7scutekZ0xv6rxRaUCtnw==", "dev": true, "requires": { "body-parser": "^1.19.0", @@ -7810,27 +26029,39 @@ "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^3.1.0", + "socket.io": "^4.2.0", "source-map": "^0.6.1", "tmp": "^0.2.1", - "ua-parser-js": "^0.7.28", + "ua-parser-js": "^0.7.30", "yargs": "^16.1.1" }, "dependencies": { - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "rimraf": "^3.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true } } }, @@ -7841,6 +26072,17 @@ "dev": true, "requires": { "which": "^1.2.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "karma-coverage": { @@ -7855,6 +26097,26 @@ "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.0", "minimatch": "^3.0.4" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "karma-jasmine": { @@ -7867,10 +26129,11 @@ } }, "karma-jasmine-html-reporter": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.6.0.tgz", - "integrity": "sha512-ELO9yf0cNqpzaNLsfFgXd/wxZVYkE2+ECUwhMHUD4PZ17kcsPsYsVyjquiRqyMn2jkd2sHt0IeMyAyq1MC23Fw==", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", + "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", + "dev": true, + "requires": {} }, "karma-source-map-support": { "version": "1.4.0", @@ -7890,12 +26153,6 @@ "json-buffer": "3.0.0" } }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -7903,9 +26160,9 @@ "dev": true }, "klona": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", - "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", "dev": true }, "latest-version": { @@ -7918,9 +26175,9 @@ } }, "less": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz", - "integrity": "sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", "dev": true, "requires": { "copy-anything": "^2.0.1", @@ -7932,7 +26189,7 @@ "needle": "^2.5.2", "parse-node-version": "^1.0.1", "source-map": "~0.6.0", - "tslib": "^1.10.0" + "tslib": "^2.3.0" }, "dependencies": { "make-dir": { @@ -7946,6 +26203,20 @@ "semver": "^5.6.0" } }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -7953,18 +26224,19 @@ "dev": true, "optional": true }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true } } }, "less-loader": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-8.1.1.tgz", - "integrity": "sha512-K93jJU7fi3n6rxVvzp8Cb88Uy9tcQKfHlkoezHwKILXhlNYiRQl4yowLIkQqmBXOH/5I8yoKiYeIf781HGkW9g==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", + "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", "dev": true, "requires": { "klona": "^2.0.4" @@ -7981,13 +26253,12 @@ } }, "license-webpack-plugin": { - "version": "2.3.19", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.19.tgz", - "integrity": "sha512-z/izhwFRYHs1sCrDgrTUsNJpd+Xsd06OcFWSwHz/TiZygm5ucweVZi1Hu14Rf6tOj/XAl1Ebyc7GW6ZyyINyWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-b9iMrROrw2fTOJBZ57h0xJfT5/1Cxg4ucYbtpWoukv4Awb2TFPfDDFVHNM8w6SYQpVfB13a5tQJxgGamqwrsyw==", "dev": true, "requires": { - "@types/webpack-sources": "^0.1.5", - "webpack-sources": "^1.2.0" + "webpack-sources": "^3.0.0" } }, "lie": { @@ -8000,9 +26271,9 @@ } }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "loader-runner": { @@ -8012,23 +26283,17 @@ "dev": true }, "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "dev": true }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -8036,12 +26301,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -8078,12 +26337,6 @@ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -8101,12 +26354,6 @@ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -8127,9 +26374,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -8189,12 +26436,6 @@ } } }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true - }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -8241,13 +26482,13 @@ "dev": true }, "make-fetch-happen": { - "version": "8.0.14", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, "requires": { "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", + "cacache": "^15.2.0", "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", @@ -8258,35 +26499,12 @@ "minipass-fetch": "^1.3.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", + "socks-proxy-agent": "^6.0.0", "ssri": "^8.0.0" } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, "material-design-icons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/material-design-icons/-/material-design-icons-3.0.1.tgz", @@ -8303,98 +26521,38 @@ "safe-buffer": "^5.1.2" } }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, - "mem": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", - "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.3", - "mimic-fn": "^3.1.0" - }, - "dependencies": { - "mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true - } - } - }, "memfs": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz", - "integrity": "sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.0.tgz", + "integrity": "sha512-o/RfP0J1d03YwsAxyHxAYs2kyJp55AFkMazlFAZFR2I2IXkxiUTXRabJ6RmNNCQ83LAD2jy52Khj0m3OffpNdA==", "dev": true, "requires": { "fs-monkey": "1.0.3" } }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", "requires": { - "source-map": "^0.6.1" + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, "merge-stream": { @@ -8443,21 +26601,22 @@ } }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true }, "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" }, "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "requires": { - "mime-db": "1.48.0" + "mime-db": "1.51.0" } }, "mimic-fn": { @@ -8473,25 +26632,24 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.1.tgz", - "integrity": "sha512-wEpr0XooH6rw/Mlf+9KTJoMBLT3HujzdTrmohPjAzF47N4Q6yAeczQLpRD/WxvAtXvskcXbily7TAdCfi2M4Dg==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.5.tgz", + "integrity": "sha512-oEIhRucyn1JbT/1tU2BhnwO6ft1jjH1iCX9Gc59WFMg0n5773rQU0oyQ0zzeYFFuBfONaRbQJyGoPtuNseMxjA==", "dev": true, "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" + "schema-utils": "^4.0.0" }, "dependencies": { "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" } } } @@ -8523,9 +26681,9 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -8541,9 +26699,9 @@ } }, "minipass-fetch": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", - "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, "requires": { "encoding": "^0.1.12", @@ -8599,27 +26757,6 @@ "yallist": "^4.0.0" } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -8654,30 +26791,11 @@ "dev": true }, "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -8685,9 +26803,9 @@ "dev": true }, "needle": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", - "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "dev": true, "optional": true, "requires": { @@ -8719,6 +26837,20 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "ng-qrcode": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ng-qrcode/-/ng-qrcode-6.0.0.tgz", + "integrity": "sha512-I0ATJdgBn5vTOJwpOXgAwz/pVAIfOOQW4z+VwPNSF0NvpwzfCbLXrBJ+t+XWb3hgVdcPKp/zpAPX2yQb1FD6PA==", + "requires": { + "qrcode": "^1.4.4", + "tslib": "^2.0.0" + } + }, "ngx-perfect-scrollbar": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/ngx-perfect-scrollbar/-/ngx-perfect-scrollbar-10.1.1.tgz", @@ -8729,11 +26861,23 @@ "tslib": "^2.0.0" } }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "optional": true, + "requires": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true }, "node-forge": { "version": "0.10.0", @@ -8742,55 +26886,51 @@ "dev": true }, "node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, "requires": { "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" } }, + "node-gyp-build": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "dev": true, + "optional": true + }, "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" }, "nodemon": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", - "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", "dev": true, "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", + "chokidar": "^3.5.2", + "debug": "^3.2.7", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", + "pstree.remy": "^1.1.8", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" }, "dependencies": { "debug": { @@ -8831,9 +26971,9 @@ "dev": true }, "normalize-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.0.1.tgz", - "integrity": "sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true }, "npm-bundled": { @@ -8861,9 +27001,9 @@ "dev": true }, "npm-package-arg": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.2.tgz", - "integrity": "sha512-6Eem455JsSMJY6Kpd3EyWE+n5hC+g9bSyHr9K9U2zqZb7+02+hObQ2c0+8iDk/mNF+8r1MhY44WypKJAkySIYA==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "dev": true, "requires": { "hosted-git-info": "^4.0.1", @@ -8872,13 +27012,13 @@ } }, "npm-packlist": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", - "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", "dev": true, "requires": { "glob": "^7.1.6", - "ignore-walk": "^3.0.3", + "ignore-walk": "^4.0.1", "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" } @@ -8896,13 +27036,12 @@ } }, "npm-registry-fetch": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-10.1.2.tgz", - "integrity": "sha512-KsM/TdPmntqgBFlfsbkOLkkE9ovZo7VpVcd+/eTdYszCrgy5zFl5JzWm+OxavFaEWlbkirpkou+ZYI00RmOBFA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, "requires": { - "lru-cache": "^6.0.0", - "make-fetch-happen": "^8.0.9", + "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", "minipass-fetch": "^1.3.0", "minipass-json-stream": "^1.0.1", @@ -8911,30 +27050,30 @@ } }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "^3.0.0" } }, "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.0.tgz", + "integrity": "sha512-03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q==", "dev": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.0", + "set-blocking": "^2.0.0" } }, "nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dev": true, "requires": { "boolbase": "^1.0.0" @@ -8946,11 +27085,14 @@ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "nx": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-13.1.3.tgz", + "integrity": "sha512-clM0NQhQKYkqcNz2E3uYRMLwhp2L/9dBhJhQi9XBX4IAyA2gWAomhRIlLm5Xxg3g4h1xwSpP3eJ5t89VikY8Pw==", + "dev": true, + "requires": { + "@nrwl/cli": "*" + } }, "oauth-sign": { "version": "0.9.0", @@ -8963,42 +27105,15 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "object-inspect": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==" }, "object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -9007,17 +27122,7 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { "version": "4.1.2", @@ -9031,15 +27136,6 @@ "object-keys": "^1.1.1" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -9057,8 +27153,7 @@ "on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, "once": { "version": "1.4.0", @@ -9079,9 +27174,9 @@ } }, "open": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.0.2.tgz", - "integrity": "sha512-NV5QmWJrTaNBLHABJyrb+nd5dXI5zfea/suWawBhkHzAbVhLLiJdrqMgxMypGK9Eznp2Ltoh7SAVkQ3XAucX7Q==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, "requires": { "define-lazy-prop": "^2.0.0", @@ -9089,23 +27184,6 @@ "is-wsl": "^2.2.0" } }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - } - } - }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -9121,9 +27199,9 @@ } }, "ora": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.0.tgz", - "integrity": "sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "requires": { "bl": "^4.1.0", @@ -9147,9 +27225,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -9188,15 +27266,6 @@ } } }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -9219,18 +27288,6 @@ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -9240,11 +27297,11 @@ } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-map": { @@ -9257,12 +27314,21 @@ } }, "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", "dev": true, "requires": { - "retry": "^0.12.0" + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + }, + "dependencies": { + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + } } }, "p-try": { @@ -9291,15 +27357,15 @@ } }, "pacote": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.2.tgz", - "integrity": "sha512-lMO7V9aMhyE5gfaSFxKfW3OTdXuFBNQJfuNuet3NPzWWhOYIW90t85vHcHLDjdhgmfAdAHyh9q1HAap96ea0XA==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.2.tgz", + "integrity": "sha512-Ar3mhjcxhMzk+OVZ8pbnXdb0l8+pimvlsqBGRNkble2NVgyqOGE3yrCGi/lAYq7E7NRDMz89R1Wx5HIMCGgeYg==", "dev": true, "requires": { - "@npmcli/git": "^2.0.1", + "@npmcli/git": "^2.1.0", "@npmcli/installed-package-contents": "^1.0.6", "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^1.8.2", + "@npmcli/run-script": "^2.0.0", "cacache": "^15.0.5", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", @@ -9307,9 +27373,9 @@ "minipass": "^3.1.3", "mkdirp": "^1.0.3", "npm-package-arg": "^8.0.1", - "npm-packlist": "^2.1.4", + "npm-packlist": "^3.0.0", "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^10.0.0", + "npm-registry-fetch": "^11.0.0", "promise-retry": "^2.0.1", "read-package-json-fast": "^2.0.1", "rimraf": "^3.0.2", @@ -9426,22 +27492,10 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "path-is-absolute": { "version": "1.0.1", @@ -9456,16 +27510,15 @@ "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { "version": "0.1.7", @@ -9491,6 +27544,27 @@ "sha.js": "^2.4.8" } }, + "pdfmake": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.4.tgz", + "integrity": "sha512-EM39waHUe/Dg1W9C3XqYbpx6tfhYyU14JHZlI1HaW0AUEY32GbkRBjDLGWo9f7z/k3ea6k1p9yyDrflnvtZS1A==", + "requires": { + "@foliojs-fork/linebreak": "^1.1.1", + "@foliojs-fork/pdfkit": "^0.13.0", + "iconv-lite": "^0.6.3", + "xmldoc": "^1.1.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "perfect-scrollbar": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz", @@ -9501,15 +27575,20 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { @@ -9527,6 +27606,18 @@ "pinkie": "^2.0.0" } }, + "piscina": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.1.0.tgz", + "integrity": "sha512-KTW4sjsCD34MHrUbx9eAAbuUSpVj407hQSgk/6Epkg0pbRBmv4a3UX7Sr8wxm9xYqQLnsN4mFOjqGDzHAdgKQg==", + "dev": true, + "requires": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0", + "nice-napi": "^1.0.2" + } + }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -9534,48 +27625,17 @@ "dev": true, "requires": { "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } } }, + "png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" + }, "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" }, "portfinder": { "version": "1.0.28", @@ -9588,6 +27648,15 @@ "mkdirp": "^0.5.5" }, "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -9608,21 +27677,15 @@ } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, "postcss": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz", - "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==", + "version": "8.4.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", + "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", "dev": true, "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map-js": "^0.6.2" + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" } }, "postcss-attribute-case-insensitive": { @@ -9635,38 +27698,30 @@ "postcss-selector-parser": "^6.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "postcss-calc": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", - "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, "postcss-color-functional-notation": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", @@ -9677,25 +27732,27 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -9710,25 +27767,27 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -9742,25 +27801,27 @@ "postcss-values-parser": "^2.0.1" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -9775,25 +27836,27 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -9807,49 +27870,30 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "postcss-colormin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", - "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-convert-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", - "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, "postcss-custom-media": { "version": "7.0.8", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", @@ -9859,25 +27903,27 @@ "postcss": "^7.0.14" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -9891,25 +27937,27 @@ "postcss-values-parser": "^2.0.1" }, "dependencies": { - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -9929,15 +27977,20 @@ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, "postcss-selector-parser": { @@ -9951,14 +28004,11 @@ "uniq": "^1.0.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -9978,15 +28028,20 @@ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, "postcss-selector-parser": { @@ -10000,41 +28055,14 @@ "uniq": "^1.0.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "postcss-discard-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", - "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", - "dev": true - }, - "postcss-discard-duplicates": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", - "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", - "dev": true - }, - "postcss-discard-empty": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", - "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", - "dev": true - }, - "postcss-discard-overridden": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", - "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", - "dev": true - }, "postcss-double-position-gradients": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", @@ -10045,25 +28073,27 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10077,25 +28107,27 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10108,25 +28140,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10139,25 +28173,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10170,25 +28206,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10201,25 +28239,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10233,32 +28273,34 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "postcss-import": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.1.tgz", - "integrity": "sha512-Xn2+z++vWObbEPhiiKO1a78JiyhqipyrXHBb3AHpv0ks7Cdg+GxQQJ24ODNMTanldf7197gSP3axppO9yaG0lA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", "dev": true, "requires": { "postcss-value-parser": "^4.0.0", @@ -10275,25 +28317,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10308,37 +28352,39 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "postcss-loader": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-5.2.0.tgz", - "integrity": "sha512-uSuCkENFeUaOYsKrXm0eNNgVIxc71z8RcckLMbVw473rGojFnrUeqEz6zBgXsH2q1EIzXnO/4pEz9RhALjlITA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", "dev": true, "requires": { "cosmiconfig": "^7.0.0", - "klona": "^2.0.4", - "semver": "^7.3.4" + "klona": "^2.0.5", + "semver": "^7.3.5" } }, "postcss-logical": { @@ -10350,25 +28396,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10381,100 +28429,36 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "postcss-merge-longhand": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", - "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", - "dev": true, - "requires": { - "css-color-names": "^1.0.1", - "postcss-value-parser": "^4.1.0", - "stylehacks": "^5.0.1" - } - }, - "postcss-merge-rules": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", - "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^2.0.1", - "postcss-selector-parser": "^6.0.5", - "vendors": "^1.0.3" - } - }, - "postcss-minify-font-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", - "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-minify-gradients": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz", - "integrity": "sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "is-color-stop": "^1.1.0", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-minify-params": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", - "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", - "browserslist": "^4.16.0", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0", - "uniqs": "^2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", - "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5" - } - }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -10513,121 +28497,29 @@ "requires": { "postcss": "^7.0.2" }, - "dependencies": { - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-charset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", - "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", - "dev": true - }, - "postcss-normalize-display-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", - "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-positions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", - "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", - "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-string": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", - "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", - "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", - "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", - "dev": true, - "requires": { - "browserslist": "^4.16.0", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-url": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", - "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", - "dev": true, - "requires": { - "is-absolute-url": "^3.0.3", - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", - "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-ordered-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", - "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "postcss-overflow-shorthand": { @@ -10639,25 +28531,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10670,25 +28564,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10702,25 +28598,27 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10769,25 +28667,27 @@ "postcss-selector-not": "^4.0.0" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10807,15 +28707,20 @@ "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, "postcss-selector-parser": { @@ -10829,37 +28734,14 @@ "uniq": "^1.0.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "postcss-reduce-initial": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", - "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", - "dev": true, - "requires": { - "browserslist": "^4.16.0", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", - "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, "postcss-replace-overflow-wrap": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", @@ -10869,25 +28751,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10901,25 +28785,27 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -10933,63 +28819,44 @@ "postcss": "^7.0.2" }, "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz", + "integrity": "sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA==", "dev": true, "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, - "postcss-svgo": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", - "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0", - "svgo": "^2.3.0" - } - }, - "postcss-unique-selectors": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", - "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5", - "uniqs": "^2.0.0" - } - }, "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "postcss-values-parser": { @@ -11024,8 +28891,7 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "progress": { "version": "2.0.3", @@ -11084,15 +28950,6 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -11118,18 +28975,18 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -11149,120 +29006,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -11293,25 +29036,6 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, - "webdriver-manager": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", - "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", - "dev": true, - "requires": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - } - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -11324,9 +29048,9 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -11339,12 +29063,12 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -11399,7 +29123,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true + "dev": true, + "optional": true }, "psl": { "version": "1.8.0", @@ -11471,67 +29196,55 @@ "dev": true }, "qrcode": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.2.tgz", - "integrity": "sha512-eR6RgxFYPDFH+zFLTJKtoNP/RlsHANQb52AUmQ2bGDPMuUw7jJb0F+DNEgx7qQGIElrbFxWYMc0/B91zLZPF9Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz", + "integrity": "sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ==", "requires": { "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^13.2.4" + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "color-convert": "^2.0.1" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "ansi-regex": "^4.1.0" + "color-name": "~1.1.4" } }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, "y18n": { @@ -11540,26 +29253,27 @@ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^3.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "yargs-parser": "^18.1.2" } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -11578,18 +29292,22 @@ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "requires": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + } + }, "random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", @@ -11649,29 +29367,6 @@ } } }, - "raw-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", - "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -11705,20 +29400,12 @@ "dev": true, "requires": { "pify": "^2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } } }, "read-package-json-fast": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz", - "integrity": "sha512-5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, "requires": { "json-parse-even-better-errors": "^2.3.0", @@ -11756,18 +29443,18 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", "dev": true, "requires": { - "regenerate": "^1.4.0" + "regenerate": "^1.4.2" } }, "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, "regenerator-transform": { @@ -11779,16 +29466,6 @@ "@babel/runtime": "^7.8.4" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, "regex-parser": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", @@ -11799,7 +29476,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -11812,17 +29488,17 @@ "dev": true }, "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", "dev": true, "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" } }, "registry-auth-token": { @@ -11850,9 +29526,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", - "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -11866,24 +29542,6 @@ } } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -11915,6 +29573,11 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, @@ -11968,39 +29631,15 @@ "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, "requires": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, "resolve-url-loader": { @@ -12016,25 +29655,38 @@ "source-map": "0.6.1" }, "dependencies": { - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -12057,12 +29709,6 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -12081,18 +29727,6 @@ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -12138,9 +29772,9 @@ } }, "rxjs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.1.0.tgz", - "integrity": "sha512-gCFO5iHIbRPwznl6hAYuwNFld8W4S2shtSJIqG27ReWXo9IWrCyEICxUA+6vJHwSR/OakoenC4QsDxq50tzYmw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", "requires": { "tslib": "~2.1.0" }, @@ -12157,33 +29791,25 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { - "version": "1.32.12", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.12.tgz", - "integrity": "sha512-zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", + "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", "dev": true, "requires": { - "chokidar": ">=3.0.0 <4.0.0" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0" } }, "sass-loader": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-11.0.1.tgz", - "integrity": "sha512-Vp1LcP4slTsTNLEiDkTcm8zGN/XYYrZz2BZybQbliWA8eXveqA/AxsEjllQTpJbg2MzCsx/qNO48sHdZtOaxTw==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", + "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", "dev": true, "requires": { "klona": "^2.0.4", @@ -12232,8 +29858,7 @@ "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "schema-utils": { "version": "2.7.1", @@ -12244,6 +29869,47 @@ "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "scope-analyzer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", + "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", + "requires": { + "array-from": "^2.1.1", + "dash-ast": "^2.0.1", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" } }, "select-hose": { @@ -12353,6 +30019,11 @@ } } }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -12361,9 +30032,9 @@ } }, "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -12447,29 +30118,6 @@ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "dev": true }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -12491,250 +30139,111 @@ "integrity": "sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU=", "requires": { "convert-hex": "~0.1.0", - "convert-string": "~0.1.0" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - } + "convert-string": "~0.1.0" } }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "color-convert": "^2.0.1" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "color-name": "~1.1.4" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true } } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true }, "socket.io": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.0.tgz", + "integrity": "sha512-bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==", "dev": true, "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" } }, "socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", "dev": true }, "socket.io-parser": { @@ -12749,41 +30258,16 @@ } }, "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "requires": { "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", + "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, - "sockjs-client": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", - "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, "socks": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", @@ -12795,37 +30279,32 @@ } }, "socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", + "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", "dev": true, "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true }, "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true }, "source-map-loader": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-2.0.1.tgz", - "integrity": "sha512-UzOTTQhoNPeTNzOxwFw220RSRzdGSyH4lpNyWjR7Qm34P4/N0W669YSUFdH07+YNeN75h765XLHmNsF/bm97RQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.0.tgz", + "integrity": "sha512-GKGWqWvYr04M7tn8dryIWvb0s8YM41z82iQv01yBtIylgxax0CwvSy6gc2Y02iuXwEfGWRlMicH0nvms9UZphw==", "dev": true, "requires": { "abab": "^2.0.5", @@ -12841,6 +30320,12 @@ "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } + }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true } } }, @@ -12855,21 +30340,23 @@ } }, "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", @@ -12902,15 +30389,6 @@ "wbuf": "^1.7.3" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -12942,29 +30420,171 @@ "minipass": "^3.1.1" } }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true + "static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "requires": { + "escodegen": "^1.11.1" + }, + "dependencies": { + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + } + } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, + "static-module": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz", + "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "^1.11.1", + "has": "^1.0.1", + "magic-string": "0.25.1", + "merge-source-map": "1.0.4", + "object-inspect": "^1.6.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.5", + "through2": "~2.0.3" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "requires": { + "sourcemap-codec": "^1.4.1" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "is-descriptor": "^0.1.0" + "prelude-ls": "~1.1.2" } } } @@ -13005,19 +30625,35 @@ "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true } } }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -13035,18 +30671,28 @@ } } }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-json-comments": { @@ -13055,46 +30701,13 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "style-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", - "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "stylehacks": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", - "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", - "dev": true, - "requires": { - "browserslist": "^4.16.0", - "postcss-selector-parser": "^6.0.4" - } - }, "stylus": { - "version": "0.54.8", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", - "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.55.0.tgz", + "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", "dev": true, "requires": { - "css-parse": "~2.0.0", + "css": "^3.0.0", "debug": "~3.1.0", "glob": "^7.1.6", "mkdirp": "~1.0.4", @@ -13124,22 +30737,16 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true } } }, "stylus-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-5.0.0.tgz", - "integrity": "sha512-1OaGgixTgC8IAaMCodZXg7XYsfP1qU0UzTHDyPaWACUh34j9geJL4iA583tFJDOtfNUOfDLaBpUywc5MicQ1aA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", + "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", "dev": true, "requires": { - "fast-glob": "^3.2.5", + "fast-glob": "^3.2.7", "klona": "^2.0.4", "normalize-path": "^3.0.0" } @@ -13152,72 +30759,6 @@ "has-flag": "^3.0.0" } }, - "svgo": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.3.1.tgz", - "integrity": "sha512-riDDIQgXpEnn0BEl9Gvhh1LNLIyiusSpt64IR8upJu7MwxnzetmF/Y57pXQD2NMX2lVyMRzXt5f2M5rO4wG7Dw==", - "dev": true, - "requires": { - "@trysound/sax": "0.1.1", - "chalk": "^4.1.0", - "commander": "^7.1.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.2", - "csso": "^4.2.0", - "stable": "^0.1.8" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", @@ -13225,43 +30766,22 @@ "dev": true }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", "dev": true, "requires": { "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" } }, "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar": { @@ -13278,73 +30798,85 @@ "yallist": "^4.0.0" } }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, "terser": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz", - "integrity": "sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "source-map-support": "~0.5.20" } }, "terser-webpack-plugin": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.2.tgz", - "integrity": "sha512-6QhDaAiVHIQr5Ab3XUWZyDmrIPCHMiqJVljMF91YKyqwKkL5QHnYMkrMBy96v9Z7ev1hGhSEw1HQZc2p/s5Z8Q==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz", + "integrity": "sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==", "dev": true, "requires": { - "jest-worker": "^26.6.2", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", + "jest-worker": "^27.0.6", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", "source-map": "^0.6.1", - "terser": "^5.7.0" + "terser": "^5.7.2" }, "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "@types/json-schema": "^7.0.6", + "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -13359,8 +30891,40 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } }, "thunky": { "version": "1.1.0", @@ -13368,19 +30932,18 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true + "tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" }, "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "rimraf": "^3.0.0" } }, "to-fast-properties": { @@ -13388,44 +30951,12 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -13488,9 +31019,9 @@ } }, "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tsscmp": { "version": "1.0.6", @@ -13527,6 +31058,11 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -13551,6 +31087,17 @@ "mime-types": "~2.1.24" } }, + "typed-assert": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.8.tgz", + "integrity": "sha512-5NkbXZUlmCE73Fs7gvkp1XXJWHYetPkg60QnQ2NXQmBYNFxbBr2zA8GCtaH4K2s2WhOmSlgiSTmrjrcm5tnM5g==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -13561,14 +31108,14 @@ } }, "typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==" + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==" }, "ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true }, "uid-safe": { @@ -13580,69 +31127,62 @@ } }, "undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "dev": true, - "requires": { - "debug": "^2.2.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true }, "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" } }, "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", "dev": true }, + "unicode-properties": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.3.1.tgz", + "integrity": "sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA==", + "requires": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", "dev": true }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, + "unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + }, + "dependencies": { + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + } } }, "uniq": { @@ -13651,12 +31191,6 @@ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -13674,96 +31208,45 @@ "requires": { "imurmurhash": "^0.1.4" } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", "dev": true, "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", + "boxen": "^5.0.0", + "chalk": "^4.1.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, @@ -13778,9 +31261,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -13827,12 +31310,6 @@ "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", @@ -13851,16 +31328,6 @@ } } }, - "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -13870,17 +31337,10 @@ "prepend-http": "^2.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-merge": { "version": "1.0.1", @@ -13888,9 +31348,10 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true }, "v8-compile-cache": { "version": "2.3.0", @@ -13912,12 +31373,6 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -13935,9 +31390,9 @@ "dev": true }, "watchpack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", - "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -13961,472 +31416,81 @@ "requires": { "defaults": "^1.0.3" } - }, - "webdriver-js-extender": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", - "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", - "dev": true, - "requires": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - } - }, - "webpack": { - "version": "5.38.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz", - "integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.47", - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/wasm-edit": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "acorn": "^8.2.1", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.4.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.1", - "watchpack": "^2.2.0", - "webpack-sources": "^2.3.0" - }, - "dependencies": { - "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "webpack-sources": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", - "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - } - } - }, - "webpack-dev-middleware": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz", - "integrity": "sha512-mpa/FY+DiBu5+r5JUIyTCYWRfkWgyA3/OOE9lwfzV9S70A4vJYLsVRKj5rMFEsezBroy2FmPyQ8oBRVW8QmK1A==", - "dev": true, - "requires": { - "colorette": "^1.2.1", - "mem": "^8.0.0", - "memfs": "^3.2.0", - "mime-types": "^2.1.28", - "range-parser": "^1.2.1", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-dev-server": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", - "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, - "readdirp": { + "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "glob": "^7.1.3" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true }, "strip-ansi": { "version": "3.0.1", @@ -14438,123 +31502,211 @@ } }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "webpack": { + "version": "5.65.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz", + "integrity": "sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + } + } + }, + "webpack-dev-middleware": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.2.2.tgz", + "integrity": "sha512-DjZyYrsHhkikAFNvSNKrpnziXukU1EChFAh9j4LAm6ndPLPW8cN0KhM7T+RAiOqsQ6ABfQ8hoKIs9IWMTjov+w==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.2.2", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" } + } + } + }, + "webpack-dev-server": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.6.0.tgz", + "integrity": "sha512-oojcBIKvx3Ya7qs1/AVWHDgmP1Xml8rGsEBnSobxU/UJSX1xP1GPM3MwsAnDzvqcVmVki8tV7lbcsjEjk0PtYg==", + "dev": true, + "requires": { + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.2", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^1.10.11", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^5.2.1", + "ws": "^8.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" } }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" } }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "ansi-regex": "^6.0.1" } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true + }, + "ws": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz", + "integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==", + "dev": true, + "requires": {} } } }, "webpack-merge": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", - "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -14562,22 +31714,18 @@ } }, "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", + "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "dev": true }, "webpack-subresource-integrity": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", - "integrity": "sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.0.0.tgz", + "integrity": "sha512-x9514FpLRydO+UAQ8DY4aLtCjxmdLkuQVcDFN1kGzuusREYJ1B0rzk/iIlWiL6dnvrhEGFj2+UsdxDkP8Z4UKg==", "dev": true, "requires": { - "webpack-sources": "^1.3.0" + "typed-assert": "^1.0.8" } }, "websocket-driver": { @@ -14598,9 +31746,9 @@ "dev": true }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -14612,45 +31760,12 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "widest-line": { @@ -14671,8 +31786,7 @@ "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "wrap-ansi": { "version": "7.0.0", @@ -14726,13 +31840,10 @@ } }, "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", + "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", + "requires": {} }, "xdg-basedir": { "version": "4.0.0", @@ -14756,6 +31867,19 @@ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true }, + "xmldoc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", + "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", + "requires": { + "sax": "^1.2.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -14773,23 +31897,31 @@ "dev": true }, "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" + }, + "dependencies": { + "yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==" + } } }, "yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==" + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", + "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", + "dev": true }, "yn": { "version": "3.1.1", @@ -14797,12 +31929,6 @@ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, "zone.js": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", diff --git a/package.json b/package.json index 02fa2329..458bf0f8 100644 --- a/package.json +++ b/package.json @@ -1,72 +1,80 @@ { "name": "rtl", - "version": "0.11.2-beta", + "version": "0.12.0-beta", "license": "MIT", + "type": "module", "scripts": { "ng": "ng", "start": "ng serve --open", - "prebuild": "node ./src/prebuild", - "build": "ng analytics off && ng lint && ng test && ng build --configuration production", + "prebuildfrontend": "node src/prebuild.cjs", + "buildfrontend": "ng build --configuration production", + "buildbackend": "tsc --project tsconfig.json", + "watchbackend": "tsc --project tsconfig.json --watch", "server": "set NODE_ENV=development&&nodemon ./rtl.js", - "test": "ng test --watch=true --code-coverage", + "serverUbuntu": "NODE_ENV=development nodemon ./rtl.js", + "testdev": "ng test --watch=true --code-coverage", + "test": "ng test --watch=false", "lint": "ng lint", "postinstall": "ngcc" }, "private": true, "dependencies": { - "@angular/animations": "~12.0.1", - "@angular/cdk": "^12.0.1", - "@angular/common": "~12.0.1", - "@angular/compiler": "~12.0.1", - "@angular/compiler-cli": "~12.0.1", - "@angular/core": "~12.0.1", - "@angular/flex-layout": "^12.0.0-beta.34", - "@angular/forms": "~12.0.1", - "@angular/material": "^12.0.1", - "@angular/platform-browser": "~12.0.1", - "@angular/platform-browser-dynamic": "~12.0.1", - "@angular/router": "~12.0.1", - "@fortawesome/angular-fontawesome": "^0.8.1", + "@angular/animations": "~13.0.2", + "@angular/cdk": "^13.0.2", + "@angular/common": "~13.0.2", + "@angular/compiler": "~13.0.2", + "@angular/compiler-cli": "~13.0.2", + "@angular/core": "~13.0.2", + "@angular/flex-layout": "^13.0.0-beta.36", + "@angular/forms": "~13.0.2", + "@angular/material": "^13.0.2", + "@angular/platform-browser": "~13.0.2", + "@angular/platform-browser-dynamic": "~13.0.2", + "@angular/router": "~13.0.2", + "@fortawesome/angular-fontawesome": "^0.10.1", "@fortawesome/fontawesome-svg-core": "^1.2.32", "@fortawesome/free-regular-svg-icons": "^5.15.1", "@fortawesome/free-solid-svg-icons": "^5.15.1", - "@ngrx/effects": "^12.0.0", - "@ngrx/store": "^12.0.0", - "@swimlane/ngx-charts": "^16.0.0", - "angular-user-idle": "^2.2.5", - "angularx-qrcode": "^11.0.0", + "@ngrx/effects": "^13.0.2", + "@ngrx/store": "^13.0.2", + "@swimlane/ngx-charts": "^19.2.0", + "angular-user-idle": "^2.2.7", "atob": "^2.1.2", "cookie-parser": "^1.4.5", "csurf": "^1.11.0", "express": "^4.17.1", + "express-session": "^1.17.2", "hocon-parser": "^1.0.1", "ini": "^2.0.0", "jsonwebtoken": "^8.5.1", "material-design-icons": "^3.0.1", + "ng-qrcode": "^6.0.0", "ngx-perfect-scrollbar": "^10.0.1", "otplib": "^12.0.1", + "pdfmake": "^0.2.4", "request": "^2.88.2", "request-promise": "^4.2.6", "roboto-fontface": "^0.10.0", "rxjs": "^7.1.0", "sha256": "^0.2.0", - "tslib": "^2.0.0", - "typescript": "~4.2.4", + "tslib": "^2.3.1", + "typescript": "~4.4.4", + "ws": "^7.4.6", "zone.js": "~0.11.4" }, "devDependencies": { - "@angular-devkit/build-angular": "~12.0.1", - "@angular-eslint/builder": "12.0.0", - "@angular-eslint/eslint-plugin": "12.0.0", - "@angular-eslint/eslint-plugin-template": "12.0.0", - "@angular-eslint/schematics": "12.0.0", - "@angular-eslint/template-parser": "12.0.0", - "@angular/cli": "^12.0.1", - "@ngrx/store-devtools": "^12.0.0", + "@angular-devkit/build-angular": "^13.0.3", + "@angular-eslint/builder": "13.0.1", + "@angular-eslint/eslint-plugin": "13.0.1", + "@angular-eslint/eslint-plugin-template": "13.0.1", + "@angular-eslint/schematics": "13.0.1", + "@angular-eslint/template-parser": "13.0.1", + "@angular/cli": "^13.0.3", + "@ngrx/store-devtools": "^13.0.2", "@types/jasmine": "~3.6.0", - "@types/node": "^12.19.9", - "@typescript-eslint/eslint-plugin": "4.23.0", - "@typescript-eslint/parser": "4.23.0", + "@types/node": "^16.11.12", + "@typescript-eslint/eslint-plugin": "~4.23.0", + "@typescript-eslint/parser": "~4.23.0", "crypto-browserify": "^3.12.0", "dotenv": "^8.2.0", "eslint": "^7.32.0", @@ -78,7 +86,7 @@ "karma-coverage": "~2.0.3", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "^1.5.0", - "nodemon": "^2.0.6", + "nodemon": "~2.0.6", "protractor": "~7.0.0", "stream-browserify": "^3.0.0", "ts-node": "~8.3.0" diff --git a/routes/app.js b/routes/app.js deleted file mode 100644 index f8338e7d..00000000 --- a/routes/app.js +++ /dev/null @@ -1,126 +0,0 @@ -const path = require("path"); -const express = require("express"); -const bodyParser = require("body-parser"); -const cookieParser = require("cookie-parser"); -const csurf = require("csurf"); -const common = require("./common"); - -const baseHref = "/rtl/"; -const apiRoot = baseHref + "api/"; -const apiLNDRoot = baseHref + "api/lnd/"; -const apiCLRoot = baseHref + "api/cl/"; -const apiECLRoot = baseHref + "api/ecl/"; - -const authenticateRoutes = require("./shared/authenticate"); -const RTLConfRoutes = require("./shared/RTLConf"); -const loopRoutes = require('./shared/loop'); -const boltzRoutes = require('./shared/boltz'); - -const infoRoutes = require("./lnd/getInfo"); -const channelsRoutes = require("./lnd/channels"); -const channelsBackupRoutes = require("./lnd/channelsBackup"); -const peersRoutes = require("./lnd/peers"); -const feesRoutes = require("./lnd/fees"); -const balanceRoutes = require("./lnd/balance"); -const walletRoutes = require("./lnd/wallet"); -const graphRoutes = require("./lnd/graph"); -const newAddressRoutes = require("./lnd/newAddress"); -const transactionsRoutes = require("./lnd/transactions"); -const payReqRoutes = require("./lnd/payReq"); -const paymentsRoutes = require("./lnd/payments"); -const invoiceRoutes = require("./lnd/invoices"); -const switchRoutes = require("./lnd/switch"); -const messageRoutes = require("./lnd/message"); - -const infoCLRoutes = require("./c-lightning/getInfo"); -const feesCLRoutes = require("./c-lightning/fees"); -const balanceCLRoutes = require("./c-lightning/balance"); -const channelsCLRoutes = require("./c-lightning/channels"); -const invoicesCLRoutes = require("./c-lightning/invoices"); -const onChainCLRoutes = require("./c-lightning/onchain"); -const paymentsCLRoutes = require("./c-lightning/payments"); -const peersCLRoutes = require("./c-lightning/peers"); -const networkCLRoutes = require("./c-lightning/network"); -const messageCLRoutes = require("./c-lightning/message"); - -const infoECLRoutes = require("./eclair/getInfo"); -const feesECLRoutes = require("./eclair/fees"); -const channelsECLRoutes = require("./eclair/channels"); -const onChainECLRoutes = require("./eclair/onchain"); -const peersECLRoutes = require("./eclair/peers"); -const invoicesECLRoutes = require("./eclair/invoices"); -const paymentsECLRoutes = require("./eclair/payments"); -const networkECLRoutes = require("./eclair/network"); - -const app = express(); -const csrfProtection = csurf({cookie: true}); - -app.set('trust proxy', true); -app.use(cookieParser(common.secret_key)); -app.use(bodyParser.json({limit: '25mb'})); -app.use(bodyParser.urlencoded({extended: false, limit: '25mb'})); -app.use(baseHref, express.static(path.join(__dirname, "..", "angular"))); - -app.use((req, res, next) => { - res.setHeader( - "Access-Control-Allow-Headers", - "Origin, X-Requested-With, Content-Type, Accept, Authorization, filePath" - ); - res.setHeader( - "Access-Control-Allow-Methods", - "GET, POST, PATCH, PUT, DELETE, OPTIONS" - ); - if (process.env.NODE_ENV == 'development') { - res.setHeader("Access-Control-Allow-Origin", req.headers.origin ? req.headers.origin : ''); - return next(); - } - csrfProtection(req, res, next); -}); - -app.use(apiRoot + "authenticate", authenticateRoutes); -app.use(apiRoot + "conf", RTLConfRoutes); -app.use(apiRoot + "boltz", boltzRoutes); - -app.use(apiLNDRoot + "getinfo", infoRoutes); -app.use(apiLNDRoot + "channels", channelsRoutes); -app.use(apiLNDRoot + "channels/backup", channelsBackupRoutes); -app.use(apiLNDRoot + "peers", peersRoutes); -app.use(apiLNDRoot + "fees", feesRoutes); -app.use(apiLNDRoot + "balance", balanceRoutes); -app.use(apiLNDRoot + "wallet", walletRoutes); -app.use(apiLNDRoot + "network", graphRoutes); -app.use(apiLNDRoot + "newaddress", newAddressRoutes); -app.use(apiLNDRoot + "transactions", transactionsRoutes); -app.use(apiLNDRoot + "payreq", payReqRoutes); -app.use(apiLNDRoot + "payments", paymentsRoutes); -app.use(apiLNDRoot + "invoices", invoiceRoutes); -app.use(apiLNDRoot + "switch", switchRoutes); -app.use(apiLNDRoot + "loop", loopRoutes); -app.use(apiLNDRoot + "message", messageRoutes); - -app.use(apiCLRoot + "getinfo", infoCLRoutes); -app.use(apiCLRoot + "fees", feesCLRoutes); -app.use(apiCLRoot + "balance", balanceCLRoutes); -app.use(apiCLRoot + "channels", channelsCLRoutes); -app.use(apiCLRoot + "invoices", invoicesCLRoutes); -app.use(apiCLRoot + "onchain", onChainCLRoutes); -app.use(apiCLRoot + "payments", paymentsCLRoutes); -app.use(apiCLRoot + "peers", peersCLRoutes); -app.use(apiCLRoot + "network", networkCLRoutes); -app.use(apiCLRoot + "message", messageCLRoutes); - -app.use(apiECLRoot + "getinfo", infoECLRoutes); -app.use(apiECLRoot + "fees", feesECLRoutes); -app.use(apiECLRoot + "channels", channelsECLRoutes); -app.use(apiECLRoot + "onchain", onChainECLRoutes); -app.use(apiECLRoot + "peers", peersECLRoutes); -app.use(apiECLRoot + "invoices", invoicesECLRoutes); -app.use(apiECLRoot + "payments", paymentsECLRoutes); -app.use(apiECLRoot + "network", networkECLRoutes); - -app.use((req, res, next) => { - res.cookie('XSRF-TOKEN', req.csrfToken ? req.csrfToken() : ''); - res.sendFile(path.join(__dirname, "..", "angular", "index.html")); -}); - -module.exports = app; diff --git a/routes/c-lightning/balance.js b/routes/c-lightning/balance.js deleted file mode 100644 index 600d2b20..00000000 --- a/routes/c-lightning/balance.js +++ /dev/null @@ -1,8 +0,0 @@ -const BalanceController = require("../../controllers/c-lightning/balance"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, BalanceController.getBalance); - -module.exports = router; diff --git a/routes/c-lightning/channels.js b/routes/c-lightning/channels.js deleted file mode 100644 index 427b9054..00000000 --- a/routes/c-lightning/channels.js +++ /dev/null @@ -1,14 +0,0 @@ -const ChannelsController = require("../../controllers/c-lightning/channels"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/listChannels", authCheck, ChannelsController.listChannels); -router.post("/", authCheck, ChannelsController.openChannel); -router.post("/setChannelFee", authCheck, ChannelsController.setChannelFee); -router.delete("/:channelId", authCheck, ChannelsController.closeChannel); - -router.get("/localremotebalance", authCheck, ChannelsController.getLocalRemoteBalance); -router.get("/listForwards", authCheck, ChannelsController.listForwards); - -module.exports = router; diff --git a/routes/c-lightning/fees.js b/routes/c-lightning/fees.js deleted file mode 100644 index cad830f5..00000000 --- a/routes/c-lightning/fees.js +++ /dev/null @@ -1,8 +0,0 @@ -const FeesController = require("../../controllers/c-lightning/fees"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, FeesController.getFees); - -module.exports = router; diff --git a/routes/c-lightning/getInfo.js b/routes/c-lightning/getInfo.js deleted file mode 100644 index 13c4efa0..00000000 --- a/routes/c-lightning/getInfo.js +++ /dev/null @@ -1,8 +0,0 @@ -const infoController = require("../../controllers/c-lightning/getInfo"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, infoController.getInfo); - -module.exports = router; diff --git a/routes/c-lightning/invoices.js b/routes/c-lightning/invoices.js deleted file mode 100644 index a8057faf..00000000 --- a/routes/c-lightning/invoices.js +++ /dev/null @@ -1,10 +0,0 @@ -const invoicesController = require("../../controllers/c-lightning/invoices"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, invoicesController.listInvoices); -router.post("/", authCheck, invoicesController.addInvoice); -router.delete("/", authCheck, invoicesController.deleteExpiredInvoice); - -module.exports = router; \ No newline at end of file diff --git a/routes/c-lightning/message.js b/routes/c-lightning/message.js deleted file mode 100644 index 22d3a001..00000000 --- a/routes/c-lightning/message.js +++ /dev/null @@ -1,9 +0,0 @@ -const MessagesController = require("../../controllers/c-lightning/message"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.post("/sign", authCheck, MessagesController.signMessage); -router.post("/verify", authCheck, MessagesController.verifyMessage); - -module.exports = router; diff --git a/routes/c-lightning/network.js b/routes/c-lightning/network.js deleted file mode 100644 index 9fcd0953..00000000 --- a/routes/c-lightning/network.js +++ /dev/null @@ -1,11 +0,0 @@ -const NetworkController = require("../../controllers/c-lightning/network"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/getRoute/:destPubkey/:amount", authCheck, NetworkController.getRoute); -router.get("/listNode/:id", authCheck, NetworkController.listNode); -router.get("/listChannel/:channelShortId", authCheck, NetworkController.listChannel); -router.get("/feeRates/:feeRateStyle", authCheck, NetworkController.feeRates); - -module.exports = router; diff --git a/routes/c-lightning/onchain.js b/routes/c-lightning/onchain.js deleted file mode 100644 index b52868a3..00000000 --- a/routes/c-lightning/onchain.js +++ /dev/null @@ -1,10 +0,0 @@ -const OnChainController = require("../../controllers/c-lightning/onchain"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, OnChainController.getNewAddress); -router.post("/", authCheck, OnChainController.onChainWithdraw); -router.get("/utxos/", authCheck, OnChainController.getUTXOs); - -module.exports = router; diff --git a/routes/c-lightning/payments.js b/routes/c-lightning/payments.js deleted file mode 100644 index bdad1bf0..00000000 --- a/routes/c-lightning/payments.js +++ /dev/null @@ -1,10 +0,0 @@ -const PaymentsController = require("../../controllers/c-lightning/payments"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, PaymentsController.listPayments); -router.get("/:invoice", authCheck, PaymentsController.decodePayment); -router.post("/:type", authCheck, PaymentsController.postPayment); - -module.exports = router; diff --git a/routes/c-lightning/peers.js b/routes/c-lightning/peers.js deleted file mode 100644 index 974f685f..00000000 --- a/routes/c-lightning/peers.js +++ /dev/null @@ -1,10 +0,0 @@ -const PeersController = require("../../controllers/c-lightning/peers"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, PeersController.getPeers); -router.post("/", authCheck, PeersController.postPeer); -router.delete("/:peerId", authCheck, PeersController.deletePeer); - -module.exports = router; diff --git a/routes/common.js b/routes/common.js deleted file mode 100644 index 7f438edc..00000000 --- a/routes/common.js +++ /dev/null @@ -1,333 +0,0 @@ -var fs = require('fs'); -var crypto = require('crypto'); -var path = require('path'); -var common = {}; -const MONTHS = [{name: 'JAN', days: 31}, {name: 'FEB', days: 28}, {name: 'MAR', days: 31}, {name: 'APR', days: 30}, {name: 'MAY', days: 31}, {name: 'JUN', days: 30}, {name: 'JUL', days: 31}, {name: 'AUG', days: 31}, {name: 'SEP', days: 30}, {name: 'OCT', days: 31}, {name: 'NOV', days: 30}, {name: 'DEC', days: 31}]; -var dummy_data_array_from_file = []; - -common.rtl_conf_file_path = ''; -common.rtl_pass = ''; -common.rtl_secret2fa = ''; -common.rtl_sso = 0; -common.port = 3000; -common.host = null; -common.rtl_cookie_path = ''; -common.logout_redirect_link = ''; -common.cookie = ''; -common.secret_key = crypto.randomBytes(64).toString('hex'); -common.nodes = []; -common.selectedNode = {}; -common.read_dummy_data = false; - -common.getSwapServerOptions = () => { - let swapOptions = { - url: common.selectedNode.swap_server_url, - rejectUnauthorized: false, - json: true, - headers: { - 'Grpc-Metadata-macaroon': '' - } - }; - if (common.selectedNode.swap_macaroon_path) { - try { - swapOptions.headers = {'Grpc-Metadata-macaroon': fs.readFileSync(path.join(common.selectedNode.swap_macaroon_path, 'loop.macaroon')).toString('hex')}; - } catch(err) { - console.error('Loop macaroon Error: ' + JSON.stringify(err)); - } - } - return swapOptions; -}; - -common.getBoltzServerOptions = () => { - let boltzOptions = { - url: common.selectedNode.boltz_server_url, - rejectUnauthorized: false, - json: true, - headers: { - 'Grpc-Metadata-macaroon': '' - } - }; - if (common.selectedNode.boltz_macaroon_path) { - try { - boltzOptions.headers = {'Grpc-Metadata-macaroon': fs.readFileSync(path.join(common.selectedNode.boltz_macaroon_path, 'admin.macaroon')).toString('hex')}; - } catch(err) { - console.error('Boltz macaroon Error: ' + JSON.stringify(err)); - } - } - return boltzOptions; -}; - -common.getSelLNServerUrl = () => { - return common.selectedNode.ln_server_url; -}; - -common.getOptions = () => { - common.selectedNode.options.method = common.selectedNode.ln_implementation.toUpperCase() !== 'ECL' ? 'GET' : 'POST'; - delete common.selectedNode.options.form; - common.selectedNode.options.qs = {}; - return common.selectedNode.options; -}; - -common.updateSelectedNodeOptions = () => { - if (!common.selectedNode) { - common.selectedNode = {}; - } - common.selectedNode.options = { - url: '', - rejectUnauthorized: false, - json: true, - form: null - }; - try { - if (common.selectedNode && common.selectedNode.ln_implementation) { - switch (common.selectedNode.ln_implementation.toUpperCase()) { - case 'CLT': - common.selectedNode.options.headers = { 'macaroon': Buffer.from(fs.readFileSync(path.join(common.selectedNode.macaroon_path, 'access.macaroon'))).toString("base64") }; - break; - - case 'ECL': - common.selectedNode.options.headers = { 'authorization': 'Basic ' + Buffer.from(':' + common.selectedNode.ln_api_password).toString('base64') }; - break; - - default: - common.selectedNode.options.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(path.join(common.selectedNode.macaroon_path, 'admin.macaroon')).toString('hex') }; - break; - } - } - return { status: 200, message: 'Updated Successfully!' }; - } catch(err) { - common.selectedNode.options = { - url: '', - rejectUnauthorized: false, - json: true, - form: null - }; - console.error('Common Update Selected Node Options Error:' + JSON.stringify(err)); - return { status: 502, message: err }; - } -} - -common.setOptions = () => { - if ( common.nodes[0].options && common.nodes[0].options.headers) { return; } - if (common.nodes && common.nodes.length > 0) { - common.nodes.forEach(node => { - node.options = { - url: '', - rejectUnauthorized: false, - json: true, - form: null - }; - try { - if (node.ln_implementation) { - switch (node.ln_implementation.toUpperCase()) { - case 'CLT': - node.options.headers = { 'macaroon': Buffer.from(fs.readFileSync(path.join(node.macaroon_path, 'access.macaroon'))).toString("base64") }; - break; - - case 'ECL': - node.options.headers = { 'authorization': 'Basic ' + Buffer.from(':' + node.ln_api_password).toString('base64') }; - break; - - default: - node.options.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(path.join(node.macaroon_path, 'admin.macaroon')).toString('hex') }; - break; - } - } - } catch (err) { - console.error('Common Set Options Error:' + JSON.stringify(err)); - node.options = { - url: '', - rejectUnauthorized: false, - json: true, - form: '' - }; - } - }); - common.updateSelectedNodeOptions(); - } -} - -common.findNode = (selNodeIndex) => { - return common.nodes.find(node => node.index == selNodeIndex); -} - -common.replaceNode = (selNodeIndex, newNode) => { - let foundIndex = common.nodes.findIndex((node) => node.index == selNodeIndex); - common.nodes.splice(foundIndex, 1, newNode); - common.selectedNode = common.findNode(selNodeIndex); -} - -common.convertTimestampToTime = (num) => { - let myDate = new Date(+num * 1000); - let days = myDate.getDate().toString(); - days = +days < 10 ? '0' + days : days; - let hours = myDate.getHours().toString(); - hours = +hours < 10 ? '0' + hours : hours; - let minutes = myDate.getMinutes().toString(); - minutes = +minutes < 10 ? '0' + minutes : minutes; - let seconds = myDate.getSeconds().toString(); - seconds = +seconds < 10 ? '0' + seconds : seconds; - return days + "/" + MONTHS[myDate.getMonth()].name + "/" + myDate.getFullYear() + " " + hours + ":" + minutes + ":" + seconds; -}; - -common.sortAscByKey = (array, key) => { - return array.sort(function (a, b) { - var x = +a[key]; var y = +b[key]; - return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - }); -} - -common.sortDescByKey = (array, key) => { - const temp = array.sort(function (a, b) { - var x = +a[key] ? +a[key] : 0; var y = +b[key] ? +b[key] : 0; - return (x > y) ? -1 : ((x < y) ? 1 : 0); - }); - return temp; -} - -common.sortAscByStrKey = (array, key) => { - return array.sort(function (a, b) { - var x = a[key] ? a[key].toUpperCase() : ''; var y = b[key] ? b[key].toUpperCase() : ''; - return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - }); -} - -common.sortDescByStrKey = (array, key) => { - const temp = array.sort(function (a, b) { - var x = a[key] ? a[key].toUpperCase() : ''; var y = b[key] ? b[key].toUpperCase() : ''; - return (x > y) ? -1 : ((x < y) ? 1 : 0); - }); - return temp; -} - -common.newestOnTop = (array, key, value) => { - var index = array.findIndex(function (item) { - return item[key] === value - }); - var newlyAddedRecord = array.splice(index, 1); - array.unshift(newlyAddedRecord[0]); - return array; -} - -common.handleError = (errRes, fileName, errMsg) => { - let err = JSON.parse(JSON.stringify(errRes)); - switch (common.selectedNode.ln_implementation) { - case 'LND': - if (err.options && err.options.headers && err.options.headers['Grpc-Metadata-macaroon']) { - delete err.options.headers['Grpc-Metadata-macaroon']; - } - if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) { - delete err.response.request.headers['Grpc-Metadata-macaroon']; - } - break; - - case 'CLT': - if (err.options && err.options.headers && err.options.headers.macaroon) { - delete err.options.headers.macaroon; - } - if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) { - delete err.response.request.headers.macaroon; - } - break; - - case 'ECL': - if (err.options && err.options.headers && err.options.headers.authorization) { - delete err.options.headers.authorization; - } - if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) { - delete err.response.request.headers.authorization; - } - break; - - default: - if (err.options && err.options.headers) { delete err.options.headers; } - break; - } - const msgStr = '\r\n[' + new Date().toISOString() + '] ERROR: ' + fileName + ' => ' + errMsg + ': ' + (typeof err === 'object' ? JSON.stringify(err) : (typeof err === 'string') ? err : 'Unknown Error'); - console.error(msgStr); - if (common.selectedNode) { fs.appendFile(common.selectedNode.log_file, msgStr, () => {}) } - const newErrorObj = { - statusCode: err.statusCode ? err.statusCode : err.status ? err.status : (err.error && err.error.code && err.error.code === 'ECONNREFUSED') ? 503 : 500, - message: (err.error && err.error.message) ? err.error.message : err.message ? err.message : errMsg, - error: ( - (err.error && err.error.error && err.error.error.error && typeof err.error.error.error === 'string') ? err.error.error.error : - (err.error && err.error.error && typeof err.error.error === 'string') ? err.error.error : - (err.error && err.error.error && err.error.error.message && typeof err.error.error.message === 'string') ? err.error.error.message : - (err.error && err.error.message && typeof err.error.message === 'string') ? err.error.message : - (err.message && typeof err.message === 'string') ? err.message : - (err.error) ? err.error : (typeof err === 'string') ? err : 'Unknown Error' - ) - }; - return newErrorObj; -} - -common.getRequestIP = (req) => { - return (typeof req.headers['x-forwarded-for'] === 'string' && req.headers['x-forwarded-for'].split(',').shift()) - || req.ip - || req.connection.remoteAddress - || req.socket.remoteAddress - || (req.connection.socket ? req.connection.socket.remoteAddress : null); -} - -common.getDummyData = (data_key) => { - let dummyDataFile = common.rtl_conf_file_path + common.path_separator + 'ECLDummyData.log'; - return new Promise(function(resolve, reject) { - if (dummy_data_array_from_file.length === 0) { - fs.readFile(dummyDataFile, 'utf8', function(err, data) { - if (err) { - if (err.code === 'ENOENT') { - console.error('Dummy data file does not exist!'); - } else { - console.error('Getting dummy data failed!'); - } - } else { - dummy_data_array_from_file = data.split('\n'); - resolve(filterData(data_key)); - } - }); - } else { - resolve(filterData(data_key)); - } - }); -} - -common.getMonthDays = (selMonth, selYear) => { - return (selMonth === 1 && selYear%4 === 0) ? (MONTHS[selMonth].days+1) : MONTHS[selMonth].days; -} - -filterData = (data_key) => { - let search_string = ''; - if (common.selectedNode.ln_implementation === 'ECL') { - switch (data_key) { - case 'GetInfo': search_string = 'INFO: GetInfo => Get Info Response: '; break; - case 'Fees': search_string = 'INFO: Fees => Fee Response: '; break; - case 'Payments': search_string = 'INFO: Fees => Payments Response: '; break; - case 'Invoices': search_string = 'INFO: Invoice => Invoices List Received: '; break; - case 'OnChainBalance': search_string = 'INFO: Onchain => Balance Received: '; break; - case 'Peers': search_string = 'INFO: Peers => Peers with Alias: '; break; - case 'Channels': search_string = 'INFO: Channels => Simplified Channels with Alias: '; break; - default: search_string = 'Random Line'; break; - } - } else if (common.selectedNode.ln_implementation === 'CLT') { - switch (data_key) { - case 'GetInfo': search_string = 'DEBUG: GetInfo => Node Information. '; break; - case 'Fees': search_string = 'DEBUG: Fees => Fee Received. '; break; - case 'Payments': search_string = 'DEBUG: Payments => Payment List Received: '; break; - case 'Invoices': search_string = 'DEBUG: Invoice => Invoices List Received. '; break; - case 'ChannelBalance': search_string = 'DEBUG: Channels => Local Remote Balance. '; break; - case 'Peers': search_string = 'DEBUG: Peers => Peers with Alias: '; break; - case 'Channels': search_string = 'DEBUG: Channels => List Channels: '; break; - case 'Balance': search_string = 'DEBUG: Balance => Balance Received. '; break; - case 'ForwardingHistory': search_string = 'DEBUG: Channels => Forwarding History Received: '; break; - case 'UTXOs': search_string = 'DEBUG: OnChain => List Funds Received. '; break; - case 'FeeRateperkb': search_string = 'DEBUG: Network => Network Fee Rates Received for perkb. '; break; - case 'FeeRateperkw': search_string = 'DEBUG: Network => Network Fee Rates Received for perkw. '; break; - default: search_string = 'Random Line'; break; - } - } - let foundDataLine = dummy_data_array_from_file.find(dataItem => dataItem.includes(search_string)); - let dataStr = foundDataLine ? foundDataLine.substring((foundDataLine.indexOf(search_string)) + search_string.length) : '{}'; - return JSON.parse(dataStr); -} - -module.exports = common; \ No newline at end of file diff --git a/routes/connect.js b/routes/connect.js deleted file mode 100644 index 0d50768b..00000000 --- a/routes/connect.js +++ /dev/null @@ -1,584 +0,0 @@ -var os = require('os'); -var fs = require('fs'); -var platform = require('os').platform(); -var crypto = require('crypto'); -var hash = crypto.createHash('sha256'); -var common = require('./common'); -var path = require('path'); -var logger = require('../controllers/shared/logger'); -var connect = {}; -var errMsg = ''; -var request = require('request-promise'); -var ini = require('ini'); -var parseHocon = require('hocon-parser'); -common.path_separator = (platform === 'win32') ? '\\' : '/'; - -connect.setDefaultConfig = () => { - var homeDir = os.userInfo().homedir; - var macaroonPath = ''; - var configPath = ''; - var channelBackupPath = ''; - switch (platform) { - case 'win32': - macaroonPath = homeDir + '\\AppData\\Local\\Lnd\\data\\chain\\bitcoin\\mainnet'; - configPath = homeDir + '\\AppData\\Local\\Lnd\\lnd.conf'; - channelBackupPath = homeDir + '\\backup\\node-1'; - break; - case 'darwin': - macaroonPath = homeDir + '/Library/Application Support/Lnd/data/chain/bitcoin/mainnet'; - configPath = homeDir + '/Library/Application Support/Lnd/lnd.conf'; - channelBackupPath = homeDir + '/backup/node-1'; - break; - case 'linux': - macaroonPath = homeDir + '/.lnd/data/chain/bitcoin/mainnet'; - configPath = homeDir + '/.lnd/lnd.conf'; - channelBackupPath = homeDir + '/backup/node-1'; - break; - default: - macaroonPath = ''; - configPath = ''; - channelBackupPath = ''; - break; - } - return { - multiPass: "password", - port: "3000", - defaultNodeIndex: 1, - SSO: { - rtlSSO: 0, - rtlCookiePath: "", - logoutRedirectLink: "" - }, - nodes: [ - { - index: 1, - lnNode: "Node 1", - lnImplementation: "LND", - Authentication: { - macaroonPath: macaroonPath, - configPath: configPath, - }, - Settings: { - userPersona: 'MERCHANT', - themeMode: "DAY", - themeColor: "PURPLE", - channelBackupPath: channelBackupPath, - logLevel: "ERROR", - lnServerUrl: "https://localhost:8080", - fiatConversion: false - } - } - ] - } -} - -connect.normalizePort = val => { - var port = parseInt(val, 10); - if (isNaN(port)) { - return val; - } - if (port >= 0) { - return port; - } - return false; -}; - -connect.replacePasswordWithHash = (multiPassHashed) => { - common.rtl_conf_file_path = process.env.RTL_CONFIG_PATH ? process.env.RTL_CONFIG_PATH : path.join(__dirname, '..'); - try { - RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); - config.multiPassHashed = multiPassHashed; - delete config.multiPass; - fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); - console.log('Please note that, RTL has encrypted the plaintext password into its corresponding hash.'); - return config.multiPassHashed; - } catch (err) { - errMsg = errMsg + '\nPassword hashing failed!'; - } -} - -connect.updateLogByLevel = () => { - updateLogFlag = false; - common.rtl_conf_file_path = process.env.RTL_CONFIG_PATH ? process.env.RTL_CONFIG_PATH : path.join(__dirname, '..'); - try { - RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); - config.nodes.forEach((node) => { - if (node.Settings.hasOwnProperty('enableLogging')) { - updateLogFlag = true; - node.Settings.logLevel = node.Settings.enableLogging? 'INFO' : 'ERROR'; - delete node.Settings.enableLogging; - } - }) - if (updateLogFlag) { - fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); - } - } catch (err) { - errMsg = errMsg + '\nLog level update failed!'; - } -} - -connect.validateNodeConfig = (config) => { - if ((process.env.RTL_SSO == 0) || (typeof process.env.RTL_SSO === 'undefined' && +config.SSO.rtlSSO === 0)) { - if (config.multiPassHashed !== '' && config.multiPassHashed) { - common.rtl_pass = config.multiPassHashed; - } else if (config.multiPass !== '' && config.multiPass) { - common.rtl_pass = connect.replacePasswordWithHash(hash.update(config.multiPass).digest('hex')); - } else { - errMsg = errMsg + '\nNode Authentication can be set with multiPass only. Please set multiPass in RTL-Config.json'; - } - common.rtl_secret2fa = config.secret2fa; - } - common.port = (process.env.PORT) ? connect.normalizePort(process.env.PORT) : (config.port) ? connect.normalizePort(config.port) : 3000; - common.host = (process.env.HOST) ? process.env.HOST : (config.host) ? config.host : null; - if (config.nodes && config.nodes.length > 0) { - config.nodes.forEach((node, idx) => { - common.nodes[idx] = {}; - common.nodes[idx].index = node.index; - common.nodes[idx].ln_node = node.lnNode; - common.nodes[idx].ln_implementation = (process.env.LN_IMPLEMENTATION) ? process.env.LN_IMPLEMENTATION : node.lnImplementation ? node.lnImplementation : 'LND'; - if (common.nodes[idx].ln_implementation !== 'ECL' && process.env.MACAROON_PATH && process.env.MACAROON_PATH.trim() !== '') { - common.nodes[idx].macaroon_path = process.env.MACAROON_PATH; - } else if (common.nodes[idx].ln_implementation !== 'ECL' && node.Authentication && node.Authentication.macaroonPath && node.Authentication.macaroonPath.trim() !== '') { - common.nodes[idx].macaroon_path = node.Authentication.macaroonPath; - } else if (common.nodes[idx].ln_implementation !== 'ECL') { - errMsg = 'Please set macaroon path for node index ' + node.index + ' in RTL-Config.json!'; - } - - if (common.nodes[idx].ln_implementation === 'ECL') { - if (process.env.LN_API_PASSWORD) { - common.nodes[idx].ln_api_password = process.env.LN_API_PASSWORD; - } else if (node.Authentication && node.Authentication.lnApiPassword) { - common.nodes[idx].ln_api_password = node.Authentication.lnApiPassword; - } else { - common.nodes[idx].ln_api_password = ''; - } - } - if (process.env.CONFIG_PATH) { - common.nodes[idx].config_path = process.env.CONFIG_PATH; - } else if (process.env.LND_CONFIG_PATH) { - common.nodes[idx].config_path = process.env.LND_CONFIG_PATH; - } else if (node.Authentication && node.Authentication.lndConfigPath) { - common.nodes[idx].config_path = node.Authentication.lndConfigPath; - } else if (node.Authentication && node.Authentication.configPath) { - common.nodes[idx].config_path = node.Authentication.configPath; - } else { - common.nodes[idx].config_path = ''; - } - if (common.nodes[idx].ln_implementation === 'ECL' && common.nodes[idx].ln_api_password === '' && common.nodes[idx].config_path !== '') { - try { - let exists = fs.existsSync(common.nodes[idx].config_path); - if (exists) { - try { - let configFile = fs.readFileSync(common.nodes[idx].config_path, 'utf-8'); - let iniParsed = ini.parse(configFile); - common.nodes[idx].ln_api_password = iniParsed['eclair.api.password'] ? iniParsed['eclair.api.password'] : parseHocon(configFile).eclair.api.password; - } catch (err) { - errMsg = errMsg + '\nSomething went wrong while reading config file: \n' + err; - } - } else { - errMsg = errMsg + '\nInvalid config path: ' + common.nodes[idx].config_path; - } - } catch (err) { - errMsg = errMsg + '\nUnable to read config file: \n' + err; - } - } - if (common.nodes[idx].ln_implementation === 'ECL' && common.nodes[idx].ln_api_password === '') { - errMsg = errMsg + '\nPlease set config path Or api password for node index ' + node.index + ' in RTL-Config.json! It is mandatory for Eclair authentication!'; - } - - if (process.env.LN_SERVER_URL && process.env.LN_SERVER_URL.trim() !== '') { - common.nodes[idx].ln_server_url = process.env.LN_SERVER_URL.endsWith('/v1') ? process.env.LN_SERVER_URL.slice(0, -3) : process.env.LN_SERVER_URL; - } else if (process.env.LND_SERVER_URL && process.env.LND_SERVER_URL.trim() !== '') { - common.nodes[idx].ln_server_url = process.env.LND_SERVER_URL.endsWith('/v1') ? process.env.LND_SERVER_URL.slice(0, -3) : process.env.LND_SERVER_URL; - } else if (node.Settings.lnServerUrl && node.Settings.lnServerUrl.trim() !== '') { - common.nodes[idx].ln_server_url = node.Settings.lnServerUrl.endsWith('/v1') ? node.Settings.lnServerUrl.slice(0, -3) : node.Settings.lnServerUrl; - } else if (node.Settings.lndServerUrl && node.Settings.lndServerUrl.trim() !== '') { - common.nodes[idx].ln_server_url = node.Settings.lndServerUrl.endsWith('/v1') ? node.Settings.lndServerUrl.slice(0, -3) : node.Settings.lndServerUrl; - } else { - errMsg = errMsg + '\nPlease set LN Server URL for node index ' + node.index + ' in RTL-Config.json!'; - } - common.nodes[idx].user_persona = node.Settings.userPersona ? node.Settings.userPersona : 'MERCHANT'; - common.nodes[idx].theme_mode = node.Settings.themeMode ? node.Settings.themeMode : 'DAY'; - common.nodes[idx].theme_color = node.Settings.themeColor ? node.Settings.themeColor : 'PURPLE'; - common.nodes[idx].log_level = node.Settings.logLevel ? node.Settings.logLevel : 'ERROR' - common.nodes[idx].fiat_conversion = node.Settings.fiatConversion ? !!node.Settings.fiatConversion : false; - if (common.nodes[idx].fiat_conversion) { - common.nodes[idx].currency_unit = node.Settings.currencyUnit ? node.Settings.currencyUnit : 'USD'; - } - if (process.env.SWAP_SERVER_URL && process.env.SWAP_SERVER_URL.trim() !== '') { - common.nodes[idx].swap_server_url = process.env.SWAP_SERVER_URL.endsWith('/v1') ? process.env.SWAP_SERVER_URL.slice(0, -3) : process.env.SWAP_SERVER_URL; - common.nodes[idx].swap_macaroon_path = process.env.SWAP_MACAROON_PATH; - } else if (node.Settings.swapServerUrl && node.Settings.swapServerUrl.trim() !== '') { - common.nodes[idx].swap_server_url = node.Settings.swapServerUrl.endsWith('/v1') ? node.Settings.swapServerUrl.slice(0, -3) : node.Settings.swapServerUrl; - common.nodes[idx].swap_macaroon_path = node.Authentication.swapMacaroonPath ? node.Authentication.swapMacaroonPath : ''; - } else { - common.nodes[idx].swap_server_url = ''; - common.nodes[idx].swap_macaroon_path = ''; - } - if (process.env.BOLTZ_SERVER_URL && process.env.BOLTZ_SERVER_URL.trim() !== '') { - common.nodes[idx].boltz_server_url = process.env.BOLTZ_SERVER_URL.endsWith('/v1') ? process.env.BOLTZ_SERVER_URL.slice(0, -3) : process.env.BOLTZ_SERVER_URL; - common.nodes[idx].boltz_macaroon_path = process.env.BOLTZ_MACAROON_PATH; - } else if (node.Settings.boltzServerUrl && node.Settings.boltzServerUrl.trim() !== '') { - common.nodes[idx].boltz_server_url = node.Settings.boltzServerUrl.endsWith('/v1') ? node.Settings.boltzServerUrl.slice(0, -3) : node.Settings.boltzServerUrl; - common.nodes[idx].boltz_macaroon_path = node.Authentication.boltzMacaroonPath ? node.Authentication.boltzMacaroonPath : ''; - } else { - common.nodes[idx].boltz_server_url = ''; - common.nodes[idx].boltz_macaroon_path = ''; - } - common.nodes[idx].bitcoind_config_path = process.env.BITCOIND_CONFIG_PATH ? process.env.BITCOIND_CONFIG_PATH : (node.Settings.bitcoindConfigPath) ? node.Settings.bitcoindConfigPath : ''; - common.nodes[idx].channel_backup_path = process.env.CHANNEL_BACKUP_PATH ? process.env.CHANNEL_BACKUP_PATH : (node.Settings.channelBackupPath) ? node.Settings.channelBackupPath : common.rtl_conf_file_path + common.path_separator + 'backup' + common.path_separator + 'node-' + node.index; - try { - connect.createDirectory(common.nodes[idx].channel_backup_path); - let exists = fs.existsSync(common.nodes[idx].channel_backup_path + common.path_separator + 'channel-all.bak'); - if (!exists) { - try { - var createStream = fs.createWriteStream(common.nodes[idx].channel_backup_path + common.path_separator + 'channel-all.bak'); - createStream.end(); - } catch (err) { - console.error('Something went wrong while creating backup file: \n' + err); - } - } - } catch (err) { - console.error('Something went wrong while creating the backup directory: \n' + err); - } - common.nodes[idx].log_file = common.rtl_conf_file_path + '/logs/RTL-Node-' + node.index + '.log'; - const log_file = common.nodes[idx].log_file; - if (fs.existsSync(log_file)) { - fs.writeFile(log_file, '', () => { }); - } else { - try { - var dirname = path.dirname(log_file); - connect.createDirectory(dirname); - var createStream = fs.createWriteStream(log_file); - createStream.end(); - } - catch (err) { - console.error('Something went wrong while creating log file ' + log_file + ': \n' + err); - } - } - }); - } - connect.setSSOParams(config); - if (errMsg && errMsg.trim() !== '') { throw new Error(errMsg); } -} - -connect.setSSOParams = (config) => { - if (process.env.RTL_SSO) { - common.rtl_sso = process.env.RTL_SSO; - } else if (config.SSO && config.SSO.rtlSSO) { - common.rtl_sso = config.SSO.rtlSSO; - } - - if (process.env.RTL_COOKIE_PATH) { - common.rtl_cookie_path = process.env.RTL_COOKIE_PATH; - } else if (config.SSO && config.SSO.rtlCookiePath) { - common.rtl_cookie_path = config.SSO.rtlCookiePath; - } else { - common.rtl_cookie_path = ''; - } - - if (process.env.LOGOUT_REDIRECT_LINK) { - common.logout_redirect_link = process.env.LOGOUT_REDIRECT_LINK; - } else if (config.SSO && config.SSO.logoutRedirectLink) { - common.logout_redirect_link = config.SSO.logoutRedirectLink; - } - - if (+common.rtl_sso) { - if (!common.rtl_cookie_path || common.rtl_cookie_path.trim() === '') { - errMsg = 'Please set rtlCookiePath value for single sign on option!'; - } else { - connect.readCookie(common.rtl_cookie_path); - } - } -}; - -connect.createDirectory = (dirname) => { - const initDir = path.isAbsolute(dirname) ? path.sep : ''; - dirname.split(path.sep).reduce((parentDir, childDir) => { - const curDir = path.resolve(parentDir, childDir); - try { - if (!fs.existsSync(curDir)) { - fs.mkdirSync(curDir); - } - } catch (err) { - if (err.code !== 'EEXIST') { - if (err.code === 'ENOENT') { - throw new Error(`ENOENT: No such file or directory, mkdir '${dirname}'. Ensure that channel backup path separator is '${(platform === 'win32') ? '\\\\' : '/'}'`); - } else { - throw err; - } - } - } - return curDir; - }, initDir); -} - -connect.readCookie = (cookieFile) => { - let exists = fs.existsSync(cookieFile); - if (exists) { - try { - common.cookie = fs.readFileSync(cookieFile, 'utf-8'); - } catch (err) { - console.error('Something went wrong while reading cookie: \n' + err); - throw new Error(err); - } - } else { - try { - var dirname = path.dirname(cookieFile); - connect.createDirectory(dirname); - fs.writeFileSync(cookieFile, crypto.randomBytes(64).toString('hex')); - common.cookie = fs.readFileSync(cookieFile, 'utf-8'); - } - catch (err) { - console.error('Something went wrong while reading the cookie: \n' + err); - throw new Error(err); - } - } -} - -connect.refreshCookie = (cookieFile) => { - try { - fs.writeFileSync(cookieFile, crypto.randomBytes(64).toString('hex')); - common.cookie = fs.readFileSync(cookieFile, 'utf-8'); - } - catch (err) { - console.error('Something went wrong while refreshing cookie: \n' + err); - throw new Error(err); - } -} - -connect.logEnvVariables = () => { - if (common.selectedNode && common.selectedNode.index) { - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'PORT: ' + common.port}); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'HOST: ' + common.host }); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'SSO: ' + common.rtl_sso }); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'DEFAULT NODE INDEX: ' + common.selectedNode.index }); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'INDEX: ' + common.selectedNode.index }); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LN NODE: ' + common.selectedNode.ln_node }); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LN IMPLEMENTATION: ' + common.selectedNode.ln_implementation }); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'FIAT CONVERSION: ' + common.selectedNode.fiat_conversion }); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'CURRENCY UNIT: ' + common.selectedNode.currency_unit }); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LN SERVER URL: ' + common.selectedNode.ln_server_url }); - logger.log({ level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LOGOUT REDIRECT LINK: ' + common.logout_redirect_link + '\r\n' }); - } -} - -connect.getAllNodeAllChannelBackup = (node) => { - let channel_backup_file = node.channel_backup_path + common.path_separator + 'channel-all.bak'; - let options = { - url: node.ln_server_url + '/channels/backup', - rejectUnauthorized: false, - json: true, - headers: { 'Grpc-Metadata-macaroon': fs.readFileSync(node.macaroon_path + '/admin.macaroon').toString('hex') } - }; - request(options).then(function (body) { - fs.writeFile(channel_backup_file, JSON.stringify(body), function (err) { - if (err) { - if (node.ln_node) { - logger.log({ level: 'ERROR', fileName: 'Connect', msg: 'Channel Backup Failed for Node ' + node.ln_node, error: err }); - } else { - logger.log({ level: 'ERROR', fileName: 'Connect', msg: 'Channel Backup Error', error: err }); - } - } else { - if (node.ln_node) { - logger.log({ level: 'DEBUG', fileName: 'Connect', msg: 'Channel Backup Successful for Node', data: node.ln_node }); - } else { - logger.log({ level: 'DEBUG', fileName: 'Connect', msg: 'Channel Backup Successful' }); - } - } - }); - }, (err) => { - logger.log({ level: 'ERROR', fileName: 'Connect', msg: 'Channel Backup Response Error', error: err }); - }) -}; - -connect.setSelectedNode = (config) => { - if (config.defaultNodeIndex) { - common.selectedNode = common.findNode(config.defaultNodeIndex); - } else { - common.selectedNode = common.findNode(common.nodes[0].index); - } -} - -connect.modifyJsonMultiNodeConfig = (confFileFullPath) => { - RTLConfFile = common.rtl_conf_file_path + '/RTL-Multi-Node-Conf.json'; - var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); - if (!config.SSO) { config.SSO = {}; } - var newConfig = { - port: config.port ? config.port : 3000, - defaultNodeIndex: config.defaultNodeIndex ? config.defaultNodeIndex : 1, - SSO: { - rtlSSO: config.SSO.rtlSSO ? config.SSO.rtlSSO : 0, - rtlCookiePath: config.SSO.rtlCookiePath ? config.SSO.rtlCookiePath : "", - logoutRedirectLink: config.SSO.logoutRedirectLink ? config.SSO.logoutRedirectLink : "" - }, - nodes: [] - }; - if (config.host) { - newConfig.host = config.host; - } - if (config.nodes && config.nodes.length > 0) { - let newNode = {}; - config.nodes.forEach((node, idx) => { - newNode = { - index: node.index ? node.index : (idx + 1), - lnNode: node.lnNode ? node.lnNode : "Node " + (idx + 1), - lnImplementation: node.lnImplementation ? node.lnImplementation : "LND", - Authentication: { - macaroonPath: node.Authentication.macaroonPath ? node.Authentication.macaroonPath : '' - }, - Settings: { - userPersona: node.Settings.userPersona ? node.Settings.userPersona : "MERCHANT", - logLevel: node.Settings.logLevel, - fiatConversion: node.Settings.fiatConversion ? node.Settings.fiatConversion : false - } - }; - - if (node.Authentication.configPath) { - newNode.Authentication.configPath = node.Authentication.configPath; - } else if (node.Authentication.lndConfigPath) { - newNode.Authentication.configPath = node.Authentication.lndConfigPath; - } - - if (node.Settings.theme) { - var themeArr = node.Settings.theme.split("-"); - if (themeArr[2]) { themeArr[1] = themeArr[1] + themeArr[2]; } // For light-blue-gray - newNode.Settings.themeMode = (themeArr[0] === "dark") ? "NIGHT" : "DAY"; - newNode.Settings.themeColor = (themeArr[1] === "blue") ? "INDIGO" : (themeArr[1] === "pink") ? "PINK" : (themeArr[1] === "green" || themeArr[1] === "teal") ? "TEAL" : "PURPLE"; - } else { - newNode.Settings.themeMode = node.Settings.themeMode ? node.Settings.themeMode : "DAY"; - newNode.Settings.themeColor = node.Settings.themeColor ? node.Settings.themeColor : "PURPLE"; - } - if (node.Settings.currencyUnit) { - newNode.Settings.currencyUnit = node.Settings.currencyUnit; - } - if (node.Settings.bitcoindConfigPath) { - newNode.Settings.bitcoindConfigPath = node.Settings.bitcoindConfigPath; - } - if (node.Settings.channelBackupPath) { - newNode.Settings.channelBackupPath = node.Settings.channelBackupPath; - } - if (node.Settings.lnServerUrl) { - newNode.Settings.lnServerUrl = node.Settings.lnServerUrl.endsWith('/v1') ? node.Settings.lnServerUrl.slice(0, -3) : node.Settings.lnServerUrl; - } else if (node.Settings.lndServerUrl) { - newNode.Settings.lnServerUrl = node.Settings.lndServerUrl.endsWith('/v1') ? node.Settings.lndServerUrl.slice(0, -3) : node.Settings.lndServerUrl; - } - newConfig.nodes.push(newNode); - }); - } - newConfig.multiPassHashed = config.multiPassHashed ? config.multiPassHashed : config.multiPass ? hash.update(config.multiPass).digest('hex') : ''; - fs.writeFileSync(confFileFullPath, JSON.stringify(newConfig, null, 2), 'utf-8'); -} - -connect.modifyIniSingleNodeConfig = (confFileFullPath) => { - RTLConfFile = common.rtl_conf_file_path + '/RTL.conf'; - var config = ini.parse(fs.readFileSync(RTLConfFile, 'utf-8')); - if (!config.SSO) { config.SSO = {}; } - if (!config.Authentication) { config.Authentication = {}; } - if (!config.Settings) { config.Settings = {}; } - var newConfig = { - port: config.Settings.port ? config.Settings.port : 3000, - defaultNodeIndex: 1, - SSO: { - rtlSSO: config.SSO.rtlSSO ? config.SSO.rtlSSO : 0, - rtlCookiePath: config.SSO.rtlCookiePath ? config.SSO.rtlCookiePath : "", - logoutRedirectLink: config.SSO.logoutRedirectLink ? config.SSO.logoutRedirectLink : "" - }, - nodes: [ - { - index: 1, - lnNode: "Node 1", - lnImplementation: config.Settings.lnImplementation ? config.Settings.lnImplementation : "LND", - Authentication: { - macaroonPath: config.Authentication.macaroonPath ? config.Authentication.macaroonPath : (config.Authentication.macroonPath ? config.Authentication.macroonPath : ''), - configPath: config.Authentication.configPath ? config.Authentication.configPath : (config.Authentication.lndConfigPath ? config.Authentication.lndConfigPath : ''), - }, - Settings: { - userPersona: config.Settings.userPersona ? config.Settings.userPersona : "MERCHANT", - logLevel: config.Settings.logLevel ? config.Settings.logLevel : 'ERROR', - fiatConversion: config.Settings.fiatConversion ? config.Settings.fiatConversion : false - } - } - ] - }; - if (config.Settings.theme) { - var themeArr = config.Settings.theme.split("-"); - if (themeArr[2]) { themeArr[1] = themeArr[1] + themeArr[2]; } // For light-blue-gray - newConfig.nodes[0].Settings.themeMode = (themeArr[0] === "dark") ? "NIGHT" : "DAY"; - newConfig.nodes[0].Settings.themeColor = (themeArr[1] === "blue") ? "INDIGO" : (themeArr[1] === "pink") ? "PINK" : (themeArr[1] === "green" || themeArr[1] === "teal") ? "TEAL" : "PURPLE"; - } else { - newConfig.nodes[0].Settings.themeMode = config.Settings.themeMode ? config.Settings.themeMode : "DAY"; - newConfig.nodes[0].Settings.themeColor = config.Settings.themeColor ? config.Settings.themeColor : "PURPLE"; - } - if (config.Settings.currencyUnit) { - newConfig.nodes[0].Settings.currencyUnit = config.Settings.currencyUnit; - } - - if (config.Settings.bitcoindConfigPath) { - newConfig.nodes[0].Settings.bitcoindConfigPath = config.Settings.bitcoindConfigPath; - } else if (config.Authentication.bitcoindConfigPath) { - newConfig.nodes[0].Settings.bitcoindConfigPath = config.Authentication.bitcoindConfigPath; - } - - if (config.Settings.channelBackupPath) { - newConfig.nodes[0].Settings.channelBackupPath = config.Settings.channelBackupPath; - } - if (config.Settings.lnServerUrl) { - newConfig.nodes[0].Settings.lnServerUrl = config.Settings.lnServerUrl.endsWith('/v1') ? config.Settings.lnServerUrl.slice(0, -3) : config.Settings.lnServerUrl; - } else if (config.Settings.lndServerUrl) { - newConfig.nodes[0].Settings.lnServerUrl = config.Settings.lndServerUrl.endsWith('/v1') ? config.Settings.lndServerUrl.slice(0, -3) : config.Settings.lndServerUrl; - } else if (config.Authentication.lndServerUrl) { - newConfig.nodes[0].Settings.lnServerUrl = config.Authentication.lndServerUrl.endsWith('/v1') ? config.Authentication.lndServerUrl.slice(0, -3) : config.Authentication.lndServerUrl; - } - newConfig.multiPassHashed = config.Authentication.rtlPassHashed ? config.Authentication.rtlPassHashed : config.Authentication.rtlPass ? hash.update(config.Authentication.rtlPass).digest('hex') : ''; - fs.writeFileSync(confFileFullPath, JSON.stringify(newConfig, null, 2), 'utf-8'); -} - -connect.upgradeConfig = (confFileFullPath) => { - try { - singleNodeConfFile = common.rtl_conf_file_path + '/RTL.conf'; - multiNodeConfFile = common.rtl_conf_file_path + '/RTL-Multi-Node-Conf.json'; - const singleNodeExists = fs.existsSync(singleNodeConfFile); - const multiNodeExists = fs.existsSync(multiNodeConfFile); - if ((singleNodeExists && multiNodeExists) || (!singleNodeExists && multiNodeExists)) { - console.log('Start...config migration for file ' + multiNodeConfFile); - connect.modifyJsonMultiNodeConfig(confFileFullPath); - console.log('End...config migration.'); - } else if (singleNodeExists && !multiNodeExists) { - console.log('Start...config migration for file ' + singleNodeConfFile); - connect.modifyIniSingleNodeConfig(confFileFullPath); - console.log('End...config migration.'); - } else if (!singleNodeExists && !multiNodeExists) { - if (!fs.existsSync(confFileFullPath)) { - console.log('Start...config creation at: ' + confFileFullPath); - fs.writeFileSync(confFileFullPath, JSON.stringify(connect.setDefaultConfig(), null, 2), 'utf-8'); - console.log('End...config creation.'); - } - } - } catch (err) { - console.error('Something went wrong while upgrading the RTL config file: \n' + err); - throw new Error(err); - } -} - -connect.setServerConfiguration = () => { - try { - common.rtl_conf_file_path = (process.env.RTL_CONFIG_PATH) ? process.env.RTL_CONFIG_PATH : path.join(__dirname, '/..'); - confFileFullPath = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json'; - if (!fs.existsSync(confFileFullPath)) { - connect.upgradeConfig(confFileFullPath); - } - var config = JSON.parse(fs.readFileSync(confFileFullPath, 'utf-8')); - connect.updateLogByLevel(); - connect.validateNodeConfig(config); - connect.setSelectedNode(config); - connect.logEnvVariables(); - } catch (err) { - console.error('Something went wrong while configuring the node server: \n' + err); - throw new Error(err); - } -} - -module.exports = connect; diff --git a/routes/eclair/channels.js b/routes/eclair/channels.js deleted file mode 100644 index e477a4f8..00000000 --- a/routes/eclair/channels.js +++ /dev/null @@ -1,12 +0,0 @@ -const ChannelsController = require("../../controllers/eclair/channels"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, ChannelsController.getChannels); -router.get("/stats", authCheck, ChannelsController.getChannelStats); -router.post("/", authCheck, ChannelsController.openChannel); -router.post("/updateRelayFee", authCheck, ChannelsController.updateChannelRelayFee); -router.delete("/", authCheck, ChannelsController.closeChannel); - -module.exports = router; diff --git a/routes/eclair/fees.js b/routes/eclair/fees.js deleted file mode 100644 index b442001e..00000000 --- a/routes/eclair/fees.js +++ /dev/null @@ -1,9 +0,0 @@ -const FeesController = require("../../controllers/eclair/fees"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/fees", authCheck, FeesController.getFees); -router.get("/payments", authCheck, FeesController.getPayments); - -module.exports = router; diff --git a/routes/eclair/getInfo.js b/routes/eclair/getInfo.js deleted file mode 100644 index de959b2a..00000000 --- a/routes/eclair/getInfo.js +++ /dev/null @@ -1,8 +0,0 @@ -const infoController = require("../../controllers/eclair/getInfo"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, infoController.getInfo); - -module.exports = router; diff --git a/routes/eclair/invoices.js b/routes/eclair/invoices.js deleted file mode 100644 index 8ab697e4..00000000 --- a/routes/eclair/invoices.js +++ /dev/null @@ -1,10 +0,0 @@ -const invoicesController = require("../../controllers/eclair/invoices"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, invoicesController.listInvoices); -router.get("/:paymentHash", authCheck, invoicesController.getInvoice); -router.post("/", authCheck, invoicesController.createInvoice); - -module.exports = router; \ No newline at end of file diff --git a/routes/eclair/network.js b/routes/eclair/network.js deleted file mode 100644 index aa1604f7..00000000 --- a/routes/eclair/network.js +++ /dev/null @@ -1,8 +0,0 @@ -const NetworkController = require("../../controllers/eclair/network"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/nodes/:id", authCheck, NetworkController.getNodes); - -module.exports = router; diff --git a/routes/eclair/onchain.js b/routes/eclair/onchain.js deleted file mode 100644 index 0d17fa6b..00000000 --- a/routes/eclair/onchain.js +++ /dev/null @@ -1,11 +0,0 @@ -const OnChainController = require("../../controllers/eclair/onchain"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, OnChainController.getNewAddress); -router.get("/balance/", authCheck, OnChainController.getBalance); -router.get("/transactions/", authCheck, OnChainController.getTransactions); -router.post("/", authCheck, OnChainController.sendFunds); - -module.exports = router; diff --git a/routes/eclair/payments.js b/routes/eclair/payments.js deleted file mode 100644 index 5c94b828..00000000 --- a/routes/eclair/payments.js +++ /dev/null @@ -1,11 +0,0 @@ -const PaymentsController = require("../../controllers/eclair/payments"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/route/", authCheck, PaymentsController.queryPaymentRoute); -router.get("/:invoice", authCheck, PaymentsController.decodePayment); -router.post("/getsentinfos", authCheck, PaymentsController.getSentPaymentsInformation); -router.post("/", authCheck, PaymentsController.postPayment); - -module.exports = router; diff --git a/routes/eclair/peers.js b/routes/eclair/peers.js deleted file mode 100644 index 924f3662..00000000 --- a/routes/eclair/peers.js +++ /dev/null @@ -1,10 +0,0 @@ -const PeersController = require("../../controllers/eclair/peers"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, PeersController.getPeers); -router.post("/", authCheck, PeersController.connectPeer); -router.delete("/:nodeId", authCheck, PeersController.deletePeer); - -module.exports = router; diff --git a/routes/lnd/balance.js b/routes/lnd/balance.js deleted file mode 100644 index 0c7ece03..00000000 --- a/routes/lnd/balance.js +++ /dev/null @@ -1,8 +0,0 @@ -const BalanceController = require("../../controllers/lnd/balance"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/:source", authCheck, BalanceController.getBalance); - -module.exports = router; diff --git a/routes/lnd/channels.js b/routes/lnd/channels.js deleted file mode 100644 index 3496e6a1..00000000 --- a/routes/lnd/channels.js +++ /dev/null @@ -1,14 +0,0 @@ -const ChannelsController = require("../../controllers/lnd/channels"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, ChannelsController.getAllChannels); -router.get("/pending", authCheck, ChannelsController.getPendingChannels); -router.get("/closed", authCheck, ChannelsController.getClosedChannels); -router.post("/", authCheck, ChannelsController.postChannel); -router.post("/transactions", authCheck, ChannelsController.postTransactions); -router.delete("/:channelPoint", authCheck, ChannelsController.closeChannel); -router.post("/chanPolicy", authCheck, ChannelsController.postChanPolicy); - -module.exports = router; diff --git a/routes/lnd/channelsBackup.js b/routes/lnd/channelsBackup.js deleted file mode 100644 index 43bcb20b..00000000 --- a/routes/lnd/channelsBackup.js +++ /dev/null @@ -1,11 +0,0 @@ -const ChannelsBackupController = require("../../controllers/lnd/channelsBackup"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/:channelPoint", authCheck, ChannelsBackupController.getBackup); -router.get("/restore/list", authCheck, ChannelsBackupController.getRestoreList); -router.post("/verify/:channelPoint", authCheck, ChannelsBackupController.postBackupVerify); -router.post("/restore/:channelPoint", authCheck, ChannelsBackupController.postRestore); - -module.exports = router; diff --git a/routes/lnd/fees.js b/routes/lnd/fees.js deleted file mode 100644 index 51b690f2..00000000 --- a/routes/lnd/fees.js +++ /dev/null @@ -1,8 +0,0 @@ -const FeesController = require("../../controllers/lnd/fees"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, FeesController.getFees); - -module.exports = router; diff --git a/routes/lnd/getInfo.js b/routes/lnd/getInfo.js deleted file mode 100644 index d3d684fa..00000000 --- a/routes/lnd/getInfo.js +++ /dev/null @@ -1,8 +0,0 @@ -const infoController = require("../../controllers/lnd/getInfo"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, infoController.getInfo); - -module.exports = router; diff --git a/routes/lnd/graph.js b/routes/lnd/graph.js deleted file mode 100644 index 82c2c40a..00000000 --- a/routes/lnd/graph.js +++ /dev/null @@ -1,14 +0,0 @@ -const graphController = require("../../controllers/lnd/graph"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, graphController.getDescribeGraph); -router.get("/info", authCheck, graphController.getGraphInfo); -router.get("/nodes", authCheck, graphController.getAliasesForPubkeys); -router.get("/node/:pubKey", authCheck, graphController.getGraphNode); -router.get("/edge/:chanid", authCheck, graphController.getGraphEdge); -router.get("/edge/:chanid/:localPubkey", authCheck, graphController.getRemoteFeePolicy); -router.get("/routes/:destPubkey/:amount", authCheck, graphController.getQueryRoutes); - -module.exports = router; diff --git a/routes/lnd/invoices.js b/routes/lnd/invoices.js deleted file mode 100644 index f6ee5931..00000000 --- a/routes/lnd/invoices.js +++ /dev/null @@ -1,10 +0,0 @@ -const invoicesController = require("../../controllers/lnd/invoices"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, invoicesController.listInvoices); -router.get("/:rHashStr", authCheck, invoicesController.getInvoice); -router.post("/", authCheck, invoicesController.addInvoice); - -module.exports = router; \ No newline at end of file diff --git a/routes/lnd/message.js b/routes/lnd/message.js deleted file mode 100644 index d2c3d238..00000000 --- a/routes/lnd/message.js +++ /dev/null @@ -1,9 +0,0 @@ -const MessagesController = require("../../controllers/lnd/message"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.post("/sign", authCheck, MessagesController.signMessage); -router.post("/verify", authCheck, MessagesController.verifyMessage); - -module.exports = router; diff --git a/routes/lnd/newAddress.js b/routes/lnd/newAddress.js deleted file mode 100644 index 4aaa340d..00000000 --- a/routes/lnd/newAddress.js +++ /dev/null @@ -1,8 +0,0 @@ -const NewAddressController = require("../../controllers/lnd/newAddress"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, NewAddressController.getNewAddress); - -module.exports = router; diff --git a/routes/lnd/payReq.js b/routes/lnd/payReq.js deleted file mode 100644 index 8b2d480d..00000000 --- a/routes/lnd/payReq.js +++ /dev/null @@ -1,9 +0,0 @@ -const PayRequestController = require("../../controllers/lnd/payReq"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/:payRequest", authCheck, PayRequestController.decodePayment); -router.post("/", authCheck, PayRequestController.decodePayments); - -module.exports = router; diff --git a/routes/lnd/payments.js b/routes/lnd/payments.js deleted file mode 100644 index 04f2cd48..00000000 --- a/routes/lnd/payments.js +++ /dev/null @@ -1,9 +0,0 @@ -const PaymentsController = require("../../controllers/lnd/payments"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, PaymentsController.getPayments); -router.get("/alltransactions", authCheck, PaymentsController.getAllLightningTransactions); - -module.exports = router; diff --git a/routes/lnd/peers.js b/routes/lnd/peers.js deleted file mode 100644 index b9a402de..00000000 --- a/routes/lnd/peers.js +++ /dev/null @@ -1,10 +0,0 @@ -const PeersController = require("../../controllers/lnd/peers"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, PeersController.getPeers); -router.post("/", authCheck, PeersController.postPeer); -router.delete("/:peerPubKey", authCheck, PeersController.deletePeer); - -module.exports = router; diff --git a/routes/lnd/switch.js b/routes/lnd/switch.js deleted file mode 100644 index a3695f1f..00000000 --- a/routes/lnd/switch.js +++ /dev/null @@ -1,8 +0,0 @@ -const SwitchController = require("../../controllers/lnd/switch"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.post("/", authCheck, SwitchController.forwardingHistory); - -module.exports = router; diff --git a/routes/lnd/transactions.js b/routes/lnd/transactions.js deleted file mode 100644 index 2eac6e56..00000000 --- a/routes/lnd/transactions.js +++ /dev/null @@ -1,9 +0,0 @@ -const TransactionsController = require("../../controllers/lnd/transactions"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/", authCheck, TransactionsController.getTransactions); -router.post("/", authCheck, TransactionsController.postTransactions); - -module.exports = router; diff --git a/routes/lnd/wallet.js b/routes/lnd/wallet.js deleted file mode 100644 index c9e234b6..00000000 --- a/routes/lnd/wallet.js +++ /dev/null @@ -1,15 +0,0 @@ -const WalletController = require("../../controllers/lnd/wallet"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("../shared/authCheck"); - -router.get("/genseed/:passphrase?", authCheck, WalletController.genSeed); -router.get("/updateSelNodeOptions", authCheck, WalletController.updateSelNodeOptions); -router.get("/getUTXOs", authCheck, WalletController.getUTXOs); -router.post("/wallet/:operation", authCheck, WalletController.operateWallet); -router.post("/bumpfee", authCheck, WalletController.bumpFee); -router.post("/label", authCheck, WalletController.labelTransaction); -router.post("/lease", authCheck, WalletController.leaseUTXO); -router.post("/release", authCheck, WalletController.releaseUTXO); - -module.exports = router; diff --git a/routes/shared/RTLConf.js b/routes/shared/RTLConf.js deleted file mode 100644 index 8f84ba33..00000000 --- a/routes/shared/RTLConf.js +++ /dev/null @@ -1,17 +0,0 @@ -const RTLConfController = require("../../controllers/shared/RTLConf"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("./authCheck"); - -router.get("/rtlconfinit", RTLConfController.getRTLConfigInitial); -router.get("/rtlconf", authCheck, RTLConfController.getRTLConfig); -router.post("/", authCheck, RTLConfController.updateUISettings); -router.post("/update2FA", authCheck, RTLConfController.update2FASettings); -router.get("/config/:nodeType", authCheck, RTLConfController.getConfig); -router.get("/file", authCheck, RTLConfController.getFile); -router.post("/updateSelNode", RTLConfController.updateSelectedNode); -router.post("/updateDefaultNode", RTLConfController.updateDefaultNode); -router.post("/updateServiceSettings", RTLConfController.updateServiceSettings); -router.post("/updateSSO", RTLConfController.updateSSO); -router.get("/rates", RTLConfController.getCurrencyRates); -module.exports = router; diff --git a/routes/shared/authCheck.js b/routes/shared/authCheck.js deleted file mode 100644 index c008682e..00000000 --- a/routes/shared/authCheck.js +++ /dev/null @@ -1,14 +0,0 @@ -const jwt = require("jsonwebtoken"); -var common = require('../../routes/common'); - -module.exports = (req, res, next) => { - try { - const token = req.headers.authorization.split(" ")[1]; - jwt.verify(token, common.secret_key); - next(); - } catch (error) { - const errMsg = 'Authentication Failed! Please Login First!'; - const err = common.handleError({ statusCode: 401, message: 'Authentication Error', error: errMsg }, 'AuthCheck', errMsg); - return res.status(err.statusCode).json({message: err.message, error: err.error}); - } -}; diff --git a/routes/shared/authenticate.js b/routes/shared/authenticate.js deleted file mode 100644 index 06ce5f22..00000000 --- a/routes/shared/authenticate.js +++ /dev/null @@ -1,9 +0,0 @@ -const AuthenticateController = require("../../controllers/shared/authenticate"); -const express = require("express"); -const router = express.Router(); - -router.post("/", AuthenticateController.authenticateUser); -router.post("/token", AuthenticateController.verifyToken); -router.post("/reset", AuthenticateController.resetPassword); - -module.exports = router; diff --git a/routes/shared/boltz.js b/routes/shared/boltz.js deleted file mode 100644 index 0fe333f3..00000000 --- a/routes/shared/boltz.js +++ /dev/null @@ -1,15 +0,0 @@ -const BoltzController = require("../../controllers/shared/boltz"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("./authCheck"); - -router.get("/info", authCheck, BoltzController.getInfo); -router.get("/serviceInfo", authCheck, BoltzController.getServiceInfo); -router.get("/listSwaps", authCheck, BoltzController.listSwaps); -router.get("/swapInfo/:swapId", authCheck, BoltzController.getSwapInfo); -router.post("/createSwap", authCheck, BoltzController.createSwap); -router.post("/createReverseSwap", authCheck, BoltzController.createReverseSwap); -router.post("/createChannel", authCheck, BoltzController.createChannel); -router.post("/deposit", authCheck, BoltzController.deposit); - -module.exports = router; diff --git a/routes/shared/loop.js b/routes/shared/loop.js deleted file mode 100644 index a48e37d9..00000000 --- a/routes/shared/loop.js +++ /dev/null @@ -1,17 +0,0 @@ -const LoopController = require("../../controllers/shared/loop"); -const express = require("express"); -const router = express.Router(); -const authCheck = require("./authCheck"); - -router.get("/in/terms", authCheck, LoopController.loopInTerms); -router.get("/in/quote/:amount", authCheck, LoopController.loopInQuote); -router.get("/in/termsAndQuotes", authCheck, LoopController.loopInTermsAndQuotes); -router.post("/in", authCheck, LoopController.loopIn); -router.get("/out/terms", authCheck, LoopController.loopOutTerms); -router.get("/out/quote/:amount", authCheck, LoopController.loopOutQuote); -router.get("/out/termsAndQuotes", authCheck, LoopController.loopOutTermsAndQuotes); -router.post("/out", authCheck, LoopController.loopOut); -router.get("/swaps", authCheck, LoopController.swaps); -router.get("/swap/:id", authCheck, LoopController.swap); - -module.exports = router; diff --git a/rtl.js b/rtl.js index d8f8e83f..6fcdecac 100644 --- a/rtl.js +++ b/rtl.js @@ -1,42 +1,50 @@ -#!/usr/bin/env node +import http from 'http'; +import App from './backend/utils/app.js'; +import { Logger } from './backend/utils/logger.js'; +import { Common } from './backend/utils/common.js'; +import { WSServer } from './backend/utils/webSocketServer.js'; -const app = require("./routes/app"); -const common = require("./routes/common"); -const http = require("http"); -var connect = require("./routes/connect").setServerConfiguration(); //Do NOT Remove +const logger = Logger; +const common = Common; +const wsServer = WSServer; +const app = new App(); -const onError = error => { - if (error.syscall !== "listen") { - throw error; - } +const onError = (error) => { + if (error.syscall !== 'listen') { throw error; } switch (error.code) { - case "EACCES": - console.error("http://" + (common.host ? common.host : 'localhost') + ":" + common.port + " requires elevated privileges"); + case 'EACCES': + logger.log({ level: 'ERROR', fileName: 'RTL', msg: 'http://' + (common.host ? common.host : 'localhost') + ':' + common.port + ' requires elevated privileges' }); process.exit(1); - case "EADDRINUSE": - console.error("http://" + (common.host ? common.host : 'localhost') + ":" + common.port + " is already in use"); + break; + case 'EADDRINUSE': + logger.log({ level: 'ERROR', fileName: 'RTL', msg: 'http://' + (common.host ? common.host : 'localhost') + ':' + common.port + ' is already in use' }); process.exit(1); - case "ECONNREFUSED": - console.error("Server is down/locked"); + break; + case 'ECONNREFUSED': + logger.log({ level: 'ERROR', fileName: 'RTL', msg: 'Server is down/locked' }); process.exit(1); - case "EBADCSRFTOKEN": - console.error("Form tempered"); + break; + case 'EBADCSRFTOKEN': + logger.log({ level: 'ERROR', fileName: 'RTL', msg: 'Form tempered' }); process.exit(1); + break; default: - console.error("DEFUALT ERROR"); - console.error(error.code); + logger.log({ level: 'ERROR', fileName: 'RTL', msg: 'DEFUALT ERROR', error: error.code }); throw error; } }; const onListening = () => { - console.log('Server is up and running, please open the UI at http://' + (common.host ? common.host : 'localhost') + ':' + common.port); + logger.log({ level: 'INFO', fileName: 'RTL', msg: 'Server is up and running, please open the UI at http://' + (common.host ? common.host : 'localhost') + ':' + common.port }); }; -const server = http.createServer(app); +let server = http.createServer(app.getApp()); + +server.on('error', onError); +server.on('listening', onListening); + +wsServer.mount(server); -server.on("error", onError); -server.on("listening", onListening); if (common.host) { server.listen(common.port, common.host); } else { diff --git a/server/controllers/c-lightning/balance.ts b/server/controllers/c-lightning/balance.ts new file mode 100644 index 00000000..236f2821 --- /dev/null +++ b/server/controllers/c-lightning/balance.ts @@ -0,0 +1,24 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getBalance = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Getting Balance..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/getBalance'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Balance', msg: 'Balance Received', data: body }); + if (!body.totalBalance) { body.totalBalance = 0; } + if (!body.confBalance) { body.confBalance = 0; } + if (!body.unconfBalance) { body.unconfBalance = 0; } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Balance Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Balance', 'Get Balance Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/channels.ts b/server/controllers/c-lightning/channels.ts new file mode 100644 index 00000000..91253751 --- /dev/null +++ b/server/controllers/c-lightning/channels.ts @@ -0,0 +1,115 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const listChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Channels..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/listChannels'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'List Channels', data: body }); + body.map((channel) => { + if (!channel.alias || channel.alias === '') { channel.alias = channel.id.substring(0, 20); } + const local = (channel.msatoshi_to_us) ? channel.msatoshi_to_us : 0; + const remote = (channel.msatoshi_to_them) ? channel.msatoshi_to_them : 0; + const total = channel.msatoshi_total ? channel.msatoshi_total : 0; + channel.balancedness = (total === 0) ? 1 : (1 - Math.abs((local - remote) / total)).toFixed(3); + return channel; + }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channels Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const openChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/openChannel'; + options.body = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Options', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Opened' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Open Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const setChannelFee = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Setting Channel Fee..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/setChannelFee'; + options.body = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Fee Set' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Update Channel Policy Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const closeChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..' }); + req.setTimeout(60000 * 10); // timeout 10 mins + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + const unilateralTimeoutQuery = req.query.force ? '?unilateralTimeout=1' : ''; + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/closeChannel/' + req.params.channelId + unilateralTimeoutQuery; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel', data: options.url }); + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Closed' }); + res.status(204).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Close Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getLocalRemoteBalance = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Local & Remote Balances..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/localremotebal'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Local Remote Balance', data: body }); + if (!body.localBalance) { body.localBalance = 0; } + if (!body.remoteBalance) { body.remoteBalance = 0; } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Local & Remote Balances Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Local Remote Balance Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const listForwards = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Channel List Forwards..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channel/listForwards?status=' + req.query.status; + request.get(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Response For Status ' + req.query.status, data: body }); + if (body && body.length > 0) { body = common.sortDescByKey(body, 'received_time'); } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Received For Status' + req.query.status, data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel List Forwards Received For Status ' + req.query.status }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Forwarding History Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/fees.ts b/server/controllers/c-lightning/fees.ts new file mode 100644 index 00000000..b3a5410f --- /dev/null +++ b/server/controllers/c-lightning/fees.ts @@ -0,0 +1,22 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getFees = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/getFees'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received', data: body }); + if (!body.feeCollected) { body.feeCollected = 0; } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Fees Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Fees', 'Get Fees Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/getInfo.ts b/server/controllers/c-lightning/getInfo.ts new file mode 100644 index 00000000..7cd83d18 --- /dev/null +++ b/server/controllers/c-lightning/getInfo.ts @@ -0,0 +1,73 @@ +import request from 'request-promise'; +import { Database, DatabaseService } from '../../utils/database.js'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { CLWSClient, CLWebSocketClient } from './webSocketClient.js'; + +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; +const clWsClient: CLWebSocketClient = CLWSClient; +const databaseService: DatabaseService = Database; + +export const getInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Getting CLightning Node Information..' }); + common.logEnvVariables(req); + common.setOptions(req); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/getinfo'; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Selected Node', data: req.session.selectedNode.ln_node }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from C-Lightning server url', data: options.url }); + if (!options.headers || !options.headers.macaroon) { + const errMsg = 'C-Lightning get info failed due to bad or missing macaroon!'; + const err = common.handleError({ statusCode: 502, message: 'Bad Macaroon', error: errMsg }, 'GetInfo', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } else { + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Node Information', data: body }); + const body_str = (!body) ? '' : JSON.stringify(body); + const search_idx = (!body) ? -1 : body_str.search('Not Found'); + if (!body || search_idx > -1 || body.error) { + if (body && !body.error) { body.error = 'Error From Server!'; } + const err = common.handleError(body, 'GetInfo', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } else { + body.lnImplementation = 'C-Lightning'; + const chainObj = { chain: '', network: '' }; + if (body.network === 'testnet') { + chainObj.chain = 'Bitcoin'; + chainObj.network = 'Testnet'; + } else if (body.network === 'bitcoin') { + chainObj.chain = 'Bitcoin'; + chainObj.network = 'Mainnet'; + } else if (body.network === 'signet') { + chainObj.chain = 'Bitcoin'; + chainObj.network = 'Signet'; + } else if (body.network === 'litecoin') { + chainObj.chain = 'Litecoin'; + chainObj.network = 'Mainnet'; + } else if (body.network === 'litecoin-testnet') { + chainObj.chain = 'Litecoin'; + chainObj.network = 'Testnet'; + } + body.chains = [chainObj]; + body.uris = []; + if (body.address && body.address.length > 0) { + body.address.forEach((addr) => { + body.uris.push(body.id + '@' + addr.address + ':' + addr.port); + }); + } + req.session.selectedNode.api_version = body.api_version || ''; + req.session.selectedNode.ln_version = body.version || ''; + clWsClient.updateSelectedNode(req.session.selectedNode); + databaseService.loadDatabase(req.session.selectedNode); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'CLightning Node Information Received' }); + res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'GetInfo', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; diff --git a/server/controllers/c-lightning/invoices.ts b/server/controllers/c-lightning/invoices.ts new file mode 100644 index 00000000..f1a0ba8f --- /dev/null +++ b/server/controllers/c-lightning/invoices.ts @@ -0,0 +1,59 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const deleteExpiredInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Deleting Expired Invoices..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + const queryStr = req.query.maxExpiry ? '?maxexpiry=' + req.query.maxExpiry : ''; + options.url = req.session.selectedNode.ln_server_url + '/v1/invoice/delExpiredInvoice' + queryStr; + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices Deleted', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Expired Invoices Deleted' }); + res.status(204).json({ status: 'Invoice Deleted Successfully' }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoice', 'Delete Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const listInvoices = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Getting Invoices..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + const labelQuery = req.query.label ? '?label=' + req.query.label : ''; + options.url = req.session.selectedNode.ln_server_url + '/v1/invoice/listInvoices' + labelQuery; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List URL', data: options.url }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + if (body.invoices && body.invoices.length > 0) { + body.invoices = common.sortDescByKey(body.invoices, 'expires_at'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Invoices Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoice', 'List Invoices Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const addInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/invoice/genInvoice'; + options.body = req.body; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoice', 'Add Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/message.ts b/server/controllers/c-lightning/message.ts new file mode 100644 index 00000000..98a782aa --- /dev/null +++ b/server/controllers/c-lightning/message.ts @@ -0,0 +1,37 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const signMessage = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Signing Message..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/utility/signMessage'; + options.form = { message: req.body.message }; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Signed' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Message', 'Sign Message Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const verifyMessage = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Verifying Message..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/utility/checkMessage/' + req.body.message + '/' + req.body.signature; + request.get(options, (error, response, body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Verified' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Message', 'Verify Message Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/network.ts b/server/controllers/c-lightning/network.ts new file mode 100644 index 00000000..6d2223fc --- /dev/null +++ b/server/controllers/c-lightning/network.ts @@ -0,0 +1,65 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getRoute = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Getting Network Routes..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/network/getRoute/' + req.params.destPubkey + '/' + req.params.amount; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Query Routes Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Network Routes Received' }); + res.status(200).json({ routes: body }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Query Routes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const listNode = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Node Lookup..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/network/listNode/' + req.params.id; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Node Lookup Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const listChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Channel Lookup..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/network/listChannel/' + req.params.channelShortId; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Channel Lookup', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Channel Lookup Finished' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Channel Lookup Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const feeRates = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Getting Network Fee Rates..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/network/feeRates/' + req.params.feeRateStyle; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Network Fee Rates Received for ' + req.params.feeRateStyle, data: body }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Fee Rates Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/offers.ts b/server/controllers/c-lightning/offers.ts new file mode 100644 index 00000000..d605b3ab --- /dev/null +++ b/server/controllers/c-lightning/offers.ts @@ -0,0 +1,107 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { Database, DatabaseService } from '../../utils/database.js'; +import { CollectionFieldsEnum, CollectionsEnum, Offer } from '../../models/database.model.js'; + +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; +const databaseService: DatabaseService = Database; + +export const listOfferBookmarks = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Getting Offer Bookmarks..' }); + databaseService.find(req.session.selectedNode, CollectionsEnum.OFFERS).then((offers: Offer[]) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Bookmarks Received', data: offers }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Bookmarks Received' }); + if (offers && offers.length > 0) { + offers = common.sortDescByKey(offers, 'lastUpdatedAt'); + } + res.status(200).json(offers); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'Offer Bookmarks Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const deleteOfferBookmark = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Deleting Offer Bookmark..' }); + databaseService.destroy(req.session.selectedNode, CollectionsEnum.OFFERS, CollectionFieldsEnum.BOLT12, req.params.offerStr).then((deleteRes) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Bookmark Deleted', data: deleteRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Bookmark Deleted' }); + res.status(204).json(req.params.offerStr); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'Offer Bookmark Delete Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const listOffers = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Getting Offers..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/offers/listoffers'; + if (req.query.offer_id) { + options.url = options.url + '?offer_id=' + req.query.offer_id; + } + if (req.query.active_only) { + options.url = options.url + '?active_only=' + req.query.active_only; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offers List URL', data: options.url }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offers List Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offers Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'List Offers Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const createOffer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Creating Offer..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/offers/offer'; + options.body = req.body; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offer', msg: 'Add Offer Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Created' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offer', 'Create Offer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const fetchOfferInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Getting Offer Invoice..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/offers/fetchInvoice'; + options.body = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Invoice Body', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Invoice Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Invoice Received' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'Get Offer Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const disableOffer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Disabling Offer..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/offers/disableOffer/' + req.params.offerID; + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Disabled', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Disabled' }); + res.status(202).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Offers', 'Disable Offer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/onchain.ts b/server/controllers/c-lightning/onchain.ts new file mode 100644 index 00000000..6219a587 --- /dev/null +++ b/server/controllers/c-lightning/onchain.ts @@ -0,0 +1,52 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getNewAddress = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/newaddr?addrType=' + req.query.type; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'New Address Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const onChainWithdraw = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Withdrawing from On Chain..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/withdraw'; + options.body = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Options', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Withdraw Finished' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Withdraw Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getUTXOs = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'List Funds..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/listFunds'; + request(options).then((body) => { + if (body.outputs) { body.outputs = common.sortDescByStrKey(body.outputs, 'status'); } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'List Funds Received', data: body }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'List Funds Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/payments.ts b/server/controllers/c-lightning/payments.ts new file mode 100644 index 00000000..5ebf11f2 --- /dev/null +++ b/server/controllers/c-lightning/payments.ts @@ -0,0 +1,138 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { Database, DatabaseService } from '../../utils/database.js'; +import { CollectionFieldsEnum, CollectionsEnum, Offer } from '../../models/database.model.js'; + +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; +const databaseService: DatabaseService = Database; + +function paymentReducer(accumulator, currentPayment) { + const currPayHash = currentPayment.payment_hash; + if (!currentPayment.partid) { currentPayment.partid = 0; } + if (!accumulator[currPayHash]) { + accumulator[currPayHash] = [currentPayment]; + } else { + accumulator[currPayHash].push(currentPayment); + } + return accumulator; +} + +function summaryReducer(accumulator, mpp) { + if (mpp.status === 'complete') { + accumulator.msatoshi = accumulator.msatoshi + mpp.msatoshi; + accumulator.msatoshi_sent = accumulator.msatoshi_sent + mpp.msatoshi_sent; + accumulator.status = mpp.status; + } + if (mpp.bolt11) { accumulator.bolt11 = mpp.bolt11; } + if (mpp.bolt12) { accumulator.bolt12 = mpp.bolt12; } + return accumulator; +} + +function groupBy(payments) { + const paymentsInGroups = payments.reduce(paymentReducer, {}); + const paymentsGrpArray = Object.keys(paymentsInGroups).map((key) => ((paymentsInGroups[key].length && paymentsInGroups[key].length > 1) ? common.sortDescByKey(paymentsInGroups[key], 'partid') : paymentsInGroups[key])); + return paymentsGrpArray.reduce((acc, curr) => { + let temp: any = {}; + if (curr.length && curr.length === 1) { + temp = JSON.parse(JSON.stringify(curr[0])); + temp.is_group = false; + temp.is_expanded = false; + temp.total_parts = 1; + delete temp.partid; + } else { + const paySummary = curr.reduce(summaryReducer, { msatoshi: 0, msatoshi_sent: 0, status: (curr[0] && curr[0].status) ? curr[0].status : 'failed' }); + temp = { + is_group: true, is_expanded: false, total_parts: (curr.length ? curr.length : 0), status: paySummary.status, payment_hash: curr[0].payment_hash, + destination: curr[0].destination, msatoshi: paySummary.msatoshi, msatoshi_sent: paySummary.msatoshi_sent, created_at: curr[0].created_at, + mpps: curr + }; + if (paySummary.bolt11) { temp.bolt11 = paySummary.bolt11; } + if (paySummary.bolt12) { temp.bolt12 = paySummary.bolt12; } + } + return acc.concat(temp); + }, []); +} + +export const listPayments = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'List Payments..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/pay/listPayments'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received', data: body.payments }); + if (body && body.payments && body.payments.length > 0) { + body.payments = common.sortDescByKey(body.payments, 'created_at'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'List Payments Received' }); + res.status(200).json(groupBy(body.payments)); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'List Payments Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const decodePayment = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/utility/decode/' + req.params.payReq; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Decode Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const postPayment = (req, res, next) => { + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + if (req.body.paymentType === 'KEYSEND') { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Keysend Payment..' }); + options.url = req.session.selectedNode.ln_server_url + '/v1/pay/keysend'; + options.body = req.body; + } else { + if (req.body.paymentType === 'OFFER') { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Sending Offer Payment..' }); + options.body = { invoice: req.body.invoice }; + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Sending Invoice Payment..' }); + options.body = req.body; + } + options.url = req.session.selectedNode.ln_server_url + '/v1/pay'; + } + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Sent' }); + if (req.body.paymentType === 'OFFER') { + if (req.body.saveToDB && req.body.bolt12) { + const offerToUpdate: Offer = { bolt12: req.body.bolt12, amountmSat: (req.body.zeroAmtOffer ? 0 : req.body.amount), title: req.body.title, lastUpdatedAt: new Date(Date.now()).getTime() }; + if (req.body.vendor) { offerToUpdate['vendor'] = req.body.vendor; } + if (req.body.description) { offerToUpdate['description'] = req.body.description; } + return databaseService.update(req.session.selectedNode, CollectionsEnum.OFFERS, offerToUpdate, CollectionFieldsEnum.BOLT12, req.body.bolt12).then((updatedOffer) => { + logger.log({ level: 'DEBUG', fileName: 'Offer', msg: 'Offer Updated', data: updatedOffer }); + return res.status(201).json({ paymentResponse: body, saveToDBResponse: updatedOffer }); + }).catch((errDB) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Payments', msg: 'Offer DB update error', error: errDB }); + return res.status(201).json({ paymentResponse: body, saveToDBError: errDB }); + }); + } else { + return res.status(201).json({ paymentResponse: body, saveToDBResponse: 'NA' }); + } + } + if (req.body.paymentType === 'INVOICE') { + return res.status(201).json({ paymentResponse: body, saveToDBResponse: 'NA' }); + } + if (req.body.paymentType === 'KEYSEND') { + return res.status(201).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Send Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/peers.ts b/server/controllers/c-lightning/peers.ts new file mode 100644 index 00000000..f12cda7a --- /dev/null +++ b/server/controllers/c-lightning/peers.ts @@ -0,0 +1,69 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getPeers = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'List Peers..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/peer/listPeers'; + request(options).then((body) => { + body.forEach((peer) => { + if (!peer.alias || peer.alias === '') { + peer.alias = peer.id.substring(0, 20); + } + }); + const peers = (body) ? common.sortDescByStrKey(body, 'alias') : []; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias', data: peers }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peers Received' }); + res.status(200).json(peers); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'List Peers Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const postPeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/peer/connect'; + options.body = req.body; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added', data: body }); + options.url = req.session.selectedNode.ln_server_url + '/v1/peer/listPeers'; + request(options).then((body) => { + let peers = (body) ? common.sortDescByStrKey(body, 'alias') : []; + peers = common.newestOnTop(peers, 'id', req.body.id); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: peers }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Connected' }); + res.status(201).json(peers); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const deletePeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/peer/disconnect/' + req.params.peerId + '?force=' + req.query.force; + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached', data: req.params.peerId }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected' }); + res.status(204).json({}); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Detach Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/c-lightning/webSocketClient.ts b/server/controllers/c-lightning/webSocketClient.ts new file mode 100644 index 00000000..6b714b86 --- /dev/null +++ b/server/controllers/c-lightning/webSocketClient.ts @@ -0,0 +1,120 @@ +import * as fs from 'fs'; +import { join } from 'path'; +import WebSocket from 'ws'; + +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { WSServer } from '../../utils/webSocketServer.js'; +import { CommonSelectedNode } from '../../models/config.model.js'; + +export class CLWebSocketClient { + + public logger: LoggerService = Logger; + public common: CommonService = Common; + public wsServer = WSServer; + public webSocketClients: Array<{ selectedNode: CommonSelectedNode, reConnect: boolean, webSocketClient: any }> = []; + public reconnectTimeOut = null; + public waitTime = 0.5; + + constructor() { + this.wsServer.eventEmitterCLT.on('CONNECT', (nodeIndex) => { + this.connect(this.common.findNode(+nodeIndex)); + }); + this.wsServer.eventEmitterCLT.on('DISCONNECT', (nodeIndex) => { + this.disconnect(this.common.findNode(+nodeIndex)); + }); + } + + public reconnet = (clWsClt) => { + if (this.reconnectTimeOut) { return; } + this.waitTime = (this.waitTime >= 64) ? 64 : (this.waitTime * 2); + this.reconnectTimeOut = setTimeout(() => { + if (clWsClt.selectedNode) { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Reconnecting to the CLightning\'s Websocket Server..' }); + this.connect(clWsClt.selectedNode); + } + this.reconnectTimeOut = null; + }, this.waitTime * 1000); + }; + + public connect = (selectedNode: CommonSelectedNode) => { + try { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (!clientExists) { + if (selectedNode.ln_server_url) { + const newWebSocketClient = { selectedNode: selectedNode, reConnect: true, webSocketClient: null }; + this.connectWithClient(newWebSocketClient); + this.webSocketClients.push(newWebSocketClient); + } + } else { + if ((!clientExists.webSocketClient || clientExists.webSocketClient.readyState !== WebSocket.OPEN) && selectedNode.ln_server_url) { + clientExists.reConnect = true; + this.connectWithClient(clientExists); + } + } + } catch (err) { + throw new Error(err); + } + }; + + public connectWithClient = (clWsClt) => { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Connecting to the CLightning\'s Websocket Server..' }); + const WS_LINK = (clWsClt.selectedNode.ln_server_url).replace(/^http/, 'ws') + '/v1/ws'; + const mcrnHexEncoded = Buffer.from(fs.readFileSync(join(clWsClt.selectedNode.macaroon_path, 'access.macaroon'))).toString('hex'); + clWsClt.webSocketClient = new WebSocket(WS_LINK, [mcrnHexEncoded, 'hex'], { rejectUnauthorized: false }); + + clWsClt.webSocketClient.onopen = () => { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Connected to the CLightning\'s Websocket Server..' }); + this.waitTime = 0.5; + }; + + clWsClt.webSocketClient.onclose = (e) => { + if (clWsClt && clWsClt.selectedNode && clWsClt.selectedNode.ln_implementation === 'CLT') { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Web socket disconnected, will reconnect again...' }); + clWsClt.webSocketClient.close(); + if (clWsClt.reConnect) { this.reconnet(clWsClt); } + } + }; + + clWsClt.webSocketClient.onmessage = (msg) => { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Received message from the server..', data: msg.data }); + msg = (typeof msg.data === 'string') ? JSON.parse(msg.data) : msg.data; + msg['source'] = 'CLT'; + const msgStr = JSON.stringify(msg); + this.wsServer.sendEventsToAllLNClients(msgStr, clWsClt.selectedNode); + }; + + clWsClt.webSocketClient.onerror = (err) => { + if (clWsClt.selectedNode.api_version === '' || !clWsClt.selectedNode.api_version || this.common.isVersionCompatible(clWsClt.selectedNode.api_version, '0.6.0')) { + this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'ERROR', fileName: 'CLWebSocket', msg: 'Web socket error', error: err }); + const errStr = ((typeof err === 'object' && err.message) ? JSON.stringify({ error: err.message }) : (typeof err === 'object') ? JSON.stringify({ error: err }) : ('{ "error": ' + err + ' }')); + this.wsServer.sendErrorToAllLNClients(errStr, clWsClt.selectedNode); + clWsClt.webSocketClient.close(); + if (clWsClt.reConnect) { this.reconnet(clWsClt); } + } else { + clWsClt.reConnect = false; + } + }; + }; + + public disconnect = (selectedNode: CommonSelectedNode) => { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (clientExists && clientExists.webSocketClient && clientExists.webSocketClient.readyState === WebSocket.OPEN) { + this.logger.log({ selectedNode: clientExists.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Disconnecting from the CLightning\'s Websocket Server..' }); + clientExists.reConnect = false; + clientExists.webSocketClient.close(); + const clientIdx = this.webSocketClients.findIndex((wsc) => wsc.selectedNode.index === selectedNode.index); + this.webSocketClients.splice(clientIdx, 1); + } + }; + + public updateSelectedNode = (newSelectedNode: CommonSelectedNode) => { + const clientIdx = this.webSocketClients.findIndex((wsc) => +wsc.selectedNode.index === +newSelectedNode.index); + const newClient = this.webSocketClients[clientIdx]; + newClient.selectedNode = JSON.parse(JSON.stringify(newSelectedNode)); + this.webSocketClients[clientIdx] = newClient; + } + +} + +export const CLWSClient = new CLWebSocketClient(); diff --git a/server/controllers/eclair/channels.ts b/server/controllers/eclair/channels.ts new file mode 100644 index 00000000..b35e1530 --- /dev/null +++ b/server/controllers/eclair/channels.ts @@ -0,0 +1,150 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const simplifyAllChannels = (lnServerUrl, channels) => { + let channelNodeIds = ''; + const simplifiedChannels = []; + channels.forEach((channel) => { + channelNodeIds = channelNodeIds + ',' + channel.nodeId; + simplifiedChannels.push({ + nodeId: channel.nodeId ? channel.nodeId : '', + channelId: channel.channelId ? channel.channelId : '', + state: channel.state ? channel.state : '', + channelFlags: channel.data && channel.data.commitments && channel.data.commitments.channelFlags ? channel.data.commitments.channelFlags : 0, + toLocal: (channel.data.commitments.localCommit.spec.toLocal) ? Math.round(+channel.data.commitments.localCommit.spec.toLocal / 1000) : 0, + toRemote: (channel.data.commitments.localCommit.spec.toRemote) ? Math.round(+channel.data.commitments.localCommit.spec.toRemote / 1000) : 0, + shortChannelId: channel.data && channel.data.shortChannelId ? channel.data.shortChannelId : '', + isFunder: channel.data && channel.data.commitments && channel.data.commitments.localParams && channel.data.commitments.localParams.isFunder ? channel.data.commitments.localParams.isFunder : false, + buried: channel.data && channel.data.buried ? channel.data.buried : false, + feeBaseMsat: channel.data && channel.data.channelUpdate && channel.data.channelUpdate.feeBaseMsat ? channel.data.channelUpdate.feeBaseMsat : 0, + feeRatePerKw: (channel.data.commitments.localCommit.spec.feeratePerKw) ? channel.data.commitments.localCommit.spec.feeratePerKw : 0, + feeProportionalMillionths: channel.data && channel.data.channelUpdate && channel.data.channelUpdate.feeProportionalMillionths ? channel.data.channelUpdate.feeProportionalMillionths : 0, + alias: '' + }); + }); + channelNodeIds = channelNodeIds.substring(1); + options.url = lnServerUrl + '/nodes'; + options.form = { nodeIds: channelNodeIds }; + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Channels', msg: 'Node Ids to find alias', data: channelNodeIds }); + return request.post(options).then((nodes) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Channels', msg: 'Filtered Nodes', data: nodes }); + let foundPeer = null; + simplifiedChannels.map((channel) => { + foundPeer = nodes.find((channelWithAlias) => channel.nodeId === channelWithAlias.nodeId); + channel.alias = foundPeer ? foundPeer.alias : channel.nodeId.substring(0, 20); + return channel; + }); + return simplifiedChannels; + }).catch((err) => simplifiedChannels); +}; + +export const getChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'List Channels..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/channels'; + options.form = {}; + if (req.query && req.query.nodeId) { + options.form = req.query; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Channels Node Id', data: options.form }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Options', data: options }); + if (common.read_dummy_data) { + common.getDummyData('Channels', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(data); }); + } else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'All Channels', data: body }); + if (body && body.length) { + return simplifyAllChannels(req.session.selectedNode.ln_server_url, body).then((simplifiedChannels) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Simplified Channels with Alias', data: simplifiedChannels }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channels List Received' }); + res.status(200).json(simplifiedChannels); + }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Empty Channels List Received' }); + res.status(200).json({ activeChannels: [], pendingChannels: [], inactiveChannels: [], lightningBalances: { localBalance: 0, remoteBalance: 0 }, channelStatus: { active: { channels: 0, capacity: 0 }, inactive: { channels: 0, capacity: 0 }, pending: { channels: 0, capacity: 0 } } }); + } + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; + +export const getChannelStats = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Channel States..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/channelstats'; + options.form = {}; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Channel Stats Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel States Received' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Get Channel Stats Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const openChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/open'; + options.form = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Params', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Opened' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Open Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const updateChannelRelayFee = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Relay Fee..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/updaterelayfee'; + options.form = req.query; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Params', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Relay Fee Updated' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Update Relay Fee Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const closeChannel = (req, res, next) => { + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + if (req.query.force !== 'true') { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..' }); + options.url = req.session.selectedNode.ln_server_url + '/close'; + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Force Closing Channel..' }); + options.url = req.session.selectedNode.ln_server_url + '/forceclose'; + } + options.form = { channelId: req.query.channelId }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: '[Close URL, Close Params]', data: [options.url, options.form] }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Closed' }); + res.status(204).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Close Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + diff --git a/server/controllers/eclair/fees.ts b/server/controllers/eclair/fees.ts new file mode 100644 index 00000000..4e089cfa --- /dev/null +++ b/server/controllers/eclair/fees.ts @@ -0,0 +1,111 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const arrangeFees = (body, current_time) => { + const fees = { daily_fee: 0, daily_txs: 0, weekly_fee: 0, weekly_txs: 0, monthly_fee: 0, monthly_txs: 0 }; + const week_start_time = current_time - 604800000; + const day_start_time = current_time - 86400000; + let fee = 0; + body.relayed.forEach((relayedEle) => { + fee = Math.round((relayedEle.amountIn - relayedEle.amountOut) / 1000); + if (relayedEle.timestamp >= day_start_time) { + fees.daily_fee = fees.daily_fee + fee; + fees.daily_txs = fees.daily_txs + 1; + } + if (relayedEle.timestamp >= week_start_time) { + fees.weekly_fee = fees.weekly_fee + fee; + fees.weekly_txs = fees.weekly_txs + 1; + } + fees.monthly_fee = fees.monthly_fee + fee; + fees.monthly_txs = fees.monthly_txs + 1; + }); + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Fees', msg: 'Arranged Fee', data: fees }); + return fees; +}; + +export const arrangePayments = (body) => { + const payments = { + sent: body && body.sent ? body.sent : [], + received: body && body.received ? body.received : [], + relayed: body && body.relayed ? body.relayed : [] + }; + payments.sent.forEach((sentEle) => { + if (sentEle.recipientAmount) { sentEle.recipientAmount = Math.round(sentEle.recipientAmount / 1000); } + if (sentEle.parts && sentEle.parts.length > 0) { + sentEle.firstPartTimestamp = sentEle.parts[0].timestamp; + } + sentEle.parts.forEach((part) => { + if (part.amount) { part.amount = Math.round(part.amount / 1000); } + if (part.feesPaid) { part.feesPaid = Math.round(part.feesPaid / 1000); } + }); + }); + payments.received.forEach((receivedEle) => { + if (receivedEle.parts && receivedEle.parts.length > 0) { + receivedEle.firstPartTimestamp = receivedEle.parts[0].timestamp; + } + receivedEle.parts.forEach((part) => { + if (part.amount) { part.amount = Math.round(part.amount / 1000); } + }); + }); + payments.relayed.forEach((relayedEle) => { + if (relayedEle.amountIn) { relayedEle.amountIn = Math.round(relayedEle.amountIn / 1000); } + if (relayedEle.amountOut) { relayedEle.amountOut = Math.round(relayedEle.amountOut / 1000); } + }); + payments.sent = common.sortDescByKey(payments.sent, 'firstPartTimestamp'); + payments.received = common.sortDescByKey(payments.received, 'firstPartTimestamp'); + payments.relayed = common.sortDescByKey(payments.relayed, 'timestamp'); + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Fees', msg: 'Arranged Payments', data: payments }); + return payments; +}; + +export const getFees = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/audit'; + const today = new Date(Date.now()); + const tillToday = (Math.round(today.getTime() / 1000)).toString(); + const fromLastMonth = (Math.round(new Date(today.getFullYear(), today.getMonth() - 1, today.getDate() + 1, 0, 0, 0).getTime() / 1000)).toString(); + options.form = { + from: fromLastMonth, + to: tillToday + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Fee Audit Options', data: options.form }); + if (common.read_dummy_data) { + common.getDummyData('Fees', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(arrangeFees(data, Math.round((new Date().getTime())))); }); + } else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Fee Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Fee Received' }); + res.status(200).json(arrangeFees(body, Math.round((new Date().getTime())))); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Fees', 'Get Fees Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; + +export const getPayments = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Getting Payments..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/audit'; + options.form = null; + if (common.read_dummy_data) { + common.getDummyData('Payments', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(arrangePayments(data)); }); + } else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Payments Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Payments Received' }); + res.status(200).json(arrangePayments(body)); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Fees', 'Get Payments Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; diff --git a/server/controllers/eclair/getInfo.ts b/server/controllers/eclair/getInfo.ts new file mode 100644 index 00000000..2d455cc1 --- /dev/null +++ b/server/controllers/eclair/getInfo.ts @@ -0,0 +1,49 @@ +import request from 'request-promise'; +import { Database, DatabaseService } from '../../utils/database.js'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { ECLWSClient, ECLWebSocketClient } from './webSocketClient.js'; + +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; +const eclWsClient: ECLWebSocketClient = ECLWSClient; +const databaseService: DatabaseService = Database; + +export const getInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Getting Eclair Node Information..' }); + common.logEnvVariables(req); + common.setOptions(req); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/getinfo'; + options.form = {}; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Selected Node', data: req.session.selectedNode.ln_node }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from Eclair server url', data: options.url }); + if (common.read_dummy_data) { + common.getDummyData('GetInfo', req.session.selectedNode.ln_implementation).then((data: any) => { + data.lnImplementation = 'Eclair'; + res.status(200).json(data); + }); + } else { + if (!options.headers || !options.headers.authorization) { + const errMsg = 'Eclair Get info failed due to missing or wrong password!'; + const err = common.handleError({ statusCode: 502, message: 'Missing or Wrong Password', error: errMsg }, 'GetInfo', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Connecting to the Eclair\'s Websocket Server.' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Get Info Response', data: body }); + body.lnImplementation = 'Eclair'; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Eclair Node Information Received' }); + req.session.selectedNode.ln_version = body.version.split('-')[0] || ''; + eclWsClient.updateSelectedNode(req.session.selectedNode); + databaseService.loadDatabase(req.session.selectedNode); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'GetInfo', 'Get Info Error', req); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } + } +}; diff --git a/server/controllers/eclair/invoices.ts b/server/controllers/eclair/invoices.ts new file mode 100644 index 00000000..c68e5fa4 --- /dev/null +++ b/server/controllers/eclair/invoices.ts @@ -0,0 +1,120 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; +let pendingInvoices = []; + +export const getReceivedPaymentInfo = (lnServerUrl, invoice) => { + let idx = -1; + invoice.expiresAt = (!invoice.expiry) ? null : (+invoice.timestamp + +invoice.expiry); + if (invoice.amount) { invoice.amount = Math.round(invoice.amount / 1000); } + idx = pendingInvoices.findIndex((pendingInvoice) => invoice.serialized === pendingInvoice.serialized); + if (idx < 0) { + options.url = lnServerUrl + '/getreceivedinfo'; + options.form = { paymentHash: invoice.paymentHash }; + return request(options).then((response) => { + invoice.status = response.status.type; + if (response.status && response.status.type === 'received') { + invoice.amountSettled = response.status.amount ? Math.round(response.status.amount / 1000) : 0; + invoice.receivedAt = response.status.receivedAt ? Math.round(response.status.receivedAt / 1000) : 0; + } + return invoice; + }).catch((err) => { + invoice.status = 'unknown'; + return invoice; + }); + } else { + pendingInvoices.splice(idx, 1); + invoice.status = 'unpaid'; + return invoice; + } +}; + +export const getInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Invoice..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/getinvoice'; + options.form = { paymentHash: req.params.paymentHash }; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoice Found', data: body }); + const current_time = (Math.round(new Date(Date.now()).getTime() / 1000)); + body.amount = body.amount ? body.amount / 1000 : 0; + body.expiresAt = body.expiresAt ? body.expiresAt : (body.timestamp + body.expiry); + body.status = body.status ? body.status : (+body.expiresAt < current_time ? 'expired' : 'unknown'); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'Get Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const listInvoices = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Getting List Invoices..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.form = {}; + const options1 = JSON.parse(JSON.stringify(options)); + options1.url = req.session.selectedNode.ln_server_url + '/listinvoices'; + options1.form = {}; + const options2 = JSON.parse(JSON.stringify(options)); + options2.url = req.session.selectedNode.ln_server_url + '/listpendinginvoices'; + options2.form = {}; + if (common.read_dummy_data) { + return common.getDummyData('Invoices', req.session.selectedNode.ln_implementation).then((body) => { + const invoices = (!body[0] || body[0].length <= 0) ? [] : body[0]; + pendingInvoices = (!body[1] || body[1].length <= 0) ? [] : body[1]; + return Promise.all(invoices.map((invoice) => getReceivedPaymentInfo(req.session.selectedNode.ln_server_url, invoice))). + then((values) => { + body = common.sortDescByKey(invoices, 'expiresAt'); + return res.status(200).json(invoices); + }); + }); + } else { + return Promise.all([request(options1), request(options2)]). + then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + const invoices = (!body[0] || body[0].length <= 0) ? [] : body[0]; + pendingInvoices = (!body[1] || body[1].length <= 0) ? [] : body[1]; + if (invoices && invoices.length > 0) { + return Promise.all(invoices.map((invoice) => getReceivedPaymentInfo(req.session.selectedNode.ln_server_url, invoice))). + then((values) => { + body = common.sortDescByKey(invoices, 'expiresAt'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Final Invoices List', data: invoices }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'List Invoices Received' }); + return res.status(200).json(invoices); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'List Invoices Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Empty List Invoice Received' }); + return res.status(200).json([]); + } + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'List Invoices Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; + +export const createInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/createinvoice'; + options.form = req.body; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Create Invoice Response', data: body }); + if (body.amount) { body.amount = Math.round(body.amount / 1000); } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'Create Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/eclair/network.ts b/server/controllers/eclair/network.ts new file mode 100644 index 00000000..6a8b7a76 --- /dev/null +++ b/server/controllers/eclair/network.ts @@ -0,0 +1,22 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getNodes = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Node Lookup..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/nodes'; + options.form = { nodeIds: req.params.id }; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Network', 'Node Lookup Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/eclair/onchain.ts b/server/controllers/eclair/onchain.ts new file mode 100644 index 00000000..f3d12b63 --- /dev/null +++ b/server/controllers/eclair/onchain.ts @@ -0,0 +1,95 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const arrangeBalances = (body) => { + if (!body.confirmed) { body.confirmed = 0; } + if (!body.unconfirmed) { body.unconfirmed = 0; } + body.total = +body.confirmed + +body.unconfirmed; + body.btc_total = +body.btc_confirmed + +body.btc_unconfirmed; + return body; +}; + +export const getNewAddress = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/getnewaddress'; + options.form = {}; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Onchain', msg: 'New Address Generated', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Get New Address Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getBalance = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Balance..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/onchainbalance'; + options.form = {}; + if (common.read_dummy_data) { + common.getDummyData('OnChainBalance', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(arrangeBalances(data)); }); + } else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Onchain', msg: 'Balance Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'On Chain Balance Received' }); + res.status(200).json(arrangeBalances(body)); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Get Balance Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; + +export const getTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Transactions..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/onchaintransactions'; + options.form = { + count: req.query.count, + skip: req.query.skip + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'Getting On Chain Transactions Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'Transaction Received', data: body }); + if (body && body.length > 0) { + body = common.sortDescByKey(body, 'timestamp'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'On Chain Transaction Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Get Transactions Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const sendFunds = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Sending On Chain Funds..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/sendonchain'; + options.form = { + address: req.body.address, + amountSatoshis: req.body.amount, + confirmationTarget: req.body.blocks + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'On Chain Fund Sent' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'OnChain', 'Send Funds Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/eclair/payments.ts b/server/controllers/eclair/payments.ts new file mode 100644 index 00000000..a3d97eb9 --- /dev/null +++ b/server/controllers/eclair/payments.ts @@ -0,0 +1,119 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getSentInfoFromPaymentRequest = (lnServerUrl, payment) => { + options.url = lnServerUrl + '/getsentinfo'; + options.form = { paymentHash: payment }; + return request.post(options).then((body) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Information Received', data: body }); + body.forEach((sentPayment) => { + if (sentPayment.amount) { sentPayment.amount = Math.round(sentPayment.amount / 1000); } + if (sentPayment.recipientAmount) { sentPayment.recipientAmount = Math.round(sentPayment.recipientAmount / 1000); } + }); + return body; + }).catch((err) => err); +}; + +export const getQueryNodes = (lnServerUrl, nodeIds) => { + options.url = lnServerUrl + '/nodes'; + options.form = { nodeIds: nodeIds }; + return request.post(options).then((nodes) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Payments', msg: 'Query Nodes', data: nodes }); + return nodes; + }).catch((err) => []); +}; + +export const decodePayment = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/parseinvoice'; + options.form = { invoice: req.params.invoice }; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: body }); + if (body.amount) { body.amount = Math.round(body.amount / 1000); } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Decode Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const postPayment = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Paying Invoice..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/payinvoice'; + options.form = req.body; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Invoice Paid' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Send Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const queryPaymentRoute = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Querying Payment Route..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/findroutetonode'; + options.form = { + nodeId: req.query.nodeId, + amountMsat: req.query.amountMsat + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Received', data: body }); + if (body && body.length) { + const queryRoutes = []; + return getQueryNodes(req.session.selectedNode.ln_server_url, body).then((hopsWithAlias) => { + let foundPeer = null; + body.map((hop) => { + foundPeer = hopsWithAlias.find((hopWithAlias) => hop === hopWithAlias.nodeId); + queryRoutes.push({ nodeId: hop, alias: foundPeer ? foundPeer.alias : '' }); + return hop; + }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Query Routes with Alias', data: queryRoutes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Route Information Received' }); + res.status(200).json(queryRoutes); + }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Empty Payment Route Information Received' }); + res.status(200).json([]); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Query Route Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getSentPaymentsInformation = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Getting Sent Payment Information..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + if (req.body.payments) { + const paymentsArr = req.body.payments.split(','); + return Promise.all(paymentsArr.map((payment) => getSentInfoFromPaymentRequest(req.session.selectedNode.ln_server_url, payment))). + then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Informations', data: values }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Sent Payment Information Received' }); + return res.status(200).json(values); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'Sent Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Empty Sent Payment Information Received' }); + return res.status(200).json([]); + } +}; diff --git a/server/controllers/eclair/peers.ts b/server/controllers/eclair/peers.ts new file mode 100644 index 00000000..3504c8ed --- /dev/null +++ b/server/controllers/eclair/peers.ts @@ -0,0 +1,129 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getFilteredNodes = (lnServerUrl, peersNodeIds) => { + options.url = lnServerUrl + '/nodes'; + options.form = { nodeIds: peersNodeIds }; + return request.post(options).then((nodes) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Peers', msg: 'Filtered Nodes', data: nodes }); + return nodes; + }).catch((err) => []); +}; + +export const getPeers = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Getting Peers..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/peers'; + options.form = {}; + if (common.read_dummy_data) { + common.getDummyData('Peers', req.session.selectedNode.ln_implementation).then((data) => { res.status(200).json(data); }); + } else { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body }); + if (body && body.length) { + let peersNodeIds = ''; + body.forEach((peer) => { peersNodeIds = peersNodeIds + ',' + peer.nodeId; }); + peersNodeIds = peersNodeIds.substring(1); + return getFilteredNodes(req.session.selectedNode.ln_server_url, peersNodeIds).then((peersWithAlias) => { + let foundPeer = null; + body.map((peer) => { + foundPeer = peersWithAlias.find((peerWithAlias) => peer.nodeId === peerWithAlias.nodeId); + peer.alias = foundPeer ? foundPeer.alias : peer.nodeId.substring(0, 20); + return peer; + }); + body = common.sortDescByStrKey(body, 'alias'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peers Received' }); + res.status(200).json(body); + }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Empty Peers Received' }); + res.status(200).json([]); + } + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'List Peers Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; + +export const connectPeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Conneting Peer..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/connect'; + options.form = {}; + if (req.query) { + options.form = req.query; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Connect Peer Params', data: options.form }); + } + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Add Peer Response', data: body }); + if (typeof body === 'string' && body.includes('already connected')) { + const err = common.handleError({ statusCode: 500, message: 'Connect Peer Error', error: body }, 'Peers', body, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } else if (typeof body === 'string' && body.includes('connection failed')) { + const err = common.handleError({ statusCode: 500, message: 'Connect Peer Error', error: body }, 'Peers', body, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = req.session.selectedNode.ln_server_url + '/peers'; + options.form = {}; + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body }); + if (body && body.length) { + let peersNodeIds = ''; + body.forEach((peer) => { peersNodeIds = peersNodeIds + ',' + peer.nodeId; }); + peersNodeIds = peersNodeIds.substring(1); + return getFilteredNodes(req.session.selectedNode.ln_server_url, peersNodeIds).then((peersWithAlias) => { + let foundPeer = null; + body.map((peer) => { + foundPeer = peersWithAlias.find((peerWithAlias) => peer.nodeId === peerWithAlias.nodeId); + peer.alias = foundPeer ? foundPeer.alias : peer.nodeId.substring(0, 20); + return peer; + }); + let peers = (body) ? common.sortDescByStrKey(body, 'alias') : []; + peers = common.newestOnTop(peers, 'nodeId', req.query.nodeId ? req.query.nodeId : req.query.uri ? req.query.uri.substring(0, req.query.uri.indexOf('@')) : ''); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: peers }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Connected' }); + res.status(201).json(peers); + }); + } else { + res.status(201).json([]); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const deletePeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Disconneting Peer..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/disconnect'; + options.form = {}; + if (req.params.nodeId) { + options.form = { nodeId: req.params.nodeId }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Params', data: options.form }); + } + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Disconnected: ' + req.params.nodeId }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected' }); + res.status(204).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Disconnect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/eclair/webSocketClient.ts b/server/controllers/eclair/webSocketClient.ts new file mode 100644 index 00000000..08cd6a8e --- /dev/null +++ b/server/controllers/eclair/webSocketClient.ts @@ -0,0 +1,118 @@ +import WebSocket from 'ws'; + +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { WSServer } from '../../utils/webSocketServer.js'; +import { CommonSelectedNode } from '../../models/config.model.js'; + +export class ECLWebSocketClient { + + public logger: LoggerService = Logger; + public common: CommonService = Common; + public wsServer = WSServer; + public webSocketClients: Array<{ selectedNode: CommonSelectedNode, reConnect: boolean, webSocketClient: any }> = []; + public reconnectTimeOut = null; + public waitTime = 0.5; + + constructor() { + this.wsServer.eventEmitterECL.on('CONNECT', (nodeIndex) => { + this.connect(this.common.findNode(+nodeIndex)); + }); + this.wsServer.eventEmitterECL.on('DISCONNECT', (nodeIndex) => { + this.disconnect(this.common.findNode(+nodeIndex)); + }); + } + + public reconnet = (eclWsClt) => { + if (this.reconnectTimeOut) { return; } + this.waitTime = (this.waitTime >= 64) ? 64 : (this.waitTime * 2); + this.reconnectTimeOut = setTimeout(() => { + if (eclWsClt.selectedNode) { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Reconnecting to the Eclair\'s Websocket Server..' }); + this.connect(eclWsClt.selectedNode); + } + this.reconnectTimeOut = null; + }, this.waitTime * 1000); + }; + + public connect = (selectedNode: CommonSelectedNode) => { + try { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (!clientExists) { + if (selectedNode.ln_server_url) { + const newWebSocketClient = { selectedNode: selectedNode, reConnect: true, webSocketClient: null }; + this.connectWithClient(newWebSocketClient); + this.webSocketClients.push(newWebSocketClient); + } + } else { + if ((!clientExists.webSocketClient || clientExists.webSocketClient.readyState !== WebSocket.OPEN) && selectedNode.ln_server_url) { + clientExists.reConnect = true; + this.connectWithClient(clientExists); + } + } + } catch (err) { + throw new Error(err); + } + }; + + public connectWithClient = (eclWsClt) => { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Connecting to the Eclair\'s Websocket Server..' }); + const UpdatedLNServerURL = (eclWsClt.selectedNode.ln_server_url).replace(/^http/, 'ws'); + const firstSubStrIndex = (UpdatedLNServerURL.indexOf('//') + 2); + const WS_LINK = UpdatedLNServerURL.slice(0, firstSubStrIndex) + ':' + eclWsClt.selectedNode.ln_api_password + '@' + UpdatedLNServerURL.slice(firstSubStrIndex) + '/ws'; + eclWsClt.webSocketClient = new WebSocket(WS_LINK); + eclWsClt.webSocketClient.onopen = () => { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Connected to the Eclair\'s Websocket Server..' }); + this.waitTime = 0.5; + }; + + eclWsClt.webSocketClient.onclose = (e) => { + if (eclWsClt && eclWsClt.selectedNode && eclWsClt.selectedNode.ln_implementation === 'ECL') { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Web socket disconnected, will reconnect again...' }); + eclWsClt.webSocketClient.close(); + if (eclWsClt.reConnect) { this.reconnet(eclWsClt); } + } + }; + + eclWsClt.webSocketClient.onmessage = (msg) => { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Received message from the server..', data: msg.data }); + msg = (typeof msg.data === 'string') ? JSON.parse(msg.data) : msg.data; + msg['source'] = 'ECL'; + const msgStr = JSON.stringify(msg); + this.wsServer.sendEventsToAllLNClients(msgStr, eclWsClt.selectedNode); + }; + + eclWsClt.webSocketClient.onerror = (err) => { + if (eclWsClt.selectedNode.ln_version === '' || !eclWsClt.selectedNode.ln_version || this.common.isVersionCompatible(eclWsClt.selectedNode.ln, '0.5.0')) { + this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'ERROR', fileName: 'ECLWebSocket', msg: 'Web socket error', error: err }); + const errStr = ((typeof err === 'object' && err.message) ? JSON.stringify({ error: err.message }) : (typeof err === 'object') ? JSON.stringify({ error: err }) : ('{ "error": ' + err + ' }')); + this.wsServer.sendErrorToAllLNClients(errStr, eclWsClt.selectedNode); + eclWsClt.webSocketClient.close(); + if (eclWsClt.reConnect) { this.reconnet(eclWsClt); } + } else { + eclWsClt.reConnect = false; + } + }; + }; + + public disconnect = (selectedNode: CommonSelectedNode) => { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (clientExists && clientExists.webSocketClient && clientExists.webSocketClient.readyState === WebSocket.OPEN) { + this.logger.log({ selectedNode: clientExists.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Disconnecting from the Eclair\'s Websocket Server..' }); + clientExists.reConnect = false; + clientExists.webSocketClient.close(); + const clientIdx = this.webSocketClients.findIndex((wsc) => wsc.selectedNode.index === selectedNode.index); + this.webSocketClients.splice(clientIdx, 1); + } + }; + + public updateSelectedNode = (newSelectedNode: CommonSelectedNode) => { + const clientIdx = this.webSocketClients.findIndex((wsc) => +wsc.selectedNode.index === +newSelectedNode.index); + const newClient = this.webSocketClients[clientIdx]; + newClient.selectedNode = JSON.parse(JSON.stringify(newSelectedNode)); + this.webSocketClients[clientIdx] = newClient; + } + +} + +export const ECLWSClient = new ECLWebSocketClient(); diff --git a/server/controllers/lnd/balance.ts b/server/controllers/lnd/balance.ts new file mode 100644 index 00000000..02bdbb0f --- /dev/null +++ b/server/controllers/lnd/balance.ts @@ -0,0 +1,27 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getBlockchainBalance = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Getting Balance..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/balance/blockchain'; + options.qs = req.query; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Balance', msg: '[Request params, Request Query, Balance Received]', data: [req.params, req.query, body] }); + if (body) { + if (!body.total_balance) { body.total_balance = 0; } + if (!body.confirmed_balance) { body.confirmed_balance = 0; } + if (!body.unconfirmed_balance) { body.unconfirmed_balance = 0; } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Balance Received' }); + res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Balance', 'Get Balance Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/channels.ts b/server/controllers/lnd/channels.ts new file mode 100644 index 00000000..d36b9172 --- /dev/null +++ b/server/controllers/lnd/channels.ts @@ -0,0 +1,242 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getAliasForChannel = (lnServerUrl, channel) => { + const pubkey = (channel.remote_pubkey) ? channel.remote_pubkey : (channel.remote_node_pub) ? channel.remote_node_pub : ''; + options.url = lnServerUrl + '/v1/graph/node/' + pubkey; + return request(options).then((aliasBody) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Channels', msg: 'Alias', data: aliasBody.node.alias }); + channel.remote_alias = aliasBody.node.alias; + return aliasBody.node.alias; + }).catch((err) => { + channel.remote_alias = pubkey.slice(0, 10) + '...' + pubkey.slice(-10); + return pubkey; + }); +}; + +export const getAllChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Channels..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels'; + options.qs = req.query; + let local = 0; + let remote = 0; + let total = 0; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'All Channels Received', data: body }); + if (body.channels) { + return Promise.all( + body.channels.map((channel) => { + local = (channel.local_balance) ? +channel.local_balance : 0; + remote = (channel.remote_balance) ? +channel.remote_balance : 0; + total = local + remote; + channel.balancedness = (total === 0) ? 1 : (1 - Math.abs((local - remote) / total)).toFixed(3); + return getAliasForChannel(req.session.selectedNode.ln_server_url, channel); + }) + ).then((values) => { + body.channels = common.sortDescByKey(body.channels, 'balancedness'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'All Channels with Alias', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channels Received' }); + return res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Get All Channel Aliases Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } else { + body.channels = []; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Empty Channels Received' }); + return res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getPendingChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Pending Channels..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/pending'; + options.qs = req.query; + request(options).then((body) => { + if (!body.total_limbo_balance) { + body.total_limbo_balance = 0; + } + const promises = []; + if (body.pending_open_channels && body.pending_open_channels.length > 0) { + body.pending_open_channels.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode.ln_server_url, channel.channel))); + } + if (body.pending_closing_channels && body.pending_closing_channels.length > 0) { + body.pending_closing_channels.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode.ln_server_url, channel.channel))); + } + if (body.pending_force_closing_channels && body.pending_force_closing_channels.length > 0) { + body.pending_force_closing_channels.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode.ln_server_url, channel.channel))); + } + if (body.waiting_close_channels && body.waiting_close_channels.length > 0) { + body.waiting_close_channels.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode.ln_server_url, channel.channel))); + } + return Promise.all(promises).then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Pending Channels', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Pending Channels Received' }); + return res.status(200).json(body); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Get Pending Channel Aliases Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Pending Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getClosedChannels = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Getting Closed Channels..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/closed'; + options.qs = req.query; + request(options).then((body) => { + if (body.channels && body.channels.length > 0) { + return Promise.all( + body.channels.map((channel) => { + channel.close_type = (!channel.close_type) ? 'COOPERATIVE_CLOSE' : channel.close_type; + return getAliasForChannel(req.session.selectedNode.ln_server_url, channel); + }) + ).then((values) => { + body.channels = common.sortDescByKey(body.channels, 'close_height'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Closed Channels', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Closed Channels Received' }); + return res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Get Closed Channel Aliases Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } else { + body.channels = []; + return res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'List Closed Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const postChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels'; + options.form = { + node_pubkey_string: req.body.node_pubkey, + local_funding_amount: req.body.local_funding_amount, + private: req.body.private, + spend_unconfirmed: req.body.spend_unconfirmed + }; + if (req.body.trans_type === '1') { + options.form.target_conf = req.body.trans_type_value; + } else if (req.body.trans_type === '2') { + options.form.sat_per_byte = req.body.trans_type_value; + } + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Channel Open Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channels Opened' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Open Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const postTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Sending Payment..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/transactions'; + options.form = { payment_request: req.body.paymentReq }; + if (req.body.paymentAmount) { + options.form.amt = req.body.paymentAmount; + } + if (req.body.feeLimit) { options.form.fee_limit = req.body.feeLimit; } + if (req.body.outgoingChannel) { options.form.outgoing_chan_id = req.body.outgoingChannel; } + if (req.body.allowSelfPayment) { options.form.allow_self_payment = req.body.allowSelfPayment; } + if (req.body.lastHopPubkey) { options.form.last_hop_pubkey = Buffer.from(req.body.lastHopPubkey, 'hex').toString('base64'); } + options.form = JSON.stringify(options.form); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Response', data: body }); + if (body.payment_error) { + const err = common.handleError(body.payment_error, 'Channels', 'Send Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Payment Sent' }); + res.status(201).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Send Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const closeChannel = (req, res, next) => { + try { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..' }); + if (!req.session.selectedNode) { + const err = common.handleError({ message: 'Session Expired after a day\'s inactivity.', statusCode: 401 }, 'Session Expired', 'Session Expiry Error', null); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + const channelpoint = req.params.channelPoint.replace(':', '/'); + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/' + channelpoint + '?force=' + req.query.force; + if (req.query.target_conf) { options.url = options.url + '&target_conf=' + req.query.target_conf; } + if (req.query.sat_per_byte) { options.url = options.url + '&sat_per_byte=' + req.query.sat_per_byte; } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel Options URL', data: options.url }); + request.delete(options); + res.status(202).json({ message: 'Close channel request has been submitted.' }); + } catch (error) { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error', error: error.message }); + return res.status(500).json({ message: 'Close Channel Error', error: error.message }); + } +}; + +export const postChanPolicy = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Policy..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/chanpolicy'; + if (req.body.chanPoint === 'all') { + options.form = JSON.stringify({ + global: true, + base_fee_msat: req.body.baseFeeMsat, + fee_rate: parseFloat((req.body.feeRate / 1000000).toString()), + time_lock_delta: parseInt(req.body.timeLockDelta) + }); + } else { + const breakPoint = req.body.chanPoint.indexOf(':'); + const txid_str = req.body.chanPoint.substring(0, breakPoint); + const output_idx = req.body.chanPoint.substring(breakPoint + 1, req.body.chanPoint.length); + options.form = JSON.stringify({ + base_fee_msat: req.body.baseFeeMsat, + fee_rate: parseFloat((req.body.feeRate / 1000000).toString()), + time_lock_delta: parseInt(req.body.timeLockDelta), + chan_point: { funding_txid_str: txid_str, output_index: parseInt(output_idx) } + }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Policy Updated' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Channels', 'Update Channel Policy Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/channelsBackup.ts b/server/controllers/lnd/channelsBackup.ts new file mode 100644 index 00000000..100ea589 --- /dev/null +++ b/server/controllers/lnd/channelsBackup.ts @@ -0,0 +1,221 @@ +import * as fs from 'fs'; +import { sep } from 'path'; +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + + +function getFilesList(channelBackupPath, callback) { + const files_list = []; + let all_restore_exists = false; + let response = { all_restore_exists: false, files: [] } || { message: '', error: {}, statusCode: 500 }; + fs.readdir(channelBackupPath + sep + 'restore', (err, files) => { + if (err && err.code !== 'ENOENT' && err.errno !== -4058) { + response = { message: 'Channels Restore List Failed!', error: err, statusCode: 500 }; + } + if (files && files.length > 0) { + files.forEach((file) => { + if (!file.includes('.restored')) { + if (file.toLowerCase() === 'channel-all.bak' || file.toLowerCase() === 'backup-channel-all.bak') { + all_restore_exists = true; + } else { + files_list.push({ channel_point: file.substring(8, file.length - 4).replace('-', ':') }); + } + } + }); + } + response = { all_restore_exists: all_restore_exists, files: files_list }; + callback(response); + }); +} + +export const getBackup = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Getting Channel Backup..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + let channel_backup_file = ''; + let message = ''; + if (req.params.channelPoint === 'ALL') { + channel_backup_file = req.session.selectedNode.channel_backup_path + sep + 'channel-all.bak'; + message = 'All Channels Backup Successful.'; + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup'; + } else { + channel_backup_file = req.session.selectedNode.channel_backup_path + sep + 'channel-' + req.params.channelPoint.replace(':', '-') + '.bak'; + message = 'Channel Backup Successful.'; + const channelpoint = req.params.channelPoint.replace(':', '/'); + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup/' + channelpoint; + const exists = fs.existsSync(channel_backup_file); + if (exists) { + fs.writeFile(channel_backup_file, '', () => { }); + } else { + try { + const createStream = fs.createWriteStream(channel_backup_file); + createStream.end(); + } catch (errRes) { + const err = common.handleError(errRes, 'ChannelsBackup', 'Backup Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + } + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'ChannelsBackup', msg: 'Channel Backup', data: body }); + fs.writeFile(channel_backup_file, JSON.stringify(body), (errRes) => { + if (errRes) { + const err = common.handleError(errRes, 'ChannelsBackup', 'Backup Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Finished' }); + res.status(200).json({ message: message }); + } + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'ChannelsBackup', 'Backup Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const postBackupVerify = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Verifying Channel Backup..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup/verify'; + let channel_verify_file = ''; + let message = ''; + let verify_backup = ''; + if (req.params.channelPoint === 'ALL') { + message = 'All Channels Verify Successful.'; + channel_verify_file = req.session.selectedNode.channel_backup_path + sep + 'channel-all.bak'; + const exists = fs.existsSync(channel_verify_file); + if (exists) { + verify_backup = fs.readFileSync(channel_verify_file, 'utf-8'); + if (verify_backup !== '') { + const verify_backup_json = JSON.parse(verify_backup); + delete verify_backup_json.single_chan_backups; + options.form = JSON.stringify(verify_backup_json); + } else { + const errMsg = 'Channel backup to verify does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Verify Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } else { + verify_backup = ''; + const errMsg = 'Channel backup to verify does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Verify Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } else { + message = 'Channel Verify Successful.'; + channel_verify_file = req.session.selectedNode.channel_backup_path + sep + 'channel-' + req.params.channelPoint.replace(':', '-') + '.bak'; + const exists = fs.existsSync(channel_verify_file); + if (exists) { + verify_backup = fs.readFileSync(channel_verify_file, 'utf-8'); + options.form = JSON.stringify({ single_chan_backups: { chan_backups: [JSON.parse(verify_backup)] } }); + } else { + verify_backup = ''; + const errMsg = 'Channel backup to verify does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Verify Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + if (verify_backup !== '') { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Verify', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Verified' }); + res.status(201).json({ message: message }); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'ChannelsBackup', 'Verify Channels Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; + +export const postRestore = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Restoring Channel Backup..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup/restore'; + let channel_restore_file = ''; + let message = ''; + let restore_backup = ''; + if (req.params.channelPoint === 'ALL') { + message = 'All Channels Restore Successful.'; + channel_restore_file = req.session.selectedNode.channel_backup_path + sep + 'restore' + sep; + const exists = fs.existsSync(channel_restore_file + 'channel-all.bak'); + const downloaded_exists = fs.existsSync(channel_restore_file + 'backup-channel-all.bak'); + if (exists) { + restore_backup = fs.readFileSync(channel_restore_file + 'channel-all.bak', 'utf-8'); + if (restore_backup !== '') { + const restore_backup_json = JSON.parse(restore_backup); + options.form = JSON.stringify({ multi_chan_backup: restore_backup_json.multi_chan_backup.multi_chan_backup }); + } else { + const errMsg = 'Channel backup to restore does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } else if (downloaded_exists) { + restore_backup = fs.readFileSync(channel_restore_file + 'backup-channel-all.bak', 'utf-8'); + if (restore_backup !== '') { + const restore_backup_json = JSON.parse(restore_backup); + options.form = JSON.stringify({ multi_chan_backup: restore_backup_json.multi_chan_backup.multi_chan_backup }); + } else { + const errMsg = 'Channel backup to restore does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } else { + restore_backup = ''; + const errMsg = 'Channel backup to restore does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } else { + message = 'Channel Restore Successful.'; + channel_restore_file = req.session.selectedNode.channel_backup_path + sep + 'restore' + sep + 'channel-' + req.params.channelPoint.replace(':', '-') + '.bak'; + const exists = fs.existsSync(channel_restore_file); + if (exists) { + restore_backup = fs.readFileSync(channel_restore_file, 'utf-8'); + options.form = JSON.stringify({ chan_backups: { chan_backups: [JSON.parse(restore_backup)] } }); + } else { + restore_backup = ''; + const errMsg = 'Channel backup to restore does not Exist.'; + const err = common.handleError({ statusCode: 404, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + if (restore_backup !== '') { + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Restore', data: body }); + if (req.params.channelPoint === 'ALL') { channel_restore_file = channel_restore_file + 'channel-all.bak'; } + fs.rename(channel_restore_file, channel_restore_file + '.restored', () => { + getFilesList(req.session.selectedNode.channel_backup_path, (getFilesListRes) => { + if (getFilesListRes.error) { + const errMsg = getFilesListRes.error; + const err = common.handleError({ statusCode: 500, message: 'Restore Channel Error', error: errMsg }, 'ChannelBackup', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, list: getFilesListRes }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Restored' }); + return res.status(201).json({ message: message, list: getFilesListRes }); + } + }); + }); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'ChannelsBackup', 'Restore Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; + +export const getRestoreList = (req, res, next) => { + getFilesList(req.session.selectedNode.channel_backup_path, (getFilesListRes) => { + if (getFilesListRes.error) { + return res.status(getFilesListRes.statusCode).json(getFilesListRes); + } else { + return res.status(200).json(getFilesListRes); + } + }); +}; diff --git a/server/controllers/lnd/fees.ts b/server/controllers/lnd/fees.ts new file mode 100644 index 00000000..a9ca7cc1 --- /dev/null +++ b/server/controllers/lnd/fees.ts @@ -0,0 +1,47 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { getAllForwardingEvents } from './switch.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getFees = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/fees'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received', data: body }); + const today = new Date(Date.now()); + const start_date = new Date(today.getFullYear(), today.getMonth(), 1, 0, 0, 0); + const current_time = (Math.round(today.getTime() / 1000)); + const month_start_time = (Math.round(start_date.getTime() / 1000)); + const week_start_time = current_time - 604800; + const day_start_time = current_time - 86400; + return getAllForwardingEvents(req, month_start_time, current_time, 0, (history) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Forwarding History Received', data: history }); + const daily_sum = history.forwarding_events.reduce((acc, curr) => ((curr.timestamp >= day_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc), [0, 0]); + const weekly_sum = history.forwarding_events.reduce((acc, curr) => ((curr.timestamp >= week_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc), [0, 0]); + const monthly_sum = history.forwarding_events.reduce((acc, curr) => [(acc[0] + 1), (acc[1] + +curr.fee_msat)], [0, 0]); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Daily Sum (Transactions, Fee)', data: daily_sum }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Weekly Sum (Transactions, Fee)', data: weekly_sum }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Monthly Sum (Transactions, Fee)', data: monthly_sum }); + body.daily_tx_count = daily_sum[0]; + body.weekly_tx_count = weekly_sum[0]; + body.monthly_tx_count = monthly_sum[0]; + body.day_fee_sum = (daily_sum[1] / 1000).toFixed(2); + body.week_fee_sum = (weekly_sum[1] / 1000).toFixed(2); + body.month_fee_sum = (monthly_sum[1] / 1000).toFixed(2); + body.forwarding_events_history = history; + if (history.error) { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Fees', msg: 'Fetch Forwarding Events Error', error: history.error }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Fees', msg: 'Fees Received' }); + res.status(200).json(body); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Fees', 'Get Forwarding Events Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/getInfo.ts b/server/controllers/lnd/getInfo.ts new file mode 100644 index 00000000..7eae0f47 --- /dev/null +++ b/server/controllers/lnd/getInfo.ts @@ -0,0 +1,53 @@ +import request from 'request-promise'; +import { Database, DatabaseService } from '../../utils/database.js'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { LNDWSClient, LNDWebSocketClient } from './webSocketClient.js'; + +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; +const lndWsClient: LNDWebSocketClient = LNDWSClient; +const databaseService: DatabaseService = Database; + +export const getInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Getting LND Node Information..' }); + common.logEnvVariables(req); + common.setOptions(req); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/getinfo'; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Selected Node', data: req.session.selectedNode.ln_node }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from LND server url', data: options.url }); + if (!options.headers || !options.headers['Grpc-Metadata-macaroon']) { + const errMsg = 'LND Get info failed due to bad or missing macaroon! Please check RTL-Config.json to verify the setup!'; + const err = common.handleError({ statusCode: 502, message: 'Bad or Missing Macaroon', error: errMsg }, 'GetInfo', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } else { + common.nodes.map((node: any) => { + if (node.ln_implementation === 'LND') { + common.getAllNodeAllChannelBackup(node); + } + return node; + }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'GetInfo', msg: 'Node Information', data: body }); + const body_str = (!body) ? '' : JSON.stringify(body); + const search_idx = (!body) ? -1 : body_str.search('Not Found'); + if (!body || search_idx > -1 || body.error) { + if (body && !body.error) { body.error = 'Error From Server!'; } + const err = common.handleError(body, 'GetInfo', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'LND Node Information Received' }); + req.session.selectedNode.ln_version = body.version.split('-')[0] || ''; + lndWsClient.updateSelectedNode(req.session.selectedNode); + databaseService.loadDatabase(req.session.selectedNode); + res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'GetInfo', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } +}; diff --git a/server/controllers/lnd/graph.ts b/server/controllers/lnd/graph.ts new file mode 100644 index 00000000..1091b353 --- /dev/null +++ b/server/controllers/lnd/graph.ts @@ -0,0 +1,160 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getAliasFromPubkey = (lnServerUrl, pubkey) => { + options.url = lnServerUrl + '/v1/graph/node/' + pubkey; + return request(options).then((res) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Graph', msg: 'Alias', data: res.node.alias }); + return res.node.alias; + }). + catch((err) => pubkey.substring(0, 17) + '...'); +}; + +export const getDescribeGraph = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Network Graph..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph'; + request.get(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Describe Graph Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Network Graph Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Describe Graph Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getGraphInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Information..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/info'; + request.get(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Network Information After Rounding and Conversion', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Information Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Graph Information Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getGraphNode = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Node Information..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/node/' + req.params.pubKey; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Node Info Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Node Information Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Node Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getGraphEdge = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Edge Information..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/edge/' + req.params.chanid; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Edge Information Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Edge Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getQueryRoutes = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Routes..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/routes/' + req.params.destPubkey + '/' + req.params.amount; + if (req.query.outgoing_chan_id) { + options.url = options.url + '?outgoing_chan_id=' + req.query.outgoing_chan_id; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes URL', data: options.url }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes Received', data: body }); + if (body.routes && body.routes.length && body.routes.length > 0 && body.routes[0].hops && body.routes[0].hops.length && body.routes[0].hops.length > 0) { + return Promise.all(body.routes[0].hops.map((hop) => getAliasFromPubkey(req.session.selectedNode.ln_server_url, hop.pub_key))). + then((values) => { + body.routes[0].hops.map((hop, i) => { + hop.hop_sequence = i + 1; + hop.pubkey_alias = values[i]; + return hop; + }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Hops with Alias', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received' }); + res.status(200).json(body); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Query Routes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received' }); + return res.status(200).json(body); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Query Routes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getRemoteFeePolicy = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Getting Remote Fee Policy..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/graph/edge/' + req.params.chanid; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received', data: body }); + let remoteNodeFee = {}; + if (body.node1_pub === req.params.localPubkey) { + remoteNodeFee = { + time_lock_delta: body.node2_policy.time_lock_delta, + fee_base_msat: body.node2_policy.fee_base_msat, + fee_rate_milli_msat: body.node2_policy.fee_rate_milli_msat + }; + } else if (body.node2_pub === req.params.localPubkey) { + remoteNodeFee = { + time_lock_delta: body.node1_policy.time_lock_delta, + fee_base_msat: body.node1_policy.fee_base_msat, + fee_rate_milli_msat: body.node1_policy.fee_rate_milli_msat + }; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Remote Fee Policy Received' }); + res.status(200).json(remoteNodeFee); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Remote Fee Policy Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getAliasesForPubkeys = (req, res, next) => { + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + if (req.query.pubkeys) { + const pubkeyArr = req.query.pubkeys.split(','); + return Promise.all(pubkeyArr.map((pubkey) => getAliasFromPubkey(req.session.selectedNode.ln_server_url, pubkey))). + then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Node Alias', data: values }); + res.status(200).json(values); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'Graph', 'Get Aliases for Pubkeys Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } else { + return res.status(200).json([]); + } +}; diff --git a/server/controllers/lnd/invoices.ts b/server/controllers/lnd/invoices.ts new file mode 100644 index 00000000..f9e461fb --- /dev/null +++ b/server/controllers/lnd/invoices.ts @@ -0,0 +1,89 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { LNDWSClient, LNDWebSocketClient } from './webSocketClient.js'; + +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; +const lndWsClient: LNDWebSocketClient = LNDWSClient; + +export const getInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Getting Invoice Information..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/invoice/' + req.params.rHashStr; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoice Info Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoice Information Received' }); + body.r_preimage = body.r_preimage ? Buffer.from(body.r_preimage, 'base64').toString('hex') : ''; + body.r_hash = body.r_hash ? Buffer.from(body.r_hash, 'base64').toString('hex') : ''; + body.description_hash = body.description_hash ? Buffer.from(body.description_hash, 'base64').toString('hex') : null; + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'Get Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const listInvoices = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Getting List Invoices..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/invoices?num_max_invoices=' + req.query.num_max_invoices + '&index_offset=' + req.query.index_offset + + '&reversed=' + req.query.reversed; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + if (body.invoices && body.invoices.length > 0) { + body.invoices.forEach((invoice) => { + invoice.r_preimage = invoice.r_preimage ? Buffer.from(invoice.r_preimage, 'base64').toString('hex') : ''; + invoice.r_hash = invoice.r_hash ? Buffer.from(invoice.r_hash, 'base64').toString('hex') : ''; + invoice.description_hash = invoice.description_hash ? Buffer.from(invoice.description_hash, 'base64').toString('hex') : null; + }); + body.invoices = common.sortDescByKey(body.invoices, 'creation_date'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoices List Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'List Invoices Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const addInvoice = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Adding Invoice..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/invoices'; + options.form = { + memo: req.body.memo, + private: req.body.private, + expiry: req.body.expiry + }; + if (req.body.amount > 0 && req.body.amount < 1) { + options.form.value_msat = req.body.amount * 1000; + } else { + options.form.value = req.body.amount; + } + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Responce', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoice Added' }); + try { + if (body.r_hash) { + lndWsClient.subscribeToInvoice(options, req.session.selectedNode, body.r_hash); + } + } catch (errRes) { + const err = common.handleError(errRes, 'Invoices', 'Subscribe to Newly Added Invoice Error', req.session.selectedNode); + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Invoice', msg: 'Subscribe to Newly Added Invoice Error', error: err }); + } + body.r_preimage = body.r_preimage ? Buffer.from(body.r_preimage, 'base64').toString('hex') : ''; + body.r_hash = body.r_hash ? Buffer.from(body.r_hash, 'base64').toString('hex') : ''; + body.description_hash = body.description_hash ? Buffer.from(body.description_hash, 'base64').toString('hex') : null; + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Invoices', 'Add Invoice Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/message.ts b/server/controllers/lnd/message.ts new file mode 100644 index 00000000..3e963921 --- /dev/null +++ b/server/controllers/lnd/message.ts @@ -0,0 +1,43 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const signMessage = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Signing Message..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/signmessage'; + options.form = JSON.stringify({ + msg: Buffer.from(req.body.message).toString('base64') + }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Signed' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Messages', 'Sign Message Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const verifyMessage = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Verifying Message..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/verifymessage'; + options.form = JSON.stringify({ + msg: Buffer.from(req.body.message).toString('base64'), + signature: req.body.signature + }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Verified' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Messages', 'Verify Message Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/newAddress.ts b/server/controllers/lnd/newAddress.ts new file mode 100644 index 00000000..93007e61 --- /dev/null +++ b/server/controllers/lnd/newAddress.ts @@ -0,0 +1,21 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getNewAddress = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'NewAddress', msg: 'Getting New Address..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/newaddress?type=' + req.query.type; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'NewAddress', msg: 'New Address Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'NewAddress', msg: 'New Address Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'NewAddress', 'New Address Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/payments.ts b/server/controllers/lnd/payments.ts new file mode 100644 index 00000000..7c9406a6 --- /dev/null +++ b/server/controllers/lnd/payments.ts @@ -0,0 +1,87 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const decodePaymentFromPaymentRequest = (lnServerUrl, payment) => { + options.url = lnServerUrl + '/v1/payreq/' + payment; + return request(options).then((res) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'PayReq', msg: 'Description', data: res.description }); + return res; + }).catch((err) => { }); +}; + +export const decodePayment = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payment..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/payreq/' + req.params.payRequest; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'PayReq', msg: 'Payment Decode Received', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Payment Decoded' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'PayRequest', 'Decode Payment Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const decodePayments = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payments List..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + if (req.body.payments) { + const paymentsArr = req.body.payments.split(','); + return Promise.all(paymentsArr.map((payment) => decodePaymentFromPaymentRequest(req.session.selectedNode.ln_server_url, payment))). + then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'PayReq', msg: 'Decoded Payments', data: values }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Payment List Decoded' }); + res.status(200).json(values); + }). + catch((errRes) => { + const err = common.handleError(errRes, 'PayRequest', 'Decode Payments Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Empty Payment List Decoded' }); + return res.status(200).json([]); + } +}; + +export const getPayments = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Getting Payments List..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/payments?max_payments=' + req.query.max_payments + '&index_offset=' + req.query.index_offset + '&reversed=' + req.query.reversed; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received', data: body }); + if (body.payments && body.payments.length > 0) { + body.payments = common.sortDescByKey(body.payments, 'creation_date'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payments After Sort', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payments List Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'List Payments Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getAllLightningTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Getting All Lightning Transactions..' }); + const options1 = JSON.parse(JSON.stringify(common.getOptions(req))); + const options2 = JSON.parse(JSON.stringify(common.getOptions(req))); + options1.url = req.session.selectedNode.ln_server_url + '/v1/payments?max_payments=100000&index_offset=0&reversed=true'; + options2.url = req.session.selectedNode.ln_server_url + '/v1/invoices?num_max_invoices=100000&index_offset=0&reversed=true'; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'All Payments Options', data: options1 }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'All Invoices Options', data: options2 }); + return Promise.all([request(options1), request(options2)]).then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payments & Invoices Received' }); + res.status(200).json({ listPaymentsAll: values[0], listInvoicesAll: values[1] }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Payments', 'All Lightning Transactions Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/peers.ts b/server/controllers/lnd/peers.ts new file mode 100644 index 00000000..94ff9c8d --- /dev/null +++ b/server/controllers/lnd/peers.ts @@ -0,0 +1,95 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getAliasForPeers = (lnServerUrl, peer) => { + options.url = lnServerUrl + '/v1/graph/node/' + peer.pub_key; + return request(options).then((aliasBody) => { + logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'Peers', msg: 'Alias', data: aliasBody.node.alias }); + peer.alias = aliasBody.node.alias; + return aliasBody.node.alias; + }).catch((err) => { + peer.alias = peer.pub_key.slice(0, 10) + '...' + peer.pub_key.slice(-10); + return peer.pub_key; + }); +}; + +export const getPeers = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Getting Peers..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/peers'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body }); + const peers = !body.peers ? [] : body.peers; + return Promise.all(peers.map((peer) => getAliasForPeers(req.session.selectedNode.ln_server_url, peer))).then((values) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias before Sort', data: body }); + if (body.peers) { + body.peers = common.sortDescByStrKey(body.peers, 'alias'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias after Sort', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peers Received' }); + res.status(200).json(body.peers); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'List Peers Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const postPeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/peers'; + options.form = JSON.stringify({ + addr: { host: req.body.host, pubkey: req.body.pubkey }, + perm: req.body.perm + }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added', data: body }); + options.url = req.session.selectedNode.ln_server_url + '/v1/peers'; + request(options).then((body) => { + const peers = (!body.peers) ? [] : body.peers; + return Promise.all(peers.map((peer) => getAliasForPeers(req.session.selectedNode.ln_server_url, peer))).then((values) => { + if (body.peers) { + body.peers = common.sortDescByStrKey(body.peers, 'alias'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Alias', data: body }); + body.peers = common.newestOnTop(body.peers, 'pub_key', req.body.pubkey); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: body }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Connected' }); + res.status(201).json(body.peers); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Connect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const deletePeer = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/peers/' + req.params.peerPubKey; + request.delete(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached', data: req.params.peerPubKey }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected' }); + res.status(204).json({}); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Peers', 'Disconnect Peer Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/switch.ts b/server/controllers/lnd/switch.ts new file mode 100644 index 00000000..014d5a66 --- /dev/null +++ b/server/controllers/lnd/switch.ts @@ -0,0 +1,54 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; +let responseData = { forwarding_events: [], last_offset_index: 0 }; +const num_max_events = 100; + +export const forwardingHistory = (req, res, next) => { + getAllForwardingEvents(req, req.body.start_time, req.body.end_time, 0, (eventsResponse) => { + if (eventsResponse.error) { + res.status(eventsResponse.error.statusCode).json(eventsResponse); + } else { + res.status(201).json(eventsResponse); + } + }); +}; + +export const getAllForwardingEvents = (req, start, end, offset, callback) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Switch', msg: 'Getting Forwarding Events..' }); + if (offset === 0) { responseData = { forwarding_events: [], last_offset_index: 0 }; } + if (!req.session.selectedNode) { + const err = common.handleError({ message: 'Session Expired after a day\'s inactivity.', statusCode: 401 }, 'Balance', 'Get Balance Error', req.session.selectedNode); + return callback({ message: err.message, error: err.error, statusCode: err.statusCode }); + } options = common.getOptions(req); + options.url = req.session.selectedNode.ln_server_url + '/v1/switch'; + options.form = {}; + if (start) { options.form.start_time = start; } + if (end) { options.form.end_time = end; } + options.form.num_max_events = num_max_events; + options.form.index_offset = offset; + options.form = JSON.stringify(options.form); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History Params', data: options.form }); + return request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Switch', msg: 'Forwarding Events Received' }); + if (body.forwarding_events) { + responseData.forwarding_events.push(...body.forwarding_events); + } + if (!body.last_offset_index || body.last_offset_index < offset + num_max_events) { + responseData.last_offset_index = body.last_offset_index ? body.last_offset_index : 0; + if (responseData.forwarding_events) { + responseData.forwarding_events = common.sortDescByKey(responseData.forwarding_events, 'timestamp'); + } + return callback(responseData); + } else { + return getAllForwardingEvents(req, start, end, offset + num_max_events, callback); + } + }).catch((errRes) => { + const err = common.handleError(errRes, 'Switch', 'Get All Forwarding Events Error', req.session.selectedNode); + return callback({ message: err.message, error: err.error, statusCode: err.statusCode }); + }); +}; diff --git a/server/controllers/lnd/transactions.ts b/server/controllers/lnd/transactions.ts new file mode 100644 index 00000000..60624aa4 --- /dev/null +++ b/server/controllers/lnd/transactions.ts @@ -0,0 +1,49 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Transactions', msg: 'Getting Transactions..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/transactions'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Received', data: body }); + if (body.transactions && body.transactions.length > 0) { + body.transactions = common.sortDescByKey(body.transactions, 'time_stamp'); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Transactions', msg: 'Transactions Received' }); + res.status(200).json(body.transactions); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Transactions', 'List Transactions Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const postTransactions = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Transactions', msg: 'Sending Transaction..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v1/transactions'; + options.form = { + amount: req.body.amount, + addr: req.body.address, + sat_per_byte: req.body.fees, + target_conf: req.body.blocks + }; + if (req.body.sendAll) { + options.form.send_all = req.body.sendAll; + } + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Post Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Transactions', msg: 'Transaction Sent' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Transactions', 'Send Transaction Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/wallet.ts b/server/controllers/lnd/wallet.ts new file mode 100644 index 00000000..ece1e089 --- /dev/null +++ b/server/controllers/lnd/wallet.ts @@ -0,0 +1,203 @@ +import atob from 'atob'; +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const genSeed = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Generating Seed..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + if (req.params.passphrase) { + options.url = req.session.selectedNode.ln_server_url + '/v1/genseed?aezeed_passphrase=' + Buffer.from(atob(req.params.passphrase)).toString('base64'); + } else { + options.url = req.session.selectedNode.ln_server_url + '/v1/genseed'; + } + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Seed Generated' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Gen Seed Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const operateWallet = (req, res, next) => { + let err_message = ''; + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.method = 'POST'; + if (!req.params.operation || req.params.operation === 'unlockwallet') { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Unlocking Wallet..' }); + options.url = req.session.selectedNode.ln_server_url + '/v1/unlockwallet'; + options.form = JSON.stringify({ + wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64') + }); + err_message = 'Unlocking wallet failed! Verify that lnd is running and the wallet is locked!'; + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Initializing Wallet..' }); + options.url = req.session.selectedNode.ln_server_url + '/v1/initwallet'; + if (req.body.aezeed_passphrase && req.body.aezeed_passphrase !== '') { + options.form = JSON.stringify({ + wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64'), + cipher_seed_mnemonic: req.body.cipher_seed_mnemonic, + aezeed_passphrase: Buffer.from(atob(req.body.aezeed_passphrase)).toString('base64') + }); + } else { + options.form = JSON.stringify({ + wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64'), + cipher_seed_mnemonic: req.body.cipher_seed_mnemonic + }); + } + err_message = 'Initializing wallet failed!'; + } + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'Wallet Response', data: body }); + const body_str = (!body) ? '' : JSON.stringify(body); + const search_idx = (!body) ? -1 : body_str.search('Not Found'); + if (!body) { + const err = common.handleError({ statusCode: 500, message: 'Wallet Error', error: err_message }, 'Wallet', err_message, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } else if (search_idx > -1) { + const err = common.handleError({ statusCode: 500, message: 'Wallet Error', error: err_message }, 'Wallet', err_message, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } else if (body.error) { + if ((body.code === 1 && body.error === 'context canceled') || (body.code === 14 && body.error === 'transport is closing')) { + res.status(201).json('Successful'); + } else { + const errMsg = (body.error && typeof body.error === 'object') ? JSON.stringify(body.error) : (body.error && typeof body.error === 'string') ? body.error : err_message; + const err = common.handleError({ statusCode: 500, message: 'Wallet Error', error: errMsg }, 'Wallet', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Wallet Unlocked/Initialized' }); + res.status(201).json('Successful'); + } + }).catch((errRes) => { + if ((errRes.error.code === 1 && errRes.error.error === 'context canceled') || (errRes.error.code === 14 && errRes.error.error === 'transport is closing')) { + res.status(201).json('Successful'); + } else { + const err = common.handleError(errRes, 'Wallet', err_message, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + }); +}; + +export const updateSelNodeOptions = (req, res, next) => { + const response = common.updateSelectedNodeOptions(req); + res.status(response.status).json({ updateMessage: response.message }); +}; + +export const getUTXOs = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Getting UTXOs..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/utxos'; + if (common.isVersionCompatible(req.session.selectedNode.ln_version, '0.14.0')) { + options.form = JSON.stringify({ max_confs: req.query.max_confs }); + } else { + options.url = options.url + '?max_confs=' + req.query.max_confs; + } + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO List Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'UTXOs Received' }); + res.status(200).json(body.utxos ? body.utxos : []); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'List UTXOs Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const bumpFee = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Bumping Fee..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/bumpfee'; + options.form = {}; + options.form.outpoint = { + txid_str: req.body.txid, + output_index: req.body.outputIndex + }; + if (req.body.targetConf) { + options.form.target_conf = req.body.targetConf; + } else if (req.body.satPerByte) { + options.form.sat_per_byte = req.body.satPerByte; + } + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'Bump Fee Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Fee Bumped' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Bump Fee Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const labelTransaction = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Labelling Transaction..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/tx/label'; + options.form = {}; + options.form.txid = req.body.txid; + options.form.label = req.body.label; + options.form.overwrite = req.body.overwrite; + options.form = JSON.stringify(options.form); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Post Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Transaction Labelled' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Label Transaction Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const leaseUTXO = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Leasing UTXO..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/utxos/lease'; + options.form = {}; + options.form.id = req.body.txid; + options.form.outpoint = { + txid_bytes: req.body.txid, + output_index: req.body.outputIndex + }; + options.form = JSON.stringify(options.form); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Options', data: options.form }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'UTXO Leased' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Lease UTXO Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const releaseUTXO = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'Releasing UTXO..' }); + options = common.getOptions(req); + if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); } + options.url = req.session.selectedNode.ln_server_url + '/v2/wallet/utxos/release'; + options.form = {}; + options.form.id = req.body.txid; + options.form.outpoint = { + txid_bytes: req.body.txid, + output_index: req.body.outputIndex + }; + options.form = JSON.stringify(options.form); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Release Response', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Wallet', msg: 'UTXO Released' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Wallet', 'Release UTXO Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/lnd/webSocketClient.ts b/server/controllers/lnd/webSocketClient.ts new file mode 100644 index 00000000..50fce43b --- /dev/null +++ b/server/controllers/lnd/webSocketClient.ts @@ -0,0 +1,114 @@ +import request from 'request-promise'; +import * as fs from 'fs'; +import { join } from 'path'; + +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { WSServer } from '../../utils/webSocketServer.js'; +import { CommonSelectedNode } from '../../models/config.model.js'; + +export class LNDWebSocketClient { + + public logger: LoggerService = Logger; + public common: CommonService = Common; + public wsServer = WSServer; + public webSocketClients: Array<{ selectedNode: CommonSelectedNode }> = []; + + constructor() { + this.wsServer.eventEmitterLND.on('CONNECT', (nodeIndex) => { + this.connect(this.common.findNode(+nodeIndex)); + }); + this.wsServer.eventEmitterLND.on('DISCONNECT', (nodeIndex) => { + this.disconnect(this.common.findNode(+nodeIndex)); + }); + } + + public connect = (selectedNode: CommonSelectedNode) => { + try { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (!clientExists && selectedNode.ln_server_url) { + const newWebSocketClient = { selectedNode: selectedNode }; + this.webSocketClients.push(newWebSocketClient); + } + } catch (err) { + throw new Error(err); + } + }; + + public fetchUnpaidInvoices = (selectedNode: CommonSelectedNode) => { + this.logger.log({ selectedNode: selectedNode, level: 'INFO', fileName: 'WebSocketClient', msg: 'Getting Unpaid Invoices..' }); + const options = this.setOptionsForSelNode(selectedNode); + options.url = selectedNode.ln_server_url + '/v1/invoices?pending_only=true'; + return request(options).then((body) => { + this.logger.log({ selectedNode: selectedNode, level: 'DEBUG', fileName: 'WebSocketClient', msg: 'Pending Invoices Received', data: body }); + if (body.invoices && body.invoices.length > 0) { + body.invoices.forEach((invoice) => { + if (invoice.state === 'OPEN') { + this.subscribeToInvoice(options, selectedNode, invoice.r_hash); + } + }); + } + return null; + }).catch((errRes) => { + const err = this.common.handleError(errRes, 'WebSocketClient', 'Pending Invoices Error', selectedNode); + return ({ message: err.message, error: err.error }); + }); + }; + + public subscribeToInvoice = (options: any, selectedNode: CommonSelectedNode, rHash: string) => { + rHash = rHash.replace(/\+/g, '-').replace(/[/]/g, '_'); + this.logger.log({ selectedNode: selectedNode, level: 'INFO', fileName: 'WebSocketClient', msg: 'Subscribing to Invoice ' + rHash + ' ..' }); + options.url = selectedNode.ln_server_url + '/v2/invoices/subscribe/' + rHash; + request(options).then((msg) => { + this.logger.log({ selectedNode: selectedNode, level: 'INFO', fileName: 'WebSocketClient', msg: 'Invoice Information Received for ' + rHash }); + if (typeof msg === 'string') { + const results = msg.split('\n'); + msg = (results.length && results.length > 1) ? JSON.parse(results[1]) : JSON.parse(msg); + msg.result.r_preimage = msg.result.r_preimage ? Buffer.from(msg.result.r_preimage, 'base64').toString('hex') : ''; + msg.result.r_hash = msg.result.r_hash ? Buffer.from(msg.result.r_hash, 'base64').toString('hex') : ''; + msg.result.description_hash = msg.result.description_hash ? Buffer.from(msg.result.description_hash, 'base64').toString('hex') : null; + } + msg['type'] = 'invoice'; + msg['source'] = 'LND'; + const msgStr = JSON.stringify(msg); + this.logger.log({ selectedNode: selectedNode, level: 'DEBUG', fileName: 'WebSocketClient', msg: 'Invoice Info Received', data: msgStr }); + this.wsServer.sendEventsToAllLNClients(msgStr, selectedNode); + }).catch((errRes) => { + const err = this.common.handleError(errRes, 'Invoices', 'Subscribe to Invoice Error for ' + rHash, selectedNode); + const errStr = ((typeof err === 'object' && err.message) ? JSON.stringify({ error: err.message + ' ' + rHash }) : (typeof err === 'object') ? JSON.stringify({ error: err + ' ' + rHash }) : ('{ "error": ' + err + ' ' + rHash + ' }')); + this.wsServer.sendErrorToAllLNClients(errStr, selectedNode); + }); + }; + + public setOptionsForSelNode = (selectedNode: CommonSelectedNode) => { + const options = { url: '', rejectUnauthorized: false, json: true, form: null }; + try { + options['headers'] = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(selectedNode.macaroon_path, 'admin.macaroon')).toString('hex') }; + } catch (err) { + this.logger.log({ selectedNode: selectedNode, level: 'ERROR', fileName: 'WebSocketClient', msg: 'Set Options Error', error: JSON.stringify(err) }); + } + return options; + }; + + public disconnect = (selectedNode: CommonSelectedNode) => { + const clientExists = this.webSocketClients.find((wsc) => wsc.selectedNode.index === selectedNode.index); + if (clientExists) { + this.logger.log({ selectedNode: clientExists.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Disconnecting from the LND\'s Websocket Server..' }); + const clientIdx = this.webSocketClients.findIndex((wsc) => wsc.selectedNode.index === selectedNode.index); + this.webSocketClients.splice(clientIdx, 1); + } + }; + + public updateSelectedNode = (newSelectedNode: CommonSelectedNode) => { + const clientIdx = this.webSocketClients.findIndex((wsc) => +wsc.selectedNode.index === +newSelectedNode.index); + const newClient = this.webSocketClients[clientIdx]; + newClient.selectedNode = JSON.parse(JSON.stringify(newSelectedNode)); + this.webSocketClients[clientIdx] = newClient; + if (this.webSocketClients[clientIdx].selectedNode.ln_version === '' || !this.webSocketClients[clientIdx].selectedNode.ln_version || this.common.isVersionCompatible(this.webSocketClients[clientIdx].selectedNode.ln_version, '0.11.0')) { + this.fetchUnpaidInvoices(this.webSocketClients[clientIdx].selectedNode); + } + } + +} + +export const LNDWSClient = new LNDWebSocketClient(); diff --git a/server/controllers/shared/RTLConf.ts b/server/controllers/shared/RTLConf.ts new file mode 100644 index 00000000..60e730a8 --- /dev/null +++ b/server/controllers/shared/RTLConf.ts @@ -0,0 +1,374 @@ +import * as fs from 'fs'; +import { sep } from 'path'; +import ini from 'ini'; +import parseHocon from 'hocon-parser'; +import request from 'request-promise'; +import { Database, DatabaseService } from '../../utils/database.js'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +import { WSServer } from '../../utils/webSocketServer.js'; +import { AuthenticationConfiguration, NodeSettingsConfiguration } from '../../models/config.model.js'; + +const options = { url: '' }; +const logger: LoggerService = Logger; +const common: CommonService = Common; +const wsServer = WSServer; +const databaseService: DatabaseService = Database; + +export const updateSelectedNode = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating Selected Node..' }); + const selNodeIndex = req.body.currNodeIndex ? req.body.currNodeIndex : common.initSelectedNode ? common.initSelectedNode.index : 1; + req.session.selectedNode = common.findNode(selNodeIndex); + if (req.headers && req.headers.authorization && req.headers.authorization !== '') { + wsServer.updateLNWSClientDetails(req.session.id, +req.session.selectedNode.index, +req.body.prevNodeIndex); + if (req.body.prevNodeIndex !== -1) { + databaseService.unloadDatabase(req.body.prevNodeIndex); + } + } + const responseVal = !req.session.selectedNode.ln_node ? '' : req.session.selectedNode.ln_node; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Selected Node Updated To', data: responseVal }); + res.status(200).json({ status: 'Selected Node Updated To: ' + JSON.stringify(responseVal) + '!' }); +}; + +export const getRTLConfigInitial = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting Initial RTL Configuration..' }); + const confFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + fs.readFile(confFile, 'utf8', (errRes, data) => { + if (errRes) { + if (errRes.code === 'ENOENT') { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'RTLConf', msg: 'Node config does not exist!', error: { error: 'Node config does not exist.' } }); + res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: 0, sso: {}, nodes: [] }); + } else { + const errMsg = 'Get Node Config Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + } else { + const nodeConfData = JSON.parse(data); + const sso = { rtlSSO: common.rtl_sso, logoutRedirectLink: common.logout_redirect_link }; + const enable2FA = !!common.rtl_secret2fa; + const allowPasswordUpdate = common.flg_allow_password_update; + const nodesArr = []; + if (common.nodes && common.nodes.length > 0) { + common.nodes.forEach((node, i) => { + const settings: NodeSettingsConfiguration = {}; + settings.userPersona = node.user_persona ? node.user_persona : 'MERCHANT'; + settings.themeMode = (node.theme_mode) ? node.theme_mode : 'DAY'; + settings.themeColor = (node.theme_color) ? node.theme_color : 'PURPLE'; + settings.fiatConversion = (node.fiat_conversion) ? !!node.fiat_conversion : false; + settings.currencyUnit = node.currency_unit; + nodesArr.push({ + index: node.index, + lnNode: node.ln_node, + lnImplementation: node.ln_implementation, + settings: settings, + authentication: {} + }); + }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Initial RTL Configuration Received' }); + res.status(200).json({ defaultNodeIndex: nodeConfData.defaultNodeIndex, selectedNodeIndex: (req.session.selectedNode && req.session.selectedNode.index ? req.session.selectedNode.index : common.initSelectedNode.index), sso: sso, enable2FA: enable2FA, allowPasswordUpdate: allowPasswordUpdate, nodes: nodesArr }); + } + }); +}; + +export const getRTLConfig = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting RTL Configuration..' }); + const confFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + fs.readFile(confFile, 'utf8', (errRes, data) => { + if (errRes) { + if (errRes.code === 'ENOENT') { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'RTLConf', msg: 'Node config does not exist!', error: { error: 'Node config does not exist.' } }); + res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: 0, sso: {}, nodes: [] }); + } else { + const errMsg = 'Get Node Config Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } + } else { + const nodeConfData = JSON.parse(data); + const sso = { rtlSSO: common.rtl_sso, logoutRedirectLink: common.logout_redirect_link }; + const enable2FA = !!common.rtl_secret2fa; + const allowPasswordUpdate = common.flg_allow_password_update; + const nodesArr = []; + if (common.nodes && common.nodes.length > 0) { + common.nodes.forEach((node, i) => { + const authentication: AuthenticationConfiguration = {}; + authentication.configPath = (node.config_path) ? node.config_path : ''; + authentication.swapMacaroonPath = (node.swap_macaroon_path) ? node.swap_macaroon_path : ''; + authentication.boltzMacaroonPath = (node.boltz_macaroon_path) ? node.boltz_macaroon_path : ''; + const settings: NodeSettingsConfiguration = {}; + settings.userPersona = node.user_persona ? node.user_persona : 'MERCHANT'; + settings.themeMode = (node.theme_mode) ? node.theme_mode : 'DAY'; + settings.themeColor = (node.theme_color) ? node.theme_color : 'PURPLE'; + settings.fiatConversion = (node.fiat_conversion) ? !!node.fiat_conversion : false; + settings.bitcoindConfigPath = node.bitcoind_config_path; + settings.logLevel = node.log_level ? node.log_level : 'ERROR'; + settings.lnServerUrl = node.ln_server_url; + settings.swapServerUrl = node.swap_server_url; + settings.boltzServerUrl = node.boltz_server_url; + settings.enableOffers = node.enable_offers; + settings.channelBackupPath = node.channel_backup_path; + settings.currencyUnit = node.currency_unit; + nodesArr.push({ + index: node.index, + lnNode: node.ln_node, + lnImplementation: node.ln_implementation, + settings: settings, + authentication: authentication + }); + }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'RTL Configuration Received' }); + res.status(200).json({ defaultNodeIndex: nodeConfData.defaultNodeIndex, selectedNodeIndex: (req.session.selectedNode && req.session.selectedNode.index ? req.session.selectedNode.index : common.initSelectedNode.index), sso: sso, enable2FA: enable2FA, allowPasswordUpdate: allowPasswordUpdate, nodes: nodesArr }); + } + }); +}; + +export const updateUISettings = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating UI Settings..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + const node = config.nodes.find((node) => (node.index === req.session.selectedNode.index)); + if (node && node.Settings) { + node.Settings.userPersona = req.body.updatedSettings.userPersona; + node.Settings.themeMode = req.body.updatedSettings.themeMode; + node.Settings.themeColor = req.body.updatedSettings.themeColor; + node.Settings.fiatConversion = req.body.updatedSettings.fiatConversion; + if (req.body.updatedSettings.fiatConversion) { + node.Settings.currencyUnit = req.body.updatedSettings.currencyUnit ? req.body.updatedSettings.currencyUnit : 'USD'; + } else { + delete node.Settings.currencyUnit; + } + const selectedNode = common.findNode(req.session.selectedNode.index); + selectedNode.user_persona = req.body.updatedSettings.userPersona; + selectedNode.theme_mode = req.body.updatedSettings.themeMode; + selectedNode.theme_color = req.body.updatedSettings.themeColor; + selectedNode.fiat_conversion = req.body.updatedSettings.fiatConversion; + if (req.body.updatedSettings.fiatConversion) { + selectedNode.currency_unit = req.body.updatedSettings.currencyUnit ? req.body.updatedSettings.currencyUnit : 'USD'; + } else { + delete selectedNode.currency_unit; + } + common.replaceNode(req, selectedNode); + } + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Node Settings Succesful!' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'UI Settings Updated' }); + res.status(201).json({ message: 'Node Settings Updated Successfully' }); + } catch (errRes) { + const errMsg = 'Update Node Settings Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; + +export const update2FASettings = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating 2FA Settings..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + config.secret2fa = req.body.secret2fa; + const message = req.body.secret2fa.trim() === '' ? 'Two factor authentication disabled sucessfully.' : 'Two factor authentication enabled sucessfully.'; + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + common.rtl_secret2fa = config.secret2fa; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: message }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: '2FA Updated' }); + res.status(201).json({ message: message }); + } catch (errRes) { + const errMsg = 'Update 2FA Settings Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; + +export const updateDefaultNode = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating Default Node..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + config.defaultNodeIndex = req.body.defaultNodeIndex; + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Default Node Succesful!' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Default Node Updated' }); + res.status(201).json({ message: 'Default Node Updated Successfully' }); + } catch (errRes) { + const errMsg = 'Update Default Node Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; + +export const getConfig = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Reading Configuration File..' }); + let confFile = ''; + let fileFormat = 'INI'; + switch (req.params.nodeType) { + case 'ln': + confFile = req.session.selectedNode.config_path; + break; + case 'bitcoind': + confFile = req.session.selectedNode.bitcoind_config_path; + break; + case 'rtl': + fileFormat = 'JSON'; + confFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + break; + default: + confFile = ''; + break; + } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: '[Node Type, File Path]', data: [req.params.nodeType, confFile] }); + fs.readFile(confFile, 'utf8', (errRes, data) => { + if (errRes) { + const errMsg = 'Reading Config Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } else { + let jsonConfig = {}; + if (fileFormat === 'JSON') { + jsonConfig = JSON.parse(data); + } else { + fileFormat = 'INI'; + jsonConfig = ini.parse(data); + if (req.session.selectedNode.ln_implementation === 'ECL' && !jsonConfig['eclair.api.password']) { + fileFormat = 'HOCON'; + jsonConfig = parseHocon(data); + } + } + jsonConfig = maskPasswords(jsonConfig); + const responseJSON = (fileFormat === 'JSON') ? jsonConfig : ini.stringify(jsonConfig); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Configuration Data Received' }); + res.status(200).json({ format: fileFormat, data: responseJSON }); + } + }); +}; + +export const getFile = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting File..' }); + const file = req.query.path ? req.query.path : (req.session.selectedNode.channel_backup_path + sep + 'channel-' + req.query.channel.replace(':', '-') + '.bak'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: '[Channel Point, File Path]', data: [req.query.channel, file] }); + fs.readFile(file, 'utf8', (errRes, data) => { + if (errRes) { + if (errRes.code && errRes.code === 'ENOENT') { errRes.code = 'File Not Found!'; } + const errMsg = 'Reading File Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'File Data', data: data }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'File Data Received' }); + res.status(200).json(data); + } + }); +}; + +export const getCurrencyRates = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting Currency Rates..' }); + options.url = 'https://blockchain.info/ticker'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Currency Rates Received' }); + res.status(200).json(JSON.parse(body)); + }).catch((errRes) => { + const errMsg = 'Get Rates Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + }); +}; + +export const updateSSO = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating SSO Settings..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + delete config.SSO; + config.SSO = req.body.SSO; + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating SSO Succesful!' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'SSO Setting Updated' }); + res.status(201).json({ message: 'SSO Updated Successfully' }); + } catch (errRes) { + const errMsg = 'Update SSO Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; + +export const updateServiceSettings = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Updating Service Settings..' }); + const RTLConfFile = common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + const selectedNode = common.findNode(req.session.selectedNode.index); + config.nodes.find((node) => { + if (node.index === req.session.selectedNode.index) { + switch (req.body.service) { + case 'LOOP': + if (req.body.settings.enable) { + node.Settings.swapServerUrl = req.body.settings.serverUrl; + node.Authentication.swapMacaroonPath = req.body.settings.macaroonPath; + selectedNode.swap_server_url = req.body.settings.serverUrl; + selectedNode.swap_macaroon_path = req.body.settings.macaroonPath; + } else { + delete node.Settings.swapServerUrl; + delete node.Authentication.swapMacaroonPath; + delete selectedNode.swap_server_url; + delete selectedNode.swap_macaroon_path; + } + break; + + case 'BOLTZ': + if (req.body.settings.enable) { + node.Settings.boltzServerUrl = req.body.settings.serverUrl; + node.Authentication.boltzMacaroonPath = req.body.settings.macaroonPath; + selectedNode.boltz_server_url = req.body.settings.serverUrl; + selectedNode.boltz_macaroon_path = req.body.settings.macaroonPath; + } else { + delete node.Settings.boltzServerUrl; + delete node.Authentication.boltzMacaroonPath; + delete selectedNode.boltz_server_url; + delete selectedNode.boltz_macaroon_path; + } + break; + + case 'OFFERS': + node.Settings.enableOffers = req.body.settings.enableOffers; + selectedNode.enable_offers = req.body.settings.enableOffers; + break; + + default: + break; + } + common.replaceNode(req, selectedNode); + } + return node; + }); + try { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Service Settings Succesful!' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Service Settings Updated' }); + res.status(201).json({ message: 'Service Settings Updated Successfully' }); + } catch (errRes) { + const errMsg = 'Update Service Settings Error'; + const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.error, error: err.error }); + } +}; + +export const maskPasswords = (obj) => { + const keys = Object.keys(obj); + const length = keys.length; + if (length !== 0) { + for (let i = 0; i < length; i++) { + if (typeof obj[keys[i]] === 'object') { + keys[keys[i]] = maskPasswords(obj[keys[i]]); + } + if (typeof keys[i] === 'string' && + (keys[i].toLowerCase().includes('password') || keys[i].toLowerCase().includes('multipass') || + keys[i].toLowerCase().includes('rpcpass') || keys[i].toLowerCase().includes('rpcpassword')) + ) { + obj[keys[i]] = '********************'; + } + } + } + return obj; +}; diff --git a/server/controllers/shared/authenticate.ts b/server/controllers/shared/authenticate.ts new file mode 100644 index 00000000..ef5d0166 --- /dev/null +++ b/server/controllers/shared/authenticate.ts @@ -0,0 +1,128 @@ +import jwt from 'jsonwebtoken'; +import * as otplib from 'otplib'; +import * as crypto from 'crypto'; +import { Database, DatabaseService } from '../../utils/database.js'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; + +const logger: LoggerService = Logger; +const common: CommonService = Common; +const ONE_MINUTE = 60000; +const LOCKING_PERIOD = 30 * ONE_MINUTE; // HALF AN HOUR +const ALLOWED_LOGIN_ATTEMPTS = 5; +const failedLoginAttempts = {}; +const databaseService: DatabaseService = Database; + +const loginInterval = setInterval(() => { + for (const ip in failedLoginAttempts) { + if (new Date().getTime() > (failedLoginAttempts[ip].lastTried + LOCKING_PERIOD)) { + delete failedLoginAttempts[ip]; + clearInterval(loginInterval); + } + } +}, LOCKING_PERIOD); + +export const getFailedInfo = (reqIP, currentTime) => { + let failed = { count: 0, lastTried: currentTime }; + if ((!failedLoginAttempts[reqIP]) || (currentTime > (failed.lastTried + LOCKING_PERIOD))) { + failed = { count: 0, lastTried: currentTime }; + failedLoginAttempts[reqIP] = failed; + } else { + failed = failedLoginAttempts[reqIP]; + } + return failed; +}; + +const handleMultipleFailedAttemptsError = (failed, currentTime, errMsg) => { + if (failed.count >= ALLOWED_LOGIN_ATTEMPTS && (currentTime <= (failed.lastTried + LOCKING_PERIOD))) { + return { + message: 'Multiple Failed Login Attempts!', + error: 'Application locked for ' + (LOCKING_PERIOD / ONE_MINUTE) + ' minutes due to multiple failed attempts!\nTry again after ' + common.convertTimestampToTime((failed.lastTried + LOCKING_PERIOD) / 1000) + '!' + }; + } else { + return { + message: 'Authentication Failed!', + error: errMsg + '\nApplication will be locked after ' + (ALLOWED_LOGIN_ATTEMPTS - failed.count) + ' more unsuccessful attempts!' + }; + } +}; + +export const verifyToken = (twoFAToken) => !!(common.rtl_secret2fa && common.rtl_secret2fa !== '' && otplib.authenticator.check(twoFAToken, common.rtl_secret2fa)); + +export const authenticateUser = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'Authenticating User..' }); + if (+common.rtl_sso) { + if (req.body.authenticateWith === 'JWT' && jwt.verify(req.body.authenticationValue, common.secret_key)) { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated' }); + res.status(406).json({ message: 'SSO Authentication Error', error: 'Login with Password is not allowed with SSO.' }); + } else if (req.body.authenticateWith === 'PASSWORD') { + const cookieValue = common.readCookie(); + if (cookieValue.trim().length >= 32 && crypto.timingSafeEqual(Buffer.from(crypto.createHash('sha256').update(cookieValue).digest('hex'), 'utf-8'), Buffer.from(req.body.authenticationValue, 'utf-8'))) { + common.refreshCookie(); + if (!req.session.selectedNode) { req.session.selectedNode = common.initSelectedNode; } + const token = jwt.sign({ user: 'SSO_USER' }, common.secret_key); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated.' }); + res.status(200).json({ token: token }); + } else { + const errMsg = 'SSO Authentication Failed! Access key too short or does not match.'; + const err = common.handleError({ statusCode: 406, message: 'SSO Authentication Error', error: errMsg }, 'Authenticate', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } + } else { + const currentTime = new Date().getTime(); + const reqIP = common.getRequestIP(req); + const failed = getFailedInfo(reqIP, currentTime); + const password = req.body.authenticationValue; + if (common.rtl_pass === password && failed.count < ALLOWED_LOGIN_ATTEMPTS) { + if (req.body.twoFAToken && req.body.twoFAToken !== '') { + if (!verifyToken(req.body.twoFAToken)) { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Token! Failed IP ' + reqIP, error: { error: 'Invalid token.' } }); + failed.count = failed.count + 1; + failed.lastTried = currentTime; + return res.status(401).json(handleMultipleFailedAttemptsError(failed, currentTime, 'Invalid 2FA Token!')); + } + } + if (!req.session.selectedNode) { req.session.selectedNode = common.initSelectedNode; } + delete failedLoginAttempts[reqIP]; + const token = jwt.sign({ user: 'NODE_USER' }, common.secret_key); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated' }); + res.status(200).json({ token: token }); + } else { + logger.log({ selectedNode: req.session.selectedNode, level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Password! Failed IP ' + reqIP, error: { error: 'Invalid password.' } }); + failed.count = common.rtl_pass !== password ? (failed.count + 1) : failed.count; + failed.lastTried = common.rtl_pass !== password ? currentTime : failed.lastTried; + return res.status(401).json(handleMultipleFailedAttemptsError(failed, currentTime, 'Invalid Password!')); + } + } +}; + +export const resetPassword = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'Resetting Password..' }); + if (+common.rtl_sso) { + const errMsg = 'Password cannot be reset for SSO authentication'; + const err = common.handleError({ statusCode: 401, message: 'Password Reset Error', error: errMsg }, 'Authenticate', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } else { + const currPassword = req.body.currPassword; + if (common.rtl_pass === currPassword) { + common.rtl_pass = common.replacePasswordWithHash(req.body.newPassword); + const token = jwt.sign({ user: 'NODE_USER' }, common.secret_key); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'Password Reset Successful' }); + res.status(200).json({ token: token }); + } else { + const errMsg = 'Incorrect Old Password'; + const err = common.handleError({ statusCode: 401, message: 'Password Reset Error', error: errMsg }, 'Authenticate', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + } +}; + +export const logoutUser = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Authenticate', msg: 'Logged out' }); + if (req.session.selectedNode && req.session.selectedNode.index) { + databaseService.unloadDatabase(+req.session.selectedNode.index); + } + req.session.destroy(); + res.status(200).json({ loggedout: true }); +}; diff --git a/server/controllers/shared/boltz.ts b/server/controllers/shared/boltz.ts new file mode 100644 index 00000000..b4fb1f68 --- /dev/null +++ b/server/controllers/shared/boltz.ts @@ -0,0 +1,169 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const getInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Getting Boltz Information..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Get Info Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/info'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Boltz Information Received' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Info', data: body }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Get Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getServiceInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Getting Service Information..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Get Service Information Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/serviceinfo'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Service Information Received' }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Service Info', data: body }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Get Service Information Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const listSwaps = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Getting List Swaps..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'List Swaps Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/listswaps'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz List Swaps Info', data: body }); + if (body && body.swaps && body.swaps.length && body.swaps.length > 0) { body.swaps = body.swaps.reverse(); } + if (body && body.reverseSwaps && body.reverseSwaps.length && body.reverseSwaps.length > 0) { body.reverseSwaps = body.reverseSwaps.reverse(); } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'List Swaps Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'List Swaps Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const getSwapInfo = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Getting Swap..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Get Swap Information Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/swap/' + req.params.swapId; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Swap Info', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Swap Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Swap Info Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const createSwap = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Creating Swap..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Create Swap Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/createswap'; + options.body = { amount: req.body.amount }; + if (req.body.address !== '') { options.body.address = req.body.address; } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Body', data: options.body }); + request.post(options).then(createSwapRes => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Response', data: createSwapRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Swap Created' }); + res.status(201).json(createSwapRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Create Swap Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const createReverseSwap = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Creating Reverse Swap..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Create Reverse Swap Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/createreverseswap'; + options.body = { amount: req.body.amount }; + if (req.body.address !== '') { options.body.address = req.body.address; } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Body', data: options.body }); + request.post(options).then(createReverseSwapRes => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Response', data: createReverseSwapRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Reverse Swap Created' }); + res.status(201).json(createReverseSwapRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Create Reverse Swap Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const createChannel = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Creating Boltz Channel..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Create Channel Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/createchannel'; + options.body = { amount: req.body.amount }; + if (req.body.address !== '') { options.body.address = req.body.address; } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Body', data: options.body }); + request.post(options).then(createChannelRes => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Response', data: createChannelRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Boltz Channel Created' }); + res.status(201).json(createChannelRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Create Channel Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const deposit = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Start..' }); + options = common.getBoltzServerOptions(req); + if (options.url === '') { + const errMsg = 'Boltz Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Deposit Error', error: errMsg }, 'Boltz', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/deposit'; + request.post(options).then(depositRes => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Boltz', msg: 'Deposit Response', data: depositRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Finished' }); + res.status(201).json(depositRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Boltz', 'Deposit Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/controllers/shared/loop.ts b/server/controllers/shared/loop.ts new file mode 100644 index 00000000..2b67e428 --- /dev/null +++ b/server/controllers/shared/loop.ts @@ -0,0 +1,259 @@ +import request from 'request-promise'; +import { Logger, LoggerService } from '../../utils/logger.js'; +import { Common, CommonService } from '../../utils/common.js'; +let options = null; +const logger: LoggerService = Logger; +const common: CommonService = Common; + +export const loopOut = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Looping Out..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop Out Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/out'; + options.body = { + amt: req.body.amount, + sweep_conf_target: req.body.targetConf, + max_swap_routing_fee: req.body.swapRoutingFee, + max_miner_fee: req.body.minerFee, + max_prepay_routing_fee: req.body.prepayRoutingFee, + max_prepay_amt: req.body.prepayAmt, + max_swap_fee: req.body.swapFee, + swap_publication_deadline: req.body.swapPublicationDeadline, + initiator: 'RTL' + }; + if (req.body.chanId !== '') { options.body['loop_out_channel'] = req.body.chanId; } + if (req.body.destAddress !== '') { options.body['dest'] = req.body.destAddress; } + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Body', data: options.body }); + request.post(options).then((loopOutRes) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out', data: loopOutRes }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop Out Finished' }); + res.status(201).json(loopOutRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const loopOutTerms = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop Out Terms Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/out/terms'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Terms Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const loopOutQuote = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Quotes..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop Out Quotes Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/out/quote/' + req.params.amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote URL', data: options.url }); + request(options).then((quoteRes) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote', data: quoteRes }); + quoteRes.amount = +req.params.amount; + quoteRes.swap_payment_dest = quoteRes.swap_payment_dest ? Buffer.from(quoteRes.swap_payment_dest, 'base64').toString('hex') : ''; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop Out Quotes Received' }); + res.status(200).json(quoteRes); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const loopOutTermsAndQuotes = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms & Quotes..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop Out Terms & Quotes Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/out/terms'; + request(options).then((terms) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms', data: terms }); + const options1 = common.getSwapServerOptions(req); const options2 = common.getSwapServerOptions(req); + options1.url = options1.url + '/v1/loop/out/quote/' + terms.min_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + options2.url = options2.url + '/v1/loop/out/quote/' + terms.max_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Min Quote Options', data: options1 }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Max Quote Options', data: options2 }); + return Promise.all([request(options1), request(options2)]).then((values) => { + values[0].amount = +terms.min_swap_amount; + values[1].amount = +terms.max_swap_amount; + values[0].swap_payment_dest = values[0].swap_payment_dest ? Buffer.from(values[0].swap_payment_dest, 'base64').toString('hex') : ''; + values[1].swap_payment_dest = values[1].swap_payment_dest ? Buffer.from(values[1].swap_payment_dest, 'base64').toString('hex') : ''; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 1', data: values[0] }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 2', data: values[1] }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms & Quotes Received' }); + res.status(200).json(values); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Terms & Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop Out Terms & Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const loopIn = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Looping In..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop In Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/in'; + options.body = { + amt: req.body.amount, + max_swap_fee: req.body.swapFee, + max_miner_fee: req.body.minerFee, + initiator: 'RTL' + }; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Body', data: options.body }); + request.post(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop In Finished' }); + res.status(201).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const loopInTerms = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop In Terms Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/in/terms'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Terms Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const loopInQuote = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Quotes..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop In Quotes Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/in/quote/' + req.params.amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote Options', data: options.url }); + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote', data: body }); + body.amount = +req.params.amount; + body.swap_payment_dest = body.swap_payment_dest ? Buffer.from(body.swap_payment_dest, 'base64').toString('hex') : ''; + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop In Qoutes Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Quote Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const loopInTermsAndQuotes = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms & Quotes..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Loop In Terms & Quotes Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/in/terms'; + request(options).then((terms) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms', data: terms }); + const options1 = common.getSwapServerOptions(req); const options2 = common.getSwapServerOptions(req); + options1.url = options1.url + '/v1/loop/in/quote/' + terms.min_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + options2.url = options2.url + '/v1/loop/in/quote/' + terms.max_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Min Quote Options', data: options1 }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Max Quote Options', data: options2 }); + return Promise.all([request(options1), request(options2)]).then((values) => { + values[0].amount = +terms.min_swap_amount; + values[1].amount = +terms.max_swap_amount; + values[0].swap_payment_dest = values[0].swap_payment_dest ? Buffer.from(values[0].swap_payment_dest, 'base64').toString('hex') : ''; + values[1].swap_payment_dest = values[1].swap_payment_dest ? Buffer.from(values[1].swap_payment_dest, 'base64').toString('hex') : ''; + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 1', data: values[0] }); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 2', data: values[1] }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms & Qoutes Received' }); + res.status(200).json(values); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Terms & Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Loop In Terms & Quotes Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const swaps = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting List Swaps..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'List Swaps Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/swaps'; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps', data: body }); + if (body.swaps && body.swaps.length > 0) { + body.swaps = common.sortDescByKey(body.swaps, 'initiation_time'); + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps after Sort', data: body }); + } + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'List Swaps Received' }); + res.status(200).json(body.swaps); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'List Swaps Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; + +export const swap = (req, res, next) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Getting Swap Information..' }); + options = common.getSwapServerOptions(req); + if (options.url === '') { + const errMsg = 'Loop Server URL is missing in the configuration.'; + const err = common.handleError({ statusCode: 500, message: 'Get Swap Error', error: errMsg }, 'Loop', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } + options.url = options.url + '/v1/loop/swap/' + req.params.id; + request(options).then((body) => { + logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swap', data: body }); + logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Loop', msg: 'Swap Information Received' }); + res.status(200).json(body); + }).catch((errRes) => { + const err = common.handleError(errRes, 'Loop', 'Get Swap Error', req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + }); +}; diff --git a/server/models/config.model.ts b/server/models/config.model.ts new file mode 100644 index 00000000..45cb15e9 --- /dev/null +++ b/server/models/config.model.ts @@ -0,0 +1,73 @@ +export class CommonSelectedNode { + + constructor( + public options?: any, + public ln_server_url?: string, + public macaroon_path?: string, + public ln_api_password?: string, + public swap_server_url?: string, + public boltz_server_url?: string, + public config_path?: string, + public rtl_conf_file_path?: string, + public swap_macaroon_path?: string, + public boltz_macaroon_path?: string, + public bitcoind_config_path?: string, + public channel_backup_path?: string, + public log_level?: string, + public log_file?: string, + public index?: string, + public ln_node?: string, + public ln_implementation?: string, + public user_persona?: string, + public theme_mode?: string, + public theme_color?: string, + public fiat_conversion?: boolean, + public currency_unit?: string, + public ln_version?: string, + public api_version?: string, + public enable_offers?: boolean + ) { } + +} + +export class AuthenticationConfiguration { + + constructor( + public configPath?: string, + public swapMacaroonPath?: string, + public boltzMacaroonPath?: string + ) { } + +} + +export class NodeSettingsConfiguration { + + constructor( + public userPersona?: string, + public themeMode?: string, + public themeColor?: string, + public fiatConversion?: boolean, + public currencyUnit?: string, + public bitcoindConfigPath?: string, + public logLevel?: string, + public lnServerUrl?: string, + public swapServerUrl?: string, + public boltzServerUrl?: string, + public channelBackupPath?: string, + public enableOffers?: boolean + ) { } + +} + +export class LogJSONObj { + + constructor( + public level?: string, + public msg?: string, + public data?: string | any | any[], + public error?: string | any, + public fileName?: string, + public selectedNode?: CommonSelectedNode + ) { } + +} diff --git a/server/models/database.model.ts b/server/models/database.model.ts new file mode 100644 index 00000000..388bbb81 --- /dev/null +++ b/server/models/database.model.ts @@ -0,0 +1,46 @@ +export enum CollectionsEnum { + OFFERS = 'Offers' +} + +export type Collections = { + Offers: Offer[]; +} + +export enum OfferFieldsEnum { + BOLT12 = 'bolt12', + AMOUNTMSAT = 'amountmSat', + TITLE = 'title', + VENDOR = 'vendor', + DESCRIPTION = 'description' +} + +export const CollectionFieldsEnum = { ...OfferFieldsEnum }; + +export class Offer { + + constructor( + public bolt12: string, + public amountmSat: number, + public title: string, + public vendor?: string, + public description?: string, + public lastUpdatedAt?: number + ) { } + +} + +export const validateOffer = (documentToValidate): any => { + if (!documentToValidate.hasOwnProperty(CollectionFieldsEnum.BOLT12)) { + return ({ isValid: false, error: CollectionFieldsEnum.BOLT12 + 'is mandatory.' }); + } + if (!documentToValidate.hasOwnProperty(CollectionFieldsEnum.AMOUNTMSAT)) { + return ({ isValid: false, error: CollectionFieldsEnum.AMOUNTMSAT + 'is mandatory.' }); + } + if (!documentToValidate.hasOwnProperty(CollectionFieldsEnum.TITLE)) { + return ({ isValid: false, error: CollectionFieldsEnum.TITLE + 'is mandatory.' }); + } + if ((typeof documentToValidate[CollectionFieldsEnum.AMOUNTMSAT] !== 'number')) { + return ({ isValid: false, error: CollectionFieldsEnum.AMOUNTMSAT + 'should be a number.' }); + } + return ({ isValid: true }); +}; diff --git a/server/routes/c-lightning/balance.ts b/server/routes/c-lightning/balance.ts new file mode 100644 index 00000000..13df5166 --- /dev/null +++ b/server/routes/c-lightning/balance.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getBalance } from '../../controllers/c-lightning/balance.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getBalance); + +export default router; diff --git a/server/routes/c-lightning/channels.ts b/server/routes/c-lightning/channels.ts new file mode 100644 index 00000000..d5020ddc --- /dev/null +++ b/server/routes/c-lightning/channels.ts @@ -0,0 +1,16 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listChannels, openChannel, setChannelFee, closeChannel, getLocalRemoteBalance, listForwards } from '../../controllers/c-lightning/channels.js'; + +const router = Router(); + +router.get('/listChannels', isAuthenticated, listChannels); +router.post('/', isAuthenticated, openChannel); +router.post('/setChannelFee', isAuthenticated, setChannelFee); +router.delete('/:channelId', isAuthenticated, closeChannel); + +router.get('/localremotebalance', isAuthenticated, getLocalRemoteBalance); +router.get('/listForwards', isAuthenticated, listForwards); + +export default router; diff --git a/server/routes/c-lightning/fees.ts b/server/routes/c-lightning/fees.ts new file mode 100644 index 00000000..7cc0a1c1 --- /dev/null +++ b/server/routes/c-lightning/fees.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getFees } from '../../controllers/c-lightning/fees.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getFees); + +export default router; diff --git a/server/routes/c-lightning/getInfo.ts b/server/routes/c-lightning/getInfo.ts new file mode 100644 index 00000000..16df206c --- /dev/null +++ b/server/routes/c-lightning/getInfo.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getInfo } from '../../controllers/c-lightning/getInfo.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getInfo); + +export default router; diff --git a/server/routes/c-lightning/index.ts b/server/routes/c-lightning/index.ts new file mode 100644 index 00000000..3d830b99 --- /dev/null +++ b/server/routes/c-lightning/index.ts @@ -0,0 +1,35 @@ +import exprs from 'express'; +const { Router } = exprs; +import infoCLRoutes from './getInfo.js'; +import feesCLRoutes from './fees.js'; +import balanceCLRoutes from './balance.js'; +import channelsCLRoutes from './channels.js'; +import invoicesCLRoutes from './invoices.js'; +import onChainCLRoutes from './onchain.js'; +import paymentsCLRoutes from './payments.js'; +import peersCLRoutes from './peers.js'; +import networkCLRoutes from './network.js'; +import messageCLRoutes from './message.js'; +import offersCLRoutes from './offers.js'; + +const router = Router(); + +const clRoutes = [ + { path: '/getinfo', route: infoCLRoutes }, + { path: '/fees', route: feesCLRoutes }, + { path: '/balance', route: balanceCLRoutes }, + { path: '/channels', route: channelsCLRoutes }, + { path: '/invoices', route: invoicesCLRoutes }, + { path: '/onchain', route: onChainCLRoutes }, + { path: '/payments', route: paymentsCLRoutes }, + { path: '/peers', route: peersCLRoutes }, + { path: '/network', route: networkCLRoutes }, + { path: '/message', route: messageCLRoutes }, + { path: '/offers', route: offersCLRoutes } +]; + +clRoutes.forEach((route) => { + router.use(route.path, route.route); +}); + +export default router; diff --git a/server/routes/c-lightning/invoices.ts b/server/routes/c-lightning/invoices.ts new file mode 100644 index 00000000..98be93a6 --- /dev/null +++ b/server/routes/c-lightning/invoices.ts @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listInvoices, addInvoice, deleteExpiredInvoice } from '../../controllers/c-lightning/invoices.js'; + +const router = Router(); + +router.get('/', isAuthenticated, listInvoices); +router.post('/', isAuthenticated, addInvoice); +router.delete('/', isAuthenticated, deleteExpiredInvoice); + +export default router; diff --git a/server/routes/c-lightning/message.ts b/server/routes/c-lightning/message.ts new file mode 100644 index 00000000..ab3ab23b --- /dev/null +++ b/server/routes/c-lightning/message.ts @@ -0,0 +1,11 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { signMessage, verifyMessage } from '../../controllers/c-lightning/message.js'; + +const router = Router(); + +router.post('/sign', isAuthenticated, signMessage); +router.post('/verify', isAuthenticated, verifyMessage); + +export default router; diff --git a/server/routes/c-lightning/network.ts b/server/routes/c-lightning/network.ts new file mode 100644 index 00000000..2c3d0a97 --- /dev/null +++ b/server/routes/c-lightning/network.ts @@ -0,0 +1,13 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getRoute, listNode, listChannel, feeRates } from '../../controllers/c-lightning/network.js'; + +const router = Router(); + +router.get('/getRoute/:destPubkey/:amount', isAuthenticated, getRoute); +router.get('/listNode/:id', isAuthenticated, listNode); +router.get('/listChannel/:channelShortId', isAuthenticated, listChannel); +router.get('/feeRates/:feeRateStyle', isAuthenticated, feeRates); + +export default router; diff --git a/server/routes/c-lightning/offers.ts b/server/routes/c-lightning/offers.ts new file mode 100644 index 00000000..99c4a946 --- /dev/null +++ b/server/routes/c-lightning/offers.ts @@ -0,0 +1,16 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listOfferBookmarks, deleteOfferBookmark, listOffers, disableOffer, createOffer, fetchOfferInvoice } from '../../controllers/c-lightning/offers.js'; + +const router = Router(); + +router.get('/offerbookmarks', isAuthenticated, listOfferBookmarks); +router.delete('/offerbookmark/:offerStr', isAuthenticated, deleteOfferBookmark); + +router.get('/', isAuthenticated, listOffers); +router.post('/', isAuthenticated, createOffer); +router.post('/fetchOfferInvoice', isAuthenticated, fetchOfferInvoice); +router.delete('/:offerID', isAuthenticated, disableOffer); + +export default router; diff --git a/server/routes/c-lightning/onchain.ts b/server/routes/c-lightning/onchain.ts new file mode 100644 index 00000000..7eee7e9c --- /dev/null +++ b/server/routes/c-lightning/onchain.ts @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getNewAddress, onChainWithdraw, getUTXOs } from '../../controllers/c-lightning/onchain.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getNewAddress); +router.post('/', isAuthenticated, onChainWithdraw); +router.get('/utxos/', isAuthenticated, getUTXOs); + +export default router; diff --git a/server/routes/c-lightning/payments.ts b/server/routes/c-lightning/payments.ts new file mode 100644 index 00000000..83d5791f --- /dev/null +++ b/server/routes/c-lightning/payments.ts @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listPayments, decodePayment, postPayment } from '../../controllers/c-lightning/payments.js'; + +const router = Router(); + +router.get('/', isAuthenticated, listPayments); +router.get('/decode/:payReq', isAuthenticated, decodePayment); +router.post('/', isAuthenticated, postPayment); + +export default router; diff --git a/server/routes/c-lightning/peers.ts b/server/routes/c-lightning/peers.ts new file mode 100644 index 00000000..2c19afa4 --- /dev/null +++ b/server/routes/c-lightning/peers.ts @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getPeers, postPeer, deletePeer } from '../../controllers/c-lightning/peers.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getPeers); +router.post('/', isAuthenticated, postPeer); +router.delete('/:peerId', isAuthenticated, deletePeer); + +export default router; diff --git a/server/routes/eclair/channels.ts b/server/routes/eclair/channels.ts new file mode 100644 index 00000000..aa4de77b --- /dev/null +++ b/server/routes/eclair/channels.ts @@ -0,0 +1,14 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getChannels, getChannelStats, openChannel, updateChannelRelayFee, closeChannel } from '../../controllers/eclair/channels.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getChannels); +router.get('/stats', isAuthenticated, getChannelStats); +router.post('/', isAuthenticated, openChannel); +router.post('/updateRelayFee', isAuthenticated, updateChannelRelayFee); +router.delete('/', isAuthenticated, closeChannel); + +export default router; diff --git a/server/routes/eclair/fees.ts b/server/routes/eclair/fees.ts new file mode 100644 index 00000000..48778cad --- /dev/null +++ b/server/routes/eclair/fees.ts @@ -0,0 +1,11 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getFees, getPayments } from '../../controllers/eclair/fees.js'; + +const router = Router(); + +router.get('/fees', isAuthenticated, getFees); +router.get('/payments', isAuthenticated, getPayments); + +export default router; diff --git a/server/routes/eclair/getInfo.ts b/server/routes/eclair/getInfo.ts new file mode 100644 index 00000000..5870da24 --- /dev/null +++ b/server/routes/eclair/getInfo.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getInfo } from '../../controllers/eclair/getInfo.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getInfo); + +export default router; diff --git a/server/routes/eclair/index.ts b/server/routes/eclair/index.ts new file mode 100644 index 00000000..5551a663 --- /dev/null +++ b/server/routes/eclair/index.ts @@ -0,0 +1,29 @@ +import exprs from 'express'; +const { Router } = exprs; +import infoECLRoutes from './getInfo.js'; +import feesECLRoutes from './fees.js'; +import channelsECLRoutes from './channels.js'; +import onChainECLRoutes from './onchain.js'; +import peersECLRoutes from './peers.js'; +import invoicesECLRoutes from './invoices.js'; +import paymentsECLRoutes from './payments.js'; +import networkECLRoutes from './network.js'; + +const router = Router(); + +const eclRoutes = [ + { path: '/getinfo', route: infoECLRoutes }, + { path: '/fees', route: feesECLRoutes }, + { path: '/channels', route: channelsECLRoutes }, + { path: '/onchain', route: onChainECLRoutes }, + { path: '/peers', route: peersECLRoutes }, + { path: '/invoices', route: invoicesECLRoutes }, + { path: '/payments', route: paymentsECLRoutes }, + { path: '/network', route: networkECLRoutes } +]; + +eclRoutes.forEach((route) => { + router.use(route.path, route.route); +}); + +export default router; diff --git a/server/routes/eclair/invoices.ts b/server/routes/eclair/invoices.ts new file mode 100644 index 00000000..a2af20f5 --- /dev/null +++ b/server/routes/eclair/invoices.ts @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listInvoices, getInvoice, createInvoice } from '../../controllers/eclair/invoices.js'; + +const router = Router(); + +router.get('/', isAuthenticated, listInvoices); +router.get('/:paymentHash', isAuthenticated, getInvoice); +router.post('/', isAuthenticated, createInvoice); + +export default router; diff --git a/server/routes/eclair/network.ts b/server/routes/eclair/network.ts new file mode 100644 index 00000000..42df8997 --- /dev/null +++ b/server/routes/eclair/network.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getNodes } from '../../controllers/eclair/network.js'; + +const router = Router(); + +router.get('/nodes/:id', isAuthenticated, getNodes); + +export default router; diff --git a/server/routes/eclair/onchain.ts b/server/routes/eclair/onchain.ts new file mode 100644 index 00000000..e124ba92 --- /dev/null +++ b/server/routes/eclair/onchain.ts @@ -0,0 +1,13 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getNewAddress, getBalance, getTransactions, sendFunds } from '../../controllers/eclair/onchain.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getNewAddress); +router.get('/balance/', isAuthenticated, getBalance); +router.get('/transactions/', isAuthenticated, getTransactions); +router.post('/', isAuthenticated, sendFunds); + +export default router; diff --git a/server/routes/eclair/payments.ts b/server/routes/eclair/payments.ts new file mode 100644 index 00000000..07b01d59 --- /dev/null +++ b/server/routes/eclair/payments.ts @@ -0,0 +1,13 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { queryPaymentRoute, decodePayment, getSentPaymentsInformation, postPayment } from '../../controllers/eclair/payments.js'; + +const router = Router(); + +router.get('/route/', isAuthenticated, queryPaymentRoute); +router.get('/decode/:invoice', isAuthenticated, decodePayment); +router.post('/getsentinfos', isAuthenticated, getSentPaymentsInformation); +router.post('/', isAuthenticated, postPayment); + +export default router; diff --git a/server/routes/eclair/peers.ts b/server/routes/eclair/peers.ts new file mode 100644 index 00000000..95f9744b --- /dev/null +++ b/server/routes/eclair/peers.ts @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getPeers, connectPeer, deletePeer } from '../../controllers/eclair/peers.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getPeers); +router.post('/', isAuthenticated, connectPeer); +router.delete('/:nodeId', isAuthenticated, deletePeer); + +export default router; diff --git a/server/routes/lnd/balance.ts b/server/routes/lnd/balance.ts new file mode 100644 index 00000000..43e7b15f --- /dev/null +++ b/server/routes/lnd/balance.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getBlockchainBalance } from '../../controllers/lnd/balance.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getBlockchainBalance); + +export default router; diff --git a/server/routes/lnd/channels.ts b/server/routes/lnd/channels.ts new file mode 100644 index 00000000..d7f2745c --- /dev/null +++ b/server/routes/lnd/channels.ts @@ -0,0 +1,16 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getAllChannels, getPendingChannels, getClosedChannels, postChannel, postTransactions, closeChannel, postChanPolicy } from '../../controllers/lnd/channels.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getAllChannels); +router.get('/pending', isAuthenticated, getPendingChannels); +router.get('/closed', isAuthenticated, getClosedChannels); +router.post('/', isAuthenticated, postChannel); +router.post('/transactions', isAuthenticated, postTransactions); +router.delete('/:channelPoint', isAuthenticated, closeChannel); +router.post('/chanPolicy', isAuthenticated, postChanPolicy); + +export default router; diff --git a/server/routes/lnd/channelsBackup.ts b/server/routes/lnd/channelsBackup.ts new file mode 100644 index 00000000..520e7ea8 --- /dev/null +++ b/server/routes/lnd/channelsBackup.ts @@ -0,0 +1,13 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getBackup, getRestoreList, postBackupVerify, postRestore } from '../../controllers/lnd/channelsBackup.js'; + +const router = Router(); + +router.get('/:channelPoint', isAuthenticated, getBackup); +router.get('/restore/list', isAuthenticated, getRestoreList); +router.post('/verify/:channelPoint', isAuthenticated, postBackupVerify); +router.post('/restore/:channelPoint', isAuthenticated, postRestore); + +export default router; diff --git a/server/routes/lnd/fees.ts b/server/routes/lnd/fees.ts new file mode 100644 index 00000000..5ca59e51 --- /dev/null +++ b/server/routes/lnd/fees.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getFees } from '../../controllers/lnd/fees.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getFees); + +export default router; diff --git a/server/routes/lnd/getInfo.ts b/server/routes/lnd/getInfo.ts new file mode 100644 index 00000000..475588e4 --- /dev/null +++ b/server/routes/lnd/getInfo.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getInfo } from '../../controllers/lnd/getInfo.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getInfo); + +export default router; diff --git a/server/routes/lnd/graph.ts b/server/routes/lnd/graph.ts new file mode 100644 index 00000000..eddfe0d6 --- /dev/null +++ b/server/routes/lnd/graph.ts @@ -0,0 +1,16 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getDescribeGraph, getGraphInfo, getAliasesForPubkeys, getGraphNode, getGraphEdge, getRemoteFeePolicy, getQueryRoutes } from '../../controllers/lnd/graph.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getDescribeGraph); +router.get('/info', isAuthenticated, getGraphInfo); +router.get('/nodes', isAuthenticated, getAliasesForPubkeys); +router.get('/node/:pubKey', isAuthenticated, getGraphNode); +router.get('/edge/:chanid', isAuthenticated, getGraphEdge); +router.get('/edge/:chanid/:localPubkey', isAuthenticated, getRemoteFeePolicy); +router.get('/routes/:destPubkey/:amount', isAuthenticated, getQueryRoutes); + +export default router; diff --git a/server/routes/lnd/index.ts b/server/routes/lnd/index.ts new file mode 100644 index 00000000..e151d9df --- /dev/null +++ b/server/routes/lnd/index.ts @@ -0,0 +1,41 @@ +import exprs from 'express'; +const { Router } = exprs; +import infoRoutes from './getInfo.js'; +import channelsRoutes from './channels.js'; +import channelsBackupRoutes from './channelsBackup.js'; +import peersRoutes from './peers.js'; +import feesRoutes from './fees.js'; +import balanceRoutes from './balance.js'; +import walletRoutes from './wallet.js'; +import graphRoutes from './graph.js'; +import newAddressRoutes from './newAddress.js'; +import transactionsRoutes from './transactions.js'; +import paymentsRoutes from './payments.js'; +import invoiceRoutes from './invoices.js'; +import switchRoutes from './switch.js'; +import messageRoutes from './message.js'; + +const router = Router(); + +const lndRoutes = [ + { path: '/getinfo', route: infoRoutes }, + { path: '/channels', route: channelsRoutes }, + { path: '/channels/backup', route: channelsBackupRoutes }, + { path: '/peers', route: peersRoutes }, + { path: '/fees', route: feesRoutes }, + { path: '/balance', route: balanceRoutes }, + { path: '/wallet', route: walletRoutes }, + { path: '/network', route: graphRoutes }, + { path: '/newaddress', route: newAddressRoutes }, + { path: '/transactions', route: transactionsRoutes }, + { path: '/payments', route: paymentsRoutes }, + { path: '/invoices', route: invoiceRoutes }, + { path: '/switch', route: switchRoutes }, + { path: '/message', route: messageRoutes } +]; + +lndRoutes.forEach((route) => { + router.use(route.path, route.route); +}); + +export default router; diff --git a/server/routes/lnd/invoices.ts b/server/routes/lnd/invoices.ts new file mode 100644 index 00000000..b0e70e0c --- /dev/null +++ b/server/routes/lnd/invoices.ts @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { listInvoices, getInvoice, addInvoice } from '../../controllers/lnd/invoices.js'; + +const router = Router(); + +router.get('/', isAuthenticated, listInvoices); +router.get('/:rHashStr', isAuthenticated, getInvoice); +router.post('/', isAuthenticated, addInvoice); + +export default router; diff --git a/server/routes/lnd/message.ts b/server/routes/lnd/message.ts new file mode 100644 index 00000000..7ed00221 --- /dev/null +++ b/server/routes/lnd/message.ts @@ -0,0 +1,11 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { signMessage, verifyMessage } from '../../controllers/lnd/message.js'; + +const router = Router(); + +router.post('/sign', isAuthenticated, signMessage); +router.post('/verify', isAuthenticated, verifyMessage); + +export default router; diff --git a/server/routes/lnd/newAddress.ts b/server/routes/lnd/newAddress.ts new file mode 100644 index 00000000..0d6142ec --- /dev/null +++ b/server/routes/lnd/newAddress.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getNewAddress } from '../../controllers/lnd/newAddress.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getNewAddress); + +export default router; diff --git a/server/routes/lnd/payments.ts b/server/routes/lnd/payments.ts new file mode 100644 index 00000000..6d99114a --- /dev/null +++ b/server/routes/lnd/payments.ts @@ -0,0 +1,13 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { decodePayment, decodePayments, getPayments, getAllLightningTransactions } from '../../controllers/lnd/payments.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getPayments); +router.get('/alltransactions', isAuthenticated, getAllLightningTransactions); +router.get('/decode/:payRequest', isAuthenticated, decodePayment); +router.post('/', isAuthenticated, decodePayments); + +export default router; diff --git a/server/routes/lnd/peers.ts b/server/routes/lnd/peers.ts new file mode 100644 index 00000000..91dfbd34 --- /dev/null +++ b/server/routes/lnd/peers.ts @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getPeers, postPeer, deletePeer } from '../../controllers/lnd/peers.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getPeers); +router.post('/', isAuthenticated, postPeer); +router.delete('/:peerPubKey', isAuthenticated, deletePeer); + +export default router; diff --git a/server/routes/lnd/switch.ts b/server/routes/lnd/switch.ts new file mode 100644 index 00000000..1c766bcd --- /dev/null +++ b/server/routes/lnd/switch.ts @@ -0,0 +1,10 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { forwardingHistory } from '../../controllers/lnd/switch.js'; + +const router = Router(); + +router.post('/', isAuthenticated, forwardingHistory); + +export default router; diff --git a/server/routes/lnd/transactions.ts b/server/routes/lnd/transactions.ts new file mode 100644 index 00000000..b037be00 --- /dev/null +++ b/server/routes/lnd/transactions.ts @@ -0,0 +1,11 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getTransactions, postTransactions } from '../../controllers/lnd/transactions.js'; + +const router = Router(); + +router.get('/', isAuthenticated, getTransactions); +router.post('/', isAuthenticated, postTransactions); + +export default router; diff --git a/server/routes/lnd/wallet.ts b/server/routes/lnd/wallet.ts new file mode 100644 index 00000000..e0210005 --- /dev/null +++ b/server/routes/lnd/wallet.ts @@ -0,0 +1,17 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { genSeed, updateSelNodeOptions, getUTXOs, operateWallet, bumpFee, labelTransaction, leaseUTXO, releaseUTXO } from '../../controllers/lnd/wallet.js'; + +const router = Router(); + +router.get('/genseed/:passphrase?', isAuthenticated, genSeed); +router.get('/updateSelNodeOptions', isAuthenticated, updateSelNodeOptions); +router.get('/getUTXOs', isAuthenticated, getUTXOs); +router.post('/wallet/:operation', isAuthenticated, operateWallet); +router.post('/bumpfee', isAuthenticated, bumpFee); +router.post('/label', isAuthenticated, labelTransaction); +router.post('/lease', isAuthenticated, leaseUTXO); +router.post('/release', isAuthenticated, releaseUTXO); + +export default router; diff --git a/server/routes/shared/RTLConf.ts b/server/routes/shared/RTLConf.ts new file mode 100644 index 00000000..bb3eccda --- /dev/null +++ b/server/routes/shared/RTLConf.ts @@ -0,0 +1,20 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getRTLConfigInitial, getRTLConfig, updateUISettings, update2FASettings, getConfig, getFile, updateSelectedNode, updateDefaultNode, updateServiceSettings, updateSSO, getCurrencyRates } from '../../controllers/shared/RTLConf.js'; + +const router = Router(); + +router.get('/rtlconfinit', getRTLConfigInitial); +router.get('/rtlconf', isAuthenticated, getRTLConfig); +router.post('/', isAuthenticated, updateUISettings); +router.post('/update2FA', isAuthenticated, update2FASettings); +router.get('/config/:nodeType', isAuthenticated, getConfig); +router.get('/file', isAuthenticated, getFile); +router.post('/updateSelNode', updateSelectedNode); +router.post('/updateDefaultNode', updateDefaultNode); +router.post('/updateServiceSettings', updateServiceSettings); +router.post('/updateSSO', updateSSO); +router.get('/rates', getCurrencyRates); + +export default router; diff --git a/server/routes/shared/authenticate.ts b/server/routes/shared/authenticate.ts new file mode 100644 index 00000000..e4785b1f --- /dev/null +++ b/server/routes/shared/authenticate.ts @@ -0,0 +1,12 @@ +import exprs from 'express'; +const { Router } = exprs; +import { authenticateUser, verifyToken, resetPassword, logoutUser } from '../../controllers/shared/authenticate.js'; + +const router = Router(); + +router.post('/', authenticateUser); +router.post('/token', verifyToken); +router.post('/reset', resetPassword); +router.get('/logout', logoutUser); + +export default router; diff --git a/server/routes/shared/boltz.ts b/server/routes/shared/boltz.ts new file mode 100644 index 00000000..ef6c8e22 --- /dev/null +++ b/server/routes/shared/boltz.ts @@ -0,0 +1,17 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { getInfo, getServiceInfo, listSwaps, getSwapInfo, createSwap, createReverseSwap, createChannel, deposit } from '../../controllers/shared/boltz.js'; + +const router = Router(); + +router.get('/info', isAuthenticated, getInfo); +router.get('/serviceInfo', isAuthenticated, getServiceInfo); +router.get('/listSwaps', isAuthenticated, listSwaps); +router.get('/swapInfo/:swapId', isAuthenticated, getSwapInfo); +router.post('/createSwap', isAuthenticated, createSwap); +router.post('/createReverseSwap', isAuthenticated, createReverseSwap); +router.post('/createChannel', isAuthenticated, createChannel); +router.post('/deposit', isAuthenticated, deposit); + +export default router; diff --git a/server/routes/shared/index.ts b/server/routes/shared/index.ts new file mode 100644 index 00000000..fce3c789 --- /dev/null +++ b/server/routes/shared/index.ts @@ -0,0 +1,21 @@ +import exprs from 'express'; +const { Router } = exprs; +import authenticateRoutes from './authenticate.js'; +import boltzRoutes from './boltz.js'; +import loopRoutes from './loop.js'; +import RTLConfRoutes from './RTLConf.js'; + +const router = Router(); + +const sharedRoutes = [ + { path: '/authenticate', route: authenticateRoutes }, + { path: '/boltz', route: boltzRoutes }, + { path: '/loop', route: loopRoutes }, + { path: '/conf', route: RTLConfRoutes } +]; + +sharedRoutes.forEach((route) => { + router.use(route.path, route.route); +}); + +export default router; diff --git a/server/routes/shared/loop.ts b/server/routes/shared/loop.ts new file mode 100644 index 00000000..21f82ec4 --- /dev/null +++ b/server/routes/shared/loop.ts @@ -0,0 +1,19 @@ +import exprs from 'express'; +const { Router } = exprs; +import { isAuthenticated } from '../../utils/authCheck.js'; +import { loopInTerms, loopInQuote, loopInTermsAndQuotes, loopIn, loopOutTerms, loopOutQuote, loopOutTermsAndQuotes, loopOut, swaps, swap } from '../../controllers/shared/loop.js'; + +const router = Router(); + +router.get('/in/terms', isAuthenticated, loopInTerms); +router.get('/in/quote/:amount', isAuthenticated, loopInQuote); +router.get('/in/termsAndQuotes', isAuthenticated, loopInTermsAndQuotes); +router.post('/in', isAuthenticated, loopIn); +router.get('/out/terms', isAuthenticated, loopOutTerms); +router.get('/out/quote/:amount', isAuthenticated, loopOutQuote); +router.get('/out/termsAndQuotes', isAuthenticated, loopOutTermsAndQuotes); +router.post('/out', isAuthenticated, loopOut); +router.get('/swaps', isAuthenticated, swaps); +router.get('/swap/:id', isAuthenticated, swap); + +export default router; diff --git a/server/utils/app.ts b/server/utils/app.ts new file mode 100644 index 00000000..2937678a --- /dev/null +++ b/server/utils/app.ts @@ -0,0 +1,100 @@ +import express from 'express'; +import sessions from 'express-session'; +import cookieParser from 'cookie-parser'; +import bodyParser from 'body-parser'; +import { join, dirname } from 'path'; +import { fileURLToPath } from 'url'; +import CORS from './cors.js'; +import CSRF from './csrf.js'; + +import sharedRoutes from '../routes/shared/index.js'; +import lndRoutes from '../routes/lnd/index.js'; +import clRoutes from '../routes/c-lightning/index.js'; +import eclRoutes from '../routes/eclair/index.js'; +import { Common, CommonService } from './common.js'; +import { Logger, LoggerService } from './logger.js'; +import { Config, ConfigService } from './config.js'; +import { CLWSClient, CLWebSocketClient } from '../controllers/c-lightning/webSocketClient.js'; +import { ECLWSClient, ECLWebSocketClient } from '../controllers/eclair/webSocketClient.js'; +import { LNDWSClient, LNDWebSocketClient } from '../controllers/lnd/webSocketClient.js'; + +const ONE_DAY = 1000 * 60 * 60 * 24; + +export class ExpressApplication { + + public app = express(); + public logger: LoggerService = Logger; + public common: CommonService = Common; + public config: ConfigService = Config; + public eclWsClient: ECLWebSocketClient = ECLWSClient; + public clWsClient: CLWebSocketClient = CLWSClient; + public lndWsClient: LNDWebSocketClient = LNDWSClient; + public directoryName = dirname(fileURLToPath(import.meta.url)); + + constructor() { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'DEBUG', fileName: 'App', msg: 'Starting Express Application.' }); + this.app.set('trust proxy', true); + this.app.use(sessions({ secret: this.common.secret_key, saveUninitialized: true, cookie: { secure: false, maxAge: ONE_DAY }, resave: false })); + this.app.use(cookieParser(this.common.secret_key)); + this.app.use(bodyParser.json({ limit: '25mb' })); + this.app.use(bodyParser.urlencoded({ extended: false, limit: '25mb' })); + + this.loadConfiguration(); + this.setCORS(); + this.setCSRF(); + this.setApplicationRoutes(); + } + + public getApp = () => this.app; + + public loadConfiguration = () => { + this.config.setServerConfiguration(); + } + + public setCORS = () => { CORS.mount(this.app); } + + public setCSRF = () => { CSRF.mount(this.app); } + + public setApplicationRoutes = () => { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'DEBUG', fileName: 'App', msg: 'Setting up Application Routes.' }); + + this.app.use(this.common.baseHref + '/api', sharedRoutes); + this.app.use(this.common.baseHref + '/api/lnd', lndRoutes); + this.app.use(this.common.baseHref + '/api/cl', clRoutes); + this.app.use(this.common.baseHref + '/api/ecl', eclRoutes); + this.app.use(this.common.baseHref, express.static(join(this.directoryName, '../..', 'frontend'))); + this.app.use((req, res, next) => { + res.cookie('XSRF-TOKEN', req.csrfToken ? req.csrfToken() : ''); + res.sendFile(join(this.directoryName, '../..', 'frontend', 'index.html')); + }); + this.app.use((err, req, res, next) => this.handleApplicationErrors(err, res)); + } + + public handleApplicationErrors = (err, res) => { + switch (err.code) { + case 'EACCES': + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'Server requires elevated privileges' }); + res.status(406).send('Server requires elevated privileges.'); + break; + case 'EADDRINUSE': + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'Server is already in use' }); + res.status(409).send('Server is already in use.'); + break; + case 'ECONNREFUSED': + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'Server is down/locked' }); + res.status(401).send('Server is down/locked.'); + break; + case 'EBADCSRFTOKEN': + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'Invalid CSRF token. Form tempered.' }); + res.status(403).send('Invalid CSRF token, form tempered.'); + break; + default: + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'App', msg: 'DEFUALT ERROR', error: err }); + res.status(400).send(JSON.stringify(err)); + break; + } + }; + +} + +export default ExpressApplication; diff --git a/server/utils/authCheck.ts b/server/utils/authCheck.ts new file mode 100644 index 00000000..f0f55b7c --- /dev/null +++ b/server/utils/authCheck.ts @@ -0,0 +1,44 @@ +import jwt from 'jsonwebtoken'; +import csurf from 'csurf/index.js'; +import { Common, CommonService } from './common.js'; + +const common: CommonService = Common; +const csurfProtection = csurf({ cookie: true }); + +export const isAuthenticated = (req, res, next) => { + try { + const token = req.headers.authorization.split(' ')[1]; + jwt.verify(token, common.secret_key); + next(); + } catch (error) { + const errMsg = 'Authentication Failed! Please Login First!'; + const err = common.handleError({ statusCode: 401, message: 'Authentication Error', error: errMsg }, 'AuthCheck', errMsg, req.session.selectedNode); + return res.status(err.statusCode).json({ message: err.message, error: err.error }); + } +}; + +export const verifyWSUser = (info, next) => { + const headers = JSON.parse(JSON.stringify(info.req.headers)); + const protocols = !info.req.headers['sec-websocket-protocol'] ? [] : info.req.headers['sec-websocket-protocol'].split(',').map((s) => s.trim()); + const jwToken = (protocols && protocols.length > 0) ? protocols[0] : ''; + if (!jwToken || jwToken === '') { + next(false, 401, 'Authentication Failed! Please Login First!'); + } else { + jwt.verify(jwToken, common.secret_key, (verificationErr) => { + if (verificationErr) { + next(false, 401, 'Authentication Failed! Please Login First!'); + } else { + const updatedReq = JSON.parse(JSON.stringify(info.req)); + updatedReq['cookies'] = !headers || !headers.cookie ? {} : '{"' + headers.cookie.replace(/ /g, '').replace(/;/g, '","').trim().replace(/[=]/g, '":"') + '"}'; + updatedReq['cookies'] = JSON.parse(updatedReq['cookies']); + csurfProtection(updatedReq, null, (err) => { + if (err) { + next(false, 403, 'Invalid CSRF token!'); + } else { + next(true); + } + }); + } + }); + } +}; diff --git a/server/utils/common.ts b/server/utils/common.ts new file mode 100644 index 00000000..f8a541b9 --- /dev/null +++ b/server/utils/common.ts @@ -0,0 +1,469 @@ +/* eslint-disable no-console */ +import * as fs from 'fs'; +import { join, dirname, isAbsolute, resolve, sep } from 'path'; +import { fileURLToPath } from 'url'; +import * as crypto from 'crypto'; +import request from 'request-promise'; +import { Logger, LoggerService } from './logger.js'; +import { CommonSelectedNode } from '../models/config.model.js'; + +export class CommonService { + + public logger: LoggerService = Logger; + public nodes: CommonSelectedNode[] = []; + public initSelectedNode: CommonSelectedNode = null; + public rtl_conf_file_path = ''; + public port = 3000; + public host = null; + public rtl_pass = ''; + public flg_allow_password_update = true; + public rtl_secret2fa = ''; + public rtl_sso = 0; + public rtl_cookie_path = ''; + public logout_redirect_link = ''; + public api_version = ''; + public secret_key = crypto.randomBytes(64).toString('hex'); + public read_dummy_data = false; + public baseHref = '/rtl'; + private dummy_data_array_from_file = []; + private MONTHS = [{ name: 'JAN', days: 31 }, { name: 'FEB', days: 28 }, { name: 'MAR', days: 31 }, { name: 'APR', days: 30 }, { name: 'MAY', days: 31 }, { name: 'JUN', days: 30 }, { name: 'JUL', days: 31 }, { name: 'AUG', days: 31 }, { name: 'SEP', days: 30 }, { name: 'OCT', days: 31 }, { name: 'NOV', days: 30 }, { name: 'DEC', days: 31 }]; + + constructor() { } + + public getSwapServerOptions = (req) => { + const swapOptions = { + url: req.session.selectedNode.swap_server_url, + rejectUnauthorized: false, + json: true, + headers: { 'Grpc-Metadata-macaroon': '' } + }; + if (req.session.selectedNode.swap_macaroon_path) { + try { + swapOptions.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(req.session.selectedNode.swap_macaroon_path, 'loop.macaroon')).toString('hex') }; + } catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Loop macaroon Error: ' + JSON.stringify(err)); + } + } + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Swap Options: ' + JSON.stringify(swapOptions)); + return swapOptions; + }; + + public getBoltzServerOptions = (req) => { + const boltzOptions = { + url: req.session.selectedNode.boltz_server_url, + rejectUnauthorized: false, + json: true, + headers: { 'Grpc-Metadata-macaroon': '' } + }; + if (req.session.selectedNode.boltz_macaroon_path) { + try { + boltzOptions.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(req.session.selectedNode.boltz_macaroon_path, 'admin.macaroon')).toString('hex') }; + } catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Boltz macaroon Error: ' + JSON.stringify(err)); + } + } + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Boltz Options: ' + JSON.stringify(boltzOptions)); + return boltzOptions; + }; + + public getOptions = (req) => { + if (req.session.selectedNode && req.session.selectedNode.options) { + req.session.selectedNode.options.method = (req.session.selectedNode.ln_implementation && req.session.selectedNode.ln_implementation.toUpperCase() !== 'ECL') ? 'GET' : 'POST'; + delete req.session.selectedNode.options.form; + req.session.selectedNode.options.qs = {}; + return req.session.selectedNode.options; + } + return this.handleError({ statusCode: 401, message: 'Session expired after a day\'s inactivity.' }, 'Session Expired', 'Session Expiry Error', this.initSelectedNode); + }; + + public updateSelectedNodeOptions = (req) => { + if (!req.session.selectedNode) { + req.session.selectedNode = {}; + } + req.session.selectedNode.options = { + url: '', + rejectUnauthorized: false, + json: true, + form: null + }; + try { + if (req.session.selectedNode && req.session.selectedNode.ln_implementation) { + switch (req.session.selectedNode.ln_implementation.toUpperCase()) { + case 'CLT': + req.session.selectedNode.options.headers = { macaroon: Buffer.from(fs.readFileSync(join(req.session.selectedNode.macaroon_path, 'access.macaroon'))).toString('base64') }; + break; + + case 'ECL': + req.session.selectedNode.options.headers = { authorization: 'Basic ' + Buffer.from(':' + req.session.selectedNode.ln_api_password).toString('base64') }; + break; + + default: + req.session.selectedNode.options.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(req.session.selectedNode.macaroon_path, 'admin.macaroon')).toString('hex') }; + break; + } + } + if (req.session.selectedNode) { + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Updated Node Options: ' + JSON.stringify(req.session.selectedNode.options)); + } + return { status: 200, message: 'Updated Successfully!' }; + } catch (err) { + req.session.selectedNode.options = { + url: '', + rejectUnauthorized: false, + json: true, + form: null + }; + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Common Update Selected Node Options Error:' + JSON.stringify(err)); + return { status: 502, message: err }; + } + }; + + public setOptions = (req) => { + if (this.nodes[0].options && this.nodes[0].options.headers) { return; } + if (this.nodes && this.nodes.length > 0) { + this.nodes.forEach((node) => { + node.options = { + url: '', + rejectUnauthorized: false, + json: true, + form: null + }; + try { + if (node.ln_implementation) { + switch (node.ln_implementation.toUpperCase()) { + case 'CLT': + node.options.headers = { macaroon: Buffer.from(fs.readFileSync(join(node.macaroon_path, 'access.macaroon'))).toString('base64') }; + break; + + case 'ECL': + node.options.headers = { authorization: 'Basic ' + Buffer.from(':' + node.ln_api_password).toString('base64') }; + break; + + default: + node.options.headers = { 'Grpc-Metadata-macaroon': fs.readFileSync(join(node.macaroon_path, 'admin.macaroon')).toString('hex') }; + break; + } + } + } catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Common Set Options Error:' + JSON.stringify(err)); + node.options = { + url: '', + rejectUnauthorized: false, + json: true, + form: '' + }; + } + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Set Node Options: ' + JSON.stringify(node.options)); + }); + this.updateSelectedNodeOptions(req); + } + }; + + public findNode = (selNodeIndex) => this.nodes.find((node) => node.index === selNodeIndex); + + public replaceNode = (req, newNode) => { + const foundIndex = this.nodes.findIndex((node) => node.index === req.session.selectedNode.index); + this.nodes.splice(foundIndex, 1, newNode); + req.session.selectedNode = this.findNode(req.session.selectedNode.index); + }; + + public convertTimeToEpoch = (timeToConvert: Date) => Math.floor(timeToConvert.getTime() / 1000); + + public convertTimestampToTime = (num) => { + const myDate = new Date(+num * 1000); + let days = myDate.getDate().toString(); + days = +days < 10 ? '0' + days : days; + let hours = myDate.getHours().toString(); + hours = +hours < 10 ? '0' + hours : hours; + let minutes = myDate.getMinutes().toString(); + minutes = +minutes < 10 ? '0' + minutes : minutes; + let seconds = myDate.getSeconds().toString(); + seconds = +seconds < 10 ? '0' + seconds : seconds; + return days + '/' + this.MONTHS[myDate.getMonth()].name + '/' + myDate.getFullYear() + ' ' + hours + ':' + minutes + ':' + seconds; + }; + + public sortAscByKey = (array, key) => array.sort((a, b) => { + const x = +a[key]; + const y = +b[key]; + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + }); + + public sortAscByStrKey = (array, key) => array.sort((a, b) => { + const x = a[key] ? a[key].toUpperCase() : ''; + const y = b[key] ? b[key].toUpperCase() : ''; + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + }); + + public sortDescByKey = (array, key) => { + const temp = array.sort((a, b) => { + const x = +a[key] ? +a[key] : 0; + const y = +b[key] ? +b[key] : 0; + return (x > y) ? -1 : ((x < y) ? 1 : 0); + }); + return temp; + }; + + public sortDescByStrKey = (array, key) => { + const temp = array.sort((a, b) => { + const x = a[key] ? a[key].toUpperCase() : ''; + const y = b[key] ? b[key].toUpperCase() : ''; + return (x > y) ? -1 : ((x < y) ? 1 : 0); + }); + return temp; + }; + + public newestOnTop = (array, key, value) => { + const newlyAddedRecord = array.splice(array.findIndex((item) => item[key] === value), 1); + array.unshift(newlyAddedRecord[0]); + return array; + }; + + public handleError = (errRes, fileName, errMsg, selectedNode: CommonSelectedNode) => { + const err = JSON.parse(JSON.stringify(errRes)); + if (!selectedNode) { selectedNode = { ln_implementation: '' }; } + switch (selectedNode.ln_implementation) { + case 'LND': + if (err.options && err.options.headers && err.options.headers['Grpc-Metadata-macaroon']) { + delete err.options.headers['Grpc-Metadata-macaroon']; + } + if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) { + delete err.response.request.headers['Grpc-Metadata-macaroon']; + } + break; + + case 'CLT': + if (err.options && err.options.headers && err.options.headers.macaroon) { + delete err.options.headers.macaroon; + } + if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) { + delete err.response.request.headers.macaroon; + } + break; + + case 'ECL': + if (err.options && err.options.headers && err.options.headers.authorization) { + delete err.options.headers.authorization; + } + if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) { + delete err.response.request.headers.authorization; + } + break; + + default: + if (err.options && err.options.headers) { delete err.options.headers; } + break; + } + const msgStr = '\r\n[' + new Date().toLocaleString() + '] ERROR: ' + fileName + ' => ' + errMsg + ': ' + (typeof err === 'object' ? JSON.stringify(err) : (typeof err === 'string') ? err : 'Unknown Error'); + console.error(msgStr); + if (selectedNode.log_file && selectedNode.log_file !== '') { fs.appendFile(selectedNode.log_file, msgStr, () => { }); } + const newErrorObj = { + statusCode: err.statusCode ? err.statusCode : err.status ? err.status : (err.error && err.error.code && err.error.code === 'ECONNREFUSED') ? 503 : 500, + message: (err.error && err.error.message) ? err.error.message : err.message ? err.message : errMsg, + error: ( + (err.error && err.error.error && err.error.error.error && typeof err.error.error.error === 'string') ? err.error.error.error : + (err.error && err.error.error && typeof err.error.error === 'string') ? err.error.error : + (err.error && err.error.error && err.error.error.message && typeof err.error.error.message === 'string') ? err.error.error.message : + (err.error && err.error.message && typeof err.error.message === 'string') ? err.error.message : + (err.error && typeof err.error === 'string') ? err.error : + (err.message && typeof err.message === 'string') ? err.message : (typeof err === 'string') ? err : 'Unknown Error' + ) + }; + return newErrorObj; + }; + + public getRequestIP = (req) => ((typeof req.headers['x-forwarded-for'] === 'string' && req.headers['x-forwarded-for'].split(',').shift()) || + req.ip || + req.connection.remoteAddress || + req.socket.remoteAddress || + (req.connection.socket ? req.connection.socket.remoteAddress : null)); + + public getDummyData = (dataKey, lnImplementation) => { + const dummyDataFile = this.rtl_conf_file_path + sep + 'ECLDummyData.log'; + return new Promise((resolve, reject) => { + if (this.dummy_data_array_from_file.length === 0) { + fs.readFile(dummyDataFile, 'utf8', (err, data) => { + if (err) { + if (err.code === 'ENOENT') { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Dummy data file does not exist!'); + } else { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Getting dummy data failed!'); + } + } else { + this.dummy_data_array_from_file = data.split('\n'); + resolve(this.filterData(dataKey, lnImplementation)); + } + }); + } else { + resolve(this.filterData(dataKey, lnImplementation)); + } + }); + }; + + public readCookie = () => { + const exists = fs.existsSync(this.rtl_cookie_path); + if (exists) { + try { + return fs.readFileSync(this.rtl_cookie_path, 'utf-8'); + } catch (err) { + this.logger.log({ selectedNode: this.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while reading cookie: \n' + err }); + throw new Error(err); + } + } else { + try { + const directoryName = dirname(this.rtl_cookie_path); + this.createDirectory(directoryName); + fs.writeFileSync(this.rtl_cookie_path, crypto.randomBytes(64).toString('hex')); + return fs.readFileSync(this.rtl_cookie_path, 'utf-8'); + } catch (err) { + this.logger.log({ selectedNode: this.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while reading the cookie: \n' + err }); + throw new Error(err); + } + } + } + + public refreshCookie = () => { + try { + fs.writeFileSync(this.rtl_cookie_path, crypto.randomBytes(64).toString('hex')); + } catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Something went wrong while refreshing cookie: \n' + err); + throw new Error(err); + } + } + + public createDirectory = (directoryName) => { + const initDir = isAbsolute(directoryName) ? sep : ''; + directoryName.split(sep).reduce((parentDir, childDir) => { + const curDir = resolve(parentDir, childDir); + try { + if (!fs.existsSync(curDir)) { + fs.mkdirSync(curDir); + } + } catch (err) { + if (err.code !== 'EEXIST') { + if (err.code === 'ENOENT') { + throw new Error(`ENOENT: No such file or directory, mkdir '${directoryName}'. Ensure that the path separator is '${sep}'`); + } else { + throw err; + } + } + } + return curDir; + }, initDir); + }; + + public replacePasswordWithHash = (multiPassHashed) => { + this.rtl_conf_file_path = process.env.RTL_CONFIG_PATH ? process.env.RTL_CONFIG_PATH : join(dirname(fileURLToPath(import.meta.url)), '../..'); + try { + const RTLConfFile = this.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + config.multiPassHashed = multiPassHashed; + delete config.multiPass; + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Please note that, RTL has encrypted the plaintext password into its corresponding hash.'); + return config.multiPassHashed; + } catch (err) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Password hashing failed!'); + } + } + + public getAllNodeAllChannelBackup = (node) => { + const channel_backup_file = node.channel_backup_path + sep + 'channel-all.bak'; + const options = { + url: node.ln_server_url + '/v1/channels/backup', + rejectUnauthorized: false, + json: true, + headers: { 'Grpc-Metadata-macaroon': fs.readFileSync(node.macaroon_path + '/admin.macaroon').toString('hex') } + }; + request(options).then((body) => { + fs.writeFile(channel_backup_file, JSON.stringify(body), (err) => { + if (err) { + if (node.ln_node) { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Channel Backup Failed for Node ' + node.ln_node + ': ' + JSON.stringify(err)); + } else { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Channel Backup Error: ' + JSON.stringify(err)); + } + } else { + if (node.ln_node) { + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Channel Backup Successful for Node: ' + JSON.stringify(node.ln_node)); + } else { + console.log('\r\n[' + new Date().toLocaleString() + '] INFO: Common => Channel Backup Successful'); + } + } + }); + }, (err) => { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Channel Backup Response Error: ' + JSON.stringify(err)); + fs.writeFile(channel_backup_file, '', (writeErr) => { + console.error('\r\n[' + new Date().toLocaleString() + '] ERROR: Common => Channel Backup Response Empty File Write Error: ' + JSON.stringify(writeErr)); + }); + }); + }; + + public isVersionCompatible = (currentVersion, checkVersion) => { + if (currentVersion) { + const versionsArr = currentVersion.trim().replace('v', '').split('-')[0].split('.') || []; + const checkVersionsArr = checkVersion.split('.'); + return (+versionsArr[0] > +checkVersionsArr[0]) || + (+versionsArr[0] === +checkVersionsArr[0] && +versionsArr[1] > +checkVersionsArr[1]) || + (+versionsArr[0] === +checkVersionsArr[0] && +versionsArr[1] === +checkVersionsArr[1] && +versionsArr[2] >= +checkVersionsArr[2]); + } + return false; + } + + public getMonthDays = (selMonth, selYear) => ((selMonth === 1 && selYear % 4 === 0) ? (this.MONTHS[selMonth].days + 1) : this.MONTHS[selMonth].days); + + public logEnvVariables = (req) => { + const selNode = req.session.selectedNode; + if (selNode && selNode.index) { + if (fs.existsSync(selNode.log_file)) { fs.writeFile(selNode.log_file, '', () => { }); } + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'PORT: ' + this.port }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'HOST: ' + this.host }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'SSO: ' + this.rtl_sso }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'DEFAULT NODE INDEX: ' + selNode.index }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'INDEX: ' + selNode.index }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LN NODE: ' + selNode.ln_node }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LN IMPLEMENTATION: ' + selNode.ln_implementation }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'FIAT CONVERSION: ' + selNode.fiat_conversion }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'CURRENCY UNIT: ' + selNode.currency_unit }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LN SERVER URL: ' + selNode.ln_server_url }); + this.logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Config Setup Variable', msg: 'LOGOUT REDIRECT LINK: ' + this.logout_redirect_link + '\r\n' }); + } + } + + public filterData = (dataKey, lnImplementation) => { + let search_string = ''; + if (lnImplementation === 'ECL') { + switch (dataKey) { + case 'GetInfo': search_string = 'INFO: GetInfo => Get Info Response: '; break; + case 'Fees': search_string = 'INFO: Fees => Fee Response: '; break; + case 'Payments': search_string = 'INFO: Fees => Payments Response: '; break; + case 'Invoices': search_string = 'INFO: Invoice => Invoices List Received: '; break; + case 'OnChainBalance': search_string = 'INFO: Onchain => Balance Received: '; break; + case 'Peers': search_string = 'INFO: Peers => Peers with Alias: '; break; + case 'Channels': search_string = 'INFO: Channels => Simplified Channels with Alias: '; break; + default: search_string = 'Random Line'; break; + } + } else if (lnImplementation === 'CLT') { + switch (dataKey) { + case 'GetInfo': search_string = 'DEBUG: GetInfo => Node Information. '; break; + case 'Fees': search_string = 'DEBUG: Fees => Fee Received. '; break; + case 'Payments': search_string = 'DEBUG: Payments => Payment List Received: '; break; + case 'Invoices': search_string = 'DEBUG: Invoice => Invoices List Received. '; break; + case 'ChannelBalance': search_string = 'DEBUG: Channels => Local Remote Balance. '; break; + case 'Peers': search_string = 'DEBUG: Peers => Peers with Alias: '; break; + case 'Channels': search_string = 'DEBUG: Channels => List Channels: '; break; + case 'Balance': search_string = 'DEBUG: Balance => Balance Received. '; break; + case 'ForwardingHistory': search_string = 'DEBUG: Channels => Forwarding History Received: '; break; + case 'UTXOs': search_string = 'DEBUG: OnChain => List Funds Received. '; break; + case 'FeeRateperkb': search_string = 'DEBUG: Network => Network Fee Rates Received for perkb. '; break; + case 'FeeRateperkw': search_string = 'DEBUG: Network => Network Fee Rates Received for perkw. '; break; + default: search_string = 'Random Line'; break; + } + } + const foundDataLine = this.dummy_data_array_from_file.find((dataItem) => dataItem.includes(search_string)); + const dataStr = foundDataLine ? foundDataLine.substring((foundDataLine.indexOf(search_string)) + search_string.length) : '{}'; + return JSON.parse(dataStr); + } + +} + +export const Common = new CommonService(); diff --git a/server/utils/config.ts b/server/utils/config.ts new file mode 100644 index 00000000..f15164bc --- /dev/null +++ b/server/utils/config.ts @@ -0,0 +1,319 @@ +import * as os from 'os'; +import * as fs from 'fs'; +import { join, dirname, sep } from 'path'; +import { fileURLToPath } from 'url'; +import * as crypto from 'crypto'; +import ini from 'ini'; +import parseHocon from 'hocon-parser'; +import { Common, CommonService } from './common.js'; +import { Logger, LoggerService } from './logger.js'; + +export class ConfigService { + + private platform = os.platform(); + private hash = crypto.createHash('sha256'); + private errMsg = ''; + private directoryName = dirname(fileURLToPath(import.meta.url)); + private common: CommonService = Common; + private logger: LoggerService = Logger; + + constructor() { } + + private setDefaultConfig = () => { + const homeDir = os.userInfo().homedir; + let macaroonPath = ''; + let configPath = ''; + let channelBackupPath = ''; + switch (this.platform) { + case 'win32': + macaroonPath = homeDir + '\\AppData\\Local\\Lnd\\data\\chain\\bitcoin\\mainnet'; + configPath = homeDir + '\\AppData\\Local\\Lnd\\lnd.conf'; + channelBackupPath = homeDir + '\\backup\\node-1'; + break; + case 'darwin': + macaroonPath = homeDir + '/Library/Application Support/Lnd/data/chain/bitcoin/mainnet'; + configPath = homeDir + '/Library/Application Support/Lnd/lnd.conf'; + channelBackupPath = homeDir + '/backup/node-1'; + break; + case 'linux': + macaroonPath = homeDir + '/.lnd/data/chain/bitcoin/mainnet'; + configPath = homeDir + '/.lnd/lnd.conf'; + channelBackupPath = homeDir + '/backup/node-1'; + break; + default: + macaroonPath = ''; + configPath = ''; + channelBackupPath = ''; + break; + } + return { + multiPass: 'password', + port: '3000', + defaultNodeIndex: 1, + SSO: { + rtlSSO: 0, + rtlCookiePath: '', + logoutRedirectLink: '' + }, + nodes: [ + { + index: 1, + lnNode: 'Node 1', + lnImplementation: 'LND', + Authentication: { + macaroonPath: macaroonPath, + configPath: configPath + }, + Settings: { + userPersona: 'MERCHANT', + themeMode: 'DAY', + themeColor: 'PURPLE', + channelBackupPath: channelBackupPath, + logLevel: 'ERROR', + lnServerUrl: 'https://localhost:8080', + fiatConversion: false + } + } + ] + }; + }; + + private normalizePort = (val) => { + const port = parseInt(val, 10); + if (isNaN(port)) { + return val; + } + if (port >= 0) { + return port; + } + return false; + }; + + private updateLogByLevel = () => { + let updateLogFlag = false; + this.common.rtl_conf_file_path = process.env.RTL_CONFIG_PATH ? process.env.RTL_CONFIG_PATH : join(this.directoryName, '../..'); + try { + const RTLConfFile = this.common.rtl_conf_file_path + sep + 'RTL-Config.json'; + const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8')); + config.nodes.forEach((node) => { + if (node.Settings.hasOwnProperty('enableLogging')) { + updateLogFlag = true; + node.Settings.logLevel = node.Settings.enableLogging ? 'INFO' : 'ERROR'; + delete node.Settings.enableLogging; + } + }); + if (updateLogFlag) { + fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8'); + } + } catch (err) { + this.errMsg = this.errMsg + '\nLog level update failed!'; + } + }; + + private validateNodeConfig = (config) => { + if ((+process.env.RTL_SSO === 0) || (typeof process.env.RTL_SSO === 'undefined' && +config.SSO.rtlSSO === 0)) { + if (process.env.APP_PASSWORD && process.env.APP_PASSWORD.trim() !== '') { + this.common.rtl_pass = this.hash.update(process.env.APP_PASSWORD).digest('hex'); + this.common.flg_allow_password_update = false; + } else if (config.multiPassHashed && config.multiPassHashed !== '') { + this.common.rtl_pass = config.multiPassHashed; + } else if (config.multiPass && config.multiPass !== '') { + this.common.rtl_pass = this.common.replacePasswordWithHash(this.hash.update(config.multiPass).digest('hex')); + } else { + this.errMsg = this.errMsg + '\nNode Authentication can be set with multiPass only. Please set multiPass in RTL-Config.json'; + } + this.common.rtl_secret2fa = config.secret2fa; + } else { + if ((process.env.APP_PASSWORD && process.env.APP_PASSWORD.trim() !== '') || (config.multiPass && config.multiPass.trim() !== '') || (config.multiPassHashed && config.multiPassHashed.trim() !== '')) { + this.errMsg = this.errMsg + '\nRTL Password cannot be set with SSO. Please set SSO as 0 or remove password.'; + } + } + this.common.port = (process.env.PORT) ? this.normalizePort(process.env.PORT) : (config.port) ? this.normalizePort(config.port) : 3000; + this.common.host = (process.env.HOST) ? process.env.HOST : (config.host) ? config.host : null; + if (config.nodes && config.nodes.length > 0) { + config.nodes.forEach((node, idx) => { + this.common.nodes[idx] = {}; + this.common.nodes[idx].index = node.index; + this.common.nodes[idx].ln_node = node.lnNode; + this.common.nodes[idx].ln_implementation = (process.env.LN_IMPLEMENTATION) ? process.env.LN_IMPLEMENTATION : node.lnImplementation ? node.lnImplementation : 'LND'; + if (this.common.nodes[idx].ln_implementation !== 'ECL' && process.env.MACAROON_PATH && process.env.MACAROON_PATH.trim() !== '') { + this.common.nodes[idx].macaroon_path = process.env.MACAROON_PATH; + } else if (this.common.nodes[idx].ln_implementation !== 'ECL' && node.Authentication && node.Authentication.macaroonPath && node.Authentication.macaroonPath.trim() !== '') { + this.common.nodes[idx].macaroon_path = node.Authentication.macaroonPath; + } else if (this.common.nodes[idx].ln_implementation !== 'ECL') { + this.errMsg = 'Please set macaroon path for node index ' + node.index + ' in RTL-Config.json!'; + } + + if (this.common.nodes[idx].ln_implementation === 'ECL') { + if (process.env.LN_API_PASSWORD) { + this.common.nodes[idx].ln_api_password = process.env.LN_API_PASSWORD; + } else if (node.Authentication && node.Authentication.lnApiPassword) { + this.common.nodes[idx].ln_api_password = node.Authentication.lnApiPassword; + } else { + this.common.nodes[idx].ln_api_password = ''; + } + } + if (process.env.CONFIG_PATH) { + this.common.nodes[idx].config_path = process.env.CONFIG_PATH; + } else if (node.Authentication && node.Authentication.configPath) { + this.common.nodes[idx].config_path = node.Authentication.configPath; + } else { + this.common.nodes[idx].config_path = ''; + } + if (this.common.nodes[idx].ln_implementation === 'ECL' && this.common.nodes[idx].ln_api_password === '' && this.common.nodes[idx].config_path !== '') { + try { + const exists = fs.existsSync(this.common.nodes[idx].config_path); + if (exists) { + try { + const configFile = fs.readFileSync(this.common.nodes[idx].config_path, 'utf-8'); + const iniParsed = ini.parse(configFile); + this.common.nodes[idx].ln_api_password = iniParsed['eclair.api.password'] ? iniParsed['eclair.api.password'] : parseHocon(configFile).eclair.api.password; + } catch (err) { + this.errMsg = this.errMsg + '\nSomething went wrong while reading config file: \n' + err; + } + } else { + this.errMsg = this.errMsg + '\nInvalid config path: ' + this.common.nodes[idx].config_path; + } + } catch (err) { + this.errMsg = this.errMsg + '\nUnable to read config file: \n' + err; + } + } + if (this.common.nodes[idx].ln_implementation === 'ECL' && this.common.nodes[idx].ln_api_password === '') { + this.errMsg = this.errMsg + '\nPlease set config path Or api password for node index ' + node.index + ' in RTL-Config.json! It is mandatory for Eclair authentication!'; + } + + if (process.env.LN_SERVER_URL && process.env.LN_SERVER_URL.trim() !== '') { + this.common.nodes[idx].ln_server_url = process.env.LN_SERVER_URL.endsWith('/v1') ? process.env.LN_SERVER_URL.slice(0, -3) : process.env.LN_SERVER_URL; + } else if (process.env.LND_SERVER_URL && process.env.LND_SERVER_URL.trim() !== '') { + this.common.nodes[idx].ln_server_url = process.env.LND_SERVER_URL.endsWith('/v1') ? process.env.LND_SERVER_URL.slice(0, -3) : process.env.LND_SERVER_URL; + } else if (node.Settings.lnServerUrl && node.Settings.lnServerUrl.trim() !== '') { + this.common.nodes[idx].ln_server_url = node.Settings.lnServerUrl.endsWith('/v1') ? node.Settings.lnServerUrl.slice(0, -3) : node.Settings.lnServerUrl; + } else if (node.Settings.lndServerUrl && node.Settings.lndServerUrl.trim() !== '') { + this.common.nodes[idx].ln_server_url = node.Settings.lndServerUrl.endsWith('/v1') ? node.Settings.lndServerUrl.slice(0, -3) : node.Settings.lndServerUrl; + } else { + this.errMsg = this.errMsg + '\nPlease set LN Server URL for node index ' + node.index + ' in RTL-Config.json!'; + } + this.common.nodes[idx].user_persona = node.Settings.userPersona ? node.Settings.userPersona : 'MERCHANT'; + this.common.nodes[idx].theme_mode = node.Settings.themeMode ? node.Settings.themeMode : 'DAY'; + this.common.nodes[idx].theme_color = node.Settings.themeColor ? node.Settings.themeColor : 'PURPLE'; + this.common.nodes[idx].log_level = node.Settings.logLevel ? node.Settings.logLevel : 'ERROR'; + this.common.nodes[idx].fiat_conversion = node.Settings.fiatConversion ? !!node.Settings.fiatConversion : false; + if (this.common.nodes[idx].fiat_conversion) { + this.common.nodes[idx].currency_unit = node.Settings.currencyUnit ? node.Settings.currencyUnit : 'USD'; + } + if (process.env.SWAP_SERVER_URL && process.env.SWAP_SERVER_URL.trim() !== '') { + this.common.nodes[idx].swap_server_url = process.env.SWAP_SERVER_URL.endsWith('/v1') ? process.env.SWAP_SERVER_URL.slice(0, -3) : process.env.SWAP_SERVER_URL; + this.common.nodes[idx].swap_macaroon_path = process.env.SWAP_MACAROON_PATH; + } else if (node.Settings.swapServerUrl && node.Settings.swapServerUrl.trim() !== '') { + this.common.nodes[idx].swap_server_url = node.Settings.swapServerUrl.endsWith('/v1') ? node.Settings.swapServerUrl.slice(0, -3) : node.Settings.swapServerUrl; + this.common.nodes[idx].swap_macaroon_path = node.Authentication.swapMacaroonPath ? node.Authentication.swapMacaroonPath : ''; + } else { + this.common.nodes[idx].swap_server_url = ''; + this.common.nodes[idx].swap_macaroon_path = ''; + } + if (process.env.BOLTZ_SERVER_URL && process.env.BOLTZ_SERVER_URL.trim() !== '') { + this.common.nodes[idx].boltz_server_url = process.env.BOLTZ_SERVER_URL.endsWith('/v1') ? process.env.BOLTZ_SERVER_URL.slice(0, -3) : process.env.BOLTZ_SERVER_URL; + this.common.nodes[idx].boltz_macaroon_path = process.env.BOLTZ_MACAROON_PATH; + } else if (node.Settings.boltzServerUrl && node.Settings.boltzServerUrl.trim() !== '') { + this.common.nodes[idx].boltz_server_url = node.Settings.boltzServerUrl.endsWith('/v1') ? node.Settings.boltzServerUrl.slice(0, -3) : node.Settings.boltzServerUrl; + this.common.nodes[idx].boltz_macaroon_path = node.Authentication.boltzMacaroonPath ? node.Authentication.boltzMacaroonPath : ''; + } else { + this.common.nodes[idx].boltz_server_url = ''; + this.common.nodes[idx].boltz_macaroon_path = ''; + } + this.common.nodes[idx].enable_offers = process.env.ENABLE_OFFERS ? process.env.ENABLE_OFFERS : (node.Settings.enableOffers) ? node.Settings.enableOffers : false; + this.common.nodes[idx].bitcoind_config_path = process.env.BITCOIND_CONFIG_PATH ? process.env.BITCOIND_CONFIG_PATH : (node.Settings.bitcoindConfigPath) ? node.Settings.bitcoindConfigPath : ''; + this.common.nodes[idx].channel_backup_path = process.env.CHANNEL_BACKUP_PATH ? process.env.CHANNEL_BACKUP_PATH : (node.Settings.channelBackupPath) ? node.Settings.channelBackupPath : this.common.rtl_conf_file_path + sep + 'channels-backup' + sep + 'node-' + node.index; + try { + this.common.createDirectory(this.common.nodes[idx].channel_backup_path); + const exists = fs.existsSync(this.common.nodes[idx].channel_backup_path + sep + 'channel-all.bak'); + if (!exists) { + try { + if (this.common.nodes[idx].ln_implementation === 'LND') { + this.common.getAllNodeAllChannelBackup(this.common.nodes[idx]); + } else { + const createStream = fs.createWriteStream(this.common.nodes[idx].channel_backup_path + sep + 'channel-all.bak'); + createStream.end(); + } + } catch (err) { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while creating backup file: \n' + err }); + } + } + } catch (err) { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while creating the backup directory: \n' + err }); + } + this.common.nodes[idx].log_file = this.common.rtl_conf_file_path + '/logs/RTL-Node-' + node.index + '.log'; + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'DEBUG', fileName: 'Config', msg: 'Node Information', data: this.common.nodes[idx] }); + const log_file = this.common.nodes[idx].log_file; + if (fs.existsSync(log_file)) { + fs.writeFile(log_file, '', () => { }); + } else { + try { + const directoryName = dirname(log_file); + this.common.createDirectory(directoryName); + const createStream = fs.createWriteStream(log_file); + createStream.end(); + } catch (err) { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while creating log file ' + log_file + ': \n' + err }); + } + } + }); + } + this.setSSOParams(config); + if (this.errMsg && this.errMsg.trim() !== '') { throw new Error(this.errMsg); } + }; + + private setSSOParams = (config) => { + if (process.env.RTL_SSO) { + this.common.rtl_sso = +process.env.RTL_SSO; + } else if (config.SSO && config.SSO.rtlSSO) { + this.common.rtl_sso = config.SSO.rtlSSO; + } + + if (process.env.RTL_COOKIE_PATH) { + this.common.rtl_cookie_path = process.env.RTL_COOKIE_PATH; + } else if (config.SSO && config.SSO.rtlCookiePath) { + this.common.rtl_cookie_path = config.SSO.rtlCookiePath; + } else { + this.common.rtl_cookie_path = ''; + } + + if (process.env.LOGOUT_REDIRECT_LINK) { + this.common.logout_redirect_link = process.env.LOGOUT_REDIRECT_LINK; + } else if (config.SSO && config.SSO.logoutRedirectLink) { + this.common.logout_redirect_link = config.SSO.logoutRedirectLink; + } + + if (+this.common.rtl_sso && (!this.common.rtl_cookie_path || this.common.rtl_cookie_path.trim() === '')) { + this.errMsg = 'Please set rtlCookiePath value for single sign on option!'; + } + }; + + private setSelectedNode = (config) => { + if (config.defaultNodeIndex) { + this.common.initSelectedNode = this.common.findNode(config.defaultNodeIndex); + } else { + this.common.initSelectedNode = this.common.findNode(this.common.nodes[0].index); + } + }; + + public setServerConfiguration = () => { + try { + this.common.rtl_conf_file_path = (process.env.RTL_CONFIG_PATH) ? process.env.RTL_CONFIG_PATH : join(this.directoryName, '../..'); + const confFileFullPath = this.common.rtl_conf_file_path + sep + 'RTL-Config.json'; + if (!fs.existsSync(confFileFullPath)) { + fs.writeFileSync(confFileFullPath, JSON.stringify(this.setDefaultConfig())); + } + const config = JSON.parse(fs.readFileSync(confFileFullPath, 'utf-8')); + this.updateLogByLevel(); + this.validateNodeConfig(config); + this.setSelectedNode(config); + } catch (err) { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'ERROR', fileName: 'Config', msg: 'Something went wrong while configuring the node server: \n' + err }); + throw new Error(err); + } + }; + +} + +export const Config = new ConfigService(); diff --git a/server/utils/cors.ts b/server/utils/cors.ts new file mode 100644 index 00000000..dd25031e --- /dev/null +++ b/server/utils/cors.ts @@ -0,0 +1,26 @@ +import { Application } from 'express'; +import { Logger, LoggerService } from './logger.js'; + +class CORS { + + public logger: LoggerService = Logger; + + public mount(app: Application): Application { + this.logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'CORS', msg: 'Setting up CORS.' }); + app.use((req, res, next) => { + res.setHeader('Cache-Control', 'no-cache'); + res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization, filePath'); + res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE, OPTIONS'); + if (process.env.NODE_ENV === 'development') { + res.setHeader('Access-Control-Allow-Credentials', true); + res.setHeader('Access-Control-Allow-Origin', req.headers.origin ? req.headers.origin : req.headers.host ? req.headers.host : ''); + } + next(); + }); + + return app; + }; + +} + +export default new CORS; diff --git a/server/utils/csrf.ts b/server/utils/csrf.ts new file mode 100644 index 00000000..4b2d3514 --- /dev/null +++ b/server/utils/csrf.ts @@ -0,0 +1,20 @@ +import csurf from 'csurf/index.js'; +import { Application } from 'express'; +import { Logger, LoggerService } from './logger.js'; + +class CSRF { + + public csrfProtection = csurf({ cookie: true }); + public logger: LoggerService = Logger; + + public mount(app: Application): Application { + this.logger.log({ selectedNode: null, level: 'DEBUG', fileName: 'CSRF', msg: 'Setting up CSRF.' }); + if (process.env.NODE_ENV !== 'development') { + app.use((req, res, next) => this.csrfProtection(req, res, next)); + } + return app; + }; + +} + +export default new CSRF; diff --git a/server/utils/database.ts b/server/utils/database.ts new file mode 100644 index 00000000..757855b5 --- /dev/null +++ b/server/utils/database.ts @@ -0,0 +1,212 @@ +import * as fs from 'fs'; +import { join, dirname, sep } from 'path'; +import { fileURLToPath } from 'url'; +import { Common, CommonService } from '../utils/common.js'; +import { Logger, LoggerService } from '../utils/logger.js'; +import { Collections, CollectionsEnum, validateOffer } from '../models/database.model.js'; +import { CommonSelectedNode } from '../models/config.model.js'; + +export class DatabaseService { + + public common: CommonService = Common; + public logger: LoggerService = Logger; + public dbDirectory = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'database'); + public nodeDatabase: { id?: { adapter: DatabaseAdapter, data: Collections } } = {}; + + constructor() { } + + loadDatabase(selectedNode: CommonSelectedNode) { + try { + if (!this.nodeDatabase[selectedNode.index]) { + this.nodeDatabase[selectedNode.index] = { adapter: null, data: null }; + } + this.nodeDatabase[selectedNode.index].adapter = new DatabaseAdapter(this.dbDirectory, 'rtldb', selectedNode); + this.nodeDatabase[selectedNode.index].data = this.nodeDatabase[selectedNode.index].adapter.fetchData(); + } catch (err) { + this.logger.log({ selectedNode: selectedNode, level: 'ERROR', fileName: 'Database', msg: 'Database Load Error', error: err }); + } + } + + create(selectedNode: CommonSelectedNode, collectionName: CollectionsEnum, newDocument: any) { + return new Promise((resolve, reject) => { + try { + if (!selectedNode || !selectedNode.index) { + reject(new Error('Selected Node Config Not Found.')); + } + const validationRes = this.validateDocument(CollectionsEnum.OFFERS, newDocument); + if (!validationRes.isValid) { + reject(validationRes.error); + } else { + this.nodeDatabase[selectedNode.index].data[collectionName].push(newDocument); + this.saveDatabase(+selectedNode.index); + resolve(newDocument); + } + } catch (errRes) { + reject(errRes); + } + }); + } + + update(selectedNode: CommonSelectedNode, collectionName: CollectionsEnum, updatedDocument: any, documentFieldName: string, documentFieldValue: string) { + return new Promise((resolve, reject) => { + try { + if (!selectedNode || !selectedNode.index) { + reject(new Error('Selected Node Config Not Found.')); + } + let foundDocIdx = -1; + let foundDoc = null; + if (this.nodeDatabase[selectedNode.index].data[collectionName]) { + foundDocIdx = this.nodeDatabase[selectedNode.index].data[collectionName].findIndex((document: any) => document[documentFieldName] === documentFieldValue); + foundDoc = foundDocIdx > -1 ? JSON.parse(JSON.stringify(this.nodeDatabase[selectedNode.index].data[collectionName][foundDocIdx])) : null; + } + if (foundDocIdx > -1 && foundDoc) { + for (const docKey in updatedDocument) { + if (Object.prototype.hasOwnProperty.call(updatedDocument, docKey)) { + foundDoc[docKey] = updatedDocument[docKey]; + } + } + updatedDocument = foundDoc; + } + const validationRes = this.validateDocument(CollectionsEnum.OFFERS, updatedDocument); + if (!validationRes.isValid) { + reject(validationRes.error); + } else { + if (foundDocIdx > -1) { + this.nodeDatabase[selectedNode.index].data[collectionName].splice(foundDocIdx, 1, updatedDocument); + } else { + if (!this.nodeDatabase[selectedNode.index].data[collectionName]) { + this.nodeDatabase[selectedNode.index].data[collectionName] = []; + } + this.nodeDatabase[selectedNode.index].data[collectionName].push(updatedDocument); + } + this.saveDatabase(+selectedNode.index); + resolve(updatedDocument); + } + } catch (errRes) { + reject(errRes); + } + }); + } + + find(selectedNode: CommonSelectedNode, collectionName: CollectionsEnum, documentFieldName?: string, documentFieldValue?: string) { + return new Promise((resolve, reject) => { + try { + if (!selectedNode || !selectedNode.index) { + reject(new Error('Selected Node Config Not Found.')); + } + if (documentFieldName && documentFieldValue) { + resolve(this.nodeDatabase[selectedNode.index].data[collectionName].find((document: any) => document[documentFieldName] === documentFieldValue)); + } else { + resolve(this.nodeDatabase[selectedNode.index].data[collectionName]); + } + } catch (errRes) { + reject(errRes); + } + }); + } + + destroy(selectedNode: CommonSelectedNode, collectionName: CollectionsEnum, documentFieldName: string, documentFieldValue: string) { + return new Promise((resolve, reject) => { + try { + if (!selectedNode || !selectedNode.index) { + reject(new Error('Selected Node Config Not Found.')); + } + const removeDocIdx = this.nodeDatabase[selectedNode.index].data[collectionName].findIndex((document) => document[documentFieldName] === documentFieldValue); + if (removeDocIdx > -1) { + this.nodeDatabase[selectedNode.index].data[collectionName].splice(removeDocIdx, 1); + } else { + reject(new Error('Unable to delete, document not found.')); + } + this.saveDatabase(+selectedNode.index); + resolve(documentFieldValue); + } catch (errRes) { + reject(errRes); + } + }); + } + + validateDocument(collectionName: CollectionsEnum, documentToValidate: any) { + switch (collectionName) { + case CollectionsEnum.OFFERS: + return validateOffer(documentToValidate); + + default: + return ({ isValid: false, error: 'Collection does not exist' }); + } + } + + saveDatabase(nodeIndex: number) { + try { + const selNode = this.nodeDatabase[nodeIndex] && this.nodeDatabase[nodeIndex].adapter && this.nodeDatabase[nodeIndex].adapter.selNode ? this.nodeDatabase[nodeIndex].adapter.selNode : null; + if (!this.nodeDatabase[nodeIndex]) { + this.logger.log({ selectedNode: selNode, level: 'ERROR', fileName: 'Database', msg: 'Database Save Error: Selected Node Setup Not Found.' }); + throw new Error('Database Save Error: Selected Node Setup Not Found.'); + } + this.nodeDatabase[nodeIndex].adapter.saveData(this.nodeDatabase[nodeIndex].data); + this.logger.log({ selectedNode: this.nodeDatabase[nodeIndex].adapter.selNode, level: 'INFO', fileName: 'Database', msg: 'Database Saved' }); + return true; + } catch (err) { + const selNode = this.nodeDatabase[nodeIndex] && this.nodeDatabase[nodeIndex].adapter && this.nodeDatabase[nodeIndex].adapter.selNode ? this.nodeDatabase[nodeIndex].adapter.selNode : null; + this.logger.log({ selectedNode: selNode, level: 'ERROR', fileName: 'Database', msg: 'Database Save Error', error: err }); + return new Error(err); + } + } + + unloadDatabase(nodeIndex: number) { + this.saveDatabase(nodeIndex); + this.nodeDatabase[nodeIndex] = null; + } + +} + +export class DatabaseAdapter { + + private dbFile = ''; + + constructor(public dbDirectoryPath: string, public fileName: string, private selNode: CommonSelectedNode = null) { + this.dbFile = dbDirectoryPath + sep + fileName + '-node-' + selNode.index + '.json'; + } + + fetchData() { + try { + if (!fs.existsSync(this.dbDirectoryPath)) { + fs.mkdirSync(this.dbDirectoryPath); + } + } catch (err) { + return new Error('Unable to Create Directory Error ' + JSON.stringify(err)); + } + try { + if (!fs.existsSync(this.dbFile)) { + fs.writeFileSync(this.dbFile, '{}'); + } + } catch (err) { + return new Error('Unable to Create Database File Error ' + JSON.stringify(err)); + } + try { + const dataFromFile = fs.readFileSync(this.dbFile, 'utf-8'); + return !dataFromFile ? null : (JSON.parse(dataFromFile)); + } catch (err) { + return new Error('Database Read Error ' + JSON.stringify(err)); + } + } + + getSelNode() { + return this.selNode; + } + + saveData(data: any) { + try { + if (data) { + const tempFile = this.dbFile + '.tmp'; + fs.writeFileSync(tempFile, JSON.stringify(data, null, 2)); + fs.renameSync(tempFile, this.dbFile); + } + return true; + } catch (err) { + return new Error('Database Write Error ' + JSON.stringify(err)); + } + } + +} + +export const Database = new DatabaseService(); diff --git a/server/utils/logger.ts b/server/utils/logger.ts new file mode 100644 index 00000000..d2d6c8ae --- /dev/null +++ b/server/utils/logger.ts @@ -0,0 +1,69 @@ +/* eslint-disable no-console */ +import * as fs from 'fs'; +import { LogJSONObj } from '../models/config.model.js'; + +export class LoggerService { + + log = (msgJSON: LogJSONObj) => { + let msgStr = '\r\n[' + new Date().toLocaleString() + '] ' + msgJSON.level + ': ' + msgJSON.fileName + ' => ' + msgJSON.msg; + switch (msgJSON.level) { + case 'ERROR': + if (msgJSON.error) { + msgStr = msgStr + ': ' + ((msgJSON.error.error && msgJSON.error.error.message && typeof msgJSON.error.error.message === 'string') ? msgJSON.error.error.message : (typeof msgJSON.error === 'object' && msgJSON.error.stack) ? JSON.stringify(msgJSON.error.stack) : (typeof msgJSON.error === 'object') ? JSON.stringify(msgJSON.error) : (typeof msgJSON.error === 'string') ? msgJSON.error : ''); + } else { + msgStr = msgStr + '.'; + } + console.error(msgStr); + if (msgJSON.selectedNode && msgJSON.selectedNode.log_file) { + fs.appendFile(msgJSON.selectedNode.log_file, msgStr, () => { }); + } + break; + + case 'WARN': + if (!msgJSON.selectedNode) { + console.warn(prepMsgData(msgJSON, msgStr)); + } else if (msgJSON.selectedNode && (msgJSON.selectedNode.log_level === 'INFO' || msgJSON.selectedNode.log_level === 'WARN' || msgJSON.selectedNode.log_level === 'DEBUG')) { + msgStr = prepMsgData(msgJSON, msgStr); + console.warn(msgStr); + if (msgJSON.selectedNode && msgJSON.selectedNode.log_file) { + fs.appendFile(msgJSON.selectedNode.log_file, msgStr, () => { }); + } + } + break; + + case 'DEBUG': + case 'INFO': + if (!msgJSON.selectedNode) { + console.log(prepMsgData(msgJSON, msgStr)); + } else if (msgJSON.selectedNode && (msgJSON.selectedNode.log_level === 'DEBUG')) { + if (typeof msgJSON.data !== 'string' && msgJSON.data && msgJSON.data.length && msgJSON.data.length > 0) { + msgStr = msgJSON.data.reduce((accumulator, dataEle) => accumulator + (typeof dataEle === 'object' ? JSON.stringify(dataEle) : (typeof dataEle === 'string') ? dataEle : '') + ', ', msgStr + ': ['); + msgStr = msgStr.slice(0, -2) + ']'; + } else { + msgStr = prepMsgData(msgJSON, msgStr); + } + console.log(msgStr); + if (msgJSON.selectedNode && msgJSON.selectedNode.log_file) { + fs.appendFile(msgJSON.selectedNode.log_file, msgStr, () => { }); + } + } + break; + + default: + console.log(msgStr); + break; + } + }; + +}; + +const prepMsgData = (msgJSON, msgStr) => { + if (msgJSON.data) { + msgStr = msgStr + ': ' + (typeof msgJSON.data === 'object' ? JSON.stringify(msgJSON.data) : (typeof msgJSON.data === 'string') ? msgJSON.data : ''); + } else { + msgStr = msgStr + '.'; + } + return msgStr; +}; + +export const Logger = new LoggerService(); diff --git a/server/utils/webSocketServer.ts b/server/utils/webSocketServer.ts new file mode 100644 index 00000000..70e8003c --- /dev/null +++ b/server/utils/webSocketServer.ts @@ -0,0 +1,186 @@ +import { parse } from 'cookie'; +import * as cookieParser from 'cookie-parser'; +import * as crypto from 'crypto'; +import WebSocket from 'ws'; +import { Application } from 'express'; +import { Logger, LoggerService } from './logger.js'; +import { Common, CommonService } from './common.js'; +import { verifyWSUser } from './authCheck.js'; +import { EventEmitter } from 'events'; +import { CommonSelectedNode } from '../models/config.model.js'; + +export class WebSocketServer { + + public logger: LoggerService = Logger; + public common: CommonService = Common; + public clientDetails: Array<{ index: number, sessionIds: Array }> = []; + public eventEmitterCLT = new EventEmitter(); + public eventEmitterECL = new EventEmitter(); + public eventEmitterLND = new EventEmitter(); + public webSocketServer = null; + + public pingInterval = setInterval(() => { + if (this.webSocketServer.clients.size && this.webSocketServer.clients.size > 0) { + this.webSocketServer.clients.forEach((client) => { + if (client.isAlive === false) { + this.updateLNWSClientDetails(client.sessionId, -1, client.clientNodeIndex); + return client.terminate(); + } + client.isAlive = false; + client.ping(); + }); + } + }, 1000 * 60 * 60); // Terminate broken connections every hour + + public mount = (httpServer: Application): Application => { + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'DEBUG', fileName: 'WebSocketServer', msg: 'Connecting Websocket Server.' }); + this.webSocketServer = new WebSocket.Server({ noServer: true, path: this.common.baseHref + '/api/ws', verifyClient: (process.env.NODE_ENV === 'development') ? null : verifyWSUser }); + httpServer.on('upgrade', (request, socket, head) => { + if (request.headers['upgrade'] !== 'websocket') { + socket.end('HTTP/1.1 400 Bad Request'); + return; + } + const acceptKey = request.headers['sec-websocket-key']; + const hash = this.generateAcceptValue(acceptKey); + const responseHeaders = ['HTTP/1.1 101 Web Socket Protocol Handshake', 'Upgrade: WebSocket', 'Connection: Upgrade', 'Sec-WebSocket-Accept: ' + hash]; + const protocols = !request.headers['sec-websocket-protocol'] ? [] : request.headers['sec-websocket-protocol'].split(',').map((s) => s.trim()); + if (protocols.includes('json')) { responseHeaders.push('Sec-WebSocket-Protocol: json'); } + this.webSocketServer.handleUpgrade(request, socket, head, this.upgradeCallback); + }); + this.webSocketServer.on('connection', this.mountEventsOnConnection); + this.webSocketServer.on('close', () => clearInterval(this.pingInterval)); + } + + public upgradeCallback = (websocket, request) => { + this.webSocketServer.emit('connection', websocket, request); + }; + + public mountEventsOnConnection = (websocket, request) => { + const protocols = !request.headers['sec-websocket-protocol'] ? [] : request.headers['sec-websocket-protocol'].split(',').map((s) => s.trim()); + const cookies = parse(request.headers.cookie); + websocket.clientId = Date.now(); + websocket.isAlive = true; + websocket.sessionId = cookieParser.signedCookie(cookies['connect.sid'], this.common.secret_key); + websocket.clientNodeIndex = +protocols[1]; + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'INFO', fileName: 'WebSocketServer', msg: 'Connected: ' + websocket.clientId + ', Total WS clients: ' + this.webSocketServer.clients.size }); + websocket.on('error', this.sendErrorToAllLNClients); + websocket.on('message', this.sendEventsToAllLNClients); + websocket.on('pong', () => { websocket.isAlive = true; }); + websocket.on('close', (code, reason) => { + this.updateLNWSClientDetails(websocket.sessionId, -1, websocket.clientNodeIndex); + this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'INFO', fileName: 'WebSocketServer', msg: 'Disconnected due to ' + code + ' : ' + websocket.clientId + ', Total WS clients: ' + this.webSocketServer.clients.size }); + }); + }; + + public updateLNWSClientDetails = (sessionId: string, currNodeIndex: number, prevNodeIndex: number) => { + if (prevNodeIndex >= 0 && currNodeIndex >= 0) { + this.webSocketServer.clients.forEach((client) => { + if (client.sessionId === sessionId) { + client.clientNodeIndex = currNodeIndex; + } + }); + this.disconnectFromNodeClient(sessionId, prevNodeIndex); + this.connectToNodeClient(sessionId, currNodeIndex); + } else if (prevNodeIndex >= 0 && currNodeIndex < 0) { + this.disconnectFromNodeClient(sessionId, prevNodeIndex); + } else if (prevNodeIndex < 0 && currNodeIndex >= 0) { + this.connectToNodeClient(sessionId, currNodeIndex); + } else { + const selectedNode = this.common.findNode(currNodeIndex); + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'ERROR', fileName: 'WebSocketServer', msg: 'Invalid Node Selection. Previous and current node indices can not be less than zero.' }); + } + } + + public disconnectFromNodeClient = (sessionId: string, prevNodeIndex: number) => { + const foundClient = this.clientDetails.find((clientDetail) => clientDetail.index === +prevNodeIndex); + if (foundClient) { + const foundSessionIdx = foundClient.sessionIds.findIndex((sid) => sid === sessionId); + if (foundSessionIdx > -1) { + foundClient.sessionIds.splice(foundSessionIdx, 1); + } + if (foundClient.sessionIds.length === 0) { + const foundClientIdx = this.clientDetails.findIndex((clientDetail) => clientDetail.index === +prevNodeIndex); + this.clientDetails.splice(foundClientIdx, 1); + const prevSelectedNode = this.common.findNode(prevNodeIndex); + if (prevSelectedNode && prevSelectedNode.ln_implementation) { + switch (prevSelectedNode.ln_implementation) { + case 'LND': + this.eventEmitterLND.emit('DISCONNECT', prevNodeIndex); + break; + case 'CLT': + this.eventEmitterCLT.emit('DISCONNECT', prevNodeIndex); + break; + case 'ECL': + this.eventEmitterECL.emit('DISCONNECT', prevNodeIndex); + break; + default: + break; + } + } + } + } + } + + public connectToNodeClient = (sessionId: string, currNodeIndex: number) => { + let foundClient = this.clientDetails.find((clientDetail) => clientDetail.index === +currNodeIndex); + if (foundClient) { + const foundSessionIdx = foundClient.sessionIds.findIndex((sid) => sid === sessionId); + if (foundSessionIdx < 0) { + foundClient.sessionIds.push(sessionId); + } + } else { + const currSelectedNode = this.common.findNode(currNodeIndex); + foundClient = { index: currNodeIndex, sessionIds: [sessionId] }; + this.clientDetails.push(foundClient); + if (currSelectedNode && currSelectedNode.ln_implementation) { + switch (currSelectedNode.ln_implementation) { + case 'LND': + this.eventEmitterLND.emit('CONNECT', currNodeIndex); + break; + case 'CLT': + this.eventEmitterCLT.emit('CONNECT', currNodeIndex); + break; + case 'ECL': + this.eventEmitterECL.emit('CONNECT', currNodeIndex); + break; + default: + break; + } + } + } + } + + public sendErrorToAllLNClients = (serverError, selectedNode: CommonSelectedNode) => { + try { + this.webSocketServer.clients.forEach((client) => { + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'ERROR', fileName: 'WebSocketServer', msg: 'Broadcasting error to clients...: ' + serverError }); + if (+client.clientNodeIndex === +selectedNode.index) { + client.send(serverError); + } + }); + } catch (err) { + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'ERROR', fileName: 'WebSocketServer', msg: 'Error while broadcasting message: ' + JSON.stringify(err) }); + } + }; + + public sendEventsToAllLNClients = (newMessage, selectedNode: CommonSelectedNode) => { + try { + this.webSocketServer.clients.forEach((client) => { + if (+client.clientNodeIndex === +selectedNode.index) { + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'INFO', fileName: 'WebSocketServer', msg: 'Broadcasting message to client...: ' + client.clientId }); + client.send(newMessage); + } + }); + } catch (err) { + this.logger.log({ selectedNode: !selectedNode ? this.common.initSelectedNode : selectedNode, level: 'ERROR', fileName: 'WebSocketServer', msg: 'Error while broadcasting message: ' + JSON.stringify(err) }); + } + }; + + public generateAcceptValue = (acceptKey) => crypto.createHash('sha1').update(acceptKey + crypto.randomBytes(64).toString('hex')).digest('base64'); + + public getClients = () => this.webSocketServer.clients; + +} + +export const WSServer = new WebSocketServer(); + diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 647c4f33..6e703a44 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -12,12 +12,13 @@ import * as sha256 from 'sha256'; import { LoggerService } from './shared/services/logger.service'; import { CommonService } from './shared/services/common.service'; import { SessionService } from './shared/services/session.service'; -import { AlertTypeEnum, ScreenSizeEnum } from './shared/services/consts-enums-functions'; -import { RTLConfiguration, Settings, ConfigSettingsNode, GetInfoRoot } from './shared/models/RTLconfig'; +import { AlertTypeEnum, RTLActions, ScreenSizeEnum } from './shared/services/consts-enums-functions'; +import { rootAppConfig, rootNodeData, rootSelectedNode } from './store/rtl.selector'; +import { RTLConfiguration, Settings, GetInfoRoot } from './shared/models/RTLconfig'; +import { closeAllDialogs, fetchRTLConfig, login, logout, openAlert } from './store/rtl.actions'; import { routeAnimation } from './shared/animation/route-animation'; -import * as RTLActions from './store/rtl.actions'; -import * as fromRTLReducer from './store/rtl.reducers'; +import { RTLState } from './store/rtl.state'; @Component({ selector: 'rtl-app', @@ -29,7 +30,6 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild('sideNavigation', { static: false }) sideNavigation: any; @ViewChild('sideNavContent', { static: false }) sideNavContent: any; - public selNode: ConfigSettingsNode; public settings: Settings; public information: GetInfoRoot = {}; public flgLoading: Array = [true]; // 0: Info @@ -41,10 +41,10 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy { public smallScreen = false; public flgSidenavPinned = true; public flgLoggedIn = false; - unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; constructor( - private logger: LoggerService, private commonService: CommonService, private store: Store, private actions: Actions, + private logger: LoggerService, private commonService: CommonService, private store: Store, private actions: Actions, private userIdle: UserIdleService, private router: Router, private sessionService: SessionService, private breakpointObserver: BreakpointObserver, private renderer: Renderer2 ) { } @@ -75,39 +75,38 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy { this.smallScreen = false; } }); - this.store.dispatch(new RTLActions.FetchRTLConfig()); + this.store.dispatch(fetchRTLConfig()); this.accessKey = this.readAccessKey(); - this.store.select('root'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.selNode = rtlStore.selNode; - this.settings = this.selNode.settings; - this.appConfig = rtlStore.appConfig; - this.information = rtlStore.nodeData; - this.flgLoading[0] = !(this.information.identity_pubkey); - this.logger.info(this.settings); - if (!this.sessionService.getItem('token')) { - this.flgLoggedIn = false; - this.flgLoading[0] = false; - } else { - this.flgLoggedIn = true; - this.userIdle.startWatching(); - } - }); + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[1])).subscribe((selNode) => { + this.settings = selNode.settings; + if (!this.sessionService.getItem('token')) { + this.flgLoggedIn = false; + this.flgLoading[0] = false; + } else { + this.flgLoggedIn = true; + this.userIdle.startWatching(); + } + }); + this.store.select(rootAppConfig).pipe(takeUntil(this.unSubs[2])).subscribe((appConfig) => { this.appConfig = appConfig; }); + this.store.select(rootNodeData).pipe(takeUntil(this.unSubs[3])).subscribe((nodeData) => { + this.information = nodeData; + this.flgLoading[0] = !(this.information.identity_pubkey); + this.logger.info(this.information); + }); if (this.sessionService.getItem('defaultPassword') === 'true') { this.flgSideNavOpened = false; } this.actions.pipe( - takeUntil(this.unSubs[2]), + takeUntil(this.unSubs[4]), filter((action) => action.type === RTLActions.SET_RTL_CONFIG || action.type === RTLActions.LOGOUT)). - subscribe((action: (RTLActions.SetRTLConfig | RTLActions.Logout)) => { + subscribe((action: (any)) => { if (action.type === RTLActions.SET_RTL_CONFIG) { if (!this.sessionService.getItem('token')) { if (+action.payload.sso.rtlSSO) { if (!this.accessKey || this.accessKey.trim().length < 32) { this.router.navigate(['./error'], { state: { errorCode: '406', errorMessage: 'Access key too short. It should be at least 32 characters long.' } }); } else { - this.store.dispatch(new RTLActions.Login({ password: sha256(this.accessKey), defaultPassword: false })); + this.store.dispatch(login({ payload: { password: sha256(this.accessKey).toString(), defaultPassword: false } })); } } else { this.router.navigate(['./login']); @@ -120,23 +119,25 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy { this.userIdle.stopTimer(); } }); - this.userIdle.onTimerStart().pipe(takeUntil(this.unSubs[3])).subscribe((count) => { + this.userIdle.onTimerStart().pipe(takeUntil(this.unSubs[5])).subscribe((count) => { this.logger.info('Counting Down: ' + (11 - count)); }); - this.userIdle.onTimeout().pipe(takeUntil(this.unSubs[4])).subscribe(() => { + this.userIdle.onTimeout().pipe(takeUntil(this.unSubs[6])).subscribe(() => { this.logger.info('Time Out!'); if (this.sessionService.getItem('token')) { this.flgLoggedIn = false; this.logger.warn('Time limit exceeded for session inactivity.'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: AlertTypeEnum.WARNING, - alertTitle: 'Logging out', - titleMessage: 'Time limit exceeded for session inactivity.' + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.WARNING, + alertTitle: 'Logging out', + titleMessage: 'Time limit exceeded for session inactivity.' + } } })); - this.store.dispatch(new RTLActions.Logout()); + this.store.dispatch(logout()); } }); if (this.sessionService.getItem('defaultPassword') === 'true') { diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 7385e926..58c96919 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -2,6 +2,7 @@ import { HammerModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { HTTP_INTERCEPTORS } from '@angular/common/http'; +import { LayoutModule } from '@angular/cdk/layout'; import { StoreModule } from '@ngrx/store'; import { EffectsModule } from '@ngrx/effects'; @@ -18,15 +19,18 @@ import { AuthInterceptor } from './shared/services/auth.interceptor'; import { SessionService } from './shared/services/session.service'; import { LoopService } from './shared/services/loop.service'; import { DataService } from './shared/services/data.service'; +import { WebSocketClientService } from './shared/services/web-socket.service'; import { CommonService } from './shared/services/common.service'; import { BoltzService } from './shared/services/boltz.service'; -import { RTLReducer } from './store/rtl.reducers'; import { RTLEffects } from './store/rtl.effects'; import { LNDEffects } from './lnd/store/lnd.effects'; import { CLEffects } from './clightning/store/cl.effects'; import { ECLEffects } from './eclair/store/ecl.effects'; -import { LayoutModule } from '@angular/cdk/layout'; +import { RootReducer } from './store/rtl.reducers'; +import { LNDReducer } from './lnd/store/lnd.reducers'; +import { CLReducer } from './clightning/store/cl.reducers'; +import { ECLReducer } from './eclair/store/ecl.reducers'; @NgModule({ imports: [ @@ -36,20 +40,22 @@ import { LayoutModule } from '@angular/cdk/layout'; LayoutModule, HammerModule, UserIdleModule.forRoot({ idle: 3590, timeout: 10, ping: 12000 }), // One hour - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot( + { root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }, + { + runtimeChecks: { + strictStateImmutability: false, + strictActionImmutability: false + } + }), EffectsModule.forRoot([RTLEffects, LNDEffects, CLEffects, ECLEffects]), !environment.production ? StoreDevtoolsModule.instrument() : [] ], declarations: [AppComponent], providers: [ { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }, - AuthGuard, SessionService, DataService, LoopService, CommonService, BoltzService + AuthGuard, SessionService, DataService, WebSocketClientService, LoopService, CommonService, BoltzService ], bootstrap: [AppComponent] }) -export class AppModule {} +export class AppModule { } diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index 8bfee8b4..9a6e55d5 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -19,35 +19,45 @@ import { LoginComponent } from './shared/components/login/login.component'; import { NotFoundComponent } from './shared/components/not-found/not-found.component'; import { ErrorComponent } from './shared/components/error/error.component'; import { AuthGuard } from './shared/services/auth.guard'; +import { ExperimentalSettingsComponent } from './shared/components/node-config/experimental-settings/experimental-settings.component'; export const routes: Routes = [ { path: '', pathMatch: 'full', redirectTo: 'login' }, { path: 'lnd', loadChildren: () => import('./lnd/lnd.module').then((childModule) => childModule.LNDModule), canActivate: [AuthGuard] }, { path: 'cl', loadChildren: () => import('./clightning/cl.module').then((childModule) => childModule.CLModule), canActivate: [AuthGuard] }, { path: 'ecl', loadChildren: () => import('./eclair/ecl.module').then((childModule) => childModule.ECLModule), canActivate: [AuthGuard] }, - { path: 'settings', component: SettingsComponent, canActivate: [AuthGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'app' }, - { path: 'app', component: AppSettingsComponent, canActivate: [AuthGuard] }, - { path: 'auth', component: AuthSettingsComponent, canActivate: [AuthGuard] }, - { path: 'bconfig', component: BitcoinConfigComponent, canActivate: [AuthGuard] } - ] }, - { path: 'config', component: NodeConfigComponent, canActivate: [AuthGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'node' }, - { path: 'node', component: NodeSettingsComponent, canActivate: [AuthGuard] }, - { path: 'services', component: ServicesSettingsComponent, canActivate: [AuthGuard], children: [ + { + path: 'settings', component: SettingsComponent, canActivate: [AuthGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'app' }, + { path: 'app', component: AppSettingsComponent, canActivate: [AuthGuard] }, + { path: 'auth', component: AuthSettingsComponent, canActivate: [AuthGuard] }, + { path: 'bconfig', component: BitcoinConfigComponent, canActivate: [AuthGuard] } + ] + }, + { + path: 'config', component: NodeConfigComponent, canActivate: [AuthGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'layout' }, + { path: 'layout', component: NodeSettingsComponent, canActivate: [AuthGuard] }, + { + path: 'services', component: ServicesSettingsComponent, canActivate: [AuthGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'loop' }, + { path: 'loop', component: LoopServiceSettingsComponent, canActivate: [AuthGuard] }, + { path: 'boltz', component: BoltzServiceSettingsComponent, canActivate: [AuthGuard] } + ] + }, + { path: 'experimental', component: ExperimentalSettingsComponent, canActivate: [AuthGuard] }, + { path: 'lnconfig', component: LNPConfigComponent, canActivate: [AuthGuard] } + ] + }, + { + path: 'services', component: ServicesComponent, canActivate: [AuthGuard], children: [ { path: '', pathMatch: 'full', redirectTo: 'loop' }, - { path: 'loop', component: LoopServiceSettingsComponent, canActivate: [AuthGuard] }, - { path: 'boltz', component: BoltzServiceSettingsComponent, canActivate: [AuthGuard] } - ] }, - { path: 'lnconfig', component: LNPConfigComponent, canActivate: [AuthGuard] } - ] }, - { path: 'services', component: ServicesComponent, canActivate: [AuthGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'loop' }, - { path: 'loop', pathMatch: 'full', redirectTo: 'loop/loopout' }, - { path: 'loop/:selTab', component: LoopComponent }, - { path: 'boltz', pathMatch: 'full', redirectTo: 'boltz/swapout' }, - { path: 'boltz/:selTab', component: BoltzRootComponent } - ] }, + { path: 'loop', pathMatch: 'full', redirectTo: 'loop/loopout' }, + { path: 'loop/:selTab', component: LoopComponent }, + { path: 'boltz', pathMatch: 'full', redirectTo: 'boltz/swapout' }, + { path: 'boltz/:selTab', component: BoltzRootComponent } + ] + }, { path: 'help', component: HelpComponent }, { path: 'login', component: LoginComponent }, { path: 'error', component: ErrorComponent }, diff --git a/src/app/clightning/cl.module.ts b/src/app/clightning/cl.module.ts index 6755bcb3..8fc402a3 100644 --- a/src/app/clightning/cl.module.ts +++ b/src/app/clightning/cl.module.ts @@ -9,21 +9,22 @@ import { CLHomeComponent } from './home/home.component'; import { CLConnectionsComponent } from './peers-channels/connections.component'; import { CLChannelsTablesComponent } from './peers-channels/channels/channels-tables/channels-tables.component'; import { CLPeersComponent } from './peers-channels/peers/peers.component'; -import { CLLightningInvoicesComponent } from './transactions/invoices/lightning-invoices.component'; +import { CLLightningInvoicesTableComponent } from './transactions/invoices/invoices-table/lightning-invoices-table.component'; import { CLOnChainReceiveComponent } from './on-chain/on-chain-receive/on-chain-receive.component'; import { CLUTXOTablesComponent } from './on-chain/utxo-tables/utxo-tables.component'; import { CLOnChainUtxosComponent } from './on-chain/utxo-tables/utxos/utxos.component'; import { CLOnChainComponent } from './on-chain/on-chain.component'; import { CLLightningPaymentsComponent } from './transactions/payments/lightning-payments.component'; import { CLTransactionsComponent } from './transactions/transactions.component'; -import { CLLookupsComponent } from './lookups/lookups.component'; +import { CLLookupsComponent } from './graph/lookups/lookups.component'; import { CLRoutingComponent } from './routing/routing.component'; import { CLForwardingHistoryComponent } from './routing/forwarding-history/forwarding-history.component'; import { CLFailedTransactionsComponent } from './routing/failed-transactions/failed-transactions.component'; import { CLRoutingPeersComponent } from './routing/routing-peers/routing-peers.component'; -import { CLChannelLookupComponent } from './lookups/channel-lookup/channel-lookup.component'; -import { CLNodeLookupComponent } from './lookups/node-lookup/node-lookup.component'; -import { CLQueryRoutesComponent } from './transactions/query-routes/query-routes.component'; +import { CLChannelLookupComponent } from './graph/lookups/channel-lookup/channel-lookup.component'; +import { CLNodeLookupComponent } from './graph/lookups/node-lookup/node-lookup.component'; +import { CLQueryRoutesComponent } from './graph/query-routes/query-routes.component'; +import { CLGraphComponent } from './graph/graph.component'; import { CLChannelOpenTableComponent } from './peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component'; import { CLChannelPendingTableComponent } from './peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component'; import { CLBumpFeeComponent } from './peers-channels/channels/bump-fee-modal/bump-fee.component'; @@ -45,11 +46,15 @@ import { CLTransactionsReportComponent } from './reports/transactions/transactio import { CLOnChainSendComponent } from './on-chain/on-chain-send/on-chain-send.component'; import { CLOpenChannelComponent } from './peers-channels/channels/open-channel-modal/open-channel.component'; import { CLChannelInformationComponent } from './peers-channels/channels/channel-information-modal/channel-information.component'; -import { CLInvoiceInformationComponent } from './transactions/invoice-information-modal/invoice-information.component'; +import { CLInvoiceInformationComponent } from './transactions/invoices/invoice-information-modal/invoice-information.component'; import { CLConnectPeerComponent } from './peers-channels/connect-peer/connect-peer.component'; import { CLLightningSendPaymentsComponent } from './transactions/send-payment-modal/send-payment.component'; -import { CLCreateInvoiceComponent } from './transactions/create-invoice-modal/create-invoice.component'; +import { CLCreateInvoiceComponent } from './transactions/invoices/create-invoice-modal/create-invoice.component'; import { CLOnChainSendModalComponent } from './on-chain/on-chain-send-modal/on-chain-send-modal.component'; +import { CLCreateOfferComponent } from './transactions/offers/create-offer-modal/create-offer.component'; +import { CLOfferInformationComponent } from './transactions/offers/offer-information-modal/offer-information.component'; +import { CLOffersTableComponent } from './transactions/offers/offers-table/offers-table.component'; +import { CLOfferBookmarksTableComponent } from './transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component'; import { CLUnlockedGuard } from '../shared/services/auth.guard'; @@ -64,7 +69,7 @@ import { CLUnlockedGuard } from '../shared/services/auth.guard'; CLHomeComponent, CLPeersComponent, CLConnectionsComponent, - CLLightningInvoicesComponent, + CLLightningInvoicesTableComponent, CLLightningPaymentsComponent, CLTransactionsComponent, CLLookupsComponent, @@ -75,6 +80,7 @@ import { CLUnlockedGuard } from '../shared/services/auth.guard'; CLChannelLookupComponent, CLNodeLookupComponent, CLQueryRoutesComponent, + CLGraphComponent, CLOnChainReceiveComponent, CLUTXOTablesComponent, CLOnChainUtxosComponent, @@ -105,11 +111,15 @@ import { CLUnlockedGuard } from '../shared/services/auth.guard'; CLLightningSendPaymentsComponent, CLCreateInvoiceComponent, CLOnChainSendModalComponent, - CLChannelInformationComponent + CLChannelInformationComponent, + CLCreateOfferComponent, + CLOfferInformationComponent, + CLOffersTableComponent, + CLOfferBookmarksTableComponent ], providers: [ CLUnlockedGuard ], bootstrap: [CLRootComponent] }) -export class CLModule {} +export class CLModule { } diff --git a/src/app/clightning/cl.routing.ts b/src/app/clightning/cl.routing.ts index fb2340bf..a9352d2f 100644 --- a/src/app/clightning/cl.routing.ts +++ b/src/app/clightning/cl.routing.ts @@ -7,7 +7,7 @@ import { CLOnChainComponent } from './on-chain/on-chain.component'; import { CLConnectionsComponent } from './peers-channels/connections.component'; import { CLTransactionsComponent } from '../clightning/transactions/transactions.component'; import { CLRoutingComponent } from '../clightning/routing/routing.component'; -import { CLLookupsComponent } from './lookups/lookups.component'; +import { CLLookupsComponent } from './graph/lookups/lookups.component'; import { CLNetworkInfoComponent } from './network-info/network-info.component'; import { CLSignVerifyMessageComponent } from './sign-verify-message/sign-verify-message.component'; import { CLOnChainReceiveComponent } from './on-chain/on-chain-receive/on-chain-receive.component'; @@ -17,8 +17,8 @@ import { CLChannelOpenTableComponent } from './peers-channels/channels/channels- import { CLChannelPendingTableComponent } from './peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component'; import { CLPeersComponent } from './peers-channels/peers/peers.component'; import { CLLightningPaymentsComponent } from './transactions/payments/lightning-payments.component'; -import { CLLightningInvoicesComponent } from './transactions/invoices/lightning-invoices.component'; -import { CLQueryRoutesComponent } from './transactions/query-routes/query-routes.component'; +import { CLLightningInvoicesTableComponent } from './transactions/invoices/invoices-table/lightning-invoices-table.component'; +import { CLQueryRoutesComponent } from './graph/query-routes/query-routes.component'; import { CLSignComponent } from './sign-verify-message/sign/sign.component'; import { CLVerifyComponent } from './sign-verify-message/verify/verify.component'; import { CLForwardingHistoryComponent } from './routing/forwarding-history/forwarding-history.component'; @@ -30,56 +30,82 @@ import { CLFeeReportComponent } from './reports/fee/fee-report.component'; import { CLTransactionsReportComponent } from './reports/transactions/transactions-report.component'; import { CLUnlockedGuard } from '../shared/services/auth.guard'; import { NotFoundComponent } from '../shared/components/not-found/not-found.component'; +import { CLGraphComponent } from './graph/graph.component'; +import { CLOffersTableComponent } from './transactions/offers/offers-table/offers-table.component'; +import { CLOfferBookmarksTableComponent } from './transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component'; export const ClRoutes: Routes = [ - { path: '', component: CLRootComponent, + { + path: '', component: CLRootComponent, children: [ { path: '', pathMatch: 'full', redirectTo: 'home' }, { path: 'home', component: CLHomeComponent, canActivate: [CLUnlockedGuard] }, - { path: 'onchain', component: CLOnChainComponent, canActivate: [CLUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'receive/utxos' }, - { path: 'receive/:selTab', component: CLOnChainReceiveComponent, canActivate: [CLUnlockedGuard] }, - { path: 'send/:selTab', component: CLOnChainSendComponent, data: { sweepAll: false }, canActivate: [CLUnlockedGuard] }, - { path: 'sweep/:selTab', component: CLOnChainSendComponent, data: { sweepAll: true }, canActivate: [CLUnlockedGuard] } - ] }, - { path: 'connections', component: CLConnectionsComponent, canActivate: [CLUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'channels' }, - { path: 'channels', component: CLChannelsTablesComponent, canActivate: [CLUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'open' }, - { path: 'open', component: CLChannelOpenTableComponent, canActivate: [CLUnlockedGuard] }, - { path: 'pending', component: CLChannelPendingTableComponent, canActivate: [CLUnlockedGuard] } - ] }, - { path: 'peers', component: CLPeersComponent, data: { sweepAll: false }, canActivate: [CLUnlockedGuard] } - ] }, - { path: 'transactions', component: CLTransactionsComponent, canActivate: [CLUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'payments' }, - { path: 'payments', component: CLLightningPaymentsComponent, canActivate: [CLUnlockedGuard] }, - { path: 'invoices', component: CLLightningInvoicesComponent, canActivate: [CLUnlockedGuard] }, - { path: 'queryroutes', component: CLQueryRoutesComponent, canActivate: [CLUnlockedGuard] } - ] }, - { path: 'messages', component: CLSignVerifyMessageComponent, canActivate: [CLUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'sign' }, - { path: 'sign', component: CLSignComponent, canActivate: [CLUnlockedGuard] }, - { path: 'verify', component: CLVerifyComponent, canActivate: [CLUnlockedGuard] } - ] }, - { path: 'routing', component: CLRoutingComponent, canActivate: [CLUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'forwardinghistory' }, - { path: 'forwardinghistory', component: CLForwardingHistoryComponent, canActivate: [CLUnlockedGuard] }, - { path: 'failedtransactions', component: CLFailedTransactionsComponent, canActivate: [CLUnlockedGuard] }, - { path: 'routingpeers', component: CLRoutingPeersComponent, canActivate: [CLUnlockedGuard] } - ] }, - { path: 'reports', component: CLReportsComponent, canActivate: [CLUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'routingfees' }, - { path: 'routingfees', component: CLFeeReportComponent, canActivate: [CLUnlockedGuard] }, - { path: 'transactions', component: CLTransactionsReportComponent, canActivate: [CLUnlockedGuard] } - ] }, - { path: 'lookups', component: CLLookupsComponent, canActivate: [CLUnlockedGuard] }, + { + path: 'onchain', component: CLOnChainComponent, canActivate: [CLUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'receive/utxos' }, + { path: 'receive/:selTab', component: CLOnChainReceiveComponent, canActivate: [CLUnlockedGuard] }, + { path: 'send/:selTab', component: CLOnChainSendComponent, data: { sweepAll: false }, canActivate: [CLUnlockedGuard] }, + { path: 'sweep/:selTab', component: CLOnChainSendComponent, data: { sweepAll: true }, canActivate: [CLUnlockedGuard] } + ] + }, + { + path: 'connections', component: CLConnectionsComponent, canActivate: [CLUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'channels' }, + { + path: 'channels', component: CLChannelsTablesComponent, canActivate: [CLUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'open' }, + { path: 'open', component: CLChannelOpenTableComponent, canActivate: [CLUnlockedGuard] }, + { path: 'pending', component: CLChannelPendingTableComponent, canActivate: [CLUnlockedGuard] } + ] + }, + { path: 'peers', component: CLPeersComponent, data: { sweepAll: false }, canActivate: [CLUnlockedGuard] } + ] + }, + { + path: 'transactions', component: CLTransactionsComponent, canActivate: [CLUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'payments' }, + { path: 'payments', component: CLLightningPaymentsComponent, canActivate: [CLUnlockedGuard] }, + { path: 'invoices', component: CLLightningInvoicesTableComponent, canActivate: [CLUnlockedGuard] }, + { path: 'offers', component: CLOffersTableComponent, canActivate: [CLUnlockedGuard] }, + { path: 'offrBookmarks', component: CLOfferBookmarksTableComponent, canActivate: [CLUnlockedGuard] } + ] + }, + { + path: 'messages', component: CLSignVerifyMessageComponent, canActivate: [CLUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'sign' }, + { path: 'sign', component: CLSignComponent, canActivate: [CLUnlockedGuard] }, + { path: 'verify', component: CLVerifyComponent, canActivate: [CLUnlockedGuard] } + ] + }, + { + path: 'routing', component: CLRoutingComponent, canActivate: [CLUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'forwardinghistory' }, + { path: 'forwardinghistory', component: CLForwardingHistoryComponent, canActivate: [CLUnlockedGuard] }, + { path: 'failedtransactions', component: CLFailedTransactionsComponent, canActivate: [CLUnlockedGuard] }, + { path: 'routingpeers', component: CLRoutingPeersComponent, canActivate: [CLUnlockedGuard] } + ] + }, + { + path: 'reports', component: CLReportsComponent, canActivate: [CLUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'routingfees' }, + { path: 'routingfees', component: CLFeeReportComponent, canActivate: [CLUnlockedGuard] }, + { path: 'transactions', component: CLTransactionsReportComponent, canActivate: [CLUnlockedGuard] } + ] + }, + { + path: 'graph', component: CLGraphComponent, canActivate: [CLUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'lookups' }, + { path: 'lookups', component: CLLookupsComponent, canActivate: [CLUnlockedGuard] }, + { path: 'queryroutes', component: CLQueryRoutesComponent, canActivate: [CLUnlockedGuard] } + ] + }, { path: 'rates', component: CLNetworkInfoComponent, canActivate: [CLUnlockedGuard] }, { path: '**', component: NotFoundComponent }, { path: 'network', redirectTo: 'rates' }, { path: 'wallet', redirectTo: 'home' }, { path: 'backup', redirectTo: 'home' } - ] } + ] + } ]; export const CLRouting: ModuleWithProviders = RouterModule.forChild(ClRoutes); diff --git a/src/app/clightning/graph/graph.component.html b/src/app/clightning/graph/graph.component.html new file mode 100644 index 00000000..71c26534 --- /dev/null +++ b/src/app/clightning/graph/graph.component.html @@ -0,0 +1,17 @@ +

+ + Graph Lookups +
+
+ + + +
+ +
+
+
+
+ \ No newline at end of file diff --git a/src/app/clightning/lookups/node-lookup/node-lookup.component.scss b/src/app/clightning/graph/graph.component.scss similarity index 100% rename from src/app/clightning/lookups/node-lookup/node-lookup.component.scss rename to src/app/clightning/graph/graph.component.scss diff --git a/src/app/clightning/graph/graph.component.spec.ts b/src/app/clightning/graph/graph.component.spec.ts new file mode 100644 index 00000000..dccd2d76 --- /dev/null +++ b/src/app/clightning/graph/graph.component.spec.ts @@ -0,0 +1,53 @@ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { RouterTestingModule } from '@angular/router/testing'; +import { StoreModule } from '@ngrx/store'; + +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; +import { LoggerService } from '../../shared/services/logger.service'; + +import { CLGraphComponent } from './graph.component'; +import { SharedModule } from '../../shared/shared.module'; +import { mockDataService, mockLoggerService } from '../../shared/test-helpers/mock-services'; +import { CommonService } from '../../shared/services/common.service'; +import { DataService } from '../../shared/services/data.service'; + +describe('CLGraphComponent', () => { + let component: CLGraphComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [CLGraphComponent], + imports: [ + BrowserAnimationsModule, + SharedModule, + RouterTestingModule, + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) + ], + providers: [ + CommonService, + { provide: LoggerService, useClass: mockLoggerService }, + { provide: DataService, useClass: mockDataService } + ] + }). + compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CLGraphComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + afterEach(() => { + TestBed.resetTestingModule(); + }); +}); diff --git a/src/app/clightning/graph/graph.component.ts b/src/app/clightning/graph/graph.component.ts new file mode 100644 index 00000000..aab9faed --- /dev/null +++ b/src/app/clightning/graph/graph.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit, OnDestroy } from '@angular/core'; +import { Router, ResolveEnd } from '@angular/router'; +import { Subject } from 'rxjs'; +import { takeUntil, filter } from 'rxjs/operators'; +import { faSearch } from '@fortawesome/free-solid-svg-icons'; + +@Component({ + selector: 'rtl-cl-graph', + templateUrl: './graph.component.html', + styleUrls: ['./graph.component.scss'] +}) +export class CLGraphComponent implements OnInit, OnDestroy { + + faSearch = faSearch; + public links = [{ link: 'lookups', name: 'Lookup' }, { link: 'queryroutes', name: 'Query Routes' }]; + public activeLink = this.links[0].link; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; + + constructor(private router: Router) { } + + ngOnInit() { + const linkFound = this.links.find((link) => this.router.url.includes(link.link)); + this.activeLink = linkFound ? linkFound.link : this.links[0].link; + this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). + subscribe((value: any) => { + const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); + this.activeLink = linkFound ? linkFound.link : this.links[0].link; + }); + } + + ngOnDestroy() { + this.unSubs.forEach((completeSub) => { + completeSub.next(null); + completeSub.complete(); + }); + } + +} diff --git a/src/app/clightning/lookups/channel-lookup/channel-lookup.component.html b/src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.html similarity index 100% rename from src/app/clightning/lookups/channel-lookup/channel-lookup.component.html rename to src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.html diff --git a/src/app/clightning/lookups/channel-lookup/channel-lookup.component.scss b/src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.scss similarity index 100% rename from src/app/clightning/lookups/channel-lookup/channel-lookup.component.scss rename to src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.scss diff --git a/src/app/clightning/lookups/channel-lookup/channel-lookup.component.spec.ts b/src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.spec.ts similarity index 66% rename from src/app/clightning/lookups/channel-lookup/channel-lookup.component.spec.ts rename to src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.spec.ts index e2c919c5..98a23d8a 100644 --- a/src/app/clightning/lookups/channel-lookup/channel-lookup.component.spec.ts +++ b/src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.spec.ts @@ -1,8 +1,11 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { SharedModule } from '../../../shared/shared.module'; +import { SharedModule } from '../../../../shared/shared.module'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { CLChannelLookupComponent } from './channel-lookup.component'; describe('CLChannelLookupComponent', () => { @@ -14,12 +17,7 @@ describe('CLChannelLookupComponent', () => { declarations: [CLChannelLookupComponent], imports: [ SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/clightning/lookups/channel-lookup/channel-lookup.component.ts b/src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.ts similarity index 67% rename from src/app/clightning/lookups/channel-lookup/channel-lookup.component.ts rename to src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.ts index 8a02ab08..9d18399c 100644 --- a/src/app/clightning/lookups/channel-lookup/channel-lookup.component.ts +++ b/src/app/clightning/graph/lookups/channel-lookup/channel-lookup.component.ts @@ -3,8 +3,9 @@ import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; -import { ChannelEdge } from '../../../shared/models/clModels'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { ChannelEdge, GetInfo } from '../../../../shared/models/clModels'; +import { RTLState } from '../../../../store/rtl.state'; +import { clNodeInformation } from '../../../store/cl.selector'; @Component({ selector: 'rtl-cl-channel-lookup', @@ -18,16 +19,15 @@ export class CLChannelLookupComponent implements OnInit { public node2_match = false; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private store: Store) { } + constructor(private store: Store) { } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - if (this.lookupResult.length > 0 && this.lookupResult[0].source === rtlStore.information.id) { + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeInfo: GetInfo) => { + if (this.lookupResult.length > 0 && this.lookupResult[0].source === nodeInfo.id) { this.node1_match = true; } - if (this.lookupResult.length > 1 && this.lookupResult[1].source === rtlStore.information.id) { + if (this.lookupResult.length > 1 && this.lookupResult[1].source === nodeInfo.id) { this.node2_match = true; } }); diff --git a/src/app/clightning/graph/lookups/lookups.component.html b/src/app/clightning/graph/lookups/lookups.component.html new file mode 100644 index 00000000..bf39ca95 --- /dev/null +++ b/src/app/clightning/graph/lookups/lookups.component.html @@ -0,0 +1,36 @@ +
+
+ +
+
+ + + {{lookupField.name}} + + +
+ + + {{lookupFields[selectedFieldId]?.placeholder}} is required. + +
+ + +
+
+
+
+ {{lookupFields[selectedFieldId].name}} Details +
+
+
+
+

Error! Unable to find details!

+
+
+
+
+
+ +

Error! Unable to find details!

+
\ No newline at end of file diff --git a/src/app/clightning/lookups/lookups.component.scss b/src/app/clightning/graph/lookups/lookups.component.scss similarity index 100% rename from src/app/clightning/lookups/lookups.component.scss rename to src/app/clightning/graph/lookups/lookups.component.scss diff --git a/src/app/clightning/lookups/lookups.component.spec.ts b/src/app/clightning/graph/lookups/lookups.component.spec.ts similarity index 67% rename from src/app/clightning/lookups/lookups.component.spec.ts rename to src/app/clightning/graph/lookups/lookups.component.spec.ts index d67d291e..9e9f1c77 100644 --- a/src/app/clightning/lookups/lookups.component.spec.ts +++ b/src/app/clightning/graph/lookups/lookups.component.spec.ts @@ -1,17 +1,20 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { CommonService } from '../../shared/services/common.service'; -import { LoggerService } from '../../shared/services/logger.service'; +import { CommonService } from '../../../shared/services/common.service'; +import { LoggerService } from '../../../shared/services/logger.service'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CLLookupsComponent } from './lookups.component'; -import { SharedModule } from '../../shared/shared.module'; +import { SharedModule } from '../../../shared/shared.module'; import { CLNodeLookupComponent } from './node-lookup/node-lookup.component'; import { CLChannelLookupComponent } from './channel-lookup/channel-lookup.component'; -import { mockCLEffects, mockDataService, mockLoggerService, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../shared/test-helpers/mock-services'; +import { mockCLEffects, mockDataService, mockLoggerService, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../../shared/test-helpers/mock-services'; import { EffectsModule } from '@ngrx/effects'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { DataService } from '../../shared/services/data.service'; +import { DataService } from '../../../shared/services/data.service'; describe('CLLookupsComponent', () => { let component: CLLookupsComponent; @@ -23,12 +26,7 @@ describe('CLLookupsComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/lookups/lookups.component.ts b/src/app/clightning/graph/lookups/lookups.component.ts similarity index 73% rename from src/app/clightning/lookups/lookups.component.ts rename to src/app/clightning/graph/lookups/lookups.component.ts index 8e0f6d64..3e1842c7 100644 --- a/src/app/clightning/lookups/lookups.component.ts +++ b/src/app/clightning/graph/lookups/lookups.component.ts @@ -5,12 +5,12 @@ import { Store } from '@ngrx/store'; import { Actions } from '@ngrx/effects'; import { faSearch } from '@fortawesome/free-solid-svg-icons'; -import { APICallStatusEnum, ScreenSizeEnum, UI_MESSAGES } from '../../shared/services/consts-enums-functions'; -import { CommonService } from '../../shared/services/common.service'; -import { LoggerService } from '../../shared/services/logger.service'; +import { APICallStatusEnum, CLActions, ScreenSizeEnum, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; +import { CommonService } from '../../../shared/services/common.service'; +import { LoggerService } from '../../../shared/services/logger.service'; -import * as CLActions from '../store/cl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { channelLookup, peerLookup } from '../../store/cl.actions'; @Component({ selector: 'rtl-cl-lookups', @@ -37,7 +37,7 @@ export class CLLookupsComponent implements OnInit, OnDestroy { public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private actions: Actions) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private actions: Actions) { this.screenSize = this.commonService.getScreenSize(); } @@ -46,15 +46,15 @@ export class CLLookupsComponent implements OnInit, OnDestroy { pipe( takeUntil(this.unSubs[0]), filter((action) => (action.type === CLActions.SET_LOOKUP_CL || action.type === CLActions.UPDATE_API_CALL_STATUS_CL)) - ).subscribe((resLookup: CLActions.SetLookup | CLActions.UpdateAPICallStatus) => { + ).subscribe((resLookup: any) => { if (resLookup.type === CLActions.SET_LOOKUP_CL) { this.flgLoading[0] = true; switch (this.selectedFieldId) { case 0: - this.nodeLookupValue = resLookup.payload[0] ? JSON.parse(JSON.stringify(resLookup.payload[0])) : { nodeid: '' }; + this.nodeLookupValue = typeof resLookup.payload[0] !== 'object' ? { nodeid: '' } : JSON.parse(JSON.stringify(resLookup.payload[0])); break; case 1: - this.channelLookupValue = resLookup.payload ? JSON.parse(JSON.stringify(resLookup.payload)) : []; + this.channelLookupValue = typeof resLookup.payload[0] !== 'object' ? [] : JSON.parse(JSON.stringify(resLookup.payload)); break; default: break; @@ -69,7 +69,7 @@ export class CLLookupsComponent implements OnInit, OnDestroy { }); } - onLookup(): boolean|void { + onLookup(): boolean | void { if (!this.lookupKey) { return true; } @@ -78,10 +78,10 @@ export class CLLookupsComponent implements OnInit, OnDestroy { this.channelLookupValue = []; switch (this.selectedFieldId) { case 0: - this.store.dispatch(new CLActions.PeerLookup(this.lookupKey.trim())); + this.store.dispatch(peerLookup({ payload: this.lookupKey.trim() })); break; case 1: - this.store.dispatch(new CLActions.ChannelLookup({ uiMessage: UI_MESSAGES.SEARCHING_CHANNEL, shortChannelID: this.lookupKey.trim(), showError: false })); + this.store.dispatch(channelLookup({ payload: { uiMessage: UI_MESSAGES.SEARCHING_CHANNEL, shortChannelID: this.lookupKey.trim(), showError: false } })); break; default: break; diff --git a/src/app/clightning/lookups/node-lookup/node-lookup.component.html b/src/app/clightning/graph/lookups/node-lookup/node-lookup.component.html similarity index 73% rename from src/app/clightning/lookups/node-lookup/node-lookup.component.html rename to src/app/clightning/graph/lookups/node-lookup/node-lookup.component.html index 022643ef..938fd9f1 100644 --- a/src/app/clightning/lookups/node-lookup/node-lookup.component.html +++ b/src/app/clightning/graph/lookups/node-lookup/node-lookup.component.html @@ -1,29 +1,28 @@
- -
-

Pub Key

- {{lookupResult?.nodeid}} -
- +
-
+

Alias

{{lookupResult?.alias}}{{lookupResult?.color ? '#' + lookupResult?.color : ''}}
+
+

Pub Key

+ {{lookupResult?.nodeid}} +
- +
-
+

Last Update

{{(lookupResult?.last_timestamp * 1000) | date:'dd/MMM/YYYY HH:mm'}}
-
+

Features

- {{lookupResult?.features}} + {{featureDescription}}
- -
+ +

Addresses

diff --git a/src/app/eclair/lookups/node-lookup/node-lookup.component.scss b/src/app/clightning/graph/lookups/node-lookup/node-lookup.component.scss similarity index 100% rename from src/app/eclair/lookups/node-lookup/node-lookup.component.scss rename to src/app/clightning/graph/lookups/node-lookup/node-lookup.component.scss diff --git a/src/app/clightning/lookups/node-lookup/node-lookup.component.spec.ts b/src/app/clightning/graph/lookups/node-lookup/node-lookup.component.spec.ts similarity index 69% rename from src/app/clightning/lookups/node-lookup/node-lookup.component.spec.ts rename to src/app/clightning/graph/lookups/node-lookup/node-lookup.component.spec.ts index dafea8b8..5a1caa6e 100644 --- a/src/app/clightning/lookups/node-lookup/node-lookup.component.spec.ts +++ b/src/app/clightning/graph/lookups/node-lookup/node-lookup.component.spec.ts @@ -1,6 +1,7 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; -import { LoggerService } from '../../../shared/services/logger.service'; -import { SharedModule } from '../../../shared/shared.module'; +import { LoggerService } from '../../../../shared/services/logger.service'; +import { SharedModule } from '../../../../shared/shared.module'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { CLNodeLookupComponent } from './node-lookup.component'; @@ -11,7 +12,10 @@ describe('CLNodeLookupComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ declarations: [CLNodeLookupComponent], - imports: [SharedModule], + imports: [ + SharedModule, + BrowserAnimationsModule + ], providers: [LoggerService] }). compileComponents(); @@ -20,6 +24,7 @@ describe('CLNodeLookupComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(CLNodeLookupComponent); component = fixture.componentInstance; + component.lookupResult = {}; fixture.detectChanges(); }); diff --git a/src/app/clightning/lookups/node-lookup/node-lookup.component.ts b/src/app/clightning/graph/lookups/node-lookup/node-lookup.component.ts similarity index 61% rename from src/app/clightning/lookups/node-lookup/node-lookup.component.ts rename to src/app/clightning/graph/lookups/node-lookup/node-lookup.component.ts index 95739c51..e39a0aa0 100644 --- a/src/app/clightning/lookups/node-lookup/node-lookup.component.ts +++ b/src/app/clightning/graph/lookups/node-lookup/node-lookup.component.ts @@ -3,8 +3,9 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { LookupNode } from '../../../shared/models/clModels'; -import { LoggerService } from '../../../shared/services/logger.service'; +import { LookupNode } from '../../../../shared/models/clModels'; +import { NODE_FEATURES_CLT } from '../../../../shared/services/consts-enums-functions'; +import { LoggerService } from '../../../../shared/services/logger.service'; @Component({ selector: 'rtl-cl-node-lookup', @@ -13,8 +14,9 @@ import { LoggerService } from '../../../shared/services/logger.service'; }) export class CLNodeLookupComponent implements OnInit { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; @Input() lookupResult: LookupNode; + public featureDescriptions: string[] = []; public addresses: any; public displayedColumns = ['type', 'address', 'port', 'actions']; @@ -22,9 +24,17 @@ export class CLNodeLookupComponent implements OnInit { ngOnInit() { this.addresses = this.lookupResult && this.lookupResult.addresses ? new MatTableDataSource([...this.lookupResult.addresses]) : new MatTableDataSource([]); - this.addresses.data = this.lookupResult && this.lookupResult.addresses ? this.lookupResult.addresses : []; + this.addresses.data = this.lookupResult.addresses || []; this.addresses.sort = this.sort; this.addresses.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); + if (this.lookupResult.features && this.lookupResult.features.trim() !== '') { + const featureHex = parseInt(this.lookupResult.features, 16); + NODE_FEATURES_CLT.forEach((feature) => { + if (!!(featureHex & ((1 << feature.range.min) | (1 << feature.range.max)))) { + this.featureDescriptions.push(feature.description + '\n'); + } + }); + } } onCopyNodeURI(payload: string) { diff --git a/src/app/clightning/transactions/query-routes/query-routes.component.html b/src/app/clightning/graph/query-routes/query-routes.component.html similarity index 99% rename from src/app/clightning/transactions/query-routes/query-routes.component.html rename to src/app/clightning/graph/query-routes/query-routes.component.html index 829f9e38..5015fdd5 100644 --- a/src/app/clightning/transactions/query-routes/query-routes.component.html +++ b/src/app/clightning/graph/query-routes/query-routes.component.html @@ -12,7 +12,7 @@ Amount is required. -
+
diff --git a/src/app/clightning/transactions/query-routes/query-routes.component.scss b/src/app/clightning/graph/query-routes/query-routes.component.scss similarity index 100% rename from src/app/clightning/transactions/query-routes/query-routes.component.scss rename to src/app/clightning/graph/query-routes/query-routes.component.scss diff --git a/src/app/clightning/transactions/query-routes/query-routes.component.spec.ts b/src/app/clightning/graph/query-routes/query-routes.component.spec.ts similarity index 75% rename from src/app/clightning/transactions/query-routes/query-routes.component.spec.ts rename to src/app/clightning/graph/query-routes/query-routes.component.spec.ts index 0d2d72fb..aec59273 100644 --- a/src/app/clightning/transactions/query-routes/query-routes.component.spec.ts +++ b/src/app/clightning/graph/query-routes/query-routes.component.spec.ts @@ -1,11 +1,14 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { CLQueryRoutesComponent } from './query-routes.component'; -import { mockCLEffects, mockDataService, mockLoggerService, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../../shared/test-helpers/mock-services'; +import { mockCLEffects, mockDataService, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../../shared/test-helpers/mock-services'; import { CLEffects } from '../../store/cl.effects'; import { EffectsModule } from '@ngrx/effects'; import { SharedModule } from '../../../shared/shared.module'; @@ -22,12 +25,7 @@ describe('CLQueryRoutesComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/transactions/query-routes/query-routes.component.ts b/src/app/clightning/graph/query-routes/query-routes.component.ts similarity index 62% rename from src/app/clightning/transactions/query-routes/query-routes.component.ts rename to src/app/clightning/graph/query-routes/query-routes.component.ts index 4a2c2845..fa61171b 100644 --- a/src/app/clightning/transactions/query-routes/query-routes.component.ts +++ b/src/app/clightning/graph/query-routes/query-routes.component.ts @@ -11,9 +11,9 @@ import { AlertTypeEnum, DataTypeEnum, ScreenSizeEnum } from '../../../shared/ser import { CommonService } from '../../../shared/services/common.service'; import { CLEffects } from '../../store/cl.effects'; -import * as CLActions from '../../store/cl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { getQueryRoutes } from '../../store/cl.actions'; @Component({ selector: 'rtl-cl-query-routes', @@ -22,7 +22,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class CLQueryRoutesComponent implements OnInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; @ViewChild('queryRoutesForm', { static: true }) form: any; public destinationPubkey = ''; public amount: number = null; @@ -36,7 +36,7 @@ export class CLQueryRoutesComponent implements OnInit, OnDestroy { public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private store: Store, private clEffects: CLEffects, private commonService: CommonService) { + constructor(private store: Store, private clEffects: CLEffects, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -54,29 +54,27 @@ export class CLQueryRoutesComponent implements OnInit, OnDestroy { } ngOnInit() { - this.clEffects.setQueryRoutesCL. - pipe(takeUntil(this.unSubs[1])). - subscribe((queryRoute) => { - this.qrHops = new MatTableDataSource([]); - this.qrHops.data = []; - if (queryRoute.routes) { - this.flgLoading[0] = false; - this.qrHops = new MatTableDataSource([...queryRoute.routes]); - this.qrHops.data = queryRoute.routes; - } else { - this.flgLoading[0] = 'error'; - } - this.qrHops.sort = this.sort; - this.qrHops.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); - }); + this.clEffects.setQueryRoutesCL.pipe(takeUntil(this.unSubs[1])).subscribe((queryRoute) => { + this.qrHops = new MatTableDataSource([]); + this.qrHops.data = []; + if (queryRoute.routes && queryRoute.routes.length && queryRoute.routes.length > 0) { + this.flgLoading[0] = false; + this.qrHops = new MatTableDataSource([...queryRoute.routes]); + this.qrHops.data = queryRoute.routes; + } else { + this.flgLoading[0] = 'error'; + } + this.qrHops.sort = this.sort; + this.qrHops.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); + }); } - onQueryRoutes(): boolean|void { + onQueryRoutes(): boolean | void { if (!this.destinationPubkey || !this.amount) { return true; } this.flgLoading[0] = true; - this.store.dispatch(new CLActions.GetQueryRoutes({ destPubkey: this.destinationPubkey, amount: this.amount * 1000 })); + this.store.dispatch(getQueryRoutes({ payload: { destPubkey: this.destinationPubkey, amount: this.amount * 1000 } })); } resetData() { @@ -91,17 +89,21 @@ export class CLQueryRoutesComponent implements OnInit, OnDestroy { const reorderedHop = [ [{ key: 'id', value: selHop.id, title: 'ID', width: 100, type: DataTypeEnum.STRING }], [{ key: 'channel', value: selHop.channel, title: 'Channel', width: 50, type: DataTypeEnum.STRING }, - { key: 'alias', value: selHop.alias, title: 'Peer Alias', width: 50, type: DataTypeEnum.STRING }], + { key: 'alias', value: selHop.alias, title: 'Peer Alias', width: 50, type: DataTypeEnum.STRING }], [{ key: 'msatoshi', value: selHop.msatoshi, title: 'mSatoshi', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'amount_msat', value: selHop.amount_msat, title: 'Amount mSat', width: 50, type: DataTypeEnum.STRING }], + { key: 'amount_msat', value: selHop.amount_msat, title: 'Amount mSat', width: 50, type: DataTypeEnum.STRING }], [{ key: 'direction', value: selHop.direction, title: 'Direction', width: 50, type: DataTypeEnum.STRING }, - { key: 'delay', value: selHop.delay, title: 'Delay', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'delay', value: selHop.delay, title: 'Delay', width: 50, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Route Information', - message: reorderedHop - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Route Information', + message: reorderedHop + } + } + })); } ngOnDestroy() { diff --git a/src/app/clightning/home/channel-capacity-info/channel-capacity-info.component.html b/src/app/clightning/home/channel-capacity-info/channel-capacity-info.component.html index c36a5b93..da427b1b 100644 --- a/src/app/clightning/home/channel-capacity-info/channel-capacity-info.component.html +++ b/src/app/clightning/home/channel-capacity-info/channel-capacity-info.component.html @@ -13,8 +13,8 @@
-
-
+
+
{{(channel.alias || channel.id) | slice:0:24}}{{(channel.alias || channel.id).length > 25 ? '...' : ''}}
Local:{{channel.msatoshi_to_us/1000 || 0 | number:'1.0-0'}} Sats diff --git a/src/app/clightning/home/channel-capacity-info/channel-capacity-info.component.ts b/src/app/clightning/home/channel-capacity-info/channel-capacity-info.component.ts index f98fe1a4..9e70adab 100644 --- a/src/app/clightning/home/channel-capacity-info/channel-capacity-info.component.ts +++ b/src/app/clightning/home/channel-capacity-info/channel-capacity-info.component.ts @@ -13,12 +13,12 @@ export class CLChannelCapacityInfoComponent { public faBalanceScale = faBalanceScale; public faDumbbell = faDumbbell; - @Input() channelBalances: {localBalance: number, remoteBalance: number, balancedness: number}; - @Input() allChannels: Channel[]; + @Input() channelBalances: { localBalance: number, remoteBalance: number, balancedness: number }; + @Input() activeChannels: Channel[]; @Input() sortBy = 'Balance Score'; @Input() errorMessage: string; - constructor(private router: Router) {} + constructor(private router: Router) { } goToChannels() { this.router.navigateByUrl('/cl/connections'); diff --git a/src/app/clightning/home/channel-liquidity-info/channel-liquidity-info.component.html b/src/app/clightning/home/channel-liquidity-info/channel-liquidity-info.component.html index 35b567ce..c94e3b6f 100644 --- a/src/app/clightning/home/channel-liquidity-info/channel-liquidity-info.component.html +++ b/src/app/clightning/home/channel-liquidity-info/channel-liquidity-info.component.html @@ -6,8 +6,8 @@
-
-
+
+
{{(channel.alias || channel.id) | slice:0:24}}{{(channel.alias || channel.id).length > 25 ? '...' : ''}}
Capacity: {{channel.msatoshi_to_them/1000 || 0 | number:'1.0-0'}} Sats diff --git a/src/app/clightning/home/channel-liquidity-info/channel-liquidity-info.component.ts b/src/app/clightning/home/channel-liquidity-info/channel-liquidity-info.component.ts index 57a1edda..1e486006 100644 --- a/src/app/clightning/home/channel-liquidity-info/channel-liquidity-info.component.ts +++ b/src/app/clightning/home/channel-liquidity-info/channel-liquidity-info.component.ts @@ -14,12 +14,12 @@ export class CLChannelLiquidityInfoComponent implements OnInit { @Input() direction: string; @Input() totalLiquidity: number; - @Input() allChannels: Channel[]; + @Input() activeChannels: Channel[]; @Input() errorMessage: string; public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; - constructor(private router: Router, private commonService: CommonService) {} + constructor(private router: Router, private commonService: CommonService) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); diff --git a/src/app/clightning/home/channel-status-info/channel-status-info.component.ts b/src/app/clightning/home/channel-status-info/channel-status-info.component.ts index 89d853e7..3f7a5c8c 100644 --- a/src/app/clightning/home/channel-status-info/channel-status-info.component.ts +++ b/src/app/clightning/home/channel-status-info/channel-status-info.component.ts @@ -8,9 +8,9 @@ import { ChannelsStatus } from '../../../shared/models/clModels'; }) export class CLChannelStatusInfoComponent { - @Input() channelsStatus: ChannelsStatus = {}; + @Input() channelsStatus: ChannelsStatus = { active: {}, pending: {}, inactive: {} }; @Input() errorMessage: string; - constructor() {} + constructor() { } } diff --git a/src/app/clightning/home/home.component.html b/src/app/clightning/home/home.component.html index 608b6390..96c55c86 100644 --- a/src/app/clightning/home/home.component.html +++ b/src/app/clightning/home/home.component.html @@ -1,7 +1,7 @@ -
+
- - {{apisCallStatus?.FetchInfo.status === apiCallStatusEnum.COMPLETED ? 'Welcome ' + information.alias + '! Your node is up and running.' : apisCallStatus?.FetchInfo.status === apiCallStatusEnum.INITIATED ? 'Wait! Getting your node information...' : 'Error! Please check the server connection.'}} + + {{apiCallStatusNodeInfo.status === apiCallStatusEnum.COMPLETED ? 'Welcome ' + information.alias + '! Your node is up and running.' : apiCallStatusNodeInfo.status === apiCallStatusEnum.INITIATED ? 'Wait! Getting your node information...' : 'Error! Please check the server connection.'}}
@@ -26,22 +26,22 @@ + 'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) || + (card.id === 'balance' && (apiCallStatusBalance.status === apiCallStatusEnum.ERROR || apiCallStatusLRBal.status === apiCallStatusEnum.ERROR)) || + (card.id === 'capacity' && (apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusLRBal.status === apiCallStatusEnum.ERROR)) || + (card.id === 'fee' && (apiCallStatusFees.status === apiCallStatusEnum.ERROR || apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusFHistory.status === apiCallStatusEnum.ERROR)) || + (card.id === 'status' && (apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR || apiCallStatusLRBal.status === apiCallStatusEnum.ERROR))}">
- +

Error! Unable to find information!

@@ -77,22 +77,22 @@ + 'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) || + (card.id === 'balance' && (apiCallStatusBalance.status === apiCallStatusEnum.ERROR || apiCallStatusLRBal.status === apiCallStatusEnum.ERROR)) || + ((card.id === 'inboundLiq' || card.id === 'outboundLiq') && apiCallStatusChannels.status === apiCallStatusEnum.ERROR)}">
- - + + - + diff --git a/src/app/clightning/home/home.component.spec.ts b/src/app/clightning/home/home.component.spec.ts index d80f582e..80b0c30c 100644 --- a/src/app/clightning/home/home.component.spec.ts +++ b/src/app/clightning/home/home.component.spec.ts @@ -8,7 +8,10 @@ import { CommonService } from '../../shared/services/common.service'; import { LoggerService } from '../../shared/services/logger.service'; import { mockCLEffects, mockDataService, mockLoggerService, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../shared/test-helpers/mock-services'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { CLHomeComponent } from './home.component'; import { CLNodeInfoComponent } from './node-info/node-info.component'; import { CLBalancesInfoComponent } from './balances-info/balances-info.component'; @@ -27,12 +30,7 @@ describe('CLHomeComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/home/home.component.ts b/src/app/clightning/home/home.component.ts index f11e5fc9..e08a4700 100644 --- a/src/app/clightning/home/home.component.ts +++ b/src/app/clightning/home/home.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; import { Router } from '@angular/router'; import { Subject } from 'rxjs'; -import { takeUntil, filter } from 'rxjs/operators'; +import { takeUntil, filter, withLatestFrom } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { Actions } from '@ngrx/effects'; import { faSmile, faFrown } from '@fortawesome/free-regular-svg-icons'; @@ -9,13 +9,13 @@ import { faAngleDoubleDown, faAngleDoubleUp, faChartPie, faBolt, faServer, faNet import { SelNodeChild } from '../../shared/models/RTLconfig'; import { UserPersonaEnum, ScreenSizeEnum, APICallStatusEnum } from '../../shared/services/consts-enums-functions'; -import { ChannelsStatus, GetInfo, Fees, Channel, Balance } from '../../shared/models/clModels'; -import { ApiCallsListCL } from '../../shared/models/apiCallsPayload'; +import { ChannelsStatus, GetInfo, Fees, Channel, Balance, LocalRemoteBalance } from '../../shared/models/clModels'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; import { LoggerService } from '../../shared/services/logger.service'; import { CommonService } from '../../shared/services/common.service'; -import * as CLActions from '../store/cl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { balance, channels, fees, localRemoteBalance, nodeInfoAndNodeSettingsAndAPIsStatus } from '../store/cl.selector'; @Component({ selector: 'rtl-cl-home', @@ -32,7 +32,6 @@ export class CLHomeComponent implements OnInit, OnDestroy { public faBolt = faBolt; public faServer = faServer; public faNetworkWired = faNetworkWired; - public flgChildInfoUpdated = false; public userPersonaEnum = UserPersonaEnum; public channelBalances = { localBalance: 0, remoteBalance: 0, balancedness: 0 }; public selNode: SelNodeChild = {}; @@ -40,9 +39,9 @@ export class CLHomeComponent implements OnInit, OnDestroy { public information: GetInfo = {}; public totalBalance: Balance = {}; public balances = { onchain: -1, lightning: -1, total: 0 }; - public allChannels: Channel[] = []; - public channelsStatus: ChannelsStatus = {}; - public allChannelsCapacity: Channel[] = []; + public activeChannels: Channel[] = []; + public channelsStatus: ChannelsStatus = { active: {}, pending: {}, inactive: {} }; + public activeChannelsCapacity: Channel[] = []; public allInboundChannels: Channel[] = []; public allOutboundChannels: Channel[] = []; public totalInboundLiquidity = 0; @@ -54,11 +53,16 @@ export class CLHomeComponent implements OnInit, OnDestroy { public merchantCardHeight = '65px'; public sortField = 'Balance Score'; public errorMessages = ['', '', '', '', '', '']; - public apisCallStatus: ApiCallsListCL = null; + public apiCallStatusNodeInfo: ApiCallStatusPayload = null; + public apiCallStatusFees: ApiCallStatusPayload = null; + public apiCallStatusBalance: ApiCallStatusPayload = null; + public apiCallStatusLRBal: ApiCallStatusPayload = null; + public apiCallStatusChannels: ApiCallStatusPayload = null; + public apiCallStatusFHistory: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private actions: Actions, private commonService: CommonService, private router: Router) { + constructor(private logger: LoggerService, private store: Store, private actions: Actions, private commonService: CommonService, private router: Router) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.operatorCards = [ @@ -89,8 +93,6 @@ export class CLHomeComponent implements OnInit, OnDestroy { { id: 'outboundLiq', goTo: 'Channels', link: '/cl/connections', icon: this.faAngleDoubleUp, title: 'Out-Bound Liquidity', cols: 3, rows: 8 } ]; } else { - this.operatorCardHeight = ((window.screen.height * 0.77) / 2) + 'px'; - this.merchantCardHeight = ((window.screen.height * 0.76) / 10) + 'px'; this.operatorCards = [ { id: 'node', icon: this.faServer, title: 'Node Information', cols: 3, rows: 1 }, { id: 'balance', goTo: 'On-Chain', link: '/cl/onchain', icon: this.faChartPie, title: 'Balances', cols: 3, rows: 1 }, @@ -108,79 +110,81 @@ export class CLHomeComponent implements OnInit, OnDestroy { } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.errorMessages = ['', '', '', '', '', '']; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) { - this.errorMessages[0] = (typeof (this.apisCallStatus.FetchInfo.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchInfo.message) : this.apisCallStatus.FetchInfo.message; + this.store.select(nodeInfoAndNodeSettingsAndAPIsStatus).pipe(takeUntil(this.unSubs[0])). + subscribe((infoSettingsStatusSelector: { information: GetInfo, nodeSettings: SelNodeChild, apisCallStatus: ApiCallStatusPayload[] }) => { + this.errorMessages[0] = ''; + this.errorMessages[5] = ''; + this.apiCallStatusNodeInfo = infoSettingsStatusSelector.apisCallStatus[0]; + this.apiCallStatusFHistory = infoSettingsStatusSelector.apisCallStatus[1]; + if (this.apiCallStatusNodeInfo.status === APICallStatusEnum.ERROR) { + this.errorMessages[0] = (typeof (this.apiCallStatusNodeInfo.message) === 'object') ? JSON.stringify(this.apiCallStatusNodeInfo.message) : this.apiCallStatusNodeInfo.message; } - if (rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) { - this.errorMessages[1] = (typeof (this.apisCallStatus.FetchFees.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchFees.message) : this.apisCallStatus.FetchFees.message; + if (this.apiCallStatusFHistory.status === APICallStatusEnum.ERROR) { + this.errorMessages[5] = (typeof (this.apiCallStatusFHistory.message) === 'object') ? JSON.stringify(this.apiCallStatusFHistory.message) : this.apiCallStatusFHistory.message; } - if (rtlStore.apisCallStatus.FetchBalance.status === APICallStatusEnum.ERROR) { - this.errorMessages[2] = (typeof (this.apisCallStatus.FetchBalance.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchBalance.message) : this.apisCallStatus.FetchBalance.message; - } - if (rtlStore.apisCallStatus.FetchLocalRemoteBalance.status === APICallStatusEnum.ERROR) { - this.errorMessages[3] = (typeof (this.apisCallStatus.FetchLocalRemoteBalance.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchLocalRemoteBalance.message) : this.apisCallStatus.FetchLocalRemoteBalance.message; - } - if (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) { - this.errorMessages[4] = (typeof (this.apisCallStatus.FetchChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchChannels.message) : this.apisCallStatus.FetchChannels.message; + this.selNode = infoSettingsStatusSelector.nodeSettings; + this.information = infoSettingsStatusSelector.information; + }); + this.store.select(fees).pipe(takeUntil(this.unSubs[1])). + subscribe((feesSeletor: { fees: Fees, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[1] = ''; + this.apiCallStatusFees = feesSeletor.apiCallStatus; + if (this.apiCallStatusFees.status === APICallStatusEnum.ERROR) { + this.errorMessages[1] = (typeof (this.apiCallStatusFees.message) === 'object') ? JSON.stringify(this.apiCallStatusFees.message) : this.apiCallStatusFees.message; } - if (rtlStore.apisCallStatus.GetForwardingHistory.status === APICallStatusEnum.ERROR) { - this.errorMessages[5] = (typeof (this.apisCallStatus.GetForwardingHistory.message) === 'object') ? JSON.stringify(this.apisCallStatus.GetForwardingHistory.message) : this.apisCallStatus.GetForwardingHistory.message; + this.fees = feesSeletor.fees; + this.logger.info(feesSeletor); + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[2])). + subscribe((channelsSeletor: { activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[4] = ''; + this.apiCallStatusChannels = channelsSeletor.apiCallStatus; + if (this.apiCallStatusChannels.status === APICallStatusEnum.ERROR) { + this.errorMessages[4] = (typeof (this.apiCallStatusChannels.message) === 'object') ? JSON.stringify(this.apiCallStatusChannels.message) : this.apiCallStatusChannels.message; } - - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - - this.fees = rtlStore.fees; - - this.totalBalance = rtlStore.balance; - this.balances.onchain = rtlStore.balance.totalBalance; - this.balances.lightning = rtlStore.localRemoteBalance.localBalance; - this.balances.total = this.balances.lightning + this.balances.onchain; - this.balances = Object.assign({}, this.balances); - - const local = (rtlStore.localRemoteBalance.localBalance) ? +rtlStore.localRemoteBalance.localBalance : 0; - const remote = (rtlStore.localRemoteBalance.remoteBalance) ? +rtlStore.localRemoteBalance.remoteBalance : 0; - const total = local + remote; - this.channelBalances = { localBalance: local, remoteBalance: remote, balancedness: +(1 - Math.abs((local - remote) / total)).toFixed(3) }; - - this.channelsStatus = { - active: { channels: rtlStore.information.num_active_channels, capacity: rtlStore.localRemoteBalance.localBalance }, - pending: { channels: rtlStore.information.num_pending_channels, capacity: rtlStore.localRemoteBalance.pendingBalance || 0 }, - inactive: { channels: rtlStore.information.num_inactive_channels, capacity: rtlStore.localRemoteBalance.inactiveBalance || 0 } - }; this.totalInboundLiquidity = 0; this.totalOutboundLiquidity = 0; - this.allChannels = rtlStore.allChannels.filter((channel) => channel.state === 'CHANNELD_NORMAL' && channel.connected); - this.allChannelsCapacity = this.allChannels.length > 0 ? JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels, 'balancedness'))) : []; - this.allInboundChannels = this.allChannels.length > 0 ? JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter((channel) => channel.msatoshi_to_them > 0), 'msatoshi_to_them'))) : []; - this.allOutboundChannels = this.allChannels.length > 0 ? JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter((channel) => channel.msatoshi_to_us > 0), 'msatoshi_to_us'))) : []; - this.allChannels.forEach((channel) => { + this.activeChannels = channelsSeletor.activeChannels; + this.activeChannelsCapacity = JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.activeChannels, 'balancedness'))) || []; + this.allInboundChannels = JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.activeChannels.filter((channel) => channel.msatoshi_to_them > 0), 'msatoshi_to_them'))) || []; + this.allOutboundChannels = JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.activeChannels.filter((channel) => channel.msatoshi_to_us > 0), 'msatoshi_to_us'))) || []; + this.activeChannels.forEach((channel) => { this.totalInboundLiquidity = this.totalInboundLiquidity + Math.ceil(channel.msatoshi_to_them / 1000); this.totalOutboundLiquidity = this.totalOutboundLiquidity + Math.floor(channel.msatoshi_to_us / 1000); }); - - if (this.balances.lightning >= 0 && this.balances.onchain >= 0 && this.fees.feeCollected >= 0) { - this.flgChildInfoUpdated = true; - } else { - this.flgChildInfoUpdated = false; - } - this.logger.info(rtlStore); + this.channelsStatus.active.channels = channelsSeletor.activeChannels.length || 0; + this.channelsStatus.pending.channels = channelsSeletor.pendingChannels.length || 0; + this.channelsStatus.inactive.channels = channelsSeletor.inactiveChannels.length || 0; + this.logger.info(channelsSeletor); }); - this.actions.pipe( - takeUntil(this.unSubs[2]), - filter((action) => action.type === CLActions.FETCH_FEES_CL || action.type === CLActions.SET_FEES_CL)). - subscribe((action) => { - if (action.type === CLActions.FETCH_FEES_CL) { - this.flgChildInfoUpdated = false; + this.store.select(balance).pipe(takeUntil(this.unSubs[3]), + withLatestFrom(this.store.select(localRemoteBalance))). + subscribe(([balanceSeletor, lrBalanceSeletor]: [{ balance: Balance, apiCallStatus: ApiCallStatusPayload }, { localRemoteBalance: LocalRemoteBalance, apiCallStatus: ApiCallStatusPayload }]) => { + this.errorMessages[2] = ''; + this.apiCallStatusBalance = balanceSeletor.apiCallStatus; + if (this.apiCallStatusBalance.status === APICallStatusEnum.ERROR) { + this.errorMessages[2] = (typeof (this.apiCallStatusBalance.message) === 'object') ? JSON.stringify(this.apiCallStatusBalance.message) : this.apiCallStatusBalance.message; } - if (action.type === CLActions.SET_FEES_CL) { - this.flgChildInfoUpdated = true; + this.errorMessages[3] = ''; + this.apiCallStatusLRBal = lrBalanceSeletor.apiCallStatus; + if (this.apiCallStatusLRBal.status === APICallStatusEnum.ERROR) { + this.errorMessages[3] = (typeof (this.apiCallStatusLRBal.message) === 'object') ? JSON.stringify(this.apiCallStatusLRBal.message) : this.apiCallStatusLRBal.message; } + this.totalBalance = balanceSeletor.balance; + this.balances.onchain = balanceSeletor.balance.totalBalance; + this.balances.lightning = lrBalanceSeletor.localRemoteBalance.localBalance; + this.balances.total = this.balances.lightning + this.balances.onchain; + this.balances = Object.assign({}, this.balances); + + const local = (lrBalanceSeletor.localRemoteBalance.localBalance) ? +lrBalanceSeletor.localRemoteBalance.localBalance : 0; + const remote = (lrBalanceSeletor.localRemoteBalance.remoteBalance) ? +lrBalanceSeletor.localRemoteBalance.remoteBalance : 0; + const total = local + remote; + this.channelBalances = { localBalance: local, remoteBalance: remote, balancedness: +(1 - Math.abs((local - remote) / total)).toFixed(3) }; + this.channelsStatus.active.capacity = lrBalanceSeletor.localRemoteBalance.localBalance || 0; + this.channelsStatus.pending.capacity = lrBalanceSeletor.localRemoteBalance.pendingBalance || 0; + this.channelsStatus.inactive.capacity = lrBalanceSeletor.localRemoteBalance.inactiveBalance || 0; + this.logger.info(balanceSeletor); + this.logger.info(lrBalanceSeletor); }); } @@ -191,14 +195,14 @@ export class CLHomeComponent implements OnInit, OnDestroy { onsortChannelsBy() { if (this.sortField === 'Balance Score') { this.sortField = 'Capacity'; - this.allChannelsCapacity = this.allChannels.sort((a, b) => { + this.activeChannelsCapacity = this.activeChannels.sort((a, b) => { const x = +a.msatoshi_to_us + +a.msatoshi_to_them; const y = +b.msatoshi_to_them + +b.msatoshi_to_them; return ((x > y) ? -1 : ((x < y) ? 1 : 0)); }); } else { this.sortField = 'Balance Score'; - this.allChannelsCapacity = this.allChannels.length > 0 ? JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels, 'balancedness'))) : []; + this.activeChannelsCapacity = JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.activeChannels, 'balancedness'))) || []; } } diff --git a/src/app/clightning/lookups/lookups.component.html b/src/app/clightning/lookups/lookups.component.html deleted file mode 100644 index 92b22eb1..00000000 --- a/src/app/clightning/lookups/lookups.component.html +++ /dev/null @@ -1,42 +0,0 @@ -
-
- - Graph Lookups -
-
- - -
-
- - - {{lookupField.name}} - - -
- - - {{lookupFields[selectedFieldId]?.placeholder}} is required. - -
- - -
- -
-
- {{lookupFields[selectedFieldId].name}} Details -
-
-
-
-

Error! Unable to find details!

-
-
-
-
-
-
- -

Error! Unable to find details!

-
\ No newline at end of file diff --git a/src/app/clightning/network-info/network-info.component.html b/src/app/clightning/network-info/network-info.component.html index 777eaab7..fc297100 100644 --- a/src/app/clightning/network-info/network-info.component.html +++ b/src/app/clightning/network-info/network-info.component.html @@ -12,19 +12,19 @@ + 'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) || + (card.id === 'status' && (apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR || apiCallStatusLRBal.status === apiCallStatusEnum.ERROR)) || + (card.id === 'fee' && (apiCallStatusFees.status === apiCallStatusEnum.ERROR || apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusFHistory.status === apiCallStatusEnum.ERROR)) || + (card.id === 'feeRatesKB' && apiCallStatusPerKB.status === apiCallStatusEnum.ERROR) || + (card.id === 'feeRatesKW' && apiCallStatusPerKW.status === apiCallStatusEnum.ERROR) || + (card.id === 'onChainFeeEstimates' && apiCallStatusPerKW.status === apiCallStatusEnum.ERROR)}">
@@ -53,19 +53,19 @@ + 'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) || + (card.id === 'status' && (apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR || apiCallStatusLRBal.status === apiCallStatusEnum.ERROR)) || + (card.id === 'fee' && (apiCallStatusFees.status === apiCallStatusEnum.ERROR || apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusFHistory.status === apiCallStatusEnum.ERROR)) || + (card.id === 'feeRatesKB' && apiCallStatusPerKB.status === apiCallStatusEnum.ERROR) || + (card.id === 'feeRatesKW' && apiCallStatusPerKW.status === apiCallStatusEnum.ERROR) || + (card.id === 'onChainFeeEstimates' && apiCallStatusPerKW.status === apiCallStatusEnum.ERROR)}">
diff --git a/src/app/clightning/network-info/network-info.component.spec.ts b/src/app/clightning/network-info/network-info.component.spec.ts index c70455f1..9eeb502a 100644 --- a/src/app/clightning/network-info/network-info.component.spec.ts +++ b/src/app/clightning/network-info/network-info.component.spec.ts @@ -6,8 +6,12 @@ import { LoggerService } from '../../shared/services/logger.service'; import { mockDataService, mockLoggerService } from '../../shared/test-helpers/mock-services'; import { SharedModule } from '../../shared/shared.module'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { CLFeeRatesComponent } from './fee-rates/fee-rates.component'; +import { CLOnChainFeeEstimatesComponent } from './on-chain-fee-estimates/on-chain-fee-estimates.component'; import { CLNetworkInfoComponent } from './network-info.component'; describe('CLNetworkInfoComponent', () => { @@ -16,15 +20,10 @@ describe('CLNetworkInfoComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [CLNetworkInfoComponent, CLFeeRatesComponent], + declarations: [CLNetworkInfoComponent, CLFeeRatesComponent, CLOnChainFeeEstimatesComponent], imports: [ SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/network-info/network-info.component.ts b/src/app/clightning/network-info/network-info.component.ts index 3201890b..cbd2797a 100644 --- a/src/app/clightning/network-info/network-info.component.ts +++ b/src/app/clightning/network-info/network-info.component.ts @@ -1,17 +1,18 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; +import { takeUntil, withLatestFrom } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { faBolt, faServer, faNetworkWired, faLink } from '@fortawesome/free-solid-svg-icons'; import { SelNodeChild } from '../../shared/models/RTLconfig'; -import { GetInfo, Fees, ChannelsStatus, FeeRates } from '../../shared/models/clModels'; +import { GetInfo, Fees, ChannelsStatus, FeeRates, ForwardingEvent, LocalRemoteBalance, Channel } from '../../shared/models/clModels'; import { APICallStatusEnum, ScreenSizeEnum, UserPersonaEnum } from '../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; import { LoggerService } from '../../shared/services/logger.service'; import { CommonService } from '../../shared/services/common.service'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { channels, feeRatesPerKB, feeRatesPerKW, fees, forwardingHistory, localRemoteBalance, nodeInfoAndNodeSettingsAndAPIsStatus } from '../store/cl.selector'; @Component({ selector: 'rtl-cl-network-info', @@ -27,7 +28,7 @@ export class CLNetworkInfoComponent implements OnInit, OnDestroy { public selNode: SelNodeChild = {}; public information: GetInfo = {}; public fees: Fees; - public channelsStatus: ChannelsStatus = {}; + public channelsStatus: ChannelsStatus = { active: {}, pending: {}, inactive: {} }; public feeRatesPerKB: FeeRates = {}; public feeRatesPerKW: FeeRates = {}; public nodeCardsOperator = []; @@ -36,11 +37,17 @@ export class CLNetworkInfoComponent implements OnInit, OnDestroy { public screenSizeEnum = ScreenSizeEnum; public userPersonaEnum = UserPersonaEnum; public errorMessages = ['', '', '', '', '', '', '']; - public apisCallStatus: ApiCallsListCL = null; + public apiCallStatusNodeInfo: ApiCallStatusPayload = null; + public apiCallStatusLRBal: ApiCallStatusPayload = null; + public apiCallStatusChannels: ApiCallStatusPayload = null; + public apiCallStatusFees: ApiCallStatusPayload = null; + public apiCallStatusFHistory: ApiCallStatusPayload = null; + public apiCallStatusPerKB: ApiCallStatusPayload = null; + public apiCallStatusPerKW: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.nodeCardsMerchant = [ @@ -74,52 +81,74 @@ export class CLNetworkInfoComponent implements OnInit, OnDestroy { } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.errorMessages = ['', '', '', '', '', '', '']; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) { - this.errorMessages[0] = (typeof (this.apisCallStatus.FetchInfo.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchInfo.message) : this.apisCallStatus.FetchInfo.message; + this.store.select(nodeInfoAndNodeSettingsAndAPIsStatus).pipe(takeUntil(this.unSubs[0])). + subscribe((infoSettingsStatusSelector: { information: GetInfo, nodeSettings: SelNodeChild, apisCallStatus: ApiCallStatusPayload[] }) => { + this.errorMessages[0] = ''; + this.apiCallStatusNodeInfo = infoSettingsStatusSelector.apisCallStatus[0]; + if (this.apiCallStatusNodeInfo.status === APICallStatusEnum.ERROR) { + this.errorMessages[0] = (typeof (this.apiCallStatusNodeInfo.message) === 'object') ? JSON.stringify(this.apiCallStatusNodeInfo.message) : this.apiCallStatusNodeInfo.message; } - if (rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) { - this.errorMessages[1] = (typeof (this.apisCallStatus.FetchFees.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchFees.message) : this.apisCallStatus.FetchFees.message; + this.selNode = infoSettingsStatusSelector.nodeSettings; + this.information = infoSettingsStatusSelector.information; + this.logger.info(infoSettingsStatusSelector); + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[1]), + withLatestFrom(this.store.select(localRemoteBalance))). + subscribe(([channelsSeletor, lrBalanceSeletor]: [{ activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], apiCallStatus: ApiCallStatusPayload }, { localRemoteBalance: LocalRemoteBalance, apiCallStatus: ApiCallStatusPayload }]) => { + this.errorMessages[2] = ''; + this.errorMessages[3] = ''; + this.apiCallStatusLRBal = channelsSeletor.apiCallStatus; + this.apiCallStatusChannels = lrBalanceSeletor.apiCallStatus; + if (this.apiCallStatusLRBal.status === APICallStatusEnum.ERROR) { + this.errorMessages[2] = (typeof (this.apiCallStatusLRBal.message) === 'object') ? JSON.stringify(this.apiCallStatusLRBal.message) : this.apiCallStatusLRBal.message; } - if (rtlStore.apisCallStatus.FetchLocalRemoteBalance.status === APICallStatusEnum.ERROR) { - this.errorMessages[2] = (typeof (this.apisCallStatus.FetchLocalRemoteBalance.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchLocalRemoteBalance.message) : this.apisCallStatus.FetchLocalRemoteBalance.message; + if (this.apiCallStatusChannels.status === APICallStatusEnum.ERROR) { + this.errorMessages[3] = (typeof (this.apiCallStatusChannels.message) === 'object') ? JSON.stringify(this.apiCallStatusChannels.message) : this.apiCallStatusChannels.message; } - if (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) { - this.errorMessages[3] = (typeof (this.apisCallStatus.FetchChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchChannels.message) : this.apisCallStatus.FetchChannels.message; + this.channelsStatus.active.channels = channelsSeletor.activeChannels.length || 0; + this.channelsStatus.pending.channels = channelsSeletor.pendingChannels.length || 0; + this.channelsStatus.inactive.channels = channelsSeletor.inactiveChannels.length || 0; + this.channelsStatus.active.capacity = lrBalanceSeletor.localRemoteBalance.localBalance || 0; + this.channelsStatus.pending.capacity = lrBalanceSeletor.localRemoteBalance.pendingBalance || 0; + this.channelsStatus.inactive.capacity = lrBalanceSeletor.localRemoteBalance.inactiveBalance || 0; + }); + this.store.select(fees).pipe(takeUntil(this.unSubs[2])). + subscribe((feesSeletor: { fees: Fees, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[1] = ''; + this.apiCallStatusFees = feesSeletor.apiCallStatus; + if (this.apiCallStatusFees.status === APICallStatusEnum.ERROR) { + this.errorMessages[1] = (typeof (this.apiCallStatusFees.message) === 'object') ? JSON.stringify(this.apiCallStatusFees.message) : this.apiCallStatusFees.message; } - if (rtlStore.apisCallStatus.GetForwardingHistory.status === APICallStatusEnum.ERROR) { - this.errorMessages[4] = (typeof (this.apisCallStatus.GetForwardingHistory.message) === 'object') ? JSON.stringify(this.apisCallStatus.GetForwardingHistory.message) : this.apisCallStatus.GetForwardingHistory.message; + this.fees = feesSeletor.fees; + }); + this.store.select(forwardingHistory).pipe(takeUntil(this.unSubs[3])). + subscribe((fhSeletor: { forwardingHistory: ForwardingEvent[], apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[4] = ''; + this.apiCallStatusFHistory = fhSeletor.apiCallStatus; + if (this.apiCallStatusFHistory.status === APICallStatusEnum.ERROR) { + this.errorMessages[4] = (typeof (this.apiCallStatusFHistory.message) === 'object') ? JSON.stringify(this.apiCallStatusFHistory.message) : this.apiCallStatusFHistory.message; } - if (rtlStore.apisCallStatus.FetchFeeRatesperkb.status === APICallStatusEnum.ERROR) { - this.errorMessages[5] = (typeof (this.apisCallStatus.FetchFeeRatesperkb.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchFeeRatesperkb.message) : this.apisCallStatus.FetchFeeRatesperkb.message; + if (fhSeletor.forwardingHistory && fhSeletor.forwardingHistory.length) { + this.fees.totalTxCount = fhSeletor.forwardingHistory.length; } - if (rtlStore.apisCallStatus.FetchFeeRatesperkw.status === APICallStatusEnum.ERROR) { - this.errorMessages[6] = (typeof (this.apisCallStatus.FetchFeeRatesperkw.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchFeeRatesperkw.message) : this.apisCallStatus.FetchFeeRatesperkw.message; + }); + this.store.select(feeRatesPerKB).pipe(takeUntil(this.unSubs[4])). + subscribe((frbSeletor: { feeRatesPerKB: FeeRates, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[5] = ''; + this.apiCallStatusPerKB = frbSeletor.apiCallStatus; + if (this.apiCallStatusPerKB.status === APICallStatusEnum.ERROR) { + this.errorMessages[5] = (typeof (this.apiCallStatusPerKB.message) === 'object') ? JSON.stringify(this.apiCallStatusPerKB.message) : this.apiCallStatusPerKB.message; } - - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - this.fees = rtlStore.fees; - this.fees.totalTxCount = 0; - - if (rtlStore.forwardingHistory && rtlStore.forwardingHistory.length) { - this.fees.totalTxCount = rtlStore.forwardingHistory.length; + this.feeRatesPerKB = frbSeletor.feeRatesPerKB; + }); + this.store.select(feeRatesPerKW).pipe(takeUntil(this.unSubs[5])). + subscribe((frwSeletor: { feeRatesPerKW: FeeRates, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[6] = ''; + this.apiCallStatusPerKW = frwSeletor.apiCallStatus; + if (this.apiCallStatusPerKW.status === APICallStatusEnum.ERROR) { + this.errorMessages[6] = (typeof (this.apiCallStatusPerKW.message) === 'object') ? JSON.stringify(this.apiCallStatusPerKW.message) : this.apiCallStatusPerKW.message; } - - this.channelsStatus = { - active: { channels: rtlStore.information.num_active_channels, capacity: 0 }, - inactive: { channels: rtlStore.information.num_inactive_channels, capacity: 0 }, - pending: { channels: rtlStore.information.num_pending_channels, capacity: 0 } - }; - - this.feeRatesPerKB = rtlStore.feeRatesPerKB; - this.feeRatesPerKW = rtlStore.feeRatesPerKW; - - this.logger.info(rtlStore); + this.feeRatesPerKW = frwSeletor.feeRatesPerKW; }); } diff --git a/src/app/clightning/on-chain/on-chain-receive/on-chain-receive.component.spec.ts b/src/app/clightning/on-chain/on-chain-receive/on-chain-receive.component.spec.ts index 8e9346b6..5cbfb0c3 100644 --- a/src/app/clightning/on-chain/on-chain-receive/on-chain-receive.component.spec.ts +++ b/src/app/clightning/on-chain/on-chain-receive/on-chain-receive.component.spec.ts @@ -5,7 +5,10 @@ import { StoreModule } from '@ngrx/store'; import { mockCLEffects, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../../shared/test-helpers/mock-services'; import { SharedModule } from '../../../shared/shared.module'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CLEffects } from '../../store/cl.effects'; import { CLOnChainReceiveComponent } from './on-chain-receive.component'; @@ -19,12 +22,7 @@ describe('CLOnChainReceiveComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/on-chain/on-chain-receive/on-chain-receive.component.ts b/src/app/clightning/on-chain/on-chain-receive/on-chain-receive.component.ts index 4c45149b..ef88d82a 100644 --- a/src/app/clightning/on-chain/on-chain-receive/on-chain-receive.component.ts +++ b/src/app/clightning/on-chain/on-chain-receive/on-chain-receive.component.ts @@ -6,9 +6,9 @@ import { ADDRESS_TYPES } from '../../../shared/services/consts-enums-functions'; import { OnChainGeneratedAddressComponent } from '../../../shared/components/data-modal/on-chain-generated-address/on-chain-generated-address.component'; import { CLEffects } from '../../store/cl.effects'; -import * as CLActions from '../../store/cl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { getNewAddress } from '../../store/cl.actions'; @Component({ selector: 'rtl-cl-on-chain-receive', @@ -21,23 +21,24 @@ export class CLOnChainReceiveComponent { public selectedAddressType = ADDRESS_TYPES[0]; public newAddress = ''; - constructor(private store: Store, private clEffects: CLEffects) {} + constructor(private store: Store, private clEffects: CLEffects) { } onGenerateAddress() { - this.store.dispatch(new CLActions.GetNewAddress(this.selectedAddressType)); - this.clEffects.setNewAddressCL. - pipe(take(1)). - subscribe((newAddress) => { - this.newAddress = newAddress; - this.store.dispatch(new RTLActions.OpenAlert({ - width: '58%', - data: { - address: this.newAddress, - addressType: this.selectedAddressType.addressTp, - component: OnChainGeneratedAddressComponent + this.store.dispatch(getNewAddress({ payload: this.selectedAddressType })); + this.clEffects.setNewAddressCL.pipe(take(1)).subscribe((newAddress) => { + this.newAddress = newAddress; + setTimeout(() => { + this.store.dispatch(openAlert({ + payload: { + data: { + address: this.newAddress, + addressType: this.selectedAddressType.addressTp, + component: OnChainGeneratedAddressComponent + } } })); - }); + }, 0); + }); } } diff --git a/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.html b/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.html index 0597d852..ba7d5c9f 100644 --- a/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.html +++ b/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.html @@ -23,23 +23,30 @@ {{amountUnit}} -
- - - - {{feeRateType.feeRateType}} - - - -
- - - - Min Confirmation Blocks is required. - +
+
+
+ + + + {{feeRateType.feeRateType}} + + + + + + Fee Rate is required. + +
+
+ + + + Min Confirmation Blocks is required. + +
-
-
+
@@ -67,9 +74,10 @@ {{sendFundError}}
- - + +
+
@@ -88,7 +96,7 @@
- +
@@ -100,26 +108,31 @@ Bitcoin address is required. -
- - - - {{feeRateType.feeRateType}} - - - Fees Rate is required. - -
- +
+
+ + + + {{feeRateType.feeRateType}} + + + + + + Fee Rate is required. + +
+
+ - - Min confirmation blocks is required. + + Min Confirmation Blocks is required.
- +
@@ -136,14 +149,14 @@ {{sendFundError}}
- +
-
- +
+
diff --git a/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts b/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts index 7e4b80cc..18927c50 100644 --- a/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts +++ b/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts @@ -3,7 +3,10 @@ import { SharedModule } from '../../../shared/shared.module'; import { StoreModule } from '@ngrx/store'; import { EffectsModule } from '@ngrx/effects'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -24,12 +27,7 @@ describe('CLOnChainSendModalComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts b/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts index 9b034f60..526aaff2 100644 --- a/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts +++ b/src/app/clightning/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts @@ -9,20 +9,22 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MatSnackBar } from '@angular/material/snack-bar'; import { MatStepper } from '@angular/material/stepper'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; +import * as sha256 from 'sha256'; -import { SelNodeChild, GetInfoRoot, RTLConfiguration } from '../../../shared/models/RTLconfig'; +import { SelNodeChild, RTLConfiguration } from '../../../shared/models/RTLconfig'; import { CLOnChainSendFunds } from '../../../shared/models/alertData'; import { GetInfo, Balance, OnChain, UTXO } from '../../../shared/models/clModels'; -import { CURRENCY_UNITS, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, ADDRESS_TYPES, FEE_RATE_TYPES, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; +import { CURRENCY_UNITS, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, ADDRESS_TYPES, FEE_RATE_TYPES, APICallStatusEnum, CLActions, ScreenSizeEnum } from '../../../shared/services/consts-enums-functions'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; import { RTLEffects } from '../../../store/rtl.effects'; - -import * as CLActions from '../../store/cl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; -import * as sha256 from 'sha256'; +import { RTLState } from '../../../store/rtl.state'; +import { isAuthorized, openSnackBar } from '../../../store/rtl.actions'; +import { setChannelTransaction } from '../../store/cl.actions'; +import { rootAppConfig, rootSelectedNode } from '../../../store/rtl.selector'; +import { clNodeInformation, utxos } from '../../store/cl.selector'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-cl-on-chain-send-modal', @@ -38,7 +40,6 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { public sweepAll = false; public selNode: SelNodeChild = {}; public appConfig: RTLConfiguration; - public nodeData: GetInfoRoot; public addressTypes = []; public utxos: UTXO[] = []; public selUTXOs = []; @@ -51,7 +52,10 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { public newAddress = ''; public transaction: OnChain = {}; public feeRateTypes = FEE_RATE_TYPES; + public selFeeRate = ''; + public customFeeRate = null; public flgMinConf = false; + public minConfValue = null; public sendFundError = ''; public fiatConversion = false; public amountUnits = CURRENCY_UNITS; @@ -69,9 +73,13 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { passwordFormGroup: FormGroup; sendFundFormGroup: FormGroup; confirmFormGroup: FormGroup; - private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + public screenSize = ''; + public screenSizeEnum = ScreenSizeEnum; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLOnChainSendFunds, private logger: LoggerService, private store: Store, private commonService: CommonService, private decimalPipe: DecimalPipe, private actions: Actions, private formBuilder: FormBuilder, private rtlEffects: RTLEffects, private snackBar: MatSnackBar) { } + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLOnChainSendFunds, private logger: LoggerService, private store: Store, private commonService: CommonService, private decimalPipe: DecimalPipe, private actions: Actions, private formBuilder: FormBuilder, private rtlEffects: RTLEffects, private snackBar: MatSnackBar) { + this.screenSize = this.commonService.getScreenSize(); + } ngOnInit() { this.sweepAll = this.data.sweepAll; @@ -81,48 +89,62 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { }); this.sendFundFormGroup = this.formBuilder.group({ transactionAddress: ['', Validators.required], - transactionFeeRate: [null], + selFeeRate: [null], + customFeeRate: [null], flgMinConf: [false], - transactionBlocks: [{ value: null, disabled: true }] + minConfValue: [{ value: null, disabled: true }] }); this.confirmFormGroup = this.formBuilder.group({}); - this.sendFundFormGroup.controls.flgMinConf.valueChanges.pipe(takeUntil(this.unSubs[4])).subscribe((flg) => { + this.sendFundFormGroup.controls.flgMinConf.valueChanges.pipe(takeUntil(this.unSubs[0])).subscribe((flg) => { if (flg) { - this.sendFundFormGroup.controls.transactionBlocks.enable(); - this.sendFundFormGroup.controls.transactionBlocks.setValidators([Validators.required]); - this.sendFundFormGroup.controls.transactionBlocks.setValue(null); - this.sendFundFormGroup.controls.transactionFeeRate.disable(); - this.sendFundFormGroup.controls.transactionFeeRate.setValue(null); + this.sendFundFormGroup.controls.selFeeRate.disable(); + this.sendFundFormGroup.controls.selFeeRate.setValue(null); + this.sendFundFormGroup.controls.minConfValue.reset(); + this.sendFundFormGroup.controls.minConfValue.enable(); + this.sendFundFormGroup.controls.minConfValue.setValidators([Validators.required]); + this.sendFundFormGroup.controls.minConfValue.setValue(null); } else { - this.sendFundFormGroup.controls.transactionBlocks.disable(); - this.sendFundFormGroup.controls.transactionBlocks.setValidators(null); - this.sendFundFormGroup.controls.transactionBlocks.setValue(null); - this.sendFundFormGroup.controls.transactionBlocks.setErrors(null); - this.sendFundFormGroup.controls.transactionFeeRate.enable(); - this.sendFundFormGroup.controls.transactionFeeRate.setValue(null); + this.sendFundFormGroup.controls.selFeeRate.enable(); + this.sendFundFormGroup.controls.selFeeRate.setValue(null); + this.sendFundFormGroup.controls.minConfValue.setValue(null); + this.sendFundFormGroup.controls.minConfValue.disable(); + this.sendFundFormGroup.controls.minConfValue.setValidators(null); + this.sendFundFormGroup.controls.minConfValue.setErrors(null); } }); - combineLatest([this.store.select('root'), this.store.select('cl')]). - pipe(takeUntil(this.unSubs[0])). - subscribe(([rootStore, rtlStore]) => { - this.fiatConversion = rootStore.selNode.settings.fiatConversion; - this.amountUnits = rootStore.selNode.settings.currencyUnits; - this.appConfig = rootStore.appConfig; - this.nodeData = rootStore.nodeData; - this.information = rtlStore.information; + this.sendFundFormGroup.controls.selFeeRate.valueChanges.pipe(takeUntil(this.unSubs[1])).subscribe((feeRate) => { + this.sendFundFormGroup.controls.customFeeRate.setValue(null); + this.sendFundFormGroup.controls.customFeeRate.reset(); + if (feeRate === 'customperkb' && !this.sendFundFormGroup.controls.flgMinConf.value) { + this.sendFundFormGroup.controls.customFeeRate.setValidators([Validators.required]); + } else { + this.sendFundFormGroup.controls.customFeeRate.setValidators(null); + } + }); + combineLatest([this.store.select(rootSelectedNode), this.store.select(rootAppConfig)]).pipe(takeUntil(this.unSubs[1])). + subscribe(([selNode, appConfig]) => { + this.fiatConversion = selNode.settings.fiatConversion; + this.amountUnits = selNode.settings.currencyUnits; + this.appConfig = appConfig; + }); + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[2])). + subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; this.isCompatibleVersion = this.commonService.isVersionCompatible(this.information.version, '0.9.0') && this.commonService.isVersionCompatible(this.information.api_version, '0.4.0'); - this.utxos = this.commonService.sortAscByKey(rtlStore.utxos.filter((utxo) => utxo.status === 'confirmed'), 'value'); - this.logger.info(rootStore); - this.logger.info(rtlStore); + }); + this.store.select(utxos).pipe(takeUntil(this.unSubs[3])). + subscribe((utxosSeletor: { utxos: UTXO[], apiCallStatus: ApiCallStatusPayload }) => { + this.utxos = this.commonService.sortAscByKey(utxosSeletor.utxos.filter((utxo) => utxo.status === 'confirmed'), 'value'); + this.logger.info(utxosSeletor); }); this.actions.pipe( - takeUntil(this.unSubs[1]), + takeUntil(this.unSubs[4]), filter((action) => action.type === CLActions.UPDATE_API_CALL_STATUS_CL || action.type === CLActions.SET_CHANNEL_TRANSACTION_RES_CL)). - subscribe((action: CLActions.UpdateAPICallStatus | CLActions.SetChannelTransactionRes) => { + subscribe((action: any) => { if (action.type === CLActions.SET_CHANNEL_TRANSACTION_RES_CL) { - this.store.dispatch(new RTLActions.OpenSnackBar('Fund Sent Successfully!')); + this.store.dispatch(openSnackBar({ payload: 'Fund Sent Successfully!' })); this.dialogRef.close(); } if (action.type === CLActions.UPDATE_API_CALL_STATUS_CL && action.payload.status === APICallStatusEnum.ERROR && action.payload.action === 'SetChannelTransaction') { @@ -136,7 +158,7 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { return true; } this.flgValidated = false; - this.store.dispatch(new RTLActions.IsAuthorized(sha256(this.passwordFormGroup.controls.password.value))); + this.store.dispatch(isAuthorized({ payload: sha256(this.passwordFormGroup.controls.password.value).toString() })); this.rtlEffects.isAuthorizedRes. pipe(take(1)). subscribe((authRes) => { @@ -151,9 +173,6 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { } onSendFunds(): boolean | void { - if (this.invalidValues) { - return true; - } this.sendFundError = ''; if (this.flgUseAllBalance) { this.transaction.satoshis = 'all'; @@ -163,30 +182,41 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { this.selUTXOs.forEach((utxo) => this.transaction.utxos.push(utxo.txid + ':' + utxo.output)); } if (this.sweepAll) { + if ( + (!this.sendFundFormGroup.controls.transactionAddress.value || this.sendFundFormGroup.controls.transactionAddress.value === '') || + (this.sendFundFormGroup.controls.flgMinConf.value && (!this.sendFundFormGroup.controls.minConfValue.value || this.sendFundFormGroup.controls.minConfValue.value <= 0)) || + (this.selFeeRate === 'customperkb' && !this.flgMinConf && !this.customFeeRate) + ) { + return true; + } this.transaction.satoshis = 'all'; this.transaction.address = this.sendFundFormGroup.controls.transactionAddress.value; if (this.sendFundFormGroup.controls.flgMinConf.value) { delete this.transaction.feeRate; - this.transaction.minconf = this.sendFundFormGroup.controls.transactionBlocks.value; + this.transaction.minconf = this.sendFundFormGroup.controls.flgMinConf.value ? this.sendFundFormGroup.controls.minConfValue.value : null; } else { delete this.transaction.minconf; - if (this.sendFundFormGroup.controls.transactionFeeRate.value) { - this.transaction.feeRate = this.sendFundFormGroup.controls.transactionFeeRate.value; - } else { - delete this.transaction.feeRate; - } + this.transaction.feeRate = (this.sendFundFormGroup.controls.selFeeRate.value === 'customperkb' && !this.sendFundFormGroup.controls.flgMinConf.value && this.sendFundFormGroup.controls.customFeeRate.value) ? ((this.sendFundFormGroup.controls.customFeeRate.value * 1000) + 'perkb') : this.sendFundFormGroup.controls.selFeeRate.value; } delete this.transaction.utxos; - this.store.dispatch(new CLActions.SetChannelTransaction(this.transaction)); + this.store.dispatch(setChannelTransaction({ payload: this.transaction })); } else { + this.transaction.minconf = this.flgMinConf ? this.minConfValue : null; + this.transaction['feeRate'] = (this.selFeeRate === 'customperkb' && !this.flgMinConf && this.customFeeRate) ? (this.customFeeRate * 1000) + 'perkb' : this.selFeeRate; + if ((!this.transaction.address || this.transaction.address === '') || + ((!this.transaction.satoshis || +this.transaction.satoshis <= 0)) || + (this.flgMinConf && (!this.transaction.minconf || this.transaction.minconf <= 0)) || + (this.selFeeRate === 'customperkb' && !this.flgMinConf && !this.customFeeRate)) { + return true; + } if (this.transaction.satoshis && this.transaction.satoshis !== 'all' && this.selAmountUnit !== CurrencyUnitEnum.SATS) { this.commonService.convertCurrency(+this.transaction.satoshis, this.selAmountUnit === this.amountUnits[2] ? CurrencyUnitEnum.OTHER : this.selAmountUnit, CurrencyUnitEnum.SATS, this.amountUnits[2], this.fiatConversion). - pipe(takeUntil(this.unSubs[2])). + pipe(takeUntil(this.unSubs[5])). subscribe({ next: (data) => { this.transaction.satoshis = data[CurrencyUnitEnum.SATS]; this.selAmountUnit = CurrencyUnitEnum.SATS; - this.store.dispatch(new CLActions.SetChannelTransaction(this.transaction)); + this.store.dispatch(setChannelTransaction({ payload: this.transaction })); }, error: (err) => { this.transaction.satoshis = null; this.selAmountUnit = CurrencyUnitEnum.SATS; @@ -194,21 +224,11 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { } }); } else { - this.store.dispatch(new CLActions.SetChannelTransaction(this.transaction)); + this.store.dispatch(setChannelTransaction({ payload: this.transaction })); } } } - get invalidValues(): boolean { - if (this.sweepAll) { - return (!this.sendFundFormGroup.controls.transactionAddress.value || this.sendFundFormGroup.controls.transactionAddress.value === '') || (this.sendFundFormGroup.controls.flgMinConf.value && (!this.sendFundFormGroup.controls.transactionBlocks.value || this.sendFundFormGroup.controls.transactionBlocks.value <= 0)); - } else { - return (!this.transaction.address || this.transaction.address === '') || - ((!this.transaction.satoshis || +this.transaction.satoshis <= 0)) || - (this.flgMinConf && (!this.transaction.minconf || this.transaction.minconf <= 0)); - } - } - resetData() { this.sendFundError = ''; this.transaction = {}; @@ -235,8 +255,8 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { case 2: this.passwordFormLabel = 'User authenticated successfully'; this.sendFundFormLabel = 'Sweep funds | Address: ' + this.sendFundFormGroup.controls.transactionAddress.value + - (this.sendFundFormGroup.controls.flgMinConf.value ? (' | Min Confirmation Blocks: ' + this.sendFundFormGroup.controls.transactionBlocks.value) : (this.sendFundFormGroup.controls.transactionFeeRate.value ? (' | Fee Rate: ' + - this.feeRateTypes.find((frType) => frType.feeRateId === this.sendFundFormGroup.controls.transactionFeeRate.value).feeRateType) : '')); + (this.sendFundFormGroup.controls.flgMinConf.value ? (' | Min Confirmation Blocks: ' + this.sendFundFormGroup.controls.minConfValue.value) : (this.sendFundFormGroup.controls.selFeeRate.value ? (' | Fee Rate: ' + + this.feeRateTypes.find((frType) => frType.feeRateId === this.sendFundFormGroup.controls.selFeeRate.value).feeRateType) : '')); break; default: @@ -283,7 +303,7 @@ export class CLOnChainSendModalComponent implements OnInit, OnDestroy { let currSelectedUnit = event.value === this.amountUnits[2] ? CurrencyUnitEnum.OTHER : event.value; if (this.transaction.satoshis && this.selAmountUnit !== event.value) { this.commonService.convertCurrency(+this.transaction.satoshis, prevSelectedUnit, currSelectedUnit, this.amountUnits[2], this.fiatConversion). - pipe(takeUntil(this.unSubs[3])). + pipe(takeUntil(this.unSubs[6])). subscribe({ next: (data) => { this.selAmountUnit = event.value; diff --git a/src/app/clightning/on-chain/on-chain-send/on-chain-send.component.spec.ts b/src/app/clightning/on-chain/on-chain-send/on-chain-send.component.spec.ts index c7abad97..99ba2804 100644 --- a/src/app/clightning/on-chain/on-chain-send/on-chain-send.component.spec.ts +++ b/src/app/clightning/on-chain/on-chain-send/on-chain-send.component.spec.ts @@ -3,7 +3,10 @@ import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; import { SharedModule } from '../../../shared/shared.module'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CLOnChainSendComponent } from './on-chain-send.component'; describe('CLOnChainSendComponent', () => { @@ -16,12 +19,7 @@ describe('CLOnChainSendComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/clightning/on-chain/on-chain-send/on-chain-send.component.ts b/src/app/clightning/on-chain/on-chain-send/on-chain-send.component.ts index 72a17448..09cbd0c5 100644 --- a/src/app/clightning/on-chain/on-chain-send/on-chain-send.component.ts +++ b/src/app/clightning/on-chain/on-chain-send/on-chain-send.component.ts @@ -6,8 +6,8 @@ import { Store } from '@ngrx/store'; import { CLOnChainSendModalComponent } from '../on-chain-send-modal/on-chain-send-modal.component'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; @Component({ selector: 'rtl-cl-on-chain-send', @@ -19,7 +19,7 @@ export class CLOnChainSendComponent implements OnInit, OnDestroy { public sweepAll = false; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private store: Store, private activatedRoute: ActivatedRoute) {} + constructor(private store: Store, private activatedRoute: ActivatedRoute) { } ngOnInit() { this.activatedRoute.data.pipe(takeUntil(this.unSubs[0])).subscribe((routeData) => { @@ -28,10 +28,14 @@ export class CLOnChainSendComponent implements OnInit, OnDestroy { } openSendFundsModal() { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - sweepAll: this.sweepAll, - component: CLOnChainSendModalComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + sweepAll: this.sweepAll, + component: CLOnChainSendModalComponent + } + } + })); } ngOnDestroy() { diff --git a/src/app/clightning/on-chain/on-chain.component.spec.ts b/src/app/clightning/on-chain/on-chain.component.spec.ts index ba22f320..01fe4e1f 100644 --- a/src/app/clightning/on-chain/on-chain.component.spec.ts +++ b/src/app/clightning/on-chain/on-chain.component.spec.ts @@ -3,7 +3,10 @@ import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; import { SharedModule } from '../../shared/shared.module'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { CLOnChainComponent } from './on-chain.component'; import { CLOnChainUtxosComponent } from './utxo-tables/utxos/utxos.component'; import { CLOnChainSendComponent } from './on-chain-send/on-chain-send.component'; @@ -26,12 +29,7 @@ describe('CLOnChainComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/on-chain/on-chain.component.ts b/src/app/clightning/on-chain/on-chain.component.ts index 80ce7d4f..18ab7874 100644 --- a/src/app/clightning/on-chain/on-chain.component.ts +++ b/src/app/clightning/on-chain/on-chain.component.ts @@ -7,8 +7,11 @@ import { faExchangeAlt, faChartPie } from '@fortawesome/free-solid-svg-icons'; import { CLOnChainSendModalComponent } from './on-chain-send-modal/on-chain-send-modal.component'; import { SelNodeChild } from '../../shared/models/RTLconfig'; -import * as RTLActions from '../../store/rtl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { openAlert } from '../../store/rtl.actions'; +import { balance, clNodeSettings } from '../store/cl.selector'; +import { Balance } from '../../shared/models/clModels'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-cl-on-chain', @@ -27,31 +30,37 @@ export class CLOnChainComponent implements OnInit, OnDestroy { public selectedTable = this.tables[0]; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private router: Router, private activatedRoute: ActivatedRoute) {} + constructor(private store: Store, private router: Router, private activatedRoute: ActivatedRoute) { } ngOnInit() { const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.selectedTable = this.tables.find((table) => table.name === this.router.url.substring(this.router.url.lastIndexOf('/') + 1)); this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.selectedTable = this.tables.find((table) => table.name === value.urlAfterRedirects.substring(value.urlAfterRedirects.lastIndexOf('/') + 1)); }); - this.store.select('cl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.balances = [{ title: 'Total Balance', dataValue: rtlStore.balance.totalBalance || 0 }, { title: 'Confirmed', dataValue: rtlStore.balance.confBalance }, { title: 'Unconfirmed', dataValue: rtlStore.balance.unconfBalance }]; + this.store.select(clNodeSettings).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(balance).pipe(takeUntil(this.unSubs[2])). + subscribe((balanceSeletor: { balance: Balance, apiCallStatus: ApiCallStatusPayload }) => { + this.balances = [{ title: 'Total Balance', dataValue: balanceSeletor.balance.totalBalance || 0 }, { title: 'Confirmed', dataValue: balanceSeletor.balance.confBalance }, { title: 'Unconfirmed', dataValue: balanceSeletor.balance.unconfBalance }]; }); } openSendFundsModal(sweepAll: boolean) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - sweepAll: sweepAll, - component: CLOnChainSendModalComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + sweepAll: sweepAll, + component: CLOnChainSendModalComponent + } + } + })); } onSelectedTableIndexChanged(event: number) { diff --git a/src/app/clightning/on-chain/utxo-tables/utxo-tables.component.spec.ts b/src/app/clightning/on-chain/utxo-tables/utxo-tables.component.spec.ts index b17fd4d2..a9887aa8 100644 --- a/src/app/clightning/on-chain/utxo-tables/utxo-tables.component.spec.ts +++ b/src/app/clightning/on-chain/utxo-tables/utxo-tables.component.spec.ts @@ -7,7 +7,10 @@ import { LoggerService } from '../../../shared/services/logger.service'; import { mockDataService, mockLoggerService } from '../../../shared/test-helpers/mock-services'; import { SharedModule } from '../../../shared/shared.module'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CLUTXOTablesComponent } from './utxo-tables.component'; import { CLOnChainUtxosComponent } from './utxos/utxos.component'; @@ -21,12 +24,7 @@ describe('CLUTXOTablesComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/on-chain/utxo-tables/utxo-tables.component.ts b/src/app/clightning/on-chain/utxo-tables/utxo-tables.component.ts index eb5b0975..b3aa352d 100644 --- a/src/app/clightning/on-chain/utxo-tables/utxo-tables.component.ts +++ b/src/app/clightning/on-chain/utxo-tables/utxo-tables.component.ts @@ -6,7 +6,9 @@ import { Store } from '@ngrx/store'; import { UTXO } from '../../../shared/models/clModels'; import { LoggerService } from '../../../shared/services/logger.service'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { utxos } from '../../store/cl.selector'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-cl-utxo-tables', @@ -21,25 +23,24 @@ export class CLUTXOTablesComponent implements OnInit, OnDestroy { public numUtxos = 0; public dustUtxos: UTXO[] = []; public numDustUtxos = 0; - private unSubs: Array> = [new Subject()]; + private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store) {} + constructor(private logger: LoggerService, private store: Store) { } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - if (rtlStore.utxos && rtlStore.utxos.length > 0) { - this.utxos = rtlStore.utxos; + this.store.select(utxos).pipe(takeUntil(this.unSubs[0])). + subscribe((utxosSeletor: { utxos: UTXO[], apiCallStatus: ApiCallStatusPayload }) => { + if (utxosSeletor.utxos && utxosSeletor.utxos.length > 0) { + this.utxos = utxosSeletor.utxos; this.numUtxos = this.utxos.length; - this.dustUtxos = rtlStore.utxos.filter((utxo) => +utxo.value < 1000); + this.dustUtxos = utxosSeletor.utxos.filter((utxo) => +utxo.value < 1000); this.numDustUtxos = this.dustUtxos.length; } - if (rtlStore.utxos && rtlStore.utxos.length > 0) { - this.utxos = rtlStore.utxos; + if (utxosSeletor.utxos && utxosSeletor.utxos.length > 0) { + this.utxos = utxosSeletor.utxos; this.numUtxos = this.utxos.length; } - this.logger.info(rtlStore); + this.logger.info(utxosSeletor); }); } diff --git a/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.html b/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.html index 11422676..52449c4f 100644 --- a/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.html +++ b/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.html @@ -2,12 +2,12 @@
- +
- +
@@ -56,9 +56,9 @@ diff --git a/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.spec.ts b/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.spec.ts index 3bcd7787..7b011361 100644 --- a/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.spec.ts +++ b/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.spec.ts @@ -7,7 +7,10 @@ import { LoggerService } from '../../../../shared/services/logger.service'; import { mockDataService, mockLoggerService } from '../../../../shared/test-helpers/mock-services'; import { SharedModule } from '../../../../shared/shared.module'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { CLOnChainUtxosComponent } from './utxos.component'; describe('CLOnChainUtxosComponent', () => { @@ -20,12 +23,7 @@ describe('CLOnChainUtxosComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.ts b/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.ts index 5a83cd16..c530def7 100644 --- a/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.ts +++ b/src/app/clightning/on-chain/utxo-tables/utxos/utxos.component.ts @@ -8,12 +8,13 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { UTXO } from '../../../../shared/models/clModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../../shared/services/logger.service'; import { CommonService } from '../../../../shared/services/common.service'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert } from '../../../../store/rtl.actions'; +import { utxos } from '../../../store/cl.selector'; @Component({ selector: 'rtl-cl-on-chain-utxos', @@ -25,8 +26,8 @@ import * as fromRTLReducer from '../../../../store/rtl.reducers'; }) export class CLOnChainUtxosComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; @Input() numDustUTXOs = 0; @Input() isDustUTXO = false; @Input() utxos: UTXO[]; @@ -38,11 +39,12 @@ export class CLOnChainUtxosComponent implements OnInit, OnChanges, AfterViewInit public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListCL = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -60,15 +62,14 @@ export class CLOnChainUtxosComponent implements OnInit, OnChanges, AfterViewInit } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(utxos).pipe(takeUntil(this.unSubs[0])). + subscribe((utxosSeletor: { utxos: UTXO[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchUTXOs.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchUTXOs.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchUTXOs.message) : this.apisCallStatus.FetchUTXOs.message; + this.apiCallStatus = utxosSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.logger.info(rtlStore); + this.logger.info(utxosSeletor); }); } @@ -84,24 +85,28 @@ export class CLOnChainUtxosComponent implements OnInit, OnChanges, AfterViewInit } } - applyFilter(selFilter: any) { - this.listUTXOs.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.listUTXOs.filter = this.selFilter.trim().toLowerCase(); } onUTXOClick(selUtxo: UTXO, event: any) { const reorderedUTXO = [ [{ key: 'txid', value: selUtxo.txid, title: 'Transaction ID', width: 100 }], [{ key: 'output', value: selUtxo.output, title: 'Output', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'value', value: selUtxo.value, title: 'Value (Sats)', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'value', value: selUtxo.value, title: 'Value (Sats)', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'status', value: this.commonService.titleCase(selUtxo.status), title: 'Status', width: 50, type: DataTypeEnum.STRING }, - { key: 'blockheight', value: selUtxo.blockheight, title: 'Blockheight', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'blockheight', value: selUtxo.blockheight, title: 'Blockheight', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'address', value: selUtxo.address, title: 'Address', width: 100 }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'UTXO Information', - message: reorderedUTXO - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'UTXO Information', + message: reorderedUTXO + } + } + })); } loadUTXOsTable(utxos: any[]) { @@ -110,6 +115,7 @@ export class CLOnChainUtxosComponent implements OnInit, OnChanges, AfterViewInit this.listUTXOs.sort = this.sort; this.listUTXOs.filterPredicate = (utxo: UTXO, fltr: string) => JSON.stringify(utxo).toLowerCase().includes(fltr); this.listUTXOs.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.listUTXOs); } diff --git a/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.html b/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.html index 5d9a53d2..3939413a 100644 --- a/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.html +++ b/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.html @@ -43,8 +43,8 @@
- - + +
diff --git a/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.spec.ts b/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.spec.ts index d335cdb5..d3a5f0d7 100644 --- a/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.spec.ts +++ b/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.spec.ts @@ -8,7 +8,10 @@ import { LoggerService } from '../../../../shared/services/logger.service'; import { SharedModule } from '../../../../shared/shared.module'; import { mockCLEffects, mockDataService, mockECLEffects, mockLNDEffects, mockLoggerService, mockMatDialogRef, mockRTLEffects } from '../../../../shared/test-helpers/mock-services'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { CLBumpFeeComponent } from './bump-fee.component'; describe('CLBumpFeeComponent', () => { @@ -21,12 +24,7 @@ describe('CLBumpFeeComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.ts b/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.ts index 171047b3..8afc01dc 100644 --- a/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.ts +++ b/src/app/clightning/peers-channels/channels/bump-fee-modal/bump-fee.component.ts @@ -10,12 +10,12 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { Channel } from '../../../../shared/models/clModels'; import { CLChannelInformation } from '../../../../shared/models/alertData'; -import { ADDRESS_TYPES, APICallStatusEnum } from '../../../../shared/services/consts-enums-functions'; +import { ADDRESS_TYPES, APICallStatusEnum, CLActions } from '../../../../shared/services/consts-enums-functions'; import { LoggerService } from '../../../../shared/services/logger.service'; -import * as CLActions from '../../../store/cl.actions'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { openSnackBar } from '../../../../store/rtl.actions'; +import { getNewAddress, setChannelTransaction } from '../../../store/cl.actions'; @Component({ selector: 'rtl-cl-bump-fee', @@ -41,7 +41,7 @@ export class CLBumpFeeComponent implements OnInit, OnDestroy { public bumpFeeError = ''; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private actions: Actions, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLChannelInformation, private store: Store, private logger: LoggerService, private snackBar: MatSnackBar) { } + constructor(private actions: Actions, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLChannelInformation, private store: Store, private logger: LoggerService, private snackBar: MatSnackBar) { } ngOnInit() { this.bumpFeeChannel = this.data.channel; @@ -52,23 +52,25 @@ export class CLBumpFeeComponent implements OnInit, OnDestroy { return true; } this.bumpFeeError = ''; - this.store.dispatch(new CLActions.GetNewAddress(ADDRESS_TYPES[0])); + this.store.dispatch(getNewAddress({ payload: ADDRESS_TYPES[0] })); this.actions.pipe(filter((action) => action.type === CLActions.SET_NEW_ADDRESS_CL), take(1)). - subscribe((action: CLActions.SetNewAddress) => { - this.store.dispatch(new CLActions.SetChannelTransaction({ - address: action.payload, - satoshis: 'all', - feeRate: this.fees, - utxos: [this.bumpFeeChannel.funding_txid + ':' + this.outputIndex.toString()] + subscribe((action: any) => { + this.store.dispatch(setChannelTransaction({ + payload: { + address: action.payload, + satoshis: 'all', + feeRate: this.fees, + utxos: [this.bumpFeeChannel.funding_txid + ':' + this.outputIndex.toString()] + } })); }); this.actions.pipe(filter((action) => action.type === CLActions.SET_CHANNEL_TRANSACTION_RES_CL), take(1)). - subscribe((action: CLActions.SetChannelTransactionRes) => { - this.store.dispatch(new RTLActions.OpenSnackBar('Successfully bumped the fee. Use the block explorer to verify transaction.')); + subscribe((action: any) => { + this.store.dispatch(openSnackBar({ payload: 'Successfully bumped the fee. Use the block explorer to verify transaction.' })); this.dialogRef.close(); }); this.actions.pipe(filter((action) => action.type === CLActions.UPDATE_API_CALL_STATUS_CL), takeUntil(this.unSubs[0])). - subscribe((action: CLActions.UpdateAPICallStatus) => { + subscribe((action: any) => { if (action.payload.status === APICallStatusEnum.ERROR && (action.payload.action === 'SetChannelTransaction' || action.payload.action === 'GenerateNewAddress')) { this.logger.error(action.payload.message); this.bumpFeeError = action.payload.message; diff --git a/src/app/clightning/peers-channels/channels/channel-information-modal/channel-information.component.html b/src/app/clightning/peers-channels/channels/channel-information-modal/channel-information.component.html index 2437b4ce..511b4bb0 100644 --- a/src/app/clightning/peers-channels/channels/channel-information-modal/channel-information.component.html +++ b/src/app/clightning/peers-channels/channels/channel-information-modal/channel-information.component.html @@ -19,21 +19,21 @@ {{channel.alias}} - +

Channel ID

{{channel.channel_id}}
- +

Peer Public Key

{{channel.id}}
- +

mSatoshi to Us

@@ -82,12 +82,12 @@
- - - + +
diff --git a/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html b/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html index 430ba64a..865a67b6 100644 --- a/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html +++ b/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html @@ -5,7 +5,7 @@ - +
Transaction ID -

No utxos available.

-

Getting utxos...

-

{{errorMessage}}

+

No utxos available.

+

Getting utxos...

+

{{errorMessage}}

@@ -91,10 +91,10 @@ diff --git a/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts b/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts index 6e6258ab..fb22a584 100644 --- a/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts +++ b/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts @@ -9,7 +9,10 @@ import { mockCLEffects, mockDataService, mockLoggerService, mockECLEffects, mock import { SharedModule } from '../../../../../shared/shared.module'; import { RTLEffects } from '../../../../../store/rtl.effects'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CLEffects } from '../../../../store/cl.effects'; import { CLChannelOpenTableComponent } from './channel-open-table.component'; @@ -23,12 +26,7 @@ describe('CLChannelOpenTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts b/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts index 5c4c8e80..600d95da 100644 --- a/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts +++ b/src/app/clightning/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts @@ -7,9 +7,9 @@ import { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { Channel, GetInfo, ChannelEdge } from '../../../../../shared/models/clModels'; +import { Channel, GetInfo, ChannelEdge, Balance } from '../../../../../shared/models/clModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, FEE_RATE_TYPES, APICallStatusEnum, UI_MESSAGES } from '../../../../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { CommonService } from '../../../../../shared/services/common.service'; @@ -17,9 +17,10 @@ import { CLChannelInformationComponent } from '../../channel-information-modal/c import { CLEffects } from '../../../../store/cl.effects'; import { RTLEffects } from '../../../../../store/rtl.effects'; -import * as CLActions from '../../../../store/cl.actions'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { openAlert, openConfirmation } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { channelLookup, closeChannel, updateChannel } from '../../../../store/cl.actions'; +import { channels, nodeInfoAndBalanceAndNumPeers } from '../../../../store/cl.selector'; @Component({ selector: 'rtl-cl-channel-open-table', @@ -31,8 +32,8 @@ import * as fromRTLReducer from '../../../../../store/rtl.reducers'; }) export class CLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public faEye = faEye; public faEyeSlash = faEyeSlash public totalBalance = 0; @@ -50,11 +51,11 @@ export class CLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDes public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListCL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private clEffects: CLEffects, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private clEffects: CLEffects, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -72,22 +73,25 @@ export class CLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDes } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(nodeInfoAndBalanceAndNumPeers).pipe(takeUntil(this.unSubs[0])). + subscribe((infoBalNumpeersSelector: { information: GetInfo, balance: Balance, numPeers: number }) => { + this.information = infoBalNumpeersSelector.information; + this.numPeers = infoBalNumpeersSelector.numPeers; + this.totalBalance = infoBalNumpeersSelector.balance.totalBalance; + this.logger.info(infoBalNumpeersSelector); + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[1])). + subscribe((channelsSeletor: { activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchChannels.message) : this.apisCallStatus.FetchChannels.message; + this.apiCallStatus = channelsSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.information = rtlStore.information; - this.numPeers = (rtlStore.peers && rtlStore.peers.length) ? rtlStore.peers.length : 0; - this.totalBalance = rtlStore.balance.totalBalance; - this.channelsData = rtlStore.allChannels.filter((channel) => channel.state === 'CHANNELD_NORMAL' && channel.connected); + this.channelsData = channelsSeletor.activeChannels; if (this.channelsData.length > 0) { this.loadChannelsTable(this.channelsData); } - this.logger.info(rtlStore); + this.logger.info(channelsSeletor); }); } @@ -98,30 +102,36 @@ export class CLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDes } onViewRemotePolicy(selChannel: Channel) { - this.store.dispatch(new CLActions.ChannelLookup({ uiMessage: UI_MESSAGES.GET_REMOTE_POLICY, shortChannelID: selChannel.short_channel_id, showError: true })); - this.clEffects.setLookupCL. - pipe(take(1)). - subscribe((resLookup: ChannelEdge[]): boolean|void => { - if (resLookup.length === 0) { - return false; - } - let remoteNode: ChannelEdge = {}; - if (resLookup[0].source !== this.information.id) { - remoteNode = resLookup[0]; - } else { - remoteNode = resLookup[1]; - } - const reorderedChannelPolicy = [ - [{ key: 'base_fee_millisatoshi', value: remoteNode.base_fee_millisatoshi, title: 'Base Fees (mSats)', width: 34, type: DataTypeEnum.NUMBER }, - { key: 'fee_per_millionth', value: remoteNode.fee_per_millionth, title: 'Fee/Millionth', width: 33, type: DataTypeEnum.NUMBER }, - { key: 'delay', value: remoteNode.delay, title: 'Delay', width: 33, type: DataTypeEnum.NUMBER }] - ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Remote Channel Policy', - message: reorderedChannelPolicy - } })); - }); + this.store.dispatch(channelLookup({ payload: { uiMessage: UI_MESSAGES.GET_REMOTE_POLICY, shortChannelID: selChannel.short_channel_id, showError: true } })); + this.clEffects.setLookupCL.pipe(take(1)).subscribe((resLookup: ChannelEdge[]): boolean | void => { + if (resLookup.length === 0) { + return false; + } + let remoteNode: ChannelEdge = {}; + if (resLookup[0].source !== this.information.id) { + remoteNode = resLookup[0]; + } else { + remoteNode = resLookup[1]; + } + const reorderedChannelPolicy = [ + [{ key: 'base_fee_millisatoshi', value: remoteNode.base_fee_millisatoshi, title: 'Base Fees (mSats)', width: 34, type: DataTypeEnum.NUMBER }, + { key: 'fee_per_millionth', value: remoteNode.fee_per_millionth, title: 'Fee/Millionth', width: 33, type: DataTypeEnum.NUMBER }, + { key: 'delay', value: remoteNode.delay, title: 'Delay', width: 33, type: DataTypeEnum.NUMBER }] + ]; + const titleMsg = 'Remote policy for Channel: ' + ((!selChannel.alias && !selChannel.short_channel_id) ? selChannel.channel_id : (selChannel.alias && selChannel.short_channel_id) ? selChannel.alias + ' (' + selChannel.short_channel_id + ')' : selChannel.alias ? selChannel.alias : selChannel.short_channel_id); + setTimeout(() => { + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Remote Channel Policy', + titleMessage: titleMsg, + message: reorderedChannelPolicy + } + } + })); + }, 0); + }); } onChannelUpdate(channelToUpdate: any) { @@ -130,65 +140,71 @@ export class CLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDes } if (channelToUpdate === 'all') { const confirmationMsg = []; - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Update Fee Policy', - noBtnText: 'Cancel', - yesBtnText: 'Update All', - message: confirmationMsg, - titleMessage: 'Update fee policy for all channels', - flgShowInput: true, - getInputs: [ - { placeholder: 'Base Fee (mSats)', inputType: 'number', inputValue: 1000, width: 48 }, - { placeholder: 'Fee Rate (mili mSats)', inputType: 'number', inputValue: 1, min: 1, width: 48, hintFunction: this.percentHintFunction } - ] - } })); - this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[1])). - subscribe((confirmRes) => { - if (confirmRes) { - const base_fee = confirmRes[0].inputValue; - const fee_rate = confirmRes[1].inputValue; - this.store.dispatch(new CLActions.UpdateChannels({ baseFeeMsat: base_fee, feeRate: fee_rate, channelId: 'all' })); - } - }); - } else { - this.myChanPolicy = { fee_base_msat: 0, fee_rate_milli_msat: 0 }; - this.store.dispatch(new CLActions.ChannelLookup({ uiMessage: UI_MESSAGES.GET_CHAN_POLICY, shortChannelID: channelToUpdate.short_channel_id, showError: false })); - this.clEffects.setLookupCL. - pipe(take(1)). - subscribe((resLookup: ChannelEdge[]) => { - if (resLookup.length > 0 && resLookup[0].source === this.information.id) { - this.myChanPolicy = { fee_base_msat: resLookup[0].base_fee_millisatoshi, fee_rate_milli_msat: resLookup[0].fee_per_millionth }; - } else if (resLookup.length > 1 && resLookup[1].source === this.information.id) { - this.myChanPolicy = { fee_base_msat: resLookup[1].base_fee_millisatoshi, fee_rate_milli_msat: resLookup[1].fee_per_millionth }; - } else { - this.myChanPolicy = { fee_base_msat: 0, fee_rate_milli_msat: 0 }; - } - this.logger.info(this.myChanPolicy); - const titleMsg = 'Update fee policy for Channel: ' + channelToUpdate.channel_id; - const confirmationMsg = []; - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { + this.store.dispatch(openConfirmation({ + payload: { + data: { type: AlertTypeEnum.CONFIRM, alertTitle: 'Update Fee Policy', noBtnText: 'Cancel', - yesBtnText: 'Update', + yesBtnText: 'Update All', message: confirmationMsg, - titleMessage: titleMsg, + titleMessage: 'Update fee policy for all channels', flgShowInput: true, getInputs: [ - { placeholder: 'Base Fee (mSats)', inputType: 'number', inputValue: (this.myChanPolicy.fee_base_msat === '') ? 0 : this.myChanPolicy.fee_base_msat, width: 48 }, - { placeholder: 'Fee Rate (mili mSats)', inputType: 'number', inputValue: this.myChanPolicy.fee_rate_milli_msat, min: 1, width: 48, hintFunction: this.percentHintFunction } + { placeholder: 'Base Fee (mSats)', inputType: 'number', inputValue: 1000, width: 48 }, + { placeholder: 'Fee Rate (mili mSats)', inputType: 'number', inputValue: 1, min: 1, width: 48, hintFunction: this.percentHintFunction } ] - } })); - }); + } + } + })); + this.rtlEffects.closeConfirm.pipe(takeUntil(this.unSubs[1])).subscribe((confirmRes) => { + if (confirmRes) { + const base_fee = confirmRes[0].inputValue; + const fee_rate = confirmRes[1].inputValue; + this.store.dispatch(updateChannel({ payload: { baseFeeMsat: base_fee, feeRate: fee_rate, channelId: 'all' } })); + } + }); + } else { + this.myChanPolicy = { fee_base_msat: 0, fee_rate_milli_msat: 0 }; + this.store.dispatch(channelLookup({ payload: { uiMessage: UI_MESSAGES.GET_CHAN_POLICY, shortChannelID: channelToUpdate.short_channel_id, showError: false } })); + this.clEffects.setLookupCL.pipe(take(1)).subscribe((resLookup: ChannelEdge[]) => { + if (resLookup.length > 0 && resLookup[0].source === this.information.id) { + this.myChanPolicy = { fee_base_msat: resLookup[0].base_fee_millisatoshi, fee_rate_milli_msat: resLookup[0].fee_per_millionth }; + } else if (resLookup.length > 1 && resLookup[1].source === this.information.id) { + this.myChanPolicy = { fee_base_msat: resLookup[1].base_fee_millisatoshi, fee_rate_milli_msat: resLookup[1].fee_per_millionth }; + } else { + this.myChanPolicy = { fee_base_msat: 0, fee_rate_milli_msat: 0 }; + } + this.logger.info(this.myChanPolicy); + const titleMsg = 'Update fee policy for Channel: ' + ((!channelToUpdate.alias && !channelToUpdate.short_channel_id) ? channelToUpdate.channel_id : (channelToUpdate.alias && channelToUpdate.short_channel_id) ? channelToUpdate.alias + ' (' + channelToUpdate.short_channel_id + ')' : channelToUpdate.alias ? channelToUpdate.alias : channelToUpdate.short_channel_id); + const confirmationMsg = []; + setTimeout(() => { + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Update Fee Policy', + noBtnText: 'Cancel', + yesBtnText: 'Update', + message: confirmationMsg, + titleMessage: titleMsg, + flgShowInput: true, + getInputs: [ + { placeholder: 'Base Fee (mSats)', inputType: 'number', inputValue: (this.myChanPolicy.fee_base_msat === '') ? 0 : this.myChanPolicy.fee_base_msat, width: 48 }, + { placeholder: 'Fee Rate (mili mSats)', inputType: 'number', inputValue: this.myChanPolicy.fee_rate_milli_msat, min: 1, width: 48, hintFunction: this.percentHintFunction } + ] + } + } + })); + }, 0); + }); this.rtlEffects.closeConfirm. pipe(takeUntil(this.unSubs[2])). subscribe((confirmRes) => { if (confirmRes) { const base_fee = confirmRes[0].inputValue; const fee_rate = confirmRes[1].inputValue; - this.store.dispatch(new CLActions.UpdateChannels({ baseFeeMsat: base_fee, feeRate: fee_rate, channelId: channelToUpdate.channel_id })); + this.store.dispatch(updateChannel({ payload: { baseFeeMsat: base_fee, feeRate: fee_rate, channelId: channelToUpdate.channel_id } })); } }); } @@ -200,18 +216,22 @@ export class CLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDes } onChannelClose(channelToClose: Channel) { - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Close Channel', - titleMessage: 'Closing channel: ' + channelToClose.channel_id, - noBtnText: 'Cancel', - yesBtnText: 'Close Channel' - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Close Channel', + titleMessage: 'Closing channel: ' + ((!channelToClose.alias && !channelToClose.short_channel_id) ? channelToClose.channel_id : (channelToClose.alias && channelToClose.short_channel_id) ? channelToClose.alias + ' (' + channelToClose.short_channel_id + ')' : channelToClose.alias ? channelToClose.alias : channelToClose.short_channel_id), + noBtnText: 'Cancel', + yesBtnText: 'Close Channel' + } + } + })); this.rtlEffects.closeConfirm. pipe(takeUntil(this.unSubs[3])). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new CLActions.CloseChannel({ channelId: channelToClose.channel_id, force: false })); + this.store.dispatch(closeChannel({ payload: { id: channelToClose.id, channelId: channelToClose.channel_id, force: false } })); } }); } @@ -221,11 +241,15 @@ export class CLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDes } onChannelClick(selChannel: Channel, event: any) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - channel: selChannel, - showCopy: true, - component: CLChannelInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: selChannel, + showCopy: true, + component: CLChannelInformationComponent + } + } + })); } loadChannelsTable(mychannels) { @@ -233,16 +257,17 @@ export class CLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDes this.channels = new MatTableDataSource([...mychannels]); this.channels.filterPredicate = (channel: Channel, fltr: string) => { const newChannel = ((channel.connected) ? 'connected' : 'disconnected') + (channel.channel_id ? channel.channel_id.toLowerCase() : '') + - (channel.short_channel_id ? channel.short_channel_id.toLowerCase() : '') + (channel.id ? channel.id.toLowerCase() : '') + (channel.alias ? channel.alias.toLowerCase() : '') + - (channel.private ? 'private' : 'public') + (channel.state ? channel.state.toLowerCase() : '') + - (channel.funding_txid ? channel.funding_txid.toLowerCase() : '') + (channel.msatoshi_to_us ? channel.msatoshi_to_us : '') + - (channel.msatoshi_total ? channel.msatoshi_total : '') + (channel.their_channel_reserve_satoshis ? channel.their_channel_reserve_satoshis : '') + - (channel.our_channel_reserve_satoshis ? channel.our_channel_reserve_satoshis : '') + (channel.spendable_msatoshi ? channel.spendable_msatoshi : ''); + (channel.short_channel_id ? channel.short_channel_id.toLowerCase() : '') + (channel.id ? channel.id.toLowerCase() : '') + (channel.alias ? channel.alias.toLowerCase() : '') + + (channel.private ? 'private' : 'public') + (channel.state ? channel.state.toLowerCase() : '') + + (channel.funding_txid ? channel.funding_txid.toLowerCase() : '') + (channel.msatoshi_to_us ? channel.msatoshi_to_us : '') + + (channel.msatoshi_total ? channel.msatoshi_total : '') + (channel.their_channel_reserve_satoshis ? channel.their_channel_reserve_satoshis : '') + + (channel.our_channel_reserve_satoshis ? channel.our_channel_reserve_satoshis : '') + (channel.spendable_msatoshi ? channel.spendable_msatoshi : ''); return newChannel.includes(fltr); }; this.channels.sort = this.sort; this.channels.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.channels.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.channels); } diff --git a/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html b/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html index 5e2ab8bb..7305d9fd 100644 --- a/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html +++ b/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html @@ -5,7 +5,7 @@ - +
-

No peers connected. Add a peer in order to open a channel.

-

No channel available.

-

Getting channels...

-

{{errorMessage}}

+

No peers connected. Add a peer in order to open a channel.

+

No channel available.

+

Getting channels...

+

{{errorMessage}}

@@ -65,10 +65,10 @@ diff --git a/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts b/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts index 54e2846b..f6af5915 100644 --- a/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts +++ b/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; @@ -23,12 +26,7 @@ describe('CLChannelPendingTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts b/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts index ab38e306..8ecdfde8 100644 --- a/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts +++ b/src/app/clightning/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts @@ -6,18 +6,19 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { GetInfo, Channel } from '../../../../../shared/models/clModels'; +import { GetInfo, Channel, Balance } from '../../../../../shared/models/clModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, FEE_RATE_TYPES, AlertTypeEnum, APICallStatusEnum, CLChannelPendingState } from '../../../../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { CommonService } from '../../../../../shared/services/common.service'; import { CLChannelInformationComponent } from '../../channel-information-modal/channel-information.component'; import { RTLEffects } from '../../../../../store/rtl.effects'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as CLActions from '../../../../store/cl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; import { CLBumpFeeComponent } from '../../bump-fee-modal/bump-fee.component'; +import { openAlert, openConfirmation } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { closeChannel } from '../../../../store/cl.actions'; +import { channels, nodeInfoAndBalanceAndNumPeers } from '../../../../store/cl.selector'; @Component({ selector: 'rtl-cl-channel-pending-table', @@ -29,8 +30,8 @@ import { CLBumpFeeComponent } from '../../bump-fee-modal/bump-fee.component'; }) export class CLChannelPendingTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public isCompatibleVersion = false; public totalBalance = 0; public displayedColumns: any[] = []; @@ -48,11 +49,11 @@ export class CLChannelPendingTableComponent implements OnInit, AfterViewInit, On public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListCL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -70,26 +71,29 @@ export class CLChannelPendingTableComponent implements OnInit, AfterViewInit, On } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchChannels.message) : this.apisCallStatus.FetchChannels.message; - } - this.information = rtlStore.information; + this.store.select(nodeInfoAndBalanceAndNumPeers).pipe(takeUntil(this.unSubs[0])). + subscribe((infoBalNumpeersSelector: { information: GetInfo, balance: Balance, numPeers: number }) => { + this.information = infoBalNumpeersSelector.information; if (this.information.api_version) { this.isCompatibleVersion = this.commonService.isVersionCompatible(this.information.api_version, '0.4.2'); } - this.numPeers = (rtlStore.peers && rtlStore.peers.length) ? rtlStore.peers.length : 0; - this.totalBalance = rtlStore.balance.totalBalance; - this.channelsData = rtlStore.allChannels.filter((channel) => !(channel.state === 'CHANNELD_NORMAL' && channel.connected)); + this.numPeers = infoBalNumpeersSelector.numPeers; + this.totalBalance = infoBalNumpeersSelector.balance.totalBalance; + this.logger.info(infoBalNumpeersSelector); + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[1])). + subscribe((channelsSeletor: { activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessage = ''; + this.apiCallStatus = channelsSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; + } + this.channelsData = [...channelsSeletor.pendingChannels, ...channelsSeletor.inactiveChannels]; this.channelsData = this.channelsData.sort((a, b) => ((this.CLChannelPendingState[a.state] >= this.CLChannelPendingState[b.state]) ? 1 : -1)); if (this.channelsData && this.channelsData.length > 0) { this.loadChannelsTable(this.channelsData); } - this.logger.info(rtlStore); + this.logger.info(channelsSeletor); }); } @@ -104,33 +108,45 @@ export class CLChannelPendingTableComponent implements OnInit, AfterViewInit, On } onBumpFee(selChannel: Channel) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - channel: selChannel, - component: CLBumpFeeComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: selChannel, + component: CLBumpFeeComponent + } + } + })); } onChannelClick(selChannel: Channel, event: any) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - channel: selChannel, - showCopy: true, - component: CLChannelInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: selChannel, + showCopy: true, + component: CLChannelInformationComponent + } + } + })); } onChannelClose(channelToClose: Channel) { - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Force Close Channel', - titleMessage: 'Force closing channel: ' + channelToClose.channel_id, - noBtnText: 'Cancel', - yesBtnText: 'Force Close' - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Force Close Channel', + titleMessage: 'Force closing channel: ' + ((!channelToClose.alias && !channelToClose.short_channel_id) ? channelToClose.channel_id : (channelToClose.alias && channelToClose.short_channel_id) ? channelToClose.alias + ' (' + channelToClose.short_channel_id + ')' : channelToClose.alias ? channelToClose.alias : channelToClose.short_channel_id), + noBtnText: 'Cancel', + yesBtnText: 'Force Close' + } + } + })); this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[3])). + pipe(takeUntil(this.unSubs[2])). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new CLActions.CloseChannel({ channelId: channelToClose.channel_id, force: true })); + this.store.dispatch(closeChannel({ payload: { id: channelToClose.id, channelId: channelToClose.channel_id, force: true } })); } }); } @@ -140,11 +156,11 @@ export class CLChannelPendingTableComponent implements OnInit, AfterViewInit, On this.channels = new MatTableDataSource([...mychannels]); this.channels.filterPredicate = (channel: Channel, fltr: string) => { const newChannel = ((channel.connected) ? 'connected' : 'disconnected') + (channel.channel_id ? channel.channel_id.toLowerCase() : '') + - (channel.short_channel_id ? channel.short_channel_id.toLowerCase() : '') + (channel.id ? channel.id.toLowerCase() : '') + (channel.alias ? channel.alias.toLowerCase() : '') + - (channel.private ? 'private' : 'public') + ((channel.state && this.CLChannelPendingState[channel.state]) ? this.CLChannelPendingState[channel.state].toLowerCase() : '') + - (channel.funding_txid ? channel.funding_txid.toLowerCase() : '') + (channel.msatoshi_to_us ? channel.msatoshi_to_us : '') + - (channel.msatoshi_total ? channel.msatoshi_total : '') + (channel.their_channel_reserve_satoshis ? channel.their_channel_reserve_satoshis : '') + - (channel.our_channel_reserve_satoshis ? channel.our_channel_reserve_satoshis : '') + (channel.spendable_msatoshi ? channel.spendable_msatoshi : ''); + (channel.short_channel_id ? channel.short_channel_id.toLowerCase() : '') + (channel.id ? channel.id.toLowerCase() : '') + (channel.alias ? channel.alias.toLowerCase() : '') + + (channel.private ? 'private' : 'public') + ((channel.state && this.CLChannelPendingState[channel.state]) ? this.CLChannelPendingState[channel.state].toLowerCase() : '') + + (channel.funding_txid ? channel.funding_txid.toLowerCase() : '') + (channel.msatoshi_to_us ? channel.msatoshi_to_us : '') + + (channel.msatoshi_total ? channel.msatoshi_total : '') + (channel.their_channel_reserve_satoshis ? channel.their_channel_reserve_satoshis : '') + + (channel.our_channel_reserve_satoshis ? channel.our_channel_reserve_satoshis : '') + (channel.spendable_msatoshi ? channel.spendable_msatoshi : ''); return newChannel.includes(fltr); }; this.channels.sort = this.sort; diff --git a/src/app/clightning/peers-channels/channels/channels-tables/channels-tables.component.spec.ts b/src/app/clightning/peers-channels/channels/channels-tables/channels-tables.component.spec.ts index f76badaf..3ba62811 100644 --- a/src/app/clightning/peers-channels/channels/channels-tables/channels-tables.component.spec.ts +++ b/src/app/clightning/peers-channels/channels/channels-tables/channels-tables.component.spec.ts @@ -8,7 +8,10 @@ import { LoggerService } from '../../../../shared/services/logger.service'; import { mockDataService, mockLoggerService } from '../../../../shared/test-helpers/mock-services'; import { SharedModule } from '../../../../shared/shared.module'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { CLChannelsTablesComponent } from './channels-tables.component'; describe('CLChannelsTablesComponent', () => { @@ -22,12 +25,7 @@ describe('CLChannelsTablesComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/peers-channels/channels/channels-tables/channels-tables.component.ts b/src/app/clightning/peers-channels/channels/channels-tables/channels-tables.component.ts index e7b5f310..a0c9b94b 100644 --- a/src/app/clightning/peers-channels/channels/channels-tables/channels-tables.component.ts +++ b/src/app/clightning/peers-channels/channels/channels-tables/channels-tables.component.ts @@ -7,11 +7,13 @@ import { Store } from '@ngrx/store'; import { CLOpenChannelComponent } from '../open-channel-modal/open-channel.component'; import { CommonService } from '../../../../shared/services/common.service'; import { LoggerService } from '../../../../shared/services/logger.service'; -import { GetInfo, Peer, UTXO } from '../../../../shared/models/clModels'; +import { Balance, Channel, GetInfo, Peer, UTXO } from '../../../../shared/models/clModels'; import { SelNodeChild } from '../../../../shared/models/RTLconfig'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert } from '../../../../store/rtl.actions'; +import { channels, nodeInfoAndNodeSettingsAndBalance, peers, utxos } from '../../../store/cl.selector'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-cl-channels-tables', @@ -29,39 +31,36 @@ export class CLChannelsTablesComponent implements OnInit, OnDestroy { public totalBalance = 0; public links = [{ link: 'open', name: 'Open' }, { link: 'pending', name: 'Pending/Inactive' }]; public activeLink = 0; - private unSubs: Array> = [new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private commonService: CommonService, private router: Router) {} + constructor(private logger: LoggerService, private store: Store, private commonService: CommonService, private router: Router) { } ngOnInit() { this.activeLink = this.links.findIndex((link) => link.link === this.router.url.substring(this.router.url.lastIndexOf('/') + 1)); this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { this.activeLink = this.links.findIndex((link) => link.link === value.urlAfterRedirects.substring(value.urlAfterRedirects.lastIndexOf('/') + 1)); }); - this.store.select('cl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - if (rtlStore.allChannels && rtlStore.allChannels.length) { - this.openChannels = 0; - this.pendingChannels = 0; - rtlStore.allChannels.forEach((channel) => { - if (channel.state === 'CHANNELD_NORMAL' && channel.connected) { - this.openChannels++; - } else { - this.pendingChannels++; - } - }); - } else { - this.openChannels = 0; - this.pendingChannels = 0; - } - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - this.peers = rtlStore.peers; - this.utxos = this.commonService.sortAscByKey(rtlStore.utxos.filter((utxo) => utxo.status === 'confirmed'), 'value'); - this.totalBalance = rtlStore.balance.totalBalance; - this.logger.info(rtlStore); + this.store.select(nodeInfoAndNodeSettingsAndBalance).pipe(takeUntil(this.unSubs[1])). + subscribe((infoSettingsBalSelector: { information: GetInfo, nodeSettings: SelNodeChild, balance: Balance }) => { + this.selNode = infoSettingsBalSelector.nodeSettings; + this.information = infoSettingsBalSelector.information; + this.totalBalance = infoSettingsBalSelector.balance.totalBalance; + this.logger.info(infoSettingsBalSelector); + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[2])). + subscribe((peersSeletor: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.peers = peersSeletor.peers; + }); + this.store.select(utxos).pipe(takeUntil(this.unSubs[3])). + subscribe((utxosSeletor: { utxos: UTXO[], apiCallStatus: ApiCallStatusPayload }) => { + this.utxos = this.commonService.sortAscByKey(utxosSeletor.utxos.filter((utxo) => utxo.status === 'confirmed'), 'value'); + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[4])). + subscribe((channelsSeletor: { activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], apiCallStatus: ApiCallStatusPayload }) => { + this.openChannels = channelsSeletor.activeChannels.length || 0; + this.pendingChannels = (channelsSeletor.pendingChannels.length + channelsSeletor.inactiveChannels.length) || 0; + this.logger.info(channelsSeletor); }); } @@ -72,13 +71,17 @@ export class CLChannelsTablesComponent implements OnInit, OnDestroy { balance: this.totalBalance, utxos: this.utxos, isCompatibleVersion: this.commonService.isVersionCompatible(this.information.version, '0.9.0') && - this.commonService.isVersionCompatible(this.information.api_version, '0.4.0') + this.commonService.isVersionCompatible(this.information.api_version, '0.4.0') }; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - alertTitle: 'Open Channel', - message: peerToAddChannelMessage, - component: CLOpenChannelComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + alertTitle: 'Open Channel', + message: peerToAddChannelMessage, + component: CLOpenChannelComponent + } + } + })); } onSelectedTabChange(event) { diff --git a/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.html b/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.html index 876607a0..eecb1576 100644 --- a/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.html +++ b/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.html @@ -80,8 +80,8 @@ {{channelConnectionError}}
- - + +
diff --git a/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts b/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts index 7fdb1823..c5c062b8 100644 --- a/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts +++ b/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts @@ -4,7 +4,10 @@ import { StoreModule } from '@ngrx/store'; import { CommonService } from '../../../../shared/services/common.service'; import { DataService } from '../../../../shared/services/data.service'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { CLOpenChannelComponent } from './open-channel.component'; import { mockCLEffects, mockDataService, mockECLEffects, mockLNDEffects, mockMatDialogRef, mockRTLEffects } from '../../../../shared/test-helpers/mock-services'; import { EffectsModule } from '@ngrx/effects'; @@ -21,12 +24,7 @@ describe('CLOpenChannelComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.ts b/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.ts index 847f2492..0d9bcef6 100644 --- a/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.ts +++ b/src/app/clightning/peers-channels/channels/open-channel-modal/open-channel.component.ts @@ -11,10 +11,10 @@ import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { CommonService } from '../../../../shared/services/common.service'; import { Peer, GetInfo, UTXO } from '../../../../shared/models/clModels'; import { CLOpenChannelAlert } from '../../../../shared/models/alertData'; -import { APICallStatusEnum, FEE_RATE_TYPES, ScreenSizeEnum } from '../../../../shared/services/consts-enums-functions'; +import { APICallStatusEnum, CLActions, FEE_RATE_TYPES, ScreenSizeEnum } from '../../../../shared/services/consts-enums-functions'; -import * as CLActions from '../../../store/cl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { saveNewChannel } from '../../../store/cl.actions'; @Component({ selector: 'rtl-cl-open-channel', @@ -52,7 +52,7 @@ export class CLOpenChannelComponent implements OnInit, OnDestroy { public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLOpenChannelAlert, private store: Store, private actions: Actions, private decimalPipe: DecimalPipe, private commonService: CommonService) { + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLOpenChannelAlert, private store: Store, private actions: Actions, private decimalPipe: DecimalPipe, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); } @@ -62,12 +62,12 @@ export class CLOpenChannelComponent implements OnInit, OnDestroy { this.totalBalance = this.data.message.balance; this.utxos = this.data.message.utxos; this.alertTitle = this.data.alertTitle; - this.peer = this.data.message.peer ? this.data.message.peer : null; - this.peers = this.data.message.peers && this.data.message.peers.length ? this.data.message.peers : []; + this.peer = this.data.message.peer || null; + this.peers = this.data.message.peers || []; this.actions.pipe( takeUntil(this.unSubs[0]), filter((action) => action.type === CLActions.UPDATE_API_CALL_STATUS_CL || action.type === CLActions.FETCH_CHANNELS_CL)). - subscribe((action: CLActions.UpdateAPICallStatus | CLActions.FetchChannels) => { + subscribe((action: any) => { if (action.type === CLActions.UPDATE_API_CALL_STATUS_CL && action.payload.status === APICallStatusEnum.ERROR && action.payload.action === 'SaveNewChannel') { this.channelConnectionError = action.payload.message; } @@ -184,7 +184,7 @@ export class CLOpenChannelComponent implements OnInit, OnDestroy { newChannel['utxos'] = []; this.selUTXOs.forEach((utxo) => newChannel['utxos'].push(utxo.txid + ':' + utxo.output)); } - this.store.dispatch(new CLActions.SaveNewChannel(newChannel)); + this.store.dispatch(saveNewChannel({ payload: newChannel })); } ngOnDestroy() { diff --git a/src/app/clightning/peers-channels/connect-peer/connect-peer.component.html b/src/app/clightning/peers-channels/connect-peer/connect-peer.component.html index 6f2dfb3d..870dc387 100644 --- a/src/app/clightning/peers-channels/connect-peer/connect-peer.component.html +++ b/src/app/clightning/peers-channels/connect-peer/connect-peer.component.html @@ -21,7 +21,7 @@ {{peerConnectionError}}
- +
@@ -70,13 +70,13 @@ {{channelConnectionError}}
- +
- +
diff --git a/src/app/clightning/peers-channels/connect-peer/connect-peer.component.spec.ts b/src/app/clightning/peers-channels/connect-peer/connect-peer.component.spec.ts index fa9fc726..e7b1ca93 100644 --- a/src/app/clightning/peers-channels/connect-peer/connect-peer.component.spec.ts +++ b/src/app/clightning/peers-channels/connect-peer/connect-peer.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { SharedModule } from '../../../shared/shared.module'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; @@ -23,12 +26,7 @@ describe('CLConnectPeerComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/peers-channels/connect-peer/connect-peer.component.ts b/src/app/clightning/peers-channels/connect-peer/connect-peer.component.ts index bfcf2866..7035d125 100644 --- a/src/app/clightning/peers-channels/connect-peer/connect-peer.component.ts +++ b/src/app/clightning/peers-channels/connect-peer/connect-peer.component.ts @@ -12,10 +12,10 @@ import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; import { Peer } from '../../../shared/models/clModels'; import { CLOpenChannelAlert } from '../../../shared/models/alertData'; -import { APICallStatusEnum, FEE_RATE_TYPES, ScreenSizeEnum } from '../../../shared/services/consts-enums-functions'; +import { APICallStatusEnum, CLActions, FEE_RATE_TYPES, ScreenSizeEnum } from '../../../shared/services/consts-enums-functions'; -import * as CLActions from '../../store/cl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { saveNewChannel, saveNewPeer } from '../../store/cl.actions'; @Component({ selector: 'rtl-cl-connect-peer', @@ -45,7 +45,7 @@ export class CLConnectPeerComponent implements OnInit, OnDestroy { statusFormGroup: FormGroup; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLOpenChannelAlert, private store: Store, private formBuilder: FormBuilder, private actions: Actions, private logger: LoggerService, private commonService: CommonService) { + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLOpenChannelAlert, private store: Store, private formBuilder: FormBuilder, private actions: Actions, private logger: LoggerService, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); } @@ -94,7 +94,7 @@ export class CLConnectPeerComponent implements OnInit, OnDestroy { this.actions.pipe( takeUntil(this.unSubs[2]), filter((action) => action.type === CLActions.NEWLY_ADDED_PEER_CL || action.type === CLActions.FETCH_CHANNELS_CL || action.type === CLActions.UPDATE_API_CALL_STATUS_CL)). - subscribe((action: (CLActions.NewlyAddedPeer | CLActions.FetchChannels | CLActions.UpdateAPICallStatus)) => { + subscribe((action: any) => { if (action.type === CLActions.NEWLY_ADDED_PEER_CL) { this.logger.info(action.payload); this.flgEditable = false; @@ -115,22 +115,25 @@ export class CLConnectPeerComponent implements OnInit, OnDestroy { }); } - onConnectPeer(): boolean|void { + onConnectPeer(): boolean | void { if (!this.peerFormGroup.controls.peerAddress.value) { return true; } this.peerConnectionError = ''; - this.store.dispatch(new CLActions.SaveNewPeer({ id: this.peerFormGroup.controls.peerAddress.value })); + this.store.dispatch(saveNewPeer({ payload: { id: this.peerFormGroup.controls.peerAddress.value } })); } - onOpenChannel(): boolean|void { + onOpenChannel(): boolean | void { if (!this.channelFormGroup.controls.fundingAmount.value || ((this.totalBalance - this.channelFormGroup.controls.fundingAmount.value) < 0) || (this.channelFormGroup.controls.flgMinConf.value && !this.channelFormGroup.controls.minConfValue.value)) { return true; } this.channelConnectionError = ''; - this.store.dispatch(new CLActions.SaveNewChannel({ - peerId: this.newlyAddedPeer.id, satoshis: this.channelFormGroup.controls.fundingAmount.value, announce: !this.channelFormGroup.controls.isPrivate.value, - feeRate: (this.channelFormGroup.controls.selFeeRate.value === 'customperkb' && !this.channelFormGroup.controls.flgMinConf.value && this.channelFormGroup.controls.customFeeRate.value) ? ((this.channelFormGroup.controls.customFeeRate.value * 1000) + 'perkb') : this.channelFormGroup.controls.selFeeRate.value, minconf: this.channelFormGroup.controls.flgMinConf.value ? this.channelFormGroup.controls.minConfValue.value : null + this.store.dispatch(saveNewChannel({ + payload: { + peerId: this.newlyAddedPeer.id, satoshis: this.channelFormGroup.controls.fundingAmount.value, announce: !this.channelFormGroup.controls.isPrivate.value, + feeRate: (this.channelFormGroup.controls.selFeeRate.value === 'customperkb' && !this.channelFormGroup.controls.flgMinConf.value && this.channelFormGroup.controls.customFeeRate.value) ? ((this.channelFormGroup.controls.customFeeRate.value * 1000) + 'perkb') : this.channelFormGroup.controls.selFeeRate.value, + minconf: this.channelFormGroup.controls.flgMinConf.value ? this.channelFormGroup.controls.minConfValue.value : null + } })); } diff --git a/src/app/clightning/peers-channels/connections.component.spec.ts b/src/app/clightning/peers-channels/connections.component.spec.ts index 147ef376..5140dea3 100644 --- a/src/app/clightning/peers-channels/connections.component.spec.ts +++ b/src/app/clightning/peers-channels/connections.component.spec.ts @@ -9,7 +9,10 @@ import { LoggerService } from '../../shared/services/logger.service'; import { mockDataService, mockLoggerService } from '../../shared/test-helpers/mock-services'; import { SharedModule } from '../../shared/shared.module'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { CLConnectionsComponent } from './connections.component'; describe('CLConnectionsComponent', () => { @@ -23,12 +26,7 @@ describe('CLConnectionsComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/peers-channels/connections.component.ts b/src/app/clightning/peers-channels/connections.component.ts index 3ddfa98e..bd172c17 100644 --- a/src/app/clightning/peers-channels/connections.component.ts +++ b/src/app/clightning/peers-channels/connections.component.ts @@ -7,7 +7,10 @@ import { faUsers, faChartPie } from '@fortawesome/free-solid-svg-icons'; import { LoggerService } from '../../shared/services/logger.service'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; +import { balance, channels, clNodeInformation, peers } from '../store/cl.selector'; +import { Balance, Channel, GetInfo, Peer } from '../../shared/models/clModels'; @Component({ selector: 'rtl-cl-connections', @@ -25,21 +28,26 @@ export class CLConnectionsComponent implements OnInit, OnDestroy { public activeLink = 0; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private logger: LoggerService, private router: Router) {} + constructor(private store: Store, private logger: LoggerService, private router: Router) { } ngOnInit() { this.activeLink = this.links.findIndex((link) => link.link === this.router.url.substring(this.router.url.lastIndexOf('/') + 1)); this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { this.activeLink = this.links.findIndex((link) => link.link === value.urlAfterRedirects.substring(value.urlAfterRedirects.lastIndexOf('/') + 1)); }); - this.store.select('cl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.activePeers = (rtlStore.peers && rtlStore.peers.length) ? rtlStore.peers.length : 0; - this.activeChannels = rtlStore.information.num_active_channels; - this.balances = [{ title: 'Total Balance', dataValue: rtlStore.balance.totalBalance || 0 }, { title: 'Confirmed', dataValue: rtlStore.balance.confBalance }, { title: 'Unconfirmed', dataValue: rtlStore.balance.unconfBalance }]; - this.logger.info(rtlStore); + this.store.select(channels).pipe(takeUntil(this.unSubs[1])). + subscribe((channelsSeletor: { activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], apiCallStatus: ApiCallStatusPayload }) => { + this.activeChannels = channelsSeletor.activeChannels.length || 0; + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[2])). + subscribe((peersSeletor: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.activePeers = (peersSeletor.peers && peersSeletor.peers.length) ? peersSeletor.peers.length : 0; + this.logger.info(peersSeletor); + }); + this.store.select(balance).pipe(takeUntil(this.unSubs[3])). + subscribe((balanceSeletor: { balance: Balance, apiCallStatus: ApiCallStatusPayload }) => { + this.balances = [{ title: 'Total Balance', dataValue: balanceSeletor.balance.totalBalance || 0 }, { title: 'Confirmed', dataValue: balanceSeletor.balance.confBalance }, { title: 'Unconfirmed', dataValue: balanceSeletor.balance.unconfBalance }]; }); } diff --git a/src/app/clightning/peers-channels/peers/peers.component.html b/src/app/clightning/peers-channels/peers/peers.component.html index 0a61119d..d4acd5e1 100644 --- a/src/app/clightning/peers-channels/peers/peers.component.html +++ b/src/app/clightning/peers-channels/peers/peers.component.html @@ -10,12 +10,12 @@
- +
- +
-

No peers connected. Add a peer in order to open a channel.

-

No pending/inactive channel available.

-

Getting pending/inactive channels...

-

{{errorMessage}}

+

No peers connected. Add a peer in order to open a channel.

+

No pending/inactive channel available.

+

Getting pending/inactive channels...

+

{{errorMessage}}

@@ -60,14 +60,14 @@ - +
Alias -

No connected peer.

-

Getting peers...

-

{{errorMessage}}

+

No connected peer.

+

Getting peers...

+

{{errorMessage}}

diff --git a/src/app/clightning/peers-channels/peers/peers.component.spec.ts b/src/app/clightning/peers-channels/peers/peers.component.spec.ts index 7c83f3b4..9ad5e88e 100644 --- a/src/app/clightning/peers-channels/peers/peers.component.spec.ts +++ b/src/app/clightning/peers-channels/peers/peers.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -23,12 +26,7 @@ describe('CLPeersComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/clightning/peers-channels/peers/peers.component.ts b/src/app/clightning/peers-channels/peers/peers.component.ts index 64cdc1fa..60272a93 100644 --- a/src/app/clightning/peers-channels/peers/peers.component.ts +++ b/src/app/clightning/peers-channels/peers/peers.component.ts @@ -9,36 +9,34 @@ import { faUsers } from '@fortawesome/free-solid-svg-icons'; import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { Peer, GetInfo } from '../../../shared/models/clModels'; -import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../../shared/models/apiCallsPayload'; +import { Peer, GetInfo, Balance } from '../../../shared/models/clModels'; +import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, ScreenSizeEnum, APICallStatusEnum, CLActions } from '../../../shared/services/consts-enums-functions'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; import { CLConnectPeerComponent } from '../connect-peer/connect-peer.component'; import { CLOpenChannelComponent } from '../channels/open-channel-modal/open-channel.component'; -import { newlyAddedRowAnimation } from '../../../shared/animation/row-animation'; import { RTLEffects } from '../../../store/rtl.effects'; -import * as CLActions from '../../store/cl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../store/rtl.actions'; +import { detachPeer } from '../../store/cl.actions'; +import { nodeInfoAndBalance, peers } from '../../store/cl.selector'; @Component({ selector: 'rtl-cl-peers', templateUrl: './peers.component.html', styleUrls: ['./peers.component.scss'], - animations: [newlyAddedRowAnimation], providers: [ { provide: MatPaginatorIntl, useValue: getPaginatorLabel('Peers') } ] }) export class CLPeersComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public faUsers = faUsers; public newlyAddedPeer = ''; - public flgAnimate = true; public displayedColumns: any[] = []; public peerAddress = ''; public peersData: Peer[] = []; @@ -51,11 +49,12 @@ export class CLPeersComponent implements OnInit, AfterViewInit, OnDestroy { public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListCL = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private actions: Actions, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private actions: Actions, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -73,29 +72,30 @@ export class CLPeersComponent implements OnInit, AfterViewInit, OnDestroy { } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(nodeInfoAndBalance).pipe(takeUntil(this.unSubs[0])). + subscribe((infoBalSelector: { information: GetInfo, balance: Balance }) => { + this.information = infoBalSelector.information; + this.availableBalance = infoBalSelector.balance.totalBalance || 0; + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[1])). + subscribe((peersSeletor: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchPeers.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchPeers.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPeers.message) : this.apisCallStatus.FetchPeers.message; + this.apiCallStatus = peersSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.information = rtlStore.information; - this.availableBalance = rtlStore.balance.totalBalance || 0; - this.peersData = rtlStore.peers ? rtlStore.peers : []; + this.peersData = peersSeletor.peers || []; if (this.peersData.length > 0) { this.loadPeersTable(this.peersData); } - this.logger.info(rtlStore); + this.logger.info(peersSeletor); }); this.actions. pipe( - takeUntil(this.unSubs[1]), + takeUntil(this.unSubs[2]), filter((action) => action.type === CLActions.SET_PEERS_CL) - ).subscribe((setPeers: CLActions.SetPeers) => { + ).subscribe((setPeers: any) => { this.peerAddress = null; - this.flgAnimate = true; }); } @@ -110,22 +110,30 @@ export class CLPeersComponent implements OnInit, AfterViewInit, OnDestroy { [{ key: 'id', value: selPeer.id, title: 'Public Key', width: 100 }], [{ key: 'netaddr', value: selPeer.netaddr, title: 'Address', width: 100 }], [{ key: 'alias', value: selPeer.alias, title: 'Alias', width: 50 }, - { key: 'connected', value: selPeer.connected ? 'True' : 'False', title: 'Connected', width: 50 }] + { key: 'connected', value: selPeer.connected ? 'True' : 'False', title: 'Connected', width: 50 }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Peer Information', - showQRName: 'Public Key', - showQRField: selPeer.id, - message: reorderedPeer - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Peer Information', + showQRName: 'Public Key', + showQRField: selPeer.id, + message: reorderedPeer + } + } + })); } onConnectPeer(selPeer: Peer) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - message: { peer: (selPeer.id ? selPeer : null), information: this.information, balance: this.availableBalance }, - component: CLConnectPeerComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + message: { peer: (selPeer.id ? selPeer : null), information: this.information, balance: this.availableBalance }, + component: CLConnectPeerComponent + } + } + })); } onOpenChannel(peerToAddChannel: Peer) { @@ -134,34 +142,42 @@ export class CLPeersComponent implements OnInit, AfterViewInit, OnDestroy { information: this.information, balance: this.availableBalance }; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - alertTitle: 'Open Channel', - message: peerToAddChannelMessage, - newlyAdded: false, - component: CLOpenChannelComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + alertTitle: 'Open Channel', + message: peerToAddChannelMessage, + newlyAdded: false, + component: CLOpenChannelComponent + } + } + })); } onPeerDetach(peerToDetach: Peer) { const msg = 'Disconnect peer: ' + ((peerToDetach.alias) ? peerToDetach.alias : peerToDetach.id); - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Disconnect Peer', - titleMessage: msg, - noBtnText: 'Cancel', - yesBtnText: 'Disconnect' - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Disconnect Peer', + titleMessage: msg, + noBtnText: 'Cancel', + yesBtnText: 'Disconnect' + } + } + })); this.rtlEffects.closeConfirm. pipe(takeUntil(this.unSubs[3])). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new CLActions.DetachPeer({ id: peerToDetach.id, force: false })); + this.store.dispatch(detachPeer({ payload: { id: peerToDetach.id, force: false } })); } }); } - applyFilter(selFilter: any) { - this.peers.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.peers.filter = this.selFilter.trim().toLowerCase(); } loadPeersTable(peersArr: Peer[]) { @@ -182,6 +198,7 @@ export class CLPeersComponent implements OnInit, AfterViewInit, OnDestroy { this.peers.sort = this.sort; this.peers.filterPredicate = (peer: Peer, fltr: string) => JSON.stringify(peer).toLowerCase().includes(fltr); this.peers.paginator = this.paginator; + this.applyFilter(); } onDownloadCSV() { diff --git a/src/app/clightning/reports/fee/fee-report.component.html b/src/app/clightning/reports/fee/fee-report.component.html index 7c74670c..bcf751af 100644 --- a/src/app/clightning/reports/fee/fee-report.component.html +++ b/src/app/clightning/reports/fee/fee-report.component.html @@ -1,14 +1,14 @@
-
+

Getting fee report...

-
{{errorMessage}}
-
{{errorMessage}}
+
{{(totalFeeMsat / 1000 || 0) | number:'1.0-2'}} Sats/{{(filteredEventsBySelectedPeriod.length || 0) | number}} Events
-
No fee report for the selected period
+
No fee report for the selected period
{ imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/reports/fee/fee-report.component.ts b/src/app/clightning/reports/fee/fee-report.component.ts index 04c23e53..821c0f74 100644 --- a/src/app/clightning/reports/fee/fee-report.component.ts +++ b/src/app/clightning/reports/fee/fee-report.component.ts @@ -1,16 +1,17 @@ -import { Component, OnInit, OnDestroy, HostListener, AfterContentInit } from '@angular/core'; +import { Component, OnInit, OnDestroy, HostListener } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { ForwardingEvent } from '../../../shared/models/clModels'; import { APICallStatusEnum, MONTHS, ScreenSizeEnum, SCROLL_RANGES } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; import { fadeIn } from '../../../shared/animation/opacity-animation'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { forwardingHistory } from '../../store/cl.selector'; @Component({ selector: 'rtl-cl-fee-report', @@ -18,7 +19,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; styleUrls: ['./fee-report.component.scss'], animations: [fadeIn] }) -export class CLFeeReportComponent implements OnInit, AfterContentInit, OnDestroy { +export class CLFeeReportComponent implements OnInit, OnDestroy { public reportPeriod = SCROLL_RANGES[0]; public secondsInADay = 24 * 60 * 60; @@ -39,45 +40,44 @@ export class CLFeeReportComponent implements OnInit, AfterContentInit, OnDestroy public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListCL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) {} + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); this.showYAxisLabel = !(this.screenSize === ScreenSizeEnum.XS || this.screenSize === ScreenSizeEnum.SM); - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(forwardingHistory).pipe(takeUntil(this.unSubs[0])). + subscribe((fhSeletor: { forwardingHistory: ForwardingEvent[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.GetForwardingHistory.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (rtlStore.apisCallStatus.GetForwardingHistory.message) === 'object') ? JSON.stringify(rtlStore.apisCallStatus.GetForwardingHistory.message) : rtlStore.apisCallStatus.GetForwardingHistory.message; + this.apiCallStatus = fhSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.events = rtlStore.forwardingHistory ? rtlStore.forwardingHistory : []; + this.events = fhSeletor.forwardingHistory || []; this.filterForwardingEvents(this.startDate, this.endDate); - this.logger.info(rtlStore); + this.logger.info(fhSeletor); }); - } - - ngAfterContentInit() { - const CONTAINER_SIZE = this.commonService.getContainerSize(); - switch (this.screenSize) { - case ScreenSizeEnum.MD: - this.screenPaddingX = CONTAINER_SIZE.width / 10; - break; - - case ScreenSizeEnum.LG: - this.screenPaddingX = CONTAINER_SIZE.width / 16; - break; - - default: - this.screenPaddingX = CONTAINER_SIZE.width / 20; - break; - } - this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.commonService.containerSizeUpdated.pipe(takeUntil(this.unSubs[1])).subscribe((CONTAINER_SIZE) => { + switch (this.screenSize) { + case ScreenSizeEnum.MD: + this.screenPaddingX = CONTAINER_SIZE.width / 10; + break; + + case ScreenSizeEnum.LG: + this.screenPaddingX = CONTAINER_SIZE.width / 16; + break; + + default: + this.screenPaddingX = CONTAINER_SIZE.width / 20; + break; + } + this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.logger.info('Container Size: ' + JSON.stringify(CONTAINER_SIZE)); + this.logger.info('View: ' + JSON.stringify(this.view)); + }); } filterForwardingEvents(start: Date, end: Date) { @@ -115,7 +115,7 @@ export class CLFeeReportComponent implements OnInit, AfterContentInit, OnDestroy const feeReport = []; if (this.reportPeriod === SCROLL_RANGES[1]) { for (let i = 0; i < 12; i++) { - feeReport.push({ name: MONTHS[i].name, value: 0.000000001, extra: { totalEvents: 0 } }); + feeReport.push({ name: MONTHS[i].name, value: 0.0, extra: { totalEvents: 0 } }); } this.filteredEventsBySelectedPeriod.map((event) => { const monthNumber = new Date((+event.received_time) * 1000).getMonth(); @@ -126,7 +126,7 @@ export class CLFeeReportComponent implements OnInit, AfterContentInit, OnDestroy }); } else { for (let i = 0; i < this.getMonthDays(start.getMonth(), start.getFullYear()); i++) { - feeReport.push({ name: i + 1, value: 0.000000001, extra: { totalEvents: 0 } }); + feeReport.push({ name: i + 1, value: 0.0, extra: { totalEvents: 0 } }); } this.filteredEventsBySelectedPeriod.map((event) => { const dateNumber = Math.floor((+event.received_time - startDateInSeconds) / this.secondsInADay); @@ -139,7 +139,7 @@ export class CLFeeReportComponent implements OnInit, AfterContentInit, OnDestroy return feeReport; } - onSelectionChange(selectedValues: {selDate: Date, selScrollRange: string}) { + onSelectionChange(selectedValues: { selDate: Date, selScrollRange: string }) { const selMonth = selectedValues.selDate.getMonth(); const selYear = selectedValues.selDate.getFullYear(); this.reportPeriod = selectedValues.selScrollRange; diff --git a/src/app/clightning/reports/transactions/transactions-report.component.spec.ts b/src/app/clightning/reports/transactions/transactions-report.component.spec.ts index a76e965d..576fef7b 100644 --- a/src/app/clightning/reports/transactions/transactions-report.component.spec.ts +++ b/src/app/clightning/reports/transactions/transactions-report.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { CLTransactionsReportComponent } from './transactions-report.component'; @@ -20,12 +23,7 @@ describe('CLTransactionsReportComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/reports/transactions/transactions-report.component.ts b/src/app/clightning/reports/transactions/transactions-report.component.ts index bcfd6281..06df6876 100644 --- a/src/app/clightning/reports/transactions/transactions-report.component.ts +++ b/src/app/clightning/reports/transactions/transactions-report.component.ts @@ -1,14 +1,17 @@ -import { Component, OnInit, OnDestroy, HostListener, AfterContentInit } from '@angular/core'; +import { Component, OnInit, OnDestroy, HostListener } from '@angular/core'; import { Subject } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; +import { takeUntil, withLatestFrom } from 'rxjs/operators'; import { Store } from '@ngrx/store'; -import { Payment, Invoice } from '../../../shared/models/clModels'; +import { Payment, Invoice, ListInvoices } from '../../../shared/models/clModels'; import { CommonService } from '../../../shared/services/common.service'; import { MONTHS, ScreenSizeEnum, SCROLL_RANGES } from '../../../shared/services/consts-enums-functions'; import { fadeIn } from '../../../shared/animation/opacity-animation'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { payments, listInvoices } from '../../store/cl.selector'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; +import { LoggerService } from '../../../shared/services/logger.service'; @Component({ selector: 'rtl-cl-transactions-report', @@ -16,7 +19,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; styleUrls: ['./transactions-report.component.scss'], animations: [fadeIn] }) -export class CLTransactionsReportComponent implements OnInit, AfterContentInit, OnDestroy { +export class CLTransactionsReportComponent implements OnInit, OnDestroy { public scrollRanges = SCROLL_RANGES; public reportPeriod = SCROLL_RANGES[0]; @@ -40,37 +43,37 @@ export class CLTransactionsReportComponent implements OnInit, AfterContentInit, public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private commonService: CommonService, private store: Store) {} + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); this.showYAxisLabel = !(this.screenSize === ScreenSizeEnum.XS || this.screenSize === ScreenSizeEnum.SM); - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.payments = rtlStore.payments; - this.invoices = rtlStore.invoices.invoices; + this.store.select(payments).pipe(takeUntil(this.unSubs[0]), + withLatestFrom(this.store.select(listInvoices))). + subscribe(([paymentsSelector, invoicesSelector]: [{ payments: Payment[], apiCallStatus: ApiCallStatusPayload }, { listInvoices: ListInvoices, apiCallStatus: ApiCallStatusPayload }]) => { + this.payments = paymentsSelector.payments; + this.invoices = invoicesSelector.listInvoices.invoices; this.transactionsReportData = this.filterTransactionsForSelectedPeriod(this.startDate, this.endDate); this.transactionsNonZeroReportData = this.prepareTableData(); }); - } - - ngAfterContentInit() { - const CONTAINER_SIZE = this.commonService.getContainerSize(); - switch (this.screenSize) { - case ScreenSizeEnum.MD: - this.screenPaddingX = CONTAINER_SIZE.width / 10; - break; - - case ScreenSizeEnum.LG: - this.screenPaddingX = CONTAINER_SIZE.width / 16; - break; - - default: - this.screenPaddingX = CONTAINER_SIZE.width / 20; - break; - } - this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.commonService.containerSizeUpdated.pipe(takeUntil(this.unSubs[1])).subscribe((CONTAINER_SIZE) => { + switch (this.screenSize) { + case ScreenSizeEnum.MD: + this.screenPaddingX = CONTAINER_SIZE.width / 10; + break; + + case ScreenSizeEnum.LG: + this.screenPaddingX = CONTAINER_SIZE.width / 16; + break; + + default: + this.screenPaddingX = CONTAINER_SIZE.width / 20; + break; + } + this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.logger.info('Container Size: ' + JSON.stringify(CONTAINER_SIZE)); + this.logger.info('View: ' + JSON.stringify(this.view)); + }); } @HostListener('mouseup', ['$event']) onChartMouseUp(e) { @@ -145,7 +148,7 @@ export class CLTransactionsReportComponent implements OnInit, AfterContentInit, }, []); } - onSelectionChange(selectedValues: {selDate: Date, selScrollRange: string}) { + onSelectionChange(selectedValues: { selDate: Date, selScrollRange: string }) { const selMonth = selectedValues.selDate.getMonth(); const selYear = selectedValues.selDate.getFullYear(); this.reportPeriod = selectedValues.selScrollRange; diff --git a/src/app/clightning/routing/failed-transactions/failed-transactions.component.html b/src/app/clightning/routing/failed-transactions/failed-transactions.component.html index 89a4405c..15fe2734 100644 --- a/src/app/clightning/routing/failed-transactions/failed-transactions.component.html +++ b/src/app/clightning/routing/failed-transactions/failed-transactions.component.html @@ -3,11 +3,11 @@
- +
- + @@ -40,9 +40,9 @@ diff --git a/src/app/clightning/routing/failed-transactions/failed-transactions.component.spec.ts b/src/app/clightning/routing/failed-transactions/failed-transactions.component.spec.ts index ff01860f..12e8cd5a 100644 --- a/src/app/clightning/routing/failed-transactions/failed-transactions.component.spec.ts +++ b/src/app/clightning/routing/failed-transactions/failed-transactions.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -23,12 +26,7 @@ describe('CLFailedTransactionsComponent', () => { BrowserAnimationsModule, RouterTestingModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/routing/failed-transactions/failed-transactions.component.ts b/src/app/clightning/routing/failed-transactions/failed-transactions.component.ts index 4163de85..cc3a9985 100644 --- a/src/app/clightning/routing/failed-transactions/failed-transactions.component.ts +++ b/src/app/clightning/routing/failed-transactions/failed-transactions.component.ts @@ -10,13 +10,14 @@ import { MatTableDataSource } from '@angular/material/table'; import { ForwardingEvent } from '../../../shared/models/clModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; -import * as CLActions from '../../store/cl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { getFailedForwardingHistory } from '../../store/cl.actions'; +import { failedForwardingHistory } from '../../store/cl.selector'; @Component({ selector: 'rtl-cl-failed-history', @@ -28,22 +29,23 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class CLFailedTransactionsComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public failedEvents: any; public errorMessage = ''; public displayedColumns: any[] = []; public failedForwardingEvents: any; public flgSticky = false; + public selFilter = ''; public pageSize = PAGE_SIZE; public pageSizeOptions = PAGE_SIZE_OPTIONS; public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; - public apisCallStatus: ApiCallsListCL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe, private router: Router) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe, private router: Router) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -60,20 +62,19 @@ export class CLFailedTransactionsComponent implements OnInit, AfterViewInit, OnD ngOnInit() { this.router.routeReuseStrategy.shouldReuseRoute = () => false; this.router.onSameUrlNavigation = 'reload'; - this.store.dispatch(new CLActions.GetFailedForwardingHistory()); - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.dispatch(getFailedForwardingHistory()); + this.store.select(failedForwardingHistory).pipe(takeUntil(this.unSubs[0])). + subscribe((ffhSeletor: { failedForwardingHistory: ForwardingEvent[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (this.apisCallStatus.GetFailedForwardingHistory.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.GetFailedForwardingHistory.message) === 'object') ? JSON.stringify(this.apisCallStatus.GetFailedForwardingHistory.message) : this.apisCallStatus.GetFailedForwardingHistory.message; + this.apiCallStatus = ffhSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.failedEvents = (rtlStore.failedForwardingHistory) ? rtlStore.failedForwardingHistory : []; + this.failedEvents = ffhSeletor.failedForwardingHistory || []; if (this.failedEvents.length > 0 && this.sort && this.paginator) { this.loadFailedEventsTable(this.failedEvents); } - this.logger.info(rtlStore); + this.logger.info(ffhSeletor); }); } @@ -87,15 +88,19 @@ export class CLFailedTransactionsComponent implements OnInit, AfterViewInit, OnD const reorderedFHEvent = [ [{ key: 'payment_hash', value: selFEvent.payment_hash, title: 'Payment Hash', width: 100, type: DataTypeEnum.STRING }], [{ key: 'status', value: selFEvent.status === 'local_failed' ? 'Local Failed' : this.commonService.titleCase(selFEvent.status), title: 'Status', width: 50, type: DataTypeEnum.STRING }, - { key: 'received_time', value: selFEvent.received_time, title: 'Received Time', width: 50, type: DataTypeEnum.DATE_TIME }], + { key: 'received_time', value: selFEvent.received_time, title: 'Received Time', width: 50, type: DataTypeEnum.DATE_TIME }], [{ key: 'in_channel', value: selFEvent.in_channel_alias, title: 'Inbound Channel', width: 50, type: DataTypeEnum.STRING }, - { key: 'in_msatoshi', value: selFEvent.in_msatoshi, title: 'In (mSats)', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'in_msatoshi', value: selFEvent.in_msatoshi, title: 'In (mSats)', width: 50, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Event Information', - message: reorderedFHEvent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Event Information', + message: reorderedFHEvent + } + } + })); } loadFailedEventsTable(forwardingEvents: ForwardingEvent[]) { @@ -105,12 +110,13 @@ export class CLFailedTransactionsComponent implements OnInit, AfterViewInit, OnD this.failedForwardingEvents.paginator = this.paginator; this.failedForwardingEvents.filterPredicate = (event: ForwardingEvent, fltr: string) => { const newEvent = (event.status ? (event.status === 'local_failed') ? 'local failed' : event.status.toLowerCase() : '') + - (event.received_time ? this.datePipe.transform(new Date(event.received_time * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + - (event.resolved_time ? this.datePipe.transform(new Date(event.resolved_time * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + - (event.in_channel ? event.in_channel.toLowerCase() : '') + (event.out_channel ? event.out_channel.toLowerCase() : '') + - (event.in_msatoshi ? (event.in_msatoshi / 1000) : '') + (event.out_msatoshi ? (event.out_msatoshi / 1000) : '') + (event.fee ? event.fee : ''); + (event.received_time ? this.datePipe.transform(new Date(event.received_time * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + + (event.resolved_time ? this.datePipe.transform(new Date(event.resolved_time * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + + (event.in_channel ? event.in_channel.toLowerCase() : '') + (event.out_channel ? event.out_channel.toLowerCase() : '') + + (event.in_msatoshi ? (event.in_msatoshi / 1000) : '') + (event.out_msatoshi ? (event.out_msatoshi / 1000) : '') + (event.fee ? event.fee : ''); return newEvent.includes(fltr); }; + this.applyFilter(); this.logger.info(this.failedForwardingEvents); } @@ -120,8 +126,8 @@ export class CLFailedTransactionsComponent implements OnInit, AfterViewInit, OnD } } - applyFilter(selFilter: any) { - this.failedForwardingEvents.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.failedForwardingEvents.filter = this.selFilter.trim().toLowerCase(); } ngOnDestroy() { diff --git a/src/app/clightning/routing/forwarding-history/forwarding-history.component.html b/src/app/clightning/routing/forwarding-history/forwarding-history.component.html index f8759e33..2cf48391 100644 --- a/src/app/clightning/routing/forwarding-history/forwarding-history.component.html +++ b/src/app/clightning/routing/forwarding-history/forwarding-history.component.html @@ -7,7 +7,7 @@
- +
Status -

No failed transaction available.

-

Getting failed transactions...

-

{{errorMessage}}

+

No failed transaction available.

+

Getting failed transactions...

+

{{errorMessage}}

@@ -56,9 +56,9 @@ diff --git a/src/app/clightning/routing/forwarding-history/forwarding-history.component.spec.ts b/src/app/clightning/routing/forwarding-history/forwarding-history.component.spec.ts index 42097b51..ebdf43c1 100644 --- a/src/app/clightning/routing/forwarding-history/forwarding-history.component.spec.ts +++ b/src/app/clightning/routing/forwarding-history/forwarding-history.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('CLForwardingHistoryComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/routing/forwarding-history/forwarding-history.component.ts b/src/app/clightning/routing/forwarding-history/forwarding-history.component.ts index 96a1c966..1c17c627 100644 --- a/src/app/clightning/routing/forwarding-history/forwarding-history.component.ts +++ b/src/app/clightning/routing/forwarding-history/forwarding-history.component.ts @@ -9,12 +9,13 @@ import { MatTableDataSource } from '@angular/material/table'; import { ForwardingEvent } from '../../../shared/models/clModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { forwardingHistory } from '../../store/cl.selector'; @Component({ selector: 'rtl-cl-forwarding-history', @@ -26,8 +27,8 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class CLForwardingHistoryComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; @Input() eventsData = []; @Input() filterValue = ''; public successfulEvents = []; @@ -39,11 +40,11 @@ export class CLForwardingHistoryComponent implements OnInit, OnChanges, AfterVie public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListCL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -58,20 +59,19 @@ export class CLForwardingHistoryComponent implements OnInit, OnChanges, AfterVie } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(forwardingHistory).pipe(takeUntil(this.unSubs[0])). + subscribe((fhSeletor: { forwardingHistory: ForwardingEvent[], apiCallStatus: ApiCallStatusPayload }) => { if (this.eventsData.length <= 0) { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (this.apisCallStatus.GetForwardingHistory.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.GetForwardingHistory.message) === 'object') ? JSON.stringify(this.apisCallStatus.GetForwardingHistory.message) : this.apisCallStatus.GetForwardingHistory.message; + this.apiCallStatus = fhSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.successfulEvents = rtlStore.forwardingHistory ? rtlStore.forwardingHistory : []; + this.successfulEvents = fhSeletor.forwardingHistory || []; if (this.successfulEvents.length > 0 && this.sort && this.paginator) { this.loadForwardingEventsTable(this.successfulEvents); } - this.logger.info(rtlStore); + this.logger.info(fhSeletor); } }); } @@ -84,6 +84,7 @@ export class CLForwardingHistoryComponent implements OnInit, OnChanges, AfterVie ngOnChanges(changes: SimpleChanges) { if (changes.eventsData) { + this.apiCallStatus = { status: APICallStatusEnum.COMPLETED, action: 'FetchForwardingHistory' }; this.eventsData = changes.eventsData.currentValue; this.successfulEvents = this.eventsData; if (!changes.eventsData.firstChange) { @@ -99,19 +100,23 @@ export class CLForwardingHistoryComponent implements OnInit, OnChanges, AfterVie const reorderedFHEvent = [ [{ key: 'payment_hash', value: selFEvent.payment_hash, title: 'Payment Hash', width: 100, type: DataTypeEnum.STRING }], [{ key: 'status', value: 'Settled', title: 'Status', width: 50, type: DataTypeEnum.STRING }, - { key: 'fee', value: selFEvent.fee, title: 'Fee (mSats)', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'fee', value: selFEvent.fee, title: 'Fee (mSats)', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'received_time', value: selFEvent.received_time, title: 'Received Time', width: 50, type: DataTypeEnum.DATE_TIME }, - { key: 'resolved_time', value: selFEvent.resolved_time, title: 'Resolved Time', width: 50, type: DataTypeEnum.DATE_TIME }], + { key: 'resolved_time', value: selFEvent.resolved_time, title: 'Resolved Time', width: 50, type: DataTypeEnum.DATE_TIME }], [{ key: 'in_channel', value: selFEvent.in_channel_alias, title: 'Inbound Channel', width: 50, type: DataTypeEnum.STRING }, - { key: 'out_channel', value: selFEvent.out_channel_alias, title: 'Outbound Channel', width: 50, type: DataTypeEnum.STRING }], + { key: 'out_channel', value: selFEvent.out_channel_alias, title: 'Outbound Channel', width: 50, type: DataTypeEnum.STRING }], [{ key: 'in_msatoshi', value: selFEvent.in_msatoshi, title: 'In (mSats)', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'out_msatoshi', value: selFEvent.out_msatoshi, title: 'Out (mSats)', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'out_msatoshi', value: selFEvent.out_msatoshi, title: 'Out (mSats)', width: 50, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Event Information', - message: reorderedFHEvent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Event Information', + message: reorderedFHEvent + } + } + })); } loadForwardingEventsTable(forwardingEvents: ForwardingEvent[]) { @@ -121,9 +126,9 @@ export class CLForwardingHistoryComponent implements OnInit, OnChanges, AfterVie this.forwardingHistoryEvents.paginator = this.paginator; this.forwardingHistoryEvents.filterPredicate = (event: ForwardingEvent, fltr: string) => { const newEvent = (event.received_time ? this.datePipe.transform(new Date(event.received_time * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + - (event.resolved_time ? this.datePipe.transform(new Date(event.resolved_time * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + - (event.in_channel ? event.in_channel.toLowerCase() : '') + (event.out_channel ? event.out_channel.toLowerCase() : '') + - (event.in_msatoshi ? (event.in_msatoshi / 1000) : '') + (event.out_msatoshi ? (event.out_msatoshi / 1000) : '') + (event.fee ? event.fee : ''); + (event.resolved_time ? this.datePipe.transform(new Date(event.resolved_time * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + + (event.in_channel ? event.in_channel.toLowerCase() : '') + (event.out_channel ? event.out_channel.toLowerCase() : '') + + (event.in_msatoshi ? (event.in_msatoshi / 1000) : '') + (event.out_msatoshi ? (event.out_msatoshi / 1000) : '') + (event.fee ? event.fee : ''); return newEvent.includes(fltr); }; this.logger.info(this.forwardingHistoryEvents); diff --git a/src/app/clightning/routing/routing-peers/routing-peers.component.html b/src/app/clightning/routing/routing-peers/routing-peers.component.html index 5f8a3722..277722fe 100644 --- a/src/app/clightning/routing/routing-peers/routing-peers.component.html +++ b/src/app/clightning/routing/routing-peers/routing-peers.component.html @@ -5,11 +5,11 @@
Incoming
- +
- +
Status -

No forwarding history available.

-

Getting forwarding history...

-

{{errorMessage}}

+

No forwarding history available.

+

Getting forwarding history...

+

{{errorMessage}}

@@ -26,17 +26,17 @@ - + - + @@ -50,11 +50,11 @@
Outgoing
- +
- +
Channel ID Amount (Sats){{rPeer.total_amount | number}}{{rPeer?.total_amount/1000 | number:rPeer?.total_amount < 1000 ? '1.0-4' : '1.0-0'}} Fee (Sats){{rPeer.total_fee | number}}{{rPeer?.total_fee/1000 | number:rPeer?.total_fee < 1000 ? '1.0-4' : '1.0-0'}} -

No incoming routing peer available.

-

Getting incoming routing peers...

-

{{errorMessage}}

+

No incoming routing peer available.

+

Getting incoming routing peers...

+

{{errorMessage}}

@@ -71,17 +71,17 @@ - + - + diff --git a/src/app/clightning/routing/routing-peers/routing-peers.component.spec.ts b/src/app/clightning/routing/routing-peers/routing-peers.component.spec.ts index bd9c4720..f1eca4e9 100644 --- a/src/app/clightning/routing/routing-peers/routing-peers.component.spec.ts +++ b/src/app/clightning/routing/routing-peers/routing-peers.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; import { CLRoutingPeersComponent } from './routing-peers.component'; @@ -20,12 +23,7 @@ describe('CLRoutingPeersComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/routing/routing-peers/routing-peers.component.ts b/src/app/clightning/routing/routing-peers/routing-peers.component.ts index 30229c45..9ec18af5 100644 --- a/src/app/clightning/routing/routing-peers/routing-peers.component.ts +++ b/src/app/clightning/routing/routing-peers/routing-peers.component.ts @@ -8,11 +8,12 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatTableDataSource } from '@angular/material/table'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; import { ForwardingEvent, RoutingPeer } from '../../../shared/models/clModels'; -import { ApiCallsListCL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { forwardingHistory } from '../../store/cl.selector'; @Component({ selector: 'rtl-cl-routing-peers', @@ -26,8 +27,8 @@ export class CLRoutingPeersComponent implements OnInit, OnChanges, AfterViewInit @ViewChild('tableIn', { read: MatSort, static: false }) sortIn: MatSort; @ViewChild('tableOut', { read: MatSort, static: false }) sortOut: MatSort; - @ViewChild('paginatorIn', { static: false }) paginatorIn: MatPaginator|undefined; - @ViewChild('paginatorOut', { static: false }) paginatorOut: MatPaginator|undefined; + @ViewChild('paginatorIn', { static: false }) paginatorIn: MatPaginator | undefined; + @ViewChild('paginatorOut', { static: false }) paginatorOut: MatPaginator | undefined; @Input() eventsData = []; @Input() filterValue = ''; public successfulEvents = []; @@ -40,11 +41,13 @@ export class CLRoutingPeersComponent implements OnInit, OnChanges, AfterViewInit public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListCL = null; + public filterIn = ''; + public filterOut = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -62,20 +65,19 @@ export class CLRoutingPeersComponent implements OnInit, OnChanges, AfterViewInit } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(forwardingHistory).pipe(takeUntil(this.unSubs[0])). + subscribe((fhSeletor: { forwardingHistory: ForwardingEvent[], apiCallStatus: ApiCallStatusPayload }) => { if (this.eventsData.length <= 0) { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (this.apisCallStatus.GetForwardingHistory.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.GetForwardingHistory.message) === 'object') ? JSON.stringify(this.apisCallStatus.GetForwardingHistory.message) : this.apisCallStatus.GetForwardingHistory.message; + this.apiCallStatus = fhSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.successfulEvents = rtlStore.forwardingHistory ? rtlStore.forwardingHistory : []; + this.successfulEvents = fhSeletor.forwardingHistory || []; if (this.successfulEvents.length > 0 && this.sortIn && this.paginatorIn && this.sortOut && this.paginatorOut) { this.loadRoutingPeersTable(this.successfulEvents); } - this.logger.info(rtlStore); + this.logger.info(fhSeletor); } }); } @@ -88,6 +90,7 @@ export class CLRoutingPeersComponent implements OnInit, OnChanges, AfterViewInit ngOnChanges(changes: SimpleChanges) { if (changes.eventsData) { + this.apiCallStatus = { status: APICallStatusEnum.COMPLETED, action: 'FetchForwardingHistory' }; this.eventsData = changes.eventsData.currentValue; this.successfulEvents = this.eventsData; if (!changes.eventsData.firstChange) { @@ -114,6 +117,8 @@ export class CLRoutingPeersComponent implements OnInit, OnChanges, AfterViewInit this.RoutingPeersIncoming = new MatTableDataSource([]); this.RoutingPeersOutgoing = new MatTableDataSource([]); } + this.applyIncomingFilter(); + this.applyOutgoingFilter(); this.logger.info(this.RoutingPeersIncoming); this.logger.info(this.RoutingPeersOutgoing); } @@ -142,12 +147,12 @@ export class CLRoutingPeersComponent implements OnInit, OnChanges, AfterViewInit return [this.commonService.sortDescByKey(incomingResults, 'total_fee'), this.commonService.sortDescByKey(outgoingResults, 'total_fee')]; } - applyIncomingFilter(selFilter: any) { - this.RoutingPeersIncoming.filter = selFilter.value.trim().toLowerCase(); + applyIncomingFilter() { + this.RoutingPeersIncoming.filter = this.filterIn.toLowerCase(); } - applyOutgoingFilter(selFilter: any) { - this.RoutingPeersOutgoing.filter = selFilter.value.trim().toLowerCase(); + applyOutgoingFilter() { + this.RoutingPeersOutgoing.filter = this.filterOut.toLowerCase(); } ngOnDestroy() { diff --git a/src/app/clightning/store/cl.actions.ts b/src/app/clightning/store/cl.actions.ts index 16b71895..b5527e5c 100644 --- a/src/app/clightning/store/cl.actions.ts +++ b/src/app/clightning/store/cl.actions.ts @@ -1,443 +1,136 @@ -import { Action } from '@ngrx/store'; +import { createAction, props } from '@ngrx/store'; +import { CLActions } from '../../shared/services/consts-enums-functions'; import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; import { SelNodeChild } from '../../shared/models/RTLconfig'; -import { GetInfo, Fees, Peer, Payment, PayRequest, QueryRoutes, Channel, FeeRates, - ForwardingEvent, Invoice, ListInvoices, OnChain, UTXO } from '../../shared/models/clModels'; - -export const RESET_CL_STORE = 'RESET_CL_STORE'; -export const UPDATE_API_CALL_STATUS_CL = 'UPDATE_API_CALL_STATUS_CL'; -export const SET_CHILD_NODE_SETTINGS_CL = 'SET_CHILD_NODE_SETTINGS_CL'; -export const FETCH_INFO_CL = 'FETCH_INFO_CL_CL'; -export const SET_INFO_CL = 'SET_INFO_CL'; -export const FETCH_FEES_CL = 'FETCH_FEES_CL'; -export const SET_FEES_CL = 'SET_FEES_CL'; -export const FETCH_FEE_RATES_CL = 'FETCH_FEE_RATES_CL'; -export const SET_FEE_RATES_CL = 'SET_FEE_RATES_CL'; -export const FETCH_BALANCE_CL = 'FETCH_BALANCE_CL'; -export const SET_BALANCE_CL = 'SET_BALANCE_CL'; -export const FETCH_LOCAL_REMOTE_BALANCE_CL = 'FETCH_LOCAL_REMOTE_BALANCE_CL'; -export const SET_LOCAL_REMOTE_BALANCE_CL = 'SET_LOCAL_REMOTE_BALANCE_CL'; -export const GET_NEW_ADDRESS_CL = 'GET_NEW_ADDRESS_CL'; -export const SET_NEW_ADDRESS_CL = 'SET_NEW_ADDRESS_CL'; -export const FETCH_UTXOS_CL = 'FETCH_UTXOS_CL'; -export const SET_UTXOS_CL = 'SET_UTXOS_CL'; -export const FETCH_PEERS_CL = 'FETCH_PEERS_CL'; -export const SET_PEERS_CL = 'SET_PEERS_CL'; -export const SAVE_NEW_PEER_CL = 'SAVE_NEW_PEER_CL'; -export const NEWLY_ADDED_PEER_CL = 'NEWLY_ADDED_PEER_CL'; -export const ADD_PEER_CL = 'ADD_PEER_CL'; -export const DETACH_PEER_CL = 'DETACH_PEER_CL'; -export const REMOVE_PEER_CL = 'REMOVE_PEER_CL'; -export const FETCH_CHANNELS_CL = 'FETCH_CHANNELS_CL'; -export const SET_CHANNELS_CL = 'SET_CHANNELS_CL'; -export const UPDATE_CHANNELS_CL = 'UPDATE_CHANNELS_CL'; -export const SAVE_NEW_CHANNEL_CL = 'SAVE_NEW_CHANNEL_CL'; -export const CLOSE_CHANNEL_CL = 'CLOSE_CHANNEL_CL'; -export const REMOVE_CHANNEL_CL = 'REMOVE_CHANNEL_CL'; -export const FETCH_PAYMENTS_CL = 'FETCH_PAYMENTS_CL'; -export const SET_PAYMENTS_CL = 'SET_PAYMENTS_CL'; -export const DECODE_PAYMENT_CL = 'DECODE_PAYMENT_CL'; -export const SET_DECODED_PAYMENT_CL = 'SET_DECODED_PAYMENT_CL'; -export const SEND_PAYMENT_CL = 'SEND_PAYMENT_CL'; -export const SEND_PAYMENT_STATUS_CL = 'SEND_PAYMENT_STATUS_CL'; -export const GET_QUERY_ROUTES_CL = 'GET_QUERY_ROUTES_CL'; -export const SET_QUERY_ROUTES_CL = 'SET_QUERY_ROUTES_CL'; -export const PEER_LOOKUP_CL = 'PEER_LOOKUP_CL'; -export const CHANNEL_LOOKUP_CL = 'CHANNEL_LOOKUP_CL'; -export const INVOICE_LOOKUP_CL = 'INVOICE_LOOKUP_CL'; -export const SET_LOOKUP_CL = 'SET_LOOKUP_CL'; -export const GET_FORWARDING_HISTORY_CL = 'GET_FORWARDING_HISTORY_CL'; -export const SET_FORWARDING_HISTORY_CL = 'SET_FORWARDING_HISTORY_CL'; -export const GET_FAILED_FORWARDING_HISTORY_CL = 'GET_FAILED_FORWARDING_HISTORY_CL'; -export const SET_FAILED_FORWARDING_HISTORY_CL = 'SET_FAILED_FORWARDING_HISTORY_CL'; -export const FETCH_INVOICES_CL = 'FETCH_INVOICES_CL'; -export const SET_INVOICES_CL = 'SET_INVOICES_CL'; -export const SAVE_NEW_INVOICE_CL = 'SAVE_NEW_INVOICE_CL'; -export const ADD_INVOICE_CL = 'ADD_INVOICE_CL'; -export const UPDATE_INVOICE_CL = 'UPDATE_INVOICE_CL'; -export const DELETE_EXPIRED_INVOICE_CL = 'DELETE_EXPIRED_INVOICE_CL'; -export const SET_CHANNEL_TRANSACTION_CL = 'SET_CHANNEL_TRANSACTION_CL'; -export const SET_CHANNEL_TRANSACTION_RES_CL = 'SET_CHANNEL_TRANSACTION_RES_CL'; +import { GetInfo, Fees, Peer, Payment, PayRequest, QueryRoutes, Channel, FeeRates, ForwardingEvent, Invoice, ListInvoices, OnChain, UTXO, SaveChannel, GetNewAddress, DetachPeer, UpdateChannel, CloseChannel, DecodePayment, SendPayment, GetQueryRoutes, ChannelLookup, OfferInvoice, Offer, OfferBookmark } from '../../shared/models/clModels'; -export class UpdateAPICallStatus implements Action { +export const updateCLAPICallStatus = createAction(CLActions.UPDATE_API_CALL_STATUS_CL, props<{ payload: ApiCallStatusPayload }>()); - readonly type = UPDATE_API_CALL_STATUS_CL; - constructor(public payload: ApiCallStatusPayload) { } +export const resetCLStore = createAction(CLActions.RESET_CL_STORE, props<{ payload: SelNodeChild }>()); -} +export const setChildNodeSettingsCL = createAction(CLActions.SET_CHILD_NODE_SETTINGS_CL, props<{ payload: SelNodeChild }>()); -export class ResetCLStore implements Action { +export const fetchInfoCL = createAction(CLActions.FETCH_INFO_CL, props<{ payload: { loadPage: string } }>()); - readonly type = RESET_CL_STORE; - constructor(public payload: SelNodeChild) {} +export const setInfo = createAction(CLActions.SET_INFO_CL, props<{ payload: GetInfo }>()); -} +export const fetchFees = createAction(CLActions.FETCH_FEES_CL); -export class SetChildNodeSettings implements Action { +export const setFees = createAction(CLActions.SET_FEES_CL, props<{ payload: Fees }>()); - readonly type = SET_CHILD_NODE_SETTINGS_CL; - constructor(public payload: SelNodeChild) {} +export const fetchFeeRates = createAction(CLActions.FETCH_FEE_RATES_CL, props<{ payload: string }>()); -} +export const setFeeRates = createAction(CLActions.SET_FEE_RATES_CL, props<{ payload: FeeRates }>()); -export class FetchInfo implements Action { +export const fetchBalance = createAction(CLActions.FETCH_BALANCE_CL); - readonly type = FETCH_INFO_CL; - constructor(public payload: {loadPage: string}) {} +export const setBalance = createAction(CLActions.SET_BALANCE_CL, props<{ payload: any }>()); -} +export const fetchLocalRemoteBalance = createAction(CLActions.FETCH_LOCAL_REMOTE_BALANCE_CL); -export class SetInfo implements Action { +export const setLocalRemoteBalance = createAction(CLActions.SET_LOCAL_REMOTE_BALANCE_CL, props<{ payload: { localBalance: number, remoteBalance: number } }>()); - readonly type = SET_INFO_CL; - constructor(public payload: GetInfo) {} +export const getNewAddress = createAction(CLActions.GET_NEW_ADDRESS_CL, props<{ payload: GetNewAddress }>()); -} +export const setNewAddress = createAction(CLActions.SET_NEW_ADDRESS_CL, props<{ payload: string }>()); -export class FetchFees implements Action { +export const fetchPeers = createAction(CLActions.FETCH_PEERS_CL); - readonly type = FETCH_FEES_CL; +export const setPeers = createAction(CLActions.SET_PEERS_CL, props<{ payload: Peer[] }>()); -} +export const saveNewPeer = createAction(CLActions.SAVE_NEW_PEER_CL, props<{ payload: { id: string } }>()); -export class SetFees implements Action { +export const newlyAddedPeer = createAction(CLActions.NEWLY_ADDED_PEER_CL, props<{ payload: { peer: Peer, balance: number } }>()); - readonly type = SET_FEES_CL; - constructor(public payload: Fees) {} +export const addPeer = createAction(CLActions.ADD_PEER_CL, props<{ payload: Peer }>()); -} +export const detachPeer = createAction(CLActions.DETACH_PEER_CL, props<{ payload: DetachPeer }>()); -export class FetchFeeRates implements Action { +export const removePeer = createAction(CLActions.REMOVE_PEER_CL, props<{ payload: { id: string } }>()); - readonly type = FETCH_FEE_RATES_CL; - constructor(public payload: string) {} // FeeRateStyle +export const fetchPayments = createAction(CLActions.FETCH_PAYMENTS_CL); -} +export const setPayments = createAction(CLActions.SET_PAYMENTS_CL, props<{ payload: Payment[] }>()); -export class SetFeeRates implements Action { +export const sendPayment = createAction(CLActions.SEND_PAYMENT_CL, props<{ payload: SendPayment }>()); - readonly type = SET_FEE_RATES_CL; - constructor(public payload: FeeRates) {} +export const sendPaymentStatus = createAction(CLActions.SEND_PAYMENT_STATUS_CL, props<{ payload: any }>()); -} +export const getQueryRoutes = createAction(CLActions.GET_QUERY_ROUTES_CL, props<{ payload: GetQueryRoutes }>()); -export class FetchBalance implements Action { +export const setQueryRoutes = createAction(CLActions.SET_QUERY_ROUTES_CL, props<{ payload: QueryRoutes }>()); - readonly type = FETCH_BALANCE_CL; +export const fetchChannels = createAction(CLActions.FETCH_CHANNELS_CL); -} +export const setChannels = createAction(CLActions.SET_CHANNELS_CL, props<{ payload: { activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[] } }>()); -export class SetBalance implements Action { +export const updateChannel = createAction(CLActions.UPDATE_CHANNEL_CL, props<{ payload: UpdateChannel }>()); - readonly type = SET_BALANCE_CL; - constructor(public payload: {}) {} +export const saveNewChannel = createAction(CLActions.SAVE_NEW_CHANNEL_CL, props<{ payload: SaveChannel }>()); -} +export const closeChannel = createAction(CLActions.CLOSE_CHANNEL_CL, props<{ payload: CloseChannel }>()); -export class FetchLocalRemoteBalance implements Action { +export const removeChannel = createAction(CLActions.REMOVE_CHANNEL_CL, props<{ payload: CloseChannel }>()); - readonly type = FETCH_LOCAL_REMOTE_BALANCE_CL; +export const peerLookup = createAction(CLActions.PEER_LOOKUP_CL, props<{ payload: string }>()); -} +export const channelLookup = createAction(CLActions.CHANNEL_LOOKUP_CL, props<{ payload: ChannelLookup }>()); -export class SetLocalRemoteBalance implements Action { +export const invoiceLookup = createAction(CLActions.INVOICE_LOOKUP_CL, props<{ payload: string }>()); - readonly type = SET_LOCAL_REMOTE_BALANCE_CL; - constructor(public payload: {localBalance: number, remoteBalance: number}) {} +export const setLookup = createAction(CLActions.SET_LOOKUP_CL, props<{ payload: any }>()); -} +export const getForwardingHistory = createAction(CLActions.GET_FORWARDING_HISTORY_CL, props<{ payload: { status: string } }>()); -export class GetNewAddress implements Action { +export const setForwardingHistory = createAction(CLActions.SET_FORWARDING_HISTORY_CL, props<{ payload: ForwardingEvent[] }>()); - readonly type = GET_NEW_ADDRESS_CL; - constructor(public payload: { addressId?: string, addressCode?: string, addressTp?: string, addressDetails?: string}) {} +export const getFailedForwardingHistory = createAction(CLActions.GET_FAILED_FORWARDING_HISTORY_CL); -} +export const setFailedForwardingHistory = createAction(CLActions.SET_FAILED_FORWARDING_HISTORY_CL, props<{ payload: ForwardingEvent[] }>()); -export class SetNewAddress implements Action { +export const fetchInvoices = createAction(CLActions.FETCH_INVOICES_CL, props<{ payload: { num_max_invoices?: number, index_offset?: number, reversed?: boolean } }>()); - readonly type = SET_NEW_ADDRESS_CL; - constructor(public payload: string) {} // Payload = newAddress +export const setInvoices = createAction(CLActions.SET_INVOICES_CL, props<{ payload: ListInvoices }>()); -} +export const saveNewInvoice = createAction(CLActions.SAVE_NEW_INVOICE_CL, props<{ payload: { amount: number, label: string, description: string, expiry: number, private: boolean } }>()); -export class FetchPeers implements Action { +export const addInvoice = createAction(CLActions.ADD_INVOICE_CL, props<{ payload: Invoice }>()); - readonly type = FETCH_PEERS_CL; +export const updateInvoice = createAction(CLActions.UPDATE_INVOICE_CL, props<{ payload: Invoice }>()); -} +export const deleteExpiredInvoice = createAction(CLActions.DELETE_EXPIRED_INVOICE_CL, props<{ payload?: number }>()); -export class SetPeers implements Action { +export const setChannelTransaction = createAction(CLActions.SET_CHANNEL_TRANSACTION_CL, props<{ payload: OnChain }>()); - readonly type = SET_PEERS_CL; - constructor(public payload: Peer[]) {} +export const setChannelTransactionRes = createAction(CLActions.SET_CHANNEL_TRANSACTION_RES_CL, props<{ payload: any }>()); -} +export const fetchUTXOs = createAction(CLActions.FETCH_UTXOS_CL); -export class SaveNewPeer implements Action { +export const setUTXOs = createAction(CLActions.SET_UTXOS_CL, props<{ payload: UTXO[] }>()); - readonly type = SAVE_NEW_PEER_CL; - constructor(public payload: {id: string}) {} +export const fetchOfferInvoice = createAction(CLActions.FETCH_OFFER_INVOICE_CL, props<{ payload: { offer: string, msatoshi?: number } }>()); -} +export const setOfferInvoice = createAction(CLActions.SET_OFFER_INVOICE_CL, props<{ payload: OfferInvoice }>()); -export class NewlyAddedPeer implements Action { +export const fetchOffers = createAction(CLActions.FETCH_OFFERS_CL); - readonly type = NEWLY_ADDED_PEER_CL; - constructor(public payload: { peer: Peer, balance: number}) {} +export const setOffers = createAction(CLActions.SET_OFFERS_CL, props<{ payload: Offer[] }>()); -} +export const saveNewOffer = createAction(CLActions.SAVE_NEW_OFFER_CL, props<{ payload: { amount: string, description: string, vendor: string } }>()); -export class AddPeer implements Action { +export const addOffer = createAction(CLActions.ADD_OFFER_CL, props<{ payload: Offer }>()); - readonly type = ADD_PEER_CL; - constructor(public payload: Peer) {} +export const disableOffer = createAction(CLActions.DISABLE_OFFER_CL, props<{ payload: { offer_id: string } }>()); -} +export const updateOffer = createAction(CLActions.UPDATE_OFFER_CL, props<{ payload: { offer: Offer } }>()); -export class DetachPeer implements Action { +export const fetchOfferBookmarks = createAction(CLActions.FETCH_OFFER_BOOKMARKS_CL); - readonly type = DETACH_PEER_CL; - constructor(public payload: {id: string, force: boolean}) {} +export const setOfferBookmarks = createAction(CLActions.SET_OFFER_BOOKMARKS_CL, props<{ payload: OfferBookmark[] }>()); -} +export const addUpdateOfferBookmark = createAction(CLActions.ADD_UPDATE_OFFER_BOOKMARK_CL, props<{ payload: OfferBookmark }>()); -export class RemovePeer implements Action { +export const deleteOfferBookmark = createAction(CLActions.DELETE_OFFER_BOOKMARK_CL, props<{ payload: { bolt12: string } }>()); - readonly type = REMOVE_PEER_CL; - constructor(public payload: {id: string}) {} - -} - -export class FetchPayments implements Action { - - readonly type = FETCH_PAYMENTS_CL; - -} - -export class SetPayments implements Action { - - readonly type = SET_PAYMENTS_CL; - constructor(public payload: Payment[]) {} - -} - -export class DecodePayment implements Action { - - readonly type = DECODE_PAYMENT_CL; - constructor(public payload: {routeParam: string, fromDialog: boolean}) {} // Payload = routeParam - -} - -export class SetDecodedPayment implements Action { - - readonly type = SET_DECODED_PAYMENT_CL; - constructor(public payload: PayRequest) {} - -} - -export class SendPayment implements Action { - - readonly type = SEND_PAYMENT_CL; - constructor(public payload: {uiMessage: string, fromDialog: boolean, invoice?: string, amount?: number, pubkey?: string}) {} - -} - -export class SendPaymentStatus implements Action { - - readonly type = SEND_PAYMENT_STATUS_CL; - constructor(public payload: any) {} - -} - -export class GetQueryRoutes implements Action { - - readonly type = GET_QUERY_ROUTES_CL; - constructor(public payload: {destPubkey: string, amount: number}) {} - -} - -export class SetQueryRoutes implements Action { - - readonly type = SET_QUERY_ROUTES_CL; - constructor(public payload: QueryRoutes) {} - -} - -export class FetchChannels implements Action { - - readonly type = FETCH_CHANNELS_CL; - -} - -export class SetChannels implements Action { - - readonly type = SET_CHANNELS_CL; - constructor(public payload: Channel[]) {} - -} - -export class UpdateChannels implements Action { - - readonly type = UPDATE_CHANNELS_CL; - constructor(public payload: {channelId: string, baseFeeMsat: number, feeRate: number}) {} - -} - -export class SaveNewChannel implements Action { - - readonly type = SAVE_NEW_CHANNEL_CL; - constructor(public payload: {peerId: string, satoshis: string, announce: boolean, feeRate?: string, minconf?: number, utxos?: string[]}) {} - -} - -export class CloseChannel implements Action { - - readonly type = CLOSE_CHANNEL_CL; - constructor(public payload: {channelId: string, force: boolean}) {} - -} - -export class RemoveChannel implements Action { - - readonly type = REMOVE_CHANNEL_CL; - constructor(public payload: {channelId: string}) {} - -} - -export class PeerLookup implements Action { - - readonly type = PEER_LOOKUP_CL; - constructor(public payload: string) {} // Payload = id - -} - -export class ChannelLookup implements Action { - - readonly type = CHANNEL_LOOKUP_CL; - constructor(public payload: {uiMessage: string, shortChannelID: string, showError: boolean}) {} - -} - -export class InvoiceLookup implements Action { - - readonly type = INVOICE_LOOKUP_CL; - constructor(public payload: string) {} // Payload = rHashStr - -} - -export class SetLookup implements Action { - - readonly type = SET_LOOKUP_CL; - constructor(public payload: any) {} // Payload = lookup Response (Peer/Channel/Invoice) - -} - -export class GetForwardingHistory implements Action { - - readonly type = GET_FORWARDING_HISTORY_CL; - constructor(public payload: { status: string }) {} - -} - -export class SetForwardingHistory implements Action { - - readonly type = SET_FORWARDING_HISTORY_CL; - constructor(public payload: ForwardingEvent[]) {} - -} - -export class GetFailedForwardingHistory implements Action { - - readonly type = GET_FAILED_FORWARDING_HISTORY_CL; - -} - -export class SetFailedForwardingHistory implements Action { - - readonly type = SET_FAILED_FORWARDING_HISTORY_CL; - constructor(public payload: ForwardingEvent[]) {} - -} - -export class FetchInvoices implements Action { - - readonly type = FETCH_INVOICES_CL; - constructor(public payload: {num_max_invoices?: number, index_offset?: number, reversed?: boolean}) {} - -} - -export class SetInvoices implements Action { - - readonly type = SET_INVOICES_CL; - constructor(public payload: ListInvoices) {} - -} - -export class SaveNewInvoice implements Action { - - readonly type = SAVE_NEW_INVOICE_CL; - constructor(public payload: {amount: number, label: string, description: string, expiry: number, private: boolean}) {} - -} - -export class AddInvoice implements Action { - - readonly type = ADD_INVOICE_CL; - constructor(public payload: Invoice) {} - -} - -export class UpdateInvoice implements Action { - - readonly type = UPDATE_INVOICE_CL; - constructor(public payload: Invoice) {} - -} - -export class DeleteExpiredInvoice implements Action { - - readonly type = DELETE_EXPIRED_INVOICE_CL; - constructor(public payload?: number) {} // Maxexpiry - -} - -export class SetChannelTransaction implements Action { - - readonly type = SET_CHANNEL_TRANSACTION_CL; - constructor(public payload: OnChain) {} - -} - -export class SetChannelTransactionRes implements Action { - - readonly type = SET_CHANNEL_TRANSACTION_RES_CL; - constructor(public payload: any) {} - -} - -export class FetchUTXOs implements Action { - - readonly type = FETCH_UTXOS_CL; - -} - -export class SetUTXOs implements Action { - - readonly type = SET_UTXOS_CL; - constructor(public payload: UTXO[]) {} - -} - -export type CLActions = UpdateAPICallStatus | ResetCLStore | -SetChildNodeSettings | FetchInfo | SetInfo | FetchFees | SetFees | FetchFeeRates | SetFeeRates | -FetchBalance | SetBalance | FetchLocalRemoteBalance | SetLocalRemoteBalance | -GetNewAddress | SetNewAddress | FetchUTXOs | SetUTXOs | -FetchPeers | SetPeers | AddPeer | DetachPeer | SaveNewPeer | RemovePeer | NewlyAddedPeer | -FetchChannels | SetChannels | UpdateChannels | SaveNewChannel | CloseChannel | RemoveChannel | -FetchPayments | SetPayments | SendPayment | SendPaymentStatus | DecodePayment | SetDecodedPayment | -GetQueryRoutes | SetQueryRoutes | SetChannelTransaction | SetChannelTransactionRes | -PeerLookup | ChannelLookup | InvoiceLookup | SetLookup | -GetForwardingHistory | SetForwardingHistory | GetFailedForwardingHistory | SetFailedForwardingHistory | -FetchInvoices | SetInvoices | SaveNewInvoice | AddInvoice | UpdateInvoice | DeleteExpiredInvoice; +export const removeOfferBookmark = createAction(CLActions.REMOVE_OFFER_BOOKMARK_CL, props<{ payload: { bolt12: string } }>()); diff --git a/src/app/clightning/store/cl.effects.ts b/src/app/clightning/store/cl.effects.ts index 8c3e01d8..42fb488f 100644 --- a/src/app/clightning/store/cl.effects.ts +++ b/src/app/clightning/store/cl.effects.ts @@ -11,73 +11,101 @@ import { environment, API_URL } from '../../../environments/environment'; import { LoggerService } from '../../shared/services/logger.service'; import { CommonService } from '../../shared/services/common.service'; import { SessionService } from '../../shared/services/session.service'; +import { WebSocketClientService } from '../../shared/services/web-socket.service'; import { ErrorMessageComponent } from '../../shared/components/data-modal/error-message/error-message.component'; -import { CLInvoiceInformationComponent } from '../transactions/invoice-information-modal/invoice-information.component'; -import { GetInfo, Fees, Balance, LocalRemoteBalance, Payment, FeeRates, ListInvoices, Invoice, Peer, ForwardingEvent } from '../../shared/models/clModels'; -import { AlertTypeEnum, APICallStatusEnum, UI_MESSAGES } from '../../shared/services/consts-enums-functions'; +import { CLInvoiceInformationComponent } from '../transactions/invoices/invoice-information-modal/invoice-information.component'; +import { GetInfo, Fees, Balance, LocalRemoteBalance, Payment, FeeRates, ListInvoices, Invoice, Peer, ForwardingEvent, OnChain, QueryRoutes, PayRequest, SaveChannel, GetNewAddress, DetachPeer, UpdateChannel, CloseChannel, DecodePayment, SendPayment, GetQueryRoutes, ChannelLookup, FetchInvoices, Channel, OfferInvoice, OfferRequest, Offer } from '../../shared/models/clModels'; +import { AlertTypeEnum, APICallStatusEnum, UI_MESSAGES, CLWSEventTypeEnum, CLActions, RTLActions } from '../../shared/services/consts-enums-functions'; +import { closeAllDialogs, closeSpinner, logout, openAlert, openSnackBar, openSpinner, setApiUrl, setNodeData } from '../../store/rtl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; -import * as RTLActions from '../../store/rtl.actions'; -import * as CLActions from './cl.actions'; -import * as fromCLReducers from '../store/cl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { addUpdateOfferBookmark, fetchBalance, fetchChannels, fetchFeeRates, fetchFees, fetchInvoices, fetchLocalRemoteBalance, fetchPayments, fetchPeers, fetchUTXOs, getForwardingHistory, setFailedForwardingHistory, setLookup, setPeers, setQueryRoutes, updateCLAPICallStatus, updateInvoice, setOfferInvoice, sendPaymentStatus } from './cl.actions'; +import { allAPIsCallStatus, clNodeInformation } from './cl.selector'; +import { ApiCallsListCL } from '../../shared/models/apiCallsPayload'; +import { CLOfferInformationComponent } from '../transactions/offers/offer-information-modal/offer-information.component'; @Injectable() export class CLEffects implements OnDestroy { CHILD_API_URL = API_URL + '/cl'; private flgInitialized = false; - private unSubs: Array> = [new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; constructor( private actions: Actions, private httpClient: HttpClient, - private store: Store, + private store: Store, private sessionService: SessionService, private commonService: CommonService, private logger: LoggerService, private router: Router, + private wsService: WebSocketClientService, private location: Location ) { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - if ( - ((rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchBalance.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchBalance.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchLocalRemoteBalance.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchLocalRemoteBalance.status === APICallStatusEnum.ERROR)) && - !this.flgInitialized - ) { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.INITALIZE_NODE_DATA)); - this.flgInitialized = true; + this.store.select(allAPIsCallStatus).pipe(takeUntil(this.unSubs[0])).subscribe((allApisCallStatus: ApiCallsListCL) => { + if ( + ((allApisCallStatus.FetchInfo.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchFees.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchChannels.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchBalance.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchBalance.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchLocalRemoteBalance.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchLocalRemoteBalance.status === APICallStatusEnum.ERROR)) && + !this.flgInitialized + ) { + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.INITALIZE_NODE_DATA })); + this.flgInitialized = true; + } + }); + this.wsService.clWSMessages.pipe( + takeUntil(this.unSubs[1])). + subscribe((newMessage) => { + this.logger.info('Received new message from the service: ' + JSON.stringify(newMessage)); + if (newMessage) { + switch (newMessage.event) { + case CLWSEventTypeEnum.INVOICE: + this.logger.info(newMessage); + if (newMessage && newMessage.data && newMessage.data.label) { + this.store.dispatch(updateInvoice({ payload: newMessage.data })); + } + break; + case CLWSEventTypeEnum.SEND_PAYMENT: + this.logger.info(newMessage); + break; + case CLWSEventTypeEnum.BLOCK_HEIGHT: + this.logger.info(newMessage); + break; + default: + this.logger.info('Received Event from WS: ' + JSON.stringify(newMessage)); + break; + } } }); } infoFetchCL = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_INFO_CL), - withLatestFrom(this.store.select('root')), - mergeMap(([action, store]: [CLActions.FetchInfo, fromRTLReducer.RootState]) => { + mergeMap((action: { type: string, payload: { loadPage: string } }) => { this.flgInitialized = false; - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchInfo', status: APICallStatusEnum.INITIATED })); - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_NODE_INFO)); + this.store.dispatch(setApiUrl({ payload: this.CHILD_API_URL })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchInfo', status: APICallStatusEnum.INITIATED } })); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_NODE_INFO })); return this.httpClient.get(this.CHILD_API_URL + environment.GETINFO_API). pipe( takeUntil(this.actions.pipe(ofType(RTLActions.SET_SELECTED_NODE))), map((info) => { this.logger.info(info); if (info.chains && info.chains.length && info.chains[0] && - (typeof info.chains[0] === 'object' && info.chains[0].hasOwnProperty('chain') && info.chains[0].chain.toLowerCase().indexOf('bitcoin') < 0) + (typeof info.chains[0] === 'object' && info.chains[0].hasOwnProperty('chain') && info.chains[0].chain.toLowerCase().indexOf('bitcoin') < 0) ) { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchInfo', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_NODE_INFO)); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: AlertTypeEnum.ERROR, - alertTitle: 'Shitcoin Found', - titleMessage: 'Sorry Not Sorry, RTL is Bitcoin Only!' + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchInfo', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_NODE_INFO })); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.ERROR, + alertTitle: 'Shitcoin Found', + titleMessage: 'Sorry Not Sorry, RTL is Bitcoin Only!' + } } })); return { @@ -85,8 +113,8 @@ export class CLEffects implements OnDestroy { }; } else { this.initializeRemainingData(info, action.payload.loadPage); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchInfo', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_NODE_INFO)); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchInfo', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_NODE_INFO })); return { type: CLActions.SET_INFO_CL, payload: info ? info : {} @@ -106,13 +134,13 @@ export class CLEffects implements OnDestroy { fetchFeesCL = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_FEES_CL), - mergeMap((action: CLActions.FetchFees) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchFees', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchFees', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.FEES_API); }), map((fees) => { this.logger.info(fees); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchFees', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchFees', status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_FEES_CL, payload: fees ? fees : {} @@ -126,13 +154,13 @@ export class CLEffects implements OnDestroy { fetchFeeRatesCL = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_FEE_RATES_CL), - mergeMap((action: CLActions.FetchFeeRates) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchFeeRates' + action.payload, status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchFeeRates' + action.payload, status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.NETWORK_API + '/feeRates/' + action.payload). pipe( map((feeRates) => { this.logger.info(feeRates); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchFeeRates' + action.payload, status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchFeeRates' + action.payload, status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_FEE_RATES_CL, payload: feeRates ? feeRates : {} @@ -148,13 +176,13 @@ export class CLEffects implements OnDestroy { fetchBalanceCL = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_BALANCE_CL), - mergeMap((action: CLActions.FetchBalance) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchBalance', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchBalance', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.BALANCE_API); }), map((balance) => { this.logger.info(balance); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchBalance', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchBalance', status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_BALANCE_CL, payload: balance ? balance : {} @@ -168,13 +196,13 @@ export class CLEffects implements OnDestroy { fetchLocalRemoteBalanceCL = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_LOCAL_REMOTE_BALANCE_CL), - mergeMap((action: CLActions.FetchLocalRemoteBalance) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchLocalRemoteBalance', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchLocalRemoteBalance', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API + '/localremotebalance'); }), map((lrBalance) => { this.logger.info(lrBalance); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchLocalRemoteBalance', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchLocalRemoteBalance', status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_LOCAL_REMOTE_BALANCE_CL, payload: lrBalance ? lrBalance : {} @@ -188,13 +216,13 @@ export class CLEffects implements OnDestroy { getNewAddressCL = createEffect(() => this.actions.pipe( ofType(CLActions.GET_NEW_ADDRESS_CL), - mergeMap((action: CLActions.GetNewAddress) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GENERATE_NEW_ADDRESS)); + mergeMap((action: { type: string, payload: GetNewAddress }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GENERATE_NEW_ADDRESS })); return this.httpClient.get(this.CHILD_API_URL + environment.ON_CHAIN_API + '?type=' + action.payload.addressCode). pipe( map((newAddress: any) => { this.logger.info(newAddress); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GENERATE_NEW_ADDRESS)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GENERATE_NEW_ADDRESS })); return { type: CLActions.SET_NEW_ADDRESS_CL, payload: (newAddress && newAddress.address) ? newAddress.address : {} @@ -211,7 +239,7 @@ export class CLEffects implements OnDestroy { setNewAddressCL = createEffect( () => this.actions.pipe( ofType(CLActions.SET_NEW_ADDRESS_CL), - map((action: CLActions.SetNewAddress) => { + map((action: { type: string, payload: string }) => { this.logger.info(action.payload); return action.payload; }) @@ -221,16 +249,16 @@ export class CLEffects implements OnDestroy { peersFetchCL = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_PEERS_CL), - mergeMap((action: CLActions.FetchPeers) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchPeers', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchPeers', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.PEERS_API). pipe( map((peers: any) => { this.logger.info(peers); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchPeers', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchPeers', status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_PEERS_CL, - payload: peers ? peers : [] + payload: peers || [] }; }), catchError((err: any) => { @@ -243,17 +271,16 @@ export class CLEffects implements OnDestroy { saveNewPeerCL = createEffect(() => this.actions.pipe( ofType(CLActions.SAVE_NEW_PEER_CL), - withLatestFrom(this.store.select('cl')), - mergeMap(([action, clData]: [CLActions.SaveNewPeer, fromCLReducers.CLState]) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.CONNECT_PEER)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SaveNewPeer', status: APICallStatusEnum.INITIATED })); - return this.httpClient.post(this.CHILD_API_URL + environment.PEERS_API, { id: action.payload.id }). + mergeMap((action: { type: string, payload: { id: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.CONNECT_PEER })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SaveNewPeer', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.post(this.CHILD_API_URL + environment.PEERS_API, { id: action.payload.id }). pipe( map((postRes: Peer[]) => { this.logger.info(postRes); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SaveNewPeer', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.CONNECT_PEER)); - this.store.dispatch(new CLActions.SetPeers((postRes && postRes.length > 0) ? postRes : [])); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SaveNewPeer', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.CONNECT_PEER })); + this.store.dispatch(setPeers({ payload: (postRes || []) })); return { type: CLActions.NEWLY_ADDED_PEER_CL, payload: { peer: postRes.find((peer) => action.payload.id.indexOf(peer.id) === 0) } @@ -269,14 +296,14 @@ export class CLEffects implements OnDestroy { detachPeerCL = createEffect(() => this.actions.pipe( ofType(CLActions.DETACH_PEER_CL), - mergeMap((action: CLActions.DetachPeer) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.DISCONNECT_PEER)); + mergeMap((action: { type: string, payload: DetachPeer }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.DISCONNECT_PEER })); return this.httpClient.delete(this.CHILD_API_URL + environment.PEERS_API + '/' + action.payload.id + '?force=' + action.payload.force). pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.DISCONNECT_PEER)); - this.store.dispatch(new RTLActions.OpenSnackBar('Peer Disconnected Successfully!')); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.DISCONNECT_PEER })); + this.store.dispatch(openSnackBar({ payload: 'Peer Disconnected Successfully!' })); return { type: CLActions.REMOVE_PEER_CL, payload: { id: action.payload.id } @@ -292,17 +319,29 @@ export class CLEffects implements OnDestroy { channelsFetchCL = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_CHANNELS_CL), - mergeMap((action: CLActions.FetchChannels) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchChannels', status: APICallStatusEnum.INITIATED })); - return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API + '/listChannels'); + mergeMap(() => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchChannels', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API + '/listChannels'); }), - map((channels: any) => { + map((channels: Channel[]) => { this.logger.info(channels); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchChannels', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new CLActions.GetForwardingHistory({ status: 'settled' })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchChannels', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(getForwardingHistory({ payload: { status: 'settled' } })); + const sortedChannels = { activeChannels: [], pendingChannels: [], inactiveChannels: [] }; + channels.forEach((channel) => { + if (channel.state === 'CHANNELD_NORMAL') { + if (channel.connected) { + sortedChannels.activeChannels.push(channel); + } else { + sortedChannels.inactiveChannels.push(channel); + } + } else { + sortedChannels.pendingChannels.push(channel); + } + }); return { type: CLActions.SET_CHANNELS_CL, - payload: (channels && channels.length > 0) ? channels : [] + payload: sortedChannels }; }), catchError((err: any) => { @@ -313,9 +352,9 @@ export class CLEffects implements OnDestroy { openNewChannelCL = createEffect(() => this.actions.pipe( ofType(CLActions.SAVE_NEW_CHANNEL_CL), - mergeMap((action: CLActions.SaveNewChannel) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.OPEN_CHANNEL)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SaveNewChannel', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SaveChannel }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.OPEN_CHANNEL })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SaveNewChannel', status: APICallStatusEnum.INITIATED } })); const newPayload = { id: action.payload.peerId, satoshis: action.payload.satoshis, feeRate: action.payload.feeRate, announce: action.payload.announce, minconf: (action.payload.minconf) ? action.payload.minconf : null }; if (action.payload.utxos) { newPayload['utxos'] = action.payload.utxos; @@ -324,11 +363,11 @@ export class CLEffects implements OnDestroy { pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SaveNewChannel', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.OPEN_CHANNEL)); - this.store.dispatch(new RTLActions.OpenSnackBar('Channel Added Successfully!')); - this.store.dispatch(new CLActions.FetchBalance()); - this.store.dispatch(new CLActions.FetchUTXOs()); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SaveNewChannel', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.OPEN_CHANNEL })); + this.store.dispatch(openSnackBar({ payload: 'Channel Added Successfully!' })); + this.store.dispatch(fetchBalance()); + this.store.dispatch(fetchUTXOs()); return { type: CLActions.FETCH_CHANNELS_CL }; @@ -342,49 +381,47 @@ export class CLEffects implements OnDestroy { )); updateChannelCL = createEffect(() => this.actions.pipe( - ofType(CLActions.UPDATE_CHANNELS_CL), - mergeMap((action: CLActions.UpdateChannels) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.UPDATE_CHAN_POLICY)); + ofType(CLActions.UPDATE_CHANNEL_CL), + mergeMap((action: { type: string, payload: UpdateChannel }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.UPDATE_CHAN_POLICY })); return this.httpClient.post( this.CHILD_API_URL + environment.CHANNELS_API + '/setChannelFee', { id: action.payload.channelId, base: action.payload.baseFeeMsat, ppm: action.payload.feeRate } - ). - pipe( - map((postRes: any) => { - this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.UPDATE_CHAN_POLICY)); - if (action.payload.channelId === 'all') { - this.store.dispatch(new RTLActions.OpenSnackBar({ message: 'All Channels Updated Successfully. Fee policy updates may take some time to reflect on the channel.', duration: 5000 })); - } else { - this.store.dispatch(new RTLActions.OpenSnackBar({ message: 'Channel Updated Successfully. Fee policy updates may take some time to reflect on the channel.', duration: 5000 })); - } - return { - type: CLActions.FETCH_CHANNELS_CL - }; - }), - catchError((err: any) => { - this.handleErrorWithAlert('UpdateChannel', UI_MESSAGES.UPDATE_CHAN_POLICY, 'Update Channel Failed', this.CHILD_API_URL + environment.CHANNELS_API, err); - return of({ type: RTLActions.VOID }); - }) - ); + ).pipe(map((postRes: any) => { + this.logger.info(postRes); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.UPDATE_CHAN_POLICY })); + if (action.payload.channelId === 'all') { + this.store.dispatch(openSnackBar({ payload: { message: 'All Channels Updated Successfully. Fee policy updates may take some time to reflect on the channel.', duration: 5000 } })); + } else { + this.store.dispatch(openSnackBar({ payload: { message: 'Channel Updated Successfully. Fee policy updates may take some time to reflect on the channel.', duration: 5000 } })); + } + return { + type: CLActions.FETCH_CHANNELS_CL + }; + }), catchError((err: any) => { + this.handleErrorWithAlert('UpdateChannel', UI_MESSAGES.UPDATE_CHAN_POLICY, 'Update Channel Failed', this.CHILD_API_URL + environment.CHANNELS_API, err); + return of({ type: RTLActions.VOID }); + }) + ); }) )); closeChannelCL = createEffect(() => this.actions.pipe( ofType(CLActions.CLOSE_CHANNEL_CL), - mergeMap((action: CLActions.CloseChannel) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.force ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL)); + mergeMap((action: { type: string, payload: CloseChannel }) => { + this.store.dispatch(openSpinner({ payload: (action.payload.force ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL) })); const queryParam = action.payload.force ? '?force=' + action.payload.force : ''; return this.httpClient.delete(this.CHILD_API_URL + environment.CHANNELS_API + '/' + action.payload.channelId + queryParam). pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.force ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL)); - this.store.dispatch(new CLActions.FetchChannels()); - this.store.dispatch(new RTLActions.OpenSnackBar('Channel Closed Successfully!')); + this.store.dispatch(closeSpinner({ payload: action.payload.force ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL })); + this.store.dispatch(fetchChannels()); + this.store.dispatch(fetchLocalRemoteBalance()); + this.store.dispatch(openSnackBar({ payload: 'Channel Closed Successfully!' })); return { type: CLActions.REMOVE_CHANNEL_CL, - payload: { channelId: action.payload.channelId } + payload: action.payload }; }), catchError((err: any) => { @@ -397,16 +434,16 @@ export class CLEffects implements OnDestroy { paymentsFetchCL = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_PAYMENTS_CL), - mergeMap((action: CLActions.FetchPayments) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchPayments', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchPayments', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.PAYMENTS_API); }), map((payments) => { this.logger.info(payments); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchPayments', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchPayments', status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_PAYMENTS_CL, - payload: payments ? payments : [] + payload: payments || [] }; }), catchError((err: any) => { @@ -415,98 +452,98 @@ export class CLEffects implements OnDestroy { }) )); - decodePaymentCL = createEffect(() => this.actions.pipe( - ofType(CLActions.DECODE_PAYMENT_CL), - mergeMap((action: CLActions.DecodePayment) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.DECODE_PAYMENT)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'DecodePayment', status: APICallStatusEnum.INITIATED })); - return this.httpClient.get(this.CHILD_API_URL + environment.PAYMENTS_API + '/' + action.payload.routeParam). - pipe( - map((decodedPayment) => { - this.logger.info(decodedPayment); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'DecodePayment', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.DECODE_PAYMENT)); - return { - type: CLActions.SET_DECODED_PAYMENT_CL, - payload: decodedPayment ? decodedPayment : {} - }; + fetchOfferInvoiceCL = createEffect( + () => this.actions.pipe( + ofType(CLActions.FETCH_OFFER_INVOICE_CL), + mergeMap((action: { type: string, payload: { offer: string, msatoshi?: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.FETCH_INVOICE })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchOfferInvoice', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.post(this.CHILD_API_URL + environment.OFFERS_API + '/fetchOfferInvoice', action.payload). + pipe( + map((fetchedInvoice: any) => { + this.logger.info(fetchedInvoice); + setTimeout(() => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchOfferInvoice', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.FETCH_INVOICE })); + this.store.dispatch(setOfferInvoice({ payload: (fetchedInvoice ? fetchedInvoice : {}) })); + }, 500); + }), + catchError((err: any) => { + this.handleErrorWithoutAlert('FetchOfferInvoice', UI_MESSAGES.FETCH_INVOICE, 'Offer Invoice Fetch Failed', err); + return of({ type: RTLActions.VOID }); + })); + })), + { dispatch: false } + ); + + setOfferInvoiceCL = createEffect( + () => this.actions.pipe( + ofType(CLActions.SET_OFFER_INVOICE_CL), + map((action: { type: string, payload: OfferInvoice }) => { + this.logger.info(action.payload); + return action.payload; + }) + ), + { dispatch: false } + ); + + sendPaymentCL = createEffect( + () => this.actions.pipe( + ofType(CLActions.SEND_PAYMENT_CL), + mergeMap((action: { type: string, payload: SendPayment }) => { + this.store.dispatch(openSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SendPayment', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.post(this.CHILD_API_URL + environment.PAYMENTS_API, action.payload).pipe( + map((sendRes: any) => { + this.logger.info(sendRes); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SendPayment', status: APICallStatusEnum.COMPLETED } })); + let snackBarMessageStr = 'Payment Sent Successfully!'; + if (sendRes.saveToDBError) { + snackBarMessageStr = 'Payment Sent Successfully but Offer Saving to Database Failed.'; + } + if (sendRes.saveToDBResponse && sendRes.saveToDBResponse !== 'NA') { + this.store.dispatch(addUpdateOfferBookmark({ payload: sendRes.saveToDBResponse })); + snackBarMessageStr = 'Payment Sent Successfully and Offer Saved to Database.'; + } + setTimeout(() => { + this.store.dispatch(fetchChannels()); + this.store.dispatch(fetchBalance()); + this.store.dispatch(fetchPayments()); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(openSnackBar({ payload: snackBarMessageStr })); + this.store.dispatch(sendPaymentStatus({ payload: sendRes.paymentResponse })); + }, 1000); }), catchError((err: any) => { + this.logger.error('Error: ' + JSON.stringify(err)); if (action.payload.fromDialog) { - this.handleErrorWithoutAlert('DecodePayment', UI_MESSAGES.DECODE_PAYMENT, 'Decode Payment Failed.', err); + this.handleErrorWithoutAlert('SendPayment', action.payload.uiMessage, 'Send Payment Failed.', err); } else { - this.handleErrorWithAlert('DecodePayment', UI_MESSAGES.DECODE_PAYMENT, 'Decode Payment Failed', this.CHILD_API_URL + environment.PAYMENTS_API + '/' + action.payload, err); + this.handleErrorWithAlert('SendPayment', action.payload.uiMessage, 'Send Payment Failed', this.CHILD_API_URL + environment.PAYMENTS_API, err); } return of({ type: RTLActions.VOID }); }) ); - }) - )); - - setDecodedPaymentCL = createEffect( - () => this.actions.pipe( - ofType(CLActions.SET_DECODED_PAYMENT_CL), - map((action: CLActions.SetDecodedPayment) => { - this.logger.info(action.payload); - return action.payload; - }) - ), + })), { dispatch: false } ); - sendPaymentCL = createEffect(() => this.actions.pipe( - ofType(CLActions.SEND_PAYMENT_CL), - withLatestFrom(this.store.select('root')), - mergeMap(([action, store]: [CLActions.SendPayment, any]) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.uiMessage)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SendPayment', status: APICallStatusEnum.INITIATED })); - const paymentUrl = (action.payload.pubkey && action.payload.pubkey !== '') ? this.CHILD_API_URL + environment.PAYMENTS_API + '/keysend' : this.CHILD_API_URL + environment.PAYMENTS_API + '/invoice'; - return this.httpClient.post(paymentUrl, action.payload).pipe( - map((sendRes: any) => { - this.logger.info(sendRes); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SendPayment', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.OpenSnackBar('Payment Sent Successfully!')); - this.store.dispatch(new CLActions.SetDecodedPayment({})); - setTimeout(() => { - this.store.dispatch(new CLActions.FetchChannels()); - this.store.dispatch(new CLActions.FetchBalance()); - this.store.dispatch(new CLActions.FetchPayments()); - }, 1000); - return { - type: CLActions.SEND_PAYMENT_STATUS_CL, - payload: sendRes - }; - }), - catchError((err: any) => { - this.logger.error('Error: ' + JSON.stringify(err)); - if (action.payload.fromDialog) { - this.handleErrorWithoutAlert('SendPayment', action.payload.uiMessage, 'Send Payment Failed.', err); - } else { - this.handleErrorWithAlert('SendPayment', action.payload.uiMessage, 'Send Payment Failed', this.CHILD_API_URL + environment.PAYMENTS_API, err); - } - return of({ type: RTLActions.VOID }); - }) - ); - }) - )); - queryRoutesFetchCL = createEffect(() => this.actions.pipe( ofType(CLActions.GET_QUERY_ROUTES_CL), - mergeMap((action: CLActions.GetQueryRoutes) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'GetQueryRoutes', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: GetQueryRoutes }) => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'GetQueryRoutes', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.NETWORK_API + '/getRoute/' + action.payload.destPubkey + '/' + action.payload.amount). pipe( map((qrRes: any) => { this.logger.info(qrRes); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'GetQueryRoutes', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'GetQueryRoutes', status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_QUERY_ROUTES_CL, payload: qrRes }; }), catchError((err: any) => { - this.store.dispatch(new CLActions.SetQueryRoutes({ routes: [] })); + this.store.dispatch(setQueryRoutes({ payload: { routes: [] } })); this.handleErrorWithAlert('GetQueryRoutes', UI_MESSAGES.NO_SPINNER, 'Get Query Routes Failed', this.CHILD_API_URL + environment.NETWORK_API + '/getRoute/' + action.payload.destPubkey + '/' + action.payload.amount, err); return of({ type: RTLActions.VOID }); }) @@ -517,22 +554,22 @@ export class CLEffects implements OnDestroy { setQueryRoutesCL = createEffect( () => this.actions.pipe( ofType(CLActions.SET_QUERY_ROUTES_CL), - map((action: CLActions.SetQueryRoutes) => action.payload) + map((action: { type: string, payload: QueryRoutes }) => action.payload) ), { dispatch: false } ); peerLookupCL = createEffect(() => this.actions.pipe( ofType(CLActions.PEER_LOOKUP_CL), - mergeMap((action: CLActions.PeerLookup) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEARCHING_NODE)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEARCHING_NODE })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.NETWORK_API + '/listNode/' + action.payload). pipe( map((resPeer) => { this.logger.info(resPeer); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEARCHING_NODE)); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEARCHING_NODE })); return { type: CLActions.SET_LOOKUP_CL, payload: resPeer @@ -548,15 +585,15 @@ export class CLEffects implements OnDestroy { channelLookupCL = createEffect(() => this.actions.pipe( ofType(CLActions.CHANNEL_LOOKUP_CL), - mergeMap((action: CLActions.ChannelLookup) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.uiMessage)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: ChannelLookup }) => { + this.store.dispatch(openSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.NETWORK_API + '/listChannel/' + action.payload.shortChannelID). pipe( map((resChannel) => { this.logger.info(resChannel); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); return { type: CLActions.SET_LOOKUP_CL, payload: resChannel @@ -566,9 +603,9 @@ export class CLEffects implements OnDestroy { if (action.payload.showError) { this.handleErrorWithAlert('Lookup', action.payload.uiMessage, 'Channel Lookup Failed', this.CHILD_API_URL + environment.NETWORK_API + '/listChannel/' + action.payload.shortChannelID, err); } else { - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); } - this.store.dispatch(new CLActions.SetLookup([])); + this.store.dispatch(setLookup({ payload: [] })); return of({ type: RTLActions.VOID }); }) ); @@ -577,17 +614,17 @@ export class CLEffects implements OnDestroy { invoiceLookupCL = createEffect(() => this.actions.pipe( ofType(CLActions.INVOICE_LOOKUP_CL), - mergeMap((action: CLActions.InvoiceLookup) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEARCHING_INVOICE)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEARCHING_INVOICE })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.INVOICES_API + '?label=' + action.payload). pipe( map((resInvoice: any) => { this.logger.info(resInvoice); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEARCHING_INVOICE)); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEARCHING_INVOICE })); if (resInvoice.invoices && resInvoice.invoices.length && resInvoice.invoices.length > 0) { - this.store.dispatch(new CLActions.UpdateInvoice(resInvoice.invoices[0])); + this.store.dispatch(updateInvoice({ payload: resInvoice.invoices[0] })); } return { type: CLActions.SET_LOOKUP_CL, @@ -596,7 +633,7 @@ export class CLEffects implements OnDestroy { }), catchError((err: any) => { this.handleErrorWithoutAlert('Lookup', UI_MESSAGES.SEARCHING_INVOICE, 'Invoice Lookup Failed', err); - this.store.dispatch(new RTLActions.OpenSnackBar({ message: 'Invoice Refresh Failed.', type: 'ERROR' })); + this.store.dispatch(openSnackBar({ payload: { message: 'Invoice Refresh Failed.', type: 'ERROR' } })); return of({ type: RTLActions.VOID }); }) ); @@ -606,7 +643,7 @@ export class CLEffects implements OnDestroy { setLookupCL = createEffect( () => this.actions.pipe( ofType(CLActions.SET_LOOKUP_CL), - map((action: CLActions.SetLookup) => { + map((action: { type: string, payload: any }) => { this.logger.info(action.payload); return action.payload; }) @@ -616,15 +653,15 @@ export class CLEffects implements OnDestroy { fetchForwardingHistoryCL = createEffect(() => this.actions.pipe( ofType(CLActions.GET_FORWARDING_HISTORY_CL), - withLatestFrom(this.store.select('cl')), - mergeMap(([action, clStore]: [CLActions.GetForwardingHistory, fromCLReducers.CLState]) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'GetForwardingHistory', status: APICallStatusEnum.INITIATED })); + withLatestFrom(this.store.select(clNodeInformation)), + mergeMap(([action, nodeInfo]: [{ type: string, payload: { status: string } }, GetInfo]) => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchForwardingHistory', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API + '/listForwards?status=' + action.payload.status). pipe( map((fhRes: any) => { this.logger.info(fhRes); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'GetForwardingHistory', status: APICallStatusEnum.COMPLETED })); - const isNewerVersion = (clStore.information.api_version) ? this.commonService.isVersionCompatible(clStore.information.api_version, '0.5.0') : false; + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchForwardingHistory', status: APICallStatusEnum.COMPLETED } })); + const isNewerVersion = (nodeInfo.api_version) ? this.commonService.isVersionCompatible(nodeInfo.api_version, '0.5.0') : false; if (!isNewerVersion) { const filteredFailedEvents = []; const filteredSuccesfulEvents = []; @@ -636,7 +673,7 @@ export class CLEffects implements OnDestroy { } }); fhRes = JSON.parse(JSON.stringify(filteredSuccesfulEvents)); - this.store.dispatch(new CLActions.SetFailedForwardingHistory(filteredFailedEvents)); + this.store.dispatch(setFailedForwardingHistory({ payload: filteredFailedEvents })); } return { type: CLActions.SET_FORWARDING_HISTORY_CL, @@ -644,7 +681,7 @@ export class CLEffects implements OnDestroy { }; }), catchError((err: any) => { - this.handleErrorWithAlert('GetForwardingHistory', UI_MESSAGES.NO_SPINNER, 'Get Forwarding History Failed', this.CHILD_API_URL + environment.CHANNELS_API + '/listForwards?status=' + action.payload.status, err); + this.handleErrorWithAlert('FetchForwardingHistory', UI_MESSAGES.NO_SPINNER, 'Get Forwarding History Failed', this.CHILD_API_URL + environment.CHANNELS_API + '/listForwards?status=' + action.payload.status, err); return of({ type: RTLActions.VOID }); }) ); @@ -653,13 +690,13 @@ export class CLEffects implements OnDestroy { fetchFailedForwardingHistoryCL = createEffect(() => this.actions.pipe( ofType(CLActions.GET_FAILED_FORWARDING_HISTORY_CL), - withLatestFrom(this.store.select('cl')), - mergeMap(([action, clStore]: [CLActions.GetFailedForwardingHistory, fromCLReducers.CLState]) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'GetFailedForwardingHistory', status: APICallStatusEnum.INITIATED })); + withLatestFrom(this.store.select(clNodeInformation)), + mergeMap(([action, nodeInfo]: [{ type: string, payload: any }, GetInfo]) => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchFailedForwardingHistory', status: APICallStatusEnum.INITIATED } })); // For backwards compatibility < 0.5.0 START - const isNewerVersion = (clStore.information.api_version) ? this.commonService.isVersionCompatible(clStore.information.api_version, '0.5.0') : false; + const isNewerVersion = (nodeInfo.api_version) ? this.commonService.isVersionCompatible(nodeInfo.api_version, '0.5.0') : false; if (!isNewerVersion) { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'GetFailedForwardingHistory', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchFailedForwardingHistory', status: APICallStatusEnum.COMPLETED } })); return of({ type: RTLActions.VOID }); } // For backwards compatibility < 0.5.0 END let failedEventsReq = new Observable(); @@ -668,54 +705,29 @@ export class CLEffects implements OnDestroy { failedEventsReq = forkJoin([failedRes, localFailedRes]); return failedEventsReq.pipe(map((ffhRes: any) => { this.logger.info(ffhRes); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'GetFailedForwardingHistory', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchFailedForwardingHistory', status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_FAILED_FORWARDING_HISTORY_CL, payload: this.commonService.sortDescByKey([...ffhRes[0], ...ffhRes[1]], 'received_time') }; - }), - catchError((err) => { - this.handleErrorWithAlert('GetFailedForwardingHistory', UI_MESSAGES.NO_SPINNER, 'Get Failed Forwarding History Failed', this.CHILD_API_URL + environment.CHANNELS_API + '/listForwards?status=failed', err); + }), catchError((err) => { + this.handleErrorWithAlert('FetchFailedForwardingHistory', UI_MESSAGES.NO_SPINNER, 'Get Failed Forwarding History Failed', this.CHILD_API_URL + environment.CHANNELS_API + '/listForwards?status=failed', err); return of({ type: RTLActions.VOID }); })); })) ); - // fetchFailedForwardingHistoryCL = createEffect(() => this.actions.pipe( - // ofType(CLActions.GET_FAILED_FORWARDING_HISTORY_CL), - // mergeMap((action: CLActions.GetFailedForwardingHistory) => { - // this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'GetFailedForwardingHistory', status: APICallStatusEnum.INITIATED })); - // let updateSettingReq = new Observable(); - // const settingsRes = this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API + '/listForwards?status=failed'); - // const defaultNodeRes = this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API + '/listForwards?status=local_failed'); - // updateSettingReq = forkJoin([settingsRes, defaultNodeRes]); - // return updateSettingReq.pipe(map((updateStatus: any) => { - // this.logger.info(ffhRes); - // this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'GetFailedForwardingHistory', status: APICallStatusEnum.COMPLETED })); - // return { - // type: CLActions.SET_FAILED_FORWARDING_HISTORY_CL, - // payload: ffhRes - // }; - // }), - // catchError((err: any) => { - // this.handleErrorWithAlert('GetFailedForwardingHistory', UI_MESSAGES.NO_SPINNER, 'Get Failed Forwarding History Failed', this.CHILD_API_URL + environment.CHANNELS_API + '/listForwards?status=failed', err); - // return of({ type: RTLActions.VOID }); - // }) - // ); - // }) - // )); - deleteExpiredInvoiceCL = createEffect(() => this.actions.pipe( ofType(CLActions.DELETE_EXPIRED_INVOICE_CL), - mergeMap((action: CLActions.DeleteExpiredInvoice) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.DELETE_INVOICE)); + mergeMap((action: { type: string, payload: number }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.DELETE_INVOICE })); const queryStr = (action.payload) ? '?maxexpiry=' + action.payload : ''; return this.httpClient.delete(this.CHILD_API_URL + environment.INVOICES_API + queryStr). pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.DELETE_INVOICE)); - this.store.dispatch(new RTLActions.OpenSnackBar('Invoices Deleted Successfully!')); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.DELETE_INVOICE })); + this.store.dispatch(openSnackBar({ payload: 'Invoices Deleted Successfully!' })); return { type: CLActions.FETCH_INVOICES_CL, payload: { num_max_invoices: 1000000, reversed: true } @@ -731,29 +743,33 @@ export class CLEffects implements OnDestroy { saveNewInvoiceCL = createEffect(() => this.actions.pipe( ofType(CLActions.SAVE_NEW_INVOICE_CL), - mergeMap((action: CLActions.SaveNewInvoice) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.ADD_INVOICE)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SaveNewInvoice', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: { amount: number, label: string, description: string, expiry: number, private: boolean } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.ADD_INVOICE })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SaveNewInvoice', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.INVOICES_API, { label: action.payload.label, amount: action.payload.amount, description: action.payload.description, expiry: action.payload.expiry, private: action.payload.private }). pipe( map((postRes: Invoice) => { this.logger.info(postRes); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SaveNewInvoice', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.ADD_INVOICE)); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SaveNewInvoice', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.ADD_INVOICE })); postRes.msatoshi = action.payload.amount; postRes.label = action.payload.label; postRes.expires_at = Math.round((new Date().getTime() / 1000) + action.payload.expiry); postRes.description = action.payload.description; postRes.status = 'unpaid'; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - invoice: postRes, - newlyAdded: false, - component: CLInvoiceInformationComponent - } - })); + setTimeout(() => { + this.store.dispatch(openAlert({ + payload: { + data: { + invoice: postRes, + newlyAdded: true, + component: CLInvoiceInformationComponent + } + } + })); + }, 100); return { type: CLActions.ADD_INVOICE_CL, payload: postRes @@ -767,10 +783,44 @@ export class CLEffects implements OnDestroy { }) )); + saveNewOfferCL = createEffect(() => this.actions.pipe( + ofType(CLActions.SAVE_NEW_OFFER_CL), + mergeMap((action: { type: string, payload: { amount: string, description: string, vendor: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.CREATE_OFFER })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SaveNewOffer', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.post(this.CHILD_API_URL + environment.OFFERS_API, { + amount: action.payload.amount, description: action.payload.description, vendor: action.payload.vendor + }).pipe(map((postRes: Offer) => { + this.logger.info(postRes); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SaveNewOffer', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.CREATE_OFFER })); + setTimeout(() => { + this.store.dispatch(openAlert({ + payload: { + data: { + offer: postRes, + newlyAdded: true, + component: CLOfferInformationComponent + } + } + })); + }, 100); + return { + type: CLActions.ADD_OFFER_CL, + payload: postRes + }; + }), catchError((err: any) => { + this.handleErrorWithoutAlert('SaveNewOffer', UI_MESSAGES.CREATE_OFFER, 'Create Offer Failed.', err); + return of({ type: RTLActions.VOID }); + }) + ); + }) + )); + invoicesFetchCL = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_INVOICES_CL), - mergeMap((action: CLActions.FetchInvoices) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchInvoices', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: FetchInvoices }) => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchInvoices', status: APICallStatusEnum.INITIATED } })); const num_max_invoices = (action.payload.num_max_invoices) ? action.payload.num_max_invoices : 1000000; const index_offset = (action.payload.index_offset) ? action.payload.index_offset : 0; const reversed = (action.payload.reversed) ? action.payload.reversed : true; @@ -778,7 +828,7 @@ export class CLEffects implements OnDestroy { pipe( map((res: ListInvoices) => { this.logger.info(res); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchInvoices', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchInvoices', status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_INVOICES_CL, payload: res @@ -792,19 +842,101 @@ export class CLEffects implements OnDestroy { }) )); + offersFetchCL = createEffect(() => this.actions.pipe( + ofType(CLActions.FETCH_OFFERS_CL), + mergeMap((action: { type: string, payload: any }) => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchOffers', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.get(this.CHILD_API_URL + environment.OFFERS_API). + pipe(map((res: any) => { + this.logger.info(res); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchOffers', status: APICallStatusEnum.COMPLETED } })); + return { + type: CLActions.SET_OFFERS_CL, + payload: res.offers ? res.offers : [] + }; + }), catchError((err: any) => { + this.handleErrorWithoutAlert('FetchOffers', UI_MESSAGES.NO_SPINNER, 'Fetching Offers Failed.', err); + return of({ type: RTLActions.VOID }); + })); + }) + )); + + offersDisableCL = createEffect(() => this.actions.pipe( + ofType(CLActions.DISABLE_OFFER_CL), + mergeMap((action: { type: string, payload: { offer_id: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.DISABLE_OFFER })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'DisableOffer', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.delete(this.CHILD_API_URL + environment.OFFERS_API + '/' + action.payload.offer_id). + pipe(map((postRes: any) => { + this.logger.info(postRes); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'DisableOffer', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.DISABLE_OFFER })); + this.store.dispatch(openSnackBar({ payload: 'Offer Disabled Successfully!' })); + return { + type: CLActions.UPDATE_OFFER_CL, + payload: { offer: postRes } + }; + }), catchError((err: any) => { + this.handleErrorWithoutAlert('DisableOffer', UI_MESSAGES.DISABLE_OFFER, 'Disabling Offer Failed.', err); + return of({ type: RTLActions.VOID }); + })); + }) + )); + + offerBookmarksFetchCL = createEffect(() => this.actions.pipe( + ofType(CLActions.FETCH_OFFER_BOOKMARKS_CL), + mergeMap((action: { type: string, payload: any }) => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchOfferBookmarks', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.get(this.CHILD_API_URL + environment.OFFERS_API + '/offerbookmarks'). + pipe(map((res: any) => { + this.logger.info(res); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchOfferBookmarks', status: APICallStatusEnum.COMPLETED } })); + return { + type: CLActions.SET_OFFER_BOOKMARKS_CL, + payload: res || [] + }; + }), catchError((err: any) => { + this.handleErrorWithoutAlert('FetchOfferBookmarks', UI_MESSAGES.NO_SPINNER, 'Fetching Offer Bookmarks Failed.', err); + return of({ type: RTLActions.VOID }); + })); + }) + )); + + peidOffersDeleteCL = createEffect(() => this.actions.pipe( + ofType(CLActions.DELETE_OFFER_BOOKMARK_CL), + mergeMap((action: { type: string, payload: { bolt12: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.DELETE_OFFER_BOOKMARK })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'DeleteOfferBookmark', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.delete(this.CHILD_API_URL + environment.OFFERS_API + '/offerbookmark/' + action.payload.bolt12). + pipe(map((postRes: any) => { + this.logger.info(postRes); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'DeleteOfferBookmark', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.DELETE_OFFER_BOOKMARK })); + this.store.dispatch(openSnackBar({ payload: 'Offer Bookmark Deleted Successfully!' })); + return { + type: CLActions.REMOVE_OFFER_BOOKMARK_CL, + payload: { bolt12: action.payload.bolt12 } + }; + }), catchError((err: any) => { + this.handleErrorWithAlert('DeleteOfferBookmark', UI_MESSAGES.DELETE_OFFER_BOOKMARK, 'Deleting Offer Bookmark Failed.', this.CHILD_API_URL + environment.OFFERS_API + '/offerbookmark/' + action.payload.bolt12, err); + return of({ type: RTLActions.VOID }); + })); + }) + )); + SetChannelTransactionCL = createEffect(() => this.actions.pipe( ofType(CLActions.SET_CHANNEL_TRANSACTION_CL), - mergeMap((action: CLActions.SetChannelTransaction) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEND_FUNDS)); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SetChannelTransaction', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: OnChain }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEND_FUNDS })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SetChannelTransaction', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.ON_CHAIN_API, action.payload). pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'SetChannelTransaction', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEND_FUNDS)); - this.store.dispatch(new CLActions.FetchBalance()); - this.store.dispatch(new CLActions.FetchUTXOs()); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'SetChannelTransaction', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEND_FUNDS })); + this.store.dispatch(fetchBalance()); + this.store.dispatch(fetchUTXOs()); return { type: CLActions.SET_CHANNEL_TRANSACTION_RES_CL, payload: postRes @@ -820,16 +952,16 @@ export class CLEffects implements OnDestroy { utxosFetch = createEffect(() => this.actions.pipe( ofType(CLActions.FETCH_UTXOS_CL), - mergeMap((action: CLActions.FetchUTXOs) => { - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchUTXOs', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchUTXOs', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.ON_CHAIN_API + '/utxos'); }), map((utxos: any) => { this.logger.info(utxos); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: 'FetchUTXOs', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: 'FetchUTXOs', status: APICallStatusEnum.COMPLETED } })); return { type: CLActions.SET_UTXOS_CL, - payload: (utxos && utxos.outputs && utxos.outputs.length > 0) ? utxos.outputs : [] + payload: utxos.outputs || [] }; }), catchError((err: any) => { @@ -850,18 +982,8 @@ export class CLEffects implements OnDestroy { api_version: info.api_version, numberOfPendingChannels: info.num_pending_channels }; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.INITALIZE_NODE_DATA)); - this.store.dispatch(new RTLActions.SetNodeData(node_data)); - this.store.dispatch(new CLActions.FetchInvoices({ num_max_invoices: 1000000, index_offset: 0, reversed: true })); - this.store.dispatch(new CLActions.FetchFees()); - this.store.dispatch(new CLActions.FetchChannels()); - this.store.dispatch(new CLActions.FetchBalance()); - this.store.dispatch(new CLActions.FetchLocalRemoteBalance()); - this.store.dispatch(new CLActions.FetchFeeRates('perkw')); - this.store.dispatch(new CLActions.FetchFeeRates('perkb')); - this.store.dispatch(new CLActions.FetchPeers()); - this.store.dispatch(new CLActions.FetchUTXOs()); - this.store.dispatch(new CLActions.FetchPayments()); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.INITALIZE_NODE_DATA })); + this.store.dispatch(setNodeData({ payload: node_data })); let newRoute = this.location.path(); if (newRoute.includes('/lnd/')) { newRoute = newRoute.replace('/lnd/', '/cl/'); @@ -872,19 +994,29 @@ export class CLEffects implements OnDestroy { newRoute = '/cl/home'; } this.router.navigate([newRoute]); + this.store.dispatch(fetchInvoices({ payload: { num_max_invoices: 1000000, index_offset: 0, reversed: true } })); + this.store.dispatch(fetchFees()); + this.store.dispatch(fetchChannels()); + this.store.dispatch(fetchBalance()); + this.store.dispatch(fetchLocalRemoteBalance()); + this.store.dispatch(fetchFeeRates({ payload: 'perkw' })); + this.store.dispatch(fetchFeeRates({ payload: 'perkb' })); + this.store.dispatch(fetchPeers()); + this.store.dispatch(fetchUTXOs()); + this.store.dispatch(fetchPayments()); } handleErrorWithoutAlert(actionName: string, uiMessage: string, genericErrorMessage: string, err: { status: number, error: any }) { this.logger.error('ERROR IN: ' + actionName + '\n' + JSON.stringify(err)); if (err.status === 401) { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); const errMsg = this.commonService.extractErrorMessage(err, genericErrorMessage); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg } })); } } @@ -892,21 +1024,23 @@ export class CLEffects implements OnDestroy { this.logger.error(err); if (err.status === 401) { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); const errMsg = this.commonService.extractErrorMessage(err); - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: 'ERROR', - alertTitle: alertTitle, - message: { code: err.status, message: errMsg, URL: errURL }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: 'ERROR', + alertTitle: alertTitle, + message: { code: err.status, message: errMsg, URL: errURL }, + component: ErrorMessageComponent + } } })); - this.store.dispatch(new CLActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg, URL: errURL })); + this.store.dispatch(updateCLAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg, URL: errURL } })); } } diff --git a/src/app/clightning/store/cl.reducers.ts b/src/app/clightning/store/cl.reducers.ts index a225e805..a4a3ecd4 100644 --- a/src/app/clightning/store/cl.reducers.ts +++ b/src/app/clightning/store/cl.reducers.ts @@ -1,250 +1,238 @@ -import { SelNodeChild } from '../../shared/models/RTLconfig'; -import { APICallStatusEnum, UserPersonaEnum } from '../../shared/services/consts-enums-functions'; -import { GetInfo, Fees, Balance, LocalRemoteBalance, Peer, Payment, Channel, FeeRates, ForwardingEvent, ListInvoices, UTXO } from '../../shared/models/clModels'; -import { ApiCallsListCL } from '../../shared/models/apiCallsPayload'; -import * as CLActions from '../store/cl.actions'; +import { createReducer, on } from '@ngrx/store'; +import { initCLState } from './cl.state'; +import { + addInvoice, addPeer, removeChannel, removePeer, resetCLStore, setBalance, setChannels, + setChildNodeSettingsCL, setFailedForwardingHistory, setFeeRates, setFees, setForwardingHistory, + setInfo, setInvoices, setLocalRemoteBalance, setOffers, addOffer, setPayments, setPeers, setUTXOs, + updateCLAPICallStatus, updateInvoice, updateOffer, setOfferBookmarks, addUpdateOfferBookmark, removeOfferBookmark +} from './cl.actions'; +import { Channel, OfferBookmark } from '../../shared/models/clModels'; -export interface CLState { - apisCallStatus: ApiCallsListCL; - nodeSettings: SelNodeChild; - information: GetInfo; - fees: Fees; - feeRatesPerKB: FeeRates; - feeRatesPerKW: FeeRates; - balance: Balance; - localRemoteBalance: LocalRemoteBalance; - peers: Peer[]; - allChannels: Channel[]; - payments: Payment[]; - forwardingHistory: ForwardingEvent[]; - failedForwardingHistory: ForwardingEvent[]; - invoices: ListInvoices; - utxos: UTXO[]; -} - -export const initCLState: CLState = { - apisCallStatus: { - FetchInfo: { status: APICallStatusEnum.UN_INITIATED }, - FetchInvoices: { status: APICallStatusEnum.UN_INITIATED }, - FetchFees: { status: APICallStatusEnum.UN_INITIATED }, - FetchChannels: { status: APICallStatusEnum.UN_INITIATED }, - FetchBalance: { status: APICallStatusEnum.UN_INITIATED }, - FetchLocalRemoteBalance: { status: APICallStatusEnum.UN_INITIATED }, - FetchFeeRatesperkb: { status: APICallStatusEnum.UN_INITIATED }, - FetchFeeRatesperkw: { status: APICallStatusEnum.UN_INITIATED }, - FetchPeers: { status: APICallStatusEnum.UN_INITIATED }, - FetchUTXOs: { status: APICallStatusEnum.UN_INITIATED }, - FetchPayments: { status: APICallStatusEnum.UN_INITIATED }, - GetForwardingHistory: { status: APICallStatusEnum.UN_INITIATED }, - GetFailedForwardingHistory: { status: APICallStatusEnum.UN_INITIATED } - }, - nodeSettings: { userPersona: UserPersonaEnum.OPERATOR, selCurrencyUnit: 'USD', fiatConversion: false, channelBackupPath: '', currencyUnits: [] }, - information: {}, - fees: {}, - feeRatesPerKB: {}, - feeRatesPerKW: {}, - balance: {}, - localRemoteBalance: { localBalance: -1, remoteBalance: -1 }, - peers: [], - allChannels: [], - payments: [], - forwardingHistory: [], - failedForwardingHistory: [], - invoices: { invoices: [] }, - utxos: [] -}; - -export function CLReducer(state = initCLState, action: CLActions.CLActions) { - switch (action.type) { - case CLActions.UPDATE_API_CALL_STATUS_CL: - const updatedApisCallStatus = state.apisCallStatus; - updatedApisCallStatus[action.payload.action] = { - status: action.payload.status, - statusCode: action.payload.statusCode, - message: action.payload.message, - URL: action.payload.URL, - filePath: action.payload.filePath - }; - return { - ...state, - apisCallStatus: updatedApisCallStatus - }; - case CLActions.SET_CHILD_NODE_SETTINGS_CL: - return { - ...state, - nodeSettings: action.payload - }; - case CLActions.RESET_CL_STORE: - return { - ...initCLState, - nodeSettings: action.payload - }; - case CLActions.SET_INFO_CL: - return { - ...state, - information: action.payload - }; - case CLActions.SET_FEES_CL: - return { - ...state, - fees: action.payload - }; - case CLActions.SET_FEE_RATES_CL: - if (action.payload.perkb) { - return { - ...state, - feeRatesPerKB: action.payload - }; - } else if (action.payload.perkw) { - return { - ...state, - feeRatesPerKW: action.payload - }; - } else { - return { - ...state - }; - } - case CLActions.SET_BALANCE_CL: - return { - ...state, - balance: action.payload - }; - case CLActions.SET_LOCAL_REMOTE_BALANCE_CL: - return { - ...state, - localRemoteBalance: action.payload - }; - case CLActions.SET_PEERS_CL: - return { - ...state, - peers: action.payload - }; - case CLActions.ADD_PEER_CL: - return { - ...state, - peers: [...state.peers, action.payload] - }; - case CLActions.REMOVE_PEER_CL: - const modifiedPeers = [...state.peers]; - const removePeerIdx = state.peers.findIndex((peer) => peer.id === action.payload.id); - if (removePeerIdx > -1) { - modifiedPeers.splice(removePeerIdx, 1); - } - return { - ...state, - peers: modifiedPeers - }; - case CLActions.SET_CHANNELS_CL: - return { - ...state, - allChannels: action.payload - }; - case CLActions.REMOVE_CHANNEL_CL: - const modifiedChannels = [...state.allChannels]; - const removeChannelIdx = state.allChannels.findIndex((channel) => channel.channel_id === action.payload.channelId); - if (removeChannelIdx > -1) { - modifiedChannels.splice(removeChannelIdx, 1); +export const CLReducer = createReducer(initCLState, + on(updateCLAPICallStatus, (state, { payload }) => { + const updatedApisCallStatus = JSON.parse(JSON.stringify(state.apisCallStatus)); + updatedApisCallStatus[payload.action] = { + status: payload.status, + statusCode: payload.statusCode, + message: payload.message, + URL: payload.URL, + filePath: payload.filePath + }; + return { + ...state, + apisCallStatus: updatedApisCallStatus + }; + }), + on(setChildNodeSettingsCL, (state, { payload }) => ({ + ...state, + nodeSettings: payload + })), + on(resetCLStore, (state, { payload }) => ({ + ...initCLState, + nodeSettings: payload + })), + on(setInfo, (state, { payload }) => ({ + ...state, + information: payload + })), + on(setFees, (state, { payload }) => ({ + ...state, + fees: payload + })), + on(setFeeRates, (state, { payload }) => { + if (payload.perkb) { + return { + ...state, + feeRatesPerKB: payload + }; + } else if (payload.perkw) { + return { + ...state, + feeRatesPerKW: payload + }; + } else { + return { + ...state + }; + } + }), + on(setBalance, (state, { payload }) => ({ + ...state, + balance: payload + })), + on(setLocalRemoteBalance, (state, { payload }) => ({ + ...state, + localRemoteBalance: payload + })), + on(setPeers, (state, { payload }) => ({ + ...state, + peers: payload + })), + on(addPeer, (state, { payload }) => ({ + ...state, + peers: [...state.peers, payload] + })), + on(removePeer, (state, { payload }) => { + const modifiedPeers = [...state.peers]; + const removePeerIdx = state.peers.findIndex((peer) => peer.id === payload.id); + if (removePeerIdx > -1) { + modifiedPeers.splice(removePeerIdx, 1); + } + return { + ...state, + peers: modifiedPeers + }; + }), + on(setChannels, (state, { payload }) => ({ + ...state, + activeChannels: payload.activeChannels, + pendingChannels: payload.pendingChannels, + inactiveChannels: payload.inactiveChannels + })), + on(removeChannel, (state, { payload }) => { + const modifiedPeers = [...state.peers]; + modifiedPeers.forEach((peer) => { + if (peer.id === payload.id) { + peer.connected = false; + delete peer.netaddr; } - return { - ...state, - allChannels: modifiedChannels - }; - case CLActions.SET_PAYMENTS_CL: - return { - ...state, - payments: action.payload - }; - case CLActions.SET_FORWARDING_HISTORY_CL: - const modifiedFeeWithTxCount = state.fees; - if (action.payload && action.payload.length > 0) { - const storedChannels = [...state.allChannels]; - action.payload.forEach((fhEvent, i) => { - if (storedChannels && storedChannels.length > 0) { - for (let idx = 0; idx < storedChannels.length; idx++) { - if (storedChannels[idx].short_channel_id && storedChannels[idx].short_channel_id === fhEvent.in_channel) { - fhEvent.in_channel_alias = storedChannels[idx].alias ? storedChannels[idx].alias : fhEvent.in_channel; - if (fhEvent.out_channel_alias) { return; } - } - if (storedChannels[idx].short_channel_id && storedChannels[idx].short_channel_id.toString() === fhEvent.out_channel) { - fhEvent.out_channel_alias = storedChannels[idx].alias ? storedChannels[idx].alias : fhEvent.out_channel; - if (fhEvent.in_channel_alias) { return; } - } - if (idx === storedChannels.length - 1) { - if (!fhEvent.in_channel_alias) { fhEvent.in_channel_alias = fhEvent.in_channel; } - if (!fhEvent.out_channel_alias) { fhEvent.out_channel_alias = fhEvent.out_channel; } - } - } - } else { - fhEvent.in_channel_alias = fhEvent.in_channel; - fhEvent.out_channel_alias = fhEvent.out_channel; + }); + return { + ...state, + peers: modifiedPeers + }; + }), + on(setPayments, (state, { payload }) => ({ + ...state, + payments: payload + })), + on(setForwardingHistory, (state, { payload }) => { + const modifiedFeeWithTxCount = state.fees; + const storedChannels = [...state.activeChannels, ...state.pendingChannels, ...state.inactiveChannels]; + payload = mapAliases(payload, storedChannels); + modifiedFeeWithTxCount.totalTxCount = payload.length; + return { + ...state, + fee: modifiedFeeWithTxCount, + forwardingHistory: payload + }; + }), + on(setFailedForwardingHistory, (state, { payload }) => { + const storedChannels = [...state.activeChannels, ...state.pendingChannels, ...state.inactiveChannels]; + payload = mapAliases(payload, storedChannels); + return { + ...state, + failedForwardingHistory: payload + }; + }), + on(addInvoice, (state, { payload }) => { + const newInvoices = state.invoices; + newInvoices.invoices.unshift(payload); + return { + ...state, + invoices: newInvoices + }; + }), + on(setInvoices, (state, { payload }) => ({ + ...state, + invoices: payload + })), + on(updateInvoice, (state, { payload }) => { + const modifiedInvoices = state.invoices; + modifiedInvoices.invoices = modifiedInvoices.invoices.map((invoice) => ((invoice.label === payload.label) ? payload : invoice)); + return { + ...state, + invoices: modifiedInvoices + }; + }), + on(setUTXOs, (state, { payload }) => ({ + ...state, + utxos: payload + })), + on(setOffers, (state, { payload }) => ({ + ...state, + offers: payload + })), + on(addOffer, (state, { payload }) => { + const newOffers = state.offers; + newOffers.unshift(payload); + return { + ...state, + offers: newOffers + }; + }), + on(updateOffer, (state, { payload }) => { + const modifiedOffers = [...state.offers]; + const updateOfferIdx = state.offers.findIndex((offer) => offer.offer_id === payload.offer.offer_id); + if (updateOfferIdx > -1) { + modifiedOffers.splice(updateOfferIdx, 1, payload.offer); + } + return { + ...state, + offers: modifiedOffers + }; + }), + on(setOfferBookmarks, (state, { payload }) => ({ + ...state, + offersBookmarks: payload + })), + on(addUpdateOfferBookmark, (state, { payload }) => { + const newOfferBMs: OfferBookmark[] = [...state.offersBookmarks]; + const offerBMExistsIdx = newOfferBMs.findIndex((offer: OfferBookmark) => offer.bolt12 === payload.bolt12); + if (offerBMExistsIdx < 0) { + newOfferBMs.unshift(payload); + } else { + const updatedOffer = { ...newOfferBMs[offerBMExistsIdx] }; + updatedOffer.title = payload.title; + updatedOffer.amountmSat = payload.amountmSat; + updatedOffer.lastUpdatedAt = payload.lastUpdatedAt; + updatedOffer.description = payload.description; + updatedOffer.vendor = payload.vendor; + newOfferBMs.splice(offerBMExistsIdx, 1, updatedOffer); + } + return { + ...state, + offersBookmarks: newOfferBMs + }; + }), + on(removeOfferBookmark, (state, { payload }) => { + const modifiedOfferBookmarks = [...state.offersBookmarks]; + const removeOfferBookmarkIdx = state.offersBookmarks.findIndex((ob) => ob.bolt12 === payload.bolt12); + if (removeOfferBookmarkIdx > -1) { + modifiedOfferBookmarks.splice(removeOfferBookmarkIdx, 1); + } + return { + ...state, + offersBookmarks: modifiedOfferBookmarks + }; + }) +); + +const mapAliases = (payload: any, storedChannels: Channel[]) => { + if (payload && payload.length > 0) { + payload.forEach((fhEvent, i) => { + if (storedChannels && storedChannels.length > 0) { + for (let idx = 0; idx < storedChannels.length; idx++) { + if (storedChannels[idx].short_channel_id && storedChannels[idx].short_channel_id === fhEvent.in_channel) { + fhEvent.in_channel_alias = storedChannels[idx].alias ? storedChannels[idx].alias : fhEvent.in_channel; + if (fhEvent.out_channel_alias) { return; } } - }); - modifiedFeeWithTxCount.totalTxCount = action.payload.length; - } else { - action.payload = []; - } - return { - ...state, - fee: modifiedFeeWithTxCount, - forwardingHistory: action.payload - }; - case CLActions.SET_FAILED_FORWARDING_HISTORY_CL: - if (action.payload && action.payload.length > 0) { - const storedChannels = [...state.allChannels]; - action.payload.forEach((fhEvent, i) => { - if (storedChannels && storedChannels.length > 0) { - for (let idx = 0; idx < storedChannels.length; idx++) { - if (storedChannels[idx].short_channel_id && storedChannels[idx].short_channel_id === fhEvent.in_channel) { - fhEvent.in_channel_alias = storedChannels[idx].alias ? storedChannels[idx].alias : fhEvent.in_channel; - if (fhEvent.out_channel_alias) { return; } - } - if (storedChannels[idx].short_channel_id && storedChannels[idx].short_channel_id.toString() === fhEvent.out_channel) { - fhEvent.out_channel_alias = storedChannels[idx].alias ? storedChannels[idx].alias : fhEvent.out_channel; - if (fhEvent.in_channel_alias) { return; } - } - if (idx === storedChannels.length - 1) { - if (!fhEvent.in_channel_alias) { fhEvent.in_channel_alias = fhEvent.in_channel; } - if (!fhEvent.out_channel_alias) { fhEvent.out_channel_alias = fhEvent.out_channel; } - } - } - } else { - fhEvent.in_channel_alias = fhEvent.in_channel; - fhEvent.out_channel_alias = fhEvent.out_channel; + if (storedChannels[idx].short_channel_id && storedChannels[idx].short_channel_id.toString() === fhEvent.out_channel) { + fhEvent.out_channel_alias = storedChannels[idx].alias ? storedChannels[idx].alias : fhEvent.out_channel; + if (fhEvent.in_channel_alias) { return; } } - }); + if (idx === storedChannels.length - 1) { + if (!fhEvent.in_channel_alias) { fhEvent.in_channel_alias = fhEvent.in_channel; } + if (!fhEvent.out_channel_alias) { fhEvent.out_channel_alias = fhEvent.out_channel; } + } + } } else { - action.payload = []; + fhEvent.in_channel_alias = fhEvent.in_channel; + fhEvent.out_channel_alias = fhEvent.out_channel; } - return { - ...state, - failedForwardingHistory: action.payload - }; - case CLActions.ADD_INVOICE_CL: - const newInvoices = state.invoices; - newInvoices.invoices.unshift(action.payload); - return { - ...state, - invoices: newInvoices - }; - case CLActions.SET_INVOICES_CL: - return { - ...state, - invoices: action.payload - }; - case CLActions.UPDATE_INVOICE_CL: - const modifiedInvoices = state.invoices; - modifiedInvoices.invoices = modifiedInvoices.invoices.map((invoice) => ((invoice.label === action.payload.label) ? action.payload : invoice)); - return { - ...state, - invoices: modifiedInvoices - }; - case CLActions.SET_UTXOS_CL: - return { - ...state, - utxos: action.payload - }; - default: - return state; + }); + } else { + payload = []; } -} + return payload; +}; diff --git a/src/app/clightning/store/cl.selector.ts b/src/app/clightning/store/cl.selector.ts new file mode 100644 index 00000000..d24e3a2c --- /dev/null +++ b/src/app/clightning/store/cl.selector.ts @@ -0,0 +1,30 @@ +import { createFeatureSelector, createSelector, select } from '@ngrx/store'; +import { pipe, filter, map, take, find } from 'rxjs'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; +import { Offer } from '../../shared/models/clModels'; +import { CLState } from './cl.state'; + +export const clState = createFeatureSelector('cl'); +export const clNodeSettings = createSelector(clState, (state: CLState) => state.nodeSettings); +export const clNodeInformation = createSelector(clState, (state: CLState) => state.information); +export const apiCallStatusNodeInfo = createSelector(clState, (state: CLState) => state.apisCallStatus.FetchInfo); +export const allAPIsCallStatus = createSelector(clState, (state: CLState) => state.apisCallStatus); +export const payments = createSelector(clState, (state: CLState) => ({ payments: state.payments, apiCallStatus: state.apisCallStatus.FetchPayments })); +export const peers = createSelector(clState, (state: CLState) => ({ peers: state.peers, apiCallStatus: state.apisCallStatus.FetchPeers })); +export const fees = createSelector(clState, (state: CLState) => ({ fees: state.fees, apiCallStatus: state.apisCallStatus.FetchFees })); +export const feeRatesPerKB = createSelector(clState, (state: CLState) => ({ feeRatesPerKB: state.feeRatesPerKB, apiCallStatus: state.apisCallStatus.FetchFeeRatesperkb })); +export const feeRatesPerKW = createSelector(clState, (state: CLState) => ({ feeRatesPerKW: state.feeRatesPerKW, apiCallStatus: state.apisCallStatus.FetchFeeRatesperkw })); +export const listInvoices = createSelector(clState, (state: CLState) => ({ listInvoices: state.invoices, apiCallStatus: state.apisCallStatus.FetchInvoices })); +export const utxos = createSelector(clState, (state: CLState) => ({ utxos: state.utxos, apiCallStatus: state.apisCallStatus.FetchUTXOs })); +export const channels = createSelector(clState, (state: CLState) => ({ activeChannels: state.activeChannels, pendingChannels: state.pendingChannels, inactiveChannels: state.inactiveChannels, apiCallStatus: state.apisCallStatus.FetchChannels })); +export const balance = createSelector(clState, (state: CLState) => ({ balance: state.balance, apiCallStatus: state.apisCallStatus.FetchBalance })); +export const localRemoteBalance = createSelector(clState, (state: CLState) => ({ localRemoteBalance: state.localRemoteBalance, apiCallStatus: state.apisCallStatus.FetchLocalRemoteBalance })); +export const forwardingHistory = createSelector(clState, (state: CLState) => ({ forwardingHistory: state.forwardingHistory, apiCallStatus: state.apisCallStatus.FetchForwardingHistory })); +export const failedForwardingHistory = createSelector(clState, (state: CLState) => ({ failedForwardingHistory: state.failedForwardingHistory, apiCallStatus: state.apisCallStatus.FetchFailedForwardingHistory })); +export const nodeInfoAndNodeSettingsAndBalance = createSelector(clState, (state: CLState) => ({ information: state.information, nodeSettings: state.nodeSettings, balance: state.balance })); +export const nodeInfoAndBalanceAndNumPeers = createSelector(clState, (state: CLState) => ({ information: state.information, balance: state.balance, numPeers: state.peers.length })); +export const nodeInfoAndBalance = createSelector(clState, (state: CLState) => ({ information: state.information, balance: state.balance })); +export const nodeInfoAndNodeSettingsAndAPIsStatus = createSelector(clState, (state: CLState) => ({ information: state.information, nodeSettings: state.nodeSettings, apisCallStatus: [state.apisCallStatus.FetchInfo, state.apisCallStatus.FetchForwardingHistory] })); +export const offers = createSelector(clState, (state: CLState) => ({ offers: state.offers, apiCallStatus: state.apisCallStatus.FetchOffers })); +export const offerBookmarks = createSelector(clState, (state: CLState) => ({ offersBookmarks: state.offersBookmarks, apiCallStatus: state.apisCallStatus.FetchOfferBookmarks })); +export const getoffer = (bolt12Str) => createSelector(clState, (state: CLState) => (state.offers.find((offer: Offer) => offer.bolt12 === bolt12Str))); diff --git a/src/app/clightning/store/cl.state.ts b/src/app/clightning/store/cl.state.ts new file mode 100644 index 00000000..ad4f5393 --- /dev/null +++ b/src/app/clightning/store/cl.state.ts @@ -0,0 +1,64 @@ +import { SelNodeChild } from '../../shared/models/RTLconfig'; +import { APICallStatusEnum, UserPersonaEnum } from '../../shared/services/consts-enums-functions'; +import { GetInfo, Fees, Balance, LocalRemoteBalance, Peer, Payment, Channel, FeeRates, ForwardingEvent, ListInvoices, UTXO, Offer, OfferBookmark } from '../../shared/models/clModels'; +import { ApiCallsListCL } from '../../shared/models/apiCallsPayload'; + +export interface CLState { + apisCallStatus: ApiCallsListCL; + nodeSettings: SelNodeChild; + information: GetInfo; + fees: Fees; + feeRatesPerKB: FeeRates; + feeRatesPerKW: FeeRates; + balance: Balance; + localRemoteBalance: LocalRemoteBalance; + peers: Peer[]; + activeChannels: Channel[]; + pendingChannels: Channel[]; + inactiveChannels: Channel[]; + payments: Payment[]; + forwardingHistory: ForwardingEvent[]; + failedForwardingHistory: ForwardingEvent[]; + invoices: ListInvoices; + utxos: UTXO[]; + offers: Offer[]; + offersBookmarks: OfferBookmark[]; +} + +export const initCLState: CLState = { + apisCallStatus: { + FetchInfo: { status: APICallStatusEnum.UN_INITIATED }, + FetchInvoices: { status: APICallStatusEnum.UN_INITIATED }, + FetchFees: { status: APICallStatusEnum.UN_INITIATED }, + FetchChannels: { status: APICallStatusEnum.UN_INITIATED }, + FetchBalance: { status: APICallStatusEnum.UN_INITIATED }, + FetchLocalRemoteBalance: { status: APICallStatusEnum.UN_INITIATED }, + FetchFeeRatesperkb: { status: APICallStatusEnum.UN_INITIATED }, + FetchFeeRatesperkw: { status: APICallStatusEnum.UN_INITIATED }, + FetchPeers: { status: APICallStatusEnum.UN_INITIATED }, + FetchUTXOs: { status: APICallStatusEnum.UN_INITIATED }, + FetchPayments: { status: APICallStatusEnum.UN_INITIATED }, + FetchForwardingHistory: { status: APICallStatusEnum.UN_INITIATED }, + FetchFailedForwardingHistory: { status: APICallStatusEnum.UN_INITIATED }, + FetchOffers: { status: APICallStatusEnum.UN_INITIATED }, + FetchOfferBookmarks: { status: APICallStatusEnum.UN_INITIATED } + }, + nodeSettings: { userPersona: UserPersonaEnum.OPERATOR, selCurrencyUnit: 'USD', fiatConversion: false, channelBackupPath: '', currencyUnits: [], enableOffers: false }, + information: {}, + fees: {}, + feeRatesPerKB: {}, + feeRatesPerKW: {}, + balance: {}, + localRemoteBalance: { localBalance: -1, remoteBalance: -1 }, + peers: [], + activeChannels: [], + pendingChannels: [], + inactiveChannels: [], + payments: [], + forwardingHistory: [], + failedForwardingHistory: [], + invoices: { invoices: [] }, + utxos: [], + offers: [], + offersBookmarks: [] +}; diff --git a/src/app/clightning/transactions/invoice-information-modal/invoice-information.component.html b/src/app/clightning/transactions/invoice-information-modal/invoice-information.component.html deleted file mode 100644 index d50fdc4b..00000000 --- a/src/app/clightning/transactions/invoice-information-modal/invoice-information.component.html +++ /dev/null @@ -1,94 +0,0 @@ -
- -
- -
- - {{screenSize === screenSizeEnum.XS ? (newlyAdded ? 'Created' : 'Invoice') : (newlyAdded ? 'Invoice Created' : 'Invoice Information')}} -
- -
- -
- - -
-
- - {{invoice.warning_capacity}} -
-
-
-
-

{{screenSize === screenSizeEnum.XS ? 'Amount' : 'Amount Requested'}}

- {{(invoice.msatoshi/1000 || 0) | number}} Sats (zero amount) -
-
-

Date Expiry

- {{(invoice.expires_at * 1000) | date:'dd/MMM/YYYY HH:mm'}} -
-
- -
-
-

Description

- {{invoice.description || '-'}} -
-
- -
-
-

Invoice

- {{invoice.bolt11 || 'N/A'}} -
-
-
- -
-
-

Payment Hash

- {{invoice.payment_hash}} -
-
- -
-
-

Status

- {{invoice.status | titlecase}} -
-
-

Label

- {{invoice.label}} -
-
- -
-
-

Amount Received

- {{invoice.msatoshi_received/1000 | number}} {{invoice.msatoshi_received ? 'Sats' : ''}} -
-
-

Date Settled

- {{((invoice.paid_at * 1000) | date:'dd/MMM/YYYY HH:mm') || '-'}} -
-
- -
-
- - - -
-
-
-
-
diff --git a/src/app/clightning/transactions/invoice-information-modal/invoice-information.component.ts b/src/app/clightning/transactions/invoice-information-modal/invoice-information.component.ts deleted file mode 100644 index cd555b99..00000000 --- a/src/app/clightning/transactions/invoice-information-modal/invoice-information.component.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { faReceipt, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import { MatSnackBar } from '@angular/material/snack-bar'; - -import { LoggerService } from '../../../shared/services/logger.service'; -import { CommonService } from '../../../shared/services/common.service'; -import { CLInvoiceInformation } from '../../../shared/models/alertData'; -import { ScreenSizeEnum } from '../../../shared/services/consts-enums-functions'; - -import { Invoice } from '../../../shared/models/clModels'; - -@Component({ - selector: 'rtl-cl-invoice-information', - templateUrl: './invoice-information.component.html', - styleUrls: ['./invoice-information.component.scss'] -}) -export class CLInvoiceInformationComponent implements OnInit { - - public faReceipt = faReceipt; - public faExclamationTriangle = faExclamationTriangle; - public showAdvanced = false; - public newlyAdded = false; - public invoice: Invoice; - public qrWidth = 240; - public screenSize = ''; - public screenSizeEnum = ScreenSizeEnum; - - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLInvoiceInformation, private logger: LoggerService, private commonService: CommonService, private snackBar: MatSnackBar) { } - - ngOnInit() { - this.invoice = this.data.invoice; - this.newlyAdded = this.data.newlyAdded; - this.screenSize = this.commonService.getScreenSize(); - if (this.screenSize === ScreenSizeEnum.XS) { - this.qrWidth = 220; - } - } - - onClose() { - this.dialogRef.close(false); - } - - onShowAdvanced() { - this.showAdvanced = !this.showAdvanced; - } - - onCopyPayment(payload: string) { - this.snackBar.open('Invoice copied.'); - this.logger.info('Copied Text: ' + payload); - } - -} diff --git a/src/app/clightning/transactions/create-invoice-modal/create-invoice.component.html b/src/app/clightning/transactions/invoices/create-invoice-modal/create-invoice.component.html similarity index 90% rename from src/app/clightning/transactions/create-invoice-modal/create-invoice.component.html rename to src/app/clightning/transactions/invoices/create-invoice-modal/create-invoice.component.html index 4eecb0cb..19c9260b 100644 --- a/src/app/clightning/transactions/create-invoice-modal/create-invoice.component.html +++ b/src/app/clightning/transactions/invoices/create-invoice-modal/create-invoice.component.html @@ -35,8 +35,8 @@ {{invoiceError}}
- - + +
diff --git a/src/app/clightning/transactions/create-invoice-modal/create-invoice.component.scss b/src/app/clightning/transactions/invoices/create-invoice-modal/create-invoice.component.scss similarity index 100% rename from src/app/clightning/transactions/create-invoice-modal/create-invoice.component.scss rename to src/app/clightning/transactions/invoices/create-invoice-modal/create-invoice.component.scss diff --git a/src/app/clightning/transactions/create-invoice-modal/create-invoice.component.ts b/src/app/clightning/transactions/invoices/create-invoice-modal/create-invoice.component.ts similarity index 58% rename from src/app/clightning/transactions/create-invoice-modal/create-invoice.component.ts rename to src/app/clightning/transactions/invoices/create-invoice-modal/create-invoice.component.ts index 64ab7479..ac7d57c0 100644 --- a/src/app/clightning/transactions/create-invoice-modal/create-invoice.component.ts +++ b/src/app/clightning/transactions/invoices/create-invoice-modal/create-invoice.component.ts @@ -7,15 +7,15 @@ import { Actions } from '@ngrx/effects'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import { InvoiceInformation } from '../../../shared/models/alertData'; -import { TimeUnitEnum, CurrencyUnitEnum, TIME_UNITS, CURRENCY_UNIT_FORMATS, PAGE_SIZE, APICallStatusEnum, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; -import { SelNodeChild } from '../../../shared/models/RTLconfig'; -import { GetInfo } from '../../../shared/models/clModels'; -import { CommonService } from '../../../shared/services/common.service'; +import { CLInvoiceInformation } from '../../../../shared/models/alertData'; +import { TimeUnitEnum, CurrencyUnitEnum, TIME_UNITS, CURRENCY_UNIT_FORMATS, PAGE_SIZE, APICallStatusEnum, CLActions } from '../../../../shared/services/consts-enums-functions'; +import { SelNodeChild } from '../../../../shared/models/RTLconfig'; +import { GetInfo } from '../../../../shared/models/clModels'; +import { CommonService } from '../../../../shared/services/common.service'; -import * as CLActions from '../../store/cl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { saveNewInvoice } from '../../../store/cl.actions'; +import { clNodeInformation, clNodeSettings } from '../../../store/cl.selector'; @Component({ selector: 'rtl-cl-create-invoices', @@ -42,25 +42,27 @@ export class CLCreateInvoiceComponent implements OnInit, OnDestroy { public invoiceError = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: InvoiceInformation, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private actions: Actions) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLInvoiceInformation, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private actions: Actions) { } ngOnInit() { this.pageSize = this.data.pageSize; - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - }); + this.store.select(clNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[1])).subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; + }); this.actions.pipe( - takeUntil(this.unSubs[1]), - filter((action) => action.type === CLActions.UPDATE_API_CALL_STATUS_CL || action.type === CLActions.ADD_INVOICE_CL)). - subscribe((action: CLActions.UpdateAPICallStatus | CLActions.AddInvoice) => { - if (action.type === CLActions.ADD_INVOICE_CL) { - this.dialogRef.close(); - } - if (action.type === CLActions.UPDATE_API_CALL_STATUS_CL && action.payload.status === APICallStatusEnum.ERROR && action.payload.action === 'SaveNewInvoice') { - this.invoiceError = action.payload.message; + takeUntil(this.unSubs[2]), + filter((action) => action.type === CLActions.UPDATE_API_CALL_STATUS_CL)). + subscribe((action: any) => { + if (action.type === CLActions.UPDATE_API_CALL_STATUS_CL && action.payload.action === 'SaveNewInvoice') { + if (action.payload.status === APICallStatusEnum.ERROR) { + this.invoiceError = action.payload.message; + } + if (action.payload.status === APICallStatusEnum.COMPLETED) { + this.dialogRef.close(); + } } }); } @@ -74,8 +76,10 @@ export class CLCreateInvoiceComponent implements OnInit, OnDestroy { if (this.selTimeUnit !== TimeUnitEnum.SECS) { expiryInSecs = this.commonService.convertTime(this.expiry, this.selTimeUnit, TimeUnitEnum.SECS); } - this.store.dispatch(new CLActions.SaveNewInvoice({ - label: ('ulbl' + Math.random().toString(36).slice(2) + Date.now()), amount: this.invoiceValue * 1000, description: this.description, expiry: expiryInSecs, private: this.private + this.store.dispatch(saveNewInvoice({ + payload: { + label: ('ulbl' + Math.random().toString(36).slice(2) + Date.now()), amount: this.invoiceValue * 1000, description: this.description, expiry: expiryInSecs, private: this.private + } })); } @@ -93,12 +97,14 @@ export class CLCreateInvoiceComponent implements OnInit, OnDestroy { if (this.selNode.fiatConversion && this.invoiceValue > 99) { this.invoiceValueHint = ''; this.commonService.convertCurrency(this.invoiceValue, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[2])). - subscribe({ next: (data) => { - this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; - }, error: (err) => { - this.invoiceValueHint = 'Conversion Error: ' + err; - } }); + pipe(takeUntil(this.unSubs[3])). + subscribe({ + next: (data) => { + this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; + }, error: (err) => { + this.invoiceValueHint = 'Conversion Error: ' + err; + } + }); } } diff --git a/src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.html b/src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.html new file mode 100644 index 00000000..c04b43bc --- /dev/null +++ b/src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.html @@ -0,0 +1,111 @@ +
+ +
+ +
+ + + {{screenSize === screenSizeEnum.XS ? (newlyAdded ? 'Created' : 'Invoice') : (newlyAdded ? 'Invoice Created' : 'Invoice Information')}} + + + + +
+ +
+ +
+ + +
+
+ + {{invoice?.warning_capacity}} +
+
+
+
+

{{screenSize === screenSizeEnum.XS ? 'Amount' : 'Amount Requested'}}

+ + {{(invoice?.msatoshi/1000 || 0) | number}} Sats (zero amount) + +
+
+

Amount Received

+ + +
+
+ {{invoice?.msatoshi_received/1000 | number}} Sats + +
+
+
{{invoice?.msatoshi_received/1000 | number}} Sats
+
+ + - + + +
+
+
+ +
+
+

Date Expiry

+ {{(invoice?.expires_at * 1000) | date:'dd/MMM/YYYY HH:mm'}} +
+
+

Date Settled

+ {{((invoice?.paid_at * 1000) | date:'dd/MMM/YYYY HH:mm') || '-'}} +
+
+ +
+
+

Description

+ {{invoice?.description || '-'}} +
+
+ +
+
+

{{ invoice?.bolt12 ? 'Bolt12' : (invoice?.bolt11 && !invoice.label.includes('keysend-')) ? 'Bolt11' : 'Keysend' }} Invoice

+ {{invoice?.bolt11 || invoice?.bolt12}} +
+
+
+ +
+
+

Payment Hash

+ {{invoice?.payment_hash}} +
+
+ +
+
+

Label

+ {{invoice?.label}} +
+
+ +
+
+ + + +
+
+
+
+
diff --git a/src/app/clightning/transactions/invoice-information-modal/invoice-information.component.scss b/src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.scss similarity index 100% rename from src/app/clightning/transactions/invoice-information-modal/invoice-information.component.scss rename to src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.scss diff --git a/src/app/clightning/transactions/invoice-information-modal/invoice-information.component.spec.ts b/src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.spec.ts similarity index 51% rename from src/app/clightning/transactions/invoice-information-modal/invoice-information.component.spec.ts rename to src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.spec.ts index def04c76..2ab3625a 100644 --- a/src/app/clightning/transactions/invoice-information-modal/invoice-information.component.spec.ts +++ b/src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.spec.ts @@ -1,22 +1,35 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { Store, StoreModule } from '@ngrx/store'; -import { CommonService } from '../../../shared/services/common.service'; -import { LoggerService } from '../../../shared/services/logger.service'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; +import { CommonService } from '../../../../shared/services/common.service'; +import { LoggerService } from '../../../../shared/services/logger.service'; import { CLInvoiceInformationComponent } from './invoice-information.component'; -import { mockDataService, mockLoggerService, mockMatDialogRef } from '../../../shared/test-helpers/mock-services'; -import { SharedModule } from '../../../shared/shared.module'; -import { DataService } from '../../../shared/services/data.service'; +import { mockDataService, mockLoggerService, mockMatDialogRef } from '../../../../shared/test-helpers/mock-services'; +import { SharedModule } from '../../../../shared/shared.module'; +import { DataService } from '../../../../shared/services/data.service'; +import { RTLState } from '../../../../store/rtl.state'; +import { listInvoices } from '../../../store/cl.selector'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; +import { ListInvoices } from '../../../../shared/models/clModels'; describe('CLInvoiceInformationComponent', () => { let component: CLInvoiceInformationComponent; let fixture: ComponentFixture; + let store: Store; beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ declarations: [CLInvoiceInformationComponent], - imports: [SharedModule], + imports: [ + SharedModule, + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) + ], providers: [ CommonService, { provide: LoggerService, useClass: mockLoggerService }, @@ -31,6 +44,7 @@ describe('CLInvoiceInformationComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(CLInvoiceInformationComponent); component = fixture.componentInstance; + store = fixture.debugElement.injector.get(Store); fixture.detectChanges(); }); diff --git a/src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.ts b/src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.ts new file mode 100644 index 00000000..db92b1aa --- /dev/null +++ b/src/app/clightning/transactions/invoices/invoice-information-modal/invoice-information.component.ts @@ -0,0 +1,84 @@ +import { Component, OnInit, Inject, OnDestroy } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { faReceipt, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { Store } from '@ngrx/store'; + +import { LoggerService } from '../../../../shared/services/logger.service'; +import { CommonService } from '../../../../shared/services/common.service'; +import { CLInvoiceInformation } from '../../../../shared/models/alertData'; +import { ScreenSizeEnum } from '../../../../shared/services/consts-enums-functions'; + +import { GetInfo, Invoice, ListInvoices } from '../../../../shared/models/clModels'; +import { RTLState } from '../../../../store/rtl.state'; +import { clNodeInformation, listInvoices } from '../../../store/cl.selector'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; + +@Component({ + selector: 'rtl-cl-invoice-information', + templateUrl: './invoice-information.component.html', + styleUrls: ['./invoice-information.component.scss'] +}) +export class CLInvoiceInformationComponent implements OnInit, OnDestroy { + + public faReceipt = faReceipt; + public faExclamationTriangle = faExclamationTriangle; + public showAdvanced = false; + public newlyAdded = false; + public invoice: Invoice; + public qrWidth = 240; + public screenSize = ''; + public screenSizeEnum = ScreenSizeEnum; + public flgInvoicePaid = false; + public flgVersionCompatible = true; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLInvoiceInformation, private logger: LoggerService, private commonService: CommonService, private snackBar: MatSnackBar, private store: Store) { } + + ngOnInit() { + this.invoice = this.data.invoice; + this.newlyAdded = this.data.newlyAdded; + this.screenSize = this.commonService.getScreenSize(); + if (this.screenSize === ScreenSizeEnum.XS) { + this.qrWidth = 220; + } + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeInfo: GetInfo) => { + this.flgVersionCompatible = this.commonService.isVersionCompatible(nodeInfo.api_version, '0.6.0'); + }); + this.store.select(listInvoices).pipe(takeUntil(this.unSubs[1])). + subscribe((invoicesSelector: { listInvoices: ListInvoices, apiCallStatus: ApiCallStatusPayload }) => { + const invoiceStatus = this.invoice.status; + const invoices = invoicesSelector.listInvoices.invoices || []; + this.invoice = invoices.find((invoice) => invoice.payment_hash === this.invoice.payment_hash); + if (invoiceStatus !== this.invoice.status && this.invoice.status === 'paid') { + this.flgInvoicePaid = true; + setTimeout(() => { this.flgInvoicePaid = false; }, 4000); + } + this.logger.info(invoicesSelector); + }); + } + + onClose() { + this.dialogRef.close(false); + } + + onShowAdvanced() { + this.showAdvanced = !this.showAdvanced; + } + + onCopyPayment(payload: string) { + this.snackBar.open('Invoice copied.'); + this.logger.info('Copied Text: ' + payload); + } + + ngOnDestroy() { + this.unSubs.forEach((completeSub) => { + completeSub.next(null); + completeSub.complete(); + }); + } + +} diff --git a/src/app/clightning/transactions/invoices/lightning-invoices.component.html b/src/app/clightning/transactions/invoices/invoices-table/lightning-invoices-table.component.html similarity index 75% rename from src/app/clightning/transactions/invoices/lightning-invoices.component.html rename to src/app/clightning/transactions/invoices/invoices-table/lightning-invoices-table.component.html index 7c304fec..df182b61 100644 --- a/src/app/clightning/transactions/invoices/lightning-invoices.component.html +++ b/src/app/clightning/transactions/invoices/invoices-table/lightning-invoices-table.component.html @@ -24,39 +24,44 @@ Invoices History - +
- +
Channel ID Amount (Sats){{rPeer.total_amount | number}}{{rPeer?.total_amount/1000 | number:rPeer?.total_amount < 1000 ? '1.0-4' : '1.0-0'}} Fee (Sats){{rPeer.total_fee | number}}{{rPeer?.total_fee/1000 | number:rPeer?.total_fee < 1000 ? '1.0-4' : '1.0-0'}} -

No outgoing routing peer available.

-

Getting outgoing routing peers...

-

{{errorMessage}}

+

No outgoing routing peer available.

+

Getting outgoing routing peers...

+

{{errorMessage}}

- + + + + + - + - + - +
Expiry Date - - - {{(invoice.expires_at * 1000) | date:'dd/MMM/YYYY HH:mm'}} + + + + {{(invoice?.expires_at * 1000) | date:'dd/MMM/YYYY HH:mm'}} Date Settled {{((invoice.paid_at * 1000) | date:'dd/MMM/YYYY HH:mm') || '-'}}{{((invoice?.paid_at * 1000) | date:'dd/MMM/YYYY HH:mm') || '-'}} Type {{ invoice?.bolt12 ? 'Bolt12' : (invoice?.bolt11 && !invoice.label.includes('keysend-')) ? 'Bolt11' : 'Keysend' }} Description
- {{invoice.description}} + {{invoice?.description}}
Amount (Sats) {{invoice.msatoshi/1000 | number:invoice.msatoshi < 1000 ? '1.0-4' : '1.0-0'}} {{invoice?.msatoshi/1000 | number:invoice?.msatoshi < 1000 ? '1.0-4' : '1.0-0'}} Amount Settled (Sats) {{invoice.msatoshi_received/1000 | number:invoice.msatoshi_received < 1000 ? '1.0-4' : '1.0-0'}} {{invoice?.msatoshi_received/1000 | number:invoice?.msatoshi_received < 1000 ? '1.0-4' : '1.0-0'}} @@ -79,14 +84,14 @@ -

No invoice available.

-

Getting invoices...

-

{{errorMessage}}

+

No invoice available.

+

Getting invoices...

+

{{errorMessage}}

diff --git a/src/app/clightning/transactions/invoices/lightning-invoices.component.scss b/src/app/clightning/transactions/invoices/invoices-table/lightning-invoices-table.component.scss similarity index 100% rename from src/app/clightning/transactions/invoices/lightning-invoices.component.scss rename to src/app/clightning/transactions/invoices/invoices-table/lightning-invoices-table.component.scss diff --git a/src/app/clightning/transactions/invoices/lightning-invoices.component.ts b/src/app/clightning/transactions/invoices/invoices-table/lightning-invoices-table.component.ts similarity index 58% rename from src/app/clightning/transactions/invoices/lightning-invoices.component.ts rename to src/app/clightning/transactions/invoices/invoices-table/lightning-invoices-table.component.ts index a2f32560..efb881a2 100644 --- a/src/app/clightning/transactions/invoices/lightning-invoices.component.ts +++ b/src/app/clightning/transactions/invoices/invoices-table/lightning-invoices-table.component.ts @@ -9,41 +9,39 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../../shared/models/apiCallsPayload'; -import { SelNodeChild } from '../../../shared/models/RTLconfig'; -import { GetInfo, Invoice } from '../../../shared/models/clModels'; -import { LoggerService } from '../../../shared/services/logger.service'; -import { CommonService } from '../../../shared/services/common.service'; +import { CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum, UI_MESSAGES, CLActions } from '../../../../shared/services/consts-enums-functions'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; +import { SelNodeChild } from '../../../../shared/models/RTLconfig'; +import { GetInfo, Invoice, ListInvoices } from '../../../../shared/models/clModels'; +import { LoggerService } from '../../../../shared/services/logger.service'; +import { CommonService } from '../../../../shared/services/common.service'; import { CLCreateInvoiceComponent } from '../create-invoice-modal/create-invoice.component'; import { CLInvoiceInformationComponent } from '../invoice-information-modal/invoice-information.component'; -import { newlyAddedRowAnimation } from '../../../shared/animation/row-animation'; -import { RTLEffects } from '../../../store/rtl.effects'; -import * as CLActions from '../../store/cl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLEffects } from '../../../../store/rtl.effects'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../../store/rtl.actions'; +import { deleteExpiredInvoice, invoiceLookup, saveNewInvoice } from '../../../store/cl.actions'; +import { clNodeInformation, clNodeSettings, listInvoices } from '../../../store/cl.selector'; @Component({ - selector: 'rtl-cl-lightning-invoices', - templateUrl: './lightning-invoices.component.html', - styleUrls: ['./lightning-invoices.component.scss'], - animations: [newlyAddedRowAnimation], + selector: 'rtl-cl-lightning-invoices-table', + templateUrl: './lightning-invoices-table.component.html', + styleUrls: ['./lightning-invoices-table.component.scss'], providers: [ { provide: MatPaginatorIntl, useValue: getPaginatorLabel('Invoices') } ] }) -export class CLLightningInvoicesComponent implements OnInit, AfterViewInit, OnDestroy { +export class CLLightningInvoicesTableComponent implements OnInit, AfterViewInit, OnDestroy { @Input() calledFrom = 'transactions'; // Transactions/home - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; faHistory = faHistory; public selNode: SelNodeChild = {}; public newlyAddedInvoiceMemo = ''; public newlyAddedInvoiceValue = 0; - public flgAnimate = true; public description = ''; public expiry: number; public invoiceValue: number = null; @@ -61,11 +59,12 @@ export class CLLightningInvoicesComponent implements OnInit, AfterViewInit, OnDe public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListCL = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private rtlEffects: RTLEffects, private datePipe: DatePipe, private actions: Actions) { + constructor(private logger: LoggerService, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private rtlEffects: RTLEffects, private datePipe: DatePipe, private actions: Actions) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -75,35 +74,35 @@ export class CLLightningInvoicesComponent implements OnInit, AfterViewInit, OnDe this.displayedColumns = ['expires_at', 'description', 'msatoshi', 'actions']; } else if (this.screenSize === ScreenSizeEnum.MD) { this.flgSticky = false; - this.displayedColumns = ['expires_at', 'description', 'msatoshi', 'msatoshi_received', 'actions']; + this.displayedColumns = ['expires_at', 'type', 'description', 'msatoshi', 'msatoshi_received', 'actions']; } else { this.flgSticky = true; - this.displayedColumns = ['expires_at', 'paid_at', 'description', 'msatoshi', 'msatoshi_received', 'actions']; + this.displayedColumns = ['expires_at', 'paid_at', 'type', 'description', 'msatoshi', 'msatoshi_received', 'actions']; } } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(clNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[1])).subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; + }); + this.store.select(listInvoices).pipe(takeUntil(this.unSubs[2])). + subscribe((invoicesSeletor: { listInvoices: ListInvoices, apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchInvoices.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchInvoices.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchInvoices.message) : this.apisCallStatus.FetchInvoices.message; + this.apiCallStatus = invoicesSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - this.invoiceJSONArr = (rtlStore.invoices.invoices && rtlStore.invoices.invoices.length > 0) ? rtlStore.invoices.invoices : []; + this.invoiceJSONArr = invoicesSeletor.listInvoices.invoices || []; if (this.invoiceJSONArr && this.invoiceJSONArr.length > 0 && this.sort && this.paginator) { this.loadInvoicesTable(this.invoiceJSONArr); } - setTimeout(() => { - this.flgAnimate = false; - }, 5000); - this.logger.info(rtlStore); + this.logger.info(invoicesSeletor); }); - this.actions.pipe(takeUntil(this.unSubs[1]), filter((action) => (action.type === CLActions.SET_LOOKUP_CL || action.type === CLActions.UPDATE_API_CALL_STATUS_CL))). - subscribe((resLookup: CLActions.SetLookup | CLActions.UpdateAPICallStatus) => { + this.actions.pipe(takeUntil(this.unSubs[3]), filter((action) => (action.type === CLActions.SET_LOOKUP_CL || action.type === CLActions.UPDATE_API_CALL_STATUS_CL))). + subscribe((resLookup: any) => { if (resLookup.type === CLActions.SET_LOOKUP_CL) { if (this.invoiceJSONArr && this.invoiceJSONArr.length > 0 && this.sort && this.paginator && resLookup.payload) { this.updateInvoicesData(JSON.parse(JSON.stringify(resLookup.payload))); @@ -120,10 +119,14 @@ export class CLLightningInvoicesComponent implements OnInit, AfterViewInit, OnDe } openCreateInvoiceModal() { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - pageSize: this.pageSize, - component: CLCreateInvoiceComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + pageSize: this.pageSize, + component: CLCreateInvoiceComponent + } + } + })); } onAddInvoice(form: any) { @@ -131,24 +134,27 @@ export class CLLightningInvoicesComponent implements OnInit, AfterViewInit, OnDe this.invoiceValue = 0; } const expiryInSecs = (this.expiry ? this.expiry : 3600); - this.flgAnimate = true; this.newlyAddedInvoiceMemo = 'ulbl' + Math.random().toString(36).slice(2) + Date.now(); this.newlyAddedInvoiceValue = this.invoiceValue; - this.store.dispatch(new CLActions.SaveNewInvoice({ - label: this.newlyAddedInvoiceMemo, amount: this.invoiceValue * 1000, description: this.description, expiry: expiryInSecs, private: this.private + this.store.dispatch(saveNewInvoice({ + payload: { + label: this.newlyAddedInvoiceMemo, amount: this.invoiceValue * 1000, description: this.description, expiry: expiryInSecs, private: this.private + } })); this.resetData(); } onDeleteExpiredInvoices() { - this.store.dispatch(new RTLActions.OpenConfirmation({ - data: { type: 'CONFIRM', titleMessage: 'Delete Expired Invoices', noBtnText: 'Cancel', yesBtnText: 'Delete Invoices' } + this.store.dispatch(openConfirmation({ + payload: { + data: { type: 'CONFIRM', titleMessage: 'Delete Expired Invoices', noBtnText: 'Cancel', yesBtnText: 'Delete Invoices' } + } })); this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[2])). + pipe(takeUntil(this.unSubs[4])). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new CLActions.DeleteExpiredInvoice()); + this.store.dispatch(deleteExpiredInvoice({ payload: null })); } }); } @@ -165,11 +171,15 @@ export class CLLightningInvoicesComponent implements OnInit, AfterViewInit, OnDe status: selInvoice.status, msatoshi_received: selInvoice.msatoshi_received }; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - invoice: reCreatedInvoice, - newlyAdded: false, - component: CLInvoiceInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + invoice: reCreatedInvoice, + newlyAdded: false, + component: CLInvoiceInformationComponent + } + } + })); } resetData() { @@ -180,25 +190,27 @@ export class CLLightningInvoicesComponent implements OnInit, AfterViewInit, OnDe this.invoiceValueHint = ''; } - applyFilter(selFilter: any) { - this.invoices.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.invoices.filter = this.selFilter.trim().toLowerCase(); } onInvoiceValueChange() { if (this.selNode.fiatConversion && this.invoiceValue > 99) { this.invoiceValueHint = ''; this.commonService.convertCurrency(this.invoiceValue, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[3])). - subscribe({ next: (data) => { - this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; - }, error: (err) => { - this.invoiceValueHint = 'Conversion Error: ' + err; - } }); + pipe(takeUntil(this.unSubs[5])). + subscribe({ + next: (data) => { + this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; + }, error: (err) => { + this.invoiceValueHint = 'Conversion Error: ' + err; + } + }); } } onRefreshInvoice(selInvoice: Invoice) { - this.store.dispatch(new CLActions.InvoiceLookup(selInvoice.label)); + this.store.dispatch(invoiceLookup({ payload: selInvoice.label })); } updateInvoicesData(newInvoice: Invoice) { @@ -210,10 +222,11 @@ export class CLLightningInvoicesComponent implements OnInit, AfterViewInit, OnDe this.invoices.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.invoices.sort = this.sort; this.invoices.filterPredicate = (rowData: Invoice, fltr: string) => { - const newRowData = ((rowData.paid_at) ? this.datePipe.transform(new Date(rowData.paid_at * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + ((rowData.expires_at) ? this.datePipe.transform(new Date(rowData.expires_at * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + JSON.stringify(rowData).toLowerCase(); + const newRowData = ((rowData.paid_at) ? this.datePipe.transform(new Date(rowData.paid_at * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + ((rowData.expires_at) ? this.datePipe.transform(new Date(rowData.expires_at * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + ((rowData.bolt12) ? 'bolt12' : (rowData.bolt11) ? 'bolt11' : 'keysend') + JSON.stringify(rowData).toLowerCase(); return newRowData.includes(fltr); }; this.invoices.paginator = this.paginator; + this.applyFilter(); } onDownloadCSV() { diff --git a/src/app/clightning/transactions/offers/create-offer-modal/create-offer.component.html b/src/app/clightning/transactions/offers/create-offer-modal/create-offer.component.html new file mode 100644 index 00000000..8516e8eb --- /dev/null +++ b/src/app/clightning/transactions/offers/create-offer-modal/create-offer.component.html @@ -0,0 +1,35 @@ +
+
+ +
+ Create Offer +
+ +
+ +
+ + + +
+ + + Sats + {{offerValueHint}} + + + + +
+
+ + {{offerError}} +
+
+ + +
+
+
+
+
\ No newline at end of file diff --git a/src/app/clightning/transactions/offers/create-offer-modal/create-offer.component.scss b/src/app/clightning/transactions/offers/create-offer-modal/create-offer.component.scss new file mode 100644 index 00000000..0ad983c7 --- /dev/null +++ b/src/app/clightning/transactions/offers/create-offer-modal/create-offer.component.scss @@ -0,0 +1,3 @@ +.mat-column-actions { + min-height: 4.8rem; +} diff --git a/src/app/clightning/transactions/offers/create-offer-modal/create-offer.component.ts b/src/app/clightning/transactions/offers/create-offer-modal/create-offer.component.ts new file mode 100644 index 00000000..7194f387 --- /dev/null +++ b/src/app/clightning/transactions/offers/create-offer-modal/create-offer.component.ts @@ -0,0 +1,101 @@ +import { Component, OnInit, OnDestroy, Inject } from '@angular/core'; +import { DecimalPipe } from '@angular/common'; +import { Subject } from 'rxjs'; +import { filter, takeUntil } from 'rxjs/operators'; +import { Store } from '@ngrx/store'; +import { Actions } from '@ngrx/effects'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; + +import { CLOfferInformation } from '../../../../shared/models/alertData'; +import { CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, PAGE_SIZE, APICallStatusEnum, CLActions } from '../../../../shared/services/consts-enums-functions'; +import { SelNodeChild } from '../../../../shared/models/RTLconfig'; +import { GetInfo } from '../../../../shared/models/clModels'; +import { CommonService } from '../../../../shared/services/common.service'; + +import { RTLState } from '../../../../store/rtl.state'; +import { saveNewOffer } from '../../../store/cl.actions'; +import { clNodeInformation, clNodeSettings } from '../../../store/cl.selector'; + +@Component({ + selector: 'rtl-cl-create-offer', + templateUrl: './create-offer.component.html', + styleUrls: ['./create-offer.component.scss'] +}) +export class CLCreateOfferComponent implements OnInit, OnDestroy { + + public faExclamationTriangle = faExclamationTriangle; + public selNode: SelNodeChild = {}; + public description = ''; + public offerValue: number; + public vendor = ''; + public offerValueHint = ''; + public offers: any; + public information: GetInfo = {}; + public pageSize = PAGE_SIZE; + public offerError = ''; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLOfferInformation, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private actions: Actions) { } + + ngOnInit() { + this.pageSize = this.data.pageSize; + this.store.select(clNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[1])).subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; + this.vendor = this.information.alias; + }); + this.actions.pipe( + takeUntil(this.unSubs[2]), + filter((action) => action.type === CLActions.UPDATE_API_CALL_STATUS_CL)). + subscribe((action: any) => { + if (action.type === CLActions.UPDATE_API_CALL_STATUS_CL && action.payload.action === 'SaveNewOffer') { + if (action.payload.status === APICallStatusEnum.ERROR) { + this.offerError = action.payload.message; + } + if (action.payload.status === APICallStatusEnum.COMPLETED) { + this.dialogRef.close(); + } + } + }); + } + + onAddOffer() { + this.offerError = ''; + const offerAmt = !this.offerValue ? 'any' : this.offerValue + 'sats'; + this.store.dispatch(saveNewOffer({ payload: { amount: offerAmt, description: this.description, vendor: this.vendor } })); + } + + resetData() { + this.description = ''; + this.vendor = this.information.alias; + this.offerValue = null; + this.offerValueHint = ''; + this.offerError = ''; + } + + onOfferValueChange() { + if (this.selNode.fiatConversion && this.offerValue > 99) { + this.offerValueHint = ''; + this.commonService.convertCurrency(this.offerValue, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). + pipe(takeUntil(this.unSubs[3])). + subscribe({ + next: (data) => { + this.offerValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; + }, error: (err) => { + this.offerValueHint = 'Conversion Error: ' + err; + } + }); + } + } + + ngOnDestroy() { + this.unSubs.forEach((completeSub) => { + completeSub.next(null); + completeSub.complete(); + }); + } + +} diff --git a/src/app/clightning/transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component.html b/src/app/clightning/transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component.html new file mode 100644 index 00000000..7a1be296 --- /dev/null +++ b/src/app/clightning/transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component.html @@ -0,0 +1,74 @@ +
+
+
+
+
+ + Offer Bookmarks +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Updated At {{offersbookmark.lastUpdatedAt | date:'dd/MMM/YYYY HH:mm'}} Title +
+ {{offersbookmark.title}} +
+
Amount (Sats) {{(offersbookmark.amountmSat === 0) ? 'Open' : (offersbookmark.amountmSat / 1000) | number}} Description +
+ {{offersbookmark.description}} +
+
+
+ + + Download CSV + +
+
+
+ + + View Info + Delete Bookmark + Pay Again + +
+
+

No offer bookmarked.

+

Getting offer bookmarks...

+

{{errorMessage}}

+
+
+ +
+
diff --git a/src/app/clightning/transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component.scss b/src/app/clightning/transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component.scss new file mode 100644 index 00000000..fe876dfd --- /dev/null +++ b/src/app/clightning/transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component.scss @@ -0,0 +1,11 @@ +.mat-column-title, .mat-column-description { + flex: 0 0 30%; + width: 30%; + & .ellipsis-parent { + display: flex; + } +} + +.mat-column-actions { + min-height: 4.8rem; +} diff --git a/src/app/clightning/transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component.ts b/src/app/clightning/transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component.ts new file mode 100644 index 00000000..536e69b6 --- /dev/null +++ b/src/app/clightning/transactions/offers/offer-bookmarks-table/offer-bookmarks-table.component.ts @@ -0,0 +1,160 @@ +import { Component, OnInit, OnDestroy, ViewChild, AfterViewInit } from '@angular/core'; +import { Subject } from 'rxjs'; +import { takeUntil, take } from 'rxjs/operators'; +import { Store } from '@ngrx/store'; +import { faHistory } from '@fortawesome/free-solid-svg-icons'; +import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { MatTableDataSource } from '@angular/material/table'; + +import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum, PaymentTypes, AlertTypeEnum } from '../../../../shared/services/consts-enums-functions'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; +import { OfferBookmark } from '../../../../shared/models/clModels'; +import { LoggerService } from '../../../../shared/services/logger.service'; +import { CommonService } from '../../../../shared/services/common.service'; + +import { RTLEffects } from '../../../../store/rtl.effects'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../../store/rtl.actions'; +import { offerBookmarks } from '../../../store/cl.selector'; +import { CLOfferInformationComponent } from '../offer-information-modal/offer-information.component'; +import { CLLightningSendPaymentsComponent } from '../../send-payment-modal/send-payment.component'; +import { deleteOfferBookmark } from '../../../store/cl.actions'; + +@Component({ + selector: 'rtl-cl-offer-bookmarks-table', + templateUrl: './offer-bookmarks-table.component.html', + styleUrls: ['./offer-bookmarks-table.component.scss'], + providers: [ + { provide: MatPaginatorIntl, useValue: getPaginatorLabel('Offer Bookmarks') } + ] +}) +export class CLOfferBookmarksTableComponent implements OnInit, AfterViewInit, OnDestroy { + + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; + faHistory = faHistory; + public displayedColumns: any[] = []; + public offersBookmarks: any; + public offersBookmarksJSONArr: OfferBookmark[] = []; + public flgSticky = false; + public pageSize = PAGE_SIZE; + public pageSizeOptions = PAGE_SIZE_OPTIONS; + public screenSize = ''; + public screenSizeEnum = ScreenSizeEnum; + public selFilter = ''; + public errorMessage = ''; + public apiCallStatus: ApiCallStatusPayload = null; + public apiCallStatusEnum = APICallStatusEnum; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; + + constructor(private logger: LoggerService, private store: Store, private commonService: CommonService, private rtlEffects: RTLEffects) { + this.screenSize = this.commonService.getScreenSize(); + if (this.screenSize === ScreenSizeEnum.XS) { + this.flgSticky = false; + this.displayedColumns = ['lastUpdatedAt', 'title', 'amountmSat', 'actions']; + } else if (this.screenSize === ScreenSizeEnum.SM) { + this.flgSticky = false; + this.displayedColumns = ['lastUpdatedAt', 'title', 'amountmSat', 'actions']; + } else if (this.screenSize === ScreenSizeEnum.MD) { + this.flgSticky = false; + this.displayedColumns = ['lastUpdatedAt', 'title', 'amountmSat', 'description', 'actions']; + } else { + this.flgSticky = true; + this.displayedColumns = ['lastUpdatedAt', 'title', 'amountmSat', 'description', 'actions']; + } + } + + ngOnInit() { + this.store.select(offerBookmarks).pipe(takeUntil(this.unSubs[0])). + subscribe((offerBMsSeletor: { offersBookmarks: OfferBookmark[], apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessage = ''; + this.apiCallStatus = offerBMsSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; + } + this.offersBookmarksJSONArr = offerBMsSeletor.offersBookmarks || []; + if (this.offersBookmarksJSONArr && this.offersBookmarksJSONArr.length > 0 && this.sort && this.paginator) { + this.loadOffersTable(this.offersBookmarksJSONArr); + } + this.logger.info(offerBMsSeletor); + }); + } + + ngAfterViewInit() { + if (this.offersBookmarksJSONArr && this.offersBookmarksJSONArr.length > 0 && this.sort && this.paginator) { + this.loadOffersTable(this.offersBookmarksJSONArr); + } + } + + onOfferBookmarkClick(selOffer: OfferBookmark) { + this.store.dispatch(openAlert({ + payload: { + data: { + offer: { bolt12: selOffer.bolt12 }, + newlyAdded: false, + component: CLOfferInformationComponent + } + } + })); + } + + onDeleteBookmark(selOffer: OfferBookmark) { + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Delete Bookmark', + titleMessage: 'Deleting Bookmark: ' + (selOffer.title || selOffer.description), + noBtnText: 'Cancel', + yesBtnText: 'Delete' + } + } + })); + this.rtlEffects.closeConfirm.pipe(takeUntil(this.unSubs[1])).subscribe((confirmRes) => { + if (confirmRes) { + this.store.dispatch(deleteOfferBookmark({ payload: { bolt12: selOffer.bolt12 } })); + } + }); + } + + onRePayOffer(selOffer: OfferBookmark) { + this.store.dispatch(openAlert({ + payload: { + data: { + paymentType: PaymentTypes.OFFER, + bolt12: selOffer.bolt12, + offerTitle: selOffer.title, + component: CLLightningSendPaymentsComponent + } + } + })); + } + + applyFilter() { + this.offersBookmarks.filter = this.selFilter.trim().toLowerCase(); + } + + loadOffersTable(OffrBMs: OfferBookmark[]) { + this.offersBookmarks = (OffrBMs) ? new MatTableDataSource([...OffrBMs]) : new MatTableDataSource([]); + this.offersBookmarks.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); + this.offersBookmarks.sort = this.sort; + this.offersBookmarks.filterPredicate = (Ofrbm: OfferBookmark, fltr: string) => JSON.stringify(Ofrbm).toLowerCase().includes(fltr); + this.offersBookmarks.paginator = this.paginator; + this.applyFilter(); + } + + onDownloadCSV() { + if (this.offersBookmarks.data && this.offersBookmarks.data.length > 0) { + this.commonService.downloadFile(this.offersBookmarks.data, 'OfferBookmarks'); + } + } + + ngOnDestroy() { + this.unSubs.forEach((completeSub) => { + completeSub.next(null); + completeSub.complete(); + }); + } + +} diff --git a/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.html b/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.html new file mode 100644 index 00000000..57884158 --- /dev/null +++ b/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.html @@ -0,0 +1,94 @@ +
+ +
+ +
+ + {{screenSize === screenSizeEnum.XS ? (newlyAdded ? 'Created' : 'Offer') : (newlyAdded ? 'Offer Created' : 'Offer Information')}} +
+ +
+ +
+ + +
+
+

Amount Requested (Sats)

+ + {{ !offerDecoded?.amount_msat || offerDecoded?.amount === 0 ? 'Open Offer' : ((offerDecoded?.amount / 1000) | number) }} + +
+
+

Active

+ + {{!offer?.active ? 'N/K' : offer?.active ? 'Active' : 'Inactive'}} + +
+
+ +
+
+

Description

+ + {{offerDecoded?.description}} + +
+
+ +
+
+

Offer Request

+ {{offer?.bolt12}} +
+
+
+ +
+
+

Used

+ + {{ !offer?.used ? 'N/K' : offer?.used ? 'Yes' : 'No' }} + +
+
+

Single Use

+ + {{ !offer?.single_use ? 'N/K' : offer?.single_use ? 'Yes' : 'No' }} + +
+
+ +
+
+

Vendor

+ {{offerDecoded?.vendor || offerDecoded?.issuer}} +
+
+ +
+
+

Offer ID

+ {{ offerDecoded.offer_id }} +
+
+ +
+
+ + + +
+
+
+
+
diff --git a/src/app/lnd/lookups/node-lookup/node-lookup.component.scss b/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.scss similarity index 100% rename from src/app/lnd/lookups/node-lookup/node-lookup.component.scss rename to src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.scss diff --git a/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.spec.ts b/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.spec.ts new file mode 100644 index 00000000..722cf33a --- /dev/null +++ b/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.spec.ts @@ -0,0 +1,55 @@ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { Store, StoreModule } from '@ngrx/store'; + +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; +import { CommonService } from '../../../../shared/services/common.service'; +import { LoggerService } from '../../../../shared/services/logger.service'; + +import { CLOfferInformationComponent } from './offer-information.component'; +import { mockDataService, mockLoggerService, mockMatDialogRef } from '../../../../shared/test-helpers/mock-services'; +import { SharedModule } from '../../../../shared/shared.module'; +import { DataService } from '../../../../shared/services/data.service'; +import { RTLState } from '../../../../store/rtl.state'; + +describe('CLOfferInformationComponent', () => { + let component: CLOfferInformationComponent; + let fixture: ComponentFixture; + let store: Store; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [CLOfferInformationComponent], + imports: [ + SharedModule, + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) + ], + providers: [ + CommonService, + { provide: LoggerService, useClass: mockLoggerService }, + { provide: DataService, useClass: mockDataService }, + { provide: MatDialogRef, useClass: mockMatDialogRef }, + { provide: MAT_DIALOG_DATA, useValue: { offer: {} } } + ] + }). + compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CLOfferInformationComponent); + component = fixture.componentInstance; + store = fixture.debugElement.injector.get(Store); + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + afterEach(() => { + TestBed.resetTestingModule(); + }); +}); diff --git a/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.ts b/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.ts new file mode 100644 index 00000000..3726413a --- /dev/null +++ b/src/app/clightning/transactions/offers/offer-information-modal/offer-information.component.ts @@ -0,0 +1,85 @@ +import { Component, OnInit, Inject, OnDestroy } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { faReceipt, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { Store } from '@ngrx/store'; + +import { DataService } from '../../../../shared/services/data.service'; +import { LoggerService } from '../../../../shared/services/logger.service'; +import { CommonService } from '../../../../shared/services/common.service'; +import { CLOfferInformation } from '../../../../shared/models/alertData'; +import { ScreenSizeEnum } from '../../../../shared/services/consts-enums-functions'; + +import { GetInfo, Offer, OfferRequest } from '../../../../shared/models/clModels'; +import { RTLState } from '../../../../store/rtl.state'; +import { clNodeInformation } from '../../../store/cl.selector'; + +@Component({ + selector: 'rtl-cl-offer-information', + templateUrl: './offer-information.component.html', + styleUrls: ['./offer-information.component.scss'] +}) +export class CLOfferInformationComponent implements OnInit, OnDestroy { + + public faReceipt = faReceipt; + public faExclamationTriangle = faExclamationTriangle; + public showAdvanced = false; + public newlyAdded = false; + public offer: Offer; + public offerDecoded: OfferRequest = {}; + public qrWidth = 240; + public screenSize = ''; + public screenSizeEnum = ScreenSizeEnum; + public flgOfferPaid = false; + public flgVersionCompatible = true; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLOfferInformation, private logger: LoggerService, private commonService: CommonService, private snackBar: MatSnackBar, private store: Store, private dataService: DataService) { } + + ngOnInit() { + this.offer = this.data.offer; + this.newlyAdded = this.data.newlyAdded; + this.screenSize = this.commonService.getScreenSize(); + if (this.screenSize === ScreenSizeEnum.XS) { + this.qrWidth = 220; + } + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeInfo: GetInfo) => { + this.flgVersionCompatible = this.commonService.isVersionCompatible(nodeInfo.api_version, '0.6.0'); + }); + this.dataService.decodePayment(this.offer.bolt12, true). + pipe(takeUntil(this.unSubs[1])).subscribe((decodedOffer: OfferRequest) => { + this.offerDecoded = decodedOffer; + if (this.offerDecoded.offer_id && !this.offerDecoded.amount_msat) { + this.offerDecoded.amount_msat = '0msat'; + this.offerDecoded.amount = 0; + } else { + this.offerDecoded.amount = +(this.offerDecoded.amount || this.offerDecoded.amount_msat.slice(0, -4)); + } + }); + } + + onClose() { + this.dialogRef.close(false); + } + + onShowAdvanced() { + this.showAdvanced = !this.showAdvanced; + } + + onCopyOffer(payload: string) { + this.snackBar.open('Offer copied.'); + this.logger.info('Copied Text: ' + payload); + } + + ngOnDestroy() { + this.unSubs.forEach((completeSub) => { + completeSub.next(null); + completeSub.complete(); + }); + } + +} + diff --git a/src/app/clightning/transactions/offers/offers-table/offers-table.component.html b/src/app/clightning/transactions/offers/offers-table/offers-table.component.html new file mode 100644 index 00000000..df11ee14 --- /dev/null +++ b/src/app/clightning/transactions/offers/offers-table/offers-table.component.html @@ -0,0 +1,74 @@ +
+
+ +
+
+
+
+ + Offers History +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Offer ID +
+ + + + {{offer.offer_id}} + +
+
Single Use {{offer.single_use ? 'Yes' : 'No'}} Used + {{offer.used ? 'Yes' : 'No'}} + +
+ + + Download CSV + +
+
+
+ + + View Info + Disable Offer + Export QR code + +
+
+

No offer available.

+

Getting offers...

+

{{errorMessage}}

+
+
+ +
+
\ No newline at end of file diff --git a/src/app/clightning/transactions/offers/offers-table/offers-table.component.scss b/src/app/clightning/transactions/offers/offers-table/offers-table.component.scss new file mode 100644 index 00000000..5652a1bc --- /dev/null +++ b/src/app/clightning/transactions/offers/offers-table/offers-table.component.scss @@ -0,0 +1,11 @@ +.mat-column-offer_id { + flex: 0 0 65%; + width: 65%; + & .ellipsis-parent { + display: flex; + } +} + +.mat-column-actions { + min-height: 4.8rem; +} diff --git a/src/app/clightning/transactions/offers/offers-table/offers-table.component.ts b/src/app/clightning/transactions/offers/offers-table/offers-table.component.ts new file mode 100644 index 00000000..104ae3bb --- /dev/null +++ b/src/app/clightning/transactions/offers/offers-table/offers-table.component.ts @@ -0,0 +1,248 @@ +/* eslint-disable max-len */ +import { Component, OnInit, OnDestroy, ViewChild, AfterViewInit } from '@angular/core'; +import { DecimalPipe, DatePipe } from '@angular/common'; +import { Subject } from 'rxjs'; +import { take, takeUntil } from 'rxjs/operators'; +import { Store } from '@ngrx/store'; +import { faHistory } from '@fortawesome/free-solid-svg-icons'; +import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { MatTableDataSource } from '@angular/material/table'; +import * as pdfMake from 'pdfmake/build/pdfmake'; +import * as pdfFonts from 'pdfmake/build/vfs_fonts'; + +import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum, AlertTypeEnum } from '../../../../shared/services/consts-enums-functions'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; +import { SelNodeChild } from '../../../../shared/models/RTLconfig'; +import { GetInfo, Offer, OfferRequest } from '../../../../shared/models/clModels'; +import { DataService } from '../../../../shared/services/data.service'; +import { LoggerService } from '../../../../shared/services/logger.service'; +import { CommonService } from '../../../../shared/services/common.service'; + +import { CLCreateOfferComponent } from '../create-offer-modal/create-offer.component'; +import { CLOfferInformationComponent } from '../offer-information-modal/offer-information.component'; + +import { RTLEffects } from '../../../../store/rtl.effects'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../../store/rtl.actions'; +import { disableOffer } from '../../../store/cl.actions'; +import { clNodeInformation, clNodeSettings, offers } from '../../../store/cl.selector'; + +@Component({ + selector: 'rtl-cl-offers-table', + templateUrl: './offers-table.component.html', + styleUrls: ['./offers-table.component.scss'], + providers: [ + { provide: MatPaginatorIntl, useValue: getPaginatorLabel('Offers') } + ] +}) +export class CLOffersTableComponent implements OnInit, AfterViewInit, OnDestroy { + + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; + faHistory = faHistory; + public selNode: SelNodeChild = {}; + public newlyAddedOfferMemo = ''; + public newlyAddedOfferValue = 0; + public description = ''; + public expiry: number; + public offerValue: number = null; + public offerValueHint = ''; + public displayedColumns: any[] = []; + public offerPaymentReq = ''; + public offers: any; + public offerJSONArr: Offer[] = []; + public information: GetInfo = {}; + public flgSticky = false; + public private = false; + public expiryStep = 100; + public pageSize = PAGE_SIZE; + public pageSizeOptions = PAGE_SIZE_OPTIONS; + public screenSize = ''; + public screenSizeEnum = ScreenSizeEnum; + public errorMessage = ''; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; + public apiCallStatusEnum = APICallStatusEnum; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + + constructor(private logger: LoggerService, private store: Store, private commonService: CommonService, private rtlEffects: RTLEffects, private dataService: DataService, private decimalPipe: DecimalPipe, private datePipe: DatePipe) { + this.screenSize = this.commonService.getScreenSize(); + if (this.screenSize === ScreenSizeEnum.XS) { + this.flgSticky = false; + this.displayedColumns = ['offer_id', 'single_use', 'actions']; + } else if (this.screenSize === ScreenSizeEnum.SM) { + this.flgSticky = false; + this.displayedColumns = ['offer_id', 'single_use', 'used', 'actions']; + } else if (this.screenSize === ScreenSizeEnum.MD) { + this.flgSticky = false; + this.displayedColumns = ['offer_id', 'single_use', 'used', 'actions']; + } else { + this.flgSticky = true; + this.displayedColumns = ['offer_id', 'single_use', 'used', 'actions']; + } + } + + ngOnInit() { + this.store.select(clNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[1])).subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; + }); + this.store.select(offers).pipe(takeUntil(this.unSubs[2])). + subscribe((offersSeletor: { offers: Offer[], apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessage = ''; + this.apiCallStatus = offersSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; + } + this.offerJSONArr = offersSeletor.offers || []; + if (this.offerJSONArr && this.offerJSONArr.length > 0 && this.sort && this.paginator) { + this.loadOffersTable(this.offerJSONArr); + } + this.logger.info(offersSeletor); + }); + } + + ngAfterViewInit() { + if (this.offerJSONArr && this.offerJSONArr.length > 0 && this.sort && this.paginator) { + this.loadOffersTable(this.offerJSONArr); + } + } + + openCreateOfferModal() { + this.store.dispatch(openAlert({ + payload: { + data: { + pageSize: this.pageSize, + component: CLCreateOfferComponent + } + } + })); + } + + onOfferClick(selOffer: Offer) { + const reCreatedOffer: Offer = { + used: selOffer.used, + single_use: selOffer.single_use, + active: selOffer.active, + offer_id: selOffer.offer_id, + bolt12: selOffer.bolt12, + bolt12_unsigned: selOffer.bolt12_unsigned + }; + this.store.dispatch(openAlert({ + payload: { + data: { + offer: reCreatedOffer, + newlyAdded: false, + component: CLOfferInformationComponent + } + } + })); + } + + onDisableOffer(selOffer: Offer) { + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Disable Offer', + titleMessage: 'Disabling Offer: ' + (selOffer.offer_id || selOffer.bolt12), + noBtnText: 'Cancel', + yesBtnText: 'Disable' + } + } + })); + this.rtlEffects.closeConfirm.pipe(takeUntil(this.unSubs[3])).subscribe((confirmRes) => { + if (confirmRes) { + this.store.dispatch(disableOffer({ payload: { offer_id: selOffer.offer_id } })); + } + }); + } + + onPrintOffer(selOffer: Offer) { + this.dataService.decodePayment(selOffer.bolt12, false). + pipe(take(1)).subscribe((offerDecoded: OfferRequest) => { + if (offerDecoded.offer_id && !offerDecoded.amount_msat) { + offerDecoded.amount_msat = '0msat'; + offerDecoded.amount = 0; + } else { + offerDecoded.amount = +(offerDecoded.amount || offerDecoded.amount_msat.slice(0, -4)); + } + const documentDefinition = { + pageSize: 'A5', + pageOrientation: 'portrait', + pageMargins: [10, 50, 10, 50], + background: { + svg: ` + + + + + + `, + width: 249, + height: 333, + absolutePosition: { x: 84, y: 160 } + }, + header: { text: (offerDecoded.vendor || offerDecoded.issuer || ''), alignment: 'center', fontSize: 25, color: '#272727', margin: [0, 20, 0, 0] }, + content: [ + { + svg: '', + width: 249, + height: 40, + alignment: 'center' + }, + { text: offerDecoded.description ? offerDecoded.description.substring(0, 165) : '', alignment: 'center', fontSize: 16, color: '#5C5C5C' }, + { qr: selOffer.bolt12, eccLevel: 'M', fit: '259', alignment: 'center', absolutePosition: { x: 7, y: 195 } }, + { text: (!offerDecoded?.amount_msat || offerDecoded?.amount === 0 ? 'Open amount' : (this.decimalPipe.transform(offerDecoded.amount / 1000) + ' SATS')), fontSize: 20, bold: false, color: 'white', alignment: 'center', absolutePosition: { x: 0, y: 430 } }, + { text: 'SCAN TO PAY', fontSize: 22, bold: true, color: 'white', alignment: 'center', absolutePosition: { x: 0, y: 455 } } + ], + footer: { + svg: ` + + + + + `, + alignment: 'center' + } + }; + pdfMake.createPdf(documentDefinition, null, null, pdfFonts.pdfMake.vfs).download('Offer-' + (offerDecoded && offerDecoded.description ? offerDecoded.description : selOffer.bolt12)); + }); + } + + applyFilter() { + this.offers.filter = this.selFilter.trim().toLowerCase(); + } + + loadOffersTable(offrs: Offer[]) { + this.offers = (offrs) ? new MatTableDataSource([...offrs]) : new MatTableDataSource([]); + this.offers.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); + this.offers.sort = this.sort; + this.offers.filterPredicate = (rowData: Offer, fltr: string) => { + const newRowData = ((rowData.active) ? ' active' : ' inactive') + ((rowData.used) ? ' used' : ' unused') + ((rowData.single_use) ? ' single' : ' multiple') + JSON.stringify(rowData).toLowerCase(); + if (fltr === 'active' || fltr === 'inactive' || fltr === 'used' || fltr === 'unused' || fltr === 'single' || fltr === 'multiple') { + fltr = ' ' + fltr; + } + return newRowData.includes(fltr); + }; + this.offers.paginator = this.paginator; + this.applyFilter(); + } + + onDownloadCSV() { + if (this.offers.data && this.offers.data.length > 0) { + this.commonService.downloadFile(this.offers.data, 'Offers'); + } + } + + ngOnDestroy() { + this.unSubs.forEach((completeSub) => { + completeSub.next(null); + completeSub.complete(); + }); + } + +} diff --git a/src/app/clightning/transactions/payments/lightning-payments.component.html b/src/app/clightning/transactions/payments/lightning-payments.component.html index 0674f6d4..f3ad17d7 100644 --- a/src/app/clightning/transactions/payments/lightning-payments.component.html +++ b/src/app/clightning/transactions/payments/lightning-payments.component.html @@ -20,122 +20,136 @@ Payments History
- +
-
- - - - - - - - - - - - - - - - - - - - - - - - - +
+
+ +
Created At - - - {{(payment?.created_at * 1000) | date:'dd/MMM/YYYY HH:mm'}} - Payment Hash -
{{payment?.payment_hash}}
-
Sats Sent{{payment?.msatoshi_sent/1000 | number:payment?.msatoshi_sent < 1000 ? '1.0-4' : '1.0-0'}}Sats Received{{payment?.msatoshi/1000 | number:payment?.msatoshi < 1000 ? '1.0-4' : '1.0-0'}} -
- - - Download CSV - -
-
- - -

No payment available.

-

Getting payments...

-

{{errorMessage}}

-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + - - - - - - + + + - - - + + + - - - + + + - - - - - - -
Created At + + + {{(payment?.created_at * 1000) | date:'dd/MMM/YYYY HH:mm'}} + Type {{ payment?.bolt12 ? 'Bolt12' : payment?.bolt11 ? 'Bolt11' : 'Keysend' }}Payment Hash + + {{payment?.payment_hash}} + + Sats Sent{{payment?.msatoshi_sent/1000 | number:payment?.msatoshi_sent < 1000 ? '1.0-4' : '1.0-0'}}Sats Received{{payment?.msatoshi/1000 | number:payment?.msatoshi < 1000 ? '1.0-4' : '1.0-0'}} +
+ + + Download CSV + +
+
+ + +

No payment available.

+

Getting payments...

+

{{errorMessage}}

+
- - - - Total Attempts: {{payment?.total_parts}} - - - - - - {{(mpp.created_at * 1000) | date:'dd/MMM/YYYY HH:mm'}} + + + + + + + Total Attempts: {{payment?.total_parts}} + + + + + + {{(mpp.created_at * 1000) | date:'dd/MMM/YYYY HH:mm'}} + + + + {{ payment?.bolt12 ? 'Bolt12' : payment?.bolt11 ? 'Bolt11' : 'Keysend' }} + {{ payment?.bolt12 ? 'Bolt12' : payment?.bolt11 ? 'Bolt11' : 'Keysend' }} + + + {{payment?.payment_hash}} - - - {{payment?.payment_hash}} - - - Part ID {{mpp.partid ? mpp.partid : 0}} + + + Part ID {{mpp.partid ? mpp.partid : 0}} + - - - {{payment?.msatoshi_sent/1000 | number:payment?.msatoshi_sent < 1000 ? '1.0-4' : '1.0-0'}} - - - {{mpp.msatoshi_sent/1000 | number:mpp.msatoshi_sent < 1000 ? '1.0-4' : '1.0-0'}} + + {{payment?.msatoshi_sent/1000 | number:payment?.msatoshi_sent < 1000 ? '1.0-4' : '1.0-0'}} + + + {{mpp.msatoshi_sent/1000 | number:mpp.msatoshi_sent < 1000 ? '1.0-4' : '1.0-0'}} + - - - {{payment?.msatoshi/1000 | number:payment?.msatoshi < 1000 ? '1.0-4' : '1.0-0'}} - - - {{mpp.msatoshi/1000 | number:mpp.msatoshi < 1000 ? '1.0-4' : '1.0-0'}} + + {{payment?.msatoshi/1000 | number:payment?.msatoshi < 1000 ? '1.0-4' : '1.0-0'}} + + + {{mpp.msatoshi/1000 | number:mpp.msatoshi < 1000 ? '1.0-4' : '1.0-0'}} + - - - - - -
-
- +
+ + + +
+
+ +
- -
+ + + + + + + + +
diff --git a/src/app/clightning/transactions/payments/lightning-payments.component.scss b/src/app/clightning/transactions/payments/lightning-payments.component.scss index d403343d..e74d0e5f 100644 --- a/src/app/clightning/transactions/payments/lightning-payments.component.scss +++ b/src/app/clightning/transactions/payments/lightning-payments.component.scss @@ -1,8 +1,9 @@ -.mat-column-bolt11 { - flex: 1 1 20%; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; +.mat-column-payment_hash { + flex: 0 0 25%; + width: 25%; + & .ellipsis-parent { + display: flex; + } } .mat-column-actions { @@ -24,6 +25,8 @@ .mpp-row-span { min-height: 4.2rem; + place-content: center flex-start; + align-items: center; } .mat-column-groupTotal { diff --git a/src/app/clightning/transactions/payments/lightning-payments.component.ts b/src/app/clightning/transactions/payments/lightning-payments.component.ts index bf2921ec..50b05064 100644 --- a/src/app/clightning/transactions/payments/lightning-payments.component.ts +++ b/src/app/clightning/transactions/payments/lightning-payments.component.ts @@ -9,26 +9,26 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { GetInfo, Payment, PayRequest } from '../../../shared/models/clModels'; -import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, APICallStatusEnum, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListCL } from '../../../shared/models/apiCallsPayload'; +import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, APICallStatusEnum, UI_MESSAGES, PaymentTypes } from '../../../shared/services/consts-enums-functions'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; +import { DataService } from '../../../shared/services/data.service'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; -import { newlyAddedRowAnimation } from '../../../shared/animation/row-animation'; import { CLLightningSendPaymentsComponent } from '../send-payment-modal/send-payment.component'; import { SelNodeChild } from '../../../shared/models/RTLconfig'; import { CLEffects } from '../../store/cl.effects'; import { RTLEffects } from '../../../store/rtl.effects'; -import * as CLActions from '../../store/cl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../store/rtl.actions'; +import { sendPayment } from '../../store/cl.actions'; +import { clNodeInformation, clNodeSettings, payments } from '../../store/cl.selector'; @Component({ selector: 'rtl-cl-lightning-payments', templateUrl: './lightning-payments.component.html', styleUrls: ['./lightning-payments.component.scss'], - animations: [newlyAddedRowAnimation], providers: [ { provide: MatPaginatorIntl, useValue: getPaginatorLabel('Payments') } ] @@ -37,11 +37,10 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe @Input() calledFrom = 'transactions'; // Transactions/home @ViewChild('sendPaymentForm', { static: false }) form; - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public faHistory = faHistory; public newlyAddedPayment = ''; - public flgAnimate = true; public selNode: SelNodeChild = {}; public information: GetInfo = {}; public payments: any; @@ -57,11 +56,12 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListCL = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private rtlEffects: RTLEffects, private clEffects: CLEffects, private decimalPipe: DecimalPipe, private titleCasePipe: TitleCasePipe, private datePipe: DatePipe) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private rtlEffects: RTLEffects, private clEffects: CLEffects, private decimalPipe: DecimalPipe, private titleCasePipe: TitleCasePipe, private datePipe: DatePipe, private dataService: DataService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -73,34 +73,34 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe this.mppColumns = ['groupTotal', 'groupAmtRecv', 'groupAction']; } else if (this.screenSize === ScreenSizeEnum.MD) { this.flgSticky = false; - this.displayedColumns = ['created_at', 'msatoshi_sent', 'msatoshi', 'actions']; - this.mppColumns = ['groupTotal', 'groupAmtSent', 'groupAmtRecv', 'groupAction']; + this.displayedColumns = ['created_at', 'type', 'msatoshi_sent', 'msatoshi', 'actions']; + this.mppColumns = ['groupTotal', 'groupType', 'groupAmtSent', 'groupAmtRecv', 'groupAction']; } else { this.flgSticky = true; - this.displayedColumns = ['created_at', 'payment_hash', 'msatoshi_sent', 'msatoshi', 'actions']; - this.mppColumns = ['groupTotal', 'groupHash', 'groupAmtSent', 'groupAmtRecv', 'groupAction']; + this.displayedColumns = ['created_at', 'type', 'payment_hash', 'msatoshi_sent', 'msatoshi', 'actions']; + this.mppColumns = ['groupTotal', 'groupType', 'groupHash', 'groupAmtSent', 'groupAmtRecv', 'groupAction']; } } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(clNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[1])).subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; + }); + this.store.select(payments).pipe(takeUntil(this.unSubs[2])). + subscribe((paymentsSeletor: { payments: Payment[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchPayments.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchPayments.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPayments.message) : this.apisCallStatus.FetchPayments.message; + this.apiCallStatus = paymentsSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.information = rtlStore.information; - this.selNode = rtlStore.nodeSettings; - this.paymentJSONArr = (rtlStore.payments && rtlStore.payments.length > 0) ? rtlStore.payments : []; + this.paymentJSONArr = paymentsSeletor.payments || []; if (this.paymentJSONArr.length > 0) { this.loadPaymentsTable(this.paymentJSONArr); } - setTimeout(() => { - this.flgAnimate = false; - }, 3000); - this.logger.info(rtlStore); + this.logger.info(paymentsSeletor); }); } @@ -114,17 +114,15 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe return payment.is_group; } - onSendPayment(): boolean|void { + onSendPayment(): boolean | void { if (!this.paymentRequest) { return true; } if (this.paymentDecoded.created_at) { this.sendPayment(); } else { - this.store.dispatch(new CLActions.DecodePayment({ routeParam: this.paymentRequest, fromDialog: false })); - this.clEffects.setDecodedPaymentCL. - pipe(take(1)). - subscribe((decodedPayment) => { + this.dataService.decodePayment(this.paymentRequest, false). + pipe(takeUntil(this.unSubs[1])).subscribe((decodedPayment: PayRequest) => { this.paymentDecoded = decodedPayment; if (this.paymentDecoded.created_at) { if (!this.paymentDecoded.msatoshi) { @@ -139,7 +137,6 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe } sendPayment() { - this.flgAnimate = true; this.newlyAddedPayment = this.paymentDecoded.payment_hash; if (!this.paymentDecoded.msatoshi || this.paymentDecoded.msatoshi === 0) { const reorderedPaymentDecoded = [ @@ -147,28 +144,32 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe [{ key: 'payee', value: this.paymentDecoded.payee, title: 'Payee', width: 100 }], [{ key: 'description', value: this.paymentDecoded.description, title: 'Description', width: 100 }], [{ key: 'created_at', value: this.paymentDecoded.created_at, title: 'Creation Date', width: 40, type: DataTypeEnum.DATE_TIME }, - { key: 'expiry', value: this.paymentDecoded.expiry, title: 'Expiry', width: 30, type: DataTypeEnum.NUMBER }, - { key: 'min_finaltv_expiry', value: this.paymentDecoded.min_final_cltv_expiry, title: 'CLTV Expiry', width: 30 }] + { key: 'expiry', value: this.paymentDecoded.expiry, title: 'Expiry', width: 30, type: DataTypeEnum.NUMBER }, + { key: 'min_finaltv_expiry', value: this.paymentDecoded.min_final_cltv_expiry, title: 'CLTV Expiry', width: 30 }] ]; const titleMsg = 'It is a zero amount invoice. Enter the amount (Sats) to pay.'; - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Enter Amount and Confirm Send Payment', - message: reorderedPaymentDecoded, - noBtnText: 'Cancel', - yesBtnText: 'Send Payment', - flgShowInput: true, - titleMessage: titleMsg, - getInputs: [ - { placeholder: 'Amount (Sats)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: '', width: 30 } - ] - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Enter Amount and Confirm Send Payment', + message: reorderedPaymentDecoded, + noBtnText: 'Cancel', + yesBtnText: 'Send Payment', + flgShowInput: true, + titleMessage: titleMsg, + getInputs: [ + { placeholder: 'Amount (Sats)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: '', width: 30 } + ] + } + } + })); this.rtlEffects.closeConfirm. pipe(take(1)). subscribe((confirmRes) => { if (confirmRes) { this.paymentDecoded.msatoshi = confirmRes[0].inputValue; - this.store.dispatch(new CLActions.SendPayment({ uiMessage: UI_MESSAGES.SEND_PAYMENT, invoice: this.paymentRequest, amount: confirmRes[0].inputValue * 1000, fromDialog: false })); + this.store.dispatch(sendPayment({ payload: { uiMessage: UI_MESSAGES.SEND_PAYMENT, paymentType: PaymentTypes.INVOICE, invoice: this.paymentRequest, amount: confirmRes[0].inputValue * 1000, fromDialog: false } })); this.resetData(); } }); @@ -178,22 +179,26 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe [{ key: 'payee', value: this.paymentDecoded.payee, title: 'Payee', width: 100 }], [{ key: 'description', value: this.paymentDecoded.description, title: 'Description', width: 100 }], [{ key: 'created_at', value: this.paymentDecoded.created_at, title: 'Creation Date', width: 50, type: DataTypeEnum.DATE_TIME }, - { key: 'num_satoshis', value: this.paymentDecoded.msatoshi / 1000, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'num_satoshis', value: this.paymentDecoded.msatoshi / 1000, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'expiry', value: this.paymentDecoded.expiry, title: 'Expiry', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'min_finaltv_expiry', value: this.paymentDecoded.min_final_cltv_expiry, title: 'CLTV Expiry', width: 50 }] + { key: 'min_finaltv_expiry', value: this.paymentDecoded.min_final_cltv_expiry, title: 'CLTV Expiry', width: 50 }] ]; - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Confirm Send Payment', - noBtnText: 'Cancel', - yesBtnText: 'Send Payment', - message: reorderedPaymentDecoded - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Confirm Send Payment', + noBtnText: 'Cancel', + yesBtnText: 'Send Payment', + message: reorderedPaymentDecoded + } + } + })); this.rtlEffects.closeConfirm. pipe(take(1)). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new CLActions.SendPayment({ uiMessage: UI_MESSAGES.SEND_PAYMENT, invoice: this.paymentRequest, fromDialog: false })); + this.store.dispatch(sendPayment({ payload: { uiMessage: UI_MESSAGES.SEND_PAYMENT, paymentType: PaymentTypes.INVOICE, invoice: this.paymentRequest, fromDialog: false } })); this.resetData(); } }); @@ -204,32 +209,38 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe this.paymentRequest = event; this.paymentDecodedHint = ''; if (this.paymentRequest && this.paymentRequest.length > 100) { - this.store.dispatch(new CLActions.DecodePayment({ routeParam: this.paymentRequest, fromDialog: false })); - this.clEffects.setDecodedPaymentCL.subscribe((decodedPayment) => { - this.paymentDecoded = decodedPayment; - if (this.paymentDecoded.msatoshi) { - if (this.selNode.fiatConversion) { - this.commonService.convertCurrency(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[1])). - subscribe({ next: (data) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; - }, error: (error) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description + '. Unable to convert currency.'; - } }); + this.dataService.decodePayment(this.paymentRequest, false). + pipe(takeUntil(this.unSubs[1])).subscribe((decodedPayment: PayRequest) => { + this.paymentDecoded = decodedPayment; + if (this.paymentDecoded.msatoshi) { + if (this.selNode.fiatConversion) { + this.commonService.convertCurrency(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). + pipe(takeUntil(this.unSubs[3])). + subscribe({ + next: (data) => { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; + }, error: (error) => { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description + '. Unable to convert currency.'; + } + }); + } else { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description; + } } else { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description; + this.paymentDecodedHint = 'Zero Amount Invoice | Memo: ' + this.paymentDecoded.description; } - } else { - this.paymentDecodedHint = 'Zero Amount Invoice | Memo: ' + this.paymentDecoded.description; - } - }); + }); } } openSendPaymentModal() { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - component: CLLightningSendPaymentsComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + component: CLLightningSendPaymentsComponent + } + } + })); } resetData() { @@ -238,35 +249,44 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe this.form.resetForm(); } - onPaymentClick(selPayment) { + onPaymentClick(selPayment: Payment) { const reorderedPayment = [ - [{ key: 'bolt11', value: selPayment.bolt11, title: 'Bolt 11', width: 100, type: DataTypeEnum.STRING }], [{ key: 'payment_preimage', value: selPayment.payment_preimage, title: 'Payment Preimage', width: 100, type: DataTypeEnum.STRING }], [{ key: 'id', value: selPayment.id, title: 'ID', width: 20, type: DataTypeEnum.STRING }, - { key: 'destination', value: selPayment.destination, title: 'Destination', width: 80, type: DataTypeEnum.STRING }], + { key: 'destination', value: selPayment.destination, title: 'Destination', width: 80, type: DataTypeEnum.STRING }], [{ key: 'created_at', value: selPayment.created_at, title: 'Creation Date', width: 50, type: DataTypeEnum.DATE_TIME }, - { key: 'status', value: this.titleCasePipe.transform(selPayment.status), title: 'Status', width: 50, type: DataTypeEnum.STRING }], + { key: 'status', value: this.titleCasePipe.transform(selPayment.status), title: 'Status', width: 50, type: DataTypeEnum.STRING }], [{ key: 'msatoshi', value: selPayment.msatoshi, title: 'Amount (mSats)', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'msatoshi_sent', value: selPayment.msatoshi_sent, title: 'Amount Sent (mSats)', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'msatoshi_sent', value: selPayment.msatoshi_sent, title: 'Amount Sent (mSats)', width: 50, type: DataTypeEnum.NUMBER }] ]; + if (selPayment.bolt11 && selPayment.bolt11 !== '') { + reorderedPayment.unshift([{ key: 'bolt11', value: selPayment.bolt11, title: 'Bolt 11', width: 100, type: DataTypeEnum.STRING }]); + } + if (selPayment.bolt12 && selPayment.bolt12 !== '') { + reorderedPayment.unshift([{ key: 'bolt12', value: selPayment.bolt12, title: 'Bolt 12', width: 100, type: DataTypeEnum.STRING }]); + } if (selPayment.memo && selPayment.memo !== '') { reorderedPayment.splice(2, 0, [{ key: 'memo', value: selPayment.memo, title: 'Memo', width: 100, type: DataTypeEnum.STRING }]); } if (selPayment.hasOwnProperty('partid')) { reorderedPayment.unshift([{ key: 'payment_hash', value: selPayment.payment_hash, title: 'Payment Hash', width: 80, type: DataTypeEnum.STRING }, - { key: 'partid', value: selPayment.partid, title: 'Part ID', width: 20, type: DataTypeEnum.STRING }]); + { key: 'partid', value: selPayment.partid, title: 'Part ID', width: 20, type: DataTypeEnum.STRING }]); } else { reorderedPayment.unshift([{ key: 'payment_hash', value: selPayment.payment_hash, title: 'Payment Hash', width: 100, type: DataTypeEnum.STRING }]); } - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Payment Information', - message: reorderedPayment - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Payment Information', + message: reorderedPayment + } + } + })); } - applyFilter(selFilter: any) { - this.payments.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.payments.filter = this.selFilter.trim().toLowerCase(); } loadPaymentsTable(payments: Payment[]) { @@ -274,12 +294,12 @@ export class CLLightningPaymentsComponent implements OnInit, AfterViewInit, OnDe this.payments.data = this.paymentJSONArr; this.payments.sort = this.sort; this.payments.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); - this.payments.filterPredicate = (payment: Payment, fltr: string) => JSON.stringify(payment).toLowerCase().includes(fltr); this.payments.filterPredicate = (rowData: Payment, fltr: string) => { - const newRowData = ((rowData.created_at) ? this.datePipe.transform(new Date(rowData.created_at * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + JSON.stringify(rowData).toLowerCase(); + const newRowData = ((rowData.created_at) ? this.datePipe.transform(new Date(rowData.created_at * 1000), 'dd/MMM/YYYY HH:mm').toLowerCase() : '') + ((rowData.bolt12) ? 'bolt12' : (rowData.bolt11) ? 'bolt11' : 'keysend') + JSON.stringify(rowData).toLowerCase(); return newRowData.includes(fltr); }; this.payments.paginator = this.paginator; + this.applyFilter(); } onDownloadCSV() { diff --git a/src/app/clightning/transactions/send-payment-modal/send-payment.component.html b/src/app/clightning/transactions/send-payment-modal/send-payment.component.html index d20589e7..8869fb46 100644 --- a/src/app/clightning/transactions/send-payment-modal/send-payment.component.html +++ b/src/app/clightning/transactions/send-payment-modal/send-payment.component.html @@ -4,22 +4,23 @@
Send Payment
- + - - Invoice Payment - Keysend Payment + + Invoice + Keysend + Offer -
- + +
{{paymentError}}
- - + +
@@ -27,24 +28,43 @@
- + {{paymentDecodedHint}} Payment request is required. {{paymentDecodedHint}} - + It is a zero amount invoice, enter amount to be paid. Payment amount is required. - + Pubkey is required. - + Keysend amount is required. + + + + {{offerDecodedHint}} + Offer request is required. + {{offerDecodedHint}} + + + + It is a zero amount offer, enter amount to be paid. + Offer amount is required. + +
+ Bookmark Offer +
+ + + +
diff --git a/src/app/clightning/transactions/send-payment-modal/send-payment.component.ts b/src/app/clightning/transactions/send-payment-modal/send-payment.component.ts index 71cb90a5..3596215c 100644 --- a/src/app/clightning/transactions/send-payment-modal/send-payment.component.ts +++ b/src/app/clightning/transactions/send-payment-modal/send-payment.component.ts @@ -1,23 +1,25 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { NgModel } from '@angular/forms'; +import { Component, OnInit, OnDestroy, ViewChild, Inject } from '@angular/core'; +import { NgForm, NgModel } from '@angular/forms'; import { DecimalPipe } from '@angular/common'; import { Subject } from 'rxjs'; -import { take, takeUntil, filter } from 'rxjs/operators'; +import { takeUntil, filter } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { Actions } from '@ngrx/effects'; -import { MatDialogRef } from '@angular/material/dialog'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { SelNodeChild } from '../../../shared/models/RTLconfig'; -import { PayRequest, Channel } from '../../../shared/models/clModels'; -import { APICallStatusEnum, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, FEE_LIMIT_TYPES, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; +import { PayRequest, Channel, GetInfo, OfferRequest, OfferInvoice } from '../../../shared/models/clModels'; +import { APICallStatusEnum, CLActions, PaymentTypes, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, FEE_LIMIT_TYPES, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; +import { DataService } from '../../../shared/services/data.service'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; -import { CLEffects } from '../../store/cl.effects'; -import * as CLActions from '../../store/cl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { fetchOfferInvoice, sendPayment } from '../../store/cl.actions'; +import { channels, clNodeInformation, clNodeSettings } from '../../store/cl.selector'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; +import { CLPaymentInformation } from '../../../shared/models/alertData'; @Component({ selector: 'rtl-cl-lightning-send-payments', @@ -26,22 +28,46 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class CLLightningSendPaymentsComponent implements OnInit, OnDestroy { + @ViewChild('sendPaymentForm', { static: false }) form: NgForm; + @ViewChild('paymentAmt', { static: false }) paymentAmt: NgModel; + @ViewChild('offerAmt', { static: false }) offerAmt: NgModel; + private paymentReq: NgModel; @ViewChild('paymentReq') set payReq(paymReq: NgModel) { if (paymReq) { this.paymentReq = paymReq; } } + private offerReq: NgModel; + @ViewChild('offerReq') set offrReq(ofrReq: NgModel) { + if (ofrReq) { + this.offerReq = ofrReq; + } + } public faExclamationTriangle = faExclamationTriangle; + public paymentTypes = PaymentTypes; + public paymentType = PaymentTypes.INVOICE; public selNode: SelNodeChild = {}; + + public offerDecoded: OfferRequest = {}; + public offerRequest = ''; + public offerDecodedHint = ''; + public offerDescription = ''; + public offerVendor = ''; + public offerTitle = ''; + public zeroAmtOffer = false; + public offerInvoice: OfferInvoice = null; + public offerAmount = null; + public flgSaveToDB = false; + public paymentDecoded: PayRequest = {}; + public paymentRequest = ''; + public paymentDecodedHint = ''; public zeroAmtInvoice = false; public paymentAmount = null; - public paymentType = 'invoice'; + public pubkey = ''; public keysendAmount = null; - public paymentRequest = ''; - public paymentDecodedHint = ''; public selActiveChannel: Channel = {}; public activeChannels = {}; public feeLimit = null; @@ -49,149 +75,303 @@ export class CLLightningSendPaymentsComponent implements OnInit, OnDestroy { public feeLimitTypes = FEE_LIMIT_TYPES; public paymentError = ''; public isCompatibleVersion = false; - private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, private store: Store, private clEffects: CLEffects, private logger: LoggerService, private commonService: CommonService, private decimalPipe: DecimalPipe, private actions: Actions) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: CLPaymentInformation, private store: Store, private logger: LoggerService, private commonService: CommonService, private decimalPipe: DecimalPipe, private actions: Actions, private dataService: DataService) { } ngOnInit() { - this.store.select('cl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.activeChannels = rtlStore.allChannels.filter((channel) => channel.state === 'CHANNELD_NORMAL' && channel.connected); - this.isCompatibleVersion = - this.commonService.isVersionCompatible(rtlStore.information.version, '0.9.0') && - this.commonService.isVersionCompatible(rtlStore.information.api_version, '0.4.0'); - this.logger.info(rtlStore); + if (this.data && this.data.paymentType) { + this.paymentType = this.data.paymentType; + switch (this.paymentType) { + case PaymentTypes.INVOICE: + this.paymentRequest = this.data.invoiceBolt11; + break; + case PaymentTypes.KEYSEND: + this.pubkey = this.data.pubkeyKeysend; + break; + case PaymentTypes.OFFER: + this.onPaymentRequestEntry(this.data.bolt12); + this.offerTitle = this.data.offerTitle; + this.flgSaveToDB = false; + break; + default: + break; + } + } + this.store.select(clNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(clNodeInformation).pipe(takeUntil(this.unSubs[1])).subscribe((nodeInfo: GetInfo) => { + this.isCompatibleVersion = + this.commonService.isVersionCompatible(nodeInfo.version, '0.9.0') && + this.commonService.isVersionCompatible(nodeInfo.api_version, '0.4.0'); + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[2])). + subscribe((channelsSeletor: { activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], apiCallStatus: ApiCallStatusPayload }) => { + this.activeChannels = channelsSeletor.activeChannels; + this.logger.info(channelsSeletor); }); this.actions.pipe( - takeUntil(this.unSubs[1]), - filter((action) => action.type === CLActions.UPDATE_API_CALL_STATUS_CL || action.type === CLActions.SEND_PAYMENT_STATUS_CL)). - subscribe((action: CLActions.UpdateAPICallStatus | CLActions.SendPaymentStatus) => { + takeUntil(this.unSubs[3]), + filter((action) => action.type === CLActions.UPDATE_API_CALL_STATUS_CL || action.type === CLActions.SEND_PAYMENT_STATUS_CL || action.type === CLActions.SET_OFFER_INVOICE_CL)). + subscribe((action: any) => { if (action.type === CLActions.SEND_PAYMENT_STATUS_CL) { this.dialogRef.close(); } + if (action.type === CLActions.SET_OFFER_INVOICE_CL) { + this.offerInvoice = action.payload; + this.sendPayment(); + } if (action.type === CLActions.UPDATE_API_CALL_STATUS_CL && action.payload.status === APICallStatusEnum.ERROR) { if (action.payload.action === 'SendPayment') { delete this.paymentDecoded.msatoshi; this.paymentError = action.payload.message; } if (action.payload.action === 'DecodePayment') { - this.paymentDecodedHint = 'ERROR: ' + action.payload.message; - this.paymentReq.control.setErrors({ decodeError: true }); + if (this.paymentType === PaymentTypes.INVOICE) { + this.paymentDecodedHint = 'ERROR: ' + action.payload.message; + this.paymentReq.control.setErrors({ decodeError: true }); + } + if (this.paymentType === PaymentTypes.OFFER) { + this.offerDecodedHint = 'ERROR: ' + action.payload.message; + this.offerReq.control.setErrors({ decodeError: true }); + } + } + if (action.payload.action === 'FetchOfferInvoice' && this.paymentType === PaymentTypes.OFFER) { + this.paymentError = action.payload.message; } } }); } - onSendPayment(): boolean|void { - if ((this.paymentType === 'invoice' && !this.paymentRequest) || (this.paymentType === 'keysend' && (!this.pubkey || this.pubkey.trim() === '' || !this.keysendAmount || this.keysendAmount <= 0))) { - return true; - } - if (this.paymentType === 'keysend') { - this.keysendPayment(); - } else { - if (this.paymentDecoded.created_at) { - this.sendPayment(); - } else { - this.paymentAmount = null; - this.paymentError = ''; - this.paymentDecodedHint = ''; - this.paymentReq.control.setErrors(null); - this.store.dispatch(new CLActions.DecodePayment({ routeParam: this.paymentRequest, fromDialog: true })); - this.clEffects.setDecodedPaymentCL.pipe(take(1)).subscribe((decodedPayment) => { - this.paymentDecoded = decodedPayment; - if (this.paymentDecoded.created_at && !this.paymentDecoded.msatoshi) { - this.paymentDecoded.msatoshi = 0; - this.zeroAmtInvoice = true; - this.paymentDecodedHint = 'Zero Amount Invoice | Memo: ' + this.paymentDecoded.description; - } else { - this.zeroAmtInvoice = false; - if (this.selNode.fiatConversion) { - this.commonService.convertCurrency(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[2])). - subscribe({ next: (data) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; - }, error: (error) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description + '. Unable to convert currency.'; - } }); - } else { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description; - } - } - }); - } + onSendPayment(): boolean | void { + switch (this.paymentType) { + case PaymentTypes.KEYSEND: + if (!this.pubkey || this.pubkey.trim() === '' || !this.keysendAmount || this.keysendAmount <= 0) { return true; } + this.keysendPayment(); + break; + + case PaymentTypes.INVOICE: + if (!this.paymentRequest || (this.zeroAmtInvoice && (this.paymentAmount === 0 || !this.paymentAmount))) { + this.paymentReq.control.markAsTouched(); + this.paymentAmt.control.markAsTouched(); + return true; + } + if (this.paymentDecoded.created_at) { + this.sendPayment(); + } else { + this.resetInvoiceDetails(); + this.dataService.decodePayment(this.paymentRequest, true). + pipe(takeUntil(this.unSubs[4])).subscribe((decodedPayment: PayRequest | OfferRequest) => { + if (decodedPayment.type === 'bolt12 offer' && (decodedPayment).offer_id) { + this.paymentDecodedHint = 'ERROR: Select Offer option to pay the bolt12 offer invoice.'; + this.paymentReq.control.setErrors({ decodeError: true }); + } else { + this.paymentDecoded = decodedPayment; + this.setPaymentDecodedDetails(); + } + }); + } + break; + + case PaymentTypes.OFFER: + if (!this.offerRequest || (this.zeroAmtOffer && (this.offerAmount === 0 || !this.offerAmount))) { + this.offerReq.control.markAsTouched(); + this.offerAmt.control.markAsTouched(); + return true; + } + if (this.offerDecoded.offer_id) { + this.sendPayment(); + } else { + this.resetOfferDetails(); + this.dataService.decodePayment(this.offerRequest, true). + pipe(takeUntil(this.unSubs[5])).subscribe((decodedOffer: PayRequest | OfferRequest) => { + if (decodedOffer.type === 'bolt11 invoice' && (decodedOffer).payment_hash) { + this.offerDecodedHint = 'ERROR: Select Invoice option to pay the bolt11 invoice.'; + this.offerReq.control.setErrors({ decodeError: true }); + } else { + this.offerDecoded = decodedOffer; + this.setOfferDecodedDetails(); + } + }); + } + break; + + default: + break; } } keysendPayment() { - this.store.dispatch(new CLActions.SendPayment({ uiMessage: UI_MESSAGES.SEND_KEYSEND, pubkey: this.pubkey, amount: this.keysendAmount * 1000, fromDialog: true })); + this.store.dispatch(sendPayment({ payload: { uiMessage: UI_MESSAGES.SEND_KEYSEND, paymentType: PaymentTypes.KEYSEND, pubkey: this.pubkey, amount: this.keysendAmount * 1000, fromDialog: true } })); } sendPayment() { - if (this.zeroAmtInvoice) { - this.store.dispatch(new CLActions.SendPayment({ uiMessage: UI_MESSAGES.SEND_PAYMENT, invoice: this.paymentRequest, amount: this.paymentAmount * 1000, fromDialog: true })); - } else { - this.store.dispatch(new CLActions.SendPayment({ uiMessage: UI_MESSAGES.SEND_PAYMENT, invoice: this.paymentRequest, fromDialog: true })); + this.paymentError = ''; + if (this.paymentType === PaymentTypes.INVOICE) { + if (this.zeroAmtInvoice) { + this.store.dispatch(sendPayment({ payload: { uiMessage: UI_MESSAGES.SEND_PAYMENT, paymentType: PaymentTypes.INVOICE, invoice: this.paymentRequest, amount: this.paymentAmount * 1000, fromDialog: true } })); + } else { + this.store.dispatch(sendPayment({ payload: { uiMessage: UI_MESSAGES.SEND_PAYMENT, paymentType: PaymentTypes.INVOICE, invoice: this.paymentRequest, fromDialog: true } })); + } + } else if (this.paymentType === PaymentTypes.OFFER) { + if (!this.offerInvoice) { + if (this.zeroAmtOffer) { + this.store.dispatch(fetchOfferInvoice({ payload: { offer: this.offerRequest, msatoshi: this.offerAmount * 1000 } })); + } else { + this.store.dispatch(fetchOfferInvoice({ payload: { offer: this.offerRequest } })); + } + } else { + this.store.dispatch(sendPayment({ payload: { uiMessage: UI_MESSAGES.SEND_PAYMENT, paymentType: PaymentTypes.OFFER, invoice: this.offerInvoice.invoice, saveToDB: this.flgSaveToDB, bolt12: this.offerRequest, amount: this.offerAmount * 1000, zeroAmtOffer: this.zeroAmtOffer, title: this.offerTitle, vendor: this.offerVendor, description: this.offerDescription, fromDialog: true } })); + } } } onPaymentRequestEntry(event: any) { - this.paymentRequest = event; - this.paymentError = ''; - this.paymentDecodedHint = ''; - this.zeroAmtInvoice = false; - if (this.paymentRequest && this.paymentRequest.length > 100) { - this.paymentReq.control.setErrors(null); - this.zeroAmtInvoice = false; - this.store.dispatch(new CLActions.DecodePayment({ routeParam: this.paymentRequest, fromDialog: true })); - this.clEffects.setDecodedPaymentCL.subscribe((decodedPayment) => { - this.paymentDecoded = decodedPayment; - if (this.paymentDecoded.created_at && !this.paymentDecoded.msatoshi) { - this.paymentDecoded.msatoshi = 0; - this.zeroAmtInvoice = true; - this.paymentDecodedHint = 'Zero Amount Invoice | Memo: ' + this.paymentDecoded.description; - } else { - this.zeroAmtInvoice = false; - if (this.selNode.fiatConversion) { - this.commonService.convertCurrency(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[3])). - subscribe({ next: (data) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; - }, error: (error) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description + '. Unable to convert currency.'; - } }); + if (this.paymentType === PaymentTypes.INVOICE) { + this.paymentRequest = event; + this.resetInvoiceDetails(); + } else if (this.paymentType === PaymentTypes.OFFER) { + this.offerRequest = event; + this.resetOfferDetails(); + } + if (event.length > 100) { + this.dataService.decodePayment(event, true).pipe(takeUntil(this.unSubs[6])).subscribe((decodedRequest: PayRequest | OfferRequest) => { + if (this.paymentType === PaymentTypes.INVOICE) { + if (decodedRequest.type === 'bolt12 offer' && (decodedRequest).offer_id) { + this.paymentDecodedHint = 'ERROR: Select Offer option to pay the bolt12 offer invoice.'; + this.paymentReq.control.setErrors({ decodeError: true }); } else { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description; + this.paymentDecoded = decodedRequest; + this.setPaymentDecodedDetails(); + } + } else if (this.paymentType === PaymentTypes.OFFER) { + if (decodedRequest.type === 'bolt11 invoice' && (decodedRequest).payment_hash) { + this.offerDecodedHint = 'ERROR: Select Invoice option to pay the bolt11 invoice.'; + this.offerReq.control.setErrors({ decodeError: true }); + } else { + this.offerDecoded = decodedRequest; + this.setOfferDecodedDetails(); } } }); } } + resetOfferDetails() { + this.offerInvoice = null; + this.offerAmount = null; + this.offerDecodedHint = ''; + this.zeroAmtOffer = false; + this.paymentError = ''; + if (this.offerReq) { this.offerReq.control.setErrors(null); } + } + + resetInvoiceDetails() { + this.paymentAmount = null; + this.paymentDecodedHint = ''; + this.zeroAmtInvoice = false; + this.paymentError = ''; + if (this.paymentReq) { this.paymentReq.control.setErrors(null); } + } + onAmountChange(event: any) { - delete this.paymentDecoded.msatoshi; - this.paymentDecoded.msatoshi = event; + if (this.paymentType === PaymentTypes.INVOICE) { + delete this.paymentDecoded.msatoshi; + this.paymentDecoded.msatoshi = +event.target.value; + } + if (this.paymentType === PaymentTypes.OFFER) { + delete this.offerDecoded.amount; + delete this.offerDecoded.amount_msat; + this.offerDecoded.amount = +event.target.value * 1000; + this.offerDecoded.amount_msat = event.target.value + 'msat'; + } } onPaymentTypeChange() { this.paymentError = ''; + this.paymentDecodedHint = ''; + this.offerDecodedHint = ''; + this.offerInvoice = null; } - resetData() { - if (this.paymentType === 'keysend') { - this.pubkey = ''; - this.keysendAmount = null; + setOfferDecodedDetails() { + if (this.offerDecoded.offer_id && !this.offerDecoded.amount_msat) { + this.offerDecoded.amount_msat = '0msat'; + this.offerDecoded.amount = 0; + this.zeroAmtOffer = true; + this.offerDescription = this.offerDecoded.description; + this.offerVendor = this.offerDecoded.vendor ? this.offerDecoded.vendor : this.offerDecoded.issuer ? this.offerDecoded.issuer : ''; + this.offerDecodedHint = 'Zero Amount Offer | Description: ' + this.offerDecoded.description; + } else { + this.zeroAmtOffer = false; + this.offerDecoded.amount = +(this.offerDecoded.amount || this.offerDecoded.amount_msat.slice(0, -4)); + this.offerAmount = this.offerDecoded.amount ? this.offerDecoded.amount / 1000 : 0; + this.offerDescription = this.offerDecoded.description; + this.offerVendor = this.offerDecoded.vendor ? this.offerDecoded.vendor : this.offerDecoded.issuer ? this.offerDecoded.issuer : ''; + if (this.selNode.fiatConversion) { + this.commonService.convertCurrency(this.offerAmount, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). + pipe(takeUntil(this.unSubs[7])). + subscribe({ + next: (data) => { + this.offerDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.offerAmount) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Description: ' + this.offerDecoded.description; + }, error: (error) => { + this.offerDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.offerAmount) + ' Sats | Description: ' + this.offerDecoded.description + '. Unable to convert currency.'; + } + }); + } else { + this.offerDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.offerAmount) + ' Sats | Description: ' + this.offerDecoded.description; + } + } + } + + setPaymentDecodedDetails() { + if (this.paymentDecoded.created_at && !this.paymentDecoded.msatoshi) { + this.paymentDecoded.msatoshi = 0; + this.zeroAmtInvoice = true; + this.paymentDecodedHint = 'Zero Amount Invoice | Memo: ' + this.paymentDecoded.description; } else { - this.paymentDecoded = {}; - this.paymentRequest = ''; - this.selActiveChannel = null; - this.feeLimit = null; - this.selFeeLimitType = FEE_LIMIT_TYPES[0]; - this.paymentReq.control.setErrors(null); - this.paymentDecodedHint = ''; this.zeroAmtInvoice = false; - this.paymentAmount = null; + if (this.selNode.fiatConversion) { + this.commonService.convertCurrency(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). + pipe(takeUntil(this.unSubs[8])). + subscribe({ + next: (data) => { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; + }, error: (error) => { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description + '. Unable to convert currency.'; + } + }); + } else { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.msatoshi ? this.paymentDecoded.msatoshi / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description; + } + } + } + + resetData() { + switch (this.paymentType) { + case PaymentTypes.KEYSEND: + this.pubkey = ''; + this.keysendAmount = null; + break; + + case PaymentTypes.INVOICE: + this.paymentRequest = ''; + this.paymentDecoded = {}; + this.selActiveChannel = null; + this.feeLimit = null; + this.selFeeLimitType = FEE_LIMIT_TYPES[0]; + this.resetInvoiceDetails(); + break; + + case PaymentTypes.OFFER: + this.offerRequest = ''; + this.offerDecoded = {}; + this.flgSaveToDB = false; + this.resetOfferDetails(); + break; + default: + break; } this.paymentError = ''; } diff --git a/src/app/clightning/transactions/transactions.component.spec.ts b/src/app/clightning/transactions/transactions.component.spec.ts index 64f07cae..f2f463a0 100644 --- a/src/app/clightning/transactions/transactions.component.spec.ts +++ b/src/app/clightning/transactions/transactions.component.spec.ts @@ -2,12 +2,15 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { LoggerService } from '../../shared/services/logger.service'; import { CLTransactionsComponent } from './transactions.component'; import { SharedModule } from '../../shared/shared.module'; -import { CLQueryRoutesComponent } from './query-routes/query-routes.component'; +import { CLQueryRoutesComponent } from '../graph/query-routes/query-routes.component'; import { mockDataService, mockLoggerService } from '../../shared/test-helpers/mock-services'; import { CommonService } from '../../shared/services/common.service'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @@ -24,12 +27,7 @@ describe('CLTransactionsComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/clightning/transactions/transactions.component.ts b/src/app/clightning/transactions/transactions.component.ts index 63c4f796..d6f31c28 100644 --- a/src/app/clightning/transactions/transactions.component.ts +++ b/src/app/clightning/transactions/transactions.component.ts @@ -1,14 +1,19 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; import { Router, ResolveEnd } from '@angular/router'; import { Subject } from 'rxjs'; -import { takeUntil, filter } from 'rxjs/operators'; +import { takeUntil, filter, withLatestFrom } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { faExchangeAlt, faChartPie } from '@fortawesome/free-solid-svg-icons'; import { UserPersonaEnum } from '../../shared/services/consts-enums-functions'; import { LoggerService } from '../../shared/services/logger.service'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { clNodeSettings, localRemoteBalance } from '../store/cl.selector'; +import { LocalRemoteBalance } from '../../shared/models/clModels'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; +import { SelNodeChild } from '../../shared/models/RTLconfig'; +import { fetchOffers, fetchOfferBookmarks } from '../store/cl.actions'; @Component({ selector: 'rtl-cl-transactions', @@ -20,31 +25,45 @@ export class CLTransactionsComponent implements OnInit, OnDestroy { faExchangeAlt = faExchangeAlt; faChartPie = faChartPie; currencyUnits = []; + routerUrl = ''; balances = [{ title: 'Local Capacity', dataValue: 0, tooltip: 'Amount you can send' }, { title: 'Remote Capacity', dataValue: 0, tooltip: 'Amount you can receive' }]; - public links = [{ link: 'payments', name: 'Payments' }, { link: 'invoices', name: 'Invoices' }, { link: 'queryroutes', name: 'Query Routes' }]; + public selNode: SelNodeChild = {}; + public links = [{ link: 'payments', name: 'Payments' }, { link: 'invoices', name: 'Invoices' }]; public activeLink = this.links[0].link; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private router: Router) {} + constructor(private logger: LoggerService, private store: Store, private router: Router) { } ngOnInit() { const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; + this.routerUrl = value.urlAfterRedirects; }); - this.store.select('cl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.currencyUnits = rtlStore.nodeSettings.currencyUnits; - if (rtlStore.nodeSettings.userPersona === UserPersonaEnum.OPERATOR) { - this.balances = [{ title: 'Local Capacity', dataValue: rtlStore.localRemoteBalance.localBalance, tooltip: 'Amount you can send' }, { title: 'Remote Capacity', dataValue: rtlStore.localRemoteBalance.remoteBalance, tooltip: 'Amount you can receive' }]; + this.store.select(clNodeSettings).pipe(takeUntil(this.unSubs[1])).subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + if (this.selNode.enableOffers) { + this.store.dispatch(fetchOffers()); + this.store.dispatch(fetchOfferBookmarks()); + this.links.push({ link: 'offers', name: 'Offers' }); + this.links.push({ link: 'offrBookmarks', name: 'Paid Offer Bookmarks' }); + const linkFound = this.links.find((link) => this.router.url.includes(link.link)); + this.activeLink = linkFound ? linkFound.link : this.links[0].link; + } + }); + this.store.select(localRemoteBalance).pipe(takeUntil(this.unSubs[2]), + withLatestFrom(this.store.select(clNodeSettings))). + subscribe(([lrBalSeletor, nodeSettings]: [{ localRemoteBalance: LocalRemoteBalance, apiCallStatus: ApiCallStatusPayload }, SelNodeChild]) => { + this.currencyUnits = nodeSettings.currencyUnits; + if (nodeSettings.userPersona === UserPersonaEnum.OPERATOR) { + this.balances = [{ title: 'Local Capacity', dataValue: lrBalSeletor.localRemoteBalance.localBalance, tooltip: 'Amount you can send' }, { title: 'Remote Capacity', dataValue: lrBalSeletor.localRemoteBalance.remoteBalance, tooltip: 'Amount you can receive' }]; } else { - this.balances = [{ title: 'Outbound Capacity', dataValue: rtlStore.localRemoteBalance.localBalance, tooltip: 'Amount you can send' }, { title: 'Inbound Capacity', dataValue: rtlStore.localRemoteBalance.remoteBalance, tooltip: 'Amount you can receive' }]; + this.balances = [{ title: 'Outbound Capacity', dataValue: lrBalSeletor.localRemoteBalance.localBalance, tooltip: 'Amount you can send' }, { title: 'Inbound Capacity', dataValue: lrBalSeletor.localRemoteBalance.remoteBalance, tooltip: 'Amount you can receive' }]; } - this.logger.info(rtlStore); + this.logger.info(lrBalSeletor); }); } diff --git a/src/app/eclair/ecl.module.ts b/src/app/eclair/ecl.module.ts index 86982de0..a039e0b4 100644 --- a/src/app/eclair/ecl.module.ts +++ b/src/app/eclair/ecl.module.ts @@ -22,14 +22,15 @@ import { ECLChannelOpenTableComponent } from './peers-channels/channels/channels import { ECLChannelPendingTableComponent } from './peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component'; import { ECLChannelInactiveTableComponent } from './peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component'; import { ECLTransactionsComponent } from './transactions/transactions.component'; -import { ECLQueryRoutesComponent } from './transactions/query-routes/query-routes.component'; +import { ECLQueryRoutesComponent } from './graph/query-routes/query-routes.component'; import { ECLLightningPaymentsComponent } from './transactions/payments/lightning-payments.component'; import { ECLLightningInvoicesComponent } from './transactions/invoices/lightning-invoices.component'; import { ECLRoutingComponent } from './routing/routing.component'; import { ECLForwardingHistoryComponent } from './routing/forwarding-history/forwarding-history.component'; import { ECLRoutingPeersComponent } from './routing/routing-peers/routing-peers.component'; -import { ECLLookupsComponent } from './lookups/lookups.component'; -import { ECLNodeLookupComponent } from './lookups/node-lookup/node-lookup.component'; +import { ECLLookupsComponent } from './graph/lookups/lookups.component'; +import { ECLNodeLookupComponent } from './graph/lookups/node-lookup/node-lookup.component'; +import { ECLGraphComponent } from './graph/graph.component'; import { ECLReportsComponent } from './reports/reports.component'; import { ECLFeeReportComponent } from './reports/fee/fee-report.component'; import { ECLTransactionsReportComponent } from './reports/transactions/transactions-report.component'; @@ -78,6 +79,7 @@ import { ECLUnlockedGuard } from '../shared/services/auth.guard'; ECLLightningInvoicesComponent, ECLLookupsComponent, ECLNodeLookupComponent, + ECLGraphComponent, ECLReportsComponent, ECLFeeReportComponent, ECLTransactionsReportComponent, @@ -96,4 +98,4 @@ import { ECLUnlockedGuard } from '../shared/services/auth.guard'; ], bootstrap: [ECLRootComponent] }) -export class ECLModule {} +export class ECLModule { } diff --git a/src/app/eclair/ecl.routing.ts b/src/app/eclair/ecl.routing.ts index 035890ac..5c6fe52a 100644 --- a/src/app/eclair/ecl.routing.ts +++ b/src/app/eclair/ecl.routing.ts @@ -7,7 +7,7 @@ import { ECLOnChainComponent } from './on-chain/on-chain.component'; import { ECLConnectionsComponent } from './peers-channels/connections.component'; import { ECLTransactionsComponent } from './transactions/transactions.component'; import { ECLRoutingComponent } from './routing/routing.component'; -import { ECLLookupsComponent } from './lookups/lookups.component'; +import { ECLLookupsComponent } from './graph/lookups/lookups.component'; import { ECLOnChainReceiveComponent } from './on-chain/on-chain-receive/on-chain-receive.component'; import { ECLOnChainSendComponent } from './on-chain/on-chain-send/on-chain-send.component'; import { ECLChannelsTablesComponent } from './peers-channels/channels/channels-tables/channels-tables.component'; @@ -16,7 +16,7 @@ import { ECLChannelPendingTableComponent } from './peers-channels/channels/chann import { ECLPeersComponent } from './peers-channels/peers/peers.component'; import { ECLLightningPaymentsComponent } from './transactions/payments/lightning-payments.component'; import { ECLLightningInvoicesComponent } from './transactions/invoices/lightning-invoices.component'; -import { ECLQueryRoutesComponent } from './transactions/query-routes/query-routes.component'; +import { ECLQueryRoutesComponent } from './graph/query-routes/query-routes.component'; import { ECLChannelInactiveTableComponent } from './peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component'; import { ECLForwardingHistoryComponent } from './routing/forwarding-history/forwarding-history.component'; import { ECLRoutingPeersComponent } from './routing/routing-peers/routing-peers.component'; @@ -25,6 +25,7 @@ import { ECLFeeReportComponent } from './reports/fee/fee-report.component'; import { ECLTransactionsReportComponent } from './reports/transactions/transactions-report.component'; import { ECLUnlockedGuard } from '../shared/services/auth.guard'; import { NotFoundComponent } from '../shared/components/not-found/not-found.component'; +import { ECLGraphComponent } from './graph/graph.component'; export const EclRoutes: Routes = [ { @@ -57,8 +58,7 @@ export const EclRoutes: Routes = [ path: 'transactions', component: ECLTransactionsComponent, canActivate: [ECLUnlockedGuard], children: [ { path: '', pathMatch: 'full', redirectTo: 'payments' }, { path: 'payments', component: ECLLightningPaymentsComponent, canActivate: [ECLUnlockedGuard] }, - { path: 'invoices', component: ECLLightningInvoicesComponent, canActivate: [ECLUnlockedGuard] }, - { path: 'queryroutes', component: ECLQueryRoutesComponent, canActivate: [ECLUnlockedGuard] } + { path: 'invoices', component: ECLLightningInvoicesComponent, canActivate: [ECLUnlockedGuard] } ] }, { @@ -75,7 +75,13 @@ export const EclRoutes: Routes = [ { path: 'transactions', component: ECLTransactionsReportComponent, canActivate: [ECLUnlockedGuard] } ] }, - { path: 'lookups', component: ECLLookupsComponent, canActivate: [ECLUnlockedGuard] }, + { + path: 'graph', component: ECLGraphComponent, canActivate: [ECLUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'lookups' }, + { path: 'lookups', component: ECLLookupsComponent, canActivate: [ECLUnlockedGuard] }, + { path: 'queryroutes', component: ECLQueryRoutesComponent, canActivate: [ECLUnlockedGuard] } + ] + }, { path: '**', component: NotFoundComponent } ] } diff --git a/src/app/eclair/graph/graph.component.html b/src/app/eclair/graph/graph.component.html new file mode 100644 index 00000000..71c26534 --- /dev/null +++ b/src/app/eclair/graph/graph.component.html @@ -0,0 +1,17 @@ +
+ + Graph Lookups +
+
+ + + +
+ +
+
+
+
+ \ No newline at end of file diff --git a/src/app/eclair/graph/graph.component.scss b/src/app/eclair/graph/graph.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/eclair/graph/graph.component.spec.ts b/src/app/eclair/graph/graph.component.spec.ts new file mode 100644 index 00000000..e5dfb348 --- /dev/null +++ b/src/app/eclair/graph/graph.component.spec.ts @@ -0,0 +1,53 @@ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { StoreModule } from '@ngrx/store'; + +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; +import { LoggerService } from '../../shared/services/logger.service'; + +import { ECLGraphComponent } from './graph.component'; +import { SharedModule } from '../../shared/shared.module'; +import { mockDataService, mockLoggerService } from '../../shared/test-helpers/mock-services'; +import { CommonService } from '../../shared/services/common.service'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { DataService } from '../../shared/services/data.service'; + +describe('ECLGraphComponent', () => { + let component: ECLGraphComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ECLGraphComponent], + imports: [ + BrowserAnimationsModule, + SharedModule, + RouterTestingModule, + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) + ], + providers: [ + CommonService, + { provide: LoggerService, useClass: mockLoggerService }, + { provide: DataService, useClass: mockDataService } + ] + }). + compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ECLGraphComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + afterEach(() => { + TestBed.resetTestingModule(); + }); +}); diff --git a/src/app/eclair/graph/graph.component.ts b/src/app/eclair/graph/graph.component.ts new file mode 100644 index 00000000..1e0ded73 --- /dev/null +++ b/src/app/eclair/graph/graph.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit, OnDestroy } from '@angular/core'; +import { Router, ResolveEnd } from '@angular/router'; +import { Subject } from 'rxjs'; +import { takeUntil, filter } from 'rxjs/operators'; +import { faSearch } from '@fortawesome/free-solid-svg-icons'; + +@Component({ + selector: 'rtl-ecl-graph', + templateUrl: './graph.component.html', + styleUrls: ['./graph.component.scss'] +}) +export class ECLGraphComponent implements OnInit, OnDestroy { + + faSearch = faSearch; + public links = [{ link: 'lookups', name: 'Lookup' }, { link: 'queryroutes', name: 'Query Routes' }]; + public activeLink = this.links[0].link; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; + + constructor(private router: Router) { } + + ngOnInit() { + const linkFound = this.links.find((link) => this.router.url.includes(link.link)); + this.activeLink = linkFound ? linkFound.link : this.links[0].link; + this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). + subscribe((value: any) => { + const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); + this.activeLink = linkFound ? linkFound.link : this.links[0].link; + }); + } + + ngOnDestroy() { + this.unSubs.forEach((completeSub) => { + completeSub.next(null); + completeSub.complete(); + }); + } + +} diff --git a/src/app/eclair/graph/lookups/lookups.component.html b/src/app/eclair/graph/lookups/lookups.component.html new file mode 100644 index 00000000..791acc65 --- /dev/null +++ b/src/app/eclair/graph/lookups/lookups.component.html @@ -0,0 +1,41 @@ +
+
+ +
+
+ + + Node + +
+ + + + {{lookupFields[selectedFieldId]?.placeholder}} is required. + Invalid {{lookupFields[selectedFieldId]?.placeholder}}. + +
+ + +
+
+
+
+ {{lookupFields[selectedFieldId].name}} Details +
+
+
+ +

Error! Unable to find details!

+
+
+
+
+
+ +

Error! Unable to find details!

+
\ No newline at end of file diff --git a/src/app/eclair/lookups/lookups.component.scss b/src/app/eclair/graph/lookups/lookups.component.scss similarity index 100% rename from src/app/eclair/lookups/lookups.component.scss rename to src/app/eclair/graph/lookups/lookups.component.scss diff --git a/src/app/eclair/lookups/lookups.component.spec.ts b/src/app/eclair/graph/lookups/lookups.component.spec.ts similarity index 64% rename from src/app/eclair/lookups/lookups.component.spec.ts rename to src/app/eclair/graph/lookups/lookups.component.spec.ts index 384f3005..ec1b8214 100644 --- a/src/app/eclair/lookups/lookups.component.spec.ts +++ b/src/app/eclair/graph/lookups/lookups.component.spec.ts @@ -1,16 +1,19 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../store/rtl.reducers'; -import { CommonService } from '../../shared/services/common.service'; -import { LoggerService } from '../../shared/services/logger.service'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; +import { CommonService } from '../../../shared/services/common.service'; +import { LoggerService } from '../../../shared/services/logger.service'; import { ECLLookupsComponent } from './lookups.component'; -import { mockCLEffects, mockDataService, mockLoggerService, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../shared/test-helpers/mock-services'; +import { mockCLEffects, mockDataService, mockLoggerService, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../../shared/test-helpers/mock-services'; import { EffectsModule } from '@ngrx/effects'; -import { SharedModule } from '../../shared/shared.module'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { DataService } from '../../shared/services/data.service'; +import { SharedModule } from '../../../shared/shared.module'; +import { DataService } from '../../../shared/services/data.service'; describe('ECLLookupsComponent', () => { let component: ECLLookupsComponent; @@ -22,12 +25,7 @@ describe('ECLLookupsComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/eclair/lookups/lookups.component.ts b/src/app/eclair/graph/lookups/lookups.component.ts similarity index 80% rename from src/app/eclair/lookups/lookups.component.ts rename to src/app/eclair/graph/lookups/lookups.component.ts index 062b5523..5cb18ffc 100644 --- a/src/app/eclair/lookups/lookups.component.ts +++ b/src/app/eclair/graph/lookups/lookups.component.ts @@ -6,13 +6,13 @@ import { Store } from '@ngrx/store'; import { Actions } from '@ngrx/effects'; import { faSearch } from '@fortawesome/free-solid-svg-icons'; -import { APICallStatusEnum, ScreenSizeEnum } from '../../shared/services/consts-enums-functions'; -import { CommonService } from '../../shared/services/common.service'; -import { LookupNode } from '../../shared/models/eclModels'; -import { LoggerService } from '../../shared/services/logger.service'; +import { APICallStatusEnum, ECLActions, ScreenSizeEnum } from '../../../shared/services/consts-enums-functions'; +import { CommonService } from '../../../shared/services/common.service'; +import { LookupNode } from '../../../shared/models/eclModels'; +import { LoggerService } from '../../../shared/services/logger.service'; -import * as ECLActions from '../store/ecl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { peerLookup } from '../../store/ecl.actions'; @Component({ selector: 'rtl-ecl-lookups', @@ -40,7 +40,7 @@ export class ECLLookupsComponent implements OnInit, OnDestroy { public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private actions: Actions) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private actions: Actions) { this.screenSize = this.commonService.getScreenSize(); } @@ -48,7 +48,7 @@ export class ECLLookupsComponent implements OnInit, OnDestroy { this.actions.pipe( takeUntil(this.unSubs[0]), filter((action) => (action.type === ECLActions.SET_LOOKUP_ECL || action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL))). - subscribe((resLookup: ECLActions.SetLookup | ECLActions.UpdateAPICallStatus) => { + subscribe((resLookup: any) => { if (resLookup.type === ECLActions.SET_LOOKUP_ECL) { this.flgLoading[0] = true; switch (this.selectedFieldId) { @@ -56,7 +56,7 @@ export class ECLLookupsComponent implements OnInit, OnDestroy { this.nodeLookupValue = resLookup.payload[0] ? JSON.parse(JSON.stringify(resLookup.payload[0])) : { nodeid: '' }; break; case 1: - this.channelLookupValue = resLookup.payload ? JSON.parse(JSON.stringify(resLookup.payload)) : []; + this.channelLookupValue = JSON.parse(JSON.stringify(resLookup.payload)) || []; break; default: break; @@ -76,7 +76,7 @@ export class ECLLookupsComponent implements OnInit, OnDestroy { }); } - onLookup(): boolean|void { + onLookup(): boolean | void { if (!this.lookupKeyCtrl.value) { this.lookupKeyCtrl.setErrors({ required: true }); return true; @@ -92,10 +92,10 @@ export class ECLLookupsComponent implements OnInit, OnDestroy { this.channelLookupValue = []; switch (this.selectedFieldId) { case 0: - this.store.dispatch(new ECLActions.PeerLookup(this.lookupKeyCtrl.value.trim())); + this.store.dispatch(peerLookup({ payload: this.lookupKeyCtrl.value.trim() })); break; case 1: - // This.store.dispatch(new ECLActions.ChannelLookup({shortChannelID: this.lookupKey.trim(), showError: false})); + // this.store.dispatch(channelLookup({ payload: {shortChannelID: this.lookupKey.trim(), showError: false} })); break; default: break; diff --git a/src/app/eclair/lookups/node-lookup/node-lookup.component.html b/src/app/eclair/graph/lookups/node-lookup/node-lookup.component.html similarity index 75% rename from src/app/eclair/lookups/node-lookup/node-lookup.component.html rename to src/app/eclair/graph/lookups/node-lookup/node-lookup.component.html index 0014ae62..13e9b36e 100644 --- a/src/app/eclair/lookups/node-lookup/node-lookup.component.html +++ b/src/app/eclair/graph/lookups/node-lookup/node-lookup.component.html @@ -1,30 +1,35 @@ -
- +
+
-
+
+

Alias

+ {{lookupResult?.alias}}{{lookupResult?.rgbColor ? lookupResult?.rgbColor : ''}} +
+

Pub Key

{{lookupResult?.nodeId}}
- +
-
-

Signature

- {{lookupResult?.signature}} +
+

Date/Time

+ {{(lookupResult?.timestamp * 1000) | date:'dd/MMM/YYYY HH:mm'}} +
+
+

Features

+
{{nodeFeaturesEnum[activeFeature.key] || activeFeature.key}}: {{activeFeature.value | titlecase}}
- +
-
-

Alias

- {{lookupResult?.alias}}{{lookupResult?.rgbColor ? lookupResult?.rgbColor : ''}} -
-
-

Date/Time

- {{(lookupResult?.timestamp * 1000) | date:'dd/MMM/YYYY HH:mm'}} +
+

Signature

+ {{lookupResult?.signature}}
-
+ +

Addresses

diff --git a/src/app/eclair/graph/lookups/node-lookup/node-lookup.component.scss b/src/app/eclair/graph/lookups/node-lookup/node-lookup.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/eclair/lookups/node-lookup/node-lookup.component.spec.ts b/src/app/eclair/graph/lookups/node-lookup/node-lookup.component.spec.ts similarity index 82% rename from src/app/eclair/lookups/node-lookup/node-lookup.component.spec.ts rename to src/app/eclair/graph/lookups/node-lookup/node-lookup.component.spec.ts index 34f2e693..0480f1b6 100644 --- a/src/app/eclair/lookups/node-lookup/node-lookup.component.spec.ts +++ b/src/app/eclair/graph/lookups/node-lookup/node-lookup.component.spec.ts @@ -1,8 +1,8 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { LoggerService } from '../../../shared/services/logger.service'; -import { SharedModule } from '../../../shared/shared.module'; +import { LoggerService } from '../../../../shared/services/logger.service'; +import { SharedModule } from '../../../../shared/shared.module'; import { ECLNodeLookupComponent } from './node-lookup.component'; @@ -25,6 +25,7 @@ describe('ECLNodeLookupComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(ECLNodeLookupComponent); component = fixture.componentInstance; + component.lookupResult = { features: { activated: [] } }; fixture.detectChanges(); }); diff --git a/src/app/eclair/lookups/node-lookup/node-lookup.component.ts b/src/app/eclair/graph/lookups/node-lookup/node-lookup.component.ts similarity index 75% rename from src/app/eclair/lookups/node-lookup/node-lookup.component.ts rename to src/app/eclair/graph/lookups/node-lookup/node-lookup.component.ts index 5f1dd89b..1dcc6816 100644 --- a/src/app/eclair/lookups/node-lookup/node-lookup.component.ts +++ b/src/app/eclair/graph/lookups/node-lookup/node-lookup.component.ts @@ -3,8 +3,9 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { LookupNode } from '../../../shared/models/eclModels'; -import { LoggerService } from '../../../shared/services/logger.service'; +import { LookupNode } from '../../../../shared/models/eclModels'; +import { NodeFeaturesECL } from '../../../../shared/services/consts-enums-functions'; +import { LoggerService } from '../../../../shared/services/logger.service'; @Component({ selector: 'rtl-ecl-node-lookup', @@ -13,16 +14,17 @@ import { LoggerService } from '../../../shared/services/logger.service'; }) export class ECLNodeLookupComponent implements OnInit { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; @Input() lookupResult: LookupNode = {}; public addresses: any; public displayedColumns = ['address', 'actions']; + public nodeFeaturesEnum = NodeFeaturesECL; constructor(private logger: LoggerService, private snackBar: MatSnackBar) { } ngOnInit() { this.addresses = this.lookupResult.addresses ? new MatTableDataSource([...this.lookupResult.addresses]) : new MatTableDataSource([]); - this.addresses.data = this.lookupResult.addresses ? this.lookupResult.addresses : []; + this.addresses.data = this.lookupResult.addresses || []; this.addresses.sort = this.sort; this.addresses.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); } diff --git a/src/app/eclair/transactions/query-routes/query-routes.component.html b/src/app/eclair/graph/query-routes/query-routes.component.html similarity index 98% rename from src/app/eclair/transactions/query-routes/query-routes.component.html rename to src/app/eclair/graph/query-routes/query-routes.component.html index 70c9607c..9c103c72 100644 --- a/src/app/eclair/transactions/query-routes/query-routes.component.html +++ b/src/app/eclair/graph/query-routes/query-routes.component.html @@ -12,7 +12,7 @@ Amount is required. -
+
diff --git a/src/app/eclair/transactions/query-routes/query-routes.component.scss b/src/app/eclair/graph/query-routes/query-routes.component.scss similarity index 100% rename from src/app/eclair/transactions/query-routes/query-routes.component.scss rename to src/app/eclair/graph/query-routes/query-routes.component.scss diff --git a/src/app/eclair/transactions/query-routes/query-routes.component.spec.ts b/src/app/eclair/graph/query-routes/query-routes.component.spec.ts similarity index 82% rename from src/app/eclair/transactions/query-routes/query-routes.component.spec.ts rename to src/app/eclair/graph/query-routes/query-routes.component.spec.ts index 8b632d48..68229def 100644 --- a/src/app/eclair/transactions/query-routes/query-routes.component.spec.ts +++ b/src/app/eclair/graph/query-routes/query-routes.component.spec.ts @@ -7,7 +7,10 @@ import { DataService } from '../../../shared/services/data.service'; import { LoggerService } from '../../../shared/services/logger.service'; import { mockDataService, mockLoggerService, mockECLEffects } from '../../../shared/test-helpers/mock-services'; import { SharedModule } from '../../../shared/shared.module'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { ECLEffects } from '../../store/ecl.effects'; import { ECLQueryRoutesComponent } from './query-routes.component'; @@ -22,12 +25,7 @@ describe('ECLQueryRoutesComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/transactions/query-routes/query-routes.component.ts b/src/app/eclair/graph/query-routes/query-routes.component.ts similarity index 66% rename from src/app/eclair/transactions/query-routes/query-routes.component.ts rename to src/app/eclair/graph/query-routes/query-routes.component.ts index 5f82b60d..66f8766d 100644 --- a/src/app/eclair/transactions/query-routes/query-routes.component.ts +++ b/src/app/eclair/graph/query-routes/query-routes.component.ts @@ -11,9 +11,9 @@ import { Route } from '../../../shared/models/eclModels'; import { CommonService } from '../../../shared/services/common.service'; import { ECLEffects } from '../../store/ecl.effects'; -import * as ECLActions from '../../store/ecl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { getQueryRoutes } from '../../store/ecl.actions'; @Component({ selector: 'rtl-ecl-query-routes', @@ -22,7 +22,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class ECLQueryRoutesComponent implements OnInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; @ViewChild('queryRoutesForm', { static: true }) form: any; public nodeId = ''; public amount = 0; @@ -36,7 +36,7 @@ export class ECLQueryRoutesComponent implements OnInit, OnDestroy { public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private store: Store, private eclEffects: ECLEffects, private commonService: CommonService) { + constructor(private store: Store, private eclEffects: ECLEffects, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -55,29 +55,27 @@ export class ECLQueryRoutesComponent implements OnInit, OnDestroy { ngOnInit() { this.qrHops = new MatTableDataSource([]); - this.eclEffects.setQueryRoutes. - pipe(takeUntil(this.unSubs[1])). - subscribe((queryRoute) => { - this.qrHops.data = []; - if (queryRoute) { - this.flgLoading[0] = false; - this.qrHops = new MatTableDataSource([...queryRoute]); - this.qrHops.data = queryRoute; - } else { - this.flgLoading[0] = 'error'; - } - this.qrHops.sort = this.sort; - this.qrHops.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); - }); + this.eclEffects.setQueryRoutes.pipe(takeUntil(this.unSubs[1])).subscribe((queryRoute) => { + this.qrHops.data = []; + if (queryRoute && queryRoute.length && queryRoute.length > 0) { + this.flgLoading[0] = false; + this.qrHops = new MatTableDataSource([...queryRoute]); + this.qrHops.data = queryRoute; + } else { + this.flgLoading[0] = 'error'; + } + this.qrHops.sort = this.sort; + this.qrHops.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); + }); } - onQueryRoutes(): boolean|void { + onQueryRoutes(): boolean | void { if (!this.nodeId || !this.amount) { return true; } this.qrHops.data = []; this.flgLoading[0] = true; - this.store.dispatch(new ECLActions.GetQueryRoutes({ nodeId: this.nodeId, amount: this.amount * 1000 })); + this.store.dispatch(getQueryRoutes({ payload: { nodeId: this.nodeId, amount: this.amount * 1000 } })); } resetData() { @@ -93,11 +91,15 @@ export class ECLQueryRoutesComponent implements OnInit, OnDestroy { [{ key: 'alias', value: selHop.alias, title: 'Alias', width: 100, type: DataTypeEnum.STRING }], [{ key: 'nodeId', value: selHop.nodeId, title: 'Node ID', width: 100, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Route Information', - message: reorderedHop - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Route Information', + message: reorderedHop + } + } + })); } ngOnDestroy() { diff --git a/src/app/eclair/home/home.component.html b/src/app/eclair/home/home.component.html index 5929c6eb..dca1400c 100644 --- a/src/app/eclair/home/home.component.html +++ b/src/app/eclair/home/home.component.html @@ -1,7 +1,7 @@ -
+
- - {{apisCallStatus?.FetchInfo.status === apiCallStatusEnum.COMPLETED ? 'Welcome ' + information.alias + '! Your node is up and running.' : apisCallStatus?.FetchInfo.status === apiCallStatusEnum.INITIATED ? 'Wait! Getting your node information...' : 'Error! Please check the server connection.'}} + + {{apiCallStatusNodeInfo.status === apiCallStatusEnum.COMPLETED ? 'Welcome ' + information.alias + '! Your node is up and running.' : apiCallStatusNodeInfo.status === apiCallStatusEnum.INITIATED ? 'Wait! Getting your node information...' : 'Error! Please check the server connection.'}}
@@ -28,15 +28,15 @@ + 'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) || + (card.id === 'balance' && (apiCallStatusAllChannels.status === apiCallStatusEnum.ERROR || apiCallStatusOCBal.status === apiCallStatusEnum.ERROR)) || + ((card.id === 'capacity' || card.id === 'status') && apiCallStatusAllChannels.status === apiCallStatusEnum.ERROR) || + (card.id === 'fee' && apiCallStatusFees.status === apiCallStatusEnum.ERROR)}">
@@ -78,13 +78,13 @@ + 'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) || + (card.id === 'balance' && (apiCallStatusAllChannels.status === apiCallStatusEnum.ERROR || apiCallStatusOCBal.status === apiCallStatusEnum.ERROR)) || + ((card.id === 'inboundLiq' || card.id === 'outboundLiq') && apiCallStatusAllChannels.status === apiCallStatusEnum.ERROR)}">
diff --git a/src/app/eclair/home/home.component.spec.ts b/src/app/eclair/home/home.component.spec.ts index c1d15860..aa1c984f 100644 --- a/src/app/eclair/home/home.component.spec.ts +++ b/src/app/eclair/home/home.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { CommonService } from '../../shared/services/common.service'; import { LoggerService } from '../../shared/services/logger.service'; @@ -27,12 +30,7 @@ describe('ECLHomeComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/eclair/home/home.component.ts b/src/app/eclair/home/home.component.ts index debf812e..844598e0 100644 --- a/src/app/eclair/home/home.component.ts +++ b/src/app/eclair/home/home.component.ts @@ -1,21 +1,20 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; import { Router } from '@angular/router'; import { Subject } from 'rxjs'; -import { takeUntil, filter } from 'rxjs/operators'; +import { takeUntil, withLatestFrom } from 'rxjs/operators'; import { Store } from '@ngrx/store'; -import { Actions } from '@ngrx/effects'; import { faSmile, faFrown } from '@fortawesome/free-regular-svg-icons'; import { faAngleDoubleDown, faAngleDoubleUp, faChartPie, faBolt, faServer, faNetworkWired } from '@fortawesome/free-solid-svg-icons'; import { LoggerService } from '../../shared/services/logger.service'; import { CommonService } from '../../shared/services/common.service'; import { UserPersonaEnum, ScreenSizeEnum, APICallStatusEnum } from '../../shared/services/consts-enums-functions'; -import { GetInfo, Channel, Fees, OnChainBalance, ChannelsStatus } from '../../shared/models/eclModels'; -import { ApiCallsListECL } from '../../shared/models/apiCallsPayload'; +import { GetInfo, Channel, Fees, OnChainBalance, ChannelsStatus, LightningBalance } from '../../shared/models/eclModels'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; import { SelNodeChild } from '../../shared/models/RTLconfig'; -import * as fromRTLReducer from '../../store/rtl.reducers'; -import * as ECLActions from '../store/ecl.actions'; +import { RTLState } from '../../store/rtl.state'; +import { allChannelsInfo, eclNodeSettings, fees, nodeInfoStatus, onchainBalance } from '../store/ecl.selector'; @Component({ selector: 'rtl-ecl-home', @@ -53,11 +52,14 @@ export class ECLHomeComponent implements OnInit, OnDestroy { public merchantCardHeight = '65px'; public sortField = 'Balance Score'; public errorMessages = ['', '', '', '']; - public apisCallStatus: ApiCallsListECL = null; + public apiCallStatusNodeInfo: ApiCallStatusPayload = { status: APICallStatusEnum.COMPLETED }; + public apiCallStatusFees: ApiCallStatusPayload = { status: APICallStatusEnum.COMPLETED }; + public apiCallStatusOCBal: ApiCallStatusPayload = { status: APICallStatusEnum.COMPLETED }; + public apiCallStatusAllChannels: ApiCallStatusPayload = { status: APICallStatusEnum.COMPLETED }; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private actions: Actions, private commonService: CommonService, private router: Router) { + constructor(private logger: LoggerService, private store: Store, private commonService: CommonService, private router: Router) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.operatorCards = [ @@ -88,8 +90,6 @@ export class ECLHomeComponent implements OnInit, OnDestroy { { id: 'outboundLiq', goTo: 'Channels', link: '/ecl/connections', icon: this.faAngleDoubleUp, title: 'Out-Bound Liquidity', cols: 3, rows: 8 } ]; } else { - this.operatorCardHeight = ((window.screen.height - 200) / 2) + 'px'; - this.merchantCardHeight = ((window.screen.height - 210) / 10) + 'px'; this.operatorCards = [ { id: 'node', icon: this.faServer, title: 'Node Information', cols: 3, rows: 1 }, { id: 'balance', goTo: 'On-Chain', link: '/ecl/onchain', icon: this.faChartPie, title: 'Balances', cols: 3, rows: 1 }, @@ -107,37 +107,53 @@ export class ECLHomeComponent implements OnInit, OnDestroy { } ngOnInit() { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.errorMessages = ['', '', '', '']; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) { - this.errorMessages[0] = (typeof (this.apisCallStatus.FetchInfo.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchInfo.message) : this.apisCallStatus.FetchInfo.message; + this.store.select(eclNodeSettings).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeSettings) => { + this.selNode = nodeSettings; + }); + this.store.select(nodeInfoStatus).pipe(takeUntil(this.unSubs[1])). + subscribe((selNodeInfoStatusSelector: { information: GetInfo, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[0] = ''; + this.apiCallStatusNodeInfo = selNodeInfoStatusSelector.apiCallStatus; + if (this.apiCallStatusNodeInfo.status === APICallStatusEnum.ERROR) { + this.errorMessages[0] = (typeof (this.apiCallStatusNodeInfo.message) === 'object') ? JSON.stringify(this.apiCallStatusNodeInfo.message) : this.apiCallStatusNodeInfo.message; } - if (rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) { - this.errorMessages[1] = (typeof (this.apisCallStatus.FetchFees.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchFees.message) : this.apisCallStatus.FetchFees.message; + this.information = selNodeInfoStatusSelector.information; + }); + + this.store.select(fees).pipe(takeUntil(this.unSubs[2])). + subscribe((feesSelector: { fees: Fees, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[1] = ''; + this.apiCallStatusFees = feesSelector.apiCallStatus; + if (this.apiCallStatusFees.status === APICallStatusEnum.ERROR) { + this.errorMessages[1] = (typeof (this.apiCallStatusFees.message) === 'object') ? JSON.stringify(this.apiCallStatusFees.message) : this.apiCallStatusFees.message; } - if (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) { - this.errorMessages[2] = (typeof (this.apisCallStatus.FetchChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchChannels.message) : this.apisCallStatus.FetchChannels.message; + this.fees = feesSelector.fees; + }); + this.store.select(allChannelsInfo).pipe(takeUntil(this.unSubs[3]), + withLatestFrom(this.store.select(onchainBalance))). + subscribe(([allChannelsSelector, oCBalanceSelector]: [({ activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], lightningBalance: LightningBalance, channelsStatus: ChannelsStatus, apiCallStatus: ApiCallStatusPayload }), ({ onchainBalance: OnChainBalance, apiCallStatus: ApiCallStatusPayload })]) => { + this.errorMessages[2] = ''; + this.errorMessages[3] = ''; + this.apiCallStatusAllChannels = allChannelsSelector.apiCallStatus; + this.apiCallStatusOCBal = oCBalanceSelector.apiCallStatus; + if (this.apiCallStatusAllChannels.status === APICallStatusEnum.ERROR) { + this.errorMessages[2] = (typeof (this.apiCallStatusAllChannels.message) === 'object') ? JSON.stringify(this.apiCallStatusAllChannels.message) : this.apiCallStatusAllChannels.message; } - if (rtlStore.apisCallStatus.FetchOnchainBalance.status === APICallStatusEnum.ERROR) { - this.errorMessages[3] = (typeof (this.apisCallStatus.FetchOnchainBalance.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchOnchainBalance.message) : this.apisCallStatus.FetchOnchainBalance.message; + if (this.apiCallStatusOCBal.status === APICallStatusEnum.ERROR) { + this.errorMessages[3] = (typeof (this.apiCallStatusOCBal.message) === 'object') ? JSON.stringify(this.apiCallStatusOCBal.message) : this.apiCallStatusOCBal.message; } - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - this.fees = rtlStore.fees; - this.channels = rtlStore.activeChannels; - this.onchainBalance = rtlStore.onchainBalance; + this.channels = allChannelsSelector.activeChannels; + this.onchainBalance = oCBalanceSelector.onchainBalance; this.balances.onchain = this.onchainBalance.total; - this.balances.lightning = rtlStore.lightningBalance.localBalance; + this.balances.lightning = allChannelsSelector.lightningBalance.localBalance; this.balances.total = this.balances.lightning + this.balances.onchain; this.balances = Object.assign({}, this.balances); - const local = (rtlStore.lightningBalance.localBalance) ? +rtlStore.lightningBalance.localBalance : 0; - const remote = (rtlStore.lightningBalance.remoteBalance) ? +rtlStore.lightningBalance.remoteBalance : 0; + const local = (allChannelsSelector.lightningBalance.localBalance) ? +allChannelsSelector.lightningBalance.localBalance : 0; + const remote = (allChannelsSelector.lightningBalance.remoteBalance) ? +allChannelsSelector.lightningBalance.remoteBalance : 0; const total = local + remote; this.channelBalances = { localBalance: local, remoteBalance: remote, balancedness: +(1 - Math.abs((local - remote) / total)).toFixed(3) }; - this.channelsStatus = rtlStore.channelsStatus; + this.channelsStatus = allChannelsSelector.channelsStatus; this.totalInboundLiquidity = 0; this.totalOutboundLiquidity = 0; this.allChannelsCapacity = JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.channels, 'balancedness'))); @@ -147,7 +163,7 @@ export class ECLHomeComponent implements OnInit, OnDestroy { this.totalInboundLiquidity = this.totalInboundLiquidity + Math.ceil(channel.toRemote); this.totalOutboundLiquidity = this.totalOutboundLiquidity + Math.floor(channel.toLocal); }); - this.logger.info(rtlStore); + this.logger.info(allChannelsSelector); }); } diff --git a/src/app/eclair/lookups/lookups.component.html b/src/app/eclair/lookups/lookups.component.html deleted file mode 100644 index 5eb423ab..00000000 --- a/src/app/eclair/lookups/lookups.component.html +++ /dev/null @@ -1,47 +0,0 @@ -
-
- - Graph Lookups -
-
- - -
-
- - - Node - -
- - - - {{lookupFields[selectedFieldId]?.placeholder}} is required. - Invalid {{lookupFields[selectedFieldId]?.placeholder}}. - -
- - -
- -
-
- {{lookupFields[selectedFieldId].name}} Details -
-
-
- -

Error! Unable to find details!

-
-
-
-
-
-
- -

Error! Unable to find details!

-
\ No newline at end of file diff --git a/src/app/eclair/on-chain/on-chain-receive/on-chain-receive.component.spec.ts b/src/app/eclair/on-chain/on-chain-receive/on-chain-receive.component.spec.ts index ec899bb5..04195b94 100644 --- a/src/app/eclair/on-chain/on-chain-receive/on-chain-receive.component.spec.ts +++ b/src/app/eclair/on-chain/on-chain-receive/on-chain-receive.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; import { mockECLEffects } from '../../../shared/test-helpers/mock-services'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { ECLEffects } from '../../store/ecl.effects'; import { ECLOnChainReceiveComponent } from './on-chain-receive.component'; @@ -14,12 +17,7 @@ describe('ECLOnChainReceiveComponent', () => { TestBed.configureTestingModule({ declarations: [ECLOnChainReceiveComponent], imports: [ - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: ECLEffects, useClass: mockECLEffects } diff --git a/src/app/eclair/on-chain/on-chain-receive/on-chain-receive.component.ts b/src/app/eclair/on-chain/on-chain-receive/on-chain-receive.component.ts index d121d7fc..e2758a92 100644 --- a/src/app/eclair/on-chain/on-chain-receive/on-chain-receive.component.ts +++ b/src/app/eclair/on-chain/on-chain-receive/on-chain-receive.component.ts @@ -5,9 +5,9 @@ import { Store } from '@ngrx/store'; import { OnChainGeneratedAddressComponent } from '../../../shared/components/data-modal/on-chain-generated-address/on-chain-generated-address.component'; import { ECLEffects } from '../../store/ecl.effects'; -import * as ECLActions from '../../store/ecl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { getNewAddress } from '../../store/ecl.actions'; @Component({ selector: 'rtl-ecl-on-chain-receive', @@ -18,22 +18,24 @@ export class ECLOnChainReceiveComponent { public newAddress = ''; - constructor(private store: Store, private eclEffects: ECLEffects) {} + constructor(private store: Store, private eclEffects: ECLEffects) { } onGenerateAddress() { - this.store.dispatch(new ECLActions.GetNewAddress()); - this.eclEffects.setNewAddress.pipe(take(1)). - subscribe((newAddress) => { - this.newAddress = newAddress; - this.store.dispatch(new RTLActions.OpenAlert({ - width: '58%', - data: { - address: this.newAddress, - addressType: '', - component: OnChainGeneratedAddressComponent + this.store.dispatch(getNewAddress()); + this.eclEffects.setNewAddress.pipe(take(1)).subscribe((newAddress) => { + this.newAddress = newAddress; + setTimeout(() => { + this.store.dispatch(openAlert({ + payload: { + data: { + address: this.newAddress, + addressType: '', + component: OnChainGeneratedAddressComponent + } } })); - }); + }, 0); + }); } } diff --git a/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.html b/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.html index 6e3be66d..febc8a1d 100644 --- a/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.html +++ b/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.html @@ -34,8 +34,8 @@ {{sendFundError}}
- - + +
diff --git a/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts b/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts index 78a8615b..1f26acb5 100644 --- a/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts +++ b/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -23,12 +26,7 @@ describe('ECLOnChainSendModalComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts b/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts index 92c8a82b..94df4ad7 100644 --- a/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts +++ b/src/app/eclair/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts @@ -9,13 +9,14 @@ import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { SelNodeChild, GetInfoRoot, RTLConfiguration } from '../../../shared/models/RTLconfig'; import { GetInfo, OnChainBalance, SendPaymentOnChain } from '../../../shared/models/eclModels'; -import { CURRENCY_UNITS, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, ADDRESS_TYPES, APICallStatusEnum, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; +import { CURRENCY_UNITS, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, ADDRESS_TYPES, APICallStatusEnum, UI_MESSAGES, ECLActions } from '../../../shared/services/consts-enums-functions'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; -import * as ECLActions from '../../store/ecl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openSnackBar } from '../../../store/rtl.actions'; +import { sendOnchainFunds } from '../../store/ecl.actions'; +import { rootSelectedNode } from '../../../store/rtl.selector'; @Component({ selector: 'rtl-ecl-on-chain-send-modal', @@ -27,8 +28,6 @@ export class ECLOnChainSendModalComponent implements OnInit, OnDestroy { @ViewChild('form', { static: true }) form: any; public faExclamationTriangle = faExclamationTriangle; public selNode: SelNodeChild = {}; - public appConfig: RTLConfiguration; - public nodeData: GetInfoRoot; public addressTypes = []; public selectedAddress = ADDRESS_TYPES[1]; public blockchainBalance: OnChainBalance = {}; @@ -45,25 +44,21 @@ export class ECLOnChainSendModalComponent implements OnInit, OnDestroy { public amountError = 'Amount is Required.'; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, private logger: LoggerService, private store: Store, private commonService: CommonService, private decimalPipe: DecimalPipe, private actions: Actions) { } + constructor(public dialogRef: MatDialogRef, private logger: LoggerService, private store: Store, private commonService: CommonService, private decimalPipe: DecimalPipe, private actions: Actions) { } ngOnInit() { - this.store.select('root'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rootStore) => { - this.fiatConversion = rootStore.selNode.settings.fiatConversion; - this.amountUnits = rootStore.selNode.settings.currencyUnits; - this.appConfig = rootStore.appConfig; - this.nodeData = rootStore.nodeData; - this.logger.info(rootStore); - }); + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[0])).subscribe((selNode) => { + this.fiatConversion = selNode.settings.fiatConversion; + this.amountUnits = selNode.settings.currencyUnits; + this.logger.info(selNode); + }); this.actions.pipe( takeUntil(this.unSubs[1]), filter((action) => action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL || action.type === ECLActions.SEND_ONCHAIN_FUNDS_RES_ECL) ). - subscribe((action: ECLActions.UpdateAPICallStatus | ECLActions.SendOnchainFundsRes) => { + subscribe((action: any) => { if (action.type === ECLActions.SEND_ONCHAIN_FUNDS_RES_ECL) { - this.store.dispatch(new RTLActions.OpenSnackBar('Fund Sent Successfully!')); + this.store.dispatch(openSnackBar({ payload: 'Fund Sent Successfully!' })); this.dialogRef.close(); } if (action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL && action.payload.status === APICallStatusEnum.ERROR && action.payload.action === 'SendOnchainFunds') { @@ -84,7 +79,7 @@ export class ECLOnChainSendModalComponent implements OnInit, OnDestroy { next: (data) => { this.transaction.amount = parseInt(data[CurrencyUnitEnum.SATS]); this.selAmountUnit = CurrencyUnitEnum.SATS; - this.store.dispatch(new ECLActions.SendOnchainFunds(this.transaction)); + this.store.dispatch(sendOnchainFunds({ payload: this.transaction })); }, error: (err) => { this.transaction.amount = null; this.selAmountUnit = CurrencyUnitEnum.SATS; @@ -92,7 +87,7 @@ export class ECLOnChainSendModalComponent implements OnInit, OnDestroy { } }); } else { - this.store.dispatch(new ECLActions.SendOnchainFunds(this.transaction)); + this.store.dispatch(sendOnchainFunds({ payload: this.transaction })); } } diff --git a/src/app/eclair/on-chain/on-chain-send/on-chain-send.component.spec.ts b/src/app/eclair/on-chain/on-chain-send/on-chain-send.component.spec.ts index 28720188..b852671f 100644 --- a/src/app/eclair/on-chain/on-chain-send/on-chain-send.component.spec.ts +++ b/src/app/eclair/on-chain/on-chain-send/on-chain-send.component.spec.ts @@ -3,7 +3,10 @@ import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; import { SharedModule } from '../../../shared/shared.module'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { ECLOnChainSendComponent } from './on-chain-send.component'; describe('ECLOnChainSendComponent', () => { @@ -16,12 +19,7 @@ describe('ECLOnChainSendComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/eclair/on-chain/on-chain-send/on-chain-send.component.ts b/src/app/eclair/on-chain/on-chain-send/on-chain-send.component.ts index bd499024..3c606033 100644 --- a/src/app/eclair/on-chain/on-chain-send/on-chain-send.component.ts +++ b/src/app/eclair/on-chain/on-chain-send/on-chain-send.component.ts @@ -6,8 +6,8 @@ import { Store } from '@ngrx/store'; import { ECLOnChainSendModalComponent } from '../on-chain-send-modal/on-chain-send-modal.component'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; @Component({ selector: 'rtl-ecl-on-chain-send', @@ -19,7 +19,7 @@ export class ECLOnChainSendComponent implements OnInit, OnDestroy { public sweepAll = false; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private store: Store, private activatedRoute: ActivatedRoute) {} + constructor(private store: Store, private activatedRoute: ActivatedRoute) { } ngOnInit() { this.activatedRoute.data.pipe(takeUntil(this.unSubs[0])).subscribe((routeData) => { @@ -28,10 +28,14 @@ export class ECLOnChainSendComponent implements OnInit, OnDestroy { } openSendFundsModal() { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - sweepAll: this.sweepAll, - component: ECLOnChainSendModalComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + sweepAll: this.sweepAll, + component: ECLOnChainSendModalComponent + } + } + })); } ngOnDestroy() { diff --git a/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.html b/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.html index 168e47de..3a50b9c7 100644 --- a/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.html +++ b/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.html @@ -5,12 +5,12 @@ Transaction History
- +
- +
@@ -52,9 +52,9 @@ diff --git a/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.spec.ts b/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.spec.ts index 8ccbfa10..d89993ad 100644 --- a/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.spec.ts +++ b/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('ECLOnChainTransactionHistoryComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.ts b/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.ts index c540f971..0c1d7278 100644 --- a/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.ts +++ b/src/app/eclair/on-chain/on-chain-transaction-history/on-chain-transaction-history.component.ts @@ -9,14 +9,15 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { Transaction } from '../../../shared/models/eclModels'; -import { ApiCallsListECL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; -import * as ECLActions from '../../store/ecl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { fetchTransactions } from '../../store/ecl.actions'; +import { transactions } from '../../store/ecl.selector'; @Component({ selector: 'rtl-ecl-on-chain-transaction-history', @@ -28,8 +29,8 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class ECLOnChainTransactionHistoryComponent implements OnInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; faHistory = faHistory; public displayedColumns: any[] = []; public listTransactions: any; @@ -39,11 +40,12 @@ export class ECLOnChainTransactionHistoryComponent implements OnInit, OnDestroy public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListECL = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unsub: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -61,24 +63,23 @@ export class ECLOnChainTransactionHistoryComponent implements OnInit, OnDestroy } ngOnInit() { - this.store.dispatch(new ECLActions.FetchTransactions()); - this.store.select('ecl'). - pipe(takeUntil(this.unsub[0])). - subscribe((rtlStore) => { + this.store.dispatch(fetchTransactions()); + this.store.select(transactions).pipe(takeUntil(this.unsub[0])). + subscribe((transactionsSelector: { transactions: Transaction[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchTransactions.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchPayments.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPayments.message) : this.apisCallStatus.FetchPayments.message; + this.apiCallStatus = transactionsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - if (rtlStore.transactions) { - this.loadTransactionsTable(rtlStore.transactions); + if (transactionsSelector.transactions) { + this.loadTransactionsTable(transactionsSelector.transactions); } - this.logger.info(rtlStore); + this.logger.info(transactionsSelector); }); } - applyFilter(selFilter: any) { - this.listTransactions.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.listTransactions.filter = this.selFilter.trim().toLowerCase(); } onTransactionClick(selTransaction: Transaction, event: any) { @@ -86,16 +87,20 @@ export class ECLOnChainTransactionHistoryComponent implements OnInit, OnDestroy [{ key: 'blockHash', value: selTransaction.blockHash, title: 'Block Hash', width: 100 }], [{ key: 'txid', value: selTransaction.txid, title: 'Transaction ID', width: 100 }], [{ key: 'timestamp', value: selTransaction.timestamp, title: 'Date/Time', width: 50, type: DataTypeEnum.DATE_TIME }, - { key: 'confirmations', value: selTransaction.confirmations, title: 'Number of Confirmations', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'confirmations', value: selTransaction.confirmations, title: 'Number of Confirmations', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'fees', value: selTransaction.fees, title: 'Fees (Sats)', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'amount', value: selTransaction.amount, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'amount', value: selTransaction.amount, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'address', value: selTransaction.address, title: 'Address', width: 100, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Transaction Information', - message: reorderedTransactions - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Transaction Information', + message: reorderedTransactions + } + } + })); } loadTransactionsTable(transactions: Transaction[]) { @@ -107,6 +112,7 @@ export class ECLOnChainTransactionHistoryComponent implements OnInit, OnDestroy return newRowData.includes(fltr); }; this.listTransactions.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.listTransactions); } diff --git a/src/app/eclair/on-chain/on-chain.component.spec.ts b/src/app/eclair/on-chain/on-chain.component.spec.ts index 8c4abc0d..187229b9 100644 --- a/src/app/eclair/on-chain/on-chain.component.spec.ts +++ b/src/app/eclair/on-chain/on-chain.component.spec.ts @@ -9,7 +9,10 @@ import { LoggerService } from '../../shared/services/logger.service'; import { mockDataService, mockLoggerService } from '../../shared/test-helpers/mock-services'; import { SharedModule } from '../../shared/shared.module'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { ECLOnChainTransactionHistoryComponent } from './on-chain-transaction-history/on-chain-transaction-history.component'; import { ECLOnChainComponent } from './on-chain.component'; @@ -24,12 +27,7 @@ describe('ECLOnChainComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/on-chain/on-chain.component.ts b/src/app/eclair/on-chain/on-chain.component.ts index 744432ee..1c8c4fb6 100644 --- a/src/app/eclair/on-chain/on-chain.component.ts +++ b/src/app/eclair/on-chain/on-chain.component.ts @@ -7,8 +7,11 @@ import { faExchangeAlt, faChartPie } from '@fortawesome/free-solid-svg-icons'; import { ECLOnChainSendModalComponent } from './on-chain-send-modal/on-chain-send-modal.component'; import { SelNodeChild } from '../../shared/models/RTLconfig'; -import * as RTLActions from '../../store/rtl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { openAlert } from '../../store/rtl.actions'; +import { eclNodeSettings, onchainBalance } from '../store/ecl.selector'; +import { OnChainBalance } from '../../shared/models/eclModels'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-ecl-on-chain', @@ -25,28 +28,34 @@ export class ECLOnChainComponent implements OnInit, OnDestroy { public activeLink = this.links[0].link; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private router: Router) {} + constructor(private store: Store, private router: Router) { } ngOnInit() { const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; }); - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.balances = [{ title: 'Total Balance', dataValue: rtlStore.onchainBalance.total || 0 }, { title: 'Confirmed', dataValue: rtlStore.onchainBalance.confirmed }, { title: 'Unconfirmed', dataValue: rtlStore.onchainBalance.unconfirmed }]; + this.store.select(eclNodeSettings).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeSettings) => { + this.selNode = nodeSettings; + }); + this.store.select(onchainBalance).pipe(takeUntil(this.unSubs[2])). + subscribe((oCBalanceSelector: { onchainBalance: OnChainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.balances = [{ title: 'Total Balance', dataValue: oCBalanceSelector.onchainBalance.total || 0 }, { title: 'Confirmed', dataValue: oCBalanceSelector.onchainBalance.confirmed }, { title: 'Unconfirmed', dataValue: oCBalanceSelector.onchainBalance.unconfirmed }]; }); } openSendFundsModal() { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - component: ECLOnChainSendModalComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + component: ECLOnChainSendModalComponent + } + } + })); } ngOnDestroy() { diff --git a/src/app/eclair/peers-channels/channels/channel-information-modal/channel-information.component.html b/src/app/eclair/peers-channels/channels/channel-information-modal/channel-information.component.html index 7a2fd78d..33771042 100644 --- a/src/app/eclair/peers-channels/channels/channel-information-modal/channel-information.component.html +++ b/src/app/eclair/peers-channels/channels/channel-information-modal/channel-information.component.html @@ -23,21 +23,21 @@ {{channel.state | titlecase}} - +

Channel ID

{{channel.channelId}}
- +

Peer Public Key

{{channel.nodeId}}
- +

Private

@@ -85,12 +85,12 @@
- - - + +
diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.html b/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.html index eedb54bc..7e71fb99 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.html +++ b/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.html @@ -6,7 +6,7 @@
- +
-

No transaction available.

-

Getting transactions...

-

{{errorMessage}}

+

No transaction available.

+

Getting transactions...

+

{{errorMessage}}

@@ -70,9 +70,9 @@ diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.spec.ts b/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.spec.ts index 9c4b16bc..bd7960e0 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.spec.ts +++ b/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; @@ -22,12 +25,7 @@ describe('ECLChannelInactiveTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.ts b/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.ts index 94a3d13d..b148256e 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.ts +++ b/src/app/eclair/peers-channels/channels/channels-tables/channel-inactive-table/channel-inactive-table.component.ts @@ -7,17 +7,18 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; -import { Channel, GetInfo } from '../../../../../shared/models/eclModels'; +import { Channel, ChannelsStatus, GetInfo, LightningBalance, OnChainBalance, Peer } from '../../../../../shared/models/eclModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, FEE_RATE_TYPES, AlertTypeEnum, APICallStatusEnum } from '../../../../../shared/services/consts-enums-functions'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { CommonService } from '../../../../../shared/services/common.service'; import { ECLChannelInformationComponent } from '../../channel-information-modal/channel-information.component'; import { RTLEffects } from '../../../../../store/rtl.effects'; -import * as ECLActions from '../../../../store/ecl.actions'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; -import { ApiCallsListECL } from '../../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../../shared/models/apiCallsPayload'; +import { openAlert, openConfirmation } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { closeChannel } from '../../../../store/ecl.actions'; +import { allChannelsInfo, eclNodeInformation, onchainBalance, peers } from '../../../../store/ecl.selector'; @Component({ selector: 'rtl-ecl-channel-inactive-table', @@ -29,8 +30,8 @@ import { ApiCallsListECL } from '../../../../../shared/models/apiCallsPayload'; }) export class ECLChannelInactiveTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public faEye = faEye; public faEyeSlash = faEyeSlash public inactiveChannels: Channel[]; @@ -48,11 +49,11 @@ export class ECLChannelInactiveTableComponent implements OnInit, AfterViewInit, public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListECL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -70,20 +71,28 @@ export class ECLChannelInactiveTableComponent implements OnInit, AfterViewInit, } ngOnInit() { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(allChannelsInfo).pipe(takeUntil(this.unSubs[0])). + subscribe((allChannelsSelector: ({ activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], lightningBalance: LightningBalance, channelsStatus: ChannelsStatus, apiCallStatus: ApiCallStatusPayload })) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchChannels.message) : this.apisCallStatus.FetchChannels.message; + this.apiCallStatus = allChannelsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.information = rtlStore.information; - this.numPeers = (rtlStore.peers && rtlStore.peers.length) ? rtlStore.peers.length : 0; - this.totalBalance = rtlStore.onchainBalance.total; - this.inactiveChannels = rtlStore.inactiveChannels; + this.inactiveChannels = allChannelsSelector.inactiveChannels; this.loadChannelsTable(); - this.logger.info(rtlStore); + this.logger.info(allChannelsSelector); + }); + this.store.select(eclNodeInformation).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[2])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.numPeers = (peersSelector.peers && peersSelector.peers.length) ? peersSelector.peers.length : 0; + }); + this.store.select(onchainBalance).pipe(takeUntil(this.unSubs[3])). + subscribe((ocBalSelector: { onchainBalance: OnChainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.totalBalance = ocBalSelector.onchainBalance.total; }); } @@ -95,20 +104,26 @@ export class ECLChannelInactiveTableComponent implements OnInit, AfterViewInit, onChannelClose(channelToClose: Channel, forceClose: boolean) { const alertTitle = (forceClose) ? 'Force Close Channel' : 'Close Channel'; - const titleMessage = (forceClose) ? ('Force closing channel: ' + channelToClose.channelId) : ('Closing channel: ' + channelToClose.channelId); const yesBtnText = (forceClose) ? 'Force Close' : 'Close Channel'; - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: alertTitle, - titleMessage: titleMessage, - noBtnText: 'Cancel', - yesBtnText: yesBtnText - } })); + const titleMessage = (forceClose) ? + ('Force closing channel: ' + ((!channelToClose.alias && !channelToClose.shortChannelId) ? channelToClose.channelId : (channelToClose.alias && channelToClose.shortChannelId) ? channelToClose.alias + ' (' + channelToClose.shortChannelId + ')' : channelToClose.alias ? channelToClose.alias : channelToClose.shortChannelId)) : + ('Closing channel: ' + ((!channelToClose.alias && !channelToClose.shortChannelId) ? channelToClose.channelId : (channelToClose.alias && channelToClose.shortChannelId) ? channelToClose.alias + ' (' + channelToClose.shortChannelId + ')' : channelToClose.alias ? channelToClose.alias : channelToClose.shortChannelId)); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: alertTitle, + titleMessage: titleMessage, + noBtnText: 'Cancel', + yesBtnText: yesBtnText + } + } + })); this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[1])). + pipe(takeUntil(this.unSubs[4])). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new ECLActions.CloseChannel({ channelId: channelToClose.channelId, force: forceClose })); + this.store.dispatch(closeChannel({ payload: { channelId: channelToClose.channelId, force: forceClose } })); } }); } @@ -118,11 +133,15 @@ export class ECLChannelInactiveTableComponent implements OnInit, AfterViewInit, } onChannelClick(selChannel: Channel, event: any) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - channel: selChannel, - channelsType: 'inactive', - component: ECLChannelInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: selChannel, + channelsType: 'inactive', + component: ECLChannelInformationComponent + } + } + })); } loadChannelsTable() { @@ -132,6 +151,7 @@ export class ECLChannelInactiveTableComponent implements OnInit, AfterViewInit, this.channels.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.channels.filterPredicate = (channel: Channel, fltr: string) => JSON.stringify(channel).toLowerCase().includes(fltr); this.channels.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.channels); } diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html b/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html index 46906742..361846e8 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html +++ b/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html @@ -6,7 +6,7 @@
- +
State -

No inactive channel available.

-

Getting inactive channels...

-

{{errorMessage}}

+

No inactive channel available.

+

Getting inactive channels...

+

{{errorMessage}}

@@ -79,10 +79,10 @@ diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts b/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts index 614bbe92..ac3e8200 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts +++ b/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; @@ -22,12 +25,7 @@ describe('ECLChannelOpenTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts b/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts index a190ef6e..6a3e0aeb 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts +++ b/src/app/eclair/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts @@ -7,17 +7,18 @@ import { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { Channel, GetInfo } from '../../../../../shared/models/eclModels'; +import { Channel, ChannelsStatus, GetInfo, LightningBalance, OnChainBalance, Peer } from '../../../../../shared/models/eclModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, FEE_RATE_TYPES, AlertTypeEnum, APICallStatusEnum } from '../../../../../shared/services/consts-enums-functions'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { CommonService } from '../../../../../shared/services/common.service'; import { ECLChannelInformationComponent } from '../../channel-information-modal/channel-information.component'; import { RTLEffects } from '../../../../../store/rtl.effects'; -import * as ECLActions from '../../../../store/ecl.actions'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; -import { ApiCallsListECL } from '../../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../../shared/models/apiCallsPayload'; +import { openAlert, openConfirmation } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { closeChannel, updateChannel } from '../../../../store/ecl.actions'; +import { allChannelsInfo, eclNodeInformation, onchainBalance, peers } from '../../../../store/ecl.selector'; @Component({ selector: 'rtl-ecl-channel-open-table', @@ -29,8 +30,8 @@ import { ApiCallsListECL } from '../../../../../shared/models/apiCallsPayload'; }) export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public faEye = faEye; public faEyeSlash = faEyeSlash public activeChannels: Channel[]; @@ -48,11 +49,11 @@ export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListECL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -70,22 +71,30 @@ export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe } ngOnInit() { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(allChannelsInfo).pipe(takeUntil(this.unSubs[0])). + subscribe((allChannelsSelector: ({ activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], lightningBalance: LightningBalance, channelsStatus: ChannelsStatus, apiCallStatus: ApiCallStatusPayload })) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchChannels.message) : this.apisCallStatus.FetchChannels.message; + this.apiCallStatus = allChannelsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.information = rtlStore.information; - this.numPeers = (rtlStore.peers && rtlStore.peers.length) ? rtlStore.peers.length : 0; - this.totalBalance = rtlStore.onchainBalance.total; - this.activeChannels = rtlStore.activeChannels; + this.activeChannels = allChannelsSelector.activeChannels; if (this.activeChannels.length > 0 && this.sort && this.paginator) { this.loadChannelsTable(); } - this.logger.info(rtlStore); + this.logger.info(allChannelsSelector); + }); + this.store.select(eclNodeInformation).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeInfo: any) => { + this.information = nodeInfo; + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[2])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.numPeers = (peersSelector.peers && peersSelector.peers.length) ? peersSelector.peers.length : 0; + }); + this.store.select(onchainBalance).pipe(takeUntil(this.unSubs[3])). + subscribe((ocBalSelector: { onchainBalance: OnChainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.totalBalance = ocBalSelector.onchainBalance.total; }); } @@ -95,43 +104,61 @@ export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe } } - onChannelUpdate(channelToUpdate: any) { + onChannelUpdate(channelToUpdate: Channel) { if (channelToUpdate !== 'all' && channelToUpdate.state !== 'NORMAL') { return; } - const titleMsg = channelToUpdate === 'all' ? 'Update fee policy for selected/all channels' : 'Update fee policy for Channel: ' + channelToUpdate.channelId; + const titleMsg = channelToUpdate === 'all' ? 'Update fee policy for all channels' : + ('Update fee policy for Channel: ' + ((!channelToUpdate.alias && !channelToUpdate.shortChannelId) ? channelToUpdate.channelId : (channelToUpdate.alias && channelToUpdate.shortChannelId) ? channelToUpdate.alias + ' (' + channelToUpdate.shortChannelId + ')' : channelToUpdate.alias ? channelToUpdate.alias : channelToUpdate.shortChannelId)); const confirmationMsg = []; - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Update Fee Policy', - noBtnText: 'Cancel', - yesBtnText: 'Update', - message: confirmationMsg, - titleMessage: titleMsg, - flgShowInput: true, - getInputs: [ - { placeholder: 'Base Fee (mSats)', inputType: 'number', inputValue: channelToUpdate && channelToUpdate.feeBaseMsat ? channelToUpdate.feeBaseMsat : 1000, width: 48 }, - { placeholder: 'Fee Rate (mili mSats)', inputType: 'number', inputValue: channelToUpdate && channelToUpdate.feeProportionalMillionths ? channelToUpdate.feeProportionalMillionths : 100, min: 1, width: 48, hintFunction: this.percentHintFunction } - ] - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Update Fee Policy', + noBtnText: 'Cancel', + yesBtnText: 'Update', + message: confirmationMsg, + titleMessage: titleMsg, + flgShowInput: true, + getInputs: [ + { placeholder: 'Base Fee (mSats)', inputType: 'number', inputValue: channelToUpdate && typeof channelToUpdate.feeBaseMsat !== 'undefined' ? channelToUpdate.feeBaseMsat : 1000, width: 48 }, + { placeholder: 'Fee Rate (mili mSats)', inputType: 'number', inputValue: channelToUpdate && typeof channelToUpdate.feeProportionalMillionths !== 'undefined' ? channelToUpdate.feeProportionalMillionths : 100, min: 1, width: 48, hintFunction: this.percentHintFunction } + ] + } + } + })); this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[1])). + pipe(takeUntil(this.unSubs[4])). subscribe((confirmRes) => { if (confirmRes) { const base_fee = confirmRes[0].inputValue; const fee_rate = confirmRes[1].inputValue; let updateRequestPayload = null; - let channel_ids = ''; - if (channelToUpdate === 'all') { - this.activeChannels.forEach((channel) => { - channel_ids = channel_ids + ',' + channel.channelId; - }); - channel_ids = channel_ids.substring(1); - updateRequestPayload = { baseFeeMsat: base_fee, feeRate: fee_rate, channelIds: channel_ids }; + if (this.commonService.isVersionCompatible(this.information.version, '0.6.2')) { + let node_ids = ''; + if (channelToUpdate === 'all') { + this.activeChannels.forEach((channel) => { + node_ids = node_ids + ',' + channel.nodeId; + }); + node_ids = node_ids.substring(1); + updateRequestPayload = { baseFeeMsat: base_fee, feeRate: fee_rate, nodeIds: node_ids }; + } else { + updateRequestPayload = { baseFeeMsat: base_fee, feeRate: fee_rate, nodeId: channelToUpdate.nodeId }; + } } else { - updateRequestPayload = { baseFeeMsat: base_fee, feeRate: fee_rate, channelId: channelToUpdate.channelId }; + let channel_ids = ''; + if (channelToUpdate === 'all') { + this.activeChannels.forEach((channel) => { + channel_ids = channel_ids + ',' + channel.channelId; + }); + channel_ids = channel_ids.substring(1); + updateRequestPayload = { baseFeeMsat: base_fee, feeRate: fee_rate, channelIds: channel_ids }; + } else { + updateRequestPayload = { baseFeeMsat: base_fee, feeRate: fee_rate, channelId: channelToUpdate.channelId }; + } } - this.store.dispatch(new ECLActions.UpdateChannels(updateRequestPayload)); + this.store.dispatch(updateChannel({ payload: updateRequestPayload })); } }); this.applyFilter(); @@ -143,20 +170,26 @@ export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe onChannelClose(channelToClose: Channel, forceClose: boolean) { const alertTitle = (forceClose) ? 'Force Close Channel' : 'Close Channel'; - const titleMessage = (forceClose) ? ('Force closing channel: ' + channelToClose.channelId) : ('Closing channel: ' + channelToClose.channelId); const yesBtnText = (forceClose) ? 'Force Close' : 'Close Channel'; - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: alertTitle, - titleMessage: titleMessage, - noBtnText: 'Cancel', - yesBtnText: yesBtnText - } })); + const titleMessage = (forceClose) ? + ('Force closing channel: ' + ((!channelToClose.alias && !channelToClose.shortChannelId) ? channelToClose.channelId : (channelToClose.alias && channelToClose.shortChannelId) ? channelToClose.alias + ' (' + channelToClose.shortChannelId + ')' : channelToClose.alias ? channelToClose.alias : channelToClose.shortChannelId)) : + ('Closing channel: ' + ((!channelToClose.alias && !channelToClose.shortChannelId) ? channelToClose.channelId : (channelToClose.alias && channelToClose.shortChannelId) ? channelToClose.alias + ' (' + channelToClose.shortChannelId + ')' : channelToClose.alias ? channelToClose.alias : channelToClose.shortChannelId)); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: alertTitle, + titleMessage: titleMessage, + noBtnText: 'Cancel', + yesBtnText: yesBtnText + } + } + })); this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[3])). + pipe(takeUntil(this.unSubs[5])). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new ECLActions.CloseChannel({ channelId: channelToClose.channelId, force: forceClose })); + this.store.dispatch(closeChannel({ payload: { channelId: channelToClose.channelId, force: forceClose } })); } }); } @@ -166,11 +199,15 @@ export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe } onChannelClick(selChannel: Channel, event: any) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - channel: selChannel, - channelsType: 'open', - component: ECLChannelInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: selChannel, + channelsType: 'open', + component: ECLChannelInformationComponent + } + } + })); } loadChannelsTable() { @@ -180,6 +217,7 @@ export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe this.channels.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.channels.filterPredicate = (channel: Channel, fltr: string) => JSON.stringify(channel).toLowerCase().includes(fltr); this.channels.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.channels); } diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html b/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html index 9ff81a7a..32ad2b71 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html +++ b/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html @@ -6,7 +6,7 @@
- +
Short Channel ID -

No peers connected. Add a peer in order to open a channel.

-

No channel available.

-

Getting channels...

-

{{errorMessage}}

+

No peers connected. Add a peer in order to open a channel.

+

No channel available.

+

Getting channels...

+

{{errorMessage}}

@@ -41,9 +41,9 @@ diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts b/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts index 08e904f3..9a6f3294 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts +++ b/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('ECLChannelPendingTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts b/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts index 2221c472..30d7fa54 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts +++ b/src/app/eclair/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts @@ -7,15 +7,16 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { Channel, GetInfo } from '../../../../../shared/models/eclModels'; +import { Channel, ChannelsStatus, GetInfo, LightningBalance, OnChainBalance, Peer } from '../../../../../shared/models/eclModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, FEE_RATE_TYPES, APICallStatusEnum } from '../../../../../shared/services/consts-enums-functions'; -import { ApiCallsListECL } from '../../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../../shared/models/apiCallsPayload'; import { ECLChannelInformationComponent } from '../../channel-information-modal/channel-information.component'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { CommonService } from '../../../../../shared/services/common.service'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { openAlert } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { allChannelsInfo, eclNodeInformation, onchainBalance, peers } from '../../../../store/ecl.selector'; @Component({ @@ -28,8 +29,8 @@ import * as fromRTLReducer from '../../../../../store/rtl.reducers'; }) export class ECLChannelPendingTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public pendingChannels: Channel[]; public totalBalance = 0; public displayedColumns: any[] = []; @@ -45,11 +46,11 @@ export class ECLChannelPendingTableComponent implements OnInit, AfterViewInit, O public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListECL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -67,20 +68,28 @@ export class ECLChannelPendingTableComponent implements OnInit, AfterViewInit, O } ngOnInit() { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(allChannelsInfo).pipe(takeUntil(this.unSubs[0])). + subscribe((allChannelsSelector: ({ activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], lightningBalance: LightningBalance, channelsStatus: ChannelsStatus, apiCallStatus: ApiCallStatusPayload })) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchChannels.message) : this.apisCallStatus.FetchChannels.message; + this.apiCallStatus = allChannelsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.information = rtlStore.information; - this.numPeers = (rtlStore.peers && rtlStore.peers.length) ? rtlStore.peers.length : 0; - this.totalBalance = rtlStore.onchainBalance.total; - this.pendingChannels = rtlStore.pendingChannels; + this.pendingChannels = allChannelsSelector.pendingChannels; this.loadChannelsTable(); - this.logger.info(rtlStore); + this.logger.info(allChannelsSelector); + }); + this.store.select(eclNodeInformation).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[4])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.numPeers = (peersSelector.peers && peersSelector.peers.length) ? peersSelector.peers.length : 0; + }); + this.store.select(onchainBalance).pipe(takeUntil(this.unSubs[5])). + subscribe((oCBalanceSelector: { onchainBalance: OnChainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.totalBalance = oCBalanceSelector.onchainBalance.total; }); } @@ -95,11 +104,15 @@ export class ECLChannelPendingTableComponent implements OnInit, AfterViewInit, O } onChannelClick(selChannel: Channel, event: any) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - channel: selChannel, - channelsType: 'pending', - component: ECLChannelInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: selChannel, + channelsType: 'pending', + component: ECLChannelInformationComponent + } + } + })); } loadChannelsTable() { @@ -109,6 +122,7 @@ export class ECLChannelPendingTableComponent implements OnInit, AfterViewInit, O this.channels.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.channels.filterPredicate = (channel: Channel, fltr: string) => JSON.stringify(channel).toLowerCase().includes(fltr); this.channels.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.channels); } diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channels-tables.component.spec.ts b/src/app/eclair/peers-channels/channels/channels-tables/channels-tables.component.spec.ts index 54932601..5980fdc2 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channels-tables.component.spec.ts +++ b/src/app/eclair/peers-channels/channels/channels-tables/channels-tables.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../../shared/services/logger.service'; import { ECLChannelsTablesComponent } from './channels-tables.component'; @@ -21,12 +24,7 @@ describe('ECLChannelsTablesComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: LoggerService, useClass: mockLoggerService } diff --git a/src/app/eclair/peers-channels/channels/channels-tables/channels-tables.component.ts b/src/app/eclair/peers-channels/channels/channels-tables/channels-tables.component.ts index 62132b5a..bfc0375e 100644 --- a/src/app/eclair/peers-channels/channels/channels-tables/channels-tables.component.ts +++ b/src/app/eclair/peers-channels/channels/channels-tables/channels-tables.component.ts @@ -6,11 +6,13 @@ import { Store } from '@ngrx/store'; import { ECLOpenChannelComponent } from '../open-channel-modal/open-channel.component'; import { LoggerService } from '../../../../shared/services/logger.service'; -import { GetInfo, Peer } from '../../../../shared/models/eclModels'; +import { Channel, ChannelsStatus, GetInfo, LightningBalance, OnChainBalance, Peer } from '../../../../shared/models/eclModels'; import { SelNodeChild } from '../../../../shared/models/RTLconfig'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert } from '../../../../store/rtl.actions'; +import { allChannelsInfo, eclNodeInformation, eclNodeSettings, onchainBalance, peers } from '../../../store/ecl.selector'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-ecl-channels-tables', @@ -28,27 +30,38 @@ export class ECLChannelsTablesComponent implements OnInit, OnDestroy { public totalBalance = 0; public links = [{ link: 'open', name: 'Open' }, { link: 'pending', name: 'Pending' }, { link: 'inactive', name: 'Inactive' }]; public activeLink = 0; - private unSubs: Array> = [new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private router: Router) {} + constructor(private logger: LoggerService, private store: Store, private router: Router) { } ngOnInit() { this.activeLink = this.links.findIndex((link) => link.link === this.router.url.substring(this.router.url.lastIndexOf('/') + 1)); this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { this.activeLink = this.links.findIndex((link) => link.link === value.urlAfterRedirects.substring(value.urlAfterRedirects.lastIndexOf('/') + 1)); }); - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.numOfOpenChannels = (rtlStore.channelsStatus && rtlStore.channelsStatus.active && rtlStore.channelsStatus.active.channels) ? rtlStore.channelsStatus.active.channels : 0; - this.numOfPendingChannels = (rtlStore.channelsStatus && rtlStore.channelsStatus.pending && rtlStore.channelsStatus.pending.channels) ? rtlStore.channelsStatus.pending.channels : 0; - this.numOfInactiveChannels = (rtlStore.channelsStatus && rtlStore.channelsStatus.inactive && rtlStore.channelsStatus.inactive.channels) ? rtlStore.channelsStatus.inactive.channels : 0; - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - this.peers = rtlStore.peers; - this.totalBalance = rtlStore.onchainBalance.total; - this.logger.info(rtlStore); + this.store.select(allChannelsInfo).pipe(takeUntil(this.unSubs[1])). + subscribe((allChannelsSelector: ({ activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], lightningBalance: LightningBalance, channelsStatus: ChannelsStatus, apiCallStatus: ApiCallStatusPayload })) => { + this.numOfOpenChannels = (allChannelsSelector.channelsStatus && allChannelsSelector.channelsStatus.active && allChannelsSelector.channelsStatus.active.channels) ? allChannelsSelector.channelsStatus.active.channels : 0; + this.numOfPendingChannels = (allChannelsSelector.channelsStatus && allChannelsSelector.channelsStatus.pending && allChannelsSelector.channelsStatus.pending.channels) ? allChannelsSelector.channelsStatus.pending.channels : 0; + this.numOfInactiveChannels = (allChannelsSelector.channelsStatus && allChannelsSelector.channelsStatus.inactive && allChannelsSelector.channelsStatus.inactive.channels) ? allChannelsSelector.channelsStatus.inactive.channels : 0; + this.logger.info(allChannelsSelector); + }); + this.store.select(eclNodeSettings).pipe(takeUntil(this.unSubs[2])). + subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(eclNodeInformation).pipe(takeUntil(this.unSubs[3])). + subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[4])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.peers = peersSelector.peers; + }); + this.store.select(onchainBalance).pipe(takeUntil(this.unSubs[5])). + subscribe((oCBalanceSelector: { onchainBalance: OnChainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.totalBalance = oCBalanceSelector.onchainBalance.total; }); } @@ -58,11 +71,15 @@ export class ECLChannelsTablesComponent implements OnInit, OnDestroy { information: this.information, balance: this.totalBalance }; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - alertTitle: 'Open Channel', - message: peerToAddChannelMessage, - component: ECLOpenChannelComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + alertTitle: 'Open Channel', + message: peerToAddChannelMessage, + component: ECLOpenChannelComponent + } + } + })); } onSelectedTabChange(event) { diff --git a/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.html b/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.html index 18b7b2be..82ec6385 100644 --- a/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.html +++ b/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.html @@ -54,8 +54,8 @@ {{channelConnectionError}}
- - + +
diff --git a/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts b/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts index 3b2be639..244dc959 100644 --- a/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts +++ b/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts @@ -6,7 +6,10 @@ import { StoreModule } from '@ngrx/store'; import { mockCLEffects, mockECLEffects, mockLNDEffects, mockMatDialogRef, mockRTLEffects } from '../../../../shared/test-helpers/mock-services'; import { SharedModule } from '../../../../shared/shared.module'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { ECLOpenChannelComponent } from './open-channel.component'; describe('ECLOpenChannelComponent', () => { @@ -19,12 +22,7 @@ describe('ECLOpenChannelComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.ts b/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.ts index a1880cd1..b00f0a31 100644 --- a/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.ts +++ b/src/app/eclair/peers-channels/channels/open-channel-modal/open-channel.component.ts @@ -8,11 +8,11 @@ import { Actions } from '@ngrx/effects'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { Peer, GetInfo } from '../../../../shared/models/eclModels'; -import { APICallStatusEnum } from '../../../../shared/services/consts-enums-functions'; +import { APICallStatusEnum, ECLActions } from '../../../../shared/services/consts-enums-functions'; import { ECLOpenChannelAlert } from '../../../../shared/models/alertData'; -import * as ECLActions from '../../../store/ecl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { saveNewChannel } from '../../../store/ecl.actions'; @Component({ selector: 'rtl-ecl-open-channel', @@ -39,18 +39,18 @@ export class ECLOpenChannelComponent implements OnInit, OnDestroy { public feeRate = null; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ECLOpenChannelAlert, private store: Store, private actions: Actions) { } + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ECLOpenChannelAlert, private store: Store, private actions: Actions) { } ngOnInit() { this.information = this.data.message.information; this.totalBalance = this.data.message.balance; this.alertTitle = this.data.alertTitle; - this.peer = this.data.message.peer ? this.data.message.peer : null; - this.peers = this.data.message.peers && this.data.message.peers.length ? this.data.message.peers : []; + this.peer = this.data.message.peer || null; + this.peers = this.data.message.peers || []; this.actions.pipe( takeUntil(this.unSubs[0]), filter((action) => action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL || action.type === ECLActions.FETCH_CHANNELS_ECL)). - subscribe((action: ECLActions.UpdateAPICallStatus | ECLActions.FetchChannels) => { + subscribe((action: any) => { if (action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL && action.payload.status === APICallStatusEnum.ERROR && action.payload.action === 'SaveNewChannel') { this.channelConnectionError = action.payload.message; } @@ -122,8 +122,10 @@ export class ECLOpenChannelComponent implements OnInit, OnDestroy { if ((!this.peer && !this.selectedPubkey) || (!this.fundingAmount || ((this.totalBalance - this.fundingAmount) < 0))) { return true; } - this.store.dispatch(new ECLActions.SaveNewChannel({ - nodeId: ((!this.peer || !this.peer.nodeId) ? this.selectedPubkey : this.peer.nodeId), amount: this.fundingAmount, private: this.isPrivate, feeRate: this.feeRate + this.store.dispatch(saveNewChannel({ + payload: { + nodeId: ((!this.peer || !this.peer.nodeId) ? this.selectedPubkey : this.peer.nodeId), amount: this.fundingAmount, private: this.isPrivate, feeRate: this.feeRate + } })); } diff --git a/src/app/eclair/peers-channels/connect-peer/connect-peer.component.html b/src/app/eclair/peers-channels/connect-peer/connect-peer.component.html index a7d5d5c7..79c4842e 100644 --- a/src/app/eclair/peers-channels/connect-peer/connect-peer.component.html +++ b/src/app/eclair/peers-channels/connect-peer/connect-peer.component.html @@ -21,7 +21,7 @@ {{peerConnectionError}}
- +
@@ -55,13 +55,13 @@ {{channelConnectionError}}
- +
- +
diff --git a/src/app/eclair/peers-channels/connect-peer/connect-peer.component.spec.ts b/src/app/eclair/peers-channels/connect-peer/connect-peer.component.spec.ts index 0fc8d7be..78d72a69 100644 --- a/src/app/eclair/peers-channels/connect-peer/connect-peer.component.spec.ts +++ b/src/app/eclair/peers-channels/connect-peer/connect-peer.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../shared/services/logger.service'; import { ECLConnectPeerComponent } from './connect-peer.component'; @@ -21,12 +24,7 @@ describe('ECLConnectPeerComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/eclair/peers-channels/connect-peer/connect-peer.component.ts b/src/app/eclair/peers-channels/connect-peer/connect-peer.component.ts index 122359a5..93f38147 100644 --- a/src/app/eclair/peers-channels/connect-peer/connect-peer.component.ts +++ b/src/app/eclair/peers-channels/connect-peer/connect-peer.component.ts @@ -9,12 +9,12 @@ import { MatStepper } from '@angular/material/stepper'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { Peer } from '../../../shared/models/eclModels'; -import { APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; +import { APICallStatusEnum, ECLActions } from '../../../shared/services/consts-enums-functions'; import { ECLOpenChannelAlert } from '../../../shared/models/alertData'; import { LoggerService } from '../../../shared/services/logger.service'; -import * as ECLActions from '../../store/ecl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { saveNewChannel, saveNewPeer } from '../../store/ecl.actions'; @Component({ selector: 'rtl-ecl-connect-peer', @@ -41,7 +41,7 @@ export class ECLConnectPeerComponent implements OnInit, OnDestroy { statusFormGroup: FormGroup; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ECLOpenChannelAlert, private store: Store, private formBuilder: FormBuilder, private actions: Actions, private logger: LoggerService) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ECLOpenChannelAlert, private store: Store, private formBuilder: FormBuilder, private actions: Actions, private logger: LoggerService) { } ngOnInit() { this.totalBalance = this.data.message.balance; @@ -61,7 +61,7 @@ export class ECLConnectPeerComponent implements OnInit, OnDestroy { this.actions.pipe( takeUntil(this.unSubs[1]), filter((action) => action.type === ECLActions.NEWLY_ADDED_PEER_ECL || action.type === ECLActions.FETCH_CHANNELS_ECL || action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL)). - subscribe((action: (ECLActions.NewlyAddedPeer | ECLActions.FetchChannels | ECLActions.UpdateAPICallStatus)) => { + subscribe((action: any) => { if (action.type === ECLActions.NEWLY_ADDED_PEER_ECL) { this.logger.info(action.payload); this.flgEditable = false; @@ -82,21 +82,23 @@ export class ECLConnectPeerComponent implements OnInit, OnDestroy { }); } - onConnectPeer(): boolean|void { + onConnectPeer(): boolean | void { if (!this.peerFormGroup.controls.peerAddress.value) { return true; } this.peerConnectionError = ''; - this.store.dispatch(new ECLActions.SaveNewPeer({ id: this.peerFormGroup.controls.peerAddress.value })); + this.store.dispatch(saveNewPeer({ payload: { id: this.peerFormGroup.controls.peerAddress.value } })); } - onOpenChannel(): boolean|void { + onOpenChannel(): boolean | void { if (!this.channelFormGroup.controls.fundingAmount.value || ((this.totalBalance - this.channelFormGroup.controls.fundingAmount.value) < 0)) { return true; } this.channelConnectionError = ''; - this.store.dispatch(new ECLActions.SaveNewChannel({ - nodeId: this.newlyAddedPeer.nodeId, amount: this.channelFormGroup.controls.fundingAmount.value, private: this.channelFormGroup.controls.isPrivate.value, feeRate: this.channelFormGroup.controls.feeRate.value + this.store.dispatch(saveNewChannel({ + payload: { + nodeId: this.newlyAddedPeer.nodeId, amount: this.channelFormGroup.controls.fundingAmount.value, private: this.channelFormGroup.controls.isPrivate.value, feeRate: this.channelFormGroup.controls.feeRate.value + } })); } diff --git a/src/app/eclair/peers-channels/connections.component.spec.ts b/src/app/eclair/peers-channels/connections.component.spec.ts index 2dd8853c..7d97482f 100644 --- a/src/app/eclair/peers-channels/connections.component.spec.ts +++ b/src/app/eclair/peers-channels/connections.component.spec.ts @@ -4,10 +4,13 @@ import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; import { CommonService } from '../../shared/services/common.service'; import { DataService } from '../../shared/services/data.service'; -import { mockDataService, mockLoggerService } from '../../shared/test-helpers/mock-services'; +import { mockDataService } from '../../shared/test-helpers/mock-services'; import { SharedModule } from '../../shared/shared.module'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { ECLConnectionsComponent } from './connections.component'; describe('ECLConnectionsComponent', () => { @@ -21,12 +24,7 @@ describe('ECLConnectionsComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/peers-channels/connections.component.ts b/src/app/eclair/peers-channels/connections.component.ts index 38bcf103..b670de74 100644 --- a/src/app/eclair/peers-channels/connections.component.ts +++ b/src/app/eclair/peers-channels/connections.component.ts @@ -5,7 +5,10 @@ import { takeUntil, filter } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { faUsers, faChartPie } from '@fortawesome/free-solid-svg-icons'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { allChannelsInfo, onchainBalance, peers } from '../store/ecl.selector'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; +import { Channel, ChannelsStatus, LightningBalance, OnChainBalance, Peer } from '../../shared/models/eclModels'; @Component({ selector: 'rtl-ecl-connections', @@ -23,20 +26,25 @@ export class ECLConnectionsComponent implements OnInit, OnDestroy { public activeLink = 0; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private router: Router) {} + constructor(private store: Store, private router: Router) { } ngOnInit() { this.activeLink = this.links.findIndex((link) => link.link === this.router.url.substring(this.router.url.lastIndexOf('/') + 1)); this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { this.activeLink = this.links.findIndex((link) => link.link === value.urlAfterRedirects.substring(value.urlAfterRedirects.lastIndexOf('/') + 1)); }); - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.activePeers = (rtlStore.peers && rtlStore.peers.length) ? rtlStore.peers.length : 0; - this.activeChannels = rtlStore.channelsStatus && rtlStore.channelsStatus.active && rtlStore.channelsStatus.active.channels ? rtlStore.channelsStatus.active.channels : 0; - this.balances = [{ title: 'Total Balance', dataValue: rtlStore.onchainBalance.total || 0 }, { title: 'Confirmed', dataValue: rtlStore.onchainBalance.confirmed }, { title: 'Unconfirmed', dataValue: rtlStore.onchainBalance.unconfirmed }]; + this.store.select(peers).pipe(takeUntil(this.unSubs[1])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.activePeers = (peersSelector.peers && peersSelector.peers.length) ? peersSelector.peers.length : 0; + }); + this.store.select(allChannelsInfo).pipe(takeUntil(this.unSubs[2])). + subscribe((allChannelsSelector: ({ activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], lightningBalance: LightningBalance, channelsStatus: ChannelsStatus, apiCallStatus: ApiCallStatusPayload })) => { + this.activeChannels = allChannelsSelector.channelsStatus && allChannelsSelector.channelsStatus.active && allChannelsSelector.channelsStatus.active.channels ? allChannelsSelector.channelsStatus.active.channels : 0; + }); + this.store.select(onchainBalance).pipe(takeUntil(this.unSubs[3])). + subscribe((oCBalanceSelector: { onchainBalance: OnChainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.balances = [{ title: 'Total Balance', dataValue: oCBalanceSelector.onchainBalance.total || 0 }, { title: 'Confirmed', dataValue: oCBalanceSelector.onchainBalance.confirmed }, { title: 'Unconfirmed', dataValue: oCBalanceSelector.onchainBalance.unconfirmed }]; }); } diff --git a/src/app/eclair/peers-channels/peers/peers.component.html b/src/app/eclair/peers-channels/peers/peers.component.html index fd737394..a5d0dab4 100644 --- a/src/app/eclair/peers-channels/peers/peers.component.html +++ b/src/app/eclair/peers-channels/peers/peers.component.html @@ -10,12 +10,12 @@
- +
- +
State -

No pending channel available.

-

Getting pending channels...

-

{{errorMessage}}

+

No pending channel available.

+

Getting pending channels...

+

{{errorMessage}}

@@ -66,14 +66,14 @@ - +
ID -

No connected peer.

-

Getting peers...

-

{{errorMessage}}

+

No connected peer.

+

Getting peers...

+

{{errorMessage}}

diff --git a/src/app/eclair/peers-channels/peers/peers.component.spec.ts b/src/app/eclair/peers-channels/peers/peers.component.spec.ts index b82be725..8ac9856a 100644 --- a/src/app/eclair/peers-channels/peers/peers.component.spec.ts +++ b/src/app/eclair/peers-channels/peers/peers.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -23,12 +26,7 @@ describe('ECLPeersComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/eclair/peers-channels/peers/peers.component.ts b/src/app/eclair/peers-channels/peers/peers.component.ts index 9d9ee4bf..94f39a80 100644 --- a/src/app/eclair/peers-channels/peers/peers.component.ts +++ b/src/app/eclair/peers-channels/peers/peers.component.ts @@ -9,36 +9,34 @@ import { faUsers } from '@fortawesome/free-solid-svg-icons'; import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { Peer, GetInfo } from '../../../shared/models/eclModels'; -import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; +import { Peer, GetInfo, OnChainBalance } from '../../../shared/models/eclModels'; +import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, ScreenSizeEnum, APICallStatusEnum, ECLActions } from '../../../shared/services/consts-enums-functions'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; -import { ApiCallsListECL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { ECLOpenChannelComponent } from '../channels/open-channel-modal/open-channel.component'; import { ECLConnectPeerComponent } from '../connect-peer/connect-peer.component'; -import { newlyAddedRowAnimation } from '../../../shared/animation/row-animation'; import { RTLEffects } from '../../../store/rtl.effects'; -import * as ECLActions from '../../store/ecl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../store/rtl.actions'; +import { disconnectPeer } from '../../store/ecl.actions'; +import { eclNodeInformation, onchainBalance, peers } from '../../store/ecl.selector'; @Component({ selector: 'rtl-ecl-peers', templateUrl: './peers.component.html', styleUrls: ['./peers.component.scss'], - animations: [newlyAddedRowAnimation], providers: [ { provide: MatPaginatorIntl, useValue: getPaginatorLabel('Peers') } ] }) export class ECLPeersComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public faUsers = faUsers; public newlyAddedPeer = ''; - public flgAnimate = true; public displayedColumns: any[] = []; public peerAddress = ''; public peersData: Peer[] = []; @@ -51,11 +49,12 @@ export class ECLPeersComponent implements OnInit, AfterViewInit, OnDestroy { public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListECL = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private actions: Actions, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private actions: Actions, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -73,30 +72,28 @@ export class ECLPeersComponent implements OnInit, AfterViewInit, OnDestroy { } ngOnInit() { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(eclNodeInformation).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeInfo: any) => { + this.information = nodeInfo; + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[1])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchPeers.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchPeers.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPeers.message) : this.apisCallStatus.FetchPeers.message; + this.apiCallStatus = peersSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.information = rtlStore.information; - this.availableBalance = rtlStore.onchainBalance.total || 0; - this.peersData = rtlStore.peers; + this.peersData = peersSelector.peers; this.loadPeersTable(this.peersData); - setTimeout(() => { - this.flgAnimate = false; - }, 3000); - this.logger.info(rtlStore); + this.logger.info(peersSelector); + }); + this.store.select(onchainBalance).pipe(takeUntil(this.unSubs[2])). + subscribe((oCBalanceSelector: { onchainBalance: OnChainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.availableBalance = oCBalanceSelector.onchainBalance.total || 0; }); - this.actions. - pipe( - takeUntil(this.unSubs[1]), - filter((action) => action.type === ECLActions.SET_PEERS_ECL) - ).subscribe((setPeers: ECLActions.SetPeers) => { + this.actions.pipe(takeUntil(this.unSubs[3]), filter((action) => action.type === ECLActions.SET_PEERS_ECL)). + subscribe((setPeers: any) => { this.peerAddress = null; - this.flgAnimate = true; }); } @@ -110,28 +107,36 @@ export class ECLPeersComponent implements OnInit, AfterViewInit, OnDestroy { const reorderedPeer = [ [{ key: 'nodeId', value: selPeer.nodeId, title: 'Public Key', width: 100 }], [{ key: 'address', value: selPeer.address, title: 'Address', width: 50 }, - { key: 'alias', value: selPeer.alias, title: 'Alias', width: 50 }], + { key: 'alias', value: selPeer.alias, title: 'Alias', width: 50 }], [{ key: 'state', value: this.commonService.titleCase(selPeer.state), title: 'State', width: 50 }, - { key: 'channels', value: selPeer.channels, title: 'Channels', width: 50 }] + { key: 'channels', value: selPeer.channels, title: 'Channels', width: 50 }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Peer Information', - showQRName: 'Public Key', - showQRField: selPeer.nodeId, - message: reorderedPeer - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Peer Information', + showQRName: 'Public Key', + showQRField: selPeer.nodeId, + message: reorderedPeer + } + } + })); } onConnectPeer(selPeer: Peer) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - message: { - peer: selPeer.nodeId ? selPeer : null, - information: this.information, - balance: this.availableBalance - }, - component: ECLConnectPeerComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + message: { + peer: selPeer.nodeId ? selPeer : null, + information: this.information, + balance: this.availableBalance + }, + component: ECLConnectPeerComponent + } + } + })); } onOpenChannel(peerToAddChannel: Peer) { @@ -140,41 +145,53 @@ export class ECLPeersComponent implements OnInit, AfterViewInit, OnDestroy { information: this.information, balance: this.availableBalance }; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - alertTitle: 'Open Channel', - message: peerToAddChannelMessage, - newlyAdded: false, - component: ECLOpenChannelComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + alertTitle: 'Open Channel', + message: peerToAddChannelMessage, + newlyAdded: false, + component: ECLOpenChannelComponent + } + } + })); } onPeerDetach(peerToDetach: Peer) { if (peerToDetach.channels > 0) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.ERROR, - alertTitle: 'Disconnect Not Allowed', - titleMessage: 'Channel active with this peer.' - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.ERROR, + alertTitle: 'Disconnect Not Allowed', + titleMessage: 'Channel active with this peer.' + } + } + })); } else { - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Disconnect Peer', - titleMessage: 'Disconnect peer: ' + ((peerToDetach.alias) ? peerToDetach.alias : peerToDetach.nodeId), - noBtnText: 'Cancel', - yesBtnText: 'Disconnect' - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Disconnect Peer', + titleMessage: 'Disconnect peer: ' + ((peerToDetach.alias) ? peerToDetach.alias : peerToDetach.nodeId), + noBtnText: 'Cancel', + yesBtnText: 'Disconnect' + } + } + })); } this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[3])). + pipe(takeUntil(this.unSubs[4])). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new ECLActions.DisconnectPeer({ nodeId: peerToDetach.nodeId })); + this.store.dispatch(disconnectPeer({ payload: { nodeId: peerToDetach.nodeId } })); } }); } - applyFilter(selFilter: any) { - this.peers.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.peers.filter = this.selFilter.trim().toLowerCase(); } loadPeersTable(peers: Peer[]) { @@ -183,6 +200,7 @@ export class ECLPeersComponent implements OnInit, AfterViewInit, OnDestroy { this.peers.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.peers.filterPredicate = (peer: Peer, fltr: string) => JSON.stringify(peer).toLowerCase().includes(fltr); this.peers.paginator = this.paginator; + this.applyFilter(); } onDownloadCSV() { diff --git a/src/app/eclair/reports/fee/fee-report.component.spec.ts b/src/app/eclair/reports/fee/fee-report.component.spec.ts index d2acd55f..c3642aee 100644 --- a/src/app/eclair/reports/fee/fee-report.component.spec.ts +++ b/src/app/eclair/reports/fee/fee-report.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('ECLFeeReportComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/reports/fee/fee-report.component.ts b/src/app/eclair/reports/fee/fee-report.component.ts index 7f04ef42..3917d802 100644 --- a/src/app/eclair/reports/fee/fee-report.component.ts +++ b/src/app/eclair/reports/fee/fee-report.component.ts @@ -1,15 +1,17 @@ -import { Component, OnInit, OnDestroy, HostListener, AfterContentInit } from '@angular/core'; +import { Component, OnInit, OnDestroy, HostListener } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; -import { PaymentRelayed } from '../../../shared/models/eclModels'; +import { PaymentRelayed, Payments } from '../../../shared/models/eclModels'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; import { MONTHS, ScreenSizeEnum, SCROLL_RANGES } from '../../../shared/services/consts-enums-functions'; import { fadeIn } from '../../../shared/animation/opacity-animation'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { payments } from '../../store/ecl.selector'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-ecl-fee-report', @@ -17,7 +19,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; styleUrls: ['./fee-report.component.scss'], animations: [fadeIn] }) -export class ECLFeeReportComponent implements OnInit, AfterContentInit, OnDestroy { +export class ECLFeeReportComponent implements OnInit, OnDestroy { public reportPeriod = SCROLL_RANGES[0]; public secondsInADay = 24 * 60 * 60; @@ -39,36 +41,35 @@ export class ECLFeeReportComponent implements OnInit, AfterContentInit, OnDestro public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) {} + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); this.showYAxisLabel = !(this.screenSize === ScreenSizeEnum.XS || this.screenSize === ScreenSizeEnum.SM); - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.events = rtlStore.payments && rtlStore.payments.relayed ? rtlStore.payments.relayed : []; + this.store.select(payments).pipe(takeUntil(this.unSubs[0])). + subscribe((paymentsSelector: { payments: Payments, apiCallStatus: ApiCallStatusPayload }) => { + this.events = paymentsSelector.payments && paymentsSelector.payments.relayed ? paymentsSelector.payments.relayed : []; this.filterForwardingEvents(this.startDate, this.endDate); - this.logger.info(rtlStore); + this.logger.info(paymentsSelector); }); - } - - ngAfterContentInit() { - const CONTAINER_SIZE = this.commonService.getContainerSize(); - switch (this.screenSize) { - case ScreenSizeEnum.MD: - this.screenPaddingX = CONTAINER_SIZE.width / 10; - break; - - case ScreenSizeEnum.LG: - this.screenPaddingX = CONTAINER_SIZE.width / 16; - break; - - default: - this.screenPaddingX = CONTAINER_SIZE.width / 20; - break; - } - this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.commonService.containerSizeUpdated.pipe(takeUntil(this.unSubs[1])).subscribe((CONTAINER_SIZE) => { + switch (this.screenSize) { + case ScreenSizeEnum.MD: + this.screenPaddingX = CONTAINER_SIZE.width / 10; + break; + + case ScreenSizeEnum.LG: + this.screenPaddingX = CONTAINER_SIZE.width / 16; + break; + + default: + this.screenPaddingX = CONTAINER_SIZE.width / 20; + break; + } + this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.logger.info('Container Size: ' + JSON.stringify(CONTAINER_SIZE)); + this.logger.info('View: ' + JSON.stringify(this.view)); + }); } filterForwardingEvents(start: Date, end: Date) { @@ -109,7 +110,7 @@ export class ECLFeeReportComponent implements OnInit, AfterContentInit, OnDestro this.logger.info('Fee Report Prepare Starting at ' + new Date(Date.now()).toLocaleString() + ' From ' + start.toLocaleString()); if (this.reportPeriod === SCROLL_RANGES[1]) { for (let i = 0; i < 12; i++) { - feeReport.push({ name: MONTHS[i].name, value: 0.000000001, extra: { totalEvents: 0 } }); + feeReport.push({ name: MONTHS[i].name, value: 0.0, extra: { totalEvents: 0 } }); } this.filteredEventsBySelectedPeriod.map((event) => { const monthNumber = new Date(event.timestamp).getMonth(); @@ -120,7 +121,7 @@ export class ECLFeeReportComponent implements OnInit, AfterContentInit, OnDestro }); } else { for (let i = 0; i < this.getMonthDays(start.getMonth(), start.getFullYear()); i++) { - feeReport.push({ name: i + 1, value: 0.000000001, extra: { totalEvents: 0 } }); + feeReport.push({ name: i + 1, value: 0.0, extra: { totalEvents: 0 } }); } this.filteredEventsBySelectedPeriod.map((event) => { const dateNumber = Math.floor((Math.floor(event.timestamp / 1000) - startDateInSeconds) / this.secondsInADay); @@ -134,7 +135,7 @@ export class ECLFeeReportComponent implements OnInit, AfterContentInit, OnDestro return feeReport; } - onSelectionChange(selectedValues: {selDate: Date, selScrollRange: string}) { + onSelectionChange(selectedValues: { selDate: Date, selScrollRange: string }) { const selMonth = selectedValues.selDate.getMonth(); const selYear = selectedValues.selDate.getFullYear(); this.reportPeriod = selectedValues.selScrollRange; diff --git a/src/app/eclair/reports/transactions/transactions-report.component.spec.ts b/src/app/eclair/reports/transactions/transactions-report.component.spec.ts index 440436f1..5265b737 100644 --- a/src/app/eclair/reports/transactions/transactions-report.component.spec.ts +++ b/src/app/eclair/reports/transactions/transactions-report.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { ECLTransactionsReportComponent } from './transactions-report.component'; @@ -20,12 +23,7 @@ describe('ECLTransactionsReportComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/reports/transactions/transactions-report.component.ts b/src/app/eclair/reports/transactions/transactions-report.component.ts index 3cc94e1c..f4f97b6b 100644 --- a/src/app/eclair/reports/transactions/transactions-report.component.ts +++ b/src/app/eclair/reports/transactions/transactions-report.component.ts @@ -1,14 +1,17 @@ -import { Component, OnInit, OnDestroy, HostListener, AfterContentInit } from '@angular/core'; +import { Component, OnInit, OnDestroy, HostListener } from '@angular/core'; import { Subject } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; +import { takeUntil, withLatestFrom } from 'rxjs/operators'; import { Store } from '@ngrx/store'; -import { PaymentSent, Invoice } from '../../../shared/models/eclModels'; +import { PaymentSent, Invoice, Payments } from '../../../shared/models/eclModels'; import { CommonService } from '../../../shared/services/common.service'; import { MONTHS, ScreenSizeEnum, SCROLL_RANGES } from '../../../shared/services/consts-enums-functions'; import { fadeIn } from '../../../shared/animation/opacity-animation'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { invoices, payments } from '../../store/ecl.selector'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; +import { LoggerService } from '../../../shared/services/logger.service'; @Component({ selector: 'rtl-ecl-transactions-report', @@ -16,7 +19,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; styleUrls: ['./transactions-report.component.scss'], animations: [fadeIn] }) -export class ECLTransactionsReportComponent implements OnInit, AfterContentInit, OnDestroy { +export class ECLTransactionsReportComponent implements OnInit, OnDestroy { public scrollRanges = SCROLL_RANGES; public reportPeriod = SCROLL_RANGES[0]; @@ -40,39 +43,39 @@ export class ECLTransactionsReportComponent implements OnInit, AfterContentInit, public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private commonService: CommonService, private store: Store) {} + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); this.showYAxisLabel = !(this.screenSize === ScreenSizeEnum.XS || this.screenSize === ScreenSizeEnum.SM); - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.payments = rtlStore.payments.sent ? rtlStore.payments.sent : []; - this.invoices = rtlStore.invoices ? rtlStore.invoices : []; + this.store.select(payments).pipe(takeUntil(this.unSubs[0]), + withLatestFrom(this.store.select(invoices))). + subscribe(([paymentsSelector, invoicesSelector]: [({ payments: Payments, apiCallStatus: ApiCallStatusPayload }), ({ invoices: Invoice[], apiCallStatus: ApiCallStatusPayload })]) => { + this.payments = paymentsSelector.payments.sent ? paymentsSelector.payments.sent : []; + this.invoices = invoicesSelector.invoices ? invoicesSelector.invoices : []; if (this.payments.length > 0 || this.invoices.length > 0) { this.transactionsReportData = this.filterTransactionsForSelectedPeriod(this.startDate, this.endDate); this.transactionsNonZeroReportData = this.prepareTableData(); } }); - } - - ngAfterContentInit() { - const CONTAINER_SIZE = this.commonService.getContainerSize(); - switch (this.screenSize) { - case ScreenSizeEnum.MD: - this.screenPaddingX = CONTAINER_SIZE.width / 10; - break; - - case ScreenSizeEnum.LG: - this.screenPaddingX = CONTAINER_SIZE.width / 16; - break; - - default: - this.screenPaddingX = CONTAINER_SIZE.width / 20; - break; - } - this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.commonService.containerSizeUpdated.pipe(takeUntil(this.unSubs[1])).subscribe((CONTAINER_SIZE) => { + switch (this.screenSize) { + case ScreenSizeEnum.MD: + this.screenPaddingX = CONTAINER_SIZE.width / 10; + break; + + case ScreenSizeEnum.LG: + this.screenPaddingX = CONTAINER_SIZE.width / 16; + break; + + default: + this.screenPaddingX = CONTAINER_SIZE.width / 20; + break; + } + this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.logger.info('Container Size: ' + JSON.stringify(CONTAINER_SIZE)); + this.logger.info('View: ' + JSON.stringify(this.view)); + }); } @HostListener('mouseup', ['$event']) onChartMouseUp(e) { @@ -147,7 +150,7 @@ export class ECLTransactionsReportComponent implements OnInit, AfterContentInit, }, []); } - onSelectionChange(selectedValues: {selDate: Date, selScrollRange: string}) { + onSelectionChange(selectedValues: { selDate: Date, selScrollRange: string }) { const selMonth = selectedValues.selDate.getMonth(); const selYear = selectedValues.selDate.getFullYear(); this.reportPeriod = selectedValues.selScrollRange; diff --git a/src/app/eclair/routing/forwarding-history/forwarding-history.component.html b/src/app/eclair/routing/forwarding-history/forwarding-history.component.html index de3f4e09..20b72b46 100644 --- a/src/app/eclair/routing/forwarding-history/forwarding-history.component.html +++ b/src/app/eclair/routing/forwarding-history/forwarding-history.component.html @@ -7,11 +7,14 @@
- + - + @@ -48,9 +51,9 @@ diff --git a/src/app/eclair/routing/forwarding-history/forwarding-history.component.spec.ts b/src/app/eclair/routing/forwarding-history/forwarding-history.component.spec.ts index d7972078..02db76d9 100644 --- a/src/app/eclair/routing/forwarding-history/forwarding-history.component.spec.ts +++ b/src/app/eclair/routing/forwarding-history/forwarding-history.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('ECLForwardingHistoryComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/routing/forwarding-history/forwarding-history.component.ts b/src/app/eclair/routing/forwarding-history/forwarding-history.component.ts index 1e9a8e1c..4b51542d 100644 --- a/src/app/eclair/routing/forwarding-history/forwarding-history.component.ts +++ b/src/app/eclair/routing/forwarding-history/forwarding-history.component.ts @@ -7,14 +7,15 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { PaymentRelayed } from '../../../shared/models/eclModels'; +import { PaymentRelayed, Payments } from '../../../shared/models/eclModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListECL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { payments } from '../../store/ecl.selector'; @Component({ selector: 'rtl-ecl-forwarding-history', @@ -26,8 +27,8 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class ECLForwardingHistoryComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; @Input() eventsData = []; @Input() filterValue = ''; public displayedColumns: any[] = []; @@ -38,11 +39,11 @@ export class ECLForwardingHistoryComponent implements OnInit, OnChanges, AfterVi public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListECL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -60,16 +61,15 @@ export class ECLForwardingHistoryComponent implements OnInit, OnChanges, AfterVi } ngOnInit() { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore: any) => { - if (this.eventsData.length <= 0) { + this.store.select(payments).pipe(takeUntil(this.unSubs[0])). + subscribe((paymentsSelector: { payments: Payments, apiCallStatus: ApiCallStatusPayload }) => { + if (this.eventsData.length === 0) { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchPayments.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchPayments.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPayments.message) : this.apisCallStatus.FetchPayments.message; + this.apiCallStatus = paymentsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.eventsData = rtlStore.payments && rtlStore.payments.relayed ? rtlStore.payments.relayed : []; + this.eventsData = paymentsSelector.payments && paymentsSelector.payments.relayed ? paymentsSelector.payments.relayed : []; if (this.eventsData.length > 0 && this.sort && this.paginator) { this.loadForwardingEventsTable(this.eventsData); } @@ -86,6 +86,7 @@ export class ECLForwardingHistoryComponent implements OnInit, OnChanges, AfterVi ngOnChanges(changes: SimpleChanges) { if (changes.eventsData) { + this.apiCallStatus = { status: APICallStatusEnum.COMPLETED, action: 'FetchPayments' }; this.eventsData = changes.eventsData.currentValue; if (!changes.eventsData.firstChange) { this.loadForwardingEventsTable(this.eventsData); @@ -100,21 +101,28 @@ export class ECLForwardingHistoryComponent implements OnInit, OnChanges, AfterVi const reorderedFHEvent = [ [{ key: 'paymentHash', value: selFEvent.paymentHash, title: 'Payment Hash', width: 100, type: DataTypeEnum.STRING }], [{ key: 'timestamp', value: Math.round(selFEvent.timestamp / 1000), title: 'Date/Time', width: 50, type: DataTypeEnum.DATE_TIME }, - { key: 'fee', value: (selFEvent.amountIn - selFEvent.amountOut), title: 'Fee Earned (Sats)', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'fee', value: (selFEvent.amountIn - selFEvent.amountOut), title: 'Fee Earned (Sats)', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'amountIn', value: selFEvent.amountIn, title: 'Amount In (Sats)', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'amountOut', value: selFEvent.amountOut, title: 'Amount Out (Sats)', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'amountOut', value: selFEvent.amountOut, title: 'Amount Out (Sats)', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'fromChannelAlias', value: selFEvent.fromChannelAlias, title: 'From Channel Alias', width: 50, type: DataTypeEnum.STRING }, - { key: 'fromShortChannelId', value: selFEvent.fromShortChannelId, title: 'From Short Channel ID', width: 50, type: DataTypeEnum.STRING }], + { key: 'fromShortChannelId', value: selFEvent.fromShortChannelId, title: 'From Short Channel ID', width: 50, type: DataTypeEnum.STRING }], [{ key: 'fromChannelId', value: selFEvent.fromChannelId, title: 'From Channel Id', width: 100, type: DataTypeEnum.STRING }], [{ key: 'toChannelAlias', value: selFEvent.toChannelAlias, title: 'To Channel Alias', width: 50, type: DataTypeEnum.STRING }, - { key: 'toShortChannelId', value: selFEvent.toShortChannelId, title: 'To Short Channel ID', width: 50, type: DataTypeEnum.STRING }], + { key: 'toShortChannelId', value: selFEvent.toShortChannelId, title: 'To Short Channel ID', width: 50, type: DataTypeEnum.STRING }], [{ key: 'toChannelId', value: selFEvent.toChannelId, title: 'To Channel Id', width: 100, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Event Information', - message: reorderedFHEvent - } })); + if (selFEvent.type !== 'payment-relayed') { + reorderedFHEvent.unshift([{ key: 'type', value: this.commonService.camelCase(selFEvent.type), title: 'Relay Type', width: 100, type: DataTypeEnum.STRING }]); + } + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Event Information', + message: reorderedFHEvent + } + } + })); } loadForwardingEventsTable(forwardingEvents: PaymentRelayed[]) { @@ -134,6 +142,7 @@ export class ECLForwardingHistoryComponent implements OnInit, OnChanges, AfterVi return newRowData.includes(fltr); }; this.forwardingHistoryEvents.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.forwardingHistoryEvents); } diff --git a/src/app/eclair/routing/routing-peers/routing-peers.component.html b/src/app/eclair/routing/routing-peers/routing-peers.component.html index 5c3d8da2..b64b1e5a 100644 --- a/src/app/eclair/routing/routing-peers/routing-peers.component.html +++ b/src/app/eclair/routing/routing-peers/routing-peers.component.html @@ -5,11 +5,11 @@
Incoming
- +
- +
Date/Time{{fhEvent?.timestamp | date:'dd/MMM/YYYY HH:mm'}} + + {{fhEvent?.timestamp | date:'dd/MMM/YYYY HH:mm'}} + In Channel -

No forwarding history available.

-

Getting forwarding history...

-

{{errorMessage}}

+

No forwarding history available.

+

Getting forwarding history...

+

{{errorMessage}}

@@ -34,9 +34,9 @@ @@ -50,11 +50,11 @@
Outgoing
- +
- +
Channel ID -

No incoming routing peer available.

-

Getting incoming routing peers...

-

{{errorMessage}}

+

No incoming routing peer available.

+

Getting incoming routing peers...

+

{{errorMessage}}

@@ -79,9 +79,9 @@ diff --git a/src/app/eclair/routing/routing-peers/routing-peers.component.spec.ts b/src/app/eclair/routing/routing-peers/routing-peers.component.spec.ts index f5428f41..3b9b20ef 100644 --- a/src/app/eclair/routing/routing-peers/routing-peers.component.spec.ts +++ b/src/app/eclair/routing/routing-peers/routing-peers.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('ECLRoutingPeersComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/routing/routing-peers/routing-peers.component.ts b/src/app/eclair/routing/routing-peers/routing-peers.component.ts index 96d98a88..8ae2af1b 100644 --- a/src/app/eclair/routing/routing-peers/routing-peers.component.ts +++ b/src/app/eclair/routing/routing-peers/routing-peers.component.ts @@ -6,13 +6,14 @@ import { Store } from '@ngrx/store'; import { MatSort } from '@angular/material/sort'; import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatTableDataSource } from '@angular/material/table'; -import { PaymentRelayed, RoutingPeers } from '../../../shared/models/eclModels'; +import { PaymentRelayed, Payments, RoutingPeers } from '../../../shared/models/eclModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListECL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { payments } from '../../store/ecl.selector'; @Component({ selector: 'rtl-ecl-routing-peers', @@ -26,8 +27,8 @@ export class ECLRoutingPeersComponent implements OnInit, AfterViewInit, OnDestro @ViewChild('tableIn', { read: MatSort, static: false }) sortIn: MatSort; @ViewChild('tableOut', { read: MatSort, static: false }) sortOut: MatSort; - @ViewChild('paginatorIn', { static: false }) paginatorIn: MatPaginator|undefined; - @ViewChild('paginatorOut', { static: false }) paginatorOut: MatPaginator|undefined; + @ViewChild('paginatorIn', { static: false }) paginatorIn: MatPaginator | undefined; + @ViewChild('paginatorOut', { static: false }) paginatorOut: MatPaginator | undefined; public routingPeersData = []; public displayedColumns: any[] = []; public RoutingPeersIncoming: any; @@ -38,11 +39,13 @@ export class ECLRoutingPeersComponent implements OnInit, AfterViewInit, OnDestro public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListECL = null; + public filterIn = ''; + public filterOut = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -60,19 +63,19 @@ export class ECLRoutingPeersComponent implements OnInit, AfterViewInit, OnDestro } ngOnInit() { - this.store.select('ecl'). + this.store.select(payments). pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + subscribe((paymentsSelector: { payments: Payments, apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchPayments.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchPayments.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPayments.message) : this.apisCallStatus.FetchPayments.message; + this.apiCallStatus = paymentsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.routingPeersData = rtlStore.payments && rtlStore.payments.relayed ? rtlStore.payments.relayed : []; + this.routingPeersData = paymentsSelector.payments && paymentsSelector.payments.relayed ? paymentsSelector.payments.relayed : []; if (this.routingPeersData.length > 0 && this.sortIn && this.paginatorIn && this.sortOut && this.paginatorOut) { this.loadRoutingPeersTable(this.routingPeersData); } - this.logger.info(rtlStore); + this.logger.info(paymentsSelector); }); } @@ -100,6 +103,8 @@ export class ECLRoutingPeersComponent implements OnInit, AfterViewInit, OnDestro this.RoutingPeersIncoming = new MatTableDataSource([]); this.RoutingPeersOutgoing = new MatTableDataSource([]); } + this.applyIncomingFilter(); + this.applyOutgoingFilter(); } groupRoutingPeers(forwardingEvents: PaymentRelayed[]) { @@ -126,12 +131,12 @@ export class ECLRoutingPeersComponent implements OnInit, AfterViewInit, OnDestro return [this.commonService.sortDescByKey(incomingResults, 'totalFee'), this.commonService.sortDescByKey(outgoingResults, 'totalFee')]; } - applyIncomingFilter(selFilter: any) { - this.RoutingPeersIncoming.filter = selFilter.value.trim().toLowerCase(); + applyIncomingFilter() { + this.RoutingPeersIncoming.filter = this.filterIn.toLowerCase(); } - applyOutgoingFilter(selFilter: any) { - this.RoutingPeersOutgoing.filter = selFilter.value.trim().toLowerCase(); + applyOutgoingFilter() { + this.RoutingPeersOutgoing.filter = this.filterOut.toLowerCase(); } ngOnDestroy() { diff --git a/src/app/eclair/store/ecl.actions.ts b/src/app/eclair/store/ecl.actions.ts index abe9a39f..25fcc698 100644 --- a/src/app/eclair/store/ecl.actions.ts +++ b/src/app/eclair/store/ecl.actions.ts @@ -1,397 +1,102 @@ -import { Action } from '@ngrx/store'; +import { createAction, props } from '@ngrx/store'; +import { ECLActions } from '../../shared/services/consts-enums-functions'; import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; import { SelNodeChild } from '../../shared/models/RTLconfig'; -import { GetInfo, Channel, ChannelStats, Fees, Peer, LightningBalance, OnChainBalance, ChannelsStatus, Payments, Route, Transaction, SendPaymentOnChain, Invoice } from '../../shared/models/eclModels'; - -export const RESET_ECL_STORE = 'RESET_ECL_STORE'; -export const UPDATE_API_CALL_STATUS_ECL = 'UPDATE_API_CALL_STATUS_ECL'; -export const SET_CHILD_NODE_SETTINGS_ECL = 'SET_CHILD_NODE_SETTINGS_ECL'; -export const FETCH_INFO_ECL = 'FETCH_INFO_ECL'; -export const SET_INFO_ECL = 'SET_INFO_ECL'; -export const FETCH_FEES_ECL = 'FETCH_FEES_ECL'; -export const SET_FEES_ECL = 'SET_FEES_ECL'; -export const FETCH_CHANNELS_ECL = 'FETCH_CHANNELS_ECL'; -export const SET_ACTIVE_CHANNELS_ECL = 'SET_ACTIVE_CHANNELS_ECL'; -export const SET_PENDING_CHANNELS_ECL = 'SET_PENDING_CHANNELS_ECL'; -export const SET_INACTIVE_CHANNELS_ECL = 'SET_INACTIVE_CHANNELS_ECL'; -export const FETCH_CHANNEL_STATS_ECL = 'FETCH_CHANNEL_STATS_ECL'; -export const SET_CHANNEL_STATS_ECL = 'SET_CHANNEL_STATS_ECL'; -export const FETCH_ONCHAIN_BALANCE_ECL = 'FETCH_ONCHAIN_BALANCE_ECL'; -export const SET_ONCHAIN_BALANCE_ECL = 'SET_ONCHAIN_BALANCE_ECL'; -export const FETCH_LIGHTNING_BALANCE_ECL = 'FETCH_LIGHTNING_BALANCE_ECL'; -export const SET_LIGHTNING_BALANCE_ECL = 'SET_LIGHTNING_BALANCE_ECL'; -export const SET_CHANNELS_STATUS_ECL = 'SET_CHANNELS_STATUS_ECL'; -export const FETCH_PEERS_ECL = 'FETCH_PEERS_ECL'; -export const SET_PEERS_ECL = 'SET_PEERS_ECL'; -export const SAVE_NEW_PEER_ECL = 'SAVE_NEW_PEER_ECL'; -export const NEWLY_ADDED_PEER_ECL = 'NEWLY_ADDED_PEER_ECL'; -export const ADD_PEER_ECL = 'ADD_PEER_ECL'; -export const DETACH_PEER_ECL = 'DETACH_PEER_ECL'; -export const REMOVE_PEER_ECL = 'REMOVE_PEER_ECL'; -export const GET_NEW_ADDRESS_ECL = 'GET_NEW_ADDRESS_ECL'; -export const SET_NEW_ADDRESS_ECL = 'SET_NEW_ADDRESS_ECL'; -export const SAVE_NEW_CHANNEL_ECL = 'SAVE_NEW_CHANNEL_ECL'; -export const UPDATE_CHANNELS_ECL = 'UPDATE_CHANNELS_ECL'; -export const CLOSE_CHANNEL_ECL = 'CLOSE_CHANNEL_ECL'; -export const REMOVE_CHANNEL_ECL = 'REMOVE_CHANNEL_ECL'; -export const FETCH_PAYMENTS_ECL = 'FETCH_PAYMENTS_ECL'; -export const SET_PAYMENTS_ECL = 'SET_PAYMENTS_ECL'; -export const GET_QUERY_ROUTES_ECL = 'GET_QUERY_ROUTES_ECL'; -export const SET_QUERY_ROUTES_ECL = 'SET_QUERY_ROUTES_ECL'; -export const SEND_PAYMENT_ECL = 'SEND_PAYMENT_ECL'; -export const SEND_PAYMENT_STATUS_ECL = 'SEND_PAYMENT_STATUS_ECL'; -export const FETCH_TRANSACTIONS_ECL = 'FETCH_TRANSACTIONS_ECL'; -export const SET_TRANSACTIONS_ECL = 'SET_TRANSACTIONS_ECL'; -export const SEND_ONCHAIN_FUNDS_ECL = 'SEND_ONCHAIN_FUNDS_ECL'; -export const SEND_ONCHAIN_FUNDS_RES_ECL = 'SEND_ONCHAIN_FUNDS_RES_ECL'; -export const FETCH_INVOICES_ECL = 'FETCH_INVOICES_ECL'; -export const SET_INVOICES_ECL = 'SET_INVOICES_ECL'; -export const SET_TOTAL_INVOICES_ECL = 'SET_TOTAL_INVOICES_ECL'; -export const CREATE_INVOICE_ECL = 'CREATE_INVOICE_ECL'; -export const ADD_INVOICE_ECL = 'ADD_INVOICE_ECL'; -export const UPDATE_INVOICE_ECL = 'UPDATE_INVOICE_ECL'; -export const PEER_LOOKUP_ECL = 'PEER_LOOKUP_ECL'; -export const INVOICE_LOOKUP_ECL = 'INVOICE_LOOKUP_ECL'; -export const SET_LOOKUP_ECL = 'SET_LOOKUP_ECL'; +import { GetInfo, Channel, Fees, Peer, LightningBalance, OnChainBalance, ChannelsStatus, Payments, Route, Transaction, SendPaymentOnChain, Invoice, PaymentReceived, ChannelStateUpdate, SaveChannel, UpdateChannel, CloseChannel, GetQueryRoutes, CreateInvoice, SendPayment, PaymentRelayed } from '../../shared/models/eclModels'; -export class UpdateAPICallStatus implements Action { +export const updateECLAPICallStatus = createAction(ECLActions.UPDATE_API_CALL_STATUS_ECL, props<{ payload: ApiCallStatusPayload }>()); - readonly type = UPDATE_API_CALL_STATUS_ECL; - constructor(public payload: ApiCallStatusPayload) { } +export const resetECLStore = createAction(ECLActions.RESET_ECL_STORE, props<{ payload: SelNodeChild }>()); -} +export const setChildNodeSettingsECL = createAction(ECLActions.SET_CHILD_NODE_SETTINGS_ECL, props<{ payload: SelNodeChild }>()); -export class ResetECLStore implements Action { +export const fetchInfoECL = createAction(ECLActions.FETCH_INFO_ECL, props<{ payload: { loadPage: string } }>()); - readonly type = RESET_ECL_STORE; - constructor(public payload: SelNodeChild) {} +export const setInfo = createAction(ECLActions.SET_INFO_ECL, props<{ payload: GetInfo }>()); -} +export const fetchFees = createAction(ECLActions.FETCH_FEES_ECL); -export class SetChildNodeSettings implements Action { +export const setFees = createAction(ECLActions.SET_FEES_ECL, props<{ payload: Fees }>()); - readonly type = SET_CHILD_NODE_SETTINGS_ECL; - constructor(public payload: SelNodeChild) {} +export const fetchChannels = createAction(ECLActions.FETCH_CHANNELS_ECL, props<{ payload: { fetchPayments: boolean } }>()); -} +export const setActiveChannels = createAction(ECLActions.SET_ACTIVE_CHANNELS_ECL, props<{ payload: Channel[] }>()); -export class FetchInfo implements Action { +export const setPendingChannels = createAction(ECLActions.SET_PENDING_CHANNELS_ECL, props<{ payload: Channel[] }>()); - readonly type = FETCH_INFO_ECL; - constructor(public payload: {loadPage: string}) {} +export const setInactiveChannels = createAction(ECLActions.SET_INACTIVE_CHANNELS_ECL, props<{ payload: Channel[] }>()); -} +export const fetchOnchainBalance = createAction(ECLActions.FETCH_ONCHAIN_BALANCE_ECL); -export class SetInfo implements Action { +export const setOnchainBalance = createAction(ECLActions.SET_ONCHAIN_BALANCE_ECL, props<{ payload: OnChainBalance }>()); - readonly type = SET_INFO_ECL; - constructor(public payload: GetInfo) {} +export const setLightningBalance = createAction(ECLActions.SET_LIGHTNING_BALANCE_ECL, props<{ payload: LightningBalance }>()); -} +export const setChannelsStatus = createAction(ECLActions.SET_CHANNELS_STATUS_ECL, props<{ payload: ChannelsStatus }>()); -export class FetchFees implements Action { +export const fetchPeers = createAction(ECLActions.FETCH_PEERS_ECL); - readonly type = FETCH_FEES_ECL; +export const setPeers = createAction(ECLActions.SET_PEERS_ECL, props<{ payload: Peer[] }>()); -} +export const saveNewPeer = createAction(ECLActions.SAVE_NEW_PEER_ECL, props<{ payload: { id: string } }>()); -export class SetFees implements Action { +export const newlyAddedPeer = createAction(ECLActions.NEWLY_ADDED_PEER_ECL, props<{ payload: { peer: Peer } }>()); - readonly type = SET_FEES_ECL; - constructor(public payload: Fees) {} +export const addPeer = createAction(ECLActions.ADD_PEER_ECL, props<{ payload: Peer }>()); -} +export const disconnectPeer = createAction(ECLActions.DETACH_PEER_ECL, props<{ payload: { nodeId: string } }>()); -export class FetchChannels implements Action { +export const removePeer = createAction(ECLActions.REMOVE_PEER_ECL, props<{ payload: { nodeId: string } }>()); - readonly type = FETCH_CHANNELS_ECL; - constructor(public payload: {fetchPayments: boolean}) {} +export const getNewAddress = createAction(ECLActions.GET_NEW_ADDRESS_ECL); -} +export const setNewAddress = createAction(ECLActions.SET_NEW_ADDRESS_ECL, props<{ payload: string }>()); -export class SetActiveChannels implements Action { +export const saveNewChannel = createAction(ECLActions.SAVE_NEW_CHANNEL_ECL, props<{ payload: SaveChannel }>()); - readonly type = SET_ACTIVE_CHANNELS_ECL; - constructor(public payload: Channel[]) {} +export const updateChannel = createAction(ECLActions.UPDATE_CHANNEL_ECL, props<{ payload: UpdateChannel }>()); -} +export const closeChannel = createAction(ECLActions.CLOSE_CHANNEL_ECL, props<{ payload: CloseChannel }>()); -export class SetPendingChannels implements Action { +export const removeChannel = createAction(ECLActions.REMOVE_CHANNEL_ECL, props<{ payload: { channelId: string } }>()); - readonly type = SET_PENDING_CHANNELS_ECL; - constructor(public payload: Channel[]) {} +export const fetchPayments = createAction(ECLActions.FETCH_PAYMENTS_ECL); -} +export const setPayments = createAction(ECLActions.SET_PAYMENTS_ECL, props<{ payload: Payments }>()); -export class SetInactiveChannels implements Action { +export const getQueryRoutes = createAction(ECLActions.GET_QUERY_ROUTES_ECL, props<{ payload: GetQueryRoutes }>()); - readonly type = SET_INACTIVE_CHANNELS_ECL; - constructor(public payload: Channel[]) {} +export const setQueryRoutes = createAction(ECLActions.SET_QUERY_ROUTES_ECL, props<{ payload: Route[] }>()); -} +export const sendPayment = createAction(ECLActions.SEND_PAYMENT_ECL, props<{ payload: SendPayment }>()); -export class FetchChannelStats implements Action { +export const sendPaymentStatus = createAction(ECLActions.SEND_PAYMENT_STATUS_ECL, props<{ payload: any }>()); - readonly type = FETCH_CHANNEL_STATS_ECL; +export const fetchTransactions = createAction(ECLActions.FETCH_TRANSACTIONS_ECL); -} +export const setTransactions = createAction(ECLActions.SET_TRANSACTIONS_ECL, props<{ payload: Transaction[] }>()); -export class SetChannelStats implements Action { +export const sendOnchainFunds = createAction(ECLActions.SEND_ONCHAIN_FUNDS_ECL, props<{ payload: SendPaymentOnChain }>()); - readonly type = SET_CHANNEL_STATS_ECL; - constructor(public payload: ChannelStats[]) {} +export const sendOnchainFundsRes = createAction(ECLActions.SEND_ONCHAIN_FUNDS_RES_ECL, props<{ payload: any }>()); -} +export const fetchInvoices = createAction(ECLActions.FETCH_INVOICES_ECL); -export class FetchOnchainBalance implements Action { +export const setInvoices = createAction(ECLActions.SET_INVOICES_ECL, props<{ payload: Invoice[] }>()); - readonly type = FETCH_ONCHAIN_BALANCE_ECL; +export const createInvoice = createAction(ECLActions.CREATE_INVOICE_ECL, props<{ payload: CreateInvoice }>()); -} +export const addInvoice = createAction(ECLActions.ADD_INVOICE_ECL, props<{ payload: Invoice }>()); -export class SetOnchainBalance implements Action { +export const updateInvoice = createAction(ECLActions.UPDATE_INVOICE_ECL, props<{ payload: Invoice | PaymentReceived }>()); - readonly type = SET_ONCHAIN_BALANCE_ECL; - constructor(public payload: OnChainBalance) {} +export const peerLookup = createAction(ECLActions.PEER_LOOKUP_ECL, props<{ payload: string }>()); -} +export const invoiceLookup = createAction(ECLActions.INVOICE_LOOKUP_ECL, props<{ payload: string }>()); -export class SetLightningBalance implements Action { +export const setLookup = createAction(ECLActions.SET_LOOKUP_ECL, props<{ payload: any }>()); - readonly type = SET_LIGHTNING_BALANCE_ECL; - constructor(public payload: LightningBalance) {} +export const updateChannelState = createAction(ECLActions.UPDATE_CHANNEL_STATE_ECL, props<{ payload: ChannelStateUpdate }>()); -} - -export class SetChannelsStatus implements Action { - - readonly type = SET_CHANNELS_STATUS_ECL; - constructor(public payload: ChannelsStatus) {} - -} - -export class FetchPeers implements Action { - - readonly type = FETCH_PEERS_ECL; - -} - -export class SetPeers implements Action { - - readonly type = SET_PEERS_ECL; - constructor(public payload: Peer[]) {} - -} - -export class SaveNewPeer implements Action { - - readonly type = SAVE_NEW_PEER_ECL; - constructor(public payload: {id: string}) {} - -} - -export class NewlyAddedPeer implements Action { - - readonly type = NEWLY_ADDED_PEER_ECL; - constructor(public payload: { peer: Peer }) {} - -} - -export class AddPeer implements Action { - - readonly type = ADD_PEER_ECL; - constructor(public payload: Peer) {} - -} - -export class DisconnectPeer implements Action { - - readonly type = DETACH_PEER_ECL; - constructor(public payload: {nodeId: string}) {} - -} - -export class RemovePeer implements Action { - - readonly type = REMOVE_PEER_ECL; - constructor(public payload: {nodeId: string}) {} - -} - -export class GetNewAddress implements Action { - - readonly type = GET_NEW_ADDRESS_ECL; - -} - -export class SetNewAddress implements Action { - - readonly type = SET_NEW_ADDRESS_ECL; - constructor(public payload: string) {} // Payload = newAddress - -} - -export class SaveNewChannel implements Action { - - readonly type = SAVE_NEW_CHANNEL_ECL; - constructor(public payload: {nodeId: string, amount: number, private: boolean, feeRate?: number}) {} - -} - -export class UpdateChannels implements Action { - - readonly type = UPDATE_CHANNELS_ECL; - constructor(public payload: {baseFeeMsat: number, feeRate: number, channelId?: string, channelIds?: string}) {} - -} - -export class CloseChannel implements Action { - - readonly type = CLOSE_CHANNEL_ECL; - constructor(public payload: {channelId: string, force: boolean}) {} - -} - -export class RemoveChannel implements Action { - - readonly type = REMOVE_CHANNEL_ECL; - constructor(public payload: {channelId: string}) {} - -} - -export class FetchPayments implements Action { - - readonly type = FETCH_PAYMENTS_ECL; - -} - -export class SetPayments implements Action { - - readonly type = SET_PAYMENTS_ECL; - constructor(public payload: Payments) {} - -} - -export class GetQueryRoutes implements Action { - - readonly type = GET_QUERY_ROUTES_ECL; - constructor(public payload: {nodeId: string, amount: number}) {} - -} - -export class SetQueryRoutes implements Action { - - readonly type = SET_QUERY_ROUTES_ECL; - constructor(public payload: Route[]) {} - -} - -export class SendPayment implements Action { - - readonly type = SEND_PAYMENT_ECL; - constructor(public payload: { fromDialog: boolean, invoice: string, amountMsat?: number }) {} - -} - -export class SendPaymentStatus implements Action { - - readonly type = SEND_PAYMENT_STATUS_ECL; - constructor(public payload: any) {} - -} - -export class FetchTransactions implements Action { - - readonly type = FETCH_TRANSACTIONS_ECL; - -} - -export class SetTransactions implements Action { - - readonly type = SET_TRANSACTIONS_ECL; - constructor(public payload: Transaction[]) {} - -} - -export class SendOnchainFunds implements Action { - - readonly type = SEND_ONCHAIN_FUNDS_ECL; - constructor(public payload: SendPaymentOnChain) {} - -} - -export class SendOnchainFundsRes implements Action { - - readonly type = SEND_ONCHAIN_FUNDS_RES_ECL; - constructor(public payload: any) {} - -} - -export class FetchInvoices implements Action { - - readonly type = FETCH_INVOICES_ECL; - -} - -export class SetInvoices implements Action { - - readonly type = SET_INVOICES_ECL; - constructor(public payload: Invoice[]) {} - -} - -export class CreateInvoice implements Action { - - readonly type = CREATE_INVOICE_ECL; - constructor(public payload: {description: string, expireIn: number, amountMsat?: number}) {} - -} - -export class AddInvoice implements Action { - - readonly type = ADD_INVOICE_ECL; - constructor(public payload: Invoice) {} - -} - -export class UpdateInvoice implements Action { - - readonly type = UPDATE_INVOICE_ECL; - constructor(public payload: Invoice) {} - -} - - -export class PeerLookup implements Action { - - readonly type = PEER_LOOKUP_ECL; - constructor(public payload: string) {} // Payload = id - -} - -export class InvoiceLookup implements Action { - - readonly type = INVOICE_LOOKUP_ECL; - constructor(public payload: string) {} // Payload = paymentHash - -} - -export class SetLookup implements Action { - - readonly type = SET_LOOKUP_ECL; - constructor(public payload: any) {} // Payload = lookup Response (Peer) - -} - -export type ECLActions = ResetECLStore | UpdateAPICallStatus | SetChildNodeSettings | - FetchInfo | SetInfo | FetchFees | SetFees | - FetchChannels | SetActiveChannels | SetPendingChannels | SetInactiveChannels | - FetchPeers | SetPeers | AddPeer | DisconnectPeer | SaveNewPeer | RemovePeer | NewlyAddedPeer | - SetChannelsStatus | FetchChannelStats | SetChannelStats | - FetchOnchainBalance | SetOnchainBalance | GetNewAddress | SetNewAddress | - SendOnchainFunds | SendOnchainFundsRes | FetchTransactions | SetTransactions | - SetLightningBalance | FetchPeers | SetPeers | PeerLookup | InvoiceLookup | SetLookup | - SaveNewChannel | UpdateChannels | CloseChannel | RemoveChannel | - FetchPayments | SetPayments | SendPayment | SendPaymentStatus | - FetchInvoices | SetInvoices | CreateInvoice | AddInvoice | UpdateInvoice; +export const updateRelayedPayment = createAction(ECLActions.UPDATE_RELAYED_PAYMENT_ECL, props<{ payload: PaymentRelayed }>()); diff --git a/src/app/eclair/store/ecl.effects.ts b/src/app/eclair/store/ecl.effects.ts index 1c14047b..dcdb8d1a 100644 --- a/src/app/eclair/store/ecl.effects.ts +++ b/src/app/eclair/store/ecl.effects.ts @@ -4,70 +4,122 @@ import { Router } from '@angular/router'; import { Store } from '@ngrx/store'; import { Actions, createEffect, ofType } from '@ngrx/effects'; import { Subject, of } from 'rxjs'; -import { map, mergeMap, catchError, withLatestFrom, takeUntil } from 'rxjs/operators'; +import { map, mergeMap, catchError, takeUntil } from 'rxjs/operators'; import { Location } from '@angular/common'; import { environment, API_URL } from '../../../environments/environment'; import { LoggerService } from '../../shared/services/logger.service'; import { SessionService } from '../../shared/services/session.service'; import { CommonService } from '../../shared/services/common.service'; +import { WebSocketClientService } from '../../shared/services/web-socket.service'; import { ErrorMessageComponent } from '../../shared/components/data-modal/error-message/error-message.component'; -import { GetInfo, Channel, OnChainBalance, LightningBalance, ChannelsStatus, ChannelStats, Peer, Audit, Transaction, Invoice } from '../../shared/models/eclModels'; -import { APICallStatusEnum, UI_MESSAGES } from '../../shared/services/consts-enums-functions'; +import { GetInfo, OnChainBalance, Peer, Audit, Transaction, Invoice, Channel, ChannelStateUpdate, SaveChannel, UpdateChannel, CloseChannel, GetQueryRoutes, Route, SendPayment, SendPaymentOnChain, CreateInvoice } from '../../shared/models/eclModels'; +import { RTLActions, ECLActions, APICallStatusEnum, UI_MESSAGES, ECLWSEventTypeEnum } from '../../shared/services/consts-enums-functions'; +import { closeAllDialogs, closeSpinner, logout, openAlert, openSnackBar, openSpinner, setApiUrl, setNodeData } from '../../store/rtl.actions'; import { ECLInvoiceInformationComponent } from '../transactions/invoice-information-modal/invoice-information.component'; -import * as fromRTLReducer from '../../store/rtl.reducers'; -import * as fromECLReducer from './ecl.reducers'; -import * as ECLActions from './ecl.actions'; -import * as RTLActions from '../../store/rtl.actions'; +import { RTLState } from '../../store/rtl.state'; +import { fetchChannels, fetchFees, fetchInvoices, fetchOnchainBalance, fetchPayments, fetchPeers, sendPaymentStatus, setActiveChannels, setChannelsStatus, setInactiveChannels, setLightningBalance, setPeers, setPendingChannels, setQueryRoutes, updateECLAPICallStatus, updateChannelState, updateInvoice, updateRelayedPayment, addInvoice } from './ecl.actions'; +import { allAPIsCallStatus } from './ecl.selector'; +import { ApiCallsListECL } from '../../shared/models/apiCallsPayload'; @Injectable() export class ECLEffects implements OnDestroy { CHILD_API_URL = API_URL + '/ecl'; private flgInitialized = false; - private unSubs: Array> = [new Subject(), new Subject()]; + private flgReceivedPaymentUpdateFromWS = false; + private latestPaymentRes = ''; + private rawChannelsList: Channel[] = []; + private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; constructor( private actions: Actions, private httpClient: HttpClient, - private store: Store, + private store: Store, private sessionService: SessionService, private commonService: CommonService, private logger: LoggerService, private router: Router, + private wsService: WebSocketClientService, private location: Location ) { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - if ( - ((rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchOnchainBalance.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchOnchainBalance.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR)) && - !this.flgInitialized - ) { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.INITALIZE_NODE_DATA)); - this.flgInitialized = true; + this.store.select(allAPIsCallStatus).pipe(takeUntil(this.unSubs[0])).subscribe((allApisCallStatus: ApiCallsListECL) => { + if ( + ((allApisCallStatus.FetchInfo.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchFees.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchOnchainBalance.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchOnchainBalance.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchChannels.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchChannels.status === APICallStatusEnum.ERROR)) && + !this.flgInitialized + ) { + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.INITALIZE_NODE_DATA })); + this.flgInitialized = true; + } + }); + this.wsService.eclWSMessages.pipe( + takeUntil(this.unSubs[1])). + subscribe((newMessage) => { + this.logger.info('Received new message from the service: ' + JSON.stringify(newMessage)); + let snackBarMsg = ''; + if (newMessage) { + switch (newMessage.type) { + case ECLWSEventTypeEnum.PAYMENT_SENT: + if (newMessage && newMessage.id && this.latestPaymentRes === newMessage.id) { + this.flgReceivedPaymentUpdateFromWS = true; + snackBarMsg = 'Payment Sent: ' + ((newMessage.paymentHash) ? ('with payment hash ' + newMessage.paymentHash) : JSON.stringify(newMessage)); + this.handleSendPaymentStatus(snackBarMsg); + } + break; + case ECLWSEventTypeEnum.PAYMENT_FAILED: + if (newMessage && newMessage.id && this.latestPaymentRes === newMessage.id) { + this.flgReceivedPaymentUpdateFromWS = true; + snackBarMsg = 'Payment Failed: ' + ((newMessage.failures && newMessage.failures.length && newMessage.failures.length > 0 && newMessage.failures[0].t) ? newMessage.failures[0].t : (newMessage.failures && newMessage.failures.length && newMessage.failures.length > 0 && newMessage.failures[0].e && newMessage.failures[0].e.failureMessage) ? newMessage.failures[0].e.failureMessage : JSON.stringify(newMessage)); + this.handleSendPaymentStatus(snackBarMsg); + } + break; + case ECLWSEventTypeEnum.PAYMENT_RECEIVED: + this.store.dispatch(updateInvoice({ payload: newMessage })); + break; + case ECLWSEventTypeEnum.PAYMENT_RELAYED: + delete newMessage.source; + this.store.dispatch(updateRelayedPayment({ payload: newMessage })); + break; + case ECLWSEventTypeEnum.CHANNEL_STATE_CHANGED: + if ((newMessage).currentState === 'NORMAL' || (newMessage).currentState === 'CLOSED') { + this.rawChannelsList = this.rawChannelsList.map((channel) => { + if (channel.channelId === (newMessage).channelId && channel.nodeId === (newMessage).remoteNodeId) { + channel.state = (newMessage).currentState; + } + return channel; + }); + this.setChannelsAndStatusAndBalances(); + } else { + this.store.dispatch(updateChannelState({ payload: newMessage })); + } + break; + default: + this.logger.info('Received Event from WS: ' + JSON.stringify(newMessage)); + break; + } } }); } infoFetchECL = createEffect(() => this.actions.pipe( ofType(ECLActions.FETCH_INFO_ECL), - mergeMap((action: ECLActions.FetchInfo) => { + mergeMap((action: { type: string, payload: { loadPage: string } }) => { this.flgInitialized = false; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_NODE_INFO)); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchInfo', status: APICallStatusEnum.INITIATED })); + this.store.dispatch(setApiUrl({ payload: this.CHILD_API_URL })); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_NODE_INFO })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchInfo', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.GETINFO_API). pipe( takeUntil(this.actions.pipe(ofType(RTLActions.SET_SELECTED_NODE))), map((info) => { this.logger.info(info); this.initializeRemainingData(info, action.payload.loadPage); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchInfo', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_NODE_INFO)); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchInfo', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_NODE_INFO })); return { type: ECLActions.SET_INFO_ECL, payload: info ? info : {} @@ -86,13 +138,13 @@ export class ECLEffects implements OnDestroy { fetchFees = createEffect(() => this.actions.pipe( ofType(ECLActions.FETCH_FEES_ECL), - mergeMap((action: ECLActions.FetchFees) => { - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchFees', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchFees', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.FEES_API + '/fees'). pipe( map((fees: any) => { this.logger.info(fees); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchFees', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchFees', status: APICallStatusEnum.COMPLETED } })); return { type: ECLActions.SET_FEES_ECL, payload: fees ? fees : {} @@ -108,13 +160,13 @@ export class ECLEffects implements OnDestroy { fetchPayments = createEffect(() => this.actions.pipe( ofType(ECLActions.FETCH_PAYMENTS_ECL), - mergeMap((action: ECLActions.FetchPayments) => { - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchPayments', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchPayments', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.FEES_API + '/payments'). pipe( map((payments: any) => { this.logger.info(payments); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchPayments', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchPayments', status: APICallStatusEnum.COMPLETED } })); return { type: ECLActions.SET_PAYMENTS_ECL, payload: payments ? payments : {} @@ -130,24 +182,19 @@ export class ECLEffects implements OnDestroy { channelsFetch = createEffect(() => this.actions.pipe( ofType(ECLActions.FETCH_CHANNELS_ECL), - mergeMap((action: ECLActions.FetchChannels) => { - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchChannels', status: APICallStatusEnum.INITIATED })); - return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API). + mergeMap((action: { type: string, payload: { fetchPayments: boolean } }) => { + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchChannels', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API). pipe( - map((channelsRes: { activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], lightningBalances: LightningBalance, channelStatus: ChannelsStatus }) => { + map((channelsRes: Channel[]) => { this.logger.info(channelsRes); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchChannels', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new ECLActions.SetActiveChannels((channelsRes && channelsRes.activeChannels.length > 0) ? channelsRes.activeChannels : [])); - this.store.dispatch(new ECLActions.SetPendingChannels((channelsRes && channelsRes.pendingChannels.length > 0) ? channelsRes.pendingChannels : [])); - this.store.dispatch(new ECLActions.SetInactiveChannels((channelsRes && channelsRes.inactiveChannels.length > 0) ? channelsRes.inactiveChannels : [])); - this.store.dispatch(new ECLActions.SetLightningBalance(channelsRes.lightningBalances)); + this.rawChannelsList = channelsRes; + this.setChannelsAndStatusAndBalances(); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchChannels', status: APICallStatusEnum.COMPLETED } })); if (action.payload && action.payload.fetchPayments) { - this.store.dispatch(new ECLActions.FetchPayments()); + this.store.dispatch(fetchPayments()); } - return { - type: ECLActions.SET_CHANNELS_STATUS_ECL, - payload: channelsRes.channelStatus - }; + return { type: RTLActions.VOID }; }), catchError((err: any) => { this.handleErrorWithoutAlert('FetchChannels', UI_MESSAGES.NO_SPINNER, 'Fetching Channels Failed.', err); @@ -157,37 +204,15 @@ export class ECLEffects implements OnDestroy { }) )); - channelStatsFetch = createEffect(() => this.actions.pipe( - ofType(ECLActions.FETCH_CHANNEL_STATS_ECL), - mergeMap((action: ECLActions.FetchChannelStats) => { - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchChannelStats', status: APICallStatusEnum.INITIATED })); - return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API + '/stats'). - pipe( - map((channelStats: ChannelStats[]) => { - this.logger.info(channelStats); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchChannelStats', status: APICallStatusEnum.COMPLETED })); - return { - type: ECLActions.SET_CHANNEL_STATS_ECL, - payload: (channelStats && channelStats.length > 0) ? channelStats : [] - }; - }), - catchError((err: any) => { - this.handleErrorWithoutAlert('FetchChannelStats', UI_MESSAGES.NO_SPINNER, 'Fetching Channel Stats Failed.', err); - return of({ type: RTLActions.VOID }); - }) - ); - }) - )); - fetchOnchainBalance = createEffect(() => this.actions.pipe( ofType(ECLActions.FETCH_ONCHAIN_BALANCE_ECL), - mergeMap((action: ECLActions.FetchOnchainBalance) => { - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchOnchainBalance', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchOnchainBalance', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.ON_CHAIN_API + '/balance'); }), map((balance) => { this.logger.info(balance); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchOnchainBalance', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchOnchainBalance', status: APICallStatusEnum.COMPLETED } })); return { type: ECLActions.SET_ONCHAIN_BALANCE_ECL, payload: balance ? balance : {} @@ -201,16 +226,16 @@ export class ECLEffects implements OnDestroy { peersFetch = createEffect(() => this.actions.pipe( ofType(ECLActions.FETCH_PEERS_ECL), - mergeMap((action: ECLActions.FetchPeers) => { - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchPeers', status: APICallStatusEnum.INITIATED })); - return this.httpClient.get(this.CHILD_API_URL + environment.PEERS_API). + mergeMap(() => { + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchPeers', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.get(this.CHILD_API_URL + environment.PEERS_API). pipe( map((peers: Peer[]) => { this.logger.info(peers); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchPeers', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchPeers', status: APICallStatusEnum.COMPLETED } })); return { type: ECLActions.SET_PEERS_ECL, - payload: peers && peers.length ? peers : [] + payload: peers || [] }; }), catchError((err: any) => { @@ -223,13 +248,13 @@ export class ECLEffects implements OnDestroy { getNewAddress = createEffect(() => this.actions.pipe( ofType(ECLActions.GET_NEW_ADDRESS_ECL), - mergeMap((action: ECLActions.GetNewAddress) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GENERATE_NEW_ADDRESS)); + mergeMap(() => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GENERATE_NEW_ADDRESS })); return this.httpClient.get(this.CHILD_API_URL + environment.ON_CHAIN_API). pipe( map((newAddress: any) => { this.logger.info(newAddress); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GENERATE_NEW_ADDRESS)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GENERATE_NEW_ADDRESS })); return { type: ECLActions.SET_NEW_ADDRESS_ECL, payload: newAddress @@ -246,7 +271,7 @@ export class ECLEffects implements OnDestroy { setNewAddress = createEffect( () => this.actions.pipe( ofType(ECLActions.SET_NEW_ADDRESS_ECL), - map((action: ECLActions.SetNewAddress) => { + map((action: { type: string, payload: string }) => { this.logger.info(action.payload); return action.payload; })), @@ -255,18 +280,17 @@ export class ECLEffects implements OnDestroy { saveNewPeer = createEffect(() => this.actions.pipe( ofType(ECLActions.SAVE_NEW_PEER_ECL), - withLatestFrom(this.store.select('ecl')), - mergeMap(([action, eclData]: [ECLActions.SaveNewPeer, fromECLReducer.ECLState]) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.CONNECT_PEER)); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'SaveNewPeer', status: APICallStatusEnum.INITIATED })); - return this.httpClient.post(this.CHILD_API_URL + environment.PEERS_API + ((action.payload.id.includes('@') ? '?uri=' : '?nodeId=') + action.payload.id), {}). + mergeMap((action: { type: string, payload: { id: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.CONNECT_PEER })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'SaveNewPeer', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.post(this.CHILD_API_URL + environment.PEERS_API + ((action.payload.id.includes('@') ? '?uri=' : '?nodeId=') + action.payload.id), {}). pipe( map((postRes: Peer[]) => { this.logger.info(postRes); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'SaveNewPeer', status: APICallStatusEnum.COMPLETED })); - postRes = (postRes && postRes.length) ? postRes : []; - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.CONNECT_PEER)); - this.store.dispatch(new ECLActions.SetPeers(postRes)); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'SaveNewPeer', status: APICallStatusEnum.COMPLETED } })); + postRes = postRes || []; + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.CONNECT_PEER })); + this.store.dispatch(setPeers({ payload: postRes })); return { type: ECLActions.NEWLY_ADDED_PEER_ECL, payload: { peer: postRes.find((peer) => peer.nodeId === (action.payload.id.includes('@') ? action.payload.id.substring(0, action.payload.id.indexOf('@')) : action.payload.id)) } @@ -282,14 +306,14 @@ export class ECLEffects implements OnDestroy { detachPeer = createEffect(() => this.actions.pipe( ofType(ECLActions.DETACH_PEER_ECL), - mergeMap((action: ECLActions.DisconnectPeer) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.DISCONNECT_PEER)); + mergeMap((action: { type: string, payload: { nodeId: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.DISCONNECT_PEER })); return this.httpClient.delete(this.CHILD_API_URL + environment.PEERS_API + '/' + action.payload.nodeId). pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.DISCONNECT_PEER)); - this.store.dispatch(new RTLActions.OpenSnackBar('Disconnecting Peer!')); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.DISCONNECT_PEER })); + this.store.dispatch(openSnackBar({ payload: 'Disconnecting Peer!' })); return { type: ECLActions.REMOVE_PEER_ECL, payload: { nodeId: action.payload.nodeId } @@ -305,9 +329,9 @@ export class ECLEffects implements OnDestroy { openNewChannel = createEffect(() => this.actions.pipe( ofType(ECLActions.SAVE_NEW_CHANNEL_ECL), - mergeMap((action: ECLActions.SaveNewChannel) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.OPEN_CHANNEL)); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'SaveNewChannel', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SaveChannel }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.OPEN_CHANNEL })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'SaveNewChannel', status: APICallStatusEnum.INITIATED } })); const reqBody = action.payload.feeRate && action.payload.feeRate > 0 ? { nodeId: action.payload.nodeId, fundingSatoshis: action.payload.amount, channelFlags: +!action.payload.private, fundingFeerateSatByte: action.payload.feeRate } : { nodeId: action.payload.nodeId, fundingSatoshis: action.payload.amount, channelFlags: +!action.payload.private }; @@ -315,11 +339,11 @@ export class ECLEffects implements OnDestroy { pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'SaveNewChannel', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new ECLActions.FetchPeers()); - this.store.dispatch(new ECLActions.FetchOnchainBalance()); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.OPEN_CHANNEL)); - this.store.dispatch(new RTLActions.OpenSnackBar('Channel Added Successfully!')); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'SaveNewChannel', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(fetchPeers()); + this.store.dispatch(fetchOnchainBalance()); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.OPEN_CHANNEL })); + this.store.dispatch(openSnackBar({ payload: 'Channel Added Successfully!' })); return { type: ECLActions.FETCH_CHANNELS_ECL, payload: { fetchPayments: false } @@ -334,11 +358,15 @@ export class ECLEffects implements OnDestroy { )); updateChannel = createEffect(() => this.actions.pipe( - ofType(ECLActions.UPDATE_CHANNELS_ECL), - mergeMap((action: ECLActions.UpdateChannels) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.UPDATE_CHAN_POLICY)); + ofType(ECLActions.UPDATE_CHANNEL_ECL), + mergeMap((action: { type: string, payload: UpdateChannel }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.UPDATE_CHAN_POLICY })); let queryParam = '?feeBaseMsat=' + action.payload.baseFeeMsat + '&feeProportionalMillionths=' + action.payload.feeRate; - if (action.payload.channelIds) { + if (action.payload.nodeIds) { + queryParam = queryParam + '&nodeIds=' + action.payload.nodeIds; + } else if (action.payload.nodeId) { + queryParam = queryParam + '&nodeId=' + action.payload.nodeId; + } else if (action.payload.channelIds) { queryParam = queryParam + '&channelIds=' + action.payload.channelIds; } else { queryParam = queryParam + '&channelId=' + action.payload.channelId; @@ -347,11 +375,11 @@ export class ECLEffects implements OnDestroy { pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.UPDATE_CHAN_POLICY)); - if (action.payload.channelIds) { - this.store.dispatch(new RTLActions.OpenSnackBar('Channels Updated Successfully.')); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.UPDATE_CHAN_POLICY })); + if (action.payload.nodeIds || action.payload.channelIds) { + this.store.dispatch(openSnackBar({ payload: 'Channels Updated Successfully.' })); } else { - this.store.dispatch(new RTLActions.OpenSnackBar('Channel Updated Successfully!')); + this.store.dispatch(openSnackBar({ payload: 'Channel Updated Successfully!' })); } return { type: ECLActions.FETCH_CHANNELS_ECL, @@ -368,16 +396,16 @@ export class ECLEffects implements OnDestroy { closeChannel = createEffect(() => this.actions.pipe( ofType(ECLActions.CLOSE_CHANNEL_ECL), - mergeMap((action: ECLActions.CloseChannel) => { - this.store.dispatch(new RTLActions.OpenSpinner((action.payload.force) ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL)); + mergeMap((action: { type: string, payload: CloseChannel }) => { + this.store.dispatch(openSpinner({ payload: ((action.payload.force) ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL) })); return this.httpClient.delete(this.CHILD_API_URL + environment.CHANNELS_API + '?channelId=' + action.payload.channelId + '&force=' + action.payload.force). pipe( map((postRes: any) => { this.logger.info(postRes); setTimeout(() => { - this.store.dispatch(new RTLActions.CloseSpinner((action.payload.force) ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL)); - this.store.dispatch(new ECLActions.FetchChannels({ fetchPayments: false })); - this.store.dispatch(new RTLActions.OpenSnackBar(action.payload.force ? 'Channel Force Closed Successfully!' : 'Channel Closed Successfully!')); + this.store.dispatch(closeSpinner({ payload: ((action.payload.force) ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL) })); + this.store.dispatch(fetchChannels({ payload: { fetchPayments: false } })); + this.store.dispatch(openSnackBar({ payload: (action.payload.force ? 'Channel Force Closed Successfully!' : 'Channel Closed Successfully!') })); }, 2000); return { type: RTLActions.VOID @@ -393,7 +421,7 @@ export class ECLEffects implements OnDestroy { queryRoutesFetch = createEffect(() => this.actions.pipe( ofType(ECLActions.GET_QUERY_ROUTES_ECL), - mergeMap((action: ECLActions.GetQueryRoutes) => this.httpClient.get(this.CHILD_API_URL + environment.PAYMENTS_API + '/route?nodeId=' + action.payload.nodeId + '&amountMsat=' + action.payload.amount). + mergeMap((action: { type: string, payload: GetQueryRoutes }) => this.httpClient.get(this.CHILD_API_URL + environment.PAYMENTS_API + '/route?nodeId=' + action.payload.nodeId + '&amountMsat=' + action.payload.amount). pipe( map((qrRes: any) => { this.logger.info(qrRes); @@ -403,7 +431,7 @@ export class ECLEffects implements OnDestroy { }; }), catchError((err: any) => { - this.store.dispatch(new ECLActions.SetQueryRoutes([])); + this.store.dispatch(setQueryRoutes({ payload: [] })); this.handleErrorWithAlert('GetQueryRoutes', UI_MESSAGES.NO_SPINNER, 'Get Query Routes Failed', this.CHILD_API_URL + environment.PAYMENTS_API + '/route?nodeId=' + action.payload.nodeId + '&amountMsat=' + action.payload.amount, err); return of({ type: RTLActions.VOID }); }) @@ -413,27 +441,26 @@ export class ECLEffects implements OnDestroy { setQueryRoutes = createEffect( () => this.actions.pipe( ofType(ECLActions.SET_QUERY_ROUTES_ECL), - map((action: ECLActions.SetQueryRoutes) => action.payload)), + map((action: { type: string, payload: Route[] }) => action.payload)), { dispatch: false } ); sendPayment = createEffect(() => this.actions.pipe( ofType(ECLActions.SEND_PAYMENT_ECL), - withLatestFrom(this.store.select('root')), - mergeMap(([action, store]: [ECLActions.SendPayment, any]) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEND_PAYMENT)); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'SendPayment', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SendPayment }) => { + this.flgReceivedPaymentUpdateFromWS = false; + this.latestPaymentRes = ''; + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEND_PAYMENT })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'SendPayment', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.PAYMENTS_API, action.payload). pipe( map((sendRes: any) => { this.logger.info(sendRes); + this.latestPaymentRes = sendRes; setTimeout(() => { - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'SendPayment', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new ECLActions.SendPaymentStatus(sendRes)); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEND_PAYMENT)); - this.store.dispatch(new ECLActions.FetchChannels({ fetchPayments: true })); - this.store.dispatch(new ECLActions.FetchPayments()); - this.store.dispatch(new RTLActions.OpenSnackBar('Payment Submitted!')); + if (!this.flgReceivedPaymentUpdateFromWS) { + this.handleSendPaymentStatus('Payment Submitted!'); + } }, 3000); return { type: RTLActions.VOID }; }), @@ -452,16 +479,16 @@ export class ECLEffects implements OnDestroy { transactionsFetch = createEffect(() => this.actions.pipe( ofType(ECLActions.FETCH_TRANSACTIONS_ECL), - mergeMap((action: ECLActions.FetchTransactions) => { - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchTransactions', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchTransactions', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.ON_CHAIN_API + '/transactions?count=1000&skip=0'); }), map((transactions) => { this.logger.info(transactions); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchTransactions', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchTransactions', status: APICallStatusEnum.COMPLETED } })); return { type: ECLActions.SET_TRANSACTIONS_ECL, - payload: (transactions && transactions.length > 0) ? transactions : [] + payload: transactions || [] }; }), catchError((err: any) => { @@ -472,16 +499,16 @@ export class ECLEffects implements OnDestroy { SendOnchainFunds = createEffect(() => this.actions.pipe( ofType(ECLActions.SEND_ONCHAIN_FUNDS_ECL), - mergeMap((action: ECLActions.SendOnchainFunds) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEND_FUNDS)); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'SendOnchainFunds', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SendPaymentOnChain }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEND_FUNDS })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'SendOnchainFunds', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.ON_CHAIN_API, action.payload). pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'SendOnchainFunds', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEND_FUNDS)); - this.store.dispatch(new ECLActions.FetchOnchainBalance()); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'SendOnchainFunds', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEND_FUNDS })); + this.store.dispatch(fetchOnchainBalance()); return { type: ECLActions.SEND_ONCHAIN_FUNDS_RES_ECL, payload: postRes @@ -497,26 +524,30 @@ export class ECLEffects implements OnDestroy { createInvoice = createEffect(() => this.actions.pipe( ofType(ECLActions.CREATE_INVOICE_ECL), - mergeMap((action: ECLActions.CreateInvoice) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.CREATE_INVOICE)); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'CreateInvoice', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: CreateInvoice }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.CREATE_INVOICE })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'CreateInvoice', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.INVOICES_API, action.payload). pipe( map((postRes: Invoice) => { this.logger.info(postRes); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'CreateInvoice', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.CREATE_INVOICE)); - postRes.timestamp = new Date().getTime() / 1000; + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'CreateInvoice', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.CREATE_INVOICE })); + postRes.timestamp = Math.round(new Date().getTime() / 1000); postRes.expiresAt = Math.round(postRes.timestamp + action.payload.expireIn); postRes.description = action.payload.description; postRes.status = 'unpaid'; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - invoice: postRes, - newlyAdded: false, - component: ECLInvoiceInformationComponent - } - })); + setTimeout(() => { + this.store.dispatch(openAlert({ + payload: { + data: { + invoice: postRes, + newlyAdded: true, + component: ECLInvoiceInformationComponent + } + } + })); + }, 100); return { type: ECLActions.ADD_INVOICE_ECL, payload: postRes @@ -532,13 +563,13 @@ export class ECLEffects implements OnDestroy { invoicesFetch = createEffect(() => this.actions.pipe( ofType(ECLActions.FETCH_INVOICES_ECL), - mergeMap((action: ECLActions.FetchInvoices) => { - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchInvoices', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchInvoices', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.INVOICES_API). pipe( map((res: Invoice[]) => { this.logger.info(res); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'FetchInvoices', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'FetchInvoices', status: APICallStatusEnum.COMPLETED } })); return { type: ECLActions.SET_INVOICES_ECL, payload: res @@ -554,15 +585,15 @@ export class ECLEffects implements OnDestroy { peerLookup = createEffect(() => this.actions.pipe( ofType(ECLActions.PEER_LOOKUP_ECL), - mergeMap((action: ECLActions.PeerLookup) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEARCHING_NODE)); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEARCHING_NODE })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.NETWORK_API + '/nodes/' + action.payload). pipe( map((resPeer) => { this.logger.info(resPeer); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEARCHING_NODE)); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEARCHING_NODE })); return { type: ECLActions.SET_LOOKUP_ECL, payload: resPeer @@ -578,16 +609,16 @@ export class ECLEffects implements OnDestroy { invoiceLookup = createEffect(() => this.actions.pipe( ofType(ECLActions.INVOICE_LOOKUP_ECL), - mergeMap((action: ECLActions.InvoiceLookup) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEARCHING_INVOICE)); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEARCHING_INVOICE })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.INVOICES_API + '/' + action.payload). pipe( map((resInvoice) => { this.logger.info(resInvoice); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEARCHING_INVOICE)); - this.store.dispatch(new ECLActions.UpdateInvoice(resInvoice)); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEARCHING_INVOICE })); + this.store.dispatch(updateInvoice({ payload: resInvoice })); return { type: ECLActions.SET_LOOKUP_ECL, payload: resInvoice @@ -595,7 +626,7 @@ export class ECLEffects implements OnDestroy { }), catchError((err: any) => { this.handleErrorWithoutAlert('Lookup', UI_MESSAGES.SEARCHING_INVOICE, 'Invoice Lookup Failed', err); - this.store.dispatch(new RTLActions.OpenSnackBar({ message: 'Invoice Refresh Failed.', type: 'ERROR' })); + this.store.dispatch(openSnackBar({ payload: { message: 'Invoice Refresh Failed.', type: 'ERROR' } })); return of({ type: RTLActions.VOID }); }) ); @@ -605,13 +636,66 @@ export class ECLEffects implements OnDestroy { setLookup = createEffect( () => this.actions.pipe( ofType(ECLActions.SET_LOOKUP_ECL), - map((action: ECLActions.SetLookup) => { + map((action: { type: string, payload: any }) => { this.logger.info(action.payload); return action.payload; })), { dispatch: false } ); + setChannelsAndStatusAndBalances() { + let channelTotal = 0; + let totalLocalBalance = 0; + let totalRemoteBalance = 0; + let lightningBalances = { localBalance: 0, remoteBalance: 0 }; + let activeChannels = []; + const pendingChannels = []; + const inactiveChannels = []; + const channelStatus = { active: { channels: 0, capacity: 0 }, inactive: { channels: 0, capacity: 0 }, pending: { channels: 0, capacity: 0 } }; + this.rawChannelsList.forEach((channel, i) => { + if (channel.state === 'NORMAL') { + channelTotal = channel.toLocal + channel.toRemote; + totalLocalBalance = totalLocalBalance + channel.toLocal; + totalRemoteBalance = totalRemoteBalance + channel.toRemote; + channel.balancedness = (channelTotal === 0) ? 1 : +(1 - Math.abs((channel.toLocal - channel.toRemote) / channelTotal)).toFixed(3); + activeChannels.push(channel); + channelStatus.active.channels = channelStatus.active.channels + 1; + channelStatus.active.capacity = channelStatus.active.capacity + channel.toLocal; + } else if (channel.state.includes('WAIT') || channel.state.includes('CLOSING') || channel.state.includes('SYNCING')) { + channel.state = channel.state.replace(/_/g, ' '); + pendingChannels.push(channel); + channelStatus.pending.channels = channelStatus.pending.channels + 1; + channelStatus.pending.capacity = channelStatus.pending.capacity + channel.toLocal; + } else { + channel.state = channel.state.replace(/_/g, ' '); + inactiveChannels.push(channel); + channelStatus.inactive.channels = channelStatus.inactive.channels + 1; + channelStatus.inactive.capacity = channelStatus.inactive.capacity + channel.toLocal; + } + }); + lightningBalances = { localBalance: totalLocalBalance, remoteBalance: totalRemoteBalance }; + activeChannels = this.commonService.sortDescByKey(activeChannels, 'balancedness'); + this.logger.info('Active Channels: ' + JSON.stringify(activeChannels)); + this.logger.info('Pending Channels: ' + JSON.stringify(pendingChannels)); + this.logger.info('Inactive Channels: ' + JSON.stringify(inactiveChannels)); + this.logger.info('Lightning Balances: ' + JSON.stringify(lightningBalances)); + this.logger.info('Channels Status: ' + JSON.stringify(channelStatus)); + this.logger.info('Channel, status and balances: ' + JSON.stringify({ active: activeChannels, pending: pendingChannels, inactive: inactiveChannels, balances: lightningBalances, status: channelStatus })); + this.store.dispatch(setActiveChannels({ payload: activeChannels })); + this.store.dispatch(setPendingChannels({ payload: pendingChannels })); + this.store.dispatch(setInactiveChannels({ payload: inactiveChannels })); + this.store.dispatch(setLightningBalance({ payload: lightningBalances })); + this.store.dispatch(setChannelsStatus({ payload: channelStatus })); + } + + handleSendPaymentStatus = (msg: string) => { + this.store.dispatch(updateECLAPICallStatus({ payload: { action: 'SendPayment', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEND_PAYMENT })); + this.store.dispatch(sendPaymentStatus({ payload: this.latestPaymentRes })); + this.store.dispatch(fetchChannels({ payload: { fetchPayments: true } })); + this.store.dispatch(openSnackBar({ payload: msg })); + }; + initializeRemainingData(info: any, landingPage: string) { this.sessionService.setItem('eclUnlocked', 'true'); const node_data = { @@ -623,13 +707,8 @@ export class ECLEffects implements OnDestroy { version: info.version, numberOfPendingChannels: 0 }; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.INITALIZE_NODE_DATA)); - this.store.dispatch(new RTLActions.SetNodeData(node_data)); - this.store.dispatch(new ECLActions.FetchInvoices()); - this.store.dispatch(new ECLActions.FetchChannels({ fetchPayments: true })); - this.store.dispatch(new ECLActions.FetchFees()); - this.store.dispatch(new ECLActions.FetchOnchainBalance()); - this.store.dispatch(new ECLActions.FetchPeers()); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.INITALIZE_NODE_DATA })); + this.store.dispatch(setNodeData({ payload: node_data })); let newRoute = this.location.path(); if (newRoute.includes('/lnd/')) { newRoute = newRoute.replace('/lnd/', '/ecl/'); @@ -640,18 +719,23 @@ export class ECLEffects implements OnDestroy { newRoute = '/ecl/home'; } this.router.navigate([newRoute]); + this.store.dispatch(fetchInvoices()); + this.store.dispatch(fetchChannels({ payload: { fetchPayments: true } })); + this.store.dispatch(fetchFees()); + this.store.dispatch(fetchOnchainBalance()); + this.store.dispatch(fetchPeers()); } handleErrorWithoutAlert(actionName: string, uiMessage: string, genericErrorMessage: string, err: { status: number, error: any }) { this.logger.error('ERROR IN: ' + actionName + '\n' + JSON.stringify(err)); if (err.status === 401) { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: this.commonService.extractErrorMessage(err, genericErrorMessage) })); + this.store.dispatch(closeSpinner({ payload: uiMessage })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: this.commonService.extractErrorMessage(err, genericErrorMessage) } })); } } @@ -659,21 +743,23 @@ export class ECLEffects implements OnDestroy { this.logger.error(err); if (err.status === 401) { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); const errMsg = this.commonService.extractErrorMessage(err); - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: 'ERROR', - alertTitle: alertTitle, - message: { code: err.status, message: errMsg, URL: errURL }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: 'ERROR', + alertTitle: alertTitle, + message: { code: err.status, message: errMsg, URL: errURL }, + component: ErrorMessageComponent + } } })); - this.store.dispatch(new ECLActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg, URL: errURL })); + this.store.dispatch(updateECLAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg, URL: errURL } })); } } diff --git a/src/app/eclair/store/ecl.reducers.ts b/src/app/eclair/store/ecl.reducers.ts index b81798bd..86369335 100644 --- a/src/app/eclair/store/ecl.reducers.ts +++ b/src/app/eclair/store/ecl.reducers.ts @@ -1,217 +1,300 @@ -import { SelNodeChild } from '../../shared/models/RTLconfig'; -import { GetInfo, Channel, ChannelStats, Fees, OnChainBalance, LightningBalance, Peer, ChannelsStatus, Payments, Transaction, Invoice } from '../../shared/models/eclModels'; -import { ApiCallsListECL } from '../../shared/models/apiCallsPayload'; -import { APICallStatusEnum, UserPersonaEnum } from '../../shared/services/consts-enums-functions'; -import * as ECLActions from './ecl.actions'; +import { createReducer, on } from '@ngrx/store'; -export interface ECLState { - apisCallStatus: ApiCallsListECL; - nodeSettings: SelNodeChild; - information: GetInfo; - fees: Fees; - activeChannels: Channel[]; - pendingChannels: Channel[]; - inactiveChannels: Channel[]; - channelsStatus: ChannelsStatus; - channelStats: ChannelStats[]; - onchainBalance: OnChainBalance; - lightningBalance: LightningBalance; - peers: Peer[]; - payments: Payments; - transactions: Transaction[]; - invoices: Invoice[]; -} +import { initECLState } from './ecl.state'; +import { addInvoice, removeChannel, removePeer, resetECLStore, setActiveChannels, setChannelsStatus, setChildNodeSettingsECL, setFees, setInactiveChannels, setInfo, setInvoices, setLightningBalance, setOnchainBalance, setPayments, setPeers, setPendingChannels, setTransactions, updateECLAPICallStatus, updateChannelState, updateInvoice, updateRelayedPayment } from './ecl.actions'; +import { Channel, PaymentReceived, PaymentRelayed } from '../../shared/models/eclModels'; -export const initECLState: ECLState = { - apisCallStatus: { - FetchInfo: { status: APICallStatusEnum.UN_INITIATED }, - FetchFees: { status: APICallStatusEnum.UN_INITIATED }, - FetchChannels: { status: APICallStatusEnum.UN_INITIATED }, - FetchOnchainBalance: { status: APICallStatusEnum.UN_INITIATED }, - FetchPeers: { status: APICallStatusEnum.UN_INITIATED }, - FetchPayments: { status: APICallStatusEnum.UN_INITIATED }, - FetchInvoices: { status: APICallStatusEnum.UN_INITIATED }, - FetchTransactions: { status: APICallStatusEnum.UN_INITIATED } - }, - nodeSettings: { userPersona: UserPersonaEnum.OPERATOR, selCurrencyUnit: 'USD', fiatConversion: false, channelBackupPath: '', currencyUnits: [] }, - information: {}, - fees: {}, - activeChannels: [], - pendingChannels: [], - inactiveChannels: [], - channelsStatus: {}, - channelStats: [], - onchainBalance: { total: 0, confirmed: 0, unconfirmed: 0 }, - lightningBalance: { localBalance: -1, remoteBalance: -1 }, - peers: [], - payments: {}, - transactions: [], - invoices: [] -}; - -export function ECLReducer(state = initECLState, action: ECLActions.ECLActions) { - switch (action.type) { - case ECLActions.UPDATE_API_CALL_STATUS_ECL: - const updatedApisCallStatus = state.apisCallStatus; - updatedApisCallStatus[action.payload.action] = { - status: action.payload.status, - statusCode: action.payload.statusCode, - message: action.payload.message, - URL: action.payload.URL, - filePath: action.payload.filePath - }; - return { - ...state, - apisCallStatus: updatedApisCallStatus - }; - case ECLActions.SET_CHILD_NODE_SETTINGS_ECL: - return { - ...state, - nodeSettings: action.payload - }; - case ECLActions.RESET_ECL_STORE: - return { - ...initECLState, - nodeSettings: action.payload - }; - case ECLActions.SET_INFO_ECL: - return { - ...state, - information: action.payload - }; - case ECLActions.SET_FEES_ECL: - return { - ...state, - fees: action.payload - }; - case ECLActions.SET_ACTIVE_CHANNELS_ECL: - return { - ...state, - activeChannels: action.payload - }; - case ECLActions.SET_PENDING_CHANNELS_ECL: - return { - ...state, - pendingChannels: action.payload - }; - case ECLActions.SET_INACTIVE_CHANNELS_ECL: - return { - ...state, - inactiveChannels: action.payload - }; - case ECLActions.SET_CHANNELS_STATUS_ECL: - return { - ...state, - channelsStatus: action.payload - }; - case ECLActions.SET_CHANNEL_STATS_ECL: - return { - ...state, - channelStats: action.payload - }; - case ECLActions.SET_ONCHAIN_BALANCE_ECL: - return { - ...state, - onchainBalance: action.payload - }; - case ECLActions.SET_LIGHTNING_BALANCE_ECL: - return { - ...state, - lightningBalance: action.payload - }; - case ECLActions.SET_PEERS_ECL: - return { - ...state, - peers: action.payload - }; - case ECLActions.REMOVE_PEER_ECL: - const modifiedPeers = [...state.peers]; - const removePeerIdx = state.peers.findIndex((peer) => peer.nodeId === action.payload.nodeId); - if (removePeerIdx > -1) { - modifiedPeers.splice(removePeerIdx, 1); +export const ECLReducer = createReducer(initECLState, + on(updateECLAPICallStatus, (state, { payload }) => { + const updatedApisCallStatus = JSON.parse(JSON.stringify(state.apisCallStatus)); + updatedApisCallStatus[payload.action] = { + status: payload.status, + statusCode: payload.statusCode, + message: payload.message, + URL: payload.URL, + filePath: payload.filePath + }; + return { + ...state, + apisCallStatus: updatedApisCallStatus + }; + }), + on(setChildNodeSettingsECL, (state, { payload }) => ({ + ...state, + nodeSettings: payload + })), + on(resetECLStore, (state, { payload }) => ({ + ...initECLState, + nodeSettings: payload + })), + on(setInfo, (state, { payload }) => ({ + ...state, + information: payload + })), + on(setFees, (state, { payload }) => ({ + ...state, + fees: payload + })), + on(setActiveChannels, (state, { payload }) => ({ + ...state, + activeChannels: payload + })), + on(setPendingChannels, (state, { payload }) => ({ + ...state, + pendingChannels: payload + })), + on(setInactiveChannels, (state, { payload }) => ({ + ...state, + inactiveChannels: payload + })), + on(setChannelsStatus, (state, { payload }) => ({ + ...state, + channelsStatus: payload + })), + on(setOnchainBalance, (state, { payload }) => ({ + ...state, + onchainBalance: payload + })), + on(setLightningBalance, (state, { payload }) => ({ + ...state, + lightningBalance: payload + })), + on(setPeers, (state, { payload }) => ({ + ...state, + peers: payload + })), + on(removePeer, (state, { payload }) => { + const modifiedPeers = [...state.peers]; + const removePeerIdx = state.peers.findIndex((peer) => peer.nodeId === payload.nodeId); + if (removePeerIdx > -1) { + modifiedPeers.splice(removePeerIdx, 1); + } + return { + ...state, + peers: modifiedPeers + }; + }), + on(removeChannel, (state, { payload }) => { + const modifiedChannels = [...state.activeChannels]; + const removeChannelIdx = state.activeChannels.findIndex((channel) => channel.channelId === payload.channelId); + if (removeChannelIdx > -1) { + modifiedChannels.splice(removeChannelIdx, 1); + } + return { + ...state, + activeChannels: modifiedChannels + }; + }), + on(setPayments, (state, { payload }) => { + if (payload && payload.sent) { + const storedChannels = [...state.activeChannels, ...state.pendingChannels, ...state.inactiveChannels]; + payload.sent.map((sentPayment) => { + const peerFound = state.peers.find((peer) => peer.nodeId === sentPayment.recipientNodeId); + sentPayment.recipientNodeAlias = peerFound ? peerFound.alias : sentPayment.recipientNodeId; + if (sentPayment.parts) { + sentPayment.parts.map((part) => { + const channelFound = storedChannels.find((channel) => channel.channelId === part.toChannelId); + part.toChannelAlias = channelFound ? channelFound.alias : part.toChannelId; + return sentPayment.parts; + }); + } + return payload.sent; + }); + } + if (payload && payload.relayed) { + const storedChannels = [...state.activeChannels, ...state.pendingChannels, ...state.inactiveChannels]; + payload.relayed.forEach((rlEvent) => { + rlEvent = mapAliases(rlEvent, storedChannels); + }); + } + return { + ...state, + payments: payload + }; + }), + on(setTransactions, (state, { payload }) => ({ + ...state, + transactions: payload + })), + on(addInvoice, (state, { payload }) => { + const newInvoices = state.invoices; + newInvoices.unshift(payload); + return { + ...state, + invoices: newInvoices + }; + }), + on(setInvoices, (state, { payload }) => ({ + ...state, + invoices: payload + })), + on(updateInvoice, (state, { payload }) => { + let modifiedInvoices = state.invoices; + modifiedInvoices = modifiedInvoices.map((invoice) => { + if (invoice.paymentHash === payload.paymentHash) { + if (payload.hasOwnProperty('type')) { + const updatedInvoice = JSON.parse(JSON.stringify(invoice)); + updatedInvoice.amountSettled = ((payload).parts && (payload).parts.length && (payload).parts.length > 0 && (payload).parts[0].amount) ? (payload).parts[0].amount / 1000 : 0; + updatedInvoice.receivedAt = ((payload).parts && (payload).parts.length && (payload).parts.length > 0 && (payload).parts[0].timestamp) ? Math.round((payload).parts[0].timestamp / 1000) : 0; + updatedInvoice.status = 'received'; + return updatedInvoice; + } else { + return payload; + } + } + return invoice; + }); + return { + ...state, + invoices: modifiedInvoices + }; + }), + on(updateChannelState, (state, { payload }) => { + let modifiedPendingChannels = state.pendingChannels; + modifiedPendingChannels = modifiedPendingChannels.map((pendingChannel) => { + if (pendingChannel.channelId === payload.channelId && pendingChannel.nodeId === payload.remoteNodeId) { + payload.currentState = payload.currentState.replace(/_/g, ' '); + pendingChannel.state = payload.currentState; + } + return pendingChannel; + }); + return { + ...state, + pendingChannels: modifiedPendingChannels + }; + }), + on(updateRelayedPayment, (state, { payload }) => { + const modifiedPayments = state.payments; + const updatedPayload = mapAliases(payload, [...state.activeChannels, ...state.pendingChannels, ...state.inactiveChannels]); + updatedPayload.amountIn = Math.round(payload.amountIn / 1000); + updatedPayload.amountOut = Math.round(payload.amountOut / 1000); + modifiedPayments.relayed.unshift(updatedPayload); + const feeSats = payload.amountIn - payload.amountOut; + const modifiedLightningBalance = { localBalance: (state.lightningBalance.localBalance + feeSats), remoteBalance: (state.lightningBalance.remoteBalance - feeSats) }; + const modifiedChannelStatus = state.channelsStatus; + modifiedChannelStatus.active.capacity = state.channelsStatus.active.capacity + feeSats; + const modifiedFees = { + daily_fee: (state.fees.daily_fee + feeSats), daily_txs: (state.fees.daily_txs + 1), + weekly_fee: (state.fees.weekly_fee + feeSats), weekly_txs: (state.fees.weekly_txs + 1), + monthly_fee: (state.fees.monthly_fee + feeSats), monthly_txs: (state.fees.monthly_txs + 1) + }; + const modifiedActiveChannels = state.activeChannels; + let foundFrom = false; + let foundTo = false; + for (const channel of modifiedActiveChannels) { + if (channel.channelId === payload.fromChannelId) { + foundFrom = true; + const channelTotal = channel.toLocal + channel.toRemote; + channel.toLocal = channel.toLocal + updatedPayload.amountIn; + channel.toRemote = channel.toRemote - updatedPayload.amountIn; + channel.balancedness = (channelTotal === 0) ? 1 : +(1 - Math.abs((channel.toLocal - channel.toRemote) / channelTotal)).toFixed(3); + } + if (channel.channelId === payload.toChannelId) { + foundTo = true; + const channelTotal = channel.toLocal + channel.toRemote; + channel.toLocal = channel.toLocal - updatedPayload.amountOut; + channel.toRemote = channel.toRemote + updatedPayload.amountOut; + channel.balancedness = (channelTotal === 0) ? 1 : +(1 - Math.abs((channel.toLocal - channel.toRemote) / channelTotal)).toFixed(3); } - return { - ...state, - peers: modifiedPeers - }; - case ECLActions.REMOVE_CHANNEL_ECL: - const modifiedChannels = [...state.activeChannels]; - const removeChannelIdx = state.activeChannels.findIndex((channel) => channel.channelId === action.payload.channelId); - if (removeChannelIdx > -1) { - modifiedChannels.splice(removeChannelIdx, 1); + if (foundTo && foundFrom) { + break; } - return { - ...state, - activeChannels: modifiedChannels - }; - case ECLActions.SET_PAYMENTS_ECL: - if (action.payload && action.payload.relayed) { - const storedChannels = [...state.activeChannels, ...state.pendingChannels, ...state.inactiveChannels]; - action.payload.relayed.forEach((rlEvent) => { - if (storedChannels && storedChannels.length > 0) { - for (let idx = 0; idx < storedChannels.length; idx++) { - if (storedChannels[idx].channelId.toString() === rlEvent.fromChannelId) { - rlEvent.fromChannelAlias = storedChannels[idx].alias ? storedChannels[idx].alias : rlEvent.fromChannelId; - rlEvent.fromShortChannelId = storedChannels[idx].shortChannelId ? storedChannels[idx].shortChannelId : ''; - if (rlEvent.toChannelAlias) { - return; - } - } - if (storedChannels[idx].channelId.toString() === rlEvent.toChannelId) { - rlEvent.toChannelAlias = storedChannels[idx].alias ? storedChannels[idx].alias : rlEvent.toChannelId; - rlEvent.toShortChannelId = storedChannels[idx].shortChannelId ? storedChannels[idx].shortChannelId : ''; - if (rlEvent.fromChannelAlias) { - return; - } - } - if (idx === storedChannels.length - 1) { - if (!rlEvent.fromChannelAlias) { - rlEvent.fromChannelAlias = rlEvent.fromChannelId.substring(0, 17) + '...'; - rlEvent.fromShortChannelId = ''; - } - if (!rlEvent.toChannelAlias) { - rlEvent.toChannelAlias = rlEvent.toChannelId.substring(0, 17) + '...'; - rlEvent.toShortChannelId = ''; - } - } - } - } else { + }; + return { + ...state, + payments: modifiedPayments, + lightningBalance: modifiedLightningBalance, + channelStatus: modifiedChannelStatus, + fees: modifiedFees, + activeChannels: modifiedActiveChannels + }; + }) +); + +const mapAliases = (rlEvent: PaymentRelayed, storedChannels: Channel[]) => { + if (rlEvent.type === 'payment-relayed') { + if (storedChannels && storedChannels.length > 0) { + for (let idx = 0; idx < storedChannels.length; idx++) { + if (storedChannels[idx].channelId.toString() === rlEvent.fromChannelId) { + rlEvent.fromChannelAlias = storedChannels[idx].alias ? storedChannels[idx].alias : rlEvent.fromChannelId; + rlEvent.fromShortChannelId = storedChannels[idx].shortChannelId ? storedChannels[idx].shortChannelId : ''; + if (rlEvent.toChannelAlias) { + return rlEvent; + } + } + if (storedChannels[idx].channelId.toString() === rlEvent.toChannelId) { + rlEvent.toChannelAlias = storedChannels[idx].alias ? storedChannels[idx].alias : rlEvent.toChannelId; + rlEvent.toShortChannelId = storedChannels[idx].shortChannelId ? storedChannels[idx].shortChannelId : ''; + if (rlEvent.fromChannelAlias) { + return rlEvent; + } + } + if (idx === storedChannels.length - 1) { + if (!rlEvent.fromChannelAlias) { rlEvent.fromChannelAlias = rlEvent.fromChannelId.substring(0, 17) + '...'; rlEvent.fromShortChannelId = ''; + } + if (!rlEvent.toChannelAlias) { rlEvent.toChannelAlias = rlEvent.toChannelId.substring(0, 17) + '...'; rlEvent.toShortChannelId = ''; } + } + } + } else { + rlEvent.fromChannelAlias = rlEvent.fromChannelId.substring(0, 17) + '...'; + rlEvent.fromShortChannelId = ''; + rlEvent.toChannelAlias = rlEvent.toChannelId.substring(0, 17) + '...'; + rlEvent.toShortChannelId = ''; + } + } else if (rlEvent.type = 'trampoline-payment-relayed') { + if (storedChannels && storedChannels.length > 0) { + for (let idx = 0; idx < storedChannels.length; idx++) { + rlEvent.incoming.forEach((incomingEvent) => { + if (storedChannels[idx].channelId.toString() === incomingEvent.channelId) { + incomingEvent.channelAlias = storedChannels[idx].alias ? storedChannels[idx].alias : incomingEvent.channelId; + incomingEvent.shortChannelId = storedChannels[idx].shortChannelId ? storedChannels[idx].shortChannelId : ''; + } + }); + rlEvent.outgoing.forEach((outgoingEvent) => { + if (storedChannels[idx].channelId.toString() === outgoingEvent.channelId) { + outgoingEvent.channelAlias = storedChannels[idx].alias ? storedChannels[idx].alias : outgoingEvent.channelId; + outgoingEvent.shortChannelId = storedChannels[idx].shortChannelId ? storedChannels[idx].shortChannelId : ''; + } }); + if (idx === storedChannels.length - 1) { + if (!rlEvent.incoming[0].channelAlias) { + rlEvent.incoming.forEach((incomingEvent) => { + incomingEvent.channelAlias = incomingEvent.channelId.substring(0, 17) + '...'; + incomingEvent.shortChannelId = ''; + }); + } + if (!rlEvent.outgoing[0].channelAlias) { + rlEvent.outgoing.forEach((outgoingEvent) => { + outgoingEvent.channelAlias = outgoingEvent.channelId.substring(0, 17) + '...'; + outgoingEvent.shortChannelId = ''; + }); + } + } } - return { - ...state, - payments: action.payload - }; - case ECLActions.SET_TRANSACTIONS_ECL: - return { - ...state, - transactions: action.payload - }; - case ECLActions.ADD_INVOICE_ECL: - const newInvoices = state.invoices; - newInvoices.unshift(action.payload); - return { - ...state, - invoices: newInvoices - }; - case ECLActions.SET_INVOICES_ECL: - return { - ...state, - invoices: action.payload - }; - case ECLActions.UPDATE_INVOICE_ECL: - let modifiedInvoices = state.invoices; - modifiedInvoices = modifiedInvoices.map((invoice) => ((invoice.paymentHash === action.payload.paymentHash) ? action.payload : invoice)); - return { - ...state, - invoices: modifiedInvoices - }; - default: - return state; + } else { + rlEvent.incoming.forEach((incomingEvent) => { + incomingEvent.channelAlias = incomingEvent.channelId.substring(0, 17) + '...'; + incomingEvent.shortChannelId = ''; + }); + rlEvent.outgoing.forEach((outgoingEvent) => { + outgoingEvent.channelAlias = outgoingEvent.channelId.substring(0, 17) + '...'; + outgoingEvent.shortChannelId = ''; + }); + } + rlEvent.amountIn = rlEvent.incoming.reduce((acc, curr) => acc + curr.amount, 0); + rlEvent.fromChannelId = rlEvent.incoming[0].channelId; + rlEvent.fromChannelAlias = rlEvent.incoming[0].channelAlias; + rlEvent.fromShortChannelId = rlEvent.incoming[0].shortChannelId; + + rlEvent.amountOut = rlEvent.outgoing.reduce((acc, curr) => acc + curr.amount, 0); + rlEvent.toChannelId = rlEvent.outgoing[0].channelId; + rlEvent.toChannelAlias = rlEvent.outgoing[0].channelAlias; + rlEvent.toShortChannelId = rlEvent.outgoing[0].shortChannelId; } -} + return rlEvent; +}; diff --git a/src/app/eclair/store/ecl.selector.ts b/src/app/eclair/store/ecl.selector.ts new file mode 100644 index 00000000..efdfeda7 --- /dev/null +++ b/src/app/eclair/store/ecl.selector.ts @@ -0,0 +1,17 @@ +import { createFeatureSelector, createSelector } from '@ngrx/store'; +import { APICallStatusEnum } from '../../shared/services/consts-enums-functions'; +import { ECLState } from './ecl.state'; + +export const eclState = createFeatureSelector('ecl'); +export const eclNodeSettings = createSelector(eclState, (state: ECLState) => state.nodeSettings); +export const eclNodeInformation = createSelector(eclState, (state: ECLState) => state.information); +export const nodeInfoStatus = createSelector(eclState, (state: ECLState) => ({ information: state.information, apiCallStatus: state.apisCallStatus.FetchInfo })); +export const apiCallStatusNodeInfo = createSelector(eclState, (state: ECLState) => state.apisCallStatus.FetchInfo); +export const allAPIsCallStatus = createSelector(eclState, (state: ECLState) => state.apisCallStatus); +export const payments = createSelector(eclState, (state: ECLState) => ({ payments: state.payments, apiCallStatus: state.apisCallStatus.FetchPayments })); +export const fees = createSelector(eclState, (state: ECLState) => ({ fees: state.fees, apiCallStatus: state.apisCallStatus.FetchFees })); +export const allChannelsInfo = createSelector(eclState, (state: ECLState) => ({ activeChannels: state.activeChannels, pendingChannels: state.pendingChannels, inactiveChannels: state.inactiveChannels, lightningBalance: state.lightningBalance, channelsStatus: state.channelsStatus, apiCallStatus: state.apisCallStatus.FetchChannels })); +export const transactions = createSelector(eclState, (state: ECLState) => ({ transactions: state.transactions, apiCallStatus: state.apisCallStatus.FetchTransactions })); +export const invoices = createSelector(eclState, (state: ECLState) => ({ invoices: state.invoices, apiCallStatus: state.apisCallStatus.FetchInvoices })); +export const peers = createSelector(eclState, (state: ECLState) => ({ peers: state.peers, apiCallStatus: state.apisCallStatus.FetchPeers })); +export const onchainBalance = createSelector(eclState, (state: ECLState) => ({ onchainBalance: state.onchainBalance, apiCallStatus: state.apisCallStatus.FetchOnchainBalance })); diff --git a/src/app/eclair/store/ecl.state.ts b/src/app/eclair/store/ecl.state.ts new file mode 100644 index 00000000..c218c19f --- /dev/null +++ b/src/app/eclair/store/ecl.state.ts @@ -0,0 +1,52 @@ +import { SelNodeChild } from '../../shared/models/RTLconfig'; +import { GetInfo, Channel, Fees, OnChainBalance, LightningBalance, Peer, ChannelsStatus, Payments, Transaction, Invoice } from '../../shared/models/eclModels'; +import { ApiCallsListECL } from '../../shared/models/apiCallsPayload'; +import { APICallStatusEnum, UserPersonaEnum } from '../../shared/services/consts-enums-functions'; + +export interface ECLState { + apisCallStatus: ApiCallsListECL; + nodeSettings: SelNodeChild; + information: GetInfo; + fees: Fees; + activeChannels: Channel[]; + pendingChannels: Channel[]; + inactiveChannels: Channel[]; + channelsStatus: ChannelsStatus; + onchainBalance: OnChainBalance; + lightningBalance: LightningBalance; + peers: Peer[]; + payments: Payments; + transactions: Transaction[]; + invoices: Invoice[]; +} + +export const initECLState: ECLState = { + apisCallStatus: { + FetchInfo: { status: APICallStatusEnum.UN_INITIATED }, + FetchFees: { status: APICallStatusEnum.UN_INITIATED }, + FetchChannels: { status: APICallStatusEnum.UN_INITIATED }, + FetchOnchainBalance: { status: APICallStatusEnum.UN_INITIATED }, + FetchPeers: { status: APICallStatusEnum.UN_INITIATED }, + FetchPayments: { status: APICallStatusEnum.UN_INITIATED }, + FetchInvoices: { status: APICallStatusEnum.UN_INITIATED }, + FetchTransactions: { status: APICallStatusEnum.UN_INITIATED } + }, + nodeSettings: { userPersona: UserPersonaEnum.OPERATOR, selCurrencyUnit: 'USD', fiatConversion: false, channelBackupPath: '', currencyUnits: [] }, + information: {}, + fees: {}, + activeChannels: [], + pendingChannels: [], + inactiveChannels: [], + channelsStatus: { + active: { channels: 0, capacity: 0 }, + inactive: { channels: 0, capacity: 0 }, + pending: { channels: 0, capacity: 0 }, + closing: { channels: 0, capacity: 0 } + }, + onchainBalance: { total: 0, confirmed: 0, unconfirmed: 0 }, + lightningBalance: { localBalance: -1, remoteBalance: -1 }, + peers: [], + payments: {}, + transactions: [], + invoices: [] +}; diff --git a/src/app/eclair/transactions/create-invoice-modal/create-invoice.component.html b/src/app/eclair/transactions/create-invoice-modal/create-invoice.component.html index 22fc34b3..95fe2252 100644 --- a/src/app/eclair/transactions/create-invoice-modal/create-invoice.component.html +++ b/src/app/eclair/transactions/create-invoice-modal/create-invoice.component.html @@ -33,8 +33,8 @@ {{invoiceError}}
- - + +
diff --git a/src/app/eclair/transactions/create-invoice-modal/create-invoice.component.ts b/src/app/eclair/transactions/create-invoice-modal/create-invoice.component.ts index 58070f9e..cb3f2dd1 100644 --- a/src/app/eclair/transactions/create-invoice-modal/create-invoice.component.ts +++ b/src/app/eclair/transactions/create-invoice-modal/create-invoice.component.ts @@ -8,13 +8,14 @@ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { ECLInvoiceInformation } from '../../../shared/models/alertData'; -import { TimeUnitEnum, CurrencyUnitEnum, TIME_UNITS, CURRENCY_UNIT_FORMATS, PAGE_SIZE, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; +import { TimeUnitEnum, CurrencyUnitEnum, TIME_UNITS, CURRENCY_UNIT_FORMATS, PAGE_SIZE, APICallStatusEnum, ECLActions } from '../../../shared/services/consts-enums-functions'; import { SelNodeChild } from '../../../shared/models/RTLconfig'; import { GetInfo } from '../../../shared/models/eclModels'; import { CommonService } from '../../../shared/services/common.service'; -import * as ECLActions from '../../store/ecl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { createInvoice } from '../../store/ecl.actions'; +import { eclNodeInformation, eclNodeSettings } from '../../store/ecl.selector'; @Component({ selector: 'rtl-ecl-create-invoices', @@ -41,30 +42,34 @@ export class ECLCreateInvoiceComponent implements OnInit, OnDestroy { public invoiceError = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ECLInvoiceInformation, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private actions: Actions) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ECLInvoiceInformation, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private actions: Actions) { } ngOnInit() { this.pageSize = this.data.pageSize; - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; + this.store.select(eclNodeSettings).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(eclNodeInformation).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeInfo: any) => { + this.information = nodeInfo; }); this.actions.pipe( - takeUntil(this.unSubs[1]), - filter((action) => action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL || action.type === ECLActions.ADD_INVOICE_ECL)). - subscribe((action: ECLActions.UpdateAPICallStatus | ECLActions.AddInvoice) => { - if (action.type === ECLActions.ADD_INVOICE_ECL) { - this.dialogRef.close(); - } - if (action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL && action.payload.status === APICallStatusEnum.ERROR && action.payload.action === 'CreateInvoice') { - this.invoiceError = action.payload.message; + takeUntil(this.unSubs[2]), + filter((action) => action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL)). + subscribe((action: any) => { + if (action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL && action.payload.action === 'CreateInvoice') { + if (action.payload.status === APICallStatusEnum.ERROR) { + this.invoiceError = action.payload.message; + } + if (action.payload.status === APICallStatusEnum.COMPLETED) { + this.dialogRef.close(); + } } }); } - onAddInvoice(form: any): boolean|void { + onAddInvoice(form: any): boolean | void { this.invoiceError = ''; if (!this.description) { return true; @@ -79,7 +84,7 @@ export class ECLCreateInvoiceComponent implements OnInit, OnDestroy { } else { invoicePayload = { description: this.description, expireIn: expiryInSecs }; } - this.store.dispatch(new ECLActions.CreateInvoice(invoicePayload)); + this.store.dispatch(createInvoice({ payload: invoicePayload })); } resetData() { @@ -96,12 +101,14 @@ export class ECLCreateInvoiceComponent implements OnInit, OnDestroy { if (this.selNode.fiatConversion && this.invoiceValue > 99) { this.invoiceValueHint = ''; this.commonService.convertCurrency(this.invoiceValue, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[2])). - subscribe({ next: (data) => { - this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; - }, error: (err) => { - this.invoiceValueHint = 'Conversion Error: ' + err; - } }); + pipe(takeUntil(this.unSubs[3])). + subscribe({ + next: (data) => { + this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; + }, error: (err) => { + this.invoiceValueHint = 'Conversion Error: ' + err; + } + }); } } diff --git a/src/app/eclair/transactions/invoice-information-modal/invoice-information.component.html b/src/app/eclair/transactions/invoice-information-modal/invoice-information.component.html index 9911b509..985404d1 100644 --- a/src/app/eclair/transactions/invoice-information-modal/invoice-information.component.html +++ b/src/app/eclair/transactions/invoice-information-modal/invoice-information.component.html @@ -1,7 +1,7 @@
-
Channel ID -

No outgoing routing peer available.

-

Getting outgoing routing peers...

-

{{errorMessage}}

+

No outgoing routing peer available.

+

Getting outgoing routing peers...

+

{{errorMessage}}

@@ -41,7 +41,7 @@ - + @@ -84,14 +84,14 @@ - +
Date Created Date Settled {{invoice.receivedAtStr || '-'}}{{((invoice.receivedAt * 1000) | date:'dd/MMM/YYYY HH:mm') || '-'}} Description -

No invoice available.

-

Getting invoices...

-

{{errorMessage}}

+

No invoice available.

+

Getting invoices...

+

{{errorMessage}}

diff --git a/src/app/eclair/transactions/invoices/lightning-invoices.component.ts b/src/app/eclair/transactions/invoices/lightning-invoices.component.ts index afeef7ac..e33f7b00 100644 --- a/src/app/eclair/transactions/invoices/lightning-invoices.component.ts +++ b/src/app/eclair/transactions/invoices/lightning-invoices.component.ts @@ -9,26 +9,25 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; +import { CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum, ECLActions } from '../../../shared/services/consts-enums-functions'; import { SelNodeChild } from '../../../shared/models/RTLconfig'; import { GetInfo, Invoice } from '../../../shared/models/eclModels'; -import { ApiCallsListECL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; import { ECLCreateInvoiceComponent } from '../create-invoice-modal/create-invoice.component'; import { ECLInvoiceInformationComponent } from '../invoice-information-modal/invoice-information.component'; -import { newlyAddedRowAnimation } from '../../../shared/animation/row-animation'; -import * as ECLActions from '../../store/ecl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { createInvoice, invoiceLookup } from '../../store/ecl.actions'; +import { eclNodeInformation, eclNodeSettings, invoices } from '../../store/ecl.selector'; @Component({ selector: 'rtl-ecl-lightning-invoices', templateUrl: './lightning-invoices.component.html', styleUrls: ['./lightning-invoices.component.scss'], - animations: [newlyAddedRowAnimation], providers: [ { provide: MatPaginatorIntl, useValue: getPaginatorLabel('Invoices') } ] @@ -36,13 +35,12 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnDestroy { @Input() calledFrom = 'transactions'; // Transactions/home - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; faHistory = faHistory; public selNode: SelNodeChild = {}; public newlyAddedInvoiceMemo = ''; public newlyAddedInvoiceValue = 0; - public flgAnimate = true; public description = ''; public expiry: number; public invoiceValue: number = null; @@ -53,16 +51,17 @@ export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnD public invoiceJSONArr: Invoice[] = []; public information: GetInfo = {}; public flgSticky = false; + public selFilter = ''; public pageSize = PAGE_SIZE; public pageSizeOptions = PAGE_SIZE_OPTIONS; public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListECL = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private datePipe: DatePipe, private actions: Actions) { + constructor(private logger: LoggerService, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private datePipe: DatePipe, private actions: Actions) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -80,27 +79,29 @@ export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnD } ngOnInit() { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(eclNodeSettings).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(eclNodeInformation).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeInfo: any) => { + this.information = nodeInfo; + }); + this.store.select(invoices).pipe(takeUntil(this.unSubs[2])). + subscribe((invoicesSelector: { invoices: Invoice[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchInvoices.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchInvoices.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchInvoices.message) : this.apisCallStatus.FetchInvoices.message; + this.apiCallStatus = invoicesSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - this.invoiceJSONArr = (rtlStore.invoices && rtlStore.invoices.length > 0) ? rtlStore.invoices : []; + this.invoiceJSONArr = (invoicesSelector.invoices && invoicesSelector.invoices.length > 0) ? invoicesSelector.invoices : []; if (this.invoiceJSONArr && this.invoiceJSONArr.length > 0 && this.sort && this.paginator) { this.loadInvoicesTable(this.invoiceJSONArr); } - setTimeout(() => { - this.flgAnimate = false; - }, 5000); - this.logger.info(rtlStore); + this.logger.info(invoicesSelector); }); - this.actions.pipe(takeUntil(this.unSubs[1]), filter((action) => (action.type === ECLActions.SET_LOOKUP_ECL || action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL))). - subscribe((resLookup: ECLActions.SetLookup | ECLActions.UpdateAPICallStatus) => { + this.actions.pipe(takeUntil(this.unSubs[3]), filter((action) => (action.type === ECLActions.SET_LOOKUP_ECL || action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL))). + subscribe((resLookup: any) => { if (resLookup.type === ECLActions.SET_LOOKUP_ECL) { if (this.invoiceJSONArr.length > 0 && this.sort && this.paginator && resLookup.payload) { this.updateInvoicesData(JSON.parse(JSON.stringify(resLookup.payload))); @@ -117,18 +118,21 @@ export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnD } openCreateInvoiceModal() { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - pageSize: this.pageSize, - component: ECLCreateInvoiceComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + pageSize: this.pageSize, + component: ECLCreateInvoiceComponent + } + } + })); } - onAddInvoice(form: any): boolean|void { + onAddInvoice(form: any): boolean | void { if (!this.description) { return true; } const expiryInSecs = (this.expiry ? this.expiry : 3600); - this.flgAnimate = true; this.newlyAddedInvoiceMemo = 'ulbl' + Math.random().toString(36).slice(2) + Date.now(); this.newlyAddedInvoiceValue = this.invoiceValue; let invoicePayload = null; @@ -137,20 +141,24 @@ export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnD } else { invoicePayload = { description: this.description, expireIn: expiryInSecs }; } - this.store.dispatch(new ECLActions.CreateInvoice(invoicePayload)); + this.store.dispatch(createInvoice({ payload: invoicePayload })); this.resetData(); } onInvoiceClick(selInvoice: Invoice) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - invoice: selInvoice, - newlyAdded: false, - component: ECLInvoiceInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + invoice: selInvoice, + newlyAdded: false, + component: ECLInvoiceInformationComponent + } + } + })); } onRefreshInvoice(selInvoice: Invoice) { - this.store.dispatch(new ECLActions.InvoiceLookup(selInvoice.paymentHash)); + this.store.dispatch(invoiceLookup({ payload: selInvoice.paymentHash })); } updateInvoicesData(newInvoice: Invoice) { @@ -166,6 +174,7 @@ export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnD return newRowData.includes(fltr); }; this.invoices.paginator = this.paginator; + this.applyFilter(); } resetData() { @@ -175,20 +184,22 @@ export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnD this.invoiceValueHint = ''; } - applyFilter(selFilter: any) { - this.invoices.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.invoices.filter = this.selFilter.trim().toLowerCase(); } onInvoiceValueChange() { if (this.selNode.fiatConversion && this.invoiceValue > 99) { this.invoiceValueHint = ''; this.commonService.convertCurrency(this.invoiceValue, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[2])). - subscribe({ next: (data) => { - this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; - }, error: (err) => { - this.invoiceValueHint = 'Conversion Error: ' + err; - } }); + pipe(takeUntil(this.unSubs[4])). + subscribe({ + next: (data) => { + this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; + }, error: (err) => { + this.invoiceValueHint = 'Conversion Error: ' + err; + } + }); } } diff --git a/src/app/eclair/transactions/payment-information-modal/payment-information.component.html b/src/app/eclair/transactions/payment-information-modal/payment-information.component.html index 3d45092b..cc13e058 100644 --- a/src/app/eclair/transactions/payment-information-modal/payment-information.component.html +++ b/src/app/eclair/transactions/payment-information-modal/payment-information.component.html @@ -102,7 +102,7 @@
- +
diff --git a/src/app/eclair/transactions/payments/lightning-payments.component.html b/src/app/eclair/transactions/payments/lightning-payments.component.html index eebd50f0..0b51ddb0 100644 --- a/src/app/eclair/transactions/payments/lightning-payments.component.html +++ b/src/app/eclair/transactions/payments/lightning-payments.component.html @@ -20,127 +20,129 @@ Payments History
- +
-
- - - - - - - - +
+
+ +
Date/Time{{payment?.firstPartTimestamp | date:'dd/MMM/YYYY HH:mm'}}ID
+ + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - + + + + - - - -
Date/Time{{payment?.firstPartTimestamp | date:'dd/MMM/YYYY HH:mm'}}ID +
+ {{payment.id}} +
+
Destination +
+ {{payment.recipientNodeAlias}} +
+
Amount (Sats){{(payment?.recipientAmount) | number}} +
+ + + Download CSV + +
+
+ + +

No payment available.

+

Getting payments...

+

{{errorMessage}}

+
-
- {{payment.id}} -
+ + Total Attempts: {{payment?.parts?.length}} + + + + {{part.timestamp | date:'dd/MMM/YYYY HH:mm'}} + +
Destination -
- {{payment.recipientNodeAlias}} +
+ {{payment.id}}
+ + + + {{part.id}} + + +
Amount (Sats){{(payment?.recipientAmount) | number}} -
- - - Download CSV - + +
+
+ {{payment?.recipientNodeAlias}}
- -
- - -

No payment available.

-

Getting payments...

-

{{errorMessage}}

-
- - Total Attempts: {{payment?.parts?.length}} - - - - {{part.timestamp | date:'dd/MMM/YYYY HH:mm'}} - - - -
- {{payment.id}} -
- - - - {{part.id}} + + + + {{part.toChannelAlias}} + - -
-
- {{payment?.recipientNodeAlias}} -
- - - - {{part.toChannelAlias}} +
+ {{payment?.recipientAmount | number:'1.0-0'}} + + + {{part.amount | number:'1.0-0'}} - - - {{payment?.recipientAmount | number:'1.0-0'}} - - - {{part.amount | number:'1.0-0'}} + + + - - - - - -
-
- +
+
+ +
-
-
+ + + + +
diff --git a/src/app/eclair/transactions/payments/lightning-payments.component.ts b/src/app/eclair/transactions/payments/lightning-payments.component.ts index 6456694a..ed4f12af 100644 --- a/src/app/eclair/transactions/payments/lightning-payments.component.ts +++ b/src/app/eclair/transactions/payments/lightning-payments.component.ts @@ -8,28 +8,27 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { GetInfo, PayRequest, PaymentSent, PaymentSentPart } from '../../../shared/models/eclModels'; +import { GetInfo, PayRequest, PaymentSent, PaymentSentPart, Payments } from '../../../shared/models/eclModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListECL } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; import { DataService } from '../../../shared/services/data.service'; -import { newlyAddedRowAnimation } from '../../../shared/animation/row-animation'; import { ECLLightningSendPaymentsComponent } from '../send-payment-modal/send-payment.component'; import { ECLPaymentInformationComponent } from '../payment-information-modal/payment-information.component'; import { SelNodeChild } from '../../../shared/models/RTLconfig'; import { RTLEffects } from '../../../store/rtl.effects'; -import * as ECLActions from '../../store/ecl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../store/rtl.actions'; +import { sendPayment } from '../../store/ecl.actions'; +import { eclNodeInformation, eclNodeSettings, payments } from '../../store/ecl.selector'; @Component({ selector: 'rtl-ecl-lightning-payments', templateUrl: './lightning-payments.component.html', styleUrls: ['./lightning-payments.component.scss'], - animations: [newlyAddedRowAnimation], providers: [ { provide: MatPaginatorIntl, useValue: getPaginatorLabel('Payments') } ] @@ -42,7 +41,6 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public faHistory = faHistory; public newlyAddedPayment = ''; - public flgAnimate = true; public selNode: SelNodeChild = {}; public information: GetInfo = {}; public payments: any; @@ -58,11 +56,12 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListECL = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private rtlEffects: RTLEffects, private decimalPipe: DecimalPipe, private dataService: DataService, private datePipe: DatePipe) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private rtlEffects: RTLEffects, private decimalPipe: DecimalPipe, private dataService: DataService, private datePipe: DatePipe) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -84,31 +83,22 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD } ngOnInit() { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(eclNodeSettings).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(eclNodeInformation).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; + }); + this.store.select(payments).pipe(takeUntil(this.unSubs[2])). + subscribe((paymentsSeletor: { payments: Payments, apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchPayments.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchPayments.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPayments.message) : this.apisCallStatus.FetchPayments.message; - } - this.information = rtlStore.information; - this.selNode = rtlStore.nodeSettings; - if (rtlStore.payments.sent) { - rtlStore.payments.sent.map((sentPayment) => { - const peerFound = rtlStore.peers.find((peer) => peer.nodeId === sentPayment.recipientNodeId); - sentPayment.recipientNodeAlias = peerFound ? peerFound.alias : sentPayment.recipientNodeId; - if (sentPayment.parts) { - sentPayment.parts.map((part) => { - const channelFound = rtlStore.activeChannels.find((channel) => channel.channelId === part.toChannelId); - part.toChannelAlias = channelFound ? channelFound.alias : part.toChannelId; - return sentPayment.parts; - }); - } - return rtlStore.payments.sent; - }); + this.apiCallStatus = paymentsSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.paymentJSONArr = (rtlStore.payments && rtlStore.payments.sent && rtlStore.payments.sent.length > 0) ? rtlStore.payments.sent : []; + this.paymentJSONArr = (paymentsSeletor.payments && paymentsSeletor.payments.sent && paymentsSeletor.payments.sent.length > 0) ? paymentsSeletor.payments.sent : []; // FOR MPP TESTING START // If (this.paymentJSONArr.length > 0) { // This.paymentJSONArr[3].parts.push({ @@ -130,10 +120,7 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD // This.paymentJSONArr = this.paymentJSONArr.splice(2, 5); // FOR MPP TESTING END this.loadPaymentsTable(this.paymentJSONArr); - setTimeout(() => { - this.flgAnimate = false; - }, 3000); - this.logger.info(rtlStore); + this.logger.info(paymentsSeletor); }); } @@ -171,6 +158,7 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD return newRowData.includes(fltr); }; this.payments.paginator = this.paginator; + this.applyFilter(); } onSendPayment(): boolean | void { @@ -196,7 +184,6 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD } sendPayment() { - this.flgAnimate = true; this.newlyAddedPayment = this.paymentDecoded.paymentHash; if (!this.paymentDecoded.amount || this.paymentDecoded.amount === 0) { const reorderedPaymentDecoded = [ @@ -204,22 +191,24 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD [{ key: 'nodeId', value: this.paymentDecoded.nodeId, title: 'Payee', width: 100 }], [{ key: 'description', value: this.paymentDecoded.description, title: 'Description', width: 100 }], [{ key: 'timestamp', value: this.paymentDecoded.timestamp, title: 'Creation Date', width: 40, type: DataTypeEnum.DATE_TIME }, - { key: 'expiry', value: this.paymentDecoded.expiry, title: 'Expiry', width: 30, type: DataTypeEnum.NUMBER }, - { key: 'minFinalCltvExpiry', value: this.paymentDecoded.minFinalCltvExpiry, title: 'CLTV Expiry', width: 30 }] + { key: 'expiry', value: this.paymentDecoded.expiry, title: 'Expiry', width: 30, type: DataTypeEnum.NUMBER }, + { key: 'minFinalCltvExpiry', value: this.paymentDecoded.minFinalCltvExpiry, title: 'CLTV Expiry', width: 30 }] ]; const titleMsg = 'It is a zero amount invoice. Enter the amount (Sats) to pay.'; - this.store.dispatch(new RTLActions.OpenConfirmation({ - data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Enter Amount and Confirm Send Payment', - message: reorderedPaymentDecoded, - noBtnText: 'Cancel', - yesBtnText: 'Send Payment', - flgShowInput: true, - titleMessage: titleMsg, - getInputs: [ - { placeholder: 'Amount (Sats)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: '', width: 30 } - ] + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Enter Amount and Confirm Send Payment', + message: reorderedPaymentDecoded, + noBtnText: 'Cancel', + yesBtnText: 'Send Payment', + flgShowInput: true, + titleMessage: titleMsg, + getInputs: [ + { placeholder: 'Amount (Sats)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: '', width: 30 } + ] + } } })); this.rtlEffects.closeConfirm. @@ -227,7 +216,7 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD subscribe((confirmRes) => { if (confirmRes) { this.paymentDecoded.amount = confirmRes[0].inputValue; - this.store.dispatch(new ECLActions.SendPayment({ invoice: this.paymentRequest, amountMsat: confirmRes[0].inputValue * 1000, fromDialog: false })); + this.store.dispatch(sendPayment({ payload: { invoice: this.paymentRequest, amountMsat: confirmRes[0].inputValue * 1000, fromDialog: false } })); this.resetData(); } }); @@ -237,24 +226,26 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD [{ key: 'nodeId', value: this.paymentDecoded.nodeId, title: 'Payee', width: 100 }], [{ key: 'description', value: this.paymentDecoded.description, title: 'Description', width: 100 }], [{ key: 'timestamp', value: this.paymentDecoded.timestamp, title: 'Creation Date', width: 50, type: DataTypeEnum.DATE_TIME }, - { key: 'amount', value: this.paymentDecoded.amount, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'amount', value: this.paymentDecoded.amount, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'expiry', value: this.paymentDecoded.expiry, title: 'Expiry', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'minFinalCltvExpiry', value: this.paymentDecoded.minFinalCltvExpiry, title: 'CLTV Expiry', width: 50 }] + { key: 'minFinalCltvExpiry', value: this.paymentDecoded.minFinalCltvExpiry, title: 'CLTV Expiry', width: 50 }] ]; - this.store.dispatch(new RTLActions.OpenConfirmation({ - data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Confirm Send Payment', - noBtnText: 'Cancel', - yesBtnText: 'Send Payment', - message: reorderedPaymentDecoded + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Confirm Send Payment', + noBtnText: 'Cancel', + yesBtnText: 'Send Payment', + message: reorderedPaymentDecoded + } } })); this.rtlEffects.closeConfirm. pipe(take(1)). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new ECLActions.SendPayment({ invoice: this.paymentRequest, fromDialog: false })); + this.store.dispatch(sendPayment({ payload: { invoice: this.paymentRequest, fromDialog: false } })); this.resetData(); } }); @@ -271,7 +262,7 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD if (this.paymentDecoded.amount) { if (this.selNode.fiatConversion) { this.commonService.convertCurrency(+this.paymentDecoded.amount, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[1])). + pipe(takeUntil(this.unSubs[3])). subscribe({ next: (data) => { this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; @@ -290,9 +281,11 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD } openSendPaymentModal() { - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - component: ECLLightningSendPaymentsComponent + this.store.dispatch(openAlert({ + payload: { + data: { + component: ECLLightningSendPaymentsComponent + } } })); } @@ -313,7 +306,9 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD pipe(take(1)). subscribe({ next: (sentPaymentInfo) => { - this.showPaymentView(selPayment, (sentPaymentInfo.length && sentPaymentInfo.length > 0) ? sentPaymentInfo[0] : []); + setTimeout(() => { + this.showPaymentView(selPayment, (sentPaymentInfo.length && sentPaymentInfo.length > 0) ? sentPaymentInfo[0] : []); + }, 0); }, error: (error) => { this.showPaymentView(selPayment, []); } @@ -324,11 +319,13 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD } showPaymentView(selPayment: PaymentSent, sentPaymentInfo?: any[]) { - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - sentPaymentInfo: sentPaymentInfo, - payment: selPayment, - component: ECLPaymentInformationComponent + this.store.dispatch(openAlert({ + payload: { + data: { + sentPaymentInfo: sentPaymentInfo, + payment: selPayment, + component: ECLPaymentInformationComponent + } } })); } @@ -339,7 +336,9 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD pipe(take(1)). subscribe({ next: (sentPaymentInfo) => { - this.showPartView(selPart, selPayment, sentPaymentInfo); + setTimeout(() => { + this.showPartView(selPart, selPayment, (sentPaymentInfo.length && sentPaymentInfo.length > 0) ? sentPaymentInfo[0] : []); + }, 0); }, error: (error) => { this.showPartView(selPart, selPayment, []); } @@ -355,24 +354,26 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD [{ key: 'paymentPreimage', value: selPayment.paymentPreimage, title: 'Payment Preimage', width: 100, type: DataTypeEnum.STRING }], [{ key: 'toChannelId', value: selPart.toChannelId, title: 'Channel', width: 100, type: DataTypeEnum.STRING }], [{ key: 'id', value: selPart.id, title: 'Part ID', width: 50, type: DataTypeEnum.STRING }, - { key: 'timestamp', value: selPart.timestamp, title: 'Time', width: 50, type: DataTypeEnum.DATE_TIME }], + { key: 'timestamp', value: selPart.timestamp, title: 'Time', width: 50, type: DataTypeEnum.DATE_TIME }], [{ key: 'amount', value: selPart.amount, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'feesPaid', value: selPart.feesPaid, title: 'Fee (Sats)', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'feesPaid', value: selPart.feesPaid, title: 'Fee (Sats)', width: 50, type: DataTypeEnum.NUMBER }] ]; if (sentPaymentInfo.length > 0 && sentPaymentInfo[0].paymentRequest && sentPaymentInfo[0].paymentRequest.description && sentPaymentInfo[0].paymentRequest.description !== '') { reorderedPart.splice(3, 0, [{ key: 'description', value: sentPaymentInfo[0].paymentRequest.description, title: 'Description', width: 100, type: DataTypeEnum.STRING }]); } - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Payment Part Information', - message: reorderedPart + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Payment Part Information', + message: reorderedPart + } } })); } - applyFilter(selFilter: any) { - this.payments.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.payments.filter = this.selFilter.trim().toLowerCase(); } onDownloadCSV() { @@ -385,7 +386,7 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD return paymentReqs; }, ''); this.dataService.decodePayments(paymentRequests). - pipe(takeUntil(this.unSubs[2])). + pipe(takeUntil(this.unSubs[4])). subscribe((decodedPayments: any[][]) => { decodedPayments.forEach((decodedPayment, idx) => { if (decodedPayment.length > 0 && decodedPayment[0].paymentRequest && decodedPayment[0].paymentRequest.description && decodedPayment[0].paymentRequest.description !== '') { diff --git a/src/app/eclair/transactions/send-payment-modal/send-payment.component.html b/src/app/eclair/transactions/send-payment-modal/send-payment.component.html index 659f012c..4d4f4a9d 100644 --- a/src/app/eclair/transactions/send-payment-modal/send-payment.component.html +++ b/src/app/eclair/transactions/send-payment-modal/send-payment.component.html @@ -9,7 +9,7 @@
- + {{paymentDecodedHint}} Payment request is required. {{paymentDecodedHint}} @@ -24,8 +24,8 @@ {{paymentError}}
- - + +
diff --git a/src/app/eclair/transactions/send-payment-modal/send-payment.component.ts b/src/app/eclair/transactions/send-payment-modal/send-payment.component.ts index 8e20bc2a..67e5c7ff 100644 --- a/src/app/eclair/transactions/send-payment-modal/send-payment.component.ts +++ b/src/app/eclair/transactions/send-payment-modal/send-payment.component.ts @@ -9,15 +9,17 @@ import { MatDialogRef } from '@angular/material/dialog'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { SelNodeChild } from '../../../shared/models/RTLconfig'; -import { PayRequest, Channel } from '../../../shared/models/eclModels'; -import { APICallStatusEnum, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, FEE_LIMIT_TYPES } from '../../../shared/services/consts-enums-functions'; +import { PayRequest, Channel, LightningBalance, ChannelsStatus } from '../../../shared/models/eclModels'; +import { APICallStatusEnum, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, ECLActions, FEE_LIMIT_TYPES } from '../../../shared/services/consts-enums-functions'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; import { DataService } from '../../../shared/services/data.service'; import { ECLEffects } from '../../store/ecl.effects'; -import * as ECLActions from '../../store/ecl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { sendPayment } from '../../store/ecl.actions'; +import { allChannelsInfo, eclNodeSettings } from '../../store/ecl.selector'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-ecl-lightning-send-payments', @@ -42,20 +44,22 @@ export class ECLLightningSendPaymentsComponent implements OnInit, OnDestroy { public paymentError = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, private store: Store, private eclEffects: ECLEffects, private logger: LoggerService, private commonService: CommonService, private decimalPipe: DecimalPipe, private actions: Actions, private dataService: DataService) {} + constructor(public dialogRef: MatDialogRef, private store: Store, private eclEffects: ECLEffects, private logger: LoggerService, private commonService: CommonService, private decimalPipe: DecimalPipe, private actions: Actions, private dataService: DataService) { } ngOnInit() { - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.activeChannels = rtlStore.activeChannels; - this.logger.info(rtlStore); + this.store.select(eclNodeSettings).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(allChannelsInfo).pipe(takeUntil(this.unSubs[1])). + subscribe((allChannelsSelector: ({ activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], lightningBalance: LightningBalance, channelsStatus: ChannelsStatus, apiCallStatus: ApiCallStatusPayload })) => { + this.activeChannels = allChannelsSelector.activeChannels; + this.logger.info(allChannelsSelector); }); this.actions.pipe( takeUntil(this.unSubs[1]), filter((action) => action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL || action.type === ECLActions.SEND_PAYMENT_STATUS_ECL)). - subscribe((action: ECLActions.UpdateAPICallStatus | ECLActions.SendPaymentStatus) => { + subscribe((action: any) => { if (action.type === ECLActions.SEND_PAYMENT_STATUS_ECL) { this.dialogRef.close(); } @@ -66,7 +70,7 @@ export class ECLLightningSendPaymentsComponent implements OnInit, OnDestroy { }); } - onSendPayment(): boolean|void { + onSendPayment(): boolean | void { if (!this.paymentRequest) { return true; } @@ -78,44 +82,48 @@ export class ECLLightningSendPaymentsComponent implements OnInit, OnDestroy { this.paymentDecodedHint = ''; this.paymentReq.control.setErrors(null); this.dataService.decodePayment(this.paymentRequest, true). - pipe(take(1)).subscribe({ next: (decodedPayment: PayRequest) => { - this.paymentDecoded = decodedPayment; - if (this.paymentDecoded.timestamp && !this.paymentDecoded.amount) { - this.paymentDecoded.amount = 0; - this.zeroAmtInvoice = true; - this.paymentDecodedHint = 'Zero Amount Invoice | Memo: ' + this.paymentDecoded.description; - } else { - this.zeroAmtInvoice = false; - if (this.selNode.fiatConversion) { - this.commonService.convertCurrency(+this.paymentDecoded.amount, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[2])). - subscribe({ next: (data) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; - }, error: (error) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description + '. Unable to convert currency.'; - } }); + pipe(take(1)).subscribe({ + next: (decodedPayment: PayRequest) => { + this.paymentDecoded = decodedPayment; + if (this.paymentDecoded.timestamp && !this.paymentDecoded.amount) { + this.paymentDecoded.amount = 0; + this.zeroAmtInvoice = true; + this.paymentDecodedHint = 'Zero Amount Invoice | Memo: ' + this.paymentDecoded.description; } else { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats | Memo: ' + this.paymentDecoded.description; + this.zeroAmtInvoice = false; + if (this.selNode.fiatConversion) { + this.commonService.convertCurrency(+this.paymentDecoded.amount, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). + pipe(takeUntil(this.unSubs[2])). + subscribe({ + next: (data) => { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; + }, error: (error) => { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount / 1000 : 0) + ' Sats | Memo: ' + this.paymentDecoded.description + '. Unable to convert currency.'; + } + }); + } else { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats | Memo: ' + this.paymentDecoded.description; + } } + }, error: (err) => { + this.logger.error(err); + this.paymentDecodedHint = 'ERROR: ' + ((err.message) ? err.message : ((typeof err === 'string') ? err : JSON.stringify(err))); + this.paymentReq.control.setErrors({ decodeError: true }); } - }, error: (err) => { - this.logger.error(err); - this.paymentDecodedHint = 'ERROR: ' + ((err.message) ? err.message : ((typeof err === 'string') ? err : JSON.stringify(err))); - this.paymentReq.control.setErrors({ decodeError: true }); - } }); + }); } } sendPayment() { if (this.zeroAmtInvoice) { - this.store.dispatch(new ECLActions.SendPayment({ invoice: this.paymentRequest, amountMsat: this.paymentAmount * 1000, fromDialog: true })); + this.store.dispatch(sendPayment({ payload: { invoice: this.paymentRequest, amountMsat: this.paymentAmount * 1000, fromDialog: true } })); } else { - this.store.dispatch(new ECLActions.SendPayment({ invoice: this.paymentRequest, fromDialog: true })); + this.store.dispatch(sendPayment({ payload: { invoice: this.paymentRequest, fromDialog: true } })); } } onPaymentRequestEntry(event: any) { - this.paymentRequest = event; + this.paymentRequest = event && typeof event === 'string' ? event.trim() : event; this.paymentError = ''; this.paymentDecodedHint = ''; this.zeroAmtInvoice = false; @@ -123,31 +131,35 @@ export class ECLLightningSendPaymentsComponent implements OnInit, OnDestroy { this.paymentReq.control.setErrors(null); this.zeroAmtInvoice = false; this.dataService.decodePayment(this.paymentRequest, true). - pipe(take(1)).subscribe({ next: (decodedPayment: PayRequest) => { - this.paymentDecoded = decodedPayment; - if (this.paymentDecoded.timestamp && !this.paymentDecoded.amount) { - this.paymentDecoded.amount = 0; - this.zeroAmtInvoice = true; - this.paymentDecodedHint = 'Zero Amount Invoice | Memo: ' + this.paymentDecoded.description; - } else { - this.zeroAmtInvoice = false; - if (this.selNode.fiatConversion) { - this.commonService.convertCurrency(+this.paymentDecoded.amount, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[3])). - subscribe({ next: (data) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; - }, error: (error) => { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats | Memo: ' + this.paymentDecoded.description + '. Unable to convert currency.'; - } }); + pipe(take(1)).subscribe({ + next: (decodedPayment: PayRequest) => { + this.paymentDecoded = decodedPayment; + if (this.paymentDecoded.timestamp && !this.paymentDecoded.amount) { + this.paymentDecoded.amount = 0; + this.zeroAmtInvoice = true; + this.paymentDecodedHint = 'Zero Amount Invoice | Memo: ' + this.paymentDecoded.description; } else { - this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats | Memo: ' + this.paymentDecoded.description; + this.zeroAmtInvoice = false; + if (this.selNode.fiatConversion) { + this.commonService.convertCurrency(+this.paymentDecoded.amount, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). + pipe(takeUntil(this.unSubs[3])). + subscribe({ + next: (data) => { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats (' + data.symbol + this.decimalPipe.transform((data.OTHER ? data.OTHER : 0), CURRENCY_UNIT_FORMATS.OTHER) + ') | Memo: ' + this.paymentDecoded.description; + }, error: (error) => { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats | Memo: ' + this.paymentDecoded.description + '. Unable to convert currency.'; + } + }); + } else { + this.paymentDecodedHint = 'Sending: ' + this.decimalPipe.transform(this.paymentDecoded.amount ? this.paymentDecoded.amount : 0) + ' Sats | Memo: ' + this.paymentDecoded.description; + } } + }, error: (err) => { + this.logger.error(err); + this.paymentDecodedHint = 'ERROR: ' + ((err.message) ? err.message : ((typeof err === 'string') ? err : JSON.stringify(err))); + this.paymentReq.control.setErrors({ decodeError: true }); } - }, error: (err) => { - this.logger.error(err); - this.paymentDecodedHint = 'ERROR: ' + ((err.message) ? err.message : ((typeof err === 'string') ? err : JSON.stringify(err))); - this.paymentReq.control.setErrors({ decodeError: true }); - } }); + }); } } diff --git a/src/app/eclair/transactions/transactions.component.spec.ts b/src/app/eclair/transactions/transactions.component.spec.ts index a7e9948e..984b0516 100644 --- a/src/app/eclair/transactions/transactions.component.spec.ts +++ b/src/app/eclair/transactions/transactions.component.spec.ts @@ -3,7 +3,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { LoggerService } from '../../shared/services/logger.service'; import { ECLTransactionsComponent } from './transactions.component'; @@ -24,12 +27,7 @@ describe('ECLTransactionsComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/eclair/transactions/transactions.component.ts b/src/app/eclair/transactions/transactions.component.ts index d60d3237..f0de3cb0 100644 --- a/src/app/eclair/transactions/transactions.component.ts +++ b/src/app/eclair/transactions/transactions.component.ts @@ -1,13 +1,17 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; import { Router, ResolveEnd } from '@angular/router'; import { Subject } from 'rxjs'; -import { takeUntil, filter } from 'rxjs/operators'; +import { takeUntil, filter, withLatestFrom } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { faExchangeAlt, faChartPie } from '@fortawesome/free-solid-svg-icons'; import { UserPersonaEnum } from '../../shared/services/consts-enums-functions'; import { LoggerService } from '../../shared/services/logger.service'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { eclNodeSettings, allChannelsInfo } from '../store/ecl.selector'; +import { Channel, ChannelsStatus, LightningBalance } from '../../shared/models/eclModels'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; +import { SelNodeChild } from '../../shared/models/RTLconfig'; @Component({ selector: 'rtl-ecl-transactions', @@ -20,30 +24,30 @@ export class ECLTransactionsComponent implements OnInit, OnDestroy { faChartPie = faChartPie; currencyUnits = []; balances = [{ title: 'Local Capacity', dataValue: 0, tooltip: 'Amount you can send' }, { title: 'Remote Capacity', dataValue: 0, tooltip: 'Amount you can receive' }]; - public links = [{ link: 'payments', name: 'Payments' }, { link: 'invoices', name: 'Invoices' }, { link: 'queryroutes', name: 'Query Routes' }]; + public links = [{ link: 'payments', name: 'Payments' }, { link: 'invoices', name: 'Invoices' }]; public activeLink = this.links[0].link; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private router: Router) {} + constructor(private logger: LoggerService, private store: Store, private router: Router) { } ngOnInit() { const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; }); - this.store.select('ecl'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.currencyUnits = rtlStore.nodeSettings.currencyUnits; - if (rtlStore.nodeSettings.userPersona === UserPersonaEnum.OPERATOR) { - this.balances = [{ title: 'Local Capacity', dataValue: rtlStore.lightningBalance.localBalance, tooltip: 'Amount you can send' }, { title: 'Remote Capacity', dataValue: rtlStore.lightningBalance.remoteBalance, tooltip: 'Amount you can receive' }]; + this.store.select(allChannelsInfo).pipe(takeUntil(this.unSubs[1]), + withLatestFrom(this.store.select(eclNodeSettings))). + subscribe(([allChannels, nodeSettings]: [{ activeChannels: Channel[], pendingChannels: Channel[], inactiveChannels: Channel[], lightningBalance: LightningBalance, channelsStatus: ChannelsStatus, apiCallStatus: ApiCallStatusPayload }, SelNodeChild]) => { + this.currencyUnits = nodeSettings.currencyUnits; + if (nodeSettings.userPersona === UserPersonaEnum.OPERATOR) { + this.balances = [{ title: 'Local Capacity', dataValue: allChannels.lightningBalance.localBalance, tooltip: 'Amount you can send' }, { title: 'Remote Capacity', dataValue: allChannels.lightningBalance.remoteBalance, tooltip: 'Amount you can receive' }]; } else { - this.balances = [{ title: 'Outbound Capacity', dataValue: rtlStore.lightningBalance.localBalance, tooltip: 'Amount you can send' }, { title: 'Inbound Capacity', dataValue: rtlStore.lightningBalance.remoteBalance, tooltip: 'Amount you can receive' }]; + this.balances = [{ title: 'Outbound Capacity', dataValue: allChannels.lightningBalance.localBalance, tooltip: 'Amount you can send' }, { title: 'Inbound Capacity', dataValue: allChannels.lightningBalance.remoteBalance, tooltip: 'Amount you can receive' }]; } - this.logger.info(rtlStore); + this.logger.info(allChannels); }); } diff --git a/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.html b/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.html index 4dcc799b..cb7681f2 100644 --- a/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.html +++ b/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.html @@ -20,11 +20,11 @@ Backups
- +
- + @@ -46,9 +46,9 @@ diff --git a/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.spec.ts b/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.spec.ts index f7dad733..05366841 100644 --- a/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.spec.ts +++ b/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -22,12 +25,7 @@ describe('ChannelBackupTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.ts b/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.ts index 8f7f504f..2a1d7d83 100644 --- a/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.ts +++ b/src/app/lnd/backup/channel-backup-table/channel-backup-table.component.ts @@ -10,15 +10,16 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { SelNodeChild } from '../../../shared/models/RTLconfig'; -import { Channel } from '../../../shared/models/lndModels'; -import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../shared/models/apiCallsPayload'; +import { Channel, ChannelsSummary, LightningBalance } from '../../../shared/models/lndModels'; +import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, ScreenSizeEnum, APICallStatusEnum, UI_MESSAGES, LNDActions, RTLActions } from '../../../shared/services/consts-enums-functions'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; -import * as LNDActions from '../../store/lnd.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { fetchFile, openAlert } from '../../../store/rtl.actions'; +import { backupChannels, verifyChannel } from '../../store/lnd.actions'; +import { channels, lndNodeSettings } from '../../store/lnd.selector'; @Component({ selector: 'rtl-channel-backup-table', @@ -30,8 +31,8 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class ChannelBackupTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public faInfoCircle = faInfoCircle; public faExclamationTriangle = faExclamationTriangle; public faArchive = faArchive; @@ -46,32 +47,32 @@ export class ChannelBackupTableComponent implements OnInit, AfterViewInit, OnDes public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private actions: Actions, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private actions: Actions, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(lndNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { this.selNode = nodeSettings; }); + this.store.select(channels).pipe(takeUntil(this.unSubs[1])). + subscribe((channelsSeletor: { channels: Channel[], channelsSummary: ChannelsSummary, lightningBalance: LightningBalance, apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchAllChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchAllChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchAllChannels.message) : this.apisCallStatus.FetchAllChannels.message; + this.apiCallStatus = channelsSeletor.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.selNode = rtlStore.nodeSettings; - this.channelsData = rtlStore.allChannels; + this.channelsData = channelsSeletor.channels; if (this.channelsData.length > 0) { this.loadBackupTable(this.channelsData); } - this.logger.info(rtlStore); + this.logger.info(channelsSeletor); }); - this.actions.pipe(takeUntil(this.unSubs[1]), filter((action) => action.type === LNDActions.SET_ALL_CHANNELS_LND || action.type === RTLActions.SHOW_FILE)).subscribe((action: LNDActions.SetAllChannels | RTLActions.ShowFile) => { - if (action.type === LNDActions.SET_ALL_CHANNELS_LND) { + this.actions.pipe(takeUntil(this.unSubs[2]), filter((action) => action.type === LNDActions.SET_CHANNELS_LND || action.type === RTLActions.SHOW_FILE)).subscribe((action: any) => { + if (action.type === LNDActions.SET_CHANNELS_LND) { this.selectedChannel = null; } if (action.type === RTLActions.SHOW_FILE) { @@ -88,28 +89,32 @@ export class ChannelBackupTableComponent implements OnInit, AfterViewInit, OnDes } onBackupChannels(selChannel: Channel) { - this.store.dispatch(new LNDActions.BackupChannels({ uiMessage: UI_MESSAGES.BACKUP_CHANNEL, channelPoint: (selChannel.channel_point) ? selChannel.channel_point : 'ALL', showMessage: '' })); + this.store.dispatch(backupChannels({ payload: { uiMessage: UI_MESSAGES.BACKUP_CHANNEL, channelPoint: (selChannel.channel_point) ? selChannel.channel_point : 'ALL', showMessage: '' } })); } onVerifyChannels(selChannel: Channel) { - this.store.dispatch(new LNDActions.VerifyChannels({ channelPoint: (selChannel.channel_point) ? selChannel.channel_point : 'ALL' })); + this.store.dispatch(verifyChannel({ payload: { channelPoint: (selChannel.channel_point) ? selChannel.channel_point : 'ALL' } })); } onDownloadBackup(selChannel: Channel) { this.selectedChannel = selChannel; - this.store.dispatch(new RTLActions.FetchFile({ channelPoint: selChannel.channel_point ? selChannel.channel_point : 'all' })); + this.store.dispatch(fetchFile({ payload: { channelPoint: selChannel.channel_point ? selChannel.channel_point : 'all' } })); } onChannelClick(selChannel: Channel, event: any) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - channel: selChannel, - showCopy: false, - component: ChannelInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: selChannel, + showCopy: false, + component: ChannelInformationComponent + } + } + })); } - applyFilter(selFilter: any) { - this.channels.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.channels.filter = this.selFilter.trim().toLowerCase(); } loadBackupTable(channels: any[]) { @@ -119,13 +124,14 @@ export class ChannelBackupTableComponent implements OnInit, AfterViewInit, OnDes this.channels.paginator = this.paginator; this.channels.filterPredicate = (channel: Channel, fltr: string) => { const newChannel = ((channel.active) ? 'active' : 'inactive') + (channel.channel_point ? channel.channel_point.toLowerCase() : '') + (channel.chan_id ? channel.chan_id.toLowerCase() : '') + - (channel.remote_pubkey ? channel.remote_pubkey.toLowerCase() : '') + (channel.remote_alias ? channel.remote_alias.toLowerCase() : '') + - (channel.capacity ? channel.capacity : '') + (channel.local_balance ? channel.local_balance : '') + - (channel.remote_balance ? channel.remote_balance : '') + (channel.total_satoshis_sent ? channel.total_satoshis_sent : '') + - (channel.total_satoshis_received ? channel.total_satoshis_received : '') + (channel.commit_fee ? channel.commit_fee : '') + - (channel.private ? 'private' : 'public'); + (channel.remote_pubkey ? channel.remote_pubkey.toLowerCase() : '') + (channel.remote_alias ? channel.remote_alias.toLowerCase() : '') + + (channel.capacity ? channel.capacity : '') + (channel.local_balance ? channel.local_balance : '') + + (channel.remote_balance ? channel.remote_balance : '') + (channel.total_satoshis_sent ? channel.total_satoshis_sent : '') + + (channel.total_satoshis_received ? channel.total_satoshis_received : '') + (channel.commit_fee ? channel.commit_fee : '') + + (channel.private ? 'private' : 'public'); return newChannel.includes(fltr); }; + this.applyFilter(); } ngOnDestroy() { diff --git a/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.html b/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.html index 3d7bd084..5f59ebed 100644 --- a/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.html +++ b/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.html @@ -15,7 +15,7 @@
- +
diff --git a/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.spec.ts b/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.spec.ts index 9943e849..1c01136d 100644 --- a/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.spec.ts +++ b/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -22,12 +25,7 @@ describe('ChannelRestoreTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.ts b/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.ts index dd843f62..f95e9d28 100644 --- a/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.ts +++ b/src/app/lnd/backup/channel-restore-table/channel-restore-table.component.ts @@ -13,8 +13,9 @@ import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; import { LNDEffects } from '../../store/lnd.effects'; -import * as LNDActions from '../../store/lnd.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { restoreChannels, restoreChannelsList } from '../../store/lnd.actions'; +import { lndNodeSettings } from '../../store/lnd.selector'; @Component({ selector: 'rtl-channel-restore-table', @@ -26,8 +27,8 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class ChannelRestoreTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public pageSize = PAGE_SIZE; public pageSizeOptions = PAGE_SIZE_OPTIONS; public selNode: SelNodeChild = {}; @@ -38,24 +39,19 @@ export class ChannelRestoreTableComponent implements OnInit, AfterViewInit, OnDe public allRestoreExists = false; public flgLoading: Array = [true]; // 0: channels public flgSticky = false; + public selFilter = ''; public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private lndEffects: LNDEffects, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private lndEffects: LNDEffects, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); } ngOnInit() { - this.store.dispatch(new LNDActions.RestoreChannelsList()); - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.logger.info(rtlStore); - }); - this.lndEffects.setRestoreChannelList. - pipe(takeUntil(this.unSubs[0])). + this.store.dispatch(restoreChannelsList()); + this.store.select(lndNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { this.selNode = nodeSettings; }); + this.lndEffects.setRestoreChannelList.pipe(takeUntil(this.unSubs[1])). subscribe((resRCList) => { this.allRestoreExists = resRCList.all_restore_exists; this.channelsData = resRCList.files; @@ -76,11 +72,11 @@ export class ChannelRestoreTableComponent implements OnInit, AfterViewInit, OnDe } onRestoreChannels(selChannel: Channel) { - this.store.dispatch(new LNDActions.RestoreChannels({ channelPoint: (selChannel.channel_point) ? selChannel.channel_point : 'ALL' })); + this.store.dispatch(restoreChannels({ payload: { channelPoint: (selChannel.channel_point) ? selChannel.channel_point : 'ALL' } })); } - applyFilter(selFilter: any) { - this.channels.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.channels.filter = this.selFilter.trim().toLowerCase(); } loadRestoreTable(channels: any[]) { @@ -89,6 +85,7 @@ export class ChannelRestoreTableComponent implements OnInit, AfterViewInit, OnDe this.channels.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.channels.filterPredicate = (channel: Channel, fltr: string) => JSON.stringify(channel).toLowerCase().includes(fltr); this.channels.paginator = this.paginator; + this.applyFilter(); } ngOnDestroy() { diff --git a/src/app/lnd/graph/graph.component.html b/src/app/lnd/graph/graph.component.html new file mode 100644 index 00000000..71c26534 --- /dev/null +++ b/src/app/lnd/graph/graph.component.html @@ -0,0 +1,17 @@ +
+ + Graph Lookups +
+
+ + + +
+ +
+
+
+
+ \ No newline at end of file diff --git a/src/app/lnd/graph/graph.component.scss b/src/app/lnd/graph/graph.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/lnd/graph/graph.component.spec.ts b/src/app/lnd/graph/graph.component.spec.ts new file mode 100644 index 00000000..07eef80a --- /dev/null +++ b/src/app/lnd/graph/graph.component.spec.ts @@ -0,0 +1,53 @@ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { StoreModule } from '@ngrx/store'; + +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; +import { LoggerService } from '../../shared/services/logger.service'; + +import { GraphComponent } from './graph.component'; +import { SharedModule } from '../../shared/shared.module'; +import { mockDataService, mockLoggerService } from '../../shared/test-helpers/mock-services'; +import { CommonService } from '../../shared/services/common.service'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { DataService } from '../../shared/services/data.service'; + +describe('GraphComponent', () => { + let component: GraphComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [GraphComponent], + imports: [ + BrowserAnimationsModule, + SharedModule, + RouterTestingModule, + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) + ], + providers: [ + CommonService, + { provide: LoggerService, useClass: mockLoggerService }, + { provide: DataService, useClass: mockDataService } + ] + }). + compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(GraphComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + afterEach(() => { + TestBed.resetTestingModule(); + }); +}); diff --git a/src/app/lnd/graph/graph.component.ts b/src/app/lnd/graph/graph.component.ts new file mode 100644 index 00000000..77838f9e --- /dev/null +++ b/src/app/lnd/graph/graph.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit, OnDestroy } from '@angular/core'; +import { Router, ResolveEnd } from '@angular/router'; +import { Subject } from 'rxjs'; +import { takeUntil, filter } from 'rxjs/operators'; +import { faSearch } from '@fortawesome/free-solid-svg-icons'; + +@Component({ + selector: 'rtl-graph', + templateUrl: './graph.component.html', + styleUrls: ['./graph.component.scss'] +}) +export class GraphComponent implements OnInit, OnDestroy { + + faSearch = faSearch; + public links = [{ link: 'lookups', name: 'Lookup' }, { link: 'queryroutes', name: 'Query Routes' }]; + public activeLink = this.links[0].link; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; + + constructor(private router: Router) { } + + ngOnInit() { + const linkFound = this.links.find((link) => this.router.url.includes(link.link)); + this.activeLink = linkFound ? linkFound.link : this.links[0].link; + this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). + subscribe((value: any) => { + const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); + this.activeLink = linkFound ? linkFound.link : this.links[0].link; + }); + } + + ngOnDestroy() { + this.unSubs.forEach((completeSub) => { + completeSub.next(null); + completeSub.complete(); + }); + } + +} diff --git a/src/app/lnd/lookups/channel-lookup/channel-lookup.component.html b/src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.html similarity index 61% rename from src/app/lnd/lookups/channel-lookup/channel-lookup.component.html rename to src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.html index 6f130500..80d84924 100644 --- a/src/app/lnd/lookups/channel-lookup/channel-lookup.component.html +++ b/src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.html @@ -1,21 +1,22 @@
-
-

Channel Id

- {{lookupResult.channel_id}} -
- -
-

Channel Point

- {{lookupResult.chan_point}} +
+
+

Channel Id

+ {{lookupResult.channel_id}} +
+
+

Channel Point

+ {{lookupResult.chan_point}} +
-
+

Last Update

{{(lookupResult.last_update * 1000) | date:'dd/MMM/YYYY HH:mm'}}
-
+

Capacity (Sats)

{{lookupResult.capacity | number}}
@@ -27,35 +28,35 @@

Node 1

Node 1 (Your Node)

- -
+ +

Pubkey

{{lookupResult.node1_pub}}
- -
+ +

Time Lock Delta

{{lookupResult.node1_policy?.time_lock_delta}}
- -
+ +

Min HTLC

{{lookupResult.node1_policy?.min_htlc}}
- -
+ +

Fee Base Msat

{{lookupResult.node1_policy?.fee_base_msat}}
- -
+ +

Fee Rate Milli Msat

{{lookupResult.node1_policy?.fee_rate_milli_msat}}
- -
+ +

Disabled

- {{lookupResult.node1_policy?.disabled}} + {{lookupResult.node1_policy?.disabled ? 'Yes' : 'No'}}
@@ -63,35 +64,35 @@

Node 2

Node 2 (Your Node)

- -
+ +

Pubkey

{{lookupResult.node2_pub}}
- -
+ +

Time Lock Delta

{{lookupResult.node2_policy?.time_lock_delta}}
- -
+ +

Min HTLC

{{lookupResult.node2_policy?.min_htlc}}
- -
+ +

Fee Base Msat

{{lookupResult.node2_policy?.fee_base_msat}}
- -
+ +

Fee Rate Milli Msat

{{lookupResult.node2_policy?.fee_rate_milli_msat}}
- -
+ +

Disabled

- {{lookupResult.node2_policy?.disabled}} + {{lookupResult.node2_policy?.disabled ? 'Yes' : 'No'}}
diff --git a/src/app/lnd/lookups/channel-lookup/channel-lookup.component.scss b/src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.scss similarity index 100% rename from src/app/lnd/lookups/channel-lookup/channel-lookup.component.scss rename to src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.scss diff --git a/src/app/lnd/lookups/channel-lookup/channel-lookup.component.spec.ts b/src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.spec.ts similarity index 69% rename from src/app/lnd/lookups/channel-lookup/channel-lookup.component.spec.ts rename to src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.spec.ts index a6cfb372..c132fbe5 100644 --- a/src/app/lnd/lookups/channel-lookup/channel-lookup.component.spec.ts +++ b/src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.spec.ts @@ -1,9 +1,12 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { SharedModule } from '../../../shared/shared.module'; +import { SharedModule } from '../../../../shared/shared.module'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { ChannelLookupComponent } from './channel-lookup.component'; describe('ChannelLookupComponent', () => { @@ -16,12 +19,7 @@ describe('ChannelLookupComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/lnd/lookups/channel-lookup/channel-lookup.component.ts b/src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.ts similarity index 50% rename from src/app/lnd/lookups/channel-lookup/channel-lookup.component.ts rename to src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.ts index a324e12f..a9afa8e5 100644 --- a/src/app/lnd/lookups/channel-lookup/channel-lookup.component.ts +++ b/src/app/lnd/graph/lookups/channel-lookup/channel-lookup.component.ts @@ -3,8 +3,9 @@ import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; -import { ChannelEdge } from '../../../shared/models/lndModels'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { ChannelEdge, GetInfo } from '../../../../shared/models/lndModels'; +import { RTLState } from '../../../../store/rtl.state'; +import { lndNodeInformation } from '../../../store/lnd.selector'; @Component({ selector: 'rtl-channel-lookup', @@ -18,19 +19,17 @@ export class ChannelLookupComponent implements OnInit { public node2_match = false; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private store: Store) { } + constructor(private store: Store) { } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - if (this.lookupResult.node1_pub === rtlStore.information.identity_pubkey) { - this.node1_match = true; - } - if (this.lookupResult.node2_pub === rtlStore.information.identity_pubkey) { - this.node2_match = true; - } - }); + this.store.select(lndNodeInformation).pipe(takeUntil(this.unSubs[0])).subscribe((nodeInfo: GetInfo) => { + if (this.lookupResult.node1_pub === nodeInfo.identity_pubkey) { + this.node1_match = true; + } + if (this.lookupResult.node2_pub === nodeInfo.identity_pubkey) { + this.node2_match = true; + } + }); } } diff --git a/src/app/lnd/graph/lookups/lookups.component.html b/src/app/lnd/graph/lookups/lookups.component.html new file mode 100644 index 00000000..4aff9142 --- /dev/null +++ b/src/app/lnd/graph/lookups/lookups.component.html @@ -0,0 +1,37 @@ +
+
+ +
+
+ + + {{lookupField.name}} + + +
+ + + {{lookupFields[selectedFieldId]?.placeholder}} is required. + +
+ + +
+ +
+ + {{errorMessage}} +
+
+
+ {{lookupFields[selectedFieldId].name}} Details +
+
+ + +

Error! Unable to find details!

+
+
+
+
+
diff --git a/src/app/lnd/lookups/lookups.component.scss b/src/app/lnd/graph/lookups/lookups.component.scss similarity index 100% rename from src/app/lnd/lookups/lookups.component.scss rename to src/app/lnd/graph/lookups/lookups.component.scss diff --git a/src/app/lnd/lookups/lookups.component.spec.ts b/src/app/lnd/graph/lookups/lookups.component.spec.ts similarity index 64% rename from src/app/lnd/lookups/lookups.component.spec.ts rename to src/app/lnd/graph/lookups/lookups.component.spec.ts index 8e96822b..0ece1274 100644 --- a/src/app/lnd/lookups/lookups.component.spec.ts +++ b/src/app/lnd/graph/lookups/lookups.component.spec.ts @@ -1,16 +1,19 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../store/rtl.reducers'; -import { CommonService } from '../../shared/services/common.service'; -import { LoggerService } from '../../shared/services/logger.service'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; +import { CommonService } from '../../../shared/services/common.service'; +import { LoggerService } from '../../../shared/services/logger.service'; import { LookupsComponent } from './lookups.component'; -import { mockCLEffects, mockDataService, mockLoggerService, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../shared/test-helpers/mock-services'; +import { mockCLEffects, mockDataService, mockLoggerService, mockECLEffects, mockLNDEffects, mockRTLEffects } from '../../../shared/test-helpers/mock-services'; import { EffectsModule } from '@ngrx/effects'; -import { SharedModule } from '../../shared/shared.module'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { DataService } from '../../shared/services/data.service'; +import { SharedModule } from '../../../shared/shared.module'; +import { DataService } from '../../../shared/services/data.service'; describe('LookupsComponent', () => { let component: LookupsComponent; @@ -22,12 +25,7 @@ describe('LookupsComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/lnd/lookups/lookups.component.ts b/src/app/lnd/graph/lookups/lookups.component.ts similarity index 78% rename from src/app/lnd/lookups/lookups.component.ts rename to src/app/lnd/graph/lookups/lookups.component.ts index d238f419..f8909d1d 100644 --- a/src/app/lnd/lookups/lookups.component.ts +++ b/src/app/lnd/graph/lookups/lookups.component.ts @@ -5,13 +5,12 @@ import { Store } from '@ngrx/store'; import { Actions } from '@ngrx/effects'; import { faSearch } from '@fortawesome/free-solid-svg-icons'; -import { APICallStatusEnum, ScreenSizeEnum, UI_MESSAGES } from '../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../shared/models/apiCallsPayload'; -import { CommonService } from '../../shared/services/common.service'; -import { LoggerService } from '../../shared/services/logger.service'; +import { APICallStatusEnum, LNDActions, ScreenSizeEnum, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; +import { CommonService } from '../../../shared/services/common.service'; +import { LoggerService } from '../../../shared/services/logger.service'; -import * as LNDActions from '../store/lnd.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { channelLookup, peerLookup } from '../../store/lnd.actions'; @Component({ selector: 'rtl-lookups', @@ -34,17 +33,16 @@ export class LookupsComponent implements OnInit, OnDestroy { public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private actions: Actions) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private actions: Actions) { this.screenSize = this.commonService.getScreenSize(); } ngOnInit() { this.actions.pipe(takeUntil(this.unSubs[0]), filter((action) => (action.type === LNDActions.SET_LOOKUP_LND || action.type === LNDActions.UPDATE_API_CALL_STATUS_LND))). - subscribe((resLookup: LNDActions.SetLookup | LNDActions.UpdateAPICallStatus) => { + subscribe((resLookup: any) => { if (resLookup.type === LNDActions.SET_LOOKUP_LND) { this.errorMessage = (this.selectedFieldId === 0 && resLookup.payload.hasOwnProperty('node')) ? '' : (this.selectedFieldId === 1 && resLookup.payload.hasOwnProperty('channel_id')) ? '' : this.errorMessage; this.lookupValue = JSON.parse(JSON.stringify(resLookup.payload)); @@ -71,10 +69,10 @@ export class LookupsComponent implements OnInit, OnDestroy { this.lookupValue = {}; switch (this.selectedFieldId) { case 0: - this.store.dispatch(new LNDActions.PeerLookup(this.lookupKey.trim())); + this.store.dispatch(peerLookup({ payload: this.lookupKey.trim() })); break; case 1: - this.store.dispatch(new LNDActions.ChannelLookup({ uiMessage: UI_MESSAGES.SEARCHING_CHANNEL, channelID: this.lookupKey.trim() })); + this.store.dispatch(channelLookup({ payload: { uiMessage: UI_MESSAGES.SEARCHING_CHANNEL, channelID: this.lookupKey.trim() } })); break; default: break; diff --git a/src/app/lnd/lookups/node-lookup/node-lookup.component.html b/src/app/lnd/graph/lookups/node-lookup/node-lookup.component.html similarity index 73% rename from src/app/lnd/lookups/node-lookup/node-lookup.component.html rename to src/app/lnd/graph/lookups/node-lookup/node-lookup.component.html index 34bddc11..52bcdf7e 100644 --- a/src/app/lnd/lookups/node-lookup/node-lookup.component.html +++ b/src/app/lnd/graph/lookups/node-lookup/node-lookup.component.html @@ -1,33 +1,39 @@
-
-

Pub Key

- {{lookupResult.node.pub_key}} -
-
-
+

Alias

{{lookupResult.node.alias}}{{lookupResult.node?.color}}
-
-

Last Update

- {{(lookupResult.node.last_update * 1000) | date:'dd/MMM/YYYY HH:mm'}} +
+

Pub Key

+ {{lookupResult.node.pub_key}}
- +
-
+
+

Last Update

+ {{(lookupResult.node.last_update * 1000) | date:'dd/MMM/YYYY HH:mm'}} +
+

Total Capacity (Sats)

{{lookupResult.total_capacity | number}}
-
+
+ +
+

Number of Channels

{{lookupResult.num_channels | number}}
+
+

Features

+ {{nodeFeaturesEnum[feature.value.name] || feature.value.name}}: {{feature.value.is_required ? 'Mandatory' : 'Optional'}} +
- -
+ +

Addresses

Channel Point -

No channel available.

-

Getting channels...

-

{{errorMessage}}

+

No channel available.

+

Getting channels...

+

{{errorMessage}}

diff --git a/src/app/lnd/graph/lookups/node-lookup/node-lookup.component.scss b/src/app/lnd/graph/lookups/node-lookup/node-lookup.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/lnd/lookups/node-lookup/node-lookup.component.spec.ts b/src/app/lnd/graph/lookups/node-lookup/node-lookup.component.spec.ts similarity index 84% rename from src/app/lnd/lookups/node-lookup/node-lookup.component.spec.ts rename to src/app/lnd/graph/lookups/node-lookup/node-lookup.component.spec.ts index 5bf65181..c5ca815d 100644 --- a/src/app/lnd/lookups/node-lookup/node-lookup.component.spec.ts +++ b/src/app/lnd/graph/lookups/node-lookup/node-lookup.component.spec.ts @@ -1,7 +1,7 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; -import { LoggerService } from '../../../shared/services/logger.service'; -import { SharedModule } from '../../../shared/shared.module'; +import { LoggerService } from '../../../../shared/services/logger.service'; +import { SharedModule } from '../../../../shared/shared.module'; import { NodeLookupComponent } from './node-lookup.component'; diff --git a/src/app/lnd/lookups/node-lookup/node-lookup.component.ts b/src/app/lnd/graph/lookups/node-lookup/node-lookup.component.ts similarity index 68% rename from src/app/lnd/lookups/node-lookup/node-lookup.component.ts rename to src/app/lnd/graph/lookups/node-lookup/node-lookup.component.ts index a9e8010b..7b164239 100644 --- a/src/app/lnd/lookups/node-lookup/node-lookup.component.ts +++ b/src/app/lnd/graph/lookups/node-lookup/node-lookup.component.ts @@ -1,8 +1,9 @@ import { Component, Input } from '@angular/core'; import { MatSnackBar } from '@angular/material/snack-bar'; -import { GraphNode } from '../../../shared/models/lndModels'; -import { LoggerService } from '../../../shared/services/logger.service'; +import { GraphNode } from '../../../../shared/models/lndModels'; +import { NodeFeaturesLND } from '../../../../shared/services/consts-enums-functions'; +import { LoggerService } from '../../../../shared/services/logger.service'; @Component({ selector: 'rtl-node-lookup', @@ -12,6 +13,7 @@ import { LoggerService } from '../../../shared/services/logger.service'; export class NodeLookupComponent { @Input() lookupResult: GraphNode; + public nodeFeaturesEnum = NodeFeaturesLND; public displayedColumns = ['network', 'addr', 'actions']; constructor(private logger: LoggerService, private snackBar: MatSnackBar) { } diff --git a/src/app/lnd/transactions/query-routes/query-routes.component.html b/src/app/lnd/graph/query-routes/query-routes.component.html similarity index 99% rename from src/app/lnd/transactions/query-routes/query-routes.component.html rename to src/app/lnd/graph/query-routes/query-routes.component.html index 0b659bf6..5b443478 100644 --- a/src/app/lnd/transactions/query-routes/query-routes.component.html +++ b/src/app/lnd/graph/query-routes/query-routes.component.html @@ -12,7 +12,7 @@ Amount is required. -
+
diff --git a/src/app/lnd/transactions/query-routes/query-routes.component.scss b/src/app/lnd/graph/query-routes/query-routes.component.scss similarity index 100% rename from src/app/lnd/transactions/query-routes/query-routes.component.scss rename to src/app/lnd/graph/query-routes/query-routes.component.scss diff --git a/src/app/lnd/transactions/query-routes/query-routes.component.spec.ts b/src/app/lnd/graph/query-routes/query-routes.component.spec.ts similarity index 82% rename from src/app/lnd/transactions/query-routes/query-routes.component.spec.ts rename to src/app/lnd/graph/query-routes/query-routes.component.spec.ts index a1f73de6..ab248da5 100644 --- a/src/app/lnd/transactions/query-routes/query-routes.component.spec.ts +++ b/src/app/lnd/graph/query-routes/query-routes.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { QueryRoutesComponent } from './query-routes.component'; @@ -22,12 +25,7 @@ describe('QueryRoutesComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/transactions/query-routes/query-routes.component.ts b/src/app/lnd/graph/query-routes/query-routes.component.ts similarity index 54% rename from src/app/lnd/transactions/query-routes/query-routes.component.ts rename to src/app/lnd/graph/query-routes/query-routes.component.ts index 41f18e55..6583aa4b 100644 --- a/src/app/lnd/transactions/query-routes/query-routes.component.ts +++ b/src/app/lnd/graph/query-routes/query-routes.component.ts @@ -11,9 +11,9 @@ import { Hop } from '../../../shared/models/lndModels'; import { AlertTypeEnum, DataTypeEnum, ScreenSizeEnum } from '../../../shared/services/consts-enums-functions'; import { LNDEffects } from '../../store/lnd.effects'; -import * as LNDActions from '../../store/lnd.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { getQueryRoutes } from '../../store/lnd.actions'; @Component({ selector: 'rtl-query-routes', @@ -22,7 +22,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class QueryRoutesComponent implements OnInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; public destinationPubkey = ''; public amount = null; public qrHops: any; @@ -35,7 +35,7 @@ export class QueryRoutesComponent implements OnInit, OnDestroy { public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private store: Store, private lndEffects: LNDEffects, private commonService: CommonService) { + constructor(private store: Store, private lndEffects: LNDEffects, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -53,29 +53,27 @@ export class QueryRoutesComponent implements OnInit, OnDestroy { } ngOnInit() { - this.lndEffects.setQueryRoutes. - pipe(takeUntil(this.unSubs[1])). - subscribe((queryRoute) => { - this.qrHops = new MatTableDataSource([]); - if (queryRoute.routes && queryRoute.routes[0].hops) { - this.flgLoading[0] = false; - this.qrHops = new MatTableDataSource([...queryRoute.routes[0].hops]); - this.qrHops.data = queryRoute.routes[0].hops; - } else { - this.flgLoading[0] = 'error'; - } - this.qrHops.sort = this.sort; - this.qrHops.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); - }); + this.lndEffects.setQueryRoutes.pipe(takeUntil(this.unSubs[1])).subscribe((queryRoute) => { + this.qrHops = new MatTableDataSource([]); + if (queryRoute.routes && queryRoute.routes.length && queryRoute.routes.length > 0 && queryRoute.routes[0].hops) { + this.flgLoading[0] = false; + this.qrHops = new MatTableDataSource([...queryRoute.routes[0].hops]); + this.qrHops.data = queryRoute.routes[0].hops; + } else { + this.flgLoading[0] = 'error'; + } + this.qrHops.sort = this.sort; + this.qrHops.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); + }); } - onQueryRoutes(): boolean|void { + onQueryRoutes(): boolean | void { if (!this.destinationPubkey || !this.amount) { return true; } this.qrHops = new MatTableDataSource([]); this.flgLoading[0] = true; - this.store.dispatch(new LNDActions.GetQueryRoutes({ destPubkey: this.destinationPubkey, amount: this.amount })); + this.store.dispatch(getQueryRoutes({ payload: { destPubkey: this.destinationPubkey, amount: this.amount } })); } resetData() { @@ -86,20 +84,24 @@ export class QueryRoutesComponent implements OnInit, OnDestroy { onHopClick(selHop: Hop, event: any) { const reorderedHop = [ - [{ key: 'hop_sequence', value: selHop.hop_sequence, title: 'Sequence', width: 30, type: DataTypeEnum.NUMBER }, - { key: 'amt_to_forward', value: selHop.amt_to_forward, title: 'Amount To Forward (Sats)', width: 30, type: DataTypeEnum.NUMBER }, - { key: 'fee_msat', value: selHop.fee_msat, title: 'Fee (mSats)', width: 40, type: DataTypeEnum.NUMBER }], - [{ key: 'pubkey_alias', value: selHop.pubkey_alias, title: 'Peer Alias', width: 30, type: DataTypeEnum.STRING }, - { key: 'pub_key', value: selHop.pub_key, title: 'Peer Pubkey', width: 70, type: DataTypeEnum.STRING }], - [{ key: 'expiry', value: selHop.expiry, title: 'Expiry', width: 30, type: DataTypeEnum.NUMBER }, - { key: 'chan_id', value: selHop.chan_id, title: 'Channel ID', width: 30, type: DataTypeEnum.STRING }, - { key: 'chan_capacity', value: selHop.chan_capacity, title: 'Channel Capacity', width: 40, type: DataTypeEnum.NUMBER }] + [{ key: 'hop_sequence', value: selHop.hop_sequence, title: 'Sequence', width: 33, type: DataTypeEnum.NUMBER }, + { key: 'amt_to_forward', value: selHop.amt_to_forward, title: 'Amount To Forward (Sats)', width: 33, type: DataTypeEnum.NUMBER }, + { key: 'fee_msat', value: selHop.fee_msat, title: 'Fee (mSats)', width: 34, type: DataTypeEnum.NUMBER }], + [{ key: 'chan_capacity', value: selHop.chan_capacity, title: 'Channel Capacity (Sats)', width: 50, type: DataTypeEnum.NUMBER }, + { key: 'expiry', value: selHop.expiry, title: 'Expiry', width: 50, type: DataTypeEnum.NUMBER }], + [{ key: 'pubkey_alias', value: selHop.pubkey_alias, title: 'Peer Alias', width: 50, type: DataTypeEnum.STRING }, + { key: 'chan_id', value: selHop.chan_id, title: 'Channel ID', width: 50, type: DataTypeEnum.STRING }], + [{ key: 'pub_key', value: selHop.pub_key, title: 'Peer Pubkey', width: 100, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Route Information', - message: reorderedHop - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Route Information', + message: reorderedHop + } + } + })); } ngOnDestroy() { diff --git a/src/app/lnd/home/channel-liquidity-info/channel-liquidity-info.component.spec.ts b/src/app/lnd/home/channel-liquidity-info/channel-liquidity-info.component.spec.ts index f7596612..7bf1130b 100644 --- a/src/app/lnd/home/channel-liquidity-info/channel-liquidity-info.component.spec.ts +++ b/src/app/lnd/home/channel-liquidity-info/channel-liquidity-info.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../shared/services/logger.service'; import { LoopService } from '../../../shared/services/loop.service'; @@ -22,12 +25,7 @@ describe('ChannelLiquidityInfoComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/home/channel-liquidity-info/channel-liquidity-info.component.ts b/src/app/lnd/home/channel-liquidity-info/channel-liquidity-info.component.ts index c74607cf..8582a75d 100644 --- a/src/app/lnd/home/channel-liquidity-info/channel-liquidity-info.component.ts +++ b/src/app/lnd/home/channel-liquidity-info/channel-liquidity-info.component.ts @@ -10,8 +10,10 @@ import { LoopModalComponent } from '../../../shared/components/services/loop/loo import { LoopService } from '../../../shared/services/loop.service'; import { CommonService } from '../../../shared/services/common.service'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; -import * as RTLActions from '../../../store/rtl.actions'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { SelNodeChild } from '../../../shared/models/RTLconfig'; +import { lndNodeSettings } from '../../store/lnd.selector'; @Component({ selector: 'rtl-channel-liquidity-info', @@ -30,15 +32,13 @@ export class ChannelLiquidityInfoComponent implements OnInit, OnDestroy { public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private router: Router, private loopService: LoopService, private commonService: CommonService, private store: Store) { } + constructor(private router: Router, private loopService: LoopService, private commonService: CommonService, private store: Store) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.showLoop = !!((rtlStore.nodeSettings.swapServerUrl && rtlStore.nodeSettings.swapServerUrl.trim() !== '')); - }); + this.store.select(lndNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { + this.showLoop = !!((nodeSettings.swapServerUrl && nodeSettings.swapServerUrl.trim() !== '')); + }); } goToChannels() { @@ -49,13 +49,15 @@ export class ChannelLiquidityInfoComponent implements OnInit, OnDestroy { this.loopService.getLoopOutTermsAndQuotes(this.targetConf). pipe(takeUntil(this.unSubs[1])). subscribe((response) => { - this.store.dispatch(new RTLActions.OpenAlert({ - minHeight: '56rem', data: { - channel: channel, - minQuote: response[0], - maxQuote: response[1], - direction: LoopTypeEnum.LOOP_OUT, - component: LoopModalComponent + this.store.dispatch(openAlert({ + payload: { + minHeight: '56rem', data: { + channel: channel, + minQuote: response[0], + maxQuote: response[1], + direction: LoopTypeEnum.LOOP_OUT, + component: LoopModalComponent + } } })); }); diff --git a/src/app/lnd/home/channel-status-info/channel-status-info.component.html b/src/app/lnd/home/channel-status-info/channel-status-info.component.html index df545f24..72b7471e 100644 --- a/src/app/lnd/home/channel-status-info/channel-status-info.component.html +++ b/src/app/lnd/home/channel-status-info/channel-status-info.component.html @@ -2,19 +2,19 @@

Active

-
{{(channelsStatus?.active?.channels || 0) | number}}
+
{{(channelsStatus?.active?.num_channels || 0) | number}}

Pending

-
{{(channelsStatus?.pending?.channels || 0) | number}}
+
{{(channelsStatus?.pending?.num_channels || 0) | number}}

Inactive

-
{{(channelsStatus?.inactive?.channels || 0) | number}}
+
{{(channelsStatus?.inactive?.num_channels || 0) | number}}

Closing

-
{{(channelsStatus?.closing?.channels || 0) | number}}
+
{{(channelsStatus?.closing?.num_channels || 0) | number}}
diff --git a/src/app/lnd/home/home.component.html b/src/app/lnd/home/home.component.html index c91f9ca0..9c7386dd 100644 --- a/src/app/lnd/home/home.component.html +++ b/src/app/lnd/home/home.component.html @@ -1,7 +1,7 @@ -
+
- - {{apisCallStatus?.FetchInfo.status === apiCallStatusEnum.COMPLETED ? 'Welcome ' + information.alias + '! Your node is up and running.' : apisCallStatus?.FetchInfo.status === apiCallStatusEnum.INITIATED ? 'Wait! Getting your node information...' : 'Error! Please check the server connection.'}} + + {{apiCallStatusNodeInfo.status === apiCallStatusEnum.COMPLETED ? 'Welcome ' + information.alias + '! Your node is up and running.' : apiCallStatusNodeInfo.status === apiCallStatusEnum.INITIATED ? 'Wait! Getting your node information...' : 'Error! Please check the server connection.'}}
@@ -26,17 +26,17 @@ + 'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) || + (card.id === 'balance' && (apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusBlockchainBalance.status === apiCallStatusEnum.ERROR)) || + (card.id === 'capacity' && apiCallStatusChannels.status === apiCallStatusEnum.ERROR) || + (card.id === 'fee' && apiCallStatusFees.status === apiCallStatusEnum.ERROR) || + (card.id === 'status' && (apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusPendingChannels.status === apiCallStatusEnum.ERROR))}">
@@ -77,13 +77,13 @@ + 'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) || + (card.id === 'balance' && (apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusBlockchainBalance.status === apiCallStatusEnum.ERROR)) || + ((card.id === 'inboundLiq' || card.id === 'outboundLiq') && apiCallStatusChannels.status === apiCallStatusEnum.ERROR)}">
diff --git a/src/app/lnd/home/home.component.spec.ts b/src/app/lnd/home/home.component.spec.ts index e3a7008c..d35bd2cc 100644 --- a/src/app/lnd/home/home.component.spec.ts +++ b/src/app/lnd/home/home.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { CommonService } from '../../shared/services/common.service'; import { LoggerService } from '../../shared/services/logger.service'; @@ -28,12 +31,7 @@ describe('HomeComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/lnd/home/home.component.ts b/src/app/lnd/home/home.component.ts index 48f95f8a..032d0506 100644 --- a/src/app/lnd/home/home.component.ts +++ b/src/app/lnd/home/home.component.ts @@ -9,13 +9,13 @@ import { faAngleDoubleDown, faAngleDoubleUp, faChartPie, faBolt, faServer, faNet import { LoggerService } from '../../shared/services/logger.service'; import { CommonService } from '../../shared/services/common.service'; -import { UserPersonaEnum, ScreenSizeEnum, APICallStatusEnum } from '../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../shared/models/apiCallsPayload'; -import { ChannelsStatus, GetInfo, Fees, Channel } from '../../shared/models/lndModels'; +import { UserPersonaEnum, ScreenSizeEnum, APICallStatusEnum, LNDActions } from '../../shared/services/consts-enums-functions'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; +import { ChannelsStatus, GetInfo, Fees, Channel, BlockchainBalance, PendingChannels, PendingChannelsSummary, ChannelsSummary, LightningBalance } from '../../shared/models/lndModels'; import { SelNodeChild } from '../../shared/models/RTLconfig'; -import * as LNDActions from '../store/lnd.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { blockchainBalance, channels, fees, nodeInfoAndNodeSettingsAndAPIStatus, pendingChannels } from '../store/lnd.selector'; export interface Tile { id: string; @@ -66,11 +66,15 @@ export class HomeComponent implements OnInit, OnDestroy { public sortField = 'Balance Score'; public screenSizeEnum = ScreenSizeEnum; public errorMessages = ['', '', '', '', '']; - public apisCallStatus: ApiCallsListLND = null; + public apiCallStatusNodeInfo: ApiCallStatusPayload = null; + public apiCallStatusFees: ApiCallStatusPayload = null; + public apiCallStatusBlockchainBalance: ApiCallStatusPayload = null; + public apiCallStatusChannels: ApiCallStatusPayload = null; + public apiCallStatusPendingChannels: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private actions: Actions, private commonService: CommonService, private router: Router) { + constructor(private logger: LoggerService, private store: Store, private actions: Actions, private commonService: CommonService, private router: Router) { this.screenSize = this.commonService.getScreenSize(); switch (this.screenSize) { case ScreenSizeEnum.XS: @@ -140,51 +144,70 @@ export class HomeComponent implements OnInit, OnDestroy { } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.errorMessages = ['', '', '', '', '']; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) { - this.errorMessages[0] = (typeof (this.apisCallStatus.FetchInfo.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchInfo.message) : this.apisCallStatus.FetchInfo.message; + this.store.select(nodeInfoAndNodeSettingsAndAPIStatus).pipe(takeUntil(this.unSubs[0])). + subscribe((infoSettingsStatusSelector: { information: GetInfo, nodeSettings: SelNodeChild, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[0] = ''; + this.apiCallStatusNodeInfo = infoSettingsStatusSelector.apiCallStatus; + if (this.apiCallStatusNodeInfo.status === APICallStatusEnum.ERROR) { + this.errorMessages[0] = (typeof (this.apiCallStatusNodeInfo.message) === 'object') ? JSON.stringify(this.apiCallStatusNodeInfo.message) : this.apiCallStatusNodeInfo.message; } - if (rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) { - this.errorMessages[1] = (typeof (this.apisCallStatus.FetchFees.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchFees.message) : this.apisCallStatus.FetchFees.message; + this.selNode = infoSettingsStatusSelector.nodeSettings; + this.information = infoSettingsStatusSelector.information; + }); + this.store.select(fees).pipe(takeUntil(this.unSubs[1])). + subscribe((feesSelector: { fees: Fees, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[1] = ''; + this.apiCallStatusFees = feesSelector.apiCallStatus; + if (this.apiCallStatusFees.status === APICallStatusEnum.ERROR) { + this.errorMessages[1] = (typeof (this.apiCallStatusFees.message) === 'object') ? JSON.stringify(this.apiCallStatusFees.message) : this.apiCallStatusFees.message; } - if (rtlStore.apisCallStatus.FetchBalanceBlockchain.status === APICallStatusEnum.ERROR) { - this.errorMessages[2] = (typeof (this.apisCallStatus.FetchBalanceBlockchain.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchBalanceBlockchain.message) : this.apisCallStatus.FetchBalanceBlockchain.message; + this.fees = feesSelector.fees; + }); + this.store.select(blockchainBalance).pipe(takeUntil(this.unSubs[2])). + subscribe((bcBalanceSelector: { blockchainBalance: BlockchainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[2] = ''; + this.apiCallStatusBlockchainBalance = bcBalanceSelector.apiCallStatus; + if (this.apiCallStatusBlockchainBalance.status === APICallStatusEnum.ERROR) { + this.errorMessages[2] = (typeof (this.apiCallStatusBlockchainBalance.message) === 'object') ? JSON.stringify(this.apiCallStatusBlockchainBalance.message) : this.apiCallStatusBlockchainBalance.message; } - if (rtlStore.apisCallStatus.FetchAllChannels.status === APICallStatusEnum.ERROR) { - this.errorMessages[3] = (typeof (this.apisCallStatus.FetchAllChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchAllChannels.message) : this.apisCallStatus.FetchAllChannels.message; + this.balances.onchain = (+bcBalanceSelector.blockchainBalance.total_balance >= 0) ? +bcBalanceSelector.blockchainBalance.total_balance : 0; + this.balances.total = this.balances.lightning + this.balances.onchain; + this.balances = Object.assign({}, this.balances); + }); + this.store.select(pendingChannels).pipe(takeUntil(this.unSubs[3])). + subscribe((pendingChannelsSelector: { pendingChannels: PendingChannels, pendingChannelsSummary: PendingChannelsSummary, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[4] = ''; + this.apiCallStatusPendingChannels = pendingChannelsSelector.apiCallStatus; + if (this.apiCallStatusPendingChannels.status === APICallStatusEnum.ERROR) { + this.errorMessages[4] = (typeof (this.apiCallStatusPendingChannels.message) === 'object') ? JSON.stringify(this.apiCallStatusPendingChannels.message) : this.apiCallStatusPendingChannels.message; } - if (rtlStore.apisCallStatus.FetchPendingChannels.status === APICallStatusEnum.ERROR) { - this.errorMessages[4] = (typeof (this.apisCallStatus.FetchPendingChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPendingChannels.message) : this.apisCallStatus.FetchPendingChannels.message; + this.channelsStatus.pending = { num_channels: pendingChannelsSelector.pendingChannelsSummary.open.num_channels, capacity: pendingChannelsSelector.pendingChannelsSummary.open.limbo_balance }; + this.channelsStatus.closing = { + num_channels: pendingChannelsSelector.pendingChannelsSummary.closing.num_channels + pendingChannelsSelector.pendingChannelsSummary.force_closing.num_channels + pendingChannelsSelector.pendingChannelsSummary.waiting_close.num_channels, + capacity: pendingChannelsSelector.pendingChannelsSummary.total_limbo_balance + }; + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[4])). + subscribe((channelsSelector: { channels: Channel[], channelsSummary: ChannelsSummary, lightningBalance: LightningBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[3] = ''; + this.apiCallStatusChannels = channelsSelector.apiCallStatus; + if (this.apiCallStatusChannels.status === APICallStatusEnum.ERROR) { + this.errorMessages[3] = (typeof (this.apiCallStatusChannels.message) === 'object') ? JSON.stringify(this.apiCallStatusChannels.message) : this.apiCallStatusChannels.message; } - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - this.fees = rtlStore.fees; - this.balances.onchain = (+rtlStore.blockchainBalance.total_balance >= 0) ? +rtlStore.blockchainBalance.total_balance : 0; - const local = (rtlStore.totalLocalBalance) ? +rtlStore.totalLocalBalance : 0; - const remote = (rtlStore.totalRemoteBalance) ? +rtlStore.totalRemoteBalance : 0; + const local = (channelsSelector.lightningBalance && channelsSelector.lightningBalance.local) ? +channelsSelector.lightningBalance.local : 0; + const remote = (channelsSelector.lightningBalance && channelsSelector.lightningBalance.remote) ? +channelsSelector.lightningBalance.remote : 0; const total = local + remote; this.channelBalances = { localBalance: local, remoteBalance: remote, balancedness: +(1 - Math.abs((local - remote) / total)).toFixed(3) }; - this.balances.lightning = rtlStore.totalLocalBalance; + this.balances.lightning = channelsSelector.lightningBalance.local; this.balances.total = this.balances.lightning + this.balances.onchain; this.balances = Object.assign({}, this.balances); - this.activeChannels = rtlStore.numberOfActiveChannels; - this.inactiveChannels = rtlStore.numberOfInactiveChannels; - this.channelsStatus = { - active: { channels: rtlStore.numberOfActiveChannels, capacity: rtlStore.totalCapacityActive }, - inactive: { channels: rtlStore.numberOfInactiveChannels, capacity: rtlStore.totalCapacityInactive }, - pending: { channels: rtlStore.numberOfPendingChannels.open.num_channels, capacity: rtlStore.numberOfPendingChannels.open.limbo_balance }, - closing: { - channels: rtlStore.numberOfPendingChannels.closing.num_channels + rtlStore.numberOfPendingChannels.force_closing.num_channels + rtlStore.numberOfPendingChannels.waiting_close.num_channels, - capacity: rtlStore.numberOfPendingChannels.total_limbo_balance - } - }; + this.activeChannels = channelsSelector.channelsSummary.active.num_channels; + this.inactiveChannels = channelsSelector.channelsSummary.inactive.num_channels; + this.channelsStatus.active = channelsSelector.channelsSummary.active; + this.channelsStatus.inactive = channelsSelector.channelsSummary.inactive; this.totalInboundLiquidity = 0; this.totalOutboundLiquidity = 0; - this.allChannels = rtlStore.allChannels.filter((channel) => channel.active === true); + this.allChannels = channelsSelector.channels.filter((channel) => channel.active === true); this.allChannelsCapacity = JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels, 'balancedness'))); this.allInboundChannels = JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter((channel) => channel.remote_balance > 0), 'remote_balance'))); this.allOutboundChannels = JSON.parse(JSON.stringify(this.commonService.sortDescByKey(this.allChannels.filter((channel) => channel.local_balance > 0), 'local_balance'))); @@ -197,10 +220,10 @@ export class HomeComponent implements OnInit, OnDestroy { } else { this.flgChildInfoUpdated = false; } - this.logger.info(rtlStore); + this.logger.info(channelsSelector); }); this.actions.pipe( - takeUntil(this.unSubs[2]), + takeUntil(this.unSubs[5]), filter((action) => action.type === LNDActions.FETCH_FEES_LND || action.type === LNDActions.SET_FEES_LND)). subscribe((action) => { if (action.type === LNDActions.FETCH_FEES_LND) { diff --git a/src/app/lnd/lnd.module.ts b/src/app/lnd/lnd.module.ts index ef5dba2e..89f88e72 100644 --- a/src/app/lnd/lnd.module.ts +++ b/src/app/lnd/lnd.module.ts @@ -21,22 +21,23 @@ import { ChannelPendingTableComponent } from './peers-channels/channels/channels import { BumpFeeComponent } from './peers-channels/channels/bump-fee-modal/bump-fee.component'; import { ChannelClosedTableComponent } from './peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component'; import { TransactionsComponent } from './transactions/transactions.component'; -import { LookupsComponent } from './lookups/lookups.component'; +import { LookupsComponent } from './graph/lookups/lookups.component'; import { ReportsComponent } from './reports/reports.component'; import { FeeReportComponent } from './reports/fee/fee-report.component'; import { TransactionsReportComponent } from './reports/transactions/transactions-report.component'; import { RoutingComponent } from './routing/routing.component'; import { ForwardingHistoryComponent } from './routing/forwarding-history/forwarding-history.component'; import { RoutingPeersComponent } from './routing/routing-peers/routing-peers.component'; -import { ChannelLookupComponent } from './lookups/channel-lookup/channel-lookup.component'; -import { NodeLookupComponent } from './lookups/node-lookup/node-lookup.component'; +import { ChannelLookupComponent } from './graph/lookups/channel-lookup/channel-lookup.component'; +import { NodeLookupComponent } from './graph/lookups/node-lookup/node-lookup.component'; import { BackupComponent } from './backup/backup.component'; import { ChannelBackupTableComponent } from './backup/channel-backup-table/channel-backup-table.component'; import { ChannelRestoreTableComponent } from './backup/channel-restore-table/channel-restore-table.component'; import { SignVerifyMessageComponent } from './sign-verify-message/sign-verify-message.component'; import { SignComponent } from './sign-verify-message/sign/sign.component'; import { VerifyComponent } from './sign-verify-message/verify/verify.component'; -import { QueryRoutesComponent } from './transactions/query-routes/query-routes.component'; +import { QueryRoutesComponent } from './graph/query-routes/query-routes.component'; +import { GraphComponent } from './graph/graph.component'; import { ChannelOpenTableComponent } from './peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component'; import { ChannelActiveHTLCsTableComponent } from './peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component'; import { UnlockWalletComponent } from './wallet/unlock/unlock.component'; @@ -96,6 +97,7 @@ import { LNDUnlockedGuard } from '../shared/services/auth.guard'; FeeReportComponent, TransactionsReportComponent, QueryRoutesComponent, + GraphComponent, OnChainReceiveComponent, OnChainComponent, UTXOTablesComponent, @@ -130,4 +132,4 @@ import { LNDUnlockedGuard } from '../shared/services/auth.guard'; ], bootstrap: [LNDRootComponent] }) -export class LNDModule {} +export class LNDModule { } diff --git a/src/app/lnd/lnd.routing.ts b/src/app/lnd/lnd.routing.ts index a91e1400..26a12fad 100644 --- a/src/app/lnd/lnd.routing.ts +++ b/src/app/lnd/lnd.routing.ts @@ -14,8 +14,9 @@ import { WalletComponent } from './wallet/wallet.component'; import { TransactionsComponent } from './transactions/transactions.component'; import { LightningPaymentsComponent } from './transactions/payments/lightning-payments.component'; import { LightningInvoicesComponent } from './transactions/invoices/lightning-invoices.component'; -import { QueryRoutesComponent } from './transactions/query-routes/query-routes.component'; -import { LookupsComponent } from './lookups/lookups.component'; +import { GraphComponent } from './graph/graph.component'; +import { QueryRoutesComponent } from './graph/query-routes/query-routes.component'; +import { LookupsComponent } from './graph/lookups/lookups.component'; import { RoutingComponent } from './routing/routing.component'; import { ForwardingHistoryComponent } from './routing/forwarding-history/forwarding-history.component'; import { RoutingPeersComponent } from './routing/routing-peers/routing-peers.component'; @@ -37,59 +38,83 @@ import { NotFoundComponent } from '../shared/components/not-found/not-found.comp import { AuthGuard, LNDUnlockedGuard } from '../shared/services/auth.guard'; export const LndRoutes: Routes = [ - { path: '', component: LNDRootComponent, + { + path: '', component: LNDRootComponent, children: [ { path: '', pathMatch: 'full', redirectTo: 'home' }, { path: 'home', component: HomeComponent, canActivate: [LNDUnlockedGuard] }, { path: 'wallet', component: WalletComponent, canActivate: [AuthGuard] }, - { path: 'onchain', component: OnChainComponent, canActivate: [LNDUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'receive/utxos' }, - { path: 'receive/:selTab', component: OnChainReceiveComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'send/:selTab', component: OnChainSendComponent, data: { sweepAll: false }, canActivate: [LNDUnlockedGuard] }, - { path: 'sweep/:selTab', component: OnChainSendComponent, data: { sweepAll: true }, canActivate: [LNDUnlockedGuard] } - ] }, - { path: 'connections', component: ConnectionsComponent, canActivate: [LNDUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'channels' }, - { path: 'channels', component: ChannelsTablesComponent, canActivate: [LNDUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'open' }, - { path: 'open', component: ChannelOpenTableComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'pending', component: ChannelPendingTableComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'closed', component: ChannelClosedTableComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'activehtlcs', component: ChannelActiveHTLCsTableComponent, canActivate: [LNDUnlockedGuard] } - ] }, - { path: 'peers', component: PeersComponent, data: { sweepAll: false }, canActivate: [LNDUnlockedGuard] } - ] }, - { path: 'transactions', component: TransactionsComponent, canActivate: [LNDUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'payments' }, - { path: 'payments', component: LightningPaymentsComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'invoices', component: LightningInvoicesComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'queryroutes', component: QueryRoutesComponent, canActivate: [LNDUnlockedGuard] } - ] }, - { path: 'messages', component: SignVerifyMessageComponent, canActivate: [LNDUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'sign' }, - { path: 'sign', component: SignComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'verify', component: VerifyComponent, canActivate: [LNDUnlockedGuard] } - ] }, - { path: 'channelbackup', component: BackupComponent, canActivate: [LNDUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'bckup' }, - { path: 'bckup', component: ChannelBackupTableComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'restore', component: ChannelRestoreTableComponent, canActivate: [LNDUnlockedGuard] } - ] }, - { path: 'routing', component: RoutingComponent, canActivate: [LNDUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'forwardinghistory' }, - { path: 'forwardinghistory', component: ForwardingHistoryComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'peers', component: RoutingPeersComponent, canActivate: [LNDUnlockedGuard] } - ] }, - { path: 'reports', component: ReportsComponent, canActivate: [LNDUnlockedGuard], children: [ - { path: '', pathMatch: 'full', redirectTo: 'routingfees' }, - { path: 'routingfees', component: FeeReportComponent, canActivate: [LNDUnlockedGuard] }, - { path: 'transactions', component: TransactionsReportComponent, canActivate: [LNDUnlockedGuard] } - ] }, + { + path: 'onchain', component: OnChainComponent, canActivate: [LNDUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'receive/utxos' }, + { path: 'receive/:selTab', component: OnChainReceiveComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'send/:selTab', component: OnChainSendComponent, data: { sweepAll: false }, canActivate: [LNDUnlockedGuard] }, + { path: 'sweep/:selTab', component: OnChainSendComponent, data: { sweepAll: true }, canActivate: [LNDUnlockedGuard] } + ] + }, + { + path: 'connections', component: ConnectionsComponent, canActivate: [LNDUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'channels' }, + { + path: 'channels', component: ChannelsTablesComponent, canActivate: [LNDUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'open' }, + { path: 'open', component: ChannelOpenTableComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'pending', component: ChannelPendingTableComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'closed', component: ChannelClosedTableComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'activehtlcs', component: ChannelActiveHTLCsTableComponent, canActivate: [LNDUnlockedGuard] } + ] + }, + { path: 'peers', component: PeersComponent, data: { sweepAll: false }, canActivate: [LNDUnlockedGuard] } + ] + }, + { + path: 'transactions', component: TransactionsComponent, canActivate: [LNDUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'payments' }, + { path: 'payments', component: LightningPaymentsComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'invoices', component: LightningInvoicesComponent, canActivate: [LNDUnlockedGuard] } + ] + }, + { + path: 'messages', component: SignVerifyMessageComponent, canActivate: [LNDUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'sign' }, + { path: 'sign', component: SignComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'verify', component: VerifyComponent, canActivate: [LNDUnlockedGuard] } + ] + }, + { + path: 'channelbackup', component: BackupComponent, canActivate: [LNDUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'bckup' }, + { path: 'bckup', component: ChannelBackupTableComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'restore', component: ChannelRestoreTableComponent, canActivate: [LNDUnlockedGuard] } + ] + }, + { + path: 'routing', component: RoutingComponent, canActivate: [LNDUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'forwardinghistory' }, + { path: 'forwardinghistory', component: ForwardingHistoryComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'peers', component: RoutingPeersComponent, canActivate: [LNDUnlockedGuard] } + ] + }, + { + path: 'reports', component: ReportsComponent, canActivate: [LNDUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'routingfees' }, + { path: 'routingfees', component: FeeReportComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'transactions', component: TransactionsReportComponent, canActivate: [LNDUnlockedGuard] } + ] + }, + { + path: 'graph', component: GraphComponent, canActivate: [LNDUnlockedGuard], children: [ + { path: '', pathMatch: 'full', redirectTo: 'lookups' }, + { path: 'lookups', component: LookupsComponent, canActivate: [LNDUnlockedGuard] }, + { path: 'queryroutes', component: QueryRoutesComponent, canActivate: [LNDUnlockedGuard] } + ] + }, { path: 'lookups', component: LookupsComponent, canActivate: [LNDUnlockedGuard] }, { path: 'network', component: NetworkInfoComponent, canActivate: [LNDUnlockedGuard] }, { path: '**', component: NotFoundComponent }, { path: 'rates', redirectTo: 'network' } - ] } + ] + } ]; export const LNDRouting: ModuleWithProviders = RouterModule.forChild(LndRoutes); diff --git a/src/app/lnd/lookups/lookups.component.html b/src/app/lnd/lookups/lookups.component.html deleted file mode 100644 index 3b784559..00000000 --- a/src/app/lnd/lookups/lookups.component.html +++ /dev/null @@ -1,43 +0,0 @@ -
-
- - Graph Lookups -
-
- - -
-
- - - {{lookupField.name}} - - -
- - - {{lookupFields[selectedFieldId]?.placeholder}} is required. - -
- - -
- -
- - {{errorMessage}} -
-
-
- {{lookupFields[selectedFieldId].name}} Details -
-
- - -

Error! Unable to find details!

-
-
-
-
-
-
diff --git a/src/app/lnd/network-info/network-info.component.html b/src/app/lnd/network-info/network-info.component.html index 128e3990..faaa97f3 100644 --- a/src/app/lnd/network-info/network-info.component.html +++ b/src/app/lnd/network-info/network-info.component.html @@ -12,13 +12,13 @@ + 'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) || + (card.id === 'status' && (apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusPendingChannels.status === apiCallStatusEnum.ERROR)) || + (card.id === 'fee' && apiCallStatusFees.status === apiCallStatusEnum.ERROR)}"> + *ngIf="(card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.INITIATED) || + (card.id === 'status' && (apiCallStatusChannels.status === apiCallStatusEnum.INITIATED || apiCallStatusPendingChannels.status === apiCallStatusEnum.INITIATED)) || + (card.id === 'fee' && apiCallStatusFees.status === apiCallStatusEnum.INITIATED)">
@@ -37,12 +37,12 @@ - - + +
-
-
-
+
+
+
diff --git a/src/app/lnd/network-info/network-info.component.spec.ts b/src/app/lnd/network-info/network-info.component.spec.ts index 2cf7474d..79817eec 100644 --- a/src/app/lnd/network-info/network-info.component.spec.ts +++ b/src/app/lnd/network-info/network-info.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { CommonService } from '../../shared/services/common.service'; import { LoggerService } from '../../shared/services/logger.service'; @@ -19,12 +22,7 @@ describe('NetworkInfoComponent', () => { declarations: [NetworkInfoComponent], imports: [ SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/network-info/network-info.component.ts b/src/app/lnd/network-info/network-info.component.ts index b4cb3fcc..76492a73 100644 --- a/src/app/lnd/network-info/network-info.component.ts +++ b/src/app/lnd/network-info/network-info.component.ts @@ -5,13 +5,14 @@ import { Store } from '@ngrx/store'; import { faProjectDiagram, faBolt, faServer, faNetworkWired } from '@fortawesome/free-solid-svg-icons'; import { LoggerService } from '../../shared/services/logger.service'; -import { GetInfo, NetworkInfo, Fees, ChannelsStatus } from '../../shared/models/lndModels'; +import { GetInfo, NetworkInfo, Fees, ChannelsStatus, PendingChannels, PendingChannelsSummary, Channel, ChannelsSummary, LightningBalance } from '../../shared/models/lndModels'; import { SelNodeChild } from '../../shared/models/RTLconfig'; import { CommonService } from '../../shared/services/common.service'; import { APICallStatusEnum, ScreenSizeEnum, UserPersonaEnum } from '../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../shared/models/apiCallsPayload'; +import { ApiCallsListLND, ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { channels, fees, networkInfo, nodeInfoAndNodeSettingsAndAPIStatus, pendingChannels } from '../store/lnd.selector'; @Component({ selector: 'rtl-network-info', @@ -35,11 +36,15 @@ export class NetworkInfoComponent implements OnInit, OnDestroy { public screenSizeEnum = ScreenSizeEnum; public userPersonaEnum = UserPersonaEnum; public errorMessages = ['', '', '', '', '']; - public apisCallStatus: ApiCallsListLND = null; + public apiCallStatusNodeInfo: ApiCallStatusPayload = null; + public apiCallStatusNetwork: ApiCallStatusPayload = null; + public apiCallStatusFees: ApiCallStatusPayload = null; + public apiCallStatusChannels: ApiCallStatusPayload = null; + public apiCallStatusPendingChannels: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.networkCards = [ @@ -67,41 +72,57 @@ export class NetworkInfoComponent implements OnInit, OnDestroy { } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.errorMessages = ['', '', '', '', '']; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) { - this.errorMessages[0] = (typeof (this.apisCallStatus.FetchInfo.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchInfo.message) : this.apisCallStatus.FetchInfo.message; + this.store.select(nodeInfoAndNodeSettingsAndAPIStatus).pipe(takeUntil(this.unSubs[0])). + subscribe((infoSettingsStatusSelector: { information: GetInfo, nodeSettings: SelNodeChild, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[0] = ''; + this.apiCallStatusNodeInfo = infoSettingsStatusSelector.apiCallStatus; + if (this.apiCallStatusNodeInfo.status === APICallStatusEnum.ERROR) { + this.errorMessages[0] = (typeof (this.apiCallStatusNodeInfo.message) === 'object') ? JSON.stringify(this.apiCallStatusNodeInfo.message) : this.apiCallStatusNodeInfo.message; } - if (rtlStore.apisCallStatus.FetchNetwork.status === APICallStatusEnum.ERROR) { - this.errorMessages[1] = (typeof (this.apisCallStatus.FetchNetwork.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchNetwork.message) : this.apisCallStatus.FetchNetwork.message; - } - if (rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) { - this.errorMessages[2] = (typeof (this.apisCallStatus.FetchFees.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchFees.message) : this.apisCallStatus.FetchFees.message; + this.selNode = infoSettingsStatusSelector.nodeSettings; + this.information = infoSettingsStatusSelector.information; + }); + this.store.select(networkInfo).pipe(takeUntil(this.unSubs[1])). + subscribe((networkInfoSelector: { networkInfo: NetworkInfo, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[1] = ''; + this.apiCallStatusNetwork = networkInfoSelector.apiCallStatus; + if (this.apiCallStatusNetwork.status === APICallStatusEnum.ERROR) { + this.errorMessages[1] = (typeof (this.apiCallStatusNetwork.message) === 'object') ? JSON.stringify(this.apiCallStatusNetwork.message) : this.apiCallStatusNetwork.message; } - if (rtlStore.apisCallStatus.FetchAllChannels.status === APICallStatusEnum.ERROR) { - this.errorMessages[3] = (typeof (this.apisCallStatus.FetchAllChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchAllChannels.message) : this.apisCallStatus.FetchAllChannels.message; + this.networkInfo = networkInfoSelector.networkInfo; + }); + this.store.select(fees).pipe(takeUntil(this.unSubs[2])). + subscribe((feesSelector: { fees: Fees, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[2] = ''; + this.apiCallStatusFees = feesSelector.apiCallStatus; + if (this.apiCallStatusFees.status === APICallStatusEnum.ERROR) { + this.errorMessages[2] = (typeof (this.apiCallStatusFees.message) === 'object') ? JSON.stringify(this.apiCallStatusFees.message) : this.apiCallStatusFees.message; } - if (rtlStore.apisCallStatus.FetchPendingChannels.status === APICallStatusEnum.ERROR) { - this.errorMessages[4] = (typeof (this.apisCallStatus.FetchPendingChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPendingChannels.message) : this.apisCallStatus.FetchPendingChannels.message; + this.fees = feesSelector.fees; + }); + this.store.select(pendingChannels).pipe(takeUntil(this.unSubs[3])). + subscribe((pendingChannelsSelector: { pendingChannels: PendingChannels, pendingChannelsSummary: PendingChannelsSummary, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[4] = ''; + this.apiCallStatusPendingChannels = pendingChannelsSelector.apiCallStatus; + if (this.apiCallStatusPendingChannels.status === APICallStatusEnum.ERROR) { + this.errorMessages[4] = (typeof (this.apiCallStatusPendingChannels.message) === 'object') ? JSON.stringify(this.apiCallStatusPendingChannels.message) : this.apiCallStatusPendingChannels.message; } - - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - this.networkInfo = rtlStore.networkInfo; - this.fees = rtlStore.fees; - this.channelsStatus = { - active: { channels: rtlStore.numberOfActiveChannels, capacity: rtlStore.totalCapacityActive }, - inactive: { channels: rtlStore.numberOfInactiveChannels, capacity: rtlStore.totalCapacityInactive }, - pending: { channels: rtlStore.numberOfPendingChannels.open.num_channels, capacity: rtlStore.numberOfPendingChannels.open.limbo_balance }, - closing: { - channels: rtlStore.numberOfPendingChannels.closing.num_channels + rtlStore.numberOfPendingChannels.force_closing.num_channels + rtlStore.numberOfPendingChannels.waiting_close.num_channels, - capacity: rtlStore.numberOfPendingChannels.total_limbo_balance - } + this.channelsStatus.pending = { num_channels: pendingChannelsSelector.pendingChannelsSummary.open.num_channels, capacity: pendingChannelsSelector.pendingChannelsSummary.open.limbo_balance }; + this.channelsStatus.closing = { + num_channels: pendingChannelsSelector.pendingChannelsSummary.closing.num_channels + pendingChannelsSelector.pendingChannelsSummary.force_closing.num_channels + pendingChannelsSelector.pendingChannelsSummary.waiting_close.num_channels, + capacity: pendingChannelsSelector.pendingChannelsSummary.total_limbo_balance }; - this.logger.info(rtlStore); + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[4])). + subscribe((channelsSelector: { channels: Channel[], channelsSummary: ChannelsSummary, lightningBalance: LightningBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessages[3] = ''; + this.apiCallStatusChannels = channelsSelector.apiCallStatus; + if (this.apiCallStatusChannels.status === APICallStatusEnum.ERROR) { + this.errorMessages[3] = (typeof (this.apiCallStatusChannels.message) === 'object') ? JSON.stringify(this.apiCallStatusChannels.message) : this.apiCallStatusChannels.message; + } + this.channelsStatus.active = channelsSelector.channelsSummary.active; + this.channelsStatus.inactive = channelsSelector.channelsSummary.inactive; + this.logger.info(channelsSelector); }); } diff --git a/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.html b/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.html index 96526b90..dbc49b71 100644 --- a/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.html +++ b/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.html @@ -17,8 +17,8 @@ {{labelError}}
- - + +
diff --git a/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.spec.ts b/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.spec.ts index 04013f75..862daaf5 100644 --- a/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.spec.ts +++ b/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { DataService } from '../../../shared/services/data.service'; @@ -21,12 +24,7 @@ describe('OnChainLabelModalComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.ts b/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.ts index 08deef16..86e13fd8 100644 --- a/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.ts +++ b/src/app/lnd/on-chain/on-chain-label-modal/on-chain-label-modal.component.ts @@ -10,10 +10,9 @@ import { UTXO } from '../../../shared/models/lndModels'; import { OnChainLabelUTXO } from '../../../shared/models/alertData'; import { DataService } from '../../../shared/services/data.service'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; -import * as LNDActions from '../../../lnd/store/lnd.actions'; +import { RTLState } from '../../../store/rtl.state'; import { CommonService } from '../../../shared/services/common.service'; +import { fetchTransactions, fetchUTXOs } from '../../store/lnd.actions'; @Component({ selector: 'rtl-on-chain-lebel-modal', @@ -29,28 +28,30 @@ export class OnChainLabelModalComponent implements OnInit, OnDestroy { public labelError = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: OnChainLabelUTXO, private dataService: DataService, private store: Store, private snackBar: MatSnackBar, private commonService: CommonService) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: OnChainLabelUTXO, private dataService: DataService, private store: Store, private snackBar: MatSnackBar, private commonService: CommonService) { } ngOnInit() { this.utxo = this.data.utxo; this.label = this.utxo.label; } - onLabelUTXO(): boolean|void { + onLabelUTXO(): boolean | void { if (!this.label || this.label === '') { return true; } this.labelError = ''; this.dataService.labelUTXO(this.utxo.outpoint.txid_bytes, this.label, true). pipe(takeUntil(this.unSubs[0])). - subscribe({ next: (res) => { - this.store.dispatch(new LNDActions.FetchTransactions()); - this.store.dispatch(new LNDActions.FetchUTXOs()); - this.snackBar.open('Successfully labelled the UTXO.'); - this.dialogRef.close(); - }, error: (err) => { - this.labelError = err; - } }); + subscribe({ + next: (res) => { + this.store.dispatch(fetchTransactions()); + this.store.dispatch(fetchUTXOs()); + this.snackBar.open('Successfully labelled the UTXO.'); + this.dialogRef.close(); + }, error: (err) => { + this.labelError = err; + } + }); } resetData() { diff --git a/src/app/lnd/on-chain/on-chain-receive/on-chain-receive.component.spec.ts b/src/app/lnd/on-chain/on-chain-receive/on-chain-receive.component.spec.ts index bfb68241..df96da48 100644 --- a/src/app/lnd/on-chain/on-chain-receive/on-chain-receive.component.spec.ts +++ b/src/app/lnd/on-chain/on-chain-receive/on-chain-receive.component.spec.ts @@ -4,7 +4,10 @@ import { StoreModule } from '@ngrx/store'; import { mockLNDEffects } from '../../../shared/test-helpers/mock-services'; import { SharedModule } from '../../../shared/shared.module'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { LNDEffects } from '../../store/lnd.effects'; import { OnChainReceiveComponent } from './on-chain-receive.component'; @@ -18,12 +21,7 @@ describe('OnChainReceiveComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: LNDEffects, useClass: mockLNDEffects } diff --git a/src/app/lnd/on-chain/on-chain-receive/on-chain-receive.component.ts b/src/app/lnd/on-chain/on-chain-receive/on-chain-receive.component.ts index 416513ee..9b734d44 100644 --- a/src/app/lnd/on-chain/on-chain-receive/on-chain-receive.component.ts +++ b/src/app/lnd/on-chain/on-chain-receive/on-chain-receive.component.ts @@ -7,9 +7,9 @@ import { ADDRESS_TYPES } from '../../../shared/services/consts-enums-functions'; import { OnChainGeneratedAddressComponent } from '../../../shared/components/data-modal/on-chain-generated-address/on-chain-generated-address.component'; import { LNDEffects } from '../../store/lnd.effects'; -import * as LNDActions from '../../store/lnd.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; +import { getNewAddress } from '../../store/lnd.actions'; @Component({ selector: 'rtl-on-chain-receive', @@ -22,23 +22,24 @@ export class OnChainReceiveComponent { public selectedAddressType: AddressType = ADDRESS_TYPES[0]; public newAddress = ''; - constructor(private store: Store, private lndEffects: LNDEffects) {} + constructor(private store: Store, private lndEffects: LNDEffects) { } onGenerateAddress() { - this.store.dispatch(new LNDActions.GetNewAddress(this.selectedAddressType)); - this.lndEffects.setNewAddress. - pipe(take(1)). - subscribe((newAddress) => { - this.newAddress = newAddress; - this.store.dispatch(new RTLActions.OpenAlert({ - width: '58%', - data: { - address: this.newAddress, - addressType: this.selectedAddressType.addressTp, - component: OnChainGeneratedAddressComponent + this.store.dispatch(getNewAddress({ payload: this.selectedAddressType })); + this.lndEffects.setNewAddress.pipe(take(1)).subscribe((newAddress) => { + this.newAddress = newAddress; + setTimeout(() => { + this.store.dispatch(openAlert({ + payload: { + data: { + address: this.newAddress, + addressType: this.selectedAddressType.addressTp, + component: OnChainGeneratedAddressComponent + } } })); - }); + }, 0); + }); } } diff --git a/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.html b/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.html index d12e67a7..4e4930a2 100644 --- a/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.html +++ b/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.html @@ -45,8 +45,8 @@ {{sendFundError}}
- - + +
@@ -66,7 +66,7 @@
- +
@@ -95,7 +95,7 @@
- +
@@ -112,14 +112,14 @@ {{sendFundError}}
- +
- +
diff --git a/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts b/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts index e43211b1..d6b63573 100644 --- a/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts +++ b/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -24,12 +27,7 @@ describe('OnChainSendModalComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts b/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts index 75cc370a..fbedb66e 100644 --- a/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts +++ b/src/app/lnd/on-chain/on-chain-send-modal/on-chain-send-modal.component.ts @@ -11,17 +11,18 @@ import { MatStepper } from '@angular/material/stepper'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { OnChainSendFunds } from '../../../shared/models/alertData'; -import { SelNodeChild, GetInfoRoot, RTLConfiguration } from '../../../shared/models/RTLconfig'; -import { GetInfo, Balance, AddressType } from '../../../shared/models/lndModels'; -import { CURRENCY_UNITS, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; +import { SelNodeChild, RTLConfiguration } from '../../../shared/models/RTLconfig'; +import { GetInfo, AddressType, BlockchainBalance } from '../../../shared/models/lndModels'; +import { CURRENCY_UNITS, CurrencyUnitEnum, CURRENCY_UNIT_FORMATS, APICallStatusEnum, LNDActions } from '../../../shared/services/consts-enums-functions'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; import * as sha256 from 'sha256'; import { RTLEffects } from '../../../store/rtl.effects'; -import * as LNDActions from '../../store/lnd.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { isAuthorized, openSnackBar } from '../../../store/rtl.actions'; +import { setChannelTransaction } from '../../store/lnd.actions'; +import { rootAppConfig, rootSelectedNode } from '../../../store/rtl.selector'; @Component({ selector: 'rtl-on-chain-send-modal', @@ -37,10 +38,9 @@ export class OnChainSendModalComponent implements OnInit, OnDestroy { public sweepAll = false; public selNode: SelNodeChild = {}; public appConfig: RTLConfiguration; - public nodeData: GetInfoRoot; public addressTypes = []; public selectedAddress: AddressType = {}; - public blockchainBalance: Balance = {}; + public blockchainBalance: BlockchainBalance = {}; public information: GetInfo = {}; public newAddress = ''; public transactionAddress = ''; @@ -65,9 +65,9 @@ export class OnChainSendModalComponent implements OnInit, OnDestroy { passwordFormGroup: FormGroup; sendFundFormGroup: FormGroup; confirmFormGroup: FormGroup; - private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: OnChainSendFunds, private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService, private decimalPipe: DecimalPipe, private snackBar: MatSnackBar, private actions: Actions, private formBuilder: FormBuilder) { } + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: OnChainSendFunds, private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService, private decimalPipe: DecimalPipe, private snackBar: MatSnackBar, private actions: Actions, private formBuilder: FormBuilder) { } ngOnInit() { this.sweepAll = this.data.sweepAll; @@ -95,21 +95,20 @@ export class OnChainSendModalComponent implements OnInit, OnDestroy { this.sendFundFormGroup.controls.transactionFees.setValue(null); } }); - this.store.select('root'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rootStore) => { - this.fiatConversion = rootStore.selNode.settings.fiatConversion; - this.amountUnits = rootStore.selNode.settings.currencyUnits; - this.appConfig = rootStore.appConfig; - this.nodeData = rootStore.nodeData; - this.logger.info(rootStore); - }); + this.store.select(rootAppConfig).pipe(takeUntil(this.unSubs[1])).subscribe((appConfig) => { + this.appConfig = appConfig; + }); + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[2])).subscribe((selNode) => { + this.fiatConversion = selNode.settings.fiatConversion; + this.amountUnits = selNode.settings.currencyUnits; + this.logger.info(selNode); + }); this.actions.pipe( - takeUntil(this.unSubs[2]), + takeUntil(this.unSubs[3]), filter((action) => action.type === LNDActions.UPDATE_API_CALL_STATUS_LND || action.type === LNDActions.SET_CHANNEL_TRANSACTION_RES_LND)). - subscribe((action: LNDActions.UpdateAPICallStatus | LNDActions.SetChannelTransactionRes) => { + subscribe((action: any) => { if (action.type === LNDActions.SET_CHANNEL_TRANSACTION_RES_LND) { - this.store.dispatch(new RTLActions.OpenSnackBar(this.sweepAll ? 'All Funds Sent Successfully!' : 'Fund Sent Successfully!')); + this.store.dispatch(openSnackBar({ payload: (this.sweepAll ? 'All Funds Sent Successfully!' : 'Fund Sent Successfully!') })); this.dialogRef.close(); } if (action.type === LNDActions.UPDATE_API_CALL_STATUS_LND && action.payload.status === APICallStatusEnum.ERROR && action.payload.action === 'SetChannelTransaction') { @@ -123,7 +122,7 @@ export class OnChainSendModalComponent implements OnInit, OnDestroy { return true; } this.flgValidated = false; - this.store.dispatch(new RTLActions.IsAuthorized(sha256(this.passwordFormGroup.controls.password.value))); + this.store.dispatch(isAuthorized({ payload: sha256(this.passwordFormGroup.controls.password.value).toString() })); this.rtlEffects.isAuthorizedRes.pipe(take(1)). subscribe((authRes) => { if (authRes !== 'ERROR') { @@ -164,12 +163,12 @@ export class OnChainSendModalComponent implements OnInit, OnDestroy { } if (this.transactionAmount && this.selAmountUnit !== CurrencyUnitEnum.SATS) { this.commonService.convertCurrency(this.transactionAmount, this.selAmountUnit === this.amountUnits[2] ? CurrencyUnitEnum.OTHER : this.selAmountUnit, CurrencyUnitEnum.SATS, this.amountUnits[2], this.fiatConversion). - pipe(takeUntil(this.unSubs[3])). + pipe(takeUntil(this.unSubs[4])). subscribe({ next: (data) => { this.selAmountUnit = CurrencyUnitEnum.SATS; postTransaction.amount = +this.decimalPipe.transform(data[this.amountUnits[0]], this.currencyUnitFormats[this.amountUnits[0]]).replace(/,/g, ''); - this.store.dispatch(new LNDActions.SetChannelTransaction(postTransaction)); + this.store.dispatch(setChannelTransaction({ payload: postTransaction })); }, error: (err) => { this.transactionAmount = null; this.selAmountUnit = CurrencyUnitEnum.SATS; @@ -177,7 +176,7 @@ export class OnChainSendModalComponent implements OnInit, OnDestroy { } }); } else { - this.store.dispatch(new LNDActions.SetChannelTransaction(postTransaction)); + this.store.dispatch(setChannelTransaction({ payload: postTransaction })); } } @@ -242,7 +241,7 @@ export class OnChainSendModalComponent implements OnInit, OnDestroy { if (this.transactionAmount && this.selAmountUnit !== event.value) { const amount = this.transactionAmount ? this.transactionAmount : 0; this.commonService.convertCurrency(amount, prevSelectedUnit, currSelectedUnit, this.amountUnits[2], this.fiatConversion). - pipe(takeUntil(this.unSubs[3])). + pipe(takeUntil(this.unSubs[5])). subscribe({ next: (data) => { this.selAmountUnit = event.value; diff --git a/src/app/lnd/on-chain/on-chain-send/on-chain-send.component.spec.ts b/src/app/lnd/on-chain/on-chain-send/on-chain-send.component.spec.ts index b4f85709..2e791052 100644 --- a/src/app/lnd/on-chain/on-chain-send/on-chain-send.component.spec.ts +++ b/src/app/lnd/on-chain/on-chain-send/on-chain-send.component.spec.ts @@ -3,7 +3,10 @@ import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; import { SharedModule } from '../../../shared/shared.module'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { OnChainSendComponent } from './on-chain-send.component'; describe('OnChainSendComponent', () => { @@ -16,12 +19,7 @@ describe('OnChainSendComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/lnd/on-chain/on-chain-send/on-chain-send.component.ts b/src/app/lnd/on-chain/on-chain-send/on-chain-send.component.ts index 98caecfe..bcf5bea8 100644 --- a/src/app/lnd/on-chain/on-chain-send/on-chain-send.component.ts +++ b/src/app/lnd/on-chain/on-chain-send/on-chain-send.component.ts @@ -6,8 +6,8 @@ import { Store } from '@ngrx/store'; import { OnChainSendModalComponent } from '../on-chain-send-modal/on-chain-send-modal.component'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; @Component({ selector: 'rtl-on-chain-send', @@ -19,7 +19,7 @@ export class OnChainSendComponent implements OnInit, OnDestroy { public sweepAll = false; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private store: Store, private activatedRoute: ActivatedRoute) {} + constructor(private store: Store, private activatedRoute: ActivatedRoute) { } ngOnInit() { this.activatedRoute.data.pipe(takeUntil(this.unSubs[0])).subscribe((routeData) => { @@ -28,10 +28,14 @@ export class OnChainSendComponent implements OnInit, OnDestroy { } openSendFundsModal() { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - sweepAll: this.sweepAll, - component: OnChainSendModalComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + sweepAll: this.sweepAll, + component: OnChainSendModalComponent + } + } + })); } ngOnDestroy() { diff --git a/src/app/lnd/on-chain/on-chain.component.spec.ts b/src/app/lnd/on-chain/on-chain.component.spec.ts index 7792ea60..a4309d83 100644 --- a/src/app/lnd/on-chain/on-chain.component.spec.ts +++ b/src/app/lnd/on-chain/on-chain.component.spec.ts @@ -9,7 +9,10 @@ import { mockDataService, mockLoggerService, mockRTLEffects } from '../../shared import { SharedModule } from '../../shared/shared.module'; import { RTLEffects } from '../../store/rtl.effects'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { OnChainComponent } from './on-chain.component'; import { OnChainTransactionHistoryComponent } from './utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component'; import { UTXOTablesComponent } from './utxo-tables/utxo-tables.component'; @@ -26,12 +29,7 @@ describe('OnChainComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/on-chain/on-chain.component.ts b/src/app/lnd/on-chain/on-chain.component.ts index 2d57b8a5..694c423f 100644 --- a/src/app/lnd/on-chain/on-chain.component.ts +++ b/src/app/lnd/on-chain/on-chain.component.ts @@ -6,7 +6,10 @@ import { Store } from '@ngrx/store'; import { faExchangeAlt, faChartPie } from '@fortawesome/free-solid-svg-icons'; import { SelNodeChild } from '../../shared/models/RTLconfig'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { blockchainBalance, lndNodeSettings } from '../store/lnd.selector'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; +import { BlockchainBalance } from '../../shared/models/lndModels'; @Component({ selector: 'rtl-on-chain', @@ -25,23 +28,25 @@ export class OnChainComponent implements OnInit, OnDestroy { public selectedTable = this.tables[0]; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private router: Router, private activatedRoute: ActivatedRoute) {} + constructor(private store: Store, private router: Router, private activatedRoute: ActivatedRoute) { } ngOnInit() { const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.selectedTable = this.tables.find((table) => table.name === this.router.url.substring(this.router.url.lastIndexOf('/') + 1)); this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.selectedTable = this.tables.find((table) => table.name === value.urlAfterRedirects.substring(value.urlAfterRedirects.lastIndexOf('/') + 1)); }); - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.balances = [{ title: 'Total Balance', dataValue: rtlStore.blockchainBalance.total_balance || 0 }, { title: 'Confirmed', dataValue: rtlStore.blockchainBalance.confirmed_balance }, { title: 'Unconfirmed', dataValue: rtlStore.blockchainBalance.unconfirmed_balance }]; + this.store.select(lndNodeSettings).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeSettings: SelNodeChild) => { + this.selNode = nodeSettings; + }); + this.store.select(blockchainBalance).pipe(takeUntil(this.unSubs[2])). + subscribe((bcBalanceSelector: { blockchainBalance: BlockchainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.balances = [{ title: 'Total Balance', dataValue: bcBalanceSelector.blockchainBalance.total_balance || 0 }, { title: 'Confirmed', dataValue: bcBalanceSelector.blockchainBalance.confirmed_balance }, { title: 'Unconfirmed', dataValue: bcBalanceSelector.blockchainBalance.unconfirmed_balance }]; }); } diff --git a/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.html b/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.html index a60398d8..7be9b6fd 100644 --- a/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.html +++ b/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.html @@ -1,12 +1,12 @@
- +
- +
@@ -51,9 +51,9 @@ diff --git a/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.spec.ts b/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.spec.ts index 40ccbe35..5a7d178b 100644 --- a/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.spec.ts +++ b/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../shared/services/common.service'; import { LoggerService } from '../../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('OnChainTransactionHistoryComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.ts b/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.ts index a9f307ec..c137323d 100644 --- a/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.ts +++ b/src/app/lnd/on-chain/utxo-tables/on-chain-transaction-history/on-chain-transaction-history.component.ts @@ -10,12 +10,13 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { Transaction } from '../../../../shared/models/lndModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../../shared/services/logger.service'; import { CommonService } from '../../../../shared/services/common.service'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert } from '../../../../store/rtl.actions'; +import { transactions } from '../../../store/lnd.selector'; @Component({ selector: 'rtl-on-chain-transaction-history', @@ -27,8 +28,8 @@ import * as fromRTLReducer from '../../../../store/rtl.reducers'; }) export class OnChainTransactionHistoryComponent implements OnInit, OnChanges, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public transactions: Transaction[]; faHistory = faHistory; public displayedColumns: any[] = []; @@ -39,11 +40,12 @@ export class OnChainTransactionHistoryComponent implements OnInit, OnChanges, On public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -61,19 +63,18 @@ export class OnChainTransactionHistoryComponent implements OnInit, OnChanges, On } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(transactions).pipe(takeUntil(this.unSubs[0])). + subscribe((transactionsSelector: { transactions: Transaction[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchTransactions.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchTransactions.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchTransactions.message) : this.apisCallStatus.FetchTransactions.message; + this.apiCallStatus = transactionsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - if (rtlStore.transactions && rtlStore.transactions.length > 0) { - this.transactions = rtlStore.transactions; + if (transactionsSelector.transactions && transactionsSelector.transactions.length > 0) { + this.transactions = transactionsSelector.transactions; this.loadTransactionsTable(this.transactions); } - this.logger.info(rtlStore); + this.logger.info(transactionsSelector); }); } @@ -83,8 +84,8 @@ export class OnChainTransactionHistoryComponent implements OnInit, OnChanges, On } } - applyFilter(selFilter: any) { - this.listTransactions.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.listTransactions.filter = this.selFilter.trim().toLowerCase(); } onTransactionClick(selTransaction: Transaction) { @@ -93,18 +94,22 @@ export class OnChainTransactionHistoryComponent implements OnInit, OnChanges, On [{ key: 'tx_hash', value: selTransaction.tx_hash, title: 'Transaction Hash', width: 100 }], [{ key: 'label', value: selTransaction.label, title: 'Label', width: 100, type: DataTypeEnum.STRING }], [{ key: 'time_stamp', value: selTransaction.time_stamp, title: 'Date/Time', width: 50, type: DataTypeEnum.DATE_TIME }, - { key: 'block_height', value: selTransaction.block_height, title: 'Block Height', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'block_height', value: selTransaction.block_height, title: 'Block Height', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'num_confirmations', value: selTransaction.num_confirmations, title: 'Number of Confirmations', width: 34, type: DataTypeEnum.NUMBER }, - { key: 'total_fees', value: selTransaction.total_fees, title: 'Total Fees (Sats)', width: 33, type: DataTypeEnum.NUMBER }, - { key: 'amount', value: selTransaction.amount, title: 'Amount (Sats)', width: 33, type: DataTypeEnum.NUMBER }], + { key: 'total_fees', value: selTransaction.total_fees, title: 'Total Fees (Sats)', width: 33, type: DataTypeEnum.NUMBER }, + { key: 'amount', value: selTransaction.amount, title: 'Amount (Sats)', width: 33, type: DataTypeEnum.NUMBER }], [{ key: 'dest_addresses', value: selTransaction.dest_addresses, title: 'Destination Addresses', width: 100, type: DataTypeEnum.ARRAY }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Transaction Information', - message: reorderedTransactions, - scrollable: selTransaction.dest_addresses && selTransaction.dest_addresses.length > 5 - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Transaction Information', + message: reorderedTransactions, + scrollable: selTransaction.dest_addresses && selTransaction.dest_addresses.length > 5 + } + } + })); } loadTransactionsTable(transactions) { @@ -116,6 +121,7 @@ export class OnChainTransactionHistoryComponent implements OnInit, OnChanges, On return newRowData.includes(fltr); }; this.listTransactions.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.listTransactions); } diff --git a/src/app/lnd/on-chain/utxo-tables/utxo-tables.component.spec.ts b/src/app/lnd/on-chain/utxo-tables/utxo-tables.component.spec.ts index 1d21a81d..a5452c6a 100644 --- a/src/app/lnd/on-chain/utxo-tables/utxo-tables.component.spec.ts +++ b/src/app/lnd/on-chain/utxo-tables/utxo-tables.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../shared/services/logger.service'; import { UTXOTablesComponent } from './utxo-tables.component'; @@ -24,12 +27,7 @@ describe('UTXOTablesComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/on-chain/utxo-tables/utxo-tables.component.ts b/src/app/lnd/on-chain/utxo-tables/utxo-tables.component.ts index 527d4581..b80ed45a 100644 --- a/src/app/lnd/on-chain/utxo-tables/utxo-tables.component.ts +++ b/src/app/lnd/on-chain/utxo-tables/utxo-tables.component.ts @@ -5,8 +5,11 @@ import { Store } from '@ngrx/store'; import { LoggerService } from '../../../shared/services/logger.service'; -import * as LNDActions from '../../store/lnd.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { fetchTransactions, fetchUTXOs } from '../../store/lnd.actions'; +import { transactions, utxos } from '../../store/lnd.selector'; +import { Transaction, UTXO } from '../../../shared/models/lndModels'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-utxo-tables', @@ -20,24 +23,27 @@ export class UTXOTablesComponent implements OnInit, OnDestroy { public numTransactions = 0; public numUtxos = 0; public numDustUtxos = 0; - private unSubs: Array> = [new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store) {} + constructor(private logger: LoggerService, private store: Store) { } ngOnInit() { - this.store.dispatch(new LNDActions.FetchTransactions()); - this.store.dispatch(new LNDActions.FetchUTXOs()); - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - if (rtlStore.utxos && rtlStore.utxos.length > 0) { - this.numUtxos = rtlStore.utxos.length; - this.numDustUtxos = rtlStore.utxos.filter((utxo) => +utxo.amount_sat < 1000).length; + this.store.dispatch(fetchTransactions()); + this.store.dispatch(fetchUTXOs()); + this.store.select(utxos).pipe(takeUntil(this.unSubs[0])). + subscribe((utxosSelector: { utxos: UTXO[], apiCallStatus: ApiCallStatusPayload }) => { + if (utxosSelector.utxos && utxosSelector.utxos.length > 0) { + this.numUtxos = utxosSelector.utxos.length; + this.numDustUtxos = utxosSelector.utxos.filter((utxo) => +utxo.amount_sat < 1000).length; } - if (rtlStore.transactions && rtlStore.transactions.length > 0) { - this.numTransactions = rtlStore.transactions.length; + this.logger.info(utxosSelector); + }); + this.store.select(transactions).pipe(takeUntil(this.unSubs[1])). + subscribe((transactionsSelector: { transactions: Transaction[], apiCallStatus: ApiCallStatusPayload }) => { + if (transactionsSelector.transactions && transactionsSelector.transactions.length > 0) { + this.numTransactions = transactionsSelector.transactions.length; } - this.logger.info(rtlStore); + this.logger.info(transactionsSelector); }); } diff --git a/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.html b/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.html index 33542cc0..510990c4 100644 --- a/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.html +++ b/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.html @@ -1,21 +1,21 @@
- +
- +
Date/Time -

No transaction available.

-

Getting transactions...

-

{{errorMessage}}

+

No transaction available.

+

Getting transactions...

+

{{errorMessage}}

@@ -78,5 +78,5 @@ - + \ No newline at end of file diff --git a/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.spec.ts b/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.spec.ts index 0fbe5449..1b3c3bc5 100644 --- a/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.spec.ts +++ b/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../shared/services/common.service'; import { LoggerService } from '../../../../shared/services/logger.service'; import { DataService } from '../../../../shared/services/data.service'; @@ -22,12 +25,7 @@ describe('OnChainUTXOsComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.ts b/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.ts index 538a185c..cb6cf041 100644 --- a/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.ts +++ b/src/app/lnd/on-chain/utxo-tables/utxos/utxos.component.ts @@ -10,15 +10,16 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { UTXO } from '../../../../shared/models/lndModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, WALLET_ADDRESS_TYPE, APICallStatusEnum } from '../../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../../shared/services/logger.service'; import { CommonService } from '../../../../shared/services/common.service'; import { DataService } from '../../../../shared/services/data.service'; import { OnChainLabelModalComponent } from '../../on-chain-label-modal/on-chain-label-modal.component'; import { RTLEffects } from '../../../../store/rtl.effects'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../../store/rtl.actions'; +import { utxos } from '../../../store/lnd.selector'; @Component({ selector: 'rtl-on-chain-utxos', @@ -30,10 +31,11 @@ import * as fromRTLReducer from '../../../../store/rtl.reducers'; }) export class OnChainUTXOsComponent implements OnInit, OnChanges, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; @Input() isDustUTXO = false; public utxos: UTXO[]; + public dustUtxos: UTXO[]; public addressType = WALLET_ADDRESS_TYPE; faMoneyBillWave = faMoneyBillWave; public displayedColumns: any[] = []; @@ -44,11 +46,12 @@ export class OnChainUTXOsComponent implements OnInit, OnChanges, OnDestroy { public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private dataService: DataService, private store: Store, private rtlEffects: RTLEffects, private decimalPipe: DecimalPipe) { + constructor(private logger: LoggerService, private commonService: CommonService, private dataService: DataService, private store: Store, private rtlEffects: RTLEffects, private decimalPipe: DecimalPipe) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -66,30 +69,33 @@ export class OnChainUTXOsComponent implements OnInit, OnChanges, OnDestroy { } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(utxos).pipe(takeUntil(this.unSubs[0])). + subscribe((utxosSelector: { utxos: UTXO[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchUTXOs.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchUTXOs.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchUTXOs.message) : this.apisCallStatus.FetchUTXOs.message; + this.apiCallStatus = utxosSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - if (rtlStore.utxos && rtlStore.utxos.length > 0) { - this.utxos = (this.isDustUTXO) ? rtlStore.utxos.filter((utxo) => +utxo.amount_sat < 1000) : rtlStore.utxos; - this.loadUTXOsTable(this.utxos); + if (utxosSelector.utxos && utxosSelector.utxos.length > 0) { + this.dustUtxos = utxosSelector.utxos.filter((utxo) => +utxo.amount_sat < 1000); + this.utxos = utxosSelector.utxos; + this.loadUTXOsTable((this.isDustUTXO) ? this.dustUtxos : this.utxos); } - this.logger.info(rtlStore); + this.logger.info(utxosSelector); }); } ngOnChanges() { - if (this.utxos && this.utxos.length > 0) { + if (!this.isDustUTXO && this.utxos && this.utxos.length > 0) { this.loadUTXOsTable(this.utxos); } + if (this.isDustUTXO && this.dustUtxos && this.dustUtxos.length > 0) { + this.loadUTXOsTable(this.dustUtxos); + } } - applyFilter(selFilter: any) { - this.listUTXOs.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.listUTXOs.filter = this.selFilter.trim().toLowerCase(); } onUTXOClick(selUTXO: UTXO) { @@ -97,25 +103,29 @@ export class OnChainUTXOsComponent implements OnInit, OnChanges, OnDestroy { [{ key: 'txid', value: selUTXO.outpoint.txid_str, title: 'Transaction ID', width: 100, type: DataTypeEnum.STRING }], [{ key: 'label', value: selUTXO.label, title: 'Label', width: 100, type: DataTypeEnum.STRING }], [{ key: 'output_index', value: selUTXO.outpoint.output_index, title: 'Output Index', width: 34, type: DataTypeEnum.NUMBER }, - { key: 'amount_sat', value: selUTXO.amount_sat, title: 'Amount (Sats)', width: 33, type: DataTypeEnum.NUMBER }, - { key: 'confirmations', value: selUTXO.confirmations, title: 'Confirmations', width: 33, type: DataTypeEnum.NUMBER }], + { key: 'amount_sat', value: selUTXO.amount_sat, title: 'Amount (Sats)', width: 33, type: DataTypeEnum.NUMBER }, + { key: 'confirmations', value: selUTXO.confirmations, title: 'Confirmations', width: 33, type: DataTypeEnum.NUMBER }], [{ key: 'address_type', value: this.addressType[selUTXO.address_type].name, title: 'Address Type', width: 34 }, - { key: 'address', value: selUTXO.address, title: 'Address', width: 66 }], + { key: 'address', value: selUTXO.address, title: 'Address', width: 66 }], [{ key: 'pk_script', value: selUTXO.pk_script, title: 'PK Script', width: 100, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'UTXO Information', - message: reorderedUTXOs - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'UTXO Information', + message: reorderedUTXOs + } + } + })); } loadUTXOsTable(UTXOs: UTXO[]) { this.listUTXOs = new MatTableDataSource([...UTXOs]); this.listUTXOs.filterPredicate = (utxo: UTXO, fltr: string) => { const newUTXO = ((utxo.label ? utxo.label.toLowerCase() : '') + (utxo.outpoint.txid_str ? utxo.outpoint.txid_str.toLowerCase() : '') + (utxo.outpoint.output_index ? utxo.outpoint.output_index : '') + - (utxo.outpoint.txid_bytes ? utxo.outpoint.txid_bytes.toLowerCase() : '') + (utxo.address ? utxo.address.toLowerCase() : '') + (utxo.address_type ? utxo.address_type.toLowerCase() : '') + - (utxo.amount_sat ? utxo.amount_sat : '') + (utxo.confirmations ? utxo.confirmations : '') + (utxo.pk_script ? utxo.pk_script.toLowerCase() : '')); + (utxo.outpoint.txid_bytes ? utxo.outpoint.txid_bytes.toLowerCase() : '') + (utxo.address ? utxo.address.toLowerCase() : '') + (utxo.address_type ? utxo.address_type.toLowerCase() : '') + + (utxo.amount_sat ? utxo.amount_sat : '') + (utxo.confirmations ? utxo.confirmations : '') + (utxo.pk_script ? utxo.pk_script.toLowerCase() : '')); return newUTXO.includes(fltr); }; this.listUTXOs.sortingDataAccessor = (data: any, sortHeaderId: string) => { @@ -128,14 +138,19 @@ export class OnChainUTXOsComponent implements OnInit, OnChanges, OnDestroy { this.listUTXOs.sort = this.sort; this.listUTXOs.filterPredicate = (utxo: UTXO, fltr: string) => JSON.stringify(utxo).toLowerCase().includes(fltr); this.listUTXOs.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.listUTXOs); } onLabelUTXO(utxo: UTXO) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - utxo: utxo, - component: OnChainLabelModalComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + utxo: utxo, + component: OnChainLabelModalComponent + } + } + })); } onLeaseUTXO(utxo: UTXO) { @@ -146,14 +161,18 @@ export class OnChainUTXOsComponent implements OnInit, OnChanges, OnDestroy { if (utxo.label) { utxoDetails.splice(1, 0, [{ key: 'label', value: utxo.label, title: 'Label', width: 100 }]); } - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Lease UTXO', - informationMessage: 'The UTXO will be leased for 10 minutes.', - message: utxoDetails, - noBtnText: 'Cancel', - yesBtnText: 'Lease UTXO' - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Lease UTXO', + informationMessage: 'The UTXO will be leased for 10 minutes.', + message: utxoDetails, + noBtnText: 'Cancel', + yesBtnText: 'Lease UTXO' + } + } + })); this.rtlEffects.closeConfirm. pipe(takeUntil(this.unSubs[0])). subscribe((confirmRes) => { diff --git a/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.html b/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.html index 59e235d4..e657add8 100644 --- a/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.html +++ b/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.html @@ -55,8 +55,8 @@
- - + +
diff --git a/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.spec.ts b/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.spec.ts index c9250242..8b22bdab 100644 --- a/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.spec.ts +++ b/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { DataService } from '../../../../shared/services/data.service'; import { BumpFeeComponent } from './bump-fee.component'; @@ -21,12 +24,7 @@ describe('BumpFeeComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: LoggerService, useClass: mockLoggerService }, @@ -41,6 +39,7 @@ describe('BumpFeeComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(BumpFeeComponent); component = fixture.componentInstance; + component.data.pendingChannel = { channel: { channel_point: '' } }; fixture.detectChanges(); }); diff --git a/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.ts b/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.ts index 3768504a..9fa0506c 100644 --- a/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.ts +++ b/src/app/lnd/peers-channels/channels/bump-fee-modal/bump-fee.component.ts @@ -37,17 +37,17 @@ export class BumpFeeComponent implements OnInit, OnDestroy { public bumpFeeError = ''; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: PendingOpenChannelInformation, private logger: LoggerService, private dataService: DataService, private snackBar: MatSnackBar) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: PendingOpenChannelInformation, private logger: LoggerService, private dataService: DataService, private snackBar: MatSnackBar) { } ngOnInit() { this.transTypes = this.transTypes.splice(1); this.bumpFeeChannel = this.data.pendingChannel; - const channelPointArr = this.bumpFeeChannel.channel && this.bumpFeeChannel.channel.channel_point ? this.bumpFeeChannel.channel.channel_point.split(':') : []; - this.bumpFeeChannel.channel.txid_str = channelPointArr[0] ? channelPointArr[0] : (this.bumpFeeChannel.channel && this.bumpFeeChannel.channel.channel_point ? this.bumpFeeChannel.channel.channel_point : ''); - this.bumpFeeChannel.channel.output_index = channelPointArr[1] ? +channelPointArr[1] : null; + const channelPointArr = this.bumpFeeChannel.channel.channel_point.split(':') || []; + this.bumpFeeChannel.channel.txid_str = channelPointArr[0] || (this.bumpFeeChannel.channel && this.bumpFeeChannel.channel.channel_point ? this.bumpFeeChannel.channel.channel_point : ''); + this.bumpFeeChannel.channel.output_index = +channelPointArr[1] || null; } - onBumpFee(): boolean|void { + onBumpFee(): boolean | void { if (this.outputIndex === this.bumpFeeChannel.channel.output_index) { this.outputIdx.control.setErrors({ pendingChannelOutputIndex: true }); return true; @@ -56,12 +56,14 @@ export class BumpFeeComponent implements OnInit, OnDestroy { return true; } this.dataService.bumpFee(this.bumpFeeChannel.channel.txid_str, this.outputIndex, this.blocks, this.fees).pipe(takeUntil(this.unSubs[0])). - subscribe({ next: (res) => { - this.dialogRef.close(false); - }, error: (err) => { - this.logger.error(err); - this.bumpFeeError = err.message ? err.message : err; - } }); + subscribe({ + next: (res) => { + this.dialogRef.close(false); + }, error: (err) => { + this.logger.error(err); + this.bumpFeeError = err.message ? err.message : err; + } + }); } onCopyID(payload: string) { diff --git a/src/app/lnd/peers-channels/channels/channel-information-modal/channel-information.component.html b/src/app/lnd/peers-channels/channels/channel-information-modal/channel-information.component.html index 410f5906..1f7b2cc0 100644 --- a/src/app/lnd/peers-channels/channels/channel-information-modal/channel-information.component.html +++ b/src/app/lnd/peers-channels/channels/channel-information-modal/channel-information.component.html @@ -19,14 +19,14 @@ {{channel.remote_alias}} - +

Channel Point

{{channel.channel_point}}
- +

Peer Public Key

@@ -132,12 +132,12 @@
- - - + +
diff --git a/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.html b/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.html index 87a1624b..65dd445f 100644 --- a/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.html +++ b/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.html @@ -37,12 +37,12 @@ {{activeChannel.remote_alias || activeChannel.chan_id}} - Peer is required. - Peer not found in the list. + Receive from Peer is required. + Receive from Peer not found in the list.
- +
@@ -66,7 +66,7 @@
- +
@@ -95,13 +95,13 @@

{{paymentStatus && paymentStatus.payment_hash ? 'Rebalance Successful.' : 'Rebalance Failed.'}}

- +
- +
@@ -121,7 +121,7 @@ {{paymentStatus.payment_hash}} - +

Total Fees ({{paymentStatus.payment_route.total_fees_msat ? 'mSats' : 'Sats'}})

diff --git a/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.spec.ts b/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.spec.ts index e8c3f0a6..951a964a 100644 --- a/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.spec.ts +++ b/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../../shared/services/logger.service'; import { ChannelRebalanceComponent } from './channel-rebalance.component'; @@ -21,12 +24,7 @@ describe('ChannelRebalanceComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.ts b/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.ts index 82b70a81..9f9613a2 100644 --- a/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.ts +++ b/src/app/lnd/peers-channels/channels/channel-rebalance-modal/channel-rebalance.component.ts @@ -11,11 +11,13 @@ import { faInfoCircle } from '@fortawesome/free-solid-svg-icons'; import { ChannelRebalanceAlert } from '../../../../shared/models/alertData'; import { LoggerService } from '../../../../shared/services/logger.service'; -import { Channel, QueryRoutes, ListInvoices } from '../../../../shared/models/lndModels'; -import { FEE_LIMIT_TYPES, PAGE_SIZE, UI_MESSAGES } from '../../../../shared/services/consts-enums-functions'; +import { Channel, QueryRoutes, ListInvoices, Invoice } from '../../../../shared/models/lndModels'; +import { FEE_LIMIT_TYPES, LNDActions, PAGE_SIZE, UI_MESSAGES } from '../../../../shared/services/consts-enums-functions'; -import * as LNDActions from '../../../store/lnd.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { saveNewInvoice, sendPayment } from '../../../store/lnd.actions'; +import { invoices } from '../../../store/lnd.selector'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-channel-rebalance', @@ -45,7 +47,7 @@ export class ChannelRebalanceComponent implements OnInit, OnDestroy { statusFormGroup: FormGroup; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ChannelRebalanceAlert, private logger: LoggerService, private store: Store, private actions: Actions, private formBuilder: FormBuilder, private decimalPipe: DecimalPipe) { } + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ChannelRebalanceAlert, private logger: LoggerService, private store: Store, private actions: Actions, private formBuilder: FormBuilder, private decimalPipe: DecimalPipe) { } ngOnInit() { let x = ''; @@ -75,16 +77,15 @@ export class ChannelRebalanceComponent implements OnInit, OnDestroy { hiddenFeeLimit: ['', [Validators.required]] }); this.statusFormGroup = this.formBuilder.group({}); - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.invoices = rtlStore.invoices; - this.logger.info(rtlStore); + this.store.select(invoices).pipe(takeUntil(this.unSubs[0])). + subscribe((invoicesSelector: { listInvoices: ListInvoices, apiCallStatus: ApiCallStatusPayload }) => { + this.invoices = invoicesSelector.listInvoices; + this.logger.info(invoicesSelector); }); this.actions.pipe( takeUntil(this.unSubs[1]), filter((action) => action.type === LNDActions.SET_QUERY_ROUTES_LND || action.type === LNDActions.SEND_PAYMENT_STATUS_LND || action.type === LNDActions.NEWLY_SAVED_INVOICE_LND)). - subscribe((action: (LNDActions.SetQueryRoutes | LNDActions.SendPaymentStatus | LNDActions.NewlySavedInvoice)) => { + subscribe((action: any) => { if (action.type === LNDActions.SET_QUERY_ROUTES_LND) { this.queryRoute = action.payload; } @@ -116,11 +117,15 @@ export class ChannelRebalanceComponent implements OnInit, OnDestroy { }); } - onSelectFee(): boolean|void { + onSelectFee(): boolean | void { if (this.inputFormGroup.controls.selRebalancePeer.value && typeof this.inputFormGroup.controls.selRebalancePeer.value === 'string') { this.onSelectedPeerChanged(); } - if (!this.inputFormGroup.controls.selRebalancePeer.value || typeof this.inputFormGroup.controls.selRebalancePeer.value === 'string' || !this.inputFormGroup.controls.rebalanceAmount.value) { + if (!this.inputFormGroup.controls.selRebalancePeer.value || typeof this.inputFormGroup.controls.selRebalancePeer.value === 'string') { + this.inputFormGroup.controls.selRebalancePeer.setErrors({ required: true }); + return true; + } + if (!this.inputFormGroup.controls.rebalanceAmount.value) { return true; } if (this.stepper.selectedIndex === 0) { @@ -130,10 +135,6 @@ export class ChannelRebalanceComponent implements OnInit, OnDestroy { this.queryRoute = null; this.feeFormGroup.reset(); this.feeFormGroup.controls.selFeeLimitType.setValue(this.feeLimitTypes[0]); - this.feeFormGroup.controls.feeLimit.setValue(''); - this.feeFormGroup.controls.feeLimit.setErrors(null); - this.feeFormGroup.controls.hiddenFeeLimit.setValue(''); - this.feeFormGroup.controls.hiddenFeeLimit.setErrors(null); } stepSelectionChanged(event: any) { @@ -181,7 +182,7 @@ export class ChannelRebalanceComponent implements OnInit, OnDestroy { } } - onRebalance(): boolean|void { + onRebalance(): boolean | void { if (!this.inputFormGroup.controls.rebalanceAmount.value || this.inputFormGroup.controls.rebalanceAmount.value <= 0 || this.inputFormGroup.controls.rebalanceAmount.value > +this.selChannel.local_balance || !this.feeFormGroup.controls.feeLimit.value || this.feeFormGroup.controls.feeLimit.value < 0 || !this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey) { return true; } @@ -198,8 +199,10 @@ export class ChannelRebalanceComponent implements OnInit, OnDestroy { this.flgReusingInvoice = true; this.sendPayment(unsettledInvoice.payment_request); } else { - this.store.dispatch(new LNDActions.SaveNewInvoice({ - uiMessage: UI_MESSAGES.NO_SPINNER, memo: 'Local-Rebalance-' + this.inputFormGroup.controls.rebalanceAmount.value + '-Sats', invoiceValue: this.inputFormGroup.controls.rebalanceAmount.value, private: false, expiry: 3600, pageSize: PAGE_SIZE, openModal: false + this.store.dispatch(saveNewInvoice({ + payload: { + uiMessage: UI_MESSAGES.NO_SPINNER, memo: 'Local-Rebalance-' + this.inputFormGroup.controls.rebalanceAmount.value + '-Sats', invoiceValue: this.inputFormGroup.controls.rebalanceAmount.value, private: false, expiry: 3600, pageSize: PAGE_SIZE, openModal: false + } })); } } @@ -211,7 +214,7 @@ export class ChannelRebalanceComponent implements OnInit, OnDestroy { sendPayment(payReq: string) { this.flgInvoiceGenerated = true; this.paymentRequest = payReq; - this.store.dispatch(new LNDActions.SendPayment({ uiMessage: UI_MESSAGES.NO_SPINNER, paymentReq: payReq, outgoingChannel: this.selChannel, feeLimitType: this.feeFormGroup.controls.selFeeLimitType.value, feeLimit: this.feeFormGroup.controls.feeLimit.value, allowSelfPayment: true, lastHopPubkey: this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey, fromDialog: true })); + this.store.dispatch(sendPayment({ payload: { uiMessage: UI_MESSAGES.NO_SPINNER, paymentReq: payReq, outgoingChannel: this.selChannel, feeLimitType: this.feeFormGroup.controls.selFeeLimitType.value.id, feeLimit: this.feeFormGroup.controls.feeLimit.value, allowSelfPayment: true, lastHopPubkey: this.inputFormGroup.controls.selRebalancePeer.value.remote_pubkey, fromDialog: true } })); } filterActiveChannels() { diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.html b/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.html index 1a8a05b1..3b2da209 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.html +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.html @@ -2,11 +2,11 @@
- +
- +
Transaction ID - + - warning + warning {{utxo.outpoint.txid_str}} @@ -64,9 +64,9 @@ -

No UTXO available.

-

Getting UTXOs...

-

{{errorMessage}}

+

No UTXO available.

+

Getting UTXOs...

+

{{errorMessage}}

@@ -81,9 +81,9 @@ diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.scss b/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.scss index a8267e46..6510d9e9 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.scss +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.scss @@ -11,6 +11,8 @@ .htlc-row-span { min-height: 4.2rem; + place-content: center flex-start; + align-items: center; } .mat-column-actions { diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.spec.ts b/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.spec.ts index 209a6856..db201e11 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.spec.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('ChannelActiveHTLCsTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.ts b/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.ts index b7ce284d..f24ed109 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-active-htlcs-table/channel-active-htlcs-table.component.ts @@ -7,14 +7,15 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { ChannelInformationComponent } from '../../channel-information-modal/channel-information.component'; -import { Channel, ChannelHTLC } from '../../../../../shared/models/lndModels'; +import { Channel, ChannelHTLC, ChannelsSummary, LightningBalance } from '../../../../../shared/models/lndModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { CommonService } from '../../../../../shared/services/common.service'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { openAlert } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { channels } from '../../../../store/lnd.selector'; @Component({ selector: 'rtl-channel-active-htlcs-table', @@ -26,8 +27,8 @@ import * as fromRTLReducer from '../../../../../store/rtl.reducers'; }) export class ChannelActiveHTLCsTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public channels: any; public channelsJSONArr: Channel[] = []; public displayedColumns: any[] = []; @@ -38,11 +39,12 @@ export class ChannelActiveHTLCsTableComponent implements OnInit, AfterViewInit, public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -60,17 +62,16 @@ export class ChannelActiveHTLCsTableComponent implements OnInit, AfterViewInit, } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(channels).pipe(takeUntil(this.unSubs[0])). + subscribe((channelsSelector: { channels: Channel[], channelsSummary: ChannelsSummary, lightningBalance: LightningBalance, apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchAllChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchAllChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchAllChannels.message) : this.apisCallStatus.FetchAllChannels.message; + this.apiCallStatus = channelsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.channelsJSONArr = (rtlStore.allChannels && rtlStore.allChannels.length > 0) ? rtlStore.allChannels.filter((channel) => channel.pending_htlcs && channel.pending_htlcs.length > 0) : []; + this.channelsJSONArr = channelsSelector.channels.filter((channel) => channel.pending_htlcs && channel.pending_htlcs.length > 0) || []; this.loadHTLCsTable(this.channelsJSONArr); - this.logger.info(rtlStore); + this.logger.info(channelsSelector); }); } @@ -82,27 +83,35 @@ export class ChannelActiveHTLCsTableComponent implements OnInit, AfterViewInit, const reorderedHTLC = [ [{ key: 'remote_alias', value: selChannel.remote_alias, title: 'Alias', width: 100, type: DataTypeEnum.STRING }], [{ key: 'amount', value: selHtlc.amount, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'incoming', value: (selHtlc.incoming ? 'Yes' : 'No'), title: 'Incoming', width: 50, type: DataTypeEnum.STRING }], + { key: 'incoming', value: (selHtlc.incoming ? 'Yes' : 'No'), title: 'Incoming', width: 50, type: DataTypeEnum.STRING }], [{ key: 'expiration_height', value: selHtlc.expiration_height, title: 'Expiration Height', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'hash_lock', value: selHtlc.hash_lock, title: 'Hash Lock', width: 50, type: DataTypeEnum.STRING }] + { key: 'hash_lock', value: selHtlc.hash_lock, title: 'Hash Lock', width: 50, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'HTLC Information', - message: reorderedHTLC - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'HTLC Information', + message: reorderedHTLC + } + } + })); } onChannelClick(selChannel: Channel, event: any) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - channel: selChannel, - showCopy: true, - component: ChannelInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: selChannel, + showCopy: true, + component: ChannelInformationComponent + } + } + })); } - applyFilter(selFilter: any) { - this.channels.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.channels.filter = this.selFilter.trim().toLowerCase(); } loadHTLCsTable(channels: Channel[]) { @@ -136,6 +145,7 @@ export class ChannelActiveHTLCsTableComponent implements OnInit, AfterViewInit, channel.pending_htlcs.map((htlc) => JSON.stringify(htlc) + (htlc.incoming ? 'yes' : 'no')); return newChannel.includes(fltr); }; + this.applyFilter(); } onDownloadCSV() { diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.html b/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.html index 4c7b627d..3b4874c2 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.html +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.html @@ -2,11 +2,11 @@
- +
- +
-

No active htlc available.

-

Getting active htlcs...

-

{{errorMessage}}

+

No active htlc available.

+

Getting active htlcs...

+

{{errorMessage}}

@@ -48,9 +48,9 @@ diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.spec.ts b/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.spec.ts index f7237c06..16b38629 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.spec.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('ChannelClosedTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.ts b/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.ts index f1cfb89c..d416a87e 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-closed-table/channel-closed-table.component.ts @@ -9,12 +9,13 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { ClosedChannel } from '../../../../../shared/models/lndModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, CHANNEL_CLOSURE_TYPE, APICallStatusEnum } from '../../../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { CommonService } from '../../../../../shared/services/common.service'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { openAlert } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { closedChannels } from '../../../../store/lnd.selector'; @Component({ selector: 'rtl-channel-closed-table', @@ -26,12 +27,12 @@ import * as fromRTLReducer from '../../../../../store/rtl.reducers'; }) export class ChannelClosedTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public channelClosureType = CHANNEL_CLOSURE_TYPE; public faHistory = faHistory; public displayedColumns: any[] = []; - public closedChannelsData: ClosedChannel[] =[]; + public closedChannelsData: ClosedChannel[] = []; public closedChannels: any; public flgSticky = false; public pageSize = PAGE_SIZE; @@ -39,11 +40,12 @@ export class ChannelClosedTableComponent implements OnInit, AfterViewInit, OnDes public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unsub: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -58,19 +60,18 @@ export class ChannelClosedTableComponent implements OnInit, AfterViewInit, OnDes } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unsub[0])). - subscribe((rtlStore) => { + this.store.select(closedChannels).pipe(takeUntil(this.unsub[0])). + subscribe((closedChannelsSelector: { closedChannels: ClosedChannel[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchClosedChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchClosedChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchClosedChannels.message) : this.apisCallStatus.FetchClosedChannels.message; + this.apiCallStatus = closedChannelsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.closedChannelsData = rtlStore.closedChannels; + this.closedChannelsData = closedChannelsSelector.closedChannels; if (this.closedChannelsData.length > 0) { this.loadClosedChannelsTable(this.closedChannelsData); } - this.logger.info(rtlStore); + this.logger.info(closedChannelsSelector); }); } @@ -80,28 +81,32 @@ export class ChannelClosedTableComponent implements OnInit, AfterViewInit, OnDes } } - applyFilter(selFilter: any) { - this.closedChannels.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.closedChannels.filter = this.selFilter.trim().toLowerCase(); } onClosedChannelClick(selChannel: ClosedChannel, event: any) { const reorderedChannel = [ [{ key: 'close_type', value: this.channelClosureType[selChannel.close_type].name, title: 'Close Type', width: 30, type: DataTypeEnum.STRING }, - { key: 'settled_balance', value: selChannel.settled_balance, title: 'Settled Balance', width: 30, type: DataTypeEnum.NUMBER }, - { key: 'time_locked_balance', value: selChannel.time_locked_balance, title: 'Time Locked Balance', width: 40, type: DataTypeEnum.NUMBER }], + { key: 'settled_balance', value: selChannel.settled_balance, title: 'Settled Balance', width: 30, type: DataTypeEnum.NUMBER }, + { key: 'time_locked_balance', value: selChannel.time_locked_balance, title: 'Time Locked Balance', width: 40, type: DataTypeEnum.NUMBER }], [{ key: 'chan_id', value: selChannel.chan_id, title: 'Channel ID', width: 30 }, - { key: 'capacity', value: selChannel.capacity, title: 'Capacity', width: 30, type: DataTypeEnum.NUMBER }, - { key: 'close_height', value: selChannel.close_height, title: 'Close Height', width: 40, type: DataTypeEnum.NUMBER }], + { key: 'capacity', value: selChannel.capacity, title: 'Capacity', width: 30, type: DataTypeEnum.NUMBER }, + { key: 'close_height', value: selChannel.close_height, title: 'Close Height', width: 40, type: DataTypeEnum.NUMBER }], [{ key: 'remote_alias', value: selChannel.remote_alias, title: 'Peer Alias', width: 30 }, - { key: 'remote_pubkey', value: selChannel.remote_pubkey, title: 'Peer Public Key', width: 70 }], + { key: 'remote_pubkey', value: selChannel.remote_pubkey, title: 'Peer Public Key', width: 70 }], [{ key: 'channel_point', value: selChannel.channel_point, title: 'Channel Point', width: 100 }], [{ key: 'closing_tx_hash', value: selChannel.closing_tx_hash, title: 'Closing Transaction Hash', width: 100, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Closed Channel Information', - message: reorderedChannel - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Closed Channel Information', + message: reorderedChannel + } + } + })); } loadClosedChannelsTable(closedChannels) { @@ -110,6 +115,7 @@ export class ChannelClosedTableComponent implements OnInit, AfterViewInit, OnDes this.closedChannels.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.closedChannels.filterPredicate = (channel: ClosedChannel, fltr: string) => JSON.stringify(channel).toLowerCase().includes(fltr); this.closedChannels.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.closedChannels); } diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html b/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html index 1cc09640..deff3cc9 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.html @@ -6,7 +6,7 @@
- +
Close Type -

No closed channel available.

-

Getting closed channels...

-

{{errorMessage}}

+

No closed channel available.

+

Getting closed channels...

+

{{errorMessage}}

@@ -75,10 +75,10 @@ diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts b/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts index c3306398..3c9d42fb 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { LoopService } from '../../../../../shared/services/loop.service'; @@ -24,12 +27,7 @@ describe('ChannelOpenTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts b/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts index c15f0e0f..8ae39b87 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-open-table/channel-open-table.component.ts @@ -10,9 +10,9 @@ import { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; import { ChannelInformationComponent } from '../../channel-information-modal/channel-information.component'; import { SelNodeChild } from '../../../../../shared/models/RTLconfig'; -import { Channel, GetInfo } from '../../../../../shared/models/lndModels'; +import { BlockchainBalance, Channel, ChannelsSummary, GetInfo, LightningBalance, Peer } from '../../../../../shared/models/lndModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, UserPersonaEnum, LoopTypeEnum, APICallStatusEnum, UI_MESSAGES } from '../../../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { LoopService } from '../../../../../shared/services/loop.service'; import { CommonService } from '../../../../../shared/services/common.service'; @@ -22,9 +22,10 @@ import { LoopModalComponent } from '../../../../../shared/components/services/lo import { LNDEffects } from '../../../../store/lnd.effects'; import { RTLEffects } from '../../../../../store/rtl.effects'; -import * as LNDActions from '../../../../store/lnd.actions'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { RTLState } from '../../../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../../../store/rtl.actions'; +import { channelLookup, fetchChannels, updateChannel } from '../../../../store/lnd.actions'; +import { blockchainBalance, channels, lndNodeInformation, lndNodeSettings, peers } from '../../../../store/lnd.selector'; @Component({ selector: 'rtl-channel-open-table', @@ -36,8 +37,8 @@ import * as fromRTLReducer from '../../../../../store/rtl.reducers'; }) export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public timeUnit = 'mins:secs'; public userPersonaEnum = UserPersonaEnum; public selNode: SelNodeChild = {}; @@ -59,11 +60,11 @@ export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestr public faEyeSlash = faEyeSlash private targetConf = 6; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private lndEffects: LNDEffects, private commonService: CommonService, private loopService: LoopService, private decimalPipe: DecimalPipe) { + constructor(private logger: LoggerService, private store: Store, private lndEffects: LNDEffects, private commonService: CommonService, private rtlEffects: RTLEffects, private decimalPipe: DecimalPipe, private loopService: LoopService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -81,26 +82,37 @@ export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestr } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchAllChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchAllChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchAllChannels.message) : this.apisCallStatus.FetchAllChannels.message; - } - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; + this.store.select(lndNodeSettings).pipe(takeUntil(this.unSubs[0])). + subscribe((nodeSettings) => { + this.selNode = nodeSettings; + }); + this.store.select(lndNodeInformation).pipe(takeUntil(this.unSubs[1])). + subscribe((nodeInfo: GetInfo) => { + this.information = nodeInfo; if (this.information && this.information.version) { this.versionsArr = this.information.version.split('.'); } - this.numPeers = (rtlStore.peers && rtlStore.peers.length) ? rtlStore.peers.length : 0; - this.totalBalance = +rtlStore.blockchainBalance.total_balance; - this.channelsData = this.calculateUptime(rtlStore.allChannels); + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[2])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.numPeers = (peersSelector.peers && peersSelector.peers.length) ? peersSelector.peers.length : 0; + }); + this.store.select(blockchainBalance).pipe(takeUntil(this.unSubs[3])). + subscribe((bcBalanceSelector: { blockchainBalance: BlockchainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.totalBalance = +bcBalanceSelector.blockchainBalance.total_balance; + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[4])). + subscribe((channelsSelector: { channels: Channel[], channelsSummary: ChannelsSummary, lightningBalance: LightningBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.errorMessage = ''; + this.apiCallStatus = channelsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; + } + this.channelsData = this.calculateUptime(channelsSelector.channels); if (this.channelsData.length > 0) { this.loadChannelsTable(this.channelsData); } - this.logger.info(rtlStore); + this.logger.info(channelsSelector); }); } @@ -111,25 +123,31 @@ export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestr } onViewRemotePolicy(selChannel: Channel) { - this.store.dispatch(new LNDActions.ChannelLookup({ uiMessage: UI_MESSAGES.GET_REMOTE_POLICY, channelID: selChannel.chan_id.toString() + '/' + this.information.identity_pubkey })); - this.lndEffects.setLookup. - pipe(take(1)). - subscribe((resLookup): boolean|void => { - if (!resLookup.fee_base_msat && !resLookup.fee_rate_milli_msat && !resLookup.time_lock_delta) { - return false; - } - const reorderedChannelPolicy = [ - [{ key: 'fee_base_msat', value: resLookup.fee_base_msat, title: 'Base Fees (mSats)', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'fee_rate_milli_msat', value: resLookup.fee_rate_milli_msat, title: 'Fee Rate (milli mSats)', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'fee_rate_milli_msat', value: resLookup.fee_rate_milli_msat / 10000, title: 'Fee Rate (%)', width: 25, type: DataTypeEnum.NUMBER, digitsInfo: '1.0-8' }, - { key: 'time_lock_delta', value: resLookup.time_lock_delta, title: 'Time Lock Delta', width: 25, type: DataTypeEnum.NUMBER }] - ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Remote Channel Policy', - message: reorderedChannelPolicy - } })); - }); + this.store.dispatch(channelLookup({ payload: { uiMessage: UI_MESSAGES.GET_REMOTE_POLICY, channelID: selChannel.chan_id.toString() + '/' + this.information.identity_pubkey } })); + this.lndEffects.setLookup.pipe(take(1)).subscribe((resLookup): boolean | void => { + if (!resLookup.fee_base_msat && !resLookup.fee_rate_milli_msat && !resLookup.time_lock_delta) { + return false; + } + const reorderedChannelPolicy = [ + [{ key: 'fee_base_msat', value: resLookup.fee_base_msat, title: 'Base Fees (mSats)', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'fee_rate_milli_msat', value: resLookup.fee_rate_milli_msat, title: 'Fee Rate (milli mSats)', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'fee_rate_milli_msat', value: resLookup.fee_rate_milli_msat / 10000, title: 'Fee Rate (%)', width: 25, type: DataTypeEnum.NUMBER, digitsInfo: '1.0-8' }, + { key: 'time_lock_delta', value: resLookup.time_lock_delta, title: 'Time Lock Delta', width: 25, type: DataTypeEnum.NUMBER }] + ]; + const titleMsg = 'Remote policy for Channel: ' + ((!selChannel.remote_alias && !selChannel.chan_id) ? selChannel.channel_point : (selChannel.remote_alias && selChannel.chan_id) ? selChannel.remote_alias + ' (' + selChannel.chan_id + ')' : selChannel.remote_alias ? selChannel.remote_alias : selChannel.chan_id); + setTimeout(() => { + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Remote Channel Policy', + titleMessage: titleMsg, + message: reorderedChannelPolicy + } + } + })); + }, 0); + }); } onCircularRebalance(selChannel: any) { @@ -137,78 +155,90 @@ export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestr channels: this.channelsData, selChannel: selChannel }; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - message: channelsToRebalanceMessage, - component: ChannelRebalanceComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + message: channelsToRebalanceMessage, + component: ChannelRebalanceComponent + } + } + })); } onChannelUpdate(channelToUpdate: any) { if (channelToUpdate === 'all') { const confirmationMsg = []; - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Update Fee Policy', - noBtnText: 'Cancel', - yesBtnText: 'Update All Channels', - message: confirmationMsg, - titleMessage: 'Update fee policy for all channels', - flgShowInput: true, - getInputs: [ - { placeholder: 'Base Fee (mSat)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: 1000, width: 32 }, - { placeholder: 'Fee Rate (mili mSat)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: 1, min: 1, width: 32, hintFunction: this.percentHintFunction }, - { placeholder: 'Time Lock Delta', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: 40, width: 32 } - ] - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Update Fee Policy', + noBtnText: 'Cancel', + yesBtnText: 'Update All Channels', + message: confirmationMsg, + titleMessage: 'Update fee policy for all channels', + flgShowInput: true, + getInputs: [ + { placeholder: 'Base Fee (mSat)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: 1000, width: 32 }, + { placeholder: 'Fee Rate (mili mSat)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: 1, min: 1, width: 32, hintFunction: this.percentHintFunction }, + { placeholder: 'Time Lock Delta', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: 40, width: 32 } + ] + } + } + })); this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[1])). + pipe(takeUntil(this.unSubs[5])). subscribe((confirmRes) => { if (confirmRes) { const base_fee = confirmRes[0].inputValue; const fee_rate = confirmRes[1].inputValue; const time_lock_delta = confirmRes[2].inputValue; - this.store.dispatch(new LNDActions.UpdateChannels({ baseFeeMsat: base_fee, feeRate: fee_rate, timeLockDelta: time_lock_delta, chanPoint: 'all' })); + this.store.dispatch(updateChannel({ payload: { baseFeeMsat: base_fee, feeRate: fee_rate, timeLockDelta: time_lock_delta, chanPoint: 'all' } })); } }); } else { this.myChanPolicy = { fee_base_msat: 0, fee_rate_milli_msat: 0, time_lock_delta: 0 }; - this.store.dispatch(new LNDActions.ChannelLookup({ uiMessage: UI_MESSAGES.GET_CHAN_POLICY, channelID: channelToUpdate.chan_id.toString() })); - this.lndEffects.setLookup. - pipe(take(1)). - subscribe((resLookup) => { - if (resLookup.node1_pub === this.information.identity_pubkey) { - this.myChanPolicy = resLookup.node1_policy; - } else if (resLookup.node2_pub === this.information.identity_pubkey) { - this.myChanPolicy = resLookup.node2_policy; - } else { - this.myChanPolicy = { fee_base_msat: 0, fee_rate_milli_msat: 0, time_lock_delta: 0 }; - } - this.logger.info(this.myChanPolicy); - const titleMsg = 'Update fee policy for channel point: ' + channelToUpdate.channel_point; - const confirmationMsg = []; - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Update Fee Policy', - titleMessage: titleMsg, - noBtnText: 'Cancel', - yesBtnText: 'Update Channel', - message: confirmationMsg, - flgShowInput: true, - getInputs: [ - { placeholder: 'Base Fee (mSat)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: (this.myChanPolicy.fee_base_msat === '') ? 0 : this.myChanPolicy.fee_base_msat, width: 32 }, - { placeholder: 'Fee Rate (mili mSat)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: this.myChanPolicy.fee_rate_milli_msat, min: 1, width: 32, hintFunction: this.percentHintFunction }, - { placeholder: 'Time Lock Delta', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: this.myChanPolicy.time_lock_delta, width: 32 } - ] - } })); - }); + this.store.dispatch(channelLookup({ payload: { uiMessage: UI_MESSAGES.GET_CHAN_POLICY, channelID: channelToUpdate.chan_id.toString() } })); + this.lndEffects.setLookup.pipe(take(1)).subscribe((resLookup) => { + if (resLookup.node1_pub === this.information.identity_pubkey) { + this.myChanPolicy = resLookup.node1_policy; + } else if (resLookup.node2_pub === this.information.identity_pubkey) { + this.myChanPolicy = resLookup.node2_policy; + } else { + this.myChanPolicy = { fee_base_msat: 0, fee_rate_milli_msat: 0, time_lock_delta: 0 }; + } + this.logger.info(this.myChanPolicy); + const titleMsg = 'Update fee policy for Channel: ' + ((!channelToUpdate.remote_alias && !channelToUpdate.chan_id) ? channelToUpdate.channel_point : (channelToUpdate.remote_alias && channelToUpdate.chan_id) ? channelToUpdate.remote_alias + ' (' + channelToUpdate.chan_id + ')' : channelToUpdate.remote_alias ? channelToUpdate.remote_alias : channelToUpdate.chan_id); + const confirmationMsg = []; + setTimeout(() => { + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Update Fee Policy', + titleMessage: titleMsg, + noBtnText: 'Cancel', + yesBtnText: 'Update Channel', + message: confirmationMsg, + flgShowInput: true, + getInputs: [ + { placeholder: 'Base Fee (mSat)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: (this.myChanPolicy.fee_base_msat === '') ? 0 : this.myChanPolicy.fee_base_msat, width: 32 }, + { placeholder: 'Fee Rate (mili mSat)', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: this.myChanPolicy.fee_rate_milli_msat, min: 1, width: 32, hintFunction: this.percentHintFunction }, + { placeholder: 'Time Lock Delta', inputType: DataTypeEnum.NUMBER.toLowerCase(), inputValue: this.myChanPolicy.time_lock_delta, width: 32 } + ] + } + } + })); + }, 0); + }); this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[2])). + pipe(takeUntil(this.unSubs[6])). subscribe((confirmRes) => { if (confirmRes) { const base_fee = confirmRes[0].inputValue; const fee_rate = confirmRes[1].inputValue; const time_lock_delta = confirmRes[2].inputValue; - this.store.dispatch(new LNDActions.UpdateChannels({ baseFeeMsat: base_fee, feeRate: fee_rate, timeLockDelta: time_lock_delta, chanPoint: channelToUpdate.channel_point })); + this.store.dispatch(updateChannel({ payload: { baseFeeMsat: base_fee, feeRate: fee_rate, timeLockDelta: time_lock_delta, chanPoint: channelToUpdate.channel_point } })); } }); } @@ -217,12 +247,16 @@ export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestr onChannelClose(channelToClose: Channel) { if (channelToClose.active) { - this.store.dispatch(new LNDActions.FetchAllChannels()); // To get latest pending htlc status + this.store.dispatch(fetchChannels()); // To get latest pending htlc status } - this.store.dispatch(new RTLActions.OpenAlert({ width: '70%', data: { - channel: channelToClose, - component: CloseChannelComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: channelToClose, + component: CloseChannelComponent + } + } + })); } applyFilter() { @@ -230,11 +264,15 @@ export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestr } onChannelClick(selChannel: Channel, event: any) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - channel: selChannel, - showCopy: true, - component: ChannelInformationComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + channel: selChannel, + showCopy: true, + component: ChannelInformationComponent + } + } + })); } loadChannelsTable(mychannels: Channel[]) { @@ -242,11 +280,11 @@ export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestr this.channels = new MatTableDataSource([...mychannels]); this.channels.filterPredicate = (channel: Channel, fltr: string) => { const newChannel = ((channel.active) ? 'active' : 'inactive') + (channel.chan_id ? channel.chan_id.toLowerCase() : '') + - (channel.remote_pubkey ? channel.remote_pubkey.toLowerCase() : '') + (channel.remote_alias ? channel.remote_alias.toLowerCase() : '') + - (channel.capacity ? channel.capacity : '') + (channel.local_balance ? channel.local_balance : '') + - (channel.remote_balance ? channel.remote_balance : '') + (channel.total_satoshis_sent ? channel.total_satoshis_sent : '') + - (channel.total_satoshis_received ? channel.total_satoshis_received : '') + (channel.commit_fee ? channel.commit_fee : '') + - (channel.private ? 'private' : 'public'); + (channel.remote_pubkey ? channel.remote_pubkey.toLowerCase() : '') + (channel.remote_alias ? channel.remote_alias.toLowerCase() : '') + + (channel.capacity ? channel.capacity : '') + (channel.local_balance ? channel.local_balance : '') + + (channel.remote_balance ? channel.remote_balance : '') + (channel.total_satoshis_sent ? channel.total_satoshis_sent : '') + + (channel.total_satoshis_received ? channel.total_satoshis_received : '') + (channel.commit_fee ? channel.commit_fee : '') + + (channel.private ? 'private' : 'public'); return newChannel.includes(fltr); }; this.channels.sort = this.sort; @@ -307,15 +345,19 @@ export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestr onLoopOut(selChannel: Channel) { this.loopService.getLoopOutTermsAndQuotes(this.targetConf). - pipe(takeUntil(this.unSubs[0])). + pipe(takeUntil(this.unSubs[7])). subscribe((response) => { - this.store.dispatch(new RTLActions.OpenAlert({ minHeight: '56rem', data: { - channel: selChannel, - minQuote: response[0], - maxQuote: response[1], - direction: LoopTypeEnum.LOOP_OUT, - component: LoopModalComponent - } })); + this.store.dispatch(openAlert({ + payload: { + minHeight: '56rem', data: { + channel: selChannel, + minQuote: response[0], + maxQuote: response[1], + direction: LoopTypeEnum.LOOP_OUT, + component: LoopModalComponent + } + } + })); }); } diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html b/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html index fac65c33..cf5b4f83 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.html @@ -1,13 +1,13 @@
Total Limbo Balance: {{pendingChannels.total_limbo_balance | number}} Sats - + Pending Open ({{pendingOpenChannelsLength}})
- +
Peer -

No peers connected. Add a peer in order to open a channel.

-

No channel available.

-

Getting channels...

-

{{errorMessage}}

+

No peers connected. Add a peer in order to open a channel.

+

No channel available.

+

Getting channels...

+

{{errorMessage}}

Peer @@ -39,9 +39,9 @@ @@ -50,7 +50,7 @@
-

No pending channel.

-

Getting pending channels...

-

{{errorMessage}}

+

No pending channel.

+

Getting pending channels...

+

{{errorMessage}}

- + Pending Force Closing ({{pendingForceClosingChannelsLength}}) @@ -81,9 +81,9 @@ -

No pending channel.

-

Getting pending channels...

-

{{errorMessage}}

+

No pending channel.

+

Getting pending channels...

+

{{errorMessage}}

@@ -92,7 +92,7 @@
- + Pending Closing ({{pendingClosingChannelsLength}}) @@ -130,9 +130,9 @@ -

No pending channel.

-

Getting pending channels...

-

{{errorMessage}}

+

No pending channel.

+

Getting pending channels...

+

{{errorMessage}}

@@ -141,7 +141,7 @@
- + Waiting Close ({{pendingWaitClosingChannelsLength}}) @@ -185,9 +185,9 @@ -

No pending channel.

-

Getting pending channels...

-

{{errorMessage}}

+

No pending channel.

+

Getting pending channels...

+

{{errorMessage}}

diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts b/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts index 18de7f01..a9d2b10a 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('ChannelPendingTableComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts b/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts index 67519dc5..08df2b56 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.component.ts @@ -7,14 +7,15 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { Channel, GetInfo, PendingChannels, PendingOpenChannel } from '../../../../../shared/models/lndModels'; import { AlertTypeEnum, APICallStatusEnum, DataTypeEnum, ScreenSizeEnum } from '../../../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../../../shared/models/apiCallsPayload'; import { SelNodeChild } from '../../../../../shared/models/RTLconfig'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { CommonService } from '../../../../../shared/services/common.service'; import { BumpFeeComponent } from '../../bump-fee-modal/bump-fee.component'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { openAlert } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { lndNodeInformation, lndNodeSettings, pendingChannels } from '../../../../store/lnd.selector'; @Component({ selector: 'rtl-channel-pending-table', @@ -23,7 +24,7 @@ import * as fromRTLReducer from '../../../../../store/rtl.reducers'; }) export class ChannelPendingTableComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; public selNode: SelNodeChild = {}; public selectedFilter = ''; public information: GetInfo = {}; @@ -43,11 +44,11 @@ export class ChannelPendingTableComponent implements OnInit, AfterViewInit, OnDe public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; - private unSubs: Array> = [new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.displayedOpenColumns = ['remote_alias', 'actions']; @@ -68,17 +69,16 @@ export class ChannelPendingTableComponent implements OnInit, AfterViewInit, OnDe } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(lndNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { this.selNode = nodeSettings; }); + this.store.select(lndNodeInformation).pipe(takeUntil(this.unSubs[1])).subscribe((nodeInfo: GetInfo) => { this.information = nodeInfo; }); + this.store.select(pendingChannels).pipe(takeUntil(this.unSubs[0])). + subscribe((pendingChannelsSelector: { pendingChannels: PendingChannels, apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchPendingChannels.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchPendingChannels.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPendingChannels.message) : this.apisCallStatus.FetchPendingChannels.message; + this.apiCallStatus = pendingChannelsSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - this.pendingChannels = rtlStore.pendingChannels; + this.pendingChannels = pendingChannelsSelector.pendingChannels; if (this.pendingChannels.pending_open_channels && this.pendingChannels.pending_open_channels.length && this.pendingChannels.pending_open_channels.length > 0) { this.loadOpenChannelsTable(this.pendingChannels.pending_open_channels); } @@ -91,7 +91,7 @@ export class ChannelPendingTableComponent implements OnInit, AfterViewInit, OnDe if (this.pendingChannels.waiting_close_channels && this.pendingChannels.waiting_close_channels.length && this.pendingChannels.waiting_close_channels.length > 0) { this.loadWaitClosingChannelsTable(this.pendingChannels.waiting_close_channels); } - this.logger.info(rtlStore); + this.logger.info(pendingChannelsSelector); }); } @@ -118,27 +118,35 @@ export class ChannelPendingTableComponent implements OnInit, AfterViewInit, OnDe const reorderedChannel = [ [{ key: 'channel_point', value: preOrderedChannel.channel_point, title: 'Channel Point', width: 100, type: DataTypeEnum.STRING }], [{ key: 'remote_alias', value: preOrderedChannel.remote_alias, title: 'Peer Alias', width: 25, type: DataTypeEnum.STRING }, - { key: 'remote_node_pub', value: preOrderedChannel.remote_node_pub, title: 'Peer Node Pubkey', width: 75, type: DataTypeEnum.STRING }], + { key: 'remote_node_pub', value: preOrderedChannel.remote_node_pub, title: 'Peer Node Pubkey', width: 75, type: DataTypeEnum.STRING }], [{ key: 'capacity', value: preOrderedChannel.capacity, title: 'Capacity', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'confirmation_height', value: preOrderedChannel.confirmation_height, title: 'Confirmation Height', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'local_balance', value: preOrderedChannel.local_balance, title: 'Local Balance', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'remote_balance', value: preOrderedChannel.remote_balance, title: 'Remote Balance', width: 25, type: DataTypeEnum.NUMBER }], + { key: 'confirmation_height', value: preOrderedChannel.confirmation_height, title: 'Confirmation Height', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'local_balance', value: preOrderedChannel.local_balance, title: 'Local Balance', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'remote_balance', value: preOrderedChannel.remote_balance, title: 'Remote Balance', width: 25, type: DataTypeEnum.NUMBER }], [{ key: 'fee_per_kw', value: preOrderedChannel.fee_per_kw, title: 'Fee/KW', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'commit_weight', value: preOrderedChannel.commit_weight, title: 'Commit Weight', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'commit_fee', value: preOrderedChannel.commit_fee, title: 'Commit Fee', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'commit_weight', value: preOrderedChannel.commit_weight, title: 'Commit Weight', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'commit_fee', value: preOrderedChannel.commit_fee, title: 'Commit Fee', width: 50, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Opening Channel Information', - message: reorderedChannel - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Opening Channel Information', + message: reorderedChannel + } + } + })); } onBumpFee(selChannel: PendingOpenChannel) { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - pendingChannel: selChannel, - component: BumpFeeComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + pendingChannel: selChannel, + component: BumpFeeComponent + } + } + })); } onForceClosingClick(selChannel: any) { @@ -150,20 +158,24 @@ export class ChannelPendingTableComponent implements OnInit, AfterViewInit, OnDe [{ key: 'closing_txid', value: preOrderedChannel.closing_txid, title: 'Closing Transaction ID', width: 100, type: DataTypeEnum.STRING }], [{ key: 'channel_point', value: preOrderedChannel.channel_point, title: 'Channel Point', width: 100, type: DataTypeEnum.STRING }], [{ key: 'remote_alias', value: preOrderedChannel.remote_alias, title: 'Peer Alias', width: 25, type: DataTypeEnum.STRING }, - { key: 'remote_node_pub', value: preOrderedChannel.remote_node_pub, title: 'Peer Node Pubkey', width: 75, type: DataTypeEnum.STRING }], + { key: 'remote_node_pub', value: preOrderedChannel.remote_node_pub, title: 'Peer Node Pubkey', width: 75, type: DataTypeEnum.STRING }], [{ key: 'capacity', value: preOrderedChannel.capacity, title: 'Capacity', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'limbo_balance', value: preOrderedChannel.limbo_balance, title: 'Limbo Balance', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'local_balance', value: preOrderedChannel.local_balance, title: 'Local Balance', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'remote_balance', value: preOrderedChannel.remote_balance, title: 'Remote Balance', width: 25, type: DataTypeEnum.NUMBER }], + { key: 'limbo_balance', value: preOrderedChannel.limbo_balance, title: 'Limbo Balance', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'local_balance', value: preOrderedChannel.local_balance, title: 'Local Balance', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'remote_balance', value: preOrderedChannel.remote_balance, title: 'Remote Balance', width: 25, type: DataTypeEnum.NUMBER }], [{ key: 'maturity_height', value: preOrderedChannel.maturity_height, title: 'Maturity Height', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'blocks_til_maturity', value: preOrderedChannel.blocks_til_maturity, title: 'Blocks Till Maturity', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'recovered_balance', value: preOrderedChannel.recovered_balance, title: 'Recovered Balance', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'blocks_til_maturity', value: preOrderedChannel.blocks_til_maturity, title: 'Blocks Till Maturity', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'recovered_balance', value: preOrderedChannel.recovered_balance, title: 'Recovered Balance', width: 50, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Force Closing Channel Information', - message: reorderedChannel - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Force Closing Channel Information', + message: reorderedChannel + } + } + })); } onClosingClick(selChannel: any) { @@ -175,16 +187,20 @@ export class ChannelPendingTableComponent implements OnInit, AfterViewInit, OnDe [{ key: 'closing_txid', value: preOrderedChannel.closing_txid, title: 'Closing Transaction ID', width: 50, type: DataTypeEnum.STRING }], [{ key: 'channel_point', value: preOrderedChannel.channel_point, title: 'Channel Point', width: 100, type: DataTypeEnum.STRING }], [{ key: 'remote_alias', value: preOrderedChannel.remote_alias, title: 'Peer Alias', width: 25, type: DataTypeEnum.STRING }, - { key: 'remote_node_pub', value: preOrderedChannel.remote_node_pub, title: 'Peer Node Pubkey', width: 75, type: DataTypeEnum.STRING }], + { key: 'remote_node_pub', value: preOrderedChannel.remote_node_pub, title: 'Peer Node Pubkey', width: 75, type: DataTypeEnum.STRING }], [{ key: 'capacity', value: preOrderedChannel.capacity, title: 'Capacity', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'local_balance', value: preOrderedChannel.local_balance, title: 'Local Balance', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'remote_balance', value: preOrderedChannel.remote_balance, title: 'Remote Balance', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'local_balance', value: preOrderedChannel.local_balance, title: 'Local Balance', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'remote_balance', value: preOrderedChannel.remote_balance, title: 'Remote Balance', width: 50, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Closing Channel Information', - message: reorderedChannel - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Closing Channel Information', + message: reorderedChannel + } + } + })); } onWaitClosingClick(selChannel: any) { @@ -197,17 +213,21 @@ export class ChannelPendingTableComponent implements OnInit, AfterViewInit, OnDe [{ key: 'local_txid', value: preOrderedChannel.local_txid, title: 'Transaction ID', width: 100, type: DataTypeEnum.STRING }], [{ key: 'channel_point', value: preOrderedChannel.channel_point, title: 'Channel Point', width: 100, type: DataTypeEnum.STRING }], [{ key: 'remote_alias', value: preOrderedChannel.remote_alias, title: 'Peer Alias', width: 25, type: DataTypeEnum.STRING }, - { key: 'remote_node_pub', value: preOrderedChannel.remote_node_pub, title: 'Peer Node Pubkey', width: 75, type: DataTypeEnum.STRING }], + { key: 'remote_node_pub', value: preOrderedChannel.remote_node_pub, title: 'Peer Node Pubkey', width: 75, type: DataTypeEnum.STRING }], [{ key: 'capacity', value: preOrderedChannel.capacity, title: 'Capacity', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'limbo_balance', value: preOrderedChannel.limbo_balance, title: 'Limbo Balance', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'local_balance', value: preOrderedChannel.local_balance, title: 'Local Balance', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'remote_balance', value: preOrderedChannel.remote_balance, title: 'Remote Balance', width: 25, type: DataTypeEnum.NUMBER }] + { key: 'limbo_balance', value: preOrderedChannel.limbo_balance, title: 'Limbo Balance', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'local_balance', value: preOrderedChannel.local_balance, title: 'Local Balance', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'remote_balance', value: preOrderedChannel.remote_balance, title: 'Remote Balance', width: 25, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Wait Closing Channel Information', - message: reorderedChannel - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Wait Closing Channel Information', + message: reorderedChannel + } + } + })); } loadOpenChannelsTable(channels) { @@ -250,10 +270,6 @@ export class ChannelPendingTableComponent implements OnInit, AfterViewInit, OnDe this.logger.info(this.pendingWaitClosingChannels); } - applyFilter(selFilter: string) { - this.selectedFilter = selFilter.trim().toLowerCase(); - } - ngOnDestroy() { this.unSubs.forEach((completeSub) => { completeSub.next(null); diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channels-tables.component.spec.ts b/src/app/lnd/peers-channels/channels/channels-tables/channels-tables.component.spec.ts index 46cfbf08..35e37c96 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channels-tables.component.spec.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channels-tables.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../../shared/services/logger.service'; import { ChannelsTablesComponent } from './channels-tables.component'; @@ -21,12 +24,7 @@ describe('ChannelsTablesComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: LoggerService, useClass: mockLoggerService } diff --git a/src/app/lnd/peers-channels/channels/channels-tables/channels-tables.component.ts b/src/app/lnd/peers-channels/channels/channels-tables/channels-tables.component.ts index 101cd6ea..cbbc0334 100644 --- a/src/app/lnd/peers-channels/channels/channels-tables/channels-tables.component.ts +++ b/src/app/lnd/peers-channels/channels/channels-tables/channels-tables.component.ts @@ -5,11 +5,13 @@ import { takeUntil, filter } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { OpenChannelComponent } from '../open-channel-modal/open-channel.component'; -import { Peer, GetInfo } from '../../../../shared/models/lndModels'; +import { Peer, GetInfo, Channel, ChannelsSummary, LightningBalance, PendingChannelsSummary, PendingChannels, ClosedChannel, BlockchainBalance } from '../../../../shared/models/lndModels'; import { LoggerService } from '../../../../shared/services/logger.service'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert } from '../../../../store/rtl.actions'; +import { blockchainBalance, channels, closedChannels, lndNodeInformation, peers, pendingChannels } from '../../../store/lnd.selector'; +import { ApiCallStatusPayload } from '../../../../shared/models/apiCallsPayload'; @Component({ selector: 'rtl-channels-tables', @@ -27,32 +29,44 @@ export class ChannelsTablesComponent implements OnInit, OnDestroy { public totalBalance = 0; public links = [{ link: 'open', name: 'Open' }, { link: 'pending', name: 'Pending' }, { link: 'closed', name: 'Closed' }, { link: 'activehtlcs', name: 'Active HTLCs' }]; public activeLink = 0; - private unSubs: Array> = [new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private router: Router) {} + constructor(private logger: LoggerService, private store: Store, private router: Router) { } ngOnInit() { this.activeLink = this.links.findIndex((link) => link.link === this.router.url.substring(this.router.url.lastIndexOf('/') + 1)); this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { this.activeLink = this.links.findIndex((link) => link.link === value.urlAfterRedirects.substring(value.urlAfterRedirects.lastIndexOf('/') + 1)); }); - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.numOpenChannels = (rtlStore.allChannels && rtlStore.allChannels.length) ? rtlStore.allChannels.length : 0; - this.numPendingChannels = (rtlStore.numberOfPendingChannels.total_channels) ? rtlStore.numberOfPendingChannels.total_channels : 0; - this.numClosedChannels = (rtlStore.closedChannels && rtlStore.closedChannels.length) ? rtlStore.closedChannels.length : 0; - this.numActiveHTLCs = rtlStore.allChannels.reduce((totalHTLCs, channel) => totalHTLCs + (channel.pending_htlcs && channel.pending_htlcs.length > 0 ? channel.pending_htlcs.length : 0), 0); - this.information = rtlStore.information; - this.totalBalance = +rtlStore.blockchainBalance.total_balance; - this.peers = rtlStore.peers; + this.store.select(lndNodeInformation).pipe(takeUntil(this.unSubs[1])).subscribe((nodeInfo: GetInfo) => { this.information = nodeInfo; }); + this.store.select(channels).pipe(takeUntil(this.unSubs[2])). + subscribe((channelsSelector: { channels: Channel[], channelsSummary: ChannelsSummary, lightningBalance: LightningBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.numOpenChannels = (channelsSelector.channels && channelsSelector.channels.length) ? channelsSelector.channels.length : 0; + this.numActiveHTLCs = channelsSelector.channels.reduce((totalHTLCs, channel) => totalHTLCs + (channel.pending_htlcs && channel.pending_htlcs.length > 0 ? channel.pending_htlcs.length : 0), 0); + this.logger.info(channelsSelector); + }); + this.store.select(pendingChannels).pipe(takeUntil(this.unSubs[3])). + subscribe((pendingChannelsSelector: { pendingChannels: PendingChannels, pendingChannelsSummary: PendingChannelsSummary, apiCallStatus: ApiCallStatusPayload }) => { + this.numPendingChannels = (pendingChannelsSelector.pendingChannelsSummary.total_channels) ? pendingChannelsSelector.pendingChannelsSummary.total_channels : 0; + }); + this.store.select(closedChannels).pipe(takeUntil(this.unSubs[4])). + subscribe((closedChannelsSelector: { closedChannels: ClosedChannel[], apiCallStatus: ApiCallStatusPayload }) => { + this.numClosedChannels = (closedChannelsSelector.closedChannels && closedChannelsSelector.closedChannels.length) ? closedChannelsSelector.closedChannels.length : 0; + }); + this.store.select(blockchainBalance).pipe(takeUntil(this.unSubs[5])). + subscribe((bcBalanceSelector: { blockchainBalance: BlockchainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.totalBalance = +bcBalanceSelector.blockchainBalance.total_balance; + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[6])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.peers = peersSelector.peers; this.peers.forEach((peer) => { if (!peer.alias || peer.alias === '') { peer.alias = peer.pub_key.substring(0, 15) + '...'; } }); - this.logger.info(rtlStore); + this.logger.info(peersSelector); }); } @@ -62,11 +76,15 @@ export class ChannelsTablesComponent implements OnInit, OnDestroy { information: this.information, balance: this.totalBalance }; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - alertTitle: 'Open Channel', - message: peerToAddChannelMessage, - component: OpenChannelComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + alertTitle: 'Open Channel', + message: peerToAddChannelMessage, + component: OpenChannelComponent + } + } + })); } onSelectedTabChange(event) { diff --git a/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.html b/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.html index a5c978a2..bb71feed 100644 --- a/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.html +++ b/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.html @@ -9,7 +9,11 @@
-

{{channelToClose.active ? ('Closing channel: ' + channelToClose.channel_point) : ('Force closing channel: ' + channelToClose.channel_point)}}

+

{{ + channelToClose.active ? + ('Closing channel: ' + ((!channelToClose.remote_alias && !channelToClose.chan_id) ? channelToClose.channel_point : (channelToClose.remote_alias && channelToClose.chan_id) ? channelToClose.remote_alias + ' (' + channelToClose.chan_id + ')' : channelToClose.remote_alias ? channelToClose.remote_alias : channelToClose.chan_id)) : + ('Force closing channel: ' + ((!channelToClose.remote_alias && !channelToClose.chan_id) ? channelToClose.channel_point : (channelToClose.remote_alias && channelToClose.chan_id) ? channelToClose.remote_alias + ' (' + channelToClose.chan_id + ')' : channelToClose.remote_alias ? channelToClose.remote_alias : channelToClose.chan_id))}} +

close{{errorMsg}}

@@ -43,9 +47,9 @@
- - - + + +
diff --git a/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.spec.ts b/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.spec.ts index 21ce8117..34fb7f85 100644 --- a/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.spec.ts +++ b/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../../shared/services/logger.service'; import { CloseChannelComponent } from './close-channel.component'; @@ -21,12 +24,7 @@ describe('CloseChannelComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.ts b/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.ts index 5e0fe2e6..d44f4ee2 100644 --- a/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.ts +++ b/src/app/lnd/peers-channels/channels/close-channel-modal/close-channel.component.ts @@ -9,10 +9,10 @@ import { faExclamationTriangle, faInfoCircle } from '@fortawesome/free-solid-svg import { LoggerService } from '../../../../shared/services/logger.service'; import { Channel } from '../../../../shared/models/lndModels'; import { ChannelInformation } from '../../../../shared/models/alertData'; -import { APICallStatusEnum, TRANS_TYPES } from '../../../../shared/services/consts-enums-functions'; +import { APICallStatusEnum, LNDActions, TRANS_TYPES } from '../../../../shared/services/consts-enums-functions'; -import * as LNDActions from '../../../store/lnd.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { closeChannel } from '../../../store/lnd.actions'; @Component({ selector: 'rtl-close-channel', @@ -32,17 +32,17 @@ export class CloseChannelComponent implements OnInit, OnDestroy { public errorMsg = 'Please wait for pending HTLCs to settle before attempting channel closure.'; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ChannelInformation, private store: Store, private actions: Actions, private logger: LoggerService) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ChannelInformation, private store: Store, private actions: Actions, private logger: LoggerService) { } ngOnInit() { this.channelToClose = this.data.channel; this.actions.pipe( takeUntil(this.unSubs[0]), - filter((action) => action.type === LNDActions.UPDATE_API_CALL_STATUS_LND || action.type === LNDActions.SET_ALL_CHANNELS_LND)). - subscribe((action: LNDActions.UpdateAPICallStatus | LNDActions.SetAllChannels) => { - if (action.type === LNDActions.SET_ALL_CHANNELS_LND) { + filter((action) => action.type === LNDActions.UPDATE_API_CALL_STATUS_LND || action.type === LNDActions.SET_CHANNELS_LND)). + subscribe((action: any) => { + if (action.type === LNDActions.SET_CHANNELS_LND) { const filteredChannel = action.payload.find((channel) => channel.chan_id === this.data.channel.chan_id); - if (filteredChannel.pending_htlcs && filteredChannel.pending_htlcs.length && filteredChannel.pending_htlcs.length > 0) { + if (filteredChannel && filteredChannel.pending_htlcs && filteredChannel.pending_htlcs.length && filteredChannel.pending_htlcs.length > 0) { this.flgPendingHtlcs = true; } } @@ -52,7 +52,7 @@ export class CloseChannelComponent implements OnInit, OnDestroy { }); } - onCloseChannel(): boolean|void { + onCloseChannel(): boolean | void { if ((this.selTransType === '1' && (!this.blocks || this.blocks === 0)) || (this.selTransType === '2' && (!this.fees || this.fees === 0))) { return true; } @@ -63,7 +63,7 @@ export class CloseChannelComponent implements OnInit, OnDestroy { if (this.fees) { closeChannelParams.satPerByte = this.fees; } - this.store.dispatch(new LNDActions.CloseChannel(closeChannelParams)); + this.store.dispatch(closeChannel({ payload: closeChannelParams })); this.dialogRef.close(false); } diff --git a/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.html b/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.html index 3a8731e0..1ca10b79 100644 --- a/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.html +++ b/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.html @@ -65,8 +65,8 @@ {{channelConnectionError}}
- - + +
diff --git a/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts b/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts index 33e427fd..f59699d2 100644 --- a/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts +++ b/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.spec.ts @@ -7,7 +7,10 @@ import { mockCLEffects, mockECLEffects, mockLNDEffects, mockMatDialogRef, mockRT import { SharedModule } from '../../../../shared/shared.module'; import { RTLEffects } from '../../../../store/rtl.effects'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { OpenChannelComponent } from './open-channel.component'; describe('OpenChannelComponent', () => { @@ -20,12 +23,7 @@ describe('OpenChannelComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.ts b/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.ts index af3ac629..81b39dd2 100644 --- a/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.ts +++ b/src/app/lnd/peers-channels/channels/open-channel-modal/open-channel.component.ts @@ -9,10 +9,10 @@ import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { Peer, GetInfo } from '../../../../shared/models/lndModels'; import { OpenChannelAlert } from '../../../../shared/models/alertData'; -import { APICallStatusEnum, TRANS_TYPES } from '../../../../shared/services/consts-enums-functions'; +import { APICallStatusEnum, LNDActions, TRANS_TYPES } from '../../../../shared/services/consts-enums-functions'; -import * as LNDActions from '../../../store/lnd.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { saveNewChannel } from '../../../store/lnd.actions'; @Component({ selector: 'rtl-open-channel', @@ -43,22 +43,22 @@ export class OpenChannelComponent implements OnInit, OnDestroy { public transTypes = TRANS_TYPES; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: OpenChannelAlert, private store: Store, private actions: Actions) { } + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: OpenChannelAlert, private store: Store, private actions: Actions) { } ngOnInit() { this.information = this.data.message.information; this.totalBalance = this.data.message.balance; this.alertTitle = this.data.alertTitle; - this.peer = this.data.message.peer ? this.data.message.peer : null; - this.peers = this.data.message.peers && this.data.message.peers.length ? this.data.message.peers : []; + this.peer = this.data.message.peer || null; + this.peers = this.data.message.peers || []; this.actions.pipe( takeUntil(this.unSubs[0]), - filter((action) => action.type === LNDActions.UPDATE_API_CALL_STATUS_LND || action.type === LNDActions.FETCH_ALL_CHANNELS_LND)). - subscribe((action: LNDActions.UpdateAPICallStatus | LNDActions.FetchAllChannels) => { + filter((action) => action.type === LNDActions.UPDATE_API_CALL_STATUS_LND || action.type === LNDActions.FETCH_CHANNELS_LND)). + subscribe((action: any) => { if (action.type === LNDActions.UPDATE_API_CALL_STATUS_LND && action.payload.status === APICallStatusEnum.ERROR && action.payload.action === 'SaveNewChannel') { this.channelConnectionError = action.payload.message; } - if (action.type === LNDActions.FETCH_ALL_CHANNELS_LND) { + if (action.type === LNDActions.FETCH_CHANNELS_LND) { this.dialogRef.close(); } }); @@ -120,9 +120,11 @@ export class OpenChannelComponent implements OnInit, OnDestroy { if ((!this.peer && !this.selectedPubkey) || (!this.fundingAmount || ((this.totalBalance - this.fundingAmount) < 0) || ((this.selTransType === '1' || this.selTransType === '2') && !this.transTypeValue))) { return true; } - this.store.dispatch(new LNDActions.SaveNewChannel({ - selectedPeerPubkey: ((!this.peer || !this.peer.pub_key) ? this.selectedPubkey : this.peer.pub_key), fundingAmount: this.fundingAmount, private: this.isPrivate, - transType: this.selTransType, transTypeValue: this.transTypeValue, spendUnconfirmed: this.spendUnconfirmed + this.store.dispatch(saveNewChannel({ + payload: { + selectedPeerPubkey: ((!this.peer || !this.peer.pub_key) ? this.selectedPubkey : this.peer.pub_key), fundingAmount: this.fundingAmount, private: this.isPrivate, + transType: this.selTransType, transTypeValue: this.transTypeValue, spendUnconfirmed: this.spendUnconfirmed + } })); } diff --git a/src/app/lnd/peers-channels/connect-peer/connect-peer.component.html b/src/app/lnd/peers-channels/connect-peer/connect-peer.component.html index 5403218c..4bc8d611 100644 --- a/src/app/lnd/peers-channels/connect-peer/connect-peer.component.html +++ b/src/app/lnd/peers-channels/connect-peer/connect-peer.component.html @@ -21,7 +21,7 @@ {{peerConnectionError}}
- +
@@ -64,13 +64,13 @@ {{channelConnectionError}}
- +
- +
diff --git a/src/app/lnd/peers-channels/connect-peer/connect-peer.component.spec.ts b/src/app/lnd/peers-channels/connect-peer/connect-peer.component.spec.ts index 8c000f24..b581d51b 100644 --- a/src/app/lnd/peers-channels/connect-peer/connect-peer.component.spec.ts +++ b/src/app/lnd/peers-channels/connect-peer/connect-peer.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../shared/services/logger.service'; import { ConnectPeerComponent } from './connect-peer.component'; @@ -22,12 +25,7 @@ describe('ConnectPeerComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/lnd/peers-channels/connect-peer/connect-peer.component.ts b/src/app/lnd/peers-channels/connect-peer/connect-peer.component.ts index 6f780296..4c79949c 100644 --- a/src/app/lnd/peers-channels/connect-peer/connect-peer.component.ts +++ b/src/app/lnd/peers-channels/connect-peer/connect-peer.component.ts @@ -11,11 +11,11 @@ import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { LoggerService } from '../../../shared/services/logger.service'; import { Peer } from '../../../shared/models/lndModels'; import { OpenChannelAlert } from '../../../shared/models/alertData'; -import { APICallStatusEnum, TRANS_TYPES } from '../../../shared/services/consts-enums-functions'; +import { APICallStatusEnum, LNDActions, TRANS_TYPES } from '../../../shared/services/consts-enums-functions'; import { LNDEffects } from '../../store/lnd.effects'; -import * as LNDActions from '../../store/lnd.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { fetchGraphNode, saveNewChannel, saveNewPeer } from '../../store/lnd.actions'; @Component({ selector: 'rtl-connect-peer', @@ -43,7 +43,7 @@ export class ConnectPeerComponent implements OnInit, OnDestroy { statusFormGroup: FormGroup; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: OpenChannelAlert, private store: Store, private lndEffects: LNDEffects, private formBuilder: FormBuilder, private actions: Actions, private logger: LoggerService) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: OpenChannelAlert, private store: Store, private lndEffects: LNDEffects, private formBuilder: FormBuilder, private actions: Actions, private logger: LoggerService) { } ngOnInit() { this.totalBalance = this.data.message.balance; @@ -75,7 +75,7 @@ export class ConnectPeerComponent implements OnInit, OnDestroy { this.actions.pipe( takeUntil(this.unSubs[1]), filter((action) => action.type === LNDActions.NEWLY_ADDED_PEER_LND || action.type === LNDActions.FETCH_PENDING_CHANNELS_LND || action.type === LNDActions.UPDATE_API_CALL_STATUS_LND)). - subscribe((action: (LNDActions.NewlyAddedPeer | LNDActions.FetchPendingChannels | LNDActions.UpdateAPICallStatus)) => { + subscribe((action: any) => { if (action.type === LNDActions.NEWLY_ADDED_PEER_LND) { this.logger.info(action.payload); this.flgEditable = false; @@ -96,7 +96,7 @@ export class ConnectPeerComponent implements OnInit, OnDestroy { }); } - onConnectPeer(): boolean|void { + onConnectPeer(): boolean | void { if (!this.peerFormGroup.controls.peerAddress.value) { return true; } @@ -109,28 +109,28 @@ export class ConnectPeerComponent implements OnInit, OnDestroy { host = this.peerFormGroup.controls.peerAddress.value.substring(deviderIndex + 1); this.connectPeerWithParams(pubkey, host); } else { - this.store.dispatch(new LNDActions.FetchGraphNode({ pubkey: this.peerFormGroup.controls.peerAddress.value })); - this.lndEffects.setGraphNode. - pipe(take(1)). - subscribe((graphNode) => { - host = (graphNode.node.addresses && graphNode.node.addresses.length && graphNode.node.addresses.length > 0 && graphNode.node.addresses[0].addr) ? graphNode.node.addresses[0].addr : ''; - this.connectPeerWithParams(this.peerFormGroup.controls.peerAddress.value, host); - }); + this.store.dispatch(fetchGraphNode({ payload: { pubkey: this.peerFormGroup.controls.peerAddress.value } })); + this.lndEffects.setGraphNode.pipe(take(1)).subscribe((graphNode) => { + host = (graphNode.node.addresses && graphNode.node.addresses.length && graphNode.node.addresses.length > 0 && graphNode.node.addresses[0].addr) ? graphNode.node.addresses[0].addr : ''; + this.connectPeerWithParams(this.peerFormGroup.controls.peerAddress.value, host); + }); } } connectPeerWithParams(pubkey: string, host: string) { - this.store.dispatch(new LNDActions.SaveNewPeer({ pubkey: pubkey, host: host, perm: false })); + this.store.dispatch(saveNewPeer({ payload: { pubkey: pubkey, host: host, perm: false } })); } - onOpenChannel(): boolean|void { + onOpenChannel(): boolean | void { if (!this.channelFormGroup.controls.fundingAmount.value || ((this.totalBalance - this.channelFormGroup.controls.fundingAmount.value) < 0) || (this.channelFormGroup.controls.selTransType.value === '1' && !this.channelFormGroup.controls.transTypeValue.value) || (this.channelFormGroup.controls.selTransType.value === '2' && !this.channelFormGroup.controls.transTypeValue.value)) { return true; } this.channelConnectionError = ''; - this.store.dispatch(new LNDActions.SaveNewChannel({ - selectedPeerPubkey: this.newlyAddedPeer.pub_key, fundingAmount: this.channelFormGroup.controls.fundingAmount.value, private: this.channelFormGroup.controls.isPrivate.value, - transType: this.channelFormGroup.controls.selTransType.value, transTypeValue: this.channelFormGroup.controls.transTypeValue.value, spendUnconfirmed: this.channelFormGroup.controls.spendUnconfirmed.value + this.store.dispatch(saveNewChannel({ + payload: { + selectedPeerPubkey: this.newlyAddedPeer.pub_key, fundingAmount: this.channelFormGroup.controls.fundingAmount.value, private: this.channelFormGroup.controls.isPrivate.value, + transType: this.channelFormGroup.controls.selTransType.value, transTypeValue: this.channelFormGroup.controls.transTypeValue.value, spendUnconfirmed: this.channelFormGroup.controls.spendUnconfirmed.value + } })); } diff --git a/src/app/lnd/peers-channels/connections.component.spec.ts b/src/app/lnd/peers-channels/connections.component.spec.ts index de274ee0..f59d141a 100644 --- a/src/app/lnd/peers-channels/connections.component.spec.ts +++ b/src/app/lnd/peers-channels/connections.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { LoggerService } from '../../shared/services/logger.service'; import { ConnectionsComponent } from './connections.component'; @@ -23,12 +26,7 @@ describe('ConnectionsComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/peers-channels/connections.component.ts b/src/app/lnd/peers-channels/connections.component.ts index b03fb092..37d4b4cb 100644 --- a/src/app/lnd/peers-channels/connections.component.ts +++ b/src/app/lnd/peers-channels/connections.component.ts @@ -8,7 +8,10 @@ import { faUsers, faChartPie } from '@fortawesome/free-solid-svg-icons'; import { SelNodeChild } from '../../shared/models/RTLconfig'; import { LoggerService } from '../../shared/services/logger.service'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { blockchainBalance, channels, lndNodeSettings, peers } from '../store/lnd.selector'; +import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; +import { BlockchainBalance, Channel, ChannelsSummary, LightningBalance, Peer } from '../../shared/models/lndModels'; @Component({ selector: 'rtl-connections', @@ -25,24 +28,31 @@ export class ConnectionsComponent implements OnInit, OnDestroy { public balances = [{ title: 'Total Balance', dataValue: 0 }, { title: 'Confirmed', dataValue: 0 }, { title: 'Unconfirmed', dataValue: 0 }]; public links = [{ link: 'channels', name: 'Channels' }, { link: 'peers', name: 'Peers' }]; public activeLink = 0; - private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private logger: LoggerService, private router: Router) {} + constructor(private store: Store, private logger: LoggerService, private router: Router) { } ngOnInit() { this.activeLink = this.links.findIndex((link) => link.link === this.router.url.substring(this.router.url.lastIndexOf('/') + 1)); this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { this.activeLink = this.links.findIndex((link) => link.link === value.urlAfterRedirects.substring(value.urlAfterRedirects.lastIndexOf('/') + 1)); }); - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.activePeers = (rtlStore.peers && rtlStore.peers.length) ? rtlStore.peers.length : 0; - this.activeChannels = rtlStore.numberOfActiveChannels; - this.balances = [{ title: 'Total Balance', dataValue: rtlStore.blockchainBalance.total_balance || 0 }, { title: 'Confirmed', dataValue: rtlStore.blockchainBalance.confirmed_balance }, { title: 'Unconfirmed', dataValue: rtlStore.blockchainBalance.unconfirmed_balance }]; - this.logger.info(rtlStore); + this.store.select(lndNodeSettings).pipe(takeUntil(this.unSubs[1])).subscribe((nodeSettings: SelNodeChild) => { this.selNode = nodeSettings; }); + this.store.select(peers).pipe(takeUntil(this.unSubs[2])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { + this.activePeers = (peersSelector.peers && peersSelector.peers.length) ? peersSelector.peers.length : 0; + this.logger.info(peersSelector); + }); + this.store.select(channels).pipe(takeUntil(this.unSubs[3])). + subscribe((channelsSelector: { channels: Channel[], channelsSummary: ChannelsSummary, lightningBalance: LightningBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.activeChannels = channelsSelector.channelsSummary.active.num_channels; + this.logger.info(channelsSelector); + }); + this.store.select(blockchainBalance).pipe(takeUntil(this.unSubs[4])). + subscribe((bcBalanceSelector: { blockchainBalance: BlockchainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.balances = [{ title: 'Total Balance', dataValue: bcBalanceSelector.blockchainBalance.total_balance || 0 }, { title: 'Confirmed', dataValue: bcBalanceSelector.blockchainBalance.confirmed_balance }, { title: 'Unconfirmed', dataValue: bcBalanceSelector.blockchainBalance.unconfirmed_balance }]; + this.logger.info(bcBalanceSelector); }); } diff --git a/src/app/lnd/peers-channels/peers/peers.component.html b/src/app/lnd/peers-channels/peers/peers.component.html index 2813a291..36ad5da0 100644 --- a/src/app/lnd/peers-channels/peers/peers.component.html +++ b/src/app/lnd/peers-channels/peers/peers.component.html @@ -9,11 +9,11 @@ Connected Peers - +
- + @@ -60,9 +60,9 @@ diff --git a/src/app/lnd/peers-channels/peers/peers.component.spec.ts b/src/app/lnd/peers-channels/peers/peers.component.spec.ts index 8ebb0728..c0242a47 100644 --- a/src/app/lnd/peers-channels/peers/peers.component.spec.ts +++ b/src/app/lnd/peers-channels/peers/peers.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -22,12 +25,7 @@ describe('PeersComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/peers-channels/peers/peers.component.ts b/src/app/lnd/peers-channels/peers/peers.component.ts index b4b29993..cc69ca59 100644 --- a/src/app/lnd/peers-channels/peers/peers.component.ts +++ b/src/app/lnd/peers-channels/peers/peers.component.ts @@ -7,18 +7,19 @@ import { faUsers } from '@fortawesome/free-solid-svg-icons'; import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { Peer, GetInfo } from '../../../shared/models/lndModels'; +import { Peer, GetInfo, BlockchainBalance } from '../../../shared/models/lndModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; import { OpenChannelComponent } from '../channels/open-channel-modal/open-channel.component'; import { ConnectPeerComponent } from '../connect-peer/connect-peer.component'; import { RTLEffects } from '../../../store/rtl.effects'; -import * as LNDActions from '../../store/lnd.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert, openConfirmation } from '../../../store/rtl.actions'; +import { detachPeer } from '../../store/lnd.actions'; +import { blockchainBalance, lndNodeInformation, peers } from '../../store/lnd.selector'; @Component({ selector: 'rtl-peers', @@ -30,8 +31,8 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class PeersComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; public availableBalance = 0; public faUsers = faUsers; public displayedColumns: any[] = []; @@ -44,11 +45,12 @@ export class PeersComponent implements OnInit, AfterViewInit, OnDestroy { public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public selFilter = ''; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { + constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -66,21 +68,23 @@ export class PeersComponent implements OnInit, AfterViewInit, OnDestroy { } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(lndNodeInformation).pipe(takeUntil(this.unSubs[0])).subscribe((nodeInfo: GetInfo) => { this.information = nodeInfo; }); + this.store.select(blockchainBalance).pipe(takeUntil(this.unSubs[1])). + subscribe((bcBalanceSelector: { blockchainBalance: BlockchainBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.availableBalance = bcBalanceSelector.blockchainBalance.total_balance || 0; + }); + this.store.select(peers).pipe(takeUntil(this.unSubs[0])). + subscribe((peersSelector: { peers: Peer[], apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchPeers.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchPeers.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchPeers.message) : this.apisCallStatus.FetchPeers.message; + this.apiCallStatus = peersSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.information = rtlStore.information; - this.availableBalance = rtlStore.blockchainBalance.total_balance || 0; - this.peersData = rtlStore.peers; + this.peersData = peersSelector.peers; if (this.peersData.length > 0) { this.loadPeersTable(this.peersData); } - this.logger.info(rtlStore); + this.logger.info(peersSelector); }); } @@ -98,20 +102,28 @@ export class PeersComponent implements OnInit, AfterViewInit, OnDestroy { [{ key: 'sat_sent', value: selPeer.sat_sent, title: 'Satoshis Sent', width: 50, type: DataTypeEnum.NUMBER }, { key: 'sat_recv', value: selPeer.sat_recv, title: 'Satoshis Received', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'bytes_sent', value: selPeer.bytes_sent, title: 'Bytes Sent', width: 50, type: DataTypeEnum.NUMBER }, { key: 'bytes_recv', value: selPeer.bytes_recv, title: 'Bytes Received', width: 50, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Peer Information', - showQRName: 'Public Key', - showQRField: selPeer.pub_key, - message: reorderedPeer - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Peer Information', + showQRName: 'Public Key', + showQRField: selPeer.pub_key, + message: reorderedPeer + } + } + })); } onConnectPeer() { - this.store.dispatch(new RTLActions.OpenAlert({ data: { - message: { peer: null, information: this.information, balance: this.availableBalance }, - component: ConnectPeerComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + message: { peer: null, information: this.information, balance: this.availableBalance }, + component: ConnectPeerComponent + } + } + })); } onOpenChannel(peerToAddChannel: Peer) { @@ -120,33 +132,41 @@ export class PeersComponent implements OnInit, AfterViewInit, OnDestroy { information: this.information, balance: this.availableBalance }; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - alertTitle: 'Open Channel', - message: peerToAddChannelMessage, - component: OpenChannelComponent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + alertTitle: 'Open Channel', + message: peerToAddChannelMessage, + component: OpenChannelComponent + } + } + })); } onPeerDetach(peerToDetach: Peer) { const msg = 'Disconnect peer: ' + ((peerToDetach.alias) ? peerToDetach.alias : peerToDetach.pub_key); - this.store.dispatch(new RTLActions.OpenConfirmation({ data: { - type: AlertTypeEnum.CONFIRM, - alertTitle: 'Disconnect Peer', - titleMessage: msg, - noBtnText: 'Cancel', - yesBtnText: 'Disconnect' - } })); + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, + alertTitle: 'Disconnect Peer', + titleMessage: msg, + noBtnText: 'Cancel', + yesBtnText: 'Disconnect' + } + } + })); this.rtlEffects.closeConfirm. pipe(takeUntil(this.unSubs[3])). subscribe((confirmRes) => { if (confirmRes) { - this.store.dispatch(new LNDActions.DetachPeer({ pubkey: peerToDetach.pub_key })); + this.store.dispatch(detachPeer({ payload: { pubkey: peerToDetach.pub_key } })); } }); } - applyFilter(selFilter: any) { - this.peers.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.peers.filter = this.selFilter.trim().toLowerCase(); } loadPeersTable(peers: Peer[]) { @@ -155,6 +175,7 @@ export class PeersComponent implements OnInit, AfterViewInit, OnDestroy { this.peers.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.peers.filterPredicate = (peer: Peer, fltr: string) => JSON.stringify(peer).toLowerCase().includes(fltr); this.peers.paginator = this.paginator; + this.applyFilter(); } onDownloadCSV() { diff --git a/src/app/lnd/reports/fee/fee-report.component.spec.ts b/src/app/lnd/reports/fee/fee-report.component.spec.ts index 3cde7d4b..6f9a1f6b 100644 --- a/src/app/lnd/reports/fee/fee-report.component.spec.ts +++ b/src/app/lnd/reports/fee/fee-report.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { DataService } from '../../../shared/services/data.service'; @@ -20,12 +23,7 @@ describe('FeeReportComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/reports/fee/fee-report.component.ts b/src/app/lnd/reports/fee/fee-report.component.ts index c58e981d..6a79e8b2 100644 --- a/src/app/lnd/reports/fee/fee-report.component.ts +++ b/src/app/lnd/reports/fee/fee-report.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, OnDestroy, HostListener, AfterContentInit } from '@angular/core'; +import { Component, OnInit, OnDestroy, HostListener } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; @@ -9,8 +9,9 @@ import { MONTHS, ScreenSizeEnum, SCROLL_RANGES, UI_MESSAGES } from '../../../sha import { DataService } from '../../../shared/services/data.service'; import { fadeIn } from '../../../shared/animation/opacity-animation'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; -import * as fromLNDReducer from '../../store/lnd.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { lndNodeInformation } from '../../store/lnd.selector'; +import { LoggerService } from '../../../shared/services/logger.service'; @Component({ selector: 'rtl-fee-report', @@ -18,7 +19,7 @@ import * as fromLNDReducer from '../../store/lnd.reducers'; styleUrls: ['./fee-report.component.scss'], animations: [fadeIn] }) -export class FeeReportComponent implements OnInit, AfterContentInit, OnDestroy { +export class FeeReportComponent implements OnInit, OnDestroy { public reportPeriod = SCROLL_RANGES[0]; public secondsInADay = 24 * 60 * 60; @@ -39,34 +40,34 @@ export class FeeReportComponent implements OnInit, AfterContentInit, OnDestroy { public errorMessage = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private dataService: DataService, private commonService: CommonService, private store: Store) {} + constructor(private logger: LoggerService, private dataService: DataService, private commonService: CommonService, private store: Store) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); this.showYAxisLabel = !(this.screenSize === ScreenSizeEnum.XS || this.screenSize === ScreenSizeEnum.SM); - this.store.select(fromLNDReducer.getInformation).pipe(takeUntil(this.unSubs[0])).subscribe((info) => { + this.store.select(lndNodeInformation).pipe(takeUntil(this.unSubs[0])).subscribe((info) => { if (info.identity_pubkey) { this.fetchEvents(this.startDate, this.endDate); } }); - } - - ngAfterContentInit() { - const CONTAINER_SIZE = this.commonService.getContainerSize(); - switch (this.screenSize) { - case ScreenSizeEnum.MD: - this.screenPaddingX = CONTAINER_SIZE.width / 10; - break; - - case ScreenSizeEnum.LG: - this.screenPaddingX = CONTAINER_SIZE.width / 16; - break; - - default: - this.screenPaddingX = CONTAINER_SIZE.width / 20; - break; - } - this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.commonService.containerSizeUpdated.pipe(takeUntil(this.unSubs[1])).subscribe((CONTAINER_SIZE) => { + switch (this.screenSize) { + case ScreenSizeEnum.MD: + this.screenPaddingX = CONTAINER_SIZE.width / 10; + break; + + case ScreenSizeEnum.LG: + this.screenPaddingX = CONTAINER_SIZE.width / 16; + break; + + default: + this.screenPaddingX = CONTAINER_SIZE.width / 20; + break; + } + this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.logger.info('Container Size: ' + JSON.stringify(CONTAINER_SIZE)); + this.logger.info('View: ' + JSON.stringify(this.view)); + }); } fetchEvents(start: Date, end: Date) { @@ -74,19 +75,21 @@ export class FeeReportComponent implements OnInit, AfterContentInit, OnDestroy { const startDateInSeconds = Math.round(start.getTime() / 1000).toString(); const endDateInSeconds = Math.round(end.getTime() / 1000).toString(); this.dataService.getForwardingHistory(startDateInSeconds, endDateInSeconds). - pipe(takeUntil(this.unSubs[1])).subscribe({ next: (res) => { - this.errorMessage = ''; - if (res.forwarding_events && res.forwarding_events.length) { - res.forwarding_events = res.forwarding_events.reverse(); - this.events = res; - this.feeReportData = this.prepareFeeReport(start); - } else { - this.events = {}; - this.feeReportData = []; + pipe(takeUntil(this.unSubs[2])).subscribe({ + next: (res) => { + this.errorMessage = ''; + if (res.forwarding_events && res.forwarding_events.length) { + res.forwarding_events = res.forwarding_events.reverse(); + this.events = res; + this.feeReportData = this.prepareFeeReport(start); + } else { + this.events = {}; + this.feeReportData = []; + } + }, error: (err) => { + this.errorMessage = err; } - }, error: (err) => { - this.errorMessage = err; - } }); + }); } @HostListener('mouseup', ['$event']) onChartMouseUp(e) { @@ -108,7 +111,7 @@ export class FeeReportComponent implements OnInit, AfterContentInit, OnDestroy { const feeReport = []; if (this.reportPeriod === SCROLL_RANGES[1]) { for (let i = 0; i < 12; i++) { - feeReport.push({ name: MONTHS[i].name, value: 0.000000001, extra: { totalEvents: 0 } }); + feeReport.push({ name: MONTHS[i].name, value: 0.0, extra: { totalEvents: 0 } }); } this.events.forwarding_events.map((event) => { const monthNumber = new Date((+event.timestamp) * 1000).getMonth(); @@ -119,7 +122,7 @@ export class FeeReportComponent implements OnInit, AfterContentInit, OnDestroy { }); } else { for (let i = 0; i < this.getMonthDays(start.getMonth(), start.getFullYear()); i++) { - feeReport.push({ name: i + 1, value: 0.000000001, extra: { totalEvents: 0 } }); + feeReport.push({ name: i + 1, value: 0.0, extra: { totalEvents: 0 } }); } this.events.forwarding_events.map((event) => { const dateNumber = Math.floor((+event.timestamp - startDateInSeconds) / this.secondsInADay); @@ -132,7 +135,7 @@ export class FeeReportComponent implements OnInit, AfterContentInit, OnDestroy { return feeReport; } - onSelectionChange(selectedValues: {selDate: Date, selScrollRange: string}) { + onSelectionChange(selectedValues: { selDate: Date, selScrollRange: string }) { const selMonth = selectedValues.selDate.getMonth(); const selYear = selectedValues.selDate.getFullYear(); this.reportPeriod = selectedValues.selScrollRange; diff --git a/src/app/lnd/reports/transactions/transactions-report.component.html b/src/app/lnd/reports/transactions/transactions-report.component.html index 68f6ade8..c5ca512e 100644 --- a/src/app/lnd/reports/transactions/transactions-report.component.html +++ b/src/app/lnd/reports/transactions/transactions-report.component.html @@ -2,12 +2,12 @@
-
+
Getting transactions data...
-
{{errorMessage}}
-
+
{{errorMessage}}
+
Paid {{(transactionsReportSummary.amountPaidSelectedPeriod / 1000 || 0) | number:'1.0-2'}} Sats/{{transactionsReportSummary.paymentsSelectedPeriod | number}} Payments
@@ -15,8 +15,8 @@ Received {{(transactionsReportSummary.amountReceivedSelectedPeriod / 1000 || 0) | number:'1.0-2'}} Sats/{{transactionsReportSummary.invoicesSelectedPeriod | number}} Invoices
-
No transactions report for the selected period
-
+
No transactions report for the selected period
+
- +
diff --git a/src/app/lnd/reports/transactions/transactions-report.component.spec.ts b/src/app/lnd/reports/transactions/transactions-report.component.spec.ts index 41dced25..47814d5c 100644 --- a/src/app/lnd/reports/transactions/transactions-report.component.spec.ts +++ b/src/app/lnd/reports/transactions/transactions-report.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { TransactionsReportComponent } from './transactions-report.component'; @@ -9,6 +12,7 @@ import { mockDataService, mockLoggerService } from '../../../shared/test-helpers import { SharedModule } from '../../../shared/shared.module'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { DataService } from '../../../shared/services/data.service'; +import { LoggerService } from '../../../shared/services/logger.service'; describe('TransactionsReportComponent', () => { let component: TransactionsReportComponent; @@ -20,15 +24,11 @@ describe('TransactionsReportComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, + { provide: LoggerService, useClass: mockLoggerService }, { provide: DataService, useClass: mockDataService } ] }). diff --git a/src/app/lnd/reports/transactions/transactions-report.component.ts b/src/app/lnd/reports/transactions/transactions-report.component.ts index 14557e63..0ccc9e5f 100644 --- a/src/app/lnd/reports/transactions/transactions-report.component.ts +++ b/src/app/lnd/reports/transactions/transactions-report.component.ts @@ -1,15 +1,17 @@ -import { Component, OnInit, OnDestroy, HostListener, AfterContentInit } from '@angular/core'; +import { Component, OnInit, OnDestroy, HostListener } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; -import { Payment, Invoice } from '../../../shared/models/lndModels'; +import { Payment, Invoice, ListInvoices, ListPayments } from '../../../shared/models/lndModels'; import { CommonService } from '../../../shared/services/common.service'; +import { LoggerService } from '../../../shared/services/logger.service'; import { APICallStatusEnum, MONTHS, ScreenSizeEnum, SCROLL_RANGES } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { fadeIn } from '../../../shared/animation/opacity-animation'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { allLightningTransactions } from '../../store/lnd.selector'; @Component({ @@ -18,7 +20,7 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; styleUrls: ['./transactions-report.component.scss'], animations: [fadeIn] }) -export class TransactionsReportComponent implements OnInit, AfterContentInit, OnDestroy { +export class TransactionsReportComponent implements OnInit, OnDestroy { public scrollRanges = SCROLL_RANGES; public reportPeriod = SCROLL_RANGES[0]; @@ -41,48 +43,48 @@ export class TransactionsReportComponent implements OnInit, AfterContentInit, On public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private commonService: CommonService, private store: Store) { } + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); this.showYAxisLabel = !(this.screenSize === ScreenSizeEnum.XS || this.screenSize === ScreenSizeEnum.SM); - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(allLightningTransactions).pipe(takeUntil(this.unSubs[0])). + subscribe((allLTSelector: { allLightningTransactions: { listPaymentsAll: ListPayments, listInvoicesAll: ListInvoices }, apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.FetchLightningTransactions.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.FetchLightningTransactions.message) === 'object') ? JSON.stringify(this.apisCallStatus.FetchLightningTransactions.message) : this.apisCallStatus.FetchLightningTransactions.message; + this.apiCallStatus = allLTSelector.apiCallStatus; + if (this.apiCallStatus.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.payments = rtlStore.allLightningTransactions.paymentsAll ? rtlStore.allLightningTransactions.paymentsAll.payments : []; - this.invoices = rtlStore.allLightningTransactions.invoicesAll ? rtlStore.allLightningTransactions.invoicesAll.invoices : []; + this.payments = allLTSelector.allLightningTransactions.listPaymentsAll.payments || []; + this.invoices = allLTSelector.allLightningTransactions.listInvoicesAll.invoices || []; if (this.payments.length > 0 || this.invoices.length > 0) { this.transactionsReportData = this.filterTransactionsForSelectedPeriod(this.startDate, this.endDate); this.transactionsNonZeroReportData = this.prepareTableData(); } + this.logger.info(allLTSelector); }); - } - - ngAfterContentInit() { - const CONTAINER_SIZE = this.commonService.getContainerSize(); - switch (this.screenSize) { - case ScreenSizeEnum.MD: - this.screenPaddingX = CONTAINER_SIZE.width / 10; - break; - - case ScreenSizeEnum.LG: - this.screenPaddingX = CONTAINER_SIZE.width / 16; - break; - - default: - this.screenPaddingX = CONTAINER_SIZE.width / 20; - break; - } - this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.commonService.containerSizeUpdated.pipe(takeUntil(this.unSubs[1])).subscribe((CONTAINER_SIZE) => { + switch (this.screenSize) { + case ScreenSizeEnum.MD: + this.screenPaddingX = CONTAINER_SIZE.width / 10; + break; + + case ScreenSizeEnum.LG: + this.screenPaddingX = CONTAINER_SIZE.width / 16; + break; + + default: + this.screenPaddingX = CONTAINER_SIZE.width / 20; + break; + } + this.view = [CONTAINER_SIZE.width - this.screenPaddingX, CONTAINER_SIZE.height / 2.2]; + this.logger.info('Container Size: ' + JSON.stringify(CONTAINER_SIZE)); + this.logger.info('View: ' + JSON.stringify(this.view)); + }); } @HostListener('mouseup', ['$event']) onChartMouseUp(e) { diff --git a/src/app/lnd/routing/forwarding-history/forwarding-history.component.html b/src/app/lnd/routing/forwarding-history/forwarding-history.component.html index c4b82c5d..80885747 100644 --- a/src/app/lnd/routing/forwarding-history/forwarding-history.component.html +++ b/src/app/lnd/routing/forwarding-history/forwarding-history.component.html @@ -1,5 +1,5 @@
-
{{errorMessage}}
+
{{errorMessage}}
@@ -7,7 +7,7 @@
- +
Alias -

No connected peer.

-

Getting peers...

-

{{errorMessage}}

+

No connected peer.

+

Getting peers...

+

{{errorMessage}}

@@ -48,9 +48,9 @@ diff --git a/src/app/lnd/routing/forwarding-history/forwarding-history.component.spec.ts b/src/app/lnd/routing/forwarding-history/forwarding-history.component.spec.ts index a5ac4195..cc62bb46 100644 --- a/src/app/lnd/routing/forwarding-history/forwarding-history.component.spec.ts +++ b/src/app/lnd/routing/forwarding-history/forwarding-history.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('ForwardingHistoryComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/routing/forwarding-history/forwarding-history.component.ts b/src/app/lnd/routing/forwarding-history/forwarding-history.component.ts index 2549fd0a..e31674b8 100644 --- a/src/app/lnd/routing/forwarding-history/forwarding-history.component.ts +++ b/src/app/lnd/routing/forwarding-history/forwarding-history.component.ts @@ -7,14 +7,15 @@ import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { ForwardingEvent } from '../../../shared/models/lndModels'; +import { ForwardingEvent, SwitchRes } from '../../../shared/models/lndModels'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, APICallStatusEnum } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; +import { openAlert } from '../../../store/rtl.actions'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { forwardingHistory } from '../../store/lnd.selector'; @Component({ selector: 'rtl-forwarding-history', @@ -26,8 +27,8 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; }) export class ForwardingHistoryComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy { - @ViewChild(MatSort, { static: false }) sort: MatSort|undefined; - @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator|undefined; + @ViewChild(MatSort, { static: false }) sort: MatSort | undefined; + @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator | undefined; @Input() eventsData = []; @Input() filterValue = ''; public forwardingHistoryData = []; @@ -39,11 +40,11 @@ export class ForwardingHistoryComponent implements OnInit, AfterViewInit, OnChan public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public errorMessage = ''; - public apisCallStatus: ApiCallsListLND = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private datePipe: DatePipe) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -58,18 +59,18 @@ export class ForwardingHistoryComponent implements OnInit, AfterViewInit, OnChan } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(forwardingHistory).pipe(takeUntil(this.unSubs[0])). + subscribe((fhSelector: { forwardingHistory: SwitchRes, apiCallStatus: ApiCallStatusPayload }) => { if (this.eventsData.length <= 0) { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.GetForwardingHistory.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.GetForwardingHistory.message) === 'object') ? JSON.stringify(this.apisCallStatus.GetForwardingHistory.message) : this.apisCallStatus.GetForwardingHistory.message; + this.apiCallStatus = fhSelector.apiCallStatus; + if (fhSelector.apiCallStatus?.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - this.forwardingHistoryData = (rtlStore.forwardingHistory && rtlStore.forwardingHistory.forwarding_events) ? rtlStore.forwardingHistory.forwarding_events : []; + this.forwardingHistoryData = fhSelector.forwardingHistory.forwarding_events || []; this.loadForwardingEventsTable(this.forwardingHistoryData); - this.logger.info(rtlStore); + this.logger.info(fhSelector.apiCallStatus); + this.logger.info(fhSelector.forwardingHistory); } }); } @@ -82,6 +83,7 @@ export class ForwardingHistoryComponent implements OnInit, AfterViewInit, OnChan ngOnChanges(changes: SimpleChanges) { if (changes.eventsData) { + this.apiCallStatus = { status: APICallStatusEnum.COMPLETED, action: 'FetchForwardingHistory' }; this.eventsData = changes.eventsData.currentValue; this.forwardingHistoryData = this.eventsData; if (!changes.eventsData.firstChange) { @@ -96,19 +98,23 @@ export class ForwardingHistoryComponent implements OnInit, AfterViewInit, OnChan onForwardingEventClick(selFEvent: ForwardingEvent, event: any) { const reorderedFHEvent = [ [{ key: 'timestamp', value: selFEvent.timestamp, title: 'Timestamp', width: 25, type: DataTypeEnum.DATE_TIME }, - { key: 'amt_in', value: selFEvent.amt_in, title: 'Inbound Amount (Sats)', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'amt_out', value: selFEvent.amt_out, title: 'Outbound Amount (Sats)', width: 25, type: DataTypeEnum.NUMBER }, - { key: 'fee_msat', value: selFEvent.fee_msat, title: 'Fee (mSats)', width: 25, type: DataTypeEnum.NUMBER }], + { key: 'amt_in', value: selFEvent.amt_in, title: 'Inbound Amount (Sats)', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'amt_out', value: selFEvent.amt_out, title: 'Outbound Amount (Sats)', width: 25, type: DataTypeEnum.NUMBER }, + { key: 'fee_msat', value: selFEvent.fee_msat, title: 'Fee (mSats)', width: 25, type: DataTypeEnum.NUMBER }], [{ key: 'alias_in', value: selFEvent.alias_in, title: 'Inbound Peer Alias', width: 25, type: DataTypeEnum.STRING }, - { key: 'chan_id_in', value: selFEvent.chan_id_in, title: 'Inbound Channel ID', width: 25, type: DataTypeEnum.STRING }, - { key: 'alias_out', value: selFEvent.alias_out, title: 'Outbound Peer Alias', width: 25, type: DataTypeEnum.STRING }, - { key: 'chan_id_out', value: selFEvent.chan_id_out, title: 'Outbound Channel ID', width: 25, type: DataTypeEnum.STRING }] + { key: 'chan_id_in', value: selFEvent.chan_id_in, title: 'Inbound Channel ID', width: 25, type: DataTypeEnum.STRING }, + { key: 'alias_out', value: selFEvent.alias_out, title: 'Outbound Peer Alias', width: 25, type: DataTypeEnum.STRING }, + { key: 'chan_id_out', value: selFEvent.chan_id_out, title: 'Outbound Channel ID', width: 25, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Event Information', - message: reorderedFHEvent - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Event Information', + message: reorderedFHEvent + } + } + })); } loadForwardingEventsTable(forwardingEvents: ForwardingEvent[]) { diff --git a/src/app/lnd/routing/routing-peers/routing-peers.component.html b/src/app/lnd/routing/routing-peers/routing-peers.component.html index 46d2aa1a..c773445d 100644 --- a/src/app/lnd/routing/routing-peers/routing-peers.component.html +++ b/src/app/lnd/routing/routing-peers/routing-peers.component.html @@ -5,11 +5,11 @@
Incoming
- +
- +
Timestamp -

No forwarding history available.

-

Getting forwarding history...

-

{{errorMessage}}

+

No forwarding history available.

+

Getting forwarding history...

+

{{errorMessage}}

@@ -36,12 +36,12 @@ - +
Channel ID -

No incoming routing peer available.

-

Getting incoming routing peers...

-

{{errorMessage}}

+

No incoming routing peer available.

+

Getting incoming routing peers...

+

{{errorMessage}}

@@ -52,11 +52,11 @@
Outgoing
- +
- + @@ -83,12 +83,12 @@ - +
Channel ID -

No outgoing routing peer available.

-

Getting outgoing routing peers...

-

{{errorMessage}}

+

No outgoing routing peer available.

+

Getting outgoing routing peers...

+

{{errorMessage}}

diff --git a/src/app/lnd/routing/routing-peers/routing-peers.component.spec.ts b/src/app/lnd/routing/routing-peers/routing-peers.component.spec.ts index aef8d189..0c7dd07b 100644 --- a/src/app/lnd/routing/routing-peers/routing-peers.component.spec.ts +++ b/src/app/lnd/routing/routing-peers/routing-peers.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../shared/services/common.service'; import { LoggerService } from '../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('RoutingPeersComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/lnd/routing/routing-peers/routing-peers.component.ts b/src/app/lnd/routing/routing-peers/routing-peers.component.ts index 52d268a3..9a52eb9e 100644 --- a/src/app/lnd/routing/routing-peers/routing-peers.component.ts +++ b/src/app/lnd/routing/routing-peers/routing-peers.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core'; +import { Component, OnInit, ViewChild, OnDestroy, AfterViewInit } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; @@ -6,14 +6,14 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator'; -import { ForwardingEvent, RoutingPeers } from '../../../shared/models/lndModels'; +import { ForwardingEvent, RoutingPeers, SwitchRes } from '../../../shared/models/lndModels'; import { AlertTypeEnum, APICallStatusEnum, DataTypeEnum, getPaginatorLabel, PAGE_SIZE, PAGE_SIZE_OPTIONS, ScreenSizeEnum } from '../../../shared/services/consts-enums-functions'; -import { ApiCallsListLND } from '../../../shared/models/apiCallsPayload'; +import { ApiCallStatusPayload } from '../../../shared/models/apiCallsPayload'; import { LoggerService } from '../../../shared/services/logger.service'; import { CommonService } from '../../../shared/services/common.service'; - -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { openAlert } from '../../../store/rtl.actions'; +import { RTLState } from '../../../store/rtl.state'; +import { forwardingHistory } from '../../store/lnd.selector'; @Component({ selector: 'rtl-routing-peers', @@ -23,16 +23,16 @@ import * as fromRTLReducer from '../../../store/rtl.reducers'; { provide: MatPaginatorIntl, useValue: getPaginatorLabel('Peers') } ] }) -export class RoutingPeersComponent implements OnInit, OnDestroy { +export class RoutingPeersComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild('tableIn', { read: MatSort, static: false }) sortIn: MatSort; @ViewChild('tableOut', { read: MatSort, static: false }) sortOut: MatSort; - @ViewChild('paginatorIn', { static: false }) paginatorIn: MatPaginator|undefined; - @ViewChild('paginatorOut', { static: false }) paginatorOut: MatPaginator|undefined; + @ViewChild('paginatorIn', { static: false }) paginatorIn: MatPaginator | undefined; + @ViewChild('paginatorOut', { static: false }) paginatorOut: MatPaginator | undefined; public routingPeersData = []; public displayedColumns: any[] = []; - public RoutingPeersIncoming: any; - public RoutingPeersOutgoing: any; + public RoutingPeersIncoming = new MatTableDataSource([]); + public RoutingPeersOutgoing = new MatTableDataSource([]); public flgSticky = false; public pageSize = PAGE_SIZE; public pageSizeOptions = PAGE_SIZE_OPTIONS; @@ -41,11 +41,11 @@ export class RoutingPeersComponent implements OnInit, OnDestroy { public errorMessage = ''; public filterIn = ''; public filterOut = ''; - public apisCallStatus: ApiCallsListLND = null; + public apiCallStatus: ApiCallStatusPayload = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -63,26 +63,32 @@ export class RoutingPeersComponent implements OnInit, OnDestroy { } ngOnInit() { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(forwardingHistory).pipe(takeUntil(this.unSubs[0])). + subscribe((fhSelector: { forwardingHistory: SwitchRes, apiCallStatus: ApiCallStatusPayload }) => { this.errorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.GetForwardingHistory.status === APICallStatusEnum.ERROR) { - this.errorMessage = (typeof (this.apisCallStatus.GetForwardingHistory.message) === 'object') ? JSON.stringify(this.apisCallStatus.GetForwardingHistory.message) : this.apisCallStatus.GetForwardingHistory.message; + this.apiCallStatus = fhSelector.apiCallStatus; + if (fhSelector.apiCallStatus?.status === APICallStatusEnum.ERROR) { + this.errorMessage = (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message; } - if (rtlStore.forwardingHistory && rtlStore.forwardingHistory.forwarding_events) { - this.routingPeersData = rtlStore.forwardingHistory.forwarding_events; + if (fhSelector.forwardingHistory.forwarding_events) { + this.routingPeersData = fhSelector.forwardingHistory.forwarding_events; } else { this.routingPeersData = []; } if (this.routingPeersData.length > 0 && this.sortIn && this.paginatorIn && this.sortOut && this.paginatorOut) { this.loadRoutingPeersTable(this.routingPeersData); } - this.logger.info(rtlStore); + this.logger.info(fhSelector.apiCallStatus); + this.logger.info(fhSelector.forwardingHistory); }); } + ngAfterViewInit() { + if (this.routingPeersData.length > 0) { + this.loadRoutingPeersTable(this.routingPeersData); + } + } + onRoutingPeerClick(selRPeer: RoutingPeers, event: any, direction: string) { let alertTitle = ' Routing Information'; if (direction === 'in') { @@ -92,20 +98,22 @@ export class RoutingPeersComponent implements OnInit, OnDestroy { } const reorderedRoutingPeer = [ [{ key: 'chan_id', value: selRPeer.chan_id, title: 'Channel ID', width: 50, type: DataTypeEnum.STRING }, - { key: 'alias', value: selRPeer.alias, title: 'Peer Alias', width: 50, type: DataTypeEnum.STRING }], + { key: 'alias', value: selRPeer.alias, title: 'Peer Alias', width: 50, type: DataTypeEnum.STRING }], [{ key: 'events', value: selRPeer.events, title: 'Events', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'total_amount', value: selRPeer.total_amount, title: 'Total Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'total_amount', value: selRPeer.total_amount, title: 'Total Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: alertTitle, - message: reorderedRoutingPeer - } })); + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: alertTitle, + message: reorderedRoutingPeer + } + } + })); } loadRoutingPeersTable(forwardingEvents: ForwardingEvent[]) { - this.filterIn = ''; - this.filterOut = ''; if (forwardingEvents.length > 0) { const results = this.groupRoutingPeers(forwardingEvents); this.RoutingPeersIncoming = new MatTableDataSource(results[0]); @@ -123,6 +131,8 @@ export class RoutingPeersComponent implements OnInit, OnDestroy { this.RoutingPeersIncoming = new MatTableDataSource([]); this.RoutingPeersOutgoing = new MatTableDataSource([]); } + this.applyIncomingFilter(); + this.applyOutgoingFilter(); } groupRoutingPeers(forwardingEvents: ForwardingEvent[]) { @@ -147,12 +157,12 @@ export class RoutingPeersComponent implements OnInit, OnDestroy { return [this.commonService.sortDescByKey(incomingResults, 'total_amount'), this.commonService.sortDescByKey(outgoingResults, 'total_amount')]; } - applyIncomingFilter(selFilter: any) { - this.RoutingPeersIncoming.filter = selFilter.value.trim().toLowerCase(); + applyIncomingFilter() { + this.RoutingPeersIncoming.filter = this.filterIn.toLowerCase(); } - applyOutgoingFilter(selFilter: any) { - this.RoutingPeersOutgoing.filter = selFilter.value.trim().toLowerCase(); + applyOutgoingFilter() { + this.RoutingPeersOutgoing.filter = this.filterOut.toLowerCase(); } ngOnDestroy() { diff --git a/src/app/lnd/routing/routing.component.spec.ts b/src/app/lnd/routing/routing.component.spec.ts index 01cc1393..c85e78ef 100644 --- a/src/app/lnd/routing/routing.component.spec.ts +++ b/src/app/lnd/routing/routing.component.spec.ts @@ -4,7 +4,10 @@ import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; import { SharedModule } from '../../shared/shared.module'; -import { RTLReducer } from '../../store/rtl.reducers'; +import { RootReducer } from '../../store/rtl.reducers'; +import { LNDReducer } from '../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../eclair/store/ecl.reducers'; import { RoutingComponent } from './routing.component'; describe('RoutingComponent', () => { @@ -18,12 +21,7 @@ describe('RoutingComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/lnd/routing/routing.component.ts b/src/app/lnd/routing/routing.component.ts index d4430e4b..2b5d2f2f 100644 --- a/src/app/lnd/routing/routing.component.ts +++ b/src/app/lnd/routing/routing.component.ts @@ -5,8 +5,8 @@ import { takeUntil, filter } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { faMapSigns } from '@fortawesome/free-solid-svg-icons'; -import * as LNDActions from '../store/lnd.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { getForwardingHistory, setForwardingHistory } from '../store/lnd.actions'; @Component({ selector: 'rtl-routing', @@ -25,30 +25,32 @@ export class RoutingComponent implements OnInit, OnDestroy { public activeLink = this.links[0].link; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private router: Router) {} + constructor(private store: Store, private router: Router) { } ngOnInit() { this.onEventsFetch(); const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; }); } onEventsFetch() { - this.store.dispatch(new LNDActions.SetForwardingHistory({})); + this.store.dispatch(setForwardingHistory({ payload: { forwarding_events: [] } })); if (!this.endDate) { this.endDate = this.today; } if (!this.startDate) { this.startDate = new Date(this.endDate.getFullYear(), this.endDate.getMonth() - 1, this.endDate.getDate() + 1, 0, 0, 0); } - this.store.dispatch(new LNDActions.GetForwardingHistory({ - end_time: Math.round(this.endDate.getTime() / 1000).toString(), - start_time: Math.round(this.startDate.getTime() / 1000).toString() + this.store.dispatch(getForwardingHistory({ + payload: { + end_time: Math.round(this.endDate.getTime() / 1000).toString(), + start_time: Math.round(this.startDate.getTime() / 1000).toString() + } })); } @@ -59,7 +61,7 @@ export class RoutingComponent implements OnInit, OnDestroy { ngOnDestroy() { this.resetData(); - this.store.dispatch(new LNDActions.SetForwardingHistory({})); + this.store.dispatch(setForwardingHistory({ payload: { forwarding_events: [] } })); this.unSubs.forEach((completeSub) => { completeSub.next(null); completeSub.complete(); diff --git a/src/app/lnd/sign-verify-message/sign/sign.component.spec.ts b/src/app/lnd/sign-verify-message/sign/sign.component.spec.ts index 4e0354c9..4e33d5e7 100644 --- a/src/app/lnd/sign-verify-message/sign/sign.component.spec.ts +++ b/src/app/lnd/sign-verify-message/sign/sign.component.spec.ts @@ -6,7 +6,10 @@ import { DataService } from '../../../shared/services/data.service'; import { SignComponent } from './sign.component'; import { SharedModule } from '../../../shared/shared.module'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { mockDataService, mockLoggerService } from '../../../shared/test-helpers/mock-services'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @@ -20,12 +23,7 @@ describe('SignComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: LoggerService, useClass: mockLoggerService }, diff --git a/src/app/lnd/sign-verify-message/verify/verify.component.spec.ts b/src/app/lnd/sign-verify-message/verify/verify.component.spec.ts index 33e422b8..a2a57311 100644 --- a/src/app/lnd/sign-verify-message/verify/verify.component.spec.ts +++ b/src/app/lnd/sign-verify-message/verify/verify.component.spec.ts @@ -6,7 +6,10 @@ import { DataService } from '../../../shared/services/data.service'; import { VerifyComponent } from './verify.component'; import { SharedModule } from '../../../shared/shared.module'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { mockDataService, mockLoggerService } from '../../../shared/test-helpers/mock-services'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @@ -20,12 +23,7 @@ describe('VerifyComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: LoggerService, useClass: mockLoggerService }, diff --git a/src/app/lnd/store/lnd.actions.ts b/src/app/lnd/store/lnd.actions.ts index 6336f045..e635fcbc 100644 --- a/src/app/lnd/store/lnd.actions.ts +++ b/src/app/lnd/store/lnd.actions.ts @@ -1,586 +1,149 @@ -import { Action } from '@ngrx/store'; +import { createAction, props } from '@ngrx/store'; +import { LNDActions } from '../../shared/services/consts-enums-functions'; import { ApiCallStatusPayload } from '../../shared/models/apiCallsPayload'; import { SelNodeChild } from '../../shared/models/RTLconfig'; -import { GetInfo, Peer, Balance, NetworkInfo, Fees, Channel, Invoice, ListInvoices, - ChannelsTransaction, PendingChannels, ClosedChannel, Transaction, SwitchReq, - SwitchRes, QueryRoutes, PendingChannelsGroup, LightningNode, UTXO, ListPayments } - from '../../shared/models/lndModels'; - -export const RESET_LND_STORE = 'RESET_LND_STORE'; -export const UPDATE_API_CALL_STATUS_LND = 'UPDATE_API_CALL_STATUS_LND'; -export const SET_CHILD_NODE_SETTINGS_LND = 'SET_CHILD_NODE_SETTINGS_LND'; -export const FETCH_INFO_LND = 'FETCH_INFO_LND'; -export const SET_INFO_LND = 'SET_INFO_LND'; -export const FETCH_PEERS_LND = 'FETCH_PEERS_LND'; -export const SET_PEERS_LND = 'SET_PEERS_LND'; -export const SAVE_NEW_PEER_LND = 'SAVE_NEW_PEER_LND'; -export const NEWLY_ADDED_PEER_LND = 'NEWLY_ADDED_PEER_LND'; -export const DETACH_PEER_LND = 'DETACH_PEER_LND'; -export const REMOVE_PEER_LND = 'REMOVE_PEER_LND'; -export const SAVE_NEW_INVOICE_LND = 'SAVE_NEW_INVOICE_LND'; -export const NEWLY_SAVED_INVOICE_LND = 'NEWLY_SAVED_INVOICE_LND'; -export const ADD_INVOICE_LND = 'ADD_INVOICE_LND'; -export const FETCH_FEES_LND = 'FETCH_FEES_LND'; -export const SET_FEES_LND = 'SET_FEES_LND'; -export const FETCH_BALANCE_LND = 'FETCH_BALANCE_LND'; -export const SET_BALANCE_LND = 'SET_BALANCE_LND'; -export const FETCH_NETWORK_LND = 'FETCH_NETWORK_LND'; -export const SET_NETWORK_LND = 'SET_NETWORK_LND'; -export const FETCH_ALL_CHANNELS_LND = 'FETCH_ALL_CHANNELS_LND'; -export const FETCH_PENDING_CHANNELS_LND = 'FETCH_PENDING_CHANNELS_LND'; -export const FETCH_CLOSED_CHANNELS_LND = 'FETCH_CLOSED_CHANNELS_LND'; -export const SET_ALL_CHANNELS_LND = 'SET_ALL_CHANNELS_LND'; -export const SET_PENDING_CHANNELS_LND = 'SET_PENDING_CHANNELS_LND'; -export const SET_CLOSED_CHANNELS_LND = 'SET_CLOSED_CHANNELS_LND'; -export const UPDATE_CHANNELS_LND = 'UPDATE_CHANNELS_LND'; -export const SAVE_NEW_CHANNEL_LND = 'SAVE_NEW_CHANNEL_LND'; -export const CLOSE_CHANNEL_LND = 'CLOSE_CHANNEL_LND'; -export const REMOVE_CHANNEL_LND = 'REMOVE_CHANNEL_LND'; -export const BACKUP_CHANNELS_LND = 'BACKUP_CHANNELS_LND'; -export const VERIFY_CHANNELS_LND = 'VERIFY_CHANNELS_LND'; -export const BACKUP_CHANNELS_RES_LND = 'BACKUP_CHANNELS_RES_LND'; -export const VERIFY_CHANNELS_RES_LND = 'VERIFY_CHANNELS_RES_LND'; -export const RESTORE_CHANNELS_LIST_LND = 'RESTORE_CHANNELS_LIST_LND'; -export const SET_RESTORE_CHANNELS_LIST_LND = 'SET_RESTORE_CHANNELS_LIST_LND'; -export const RESTORE_CHANNELS_LND = 'RESTORE_CHANNELS_LND'; -export const RESTORE_CHANNELS_RES_LND = 'RESTORE_CHANNELS_RES_LND'; -export const FETCH_INVOICES_LND = 'FETCH_INVOICES_LND'; -export const SET_INVOICES_LND = 'SET_INVOICES_LND'; -export const UPDATE_INVOICE_LND = 'UPDATE_INVOICE_LND'; -export const SET_TOTAL_INVOICES_LND = 'SET_TOTAL_INVOICES_LND'; -export const FETCH_TRANSACTIONS_LND = 'FETCH_TRANSACTIONS_LND'; -export const SET_TRANSACTIONS_LND = 'SET_TRANSACTIONS_LND'; -export const FETCH_UTXOS_LND = 'FETCH_UTXOS_LND'; -export const SET_UTXOS_LND = 'SET_UTXOS_LND'; -export const FETCH_PAYMENTS_LND = 'FETCH_PAYMENTS_LND'; -export const SET_PAYMENTS_LND = 'SET_PAYMENTS_LND'; -export const SEND_PAYMENT_LND = 'SEND_PAYMENT_LND'; -export const SEND_PAYMENT_STATUS_LND = 'SEND_PAYMENT_STATUS_LND'; -export const FETCH_GRAPH_NODE_LND = 'FETCH_GRAPH_NODE_LND'; -export const SET_GRAPH_NODE_LND = 'SET_GRAPH_NODE_LND'; -export const GET_NEW_ADDRESS_LND = 'GET_NEW_ADDRESS_LND'; -export const SET_NEW_ADDRESS_LND = 'SET_NEW_ADDRESS_LND'; -export const SET_CHANNEL_TRANSACTION_LND = 'SET_CHANNEL_TRANSACTION_LND'; -export const SET_CHANNEL_TRANSACTION_RES_LND = 'SET_CHANNEL_TRANSACTION_RES_LND'; -export const GEN_SEED_LND = 'GEN_SEED_LND'; -export const GEN_SEED_RESPONSE_LND = 'GEN_SEED_RESPONSE_LND'; -export const INIT_WALLET_LND = 'INIT_WALLET_LND'; -export const INIT_WALLET_RESPONSE_LND = 'INIT_WALLET_RESPONSE_LND'; -export const UNLOCK_WALLET_LND = 'UNLOCK_WALLET_LND'; -export const PEER_LOOKUP_LND = 'PEER_LOOKUP_LND'; -export const CHANNEL_LOOKUP_LND = 'CHANNEL_LOOKUP_LND'; -export const INVOICE_LOOKUP_LND = 'INVOICE_LOOKUP_LND'; -export const SET_LOOKUP_LND = 'SET_LOOKUP_LND'; -export const GET_FORWARDING_HISTORY_LND = 'GET_FORWARDING_HISTORY_LND'; -export const SET_FORWARDING_HISTORY_LND = 'SET_FORWARDING_HISTORY_LND'; -export const GET_QUERY_ROUTES_LND = 'GET_QUERY_ROUTES_LND'; -export const SET_QUERY_ROUTES_LND = 'SET_QUERY_ROUTES_LND'; -export const GET_ALL_LIGHTNING_TRANSATIONS_LND = 'GET_ALL_LIGHTNING_TRANSATIONS_LND'; -export const SET_ALL_LIGHTNING_TRANSATIONS_LND = 'SET_ALL_LIGHTNING_TRANSATIONS_LND'; +import { + GetInfo, Peer, NetworkInfo, Fees, Channel, Invoice, ListInvoices, ChannelsTransaction, ClosedChannel, Transaction, SwitchReq, + SwitchRes, QueryRoutes, LightningNode, UTXO, ListPayments, SavePeer, SaveInvoice, SaveChannel, CloseChannel, FetchInvoices, FetchPayments, SendPayment, GetNewAddress, GetQueryRoutes, InitWallet, ChannelLookup, SetRestoreChannelsList, NewlyAddedPeer, BlockchainBalance, SetPendingChannels, BackupChannels, SetAllLightningTransactions +} from '../../shared/models/lndModels'; -export class UpdateAPICallStatus implements Action { +export const updateLNDAPICallStatus = createAction(LNDActions.UPDATE_API_CALL_STATUS_LND, props<{ payload: ApiCallStatusPayload }>()); - readonly type = UPDATE_API_CALL_STATUS_LND; - constructor(public payload: ApiCallStatusPayload) { } +export const resetLNDStore = createAction(LNDActions.RESET_LND_STORE, props<{ payload: SelNodeChild }>()); -} +export const setChildNodeSettingsLND = createAction(LNDActions.SET_CHILD_NODE_SETTINGS_LND, props<{ payload: SelNodeChild }>()); -export class ResetLNDStore implements Action { +export const fetchInfoLND = createAction(LNDActions.FETCH_INFO_LND, props<{ payload: { loadPage: string } }>()); - readonly type = RESET_LND_STORE; - constructor(public payload: SelNodeChild) {} +export const setInfo = createAction(LNDActions.SET_INFO_LND, props<{ payload: GetInfo }>()); -} +export const fetchPeers = createAction(LNDActions.FETCH_PEERS_LND); -export class SetChildNodeSettings implements Action { +export const setPeers = createAction(LNDActions.SET_PEERS_LND, props<{ payload: Peer[] }>()); - readonly type = SET_CHILD_NODE_SETTINGS_LND; - constructor(public payload: SelNodeChild) {} +export const saveNewPeer = createAction(LNDActions.SAVE_NEW_PEER_LND, props<{ payload: SavePeer }>()); -} +export const newlyAddedPeer = createAction(LNDActions.NEWLY_ADDED_PEER_LND, props<{ payload: NewlyAddedPeer }>()); -export class FetchInfo implements Action { +export const detachPeer = createAction(LNDActions.DETACH_PEER_LND, props<{ payload: { pubkey: string } }>()); - readonly type = FETCH_INFO_LND; - constructor(public payload: {loadPage: string}) {} +export const removePeer = createAction(LNDActions.REMOVE_PEER_LND, props<{ payload: { pubkey: string } }>()); -} +export const saveNewInvoice = createAction(LNDActions.SAVE_NEW_INVOICE_LND, props<{ payload: SaveInvoice }>()); -export class SetInfo implements Action { +export const newlySavedInvoice = createAction(LNDActions.NEWLY_SAVED_INVOICE_LND, props<{ payload: { paymentRequest: string } }>()); - readonly type = SET_INFO_LND; - constructor(public payload: GetInfo) {} +export const addInvoice = createAction(LNDActions.ADD_INVOICE_LND, props<{ payload: Invoice }>()); -} +export const fetchFees = createAction(LNDActions.FETCH_FEES_LND); -export class FetchPeers implements Action { +export const setFees = createAction(LNDActions.SET_FEES_LND, props<{ payload: Fees }>()); - readonly type = FETCH_PEERS_LND; +export const fetchBalanceBlockchain = createAction(LNDActions.FETCH_BLOCKCHAIN_BALANCE_LND); -} +export const setBalanceBlockchain = createAction(LNDActions.SET_BLOCKCHAIN_BALANCE_LND, props<{ payload: BlockchainBalance }>()); -export class SetPeers implements Action { +export const fetchNetwork = createAction(LNDActions.FETCH_NETWORK_LND); - readonly type = SET_PEERS_LND; - constructor(public payload: Peer[]) {} +export const setNetwork = createAction(LNDActions.SET_NETWORK_LND, props<{ payload: NetworkInfo }>()); -} +export const fetchChannels = createAction(LNDActions.FETCH_CHANNELS_LND); -export class SaveNewPeer implements Action { +export const setChannels = createAction(LNDActions.SET_CHANNELS_LND, props<{ payload: Channel[] }>()); - readonly type = SAVE_NEW_PEER_LND; - constructor(public payload: {pubkey: string, host: string, perm: boolean}) {} +export const fetchPendingChannels = createAction(LNDActions.FETCH_PENDING_CHANNELS_LND); -} +export const setPendingChannels = createAction(LNDActions.SET_PENDING_CHANNELS_LND, props<{ payload: SetPendingChannels }>()); -export class NewlyAddedPeer implements Action { +export const fetchClosedChannels = createAction(LNDActions.FETCH_CLOSED_CHANNELS_LND); - readonly type = NEWLY_ADDED_PEER_LND; - constructor(public payload: { peer: Peer, balance: number}) {} +export const setClosedChannels = createAction(LNDActions.SET_CLOSED_CHANNELS_LND, props<{ payload: ClosedChannel[] }>()); -} +export const updateChannel = createAction(LNDActions.UPDATE_CHANNEL_LND, props<{ payload: any }>()); -export class DetachPeer implements Action { +export const saveNewChannel = createAction(LNDActions.SAVE_NEW_CHANNEL_LND, props<{ payload: SaveChannel }>()); - readonly type = DETACH_PEER_LND; - constructor(public payload: {pubkey: string}) {} +export const closeChannel = createAction(LNDActions.CLOSE_CHANNEL_LND, props<{ payload: CloseChannel }>()); -} +export const removeChannel = createAction(LNDActions.REMOVE_CHANNEL_LND, props<{ payload: { channelPoint: string } }>()); -export class RemovePeer implements Action { +export const backupChannels = createAction(LNDActions.BACKUP_CHANNELS_LND, props<{ payload: BackupChannels }>()); - readonly type = REMOVE_PEER_LND; - constructor(public payload: {pubkey: string}) {} +export const verifyChannel = createAction(LNDActions.VERIFY_CHANNEL_LND, props<{ payload: { channelPoint: string } }>()); -} +export const backupChannelsRes = createAction(LNDActions.BACKUP_CHANNELS_RES_LND, props<{ payload: string }>()); -export class SaveNewInvoice implements Action { +export const verifyChannelRes = createAction(LNDActions.VERIFY_CHANNEL_RES_LND, props<{ payload: string }>()); - readonly type = SAVE_NEW_INVOICE_LND; - constructor(public payload: {uiMessage: string, memo: string, invoiceValue: number, private: boolean, expiry: number, pageSize: number, openModal: boolean}) {} +export const restoreChannelsList = createAction(LNDActions.RESTORE_CHANNELS_LIST_LND); -} +export const setRestoreChannelsList = createAction(LNDActions.SET_RESTORE_CHANNELS_LIST_LND, props<{ payload: SetRestoreChannelsList }>()); -export class NewlySavedInvoice implements Action { +export const restoreChannels = createAction(LNDActions.RESTORE_CHANNELS_LND, props<{ payload: { channelPoint: string } }>()); - readonly type = NEWLY_SAVED_INVOICE_LND; - constructor(public payload: { paymentRequest: string}) {} +export const restoreChannelsRes = createAction(LNDActions.RESTORE_CHANNELS_RES_LND, props<{ payload: string }>()); -} +export const fetchInvoices = createAction(LNDActions.FETCH_INVOICES_LND, props<{ payload: FetchInvoices }>()); -export class AddInvoice implements Action { +export const setInvoices = createAction(LNDActions.SET_INVOICES_LND, props<{ payload: ListInvoices }>()); - readonly type = ADD_INVOICE_LND; - constructor(public payload: Invoice) {} +export const updateInvoice = createAction(LNDActions.UPDATE_INVOICE_LND, props<{ payload: Invoice }>()); -} +export const fetchTransactions = createAction(LNDActions.FETCH_TRANSACTIONS_LND); -export class FetchFees implements Action { +export const setTransactions = createAction(LNDActions.SET_TRANSACTIONS_LND, props<{ payload: Transaction[] }>()); - readonly type = FETCH_FEES_LND; +export const fetchUTXOs = createAction(LNDActions.FETCH_UTXOS_LND); -} +export const setUTXOs = createAction(LNDActions.SET_UTXOS_LND, props<{ payload: UTXO[] }>()); -export class SetFees implements Action { +export const fetchPayments = createAction(LNDActions.FETCH_PAYMENTS_LND, props<{ payload: FetchPayments }>()); - readonly type = SET_FEES_LND; - constructor(public payload: Fees) {} +export const setPayments = createAction(LNDActions.SET_PAYMENTS_LND, props<{ payload: ListPayments }>()); -} +export const sendPayment = createAction(LNDActions.SEND_PAYMENT_LND, props<{ payload: SendPayment }>()); -export class FetchBalance implements Action { +export const sendPaymentStatus = createAction(LNDActions.SEND_PAYMENT_STATUS_LND, props<{ payload: any }>()); - readonly type = FETCH_BALANCE_LND; - constructor(public payload: string) {} // Payload = routeParam +export const fetchGraphNode = createAction(LNDActions.FETCH_GRAPH_NODE_LND, props<{ payload: { pubkey: string } }>()); -} +export const setGraphNode = createAction(LNDActions.SET_GRAPH_NODE_LND, props<{ payload: { node: LightningNode } }>()); -export class SetBalance implements Action { +export const getNewAddress = createAction(LNDActions.GET_NEW_ADDRESS_LND, props<{ payload: GetNewAddress }>()); - readonly type = SET_BALANCE_LND; - constructor(public payload: {target: string, balance: Balance}) {} +export const setNewAddress = createAction(LNDActions.SET_NEW_ADDRESS_LND, props<{ payload: string }>()); -} +export const setChannelTransaction = createAction(LNDActions.SET_CHANNEL_TRANSACTION_LND, props<{ payload: ChannelsTransaction }>()); -export class FetchNetwork implements Action { +export const setChannelTransactionRes = createAction(LNDActions.SET_CHANNEL_TRANSACTION_RES_LND, props<{ payload: any }>()); - readonly type = FETCH_NETWORK_LND; +export const genSeed = createAction(LNDActions.GEN_SEED_LND, props<{ payload: string }>()); -} +export const genSeedResponse = createAction(LNDActions.GEN_SEED_RESPONSE_LND, props<{ payload: Array }>()); -export class SetNetwork implements Action { +export const initWallet = createAction(LNDActions.INIT_WALLET_LND, props<{ payload: InitWallet }>()); - readonly type = SET_NETWORK_LND; - constructor(public payload: NetworkInfo) {} +export const initWalletResponse = createAction(LNDActions.INIT_WALLET_RESPONSE_LND, props<{ payload: string }>()); -} +export const unlockWallet = createAction(LNDActions.UNLOCK_WALLET_LND, props<{ payload: { pwd: string } }>()); -export class FetchAllChannels implements Action { +export const peerLookup = createAction(LNDActions.PEER_LOOKUP_LND, props<{ payload: string }>()); - readonly type = FETCH_ALL_CHANNELS_LND; +export const channelLookup = createAction(LNDActions.CHANNEL_LOOKUP_LND, props<{ payload: ChannelLookup }>()); -} +export const invoiceLookup = createAction(LNDActions.INVOICE_LOOKUP_LND, props<{ payload: string }>()); -export class SetAllChannels implements Action { +export const setLookup = createAction(LNDActions.SET_LOOKUP_LND, props<{ payload: any }>()); - readonly type = SET_ALL_CHANNELS_LND; - constructor(public payload: Channel[]) {} +export const getForwardingHistory = createAction(LNDActions.GET_FORWARDING_HISTORY_LND, props<{ payload: SwitchReq }>()); -} +export const setForwardingHistory = createAction(LNDActions.SET_FORWARDING_HISTORY_LND, props<{ payload: SwitchRes }>()); -export class FetchPendingChannels implements Action { +export const getQueryRoutes = createAction(LNDActions.GET_QUERY_ROUTES_LND, props<{ payload: GetQueryRoutes }>()); - readonly type = FETCH_PENDING_CHANNELS_LND; +export const setQueryRoutes = createAction(LNDActions.SET_QUERY_ROUTES_LND, props<{ payload: QueryRoutes }>()); -} +export const getAllLightningTransactions = createAction(LNDActions.GET_ALL_LIGHTNING_TRANSATIONS_LND); -export class SetPendingChannels implements Action { - - readonly type = SET_PENDING_CHANNELS_LND; - constructor(public payload: {channels: PendingChannels, pendingChannels: PendingChannelsGroup}) {} - -} - -export class FetchClosedChannels implements Action { - - readonly type = FETCH_CLOSED_CHANNELS_LND; - -} - -export class SetClosedChannels implements Action { - - readonly type = SET_CLOSED_CHANNELS_LND; - constructor(public payload: ClosedChannel[]) {} - -} - -export class UpdateChannels implements Action { - - readonly type = UPDATE_CHANNELS_LND; - constructor(public payload: any) {} - -} - -export class SaveNewChannel implements Action { - - readonly type = SAVE_NEW_CHANNEL_LND; - constructor(public payload: {selectedPeerPubkey: string, fundingAmount: number, private: boolean, transType: string, transTypeValue: string, spendUnconfirmed: boolean}) {} - -} - -export class CloseChannel implements Action { - - readonly type = CLOSE_CHANNEL_LND; - constructor(public payload: {channelPoint: string, forcibly: boolean, targetConf?: number, satPerByte?: number}) {} - -} - -export class RemoveChannel implements Action { - - readonly type = REMOVE_CHANNEL_LND; - constructor(public payload: {channelPoint: string}) {} - -} - -export class BackupChannels implements Action { - - readonly type = BACKUP_CHANNELS_LND; - constructor(public payload: {uiMessage: string, channelPoint: string, showMessage: string}) {} - -} - -export class VerifyChannels implements Action { - - readonly type = VERIFY_CHANNELS_LND; - constructor(public payload: {channelPoint: string}) {} - -} - -export class BackupChannelsRes implements Action { - - readonly type = BACKUP_CHANNELS_RES_LND; - constructor(public payload: string) {} - -} - -export class VerifyChannelsRes implements Action { - - readonly type = VERIFY_CHANNELS_RES_LND; - constructor(public payload: string) {} - -} - -export class RestoreChannelsList implements Action { - - readonly type = RESTORE_CHANNELS_LIST_LND; - -} - -export class SetRestoreChannelsList implements Action { - - readonly type = SET_RESTORE_CHANNELS_LIST_LND; - constructor(public payload: {all_restore_exists: boolean, files: []}) {} - -} - -export class RestoreChannels implements Action { - - readonly type = RESTORE_CHANNELS_LND; - constructor(public payload: {channelPoint: string}) {} - -} - -export class RestoreChannelsRes implements Action { - - readonly type = RESTORE_CHANNELS_RES_LND; - constructor(public payload: string) {} - -} - -export class FetchInvoices implements Action { - - readonly type = FETCH_INVOICES_LND; - constructor(public payload: {num_max_invoices?: number, index_offset?: number, reversed?: boolean}) {} - -} - -export class SetInvoices implements Action { - - readonly type = SET_INVOICES_LND; - constructor(public payload: ListInvoices) {} - -} - -export class UpdateInvoice implements Action { - - readonly type = UPDATE_INVOICE_LND; - constructor(public payload: Invoice) {} - -} - -export class SetTotalInvoices implements Action { - - readonly type = SET_TOTAL_INVOICES_LND; - constructor(public payload: number) {} - -} - -export class FetchTransactions implements Action { - - readonly type = FETCH_TRANSACTIONS_LND; - -} - -export class SetTransactions implements Action { - - readonly type = SET_TRANSACTIONS_LND; - constructor(public payload: Transaction[]) {} - -} - -export class FetchUTXOs implements Action { - - readonly type = FETCH_UTXOS_LND; - -} - -export class SetUTXOs implements Action { - - readonly type = SET_UTXOS_LND; - constructor(public payload: UTXO[]) {} - -} - -export class FetchPayments implements Action { - - readonly type = FETCH_PAYMENTS_LND; - constructor(public payload: {max_payments?: number, index_offset?: number, reversed?: boolean}) {} - -} - -export class SetPayments implements Action { - - readonly type = SET_PAYMENTS_LND; - constructor(public payload: ListPayments) {} - -} - -export class SendPayment implements Action { - - readonly type = SEND_PAYMENT_LND; - constructor(public payload: { uiMessage: string, fromDialog: boolean, paymentReq: string, paymentAmount?: number, outgoingChannel?: Channel, feeLimitType?: {id: string, name: string}, feeLimit?: number, allowSelfPayment?: boolean, lastHopPubkey?: string }) {} - -} - -export class SendPaymentStatus implements Action { - - readonly type = SEND_PAYMENT_STATUS_LND; - constructor(public payload: any) {} - -} - -export class FetchGraphNode implements Action { - - readonly type = FETCH_GRAPH_NODE_LND; - constructor(public payload: {pubkey: string}) {} - -} - -export class SetGraphNode implements Action { - - readonly type = SET_GRAPH_NODE_LND; - constructor(public payload: {node: LightningNode}) {} - -} - -export class GetNewAddress implements Action { - - readonly type = GET_NEW_ADDRESS_LND; - constructor(public payload: { addressId?: string, addressCode?: string, addressTp?: string, addressDetails?: string}) {} - -} - -export class SetNewAddress implements Action { - - readonly type = SET_NEW_ADDRESS_LND; - constructor(public payload: string) {} // Payload = newAddress - -} - -export class SetChannelTransaction implements Action { - - readonly type = SET_CHANNEL_TRANSACTION_LND; - constructor(public payload: ChannelsTransaction) {} - -} - -export class SetChannelTransactionRes implements Action { - - readonly type = SET_CHANNEL_TRANSACTION_RES_LND; - constructor(public payload: any) {} - -} - -export class GenSeed implements Action { - - readonly type = GEN_SEED_LND; - constructor(public payload: string) {} - -} - -export class GenSeedResponse implements Action { - - readonly type = GEN_SEED_RESPONSE_LND; - constructor(public payload: Array) {} - -} - -export class InitWallet implements Action { - - readonly type = INIT_WALLET_LND; - constructor(public payload: {pwd: string, cipher?: Array, passphrase?: string}) {} - -} - -export class InitWalletResponse implements Action { - - readonly type = INIT_WALLET_RESPONSE_LND; - constructor(public payload: string) {} - -} - -export class UnlockWallet implements Action { - - readonly type = UNLOCK_WALLET_LND; - constructor(public payload: {pwd: string}) {} - -} - -export class PeerLookup implements Action { - - readonly type = PEER_LOOKUP_LND; - constructor(public payload: string) {} // Payload = pubkey - -} - -export class ChannelLookup implements Action { - - readonly type = CHANNEL_LOOKUP_LND; - constructor(public payload: {uiMessage: string, channelID: string}) {} - -} - -export class InvoiceLookup implements Action { - - readonly type = INVOICE_LOOKUP_LND; - constructor(public payload: string) {} // Payload = rHashStr - -} - -export class SetLookup implements Action { - - readonly type = SET_LOOKUP_LND; - constructor(public payload: any) {} // Payload = lookup Response (Peer/Channel/Invoice) - -} - -export class GetForwardingHistory implements Action { - - readonly type = GET_FORWARDING_HISTORY_LND; - constructor(public payload: SwitchReq) {} - -} - -export class SetForwardingHistory implements Action { - - readonly type = SET_FORWARDING_HISTORY_LND; - constructor(public payload: SwitchRes) {} - -} - -export class GetQueryRoutes implements Action { - - readonly type = GET_QUERY_ROUTES_LND; - constructor(public payload: {destPubkey: string, amount: number, outgoingChanId?: string}) {} - -} - -export class SetQueryRoutes implements Action { - - readonly type = SET_QUERY_ROUTES_LND; - constructor(public payload: QueryRoutes) {} - -} - -export class GetAllLightningTransactions implements Action { - - readonly type = GET_ALL_LIGHTNING_TRANSATIONS_LND; - -} - -export class SetAllLightningTransactions implements Action { - - readonly type = SET_ALL_LIGHTNING_TRANSATIONS_LND; - constructor(public payload: { paymentsAll: ListPayments, invoicesAll: ListInvoices }) {} - -} - -export type LNDActions = UpdateAPICallStatus | ResetLNDStore | SetChildNodeSettings | -FetchInfo | SetInfo | FetchPeers | SetPeers | NewlyAddedPeer | DetachPeer | SaveNewPeer | RemovePeer | -AddInvoice | SaveNewInvoice | NewlySavedInvoice | GetForwardingHistory | SetForwardingHistory | -FetchFees | SetFees | -FetchBalance | SetBalance | -FetchNetwork | SetNetwork | -FetchAllChannels | SetAllChannels | FetchPendingChannels | SetPendingChannels | FetchClosedChannels | SetClosedChannels | UpdateChannels | -SaveNewChannel | CloseChannel | RemoveChannel | -BackupChannels | VerifyChannels | BackupChannelsRes | VerifyChannelsRes | -RestoreChannels | RestoreChannelsRes | RestoreChannelsList | SetRestoreChannelsList | -FetchTransactions | SetTransactions | FetchUTXOs | SetUTXOs | -FetchInvoices | SetInvoices | UpdateInvoice | SetTotalInvoices | -FetchPayments | SetPayments | SendPayment | SendPaymentStatus | -GetAllLightningTransactions | SetAllLightningTransactions | -FetchGraphNode | SetGraphNode | GetQueryRoutes | SetQueryRoutes | -GetNewAddress | SetNewAddress | SetChannelTransaction | SetChannelTransactionRes | -GenSeed | GenSeedResponse | InitWallet | InitWalletResponse | UnlockWallet | -PeerLookup | ChannelLookup | InvoiceLookup | SetLookup; +export const setAllLightningTransactions = createAction(LNDActions.SET_ALL_LIGHTNING_TRANSATIONS_LND, props<{ payload: SetAllLightningTransactions }>()); diff --git a/src/app/lnd/store/lnd.effects.ts b/src/app/lnd/store/lnd.effects.ts index e1c67f8c..2fe58a54 100644 --- a/src/app/lnd/store/lnd.effects.ts +++ b/src/app/lnd/store/lnd.effects.ts @@ -12,15 +12,17 @@ import { environment, API_URL } from '../../../environments/environment'; import { LoggerService } from '../../shared/services/logger.service'; import { CommonService } from '../../shared/services/common.service'; import { SessionService } from '../../shared/services/session.service'; -import { GetInfo, Fees, Balance, NetworkInfo, GraphNode, Transaction, SwitchReq, ListInvoices, PendingChannelsGroup, UTXO, ListPayments } from '../../shared/models/lndModels'; +import { GetInfo, Fees, BlockchainBalance, NetworkInfo, GraphNode, Transaction, SwitchReq, ListInvoices, PendingChannelsSummary, UTXO, ListPayments, SavePeer, SaveInvoice, SaveChannel, CloseChannel, FetchInvoices, FetchPayments, SendPayment, LightningNode, GetNewAddress, ChannelsTransaction, GetQueryRoutes, QueryRoutes, InitWallet, ChannelLookup, SetRestoreChannelsList } from '../../shared/models/lndModels'; import { InvoiceInformationComponent } from '../transactions/invoice-information-modal/invoice-information.component'; import { ErrorMessageComponent } from '../../shared/components/data-modal/error-message/error-message.component'; -import { AlertTypeEnum, APICallStatusEnum, FEE_LIMIT_TYPES, PAGE_SIZE, UI_MESSAGES } from '../../shared/services/consts-enums-functions'; +import { RTLActions, LNDActions, AlertTypeEnum, APICallStatusEnum, FEE_LIMIT_TYPES, PAGE_SIZE, UI_MESSAGES, LNDWSEventTypeEnum } from '../../shared/services/consts-enums-functions'; +import { closeAllDialogs, closeSpinner, logout, openAlert, openSnackBar, openSpinner, setApiUrl, setNodeData } from '../../store/rtl.actions'; +import { RTLState } from '../../store/rtl.state'; -import * as RTLActions from '../../store/rtl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; -import * as LNDActions from './lnd.actions'; -import * as fromLNDReducers from '../store/lnd.reducers'; +import { backupChannels, fetchBalanceBlockchain, fetchClosedChannels, fetchFees, fetchInfoLND, fetchInvoices, fetchNetwork, fetchPayments, fetchPeers, fetchPendingChannels, fetchTransactions, getAllLightningTransactions, setForwardingHistory, setLookup, setPeers, setQueryRoutes, setRestoreChannelsList, updateLNDAPICallStatus, updateInvoice, fetchChannels } from './lnd.actions'; +import { allAPIsCallStatus, lndNodeInformation } from './lnd.selector'; +import { ApiCallsListLND } from '../../shared/models/apiCallsPayload'; +import { WebSocketClientService } from '../../shared/services/web-socket.service'; @Injectable() export class LNDEffects implements OnDestroy { @@ -33,38 +35,56 @@ export class LNDEffects implements OnDestroy { constructor( private actions: Actions, private httpClient: HttpClient, - private store: Store, + private store: Store, private logger: LoggerService, private commonService: CommonService, private sessionService: SessionService, public dialog: MatDialog, private router: Router, + private wsService: WebSocketClientService, private location: Location ) { - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + this.store.select(allAPIsCallStatus).pipe(takeUntil(this.unSubs[0])). + subscribe((allApisCallStatus: ApiCallsListLND) => { if ( - ((rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchBalanceBlockchain.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchBalanceBlockchain.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchAllChannels.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchAllChannels.status === APICallStatusEnum.ERROR) && - (rtlStore.apisCallStatus.FetchPendingChannels.status === APICallStatusEnum.COMPLETED || rtlStore.apisCallStatus.FetchPendingChannels.status === APICallStatusEnum.ERROR)) && + ((allApisCallStatus.FetchInfo.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchInfo.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchFees.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchFees.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchBalanceBlockchain.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchBalanceBlockchain.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchAllChannels.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchAllChannels.status === APICallStatusEnum.ERROR) && + (allApisCallStatus.FetchPendingChannels.status === APICallStatusEnum.COMPLETED || allApisCallStatus.FetchPendingChannels.status === APICallStatusEnum.ERROR)) && !this.flgInitialized ) { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.INITALIZE_NODE_DATA)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.INITALIZE_NODE_DATA })); this.flgInitialized = true; } }); + this.wsService.lndWSMessages.pipe(takeUntil(this.unSubs[1])). + subscribe((newMessage) => { + this.logger.info('Received new message from the service: ' + JSON.stringify(newMessage)); + if (newMessage) { + switch (newMessage.type) { + case LNDWSEventTypeEnum.INVOICE: + this.logger.info(newMessage); + if (newMessage && newMessage.result && newMessage.result.payment_request) { + this.store.dispatch(updateInvoice({ payload: newMessage.result })); + } + break; + default: + this.logger.info('Received Event from WS: ' + JSON.stringify(newMessage)); + break; + } + } + }); } infoFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_INFO_LND), - withLatestFrom(this.store.select('root')), - mergeMap(([action, store]: [LNDActions.FetchInfo, fromRTLReducer.RootState]) => { + mergeMap((action: { type: string, payload: { loadPage: string } }) => { this.flgInitialized = false; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_NODE_INFO)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchInfo', status: APICallStatusEnum.INITIATED })); + this.store.dispatch(setApiUrl({ payload: this.CHILD_API_URL })); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_NODE_INFO })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchInfo', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.GETINFO_API).pipe( takeUntil(this.actions.pipe(ofType(RTLActions.SET_SELECTED_NODE))), map((info) => { @@ -74,19 +94,21 @@ export class LNDEffects implements OnDestroy { (typeof info.chains[0] === 'object' && info.chains[0].hasOwnProperty('chain') && info.chains[0].chain.toLowerCase().indexOf('bitcoin') < 0) ) ) { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchInfo', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseAllDialogs()); // Multiple UI_MESSAGES.GET_NODE_INFO after unlock & UI_MESSAGES.WAIT_SYNC_NODE - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: AlertTypeEnum.ERROR, - alertTitle: 'Shitcoin Found', - titleMessage: 'Sorry Not Sorry, RTL is Bitcoin Only!' + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchInfo', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeAllDialogs()); // Multiple UI_MESSAGES.GET_NODE_INFO after unlock & UI_MESSAGES.WAIT_SYNC_NODE + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.ERROR, + alertTitle: 'Shitcoin Found', + titleMessage: 'Sorry Not Sorry, RTL is Bitcoin Only!' + } } })); return { type: RTLActions.LOGOUT }; } else if (!info.identity_pubkey) { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchInfo', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseAllDialogs()); // Multiple UI_MESSAGES.GET_NODE_INFO after unlock & UI_MESSAGES.WAIT_SYNC_NODE + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchInfo', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeAllDialogs()); // Multiple UI_MESSAGES.GET_NODE_INFO after unlock & UI_MESSAGES.WAIT_SYNC_NODE this.sessionService.removeItem('lndUnlocked'); this.logger.info('Redirecting to Unlock'); this.router.navigate(['/lnd/wallet']); @@ -97,8 +119,8 @@ export class LNDEffects implements OnDestroy { } else { info.lnImplementation = 'LND'; this.initializeRemainingData(info, action.payload.loadPage); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchInfo', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseAllDialogs()); // Multiple UI_MESSAGES.GET_NODE_INFO after unlock & UI_MESSAGES.WAIT_SYNC_NODE + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchInfo', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeAllDialogs()); // Multiple UI_MESSAGES.GET_NODE_INFO after unlock & UI_MESSAGES.WAIT_SYNC_NODE return { type: LNDActions.SET_INFO_LND, payload: info ? info : {} @@ -109,7 +131,7 @@ export class LNDEffects implements OnDestroy { if ( (typeof err.error.error === 'string' && err.error.error.includes('Not Found')) || (typeof err.error.error === 'string' && err.error.error.includes('wallet locked')) || - err.status === 502 + (err.status === 502 && !err.error.message.includes('Bad or Missing Macaroon')) ) { this.sessionService.removeItem('lndUnlocked'); this.logger.info('Redirecting to Unlock'); @@ -117,7 +139,7 @@ export class LNDEffects implements OnDestroy { this.handleErrorWithoutAlert('FetchInfo', UI_MESSAGES.GET_NODE_INFO, 'Fetching Node Info Failed.', err); } else if (typeof err.error.error === 'string' && err.error.error.includes('starting up') && err.status === 500) { setTimeout(() => { - this.store.dispatch(new LNDActions.FetchInfo({ loadPage: 'HOME' })); + this.store.dispatch(fetchInfoLND({ payload: { loadPage: 'HOME' } })); }, 2000); } else { const code = this.commonService.extractErrorCode(err); @@ -133,15 +155,15 @@ export class LNDEffects implements OnDestroy { peersFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_PEERS_LND), - mergeMap((action: LNDActions.FetchPeers) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchPeers', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchPeers', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.PEERS_API).pipe( map((peers: any) => { this.logger.info(peers); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchPeers', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchPeers', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_PEERS_LND, - payload: peers ? peers : [] + payload: peers || [] }; }), catchError((err: any) => { @@ -154,16 +176,15 @@ export class LNDEffects implements OnDestroy { saveNewPeer = createEffect(() => this.actions.pipe( ofType(LNDActions.SAVE_NEW_PEER_LND), - withLatestFrom(this.store.select('lnd')), - mergeMap(([action, lndData]: [LNDActions.SaveNewPeer, fromLNDReducers.LNDState]) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.CONNECT_PEER)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SaveNewPeer', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SavePeer }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.CONNECT_PEER })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SaveNewPeer', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.PEERS_API, { pubkey: action.payload.pubkey, host: action.payload.host, perm: action.payload.perm }).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SaveNewPeer', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.CONNECT_PEER)); - this.store.dispatch(new LNDActions.SetPeers((postRes && postRes.length > 0) ? postRes : [])); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SaveNewPeer', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.CONNECT_PEER })); + this.store.dispatch(setPeers({ payload: (postRes || []) })); return { type: LNDActions.NEWLY_ADDED_PEER_LND, payload: { peer: postRes[0] } @@ -179,13 +200,13 @@ export class LNDEffects implements OnDestroy { detachPeer = createEffect(() => this.actions.pipe( ofType(LNDActions.DETACH_PEER_LND), - mergeMap((action: LNDActions.DetachPeer) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.DISCONNECT_PEER)); + mergeMap((action: { type: string, payload: { pubkey: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.DISCONNECT_PEER })); return this.httpClient.delete(this.CHILD_API_URL + environment.PEERS_API + '/' + action.payload.pubkey).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.DISCONNECT_PEER)); - this.store.dispatch(new RTLActions.OpenSnackBar('Peer Disconnected Successfully.')); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.DISCONNECT_PEER })); + this.store.dispatch(openSnackBar({ payload: 'Peer Disconnected Successfully.' })); return { type: LNDActions.REMOVE_PEER_LND, payload: { pubkey: action.payload.pubkey } @@ -201,17 +222,17 @@ export class LNDEffects implements OnDestroy { saveNewInvoice = createEffect(() => this.actions.pipe( ofType(LNDActions.SAVE_NEW_INVOICE_LND), - mergeMap((action: LNDActions.SaveNewInvoice) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.uiMessage)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SaveNewInvoice', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SaveInvoice }) => { + this.store.dispatch(openSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SaveNewInvoice', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.INVOICES_API, { memo: action.payload.memo, amount: action.payload.invoiceValue, private: action.payload.private, expiry: action.payload.expiry }). pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SaveNewInvoice', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new LNDActions.FetchInvoices({ num_max_invoices: action.payload.pageSize, reversed: true })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SaveNewInvoice', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(fetchInvoices({ payload: { num_max_invoices: action.payload.pageSize, reversed: true } })); if (action.payload.openModal) { postRes.memo = action.payload.memo; postRes.value = action.payload.invoiceValue; @@ -219,16 +240,20 @@ export class LNDEffects implements OnDestroy { postRes.cltv_expiry = '144'; postRes.private = action.payload.private; postRes.creation_date = Math.round(new Date().getTime() / 1000).toString(); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); - return { - type: RTLActions.OPEN_ALERT, - payload: { - data: { - invoice: postRes, - newlyAdded: true, - component: InvoiceInformationComponent + setTimeout(() => { + this.store.dispatch(openAlert({ + payload: { + data: { + invoice: postRes, + newlyAdded: true, + component: InvoiceInformationComponent + } } - } + })); + }, 100); + return { + type: RTLActions.CLOSE_SPINNER, + payload: action.payload.uiMessage }; } else { return { @@ -247,20 +272,20 @@ export class LNDEffects implements OnDestroy { openNewChannel = createEffect(() => this.actions.pipe( ofType(LNDActions.SAVE_NEW_CHANNEL_LND), - mergeMap((action: LNDActions.SaveNewChannel) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.OPEN_CHANNEL)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SaveNewChannel', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SaveChannel }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.OPEN_CHANNEL })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SaveNewChannel', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.CHANNELS_API, { node_pubkey: action.payload.selectedPeerPubkey, local_funding_amount: action.payload.fundingAmount, private: action.payload.private, trans_type: action.payload.transType, trans_type_value: action.payload.transTypeValue, spend_unconfirmed: action.payload.spendUnconfirmed }).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SaveNewChannel', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.OPEN_CHANNEL)); - this.store.dispatch(new LNDActions.FetchBalance('Blockchain')); - this.store.dispatch(new LNDActions.FetchAllChannels()); - this.store.dispatch(new LNDActions.BackupChannels({ uiMessage: UI_MESSAGES.NO_SPINNER, channelPoint: 'ALL', showMessage: 'Channel Added Successfully!' })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SaveNewChannel', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.OPEN_CHANNEL })); + this.store.dispatch(fetchBalanceBlockchain()); + this.store.dispatch(fetchChannels()); + this.store.dispatch(backupChannels({ payload: { uiMessage: UI_MESSAGES.NO_SPINNER, channelPoint: 'ALL', showMessage: 'Channel Added Successfully!' } })); return { type: LNDActions.FETCH_PENDING_CHANNELS_LND }; @@ -273,22 +298,22 @@ export class LNDEffects implements OnDestroy { ); updateChannel = createEffect(() => this.actions.pipe( - ofType(LNDActions.UPDATE_CHANNELS_LND), - mergeMap((action: LNDActions.UpdateChannels) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.UPDATE_CHAN_POLICY)); + ofType(LNDActions.UPDATE_CHANNEL_LND), + mergeMap((action: { type: string, payload: any }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.UPDATE_CHAN_POLICY })); return this.httpClient.post(this.CHILD_API_URL + environment.CHANNELS_API + '/chanPolicy', { baseFeeMsat: action.payload.baseFeeMsat, feeRate: action.payload.feeRate, timeLockDelta: action.payload.timeLockDelta, chanPoint: action.payload.chanPoint } ).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.UPDATE_CHAN_POLICY)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.UPDATE_CHAN_POLICY })); if (action.payload.chanPoint === 'all') { - this.store.dispatch(new RTLActions.OpenSnackBar('All Channels Updated Successfully.')); + this.store.dispatch(openSnackBar({ payload: 'All Channels Updated Successfully.' })); } else { - this.store.dispatch(new RTLActions.OpenSnackBar('Channel Updated Successfully!')); + this.store.dispatch(openSnackBar({ payload: 'Channel Updated Successfully!' })); } return { - type: LNDActions.FETCH_ALL_CHANNELS_LND + type: LNDActions.FETCH_CHANNELS_LND }; }), catchError((err: any) => { @@ -300,8 +325,8 @@ export class LNDEffects implements OnDestroy { closeChannel = createEffect(() => this.actions.pipe( ofType(LNDActions.CLOSE_CHANNEL_LND), - mergeMap((action: LNDActions.CloseChannel) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.forcibly ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL)); + mergeMap((action: { type: string, payload: CloseChannel }) => { + this.store.dispatch(openSpinner({ payload: (action.payload.forcibly ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL) })); let reqUrl = this.CHILD_API_URL + environment.CHANNELS_API + '/' + action.payload.channelPoint + '?force=' + action.payload.forcibly; if (action.payload.targetConf) { reqUrl = reqUrl + '&target_conf=' + action.payload.targetConf; @@ -312,10 +337,10 @@ export class LNDEffects implements OnDestroy { return this.httpClient.delete(reqUrl).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.forcibly ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL)); - this.store.dispatch(new LNDActions.FetchAllChannels()); - this.store.dispatch(new LNDActions.FetchPendingChannels()); - this.store.dispatch(new LNDActions.BackupChannels({ uiMessage: UI_MESSAGES.NO_SPINNER, channelPoint: 'ALL', showMessage: postRes.message })); + this.store.dispatch(closeSpinner({ payload: action.payload.forcibly ? UI_MESSAGES.FORCE_CLOSE_CHANNEL : UI_MESSAGES.CLOSE_CHANNEL })); + this.store.dispatch(fetchChannels()); + this.store.dispatch(fetchPendingChannels()); + this.store.dispatch(backupChannels({ payload: { uiMessage: UI_MESSAGES.NO_SPINNER, channelPoint: 'ALL', showMessage: postRes.message } })); return { type: RTLActions.VOID }; }), catchError((err: any) => { @@ -328,15 +353,15 @@ export class LNDEffects implements OnDestroy { backupChannels = createEffect(() => this.actions.pipe( ofType(LNDActions.BACKUP_CHANNELS_LND), - mergeMap((action: LNDActions.BackupChannels) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.uiMessage)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'BackupChannels', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: any }) => { + this.store.dispatch(openSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'BackupChannels', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_BACKUP_API + '/' + action.payload.channelPoint).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'BackupChannels', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); - this.store.dispatch(new RTLActions.OpenSnackBar(action.payload.showMessage + ' ' + postRes.message)); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'BackupChannels', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(openSnackBar({ payload: action.payload.showMessage + ' ' + postRes.message })); return { type: LNDActions.BACKUP_CHANNELS_RES_LND, payload: postRes.message @@ -350,24 +375,24 @@ export class LNDEffects implements OnDestroy { })) ); - verifyChannels = createEffect(() => this.actions.pipe( - ofType(LNDActions.VERIFY_CHANNELS_LND), - mergeMap((action: LNDActions.VerifyChannels) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.VERIFY_CHANNEL)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'VerifyChannels', status: APICallStatusEnum.INITIATED })); + verifyChannel = createEffect(() => this.actions.pipe( + ofType(LNDActions.VERIFY_CHANNEL_LND), + mergeMap((action: { type: string, payload: { channelPoint: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.VERIFY_CHANNEL })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'VerifyChannel', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.CHANNELS_BACKUP_API + '/verify/' + action.payload.channelPoint, {}).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'VerifyChannels', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.VERIFY_CHANNEL)); - this.store.dispatch(new RTLActions.OpenSnackBar(postRes.message)); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'VerifyChannel', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.VERIFY_CHANNEL })); + this.store.dispatch(openSnackBar({ payload: postRes.message })); return { - type: LNDActions.VERIFY_CHANNELS_RES_LND, + type: LNDActions.VERIFY_CHANNEL_RES_LND, payload: postRes.message }; }), catchError((err: any) => { - this.handleErrorWithAlert('VerifyChannels', UI_MESSAGES.VERIFY_CHANNEL, 'Unable to Verify Channel. Try again later.', this.CHILD_API_URL + environment.CHANNELS_BACKUP_API + '/verify/' + action.payload.channelPoint, err); + this.handleErrorWithAlert('VerifyChannel', UI_MESSAGES.VERIFY_CHANNEL, 'Unable to Verify Channel. Try again later.', this.CHILD_API_URL + environment.CHANNELS_BACKUP_API + '/verify/' + action.payload.channelPoint, err); return of({ type: RTLActions.VOID }); }) ); @@ -376,16 +401,16 @@ export class LNDEffects implements OnDestroy { restoreChannels = createEffect(() => this.actions.pipe( ofType(LNDActions.RESTORE_CHANNELS_LND), - mergeMap((action: LNDActions.RestoreChannels) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.RESTORE_CHANNEL)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'RestoreChannels', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: { channelPoint: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.RESTORE_CHANNEL })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'RestoreChannels', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(this.CHILD_API_URL + environment.CHANNELS_BACKUP_API + '/restore/' + action.payload.channelPoint, {}).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'RestoreChannels', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.RESTORE_CHANNEL)); - this.store.dispatch(new RTLActions.OpenSnackBar(postRes.message)); - this.store.dispatch(new LNDActions.SetRestoreChannelsList(postRes.list)); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'RestoreChannels', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.RESTORE_CHANNEL })); + this.store.dispatch(openSnackBar({ payload: postRes.message })); + this.store.dispatch(setRestoreChannelsList({ payload: postRes.list })); return { type: LNDActions.RESTORE_CHANNELS_RES_LND, payload: postRes.message @@ -400,15 +425,15 @@ export class LNDEffects implements OnDestroy { fetchFees = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_FEES_LND), - mergeMap((action: LNDActions.FetchFees) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchFees', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchFees', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.FEES_API); }), map((fees) => { this.logger.info(fees); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchFees', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchFees', status: APICallStatusEnum.COMPLETED } })); if (fees.forwarding_events_history) { - this.store.dispatch(new LNDActions.SetForwardingHistory(fees.forwarding_events_history)); + this.store.dispatch(setForwardingHistory({ payload: fees.forwarding_events_history })); delete fees.forwarding_events_history; } return { @@ -422,36 +447,35 @@ export class LNDEffects implements OnDestroy { })) ); - balanceFetch = createEffect(() => this.actions.pipe( - ofType(LNDActions.FETCH_BALANCE_LND), - mergeMap((action: LNDActions.FetchBalance) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchBalance' + action.payload, status: APICallStatusEnum.INITIATED })); - return this.httpClient.get(this.CHILD_API_URL + environment.BALANCE_API + '/' + action.payload).pipe( - map((res: any) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchBalance' + action.payload, status: APICallStatusEnum.COMPLETED })); - this.logger.info(res); - const emptyRes = (action.payload === 'channels') ? { balance: '' } : { total_balance: '' }; - return { - type: LNDActions.SET_BALANCE_LND, - payload: res ? { target: action.payload, balance: res } : { target: action.payload, balance: emptyRes } - }; - }), - catchError((err: any) => { - this.handleErrorWithoutAlert('FetchBalance' + action.payload, UI_MESSAGES.NO_SPINNER, 'Fetching' + this.commonService.titleCase(action.payload) + ' Balance Failed.', err); - return of({ type: RTLActions.VOID }); - })); + balanceBlockchainFetch = createEffect(() => this.actions.pipe( + ofType(LNDActions.FETCH_BLOCKCHAIN_BALANCE_LND), + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchBalance', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.get(this.CHILD_API_URL + environment.BALANCE_API); + }), + map((res: any) => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchBalance', status: APICallStatusEnum.COMPLETED } })); + this.logger.info(res); + return { + type: LNDActions.SET_BLOCKCHAIN_BALANCE_LND, + payload: res ? res : { total_balance: '' } + }; + }), + catchError((err: any) => { + this.handleErrorWithoutAlert('FetchBalance', UI_MESSAGES.NO_SPINNER, 'Fetching Blockchain Balance Failed.', err); + return of({ type: RTLActions.VOID }); })) ); networkInfoFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_NETWORK_LND), - mergeMap((action: LNDActions.FetchNetwork) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchNetwork', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchNetwork', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.NETWORK_API + '/info'); }), map((networkInfo) => { this.logger.info(networkInfo); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchNetwork', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchNetwork', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_NETWORK_LND, payload: networkInfo ? networkInfo : {} @@ -463,21 +487,21 @@ export class LNDEffects implements OnDestroy { })) ); - channelsAllFetch = createEffect(() => this.actions.pipe( - ofType(LNDActions.FETCH_ALL_CHANNELS_LND), - mergeMap((action: LNDActions.FetchAllChannels) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchAllChannels', status: APICallStatusEnum.INITIATED })); + channelsFetch = createEffect(() => this.actions.pipe( + ofType(LNDActions.FETCH_CHANNELS_LND), + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchChannels', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API).pipe( map((channels: any) => { this.logger.info(channels); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchAllChannels', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchChannels', status: APICallStatusEnum.COMPLETED } })); return { - type: LNDActions.SET_ALL_CHANNELS_LND, - payload: (channels && channels.channels && channels.channels.length > 0) ? channels.channels : [] + type: LNDActions.SET_CHANNELS_LND, + payload: channels.channels || [] }; }), catchError((err: any) => { - this.handleErrorWithoutAlert('FetchAllChannels', UI_MESSAGES.NO_SPINNER, 'Fetching All Channels Failed.', err); + this.handleErrorWithoutAlert('FetchChannels', UI_MESSAGES.NO_SPINNER, 'Fetching Channels Failed.', err); return of({ type: RTLActions.VOID }); })); })) @@ -485,47 +509,47 @@ export class LNDEffects implements OnDestroy { channelsPendingFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_PENDING_CHANNELS_LND), - mergeMap((action: LNDActions.FetchPendingChannels) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchPendingChannels', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchPendingChannels', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API + '/pending').pipe( - map((channels: any) => { - this.logger.info(channels); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchPendingChannels', status: APICallStatusEnum.COMPLETED })); - const pendingChannels: PendingChannelsGroup = { open: { num_channels: 0, limbo_balance: 0 }, closing: { num_channels: 0, limbo_balance: 0 }, force_closing: { num_channels: 0, limbo_balance: 0 }, waiting_close: { num_channels: 0, limbo_balance: 0 }, total_channels: 0, total_limbo_balance: 0 }; - if (channels) { - pendingChannels.total_limbo_balance = channels.total_limbo_balance; - if (channels.pending_closing_channels) { - pendingChannels.closing.num_channels = channels.pending_closing_channels.length; - pendingChannels.total_channels = pendingChannels.total_channels + channels.pending_closing_channels.length; - channels.pending_closing_channels.forEach((closingChannel) => { - pendingChannels.closing.limbo_balance = +pendingChannels.closing.limbo_balance + (closingChannel.channel.local_balance ? +closingChannel.channel.local_balance : 0); + map((pendingChannels: any) => { + this.logger.info(pendingChannels); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchPendingChannels', status: APICallStatusEnum.COMPLETED } })); + const pendingChannelsSummary: PendingChannelsSummary = { open: { num_channels: 0, limbo_balance: 0 }, closing: { num_channels: 0, limbo_balance: 0 }, force_closing: { num_channels: 0, limbo_balance: 0 }, waiting_close: { num_channels: 0, limbo_balance: 0 }, total_channels: 0, total_limbo_balance: 0 }; + if (pendingChannels) { + pendingChannelsSummary.total_limbo_balance = pendingChannels.total_limbo_balance; + if (pendingChannels.pending_closing_channels) { + pendingChannelsSummary.closing.num_channels = pendingChannels.pending_closing_channels.length; + pendingChannelsSummary.total_channels = pendingChannelsSummary.total_channels + pendingChannels.pending_closing_channels.length; + pendingChannels.pending_closing_channels.forEach((closingChannel) => { + pendingChannelsSummary.closing.limbo_balance = +pendingChannelsSummary.closing.limbo_balance + (closingChannel.channel.local_balance ? +closingChannel.channel.local_balance : 0); }); } - if (channels.pending_force_closing_channels) { - pendingChannels.force_closing.num_channels = channels.pending_force_closing_channels.length; - pendingChannels.total_channels = pendingChannels.total_channels + channels.pending_force_closing_channels.length; - channels.pending_force_closing_channels.forEach((closingChannel) => { - pendingChannels.force_closing.limbo_balance = +pendingChannels.force_closing.limbo_balance + (closingChannel.channel.local_balance ? +closingChannel.channel.local_balance : 0); + if (pendingChannels.pending_force_closing_channels) { + pendingChannelsSummary.force_closing.num_channels = pendingChannels.pending_force_closing_channels.length; + pendingChannelsSummary.total_channels = pendingChannelsSummary.total_channels + pendingChannels.pending_force_closing_channels.length; + pendingChannels.pending_force_closing_channels.forEach((closingChannel) => { + pendingChannelsSummary.force_closing.limbo_balance = +pendingChannelsSummary.force_closing.limbo_balance + (closingChannel.channel.local_balance ? +closingChannel.channel.local_balance : 0); }); } - if (channels.pending_open_channels) { - pendingChannels.open.num_channels = channels.pending_open_channels.length; - pendingChannels.total_channels = pendingChannels.total_channels + channels.pending_open_channels.length; - channels.pending_open_channels.forEach((openingChannel) => { - pendingChannels.open.limbo_balance = +pendingChannels.open.limbo_balance + (openingChannel.channel.local_balance ? +openingChannel.channel.local_balance : 0); + if (pendingChannels.pending_open_channels) { + pendingChannelsSummary.open.num_channels = pendingChannels.pending_open_channels.length; + pendingChannelsSummary.total_channels = pendingChannelsSummary.total_channels + pendingChannels.pending_open_channels.length; + pendingChannels.pending_open_channels.forEach((openingChannel) => { + pendingChannelsSummary.open.limbo_balance = +pendingChannelsSummary.open.limbo_balance + (openingChannel.channel.local_balance ? +openingChannel.channel.local_balance : 0); }); } - if (channels.waiting_close_channels) { - pendingChannels.waiting_close.num_channels = channels.waiting_close_channels.length; - pendingChannels.total_channels = pendingChannels.total_channels + channels.waiting_close_channels.length; - channels.waiting_close_channels.forEach((closingChannel) => { - pendingChannels.waiting_close.limbo_balance = +pendingChannels.waiting_close.limbo_balance + (closingChannel.channel.local_balance ? +closingChannel.channel.local_balance : 0); + if (pendingChannels.waiting_close_channels) { + pendingChannelsSummary.waiting_close.num_channels = pendingChannels.waiting_close_channels.length; + pendingChannelsSummary.total_channels = pendingChannelsSummary.total_channels + pendingChannels.waiting_close_channels.length; + pendingChannels.waiting_close_channels.forEach((closingChannel) => { + pendingChannelsSummary.waiting_close.limbo_balance = +pendingChannelsSummary.waiting_close.limbo_balance + (closingChannel.channel.local_balance ? +closingChannel.channel.local_balance : 0); }); } } return { type: LNDActions.SET_PENDING_CHANNELS_LND, - payload: channels ? { channels: channels, pendingChannels: pendingChannels } : { channels: {}, pendingChannels: pendingChannels } + payload: pendingChannels ? { pendingChannels: pendingChannels, pendingChannelsSummary: pendingChannelsSummary } : { pendingChannels: {}, pendingChannelsSummary: pendingChannelsSummary } }; }), catchError((err: any) => { @@ -537,15 +561,15 @@ export class LNDEffects implements OnDestroy { channelsClosedFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_CLOSED_CHANNELS_LND), - mergeMap((action: LNDActions.FetchClosedChannels) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchClosedChannels', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchClosedChannels', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_API + '/closed').pipe( map((channels: any) => { this.logger.info(channels); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchClosedChannels', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchClosedChannels', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_CLOSED_CHANNELS_LND, - payload: (channels && channels.channels && channels.channels.length > 0) ? channels.channels : [] + payload: channels.channels || [] }; }), catchError((err: any) => { @@ -557,17 +581,17 @@ export class LNDEffects implements OnDestroy { invoicesFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_INVOICES_LND), - mergeMap((action: LNDActions.FetchInvoices) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchInvoices', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: FetchInvoices }) => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchInvoices', status: APICallStatusEnum.INITIATED } })); const num_max_invoices = (action.payload.num_max_invoices) ? action.payload.num_max_invoices : 100; const index_offset = (action.payload.index_offset) ? action.payload.index_offset : 0; const reversed = (action.payload.reversed) ? action.payload.reversed : false; return this.httpClient.get(this.CHILD_API_URL + environment.INVOICES_API + '?num_max_invoices=' + num_max_invoices + '&index_offset=' + index_offset + '&reversed=' + reversed).pipe( map((res: ListInvoices) => { this.logger.info(res); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchInvoices', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchInvoices', status: APICallStatusEnum.COMPLETED } })); if (action.payload.reversed && !action.payload.index_offset) { - this.store.dispatch(new LNDActions.SetTotalInvoices(+res.last_index_offset)); + res['total_invoices'] = +res.last_index_offset; } return { type: LNDActions.SET_INVOICES_LND, @@ -583,16 +607,16 @@ export class LNDEffects implements OnDestroy { transactionsFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_TRANSACTIONS_LND), - mergeMap((action: LNDActions.FetchTransactions) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchTransactions', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchTransactions', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.TRANSACTIONS_API); }), map((transactions) => { this.logger.info(transactions); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchTransactions', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchTransactions', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_TRANSACTIONS_LND, - payload: (transactions && transactions.length > 0) ? transactions : [] + payload: transactions || [] }; }), catchError((err: any) => { @@ -603,17 +627,17 @@ export class LNDEffects implements OnDestroy { utxosFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_UTXOS_LND), - withLatestFrom(this.store.select('lnd')), - mergeMap(([action, lndData]: [LNDActions.FetchUTXOs, fromLNDReducers.LNDState]) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchUTXOs', status: APICallStatusEnum.INITIATED })); - return this.httpClient.get(this.CHILD_API_URL + environment.WALLET_API + '/getUTXOs?max_confs=' + (lndData.information && lndData.information.block_height ? lndData.information.block_height : 1000000000)); + withLatestFrom(this.store.select(lndNodeInformation)), + mergeMap(([action, nodeInfo]: [{ type: string, payload: any }, GetInfo]) => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchUTXOs', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.get(this.CHILD_API_URL + environment.WALLET_API + '/getUTXOs?max_confs=' + (nodeInfo && nodeInfo.block_height ? nodeInfo.block_height : 1000000000)); }), map((utxos) => { this.logger.info(utxos); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchUTXOs', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchUTXOs', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_UTXOS_LND, - payload: (utxos && utxos.length > 0) ? utxos : [] + payload: utxos || [] }; }), catchError((err: any) => { @@ -624,21 +648,20 @@ export class LNDEffects implements OnDestroy { paymentsFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_PAYMENTS_LND), - mergeMap((action: LNDActions.FetchPayments) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchPayments', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: FetchPayments }) => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchPayments', status: APICallStatusEnum.INITIATED } })); const max_payments = (action.payload.max_payments) ? action.payload.max_payments : 100; const index_offset = (action.payload.index_offset) ? action.payload.index_offset : 0; const reversed = (action.payload.reversed) ? action.payload.reversed : false; return this.httpClient.get(this.CHILD_API_URL + environment.PAYMENTS_API + '?max_payments=' + max_payments + '&index_offset=' + index_offset + '&reversed=' + reversed). pipe(map((res: ListPayments) => { this.logger.info(res); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchPayments', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchPayments', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_PAYMENTS_LND, payload: res }; - }), - catchError((err: any) => { + }), catchError((err: any) => { this.handleErrorWithoutAlert('FetchPayments', UI_MESSAGES.NO_SPINNER, 'Fetching Payments Failed.', err); return of({ type: LNDActions.SET_PAYMENTS_LND, @@ -650,9 +673,9 @@ export class LNDEffects implements OnDestroy { sendPayment = createEffect(() => this.actions.pipe( ofType(LNDActions.SEND_PAYMENT_LND), - mergeMap((action: LNDActions.SendPayment) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.uiMessage)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SendPayment', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SendPayment }) => { + this.store.dispatch(openSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SendPayment', status: APICallStatusEnum.INITIATED } })); const queryHeaders = {}; queryHeaders['paymentReq'] = action.payload.paymentReq; if (action.payload.paymentAmount) { @@ -667,18 +690,18 @@ export class LNDEffects implements OnDestroy { if (action.payload.lastHopPubkey) { queryHeaders['lastHopPubkey'] = action.payload.lastHopPubkey; } - if (action.payload.feeLimitType && action.payload.feeLimitType !== FEE_LIMIT_TYPES[0]) { + if (action.payload.feeLimitType && action.payload.feeLimitType !== FEE_LIMIT_TYPES[0].id) { queryHeaders['feeLimit'] = {}; - queryHeaders['feeLimit'][action.payload.feeLimitType.id] = action.payload.feeLimit; + queryHeaders['feeLimit'][action.payload.feeLimitType] = action.payload.feeLimit; } return this.httpClient.post(this.CHILD_API_URL + environment.CHANNELS_API + '/transactions', queryHeaders).pipe( map((sendRes: any) => { this.logger.info(sendRes); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SendPayment', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SendPayment', status: APICallStatusEnum.COMPLETED } })); if (sendRes.payment_error) { if (action.payload.allowSelfPayment) { - this.store.dispatch(new LNDActions.FetchInvoices({ num_max_invoices: PAGE_SIZE, reversed: true })); + this.store.dispatch(fetchInvoices({ payload: { num_max_invoices: PAGE_SIZE, reversed: true } })); return { type: LNDActions.SEND_PAYMENT_STATUS_LND, payload: sendRes @@ -692,18 +715,18 @@ export class LNDEffects implements OnDestroy { return { type: RTLActions.VOID }; } } else { - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SendPayment', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new LNDActions.FetchAllChannels()); - this.store.dispatch(new LNDActions.FetchPayments({ max_payments: PAGE_SIZE, reversed: true })); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SendPayment', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(fetchChannels()); + this.store.dispatch(fetchPayments({ payload: { max_payments: PAGE_SIZE, reversed: true } })); if (action.payload.allowSelfPayment) { - this.store.dispatch(new LNDActions.FetchInvoices({ num_max_invoices: PAGE_SIZE, reversed: true })); + this.store.dispatch(fetchInvoices({ payload: { num_max_invoices: PAGE_SIZE, reversed: true } })); } else { let msg = 'Payment Sent Successfully.'; if (sendRes.payment_route && sendRes.payment_route.total_fees_msat) { msg = 'Payment sent successfully with the total fee ' + sendRes.payment_route.total_fees_msat + ' (mSats).'; } - this.store.dispatch(new RTLActions.OpenSnackBar(msg)); + this.store.dispatch(openSnackBar({ payload: msg })); } return { type: LNDActions.SEND_PAYMENT_STATUS_LND, @@ -715,7 +738,7 @@ export class LNDEffects implements OnDestroy { this.logger.error('Error: ' + JSON.stringify(err)); if (action.payload.allowSelfPayment) { this.handleErrorWithoutAlert('SendPayment', action.payload.uiMessage, 'Send Payment Failed.', err); - this.store.dispatch(new LNDActions.FetchInvoices({ num_max_invoices: PAGE_SIZE, reversed: true })); + this.store.dispatch(fetchInvoices({ payload: { num_max_invoices: PAGE_SIZE, reversed: true } })); return of({ type: LNDActions.SEND_PAYMENT_STATUS_LND, payload: { error: this.commonService.extractErrorMessage(err) } @@ -734,14 +757,14 @@ export class LNDEffects implements OnDestroy { graphNodeFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.FETCH_GRAPH_NODE_LND), - mergeMap((action: LNDActions.FetchGraphNode) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_NODE_ADDRESS)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchGraphNode', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: { pubkey: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_NODE_ADDRESS })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchGraphNode', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.NETWORK_API + '/node/' + action.payload.pubkey).pipe( map((graphNode: any) => { this.logger.info(graphNode); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_NODE_ADDRESS)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchGraphNode', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_NODE_ADDRESS })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchGraphNode', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_GRAPH_NODE_LND, payload: graphNode && graphNode.node ? { node: graphNode.node } : { node: null } @@ -757,7 +780,7 @@ export class LNDEffects implements OnDestroy { setGraphNode = createEffect( () => this.actions.pipe( ofType(LNDActions.SET_GRAPH_NODE_LND), - map((action: LNDActions.SetGraphNode) => { + map((action: { type: string, payload: { node: LightningNode } }) => { this.logger.info(action.payload); return action.payload; })), @@ -767,12 +790,12 @@ export class LNDEffects implements OnDestroy { getNewAddress = createEffect( () => this.actions.pipe( ofType(LNDActions.GET_NEW_ADDRESS_LND), - mergeMap((action: LNDActions.GetNewAddress) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GENERATE_NEW_ADDRESS)); + mergeMap((action: { type: string, payload: GetNewAddress }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GENERATE_NEW_ADDRESS })); return this.httpClient.get(this.CHILD_API_URL + environment.NEW_ADDRESS_API + '?type=' + action.payload.addressId).pipe( map((newAddress: any) => { this.logger.info(newAddress); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GENERATE_NEW_ADDRESS)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GENERATE_NEW_ADDRESS })); return { type: LNDActions.SET_NEW_ADDRESS_LND, payload: (newAddress && newAddress.address) ? newAddress.address : {} @@ -788,7 +811,7 @@ export class LNDEffects implements OnDestroy { setNewAddress = createEffect( () => this.actions.pipe( ofType(LNDActions.SET_NEW_ADDRESS_LND), - map((action: LNDActions.SetNewAddress) => { + map((action: { type: string, payload: string }) => { this.logger.info(action.payload); return action.payload; })), @@ -797,20 +820,20 @@ export class LNDEffects implements OnDestroy { SetChannelTransaction = createEffect(() => this.actions.pipe( ofType(LNDActions.SET_CHANNEL_TRANSACTION_LND), - mergeMap((action: LNDActions.SetChannelTransaction) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEND_FUNDS)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SetChannelTransaction', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: ChannelsTransaction }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEND_FUNDS })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SetChannelTransaction', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post( this.CHILD_API_URL + environment.TRANSACTIONS_API, { amount: action.payload.amount, address: action.payload.address, sendAll: action.payload.sendAll, fees: action.payload.fees, blocks: action.payload.blocks } ).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'SetChannelTransaction', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEND_FUNDS)); - this.store.dispatch(new LNDActions.FetchTransactions()); - this.store.dispatch(new LNDActions.FetchBalance('Blockchain')); - this.store.dispatch(new LNDActions.FetchAllChannels()); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'SetChannelTransaction', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEND_FUNDS })); + this.store.dispatch(fetchTransactions()); + this.store.dispatch(fetchBalanceBlockchain()); + this.store.dispatch(fetchChannels()); return { type: LNDActions.SET_CHANNEL_TRANSACTION_RES_LND, payload: postRes @@ -826,22 +849,22 @@ export class LNDEffects implements OnDestroy { fetchForwardingHistory = createEffect(() => this.actions.pipe( ofType(LNDActions.GET_FORWARDING_HISTORY_LND), - mergeMap((action: LNDActions.GetForwardingHistory) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'GetForwardingHistory', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SwitchReq }) => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchForwardingHistory', status: APICallStatusEnum.INITIATED } })); const queryHeaders: SwitchReq = { num_max_events: action.payload.num_max_events, index_offset: action.payload.index_offset, end_time: action.payload.end_time, start_time: action.payload.start_time }; return this.httpClient.post(this.CHILD_API_URL + environment.SWITCH_API, queryHeaders).pipe( map((fhRes: any) => { this.logger.info(fhRes); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'GetForwardingHistory', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchForwardingHistory', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_FORWARDING_HISTORY_LND, payload: fhRes }; }), catchError((err: any) => { - this.handleErrorWithAlert('GetForwardingHistory', UI_MESSAGES.NO_SPINNER, 'Get Forwarding History Failed', this.CHILD_API_URL + environment.SWITCH_API, err); + this.handleErrorWithAlert('FetchForwardingHistory', UI_MESSAGES.NO_SPINNER, 'Get Forwarding History Failed', this.CHILD_API_URL + environment.SWITCH_API, err); return of({ type: RTLActions.VOID }); }) ); @@ -850,7 +873,7 @@ export class LNDEffects implements OnDestroy { queryRoutesFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.GET_QUERY_ROUTES_LND), - mergeMap((action: LNDActions.GetQueryRoutes) => { + mergeMap((action: { type: string, payload: GetQueryRoutes }) => { let url = this.CHILD_API_URL + environment.NETWORK_API + '/routes/' + action.payload.destPubkey + '/' + action.payload.amount; if (action.payload.outgoingChanId) { url = url + '?outgoing_chan_id=' + action.payload.outgoingChanId; @@ -864,7 +887,7 @@ export class LNDEffects implements OnDestroy { }; }), catchError((err: any) => { - this.store.dispatch(new LNDActions.SetQueryRoutes({})); + this.store.dispatch(setQueryRoutes({ payload: { routes: [] } })); this.handleErrorWithAlert('GetQueryRoutes', UI_MESSAGES.NO_SPINNER, 'Get Query Routes Failed', this.CHILD_API_URL + environment.NETWORK_API, err); return of({ type: RTLActions.VOID }); }) @@ -875,19 +898,19 @@ export class LNDEffects implements OnDestroy { setQueryRoutes = createEffect( () => this.actions.pipe( ofType(LNDActions.SET_QUERY_ROUTES_LND), - map((action: LNDActions.SetQueryRoutes) => action.payload)), + map((action: { type: string, payload: QueryRoutes }) => action.payload)), { dispatch: false } ); genSeed = createEffect(() => this.actions.pipe( ofType(LNDActions.GEN_SEED_LND), - mergeMap((action: LNDActions.GenSeed) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GEN_SEED)); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GEN_SEED })); return this.httpClient.get(this.CHILD_API_URL + environment.WALLET_API + '/genseed/' + action.payload).pipe( map((postRes: any) => { this.logger.info('Generated GenSeed!'); this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GEN_SEED)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GEN_SEED })); return { type: LNDActions.GEN_SEED_RESPONSE_LND, payload: postRes.cipher_seed_mnemonic @@ -903,7 +926,7 @@ export class LNDEffects implements OnDestroy { updateSelNodeOptions = createEffect(() => this.actions.pipe( ofType(RTLActions.UPDATE_SELECTED_NODE_OPTIONS), - mergeMap((action: RTLActions.UpdateSelectedNodeOptions) => this.httpClient.get(this.CHILD_API_URL + environment.WALLET_API + '/updateSelNodeOptions').pipe( + mergeMap(() => this.httpClient.get(this.CHILD_API_URL + environment.WALLET_API + '/updateSelNodeOptions').pipe( map((postRes: any) => { this.logger.info('Update Sel Node Successfull'); this.logger.info(postRes); @@ -921,21 +944,21 @@ export class LNDEffects implements OnDestroy { genSeedResponse = createEffect( () => this.actions.pipe( ofType(LNDActions.GEN_SEED_RESPONSE_LND), - map((action: LNDActions.GenSeedResponse) => action.payload)), + map((action: { type: string, payload: Array }) => action.payload)), { dispatch: false } ); initWalletRes = createEffect( () => this.actions.pipe( ofType(LNDActions.INIT_WALLET_RESPONSE_LND), - map((action: LNDActions.InitWalletResponse) => action.payload)), + map((action: { type: string, payload: string }) => action.payload)), { dispatch: false } ); initWallet = createEffect(() => this.actions.pipe( ofType(LNDActions.INIT_WALLET_LND), - mergeMap((action: LNDActions.InitWallet) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.INITIALIZE_WALLET)); + mergeMap((action: { type: string, payload: InitWallet }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.INITIALIZE_WALLET })); return this.httpClient.post( this.CHILD_API_URL + environment.WALLET_API + '/wallet/initwallet', { @@ -946,7 +969,7 @@ export class LNDEffects implements OnDestroy { ).pipe( map((postRes) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.INITIALIZE_WALLET)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.INITIALIZE_WALLET })); return { type: LNDActions.INIT_WALLET_RESPONSE_LND, payload: postRes @@ -963,18 +986,18 @@ export class LNDEffects implements OnDestroy { unlockWallet = createEffect( () => this.actions.pipe( ofType(LNDActions.UNLOCK_WALLET_LND), - mergeMap((action: LNDActions.UnlockWallet) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.UNLOCK_WALLET)); + mergeMap((action: { type: string, payload: { pwd: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.UNLOCK_WALLET })); return this.httpClient.post(this.CHILD_API_URL + environment.WALLET_API + '/wallet/unlockwallet', { wallet_password: action.payload.pwd }).pipe( map((postRes) => { this.logger.info(postRes); this.logger.info('Successfully Unlocked!'); this.sessionService.setItem('lndUnlocked', 'true'); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.UNLOCK_WALLET)); - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.WAIT_SYNC_NODE)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.UNLOCK_WALLET })); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.WAIT_SYNC_NODE })); setTimeout(() => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.WAIT_SYNC_NODE)); - this.store.dispatch(new LNDActions.FetchInfo({ loadPage: 'HOME' })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.WAIT_SYNC_NODE })); + this.store.dispatch(fetchInfoLND({ payload: { loadPage: 'HOME' } })); }, 5000); return { type: RTLActions.VOID }; }), @@ -989,14 +1012,14 @@ export class LNDEffects implements OnDestroy { peerLookup = createEffect(() => this.actions.pipe( ofType(LNDActions.PEER_LOOKUP_LND), - mergeMap((action: LNDActions.PeerLookup) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEARCHING_NODE)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEARCHING_NODE })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.NETWORK_API + '/node/' + action.payload).pipe( map((resPeer) => { this.logger.info(resPeer); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEARCHING_NODE)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEARCHING_NODE })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_LOOKUP_LND, payload: resPeer @@ -1012,14 +1035,14 @@ export class LNDEffects implements OnDestroy { channelLookup = createEffect(() => this.actions.pipe( ofType(LNDActions.CHANNEL_LOOKUP_LND), - mergeMap((action: LNDActions.ChannelLookup) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.uiMessage)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: ChannelLookup }) => { + this.store.dispatch(openSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.NETWORK_API + '/edge/' + action.payload.channelID).pipe( map((resChannel) => { this.logger.info(resChannel); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_LOOKUP_LND, payload: resChannel @@ -1027,7 +1050,7 @@ export class LNDEffects implements OnDestroy { }), catchError((err: any) => { this.handleErrorWithAlert('Lookup', action.payload.uiMessage, 'Channel Lookup Failed', this.CHILD_API_URL + environment.NETWORK_API + '/edge/' + action.payload.channelID, err); - this.store.dispatch(new LNDActions.SetLookup({})); + this.store.dispatch(setLookup({ payload: {} })); return of({ type: RTLActions.VOID }); }) ); @@ -1036,15 +1059,15 @@ export class LNDEffects implements OnDestroy { invoiceLookup = createEffect(() => this.actions.pipe( ofType(LNDActions.INVOICE_LOOKUP_LND), - mergeMap((action: LNDActions.InvoiceLookup) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SEARCHING_INVOICE)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SEARCHING_INVOICE })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.INVOICES_API + '/' + action.payload).pipe( map((resInvoice) => { this.logger.info(resInvoice); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SEARCHING_INVOICE)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'Lookup', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new LNDActions.UpdateInvoice(resInvoice)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SEARCHING_INVOICE })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'Lookup', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(updateInvoice({ payload: resInvoice })); return { type: LNDActions.SET_LOOKUP_LND, payload: resInvoice @@ -1052,7 +1075,7 @@ export class LNDEffects implements OnDestroy { }), catchError((err: any) => { this.handleErrorWithoutAlert('Lookup', UI_MESSAGES.SEARCHING_INVOICE, 'Invoice Lookup Failed', err); - this.store.dispatch(new RTLActions.OpenSnackBar({ message: 'Invoice Refresh Failed.', type: 'ERROR' })); + this.store.dispatch(openSnackBar({ payload: { message: 'Invoice Refresh Failed.', type: 'ERROR' } })); return of({ type: RTLActions.VOID }); }) ); @@ -1062,7 +1085,7 @@ export class LNDEffects implements OnDestroy { setLookup = createEffect( () => this.actions.pipe( ofType(LNDActions.SET_LOOKUP_LND), - map((action: LNDActions.SetLookup) => { + map((action: { type: string, payload: any }) => { this.logger.info(action.payload); return action.payload; })), @@ -1071,12 +1094,12 @@ export class LNDEffects implements OnDestroy { getRestoreChannelList = createEffect(() => this.actions.pipe( ofType(LNDActions.RESTORE_CHANNELS_LIST_LND), - mergeMap((action: LNDActions.RestoreChannelsList) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'RestoreChannelsList', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'RestoreChannelsList', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.CHANNELS_BACKUP_API + '/restore/list').pipe( map((resRestoreList) => { this.logger.info(resRestoreList); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'RestoreChannelsList', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'RestoreChannelsList', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_RESTORE_CHANNELS_LIST_LND, payload: (resRestoreList) ? resRestoreList : { all_restore_exists: false, files: [] } @@ -1093,7 +1116,7 @@ export class LNDEffects implements OnDestroy { setRestoreChannelList = createEffect( () => this.actions.pipe( ofType(LNDActions.SET_RESTORE_CHANNELS_LIST_LND), - map((action: LNDActions.SetRestoreChannelsList) => { + map((action: { type: string, payload: SetRestoreChannelsList }) => { this.logger.info(action.payload); return action.payload; })), @@ -1102,12 +1125,12 @@ export class LNDEffects implements OnDestroy { allLightningTransactionsFetch = createEffect(() => this.actions.pipe( ofType(LNDActions.GET_ALL_LIGHTNING_TRANSATIONS_LND), - mergeMap((action: LNDActions.GetAllLightningTransactions) => { - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchLightningTransactions', status: APICallStatusEnum.INITIATED })); + mergeMap(() => { + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchLightningTransactions', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(this.CHILD_API_URL + environment.PAYMENTS_API + '/alltransactions').pipe( map((respose: any) => { this.logger.info(respose); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: 'FetchLightningTransactions', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: 'FetchLightningTransactions', status: APICallStatusEnum.COMPLETED } })); return { type: LNDActions.SET_ALL_LIGHTNING_TRANSATIONS_LND, payload: respose @@ -1131,18 +1154,8 @@ export class LNDEffects implements OnDestroy { uris: info.uris, version: (!info.version) ? '' : info.version.split(' ')[0] }; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.INITALIZE_NODE_DATA)); - this.store.dispatch(new RTLActions.SetNodeData(node_data)); - this.store.dispatch(new LNDActions.FetchFees()); // Fetches monthly forwarding history as well, to count total number of events - this.store.dispatch(new LNDActions.FetchBalance('Blockchain')); - this.store.dispatch(new LNDActions.FetchAllChannels()); - this.store.dispatch(new LNDActions.FetchPendingChannels()); - this.store.dispatch(new LNDActions.FetchClosedChannels()); - this.store.dispatch(new LNDActions.FetchPeers()); - this.store.dispatch(new LNDActions.FetchNetwork()); - this.store.dispatch(new LNDActions.GetAllLightningTransactions()); - this.store.dispatch(new LNDActions.FetchInvoices({ num_max_invoices: 10, reversed: true })); - this.store.dispatch(new LNDActions.FetchPayments({ max_payments: 10, reversed: true })); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.INITALIZE_NODE_DATA })); + this.store.dispatch(setNodeData({ payload: node_data })); let newRoute = this.location.path(); if (newRoute.includes('/cl/')) { newRoute = newRoute.replace('/cl/', '/lnd/'); @@ -1153,18 +1166,28 @@ export class LNDEffects implements OnDestroy { newRoute = '/lnd/home'; } this.router.navigate([newRoute]); + this.store.dispatch(fetchFees()); // Fetches monthly forwarding history as well, to count total number of events + this.store.dispatch(fetchBalanceBlockchain()); + this.store.dispatch(fetchChannels()); + this.store.dispatch(fetchPendingChannels()); + this.store.dispatch(fetchClosedChannels()); + this.store.dispatch(fetchPeers()); + this.store.dispatch(fetchNetwork()); + this.store.dispatch(getAllLightningTransactions()); + this.store.dispatch(fetchInvoices({ payload: { num_max_invoices: 10, reversed: true } })); + this.store.dispatch(fetchPayments({ payload: { max_payments: 10, reversed: true } })); } handleErrorWithoutAlert(actionName: string, uiMessage: string, genericErrorMessage: string, err: { status: number, error: any }) { this.logger.error('ERROR IN: ' + actionName + '\n' + JSON.stringify(err)); if (err.status === 401) { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: this.commonService.extractErrorMessage(err, genericErrorMessage) })); + this.store.dispatch(closeSpinner({ payload: uiMessage })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: this.commonService.extractErrorMessage(err, genericErrorMessage) } })); } } @@ -1172,21 +1195,23 @@ export class LNDEffects implements OnDestroy { this.logger.error(err); if (err.status === 401) { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); const errMsg = this.commonService.extractErrorMessage(err); - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: 'ERROR', - alertTitle: alertTitle, - message: { code: err.status, message: errMsg, URL: errURL }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: 'ERROR', + alertTitle: alertTitle, + message: { code: err.status, message: errMsg, URL: errURL }, + component: ErrorMessageComponent + } } })); - this.store.dispatch(new LNDActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg, URL: errURL })); + this.store.dispatch(updateLNDAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg, URL: errURL } })); } } diff --git a/src/app/lnd/store/lnd.reducers.ts b/src/app/lnd/store/lnd.reducers.ts index 21238b89..579d5f8d 100644 --- a/src/app/lnd/store/lnd.reducers.ts +++ b/src/app/lnd/store/lnd.reducers.ts @@ -1,323 +1,226 @@ -import { pipe } from 'rxjs'; -import { scan } from 'rxjs/operators'; -import { createFeatureSelector, createSelector, select } from '@ngrx/store'; -import { SelNodeChild } from '../../shared/models/RTLconfig'; -import { ApiCallsListLND } from '../../shared/models/apiCallsPayload'; -import { - GetInfo, Peer, Fees, NetworkInfo, Balance, Channel, ListInvoices, - PendingChannels, ClosedChannel, Transaction, SwitchRes, PendingChannelsGroup, UTXO, ListPayments -} from '../../shared/models/lndModels'; -import { APICallStatusEnum, UserPersonaEnum } from '../../shared/services/consts-enums-functions'; +import { createReducer, on } from '@ngrx/store'; -import * as LNDActions from './lnd.actions'; +import { initLNDState } from './lnd.state'; +import { addInvoice, removeChannel, removePeer, resetLNDStore, setChannels, setAllLightningTransactions, setBalanceBlockchain, setChildNodeSettingsLND, setClosedChannels, setFees, setForwardingHistory, setInfo, setInvoices, setNetwork, setPayments, setPeers, setPendingChannels, setTransactions, setUTXOs, updateLNDAPICallStatus, updateInvoice } from './lnd.actions'; let flgTransactionsSet = false; let flgUTXOsSet = false; -export interface LNDState { - apisCallStatus: ApiCallsListLND; - nodeSettings: SelNodeChild; - information: GetInfo; - peers: Peer[]; - fees: Fees; - networkInfo: NetworkInfo; - blockchainBalance: Balance; - allChannels: Channel[]; - closedChannels: ClosedChannel[]; - pendingChannels: PendingChannels; - numberOfActiveChannels: number; - numberOfInactiveChannels: number; - numberOfPendingChannels: PendingChannelsGroup; - totalCapacityActive: number; - totalCapacityInactive: number; - totalLocalBalance: number; - totalRemoteBalance: number; - totalInvoices: number; - transactions: Transaction[]; - utxos: UTXO[]; - payments: ListPayments; - invoices: ListInvoices; - allLightningTransactions: { paymentsAll: ListPayments, invoicesAll: ListInvoices }; - forwardingHistory: SwitchRes; -} - -export const initLNDState: LNDState = { - apisCallStatus: { - FetchInfo: { status: APICallStatusEnum.UN_INITIATED }, - FetchFees: { status: APICallStatusEnum.UN_INITIATED }, - FetchPeers: { status: APICallStatusEnum.UN_INITIATED }, - FetchClosedChannels: { status: APICallStatusEnum.UN_INITIATED }, - FetchPendingChannels: { status: APICallStatusEnum.UN_INITIATED }, - FetchAllChannels: { status: APICallStatusEnum.UN_INITIATED }, - FetchBalanceBlockchain: { status: APICallStatusEnum.UN_INITIATED }, - FetchInvoices: { status: APICallStatusEnum.UN_INITIATED }, - FetchPayments: { status: APICallStatusEnum.UN_INITIATED }, - GetForwardingHistory: { status: APICallStatusEnum.UN_INITIATED }, - FetchUTXOs: { status: APICallStatusEnum.UN_INITIATED }, - FetchTransactions: { status: APICallStatusEnum.UN_INITIATED }, - FetchLightningTransactions: { status: APICallStatusEnum.UN_INITIATED }, - FetchNetwork: { status: APICallStatusEnum.UN_INITIATED } - }, - nodeSettings: { userPersona: UserPersonaEnum.OPERATOR, fiatConversion: false, channelBackupPath: '', currencyUnits: [], selCurrencyUnit: '', lnImplementation: '', swapServerUrl: '' }, - information: {}, - peers: [], - fees: {}, - networkInfo: {}, - blockchainBalance: { total_balance: -1 }, - allChannels: [], - closedChannels: [], - pendingChannels: {}, - numberOfActiveChannels: 0, - numberOfInactiveChannels: 0, - numberOfPendingChannels: { open: { num_channels: 0, limbo_balance: 0 }, closing: { num_channels: 0, limbo_balance: 0 }, force_closing: { num_channels: 0, limbo_balance: 0 }, waiting_close: { num_channels: 0, limbo_balance: 0 }, total_channels: 0, total_limbo_balance: 0 }, - totalCapacityActive: 0, - totalCapacityInactive: 0, - totalLocalBalance: -1, - totalRemoteBalance: -1, - totalInvoices: -1, - transactions: [], - utxos: [], - payments: { payments: [] }, - invoices: { invoices: [] }, - allLightningTransactions: { paymentsAll: null, invoicesAll: null }, - forwardingHistory: {} -}; - -export function LNDReducer(state = initLNDState, action: LNDActions.LNDActions) { - switch (action.type) { - case LNDActions.UPDATE_API_CALL_STATUS_LND: - const updatedApisCallStatus = state.apisCallStatus; - updatedApisCallStatus[action.payload.action] = { - status: action.payload.status, - statusCode: action.payload.statusCode, - message: action.payload.message, - URL: action.payload.URL, - filePath: action.payload.filePath - }; - return { - ...state, - apisCallStatus: updatedApisCallStatus - }; - case LNDActions.SET_CHILD_NODE_SETTINGS_LND: - return { - ...state, - nodeSettings: action.payload - }; - case LNDActions.RESET_LND_STORE: - return { - ...initLNDState, - nodeSettings: action.payload - }; - case LNDActions.SET_INFO_LND: - return { - ...state, - information: action.payload - }; - case LNDActions.SET_PEERS_LND: - return { - ...state, - peers: action.payload - }; - case LNDActions.REMOVE_PEER_LND: - const modifiedPeers = [...state.peers]; - const removePeerIdx = state.peers.findIndex((peer) => peer.pub_key === action.payload.pubkey); - if (removePeerIdx > -1) { - modifiedPeers.splice(removePeerIdx, 1); - } - return { - ...state, - peers: modifiedPeers - }; - case LNDActions.ADD_INVOICE_LND: - const newInvoices = state.invoices; - newInvoices.invoices.unshift(action.payload); - return { - ...state, - invoices: newInvoices - }; - case LNDActions.UPDATE_INVOICE_LND: - const modifiedInvoices = state.invoices; - modifiedInvoices.invoices = modifiedInvoices.invoices.map((invoice) => ((invoice.r_hash === action.payload.r_hash) ? action.payload : invoice)); - return { - ...state, - invoices: modifiedInvoices - }; - case LNDActions.SET_FEES_LND: - return { - ...state, - fees: action.payload - }; - case LNDActions.SET_CLOSED_CHANNELS_LND: - return { - ...state, - closedChannels: action.payload - }; - case LNDActions.SET_PENDING_CHANNELS_LND: - return { - ...state, - pendingChannels: action.payload.channels, - numberOfPendingChannels: action.payload.pendingChannels - }; - case LNDActions.SET_ALL_CHANNELS_LND: - let localBal = 0; - let remoteBal = 0; - let activeChannels = 0; - let inactiveChannels = 0; - let totalCapacityActive = 0; - let totalCapacityInactive = 0; - if (action.payload) { - action.payload.forEach((channel) => { - if (!channel.local_balance) { +export const LNDReducer = createReducer(initLNDState, + on(updateLNDAPICallStatus, (state, { payload }) => { + const updatedApisCallStatus = JSON.parse(JSON.stringify(state.apisCallStatus)); + updatedApisCallStatus[payload.action] = { + status: payload.status, + statusCode: payload.statusCode, + message: payload.message, + URL: payload.URL, + filePath: payload.filePath + }; + return { + ...state, + apisCallStatus: updatedApisCallStatus + }; + }), + on(setChildNodeSettingsLND, (state, { payload }) => ({ + ...state, + nodeSettings: payload + })), + on(resetLNDStore, (state, { payload }) => ({ + ...initLNDState, + nodeSettings: payload + })), + on(setInfo, (state, { payload }) => ({ + ...state, + information: payload + })), + on(setPeers, (state, { payload }) => ({ + ...state, + peers: payload + })), + on(removePeer, (state, { payload }) => { + const modifiedPeers = [...state.peers]; + const removePeerIdx = state.peers.findIndex((peer) => peer.pub_key === payload.pubkey); + if (removePeerIdx > -1) { + modifiedPeers.splice(removePeerIdx, 1); + } + return { + ...state, + peers: modifiedPeers + }; + }), + on(addInvoice, (state, { payload }) => { + const newListInvoices = state.listInvoices; + newListInvoices.invoices.unshift(payload); + return { + ...state, + listInvoices: newListInvoices + }; + }), + on(updateInvoice, (state, { payload }) => { + const modifiedListInvoices = state.listInvoices; + modifiedListInvoices.invoices = modifiedListInvoices.invoices.map((invoice) => ((invoice.payment_request === payload.payment_request) ? payload : invoice)); + return { + ...state, + listInvoices: modifiedListInvoices + }; + }), + on(setFees, (state, { payload }) => ({ + ...state, + fees: payload + })), + on(setClosedChannels, (state, { payload }) => ({ + ...state, + closedChannels: payload + })), + on(setPendingChannels, (state, { payload }) => ({ + ...state, + pendingChannels: payload.pendingChannels, + pendingChannelsSummary: payload.pendingChannelsSummary + })), + on(setChannels, (state, { payload }) => { + let localBal = 0; + let remoteBal = 0; + let activeChannels = 0; + let inactiveChannels = 0; + let totalCapacityActive = 0; + let totalCapacityInactive = 0; + if (payload) { + payload.forEach((channel) => { + if (!channel.local_balance) { + channel.local_balance = 0; + } + if (channel.active === true) { + totalCapacityActive = totalCapacityActive + +channel.local_balance; + activeChannels = activeChannels + 1; + if (channel.local_balance) { + localBal = +localBal + +channel.local_balance; + } else { channel.local_balance = 0; } - if (channel.active === true) { - totalCapacityActive = totalCapacityActive + +channel.local_balance; - activeChannels = activeChannels + 1; - if (channel.local_balance) { - localBal = +localBal + +channel.local_balance; - } else { - channel.local_balance = 0; - } - if (channel.remote_balance) { - remoteBal = +remoteBal + +channel.remote_balance; - } else { - channel.remote_balance = 0; - } + if (channel.remote_balance) { + remoteBal = +remoteBal + +channel.remote_balance; } else { - totalCapacityInactive = totalCapacityInactive + +channel.local_balance; - inactiveChannels = inactiveChannels + 1; + channel.remote_balance = 0; } - }); - } - return { - ...state, - allChannels: action.payload, - numberOfActiveChannels: activeChannels, - numberOfInactiveChannels: inactiveChannels, - totalCapacityActive: totalCapacityActive, - totalCapacityInactive: totalCapacityInactive, - totalLocalBalance: localBal, - totalRemoteBalance: remoteBal - }; - case LNDActions.REMOVE_CHANNEL_LND: - const modifiedChannels = [...state.allChannels]; - const removeChannelIdx = state.allChannels.findIndex((channel) => channel.channel_point === action.payload.channelPoint); - if (removeChannelIdx > -1) { - modifiedChannels.splice(removeChannelIdx, 1); - } - return { - ...state, - allChannels: modifiedChannels - }; - case LNDActions.SET_BALANCE_LND: - if (action.payload.target === 'Blockchain') { - return { - ...state, - blockchainBalance: action.payload.balance - }; - } else { - return { ...state }; - } - case LNDActions.SET_NETWORK_LND: - return { - ...state, - networkInfo: action.payload - }; - case LNDActions.SET_INVOICES_LND: - return { - ...state, - invoices: action.payload - }; - case LNDActions.SET_TOTAL_INVOICES_LND: - return { - ...state, - totalInvoices: action.payload - }; - case LNDActions.SET_TRANSACTIONS_LND: - flgTransactionsSet = true; - if (action.payload.length && flgUTXOsSet) { - const modifiedUTXOs = [...state.utxos]; - modifiedUTXOs.forEach((utxo) => { - const foundTransaction = action.payload.find((transaction) => transaction.tx_hash === utxo.outpoint.txid_str); - utxo.label = foundTransaction && foundTransaction.label ? foundTransaction.label : ''; - }); - return { - ...state, - utxos: modifiedUTXOs, - transactions: action.payload - }; - } - return { - ...state, - transactions: action.payload - }; - case LNDActions.SET_UTXOS_LND: - flgUTXOsSet = true; - if (action.payload.length && flgTransactionsSet) { - const transactions = [...state.transactions]; - action.payload.forEach((utxo) => { - const foundTransaction = transactions.find((transaction) => transaction.tx_hash === utxo.outpoint.txid_str); - utxo.label = foundTransaction && foundTransaction.label ? foundTransaction.label : ''; - }); - } - return { - ...state, - utxos: action.payload - }; - case LNDActions.SET_PAYMENTS_LND: - return { - ...state, - payments: action.payload - }; - case LNDActions.SET_ALL_LIGHTNING_TRANSATIONS_LND: - return { - ...state, - allLightningTransactions: action.payload - }; - case LNDActions.SET_FORWARDING_HISTORY_LND: - if (action.payload.forwarding_events) { - const storedChannels = [...state.allChannels, ...state.closedChannels]; - action.payload.forwarding_events.forEach((fhEvent) => { - if (storedChannels && storedChannels.length > 0) { - for (let idx = 0; idx < storedChannels.length; idx++) { - if (storedChannels[idx].chan_id.toString() === fhEvent.chan_id_in) { - fhEvent.alias_in = storedChannels[idx].remote_alias ? storedChannels[idx].remote_alias : fhEvent.chan_id_in; - if (fhEvent.alias_out) { - return; - } + } else { + totalCapacityInactive = totalCapacityInactive + +channel.local_balance; + inactiveChannels = inactiveChannels + 1; + } + }); + } + return { + ...state, + channels: payload, + channelsSummary: { active: { num_channels: activeChannels, capacity: totalCapacityActive }, inactive: { num_channels: inactiveChannels, capacity: totalCapacityInactive } }, + lightningBalance: { local: localBal, remote: remoteBal } + }; + }), + on(removeChannel, (state, { payload }) => { + const modifiedChannels = [...state.channels]; + const removeChannelIdx = state.channels.findIndex((channel) => channel.channel_point === payload.channelPoint); + if (removeChannelIdx > -1) { + modifiedChannels.splice(removeChannelIdx, 1); + } + return { + ...state, + channels: modifiedChannels + }; + }), + on(setBalanceBlockchain, (state, { payload }) => ({ + ...state, + blockchainBalance: payload + })), + on(setNetwork, (state, { payload }) => ({ + ...state, + networkInfo: payload + })), + on(setInvoices, (state, { payload }) => { + if (!payload.total_invoices) { + payload.total_invoices = state.listInvoices.total_invoices; + } + return { + ...state, + listInvoices: payload + }; + }), + on(setTransactions, (state, { payload }) => { + flgTransactionsSet = true; + if (payload.length && flgUTXOsSet) { + const modifiedUTXOs = [...state.utxos]; + modifiedUTXOs.forEach((utxo) => { + const foundTransaction = payload.find((transaction) => transaction.tx_hash === utxo.outpoint.txid_str); + utxo.label = foundTransaction && foundTransaction.label ? foundTransaction.label : ''; + }); + return { + ...state, + utxos: modifiedUTXOs, + transactions: payload + }; + } + return { + ...state, + transactions: payload + }; + }), + on(setUTXOs, (state, { payload }) => { + flgUTXOsSet = true; + if (payload.length && flgTransactionsSet) { + const transactions = [...state.transactions]; + payload.forEach((utxo) => { + const foundTransaction = transactions.find((transaction) => transaction.tx_hash === utxo.outpoint.txid_str); + utxo.label = foundTransaction && foundTransaction.label ? foundTransaction.label : ''; + }); + } + return { + ...state, + utxos: payload + }; + }), + on(setPayments, (state, { payload }) => ({ + ...state, + listPayments: payload + })), + on(setAllLightningTransactions, (state, { payload }) => ({ + ...state, + allLightningTransactions: payload + })), + on(setForwardingHistory, (state, { payload }) => { + const updatedPayload = !payload.forwarding_events ? {} : JSON.parse(JSON.stringify(payload)); + if (updatedPayload.forwarding_events) { + const storedChannels = [...state.channels, ...state.closedChannels]; + updatedPayload.forwarding_events.forEach((fhEvent) => { + if (storedChannels && storedChannels.length > 0) { + for (let idx = 0; idx < storedChannels.length; idx++) { + if (storedChannels[idx].chan_id.toString() === fhEvent.chan_id_in) { + fhEvent.alias_in = storedChannels[idx].remote_alias ? storedChannels[idx].remote_alias : fhEvent.chan_id_in; + if (fhEvent.alias_out) { + return; } - if (storedChannels[idx].chan_id.toString() === fhEvent.chan_id_out) { - fhEvent.alias_out = storedChannels[idx].remote_alias ? storedChannels[idx].remote_alias : fhEvent.chan_id_out; - if (fhEvent.alias_in) { - return; - } + } + if (storedChannels[idx].chan_id.toString() === fhEvent.chan_id_out) { + fhEvent.alias_out = storedChannels[idx].remote_alias ? storedChannels[idx].remote_alias : fhEvent.chan_id_out; + if (fhEvent.alias_in) { + return; } - if (idx === storedChannels.length - 1) { - if (!fhEvent.alias_in) { - fhEvent.alias_in = fhEvent.chan_id_in; - } - if (!fhEvent.alias_out) { - fhEvent.alias_out = fhEvent.chan_id_out; - } + } + if (idx === storedChannels.length - 1) { + if (!fhEvent.alias_in) { + fhEvent.alias_in = fhEvent.chan_id_in; + } + if (!fhEvent.alias_out) { + fhEvent.alias_out = fhEvent.chan_id_out; } } - } else { - fhEvent.alias_in = fhEvent.chan_id_in; - fhEvent.alias_out = fhEvent.chan_id_out; } - }); - } else { - action.payload = {}; - } - return { - ...state, - forwardingHistory: action.payload - }; - default: - return state; - } -} - -export const getLNDState = createFeatureSelector('lnd'); -export const getInformation = createSelector(getLNDState, (state: LNDState) => state.information); -export const takeLastGetInfo = (count: number) => pipe(select(getInformation), scan((acc, curr) => [curr, ...acc].filter((val, index) => index < count && val.hasOwnProperty('identity_pubkey')), [] as GetInfo[])); + } else { + fhEvent.alias_in = fhEvent.chan_id_in; + fhEvent.alias_out = fhEvent.chan_id_out; + } + }); + } + return { + ...state, + forwardingHistory: updatedPayload + }; + }) +); diff --git a/src/app/lnd/store/lnd.selector.ts b/src/app/lnd/store/lnd.selector.ts new file mode 100644 index 00000000..f0dca16a --- /dev/null +++ b/src/app/lnd/store/lnd.selector.ts @@ -0,0 +1,25 @@ +import { createFeatureSelector, createSelector } from '@ngrx/store'; +import { LNDState } from './lnd.state'; + +export const lndState = createFeatureSelector('lnd'); +export const lndNodeSettings = createSelector(lndState, (state: LNDState) => state.nodeSettings); +export const lndNodeInformation = createSelector(lndState, (state: LNDState) => state.information); +export const nodeInfoStatus = createSelector(lndState, (state: LNDState) => ({ information: state.information, apiCallStatus: state.apisCallStatus.FetchInfo })); +export const allAPIsCallStatus = createSelector(lndState, (state: LNDState) => state.apisCallStatus); +export const forwardingHistory = createSelector(lndState, (state: LNDState) => ({ forwardingHistory: state.forwardingHistory, apiCallStatus: state.apisCallStatus.FetchForwardingHistory })); +export const payments = createSelector(lndState, (state: LNDState) => ({ listPayments: state.listPayments, apiCallStatus: state.apisCallStatus.FetchPayments })); +export const fees = createSelector(lndState, (state: LNDState) => ({ fees: state.fees, apiCallStatus: state.apisCallStatus.FetchFees })); +export const peers = createSelector(lndState, (state: LNDState) => ({ peers: state.peers, apiCallStatus: state.apisCallStatus.FetchPeers })); +export const transactions = createSelector(lndState, (state: LNDState) => ({ transactions: state.transactions, apiCallStatus: state.apisCallStatus.FetchTransactions })); +export const invoices = createSelector(lndState, (state: LNDState) => ({ listInvoices: state.listInvoices, apiCallStatus: state.apisCallStatus.FetchInvoices })); +export const channels = createSelector(lndState, (state: LNDState) => ({ channels: state.channels, channelsSummary: state.channelsSummary, lightningBalance: state.lightningBalance, apiCallStatus: state.apisCallStatus.FetchAllChannels })); +export const channelsSummary = createSelector(lndState, (state: LNDState) => ({ channelsSummary: state.channelsSummary, pendingChannels: state.pendingChannels, closedChannels: state.closedChannels, apiCallStatus: state.apisCallStatus.FetchAllChannels })); +export const pendingChannels = createSelector(lndState, (state: LNDState) => ({ pendingChannels: state.pendingChannels, pendingChannelsSummary: state.pendingChannelsSummary, apiCallStatus: state.apisCallStatus.FetchPendingChannels })); +export const closedChannels = createSelector(lndState, (state: LNDState) => ({ closedChannels: state.closedChannels, apiCallStatus: state.apisCallStatus.FetchClosedChannels })); +export const blockchainBalance = createSelector(lndState, (state: LNDState) => ({ blockchainBalance: state.blockchainBalance, apiCallStatus: state.apisCallStatus.FetchBalanceBlockchain })); +export const lightningBalance = createSelector(lndState, (state: LNDState) => ({ lightningBalance: state.lightningBalance, apiCallStatus: state.apisCallStatus.FetchAllChannels })); +export const utxos = createSelector(lndState, (state: LNDState) => ({ utxos: state.utxos, apiCallStatus: state.apisCallStatus.FetchUTXOs })); +export const networkInfo = createSelector(lndState, (state: LNDState) => ({ networkInfo: state.networkInfo, apiCallStatus: state.apisCallStatus.FetchNetwork })); +export const allLightningTransactions = createSelector(lndState, (state: LNDState) => ({ allLightningTransactions: state.allLightningTransactions, apiCallStatus: state.apisCallStatus.FetchLightningTransactions })); +export const allChannels = createSelector(lndState, (state: LNDState) => ({ channels: state.channels, pendingChannels: state.pendingChannels, closedChannels: state.closedChannels })); +export const nodeInfoAndNodeSettingsAndAPIStatus = createSelector(lndState, (state: LNDState) => ({ information: state.information, nodeSettings: state.nodeSettings, apiCallStatus: state.apisCallStatus.FetchInfo })); diff --git a/src/app/lnd/store/lnd.state.ts b/src/app/lnd/store/lnd.state.ts new file mode 100644 index 00000000..7fee8054 --- /dev/null +++ b/src/app/lnd/store/lnd.state.ts @@ -0,0 +1,87 @@ +import { SelNodeChild } from '../../shared/models/RTLconfig'; +import { ApiCallsListLND } from '../../shared/models/apiCallsPayload'; +import { APICallStatusEnum, UserPersonaEnum } from '../../shared/services/consts-enums-functions'; +import { GetInfo, Peer, Fees, NetworkInfo, BlockchainBalance, Channel, ListInvoices, PendingChannels, ClosedChannel, Transaction, SwitchRes, PendingChannelsSummary, UTXO, ListPayments, LightningBalance, ChannelsSummary } from '../../shared/models/lndModels'; + +export interface LNDState { + apisCallStatus: ApiCallsListLND; + nodeSettings: SelNodeChild; + information: GetInfo; + peers: Peer[]; + fees: Fees; + networkInfo: NetworkInfo; + blockchainBalance: BlockchainBalance; + lightningBalance: LightningBalance; + channels: Channel[]; + channelsSummary: ChannelsSummary; + closedChannels: ClosedChannel[]; + pendingChannels: PendingChannels; + pendingChannelsSummary: PendingChannelsSummary; + transactions: Transaction[]; + utxos: UTXO[]; + listPayments: ListPayments; + listInvoices: ListInvoices; + allLightningTransactions: { listPaymentsAll: ListPayments, listInvoicesAll: ListInvoices }; + forwardingHistory: SwitchRes; +} + +export const initLNDState: LNDState = { + apisCallStatus: { + FetchInfo: { status: APICallStatusEnum.UN_INITIATED }, + FetchFees: { status: APICallStatusEnum.UN_INITIATED }, + FetchPeers: { status: APICallStatusEnum.UN_INITIATED }, + FetchClosedChannels: { status: APICallStatusEnum.UN_INITIATED }, + FetchPendingChannels: { status: APICallStatusEnum.UN_INITIATED }, + FetchAllChannels: { status: APICallStatusEnum.UN_INITIATED }, + FetchBalanceBlockchain: { status: APICallStatusEnum.UN_INITIATED }, + FetchInvoices: { status: APICallStatusEnum.UN_INITIATED }, + FetchPayments: { status: APICallStatusEnum.UN_INITIATED }, + FetchForwardingHistory: { status: APICallStatusEnum.UN_INITIATED }, + FetchUTXOs: { status: APICallStatusEnum.UN_INITIATED }, + FetchTransactions: { status: APICallStatusEnum.UN_INITIATED }, + FetchLightningTransactions: { status: APICallStatusEnum.UN_INITIATED }, + FetchNetwork: { status: APICallStatusEnum.UN_INITIATED } + }, + nodeSettings: { userPersona: UserPersonaEnum.OPERATOR, fiatConversion: false, channelBackupPath: '', currencyUnits: [], selCurrencyUnit: '', lnImplementation: '', swapServerUrl: '' }, + information: {}, + peers: [], + fees: { + channel_fees: [], + day_fee_sum: 0, + week_fee_sum: 0, + month_fee_sum: 0, + daily_tx_count: 0, + weekly_tx_count: 0, + monthly_tx_count: 0, + forwarding_events_history: {} + }, + networkInfo: {}, + blockchainBalance: { total_balance: -1 }, + lightningBalance: { local: -1, remote: -1 }, + channels: [], + channelsSummary: { active: { num_channels: 0, capacity: 0 }, inactive: { num_channels: 0, capacity: 0 } }, + closedChannels: [], + pendingChannels: {}, + pendingChannelsSummary: { open: { num_channels: 0, limbo_balance: 0 }, closing: { num_channels: 0, limbo_balance: 0 }, force_closing: { num_channels: 0, limbo_balance: 0 }, waiting_close: { num_channels: 0, limbo_balance: 0 }, total_channels: 0, total_limbo_balance: 0 }, + transactions: [], + utxos: [], + listPayments: { payments: [] }, + listInvoices: { invoices: [] }, + allLightningTransactions: { + listPaymentsAll: { + payments: [], + first_index_offset: '', + last_index_offset: '' + }, listInvoicesAll: { + invoices: [], + total_invoices: 0, + last_index_offset: '', + first_index_offset: '' + } + }, + forwardingHistory: { + last_offset_index: 0, + total_fee_msat: 0, + forwarding_events: [] + } +}; diff --git a/src/app/lnd/transactions/create-invoice-modal/create-invoice.component.html b/src/app/lnd/transactions/create-invoice-modal/create-invoice.component.html index bb6da8a1..a0bb3552 100644 --- a/src/app/lnd/transactions/create-invoice-modal/create-invoice.component.html +++ b/src/app/lnd/transactions/create-invoice-modal/create-invoice.component.html @@ -33,8 +33,8 @@ {{invoiceError}}
- - + +
diff --git a/src/app/lnd/transactions/create-invoice-modal/create-invoice.component.ts b/src/app/lnd/transactions/create-invoice-modal/create-invoice.component.ts index 07891354..d88b4025 100644 --- a/src/app/lnd/transactions/create-invoice-modal/create-invoice.component.ts +++ b/src/app/lnd/transactions/create-invoice-modal/create-invoice.component.ts @@ -8,13 +8,14 @@ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { InvoiceInformation } from '../../../shared/models/alertData'; -import { TimeUnitEnum, CurrencyUnitEnum, TIME_UNITS, CURRENCY_UNIT_FORMATS, PAGE_SIZE, APICallStatusEnum, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; +import { LNDActions, TimeUnitEnum, CurrencyUnitEnum, TIME_UNITS, CURRENCY_UNIT_FORMATS, PAGE_SIZE, APICallStatusEnum, UI_MESSAGES } from '../../../shared/services/consts-enums-functions'; import { SelNodeChild } from '../../../shared/models/RTLconfig'; import { GetInfo } from '../../../shared/models/lndModels'; import { CommonService } from '../../../shared/services/common.service'; -import * as LNDActions from '../../store/lnd.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { saveNewInvoice } from '../../store/lnd.actions'; +import { lndNodeInformation, lndNodeSettings } from '../../store/lnd.selector'; @Component({ selector: 'rtl-create-invoices', @@ -41,26 +42,23 @@ export class CreateInvoiceComponent implements OnInit, OnDestroy { public invoiceError = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: InvoiceInformation, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private actions: Actions) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: InvoiceInformation, private store: Store, private decimalPipe: DecimalPipe, private commonService: CommonService, private actions: Actions) { } ngOnInit() { this.pageSize = this.data.pageSize; - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.selNode = rtlStore.nodeSettings; - this.information = rtlStore.information; - }); - this.actions.pipe( - takeUntil(this.unSubs[1]), - filter((action) => action.type === LNDActions.UPDATE_API_CALL_STATUS_LND || action.type === LNDActions.FETCH_INVOICES_LND) - ). // NEWLY_SAVED_INVOICE - subscribe((action: LNDActions.UpdateAPICallStatus | LNDActions.FetchInvoices) => { // NewlySavedInvoice - if (action.type === LNDActions.FETCH_INVOICES_LND) { // NEWLY_SAVED_INVOICE && openModal: false at line 73 - this.dialogRef.close(); - } - if (action.type === LNDActions.UPDATE_API_CALL_STATUS_LND && action.payload.status === APICallStatusEnum.ERROR && action.payload.action === 'SaveNewInvoice') { + this.store.select(lndNodeSettings).pipe(takeUntil(this.unSubs[0])).subscribe((nodeSettings: SelNodeChild) => { this.selNode = nodeSettings; }); + this.store.select(lndNodeInformation).pipe(takeUntil(this.unSubs[1])).subscribe((nodeInfo: GetInfo) => { this.information = nodeInfo; }); + this.actions.pipe(takeUntil(this.unSubs[2]), + filter((action) => action.type === LNDActions.UPDATE_API_CALL_STATUS_LND)). + subscribe((action: any) => { + if (action.type === LNDActions.UPDATE_API_CALL_STATUS_LND && action.payload.action === 'SaveNewInvoice') { this.invoiceError = action.payload.message; + if (action.payload.status === APICallStatusEnum.ERROR) { + this.invoiceError = action.payload.message; + } + if (action.payload.status === APICallStatusEnum.COMPLETED) { + this.dialogRef.close(); + } } }); } @@ -71,8 +69,10 @@ export class CreateInvoiceComponent implements OnInit, OnDestroy { if (this.selTimeUnit !== TimeUnitEnum.SECS) { expiryInSecs = this.commonService.convertTime(this.expiry, this.selTimeUnit, TimeUnitEnum.SECS); } - this.store.dispatch(new LNDActions.SaveNewInvoice({ - uiMessage: UI_MESSAGES.ADD_INVOICE, memo: this.memo, invoiceValue: this.invoiceValue, private: this.private, expiry: expiryInSecs, pageSize: this.pageSize, openModal: true + this.store.dispatch(saveNewInvoice({ + payload: { + uiMessage: UI_MESSAGES.ADD_INVOICE, memo: this.memo, invoiceValue: this.invoiceValue, private: this.private, expiry: expiryInSecs, pageSize: this.pageSize, openModal: true + } })); } @@ -90,12 +90,14 @@ export class CreateInvoiceComponent implements OnInit, OnDestroy { if (this.selNode.fiatConversion && this.invoiceValue > 99) { this.invoiceValueHint = ''; this.commonService.convertCurrency(this.invoiceValue, CurrencyUnitEnum.SATS, CurrencyUnitEnum.OTHER, this.selNode.currencyUnits[2], this.selNode.fiatConversion). - pipe(takeUntil(this.unSubs[2])). - subscribe({ next: (data) => { - this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; - }, error: (err) => { - this.invoiceValueHint = 'Conversion Error: ' + err; - } }); + pipe(takeUntil(this.unSubs[3])). + subscribe({ + next: (data) => { + this.invoiceValueHint = '= ' + data.symbol + this.decimalPipe.transform(data.OTHER, CURRENCY_UNIT_FORMATS.OTHER) + ' ' + data.unit; + }, error: (err) => { + this.invoiceValueHint = 'Conversion Error: ' + err; + } + }); } } diff --git a/src/app/lnd/transactions/invoice-information-modal/invoice-information.component.html b/src/app/lnd/transactions/invoice-information-modal/invoice-information.component.html index 2e110f54..041b35e6 100644 --- a/src/app/lnd/transactions/invoice-information-modal/invoice-information.component.html +++ b/src/app/lnd/transactions/invoice-information-modal/invoice-information.component.html @@ -1,7 +1,7 @@
- @@ -38,10 +38,10 @@
-
-

{{data.titleMessage}}

+
+

{{data.titleMessage}}

diff --git a/src/app/shared/components/data-modal/confirmation-message/confirmation-message.component.html b/src/app/shared/components/data-modal/confirmation-message/confirmation-message.component.html index 191d3b40..b4c191f0 100644 --- a/src/app/shared/components/data-modal/confirmation-message/confirmation-message.component.html +++ b/src/app/shared/components/data-modal/confirmation-message/confirmation-message.component.html @@ -51,9 +51,9 @@
- - - + + +
diff --git a/src/app/shared/components/data-modal/confirmation-message/confirmation-message.component.ts b/src/app/shared/components/data-modal/confirmation-message/confirmation-message.component.ts index f7ffd2ed..131d223a 100644 --- a/src/app/shared/components/data-modal/confirmation-message/confirmation-message.component.ts +++ b/src/app/shared/components/data-modal/confirmation-message/confirmation-message.component.ts @@ -7,8 +7,8 @@ import { LoggerService } from '../../../services/logger.service'; import { InputData, ConfirmationData } from '../../../models/alertData'; import { AlertTypeEnum, DataTypeEnum } from '../../../services/consts-enums-functions'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { closeConfirmation } from '../../../../store/rtl.actions'; @Component({ selector: 'rtl-confirmation-message', @@ -31,7 +31,7 @@ export class ConfirmationMessageComponent implements OnInit { constructor( public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ConfirmationData, private logger: LoggerService, - private store: Store + private store: Store ) { } ngOnInit() { @@ -53,7 +53,7 @@ export class ConfirmationMessageComponent implements OnInit { if (dialogRes && this.getInputs && this.getInputs.some((input) => !input.inputValue)) { return true; } - this.store.dispatch(new RTLActions.CloseConfirmation(dialogRes)); + this.store.dispatch(closeConfirmation({ payload: dialogRes })); } } diff --git a/src/app/shared/components/data-modal/error-message/error-message.component.html b/src/app/shared/components/data-modal/error-message/error-message.component.html index 568c27fb..165e6837 100644 --- a/src/app/shared/components/data-modal/error-message/error-message.component.html +++ b/src/app/shared/components/data-modal/error-message/error-message.component.html @@ -19,7 +19,7 @@ {{data.message.URL}}
- +
diff --git a/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.html b/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.html index 0277ac10..68121815 100644 --- a/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.html +++ b/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.html @@ -13,7 +13,7 @@ Token is required.
- +
diff --git a/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.spec.ts b/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.spec.ts index a94e5754..12acc8d7 100644 --- a/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.spec.ts +++ b/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.spec.ts @@ -3,7 +3,10 @@ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { mockMatDialogRef } from '../../../test-helpers/mock-services'; import { SharedModule } from '../../../shared.module'; import { LoginTokenComponent } from './login-2fa-token.component'; @@ -18,12 +21,7 @@ describe('LoginTokenComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: MatDialogRef, useClass: mockMatDialogRef }, diff --git a/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.ts b/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.ts index dd274f2a..c4ad44b6 100644 --- a/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.ts +++ b/src/app/shared/components/data-modal/login-2fa-token/login-2fa-token.component.ts @@ -3,8 +3,8 @@ import { Store } from '@ngrx/store'; import { MatDialogRef } from '@angular/material/dialog'; import { faUserClock } from '@fortawesome/free-solid-svg-icons'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; -import * as RTLActions from '../../../../store/rtl.actions'; +import { RTLState } from '../../../../store/rtl.state'; +import { closeAlert } from '../../../../store/rtl.actions'; @Component({ selector: 'rtl-login-token', @@ -16,7 +16,7 @@ export class LoginTokenComponent { public faUserClock = faUserClock; public token = ''; - constructor(public dialogRef: MatDialogRef, private store: Store) { } + constructor(public dialogRef: MatDialogRef, private store: Store) { } onClose() { this.dialogRef.close(null); @@ -27,7 +27,7 @@ export class LoginTokenComponent { return true; } this.dialogRef.close(); - this.store.dispatch(new RTLActions.CloseAlert({ twoFAToken: this.token })); + this.store.dispatch(closeAlert({ payload: { twoFAToken: this.token } })); } } diff --git a/src/app/shared/components/data-modal/on-chain-generated-address/on-chain-generated-address.component.html b/src/app/shared/components/data-modal/on-chain-generated-address/on-chain-generated-address.component.html index d1733c68..23bb9d07 100644 --- a/src/app/shared/components/data-modal/on-chain-generated-address/on-chain-generated-address.component.html +++ b/src/app/shared/components/data-modal/on-chain-generated-address/on-chain-generated-address.component.html @@ -1,6 +1,6 @@
-
- +
@@ -72,7 +72,7 @@ You are about to disable two-factor authentication security from RTL. Are you sure you want to turn it off?
- +
@@ -82,7 +82,7 @@
- +
diff --git a/src/app/shared/components/data-modal/two-factor-auth/two-factor-auth.component.spec.ts b/src/app/shared/components/data-modal/two-factor-auth/two-factor-auth.component.spec.ts index 008fdc6a..88f6669f 100644 --- a/src/app/shared/components/data-modal/two-factor-auth/two-factor-auth.component.spec.ts +++ b/src/app/shared/components/data-modal/two-factor-auth/two-factor-auth.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { TwoFactorAuthComponent } from './two-factor-auth.component'; import { SharedModule } from '../../../shared.module'; import { mockMatDialogRef, mockRTLEffects } from '../../../test-helpers/mock-services'; @@ -19,12 +22,7 @@ describe('TwoFactorAuthComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: MatDialogRef, useClass: mockMatDialogRef }, diff --git a/src/app/shared/components/data-modal/two-factor-auth/two-factor-auth.component.ts b/src/app/shared/components/data-modal/two-factor-auth/two-factor-auth.component.ts index 5f830bb8..c4d7d713 100644 --- a/src/app/shared/components/data-modal/two-factor-auth/two-factor-auth.component.ts +++ b/src/app/shared/components/data-modal/two-factor-auth/two-factor-auth.component.ts @@ -14,8 +14,8 @@ import { RTLConfiguration } from '../../../models/RTLconfig'; import { AuthConfig } from '../../../models/alertData'; import { RTLEffects } from '../../../../store/rtl.effects'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; -import * as RTLActions from '../../../../store/rtl.actions'; +import { RTLState } from '../../../../store/rtl.state'; +import { isAuthorized, twoFASaveSettings } from '../../../../store/rtl.actions'; @Component({ selector: 'rtl-two-factor-auth', @@ -51,7 +51,7 @@ export class TwoFactorAuthComponent implements OnInit, OnDestroy { disableFormGroup: FormGroup = this.formBuilder.group({}); unSubs: Array> = [new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: AuthConfig, private store: Store, private formBuilder: FormBuilder, private rtlEffects: RTLEffects, private snackBar: MatSnackBar) {} + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: AuthConfig, private store: Store, private formBuilder: FormBuilder, private rtlEffects: RTLEffects, private snackBar: MatSnackBar) { } ngOnInit() { this.appConfig = this.data.appConfig; @@ -67,12 +67,12 @@ export class TwoFactorAuthComponent implements OnInit, OnDestroy { return secret2fa; } - onAuthenticate(): boolean|void { + onAuthenticate(): boolean | void { if (!this.passwordFormGroup.controls.password.value) { return true; } this.flgValidated = false; - this.store.dispatch(new RTLActions.IsAuthorized(sha256(this.passwordFormGroup.controls.password.value))); + this.store.dispatch(isAuthorized({ payload: sha256(this.passwordFormGroup.controls.password.value).toString() })); this.rtlEffects.isAuthorizedRes. pipe(take(1)). subscribe((authRes) => { @@ -90,9 +90,9 @@ export class TwoFactorAuthComponent implements OnInit, OnDestroy { this.snackBar.open('Secret code ' + this.secretFormGroup.controls.secret.value + ' copied.'); } - onVerifyToken(): boolean|void { + onVerifyToken(): boolean | void { if (this.appConfig.enable2FA) { - this.store.dispatch(new RTLActions.TwoFASaveSettings({ secret2fa: '' })); + this.store.dispatch(twoFASaveSettings({ payload: { secret2fa: '' } })); this.generateSecret(); this.isTokenValid = true; } else { @@ -104,7 +104,7 @@ export class TwoFactorAuthComponent implements OnInit, OnDestroy { this.tokenFormGroup.controls.token.setErrors({ notValid: true }); return true; } - this.store.dispatch(new RTLActions.TwoFASaveSettings({ secret2fa: this.secretFormGroup.controls.secret.value })); + this.store.dispatch(twoFASaveSettings({ payload: { secret2fa: this.secretFormGroup.controls.secret.value } })); this.tokenFormGroup.controls.token.setValue(''); } this.flgValidated = true; diff --git a/src/app/shared/components/help/help.component.ts b/src/app/shared/components/help/help.component.ts index b34cc3c5..1b73a088 100644 --- a/src/app/shared/components/help/help.component.ts +++ b/src/app/shared/components/help/help.component.ts @@ -7,7 +7,8 @@ import { faQuestion } from '@fortawesome/free-solid-svg-icons'; import { HelpTopic, ConfigSettingsNode } from '../../models/RTLconfig'; import { SessionService } from '../../services/session.service'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { rootSelectedNode } from '../../../store/rtl.selector'; @Component({ selector: 'rtl-help', @@ -23,7 +24,7 @@ export class HelpComponent implements OnInit, OnDestroy { public flgLoggedIn = false; private unSubs = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private sessionService: SessionService) { + constructor(private store: Store, private sessionService: SessionService) { this.helpTopics.push(new HelpTopic({ question: 'Getting started', answer: 'Funding your node is the first step to get started.\n' + @@ -188,24 +189,22 @@ export class HelpComponent implements OnInit, OnDestroy { } ngOnInit() { - this.store.select('root'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.selNode = rtlStore.selNode; - switch (this.selNode.lnImplementation.toUpperCase()) { - case 'CLT': - this.LNPLink = '/cl/'; - break; + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[0])).subscribe((selNode) => { + this.selNode = selNode; + switch (this.selNode.lnImplementation.toUpperCase()) { + case 'CLT': + this.LNPLink = '/cl/'; + break; - case 'ECL': - this.LNPLink = '/ecl/'; - break; + case 'ECL': + this.LNPLink = '/ecl/'; + break; - default: - this.LNPLink = '/lnd/'; - break; - } - }); + default: + this.LNPLink = '/lnd/'; + break; + } + }); this.sessionService.watchSession(). pipe(takeUntil(this.unSubs[1])). subscribe((session) => { diff --git a/src/app/shared/components/login/login.component.ts b/src/app/shared/components/login/login.component.ts index b8268e1f..827477dd 100644 --- a/src/app/shared/components/login/login.component.ts +++ b/src/app/shared/components/login/login.component.ts @@ -1,20 +1,20 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; -import { Subject } from 'rxjs'; +import { Subject, combineLatest } from 'rxjs'; import { take, takeUntil } from 'rxjs/operators'; import * as sha256 from 'sha256'; import { Store } from '@ngrx/store'; import { faUnlockAlt } from '@fortawesome/free-solid-svg-icons'; import { LoginTokenComponent } from '../data-modal/login-2fa-token/login-2fa-token.component'; -import { ConfigSettingsNode, RTLConfiguration } from '../../models/RTLconfig'; +import { RTLConfiguration } from '../../models/RTLconfig'; import { APICallStatusEnum, PASSWORD_BLACKLIST, ScreenSizeEnum } from '../../services/consts-enums-functions'; import { CommonService } from '../../services/common.service'; import { LoggerService } from '../../services/logger.service'; import { RTLEffects } from '../../../store/rtl.effects'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; -import * as RTLActions from '../../../store/rtl.actions'; -import { ApiCallsListRoot } from '../../models/apiCallsPayload'; +import { RTLState } from '../../../store/rtl.state'; +import { login, openAlert } from '../../../store/rtl.actions'; +import { rootAppConfig, authorizedStatus, loginStatus } from '../../../store/rtl.selector'; @Component({ selector: 'rtl-login', @@ -24,7 +24,6 @@ import { ApiCallsListRoot } from '../../models/apiCallsPayload'; export class LoginComponent implements OnInit, OnDestroy { public faUnlockAlt = faUnlockAlt; - public selNode: ConfigSettingsNode; public appConfig: RTLConfiguration; public password = ''; public rtlSSO = 0; @@ -34,31 +33,29 @@ export class LoginComponent implements OnInit, OnDestroy { public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; public loginErrorMessage = ''; - public apisCallStatus: ApiCallsListRoot = null; public apiCallStatusEnum = APICallStatusEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { } + constructor(private logger: LoggerService, private store: Store, private rtlEffects: RTLEffects, private commonService: CommonService) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); - this.store.select('root'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { + combineLatest([this.store.select(loginStatus), this.store.select(authorizedStatus)]).pipe(takeUntil(this.unSubs[0])). + subscribe(([loginCallRes, isAuthorizedCallRes]) => { this.loginErrorMessage = ''; - this.apisCallStatus = rtlStore.apisCallStatus; - if (rtlStore.apisCallStatus.Login.status === APICallStatusEnum.ERROR) { - this.loginErrorMessage = this.loginErrorMessage + ((typeof (this.apisCallStatus.Login.message) === 'object') ? JSON.stringify(this.apisCallStatus.Login.message) : this.apisCallStatus.Login.message); - this.logger.error(this.apisCallStatus.Login.message); + if (loginCallRes.status === APICallStatusEnum.ERROR) { + this.loginErrorMessage = this.loginErrorMessage + ((typeof (loginCallRes.message) === 'object') ? JSON.stringify(loginCallRes.message) : loginCallRes.message); + this.logger.error(loginCallRes.message); } - if (rtlStore.apisCallStatus.IsAuthorized.status === APICallStatusEnum.ERROR) { - this.loginErrorMessage = this.loginErrorMessage + ((typeof (this.apisCallStatus.IsAuthorized.message) === 'object') ? JSON.stringify(this.apisCallStatus.IsAuthorized.message) : this.apisCallStatus.IsAuthorized.message); - this.logger.error(this.apisCallStatus.IsAuthorized.message); + if (isAuthorizedCallRes.status === APICallStatusEnum.ERROR) { + this.loginErrorMessage = this.loginErrorMessage + ((typeof (isAuthorizedCallRes.message) === 'object') ? JSON.stringify(isAuthorizedCallRes.message) : isAuthorizedCallRes.message); + this.logger.error(isAuthorizedCallRes.message); } - this.selNode = rtlStore.selNode; - this.appConfig = rtlStore.appConfig; - this.logger.info(rtlStore); }); + this.store.select(rootAppConfig).pipe(takeUntil(this.unSubs[1])).subscribe((appConfig) => { + this.appConfig = appConfig; + this.logger.info(appConfig); + }); } onLogin(): boolean | void { @@ -67,20 +64,22 @@ export class LoginComponent implements OnInit, OnDestroy { } this.loginErrorMessage = ''; if (this.appConfig.enable2FA) { - this.store.dispatch(new RTLActions.OpenAlert({ - maxWidth: '35rem', data: { - component: LoginTokenComponent + this.store.dispatch(openAlert({ + payload: { + maxWidth: '35rem', data: { + component: LoginTokenComponent + } } })); this.rtlEffects.closeAlert. pipe(take(1)). subscribe((alertRes) => { if (alertRes) { - this.store.dispatch(new RTLActions.Login({ password: sha256(this.password), defaultPassword: PASSWORD_BLACKLIST.includes(this.password.toLowerCase()), twoFAToken: alertRes.twoFAToken })); + this.store.dispatch(login({ payload: { password: sha256(this.password), defaultPassword: PASSWORD_BLACKLIST.includes(this.password.toLowerCase()), twoFAToken: alertRes.twoFAToken } })); } }); } else { - this.store.dispatch(new RTLActions.Login({ password: sha256(this.password), defaultPassword: PASSWORD_BLACKLIST.includes(this.password.toLowerCase()) })); + this.store.dispatch(login({ payload: { password: sha256(this.password), defaultPassword: PASSWORD_BLACKLIST.includes(this.password.toLowerCase()) } })); } } diff --git a/src/app/shared/components/navigation/side-navigation/side-navigation.component.html b/src/app/shared/components/navigation/side-navigation/side-navigation.component.html index 34c274ff..ddd783e8 100644 --- a/src/app/shared/components/navigation/side-navigation/side-navigation.component.html +++ b/src/app/shared/components/navigation/side-navigation/side-navigation.component.html @@ -1,12 +1,12 @@
- - + + {{node.lnNode}} ({{node.lnImplementation}}) - +
@@ -44,7 +44,7 @@
-
+
diff --git a/src/app/shared/components/navigation/side-navigation/side-navigation.component.spec.ts b/src/app/shared/components/navigation/side-navigation/side-navigation.component.spec.ts index b2101d00..0d33dc77 100644 --- a/src/app/shared/components/navigation/side-navigation/side-navigation.component.spec.ts +++ b/src/app/shared/components/navigation/side-navigation/side-navigation.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../shared/services/common.service'; import { LoggerService } from '../../../../shared/services/logger.service'; import { SessionService } from '../../../../shared/services/session.service'; @@ -22,12 +25,7 @@ describe('SideNavigationComponent', () => { declarations: [SideNavigationComponent], imports: [ SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/shared/components/navigation/side-navigation/side-navigation.component.ts b/src/app/shared/components/navigation/side-navigation/side-navigation.component.ts index 48afa345..26540ca2 100644 --- a/src/app/shared/components/navigation/side-navigation/side-navigation.component.ts +++ b/src/app/shared/components/navigation/side-navigation/side-navigation.component.ts @@ -3,7 +3,7 @@ import { Subject } from 'rxjs'; import { takeUntil, filter } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { Actions } from '@ngrx/effects'; -import { environment } from '../../../../../environments/environment'; +import { VERSION } from '../../../../../environments/environment'; import { NestedTreeControl } from '@angular/cdk/tree'; import { MatTreeNestedDataSource, MatTree } from '@angular/material/tree'; @@ -16,10 +16,11 @@ import { GetInfoChain } from '../../../models/lndModels'; import { MenuChildNode, MENU_DATA } from '../../../models/navMenu'; import { RTLEffects } from '../../../../store/rtl.effects'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; -import { AlertTypeEnum, UI_MESSAGES, UserPersonaEnum } from '../../../services/consts-enums-functions'; +import { RTLState } from '../../../../store/rtl.state'; +import { AlertTypeEnum, RTLActions, UI_MESSAGES, UserPersonaEnum } from '../../../services/consts-enums-functions'; import { CommonService } from '../../../services/common.service'; +import { logout, openConfirmation, setSelectedNode, showPubkey } from '../../../../store/rtl.actions'; +import { rootAppConfig, rootSelNodeAndNodeData } from '../../../../store/rtl.selector'; @Component({ selector: 'rtl-side-navigation', @@ -33,6 +34,7 @@ export class SideNavigationComponent implements OnInit, OnDestroy { faEject = faEject; faEye = faEye; public appConfig: RTLConfiguration; + public selConfigNodeIndex: Number; public selNode: ConfigSettingsNode; public settings: Settings; public version = ''; @@ -46,7 +48,7 @@ export class SideNavigationComponent implements OnInit, OnDestroy { public smallScreen = false; public childRootRoute = ''; public userPersonaEnum = UserPersonaEnum; - private unSubs = [new Subject(), new Subject(), new Subject(), new Subject()]; + private unSubs = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; treeControlNested = new NestedTreeControl((node) => node.children); treeControlLogout = new NestedTreeControl((node) => node.children); treeControlShowData = new NestedTreeControl((node) => node.children); @@ -54,8 +56,8 @@ export class SideNavigationComponent implements OnInit, OnDestroy { navMenusLogout = new MatTreeNestedDataSource(); navMenusShowData = new MatTreeNestedDataSource(); - constructor(private logger: LoggerService, private commonService: CommonService, private sessionService: SessionService, private store: Store, private actions: Actions, private rtlEffects: RTLEffects) { - this.version = environment.VERSION; + constructor(private logger: LoggerService, private commonService: CommonService, private sessionService: SessionService, private store: Store, private actions: Actions, private rtlEffects: RTLEffects) { + this.version = VERSION; if (MENU_DATA.LNDChildren[MENU_DATA.LNDChildren.length - 1].id === 200) { MENU_DATA.LNDChildren.pop(); } @@ -68,13 +70,12 @@ export class SideNavigationComponent implements OnInit, OnDestroy { const token = this.sessionService.getItem('token'); this.showLogout = !!token; this.flgLoading = !!token; - this.store.select('root'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.appConfig = rtlStore.appConfig; - this.selNode = rtlStore.selNode; - this.settings = this.selNode.settings; - this.information = rtlStore.nodeData; + this.store.select(rootAppConfig).pipe(takeUntil(this.unSubs[0])).subscribe((appConfig) => { + this.appConfig = appConfig; + }); + this.store.select(rootSelNodeAndNodeData).pipe(takeUntil(this.unSubs[1])). + subscribe((rootData: { nodeDate: GetInfoRoot, selNode: ConfigSettingsNode }) => { + this.information = rootData.nodeDate; if (this.information.identity_pubkey) { if (this.information.chains && typeof this.information.chains[0] === 'string') { this.informationChain.chain = this.information.chains[0].toString(); @@ -88,26 +89,28 @@ export class SideNavigationComponent implements OnInit, OnDestroy { this.informationChain.chain = ''; this.informationChain.network = ''; } - this.flgLoading = !(this.information.identity_pubkey); if (window.innerWidth <= 414) { this.smallScreen = true; } + this.selNode = rootData.selNode; + this.settings = this.selNode.settings; + this.selConfigNodeIndex = +rootData.selNode.index; if (this.selNode && this.selNode.lnImplementation) { this.filterSideMenuNodes(); } - this.logger.info(rtlStore); + this.logger.info(rootData); }); this.sessionService.watchSession(). - pipe(takeUntil(this.unSubs[1])). + pipe(takeUntil(this.unSubs[2])). subscribe((session) => { this.showLogout = !!session.token; this.flgLoading = !!session.token; }); this.actions.pipe( - takeUntil(this.unSubs[2]), + takeUntil(this.unSubs[3]), filter((action) => action.type === RTLActions.LOGOUT)). - subscribe((action: RTLActions.Logout) => { + subscribe((action: any) => { this.showLogout = false; }); } @@ -116,17 +119,19 @@ export class SideNavigationComponent implements OnInit, OnDestroy { onClick(node: MenuChildNode) { if (node.name === 'Logout') { - this.store.dispatch(new RTLActions.OpenConfirmation({ - data: { - type: AlertTypeEnum.CONFIRM, alertTitle: 'Logout', titleMessage: 'Logout from this device?', noBtnText: 'Cancel', yesBtnText: 'Logout' + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, alertTitle: 'Logout', titleMessage: 'Logout from this device?', noBtnText: 'Cancel', yesBtnText: 'Logout' + } } })); this.rtlEffects.closeConfirm. - pipe(takeUntil(this.unSubs[3])). + pipe(takeUntil(this.unSubs[4])). subscribe((confirmRes) => { if (confirmRes) { this.showLogout = false; - this.store.dispatch(new RTLActions.Logout()); + this.store.dispatch(logout()); } }); } @@ -159,8 +164,8 @@ export class SideNavigationComponent implements OnInit, OnDestroy { this.navMenus.data = clonedMenu.filter((navMenuData) => { if (navMenuData.children && navMenuData.children.length) { navMenuData.children = navMenuData.children.filter((navMenuChild) => ((navMenuChild.userPersona === UserPersonaEnum.ALL || navMenuChild.userPersona === this.settings.userPersona) && navMenuChild.link !== '/services/loop' && navMenuChild.link !== '/services/boltz') || - (navMenuChild.link === '/services/loop' && this.settings.swapServerUrl && this.settings.swapServerUrl.trim() !== '') || - (navMenuChild.link === '/services/boltz' && this.settings.boltzServerUrl && this.settings.boltzServerUrl.trim() !== '')); + (navMenuChild.link === '/services/loop' && this.settings.swapServerUrl && this.settings.swapServerUrl.trim() !== '') || + (navMenuChild.link === '/services/boltz' && this.settings.boltzServerUrl && this.settings.boltzServerUrl.trim() !== '')); return navMenuData.children.length > 0; } return navMenuData.userPersona === UserPersonaEnum.ALL || navMenuData.userPersona === this.settings.userPersona; @@ -173,7 +178,7 @@ export class SideNavigationComponent implements OnInit, OnDestroy { this.navMenus.data = clonedMenu.filter((navMenuData) => { if (navMenuData.children && navMenuData.children.length) { navMenuData.children = navMenuData.children.filter((navMenuChild) => ((navMenuChild.userPersona === UserPersonaEnum.ALL || navMenuChild.userPersona === this.settings.userPersona) && navMenuChild.link !== '/cl/messages') || - (navMenuChild.link === '/cl/messages' && this.information.api_version && this.commonService.isVersionCompatible(this.information.api_version, '0.2.2'))); + (navMenuChild.link === '/cl/messages' && this.information.api_version && this.commonService.isVersionCompatible(this.information.api_version, '0.2.2'))); } return navMenuData.userPersona === UserPersonaEnum.ALL || navMenuData.userPersona === this.settings.userPersona; }); @@ -184,13 +189,15 @@ export class SideNavigationComponent implements OnInit, OnDestroy { } onShowData(node: MenuChildNode) { - this.store.dispatch(new RTLActions.ShowPubkey()); + this.store.dispatch(showPubkey()); this.ChildNavClicked.emit('showData'); } - onNodeSelectionChange(selNodeValue: ConfigSettingsNode) { - this.selNode = selNodeValue; - this.store.dispatch(new RTLActions.SetSelelectedNode({ uiMessage: UI_MESSAGES.UPDATE_SELECTED_NODE, lnNode: selNodeValue, isInitialSetup: false })); + onNodeSelectionChange(selNodeValue: Number) { + const prevIndex = this.selConfigNodeIndex; + this.selConfigNodeIndex = selNodeValue; + const foundNode = this.appConfig.nodes.find((node) => +node.index === selNodeValue); + this.store.dispatch(setSelectedNode({ payload: { uiMessage: UI_MESSAGES.UPDATE_SELECTED_NODE, prevLnNodeIndex: +prevIndex, currentLnNode: foundNode, isInitialSetup: false } })); this.ChildNavClicked.emit('selectNode'); } diff --git a/src/app/shared/components/navigation/top-menu/top-menu.component.html b/src/app/shared/components/navigation/top-menu/top-menu.component.html index 9058ab44..425b1008 100644 --- a/src/app/shared/components/navigation/top-menu/top-menu.component.html +++ b/src/app/shared/components/navigation/top-menu/top-menu.component.html @@ -3,6 +3,10 @@ Version: {{version}}

+

+ + API Version: {{information?.api_version}} +

Settings diff --git a/src/app/shared/components/navigation/top-menu/top-menu.component.spec.ts b/src/app/shared/components/navigation/top-menu/top-menu.component.spec.ts index a95627fe..28217ed8 100644 --- a/src/app/shared/components/navigation/top-menu/top-menu.component.spec.ts +++ b/src/app/shared/components/navigation/top-menu/top-menu.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../../shared/services/logger.service'; import { SessionService } from '../../../../shared/services/session.service'; @@ -21,12 +24,7 @@ describe('TopMenuComponent', () => { declarations: [TopMenuComponent], imports: [ SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/shared/components/navigation/top-menu/top-menu.component.ts b/src/app/shared/components/navigation/top-menu/top-menu.component.ts index 01569c82..a574d101 100644 --- a/src/app/shared/components/navigation/top-menu/top-menu.component.ts +++ b/src/app/shared/components/navigation/top-menu/top-menu.component.ts @@ -3,18 +3,19 @@ import { Subject } from 'rxjs'; import { takeUntil, filter } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { Actions } from '@ngrx/effects'; -import { faCodeBranch, faCog, faLifeRing, faEject, faUserCog } from '@fortawesome/free-solid-svg-icons'; +import { faCodeBranch, faCode, faCog, faLifeRing, faEject, faUserCog } from '@fortawesome/free-solid-svg-icons'; -import { GetInfoRoot, ConfigSettingsNode } from '../../../models/RTLconfig'; +import { GetInfoRoot } from '../../../models/RTLconfig'; import { LoggerService } from '../../../services/logger.service'; import { SessionService } from '../../../services/session.service'; import { GetInfoChain } from '../../../models/lndModels'; -import { environment } from '../../../../../environments/environment'; -import { AlertTypeEnum } from '../../../services/consts-enums-functions'; +import { VERSION } from '../../../../../environments/environment'; +import { AlertTypeEnum, RTLActions } from '../../../services/consts-enums-functions'; import { RTLEffects } from '../../../../store/rtl.effects'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; -import * as RTLActions from '../../../../store/rtl.actions'; +import { RTLState } from '../../../../store/rtl.state'; +import { logout, openConfirmation } from '../../../../store/rtl.actions'; +import { rootNodeData } from '../../../../store/rtl.selector'; @Component({ selector: 'rtl-top-menu', @@ -24,9 +25,9 @@ import * as RTLActions from '../../../../store/rtl.actions'; }) export class TopMenuComponent implements OnInit, OnDestroy { - public selNode: ConfigSettingsNode; public faUserCog = faUserCog; public faCodeBranch = faCodeBranch; + public faCode = faCode; public faCog = faCog; public faLifeRing = faLifeRing; public faEject = faEject; @@ -37,16 +38,15 @@ export class TopMenuComponent implements OnInit, OnDestroy { public showLogout = false; private unSubs = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private sessionService: SessionService, private store: Store, private rtlEffects: RTLEffects, private actions: Actions) { - this.version = environment.VERSION; + constructor(private logger: LoggerService, private sessionService: SessionService, private store: Store, private rtlEffects: RTLEffects, private actions: Actions) { + this.version = VERSION; } ngOnInit() { - this.store.select('root'). + this.store.select(rootNodeData). pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.selNode = rtlStore.selNode; - this.information = rtlStore.nodeData; + subscribe((nodeData: GetInfoRoot) => { + this.information = nodeData; this.flgLoading = !(this.information.identity_pubkey); if (this.information.identity_pubkey) { if (this.information.chains && typeof this.information.chains[0] === 'string') { @@ -61,7 +61,7 @@ export class TopMenuComponent implements OnInit, OnDestroy { this.informationChain.chain = ''; this.informationChain.network = ''; } - this.logger.info(rtlStore); + this.logger.info(nodeData); }); this.sessionService.watchSession(). pipe(takeUntil(this.unSubs[1])). @@ -79,9 +79,11 @@ export class TopMenuComponent implements OnInit, OnDestroy { } onClick() { - this.store.dispatch(new RTLActions.OpenConfirmation({ - data: { - type: AlertTypeEnum.CONFIRM, alertTitle: 'Logout', titleMessage: 'Logout from this device?', noBtnText: 'Cancel', yesBtnText: 'Logout' + this.store.dispatch(openConfirmation({ + payload: { + data: { + type: AlertTypeEnum.CONFIRM, alertTitle: 'Logout', titleMessage: 'Logout from this device?', noBtnText: 'Cancel', yesBtnText: 'Logout' + } } })); this.rtlEffects.closeConfirm. @@ -89,7 +91,7 @@ export class TopMenuComponent implements OnInit, OnDestroy { subscribe((confirmRes) => { if (confirmRes) { this.showLogout = false; - this.store.dispatch(new RTLActions.Logout()); + this.store.dispatch(logout()); } }); } diff --git a/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.html b/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.html new file mode 100644 index 00000000..3bc29b7c --- /dev/null +++ b/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.html @@ -0,0 +1,44 @@ +
+
+ + Experimental features should be enabled with caution. Many such features may be implementation specific and not ratified for the BOLT spec. Enabling these may still result in a broken experience. Referencing relevant feature documentation is highly advised before enabling. +
+
+
+ + Features +
+ + + + +

{{feature.name}}

+

+ + + {{feature.enabled ? 'Enabled' : 'Disabled'}} +

+
+
+
+ + + +
diff --git a/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.scss b/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.scss new file mode 100644 index 00000000..15d29fee --- /dev/null +++ b/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.scss @@ -0,0 +1,3 @@ +h4 { + word-break: break-word; +} diff --git a/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.spec.ts b/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.spec.ts new file mode 100644 index 00000000..233ce656 --- /dev/null +++ b/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.spec.ts @@ -0,0 +1,43 @@ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { RouterTestingModule } from '@angular/router/testing'; +import { StoreModule } from '@ngrx/store'; + +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; +import { SharedModule } from '../../../shared.module'; +import { ExperimentalSettingsComponent } from './experimental-settings.component'; + +describe('ExperimentalSettingsComponent', () => { + let component: ExperimentalSettingsComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ExperimentalSettingsComponent], + imports: [ + BrowserAnimationsModule, + SharedModule, + RouterTestingModule, + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) + ] + }). + compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ExperimentalSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + afterEach(() => { + TestBed.resetTestingModule(); + }); +}); diff --git a/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.ts b/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.ts new file mode 100644 index 00000000..5afa4b4f --- /dev/null +++ b/src/app/shared/components/node-config/experimental-settings/experimental-settings.component.ts @@ -0,0 +1,76 @@ +import { Component, OnInit, OnDestroy } from '@angular/core'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { Store } from '@ngrx/store'; +import { faInfoCircle, faCode, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; + +import { LoggerService } from '../../../services/logger.service'; +import { RTLState } from '../../../../store/rtl.state'; +import { rootSelectedNode } from '../../../../store/rtl.selector'; +import { ConfigSettingsNode } from '../../../models/RTLconfig'; +import { updateServiceSettings } from '../../../../store/rtl.actions'; +import { setChildNodeSettingsLND } from '../../../../lnd/store/lnd.actions'; +import { setChildNodeSettingsCL } from '../../../../clightning/store/cl.actions'; +import { setChildNodeSettingsECL } from '../../../../eclair/store/ecl.actions'; +import { ServicesEnum, UI_MESSAGES } from '../../../services/consts-enums-functions'; + +@Component({ + selector: 'rtl-experimental-settings', + templateUrl: './experimental-settings.component.html', + styleUrls: ['./experimental-settings.component.scss'] +}) +export class ExperimentalSettingsComponent implements OnInit, OnDestroy { + + public faInfoCircle = faInfoCircle; + public faExclamationTriangle = faExclamationTriangle; + public faCode = faCode; + public features = [{ name: 'Offers', enabled: false }]; + public enableOffers = false; + public selNode: ConfigSettingsNode; + private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; + + constructor(private logger: LoggerService, private store: Store) { } + + ngOnInit() { + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[0])). + subscribe((selNode) => { + this.selNode = selNode; + this.enableOffers = this.selNode.settings.enableOffers; + this.features[0].enabled = this.enableOffers; + this.logger.info(this.selNode); + }); + } + + onUpdateFeature(): boolean | void { + this.logger.info(this.selNode); + this.selNode.settings.enableOffers = this.enableOffers; + this.features[0].enabled = this.enableOffers; + this.store.dispatch(updateServiceSettings({ payload: { uiMessage: UI_MESSAGES.UPDATE_SETTING, service: ServicesEnum.OFFERS, settings: { enableOffers: this.enableOffers } } })); + this.store.dispatch(setChildNodeSettingsLND({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl, enableOffers: this.enableOffers + } + })); + this.store.dispatch(setChildNodeSettingsCL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl, enableOffers: this.enableOffers + } + })); + this.store.dispatch(setChildNodeSettingsECL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl, enableOffers: this.enableOffers + } + })); + } + + ngOnDestroy() { + this.unSubs.forEach((completeSub) => { + completeSub.next(null); + completeSub.complete(); + }); + } + +} diff --git a/src/app/shared/components/node-config/lnp-config/lnp-config.component.ts b/src/app/shared/components/node-config/lnp-config/lnp-config.component.ts index 0f3279c8..c5189447 100644 --- a/src/app/shared/components/node-config/lnp-config/lnp-config.component.ts +++ b/src/app/shared/components/node-config/lnp-config/lnp-config.component.ts @@ -6,8 +6,8 @@ import { Store } from '@ngrx/store'; import { faCog } from '@fortawesome/free-solid-svg-icons'; import { RTLEffects } from '../../../../store/rtl.effects'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { fetchConfig } from '../../../../store/rtl.actions'; @Component({ selector: 'rtl-lnp-config', @@ -22,15 +22,15 @@ export class LNPConfigComponent implements OnInit, OnDestroy { public faCog = faCog; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private store: Store, private rtlEffects: RTLEffects, private router: Router) { } + constructor(private store: Store, private rtlEffects: RTLEffects, private router: Router) { } ngOnInit() { this.selectedNodeType = (this.router.url.includes('bconfig')) ? 'bitcoind' : 'ln'; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { this.selectedNodeType = (value.urlAfterRedirects.includes('bconfig')) ? 'bitcoind' : 'ln'; }); - this.store.dispatch(new RTLActions.FetchConfig(this.selectedNodeType)); + this.store.dispatch(fetchConfig({ payload: this.selectedNodeType })); this.rtlEffects.showLnConfig. pipe(takeUntil(this.unSubs[1])). subscribe((config: any) => { diff --git a/src/app/shared/components/node-config/node-config.component.html b/src/app/shared/components/node-config/node-config.component.html index f3821c11..999575b1 100644 --- a/src/app/shared/components/node-config/node-config.component.html +++ b/src/app/shared/components/node-config/node-config.component.html @@ -7,8 +7,9 @@
diff --git a/src/app/shared/components/node-config/node-config.component.spec.ts b/src/app/shared/components/node-config/node-config.component.spec.ts index 2a90a3fe..b1b5a0ab 100644 --- a/src/app/shared/components/node-config/node-config.component.spec.ts +++ b/src/app/shared/components/node-config/node-config.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { SharedModule } from '../../shared.module'; import { NodeConfigComponent } from './node-config.component'; @@ -16,12 +19,7 @@ describe('NodeConfigComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/shared/components/node-config/node-config.component.ts b/src/app/shared/components/node-config/node-config.component.ts index 34a021df..052f0d49 100644 --- a/src/app/shared/components/node-config/node-config.component.ts +++ b/src/app/shared/components/node-config/node-config.component.ts @@ -5,8 +5,9 @@ import { takeUntil, filter } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { faTools } from '@fortawesome/free-solid-svg-icons'; -import { ConfigSettingsNode, RTLConfiguration } from '../../models/RTLconfig'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { ConfigSettingsNode } from '../../models/RTLconfig'; +import { RTLState } from '../../../store/rtl.state'; +import { rootSelectedNode } from '../../../store/rtl.selector'; @Component({ selector: 'rtl-node-config', @@ -18,45 +19,42 @@ export class NodeConfigComponent implements OnInit, OnDestroy { public faTools = faTools; public showLnConfig = false; public selNode: ConfigSettingsNode; - public appConfig: RTLConfiguration; public lnImplementationStr = ''; - public links = [{ link: 'node', name: 'Node' }, { link: 'services', name: 'Services' }, { link: 'lnconfig', name: this.lnImplementationStr }]; + public links = [{ link: 'layout', name: 'Layout' }, { link: 'services', name: 'Services' }, { link: 'experimental', name: 'Experimental' }, { link: 'lnconfig', name: this.lnImplementationStr }]; public activeLink = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private router: Router) { } + constructor(private store: Store, private router: Router) { } ngOnInit() { const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; }); - this.store.select('root').pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.showLnConfig = false; - this.appConfig = rtlStore.appConfig; - this.selNode = rtlStore.selNode; - switch (this.selNode.lnImplementation.toUpperCase()) { - case 'CLT': - this.lnImplementationStr = 'C-Lightning Config'; - break; + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[1])).subscribe((selNode) => { + this.showLnConfig = false; + this.selNode = selNode; + switch (this.selNode.lnImplementation.toUpperCase()) { + case 'CLT': + this.lnImplementationStr = 'C-Lightning Config'; + break; - case 'ECL': - this.lnImplementationStr = 'Eclair Config'; - break; + case 'ECL': + this.lnImplementationStr = 'Eclair Config'; + break; - default: - this.lnImplementationStr = 'LND Config'; - break; - } - if (this.selNode.authentication && this.selNode.authentication.configPath && this.selNode.authentication.configPath.trim() !== '') { - this.links[2].name = this.lnImplementationStr; - this.showLnConfig = true; - } - }); + default: + this.lnImplementationStr = 'LND Config'; + break; + } + if (this.selNode.authentication && this.selNode.authentication.configPath && this.selNode.authentication.configPath.trim() !== '') { + this.links[3].name = this.lnImplementationStr; + this.showLnConfig = true; + } + }); } ngOnDestroy() { diff --git a/src/app/shared/components/node-config/node-settings/node-settings.component.spec.ts b/src/app/shared/components/node-config/node-settings/node-settings.component.spec.ts index da842e51..ffc597f3 100644 --- a/src/app/shared/components/node-config/node-settings/node-settings.component.spec.ts +++ b/src/app/shared/components/node-config/node-settings/node-settings.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../shared/services/common.service'; import { LoggerService } from '../../../../shared/services/logger.service'; @@ -21,12 +24,7 @@ describe('NodeSettingsComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/shared/components/node-config/node-settings/node-settings.component.ts b/src/app/shared/components/node-config/node-settings/node-settings.component.ts index be91d569..daced8e7 100644 --- a/src/app/shared/components/node-config/node-settings/node-settings.component.ts +++ b/src/app/shared/components/node-config/node-settings/node-settings.component.ts @@ -4,16 +4,17 @@ import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { faMoneyBillAlt, faPaintBrush, faInfoCircle, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import { CURRENCY_UNITS, UserPersonaEnum, ScreenSizeEnum, FIAT_CURRENCY_UNITS, NODE_SETTINGS, UI_MESSAGES } from '../../../services/consts-enums-functions'; +import { CURRENCY_UNITS, UserPersonaEnum, ScreenSizeEnum, FIAT_CURRENCY_UNITS, NODE_SETTINGS, UI_MESSAGES, RTLActions } from '../../../services/consts-enums-functions'; import { ConfigSettingsNode, Settings, RTLConfiguration, GetInfoRoot } from '../../../models/RTLconfig'; import { LoggerService } from '../../../services/logger.service'; import { CommonService } from '../../../services/common.service'; - -import * as ECLActions from '../../../../eclair/store/ecl.actions'; -import * as CLActions from '../../../../clightning/store/cl.actions'; -import * as LNDActions from '../../../../lnd/store/lnd.actions'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { saveSettings, setSelectedNode } from '../../../../store/rtl.actions'; +import { setChildNodeSettingsECL } from '../../../../eclair/store/ecl.actions'; +import { setChildNodeSettingsCL } from '../../../../clightning/store/cl.actions'; +import { setChildNodeSettingsLND } from '../../../../lnd/store/lnd.actions'; +import { rootSelectedNode } from '../../../../store/rtl.selector'; +import { SetSelectedNode } from '../../../models/rtlModels'; @Component({ selector: 'rtl-node-settings', @@ -27,7 +28,6 @@ export class NodeSettingsComponent implements OnInit, OnDestroy { public faPaintBrush = faPaintBrush; public faInfoCircle = faInfoCircle; public selNode: ConfigSettingsNode; - public information: GetInfoRoot = {}; public userPersonas = [UserPersonaEnum.OPERATOR, UserPersonaEnum.MERCHANT]; public currencyUnits = FIAT_CURRENCY_UNITS; public themeModes = NODE_SETTINGS.modes; @@ -37,44 +37,45 @@ export class NodeSettingsComponent implements OnInit, OnDestroy { public currencyUnit = 'BTC'; public smallerCurrencyUnit = 'Sats'; public showSettingOption = true; - public appConfig: RTLConfiguration; public previousSettings: Settings; public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; unSubs: Array> = [new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store) { this.screenSize = this.commonService.getScreenSize(); } ngOnInit() { - this.store.select('root'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.appConfig = rtlStore.appConfig; - this.selNode = rtlStore.selNode; - this.selectedThemeMode = this.themeModes.find((themeMode) => this.selNode.settings.themeMode === themeMode.id); - this.selectedThemeColor = this.selNode.settings.themeColor; - this.information = rtlStore.nodeData; - if (!this.selNode.settings.fiatConversion) { - this.selNode.settings.currencyUnit = null; - } - this.previousSettings = JSON.parse(JSON.stringify(this.selNode.settings)); - this.logger.info(rtlStore); - }); + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[0])).subscribe((selNode) => { + this.selNode = selNode; + this.selectedThemeMode = this.themeModes.find((themeMode) => this.selNode.settings.themeMode === themeMode.id); + this.selectedThemeColor = this.selNode.settings.themeColor; + if (!this.selNode.settings.fiatConversion) { + this.selNode.settings.currencyUnit = null; + } + this.previousSettings = JSON.parse(JSON.stringify(this.selNode.settings)); + this.logger.info(selNode); + }); } onCurrencyChange(event: any) { this.selNode.settings.currencyUnits = [...CURRENCY_UNITS, event.value]; - this.store.dispatch(new LNDActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: event.value, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, - lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + this.store.dispatch(setChildNodeSettingsLND({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: event.value, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + } })); - this.store.dispatch(new CLActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: event.value, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + this.store.dispatch(setChildNodeSettingsCL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: event.value, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + } })); - this.store.dispatch(new ECLActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: event.value, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + this.store.dispatch(setChildNodeSettingsECL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: event.value, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + } })); } @@ -96,23 +97,30 @@ export class NodeSettingsComponent implements OnInit, OnDestroy { return true; } this.logger.info(this.selNode.settings); - this.store.dispatch(new RTLActions.SaveSettings({ uiMessage: UI_MESSAGES.UPDATE_NODE_SETTINGS, settings: this.selNode.settings })); - this.store.dispatch(new LNDActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + this.store.dispatch(saveSettings({ payload: { uiMessage: UI_MESSAGES.UPDATE_NODE_SETTINGS, settings: this.selNode.settings } })); + this.store.dispatch(setChildNodeSettingsLND({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + } })); - this.store.dispatch(new CLActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + this.store.dispatch(setChildNodeSettingsCL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + } })); - this.store.dispatch(new ECLActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + this.store.dispatch(setChildNodeSettingsECL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + } })); } onResetSettings() { + const prevIndex = this.selNode.index; this.selNode.settings = this.previousSettings; this.selectedThemeMode = this.themeModes.find((themeMode) => themeMode.id === this.previousSettings.themeMode); this.selectedThemeColor = this.previousSettings.themeColor; - this.store.dispatch(new RTLActions.SetSelelectedNode({ uiMessage: UI_MESSAGES.NO_SPINNER, lnNode: this.selNode, isInitialSetup: true })); + this.store.dispatch(setSelectedNode({ payload: { uiMessage: UI_MESSAGES.NO_SPINNER, prevLnNodeIndex: +prevIndex, currentLnNode: this.selNode, isInitialSetup: true } })); } ngOnDestroy() { diff --git a/src/app/shared/components/node-config/services-settings/boltz-service-settings/boltz-service-settings.component.ts b/src/app/shared/components/node-config/services-settings/boltz-service-settings/boltz-service-settings.component.ts index 087a9035..7282b896 100644 --- a/src/app/shared/components/node-config/services-settings/boltz-service-settings/boltz-service-settings.component.ts +++ b/src/app/shared/components/node-config/services-settings/boltz-service-settings/boltz-service-settings.component.ts @@ -4,15 +4,15 @@ import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { ServicesEnum, UI_MESSAGES } from '../../../../services/consts-enums-functions'; -import { ConfigSettingsNode, RTLConfiguration } from '../../../../models/RTLconfig'; +import { ConfigSettingsNode } from '../../../../models/RTLconfig'; import { LoggerService } from '../../../../services/logger.service'; import { faInfoCircle } from '@fortawesome/free-solid-svg-icons'; - -import * as ECLActions from '../../../../../eclair/store/ecl.actions'; -import * as CLActions from '../../../../../clightning/store/cl.actions'; -import * as LNDActions from '../../../../../lnd/store/lnd.actions'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { updateServiceSettings } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { setChildNodeSettingsLND } from '../../../../../lnd/store/lnd.actions'; +import { setChildNodeSettingsCL } from '../../../../../clightning/store/cl.actions'; +import { setChildNodeSettingsECL } from '../../../../../eclair/store/ecl.actions'; +import { rootSelectedNode } from '../../../../../store/rtl.selector'; @Component({ selector: 'rtl-boltz-service-settings', @@ -23,7 +23,6 @@ export class BoltzServiceSettingsComponent implements OnInit, OnDestroy { @ViewChild('form', { static: true }) form: any; public faInfoCircle = faInfoCircle; - public appConfig: RTLConfiguration; public selNode: ConfigSettingsNode; public previousSelNode: ConfigSettingsNode; public enableBoltz = false; @@ -31,19 +30,18 @@ export class BoltzServiceSettingsComponent implements OnInit, OnDestroy { public macaroonPath = ''; unSubs: Array> = [new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store) { } + constructor(private logger: LoggerService, private store: Store) { } ngOnInit() { - this.store.select('root'). + this.store.select(rootSelectedNode). pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.appConfig = rtlStore.appConfig; - this.selNode = rtlStore.selNode; - this.enableBoltz = rtlStore.selNode.settings.boltzServerUrl && rtlStore.selNode.settings.boltzServerUrl.trim() !== ''; + subscribe((selNode) => { + this.selNode = selNode; + this.enableBoltz = selNode.settings.boltzServerUrl && selNode.settings.boltzServerUrl.trim() !== ''; this.serverUrl = this.selNode.settings.boltzServerUrl; this.macaroonPath = this.selNode.authentication.boltzMacaroonPath; this.previousSelNode = JSON.parse(JSON.stringify(this.selNode)); - this.logger.info(rtlStore); + this.logger.info(selNode); }); } @@ -71,15 +69,24 @@ export class BoltzServiceSettingsComponent implements OnInit, OnDestroy { this.logger.info(this.selNode); this.selNode.settings.boltzServerUrl = this.serverUrl; this.selNode.authentication.boltzMacaroonPath = this.macaroonPath; - this.store.dispatch(new RTLActions.UpdateServiceSettings({ uiMessage: UI_MESSAGES.UPDATE_BOLTZ_SETTINGS, service: ServicesEnum.BOLTZ, settings: { enable: this.enableBoltz, serverUrl: this.serverUrl, macaroonPath: this.macaroonPath } })); - this.store.dispatch(new LNDActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.serverUrl + this.store.dispatch(updateServiceSettings({ payload: { uiMessage: UI_MESSAGES.UPDATE_BOLTZ_SETTINGS, service: ServicesEnum.BOLTZ, settings: { enable: this.enableBoltz, serverUrl: this.serverUrl, macaroonPath: this.macaroonPath } } })); + this.store.dispatch(setChildNodeSettingsLND({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.serverUrl, enableOffers: this.selNode.settings.enableOffers + } })); - this.store.dispatch(new CLActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.serverUrl + this.store.dispatch(setChildNodeSettingsCL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.serverUrl, enableOffers: this.selNode.settings.enableOffers + } })); - this.store.dispatch(new ECLActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.serverUrl + this.store.dispatch(setChildNodeSettingsECL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.serverUrl, enableOffers: this.selNode.settings.enableOffers + } })); } diff --git a/src/app/shared/components/node-config/services-settings/loop-service-settings/loop-service-settings.component.ts b/src/app/shared/components/node-config/services-settings/loop-service-settings/loop-service-settings.component.ts index eb581bb0..2904b1ce 100644 --- a/src/app/shared/components/node-config/services-settings/loop-service-settings/loop-service-settings.component.ts +++ b/src/app/shared/components/node-config/services-settings/loop-service-settings/loop-service-settings.component.ts @@ -4,15 +4,15 @@ import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { ServicesEnum, UI_MESSAGES } from '../../../../services/consts-enums-functions'; -import { ConfigSettingsNode, RTLConfiguration } from '../../../../models/RTLconfig'; +import { ConfigSettingsNode } from '../../../../models/RTLconfig'; import { LoggerService } from '../../../../services/logger.service'; import { faInfoCircle } from '@fortawesome/free-solid-svg-icons'; - -import * as ECLActions from '../../../../../eclair/store/ecl.actions'; -import * as CLActions from '../../../../../clightning/store/cl.actions'; -import * as LNDActions from '../../../../../lnd/store/lnd.actions'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { updateServiceSettings } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; +import { setChildNodeSettingsLND } from '../../../../../lnd/store/lnd.actions'; +import { setChildNodeSettingsCL } from '../../../../../clightning/store/cl.actions'; +import { setChildNodeSettingsECL } from '../../../../../eclair/store/ecl.actions'; +import { rootSelectedNode } from '../../../../../store/rtl.selector'; @Component({ selector: 'rtl-loop-service-settings', @@ -23,23 +23,21 @@ export class LoopServiceSettingsComponent implements OnInit, OnDestroy { @ViewChild('form', { static: true }) form: any; public faInfoCircle = faInfoCircle; - public appConfig: RTLConfiguration; public selNode: ConfigSettingsNode; public previousSelNode: ConfigSettingsNode; public enableLoop = false; unSubs: Array> = [new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store) { } + constructor(private logger: LoggerService, private store: Store) { } ngOnInit() { - this.store.select('root'). + this.store.select(rootSelectedNode). pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.appConfig = rtlStore.appConfig; - this.selNode = rtlStore.selNode; - this.enableLoop = rtlStore.selNode.settings.swapServerUrl && rtlStore.selNode.settings.swapServerUrl.trim() !== ''; + subscribe((selNode) => { + this.selNode = selNode; + this.enableLoop = selNode.settings.swapServerUrl && selNode.settings.swapServerUrl.trim() !== ''; this.previousSelNode = JSON.parse(JSON.stringify(this.selNode)); - this.logger.info(rtlStore); + this.logger.info(selNode); }); } @@ -59,15 +57,24 @@ export class LoopServiceSettingsComponent implements OnInit, OnDestroy { return true; } this.logger.info(this.selNode); - this.store.dispatch(new RTLActions.UpdateServiceSettings({ uiMessage: UI_MESSAGES.UPDATE_LOOP_SETTINGS, service: ServicesEnum.LOOP, settings: { enable: this.enableLoop, serverUrl: this.selNode.settings.swapServerUrl, macaroonPath: this.selNode.authentication.swapMacaroonPath } })); - this.store.dispatch(new LNDActions.SetChildNodeSettings( - { userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl } - )); - this.store.dispatch(new CLActions.SetChildNodeSettings( - { userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl } - )); - this.store.dispatch(new ECLActions.SetChildNodeSettings({ - userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl + this.store.dispatch(updateServiceSettings({ payload: { uiMessage: UI_MESSAGES.UPDATE_LOOP_SETTINGS, service: ServicesEnum.LOOP, settings: { enable: this.enableLoop, serverUrl: this.selNode.settings.swapServerUrl, macaroonPath: this.selNode.authentication.swapMacaroonPath } } })); + this.store.dispatch(setChildNodeSettingsLND({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl, enableOffers: this.selNode.settings.enableOffers + } + })); + this.store.dispatch(setChildNodeSettingsCL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl, enableOffers: this.selNode.settings.enableOffers + } + })); + this.store.dispatch(setChildNodeSettingsECL({ + payload: { + userPersona: this.selNode.settings.userPersona, channelBackupPath: this.selNode.settings.channelBackupPath, selCurrencyUnit: this.selNode.settings.currencyUnit, currencyUnits: this.selNode.settings.currencyUnits, fiatConversion: this.selNode.settings.fiatConversion, + lnImplementation: this.selNode.lnImplementation, swapServerUrl: this.selNode.settings.swapServerUrl, boltzServerUrl: this.selNode.settings.boltzServerUrl, enableOffers: this.selNode.settings.enableOffers + } })); } diff --git a/src/app/shared/components/node-config/services-settings/services-settings.component.spec.ts b/src/app/shared/components/node-config/services-settings/services-settings.component.spec.ts index dc705639..1e2ba9f8 100644 --- a/src/app/shared/components/node-config/services-settings/services-settings.component.spec.ts +++ b/src/app/shared/components/node-config/services-settings/services-settings.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { SharedModule } from '../../../shared.module'; import { BoltzServiceSettingsComponent } from './boltz-service-settings/boltz-service-settings.component'; import { LoopServiceSettingsComponent } from './loop-service-settings/loop-service-settings.component'; @@ -18,12 +21,7 @@ describe('ServicesSettingsComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/shared/components/node-config/services-settings/services-settings.component.ts b/src/app/shared/components/node-config/services-settings/services-settings.component.ts index 7a972bd5..685ed7f1 100644 --- a/src/app/shared/components/node-config/services-settings/services-settings.component.ts +++ b/src/app/shared/components/node-config/services-settings/services-settings.component.ts @@ -2,13 +2,8 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; import { Router, ResolveEnd } from '@angular/router'; import { Subject } from 'rxjs'; import { takeUntil, filter } from 'rxjs/operators'; -import { Store } from '@ngrx/store'; import { faLayerGroup } from '@fortawesome/free-solid-svg-icons'; -import { ConfigSettingsNode, RTLConfiguration } from '../../../models/RTLconfig'; - -import * as fromRTLReducer from '../../../../store/rtl.reducers'; - @Component({ selector: 'rtl-services-settings', templateUrl: './services-settings.component.html', @@ -17,27 +12,20 @@ import * as fromRTLReducer from '../../../../store/rtl.reducers'; export class ServicesSettingsComponent implements OnInit, OnDestroy { public faLayerGroup = faLayerGroup; - public selNode: ConfigSettingsNode; - public appConfig: RTLConfiguration; public links = [{ link: 'loop', name: 'Loop' }, { link: 'boltz', name: 'Boltz' }]; public activeLink = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private router: Router) { } + constructor(private router: Router) { } ngOnInit() { const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; }); - this.store.select('root').pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.appConfig = rtlStore.appConfig; - this.selNode = rtlStore.selNode; - }); } ngOnDestroy() { diff --git a/src/app/shared/components/services/boltz/boltz-root.component.spec.ts b/src/app/shared/components/services/boltz/boltz-root.component.spec.ts index 0670d20c..b5fbcdff 100644 --- a/src/app/shared/components/services/boltz/boltz-root.component.spec.ts +++ b/src/app/shared/components/services/boltz/boltz-root.component.spec.ts @@ -3,11 +3,14 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { BoltzService } from '../../../services/boltz.service'; import { CommonService } from '../../../services/common.service'; import { DataService } from '../../../services/data.service'; -import { mockBoltzService, mockDataService, mockLoggerService } from '../../../test-helpers/mock-services'; +import { mockBoltzService, mockDataService } from '../../../test-helpers/mock-services'; import { SharedModule } from '../../../shared.module'; import { BoltzRootComponent } from './boltz-root.component'; @@ -23,12 +26,7 @@ describe('BoltzRootComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/shared/components/services/boltz/boltz-root.component.ts b/src/app/shared/components/services/boltz/boltz-root.component.ts index ab88179f..85df23d9 100644 --- a/src/app/shared/components/services/boltz/boltz-root.component.ts +++ b/src/app/shared/components/services/boltz/boltz-root.component.ts @@ -9,8 +9,8 @@ import { SwapModalComponent } from './swap-modal/swap-modal.component'; import { ReverseSwap, Swap, ListSwaps } from '../../../models/boltzModels'; import { BoltzService } from '../../../services/boltz.service'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; -import * as RTLActions from '../../../../store/rtl.actions'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert } from '../../../../store/rtl.actions'; @Component({ selector: 'rtl-boltz-root', @@ -29,7 +29,7 @@ export class BoltzRootComponent implements OnInit, OnDestroy { public activeTab = this.links[0]; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private router: Router, private store: Store, private boltzService: BoltzService) { } + constructor(private router: Router, private store: Store, private boltzService: BoltzService) { } ngOnInit() { this.boltzService.listSwaps(); @@ -37,7 +37,7 @@ export class BoltzRootComponent implements OnInit, OnDestroy { this.activeTab = linkFound ? linkFound : this.links[0]; this.selectedSwapType = linkFound && linkFound.link === 'swapin' ? SwapTypeEnum.SWAP_IN : SwapTypeEnum.SWAP_OUT; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeTab = linkFound ? linkFound : this.links[0]; this.selectedSwapType = linkFound && linkFound.link === 'swapin' ? SwapTypeEnum.SWAP_IN : SwapTypeEnum.SWAP_OUT; @@ -70,11 +70,13 @@ export class BoltzRootComponent implements OnInit, OnDestroy { this.boltzService.serviceInfo(). pipe(takeUntil(this.unSubs[2])). subscribe((response) => { - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - serviceInfo: response, - direction: direction, - component: SwapModalComponent + this.store.dispatch(openAlert({ + payload: { + data: { + serviceInfo: response, + direction: direction, + component: SwapModalComponent + } } })); }); diff --git a/src/app/shared/components/services/boltz/swap-in-info-graphics/info-graphics.component.spec.ts b/src/app/shared/components/services/boltz/swap-in-info-graphics/info-graphics.component.spec.ts index 3f5e2aca..1f373cd2 100644 --- a/src/app/shared/components/services/boltz/swap-in-info-graphics/info-graphics.component.spec.ts +++ b/src/app/shared/components/services/boltz/swap-in-info-graphics/info-graphics.component.spec.ts @@ -2,12 +2,15 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; import { SharedModule } from '../../../../shared.module'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../services/common.service'; import { DataService } from '../../../../services/data.service'; import { SwapInInfoGraphicsComponent } from './info-graphics.component'; -import { mockDataService, mockLoggerService } from '../../../../test-helpers/mock-services'; +import { mockDataService } from '../../../../test-helpers/mock-services'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; describe('SwapInInfoGraphicsComponent', () => { @@ -20,12 +23,7 @@ describe('SwapInInfoGraphicsComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.html b/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.html index d9c196c3..67c290d8 100644 --- a/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.html +++ b/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.html @@ -27,8 +27,8 @@
- - + +
@@ -46,7 +46,7 @@
- +
@@ -66,13 +66,13 @@

{{(swapStatus && swapStatus.error) ? (swapDirectionCaption + ' failed.') : (swapStatus && swapStatus.id) ? (swapDirectionCaption + ' request placed successfully. You can check the status of the request on the \'Boltz\' menu.') : (swapDirectionCaption + ' request placed successfully.')}}

- +
- +
@@ -99,12 +99,12 @@
- - - - - - + + + + + +
diff --git a/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.spec.ts b/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.spec.ts index 401bbe98..01378bd2 100644 --- a/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.spec.ts +++ b/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.spec.ts @@ -3,7 +3,10 @@ import { RouterTestingModule } from '@angular/router/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { BoltzService } from '../../../../../shared/services/boltz.service'; @@ -25,12 +28,7 @@ describe('SwapModalComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.ts b/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.ts index 12caa748..540695ab 100644 --- a/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.ts +++ b/src/app/shared/components/services/boltz/swap-modal/swap-modal.component.ts @@ -17,7 +17,7 @@ import { BoltzService } from '../../../../services/boltz.service'; import { LoggerService } from '../../../../services/logger.service'; import { CommonService } from '../../../../services/common.service'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { RTLState } from '../../../../../store/rtl.state'; @Component({ selector: 'rtl-boltz-swap-modal', @@ -47,7 +47,7 @@ export class SwapModalComponent implements OnInit, AfterViewInit, OnDestroy { statusFormGroup: FormGroup; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: SwapAlert, private store: Store, private boltzService: BoltzService, private formBuilder: FormBuilder, private decimalPipe: DecimalPipe, private logger: LoggerService, private router: Router, private commonService: CommonService) { } + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: SwapAlert, private store: Store, private boltzService: BoltzService, private formBuilder: FormBuilder, private decimalPipe: DecimalPipe, private logger: LoggerService, private router: Router, private commonService: CommonService) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); diff --git a/src/app/shared/components/services/boltz/swaps/swaps.component.html b/src/app/shared/components/services/boltz/swaps/swaps.component.html index 1eb1628c..c2732bd3 100644 --- a/src/app/shared/components/services/boltz/swaps/swaps.component.html +++ b/src/app/shared/components/services/boltz/swaps/swaps.component.html @@ -5,7 +5,7 @@ {{swapCaption}} History
- +
diff --git a/src/app/shared/components/services/boltz/swaps/swaps.component.spec.ts b/src/app/shared/components/services/boltz/swaps/swaps.component.spec.ts index 9343d83e..05c1d628 100644 --- a/src/app/shared/components/services/boltz/swaps/swaps.component.spec.ts +++ b/src/app/shared/components/services/boltz/swaps/swaps.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { BoltzService } from '../../../../../shared/services/boltz.service'; @@ -22,12 +25,7 @@ describe('BoltzSwapsComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/shared/components/services/boltz/swaps/swaps.component.ts b/src/app/shared/components/services/boltz/swaps/swaps.component.ts index 646476d1..ee649c6e 100644 --- a/src/app/shared/components/services/boltz/swaps/swaps.component.ts +++ b/src/app/shared/components/services/boltz/swaps/swaps.component.ts @@ -13,8 +13,8 @@ import { LoggerService } from '../../../../services/logger.service'; import { CommonService } from '../../../../services/common.service'; import { BoltzService } from '../../../../services/boltz.service'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { openAlert } from '../../../../../store/rtl.actions'; +import { RTLState } from '../../../../../store/rtl.state'; @Component({ selector: 'rtl-boltz-swaps', @@ -37,6 +37,7 @@ export class BoltzSwapsComponent implements AfterViewInit, OnChanges, OnDestroy public swapCaption = 'Swap Out'; public displayedColumns: any[] = []; public listSwaps: any; + public selFilter = ''; public flgSticky = false; public pageSize = PAGE_SIZE; public pageSizeOptions = PAGE_SIZE_OPTIONS; @@ -44,7 +45,7 @@ export class BoltzSwapsComponent implements AfterViewInit, OnChanges, OnDestroy public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private boltzService: BoltzService) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private boltzService: BoltzService) { this.screenSize = this.commonService.getScreenSize(); this.setTableColumns(); } @@ -85,9 +86,9 @@ export class BoltzSwapsComponent implements AfterViewInit, OnChanges, OnDestroy } } - applyFilter(selFilter: any) { - if (this.listSwaps) { - this.listSwaps.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + if (this.listSwaps && this.selFilter !== '') { + this.listSwaps.filter = this.selFilter.trim().toLowerCase(); } } @@ -97,23 +98,25 @@ export class BoltzSwapsComponent implements AfterViewInit, OnChanges, OnDestroy fetchedSwap = (this.selectedSwapType === SwapTypeEnum.SWAP_IN) ? fetchedSwap.swap : fetchedSwap.reverseSwap; const reorderedSwap = [ [{ key: 'status', value: SwapStateEnum[fetchedSwap.status], title: 'Status', width: 50, type: DataTypeEnum.STRING }, - { key: 'id', value: fetchedSwap.id, title: 'ID', width: 50, type: DataTypeEnum.STRING }], + { key: 'id', value: fetchedSwap.id, title: 'ID', width: 50, type: DataTypeEnum.STRING }], [{ key: 'amount', value: fetchedSwap.onchainAmount ? fetchedSwap.onchainAmount : fetchedSwap.expectedAmount ? fetchedSwap.expectedAmount : 0, title: fetchedSwap.onchainAmount ? 'Onchain Amount (Sats)' : fetchedSwap.expectedAmount ? 'Expected Amount (Sats)' : 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'timeoutBlockHeight', value: fetchedSwap.timeoutBlockHeight, title: 'Timeout Block Height', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'timeoutBlockHeight', value: fetchedSwap.timeoutBlockHeight, title: 'Timeout Block Height', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'address', value: fetchedSwap.claimAddress ? fetchedSwap.claimAddress : fetchedSwap.lockupAddress ? fetchedSwap.lockupAddress : '', title: fetchedSwap.claimAddress ? 'Claim Address' : fetchedSwap.lockupAddress ? 'Lockup Address' : 'Address', width: 100, type: DataTypeEnum.STRING }], [{ key: 'invoice', value: fetchedSwap.invoice, title: 'Invoice', width: 100, type: DataTypeEnum.STRING }], [{ key: 'privateKey', value: fetchedSwap.privateKey, title: 'Private Key', width: 100, type: DataTypeEnum.STRING }], [{ key: 'preimage', value: fetchedSwap.preimage, title: 'Preimage', width: 100, type: DataTypeEnum.STRING }], [{ key: 'redeemScript', value: fetchedSwap.redeemScript, title: 'Redeem Script', width: 100, type: DataTypeEnum.STRING }], [{ key: 'lockupTransactionId', value: fetchedSwap.lockupTransactionId, title: 'Lockup Transaction ID', width: 50, type: DataTypeEnum.STRING }, - { key: 'transactionId', value: fetchedSwap.claimTransactionId ? fetchedSwap.claimTransactionId : fetchedSwap.refundTransactionId ? fetchedSwap.refundTransactionId : '', title: fetchedSwap.claimTransactionId ? 'Claim Transaction ID' : fetchedSwap.refundTransactionId ? 'Refund Transaction ID' : 'Transaction ID', width: 50, type: DataTypeEnum.STRING }] + { key: 'transactionId', value: fetchedSwap.claimTransactionId ? fetchedSwap.claimTransactionId : fetchedSwap.refundTransactionId ? fetchedSwap.refundTransactionId : '', title: fetchedSwap.claimTransactionId ? 'Claim Transaction ID' : fetchedSwap.refundTransactionId ? 'Refund Transaction ID' : 'Transaction ID', width: 50, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: this.swapCaption + ' Status', - message: reorderedSwap, - openedBy: 'SWAP' + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: this.swapCaption + ' Status', + message: reorderedSwap, + openedBy: 'SWAP' + } } })); }); @@ -128,6 +131,7 @@ export class BoltzSwapsComponent implements AfterViewInit, OnChanges, OnDestroy this.paginator.firstPage(); } this.listSwaps.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.listSwaps); } diff --git a/src/app/shared/components/services/loop/loop-modal/loop-modal.component.html b/src/app/shared/components/services/loop/loop-modal/loop-modal.component.html index 0e9b1480..9daeaffb 100644 --- a/src/app/shared/components/services/loop/loop-modal/loop-modal.component.html +++ b/src/app/shared/components/services/loop/loop-modal/loop-modal.component.html @@ -44,7 +44,7 @@ Fast
- +
@@ -54,8 +54,8 @@

closeLocal balance amount is insufficient for swap.

- - + +
@@ -73,7 +73,7 @@
- +
@@ -93,14 +93,14 @@

{{(loopStatus && loopStatus.error) ? (loopDirectionCaption + ' failed.') : (loopStatus && loopStatus.id_bytes && channel) ? (loopDirectionCaption + ' request placed successfully. You can check the status of the request on the \'Loop\' menu.') : (loopDirectionCaption + ' request placed successfully.')}}

- - + +
- +
@@ -127,12 +127,12 @@
- - - - - - + + + + + +
diff --git a/src/app/shared/components/services/loop/loop-modal/loop-modal.component.spec.ts b/src/app/shared/components/services/loop/loop-modal/loop-modal.component.spec.ts index 89817d88..1b00d73b 100644 --- a/src/app/shared/components/services/loop/loop-modal/loop-modal.component.spec.ts +++ b/src/app/shared/components/services/loop/loop-modal/loop-modal.component.spec.ts @@ -3,7 +3,10 @@ import { RouterTestingModule } from '@angular/router/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { LoopService } from '../../../../../shared/services/loop.service'; @@ -25,12 +28,7 @@ describe('LoopModalComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/shared/components/services/loop/loop-modal/loop-modal.component.ts b/src/app/shared/components/services/loop/loop-modal/loop-modal.component.ts index 8d9e84fb..714c7195 100644 --- a/src/app/shared/components/services/loop/loop-modal/loop-modal.component.ts +++ b/src/app/shared/components/services/loop/loop-modal/loop-modal.component.ts @@ -16,9 +16,11 @@ import { LoopAlert } from '../../../../models/alertData'; import { LoopService } from '../../../../services/loop.service'; import { LoggerService } from '../../../../services/logger.service'; import { CommonService } from '../../../../services/common.service'; -import { Channel } from '../../../../models/lndModels'; +import { Channel, ChannelsSummary, LightningBalance } from '../../../../models/lndModels'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { RTLState } from '../../../../../store/rtl.state'; +import { channels } from '../../../../../lnd/store/lnd.selector'; +import { ApiCallStatusPayload } from '../../../../models/apiCallsPayload'; @Component({ selector: 'rtl-loop-modal', @@ -55,7 +57,7 @@ export class LoopModalComponent implements OnInit, AfterViewInit, OnDestroy { statusFormGroup: FormGroup; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: LoopAlert, private store: Store, private loopService: LoopService, private formBuilder: FormBuilder, private decimalPipe: DecimalPipe, private logger: LoggerService, private router: Router, private commonService: CommonService) { } + constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: LoopAlert, private store: Store, private loopService: LoopService, private formBuilder: FormBuilder, private decimalPipe: DecimalPipe, private logger: LoggerService, private router: Router, private commonService: CommonService) { } ngOnInit() { this.screenSize = this.commonService.getScreenSize(); @@ -78,10 +80,9 @@ export class LoopModalComponent implements OnInit, AfterViewInit, OnDestroy { }); this.statusFormGroup = this.formBuilder.group({}); this.onFormValueChanges(); - this.store.select('lnd'). - pipe(takeUntil(this.unSubs[6])). - subscribe((rtlStore) => { - this.localBalanceToCompare = (this.channel) ? +this.channel.local_balance : +rtlStore.totalLocalBalance; + this.store.select(channels).pipe(takeUntil(this.unSubs[6])). + subscribe((channelsSelector: { channels: Channel[], channelsSummary: ChannelsSummary, lightningBalance: LightningBalance, apiCallStatus: ApiCallStatusPayload }) => { + this.localBalanceToCompare = (this.channel) ? +this.channel.local_balance : +channelsSelector.lightningBalance.local; }); } diff --git a/src/app/shared/components/services/loop/loop-quote/loop-quote.component.html b/src/app/shared/components/services/loop/loop-quote/loop-quote.component.html index dd328abe..c1a89777 100644 --- a/src/app/shared/components/services/loop/loop-quote/loop-quote.component.html +++ b/src/app/shared/components/services/loop/loop-quote/loop-quote.component.html @@ -25,7 +25,7 @@ {{quote?.prepay_amt_sat | number}} - +

Max Off-chain Swap Routing Fee (Sats)

diff --git a/src/app/shared/components/services/loop/loop.component.spec.ts b/src/app/shared/components/services/loop/loop.component.spec.ts index cd7d8408..fb860e93 100644 --- a/src/app/shared/components/services/loop/loop.component.spec.ts +++ b/src/app/shared/components/services/loop/loop.component.spec.ts @@ -2,12 +2,15 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { LoopService } from '../../../../shared/services/loop.service'; import { LoopComponent } from './loop.component'; import { SharedModule } from '../../../shared.module'; -import { mockDataService, mockLoggerService, mockLoopService } from '../../../test-helpers/mock-services'; +import { mockDataService, mockLoopService } from '../../../test-helpers/mock-services'; import { CommonService } from '../../../services/common.service'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { DataService } from '../../../services/data.service'; @@ -23,12 +26,7 @@ describe('LoopComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/shared/components/services/loop/loop.component.ts b/src/app/shared/components/services/loop/loop.component.ts index 05778f55..c78a06c5 100644 --- a/src/app/shared/components/services/loop/loop.component.ts +++ b/src/app/shared/components/services/loop/loop.component.ts @@ -10,8 +10,8 @@ import { LoopModalComponent } from './loop-modal/loop-modal.component'; import { LoopQuote, LoopSwapStatus } from '../../../models/loopModels'; import { LoopService } from '../../../services/loop.service'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; -import * as RTLActions from '../../../../store/rtl.actions'; +import { RTLState } from '../../../../store/rtl.state'; +import { openAlert } from '../../../../store/rtl.actions'; @Component({ selector: 'rtl-loop', @@ -34,7 +34,7 @@ export class LoopComponent implements OnInit, OnDestroy { public activeTab = this.links[0]; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private router: Router, private loopService: LoopService, private store: Store) { } + constructor(private router: Router, private loopService: LoopService, private store: Store) { } ngOnInit() { this.loopService.listSwaps(); @@ -42,7 +42,7 @@ export class LoopComponent implements OnInit, OnDestroy { this.activeTab = linkFound ? linkFound : this.links[0]; this.selectedSwapType = linkFound && linkFound.link === 'loopin' ? LoopTypeEnum.LOOP_IN : LoopTypeEnum.LOOP_OUT; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeTab = linkFound ? linkFound : this.links[0]; this.selectedSwapType = linkFound && linkFound.link === 'loopin' ? LoopTypeEnum.LOOP_IN : LoopTypeEnum.LOOP_OUT; @@ -71,12 +71,14 @@ export class LoopComponent implements OnInit, OnDestroy { this.loopService.getLoopInTermsAndQuotes(this.targetConf). pipe(takeUntil(this.unSubs[2])). subscribe((response) => { - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - minQuote: response[0], - maxQuote: response[1], - direction: direction, - component: LoopModalComponent + this.store.dispatch(openAlert({ + payload: { + data: { + minQuote: response[0], + maxQuote: response[1], + direction: direction, + component: LoopModalComponent + } } })); }); @@ -84,12 +86,14 @@ export class LoopComponent implements OnInit, OnDestroy { this.loopService.getLoopOutTermsAndQuotes(this.targetConf). pipe(takeUntil(this.unSubs[3])). subscribe((response) => { - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - minQuote: response[0], - maxQuote: response[1], - direction: direction, - component: LoopModalComponent + this.store.dispatch(openAlert({ + payload: { + data: { + minQuote: response[0], + maxQuote: response[1], + direction: direction, + component: LoopModalComponent + } } })); }); diff --git a/src/app/shared/components/services/loop/swaps/swaps.component.html b/src/app/shared/components/services/loop/swaps/swaps.component.html index 05cc8028..c85e7288 100644 --- a/src/app/shared/components/services/loop/swaps/swaps.component.html +++ b/src/app/shared/components/services/loop/swaps/swaps.component.html @@ -5,7 +5,7 @@ {{swapCaption}} History
- +
diff --git a/src/app/shared/components/services/loop/swaps/swaps.component.spec.ts b/src/app/shared/components/services/loop/swaps/swaps.component.spec.ts index 7e537436..f4315048 100644 --- a/src/app/shared/components/services/loop/swaps/swaps.component.spec.ts +++ b/src/app/shared/components/services/loop/swaps/swaps.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../../eclair/store/ecl.reducers'; import { CommonService } from '../../../../../shared/services/common.service'; import { LoggerService } from '../../../../../shared/services/logger.service'; import { LoopService } from '../../../../../shared/services/loop.service'; @@ -22,12 +25,7 @@ describe('SwapsComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ CommonService, diff --git a/src/app/shared/components/services/loop/swaps/swaps.component.ts b/src/app/shared/components/services/loop/swaps/swaps.component.ts index 6f33930d..bb4c2190 100644 --- a/src/app/shared/components/services/loop/swaps/swaps.component.ts +++ b/src/app/shared/components/services/loop/swaps/swaps.component.ts @@ -14,8 +14,8 @@ import { LoggerService } from '../../../../services/logger.service'; import { CommonService } from '../../../../services/common.service'; import { LoopService } from '../../../../services/loop.service'; -import * as RTLActions from '../../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../../store/rtl.reducers'; +import { RTLState } from '../../../../../store/rtl.state'; +import { openAlert } from '../../../../../store/rtl.actions'; @Component({ selector: 'rtl-swaps', @@ -38,6 +38,7 @@ export class SwapsComponent implements AfterViewInit, OnChanges, OnDestroy { public swapCaption = 'Loop Out'; public displayedColumns: any[] = []; public listSwaps: any; + public selFilter = ''; public flgSticky = false; public pageSize = PAGE_SIZE; public pageSizeOptions = PAGE_SIZE_OPTIONS; @@ -45,7 +46,7 @@ export class SwapsComponent implements AfterViewInit, OnChanges, OnDestroy { public screenSizeEnum = ScreenSizeEnum; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private loopService: LoopService) { + constructor(private logger: LoggerService, private commonService: CommonService, private store: Store, private loopService: LoopService) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS) { this.flgSticky = false; @@ -73,8 +74,8 @@ export class SwapsComponent implements AfterViewInit, OnChanges, OnDestroy { this.loadSwapsTable(this.swapsData); } - applyFilter(selFilter: any) { - this.listSwaps.filter = selFilter.value.trim().toLowerCase(); + applyFilter() { + this.listSwaps.filter = this.selFilter.trim().toLowerCase(); } onSwapClick(selSwap: LoopSwapStatus, event: any) { @@ -82,21 +83,23 @@ export class SwapsComponent implements AfterViewInit, OnChanges, OnDestroy { subscribe((fetchedSwap: LoopSwapStatus) => { const reorderedSwap = [ [{ key: 'state', value: LoopStateEnum[fetchedSwap.state], title: 'Status', width: 50, type: DataTypeEnum.STRING }, - { key: 'amt', value: fetchedSwap.amt, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'amt', value: fetchedSwap.amt, title: 'Amount (Sats)', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'initiation_time', value: fetchedSwap.initiation_time / 1000000000, title: 'Initiation Time', width: 50, type: DataTypeEnum.DATE_TIME }, - { key: 'last_update_time', value: fetchedSwap.last_update_time / 1000000000, title: 'Last Update Time', width: 50, type: DataTypeEnum.DATE_TIME }], + { key: 'last_update_time', value: fetchedSwap.last_update_time / 1000000000, title: 'Last Update Time', width: 50, type: DataTypeEnum.DATE_TIME }], [{ key: 'cost_server', value: fetchedSwap.cost_server, title: 'Server Cost (Sats)', width: 33, type: DataTypeEnum.NUMBER }, - { key: 'cost_offchain', value: fetchedSwap.cost_offchain, title: 'Offchain Cost (Sats)', width: 33, type: DataTypeEnum.NUMBER }, - { key: 'cost_onchain', value: fetchedSwap.cost_onchain, title: 'Onchain Cost (Sats)', width: 34, type: DataTypeEnum.NUMBER }], + { key: 'cost_offchain', value: fetchedSwap.cost_offchain, title: 'Offchain Cost (Sats)', width: 33, type: DataTypeEnum.NUMBER }, + { key: 'cost_onchain', value: fetchedSwap.cost_onchain, title: 'Onchain Cost (Sats)', width: 34, type: DataTypeEnum.NUMBER }], [{ key: 'id_bytes', value: fetchedSwap.id_bytes, title: 'ID', width: 100, type: DataTypeEnum.STRING }], [{ key: 'htlc_address', value: fetchedSwap.htlc_address, title: 'HTLC Address', width: 100, type: DataTypeEnum.STRING }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: this.swapCaption + ' Status', - message: reorderedSwap, - openedBy: 'SWAP' + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: this.swapCaption + ' Status', + message: reorderedSwap, + openedBy: 'SWAP' + } } })); }); @@ -108,6 +111,7 @@ export class SwapsComponent implements AfterViewInit, OnChanges, OnDestroy { this.listSwaps.sortingDataAccessor = (data: any, sortHeaderId: string) => ((data[sortHeaderId] && isNaN(data[sortHeaderId])) ? data[sortHeaderId].toLocaleLowerCase() : data[sortHeaderId] ? +data[sortHeaderId] : null); this.listSwaps.filterPredicate = (swap: LoopSwapStatus, fltr: string) => JSON.stringify(swap).toLowerCase().includes(fltr); this.listSwaps.paginator = this.paginator; + this.applyFilter(); this.logger.info(this.listSwaps); } diff --git a/src/app/shared/components/services/services.component.spec.ts b/src/app/shared/components/services/services.component.spec.ts index e4b73e3f..7befb4fb 100644 --- a/src/app/shared/components/services/services.component.spec.ts +++ b/src/app/shared/components/services/services.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { SharedModule } from '../../shared.module'; import { ServicesComponent } from './services.component'; @@ -16,12 +19,7 @@ describe('ServicesComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/shared/components/services/services.component.ts b/src/app/shared/components/services/services.component.ts index f10faf9d..75839dfd 100644 --- a/src/app/shared/components/services/services.component.ts +++ b/src/app/shared/components/services/services.component.ts @@ -5,8 +5,9 @@ import { takeUntil, filter } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { faLayerGroup } from '@fortawesome/free-solid-svg-icons'; -import { ConfigSettingsNode, RTLConfiguration } from '../../models/RTLconfig'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { ConfigSettingsNode } from '../../models/RTLconfig'; +import { RTLState } from '../../../store/rtl.state'; +import { rootSelectedNode } from '../../../store/rtl.selector'; @Component({ selector: 'rtl-services', @@ -19,28 +20,26 @@ export class ServicesComponent implements OnInit, OnDestroy { public showLnConfig = false; public showBitcoind = false; public selNode: ConfigSettingsNode; - public appConfig: RTLConfiguration; public lnImplementationStr = ''; public links = [{ link: 'layout', name: 'Layout' }, { link: 'auth', name: 'Authentication' }, { link: 'lnconfig', name: this.lnImplementationStr }, { link: 'bconfig', name: 'BitcoinD Config' }]; public activeLink = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private router: Router) { } + constructor(private store: Store, private router: Router) { } ngOnInit() { const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; }); - this.store.select('root').pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[1])). + subscribe((selNode) => { this.showLnConfig = false; this.showBitcoind = false; - this.appConfig = rtlStore.appConfig; - this.selNode = rtlStore.selNode; + this.selNode = selNode; switch (this.selNode.lnImplementation.toUpperCase()) { case 'CLT': this.lnImplementationStr = 'C-Lightning Config'; diff --git a/src/app/shared/components/settings/app-settings/app-settings.component.spec.ts b/src/app/shared/components/settings/app-settings/app-settings.component.spec.ts index 3ae142e2..8ea868b8 100644 --- a/src/app/shared/components/settings/app-settings/app-settings.component.spec.ts +++ b/src/app/shared/components/settings/app-settings/app-settings.component.spec.ts @@ -1,7 +1,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../../shared/services/logger.service'; import { AppSettingsComponent } from './app-settings.component'; import { mockLoggerService } from '../../../test-helpers/mock-services'; @@ -18,12 +21,7 @@ describe('AppSettingsComponent', () => { imports: [ BrowserAnimationsModule, SharedModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ], providers: [ { provide: LoggerService, useClass: mockLoggerService } diff --git a/src/app/shared/components/settings/app-settings/app-settings.component.ts b/src/app/shared/components/settings/app-settings/app-settings.component.ts index 6ab5a512..6893a0fa 100644 --- a/src/app/shared/components/settings/app-settings/app-settings.component.ts +++ b/src/app/shared/components/settings/app-settings/app-settings.component.ts @@ -5,11 +5,12 @@ import { Store } from '@ngrx/store'; import { faWindowRestore, faPlus, faInfoCircle } from '@fortawesome/free-solid-svg-icons'; import { UI_MESSAGES } from '../../../services/consts-enums-functions'; -import { ConfigSettingsNode, RTLConfiguration } from '../../../models/RTLconfig'; +import { RTLConfiguration } from '../../../models/RTLconfig'; import { LoggerService } from '../../../services/logger.service'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { saveSettings } from '../../../../store/rtl.actions'; +import { rootAppConfig } from '../../../../store/rtl.selector'; @Component({ selector: 'rtl-app-settings', @@ -21,22 +22,18 @@ export class AppSettingsComponent implements OnInit, OnDestroy { public faInfoCircle = faInfoCircle; public faWindowRestore = faWindowRestore; public faPlus = faPlus; - public selNode: ConfigSettingsNode; public appConfig: RTLConfiguration; public previousDefaultNode = 0; unSubs: Array> = [new Subject(), new Subject()]; - constructor(private logger: LoggerService, private store: Store) { } + constructor(private logger: LoggerService, private store: Store) { } ngOnInit() { - this.store.select('root'). - pipe(takeUntil(this.unSubs[0])). - subscribe((rtlStore) => { - this.appConfig = rtlStore.appConfig; - this.previousDefaultNode = this.appConfig.defaultNodeIndex; - this.selNode = rtlStore.selNode; - this.logger.info(rtlStore); - }); + this.store.select(rootAppConfig).pipe(takeUntil(this.unSubs[0])).subscribe((appConfig) => { + this.appConfig = appConfig; + this.previousDefaultNode = this.appConfig.defaultNodeIndex; + this.logger.info(appConfig); + }); } onAddNewNode() { @@ -45,7 +42,7 @@ export class AppSettingsComponent implements OnInit, OnDestroy { onUpdateSettings(): boolean | void { const defaultNodeIndex = (this.appConfig.defaultNodeIndex) ? this.appConfig.defaultNodeIndex : +this.appConfig.nodes[0].index; - this.store.dispatch(new RTLActions.SaveSettings({ uiMessage: UI_MESSAGES.UPDATE_DEFAULT_NODE_SETTING, defaultNodeIndex: defaultNodeIndex })); + this.store.dispatch(saveSettings({ payload: { uiMessage: UI_MESSAGES.UPDATE_DEFAULT_NODE_SETTING, defaultNodeIndex: defaultNodeIndex } })); } onResetSettings() { diff --git a/src/app/shared/components/settings/auth-settings/auth-settings.component.html b/src/app/shared/components/settings/auth-settings/auth-settings.component.html index 587eb631..2872bc75 100644 --- a/src/app/shared/components/settings/auth-settings/auth-settings.component.html +++ b/src/app/shared/components/settings/auth-settings/auth-settings.component.html @@ -1,5 +1,5 @@
-
+
Password @@ -20,10 +20,10 @@
-
-
- -
+
+ +
+
diff --git a/src/app/shared/components/settings/auth-settings/auth-settings.component.spec.ts b/src/app/shared/components/settings/auth-settings/auth-settings.component.spec.ts index 91124f0c..86c87d60 100644 --- a/src/app/shared/components/settings/auth-settings/auth-settings.component.spec.ts +++ b/src/app/shared/components/settings/auth-settings/auth-settings.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../../store/rtl.reducers'; +import { RootReducer } from '../../../../store/rtl.reducers'; +import { LNDReducer } from '../../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../../eclair/store/ecl.reducers'; import { LoggerService } from '../../../../shared/services/logger.service'; import { SessionService } from '../../../../shared/services/session.service'; @@ -23,12 +26,7 @@ describe('AuthSettingsComponent', () => { BrowserAnimationsModule, SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }), + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }), EffectsModule.forRoot([mockRTLEffects, mockLNDEffects, mockCLEffects, mockECLEffects]) ], providers: [ diff --git a/src/app/shared/components/settings/auth-settings/auth-settings.component.ts b/src/app/shared/components/settings/auth-settings/auth-settings.component.ts index 758d9830..1ab16992 100644 --- a/src/app/shared/components/settings/auth-settings/auth-settings.component.ts +++ b/src/app/shared/components/settings/auth-settings/auth-settings.component.ts @@ -9,12 +9,12 @@ import * as sha256 from 'sha256'; import { TwoFactorAuthComponent } from '../../data-modal/two-factor-auth/two-factor-auth.component'; import { RTLConfiguration, ConfigSettingsNode } from '../../../models/RTLconfig'; -import { PASSWORD_BLACKLIST, UI_MESSAGES } from '../../../services/consts-enums-functions'; +import { PASSWORD_BLACKLIST, RTLActions, UI_MESSAGES } from '../../../services/consts-enums-functions'; import { SessionService } from '../../../services/session.service'; -import { LoggerService } from '../../../services/logger.service'; +import { openAlert, resetPassword, setSelectedNode } from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; -import * as RTLActions from '../../../../store/rtl.actions'; +import { RTLState } from '../../../../store/rtl.state'; +import { rootAppConfig, rootSelectedNode } from '../../../../store/rtl.selector'; @Component({ selector: 'rtl-auth-settings', @@ -23,7 +23,7 @@ import * as RTLActions from '../../../../store/rtl.actions'; }) export class AuthSettingsComponent implements OnInit, OnDestroy { - @ViewChild('authForm', { static: true }) form: any; + @ViewChild('authForm', { static: false }) form: any; public faInfoCircle = faInfoCircle; public faUserLock = faUserLock; public faUserClock = faUserClock; @@ -38,21 +38,20 @@ export class AuthSettingsComponent implements OnInit, OnDestroy { public selNode: ConfigSettingsNode; unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private logger: LoggerService, private actions: Actions, private router: Router, private sessionService: SessionService) { } + constructor(private store: Store, private actions: Actions, private router: Router, private sessionService: SessionService) { } ngOnInit() { this.initializeNodeData = this.sessionService.getItem('defaultPassword') === 'true'; - this.store.select('root'). - pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.appConfig = rtlStore.appConfig; - this.selNode = rtlStore.selNode; - this.logger.info(rtlStore); - }); + this.store.select(rootAppConfig).pipe(takeUntil(this.unSubs[0])).subscribe((appConfig) => { + this.appConfig = appConfig; + }); + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[1])).subscribe((selNode) => { + this.selNode = selNode; + }); this.actions.pipe( takeUntil(this.unSubs[2]), filter((action) => action.type === RTLActions.RESET_PASSWORD_RES)). - subscribe((action: (RTLActions.ResetPasswordRes)) => { + subscribe((action: any) => { if (PASSWORD_BLACKLIST.includes(this.currPassword.toLowerCase())) { // To redirect after initial password reset is done switch (this.selNode.lnImplementation.toUpperCase()) { case 'CLT': @@ -68,7 +67,7 @@ export class AuthSettingsComponent implements OnInit, OnDestroy { break; } } - this.form.resetForm(); + if (this.form) { this.form.resetForm(); } }); } @@ -76,12 +75,12 @@ export class AuthSettingsComponent implements OnInit, OnDestroy { if (!this.currPassword || !this.newPassword || !this.confirmPassword || this.currPassword === this.newPassword || this.newPassword !== this.confirmPassword || PASSWORD_BLACKLIST.includes(this.newPassword.toLowerCase())) { return true; } - this.store.dispatch(new RTLActions.ResetPassword({ currPassword: sha256(this.currPassword), newPassword: sha256(this.newPassword) })); + this.store.dispatch(resetPassword({ payload: { currPassword: sha256(this.currPassword).toString(), newPassword: sha256(this.newPassword).toString() } })); } matchOldAndNewPasswords(): boolean { let invalid = false; - if (this.form.controls.newpassword) { + if (this.form && this.form.controls && this.form.controls.newpassword) { if (!this.newPassword) { this.form.controls.newpassword.setErrors({ invalid: true }); this.errorMsg = 'New password is required.'; @@ -105,7 +104,7 @@ export class AuthSettingsComponent implements OnInit, OnDestroy { matchNewPasswords(): boolean { let invalid = false; - if (this.form.controls.confirmpassword) { + if (this.form && this.form.controls && this.form.controls.confirmpassword) { if (!this.confirmPassword) { this.form.controls.confirmpassword.setErrors({ invalid: true }); this.errorConfirmMsg = 'Confirm password is required.'; @@ -124,10 +123,12 @@ export class AuthSettingsComponent implements OnInit, OnDestroy { } on2FAuth() { - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - appConfig: this.appConfig, - component: TwoFactorAuthComponent + this.store.dispatch(openAlert({ + payload: { + data: { + appConfig: this.appConfig, + component: TwoFactorAuthComponent + } } })); } @@ -138,7 +139,7 @@ export class AuthSettingsComponent implements OnInit, OnDestroy { ngOnDestroy() { if (this.initializeNodeData) { - this.store.dispatch(new RTLActions.SetSelelectedNode({ uiMessage: UI_MESSAGES.NO_SPINNER, lnNode: this.selNode, isInitialSetup: true })); + this.store.dispatch(setSelectedNode({ payload: { uiMessage: UI_MESSAGES.NO_SPINNER, prevLnNodeIndex: -1, currentLnNode: this.selNode, isInitialSetup: true } })); } this.unSubs.forEach((unsub) => { unsub.next(); diff --git a/src/app/shared/components/settings/bitcoin-config/bitcoin-config.component.ts b/src/app/shared/components/settings/bitcoin-config/bitcoin-config.component.ts index b03d011e..89b80219 100644 --- a/src/app/shared/components/settings/bitcoin-config/bitcoin-config.component.ts +++ b/src/app/shared/components/settings/bitcoin-config/bitcoin-config.component.ts @@ -6,8 +6,8 @@ import { Store } from '@ngrx/store'; import { faCog } from '@fortawesome/free-solid-svg-icons'; import { RTLEffects } from '../../../../store/rtl.effects'; -import * as RTLActions from '../../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../../store/rtl.reducers'; +import { RTLState } from '../../../../store/rtl.state'; +import { fetchConfig } from '../../../../store/rtl.actions'; @Component({ selector: 'rtl-bitcoin-config', @@ -22,15 +22,15 @@ export class BitcoinConfigComponent implements OnInit, OnDestroy { public faCog = faCog; private unSubs: Array> = [new Subject(), new Subject()]; - constructor(private store: Store, private rtlEffects: RTLEffects, private router: Router) { } + constructor(private store: Store, private rtlEffects: RTLEffects, private router: Router) { } ngOnInit() { this.selectedNodeType = (this.router.url.includes('bconfig')) ? 'bitcoind' : 'ln'; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { this.selectedNodeType = (value.urlAfterRedirects.includes('bconfig')) ? 'bitcoind' : 'ln'; }); - this.store.dispatch(new RTLActions.FetchConfig(this.selectedNodeType)); + this.store.dispatch(fetchConfig({ payload: this.selectedNodeType })); this.rtlEffects.showLnConfig. pipe(takeUntil(this.unSubs[1])). subscribe((config: any) => { diff --git a/src/app/shared/components/settings/settings.component.spec.ts b/src/app/shared/components/settings/settings.component.spec.ts index b67d9a58..9048d947 100644 --- a/src/app/shared/components/settings/settings.component.spec.ts +++ b/src/app/shared/components/settings/settings.component.spec.ts @@ -2,7 +2,10 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule } from '@ngrx/store'; -import { RTLReducer } from '../../../store/rtl.reducers'; +import { RootReducer } from '../../../store/rtl.reducers'; +import { LNDReducer } from '../../../lnd/store/lnd.reducers'; +import { CLReducer } from '../../../clightning/store/cl.reducers'; +import { ECLReducer } from '../../../eclair/store/ecl.reducers'; import { SharedModule } from '../../shared.module'; import { SettingsComponent } from './settings.component'; @@ -16,12 +19,7 @@ describe('SettingsComponent', () => { imports: [ SharedModule, RouterTestingModule, - StoreModule.forRoot(RTLReducer, { - runtimeChecks: { - strictStateImmutability: false, - strictActionImmutability: false - } - }) + StoreModule.forRoot({ root: RootReducer, lnd: LNDReducer, cl: CLReducer, ecl: ECLReducer }) ] }). compileComponents(); diff --git a/src/app/shared/components/settings/settings.component.ts b/src/app/shared/components/settings/settings.component.ts index 421f5472..0ecd4f06 100644 --- a/src/app/shared/components/settings/settings.component.ts +++ b/src/app/shared/components/settings/settings.component.ts @@ -6,7 +6,8 @@ import { Store } from '@ngrx/store'; import { faUserCog } from '@fortawesome/free-solid-svg-icons'; import { ConfigSettingsNode, RTLConfiguration } from '../../models/RTLconfig'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { rootSelectedNode, rootAppConfig } from '../../../store/rtl.selector'; @Component({ selector: 'rtl-settings', @@ -23,25 +24,26 @@ export class SettingsComponent implements OnInit, OnDestroy { public activeLink = ''; private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private store: Store, private router: Router) { } + constructor(private store: Store, private router: Router) { } ngOnInit() { const linkFound = this.links.find((link) => this.router.url.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)). - subscribe((value: ResolveEnd) => { + subscribe((value: any) => { const linkFound = this.links.find((link) => value.urlAfterRedirects.includes(link.link)); this.activeLink = linkFound ? linkFound.link : this.links[0].link; }); - this.store.select('root').pipe(takeUntil(this.unSubs[1])). - subscribe((rtlStore) => { - this.showBitcoind = false; - this.appConfig = rtlStore.appConfig; - this.selNode = rtlStore.selNode; - if (this.selNode.settings && this.selNode.settings.bitcoindConfigPath && this.selNode.settings.bitcoindConfigPath.trim() !== '') { - this.showBitcoind = true; - } - }); + this.store.select(rootAppConfig).pipe(takeUntil(this.unSubs[1])).subscribe((appConfig) => { + this.appConfig = appConfig; + }); + this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[2])).subscribe((selNode) => { + this.showBitcoind = false; + this.selNode = selNode; + if (this.selNode.settings && this.selNode.settings.bitcoindConfigPath && this.selNode.settings.bitcoindConfigPath.trim() !== '') { + this.showBitcoind = true; + } + }); } ngOnDestroy() { diff --git a/src/app/shared/components/transactions-report-table/transactions-report-table.component.ts b/src/app/shared/components/transactions-report-table/transactions-report-table.component.ts index fbe21892..5ba7b9ce 100644 --- a/src/app/shared/components/transactions-report-table/transactions-report-table.component.ts +++ b/src/app/shared/components/transactions-report-table/transactions-report-table.component.ts @@ -8,8 +8,8 @@ import { MatTableDataSource } from '@angular/material/table'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS, getPaginatorLabel, AlertTypeEnum, DataTypeEnum, ScreenSizeEnum, SCROLL_RANGES } from '../../services/consts-enums-functions'; import { CommonService } from '../../services/common.service'; -import * as RTLActions from '../../../store/rtl.actions'; -import * as fromRTLReducer from '../../../store/rtl.reducers'; +import { RTLState } from '../../../store/rtl.state'; +import { openAlert } from '../../../store/rtl.actions'; @Component({ selector: 'rtl-transactions-report-table', @@ -36,7 +36,7 @@ export class TransactionsReportTableComponent implements OnInit, AfterViewInit, public screenSize = ''; public screenSizeEnum = ScreenSizeEnum; - constructor(private commonService: CommonService, private store: Store, private datePipe: DatePipe) { + constructor(private commonService: CommonService, private store: Store, private datePipe: DatePipe) { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS || this.screenSize === ScreenSizeEnum.SM) { this.flgSticky = false; @@ -73,15 +73,17 @@ export class TransactionsReportTableComponent implements OnInit, AfterViewInit, const reorderedTransactions = [ [{ key: 'date', value: this.dataRange === SCROLL_RANGES[1] ? this.datePipe.transform(selTransaction.date, 'MMM/yyyy') : this.datePipe.transform(selTransaction.date, 'dd/MMM/yyyy'), title: 'Date', width: 100, type: DataTypeEnum.DATE }], [{ key: 'amount_paid', value: Math.round(selTransaction.amount_paid), title: 'Amount Paid (Sats)', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'num_payments', value: selTransaction.num_payments, title: '# Payments', width: 50, type: DataTypeEnum.NUMBER }], + { key: 'num_payments', value: selTransaction.num_payments, title: '# Payments', width: 50, type: DataTypeEnum.NUMBER }], [{ key: 'amount_received', value: Math.round(selTransaction.amount_received), title: 'Amount Received (Sats)', width: 50, type: DataTypeEnum.NUMBER }, - { key: 'num_invoices', value: selTransaction.num_invoices, title: '# Invoices', width: 50, type: DataTypeEnum.NUMBER }] + { key: 'num_invoices', value: selTransaction.num_invoices, title: '# Invoices', width: 50, type: DataTypeEnum.NUMBER }] ]; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: AlertTypeEnum.INFORMATION, - alertTitle: 'Transaction Summary', - message: reorderedTransactions + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.INFORMATION, + alertTitle: 'Transaction Summary', + message: reorderedTransactions + } } })); } diff --git a/src/app/shared/directive/clipboard.directive.ts b/src/app/shared/directive/clipboard.directive.ts index b7cdaf5f..9745df08 100644 --- a/src/app/shared/directive/clipboard.directive.ts +++ b/src/app/shared/directive/clipboard.directive.ts @@ -13,18 +13,14 @@ export class ClipboardDirective { @HostListener('click', ['$event']) public onClick(event: MouseEvent): void { event.preventDefault(); - if (!this.payload) { + if (!this.payload || !navigator.clipboard) { return; } - const listener = (e: ClipboardEvent) => { - const clipboard = e.clipboardData || window['clipboardData']; - clipboard.setData('text', this.payload.toString()); - e.preventDefault(); - this.copied.emit(this.payload); - }; - document.addEventListener('copy', listener, false); - document.execCommand('copy'); - document.removeEventListener('copy', listener, false); + navigator.clipboard.writeText(this.payload.toString()).then(() => { + this.copied.emit(this.payload.toString()); + }, (err) => { + this.copied.emit('Error could not copy text: ' + JSON.stringify(err)); + }); } } diff --git a/src/app/shared/models/RTLconfig.ts b/src/app/shared/models/RTLconfig.ts index 32dcd768..c9b0a5d1 100644 --- a/src/app/shared/models/RTLconfig.ts +++ b/src/app/shared/models/RTLconfig.ts @@ -23,7 +23,8 @@ export class Settings { public swapServerUrl?: string, public boltzServerUrl?: string, public channelBackupPath?: string, - public currencyUnit?: string + public currencyUnit?: string, + public enableOffers?: boolean ) { } } @@ -43,7 +44,7 @@ export class ConfigSettingsNode { constructor( public settings: Settings, public authentication: Authentication, - public index?: string, + public index?: number, public lnNode?: string, public lnImplementation?: string ) { } @@ -57,6 +58,7 @@ export class RTLConfiguration { public selectedNodeIndex: number, public sso: SSO, public enable2FA: boolean, + public allowPasswordUpdate: boolean, public nodes: ConfigSettingsNode[] ) { } @@ -81,10 +83,11 @@ export interface SelNodeChild { lnImplementation?: string; swapServerUrl?: string; boltzServerUrl?: string; + enableOffers?: boolean; } export class HelpTopic { - constructor(public help: {question: string, answer: string, link?: string, linkCaption?: string, lnImplementation?: string}) { } + constructor(public help: { question: string, answer: string, link?: string, linkCaption?: string, lnImplementation?: string }) { } } diff --git a/src/app/shared/models/alertData.ts b/src/app/shared/models/alertData.ts index 7c927bbf..74da590d 100644 --- a/src/app/shared/models/alertData.ts +++ b/src/app/shared/models/alertData.ts @@ -1,7 +1,7 @@ -import { DataTypeEnum, LoopTypeEnum, SwapTypeEnum } from '../services/consts-enums-functions'; +import { DataTypeEnum, LoopTypeEnum, PaymentTypes, SwapTypeEnum } from '../services/consts-enums-functions'; import { GetInfoRoot, RTLConfiguration } from './RTLconfig'; import { GetInfo, Invoice, Channel, Peer, PendingOpenChannel, UTXO } from './lndModels'; -import { Invoice as InvoiceCL, GetInfo as GetInfoCL, Peer as PeerCL, Channel as ChannelCL, UTXO as UTXOCL } from './clModels'; +import { Invoice as InvoiceCL, GetInfo as GetInfoCL, Peer as PeerCL, Channel as ChannelCL, UTXO as UTXOCL, Offer as OfferCL } from './clModels'; import { GetInfo as GetInfoECL, Peer as PeerECL, Channel as ChannelECL, Invoice as InvoiceECL, PaymentSent as PaymentSentECL } from './eclModels'; import { LoopQuote } from './loopModels'; import { ServiceInfo } from './boltzModels'; @@ -91,6 +91,23 @@ export interface CLInvoiceInformation { component?: any; } +export interface CLPaymentInformation { + paymentType: PaymentTypes; + invoiceBolt11?: string; + pubkeyKeysend?: string; + bolt12?: string; + offerTitle?: string; + newlyAdded?: boolean; + component?: any; +} + +export interface CLOfferInformation { + offer: OfferCL; + newlyAdded?: boolean; + pageSize: number; + component?: any; +} + export interface ECLInvoiceInformation { invoice: InvoiceECL; newlyAdded?: boolean; @@ -202,7 +219,7 @@ export interface DialogConfig { maxWidth?: string; minHeight?: string; data: AlertData | ConfirmationData | ErrorData | ChannelRebalanceAlert | OpenChannelAlert | CLOpenChannelAlert | InvoiceInformation | - CLInvoiceInformation | ECLInvoiceInformation | ECLPaymentInformation | ChannelInformation | CLChannelInformation | - PendingOpenChannelInformation | OnChainAddressInformation | ShowPubkeyData | LoopAlert | SwapAlert | AuthConfig | - OnChainLabelUTXO | OnChainSendFunds | CLOnChainSendFunds | ECLChannelInformation | ECLOpenChannelAlert; + CLPaymentInformation | CLInvoiceInformation | CLOfferInformation | ECLInvoiceInformation | ECLPaymentInformation | ChannelInformation | CLChannelInformation | + PendingOpenChannelInformation | OnChainAddressInformation | ShowPubkeyData | LoopAlert | SwapAlert | AuthConfig | + OnChainLabelUTXO | OnChainSendFunds | CLOnChainSendFunds | ECLChannelInformation | ECLOpenChannelAlert; } diff --git a/src/app/shared/models/apiCallsPayload.ts b/src/app/shared/models/apiCallsPayload.ts index 6ad953a2..2b4153e3 100644 --- a/src/app/shared/models/apiCallsPayload.ts +++ b/src/app/shared/models/apiCallsPayload.ts @@ -1,8 +1,8 @@ import { APICallStatusEnum } from '../services/consts-enums-functions'; export interface ApiCallStatusPayload { - action: string; status: APICallStatusEnum; + action?: string; statusCode?: string; message?: string; URL?: string; @@ -10,53 +10,64 @@ export interface ApiCallStatusPayload { } export interface ApiCallsListRoot { - Login: any; - IsAuthorized: any; + Login: ApiCallStatusPayload; + IsAuthorized: ApiCallStatusPayload; + FetchRTLConfig?: ApiCallStatusPayload; + UpdateSettings?: ApiCallStatusPayload; + UpdateServiceSettings?: ApiCallStatusPayload; + Update2FASettings?: ApiCallStatusPayload; + fetchConfig?: ApiCallStatusPayload; + VerifyToken?: ApiCallStatusPayload; + ResetPassword?: ApiCallStatusPayload; + UpdateSelNode?: ApiCallStatusPayload; + FetchFile?: ApiCallStatusPayload; } export interface ApiCallsListLND { - FetchInfo: any; - FetchFees: any; - FetchPendingChannels: any; - FetchAllChannels: any; - FetchBalanceBlockchain: any; + FetchInfo: ApiCallStatusPayload; + FetchFees: ApiCallStatusPayload; + FetchPendingChannels: ApiCallStatusPayload; + FetchAllChannels: ApiCallStatusPayload; + FetchBalanceBlockchain: ApiCallStatusPayload; // Non-initial calls - FetchPeers: any; - FetchClosedChannels: any; - FetchInvoices: any; - FetchPayments: any; - GetForwardingHistory: any; - FetchUTXOs: any; - FetchTransactions: any; - FetchNetwork: any; - FetchLightningTransactions: any; + FetchPeers: ApiCallStatusPayload; + FetchClosedChannels: ApiCallStatusPayload; + FetchInvoices: ApiCallStatusPayload; + FetchPayments: ApiCallStatusPayload; + FetchForwardingHistory: ApiCallStatusPayload; + FetchUTXOs: ApiCallStatusPayload; + FetchTransactions: ApiCallStatusPayload; + FetchNetwork: ApiCallStatusPayload; + FetchLightningTransactions: ApiCallStatusPayload; } export interface ApiCallsListCL { - FetchInfo: any; - FetchFees: any; - FetchChannels: any; - FetchBalance: any; - FetchLocalRemoteBalance: any; + FetchInfo: ApiCallStatusPayload; + FetchFees: ApiCallStatusPayload; + FetchChannels: ApiCallStatusPayload; + FetchBalance: ApiCallStatusPayload; + FetchLocalRemoteBalance: ApiCallStatusPayload; // Non-initial calls - FetchInvoices: any; - FetchFeeRatesperkb: any; - FetchFeeRatesperkw: any; - FetchPeers: any; - FetchUTXOs: any; - FetchPayments: any; - GetForwardingHistory: any; - GetFailedForwardingHistory: any; + FetchInvoices: ApiCallStatusPayload; + FetchFeeRatesperkb: ApiCallStatusPayload; + FetchFeeRatesperkw: ApiCallStatusPayload; + FetchPeers: ApiCallStatusPayload; + FetchUTXOs: ApiCallStatusPayload; + FetchPayments: ApiCallStatusPayload; + FetchForwardingHistory: ApiCallStatusPayload; + FetchFailedForwardingHistory: ApiCallStatusPayload; + FetchOffers: ApiCallStatusPayload; + FetchOfferBookmarks: ApiCallStatusPayload; } export interface ApiCallsListECL { - FetchInfo: any; - FetchFees: any; - FetchChannels: any; + FetchInfo: ApiCallStatusPayload; + FetchFees: ApiCallStatusPayload; + FetchChannels: ApiCallStatusPayload; // Non-initial calls - FetchOnchainBalance: any; - FetchPeers: any; - FetchPayments: any; - FetchInvoices: any; - FetchTransactions: any; + FetchOnchainBalance: ApiCallStatusPayload; + FetchPeers: ApiCallStatusPayload; + FetchPayments: ApiCallStatusPayload; + FetchInvoices: ApiCallStatusPayload; + FetchTransactions: ApiCallStatusPayload; } diff --git a/src/app/shared/models/clModels.ts b/src/app/shared/models/clModels.ts index 0b1aeb2a..ea4c59e2 100644 --- a/src/app/shared/models/clModels.ts +++ b/src/app/shared/models/clModels.ts @@ -1,3 +1,5 @@ +import { PaymentTypes } from '../services/consts-enums-functions'; + export enum feeRateStyle { KB = 'KB', KW = 'KW' @@ -9,10 +11,9 @@ export interface ChannelStatus { } export interface ChannelsStatus { - active?: ChannelStatus; - inactive?: ChannelStatus; - pending?: ChannelStatus; - closing?: ChannelStatus; + active: ChannelStatus; + inactive: ChannelStatus; + pending: ChannelStatus; } export interface Address { @@ -74,6 +75,7 @@ export interface Peer { export interface Invoice { label?: string; bolt11?: string; + bolt12?: string; payment_hash?: string; msatoshi?: number; amount_msat?: string; @@ -82,9 +84,29 @@ export interface Invoice { msatoshi_received?: number; amount_received_msat?: string; paid_at?: number; + payment_preimage?: string; description?: string; expires_at?: number; warning_capacity?: string; + local_offer_id?: string; +} + +export interface Offer { + offer_id?: string; + active?: boolean; + single_use?: boolean; + bolt12?: string; + bolt12_unsigned?: string; + used?: boolean; +} + +export interface OfferBookmark { + lastUpdatedAt?: string; + bolt12?: string; + amountmSat?: number; + title?: string; + vendor?: string; + description?: string; } export interface ListInvoices { @@ -133,6 +155,7 @@ export interface Payment { amount_msat?: string; amount_sent_msat?: string; bolt11?: string; + bolt12?: string; created_at?: number; destination?: string; id?: number; @@ -141,6 +164,8 @@ export interface Payment { payment_hash?: string; payment_preimage?: string; status?: string; + memo?: string; + partid?: string; is_group?: boolean; is_expanded?: boolean; total_parts?: number; @@ -148,6 +173,7 @@ export interface Payment { } export interface PayRequest { + type?: string; currency?: string; created_at?: number; expiry?: number; @@ -160,6 +186,75 @@ export interface PayRequest { signature?: string; } +interface HopObj { + node_id: string; + enctlv: string; +} +interface Paths { + blinding: string; + path: HopObj[]; +} +interface PayWindow { + seconds_before: number; + seconds_after: number; + proportional_amount?: boolean; +} +interface Recurrence { + time_unit: number; + period: number; + time_unit_name?: string; + basetime?: number; + start_any_period?: number; + limit?: number; + paywindow?: PayWindow; +} + +export interface OfferRequest { + type?: string; + valid?: boolean; + offer_id?: string; + node_id?: string; + description?: string; + signature?: string; + chains?: string[]; + issuer?: string; + currency?: string; + minor_unit?: number; + amount?: number; + amount_msat?: string; + send_invoice?: boolean; + refund_for?: string; + vendor?: string; + features?: string; + absolute_expiry?: string; + paths?: Paths[]; + quantity_min?: number; + quantity_max?: number; + recurrence?: Recurrence; +} + +interface Changes { + description_appended?: string; + description?: string; + vendor_removed?: string; + vendor?: string; + msat?: string; +} + +interface NextPeriod { + counter: string; + starttime: string; + endtime: string; + paywindow_start: string; + paywindow_end: string; +} + +export interface OfferInvoice { + invoice: string; + changes: Changes; + next_period?: NextPeriod; +} + export interface ForwardingEvent { payment_hash?: string; in_channel?: string; @@ -278,3 +373,73 @@ export interface RoutingPeer { total_amount?: number; total_fee?: number; } + +export interface SaveChannel { + peerId: string; + satoshis: string; + announce?: boolean; + feeRate?: string; + minconf?: number; + utxos?: string[]; +} + +export interface GetNewAddress { + addressId?: string; + addressCode?: string; + addressTp?: string; + addressDetails?: string; +} + +export interface DetachPeer { + id: string; + force: boolean; +} + +export interface UpdateChannel { + channelId: string; + baseFeeMsat: number; + feeRate: number; +} + +export interface CloseChannel { + id: string; + channelId: string; + force: boolean; +} + +export interface DecodePayment { + routeParam: string; + fromDialog: boolean; +} + +export interface SendPayment { + uiMessage: string; + fromDialog: boolean; + paymentType: PaymentTypes; + title?: string; + vendor?: string; + invoice?: string; + description?: string; + saveToDB?: boolean; + bolt12?: string; + amount?: number; + zeroAmtOffer?: boolean; + pubkey?: string; +} + +export interface GetQueryRoutes { + destPubkey: string; + amount: number; +} + +export interface ChannelLookup { + uiMessage: string; + shortChannelID: string; + showError: boolean; +} + +export interface FetchInvoices { + num_max_invoices?: number; + index_offset?: number; + reversed?: boolean; +} diff --git a/src/app/shared/models/eclModels.ts b/src/app/shared/models/eclModels.ts index 6821c81d..5197b93c 100644 --- a/src/app/shared/models/eclModels.ts +++ b/src/app/shared/models/eclModels.ts @@ -67,6 +67,8 @@ export interface PaymentRelayed { toShortChannelId?: string; toChannelAlias?: string; timestamp?: number; + incoming?: Array<{ amount: number, channelId?: string, channelAlias?: string, shortChannelId?: string }>; + outgoing?: Array<{ amount: number, channelId?: string, channelAlias?: string, shortChannelId?: string }>; } export interface Payments { @@ -92,6 +94,14 @@ export interface PayRequest { amount?: number; } +export interface ChannelsRearranged { + activeChannels?: Channel[]; + pendingChannels?: Channel[]; + inactiveChannels?: Channel[]; + lightningBalances?: LightningBalance; + channelStatus?: ChannelsStatus; +} + export interface Channel { alias?: string; nodeId?: string; @@ -110,14 +120,6 @@ export interface Channel { balancedness?: number; } -export interface ChannelStats { - channelId?: string; - avgPaymentAmount?: number; - paymentCount?: number; - relayFee?: number; - networkFee?: number; -} - export interface OnChainBalance { total?: number; confirmed?: number; @@ -209,3 +211,49 @@ export interface RoutingPeers { totalAmount?: number; totalFee?: number; } + +export interface ChannelStateUpdate { + channelId?: string; + currentState?: string; + previousState?: string; + remoteNodeId?: string; + type?: string; +} + +export interface SaveChannel { + nodeId: string; + amount: number; + private: boolean; + feeRate?: number; +} + +export interface UpdateChannel { + baseFeeMsat: number; + feeRate: number; + channelId?: string; + channelIds?: string; + nodeId?: string; + nodeIds?: string; +} + +export interface CloseChannel { + channelId: string; + force: boolean; +} + +export interface GetQueryRoutes { + nodeId: string; + amount: number; +} + +export interface SendPayment { + fromDialog: boolean; + invoice: string; + amountMsat?: number; +} + +export interface CreateInvoice { + description: string; + expireIn: number; + amountMsat?: number; +} diff --git a/src/app/shared/models/lndModels.ts b/src/app/shared/models/lndModels.ts index 4039054f..97bff04f 100644 --- a/src/app/shared/models/lndModels.ts +++ b/src/app/shared/models/lndModels.ts @@ -1,5 +1,5 @@ export interface ChannelStatus { - channels?: number; + num_channels?: number; capacity?: number; } @@ -16,12 +16,16 @@ export interface AddressType { addressDetails?: string; } -export interface Balance { - balance?: number; - pending_open_balance?: number; +export interface LightningBalance { + local?: number; + remote?: number; +} + +export interface BlockchainBalance { total_balance?: number; confirmed_balance?: number; unconfirmed_balance?: number; + account_balance?: any; } export interface ChannelFeeReport { @@ -38,6 +42,17 @@ export interface ChannelHTLC { expiration_height?: number; } +export interface ChannelsSummary { + active?: { + num_channels?: number; + capacity?: number; + }; + inactive?: { + num_channels?: number; + capacity?: number; + }; +} + export interface Channel { active?: boolean; remote_pubkey?: string; @@ -147,6 +162,7 @@ export interface LightningNode { alias?: string; addresses?: NodeAddress[]; color?: string; + features?: any; } export interface RoutingPolicy { @@ -248,6 +264,7 @@ export interface GetInfo { export interface GraphNode { node?: LightningNode; + channels: any[]; num_channels?: number; total_capacity?: string; } @@ -340,18 +357,11 @@ export interface Invoice { export interface ListInvoices { invoices?: Invoice[]; + total_invoices?: number; last_index_offset?: string; first_index_offset?: string; } -export interface LightningNode { - last_update?: number; - pub_key?: string; - alias?: string; - addresses?: NodeAddress[]; - color?: string; -} - export interface NetworkInfo { num_nodes?: number; max_channel_size?: string; @@ -364,11 +374,6 @@ export interface NetworkInfo { min_channel_size?: string; } -export interface NodeAddress { - network?: string; - address?: string; -} - export interface Payment { creation_date?: number; payment_hash?: string; @@ -487,7 +492,7 @@ export interface PendingChannelsData { limbo_balance: number; } -export interface PendingChannelsGroup { +export interface PendingChannelsSummary { open?: PendingChannelsData; closing?: PendingChannelsData; force_closing?: PendingChannelsData; @@ -495,3 +500,109 @@ export interface PendingChannelsGroup { total_channels?: number; total_limbo_balance?: number; } + +export interface SavePeer { + pubkey: string; + host: string; + perm: boolean; +} + +export interface SaveInvoice { + uiMessage: string; + memo: string; + invoiceValue: number; + private: boolean; + expiry: number; + pageSize: number; + openModal: boolean; +} + +export interface SaveChannel { + selectedPeerPubkey: string; + fundingAmount: number; + private: boolean; + transType: string; + transTypeValue: string; + spendUnconfirmed: boolean; +} + +export interface CloseChannel { + channelPoint: string; + forcibly: boolean; + targetConf?: number; + satPerByte?: number; +} + +export interface FetchInvoices { + num_max_invoices?: number; + index_offset?: number; + reversed?: boolean; +} + +export interface FetchPayments { + max_payments?: number; + index_offset?: number; + reversed?: boolean; +} + +export interface SendPayment { + uiMessage: string; + fromDialog: boolean; + paymentReq: string; + paymentAmount?: number; + outgoingChannel?: Channel; + feeLimitType?: string; + feeLimit?: number; + allowSelfPayment?: boolean; + lastHopPubkey?: string; +} + +export interface GetNewAddress { + addressId?: string; + addressCode?: string; + addressTp?: string; + addressDetails?: string; +} + +export interface GetQueryRoutes { + destPubkey: string; + amount: number; + outgoingChanId?: string; +} + +export interface InitWallet { + pwd: string; + cipher?: Array; + passphrase?: string; +} + +export interface ChannelLookup { + uiMessage: string; + channelID: string; +} + +export interface SetRestoreChannelsList { + all_restore_exists: boolean; + files: []; +} + +export interface NewlyAddedPeer { + peer: Peer; + balance: number; +} + +export interface SetPendingChannels { + pendingChannels: PendingChannels; + pendingChannelsSummary: PendingChannelsSummary; +} + +export interface BackupChannels { + uiMessage: string; + channelPoint: string; + showMessage: string; +} + +export interface SetAllLightningTransactions { + listPaymentsAll: ListPayments; + listInvoicesAll: ListInvoices; +} diff --git a/src/app/shared/models/navMenu.ts b/src/app/shared/models/navMenu.ts index 46052a38..30506565 100644 --- a/src/app/shared/models/navMenu.ts +++ b/src/app/shared/models/navMenu.ts @@ -26,50 +26,58 @@ export const MENU_DATA: MenuRootNode = { LNDChildren: [ { id: 1, parentId: 0, name: 'Dashboard', iconType: 'FA', icon: faTachometerAlt, link: '/lnd/home', userPersona: UserPersonaEnum.ALL }, { id: 2, parentId: 0, name: 'On-chain', iconType: 'FA', icon: faLink, link: '/lnd/onchain', userPersona: UserPersonaEnum.ALL }, - { id: 3, parentId: 0, name: 'Lightning', iconType: 'FA', icon: faBolt, link: '/lnd/connections', userPersona: UserPersonaEnum.ALL, children: [ - { id: 31, parentId: 3, name: 'Peers/Channels', iconType: 'FA', icon: faUsers, link: '/lnd/connections', userPersona: UserPersonaEnum.ALL }, - { id: 32, parentId: 3, name: 'Transactions', iconType: 'FA', icon: faExchangeAlt, link: '/lnd/transactions', userPersona: UserPersonaEnum.ALL }, - { id: 33, parentId: 3, name: 'Routing', iconType: 'FA', icon: faMapSigns, link: '/lnd/routing', userPersona: UserPersonaEnum.ALL }, - { id: 34, parentId: 3, name: 'Reports', iconType: 'FA', icon: faChartBar, link: '/lnd/reports', userPersona: UserPersonaEnum.ALL }, - { id: 35, parentId: 3, name: 'Graph Lookup', iconType: 'FA', icon: faSearch, link: '/lnd/lookups', userPersona: UserPersonaEnum.ALL }, - { id: 36, parentId: 3, name: 'Sign/Verify', iconType: 'FA', icon: faUserCheck, link: '/lnd/messages', userPersona: UserPersonaEnum.ALL }, - { id: 37, parentId: 3, name: 'Backup', iconType: 'FA', icon: faDownload, link: '/lnd/channelbackup', userPersona: UserPersonaEnum.ALL }, - { id: 38, parentId: 3, name: 'Network', iconType: 'FA', icon: faProjectDiagram, link: '/lnd/network', userPersona: UserPersonaEnum.OPERATOR }, - { id: 39, parentId: 3, name: 'Node/Network', iconType: 'FA', icon: faServer, link: '/lnd/network', userPersona: UserPersonaEnum.MERCHANT } - ] }, - { id: 4, parentId: 0, name: 'Services', iconType: 'FA', icon: faLayerGroup, link: '/services/loop', userPersona: UserPersonaEnum.ALL, children: [ - { id: 41, parentId: 4, name: 'Loop', iconType: 'FA', icon: faInfinity, link: '/services/loop', userPersona: UserPersonaEnum.ALL }, - { id: 42, parentId: 4, name: 'Boltz', iconType: 'SVG', icon: 'boltzIconBlock', link: '/services/boltz', userPersona: UserPersonaEnum.ALL } - ] }, + { + id: 3, parentId: 0, name: 'Lightning', iconType: 'FA', icon: faBolt, link: '/lnd/connections', userPersona: UserPersonaEnum.ALL, children: [ + { id: 31, parentId: 3, name: 'Peers/Channels', iconType: 'FA', icon: faUsers, link: '/lnd/connections', userPersona: UserPersonaEnum.ALL }, + { id: 32, parentId: 3, name: 'Transactions', iconType: 'FA', icon: faExchangeAlt, link: '/lnd/transactions', userPersona: UserPersonaEnum.ALL }, + { id: 33, parentId: 3, name: 'Routing', iconType: 'FA', icon: faMapSigns, link: '/lnd/routing', userPersona: UserPersonaEnum.ALL }, + { id: 34, parentId: 3, name: 'Reports', iconType: 'FA', icon: faChartBar, link: '/lnd/reports', userPersona: UserPersonaEnum.ALL }, + { id: 35, parentId: 3, name: 'Graph Lookup', iconType: 'FA', icon: faSearch, link: '/lnd/graph', userPersona: UserPersonaEnum.ALL }, + { id: 36, parentId: 3, name: 'Sign/Verify', iconType: 'FA', icon: faUserCheck, link: '/lnd/messages', userPersona: UserPersonaEnum.ALL }, + { id: 37, parentId: 3, name: 'Backup', iconType: 'FA', icon: faDownload, link: '/lnd/channelbackup', userPersona: UserPersonaEnum.ALL }, + { id: 38, parentId: 3, name: 'Network', iconType: 'FA', icon: faProjectDiagram, link: '/lnd/network', userPersona: UserPersonaEnum.OPERATOR }, + { id: 39, parentId: 3, name: 'Node/Network', iconType: 'FA', icon: faServer, link: '/lnd/network', userPersona: UserPersonaEnum.MERCHANT } + ] + }, + { + id: 4, parentId: 0, name: 'Services', iconType: 'FA', icon: faLayerGroup, link: '/services/loop', userPersona: UserPersonaEnum.ALL, children: [ + { id: 41, parentId: 4, name: 'Loop', iconType: 'FA', icon: faInfinity, link: '/services/loop', userPersona: UserPersonaEnum.ALL }, + { id: 42, parentId: 4, name: 'Boltz', iconType: 'SVG', icon: 'boltzIconBlock', link: '/services/boltz', userPersona: UserPersonaEnum.ALL } + ] + }, { id: 5, parentId: 0, name: 'Node Config', iconType: 'FA', icon: faTools, link: '/config', userPersona: UserPersonaEnum.ALL }, { id: 6, parentId: 0, name: 'Help', iconType: 'FA', icon: faQuestion, link: '/help', userPersona: UserPersonaEnum.ALL } ], CLChildren: [ { id: 1, parentId: 0, name: 'Dashboard', iconType: 'FA', icon: faTachometerAlt, link: '/cl/home', userPersona: UserPersonaEnum.ALL }, { id: 2, parentId: 0, name: 'On-chain', iconType: 'FA', icon: faLink, link: '/cl/onchain', userPersona: UserPersonaEnum.ALL }, - { id: 3, parentId: 0, name: 'Lightning', iconType: 'FA', icon: faBolt, link: '/cl/connections', userPersona: UserPersonaEnum.ALL, children: [ - { id: 31, parentId: 3, name: 'Peers/Channels', iconType: 'FA', icon: faUsers, link: '/cl/connections', userPersona: UserPersonaEnum.ALL }, - { id: 32, parentId: 3, name: 'Transactions', iconType: 'FA', icon: faExchangeAlt, link: '/cl/transactions', userPersona: UserPersonaEnum.ALL }, - { id: 33, parentId: 3, name: 'Routing', iconType: 'FA', icon: faMapSigns, link: '/cl/routing', userPersona: UserPersonaEnum.ALL }, - { id: 34, parentId: 3, name: 'Reports', iconType: 'FA', icon: faChartBar, link: '/cl/reports', userPersona: UserPersonaEnum.ALL }, - { id: 35, parentId: 3, name: 'Graph Lookup', iconType: 'FA', icon: faSearch, link: '/cl/lookups', userPersona: UserPersonaEnum.ALL }, - { id: 36, parentId: 3, name: 'Sign/Verify', iconType: 'FA', icon: faUserCheck, link: '/cl/messages', userPersona: UserPersonaEnum.ALL }, - { id: 37, parentId: 3, name: 'Fee Rates', iconType: 'FA', icon: faPercentage, link: '/cl/rates', userPersona: UserPersonaEnum.OPERATOR }, - { id: 38, parentId: 3, name: 'Node/Fee Rates', iconType: 'FA', icon: faServer, link: '/cl/rates', userPersona: UserPersonaEnum.MERCHANT } - ] }, + { + id: 3, parentId: 0, name: 'Lightning', iconType: 'FA', icon: faBolt, link: '/cl/connections', userPersona: UserPersonaEnum.ALL, children: [ + { id: 31, parentId: 3, name: 'Peers/Channels', iconType: 'FA', icon: faUsers, link: '/cl/connections', userPersona: UserPersonaEnum.ALL }, + { id: 32, parentId: 3, name: 'Transactions', iconType: 'FA', icon: faExchangeAlt, link: '/cl/transactions', userPersona: UserPersonaEnum.ALL }, + { id: 33, parentId: 3, name: 'Routing', iconType: 'FA', icon: faMapSigns, link: '/cl/routing', userPersona: UserPersonaEnum.ALL }, + { id: 34, parentId: 3, name: 'Reports', iconType: 'FA', icon: faChartBar, link: '/cl/reports', userPersona: UserPersonaEnum.ALL }, + { id: 35, parentId: 3, name: 'Graph Lookup', iconType: 'FA', icon: faSearch, link: '/cl/graph', userPersona: UserPersonaEnum.ALL }, + { id: 36, parentId: 3, name: 'Sign/Verify', iconType: 'FA', icon: faUserCheck, link: '/cl/messages', userPersona: UserPersonaEnum.ALL }, + { id: 37, parentId: 3, name: 'Fee Rates', iconType: 'FA', icon: faPercentage, link: '/cl/rates', userPersona: UserPersonaEnum.OPERATOR }, + { id: 38, parentId: 3, name: 'Node/Fee Rates', iconType: 'FA', icon: faServer, link: '/cl/rates', userPersona: UserPersonaEnum.MERCHANT } + ] + }, { id: 4, parentId: 0, name: 'Node Config', iconType: 'FA', icon: faTools, link: '/config', userPersona: UserPersonaEnum.ALL }, { id: 5, parentId: 0, name: 'Help', iconType: 'FA', icon: faQuestion, link: '/help', userPersona: UserPersonaEnum.ALL } ], ECLChildren: [ { id: 1, parentId: 0, name: 'Dashboard', iconType: 'FA', icon: faTachometerAlt, link: '/ecl/home', userPersona: UserPersonaEnum.ALL }, { id: 2, parentId: 0, name: 'On-chain', iconType: 'FA', icon: faLink, link: '/ecl/onchain', userPersona: UserPersonaEnum.ALL }, - { id: 3, parentId: 0, name: 'Lightning', iconType: 'FA', icon: faBolt, link: '/ecl/connections', userPersona: UserPersonaEnum.ALL, children: [ - { id: 31, parentId: 3, name: 'Peers/Channels', iconType: 'FA', icon: faUsers, link: '/ecl/connections', userPersona: UserPersonaEnum.ALL }, - { id: 32, parentId: 3, name: 'Transactions', iconType: 'FA', icon: faExchangeAlt, link: '/ecl/transactions', userPersona: UserPersonaEnum.ALL }, - { id: 33, parentId: 3, name: 'Routing', iconType: 'FA', icon: faMapSigns, link: '/ecl/routing', userPersona: UserPersonaEnum.ALL }, - { id: 34, parentId: 3, name: 'Reports', iconType: 'FA', icon: faChartBar, link: '/ecl/reports', userPersona: UserPersonaEnum.ALL }, - { id: 35, parentId: 3, name: 'Graph Lookup', iconType: 'FA', icon: faSearch, link: '/ecl/lookups', userPersona: UserPersonaEnum.ALL } - ] }, + { + id: 3, parentId: 0, name: 'Lightning', iconType: 'FA', icon: faBolt, link: '/ecl/connections', userPersona: UserPersonaEnum.ALL, children: [ + { id: 31, parentId: 3, name: 'Peers/Channels', iconType: 'FA', icon: faUsers, link: '/ecl/connections', userPersona: UserPersonaEnum.ALL }, + { id: 32, parentId: 3, name: 'Transactions', iconType: 'FA', icon: faExchangeAlt, link: '/ecl/transactions', userPersona: UserPersonaEnum.ALL }, + { id: 33, parentId: 3, name: 'Routing', iconType: 'FA', icon: faMapSigns, link: '/ecl/routing', userPersona: UserPersonaEnum.ALL }, + { id: 34, parentId: 3, name: 'Reports', iconType: 'FA', icon: faChartBar, link: '/ecl/reports', userPersona: UserPersonaEnum.ALL }, + { id: 35, parentId: 3, name: 'Graph Lookup', iconType: 'FA', icon: faSearch, link: '/ecl/graph', userPersona: UserPersonaEnum.ALL } + ] + }, { id: 4, parentId: 0, name: 'Node Config', iconType: 'FA', icon: faTools, link: '/config', userPersona: UserPersonaEnum.ALL }, { id: 5, parentId: 0, name: 'Help', iconType: 'FA', icon: faQuestion, link: '/help', userPersona: UserPersonaEnum.ALL } ] diff --git a/src/app/shared/models/rtlModels.ts b/src/app/shared/models/rtlModels.ts new file mode 100644 index 00000000..02db9e1d --- /dev/null +++ b/src/app/shared/models/rtlModels.ts @@ -0,0 +1,48 @@ +import { ServicesEnum } from '../services/consts-enums-functions'; +import { ConfigSettingsNode, Settings } from './RTLconfig'; + +export interface OpenSnackBar { + message: string; + duration?: number; + type?: string; +} + +export interface SaveSettings { + uiMessage: string; + settings?: Settings; + defaultNodeIndex?: number; +} + +export interface SetSelectedNode { + uiMessage: string; + prevLnNodeIndex: number; + currentLnNode: ConfigSettingsNode; + isInitialSetup: boolean; +} + +export interface UpdateServiceSetting { + uiMessage: string; + service: ServicesEnum; + settings: any; +} + +export interface ResetPassword { + currPassword: string; + newPassword: string; +} + +export interface Login { + password: string; + defaultPassword: boolean; + twoFAToken?: string; +} + +export interface VerifyTwoFA { + token: string; + authResponse: any; +} + +export interface FetchFile { + channelPoint: string; + path?: string; +} diff --git a/src/app/shared/pipes/app.pipe.ts b/src/app/shared/pipes/app.pipe.ts index ec36436b..c8e1b48a 100644 --- a/src/app/shared/pipes/app.pipe.ts +++ b/src/app/shared/pipes/app.pipe.ts @@ -10,3 +10,14 @@ export class RemoveLeadingZerosPipe implements PipeTransform { } } + +@Pipe({ + name: 'camelcase' +}) +export class CamelCasePipe implements PipeTransform { + + transform(value: string, args?: any): string { + return value.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => (word.toUpperCase())).replace(/\s+/g, '').replace(/-/g, ' '); + } + +} diff --git a/src/app/shared/services/auth.interceptor.ts b/src/app/shared/services/auth.interceptor.ts index 2f631cef..5e9b6d4f 100644 --- a/src/app/shared/services/auth.interceptor.ts +++ b/src/app/shared/services/auth.interceptor.ts @@ -7,12 +7,13 @@ import { SessionService } from './session.service'; @Injectable() export class AuthInterceptor implements HttpInterceptor { - constructor(private sessionService: SessionService) {} + constructor(private sessionService: SessionService) { } intercept(req: HttpRequest, next: HttpHandler): Observable> { if (this.sessionService.getItem('token')) { const cloned = req.clone({ - headers: req.headers.set('Authorization', 'Bearer ' + this.sessionService.getItem('token')) + headers: req.headers.set('Authorization', 'Bearer ' + this.sessionService.getItem('token')), + withCredentials: true }); return next.handle(cloned); } else { diff --git a/src/app/shared/services/boltz.service.ts b/src/app/shared/services/boltz.service.ts index 9aa8c477..26760bfa 100644 --- a/src/app/shared/services/boltz.service.ts +++ b/src/app/shared/services/boltz.service.ts @@ -10,9 +10,9 @@ import { CommonService } from './common.service'; import { LoggerService } from './logger.service'; import { AlertTypeEnum, UI_MESSAGES } from './consts-enums-functions'; import { ListSwaps } from '../models/boltzModels'; +import { closeSpinner, logout, openAlert, openSpinner } from '../../store/rtl.actions'; -import * as RTLActions from '../../store/rtl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; @Injectable() export class BoltzService implements OnDestroy { @@ -22,20 +22,20 @@ export class BoltzService implements OnDestroy { public swapsChanged = new BehaviorSubject({}); private unSubs: Array> = [new Subject(), new Subject(), new Subject()]; - constructor(private httpClient: HttpClient, private logger: LoggerService, private store: Store, private commonService: CommonService) { } + constructor(private httpClient: HttpClient, private logger: LoggerService, private store: Store, private commonService: CommonService) { } getSwapsList() { return this.swaps; } listSwaps() { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_BOLTZ_SWAPS)); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_BOLTZ_SWAPS })); this.swapUrl = API_URL + environment.BOLTZ_API + '/listSwaps'; this.httpClient.get(this.swapUrl). pipe(takeUntil(this.unSubs[0])). subscribe({ next: (swapResponse: ListSwaps) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_BOLTZ_SWAPS)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_BOLTZ_SWAPS })); this.swaps = swapResponse; this.swapsChanged.next(this.swaps); }, error: (err) => this.handleErrorWithAlert(UI_MESSAGES.GET_BOLTZ_SWAPS, this.swapUrl, err) @@ -48,12 +48,12 @@ export class BoltzService implements OnDestroy { } serviceInfo() { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_SERVICE_INFO)); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_SERVICE_INFO })); this.swapUrl = API_URL + environment.BOLTZ_API + '/serviceInfo'; return this.httpClient.get(this.swapUrl).pipe( takeUntil(this.unSubs[1]), map((res) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_SERVICE_INFO)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_SERVICE_INFO })); return res; }), catchError((err) => this.handleErrorWithAlert(UI_MESSAGES.GET_SERVICE_INFO, this.swapUrl, err)) @@ -75,19 +75,21 @@ export class BoltzService implements OnDestroy { handleErrorWithoutAlert(actionName: string, uiMessage: string, err: { status: number, error: any }) { let errMsg = ''; this.logger.error('ERROR IN: ' + actionName + '\n' + JSON.stringify(err)); - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); if (err.status === 401) { errMsg = 'Unauthorized User.'; this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.Logout()); + this.store.dispatch(logout()); } else if (err.status === 503) { errMsg = 'Unable to Connect to Boltz Server.'; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: 'ERROR', - alertTitle: 'Boltz Not Connected', - message: { code: err.status, message: 'Unable to Connect to Boltz Server', URL: actionName }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: 'ERROR', + alertTitle: 'Boltz Not Connected', + message: { code: err.status, message: 'Unable to Connect to Boltz Server', URL: actionName }, + component: ErrorMessageComponent + } } })); } else { @@ -100,33 +102,37 @@ export class BoltzService implements OnDestroy { let errMsg = ''; if (err.status === 401) { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.Logout()); + this.store.dispatch(logout()); } this.logger.error(err); - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); if (err.status === 401) { errMsg = 'Unauthorized User.'; this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.Logout()); + this.store.dispatch(logout()); } else if (err.status === 503) { errMsg = 'Unable to Connect to Boltz Server.'; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: 'ERROR', - alertTitle: 'Boltz Not Connected', - message: { code: err.status, message: 'Unable to Connect to Boltz Server', URL: errURL }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: 'ERROR', + alertTitle: 'Boltz Not Connected', + message: { code: err.status, message: 'Unable to Connect to Boltz Server', URL: errURL }, + component: ErrorMessageComponent + } } })); } else { errMsg = this.commonService.extractErrorMessage(err); const errCode = (err.error && err.error.error && err.error.error.code) ? err.error.error.code : (err.error && err.error.code) ? err.error.code : err.code ? err.code : err.status; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: AlertTypeEnum.ERROR, - alertTitle: 'ERROR', - message: { code: errCode, message: errMsg, URL: errURL }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.ERROR, + alertTitle: 'ERROR', + message: { code: errCode, message: errMsg, URL: errURL }, + component: ErrorMessageComponent + } } })); } diff --git a/src/app/shared/services/common.service.ts b/src/app/shared/services/common.service.ts index 385feef6..ee917e22 100644 --- a/src/app/shared/services/common.service.ts +++ b/src/app/shared/services/common.service.ts @@ -1,20 +1,21 @@ -import { Injectable } from '@angular/core'; -import { of, Observable, throwError } from 'rxjs'; -import { take, map, catchError } from 'rxjs/operators'; +import { Injectable, OnDestroy } from '@angular/core'; +import { of, Observable, throwError, BehaviorSubject } from 'rxjs'; +import { takeUntil, take, map, catchError } from 'rxjs/operators'; import { LoggerService } from './logger.service'; import { DataService } from './data.service'; import { CurrencyUnitEnum, TimeUnitEnum, ScreenSizeEnum, APICallStatusEnum } from './consts-enums-functions'; @Injectable() -export class CommonService { +export class CommonService implements OnDestroy { currencyUnits = []; CurrencyUnitEnum = CurrencyUnitEnum; conversionData = { data: null, last_fetched: null }; private ratesAPIStatus = APICallStatusEnum.UN_INITIATED; private screenSize = ScreenSizeEnum.MD; - private containerSize = { width: 1200, height: 800 }; + private containerSize = { width: 0, height: 0 }; + public containerSizeUpdated: BehaviorSubject<{ width: number, height: number }> = new BehaviorSubject(this.containerSize); constructor(public dataService: DataService, private logger: LoggerService) { } @@ -32,6 +33,7 @@ export class CommonService { setContainerSize(width: number, height) { this.containerSize = { width: width, height: height }; + this.containerSizeUpdated.next(this.containerSize); } sortByKey(array: any[], key: string, keyDataType: string, direction = 'asc') { @@ -67,7 +69,7 @@ export class CommonService { } camelCase(str) { - return str.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => (index === 0 ? word.toLowerCase() : word.toUpperCase())).replace(/\s+/g, ''); + return str.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => (word.toUpperCase())).replace(/\s+/g, '').replace(/-/g, ' '); } titleCase(str) { @@ -286,13 +288,14 @@ export class CommonService { } isVersionCompatible(currentVersion, checkVersion) { - const versionsArr = currentVersion ? currentVersion.trim().replace('v', ''). - split('-')[0]. - split('.') : []; - const checkVersionsArr = checkVersion.split('.'); - return (+versionsArr[0] > +checkVersionsArr[0]) || - (+versionsArr[0] === +checkVersionsArr[0] && +versionsArr[1] > +checkVersionsArr[1]) || - (+versionsArr[0] === +checkVersionsArr[0] && +versionsArr[1] === +checkVersionsArr[1] && +versionsArr[2] >= +checkVersionsArr[2]); + if (currentVersion) { + const versionsArr = currentVersion.trim().replace('v', '').split('-')[0].split('.') || []; + const checkVersionsArr = checkVersion.split('.'); + return (+versionsArr[0] > +checkVersionsArr[0]) || + (+versionsArr[0] === +checkVersionsArr[0] && +versionsArr[1] > +checkVersionsArr[1]) || + (+versionsArr[0] === +checkVersionsArr[0] && +versionsArr[1] === +checkVersionsArr[1] && +versionsArr[2] >= +checkVersionsArr[2]); + } + return false; } extractErrorMessage(err: any, genericErrorMessage: string = 'Unknown Error.') { @@ -329,4 +332,9 @@ export class CommonService { return errNum; } + ngOnDestroy() { + this.containerSizeUpdated.next(null); + this.containerSizeUpdated.complete(); + } + } diff --git a/src/app/shared/services/consts-enums-functions.ts b/src/app/shared/services/consts-enums-functions.ts index de07940a..a65ea11d 100644 --- a/src/app/shared/services/consts-enums-functions.ts +++ b/src/app/shared/services/consts-enums-functions.ts @@ -48,7 +48,6 @@ export const FEE_RATE_TYPES = [ { feeRateId: 'customperkb', feeRateType: 'Custom (Sats/vB)' } ]; - export const NODE_SETTINGS = { themes: [ { id: 'PURPLE', name: 'Diogo' }, @@ -60,6 +59,27 @@ export const NODE_SETTINGS = { modes: [{ id: 'DAY', name: 'Day' }, { id: 'NIGHT', name: 'Night' }] }; +export enum ECLWSEventTypeEnum { + PAYMENT_RECEIVED = 'payment-received', + PAYMENT_RELAYED = 'payment-relayed', + PAYMENT_SENT = 'payment-sent', + PAYMENT_SETTLING_ONCHAIN = 'payment-settling-onchain', + PAYMENT_FAILED = 'payment-failed', + CHANNEL_OPENED = 'channel-opened', + CHANNEL_STATE_CHANGED = 'channel-state-changed', + CHANNEL_CLOSED = 'channel-closed' +} + +export enum CLWSEventTypeEnum { + INVOICE = 'invoice', + BLOCK_HEIGHT = 'block-height', + SEND_PAYMENT = 'send-payment' +} + +export enum LNDWSEventTypeEnum { + INVOICE = 'invoice' +} + export enum UserPersonaEnum { OPERATOR = 'OPERATOR', MERCHANT = 'MERCHANT', @@ -196,7 +216,8 @@ export const SCROLL_RANGES = ['MONTHLY', 'YEARLY']; export enum ServicesEnum { LOOP = 'LOOP', - BOLTZ = 'BOLTZ' + BOLTZ = 'BOLTZ', + OFFERS = 'OFFERS' } export const PASSWORD_BLACKLIST = ['password', 'changeme', 'moneyprintergobrrr']; @@ -226,7 +247,9 @@ export const UI_MESSAGES = { CREATE_INVOICE: 'Creating Invoice...', DELETE_INVOICE: 'Deleting Invoices...', DECODE_PAYMENT: 'Decoding Payment...', + DECODE_OFFER: 'Decoding Offer...', DECODE_PAYMENTS: 'Decoding Payments...', + FETCH_INVOICE: 'Fetching Invoice...', GET_SENT_PAYMENTS: 'Getting Sent Payments...', SEND_PAYMENT: 'Sending Payment...', SEND_KEYSEND: 'Sending Keysend Payment...', @@ -234,7 +257,7 @@ export const UI_MESSAGES = { SEARCHING_CHANNEL: 'Searching Channel...', SEARCHING_INVOICE: 'Searching Invoice...', BACKUP_CHANNEL: 'Backup Channels...', - VERIFY_CHANNEL: 'Verify Channels...', + VERIFY_CHANNEL: 'Verify Channel...', DOWNLOAD_BACKUP_FILE: 'Downloading Backup File...', RESTORE_CHANNEL: 'Restoring Channels...', GET_TERMS_QUOTES: 'Getting Terms and Quotes...', @@ -246,6 +269,7 @@ export const UI_MESSAGES = { WAIT_SYNC_NODE: 'Waiting for Node Sync...', UPDATE_BOLTZ_SETTINGS: 'Updating Boltz Service Settings...', UPDATE_LOOP_SETTINGS: 'Updating Loop Service Settings...', + UPDATE_SETTING: 'Updating Setting...', UPDATE_UI_SETTINGS: 'Updating Settings...', UPDATE_NODE_SETTINGS: 'Updating Node Settings...', UPDATE_SELECTED_NODE: 'Updating Selected Node...', @@ -262,5 +286,296 @@ export const UI_MESSAGES = { GET_FEE_REPORT: 'Getting fee report...', GET_LOOKUP_DETAILS: 'Getting lookup details...', GET_RTL_CONFIG: 'Getting RTL Config...', - VERIFY_TOKEN: 'Verify Token...' + VERIFY_TOKEN: 'Verify Token...', + DISABLE_OFFER: 'Disabling Offer...', + CREATE_OFFER: 'Creating Offer...', + DELETE_OFFER_BOOKMARK: 'Deleting Bookmark...', + LOG_OUT: 'Logging Out...' +}; + +export enum PaymentTypes { + INVOICE = 'INVOICE', + OFFER = 'OFFER', + KEYSEND = 'KEYSEND' +} + +export enum RTLActions { + VOID = 'VOID', + SET_API_URL_ECL = 'SET_API_URL_ECL', + UPDATE_SELECTED_NODE_OPTIONS = 'UPDATE_SELECTED_NODE_OPTIONS', + UPDATE_API_CALL_STATUS_ROOT = 'UPDATE_API_CALL_STATUS_ROOT', + RESET_ROOT_STORE = 'RESET_ROOT_STORE', + CLOSE_ALL_DIALOGS = 'CLOSE_ALL_DIALOGS', + OPEN_SNACK_BAR = 'OPEN_SNACKBAR', + OPEN_SPINNER = 'OPEN_SPINNER', + CLOSE_SPINNER = 'CLOSE_SPINNER', + OPEN_ALERT = 'OPEN_ALERT', + CLOSE_ALERT = 'CLOSE_ALERT', + OPEN_CONFIRMATION = 'OPEN_CONFIRMATION', + CLOSE_CONFIRMATION = 'CLOSE_CONFIRMATION', + SHOW_PUBKEY = 'SHOW_PUBKEY', + FETCH_CONFIG = 'FETCH_CONFIG', + SHOW_CONFIG = 'SHOW_CONFIG', + FETCH_STORE = 'FETCH_STORE', + SET_STORE = 'SET_STORE', + FETCH_RTL_CONFIG = 'FETCH_RTL_CONFIG', + SET_RTL_CONFIG = 'SET_RTL_CONFIG', + SAVE_SSO = 'SAVE_SSO', + SAVE_SETTINGS = 'SAVE_SETTINGS', + TWO_FA_SAVE_SETTINGS = 'TWO_FA_SAVE_SETTINGS', + SET_SELECTED_NODE = 'SET_SELECTED_NODE', + UPDATE_ROOT_NODE_SETTINGS = 'UPDATE_ROOT_NODE_SETTINGS', + UPDATE_SERVICE_SETTINGS = 'UPDATE_SERVICE_SETTINGS', + SET_NODE_DATA = 'SET_NODE_DATA', + IS_AUTHORIZED = 'IS_AUTHORIZED', + IS_AUTHORIZED_RES = 'IS_AUTHORIZED_RES', + LOGIN = 'LOGIN', + VERIFY_TWO_FA = 'VERIFY_TWO_FA', + LOGOUT = 'LOGOUT', + RESET_PASSWORD = 'RESET_PASSWORD', + RESET_PASSWORD_RES = 'RESET_PASSWORD_RES', + FETCH_FILE = 'FETCH_FILE', + SHOW_FILE = 'SHOW_FILE' +}; + +export enum LNDActions { + RESET_LND_STORE = 'RESET_LND_STORE', + UPDATE_API_CALL_STATUS_LND = 'UPDATE_API_CALL_STATUS_LND', + SET_CHILD_NODE_SETTINGS_LND = 'SET_CHILD_NODE_SETTINGS_LND', + FETCH_INFO_LND = 'FETCH_INFO_LND', + SET_INFO_LND = 'SET_INFO_LND', + FETCH_PEERS_LND = 'FETCH_PEERS_LND', + SET_PEERS_LND = 'SET_PEERS_LND', + SAVE_NEW_PEER_LND = 'SAVE_NEW_PEER_LND', + NEWLY_ADDED_PEER_LND = 'NEWLY_ADDED_PEER_LND', + DETACH_PEER_LND = 'DETACH_PEER_LND', + REMOVE_PEER_LND = 'REMOVE_PEER_LND', + SAVE_NEW_INVOICE_LND = 'SAVE_NEW_INVOICE_LND', + NEWLY_SAVED_INVOICE_LND = 'NEWLY_SAVED_INVOICE_LND', + ADD_INVOICE_LND = 'ADD_INVOICE_LND', + FETCH_FEES_LND = 'FETCH_FEES_LND', + SET_FEES_LND = 'SET_FEES_LND', + FETCH_BLOCKCHAIN_BALANCE_LND = 'FETCH_BLOCKCHAIN_BALANCE_LND', + SET_BLOCKCHAIN_BALANCE_LND = 'SET_BLOCKCHAIN_BALANCE_LND', + FETCH_NETWORK_LND = 'FETCH_NETWORK_LND', + SET_NETWORK_LND = 'SET_NETWORK_LND', + FETCH_CHANNELS_LND = 'FETCH_CHANNELS_LND', + FETCH_PENDING_CHANNELS_LND = 'FETCH_PENDING_CHANNELS_LND', + FETCH_CLOSED_CHANNELS_LND = 'FETCH_CLOSED_CHANNELS_LND', + SET_CHANNELS_LND = 'SET_CHANNELS_LND', + SET_PENDING_CHANNELS_LND = 'SET_PENDING_CHANNELS_LND', + SET_CLOSED_CHANNELS_LND = 'SET_CLOSED_CHANNELS_LND', + UPDATE_CHANNEL_LND = 'UPDATE_CHANNEL_LND', + SAVE_NEW_CHANNEL_LND = 'SAVE_NEW_CHANNEL_LND', + CLOSE_CHANNEL_LND = 'CLOSE_CHANNEL_LND', + REMOVE_CHANNEL_LND = 'REMOVE_CHANNEL_LND', + BACKUP_CHANNELS_LND = 'BACKUP_CHANNELS_LND', + VERIFY_CHANNEL_LND = 'VERIFY_CHANNEL_LND', + BACKUP_CHANNELS_RES_LND = 'BACKUP_CHANNELS_RES_LND', + VERIFY_CHANNEL_RES_LND = 'VERIFY_CHANNEL_RES_LND', + RESTORE_CHANNELS_LIST_LND = 'RESTORE_CHANNELS_LIST_LND', + SET_RESTORE_CHANNELS_LIST_LND = 'SET_RESTORE_CHANNELS_LIST_LND', + RESTORE_CHANNELS_LND = 'RESTORE_CHANNELS_LND', + RESTORE_CHANNELS_RES_LND = 'RESTORE_CHANNELS_RES_LND', + FETCH_INVOICES_LND = 'FETCH_INVOICES_LND', + SET_INVOICES_LND = 'SET_INVOICES_LND', + UPDATE_INVOICE_LND = 'UPDATE_INVOICE_LND', + SET_TOTAL_INVOICES_LND = 'SET_TOTAL_INVOICES_LND', + FETCH_TRANSACTIONS_LND = 'FETCH_TRANSACTIONS_LND', + SET_TRANSACTIONS_LND = 'SET_TRANSACTIONS_LND', + FETCH_UTXOS_LND = 'FETCH_UTXOS_LND', + SET_UTXOS_LND = 'SET_UTXOS_LND', + FETCH_PAYMENTS_LND = 'FETCH_PAYMENTS_LND', + SET_PAYMENTS_LND = 'SET_PAYMENTS_LND', + SEND_PAYMENT_LND = 'SEND_PAYMENT_LND', + SEND_PAYMENT_STATUS_LND = 'SEND_PAYMENT_STATUS_LND', + FETCH_GRAPH_NODE_LND = 'FETCH_GRAPH_NODE_LND', + SET_GRAPH_NODE_LND = 'SET_GRAPH_NODE_LND', + GET_NEW_ADDRESS_LND = 'GET_NEW_ADDRESS_LND', + SET_NEW_ADDRESS_LND = 'SET_NEW_ADDRESS_LND', + SET_CHANNEL_TRANSACTION_LND = 'SET_CHANNEL_TRANSACTION_LND', + SET_CHANNEL_TRANSACTION_RES_LND = 'SET_CHANNEL_TRANSACTION_RES_LND', + GEN_SEED_LND = 'GEN_SEED_LND', + GEN_SEED_RESPONSE_LND = 'GEN_SEED_RESPONSE_LND', + INIT_WALLET_LND = 'INIT_WALLET_LND', + INIT_WALLET_RESPONSE_LND = 'INIT_WALLET_RESPONSE_LND', + UNLOCK_WALLET_LND = 'UNLOCK_WALLET_LND', + PEER_LOOKUP_LND = 'PEER_LOOKUP_LND', + CHANNEL_LOOKUP_LND = 'CHANNEL_LOOKUP_LND', + INVOICE_LOOKUP_LND = 'INVOICE_LOOKUP_LND', + SET_LOOKUP_LND = 'SET_LOOKUP_LND', + GET_FORWARDING_HISTORY_LND = 'GET_FORWARDING_HISTORY_LND', + SET_FORWARDING_HISTORY_LND = 'SET_FORWARDING_HISTORY_LND', + GET_QUERY_ROUTES_LND = 'GET_QUERY_ROUTES_LND', + SET_QUERY_ROUTES_LND = 'SET_QUERY_ROUTES_LND', + GET_ALL_LIGHTNING_TRANSATIONS_LND = 'GET_ALL_LIGHTNING_TRANSATIONS_LND', + SET_ALL_LIGHTNING_TRANSATIONS_LND = 'SET_ALL_LIGHTNING_TRANSATIONS_LND' +}; + +export enum CLActions { + RESET_CL_STORE = 'RESET_CL_STORE', + UPDATE_API_CALL_STATUS_CL = 'UPDATE_API_CALL_STATUS_CL', + SET_CHILD_NODE_SETTINGS_CL = 'SET_CHILD_NODE_SETTINGS_CL', + FETCH_INFO_CL = 'FETCH_INFO_CL_CL', + SET_INFO_CL = 'SET_INFO_CL', + FETCH_FEES_CL = 'FETCH_FEES_CL', + SET_FEES_CL = 'SET_FEES_CL', + FETCH_FEE_RATES_CL = 'FETCH_FEE_RATES_CL', + SET_FEE_RATES_CL = 'SET_FEE_RATES_CL', + FETCH_BALANCE_CL = 'FETCH_BALANCE_CL', + SET_BALANCE_CL = 'SET_BALANCE_CL', + FETCH_LOCAL_REMOTE_BALANCE_CL = 'FETCH_LOCAL_REMOTE_BALANCE_CL', + SET_LOCAL_REMOTE_BALANCE_CL = 'SET_LOCAL_REMOTE_BALANCE_CL', + GET_NEW_ADDRESS_CL = 'GET_NEW_ADDRESS_CL', + SET_NEW_ADDRESS_CL = 'SET_NEW_ADDRESS_CL', + FETCH_UTXOS_CL = 'FETCH_UTXOS_CL', + SET_UTXOS_CL = 'SET_UTXOS_CL', + FETCH_PEERS_CL = 'FETCH_PEERS_CL', + SET_PEERS_CL = 'SET_PEERS_CL', + SAVE_NEW_PEER_CL = 'SAVE_NEW_PEER_CL', + NEWLY_ADDED_PEER_CL = 'NEWLY_ADDED_PEER_CL', + ADD_PEER_CL = 'ADD_PEER_CL', + DETACH_PEER_CL = 'DETACH_PEER_CL', + REMOVE_PEER_CL = 'REMOVE_PEER_CL', + FETCH_CHANNELS_CL = 'FETCH_CHANNELS_CL', + SET_CHANNELS_CL = 'SET_CHANNELS_CL', + UPDATE_CHANNEL_CL = 'UPDATE_CHANNEL_CL', + SAVE_NEW_CHANNEL_CL = 'SAVE_NEW_CHANNEL_CL', + CLOSE_CHANNEL_CL = 'CLOSE_CHANNEL_CL', + REMOVE_CHANNEL_CL = 'REMOVE_CHANNEL_CL', + FETCH_PAYMENTS_CL = 'FETCH_PAYMENTS_CL', + SET_PAYMENTS_CL = 'SET_PAYMENTS_CL', + SEND_PAYMENT_CL = 'SEND_PAYMENT_CL', + SEND_PAYMENT_STATUS_CL = 'SEND_PAYMENT_STATUS_CL', + GET_QUERY_ROUTES_CL = 'GET_QUERY_ROUTES_CL', + SET_QUERY_ROUTES_CL = 'SET_QUERY_ROUTES_CL', + PEER_LOOKUP_CL = 'PEER_LOOKUP_CL', + CHANNEL_LOOKUP_CL = 'CHANNEL_LOOKUP_CL', + INVOICE_LOOKUP_CL = 'INVOICE_LOOKUP_CL', + SET_LOOKUP_CL = 'SET_LOOKUP_CL', + GET_FORWARDING_HISTORY_CL = 'GET_FORWARDING_HISTORY_CL', + SET_FORWARDING_HISTORY_CL = 'SET_FORWARDING_HISTORY_CL', + GET_FAILED_FORWARDING_HISTORY_CL = 'GET_FAILED_FORWARDING_HISTORY_CL', + SET_FAILED_FORWARDING_HISTORY_CL = 'SET_FAILED_FORWARDING_HISTORY_CL', + FETCH_INVOICES_CL = 'FETCH_INVOICES_CL', + SET_INVOICES_CL = 'SET_INVOICES_CL', + SAVE_NEW_INVOICE_CL = 'SAVE_NEW_INVOICE_CL', + ADD_INVOICE_CL = 'ADD_INVOICE_CL', + UPDATE_INVOICE_CL = 'UPDATE_INVOICE_CL', + DELETE_EXPIRED_INVOICE_CL = 'DELETE_EXPIRED_INVOICE_CL', + SET_CHANNEL_TRANSACTION_CL = 'SET_CHANNEL_TRANSACTION_CL', + SET_CHANNEL_TRANSACTION_RES_CL = 'SET_CHANNEL_TRANSACTION_RES_CL', + FETCH_OFFER_INVOICE_CL = 'FETCH_OFFER_INVOICE_CL', + SET_OFFER_INVOICE_CL = 'SET_OFFER_INVOICE_CL', + FETCH_OFFERS_CL = 'FETCH_OFFERS_CL', + SET_OFFERS_CL = 'SET_OFFERS_CL', + SAVE_NEW_OFFER_CL = 'SAVE_NEW_OFFER_CL', + ADD_OFFER_CL = 'ADD_OFFER_CL', + DISABLE_OFFER_CL = 'DISABLE_OFFER_CL', + UPDATE_OFFER_CL = 'UPDATE_OFFER_CL', + FETCH_OFFER_BOOKMARKS_CL = 'FETCH_OFFER_BOOKMARKS_CL', + SET_OFFER_BOOKMARKS_CL = 'SET_OFFER_BOOKMARKS_CL', + ADD_UPDATE_OFFER_BOOKMARK_CL = 'ADD_UPDATE_OFFER_BOOKMARK_CL', + DELETE_OFFER_BOOKMARK_CL = 'DELETE_OFFER_BOOKMARK_CL', + REMOVE_OFFER_BOOKMARK_CL = 'REMOVE_OFFER_BOOKMARK_CL' +}; + +export enum ECLActions { + RESET_ECL_STORE = 'RESET_ECL_STORE', + UPDATE_API_CALL_STATUS_ECL = 'UPDATE_API_CALL_STATUS_ECL', + SET_CHILD_NODE_SETTINGS_ECL = 'SET_CHILD_NODE_SETTINGS_ECL', + FETCH_INFO_ECL = 'FETCH_INFO_ECL', + SET_INFO_ECL = 'SET_INFO_ECL', + FETCH_FEES_ECL = 'FETCH_FEES_ECL', + SET_FEES_ECL = 'SET_FEES_ECL', + FETCH_CHANNELS_ECL = 'FETCH_CHANNELS_ECL', + SET_ACTIVE_CHANNELS_ECL = 'SET_ACTIVE_CHANNELS_ECL', + SET_PENDING_CHANNELS_ECL = 'SET_PENDING_CHANNELS_ECL', + SET_INACTIVE_CHANNELS_ECL = 'SET_INACTIVE_CHANNELS_ECL', + FETCH_ONCHAIN_BALANCE_ECL = 'FETCH_ONCHAIN_BALANCE_ECL', + SET_ONCHAIN_BALANCE_ECL = 'SET_ONCHAIN_BALANCE_ECL', + FETCH_LIGHTNING_BALANCE_ECL = 'FETCH_LIGHTNING_BALANCE_ECL', + SET_LIGHTNING_BALANCE_ECL = 'SET_LIGHTNING_BALANCE_ECL', + SET_CHANNELS_STATUS_ECL = 'SET_CHANNELS_STATUS_ECL', + FETCH_PEERS_ECL = 'FETCH_PEERS_ECL', + SET_PEERS_ECL = 'SET_PEERS_ECL', + SAVE_NEW_PEER_ECL = 'SAVE_NEW_PEER_ECL', + NEWLY_ADDED_PEER_ECL = 'NEWLY_ADDED_PEER_ECL', + ADD_PEER_ECL = 'ADD_PEER_ECL', + DETACH_PEER_ECL = 'DETACH_PEER_ECL', + REMOVE_PEER_ECL = 'REMOVE_PEER_ECL', + GET_NEW_ADDRESS_ECL = 'GET_NEW_ADDRESS_ECL', + SET_NEW_ADDRESS_ECL = 'SET_NEW_ADDRESS_ECL', + SAVE_NEW_CHANNEL_ECL = 'SAVE_NEW_CHANNEL_ECL', + UPDATE_CHANNEL_ECL = 'UPDATE_CHANNEL_ECL', + CLOSE_CHANNEL_ECL = 'CLOSE_CHANNEL_ECL', + REMOVE_CHANNEL_ECL = 'REMOVE_CHANNEL_ECL', + FETCH_PAYMENTS_ECL = 'FETCH_PAYMENTS_ECL', + SET_PAYMENTS_ECL = 'SET_PAYMENTS_ECL', + GET_QUERY_ROUTES_ECL = 'GET_QUERY_ROUTES_ECL', + SET_QUERY_ROUTES_ECL = 'SET_QUERY_ROUTES_ECL', + SEND_PAYMENT_ECL = 'SEND_PAYMENT_ECL', + SEND_PAYMENT_STATUS_ECL = 'SEND_PAYMENT_STATUS_ECL', + FETCH_TRANSACTIONS_ECL = 'FETCH_TRANSACTIONS_ECL', + SET_TRANSACTIONS_ECL = 'SET_TRANSACTIONS_ECL', + SEND_ONCHAIN_FUNDS_ECL = 'SEND_ONCHAIN_FUNDS_ECL', + SEND_ONCHAIN_FUNDS_RES_ECL = 'SEND_ONCHAIN_FUNDS_RES_ECL', + FETCH_INVOICES_ECL = 'FETCH_INVOICES_ECL', + SET_INVOICES_ECL = 'SET_INVOICES_ECL', + SET_TOTAL_INVOICES_ECL = 'SET_TOTAL_INVOICES_ECL', + CREATE_INVOICE_ECL = 'CREATE_INVOICE_ECL', + ADD_INVOICE_ECL = 'ADD_INVOICE_ECL', + UPDATE_INVOICE_ECL = 'UPDATE_INVOICE_ECL', + PEER_LOOKUP_ECL = 'PEER_LOOKUP_ECL', + INVOICE_LOOKUP_ECL = 'INVOICE_LOOKUP_ECL', + SET_LOOKUP_ECL = 'SET_LOOKUP_ECL', + UPDATE_CHANNEL_STATE_ECL = 'UPDATE_CHANNEL_STATE_ECL', + UPDATE_RELAYED_PAYMENT_ECL = 'UPDATE_RELAYED_PAYMENT_ECL' +}; + +export const NODE_FEATURES_CLT = [ + { range: { min: 0, max: 1 }, description: 'Requires or supports extra channel re-establish fields' }, + { range: { min: 4, max: 5 }, description: 'Commits to a shutdown script pubkey when opening channel' }, + { range: { min: 6, max: 7 }, description: 'More sophisticated gossip control' }, + { range: { min: 8, max: 9 }, description: 'Requires/supports variable-length routing onion payloads' }, + { range: { min: 10, max: 11 }, description: 'Gossip queries can include additional information' }, + { range: { min: 12, max: 13 }, description: 'Static key for remote output' }, + { range: { min: 14, max: 15 }, description: 'Node supports payment secret field' }, + { range: { min: 16, max: 17 }, description: 'Node can receive basic multi-part payments' }, + { range: { min: 18, max: 19 }, description: 'Node can create large channels' }, + { range: { min: 20, max: 21 }, description: 'Anchor outputs' }, + { range: { min: 22, max: 23 }, description: 'Anchor commitment type with zero fee HTLC transactions' }, + { range: { min: 26, max: 27 }, description: 'Future segwit versions allowed in shutdown' } +]; + +export enum NodeFeaturesECL { + gossip_queries_ex = 'Gossip queries including additional information', + option_anchor_outputs = 'Anchor outputs', + option_data_loss_protect = 'Extra channel re-establish fields', + var_onion_optin = 'Variable-length routing onion payloads', + option_static_remotekey = 'Static key for remote output', + option_support_large_channel = 'Create large channels', + option_anchors_zero_fee_htlc_tx = 'Anchor commitment type with zero fee HTLC transactions', + payment_secret = 'Payment secret field', + option_shutdown_anysegwit = 'Future segwit versions allowed in shutdown', + basic_mpp = 'Basic multi-part payments', + gossip_queries = 'More sophisticated gossip control', + option_upfront_shutdown_script = 'Shutdown script pubkey when opening channel', + anchors_zero_fee_htlc_tx = 'Anchor commitment type with zero fee HTLC transactions', + amp = 'AMP' +}; + +export enum NodeFeaturesLND { + 'data-loss-protect' = 'Extra channel re-establish fields', + 'upfront-shutdown-script' = 'Shutdown script pubkey when opening channel', + 'gossip-queries' = 'More sophisticated gossip control', + 'tlv-onion' = 'Variable-length routing onion payloads', + 'ext-gossip-queries' = 'Gossip queries can include additional information', + 'static-remote-key' = 'Static key for remote output', + 'payment-addr' = 'Payment secret field', + 'multi-path-payments' = 'Basic multi-part payments', + 'wumbo-channels' = 'Wumbo Channels', + 'anchors' = 'Anchor outputs', + 'anchors-zero-fee-htlc-tx' = 'Anchor commitment type with zero fee HTLC transactions', + 'amp' = 'AMP' }; diff --git a/src/app/shared/services/data.service.spec.ts b/src/app/shared/services/data.service.spec.ts index 9a270007..3fa34cf1 100644 --- a/src/app/shared/services/data.service.spec.ts +++ b/src/app/shared/services/data.service.spec.ts @@ -5,12 +5,12 @@ import { DataService } from './data.service'; import { LoggerService } from './logger.service'; import { MatSnackBar } from '@angular/material/snack-bar'; import { mockResponseData } from '../test-helpers/test-data'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; describe('DataService', () => { let httpClientSpy: { get: jasmine.Spy }; let dataService: DataService; - let store: Store; + let store: Store; let logger: LoggerService; let snackbar: MatSnackBar; let titleCasePipe: TitleCasePipe; diff --git a/src/app/shared/services/data.service.ts b/src/app/shared/services/data.service.ts index 175314e9..87d6ee3f 100644 --- a/src/app/shared/services/data.service.ts +++ b/src/app/shared/services/data.service.ts @@ -9,13 +9,13 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { LoggerService } from '../../shared/services/logger.service'; import { environment, API_URL } from '../../../environments/environment'; import { APICallStatusEnum, UI_MESSAGES } from './consts-enums-functions'; -import { SwitchReq } from '../models/lndModels'; +import { Channel, ClosedChannel, PendingChannels, SwitchReq } from '../models/lndModels'; import { ErrorMessageComponent } from '../components/data-modal/error-message/error-message.component'; +import { closeAllDialogs, closeSpinner, logout, openAlert, openSnackBar, openSpinner, updateRootAPICallStatus } from '../../store/rtl.actions'; +import { fetchTransactions, fetchUTXOs } from '../../lnd/store/lnd.actions'; -import * as RTLActions from '../../store/rtl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; -import * as fromLNDReducers from '../../lnd/store/lnd.reducers'; -import * as LNDActions from '../../lnd/store/lnd.actions'; +import { RTLState } from '../../store/rtl.state'; +import { allChannels } from '../../lnd/store/lnd.selector'; @Injectable() export class DataService implements OnDestroy { @@ -24,7 +24,7 @@ export class DataService implements OnDestroy { private childAPIUrl = API_URL; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private httpClient: HttpClient, private store: Store, private logger: LoggerService, private snackBar: MatSnackBar, private titleCasePipe: TitleCasePipe) { } + constructor(private httpClient: HttpClient, private store: Store, private logger: LoggerService, private snackBar: MatSnackBar, private titleCasePipe: TitleCasePipe) { } getChildAPIUrl() { return this.childAPIUrl; @@ -56,22 +56,19 @@ export class DataService implements OnDestroy { } decodePayment(payment: string, fromDialog: boolean) { - let url = this.childAPIUrl + environment.PAYREQUEST_API + '/' + payment; - if (this.getLnImplementation() === 'ECL') { - url = this.childAPIUrl + environment.PAYMENTS_API + '/' + payment; - } - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.DECODE_PAYMENT)); + const url = this.childAPIUrl + environment.PAYMENTS_API + '/decode/' + payment; + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.DECODE_PAYMENT })); return this.httpClient.get(url).pipe( takeUntil(this.unSubs[0]), map((res: any) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.DECODE_PAYMENT)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.DECODE_PAYMENT })); return res; }), catchError((err) => { if (fromDialog) { this.handleErrorWithoutAlert('Decode Payment', UI_MESSAGES.DECODE_PAYMENT, err); } else { - this.handleErrorWithAlert('decodePaymentData', UI_MESSAGES.DECODE_PAYMENT, 'Decode Payment Failed', this.childAPIUrl + environment.PAYREQUEST_API, err); + this.handleErrorWithAlert('decodePaymentData', UI_MESSAGES.DECODE_PAYMENT, 'Decode Payment Failed', this.childAPIUrl + environment.PAYMENTS_API + '/decode/', err); } return throwError(() => new Error(this.extractErrorMessage(err))); }) @@ -79,17 +76,17 @@ export class DataService implements OnDestroy { } decodePayments(payments: string) { - let url = this.childAPIUrl + environment.PAYREQUEST_API; + let url = this.childAPIUrl + environment.PAYMENTS_API; let msg = UI_MESSAGES.DECODE_PAYMENTS; if (this.getLnImplementation() === 'ECL') { url = this.childAPIUrl + environment.PAYMENTS_API + '/getsentinfos'; msg = UI_MESSAGES.GET_SENT_PAYMENTS; } - this.store.dispatch(new RTLActions.OpenSpinner(msg)); + this.store.dispatch(openSpinner({ payload: msg })); return this.httpClient.post(url, { payments: payments }).pipe( takeUntil(this.unSubs[1]), map((res: any) => { - this.store.dispatch(new RTLActions.CloseSpinner(msg)); + this.store.dispatch(closeSpinner({ payload: msg })); return res; }), catchError((err) => { @@ -109,11 +106,11 @@ export class DataService implements OnDestroy { } signMessage(msg: string) { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.SIGN_MESSAGE)); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.SIGN_MESSAGE })); return this.httpClient.post(this.childAPIUrl + environment.MESSAGE_API + '/sign', { message: msg }).pipe( takeUntil(this.unSubs[2]), map((res: any) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.SIGN_MESSAGE)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.SIGN_MESSAGE })); return res; }), catchError((err) => { @@ -124,11 +121,11 @@ export class DataService implements OnDestroy { } verifyMessage(msg: string, sign: string) { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.VERIFY_MESSAGE)); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.VERIFY_MESSAGE })); return this.httpClient.post(this.childAPIUrl + environment.MESSAGE_API + '/verify', { message: msg, signature: sign }).pipe( takeUntil(this.unSubs[3]), map((res: any) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.VERIFY_MESSAGE)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.VERIFY_MESSAGE })); return res; }), catchError((err) => { @@ -146,11 +143,11 @@ export class DataService implements OnDestroy { if (satPerByte) { bumpFeeBody.satPerByte = satPerByte; } - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.BUMP_FEE)); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.BUMP_FEE })); return this.httpClient.post(this.childAPIUrl + environment.WALLET_API + '/bumpfee', bumpFeeBody).pipe( takeUntil(this.unSubs[4]), map((res: any) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.BUMP_FEE)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.BUMP_FEE })); this.snackBar.open('Successfully bumped the fee. Use the block explorer to verify transaction.'); return res; }), @@ -163,11 +160,11 @@ export class DataService implements OnDestroy { labelUTXO(txid: string, label: string, overwrite: boolean = true) { const labelBody = { txid: txid, label: label, overwrite: overwrite }; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.LABEL_UTXO)); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.LABEL_UTXO })); return this.httpClient.post(this.childAPIUrl + environment.WALLET_API + '/label', labelBody).pipe( takeUntil(this.unSubs[5]), map((res) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.LABEL_UTXO)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.LABEL_UTXO })); return res; }), catchError((err) => { this.handleErrorWithoutAlert('Lease UTXO', UI_MESSAGES.LABEL_UTXO, err); @@ -178,14 +175,14 @@ export class DataService implements OnDestroy { leaseUTXO(txid: string, output_index: number) { const leaseBody: any = { txid: txid, outputIndex: output_index }; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.LEASE_UTXO)); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.LEASE_UTXO })); return this.httpClient.post(this.childAPIUrl + environment.WALLET_API + '/lease', leaseBody).pipe( takeUntil(this.unSubs[6])). subscribe({ next: (res: any) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.LEASE_UTXO)); - this.store.dispatch(new LNDActions.FetchTransactions()); - this.store.dispatch(new LNDActions.FetchUTXOs()); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.LEASE_UTXO })); + this.store.dispatch(fetchTransactions()); + this.store.dispatch(fetchUTXOs()); const expirationDate = new Date(res.expiration * 1000); const expiryDateInSeconds = Math.round(expirationDate.getTime()) - (expirationDate.getTimezoneOffset() * 60); this.snackBar.open('The UTXO has been leased till ' + new Date(expiryDateInSeconds).toString(). @@ -202,13 +199,13 @@ export class DataService implements OnDestroy { getForwardingHistory(start: string, end: string) { const queryHeaders: SwitchReq = { end_time: end, start_time: start }; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_FEE_REPORT)); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_FEE_REPORT })); return this.httpClient.post(this.childAPIUrl + environment.SWITCH_API, queryHeaders).pipe( takeUntil(this.unSubs[7]), - withLatestFrom(this.store.select('lnd')), - mergeMap(([res, lndData]: [any, fromLNDReducers.LNDState]) => { + withLatestFrom(this.store.select(allChannels)), + mergeMap(([res, allChannelsSelector]: [any, { channels: Channel[], pendingChannels: PendingChannels, closedChannels: ClosedChannel[] }]) => { if (res.forwarding_events) { - const storedChannels = [...lndData.allChannels, ...lndData.closedChannels]; + const storedChannels = [...allChannelsSelector.channels, ...allChannelsSelector.closedChannels]; res.forwarding_events.forEach((event) => { if (storedChannels && storedChannels.length > 0) { for (let idx = 0; idx < storedChannels.length; idx++) { @@ -241,7 +238,7 @@ export class DataService implements OnDestroy { } else { res = {}; } - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_FEE_REPORT)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_FEE_REPORT })); return of(res); }), catchError((err) => { @@ -265,14 +262,14 @@ export class DataService implements OnDestroy { handleErrorWithoutAlert(actionName: string, uiMessage: string, err: { status: number, error: any }) { this.logger.error('ERROR IN: ' + actionName + '\n' + JSON.stringify(err)); - if (err.status === 401 && actionName !== 'Login') { + if (err.status === 401) { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: this.extractErrorMessage(err) })); + this.store.dispatch(closeSpinner({ payload: uiMessage })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: this.extractErrorMessage(err) } })); } } @@ -280,21 +277,23 @@ export class DataService implements OnDestroy { this.logger.error(err); if (err.status === 401) { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); const errMsg = this.extractErrorMessage(err); - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: 'ERROR', - alertTitle: alertTitle, - message: { code: err.status ? err.status : 'Unknown Error', message: errMsg, URL: errURL }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: 'ERROR', + alertTitle: alertTitle, + message: { code: err.status ? err.status : 'Unknown Error', message: errMsg, URL: errURL }, + component: ErrorMessageComponent + } } })); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg, URL: errURL })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg, URL: errURL } })); } } diff --git a/src/app/shared/services/loop.service.ts b/src/app/shared/services/loop.service.ts index 2a0ee13f..c875eddf 100644 --- a/src/app/shared/services/loop.service.ts +++ b/src/app/shared/services/loop.service.ts @@ -11,34 +11,34 @@ import { CommonService } from './common.service'; import { LoggerService } from '../../shared/services/logger.service'; import { ErrorMessageComponent } from '../../shared/components/data-modal/error-message/error-message.component'; -import * as RTLActions from '../../store/rtl.actions'; -import * as fromRTLReducer from '../../store/rtl.reducers'; +import { RTLState } from '../../store/rtl.state'; +import { closeSpinner, logout, openAlert, openSpinner } from '../../store/rtl.actions'; @Injectable() export class LoopService implements OnDestroy { - private CHILD_API_URL = API_URL + '/lnd'; private loopUrl = ''; private swaps: LoopSwapStatus[] = []; public swapsChanged = new BehaviorSubject([]); private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; - constructor(private httpClient: HttpClient, private logger: LoggerService, private store: Store, private commonService: CommonService) { } + constructor(private httpClient: HttpClient, private logger: LoggerService, private store: Store, private commonService: CommonService) { } getSwapsList() { return this.swaps; } listSwaps() { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_LOOP_SWAPS)); - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/swaps'; - this.httpClient.get(this.loopUrl).pipe(takeUntil(this.unSubs[0])). + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_LOOP_SWAPS })); + this.loopUrl = API_URL + environment.LOOP_API + '/swaps'; + this.httpClient.get(this.loopUrl).pipe(takeUntil(this.unSubs[0])). subscribe({ next: (swapResponse: LoopSwapStatus[]) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_LOOP_SWAPS)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_LOOP_SWAPS })); this.swaps = swapResponse; this.swapsChanged.next(this.swaps); - }, error: (err) => this.handleErrorWithAlert(UI_MESSAGES.GET_LOOP_SWAPS, this.loopUrl, err) + }, + error: (err) => this.handleErrorWithAlert(UI_MESSAGES.GET_LOOP_SWAPS, this.loopUrl, err) }); } @@ -47,12 +47,12 @@ export class LoopService implements OnDestroy { if (chanId !== '') { requestBody['chanId'] = chanId; } - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/out'; + this.loopUrl = API_URL + environment.LOOP_API + '/out'; return this.httpClient.post(this.loopUrl, requestBody).pipe(catchError((err) => this.handleErrorWithoutAlert('Loop Out for Channel: ' + chanId, UI_MESSAGES.NO_SPINNER, err))); } getLoopOutTerms() { - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/out/terms'; + this.loopUrl = API_URL + environment.LOOP_API + '/out/terms'; return this.httpClient.get(this.loopUrl).pipe(catchError((err) => this.handleErrorWithoutAlert('Loop Out Terms', UI_MESSAGES.NO_SPINNER, err))); } @@ -60,12 +60,12 @@ export class LoopService implements OnDestroy { let params = new HttpParams(); params = params.append('targetConf', targetConf.toString()); params = params.append('swapPublicationDeadline', swapPublicationDeadline.toString()); - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/out/quote/' + amount; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_QUOTE)); + this.loopUrl = API_URL + environment.LOOP_API + '/out/quote/' + amount; + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_QUOTE })); return this.httpClient.get(this.loopUrl, { params: params }).pipe( takeUntil(this.unSubs[1]), map((res) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_QUOTE)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_QUOTE })); return res; }), catchError((err) => this.handleErrorWithoutAlert('Loop Out Quote', UI_MESSAGES.GET_QUOTE, err)) @@ -76,12 +76,12 @@ export class LoopService implements OnDestroy { let params = new HttpParams(); params = params.append('targetConf', targetConf.toString()); params = params.append('swapPublicationDeadline', (new Date().getTime() + (30 * 60000)).toString()); - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/out/termsAndQuotes'; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_TERMS_QUOTES)); + this.loopUrl = API_URL + environment.LOOP_API + '/out/termsAndQuotes'; + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_TERMS_QUOTES })); return this.httpClient.get(this.loopUrl, { params: params }).pipe( takeUntil(this.unSubs[2]), map((res) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_TERMS_QUOTES)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_TERMS_QUOTES })); return res; }), catchError((err) => this.handleErrorWithAlert(UI_MESSAGES.GET_TERMS_QUOTES, this.loopUrl, err)) @@ -90,12 +90,12 @@ export class LoopService implements OnDestroy { loopIn(amount: number, swapFee: number, minerFee: number, lastHop: string, externalHtlc: boolean) { const requestBody = { amount: amount, swapFee: swapFee, minerFee: minerFee, lastHop: lastHop, externalHtlc: externalHtlc }; - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/in'; + this.loopUrl = API_URL + environment.LOOP_API + '/in'; return this.httpClient.post(this.loopUrl, requestBody).pipe(catchError((err) => this.handleErrorWithoutAlert('Loop In', UI_MESSAGES.NO_SPINNER, err))); } getLoopInTerms() { - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/in/terms'; + this.loopUrl = API_URL + environment.LOOP_API + '/in/terms'; return this.httpClient.get(this.loopUrl).pipe(catchError((err) => this.handleErrorWithoutAlert('Loop In Terms', UI_MESSAGES.NO_SPINNER, err))); } @@ -103,12 +103,12 @@ export class LoopService implements OnDestroy { let params = new HttpParams(); params = params.append('targetConf', targetConf.toString()); params = params.append('swapPublicationDeadline', swapPublicationDeadline.toString()); - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/in/quote/' + amount; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_QUOTE)); + this.loopUrl = API_URL + environment.LOOP_API + '/in/quote/' + amount; + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_QUOTE })); return this.httpClient.get(this.loopUrl, { params: params }).pipe( takeUntil(this.unSubs[3]), map((res) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_QUOTE)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_QUOTE })); return res; }), catchError((err) => this.handleErrorWithoutAlert('Loop In Qoute', UI_MESSAGES.GET_QUOTE, err)) @@ -119,38 +119,40 @@ export class LoopService implements OnDestroy { let params = new HttpParams(); params = params.append('targetConf', targetConf.toString()); params = params.append('swapPublicationDeadline', (new Date().getTime() + (30 * 60000)).toString()); - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/in/termsAndQuotes'; - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_TERMS_QUOTES)); + this.loopUrl = API_URL + environment.LOOP_API + '/in/termsAndQuotes'; + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_TERMS_QUOTES })); return this.httpClient.get(this.loopUrl, { params: params }).pipe( takeUntil(this.unSubs[4]), map((res) => { - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_TERMS_QUOTES)); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_TERMS_QUOTES })); return res; }), catchError((err) => this.handleErrorWithAlert(UI_MESSAGES.GET_TERMS_QUOTES, this.loopUrl, err)) ); } getSwap(id: string) { - this.loopUrl = this.CHILD_API_URL + environment.LOOP_API + '/swap/' + id; + this.loopUrl = API_URL + environment.LOOP_API + '/swap/' + id; return this.httpClient.get(this.loopUrl).pipe(catchError((err) => this.handleErrorWithoutAlert('Loop Get Swap for ID: ' + id, UI_MESSAGES.NO_SPINNER, err))); } handleErrorWithoutAlert(actionName: string, uiMessage: string, err: { status: number, error: any }) { let errMsg = ''; this.logger.error('ERROR IN: ' + actionName + '\n' + JSON.stringify(err)); - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); if (err.status === 401) { errMsg = 'Unauthorized User.'; this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.Logout()); + this.store.dispatch(logout()); } else if (err.status === 503) { errMsg = 'Unable to Connect to Loop Server.'; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: 'ERROR', - alertTitle: 'Loop Not Connected', - message: { code: err.status, message: 'Unable to Connect to Loop Server', URL: actionName }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: 'ERROR', + alertTitle: 'Loop Not Connected', + message: { code: err.status, message: 'Unable to Connect to Loop Server', URL: actionName }, + component: ErrorMessageComponent + } } })); } else { @@ -162,30 +164,34 @@ export class LoopService implements OnDestroy { handleErrorWithAlert(uiMessage: string, errURL: string, err: any) { let errMsg = ''; this.logger.error(err); - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); if (err.status === 401) { errMsg = 'Unauthorized User.'; this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.Logout()); + this.store.dispatch(logout()); } else if (err.status === 503) { errMsg = 'Unable to Connect to Loop Server.'; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: 'ERROR', - alertTitle: 'Loop Not Connected', - message: { code: err.status, message: 'Unable to Connect to Loop Server', URL: errURL }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: 'ERROR', + alertTitle: 'Loop Not Connected', + message: { code: err.status, message: 'Unable to Connect to Loop Server', URL: errURL }, + component: ErrorMessageComponent + } } })); } else { errMsg = this.commonService.extractErrorMessage(err); const errCode = (err.error && err.error.error && err.error.error.code) ? err.error.error.code : (err.error && err.error.code) ? err.error.code : err.code ? err.code : err.status; - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: AlertTypeEnum.ERROR, - alertTitle: 'ERROR', - message: { code: errCode, message: errMsg, URL: errURL }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: AlertTypeEnum.ERROR, + alertTitle: 'ERROR', + message: { code: errCode, message: errMsg, URL: errURL }, + component: ErrorMessageComponent + } } })); } diff --git a/src/app/shared/services/web-socket.service.ts b/src/app/shared/services/web-socket.service.ts new file mode 100644 index 00000000..a4e41cc9 --- /dev/null +++ b/src/app/shared/services/web-socket.service.ts @@ -0,0 +1,100 @@ +import { Injectable, OnDestroy } from '@angular/core'; +import { BehaviorSubject, Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { WebSocketSubject } from 'rxjs/webSocket'; + +import { LoggerService } from '../../shared/services/logger.service'; +import { SessionService } from './session.service'; + +@Injectable() +export class WebSocketClientService implements OnDestroy { + + public clWSMessages: BehaviorSubject = new BehaviorSubject(null); + public eclWSMessages: BehaviorSubject = new BehaviorSubject(null); + public lndWSMessages: BehaviorSubject = new BehaviorSubject(null); + private wsUrl = ''; + private nodeIndex = ''; + private socket: WebSocketSubject | null; + private RETRY_SECONDS = 5; + private RECONNECT_TIMEOUT = null; + private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()]; + + constructor(private logger: LoggerService, private sessionService: SessionService) { } + + connectWebSocket(finalWSUrl: string, nodeIndex: string) { + if (!this.socket || this.socket.closed) { + this.wsUrl = finalWSUrl; + this.nodeIndex = nodeIndex; + this.logger.info('Websocket Url: ' + this.wsUrl); + this.socket = new WebSocketSubject({ + url: finalWSUrl, + protocol: [this.sessionService.getItem('token'), nodeIndex] + }); + this.subscribeToMessages(); + } + } + + reconnectOnError() { + if (this.RECONNECT_TIMEOUT || (this.socket && !this.socket.closed)) { return; } + this.RETRY_SECONDS = (this.RETRY_SECONDS >= 160) ? 160 : (this.RETRY_SECONDS * 2); + this.RECONNECT_TIMEOUT = setTimeout(() => { + this.logger.info('Reconnecting Web Socket.'); + this.connectWebSocket(this.wsUrl, this.nodeIndex); + this.RECONNECT_TIMEOUT = null; + }, this.RETRY_SECONDS * 1000); + } + + closeConnection() { + if (this.socket) { + this.socket.complete(); + this.socket = null; + } + } + + private subscribeToMessages() { + this.socket.pipe(takeUntil(this.unSubs[1])).subscribe({ + next: (msg) => { + msg = (typeof msg === 'string') ? JSON.parse(msg) : msg; + if (msg.error) { + this.handleError(msg.error); + } else { + this.logger.info('Next Message from WS:' + JSON.stringify(msg)); + switch (msg.source) { + case 'LND': + this.lndWSMessages.next(msg); + break; + case 'CLT': + this.clWSMessages.next(msg); + break; + case 'ECL': + this.eclWSMessages.next(msg); + break; + default: + break; + } + } + }, + error: (err) => this.handleError(err), + complete: () => { this.logger.info('Web Socket Closed'); } + }); + } + + private handleError(err) { + this.logger.error(err); + this.clWSMessages.error(err); + this.eclWSMessages.error(err); + this.lndWSMessages.error(err); + this.reconnectOnError(); + } + + ngOnDestroy() { + this.closeConnection(); + this.clWSMessages.next(null); + this.clWSMessages.complete(); + this.eclWSMessages.next(null); + this.eclWSMessages.complete(); + this.lndWSMessages.next(null); + this.lndWSMessages.complete(); + } + +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 079ab989..616693a6 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -41,7 +41,7 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { MatTreeModule } from '@angular/material/tree'; import { NgxChartsModule } from '@swimlane/ngx-charts'; -import { QRCodeModule } from 'angularx-qrcode'; +import { QrCodeModule } from 'ng-qrcode'; import { PerfectScrollbarModule, PERFECT_SCROLLBAR_CONFIG, PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar'; import { ThemeOverlay } from './theme/overlay-container/theme-overlay'; @@ -64,6 +64,7 @@ import { NodeSettingsComponent } from './components/node-config/node-settings/no import { ServicesSettingsComponent } from './components/node-config/services-settings/services-settings.component'; import { LoopServiceSettingsComponent } from './components/node-config/services-settings/loop-service-settings/loop-service-settings.component'; import { BoltzServiceSettingsComponent } from './components/node-config/services-settings/boltz-service-settings/boltz-service-settings.component'; +import { ExperimentalSettingsComponent } from './components/node-config/experimental-settings/experimental-settings.component'; import { ErrorComponent } from './components/error/error.component'; import { CurrencyUnitConverterComponent } from './components/currency-unit-converter/currency-unit-converter.component'; import { HorizontalScrollerComponent } from './components/horizontal-scroller/horizontal-scroller.component'; @@ -98,7 +99,7 @@ import { AutoFocusDirective } from './directive/auto-focus.directive'; import { MonthlyDateDirective, YearlyDateDirective } from './directive/date-formats.directive'; import { MaxValidator } from './directive/max-amount.directive'; import { MinValidator } from './directive/min-amount.directive'; -import { RemoveLeadingZerosPipe } from './pipes/app.pipe'; +import { RemoveLeadingZerosPipe, CamelCasePipe } from './pipes/app.pipe'; const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = { suppressScrollX: false, @@ -170,7 +171,7 @@ export const DEFAULT_DATE_FORMAT: MatDateFormats = { MatSnackBarModule, MatAutocompleteModule, NgxChartsModule, - QRCodeModule, + QrCodeModule, RouterModule, HttpClientModule, PerfectScrollbarModule @@ -213,13 +214,14 @@ export const DEFAULT_DATE_FORMAT: MatDateFormats = { MatSnackBarModule, MatAutocompleteModule, NgxChartsModule, - QRCodeModule, + QrCodeModule, PerfectScrollbarModule, ClipboardDirective, AutoFocusDirective, MonthlyDateDirective, YearlyDateDirective, RemoveLeadingZerosPipe, + CamelCasePipe, MaxValidator, MinValidator, AppSettingsComponent, @@ -239,6 +241,7 @@ export const DEFAULT_DATE_FORMAT: MatDateFormats = { ServicesSettingsComponent, LoopServiceSettingsComponent, BoltzServiceSettingsComponent, + ExperimentalSettingsComponent, CurrencyUnitConverterComponent, HorizontalScrollerComponent, TransactionsReportTableComponent, @@ -276,6 +279,7 @@ export const DEFAULT_DATE_FORMAT: MatDateFormats = { ServicesSettingsComponent, LoopServiceSettingsComponent, BoltzServiceSettingsComponent, + ExperimentalSettingsComponent, CurrencyUnitConverterComponent, HorizontalScrollerComponent, ErrorComponent, @@ -286,6 +290,7 @@ export const DEFAULT_DATE_FORMAT: MatDateFormats = { MaxValidator, MinValidator, RemoveLeadingZerosPipe, + CamelCasePipe, AuthSettingsComponent, TransactionsReportTableComponent, OnChainGeneratedAddressComponent, @@ -317,7 +322,7 @@ export const DEFAULT_DATE_FORMAT: MatDateFormats = { { provide: LoggerService, useClass: ConsoleLoggerService }, { provide: PERFECT_SCROLLBAR_CONFIG, useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG }, { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 2000, verticalPosition: 'bottom', panelClass: 'rtl-snack-bar' } }, - { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { hasBackdrop: true, autoFocus: true, disableClose: true, role: 'dialog', width: '55%' } }, + { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { hasBackdrop: true, autoFocus: true, disableClose: true, role: 'dialog', width: '45%' } }, { provide: DateAdapter, useClass: DefaultDateAdapter }, { provide: MAT_DATE_FORMATS, useValue: DEFAULT_DATE_FORMAT }, { provide: OverlayContainer, useClass: ThemeOverlay }, diff --git a/src/app/shared/test-helpers/mock-services.ts b/src/app/shared/test-helpers/mock-services.ts index a91ae346..5cc1c32f 100644 --- a/src/app/shared/test-helpers/mock-services.ts +++ b/src/app/shared/test-helpers/mock-services.ts @@ -2,10 +2,9 @@ import { HttpResponse } from '@angular/common/http'; import { BehaviorSubject, of, throwError } from 'rxjs'; import { API_URL } from '../../../environments/environment'; +import { CLActions } from '../services/consts-enums-functions'; import { mockResponseData } from './test-data'; -import * as CLActions from '../../clightning/store/cl.actions'; - export class mockMatDialogRef { close = (dialogResult: any) => { }; diff --git a/src/app/shared/test-helpers/test-data.ts b/src/app/shared/test-helpers/test-data.ts index 58603e6a..71776c03 100644 --- a/src/app/shared/test-helpers/test-data.ts +++ b/src/app/shared/test-helpers/test-data.ts @@ -710,14 +710,15 @@ export const mockActionsData = { swapServerUrl: '', boltzServerUrl: '', channelBackupPath: '', - currencyUnit: '' + currencyUnit: '', + enableOffers: false }, authentication: { swapMacaroonPath: '', boltzMacaroonPath: '', configPath: '' }, - index: '1', + index: 1, lnNode: 'LN Node Name', lnImplementation: 'LND' }, @@ -732,7 +733,8 @@ export const mockActionsData = { fiatConversion: true, lnImplementation: 'LND', swapServerUrl: '', - boltzServerUrl: '' + boltzServerUrl: '', + enableOffers: false }, setSelectedNode: { settings: { @@ -751,14 +753,15 @@ export const mockActionsData = { swapServerUrl: '', boltzServerUrl: '', channelBackupPath: '', - currencyUnit: '' + currencyUnit: '', + enableOffers: false }, authentication: { swapMacaroonPath: '', boltzMacaroonPath: '', configPath: '' }, - index: '1', + index: 1, lnNode: 'LN Node Name', lnImplementation: 'LND' }, diff --git a/src/app/shared/theme/skins/blue.scss b/src/app/shared/theme/skins/blue.scss index b0cc5c35..3e369fe2 100644 --- a/src/app/shared/theme/skins/blue.scss +++ b/src/app/shared/theme/skins/blue.scss @@ -1,9 +1,9 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import './color-swatches/light-dull-theme.scss'; @import './color-swatches/dark-bright-theme.scss'; @import './color-swatches/red-warn.swatch.scss'; @import './color-swatches/white.swatch.scss'; -@import '~@angular/material/theming'; +@import '@angular/material/theming'; $blue-primary: mat.define-palette(mat.$blue-palette, 700, 200, A200); $blue-accent: mat.define-palette(mat.$gray-palette, 800, 600, 900); diff --git a/src/app/shared/theme/skins/color-swatches/dark-bright-theme.scss b/src/app/shared/theme/skins/color-swatches/dark-bright-theme.scss index c3502879..4a4eb54b 100644 --- a/src/app/shared/theme/skins/color-swatches/dark-bright-theme.scss +++ b/src/app/shared/theme/skins/color-swatches/dark-bright-theme.scss @@ -1,4 +1,4 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; $dark-grey: ( 50 : #484848, 100 : #464646, diff --git a/src/app/shared/theme/skins/color-swatches/light-dull-theme.scss b/src/app/shared/theme/skins/color-swatches/light-dull-theme.scss index cf3dde3d..21b6ff7a 100644 --- a/src/app/shared/theme/skins/color-swatches/light-dull-theme.scss +++ b/src/app/shared/theme/skins/color-swatches/light-dull-theme.scss @@ -1,4 +1,4 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; $light-dull-foreground: ( base: black, diff --git a/src/app/shared/theme/skins/green.scss b/src/app/shared/theme/skins/green.scss index 07e65578..9684784b 100644 --- a/src/app/shared/theme/skins/green.scss +++ b/src/app/shared/theme/skins/green.scss @@ -1,10 +1,10 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import './color-swatches/light-dull-theme.scss'; @import './color-swatches/dark-bright-theme.scss'; @import './color-swatches/red-warn.swatch.scss'; @import './color-swatches/green-primary.swatch.scss'; @import './color-swatches/white.swatch.scss'; -@import '~@angular/material/theming'; +@import '@angular/material/theming'; $green-primary: mat.define-palette($green-primary, 500, 300, A200); $green-accent: mat.define-palette(mat.$gray-palette, 800, 600, 900); diff --git a/src/app/shared/theme/skins/indigo.scss b/src/app/shared/theme/skins/indigo.scss index 64fca8c5..e9261044 100644 --- a/src/app/shared/theme/skins/indigo.scss +++ b/src/app/shared/theme/skins/indigo.scss @@ -1,9 +1,9 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import './color-swatches/light-dull-theme.scss'; @import './color-swatches/dark-bright-theme.scss'; @import './color-swatches/red-warn.swatch.scss'; @import './color-swatches/white.swatch.scss'; -@import '~@angular/material/theming'; +@import '@angular/material/theming'; $indigo-primary: mat.define-palette(mat.$indigo-palette, 500, 200, A200); $indigo-accent: mat.define-palette(mat.$gray-palette, 800, 600, 900); diff --git a/src/app/shared/theme/skins/pink.scss b/src/app/shared/theme/skins/pink.scss index e9a4bb24..5afed211 100644 --- a/src/app/shared/theme/skins/pink.scss +++ b/src/app/shared/theme/skins/pink.scss @@ -1,9 +1,9 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import './color-swatches/light-dull-theme.scss'; @import './color-swatches/dark-bright-theme.scss'; @import './color-swatches/red-warn.swatch.scss'; @import './color-swatches/white.swatch.scss'; -@import '~@angular/material/theming'; +@import '@angular/material/theming'; $pink-primary: mat.define-palette(mat.$pink-palette, 500, 300, A200); $pink-accent: mat.define-palette(mat.$gray-palette, 800, 600, 900); diff --git a/src/app/shared/theme/skins/purple.scss b/src/app/shared/theme/skins/purple.scss index 676f8dc4..d13a4e92 100644 --- a/src/app/shared/theme/skins/purple.scss +++ b/src/app/shared/theme/skins/purple.scss @@ -1,10 +1,10 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import './color-swatches/light-dull-theme.scss'; @import './color-swatches/dark-bright-theme.scss'; @import './color-swatches/purple-primary.swatch.scss'; @import './color-swatches/red-warn.swatch.scss'; @import './color-swatches/white.swatch.scss'; -@import '~@angular/material/theming'; +@import '@angular/material/theming'; $purple-primary: mat.define-palette($purple-primary, 500, 300, A200); $purple-accent: mat.define-palette(mat.$gray-palette, 800, 600, 900); diff --git a/src/app/shared/theme/skins/teal.scss b/src/app/shared/theme/skins/teal.scss index 70e53a08..f0e45e9a 100644 --- a/src/app/shared/theme/skins/teal.scss +++ b/src/app/shared/theme/skins/teal.scss @@ -1,9 +1,9 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import './color-swatches/light-dull-theme.scss'; @import './color-swatches/dark-bright-theme.scss'; @import './color-swatches/red-warn.swatch.scss'; @import './color-swatches/white.swatch.scss'; -@import '~@angular/material/theming'; +@import '@angular/material/theming'; $teal-primary: mat.define-palette(mat.$teal-palette, 800, 300, A200); $teal-accent: mat.define-palette(mat.$gray-palette, 800, 600, 900); diff --git a/src/app/shared/theme/skins/yellow.scss b/src/app/shared/theme/skins/yellow.scss index bb8dd3e4..63d22ddf 100644 --- a/src/app/shared/theme/skins/yellow.scss +++ b/src/app/shared/theme/skins/yellow.scss @@ -1,10 +1,10 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import './color-swatches/light-dull-theme.scss'; @import './color-swatches/dark-bright-theme.scss'; @import './color-swatches/red-warn.swatch.scss'; @import './color-swatches/yellow-primary.swatch.scss'; @import './color-swatches/white.swatch.scss'; -@import '~@angular/material/theming'; +@import '@angular/material/theming'; $yellow-primary: mat.define-palette($yellow-primary, 500, 300, A200); $yellow-accent: mat.define-palette(mat.$gray-palette, 800, 600, 900); diff --git a/src/app/shared/theme/styles/mixins.scss b/src/app/shared/theme/styles/mixins.scss index 61911177..0880e38d 100644 --- a/src/app/shared/theme/styles/mixins.scss +++ b/src/app/shared/theme/styles/mixins.scss @@ -32,3 +32,11 @@ ORDER: Base + typography > general layout + grid > page layout > components } } +@mixin afterBg { + content: ''; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} diff --git a/src/app/shared/theme/styles/root.scss b/src/app/shared/theme/styles/root.scss index 64394e69..1a1a3cfd 100644 --- a/src/app/shared/theme/styles/root.scss +++ b/src/app/shared/theme/styles/root.scss @@ -1,5 +1,6 @@ -@import "constants"; -@import "mixins"; +@use 'sass:math' as math; +@import 'constants'; +@import 'mixins'; html { width: 100%; @@ -88,10 +89,10 @@ body { min-height: calc(100% - (#{$toolbar-height} + #{$gap}*4)); max-height: 90vh; @include for_screensize(tab-port) { - padding: $gap $gap/2; + padding: $gap math.div($gap, 2); } @include for_screensize(phone) { - padding: $gap/2 $gap/4; + padding: math.div($gap, 2) math.div($gap, 4); } } @@ -124,23 +125,23 @@ body { .padding-gap { padding: $gap !important; @include for_screensize(tab-port) { - padding: $gap/2 !important; + padding: math.div($gap, 2) !important; } @include for_screensize(phone) { - padding: $gap/4 !important; + padding: math.div($gap, 4) !important; } } .padding-gap-x { padding: 0 $gap 0 $gap !important; @include for_screensize(tab-land) { - padding: 0 $gap/2 0 $gap/2 !important; + padding: 0 math.div($gap, 2) 0 math.div($gap, 2) !important; } @include for_screensize(tab-port) { - padding: 0 $gap/2 0 $gap/2 !important; + padding: 0 math.div($gap, 2) 0 math.div($gap, 2) !important; } @include for_screensize(phone) { - padding: 0 $gap/4 0 $gap/4 !important; + padding: 0 math.div($gap, 4) 0 math.div($gap, 4) !important; } } @@ -150,23 +151,23 @@ body { padding: $gap !important; } @include for_screensize(tab-port) { - padding: $gap/2 !important; + padding: math.div($gap, 2) !important; } @include for_screensize(phone) { - padding: $gap/4 !important; + padding: math.div($gap, 4) !important; } } .padding-gap-x-large { padding: 0 ($gap*2) 0 ($gap*2) !important; @include for_screensize(tab-land) { - padding: 0 $gap 0 $gap !important; + padding: 0 ($gap) 0 ($gap) !important; } @include for_screensize(tab-port) { - padding: 0 $gap/2 0 $gap/2 !important; + padding: 0 math.div($gap, 2) 0 math.div($gap, 2) !important; } @include for_screensize(phone) { - padding: 0 $gap/4 0 $gap/4 !important; + padding: 0 math.div($gap, 4) 0 math.div($gap, 4) !important; } } @@ -176,7 +177,7 @@ body { padding-bottom: $gap !important; } @include for_screensize(phone) { - padding-bottom: $gap/4 !important; + padding-bottom: math.div($gap, 4) !important; } } @@ -203,27 +204,27 @@ body { padding: $gap $gap !important; } @include for_screensize(phone) { - padding: $gap/2 $gap/4 !important; + padding: math.div($gap, 2) math.div($gap, 4) !important; } } th.mat-header-cell:first-of-type, td.mat-cell:first-of-type, td.mat-footer-cell:first-of-type, mat-cell:first-of-type, mat-header-cell:first-of-type, mat-footer-cell:first-of-type { @include for_screensize(tab-port) { - padding-left: $gap/2 !important; + padding-left: math.div($gap, 2) !important; } @include for_screensize(phone) { - padding-left: $gap/4 !important; + padding-left: math.div($gap, 4) !important; } } th.mat-header-cell:last-of-type, td.mat-cell:last-of-type, td.mat-footer-cell:last-of-type, mat-cell:last-of-type, mat-header-cell:last-of-type, mat-footer-cell:last-of-type { @include for_screensize(tab-port) { - padding-right: $gap/2 !important; + padding-right: math.div($gap, 2) !important; } @include for_screensize(phone) { - padding-right: $gap/4 !important; + padding-right: math.div($gap, 4) !important; } } @@ -273,11 +274,6 @@ mat-cell:last-of-type, mat-header-cell:last-of-type, mat-footer-cell:last-of-typ color: #CCCCCC !important; } -.mat-dialog-container { - padding: 0 !important; - overflow: hidden !important; -} - .mt-1px { margin-top: 1px !important; } @@ -1417,7 +1413,7 @@ th.mat-header-cell:last-of-type, td.mat-cell:last-of-type, td.mat-footer-cell:la .alert { margin-bottom: 1rem; padding: 0.6rem 1rem; - border-radius: 4px; + border-radius: 2px; } .dashboard-vert-menu.mat-menu-panel { @@ -1534,7 +1530,7 @@ th.mat-header-cell:last-of-type, td.mat-cell:last-of-type, td.mat-footer-cell:la .mat-expansion-panel.flat-expansion-panel { box-shadow: none; padding: 0; - border-radius: 4px; + border-radius: 2px; background: none; & .mat-expansion-panel-header { padding: 0 $gap*3 0 $gap*3; @@ -1542,7 +1538,10 @@ th.mat-header-cell:last-of-type, td.mat-cell:last-of-type, td.mat-footer-cell:la padding: 0 $gap 0 $gap; } @include for_screensize(phone) { - padding: 0 $gap/2 0 $gap/2; + padding: 0 math.div($gap, 2) 0 math.div($gap, 2); + } + & .mat-expansion-indicator { + margin-top: -5px; } } & .mat-expansion-panel-body { @@ -1551,14 +1550,14 @@ th.mat-header-cell:last-of-type, td.mat-cell:last-of-type, td.mat-footer-cell:la padding: 0 $gap $gap $gap; } @include for_screensize(phone) { - padding: 0 $gap/2 $gap/4 $gap/2; + padding: 0 math.div($gap, 2) math.div($gap, 4) math.div($gap, 2); } & .mat-expansion-panel-header-title, .mat-expansion-panel-header-description { @include for_screensize(tab-port) { margin-right: $gap; } @include for_screensize(phone) { - margin-right: $gap/2; + margin-right: math.div($gap, 2); } } } diff --git a/src/app/shared/theme/styles/styles.scss b/src/app/shared/theme/styles/styles.scss index da8b9b5e..e5ef7e60 100644 --- a/src/app/shared/theme/styles/styles.scss +++ b/src/app/shared/theme/styles/styles.scss @@ -1,6 +1,6 @@ @import '~material-design-icons/iconfont/material-icons.css'; @import '~roboto-fontface/css/roboto/roboto-fontface.css'; -@import "./perfect-scrollbar.scss"; +@import './perfect-scrollbar.scss'; -@import "./root.scss"; -@import "./theme.scss"; +@import './root.scss'; +@import './theme.scss'; diff --git a/src/app/shared/theme/styles/theme-color.scss b/src/app/shared/theme/styles/theme-color.scss index 8015f416..c7132540 100644 --- a/src/app/shared/theme/styles/theme-color.scss +++ b/src/app/shared/theme/styles/theme-color.scss @@ -1,4 +1,4 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import "constants"; @import "mixins"; @@ -25,7 +25,7 @@ .mat-expansion-panel.flat-expansion-panel { box-shadow: none; padding: 0; - border-radius: 4px; + border-radius: 2px; background: none; } @@ -142,6 +142,16 @@ } } + .mat-dialog-container { + padding: 0; + overflow: hidden; + border-radius: 2px; + } + + .mat-button, .mat-icon-button, .mat-stroked-button, .mat-flat-button { + border-radius: 2px; + } + .cc-data-block { & .cc-data-title { font-size: 80%; @@ -162,7 +172,7 @@ table.mat-table { border: 1px solid $foreground-divider; - border-radius: 4px; + border-radius: 2px; background: none; thead tr th { color: $foreground-base; @@ -175,7 +185,7 @@ .bordered-box { border: 1px solid $foreground-divider; - border-radius: 4px; + border-radius: 2px; background: none; &.read-only { background-color: $hover-background; @@ -368,6 +378,7 @@ border: 1px solid $red-color; background-color: $red-background-color; color: $red-color; + overflow-wrap: break-word; & .alert-icon.ng-fa-icon { color: $red-color; } @@ -438,4 +449,643 @@ .mat-paginator-container { padding: 0; } + + .invoice-animation-container { + position: relative; + width: 100%; + -moz-transform: translateY(0%); + -ms-transform: translateY(0%); + -webkit-transform: translateY(0%); + transform: translateY(0%); + } + + .invoice-animation-div { + position: relative; + display: flex; + justify-content: flex-start; + } + + .invoice-animation-div .particles-circle { + position: absolute; + background-color: $primary-color; + width: 30px; + height: 30px; + top: 10px; + left: 50%; + margin-top: -13px; + margin-left: -45%; + z-index: -1; + -moz-border-radius: 50%; + -webkit-border-radius: 50%; + border-radius: 50%; + -moz-transform: scale(0); + -ms-transform: scale(0); + -webkit-transform: scale(0); + transform: scale(0); + visibility: hidden; + } + .invoice-animation-div .particles-circle:nth-of-type(odd) { + border: solid 2px $primary-color; + background-color: transparent; + } + @keyframes particles-1 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 199px; + top: 201px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(1) { + animation: particles-1 2.5s 0.025s; + } + @keyframes particles-2 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -40px; + top: 82px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(2) { + animation: particles-2 2.5s 0.05s; + } + @keyframes particles-3 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 162px; + top: 109px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(3) { + animation: particles-3 2.5s 0.075s; + } + @keyframes particles-4 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 223px; + top: 78px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(4) { + animation: particles-4 2.5s 0.1s; + } + @keyframes particles-5 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 184px; + top: 113px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(5) { + animation: particles-5 2.5s 0.125s; + } + @keyframes particles-6 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -42px; + top: -238px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(6) { + animation: particles-6 2.5s 0.15s; + } + @keyframes particles-7 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 150px; + top: -98px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(7) { + animation: particles-7 2.5s 0.175s; + } + @keyframes particles-8 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 62px; + top: 225px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(8) { + animation: particles-8 2.5s 0.2s; + } + @keyframes particles-9 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 113px; + top: 86px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(9) { + animation: particles-9 2.5s 0.225s; + } + @keyframes particles-10 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 229px; + top: -127px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(10) { + animation: particles-10 2.5s 0.25s; + } + @keyframes particles-11 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 243px; + top: -106px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(11) { + animation: particles-11 2.5s 0.275s; + } + @keyframes particles-12 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -168px; + top: 138px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(12) { + animation: particles-12 2.5s 0.3s; + } + @keyframes particles-13 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -124px; + top: 62px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(13) { + animation: particles-13 2.5s 0.325s; + } + @keyframes particles-14 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 246px; + top: 30px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(14) { + animation: particles-14 2.5s 0.35s; + } + @keyframes particles-15 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -22px; + top: -171px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(15) { + animation: particles-15 2.5s 0.375s; + } + @keyframes particles-16 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -144px; + top: 115px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(16) { + animation: particles-16 2.5s 0.4s; + } + @keyframes particles-17 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 209px; + top: 84px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(17) { + animation: particles-17 2.5s 0.425s; + } + @keyframes particles-18 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 84px; + top: -190px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(18) { + animation: particles-18 2.5s 0.45s; + } + @keyframes particles-19 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -94px; + top: 208px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(19) { + animation: particles-19 2.5s 0.475s; + } + @keyframes particles-20 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 147px; + top: 203px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(20) { + animation: particles-20 2.5s 0.5s; + } + @keyframes particles-21 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 178px; + top: 206px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(21) { + animation: particles-21 2.5s 0.525s; + } + @keyframes particles-22 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -10px; + top: -226px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(22) { + animation: particles-22 2.5s 0.55s; + } + @keyframes particles-23 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 3px; + top: 222px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(23) { + animation: particles-23 2.5s 0.575s; + } + @keyframes particles-24 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -182px; + top: -44px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(24) { + animation: particles-24 2.5s 0.6s; + } + @keyframes particles-25 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -146px; + top: 166px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(25) { + animation: particles-25 2.5s 0.625s; + } + @keyframes particles-26 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 144px; + top: 218px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(26) { + animation: particles-26 2.5s 0.65s; + } + @keyframes particles-27 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 48px; + top: 222px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(27) { + animation: particles-27 2.5s 0.675s; + } + @keyframes particles-28 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -48px; + top: 50px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(28) { + animation: particles-28 2.5s 0.7s; + } + @keyframes particles-29 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -228px; + top: -15px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(29) { + animation: particles-29 2.5s 0.725s; + } + @keyframes particles-30 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 91px; + top: -199px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(30) { + animation: particles-30 2.5s 0.75s; + } + @keyframes particles-31 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -40px; + top: 104px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(31) { + animation: particles-31 2.5s 0.775s; + } + @keyframes particles-32 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -102px; + top: 4px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(32) { + animation: particles-32 2.5s 0.8s; + } + @keyframes particles-33 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -26px; + top: -89px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(33) { + animation: particles-33 2.5s 0.825s; + } + @keyframes particles-34 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: -151px; + top: -149px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(34) { + animation: particles-34 2.5s 0.85s; + } + @keyframes particles-35 { + from { + transform: scale(1); + visibility: visible; + } + to { + left: 186px; + top: 200px; + transform: scale(0); + visibility: hidden; + } + } + .invoice-animation-div .particles-circle:nth-of-type(35) { + animation: particles-35 2.5s 0.875s; + } + + .wiggle { + animation: 0.5s wiggle ease-in-out infinite; + } + + @keyframes wiggle { + 0% { + transform: rotate(-3deg); + } + 20% { + transform: rotate(20deg); + } + 40% { + transform: rotate(-15deg); + } + 60% { + transform: rotate(5deg);; + } + 90% { + transform: rotate(-1deg);; + } + 100% { + transform: rotate(0deg);; + } + } + + .shockwave { + animation: shockwaveJump 1s ease-out infinite; + + &:after { + @include afterBg; + animation: shockwave 1s .65s ease-out infinite; + } + + &:before { + @include afterBg; + animation: shockwave 1s .5s ease-out infinite; + } + } + + @keyframes shockwaveJump { + 0% { + transform: scale(1); + } + 40% { + transform: scale(1.08); + } + 50% { + transform: scale(0.98); + } + 55% { + transform: scale(1.02); + } + 60% { + transform: scale(0.98); + } + 100% { + transform: scale(1); + } + } + + @keyframes shockwave { + 0% { + transform: scale(1); + box-shadow: 0 0 2px rgba(0,0,0,0.15), inset 0 0 1px rgba(0,0,0,0.15); + } + 95% { + box-shadow: 0 0 50px rgba(0,0,0,0), inset 0 0 30px rgba(0,0,0,0); + } + 100% { + transform: scale(2.25); + + } + } + } diff --git a/src/app/shared/theme/styles/theme-font.scss b/src/app/shared/theme/styles/theme-font.scss index f95b6054..8565498e 100644 --- a/src/app/shared/theme/styles/theme-font.scss +++ b/src/app/shared/theme/styles/theme-font.scss @@ -1,5 +1,7 @@ -@use '~@angular/material' as mat; -@import "constants"; +@use '@angular/material' as mat; +@use 'sass:math' as math; +@import 'constants'; + @mixin theme-font($typography) { &.small { @@ -97,12 +99,12 @@ } .modal-info-header { font-size: $medium-font-size * 1.3; - padding: $gap $gap/2 $gap $gap * 2 !important; + padding: $gap math.div($gap, 2) $gap $gap * 2 !important; @include for_screensize(tab-port) { - padding: $gap/2 $gap/2 $gap/2 $gap !important; + padding: math.div($gap, 2) math.div($gap, 2) math.div($gap, 2) $gap !important; } @include for_screensize(phone) { - padding: $gap/4 !important; + padding: math.div($gap, 4) !important; } } .top-toolbar-icon.icon-pinned { @@ -121,6 +123,9 @@ .material-icons { font-size: $medium-font-size * 2; } + .material-icons.mat-icon.small-icon { + font-size: $medium-font-size * 1.2; + } .mat-step-header .mat-step-icon .mat-icon { font-size: initial; } diff --git a/src/app/shared/theme/styles/theme-mode-dark.scss b/src/app/shared/theme/styles/theme-mode-dark.scss index 6ff06897..31cb7a2b 100644 --- a/src/app/shared/theme/styles/theme-mode-dark.scss +++ b/src/app/shared/theme/styles/theme-mode-dark.scss @@ -1,4 +1,4 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import "constants"; @mixin theme-mode-dark($theme) { diff --git a/src/app/shared/theme/styles/theme-mode-light.scss b/src/app/shared/theme/styles/theme-mode-light.scss index 43297b06..1c5ee21d 100644 --- a/src/app/shared/theme/styles/theme-mode-light.scss +++ b/src/app/shared/theme/styles/theme-mode-light.scss @@ -1,4 +1,4 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; @import "constants"; @mixin theme-mode-light($theme) { diff --git a/src/app/shared/theme/styles/theme.scss b/src/app/shared/theme/styles/theme.scss index d2ca5e84..f46cb2ee 100644 --- a/src/app/shared/theme/styles/theme.scss +++ b/src/app/shared/theme/styles/theme.scss @@ -1,5 +1,5 @@ -@use '~@angular/material' as mat; -@import '~@angular/material/theming'; +@use '@angular/material' as mat; +@import '@angular/material/theming'; @import 'theme-font'; @import 'theme-mode-dark'; @import 'theme-mode-light'; diff --git a/src/app/shared/theme/styles/typography.scss b/src/app/shared/theme/styles/typography.scss index bae2cec3..93672390 100644 --- a/src/app/shared/theme/styles/typography.scss +++ b/src/app/shared/theme/styles/typography.scss @@ -1,4 +1,4 @@ -@use '~@angular/material' as mat; +@use '@angular/material' as mat; $small-typography: mat.define-typography-config( $display-4: (font-size: 100px, line-height: 105px, font-weight: 300), $display-3: (font-size: 50px, line-height: 54px, font-weight: 400), diff --git a/src/app/store/rtl.actions.ts b/src/app/store/rtl.actions.ts index 689bf183..8b7c7063 100644 --- a/src/app/store/rtl.actions.ts +++ b/src/app/store/rtl.actions.ts @@ -1,268 +1,75 @@ -import { Action } from '@ngrx/store'; +import { createAction, props } from '@ngrx/store'; import { DialogConfig } from '../shared/models/alertData'; import { ApiCallStatusPayload } from '../shared/models/apiCallsPayload'; -import { RTLConfiguration, Settings, ConfigSettingsNode, GetInfoRoot, SSO } from '../shared/models/RTLconfig'; -import { ServicesEnum } from '../shared/services/consts-enums-functions'; +import { RTLConfiguration, ConfigSettingsNode, GetInfoRoot, SSO } from '../shared/models/RTLconfig'; +import { FetchFile, Login, OpenSnackBar, ResetPassword, SaveSettings, SetSelectedNode, UpdateServiceSetting, VerifyTwoFA } from '../shared/models/rtlModels'; +import { RTLActions } from '../shared/services/consts-enums-functions'; -export const VOID = 'VOID'; -export const UPDATE_SELECTED_NODE_OPTIONS = 'UPDATE_SELECTED_NODE_OPTIONS'; -export const UPDATE_API_CALL_STATUS_ROOT = 'UPDATE_API_CALL_STATUS_ROOT'; -export const RESET_ROOT_STORE = 'RESET_ROOT_STORE'; -export const CLOSE_ALL_DIALOGS = 'CLOSE_ALL_DIALOGS'; -export const OPEN_SNACK_BAR = 'OPEN_SNACKBAR'; -export const OPEN_SPINNER = 'OPEN_SPINNER'; -export const CLOSE_SPINNER = 'CLOSE_SPINNER'; -export const OPEN_ALERT = 'OPEN_ALERT'; -export const CLOSE_ALERT = 'CLOSE_ALERT'; -export const OPEN_CONFIRMATION = 'OPEN_CONFIRMATION'; -export const CLOSE_CONFIRMATION = 'CLOSE_CONFIRMATION'; -export const SHOW_PUBKEY = 'SHOW_PUBKEY'; -export const FETCH_CONFIG = 'FETCH_CONFIG'; -export const SHOW_CONFIG = 'SHOW_CONFIG'; -export const FETCH_STORE = 'FETCH_STORE'; -export const SET_STORE = 'SET_STORE'; -export const FETCH_RTL_CONFIG = 'FETCH_RTL_CONFIG'; -export const SET_RTL_CONFIG = 'SET_RTL_CONFIG'; -export const SAVE_SSO = 'SAVE_SSO'; -export const SAVE_SETTINGS = 'SAVE_SETTINGS'; -export const TWO_FA_SAVE_SETTINGS = 'TWO_FA_SAVE_SETTINGS'; -export const SET_SELECTED_NODE = 'SET_SELECTED_NODE'; -export const UPDATE_SERVICE_SETTINGS = 'UPDATE_SERVICE_SETTINGS'; -export const SET_NODE_DATA = 'SET_NODE_DATA'; -export const IS_AUTHORIZED = 'IS_AUTHORIZED'; -export const IS_AUTHORIZED_RES = 'IS_AUTHORIZED_RES'; -export const LOGIN = 'LOGIN'; -export const VERIFY_TWO_FA = 'VERIFY_TWO_FA'; -export const LOGOUT = 'LOGOUT'; -export const RESET_PASSWORD = 'RESET_PASSWORD'; -export const RESET_PASSWORD_RES = 'RESET_PASSWORD_RES'; -export const FETCH_FILE = 'FETCH_FILE'; -export const SHOW_FILE = 'SHOW_FILE'; +export const voidAction = createAction(RTLActions.VOID); -export class VoidAction implements Action { +export const setApiUrl = createAction(RTLActions.SET_API_URL_ECL, props<{ payload: string }>()); - readonly type = VOID; +export const updateRootAPICallStatus = createAction(RTLActions.UPDATE_API_CALL_STATUS_ROOT, props<{ payload: ApiCallStatusPayload }>()); -} +export const closeAllDialogs = createAction(RTLActions.CLOSE_ALL_DIALOGS); -export class UpdateAPICallStatus implements Action { +export const openSnackBar = createAction(RTLActions.OPEN_SNACK_BAR, props<{ payload: string | OpenSnackBar }>()); - readonly type = UPDATE_API_CALL_STATUS_ROOT; - constructor(public payload: ApiCallStatusPayload) { } +export const openSpinner = createAction(RTLActions.OPEN_SPINNER, props<{ payload: string }>()); -} +export const closeSpinner = createAction(RTLActions.CLOSE_SPINNER, props<{ payload: string }>()); -export class CloseAllDialogs implements Action { +export const openAlert = createAction(RTLActions.OPEN_ALERT, props<{ payload: DialogConfig }>()); - readonly type = CLOSE_ALL_DIALOGS; +export const closeAlert = createAction(RTLActions.CLOSE_ALERT, props<{ payload: any }>()); -} +export const openConfirmation = createAction(RTLActions.OPEN_CONFIRMATION, props<{ payload: DialogConfig }>()); -export class OpenSnackBar implements Action { +export const closeConfirmation = createAction(RTLActions.CLOSE_CONFIRMATION, props<{ payload: boolean }>()); - readonly type = OPEN_SNACK_BAR; - constructor(public payload: string | {message: string, duration?: number, type?: string}) {} +export const showPubkey = createAction(RTLActions.SHOW_PUBKEY); -} +export const fetchConfig = createAction(RTLActions.FETCH_CONFIG, props<{ payload: string }>()); -export class OpenSpinner implements Action { +export const showConfig = createAction(RTLActions.SHOW_CONFIG, props<{ payload: any }>()); - readonly type = OPEN_SPINNER; - constructor(public payload: string) {} +export const updateSelectedNodeOptions = createAction(RTLActions.UPDATE_SELECTED_NODE_OPTIONS); -} +export const resetRootStore = createAction(RTLActions.RESET_ROOT_STORE, props<{ payload: ConfigSettingsNode }>()); -export class CloseSpinner implements Action { +export const fetchRTLConfig = createAction(RTLActions.FETCH_RTL_CONFIG); - readonly type = CLOSE_SPINNER; - constructor(public payload: string) {} +export const setRTLConfig = createAction(RTLActions.SET_RTL_CONFIG, props<{ payload: RTLConfiguration }>()); -} +export const saveSettings = createAction(RTLActions.SAVE_SETTINGS, props<{ payload: SaveSettings }>()); -export class OpenAlert implements Action { +export const twoFASaveSettings = createAction(RTLActions.TWO_FA_SAVE_SETTINGS, props<{ payload: { secret2fa: string } }>()); - readonly type = OPEN_ALERT; - constructor(public payload: DialogConfig) {} +export const setSelectedNode = createAction(RTLActions.SET_SELECTED_NODE, props<{ payload: SetSelectedNode }>()); -} +export const updateRootNodeSettings = createAction(RTLActions.UPDATE_ROOT_NODE_SETTINGS, props<{ payload: UpdateServiceSetting }>()); -export class CloseAlert implements Action { +export const updateServiceSettings = createAction(RTLActions.UPDATE_SERVICE_SETTINGS, props<{ payload: UpdateServiceSetting }>()); - readonly type = CLOSE_ALERT; - constructor(public payload: any) {} +export const setNodeData = createAction(RTLActions.SET_NODE_DATA, props<{ payload: GetInfoRoot }>()); -} +export const saveSSO = createAction(RTLActions.SAVE_SSO, props<{ payload: SSO }>()); -export class OpenConfirmation implements Action { +export const logout = createAction(RTLActions.LOGOUT); - readonly type = OPEN_CONFIRMATION; - constructor(public payload: DialogConfig) {} +export const resetPassword = createAction(RTLActions.RESET_PASSWORD, props<{ payload: ResetPassword }>()); -} +export const resetPasswordRes = createAction(RTLActions.RESET_PASSWORD_RES, props<{ payload: { token: string } }>()); -export class CloseConfirmation implements Action { +export const isAuthorized = createAction(RTLActions.IS_AUTHORIZED, props<{ payload: string }>()); - readonly type = CLOSE_CONFIRMATION; - constructor(public payload: boolean) {} +export const isAuthorizedRes = createAction(RTLActions.IS_AUTHORIZED_RES, props<{ payload: any }>()); -} +export const login = createAction(RTLActions.LOGIN, props<{ payload: Login }>()); -export class ShowPubkey implements Action { +export const verifyTwoFA = createAction(RTLActions.VERIFY_TWO_FA, props<{ payload: VerifyTwoFA }>()); - readonly type = SHOW_PUBKEY; - constructor() {} +export const fetchFile = createAction(RTLActions.FETCH_FILE, props<{ payload: FetchFile }>()); -} - -export class FetchConfig implements Action { - - readonly type = FETCH_CONFIG; - constructor(public payload: string) {} // Payload = ln/bitcoin node - -} - -export class ShowConfig implements Action { - - readonly type = SHOW_CONFIG; - constructor(public payload: any) {} // Payload = Config File - -} - -export class UpdateSelectedNodeOptions implements Action { - - readonly type = UPDATE_SELECTED_NODE_OPTIONS; - -} - -export class ResetRootStore implements Action { - - readonly type = RESET_ROOT_STORE; - constructor(public payload: ConfigSettingsNode) {} - -} - -export class FetchRTLConfig implements Action { - - readonly type = FETCH_RTL_CONFIG; - -} - -export class SetRTLConfig implements Action { - - readonly type = SET_RTL_CONFIG; - constructor(public payload: RTLConfiguration) {} - -} - -export class SaveSettings implements Action { - - readonly type = SAVE_SETTINGS; - constructor(public payload: {uiMessage: string, settings?: Settings, defaultNodeIndex?: number}) {} - -} - -export class TwoFASaveSettings implements Action { - - readonly type = TWO_FA_SAVE_SETTINGS; - constructor(public payload: {secret2fa: string}) {} - -} - -export class SetSelelectedNode implements Action { - - readonly type = SET_SELECTED_NODE; - constructor(public payload: { uiMessage: string, lnNode: ConfigSettingsNode, isInitialSetup: boolean }) {} - -} - -export class UpdateServiceSettings implements Action { - - readonly type = UPDATE_SERVICE_SETTINGS; - constructor(public payload: { uiMessage: string, service: ServicesEnum, settings: any }) {} - -} - -export class SetNodeData implements Action { - - readonly type = SET_NODE_DATA; - constructor(public payload: GetInfoRoot) {} - -} - -export class SaveSSO implements Action { - - readonly type = SAVE_SSO; - constructor(public payload: SSO) {} - -} - -export class Logout implements Action { - - readonly type = LOGOUT; - constructor() {} - -} - -export class ResetPassword implements Action { - - readonly type = RESET_PASSWORD; - constructor(public payload: {currPassword: string, newPassword: string}) {} - -} - -export class ResetPasswordRes implements Action { - - readonly type = RESET_PASSWORD_RES; - constructor(public payload: {token: string}) {} - -} - -export class IsAuthorized implements Action { - - readonly type = IS_AUTHORIZED; - constructor(public payload: string) {} // Payload = password - -} - -export class IsAuthorizedRes implements Action { - - readonly type = IS_AUTHORIZED_RES; - constructor(public payload: any) {} // Payload = token/error - -} - -export class Login implements Action { - - readonly type = LOGIN; - constructor(public payload: {password: string, defaultPassword: boolean, twoFAToken?: string}) {} - -} - -export class VerifyTwoFA implements Action { - - readonly type = VERIFY_TWO_FA; - constructor(public payload: {token: string, authResponse: any}) {} - -} - -export class FetchFile implements Action { - - readonly type = FETCH_FILE; - constructor(public payload: {channelPoint: string, path?: string}) {} - -} - -export class ShowFile implements Action { - - readonly type = SHOW_FILE; - constructor(public payload: any) {} - -} - -export type RTLActions = UpdateAPICallStatus | IsAuthorized | IsAuthorizedRes | Login | VerifyTwoFA | - VoidAction | CloseAllDialogs | OpenSnackBar | OpenSpinner | CloseSpinner | FetchRTLConfig | SetRTLConfig | SaveSettings | - OpenAlert | CloseAlert | OpenConfirmation | CloseConfirmation | ShowPubkey | FetchConfig | ShowConfig | - UpdateSelectedNodeOptions | ResetRootStore | - SetSelelectedNode | SetNodeData | SaveSSO | UpdateServiceSettings | - Logout | ResetPassword | ResetPasswordRes | FetchFile | ShowFile; +export const showFile = createAction(RTLActions.SHOW_FILE, props<{ payload: any }>()); diff --git a/src/app/store/rtl.effects.spec.ts b/src/app/store/rtl.effects.spec.ts index 25076a0c..9232a01b 100644 --- a/src/app/store/rtl.effects.spec.ts +++ b/src/app/store/rtl.effects.spec.ts @@ -19,21 +19,22 @@ import { CommonService } from '../shared/services/common.service'; import { SessionService } from '../shared/services/session.service'; import { LoggerService } from '../shared/services/logger.service'; import { DataService } from '../shared/services/data.service'; +import { WebSocketClientService } from '../shared/services/web-socket.service'; import { ErrorMessageComponent } from '../shared/components/data-modal/error-message/error-message.component'; -import { APICallStatusEnum, UI_MESSAGES } from '../shared/services/consts-enums-functions'; +import { APICallStatusEnum, RTLActions, UI_MESSAGES } from '../shared/services/consts-enums-functions'; import { environment } from '../../environments/environment'; import { RTLEffects } from './rtl.effects'; -import * as RTLActions from './rtl.actions'; -import * as LNDActions from '../lnd/store/lnd.actions'; -import * as ECLActions from '../eclair/store/ecl.actions'; -import * as CLActions from '../clightning/store/cl.actions'; -import * as fromRTLReducer from './rtl.reducers'; +import { RTLState } from './rtl.state'; +import { updateRootAPICallStatus, openSpinner, closeSpinner, openAlert, resetRootStore } from './rtl.actions'; +import { resetLNDStore, fetchInfoLND } from '../lnd/store/lnd.actions'; +import { resetCLStore } from '../clightning/store/cl.actions'; +import { resetECLStore } from '../eclair/store/ecl.actions'; describe('RTL Root Effects', () => { let actions: ReplaySubject; let effects: RTLEffects; - let mockStore: Store; + let mockStore: Store; let snackBar: MatSnackBar; let container: any; let httpClient: HttpClient; @@ -49,7 +50,7 @@ describe('RTL Root Effects', () => { HttpClientTestingModule ], providers: [ - RTLEffects, CommonService, HttpClient, + RTLEffects, CommonService, HttpClient, WebSocketClientService, { provide: SessionService, useClass: mockSessionService }, { provide: LoggerService, useClass: mockLoggerService }, { provide: MatDialogRef, useClass: mockMatDialogRef }, @@ -78,20 +79,20 @@ describe('RTL Root Effects', () => { actions = new ReplaySubject(1); const setSelectedNodeAction = { type: RTLActions.SET_SELECTED_NODE, - payload: { uiMessage: UI_MESSAGES.UPDATE_SELECTED_NODE, lnNode: mockActionsData.setSelectedNode, isInitialSetup: false } + payload: { uiMessage: UI_MESSAGES.UPDATE_SELECTED_NODE, prevLnNodeIndex: -1, currentLnNode: mockActionsData.setSelectedNode, isInitialSetup: false } }; actions.next(setSelectedNodeAction); const sub = effects.setSelectedNode.subscribe((setSelectedNodeResponse) => { expect(setSelectedNodeResponse).toEqual({ type: RTLActions.VOID }); - expect(storeDispatchSpy.calls.all()[0].args[0]).toEqual(new RTLActions.OpenSpinner(UI_MESSAGES.UPDATE_SELECTED_NODE)); - expect(storeDispatchSpy.calls.all()[1].args[0]).toEqual(new RTLActions.UpdateAPICallStatus({ action: 'UpdateSelNode', status: APICallStatusEnum.INITIATED })); - expect(storeDispatchSpy.calls.all()[2].args[0]).toEqual(new RTLActions.UpdateAPICallStatus({ action: 'UpdateSelNode', status: APICallStatusEnum.COMPLETED })); - expect(storeDispatchSpy.calls.all()[3].args[0]).toEqual(new RTLActions.CloseSpinner(UI_MESSAGES.UPDATE_SELECTED_NODE)); - expect(storeDispatchSpy.calls.all()[4].args[0]).toEqual(new RTLActions.ResetRootStore(mockActionsData.resetRootStore)); - expect(storeDispatchSpy.calls.all()[5].args[0]).toEqual(new LNDActions.ResetLNDStore(mockActionsData.resetChildrenStores)); - expect(storeDispatchSpy.calls.all()[6].args[0]).toEqual(new CLActions.ResetCLStore(mockActionsData.resetChildrenStores)); - expect(storeDispatchSpy.calls.all()[7].args[0]).toEqual(new ECLActions.ResetECLStore(mockActionsData.resetChildrenStores)); - expect(storeDispatchSpy.calls.all()[8].args[0]).toEqual(new LNDActions.FetchInfo({ loadPage: 'HOME' })); + expect(storeDispatchSpy.calls.all()[0].args[0]).toEqual(openSpinner({ payload: UI_MESSAGES.UPDATE_SELECTED_NODE })); + expect(storeDispatchSpy.calls.all()[1].args[0]).toEqual(updateRootAPICallStatus({ payload: { action: 'UpdateSelNode', status: APICallStatusEnum.INITIATED } })); + expect(storeDispatchSpy.calls.all()[2].args[0]).toEqual(updateRootAPICallStatus({ payload: { action: 'UpdateSelNode', status: APICallStatusEnum.COMPLETED } })); + expect(storeDispatchSpy.calls.all()[3].args[0]).toEqual(closeSpinner({ payload: UI_MESSAGES.UPDATE_SELECTED_NODE })); + expect(storeDispatchSpy.calls.all()[4].args[0]).toEqual(resetRootStore({ payload: mockActionsData.resetRootStore })); + expect(storeDispatchSpy.calls.all()[5].args[0]).toEqual(resetLNDStore({ payload: mockActionsData.resetChildrenStores })); + expect(storeDispatchSpy.calls.all()[6].args[0]).toEqual(resetCLStore({ payload: mockActionsData.resetChildrenStores })); + expect(storeDispatchSpy.calls.all()[7].args[0]).toEqual(resetECLStore({ payload: mockActionsData.resetChildrenStores })); + expect(storeDispatchSpy.calls.all()[8].args[0]).toEqual(fetchInfoLND({ payload: { loadPage: 'HOME' } })); expect(storeDispatchSpy).toHaveBeenCalledTimes(9); done(); setTimeout(() => sub.unsubscribe()); @@ -101,7 +102,7 @@ describe('RTL Root Effects', () => { const expectedResponse = mockResponseData.setSelectedNodeSuccess; req.flush(expectedResponse); expect(req.request.method).toEqual('POST'); - expect(req.request.body).toEqual({ selNodeIndex: setSelectedNodeAction.payload.lnNode.index }); + expect(req.request.body).toEqual({ prevNodeIndex: -1, currNodeIndex: setSelectedNodeAction.payload.currentLnNode.index }); }); it('should throw error on dispatch set selected node', (done) => { @@ -110,16 +111,16 @@ describe('RTL Root Effects', () => { actions = new ReplaySubject(1); const setSelectedNodeAction = { type: RTLActions.SET_SELECTED_NODE, - payload: { uiMessage: UI_MESSAGES.UPDATE_SELECTED_NODE, lnNode: mockActionsData.setSelectedNode, isInitialSetup: false } + payload: { uiMessage: UI_MESSAGES.UPDATE_SELECTED_NODE, prevLnNodeIndex: -1, currentLnNode: mockActionsData.setSelectedNode, isInitialSetup: false } }; actions.next(setSelectedNodeAction); const sub = effects.setSelectedNode.subscribe((setSelectedNodeResponse: any) => { expect(setSelectedNodeResponse).toEqual({ type: RTLActions.VOID }); - expect(storeDispatchSpy.calls.all()[0].args[0]).toEqual(new RTLActions.OpenSpinner(UI_MESSAGES.UPDATE_SELECTED_NODE)); - expect(storeDispatchSpy.calls.all()[1].args[0]).toEqual(new RTLActions.UpdateAPICallStatus({ action: 'UpdateSelNode', status: APICallStatusEnum.INITIATED })); - expect(storeDispatchSpy.calls.all()[2].args[0]).toEqual(new RTLActions.CloseSpinner(UI_MESSAGES.UPDATE_SELECTED_NODE)); - expect(storeDispatchSpy.calls.all()[3].args[0]).toEqual(new RTLActions.OpenAlert({ data: { type: 'ERROR', alertTitle: 'Update Selected Node Failed!', message: { code: '500', message: 'Request failed.', URL: environment.CONF_API + '/updateSelNode' }, component: ErrorMessageComponent } })); - expect(storeDispatchSpy.calls.all()[4].args[0]).toEqual(new RTLActions.UpdateAPICallStatus({ action: 'UpdateSelNode', status: APICallStatusEnum.ERROR, statusCode: '500', message: 'Request failed.', URL: environment.CONF_API + '/updateSelNode' })); + expect(storeDispatchSpy.calls.all()[0].args[0]).toEqual(openSpinner({ payload: UI_MESSAGES.UPDATE_SELECTED_NODE })); + expect(storeDispatchSpy.calls.all()[1].args[0]).toEqual(updateRootAPICallStatus({ payload: { action: 'UpdateSelNode', status: APICallStatusEnum.INITIATED } })); + expect(storeDispatchSpy.calls.all()[2].args[0]).toEqual(closeSpinner({ payload: UI_MESSAGES.UPDATE_SELECTED_NODE })); + expect(storeDispatchSpy.calls.all()[3].args[0]).toEqual(openAlert({ payload: { data: { type: 'ERROR', alertTitle: 'Update Selected Node Failed!', message: { code: '500', message: 'Request failed.', URL: environment.CONF_API + '/updateSelNode' }, component: ErrorMessageComponent } } })); + expect(storeDispatchSpy.calls.all()[4].args[0]).toEqual(updateRootAPICallStatus({ payload: { action: 'UpdateSelNode', status: APICallStatusEnum.ERROR, statusCode: '500', message: 'Request failed.', URL: environment.CONF_API + '/updateSelNode' } })); expect(storeDispatchSpy).toHaveBeenCalledTimes(5); done(); setTimeout(() => sub.unsubscribe()); diff --git a/src/app/store/rtl.effects.ts b/src/app/store/rtl.effects.ts index aa642b81..bd766571 100644 --- a/src/app/store/rtl.effects.ts +++ b/src/app/store/rtl.effects.ts @@ -9,13 +9,16 @@ import { map, mergeMap, catchError, take, withLatestFrom, takeUntil } from 'rxjs import { MatDialog } from '@angular/material/dialog'; import { MatSnackBar } from '@angular/material/snack-bar'; -import { environment } from '../../environments/environment'; +import { environment, API_URL } from '../../environments/environment'; +import { WebSocketClientService } from '../shared/services/web-socket.service'; import { LoggerService } from '../shared/services/logger.service'; import { SessionService } from '../shared/services/session.service'; import { CommonService } from '../shared/services/common.service'; import { DataService } from '../shared/services/data.service'; -import { Settings, RTLConfiguration, ConfigSettingsNode } from '../shared/models/RTLconfig'; -import { APICallStatusEnum, AuthenticateWith, CURRENCY_UNITS, ScreenSizeEnum, UI_MESSAGES } from '../shared/services/consts-enums-functions'; +import { RTLConfiguration, Settings, ConfigSettingsNode, GetInfoRoot } from '../shared/models/RTLconfig'; +import { RTLActions, APICallStatusEnum, AuthenticateWith, CURRENCY_UNITS, ScreenSizeEnum, UI_MESSAGES } from '../shared/services/consts-enums-functions'; +import { DialogConfig } from '../shared/models/alertData'; +import { FetchFile, Login, OpenSnackBar, ResetPassword, SaveSettings, SetSelectedNode, UpdateServiceSetting, VerifyTwoFA } from '../shared/models/rtlModels'; import { SpinnerDialogComponent } from '../shared/components/data-modal/spinner-dialog/spinner-dialog.component'; import { AlertMessageComponent } from '../shared/components/data-modal/alert-message/alert-message.component'; @@ -23,11 +26,12 @@ import { ConfirmationMessageComponent } from '../shared/components/data-modal/co import { ErrorMessageComponent } from '../shared/components/data-modal/error-message/error-message.component'; import { ShowPubkeyComponent } from '../shared/components/data-modal/show-pubkey/show-pubkey.component'; -import * as ECLActions from '../eclair/store/ecl.actions'; -import * as CLActions from '../clightning/store/cl.actions'; -import * as LNDActions from '../lnd/store/lnd.actions'; -import * as RTLActions from './rtl.actions'; -import * as fromRTLReducer from './rtl.reducers'; +import { RTLState } from './rtl.state'; +import { resetRootStore, setNodeData, setSelectedNode, updateRootAPICallStatus, closeSpinner, openAlert, openSpinner, openSnackBar, fetchRTLConfig, closeAllDialogs, logout, updateRootNodeSettings } from './rtl.actions'; +import { fetchInfoLND, resetLNDStore } from '../lnd/store/lnd.actions'; +import { fetchInfoCL, resetCLStore } from '../clightning/store/cl.actions'; +import { fetchInfoECL, resetECLStore } from '../eclair/store/ecl.actions'; +import { rootAppConfig, rootNodeData } from './rtl.selector'; @Injectable() export class RTLEffects implements OnDestroy { @@ -41,8 +45,9 @@ export class RTLEffects implements OnDestroy { constructor( private actions: Actions, private httpClient: HttpClient, - private store: Store, + private store: Store, private logger: LoggerService, + private wsService: WebSocketClientService, private sessionService: SessionService, private commonService: CommonService, private dataService: DataService, @@ -54,7 +59,7 @@ export class RTLEffects implements OnDestroy { closeAllDialogs = createEffect( () => this.actions.pipe( ofType(RTLActions.CLOSE_ALL_DIALOGS), - map((action: RTLActions.CloseAllDialogs) => { + map(() => { this.dialog.closeAll(); })), { dispatch: false } @@ -63,7 +68,7 @@ export class RTLEffects implements OnDestroy { openSnackBar = createEffect( () => this.actions.pipe( ofType(RTLActions.OPEN_SNACK_BAR), - map((action: RTLActions.OpenSnackBar) => { + map((action: { type: string, payload: string | OpenSnackBar }) => { if (typeof action.payload === 'string') { this.snackBar.open(action.payload); } else { @@ -82,7 +87,7 @@ export class RTLEffects implements OnDestroy { openSpinner = createEffect( () => this.actions.pipe( ofType(RTLActions.OPEN_SPINNER), - map((action: RTLActions.OpenSpinner) => { + map((action: { type: string, payload: string }) => { if (action.payload !== UI_MESSAGES.NO_SPINNER) { this.dialogRef = this.dialog.open(SpinnerDialogComponent, { data: { titleMessage: action.payload } }); } @@ -93,7 +98,7 @@ export class RTLEffects implements OnDestroy { closeSpinner = createEffect( () => this.actions.pipe( ofType(RTLActions.CLOSE_SPINNER), - map((action: RTLActions.CloseSpinner) => { + map((action: { type: string, payload: string }) => { if (action.payload !== UI_MESSAGES.NO_SPINNER) { try { if (this.dialogRef && (this.dialogRef.componentInstance && this.dialogRef.componentInstance.data && this.dialogRef.componentInstance.data.titleMessage && this.dialogRef.componentInstance.data.titleMessage === action.payload)) { @@ -116,12 +121,15 @@ export class RTLEffects implements OnDestroy { openAlert = createEffect( () => this.actions.pipe( ofType(RTLActions.OPEN_ALERT), - map((action: RTLActions.OpenAlert) => { - action.payload.width = this.alertWidth; + map((action: { type: string, payload: DialogConfig }) => { + const updatedPayload = JSON.parse(JSON.stringify(action.payload)); + if (!updatedPayload.width) { + updatedPayload.width = this.alertWidth; + } if (action.payload.data.component) { - this.dialogRef = this.dialog.open(action.payload.data.component, action.payload); + this.dialogRef = this.dialog.open(action.payload.data.component, updatedPayload); } else { - this.dialogRef = this.dialog.open(AlertMessageComponent, action.payload); + this.dialogRef = this.dialog.open(AlertMessageComponent, updatedPayload); } })), { dispatch: false } @@ -130,7 +138,7 @@ export class RTLEffects implements OnDestroy { closeAlert = createEffect( () => this.actions.pipe( ofType(RTLActions.CLOSE_ALERT), - map((action: RTLActions.CloseAlert) => { + map((action: { type: string, payload: any }) => { if (this.dialogRef) { this.dialogRef.close(); } @@ -142,9 +150,12 @@ export class RTLEffects implements OnDestroy { openConfirm = createEffect( () => this.actions.pipe( ofType(RTLActions.OPEN_CONFIRMATION), - map((action: RTLActions.OpenConfirmation) => { - action.payload.width = this.confirmWidth; - this.dialogRef = this.dialog.open(ConfirmationMessageComponent, action.payload); + map((action: { type: string, payload: DialogConfig }) => { + const updatedPayload = JSON.parse(JSON.stringify(action.payload)); + if (!updatedPayload.width) { + updatedPayload.width = this.confirmWidth; + } + this.dialogRef = this.dialog.open(ConfirmationMessageComponent, updatedPayload); })), { dispatch: false } ); @@ -153,7 +164,7 @@ export class RTLEffects implements OnDestroy { () => this.actions.pipe( ofType(RTLActions.CLOSE_CONFIRMATION), take(1), - map((action: RTLActions.CloseConfirmation) => { + map((action: { type: string, payload: boolean }) => { if (this.dialogRef) { this.dialogRef.close(); } @@ -166,15 +177,17 @@ export class RTLEffects implements OnDestroy { showNodePubkey = createEffect( () => this.actions.pipe( ofType(RTLActions.SHOW_PUBKEY), - withLatestFrom(this.store.select('root')), - mergeMap(([action, rootData]: [RTLActions.ShowPubkey, fromRTLReducer.RootState]) => { - if (!this.sessionService.getItem('token') || !rootData.nodeData.identity_pubkey) { + withLatestFrom(this.store.select(rootNodeData)), + mergeMap(([action, nodeData]: [{ type: string, payload: any }, GetInfoRoot]) => { + if (!this.sessionService.getItem('token') || !nodeData.identity_pubkey) { this.snackBar.open('Node Pubkey does not exist.'); } else { - this.store.dispatch(new RTLActions.OpenAlert({ - width: '70%', data: { - information: rootData.nodeData, - component: ShowPubkeyComponent + this.store.dispatch(openAlert({ + payload: { + data: { + information: nodeData, + component: ShowPubkeyComponent + } } })); } @@ -185,7 +198,7 @@ export class RTLEffects implements OnDestroy { appConfigFetch = createEffect( () => this.actions.pipe( ofType(RTLActions.FETCH_RTL_CONFIG), - mergeMap((action: RTLActions.FetchRTLConfig) => { + mergeMap(() => { this.screenSize = this.commonService.getScreenSize(); if (this.screenSize === ScreenSizeEnum.XS || this.screenSize === ScreenSizeEnum.SM) { this.alertWidth = '95%'; @@ -194,21 +207,21 @@ export class RTLEffects implements OnDestroy { this.alertWidth = '80%'; this.confirmWidth = '80%'; } else { - this.alertWidth = '55%'; - this.confirmWidth = '60%'; + this.alertWidth = '45%'; + this.confirmWidth = '50%'; } - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.GET_RTL_CONFIG)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'FetchRTLConfig', status: APICallStatusEnum.INITIATED })); + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.GET_RTL_CONFIG })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'FetchRTLConfig', status: APICallStatusEnum.INITIATED } })); if (this.sessionService.getItem('token')) { - return this.httpClient.get(environment.CONF_API + '/rtlconf'); + return this.httpClient.get(environment.CONF_API + '/rtlconf'); } else { - return this.httpClient.get(environment.CONF_API + '/rtlconfinit'); + return this.httpClient.get(environment.CONF_API + '/rtlconfinit'); } }), map((rtlConfig: RTLConfiguration) => { this.logger.info(rtlConfig); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.GET_RTL_CONFIG)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'FetchRTLConfig', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.GET_RTL_CONFIG })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'FetchRTLConfig', status: APICallStatusEnum.COMPLETED } })); let searchNode: ConfigSettingsNode; rtlConfig.nodes.forEach((node) => { node.settings.currencyUnits = [...CURRENCY_UNITS, node.settings.currencyUnit]; @@ -217,7 +230,7 @@ export class RTLEffects implements OnDestroy { } }); if (searchNode) { - this.store.dispatch(new RTLActions.SetSelelectedNode({ uiMessage: UI_MESSAGES.NO_SPINNER, lnNode: searchNode, isInitialSetup: true })); + this.store.dispatch(setSelectedNode({ payload: { uiMessage: UI_MESSAGES.NO_SPINNER, prevLnNodeIndex: -1, currentLnNode: searchNode, isInitialSetup: true } })); return { type: RTLActions.SET_RTL_CONFIG, payload: rtlConfig @@ -229,7 +242,7 @@ export class RTLEffects implements OnDestroy { } }), catchError((err) => { - this.handleErrorWithoutAlert('FetchRTLConfig', UI_MESSAGES.GET_RTL_CONFIG, err); + this.handleErrorWithAlert('FetchRTLConfig', UI_MESSAGES.GET_RTL_CONFIG, 'Fetch RTL Config Failed!', environment.CONF_API, err); return of({ type: RTLActions.VOID }); })) ); @@ -237,9 +250,9 @@ export class RTLEffects implements OnDestroy { settingSave = createEffect( () => this.actions.pipe( ofType(RTLActions.SAVE_SETTINGS), - mergeMap((action: RTLActions.SaveSettings) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.uiMessage)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'UpdateSettings', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: SaveSettings }) => { + this.store.dispatch(openSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'UpdateSettings', status: APICallStatusEnum.INITIATED } })); let updateSettingReq = new Observable(); if (action.payload.settings && action.payload.defaultNodeIndex) { const settingsRes = this.httpClient.post(environment.CONF_API, { updatedSettings: action.payload.settings }); @@ -252,14 +265,13 @@ export class RTLEffects implements OnDestroy { } return updateSettingReq.pipe(map((updateStatus: any) => { this.logger.info(updateStatus); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'UpdateSettings', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'UpdateSettings', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); return { type: RTLActions.OPEN_SNACK_BAR, payload: (!updateStatus.length) ? updateStatus.message + '.' : updateStatus[0].message + '.' }; - }), - catchError((err) => { + }), catchError((err) => { this.handleErrorWithAlert('UpdateSettings', action.payload.uiMessage, 'Update Settings Failed!', environment.CONF_API, (!err.length) ? err : err[0]); return of({ type: RTLActions.VOID }); })); @@ -269,14 +281,15 @@ export class RTLEffects implements OnDestroy { updateServicesettings = createEffect( () => this.actions.pipe( ofType(RTLActions.UPDATE_SERVICE_SETTINGS), - mergeMap((action: RTLActions.UpdateServiceSettings) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.uiMessage)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'UpdateServiceSettings', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: UpdateServiceSetting }) => { + this.store.dispatch(openSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'UpdateServiceSettings', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(environment.CONF_API + '/updateServiceSettings', action.payload).pipe( map((updateStatus: any) => { this.logger.info(updateStatus); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'UpdateServiceSettings', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'UpdateServiceSettings', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateRootNodeSettings({ payload: action.payload })); return { type: RTLActions.OPEN_SNACK_BAR, payload: updateStatus.message + '.' @@ -293,15 +306,15 @@ export class RTLEffects implements OnDestroy { twoFASettingSave = createEffect( () => this.actions.pipe( ofType(RTLActions.TWO_FA_SAVE_SETTINGS), - mergeMap((action: RTLActions.TwoFASaveSettings) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.UPDATE_UI_SETTINGS)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'Update2FASettings', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: { secret2fa: string } }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.UPDATE_UI_SETTINGS })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'Update2FASettings', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(environment.CONF_API + '/update2FA', { secret2fa: action.payload.secret2fa }); }), map((updateStatus: any) => { this.logger.info(updateStatus); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'Update2FASettings', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.UPDATE_UI_SETTINGS)); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'Update2FASettings', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.UPDATE_UI_SETTINGS })); return { type: RTLActions.VOID }; }), catchError((err) => { @@ -313,19 +326,18 @@ export class RTLEffects implements OnDestroy { configFetch = createEffect( () => this.actions.pipe( ofType(RTLActions.FETCH_CONFIG), - mergeMap((action: RTLActions.FetchConfig) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.OPEN_CONFIG_FILE)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'fetchConfig', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.OPEN_CONFIG_FILE })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'fetchConfig', status: APICallStatusEnum.INITIATED } })); return this.httpClient.get(environment.CONF_API + '/config/' + action.payload). pipe(map((configFile: any) => { - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'fetchConfig', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.OPEN_CONFIG_FILE)); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'fetchConfig', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.OPEN_CONFIG_FILE })); return { type: RTLActions.SHOW_CONFIG, payload: configFile }; - }), - catchError((err: any) => { + }), catchError((err: any) => { this.handleErrorWithAlert('fetchConfig', UI_MESSAGES.OPEN_CONFIG_FILE, 'Fetch Config Failed!', environment.CONF_API + '/config/' + action.payload, err); return of({ type: RTLActions.VOID }); })); @@ -335,29 +347,27 @@ export class RTLEffects implements OnDestroy { showLnConfig = createEffect( () => this.actions.pipe( ofType(RTLActions.SHOW_CONFIG), - map((action: RTLActions.ShowConfig) => action.payload)), + map((action: { type: string, payload: any }) => action.payload)), { dispatch: false } ); isAuthorized = createEffect( () => this.actions.pipe( ofType(RTLActions.IS_AUTHORIZED), - withLatestFrom(this.store.select('root')), - mergeMap(([action, store]: [RTLActions.IsAuthorized, any]) => { - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'IsAuthorized', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: string }) => { + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'IsAuthorized', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(environment.AUTHENTICATE_API, { authenticateWith: (!action.payload || action.payload.trim() === '') ? AuthenticateWith.JWT : AuthenticateWith.PASSWORD, authenticationValue: (!action.payload || action.payload.trim() === '') ? (this.sessionService.getItem('token') ? this.sessionService.getItem('token') : '') : action.payload }).pipe(map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'IsAuthorized', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'IsAuthorized', status: APICallStatusEnum.COMPLETED } })); this.logger.info('Successfully Authorized!'); return { type: RTLActions.IS_AUTHORIZED_RES, payload: postRes }; - }), - catchError((err) => { + }), catchError((err) => { this.handleErrorWithAlert('IsAuthorized', UI_MESSAGES.NO_SPINNER, 'Authorization Failed', environment.AUTHENTICATE_API, err); return of({ type: RTLActions.IS_AUTHORIZED_RES, @@ -370,19 +380,19 @@ export class RTLEffects implements OnDestroy { isAuthorizedRes = createEffect( () => this.actions.pipe( ofType(RTLActions.IS_AUTHORIZED_RES), - map((action: RTLActions.IsAuthorizedRes) => action.payload)), + map((action: { type: string, payload: any }) => action.payload)), { dispatch: false } ); authLogin = createEffect( () => this.actions.pipe( ofType(RTLActions.LOGIN), - withLatestFrom(this.store.select('root')), - mergeMap(([action, rootStore]: [RTLActions.Login, fromRTLReducer.RootState]) => { - this.store.dispatch(new LNDActions.ResetLNDStore({})); - this.store.dispatch(new CLActions.ResetCLStore({})); - this.store.dispatch(new ECLActions.ResetECLStore({})); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'Login', status: APICallStatusEnum.INITIATED })); + withLatestFrom(this.store.select(rootAppConfig)), + mergeMap(([action, appConfig]: [{ type: string, payload: Login }, RTLConfiguration]) => { + this.store.dispatch(resetLNDStore({ payload: null })); + this.store.dispatch(resetCLStore({ payload: null })); + this.store.dispatch(resetECLStore({ payload: null })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'Login', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(environment.AUTHENTICATE_API, { authenticateWith: (!action.payload.password) ? AuthenticateWith.JWT : AuthenticateWith.PASSWORD, authenticationValue: (!action.payload.password) ? (this.sessionService.getItem('token') ? this.sessionService.getItem('token') : '') : action.payload.password, @@ -390,17 +400,13 @@ export class RTLEffects implements OnDestroy { }).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'Login', status: APICallStatusEnum.COMPLETED })); - this.setLoggedInDetails(action.payload.defaultPassword, postRes, rootStore); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'Login', status: APICallStatusEnum.COMPLETED } })); + this.setLoggedInDetails(action.payload.defaultPassword, postRes); }), catchError((err) => { this.logger.info('Redirecting to Login Error Page'); - if (err.status === 0 && err.statusText && err.statusText === 'Unknown Error') { - err.status = '400'; - err.error.error = 'Origin Not Allowed'; - } this.handleErrorWithoutAlert('Login', UI_MESSAGES.NO_SPINNER, err); - if (+rootStore.appConfig.sso.rtlSSO) { + if (+appConfig.sso.rtlSSO) { this.router.navigate(['/error'], { state: { errorCode: '406', errorMessage: err.error && err.error.error ? err.error.error : 'Single Sign On Failed!' } }); } else { this.router.navigate(['./login']); @@ -414,18 +420,17 @@ export class RTLEffects implements OnDestroy { tokenVerify = createEffect( () => this.actions.pipe( ofType(RTLActions.VERIFY_TWO_FA), - withLatestFrom(this.store.select('root')), - mergeMap(([action, rootStore]: [RTLActions.VerifyTwoFA, fromRTLReducer.RootState]) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.VERIFY_TOKEN)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'VerifyToken', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: VerifyTwoFA }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.VERIFY_TOKEN })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'VerifyToken', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(environment.AUTHENTICATE_API + '/token', { authentication2FA: action.payload.token }). pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.VERIFY_TOKEN)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'VerifyToken', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.VERIFY_TOKEN })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'VerifyToken', status: APICallStatusEnum.COMPLETED } })); this.logger.info('Token Successfully Verified!'); - this.setLoggedInDetails(false, action.payload.authResponse, rootStore); + this.setLoggedInDetails(false, action.payload.authResponse); }), catchError((err) => { this.handleErrorWithAlert('VerifyToken', UI_MESSAGES.VERIFY_TOKEN, 'Authorization Failed!', environment.AUTHENTICATE_API + '/token', err); @@ -439,17 +444,22 @@ export class RTLEffects implements OnDestroy { logOut = createEffect( () => this.actions.pipe( ofType(RTLActions.LOGOUT), - withLatestFrom(this.store.select('root')), - mergeMap(([action, store]) => { - if (+store.appConfig.sso.rtlSSO) { - window.location.href = store.appConfig.sso.logoutRedirectLink; - } else { - this.router.navigate(['./login']); - } - this.sessionService.clearAll(); - this.store.dispatch(new RTLActions.SetNodeData({})); - this.logger.warn('LOGGED OUT'); - return of(); + withLatestFrom(this.store.select(rootAppConfig)), + mergeMap(([action, appConfig]) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.LOG_OUT })); + return this.httpClient.get(environment.AUTHENTICATE_API + '/logout'). + pipe(map((postRes: any) => { + this.logger.info(postRes); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.LOG_OUT })); + if (+appConfig.sso.rtlSSO) { + window.location.href = appConfig.sso.logoutRedirectLink; + } else { + this.router.navigate(['./login']); + } + this.sessionService.clearAll(); + this.store.dispatch(setNodeData({ payload: {} })); + this.logger.warn('LOGGED OUT'); + })); })), { dispatch: false } ); @@ -457,17 +467,16 @@ export class RTLEffects implements OnDestroy { resetPassword = createEffect( () => this.actions.pipe(takeUntil(this.unSubs[1]), ofType(RTLActions.RESET_PASSWORD), - withLatestFrom(this.store.select('root')), - mergeMap(([action, rootStore]: [RTLActions.ResetPassword, fromRTLReducer.RootState]) => { - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'ResetPassword', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: ResetPassword }) => { + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'ResetPassword', status: APICallStatusEnum.INITIATED } })); return this.httpClient.post(environment.AUTHENTICATE_API + '/reset', { currPassword: action.payload.currPassword, newPassword: action.payload.newPassword }).pipe( takeUntil(this.unSubs[0]), map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'ResetPassword', status: APICallStatusEnum.COMPLETED })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'ResetPassword', status: APICallStatusEnum.COMPLETED } })); this.sessionService.setItem('defaultPassword', false); this.logger.info('Password Reset Successful!'); - this.store.dispatch(new RTLActions.OpenSnackBar('Password Reset Successful!')); + this.store.dispatch(openSnackBar({ payload: 'Password Reset Successful!' })); this.SetToken(postRes.token); return { type: RTLActions.RESET_PASSWORD_RES, @@ -484,22 +493,18 @@ export class RTLEffects implements OnDestroy { setSelectedNode = createEffect( () => this.actions.pipe( ofType(RTLActions.SET_SELECTED_NODE), - mergeMap((action: RTLActions.SetSelelectedNode) => { - this.store.dispatch(new RTLActions.OpenSpinner(action.payload.uiMessage)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'UpdateSelNode', status: APICallStatusEnum.INITIATED })); - return this.httpClient.post(environment.CONF_API + '/updateSelNode', { selNodeIndex: action.payload.lnNode.index }).pipe( + mergeMap((action: { type: string, payload: SetSelectedNode }) => { + this.store.dispatch(openSpinner({ payload: action.payload.uiMessage })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'UpdateSelNode', status: APICallStatusEnum.INITIATED } })); + return this.httpClient.post(environment.CONF_API + '/updateSelNode', { prevNodeIndex: action.payload.prevLnNodeIndex, currNodeIndex: action.payload.currentLnNode.index }).pipe( map((postRes: any) => { this.logger.info(postRes); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'UpdateSelNode', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(action.payload.uiMessage)); - this.initializeNode(action.payload.lnNode, action.payload.isInitialSetup); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'UpdateSelNode', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: action.payload.uiMessage })); + this.initializeNode(action.payload.currentLnNode, action.payload.isInitialSetup); return { type: RTLActions.VOID }; }), catchError((err: any) => { - if (err.status === 0 && err.statusText && err.statusText === 'Unknown Error') { - err.status = '400'; - err.error.message = 'Origin Not Allowed'; - } this.handleErrorWithAlert('UpdateSelNode', action.payload.uiMessage, 'Update Selected Node Failed!', environment.CONF_API + '/updateSelNode', err); return of({ type: RTLActions.VOID }); }) @@ -510,14 +515,14 @@ export class RTLEffects implements OnDestroy { fetchFile = createEffect( () => this.actions.pipe( ofType(RTLActions.FETCH_FILE), - mergeMap((action: RTLActions.FetchFile) => { - this.store.dispatch(new RTLActions.OpenSpinner(UI_MESSAGES.DOWNLOAD_BACKUP_FILE)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'fetchFile', status: APICallStatusEnum.INITIATED })); + mergeMap((action: { type: string, payload: FetchFile }) => { + this.store.dispatch(openSpinner({ payload: UI_MESSAGES.DOWNLOAD_BACKUP_FILE })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'FetchFile', status: APICallStatusEnum.INITIATED } })); const query = '?channel=' + action.payload.channelPoint + (action.payload.path ? '&path=' + action.payload.path : ''); return this.httpClient.get(environment.CONF_API + '/file' + query).pipe( map((fetchedFile: any) => { - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: 'fetchFile', status: APICallStatusEnum.COMPLETED })); - this.store.dispatch(new RTLActions.CloseSpinner(UI_MESSAGES.DOWNLOAD_BACKUP_FILE)); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'FetchFile', status: APICallStatusEnum.COMPLETED } })); + this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.DOWNLOAD_BACKUP_FILE })); return { type: RTLActions.SHOW_FILE, payload: fetchedFile @@ -534,39 +539,42 @@ export class RTLEffects implements OnDestroy { showFile = createEffect( () => this.actions.pipe( ofType(RTLActions.SHOW_FILE), - map((action: RTLActions.ShowFile) => action.payload)), + map((action: { type: string, payload: any }) => action.payload)), { dispatch: false } ); - initializeNode(node: any, isInitialSetup: boolean) { + initializeNode(node: ConfigSettingsNode, isInitialSetup: boolean) { + this.logger.info('Initializing node from RTL Effects.'); const landingPage = isInitialSetup ? '' : 'HOME'; let selNode = {}; if (node.settings.fiatConversion && node.settings.currencyUnit) { - selNode = { userPersona: node.settings.userPersona, channelBackupPath: node.settings.channelBackupPath, selCurrencyUnit: node.settings.currencyUnit, currencyUnits: [...CURRENCY_UNITS, node.settings.currencyUnit], fiatConversion: node.settings.fiatConversion, lnImplementation: node.lnImplementation, swapServerUrl: node.settings.swapServerUrl, boltzServerUrl: node.settings.boltzServerUrl }; + selNode = { userPersona: node.settings.userPersona, channelBackupPath: node.settings.channelBackupPath, selCurrencyUnit: node.settings.currencyUnit, currencyUnits: [...CURRENCY_UNITS, node.settings.currencyUnit], fiatConversion: node.settings.fiatConversion, lnImplementation: node.lnImplementation, swapServerUrl: node.settings.swapServerUrl, boltzServerUrl: node.settings.boltzServerUrl, enableOffers: node.settings.enableOffers }; } else { - selNode = { userPersona: node.settings.userPersona, channelBackupPath: node.settings.channelBackupPath, selCurrencyUnit: node.settings.currencyUnit, currencyUnits: CURRENCY_UNITS, fiatConversion: node.settings.fiatConversion, lnImplementation: node.lnImplementation, swapServerUrl: node.settings.swapServerUrl, boltzServerUrl: node.settings.boltzServerUrl }; + selNode = { userPersona: node.settings.userPersona, channelBackupPath: node.settings.channelBackupPath, selCurrencyUnit: node.settings.currencyUnit, currencyUnits: CURRENCY_UNITS, fiatConversion: node.settings.fiatConversion, lnImplementation: node.lnImplementation, swapServerUrl: node.settings.swapServerUrl, boltzServerUrl: node.settings.boltzServerUrl, enableOffers: node.settings.enableOffers }; } this.sessionService.removeItem('lndUnlocked'); this.sessionService.removeItem('clUnlocked'); this.sessionService.removeItem('eclUnlocked'); - this.store.dispatch(new RTLActions.ResetRootStore(node)); - this.store.dispatch(new LNDActions.ResetLNDStore(selNode)); - this.store.dispatch(new CLActions.ResetCLStore(selNode)); - this.store.dispatch(new ECLActions.ResetECLStore(selNode)); + this.store.dispatch(resetRootStore({ payload: node })); + this.store.dispatch(resetLNDStore({ payload: selNode })); + this.store.dispatch(resetCLStore({ payload: selNode })); + this.store.dispatch(resetECLStore({ payload: selNode })); if (this.sessionService.getItem('token')) { - node.lnImplementation = node.lnImplementation.toUpperCase(); - this.dataService.setChildAPIUrl(node.lnImplementation); - switch (node.lnImplementation) { + const nodeLnImplementation = node.lnImplementation ? node.lnImplementation.toUpperCase() : 'LND'; + this.dataService.setChildAPIUrl(nodeLnImplementation); + const apiUrl = (environment.production && window.location.origin) ? (window.location.origin + '/rtl/api') : API_URL; + this.wsService.connectWebSocket(apiUrl.replace(/^http/, 'ws') + environment.Web_SOCKET_API, node.index.toString()); + switch (nodeLnImplementation) { case 'CLT': - this.store.dispatch(new CLActions.FetchInfo({ loadPage: landingPage })); + this.store.dispatch(fetchInfoCL({ payload: { loadPage: landingPage } })); break; case 'ECL': - this.store.dispatch(new ECLActions.FetchInfo({ loadPage: landingPage })); + this.store.dispatch(fetchInfoECL({ payload: { loadPage: landingPage } })); break; default: - this.store.dispatch(new LNDActions.FetchInfo({ loadPage: landingPage })); + this.store.dispatch(fetchInfoLND({ payload: { loadPage: landingPage } })); break; } } @@ -582,15 +590,14 @@ export class RTLEffects implements OnDestroy { } } - setLoggedInDetails(defaultPassword: boolean, postRes: any, rootStore: any) { + setLoggedInDetails(defaultPassword: boolean, postRes: any) { this.logger.info('Successfully Authorized!'); this.SetToken(postRes.token); - this.store.dispatch(new RTLActions.FetchRTLConfig()); - rootStore.selNode.settings.currencyUnits = [...CURRENCY_UNITS, rootStore.selNode.settings.currencyUnit]; + this.store.dispatch(fetchRTLConfig()); this.sessionService.setItem('defaultPassword', defaultPassword); if (defaultPassword) { this.sessionService.setItem('defaultPassword', 'true'); - this.store.dispatch(new RTLActions.OpenSnackBar('Reset your password.')); + this.store.dispatch(openSnackBar({ payload: 'Reset your password.' })); this.router.navigate(['/settings/auth']); } } @@ -599,34 +606,39 @@ export class RTLEffects implements OnDestroy { this.logger.error('ERROR IN: ' + actionName + '\n' + JSON.stringify(err)); if (err.status === 401 && actionName !== 'Login') { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: this.commonService.extractErrorMessage(err) })); + this.store.dispatch(closeSpinner({ payload: uiMessage })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status ? err.status.toString() : '', message: this.commonService.extractErrorMessage(err) } })); } } - handleErrorWithAlert(actionName: string, uiMessage: string, alertTitle: string, errURL: string, err: { status: number, error: any }) { + handleErrorWithAlert(actionName: string, uiMessage: string, alertTitle: string, errURL: string, err: { status: number, error: any, statusText?: string }) { this.logger.error(err); + if (err.status === 0 && err.statusText && err.statusText === 'Unknown Error') { + err = { status: 400, error: { message: 'Unknown Error / CORS Origin Not Allowed' } }; + } if (err.status === 401 && actionName !== 'Login') { this.logger.info('Redirecting to Login'); - this.store.dispatch(new RTLActions.CloseAllDialogs()); - this.store.dispatch(new RTLActions.Logout()); - this.store.dispatch(new RTLActions.OpenSnackBar('Authentication Failed. Redirecting to Login.')); + this.store.dispatch(closeAllDialogs()); + this.store.dispatch(logout()); + this.store.dispatch(openSnackBar({ payload: 'Authentication Failed. Redirecting to Login.' })); } else { - this.store.dispatch(new RTLActions.CloseSpinner(uiMessage)); + this.store.dispatch(closeSpinner({ payload: uiMessage })); const errMsg = this.commonService.extractErrorMessage(err); - this.store.dispatch(new RTLActions.OpenAlert({ - data: { - type: 'ERROR', - alertTitle: alertTitle, - message: { code: err.status ? err.status : 'Unknown Error', message: errMsg, URL: errURL }, - component: ErrorMessageComponent + this.store.dispatch(openAlert({ + payload: { + data: { + type: 'ERROR', + alertTitle: alertTitle, + message: { code: err.status ? err.status : 'Unknown Error', message: errMsg, URL: errURL }, + component: ErrorMessageComponent + } } })); - this.store.dispatch(new RTLActions.UpdateAPICallStatus({ action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status.toString(), message: errMsg, URL: errURL })); + this.store.dispatch(updateRootAPICallStatus({ payload: { action: actionName, status: APICallStatusEnum.ERROR, statusCode: err.status ? err.status.toString() : '', message: errMsg, URL: errURL } })); } } diff --git a/src/app/store/rtl.reducers.spec.ts b/src/app/store/rtl.reducers.spec.ts index ef8021a8..bfea3477 100644 --- a/src/app/store/rtl.reducers.spec.ts +++ b/src/app/store/rtl.reducers.spec.ts @@ -1,23 +1,22 @@ import { mockActionsData } from '../shared/test-helpers/test-data'; import { UI_MESSAGES } from '../shared/services/consts-enums-functions'; -import * as fromRTLReducer from './rtl.reducers'; -import * as RTLActions from './rtl.actions'; +import { initRootState } from './rtl.state'; +import { RootReducer } from './rtl.reducers'; +import { setSelectedNode } from './rtl.actions'; describe('RTL reducer', () => { describe('default action', () => { it('should return initial state', () => { - const { initRootState } = fromRTLReducer; - const newState = fromRTLReducer.RootReducer(initRootState, { type: 'VOID' }); + const newState = RootReducer(initRootState, { type: 'VOID' }); expect(newState).toEqual(initRootState); }); }); describe('Action SetSelectedNode', () => { it('should set selected node', () => { - const { initRootState } = fromRTLReducer; - const SetSelectedNodeAction = new RTLActions.SetSelelectedNode({ uiMessage: UI_MESSAGES.NO_SPINNER, lnNode: mockActionsData.setSelectedNode, isInitialSetup: false }); - const newState = fromRTLReducer.RootReducer(initRootState, SetSelectedNodeAction); + const SetSelectedNodeAction = setSelectedNode({ payload: { uiMessage: UI_MESSAGES.NO_SPINNER, prevLnNodeIndex: -1, currentLnNode: mockActionsData.setSelectedNode, isInitialSetup: false } }); + const newState = RootReducer(initRootState, SetSelectedNodeAction); expect(newState.selNode.settings.themeMode).toBe('NIGHT'); expect(newState.selNode.settings.themeColor).toBe('TEAL'); diff --git a/src/app/store/rtl.reducers.ts b/src/app/store/rtl.reducers.ts index a8cb4484..48832070 100644 --- a/src/app/store/rtl.reducers.ts +++ b/src/app/store/rtl.reducers.ts @@ -1,88 +1,62 @@ -import { ActionReducerMap } from '@ngrx/store'; - -import { ApiCallsListRoot } from '../shared/models/apiCallsPayload'; -import { APICallStatusEnum } from '../shared/services/consts-enums-functions'; -import { RTLConfiguration, ConfigSettingsNode, GetInfoRoot } from '../shared/models/RTLconfig'; - -import * as fromECL from '../eclair/store/ecl.reducers'; -import * as fromCL from '../clightning/store/cl.reducers'; -import * as fromLND from '../lnd/store/lnd.reducers'; -import * as RTLActions from './rtl.actions'; - -export interface RootState { - apisCallStatus: ApiCallsListRoot; - selNode: ConfigSettingsNode; - appConfig: RTLConfiguration; - nodeData: GetInfoRoot; -} - -const initNodeSettings = { userPersona: 'OPERATOR', themeMode: 'DAY', themeColor: 'PURPLE', channelBackupPath: '', selCurrencyUnit: 'USD', fiatConversion: false, currencyUnits: ['Sats', 'BTC', 'USD'], bitcoindConfigPath: '' }; -const initNodeAuthentication = { configPath: '', swapMacaroonPath: '', boltzMacaroonPath: '' }; - -export const initRootState: RootState = { - apisCallStatus: { Login: { status: APICallStatusEnum.UN_INITIATED }, IsAuthorized: { status: APICallStatusEnum.UN_INITIATED } }, - selNode: { settings: initNodeSettings, authentication: initNodeAuthentication, lnImplementation: 'LND' }, - appConfig: { - defaultNodeIndex: -1, - selectedNodeIndex: -1, - sso: { rtlSSO: 0, logoutRedirectLink: '' }, - enable2FA: false, - nodes: [{ settings: initNodeSettings, authentication: initNodeAuthentication }] - }, - nodeData: {} -}; - -export function RootReducer(state = initRootState, action: RTLActions.RTLActions) { - switch (action.type) { - case RTLActions.UPDATE_API_CALL_STATUS_ROOT: - const updatedApisCallStatus = state.apisCallStatus; - updatedApisCallStatus[action.payload.action] = { - status: action.payload.status, - statusCode: action.payload.statusCode, - message: action.payload.message, - URL: action.payload.URL, - filePath: action.payload.filePath - }; - return { - ...state, - apisCallStatus: updatedApisCallStatus - }; - case RTLActions.RESET_ROOT_STORE: - return { - ...initRootState, - appConfig: state.appConfig, - selNode: action.payload - }; - case RTLActions.SET_SELECTED_NODE: - return { - ...state, - selNode: action.payload.lnNode - }; - case RTLActions.SET_NODE_DATA: - return { - ...state, - nodeData: action.payload - }; - case RTLActions.SET_RTL_CONFIG: - return { - ...state, - appConfig: action.payload - }; - default: - return state; - } -} - -export interface RTLState { - root: RootState; - lnd: fromLND.LNDState; - cl: fromCL.CLState; - ecl: fromECL.ECLState; -} - -export const RTLReducer: ActionReducerMap = { - root: RootReducer, - lnd: fromLND.LNDReducer, - cl: fromCL.CLReducer, - ecl: fromECL.ECLReducer -}; +import { createReducer, on } from '@ngrx/store'; +import { initRootState } from './rtl.state'; + +import { resetRootStore, setNodeData, setRTLConfig, setSelectedNode, updateRootAPICallStatus, updateRootNodeSettings } from './rtl.actions'; +import { ServicesEnum } from '../shared/services/consts-enums-functions'; +import { ConfigSettingsNode } from '../shared/models/RTLconfig'; + +export const RootReducer = createReducer(initRootState, + on(updateRootAPICallStatus, (state, { payload }) => { + const updatedApisCallStatus = JSON.parse(JSON.stringify(state.apisCallStatus)); + updatedApisCallStatus[payload.action] = { + status: payload.status, + statusCode: payload.statusCode, + message: payload.message, + URL: payload.URL, + filePath: payload.filePath + }; + return { + ...state, + apisCallStatus: updatedApisCallStatus + }; + }), + on(resetRootStore, (state, { payload }) => ({ + ...initRootState, + apisCallStatus: state.apisCallStatus, + appConfig: state.appConfig, + selNode: payload + })), + on(setSelectedNode, (state, { payload }) => ({ + ...state, + selNode: payload.currentLnNode + })), + on(updateRootNodeSettings, (state, { payload }) => { + const updatedSelNode: ConfigSettingsNode = JSON.parse(JSON.stringify(state.selNode)); + switch (payload.service) { + case ServicesEnum.BOLTZ: + updatedSelNode.settings.boltzServerUrl = payload.settings.boltzServerUrl; + break; + case ServicesEnum.LOOP: + updatedSelNode.settings.swapServerUrl = payload.settings.swapServerUrl; + break; + case ServicesEnum.OFFERS: + updatedSelNode.settings.enableOffers = payload.settings.enableOffers; + break; + + default: + break; + } + return { + ...state, + selNode: updatedSelNode + }; + }), + on(setNodeData, (state, { payload }) => ({ + ...state, + nodeData: payload + })), + on(setRTLConfig, (state, { payload }) => ({ + ...state, + appConfig: payload + })) +); diff --git a/src/app/store/rtl.selector.ts b/src/app/store/rtl.selector.ts new file mode 100644 index 00000000..88b6933d --- /dev/null +++ b/src/app/store/rtl.selector.ts @@ -0,0 +1,11 @@ +import { createFeatureSelector, createSelector } from '@ngrx/store'; +import { RootState } from './rtl.state'; + +export const rootState = createFeatureSelector('root'); +export const rootAPIUrl = createSelector(rootState, (state: RootState) => state.apiURL); +export const rootSelectedNode = createSelector(rootState, (state: RootState) => state.selNode); +export const rootAppConfig = createSelector(rootState, (state: RootState) => state.appConfig); +export const rootNodeData = createSelector(rootState, (state: RootState) => state.nodeData); +export const loginStatus = createSelector(rootState, (state: RootState) => state.apisCallStatus.Login); +export const authorizedStatus = createSelector(rootState, (state: RootState) => state.apisCallStatus.IsAuthorized); +export const rootSelNodeAndNodeData = createSelector(rootState, (state: RootState) => ({ nodeDate: state.nodeData, selNode: state.selNode })); diff --git a/src/app/store/rtl.state.ts b/src/app/store/rtl.state.ts new file mode 100644 index 00000000..68d51d12 --- /dev/null +++ b/src/app/store/rtl.state.ts @@ -0,0 +1,40 @@ +import { ApiCallsListRoot } from '../shared/models/apiCallsPayload'; +import { APICallStatusEnum } from '../shared/services/consts-enums-functions'; +import { RTLConfiguration, ConfigSettingsNode, GetInfoRoot } from '../shared/models/RTLconfig'; + +import { LNDState } from '../lnd/store/lnd.state'; +import { CLState } from '../clightning/store/cl.state'; +import { ECLState } from '../eclair/store/ecl.state'; + +export interface RootState { + apiURL: string; + apisCallStatus: ApiCallsListRoot; + selNode: ConfigSettingsNode; + appConfig: RTLConfiguration; + nodeData: GetInfoRoot; +} + +const initNodeSettings = { userPersona: 'OPERATOR', themeMode: 'DAY', themeColor: 'PURPLE', channelBackupPath: '', selCurrencyUnit: 'USD', fiatConversion: false, currencyUnits: ['Sats', 'BTC', 'USD'], bitcoindConfigPath: '', enableOffers: false }; +const initNodeAuthentication = { configPath: '', swapMacaroonPath: '', boltzMacaroonPath: '' }; + +export const initRootState: RootState = { + apiURL: '', + apisCallStatus: { Login: { status: APICallStatusEnum.UN_INITIATED }, IsAuthorized: { status: APICallStatusEnum.UN_INITIATED } }, + selNode: { index: 1, lnNode: 'Node 1', settings: initNodeSettings, authentication: initNodeAuthentication, lnImplementation: 'LND' }, + appConfig: { + defaultNodeIndex: -1, + selectedNodeIndex: -1, + sso: { rtlSSO: 0, logoutRedirectLink: '' }, + enable2FA: false, + allowPasswordUpdate: true, + nodes: [{ settings: initNodeSettings, authentication: initNodeAuthentication }] + }, + nodeData: {} +}; + +export interface RTLState { + root: RootState; + lnd: LNDState; + cl: CLState; + ecl: ECLState; +} diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index d1e601f5..8a93400b 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,5 +1,3 @@ -import { VERSION } from './version'; - export const API_URL = './api'; export const environment = { @@ -17,13 +15,15 @@ export const environment = { NETWORK_API: '/network', NEW_ADDRESS_API: '/newaddress', TRANSACTIONS_API: '/transactions', - PAYREQUEST_API: '/payreq', PAYMENTS_API: '/payments', INVOICES_API: '/invoices', SWITCH_API: '/switch', ON_CHAIN_API: '/onchain', MESSAGE_API: '/message', + OFFERS_API: '/offers', LOOP_API: '/loop', BOLTZ_API: '/boltz', - VERSION: VERSION + Web_SOCKET_API: '/ws' }; + +export const VERSION = '0.12.0-beta'; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 1f1ba6ad..5fa9ec62 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -1,5 +1,3 @@ -import { VERSION } from './version'; - export const API_URL = 'http://localhost:3000/rtl/api'; export const environment = { @@ -17,13 +15,15 @@ export const environment = { NETWORK_API: '/network', NEW_ADDRESS_API: '/newaddress', TRANSACTIONS_API: '/transactions', - PAYREQUEST_API: '/payreq', PAYMENTS_API: '/payments', INVOICES_API: '/invoices', SWITCH_API: '/switch', ON_CHAIN_API: '/onchain', MESSAGE_API: '/message', + OFFERS_API: '/offers', LOOP_API: '/loop', BOLTZ_API: '/boltz', - VERSION: VERSION + Web_SOCKET_API: '/ws' }; + +export const VERSION = '0.12.0-beta'; diff --git a/src/environments/version.ts b/src/environments/version.ts deleted file mode 100644 index 3bf48655..00000000 --- a/src/environments/version.ts +++ /dev/null @@ -1 +0,0 @@ -export const VERSION = '0.11.2-beta'; diff --git a/src/karma.conf.js b/src/karma.conf.cjs similarity index 86% rename from src/karma.conf.js rename to src/karma.conf.cjs index c8d51b05..874f3b71 100644 --- a/src/karma.conf.js +++ b/src/karma.conf.cjs @@ -29,12 +29,18 @@ module.exports = function (config) { { type: 'text-summary' } ] }, + customLaunchers: { + CustomChromeHeadless: { + base: 'ChromeHeadless', + flags: ['--no-sandbox'] + } + }, reporters: ['progress', 'kjhtml'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['Chrome'], + browsers: ['CustomChromeHeadless'], singleRun: true, restartOnFileChange: true }); diff --git a/src/prebuild.cjs b/src/prebuild.cjs new file mode 100644 index 00000000..d5cf0321 --- /dev/null +++ b/src/prebuild.cjs @@ -0,0 +1,38 @@ +var path = require('path'); +var fs = require('fs'); +var os = require('os'); + +module.exports = function () { + var packageJSON = JSON.parse(fs.readFileSync(path.join(__dirname, '../', 'package.json'), 'utf-8')); + var appVersion = packageJSON.version; + + try { + console.log('\n\n============================================='); + console.log('Updating application version to ' + appVersion + '.'); + console.log('============================================='); + var versionFilePath = path.join(__dirname + '/environments/environment.ts'); + var versionProdFilePath = path.join(__dirname + '/environments/environment.prod.ts'); + var versionStr = os.EOL + 'export const VERSION = \'' + appVersion + '\';' + os.EOL; + fs.appendFileSync(versionFilePath, versionStr); + fs.appendFileSync(versionProdFilePath, versionStr); + } catch (err) { + console.error(err); + } + + try { + var commonFilePath = path.join(__dirname, "..", "server", "utils", "common.ts"); + var commonFileData = fs.readFileSync(commonFilePath, 'utf-8'); + var commonFileLined = commonFileData.split(os.EOL); + var foundDataLine = commonFileLined.find(function(lineItem) { return lineItem.includes('public read_dummy_data =') || lineItem.includes('public read_dummy_data=') || lineItem.includes('private read_dummy_data =') || lineItem.includes('private read_dummy_data=')}); + var foundDataLineIndex = commonFileLined.findIndex(function(lineItem) { return lineItem.includes('public read_dummy_data =') || lineItem.includes('public read_dummy_data=') || lineItem.includes('private read_dummy_data =') || lineItem.includes('private read_dummy_data=')}); + if (foundDataLine.includes('true')) { + commonFileLined[foundDataLineIndex] = ' public read_dummy_data = false;'; + fs.writeFileSync(commonFilePath, commonFileLined.path.join(os.EOL), 'utf-8'); + console.log('\n=============================================================================================='); + console.log('WARNING: COMMON.TS HAS BEEN REWRITTEN TO UNSET THE DUMMY DATA FLAG. PLEASE RE-CHECK THE FILE.'); + console.log('==============================================================================================\n'); + } + } catch (err) { + console.error(err); + } +}; diff --git a/src/prebuild.js b/src/prebuild.js deleted file mode 100644 index d6e5abde..00000000 --- a/src/prebuild.js +++ /dev/null @@ -1,26 +0,0 @@ -const path = require('path'); -const fs = require('fs'); -const os = require('os'); - -const appVersion = require('../package.json').version; -const versionFilePath = path.join(__dirname + '/environments/version.ts'); -const versionStr = 'export const VERSION = \'' + appVersion + '\';' + os.EOL; - -fs.writeFileSync(versionFilePath, versionStr, 'utf-8'); -console.log('\n\n============================================='); -console.log('Updating application version to ' + appVersion + '.'); -console.log('============================================='); - -const commonFilePath = path.join(__dirname, "..", "routes", "common.js"); -const commonFileData = fs.readFileSync(commonFilePath, 'utf-8'); -const commonFileLined = commonFileData.split(os.EOL); -const foundDataLine = commonFileLined.find(lineItem => lineItem.includes('common.read_dummy_data =') || lineItem.includes('common.read_dummy_data=')); -const foundDataLineIndex = commonFileLined.findIndex(lineItem => lineItem.includes('common.read_dummy_data =') || lineItem.includes('common.read_dummy_data=')); - -if (foundDataLine.includes('true')) { - commonFileLined[foundDataLineIndex] = 'common.read_dummy_data = false;'; - fs.writeFileSync(commonFilePath, commonFileLined.join(os.EOL), 'utf-8'); - console.log('\n=============================================================================================='); - console.log('WARNING: COMMON.JS HAS BEEN REWRITTEN TO UNSET THE DUMMY DATA FLAG. PLEASE RE-CHECK THE FILE.'); - console.log('==============================================================================================\n'); -} diff --git a/src/test.ts b/src/test.ts index d61858aa..27c10eba 100644 --- a/src/test.ts +++ b/src/test.ts @@ -6,7 +6,7 @@ import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@ang declare const require: any; getTestBed().initTestEnvironment( BrowserDynamicTestingModule, - platformBrowserDynamicTesting() + platformBrowserDynamicTesting(), { teardown: { destroyAfterEach: false } } ); const context = require.context('./', true, /\.spec\.ts$/); diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json index b23481a3..c5c46a0e 100644 --- a/src/tsconfig.app.json +++ b/src/tsconfig.app.json @@ -3,7 +3,7 @@ "extends": "../tsconfig.json", "compilerOptions": { "baseUrl": "./", - "outDir": "../angular", + "outDir": "../frontend", "types": ["node"], "paths": { "crypto": ["../node_modules/crypto-browserify"], diff --git a/tsconfig.json b/tsconfig.json index 82e29af4..5564983d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,18 +2,21 @@ { "compileOnSave": false, "compilerOptions": { - "outDir": "./angular/out-tsc", + "outDir": "./backend", + "esModuleInterop": true, + "allowJs": false, "forceConsistentCasingInFileNames": true, "strict": false, + "noImplicitAny": false, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, - "sourceMap": true, + "sourceMap": false, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "moduleResolution": "node", "importHelpers": true, - "target": "es2015", + "target": "es6", "module": "es2020", "typeRoots": [ "node_modules/@types" @@ -23,6 +26,13 @@ "dom" ] }, + "include": [ + "./server/**/*" + ], + "exclude": [ + "typings/*", + "node_modules" + ], "angularCompilerOptions": { "strictInjectionParameters": true, "strictInputAccessModifiers": true,